From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (qmail 27191 invoked from network); 17 Sep 2020 03:14:38 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 17 Sep 2020 03:14:38 -0000 Content-Type: multipart/mixed; boundary="===============3773849876920196462==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_gnome_3=2E38?= To: ml@inbox.vuxu.org From: q66 Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Thu, 17 Sep 2020 05:14:33 +0200 List-Id: Message-ID: <20200917031433.qtNliy0YUwHx0ykqHxJi7zcCDlW3Q8JjAhR5YmYouO8@z> GitHub notification mails are now in MIME to allow UTF8. --===============3773849876920196462== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgcTY2IGFnYWluc3QgbWFzdGVyIG9u IHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9xNjYvdm9p ZC1wYWNrYWdlcyBnbm9tZTMzOApodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBh Y2thZ2VzL3B1bGwvMjQyNjAKCmdub21lIDMuMzgKU2luY2UgaHR0cHM6Ly9naXRodWIuY29tL3Zv aWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzIxMzgyIGlzIHRha2luZyBhIHdoaWxlIGFuZCBn bm9tZSAzLjM4IGlzIGp1c3QgYXJvdW5kIHRoZSBjb3JuZXIsIEkgcHJlcGFyZWQgYSBwcmVsaW1p bmFyeSBQUiBmb3Igbm93IGNvbnRhaW5pbmcgdGhlIDMuMzcgcHJlcmVsZWFzZSBzdHVmZiAtIEkg ZGlkIHRoaXMgbWFpbmx5IGJlY2F1c2UgSSBuZWVkZWQgbW9yZSAicmVhZHkiIHdheWxhbmQgc3Vw cG9ydC4gVGVzdGVkIG9uIGFhcmNoNjQuDQoNCiMgVE9ETw0KDQotIFt4XSBjbGVhbiBpdCB1cA0K LSBbeF0gYmV0dGVyIHRlc3RpbmcsIG1ha2Ugc3VyZSB0ZXN0c3VpdGUgcGFzc2VzDQotIFt4XSBp bXBvcnQgdGhlIHVzZWZ1bCBiaXRzIGZyb20gIzIxMzgyLCBvciByZWJhc2UgaWYgaXQgZ2V0cyBt ZXJnZWQNCi0gWyBdIG1ha2Ugc3VyZSBjcm9zc2J1aWxkcyB3b3JrDQotIFsgXSB0ZXN0IG9uIG1v cmUgcGxhdGZvcm1zDQotIFsgXSBmaXggdGhlIG1ldGFwYWNrYWdlcyAodGhleSBoYXZlbid0IGJl ZW4gdG91Y2hlZCwgcG9zc2libHkgaW4gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9p ZC1wYWNrYWdlcy9wdWxsLzIyOTM2KQ0KLSBbIF0gfn5kcm9wIHRoZSBgdmFsYWAgb3B0aW9uIGlu IHRoZSByZXN0IG9mIHRoZSBwYWNrYWdlc35+IHByb2JhYmx5IGdvbm5hIGRvIHRoYXQgb25jZSB0 aGlzIFBSIGlzIG1lcmdlZA0KDQojIFN0YWJsZSB1cGRhdGVzDQoNCi0gW3hdIG1vempzNzggLT4g NzguMS4wICoqKG5ldykqKg0KLSBbeF0geWVscC14c2wgLT4gMy4zOC4wDQotIFt4XSB5ZWxwLXRv b2xzIC0+IDMuMzguMA0KLSBbeF0geWVscCAtPiAzLjM4LjANCi0gW3hdIHZhbGEgLT4gMC41MC4w DQotIFt4XSB2YWxhZG9jIC0+IDAuNTAuMCANCi0gW3hdIHZhbGFiaW5kIC0+IChyZXZidW1wKSAN Ci0gW3hdIGRldmhlbHAgLT4gMy4zOC4wDQotIFt4XSBnZGwgLT4gMy4zNC4wDQotIFt4XSBsaWJz b3VwIC0+IDIuNzIuMA0KLSBbeF0gZ3JpbG8gLT4gMC4zLjEzDQotIFt4XSBncmlsby1wbHVnaW5z IC0+IDAuMy4xMg0KLSBbeF0gZ3Rrc291cmNldmlldzQgLT4gNC44LjANCi0gW3hdIHRlcGwgLT4g NS4wLjANCi0gW3hdIGdsYWRlMyAtPiAzLjM4LjANCi0gW3hdIGxpYmhhbmR5IC0+IChyZXZidW1w KQ0KLSBbeF0gbGliaGFuZHkxIC0+IDEuMC4wDQotIFt4XSBsaWJ4ZmNlNHVpIC0+IChyZXZidW1w KQ0KLSBbeF0gbGliZGF6emxlIC0+IDMuMzguMA0KLSBbeF0gYW5qdXRhIC0+IChyZXZidW1wKQ0K LSBbeF0gc3lzcHJvZiAtPiAzLjM4LjANCi0gW3hdIHRyYWNrZXIgLT4gMi4zLjYNCi0gW3hdIHRy YWNrZXItbWluZXJzIC0+IDIuMy41DQotIFt4XSB0cmFja2VyMyAtPiAzLjAuMCAqKihuZXcpKioN Ci0gW3hdIHRyYWNrZXIzLW1pbmVycyAtPiAzLjAuMCAqKihuZXcpKioNCi0gW3hdIGJpamliZW4g LT4gMy4zNi4zDQotIFt4XSBncmFwaGVuZSAtPiAxLjEwLjINCi0gW3hdIGFtdGsgLT4gNS4yLjAN Ci0gW3hdIGlvLmVsZW1lbnRhcnkuY29kZSAtPiAocmV2YnVtcCkNCi0gW3hdIHBob2RhdiAtPiAy LjUNCi0gW3hdIGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMgLT4gMy4zOC4wDQotIFt4XSBnbGli LW5ldHdvcmtpbmcgLT4gMi42Ni4wDQotIFt4XSBhdC1zcGkyLWNvcmUgLT4gMi4zOC4wDQotIFt4 XSBhdC1zcGkyLWF0ayAtPiAyLjM4LjANCi0gW3hdIGxpYmd3ZWF0aGVyIC0+IDMuMzYuMQ0KLSBb eF0gZ25vbWUtbWVudXMgLT4gMy4zNi4wDQotIFt4XSBnbm9tZS1kZXNrdG9wIC0+IDMuMzguMA0K LSBbeF0gZ25vbWUtc2V0dGluZ3MtZGFlbW9uIC0+IDMuMzguMA0KLSBbeF0gbXV0dGVyIC0+IDMu MzguMA0KLSBbeF0gY2hlZXNlIC0+IDMuMzguMA0KLSBbeF0gZXZvbHV0aW9uLWRhdGEtc2VydmVy IC0+IDMuMzguMA0KLSBbeF0gZm9sa3MgLT4gMC4xNC4wDQotIFt4XSBnbm9tZS1vbmxpbmUtYWNj b3VudHMgLT4gMy4zNy45MA0KLSBbeF0gZ3ZmcyAtPiAxLjQ2LjANCi0gW3hdIGdub21lLWNvbnRy b2wtY2VudGVyIC0+IDMuMzguMA0KLSBbeF0gZGNvbmYtZWRpdG9yIC0+IDMuMzguMA0KLSBbeF0g Z2pzIC0+IDEuNjYuMA0KLSBbeF0gZ25vbWUtc2hlbGwgLT4gMy4zOC4wDQotIFt4XSBnbm9tZS1z aGVsbC1leHRlbnNpb25zIC0+IDMuMzguMA0KLSBbeF0gZ2RtIC0+IDMuMzguMA0KLSBbeF0gZ25v bWUtc2Vzc2lvbiAtPiAzLjM4LjANCi0gW3hdIGdub21lLWluaXRpYWwtc2V0dXAgLT4gMy4zOC4w DQotIFt4XSB4ZGctZGVza3RvcC1wb3J0YWwtZ3RrIC0+IDEuOC4wDQotIFt4XSBuYXV0aWx1cyAt PiAzLjM4LjANCi0gW3hdIGdub21lLW1hcHMgLT4gMy4zOC4wDQotIFt4XSBldm9sdXRpb24gLT4g My4zOC4wDQotIFt4XSBldm9sdXRpb24tZXdzIC0+IDMuMzguMA0KLSBbeF0gcHl0aG9uMy1hdHNw aSAtPiAyLjM4LjANCi0gW3hdIHB5dGhvbi1hdHNwaSAtPiAyLjM4LjANCi0gW3hdIG9yY2EgLT4g My4zOC4wDQotIFt4XSBnbm9tZS13ZWF0aGVyIC0+IChyZXZidW1wKQ0KLSBbeF0gdnRlMyAtPiAw LjYyLjANCi0gW3hdIGdub21lLXRlcm1pbmFsIC0+IDMuMzguMA0KLSBbeF0gZ25vbWUtZ2V0dGlu Zy1zdGFydGVkLWRvY3MgLT4gMy4zNi4yDQotIFt4XSBnbm9tZS11c2VyLWRvY3MgLT4gMy4zOC4w DQotIFt4XSBnbm9tZS1lcHViLXRodW1ibmFpbGVyIC0+IDEuNg0KLSBbeF0gZ25vbWUtYm9va3Mg LT4gKHJldmJ1bXApDQotIFt4XSBnbm9tZS1jaGFyYWN0ZXJzIC0+IChyZXZidW1wKQ0KLSBbeF0g Z25vbWUtZG9jdW1lbnRzIC0+IChyZXZidW1wKQ0KLSBbeF0gZ25vbWUtZm9udC12aWV3ZXIgLT4g KHJldmJ1bXApDQotIFt4XSB0b3RlbSAtPiAzLjM4LjANCi0gW3hdIGdub21lLXNjcmVlbnNhdmVy IC0+IChyZXZidW1wICsgYnVpbGQgZml4KQ0KLSBbeF0gZ25vbWUtY2xvY2tzIC0+IDMuMzguMA0K LSBbeF0gZXBpcGhhbnkgLT4gMy4zOC4wDQotIFt4XSBnbm9tZS1jb250YWN0cyAtPiAzLjM3LjIN Ci0gW3hdIGdub21lLXBob3RvcyAtPiAzLjM3LjkxLjENCi0gW3hdIGVvZyAtPiAzLjM4LjANCi0g W3hdIGV2aW5jZSAtPiAzLjM4LjANCi0gW3hdIGZpbGUtcm9sbGVyIC0+IDMuMzguMA0KLSBbeF0g Z25vbWUtY2FsZW5kYXIgLT4gMy4zOC4wDQotIFt4XSBnbm9tZS1tdXNpYyAtPiAzLjM4LjANCi0g W3hdIGdlZGl0IC0+IDMuMzguMA0KLSBbeF0gZ2VkaXQtcGx1Z2lucyAtPiAzLjM4LjANCi0gW3hd IGdub21lLWxhdGV4IC0+IDMuMzguMA0KLSBbeF0gYmFvYmFiIC0+IDMuMzguMA0KLSBbeF0gZ25v bWUtYm94ZXMgLT4gMy4zOC4wDQotIFt4XSBnbm9tZS1jYWxjdWxhdG9yIC0+IDMuMzguMA0KLSBb eF0gZ25vbWUtZGlzay11dGlsaXR5IC0+IDMuMzguMA0KLSBbeF0gZ25vbWUtc2NyZWVuc2hvdCAt PiAzLjM4LjANCi0gW3hdIGdub21lLXN5c3RlbS1tb25pdG9yIC0+IDMuMzguMA0KLSBbeF0gYWR3 YWl0YS1pY29uLXRoZW1lIC0+IDMuMzguMA0KLSBbeF0gZ25vbWUtYmFja2dyb3VuZHMgLT4gMy4z OC4wDQotIFt4XSBzaW1wbGUtc2NhbiAtPiAzLjM4LjANCi0gW3hdIHJ5Z2VsIC0+IDAuNDAuMA0K LSBbeF0gZ25vbWUtYnVpbGRlciAtPiAzLjM4LjANCi0gW3hdIHJldHJvLWd0ayAtPiAxLjAuMA0K LSBbeF0gZ25vbWUtZ2FtZXMgLT4gMy4zOC4wDQotIFt4XSBidWRnaWUtZGVza3RvcCAtPiAocmVi dWlsZCkNCg0KIyBPdGhlciB1cGRhdGVzIChzdGlsbCBUT0RPKQ0KDQotIFt4XSBnbm9tZS1wYW5l bCAtPiAzLjM3LjEgKnVuc3RhYmxlKg0KLSBbeF0gbWV0YWNpdHkgLT4gMy4zNy4xICp1bnN0YWJs ZSoNCi0gW3hdIGdub21lLWZsYXNoYmFjayAtPiAzLjM3LjIgKnVuc3RhYmxlKg0KLSBbeF0gcG9s YXJpIC0+IDMuMzcuMyAqdW5zdGFibGUqDQoNCiMjIE1lcmdlZA0KDQotIFt4XSBsaWJzaWdjKysz IC0+IDMuMC4zIChuZXcpDQotIFt4XSBtbS1jb21tb24gLT4gMS4wLjENCi0gW3hdIGdsaWJtbSAt PiAyLjY0LjINCi0gW3hdIHBhbmdvbW0gLT4gMi40Mi4xDQotIFt4XSBsaWJub3RpZnkgLT4gMC43 LjkNCi0gW3hdIGF0ayAtPiAyLjM2LjANCi0gW3hdIGd0ayszIC0+IDMuMjQuMjINCi0gW3hdIGxp YnBvcnRhbCAtPiAwLjMgKG5ldykNCi0gW3hdIGNvZ2wgLT4gMS4yMi4yOA0KLSBbeF0gZ2VvY29k ZS1nbGliIC0+IDMuMjYuMg0KLSBbeF0gZ2ZiZ3JhcGggLT4gMC4yLjQNCi0gW3hdIGxpYmdzZiAt PiAxLjE0LjQ3DQotIFt4XSBsaWJzZWNyZXQgLT4gMC4yMC4zDQotIFt4XSBsaWJjaGFtcGxhaW4g LT4gMC4xMi4yMA0KLSBbeF0gZ29tIC0+IDAuNA0KLSBbeF0gZ3NzZHAgLT4gMS4yLjMNCi0gW3hd IGd0ay12bmMgLT4gMS4wLjAgKGRyb3BzIHVudXNlZCBndGsyIHN1cHBvcnQpDQotIFt4XSBndXBu cCAtPiAxLjIuNA0KLSBbeF0gZ25vbWUtdmlkZW8tZWZmZWN0cyAtPiAwLjUuMA0KLSBbeF0gZ2xp YiAtPiAyLjY2LjANCi0gW3hdIHdlYmtpdDJndGsgLT4gMi4zMC4wCgpBIHBhdGNoIGZpbGUgZnJv bSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMjQyNjAu cGF0Y2ggaXMgYXR0YWNoZWQ= --===============3773849876920196462== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-gnome338-24260.patch" RnJvbSBiN2U5NDUxOGUyZjRjYzVlNWJiY2U2YjI2MzA4MGIzYTI1NjIwMTM1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4K RGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAwNjoyMzowNCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDAx LzEwMl0gTmV3IHBhY2thZ2U6IG1vempzNzgtNzguMS4wCgotLS0KIGNvbW1vbi9zaGxpYnMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmNwa2dzL21vempzNzgtZGV2 ZWwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogLi4uLzAwMS1zaWxlbmNlLXNhbmRi b3gtdmlvbGF0aW9ucy5wYXRjaCAgICAgIHwgIDI3ICsrKysrCiBzcmNwa2dzL21vempzNzgvcGF0 Y2hlcy8wMDItZml4LXNvbmFtZS5wYXRjaCAgfCAgMjIgKysrKwogLi4uL21vempzNzgvcGF0Y2hl cy8wMDMtZml4LXdhc20tYXJtLnBhdGNoICAgIHwgIDE2ICsrKwogLi4uL21vempzNzgvcGF0Y2hl cy8wMDQtZml4LW11c2wtYnVpbGQucGF0Y2ggIHwgIDE3ICsrKwogLi4uLzAwNS1zcGlkZXJtb25r ZXktY2hlY2tzLWRpc2FibGUucGF0Y2ggICAgIHwgIDEyICsrCiAuLi4vMDA2LW1vempzNzgucGMt aG9ub3Itc3lzcm9vdC5wYXRjaCAgICAgICAgfCAgMTAgKysKIC4uLi9wYXRjaGVzLzAwNy1maXgt bWlwcy1zZ2lkZWZzX2gucGF0Y2ggICAgICB8ICAxMSArKwogc3JjcGtncy9tb3pqczc4L3BhdGNo ZXMvY292ZXJhZ2UtYXBpLnBhdGNoICAgIHwgMTA3ICsrKysrKysrKysrKysrKysrKwogc3JjcGtn cy9tb3pqczc4L3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgIHwgIDczICsrKysrKysrKysr Kwogc3JjcGtncy9tb3pqczc4L3VwZGF0ZSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsK IDEyIGZpbGVzIGNoYW5nZWQsIDI5OCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMjAwMDAg c3JjcGtncy9tb3pqczc4LWRldmVsCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tb3pqczc4 L3BhdGNoZXMvMDAxLXNpbGVuY2Utc2FuZGJveC12aW9sYXRpb25zLnBhdGNoCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDAyLWZpeC1zb25hbWUucGF0Y2gKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDMtZml4LXdhc20tYXJt LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDA0LWZp eC1tdXNsLWJ1aWxkLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tb3pqczc4L3Bh dGNoZXMvMDA1LXNwaWRlcm1vbmtleS1jaGVja3MtZGlzYWJsZS5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwNi1tb3pqczc4LnBjLWhvbm9yLXN5c3Jv b3QucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDct Zml4LW1pcHMtc2dpZGVmc19oLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tb3pq czc4L3BhdGNoZXMvY292ZXJhZ2UtYXBpLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9tb3pqczc4L3RlbXBsYXRlCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tb3pqczc4L3Vw ZGF0ZQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IGZl Y2YxMGFmMDliLi44ZDM2MmUxODQ5NiAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9j b21tb24vc2hsaWJzCkBAIC0zNTM4LDYgKzM1MzgsNyBAQCBsaWJLRjVTeW5kaWNhdGlvbi5zby41 IHN5bmRpY2F0aW9uLTUuNTAuMF8xCiBsaWJscXItMS5zby4wIGxpYmxxci0wLjQuMl8xCiBsaWJt b3pqcy02MC5zby4wIG1vempzNjAtNjAuMC4yXzEKIGxpYm1vempzLTY4LnNvLjAgbW96anM2OC02 OC44LjBfMQorbGlibW96anMtNzguc28uMCBtb3pqczc4LTc4LjEuMF8xCiBsaWJlYnVyMTI4LnNv LjEgbGliZWJ1cjEyOC0xLjIuNF8xCiBsaWJndGtzb3VyY2V2aWV3LTQuc28uMCBndGtzb3VyY2V2 aWV3NC00LjAuMl8xCiBsaWJ3eF9ndGszdV9wcm9wZ3JpZC0zLjAuc28uMCB3eFdpZGdldHMtZ3Rr My0zLjAuNF8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL21vempzNzgtZGV2ZWwgYi9zcmNwa2dzL21v empzNzgtZGV2ZWwKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAuLjc3MTM1 OTkzNTZmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9tb3pqczc4LWRldmVsCkBAIC0wLDAg KzEgQEAKK21vempzNzgKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9z cmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDEtc2lsZW5jZS1zYW5kYm94LXZpb2xhdGlvbnMucGF0 Y2ggYi9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDEtc2lsZW5jZS1zYW5kYm94LXZpb2xhdGlv bnMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmRjMDExOTRi NjQ2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDAxLXNpbGVu Y2Utc2FuZGJveC12aW9sYXRpb25zLnBhdGNoCkBAIC0wLDAgKzEsMjcgQEAKKyJDYXJyaWVkIG92 ZXIgKyB1cGRhdGVkIGZyb20gbW96anM2OCIKK1Vwc3RyZWFtOiBubworRnJvbSA5YWQxMDU2OWUx MWEyZmI5NjM3NzE4OGY4OTViYzY2YWJjYzk1MTFkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQor RnJvbTogTWFyYy1BbnRvaW5lIFBlcmVubm91IDxNYXJjLUFudG9pbmVAUGVyZW5ub3UuY29tPgor RGF0ZTogV2VkLCA1IFNlcCAyMDE4IDE1OjA1OjI0ICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIHNp bGVuY2Ugc2FuZGJveCB2aW9sYXRpb25zCisKK1NpZ25lZC1vZmYtYnk6IE1hcmMtQW50b2luZSBQ ZXJlbm5vdSA8TWFyYy1BbnRvaW5lQFBlcmVubm91LmNvbT4KKy0tLQorIHB5dGhvbi9tb3pidWls ZC9tb3pidWlsZC9mcm9udGVuZC9lbWl0dGVyLnB5IHwgNSAtLS0tLQorIDEgZmlsZSBjaGFuZ2Vk LCA1IGRlbGV0aW9ucygtKQorCistLS0gYS9weXRob24vbW96YnVpbGQvbW96YnVpbGQvZnJvbnRl bmQvZW1pdHRlci5weQorKysrIGIvcHl0aG9uL21vemJ1aWxkL21vemJ1aWxkL2Zyb250ZW5kL2Vt aXR0ZXIucHkKK0BAIC0xMjM5LDEyICsxMjM5LDYgQEAgY2xhc3MgVHJlZU1ldGFkYXRhRW1pdHRl cihMb2dnaW5nTWl4aW4pOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAnaXMgYSBmaWxlbmFtZSwgYnV0IGEgZGlyZWN0b3J5IGlzIHJlcXVpcmVkOiAl cyAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICco cmVzb2x2ZWQgdG8gJXMpJyAlIChsb2NhbF9pbmNsdWRlLCBmdWxsX3BhdGgpLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0KQorLSAgICAg ICAgICAgIGlmIChmdWxsX3BhdGggPT0gY29udGV4dC5jb25maWcudG9wc3JjZGlyIG9yCistICAg ICAgICAgICAgICAgICAgICBmdWxsX3BhdGggPT0gY29udGV4dC5jb25maWcudG9wb2JqZGlyKToK Ky0gICAgICAgICAgICAgICAgcmFpc2UgU2FuZGJveFZhbGlkYXRpb25FcnJvcigKKy0gICAgICAg ICAgICAgICAgICAgICdQYXRoIHNwZWNpZmllZCBpbiBMT0NBTF9JTkNMVURFUyAnCistICAgICAg ICAgICAgICAgICAgICAnKCVzKSByZXNvbHZlcyB0byB0aGUgdG9wc3JjZGlyIG9yIHRvcG9iamRp ciAoJXMpLCB3aGljaCBpcyAnCistICAgICAgICAgICAgICAgICAgICAnbm90IGFsbG93ZWQnICUg KGxvY2FsX2luY2x1ZGUsIGZ1bGxfcGF0aCksIGNvbnRleHQpCisgICAgICAgICAgICAgaW5jbHVk ZV9vYmogPSBMb2NhbEluY2x1ZGUoY29udGV4dCwgbG9jYWxfaW5jbHVkZSkKKyAgICAgICAgICAg ICBsb2NhbF9pbmNsdWRlcy5hcHBlbmQoaW5jbHVkZV9vYmoucGF0aC5mdWxsX3BhdGgpCisgICAg ICAgICAgICAgeWllbGQgaW5jbHVkZV9vYmoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbW96anM3OC9w YXRjaGVzLzAwMi1maXgtc29uYW1lLnBhdGNoIGIvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDAy LWZpeC1zb25hbWUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LmNjNTQzMTA5Mzk4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMv MDAyLWZpeC1zb25hbWUucGF0Y2gKQEAgLTAsMCArMSwyMiBAQAorIkNhcnJpZWQgb3ZlciBmcm9t IG1vempzNjgiCistLS0gYS9qcy9zcmMvYnVpbGQvTWFrZWZpbGUuaW4KKysrKyBiL2pzL3NyYy9i dWlsZC9NYWtlZmlsZS5pbgorQEAgLTc4LDYgKzc4LDggQEAKKyBlbmRpZgorIGlmbmVxICgsJChT SEFSRURfTElCUkFSWSkpCisgCSQoU1lTSU5TVEFMTCkgJChTSEFSRURfTElCUkFSWSkgJChERVNU RElSKSQobGliZGlyKQorKwltdiAtZiAkKERFU1RESVIpJChsaWJkaXIpLyQoU0hBUkVEX0xJQlJB UlkpICQoREVTVERJUikkKGxpYmRpcikvJChTSEFSRURfTElCUkFSWSkuMAorKwlsbiAtcyAkKFNI QVJFRF9MSUJSQVJZKS4wICQoREVTVERJUikkKGxpYmRpcikvJChTSEFSRURfTElCUkFSWSkKKyBp ZmVxICgkKE9TX0FSQ0gpLERhcndpbikKKyAJaW5zdGFsbF9uYW1lX3Rvb2wgLWlkICQoYWJzcGF0 aCAkKGxpYmRpcikvJChTSEFSRURfTElCUkFSWSkpICQoREVTVERJUikkKGxpYmRpcikvJChTSEFS RURfTElCUkFSWSkKKyBlbmRpZgorLS0tIGEvanMvc3JjL2J1aWxkL21vei5idWlsZAorKysrIGIv anMvc3JjL2J1aWxkL21vei5idWlsZAorQEAgLTI1LDYgKzI1LDcgQEAKKyBpZiBDT05GSUdbJ0pT X1NIQVJFRF9MSUJSQVJZJ106CisgICAgIEdlY2tvU2hhcmVkTGlicmFyeSgnanMnLCBsaW5rYWdl PU5vbmUpCisgICAgIFNIQVJFRF9MSUJSQVJZX05BTUUgPSBDT05GSUdbJ0pTX0xJQlJBUllfTkFN RSddCisrICAgIExERkxBR1MgKz0gWyctV2wsLXNvbmFtZSxsaWJ7fS5zby4wJy5mb3JtYXQoU0hB UkVEX0xJQlJBUllfTkFNRSldCisgCisgICAgICMgRW5zdXJlIHN5bWJvbCB2ZXJzaW9ucyBvZiBz aGFyZWQgbGlicmFyeSBvbiBMaW51eCBkbyBub3QgY29uZmxpY3QKKyAgICAgIyB3aXRoIHRob3Nl IGluIGxpYnh1bC4KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwMy1maXgt d2FzbS1hcm0ucGF0Y2ggYi9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDMtZml4LXdhc20tYXJt LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44OTFhNzY1MjA1 NgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwMy1maXgtd2Fz bS1hcm0ucGF0Y2gKQEAgLTAsMCArMSwxNiBAQAorIlRha2VuIGZyb20gZmlyZWZveC1lc3IiCist LS0gYS9qcy9zcmMvd2FzbS9XYXNtU2lnbmFsSGFuZGxlcnMuY3BwCisrKysgYi9qcy9zcmMvd2Fz bS9XYXNtU2lnbmFsSGFuZGxlcnMuY3BwCitAQCAtMjQzLDkgKzI0Myw5IEBACisgLy8gSWYgeW91 IHJ1biBpbnRvIGNvbXBpbGUgcHJvYmxlbXMgb24gYSB0aWVyLTMgcGxhdGZvcm0sIHlvdSBjYW4g ZGlzYWJsZSB0aGUKKyAvLyBlbXVsYXRpb24gaGVyZS4KKyAKKy0jaWYgZGVmaW5lZChfX2xpbnV4 X18pICYmIGRlZmluZWQoX19hcm1fXykKKy0jICBkZWZpbmUgV0FTTV9FTVVMQVRFX0FSTV9VTkFM SUdORURfRlBfQUNDRVNTCistI2VuZGlmCisrLy8gI2lmIGRlZmluZWQoX19saW51eF9fKSAmJiBk ZWZpbmVkKF9fYXJtX18pCisrLy8gIyAgZGVmaW5lIFdBU01fRU1VTEFURV9BUk1fVU5BTElHTkVE X0ZQX0FDQ0VTUworKy8vICNlbmRpZgorIAorICNpZmRlZiBXQVNNX0VNVUxBVEVfQVJNX1VOQUxJ R05FRF9GUF9BQ0NFU1MKKyAjICBpbmNsdWRlIDxzeXMvdXNlci5oPgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9tb3pqczc4L3BhdGNoZXMvMDA0LWZpeC1tdXNsLWJ1aWxkLnBhdGNoIGIvc3JjcGtncy9t b3pqczc4L3BhdGNoZXMvMDA0LWZpeC1tdXNsLWJ1aWxkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mNjI5ZmEyYWMzNQotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwNC1maXgtbXVzbC1idWlsZC5wYXRjaApAQCAtMCwwICsx LDE3IEBACisiQ2FycmllZCBvdmVyIGZyb20gbW96anM2MCIKK1Vwc3RyZWFtOiBObworUmVhc29u OiBtb3pqczY4IG1pc2NvbXBpbGVzIG9uIG11c2wgaWYgYnVpbHQgd2l0aCBIQVZFX1RIUkVBRF9U TFNfS0VZV09SRDoKK2h0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMv aXNzdWVzLzI1OTgKK2RpZmYgLS1naXQgYS9qcy9zcmMvb2xkLWNvbmZpZ3VyZS5pbiBiL2pzL3Ny Yy9vbGQtY29uZmlndXJlLmluCistLS0gYS9qcy9zcmMvb2xkLWNvbmZpZ3VyZS5pbgorKysrIGIv anMvc3JjL29sZC1jb25maWd1cmUuaW4KK0BAIC0xMjcyLDYgKzEyNzIsOSBAQAorICAgICAqLWFu ZHJvaWQqfCotbGludXhhbmRyb2lkKikKKyAgICAgICA6CisgICAgICAgOzsKKysgICAgKi1tdXNs KikKKysgICAgICA6CisrICAgICAgOzsKKyAgICAgKikKKyAgICAgICBBQ19ERUZJTkUoSEFWRV9U SFJFQURfVExTX0tFWVdPUkQpCisgICAgICAgOzsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbW96anM3 OC9wYXRjaGVzLzAwNS1zcGlkZXJtb25rZXktY2hlY2tzLWRpc2FibGUucGF0Y2ggYi9zcmNwa2dz L21vempzNzgvcGF0Y2hlcy8wMDUtc3BpZGVybW9ua2V5LWNoZWNrcy1kaXNhYmxlLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mNmVhYmFiZDFmMgotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwNS1zcGlkZXJtb25rZXktY2hl Y2tzLWRpc2FibGUucGF0Y2gKQEAgLTAsMCArMSwxMiBAQAorU291cmNlOkZlZG9yYQorUmVhc29u OiBDaGVja3MgZmFpbGVkKFRvZG86IEZpZ3VyZSBvdXQgd2h5KQorKysrIGEvY29uZmlnL3J1bl9z cGlkZXJtb25rZXlfY2hlY2tzLnB5CisrKysgYi9jb25maWcvcnVuX3NwaWRlcm1vbmtleV9jaGVj a3MucHkKK0BAIC0xMSw1ICsxMSw1IEBACisgICAgIGZvciBzY3JpcHQgaW4gc2NyaXB0czoKKyAg ICAgICAgIHJldGNvZGUgPSBzdWJwcm9jZXNzLmNhbGwoCisgICAgICAgICAgICAgW3N5cy5leGVj dXRhYmxlLCBzY3JpcHRdLCBjd2Q9YnVpbGRjb25maWcudG9wc3JjZGlyKQorLSAgICAgICAgaWYg cmV0Y29kZSAhPSAwOgorLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbihzY3JpcHQgKyAiIGZh aWxlZCIpCisrICAgICAgICAjaWYgcmV0Y29kZSAhPSAwOgorKyAgICAgICAgIyAgICByYWlzZSBF eGNlcHRpb24oc2NyaXB0ICsgIiBmYWlsZWQiKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tb3pqczc4 L3BhdGNoZXMvMDA2LW1vempzNzgucGMtaG9ub3Itc3lzcm9vdC5wYXRjaCBiL3NyY3BrZ3MvbW96 anM3OC9wYXRjaGVzLzAwNi1tb3pqczc4LnBjLWhvbm9yLXN5c3Jvb3QucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjcxMjE0YjhlY2NmCi0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDA2LW1vempzNzgucGMtaG9ub3Itc3lzcm9v dC5wYXRjaApAQCAtMCwwICsxLDEwIEBACisiQ2FycmllZCBvdmVyIGZyb20gbW96anM2MCIKK1Jl YXNvbjogRml4IHRoZSAnLWluY2x1ZGUnIGRpcmVjdGl2ZSwgb3RoZXJ3aXNlIGl0IHRyaWVzIHRv IHVzZSB0aGUgaG9zdCdzIGhlYWRlcgorLS0tIGEvanMvc3JjL2J1aWxkL2pzLnBjLmluCisrKysg Yi9qcy9zcmMvYnVpbGQvanMucGMuaW4KK0BAIC0xMSw0ICsxMSw0IEBACisgIyBVc2UgLWlzeXN0 ZW0gZm9yIGluY2x1ZGVzIHJhdGhlciB0aGFuIC1JLCB0byBtYXJrIHRoZW0gYXMgInN5c3RlbSBo ZWFkZXJzIgorICMgdGhhdCBkb24ndCBnZW5lcmF0ZSB3YXJuaW5nIGRpYWdub3N0aWNzLiBGb3Ig anVzdGlmaWNhdGlvbiwgc2VlCisgIyBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3df YnVnLmNnaT9pZD0xNTM5MDM2CistQ2ZsYWdzOiAtaW5jbHVkZSAke2luY2x1ZGVkaXJ9L0BKU19M SUJSQVJZX05BTUVAL2pzL1JlcXVpcmVkRGVmaW5lcy5oIC1pc3lzdGVtICR7aW5jbHVkZWRpcn0v QEpTX0xJQlJBUllfTkFNRUAKKytDZmxhZ3M6IC1pbmNsdWRlICR7cGNfc3lzcm9vdGRpcn0ke2lu Y2x1ZGVkaXJ9L0BKU19MSUJSQVJZX05BTUVAL2pzL1JlcXVpcmVkRGVmaW5lcy5oIC1pc3lzdGVt ICR7aW5jbHVkZWRpcn0vQEpTX0xJQlJBUllfTkFNRUAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbW96 anM3OC9wYXRjaGVzLzAwNy1maXgtbWlwcy1zZ2lkZWZzX2gucGF0Y2ggYi9zcmNwa2dzL21vempz NzgvcGF0Y2hlcy8wMDctZml4LW1pcHMtc2dpZGVmc19oLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hYmIxNDAyMzNhMAotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwNy1maXgtbWlwcy1zZ2lkZWZzX2gucGF0Y2gKQEAgLTAs MCArMSwxMSBAQAorLS0tIGEvbWZidC9SYW5kb21OdW0uY3BwCTIwMjAtMDQtMjkgMjM6NDk6NDAu MDAwMDAwMDAwICswMjAwCisrKysgYi9tZmJ0L1JhbmRvbU51bS5jcHAJMjAyMC0wOC0wNCAxOToy OTozNi4xMjc0NzEzMDEgKzAyMDAKK0BAIC01Miw3ICs1Miw3IEBACisgIyAgZWxpZiBkZWZpbmVk KF9fczM5MF9fKQorICMgICAgZGVmaW5lIEdFVFJBTkRPTV9OUiAzNDkKKyAjICBlbGlmIGRlZmlu ZWQoX19taXBzX18pCistIyAgICBpbmNsdWRlIDxzZ2lkZWZzLmg+CisrIyAgICBpbmNsdWRlIDxh c20vc2dpZGVmcy5oPgorICMgICAgaWYgX01JUFNfU0lNID09IF9NSVBTX1NJTV9BQkkzMgorICMg ICAgICBkZWZpbmUgR0VUUkFORE9NX05SIDQzNTMKKyAjICAgIGVsaWYgX01JUFNfU0lNID09IF9N SVBTX1NJTV9BQkk2NApkaWZmIC0tZ2l0IGEvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvY292ZXJh Z2UtYXBpLnBhdGNoIGIvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvY292ZXJhZ2UtYXBpLnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41M2U5NDc1NjFjZgotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzL2NvdmVyYWdlLWFwaS5wYXRj aApAQCAtMCwwICsxLDEwNyBAQAorRnJvbSBlNWEyZWI5OWY2NTNhZTAzYzY3ZTUzNmRmMWQ1NWQy NjVhMGExNjA1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRXZhbiBXZWxzaCA8Y29u dGFjdEBldmFud2Vsc2guY29tPgorRGF0ZTogTW9uLCAxMCBBdWcgMjAyMCAxMzoxNzozNiAtMDUw MAorU3ViamVjdDogW1BBVENIXSBCdWcgMTY1NDY5NiAtIEltcGxlbWVudCBjb2RlIGNvdmVyYWdl IEpTQVBJLgorIHI9bmJwLHB0b21hdG8sandhbGRlbgorCistLS0KKyBqcy9wdWJsaWMvZXhwZXJp bWVudGFsL0NvZGVDb3ZlcmFnZS5oIHwgMjUgKysrKysrKysrKysrKysrKysrKysrKysrKworIGpz L3NyYy9qc2ZyaWVuZGFwaS5jcHAgICAgICAgICAgICAgICAgfCAgMyArKysKKyBqcy9zcmMvbW96 LmJ1aWxkICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKworIGpzL3NyYy9zaGVsbC9qcy5jcHAg ICAgICAgICAgICAgICAgICAgfCAxMSArKysrKystLS0tLQorIDQgZmlsZXMgY2hhbmdlZCwgMzUg aW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKKyBjcmVhdGUgbW9kZSAxMDA2NDQganMvcHVi bGljL2V4cGVyaW1lbnRhbC9Db2RlQ292ZXJhZ2UuaAorCitkaWZmIC0tZ2l0IGEvanMvcHVibGlj L2V4cGVyaW1lbnRhbC9Db2RlQ292ZXJhZ2UuaCBiL2pzL3B1YmxpYy9leHBlcmltZW50YWwvQ29k ZUNvdmVyYWdlLmgKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAuLjA2Y2Mw YzljYQorLS0tIC9kZXYvbnVsbAorKysrIGIvanMvcHVibGljL2V4cGVyaW1lbnRhbC9Db2RlQ292 ZXJhZ2UuaAorQEAgLTAsMCArMSwyNSBAQAorKy8qIC0qLSBNb2RlOiBDKys7IHRhYi13aWR0aDog ODsgaW5kZW50LXRhYnMtbW9kZTogbmlsOyBjLWJhc2ljLW9mZnNldDogMiAtKi0KKysgKiB2aW06 IHNldCB0cz04IHN0cz0yIGV0IHN3PTIgdHc9ODA6CisrICogVGhpcyBTb3VyY2UgQ29kZSBGb3Jt IGlzIHN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoZSBNb3ppbGxhIFB1YmxpYworKyAqIExpY2Vu c2UsIHYuIDIuMC4gSWYgYSBjb3B5IG9mIHRoZSBNUEwgd2FzIG5vdCBkaXN0cmlidXRlZCB3aXRo IHRoaXMKKysgKiBmaWxlLCBZb3UgY2FuIG9idGFpbiBvbmUgYXQgaHR0cDovL21vemlsbGEub3Jn L01QTC8yLjAvLiAqLworKworKyNpZm5kZWYganNfZXhwZXJpbWVudGFsX0NvZGVDb3ZlcmFnZV9o CisrI2RlZmluZSBqc19leHBlcmltZW50YWxfQ29kZUNvdmVyYWdlX2gKKysKKysjaW5jbHVkZSAi anN0eXBlcy5oIiAgICAgLy8gSlNfRlJJRU5EX0FQSQorKworK3N0cnVjdCBKU19QVUJMSUNfQVBJ IEpTQ29udGV4dDsKKysKKytuYW1lc3BhY2UganMgeworKworKy8qKgorKyAqIEVuYWJsZSB0aGUg Y29sbGVjdGlvbiBvZiBsY292IGNvZGUgY292ZXJhZ2UgbWV0cmljcy4KKysgKiBNdXN0IGJlIGNh bGxlZCBiZWZvcmUgYSBydW50aW1lIGlzIGNyZWF0ZWQgYW5kIGJlZm9yZSBhbnkgY2FsbHMgdG8K KysgKiBHZXRDb2RlQ292ZXJhZ2VTdW1tYXJ5LgorKyAqLworK2V4dGVybiBKU19GUklFTkRfQVBJ IHZvaWQgRW5hYmxlQ29kZUNvdmVyYWdlKCk7CisrCisrfSAgLy8gbmFtZXNwYWNlIGpzCisrCisr I2VuZGlmICAvLyBqc19leHBlcmltZW50YWxfQ29kZUNvdmVyYWdlX2gKK2RpZmYgLS1naXQgYS9q cy9zcmMvanNmcmllbmRhcGkuY3BwIGIvanMvc3JjL2pzZnJpZW5kYXBpLmNwcAoraW5kZXggYWY3 YTAzYmQ0Li41ZjIwYzY1NzYgMTAwNjQ0CistLS0gYS9qcy9zcmMvanNmcmllbmRhcGkuY3BwCisr KysgYi9qcy9zcmMvanNmcmllbmRhcGkuY3BwCitAQCAtMjAsNiArMjAsNyBAQAorICNpbmNsdWRl ICJnYy9QdWJsaWNJdGVyYXRvcnMuaCIKKyAjaW5jbHVkZSAiZ2MvV2Vha01hcC5oIgorICNpbmNs dWRlICJqcy9DaGFyYWN0ZXJFbmNvZGluZy5oIgorKyNpbmNsdWRlICJqcy9leHBlcmltZW50YWwv Q29kZUNvdmVyYWdlLmgiICAvLyBqczo6RW5hYmxlQ29kZUNvdmVyYWdlCisgI2luY2x1ZGUgImpz L1ByaW50Zi5oIgorICNpbmNsdWRlICJqcy9Qcm94eS5oIgorICNpbmNsdWRlICJqcy9XcmFwcGVy LmgiCitAQCAtMTQ2NSw2ICsxNDY2LDggQEAgSlNfRlJJRU5EX0FQSSB2b2lkIGpzOjpFbmFibGVB Y2Nlc3NWYWxpZGF0aW9uKEpTQ29udGV4dCogY3gsIGJvb2wgZW5hYmxlZCkgeworICAgY3gtPmVu YWJsZUFjY2Vzc1ZhbGlkYXRpb24gPSBlbmFibGVkOworIH0KKyAKKytKU19GUklFTkRfQVBJIHZv aWQganM6OkVuYWJsZUNvZGVDb3ZlcmFnZSgpIHsganM6OmNvdmVyYWdlOjpFbmFibGVMQ292KCk7 IH0KKysKKyBKU19GUklFTkRfQVBJIHZvaWQganM6OlNldFJlYWxtVmFsaWRBY2Nlc3NQdHIoSlND b250ZXh0KiBjeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSlM6OkhhbmRsZU9iamVjdCBnbG9iYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGJvb2wqIGFjY2Vzc3ApIHsKK2RpZmYgLS1naXQgYS9qcy9zcmMv bW96LmJ1aWxkIGIvanMvc3JjL21vei5idWlsZAoraW5kZXggZGViMTVkODNhLi5iNGU5ZTJiMDIg MTAwNzU1CistLS0gYS9qcy9zcmMvbW96LmJ1aWxkCisrKysgYi9qcy9zcmMvbW96LmJ1aWxkCitA QCAtMjEwLDYgKzIxMCw3IEBAIEVYUE9SVFMuanMgKz0gWworIF0KKyAKKyBFWFBPUlRTLmpzLmV4 cGVyaW1lbnRhbCArPSBbCisrICAgICcuLi9wdWJsaWMvZXhwZXJpbWVudGFsL0NvZGVDb3ZlcmFn ZS5oJywKKyAgICAgJy4uL3B1YmxpYy9leHBlcmltZW50YWwvU291cmNlSG9vay5oJywKKyBdCisg CitkaWZmIC0tZ2l0IGEvanMvc3JjL3NoZWxsL2pzLmNwcCBiL2pzL3NyYy9zaGVsbC9qcy5jcHAK K2luZGV4IDRiM2Y1NDVlNi4uMjUyZGQyNGYwIDEwMDY0NAorLS0tIGEvanMvc3JjL3NoZWxsL2pz LmNwcAorKysrIGIvanMvc3JjL3NoZWxsL2pzLmNwcAorQEAgLTEwNCwxMCArMTA0LDExIEBACisg I2luY2x1ZGUgImpzL0NvbXBpbGVPcHRpb25zLmgiCisgI2luY2x1ZGUgImpzL0NvbnRleHRPcHRp b25zLmgiICAvLyBKUzo6Q29udGV4dE9wdGlvbnN7LFJlZn0KKyAjaW5jbHVkZSAianMvRGVidWcu aCIKKy0jaW5jbHVkZSAianMvRXF1YWxpdHkuaCIgICAgICAgICAgICAgICAgIC8vIEpTOjpTYW1l VmFsdWUKKy0jaW5jbHVkZSAianMvRXJyb3JSZXBvcnQuaCIgICAgICAgICAgICAgIC8vIEpTOjpQ cmludEVycm9yCistI2luY2x1ZGUgImpzL0V4Y2VwdGlvbi5oIiAgICAgICAgICAgICAgICAvLyBK Uzo6U3RlYWxQZW5kaW5nRXhjZXB0aW9uU3RhY2sKKy0jaW5jbHVkZSAianMvZXhwZXJpbWVudGFs L1NvdXJjZUhvb2suaCIgIC8vIGpzOjp7U2V0LEZvcmdldCx9U291cmNlSG9vaworKyNpbmNsdWRl ICJqcy9FcXVhbGl0eS5oIiAgICAgICAgICAgICAgICAgICAvLyBKUzo6U2FtZVZhbHVlCisrI2lu Y2x1ZGUgImpzL0Vycm9yUmVwb3J0LmgiICAgICAgICAgICAgICAgIC8vIEpTOjpQcmludEVycm9y CisrI2luY2x1ZGUgImpzL0V4Y2VwdGlvbi5oIiAgICAgICAgICAgICAgICAgIC8vIEpTOjpTdGVh bFBlbmRpbmdFeGNlcHRpb25TdGFjaworKyNpbmNsdWRlICJqcy9leHBlcmltZW50YWwvQ29kZUNv dmVyYWdlLmgiICAvLyBqczo6RW5hYmxlQ29kZUNvdmVyYWdlCisrI2luY2x1ZGUgImpzL2V4cGVy aW1lbnRhbC9Tb3VyY2VIb29rLmgiICAgIC8vIGpzOjp7U2V0LEZvcmdldCx9U291cmNlSG9vawor ICNpbmNsdWRlICJqcy9HQ1ZlY3Rvci5oIgorICNpbmNsdWRlICJqcy9Jbml0aWFsaXphdGlvbi5o IgorICNpbmNsdWRlICJqcy9KU09OLmgiCitAQCAtMTE0MTYsNyArMTE0MTcsNyBAQCBpbnQgbWFp bihpbnQgYXJnYywgY2hhcioqIGFyZ3YsIGNoYXIqKiBlbnZwKSB7CisgCisgICBlbmFibGVDb2Rl Q292ZXJhZ2UgPSBvcC5nZXRCb29sT3B0aW9uKCJjb2RlLWNvdmVyYWdlIik7CisgICBpZiAoZW5h YmxlQ29kZUNvdmVyYWdlKSB7CistICAgIGNvdmVyYWdlOjpFbmFibGVMQ292KCk7CisrICAgIGpz OjpFbmFibGVDb2RlQ292ZXJhZ2UoKTsKKyAgIH0KKyAKKyAjaWZkZWYgSlNfV0lUSE9VVF9OU1BS CmRpZmYgLS1naXQgYS9zcmNwa2dzL21vempzNzgvdGVtcGxhdGUgYi9zcmNwa2dzL21vempzNzgv dGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjVhYWYwN2Jk N2RjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9tb3pqczc4L3RlbXBsYXRlCkBAIC0wLDAg KzEsNzMgQEAKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ21vempzNzgnCitwa2duYW1lPW1vempzNzgK K3ZlcnNpb249NzguMS4wCityZXZpc2lvbj0xCit3cmtzcmM9ImZpcmVmb3gtJHt2ZXJzaW9ufSIK K2J1aWxkX3dya3NyYz1qcy9zcmMKK2J1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKK2hvc3RtYWtl ZGVwZW5kcz0icGVybCBweXRob24gcGtnLWNvbmZpZyBhdXRvbWFrZSBhdXRvY29uZjIxMyBhdXRv Y29uZi1hcmNoaXZlCisgY2FyZ28gcnVzdCBsbHZtIGNsYW5nIHdoaWNoIHB5dGhvbjMiCittYWtl ZGVwZW5kcz0iaWN1LWRldmVsIGxpYmZmaS1kZXZlbCBuc3ByLWRldmVsIHB5dGhvbi1kZXZlbCBy ZWFkbGluZS1kZXZlbAorIHpsaWItZGV2ZWwgcHl0aG9uMy1kZXZlbCBydXN0LXN0ZCIKK2RlcGVu ZHM9Im5zcHI+PTQuMTkiCitzaG9ydF9kZXNjPSJNb3ppbGxhIEphdmFTY3JpcHQgaW50ZXJwcmV0 ZXIgYW5kIGxpYnJhcnkgKDc4Lnggc2VyaWVzKSIKK21haW50YWluZXI9InE2NiA8ZGFuaWVsQG9j dGFmb3JnZS5vcmc+IgorbGljZW5zZT0iTVBMLTIuMCIKK2hvbWVwYWdlPSJodHRwczovL3d3dy5t b3ppbGxhLm9yZy9qcy8iCitkaXN0ZmlsZXM9IiR7TU9aSUxMQV9TSVRFfS9maXJlZm94L3JlbGVh c2VzLyR7dmVyc2lvbn1lc3Ivc291cmNlL2ZpcmVmb3gtJHt2ZXJzaW9ufWVzci5zb3VyY2UudGFy Lnh6IgorY2hlY2tzdW09MzYwMGEzOTZkOTMxMmM1ZTlmNjM3YjI2NzkyNmNhNDc3MWQ4NGE1NmIy NmI5NjBjYzdkNzJlOTg2ODNiNjRhMgorcGF0Y2hfYXJncz0iLU5wMSIKKworQ1hYRkxBR1MrPSIg LVduby1jbGFzcy1tZW1hY2Nlc3MiCitMREZMQUdTKz0iIC1XbCwteixzdGFjay1zaXplPTEwNDg1 NzYiCisKK2lmIFsgIiRYQlBTX1RBUkdFVF9OT19BVE9NSUM4IiBdOyB0aGVuCisJbWFrZWRlcGVu ZHMrPSIgbGliYXRvbWljLWRldmVsIgorCUxERkxBR1MrPSIgLWxhdG9taWMiCitmaQorCitkb19j b25maWd1cmUoKSB7CisJbG9jYWwgX2FyZ3MKKwkjIHVzZSBnY2MgYXMgYXNzZW1ibGVyIHRvIGF2 b2lkIGVycm9ycworCXVuc2V0IEFTCisKKwlpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KKwkJ ZXhwb3J0IEhPU1RfQ0M9Y2MKKwkJZXhwb3J0IFRBUkdFVF9DQz0iJHtDQ30iCisJCWV4cG9ydCBI T1NUX0NGTEFHUz0iLU9zIgorCQlleHBvcnQgSE9TVF9DWFhGTEFHUz0iLU9zIgorCQlfYXJncys9 IiAtLXRhcmdldD0kWEJQU19DUk9TU19UUklQTEVUIC0tZW5hYmxlLWxpbmtlcj1iZmQiCisJZmkK KworCWF1dG9jb25mLTIuMTMgb2xkLWNvbmZpZ3VyZS5pbiA+IG9sZC1jb25maWd1cmUKKworCXRv dWNoICR7d3Jrc3JjfS9qcy9zcmMvY29uZmlndXJlCisJdG91Y2ggJHt3cmtzcmN9L2pzL3NyYy9v bGQtY29uZmlndXJlCisJU0hFTEw9L2Jpbi9iYXNoIFBZVEhPTj0vdXNyL2Jpbi9weXRob24yIC4v Y29uZmlndXJlIC0tcHJlZml4PS91c3IgXAorCQktLWRpc2FibGUtamVtYWxsb2MgLS1kaXNhYmxl LW9wdGltaXplIC0tZW5hYmxlLWN0eXBlcyBcCisJCS0tZW5hYmxlLXJlYWRsaW5lIC0tZW5hYmxl LXNoYXJlZC1qcyAtLWVuYWJsZS1zeXN0ZW0tZmZpIFwKKwkJLS1lbmFibGUtdGVzdHMgLS13aXRo LWludGwtYXBpIC0td2l0aC1zeXN0ZW0taWN1IC0td2l0aC1zeXN0ZW0tbnNwciBcCisJCS0tZW5h YmxlLWhhcmRlbmluZyAtLWVuYWJsZS1yZWxlYXNlIC0td2l0aC1zeXN0ZW0temxpYiBcCisJCS0t dGFyZ2V0PSR7WEJQU19UUklQTEVUfSAtLWhvc3Q9JHtYQlBTX1RSSVBMRVR9IFwKKwkJJHtfYXJn c30KK30KKworZG9fY2hlY2soKSB7CisJZGlzdC9iaW4vanNhcGktdGVzdHMgLS1mb3JtYXQ9bm9u ZSAtLWV4Y2x1ZGUtcmFuZG9tIGJhc2ljCit9CisKK3Bvc3RfaW5zdGFsbCgpIHsKKwkjIFJlbW92 ZSB1bm5lZWRlZCBzdGF0aWMgbGlicmFyeQorCXJtIC1mICIke0RFU1RESVJ9Ii91c3IvbGliLyou YWpzCit9CisKK21vempzNzgtZGV2ZWxfcGFja2FnZSgpIHsKKwlkZXBlbmRzPSJuc3ByLWRldmVs ICR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKKwlzaG9ydF9kZXNjKz0iIC0g ZGV2ZWxvcG1lbnQgZmlsZXMiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVzci9iaW4vanM3 OC1jb25maWcKKwkJdm1vdmUgdXNyL2luY2x1ZGUKKwkJdm1vdmUgInVzci9saWIvKi5zbyIKKwkJ dm1vdmUgdXNyL2xpYi9wa2djb25maWcKKwl9Cit9CmRpZmYgLS1naXQgYS9zcmNwa2dzL21vempz NzgvdXBkYXRlIGIvc3JjcGtncy9tb3pqczc4L3VwZGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uMTk0N2UxOTIxN2YKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L21vempzNzgvdXBkYXRlCkBAIC0wLDAgKzEgQEAKK3BrZ25hbWU9J21vempzJwoKRnJvbSA5Yzk1 MGMxZGVhMTk4YTE4NzI0NTY0NjVkMDM2OWZlZjc3ODgwNjM3IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1 LCAxNyBTZXAgMjAyMCAwMTo1NDoxNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDAyLzEwMl0geWVs cC14c2w6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy95ZWxwLXhzbC90ZW1wbGF0ZSB8 IDUgKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjcGtncy95ZWxwLXhzbC90ZW1wbGF0ZSBiL3NyY3BrZ3MveWVscC14 c2wvdGVtcGxhdGUKaW5kZXggZjc0YTdmYmE2N2MuLjI2MDc5MmI1YmY1IDEwMDY0NAotLS0gYS9z cmNwa2dzL3llbHAteHNsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MveWVscC14c2wvdGVtcGxhdGUK QEAgLTEsOCArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICd5ZWxwLXhzbCcKIHBrZ25hbWU9 eWVscC14c2wKLXZlcnNpb249My4zNi4wCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQotYXJj aHM9bm9hcmNoCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBob3N0bWFrZWRlcGVuZHM9InBr Zy1jb25maWcgaW50bHRvb2wgaXRzdG9vbCBsaWJ4c2x0IgogbWFrZWRlcGVuZHM9ImxpYnhzbHQt ZGV2ZWwiCkBAIC0xMSw0ICsxMCw0IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hA dm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0 dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9ZZWxwL1hzbCIKIGRpc3RmaWxlcz0iJHtHTk9NRV9T SVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54 eiIKLWNoZWNrc3VtPTRmZTUxYzAyMzNiNzlhNGMyMDRjNjg0OThkNDVmMDliMzQyYzMwZWQwMmM0 ZTQxODUwNmMwZTM1ZjA5MDRlYzMKK2NoZWNrc3VtPTEzYmNjMjAxMWM0YzU1Mzg0MTc0ZDE4Yzdi MmYwMDE1YTk2YjA0ZWZkMjRmM2Y2NDZhZjJlNzE2N2U3YWIwZDcKCkZyb20gYjE1MTIzZDA1NzEz YjMyYTcwNTJkMDRjYTc4M2VjN2Q5M2I4NjZiOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTcgU2Vw IDIwMjAgMDE6NTU6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDAwMy8xMDJdIHllbHAtdG9vbHM6 IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy95ZWxwLXRvb2xzL3RlbXBsYXRlIHwgNSAr Ky0tLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL3llbHAtdG9vbHMvdGVtcGxhdGUgYi9zcmNwa2dzL3llbHAtdG9v bHMvdGVtcGxhdGUKaW5kZXggOWU4YTY3MGU2YjAuLjM1MDYxMGUzMzk3IDEwMDY0NAotLS0gYS9z cmNwa2dzL3llbHAtdG9vbHMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy95ZWxwLXRvb2xzL3RlbXBs YXRlCkBAIC0xLDggKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAneWVscC10b29scycKIHBr Z25hbWU9eWVscC10b29scwotdmVyc2lvbj0zLjMyLjIKK3ZlcnNpb249My4zOC4wCiByZXZpc2lv bj0xCi1hcmNocz1ub2FyY2gKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGhvc3RtYWtlZGVw ZW5kcz0icGtnLWNvbmZpZyBpdHN0b29sIGxpYnhzbHQiCiBtYWtlZGVwZW5kcz0ieWVscC14c2wi CkBAIC0xMiw0ICsxMSw0IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxp bnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHA6Ly93 d3cuZ25vbWUub3JnIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJz aW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09MTgzODU2YjVl ZDBiMGJiMmMwNWRkMTIwNGFmMDIzOTQ2ZWQ0MzY5NDNlMzVlNzg5YWZiMDI5NWU1ZTcxZThmOQor Y2hlY2tzdW09NjA3Y2U0YjNlZTg1MTdjNDJkYjkyNGEwMWE3ODY2MGEwMzMxNzU5NWM3NTgyNTcz MWVhODZhOTIwZTJiMDRiMAoKRnJvbSBiNzhlNjI1OWQ1NDk5YTYwOTUwYWFhNWU1Y2JkZGM4OTU5 Y2RmZTRiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5p ZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxNyBTZXAgMjAyMCAwMTo1MzowNCArMDIwMApT dWJqZWN0OiBbUEFUQ0ggMDA0LzEwMl0geWVscDogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNw a2dzL3llbHAvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMo KyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy95ZWxwL3RlbXBsYXRlIGIv c3JjcGtncy95ZWxwL3RlbXBsYXRlCmluZGV4IDYzY2E3YzIyNWM4Li5kMTQxZDgwZDQzNiAxMDA2 NDQKLS0tIGEvc3JjcGtncy95ZWxwL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MveWVscC90ZW1wbGF0 ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3llbHAnCiBwa2duYW1lPXll bHAKLXZlcnNpb249My4zNi4wCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5 bGU9Z251LWNvbmZpZ3VyZQogY29uZmlndXJlX2FyZ3M9Ii0tZGlzYWJsZS1zY2hlbWFzLWNvbXBp bGUgLS1kaXNhYmxlLXN0YXRpYyIKQEAgLTEzLDcgKzEzLDcgQEAgbWFpbnRhaW5lcj0iRW5ubyBC b2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIi CiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL1llbHAiCiBkaXN0ZmlsZXM9 IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJz aW9ufS50YXIueHoiCi1jaGVja3N1bT1mZDRiM2UyM2QzMWFkMmJlYmU0MmFjOGY4MDI0MmIyZDli ZWY1MTQxOGJmNjJiNTlhY2RmMjQ0MGJkOTRlZDI0CitjaGVja3N1bT1kN2NkY2UwZTZkYmE1MTNi NGRmMTA5YzFmYTdlZmZjYmYwOGJiM2Y0ZDAwZDllNzkyYzdlZGYzNDU0NGY5NjU4CiAKIHllbHAt ZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSJ5ZWxwLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0i CgpGcm9tIGYwZDM5OTJhMDM3N2ZmN2E0M2ViMDIxM2M2OGRhMDEzYTY3ZDI0MjEgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3Jn PgpEYXRlOiBXZWQsIDE2IFNlcCAyMDIwIDIwOjI5OjIxICswMjAwClN1YmplY3Q6IFtQQVRDSCAw MDUvMTAyXSB2YWxhOiB1cGRhdGUgdG8gMC41MC4wCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAg ICB8ICAyICstCiBzcmNwa2dzL3ZhbGEvdGVtcGxhdGUgfCAxMCArKysrKy0tLS0tCiAyIGZpbGVz IGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9j b21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCA4ZDM2MmUxODQ5Ni4uNzhhNGQ4ODhj MDEgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtMzE1 Nyw3ICszMTU3LDcgQEAgbGlic3lzcHJvZi0zLnNvIHN5c3Byb2YtMy4zNC4wXzEKIGxpYnN5c3By b2YtdWktMy5zbyBzeXNwcm9mLTMuMzQuMF8xCiBsaWJtb3pqcy01Mi5zbyBtb3pqczUyLTUyLjMu MF8xCiBsaWJtb3pqcy01Mi5zby4wIG1vempzNTItNTIuMy4wXzEKLWxpYnZhbGEtMC40OC5zby4w IGxpYnZhbGEtMC40OC4wXzEKK2xpYnZhbGEtMC41MC5zby4wIGxpYnZhbGEtMC41MC4wXzEKIGxp YnZhbGFkb2MtMC40OC5zby4wIGxpYnZhbGFkb2MtMC40OC4wXzEKIGxpYnZhbGFjY29kZWdlbi5z byBsaWJ2YWxhLTAuNDQuMF8xCiBsaWJwaG9kYXYtMi4wLnNvLjAgcGhvZGF2LTIuMl8xCmRpZmYg LS1naXQgYS9zcmNwa2dzL3ZhbGEvdGVtcGxhdGUgYi9zcmNwa2dzL3ZhbGEvdGVtcGxhdGUKaW5k ZXggZTk1ODgyNWYxOTYuLjYzMTBiZjQzY2NmIDEwMDY0NAotLS0gYS9zcmNwa2dzL3ZhbGEvdGVt cGxhdGUKKysrIGIvc3JjcGtncy92YWxhL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAndmFsYScKIHBrZ25hbWU9dmFsYQogIyBTaG91bGQgYmUga2VwdCBpbiBz eW5jIHdpdGggJ3ZhbGFkb2MnIChzaGFyZWQgZGlzdGZpbGVzKQotdmVyc2lvbj0wLjQ4LjkKK3Zl cnNpb249MC41MC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBjb25m aWd1cmVfYXJncz0iLS1kaXNhYmxlLXZhbGFkb2MiCkBAIC0xMiw5ICsxMiw5IEBAIHNob3J0X2Rl c2M9IkNvbXBpbGVyIGZvciB0aGUgR09iamVjdCB0eXBlIHN5c3RlbSIKIG1haW50YWluZXI9IkVu bm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMS1vci1s YXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL1ZhbGEiCi1j aGFuZ2Vsb2c9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS92YWxhL3Jhdy8wLjQ4L05F V1MiCitjaGFuZ2Vsb2c9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS92YWxhL3Jhdy8w LjUwL05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vdmFsYS8ke3ZlcnNpb24lLip9L3Zh bGEtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT05Y2VhMTZkM2JiM2RhZGRiZmUwNTU2Yjk5 ZmJmYTA4MTQ2MjMwZGI3NjUxZTFlNjc0Y2QwOGI0ZGY1Y2VmZWE5CitjaGVja3N1bT04MzhhZGM1 MGFjMDg4ODFlMDZjZjIzM2ZlZmQ5Mzc0MGRlYzE1MzAzMTJjYzFjZjEyYzM2ZDRlMGU4N2QzMDcx CiBzaGxpYl9wcm92aWRlcz0ibGlidmFsYWNjb2RlZ2VuLnNvIgogCiBwb3N0X2luc3RhbGwoKSB7 CkBAIC0yMiw4ICsyMiw4IEBAIHBvc3RfaW5zdGFsbCgpIHsKIAkjIHNvIHRoZSBwYWNrYWdlIHRo YXQgdXNlIGl0IGZhbGwgaW50byBvdXIgd3JhcHBlci4KIAkjIGtlZXAgdGhlIGJpbmFyeSB2ZXJz aW9uZWQsIHdlIGRvbid0IGtub3cgdGhlIHBvdGVudGlhbAogCSMgZmFsbG91dCBmcm9tIHVzaW5n IHRoZSB1bnZlcnNpb25lZCBvbmUKLQl2c2VkIC1lICdzfF52YXBpZ2VuPS4qfHZhcGlnZW49dmFw aWdlbi0wLjQ4fGcnIFwKLQkJIC1pICR7REVTVERJUn0vdXNyL2xpYi9wa2djb25maWcvdmFwaWdl bi0wLjQ4LnBjCisJdnNlZCAtZSAnc3xedmFwaWdlbj0uKnx2YXBpZ2VuPXZhcGlnZW4tMC41MHxn JyBcCisJCSAtaSAke0RFU1RESVJ9L3Vzci9saWIvcGtnY29uZmlnL3ZhcGlnZW4tMC41MC5wYwog fQogCiBsaWJ2YWxhX3BhY2thZ2UoKSB7CgpGcm9tIGFkZThkYTUxYTAwZWQzMzA2YmFlOTI5YTk1 ZjZmYjljMDBkOWI1ZTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xl c2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBXZWQsIDE2IFNlcCAyMDIwIDIwOjMwOjMy ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMDYvMTAyXSB2YWxhZG9jOiB1cGRhdGUgdG8gMC41MC4w CgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICB8IDIgKy0KIHNyY3BrZ3MvdmFsYWRvYy90 ZW1wbGF0ZSB8IDYgKysrLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwpp bmRleCA3OGE0ZDg4OGMwMS4uYzAxY2Y4YmRiODEgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMK KysrIGIvY29tbW9uL3NobGlicwpAQCAtMzE1OCw3ICszMTU4LDcgQEAgbGlic3lzcHJvZi11aS0z LnNvIHN5c3Byb2YtMy4zNC4wXzEKIGxpYm1vempzLTUyLnNvIG1vempzNTItNTIuMy4wXzEKIGxp Ym1vempzLTUyLnNvLjAgbW96anM1Mi01Mi4zLjBfMQogbGlidmFsYS0wLjUwLnNvLjAgbGlidmFs YS0wLjUwLjBfMQotbGlidmFsYWRvYy0wLjQ4LnNvLjAgbGlidmFsYWRvYy0wLjQ4LjBfMQorbGli dmFsYWRvYy0wLjUwLnNvLjAgbGlidmFsYWRvYy0wLjUwLjBfMQogbGlidmFsYWNjb2RlZ2VuLnNv IGxpYnZhbGEtMC40NC4wXzEKIGxpYnBob2Rhdi0yLjAuc28uMCBwaG9kYXYtMi4yXzEKIGxpYmdm c2hhcmUuc28uMiBsaWJnZnNoYXJlLTIuMC4wXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdmFsYWRv Yy90ZW1wbGF0ZSBiL3NyY3BrZ3MvdmFsYWRvYy90ZW1wbGF0ZQppbmRleCAyNGNhMDI4MzY1NS4u Y2U1YTFkN2E1NGYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvdmFsYWRvYy90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL3ZhbGFkb2MvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICd2YWxhZG9jJwogcGtnbmFtZT12YWxhZG9jCiAjIFNob3VsZCBiZSBrZXB0IGluIHN5bmMg d2l0aCAndmFsYScgKHNoYXJlZCBkaXN0ZmlsZXMpCi12ZXJzaW9uPTAuNDguOQordmVyc2lvbj0w LjUwLjAKIHJldmlzaW9uPTEKIHdya3NyYz0idmFsYS0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9 Z251LWNvbmZpZ3VyZQpAQCAtMTMsOSArMTMsOSBAQCBzaG9ydF9kZXNjPSJWYWxhIERvY3VtZW50 YXRpb24gVG9vbCIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9y Zz4iCiBsaWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2ku Z25vbWUub3JnL1Byb2plY3RzL1ZhbGEiCi1jaGFuZ2Vsb2c9Imh0dHBzOi8vZ2l0bGFiLmdub21l Lm9yZy9HTk9NRS92YWxhL3Jhdy8wLjQyL05FV1MiCitjaGFuZ2Vsb2c9Imh0dHBzOi8vZ2l0bGFi Lmdub21lLm9yZy9HTk9NRS92YWxhL3Jhdy8wLjUwL05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVf U0lURX0vdmFsYS8ke3ZlcnNpb24lLip9L3ZhbGEtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1 bT05Y2VhMTZkM2JiM2RhZGRiZmUwNTU2Yjk5ZmJmYTA4MTQ2MjMwZGI3NjUxZTFlNjc0Y2QwOGI0 ZGY1Y2VmZWE5CitjaGVja3N1bT04MzhhZGM1MGFjMDg4ODFlMDZjZjIzM2ZlZmQ5Mzc0MGRlYzE1 MzAzMTJjYzFjZjEyYzM2ZDRlMGU4N2QzMDcxCiAKIHByZV9jb25maWd1cmUoKSB7CiAJYXV0b3Jl Y29uZiAtaWYKCkZyb20gNzRiMTllNzMwMjdlNmFjNzNjNmIzODFjNzc1NWE3OWUxOWU1MDNkYyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFm b3JnZS5vcmc+CkRhdGU6IFdlZCwgMTYgU2VwIDIwMjAgMjA6MzI6MTMgKzAyMDAKU3ViamVjdDog W1BBVENIIDAwNy8xMDJdIHZhbGFiaW5kOiByZWJ1aWxkIGZvciB2YWxhLTAuNTAKCi0tLQogc3Jj cGtncy92YWxhYmluZC9wYXRjaGVzL3ZhbGEtMDUwLnBhdGNoIHwgMjUgKysrKysrKysrKysrKysr KysrKysrKysrKwogc3JjcGtncy92YWxhYmluZC90ZW1wbGF0ZSAgICAgICAgICAgICAgIHwgIDIg Ky0KIDIgZmlsZXMgY2hhbmdlZCwgMjYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvdmFsYWJpbmQvcGF0Y2hlcy92YWxhLTA1MC5wYXRjaAoK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdmFsYWJpbmQvcGF0Y2hlcy92YWxhLTA1MC5wYXRjaCBiL3Ny Y3BrZ3MvdmFsYWJpbmQvcGF0Y2hlcy92YWxhLTA1MC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uYmQ3YzZhNzQzNDUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL3ZhbGFiaW5kL3BhdGNoZXMvdmFsYS0wNTAucGF0Y2gKQEAgLTAsMCArMSwyNSBAQAorRnJv bSBmOTQyMzE1NDAyZTNmYzM4ZGVmMTRhOTc0ZGQ1YjIxMGU1ZDJjMzhkIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQorRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CitE YXRlOiBXZWQsIDE2IFNlcCAyMDIwIDIwOjM5OjI5ICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIGZp eCB3aXRoIHZhbGEtMC41MAorCistLS0KKyB2YWxhYmluZHdyaXRlci52YWxhIHwgMiArLQorIDEg ZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitkaWZmIC0tZ2l0 IHZhbGFiaW5kd3JpdGVyLnZhbGEgdmFsYWJpbmR3cml0ZXIudmFsYQoraW5kZXggMTY1Y2RmNS4u Yzc5M2M5ZiAxMDA2NDQKKy0tLSB2YWxhYmluZHdyaXRlci52YWxhCisrKysgdmFsYWJpbmR3cml0 ZXIudmFsYQorQEAgLTMzLDcgKzMzLDcgQEAgcHVibGljIGNsYXNzIFZhbGFiaW5kV3JpdGVyIDog Q29kZVZpc2l0b3IgeworIAkJaWYgKGdsaWJtb2RlKQorIAkJCWNvbnRleHQuYWRkX2RlZmluZSAo IkdPQkpFQ1QiKTsKKyAJCS8vIHJlcXVpcmVkIHRvIGF2b2lkIHVnbHkgcnVudGltZSBlcnJvcnMK Ky0JCWNvbnRleHQucHJvZmlsZSA9IFByb2ZpbGUuR09CSkVDVDsKKysJCWNvbnRleHQuc2V0X3Rh cmdldF9wcm9maWxlKFByb2ZpbGUuR09CSkVDVCk7CisgCX0KKyAKKyAJcHVibGljIHZvaWQgcGFy c2UgKCkgeworLS0gCisyLjI4LjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy92YWxhYmluZC90ZW1w bGF0ZSBiL3NyY3BrZ3MvdmFsYWJpbmQvdGVtcGxhdGUKaW5kZXggZjZmOTMxYzMwMzMuLjJiZjBk ZjMzNmUzIDEwMDY0NAotLS0gYS9zcmNwa2dzL3ZhbGFiaW5kL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvdmFsYWJpbmQvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICd2YWxhYmluZCcKIHBrZ25hbWU9dmFsYWJpbmQKIHZlcnNpb249MS43LjEKLXJldmlzaW9uPTUK K3JldmlzaW9uPTYKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25m aWcgdmFsYS1kZXZlbCBnaXQiCiBtYWtlZGVwZW5kcz0idmFsYS1kZXZlbCBnbGliLWRldmVsIgoK RnJvbSBmMzQ3YzU2MTIyNDgxMDFjNDhiZGRiOWQ2YjFjZWY4ZDUwYjU5N2I4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4K RGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDA4 LzEwMl0gZGV2aGVscDogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL2RldmhlbHAvdGVt cGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9kZXZoZWxwL3RlbXBsYXRlIGIvc3JjcGtncy9k ZXZoZWxwL3RlbXBsYXRlCmluZGV4IGExYzJkY2JiNzYyLi44NmIzNzc2YWRmZCAxMDA2NDQKLS0t IGEvc3JjcGtncy9kZXZoZWxwL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZGV2aGVscC90ZW1wbGF0 ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2RldmhlbHAnCiBwa2duYW1l PWRldmhlbHAKLXZlcnNpb249My4zNi4xCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVp bGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1tZXNvbgpAQCAtMTEsNyArMTEsNyBAQCBtYWlu dGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BM LTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvRGV2 aGVscCIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0v JHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTRjZjhlYzkzMDJiYzRhNzll MDFhYzUzYmQ5YzhiOTVhNTk2ZjcxZjM1MzUxZjQ4YjYzMjYzMjI3ZjA5YThhM2QKK2NoZWNrc3Vt PTkxOGVmYjE3MzEyMmIyNmQ0NWZhNTFjMTk0YTBiNjU5ZTYzZmVlNzcwNWY2NzIyZGIyNTM0ZmFi YzM0NTIzNjkKIAogZGV2aGVscC1kZXZlbF9wYWNrYWdlKCkgewogCXNob3J0X2Rlc2MrPSIgLSBk ZXZlbG9wbWVudCBmaWxlcyIKCkZyb20gNWZjYTFiYmNlNWU2MWU0MThlMTFlMjRkM2I4MTY0Nzcz ZDk1YzU5MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89 QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBn bWFpbC5jb20+CkRhdGU6IE1vbiwgMTQgU2VwIDIwMjAgMjA6MjI6NDMgKzA3MDAKU3ViamVjdDog W1BBVENIIDAwOS8xMDJdIGdkbDogdXBkYXRlIHRvIDMuMzQuMC4KCi0tLQogc3JjcGtncy9nZGwv dGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dkbC90ZW1wbGF0ZSBiL3NyY3BrZ3Mv Z2RsL3RlbXBsYXRlCmluZGV4IGQ1YjE4MGJkNDNiLi4zNWJlZTgwM2Y5NiAxMDA2NDQKLS0tIGEv c3JjcGtncy9nZGwvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nZGwvdGVtcGxhdGUKQEAgLTEsNyAr MSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnZGwnCiBwa2duYW1lPWdkbAotdmVyc2lvbj0z LjI4LjAKLXJldmlzaW9uPTMKK3ZlcnNpb249My4zNC4wCityZXZpc2lvbj0xCiBidWlsZF9zdHls ZT1nbnUtY29uZmlndXJlCiBidWlsZF9oZWxwZXI9ImdpciIKIGNvbmZpZ3VyZV9hcmdzPSIkKHZv cHRfZW5hYmxlIGdpciBpbnRyb3NwZWN0aW9uKSIKQEAgLTEyLDcgKzEyLDcgQEAgbWFpbnRhaW5l cj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4x LW9yLWxhdGVyLCBMR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2RldmVsb3Bl ci5nbm9tZS5vcmcvZ2RsLyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7 dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTUyY2M5 OGVjYzEwNTE0ODQ2N2IzYjJiNGUwZDI3YWU0ODRiMWI2NzEwZDUzNDEzZjc3MWVkMDdlZjFiNzM3 YjYKK2NoZWNrc3VtPTg1OGIzMGYwY2RjZTRjNGNiM2U4MzY1YTdkNTRjZTU3YzM4OGJlZmYzOGVh NTgzYmU1NDQ5YmM3OGRkYThkMDIKIAogIyBQYWNrYWdlIGJ1aWxkIG9wdGlvbnMKIGJ1aWxkX29w dGlvbnM9ImdpciIKCkZyb20gMTg2YTUxMjU5NjIxNGU4MzM0NWFlZjJkMDNjM2Y2YjQ4NWNhNjQ2 ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9j dGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMjE6MTY6NDUgKzAyMDAKU3ViamVj dDogW1BBVENIIDAxMC8xMDJdIGxpYnNvdXA6IHVwZGF0ZSB0byAyLjcyLjAKCi0tLQogc3JjcGtn cy9saWJzb3VwL3RlbXBsYXRlIHwgMjUgKysrKysrKysrKysrKystLS0tLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvbGlic291cC90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGlic291cC90ZW1wbGF0ZQppbmRl eCBmN2E5ODM3M2FjOC4uMWJhOGY4YTU4MjIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGlic291cC90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xpYnNvdXAvdGVtcGxhdGUKQEAgLTEsMTYgKzEsMTYgQEAK ICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2xpYnNvdXAnCiBwa2duYW1lPWxpYnNvdXAKLXZlcnNpb249 Mi43MC4wCit2ZXJzaW9uPTIuNzIuMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1 aWxkX2hlbHBlcj0iZ2lyIgotY29uZmlndXJlX2FyZ3M9Ii1EZ3NzYXBpPWRpc2FibGVkIC1EbnRs bT1kaXNhYmxlZAotIC1EaW50cm9zcGVjdGlvbj0kKHZvcHRfaWYgZ2lyIGVuYWJsZWQgZGlzYWJs ZWQpCi0gLUR2YXBpPSQodm9wdF9pZiB2YWxhIGVuYWJsZWQgZGlzYWJsZWQpIC1EdGxzX2NoZWNr PWZhbHNlIgorY29uZmlndXJlX2FyZ3M9Ii1EZ3NzYXBpPWRpc2FibGVkIC1EbnRsbT1kaXNhYmxl ZCAtRHN5c3Byb2Y9ZGlzYWJsZWQKKyAtRHRsc19jaGVjaz1mYWxzZSAtRGludHJvc3BlY3Rpb249 JCh2b3B0X2lmIGdpciBlbmFibGVkIGRpc2FibGVkKQorIC1EdmFwaT0kKHZvcHRfaWYgZ2lyIGVu YWJsZWQgZGlzYWJsZWQpIgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0LWRldmVsIGdsaWItZGV2 ZWwgcGtnLWNvbmZpZyBnZXR0ZXh0Ci0gJCh2b3B0X2lmIHZhbGEgJ3ZhbGEnKSIKKyAkKHZvcHRf aWYgZ2lyIHZhbGEpIgogbWFrZWRlcGVuZHM9ImxpYmdsaWItZGV2ZWwgbGlieG1sMi1kZXZlbCBz cWxpdGUtZGV2ZWwgbGlicHNsLWRldmVsCi0gYnJvdGxpLWRldmVsICQodm9wdF9pZiB2YWxhICd2 YWxhLWRldmVsJykiCisgYnJvdGxpLWRldmVsICQodm9wdF9pZiBnaXIgdmFsYS1kZXZlbCkiCiBk ZXBlbmRzPSJnbGliLW5ldHdvcmtpbmciCiBzaG9ydF9kZXNjPSJIVFRQIGxpYnJhcnkgaW1wbGVt ZW50YXRpb24gaW4gQyIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4 Lm9yZz4iCkBAIC0xOCwxMSArMTgsMTYgQEAgbGljZW5zZT0iTEdQTC0yLjEtb3ItbGF0ZXIiCiBo b21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9saWJzb3VwIgogY2hhbmdl bG9nPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vR05PTUUvbGlic291cC9nbm9t ZS0zLTM2L05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNp b24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT01NGIwMjBmNzRh ZWZhNDM4OTE4ZDhlNTNjZmY2MmUyYjFlNTllZmUyZGU1M2UwNmIxOWE0YjA3YjFmNGQ1MzQyCitj aGVja3N1bT0xNzBjM2Y4NDQ2YjBmNjVmOGU0YjkzNjAzMzQ5MTcyYjEwODVmYjg5MTdjMTgxZDEw OTYyZjAyYmI4NWY1Mzg3CiAKICMgUGFja2FnZSBidWlsZCBvcHRpb25zCi1idWlsZF9vcHRpb25z PSJnaXIgdmFsYSIKLWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIHZhbGEiCitidWlsZF9vcHRp b25zPSJnaXIiCitidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKKworIyBnaW8gdGVzdHMgY2Fu J3QgcnVuIGluIGNocm9vdAorZG9fY2hlY2soKSB7CisJOgorfQogCiBsaWJzb3VwLWRldmVsX3Bh Y2thZ2UoKSB7CiAJZGVwZW5kcz0iJHttYWtlZGVwZW5kc30gbGlic291cD49JHt2ZXJzaW9ufV8k e3JldmlzaW9ufSIKQEAgLTMxLDggKzM2LDYgQEAgbGlic291cC1kZXZlbF9wYWNrYWdlKCkgewog CQl2bW92ZSB1c3IvbGliL3BrZ2NvbmZpZy9saWJzb3VwLTIuNC5wYwogCQlpZiBbICIkYnVpbGRf b3B0aW9uX2dpciIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL2dpci0xLjAvU291cC0yLjQu Z2lyCi0JCWZpCi0JCWlmIFsgIiRidWlsZF9vcHRpb25fdmFsYSIgXTsgdGhlbgogCQkJdm1vdmUg dXNyL3NoYXJlL3ZhbGEKIAkJZmkKIAkJdm1vdmUgdXNyL2luY2x1ZGUvbGlic291cC0yLjQKCkZy b20gNGVmZTEyYzRlOWYxNzRmMzI5ZDU5NWE3MGQ3YTA0OTQwYzQ0YzAyOCBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRh dGU6IFRodSwgMTcgU2VwIDIwMjAgMDE6MTA6MjIgKzAyMDAKU3ViamVjdDogW1BBVENIIDAxMS8x MDJdIGdyaWxvOiB1cGRhdGUgdG8gMC4zLjEzLCBkcm9wIHZhbGEgb3B0aW9uCgotLS0KIHNyY3Br Z3MvZ3JpbG8vdGVtcGxhdGUgfCAxNiArKysrKysrLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg NyBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ3Jp bG8vdGVtcGxhdGUgYi9zcmNwa2dzL2dyaWxvL3RlbXBsYXRlCmluZGV4IDRhNmFiNGNhYmUzLi42 NGJhZTliZDRlMiAxMDA2NDQKLS0tIGEvc3JjcGtncy9ncmlsby90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL2dyaWxvL3RlbXBsYXRlCkBAIC0xLDEyICsxLDEyIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICdncmlsbycKIHBrZ25hbWU9Z3JpbG8KLXZlcnNpb249MC4zLjEyCit2ZXJzaW9uPTAuMy4xMwog cmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgotY29uZmln dXJlX2FyZ3M9Ii1EZW5hYmxlLWludHJvc3BlY3Rpb249JCh2b3B0X2lmIGdpciB0cnVlIGZhbHNl KQotIC1EZW5hYmxlLXZhbGE9JCh2b3B0X2lmIGdpciB0cnVlIGZhbHNlKSAtRGVuYWJsZS1ndGst ZG9jPWZhbHNlIgotaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IHBrZy1jb25maWcgZ2xpYi1kZXZl bCAkKHZvcHRfaWYgdmFsYSB2YWxhKSIKK2NvbmZpZ3VyZV9hcmdzPSIkKHZvcHRfYm9vbCBnaXIg ZW5hYmxlLWludHJvc3BlY3Rpb24pICQodm9wdF9ib29sIGdpciB2YWxhKQorIC1EZW5hYmxlLWd0 ay1kb2M9ZmFsc2UiCitob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgcGtnLWNvbmZpZyBnbGliLWRl dmVsICQodm9wdF9pZiBnaXIgdmFsYSkiCiBtYWtlZGVwZW5kcz0iZ3RrKzMtZGV2ZWwgbGlieG1s Mi1kZXZlbCBsaWJzb3VwLWRldmVsIGxpYm9hdXRoLWRldmVsCiAgdG90ZW0tcGwtcGFyc2VyLWRl dmVsIgogc2hvcnRfZGVzYz0iRnJhbWV3b3JrIGZvY3VzZWQgb24gbWFraW5nIG1lZGlhIGRpc2Nv dmVyeSBhbmQgYnJvd3NpbmcgZWFzeSIKQEAgLTE0LDExICsxNCwxMSBAQCBtYWludGFpbmVyPSJF bm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTEdQTC0yLjEtb3It bGF0ZXIiCiBob21lcGFnZT0iaHR0cDovL2xpdmUuZ25vbWUub3JnL0dyaWxvIgogZGlzdGZpbGVz PSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVy c2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZGJmYmQ2MDgyMTAzMjg4NTkyYWY5NzU2ODE4MGI5Y2M4 MWEzMzZhMjc0ZWQ1MTYwNDEyZjg3Njc1ZWMxMWE3MQorY2hlY2tzdW09ZDE0ODM3ZjIyMzQxOTQz ZWQ4YTE4OWQ5ZjA4MjdhMTcwMTZiODAyZDE4ZDBlZDA4MGUxNDEzZGUwZmRjOTI3YgogCiAjIFBh Y2thZ2UgYnVpbGQgb3B0aW9ucwotYnVpbGRfb3B0aW9ucz0iZ2lyIHZhbGEiCi1idWlsZF9vcHRp b25zX2RlZmF1bHQ9ImdpciB2YWxhIgorYnVpbGRfb3B0aW9ucz0iZ2lyIgorYnVpbGRfb3B0aW9u c19kZWZhdWx0PSJnaXIiCiAKIGdyaWxvLWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0iJHtt YWtlZGVwZW5kc30gZ3JpbG8+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCkBAIC0yNyw4ICsyNyw2 IEBAIGdyaWxvLWRldmVsX3BhY2thZ2UoKSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRlCiAJCWlmIFsg IiRidWlsZF9vcHRpb25fZ2lyIiBdOyB0aGVuCiAJCQl2bW92ZSB1c3Ivc2hhcmUvZ2lyLTEuMAot CQlmaQotCQlpZiBbICIkYnVpbGRfb3B0aW9uX3ZhbGEiIF07IHRoZW4KIAkJCXZtb3ZlIHVzci9z aGFyZS92YWxhCiAJCWZpCiAJCXZtb3ZlIHVzci9saWIvcGtnY29uZmlnCgpGcm9tIDYzZWVlOWNi NGE1ZDAwYjVjMjA0NTAzN2ZjNmZjYTI5ZWQzZjc1YWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDE3 IFNlcCAyMDIwIDAxOjE1OjM1ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMTIvMTAyXSBncmlsby1w bHVnaW5zOiB1cGRhdGUgdG8gMC4zLjEyCgotLS0KIHNyY3BrZ3MvZ3JpbG8tcGx1Z2lucy90ZW1w bGF0ZSB8IDEyICsrKysrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwg NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dyaWxvLXBsdWdpbnMvdGVtcGxh dGUgYi9zcmNwa2dzL2dyaWxvLXBsdWdpbnMvdGVtcGxhdGUKaW5kZXggOGJmNjUxMzY2ZGEuLjU1 YmNjZjFmZmI3IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dyaWxvLXBsdWdpbnMvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9ncmlsby1wbHVnaW5zL3RlbXBsYXRlCkBAIC0xLDEwICsxLDkgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ2dyaWxvLXBsdWdpbnMnCiBwa2duYW1lPWdyaWxvLXBsdWdpbnMKLXZl cnNpb249MC4zLjExCit2ZXJzaW9uPTAuMy4xMgogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVz b24KLWhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBpbnRsdG9vbCBpdHN0b29sIGdsaWItZGV2 ZWwgZ3BlcmYKLQlnbm9tZS1kb2MtdXRpbHMiCitob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcg aW50bHRvb2wgaXRzdG9vbCBnbGliLWRldmVsIGdwZXJmIGdub21lLWRvYy11dGlscyIKICMgWFhY IG1pc3NpbmcgcGx1Z2luczogZmFrZW1ldGFkYXRhLgogbWFrZWRlcGVuZHM9ImdyaWxvLWRldmVs IGdvbS1kZXZlbCBndXBucC1hdi1kZXZlbCBqc29uLWdsaWItZGV2ZWwKICBsaWJxdXZpLWRldmVs IHJlc3QtZGV2ZWwgc3FsaXRlLWRldmVsIGxpYmdjcnlwdC1kZXZlbCBnbWltZS1kZXZlbApAQCAt MTYsNCArMTUsOSBAQCBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+ IgogbGljZW5zZT0iTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cDovL2xpdmUuZ25v bWUub3JnL0dyaWxvIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJz aW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZGRlMmU2MDVi MTk5NDM0MWM2YmYwMTI0OTNlMDU2YjQwNmIwODU3MTgzNGRlYTNiM2M2NzFkNWI4YjFkY2Q3Mwor Y2hlY2tzdW09YzZiNmRmMDg2YTE2NGQ2NWMyMDZkNzAxMzljZTgwNTkxZjhmZWNhMzU0NTYxMmU0 NWI4MjNmYjRmZTRiMjU3NworCisjIGZlZWwgZnJlZSB0byBmaXgKK2RvX2NoZWNrKCkgeworCToK K30KCkZyb20gYTk1OGQ1Y2FmZDc0Y2FhMWZiZjRhZjk1ZWFiZjQ0MDgyYjM4OGZlNCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5v cmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDQ6NTY6MzQgKzAyMDAKU3ViamVjdDogW1BBVENI IDAxMy8xMDJdIGd0a3NvdXJjZXZpZXc0OiB1cGRhdGUgdG8gNC44LjAKCi0tLQogc3JjcGtncy9n dGtzb3VyY2V2aWV3NC90ZW1wbGF0ZSB8IDI5ICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9ndGtzb3VyY2V2aWV3NC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ3Rrc291 cmNldmlldzQvdGVtcGxhdGUKaW5kZXggNjg0ODcxNjc3M2MuLjVjZmQ1ZWNmYmQ5IDEwMDY0NAot LS0gYS9zcmNwa2dzL2d0a3NvdXJjZXZpZXc0L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ3Rrc291 cmNldmlldzQvdGVtcGxhdGUKQEAgLTEsMzIgKzEsMzcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J2d0a3NvdXJjZXZpZXc0JwogcGtnbmFtZT1ndGtzb3VyY2V2aWV3NAotdmVyc2lvbj00LjIuMAot cmV2aXNpb249MgordmVyc2lvbj00LjguMAorcmV2aXNpb249MQogd3Jrc3JjPSJndGtzb3VyY2V2 aWV3LSR7dmVyc2lvbn0iCi1idWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCitidWlsZF9zdHlsZT1t ZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCi1jb25maWd1cmVfYXJncz0iLS1lbmFibGUtZ2xhZGUt Y2F0YWxvZyAkKHZvcHRfZW5hYmxlIGdpciBpbnRyb3NwZWN0aW9uKQotICQodm9wdF9lbmFibGUg dmFsYSkgJCh2b3B0X2VuYWJsZSBndGtfZG9jIGd0ay1kb2MpIgorY29uZmlndXJlX2FyZ3M9Ii1E Z2xhZGVfY2F0YWxvZz10cnVlICQodm9wdF9ib29sIGdpciBnaXIpCisgJCh2b3B0X2Jvb2wgZ2ly IHZhcGkpICQodm9wdF9ib29sIGd0a19kb2MgZ3RrX2RvYykiCiBob3N0bWFrZWRlcGVuZHM9Imd0 ayszLWRldmVsIGdsaWItZGV2ZWwgaXRzdG9vbCBsaWJ4c2x0IHBrZy1jb25maWcKLSAkKHZvcHRf aWYgdmFsYSB2YWxhKSAkKHZvcHRfaWYgZ3RrX2RvYyBndGstZG9jKSIKKyAkKHZvcHRfaWYgZ2ly IHZhbGEpICQodm9wdF9pZiBndGtfZG9jIGd0ay1kb2MpIgogbWFrZWRlcGVuZHM9ImdsYWRlMy1k ZXZlbCBndGsrMy1kZXZlbCBsaWJnbGliLWRldmVsIGxpYnhtbDItZGV2ZWwKLSAkKHZvcHRfaWYg dmFsYSB2YWxhKSIKKyAkKHZvcHRfaWYgZ2lyIHZhbGEpIgogc2hvcnRfZGVzYz0iVGV4dCB3aWRn ZXQgdGhhdCBleHRlbmRzIEdUSysgR3RrVGV4dFZpZXcgd2lkZ2V0IgogbWFpbnRhaW5lcj0iRW5u byBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0 ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9HdGtTb3VyY2VW aWV3IgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L2d0a3NvdXJjZXZpZXcvJHt2ZXJzaW9uJS4q fS9ndGtzb3VyY2V2aWV3LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09YzQzMWViMjM0ZGM4 M2M3ODE5ZTU4Zjc3ZGQyYWY5NzMyNTJjNzc1MGRhMWM5ZDEyNWRkYzk0MjY4Zjk0ZjY3NQorY2hl Y2tzdW09MDBhMTkxMjE1MDBjZWRmMWJhZTk3ZjM1YWY4NjVkODM5ODQxZmQ3ODVkOWZhY2YxODg0 OThlMTM5NzViNGUxYQogCiAjIFBhY2thZ2UgYnVpbGQgb3B0aW9ucwotYnVpbGRfb3B0aW9ucz0i Z2lyIHZhbGEgZ3RrX2RvYyIKK2J1aWxkX29wdGlvbnM9ImdpciBndGtfZG9jIgogZGVzY19vcHRp b25fZ3RrX2RvYz0iQnVpbGQgQVBJIGRvY3MgdmlhIGd0ay1kb2MiCi1idWlsZF9vcHRpb25zX2Rl ZmF1bHQ9ImdpciB2YWxhIgorYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCiAKIGlmIFsgLXog IiRDUk9TU19CVUlMRCIgXTsgdGhlbgogCWJ1aWxkX29wdGlvbnNfZGVmYXVsdCs9IiBndGtfZG9j IgogZmkKIAorIyBOZWVkcyBYCitkb19jaGVjaygpIHsKKwk6Cit9CisKIGd0a3NvdXJjZXZpZXc0 LWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0iZ3RrKzMtZGV2ZWwgbGliZ2xpYi1kZXZlbCBs aWJ4bWwyLWRldmVsICR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKIAlzaG9y dF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCkBAIC0zNiwxMSArNDEsOSBAQCBndGtzb3Vy Y2V2aWV3NC1kZXZlbF9wYWNrYWdlKCkgewogCQl2bW92ZSAidXNyL2xpYi8qLnNvIgogCQl2bW92 ZSB1c3Ivc2hhcmUvZ2xhZGUKIAkJdm1vdmUgdXNyL3NoYXJlL2d0ay1kb2MKLQkJaWYgWyAiJGJ1 aWxkX29wdGlvbl92YWxhIiBdOyB0aGVuCi0JCQl2bW92ZSB1c3Ivc2hhcmUvdmFsYQotCQlmaQog CQlpZiBbICIkYnVpbGRfb3B0aW9uX2dpciIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL2dp ci0xLjAKKwkJCXZtb3ZlIHVzci9zaGFyZS92YWxhCiAJCWZpCiAJfQogfQoKRnJvbSAxYjkwYzgx YjFkZjEyMzA2ZmU1OGUwMmJhNmU3Nzg1MDdmNzcyZjRkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU2F0LCAx NSBBdWcgMjAyMCAwMDoxMjoxNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDE0LzEwMl0gdGVwbDog dXBkYXRlIHRvIDUuMC4wCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICB8 ICAyICstCiBzcmNwa2dzL3RlcGwvcGF0Y2hlcy9uby1naXIucGF0Y2ggfCA0NSArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL3RlcGwvdGVtcGxhdGUgICAgICAgICAgICAg fCAxMCArKystLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDUxIGluc2VydGlvbnMoKyksIDYgZGVsZXRp b25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy90ZXBsL3BhdGNoZXMvbm8tZ2lyLnBh dGNoCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggYzAx Y2Y4YmRiODEuLjMyMmJlZjQyMWVjIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2Nv bW1vbi9zaGxpYnMKQEAgLTM1NTQsNyArMzU1NCw3IEBAIGxpYnd4X2d0azN1X21lZGlhLTMuMC5z by4wIHd4V2lkZ2V0cy1ndGszLTMuMC40XzEKIGxpYnd4X2d0azN1X3JpYmJvbi0zLjAuc28uMCB3 eFdpZGdldHMtZ3RrMy0zLjAuNF8xCiBsaWJ3eF9ndGszdV9nbC0zLjAuc28uMCB3eFdpZGdldHMt Z3RrMy0zLjAuNF8xCiBsaWJ3eF9ndGszdV9zdGMtMy4wLnNvLjAgd3hXaWRnZXRzLWd0azMtMy4w LjRfMQotbGlidGVwbC00LnNvLjAgdGVwbC00LjIuMF8xCitsaWJ0ZXBsLTUuc28uMCB0ZXBsLTQu Mi4wXzEKIGxpYm5vbWFjc0NvcmUuc28uMyBub21hY3MtMy4xMC4yXzQKIGxpYmF1ZGl0LnNvLjEg bGliYXVkaXQtMi44LjRfMQogbGliYXVwYXJzZS5zby4wIGxpYmF1cGFyc2UtMi44LjRfMQpkaWZm IC0tZ2l0IGEvc3JjcGtncy90ZXBsL3BhdGNoZXMvbm8tZ2lyLnBhdGNoIGIvc3JjcGtncy90ZXBs L3BhdGNoZXMvbm8tZ2lyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi5lMzQwMDI3YjdmMQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvdGVwbC9wYXRjaGVz L25vLWdpci5wYXRjaApAQCAtMCwwICsxLDQ1IEBACitGcm9tIDE3ZTU3ZWQxNTY0NTBmZTU5MDAx Y2IwYTE0ZjhkODdjNDBkNmJmNzcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBEYW5p ZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KK0RhdGU6IFNhdCwgMTUgQXVnIDIwMjAg MDA6MDk6MTUgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gQWxsb3cgZGlzYWJsaW5nIGdpcgorCist LS0KKyBtZXNvbl9vcHRpb25zLnR4dCB8IDUgKysrKysKKyB0ZXBsL21lc29uLmJ1aWxkICB8IDQg KysrKworIDIgZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgbWVz b25fb3B0aW9ucy50eHQgbWVzb25fb3B0aW9ucy50eHQKK2luZGV4IGNhZDk3ZGQuLjVlOTkwODQg MTAwNjQ0CistLS0gbWVzb25fb3B0aW9ucy50eHQKKysrKyBtZXNvbl9vcHRpb25zLnR4dAorQEAg LTMsMyArMyw4IEBAIG9wdGlvbigKKyAgIHR5cGU6ICdib29sZWFuJywgdmFsdWU6IGZhbHNlLAor ICAgZGVzY3JpcHRpb246ICdCdWlsZCBBUEkgcmVmZXJlbmNlIChyZXF1aXJlcyBndGstZG9jKScK KyApCisrb3B0aW9uKAorKyAgJ2dpcicsCisrICB0eXBlOiAnYm9vbGVhbicsIHZhbHVlOiB0cnVl LAorKyAgZGVzY3JpcHRpb246ICdCdWlsZCBnb2JqZWN0LWludHJvc3BlY3Rpb24nCisrKQorZGlm ZiAtLWdpdCB0ZXBsL21lc29uLmJ1aWxkIHRlcGwvbWVzb24uYnVpbGQKK2luZGV4IDIyNmQ5MTMu LmIzNWRkM2EgMTAwNjQ0CistLS0gdGVwbC9tZXNvbi5idWlsZAorKysrIHRlcGwvbWVzb24uYnVp bGQKK0BAIC0xNjQsNiArMTY0LDggQEAgUEtHX0NPTkZJRy5nZW5lcmF0ZSh0ZXBsX2xpYiwKKyAg IGxpYnJhcmllczogVEVQTF9QVUJMSUNfREVQUywKKyApCisgCisraWYgZ2V0X29wdGlvbignZ2ly JykKKysKKyBHTk9NRS5nZW5lcmF0ZV9naXIoCisgICB0ZXBsX2xpYiwKKyAgIGV4cG9ydF9wYWNr YWdlczogJ3RlcGwtQDBAJy5mb3JtYXQoVEVQTF9BUElfVkVSU0lPTiksCitAQCAtMTgyLDMgKzE4 NCw1IEBAIEdOT01FLmdlbmVyYXRlX2dpcigKKyAgICMgU3VwcG9ydCBmb3IgZGVwcyBiZWluZyBi dWlsdCBhcyBzdWJwcm9qZWN0czoKKyAgIGRlcGVuZGVuY2llczogVEVQTF9ERVBTLAorICkKKysK KytlbmRpZgorLS0gCisyLjI4LjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy90ZXBsL3RlbXBsYXRl IGIvc3JjcGtncy90ZXBsL3RlbXBsYXRlCmluZGV4IGY0ZDM3MWQ2MDNkLi43OThkNWNkMDA3NyAx MDA2NDQKLS0tIGEvc3JjcGtncy90ZXBsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvdGVwbC90ZW1w bGF0ZQpAQCAtMSwxMCArMSwxMCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAndGVwbCcKIHBrZ25h bWU9dGVwbAotdmVyc2lvbj00LjQuMAordmVyc2lvbj01LjAuMAogcmV2aXNpb249MQotYnVpbGRf c3R5bGU9Z251LWNvbmZpZ3VyZQotYnVpbGRfaGVscGVyPSJnaXIiCi1jb25maWd1cmVfYXJncz0i JCh2b3B0X2VuYWJsZSBnaXIgaW50cm9zcGVjdGlvbikiCitidWlsZF9zdHlsZT1tZXNvbgorYnVp bGRfaGVscGVyPWdpcgorY29uZmlndXJlX2FyZ3M9IiQodm9wdF9ib29sIGdpciBnaXIpIgogaG9z dG1ha2VkZXBlbmRzPSJnbGliLWRldmVsIHBrZy1jb25maWciCiBtYWtlZGVwZW5kcz0iYW10ay1k ZXZlbCBsaWJnbGliLWRldmVsIGd0a3NvdXJjZXZpZXc0LWRldmVsIGd0ayszLWRldmVsCiAgbGli eG1sMi1kZXZlbCB1Y2hhcmRldC1kZXZlbCIKQEAgLTEzLDcgKzEzLDcgQEAgbWFpbnRhaW5lcj0i RW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3It bGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9UZXBsIgog ZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25h bWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZTZmNjY3M2E4YTI3ZThmMjgwNzI1ZGI4 ZmJhY2VjNzliMjA2NzZhZTA1NTg3NTUyMzlkMTVhOTgwOGZhYTI1NgorY2hlY2tzdW09YzZiZDI5 MDRmNTMwNDhiN2QwMTQ5MjM2NjEwYjM4ZjUwMmYyNjM0ZDM5NWQ4YjliM2M2NTk1NTNmNDA0NWE3 NAogCiBidWlsZF9vcHRpb25zPSJnaXIiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKCkZy b20gMDVhMjdkNWFlYTIwNmJjNjBhYzZhNzA1Nzc4NjQwNTIzY2I2MGUwMyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTdu PTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6IE1vbiwg MTQgU2VwIDIwMjAgMjA6Mjc6MjIgKzA3MDAKU3ViamVjdDogW1BBVENIIDAxNS8xMDJdIGdsYWRl MzogdXBkYXRlIHRvIDMuMzguMC4KCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyY3BrZ3MvZ2xhZGUzL3BhdGNoZXMvYXV0b2dlbi1h dXRvY29uZi5wYXRjaCB8IDk4IC0tLS0tLS0tLS0tLS0tLS0tLS0KIC4uLi9wYXRjaGVzL2NvbmZp Z3VyZS1zaGVsbC1xdW90ZS5wYXRjaCAgICAgICB8IDExIC0tLQogc3JjcGtncy9nbGFkZTMvcGF0 Y2hlcy9jcm9zcy5wYXRjaCAgICAgICAgICAgIHwgNDAgLS0tLS0tLS0KIHNyY3BrZ3MvZ2xhZGUz L3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgICB8IDE3ICsrLS0KIDUgZmlsZXMgY2hhbmdl ZCwgNyBpbnNlcnRpb25zKCspLCAxNjEgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQg c3JjcGtncy9nbGFkZTMvcGF0Y2hlcy9hdXRvZ2VuLWF1dG9jb25mLnBhdGNoCiBkZWxldGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9nbGFkZTMvcGF0Y2hlcy9jb25maWd1cmUtc2hlbGwtcXVvdGUucGF0 Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2dsYWRlMy9wYXRjaGVzL2Nyb3NzLnBhdGNo CgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggMzIyYmVm NDIxZWMuLmRiMTY0NmYxOGUwIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1v bi9zaGxpYnMKQEAgLTc3MCw3ICs3NzAsNyBAQCBsaWJvcmMtdGVzdC0wLjQuc28uMCBvcmMtMC40 LjExXzEKIGxpYmdtaW1lLTIuNi5zby4wIGdtaW1lLTIuNi40XzEKIGxpYnRvdGVtLXBscGFyc2Vy LnNvLjE4IHRvdGVtLXBsLXBhcnNlci0zLjI2LjFfMQogbGlidG90ZW0tcGxwYXJzZXItbWluaS5z by4xOCBsaWJ0b3RlbS1wbHBhcnNlci1taW5pLTMuMjYuMV8xCi1saWJnbGFkZXVpLTIuc28uNiBs aWJnbGFkZXVpMy0zLjEwLjBfMQorbGliZ2xhZGV1aS0yLnNvLjEzIGxpYmdsYWRldWkzLTMuMzgu MF8xCiBsaWJ0ZGIuc28uMSBsaWJ0ZGItMS4yLjJfMQogbGliZ3NzZHAtMS4yLnNvLjAgZ3NzZHAt MS4yLjBfMQogbGliZ3VwbnAtMS4yLnNvLjAgZ3VwbnAtMS4yLjBfMQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9nbGFkZTMvcGF0Y2hlcy9hdXRvZ2VuLWF1dG9jb25mLnBhdGNoIGIvc3JjcGtncy9nbGFk ZTMvcGF0Y2hlcy9hdXRvZ2VuLWF1dG9jb25mLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCBmMWRmYzM0MmI0Ny4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9nbGFkZTMvcGF0 Y2hlcy9hdXRvZ2VuLWF1dG9jb25mLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsOTggKzAsMCBA QAotRnJvbSA4MzQxY2Y3OGJjNjg3OWNiMmQ1MGUxMmI1ODg2ZWU3ZGNhM2QwOWYyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQotRnJvbTogPT9VVEYtOD9xP0phdmllcj0yMEphcmQ9QzM9QjNuPz0g PGpqYXJkb25AZ25vbWUub3JnPgotRGF0ZTogU2F0LCA5IEZlYiAyMDE5IDEzOjE1OjE3ICswMDAw Ci1TdWJqZWN0OiBbUEFUQ0hdIFVzZSBhdXRvcmVjb25mIGluc3RlYWQgZGVwcmVjYXRlZCBnbm9t ZS1jb21tb24KLQotU2VlIGh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvR25vbWVDb21t b24vTWlncmF0aW9uCi0tLS0KLSBhdXRvZ2VuLnNoICAgfCA0NyArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQotIGNvbmZpZ3VyZS5hYyB8ICA2ICsrLS0tLQot IDIgZmlsZXMgY2hhbmdlZCwgMzUgaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0pCi0KLWRp ZmYgLS1naXQgYXV0b2dlbi5zaCBhdXRvZ2VuLnNoCi1pbmRleCAxZDhjZDg0MC4uZmQzNTY2M2Ig MTAwNzU1Ci0tLS0gYXV0b2dlbi5zaAotKysrIGF1dG9nZW4uc2gKLUBAIC0xLDIyICsxLDQxIEBA Ci0gIyEvYmluL3NoCi0gIyBSdW4gdGhpcyB0byBnZW5lcmF0ZSBhbGwgdGhlIGluaXRpYWwgbWFr ZWZpbGVzLCBldGMuCi0rdGVzdCAtbiAiJHNyY2RpciIgfHwgc3JjZGlyPSQoZGlybmFtZSAiJDAi KQotK3Rlc3QgLW4gIiRzcmNkaXIiIHx8IHNyY2Rpcj0uCi0gCi0tc3JjZGlyPWBkaXJuYW1lICQw YAotLXRlc3QgLXogIiRzcmNkaXIiICYmIHNyY2Rpcj0uCi0rb2xkZGlyPSQocHdkKQotIAotLVBL R19OQU1FPSJnbGFkZSIKLStjZCAkc3JjZGlyCi0gCi0tKHRlc3QgLWYgJHNyY2Rpci9jb25maWd1 cmUuYWMgXAotLSAgJiYgdGVzdCAtZiAkc3JjZGlyL2F1dG9nZW4uc2gpIHx8IHsKLS0gICAgZWNo byAtbiAiKipFcnJvcioqOiBEaXJlY3RvcnkgIlxgJHNyY2RpclwnIiBkb2VzIG5vdCBsb29rIGxp a2UgdGhlIgotLSAgICBlY2hvICIgdG9wLWxldmVsICRQS0dfTkFNRSBkaXJlY3RvcnkiCi0tICAg IGV4aXQgMQotKyh0ZXN0IC1mIGNvbmZpZ3VyZS5hYykgfHwgewotKyAgICAgICAgZWNobyAiKioq IEVSUk9SOiBEaXJlY3RvcnkgJyRzcmNkaXInIGRvZXMgbm90IGxvb2sgbGlrZSB0aGUgdG9wLWxl dmVsIHByb2plY3QgZGlyZWN0b3J5ICoqKiIKLSsgICAgICAgIGV4aXQgMQotIH0KLSAKLS13aGlj aCBnbm9tZS1hdXRvZ2VuLnNoIHx8IHsKLS0gICAgZWNobyAiWW91IG5lZWQgdG8gaW5zdGFsbCBn bm9tZS1jb21tb24gbW9kdWxlIGFuZCBtYWtlIgotLSAgICBlY2hvICJzdXJlIHRoZSBnbm9tZS1h dXRvZ2VuLnNoIHNjcmlwdCBpcyBpbiB5b3VyIFwkUEFUSC4iCi0tICAgIGV4aXQgMQotLX0KLSsj IHNoZWxsY2hlY2sgZGlzYWJsZT1TQzIwMTYKLStQS0dfTkFNRT0kKGF1dG9jb25mIC0tdHJhY2Ug J0FDX0lOSVQ6JDEnIGNvbmZpZ3VyZS5hYykKLSsKLStpZiBbICIkIyIgPSAwIC1hICJ4JE5PQ09O RklHVVJFIiA9ICJ4IiBdOyB0aGVuCi0rICAgICAgICBlY2hvICIqKiogV0FSTklORzogSSBhbSBn b2luZyB0byBydW4gJ2NvbmZpZ3VyZScgd2l0aCBubyBhcmd1bWVudHMuIiA+JjIKLSsgICAgICAg IGVjaG8gIioqKiBJZiB5b3Ugd2lzaCB0byBwYXNzIGFueSB0byBpdCwgcGxlYXNlIHNwZWNpZnkg dGhlbSBvbiB0aGUiID4mMgotKyAgICAgICAgZWNobyAiKioqICckMCcgY29tbWFuZCBsaW5lLiIg PiYyCi0rICAgICAgICBlY2hvICIiID4mMgotK2ZpCi0rCi0rYWNsb2NhbCAtLWluc3RhbGwgfHwg ZXhpdCAxCi0rZ3RrZG9jaXplIC0tY29weSB8fCBleGl0IDEKLStpbnRsdG9vbGl6ZSAtLWZvcmNl IC0tY29weSAtLWF1dG9tYWtlIHx8IGV4aXQgMQotK2F1dG9yZWNvbmYgLS12ZXJib3NlIC0tZm9y Y2UgLS1pbnN0YWxsIHx8IGV4aXQgMQotKwotK2NkICIkb2xkZGlyIgotK2lmIFsgIiROT0NPTkZJ R1VSRSIgPSAiIiBdOyB0aGVuCi0rICAgICAgICAkc3JjZGlyL2NvbmZpZ3VyZSAiJEAiIHx8IGV4 aXQgMQotIAotLS4gZ25vbWUtYXV0b2dlbi5zaAotKyAgICAgICAgaWYgWyAiJDEiID0gIi0taGVs cCIgXTsgdGhlbgotKyAgICAgICAgICAgICAgICBleGl0IDAKLSsgICAgICAgIGVsc2UKLSsgICAg ICAgICAgICAgICAgZWNobyAiTm93IHR5cGUgJ21ha2UnIHRvIGNvbXBpbGUgJFBLR19OQU1FIiB8 fCBleGl0IDEKLSsgICAgICAgIGZpCi0rZWxzZQotKyAgICAgICAgZWNobyAiU2tpcHBpbmcgY29u ZmlndXJlIHByb2Nlc3MuIgotK2ZpCi1kaWZmIC0tZ2l0IGNvbmZpZ3VyZS5hYyBjb25maWd1cmUu YWMKLWluZGV4IGEzNTI0NjU2Li42MzhlNzgwMSAxMDA2NDQKLS0tLSBjb25maWd1cmUuYWMKLSsr KyBjb25maWd1cmUuYWMKLUBAIC0zMyw2ICszMyw4IEBAIEFNX01BSU5UQUlORVJfTU9ERShbZW5h YmxlXSkKLSAjIHRvIG1ha2UKLSBBTV9TSUxFTlRfUlVMRVMoW3llc10pCi0gCi0rQVhfQ0hFQ0tf RU5BQkxFX0RFQlVHKFt5ZXNdLFtHTk9NRV9FTkFCTEVfREVCVUddKQotKwotICMgQ2hlY2tzIGZv ciBwcm9ncmFtcwotIEFDX1BST0dfQ0MKLSBBQ19QUk9HX0lOU1RBTEwKLUBAIC03OSwxMCArODEs NiBAQCBBTV9DT05ESVRJT05BTChHTEFERV9VTlNUQUJMRSwgdGVzdCAieCRHTEFERV9VTlNUQUJM RSIgPSAieHllcyIpCi0gCi0gIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gCi0tR05PTUVfREVCVUdfQ0hFQ0sKLS1HTk9N RV9DT01QSUxFX1dBUk5JTkdTKFttYXhpbXVtXSkKLS1HTk9NRV9NQUlOVEFJTkVSX01PREVfREVG SU5FUwotLQotICMgRm9yIHRoZSBwbHVnaW5zLCB3ZSBkb24ndCB1c2UgdGhlIHdhcm5pbmcgZmxh Z3MgZGVmaW5lZCBieSBHTk9NRV9DT01QSUxFX1dBUk5JTkdTLgotICMgVGhlc2UgZmxhZ3MgaW5j bHVkZSAtV21pc3NpbmctcHJvdG90eXBlcywgd2hpY2ggd2UgcHJlZmVyIG5vdCB0byB1c2UuCi0g aWYgdGVzdCAieCRHQ0MiID0gInh5ZXMiOyB0aGVuCi0tLSAKLTIuMjQuMQotCmRpZmYgLS1naXQg YS9zcmNwa2dzL2dsYWRlMy9wYXRjaGVzL2NvbmZpZ3VyZS1zaGVsbC1xdW90ZS5wYXRjaCBiL3Ny Y3BrZ3MvZ2xhZGUzL3BhdGNoZXMvY29uZmlndXJlLXNoZWxsLXF1b3RlLnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiM2M2MGNjZjM2NS4uMDAwMDAwMDAwMDAKLS0tIGEvc3Jj cGtncy9nbGFkZTMvcGF0Y2hlcy9jb25maWd1cmUtc2hlbGwtcXVvdGUucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwxMSArMCwwIEBACi0tLS0gY29uZmlndXJlLmFjCi0rKysgY29uZmlndXJlLmFj Ci1AQCAtMjc5LDcgKzI3OSw3IEBACi0gZG5sIENoZWNrIGZvciBHREsgUXVhcnR6IGFuZCBNYWNP U1ggaW50ZWdyYXRpb24gcGFja2FnZSAKLSBkbmwgPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotIF9nZGtfdGd0PWAkUEtHX0NP TkZJRyAtLXZhcmlhYmxlPXRhcmdldHMgZ2RrLTMuMGAKLS1BTV9DT05ESVRJT05BTChbR0RLX1RB UkdFVF9RVUFSVFpdLCBbdGVzdCB4JF9nZGtfdGd0ID0geHF1YXJ0el0pCi0rQU1fQ09ORElUSU9O QUwoW0dES19UQVJHRVRfUVVBUlRaXSwgW3Rlc3QgIngkX2dka190Z3QiID0geHF1YXJ0el0pCi0g aWYgdGVzdCAieCRfZ2RrX3RndCIgPSB4cXVhcnR6OyB0aGVuIAotICAgIFBLR19DSEVDS19NT0RV TEVTKEdUS19NQUMsIGd0ay1tYWMtaW50ZWdyYXRpb24tZ3RrMykKLSAKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvZ2xhZGUzL3BhdGNoZXMvY3Jvc3MucGF0Y2ggYi9zcmNwa2dzL2dsYWRlMy9wYXRjaGVz L2Nyb3NzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwM2IxZDdlODQ2ZS4u MDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9nbGFkZTMvcGF0Y2hlcy9jcm9zcy5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDQwICswLDAgQEAKLS0tLSBtNC9weXRob24ubTQKLSsrKyBtNC9weXRo b24ubTQKLUBAIC00MywxNyArNDMsOSBAQAotIFtBQ19SRVFVSVJFKFtBTV9QQVRIX1BZVEhPTl0p Ci0gQUNfTVNHX0NIRUNLSU5HKGZvciBoZWFkZXJzIHJlcXVpcmVkIHRvIGNvbXBpbGUgcHl0aG9u IGV4dGVuc2lvbnMpCi0gZG5sIGRlZHVjZSBQWVRIT05fSU5DTFVERVMKLS1hbV9weXRob25fcHJp bnRfaW5jbHVkZXM9IlwKLS1mcm9tIGRpc3R1dGlscyBpbXBvcnQgc3lzY29uZmlnIGFzIHNjCi0t aW5jbGRpcnMgPSBbW11dCi0tCi0tZm9yIGQgaW4gc2MuZ2V0X2NvbmZpZ192YXIoJ0lOQ0xESVJT VE9NQUtFJykuc3BsaXQoKToKLS0gICAgaW5jbGRpcnMuYXBwZW5kKCctSScgKyBkKQotLQotLXBy aW50KCcgJy5qb2luKGluY2xkaXJzKSkKLS0iCi0reGJwc19zeXNyb290PWAkQ0MgLS1wcmludC1z eXNyb290YAotIGlmIHRlc3QgIngkUFlUSE9OX0lOQ0xVREVTIiA9PSB4OyB0aGVuCi0tICBQWVRI T05fSU5DTFVERVM9YCRQWVRIT04gLWMgIiRhbV9weXRob25fcHJpbnRfaW5jbHVkZXMiYAotKyAg UFlUSE9OX0lOQ0xVREVTPWAiJHhicHNfc3lzcm9vdC8kUFlUSE9OLWNvbmZpZyIgLS1pbmNsdWRl c2AKLSBmaQotIEFDX1NVQlNUKFBZVEhPTl9JTkNMVURFUykKLSBkbmwgY2hlY2sgaWYgdGhlIGhl YWRlcnMgZXhpc3Q6Ci1AQCAtNzQsMTYgKzY2LDExIEBACi0gW0FDX1JFUVVJUkUoW0FNX0NIRUNL X1BZVEhPTl9IRUFERVJTXSkKLSBBQ19NU0dfQ0hFQ0tJTkcoZm9yIGxpYnJhcmllcyByZXF1aXJl ZCB0byBlbWJlZCBweXRob24pCi0gZG5sIGRlZHVjZSBQWVRIT05fTElCUwotLWFtX3B5dGhvbl9w cmludF9saWJzPSJcCi0tZnJvbSBkaXN0dXRpbHMgaW1wb3J0IHN5c2NvbmZpZyBhcyBzYwotLWxp YnMgPSAnLUwnICsgc2MuZ2V0X2NvbmZpZ192YXIoJ0xJQkRJUicpLnN0cmlwKCkKLS1saWJzICs9 ICcgJyArIHNjLmdldF9jb25maWdfdmFyKCdCTERMSUJSQVJZJykKLS1wcmludChsaWJzKSIKLSBh bV9weXRob25fcHJpbnRfbGliX2xvYz0iXAotIGZyb20gZGlzdHV0aWxzIGltcG9ydCBzeXNjb25m aWcgYXMgc2MKLSBwcmludChzYy5nZXRfY29uZmlnX3ZhcignTElCRElSJykpIgotIGlmIHRlc3Qg IngkUFlUSE9OX0xJQlMiID09IHg7IHRoZW4KLS0JUFlUSE9OX0xJQlM9YCRQWVRIT04gLWMgIiRh bV9weXRob25fcHJpbnRfbGlicyJgCi0rCVBZVEhPTl9MSUJTPWAiJHhicHNfc3lzcm9vdC8kUFlU SE9OLWNvbmZpZyIgLS1sZGZsYWdzIC0tZW1iZWRgCi0gZmkKLSBpZiB0ZXN0ICJ4JFBZVEhPTl9M SUJfTE9DIiA9PSB4OyB0aGVuCi0gCVBZVEhPTl9MSUJfTE9DPWAkUFlUSE9OIC1jICIkYW1fcHl0 aG9uX3ByaW50X2xpYl9sb2MiYApkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbGFkZTMvdGVtcGxhdGUg Yi9zcmNwa2dzL2dsYWRlMy90ZW1wbGF0ZQppbmRleCA5MTBjMTM4ZGY2YS4uZDNkOGUwZDVkY2Yg MTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ2xhZGUzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ2xhZGUz L3RlbXBsYXRlCkBAIC0xLDMyICsxLDI3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbGFkZTMn CiBwa2duYW1lPWdsYWRlMwotdmVyc2lvbj0zLjIyLjIKK3ZlcnNpb249My4zOC4wCiByZXZpc2lv bj0xCiB3cmtzcmM9ImdsYWRlLSR7dmVyc2lvbn0iCi1idWlsZF9zdHlsZT1nbnUtY29uZmlndXJl CitidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCi1jb25maWd1cmVfYXJncz0i LS1kaXNhYmxlLXN0YXRpYyAtLWVuYWJsZS1kZWJ1Zz1pbmZvIFBZVEhPTj0vdXNyL2Jpbi9weXRo b24zCi0gLS1lbmFibGUtZ2xhZGV1aSAkKHZvcHRfZW5hYmxlIGdpciBpbnRyb3NwZWN0aW9uKSIK K2NvbmZpZ3VyZV9hcmdzPSItRGd0a19kb2M9dHJ1ZSAtRG1hbj10cnVlICQodm9wdF9ib29sIGdp ciBpbnRyb3NwZWN0aW9uKSIKIGhvc3RtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBnbm9tZS1kb2Mt dXRpbHMgaW50bHRvb2wgaXRzdG9vbCBwa2ctY29uZmlnCi0gYXV0b21ha2UgYXV0b2NvbmYtYXJj aGl2ZSBsaWJ0b29sIHllbHAtdG9vbHMgZ2V0dGV4dC1kZXZlbCBndGstZG9jIgotbWFrZWRlcGVu ZHM9Imd0ayszLWRldmVsIHB5dGhvbjMtZ29iamVjdC1kZXZlbCB3ZWJraXQyZ3RrLWRldmVsIgor IGdqcy1kZXZlbCB5ZWxwLXRvb2xzIGdldHRleHQtZGV2ZWwgZ3RrLWRvYyIKK21ha2VkZXBlbmRz PSJndGsrMy1kZXZlbCBweXRob24zLWdvYmplY3QtZGV2ZWwgd2Via2l0Mmd0ay1kZXZlbCBnanMt ZGV2ZWwiCiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMgaGljb2xvci1pY29uLXRoZW1lIgog c2hvcnRfZGVzYz0iVXNlciBJbnRlcmZhY2UgRGVzaWduZXIgZm9yIEdUSyszIgogbWFpbnRhaW5l cj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3It bGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHA6Ly9nbGFkZS5nbm9tZS5v cmcvIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L2dsYWRlLyR7dmVyc2lvbiUuKn0vZ2xhZGUt JHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1lZGVmYTZlYjI0YjRkMTViZDUyNTg5MTIxZGMx MDliYzA4YzI4NjE1N2M0MTI4OGRlYjc0ZGQ5Y2MzZjI2YTIxCitjaGVja3N1bT00YTkxNGM1YzBi MTljMmU1MmZkNGFkMTUwNzdkNDA2ZGJmZDZhZDAyNDVlMjM5ZDczOTBiZjg3ZjI3ZDkxMDNjCiBs aWIzMmRpc2FibGVkPXllcwogCiAjIFBhY2thZ2UgYnVpbGQgb3B0aW9ucwogYnVpbGRfb3B0aW9u cz0iZ2lyIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCiAKLXByZV9jb25maWd1cmUoKSB7 Ci0JTk9DT05GSUdVUkU9MSAuL2F1dG9nZW4uc2gKLX0KLQogZG9fY2hlY2soKSB7CiAJIyBSZXF1 aXJlIHJ1bm5pbmcgeHNlcnZlcgogCToKCkZyb20gNTRlMjBlMDEwN2ZlODgyYzdmYjBiNGY1ZDE3 NzA0YTRiYmYxNTQ2OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1D ND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2Rh bmhxeEBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMTUgU2VwIDIwMjAgMDU6Mzg6NTUgKzA3MDAKU3Vi amVjdDogW1BBVENIIDAxNi8xMDJdIGxpYmhhbmR5OiByZWJ1aWxkIGZvciBnbGFkZTMtMy4zOC4w LCBtb3ZlZCB0byBHTk9NRQoKLS0tCiBzcmNwa2dzL2xpYmhhbmR5L3RlbXBsYXRlIHwgMTQgKysr KysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliaGFuZHkvdGVtcGxhdGUgYi9zcmNwa2dzL2xp YmhhbmR5L3RlbXBsYXRlCmluZGV4IDM4NjcyZjFmYjZlLi5jMTljMzg5N2VmYSAxMDA2NDQKLS0t IGEvc3JjcGtncy9saWJoYW5keS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xpYmhhbmR5L3RlbXBs YXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGliaGFuZHknCiBwa2du YW1lPWxpYmhhbmR5CiB2ZXJzaW9uPTAuMC4xMwotcmV2aXNpb249MQorcmV2aXNpb249Mgogd3Jr c3JjPSJsaWJoYW5keS12JHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxw ZXI9ImdpciIKQEAgLTE0LDE0ICsxNCwyMCBAQCBtYWtlZGVwZW5kcz0iZ3RrKzMtZGV2ZWwgbGli Z2xpYi1kZXZlbCAkKHZvcHRfaWYgZ2xhZGUgZ2xhZGUzLWRldmVsKSIKIHNob3J0X2Rlc2M9Ikxp YnJhcnkgZnVsbCBvZiBHVEsrIHdpZGdldHMgZm9yIG1vYmlsZSBwaG9uZXMiCiBtYWludGFpbmVy PSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTEdQTC0yLjAtb3It bGF0ZXIiCi1ob21lcGFnZT0iaHR0cHM6Ly9zb3VyY2UucHVyaS5zbS9MaWJyZW01L2xpYmhhbmR5 IgotZGlzdGZpbGVzPSJodHRwczovL3NvdXJjZS5wdXJpLnNtL0xpYnJlbTUvbGliaGFuZHkvLS9h cmNoaXZlL3Yke3ZlcnNpb259L2xpYmhhbmR5LXYke3ZlcnNpb259LnRhci5neiIKLWNoZWNrc3Vt PTEzOGJlYzk0ZTY2ZDE1YTdhMTkzNTBiNjU4NDVkNDUyOWJjZDk2OWVhOTEzYWIzZWI0MzhmNTZm ZTQ3ZDVkMzcKK2hvbWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvbGliaGFu ZHkiCitkaXN0ZmlsZXM9IiRob21lcGFnZS8tL2FyY2hpdmUvdiR7dmVyc2lvbn0vbGliaGFuZHkt diR7dmVyc2lvbn0udGFyLmd6IgorY2hlY2tzdW09NjQ1MzU1YTAwOWYyM2YyNTRlYWVjNzc1MmI5 NDg5YzNjMmY1ODMyMzk3ZmNlYzc1NDMzYTdlMDBlZmJmZTUyZgogCiBidWlsZF9vcHRpb25zPSJn aXIgdmFsYSBnbGFkZSIKIGRlc2Nfb3B0aW9uX2dsYWRlPSJHZW5lcmF0ZSBnbGFkZSBtb2R1bGVz IGFuZCBjYXRhbG9nIGZpbGVzIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIgdmFsYSBnbGFk ZSIKIAorIyBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvbGliaGFuZHkvLS9tZXJnZV9y ZXF1ZXN0cy81NTkKK0NGTEFHUz0iLURHUENfT0JKRUNUX0RFTElNSVRFUj1HTEFERV9QUk9QRVJU WV9ERUZfT0JKRUNUX0RFTElNSVRFUiIKK0NGTEFHUys9IiAtRGdsYWRlX3dpZGdldF9hY3Rpb25f Z2V0X2NsYXNzPWdsYWRlX3dpZGdldF9hY3Rpb25fZ2V0X2RlZiIKKyMgaHR0cHM6Ly9naXRsYWIu Z25vbWUub3JnL0dOT01FL2dsYWRlLy0vY29tbWl0L2JiNjI2ZGQKK0NGTEFHUys9IiAtREdXQV9H RVRfQ0xBU1M9R0xBREVfV0lER0VUX0FEQVBUT1JfR0VUX0FEQVBUT1JfQ0xBU1MiCisKIGxpYmhh bmR5LWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259 XyR7cmV2aXNpb259IGd0ayszLWRldmVsIgogCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBm aWxlcyIKCkZyb20gZTY3ZDcxYzBhMzYzYjc1YTQ3YWE0MjM3NTk4ZGYwMDQzMzkwN2FiMCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBuPTIwVHI9 RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+CkRh dGU6IE1vbiwgMTQgU2VwIDIwMjAgMjA6MzQ6NDYgKzA3MDAKU3ViamVjdDogW1BBVENIIDAxNy8x MDJdIGxpYmhhbmR5MTogdXBkYXRlIHRvIDEuMC4wCgotLS0KIHNyY3BrZ3MvbGliaGFuZHkxL3Rl bXBsYXRlIHwgNyArKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAyIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliaGFuZHkxL3RlbXBsYXRlIGIvc3Jj cGtncy9saWJoYW5keTEvdGVtcGxhdGUKaW5kZXggMTkxZTY5OGIwZDYuLjU0N2FmY2NhYTExIDEw MDY0NAotLS0gYS9zcmNwa2dzL2xpYmhhbmR5MS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xpYmhh bmR5MS90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2xpYmhh bmR5MScKIHBrZ25hbWU9bGliaGFuZHkxCi12ZXJzaW9uPTAuOTAuMAordmVyc2lvbj0xLjAuMAog cmV2aXNpb249MQogd3Jrc3JjPSJsaWJoYW5keS0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9bWVz b24KQEAgLTE2LDEyICsxNiwxNSBAQCBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRs aW51eC5vcmc+IgogbGljZW5zZT0iTEdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6 Ly9zb3VyY2UucHVyaS5zbS9MaWJyZW01L2xpYmhhbmR5IgogZGlzdGZpbGVzPSIke0dOT01FX1NJ VEV9L2xpYmhhbmR5LyR7dmVyc2lvbiUuKn0vbGliaGFuZHktJHt2ZXJzaW9ufS50YXIueHoiCi1j aGVja3N1bT02YWIwODY5YTNhYTQ4MzI5OGVhMjBlYzg5ZDRjMTRjMzhiYTRkZTQxNmIzMzE4MWQy MWUxNWE2MDM5ZGY1OTg1CitjaGVja3N1bT1hOTM5ODU4MmY0N2I3ZDcyOTIwNWQ2ZWFjMGMwNjhm ZWYzNWFhZjI0OWZkZDU3ZWVhMzcyNGY4NTE4ZDI2Njk5CiAKIGJ1aWxkX29wdGlvbnM9ImdpciBn bGFkZSIKIGRlc2Nfb3B0aW9uX2dsYWRlPSJHZW5lcmF0ZSBnbGFkZSBtb2R1bGVzIGFuZCBjYXRh bG9nIGZpbGVzIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIgZ2xhZGUiCiAKKyMgaHR0cHM6 Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dsYWRlLy0vY29tbWl0L2JiNjI2ZGQKK0NGTEFHUz0i LURHV0FfR0VUX0NMQVNTPUdMQURFX1dJREdFVF9BREFQVE9SX0dFVF9BREFQVE9SX0NMQVNTIgor CiBsaWJoYW5keTEtZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSIke3NvdXJjZXBrZ30+PSR7 dmVyc2lvbn1fJHtyZXZpc2lvbn0gZ3RrKzMtZGV2ZWwiCiAJY29uZmxpY3RzPSJsaWJoYW5keS1k ZXZlbD49MCIKCkZyb20gNWZlNjJmYTcyN2NlZDU2OTBlMDNmZjNkMmU1MDYyOTM3MDMwOWE0YSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBuPTIw VHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMTUgU2VwIDIwMjAgMDU6NDE6MDEgKzA3MDAKU3ViamVjdDogW1BBVENIIDAx OC8xMDJdIGxpYnhmY2U0dWk6IHJlYnVpbGQgZm9yIGdsYWRlMy0zLjM4LjAKCi0tLQogc3JjcGtn cy9saWJ4ZmNlNHVpL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9u KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJ4ZmNlNHVpL3RlbXBs YXRlIGIvc3JjcGtncy9saWJ4ZmNlNHVpL3RlbXBsYXRlCmluZGV4IDI1YTVjNDc5OTU1Li4wYTYy YWQxODJiNCAxMDA2NDQKLS0tIGEvc3JjcGtncy9saWJ4ZmNlNHVpL3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvbGlieGZjZTR1aS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ2xpYnhmY2U0dWknCiBwa2duYW1lPWxpYnhmY2U0dWkKIHZlcnNpb249NC4xNC4xCi1y ZXZpc2lvbj00CityZXZpc2lvbj01CiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBidWlsZF9o ZWxwZXI9ImdpciIKIGNvbmZpZ3VyZV9hcmdzPSItLWRpc2FibGUtc3RhdGljIgoKRnJvbSBiYWE4 YTk4Y2Q5ODU5MTYyOWYxOTY3ZGRhNTJmMzgxZTU3MTQ4ZThjIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1 LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDE5LzEwMl0gbGli ZGF6emxlOiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIHNyY3BrZ3MvbGliZGF6emxlL3RlbXBsYXRl IHwgMjQgKysrKysrKysrKysrKystLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTQgaW5zZXJ0 aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJkYXp6bGUv dGVtcGxhdGUgYi9zcmNwa2dzL2xpYmRhenpsZS90ZW1wbGF0ZQppbmRleCA1YWMwOWZlZWZjOS4u OWI4MDdiZTk0NzQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGliZGF6emxlL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvbGliZGF6emxlL3RlbXBsYXRlCkBAIC0xLDIzICsxLDI5IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdsaWJkYXp6bGUnCiBwa2duYW1lPWxpYmRhenpsZQotdmVyc2lvbj0zLjM2LjAK K3ZlcnNpb249My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVs cGVyPSJnaXIiCi1jb25maWd1cmVfYXJncz0iLURlbmFibGVfZ3RrX2RvYz1mYWxzZSAtRHdpdGhf dmFwaT0kKHZvcHRfaWYgdmFsYSB0cnVlIGZhbHNlKQotIC1Ed2l0aF9pbnRyb3NwZWN0aW9uPSQo dm9wdF9pZiBnaXIgdHJ1ZSBmYWxzZSkiCi1ob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgcGtn LWNvbmZpZyAkKHZvcHRfaWYgdmFsYSAndmFsYScpIgorY29uZmlndXJlX2FyZ3M9Ii1EZW5hYmxl X2d0a19kb2M9ZmFsc2UKKyAkKHZvcHRfYm9vbCBnaXIgd2l0aF92YXBpKQorICQodm9wdF9ib29s IGdpciB3aXRoX2ludHJvc3BlY3Rpb24pIgoraG9zdG1ha2VkZXBlbmRzPSJnbGliLWRldmVsIHBr Zy1jb25maWcgJCh2b3B0X2lmIGdpciB2YWxhKSIKIG1ha2VkZXBlbmRzPSJndGsrMy1kZXZlbCBs aWJnbGliLWRldmVsIgogc2hvcnRfZGVzYz0iTGlicmFyeSB0byBkZWxpZ2h0IHlvdXIgdXNlcnMg d2l0aCBmYW5jeSBmZWF0dXJlcyIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9p ZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBz Oi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9saWJkYXp6bGUiCi1jaGFuZ2Vsb2c9Imh0dHBzOi8v cmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9HTk9NRS9saWJkYXp6bGUvbGliZGF6emxlLTMtMzIv TkVXUyIKK2NoYW5nZWxvZz0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2xpYmRhenps ZS8tL3Jhdy8ke3ZlcnNpb259L05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vbGliZGF6 emxlLyR7dmVyc2lvbiUuKn0vbGliZGF6emxlLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09 ODJiMzFiYmY1NTBmYzYyOTcwYzc4YmY3ZjlkNTVlNWZhZTViOGVhMTNiMjRmZTJkMTNjOGM2MDM5 NDA5ZDk1OAorY2hlY2tzdW09ZTE4YWYyODIxNzk0M2JjZWMxMDY1ODUyOThhOTFlYzNkYTQ4YWEz YWQ2MmZkMDk5MmYyM2YwYzcwY2QxNjc4ZgogCi1idWlsZF9vcHRpb25zPSJnaXIgdmFsYSIKLWJ1 aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIHZhbGEiCitidWlsZF9vcHRpb25zPSJnaXIiCitidWls ZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKKworIyBuZWVkcyBYCitkb19jaGVjaygpIHsKKwk6Cit9 CiAKIGxpYmRhenpsZS1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVuZHM9IiR7c291cmNlcGtnfS0k e3ZlcnNpb259XyR7cmV2aXNpb259IGd0ayszLWRldmVsIgpAQCAtMjgsOCArMzQsNiBAQCBsaWJk YXp6bGUtZGV2ZWxfcGFja2FnZSgpIHsKIAkJdm1vdmUgInVzci9saWIvKi5zbyIKIAkJaWYgWyAi JGJ1aWxkX29wdGlvbl9naXIiIF07IHRoZW4KIAkJCXZtb3ZlIHVzci9zaGFyZS9naXItMS4wCi0J CWZpCi0JCWlmIFsgIiRidWlsZF9vcHRpb25fdmFsYSIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3No YXJlL3ZhbGEKIAkJZmkKIAl9CgpGcm9tIDE1ODY5MTM3NjhiNWRkNDFmMTk0NzY5ZmU2OTNkNTYy MWM4OTFlNmQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBv PUMzPUEwbj0yMFRyPUUxPUJBPUE3bj0yMEM9QzM9QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhA Z21haWwuY29tPgpEYXRlOiBUdWUsIDE1IFNlcCAyMDIwIDA1OjQzOjEzICswNzAwClN1YmplY3Q6 IFtQQVRDSCAwMjAvMTAyXSBhbmp1dGE6IHJlYnVpbGQgZm9yIGdsYWRlMy0zLjM4LjAsIHZhbGEt MC41MAoKLS0tCiBzcmNwa2dzL2FuanV0YS90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2Vk LCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYW5q dXRhL3RlbXBsYXRlIGIvc3JjcGtncy9hbmp1dGEvdGVtcGxhdGUKaW5kZXggYzIxYzkyN2NkMTIu LmI0NmQ1OGFlYWZlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2FuanV0YS90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL2FuanV0YS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ2FuanV0YScKIHBrZ25hbWU9YW5qdXRhCiB2ZXJzaW9uPTMuMzQuMAotcmV2aXNpb249Mwor cmV2aXNpb249NAogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogYnVpbGRfaGVscGVyPSJnaXIg cWVtdSIKIGNvbmZpZ3VyZV9hcmdzPSItLWRpc2FibGUtY29tcGlsZS13YXJuaW5ncyAtLWRpc2Fi bGUtc2NoZW1hcy1jb21waWxlCgpGcm9tIDQzMDAzZTQzNGY2YWRhN2Y3ODE1ZWVkM2I3ZmU0Zjdl OTU0ZjIyY2MgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRh bmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDA1OjI4OjE0ICswMjAw ClN1YmplY3Q6IFtQQVRDSCAwMjEvMTAyXSBzeXNwcm9mOiB1cGRhdGUgdG8gMy4zOC4wCgotLS0K IGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQog Li4uL3BhdGNoZXMvYWxsb2NzLWJ5LXNpemUtZ3NpemUtZm9ybWF0LnBhdGNoIHwgIDEyIC0tCiBz cmNwa2dzL3N5c3Byb2YvcGF0Y2hlcy9idWlsZC5wYXRjaCAgICAgICAgICAgfCAgMTAgKysKIHNy Y3BrZ3Mvc3lzcHJvZi9wYXRjaGVzL211c2wucGF0Y2ggICAgICAgICAgICB8IDEyNSArKysrKysr KysrKysrKysrKysKIHNyY3BrZ3Mvc3lzcHJvZi90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAg ICB8ICAgNCArLQogNSBmaWxlcyBjaGFuZ2VkLCAxMzkgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRp b25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9zeXNwcm9mL3BhdGNoZXMvYWxsb2Nz LWJ5LXNpemUtZ3NpemUtZm9ybWF0LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9z eXNwcm9mL3BhdGNoZXMvYnVpbGQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3N5 c3Byb2YvcGF0Y2hlcy9tdXNsLnBhdGNoCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2Nv bW1vbi9zaGxpYnMKaW5kZXggZGIxNjQ2ZjE4ZTAuLjlhZDQ0M2E1MzY3IDEwMDY0NAotLS0gYS9j b21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTMxNTMsOCArMzE1Myw4IEBAIGxp Ym1pcmFnZS5zby4xMSBsaWJtaXJhZ2UtMy4xLjBfMQogbGlid2todG1sdG94LnNvLjAgbGlid2to dG1sdG9wZGYtMC4xMi41XzEKIGxpYml4bWwuc28uMTAgbGlidXBucDEuOC0xLjguMl8xCiBsaWJ1 cG5wLnNvLjEzIGxpYnVwbnAxLjgtMS44LjRfMQotbGlic3lzcHJvZi0zLnNvIHN5c3Byb2YtMy4z NC4wXzEKLWxpYnN5c3Byb2YtdWktMy5zbyBzeXNwcm9mLTMuMzQuMF8xCitsaWJzeXNwcm9mLTQu c28gc3lzcHJvZi0zLjM3LjkwXzEKK2xpYnN5c3Byb2YtdWktNC5zbyBzeXNwcm9mLTMuMzcuOTBf MQogbGlibW96anMtNTIuc28gbW96anM1Mi01Mi4zLjBfMQogbGlibW96anMtNTIuc28uMCBtb3pq czUyLTUyLjMuMF8xCiBsaWJ2YWxhLTAuNTAuc28uMCBsaWJ2YWxhLTAuNTAuMF8xCmRpZmYgLS1n aXQgYS9zcmNwa2dzL3N5c3Byb2YvcGF0Y2hlcy9hbGxvY3MtYnktc2l6ZS1nc2l6ZS1mb3JtYXQu cGF0Y2ggYi9zcmNwa2dzL3N5c3Byb2YvcGF0Y2hlcy9hbGxvY3MtYnktc2l6ZS1nc2l6ZS1mb3Jt YXQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFmZWUwN2ViYmMyLi4wMDAw MDAwMDAwMAotLS0gYS9zcmNwa2dzL3N5c3Byb2YvcGF0Y2hlcy9hbGxvY3MtYnktc2l6ZS1nc2l6 ZS1mb3JtYXQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1kaWZmIC1yYXVO IHNyYy90ZXN0cy9hbGxvY3MtYnktc2l6ZS5jIHNyYy90ZXN0cy9hbGxvY3MtYnktc2l6ZS5jCi0t LS0gc3JjL3Rlc3RzL2FsbG9jcy1ieS1zaXplLmMJMjAyMC0wMy0yMiAyMDowMDoxMi42NzcwNDg4 MjIgKzAxMDAKLSsrKyBzcmMvdGVzdHMvYWxsb2NzLWJ5LXNpemUuYwkyMDIwLTAzLTIyIDIwOjAx OjA3LjAwMDQxODM2MSArMDEwMAotQEAgLTEwOSw3ICsxMDksNyBAQAotICAgICB7Ci0gICAgICAg Y29uc3QgSXRlbSAqaXRlbSA9ICZnX2FycmF5X2luZGV4IChhciwgSXRlbSwgaSk7Ci0gCi0tICAg ICAgZ19wcmludCAoIiUiR19HVUlOVDY0X0ZPUk1BVCIsJSJHX0dVSU5UNjRfRk9STUFUIiwlIkdf R1VJTlQ2NF9GT1JNQVQiXG4iLAotKyAgICAgIGdfcHJpbnQgKCIlIkdfR1NJWkVfRk9STUFUIiwl IkdfR1NJWkVfRk9STUFUIiwlIkdfR1NJWkVfRk9STUFUIlxuIiwKLSAgICAgICAgICAgICAgICBp dGVtLT5zaXplLCBpdGVtLT5jbXAsIGl0ZW0tPmNvdW50KTsKLSAgICAgfQotIH0KZGlmZiAtLWdp dCBhL3NyY3BrZ3Mvc3lzcHJvZi9wYXRjaGVzL2J1aWxkLnBhdGNoIGIvc3JjcGtncy9zeXNwcm9m L3BhdGNoZXMvYnVpbGQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLmFiN2MyYzFjMTY0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9zeXNwcm9mL3BhdGNo ZXMvYnVpbGQucGF0Y2gKQEAgLTAsMCArMSwxMCBAQAorLS0tIHNyYy9saWJzeXNwcm9mLWNhcHR1 cmUvc3lzcHJvZi1jYXB0dXJlLWNvbmRpdGlvbi5jCisrKysgc3JjL2xpYnN5c3Byb2YtY2FwdHVy ZS9zeXNwcm9mLWNhcHR1cmUtY29uZGl0aW9uLmMKK0BAIC0yNjksNiArMjY5LDcgQEAgc3lzcHJv Zl9jYXB0dXJlX2NvbmRpdGlvbl9jb3B5IChjb25zdCBTeXNwcm9mQ2FwdHVyZUNvbmRpdGlvbiAq c2VsZikKKyAgICAgfQorIAorICAgc3lzcHJvZl9hc3NlcnRfbm90X3JlYWNoZWQgKCk7CisrICBy ZXR1cm4gTlVMTDsKKyB9CisgCisgc3RhdGljIHZvaWQKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc3lz cHJvZi9wYXRjaGVzL211c2wucGF0Y2ggYi9zcmNwa2dzL3N5c3Byb2YvcGF0Y2hlcy9tdXNsLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41MWY0MjEyODg5MQot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvc3lzcHJvZi9wYXRjaGVzL211c2wucGF0Y2gKQEAg LTAsMCArMSwxMjUgQEAKK0Zyb20gMWQyZGUzMmU5N2JmNTU2OWNjMzNlZTlhOTBjODczZTFiYmQy YjFlNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IHE2NiA8ZGFuaWVsQG9jdGFmb3Jn ZS5vcmc+CitEYXRlOiBTdW4sIDYgU2VwIDIwMjAgMTg6MjE6MzcgKzAyMDAKK1N1YmplY3Q6IFtQ QVRDSF0gZml4IGJ1aWxkIG9uIG11c2wKKworLS0tCisgLi4uL3N5c3Byb2YtY2FwdHVyZS1jdXJz b3IuYyAgICAgICAgICAgICAgICAgIHwgIDEgKworIC4uLi9zeXNwcm9mLWNhcHR1cmUtcmVhZGVy LmMgICAgICAgICAgICAgICAgICB8ICAxICsKKyBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3By b2YtY2FwdHVyZS11dGlsLmMgfCAgMSArCisgLi4uL3N5c3Byb2YtY2FwdHVyZS13cml0ZXItY2F0 LmMgICAgICAgICAgICAgIHwgIDEgKworIHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1j b2xsZWN0b3IuYyAgICB8ICAxICsKKyBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY29t cGF0LmggICAgICAgfCAyOCArKysrKysrKysrKysrKysrKysrCisgc3JjL2xpYnN5c3Byb2YtY2Fw dHVyZS9zeXNwcm9mLXBsYXRmb3JtLmMgICAgIHwgIDEgKworIDcgZmlsZXMgY2hhbmdlZCwgMzQg aW5zZXJ0aW9ucygrKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvbGlic3lzcHJvZi1jYXB0dXJl L3N5c3Byb2YtY29tcGF0LmgKKworZGlmZiAtLWdpdCBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5 c3Byb2YtY2FwdHVyZS1jdXJzb3IuYyBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY2Fw dHVyZS1jdXJzb3IuYworaW5kZXggMjQ1NjNmMC4uYmI3N2E2MCAxMDA2NDQKKy0tLSBzcmMvbGli c3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY2FwdHVyZS1jdXJzb3IuYworKysrIHNyYy9saWJzeXNw cm9mLWNhcHR1cmUvc3lzcHJvZi1jYXB0dXJlLWN1cnNvci5jCitAQCAtNTksNiArNTksNyBAQAor ICNpbmNsdWRlIDxhc3NlcnQuaD4KKyAjaW5jbHVkZSA8c3RkbGliLmg+CisgCisrI2luY2x1ZGUg InN5c3Byb2YtY29tcGF0LmgiCisgI2luY2x1ZGUgInN5c3Byb2YtY2FwdHVyZS1jb25kaXRpb24u aCIKKyAjaW5jbHVkZSAic3lzcHJvZi1jYXB0dXJlLWN1cnNvci5oIgorICNpbmNsdWRlICJzeXNw cm9mLWNhcHR1cmUtcmVhZGVyLmgiCitkaWZmIC0tZ2l0IHNyYy9saWJzeXNwcm9mLWNhcHR1cmUv c3lzcHJvZi1jYXB0dXJlLXJlYWRlci5jIHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1j YXB0dXJlLXJlYWRlci5jCitpbmRleCA2N2M2YjI4Li4yNTJkMDA2IDEwMDY0NAorLS0tIHNyYy9s aWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jYXB0dXJlLXJlYWRlci5jCisrKysgc3JjL2xpYnN5 c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNhcHR1cmUtcmVhZGVyLmMKK0BAIC02OCw2ICs2OCw3IEBA CisgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorICNpbmNsdWRlIDx1bmlzdGQuaD4KKyAKKysjaW5j bHVkZSAic3lzcHJvZi1jb21wYXQuaCIKKyAjaW5jbHVkZSAic3lzcHJvZi1jYXB0dXJlLXJlYWRl ci5oIgorICNpbmNsdWRlICJzeXNwcm9mLWNhcHR1cmUtdXRpbC1wcml2YXRlLmgiCisgI2luY2x1 ZGUgInN5c3Byb2YtY2FwdHVyZS13cml0ZXIuaCIKK2RpZmYgLS1naXQgc3JjL2xpYnN5c3Byb2Yt Y2FwdHVyZS9zeXNwcm9mLWNhcHR1cmUtdXRpbC5jIHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lz cHJvZi1jYXB0dXJlLXV0aWwuYworaW5kZXggMGJiZWEwNi4uMGU1ZjdlNyAxMDA2NDQKKy0tLSBz cmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY2FwdHVyZS11dGlsLmMKKysrKyBzcmMvbGli c3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY2FwdHVyZS11dGlsLmMKK0BAIC01Niw2ICs1Niw3IEBA CisgCisgI2luY2x1ZGUgImNvbmZpZy5oIgorIAorKyNpbmNsdWRlIDxzdGRpbnQuaD4KKyAjaW5j bHVkZSA8YXNzZXJ0Lmg+CisgI2luY2x1ZGUgPGVycm5vLmg+CisgI2luY2x1ZGUgPHVuaXN0ZC5o PgorZGlmZiAtLWdpdCBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY2FwdHVyZS13cml0 ZXItY2F0LmMgc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNhcHR1cmUtd3JpdGVyLWNh dC5jCitpbmRleCA2NjE3MWI5Li45ZmViYmJiIDEwMDY0NAorLS0tIHNyYy9saWJzeXNwcm9mLWNh cHR1cmUvc3lzcHJvZi1jYXB0dXJlLXdyaXRlci1jYXQuYworKysrIHNyYy9saWJzeXNwcm9mLWNh cHR1cmUvc3lzcHJvZi1jYXB0dXJlLXdyaXRlci1jYXQuYworQEAgLTYzLDYgKzYzLDcgQEAKKyAj aW5jbHVkZSA8c3RkbGliLmg+CisgI2luY2x1ZGUgPHVuaXN0ZC5oPgorIAorKyNpbmNsdWRlICJz eXNwcm9mLWNvbXBhdC5oIgorICNpbmNsdWRlICJzeXNwcm9mLWNhcHR1cmUuaCIKKyAjaW5jbHVk ZSAic3lzcHJvZi1tYWNyb3MtaW50ZXJuYWwuaCIKKyAKK2RpZmYgLS1naXQgc3JjL2xpYnN5c3By b2YtY2FwdHVyZS9zeXNwcm9mLWNvbGxlY3Rvci5jIHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lz cHJvZi1jb2xsZWN0b3IuYworaW5kZXggMWQ3YTBkNi4uN2FmNmM5NiAxMDA2NDQKKy0tLSBzcmMv bGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY29sbGVjdG9yLmMKKysrKyBzcmMvbGlic3lzcHJv Zi1jYXB0dXJlL3N5c3Byb2YtY29sbGVjdG9yLmMKK0BAIC03Myw2ICs3Myw3IEBACisgCisgI2lu Y2x1ZGUgIm1hcHBlZC1yaW5nLWJ1ZmZlci5oIgorIAorKyNpbmNsdWRlICJzeXNwcm9mLWNvbXBh dC5oIgorICNpbmNsdWRlICJzeXNwcm9mLWNhcHR1cmUtdXRpbC1wcml2YXRlLmgiCisgI2luY2x1 ZGUgInN5c3Byb2YtY29sbGVjdG9yLmgiCisgI2luY2x1ZGUgInN5c3Byb2YtbWFjcm9zLWludGVy bmFsLmgiCitkaWZmIC0tZ2l0IHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jb21wYXQu aCBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY29tcGF0LmgKK25ldyBmaWxlIG1vZGUg MTAwNjQ0CitpbmRleCAwMDAwMDAwLi5hZTliZjEwCistLS0gL2Rldi9udWxsCisrKysgc3JjL2xp YnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNvbXBhdC5oCitAQCAtMCwwICsxLDI4IEBACisrLyog YWRkZWQgYnkgcTY2IEAgdm9pZCB0byBmaXggYnVpbGQgb24gbXVzbCAqLworKworKyNwcmFnbWEg b25jZQorKworKyNpZm5kZWYgX19HTElCQ19fCisrCisrI2luY2x1ZGUgPHN0ZGxpYi5oPgorKyNp bmNsdWRlIDxlcnJuby5oPgorKworKy8qIGZyb20gZ2xpYmMgKi8KKysjaWZuZGVmIFRFTVBfRkFJ TFVSRV9SRVRSWQorKyMgZGVmaW5lIFRFTVBfRkFJTFVSRV9SRVRSWShleHByZXNzaW9uKSBcCisr ICAoX19leHRlbnNpb25fXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAoeyBsb25nIGludCBfX3Jlc3VsdDsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgICAg ZG8gX19yZXN1bHQgPSAobG9uZyBpbnQpIChleHByZXNzaW9uKTsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCisrICAgICAgIHdoaWxlIChfX3Jlc3VsdCA9PSAtMUwgJiYgZXJybm8g PT0gRUlOVFIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAgICBfX3Jlc3Vs dDsgfSkpCisrI2VuZGlmCisrCisrc3RhdGljIGlubGluZSB2b2lkICpyZWFsbG9jYXJyYXkodm9p ZCAqcCwgc2l6ZV90IG5tZW1iLCBzaXplX3Qgc3opIHsKKysgICAgaWYgKHN6ICYmIChubWVtYiA+ ICgoc2l6ZV90KS0xIC8gc3opKSkgeworKyAgICAgICAgZXJybm8gPSBFTk9NRU07CisrICAgICAg ICByZXR1cm4gTlVMTDsKKysgICAgfQorKyAgICByZXR1cm4gcmVhbGxvYyhwLCBubWVtYiAqIHN6 KTsKKyt9CisrCisrI2VuZGlmCitkaWZmIC0tZ2l0IHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lz cHJvZi1wbGF0Zm9ybS5jIHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1wbGF0Zm9ybS5j CitpbmRleCBhODBhYjg5Li4wNWJkNTkwIDEwMDY0NAorLS0tIHNyYy9saWJzeXNwcm9mLWNhcHR1 cmUvc3lzcHJvZi1wbGF0Zm9ybS5jCisrKysgc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9m LXBsYXRmb3JtLmMKK0BAIC02MCw2ICs2MCw3IEBACisgI2luY2x1ZGUgPHN5cy9zeXNjYWxsLmg+ CisgI2luY2x1ZGUgPHVuaXN0ZC5oPgorIAorKyNpbmNsdWRlICJzeXNwcm9mLWNvbXBhdC5oIgor ICNpbmNsdWRlICJzeXNwcm9mLWNhcHR1cmUtdXRpbC1wcml2YXRlLmgiCisgI2luY2x1ZGUgInN5 c3Byb2YtcGxhdGZvcm0uaCIKKyAKKy0tIAorMi4yOC4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv c3lzcHJvZi90ZW1wbGF0ZSBiL3NyY3BrZ3Mvc3lzcHJvZi90ZW1wbGF0ZQppbmRleCA2OGJjYTYw MjU1My4uZWFlNTFlYTczNTYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvc3lzcHJvZi90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL3N5c3Byb2YvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdzeXNwcm9mJwogcGtnbmFtZT1zeXNwcm9mCi12ZXJzaW9uPTMuMzYuMAordmVy c2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBjb25maWd1cmVfYXJn cz0iLURlbmFibGVfZ3RrPXRydWUgLURzeXN0ZW1kdW5pdGRpcj1kZWxldGVtZSIKQEAgLTExLDcg KzExLDcgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIK IGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0i aHR0cDovL3N5c3Byb2YuY29tLyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9 LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTg2 NzBkYjRkYWNmN2IyMTlkMzBjNTc1YzQ2NWIxN2M4ZWQ2NzI0ZGJhZGUzNDdmMmNkZTk1NDhiZmYw MzkxMDgKK2NoZWNrc3VtPThiY2Q3MjhkYzJmNzRlNmY1ODk0MTAzNzBkZmIxYjg4MDE0NjhiYjNj YzE4MDNhYTI0MDczNWE3Y2ZmMjQxY2UKIAogIyBmb3IgSVRTIHJ1bGVzCiBpZiBbICIkQ1JPU1Nf QlVJTEQiIF07IHRoZW4KCkZyb20gOWMyNWEwYTNjYTNiZDQyYmE2OTk1NzVkNTIzNDEyNzA0ODkw YzU5YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVs QG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3Vi amVjdDogW1BBVENIIDAyMi8xMDJdIHRyYWNrZXI6IHVwZGF0ZSB0byAyLjMuNgoKLS0tCiAuLi4v dHJhY2tlci9wYXRjaGVzL2ZhaWxpbmctdGVzdC1tdXNsLnBhdGNoICAgfCAyNCArKysrKysrKysr KysrKysrKysrCiBzcmNwa2dzL3RyYWNrZXIvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAg fCAgOSArKystLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDI5IGluc2VydGlvbnMoKyksIDQgZGVsZXRp b25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy90cmFja2VyL3BhdGNoZXMvZmFpbGlu Zy10ZXN0LW11c2wucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3RyYWNrZXIvcGF0Y2hlcy9m YWlsaW5nLXRlc3QtbXVzbC5wYXRjaCBiL3NyY3BrZ3MvdHJhY2tlci9wYXRjaGVzL2ZhaWxpbmct dGVzdC1tdXNsLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5m ZjE4ZjA2ZGU5YgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvdHJhY2tlci9wYXRjaGVzL2Zh aWxpbmctdGVzdC1tdXNsLnBhdGNoCkBAIC0wLDAgKzEsMjQgQEAKK0Zyb20gNWVlN2Q1OGYxOTU0 MmQxZGFjODcyYmFkZDcyNjY5ZWUyODhiZDMxNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgorRGF0ZTogV2VkLCAxNiBT ZXAgMjAyMCAyMjoxMTo1MCArMDIwMAorU3ViamVjdDogW1BBVENIXSBkcm9wIHRlc3QgdGhhdCBm YWlscyBvbiBtdXNsCisKKy0tLQorIHRlc3RzL2xpYnRyYWNrZXItY29tbW9uL21lc29uLmJ1aWxk IHwgMSAtCisgMSBmaWxlIGNoYW5nZWQsIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCB0ZXN0 cy9saWJ0cmFja2VyLWNvbW1vbi9tZXNvbi5idWlsZCB0ZXN0cy9saWJ0cmFja2VyLWNvbW1vbi9t ZXNvbi5idWlsZAoraW5kZXggNTViN2FkYS4uNjk2ODhlMCAxMDA2NDQKKy0tLSB0ZXN0cy9saWJ0 cmFja2VyLWNvbW1vbi9tZXNvbi5idWlsZAorKysrIHRlc3RzL2xpYnRyYWNrZXItY29tbW9uL21l c29uLmJ1aWxkCitAQCAtMiw3ICsyLDYgQEAgbGlidHJhY2tlcl9jb21tb25fdGVzdHMgPSBbCisg ICAgICdkYXRlLXRpbWUnLAorICAgICAnZGJ1cycsCisgICAgICdmaWxlLXV0aWxzJywKKy0gICAg J3NjaGVkJywKKyAgICAgJ3R5cGUtdXRpbHMnLAorICAgICAndXRpbHMnLAorIF0KKy0tIAorMi4y OC4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdHJhY2tlci90ZW1wbGF0ZSBiL3NyY3BrZ3MvdHJh Y2tlci90ZW1wbGF0ZQppbmRleCAzNzA3NGNiMzQ4ZC4uODEwNjc1Njc3ZmUgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3MvdHJhY2tlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3RyYWNrZXIvdGVtcGxhdGUK QEAgLTEsMjIgKzEsMjMgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3RyYWNrZXInCiBwa2duYW1l PXRyYWNrZXIKLXZlcnNpb249Mi4zLjEKLXJldmlzaW9uPTIKK3ZlcnNpb249Mi4zLjYKK3Jldmlz aW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKIGNvbmZpZ3VyZV9h cmdzPSItRGRvY3M9ZmFsc2UgLURmdHM9dHJ1ZSAtRGZ1bmN0aW9uYWxfdGVzdHM9ZmFsc2UKICAt RGpvdXJuYWw9dHJ1ZSAtRG1hbj10cnVlIC1EbmV0d29ya19tYW5hZ2VyPWVuYWJsZWQgLURzdGVt bWVyPWRpc2FibGVkCiAgLURzeXN0ZW1kX3VzZXJfc2VydmljZXM9bm8iCi1ob3N0bWFrZWRlcGVu ZHM9InBrZy1jb25maWcgZ2xpYi1kZXZlbCB2YWxhIgoraG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0 IHBrZy1jb25maWcgZ2xpYi1kZXZlbCB2YWxhIgogbWFrZWRlcGVuZHM9ImRidXMtZGV2ZWwgbGli Z2xpYi1kZXZlbCBpY3UtZGV2ZWwganNvbi1nbGliLWRldmVsCiAgbGlic291cC1kZXZlbCBsaWJ4 bWwyLWRldmVsIHNxbGl0ZS1kZXZlbCBOZXR3b3JrTWFuYWdlci1kZXZlbAogIGJhc2gtY29tcGxl dGlvbiIKK2NoZWNrZGVwZW5kcz0idGFyIgogc2hvcnRfZGVzYz0iUGVyc29uYWwgc2VhcmNoIHRv b2wgYW5kIHN0b3JhZ2Ugc3lzdGVtIgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lk bGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6 Ly9saXZlLmdub21lLm9yZy9UcmFja2VyIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L3RyYWNr ZXIvJHt2ZXJzaW9uJS4qfS90cmFja2VyLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09YjY3 NDg3MjZlNDY1YWQyZjRkOTkxNTYwNjM0YjFmZDBkZjg4NDFmM2Q5ODFiM2I4MzdjNDE2MmFiZWRm MDhhMQorY2hlY2tzdW09YmQxZWI0MTIyMTM1Mjk2ZmE3YjU3YjFjM2ZhMGVkNjAyY2Y3ZDA2YzBi OGU1MzRkMGJkMTdmZjVmOTdmZWVmMgogCiBpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KIAlo b3N0bWFrZWRlcGVuZHMrPSIgZGJ1cyIKCkZyb20gZjMxYTBmNzEzMTY1NTM4NjgyMDAwMTg5OTNh MWFkZjllMTJlMDk4NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVz YSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTcgU2VwIDIwMjAgMDA6MjI6MTEg KzAyMDAKU3ViamVjdDogW1BBVENIIDAyMy8xMDJdIHRyYWNrZXItbWluZXJzOiB1cGRhdGUgdG8g Mi4zLjUKCi0tLQogc3JjcGtncy90cmFja2VyLW1pbmVycy90ZW1wbGF0ZSB8IDE3ICsrKysrKysr Ky0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdHJhY2tlci1taW5lcnMvdGVtcGxhdGUgYi9zcmNwa2dz L3RyYWNrZXItbWluZXJzL3RlbXBsYXRlCmluZGV4IDAyMGMxMjRmMzIyLi42MDBkMTQ0MjE4YyAx MDA2NDQKLS0tIGEvc3JjcGtncy90cmFja2VyLW1pbmVycy90ZW1wbGF0ZQorKysgYi9zcmNwa2dz L3RyYWNrZXItbWluZXJzL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAndHJhY2tlci1taW5lcnMnCiBwa2duYW1lPXRyYWNrZXItbWluZXJzCi12ZXJzaW9uPTIu My4xCi1yZXZpc2lvbj0zCit2ZXJzaW9uPTIuMy41CityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1t ZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1EdHJhY2tlcl9jb3JlPXN5c3RlbSAtRGRvY3M9ZmFsc2Ug LURleHRyYWN0PXRydWUKICAtRGZ1bmN0aW9uYWxfdGVzdHM9ZmFsc2UgLURjdWU9ZW5hYmxlZCAt RGV4aWY9ZW5hYmxlZCAtRGZsYWM9ZW5hYmxlZApAQCAtMTAsMjEgKzEwLDIyIEBAIGNvbmZpZ3Vy ZV9hcmdzPSItRHRyYWNrZXJfY29yZT1zeXN0ZW0gLURkb2NzPWZhbHNlIC1EZXh0cmFjdD10cnVl CiAgLUR0aWZmPWVuYWJsZWQgLUR2b3JiaXM9ZW5hYmxlZCAtRHhtbD1lbmFibGVkIC1EeG1wPWVu YWJsZWQgLUR4cHM9ZW5hYmxlZAogIC1EYmF0dGVyeV9kZXRlY3Rpb249dXBvd2VyIC1EY2hhcnNl dF9kZXRlY3Rpb249aWN1CiAgLURnZW5lcmljX21lZGlhX2V4dHJhY3Rvcj1nc3RyZWFtZXIgLURn c3RyZWFtZXJfYmFja2VuZD1kaXNjb3ZlcmVyCi0gLURzeXN0ZW1kX3VzZXJfc2VydmljZXM9bm8i CisgLURzeXN0ZW1kX3VzZXJfc2VydmljZXM9bm8gLURtaW5lcl9yc3M9ZmFsc2UiCiBob3N0bWFr ZWRlcGVuZHM9InBrZy1jb25maWcgZ2xpYi1kZXZlbCBpbnRsdG9vbCIKIG1ha2VkZXBlbmRzPSJ0 cmFja2VyLWRldmVsIGZmbXBlZy1kZXZlbCBkYnVzLWRldmVsIGV4ZW1waS1kZXZlbCBsaWJmbGFj LWRldmVsCiAgbGliZ2xpYi1kZXZlbCBsaWJnZXhpdjItZGV2ZWwgZ3N0cmVhbWVyMS1kZXZlbCBp Y3UtZGV2ZWwgbGliY3VlLWRldmVsCiAgbGliZXhpZi1kZXZlbCBsaWJnc2YtZGV2ZWwgbGliZ3hw cy1kZXZlbCBsaWJpcHRjZGF0YS1kZXZlbCBsaWJqcGVnLXR1cmJvLWRldmVsCiAgbGlib3NpbmZv LWRldmVsIGxpYnBuZy1kZXZlbCBsaWJzZWNjb21wLWRldmVsIHRpZmYtZGV2ZWwgbGlieG1sMi1k ZXZlbAogIGxpYnZvcmJpcy1kZXZlbCBwb3BwbGVyLWdsaWItZGV2ZWwgdGFnbGliLWRldmVsIHRv dGVtLXBsLXBhcnNlci1kZXZlbAotIHVwb3dlci1kZXZlbCB6bGliLWRldmVsIGdzdC1wbHVnaW5z LWJhc2UxLWRldmVsIGdpZmxpYi1kZXZlbCIKKyB1cG93ZXItZGV2ZWwgemxpYi1kZXZlbCBnc3Qt cGx1Z2lucy1iYXNlMS1kZXZlbCBnaWZsaWItZGV2ZWwgbGliaGFyZmJ1enoiCiBzaG9ydF9kZXNj PSJEYXRhIG1pbmVycyBmb3IgdHJhY2tlciIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0 b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9 Imh0dHBzOi8vZGV2ZWxvcGVyLmdub21lLm9yZy9saWJ0cmFja2VyLW1pbmVyL3N0YWJsZSIKIGRp c3RmaWxlcz0iJHtHTk9NRV9TSVRFfS90cmFja2VyLW1pbmVycy8ke3ZlcnNpb24lLip9L3RyYWNr ZXItbWluZXJzLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09N2IxZGUwNmE3YTc5ZWExYzc4 MTNjOGEyMWY4Y2QxYzU1ZjJiOTVmNzk5Y2Y5ZjQ3ZjAyMDRmM2JlOGE1OTBlMAorY2hlY2tzdW09 OTUwOWQzN2ZiMjlhY2QyMzMwNThmNGRmNWJkMTIzNGI2OTJhYzZmOTQ2YmMyZTVmN2I4ZGJmNTFk ZmU1YjlmYQogCi0jIE1pc3NpbmcgbGliZ3JzcwotY29uZmlndXJlX2FyZ3MrPSIgLURtaW5lcl9y c3M9ZmFsc2UiCi1tYWtlZGVwZW5kcys9IiBsaWJoYXJmYnV6eiIKKyMgcmVsaWVzIG9uIHVuc3Vw cG9ydGVkIG9wcyBpbiBjaHJvb3QKK2RvX2NoZWNrKCkgeworCToKK30KCkZyb20gNGVlODQxMTM0 MTdjMmE3YjdmMmQ2ODU5NDk1YmYxMTE1YmJiMjU4MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTcg U2VwIDIwMjAgMDA6MTU6NDkgKzAyMDAKU3ViamVjdDogW1BBVENIIDAyNC8xMDJdIE5ldyBwYWNr YWdlOiB0cmFja2VyMy0zLjAuMAoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAgIHwgIDMg KystCiBzcmNwa2dzL2xpYnRyYWNrZXIzICAgICAgIHwgIDEgKwogc3JjcGtncy90cmFja2VyMy1k ZXZlbCAgICB8ICAxICsKIHNyY3BrZ3MvdHJhY2tlcjMvdGVtcGxhdGUgfCA1NyArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHNyY3BrZ3MvdHJhY2tlcjMvdXBkYXRlICAg fCAgMSArCiA1IGZpbGVzIGNoYW5nZWQsIDYyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkK IGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL2xpYnRyYWNrZXIzCiBjcmVhdGUgbW9kZSAxMjAw MDAgc3JjcGtncy90cmFja2VyMy1kZXZlbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvdHJh Y2tlcjMvdGVtcGxhdGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3RyYWNrZXIzL3VwZGF0 ZQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IDlhZDQ0 M2E1MzY3Li41MDc3Nzc1MWY0YyAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21t b24vc2hsaWJzCkBAIC0zMTQ0LDYgKzMxNDQsOCBAQCBsaWJjcHBjbXMuc28uMSBjcHBjbXMtMS4w LjVfMQogbGliY3BwZGIuc28uMCBjcHBkYi0wLjMuMV8xCiBsaWJ0cmFja2VyLWNvbnRyb2wtMi4w LnNvLjAgbGlidHJhY2tlci0yLjAuMF8xCiBsaWJ0cmFja2VyLXNwYXJxbC0yLjAuc28uMCBsaWJ0 cmFja2VyLTIuMC4wXzEKK2xpYnRyYWNrZXItbWluZXItMi4wLnNvLjAgbGlidHJhY2tlci0yLjAu MV8xCitsaWJ0cmFja2VyLXNwYXJxbC0zLjAuc28uMCBsaWJ0cmFja2VyMy0zLjAuMF8xCiBsaWJk b2NrYXBwLnNvLjMgbGliZG9ja2FwcC0wLjcuMl8xCiBsaWJrcmRjY29yZS5zby41IGtyZGMtMTcu MDQuM18xCiBsaWJBcmN1cy5zby4zIGxpYkFyY3VzLTMuMS4wXzEKQEAgLTMxNjIsNyArMzE2NCw2 IEBAIGxpYnZhbGFkb2MtMC41MC5zby4wIGxpYnZhbGFkb2MtMC41MC4wXzEKIGxpYnZhbGFjY29k ZWdlbi5zbyBsaWJ2YWxhLTAuNDQuMF8xCiBsaWJwaG9kYXYtMi4wLnNvLjAgcGhvZGF2LTIuMl8x CiBsaWJnZnNoYXJlLnNvLjIgbGliZ2ZzaGFyZS0yLjAuMF8xCi1saWJ0cmFja2VyLW1pbmVyLTIu MC5zby4wIGxpYnRyYWNrZXItMi4wLjFfMQogbGlidGFjYWNzLnNvLjEgdGFjYWNzLTQuMC40LjI4 XzEKIGxpYmZmbXMyLnNvLjQgbGliZmZtczItMi4yMy4xXzEKIGxpYmRkY3V0aWwuc28uMyBkZGN1 dGlsLTAuOS45XzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGlidHJhY2tlcjMgYi9zcmNwa2dzL2xp YnRyYWNrZXIzCm5ldyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4IDAwMDAwMDAwMDAwLi41OWRkNjkx MWIzYgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGlidHJhY2tlcjMKQEAgLTAsMCArMSBA QAordHJhY2tlcjMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNw a2dzL3RyYWNrZXIzLWRldmVsIGIvc3JjcGtncy90cmFja2VyMy1kZXZlbApuZXcgZmlsZSBtb2Rl IDEyMDAwMAppbmRleCAwMDAwMDAwMDAwMC4uNTlkZDY5MTFiM2IKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL3RyYWNrZXIzLWRldmVsCkBAIC0wLDAgKzEgQEAKK3RyYWNrZXIzClwgTm8gbmV3 bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy90cmFja2VyMy90ZW1wbGF0 ZSBiL3NyY3BrZ3MvdHJhY2tlcjMvdGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLjFjMjEwMGYyNmNhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy90cmFj a2VyMy90ZW1wbGF0ZQpAQCAtMCwwICsxLDU3IEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICd0cmFj a2VyMycKK3BrZ25hbWU9dHJhY2tlcjMKK3ZlcnNpb249My4wLjAKK3JldmlzaW9uPTEKK3dya3Ny Yz10cmFja2VyLSR7dmVyc2lvbn0KK2J1aWxkX3N0eWxlPW1lc29uCitidWlsZF9oZWxwZXI9Imdp ciIKK2NvbmZpZ3VyZV9hcmdzPSItRGRvY3M9ZmFsc2UgLURtYW49dHJ1ZSAtRG5ldHdvcmtfbWFu YWdlcj1lbmFibGVkCisgLURzdGVtbWVyPWRpc2FibGVkIC1Ec3lzdGVtZF91c2VyX3NlcnZpY2Vz PWZhbHNlIgoraG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IHBrZy1jb25maWcgZ2xpYi1kZXZlbCB2 YWxhIGFzY2lpZG9jIgorbWFrZWRlcGVuZHM9ImRidXMtZGV2ZWwgbGliZ2xpYi1kZXZlbCBpY3Ut ZGV2ZWwganNvbi1nbGliLWRldmVsCisgbGlic291cC1kZXZlbCBsaWJ4bWwyLWRldmVsIHNxbGl0 ZS1kZXZlbCBOZXR3b3JrTWFuYWdlci1kZXZlbAorIGJhc2gtY29tcGxldGlvbiIKK2NoZWNrZGVw ZW5kcz0idGFyIHB5dGhvbjMtZ29iamVjdCIKK3Nob3J0X2Rlc2M9IlBlcnNvbmFsIHNlYXJjaCB0 b29sIGFuZCBzdG9yYWdlIHN5c3RlbSIKK21haW50YWluZXI9InE2NiA8ZGFuaWVsQG9jdGFmb3Jn ZS5vcmc+IgorbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgTEdQTC0yLjEtb3ItbGF0ZXIiCito b21lcGFnZT0iaHR0cHM6Ly9saXZlLmdub21lLm9yZy9UcmFja2VyIgorZGlzdGZpbGVzPSIke0dO T01FX1NJVEV9L3RyYWNrZXIvJHt2ZXJzaW9uJS4qfS90cmFja2VyLSR7dmVyc2lvbn0udGFyLnh6 IgorY2hlY2tzdW09NzA4NjQ1MTVmNTc1MmIwNTk2ZjljNDQyZDdlODY1ODU3MzRmNDJiODJhOTIz M2U1NWRhZTZhYzJiMGQzMzgzNworCitpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KKwlob3N0 bWFrZWRlcGVuZHMrPSIgZGJ1cyIKK2ZpCisKKyMgbmVlZHMgYSBkYnVzIHNldHVwCitkb19jaGVj aygpIHsKKwk6Cit9CisKK3Bvc3RfcGF0Y2goKSB7CisJaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0 aGVuCisJCSMgVGVsbCB0aGUgYnVpbGQgc3lzdGVtIHRoYXQgd2UgaGF2ZSBpbnRlcm5hbCBmdHM1 IGluIHNxbGl0ZTMKKwkJdnNlZCAtaSAiL1xbcHJvcGVydGllc1xdL2Egc3FsaXRlM19oYXNfZnRz NSA9ICd0cnVlJyIgeGJwc19tZXNvbi5jcm9zcworCWZpCit9CisKK3RyYWNrZXIzLWRldmVsX3Bh Y2thZ2UoKSB7CisJZGVwZW5kcz0ibGlidHJhY2tlcjM+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0g bGliZ2xpYi1kZXZlbCBqc29uLWdsaWItZGV2ZWwKKwkgbGlic291cC1kZXZlbCIKKwlzaG9ydF9k ZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVz ci9pbmNsdWRlCisJCXZtb3ZlIHVzci9zaGFyZS9naXItMS4wCisJCXZtb3ZlIHVzci9zaGFyZS92 YWxhCisJCXZtb3ZlIHVzci9saWIvcGtnY29uZmlnCisJCXZtb3ZlICJ1c3IvbGliLyouc28iCisJ fQorfQorCitsaWJ0cmFja2VyM19wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIgLSBzaGFyZWQg bGlicmFyaWVzIgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSAidXNyL2xpYi8qLnNvLioiCisJ CXZtb3ZlIHVzci9saWIvZ2lyZXBvc2l0b3J5LTEuMAorCX0KK30KZGlmZiAtLWdpdCBhL3NyY3Br Z3MvdHJhY2tlcjMvdXBkYXRlIGIvc3JjcGtncy90cmFja2VyMy91cGRhdGUKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmU5ODQ3ZTI1YjU0Ci0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy90cmFja2VyMy91cGRhdGUKQEAgLTAsMCArMSBAQAorcGF0dGVybj0iXFF0cmFj a2VyXEUtXEtbMC05XStcLlswLTldKlwuWzAtOS5dKlswLTldKD89KSIKCkZyb20gZTI1MzhjZjdm MzBjZDUxNTdlYzA5ZTMzNTU1NTBlMWY5YzM2OWMxNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTcg U2VwIDIwMjAgMDA6MTY6MDQgKzAyMDAKU3ViamVjdDogW1BBVENIIDAyNS8xMDJdIE5ldyBwYWNr YWdlOiB0cmFja2VyMy1taW5lcnMtMy4wLjAKCi0tLQogc3JjcGtncy90cmFja2VyMy1taW5lcnMv cGF0Y2hlcy9idWlsZC5wYXRjaCAgIHwgIDI1ICsrKysrCiAuLi4vcGF0Y2hlcy9kb250LXVzZS1t YWxsb2MtdHJpbS5wYXRjaCAgICAgICAgfCAxMDQgKysrKysrKysrKysrKysrKysrCiBzcmNwa2dz L3RyYWNrZXIzLW1pbmVycy90ZW1wbGF0ZSAgICAgICAgICAgICAgfCAgMzQgKysrKysrCiAzIGZp bGVzIGNoYW5nZWQsIDE2MyBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy90cmFja2VyMy1taW5lcnMvcGF0Y2hlcy9idWlsZC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvdHJhY2tlcjMtbWluZXJzL3BhdGNoZXMvZG9udC11c2UtbWFsbG9jLXRyaW0ucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3RyYWNrZXIzLW1pbmVycy90ZW1wbGF0ZQoK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdHJhY2tlcjMtbWluZXJzL3BhdGNoZXMvYnVpbGQucGF0Y2gg Yi9zcmNwa2dzL3RyYWNrZXIzLW1pbmVycy9wYXRjaGVzL2J1aWxkLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kNThhMGQ4YzBmOAotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvdHJhY2tlcjMtbWluZXJzL3BhdGNoZXMvYnVpbGQucGF0Y2gKQEAgLTAsMCAr MSwyNSBAQAorRnJvbSA4ZDcwOWMzYjU1ZGM5MjYyMWQ1ODcxZmI0MjlhMDJjNzhjYzRiMmQ4IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFm b3JnZS5vcmc+CitEYXRlOiBXZWQsIDE2IFNlcCAyMDIwIDIzOjU3OjMyICswMjAwCitTdWJqZWN0 OiBbUEFUQ0hdIGZpeCBidWlsZAorCistLS0KKyBzcmMvbGlidHJhY2tlci1taW5lci9tZXNvbi5i dWlsZCB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24o LSkKKworZGlmZiAtLWdpdCBzcmMvbGlidHJhY2tlci1taW5lci9tZXNvbi5idWlsZCBzcmMvbGli dHJhY2tlci1taW5lci9tZXNvbi5idWlsZAoraW5kZXggYTIyNjYyMy4uOWVhY2VlMyAxMDA2NDQK Ky0tLSBzcmMvbGlidHJhY2tlci1taW5lci9tZXNvbi5idWlsZAorKysrIHNyYy9saWJ0cmFja2Vy LW1pbmVyL21lc29uLmJ1aWxkCitAQCAtNDAsNyArNDAsNyBAQCBlbmRpZgorIAorIGxpYnRyYWNr ZXJfbWluZXIgPSBsaWJyYXJ5KAorICAgICAndHJhY2tlci1taW5lci0nICsgdHJhY2tlcl9hcGlf dmVyc2lvbiwKKy0gICAgbWluZXJfZW51bXNbMF0sIG1pbmVyX2VudW1zWzFdLCBtaW5lcl9zb3Vy Y2VzLAorKyAgICBtaW5lcl9lbnVtc1swXSwgbWluZXJfZW51bXNbMV0sIHRyYWNrZXJfbWluZXJz X2NvbW1vbl9lbnVtX2hlYWRlciwgbWluZXJfc291cmNlcywKKyAgICAgY19hcmdzOiB0cmFja2Vy X2NfYXJncywKKyAgICAgaW5zdGFsbDogdHJ1ZSwKKyAgICAgaW5zdGFsbF9kaXI6IHRyYWNrZXJf aW50ZXJuYWxfbGlic19kaXIsCistLSAKKzIuMjguMAorCmRpZmYgLS1naXQgYS9zcmNwa2dzL3Ry YWNrZXIzLW1pbmVycy9wYXRjaGVzL2RvbnQtdXNlLW1hbGxvYy10cmltLnBhdGNoIGIvc3JjcGtn cy90cmFja2VyMy1taW5lcnMvcGF0Y2hlcy9kb250LXVzZS1tYWxsb2MtdHJpbS5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2Y0MmE5MTIwOTcKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL3RyYWNrZXIzLW1pbmVycy9wYXRjaGVzL2RvbnQtdXNlLW1hbGxv Yy10cmltLnBhdGNoCkBAIC0wLDAgKzEsMTA0IEBACitSZWFzb246IFRoaXMgcmV2ZXJ0cyAxOTFj YzUyMThiNTNmYmE4NWJhZWMxYzhjMTdiYjI0NmE3NDA0NGMwIGFuZAorY2NiMGI0ZWJiZmY0ZGZh Y2YxN2VhNjdjZTU2YmIyN2MzOTc0MTgxMS4gbWFsbG9jX3RyaW0gaXMgZ2xpYmMgc3BlY2lmaWMK K0FQSSwgc28gdGhpcyBjYXVzZXMgdGhlIGJ1aWxkIHRvIGZhaWwgb24gbXVzbC4KK1Vwc3RyZWFt OiBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvdHJhY2tlci1taW5lcnMvLS9pc3N1ZXMv MTM1CitkaWZmIC0tZ2l0IGEvc3JjL21pbmVycy9mcy90cmFja2VyLW1haW4uYyBiL3NyYy9taW5l cnMvZnMvdHJhY2tlci1tYWluLmMKK2luZGV4IGM2MDA3MGQuLjIyMDkxNmQgMTAwNjQ0CistLS0g c3JjL21pbmVycy9mcy90cmFja2VyLW1haW4uYworKysrIHNyYy9taW5lcnMvZnMvdHJhY2tlci1t YWluLmMKK0BAIC01Nyw3ICs1Nyw2IEBACisgc3RhdGljIEdNYWluTG9vcCAqbWFpbl9sb29wOwor IHN0YXRpYyBHREJ1c1Byb3h5ICppbmRleF9wcm94eTsKKyBzdGF0aWMgR1B0ckFycmF5ICpwcm94 eV9mb2xkZXJzOworLXN0YXRpYyBndWludCBjbGVhbnVwX2lkOworIAorIHN0YXRpYyBnaW50IGlu aXRpYWxfc2xlZXAgPSAtMTsKKyBzdGF0aWMgZ2Jvb2xlYW4gbm9fZGFlbW9uOworQEAgLTQzMywz NyArNDMyLDYgQEAgbWluZXJfc3RhcnQgKFRyYWNrZXJNaW5lciAgKm1pbmVyLAorIAkgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluZXIpOworIH0KKyAKKy1zdGF0 aWMgZ2Jvb2xlYW4KKy1jbGVhbnVwX2NiIChncG9pbnRlciB1c2VyX2RhdGEpCisteworLQkvKiBS ZWNsYWltIGFzIG11Y2ggbWVtb3J5IGFzIHBvc3NpYmxlICovCistCW1hbGxvY190cmltICgwKTsK Ky0KKy0JY2xlYW51cF9pZCA9IDA7CistCistCXJldHVybiBHX1NPVVJDRV9SRU1PVkU7CistfQor LQorLSNpZiBHTElCX0NIRUNLX1ZFUlNJT04gKDIsIDY0LCAwKQorLXN0YXRpYyB2b2lkCistb25f bG93X21lbW9yeSAoR01lbW9yeU1vbml0b3IgICAgICAgICAgICAqbW9uaXRvciwKKy0gICAgICAg ICAgICAgICBHTWVtb3J5TW9uaXRvcldhcm5pbmdMZXZlbCBsZXZlbCwKKy0gICAgICAgICAgICAg ICBncG9pbnRlciAgICAgICAgICAgICAgICAgICB1c2VyX2RhdGEpCisteworLQlpZiAobGV2ZWwg PiBHX01FTU9SWV9NT05JVE9SX1dBUk5JTkdfTEVWRUxfTE9XKQorLQkJbWFsbG9jX3RyaW0gKDAp OworLX0KKy0jZW5kaWYKKy0KKy1zdGF0aWMgdm9pZAorLW1pbmVyX3N0YXJ0ZWRfY2IgKFRyYWNr ZXJNaW5lckZTICpmcykKKy17CistCWlmIChjbGVhbnVwX2lkKSB7CistCQlnX3NvdXJjZV9yZW1v dmUgKGNsZWFudXBfaWQpOworLQkJY2xlYW51cF9pZCA9IDA7CistCX0KKy19CistCisgc3RhdGlj IHZvaWQKKyBtaW5lcl9maW5pc2hlZF9jYiAoVHJhY2tlck1pbmVyRlMgKmZzLAorICAgICAgICAg ICAgICAgICAgICBnZG91YmxlICAgICAgICAgc2Vjb25kc19lbGFwc2VkLAorQEAgLTQ4Myw4ICs0 NTEsNiBAQCBtaW5lcl9maW5pc2hlZF9jYiAoVHJhY2tlck1pbmVyRlMgKmZzLAorIAkJCQkJCQkg VFJVRSk7CisgCX0KKyAKKy0JY2xlYW51cF9pZCA9IGdfdGltZW91dF9hZGRfc2Vjb25kcyAoMzAs IGNsZWFudXBfY2IsIE5VTEwpOworLQorIAkvKiBXZSdyZSBub3Qgc3RpY2tpbmcgYXJvdW5kIGZv ciBmaWxlIHVwZGF0ZXMsIHNvIHN0b3AKKyAJICogdGhlIG1haW5sb29wIGFuZCBleGl0LgorIAkg Ki8KK0BAIC05NDEsOSArOTA3LDYgQEAgbWFpbiAoZ2ludCBhcmdjLCBnY2hhciAqYXJndltdKQor IAlUcmFja2VyRW5kcG9pbnREQnVzICplbmRwb2ludDsKKyAJVHJhY2tlckRvbWFpbk9udG9sb2d5 ICpkb21haW5fb250b2xvZ3k7CisgCUdDYW5jZWxsYWJsZSAqY2FuY2VsbGFibGU7CistI2lmIEdM SUJfQ0hFQ0tfVkVSU0lPTiAoMiwgNjQsIDApCistCUdNZW1vcnlNb25pdG9yICptZW1vcnlfbW9u aXRvcjsKKy0jZW5kaWYKKyAJZ2NoYXIgKmRvbWFpbl9uYW1lLCAqZGJ1c19uYW1lOworIAorIAlt YWluX2xvb3AgPSBOVUxMOworQEAgLTExMjksMTggKzEwOTIsMTAgQEAgbWFpbiAoZ2ludCBhcmdj LCBnY2hhciAqYXJndltdKQorIAkJdHJhY2tlcl9taW5lcl9maWxlc19zZXRfbXRpbWVfY2hlY2tp bmcgKFRSQUNLRVJfTUlORVJfRklMRVMgKG1pbmVyX2ZpbGVzKSwgZG9fbXRpbWVfY2hlY2tpbmcp OworIAl9CisgCistCWdfc2lnbmFsX2Nvbm5lY3QgKG1pbmVyX2ZpbGVzLCAic3RhcnRlZCIsCist CQkJICBHX0NBTExCQUNLIChtaW5lcl9zdGFydGVkX2NiKSwKKy0JCQkgIE5VTEwpOworIAlnX3Np Z25hbF9jb25uZWN0IChtaW5lcl9maWxlcywgImZpbmlzaGVkIiwKKyAJCQkgIEdfQ0FMTEJBQ0sg KG1pbmVyX2ZpbmlzaGVkX2NiKSwKKyAJCQkgIE5VTEwpOworIAorLSNpZiBHTElCX0NIRUNLX1ZF UlNJT04gKDIsIDY0LCAwKQorLQltZW1vcnlfbW9uaXRvciA9IGdfbWVtb3J5X21vbml0b3JfZHVw X2RlZmF1bHQgKCk7CistCWdfc2lnbmFsX2Nvbm5lY3QgKG1lbW9yeV9tb25pdG9yLCAibG93LW1l bW9yeS13YXJuaW5nIiwgb25fbG93X21lbW9yeSwgTlVMTCk7CistI2VuZGlmCistCisgCS8qIFBy ZWVtcHQgY3JlYXRpb24gb2YgZ3JhcGhzICovCisgCXRyYWNrZXJfc3BhcnFsX2Nvbm5lY3Rpb25f dXBkYXRlX2FzeW5jICh0cmFja2VyX21pbmVyX2dldF9jb25uZWN0aW9uIChtaW5lcl9maWxlcyks CisgCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ1JFQVRFIFNJTEVO VCBHUkFQSCB0cmFja2VyOkZpbGVTeXN0ZW07ICIKK0BAIC0xMTgzLDExICsxMTM4LDYgQEAgbWFp biAoZ2ludCBhcmdjLCBnY2hhciAqYXJndltdKQorIAl0cmFja2VyX3NwYXJxbF9jb25uZWN0aW9u X2Nsb3NlIChzcGFycWxfY29ubik7CisgCWdfb2JqZWN0X3VucmVmIChzcGFycWxfY29ubik7Cisg CistI2lmIEdMSUJfQ0hFQ0tfVkVSU0lPTiAoMiwgNjQsIDApCistCWdfc2lnbmFsX2hhbmRsZXJz X2Rpc2Nvbm5lY3RfYnlfZnVuYyAobWVtb3J5X21vbml0b3IsIG9uX2xvd19tZW1vcnksIE5VTEwp OworLQlnX29iamVjdF91bnJlZiAobWVtb3J5X21vbml0b3IpOworLSNlbmRpZgorLQorIAlnX3By aW50ICgiXG5PS1xuXG4iKTsKKyAKKyAJcmV0dXJuIEVYSVRfU1VDQ0VTUzsKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvdHJhY2tlcjMtbWluZXJzL3RlbXBsYXRlIGIvc3JjcGtncy90cmFja2VyMy1taW5l cnMvdGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjBiZjE0 YjQ4NDc5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy90cmFja2VyMy1taW5lcnMvdGVtcGxh dGUKQEAgLTAsMCArMSwzNCBAQAorIyBUZW1wbGF0ZSBmaWxlIGZvciAndHJhY2tlcjMtbWluZXJz JworcGtnbmFtZT10cmFja2VyMy1taW5lcnMKK3ZlcnNpb249My4wLjAKK3JldmlzaW9uPTEKK3dy a3NyYz10cmFja2VyLW1pbmVycy0ke3ZlcnNpb259CitidWlsZF9zdHlsZT1tZXNvbgorIyBtaXNz aW5nIGxpYmdyc3MgZm9yIG1pbmVyX3JzcworY29uZmlndXJlX2FyZ3M9Ii1EdHJhY2tlcl9jb3Jl PXN5c3RlbSAtRGRvY3M9ZmFsc2UgLURleHRyYWN0PXRydWUKKyAtRGZ1bmN0aW9uYWxfdGVzdHM9 ZmFsc2UgLURjdWU9ZW5hYmxlZCAtRGV4aWY9ZW5hYmxlZCAtRGZsYWM9ZW5hYmxlZAorIC1EZ2lm PWVuYWJsZWQgLURnc2Y9ZW5hYmxlZCAtRGlwdGM9ZW5hYmxlZCAtRGlzbz1lbmFibGVkIC1EanBl Zz1lbmFibGVkCisgLURwZGY9ZW5hYmxlZCAtRHBsYXlsaXN0PWVuYWJsZWQgLURwbmc9ZW5hYmxl ZCAtRHJhdz1lbmFibGVkIC1EdGFnbGliPWVuYWJsZWQKKyAtRHRpZmY9ZW5hYmxlZCAtRHZvcmJp cz1lbmFibGVkIC1EeG1sPWVuYWJsZWQgLUR4bXA9ZW5hYmxlZCAtRHhwcz1lbmFibGVkCisgLURt aW5lcl9yc3M9ZmFsc2UgLURiYXR0ZXJ5X2RldGVjdGlvbj11cG93ZXIgLURjaGFyc2V0X2RldGVj dGlvbj1pY3UKKyAtRGdlbmVyaWNfbWVkaWFfZXh0cmFjdG9yPWdzdHJlYW1lciAtRGdzdHJlYW1l cl9iYWNrZW5kPWRpc2NvdmVyZXIKKyAtRHN5c3RlbWRfdXNlcl9zZXJ2aWNlcz1mYWxzZSAtRG5l dHdvcmtfbWFuYWdlcj1lbmFibGVkIgoraG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGdsaWIt ZGV2ZWwgaW50bHRvb2wgYXNjaWlkb2MiCittYWtlZGVwZW5kcz0idHJhY2tlcjMtZGV2ZWwgZmZt cGVnLWRldmVsIGRidXMtZGV2ZWwgZXhlbXBpLWRldmVsIGxpYmZsYWMtZGV2ZWwKKyBsaWJnbGli LWRldmVsIGxpYmdleGl2Mi1kZXZlbCBnc3RyZWFtZXIxLWRldmVsIGljdS1kZXZlbCBsaWJjdWUt ZGV2ZWwKKyBsaWJleGlmLWRldmVsIGxpYmdzZi1kZXZlbCBsaWJneHBzLWRldmVsIGxpYmlwdGNk YXRhLWRldmVsIGxpYmpwZWctdHVyYm8tZGV2ZWwKKyBsaWJvc2luZm8tZGV2ZWwgbGlicG5nLWRl dmVsIGxpYnNlY2NvbXAtZGV2ZWwgdGlmZi1kZXZlbCBsaWJ4bWwyLWRldmVsCisgbGlidm9yYmlz LWRldmVsIHBvcHBsZXItZ2xpYi1kZXZlbCB0YWdsaWItZGV2ZWwgdG90ZW0tcGwtcGFyc2VyLWRl dmVsCisgdXBvd2VyLWRldmVsIHpsaWItZGV2ZWwgZ3N0LXBsdWdpbnMtYmFzZTEtZGV2ZWwgZ2lm bGliLWRldmVsCisgTmV0d29ya01hbmFnZXItZGV2ZWwgbGliaGFyZmJ1enoiCitzaG9ydF9kZXNj PSJEYXRhIG1pbmVycyBmb3IgdHJhY2tlcjMiCittYWludGFpbmVyPSJxNjYgPGRhbmllbEBvY3Rh Zm9yZ2Uub3JnPiIKK2xpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCitob21lcGFnZT0iaHR0cHM6 Ly9kZXZlbG9wZXIuZ25vbWUub3JnL2xpYnRyYWNrZXItbWluZXIvc3RhYmxlIgorZGlzdGZpbGVz PSIke0dOT01FX1NJVEV9L3RyYWNrZXItbWluZXJzLyR7dmVyc2lvbiUuKn0vdHJhY2tlci1taW5l cnMtJHt2ZXJzaW9ufS50YXIueHoiCitjaGVja3N1bT1iYjQ4MWE3YzIzYzVkZWY0ZjIxNTYyN2Ew NjMwZmJlOWQxYzY0ZjMzMTk4MjU4NTlkN2E3MzY0NTczOGY0MDQyCisKKyMgcmVsaWVzIG9uIHVu c3VwcG9ydGVkIG9wcyBpbiBjaHJvb3QKK2RvX2NoZWNrKCkgeworCToKK30KCkZyb20gMWZhYmYw M2EzNDIyYWY2YWViNDE4MGVmMDFlNmU3OTQzNDRhOGViMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1C NG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMTUgU2VwIDIw MjAgMDY6NDc6NTYgKzA3MDAKU3ViamVjdDogW1BBVENIIDAyNi8xMDJdIGJpamliZW46IHVwZGF0 ZSB0byAzLjM2LjMuCgotLS0KIHNyY3BrZ3MvYmlqaWJlbi90ZW1wbGF0ZSB8IDkgKysrKysrKy0t CiAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvYmlqaWJlbi90ZW1wbGF0ZSBiL3NyY3BrZ3MvYmlqaWJlbi90ZW1wbGF0 ZQppbmRleCA3MzAwNTNiNWQxYy4uMGJmYTZmMjc1YWMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYmlq aWJlbi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2JpamliZW4vdGVtcGxhdGUKQEAgLTEsOSArMSwx MCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnYmlqaWJlbicKIHBrZ25hbWU9YmlqaWJlbgotdmVy c2lvbj0zLjM2LjEKK3ZlcnNpb249My4zNi4zCiByZXZpc2lvbj0xCiBidWlsZF9oZWxwZXI9Imdp ciIKIGJ1aWxkX3N0eWxlPW1lc29uCitjb25maWd1cmVfYXJncz0iLUR6ZWl0Z2Vpc3Q9dHJ1ZSIK IGhvc3RtYWtlZGVwZW5kcz0iaXRzdG9vbCBwa2ctY29uZmlnIGdldHRleHQiCiBtYWtlZGVwZW5k cz0iY2x1dHRlci1ndGstZGV2ZWwgZXZvbHV0aW9uLWRldmVsIHRyYWNrZXItZGV2ZWwgd2Via2l0 Mmd0ay1kZXZlbAogIHplaXRnZWlzdC1kZXZlbCBsaWJoYW5keS1kZXZlbCIKQEAgLTE0LDUgKzE1 LDkgQEAgbGljZW5zZT0iR1BMLTMuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2ku Z25vbWUub3JnL0FwcHMvTm90ZXMiCiBjaGFuZ2Vsb2c9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJj b250ZW50LmNvbS9HTk9NRS9iaWppYmVuL2dub21lLSR7dmVyc2lvbiUuKn0vTkVXUyIKIGRpc3Rm aWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0k e3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTIxMmY2NmEzZDJjNzE3ZGZiM2QzNzIyMDQyNjE3 ODA4OTM5NWRhMjNlZjlmM2QwNTE3MTNhYWY2NTk3YTQxMTAKK2NoZWNrc3VtPTcwZTliNjIxZTEx YmY3YWY2YzYyNDhmOGM5OTgzMGY2ZmZiZmY2MDVmYjQzYTg0OGQyNjg4MGU3ZTFiNTJkZDYKIG5v Y3Jvc3M9ImV2b2x1dGlvbi1kYXRhLXNlcnZlciBjcm9zcyIKKworcHJlX2J1aWxkKCkgeworCW5p bmphIC1DIGJ1aWxkIHNyYy9saWJiaWppL2JpamktbWFyc2hhbGVycy5oCit9CgpGcm9tIDEyODgz ZjVjZmZiNDU3NzE4NDgzZGFjMGNlY2Q0Yzg0ZjBmODA4NjYgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBXZWQs IDE2IFNlcCAyMDIwIDIwOjIwOjUwICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMjcvMTAyXSBncmFw aGVuZTogdXBkYXRlIHRvIDEuMTAuMgoKLS0tCiBzcmNwa2dzL2dyYXBoZW5lL3RlbXBsYXRlIHwg NCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ3JhcGhlbmUvdGVtcGxhdGUgYi9zcmNwa2dzL2dyYXBoZW5l L3RlbXBsYXRlCmluZGV4IGY1Y2M5OWI0MTI4Li5lODY4MjM5YmZhMCAxMDA2NDQKLS0tIGEvc3Jj cGtncy9ncmFwaGVuZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dyYXBoZW5lL3RlbXBsYXRlCkBA IC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ3JhcGhlbmUnCiBwa2duYW1lPWdy YXBoZW5lCi12ZXJzaW9uPTEuMTAuMAordmVyc2lvbj0xLjEwLjIKIHJldmlzaW9uPTEKIGJ1aWxk X3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKQEAgLTEzLDcgKzEzLDcgQEAgbWFpbnRh aW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9Ik1JVCIK IGhvbWVwYWdlPSJodHRwczovL2dpdGh1Yi5jb20vZWJhc3NpL2dyYXBoZW5lIgogZGlzdGZpbGVz PSIke0dOT01FX1NJVEV9L2dyYXBoZW5lLyR7dmVyc2lvbiUuKn0vZ3JhcGhlbmUtJHt2ZXJzaW9u fS50YXIueHoiCi1jaGVja3N1bT00MDZkOTdmNTFkZDRjYTYxZTkxZjg0NjY2YTAwYzNlOTc2ZDNl NjY3Y2QyNDhiNzZkOTJmZGIzNWNlODc2NDk5CitjaGVja3N1bT1lOTdkZTgyMDhmMWFhYzRmOTEz ZDRmYTcxYWI3M2E3MDM0ZTgwNzE4NmZlYjJhYmU1NTg3NmU1MWM0MjVhN2Y2CiAKIGNhc2UgIiRY QlBTX1RBUkdFVF9NQUNISU5FIiBpbgogCWFybSopIGNvbmZpZ3VyZV9hcmdzKz0iIC1EYXJtX25l b249ZmFsc2UiIDs7CgpGcm9tIDZlNDI3NjAwNjhkYjJhNGU2YjljYjQzY2IzNDg4NzYxYzJmZDBm NTYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBv Y3RhZm9yZ2Uub3JnPgpEYXRlOiBXZWQsIDE2IFNlcCAyMDIwIDIwOjIyOjQwICswMjAwClN1Ympl Y3Q6IFtQQVRDSCAwMjgvMTAyXSBhbXRrOiB1cGRhdGUgdG8gNS4yLjAKCi0tLQogc3JjcGtncy9h bXRrL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAy IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYW10ay90ZW1wbGF0ZSBiL3NyY3Br Z3MvYW10ay90ZW1wbGF0ZQppbmRleCA0NDljNTdlMDdlNi4uNDMzYmUyYjljNTQgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvYW10ay90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2FtdGsvdGVtcGxhdGUKQEAg LTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdhbXRrJwogcGtnbmFtZT1hbXRrCi12 ZXJzaW9uPTUuMS4xCit2ZXJzaW9uPTUuMi4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1nbnUt Y29uZmlndXJlCiBidWlsZF9oZWxwZXI9ImdpciIKQEAgLTEyLDcgKzEyLDcgQEAgbWFpbnRhaW5l cj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4xLW9y LWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvQW10ayIK IGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS9hbXRrLyR7dmVyc2lvbiUuKn0vYW10ay0ke3ZlcnNp b259LnRhci54eiIKLWNoZWNrc3VtPWY5NjU2YmRkNDI3OGFhYmZiODU1NGYwMjkwNDliOWZmYWY1 MWI1M2ZhYTQ2MzQ4M2E4NDAzNjU0NjMzNTVkZjEKK2NoZWNrc3VtPTgyMDU0NWJiNGNmODdlY2Vi YzJjMzYzOGQ2YjZlNThiOGRiZDYwYTQxOWE5YjQzY2YwMjAxMjRlNWRhZDcwNzgKIAogYnVpbGRf b3B0aW9ucz0iZ2lyIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCgpGcm9tIGEzNTkwZjU4 M2ExZTIxNmQxZTQzYzFlNDYwNmY0ZTY4ODM5ZDIyNjUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBXZWQsIDE2 IFNlcCAyMDIwIDIwOjQ0OjUxICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMjkvMTAyXSBpby5lbGVt ZW50YXJ5LmNvZGU6IHJlYnVpbGQgZm9yIHZhbGEtMC41MAoKLS0tCiAuLi4vaW8uZWxlbWVudGFy eS5jb2RlL3BhdGNoZXMvdmFsYTA1MC5wYXRjaCAgfCAyNSArKysrKysrKysrKysrKysrKysrCiBz cmNwa2dzL2lvLmVsZW1lbnRhcnkuY29kZS90ZW1wbGF0ZSAgICAgICAgICAgfCAgMiArLQogMiBm aWxlcyBjaGFuZ2VkLCAyNiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9pby5lbGVtZW50YXJ5LmNvZGUvcGF0Y2hlcy92YWxhMDUwLnBhdGNo CgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9pby5lbGVtZW50YXJ5LmNvZGUvcGF0Y2hlcy92YWxhMDUw LnBhdGNoIGIvc3JjcGtncy9pby5lbGVtZW50YXJ5LmNvZGUvcGF0Y2hlcy92YWxhMDUwLnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45ZWVlZTFmYjY2NAotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvaW8uZWxlbWVudGFyeS5jb2RlL3BhdGNoZXMvdmFsYTA1 MC5wYXRjaApAQCAtMCwwICsxLDI1IEBACitGcm9tIGExODVkZTBlNzcxNmFhMmRlMmJmMjFkZTk2 ZTZjOWFmMWRjYTgxYWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBEYW5pZWwgS29s ZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KK0RhdGU6IFdlZCwgMTYgU2VwIDIwMjAgMjA6NDM6 MDcgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gZml4IHdpdGggdmFsYS0wLjUwCisKKy0tLQorIHBs dWdpbnMvb3V0bGluZS9WYWxhL1ZhbGFTeW1ib2xPdXRsaW5lLnZhbGEgfCAyICstCisgMSBmaWxl IGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYgLS1naXQgcGx1 Z2lucy9vdXRsaW5lL1ZhbGEvVmFsYVN5bWJvbE91dGxpbmUudmFsYSBwbHVnaW5zL291dGxpbmUv VmFsYS9WYWxhU3ltYm9sT3V0bGluZS52YWxhCitpbmRleCBjOGRiMzM5Li4zMTM4NmE2IDEwMDY0 NAorLS0tIHBsdWdpbnMvb3V0bGluZS9WYWxhL1ZhbGFTeW1ib2xPdXRsaW5lLnZhbGEKKysrKyBw bHVnaW5zL291dGxpbmUvVmFsYS9WYWxhU3ltYm9sT3V0bGluZS52YWxhCitAQCAtNjEsNyArNjEs NyBAQCBwdWJsaWMgY2xhc3MgQ29kZS5QbHVnaW5zLlZhbGFTeW1ib2xPdXRsaW5lIDogT2JqZWN0 LCBDb2RlLlBsdWdpbnMuU3ltYm9sT3V0bGluZQorIAorICAgICBwdWJsaWMgdm9pZCBwYXJzZV9z eW1ib2xzICgpIHsKKyAgICAgICAgIHZhciBjb250ZXh0ID0gbmV3IFZhbGEuQ29kZUNvbnRleHQg KCk7CistICAgICAgICBjb250ZXh0LnByb2ZpbGUgPSBWYWxhLlByb2ZpbGUuR09CSkVDVDsKKysg ICAgICAgIGNvbnRleHQuc2V0X3RhcmdldF9wcm9maWxlKFZhbGEuUHJvZmlsZS5HT0JKRUNUKTsK KyAgICAgICAgIGNvbnRleHQuYWRkX3NvdXJjZV9maWxlbmFtZSAoZG9jLmZpbGUuZ2V0X3BhdGgg KCkpOworICAgICAgICAgY29udGV4dC5yZXBvcnQgPSBuZXcgUmVwb3J0ICgpOworICAgICAgICAg aWYgKGNhbmNlbGxhYmxlICE9IG51bGwpCistLSAKKzIuMjguMAorCmRpZmYgLS1naXQgYS9zcmNw a2dzL2lvLmVsZW1lbnRhcnkuY29kZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvaW8uZWxlbWVudGFyeS5j b2RlL3RlbXBsYXRlCmluZGV4IDQ0N2U3ZTVmNjBhLi44ZDQzYWQ0MTMwZCAxMDA2NDQKLS0tIGEv c3JjcGtncy9pby5lbGVtZW50YXJ5LmNvZGUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9pby5lbGVt ZW50YXJ5LmNvZGUvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICdpby5lbGVtZW50YXJ5LmNvZGUnCiBwa2duYW1lPWlvLmVsZW1lbnRhcnkuY29kZQogdmVyc2lv bj0zLjQuMQotcmV2aXNpb249MgorcmV2aXNpb249Mwogd3Jrc3JjPSJjb2RlLSR7dmVyc2lvbn0i CiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIHZhbGEgaW50 bHRvb2wgZ2xpYi1kZXZlbCIKCkZyb20gYTExZTc5YTNjM2VlMmMwNWMwYzUwYjE5Zjc3NGNjMDg4 ZTk1ZjYxMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFu aWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFdlZCwgMTYgU2VwIDIwMjAgMjA6NTI6MjYgKzAyMDAK U3ViamVjdDogW1BBVENIIDAzMC8xMDJdIHBob2RhdjogdXBkYXRlIHRvIDIuNQoKLS0tCiBzcmNw a2dzL3Bob2Rhdi90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3Bob2Rhdi90ZW1wbGF0 ZSBiL3NyY3BrZ3MvcGhvZGF2L3RlbXBsYXRlCmluZGV4IDFhOTBhMWEwZTU4Li4xMzA5Mjg5Njg5 OSAxMDA2NDQKLS0tIGEvc3JjcGtncy9waG9kYXYvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9waG9k YXYvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdwaG9kYXYn CiBwa2duYW1lPXBob2RhdgotdmVyc2lvbj0yLjQKK3ZlcnNpb249Mi41CiByZXZpc2lvbj0xCiBi dWlsZF9zdHlsZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1Ec3lzdGVtZD1kaXNhYmxlZCAtRGF2 YWhpPWVuYWJsZWQgLURndGtfZG9jPWRpc2FibGVkCkBAIC0xMyw3ICsxMyw3IEBAIG1haW50YWlu ZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIu MS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL3Bob2RhdiIKIGRp c3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbn0vJHtwa2duYW1lfS0k e3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTdkZGRjMmI3NWUwNGQwODY2YmI5YzlhODMwMjhh NTk3ZWJkNzNlZjRjMzdiZDZlYmUxMDMyYTg3MGI0M2I4YzMKK2NoZWNrc3VtPTcxZjBhOWNkNzBh ZmQ0ZGQxNDEyYTAyOTgzMzFkYmI4YWM3MWMwMzc3ZjUyMTE3YWZjMTVlYjg4ZGM2ZmI5MTAKIAog cGhvZGF2LWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0ibGliZ2xpYi1kZXZlbCBsaWJzb3Vw LWRldmVsIGxpYnhtbDItZGV2ZWwKCkZyb20gMzZjYjA1ZWI2MWU1YTE0MGQ5YjczOTRkZmJiZGVm YTkxZjI0YjM5NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8 ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAy MDAKU3ViamVjdDogW1BBVENIIDAzMS8xMDJdIGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXM6IHVw ZGF0ZSB0byAzLjM4LjAKCi0tLQogLi4uL3BhdGNoZXMvZml4LWNyb3NzLWdpci5wYXRjaCAgICAg ICAgICAgICAgICAgICAgIHwgMTMgLS0tLS0tLS0tLS0tLQogc3JjcGtncy9nc2V0dGluZ3MtZGVz a3RvcC1zY2hlbWFzL3RlbXBsYXRlICAgICAgICAgIHwgIDYgKysrLS0tCiAyIGZpbGVzIGNoYW5n ZWQsIDMgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQg c3JjcGtncy9nc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzL3BhdGNoZXMvZml4LWNyb3NzLWdpci5w YXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy9wYXRj aGVzL2ZpeC1jcm9zcy1naXIucGF0Y2ggYi9zcmNwa2dzL2dzZXR0aW5ncy1kZXNrdG9wLXNjaGVt YXMvcGF0Y2hlcy9maXgtY3Jvc3MtZ2lyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCBiMjk5ZDVjOWNkMC4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9nc2V0dGluZ3MtZGVz a3RvcC1zY2hlbWFzL3BhdGNoZXMvZml4LWNyb3NzLWdpci5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDEzICswLDAgQEAKLWRpZmYgLS1naXQgYS9oZWFkZXJzL21lc29uLmJ1aWxkIGIvaGVhZGVy cy9tZXNvbi5idWlsZAotaW5kZXggM2NlOGI2MS4uMTEzMjY5NSAxMDA2NDQKLS0tLSBoZWFkZXJz L21lc29uLmJ1aWxkCi0rKysgaGVhZGVycy9tZXNvbi5idWlsZAotQEAgLTE5LDcgKzE5LDcgQEAg ZW51bXNfeG1sID0gY3VzdG9tX3RhcmdldCgKLSAgIGluc3RhbGw6IHRydWUsCi0gICBpbnN0YWxs X2Rpcjogc2NoZW1hc2RpcikKLSAKLS1pZiBub3QgbWVzb24uaXNfY3Jvc3NfYnVpbGQoKSBhbmQg Z2V0X29wdGlvbignaW50cm9zcGVjdGlvbicpCi0raWYgZ2V0X29wdGlvbignaW50cm9zcGVjdGlv bicpCi0gICBub2luc3RfbGliID0gc2hhcmVkX2xpYnJhcnkoJ25vaW5zdCcsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaGVhZGVycywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbnN0YWxsOiBmYWxzZSkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ3NldHRpbmdzLWRlc2t0 b3Atc2NoZW1hcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy90 ZW1wbGF0ZQppbmRleCA0OWM2NGNjYTczOC4uNzZjNGIwZTA4MTAgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dzZXR0 aW5ncy1kZXNrdG9wLXNjaGVtYXMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzJwogcGtnbmFtZT1nc2V0dGluZ3Mt ZGVza3RvcC1zY2hlbWFzCi12ZXJzaW9uPTMuMzYuMAotcmV2aXNpb249MgordmVyc2lvbj0zLjM4 LjAKK3JldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24KIGNv bmZpZ3VyZV9hcmdzPSItRGludHJvc3BlY3Rpb249JCh2b3B0X2lmIGdpciB0cnVlIGZhbHNlKSIK QEAgLTEyLDcgKzEyLDcgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGlu dXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8v Z2l0bGFiLmdub21lLm9yZy9HTk9NRS9nc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzIgogZGlzdGZp bGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7 dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NzY0YWI2ODMyODY1MzYzMjQ1MzNhNThkNGU5NWZj NTdmODFhZGFiYTdkODgwZGQwZWJiYmNlZDYzZTk2MGVhNgorY2hlY2tzdW09NTcwNGM4MjY2MDA0 YjI5NjAzNjY3MWYyMjNjNzA1ZGMwNDZhYTY5NGExYjFhYmI4N2M2N2U3ZDI3NDdhOGM2NwogCiAj IFBhY2thZ2UgYnVpbGQgb3B0aW9ucwogYnVpbGRfb3B0aW9ucz0iZ2lyIgoKRnJvbSA5ODAxMTM0 OTY3MzRjZTY0NmU4OWYzOTQyNGRiNTc5OTIyMWMzM2JmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAx NiBBdWcgMjAyMCAwNToyMDoyNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDMyLzEwMl0gZ2xpYi1u ZXR3b3JraW5nOiB1cGRhdGUgdG8gMi42Ni4wCgotLS0KIHNyY3BrZ3MvZ2xpYi1uZXR3b3JraW5n L3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbGliLW5ldHdvcmtpbmcvdGVtcGxh dGUgYi9zcmNwa2dzL2dsaWItbmV0d29ya2luZy90ZW1wbGF0ZQppbmRleCA1ZWFmZmE4MmU2NC4u OTZmMzEyY2ZmNGQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ2xpYi1uZXR3b3JraW5nL3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvZ2xpYi1uZXR3b3JraW5nL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAnZ2xpYi1uZXR3b3JraW5nJwogcGtnbmFtZT1nbGliLW5ldHdv cmtpbmcKLXZlcnNpb249Mi42NC4xCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTIuNjYuMAorcmV2aXNp b249MQogYnVpbGRfc3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSItRGluc3RhbGxlZF90ZXN0 cz1mYWxzZSAtRGdudXRscz1lbmFibGVkIC1EbGlicHJveHk9ZW5hYmxlZAogIC1EZ25vbWVfcHJv eHk9ZW5hYmxlZCIKQEAgLTE0LDcgKzE0LDcgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdv dHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBh Z2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbGliLW5ldHdvcmtpbmcvIgogZGlz dGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9 LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09YTRjMzQ2ZGVmN2Q4MTc0NjdkNzlhOTVjMjNi M2NjZjIyZTRkZjE1NDg4NzA3MjZiNjMzOTY0MDA4NTJkYWY3MgorY2hlY2tzdW09YzVkN2JlMjQz N2ZkZDE5NmVlYmZiNzBjNDUxN2I5NmQzYmE3ZWMxM2JkNDk2MzE4YjhmMDJkZWEzODNlMDA5OQog bGliMzJkaXNhYmxlZD15ZXMKIAogcG9zdF9pbnN0YWxsKCkgewoKRnJvbSA1YjYzMDA4MzQyNTli ZjRjZmVmZGVmYTkxNDczN2I3ODFhZmVlYTBhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcg MjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDMzLzEwMl0gYXQtc3BpMi1jb3Jl OiB1cGRhdGUgdG8gMi4zOC4wCgotLS0KIHNyY3BrZ3MvYXQtc3BpMi1jb3JlL3RlbXBsYXRlIHwg MTQgKysrKysrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDUgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9hdC1zcGkyLWNvcmUvdGVtcGxhdGUgYi9z cmNwa2dzL2F0LXNwaTItY29yZS90ZW1wbGF0ZQppbmRleCBiMzgzZmU5OWJlZC4uNzRlNjA3MDEy MDEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYXQtc3BpMi1jb3JlL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvYXQtc3BpMi1jb3JlL3RlbXBsYXRlCkBAIC0xLDIzICsxLDI3IEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdhdC1zcGkyLWNvcmUnCiBwa2duYW1lPWF0LXNwaTItY29yZQotdmVyc2lvbj0yLjM0 LjAKK3ZlcnNpb249Mi4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRf aGVscGVyPSJnaXIiCi1ob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgZGJ1cyBnbGliLWRldmVs IgotbWFrZWRlcGVuZHM9ImxpYmdsaWItZGV2ZWwgbGliWGV4dC1kZXZlbCBsaWJTTS1kZXZlbCBs aWJYdHN0LWRldmVsCi0gbGliWGV2aWUtZGV2ZWwgZGJ1cy1kZXZlbCIKK2hvc3RtYWtlZGVwZW5k cz0icGtnLWNvbmZpZyBkYnVzIGdsaWItZGV2ZWwgZ2V0dGV4dCIKK21ha2VkZXBlbmRzPSJsaWJn bGliLWRldmVsIGxpYlhleHQtZGV2ZWwgbGliU00tZGV2ZWwgbGliWHRzdC1kZXZlbCBkYnVzLWRl dmVsIgogc2hvcnRfZGVzYz0iQXNzaXN0aXZlIFRlY2hub2xvZ3kgU2VydmljZSBQcm92aWRlciBJ bnRlcmZhY2UiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+ IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2dpdGxhYi5n bm9tZS5vcmcvR05PTUUvYXQtc3BpMi1jb3JlIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7 cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hl Y2tzdW09ZDYyOWNkYmQ2NzRlNTM5Zjg5MTIwMjg1MTJhZjU4Mzk5MDkzOGM3YjQ5ZTI1MTg0YzEy NmIwMDEyMWVmMTFjNgorY2hlY2tzdW09ODRlMzZjM2ZlNjY4NjIxMzNmNWZlMjI5NzcyYjc2YWEy NTI2ZTEwZGU1MDE0YTM3NzhmMmZhNDZjZTU1MGRhNQogCiAjIFBhY2thZ2UgYnVpbGQgb3B0aW9u cwogYnVpbGRfb3B0aW9ucz0iZ2lyIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCiAKKyMg bm9uLXRyaXZpYWwgZGJ1cyBzZXR1cAorZG9fY2hlY2soKSB7CisJOgorfQorCiBwb3N0X2luc3Rh bGwoKSB7CiAJcm0gLXJmICR7REVTVERJUn0vdXNyL2xpYi9zeXN0ZW1kCiB9CgpGcm9tIGRhNTAy NGY2MjUwM2RhMGQzY2QxOTI5NzNiZDE4ZTM3ZmZiNmY2ZTkgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUs IDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMzQvMTAyXSBhdC1z cGkyLWF0azogdXBkYXRlIHRvIDIuMzguMAoKLS0tCiBzcmNwa2dzL2F0LXNwaTItYXRrL3RlbXBs YXRlIHwgOSArKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDIgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9hdC1zcGkyLWF0ay90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvYXQtc3BpMi1hdGsvdGVtcGxhdGUKaW5kZXggNDM1MWI3OTk2ZjMuLmNmOTQ1ZGZmYjI2 IDEwMDY0NAotLS0gYS9zcmNwa2dzL2F0LXNwaTItYXRrL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv YXQtc3BpMi1hdGsvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICdhdC1zcGkyLWF0aycKIHBrZ25hbWU9YXQtc3BpMi1hdGsKLXZlcnNpb249Mi4zNC4xCit2ZXJz aW9uPTIuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5k cz0ibGlidG9vbCBwa2ctY29uZmlnIGludGx0b29sIGdsaWItZGV2ZWwiCkBAIC0xMCw3ICsxMCwx MiBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGlj ZW5zZT0iTEdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cDovL3d3dy5nbm9tZS5vcmci CiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtn bmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT03NzZkZjkzMDc0OGZkZTcxYzEyOGJl NmMzNjZhOTg3Yjk4YjZlZTY2ZDUwOGVkOWM4ZGIyMzU1YmY0YjljYzE2CitjaGVja3N1bT1jZmEw MDhhNWFmODIyYjM2YWU2Mjg3ZjE4MTgyYzQwYzkxZGQ2OTljNTVmYWEzODYwNTg4MWVkMTc1Y2E0 NjRmCisKKyMgbm9uLXRyaXZpYWwgZGJ1cyBzZXR1cAorZG9fY2hlY2soKSB7CisJOgorfQogCiBh dC1zcGkyLWF0ay1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVuZHM9IiR7bWFrZWRlcGVuZHN9ICR7 c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKCkZyb20gNjM3MjQ0MDFmY2VkOTNi MTdhZTU5MzUyZjRhYWY0YzBkZDU2ZjQ2YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog RGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIw MjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDAzNS8xMDJdIGxpYmd3ZWF0aGVyOiB1 cGRhdGUgdG8gMy4zNi4xCgotLS0KIHNyY3BrZ3MvbGliZ3dlYXRoZXIvdGVtcGxhdGUgfCAxNSAr KysrKystLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDkgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJnd2VhdGhlci90ZW1wbGF0ZSBiL3NyY3Br Z3MvbGliZ3dlYXRoZXIvdGVtcGxhdGUKaW5kZXggMzRjNjRkNmUzYTEuLmZjZGI1ODc5NTAxIDEw MDY0NAotLS0gYS9zcmNwa2dzL2xpYmd3ZWF0aGVyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbGli Z3dlYXRoZXIvdGVtcGxhdGUKQEAgLTEsMTMgKzEsMTIgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J2xpYmd3ZWF0aGVyJwogcGtnbmFtZT1saWJnd2VhdGhlcgotdmVyc2lvbj0zLjM2LjAKK3ZlcnNp b249My4zNi4xCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJn aXIiCi1jb25maWd1cmVfYXJncz0iLURlbmFibGVfdmFsYT0kKHZvcHRfaWYgdmFsYSB0cnVlIGZh bHNlKQotIC1EaW50cm9zcGVjdGlvbj0kKHZvcHRfaWYgZ2lyIHRydWUgZmFsc2UpCitjb25maWd1 cmVfYXJncz0iJCh2b3B0X2Jvb2wgZ2lyIGVuYWJsZV92YWxhKSAkKHZvcHRfYm9vbCBnaXIgaW50 cm9zcGVjdGlvbikKICAtRHpvbmVpbmZvX2Rpcj0vdXNyL3NoYXJlL3pvbmVpbmZvIgotaG9zdG1h a2VkZXBlbmRzPSJnbGliLWRldmVsIGludGx0b29sIHBrZy1jb25maWcgJCh2b3B0X2lmIHZhbGEg dmFsYSkiCitob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgaW50bHRvb2wgcGtnLWNvbmZpZyAk KHZvcHRfaWYgZ2lyIHZhbGEpIgogbWFrZWRlcGVuZHM9Imdlb2NvZGUtZ2xpYi1kZXZlbCBndGsr My1kZXZlbCBsaWJzb3VwLWdub21lLWRldmVsIgogY2hlY2tkZXBlbmRzPSJ0emRhdGEiCiBzaG9y dF9kZXNjPSJHTk9NRSBXZWF0aGVyIGluZm9ybWF0aW9uIGFjY2VzcyBsaWJyYXJ5IgpAQCAtMTUs MTAgKzE0LDEwIEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9y Zz4iCiBsaWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2ku Z25vbWUub3JnL1Byb2plY3RzL0xpYkdXZWF0aGVyIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9 LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6Igot Y2hlY2tzdW09ZDJmZmVlYzAxNzg4ZDAzZDFiYmYzNTExM2ZjMmYwNTRjNmMzNjAwNzIxMDg4Zjgy N2JjYzMxZTVjNjAzYTMyZAorY2hlY2tzdW09ZGUyNzA5ZjBlZTIzM2IyMDExNmQ1ZmE5ODYxZDQw NjA3MTc5OGM0YWEzNzgzMGNhMjVmNWVmMmMwMDgzZTQ1MAogCi1idWlsZF9vcHRpb25zPSJnaXIg dmFsYSIKLWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIHZhbGEiCitidWlsZF9vcHRpb25zPSJn aXIiCitidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKIAogcG9zdF9wYXRjaCgpIHsKIAkjIFRo aXMgdGVzdCByZXF1aXJlcyBMQ19JREVOVElGSUNBVElPTiwgd2hpY2ggaXMgYSBHTElCQydzIGV4 dGVuc2lvbgpAQCAtMzUsOCArMzQsNiBAQCBsaWJnd2VhdGhlci1kZXZlbF9wYWNrYWdlKCkgewog CQl2bW92ZSAidXNyL2xpYi8qLnNvIgogCQlpZiBbICIkYnVpbGRfb3B0aW9uX2dpciIgXTsgdGhl bgogCQkJdm1vdmUgdXNyL3NoYXJlL2dpci0xLjAKLQkJZmkKLQkJaWYgWyAiJGJ1aWxkX29wdGlv bl92YWxhIiBdOyB0aGVuCiAJCQl2bW92ZSB1c3Ivc2hhcmUvdmFsYQogCQlmaQogCX0KCkZyb20g NGM4MzJiMzMzMGM4NzAyMzEzMmE5NDlhOWZmMTBjOWEyNTlkZWQ2NSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6 IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDAzNi8xMDJd IGdub21lLW1lbnVzOiB1cGRhdGUgdG8gMy4zNi4wCgotLS0KIHNyY3BrZ3MvZ25vbWUtbWVudXMv dGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLW1lbnVzL3RlbXBsYXRlIGIv c3JjcGtncy9nbm9tZS1tZW51cy90ZW1wbGF0ZQppbmRleCAyOTEwMjEyOWMzOC4uZTc4N2ZiOGRl NmIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtbWVudXMvdGVtcGxhdGUKKysrIGIvc3JjcGtn cy9nbm9tZS1tZW51cy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ2dub21lLW1lbnVzJwogcGtnbmFtZT1nbm9tZS1tZW51cwotdmVyc2lvbj0zLjMyLjAKLXJl dmlzaW9uPTIKK3ZlcnNpb249My4zNi4wCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1nbnUtY29u ZmlndXJlCiBidWlsZF9oZWxwZXI9ImdpciIKIGNvbmZpZ3VyZV9hcmdzPSItLWRpc2FibGUtc3Rh dGljIgpAQCAtMTIsNyArMTIsNyBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZv aWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgTEdQTC0yLjAtb3ItbGF0 ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLW1lbnVz IgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3Br Z25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09Yzg1MGM2NGIyMDc0MjY1ZmU1OWUw OTlhMzQwYjg2ODljZjNkZDQ2NThkYzlmZWRkZDJhYjVlOTVmMWE3NGI3NAorY2hlY2tzdW09ZDkz NDhmMzhiZGU5NTZmYzMyNzUzYjI4YzFjZGUxOWMxNzViZmRiZjFmNGQ1YjA2MDAzYjNhYTA5MTUz YmIxZgogCiBidWlsZF9vcHRpb25zPSJnaXIiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIK CkZyb20gYjI3YjM1MDhmNjRkMmU0NmNlNDE0NjNkOWRiOGVmNjUyYzA4ZWQzYiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+ CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDAz Ny8xMDJdIGdub21lLWRlc2t0b3A6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogY29tbW9uL3NobGli cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogc3JjcGtncy9nbm9tZS1kZXNr dG9wL3BhdGNoZXMvYnVpbGQucGF0Y2ggfCAxOCArKysrKysrKysrKysrKysrKysKIHNyY3BrZ3Mv Z25vbWUtZGVza3RvcC90ZW1wbGF0ZSAgICAgICAgICAgIHwgMTEgKysrKysrKystLS0KIDMgZmls ZXMgY2hhbmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL2dub21lLWRlc2t0b3AvcGF0Y2hlcy9idWlsZC5wYXRjaAoKZGlmZiAt LWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IDUwNzc3NzUxZjRjLi5k ZjQ4ODQxYzViNSAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJz CkBAIC0xMTc2LDcgKzExNzYsNyBAQCBsaWJnc3RiYXNlY2FtZXJhYmluc3JjLTEuMC5zby4wIGdz dC1wbHVnaW5zLWJhZDEtMS4wLjBfMQogbGliZ3N0Y29kZWNwYXJzZXJzLTEuMC5zby4wIGdzdC1w bHVnaW5zLWJhZDEtMS4wLjBfMQogbGliZ3N0cGxheWVyLTEuMC5zby4wIGdzdC1wbHVnaW5zLWJh ZDEtMS4wLjBfMQogbGliZ3N0Z2wtMS4wLnNvLjAgZ3N0LXBsdWdpbnMtYmFzZTEtMS4xNC4wXzEK LWxpYmdub21lLWRlc2t0b3AtMy5zby4xOCBnbm9tZS1kZXNrdG9wLTMuMzQuMF8xCitsaWJnbm9t ZS1kZXNrdG9wLTMuc28uMTkgZ25vbWUtZGVza3RvcC0zLjM3LjkwLjFfMQogbGlic2VjcmV0LTEu c28uMCBsaWJzZWNyZXQtMC4xMF8xCiBsaWJnd2VhdGhlci0zLnNvLjE2IGxpYmd3ZWF0aGVyLTMu MzQuMF8xCiBsaWJnbm9tZWtiZC5zby44IGxpYmdub21la2JkLTMuNi4wXzEKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZ25vbWUtZGVza3RvcC9wYXRjaGVzL2J1aWxkLnBhdGNoIGIvc3JjcGtncy9nbm9t ZS1kZXNrdG9wL3BhdGNoZXMvYnVpbGQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLmVmZWQwMGEyNWRkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9nbm9t ZS1kZXNrdG9wL3BhdGNoZXMvYnVpbGQucGF0Y2gKQEAgLTAsMCArMSwxOCBAQAorY29tbWl0IDRm NTVmZjA3ODQxMTk5M2I3ODJlNzRlYTE4YzVjNmFiMzVhZGY2ODUKK0F1dGhvcjogRGFuaWVsIEtv bGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CitEYXRlOiAgIFdlZCBBdWcgMTIgMDU6MjY6MDAg MjAyMCArMDIwMAorCisgICAgYmxhCisKK2RpZmYgLS1naXQgbGliZ25vbWUtZGVza3RvcC9nbm9t ZS1yci5oIGxpYmdub21lLWRlc2t0b3AvZ25vbWUtcnIuaAoraW5kZXggMTExYmFiMy4uNzY5ODY3 MiAxMDA2NDQKKy0tLSBsaWJnbm9tZS1kZXNrdG9wL2dub21lLXJyLmgKKysrKyBsaWJnbm9tZS1k ZXNrdG9wL2dub21lLXJyLmgKK0BAIC0yOCw2ICsyOCw3IEBACisgI2Vycm9yICAgIEdub21lUlIg aXMgdW5zdGFibGUgQVBJLiBZb3UgbXVzdCBkZWZpbmUgR05PTUVfREVTS1RPUF9VU0VfVU5TVEFC TEVfQVBJIGJlZm9yZSBpbmNsdWRpbmcgZ25vbWVyci5oCisgI2VuZGlmCisgCisrI2luY2x1ZGUg PHN0ZGludC5oPgorICNpbmNsdWRlIDxnbGliLmg+CisgI2luY2x1ZGUgPGdkay9nZGsuaD4KKyAK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtZGVza3RvcC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25v bWUtZGVza3RvcC90ZW1wbGF0ZQppbmRleCA5OTJjYjFmZjE2YS4uYmQwYjJmNWMxZDkgMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtZGVza3RvcC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21l LWRlc2t0b3AvdGVtcGxhdGUKQEAgLTEsMTAgKzEsMTAgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J2dub21lLWRlc2t0b3AnCiBwa2duYW1lPWdub21lLWRlc2t0b3AKLXZlcnNpb249My4zNC4xCit2 ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBl cj0iZ2lyIgotY29uZmlndXJlX2FyZ3M9Ii1EZ25vbWUtZGlzdHJpYnV0b3I9Vm9pZExpbnV4IC1E dWRldj1lbmFibGVkCitjb25maWd1cmVfYXJncz0iLURnbm9tZV9kaXN0cmlidXRvcj1Wb2lkTGlu dXggLUR1ZGV2PWVuYWJsZWQgLURzeXN0ZW1kPWRpc2FibGVkCiAgLURpbnRyb3NwZWN0aW9uPSQo dm9wdF9pZiBnaXIgdHJ1ZSBmYWxzZSkiCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgaXRzdG9v bCBwa2ctY29uZmlnIGdsaWItZGV2ZWwiCiBtYWtlZGVwZW5kcz0iZXVkZXYtbGlidWRldi1kZXZl bCBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzLWRldmVsIGd0ayszLWRldmVsCkBAIC0xNiwxMSAr MTYsMTYgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIK IGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9 Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1kZXNrdG9wIgogZGlzdGZpbGVz PSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVy c2lvbn0udGFyLnh6IgotY2hlY2tzdW09YzFkYmViNTY2NmRhZDI3MTY2Yzc2OWU0OGUyYWI0MWRk NWVkNzQ3MThlYTM1ZWI1N2M4NDg4NzkwNjYyZGM1YQorY2hlY2tzdW09MDg5ZGJiZTNjNjZmZTU1 NzU2NTlhNGEzODVkNWQ0YmJkOTljZjYzNzAzNGRmMzE3ZjIxY2Y1ODZiNWRkNmI5MAogCiBidWls ZF9vcHRpb25zPSJnaXIiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKIAorIyBuZWVkcyBY Citkb19jaGVjaygpIHsKKwk6Cit9CisKIGdub21lLWRlc2t0b3AtZGV2ZWxfcGFja2FnZSgpIHsK IAlkZXBlbmRzPSJndGsrMy1kZXZlbCBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzLWRldmVsPj0z LjEyCiAJIGdkay1waXhidWYtZGV2ZWwgaXNvLWNvZGVzIGxpYlgxMS1kZXZlbCBsaWJnbGliLWRl dmVsIGxpYnNlY2NvbXAtZGV2ZWwKCkZyb20gNjlkMGVmYmUwOGM2MGM2YWFjZTYxMzc4NWEyZTQw MmQ1ODY2ZjQ5MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8 ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAy MDAKU3ViamVjdDogW1BBVENIIDAzOC8xMDJdIGdub21lLXNldHRpbmdzLWRhZW1vbjogdXBkYXRl IHRvIDMuMzguMAoKLS0tCiAuLi4vcGF0Y2hlcy9sb2dpbmQtYmFja2xpZ2h0LnBhdGNoICAgICAg ICAgICAgfCAxMzYgKysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL2dub21lLXNldHRpbmdzLWRh ZW1vbi90ZW1wbGF0ZSAgICAgICAgfCAgMTEgKy0KIDIgZmlsZXMgY2hhbmdlZCwgMTQyIGluc2Vy dGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbm9t ZS1zZXR0aW5ncy1kYWVtb24vcGF0Y2hlcy9sb2dpbmQtYmFja2xpZ2h0LnBhdGNoCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9nbm9tZS1zZXR0aW5ncy1kYWVtb24vcGF0Y2hlcy9sb2dpbmQtYmFja2xp Z2h0LnBhdGNoIGIvc3JjcGtncy9nbm9tZS1zZXR0aW5ncy1kYWVtb24vcGF0Y2hlcy9sb2dpbmQt YmFja2xpZ2h0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5l NWNhNmJkNDNkZAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZ25vbWUtc2V0dGluZ3MtZGFl bW9uL3BhdGNoZXMvbG9naW5kLWJhY2tsaWdodC5wYXRjaApAQCAtMCwwICsxLDEzNiBAQAorRnJv bSAzODQ1YjNhN2I1OGYyNmVjNjhkYmMxYzQ1N2VhZDA2ZjQ4ODExODBiIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQorRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CitE YXRlOiBGcmksIDE0IEF1ZyAyMDIwIDE3OjQ4OjIxICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIFRo ZSBuZXcgbG9naW5kIGJyaWdodG5lc3MgY29kZSBkb2Vzbid0IHdvcmsgd2l0aCBlbG9naW5kLgor CitodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2V0dGluZ3MtZGFlbW9uLy0v Y29tbWl0L2NkMDUxZTZjN2NjZmI3ZTdiMGVjNDQwNDA5YzU1OWIyZTUxMjg0ZTgKKy0tLQorIHBs dWdpbnMvcG93ZXIvZ3NkLWJhY2tsaWdodC5jIHwgNzcgKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA3MCBkZWxldGlv bnMoLSkKKworZGlmZiAtLWdpdCBwbHVnaW5zL3Bvd2VyL2dzZC1iYWNrbGlnaHQuYyBwbHVnaW5z L3Bvd2VyL2dzZC1iYWNrbGlnaHQuYworaW5kZXggY2E1ZjI3Mi4uNGFjYzJlNSAxMDA2NDQKKy0t LSBwbHVnaW5zL3Bvd2VyL2dzZC1iYWNrbGlnaHQuYworKysrIHBsdWdpbnMvcG93ZXIvZ3NkLWJh Y2tsaWdodC5jCitAQCAtNDAsOCArNDAsNiBAQCBzdHJ1Y3QgX0dzZEJhY2tsaWdodAorICAgICAg ICAgZ2ludCBicmlnaHRuZXNzX3N0ZXA7CisgCisgI2lmZGVmIF9fbGludXhfXworLSAgICAgICAg R0RCdXNQcm94eSAqbG9naW5kX3Byb3h5OworLQorICAgICAgICAgR1VkZXZDbGllbnQgKnVkZXY7 CisgICAgICAgICBHVWRldkRldmljZSAqdWRldl9kZXZpY2U7CisgCitAQCAtNjEsMTAgKzU5LDYg QEAgZW51bSB7CisgICAgICAgICBQUk9QX0xBU1QsCisgfTsKKyAKKy0jZGVmaW5lIFNZU1RFTURf REJVU19OQU1FICAgICAgICAgICAgICAgICAgICAgICAib3JnLmZyZWVkZXNrdG9wLmxvZ2luMSIK Ky0jZGVmaW5lIFNZU1RFTURfREJVU19QQVRIICAgICAgICAgICAgICAgICAgICAgICAiL29yZy9m cmVlZGVza3RvcC9sb2dpbjEvc2Vzc2lvbi9hdXRvIgorLSNkZWZpbmUgU1lTVEVNRF9EQlVTX0lO VEVSRkFDRSAgICAgICAgICAgICAgICAgICJvcmcuZnJlZWRlc2t0b3AubG9naW4xLlNlc3Npb24i CistCisgc3RhdGljIEdQYXJhbVNwZWMgKnByb3BzW1BST1BfTEFTVF07CisgCisgc3RhdGljIHZv aWQgICAgIGdzZF9iYWNrbGlnaHRfaW5pdGFibGVfaWZhY2VfaW5pdCAoR0luaXRhYmxlSWZhY2Ug ICppZmFjZSk7CitAQCAtNDgyLDMwICs0NzYsMTMgQEAgZ3NkX2JhY2tsaWdodF9zZXRfYnJpZ2h0 bmVzc192YWxfYXN5bmMgKEdzZEJhY2tsaWdodCAqYmFja2xpZ2h0LAorICAgICAgICAgaWYgKGJh Y2tsaWdodC0+dWRldl9kZXZpY2UgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICBCYWNrbGln aHRIZWxwZXJEYXRhICp0YXNrX2RhdGE7CisgCistICAgICAgICAgICAgICAgIGlmIChiYWNrbGln aHQtPmxvZ2luZF9wcm94eSkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGdfZGJ1c19wcm94 eV9jYWxsIChiYWNrbGlnaHQtPmxvZ2luZF9wcm94eSwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIlNldEJyaWdodG5lc3MiLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBnX3ZhcmlhbnRfbmV3ICgiKHNzdSkiLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYmFj a2xpZ2h0IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ191ZGV2X2RldmljZV9nZXRfbmFtZSAoYmFja2xpZ2h0LT51ZGV2X2Rldmlj ZSksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGJhY2tsaWdodC0+YnJpZ2h0bmVzc190YXJnZXQpLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBHX0RCVVNfQ0FMTF9GTEFHU19OT05FLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMSwgTlVMTCwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCk7CistCistICAg ICAgICAgICAgICAgICAgICAgICAgcGVyY2VudCA9IEFCU19UT19QRVJDRU5UQUdFIChiYWNrbGln aHQtPmJyaWdodG5lc3NfbWluLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYmFja2xpZ2h0LT5icmlnaHRuZXNzX21heCwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tsaWdodC0+YnJp Z2h0bmVzc190YXJnZXQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGdfdGFza19yZXR1cm5f aW50ICh0YXNrLCBwZXJjZW50KTsKKy0gICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAg ICAgICAgICAgICAgICAgICB0YXNrX2RhdGEgPSBnX25ldzAgKEJhY2tsaWdodEhlbHBlckRhdGEs IDEpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHRhc2tfZGF0YS0+dmFsdWUgPSBiYWNrbGln aHQtPmJyaWdodG5lc3NfdGFyZ2V0OworLSAgICAgICAgICAgICAgICAgICAgICAgIGdfdGFza19z ZXRfdGFza19kYXRhICh0YXNrLCB0YXNrX2RhdGEsIGJhY2tsaWdodF90YXNrX2RhdGFfZGVzdHJv eSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgLyogVGFzayBpcyBzZXQgdXAgbm93LiBR dWV1ZSBpdCBhbmQgZW5zdXJlIHdlIGFyZSB3b3JraW5nIHNvbWV0aGluZy4gKi8KKy0gICAgICAg ICAgICAgICAgICAgICAgICBnX3F1ZXVlX3B1c2hfdGFpbCAoJmJhY2tsaWdodC0+dGFza3MsIHRh c2spOworLSAgICAgICAgICAgICAgICAgICAgICAgIGdzZF9iYWNrbGlnaHRfcHJvY2Vzc190YXNr cXVldWUgKGJhY2tsaWdodCk7CistICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAg dGFza19kYXRhID0gZ19uZXcwIChCYWNrbGlnaHRIZWxwZXJEYXRhLCAxKTsKKysgICAgICAgICAg ICAgICAgdGFza19kYXRhLT52YWx1ZSA9IGJhY2tsaWdodC0+YnJpZ2h0bmVzc190YXJnZXQ7Cisr ICAgICAgICAgICAgICAgIGdfdGFza19zZXRfdGFza19kYXRhICh0YXNrLCB0YXNrX2RhdGEsIGJh Y2tsaWdodF90YXNrX2RhdGFfZGVzdHJveSk7CisrCisrICAgICAgICAgICAgICAgIC8qIFRhc2sg aXMgc2V0IHVwIG5vdy4gUXVldWUgaXQgYW5kIGVuc3VyZSB3ZSBhcmUgd29ya2luZyBzb21ldGhp bmcuICovCisrICAgICAgICAgICAgICAgIGdfcXVldWVfcHVzaF90YWlsICgmYmFja2xpZ2h0LT50 YXNrcywgdGFzayk7CisrICAgICAgICAgICAgICAgIGdzZF9iYWNrbGlnaHRfcHJvY2Vzc190YXNr cXVldWUgKGJhY2tsaWdodCk7CisgCisgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg IH0KK0BAIC04MjMsNyArODAwLDYgQEAgZ3NkX2JhY2tsaWdodF9pbml0YWJsZV9pbml0IChHSW5p dGFibGUgICAgICAgKmluaXRhYmxlLAorIHsKKyAgICAgICAgIEdzZEJhY2tsaWdodCAqYmFja2xp Z2h0ID0gR1NEX0JBQ0tMSUdIVCAoaW5pdGFibGUpOworICAgICAgICAgR25vbWVSUk91dHB1dCog b3V0cHV0ID0gTlVMTDsKKy0gICAgICAgIEdFcnJvciAqbG9naW5kX2Vycm9yID0gTlVMTDsKKyAK KyAgICAgICAgIGlmIChjYW5jZWxsYWJsZSAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgIGdf c2V0X2Vycm9yX2xpdGVyYWwgKGVycm9yLCBHX0lPX0VSUk9SLCBHX0lPX0VSUk9SX05PVF9TVVBQ T1JURUQsCitAQCAtODMyLDQ0ICs4MDgsNiBAQCBnc2RfYmFja2xpZ2h0X2luaXRhYmxlX2luaXQg KEdJbml0YWJsZSAgICAgICAqaW5pdGFibGUsCisgICAgICAgICB9CisgCisgI2lmZGVmIF9fbGlu dXhfXworLSAgICAgICAgYmFja2xpZ2h0LT5sb2dpbmRfcHJveHkgPQorLSAgICAgICAgICAgICAg ICBnX2RidXNfcHJveHlfbmV3X2Zvcl9idXNfc3luYyAoR19CVVNfVFlQRV9TWVNURU0sCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNZU1RFTURfREJVU19OQU1FLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1lTVEVNRF9E QlVTX1BBVEgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTWVNURU1EX0RCVVNfSU5URVJGQUNFLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTlVMTCwgJmxvZ2luZF9lcnJvcik7CistICAgICAgICBpZiAoYmFj a2xpZ2h0LT5sb2dpbmRfcHJveHkpIHsKKy0gICAgICAgICAgICAgICAgLyogQ2hlY2sgdGhhdCB0 aGUgU2V0QnJpZ2h0bmVzcyBtZXRob2QgZG9lcyBleGlzdCAqLworLSAgICAgICAgICAgICAgICBn X2RidXNfcHJveHlfY2FsbF9zeW5jIChiYWNrbGlnaHQtPmxvZ2luZF9wcm94eSwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNldEJyaWdodG5lc3MiLCBOVUxMLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0RCVVNfQ0FMTF9GTEFH U19OT05FLCAtMSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVM TCwgJmxvZ2luZF9lcnJvcik7CistCistICAgICAgICAgICAgICAgIGlmIChnX2Vycm9yX21hdGNo ZXMgKGxvZ2luZF9lcnJvciwgR19EQlVTX0VSUk9SLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBHX0RCVVNfRVJST1JfSU5WQUxJRF9BUkdTKSkgeworLSAgICAgICAgICAg ICAgICAgICAgICAgIC8qIFdlIGFyZSBjYWxsaW5nIHRoZSBtZXRob2Qgd2l0aCBubyBhcmd1bWVu dHMsIHNvCistICAgICAgICAgICAgICAgICAgICAgICAgICogdGhpcyBpcyBleHBlY3RlZC4KKy0g ICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy0gICAgICAgICAgICAgICAgICAgICAgICBnX2Ns ZWFyX2Vycm9yICgmbG9naW5kX2Vycm9yKTsKKy0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChn X2Vycm9yX21hdGNoZXMgKGxvZ2luZF9lcnJvciwgR19EQlVTX0VSUk9SLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19EQlVTX0VSUk9SX1VOS05PV05fTUVU SE9EKSkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIC8qIHN5c3RlbWQgdmVyc2lvbiBpcyB0 b28gb2xkLCBzbyBpZ25vcmUuCistICAgICAgICAgICAgICAgICAgICAgICAgICovCistICAgICAg ICAgICAgICAgICAgICAgICAgZ19jbGVhcl9lcnJvciAoJmxvZ2luZF9lcnJvcik7CistICAgICAg ICAgICAgICAgICAgICAgICAgZ19jbGVhcl9vYmplY3QgKCZiYWNrbGlnaHQtPmxvZ2luZF9wcm94 eSk7CistICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAg LyogRmFpbCBvbiBhbnl0aGluZyBlbHNlICovCistICAgICAgICAgICAgICAgICAgICAgICAgZ19j bGVhcl9vYmplY3QgKCZiYWNrbGlnaHQtPmxvZ2luZF9wcm94eSk7CistICAgICAgICAgICAgICAg IH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGlmIChsb2dpbmRfZXJyb3IpIHsKKy0gICAgICAg ICAgICAgICAgZ193YXJuaW5nICgiTm8gbG9naW5kIGZvdW5kOiAlcyIsIGxvZ2luZF9lcnJvci0+ bWVzc2FnZSk7CistICAgICAgICAgICAgICAgIGdfZXJyb3JfZnJlZSAobG9naW5kX2Vycm9yKTsK Ky0gICAgICAgIH0KKy0KKyAgICAgICAgIC8qIFRyeSBmaW5kaW5nIGEgdWRldiBkZXZpY2UuICov CisgICAgICAgICBpZiAoZ3NkX2JhY2tsaWdodF91ZGV2X2luaXQgKGJhY2tsaWdodCkpCisgICAg ICAgICAgICAgICAgIGdvdG8gZm91bmQ7CitAQCAtOTExLDcgKzg0OSw2IEBAIGdzZF9iYWNrbGln aHRfZmluYWxpemUgKEdPYmplY3QgKm9iamVjdCkKKyAjaWZkZWYgX19saW51eF9fCisgICAgICAg ICBnX2Fzc2VydCAoYmFja2xpZ2h0LT5hY3RpdmVfdGFzayA9PSBOVUxMKTsKKyAgICAgICAgIGdf YXNzZXJ0IChnX3F1ZXVlX2lzX2VtcHR5ICgmYmFja2xpZ2h0LT50YXNrcykpOworLSAgICAgICAg Z19jbGVhcl9vYmplY3QgKCZiYWNrbGlnaHQtPmxvZ2luZF9wcm94eSk7CisgICAgICAgICBnX2Ns ZWFyX29iamVjdCAoJmJhY2tsaWdodC0+dWRldik7CisgICAgICAgICBnX2NsZWFyX29iamVjdCAo JmJhY2tsaWdodC0+dWRldl9kZXZpY2UpOworICAgICAgICAgaWYgKGJhY2tsaWdodC0+aWRsZV91 cGRhdGUpIHsKKy0tIAorMi4yOC4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtc2V0dGlu Z3MtZGFlbW9uL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1zZXR0aW5ncy1kYWVtb24vdGVtcGxh dGUKaW5kZXggYTcwZTI4YmU1ZmEuLmI2ZGEyOGUyNTU0IDEwMDY0NAotLS0gYS9zcmNwa2dzL2du b21lLXNldHRpbmdzLWRhZW1vbi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLXNldHRpbmdz LWRhZW1vbi90ZW1wbGF0ZQpAQCAtMSwxMCArMSwxMSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn Z25vbWUtc2V0dGluZ3MtZGFlbW9uJwogcGtnbmFtZT1nbm9tZS1zZXR0aW5ncy1kYWVtb24KLXZl cnNpb249My4zNC4xCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTMuMzguMAorcmV2aXNpb249MQogYnVp bGRfc3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzKz0iLURzeXN0ZW1kPWZhbHNlIgotaG9zdG1h a2VkZXBlbmRzPSJjbWFrZSBkb2Nib29rLXhzbCBnbGliLWRldmVsIGxpYmdsaWItZGV2ZWwgbGli eHNsdCBwZXJsIHBrZy1jb25maWciCitob3N0bWFrZWRlcGVuZHM9ImNtYWtlIGRvY2Jvb2steHNs IGdldHRleHQgZ2xpYi1kZXZlbCBsaWJnbGliLWRldmVsIGxpYnhzbHQKKyBwZXJsIHBrZy1jb25m aWciCiBtYWtlZGVwZW5kcz0iTmV0d29ya01hbmFnZXItZGV2ZWwgYWxzYS1saWItZGV2ZWwgY29s b3JkLWRldmVsIGN1cHMtZGV2ZWwgZ2NyLWRldmVsCiAgZ2VvY2x1ZTItZGV2ZWwgZ25vbWUtZGVz a3RvcC1kZXZlbCBpYnVzLWRldmVsIGxpYmNhbmJlcnJhLWRldmVsIGxpYmdub21la2JkLWRldmVs CiAgbGliZ3dlYXRoZXItZGV2ZWwgbGlibm90aWZ5LWRldmVsIGxpYnJzdmctZGV2ZWwgbGlid2Fj b20tZGV2ZWwgbnNzLWRldmVsCkBAIC0xMiwxMyArMTMsMTMgQEAgbWFrZWRlcGVuZHM9Ik5ldHdv cmtNYW5hZ2VyLWRldmVsIGFsc2EtbGliLWRldmVsIGNvbG9yZC1kZXZlbCBjdXBzLWRldmVsIGdj ci1kZXYKICB4Zjg2LWlucHV0LXdhY29tLWRldmVsIgogZGVwZW5kcz0iaGljb2xvci1pY29uLXRo ZW1lIHB1bHNlYXVkaW8iCiBjaGVja2RlcGVuZHM9ImVsb2dpbmQgbGlibm90aWZ5IHB5dGhvbjMt ZGJ1c21vY2sgcHl0aG9uMy1nb2JqZWN0Ci0gcHl0aG9uMy1weWNvZGVzdHlsZSIKKyBweXRob24z LXB5Y29kZXN0eWxlIHdoaWNoIGh3aWRzIGV1ZGV2Igogc2hvcnRfZGVzYz0iR05PTUUgc2V0dGlu Z3MgZGFlbW9uIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3Jn PiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIu Z25vbWUub3JnL0dOT01FL2dub21lLXNldHRpbmdzLWRhZW1vbiIKIGRpc3RmaWxlcz0iJHtHTk9N RV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRh ci54eiIKLWNoZWNrc3VtPTk5ODFhMjBiYWJmOGRhNzc0NGI3ZmJlMTc1YjllMzYwNzhiZjA4ZjNi ZjY1ZmU1YWVkZWI4MmNmZTI3YWMxMWYKK2NoZWNrc3VtPWI3ZWQ1YjVmYWI5YWFkMTkyY2VlZDZh OTViZTI4MDUxMjRlM2M2M2M0Njg5MWJiYWUwNzZmN2VjM2ZkNjc5MmUKIAogaWYgWyAiJENST1NT X0JVSUxEIiBdOyB0aGVuCiAJaG9zdG1ha2VkZXBlbmRzKz0iIHBvbGtpdCIKCkZyb20gNWJiMDZj YmVjZGE4MTUyMjUyMTdhNzZjYjM5Nzc1NGVmNWE0ZTc3OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwg MTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDAzOS8xMDJdIG11dHRl cjogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgMTggKy0KIC4uLi9wYXRjaGVzL2ZpeC1jb2dsLWVnbC1pbmNsdWRl cy5wYXRjaCAgICAgICB8ICAxMSAtCiBzcmNwa2dzL211dHRlci9wYXRjaGVzL3BpcGV3aXJlLTAu My5wYXRjaCAgICAgfCA1MjEgLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmNwa2dzL211dHRlci90ZW1w bGF0ZSAgICAgICAgICAgICAgICAgICAgICAgfCAgMzQgKy0KIDQgZmlsZXMgY2hhbmdlZCwgMjkg aW5zZXJ0aW9ucygrKSwgNTU1IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvbXV0dGVyL3BhdGNoZXMvZml4LWNvZ2wtZWdsLWluY2x1ZGVzLnBhdGNoCiBkZWxldGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9tdXR0ZXIvcGF0Y2hlcy9waXBld2lyZS0wLjMucGF0Y2gKCmRpZmYg LS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCBkZjQ4ODQxYzViNS4u ZjJhNmU5OTU3ZTQgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGli cwpAQCAtMzAwMiwxNSArMzAwMiwxNSBAQCBsaWJkZWNvcmF0aW9uLnNvLjAgY29tcGl6LWNvcmUt MC44LjE0XzEKIGxpYmNvbXBpemNvbmZpZy5zby4wIGxpYmNvbXBpemNvbmZpZy0wLjguMTRfMQog bGliZW1lcmFsZGVuZ2luZS5zby4wIGVtZXJhbGQtMC44LjE0XzEKIGxpYmhhbmd1bC5zby4xIGxp Ymhhbmd1bC0wLjEuMF8xCi1saWJtdXR0ZXItNS5zby4wIG11dHRlci0zLjM0LjFfMQotbGlibXV0 dGVyLWNsdXR0ZXItNS5zbyBtdXR0ZXItMy4zNC4xXzEKLWxpYm11dHRlci1jbHV0dGVyLTUuc28u MCBtdXR0ZXItMy4zNC4xXzEKLWxpYm11dHRlci1jb2dsLXBhdGgtNS5zbyBtdXR0ZXItMy4zNC4x XzEKLWxpYm11dHRlci1jb2dsLXBhdGgtNS5zby4wIG11dHRlci0zLjM0LjFfMQotbGlibXV0dGVy LWNvZ2wtNS5zbyBtdXR0ZXItMy4zNC4xXzEKLWxpYm11dHRlci1jb2dsLTUuc28uMCBtdXR0ZXIt My4zNC4xXzEKLWxpYm11dHRlci1jb2dsLXBhbmdvLTUuc28gbXV0dGVyLTMuMzQuMV8xCi1saWJt dXR0ZXItY29nbC1wYW5nby01LnNvLjAgbXV0dGVyLTMuMzQuMV8xCitsaWJtdXR0ZXItNy5zby4w IG11dHRlci0zLjM3LjkwXzEKK2xpYm11dHRlci1jbHV0dGVyLTcuc28gbXV0dGVyLTMuMzcuOTBf MQorbGlibXV0dGVyLWNsdXR0ZXItNy5zby4wIG11dHRlci0zLjM3LjkwXzEKK2xpYm11dHRlci1j b2dsLXBhdGgtNy5zbyBtdXR0ZXItMy4zNy45MF8xCitsaWJtdXR0ZXItY29nbC1wYXRoLTcuc28u MCBtdXR0ZXItMy4zNy45MF8xCitsaWJtdXR0ZXItY29nbC03LnNvIG11dHRlci0zLjM3LjkwXzEK K2xpYm11dHRlci1jb2dsLTcuc28uMCBtdXR0ZXItMy4zNy45MF8xCitsaWJtdXR0ZXItY29nbC1w YW5nby03LnNvIG11dHRlci0zLjM3LjkwXzEKK2xpYm11dHRlci1jb2dsLXBhbmdvLTcuc28uMCBt dXR0ZXItMy4zNy45MF8xCiBsaWJnZW9jbHVlLTIuc28uMCBnZW9jbHVlMi0yLjQuNF8xCiBsaWJn ZXB1Yi5zby4wIGxpYmdlcHViLTAuNF8xCiBsaWJzbG9weS5zby43LjUgc2xvcC03LjVfMQpkaWZm IC0tZ2l0IGEvc3JjcGtncy9tdXR0ZXIvcGF0Y2hlcy9maXgtY29nbC1lZ2wtaW5jbHVkZXMucGF0 Y2ggYi9zcmNwa2dzL211dHRlci9wYXRjaGVzL2ZpeC1jb2dsLWVnbC1pbmNsdWRlcy5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDkwOTg4ODg3YzMuLjAwMDAwMDAwMDAwCi0t LSBhL3NyY3BrZ3MvbXV0dGVyL3BhdGNoZXMvZml4LWNvZ2wtZWdsLWluY2x1ZGVzLnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotLS0tIGNvZ2wvY29nbC9tZXNvbi5idWlsZAky MDE5LTEwLTA4IDE5OjE1OjEwLjAwMDAwMDAwMCArMDIwMAotKysrIGNvZ2wvY29nbC9tZXNvbi5i dWlsZAkyMDE5LTEyLTE2IDE1OjQ1OjQ0LjAzNzY0MDU0OCArMDEwMAotQEAgLTQ4LDcgKzQ4LDcg QEAKLSBidWlsdF9oZWFkZXJzICs9IFtjb2dsX2dsX2hlYWRlcl9oXQotIAotIGlmIGhhdmVfZWds Ci0tICBjb2dsX2VnbF9pbmNsdWRlc19zdHJpbmcgPSAnI2luY2x1ZGUgPEVHTC9lZ2wuaD5cbiNp bmNsdWRlIDxFR0wvZWdsZXh0Lmg+JwotKyAgY29nbF9lZ2xfaW5jbHVkZXNfc3RyaW5nID0gJyNp bmNsdWRlIDxFR0wvZWdsLmg+XG4jaW5jbHVkZSA8RUdML2VnbGV4dC5oPlxuI2luY2x1ZGUgPEVH TC9lZ2xtZXNhZXh0Lmg+JwotIGVsc2UKLSAgIGNvZ2xfZWdsX2luY2x1ZGVzX3N0cmluZyA9ICcn Ci0gZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbXV0dGVyL3BhdGNoZXMvcGlwZXdpcmUtMC4z LnBhdGNoIGIvc3JjcGtncy9tdXR0ZXIvcGF0Y2hlcy9waXBld2lyZS0wLjMucGF0Y2gKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGViZmY2NWZiYTg1Li4wMDAwMDAwMDAwMAotLS0gYS9z cmNwa2dzL211dHRlci9wYXRjaGVzL3BpcGV3aXJlLTAuMy5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDUyMSArMCwwIEBACi1CdWlsZCBtdXR0ZXIgYWdhaW5zdCBwaXBld2lyZS0wLjMsIGJhc2Vk IG9uIGEgcGF0Y2ggYXQ6Ci1odHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvbXV0dGVyLy0v bWVyZ2VfcmVxdWVzdHMvMTA2MgotLS0tIG1lc29uLmJ1aWxkCi0rKysgbWVzb24uYnVpbGQKLUBA IC01MCw3ICs1MCw3IEBAIGxpYmlucHV0X3JlcSA9ICc+PSAxLjcnCi0gZ2JtX3JlcSA9ICc+PSAx MC4zJwotCi0gIyBzY3JlZW4gY2FzdCB2ZXJzaW9uIHJlcXVpcmVtZW50cwotLWxpYnBpcGV3aXJl X3JlcSA9ICc+PSAwLjIuNScKLStsaWJwaXBld2lyZV9yZXEgPSAnPj0gMC4zLjAnCi0KLSBnbm9t ZSA9IGltcG9ydCgnZ25vbWUnKQotIHBrZyA9IGltcG9ydCgncGtnY29uZmlnJykKLUBAIC0yNDEs NyArMjQxLDcgQEAgZW5kaWYKLQotIGhhdmVfcmVtb3RlX2Rlc2t0b3AgPSBnZXRfb3B0aW9uKCdy ZW1vdGVfZGVza3RvcCcpCi0gaWYgaGF2ZV9yZW1vdGVfZGVza3RvcAotLSAgbGlicGlwZXdpcmVf ZGVwID0gZGVwZW5kZW5jeSgnbGlicGlwZXdpcmUtMC4yJywgdmVyc2lvbjogbGlicGlwZXdpcmVf cmVxKQotKyAgbGlicGlwZXdpcmVfZGVwID0gZGVwZW5kZW5jeSgnbGlicGlwZXdpcmUtMC4zJywg dmVyc2lvbjogbGlicGlwZXdpcmVfcmVxKQotIGVuZGlmCi0KLSBoYXZlX2ludHJvc3BlY3Rpb24g PSBnZXRfb3B0aW9uKCdpbnRyb3NwZWN0aW9uJykKLWRpZmYgLS1naXQgYS9zcmMvYmFja2VuZHMv bWV0YS1zY3JlZW4tY2FzdC1zdHJlYW0tc3JjLmMgYi9zcmMvYmFja2VuZHMvbWV0YS1zY3JlZW4t Y2FzdC1zdHJlYW0tc3JjLmMKLWluZGV4IDgyYzVjYmE0MzYuLmJhMWNlOTRhN2UgMTAwNjQ0Ci0t LS0gc3JjL2JhY2tlbmRzL21ldGEtc2NyZWVuLWNhc3Qtc3RyZWFtLXNyYy5jCi0rKysgc3JjL2Jh Y2tlbmRzL21ldGEtc2NyZWVuLWNhc3Qtc3RyZWFtLXNyYy5jCi1AQCAtMjksNiArMjksNyBAQAot ICNpbmNsdWRlIDxzcGEvcGFyYW0vcHJvcHMuaD4KLSAjaW5jbHVkZSA8c3BhL3BhcmFtL2Zvcm1h dC11dGlscy5oPgotICNpbmNsdWRlIDxzcGEvcGFyYW0vdmlkZW8vZm9ybWF0LXV0aWxzLmg+Ci0r I2luY2x1ZGUgPHNwYS91dGlscy9yZXN1bHQuaD4KLSAjaW5jbHVkZSA8c3RkaW50Lmg+Ci0gI2lu Y2x1ZGUgPHN5cy9tbWFuLmg+Ci0KLUBAIC02MiwxNSArNjMsNiBAQCBlbnVtCi0KLSBzdGF0aWMg Z3VpbnQgc2lnbmFsc1tOX1NJR05BTFNdOwotCi0tdHlwZWRlZiBzdHJ1Y3QgX01ldGFTcGFUeXBl Ci0tewotLSAgc3RydWN0IHNwYV90eXBlX21lZGlhX3R5cGUgbWVkaWFfdHlwZTsKLS0gIHN0cnVj dCBzcGFfdHlwZV9tZWRpYV9zdWJ0eXBlIG1lZGlhX3N1YnR5cGU7Ci0tICBzdHJ1Y3Qgc3BhX3R5 cGVfZm9ybWF0X3ZpZGVvIGZvcm1hdF92aWRlbzsKLS0gIHN0cnVjdCBzcGFfdHlwZV92aWRlb19m b3JtYXQgdmlkZW9fZm9ybWF0OwotLSAgdWludDMyX3QgbWV0YV9jdXJzb3I7Ci0tfSBNZXRhU3Bh VHlwZTsKLS0KLSB0eXBlZGVmIHN0cnVjdCBfTWV0YVBpcGVXaXJlU291cmNlCi0gewotICAgR1Nv dXJjZSBiYXNlOwotQEAgLTgyLDE5ICs3NCwxOSBAQCB0eXBlZGVmIHN0cnVjdCBfTWV0YVNjcmVl bkNhc3RTdHJlYW1TcmNQcml2YXRlCi0gewotICAgTWV0YVNjcmVlbkNhc3RTdHJlYW0gKnN0cmVh bTsKLQotKyAgc3RydWN0IHB3X2NvbnRleHQgKnBpcGV3aXJlX2NvbnRleHQ7Ci0gICBzdHJ1Y3Qg cHdfY29yZSAqcGlwZXdpcmVfY29yZTsKLS0gIHN0cnVjdCBwd19yZW1vdGUgKnBpcGV3aXJlX3Jl bW90ZTsKLS0gIHN0cnVjdCBwd190eXBlICpwaXBld2lyZV90eXBlOwotICAgTWV0YVBpcGVXaXJl U291cmNlICpwaXBld2lyZV9zb3VyY2U7Ci0tICBzdHJ1Y3Qgc3BhX2hvb2sgcGlwZXdpcmVfcmVt b3RlX2xpc3RlbmVyOwotKyAgc3RydWN0IHNwYV9ob29rIHBpcGV3aXJlX2NvcmVfbGlzdGVuZXI7 Ci0KLSAgIGdib29sZWFuIGlzX2VuYWJsZWQ7Ci0KLSAgIHN0cnVjdCBwd19zdHJlYW0gKnBpcGV3 aXJlX3N0cmVhbTsKLSAgIHN0cnVjdCBzcGFfaG9vayBwaXBld2lyZV9zdHJlYW1fbGlzdGVuZXI7 Ci0rICB1aW50MzJfdCBub2RlX2lkOwotCi0tICBNZXRhU3BhVHlwZSBzcGFfdHlwZTsKLSAgIHN0 cnVjdCBzcGFfdmlkZW9faW5mb19yYXcgdmlkZW9fZm9ybWF0OwotKyAgaW50IHZpZGVvX3N0cmlk ZTsKLQotICAgdWludDY0X3QgbGFzdF9mcmFtZV90aW1lc3RhbXBfdXM7Ci0KLUBAIC0xMTIsOCAr MTA0LDYgQEAgR19ERUZJTkVfVFlQRV9XSVRIX0NPREUgKE1ldGFTY3JlZW5DYXN0U3RyZWFtU3Jj LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFf c2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19pbml0X2luaXRhYmxlX2lmYWNlKQotICAgICAgICAgICAg ICAgICAgICAgICAgICBHX0FERF9QUklWQVRFIChNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyYykpCi0K LS0jZGVmaW5lIFBST1BfUkFOR0UobWluLCBtYXgpIDIsIChtaW4pLCAobWF4KQotLQotIHN0YXRp YyB2b2lkCi0gbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2dldF9zcGVjcyAoTWV0YVNjcmVl bkNhc3RTdHJlYW1TcmMgKnNyYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAqd2lkdGgsCi1AQCAtMjg2LDkgKzI3Niw2IEBA IG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19zZXRfZW1wdHlfY3Vyc29yX3Nwcml0ZV9tZXRh ZGF0YSAoTWV0YVNjcmVlbkNhc3RTdHJlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAg eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGludCAgICAgICAgICAgICAgICAgICAgICB5KQotIHsKLS0gIE1ldGFTY3JlZW5D YXN0U3RyZWFtU3JjUHJpdmF0ZSAqcHJpdiA9Ci0tICAgIG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFt X3NyY19nZXRfaW5zdGFuY2VfcHJpdmF0ZSAoc3JjKTsKLS0gIE1ldGFTcGFUeXBlICpzcGFfdHlw ZSA9ICZwcml2LT5zcGFfdHlwZTsKLSAgIHN0cnVjdCBzcGFfbWV0YV9iaXRtYXAgKnNwYV9tZXRh X2JpdG1hcDsKLQotICAgc3BhX21ldGFfY3Vyc29yLT5pZCA9IDE7Ci1AQCAtMzAwLDcgKzI4Nyw3 IEBAIG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19zZXRfZW1wdHlfY3Vyc29yX3Nwcml0ZV9t ZXRhZGF0YSAoTWV0YVNjcmVlbkNhc3RTdHJlCi0gICBzcGFfbWV0YV9iaXRtYXAgPSBTUEFfTUVN QkVSIChzcGFfbWV0YV9jdXJzb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz cGFfbWV0YV9jdXJzb3ItPmJpdG1hcF9vZmZzZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3Qgc3BhX21ldGFfYml0bWFwKTsKLS0gIHNwYV9tZXRhX2JpdG1hcC0+Zm9y bWF0ID0gc3BhX3R5cGUtPnZpZGVvX2Zvcm1hdC5SR0JBOwotKyAgc3BhX21ldGFfYml0bWFwLT5m b3JtYXQgPSBTUEFfVklERU9fRk9STUFUX1JHQkE7Ci0gICBzcGFfbWV0YV9iaXRtYXAtPm9mZnNl dCA9IHNpemVvZiAoc3RydWN0IHNwYV9tZXRhX2JpdG1hcCk7Ci0KLSAgIHNwYV9tZXRhX2N1cnNv ci0+aG90c3BvdC54ID0gMDsKLUBAIC0zMTcsOSArMzA0LDYgQEAgbWV0YV9zY3JlZW5fY2FzdF9z dHJlYW1fc3JjX3NldF9jdXJzb3Jfc3ByaXRlX21ldGFkYXRhIChNZXRhU2NyZWVuQ2FzdFN0cmVh bVNyYwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgIHksCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCAgICAgICAgICAgICAgICAg ICAgc2NhbGUpCi0gewotLSAgTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmNQcml2YXRlICpwcml2ID0K LS0gICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2dldF9pbnN0YW5jZV9wcml2YXRlIChz cmMpOwotLSAgTWV0YVNwYVR5cGUgKnNwYV90eXBlID0gJnByaXYtPnNwYV90eXBlOwotICAgQ29n bFRleHR1cmUgKmN1cnNvcl90ZXh0dXJlOwotICAgc3RydWN0IHNwYV9tZXRhX2JpdG1hcCAqc3Bh X21ldGFfYml0bWFwOwotICAgaW50IGhvdHNwb3RfeCwgaG90c3BvdF95OwotQEAgLTM0Niw3ICsz MzAsNyBAQCBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfc2V0X2N1cnNvcl9zcHJpdGVfbWV0 YWRhdGEgKE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjCi0gICBzcGFfbWV0YV9iaXRtYXAgPSBTUEFf TUVNQkVSIChzcGFfbWV0YV9jdXJzb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzcGFfbWV0YV9jdXJzb3ItPmJpdG1hcF9vZmZzZXQsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3Qgc3BhX21ldGFfYml0bWFwKTsKLS0gIHNwYV9tZXRhX2JpdG1hcC0+ Zm9ybWF0ID0gc3BhX3R5cGUtPnZpZGVvX2Zvcm1hdC5SR0JBOwotKyAgc3BhX21ldGFfYml0bWFw LT5mb3JtYXQgPSBTUEFfVklERU9fRk9STUFUX1JHQkE7Ci0gICBzcGFfbWV0YV9iaXRtYXAtPm9m ZnNldCA9IHNpemVvZiAoc3RydWN0IHNwYV9tZXRhX2JpdG1hcCk7Ci0KLSAgIG1ldGFfY3Vyc29y X3Nwcml0ZV9nZXRfaG90c3BvdCAoY3Vyc29yX3Nwcml0ZSwgJmhvdHNwb3RfeCwgJmhvdHNwb3Rf eSk7Ci1AQCAtMzgyLDEyICszNjYsMTAgQEAgc3RhdGljIHZvaWQKLSBhZGRfY3Vyc29yX21ldGFk YXRhIChNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyYyAqc3JjLAotICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCBzcGFfYnVmZmVyICAgICAgICpzcGFfYnVmZmVyKQotIHsKLS0gIE1ldGFTY3JlZW5D YXN0U3RyZWFtU3JjUHJpdmF0ZSAqcHJpdiA9Ci0tICAgIG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFt X3NyY19nZXRfaW5zdGFuY2VfcHJpdmF0ZSAoc3JjKTsKLS0gIE1ldGFTcGFUeXBlICpzcGFfdHlw ZSA9ICZwcml2LT5zcGFfdHlwZTsKLSAgIHN0cnVjdCBzcGFfbWV0YV9jdXJzb3IgKnNwYV9tZXRh X2N1cnNvcjsKLQotLSAgc3BhX21ldGFfY3Vyc29yID0gc3BhX2J1ZmZlcl9maW5kX21ldGEgKHNw YV9idWZmZXIsIHNwYV90eXBlLT5tZXRhX2N1cnNvcik7Ci0rICBzcGFfbWV0YV9jdXJzb3IgPSBz cGFfYnVmZmVyX2ZpbmRfbWV0YV9kYXRhIChzcGFfYnVmZmVyLCBTUEFfTUVUQV9DdXJzb3IsCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YgKCpz cGFfbWV0YV9jdXJzb3IpKTsKLSAgIGlmIChzcGFfbWV0YV9jdXJzb3IpCi0gICAgIG1ldGFfc2Ny ZWVuX2Nhc3Rfc3RyZWFtX3NyY19zZXRfY3Vyc29yX21ldGFkYXRhIChzcmMsIHNwYV9tZXRhX2N1 cnNvcik7Ci0gfQotQEAgLTQ0NywxNCArNDI5LDE0IEBAIG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFt X3NyY19tYXliZV9yZWNvcmRfZnJhbWUgKE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjICpzcmMpCi0g ICAgIHsKLSAgICAgICBkYXRhID0gc3BhX2J1ZmZlci0+ZGF0YXNbMF0uZGF0YTsKLSAgICAgfQot LSAgZWxzZSBpZiAoc3BhX2J1ZmZlci0+ZGF0YXNbMF0udHlwZSA9PSBwcml2LT5waXBld2lyZV90 eXBlLT5kYXRhLk1lbUZkKQotKyAgZWxzZSBpZiAoc3BhX2J1ZmZlci0+ZGF0YXNbMF0udHlwZSA9 PSBTUEFfREFUQV9NZW1GZCkKLSAgICAgewotICAgICAgIG1hcCA9IG1tYXAgKE5VTEwsIHNwYV9i dWZmZXItPmRhdGFzWzBdLm1heHNpemUgKyBzcGFfYnVmZmVyLT5kYXRhc1swXS5tYXBvZmZzZXQs Ci0gICAgICAgICAgICAgICAgICAgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwgTUFQX1NIQVJFRCwK LSAgICAgICAgICAgICAgICAgICBzcGFfYnVmZmVyLT5kYXRhc1swXS5mZCwgMCk7Ci0gICAgICAg aWYgKG1hcCA9PSBNQVBfRkFJTEVEKQotICAgICAgICAgewotLSAgICAgICAgICBnX3dhcm5pbmcg KCJGYWlsZWQgdG8gbW1hcCBwaXBld2lyZSBzdHJlYW0gYnVmZmVyOiAlc1xuIiwKLSsgICAgICAg ICAgZ193YXJuaW5nICgiRmFpbGVkIHRvIG1tYXAgcGlwZXdpcmUgc3RyZWFtIGJ1ZmZlcjogJXMi LAotICAgICAgICAgICAgICAgICAgICAgIHN0cmVycm9yIChlcnJubykpOwotICAgICAgICAgICBy ZXR1cm47Ci0gICAgICAgICB9Ci1AQCAtNDY5LDI4ICs0NTEsMzAgQEAgbWV0YV9zY3JlZW5fY2Fz dF9zdHJlYW1fc3JjX21heWJlX3JlY29yZF9mcmFtZSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMg KnNyYykKLQotICAgaWYgKG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19yZWNvcmRfZnJhbWUg KHNyYywgZGF0YSkpCi0gICAgIHsKLS0gICAgICBzdHJ1Y3Qgc3BhX21ldGFfdmlkZW9fY3JvcCAq c3BhX21ldGFfdmlkZW9fY3JvcDsKLSsgICAgICBzdHJ1Y3Qgc3BhX21ldGFfcmVnaW9uICpzcGFf bWV0YV92aWRlb19jcm9wOwotCi0gICAgICAgc3BhX2J1ZmZlci0+ZGF0YXNbMF0uY2h1bmstPnNp emUgPSBzcGFfYnVmZmVyLT5kYXRhc1swXS5tYXhzaXplOwotKyAgICAgIHNwYV9idWZmZXItPmRh dGFzWzBdLmNodW5rLT5zdHJpZGUgPSBwcml2LT52aWRlb19zdHJpZGU7Ci0KLSAgICAgICAvKiBV cGRhdGUgVmlkZW9Dcm9wIGlmIG5lZWRlZCAqLwotICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3Ag PQotLSAgICAgICAgc3BhX2J1ZmZlcl9maW5kX21ldGEgKHNwYV9idWZmZXIsIHByaXYtPnBpcGV3 aXJlX3R5cGUtPm1ldGEuVmlkZW9Dcm9wKTsKLSsgICAgICAgIHNwYV9idWZmZXJfZmluZF9tZXRh X2RhdGEgKHNwYV9idWZmZXIsIFNQQV9NRVRBX1ZpZGVvQ3JvcCwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNpemVvZiAoKnNwYV9tZXRhX3ZpZGVvX2Nyb3ApKTsKLSAgICAg ICBpZiAoc3BhX21ldGFfdmlkZW9fY3JvcCkKLSAgICAgICAgIHsKLSAgICAgICAgICAgaWYgKG1l dGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19nZXRfdmlkZW9jcm9wIChzcmMsICZjcm9wX3JlY3Qp KQotICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPngg PSBjcm9wX3JlY3QueDsKLS0gICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnkgPSBj cm9wX3JlY3QueTsKLS0gICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPndpZHRoID0g Y3JvcF9yZWN0LndpZHRoOwotLSAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+aGVp Z2h0ID0gY3JvcF9yZWN0LmhlaWdodDsKLSsgICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Ny b3AtPnJlZ2lvbi5wb3NpdGlvbi54ID0gY3JvcF9yZWN0Lng7Ci0rICAgICAgICAgICAgICBzcGFf bWV0YV92aWRlb19jcm9wLT5yZWdpb24ucG9zaXRpb24ueSA9IGNyb3BfcmVjdC55OwotKyAgICAg ICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+cmVnaW9uLnNpemUud2lkdGggPSBjcm9wX3Jl Y3Qud2lkdGg7Ci0rICAgICAgICAgICAgICBzcGFfbWV0YV92aWRlb19jcm9wLT5yZWdpb24uc2l6 ZS5oZWlnaHQgPSBjcm9wX3JlY3QuaGVpZ2h0OwotICAgICAgICAgICAgIH0KLSAgICAgICAgICAg ZWxzZQotICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3At PnggPSAwOwotLSAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+eSA9IDA7Ci0tICAg ICAgICAgICAgICBzcGFfbWV0YV92aWRlb19jcm9wLT53aWR0aCA9IHByaXYtPnN0cmVhbV93aWR0 aDsKLS0gICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPmhlaWdodCA9IHByaXYtPnN0 cmVhbV9oZWlnaHQ7Ci0rICAgICAgICAgICAgICBzcGFfbWV0YV92aWRlb19jcm9wLT5yZWdpb24u cG9zaXRpb24ueCA9IDA7Ci0rICAgICAgICAgICAgICBzcGFfbWV0YV92aWRlb19jcm9wLT5yZWdp b24ucG9zaXRpb24ueSA9IDA7Ci0rICAgICAgICAgICAgICBzcGFfbWV0YV92aWRlb19jcm9wLT5y ZWdpb24uc2l6ZS53aWR0aCA9IHByaXYtPnN0cmVhbV93aWR0aDsKLSsgICAgICAgICAgICAgIHNw YV9tZXRhX3ZpZGVvX2Nyb3AtPnJlZ2lvbi5zaXplLmhlaWdodCA9IHByaXYtPnN0cmVhbV9oZWln aHQ7Ci0gICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICB9Ci1AQCAtNTU1LDcgKzUzOSw2 IEBAIG9uX3N0cmVhbV9zdGF0ZV9jaGFuZ2VkICh2b2lkICAgICAgICAgICAgICAgICAqZGF0YSwK LSAgIE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjICpzcmMgPSBkYXRhOwotICAgTWV0YVNjcmVlbkNh c3RTdHJlYW1TcmNQcml2YXRlICpwcml2ID0KLSAgICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1f c3JjX2dldF9pbnN0YW5jZV9wcml2YXRlIChzcmMpOwotLSAgdWludDMyX3Qgbm9kZV9pZDsKLQot ICAgc3dpdGNoIChzdGF0ZSkKLSAgICAgewotQEAgLTU2MywxNCArNTQ2LDEyIEBAIG9uX3N0cmVh bV9zdGF0ZV9jaGFuZ2VkICh2b2lkICAgICAgICAgICAgICAgICAqZGF0YSwKLSAgICAgICBnX3dh cm5pbmcgKCJwaXBld2lyZSBzdHJlYW0gZXJyb3I6ICVzIiwgZXJyb3JfbWVzc2FnZSk7Ci0gICAg ICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX25vdGlmeV9jbG9zZWQgKHNyYyk7Ci0gICAg ICAgYnJlYWs7Ci0tICAgIGNhc2UgUFdfU1RSRUFNX1NUQVRFX0NPTkZJR1VSRToKLS0gICAgICBu b2RlX2lkID0gcHdfc3RyZWFtX2dldF9ub2RlX2lkIChwcml2LT5waXBld2lyZV9zdHJlYW0pOwot LSAgICAgIGdfc2lnbmFsX2VtaXQgKHNyYywgc2lnbmFsc1tSRUFEWV0sIDAsICh1bnNpZ25lZCBp bnQpIG5vZGVfaWQpOwotLSAgICAgIGJyZWFrOwotLSAgICBjYXNlIFBXX1NUUkVBTV9TVEFURV9V TkNPTk5FQ1RFRDoKLS0gICAgY2FzZSBQV19TVFJFQU1fU1RBVEVfQ09OTkVDVElORzoKLS0gICAg Y2FzZSBQV19TVFJFQU1fU1RBVEVfUkVBRFk6Ci0gICAgIGNhc2UgUFdfU1RSRUFNX1NUQVRFX1BB VVNFRDoKLSsgICAgICBpZiAocHJpdi0+bm9kZV9pZCA9PSBTUEFfSURfSU5WQUxJRCAmJiBwcml2 LT5waXBld2lyZV9zdHJlYW0pCi0rICAgICAgICB7Ci0rICAgICAgICAgIHByaXYtPm5vZGVfaWQg PSBwd19zdHJlYW1fZ2V0X25vZGVfaWQgKHByaXYtPnBpcGV3aXJlX3N0cmVhbSk7Ci0rICAgICAg ICAgIGdfc2lnbmFsX2VtaXQgKHNyYywgc2lnbmFsc1tSRUFEWV0sIDAsICh1bnNpZ25lZCBpbnQp IHByaXYtPm5vZGVfaWQpOwotKyAgICAgICAgfQotICAgICAgIGlmIChtZXRhX3NjcmVlbl9jYXN0 X3N0cmVhbV9zcmNfaXNfZW5hYmxlZCAoc3JjKSkKLSAgICAgICAgIG1ldGFfc2NyZWVuX2Nhc3Rf c3RyZWFtX3NyY19kaXNhYmxlIChzcmMpOwotICAgICAgIGJyZWFrOwotQEAgLTU3OCw2OCArNTU5 LDY5IEBAIG9uX3N0cmVhbV9zdGF0ZV9jaGFuZ2VkICh2b2lkICAgICAgICAgICAgICAgICAqZGF0 YSwKLSAgICAgICBpZiAoIW1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19pc19lbmFibGVkIChz cmMpKQotICAgICAgICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2VuYWJsZSAoc3JjKTsK LSAgICAgICBicmVhazsKLSsgICAgY2FzZSBQV19TVFJFQU1fU1RBVEVfVU5DT05ORUNURUQ6Ci0r ICAgIGNhc2UgUFdfU1RSRUFNX1NUQVRFX0NPTk5FQ1RJTkc6Ci0rICAgICAgYnJlYWs7Ci0gICAg IH0KLSB9Ci0KLSBzdGF0aWMgdm9pZAotLW9uX3N0cmVhbV9mb3JtYXRfY2hhbmdlZCAodm9pZCAg ICAgICAgICAgICAgICAgKmRhdGEsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBz dHJ1Y3Qgc3BhX3BvZCAqZm9ybWF0KQotK29uX3N0cmVhbV9wYXJhbV9jaGFuZ2VkICh2b2lkICAg ICAgICAgICAgICAgICAqZGF0YSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3Qg ICAgICAgICAgICAgIGlkLAotKyAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qg c3BhX3BvZCAqZm9ybWF0KQotIHsKLSAgIE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjICpzcmMgPSBk YXRhOwotICAgTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmNQcml2YXRlICpwcml2ID0KLSAgICAgbWV0 YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2dldF9pbnN0YW5jZV9wcml2YXRlIChzcmMpOwotLSAg c3RydWN0IHB3X3R5cGUgKnBpcGV3aXJlX3R5cGUgPSBwcml2LT5waXBld2lyZV90eXBlOwotICAg dWludDhfdCBwYXJhbXNfYnVmZmVyWzEwMjRdOwotICAgaW50MzJfdCB3aWR0aCwgaGVpZ2h0LCBz dHJpZGUsIHNpemU7Ci0gICBzdHJ1Y3Qgc3BhX3BvZF9idWlsZGVyIHBvZF9idWlsZGVyOwotICAg Y29uc3Qgc3RydWN0IHNwYV9wb2QgKnBhcmFtc1szXTsKLSAgIGNvbnN0IGludCBicHAgPSA0Owot Ci0tICBpZiAoIWZvcm1hdCkKLS0gICAgewotLSAgICAgIHB3X3N0cmVhbV9maW5pc2hfZm9ybWF0 IChwcml2LT5waXBld2lyZV9zdHJlYW0sIDAsIE5VTEwsIDApOwotLSAgICAgIHJldHVybjsKLS0g ICAgfQotKyAgaWYgKCFmb3JtYXQgfHwgaWQgIT0gU1BBX1BBUkFNX0Zvcm1hdCkKLSsgICAgcmV0 dXJuOwotCi0gICBzcGFfZm9ybWF0X3ZpZGVvX3Jhd19wYXJzZSAoZm9ybWF0LAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICZwcml2LT52aWRlb19mb3JtYXQsCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJnByaXYtPnNwYV90eXBlLmZvcm1hdF92aWRlbyk7Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJnByaXYtPnZpZGVvX2Zvcm1hdCk7Ci0KLSAgIHdpZHRo ID0gcHJpdi0+dmlkZW9fZm9ybWF0LnNpemUud2lkdGg7Ci0gICBoZWlnaHQgPSBwcml2LT52aWRl b19mb3JtYXQuc2l6ZS5oZWlnaHQ7Ci0gICBzdHJpZGUgPSBTUEFfUk9VTkRfVVBfTiAod2lkdGgg KiBicHAsIDQpOwotICAgc2l6ZSA9IGhlaWdodCAqIHN0cmlkZTsKLQotKyAgcHJpdi0+dmlkZW9f c3RyaWRlID0gc3RyaWRlOwotKwotICAgcG9kX2J1aWxkZXIgPSBTUEFfUE9EX0JVSUxERVJfSU5J VCAocGFyYW1zX2J1ZmZlciwgc2l6ZW9mIChwYXJhbXNfYnVmZmVyKSk7Ci0KLS0gIHBhcmFtc1sw XSA9IHNwYV9wb2RfYnVpbGRlcl9vYmplY3QgKAotKyAgcGFyYW1zWzBdID0gc3BhX3BvZF9idWls ZGVyX2FkZF9vYmplY3QgKAotICAgICAmcG9kX2J1aWxkZXIsCi0tICAgIHBpcGV3aXJlX3R5cGUt PnBhcmFtLmlkQnVmZmVycywgcGlwZXdpcmVfdHlwZS0+cGFyYW1fYnVmZmVycy5CdWZmZXJzLAot LSAgICAiOiIsIHBpcGV3aXJlX3R5cGUtPnBhcmFtX2J1ZmZlcnMuc2l6ZSwgImkiLCBzaXplLAot LSAgICAiOiIsIHBpcGV3aXJlX3R5cGUtPnBhcmFtX2J1ZmZlcnMuc3RyaWRlLCAiaSIsIHN0cmlk ZSwKLS0gICAgIjoiLCBwaXBld2lyZV90eXBlLT5wYXJhbV9idWZmZXJzLmJ1ZmZlcnMsICJpcnUi LCAxNiwgUFJPUF9SQU5HRSAoMiwgMTYpLAotLSAgICAiOiIsIHBpcGV3aXJlX3R5cGUtPnBhcmFt X2J1ZmZlcnMuYWxpZ24sICJpIiwgMTYpOwotLQotLSAgcGFyYW1zWzFdID0gc3BhX3BvZF9idWls ZGVyX29iamVjdCAoCi0rICAgIFNQQV9UWVBFX09CSkVDVF9QYXJhbUJ1ZmZlcnMsIFNQQV9QQVJB TV9CdWZmZXJzLAotKyAgICBTUEFfUEFSQU1fQlVGRkVSU19idWZmZXJzLCBTUEFfUE9EX0NIT0lD RV9SQU5HRV9JbnQgKDE2LCAyLCAxNiksCi0rICAgIFNQQV9QQVJBTV9CVUZGRVJTX2Jsb2Nrcywg U1BBX1BPRF9JbnQgKDEpLAotKyAgICBTUEFfUEFSQU1fQlVGRkVSU19zaXplLCBTUEFfUE9EX0lu dCAoc2l6ZSksCi0rICAgIFNQQV9QQVJBTV9CVUZGRVJTX3N0cmlkZSwgU1BBX1BPRF9JbnQgKHN0 cmlkZSksCi0rICAgIFNQQV9QQVJBTV9CVUZGRVJTX2FsaWduLCBTUEFfUE9EX0ludCAoMTYpKTsK LSsKLSsgIHBhcmFtc1sxXSA9IHNwYV9wb2RfYnVpbGRlcl9hZGRfb2JqZWN0ICgKLSAgICAgJnBv ZF9idWlsZGVyLAotLSAgICBwaXBld2lyZV90eXBlLT5wYXJhbS5pZE1ldGEsIHBpcGV3aXJlX3R5 cGUtPnBhcmFtX21ldGEuTWV0YSwKLS0gICAgIjoiLCBwaXBld2lyZV90eXBlLT5wYXJhbV9tZXRh LnR5cGUsICJJIiwgcGlwZXdpcmVfdHlwZS0+bWV0YS5WaWRlb0Nyb3AsCi0tICAgICI6IiwgcGlw ZXdpcmVfdHlwZS0+cGFyYW1fbWV0YS5zaXplLCAiaSIsIHNpemVvZiAoc3RydWN0IHNwYV9tZXRh X3ZpZGVvX2Nyb3ApKTsKLSsgICAgU1BBX1RZUEVfT0JKRUNUX1BhcmFtTWV0YSwgU1BBX1BBUkFN X01ldGEsCi0rICAgIFNQQV9QQVJBTV9NRVRBX3R5cGUsIFNQQV9QT0RfSWQgKFNQQV9NRVRBX1Zp ZGVvQ3JvcCksCi0rICAgIFNQQV9QQVJBTV9NRVRBX3NpemUsIFNQQV9QT0RfSW50IChzaXplb2Yg KHN0cnVjdCBzcGFfbWV0YV9yZWdpb24pKSk7Ci0KLS0gIHBhcmFtc1syXSA9IHNwYV9wb2RfYnVp bGRlcl9vYmplY3QgKAotKyAgcGFyYW1zWzJdID0gc3BhX3BvZF9idWlsZGVyX2FkZF9vYmplY3Qg KAotICAgICAmcG9kX2J1aWxkZXIsCi0tICAgIHBpcGV3aXJlX3R5cGUtPnBhcmFtLmlkTWV0YSwg cGlwZXdpcmVfdHlwZS0+cGFyYW1fbWV0YS5NZXRhLAotLSAgICAiOiIsIHBpcGV3aXJlX3R5cGUt PnBhcmFtX21ldGEudHlwZSwgIkkiLCBwcml2LT5zcGFfdHlwZS5tZXRhX2N1cnNvciwKLS0gICAg IjoiLCBwaXBld2lyZV90eXBlLT5wYXJhbV9tZXRhLnNpemUsICJpIiwgQ1VSU09SX01FVEFfU0la RSAoNjQsIDY0KSk7Ci0rICAgIFNQQV9UWVBFX09CSkVDVF9QYXJhbU1ldGEsIFNQQV9QQVJBTV9N ZXRhLAotKyAgICBTUEFfUEFSQU1fTUVUQV90eXBlLCBTUEFfUE9EX0lkIChTUEFfTUVUQV9DdXJz b3IpLAotKyAgICBTUEFfUEFSQU1fTUVUQV9zaXplLCBTUEFfUE9EX0ludCAoQ1VSU09SX01FVEFf U0laRSAoNjQsIDY0KSkpOwotCi0tICBwd19zdHJlYW1fZmluaXNoX2Zvcm1hdCAocHJpdi0+cGlw ZXdpcmVfc3RyZWFtLCAwLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcywgR19O X0VMRU1FTlRTIChwYXJhbXMpKTsKLSsgIHB3X3N0cmVhbV91cGRhdGVfcGFyYW1zIChwcml2LT5w aXBld2lyZV9zdHJlYW0sIHBhcmFtcywgR19OX0VMRU1FTlRTIChwYXJhbXMpKTsKLSB9Ci0KLSBz dGF0aWMgY29uc3Qgc3RydWN0IHB3X3N0cmVhbV9ldmVudHMgc3RyZWFtX2V2ZW50cyA9IHsKLSAg IFBXX1ZFUlNJT05fU1RSRUFNX0VWRU5UUywKLSAgIC5zdGF0ZV9jaGFuZ2VkID0gb25fc3RyZWFt X3N0YXRlX2NoYW5nZWQsCi0tICAuZm9ybWF0X2NoYW5nZWQgPSBvbl9zdHJlYW1fZm9ybWF0X2No YW5nZWQsCi0rICAucGFyYW1fY2hhbmdlZCA9IG9uX3N0cmVhbV9wYXJhbV9jaGFuZ2VkLAotIH07 Ci0KLSBzdGF0aWMgc3RydWN0IHB3X3N0cmVhbSAqCi1AQCAtNjUyLDggKzYzNCw2IEBAIGNyZWF0 ZV9waXBld2lyZV9zdHJlYW0gKE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjICAqc3JjLAotICAgdWlu dDhfdCBidWZmZXJbMTAyNF07Ci0gICBzdHJ1Y3Qgc3BhX3BvZF9idWlsZGVyIHBvZF9idWlsZGVy ID0KLSAgICAgU1BBX1BPRF9CVUlMREVSX0lOSVQgKGJ1ZmZlciwgc2l6ZW9mIChidWZmZXIpKTsK LS0gIE1ldGFTcGFUeXBlICpzcGFfdHlwZSA9ICZwcml2LT5zcGFfdHlwZTsKLS0gIHN0cnVjdCBw d190eXBlICpwaXBld2lyZV90eXBlID0gcHJpdi0+cGlwZXdpcmVfdHlwZTsKLSAgIGZsb2F0IGZy YW1lX3JhdGU7Ci0gICBNZXRhRnJhY3Rpb24gZnJhbWVfcmF0ZV9mcmFjdGlvbjsKLSAgIHN0cnVj dCBzcGFfZnJhY3Rpb24gbWF4X2ZyYW1lcmF0ZTsKLUBAIC02NjEsNyArNjQxLDkgQEAgY3JlYXRl X3BpcGV3aXJlX3N0cmVhbSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgICpzcmMsCi0gICBjb25z dCBzdHJ1Y3Qgc3BhX3BvZCAqcGFyYW1zWzFdOwotICAgaW50IHJlc3VsdDsKLQotLSAgcGlwZXdp cmVfc3RyZWFtID0gcHdfc3RyZWFtX25ldyAocHJpdi0+cGlwZXdpcmVfcmVtb3RlLAotKyAgcHJp di0+bm9kZV9pZCA9IFNQQV9JRF9JTlZBTElEOwotKwotKyAgcGlwZXdpcmVfc3RyZWFtID0gcHdf c3RyZWFtX25ldyAocHJpdi0+cGlwZXdpcmVfY29yZSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJtZXRhLXNjcmVlbi1jYXN0LXNyYyIsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBOVUxMKTsKLSAgIGlmICghcGlwZXdpcmVfc3RyZWFtKQotQEAgLTY4 MiwxNyArNjY0LDE3IEBAIGNyZWF0ZV9waXBld2lyZV9zdHJlYW0gKE1ldGFTY3JlZW5DYXN0U3Ry ZWFtU3JjICAqc3JjLAotICAgbWF4X2ZyYW1lcmF0ZSA9IFNQQV9GUkFDVElPTiAoZnJhbWVfcmF0 ZV9mcmFjdGlvbi5udW0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZV9y YXRlX2ZyYWN0aW9uLmRlbm9tKTsKLQotLSAgcGFyYW1zWzBdID0gc3BhX3BvZF9idWlsZGVyX29i amVjdCAoCi0rICBwYXJhbXNbMF0gPSBzcGFfcG9kX2J1aWxkZXJfYWRkX29iamVjdCAoCi0gICAg ICZwb2RfYnVpbGRlciwKLS0gICAgcGlwZXdpcmVfdHlwZS0+cGFyYW0uaWRFbnVtRm9ybWF0LCBw aXBld2lyZV90eXBlLT5zcGFfZm9ybWF0LAotLSAgICAiSSIsIHNwYV90eXBlLT5tZWRpYV90eXBl LnZpZGVvLAotLSAgICAiSSIsIHNwYV90eXBlLT5tZWRpYV9zdWJ0eXBlLnJhdywKLS0gICAgIjoi LCBzcGFfdHlwZS0+Zm9ybWF0X3ZpZGVvLmZvcm1hdCwgIkkiLCBzcGFfdHlwZS0+dmlkZW9fZm9y bWF0LkJHUngsCi0tICAgICI6Iiwgc3BhX3R5cGUtPmZvcm1hdF92aWRlby5zaXplLCAiUiIsICZT UEFfUkVDVEFOR0xFIChwcml2LT5zdHJlYW1fd2lkdGgsCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcml2LT5zdHJlYW1faGVpZ2h0 KSwKLS0gICAgIjoiLCBzcGFfdHlwZS0+Zm9ybWF0X3ZpZGVvLmZyYW1lcmF0ZSwgIkYiLCAmU1BB X0ZSQUNUSU9OICgwLCAxKSwKLS0gICAgIjoiLCBzcGFfdHlwZS0+Zm9ybWF0X3ZpZGVvLm1heF9m cmFtZXJhdGUsICJGcnUiLCAmbWF4X2ZyYW1lcmF0ZSwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX1JBTkdFICgmbWluX2ZyYW1lcmF0 ZSwKLSsgICAgU1BBX1RZUEVfT0JKRUNUX0Zvcm1hdCwgU1BBX1BBUkFNX0VudW1Gb3JtYXQsCi0r ICAgIFNQQV9GT1JNQVRfbWVkaWFUeXBlLCBTUEFfUE9EX0lkIChTUEFfTUVESUFfVFlQRV92aWRl byksCi0rICAgIFNQQV9GT1JNQVRfbWVkaWFTdWJ0eXBlLCBTUEFfUE9EX0lkIChTUEFfTUVESUFf U1VCVFlQRV9yYXcpLAotKyAgICBTUEFfRk9STUFUX1ZJREVPX2Zvcm1hdCwgU1BBX1BPRF9JZCAo U1BBX1ZJREVPX0ZPUk1BVF9CR1J4KSwKLSsgICAgU1BBX0ZPUk1BVF9WSURFT19zaXplLCBTUEFf UE9EX1JlY3RhbmdsZSAoJlNQQV9SRUNUQU5HTEUgKHByaXYtPnN0cmVhbV93aWR0aCwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHByaXYtPnN0cmVhbV9oZWlnaHQpKSwKLSsgICAgU1BBX0ZPUk1BVF9WSURFT19mcmFtZXJhdGUs IFNQQV9QT0RfRnJhY3Rpb24gKCZTUEFfRlJBQ1RJT04gKDAsIDEpKSwKLSsgICAgU1BBX0ZPUk1B VF9WSURFT19tYXhGcmFtZXJhdGUsIFNQQV9QT0RfQ0hPSUNFX1JBTkdFX0ZyYWN0aW9uICgmbWF4 X2ZyYW1lcmF0ZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAmbWluX2ZyYW1lcmF0ZSwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWF4X2Zy YW1lcmF0ZSkpOwotCi0gICBwd19zdHJlYW1fYWRkX2xpc3RlbmVyIChwaXBld2lyZV9zdHJlYW0s Ci1AQCAtNzAyLDcgKzY4NCw3IEBAIGNyZWF0ZV9waXBld2lyZV9zdHJlYW0gKE1ldGFTY3JlZW5D YXN0U3RyZWFtU3JjICAqc3JjLAotCi0gICByZXN1bHQgPSBwd19zdHJlYW1fY29ubmVjdCAocGlw ZXdpcmVfc3RyZWFtLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBXX0RJUkVDVElP Tl9PVVRQVVQsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBTUEFfSURfSU5WQUxJRCwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoUFdfU1RSRUFNX0ZMQUdfRFJJVkVSIHwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUFdfU1RSRUFNX0ZMQUdfTUFQX0JVRkZFUlMpLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHBhcmFtcywgR19OX0VMRU1FTlRTIChwYXJhbXMpKTsKLUBAIC03 MTcsNDAgKzY5OSwxOCBAQCBjcmVhdGVfcGlwZXdpcmVfc3RyZWFtIChNZXRhU2NyZWVuQ2FzdFN0 cmVhbVNyYyAgKnNyYywKLSB9Ci0KLSBzdGF0aWMgdm9pZAotLW9uX3N0YXRlX2NoYW5nZWQgKHZv aWQgICAgICAgICAgICAgICAgICpkYXRhLAotLSAgICAgICAgICAgICAgICAgIGVudW0gcHdfcmVt b3RlX3N0YXRlICBvbGQsCi0tICAgICAgICAgICAgICAgICAgZW51bSBwd19yZW1vdGVfc3RhdGUg IHN0YXRlLAotLSAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgICAgICAgICAgICplcnJvcl9t ZXNzYWdlKQotK29uX2NvcmVfZXJyb3IgKHZvaWQgICAgICAgKmRhdGEsCi0rICAgICAgICAgICAg ICAgdWludDMyX3QgICAgaWQsCi0rCSAgICAgICBpbnQgICAgICAgICBzZXEsCi0rCSAgICAgICBp bnQgICAgICAgICByZXMsCi0rCSAgICAgICBjb25zdCBjaGFyICptZXNzYWdlKQotIHsKLSAgIE1l dGFTY3JlZW5DYXN0U3RyZWFtU3JjICpzcmMgPSBkYXRhOwotLSAgTWV0YVNjcmVlbkNhc3RTdHJl YW1TcmNQcml2YXRlICpwcml2ID0KLS0gICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2dl dF9pbnN0YW5jZV9wcml2YXRlIChzcmMpOwotLSAgc3RydWN0IHB3X3N0cmVhbSAqcGlwZXdpcmVf c3RyZWFtOwotLSAgR0Vycm9yICplcnJvciA9IE5VTEw7Ci0KLS0gIHN3aXRjaCAoc3RhdGUpCi0t ICAgIHsKLS0gICAgY2FzZSBQV19SRU1PVEVfU1RBVEVfRVJST1I6Ci0tICAgICAgZ193YXJuaW5n ICgicGlwZXdpcmUgcmVtb3RlIGVycm9yOiAlc1xuIiwgZXJyb3JfbWVzc2FnZSk7Ci0tICAgICAg bWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX25vdGlmeV9jbG9zZWQgKHNyYyk7Ci0tICAgICAg YnJlYWs7Ci0tICAgIGNhc2UgUFdfUkVNT1RFX1NUQVRFX0NPTk5FQ1RFRDoKLS0gICAgICBwaXBl d2lyZV9zdHJlYW0gPSBjcmVhdGVfcGlwZXdpcmVfc3RyZWFtIChzcmMsICZlcnJvcik7Ci0tICAg ICAgaWYgKCFwaXBld2lyZV9zdHJlYW0pCi0tICAgICAgICB7Ci0tICAgICAgICAgIGdfd2Fybmlu ZyAoIkNvdWxkIG5vdCBjcmVhdGUgcGlwZXdpcmUgc3RyZWFtOiAlcyIsIGVycm9yLT5tZXNzYWdl KTsKLS0gICAgICAgICAgZ19lcnJvcl9mcmVlIChlcnJvcik7Ci0tICAgICAgICAgIG1ldGFfc2Ny ZWVuX2Nhc3Rfc3RyZWFtX3NyY19ub3RpZnlfY2xvc2VkIChzcmMpOwotLSAgICAgICAgfQotLSAg ICAgIGVsc2UKLS0gICAgICAgIHsKLS0gICAgICAgICAgcHJpdi0+cGlwZXdpcmVfc3RyZWFtID0g cGlwZXdpcmVfc3RyZWFtOwotLSAgICAgICAgfQotLSAgICAgIGJyZWFrOwotLSAgICBjYXNlIFBX X1JFTU9URV9TVEFURV9VTkNPTk5FQ1RFRDoKLS0gICAgY2FzZSBQV19SRU1PVEVfU1RBVEVfQ09O TkVDVElORzoKLS0gICAgICBicmVhazsKLS0gICAgfQotKyAgZ193YXJuaW5nICgicGlwZXdpcmUg cmVtb3RlIGVycm9yOiBpZDoldSAlcyIsIGlkLCBtZXNzYWdlKTsKLSsKLSsgIGlmIChpZCA9PSBQ V19JRF9DT1JFICYmIHJlcyA9PSAtRVBJUEUpCi0rICAgIG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFt X3NyY19ub3RpZnlfY2xvc2VkIChzcmMpOwotIH0KLQotIHN0YXRpYyBnYm9vbGVhbgotQEAgLTc5 MywxNyArNzUzLDYgQEAgc3RhdGljIEdTb3VyY2VGdW5jcyBwaXBld2lyZV9zb3VyY2VfZnVuY3Mg PQotICAgcGlwZXdpcmVfbG9vcF9zb3VyY2VfZmluYWxpemUKLSB9OwotCi0tc3RhdGljIHZvaWQK LS1pbml0X3NwYV90eXBlIChNZXRhU3BhVHlwZSAgICAgICAgICp0eXBlLAotLSAgICAgICAgICAg ICAgIHN0cnVjdCBzcGFfdHlwZV9tYXAgKm1hcCkKLS17Ci0tICBzcGFfdHlwZV9tZWRpYV90eXBl X21hcCAobWFwLCAmdHlwZS0+bWVkaWFfdHlwZSk7Ci0tICBzcGFfdHlwZV9tZWRpYV9zdWJ0eXBl X21hcCAobWFwLCAmdHlwZS0+bWVkaWFfc3VidHlwZSk7Ci0tICBzcGFfdHlwZV9mb3JtYXRfdmlk ZW9fbWFwIChtYXAsICZ0eXBlLT5mb3JtYXRfdmlkZW8pOwotLSAgc3BhX3R5cGVfdmlkZW9fZm9y bWF0X21hcCAobWFwLCAmdHlwZS0+dmlkZW9fZm9ybWF0KTsKLS0gIHR5cGUtPm1ldGFfY3Vyc29y ID0gc3BhX3R5cGVfbWFwX2dldF9pZChtYXAsIFNQQV9UWVBFX01FVEFfX0N1cnNvcik7Ci0tfQot LQotIHN0YXRpYyBNZXRhUGlwZVdpcmVTb3VyY2UgKgotIGNyZWF0ZV9waXBld2lyZV9zb3VyY2Ug KHZvaWQpCi0gewotQEAgLTgyOSw5ICs3NzgsOSBAQCBjcmVhdGVfcGlwZXdpcmVfc291cmNlICh2 b2lkKQotICAgcmV0dXJuIHBpcGV3aXJlX3NvdXJjZTsKLSB9Ci0KLS1zdGF0aWMgY29uc3Qgc3Ry dWN0IHB3X3JlbW90ZV9ldmVudHMgcmVtb3RlX2V2ZW50cyA9IHsKLS0gIFBXX1ZFUlNJT05fUkVN T1RFX0VWRU5UUywKLS0gIC5zdGF0ZV9jaGFuZ2VkID0gb25fc3RhdGVfY2hhbmdlZCwKLStzdGF0 aWMgY29uc3Qgc3RydWN0IHB3X2NvcmVfZXZlbnRzIGNvcmVfZXZlbnRzID0gewotKyAgUFdfVkVS U0lPTl9DT1JFX0VWRU5UUywKLSsgIC5lcnJvciA9IG9uX2NvcmVfZXJyb3IsCi0gfTsKLQotIHN0 YXRpYyBnYm9vbGVhbgotQEAgLTg1MSwzNyArODAwLDMxIEBAIG1ldGFfc2NyZWVuX2Nhc3Rfc3Ry ZWFtX3NyY19pbml0YWJsZV9pbml0IChHSW5pdGFibGUgICAgICppbml0YWJsZSwKLSAgICAgICBy ZXR1cm4gRkFMU0U7Ci0gICAgIH0KLQotLSAgcHJpdi0+cGlwZXdpcmVfY29yZSA9IHB3X2NvcmVf bmV3IChwcml2LT5waXBld2lyZV9zb3VyY2UtPnBpcGV3aXJlX2xvb3AsCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwotLSAgaWYgKCFwcml2LT5waXBld2lyZV9j b3JlKQotKyAgcHJpdi0+cGlwZXdpcmVfY29udGV4dCA9IHB3X2NvbnRleHRfbmV3IChwcml2LT5w aXBld2lyZV9zb3VyY2UtPnBpcGV3aXJlX2xvb3AsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE5VTEwsIDApOwotKyAgaWYgKCFwcml2LT5waXBld2lyZV9jb250 ZXh0KQotICAgICB7Ci0gICAgICAgZ19zZXRfZXJyb3IgKGVycm9yLCBHX0lPX0VSUk9SLCBHX0lP X0VSUk9SX0ZBSUxFRCwKLS0gICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBjcmVhdGUgcGlw ZXdpcmUgY29yZSIpOwotKyAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIGNyZWF0ZSBwaXBl d2lyZSBjb250ZXh0Iik7Ci0gICAgICAgcmV0dXJuIEZBTFNFOwotICAgICB9Ci0KLS0gIHByaXYt PnBpcGV3aXJlX3JlbW90ZSA9IHB3X3JlbW90ZV9uZXcgKHByaXYtPnBpcGV3aXJlX2NvcmUsIE5V TEwsIDApOwotLSAgaWYgKCFwcml2LT5waXBld2lyZV9yZW1vdGUpCi0rICBwcml2LT5waXBld2ly ZV9jb3JlID0gcHdfY29udGV4dF9jb25uZWN0IChwcml2LT5waXBld2lyZV9jb250ZXh0LCBOVUxM LCAwKTsKLSsgIGlmICghcHJpdi0+cGlwZXdpcmVfY29yZSkKLSAgICAgewotICAgICAgIGdfc2V0 X2Vycm9yIChlcnJvciwgR19JT19FUlJPUiwgR19JT19FUlJPUl9GQUlMRUQsCi0tICAgICAgICAg ICAgICAgICAgICJDb3VsZG4ndCBjcmVhdCBwaXBld2lyZSByZW1vdGUiKTsKLSsgICAgICAgICAg ICAgICAgICAgIkNvdWxkbid0IGNvbm5lY3QgcGlwZXdpcmUgY29udGV4dCIpOwotICAgICAgIHJl dHVybiBGQUxTRTsKLSAgICAgfQotCi0tICBwd19yZW1vdGVfYWRkX2xpc3RlbmVyIChwcml2LT5w aXBld2lyZV9yZW1vdGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAmcHJpdi0+cGlwZXdp cmVfcmVtb3RlX2xpc3RlbmVyLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgJnJlbW90ZV9l dmVudHMsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICBzcmMpOwotKyAgcHdfY29yZV9hZGRf bGlzdGVuZXIgKHByaXYtPnBpcGV3aXJlX2NvcmUsCi0rICAgICAgICAgICAgICAgICAgICAgICAg JnByaXYtPnBpcGV3aXJlX2NvcmVfbGlzdGVuZXIsCi0rICAgICAgICAgICAgICAgICAgICAgICAg JmNvcmVfZXZlbnRzLAotKyAgICAgICAgICAgICAgICAgICAgICAgIHNyYyk7Ci0KLS0gIHByaXYt PnBpcGV3aXJlX3R5cGUgPSBwd19jb3JlX2dldF90eXBlIChwcml2LT5waXBld2lyZV9jb3JlKTsK LS0gIGluaXRfc3BhX3R5cGUgKCZwcml2LT5zcGFfdHlwZSwgcHJpdi0+cGlwZXdpcmVfdHlwZS0+ bWFwKTsKLS0KLS0gIGlmIChwd19yZW1vdGVfY29ubmVjdCAocHJpdi0+cGlwZXdpcmVfcmVtb3Rl KSAhPSAwKQotLSAgICB7Ci0tICAgICAgZ19zZXRfZXJyb3IgKGVycm9yLCBHX0lPX0VSUk9SLCBH X0lPX0VSUk9SX0ZBSUxFRCwKLS0gICAgICAgICAgICAgICAgICAgIkNvdWxkbid0IGNvbm5lY3Qg cGlwZXdpcmUgcmVtb3RlIik7Ci0tICAgICAgcmV0dXJuIEZBTFNFOwotLSAgICB9Ci0rICBwcml2 LT5waXBld2lyZV9zdHJlYW0gPSBjcmVhdGVfcGlwZXdpcmVfc3RyZWFtIChzcmMsIGVycm9yKTsK LSsgIGlmICghcHJpdi0+cGlwZXdpcmVfc3RyZWFtKQotKyAgICByZXR1cm4gRkFMU0U7Ci0KLSAg IHJldHVybiBUUlVFOwotIH0KLUBAIC05MTIsOCArODU1LDggQEAgbWV0YV9zY3JlZW5fY2FzdF9z dHJlYW1fc3JjX2ZpbmFsaXplIChHT2JqZWN0ICpvYmplY3QpCi0gICAgIG1ldGFfc2NyZWVuX2Nh c3Rfc3RyZWFtX3NyY19kaXNhYmxlIChzcmMpOwotCi0gICBnX2NsZWFyX3BvaW50ZXIgKCZwcml2 LT5waXBld2lyZV9zdHJlYW0sIHB3X3N0cmVhbV9kZXN0cm95KTsKLS0gIGdfY2xlYXJfcG9pbnRl ciAoJnByaXYtPnBpcGV3aXJlX3JlbW90ZSwgcHdfcmVtb3RlX2Rlc3Ryb3kpOwotLSAgZ19jbGVh cl9wb2ludGVyICgmcHJpdi0+cGlwZXdpcmVfY29yZSwgcHdfY29yZV9kZXN0cm95KTsKLSsgIGdf Y2xlYXJfcG9pbnRlciAoJnByaXYtPnBpcGV3aXJlX2NvcmUsIHB3X2NvcmVfZGlzY29ubmVjdCk7 Ci0rICBnX2NsZWFyX3BvaW50ZXIgKCZwcml2LT5waXBld2lyZV9jb250ZXh0LCBwd19jb250ZXh0 X2Rlc3Ryb3kpOwotICAgZ19zb3VyY2VfZGVzdHJveSAoJnByaXYtPnBpcGV3aXJlX3NvdXJjZS0+ YmFzZSk7Ci0KLSAgIEdfT0JKRUNUX0NMQVNTIChtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNf cGFyZW50X2NsYXNzKS0+ZmluYWxpemUgKG9iamVjdCk7CmRpZmYgLS1naXQgYS9zcmNwa2dzL211 dHRlci90ZW1wbGF0ZSBiL3NyY3BrZ3MvbXV0dGVyL3RlbXBsYXRlCmluZGV4IDgwNmEzYmVmOWYw Li40NzkyODQwMzRlYSAxMDA2NDQKLS0tIGEvc3JjcGtncy9tdXR0ZXIvdGVtcGxhdGUKKysrIGIv c3JjcGtncy9tdXR0ZXIvdGVtcGxhdGUKQEAgLTEsMzQgKzEsNDAgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ211dHRlcicKIHBrZ25hbWU9bXV0dGVyCi12ZXJzaW9uPTMuMzQuMQotcmV2aXNpb249 MwordmVyc2lvbj0zLjM4LjAKK3JldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRf c3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSItRGVnbF9kZXZpY2U9dHJ1ZSAtRHVkZXY9dHJ1 ZSAtRG5hdGl2ZV9iYWNrZW5kPXRydWUKLSAtRHByb2ZpbGVyPWZhbHNlIC1EaW50cm9zcGVjdGlv bj10cnVlIC1EeHdheWxhbmRfcGF0aD0vdXNyL2Jpbi9Yd2F5bGFuZCIKKyAtRHByb2ZpbGVyPWZh bHNlIC1EaW50cm9zcGVjdGlvbj10cnVlIC1EeHdheWxhbmRfcGF0aD0vdXNyL2Jpbi9Yd2F5bGFu ZAorIC1EeHdheWxhbmRfaW5pdGZkPWRpc2FibGVkIgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0 IGdsaWItZGV2ZWwgcGtnLWNvbmZpZyB6ZW5pdHkgd2F5bGFuZC1kZXZlbCB4b3JnLXNlcnZlciIK LW1ha2VkZXBlbmRzPSJlbG9naW5kLWRldmVsIGdsaWItZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZl bCBqc29uLWdsaWItZGV2ZWwKLSBsaWJnbGliLWRldmVsIGxpYlNNLWRldmVsIGxpYlh0c3QtZGV2 ZWwgbGliY2FuYmVycmEtZGV2ZWwgbGliaW5wdXQtZGV2ZWwKLSBNZXNhTGliLWRldmVsIHBpcGV3 aXJlLWRldmVsIHN0YXJ0dXAtbm90aWZpY2F0aW9uLWRldmVsIHdheWxhbmQtcHJvdG9jb2xzCi0g Z25vbWUtc2V0dGluZ3MtZGFlbW9uLWRldmVsIgotZGVwZW5kcz0iZGVza3RvcC1maWxlLXV0aWxz IHplbml0eSIKK21ha2VkZXBlbmRzPSJlbG9naW5kLWRldmVsIGdsaWItZGV2ZWwgZ25vbWUtZGVz a3RvcC1kZXZlbCBncmFwaGVuZS1kZXZlbAorIGpzb24tZ2xpYi1kZXZlbCBsaWJnbGliLWRldmVs IGxpYlNNLWRldmVsIGxpYlh0c3QtZGV2ZWwgbGliY2FuYmVycmEtZGV2ZWwKKyBsaWJpbnB1dC1k ZXZlbCBNZXNhTGliLWRldmVsIHBpcGV3aXJlLWRldmVsIHN0YXJ0dXAtbm90aWZpY2F0aW9uLWRl dmVsCisgd2F5bGFuZC1wcm90b2NvbHMgZ25vbWUtc2V0dGluZ3MtZGFlbW9uLWRldmVsIgorZGVw ZW5kcz0iZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcyBkZXNrdG9wLWZpbGUtdXRpbHMgemVuaXR5 Igogc2hvcnRfZGVzYz0iTGlnaHR3ZWlnaHQgR1RLKzMgd2luZG93IG1hbmFnZXIiCiBtYWludGFp bmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIu MC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL011 dHRlci8iCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9 LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1iYTE4MjZjZjg4YmRiODFl NjM5NDNjYWMwMTRhOGU4YmNmMzVlYzE3OGM1MzI2NDQwMWY5YzcyZmRlYWI3NThlCi1zaGxpYl9w cm92aWRlcz0ibGlibXV0dGVyLWNsdXR0ZXItNS5zbyBsaWJtdXR0ZXItY29nbC01LnNvCi0gbGli bXV0dGVyLWNvZ2wtcGFuZ28tNS5zbyBsaWJtdXR0ZXItY29nbC1wYXRoLTUuc28iCitjaGVja3N1 bT0wNThlZDEzZDEwMjA4NWQzZTliNmZhNTU2NGM2NjA1MGE0NzhjMzY0YTBjYzU1YmM4NDRmZWEz ZGRjZDkwZWFiCitzaGxpYl9wcm92aWRlcz0ibGlibXV0dGVyLWNsdXR0ZXItNy5zbyBsaWJtdXR0 ZXItY29nbC03LnNvCisgbGlibXV0dGVyLWNvZ2wtcGFuZ28tNy5zbyBsaWJtdXR0ZXItY29nbC1w YXRoLTcuc28iCisKKyMgbmVlZHMgWAorZG9fY2hlY2soKSB7CisJOgorfQogCiBtdXR0ZXItZGV2 ZWxfcGFja2FnZSgpIHsKLQlkZXBlbmRzPSJnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzIGd0aysz LWRldmVsIGNsdXR0ZXItZGV2ZWwgbGliWDExLWRldmVsCi0JIGxpYlh0c3QtZGV2ZWwgbXV0dGVy LSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJZGVwZW5kcz0iZ3RrKzMtZGV2ZWwgZ3JhcGhlbmUt ZGV2ZWwgY2x1dHRlci1kZXZlbAorCSBsaWJYMTEtZGV2ZWwgbGliWHRzdC1kZXZlbCBtdXR0ZXIt JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKIAlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmls ZXMiCiAJcGtnX2luc3RhbGwoKSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRlCiAJCXZtb3ZlIHVzci9s aWIvcGtnY29uZmlnCi0JCXZtb3ZlICJ1c3IvbGliL211dHRlci01LyouZ2lyIgorCQl2bW92ZSAi dXNyL2xpYi9tdXR0ZXItNy8qLmdpciIKIAkJdm1vdmUgInVzci9saWIvKi5zbyIKIAl9CiB9CgpG cm9tIGRiMGE0OGE4ZmQ5OWRjZmFjYTE3ODVmNzI0N2Q2ZDc2Yzk1NmFjMmUgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpE YXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNDAv MTAyXSBjaGVlc2U6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9jaGVlc2UvdGVtcGxh dGUgfCAxNCArKysrKy0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwg OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2NoZWVzZS90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvY2hlZXNlL3RlbXBsYXRlCmluZGV4IDdhNTZiYTAzOWZiLi5mYWEzMjllZTBlNCAxMDA2 NDQKLS0tIGEvc3JjcGtncy9jaGVlc2UvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jaGVlc2UvdGVt cGxhdGUKQEAgLTEsMTEgKzEsMTAgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2NoZWVzZScKIHBr Z25hbWU9Y2hlZXNlCi12ZXJzaW9uPTMuMzQuMAordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEK IGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKLWNvbmZpZ3VyZV9hcmdzPSIt RGd0a19kb2M9JCh2b3B0X2lmIGd0a19kb2MgJ3RydWUnICdmYWxzZScpCi0gLURtYW49JCh2b3B0 X2lmIGd0a19kb2MgJ3RydWUnICdmYWxzZScpIgorY29uZmlndXJlX2FyZ3M9IiQodm9wdF9ib29s IGd0a19kb2MgZ3RrX2RvYykgJCh2b3B0X2Jvb2wgZ3RrX2RvYyBtYW4pIgogaG9zdG1ha2VkZXBl bmRzPSJnZXR0ZXh0IGdkay1waXhidWYgZ2xpYi1kZXZlbCBpdHN0b29sIHBrZy1jb25maWcgdmFs YSBsaWJyc3ZnCiAgJCh2b3B0X2lmIGd0a19kb2MgJ2d0ay1kb2MnKSAkKHZvcHRfaWYgZ2lyICdn b2JqZWN0LWludHJvc3BlY3Rpb24nKSIKIG1ha2VkZXBlbmRzPSJjbHV0dGVyLWdzdDMtZGV2ZWwg Y2x1dHRlci1ndGstZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbApAQCAtMTcsNyArMTYsNyBAQCBt YWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0i R1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMv Q2hlZXNlIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4q fS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZDE4NjU2MDBhYzg4MDEy ZTEzNmIxZWMzZGI3MmE0NjM0ZjU3YmMyMDM1ODk1Mjc3YmU3OTJiYjA3ODYyN2U3MworY2hlY2tz dW09ODhkMjczMmI0MjFiOTAzMTEwYTI2MjhkYjI1YzBkNjFlMjE5YzQyYmRmYjU5NzExNTEwMzNm YmE5NWE4ZDE2ZgogCiBidWlsZF9vcHRpb25zPSJnaXIgZ3RrX2RvYyIKIGJ1aWxkX29wdGlvbnNf ZGVmYXVsdD0iZ2lyIgpAQCAtMzcsMTEgKzM2LDggQEAgbGliY2hlZXNlX3BhY2thZ2UoKSB7CiB9 CiAKIGNoZWVzZS1kZXZlbF9wYWNrYWdlKCkgewotCWRlcGVuZHM9ImdzdC1wbHVnaW5zLWJhZDEt ZGV2ZWwKLQkJIGNsdXR0ZXItZ3N0My1kZXZlbAotCQkgY2x1dHRlci1ndGstZGV2ZWwKLQkJIGxp YmNhbmJlcnJhLWRldmVsCi0JCSBsaWJjaGVlc2U+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJ ZGVwZW5kcz0iZ3N0LXBsdWdpbnMtYmFkMS1kZXZlbCBjbHV0dGVyLWdzdDMtZGV2ZWwgY2x1dHRl ci1ndGstZGV2ZWwKKwkgbGliY2FuYmVycmEtZGV2ZWwgbGliY2hlZXNlPj0ke3ZlcnNpb259XyR7 cmV2aXNpb259IgogCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKIAlwa2dfaW5z dGFsbCgpIHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUKCkZyb20gMDdmMmJlOGQ2NDRhYmY0Zjc1NWMz NzI5ZjkxZTBhOGYwZWM3YzQ2YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVs IEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6 NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA0MS8xMDJdIGV2b2x1dGlvbi1kYXRhLXNlcnZl cjogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAyICstCiBzcmNwa2dzL2V2b2x1dGlvbi1kYXRhLXNlcnZlci90ZW1wbGF0ZSB8 IDI1ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTYgaW5zZXJ0 aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2Nv bW1vbi9zaGxpYnMKaW5kZXggZjJhNmU5OTU3ZTQuLjQxYzZlYjgwMjE0IDEwMDY0NAotLS0gYS9j b21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTYyNiw3ICs2MjYsNyBAQCBsaWJp Y2Fsc3NfY3h4LnNvLjMgbGliaWNhbC0zLjAuNF8xCiBsaWJpY2FsdmNhbC5zby4zIGxpYmljYWwt My4wLjRfMQogbGliaWNhbC1nbGliLnNvLjMgbGliaWNhbC0zLjAuNF8xCiBsaWJjYW1lbC0xLjIu c28uNjIgZXZvbHV0aW9uLWRhdGEtc2VydmVyLTMuMzAuMF8xCi1saWJlZGF0YXNlcnZlci0xLjIu c28uMjQgZXZvbHV0aW9uLWRhdGEtc2VydmVyLTMuMzIuMF8xCitsaWJlZGF0YXNlcnZlci0xLjIu c28uMjUgZXZvbHV0aW9uLWRhdGEtc2VydmVyLTMuMzcuOTBfMQogbGliZWJhY2tlbmQtMS4yLnNv LjEwIGV2b2x1dGlvbi1kYXRhLXNlcnZlci0zLjE3LjkwXzEKIGxpYmVkYXRhc2VydmVydWktMS4y LnNvLjIgZXZvbHV0aW9uLWRhdGEtc2VydmVyLTMuMjguMF8xCiBsaWJlYm9vay1jb250YWN0cy0x LjIuc28uMyBldm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4zNC4wXzEKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvZXZvbHV0aW9uLWRhdGEtc2VydmVyL3RlbXBsYXRlIGIvc3JjcGtncy9ldm9sdXRpb24tZGF0 YS1zZXJ2ZXIvdGVtcGxhdGUKaW5kZXggZTUwMjkyYTQzZWEuLjhjY2Y5Y2I2ZWIwIDEwMDY0NAot LS0gYS9zcmNwa2dzL2V2b2x1dGlvbi1kYXRhLXNlcnZlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dz L2V2b2x1dGlvbi1kYXRhLXNlcnZlci90ZW1wbGF0ZQpAQCAtMSwyOSArMSwzNCBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAnZXZvbHV0aW9uLWRhdGEtc2VydmVyJwogcGtnbmFtZT1ldm9sdXRpb24t ZGF0YS1zZXJ2ZXIKLXZlcnNpb249My4zNi4xCi1yZXZpc2lvbj0zCit2ZXJzaW9uPTMuMzguMAor cmV2aXNpb249MQogYnVpbGRfc3R5bGU9Y21ha2UKLWJ1aWxkX2hlbHBlcj1naXIKK2J1aWxkX2hl bHBlcj0iZ2lyIHFlbXUiCiBjb25maWd1cmVfYXJncz0iLURFTkFCTEVfVU9BPU9GRgotICQodm9w dF9pZiBnaXIgJy1ERU5BQkxFX0lOVFJPU1BFQ1RJT049T04gLURFTkFCTEVfVkFMQV9CSU5ESU5H Uz1PTicgJy1ERU5BQkxFX1dFQVRIRVI9T0ZGJykiCi1ob3N0bWFrZWRlcGVuZHM9ImZsZXggZ2xp Yi1kZXZlbCBncGVyZiBpbnRsdG9vbCBwa2ctY29uZmlnIGxpYmdsaWItZGV2ZWwKLSAkKHZvcHRf aWYgZ2lyICdnb2JqZWN0LWludHJvc3BlY3Rpb24nKSIKLW1ha2VkZXBlbmRzPSJib29zdC1kZXZl bCBsaWJjYW5iZXJyYS1kZXZlbCBsaWJnZGF0YS1kZXZlbCAkKHZvcHRfaWYgZ2lyIGxpYmd3ZWF0 aGVyLWRldmVsKQotIGxpYmljYWwtZGV2ZWwgbGlic2VjcmV0LWRldmVsIG1pdC1rcmI1LWRldmVs ICQodm9wdF9pZiBnaXIgJ3ZhbGEtZGV2ZWwnKSB3ZWJraXQyZ3RrLWRldmVsIgotZGVwZW5kcz0i JCh2b3B0X2lmIGdpciBsaWJnd2VhdGhlcikgbGlic291cC1nbm9tZSIKKyAkKHZvcHRfaWYgZ2ly ICctREVOQUJMRV9JTlRST1NQRUNUSU9OPU9OIC1ERU5BQkxFX1ZBTEFfQklORElOR1M9T04nKSIK K2hvc3RtYWtlZGVwZW5kcz0iZmxleCBnbGliLWRldmVsIGdwZXJmIGludGx0b29sIHBrZy1jb25m aWcgbGliZ2xpYi1kZXZlbCIKK21ha2VkZXBlbmRzPSJib29zdC1kZXZlbCBsaWJjYW5iZXJyYS1k ZXZlbCBsaWJnZGF0YS1kZXZlbCBsaWJpY2FsLWRldmVsCisgbGlic2VjcmV0LWRldmVsIG1pdC1r cmI1LWRldmVsIHdlYmtpdDJndGstZGV2ZWwgbGliZ3dlYXRoZXItZGV2ZWwKKyAkKHZvcHRfaWYg Z2lyIHZhbGEtZGV2ZWwpIgorZGVwZW5kcz0ibGliZ3dlYXRoZXIgbGlic291cC1nbm9tZSIKIHNo b3J0X2Rlc2M9IkNlbnRyYWxpemVkIGFjY2VzcyB0byBhcHBvaW50bWVudHMgYW5kIGNvbnRhY3Rz IgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vu c2U9IkxHUEwtMi4xLW9ubHkiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBz L0V2b2x1dGlvbiIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29t L0dOT01FL2V2b2x1dGlvbi1kYXRhLXNlcnZlci9nbm9tZS0zLTM2L05FV1MiCiBkaXN0ZmlsZXM9 IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJz aW9ufS50YXIueHoiCi1jaGVja3N1bT0xMzEyMmIyZWRkZGI5ODMwNjIwN2QyYTM1ZDVjY2FlMjVh OTA3MDI3NjljYTBhMGI1MTY1M2I1OTg0OTg2Nzk2CitjaGVja3N1bT0xMzY4OWE3YjU1NzY1ODA2 YzRkNWYzYjA1ZWY2YzI0YjBiZjk5NTdiOWVkOTI0MGMyZGQwOWEyY2RiMTNiMGFmCiAKIGJ1aWxk X29wdGlvbnM9ImdpciIKIGlmIFsgLXogIiRDUk9TU19CVUlMRCIgXTsgdGhlbgogCWJ1aWxkX29w dGlvbnNfZGVmYXVsdD0iZ2lyIgogZmkKIAorIyBwcm9ibGVtYXRpYworZG9fY2hlY2soKSB7CisJ OgorfQorCiAjIGNtYWtlIHBlcmZvbXJtcyAyIGNoZWNrcyB1c2luZyBiaW5hcnkgcnVudGltZSwg YWJvdXQgaWNvbnYgYW5kIHNmcnRpbWUuCiAjIG11c2wgKDEuMS4xNikgZG9lcyBub3Qgc3VwcG9y dCAiSVNPLTIwMjItSlAiIGVuY29kaW5nIChzZWUgaXRzIHJvYWRtYXApLAogIyBhbHRob3VnaCBl dm9sdXRpb24tZGF0YS1zZXJ2ZXIgaXMgZmluZSB3aXRoIG11c2wuCgpGcm9tIDkzZWJhYmFiNTJj MTYzZDUwMzlkZWM5NjM4YTU3NGZiMjQyMDc0MzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1 ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNDIvMTAyXSBmb2xrczogdXBk YXRlIHRvIDAuMTQuMAoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgIHwgIDcgKysrKy0tLQog c3JjcGtncy9mb2xrcy90ZW1wbGF0ZSB8IDI4ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0K IDIgZmlsZXMgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggNDFjNmViODAyMTQu LjMzZDJhMzVmYTA0IDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxp YnMKQEAgLTgzMSw5ICs4MzEsMTAgQEAgbGliZG1yLnNvLjAuMSBkZWVwaW4tbW92aWUtcmVib3Ju LTMuMi41XzEKIGxpYmdqcy5zby4wIGdqcy0xLjY1LjJfMQogbGlidGVsZXBhdGh5LWdsaWIuc28u MCB0ZWxlcGF0aHktZ2xpYi0wLjE1LjVfMQogbGliYWNjb3VudHNzZXJ2aWNlLnNvLjAgYWNjb3Vu dHNzZXJ2aWNlLTAuNi40XzEKLWxpYmZvbGtzLnNvLjI1IGZvbGtzLTAuOS41XzEKLWxpYmZvbGtz LXRlbGVwYXRoeS5zby4yNSBmb2xrcy0wLjkuNV8xCi1saWJmb2xrcy1lZHMuc28uMjUgZm9sa3Mt MC45LjVfMQorbGliZm9sa3Muc28uMjUgZm9sa3MtMC4xNC4wXzEKK2xpYmZvbGtzLWR1bW15LnNv LjI1IGZvbGtzLTAuMTQuMF8xCitsaWJmb2xrcy10ZWxlcGF0aHkuc28uMjUgZm9sa3MtMC4xNC4w XzEKK2xpYmZvbGtzLWVkcy5zby4yNSBmb2xrcy0wLjE0LjBfMQogbGlibmljZS5zby4xMCBsaWJu aWNlLTAuMS4wXzEKIGxpYmd1cG5wLWlnZC0xLjAuc28uNCBndXBucC1pZ2QtMC4yLjBfMQogbGli dGVsZXBhdGh5LWxvZ2dlci5zby4zIHRlbGVwYXRoeS1sb2dnZXItMC42LjBfMQpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9mb2xrcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZm9sa3MvdGVtcGxhdGUKaW5kZXgg MzMxMGM1NGZhZGQuLmIwNzZiOTRiZWEyIDEwMDY0NAotLS0gYS9zcmNwa2dzL2ZvbGtzL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvZm9sa3MvdGVtcGxhdGUKQEAgLTEsMjEgKzEsMjcgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ2ZvbGtzJwogcGtnbmFtZT1mb2xrcwotdmVyc2lvbj0wLjEzLjEKLXJl dmlzaW9uPTIKK3ZlcnNpb249MC4xNC4wCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgot YnVpbGRfaGVscGVyPWdpcgotY29uZmlndXJlX2FyZ3M9Ii1EYl9sdG89ZmFsc2UgLURsaWJzb2Np YWx3ZWItYmFja2VuZD1mYWxzZSIKLWhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBpbnRsdG9v bCBnbGliLWRldmVsIHZhbGEgcHl0aG9uIGdvYmplY3QtaW50cm9zcGVjdGlvbgotIGV2b2x1dGlv bi1kYXRhLXNlcnZlci1kZXZlbCIKK2J1aWxkX2hlbHBlcj0iZ2lyIHFlbXUiCitjb25maWd1cmVf YXJncz0iLURiX2x0bz1mYWxzZSIKK2hvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBpbnRsdG9v bCBnbGliLWRldmVsIHB5dGhvbjMgcHl0aG9uMy1kYnVzbW9jaworIGV2b2x1dGlvbi1kYXRhLXNl cnZlci1kZXZlbCAkKHZvcHRfaWYgZ2lyIHZhbGEpIgogbWFrZWRlcGVuZHM9InJlYWRsaW5lLWRl dmVsIHRlbGVwYXRoeS1nbGliLWRldmVsIHplaXRnZWlzdC1kZXZlbAotIGxpYmdlZTA4LWRldmVs IGV2b2x1dGlvbi1kYXRhLXNlcnZlci1kZXZlbCB0cmFja2VyLWRldmVsIgorIGxpYmdlZTA4LWRl dmVsIGV2b2x1dGlvbi1kYXRhLXNlcnZlci1kZXZlbCB0cmFja2VyLWRldmVsCisgJCh2b3B0X2lm IGdpciB2YWxhLWRldmVsKSIKIGRlcGVuZHM9InplaXRnZWlzdCIKIHNob3J0X2Rlc2M9IkdPYmpl Y3QgTGlicmFyeSB0byBhZ2dyZWdhdGUgcGVvcGxlIGludG8gbWV0YWNvbnRhY3RzIgogbWFpbnRh aW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwt Mi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMv Rm9sa3MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9 LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0zZGYxYzY2M2I4MmZlMjEx YWVhZDJiMzFjYWUxZmM0MWQxMjRlODU0MzYzNzU3NjJmNjc0NWM0NWJhNDZhYTVkCitjaGVja3N1 bT1kNmU3NzhkYTYzN2QzYjMzZmQ5YTZiNDUxMTVlODE1N2Q4ODY4MjExZGMwOGI5NDNkMTA3NWI1 ZWI3MjgyYmI5CisKK2J1aWxkX29wdGlvbnM9ImdpciIKK2lmIFsgLXogIiRDUk9TU19CVUlMRCIg XTsgdGhlbgorCWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgorZmkKIAogZm9sa3MtZGV2ZWxf cGFja2FnZSgpIHsKIAlkZXBlbmRzPSIke21ha2VkZXBlbmRzfSAke3NvdXJjZXBrZ30+PSR7dmVy c2lvbn1fJHtyZXZpc2lvbn0iCkBAIC0yNCw3ICszMCw5IEBAIGZvbGtzLWRldmVsX3BhY2thZ2Uo KSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRlCiAJCXZtb3ZlIHVzci9saWIvcGtnY29uZmlnCiAJCXZt b3ZlICJ1c3IvbGliLyouc28iCi0JCXZtb3ZlIHVzci9zaGFyZS92YWxhCi0JCXZtb3ZlIHVzci9z aGFyZS9naXItMS4wCisJCWlmIFsgIiRidWlsZF9vcHRpb25fZ2lyIiBdOyB0aGVuCisJCQl2bW92 ZSB1c3Ivc2hhcmUvZ2lyLTEuMAorCQkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKKwkJZmkKIAl9CiB9 CgpGcm9tIDAxODM5OGMwZWFlZWUzM2M2YzAzMjI3NjlkMjljMzE1Y2U2OTJiN2QgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3Jn PgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAw NDMvMTAyXSBnbm9tZS1vbmxpbmUtYWNjb3VudHM6IHVwZGF0ZSB0byAzLjM3LjkwCgotLS0KIHNy Y3BrZ3MvZ25vbWUtb25saW5lLWFjY291bnRzL3RlbXBsYXRlIHwgMTQgKysrKysrLS0tLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9nbm9tZS1vbmxpbmUtYWNjb3VudHMvdGVtcGxhdGUgYi9zcmNwa2dzL2du b21lLW9ubGluZS1hY2NvdW50cy90ZW1wbGF0ZQppbmRleCAxOTNhN2Y5YjQzZi4uMjk5ODBkNDM0 MjQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtb25saW5lLWFjY291bnRzL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvZ25vbWUtb25saW5lLWFjY291bnRzL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtb25saW5lLWFjY291bnRzJwogcGtnbmFtZT1n bm9tZS1vbmxpbmUtYWNjb3VudHMKLXZlcnNpb249My4zNi4wCi1yZXZpc2lvbj0yCit2ZXJzaW9u PTMuMzcuOTAKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGJ1aWxkX2hl bHBlcj0iZ2lyIgogY29uZmlndXJlX2FyZ3M9IiQodm9wdF9lbmFibGUgZ2lyIGludHJvc3BlY3Rp b24pCkBAIC0xMSw3ICsxMSw3IEBAIGNvbmZpZ3VyZV9hcmdzPSIkKHZvcHRfZW5hYmxlIGdpciBp bnRyb3NwZWN0aW9uKQogIC0tZW5hYmxlLW93bmNsb3VkIC0tZW5hYmxlLXdpbmRvd3MtbGl2ZSAt LWVuYWJsZS1wb2NrZXQKICAtLWVuYWJsZS1sYXN0Zm0gLS1lbmFibGUtbWVkaWEtc2VydmVyIgog aG9zdG1ha2VkZXBlbmRzPSJkb2Nib29rLXhzbCBnZXR0ZXh0LWRldmVsIGdsaWItZGV2ZWwgZ25v bWUtY29tbW9uCi0gbGlieHNsdCBwa2ctY29uZmlnICQodm9wdF9pZiB2YWxhIHZhbGEpIgorIGxp YnhzbHQgcGtnLWNvbmZpZyAkKHZvcHRfaWYgZ2lyIHZhbGEpIgogbWFrZWRlcGVuZHM9Imdjci1k ZXZlbCBndGsrMy1kZXZlbCBqc29uLWdsaWItZGV2ZWwgbGlibm90aWZ5LWRldmVsIGxpYnNlY3Jl dC1kZXZlbAogIGxpYnNvdXAtZGV2ZWwgbWl0LWtyYjUtZGV2ZWwgcmVzdC1kZXZlbCB0ZWxlcGF0 aHktZ2xpYi1kZXZlbCB3ZWJraXQyZ3RrLWRldmVsIgogZGVwZW5kcz0iaGljb2xvci1pY29uLXRo ZW1lIgpAQCAtMjAsMTAgKzIwLDEwIEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hA dm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJo dHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL0dub21lT25saW5lQWNjb3VudHMiCiBkaXN0 ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0t JHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0xYzhmNjI5OTA4MzNjYTQxMTg4ZGJiODBjNWU5 OWQ5OWI1N2E2MjYwOGNhNjc1YmJjZDM3YmMyMjQ0NzQyZjJlCitjaGVja3N1bT05ZjY5ODJjODk2 ZTYyMzVhMmU4NWI4YTQ5N2M3YmY2M2E0YTI4OGI1Njc4ZGI0MGRjMzczNTE1ZWZiZWRiMWJiCiAK LWJ1aWxkX29wdGlvbnM9ImdpciB2YWxhIgotYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIgdmFs YSIKK2J1aWxkX29wdGlvbnM9ImdpciIKK2J1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgogCiBn bm9tZS1vbmxpbmUtYWNjb3VudHMtZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSJndGsrMy1k ZXZlbCAke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCkBAIC0zNSw4ICszNSw2 IEBAIGdub21lLW9ubGluZS1hY2NvdW50cy1kZXZlbF9wYWNrYWdlKCkgewogCQl2bW92ZSB1c3Iv bGliL2dvYS0xLjAKIAkJaWYgWyAiJGJ1aWxkX29wdGlvbl9naXIiIF07IHRoZW4KIAkJCXZtb3Zl IHVzci9zaGFyZS9naXItMS4wCi0JCWZpCi0JCWlmIFsgIiRidWlsZF9vcHRpb25fdmFsYSIgXTsg dGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKIAkJZmkKIAl9CgpGcm9tIDdjZDk4MjcxM2U1 M2I3MDdiODZmMGY4MDgzZGVhN2QxOWYwYzIxYjYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1 ZyAyMDIwIDIxOjEwOjQ0ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNDQvMTAyXSBndmZzOiB1cGRh dGUgdG8gMS40Ni4wCgotLS0KIHNyY3BrZ3MvZ3Zmcy90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxl IGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmNwa2dzL2d2ZnMvdGVtcGxhdGUgYi9zcmNwa2dzL2d2ZnMvdGVtcGxhdGUKaW5kZXggMTI3YTA1 Nzc5MDEuLjYxMDcwMjNjMjFlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2d2ZnMvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9ndmZzL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAnZ3ZmcycKIHBrZ25hbWU9Z3ZmcwotdmVyc2lvbj0xLjQ0LjEKK3ZlcnNpb249MS40Ni4w CiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1Ec3lzdGVt ZHVzZXJ1bml0ZGlyPW5vIC1EdG1wZmlsZXNkaXI9bm8gLURsb2dpbmQ9ZmFsc2UKQEAgLTIwLDcg KzIwLDcgQEAgbGljZW5zZT0iTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93 aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9ndmZzIgogY2hhbmdlbG9nPSJodHRwczovL2dpdGxhYi5n bm9tZS5vcmcvR05PTUUvZ3Zmcy9yYXcvZ25vbWUtMy0zNC9ORVdTIgogZGlzdGZpbGVzPSIke0dO T01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0u dGFyLnh6IgotY2hlY2tzdW09NTBlZjMyNDVkMWIwMzY2NmE0MDQ1NTEwOTE2OWEyYTFiZDUxNDE5 ZmQyZDUxZjlmYTZjZmQ0Zjg5ZjA0ZmI0NgorY2hlY2tzdW09NzhiYTczYTZkYTA5YTIxY2UzYWNj Nzc2YjQ2YzI2ZGQ1YmVhMjE2NDYzYTY1ZDY1YjQwNTJhNTdmNWQ5NzBlOQogCiAjIE1hbnVhbGx5 IGRlY2xhcmUgc2hsaWJzIHVzZWQgYnkgdGhlIHN1YnBrZ3MuCiBzaGxpYl9wcm92aWRlcz0ibGli Z3Zmc2NvbW1vbi5zbyBsaWJndmZzZGFlbW9uLnNvIgoKRnJvbSBiNTc5OTVkOWIwYTJiZDE3NTRl MzBkMzI0MjkzY2E5NmYwM2EwMGU0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5p ZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAx ODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDQ1LzEwMl0gZ25vbWUtY29udHJvbC1jZW50 ZXI6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9OZXR3b3JrTWFuYWdlci90ZW1wbGF0 ZSAgICAgICAgICAgICAgIHwgIDIgKwogLi4uL2dub21lLWNvbnRyb2wtY2VudGVyL3BhdGNoZXMv bm0xMjIucGF0Y2ggIHwgMzggKysrKysrKysrKysrKysrKysrKwogc3JjcGtncy9nbm9tZS1jb250 cm9sLWNlbnRlci90ZW1wbGF0ZSAgICAgICAgIHwgMjQgKysrKysrKy0tLS0tCiAzIGZpbGVzIGNo YW5nZWQsIDU0IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvZ25vbWUtY29udHJvbC1jZW50ZXIvcGF0Y2hlcy9ubTEyMi5wYXRjaAoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvTmV0d29ya01hbmFnZXIvdGVtcGxhdGUgYi9zcmNwa2dzL05ldHdv cmtNYW5hZ2VyL3RlbXBsYXRlCmluZGV4IGVkZWI4Mjc4NTc5Li5lNDgyYmJhOThkZSAxMDA2NDQK LS0tIGEvc3JjcGtncy9OZXR3b3JrTWFuYWdlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL05ldHdv cmtNYW5hZ2VyL3RlbXBsYXRlCkBAIC0xLDQgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn TmV0d29ya01hbmFnZXInCisjIHdoZW4gdXBkYXRpbmcgdG8gMS4yNCBvciBuZXdlciwgZHJvcCB0 aGUgY29tcGF0CisjIHBhdGNoIGluIGdub21lLWNvbnRyb2wtY2VudGVyIGFuZCByZWJ1aWxkIGl0 CiBwa2duYW1lPU5ldHdvcmtNYW5hZ2VyCiB2ZXJzaW9uPTEuMjIuMTAKIHJldmlzaW9uPTIKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtY29udHJvbC1jZW50ZXIvcGF0Y2hlcy9ubTEyMi5wYXRj aCBiL3NyY3BrZ3MvZ25vbWUtY29udHJvbC1jZW50ZXIvcGF0Y2hlcy9ubTEyMi5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uODMzZmVkMzk2OGUKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL2dub21lLWNvbnRyb2wtY2VudGVyL3BhdGNoZXMvbm0xMjIucGF0 Y2gKQEAgLTAsMCArMSwzOCBAQAorRnJvbSA0MTU5Zjk4NGJkMzUxY2FmNmYwZTFhZGJkOTBmZWVi ODVhYjI1MmY0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRGFuaWVsIEtvbGVzYSA8 ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CitEYXRlOiBXZWQsIDE2IFNlcCAyMDIwIDIyOjAyOjA0ICsw MjAwCitTdWJqZWN0OiBbUEFUQ0hdIHJlc3RvcmUgY29tcGF0aWJpbGl0eSB3aXRoIG5ldHdvcmtt YW5hZ2VyIDEuMjIKKworZHJvcCB0aGlzIHBhdGNoIGFuZCByZWJ1aWxkIGdub21lLWNvbnRyb2wt Y2VudGVyIHdoZW4gdXBkYXRpbmcgbm0KKy0tLQorIHBhbmVscy9uZXR3b3JrL25ldC1kZXZpY2Ut d2lmaS5jIHwgNyAtLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDcgZGVsZXRpb25zKC0pCisKK2Rp ZmYgLS1naXQgcGFuZWxzL25ldHdvcmsvbmV0LWRldmljZS13aWZpLmMgcGFuZWxzL25ldHdvcmsv bmV0LWRldmljZS13aWZpLmMKK2luZGV4IGNiODZlNWIuLmQ2M2M1N2MgMTAwNjQ0CistLS0gcGFu ZWxzL25ldHdvcmsvbmV0LWRldmljZS13aWZpLmMKKysrKyBwYW5lbHMvbmV0d29yay9uZXQtZGV2 aWNlLXdpZmkuYworQEAgLTExODAsMTEgKzExODAsNiBAQCBubV9jbGllbnRfb25fcGVybWlzc2lv bl9jaGFuZ2UgKE5ldERldmljZVdpZmkgKnNlbGYpIHsKKyAgICAgICAgIE5NQ2xpZW50UGVybWlz c2lvblJlc3VsdCBwZXJtOworICAgICAgICAgTk1EZXZpY2VXaWZpQ2FwYWJpbGl0aWVzIGNhcHM7 CisgCistICAgICAgICBpZiAobm1fY2xpZW50X2dldF9wZXJtaXNzaW9uc19zdGF0ZSAoc2VsZi0+ Y2xpZW50KSAhPSBOTV9URVJOQVJZX1RSVUUpIHsKKy0gICAgICAgICAgICAgICAgLyogcGVybWlz c2lvbnMgYXJlbid0IHJlYWR5IHlldCAqLworLSAgICAgICAgICAgICAgICByZXR1cm47CistICAg ICAgICB9CistCisgICAgICAgICAvKiBvbmx5IGVuYWJsZSB0aGUgYnV0dG9uIGlmIHRoZSB1c2Vy IGNhbiBjcmVhdGUgYSBob3RzcG90ICovCisgICAgICAgICBwZXJtID0gbm1fY2xpZW50X2dldF9w ZXJtaXNzaW9uX3Jlc3VsdCAoc2VsZi0+Y2xpZW50LCBOTV9DTElFTlRfUEVSTUlTU0lPTl9XSUZJ X1NIQVJFX09QRU4pOworICAgICAgICAgY2FwcyA9IG5tX2RldmljZV93aWZpX2dldF9jYXBhYmls aXRpZXMgKE5NX0RFVklDRV9XSUZJIChzZWxmLT5kZXZpY2UpKTsKK0BAIC0xMjI3LDggKzEyMjIs NiBAQCBuZXRfZGV2aWNlX3dpZmlfbmV3IChDY1BhbmVsICpwYW5lbCwgTk1DbGllbnQgKmNsaWVu dCwgTk1EZXZpY2UgKmRldmljZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH X0NBTExCQUNLIChhcF9hY3RpdmF0ZWQpLCBzZWxmLCBHX0NPTk5FQ1RfU1dBUFBFRCk7CisgICAg ICAgICBnX3NpZ25hbF9jb25uZWN0X29iamVjdCAobGlzdCwgImNvbmZpZ3VyZSIsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgR19DQUxMQkFDSyAoc2hvd19kZXRhaWxzX2Zvcl9y b3cpLCBzZWxmLCBHX0NPTk5FQ1RfU1dBUFBFRCk7CistICAgICAgICBnX3NpZ25hbF9jb25uZWN0 X29iamVjdCAoY2xpZW50LCAibm90aWZ5IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBHX0NBTExCQUNLKG5tX2NsaWVudF9vbl9wZXJtaXNzaW9uX2NoYW5nZSksIHNlbGYsIEdf Q09OTkVDVF9TV0FQUEVEKTsKKyAKKyAgICAgICAgIG5tX2NsaWVudF9vbl9wZXJtaXNzaW9uX2No YW5nZShzZWxmKTsKKyAKKy0tIAorMi4yOC4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUt Y29udHJvbC1jZW50ZXIvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWNvbnRyb2wtY2VudGVyL3Rl bXBsYXRlCmluZGV4IDlmZGI4NTNhZmJmLi4xOTExMDFhZmFhZCAxMDA2NDQKLS0tIGEvc3JjcGtn cy9nbm9tZS1jb250cm9sLWNlbnRlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWNvbnRy b2wtY2VudGVyL3RlbXBsYXRlCkBAIC0xLDIyICsxLDIyIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICdnbm9tZS1jb250cm9sLWNlbnRlcicKIHBrZ25hbWU9Z25vbWUtY29udHJvbC1jZW50ZXIKLXZl cnNpb249My4zNC4xCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTMuMzguMAorcmV2aXNpb249MQogYnVp bGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgogY29uZmlndXJlX2FyZ3M9Ii1EY2hl ZXNlPSQodm9wdF9pZiBjaGVlc2UgdHJ1ZSBmYWxzZSkiCi1ob3N0bWFrZWRlcGVuZHM9ImdsaWIt ZGV2ZWwgZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy1kZXZlbCBpbnRsdG9vbCBwa2ctY29uZmln IHBvbGtpdAotIHB5dGhvbjMiCitob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgZ3NldHRpbmdz LWRlc2t0b3Atc2NoZW1hcy1kZXZlbCBpbnRsdG9vbCBwa2ctY29uZmlnCisgcG9sa2l0IHB5dGhv bjMiCiBtYWtlZGVwZW5kcz0iTW9kZW1NYW5hZ2VyLWRldmVsIGFjY291bnRzc2VydmljZS1kZXZl bCBhbHNhLXBsdWdpbnMKICBjb2xvcmQtZ3RrLWRldmVsIGdub21lLWJsdWV0b290aC1kZXZlbCBn bm9tZS1kZXNrdG9wLWRldmVsIGdub21lLW1lbnVzLWRldmVsCiAgZ25vbWUtb25saW5lLWFjY291 bnRzLWRldmVsIGdub21lLXNldHRpbmdzLWRhZW1vbi1kZXZlbCBncmlsby1kZXZlbCBpYnVzLWRl dmVsCi0gbGliU00tZGV2ZWwgbGliWHhmODZtaXNjLWRldmVsIGxpYmdub21la2JkLWRldmVsIGxp Ymd0b3AtZGV2ZWwKKyBsaWJTTS1kZXZlbCBsaWJYeGY4Nm1pc2MtZGV2ZWwgbGliZ25vbWVrYmQt ZGV2ZWwgbGliZ3RvcC1kZXZlbCBsaWJoYW5keTEtZGV2ZWwKICBsaWJwd3F1YWxpdHktZGV2ZWwg bWl0LWtyYjUtZGV2ZWwgbmV0d29yay1tYW5hZ2VyLWFwcGxldC1kZXZlbCBwb2xraXQtZGV2ZWwK ICBwdWxzZWF1ZGlvLWRldmVsIHNhbWJhLWRldmVsIHR6ZGF0YSB1cG93ZXItZGV2ZWwgdmFsYS1k ZXZlbCBjbHV0dGVyLWd0ay1kZXZlbAogIGxpYnhtbDItZGV2ZWwgbGliWDExLWRldmVsIGd0aysz LWRldmVsIGN1cHMtZGV2ZWwgbGliZ3VkZXYtZGV2ZWwgbGlid2Fjb20tZGV2ZWwKICBjbHV0dGVy LWRldmVsIGxpYnNlY3JldC1kZXZlbCBsaWJjYW5iZXJyYS1kZXZlbCB1ZGlza3MyLWRldmVsIGdz b3VuZC1kZXZlbAogICQodm9wdF9pZiBjaGVlc2UgY2hlZXNlLWRldmVsKSIKLWRlcGVuZHM9ImFs c2EtcGx1Z2lucy1wdWxzZWF1ZGlvIGRlc2t0b3AtZmlsZS11dGlscworZGVwZW5kcz0iYWxzYS1w bHVnaW5zLXB1bHNlYXVkaW8gZGVza3RvcC1maWxlLXV0aWxzIHVwb3dlciBjb2xvcmQgY3Vwcy1w ay1oZWxwZXIKICBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzIGhpY29sb3ItaWNvbi10aGVtZSBp c28tY29kZXMgc291bmQtdGhlbWUtZnJlZWRlc2t0b3AKICBjcmFja2xpYiIKIHNob3J0X2Rlc2M9 IkdOT01FIGNvbnRyb2wgY2VudGVyIgpAQCAtMjQsMTMgKzI0LDE3IEBAIG1haW50YWluZXI9IkVu bm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxh dGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1jb250 cm9sLWNlbnRlciIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lv biUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTVmODJlY2Q1NTU0 MTM2YzQ2MjI0OGVjNTM2M2I4MmQ5NTM1OGIzOWRmZDY3ODcwMDZkODMwN2I0NTA0ZTUxNWUKK2No ZWNrc3VtPWY2YjZiNWI4ZWY5YzM4ZDg5NWJhNWFmODdmMzFhZGFlMDIxOTRhZDg2YzlhYTZjZmYy ZDJiOTc1NWMyZGIxZGEKIAogYnVpbGRfb3B0aW9ucz0iY2hlZXNlIgorYnVpbGRfb3B0aW9uc19k ZWZhdWx0PSJjaGVlc2UiCisKIGRlc2Nfb3B0aW9uX2NoZWVzZT0iQWRkIHN1cHBvcnQgZm9yIGFk ZGluZyB1c2VyIGFjY291bnQgaW1hZ2VzIHdpdGggeW91ciB3ZWJjYW0iCi1pZiBbIC16ICIkQ1JP U1NfQlVJTEQiIF07IHRoZW4KLQlidWlsZF9vcHRpb25zX2RlZmF1bHQrPSIgY2hlZXNlIgotZmkK KworIyBuZWVkcyBYMTEgYW5kIHJlcXVpcmVzIGFsdGVyZWQgZmlsZXN5c3RlbQorZG9fY2hlY2so KSB7CisJOgorfQogCiBDRkxBR1M9Ii1mY29tbW9uIgogCgpGcm9tIGQxZmE4MmE5MWQzZDA1NjFm MmQzZWU2ZjA1NGZhMTQ4ZjQ0ZTZiYmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERh bmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIw IDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNDYvMTAyXSBkY29uZi1lZGl0b3I6IHVw ZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9kY29uZi1lZGl0b3IvdGVtcGxhdGUgfCA2ICsr Ky0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2Rjb25mLWVkaXRvci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZGNvbmYt ZWRpdG9yL3RlbXBsYXRlCmluZGV4IGRlMjUwYmJjOGE5Li4yMzI1MmI5Zjc0ZSAxMDA2NDQKLS0t IGEvc3JjcGtncy9kY29uZi1lZGl0b3IvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9kY29uZi1lZGl0 b3IvdGVtcGxhdGUKQEAgLTEsMTMgKzEsMTMgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Rjb25m LWVkaXRvcicKIHBrZ25hbWU9ZGNvbmYtZWRpdG9yCi12ZXJzaW9uPTMuMzYuMAordmVyc2lvbj0z LjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCi1ob3N0bWFrZWRlcGVuZHM9ImRv Y2Jvb2steHNsIGdsaWItZGV2ZWwgbGlieHNsdCBwa2ctY29uZmlnIHZhbGEiCitob3N0bWFrZWRl cGVuZHM9ImRvY2Jvb2steHNsIGdsaWItZGV2ZWwgbGlieHNsdCBwa2ctY29uZmlnIHZhbGEgZ2V0 dGV4dCIKIG1ha2VkZXBlbmRzPSJkY29uZi1kZXZlbCBndGsrMy1kZXZlbCIKIHNob3J0X2Rlc2M9 Ikxvdy1sZXZlbCBjb25maWd1cmF0aW9uIHN5c3RlbSAtIEdUSysgZWRpdG9yIgogbWFpbnRhaW5l cj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0zLjAt b3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9kY29u ZiIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtw a2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTcyZWVkMDU2NzA5MTdmOGU0MzIw MGU0MGNjYzZiZTYwMjExZjBhODdiMDE3NTM0ZWFjMWZkNmM3MTczYTA2OTMKK2NoZWNrc3VtPTZk ODkyNDlhMzc5MDgyZGU2YThlOTVhMmEyMDJkMGNhNWZlMWM5Nzc2YmMwZDVkM2VmMDY1NTY3ZDgx ODNlYjQKCkZyb20gMTIxOWRkOTM4N2IzY2YwODM2NThlZDg0MzE2ZWNiODJjMTI3YTkxMSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3Jn ZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDY6NDI6MDIgKzAyMDAKU3ViamVjdDogW1BB VENIIDA0Ny8xMDJdIGdqczogdXBkYXRlIHRvIDEuNjYuMAoKLS0tCiBzcmNwa2dzL2dqcy90ZW1w bGF0ZSB8IDggKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nanMvdGVtcGxhdGUgYi9zcmNwa2dzL2dq cy90ZW1wbGF0ZQppbmRleCBlYzQ4YmFkZGYxMS4uOGExMzNkZDgwNDggMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvZ2pzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ2pzL3RlbXBsYXRlCkBAIC0xLDI3ICsx LDI3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnanMnCiBwa2duYW1lPWdqcwotdmVyc2lvbj0x LjY1LjIKK3ZlcnNpb249MS42Ni4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogYnVp bGRfaGVscGVyPSJnaXIgcWVtdSIKIGNvbmZpZ3VyZV9hcmdzPSItRHNraXBfZGJ1c190ZXN0cz10 cnVlIC1Ec2tpcF9ndGtfdGVzdHM9dHJ1ZQogIC1EcHJvZmlsZXI9ZGlzYWJsZWQgLURpbnN0YWxs ZWRfdGVzdHM9ZmFsc2UiICMgRGlzYWJsZSB0ZXN0cyBiZWNhdXNlIHRoZXkgbmVlZCBkYnVzLCBY IGFuZCBHVEsuCiBob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgcGtnLWNvbmZpZyIKLW1ha2Vk ZXBlbmRzPSJkYnVzLWdsaWItZGV2ZWwgbW96anM2OC1kZXZlbCByZWFkbGluZS1kZXZlbCBzeXNw cm9mLWRldmVsIgorbWFrZWRlcGVuZHM9ImRidXMtZ2xpYi1kZXZlbCBtb3pqczc4LWRldmVsIHJl YWRsaW5lLWRldmVsIHN5c3Byb2YtZGV2ZWwiCiBzaG9ydF9kZXNjPSJNb3ppbGxhLWJhc2VkIGph dmFzY3JpcHQgYmluZGluZ3MgZm9yIHRoZSBHTk9NRSBwbGF0Zm9ybSIKIG1haW50YWluZXI9IkVu bm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJNSVQsIExHUEwtMi4w LW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvYWN0aW9uL3Nob3cv UHJvamVjdHMvR2pzIgogY2hhbmdlbG9nPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUv Z2pzL2Jsb2IvZ25vbWUtMy0zMC9ORVdTIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtn bmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tz dW09YTY2ZWRhZDhhNWYxMDAyN2Y5YjE4MmQ4OGFmODRiODFmMTNlNWFkNTg0MDMxOWNmYTc0N2Q2 NmU3N2UwMjE0ZgorY2hlY2tzdW09ZjMwY2Y5MGUwMTZkYjZjOGZkZDAwNTk3NDk1NTk2MTE3NjBm MDcyMWYzNzViMmI2MWUwYjcyMzliNDNhYjVmOAogCiBwb3N0X2luc3RhbGwoKSB7CiAJdmxpY2Vu c2UgQ09QWUlORwogfQogCiBnanMtZGV2ZWxfcGFja2FnZSgpIHsKLQlkZXBlbmRzPSJsaWJnaXJl cG9zaXRvcnktZGV2ZWwgbW96anM2OC1kZXZlbCAke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHty ZXZpc2lvbn0iCisJZGVwZW5kcz0ibGliZ2lyZXBvc2l0b3J5LWRldmVsIG1vempzNzgtZGV2ZWwg JHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgogCXNob3J0X2Rlc2MrPSIgLSBk ZXZlbG9wbWVudCBmaWxlcyIKIAlwa2dfaW5zdGFsbCgpIHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUK CkZyb20gNGNiN2ZjZDczOTFiYjg0MzU0MTFkMjAxY2M2MjQ2YTQyNWFlZTZmYyBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+ CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA0 OC8xMDJdIGdub21lLXNoZWxsOiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIHNyY3BrZ3MvZ25vbWUt c2hlbGwvdGVtcGxhdGUgfCAxMSArKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0 aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXNoZWxs L3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1zaGVsbC90ZW1wbGF0ZQppbmRleCA5NmM1YjgwYTE5 NC4uZjI3Nzk1NTcyZWYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtc2hlbGwvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9nbm9tZS1zaGVsbC90ZW1wbGF0ZQpAQCAtMSwxMiArMSwxMiBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtc2hlbGwnCiBwa2duYW1lPWdub21lLXNoZWxsCi12ZXJz aW9uPTMuMzQuMQordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29u CiBidWlsZF9oZWxwZXI9Z2lyCiBjb25maWd1cmVfYXJncz0iLURzeXN0ZW1kPWZhbHNlIgogaG9z dG1ha2VkZXBlbmRzPSJnb2JqZWN0LWludHJvc3BlY3Rpb24gZ3RrLWRvYyBsaWJ4c2x0IHBrZy1j b25maWcgcHl0aG9uMyBzYXNzYwotIGFzY2lpZG9jIHBlcmwgZ2xpYi1kZXZlbCBtdXR0ZXItZGV2 ZWwiCisgYXNjaWlkb2MgcGVybCBnbGliLWRldmVsIG11dHRlci1kZXZlbCBnZXR0ZXh0IGdqcy1k ZXZlbCIKIG1ha2VkZXBlbmRzPSJhdC1zcGkyLWF0ayBjYXJpYm91LWRldmVsIGV2b2x1dGlvbi1k YXRhLXNlcnZlci1kZXZlbCBmb2xrcy1kZXZlbAogIGdjci1kZXZlbCBnanMtZGV2ZWwgZ25vbWUt Ymx1ZXRvb3RoLWRldmVsIGdub21lLWNvbnRyb2wtY2VudGVyLWRldmVsIGdub21lLWRlc2t0b3At ZGV2ZWwKICBnbm9tZS1tZW51cy1kZXZlbCBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzLWRldmVs IGdzdHJlYW1lcjEtZGV2ZWwgZ3RrKzMtZGV2ZWwKQEAgLTIxLDQgKzIxLDkgQEAgbGljZW5zZT0i R1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2pl Y3RzL0dub21lU2hlbGwiCiBjaGFuZ2Vsb2c9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50 LmNvbS9HTk9NRS9nbm9tZS1zaGVsbC9nbm9tZS0zLTMwL05FV1MiCiBkaXN0ZmlsZXM9IiR7R05P TUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50 YXIueHoiCi1jaGVja3N1bT1jY2Q4NjU1OWI5Yzg5N2MyMTlkMmQyZWJmZGI4NDEzZWZhNGMxYmVl ODQ2NDI3Yzc1MGNiOGEzMDFiM2Y2ZDFlCitjaGVja3N1bT1jNjI2NDAzYmMwODc1ZWU2ZGE4Yzdh NjJhYzBjZWUzMTJiYWRiNTIzYWYwNzNjYjE2NjEyNTAxNWE3NWEwYTk3CisKKyMgbmVlZHMgWAor ZG9fY2hlY2soKSB7CisJOgorfQoKRnJvbSBhZjdjOWQ3ODBhZjAxNmQwOWY1ZDlkNjFiY2VjNTZm ODlmMWRiOThlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxk YW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIw MApTdWJqZWN0OiBbUEFUQ0ggMDQ5LzEwMl0gZ25vbWUtc2hlbGwtZXh0ZW5zaW9uczogdXBkYXRl IHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL2dub21lLXNoZWxsLWV4dGVuc2lvbnMvdGVtcGxhdGUg fCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXNoZWxsLWV4dGVuc2lvbnMvdGVtcGxhdGUg Yi9zcmNwa2dzL2dub21lLXNoZWxsLWV4dGVuc2lvbnMvdGVtcGxhdGUKaW5kZXggOTcxNjhiNDBm NjYuLmU0OTMwMzg0ZmQ0IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXNoZWxsLWV4dGVuc2lv bnMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1zaGVsbC1leHRlbnNpb25zL3RlbXBsYXRl CkBAIC0xLDE1ICsxLDE1IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1zaGVsbC1leHRl bnNpb25zJwogcGtnbmFtZT1nbm9tZS1zaGVsbC1leHRlbnNpb25zCi12ZXJzaW9uPTMuMzQuMQor dmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGFyY2hzPW5vYXJjaAogYnVpbGRfc3R5bGU9bWVz b24KIGNvbmZpZ3VyZV9hcmdzPSItRGV4dGVuc2lvbl9zZXQ9YWxsIgotaG9zdG1ha2VkZXBlbmRz PSJwa2ctY29uZmlnIgoraG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGdldHRleHQiCiBkZXBl bmRzPSJnbm9tZS1zaGVsbD49JHt2ZXJzaW9ufSBuYXV0aWx1cyB1bnppcCIKIHNob3J0X2Rlc2M9 IkV4dGVuc2lvbnMgZm9yIEdOT01FIHNoZWxsLCBpbmNsdWRpbmcgY2xhc3NpYyBtb2RlIgogbWFp bnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQ TC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0 cy9Hbm9tZVNoZWxsL0V4dGVuc2lvbnMiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2du YW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1 bT1iMGFkNTExNDNiMWJmNDBkZWY0YTEwZjhmZDBhYjBmZmI0NzIxODMwNDgwMDc5NGU2MmNhZGQy OWQwYWNjNzViCitjaGVja3N1bT1mNzI2Zjg1YmIzOThiMDgyYWQwOWE3ZGVkMzA2ZjIyYmQyNWQy NTg5OGM3ZjE4YmQ3NzVkZjY2NDAwZDM5MTlmCgpGcm9tIGZjOWQ0MGQxZTk0NThlZWU1MDI2N2Y4 NzdkNWEyNTNlMGYxNWY2MzQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBL b2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4 OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNTAvMTAyXSBnZG06IHVwZGF0ZSB0byAzLjM4LjAK Ci0tLQogc3JjcGtncy9nZG0vcGF0Y2hlcy90YWtlLW91dC10aGUtdHJhc2gucGF0Y2ggfCAyMyAr KysrKysrKysrKysrKysrKwogc3JjcGtncy9nZG0vdGVtcGxhdGUgICAgICAgICAgICAgICAgICAg ICAgICAgfCAyNiArKysrKysrKysrKy0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAzNyBpbnNl cnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2dk bS9wYXRjaGVzL3Rha2Utb3V0LXRoZS10cmFzaC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Z2RtL3BhdGNoZXMvdGFrZS1vdXQtdGhlLXRyYXNoLnBhdGNoIGIvc3JjcGtncy9nZG0vcGF0Y2hl cy90YWtlLW91dC10aGUtdHJhc2gucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAuLjY5MjdjNzI3N2IxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9nZG0vcGF0 Y2hlcy90YWtlLW91dC10aGUtdHJhc2gucGF0Y2gKQEAgLTAsMCArMSwyMyBAQAorLS0tIG1lc29u LmJ1aWxkCisrKysgbWVzb24uYnVpbGQKK0BAIC05NCwxOSArOTQsOCBAQCBpZiB4ZG1jcF9kZXAu Zm91bmQoKSBhbmQgZ2V0X29wdGlvbigndGNwLXdyYXBwZXJzJykKKyAgIGxpYndyYXBfZGVwID0g Y2MuZmluZF9saWJyYXJ5KCdsaWJ3cmFwJykKKyBlbmRpZgorICMgc3lzdGVtZAorLXN5c3RlbWRf ZGVwID0gZGVwZW5kZW5jeSgnc3lzdGVtZCcpCisgbGlic3lzdGVtZF9kZXAgPSBkZXBlbmRlbmN5 KCdsaWJzeXN0ZW1kJykKKy1pZiBtZXNvbi52ZXJzaW9uKCkudmVyc2lvbl9jb21wYXJlKCc+PSAw LjUzJykKKy0gIHN5c3RlbWRfbXVsdGlzZWF0X3ggPSBmaW5kX3Byb2dyYW0oJ3N5c3RlbWQtbXVs dGktc2VhdC14JywKKy0gICAgcmVxdWlyZWQ6IGZhbHNlLAorLSAgICBkaXJzOiBbCistICAgICAg c3lzdGVtZF9kZXAuZ2V0X3BrZ2NvbmZpZ192YXJpYWJsZSgnc3lzdGVtZHV0aWxkaXInKSwKKy0g ICAgICAnL2xpYi9zeXN0ZW1kJywKKy0gICAgICAnL3Vzci9saWIvc3lzdGVtZCcsCistICAgIF0p CistZWxzZQorLSAgc3lzdGVtZF9tdWx0aXNlYXRfeCA9IGZpbmRfcHJvZ3JhbSgnc3lzdGVtZC1t dWx0aS1zZWF0LXgnLCByZXF1aXJlZDogZmFsc2UpCistZW5kaWYKKytzeXN0ZW1kX211bHRpc2Vh dF94ID0gZmluZF9wcm9ncmFtKCdzeXN0ZW1kLW11bHRpLXNlYXQteCcsIHJlcXVpcmVkOiBmYWxz ZSkKKyBzeXN0ZW1kX3hfc2VydmVyID0gc3lzdGVtZF9tdWx0aXNlYXRfeC5mb3VuZCgpPyBzeXN0 ZW1kX211bHRpc2VhdF94LnBhdGgoKSA6ICcvbGliL3N5c3RlbWQvc3lzdGVtZC1tdWx0aS1zZWF0 LXgnCisgIyBQbHltb3V0aAorIHBseW1vdXRoX2RlcCA9IGRlcGVuZGVuY3koJ3BseS1ib290LWNs aWVudCcsIHJlcXVpcmVkOiBnZXRfb3B0aW9uKCdwbHltb3V0aCcpKQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9nZG0vdGVtcGxhdGUgYi9zcmNwa2dzL2dkbS90ZW1wbGF0ZQppbmRleCBiYjViNDg2OTJk NC4uMTE4ODgxZTRjNGMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ2RtL3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvZ2RtL3RlbXBsYXRlCkBAIC0xLDI3ICsxLDI4IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICdnZG0nCiBwa2duYW1lPWdkbQotdmVyc2lvbj0zLjM0LjEKK3ZlcnNpb249My4zOC4wCiByZXZp c2lvbj0xCiBidWlsZF9oZWxwZXI9ImdpciIKLWJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKLWNv bmZpZ3VyZV9hcmdzPSIkKHZvcHRfZW5hYmxlIGdpciBpbnRyb3NwZWN0aW9uKQotIC0tZGlzYWJs ZS1zY2hlbWFzLWNvbXBpbGUgLS1kaXNhYmxlLXN0YXRpYyAtLXdpdGgtZGVmYXVsdC1wYW0tY29u ZmlnPWFyY2gKLSAtLXdpdGgtYXQtc3BpLXJlZ2lzdHJ5ZC1kaXJlY3Rvcnk9L3Vzci9saWJleGVj IC0td2l0aG91dC10Y3Atd3JhcHBlcnMKLSAtLXdpdGgtc2NyZWVuc2hvdC1kaXI9L3Zhci9saWIv Z2RtL2dyZWV0ZXIgLS1zYmluZGlyPS91c3IvYmluIC0td2l0aG91dC1wbHltb3V0aAotIC0td2l0 aC14YXV0aC1kaXI9L3J1bi9nZG0gLS13aXRoLXBpZC1maWxlPS9ydW4vZ2RtL2dkbS5waWQKLSAt LWRpc2FibGUtc3lzdGVtZC1qb3VybmFsIC0td2l0aC1pbml0aWFsLXZ0PTcgLS1lbmFibGUtd2F5 bGFuZC1zdXBwb3J0IgorYnVpbGRfc3R5bGU9bWVzb24KK2NvbmZpZ3VyZV9hcmdzPSIKKyAtRGRl ZmF1bHQtcGFtLWNvbmZpZz1hcmNoIC1EYXQtc3BpLXJlZ2lzdHJ5ZC1kaXI9L3Vzci9saWJleGVj CisgLUR0Y3Atd3JhcHBlcnM9ZmFsc2UgLURzY3JlZW5zaG90LWRpcj0vdmFyL2xpYi9nZG0vZ3Jl ZXRlcgorIC1EcGx5bW91dGg9ZGlzYWJsZWQgLUR4YXV0aC1kaXI9L3J1bi9nZG0gLURwaWQtZmls ZT0vcnVuL2dkbS9nZG0ucGlkCisgLURzeXN0ZW1kLWpvdXJuYWw9ZmFsc2UgLURpbml0aWFsLXZ0 PTcgLUR3YXlsYW5kLXN1cHBvcnQ9dHJ1ZQorIC1Ec2VsaW51eD1kaXNhYmxlZCAtRGxpYmF1ZGl0 PWRpc2FibGVkCisgLURzeXN0ZW1kc3lzdGVtdW5pdGRpcj0vdG1wIC1Ec3lzdGVtZHVzZXJ1bml0 ZGlyPS90bXAiCiBob3N0bWFrZWRlcGVuZHM9ImRjb25mIGdldHRleHQgaXRzdG9vbCBwa2ctY29u ZmlnIgogbWFrZWRlcGVuZHM9ImFjY291bnRzc2VydmljZS1kZXZlbCBlbG9naW5kLWRldmVsIGdl dHRleHQtZGV2ZWwgZ2xpYi1kZXZlbAogIGlzby1jb2RlcyBsaWJTTS1kZXZlbCBsaWJjYW5iZXJy YS1kZXZlbCBuc3MtZGV2ZWwgcGFtLWRldmVsIHVwb3dlci1kZXZlbCIKLWRlcGVuZHM9Imdub21l LXNldHRpbmdzLWRhZW1vbiBnbm9tZS1zaGVsbCB4b3JnLXNlcnZlciB4b3JnLXNlcnZlci14d2F5 bGFuZAotIHhyZGIiCitkZXBlbmRzPSJnbm9tZS1zZXR0aW5ncy1kYWVtb24gZ25vbWUtc2hlbGwg Z25vbWUtc2Vzc2lvbiBnbm9tZS10aGVtZXMtZXh0cmEKKyBnc2V0dGluZ3MtZGVza3RvcC1zY2hl bWFzIHhvcmctc2VydmVyIHhvcmctc2VydmVyLXh3YXlsYW5kIHhyZGIiCiBjaGVja2RlcGVuZHM9 ImNoZWNrLWRldmVsIgogc2hvcnRfZGVzYz0iR05PTUUgRGlzcGxheSBNYW5hZ2VyIgogbWFpbnRh aW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0y LjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9H RE0iCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7 cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1lODVkZjY1N2FhOGQ5MzYxYWY0 ZmIxMjIwMTRkOGYxMjNhOTNiZmU0NWE3NjYyZmJhMmIzNzNkODM5ZGJkOGQzCitjaGVja3N1bT00 NmQ0NDE1YzM5Yzk0Y2NlZTgxZmJhYzIxMTAyZTJlYmNkMjg0ZDM5ODU4Yzg5M2U3NTk5MDBiMWU4 ODQzNWJhCiAKIGNvbmZfZmlsZXM9IgogCS9ldGMvZ2RtL2N1c3RvbS5jb25mCkBAIC00Nyw2ICs0 OCw3IEBAIHBvc3RfaW5zdGFsbCgpIHsKIAl2aW5zdGFsbCAkRklMRVNESVIvWHNlc3Npb24gNzU1 IGV0Yy9nZG0KIAogCXZzZWQgLWkgInMvcGFtX3N5c3RlbWRcLnNvL3BhbV9lbG9naW5kLnNvLyIg JERFU1RESVIvZXRjL3BhbS5kLyoKKwlybSAtcmYgJHtERVNURElSfS90bXAKIAogCSMgcnVuaXQg c2VydmljZQogCXZzdiBnZG0KQEAgLTYwLDcgKzYyLDcgQEAgbGliZ2RtX3BhY2thZ2UoKSB7CiB9 CiAKIGdkbS1kZXZlbF9wYWNrYWdlKCkgewotCWRlcGVuZHM9ImxpYmdkbT49JHt2ZXJzaW9ufV8k e3JldmlzaW9ufSIKKwlkZXBlbmRzPSJsaWJnZG0+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gZWxv Z2luZC1kZXZlbCIKIAlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCiAJcGtnX2lu c3RhbGwoKSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRlCgpGcm9tIGYxZmIwNzJkNDM1YWI3YzJjYjM3 NTZkMGI4YTBlNDNlMmM2NWFlNDkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmll bCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4 OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNTEvMTAyXSBnbm9tZS1zZXNzaW9uOiB1cGRh dGUgdG8gMy4zOC4wCgotLS0KIC4uLi1hcHAtU3RyaXAtYmxhY2tsaXN0ZWQtdmFyaWFibGVzLWZy by5wYXRjaCB8IDY3ICsrKysrKysrKysrKysrKysrKysKIC4uLi9wYXRjaGVzL25vLXN5c3RlbWQt ZGVwLnBhdGNoICAgICAgICAgICAgICB8IDE0ICsrKysKIHNyY3BrZ3MvZ25vbWUtc2Vzc2lvbi90 ZW1wbGF0ZSAgICAgICAgICAgICAgICB8IDEwICsrLQogMyBmaWxlcyBjaGFuZ2VkLCA4OCBpbnNl cnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ25v bWUtc2Vzc2lvbi9wYXRjaGVzLzAwMDEtcmV2ZXJ0LWF1dG9zdGFydC1hcHAtU3RyaXAtYmxhY2ts aXN0ZWQtdmFyaWFibGVzLWZyby5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ25v bWUtc2Vzc2lvbi9wYXRjaGVzL25vLXN5c3RlbWQtZGVwLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9nbm9tZS1zZXNzaW9uL3BhdGNoZXMvMDAwMS1yZXZlcnQtYXV0b3N0YXJ0LWFwcC1TdHJp cC1ibGFja2xpc3RlZC12YXJpYWJsZXMtZnJvLnBhdGNoIGIvc3JjcGtncy9nbm9tZS1zZXNzaW9u L3BhdGNoZXMvMDAwMS1yZXZlcnQtYXV0b3N0YXJ0LWFwcC1TdHJpcC1ibGFja2xpc3RlZC12YXJp YWJsZXMtZnJvLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5j ZmQ5ZjRiYTZjZgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZ25vbWUtc2Vzc2lvbi9wYXRj aGVzLzAwMDEtcmV2ZXJ0LWF1dG9zdGFydC1hcHAtU3RyaXAtYmxhY2tsaXN0ZWQtdmFyaWFibGVz LWZyby5wYXRjaApAQCAtMCwwICsxLDY3IEBACitGcm9tIDFkZTM1NzVhMWVhOWNkYjM1NzlhZDUz ODEwOGM1MTgxODg0Nzc5N2MgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBSYXNtdXMg VGhvbXNlbiA8b3NzQGNvZ2l0cmkuZGV2PgorRGF0ZTogRnJpLCA2IERlYyAyMDE5IDExOjQ4OjAy ICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIHJldmVydDogYXV0b3N0YXJ0LWFwcDogU3RyaXAgYmxh Y2tsaXN0ZWQgdmFyaWFibGVzIGZyb20KKyBhdXRvc3RhcnQgZW52aXJvbm1lbnQKKworVGhpcyBi cmVha3MgZ25vbWUtc2Vzc2lvbiBvbiBub24tc3lzdGVtZCBzeXN0ZW1zLgorCitodHRwczovL2dp dGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2Vzc2lvbi9pc3N1ZXMvNDQKKy0tLQorIGdub21l LXNlc3Npb24vZ3NtLWF1dG9zdGFydC1hcHAuYyB8IDUgLS0tLS0KKyBnbm9tZS1zZXNzaW9uL2dz bS11dGlsLmMgICAgICAgICAgfCA2IC0tLS0tLQorIGdub21lLXNlc3Npb24vZ3NtLXV0aWwuaCAg ICAgICAgICB8IDEgLQorIDMgZmlsZXMgY2hhbmdlZCwgMTIgZGVsZXRpb25zKC0pCisKK2RpZmYg LS1naXQgYS9nbm9tZS1zZXNzaW9uL2dzbS1hdXRvc3RhcnQtYXBwLmMgYi9nbm9tZS1zZXNzaW9u L2dzbS1hdXRvc3RhcnQtYXBwLmMKK2luZGV4IDZmZDU5MTUuLjAxYmE1ZjkgMTAwNjQ0CistLS0g Z25vbWUtc2Vzc2lvbi9nc20tYXV0b3N0YXJ0LWFwcC5jCisrKysgZ25vbWUtc2Vzc2lvbi9nc20t YXV0b3N0YXJ0LWFwcC5jCitAQCAtOTk3LDcgKzk5Nyw2IEBAIGF1dG9zdGFydF9hcHBfc3RhcnRf c3Bhd24gKEdzbUF1dG9zdGFydEFwcCAqYXBwLAorICAgICAgICAgZ2Jvb2xlYW4gICAgICAgICBz dWNjZXNzOworICAgICAgICAgR0Vycm9yICAgICAgICAgICpsb2NhbF9lcnJvcjsKKyAgICAgICAg IGNvbnN0IGNoYXIgICAgICAqc3RhcnR1cF9pZDsKKy0gICAgICAgIGNvbnN0IGNoYXIgKiBjb25z dCAqdmFyaWFibGVfYmxhY2tsaXN0OworICAgICAgICAgY29uc3QgY2hhciAqIGNvbnN0ICpjaGls ZF9lbnZpcm9ubWVudDsKKyAgICAgICAgIGludCBpOworICAgICAgICAgR0FwcExhdW5jaENvbnRl eHQgKmN0eDsKK0BAIC0xMDE0LDEwICsxMDEzLDYgQEAgYXV0b3N0YXJ0X2FwcF9zdGFydF9zcGF3 biAoR3NtQXV0b3N0YXJ0QXBwICphcHAsCisgICAgICAgICBsb2NhbF9lcnJvciA9IE5VTEw7Cisg ICAgICAgICBjdHggPSBnX2FwcF9sYXVuY2hfY29udGV4dF9uZXcgKCk7CisgCistICAgICAgICB2 YXJpYWJsZV9ibGFja2xpc3QgPSBnc21fdXRpbF9nZXRfdmFyaWFibGVfYmxhY2tsaXN0ICgpOwor LSAgICAgICAgZm9yIChpID0gMDsgdmFyaWFibGVfYmxhY2tsaXN0W2ldICE9IE5VTEw7IGkrKykK Ky0gICAgICAgICAgICAgICAgZ19hcHBfbGF1bmNoX2NvbnRleHRfdW5zZXRlbnYgKGN0eCwgdmFy aWFibGVfYmxhY2tsaXN0W2ldKTsKKy0KKyAgICAgICAgIGNoaWxkX2Vudmlyb25tZW50ID0gZ3Nt X3V0aWxfbGlzdGVudiAoKTsKKyAgICAgICAgIGZvciAoaSA9IDA7IGNoaWxkX2Vudmlyb25tZW50 W2ldICE9IE5VTEw7IGkrKykgeworICAgICAgICAgICAgICAgICBjaGFyICoqZW52aXJvbm1lbnRf dHVwbGU7CitkaWZmIC0tZ2l0IGEvZ25vbWUtc2Vzc2lvbi9nc20tdXRpbC5jIGIvZ25vbWUtc2Vz c2lvbi9nc20tdXRpbC5jCitpbmRleCAwMmJjNGE1Li5hZGExMjI1IDEwMDY0NAorLS0tIGdub21l LXNlc3Npb24vZ3NtLXV0aWwuYworKysrIGdub21lLXNlc3Npb24vZ3NtLXV0aWwuYworQEAgLTgw OCw5ICs4MDgsMyBAQCBnc21fdXRpbF9saXN0ZW52ICh2b2lkKQorICAgICAgICAgcmV0dXJuIChj b25zdCBjaGFyICogY29uc3QgKikgY2hpbGRfZW52aXJvbm1lbnQ7CisgCisgfQorLQorLWNvbnN0 IGNoYXIgKiBjb25zdCAqCistZ3NtX3V0aWxfZ2V0X3ZhcmlhYmxlX2JsYWNrbGlzdCAodm9pZCkK Ky17CistICAgICAgICByZXR1cm4gdmFyaWFibGVfYmxhY2tsaXN0OworLX0KK2RpZmYgLS1naXQg YS9nbm9tZS1zZXNzaW9uL2dzbS11dGlsLmggYi9nbm9tZS1zZXNzaW9uL2dzbS11dGlsLmgKK2lu ZGV4IGJkN2I2OTguLjhiY2E1ZjQgMTAwNjQ0CistLS0gZ25vbWUtc2Vzc2lvbi9nc20tdXRpbC5o CisrKysgZ25vbWUtc2Vzc2lvbi9nc20tdXRpbC5oCitAQCAtNTAsNyArNTAsNiBAQCBjaGFyICog ICAgICBnc21fdXRpbF9nZW5lcmF0ZV9zdGFydHVwX2lkICAgICAgICAgICAgKHZvaWQpOworIHZv aWQgICAgICAgIGdzbV91dGlsX3NldGVudiAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3Qg Y2hhciAqdmFyaWFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBjaGFyICp2YWx1ZSk7CisgY29uc3QgY2hhciAqIGNvbnN0ICog Z3NtX3V0aWxfbGlzdGVudiAgICAgICAgICAgICAgICh2b2lkKTsKKy1jb25zdCBjaGFyICogY29u c3QgKiBnc21fdXRpbF9nZXRfdmFyaWFibGVfYmxhY2tsaXN0KHZvaWQpOworIAorIGdib29sZWFu ICAgIGdzbV91dGlsX2V4cG9ydF9hY3RpdmF0aW9uX2Vudmlyb25tZW50ICAoR0Vycm9yICAgICAq KmVycm9yKTsKKyAjaWZkZWYgSEFWRV9TWVNURU1ECistLSAKKzIuMjQuMAorCmRpZmYgLS1naXQg YS9zcmNwa2dzL2dub21lLXNlc3Npb24vcGF0Y2hlcy9uby1zeXN0ZW1kLWRlcC5wYXRjaCBiL3Ny Y3BrZ3MvZ25vbWUtc2Vzc2lvbi9wYXRjaGVzL25vLXN5c3RlbWQtZGVwLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44ZTU1YTBmNzk4NwotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3MvZ25vbWUtc2Vzc2lvbi9wYXRjaGVzL25vLXN5c3RlbWQtZGVwLnBhdGNo CkBAIC0wLDAgKzEsMTQgQEAKKy0tLSBtZXNvbi5idWlsZAorKysrIG1lc29uLmJ1aWxkCitAQCAt MTMwLDEwICsxMzAsNyBAQCBpZiBlbmFibGVfc3lzdGVtZCBvciBlbmFibGVfY29uc29sZWtpdAor IAorICAgIyBDaGVjayBmb3Igc3lzdGVtZAorICAgaWYgZW5hYmxlX3N5c3RlbWQKKy0gICAgc3lz dGVtZF9kZXAgPSBkZXBlbmRlbmN5KCdzeXN0ZW1kJywgdmVyc2lvbjogJz49IDI0MicsIHJlcXVp cmVkOiB0cnVlKQorLSAgICBzeXN0ZW1kX3VzZXJ1bml0ZGlyID0gc3lzdGVtZF9kZXAuZ2V0X3Br Z2NvbmZpZ192YXJpYWJsZSgnc3lzdGVtZHVzZXJ1bml0ZGlyJywKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lX3Zhcmlh YmxlOiBbJ3ByZWZpeCcsIHByZWZpeF0pCistCisrICAgIHN5c3RlbWRfdXNlcnVuaXRkaXIgPSAn L3RtcCcKKyAgICAgbGlic3lzdGVtZF9kZXAgPSBkZXBlbmRlbmN5KCdsaWJzeXN0ZW1kJywgdmVy c2lvbjogJz49IDIwOScsIHJlcXVpcmVkOiBmYWxzZSkKKyAgICAgc2Vzc2lvbl9iaW5fZGVwcyAr PSBsaWJzeXN0ZW1kX2RlcAorIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1zZXNzaW9uL3Rl bXBsYXRlIGIvc3JjcGtncy9nbm9tZS1zZXNzaW9uL3RlbXBsYXRlCmluZGV4IDQ0NDRmMTYyYmYx Li5jOWJjNDkzMGMzOSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1zZXNzaW9uL3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvZ25vbWUtc2Vzc2lvbi90ZW1wbGF0ZQpAQCAtMSw5ICsxLDkgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLXNlc3Npb24nCiBwa2duYW1lPWdub21lLXNlc3Npb24K LXZlcnNpb249My4zNC4xCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9 bWVzb24KLWNvbmZpZ3VyZV9hcmdzPSItRHN5c3RlbWRfam91cm5hbD1mYWxzZSIKK2NvbmZpZ3Vy ZV9hcmdzPSItRHN5c3RlbWRfam91cm5hbD1mYWxzZSAtRHN5c3RlbWRfc2Vzc2lvbj1kaXNhYmxl IgogaG9zdG1ha2VkZXBlbmRzPSJnbGliLWRldmVsIGludGx0b29sIHBrZy1jb25maWcgeG1sdG8i CiBtYWtlZGVwZW5kcz0iZWxvZ2luZC1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsIGd0ayszLWRl dmVsIGpzb24tZ2xpYi1kZXZlbAogIGxpYmdsaWItZGV2ZWwgbGliSUNFLWRldmVsIGxpYlNNLWRl dmVsIGxpYlh0c3QtZGV2ZWwgc3RhcnR1cC1ub3RpZmljYXRpb24tZGV2ZWwKQEAgLTE1LDQgKzE1 LDggQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxp Y2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0 dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zZXNzaW9uIgogZGlzdGZpbGVzPSIk e0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lv bn0udGFyLnh6IgotY2hlY2tzdW09ZDc4MDFmZTJkNWE3NTFiMTljYjU4MDgxNzcxMzE2YTc2YWFi ZDVjNTUwY2Q1OGQ0ZTRjNmE1YTRlZDM1NjY2MAorY2hlY2tzdW09N2JjYzBlYjJjZGJhNGIzZjZk MWI0NTliM2EzMDg3M2I3YmI2NWIzODNjMWY2YTVmNjNjM2UzYjVjNzk0M2Q2NworCitwb3N0X2lu c3RhbGwoKSB7CisJcm0gLXJmICR7REVTVERJUn0vdG1wCit9CgpGcm9tIDZmZjVjZjcyMjBiMzVk OTY1ZGQ3MmM1ZjNkNjY0NmM0Mjc4Nzg4MjcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAy MDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNTIvMTAyXSBnbm9tZS1pbml0aWFs LXNldHVwOiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIHNyY3BrZ3MvZ25vbWUtaW5pdGlhbC1zZXR1 cC90ZW1wbGF0ZSB8IDExICsrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25z KCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtaW5pdGlhbC1z ZXR1cC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtaW5pdGlhbC1zZXR1cC90ZW1wbGF0ZQppbmRl eCA1NWRmMmY1M2MxZC4uNjNhYmQzYzVjODMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtaW5p dGlhbC1zZXR1cC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWluaXRpYWwtc2V0dXAvdGVt cGxhdGUKQEAgLTEsMTAgKzEsMTEgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWluaXRp YWwtc2V0dXAnCiBwa2duYW1lPWdub21lLWluaXRpYWwtc2V0dXAKLXZlcnNpb249My4zNC4xCi1y ZXZpc2lvbj0zCit2ZXJzaW9uPTMuMzguMAorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24K LWNvbmZpZ3VyZV9hcmdzPSItRHNvZnR3YXJlLXNvdXJjZXM9ZGlzYWJsZWQgLURzeXN0ZW1kPWZh bHNlIgotaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGdsaWItZGV2ZWwiCitjb25maWd1cmVf YXJncz0iLURzb2Z0d2FyZS1zb3VyY2VzPWRpc2FibGVkIC1EcGFyZW50YWxfY29udHJvbHM9ZGlz YWJsZWQKKyAtRHN5c3RlbWQ9ZmFsc2UiCitob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgZ2xp Yi1kZXZlbCBnZXR0ZXh0IgogbWFrZWRlcGVuZHM9Ik5ldHdvcmtNYW5hZ2VyLWRldmVsIGFjY291 bnRzc2VydmljZS1kZXZlbCBsaWJnbGliLWRldmVsCiAgZ25vbWUtZGVza3RvcC1kZXZlbCBjaGVl c2UtZGV2ZWwgbGliZ3dlYXRoZXItZGV2ZWwgd2Via2l0Mmd0ay1kZXZlbAogIGdub21lLW9ubGlu ZS1hY2NvdW50cy1kZXZlbCBnZG0tZGV2ZWwgbGlicHdxdWFsaXR5LWRldmVsCkBAIC0xNyw0ICsx OCw0IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBs aWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5v cmcvRGVzaWduL09TL0luaXRpYWxTZXR1cCIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3Br Z25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNr c3VtPWU3MWYxMGVmNmI2MzFjZDkyZmZkZTc3NGU0MTMwYjMyYjI0OTRiNGRmNWVmMjg4Mzc1ZDhi MTk1N2VlYWJmYTEKK2NoZWNrc3VtPTNhODU3YWVmNWVmYjY4OWY0MDg2MzJkYjg0NjlhZDI3NjIw Zjc2MmQ5NzcwNzBhMzYwMzVjNTIyYzZmODI3NTkKCkZyb20gMTAwMzhmN2M4YmNkNDY5MDA0MjQ1 MmMwZjcyY2Q4Y2JhZmE2MDExMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVs IEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6 NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA1My8xMDJdIHhkZy1kZXNrdG9wLXBvcnRhbC1n dGs6IHVwZGF0ZSB0byAxLjguMAoKLS0tCiBzcmNwa2dzL3hkZy1kZXNrdG9wLXBvcnRhbC1ndGsv dGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy94ZGctZGVza3RvcC1wb3J0YWwtZ3RrL3Rl bXBsYXRlIGIvc3JjcGtncy94ZGctZGVza3RvcC1wb3J0YWwtZ3RrL3RlbXBsYXRlCmluZGV4IGRl ZTBlNDYzMzg2Li43NTE3ZDFiMzJkOCAxMDA2NDQKLS0tIGEvc3JjcGtncy94ZGctZGVza3RvcC1w b3J0YWwtZ3RrL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MveGRnLWRlc2t0b3AtcG9ydGFsLWd0ay90 ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3hkZy1kZXNrdG9w LXBvcnRhbC1ndGsnCiBwa2duYW1lPXhkZy1kZXNrdG9wLXBvcnRhbC1ndGsKLXZlcnNpb249MS42 LjAKK3ZlcnNpb249MS44LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUK IGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBsaWJ4c2x0IGdsaWItZGV2ZWwgeGRnLWRlc2t0 b3AtcG9ydGFsIGdldHRleHQiCkBAIC0xMiw3ICsxMiw3IEBAIG1haW50YWluZXI9IkR1bmNhZW4g PGR1bmNhZW5Adm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciIKIGhv bWVwYWdlPSJodHRwczovL2dpdGh1Yi5jb20vZmxhdHBhay94ZGctZGVza3RvcC1wb3J0YWwtZ3Rr IgogZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vZmxhdHBhay8ke3BrZ25hbWV9L3JlbGVh c2VzL2Rvd25sb2FkLyR7dmVyc2lvbn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNo ZWNrc3VtPTk1NmZkMTY2MDgyNDdlNzExOWQ0YzZkOTVhNmRjNjU3OGRjZTI1N2QyZjI3MmQwM2Iz NDk4NTcyMjU3ZTJmNzYKK2NoZWNrc3VtPWE1MjUyOWVkMzIxZTA0NGNhOWFkY2E1ZTk3MThkOWJh NTdjNDE0YTI2MzRkZDQxMDlkZjM0NGM1YjllZWQ3N2YKIAogcG9zdF9pbnN0YWxsKCkgewogCXJt IC1yZiAiJHtERVNURElSfS91c3IvbGliL3N5c3RlbWQiCgpGcm9tIDkxOTQ0MzEzZmIxNTZlMzlj ZjljYmY5ZjU4YWFmM2UwMmNjMWM3MWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERh bmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIw IDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNTQvMTAyXSBuYXV0aWx1czogdXBkYXRl IHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL25hdXRpbHVzL3RlbXBsYXRlIHwgMTAgKysrKystLS0t LQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9zcmNwa2dzL25hdXRpbHVzL3RlbXBsYXRlIGIvc3JjcGtncy9uYXV0aWx1cy90ZW1w bGF0ZQppbmRleCA1MzdhODUxOTczZi4uZGU5NjhmMDFkN2MgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv bmF1dGlsdXMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9uYXV0aWx1cy90ZW1wbGF0ZQpAQCAtMSw2 ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ25hdXRpbHVzJwogcGtnbmFtZT1uYXV0aWx1 cwotdmVyc2lvbj0zLjM2LjEuMQordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0 eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKQEAgLTgsMTYgKzgsMTYgQEAgY29uZmlndXJl X2FyZ3M9Ii1EdGVzdHM9aGVhZGxlc3MgLURpbnRyb3NwZWN0aW9uPSQodm9wdF9pZiBnaXIgdHJ1 ZSBmYWxzZSkiCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgZ2xpYi1kZXZlbCBsaWJ4c2x0IHBr Zy1jb25maWciCiBtYWtlZGVwZW5kcz0iZXhlbXBpLWRldmVsIGdub21lLWF1dG9hci1kZXZlbCBn bm9tZS1kZXNrdG9wLWRldmVsIGd0ayszLWRldmVsCiAgbGliZXhpZi1kZXZlbCBsaWJnZXhpdjIt ZGV2ZWwgbGliZ2xpYi1kZXZlbCBsaWJub3RpZnktZGV2ZWwgbGlic2VjY29tcC1kZXZlbAotIGxp YlgxMS1kZXZlbCBsaWJ4bWwyLWRldmVsIHRyYWNrZXItZGV2ZWwgZ3N0LXBsdWdpbnMtYmFzZTEt ZGV2ZWwiCisgbGliWDExLWRldmVsIGxpYnhtbDItZGV2ZWwgdHJhY2tlcjMtZGV2ZWwgZ3N0LXBs dWdpbnMtYmFzZTEtZGV2ZWwiCiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMgZ3NldHRpbmdz LWRlc2t0b3Atc2NoZW1hcyBoaWNvbG9yLWljb24tdGhlbWUKLSB0cmFja2VyLW1pbmVycyB0cmFj a2VyIgotY2hlY2tkZXBlbmRzPSJ0cmFja2VyIgorIHRyYWNrZXIzLW1pbmVycyB0cmFja2VyMyIK K2NoZWNrZGVwZW5kcz0idHJhY2tlcjMgdHJhY2tlcjMtbWluZXJzIHB5dGhvbjMtZ29iamVjdCBk YnVzIgogc2hvcnRfZGVzYz0iR05PTUUgZmlsZSBtYW5hZ2VyIgogbWFpbnRhaW5lcj0iRW5ubyBC b2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIs IExHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvTmF1 dGlsdXMiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb246OjR9 LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1mOTI1MmY1MDgyMTFkOWYz NjhhNDlkYjY5Nzg5MGY4OTVkMDgwZjA5NTkwYWVjYWYzMzgwM2E1MTlkZWY3YmRlCitjaGVja3N1 bT1jNmYzMzBmOWYzZjdkYmYzNWFmYjZlYzIwOTRiNzQ2ZWU3NWQ1ZTkyOGM4ZjY3ODBkYWIyNjY3 MjA4NmNjYWMwCiAKIGJ1aWxkX29wdGlvbnM9ImdpciIKIGJ1aWxkX29wdGlvbnNfZGVmYXVsdD0i Z2lyIgoKRnJvbSA1M2VlNDBjMWM1OGQ3NmIzNjg5OTkyZDYzNWVlMmIyMmI2OTQxNDdkIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdl Lm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFU Q0ggMDU1LzEwMl0gZ25vbWUtbWFwczogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL2du b21lLW1hcHMvdGVtcGxhdGUgfCAxMCArKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNl cnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtbWFw cy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtbWFwcy90ZW1wbGF0ZQppbmRleCAwMzAwYmU2MDU5 OS4uMzI4NWZhZjE3ZTQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtbWFwcy90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL2dub21lLW1hcHMvdGVtcGxhdGUKQEAgLTEsMTYgKzEsMTYgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ2dub21lLW1hcHMnCiBwa2duYW1lPWdub21lLW1hcHMKLXZlcnNpb249 My4zNi4xCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KLWhv c3RtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBnb2JqZWN0LWludHJvc3BlY3Rpb24gaW50bHRvb2wg cGtnLWNvbmZpZyBBcHBTdHJlYW0iCitidWlsZF9oZWxwZXI9ImdpciIKK2hvc3RtYWtlZGVwZW5k cz0iZ2xpYi1kZXZlbCBpbnRsdG9vbCBwa2ctY29uZmlnIEFwcFN0cmVhbSIKIG1ha2VkZXBlbmRz PSJmb2xrcy1kZXZlbCBnZW9jbHVlMi1kZXZlbCBnZW9jb2RlLWdsaWItZGV2ZWwgZ2pzLWRldmVs Ci0gZ25vbWUtZGVza3RvcC1kZXZlbCBsaWJjaGFtcGxhaW4tZGV2ZWwgcmVzdC1kZXZlbCIKKyBn bm9tZS1kZXNrdG9wLWRldmVsIGxpYmNoYW1wbGFpbi1kZXZlbCByZXN0LWRldmVsIGxpYmhhbmR5 MS1kZXZlbCIKIGRlcGVuZHM9Imdlb2NsdWUyIGdmYmdyYXBoIGdqcyIKIHNob3J0X2Rlc2M9IkdO T01FIG1hcHMgYXBwbGljYXRpb24iCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZv aWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRw czovL3dpa2kuZ25vbWUub3JnL0FwcHMvTWFwcyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8k e3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNo ZWNrc3VtPTFhMzJlZmQ5NmFkODk4Zjc3YTYzNmQyZDA0NjNkNzU3MDA5YjRiODEyMjU5Yzg5ZmZk Y2I5MWQ2YWZjMDUyZjkKLW5vY3Jvc3M9ImV2b2x1dGlvbi1kYXRhc2VydmVyIGNyb3NzIGdpciBk b2Vzbid0IHdvcmsiCitjaGVja3N1bT01NTc1ODM0MGViZDA4NDYxMDI4M2JmMWY2ZmVjNmMwNDI1 NTlhMTg2ZWI4Njk5YzA1NmEyMmRmZWYxZDk3Zjk5CgpGcm9tIGYwMGE0MmNjMDE0MzE1ZmE4NDI5 YzQ1ZDI1YWJmMGUwZWZjOWQyNjIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmll bCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4 OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNTYvMTAyXSBldm9sdXRpb246IHVwZGF0ZSB0 byAzLjM4LjAKCi0tLQogLi4uL2V2b2x1dGlvbi9maWxlcy9kaXNhYmxlUnVudGltZVRlc3RzLmNt YWtlIHwgNDUgLS0tLS0tLS0tLS0tLS0tLS0tLQogc3JjcGtncy9ldm9sdXRpb24vZmlsZXMvaWNv bnYtZGV0ZWN0LmggICAgICAgIHwgIDUgLS0tCiBzcmNwa2dzL2V2b2x1dGlvbi90ZW1wbGF0ZSAg ICAgICAgICAgICAgICAgICAgfCAzNSArKystLS0tLS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwg NyBpbnNlcnRpb25zKCspLCA3OCBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2V2b2x1dGlvbi9maWxlcy9kaXNhYmxlUnVudGltZVRlc3RzLmNtYWtlCiBkZWxldGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9ldm9sdXRpb24vZmlsZXMvaWNvbnYtZGV0ZWN0LmgKCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2V2b2x1dGlvbi9maWxlcy9kaXNhYmxlUnVudGltZVRlc3RzLmNtYWtlIGIv c3JjcGtncy9ldm9sdXRpb24vZmlsZXMvZGlzYWJsZVJ1bnRpbWVUZXN0cy5jbWFrZQpkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGJlNTViNDIwNzAuLjAwMDAwMDAwMDAwCi0tLSBhL3Ny Y3BrZ3MvZXZvbHV0aW9uL2ZpbGVzL2Rpc2FibGVSdW50aW1lVGVzdHMuY21ha2UKKysrIC9kZXYv bnVsbApAQCAtMSw0NSArMCwwIEBACi0jIFRoaXMgZmlsZSB3YXMgZ2VuZXJhdGVkIGJ5IENNYWtl IGJlY2F1c2UgaXQgZGV0ZWN0ZWQgVFJZX1JVTigpIGNvbW1hbmRzCi0jIGluIGNyb3NzY29tcGls aW5nIG1vZGUuIEl0IHdpbGwgYmUgb3ZlcndyaXR0ZW4gYnkgdGhlIG5leHQgQ01ha2UgcnVuLgot IyBDb3B5IGl0IHRvIGEgc2FmZSBsb2NhdGlvbiwgc2V0IHRoZSB2YXJpYWJsZXMgdG8gYXBwcm9w cmlhdGUgdmFsdWVzCi0jIGFuZCB1c2UgaXQgdGhlbiB0byBwcmVzZXQgdGhlIENNYWtlIGNhY2hl ICh1c2luZyAtQykuCi0KLQotIyBfY29ycmVjdF9pY29udl9FWElUQ09ERQotIyAgICBpbmRpY2F0 ZXMgd2hldGhlciB0aGUgZXhlY3V0YWJsZSB3b3VsZCBoYXZlIGJlZW4gYWJsZSB0byBydW4gb24g aXRzCi0jICAgIHRhcmdldCBwbGF0Zm9ybS4gSWYgc28sIHNldCBfY29ycmVjdF9pY29udl9FWElU Q09ERSB0bwotIyAgICB0aGUgZXhpdCBjb2RlIChpbiBtYW55IGNhc2VzIDAgZm9yIHN1Y2Nlc3Mp LCBvdGhlcndpc2UgZW50ZXIgIkZBSUxFRF9UT19SVU4iLgotIyBUaGUgX2NvcnJlY3RfaWNvbnZf Q09NUElMRUQgdmFyaWFibGUgaG9sZHMgdGhlIGJ1aWxkIHJlc3VsdCBmb3IgdGhpcyBUUllfUlVO KCkuCi0jIAotIyBTb3VyY2UgZmlsZSAgIDogL2J1aWxkZGlyL2V2b2x1dGlvbi1kYXRhLXNlcnZl ci0zLjI2LjAvYnVpbGQvQ01ha2VGaWxlcy9DTWFrZVRtcC9zcmMuYwotIyBFeGVjdXRhYmxlICAg IDogL2J1aWxkZGlyL2V2b2x1dGlvbi1kYXRhLXNlcnZlci0zLjI2LjAvYnVpbGQvQ01ha2VGaWxl cy9jbVRDXzMxNWVlLV9jb3JyZWN0X2ljb252X0VYSVRDT0RFCi0jIFJ1biBhcmd1bWVudHMgOiAK LSMgICAgQ2FsbGVkIGZyb206IFsyXQkvdXNyL3NoYXJlL2NtYWtlLTMuOS9Nb2R1bGVzL0NoZWNr Q1NvdXJjZVJ1bnMuY21ha2UKLSMgICAgICAgICAgICAgICAgIFsxXQkvYnVpbGRkaXIvZXZvbHV0 aW9uLWRhdGEtc2VydmVyLTMuMjYuMC9DTWFrZUxpc3RzLnR4dAotCi1zZXQoIF9jb3JyZWN0X2lj b252X0VYSVRDT0RFIAotICAgICAwCi0gICAgIENBQ0hFIElOVEVSTkFMICJSZXN1bHQgZnJvbSBU UllfUlVOIiBGT1JDRSkKLXNldChfY29ycmVjdF9pY29udl9FWElUQ09ERV9fVFJZUlVOX09VVFBV VAotICAgICAwCi0gICAgIENBQ0hFIElOVEVSTkFMICJSZXN1bHQgZnJvbSBUUllfUlVOIiBGT1JD RSkKLQotCi0jIEhBVkVfTEtTVFJGVElNRV9FWElUQ09ERQotIyAgICBpbmRpY2F0ZXMgd2hldGhl ciB0aGUgZXhlY3V0YWJsZSB3b3VsZCBoYXZlIGJlZW4gYWJsZSB0byBydW4gb24gaXRzCi0jICAg IHRhcmdldCBwbGF0Zm9ybS4gSWYgc28sIHNldCBIQVZFX0xLU1RSRlRJTUVfRVhJVENPREUgdG8K LSMgICAgdGhlIGV4aXQgY29kZSAoaW4gbWFueSBjYXNlcyAwIGZvciBzdWNjZXNzKSwgb3RoZXJ3 aXNlIGVudGVyICJGQUlMRURfVE9fUlVOIi4KLSMgVGhlIEhBVkVfTEtTVFJGVElNRV9DT01QSUxF RCB2YXJpYWJsZSBob2xkcyB0aGUgYnVpbGQgcmVzdWx0IGZvciB0aGlzIFRSWV9SVU4oKS4KLSMg Ci0jIFNvdXJjZSBmaWxlICAgOiAvYnVpbGRkaXIvZXZvbHV0aW9uLWRhdGEtc2VydmVyLTMuMjYu MC9idWlsZC9DTWFrZUZpbGVzL0NNYWtlVG1wL3NyYy5jCi0jIEV4ZWN1dGFibGUgICAgOiAvYnVp bGRkaXIvZXZvbHV0aW9uLWRhdGEtc2VydmVyLTMuMjYuMC9idWlsZC9DTWFrZUZpbGVzL2NtVENf ZDI4OTctSEFWRV9MS1NUUkZUSU1FX0VYSVRDT0RFCi0jIFJ1biBhcmd1bWVudHMgOiAKLSMgICAg Q2FsbGVkIGZyb206IFsyXQkvdXNyL3NoYXJlL2NtYWtlLTMuOS9Nb2R1bGVzL0NoZWNrQ1NvdXJj ZVJ1bnMuY21ha2UKLSMgICAgICAgICAgICAgICAgIFsxXQkvYnVpbGRkaXIvZXZvbHV0aW9uLWRh dGEtc2VydmVyLTMuMjYuMC9DTWFrZUxpc3RzLnR4dAotCi1zZXQoIEhBVkVfTEtTVFJGVElNRV9F WElUQ09ERSAKLSAgICAgMAotICAgICBDQUNIRSBJTlRFUk5BTCAiUmVzdWx0IGZyb20gVFJZX1JV TiIgRk9SQ0UpCi1zZXQoIEhBVkVfTEtTVFJGVElNRV9FWElUQ09ERV9fVFJZUlVOX09VVFBVVAot ICAgICAwCi0gICAgIENBQ0hFIElOVEVSTkFMICJSZXN1bHQgZnJvbSBUUllfUlVOIiBGT1JDRSkK LQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ldm9sdXRpb24vZmlsZXMvaWNvbnYtZGV0ZWN0LmggYi9z cmNwa2dzL2V2b2x1dGlvbi9maWxlcy9pY29udi1kZXRlY3QuaApkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggNDZmNDc2ZDViYzkuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZXZvbHV0 aW9uL2ZpbGVzL2ljb252LWRldGVjdC5oCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0v KiBUaGlzIGlzIGFuIGF1dG8tZ2VuZXJhdGVkIGhlYWRlciwgRE8gTk9UIEVESVQhICovCi0KLSNk ZWZpbmUgSUNPTlZfSVNPX0RfRk9STUFUICJpc28tJWQtJWQiCi0jZGVmaW5lIElDT05WX0lTT19T X0ZPUk1BVCAiaXNvLSVkLSVzIgotI2RlZmluZSBJQ09OVl8xMDY0NiAiaXNvLTEwNjQ2IgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9ldm9sdXRpb24vdGVtcGxhdGUgYi9zcmNwa2dzL2V2b2x1dGlvbi90 ZW1wbGF0ZQppbmRleCA1NjBlZDkzZGEwMi4uYWEzZmEzNGJjNGMgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvZXZvbHV0aW9uL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZXZvbHV0aW9uL3RlbXBsYXRlCkBA IC0xLDU0ICsxLDMzIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdldm9sdXRpb24nCiBwa2duYW1l PWV2b2x1dGlvbgotdmVyc2lvbj0zLjM2LjEKK3ZlcnNpb249My4zOC4wCiByZXZpc2lvbj0xCiBi dWlsZF9zdHlsZT1jbWFrZQorYnVpbGRfaGVscGVyPSJnaXIgcWVtdSIKIGNvbmZpZ3VyZV9hcmdz PSItREVOQUJMRV9BVVRPQVI9T0ZGIC1ERU5BQkxFX0xJQkNSWVBUVUk9T0ZGIC1ERU5BQkxFX0dU S1NQRUxMPU9GRgotIC1ERU5BQkxFX1RFWFRfSElHSExJR0hUPU9GRiAtREVOQUJMRV9QU1RfSU1Q T1JUPU9GRgotIC1ERU5BQkxFX1dFQVRIRVI9JCh2b3B0X2lmIGdpciBPTiBPRkYpIgorIC1ERU5B QkxFX1RFWFRfSElHSExJR0hUPU9GRiAtREVOQUJMRV9QU1RfSU1QT1JUPU9GRiAtREVOQUJMRV9X RUFUSEVSPU9OIgogaG9zdG1ha2VkZXBlbmRzPSJnbm9tZS1kb2MtdXRpbHMgZ29iamVjdC1pbnRy b3NwZWN0aW9uIGludGx0b29sIGl0c3Rvb2wKLSBwa2ctY29uZmlnIgorIHBrZy1jb25maWcgZ2xp Yi1kZXZlbCIKIG1ha2VkZXBlbmRzPSJOZXR3b3JrTWFuYWdlci1kZXZlbCBjbHV0dGVyLWd0ay1k ZXZlbCBlbmNoYW50Mi1kZXZlbAogIGV2b2x1dGlvbi1kYXRhLXNlcnZlci1kZXZlbCBnc3BlbGwt ZGV2ZWwgZ3RraHRtbC1kZXZlbCBsaWJjYW5iZXJyYS1kZXZlbAotICQodm9wdF9pZiBnaXIgbGli Z3dlYXRoZXItZGV2ZWwpIGxpYm5vdGlmeS1kZXZlbCB3ZWJraXQyZ3RrLWRldmVsIHl0bmVmLWRl dmVsCisgbGliZ3dlYXRoZXItZGV2ZWwgbGlibm90aWZ5LWRldmVsIHdlYmtpdDJndGstZGV2ZWwg eXRuZWYtZGV2ZWwKICBnbm9tZS1kZXNrdG9wLWRldmVsIgogZGVwZW5kcz0iZ25vbWUta2V5cmlu ZyIKIHNob3J0X2Rlc2M9IkludGVncmF0ZWQgbWFpbCwgYWRkcmVzc2Jvb2sgYW5kIGNhbGVuZGFy aW5nIGZvciBHTk9NRSIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4 Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciwgTEdQTC0zLjAtb3ItbGF0ZXIsIEdQ TC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0V2 b2x1dGlvbiIKLWNoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0dO T01FL2V2b2x1dGlvbi9nbm9tZS0zLTM2L05FV1MiCitjaGFuZ2Vsb2c9Imh0dHBzOi8vcmF3Lmdp dGh1YnVzZXJjb250ZW50LmNvbS9HTk9NRS9ldm9sdXRpb24vZ25vbWUtMy0zOC9ORVdTIgogZGlz dGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9 LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ODczYWNmMWRiZWMzOGU2N2UxNjkwNjQ2NDVh YzNhOWI5YTk0NGJkMmI2MzMxNjFkZjZlNWYwNTcwMGUzNmNiOAorY2hlY2tzdW09ZjgxY2M0MGY1 NGFhMmQwNTlkYTRmM2E5NGViMDkzNjJlODE1MTMzMDZjOTc0YTQxY2E3ODk1YjljODk1N2M1ZAog c2hsaWJfcHJvdmlkZXM9ImxpYmV2b2x1dGlvbi1jYWxlbmRhci5zbyBsaWJldm9sdXRpb24tdXRp bC5zbyBsaWJlbWFpbC1lbmdpbmUuc28KICBsaWJldm9sdXRpb24tbWFpbC5zbyBsaWJldm9sdXRp b24tc2hlbGwuc28iCiAKIGJ1aWxkX29wdGlvbnM9ImdpciIKIGlmIFsgLXogIiRDUk9TU19CVUlM RCIgXTsgdGhlbgogCWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgotZWxzZQotCWhvc3RtYWtl ZGVwZW5kcys9IiBnbGliLWRldmVsIgogZmkKIAotIyBjbWFrZSBwZXJmb21ybXMgMiBjaGVja3Mg dXNpbmcgYmluYXJ5IHJ1bnRpbWUsIGFib3V0IGljb252IGFuZCBzZnJ0aW1lLgotIyBtdXNsICgx LjEuMTYpIGRvZXMgbm90IHN1cHBvcnQgIklTTy0yMDIyLUpQIiBlbmNvZGluZyAoc2VlIGl0cyBy b2FkbWFwKSwKLSMgYWx0aG91Z2ggZXZvbHV0aW9uLWRhdGEtc2VydmVyIGlzIGZpbmUgd2l0aCBt dXNsLgotIyBJZiBjcm9zc2J1aWxkLCBjbWFrZSBsZXQgZGlzYWJsaW5nIHJ1bnRpbWUgY2hlY2tz IHZpYSBzcGVjaWZpYyBkaXJlY3RpdmVzLgotIyB0ZXN0IGljb252LWRldGVjdC5jIGFsc28gZ2Vu ZXJhdGVzIGljb252LWRldGVjdC5oIHRoYXQgaXMgcmVxdWlyZWQgZm9yIGJ1aWxkLgotIyBTbyBj b21wbGV0bHkgZGlzYWJsZSB0ZXN0IGZyb20gaWNvbnYtZGV0ZWN0LmMgKGNtYWtlLnBhdGNoIGZp bGUpIGFuZAotIyB1c2UgYSBjbWFrZSBjYWNoZSBmaWxlIG9uIGNyb3NzYnVpbGQgdG8gZGlzYWJs ZSBzZnJ0aW1lIHJ1bm5pbmcgdGVzdC4KLWlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgotCWNv bmZpZ3VyZV9hcmdzKz0iIC1DIGRpc2FibGVSdW50aW1lVGVzdHMuY21ha2UiCi1maQotCi1wcmVf Y29uZmlndXJlKCkgewotCW1rZGlyIC1wIGJ1aWxkCi0JY3AgJHtGSUxFU0RJUn0vaWNvbnYtZGV0 ZWN0LmggJHt3cmtzcmN9L2J1aWxkLy4KLQlpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KLQkJ Y3AgJHtGSUxFU0RJUn0vZGlzYWJsZVJ1bnRpbWVUZXN0cy5jbWFrZSAke3dya3NyY30vYnVpbGQv LgotCWZpCi19Ci0KIGV2b2x1dGlvbi1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVuZHM9IndlYmtp dDJndGstZGV2ZWwgZ3RrKzMtZGV2ZWwgbGliZ2xpYi1kZXZlbCBldm9sdXRpb24tZGF0YS1zZXJ2 ZXItZGV2ZWwKIAkgZ3RraHRtbC1kZXZlbCAke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZp c2lvbn0iCgpGcm9tIGQwMzMwN2Y4Zjc4YTg4NDI5Zjc4NDlkMzI2MmMyOWY1MTJjZTA0YTIgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9y Z2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwNTcvMTAyXSBldm9sdXRpb24tZXdzOiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIHNyY3Br Z3MvZXZvbHV0aW9uLWV3cy90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBp bnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZXZvbHV0 aW9uLWV3cy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZXZvbHV0aW9uLWV3cy90ZW1wbGF0ZQppbmRleCA0 ZmY4MTE2NDY2Yy4uOThlZTNhNzdmZTcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZXZvbHV0aW9uLWV3 cy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2V2b2x1dGlvbi1ld3MvdGVtcGxhdGUKQEAgLTEsNiAr MSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdldm9sdXRpb24tZXdzJwogcGtnbmFtZT1ldm9s dXRpb24tZXdzCi12ZXJzaW9uPTMuMzYuMQordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1 aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0iLURMSUJFWEVDX0lOU1RBTExfRElSPS91 c3IvbGliL2V2b2x1dGlvbiIKQEAgLTEwLDYgKzEwLDYgQEAgc2hvcnRfZGVzYz0iTVMgRXhjaGFu Z2UgaW50ZWdyYXRpb24gdGhyb3VnaCBFeGNoYW5nZSBXZWIgU2VydmljZXMiCiBtYWludGFpbmVy PSJQZXRlciBLdWNoYXIgPG1hc2FqQGdteC5jb20+IgogbGljZW5zZT0iTEdQTC0yLjEtb3ItbGF0 ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0V2b2x1dGlvbiIKLWNo YW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0dOT01FL2V2b2x1dGlv bi1ld3MvZ25vbWUtMy0zNi9ORVdTIgorY2hhbmdlbG9nPSJodHRwczovL3Jhdy5naXRodWJ1c2Vy Y29udGVudC5jb20vR05PTUUvZXZvbHV0aW9uLWV3cy9nbm9tZS0zLTM4L05FV1MiCiBkaXN0Zmls ZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2 ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1kMDg4M2M3ZDIyNzgyN2NjNWM0NDY4YjdlMzFhM2Vl MzcwYmNkN2Q0MWE0ZGJiOTUwYWI1ZGIzNmM5NTUxYWMxCitjaGVja3N1bT01OWJmNTljYWJiOWQx OTNkOTEwNzY5NzJkZDhhNmU3MWViZjM0YzdiZmFkMDFjZDY5NTQyOTczNDdhMzA3N2IzCgpGcm9t IDU4ODY3OTA0ZjQyZWU1YzY4ODdjNWExNWE5NzUyNDJiNmMwY2QxZTIgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRl OiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNTgvMTAy XSBweXRob24zLWF0c3BpOiB1cGRhdGUgdG8gMi4zOC4wCgotLS0KIHNyY3BrZ3MvcHl0aG9uMy1h dHNwaS90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCsp LCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcHl0aG9uMy1hdHNwaS90ZW1w bGF0ZSBiL3NyY3BrZ3MvcHl0aG9uMy1hdHNwaS90ZW1wbGF0ZQppbmRleCBhMzNhMzc0ZmUxOC4u MjNmYTk4OTM0ZTUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcHl0aG9uMy1hdHNwaS90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL3B5dGhvbjMtYXRzcGkvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdweXRob24zLWF0c3BpJwogcGtnbmFtZT1weXRob24zLWF0c3BpCi12 ZXJzaW9uPTIuMzIuMQotcmV2aXNpb249NAordmVyc2lvbj0yLjM4LjAKK3JldmlzaW9uPTEKIGFy Y2hzPW5vYXJjaAogd3Jrc3JjPSJweWF0c3BpLSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1nbnUt Y29uZmlndXJlCkBAIC0xMyw0ICsxMyw0IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0 b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9 Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9weWF0c3BpMiIKIGRpc3RmaWxlcz0iJHtH Tk9NRV9TSVRFfS9weWF0c3BpLyR7dmVyc2lvbiUuKn0vcHlhdHNwaS0ke3ZlcnNpb259LnRhci54 eiIKLWNoZWNrc3VtPTg0OTU0YTViYmVhY2M4MzY0M2YwNTc3OGQ4YmVhZmNhYjgyMDhlMTFiMzli MjQ2MzdiNGM0ZGQxZjg2MjAzODkKK2NoZWNrc3VtPWZmODA5MzEyZmQwYzJmNjFlMTkxYzE4MWEx YTYzOGEzMGI1NzliOTFiNjgyY2ZiNWEwNTUzNWE1NTI2NWI0M2QKCkZyb20gNTVmMDFhYjE0OTJm Y2Q4ZWU4Y2VjYWMxYTViNGI4ODUxYzY5Njc3YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVn IDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA1OS8xMDJdIHB5dGhvbi1hdHNw aTogdXBkYXRlIHRvIDIuMzguMAoKLS0tCiBzcmNwa2dzL3B5dGhvbi1hdHNwaS90ZW1wbGF0ZSB8 IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcHl0aG9uLWF0c3BpL3RlbXBsYXRlIGIvc3JjcGtncy9w eXRob24tYXRzcGkvdGVtcGxhdGUKaW5kZXggMDE0MWQ5N2Y4NWQuLjc1MDVjMzJhZDYwIDEwMDY0 NAotLS0gYS9zcmNwa2dzL3B5dGhvbi1hdHNwaS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3B5dGhv bi1hdHNwaS90ZW1wbGF0ZQpAQCAtMSw4ICsxLDggQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3B5 dGhvbi1hdHNwaScKICMgS2VlcCBweXRob24zLWF0c3BpIGluIHN5bmMKIHBrZ25hbWU9cHl0aG9u LWF0c3BpCi12ZXJzaW9uPTIuMzIuMQotcmV2aXNpb249NAordmVyc2lvbj0yLjM4LjAKK3Jldmlz aW9uPTEKIGFyY2hzPW5vYXJjaAogd3Jrc3JjPSJweWF0c3BpLSR7dmVyc2lvbn0iCiBidWlsZF9z dHlsZT1nbnUtY29uZmlndXJlCkBAIC0xNCw0ICsxNCw0IEBAIG1haW50YWluZXI9IkVubm8gQm9s YW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgog aG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9weWF0c3BpMiIKIGRpc3Rm aWxlcz0iJHtHTk9NRV9TSVRFfS9weWF0c3BpLyR7dmVyc2lvbiUuKn0vcHlhdHNwaS0ke3ZlcnNp b259LnRhci54eiIKLWNoZWNrc3VtPTg0OTU0YTViYmVhY2M4MzY0M2YwNTc3OGQ4YmVhZmNhYjgy MDhlMTFiMzliMjQ2MzdiNGM0ZGQxZjg2MjAzODkKK2NoZWNrc3VtPWZmODA5MzEyZmQwYzJmNjFl MTkxYzE4MWExYTYzOGEzMGI1NzliOTFiNjgyY2ZiNWEwNTUzNWE1NTI2NWI0M2QKCkZyb20gNGZj M2ZiYjM1ZWNkZTBlNzE4NzlkMjQ0ZGYzNDI5NDBkMGI2ZWFiNyBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRo dSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA2MC8xMDJdIG9y Y2E6IHVwZGF0ZSB0byAzLjM4LjAsIGRyb3Agbm9hcmNoCgotLS0KIHNyY3BrZ3Mvb3JjYS90ZW1w bGF0ZSB8IDUgKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDMgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcmNhL3RlbXBsYXRlIGIvc3JjcGtncy9vcmNh L3RlbXBsYXRlCmluZGV4IGY3MDIwMmU2ZDc2Li4zOGU5MjM0NmI4NiAxMDA2NDQKLS0tIGEvc3Jj cGtncy9vcmNhL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvb3JjYS90ZW1wbGF0ZQpAQCAtMSw4ICsx LDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ29yY2EnCiBwa2duYW1lPW9yY2EKLXZlcnNpb249 My4zNi4xCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQotYXJjaHM9bm9hcmNoCiBidWlsZF9z dHlsZT1nbnUtY29uZmlndXJlCiBob3N0bWFrZWRlcGVuZHM9ImludGx0b29sIGl0c3Rvb2wgcGtn LWNvbmZpZyIKIG1ha2VkZXBlbmRzPSJhdC1zcGkyLWF0ay1kZXZlbCBsaWJsb3Vpcy1kZXZlbCBw eXRob24zLWdvYmplY3QtZGV2ZWwiCkBAIC0xMyw3ICsxMiw3IEBAIG1haW50YWluZXI9IkVubm8g Qm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVy IgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvT3JjYSIKIGRpc3Rm aWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0k e3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWMxYWM2NDhiNmJlMzE0ODhjMjZmZjk1OTExNDI4 Nzg2OWRmOWNlM2NhMjE5OTllNDBkZWQ4Nzc0MWM5ODgzMWYKK2NoZWNrc3VtPTFjMzI3OWQ3OTg5 OGRiMTBhMTA1YmNiNzA1YjVhNDA0MmIxYjUxYTljMDU3YTZiZDBmZmQ2NWRhYzIzNTZmZWUKIAog aWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJaG9zdG1ha2VkZXBlbmRzKz0iIHB5dGhvbjMt Z29iamVjdC1kZXZlbCIKCkZyb20gN2YxMDk5YWZmYzc5ZDVlY2ZhMDcyNzQ1MmM1ZjlmMGU4YjMx MDMzYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVs QG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3Vi amVjdDogW1BBVENIIDA2MS8xMDJdIGdub21lLXdlYXRoZXI6IGJ1bXAKCi0tLQogc3JjcGtncy9n bm9tZS13ZWF0aGVyL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9u KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS13ZWF0aGVyL3Rl bXBsYXRlIGIvc3JjcGtncy9nbm9tZS13ZWF0aGVyL3RlbXBsYXRlCmluZGV4IGQzMGJlOWJmMTky Li5jMDI4ZTQ2YmE2NSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS13ZWF0aGVyL3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvZ25vbWUtd2VhdGhlci90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLXdlYXRoZXInCiBwa2duYW1lPWdub21lLXdlYXRoZXIK IHZlcnNpb249My4zNi4xCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9oZWxwZXI9Imdp ciIKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgcGtnLWNvbmZp ZyBpdHN0b29sIGdsaWItZGV2ZWwgZ2pzIgoKRnJvbSA5NDg1ZjUxNGE1YWQ5Nzk5MDE4NzY1ZjA4 YzlhZGQ4NTM0ODA2NzM5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29s ZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODow OCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDYyLzEwMl0gdnRlMzogdXBkYXRlIHRvIDAuNjIuMAoK LS0tCiBzcmNwa2dzL3Z0ZTMvdGVtcGxhdGUgfCAxOSArKysrKysrKy0tLS0tLS0tLS0tCiAxIGZp bGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmNwa2dzL3Z0ZTMvdGVtcGxhdGUgYi9zcmNwa2dzL3Z0ZTMvdGVtcGxhdGUKaW5kZXggNjEx NmIzY2M2MjEuLjQxZjlmNGU3ZTlhIDEwMDY0NAotLS0gYS9zcmNwa2dzL3Z0ZTMvdGVtcGxhdGUK KysrIGIvc3JjcGtncy92dGUzL3RlbXBsYXRlCkBAIC0xLDI5ICsxLDI4IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICd2dGUzJwogcGtnbmFtZT12dGUzCi12ZXJzaW9uPTAuNjAuMwordmVyc2lvbj0w LjYyLjAKIHJldmlzaW9uPTEKIHdya3NyYz0idnRlLSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1t ZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCi1jb25maWd1cmVfYXJncz0iLURiX25kZWJ1Zz1mYWxz ZSAtRGdpcj0kKHZvcHRfaWYgZ2lyIHRydWUgZmFsc2UpCi0gLUR2YXBpPSQodm9wdF9pZiB2YWxh IHRydWUgZmFsc2UpIC1EYl9sdG89ZmFsc2UgLURfc3lzdGVtZD1mYWxzZSIKK2NvbmZpZ3VyZV9h cmdzPSItRGJfbmRlYnVnPWZhbHNlIC1EYl9sdG89ZmFsc2UgLURfc3lzdGVtZD1mYWxzZQorICQo dm9wdF9ib29sIGdpciBnaXIpICQodm9wdF9ib29sIGdpciB2YXBpKSIKIGhvc3RtYWtlZGVwZW5k cz0iZ2xpYi1kZXZlbCBnbm9tZS1kb2MtdXRpbHMgZ3BlcmYgaW50bHRvb2wgcGtnLWNvbmZpZwot ICQodm9wdF9pZiB2YWxhIHZhbGEpIgotbWFrZWRlcGVuZHM9ImdudXRscy1kZXZlbCBndGsrMy1k ZXZlbCBwY3JlMi1kZXZlbCAkKHZvcHRfaWYgdmFsYSB2YWxhLWRldmVsKSIKLWRlcGVuZHM9InZ0 ZSIKKyAkKHZvcHRfaWYgZ2lyIHZhbGEpIgorbWFrZWRlcGVuZHM9ImdudXRscy1kZXZlbCBndGsr My1kZXZlbCBwY3JlMi1kZXZlbCAkKHZvcHRfaWYgZ2lyIHZhbGEtZGV2ZWwpIgogc2hvcnRfZGVz Yz0iVGVybWluYWwgd2lkZ2V0IHdpdGggaW1wcm92ZWQgYWNjZXNzaWJpbGl0eSBhbmQgSTE4TiBz dXBwb3J0IgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIK IGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyLCBMR1BMLTMuMC1v ci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvVGVybWluYWwv VlRFIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L3Z0ZS8ke3ZlcnNpb24lLip9L3Z0ZS0ke3Zl cnNpb259LnRhci54eiIKLWNoZWNrc3VtPWZlYjc2ZTExODFhMzU3ZDg2MTEyZDQ0N2EwOGQxMjdl MjA4MTQzOGRmNzZlY2U4MzI0M2IxODYwOWRkOTgyMmEKK2NoZWNrc3VtPTRkMmQyNDZlZDQ3ZjA4 Y2M3M2Y2NDcxYWE4ZTlmMzc4OTk4YjdkMGY3ZGNiMGM0MzNmMjlkYTU4MzlkYmIwMTYKIAogIyBT dXBwcmVzcyB3YXJuaW5ncyBhcyBlcnJvcnMgZm9yIE5VTEwgZm9ybWF0IHN0cmluZ3MgKG11c2wg bGliYykKIENYWEZMQUdTPSItV25vLWVycm9yPWZvcm1hdD0iCiAKICMgUGFja2FnZSBidWlsZCBv cHRpb25zCi1idWlsZF9vcHRpb25zPSJnaXIgdmFsYSIKLWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0i Z2lyIHZhbGEiCitidWlsZF9vcHRpb25zPSJnaXIiCitidWlsZF9vcHRpb25zX2RlZmF1bHQ9Imdp ciIKIAogcHJlX2J1aWxkKCkgewogCWV4cG9ydCBHSVJfRVhUUkFfTElCU19QQVRIPSIke3dya3Ny Y30vc3JjLy5saWJzIgpAQCAtMzgsOCArMzcsNiBAQCB2dGUzLWRldmVsX3BhY2thZ2UoKSB7CiAJ CXZtb3ZlICJ1c3IvbGliLyouc28iCiAJCWlmIFsgIiRidWlsZF9vcHRpb25fZ2lyIiBdOyB0aGVu CiAJCQl2bW92ZSB1c3Ivc2hhcmUvZ2lyLTEuMAotCQlmaQotCQlpZiBbICIkYnVpbGRfb3B0aW9u X3ZhbGEiIF07IHRoZW4KIAkJCXZtb3ZlIHVzci9zaGFyZS92YWxhCiAJCWZpCiAJfQoKRnJvbSBi M2FiM2M1YmMzNjg2NjUzYzI4ZWE5NjBkMDRkYjhjMjM2YjdhYjRlIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTog VGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDYzLzEwMl0g Z25vbWUtdGVybWluYWw6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9nbm9tZS10ZXJt aW5hbC90ZW1wbGF0ZSB8IDggKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMo KyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS10ZXJtaW5hbC90 ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtdGVybWluYWwvdGVtcGxhdGUKaW5kZXggYmYzZDViY2Rk NDIuLjEyNmJhNTk1NmZkIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXRlcm1pbmFsL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtdGVybWluYWwvdGVtcGxhdGUKQEAgLTEsMTEgKzEsMTEg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLXRlcm1pbmFsJwogcGtnbmFtZT1nbm9tZS10 ZXJtaW5hbAotdmVyc2lvbj0zLjM2LjEuMQordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1 aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGNvbmZpZ3VyZV9hcmdzPSItLWRpc2FibGUtc3RhdGlj IC0td2l0aC1uYXV0aWx1cy1leHRlbnNpb24iCiBob3N0bWFrZWRlcGVuZHM9ImFwcGRhdGEtdG9v bHMgZ2xpYi1kZXZlbCBpbnRsdG9vbCBpdHN0b29sCi0gcGtnLWNvbmZpZyIKKyBwa2ctY29uZmln IGRvY2Jvb2steHNsIgogbWFrZWRlcGVuZHM9ImRjb25mLWRldmVsIGdub21lLXNoZWxsIGdzZXR0 aW5ncy1kZXNrdG9wLXNjaGVtYXMtZGV2ZWwKICBuYXV0aWx1cy1kZXZlbCB2dGUzLWRldmVsIgog ZGVwZW5kcz0iZGVza3RvcC1maWxlLXV0aWxzIgpAQCAtMTMsOCArMTMsOCBAQCBzaG9ydF9kZXNj PSJHTk9NRSB0ZXJtaW5hbCBlbXVsYXRvciBhcHBsaWNhdGlvbiIKIG1haW50YWluZXI9IkVubm8g Qm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVy LCBHRkRMLTEuMy1vbmx5IgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9U ZXJtaW5hbCIKLWRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbjow OjR9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1mM2Q3MDhhMWU3NmQ3 N2MxYzg1YjEyNmY2ZTAwMzIyMGExNWQ0YTQ2YTUwZmQ4MDcwZTFhM2FhYmU2NzhhMzc2CitkaXN0 ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0t JHt2ZXJzaW9ufS50YXIueHoiCitjaGVja3N1bT0wYTBmYzdhOGIzODNjNmZmZDYxNDY5YmUxZGVh NWJhNjNjZmZhZDgxMjkyMTc4MGU3ZmFkNDBjMmUyYWU1NGY1CiBsaWIzMmRpc2FibGVkPXllcwog CiBpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KCkZyb20gMTZhZWU4OGQxYmJjNmQ4MTUxZDJm NjA5YzA4Y2E3YzE1MDAwODZjYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVs IEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6 NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA2NC8xMDJdIGdub21lLWdldHRpbmctc3RhcnRl ZC1kb2NzOiB1cGRhdGUgdG8gMy4zNi4yCgotLS0KIHNyY3BrZ3MvZ25vbWUtZ2V0dGluZy1zdGFy dGVkLWRvY3MvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMo KyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1nZXR0aW5nLXN0 YXJ0ZWQtZG9jcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtZ2V0dGluZy1zdGFydGVkLWRvY3Mv dGVtcGxhdGUKaW5kZXggNWJlYzkzNDkwYmEuLmJlZDliNjk2MTYyIDEwMDY0NAotLS0gYS9zcmNw a2dzL2dub21lLWdldHRpbmctc3RhcnRlZC1kb2NzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25v bWUtZ2V0dGluZy1zdGFydGVkLWRvY3MvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICdnbm9tZS1nZXR0aW5nLXN0YXJ0ZWQtZG9jcycKIHBrZ25hbWU9Z25vbWUt Z2V0dGluZy1zdGFydGVkLWRvY3MKLXZlcnNpb249My4zNC4wCit2ZXJzaW9uPTMuMzYuMgogcmV2 aXNpb249MQogYXJjaHM9bm9hcmNoCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCkBAIC0xMSw0 ICsxMSw0IEBAIGxpY2Vuc2U9IkNDLUJZLVNBLTMuMCIKIGhvbWVwYWdlPSJodHRwczovL2dpdGxh Yi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtZ2V0dGluZy1zdGFydGVkLWRvY3MiCiAjY2hhbmdlbG9n PSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtZ2V0dGluZy1zdGFydGVkLWRv Y3MvcmF3L21hc3Rlci9ORVdTIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0v JHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09Zjcw Y2UyY2EyM2FkNzg2MjE1ZjNjOTJlYzg1NzgzZTNhYWJlZDA3ZTRmNzg3MDBmYTI3ZjliMmNmNzZl MDNkYgorY2hlY2tzdW09MDQ5NGI4OTEzYTk0NmI2NDUwNTM2ZTEyMGMxNTRhYmQyOTIzOGViYmEy ZjUyNzM0NTkyYjFmNjQ1ZTUyMWRjNgoKRnJvbSAzYTI3ZGEzODA3MDk1NzMxYzYwODM2OWYzNzRi YzUxYmUyNjQ1MGRiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNh IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggMDY1LzEwMl0gZ25vbWUtdXNlci1kb2NzOiB1cGRhdGUgdG8g My4zOC4wLCBkcm9wIG5vYXJjaAoKLS0tCiBzcmNwa2dzL2dub21lLXVzZXItZG9jcy90ZW1wbGF0 ZSB8IDUgKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS11c2VyLWRvY3MvdGVtcGxhdGUgYi9zcmNw a2dzL2dub21lLXVzZXItZG9jcy90ZW1wbGF0ZQppbmRleCA0Y2I1NTM5NmUzNy4uZjk5NDJlMjQ4 NDMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtdXNlci1kb2NzL3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvZ25vbWUtdXNlci1kb2NzL3RlbXBsYXRlCkBAIC0xLDggKzEsNyBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnZ25vbWUtdXNlci1kb2NzJwogcGtnbmFtZT1nbm9tZS11c2VyLWRvY3MKLXZl cnNpb249My4zNC4wCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQotYXJjaHM9bm9hcmNoCiBi dWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgcGtnLWNv bmZpZyBpdHN0b29sIGdub21lLWRvYy11dGlscyIKIG1ha2VkZXBlbmRzPSJ5ZWxwIgpAQCAtMTMs NCArMTIsNCBAQCBsaWNlbnNlPSJDQy1CWS0zLjAiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRodWIu Y29tL0dOT01FL2dub21lLXVzZXItZG9jcyIKICNjaGFuZ2Vsb2c9Imh0dHBzOi8vcmF3LmdpdGh1 YnVzZXJjb250ZW50LmNvbS9HTk9NRS9nbm9tZS11c2VyLWRvY3MvbWFzdGVyL05FV1MiCiBkaXN0 ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0t JHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT04Zjk5MDdmZjE1ZmZmOTdkYTc1ZWNlNjQ1Y2M4 Njc2NjcwM2FjNTRkNzE2ZDI1NTYzYmE2N2ZmZWQxYWYyNGVkCitjaGVja3N1bT0zOGQzZGI1YjVk YzU5MTI4MTJhMmM2Y2IyOTc2NWJmYjM5MjQyY2VkY2Q3ZWUzNDdkZjk4ZmNhNzc3ZGNlZThhCgpG cm9tIDhhZmFhNzg4OTQyYmQ2MGM3MjNmZjQ4Y2E0NWM1NDkwNGU1NjA0MmYgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpE YXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNjYv MTAyXSBnbm9tZS1lcHViLXRodW1ibmFpbGVyOiB1cGRhdGUgdG8gMS42CgotLS0KIHNyY3BrZ3Mv Z25vbWUtZXB1Yi10aHVtYm5haWxlci90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQs IDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2du b21lLWVwdWItdGh1bWJuYWlsZXIvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWVwdWItdGh1bWJu YWlsZXIvdGVtcGxhdGUKaW5kZXggYjE2ZTcwNTQ3NWYuLmM2ZTFjMDJiOWQzIDEwMDY0NAotLS0g YS9zcmNwa2dzL2dub21lLWVwdWItdGh1bWJuYWlsZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9n bm9tZS1lcHViLXRodW1ibmFpbGVyL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnZ25vbWUtZXB1Yi10aHVtYm5haWxlcicKIHBrZ25hbWU9Z25vbWUtZXB1Yi10 aHVtYm5haWxlcgotdmVyc2lvbj0xLjUKK3ZlcnNpb249MS42CiByZXZpc2lvbj0xCiBidWlsZF9z dHlsZT1nbnUtY29uZmlndXJlCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWciCkBAIC0xMCw0 ICsxMCw0IEBAIG1haW50YWluZXI9IkFsaWYgUmFjaG1hd2FkaSA8YXJjaEBzdWJvc2l0by5jb20+ IgogbGljZW5zZT0iR1BMLTMiCiBob21lcGFnZT0iaHR0cHM6Ly9naXQuZ25vbWUub3JnL2Jyb3dz ZS9nbm9tZS1lcHViLXRodW1ibmFpbGVyIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtn bmFtZX0vJHt2ZXJzaW9ufS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09 MzA4MjEwZjU4MDAyMTlmNjRjYWU0ODI4ZTU5YmI4ZTZlNGM1M2I4ODgwNDhjZjQ4NzIyMWFlYjQz MzdkNzkxYQorY2hlY2tzdW09YjUwMjQyMGQ5YjAyZWEwYjBmYzc5ODZlZjVhMDkxYTEyYjIyODZi ZTE0ZmVkOWU0NzU5NGZlOWZhMGM1ODk4ZQoKRnJvbSBmYWE5NDI0MGVhODQ3MzZiOGI0MjA2NTkw YWFkZTIxYjMyNjcyMTE4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29s ZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODow OCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDY3LzEwMl0gZ25vbWUtYm9va3M6IGJ1bXAKCi0tLQog c3JjcGtncy9nbm9tZS1ib29rcy90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGlu c2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtYm9v a3MvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWJvb2tzL3RlbXBsYXRlCmluZGV4IDExNGI5ZTAz NGMyLi4xZDQ5NzRmZTE4MyAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1ib29rcy90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL2dub21lLWJvb2tzL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtYm9va3MnCiBwa2duYW1lPWdub21lLWJvb2tzCiB2ZXJz aW9uPTMuMzQuMAotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfaGVscGVyPSJnaXIiCiBi dWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIHZhbGEgZ2xpYi1k ZXZlbCBsaWJyc3ZnIGRvY2Jvb2steHNsIGxpYnhzbHQKCkZyb20gMWJmYzJmNmJlZTkyN2U2N2Yz ZTJkODM5OGY4OGQ1Zjk2MmY3ZmNkNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFu aWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAg MTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA2OC8xMDJdIGdub21lLWNoYXJhY3RlcnM6 IGJ1bXAKCi0tLQogc3JjcGtncy9nbm9tZS1jaGFyYWN0ZXJzL3RlbXBsYXRlIHwgMiArLQogMSBm aWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEv c3JjcGtncy9nbm9tZS1jaGFyYWN0ZXJzL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1jaGFyYWN0 ZXJzL3RlbXBsYXRlCmluZGV4IDg5ODY4ZjRiYzA0Li5hYzI2NGU1MWE2YSAxMDA2NDQKLS0tIGEv c3JjcGtncy9nbm9tZS1jaGFyYWN0ZXJzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtY2hh cmFjdGVycy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2du b21lLWNoYXJhY3RlcnMnCiBwa2duYW1lPWdub21lLWNoYXJhY3RlcnMKIHZlcnNpb249My4zNC4w Ci1yZXZpc2lvbj0yCityZXZpc2lvbj0zCiBidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVy PSJnaXIiCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgZ2pzIGdsaWItZGV2ZWwgaXRzdG9vbCBw a2ctY29uZmlnIgoKRnJvbSAxODk4NjM4MjQxZmFiYzIxMDM1YWI3ZTk2YTZlYzQ0ZTFiNjQyZTdi IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0 YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggMDY5LzEwMl0gZ25vbWUtZG9jdW1lbnRzOiBidW1wCgotLS0KIHNyY3BrZ3MvZ25v bWUtZG9jdW1lbnRzL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9u KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1kb2N1bWVudHMv dGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWRvY3VtZW50cy90ZW1wbGF0ZQppbmRleCA5N2I1M2Q2 MzVkNy4uN2U0NWI4MjVlNzEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtZG9jdW1lbnRzL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtZG9jdW1lbnRzL3RlbXBsYXRlCkBAIC0xLDcgKzEs NyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtZG9jdW1lbnRzJwogcGtnbmFtZT1nbm9t ZS1kb2N1bWVudHMKIHZlcnNpb249My4zNC4wCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWls ZF9oZWxwZXI9ImdpciIKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9ImRvY2Jv b2steHNsIGdldHRleHQgaXRzdG9vbCBwa2ctY29uZmlnIGdsaWItZGV2ZWwgbGlieHNsdCBnZGst cGl4YnVmCgpGcm9tIDFhZjg0YWFiNDI0ZmMxZjM4ZmNjZDljOWJiY2JlNWY5NDEwMmIzNDUgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9y Z2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwNzAvMTAyXSBnbm9tZS1mb250LXZpZXdlcjogYnVtcAoKLS0tCiBzcmNwa2dzL2dub21l LWZvbnQtdmlld2VyL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9u KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1mb250LXZpZXdl ci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtZm9udC12aWV3ZXIvdGVtcGxhdGUKaW5kZXggNmQw MzUzNjZkNDQuLmY3NGZjYmNiMDAwIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWZvbnQtdmll d2VyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtZm9udC12aWV3ZXIvdGVtcGxhdGUKQEAg LTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1mb250LXZpZXdlcicKIHBr Z25hbWU9Z25vbWUtZm9udC12aWV3ZXIKIHZlcnNpb249My4zNC4wCi1yZXZpc2lvbj0xCityZXZp c2lvbj0yCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGds aWItZGV2ZWwiCiBtYWtlZGVwZW5kcz0iZm9udGNvbmZpZy1kZXZlbCBmcmVldHlwZS1kZXZlbCBn bGliLWRldmVsIGd0ayszLWRldmVsCgpGcm9tIGI1ZTgyOTk5ZjdkZWEyYmY3MWM0MDliMWVmYjRk NzkzYmRjMTZhYWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2Eg PGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICsw MjAwClN1YmplY3Q6IFtQQVRDSCAwNzEvMTAyXSB0b3RlbTogdXBkYXRlIHRvIDMuMzguMAoKLS0t CiBzcmNwa2dzL3RvdGVtL3RlbXBsYXRlIHwgMTYgKysrKysrKysrLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNw a2dzL3RvdGVtL3RlbXBsYXRlIGIvc3JjcGtncy90b3RlbS90ZW1wbGF0ZQppbmRleCA4MTUyMmIz MTQ4OC4uNTZmYjE1MjcwZmIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvdG90ZW0vdGVtcGxhdGUKKysr IGIvc3JjcGtncy90b3RlbS90ZW1wbGF0ZQpAQCAtMSwxNCArMSwxNCBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAndG90ZW0nCiBwa2duYW1lPXRvdGVtCi12ZXJzaW9uPTMuMzQuMQordmVyc2lvbj0z LjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIK IGNvbmZpZ3VyZV9hcmdzPSItRGVuYWJsZS1weXRob249bm8gLURlbmFibGUtbmF1dGlsdXM9eWVz CiAgLURlbmFibGUtaW50cm9zcGVjdGlvbj0kKHZvcHRfaWYgZ2lyIHllcyBubykKLSAtRGVuYWJs ZS12YWxhPSQodm9wdF9pZiB2YWxhIHllcyBubykiCisgLURlbmFibGUtdmFsYT0kKHZvcHRfaWYg Z2lyIHllcyBubykiCiBob3N0bWFrZWRlcGVuZHM9Imdub21lLWRvYy11dGlscyBpbnRsdG9vbCBp dHN0b29sIHBrZy1jb25maWcKLSAkKHZvcHRfaWYgdmFsYSB2YWxhKSBnc3RyZWFtZXIxIGdzdC1w bHVnaW5zLWJhc2UxIGdzdC1wbHVnaW5zLWdvb2QxCisgJCh2b3B0X2lmIGdpciB2YWxhKSBnc3Ry ZWFtZXIxIGdzdC1wbHVnaW5zLWJhc2UxIGdzdC1wbHVnaW5zLWdvb2QxCiAgZ2xpYi1kZXZlbCIK ICMgWFhYIG1pc3NpbmcgbGlyYyBwbHVnaW4uCiBtYWtlZGVwZW5kcz0iY2x1dHRlci1nc3QzLWRl dmVsIGNsdXR0ZXItZ3RrLWRldmVsIGRidXMtZ2xpYi1kZXZlbApAQCAtMjEsMTYgKzIxLDE4IEBA IG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNl PSJMR1BMLTIuMC1vci1sYXRlciwgR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczov L3dpa2kuZ25vbWUub3JnL0FwcHMvVmlkZW9zIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7 cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hl Y2tzdW09NmJmODlhYjA5NmRmYzU2NGYyNjA5NzZlNDg0MTY1ZjA5YmQ4ODY0MzRkMTg0NDEwZDJm OTQ0YmZiYTYxMWEwOQorY2hlY2tzdW09YTgyOWYyYjVhYTA0MzVhYTQzMTgxNjE1MzE5M2Q1NTQ3 ZmFkZTllYjhkNDg5ZjU2YmUyMmFmYmU2NTFjNDMyZgogCiAjIFhYWCB4dWxydW5uZXIgcGx1Z2lu LgogIyBYWFggcmVlbmFibGUgcHl0aG9uIHBsdWdpbiBpZiBweWxpbnQgcGtnIGV4aXN0cy4KICNw eWNvbXBpbGVfZGlycz0idXNyL2xpYi90b3RlbS9wbHVnaW5zIgogCi1kaXNhYmxlX3BhcmFsbGVs X2J1aWxkPXllcworZG9fY2hlY2soKSB7CisJOgorfQogCi1idWlsZF9vcHRpb25zPSJnaXIgdmFs YSIKLWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIHZhbGEiCitidWlsZF9vcHRpb25zPSJnaXIi CitidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKIAogbGlidG90ZW1fcGFja2FnZSgpIHsKIAlz aG9ydF9kZXNjKz0iIC0gcnVudGltZSBsaWJyYXJ5IgoKRnJvbSA0OThjNTRmOThjZjE4NDFhN2Ux NTU0ZWMwMTY3MWEyMGE5OGU3YzJlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5p ZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAx ODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDcyLzEwMl0gZ25vbWUtc2NyZWVuc2F2ZXI6 IGJ1bXAgKyBmaXggYnVpbGQKCi0tLQogc3JjcGtncy9nbm9tZS1zY3JlZW5zYXZlci9wYXRjaGVz L2J1aWxkLnBhdGNoIHwgMTIgKysrKysrKysrKysrCiBzcmNwa2dzL2dub21lLXNjcmVlbnNhdmVy L3RlbXBsYXRlICAgICAgICAgICAgfCAgMiArLQogMiBmaWxlcyBjaGFuZ2VkLCAxMyBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbm9tZS1z Y3JlZW5zYXZlci9wYXRjaGVzL2J1aWxkLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9t ZS1zY3JlZW5zYXZlci9wYXRjaGVzL2J1aWxkLnBhdGNoIGIvc3JjcGtncy9nbm9tZS1zY3JlZW5z YXZlci9wYXRjaGVzL2J1aWxkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi42ZGNkYmU3ZGQ3ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZ25vbWUtc2Ny ZWVuc2F2ZXIvcGF0Y2hlcy9idWlsZC5wYXRjaApAQCAtMCwwICsxLDEyIEBACistLS0gc3JjL2dz LW1hbmFnZXIuYworKysrIHNyYy9ncy1tYW5hZ2VyLmMKK0BAIC04MjAsOCArODIwLDcgQEAgYXBw bHlfYmFja2dyb3VuZF90b193aW5kb3cgKEdTTWFuYWdlciAqbWFuYWdlciwKKyAgICAgICAgIHN1 cmZhY2UgPSBnbm9tZV9iZ19jcmVhdGVfc3VyZmFjZSAobWFuYWdlci0+cHJpdi0+YmcsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdka193aW5kb3csCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQsCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFKTsKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0KTsKKyAgICAgICAgIGdzX3dpbmRvd19z ZXRfYmFja2dyb3VuZF9zdXJmYWNlICh3aW5kb3csIHN1cmZhY2UpOworICAgICAgICAgY2Fpcm9f c3VyZmFjZV9kZXN0cm95IChzdXJmYWNlKTsKKyB9CmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21l LXNjcmVlbnNhdmVyL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1zY3JlZW5zYXZlci90ZW1wbGF0 ZQppbmRleCAzNjNmY2YxMmUxMC4uYzNhNzBjZmVmN2MgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25v bWUtc2NyZWVuc2F2ZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1zY3JlZW5zYXZlci90 ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLXNjcmVl bnNhdmVyJwogcGtnbmFtZT1nbm9tZS1zY3JlZW5zYXZlcgogdmVyc2lvbj0zLjYuMQotcmV2aXNp b249MgorcmV2aXNpb249MwogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogY29uZmlndXJlX2Fy Z3M9Ii0tZW5hYmxlLWNvbXBpbGUtd2FybmluZ3M9bWluaW11bSIKIGhvc3RtYWtlZGVwZW5kcz0i cGtnLWNvbmZpZyBhdXRvbWFrZSBpbnRsdG9vbCBnbGliLWRldmVsIgoKRnJvbSA3YTRmZWUxZjQ2 MWE0YzYwNTExN2FjNWY3NWFjNzcyZGU0NGYyY2ZkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBB dWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDczLzEwMl0gZ25vbWUtY2xv Y2tzOiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIHNyY3BrZ3MvZ25vbWUtY2xvY2tzL3RlbXBsYXRl IHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1jbG9ja3MvdGVtcGxhdGUgYi9zcmNwa2dz L2dub21lLWNsb2Nrcy90ZW1wbGF0ZQppbmRleCAzZTA0OWI0MmZiMS4uNzJmNzFmOTI2OGMgMTAw NjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtY2xvY2tzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25v bWUtY2xvY2tzL3RlbXBsYXRlCkBAIC0xLDEyICsxLDEyIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICdnbm9tZS1jbG9ja3MnCiBwa2duYW1lPWdub21lLWNsb2NrcwotdmVyc2lvbj0zLjM2LjAKK3Zl cnNpb249My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9oZWxwZXI9ImdpciIKIGJ1aWxkX3N0eWxl PW1lc29uCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgaW50bHRvb2wgaXRzdG9vbCBnbGli LWRldmVsIHZhbGEiCiBtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCB2YWxhLWRldmVsIGdub21lLWRl c2t0b3AtZGV2ZWwKLSBsaWJnd2VhdGhlci1kZXZlbCBsaWJoYW5keS1kZXZlbCBsaWJub3RpZnkt ZGV2ZWwgZ3NvdW5kLWRldmVsCisgbGliZ3dlYXRoZXItZGV2ZWwgbGliaGFuZHkxLWRldmVsIGxp Ym5vdGlmeS1kZXZlbCBnc291bmQtZGV2ZWwKICBnZW9jb2RlLWdsaWItZGV2ZWwgZGVza3RvcC1m aWxlLXV0aWxzIGhpY29sb3ItaWNvbi10aGVtZQogIGdlb2NsdWUyLWRldmVsIgogZGVwZW5kcz0i ZGVza3RvcC1maWxlLXV0aWxzIGhpY29sb3ItaWNvbi10aGVtZSIKQEAgLTE1LDQgKzE1LDQgQEAg bWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9 IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBz L0Nsb2NrcyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUu Kn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTRjOTc4YjBjN2Y3Yjlk YWViZDI3MmQwMTc1ZjhhNTQ0MTVlMjA3OGYxMzRmNDhhZGQ1Y2YyNDM2MmVlZjQ5YzYKK2NoZWNr c3VtPWQ5NTZjYjA1MGYxY2E0NmI0NDM1MTllNGY1OWFiMjA0MjkwZDYyNzBkZWM5MWM3NGI1Mzg5 NWFlY2M3OTQ0MzgKCkZyb20gOGZmOWEyNjk5NmRlMmRlZDJjZDgwN2Y3MjM5M2VlODcyNzA4MmY2 YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9j dGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVj dDogW1BBVENIIDA3NC8xMDJdIGVwaXBoYW55OiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIHNyY3Br Z3MvZXBpcGhhbnkvdGVtcGxhdGUgfCA4ICsrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNl cnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZXBpcGhhbnkv dGVtcGxhdGUgYi9zcmNwa2dzL2VwaXBoYW55L3RlbXBsYXRlCmluZGV4IDVkNmFjNmE2MzdkLi5m MjNiMjNjNmZiZSAxMDA2NDQKLS0tIGEvc3JjcGtncy9lcGlwaGFueS90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL2VwaXBoYW55L3RlbXBsYXRlCkBAIC0xLDE5ICsxLDE5IEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdlcGlwaGFueScKIHBrZ25hbWU9ZXBpcGhhbnkKLXZlcnNpb249My4zNi4yCit2ZXJz aW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1t ZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1EZGlzdHJpYnV0b3JfbmFtZT1Wb2lkTGludXggLUR1bml0 X3Rlc3RzPWRpc2FibGVkIgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGdsaWItZGV2ZWwgaXRz dG9vbCBwa2ctY29uZmlnIgogbWFrZWRlcGVuZHM9Ik5ldHdvcmtNYW5hZ2VyLWRldmVsIGF2YWhp LWdsaWItbGlicy1kZXZlbCBnY3ItZGV2ZWwKLSBnbm9tZS1kZXNrdG9wLWRldmVsIGpzb24tZ2xp Yi1kZXZlbCBsaWJkYXp6bGUtZGV2ZWwgbGliaGFuZHktZGV2ZWwKKyBnbm9tZS1kZXNrdG9wLWRl dmVsIGpzb24tZ2xpYi1kZXZlbCBsaWJkYXp6bGUtZGV2ZWwgbGliaGFuZHkxLWRldmVsCiAgbGli bm90aWZ5LWRldmVsIGxpYnNlY3JldC1kZXZlbCBsaWJzb3VwLWdub21lLWRldmVsIGxpYnduY2st ZGV2ZWwgbGlieHNsdC1kZXZlbAotIG5ldHRsZS1kZXZlbCBuc3MtZGV2ZWwgd2Via2l0Mmd0ay1k ZXZlbCIKKyBuZXR0bGUtZGV2ZWwgbnNzLWRldmVsIHdlYmtpdDJndGstZGV2ZWwgbGlicG9ydGFs LWRldmVsIgogZGVwZW5kcz0iZGVza3RvcC1maWxlLXV0aWxzIGhpY29sb3ItaWNvbi10aGVtZSBp c28tY29kZXMgd2Via2l0Mmd0ayIKIHNob3J0X2Rlc2M9IkludHVpdGl2ZSBHTk9NRSB3ZWIgYnJv d3NlciIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBs aWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5v cmcvQXBwcy9XZWIiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNp b24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1jMmU2NzZhYTBm ZTIxMTgwOWE1ZTdlOGE3ZTQ2MWQxODI4OTBmMjUzYzUzZjQ2MTBmMjYxMDA5NGI2ZmJmYjVlCitj aGVja3N1bT0yMjhlODIwZDdjN2Y4NTQxZTRkYjVlY2M2YzgxYjVhODhiZGU5YjFlYTE3Y2FlNGE1 ZjM4NDQ2Zjc5ODljNTUyCgpGcm9tIDFmNTkyMGEzMmVhYjhiZjM5MDExOGFiMTc3OGUyNTU0YmRi MzgyNGIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmll bEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1 YmplY3Q6IFtQQVRDSCAwNzUvMTAyXSBnbm9tZS1jb250YWN0czogdXBkYXRlIHRvIDMuMzcuMgoK LS0tCiBzcmNwa2dzL2dub21lLWNvbnRhY3RzL3RlbXBsYXRlIHwgMTMgKysrKysrLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2dub21lLWNvbnRhY3RzL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1jb250 YWN0cy90ZW1wbGF0ZQppbmRleCAyYTgyMTNhNzI0MC4uYWE0ZWY5NDAxMzYgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3MvZ25vbWUtY29udGFjdHMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1jb250 YWN0cy90ZW1wbGF0ZQpAQCAtMSwxNiArMSwxNSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25v bWUtY29udGFjdHMnCiBwa2duYW1lPWdub21lLWNvbnRhY3RzCi12ZXJzaW9uPTMuMzQuMAotcmV2 aXNpb249Mgotd3Jrc3JjPSJnbm9tZS1jb250YWN0cy0ke3ZlcnNpb24lLip9IgordmVyc2lvbj0z LjM3LjIKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCi1ob3N0bWFrZWRlcGVuZHM9ImRv Y2Jvb2steHNsIGdldHRleHQgZ2xpYi1kZXZlbCBsaWJ4c2x0IHBrZy1jb25maWcgdmFsYSIKK2hv c3RtYWtlZGVwZW5kcz0iZG9jYm9vay14c2wgZm9sa3MtZGV2ZWwgZ2V0dGV4dCBnbGliLWRldmVs IGxpYnhzbHQgcGtnLWNvbmZpZyB2YWxhIgogbWFrZWRlcGVuZHM9ImNoZWVzZS1kZXZlbCBmb2xr cy1kZXZlbCBnZW9jb2RlLWdsaWItZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbAotIGxpYmNoYW1w bGFpbi1kZXZlbCBsaWJub3RpZnktZGV2ZWwgdmFsYS1kZXZlbCBsaWJoYW5keS1kZXZlbCIKKyBs aWJjaGFtcGxhaW4tZGV2ZWwgbGlibm90aWZ5LWRldmVsIHZhbGEtZGV2ZWwgbGliaGFuZHkxLWRl dmVsIgogZGVwZW5kcz0iZGVza3RvcC1maWxlLXV0aWxzIgogc2hvcnRfZGVzYz0iR05PTUUgY29u dGFjdHMgbWFuYWdlciIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4 Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lr aS5nbm9tZS5vcmcvQXBwcy9Db250YWN0cyIKLWRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3Br Z25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb24lLip9LnRhci54eiIKLWNo ZWNrc3VtPTk5NjAyZWM4ZDY2MGMxZjNjOTJjYWU2MzU2ZjY0ZjcyZmI2ZGI1OGU1NWJjZTI3YTU5 OTMzMGJmN2I2MjJmMTIKK2Rpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVy c2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKK2NoZWNrc3VtPTFkMzQ2OWQ1 ZTkwZjIzZDEyOWQxMjc2YjJmOWI4ODU0NTlmM2Q3YjQzMDU0Y2QwOTc1OWI4NWFjNzZjOTE4YjQK CkZyb20gMTY1NDBkZGE5Y2RmMmNjZDI3ZTU4NmFmYmRiMjY3MzAzNjAyYjAzMiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+ CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA3 Ni8xMDJdIGdub21lLXBob3RvczogdXBkYXRlIHRvIDMuMzcuOTEuMSwgdXNlIHRyYWNrZXIzCgot LS0KIHNyY3BrZ3MvZ25vbWUtcGhvdG9zL3BhdGNoZXMvdHJhY2tlcjMucGF0Y2ggfCA0MjU0ICsr KysrKysrKysrKysrKysrKysKIHNyY3BrZ3MvZ25vbWUtcGhvdG9zL3RlbXBsYXRlICAgICAgICAg ICAgICAgfCAgIDExICstCiAyIGZpbGVzIGNoYW5nZWQsIDQyNjAgaW5zZXJ0aW9ucygrKSwgNSBk ZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2dub21lLXBob3Rvcy9wYXRj aGVzL3RyYWNrZXIzLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1waG90b3MvcGF0 Y2hlcy90cmFja2VyMy5wYXRjaCBiL3NyY3BrZ3MvZ25vbWUtcGhvdG9zL3BhdGNoZXMvdHJhY2tl cjMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjQwNmRjYTMw ZmQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9nbm9tZS1waG90b3MvcGF0Y2hlcy90cmFj a2VyMy5wYXRjaApAQCAtMCwwICsxLDQyNTQgQEAKK0Zyb20gYjRhOGRlMWVmNzljOTRjMWMxMWI3 MzA3ODcxMDhmMzA1Yzk2MmUzOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFNhbSBU aHVyc2ZpZWxkIDxzYW1AYWZ1ZXJhLm1lLnVrPgorRGF0ZTogV2VkLCAyNiBBdWcgMjAyMCAwMTo1 Nzo0NiArMDIwMAorU3ViamVjdDogW1BBVENIIDEvNF0gcGhvdG9zLXRyYWNrZXItY29udHJvbGxl cjogTGFiZWwgdW5pdCBvZiB0aW1pbmcKKyBtZWFzdXJlbWVudHMKKworT3RoZXJ3aXNlLCBpdCdz IG5vdCBjbGVhciBpZiB0aGVzZSBhcmUgdGltaW5ncyBvciBzb21lIGtpbmQgb2YgSUQKK251bWJl ci4KKy0tLQorIHNyYy9waG90b3MtdHJhY2tlci1jb250cm9sbGVyLmMgfCA0ICsrLS0KKyAxIGZp bGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0 IGEvc3JjL3Bob3Rvcy10cmFja2VyLWNvbnRyb2xsZXIuYyBiL3NyYy9waG90b3MtdHJhY2tlci1j b250cm9sbGVyLmMKK2luZGV4IGEwMmRiMDc3Li4zYTYyY2YyZCAxMDA2NDQKKy0tLSBhL3NyYy9w aG90b3MtdHJhY2tlci1jb250cm9sbGVyLmMKKysrKyBiL3NyYy9waG90b3MtdHJhY2tlci1jb250 cm9sbGVyLmMKK0BAIC0yMzcsNyArMjM3LDcgQEAgcGhvdG9zX3RyYWNrZXJfY29udHJvbGxlcl9j dXJzb3JfbmV4dCAoR09iamVjdCAqc291cmNlX29iamVjdCwgR0FzeW5jUmVzdWx0ICpyZXMKKyAg ICAgfQorIAorICAgbm93ID0gZ19nZXRfbW9ub3RvbmljX3RpbWUgKCk7CistICBwaG90b3NfZGVi dWcgKFBIT1RPU19ERUJVR19UUkFDS0VSLCAiUXVlcnkgQ3Vyc29yOiAlIiBHX0dJTlQ2NF9GT1JN QVQsIChub3cgLSBwcml2LT5sYXN0X3F1ZXJ5X3RpbWUpIC8gMTAwMDAwMCk7CisrICBwaG90b3Nf ZGVidWcgKFBIT1RPU19ERUJVR19UUkFDS0VSLCAiUXVlcnkgQ3Vyc29yOiAlIiBHX0dJTlQ2NF9G T1JNQVQgIiBzZWNvbmRzIiwgKG5vdyAtIHByaXYtPmxhc3RfcXVlcnlfdGltZSkgLyAxMDAwMDAw KTsKKyAKKyAgIHBob3Rvc19pdGVtX21hbmFnZXJfYWRkX2l0ZW1fZm9yX21vZGUgKFBIT1RPU19J VEVNX01BTkFHRVIgKHByaXYtPml0ZW1fbW5nciksCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQSE9UT1NfVFJBQ0tFUl9DT05UUk9MTEVSX0dFVF9DTEFTUyAoc2Vs ZiktPmJhc2VfaXRlbV90eXBlLAorQEAgLTM0Niw3ICszNDYsNyBAQCBwaG90b3NfdHJhY2tlcl9j b250cm9sbGVyX3NldF9xdWVyeV9zdGF0dXMgKFBob3Rvc1RyYWNrZXJDb250cm9sbGVyICpzZWxm LCBnYm9vbAorICAgZWxzZQorICAgICB7CisgICAgICAgcGhvdG9zX2RlYnVnIChQSE9UT1NfREVC VUdfVFJBQ0tFUiwKKy0gICAgICAgICAgICAgICAgICAgICJRdWVyeSBFbGFwc2VkOiAlIiBHX0dJ TlQ2NF9GT1JNQVQsCisrICAgICAgICAgICAgICAgICAgICAiUXVlcnkgRWxhcHNlZDogJSIgR19H SU5UNjRfRk9STUFUICIgc2Vjb25kcyIsCisgICAgICAgICAgICAgICAgICAgICAobm93IC0gcHJp di0+bGFzdF9xdWVyeV90aW1lKSAvIDEwMDAwMDApOworICAgICAgIHByaXYtPmxhc3RfcXVlcnlf dGltZSA9IDA7CisgICAgIH0KKy0tIAorR2l0TGFiCisKKworRnJvbSA3Yzk4YTg4NGJhNmEyNjc5 NWVhMjVhODc4MDAwMmFjMTAxMDM2ODg3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTog U2FtIFRodXJzZmllbGQgPHNhbUBhZnVlcmEubWUudWs+CitEYXRlOiBXZWQsIDI3IE1heSAyMDIw IDEzOjA3OjU4ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMi80XSBGaXggYnVpbGQgZmFpbHVyZSBk dWUgdG8gdW5kZWZpbmVkIE1fUEkgY29uc3RhbnQKKworVGhlIDxtYXRoLmg+IGhlYWRlciBuZWVk cyB0byBiZSBpbmNsdWRlZC4KKworUHJldmlvdXNseSBJIHN1cHBvc2UgbGlidHJhY2tlci1zcGFy cWwuaCBwdWxsZWQgdGhpcyBpbi4KKy0tLQorIHNyYy9waG90b3MtdXRpbHMuYyB8IDEgKworIDEg ZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQorCitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy11 dGlscy5jIGIvc3JjL3Bob3Rvcy11dGlscy5jCitpbmRleCA0MDFmNTJiYS4uYzYzODI5N2IgMTAw NjQ0CistLS0gYS9zcmMvcGhvdG9zLXV0aWxzLmMKKysrKyBiL3NyYy9waG90b3MtdXRpbHMuYwor QEAgLTMwLDYgKzMwLDcgQEAKKyAjaW5jbHVkZSA8Z2xpYi5oPgorICNpbmNsdWRlIDx0cmFja2Vy LXNwYXJxbC5oPgorICNpbmNsdWRlIDxsaWJnZC9nZC5oPgorKyNpbmNsdWRlIDxtYXRoLmg+Cisg CisgI2luY2x1ZGUgInBob3Rvcy1hcHBsaWNhdGlvbi5oIgorICNpbmNsdWRlICJwaG90b3MtZGV2 aWNlLWl0ZW0uaCIKKy0tIAorR2l0TGFiCisKKworRnJvbSAwZTRiZDdiYmM4MDU2NzQzYThlYTA3 YWIzNzEzYWQ1NDNjMDBkNDc4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogU2FtIFRo dXJzZmllbGQgPHNhbUBhZnVlcmEubWUudWs+CitEYXRlOiBTdW4sIDcgSnVuIDIwMjAgMjE6NTM6 MjAgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAzLzRdIEdlbmVyYXRlIHF1ZXJpZXMgdXNpbmcgU1BB UlFMIHRlbXBsYXRlcworCitUaGUgY29kZSB0byBnZW5lcmF0ZSBTUEFSUUwgcXVlcmllcyB3YXMg c3BsaXQgYWNyb3NzIG1hbnkgZGlmZmVyZW50Citzb3VyY2UgZmlsZXMsIG1ha2luZyBpdCBkaWZm aWN1bHQgdG8gbWFrZSBiaWcgY2hhbmdlcy4gTm93IHRoZQorcXVlcmllcyBhcmUgd3JpdHRlbiBv dXQgYXMgdGVtcGxhdGVzIGFuZCB3ZSB1c2UgdGVtcGxhdGUgc3Vic3RpdHV0aW9uCit0byBidWls ZCB0aGUgU1BBUlFMIHRoYXQgd2Ugc2VuZCB0byBUcmFja2VyLgorLS0tCisgc3JjL21lc29uLmJ1 aWxkICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNSArCisgc3JjL3Bob3Rvcy1iYXNl LW1hbmFnZXIuYyAgICAgICAgICAgICAgICAgICB8ICAxNSArKworIHNyYy9waG90b3MtYmFzZS1t YW5hZ2VyLmggICAgICAgICAgICAgICAgICAgfCAgIDQgKworIHNyYy9waG90b3MtZmlsdGVyYWJs ZS5jICAgICAgICAgICAgICAgICAgICAgfCAgIDggLQorIHNyYy9waG90b3MtZmlsdGVyYWJsZS5o ICAgICAgICAgICAgICAgICAgICAgfCAgIDMgLQorIHNyYy9waG90b3MtcXVlcnktYnVpbGRlci5j ICAgICAgICAgICAgICAgICAgfCAyMDcgKysrKysrKysrLS0tLS0tLS0tLS0KKyBzcmMvcGhvdG9z LXNlYXJjaC10eXBlLW1hbmFnZXIuYyAgICAgICAgICAgIHwgIDU5ICstLS0tLQorIHNyYy9waG90 b3Mtc2VhcmNoLXR5cGUuYyAgICAgICAgICAgICAgICAgICAgfCAgNjcgKysrLS0tLQorIHNyYy9w aG90b3Mtc2VhcmNoLXR5cGUuaCAgICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KKyBzcmMvcGhv dG9zLXNwYXJxbC10ZW1wbGF0ZS5jICAgICAgICAgICAgICAgIHwgMTg3ICsrKysrKysrKysrKysr KysrKworIHNyYy9waG90b3Mtc3BhcnFsLXRlbXBsYXRlLmggICAgICAgICAgICAgICAgfCAgMzgg KysrKworIHNyYy9waG90b3MuZ3Jlc291cmNlLnhtbCAgICAgICAgICAgICAgICAgICAgfCAgIDQg KworIHNyYy9xdWVyaWVzL2FsbC5zcGFycWwudGVtcGxhdGUgICAgICAgICAgICAgfCAgMzEgKysr Cisgc3JjL3F1ZXJpZXMvY29sbGVjdGlvbnMuc3BhcnFsLnRlbXBsYXRlICAgICB8ICAxNCArKwor IHNyYy9xdWVyaWVzL2Zhdm9yaXRlLXBob3Rvcy5zcGFycWwudGVtcGxhdGUgfCAgMTIgKysKKyBz cmMvcXVlcmllcy9waG90b3Muc3BhcnFsLnRlbXBsYXRlICAgICAgICAgIHwgIDExICsrCisgMTYg ZmlsZXMgY2hhbmdlZCwgNDQ2IGluc2VydGlvbnMoKyksIDIyNSBkZWxldGlvbnMoLSkKKyBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjL3Bob3Rvcy1zcGFycWwtdGVtcGxhdGUuYworIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmMvcGhvdG9zLXNwYXJxbC10ZW1wbGF0ZS5oCisgY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyYy9xdWVyaWVzL2FsbC5zcGFycWwudGVtcGxhdGUKKyBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj L3F1ZXJpZXMvY29sbGVjdGlvbnMuc3BhcnFsLnRlbXBsYXRlCisgY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyYy9xdWVyaWVzL2Zhdm9yaXRlLXBob3Rvcy5zcGFycWwudGVtcGxhdGUKKyBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjL3F1ZXJpZXMvcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZQorCitkaWZmIC0tZ2l0 IGEvc3JjL21lc29uLmJ1aWxkIGIvc3JjL21lc29uLmJ1aWxkCitpbmRleCA5OTE5ZjBjZi4uYjVi Mjc1OWMgMTAwNjQ0CistLS0gYS9zcmMvbWVzb24uYnVpbGQKKysrKyBiL3NyYy9tZXNvbi5idWls ZAorQEAgLTE5NSw2ICsxOTUsNyBAQCBzb3VyY2VzID0gY29tbW9uX3NvdXJjZXMgKyBmaWxlcygK KyAgICdwaG90b3Mtc291cmNlLmMnLAorICAgJ3Bob3Rvcy1zb3VyY2UtbWFuYWdlci5jJywKKyAg ICdwaG90b3Mtc291cmNlLW5vdGlmaWNhdGlvbi5jJywKKysgICdwaG90b3Mtc3BhcnFsLXRlbXBs YXRlLmMnLAorICAgJ3Bob3Rvcy1zcGlubmVyLWJveC5jJywKKyAgICdwaG90b3MtdGh1bWJuYWls LWZhY3RvcnkuYycsCisgICAncGhvdG9zLXRvb2wuYycsCitAQCAtMjkwLDYgKzI5MSwxMCBAQCBy ZXNvdXJjZV9kYXRhID0gZmlsZXMoCisgICAncGhvdG9zLXNlbGVjdGlvbi10b29sYmFyLnVpJywK KyAgICdwaG90b3Mtc2hhcmUtZGlhbG9nLnVpJywKKyAgICdwaG90b3Mtem9vbS1jb250cm9scy51 aScsCisrICAncXVlcmllcy9hbGwuc3BhcnFsLnRlbXBsYXRlJywKKysgICdxdWVyaWVzL2NvbGxl Y3Rpb25zLnNwYXJxbC50ZW1wbGF0ZScsCisrICAncXVlcmllcy9mYXZvcml0ZS1waG90b3Muc3Bh cnFsLnRlbXBsYXRlJywKKysgICdxdWVyaWVzL3Bob3Rvcy5zcGFycWwudGVtcGxhdGUnLAorICkK KyAKKyBzb3VyY2VzICs9IGdub21lLmNvbXBpbGVfcmVzb3VyY2VzKAorZGlmZiAtLWdpdCBhL3Ny Yy9waG90b3MtYmFzZS1tYW5hZ2VyLmMgYi9zcmMvcGhvdG9zLWJhc2UtbWFuYWdlci5jCitpbmRl eCBkNDlkMTlhNS4uMDUyNjM4ZDUgMTAwNjQ0CistLS0gYS9zcmMvcGhvdG9zLWJhc2UtbWFuYWdl ci5jCisrKysgYi9zcmMvcGhvdG9zLWJhc2UtbWFuYWdlci5jCitAQCAtMjUwLDYgKzI1MCwxMiBA QCBwaG90b3NfYmFzZV9tYW5hZ2VyX2RlZmF1bHRfZ2V0X3doZXJlIChQaG90b3NCYXNlTWFuYWdl ciAqc2VsZiwgZ2ludCBmbGFncykKKyB9CisgCisgCisrc3RhdGljIFBob3Rvc1NwYXJxbFRlbXBs YXRlICoKKytwaG90b3NfYmFzZV9tYW5hZ2VyX2RlZmF1bHRfZ2V0X3NwYXJxbF90ZW1wbGF0ZSAo UGhvdG9zQmFzZU1hbmFnZXIgKnNlbGYsIGdpbnQgZmxhZ3MpCisreworKyAgcmV0dXJuIE5VTEw7 CisrfQorKworIHN0YXRpYyB2b2lkCisgcGhvdG9zX2Jhc2VfbWFuYWdlcl9kZWZhdWx0X3JlbW92 ZV9vYmplY3RfYnlfaWQgKFBob3Rvc0Jhc2VNYW5hZ2VyICpzZWxmLCBjb25zdCBnY2hhciAqaWQp CisgeworQEAgLTQzOCw2ICs0NDQsNyBAQCBwaG90b3NfYmFzZV9tYW5hZ2VyX2NsYXNzX2luaXQg KFBob3Rvc0Jhc2VNYW5hZ2VyQ2xhc3MgKmNsYXNzKQorICAgY2xhc3MtPmdldF9vYmplY3RfYnlf aWQgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2RlZmF1bHRfZ2V0X29iamVjdF9ieV9pZDsKKyAgIGNs YXNzLT5nZXRfcHJldmlvdXNfb2JqZWN0ID0gcGhvdG9zX2Jhc2VfbWFuYWdlcl9kZWZhdWx0X2dl dF9wcmV2aW91c19vYmplY3Q7CisgICBjbGFzcy0+Z2V0X3doZXJlID0gcGhvdG9zX2Jhc2VfbWFu YWdlcl9kZWZhdWx0X2dldF93aGVyZTsKKysgIGNsYXNzLT5nZXRfc3BhcnFsX3RlbXBsYXRlID0g cGhvdG9zX2Jhc2VfbWFuYWdlcl9kZWZhdWx0X2dldF9zcGFycWxfdGVtcGxhdGU7CisgICBjbGFz cy0+cmVtb3ZlX29iamVjdF9ieV9pZCA9IHBob3Rvc19iYXNlX21hbmFnZXJfZGVmYXVsdF9yZW1v dmVfb2JqZWN0X2J5X2lkOworICAgY2xhc3MtPnNldF9hY3RpdmVfb2JqZWN0ID0gcGhvdG9zX2Jh c2VfbWFuYWdlcl9kZWZhdWx0X3NldF9hY3RpdmVfb2JqZWN0OworIAorQEAgLTcxNCw2ICs3MjEs MTQgQEAgcGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfd2hlcmUgKFBob3Rvc0Jhc2VNYW5hZ2VyICpz ZWxmLCBnaW50IGZsYWdzKQorIH0KKyAKKyAKKytQaG90b3NTcGFycWxUZW1wbGF0ZSAqCisrcGhv dG9zX2Jhc2VfbWFuYWdlcl9nZXRfc3BhcnFsX3RlbXBsYXRlIChQaG90b3NCYXNlTWFuYWdlciAq c2VsZiwgZ2ludCBmbGFncykKKyt7CisrICBnX3JldHVybl92YWxfaWZfZmFpbCAoUEhPVE9TX0lT X0JBU0VfTUFOQUdFUiAoc2VsZiksIE5VTEwpOworKyAgcmV0dXJuIFBIT1RPU19CQVNFX01BTkFH RVJfR0VUX0NMQVNTIChzZWxmKS0+Z2V0X3NwYXJxbF90ZW1wbGF0ZSAoc2VsZiwgZmxhZ3MpOwor K30KKysKKysKKyB2b2lkCisgcGhvdG9zX2Jhc2VfbWFuYWdlcl9wcm9jZXNzX25ld19vYmplY3Rz IChQaG90b3NCYXNlTWFuYWdlciAqc2VsZiwgR0hhc2hUYWJsZSAqbmV3X29iamVjdHMpCisgewor ZGlmZiAtLWdpdCBhL3NyYy9waG90b3MtYmFzZS1tYW5hZ2VyLmggYi9zcmMvcGhvdG9zLWJhc2Ut bWFuYWdlci5oCitpbmRleCA5OWQyMDNlOS4uMDRjZmE3ZGIgMTAwNjQ0CistLS0gYS9zcmMvcGhv dG9zLWJhc2UtbWFuYWdlci5oCisrKysgYi9zcmMvcGhvdG9zLWJhc2UtbWFuYWdlci5oCitAQCAt MjQsNiArMjQsNyBAQAorICNkZWZpbmUgUEhPVE9TX0JBU0VfTUFOQUdFUl9ICisgCisgI2luY2x1 ZGUgPGdsaWItb2JqZWN0Lmg+CisrI2luY2x1ZGUgInBob3Rvcy1zcGFycWwtdGVtcGxhdGUuaCIK KyAKKyBHX0JFR0lOX0RFQ0xTCisgCitAQCAtNDYsNiArNDcsNyBAQCBzdHJ1Y3QgX1Bob3Rvc0Jh c2VNYW5hZ2VyQ2xhc3MKKyAgIGdjaGFyICAgICAgICAgKigqZ2V0X3doZXJlKSAgICAgICAgICAg ICAgKFBob3Rvc0Jhc2VNYW5hZ2VyICpzZWxmLCBnaW50IGZsYWdzKTsKKyAgIHZvaWQgICAgICAg ICAgICgqcmVtb3ZlX29iamVjdF9ieV9pZCkgICAgKFBob3Rvc0Jhc2VNYW5hZ2VyICpzZWxmLCBj b25zdCBnY2hhciAqaWQpOworICAgZ2Jvb2xlYW4gICAgICAgKCpzZXRfYWN0aXZlX29iamVjdCkg ICAgICAoUGhvdG9zQmFzZU1hbmFnZXIgKnNlbGYsIEdPYmplY3QgKm9iamVjdCk7CisrICBQaG90 b3NTcGFycWxUZW1wbGF0ZSAqKCpnZXRfc3BhcnFsX3RlbXBsYXRlKSAoUGhvdG9zQmFzZU1hbmFn ZXIgKnNlbGYsIGdpbnQgZmxhZ3MpOworIAorICAgLyogc2lnbmFscyAqLworICAgdm9pZCAgICAg ICAgICAgKCphY3RpdmVfY2hhbmdlZCkgICAgICAgICAoUGhvdG9zQmFzZU1hbmFnZXIgKnNlbGYs IEdPYmplY3QgKm9iamVjdCk7CitAQCAtODAsNiArODIsOCBAQCBjb25zdCBnY2hhciAgICAgICAg KnBob3Rvc19iYXNlX21hbmFnZXJfZ2V0X3RpdGxlICAgICAgICAgICAgICAgIChQaG90b3NCYXNl TWFuYQorIAorIGdjaGFyICAgICAgICAgICAgICAqcGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfd2hl cmUgICAgICAgICAgICAgICAgKFBob3Rvc0Jhc2VNYW5hZ2VyICpzZWxmLCBnaW50IGZsYWdzKTsK KyAKKytQaG90b3NTcGFycWxUZW1wbGF0ZSAqcGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfc3BhcnFs X3RlbXBsYXRlICAgIChQaG90b3NCYXNlTWFuYWdlciAqc2VsZiwgZ2ludCBmbGFncyk7CisrCisg dm9pZCAgICAgICAgICAgICAgICBwaG90b3NfYmFzZV9tYW5hZ2VyX3Byb2Nlc3NfbmV3X29iamVj dHMgICAgICAoUGhvdG9zQmFzZU1hbmFnZXIgKnNlbGYsIEdIYXNoVGFibGUgKm5ld19vYmplY3Rz KTsKKyAKKyB2b2lkICAgICAgICAgICAgICAgIHBob3Rvc19iYXNlX21hbmFnZXJfcmVtb3ZlX29i amVjdCAgICAgICAgICAgIChQaG90b3NCYXNlTWFuYWdlciAqc2VsZiwgR09iamVjdCAqb2JqZWN0 KTsKK2RpZmYgLS1naXQgYS9zcmMvcGhvdG9zLWZpbHRlcmFibGUuYyBiL3NyYy9waG90b3MtZmls dGVyYWJsZS5jCitpbmRleCAzNjFiMWMyOS4uYWFhNDEwOWMgMTAwNjQ0CistLS0gYS9zcmMvcGhv dG9zLWZpbHRlcmFibGUuYworKysrIGIvc3JjL3Bob3Rvcy1maWx0ZXJhYmxlLmMKK0BAIC02OSwx NCArNjksNiBAQCBwaG90b3NfZmlsdGVyYWJsZV9nZXRfaWQgKFBob3Rvc0ZpbHRlcmFibGUgKnNl bGYpCisgfQorIAorIAorLWdjaGFyICoKKy1waG90b3NfZmlsdGVyYWJsZV9nZXRfd2hlcmUgKFBo b3Rvc0ZpbHRlcmFibGUgKnNlbGYpCisteworLSAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKFBIT1RP U19JU19GSUxURVJBQkxFIChzZWxmKSwgTlVMTCk7CistICByZXR1cm4gUEhPVE9TX0ZJTFRFUkFC TEVfR0VUX0lGQUNFIChzZWxmKS0+Z2V0X3doZXJlIChzZWxmKTsKKy19CistCistCisgZ2Jvb2xl YW4KKyBwaG90b3NfZmlsdGVyYWJsZV9pc19zZWFyY2hfY3JpdGVyaW9uIChQaG90b3NGaWx0ZXJh YmxlICpzZWxmKQorIHsKK2RpZmYgLS1naXQgYS9zcmMvcGhvdG9zLWZpbHRlcmFibGUuaCBiL3Ny Yy9waG90b3MtZmlsdGVyYWJsZS5oCitpbmRleCBlNzY4YmNhMC4uOGEzNDE1ZmMgMTAwNjQ0Cist LS0gYS9zcmMvcGhvdG9zLWZpbHRlcmFibGUuaAorKysrIGIvc3JjL3Bob3Rvcy1maWx0ZXJhYmxl LmgKK0BAIC0zNyw3ICszNyw2IEBAIHN0cnVjdCBfUGhvdG9zRmlsdGVyYWJsZUludGVyZmFjZQor ICAgZ2Jvb2xlYW4gKCpnZXRfYnVpbHRpbikgKFBob3Rvc0ZpbHRlcmFibGUgKnNlbGYpOworICAg Z2NoYXIgKigqZ2V0X2ZpbHRlcikgKFBob3Rvc0ZpbHRlcmFibGUgKnNlbGYpOworICAgY29uc3Qg Z2NoYXIgKigqZ2V0X2lkKSAoUGhvdG9zRmlsdGVyYWJsZSAqc2VsZik7CistICBnY2hhciAqKCpn ZXRfd2hlcmUpIChQaG90b3NGaWx0ZXJhYmxlICpzZWxmKTsKKyAgIGdib29sZWFuICgqaXNfc2Vh cmNoX2NyaXRlcmlvbikgKFBob3Rvc0ZpbHRlcmFibGUgKnNlbGYpOworIH07CisgCitAQCAtNDcs OCArNDYsNiBAQCBnY2hhciAgICAgICAgICAgICAgKnBob3Rvc19maWx0ZXJhYmxlX2dldF9maWx0 ZXIgICAgICAgICAoUGhvdG9zRmlsdGVyYWJsZSAqc2VsZgorIAorIGNvbnN0IGdjaGFyICAgICAg ICAqcGhvdG9zX2ZpbHRlcmFibGVfZ2V0X2lkICAgICAgICAgICAgIChQaG90b3NGaWx0ZXJhYmxl ICpzZWxmKTsKKyAKKy1nY2hhciAgICAgICAgICAgICAgKnBob3Rvc19maWx0ZXJhYmxlX2dldF93 aGVyZSAgICAgICAgICAoUGhvdG9zRmlsdGVyYWJsZSAqc2VsZik7CistCisgZ2Jvb2xlYW4gICAg ICAgICAgICBwaG90b3NfZmlsdGVyYWJsZV9pc19zZWFyY2hfY3JpdGVyaW9uICAoUGhvdG9zRmls dGVyYWJsZSAqc2VsZik7CisgCisgR19FTkRfREVDTFMKK2RpZmYgLS1naXQgYS9zcmMvcGhvdG9z LXF1ZXJ5LWJ1aWxkZXIuYyBiL3NyYy9waG90b3MtcXVlcnktYnVpbGRlci5jCitpbmRleCA2Yjk5 NjgxMS4uZTA3MzViZGUgMTAwNjQ0CistLS0gYS9zcmMvcGhvdG9zLXF1ZXJ5LWJ1aWxkZXIuYwor KysrIGIvc3JjL3Bob3Rvcy1xdWVyeS1idWlsZGVyLmMKK0BAIC0yNiwxMTIgKzI2LDc2IEBACisg I2luY2x1ZGUgPHN0cmluZy5oPgorIAorICNpbmNsdWRlICJwaG90b3MtYmFzZS1tYW5hZ2VyLmgi CisrI2luY2x1ZGUgInBob3Rvcy1xdWVyeS5oIgorICNpbmNsdWRlICJwaG90b3MtcXVlcnktYnVp bGRlci5oIgorICNpbmNsdWRlICJwaG90b3Mtc2VhcmNoLXR5cGUuaCIKKyAjaW5jbHVkZSAicGhv dG9zLXNvdXJjZS1tYW5hZ2VyLmgiCisgI2luY2x1ZGUgInBob3Rvcy1zZWFyY2gtbWF0Y2gtbWFu YWdlci5oIgorICNpbmNsdWRlICJwaG90b3Mtc2VhcmNoLXR5cGUtbWFuYWdlci5oIgorIAorKyNk ZWZpbmUgUEhPVE9TX1FVRVJZX0NPTExFQ1RJT05TX0lERU5USUZJRVIgInBob3Rvczpjb2xsZWN0 aW9uOiIKKysjZGVmaW5lIFBIT1RPU19RVUVSWV9MT0NBTF9DT0xMRUNUSU9OU19JREVOVElGSUVS ICJwaG90b3M6Y29sbGVjdGlvbjpsb2NhbDoiCisgCistc3RhdGljIGdjaGFyICoKKy1waG90b3Nf cXVlcnlfYnVpbGRlcl9maWx0ZXIgKFBob3Rvc1NlYXJjaENvbnRleHRTdGF0ZSAqc3RhdGUsIGdp bnQgZmxhZ3MpCisteworLSAgZ2NoYXIgKnNwYXJxbDsKKy0gIGdfYXV0b2ZyZWUgZ2NoYXIgKnNy Y19tbmdyX2ZpbHRlciA9IE5VTEw7CistICBnX2F1dG9mcmVlIGdjaGFyICpzcmNoX210Y2hfbW5n cl9maWx0ZXIgPSBOVUxMOworLSAgZ19hdXRvZnJlZSBnY2hhciAqc3JjaF90eXBfbW5ncl9maWx0 ZXIgPSBOVUxMOworK2NvbnN0IGdjaGFyICpjb2xsZWN0aW9uc19kZWZhdWx0X2ZpbHRlciA9IFwK KysgICIoZm46c3RhcnRzLXdpdGggKG5hbzppZGVudGlmaWVyICg/dXJuKSwgJyIgUEhPVE9TX1FV RVJZX0NPTExFQ1RJT05TX0lERU5USUZJRVIgIicpIgorKyAgIiAgIHx8ICg/dXJuID0gbmZvOmlt YWdlLWNhdGVnb3J5LXNjcmVlbnNob3QpKSI7CisgCistICBzcmNfbW5ncl9maWx0ZXIgPSBwaG90 b3NfYmFzZV9tYW5hZ2VyX2dldF9maWx0ZXIgKHN0YXRlLT5zcmNfbW5nciwgZmxhZ3MpOworLSAg c3JjaF9tdGNoX21uZ3JfZmlsdGVyID0gcGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfZmlsdGVyIChz dGF0ZS0+c3JjaF9tdGNoX21uZ3IsIGZsYWdzKTsKKy0gIHNyY2hfdHlwX21uZ3JfZmlsdGVyID0g cGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfZmlsdGVyIChzdGF0ZS0+c3JjaF90eXBfbW5nciwgZmxh Z3MpOworIAorLSAgc3BhcnFsID0gZ19zdHJkdXBfcHJpbnRmICgiRklMVEVSICglcyAmJiAlcyAm JiAlcykiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmNfbW5ncl9maWx0ZXIsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY2hfbXRjaF9tbmdyX2ZpbHRlciwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3JjaF90eXBfbW5ncl9maWx0ZXIpOworLQorLSAgcmV0 dXJuIHNwYXJxbDsKKy19CisrLyogVGhpcyBpbmNsdWRlcyBtaW1ldHlwZSBibG9ja2xpc3QgKi8K Kytjb25zdCBnY2hhciAqcGhvdG9zX2RlZmF1bHRfZmlsdGVyID0gXAorKyAgIihuaWU6bWltZVR5 cGUoP3VybikgIT0gJ2ltYWdlL2dpZicgJiYgbmllOm1pbWVUeXBlKD91cm4pICE9ICdpbWFnZS94 LWVwcycpIjsKKyAKKyAKKyBzdGF0aWMgZ2NoYXIgKgorLXBob3Rvc19xdWVyeV9idWlsZGVyX29w dGlvbmFsICh2b2lkKQorLXsKKy0gIHJldHVybiBnX3N0cmR1cCAoIk9QVElPTkFMIHsgP3VybiBu Y286Y3JlYXRvciA/Y3JlYXRvciAuIH0gIgorLSAgICAgICAgICAgICAgICAgICAiT1BUSU9OQUwg eyA/dXJuIG5jbzpwdWJsaXNoZXIgP3B1Ymxpc2hlciAuIH0iKTsKKy19CistCistCistc3RhdGlj IGdjaGFyICoKKy1waG90b3NfcXVlcnlfYnVpbGRlcl9pbm5lcl93aGVyZSAoUGhvdG9zU2VhcmNo Q29udGV4dFN0YXRlICpzdGF0ZSwgZ2Jvb2xlYW4gZ2xvYmFsLCBnaW50IGZsYWdzKQorK3Bob3Rv c19xdWVyeV9idWlsZGVyX3F1ZXJ5IChQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0YXRlLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiBnbG9iYWwsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGdpbnQgZmxhZ3MsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFBob3Rvc09mZnNldENvbnRyb2xsZXIgKm9mZnNldF9jbnRybHIpCisgeworLSAgZ19hdXRv ZnJlZSBnY2hhciAqaXRlbV9tbmdyX3doZXJlID0gTlVMTDsKKysgIFBob3Rvc1NwYXJxbFRlbXBs YXRlICp0ZW1wbGF0ZTsKKysgIGNvbnN0IGdjaGFyICpwcm9qZWN0aW9uID0gTlVMTDsKKysgIGdf YXV0b2ZyZWUgZ2NoYXIgKml0ZW1fcGF0dGVybiA9IE5VTEw7CisrICBnX2F1dG9mcmVlIGdjaGFy ICpzZWFyY2hfZmlsdGVyID0gTlVMTDsKKysgIGdfYXV0b2ZyZWUgZ2NoYXIgKnNvdXJjZV9maWx0 ZXIgPSBOVUxMOworKyAgY29uc3QgZ2NoYXIgKm9yZGVyID0gTlVMTDsKKysgIGdfYXV0b2ZyZWUg Z2NoYXIgKm9mZnNldF9saW1pdCA9IE5VTEw7CisgICBnY2hhciAqc3BhcnFsOworLSAgZ19hdXRv ZnJlZSBnY2hhciAqc3JjaF90eXBfbW5ncl93aGVyZSA9IE5VTEw7CisgCistICBzcmNoX3R5cF9t bmdyX3doZXJlID0gcGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfd2hlcmUgKHN0YXRlLT5zcmNoX3R5 cF9tbmdyLCBmbGFncyk7CisrICB0ZW1wbGF0ZSA9IHBob3Rvc19iYXNlX21hbmFnZXJfZ2V0X3Nw YXJxbF90ZW1wbGF0ZSAoc3RhdGUtPnNyY2hfdHlwX21uZ3IsIGZsYWdzKTsKKysKKysgIHByb2pl Y3Rpb24gPSAiP3VybiAiCisrICAgICAgICAgICAgICAgIm5pZTp1cmwgKD91cm4pICIKKysgICAg ICAgICAgICAgICAibmZvOmZpbGVOYW1lICg/dXJuKSAiCisrICAgICAgICAgICAgICAgIm5pZTpt aW1lVHlwZSAoP3VybikgIgorKyAgICAgICAgICAgICAgICJuaWU6dGl0bGUgKD91cm4pICIKKysg ICAgICAgICAgICAgICAidHJhY2tlcjpjb2FsZXNjZSAobmNvOmZ1bGxuYW1lICg/Y3JlYXRvciks IG5jbzpmdWxsbmFtZSAoP3B1Ymxpc2hlciksICcnKSAiCisrICAgICAgICAgICAgICAgInRyYWNr ZXI6Y29hbGVzY2UgKG5mbzpmaWxlTGFzdE1vZGlmaWVkICg/dXJuKSwgbmllOmNvbnRlbnRMYXN0 TW9kaWZpZWQgKD91cm4pKSBBUyA/bXRpbWUgIgorKyAgICAgICAgICAgICAgICJuYW86aWRlbnRp ZmllciAoP3VybikgIgorKyAgICAgICAgICAgICAgICJyZGY6dHlwZSAoP3VybikgIgorKyAgICAg ICAgICAgICAgICJuaWU6ZGF0YVNvdXJjZSg/dXJuKSAiCisrICAgICAgICAgICAgICAgIiggRVhJ U1RTIHsgP3VybiBuYW86aGFzVGFnIG5hbzpwcmVkZWZpbmVkLXRhZy1mYXZvcml0ZSB9ICkgIgor KyAgICAgICAgICAgICAgICIoIEVYSVNUUyB7ID91cm4gbmNvOmNvbnRyaWJ1dG9yID9jb250cmli dXRvciBGSUxURVIgKCA/Y29udHJpYnV0b3IgIT0gP2NyZWF0b3IgKSB9ICkgIgorKyAgICAgICAg ICAgICAgICJ0cmFja2VyOmNvYWxlc2NlKG5mbzpmaWxlQ3JlYXRlZCAoP3VybiksIG5pZTpjb250 ZW50Q3JlYXRlZCAoP3VybikpICIKKysgICAgICAgICAgICAgICAibmZvOndpZHRoICg/dXJuKSAi CisrICAgICAgICAgICAgICAgIm5mbzpoZWlnaHQgKD91cm4pICIKKysgICAgICAgICAgICAgICAi bmZvOmVxdWlwbWVudCAoP3VybikgIgorKyAgICAgICAgICAgICAgICJuZm86b3JpZW50YXRpb24g KD91cm4pICIKKysgICAgICAgICAgICAgICAibm1tOmV4cG9zdXJlVGltZSAoP3VybikgIgorKyAg ICAgICAgICAgICAgICJubW06Zm51bWJlciAoP3VybikgIgorKyAgICAgICAgICAgICAgICJubW06 Zm9jYWxMZW5ndGggKD91cm4pICIKKysgICAgICAgICAgICAgICAibm1tOmlzb1NwZWVkICg/dXJu KSAiCisrICAgICAgICAgICAgICAgIm5tbTpmbGFzaCAoP3VybikgIgorKyAgICAgICAgICAgICAg ICJzbG86bG9jYXRpb24gKD91cm4pICI7CisrCisrICBpdGVtX3BhdHRlcm4gPSBwaG90b3NfYmFz ZV9tYW5hZ2VyX2dldF93aGVyZSAoc3RhdGUtPml0ZW1fbW5nciwgZmxhZ3MpOworIAorICAgaWYg KCEoZmxhZ3MgJiBQSE9UT1NfUVVFUllfRkxBR1NfVU5GSUxURVJFRCkpCisgICAgIHsKKy0gICAg ICBpZiAoZ2xvYmFsKQorLSAgICAgICAgeworLSAgICAgICAgICAvKiBUT0RPOiBTZWFyY2hDYXRl Z29yeU1hbmFnZXIgKi8KKy0KKy0gICAgICAgICAgaXRlbV9tbmdyX3doZXJlID0gcGhvdG9zX2Jh c2VfbWFuYWdlcl9nZXRfd2hlcmUgKHN0YXRlLT5pdGVtX21uZ3IsIGZsYWdzKTsKKy0gICAgICAg IH0KKysgICAgICBzb3VyY2VfZmlsdGVyID0gcGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfZmlsdGVy IChzdGF0ZS0+c3JjX21uZ3IsIGZsYWdzKTsKKysgICAgICBzZWFyY2hfZmlsdGVyID0gcGhvdG9z X2Jhc2VfbWFuYWdlcl9nZXRfZmlsdGVyIChzdGF0ZS0+c3JjaF9tdGNoX21uZ3IsIGZsYWdzKTsK KyAgICAgfQorIAorLSAgc3BhcnFsID0gZ19zdHJkdXBfcHJpbnRmICgiV0hFUkUgeyAlcyAlcyB9 IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjaF90eXBfbW5ncl93aGVyZSwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGl0ZW1fbW5ncl93aGVyZSAhPSBOVUxMKSA/IGl0 ZW1fbW5ncl93aGVyZSA6ICIiKTsKKy0KKy0gIHJldHVybiBzcGFycWw7CistfQorLQorLQorLXN0 YXRpYyBnY2hhciAqCistcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfd2hlcmUgKFBob3Rvc1NlYXJjaENv bnRleHRTdGF0ZSAqc3RhdGUsIGdib29sZWFuIGdsb2JhbCwgZ2ludCBmbGFncykKKy17CistICBj b25zdCBnY2hhciAqY291bnRfaXRlbXMgPSAiQ09VTlQgKD9pdGVtKSBBUyA/Y291bnQiOworLSAg Z2Jvb2xlYW4gaXRlbV9kZWZpbmVkOworLSAgZ19hdXRvZnJlZSBnY2hhciAqZmlsdGVyID0gTlVM TDsKKy0gIGdfYXV0b2ZyZWUgZ2NoYXIgKm9wdGlvbmFsID0gTlVMTDsKKy0gIGdjaGFyICpzcGFy cWw7CistICBnX2F1dG9mcmVlIGdjaGFyICp3aGVyZV9zcGFycWwgPSBOVUxMOworLQorLSAgd2hl cmVfc3BhcnFsID0gcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfaW5uZXJfd2hlcmUgKHN0YXRlLCBnbG9i YWwsIGZsYWdzKTsKKy0gIGl0ZW1fZGVmaW5lZCA9IHN0cnN0ciAod2hlcmVfc3BhcnFsLCAiP2l0 ZW0iKSAhPSBOVUxMOworLQorLSAgb3B0aW9uYWwgPSBwaG90b3NfcXVlcnlfYnVpbGRlcl9vcHRp b25hbCAoKTsKKy0KKy0gIGlmICghKGZsYWdzICYgUEhPVE9TX1FVRVJZX0ZMQUdTX1VORklMVEVS RUQpKQorLSAgICBmaWx0ZXIgPSBwaG90b3NfcXVlcnlfYnVpbGRlcl9maWx0ZXIgKHN0YXRlLCBm bGFncyk7CistCistICBzcGFycWwgPSBnX3N0cmR1cF9wcmludGYgKCJXSEVSRSB7eyIKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgIiAgICBTRUxFQ1QgP3VybiByZGY6dHlwZSAoP3Vybikg QVMgP3R5cGUgJXMgJXMgR1JPVVAgQlkgKD91cm4pIgorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiICB9IgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAlcyAlcyIKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgIn0iLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpdGVtX2RlZmluZWQgPyBjb3VudF9pdGVtcyA6ICIiLAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICB3aGVyZV9zcGFycWwsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlv bmFsLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmlsdGVyICE9IE5VTEwpID8gZmls dGVyIDogIiIpOworLQorLSAgcmV0dXJuIHNwYXJxbDsKKy19CistCistCistc3RhdGljIGdjaGFy ICoKKy1waG90b3NfcXVlcnlfYnVpbGRlcl9xdWVyeSAoUGhvdG9zU2VhcmNoQ29udGV4dFN0YXRl ICpzdGF0ZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gZ2xvYmFsLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaW50IGZsYWdzLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQaG90b3NPZmZzZXRDb250cm9sbGVyICpvZmZzZXRfY250cmxyKQorLXsK Ky0gIGdjaGFyICpzcGFycWw7CistICBnX2F1dG9mcmVlIGdjaGFyICp0YWlsX3NwYXJxbCA9IE5V TEw7CistICBnX2F1dG9mcmVlIGdjaGFyICp3aGVyZV9zcGFycWwgPSBOVUxMOworLQorLSAgd2hl cmVfc3BhcnFsID0gcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfd2hlcmUgKHN0YXRlLCBnbG9iYWwsIGZs YWdzKTsKKysgIG9yZGVyID0gIk9SREVSIEJZIERFU0MgKD9tdGltZSkiOworIAorICAgaWYgKGds b2JhbCAmJiAoZmxhZ3MgJiBQSE9UT1NfUVVFUllfRkxBR1NfVU5MSU1JVEVEKSA9PSAwKQorICAg ICB7CitAQCAtMTQ0LDM1ICsxMDgsMTkgQEAgcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfcXVlcnkgKFBo b3Rvc1NlYXJjaENvbnRleHRTdGF0ZSAqc3RhdGUsCisgICAgICAgICAgIHN0ZXAgPSBwaG90b3Nf b2Zmc2V0X2NvbnRyb2xsZXJfZ2V0X3N0ZXAgKG9mZnNldF9jbnRybHIpOworICAgICAgICAgfQor IAorLSAgICAgIHRhaWxfc3BhcnFsID0gZ19zdHJkdXBfcHJpbnRmICgiT1JERVIgQlkgREVTQyAo P210aW1lKSBMSU1JVCAlZCBPRkZTRVQgJWQiLCBzdGVwLCBvZmZzZXQpOworKyAgICAgIG9mZnNl dF9saW1pdCA9IGdfc3RyZHVwX3ByaW50ZiAoIkxJTUlUICVkIE9GRlNFVCAlZCIsIHN0ZXAsIG9m ZnNldCk7CisgICAgIH0KKyAKKy0gIHNwYXJxbCA9IGdfc3RyY29uY2F0ICgiU0VMRUNUID91cm4g IgorLSAgICAgICAgICAgICAgICAgICAgICAgICJuaWU6dXJsICg/dXJuKSAiCistICAgICAgICAg ICAgICAgICAgICAgICAgIm5mbzpmaWxlTmFtZSAoP3VybikgIgorLSAgICAgICAgICAgICAgICAg ICAgICAgICJuaWU6bWltZVR5cGUgKD91cm4pICIKKy0gICAgICAgICAgICAgICAgICAgICAgICAi bmllOnRpdGxlICg/dXJuKSAiCistICAgICAgICAgICAgICAgICAgICAgICAgInRyYWNrZXI6Y29h bGVzY2UgKG5jbzpmdWxsbmFtZSAoP2NyZWF0b3IpLCBuY286ZnVsbG5hbWUgKD9wdWJsaXNoZXIp LCAnJykgIgorLSAgICAgICAgICAgICAgICAgICAgICAgICJ0cmFja2VyOmNvYWxlc2NlIChuZm86 ZmlsZUxhc3RNb2RpZmllZCAoP3VybiksIG5pZTpjb250ZW50TGFzdE1vZGlmaWVkICg/dXJuKSkg QVMgP210aW1lICIKKy0gICAgICAgICAgICAgICAgICAgICAgICAibmFvOmlkZW50aWZpZXIgKD91 cm4pICIKKy0gICAgICAgICAgICAgICAgICAgICAgICAicmRmOnR5cGUgKD91cm4pICIKKy0gICAg ICAgICAgICAgICAgICAgICAgICAibmllOmRhdGFTb3VyY2UoP3VybikgIgorLSAgICAgICAgICAg ICAgICAgICAgICAgICIoIEVYSVNUUyB7ID91cm4gbmFvOmhhc1RhZyBuYW86cHJlZGVmaW5lZC10 YWctZmF2b3JpdGUgfSApICIKKy0gICAgICAgICAgICAgICAgICAgICAgICAiKCBFWElTVFMgeyA/ dXJuIG5jbzpjb250cmlidXRvciA/Y29udHJpYnV0b3IgRklMVEVSICggP2NvbnRyaWJ1dG9yICE9 ID9jcmVhdG9yICkgfSApICIKKy0gICAgICAgICAgICAgICAgICAgICAgICAidHJhY2tlcjpjb2Fs ZXNjZShuZm86ZmlsZUNyZWF0ZWQgKD91cm4pLCBuaWU6Y29udGVudENyZWF0ZWQgKD91cm4pKSAi CistICAgICAgICAgICAgICAgICAgICAgICAgIm5mbzp3aWR0aCAoP3VybikgIgorLSAgICAgICAg ICAgICAgICAgICAgICAgICJuZm86aGVpZ2h0ICg/dXJuKSAiCistICAgICAgICAgICAgICAgICAg ICAgICAgIm5mbzplcXVpcG1lbnQgKD91cm4pICIKKy0gICAgICAgICAgICAgICAgICAgICAgICAi bmZvOm9yaWVudGF0aW9uICg/dXJuKSAiCistICAgICAgICAgICAgICAgICAgICAgICAgIm5tbTpl eHBvc3VyZVRpbWUgKD91cm4pICIKKy0gICAgICAgICAgICAgICAgICAgICAgICAibm1tOmZudW1i ZXIgKD91cm4pICIKKy0gICAgICAgICAgICAgICAgICAgICAgICAibm1tOmZvY2FsTGVuZ3RoICg/ dXJuKSAiCistICAgICAgICAgICAgICAgICAgICAgICAgIm5tbTppc29TcGVlZCAoP3VybikgIgor LSAgICAgICAgICAgICAgICAgICAgICAgICJubW06Zmxhc2ggKD91cm4pICIKKy0gICAgICAgICAg ICAgICAgICAgICAgICAic2xvOmxvY2F0aW9uICg/dXJuKSAiLAorLSAgICAgICAgICAgICAgICAg ICAgICAgIHdoZXJlX3NwYXJxbCwKKy0gICAgICAgICAgICAgICAgICAgICAgICB0YWlsX3NwYXJx bCwKKy0gICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKysgIHNwYXJxbCA9IHBob3Rvc19z cGFycWxfdGVtcGxhdGVfZ2V0X3NwYXJxbCAodGVtcGxhdGUsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcm9qZWN0aW9uIiwgcHJvamVjdGlvbiwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbGxlY3Rpb25z X2RlZmF1bHRfZmlsdGVyIiwgY29sbGVjdGlvbnNfZGVmYXVsdF9maWx0ZXIsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpdGVtX3BhdHRlcm4iLCBpdGVt X3BhdHRlcm4sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJwaG90b3NfZGVmYXVsdF9maWx0ZXIiLCBwaG90b3NfZGVmYXVsdF9maWx0ZXIsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzb3VyY2VfZmlsdGVyIiwg c291cmNlX2ZpbHRlciA/IHNvdXJjZV9maWx0ZXIgOiAiIiwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgInNlYXJjaF9maWx0ZXIiLCBzZWFyY2hfZmlsdGVy ID8gc2VhcmNoX2ZpbHRlciA6ICIiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAib3JkZXIiLCBvcmRlciwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIm9mZnNldF9saW1pdCIsIG9mZnNldF9saW1pdCA/IG9mZnNl dF9saW1pdCA6ICIiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBOVUxMKTsKKyAKKyAgIHJldHVybiBzcGFycWw7CisgfQorQEAgLTIzMSwxMiArMTc5LDM3 IEBAIHBob3Rvc19xdWVyeV9idWlsZGVyX2NvbGxlY3Rpb25faWNvbl9xdWVyeSAoUGhvdG9zU2Vh cmNoQ29udGV4dFN0YXRlICpzdGF0ZSwgY29uCisgUGhvdG9zUXVlcnkgKgorIHBob3Rvc19xdWVy eV9idWlsZGVyX2NvdW50X3F1ZXJ5IChQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0YXRlLCBn aW50IGZsYWdzKQorIHsKKy0gIFBob3Rvc1F1ZXJ5ICpxdWVyeTsKKysgIFBob3Rvc1NwYXJxbFRl bXBsYXRlICp0ZW1wbGF0ZTsKKysgIGNvbnN0IGdjaGFyICpwcm9qZWN0aW9uID0gTlVMTDsKKysg IGdfYXV0b2ZyZWUgZ2NoYXIgKml0ZW1fcGF0dGVybiA9IE5VTEw7CisrICBnX2F1dG9mcmVlIGdj aGFyICpzZWFyY2hfZmlsdGVyID0gTlVMTDsKKysgIGdfYXV0b2ZyZWUgZ2NoYXIgKnNvdXJjZV9m aWx0ZXIgPSBOVUxMOworICAgZ19hdXRvZnJlZSBnY2hhciAqc3BhcnFsID0gTlVMTDsKKy0gIGdf YXV0b2ZyZWUgZ2NoYXIgKndoZXJlX3NwYXJxbCA9IE5VTEw7CisrICBQaG90b3NRdWVyeSAqcXVl cnk7CisrCisrICB0ZW1wbGF0ZSA9IHBob3Rvc19iYXNlX21hbmFnZXJfZ2V0X3NwYXJxbF90ZW1w bGF0ZSAoc3RhdGUtPnNyY2hfdHlwX21uZ3IsIGZsYWdzKTsKKysKKysgIHByb2plY3Rpb24gPSAi Q09VTlQoP3VybikgIjsKKysKKysgIGl0ZW1fcGF0dGVybiA9IHBob3Rvc19iYXNlX21hbmFnZXJf Z2V0X3doZXJlIChzdGF0ZS0+aXRlbV9tbmdyLCBmbGFncyk7CisrCisrICBpZiAoISAoZmxhZ3Mg JiBQSE9UT1NfUVVFUllfRkxBR1NfVU5GSUxURVJFRCkpCisrICAgIHsKKysgICAgICBzb3VyY2Vf ZmlsdGVyID0gcGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfZmlsdGVyIChzdGF0ZS0+c3JjX21uZ3Is IGZsYWdzKTsKKysgICAgICBzZWFyY2hfZmlsdGVyID0gcGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRf ZmlsdGVyIChzdGF0ZS0+c3JjaF9tdGNoX21uZ3IsIGZsYWdzKTsKKysgICAgfQorKworKyAgc3Bh cnFsID0gcGhvdG9zX3NwYXJxbF90ZW1wbGF0ZV9nZXRfc3BhcnFsICh0ZW1wbGF0ZSwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInByb2plY3Rpb24iLCBw cm9qZWN0aW9uLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiY29sbGVjdGlvbnNfZGVmYXVsdF9maWx0ZXIiLCBjb2xsZWN0aW9uc19kZWZhdWx0X2ZpbHRl ciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIml0ZW1f cGF0dGVybiIsIGl0ZW1fcGF0dGVybiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgInBob3Rvc19kZWZhdWx0X2ZpbHRlciIsIHBob3Rvc19kZWZhdWx0X2Zp bHRlciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNv dXJjZV9maWx0ZXIiLCBzb3VyY2VfZmlsdGVyID8gc291cmNlX2ZpbHRlciA6ICIiLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2VhcmNoX2ZpbHRlciIs IHNlYXJjaF9maWx0ZXIgPyBzZWFyY2hfZmlsdGVyIDogIiIsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvcmRlciIsICIiLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib2Zmc2V0X2xpbWl0IiwgIiIsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworIAorLSAg d2hlcmVfc3BhcnFsID0gcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfd2hlcmUgKHN0YXRlLCBUUlVFLCBm bGFncyk7CistICBzcGFycWwgPSBnX3N0cmNvbmNhdCAoIlNFTEVDVCBESVNUSU5DVCBDT1VOVCg/ dXJuKSAiLCB3aGVyZV9zcGFycWwsIE5VTEwpOworICAgcXVlcnkgPSBwaG90b3NfcXVlcnlfbmV3 IChzdGF0ZSwgc3BhcnFsKTsKKyAKKyAgIHJldHVybiBxdWVyeTsKK2RpZmYgLS1naXQgYS9zcmMv cGhvdG9zLXNlYXJjaC10eXBlLW1hbmFnZXIuYyBiL3NyYy9waG90b3Mtc2VhcmNoLXR5cGUtbWFu YWdlci5jCitpbmRleCA4N2Y0NDFlZC4uNWM4N2Q0YTQgMTAwNjQ0CistLS0gYS9zcmMvcGhvdG9z LXNlYXJjaC10eXBlLW1hbmFnZXIuYworKysrIGIvc3JjL3Bob3Rvcy1zZWFyY2gtdHlwZS1tYW5h Z2VyLmMKK0BAIC00MSwxMyArNDEsNiBAQCBzdHJ1Y3QgX1Bob3Rvc1NlYXJjaFR5cGVNYW5hZ2Vy CisgR19ERUZJTkVfVFlQRSAoUGhvdG9zU2VhcmNoVHlwZU1hbmFnZXIsIHBob3Rvc19zZWFyY2hf dHlwZV9tYW5hZ2VyLCBQSE9UT1NfVFlQRV9CQVNFX01BTkFHRVIpOworIAorIAorLXN0YXRpYyBj b25zdCBnY2hhciAqQkxBQ0tMSVNURURfTUlNRV9UWVBFU1tdID0KKy17CistICAiaW1hZ2UvZ2lm IiwKKy0gICJpbWFnZS94LWVwcyIKKy19OworLQorLQorIHN0YXRpYyBnY2hhciAqCisgcGhvdG9z X3NlYXJjaF90eXBlX21hbmFnZXJfZ2V0X2ZpbHRlciAoUGhvdG9zQmFzZU1hbmFnZXIgKm1uZ3Is IGdpbnQgZmxhZ3MpCisgeworQEAgLTY5LDkgKzYyLDggQEAgcGhvdG9zX3NlYXJjaF90eXBlX21h bmFnZXJfZ2V0X2ZpbHRlciAoUGhvdG9zQmFzZU1hbmFnZXIgKm1uZ3IsIGdpbnQgZmxhZ3MpCisg ICByZXR1cm4gZmlsdGVyOworIH0KKyAKKy0KKy1zdGF0aWMgZ2NoYXIgKgorLXBob3Rvc19zZWFy Y2hfdHlwZV9tYW5hZ2VyX2dldF93aGVyZSAoUGhvdG9zQmFzZU1hbmFnZXIgKm1uZ3IsIGdpbnQg ZmxhZ3MpCisrc3RhdGljIFBob3Rvc1NwYXJxbFRlbXBsYXRlICoKKytwaG90b3Nfc2VhcmNoX3R5 cGVfbWFuYWdlcl9nZXRfc3BhcnFsX3RlbXBsYXRlIChQaG90b3NCYXNlTWFuYWdlciAqbW5nciwg Z2ludCBmbGFncykKKyB7CisgICBHT2JqZWN0ICpzZWFyY2hfdHlwZTsKKyAKK0BAIC04Niw3NCAr NzgsMzkgQEAgcGhvdG9zX3NlYXJjaF90eXBlX21hbmFnZXJfZ2V0X3doZXJlIChQaG90b3NCYXNl TWFuYWdlciAqbW5nciwgZ2ludCBmbGFncykKKyAgIGVsc2UKKyAgICAgc2VhcmNoX3R5cGUgPSBw aG90b3NfYmFzZV9tYW5hZ2VyX2dldF9vYmplY3RfYnlfaWQgKG1uZ3IsIFBIT1RPU19TRUFSQ0hf VFlQRV9TVE9DS19BTEwpOworIAorLSAgcmV0dXJuIHBob3Rvc19maWx0ZXJhYmxlX2dldF93aGVy ZSAoUEhPVE9TX0ZJTFRFUkFCTEUgKHNlYXJjaF90eXBlKSk7CisrICByZXR1cm4gcGhvdG9zX3Nl YXJjaF90eXBlX2dldF9zcGFycWxfdGVtcGxhdGUgKFBIT1RPU19TRUFSQ0hfVFlQRSAoc2VhcmNo X3R5cGUpKTsKKyB9CisgCistCisgc3RhdGljIHZvaWQKKyBwaG90b3Nfc2VhcmNoX3R5cGVfbWFu YWdlcl9pbml0IChQaG90b3NTZWFyY2hUeXBlTWFuYWdlciAqc2VsZikKKyB7CisgICBQaG90b3NT ZWFyY2hUeXBlICpzZWFyY2hfdHlwZTsKKy0gIGdjaGFyICppdGVtX2ZpbHRlcjsKKy0gIGdjaGFy ICphbGxfZmlsdGVyOworLSAgZ2NoYXIgKmJsYWNrbGlzdGVkX21pbWVfdHlwZXNfZmlsdGVyOwor LSAgZ2NoYXIgKmNvbF9maWx0ZXI7CistICBnY2hhciAqKnN0cnY7CistICBndWludCBpOworLSAg Z3VpbnQgbl9lbGVtZW50czsKKy0KKy0gIG5fZWxlbWVudHMgPSBHX05fRUxFTUVOVFMgKEJMQUNL TElTVEVEX01JTUVfVFlQRVMpOworLSAgc3RydiA9IChnY2hhciAqKikgZ19tYWxsb2MwX24gKG5f ZWxlbWVudHMgKyAxLCBzaXplb2YgKGdjaGFyICopKTsKKy0gIGZvciAoaSA9IDA7IGkgPCBuX2Vs ZW1lbnRzOyBpKyspCistICAgIHN0cnZbaV0gPSBnX3N0cmR1cF9wcmludGYgKCJuaWU6bWltZVR5 cGUoP3VybikgIT0gJyVzJyIsIEJMQUNLTElTVEVEX01JTUVfVFlQRVNbaV0pOworLQorLSAgYmxh Y2tsaXN0ZWRfbWltZV90eXBlc19maWx0ZXIgPSBnX3N0cmpvaW52ICgiICYmICIsIHN0cnYpOwor LQorLSAgaXRlbV9maWx0ZXIgPSBnX3N0cmR1cF9wcmludGYgKCIoZm46Y29udGFpbnMgKD90eXBl LCAnbm1tI1Bob3RvJykgJiYgJXMpIiwgYmxhY2tsaXN0ZWRfbWltZV90eXBlc19maWx0ZXIpOwor LSAgY29sX2ZpbHRlciA9IGdfc3RyZHVwX3ByaW50ZiAoIihmbjpjb250YWlucyAoP3R5cGUsICdu Zm8jRGF0YUNvbnRhaW5lcicpIgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAm JiA/Y291bnQgPiAwIgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAmJiAoZm46 c3RhcnRzLXdpdGggKG5hbzppZGVudGlmaWVyICg/dXJuKSwgJyVzJykiCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiICAgICB8fCAoP3VybiA9IG5mbzppbWFnZS1jYXRlZ29yeS1z Y3JlZW5zaG90KSkpIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBIT1RPU19R VUVSWV9DT0xMRUNUSU9OU19JREVOVElGSUVSKTsKKy0gIGFsbF9maWx0ZXIgPSBnX3N0cmR1cF9w cmludGYgKCIoJXMgfHwgJXMpIiwgY29sX2ZpbHRlciwgaXRlbV9maWx0ZXIpOworIAorICAgc2Vh cmNoX3R5cGUgPSBwaG90b3Nfc2VhcmNoX3R5cGVfbmV3X2Z1bGwgKFBIT1RPU19TRUFSQ0hfVFlQ RV9TVE9DS19BTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXygiQWxsIiksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIj91cm4gYSByZGZzOlJlc291cmNlLiAiCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIk9QVElPTkFMIHs/aXRlbSBhIG5tbTpQaG90bzsgbmllOmlzUGFy dE9mID91cm59IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhbGxfZmlsdGVyKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAicmVzb3VyY2U6Ly8vb3JnL2dub21lL1Bob3Rvcy9hbGwuc3BhcnFsLnRlbXBsYXRlIik7 CisgICBwaG90b3NfYmFzZV9tYW5hZ2VyX2FkZF9vYmplY3QgKFBIT1RPU19CQVNFX01BTkFHRVIg KHNlbGYpLCBHX09CSkVDVCAoc2VhcmNoX3R5cGUpKTsKKyAgIGdfb2JqZWN0X3VucmVmIChzZWFy Y2hfdHlwZSk7CisgCisgICBzZWFyY2hfdHlwZSA9IHBob3Rvc19zZWFyY2hfdHlwZV9uZXdfZnVs bCAoUEhPVE9TX1NFQVJDSF9UWVBFX1NUT0NLX0NPTExFQ1RJT05TLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIkFsYnVtcyIpLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI/dXJuIGEgbmZvOkRhdGFDb250YWlu ZXIuICIKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiP2l0 ZW0gYSBubW06UGhvdG87IG5pZTppc1BhcnRPZiA/dXJuLiIsCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX2ZpbHRlcik7CisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlc291cmNlOi8vL29yZy9nbm9tZS9QaG90 b3MvY29sbGVjdGlvbnMuc3BhcnFsLnRlbXBsYXRlIik7CisgICBwaG90b3NfYmFzZV9tYW5hZ2Vy X2FkZF9vYmplY3QgKFBIT1RPU19CQVNFX01BTkFHRVIgKHNlbGYpLCBHX09CSkVDVCAoc2VhcmNo X3R5cGUpKTsKKyAgIGdfb2JqZWN0X3VucmVmIChzZWFyY2hfdHlwZSk7CisgCisgICBzZWFyY2hf dHlwZSA9IHBob3Rvc19zZWFyY2hfdHlwZV9uZXdfZnVsbCAoUEhPVE9TX1NFQVJDSF9UWVBFX1NU T0NLX0ZBVk9SSVRFUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBfKCJGYXZvcml0ZXMiKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiP3VybiBhIG5tbTpQaG90bzsgbmFvOmhhc1RhZyBuYW86cHJlZGVmaW5lZC10 YWctZmF2b3JpdGUuICIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYmxhY2tsaXN0ZWRfbWltZV90eXBlc19maWx0ZXIpOworKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZXNvdXJjZTovLy9vcmcvZ25vbWUvUGhvdG9z L2Zhdm9yaXRlLXBob3Rvcy5zcGFycWwudGVtcGxhdGUiKTsKKyAgIHBob3Rvc19iYXNlX21hbmFn ZXJfYWRkX29iamVjdCAoUEhPVE9TX0JBU0VfTUFOQUdFUiAoc2VsZiksIEdfT0JKRUNUIChzZWFy Y2hfdHlwZSkpOworICAgZ19vYmplY3RfdW5yZWYgKHNlYXJjaF90eXBlKTsKKyAKKyAgIHNlYXJj aF90eXBlID0gcGhvdG9zX3NlYXJjaF90eXBlX25ld19mdWxsIChQSE9UT1NfU0VBUkNIX1RZUEVf U1RPQ0tfUEhPVE9TLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF8oIlBob3RvcyIpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICI/dXJuIGEgbm1tOlBob3RvIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBibGFja2xpc3RlZF9taW1lX3R5cGVzX2ZpbHRlcik7CisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlc291cmNlOi8vL29yZy9n bm9tZS9QaG90b3MvcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZSIpOworICAgcGhvdG9zX2Jhc2VfbWFu YWdlcl9hZGRfb2JqZWN0IChQSE9UT1NfQkFTRV9NQU5BR0VSIChzZWxmKSwgR19PQkpFQ1QgKHNl YXJjaF90eXBlKSk7CisgICBnX29iamVjdF91bnJlZiAoc2VhcmNoX3R5cGUpOworIAorICAgcGhv dG9zX2Jhc2VfbWFuYWdlcl9zZXRfYWN0aXZlX29iamVjdF9ieV9pZCAoUEhPVE9TX0JBU0VfTUFO QUdFUiAoc2VsZiksIFBIT1RPU19TRUFSQ0hfVFlQRV9TVE9DS19BTEwpOworLQorLSAgZ19mcmVl IChpdGVtX2ZpbHRlcik7CistICBnX2ZyZWUgKGFsbF9maWx0ZXIpOworLSAgZ19mcmVlIChibGFj a2xpc3RlZF9taW1lX3R5cGVzX2ZpbHRlcik7CistICBnX2ZyZWUgKGNvbF9maWx0ZXIpOworLSAg Z19zdHJmcmVldiAoc3Rydik7CisgfQorIAorIAorQEAgLTE2Myw3ICsxMjAsNyBAQCBwaG90b3Nf c2VhcmNoX3R5cGVfbWFuYWdlcl9jbGFzc19pbml0IChQaG90b3NTZWFyY2hUeXBlTWFuYWdlckNs YXNzICpjbGFzcykKKyAgIFBob3Rvc0Jhc2VNYW5hZ2VyQ2xhc3MgKmJhc2VfbWFuYWdlcl9jbGFz cyA9IFBIT1RPU19CQVNFX01BTkFHRVJfQ0xBU1MgKGNsYXNzKTsKKyAKKyAgIGJhc2VfbWFuYWdl cl9jbGFzcy0+Z2V0X2ZpbHRlciA9IHBob3Rvc19zZWFyY2hfdHlwZV9tYW5hZ2VyX2dldF9maWx0 ZXI7CistICBiYXNlX21hbmFnZXJfY2xhc3MtPmdldF93aGVyZSA9IHBob3Rvc19zZWFyY2hfdHlw ZV9tYW5hZ2VyX2dldF93aGVyZTsKKysgIGJhc2VfbWFuYWdlcl9jbGFzcy0+Z2V0X3NwYXJxbF90 ZW1wbGF0ZSA9IHBob3Rvc19zZWFyY2hfdHlwZV9tYW5hZ2VyX2dldF9zcGFycWxfdGVtcGxhdGU7 CisgfQorIAorIAorZGlmZiAtLWdpdCBhL3NyYy9waG90b3Mtc2VhcmNoLXR5cGUuYyBiL3NyYy9w aG90b3Mtc2VhcmNoLXR5cGUuYworaW5kZXggNDRkYzYwZWIuLmYzYmJhZTE1IDEwMDY0NAorLS0t IGEvc3JjL3Bob3Rvcy1zZWFyY2gtdHlwZS5jCisrKysgYi9zcmMvcGhvdG9zLXNlYXJjaC10eXBl LmMKK0BAIC0yNSwyNCArMjUsMjMgQEAKKyAKKyAjaW5jbHVkZSAicGhvdG9zLWZpbHRlcmFibGUu aCIKKyAjaW5jbHVkZSAicGhvdG9zLXNlYXJjaC10eXBlLmgiCisrI2luY2x1ZGUgInBob3Rvcy1z cGFycWwtdGVtcGxhdGUuaCIKKyAKKyAKKyBzdHJ1Y3QgX1Bob3Rvc1NlYXJjaFR5cGUKKyB7Cisg ICBHT2JqZWN0IHBhcmVudF9pbnN0YW5jZTsKKy0gIGdjaGFyICpmaWx0ZXI7CisgICBnY2hhciAq aWQ7CisgICBnY2hhciAqbmFtZTsKKy0gIGdjaGFyICp3aGVyZTsKKysgIFBob3Rvc1NwYXJxbFRl bXBsYXRlICpzcGFycWxfdGVtcGxhdGU7CisgfTsKKyAKKyBlbnVtCisgeworICAgUFJPUF8wLAor LSAgUFJPUF9GSUxURVIsCisgICBQUk9QX0lELAorICAgUFJPUF9OQU1FLAorLSAgUFJPUF9XSEVS RSwKKysgIFBST1BfU1BBUlFMX1RFTVBMQVRFLAorIH07CisgCisgc3RhdGljIHZvaWQgcGhvdG9z X3NlYXJjaF90eXBlX2ZpbHRlcmFibGVfaWZhY2VfaW5pdCAoUGhvdG9zRmlsdGVyYWJsZUludGVy ZmFjZSAqaWZhY2UpOworQEAgLTUzLDE0ICs1Miw2IEBAIEdfREVGSU5FX1RZUEVfV0lUSF9DT0RF IChQaG90b3NTZWFyY2hUeXBlLCBwaG90b3Nfc2VhcmNoX3R5cGUsIEdfVFlQRV9PQkpFQ1QsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGhvdG9zX3Nl YXJjaF90eXBlX2ZpbHRlcmFibGVfaWZhY2VfaW5pdCkpOworIAorIAorLXN0YXRpYyBnY2hhciAq CistcGhvdG9zX3NlYXJjaF90eXBlX2dldF9maWx0ZXIgKFBob3Rvc0ZpbHRlcmFibGUgKmlmYWNl KQorLXsKKy0gIFBob3Rvc1NlYXJjaFR5cGUgKnNlbGYgPSBQSE9UT1NfU0VBUkNIX1RZUEUgKGlm YWNlKTsKKy0gIHJldHVybiBnX3N0cmR1cCAoc2VsZi0+ZmlsdGVyKTsKKy19CistCistCisgc3Rh dGljIGNvbnN0IGdjaGFyICoKKyBwaG90b3Nfc2VhcmNoX3R5cGVfZ2V0X2lkIChQaG90b3NGaWx0 ZXJhYmxlICpmaWx0ZXJhYmxlKQorIHsKK0BAIC02OSwxNCArNjAsNiBAQCBwaG90b3Nfc2VhcmNo X3R5cGVfZ2V0X2lkIChQaG90b3NGaWx0ZXJhYmxlICpmaWx0ZXJhYmxlKQorIH0KKyAKKyAKKy1z dGF0aWMgZ2NoYXIgKgorLXBob3Rvc19zZWFyY2hfdHlwZV9nZXRfd2hlcmUgKFBob3Rvc0ZpbHRl cmFibGUgKmlmYWNlKQorLXsKKy0gIFBob3Rvc1NlYXJjaFR5cGUgKnNlbGYgPSBQSE9UT1NfU0VB UkNIX1RZUEUgKGlmYWNlKTsKKy0gIHJldHVybiBnX3N0cmR1cCAoc2VsZi0+d2hlcmUpOworLX0K Ky0KKy0KKyBzdGF0aWMgZ2Jvb2xlYW4KKyBwaG90b3Nfc2VhcmNoX3R5cGVfaXNfc2VhcmNoX2Ny aXRlcmlvbiAoUGhvdG9zRmlsdGVyYWJsZSAqaWZhY2UpCisgeworQEAgLTg0LDE1ICs2NywyMCBA QCBwaG90b3Nfc2VhcmNoX3R5cGVfaXNfc2VhcmNoX2NyaXRlcmlvbiAoUGhvdG9zRmlsdGVyYWJs ZSAqaWZhY2UpCisgfQorIAorIAorK1Bob3Rvc1NwYXJxbFRlbXBsYXRlICoKKytwaG90b3Nfc2Vh cmNoX3R5cGVfZ2V0X3NwYXJxbF90ZW1wbGF0ZSAoUGhvdG9zU2VhcmNoVHlwZSAqc2VsZikKKyt7 CisrICByZXR1cm4gc2VsZi0+c3BhcnFsX3RlbXBsYXRlOworK30KKysKKyBzdGF0aWMgdm9pZAor IHBob3Rvc19zZWFyY2hfdHlwZV9maW5hbGl6ZSAoR09iamVjdCAqb2JqZWN0KQorIHsKKyAgIFBo b3Rvc1NlYXJjaFR5cGUgKnNlbGYgPSBQSE9UT1NfU0VBUkNIX1RZUEUgKG9iamVjdCk7CisgCist ICBnX2ZyZWUgKHNlbGYtPmZpbHRlcik7CisgICBnX2ZyZWUgKHNlbGYtPmlkKTsKKyAgIGdfZnJl ZSAoc2VsZi0+bmFtZSk7CistICBnX2ZyZWUgKHNlbGYtPndoZXJlKTsKKysgIGdfY2xlYXJfb2Jq ZWN0ICgmc2VsZi0+c3BhcnFsX3RlbXBsYXRlKTsKKyAKKyAgIEdfT0JKRUNUX0NMQVNTIChwaG90 b3Nfc2VhcmNoX3R5cGVfcGFyZW50X2NsYXNzKS0+ZmluYWxpemUgKG9iamVjdCk7CisgfQorQEAg LTExMyw2ICsxMDEsMTAgQEAgcGhvdG9zX3NlYXJjaF90eXBlX2dldF9wcm9wZXJ0eSAoR09iamVj dCAqb2JqZWN0LCBndWludCBwcm9wX2lkLCBHVmFsdWUgKnZhbHVlLAorICAgICAgIGdfdmFsdWVf c2V0X3N0cmluZyAodmFsdWUsIHNlbGYtPm5hbWUpOworICAgICAgIGJyZWFrOworIAorKyAgICBj YXNlIFBST1BfU1BBUlFMX1RFTVBMQVRFOgorKyAgICAgIGdfdmFsdWVfc2V0X29iamVjdCAodmFs dWUsIHNlbGYtPnNwYXJxbF90ZW1wbGF0ZSk7CisrICAgICAgYnJlYWs7CisrCisgICAgIGRlZmF1 bHQ6CisgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEIChvYmplY3QsIHBy b3BfaWQsIHBzcGVjKTsKKyAgICAgICBicmVhazsKK0BAIC0xMjcsMTAgKzExOSw2IEBAIHBob3Rv c19zZWFyY2hfdHlwZV9zZXRfcHJvcGVydHkgKEdPYmplY3QgKm9iamVjdCwgZ3VpbnQgcHJvcF9p ZCwgY29uc3QgR1ZhbHVlICp2CisgCisgICBzd2l0Y2ggKHByb3BfaWQpCisgICAgIHsKKy0gICAg Y2FzZSBQUk9QX0ZJTFRFUjoKKy0gICAgICBzZWxmLT5maWx0ZXIgPSBnX3ZhbHVlX2R1cF9zdHJp bmcgKHZhbHVlKTsKKy0gICAgICBicmVhazsKKy0KKyAgICAgY2FzZSBQUk9QX0lEOgorICAgICAg IHNlbGYtPmlkID0gZ192YWx1ZV9kdXBfc3RyaW5nICh2YWx1ZSk7CisgICAgICAgYnJlYWs7CitA QCAtMTM5LDggKzEyNyw4IEBAIHBob3Rvc19zZWFyY2hfdHlwZV9zZXRfcHJvcGVydHkgKEdPYmpl Y3QgKm9iamVjdCwgZ3VpbnQgcHJvcF9pZCwgY29uc3QgR1ZhbHVlICp2CisgICAgICAgc2VsZi0+ bmFtZSA9IGdfdmFsdWVfZHVwX3N0cmluZyAodmFsdWUpOworICAgICAgIGJyZWFrOworIAorLSAg ICBjYXNlIFBST1BfV0hFUkU6CistICAgICAgc2VsZi0+d2hlcmUgPSBnX3ZhbHVlX2R1cF9zdHJp bmcgKHZhbHVlKTsKKysgICAgY2FzZSBQUk9QX1NQQVJRTF9URU1QTEFURToKKysgICAgICBzZWxm LT5zcGFycWxfdGVtcGxhdGUgPSBnX29iamVjdF9yZWYgKGdfdmFsdWVfZ2V0X29iamVjdCAodmFs dWUpKTsKKyAgICAgICBicmVhazsKKyAKKyAgICAgZGVmYXVsdDoKK0BAIC0xNjUsMTQgKzE1Myw2 IEBAIHBob3Rvc19zZWFyY2hfdHlwZV9jbGFzc19pbml0IChQaG90b3NTZWFyY2hUeXBlQ2xhc3Mg KmNsYXNzKQorICAgb2JqZWN0X2NsYXNzLT5nZXRfcHJvcGVydHkgPSBwaG90b3Nfc2VhcmNoX3R5 cGVfZ2V0X3Byb3BlcnR5OworICAgb2JqZWN0X2NsYXNzLT5zZXRfcHJvcGVydHkgPSBwaG90b3Nf c2VhcmNoX3R5cGVfc2V0X3Byb3BlcnR5OworIAorLSAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9w cm9wZXJ0eSAob2JqZWN0X2NsYXNzLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUFJPUF9GSUxURVIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3Bh cmFtX3NwZWNfc3RyaW5nICgiZmlsdGVyIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIsCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKHRydWUpIiwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfUEFSQU1f Q09OU1RSVUNUX09OTFkgfCBHX1BBUkFNX1dSSVRBQkxFKSk7CistCisgICBnX29iamVjdF9jbGFz c19pbnN0YWxsX3Byb3BlcnR5IChvYmplY3RfY2xhc3MsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQUk9QX0lELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZ19wYXJhbV9zcGVjX3N0cmluZyAoImlkIiwKK0BAIC0xOTAsMTEgKzE3MCwxMSBAQCBwaG90 b3Nfc2VhcmNoX3R5cGVfY2xhc3NfaW5pdCAoUGhvdG9zU2VhcmNoVHlwZUNsYXNzICpjbGFzcykK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEdfUEFSQU1fQ09OU1RSVUNUX09OTFkgfCBHX1BBUkFNX1JFQURXUklURSkpOworIAorICAgZ19v YmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSAob2JqZWN0X2NsYXNzLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9XSEVSRSwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcgKCJ3aGVyZSIsCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfU1BBUlFMX1RFTVBMQVRFLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX29iamVjdCAoInNw YXJxbC10ZW1wbGF0ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICIiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUEhPVE9TX1RZUEVfU1BBUlFMX1RFTVBMQVRFLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg R19QQVJBTV9DT05TVFJVQ1RfT05MWSB8IEdfUEFSQU1fV1JJVEFCTEUpKTsKKyB9CisgCitAQCAt MjAyLDkgKzE4Miw3IEBAIHBob3Rvc19zZWFyY2hfdHlwZV9jbGFzc19pbml0IChQaG90b3NTZWFy Y2hUeXBlQ2xhc3MgKmNsYXNzKQorIHN0YXRpYyB2b2lkCisgcGhvdG9zX3NlYXJjaF90eXBlX2Zp bHRlcmFibGVfaWZhY2VfaW5pdCAoUGhvdG9zRmlsdGVyYWJsZUludGVyZmFjZSAqaWZhY2UpCisg eworLSAgaWZhY2UtPmdldF9maWx0ZXIgPSBwaG90b3Nfc2VhcmNoX3R5cGVfZ2V0X2ZpbHRlcjsK KyAgIGlmYWNlLT5nZXRfaWQgPSBwaG90b3Nfc2VhcmNoX3R5cGVfZ2V0X2lkOworLSAgaWZhY2Ut PmdldF93aGVyZSA9IHBob3Rvc19zZWFyY2hfdHlwZV9nZXRfd2hlcmU7CisgICBpZmFjZS0+aXNf c2VhcmNoX2NyaXRlcmlvbiA9IHBob3Rvc19zZWFyY2hfdHlwZV9pc19zZWFyY2hfY3JpdGVyaW9u OworIH0KKyAKK0BAIC0yMTcsMTIgKzE5NSwxMyBAQCBwaG90b3Nfc2VhcmNoX3R5cGVfbmV3IChj b25zdCBnY2hhciAqaWQsIGNvbnN0IGdjaGFyICpuYW1lKQorIAorIAorIFBob3Rvc1NlYXJjaFR5 cGUgKgorLXBob3Rvc19zZWFyY2hfdHlwZV9uZXdfZnVsbCAoY29uc3QgZ2NoYXIgKmlkLCBjb25z dCBnY2hhciAqbmFtZSwgY29uc3QgZ2NoYXIgKndoZXJlLCBjb25zdCBnY2hhciAqZmlsdGVyKQor K3Bob3Rvc19zZWFyY2hfdHlwZV9uZXdfZnVsbCAoY29uc3QgZ2NoYXIgKmlkLCBjb25zdCBnY2hh ciAqbmFtZSwgY29uc3QgZ2NoYXIgKnRlbXBsYXRlX3BhdGgpCisgeworKyAgZ19hdXRvcHRyIChQ aG90b3NTcGFycWxUZW1wbGF0ZSkgdGVtcGxhdGUgPSBwaG90b3Nfc3BhcnFsX3RlbXBsYXRlX25l dyAodGVtcGxhdGVfcGF0aCk7CisrCisgICByZXR1cm4gZ19vYmplY3RfbmV3IChQSE9UT1NfVFlQ RV9TRUFSQ0hfVFlQRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJpZCIsIGlkLAorICAgICAg ICAgICAgICAgICAgICAgICAgIm5hbWUiLCBuYW1lLAorLSAgICAgICAgICAgICAgICAgICAgICAg ImZpbHRlciIsIGZpbHRlciwKKy0gICAgICAgICAgICAgICAgICAgICAgICJ3aGVyZSIsIHdoZXJl LAorKyAgICAgICAgICAgICAgICAgICAgICAgInNwYXJxbC10ZW1wbGF0ZSIsIHRlbXBsYXRlLAor ICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisgfQorZGlmZiAtLWdpdCBhL3NyYy9waG90 b3Mtc2VhcmNoLXR5cGUuaCBiL3NyYy9waG90b3Mtc2VhcmNoLXR5cGUuaAoraW5kZXggMmY3MTM1 YmQuLjdkNjk5ZGQ0IDEwMDY0NAorLS0tIGEvc3JjL3Bob3Rvcy1zZWFyY2gtdHlwZS5oCisrKysg Yi9zcmMvcGhvdG9zLXNlYXJjaC10eXBlLmgKK0BAIC0yNCw2ICsyNCw3IEBACisgI2RlZmluZSBQ SE9UT1NfU0VBUkNIX1RZUEVfSAorIAorICNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorKyNpbmNs dWRlICJwaG90b3Mtc3BhcnFsLXRlbXBsYXRlLmgiCisgCisgR19CRUdJTl9ERUNMUworIAorQEAg LTM5LDggKzQwLDkgQEAgUGhvdG9zU2VhcmNoVHlwZSAgICAqcGhvdG9zX3NlYXJjaF90eXBlX25l dyAgICAgICAgICAgICAgICAoY29uc3QgZ2NoYXIgKmlkLCBjb24KKyAKKyBQaG90b3NTZWFyY2hU eXBlICAgICpwaG90b3Nfc2VhcmNoX3R5cGVfbmV3X2Z1bGwgICAgICAgICAgIChjb25zdCBnY2hh ciAqaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgZ2NoYXIgKm5hbWUsCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgKndoZXJlLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGdjaGFyICpmaWx0ZXIpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICp0ZW1wbGF0ZV9wYXRo KTsKKysKKytQaG90b3NTcGFycWxUZW1wbGF0ZSAqcGhvdG9zX3NlYXJjaF90eXBlX2dldF9zcGFy cWxfdGVtcGxhdGUgKFBob3Rvc1NlYXJjaFR5cGUgKnNlbGYpOworIAorIEdfRU5EX0RFQ0xTCisg CitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy1zcGFycWwtdGVtcGxhdGUuYyBiL3NyYy9waG90b3Mt c3BhcnFsLXRlbXBsYXRlLmMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMC4u YjMyNDM3YzAKKy0tLSAvZGV2L251bGwKKysrKyBiL3NyYy9waG90b3Mtc3BhcnFsLXRlbXBsYXRl LmMKK0BAIC0wLDAgKzEsMTg3IEBACisrLyoKKysgKiBQaG90b3MgLSBhY2Nlc3MsIG9yZ2FuaXpl IGFuZCBzaGFyZSB5b3VyIHBob3RvcyBvbiBHTk9NRQorKyAqIENvcHlyaWdodCDCqSAyMDIwIFNh bSBUaHVyc2ZpZWxkIDxzYW1AYWZ1ZXJhLm1lLnVrPgorKyAqCisrICogVGhpcyBwcm9ncmFtIGlz IGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysg KiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz IHB1Ymxpc2hlZCBieQorKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2 ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4KKysgKgorKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICogTUVSQ0hBTlRBQklM SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyAqIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrICoKKysgKiBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZQorKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93 d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKyAqLworKworKyNpbmNsdWRlIDxnaW8vZ2lvLmg+Cisr CisrI2luY2x1ZGUgInBob3Rvcy1zcGFycWwtdGVtcGxhdGUuaCIKKysKKysjZGVmaW5lIE1BWF9T UEFSUUxfVEVNUExBVEVfU0laRSAoMTAyNCAqIDEwKQorKworK3N0cnVjdCBfUGhvdG9zU3BhcnFs VGVtcGxhdGUgeworKyAgR09iamVjdCBwYXJlbnRfaW5zdGFuY2U7CisrICBnY2hhciAqdGVtcGxh dGVfcGF0aDsKKysgIGdjaGFyICp0ZW1wbGF0ZV90ZXh0OworK307CisrCisrR19ERUZJTkVfVFlQ RSAoUGhvdG9zU3BhcnFsVGVtcGxhdGUsIHBob3Rvc19zcGFycWxfdGVtcGxhdGUsIEdfVFlQRV9P QkpFQ1QpCisrCisrZW51bSB7CisrICBQUk9QXzAsCisrICBQUk9QX1RFTVBMQVRFX1BBVEgsCisr ICBOX1BST1BTCisrfTsKKysKKytQaG90b3NTcGFycWxUZW1wbGF0ZSAqCisrcGhvdG9zX3NwYXJx bF90ZW1wbGF0ZV9uZXcgKGNvbnN0IGdjaGFyICp0ZW1wbGF0ZV9wYXRoKQorK3sKKysgIHJldHVy biBnX29iamVjdF9uZXcgKFBIT1RPU19UWVBFX1NQQVJRTF9URU1QTEFURSwgInRlbXBsYXRlLXBh dGgiLCB0ZW1wbGF0ZV9wYXRoLCBOVUxMKTsKKyt9CisrCisrc3RhdGljIHZvaWQKKytwaG90b3Nf c3BhcnFsX3RlbXBsYXRlX2NvbnN0cnVjdGVkIChHT2JqZWN0ICpvYmplY3QpCisreworKyAgUGhv dG9zU3BhcnFsVGVtcGxhdGUgKnNlbGYgPSBQSE9UT1NfU1BBUlFMX1RFTVBMQVRFIChvYmplY3Qp OworKyAgZ19hdXRvcHRyIChHRmlsZSkgZmlsZSA9IE5VTEw7CisrICBnX2F1dG9wdHIgKEdGaWxl SW5wdXRTdHJlYW0pIHN0cmVhbSA9IE5VTEw7CisrICBnY2hhciBidWZmZXJbTUFYX1NQQVJRTF9U RU1QTEFURV9TSVpFICsgMV07CisrICBnc2l6ZSBieXRlc19yZWFkOworKyAgZ19hdXRvcHRyIChH RXJyb3IpIGVycm9yID0gTlVMTDsKKysKKysgIEdfT0JKRUNUX0NMQVNTIChwaG90b3Nfc3BhcnFs X3RlbXBsYXRlX3BhcmVudF9jbGFzcyktPmNvbnN0cnVjdGVkIChvYmplY3QpOworKworKyAgZmls ZSA9IGdfZmlsZV9uZXdfZm9yX3VyaSAoc2VsZi0+dGVtcGxhdGVfcGF0aCk7CisrCisrICBzdHJl YW0gPSBnX2ZpbGVfcmVhZCAoZmlsZSwgTlVMTCwgJmVycm9yKTsKKysKKysgIGlmICghc3RyZWFt KQorKyAgICB7CisrICAgICAgZ19jcml0aWNhbCAoIkZhaWxlZCB0byBvcGVuIHRlbXBsYXRlICVz OiAlcyIsIHNlbGYtPnRlbXBsYXRlX3BhdGgsIGVycm9yLT5tZXNzYWdlKTsKKysgICAgfQorKwor KyAgZ19pbnB1dF9zdHJlYW1fcmVhZF9hbGwgKEdfSU5QVVRfU1RSRUFNIChzdHJlYW0pLCBidWZm ZXIsIE1BWF9TUEFSUUxfVEVNUExBVEVfU0laRSwgJmJ5dGVzX3JlYWQsIE5VTEwsICZlcnJvcik7 CisrCisrICBpZiAoZXJyb3IpCisrICAgIHsKKysgICAgICBnX2NyaXRpY2FsICgiRmFpbGVkIHRv IHJlYWQgdGVtcGxhdGUgJXM6ICVzIiwgc2VsZi0+dGVtcGxhdGVfcGF0aCwgZXJyb3ItPm1lc3Nh Z2UpOworKyAgICB9CisrCisrICBidWZmZXJbYnl0ZXNfcmVhZF0gPSAnXDAnOworKworKyAgc2Vs Zi0+dGVtcGxhdGVfdGV4dCAgPSBnX3N0cmR1cCAoYnVmZmVyKTsKKyt9CisrCisrc3RhdGljIHZv aWQKKytwaG90b3Nfc3BhcnFsX3RlbXBsYXRlX2ZpbmFsaXplIChHT2JqZWN0ICpvYmplY3QpCisr eworKyAgR19PQkpFQ1RfQ0xBU1MgKHBob3Rvc19zcGFycWxfdGVtcGxhdGVfcGFyZW50X2NsYXNz KS0+ZmluYWxpemUgKG9iamVjdCk7CisrfQorKworK3N0YXRpYyB2b2lkCisrcGhvdG9zX3NwYXJx bF90ZW1wbGF0ZV9nZXRfcHJvcGVydHkgKEdPYmplY3QgICAgKm9iamVjdCwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAgcHJvcF9pZCwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1ZhbHVlICAgICAqdmFsdWUsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdQYXJhbVNwZWMgKnBzcGVjKQorK3sKKysg IFBob3Rvc1NwYXJxbFRlbXBsYXRlICpzZWxmID0gUEhPVE9TX1NQQVJRTF9URU1QTEFURSAob2Jq ZWN0KTsKKysKKysgIHN3aXRjaCAocHJvcF9pZCkKKysgICAgeworKyAgICBjYXNlIFBST1BfVEVN UExBVEVfUEFUSDoKKysgICAgICBnX3ZhbHVlX3NldF9zdHJpbmcgKHZhbHVlLCBzZWxmLT50ZW1w bGF0ZV9wYXRoKTsKKysgICAgICBicmVhazsKKysKKysgICAgZGVmYXVsdDoKKysgICAgICBHX09C SkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQgKG9iamVjdCwgcHJvcF9pZCwgcHNwZWMpOwor KyAgICB9CisrfQorKworK3N0YXRpYyB2b2lkCisrcGhvdG9zX3NwYXJxbF90ZW1wbGF0ZV9zZXRf cHJvcGVydHkgKEdPYmplY3QgICAgICAqb2JqZWN0LAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBndWludCAgICAgICAgIHByb3BfaWQsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IEdWYWx1ZSAqdmFsdWUsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEdQYXJhbVNwZWMgICAqcHNwZWMpCisreworKyAgUGhvdG9z U3BhcnFsVGVtcGxhdGUgKnNlbGYgPSBQSE9UT1NfU1BBUlFMX1RFTVBMQVRFIChvYmplY3QpOwor KworKyAgc3dpdGNoIChwcm9wX2lkKQorKyAgICB7CisrICAgIGNhc2UgUFJPUF9URU1QTEFURV9Q QVRIOgorKyAgICAgIHNlbGYtPnRlbXBsYXRlX3BhdGggPSBnX3ZhbHVlX2R1cF9zdHJpbmcgKHZh bHVlKTsKKysgICAgICBicmVhazsKKysKKysgICAgZGVmYXVsdDoKKysgICAgICBHX09CSkVDVF9X QVJOX0lOVkFMSURfUFJPUEVSVFlfSUQgKG9iamVjdCwgcHJvcF9pZCwgcHNwZWMpOworKyAgICB9 CisrfQorKworK3N0YXRpYyB2b2lkCisrcGhvdG9zX3NwYXJxbF90ZW1wbGF0ZV9jbGFzc19pbml0 IChQaG90b3NTcGFycWxUZW1wbGF0ZUNsYXNzICprbGFzcykKKyt7CisrICBHT2JqZWN0Q2xhc3Mg Km9iamVjdF9jbGFzcyA9IEdfT0JKRUNUX0NMQVNTIChrbGFzcyk7CisrCisrICBvYmplY3RfY2xh c3MtPmNvbnN0cnVjdGVkID0gcGhvdG9zX3NwYXJxbF90ZW1wbGF0ZV9jb25zdHJ1Y3RlZDsKKysg IG9iamVjdF9jbGFzcy0+ZmluYWxpemUgPSBwaG90b3Nfc3BhcnFsX3RlbXBsYXRlX2ZpbmFsaXpl OworKyAgb2JqZWN0X2NsYXNzLT5nZXRfcHJvcGVydHkgPSBwaG90b3Nfc3BhcnFsX3RlbXBsYXRl X2dldF9wcm9wZXJ0eTsKKysgIG9iamVjdF9jbGFzcy0+c2V0X3Byb3BlcnR5ID0gcGhvdG9zX3Nw YXJxbF90ZW1wbGF0ZV9zZXRfcHJvcGVydHk7CisrCisrICBnX29iamVjdF9jbGFzc19pbnN0YWxs X3Byb3BlcnR5IChvYmplY3RfY2xhc3MsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBQUk9QX1RFTVBMQVRFX1BBVEgsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nICgidGVtcGxhdGUtcGF0aCIsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVtcGxhdGUgcGF0 aCIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiUGF0aCB0byB0aGUgdGVtcGxhdGUgZmlsZS4iLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfUEFSQU1fQ09OU1RS VUNUX09OTFkgfCBHX1BBUkFNX1JFQURXUklURSkpOworK30KKysKKytzdGF0aWMgdm9pZAorK3Bo b3Rvc19zcGFycWxfdGVtcGxhdGVfaW5pdCAoUGhvdG9zU3BhcnFsVGVtcGxhdGUgKnNlbGYpCisr eworK30KKysKKysKKytnY2hhciAqCisrcGhvdG9zX3NwYXJxbF90ZW1wbGF0ZV9nZXRfc3BhcnFs IChQaG90b3NTcGFycWxUZW1wbGF0ZSAqc2VsZiwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICpmaXJzdF9iaW5kaW5nX25hbWUsIC4uLikK Kyt7CisrICB2YV9saXN0IHZhOworKyAgZ2NoYXIgKnNwYXJxbDsKKysKKysgIHNwYXJxbCA9IHNl bGYtPnRlbXBsYXRlX3RleHQ7CisrCisrICAvKiBGSVhNRTogdGhpcyBpcyBhbiBpbmVmZmljZW50 IHdheSB0byBkbyB0ZW1wbGF0ZSBzdWJzdGl0dXRpb25zCisrICAgKiBiZWNhdXNlIHdlIGFsbG9j YXRlIGFuZCBmcmVlIGEgY29weSBvZiB0aGUgc3RyaW5nIGZvciBlYWNoIGJpbmRpbmcuCisrICAg KiBXZSBzaG91bGQgY2hlY2sgaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL3RlbXBsYXRl LWdsaWIvCisrICAgKi8KKysgIGlmIChmaXJzdF9iaW5kaW5nX25hbWUpCisrICAgIHsKKysgICAg ICBHUmVnZXggKnJlZ2V4OworKyAgICAgIGdjaGFyICpuYW1lX3JlZ2V4OworKyAgICAgIGNvbnN0 IGdjaGFyICpuYW1lOworKyAgICAgIGNvbnN0IGdjaGFyICp2YWx1ZTsKKysKKysgICAgICB2YV9z dGFydCAodmEsIGZpcnN0X2JpbmRpbmdfbmFtZSk7CisrICAgICAgbmFtZSA9IGZpcnN0X2JpbmRp bmdfbmFtZTsKKysgICAgICBkbyB7CisrICAgICAgICB2YWx1ZSA9IHZhX2FyZyAodmEsIGNvbnN0 IGdjaGFyICopOworKworKyAgICAgICAgaWYgKHZhbHVlID09IE5VTEwpCisrICAgICAgICAgIHsK KysgICAgICAgICAgICBnX2NyaXRpY2FsICgiTWlzc2luZyB2YWx1ZSBmb3IgYXJndW1lbnQgXCIl c1wiIiwgbmFtZSk7CisrICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICAgIH0KKysKKysgICAg ICAgIG5hbWVfcmVnZXggPSBnX3N0cmR1cF9wcmludGYgKCJ7e1xccz8lc1xccz99fSIsIG5hbWUp OworKyAgICAgICAgcmVnZXggPSBnX3JlZ2V4X25ldyAobmFtZV9yZWdleCwgMCwgMCwgTlVMTCk7 CisrICAgICAgICBzcGFycWwgPSBnX3JlZ2V4X3JlcGxhY2VfbGl0ZXJhbCAocmVnZXgsIHNwYXJx bCwgLTEsIDAsIHZhbHVlLCAwLCBOVUxMKSA7CisrICAgICAgfSB3aGlsZSAoKG5hbWUgPSB2YV9h cmcgKHZhLCBjb25zdCBnY2hhciAqKSkpOworKworKyAgICAgIHZhX2VuZCAodmEpOworKyAgICB9 CisrCisrICByZXR1cm4gc3BhcnFsOworK30KK2RpZmYgLS1naXQgYS9zcmMvcGhvdG9zLXNwYXJx bC10ZW1wbGF0ZS5oIGIvc3JjL3Bob3Rvcy1zcGFycWwtdGVtcGxhdGUuaAorbmV3IGZpbGUgbW9k ZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwLi42NjM1MWIzOAorLS0tIC9kZXYvbnVsbAorKysrIGIv c3JjL3Bob3Rvcy1zcGFycWwtdGVtcGxhdGUuaAorQEAgLTAsMCArMSwzOCBAQAorKy8qCisrICog UGhvdG9zIC0gYWNjZXNzLCBvcmdhbml6ZSBhbmQgc2hhcmUgeW91ciBwaG90b3Mgb24gR05PTUUK KysgKiBDb3B5cmlnaHQgwqkgMjAyMCBTYW0gVGh1cnNmaWVsZCA8c2FtQGFmdWVyYS5tZS51az4K KysgKgorKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysgKiB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyAq IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrICoKKysgKiBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysg KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgorKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUKKysgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgorKyAqCisrICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysgKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh bS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysgKi8KKysK KysjcHJhZ21hIG9uY2UKKysKKysjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKysKKytHX0JFR0lO X0RFQ0xTCisrCisrI2RlZmluZSBQSE9UT1NfVFlQRV9TUEFSUUxfVEVNUExBVEUgKHBob3Rvc19z cGFycWxfdGVtcGxhdGVfZ2V0X3R5cGUoKSkKKysKKytHX0RFQ0xBUkVfRklOQUxfVFlQRSAoUGhv dG9zU3BhcnFsVGVtcGxhdGUsIHBob3Rvc19zcGFycWxfdGVtcGxhdGUsIFBIT1RPUywgU1BBUlFM X1RFTVBMQVRFLCBHT2JqZWN0KQorKworK3N0cnVjdCBfUGhvdG9zU3BhcnFsVGVtcGxhdGVDbGFz cworK3sKKysgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CisrfTsKKysKKytQaG90b3NTcGFy cWxUZW1wbGF0ZSAqcGhvdG9zX3NwYXJxbF90ZW1wbGF0ZV9uZXcgKGNvbnN0IGdjaGFyICp0ZW1w bGF0ZV9wYXRoKTsKKysKKytnY2hhciAqcGhvdG9zX3NwYXJxbF90ZW1wbGF0ZV9nZXRfc3BhcnFs IChQaG90b3NTcGFycWxUZW1wbGF0ZSAqc2VsZiwgY29uc3QgZ2NoYXIgKmZpcnN0X2JpbmRpbmdf bmFtZSwgLi4uKSAgR19HTlVDX05VTExfVEVSTUlOQVRFRDsKKysKKytHX0VORF9ERUNMUworZGlm ZiAtLWdpdCBhL3NyYy9waG90b3MuZ3Jlc291cmNlLnhtbCBiL3NyYy9waG90b3MuZ3Jlc291cmNl LnhtbAoraW5kZXggMTAxNWIxMWQuLjM5ZTZkODQyIDEwMDY0NAorLS0tIGEvc3JjL3Bob3Rvcy5n cmVzb3VyY2UueG1sCisrKysgYi9zcmMvcGhvdG9zLmdyZXNvdXJjZS54bWwKK0BAIC0zNSw2ICsz NSwxMCBAQAorICAgICA8ZmlsZSBhbGlhcz0ic2VsZWN0aW9uLXRvb2xiYXIudWkiIHByZXByb2Nl c3M9InhtbC1zdHJpcGJsYW5rcyIgY29tcHJlc3NlZD0idHJ1ZSI+cGhvdG9zLXNlbGVjdGlvbi10 b29sYmFyLnVpPC9maWxlPgorICAgICA8ZmlsZSBhbGlhcz0ic2hhcmUtZGlhbG9nLnVpIiBwcmVw cm9jZXNzPSJ4bWwtc3RyaXBibGFua3MiIGNvbXByZXNzZWQ9InRydWUiPnBob3Rvcy1zaGFyZS1k aWFsb2cudWk8L2ZpbGU+CisgICAgIDxmaWxlIGFsaWFzPSJ6b29tLWNvbnRyb2xzLnVpIiBwcmVw cm9jZXNzPSJ4bWwtc3RyaXBibGFua3MiIGNvbXByZXNzZWQ9InRydWUiPnBob3Rvcy16b29tLWNv bnRyb2xzLnVpPC9maWxlPgorKyAgICA8ZmlsZSBhbGlhcz0iYWxsLnNwYXJxbC50ZW1wbGF0ZSI+ cXVlcmllcy9hbGwuc3BhcnFsLnRlbXBsYXRlPC9maWxlPgorKyAgICA8ZmlsZSBhbGlhcz0iY29s bGVjdGlvbnMuc3BhcnFsLnRlbXBsYXRlIj5xdWVyaWVzL2NvbGxlY3Rpb25zLnNwYXJxbC50ZW1w bGF0ZTwvZmlsZT4KKysgICAgPGZpbGUgYWxpYXM9ImZhdm9yaXRlLXBob3Rvcy5zcGFycWwudGVt cGxhdGUiPnF1ZXJpZXMvZmF2b3JpdGUtcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZTwvZmlsZT4KKysg ICAgPGZpbGUgYWxpYXM9InBob3Rvcy5zcGFycWwudGVtcGxhdGUiPnF1ZXJpZXMvcGhvdG9zLnNw YXJxbC50ZW1wbGF0ZTwvZmlsZT4KKyAgIDwvZ3Jlc291cmNlPgorIAorICAgPGdyZXNvdXJjZSBw cmVmaXg9Ii9vcmcvZ25vbWUvUGhvdG9zL2d0ayI+CitkaWZmIC0tZ2l0IGEvc3JjL3F1ZXJpZXMv YWxsLnNwYXJxbC50ZW1wbGF0ZSBiL3NyYy9xdWVyaWVzL2FsbC5zcGFycWwudGVtcGxhdGUKK25l dyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMC4uMWNlZjk4ZTgKKy0tLSAvZGV2L251 bGwKKysrKyBiL3NyYy9xdWVyaWVzL2FsbC5zcGFycWwudGVtcGxhdGUKK0BAIC0wLDAgKzEsMzEg QEAKKytTRUxFQ1Qge3twcm9qZWN0aW9ufX0KKyt7CisrICAgIHsKKysgICAgICAgIFNFTEVDVCB7 e3Byb2plY3Rpb259fQorKyAgICAgICAgeworKyAgICAgICAgICAgIHsKKysgICAgICAgICAgICAg ICAgU0VMRUNUID91cm4gQ09VTlQoP2l0ZW0pIEFTID9jb3VudAorKyAgICAgICAgICAgICAgICB7 CisrICAgICAgICAgICAgICAgICAgICA/dXJuIGEgbmZvOkRhdGFDb250YWluZXIuCisrICAgICAg ICAgICAgICAgICAgICA/aXRlbSBhIG5tbTpQaG90bzsgbmllOmlzUGFydE9mID91cm4uCisrICAg ICAgICAgICAgICAgIH0gR1JPVVAgQlkgP3VybgorKyAgICAgICAgICAgIH0KKysgICAgICAgICAg ICBGSUxURVIgKD9jb3VudCA+IDAgJiYge3tjb2xsZWN0aW9uc19kZWZhdWx0X2ZpbHRlcn19ICYm IHt7c2VhcmNoX2ZpbHRlcn19KQorKyAgICAgICAgfQorKyAgICAgICAgR1JPVVAgQlkgP3Vybgor KyAgICB9CisrICAgIFVOSU9OCisrICAgIHsKKysgICAgICAgIFNFTEVDVCB7e3Byb2plY3Rpb259 fQorKyAgICAgICAgeworKyAgICAgICAgICAgID91cm4gYSBubW06UGhvdG8gLgorKyAgICAgICAg ICAgIE9QVElPTkFMIHsgP3VybiBuY286Y3JlYXRvciA/Y3JlYXRvciAuIH0KKysgICAgICAgICAg ICBPUFRJT05BTCB7ID91cm4gbmNvOnB1Ymxpc2hlciA/cHVibGlzaGVyIC4gfQorKyAgICAgICAg ICAgIHt7aXRlbV9wYXR0ZXJufX0KKysgICAgICAgICAgICBGSUxURVIgKHt7cGhvdG9zX2RlZmF1 bHRfZmlsdGVyfX0gJiYge3tzb3VyY2VfZmlsdGVyfX0gJiYge3tzZWFyY2hfZmlsdGVyfX0pCisr ICAgICAgICB9CisrICAgICAgICBHUk9VUCBCWSA/dXJuCisrICAgIH0KKyt9Cisre3tvcmRlcn19 Cisre3tvZmZzZXRfbGltaXR9fQorZGlmZiAtLWdpdCBhL3NyYy9xdWVyaWVzL2NvbGxlY3Rpb25z LnNwYXJxbC50ZW1wbGF0ZSBiL3NyYy9xdWVyaWVzL2NvbGxlY3Rpb25zLnNwYXJxbC50ZW1wbGF0 ZQorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwLi4yMGIzNWNkNgorLS0tIC9k ZXYvbnVsbAorKysrIGIvc3JjL3F1ZXJpZXMvY29sbGVjdGlvbnMuc3BhcnFsLnRlbXBsYXRlCitA QCAtMCwwICsxLDE0IEBACisrU0VMRUNUIHt7cHJvamVjdGlvbn19CisreworKyAgICB7CisrICAg ICAgICBTRUxFQ1QgP3VybiBDT1VOVCg/aXRlbSkgQVMgP2NvdW50CisrICAgICAgICB7CisrICAg ICAgICAgICAgP3VybiBhIG5mbzpEYXRhQ29udGFpbmVyLgorKyAgICAgICAgICAgID9pdGVtIGEg bm1tOlBob3RvOyBuaWU6aXNQYXJ0T2YgP3Vybi4KKysgICAgICAgIH0gR1JPVVAgQlkgP3Vybgor KyAgICB9CisrICAgIEZJTFRFUiAoP2NvdW50ID4gMCAmJiB7e2NvbGxlY3Rpb25zX2RlZmF1bHRf ZmlsdGVyfX0gJiYge3tzZWFyY2hfZmlsdGVyfX0pCisrfQorK0dST1VQIEJZID91cm4KKyt7e29y ZGVyfX0KKyt7e29mZnNldF9saW1pdH19CitkaWZmIC0tZ2l0IGEvc3JjL3F1ZXJpZXMvZmF2b3Jp dGUtcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZSBiL3NyYy9xdWVyaWVzL2Zhdm9yaXRlLXBob3Rvcy5z cGFycWwudGVtcGxhdGUKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMC4uMDg4 NWEwOGEKKy0tLSAvZGV2L251bGwKKysrKyBiL3NyYy9xdWVyaWVzL2Zhdm9yaXRlLXBob3Rvcy5z cGFycWwudGVtcGxhdGUKK0BAIC0wLDAgKzEsMTIgQEAKKytTRUxFQ1Qge3twcm9qZWN0aW9ufX0K Kyt7CisrICAgID91cm4gYSBubW06UGhvdG8gLgorKyAgICA/dXJuIGEgbm1tOlBob3RvOyBuYW86 aGFzVGFnIG5hbzpwcmVkZWZpbmVkLXRhZy1mYXZvcml0ZSAuCisrICAgIE9QVElPTkFMIHsgP3Vy biBuY286Y3JlYXRvciA/Y3JlYXRvciAuIH0KKysgICAgT1BUSU9OQUwgeyA/dXJuIG5jbzpwdWJs aXNoZXIgP3B1Ymxpc2hlciAuIH0KKysgICAge3tpdGVtX3BhdHRlcm59fQorKyAgICBGSUxURVIg KHt7cGhvdG9zX2RlZmF1bHRfZmlsdGVyfX0gJiYge3tzb3VyY2VfZmlsdGVyfX0gJiYge3tzZWFy Y2hfZmlsdGVyfX0pCisrfQorK0dST1VQIEJZID91cm4KKyt7e29yZGVyfX0KKyt7e29mZnNldF9s aW1pdH19CitkaWZmIC0tZ2l0IGEvc3JjL3F1ZXJpZXMvcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZSBi L3NyYy9xdWVyaWVzL3Bob3Rvcy5zcGFycWwudGVtcGxhdGUKK25ldyBmaWxlIG1vZGUgMTAwNjQ0 CitpbmRleCAwMDAwMDAwMC4uNGViMTBiNzQKKy0tLSAvZGV2L251bGwKKysrKyBiL3NyYy9xdWVy aWVzL3Bob3Rvcy5zcGFycWwudGVtcGxhdGUKK0BAIC0wLDAgKzEsMTEgQEAKKytTRUxFQ1Qge3tw cm9qZWN0aW9ufX0KKyt7CisrICAgID91cm4gYSBubW06UGhvdG8gLgorKyAgICBPUFRJT05BTCB7 ID91cm4gbmNvOmNyZWF0b3IgP2NyZWF0b3IgLiB9CisrICAgIE9QVElPTkFMIHsgP3VybiBuY286 cHVibGlzaGVyID9wdWJsaXNoZXIgLiB9CisrICAgIHt7aXRlbV9wYXR0ZXJufX0KKysgICAgRklM VEVSICh7e3Bob3Rvc19kZWZhdWx0X2ZpbHRlcn19ICYmIHt7c291cmNlX2ZpbHRlcn19ICYmIHt7 c2VhcmNoX2ZpbHRlcn19KQorK30KKytHUk9VUCBCWSA/dXJuCisre3tvcmRlcn19Cisre3tvZmZz ZXRfbGltaXR9fQorLS0gCitHaXRMYWIKKworCitGcm9tIGQ2MWQ0NDBlZmUzNDBiZGE0ZTE5NWQ2 NDAwNjZmYjI5MjIwZDBjYjUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBTYW0gVGh1 cnNmaWVsZCA8c2FtQGFmdWVyYS5tZS51az4KK0RhdGU6IFNhdCwgMjMgTWF5IDIwMjAgMTM6MzY6 MjUgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCA0LzRdIFBvcnQgdG8gVHJhY2tlciAzCisKK05vdGFi bGUgY2hhbmdlczoKKworICAqIFVzZXIgZGF0YSAoZmF2b3VyaXRlcywgYWxidW1zKSBpcyBub3cg c3RvcmVkIGluIGEgcHJpdmF0ZSBkYXRhYmFzZSBpbgorICAgIH4vLmxvY2FsL3NoYXJlL2dub21l LXBob3Rvcy4gVGhpcyBpcyBjb21iaW5lZCB3aXRoIHRoZSBUcmFja2VyIE1pbmVyCisgICAgRlMg aW5kZXggb2YgcGhvdG9zIGF0IHF1ZXJ5IHRpbWUuCisgICogSW5zaWRlIEZsYXRwYWssIHRoZSBh cHAgY29ubmVjdHMgdG8gVHJhY2tlciB2aWEgdGhlIG5ldworICAgIHhkZy10cmFja2VyLXBvcnRh bCBpbnN0ZWFkIG9mIHRhbGtpbmcgZGlyZWN0bHkgb3ZlciBELUJ1cy4gQWNjZXNzIGlzCisgICAg bGltaXRlZCBieSB0aGUgcG9ydGFsIHNvIHRoZSBhcHAgY2FuIG9ubHkgc2VlIHRoZSBQaWN0dXJl cyBncmFwaC4KKyAgKiBUaGUgRmxhdHBhayBidWlsZCBjYW4gdXNlIGEgYnVuZGxlZCB2ZXJzaW9u IG9mIFRyYWNrZXIgTWluZXJzLCBpZiBhCisgICAgc3VpdGFibGUgdmVyc2lvbiBpcyBub3QgYXZh aWxhYmxlIG9uIHRoZSBob3N0LgorICAqIENoYW5nZSBkZXRlY3Rpb24gaXMgZG9uZSB1c2luZyBU cmFja2VyTm90aWZpZXIgaW5zdGVhZCBvZiB3YXRjaGluZworICAgIHRoZSBHcmFwaFVwZGF0ZWQg RC1CdXMgc2lnbmFsIGRpcmVjdGx5LgorCitDbG9zZXMgaHR0cHM6Ly9naXRsYWIuZ25vbWUub3Jn L0dOT01FL2dub21lLXBob3Rvcy8tL2lzc3Vlcy81OQorQ2xvc2VzIGh0dHBzOi8vZ2l0bGFiLmdu b21lLm9yZy9HTk9NRS9nbm9tZS1waG90b3MvLS9pc3N1ZXMvMTUyCistLS0KKyBkYXRhL21lc29u LmJ1aWxkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKworIGRhdGEvdHJhY2tl ci9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICAgICAgICB8ICAzMyArKworIC4uLmUuUGhvdG9z LlRyYWNrZXIzLk1pbmVyLkV4dHJhY3Quc2VydmljZS5pbiB8ICAgNyArCisgLi4ub21lLlBob3Rv cy5UcmFja2VyMy5NaW5lci5GaWxlcy5zZXJ2aWNlLmluIHwgICA3ICsKKyBkYXRhL3RyYWNrZXIv b3JnLmdub21lLlBob3Rvcy5kb21haW4ucnVsZS5pbiAgfCAgMjAgKworIGZsYXRwYWsvb3JnLmdu b21lLlBob3Rvcy5qc29uICAgICAgICAgICAgICAgICB8ICA1NSArLQorIG1lc29uLmJ1aWxkICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArLQorIHNyYy9tZXNvbi5idWls ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxOSArLQorIC4uLmZyZWVkZXNrdG9w LlRyYWNrZXIzLk1pbmVyLkZpbGVzLkluZGV4LnhtbCB8ICAxMSArCisgc3JjL29yZy5mcmVlZGVz a3RvcC5UcmFja2VyMy5NaW5lci54bWwgICAgICAgIHwgIDU2ICsrKworIHNyYy9waG90b3MtYXBw bGljYXRpb24uYyAgICAgICAgICAgICAgICAgICAgICB8IDE4NCArKystLS0tCisgc3JjL3Bob3Rv cy1iYXNlLWl0ZW0uYyAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE4ICstCisgc3JjL3Bob3Rv cy1pbmRleGluZy1ub3RpZmljYXRpb24uYyAgICAgICAgICAgIHwgIDUzICstCisgc3JjL3Bob3Rv cy1pdGVtLW1hbmFnZXIuYyAgICAgICAgICAgICAgICAgICAgIHwgIDY5ICstLQorIHNyYy9waG90 b3MtcXVhcmtzLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyMCArLQorIHNyYy9waG90 b3MtcXVlcnktYnVpbGRlci5jICAgICAgICAgICAgICAgICAgICB8IDE0OCArKysrLS0KKyBzcmMv cGhvdG9zLXNlYXJjaC1jb250ZXh0LmMgICAgICAgICAgICAgICAgICAgfCAgIDMgKworIHNyYy9w aG90b3Mtc2VhcmNoLWNvbnRleHQuaCAgICAgICAgICAgICAgICAgICB8ICAgMSArCisgc3JjL3Bo b3Rvcy1zZWFyY2gtbWF0Y2gtbWFuYWdlci5jICAgICAgICAgICAgIHwgICAyICstCisgc3JjL3Bo b3Rvcy1zb3VyY2UuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE0ICstCisgc3JjL3Bo b3Rvcy10cmFja2VyLWNoYW5nZS1ldmVudC5jICAgICAgICAgICAgIHwgMTM2IC0tLS0tCisgc3Jj L3Bob3Rvcy10cmFja2VyLWNoYW5nZS1ldmVudC5oICAgICAgICAgICAgIHwgIDY0IC0tLQorIHNy Yy9waG90b3MtdHJhY2tlci1jaGFuZ2UtbW9uaXRvci5jICAgICAgICAgICB8IDQ2OCAtLS0tLS0t LS0tLS0tLS0tLS0KKyBzcmMvcGhvdG9zLXRyYWNrZXItY2hhbmdlLW1vbml0b3IuaCAgICAgICAg ICAgfCAgNDIgLS0KKyBzcmMvcGhvdG9zLXRyYWNrZXItY29udHJvbGxlci5jICAgICAgICAgICAg ICAgfCAgMTIgKy0KKyBzcmMvcGhvdG9zLXRyYWNrZXItZXh0cmFjdC1wcmlvcml0eS54bWwgICAg ICAgfCAgIDIgKy0KKyBzcmMvcGhvdG9zLXRyYWNrZXItaW1wb3J0LWNvbnRyb2xsZXIuYyAgICAg ICAgfCAgODUgKystLQorIHNyYy9waG90b3MtdHJhY2tlci1xdWV1ZS5jICAgICAgICAgICAgICAg ICAgICB8IDIwNiArKysrKysrLQorIHNyYy9waG90b3MtdHJhY2tlci1xdWV1ZS5oICAgICAgICAg ICAgICAgICAgICB8ICAgNyArCisgc3JjL3Bob3Rvcy10cmFja2VyLXJlc291cmNlcy54bWwgICAg ICAgICAgICAgIHwgIDMxIC0tCisgc3JjL3Bob3Rvcy11dGlscy5jICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDI0ICstCisgc3JjL3Bob3Rvcy11dGlscy5oICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAyICstCisgc3JjL3F1ZXJpZXMvYWxsLnNwYXJxbC50ZW1wbGF0ZSAgICAg ICAgICAgICAgIHwgIDM0ICstCisgc3JjL3F1ZXJpZXMvY29sbGVjdGlvbnMuc3BhcnFsLnRlbXBs YXRlICAgICAgIHwgIDIwICstCisgc3JjL3F1ZXJpZXMvZmF2b3JpdGUtcGhvdG9zLnNwYXJxbC50 ZW1wbGF0ZSAgIHwgIDIwICstCisgc3JjL3F1ZXJpZXMvcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZSAg ICAgICAgICAgIHwgIDIyICstCisgMzYgZmlsZXMgY2hhbmdlZCwgNzU0IGluc2VydGlvbnMoKyks IDExNDYgZGVsZXRpb25zKC0pCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGRhdGEvdHJhY2tlci9tZXNv bi5idWlsZAorIGNyZWF0ZSBtb2RlIDEwMDY0NCBkYXRhL3RyYWNrZXIvb3JnLmdub21lLlBob3Rv cy5UcmFja2VyMy5NaW5lci5FeHRyYWN0LnNlcnZpY2UuaW4KKyBjcmVhdGUgbW9kZSAxMDA2NDQg ZGF0YS90cmFja2VyL29yZy5nbm9tZS5QaG90b3MuVHJhY2tlcjMuTWluZXIuRmlsZXMuc2Vydmlj ZS5pbgorIGNyZWF0ZSBtb2RlIDEwMDY0NCBkYXRhL3RyYWNrZXIvb3JnLmdub21lLlBob3Rvcy5k b21haW4ucnVsZS5pbgorIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvb3JnLmZyZWVkZXNrdG9wLlRy YWNrZXIzLk1pbmVyLkZpbGVzLkluZGV4LnhtbAorIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvb3Jn LmZyZWVkZXNrdG9wLlRyYWNrZXIzLk1pbmVyLnhtbAorIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmMv cGhvdG9zLXRyYWNrZXItY2hhbmdlLWV2ZW50LmMKKyBkZWxldGUgbW9kZSAxMDA2NDQgc3JjL3Bo b3Rvcy10cmFja2VyLWNoYW5nZS1ldmVudC5oCisgZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy9waG90 b3MtdHJhY2tlci1jaGFuZ2UtbW9uaXRvci5jCisgZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy9waG90 b3MtdHJhY2tlci1jaGFuZ2UtbW9uaXRvci5oCisgZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy9waG90 b3MtdHJhY2tlci1yZXNvdXJjZXMueG1sCisKK2RpZmYgLS1naXQgYS9kYXRhL21lc29uLmJ1aWxk IGIvZGF0YS9tZXNvbi5idWlsZAoraW5kZXggNzg5OGIwY2MuLmYwZDg1ZDRiIDEwMDY0NAorLS0t IGEvZGF0YS9tZXNvbi5idWlsZAorKysrIGIvZGF0YS9tZXNvbi5idWlsZAorQEAgLTU0LDMgKzU0 LDUgQEAgaW5zdGFsbF9kYXRhKAorICAgcGhvdG9zX25hbWVzcGFjZS50b19sb3dlcigpICsgJy5n c2NoZW1hLnhtbCcsCisgICBpbnN0YWxsX2Rpcjogam9pbl9wYXRocyhwaG90b3NfZGF0YWRpciwg J2dsaWItMi4wJywgJ3NjaGVtYXMnKSwKKyApCisrCisrc3ViZGlyKCd0cmFja2VyJykKK2RpZmYg LS1naXQgYS9kYXRhL3RyYWNrZXIvbWVzb24uYnVpbGQgYi9kYXRhL3RyYWNrZXIvbWVzb24uYnVp bGQKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMC4uYWNjYzk5YzIKKy0tLSAv ZGV2L251bGwKKysrKyBiL2RhdGEvdHJhY2tlci9tZXNvbi5idWlsZAorQEAgLTAsMCArMSwzMyBA QAorKyMgRmlsZXMgbmVlZGVkIGZvciBydW5uaW5nIFRyYWNrZXIgaW5zaWRlIHRoZSBGbGF0cGFr IHNhbmRib3gsIGZvciBzeXN0ZW1zCisrIyB3aGljaCBkb24ndCBoYXZlIGEgc3VpdGFibGUgdmVy c2lvbiBvZiBUcmFja2VyIGluIHRoZSBob3N0IE9TLgorKyMKKysjIFdlIG11c3QgZXhwb3J0IHRo ZSAuc2VydmljZSBmaWxlcyBmcm9tIHRoZSBzYW5kYm94IHNvIHRoZXkgd29yayBvbiB0aGUKKysj IHNlc3Npb24gYnVzLiBUaGlzIG1lYW5zIHRoZSBUcmFja2VyIGRvbWFpbiBuYW1lIG11c3QgY29y cmVzcG9uZCB3aXRoIHRoZQorKyMgYXBwbGljYXRpb24gSUQuCisrCisrCisrZG9tYWluX29udG9s b2dpZXNfZGlyID0gZ2V0X29wdGlvbignZGF0YWRpcicpIC8gJ3RyYWNrZXIzJyAvICdkb21haW4t b250b2xvZ2llcycKKytkYnVzX3NlcnZpY2VzX2RpciA9IGdldF9vcHRpb24oJ2RhdGFkaXInKSAv ICdkYnVzLTEnIC8gJ3NlcnZpY2VzJworKworK3RyYWNrZXJfZG9tYWluX2NvbmZpZyA9IGNvbmZp Z3VyYXRpb25fZGF0YSgpCisrdHJhY2tlcl9kb21haW5fY29uZmlnLnNldCgnYXBwbGljYXRpb25f aWQnLCBwaG90b3NfbmFtZXNwYWNlKQorK3RyYWNrZXJfZG9tYWluX2NvbmZpZy5zZXQoJ2RvbWFp bl9ydWxlJywgZ2V0X29wdGlvbigncHJlZml4JykgLyBkb21haW5fb250b2xvZ2llc19kaXIgLyBw aG90b3NfbmFtZXNwYWNlICsgJy5kb21haW4ucnVsZScpCisrCisrY29uZmlndXJlX2ZpbGUoCisr ICBpbnB1dDogJ29yZy5nbm9tZS5QaG90b3MuZG9tYWluLnJ1bGUuaW4nLAorKyAgb3V0cHV0OiBw aG90b3NfbmFtZXNwYWNlICsgJy5kb21haW4ucnVsZScsCisrICBjb25maWd1cmF0aW9uOiB0cmFj a2VyX2RvbWFpbl9jb25maWcsCisrICBpbnN0YWxsX2RpcjogZG9tYWluX29udG9sb2dpZXNfZGly KQorKworK2NvbmZpZ3VyZV9maWxlKAorKyAgaW5wdXQ6ICdvcmcuZ25vbWUuUGhvdG9zLlRyYWNr ZXIzLk1pbmVyLkV4dHJhY3Quc2VydmljZS5pbicsCisrICBvdXRwdXQ6IHBob3Rvc19uYW1lc3Bh Y2UgKyAnLlRyYWNrZXIzLk1pbmVyLkV4dHJhY3Quc2VydmljZScsCisrICBjb25maWd1cmF0aW9u OiB0cmFja2VyX2RvbWFpbl9jb25maWcsCisrICBpbnN0YWxsX2RpcjogZGJ1c19zZXJ2aWNlc19k aXIpCisrCisrY29uZmlndXJlX2ZpbGUoCisrICBpbnB1dDogJ29yZy5nbm9tZS5QaG90b3MuVHJh Y2tlcjMuTWluZXIuRmlsZXMuc2VydmljZS5pbicsCisrICBvdXRwdXQ6IHBob3Rvc19uYW1lc3Bh Y2UgKyAnLlRyYWNrZXIzLk1pbmVyLkZpbGVzLnNlcnZpY2UnLAorKyAgY29uZmlndXJhdGlvbjog dHJhY2tlcl9kb21haW5fY29uZmlnLAorKyAgaW5zdGFsbF9kaXI6IGRidXNfc2VydmljZXNfZGly KQorKworZGlmZiAtLWdpdCBhL2RhdGEvdHJhY2tlci9vcmcuZ25vbWUuUGhvdG9zLlRyYWNrZXIz Lk1pbmVyLkV4dHJhY3Quc2VydmljZS5pbiBiL2RhdGEvdHJhY2tlci9vcmcuZ25vbWUuUGhvdG9z LlRyYWNrZXIzLk1pbmVyLkV4dHJhY3Quc2VydmljZS5pbgorbmV3IGZpbGUgbW9kZSAxMDA2NDQK K2luZGV4IDAwMDAwMDAwLi5lYjdhODdhYQorLS0tIC9kZXYvbnVsbAorKysrIGIvZGF0YS90cmFj a2VyL29yZy5nbm9tZS5QaG90b3MuVHJhY2tlcjMuTWluZXIuRXh0cmFjdC5zZXJ2aWNlLmluCitA QCAtMCwwICsxLDcgQEAKKytbRC1CVVMgU2VydmljZV0KKytOYW1lPUBhcHBsaWNhdGlvbl9pZEAu VHJhY2tlcjMuTWluZXIuRXh0cmFjdAorK0V4ZWM9L2FwcC9saWJleGVjL3RyYWNrZXItZXh0cmFj dC0zIC0tZG9tYWluLW9udG9sb2d5IEBkb21haW5fcnVsZUAKKysKKysjIE1pbmVyIGRldGFpbHMg bmVlZGVkIGZvciB0cmFja2VyLWNvbnRyb2wKKytQYXRoPS9vcmcvZnJlZWRlc2t0b3AvVHJhY2tl cjMvTWluZXIvRXh0cmFjdAorK05hbWVTdWZmaXg9TWluZXIuRmlsZXMKK2RpZmYgLS1naXQgYS9k YXRhL3RyYWNrZXIvb3JnLmdub21lLlBob3Rvcy5UcmFja2VyMy5NaW5lci5GaWxlcy5zZXJ2aWNl LmluIGIvZGF0YS90cmFja2VyL29yZy5nbm9tZS5QaG90b3MuVHJhY2tlcjMuTWluZXIuRmlsZXMu c2VydmljZS5pbgorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwLi40ZmE3Mzcx ZAorLS0tIC9kZXYvbnVsbAorKysrIGIvZGF0YS90cmFja2VyL29yZy5nbm9tZS5QaG90b3MuVHJh Y2tlcjMuTWluZXIuRmlsZXMuc2VydmljZS5pbgorQEAgLTAsMCArMSw3IEBACisrW0QtQlVTIFNl cnZpY2VdCisrTmFtZT1AYXBwbGljYXRpb25faWRALlRyYWNrZXIzLk1pbmVyLkZpbGVzCisrRXhl Yz0vYXBwL2xpYmV4ZWMvdHJhY2tlci1taW5lci1mcy0zIC0tZG9tYWluLW9udG9sb2d5IEBkb21h aW5fcnVsZUAgLS1pbml0aWFsLXNsZWVwIDAKKysKKysjIE1pbmVyIGRldGFpbHMgbmVlZGVkIGZv ciB0cmFja2VyLWNvbnRyb2wKKytQYXRoPS9vcmcvZnJlZWRlc2t0b3AvVHJhY2tlcjMvTWluZXIv RmlsZXMKKytOYW1lU3VmZml4PU1pbmVyLkZpbGVzCitkaWZmIC0tZ2l0IGEvZGF0YS90cmFja2Vy L29yZy5nbm9tZS5QaG90b3MuZG9tYWluLnJ1bGUuaW4gYi9kYXRhL3RyYWNrZXIvb3JnLmdub21l LlBob3Rvcy5kb21haW4ucnVsZS5pbgorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAw MDAwLi44ZjVmYzRhMQorLS0tIC9kZXYvbnVsbAorKysrIGIvZGF0YS90cmFja2VyL29yZy5nbm9t ZS5QaG90b3MuZG9tYWluLnJ1bGUuaW4KK0BAIC0wLDAgKzEsMjAgQEAKKysjIFRoaXMgZGVmaW5l cyBhIHByaXZhdGUgVHJhY2tlciBkb21haW4gZm9yIEdOT01FIFBob3Rvcy4KKysjCisrIyBJdCdz IHVzZWQgdG8gcnVuIHRoZSBUcmFja2VyIGluZGV4ZXIgaW5zaWRlIGEgRmxhdHBhayBzYW5kYm94 LCB3aGVuIFBob3RvcyBpcworKyMgcnVubmluZyBvbiBhIGhvc3QgdGhhdCBkb2Vzbid0IGhhdmUg YSBzdWl0YWJsZSB2ZXJzaW9uIG9mIFRyYWNrZXIgaW5zdGFsbGVkLgorKworK1tEb21haW5PbnRv bG9neV0KKysjIExvY2F0aW9uIGZvciB0aGUgVHJhY2tlciBkYXRhYmFzZQorK0NhY2hlTG9jYXRp b249JFhER19DQUNIRV9IT01FL2dub21lLXBob3Rvcy9taW5lci9maWxlcworKworKyMgTmFtZSBv ZiB0aGUgb250b2xvZ3kgdG8gdXNlLCBtdXN0IGJlIG9uZSBsb2NhdGVkIGluCisrIyAkKHNoYXJl ZGlyKS90cmFja2VyL29udG9sb2dpZXMKKytPbnRvbG9neU5hbWU9bmVwb211aworKworKyMgREJ1 cyBuYW1lIGZvciB0aGUgb3duZXIgKG5vdCBvcHRpb25hbCkuIFRyYWNrZXIgd2lsbCB1c2UKKysj IHRoZSBkb21haW4gYXMgdGhlIHByZWZpeCBvZiB0aGUgREJ1cyBuYW1lIGZvciBhbGwgdGhlCisr IyBzZXJ2aWNlcyByZWxhdGVkIHRvIHRoaXMgZG9tYWluIG9udG9sb2d5LgorK0RvbWFpbj1AYXBw bGljYXRpb25faWRACisrCisrIyBMaXN0IG9mIG1pbmVycyB3ZSBleHBlY3QgdG8gcnVuIGluIHRo aXMgZG9tYWluLgorK01pbmVycz1NaW5lci5GaWxlcztNaW5lci5FeHRyYWN0CitkaWZmIC0tZ2l0 IGEvZmxhdHBhay9vcmcuZ25vbWUuUGhvdG9zLmpzb24gYi9mbGF0cGFrL29yZy5nbm9tZS5QaG90 b3MuanNvbgoraW5kZXggNWQxNjY4OWMuLmFkZmRhZjM0IDEwMDY0NAorLS0tIGEvZmxhdHBhay9v cmcuZ25vbWUuUGhvdG9zLmpzb24KKysrKyBiL2ZsYXRwYWsvb3JnLmdub21lLlBob3Rvcy5qc29u CitAQCAtNyw3ICs3LDcgQEAKKyAgICAgInRhZ3MiOiBbICJuaWdodGx5IiBdLAorICAgICAiZGVz a3RvcC1maWxlLW5hbWUtcHJlZml4IjogIihOaWdodGx5KSAiLAorICAgICAiZmluaXNoLWFyZ3Mi OiBbCistICAgICAgICAiLS1lbnY9VFJBQ0tFUl9TUEFSUUxfQkFDS0VORD1idXMiLAorKyAgICAg ICAgIi0tYWRkLXBvbGljeT1UcmFja2VyMy5kYnVzOm9yZy5mcmVlZGVza3RvcC5UcmFja2VyMy5N aW5lci5GaWxlcz10cmFja2VyOlBpY3R1cmVzIiwKKyAgICAgICAgICItLWZpbGVzeXN0ZW09eGRn LWRvd25sb2FkIiwKKyAgICAgICAgICItLWZpbGVzeXN0ZW09eGRnLXBpY3R1cmVzIiwKKyAgICAg ICAgICItLW1ldGFkYXRhPVgtRENvbmY9bWlncmF0ZS1wYXRoPS9vcmcvZ25vbWUvcGhvdG9zLyIs CitAQCAtMTcsOCArMTcsOCBAQAorICAgICAgICAgIi0tc29ja2V0PXdheWxhbmQiLAorICAgICAg ICAgIi0tc29ja2V0PXgxMSIsCisgICAgICAgICAiLS10YWxrLW5hbWU9b3JnLmZyZWVkZXNrdG9w LkZpbGVNYW5hZ2VyMSIsCistICAgICAgICAiLS10YWxrLW5hbWU9b3JnLmZyZWVkZXNrdG9wLlRy YWNrZXIxIiwKKy0gICAgICAgICItLXRhbGstbmFtZT1vcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjEu TWluZXIuRXh0cmFjdCIsCisrICAgICAgICAiLS10YWxrLW5hbWU9b3JnLmZyZWVkZXNrdG9wLlRy YWNrZXIzLk1pbmVyLkZpbGVzIiwKKysgICAgICAgICItLXRhbGstbmFtZT1vcmcuZnJlZWRlc2t0 b3AuVHJhY2tlcjMuTWluZXIuRmlsZXMuSW5kZXgiLAorICAgICAgICAgIi0tdGFsay1uYW1lPWNv bS5pbnRlbC5kbGV5bmEtcmVuZGVyZXIiLAorICAgICAgICAgIi0tdGFsay1uYW1lPW9yZy5nbm9t ZS5Db250cm9sQ2VudGVyIiwKKyAgICAgICAgICItLXRhbGstbmFtZT1vcmcuZ25vbWUuU2V0dGlu Z3NEYWVtb24iLAorQEAgLTI0OCw1NiArMjQ4LDIyIEBACisgICAgICAgICAgICAgICAgIH0KKyAg ICAgICAgICAgICBdCisgICAgICAgICB9LAorLSAgICAgICAgeworLSAgICAgICAgICAgICJuYW1l IjogInRyYWNrZXIiLAorLSAgICAgICAgICAgICJidWlsZHN5c3RlbSI6ICJtZXNvbiIsCistICAg ICAgICAgICAgImNsZWFudXAiOiBbICIvYmluIiwgIi9ldGMiLCAiL2xpYi9naXJlcG9zaXRvcnkt MS4wIiwgIi9saWJleGVjIiwgIi9zaGFyZS9kYnVzLTEiLCAiL3NoYXJlL2dpci0xLjAiIF0sCist ICAgICAgICAgICAgImNvbmZpZy1vcHRzIjogWyAiLURiYXNoX2NvbXBsZXRpb249bm8iLCAiLURk b2NzPWZhbHNlIiwgIi1Ec3lzdGVtZF91c2VyX3NlcnZpY2VzPW5vIiBdLAorLSAgICAgICAgICAg ICJzb3VyY2VzIjogWworLSAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICAi dHlwZSI6ICJnaXQiLAorLSAgICAgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2dpdGxh Yi5nbm9tZS5vcmcvR05PTUUvdHJhY2tlci5naXQiLAorLSAgICAgICAgICAgICAgICAgICAgImJy YW5jaCI6ICJ0cmFja2VyLTIuMyIKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgIF0K Ky0gICAgICAgIH0sCistICAgICAgICB7CistICAgICAgICAgICAgIm5hbWUiOiAiaW50bHRvb2wi LAorLSAgICAgICAgICAgICJjbGVhbnVwIjogWyAiKiIgXSwKKy0gICAgICAgICAgICAic291cmNl cyI6IFsKKy0gICAgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAi YXJjaGl2ZSIsCistICAgICAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vbGF1bmNocGFk Lm5ldC9pbnRsdG9vbC90cnVuay8wLjUxLjAvK2Rvd25sb2FkL2ludGx0b29sLTAuNTEuMC50YXIu Z3oiLAorLSAgICAgICAgICAgICAgICAgICAgInNoYTI1NiI6ICI2N2M3NGQ5NDE5NmIxNTNiNzc0 YWI5Zjg5YjJmYTZjNmJhNzkzNTI0MDcwMzdjOGMxNGQ1YWViMzM0ZTk1OWNkIgorLSAgICAgICAg ICAgICAgICB9CistICAgICAgICAgICAgXQorLSAgICAgICAgfSwKKyAgICAgICAgIHsKKyAgICAg ICAgICAgICAibmFtZSI6ICJ0cmFja2VyLW1pbmVycyIsCisgICAgICAgICAgICAgImJ1aWxkc3lz dGVtIjogIm1lc29uIiwKKy0gICAgICAgICAgICAiY2xlYW51cCI6IFsgIi9ldGMiLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAiL2xpYiIsCistICAgICAgICAgICAgICAgICAgICAgICAgICIv bGliZXhlYyIsCistICAgICAgICAgICAgICAgICAgICAgICAgICIvc2hhcmUvZGJ1cy0xL3NlcnZp Y2VzL29yZy5mcmVlZGVza3RvcC5UcmFja2VyMS5NaW5lci5FeHRyYWN0LnNlcnZpY2UiLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAiL3NoYXJlL2RidXMtMS9zZXJ2aWNlcy9vcmcuZnJlZWRl c2t0b3AuVHJhY2tlcjEuV3JpdGViYWNrLnNlcnZpY2UiLAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAiL3NoYXJlL3RyYWNrZXIvbWluZXJzL29yZy5mcmVlZGVza3RvcC5UcmFja2VyMS5NaW5l ci5BcHBsaWNhdGlvbnMuc2VydmljZSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICIvc2hh cmUvdHJhY2tlci9taW5lcnMvb3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIxLk1pbmVyLkV4dHJhY3Qu c2VydmljZSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICIvc2hhcmUvdHJhY2tlci9taW5l cnMvb3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIxLk1pbmVyLlJTUy5zZXJ2aWNlIiwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgIi9zaGFyZS90cmFja2VyLW1pbmVycyIsCistICAgICAgICAgICAg ICAgICAgICAgICAgICIvc2hhcmUvZ2xpYi0yLjAvc2NoZW1hcy9vcmcuZnJlZWRlc2t0b3AuVHJh Y2tlci5FeHRyYWN0LmdzY2hlbWEueG1sIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgIi9z aGFyZS9nbGliLTIuMC9zY2hlbWFzL29yZy5mcmVlZGVza3RvcC5UcmFja2VyLldyaXRlYmFjay5n c2NoZW1hLnhtbCIgXSwKKy0gICAgICAgICAgICAiY29uZmlnLW9wdHMiOiBbICItRGV4dHJhY3Q9 ZmFsc2UiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1EZ2VuZXJpY19tZWRpYV9l eHRyYWN0b3I9bm9uZSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLURtaW5lcl9h cHBzPWZhbHNlIiwKKysgICAgICAgICAgICAiY2xlYW51cCI6IFsgIi9zaGFyZS9kYnVzLTEvc2Vy dmljZXMvb3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIzLk1pbmVyLkV4dHJhY3Quc2VydmljZSIsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICIvc2hhcmUvZGJ1cy0xL3NlcnZpY2VzL29yZy5mcmVl ZGVza3RvcC5UcmFja2VyMy5NaW5lci5GaWxlcy5zZXJ2aWNlIiwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgIi9zaGFyZS9kYnVzLTEvc2VydmljZXMvb3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIz LldyaXRlYmFjay5zZXJ2aWNlIiBdLAorKyAgICAgICAgICAgICJjb25maWctb3B0cyI6IFsgIi1E bWFuPWZhbHNlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItRG1pbmVyX2ZzPXRy dWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1EbWluZXJfcnNzPWZhbHNlIiwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICItRHN5c3RlbWRfdXNlcl9zZXJ2aWNlcz1u byIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLURzeXN0ZW1kX3VzZXJfc2Vydmlj ZXM9ZmFsc2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1Ed3JpdGViYWNrPWZh bHNlIiBdLAorICAgICAgICAgICAgICJzb3VyY2VzIjogWworICAgICAgICAgICAgICAgICB7Cisg ICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJnaXQiLAorICAgICAgICAgICAgICAgICAgICAg InVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvdHJhY2tlci1taW5lcnMuZ2l0 IiwKKy0gICAgICAgICAgICAgICAgICAgICJicmFuY2giOiAidHJhY2tlci1taW5lcnMtMi4zIgor KyAgICAgICAgICAgICAgICAgICAgImJyYW5jaCI6ICJtYXN0ZXIiCisgICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICBdCisgICAgICAgICB9LAorQEAgLTMwOSw3ICsyNzUsOCBAQAorICAg ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJnaXQiLAorICAg ICAgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUv Z25vbWUtcGhvdG9zLmdpdCIsCistICAgICAgICAgICAgICAgICAgICAiZGlzYWJsZS1zaGFsbG93 LWNsb25lIjogInRydWUiCisrICAgICAgICAgICAgICAgICAgICAiZGlzYWJsZS1zaGFsbG93LWNs b25lIjogInRydWUiLAorKyAgICAgICAgICAgICAgICAgICAgImJyYW5jaCI6ICJzYW0vdHJhY2tl cjMiCisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBdCisgICAgICAgICB9CitkaWZm IC0tZ2l0IGEvbWVzb24uYnVpbGQgYi9tZXNvbi5idWlsZAoraW5kZXggNzA4MTZkMjQuLjFjNmYy OTA2IDEwMDY0NAorLS0tIGEvbWVzb24uYnVpbGQKKysrKyBiL21lc29uLmJ1aWxkCitAQCAtMTcy LDggKzE3Miw3IEBAIGxpYmdkYXRhX2RlcCA9IGRlcGVuZGVuY3koJ2xpYmdkYXRhJywgdmVyc2lv bjogJz49IDAuMTcuMTAnKQorIGxpYmdmZ3JhcGhfZGVwID0gZGVwZW5kZW5jeSgnbGliZ2ZiZ3Jh cGgtMC4yJywgdmVyc2lvbjogJz49IDAuMi4xJykKKyBsaWJqcGVnX2RlcCA9IGRlcGVuZGVuY3ko J2xpYmpwZWcnKQorIGxpYnBuZ19kZXAgPSBkZXBlbmRlbmN5KCdsaWJwbmcxNicpCistdHJhY2tl cl9jb250cm9sX2RlcCA9IGRlcGVuZGVuY3koJ3RyYWNrZXItY29udHJvbC0yLjAnKQorLXRyYWNr ZXJfc3BhcnFsX2RlcCA9IGRlcGVuZGVuY3koJ3RyYWNrZXItc3BhcnFsLTIuMCcpCisrdHJhY2tl cl9zcGFycWxfZGVwID0gZGVwZW5kZW5jeSgndHJhY2tlci1zcGFycWwtMy4wJykKKyAKKyBkYnVz X2RlcCA9IGRlcGVuZGVuY3koJ2RidXMtMScpCisgZGJ1c19zZXJ2aWNlX2RpciA9IGRidXNfZGVw LmdldF9wa2djb25maWdfdmFyaWFibGUoCitkaWZmIC0tZ2l0IGEvc3JjL21lc29uLmJ1aWxkIGIv c3JjL21lc29uLmJ1aWxkCitpbmRleCBiNWIyNzU5Yy4uNmIzYjdmMDEgMTAwNjQ0CistLS0gYS9z cmMvbWVzb24uYnVpbGQKKysrKyBiL3NyYy9tZXNvbi5idWlsZAorQEAgLTIwNSw4ICsyMDUsNiBA QCBzb3VyY2VzID0gY29tbW9uX3NvdXJjZXMgKyBmaWxlcygKKyAgICdwaG90b3MtdG9vbC1lbmhh bmNlLmMnLAorICAgJ3Bob3Rvcy10b29sLWZpbHRlci1idXR0b24uYycsCisgICAncGhvdG9zLXRv b2wtZmlsdGVycy5jJywKKy0gICdwaG90b3MtdHJhY2tlci1jaGFuZ2UtZXZlbnQuYycsCistICAn cGhvdG9zLXRyYWNrZXItY2hhbmdlLW1vbml0b3IuYycsCisgICAncGhvdG9zLXRyYWNrZXItY29s bGVjdGlvbi12aWV3LWNvbnRyb2xsZXIuYycsCisgICAncGhvdG9zLXRyYWNrZXItY29sbGVjdGlv bnMtY29udHJvbGxlci5jJywKKyAgICdwaG90b3MtdHJhY2tlci1jb250cm9sbGVyLmMnLAorQEAg LTM2NywyMiArMzY1LDE4IEBAIHNvdXJjZXMgKz0gZ25vbWUuZ2RidXNfY29kZWdlbigKKyAgIGF1 dG9jbGVhbnVwOiAnYWxsJywKKyApCisgCistdHJhY2tlcl9leHRyYWN0X3ByaW9yaXR5ID0gJ3Bo b3Rvcy10cmFja2VyLWV4dHJhY3QtcHJpb3JpdHknCistCisgc291cmNlcyArPSBnbm9tZS5nZGJ1 c19jb2RlZ2VuKAorLSAgdHJhY2tlcl9leHRyYWN0X3ByaW9yaXR5LAorLSAgdHJhY2tlcl9leHRy YWN0X3ByaW9yaXR5ICsgJy54bWwnLAorLSAgaW50ZXJmYWNlX3ByZWZpeDogJ29yZy5mcmVlZGVz a3RvcC5UcmFja2VyMS4nLAorKyAgJ3Bob3Rvcy10cmFja2VyLW1pbmVyJywKKysgICdvcmcuZnJl ZWRlc2t0b3AuVHJhY2tlcjMuTWluZXIueG1sJywKKysgIGludGVyZmFjZV9wcmVmaXg6ICdvcmcu ZnJlZWRlc2t0b3AuVHJhY2tlcjMuJywKKyAgIG5hbWVzcGFjZTogJ1RyYWNrZXInLAorICAgYXV0 b2NsZWFudXA6ICdhbGwnLAorICkKKyAKKy10cmFja2VyX3Jlc291cmNlcyA9ICdwaG90b3MtdHJh Y2tlci1yZXNvdXJjZXMnCistCisgc291cmNlcyArPSBnbm9tZS5nZGJ1c19jb2RlZ2VuKAorLSAg dHJhY2tlcl9yZXNvdXJjZXMsCistICB0cmFja2VyX3Jlc291cmNlcyArICcueG1sJywKKy0gIGlu dGVyZmFjZV9wcmVmaXg6ICdvcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjEuJywKKysgICdwaG90b3Mt dHJhY2tlci1taW5lci1pbmRleCcsCisrICAnb3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIzLk1pbmVy LkZpbGVzLkluZGV4LnhtbCcsCisrICBpbnRlcmZhY2VfcHJlZml4OiAnb3JnLmZyZWVkZXNrdG9w LlRyYWNrZXIzLicsCisgICBuYW1lc3BhY2U6ICdUcmFja2VyJywKKyAgIGF1dG9jbGVhbnVwOiAn YWxsJywKKyApCitAQCAtNDAxLDcgKzM5NSw2IEBAIGRlcHMgPSBjb21tb25fZGVwcyArIFsKKyAg IGxpYmdkYXRhX2RlcCwKKyAgIGxpYmdmZ3JhcGhfZGVwLAorICAgbV9kZXAsCistICB0cmFja2Vy X2NvbnRyb2xfZGVwLAorICAgdHJhY2tlcl9zcGFycWxfZGVwLAorIF0KKyAKK2RpZmYgLS1naXQg YS9zcmMvb3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIzLk1pbmVyLkZpbGVzLkluZGV4LnhtbCBiL3Ny Yy9vcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMuTWluZXIuRmlsZXMuSW5kZXgueG1sCituZXcgZmls ZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAuLmUzNjhmMWUyCistLS0gL2Rldi9udWxsCisr KysgYi9zcmMvb3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIzLk1pbmVyLkZpbGVzLkluZGV4LnhtbAor QEAgLTAsMCArMSwxMSBAQAorKzxub2RlPgorKyAgPGludGVyZmFjZSBuYW1lPSdvcmcuZnJlZWRl c2t0b3AuVHJhY2tlcjMuTWluZXIuRmlsZXMuSW5kZXgnPgorKyAgICA8bWV0aG9kIG5hbWU9J0lu ZGV4TG9jYXRpb24nPgorKyAgICAgIDxhcmcgdHlwZT0ncycgbmFtZT0nZmlsZV91cmknIGRpcmVj dGlvbj0naW4nIC8+CisrICAgICAgPGFyZyB0eXBlPSdhcycgbmFtZT0nZ3JhcGhzJyBkaXJlY3Rp b249J2luJyAvPgorKyAgICAgIDxhcmcgdHlwZT0nYXMnIG5hbWU9J2ZsYWdzJyBkaXJlY3Rpb249 J2luJz4iCisrICAgICAgICA8ZG9jOmRvYz48ZG9jOnN1bW1hcnk+RXh0ZW5zaW9uIGZsYWdzLCBu byBhbGxvd2VkIHZhbHVlcyBhdCB0aGUgbW9tZW50PC9kb2M6c3VtbWFyeT48L2RvYzpkb2M+Cisr ICAgICAgPC9hcmc+CisrICAgIDwvbWV0aG9kPgorKyAgPC9pbnRlcmZhY2U+CisrPC9ub2RlPgor ZGlmZiAtLWdpdCBhL3NyYy9vcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMuTWluZXIueG1sIGIvc3Jj L29yZy5mcmVlZGVza3RvcC5UcmFja2VyMy5NaW5lci54bWwKK25ldyBmaWxlIG1vZGUgMTAwNjQ0 CitpbmRleCAwMDAwMDAwMC4uNmZlMDljODQKKy0tLSAvZGV2L251bGwKKysrKyBiL3NyYy9vcmcu ZnJlZWRlc2t0b3AuVHJhY2tlcjMuTWluZXIueG1sCitAQCAtMCwwICsxLDU2IEBACisrPD94bWwg dmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKysKKys8bm9kZSBuYW1lPSIvIj4KKysg IDxpbnRlcmZhY2UgbmFtZT0ib3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIzLk1pbmVyIj4KKysgICAg PGFubm90YXRpb24gbmFtZT0ib3JnLmZyZWVkZXNrdG9wLkRCdXMuR0xpYi5DU3ltYm9sIiB2YWx1 ZT0iX3RyYWNrZXJfbWluZXJfZGJ1cyIvPgorKyAgICA8bWV0aG9kIG5hbWU9IlN0YXJ0Ij4KKysg ICAgICA8YW5ub3RhdGlvbiBuYW1lPSJvcmcuZnJlZWRlc2t0b3AuREJ1cy5HTGliLkFzeW5jIiAg dmFsdWU9InRydWUiLz4KKysgICAgPC9tZXRob2Q+CisrICAgIDxtZXRob2QgbmFtZT0iR2V0U3Rh dHVzIj4KKysgICAgICA8YW5ub3RhdGlvbiBuYW1lPSJvcmcuZnJlZWRlc2t0b3AuREJ1cy5HTGli LkFzeW5jIiB2YWx1ZT0idHJ1ZSIvPgorKyAgICAgIDxhcmcgdHlwZT0icyIgbmFtZT0ic3RhdHVz IiBkaXJlY3Rpb249Im91dCIgLz4KKysgICAgPC9tZXRob2Q+CisrICAgIDxtZXRob2QgbmFtZT0i R2V0UHJvZ3Jlc3MiPgorKyAgICAgIDxhbm5vdGF0aW9uIG5hbWU9Im9yZy5mcmVlZGVza3RvcC5E QnVzLkdMaWIuQXN5bmMiIHZhbHVlPSJ0cnVlIi8+CisrICAgICAgPGFyZyB0eXBlPSJkIiBuYW1l PSJwcm9ncmVzcyIgZGlyZWN0aW9uPSJvdXQiIC8+CisrICAgIDwvbWV0aG9kPgorKyAgICA8bWV0 aG9kIG5hbWU9IkdldFJlbWFpbmluZ1RpbWUiPgorKyAgICAgIDxhbm5vdGF0aW9uIG5hbWU9Im9y Zy5mcmVlZGVza3RvcC5EQnVzLkdMaWIuQXN5bmMiIHZhbHVlPSJ0cnVlIi8+CisrICAgICAgPGFy ZyB0eXBlPSJpIiBuYW1lPSJyZW1haW5pbmdfdGltZSIgZGlyZWN0aW9uPSJvdXQiIC8+CisrICAg IDwvbWV0aG9kPgorKyAgICA8bWV0aG9kIG5hbWU9IkdldFBhdXNlRGV0YWlscyI+CisrICAgICAg PGFubm90YXRpb24gbmFtZT0ib3JnLmZyZWVkZXNrdG9wLkRCdXMuR0xpYi5Bc3luYyIgdmFsdWU9 InRydWUiLz4KKysgICAgICA8YXJnIHR5cGU9ImFzIiBuYW1lPSJwYXVzZV9hcHBsaWNhdGlvbnMi IGRpcmVjdGlvbj0ib3V0IiAvPgorKyAgICAgIDxhcmcgdHlwZT0iYXMiIG5hbWU9InBhdXNlX3Jl YXNvbnMiIGRpcmVjdGlvbj0ib3V0IiAvPgorKyAgICA8L21ldGhvZD4KKysgICAgPG1ldGhvZCBu YW1lPSJQYXVzZSI+CisrICAgICAgPGFubm90YXRpb24gbmFtZT0ib3JnLmZyZWVkZXNrdG9wLkRC dXMuR0xpYi5Bc3luYyIgIHZhbHVlPSJ0cnVlIi8+CisrICAgICAgPGFyZyB0eXBlPSJzIiBuYW1l PSJhcHBsaWNhdGlvbiIgZGlyZWN0aW9uPSJpbiIgLz4KKysgICAgICA8YXJnIHR5cGU9InMiIG5h bWU9InJlYXNvbiIgZGlyZWN0aW9uPSJpbiIgLz4KKysgICAgICA8YXJnIHR5cGU9ImkiIG5hbWU9 ImNvb2tpZSIgZGlyZWN0aW9uPSJvdXQiIC8+CisrICAgIDwvbWV0aG9kPgorKyAgICA8bWV0aG9k IG5hbWU9IlBhdXNlRm9yUHJvY2VzcyI+CisrICAgICAgPGFubm90YXRpb24gbmFtZT0ib3JnLmZy ZWVkZXNrdG9wLkRCdXMuR0xpYi5Bc3luYyIgIHZhbHVlPSJ0cnVlIi8+CisrICAgICAgPGFyZyB0 eXBlPSJzIiBuYW1lPSJhcHBsaWNhdGlvbiIgZGlyZWN0aW9uPSJpbiIgLz4KKysgICAgICA8YXJn IHR5cGU9InMiIG5hbWU9InJlYXNvbiIgZGlyZWN0aW9uPSJpbiIgLz4KKysgICAgICA8YXJnIHR5 cGU9ImkiIG5hbWU9ImNvb2tpZSIgZGlyZWN0aW9uPSJvdXQiIC8+CisrICAgIDwvbWV0aG9kPgor KyAgICA8bWV0aG9kIG5hbWU9IlJlc3VtZSI+CisrICAgICAgPGFubm90YXRpb24gbmFtZT0ib3Jn LmZyZWVkZXNrdG9wLkRCdXMuR0xpYi5Bc3luYyIgdmFsdWU9InRydWUiLz4KKysgICAgICA8YXJn IHR5cGU9ImkiIG5hbWU9ImNvb2tpZSIgZGlyZWN0aW9uPSJpbiIgLz4KKysgICAgPC9tZXRob2Q+ CisrCisrICAgIDwhLS0gU2lnbmFscyAtLT4KKysgICAgPHNpZ25hbCBuYW1lPSJTdGFydGVkIiAv PgorKyAgICA8c2lnbmFsIG5hbWU9IlN0b3BwZWQiPgorKyAgICAgIDxhcmcgdHlwZT0iYiIgbmFt ZT0iaW50ZXJydXB0ZWQiIC8+CisrICAgIDwvc2lnbmFsPgorKyAgICA8c2lnbmFsIG5hbWU9IlBh dXNlZCIgLz4KKysgICAgPHNpZ25hbCBuYW1lPSJSZXN1bWVkIiAvPgorKyAgICA8c2lnbmFsIG5h bWU9IlByb2dyZXNzIj4KKysgICAgICA8YXJnIHR5cGU9InMiIG5hbWU9InN0YXR1cyIgLz4KKysg ICAgICA8YXJnIHR5cGU9ImQiIG5hbWU9InByb2dyZXNzIiAvPgorKyAgICAgIDxhcmcgdHlwZT0i aSIgbmFtZT0icmVtYWluaW5nX3RpbWUiIC8+CisrICAgIDwvc2lnbmFsPgorKyAgPC9pbnRlcmZh Y2U+CisrPC9ub2RlPgorZGlmZiAtLWdpdCBhL3NyYy9waG90b3MtYXBwbGljYXRpb24uYyBiL3Ny Yy9waG90b3MtYXBwbGljYXRpb24uYworaW5kZXggY2IxMTRmZGEuLjVmYmJiZWYyIDEwMDY0NAor LS0tIGEvc3JjL3Bob3Rvcy1hcHBsaWNhdGlvbi5jCisrKysgYi9zcmMvcGhvdG9zLWFwcGxpY2F0 aW9uLmMKK0BAIC0zNiw3ICszNiw2IEBACisgI2luY2x1ZGUgPGdsaWIuaD4KKyAjaW5jbHVkZSA8 Z2xpYi9naTE4bi5oPgorICNpbmNsdWRlIDxncmlsby5oPgorLSNpbmNsdWRlIDxsaWJ0cmFja2Vy LWNvbnRyb2wvdHJhY2tlci1jb250cm9sLmg+CisgCisgI2luY2x1ZGUgInBob3Rvcy1hcHBsaWNh dGlvbi5oIgorICNpbmNsdWRlICJwaG90b3MtYmFzZS1pdGVtLmgiCitAQCAtNjgsNyArNjcsOCBA QAorICNpbmNsdWRlICJwaG90b3Mtc2hhcmUtbm90aWZpY2F0aW9uLmgiCisgI2luY2x1ZGUgInBo b3Rvcy1zaGFyZS1wb2ludC1tYW5hZ2VyLmgiCisgI2luY2x1ZGUgInBob3Rvcy10aHVtYm5haWwt ZmFjdG9yeS5oIgorLSNpbmNsdWRlICJwaG90b3MtdHJhY2tlci1leHRyYWN0LXByaW9yaXR5Lmgi CisrI2luY2x1ZGUgInBob3Rvcy10cmFja2VyLW1pbmVyLWluZGV4LmgiCisrI2luY2x1ZGUgInBo b3Rvcy10cmFja2VyLXF1ZXVlLmgiCisgI2luY2x1ZGUgInBob3Rvcy11dGlscy5oIgorIAorIAor QEAgLTEyNyw3ICsxMjcsNyBAQCBzdHJ1Y3QgX1Bob3Rvc0FwcGxpY2F0aW9uCisgICBQaG90b3NT ZWFyY2hQcm92aWRlciAqc2VhcmNoX3Byb3ZpZGVyOworICAgUGhvdG9zU2VsZWN0aW9uQ29udHJv bGxlciAqc2VsX2NudHJscjsKKyAgIFBob3Rvc1RodW1ibmFpbEZhY3RvcnkgKmZhY3Rvcnk7Cist ICBUcmFja2VyRXh0cmFjdFByaW9yaXR5ICpleHRyYWN0X3ByaW9yaXR5OworKyAgVHJhY2tlck1p bmVyRmlsZXNJbmRleCAqbWluZXJfY29udHJvbF9wcm94eTsKKyAgIGdib29sZWFuIGVtcHR5X3Jl c3VsdHM7CisgICBnYm9vbGVhbiBtYWluX3dpbmRvd19kZWxldGVkOworICAgZ3VpbnQgY3JlYXRl X21pbmVyc19jb3VudDsKK0BAIC0xNDgsNyArMTQ4LDYgQEAgc3RhdGljIGd1aW50IHNpZ25hbHNb TEFTVF9TSUdOQUxdID0geyAwIH07CisgCisgc3RhdGljIHZvaWQgcGhvdG9zX2FwcGxpY2F0aW9u X3NlYXJjaF9jb250ZXh0X2lmYWNlX2luaXQgKFBob3Rvc1NlYXJjaENvbnRleHRJbnRlcmZhY2Ug KmlmYWNlKTsKKyAKKy0KKyBHX0RFRklORV9UWVBFX1dJVEhfQ09ERSAoUGhvdG9zQXBwbGljYXRp b24sIHBob3Rvc19hcHBsaWNhdGlvbiwgR1RLX1RZUEVfQVBQTElDQVRJT04sCisgICAgICAgICAg ICAgICAgICAgICAgICAgIEdfSU1QTEVNRU5UX0lOVEVSRkFDRSAoUEhPVE9TX1RZUEVfU0VBUkNI X0NPTlRFWFQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcGhvdG9zX2FwcGxpY2F0aW9uX3NlYXJjaF9jb250ZXh0X2lmYWNlX2luaXQpKTsKK0BAIC0x OTEsMTEgKzE5MCwxMSBAQCBzdHJ1Y3QgX1Bob3Rvc0FwcGxpY2F0aW9uQ3JlYXRlRGF0YQorIHN0 cnVjdCBfUGhvdG9zQXBwbGljYXRpb25JbXBvcnREYXRhCisgeworICAgUGhvdG9zQXBwbGljYXRp b24gKmFwcGxpY2F0aW9uOworKyAgVHJhY2tlck1pbmVyRmlsZXNJbmRleCAqbWluZXJfY29udHJv bF9wcm94eTsKKyAgIEdGaWxlICpkZXN0aW5hdGlvbjsKKyAgIEdGaWxlICppbXBvcnRfc3ViX2Rp cjsKKyAgIEdMaXN0ICpmaWxlczsKKyAgIFBob3Rvc0Jhc2VJdGVtICpjb2xsZWN0aW9uOworLSAg VHJhY2tlck1pbmVyTWFuYWdlciAqbWFuYWdlcjsKKyAgIGdjaGFyICpjb2xsZWN0aW9uX3VybjsK KyAgIGdpbnQ2NCBjdGltZV9sYXRlc3Q7CisgfTsKK0BAIC0yNDgsNyArMjQ3LDcgQEAgcGhvdG9z X2FwcGxpY2F0aW9uX2NyZWF0ZV9kYXRhX2ZyZWUgKFBob3Rvc0FwcGxpY2F0aW9uQ3JlYXRlRGF0 YSAqZGF0YSkKKyAKKyBzdGF0aWMgUGhvdG9zQXBwbGljYXRpb25JbXBvcnREYXRhICoKKyBwaG90 b3NfYXBwbGljYXRpb25faW1wb3J0X2RhdGFfbmV3IChQaG90b3NBcHBsaWNhdGlvbiAqYXBwbGlj YXRpb24sCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJhY2tlck1pbmVy TWFuYWdlciAqbWFuYWdlciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBU cmFja2VyTWluZXJGaWxlc0luZGV4ICptaW5lcl9jb250cm9sX3Byb3h5LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEdMaXN0ICpmaWxlcywKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBnaW50NjQgY3RpbWVfbGF0ZXN0KQorIHsKK0BAIC0yNTcsNyAr MjU2LDcgQEAgcGhvdG9zX2FwcGxpY2F0aW9uX2ltcG9ydF9kYXRhX25ldyAoUGhvdG9zQXBwbGlj YXRpb24gKmFwcGxpY2F0aW9uLAorICAgZGF0YSA9IGdfc2xpY2VfbmV3MCAoUGhvdG9zQXBwbGlj YXRpb25JbXBvcnREYXRhKTsKKyAgIGdfYXBwbGljYXRpb25faG9sZCAoR19BUFBMSUNBVElPTiAo YXBwbGljYXRpb24pKTsKKyAgIGRhdGEtPmFwcGxpY2F0aW9uID0gYXBwbGljYXRpb247CistICBk YXRhLT5tYW5hZ2VyID0gZ19vYmplY3RfcmVmIChtYW5hZ2VyKTsKKysgIGRhdGEtPm1pbmVyX2Nv bnRyb2xfcHJveHkgPSBtaW5lcl9jb250cm9sX3Byb3h5OworICAgZGF0YS0+ZmlsZXMgPSBnX2xp c3RfY29weV9kZWVwIChmaWxlcywgKEdDb3B5RnVuYykgZ19vYmplY3RfcmVmLCBOVUxMKTsKKyAg IGRhdGEtPmN0aW1lX2xhdGVzdCA9IGN0aW1lX2xhdGVzdDsKKyAgIHJldHVybiBkYXRhOworQEAg LTI3Nyw4ICsyNzYsOCBAQCBwaG90b3NfYXBwbGljYXRpb25faW1wb3J0X2RhdGFfZnJlZSAoUGhv dG9zQXBwbGljYXRpb25JbXBvcnREYXRhICpkYXRhKQorIAorICAgZ19jbGVhcl9vYmplY3QgKCZk YXRhLT5kZXN0aW5hdGlvbik7CisgICBnX2NsZWFyX29iamVjdCAoJmRhdGEtPmltcG9ydF9zdWJf ZGlyKTsKKysgIGdfY2xlYXJfb2JqZWN0ICgmZGF0YS0+bWluZXJfY29udHJvbF9wcm94eSk7Cisg ICBnX2xpc3RfZnJlZV9mdWxsIChkYXRhLT5maWxlcywgZ19vYmplY3RfdW5yZWYpOworLSAgZ19j bGVhcl9vYmplY3QgKCZkYXRhLT5tYW5hZ2VyKTsKKyAgIGdfZnJlZSAoZGF0YS0+Y29sbGVjdGlv bl91cm4pOworICAgZ19zbGljZV9mcmVlIChQaG90b3NBcHBsaWNhdGlvbkltcG9ydERhdGEsIGRh dGEpOworIH0KK0BAIC01ODQsMjcgKzU4Myw2IEBAIHBob3Rvc19hcHBsaWNhdGlvbl9hY3Rpb25z X3VwZGF0ZSAoUGhvdG9zQXBwbGljYXRpb24gKnNlbGYpCisgfQorIAorIAorLXN0YXRpYyB2b2lk CistcGhvdG9zX2FwcGxpY2F0aW9uX3RyYWNrZXJfY2xlYXJfcmRmX3R5cGVzIChHT2JqZWN0ICpz b3VyY2Vfb2JqZWN0LCBHQXN5bmNSZXN1bHQgKnJlcywgZ3BvaW50ZXIgdXNlcl9kYXRhKQorLXsK Ky0gIFBob3Rvc0FwcGxpY2F0aW9uICpzZWxmID0gUEhPVE9TX0FQUExJQ0FUSU9OICh1c2VyX2Rh dGEpOworLSAgVHJhY2tlckV4dHJhY3RQcmlvcml0eSAqZXh0cmFjdF9wcmlvcml0eSA9IFRSQUNL RVJfRVhUUkFDVF9QUklPUklUWSAoc291cmNlX29iamVjdCk7CistCistICB7CistICAgIGdfYXV0 b3B0ciAoR0Vycm9yKSBlcnJvciA9IE5VTEw7CistCistICAgIGlmICghdHJhY2tlcl9leHRyYWN0 X3ByaW9yaXR5X2NhbGxfY2xlYXJfcmRmX3R5cGVzX2ZpbmlzaCAoZXh0cmFjdF9wcmlvcml0eSwg cmVzLCAmZXJyb3IpKQorLSAgICAgIHsKKy0gICAgICAgIGdfd2FybmluZyAoIlVuYWJsZSB0byBj YWxsIENsZWFyUmRmVHlwZXM6ICVzIiwgZXJyb3ItPm1lc3NhZ2UpOworLSAgICAgICAgZ290byBv dXQ7CistICAgICAgfQorLSAgfQorLQorLSBvdXQ6CistICBnX2FwcGxpY2F0aW9uX3JlbGVhc2Ug KEdfQVBQTElDQVRJT04gKHNlbGYpKTsKKy19CistCistCisgc3RhdGljIGdib29sZWFuCisgcGhv dG9zX2FwcGxpY2F0aW9uX2RlbGV0ZV9ldmVudCAoUGhvdG9zQXBwbGljYXRpb24gKnNlbGYpCisg eworQEAgLTY0MSwxNiArNjE5LDYgQEAgcGhvdG9zX2FwcGxpY2F0aW9uX2Rlc3Ryb3kgKFBob3Rv c0FwcGxpY2F0aW9uICpzZWxmKQorICAgc2VsZi0+Y3JlYXRlX3dpbmRvd19jYW5jZWxsYWJsZSA9 IGdfY2FuY2VsbGFibGVfbmV3ICgpOworIAorICAgcGhvdG9zX2FwcGxpY2F0aW9uX3N0b3BfbWlu ZXJzIChzZWxmKTsKKy0KKy0gIGlmIChzZWxmLT5leHRyYWN0X3ByaW9yaXR5ICE9IE5VTEwpCist ICAgIHsKKy0gICAgICBnX2FwcGxpY2F0aW9uX2hvbGQgKEdfQVBQTElDQVRJT04gKHNlbGYpKTsK Ky0gICAgICB0cmFja2VyX2V4dHJhY3RfcHJpb3JpdHlfY2FsbF9jbGVhcl9yZGZfdHlwZXMgKHNl bGYtPmV4dHJhY3RfcHJpb3JpdHksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBOVUxMLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcGhvdG9zX2FwcGxpY2F0aW9uX3RyYWNrZXJfY2xlYXJf cmRmX3R5cGVzLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZik7CistICAgICAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5leHRyYWN0X3By aW9yaXR5KTsKKy0gICAgfQorIH0KKyAKKyAKK0BAIC03NDAsNjAgKzcwOCw2IEBAIHBob3Rvc19h cHBsaWNhdGlvbl9nZWdsX2luaXRfZmlzaGVzX2lkbGUgKGdwb2ludGVyIHVzZXJfZGF0YSkKKyB9 CisgCisgCistc3RhdGljIHZvaWQKKy1waG90b3NfYXBwbGljYXRpb25fdHJhY2tlcl9zZXRfcmRm X3R5cGVzIChHT2JqZWN0ICpzb3VyY2Vfb2JqZWN0LCBHQXN5bmNSZXN1bHQgKnJlcywgZ3BvaW50 ZXIgdXNlcl9kYXRhKQorLXsKKy0gIFBob3Rvc0FwcGxpY2F0aW9uICpzZWxmID0gUEhPVE9TX0FQ UExJQ0FUSU9OICh1c2VyX2RhdGEpOworLSAgVHJhY2tlckV4dHJhY3RQcmlvcml0eSAqZXh0cmFj dF9wcmlvcml0eSA9IFRSQUNLRVJfRVhUUkFDVF9QUklPUklUWSAoc291cmNlX29iamVjdCk7Cist CistICB7CistICAgIGdfYXV0b3B0ciAoR0Vycm9yKSBlcnJvciA9IE5VTEw7CistCistICAgIGlm ICghdHJhY2tlcl9leHRyYWN0X3ByaW9yaXR5X2NhbGxfc2V0X3JkZl90eXBlc19maW5pc2ggKGV4 dHJhY3RfcHJpb3JpdHksIHJlcywgJmVycm9yKSkKKy0gICAgICB7CistICAgICAgICBpZiAoIWdf ZXJyb3JfbWF0Y2hlcyAoZXJyb3IsIEdfSU9fRVJST1IsIEdfSU9fRVJST1JfQ0FOQ0VMTEVEKSkK Ky0gICAgICAgICAgZ193YXJuaW5nICgiVW5hYmxlIHRvIGNhbGwgU2V0UmRmVHlwZXM6ICVzIiwg ZXJyb3ItPm1lc3NhZ2UpOworLQorLSAgICAgICAgZ290byBvdXQ7CistICAgICAgfQorLSAgfQor LQorLSBvdXQ6CistICBnX2FwcGxpY2F0aW9uX3JlbGVhc2UgKEdfQVBQTElDQVRJT04gKHNlbGYp KTsKKy19CistCistCistc3RhdGljIHZvaWQKKy1waG90b3NfYXBwbGljYXRpb25fdHJhY2tlcl9l eHRyYWN0X3ByaW9yaXR5IChHT2JqZWN0ICpzb3VyY2Vfb2JqZWN0LCBHQXN5bmNSZXN1bHQgKnJl cywgZ3BvaW50ZXIgdXNlcl9kYXRhKQorLXsKKy0gIFBob3Rvc0FwcGxpY2F0aW9uICpzZWxmID0g UEhPVE9TX0FQUExJQ0FUSU9OICh1c2VyX2RhdGEpOworLSAgY29uc3QgZ2NoYXIgKmNvbnN0IHJk Zl90eXBlc1tdID0geyJuZm86SW1hZ2UiLCBOVUxMfTsKKy0KKy0gIHsKKy0gICAgZ19hdXRvcHRy IChHRXJyb3IpIGVycm9yID0gTlVMTDsKKy0KKy0gICAgc2VsZi0+ZXh0cmFjdF9wcmlvcml0eSA9 IHRyYWNrZXJfZXh0cmFjdF9wcmlvcml0eV9wcm94eV9uZXdfZm9yX2J1c19maW5pc2ggKHJlcywg JmVycm9yKTsKKy0gICAgaWYgKGVycm9yICE9IE5VTEwpCistICAgICAgeworLSAgICAgICAgaWYg KCFnX2Vycm9yX21hdGNoZXMgKGVycm9yLCBHX0lPX0VSUk9SLCBHX0lPX0VSUk9SX0NBTkNFTExF RCkpCistICAgICAgICAgIGdfd2FybmluZyAoIlVuYWJsZSB0byBjcmVhdGUgVHJhY2tlckV4dHJh Y3RQcmlvcml0eSBwcm94eTogJXMiLCBlcnJvci0+bWVzc2FnZSk7CistCistICAgICAgICBnb3Rv IG91dDsKKy0gICAgICB9CistICB9CistCistICBnX2FwcGxpY2F0aW9uX2hvbGQgKEdfQVBQTElD QVRJT04gKHNlbGYpKTsKKy0gIHRyYWNrZXJfZXh0cmFjdF9wcmlvcml0eV9jYWxsX3NldF9yZGZf dHlwZXMgKHNlbGYtPmV4dHJhY3RfcHJpb3JpdHksCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICByZGZfdHlwZXMsCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLT5jcmVhdGVfd2luZG93X2NhbmNlbGxhYmxl LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGhvdG9z X2FwcGxpY2F0aW9uX3RyYWNrZXJfc2V0X3JkZl90eXBlcywKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYpOworLQorLSBvdXQ6CistICBnX2FwcGxp Y2F0aW9uX3JlbGVhc2UgKEdfQVBQTElDQVRJT04gKHNlbGYpKTsKKy19CistCistCisgc3RhdGlj IGdib29sZWFuCisgcGhvdG9zX2FwcGxpY2F0aW9uX2NyZWF0ZV93aW5kb3cgKFBob3Rvc0FwcGxp Y2F0aW9uICpzZWxmKQorIHsKK0BAIC04MjgsMTMgKzc0Miw2IEBAIHBob3Rvc19hcHBsaWNhdGlv bl9jcmVhdGVfd2luZG93IChQaG90b3NBcHBsaWNhdGlvbiAqc2VsZikKKyAgICAgc2VsZi0+aW5p dF9maXNoZXNfaWQgPSBnX2lkbGVfYWRkIChwaG90b3NfYXBwbGljYXRpb25fZ2VnbF9pbml0X2Zp c2hlc19pZGxlLCBzZWxmKTsKKyAKKyAgIGdfYXBwbGljYXRpb25faG9sZCAoR19BUFBMSUNBVElP TiAoc2VsZikpOworLSAgdHJhY2tlcl9leHRyYWN0X3ByaW9yaXR5X3Byb3h5X25ld19mb3JfYnVz IChHX0JVU19UWVBFX1NFU1NJT04sCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEdfREJVU19QUk9YWV9GTEFHU19OT05FLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIxLk1p bmVyLkV4dHJhY3QiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiL29yZy9mcmVlZGVza3RvcC9UcmFja2VyMS9FeHRyYWN0L1ByaW9yaXR5IiwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi0+Y3JlYXRlX3dp bmRvd19jYW5jZWxsYWJsZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcGhvdG9zX2FwcGxpY2F0aW9uX3RyYWNrZXJfZXh0cmFjdF9wcmlvcml0eSwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZik7CisgCisg ICBwaG90b3NfYXBwbGljYXRpb25fc3RhcnRfbWluZXJzIChzZWxmKTsKKyAgIHJldHVybiBUUlVF OworQEAgLTExMTMsMTggKzEwMjAsMTggQEAgcGhvdG9zX2FwcGxpY2F0aW9uX2dldF9zdGF0ZSAo UGhvdG9zU2VhcmNoQ29udGV4dCAqY29udGV4dCkKKyAKKyAKKyBzdGF0aWMgdm9pZAorLXBob3Rv c19hcHBsaWNhdGlvbl9pbXBvcnRfaW5kZXhfZmlsZSAoR09iamVjdCAqc291cmNlX29iamVjdCwg R0FzeW5jUmVzdWx0ICpyZXMsIGdwb2ludGVyIHVzZXJfZGF0YSkKKytwaG90b3NfYXBwbGljYXRp b25faW1wb3J0X2luZGV4X2xvY2F0aW9uIChHT2JqZWN0ICpzb3VyY2Vfb2JqZWN0LCBHQXN5bmNS ZXN1bHQgKnJlcywgZ3BvaW50ZXIgdXNlcl9kYXRhKQorIHsKKyAgIFBob3Rvc0FwcGxpY2F0aW9u ICpzZWxmOworICAgZ19hdXRvcHRyIChHRmlsZSkgZmlsZSA9IEdfRklMRSAodXNlcl9kYXRhKTsK Ky0gIFRyYWNrZXJNaW5lck1hbmFnZXIgKm1hbmFnZXIgPSBUUkFDS0VSX01JTkVSX01BTkFHRVIg KHNvdXJjZV9vYmplY3QpOworKyAgVHJhY2tlck1pbmVyRmlsZXNJbmRleCAqbWluZXJfY29udHJv bF9wcm94eSA9IFRSQUNLRVJfTUlORVJfRklMRVNfSU5ERVggKHNvdXJjZV9vYmplY3QpOworIAor ICAgc2VsZiA9IFBIT1RPU19BUFBMSUNBVElPTiAoZ19hcHBsaWNhdGlvbl9nZXRfZGVmYXVsdCAo KSk7CisgCisgICB7CisgICAgIGdfYXV0b3B0ciAoR0Vycm9yKSBlcnJvciA9IE5VTEw7CisgCist ICAgIGlmICghdHJhY2tlcl9taW5lcl9tYW5hZ2VyX2luZGV4X2ZpbGVfZm9yX3Byb2Nlc3NfZmlu aXNoIChtYW5hZ2VyLCByZXMsICZlcnJvcikpCisrICAgIGlmICghdHJhY2tlcl9taW5lcl9maWxl c19pbmRleF9jYWxsX2luZGV4X2xvY2F0aW9uX2ZpbmlzaCAobWluZXJfY29udHJvbF9wcm94eSwg cmVzLCAmZXJyb3IpKQorICAgICAgIHsKKyAgICAgICAgIGdfYXV0b2ZyZWUgZ2NoYXIgKnVyaSA9 IE5VTEw7CisgCitAQCAtMTMyMyw3ICsxMjMwLDYgQEAgcGhvdG9zX2FwcGxpY2F0aW9uX2ltcG9y dF9maWxlX2NvcHkgKEdPYmplY3QgKnNvdXJjZV9vYmplY3QsIEdBc3luY1Jlc3VsdCAqcmVzLAor ICAgUGhvdG9zQXBwbGljYXRpb24gKnNlbGYgPSBkYXRhLT5hcHBsaWNhdGlvbjsKKyAgIGdfYXV0 b3B0ciAoR0ZpbGUpIGRlc3RpbmF0aW9uID0gTlVMTDsKKyAgIEdGaWxlICpzb3VyY2UgPSBHX0ZJ TEUgKHNvdXJjZV9vYmplY3QpOworLSAgVHJhY2tlck1pbmVyTWFuYWdlciAqbWFuYWdlciA9IGRh dGEtPm1hbmFnZXI7CisgCisgICB7CisgICAgIGdfYXV0b3B0ciAoR0Vycm9yKSBlcnJvciA9IE5V TEw7CitAQCAtMTM0OCw2ICsxMjU0LDggQEAgcGhvdG9zX2FwcGxpY2F0aW9uX2ltcG9ydF9maWxl X2NvcHkgKEdPYmplY3QgKnNvdXJjZV9vYmplY3QsIEdBc3luY1Jlc3VsdCAqcmVzLAorICAgZWxz ZQorICAgICB7CisgICAgICAgZ19hdXRvZnJlZSBnY2hhciAqZGVzdGluYXRpb25fdXJpID0gTlVM TDsKKysgICAgICBjb25zdCBnY2hhciAqdHJhY2tlcl9wcmlvcml0eV9ncmFwaHNbXSA9IHsgVFJB Q0tFUl9QSUNUVVJFU19HUkFQSCB9OworKyAgICAgIGNvbnN0IGdjaGFyICp0cmFja2VyX2luZGV4 X2xvY2F0aW9uX2ZsYWdzW10gPSB7ICJmb3ItcHJvY2VzcyIgfTsKKyAKKyAgICAgICBnX2Fzc2Vy dF90cnVlIChHX0lTX0ZJTEUgKGRlc3RpbmF0aW9uKSk7CisgICAgICAgZ19zZXRfb2JqZWN0ICgm ZGF0YS0+ZGVzdGluYXRpb24sIGRlc3RpbmF0aW9uKTsKK0BAIC0xMzY0LDExICsxMjcyLDEzIEBA IHBob3Rvc19hcHBsaWNhdGlvbl9pbXBvcnRfZmlsZV9jb3B5IChHT2JqZWN0ICpzb3VyY2Vfb2Jq ZWN0LCBHQXN5bmNSZXN1bHQgKnJlcywKKyAKKyAgICAgICBnX2FwcGxpY2F0aW9uX2hvbGQgKEdf QVBQTElDQVRJT04gKHNlbGYpKTsKKyAgICAgICBnX2FwcGxpY2F0aW9uX21hcmtfYnVzeSAoR19B UFBMSUNBVElPTiAoc2VsZikpOworLSAgICAgIHRyYWNrZXJfbWluZXJfbWFuYWdlcl9pbmRleF9m aWxlX2Zvcl9wcm9jZXNzX2FzeW5jIChtYW5hZ2VyLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbiwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcGhvdG9zX2FwcGxpY2F0aW9uX2ltcG9ydF9pbmRleF9maWxlLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX29iamVjdF9yZWYg KGRlc3RpbmF0aW9uKSk7CisrICAgICAgdHJhY2tlcl9taW5lcl9maWxlc19pbmRleF9jYWxsX2lu ZGV4X2xvY2F0aW9uIChzZWxmLT5taW5lcl9jb250cm9sX3Byb3h5LAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb25fdXJpLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJh Y2tlcl9wcmlvcml0eV9ncmFwaHMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB0cmFja2VyX2luZGV4X2xvY2F0aW9uX2ZsYWdzLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBob3Rv c19hcHBsaWNhdGlvbl9pbXBvcnRfaW5kZXhfbG9jYXRpb24sCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX29iamVjdF9yZWYgKGRlc3RpbmF0 aW9uKSk7CisgICAgIH0KKyAKKyAgb3V0OgorQEAgLTE1MDksNiArMTQxOSwzNyBAQCBwaG90b3Nf YXBwbGljYXRpb25faW1wb3J0X3Jlc3BvbnNlIChHdGtEaWFsb2cgKmRpYWxvZywgZ2ludCByZXNw b25zZV9pZCwgZ3BvaW50ZQorIH0KKyAKKyAKKytzdGF0aWMgVHJhY2tlck1pbmVyRmlsZXNJbmRl eCAqCisrcGhvdG9zX2FwcGxpY2F0aW9uX2dldF9taW5lcl9mc19jb250cm9sX3Byb3h5IChHQ2Fu Y2VsbGFibGUgKmNhbmNlbGxhYmxlKQorK3sKKysgIGdfYXV0b3B0ciAoUGhvdG9zVHJhY2tlclF1 ZXVlKSB0cmFja2VyX3F1ZXVlID0gTlVMTDsKKysgIGNvbnN0IGdjaGFyICptaW5lcl9mc19jb250 cm9sX2J1c25hbWU7CisrICBnX2F1dG9wdHIgKEdFcnJvcikgZXJyb3IgPSBOVUxMOworKyAgVHJh Y2tlck1pbmVyRmlsZXNJbmRleCAqbWluZXJfY29udHJvbF9wcm94eTsKKysKKysgIHRyYWNrZXJf cXVldWUgPSBwaG90b3NfdHJhY2tlcl9xdWV1ZV9kdXBfc2luZ2xldG9uIChjYW5jZWxsYWJsZSwg JmVycm9yKTsKKysKKysgIGlmICghdHJhY2tlcl9xdWV1ZSkgeworKyAgICBnX3dhcm5pbmcgKCJF cnJvciBnZXR0aW5nIFRyYWNrZXIgcXVldWU6ICVzLiBJbXBvcnQgd2lsbCBub3Qgd29yay4iLCBl cnJvci0+bWVzc2FnZSk7CisrICAgIHJldHVybiBOVUxMOworKyAgfQorKworKyAgbWluZXJfZnNf Y29udHJvbF9idXNuYW1lID0gcGhvdG9zX3RyYWNrZXJfcXVldWVfZ2V0X21pbmVyX2ZzX2NvbnRy b2xfYnVzbmFtZSAodHJhY2tlcl9xdWV1ZSk7CisrICBtaW5lcl9jb250cm9sX3Byb3h5ID0gdHJh Y2tlcl9taW5lcl9maWxlc19pbmRleF9wcm94eV9uZXdfZm9yX2J1c19zeW5jIChHX0JVU19UWVBF X1NFU1NJT04sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0RCVVNfUFJPWFlfRkxBR1NfTk9ORSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG1pbmVyX2ZzX2NvbnRyb2xfYnVzbmFtZSwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICIvb3JnL2ZyZWVkZXNrdG9wL1RyYWNrZXIzL01pbmVyL0ZpbGVzL0NvbnRyb2wiLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTlVMTCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZlcnJvcik7CisrICBpZiAo IW1pbmVyX2NvbnRyb2xfcHJveHkpIHsKKysgICAgZ193YXJuaW5nICgiRXJyb3IgZ2V0dGluZyBU cmFja2VyIE1pbmVyIEZTIGNvbnRyb2wgcHJveHk6ICVzLiBJbXBvcnQgd2lsbCBub3Qgd29yayIs IGVycm9yLT5tZXNzYWdlKTsKKysgICAgcmV0dXJuIE5VTEw7CisrICB9CisrCisrICByZXR1cm4g bWluZXJfY29udHJvbF9wcm94eTsKKyt9CisrCisrCisgc3RhdGljIHZvaWQKKyBwaG90b3NfYXBw bGljYXRpb25faW1wb3J0IChQaG90b3NBcHBsaWNhdGlvbiAqc2VsZikKKyB7CitAQCAtMTUxOSw4 ICsxNDYwLDggQEAgcGhvdG9zX2FwcGxpY2F0aW9uX2ltcG9ydCAoUGhvdG9zQXBwbGljYXRpb24g KnNlbGYpCisgICBHdGtXaWRnZXQgKmRpYWxvZzsKKyAgIGdfYXV0b3B0ciAoUGhvdG9zQXBwbGlj YXRpb25JbXBvcnREYXRhKSBkYXRhID0gTlVMTDsKKyAgIFBob3Rvc1NvdXJjZSAqc291cmNlOwor LSAgVHJhY2tlck1pbmVyTWFuYWdlciAqbWFuYWdlciA9IE5VTEw7IC8qIFRPRE86IHVzZSBnX2F1 dG9wdHIgKi8KKyAgIGdpbnQ2NCBjdGltZV9sYXRlc3QgPSAtMTsKKysgIFRyYWNrZXJNaW5lckZp bGVzSW5kZXggKm1pbmVyX2NvbnRyb2xfcHJveHk7CisgCisgICBzb3VyY2UgPSBQSE9UT1NfU09V UkNFIChwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF9hY3RpdmVfb2JqZWN0IChzZWxmLT5zdGF0ZS0+ c3JjX21uZ3IpKTsKKyAgIGdfcmV0dXJuX2lmX2ZhaWwgKFBIT1RPU19JU19TT1VSQ0UgKHNvdXJj ZSkpOworQEAgLTE1MzMsMTcgKzE0NzQsOSBAQCBwaG90b3NfYXBwbGljYXRpb25faW1wb3J0IChQ aG90b3NBcHBsaWNhdGlvbiAqc2VsZikKKyAgIHNlbGVjdGlvbiA9IHBob3Rvc19zZWxlY3Rpb25f Y29udHJvbGxlcl9nZXRfc2VsZWN0aW9uIChzZWxmLT5zZWxfY250cmxyKTsKKyAgIGdfcmV0dXJu X2lmX2ZhaWwgKHNlbGVjdGlvbiAhPSBOVUxMKTsKKyAKKy0gIHsKKy0gICAgZ19hdXRvcHRyIChH RXJyb3IpIGVycm9yID0gTlVMTDsKKy0KKy0gICAgbWFuYWdlciA9IHRyYWNrZXJfbWluZXJfbWFu YWdlcl9uZXdfZnVsbCAoRkFMU0UsICZlcnJvcik7CistICAgIGlmIChlcnJvciAhPSBOVUxMKQor LSAgICAgIHsKKy0gICAgICAgIGdfd2FybmluZyAoIlVuYWJsZSB0byBjcmVhdGUgYSBUcmFja2Vy TWluZXJNYW5hZ2VyLCBpbXBvcnRpbmcgZnJvbSBhdHRhY2hlZCBkZXZpY2VzIHdvbid0IHdvcms6 ICVzIiwKKy0gICAgICAgICAgICAgICAgICAgZXJyb3ItPm1lc3NhZ2UpOworLSAgICAgICAgZ290 byBvdXQ7CistICAgICAgfQorLSAgfQorKyAgbWluZXJfY29udHJvbF9wcm94eSA9IHBob3Rvc19h cHBsaWNhdGlvbl9nZXRfbWluZXJfZnNfY29udHJvbF9wcm94eSAoTlVMTCk7CisrICBpZiAoIW1p bmVyX2NvbnRyb2xfcHJveHkpCisrICAgIGdvdG8gb3V0OworIAorICAgZm9yIChsID0gc2VsZWN0 aW9uOyBsICE9IE5VTEw7IGwgPSBsLT5uZXh0KQorICAgICB7CitAQCAtMTU3MiwxNCArMTUwNSwx NCBAQCBwaG90b3NfYXBwbGljYXRpb25faW1wb3J0IChQaG90b3NBcHBsaWNhdGlvbiAqc2VsZikK KyAgIGRpYWxvZyA9IHBob3Rvc19pbXBvcnRfZGlhbG9nX25ldyAoR1RLX1dJTkRPVyAoc2VsZi0+ bWFpbl93aW5kb3cpLCBjdGltZV9sYXRlc3QpOworICAgZ3RrX3dpZGdldF9zaG93X2FsbCAoZGlh bG9nKTsKKyAKKy0gIGRhdGEgPSBwaG90b3NfYXBwbGljYXRpb25faW1wb3J0X2RhdGFfbmV3IChz ZWxmLCBtYW5hZ2VyLCBmaWxlcywgY3RpbWVfbGF0ZXN0KTsKKysgIGRhdGEgPSBwaG90b3NfYXBw bGljYXRpb25faW1wb3J0X2RhdGFfbmV3IChzZWxmLCBtaW5lcl9jb250cm9sX3Byb3h5LCBmaWxl cywgY3RpbWVfbGF0ZXN0KTsKKysKKyAgIGdfc2lnbmFsX2Nvbm5lY3QgKGRpYWxvZywKKyAgICAg ICAgICAgICAgICAgICAgICJyZXNwb25zZSIsCisgICAgICAgICAgICAgICAgICAgICBHX0NBTExC QUNLIChwaG90b3NfYXBwbGljYXRpb25faW1wb3J0X3Jlc3BvbnNlKSwKKyAgICAgICAgICAgICAg ICAgICAgIGdfc3RlYWxfcG9pbnRlciAoJmRhdGEpKTsKKyAKKyAgb3V0OgorLSAgZ19jbGVhcl9v YmplY3QgKCZtYW5hZ2VyKTsKKyAgIGdfbGlzdF9mcmVlX2Z1bGwgKGZpbGVzLCBnX29iamVjdF91 bnJlZik7CisgfQorIAorQEAgLTI5NzQsNiArMjkwNyw3IEBAIHBob3Rvc19hcHBsaWNhdGlvbl9k aXNwb3NlIChHT2JqZWN0ICpvYmplY3QpCisgICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPmluc3Rh X2FjdGlvbik7CisgICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPmxvYWRfbmV4dF9hY3Rpb24pOwor ICAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5sb2FkX3ByZXZpb3VzX2FjdGlvbik7CisrICBnX2Ns ZWFyX29iamVjdCAoJnNlbGYtPm1pbmVyX2NvbnRyb2xfcHJveHkpOworICAgZ19jbGVhcl9vYmpl Y3QgKCZzZWxmLT5vcGVuX2FjdGlvbik7CisgICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPnByZXZp ZXdfbWVudV9hY3Rpb24pOworICAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5wcmltYXJ5X21lbnVf YWN0aW9uKTsKK0BAIC0zMDAyLDcgKzI5MzYsNiBAQCBwaG90b3NfYXBwbGljYXRpb25fZGlzcG9z ZSAoR09iamVjdCAqb2JqZWN0KQorICAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5jYW1lcmFfY2Fj aGUpOworICAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5zZWxfY250cmxyKTsKKyAgIGdfY2xlYXJf b2JqZWN0ICgmc2VsZi0+ZmFjdG9yeSk7CistICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPmV4dHJh Y3RfcHJpb3JpdHkpOworIAorICAgaWYgKHNlbGYtPnN0YXRlICE9IE5VTEwpCisgICAgIHsKK0BA IC0zMTMwLDggKzMwNjMsNyBAQCBwaG90b3NfYXBwbGljYXRpb25fZ2V0X21pbmVyc19ydW5uaW5n IChQaG90b3NBcHBsaWNhdGlvbiAqc2VsZikKKyAgIHJldHVybiBzZWxmLT5taW5lcnNfcnVubmlu ZzsKKyB9CisgCistCistZ2ludAorK2ludAorIHBob3Rvc19hcHBsaWNhdGlvbl9nZXRfc2NhbGVf ZmFjdG9yIChQaG90b3NBcHBsaWNhdGlvbiAqc2VsZikKKyB7CisgICBHTGlzdCAqd2luZG93czsK K2RpZmYgLS1naXQgYS9zcmMvcGhvdG9zLWJhc2UtaXRlbS5jIGIvc3JjL3Bob3Rvcy1iYXNlLWl0 ZW0uYworaW5kZXggMTQzNDMxZjkuLmIzNDcwNmYyIDEwMDY0NAorLS0tIGEvc3JjL3Bob3Rvcy1i YXNlLWl0ZW0uYworKysrIGIvc3JjL3Bob3Rvcy1iYXNlLWl0ZW0uYworQEAgLTI3NTYsNiArMjc1 NiwxNiBAQCBwaG90b3NfYmFzZV9pdGVtX3VwZGF0ZV9pbmZvX2Zyb21fdHlwZSAoUGhvdG9zQmFz ZUl0ZW0gKnNlbGYpCisgfQorIAorIAorK3N0YXRpYyBnZG91YmxlCisrZ2V0X2RvdWJsZV93aXRo X2RlZmF1bHQgKFRyYWNrZXJTcGFycWxDdXJzb3IgKmN1cnNvciwgUGhvdG9zUXVlcnlDb2x1bW5z IGNvbHVtbiwgZ2RvdWJsZSBkZWZhdWx0X3ZhbHVlKQorK3sKKysgIGlmICh0cmFja2VyX3NwYXJx bF9jdXJzb3JfaXNfYm91bmQgKGN1cnNvciwgY29sdW1uKSkgeworKyAgICByZXR1cm4gdHJhY2tl cl9zcGFycWxfY3Vyc29yX2dldF9kb3VibGUgKGN1cnNvciwgY29sdW1uKTsKKysgIH0gZWxzZSB7 CisrICAgIHJldHVybiBkZWZhdWx0X3ZhbHVlOworKyAgfQorK30KKysKKyBzdGF0aWMgdm9pZAor IHBob3Rvc19iYXNlX2l0ZW1fcG9wdWxhdGVfZnJvbV9jdXJzb3IgKFBob3Rvc0Jhc2VJdGVtICpz ZWxmLCBUcmFja2VyU3BhcnFsQ3Vyc29yICpjdXJzb3IpCisgeworQEAgLTI4OTEsMTAgKzI5MDEs MTAgQEAgcGhvdG9zX2Jhc2VfaXRlbV9wb3B1bGF0ZV9mcm9tX2N1cnNvciAoUGhvdG9zQmFzZUl0 ZW0gKnNlbGYsIFRyYWNrZXJTcGFycWxDdXJzb3IKKyAgICAgICBwcml2LT53aWR0aCA9IGhlaWdo dDsKKyAgICAgfQorIAorLSAgcHJpdi0+ZXhwb3N1cmVfdGltZSA9IHRyYWNrZXJfc3BhcnFsX2N1 cnNvcl9nZXRfZG91YmxlIChjdXJzb3IsIFBIT1RPU19RVUVSWV9DT0xVTU5TX0VYUE9TVVJFX1RJ TUUpOworLSAgcHJpdi0+Zm51bWJlciA9IHRyYWNrZXJfc3BhcnFsX2N1cnNvcl9nZXRfZG91Ymxl IChjdXJzb3IsIFBIT1RPU19RVUVSWV9DT0xVTU5TX0ZOVU1CRVIpOworLSAgcHJpdi0+Zm9jYWxf bGVuZ3RoID0gdHJhY2tlcl9zcGFycWxfY3Vyc29yX2dldF9kb3VibGUgKGN1cnNvciwgUEhPVE9T X1FVRVJZX0NPTFVNTlNfRk9DQUxfTEVOR1RIKTsKKy0gIHByaXYtPmlzb19zcGVlZCA9IHRyYWNr ZXJfc3BhcnFsX2N1cnNvcl9nZXRfZG91YmxlIChjdXJzb3IsIFBIT1RPU19RVUVSWV9DT0xVTU5T X0lTT19TUEVFRCk7CisrICBwcml2LT5leHBvc3VyZV90aW1lID0gZ2V0X2RvdWJsZV93aXRoX2Rl ZmF1bHQgKGN1cnNvciwgUEhPVE9TX1FVRVJZX0NPTFVNTlNfRVhQT1NVUkVfVElNRSwgMC4wKTsK KysgIHByaXYtPmZudW1iZXIgPSBnZXRfZG91YmxlX3dpdGhfZGVmYXVsdCAoY3Vyc29yLCBQSE9U T1NfUVVFUllfQ09MVU1OU19GTlVNQkVSLCAwLjApOworKyAgcHJpdi0+Zm9jYWxfbGVuZ3RoID0g Z2V0X2RvdWJsZV93aXRoX2RlZmF1bHQgKGN1cnNvciwgUEhPVE9TX1FVRVJZX0NPTFVNTlNfRk9D QUxfTEVOR1RILCAwLjApOworKyAgcHJpdi0+aXNvX3NwZWVkID0gZ2V0X2RvdWJsZV93aXRoX2Rl ZmF1bHQgKGN1cnNvciwgUEhPVE9TX1FVRVJZX0NPTFVNTlNfSVNPX1NQRUVELCAwLjApOworIAor ICAgZmxhc2ggPSB0cmFja2VyX3NwYXJxbF9jdXJzb3JfZ2V0X3N0cmluZyAoY3Vyc29yLCBQSE9U T1NfUVVFUllfQ09MVU1OU19GTEFTSCwgTlVMTCk7CisgICBwcml2LT5mbGFzaCA9IGdfcXVhcmtf ZnJvbV9zdHJpbmcgKGZsYXNoKTsKK2RpZmYgLS1naXQgYS9zcmMvcGhvdG9zLWluZGV4aW5nLW5v dGlmaWNhdGlvbi5jIGIvc3JjL3Bob3Rvcy1pbmRleGluZy1ub3RpZmljYXRpb24uYworaW5kZXgg N2IyZWE3ZGQuLjEyMmQwZDkxIDEwMDY0NAorLS0tIGEvc3JjL3Bob3Rvcy1pbmRleGluZy1ub3Rp ZmljYXRpb24uYworKysrIGIvc3JjL3Bob3Rvcy1pbmRleGluZy1ub3RpZmljYXRpb24uYworQEAg LTI2LDEyICsyNiwxMyBAQAorICNpbmNsdWRlIDxnaW8vZ2lvLmg+CisgI2luY2x1ZGUgPGdsaWIu aD4KKyAjaW5jbHVkZSA8Z2xpYi9naTE4bi5oPgorLSNpbmNsdWRlIDxsaWJ0cmFja2VyLWNvbnRy b2wvdHJhY2tlci1jb250cm9sLmg+CisgCisgI2luY2x1ZGUgInBob3Rvcy1hcHBsaWNhdGlvbi5o IgorICNpbmNsdWRlICJwaG90b3MtZ29tLW1pbmVyLmgiCisgI2luY2x1ZGUgInBob3Rvcy1pbmRl eGluZy1ub3RpZmljYXRpb24uaCIKKyAjaW5jbHVkZSAicGhvdG9zLW5vdGlmaWNhdGlvbi1tYW5h Z2VyLmgiCisrI2luY2x1ZGUgInBob3Rvcy10cmFja2VyLXF1ZXVlLmgiCisrI2luY2x1ZGUgInBo b3Rvcy10cmFja2VyLW1pbmVyLmgiCisgCisgCisgc3RydWN0IF9QaG90b3NJbmRleGluZ05vdGlm aWNhdGlvbgorQEAgLTQxLDcgKzQyLDcgQEAgc3RydWN0IF9QaG90b3NJbmRleGluZ05vdGlmaWNh dGlvbgorICAgR3RrV2lkZ2V0ICpwcmltYXJ5X2xhYmVsOworICAgR3RrV2lkZ2V0ICpzZWNvbmRh cnlfbGFiZWw7CisgICBHdGtXaWRnZXQgKnNwaW5uZXI7CistICBUcmFja2VyTWluZXJNYW5hZ2Vy ICptYW5hZ2VyOworKyAgVHJhY2tlck1pbmVyICptaW5lcl9mc19wcm94eTsKKyAgIGdib29sZWFu IGNsb3NlZDsKKyAgIGdib29sZWFuIG9uX2Rpc3BsYXk7CisgICBndWludCB0aW1lb3V0X2lkOwor QEAgLTU2LDggKzU3LDYgQEAgZW51bQorICAgUkVNT1RFX01JTkVSX1RJTUVPVVQgPSAxMCAvKiBz ICovCisgfTsKKyAKKy1zdGF0aWMgY29uc3QgZ2NoYXIgKk1JTkVSX0ZJTEVTID0gIm9yZy5mcmVl ZGVza3RvcC5UcmFja2VyMS5NaW5lci5GaWxlcyI7CistCisgCisgc3RhdGljIHZvaWQKKyBwaG90 b3NfaW5kZXhpbmdfbm90aWZpY2F0aW9uX3JlbW92ZV90aW1lb3V0IChQaG90b3NJbmRleGluZ05v dGlmaWNhdGlvbiAqc2VsZikKK0BAIC0xODAsMTYgKzE3OSwxOCBAQCBwaG90b3NfaW5kZXhpbmdf bm90aWZpY2F0aW9uX2NoZWNrX25vdGlmaWNhdGlvbiAoUGhvdG9zSW5kZXhpbmdOb3RpZmljYXRp b24gKnNlbAorICAgR1NMaXN0ICpydW5uaW5nID0gTlVMTDsKKyAgIGdib29sZWFuIGlzX2luZGV4 aW5nX2xvY2FsID0gRkFMU0U7CisgICBnYm9vbGVhbiBpc19pbmRleGluZ19yZW1vdGUgPSBGQUxT RTsKKysgIEdFcnJvciAqZXJyb3IgPSBOVUxMOworKyAgZ2RvdWJsZSBwcm9ncmVzczsKKyAKKy0g IHJ1bm5pbmcgPSB0cmFja2VyX21pbmVyX21hbmFnZXJfZ2V0X3J1bm5pbmcgKHNlbGYtPm1hbmFn ZXIpOworLSAgaWYgKGdfc2xpc3RfZmluZF9jdXN0b20gKHJ1bm5pbmcsIChnY29uc3Rwb2ludGVy KSBNSU5FUl9GSUxFUywgKEdDb21wYXJlRnVuYykgZ19zdHJjbXAwKSAhPSBOVUxMKQorLSAgICB7 CistICAgICAgZ2RvdWJsZSBwcm9ncmVzczsKKysgIHRyYWNrZXJfbWluZXJfY2FsbF9nZXRfcHJv Z3Jlc3Nfc3luYyAoc2VsZi0+bWluZXJfZnNfcHJveHksICZwcm9ncmVzcywgTlVMTCwgJmVycm9y KTsKKysgIGlmIChlcnJvcikgeworKyAgICBnX3dhcm5pbmcgKCJDb3VsZG4ndCBnZXQgaW5kZXhp bmcgcHJvZ3Jlc3MgZnJvbSBUcmFja2VyIE1pbmVyIEZTOiAlcyIsIGVycm9yLT5tZXNzYWdlKTsK KyAKKy0gICAgICB0cmFja2VyX21pbmVyX21hbmFnZXJfZ2V0X3N0YXR1cyAoc2VsZi0+bWFuYWdl ciwgTUlORVJfRklMRVMsIE5VTEwsICZwcm9ncmVzcywgTlVMTCk7CistICAgICAgaWYgKHByb2dy ZXNzIDwgMSkKKy0gICAgICAgIGlzX2luZGV4aW5nX2xvY2FsID0gVFJVRTsKKy0gICAgfQorKyAg ICBnX2NsZWFyX2Vycm9yICgmZXJyb3IpOworKyAgfSBlbHNlIHsKKysgICAgaWYgKHByb2dyZXNz IDwgMSkKKysgICAgICBpc19pbmRleGluZ19sb2NhbCA9IFRSVUU7CisrICB9CisgCisgICBhcHAg PSBnX2FwcGxpY2F0aW9uX2dldF9kZWZhdWx0ICgpOworICAgbWluZXJzX3J1bm5pbmcgPSBwaG90 b3NfYXBwbGljYXRpb25fZ2V0X21pbmVyc19ydW5uaW5nIChQSE9UT1NfQVBQTElDQVRJT04gKGFw cCkpOworQEAgLTIyMiw3ICsyMjMsNiBAQCBwaG90b3NfaW5kZXhpbmdfbm90aWZpY2F0aW9uX2Rp c3Bvc2UgKEdPYmplY3QgKm9iamVjdCkKKyAgIHBob3Rvc19pbmRleGluZ19ub3RpZmljYXRpb25f cmVtb3ZlX3RpbWVvdXQgKHNlbGYpOworIAorICAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5udGZj dG5fbW5ncik7CistICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPm1hbmFnZXIpOworIAorICAgR19P QkpFQ1RfQ0xBU1MgKHBob3Rvc19pbmRleGluZ19ub3RpZmljYXRpb25fcGFyZW50X2NsYXNzKS0+ ZGlzcG9zZSAob2JqZWN0KTsKKyB9CitAQCAtMjQwLDEzICsyNDAsMjUgQEAgcGhvdG9zX2luZGV4 aW5nX25vdGlmaWNhdGlvbl9pbml0IChQaG90b3NJbmRleGluZ05vdGlmaWNhdGlvbiAqc2VsZikK KyAgIGFwcCA9IGdfYXBwbGljYXRpb25fZ2V0X2RlZmF1bHQgKCk7CisgCisgICB7CisrICAgIGdf YXV0b3B0ciAoUGhvdG9zVHJhY2tlclF1ZXVlKSB0cmFja2VyX3F1ZXVlOworICAgICBnX2F1dG9w dHIgKEdFcnJvcikgZXJyb3IgPSBOVUxMOworKyAgICBjb25zdCBnY2hhciAqbWluZXJfZnNfYnVz bmFtZTsKKysKKysgICAgdHJhY2tlcl9xdWV1ZSA9IHBob3Rvc190cmFja2VyX3F1ZXVlX2R1cF9z aW5nbGV0b24gKE5VTEwsICZlcnJvcik7CisrCisrICAgIGlmICh0cmFja2VyX3F1ZXVlKSB7Cisr ICAgICAgbWluZXJfZnNfYnVzbmFtZSA9IHBob3Rvc190cmFja2VyX3F1ZXVlX2dldF9taW5lcl9m c19idXNuYW1lICh0cmFja2VyX3F1ZXVlKTsKKysgICAgICBzZWxmLT5taW5lcl9mc19wcm94eSA9 IHRyYWNrZXJfbWluZXJfcHJveHlfbmV3X2Zvcl9idXNfc3luYyAoR19CVVNfVFlQRV9TRVNTSU9O LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBHX0RCVVNfUFJPWFlfRkxBR1NfTk9ORSwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluZXJf ZnNfYnVzbmFtZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIi9vcmcvZnJlZWRlc2t0b3AvVHJhY2tlcjMvTWluZXIv RmlsZXMiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBOVUxMLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZXJyb3IpOworKyAgICB9Cisg CistICAgIHNlbGYtPm1hbmFnZXIgPSB0cmFja2VyX21pbmVyX21hbmFnZXJfbmV3X2Z1bGwgKEZB TFNFLCAmZXJyb3IpOworICAgICBpZiAoZXJyb3IgIT0gTlVMTCkKKyAgICAgICB7CistICAgICAg ICBnX3dhcm5pbmcgKCJVbmFibGUgdG8gY3JlYXRlIGEgVHJhY2tlck1pbmVyTWFuYWdlciwgaW5k ZXhpbmcgcHJvZ3Jlc3Mgbm90aWZpY2F0aW9uIHdvbid0IHdvcms6ICVzIiwKKy0gICAgICAgICAg ICAgICAgICAgZXJyb3ItPm1lc3NhZ2UpOworKyAgICAgICAgZ193YXJuaW5nICgiVW5hYmxlIHRv IGNyZWF0ZSBwcm94eSBmb3IgVHJhY2tlciBNaW5lciBGUywgaW5kZXhpbmcgcHJvZ3Jlc3Mgbm90 aWZpY2F0aW9uIHdvbid0IHdvcmsiKTsKKyAgICAgICAgIHJldHVybjsKKyAgICAgICB9CisgICB9 CitAQCAtMjkzLDEwICszMDUsMTEgQEAgcGhvdG9zX2luZGV4aW5nX25vdGlmaWNhdGlvbl9pbml0 IChQaG90b3NJbmRleGluZ05vdGlmaWNhdGlvbiAqc2VsZikKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfQ09OTkVDVF9TV0FQ UEVEKTsKKyAKKy0gIGdfc2lnbmFsX2Nvbm5lY3Rfc3dhcHBlZCAoc2VsZi0+bWFuYWdlciwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1pbmVyLXByb2dyZXNzIiwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgR19DQUxMQkFDSyAocGhvdG9zX2luZGV4aW5nX25vdGlmaWNhdGlv bl9jaGVja19ub3RpZmljYXRpb24pLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm KTsKKysgIGdfc2lnbmFsX2Nvbm5lY3Rfb2JqZWN0IChzZWxmLT5taW5lcl9mc19wcm94eSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAicHJvZ3Jlc3MiLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgIEdfQ0FMTEJBQ0sgKHBob3Rvc19pbmRleGluZ19ub3RpZmljYXRpb25fY2hlY2tf bm90aWZpY2F0aW9uKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIEdfQ09OTkVDVF9TV0FQUEVEKTsKKyB9CisgCisgCitkaWZm IC0tZ2l0IGEvc3JjL3Bob3Rvcy1pdGVtLW1hbmFnZXIuYyBiL3NyYy9waG90b3MtaXRlbS1tYW5h Z2VyLmMKK2luZGV4IGM0NGZiYmZjLi5lNDUxMWJiMSAxMDA2NDQKKy0tLSBhL3NyYy9waG90b3Mt aXRlbS1tYW5hZ2VyLmMKKysrKyBiL3NyYy9waG90b3MtaXRlbS1tYW5hZ2VyLmMKK0BAIC00MSwx MiArNDEsOSBAQAorICNpbmNsdWRlICJwaG90b3MtcXVlcnkuaCIKKyAjaW5jbHVkZSAicGhvdG9z LXNlYXJjaC1jb250ZXh0LmgiCisgI2luY2x1ZGUgInBob3Rvcy1zaW5nbGUtaXRlbS1qb2IuaCIK Ky0jaW5jbHVkZSAicGhvdG9zLXRyYWNrZXItY2hhbmdlLWV2ZW50LmgiCistI2luY2x1ZGUgInBo b3Rvcy10cmFja2VyLWNoYW5nZS1tb25pdG9yLmgiCisgI2luY2x1ZGUgInBob3Rvcy10cmFja2Vy LXF1ZXVlLmgiCisgI2luY2x1ZGUgInBob3Rvcy11dGlscy5oIgorIAorLQorIHN0cnVjdCBfUGhv dG9zSXRlbU1hbmFnZXIKKyB7CisgICBQaG90b3NCYXNlTWFuYWdlciBwYXJlbnRfaW5zdGFuY2U7 CitAQCAtNjAsNyArNTcsNyBAQCBzdHJ1Y3QgX1Bob3Rvc0l0ZW1NYW5hZ2VyCisgICBQaG90b3NC YXNlSXRlbSAqYWN0aXZlX2NvbGxlY3Rpb247CisgICBQaG90b3NCYXNlTWFuYWdlciAqKml0ZW1f bW5ncl9jaGxkcm47CisgICBQaG90b3NMb2FkU3RhdGUgbG9hZF9zdGF0ZTsKKy0gIFBob3Rvc1Ry YWNrZXJDaGFuZ2VNb25pdG9yICptb25pdG9yOworKyAgVHJhY2tlck5vdGlmaWVyICpub3RpZmll cjsKKyAgIFBob3Rvc1RyYWNrZXJRdWV1ZSAqcXVldWU7CisgICBQaG90b3NXaW5kb3dNb2RlIG1v ZGU7CisgICBnYm9vbGVhbiBmdWxsc2NyZWVuOworQEAgLTMxMSw3ICszMDgsNyBAQCBwaG90b3Nf aXRlbV9tYW5hZ2VyX2FkZF9jdXJzb3JfZm9yX21vZGUgKFBob3Rvc0l0ZW1NYW5hZ2VyICpzZWxm LAorICAgZ19yZXR1cm5faWZfZmFpbCAoYmFzZV9pdGVtX3R5cGUgPT0gR19UWVBFX05PTkUKKyAg ICAgICAgICAgICAgICAgICAgIHx8IChiYXNlX2l0ZW1fdHlwZSAhPSBQSE9UT1NfVFlQRV9CQVNF X0lURU0KKyAgICAgICAgICAgICAgICAgICAgICAgICAmJiBnX3R5cGVfaXNfYSAoYmFzZV9pdGVt X3R5cGUsIFBIT1RPU19UWVBFX0JBU0VfSVRFTSkpKTsKKy0gIGdfcmV0dXJuX2lmX2ZhaWwgKFRS QUNLRVJfU1BBUlFMX0lTX0NVUlNPUiAoY3Vyc29yKSk7CisrICBnX3JldHVybl9pZl9mYWlsIChU UkFDS0VSX0lTX1NQQVJRTF9DVVJTT1IgKGN1cnNvcikpOworICAgZ19yZXR1cm5faWZfZmFpbCAo bW9kZSAhPSBQSE9UT1NfV0lORE9XX01PREVfTk9ORSk7CisgICBnX3JldHVybl9pZl9mYWlsICht b2RlICE9IFBIT1RPU19XSU5ET1dfTU9ERV9FRElUKTsKKyAgIGdfcmV0dXJuX2lmX2ZhaWwgKG1v ZGUgIT0gUEhPVE9TX1dJTkRPV19NT0RFX1BSRVZJRVcpOworQEAgLTUyOSwyMSArNTI2LDIzIEBA IHBob3Rvc19pdGVtX21hbmFnZXJfaXRlbV9jcmVhdGVkIChQaG90b3NJdGVtTWFuYWdlciAqc2Vs ZiwgY29uc3QgZ2NoYXIgKnVybikKKyAKKyAKKyBzdGF0aWMgdm9pZAorLXBob3Rvc19pdGVtX21h bmFnZXJfY2hhbmdlc19wZW5kaW5nX2ZvcmVhY2ggKGdwb2ludGVyIGtleSwgZ3BvaW50ZXIgdmFs dWUsIGdwb2ludGVyIHVzZXJfZGF0YSkKKytwaG90b3NfaXRlbV9tYW5hZ2VyX2NoYW5nZXNfcGVu ZGluZ19mb3JlYWNoIChncG9pbnRlciBkYXRhLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGdwb2ludGVyIHVzZXJfZGF0YSkKKyB7CisgICBQaG90b3NJdGVt TWFuYWdlciAqc2VsZiA9IFBIT1RPU19JVEVNX01BTkFHRVIgKHVzZXJfZGF0YSk7CistICBQaG90 b3NUcmFja2VyQ2hhbmdlRXZlbnQgKmNoYW5nZV9ldmVudCA9IChQaG90b3NUcmFja2VyQ2hhbmdl RXZlbnQgKikgdmFsdWU7CistICBQaG90b3NUcmFja2VyQ2hhbmdlRXZlbnRUeXBlIGNoYW5nZV90 eXBlOworKyAgVHJhY2tlck5vdGlmaWVyRXZlbnQgKmV2ZW50ID0gKFRyYWNrZXJOb3RpZmllckV2 ZW50ICopIGRhdGE7CisrICBUcmFja2VyTm90aWZpZXJFdmVudFR5cGUgY2hhbmdlX3R5cGU7Cisg ICBjb25zdCBnY2hhciAqY2hhbmdlX3VybjsKKyAKKy0gIGNoYW5nZV90eXBlID0gcGhvdG9zX3Ry YWNrZXJfY2hhbmdlX2V2ZW50X2dldF90eXBlIChjaGFuZ2VfZXZlbnQpOworLSAgY2hhbmdlX3Vy biA9IHBob3Rvc190cmFja2VyX2NoYW5nZV9ldmVudF9nZXRfdXJuIChjaGFuZ2VfZXZlbnQpOwor KyAgY2hhbmdlX3R5cGUgPSB0cmFja2VyX25vdGlmaWVyX2V2ZW50X2dldF9ldmVudF90eXBlIChl dmVudCk7CisrICBjaGFuZ2VfdXJuID0gdHJhY2tlcl9ub3RpZmllcl9ldmVudF9nZXRfdXJuIChl dmVudCk7CisgCistICBpZiAoY2hhbmdlX3R5cGUgPT0gUEhPVE9TX1RSQUNLRVJfQ0hBTkdFX0VW RU5UX0NIQU5HRUQpCisrICBpZiAoY2hhbmdlX3R5cGUgPT0gVFJBQ0tFUl9OT1RJRklFUl9FVkVO VF9VUERBVEUpCisgICAgIHsKKyAgICAgICBHT2JqZWN0ICpvYmplY3Q7CisgCisgICAgICAgb2Jq ZWN0ID0gcGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfb2JqZWN0X2J5X2lkIChQSE9UT1NfQkFTRV9N QU5BR0VSIChzZWxmKSwgY2hhbmdlX3Vybik7CisrICAgICAgZ19tZXNzYWdlICgiVVBEQVRFIGV2 ZW50IGZvciAlcywgb2JqZWN0ICVwIiwgY2hhbmdlX3Vybiwgb2JqZWN0KTsKKyAgICAgICBpZiAo b2JqZWN0ICE9IE5VTEwpCisgICAgICAgICB7CisgICAgICAgICAgIHBob3Rvc19iYXNlX2l0ZW1f cmVmcmVzaCAoUEhPVE9TX0JBU0VfSVRFTSAob2JqZWN0KSk7CitAQCAtNTU3LDE1ICs1NTYsMTcg QEAgcGhvdG9zX2l0ZW1fbWFuYWdlcl9jaGFuZ2VzX3BlbmRpbmdfZm9yZWFjaCAoZ3BvaW50ZXIg a2V5LCBncG9pbnRlciB2YWx1ZSwgZ3BvaW4KKyAgICAgICAgICAgICB9CisgICAgICAgICB9Cisg ICAgIH0KKy0gIGVsc2UgaWYgKGNoYW5nZV90eXBlID09IFBIT1RPU19UUkFDS0VSX0NIQU5HRV9F VkVOVF9DUkVBVEVEKQorKyAgZWxzZSBpZiAoY2hhbmdlX3R5cGUgPT0gVFJBQ0tFUl9OT1RJRklF Ul9FVkVOVF9DUkVBVEUpCisgICAgIHsKKysgICAgICBnX21lc3NhZ2UgKCJDUkVBVEUgZXZlbnQg Zm9yICVzIiwgY2hhbmdlX3Vybik7CisgICAgICAgcGhvdG9zX2l0ZW1fbWFuYWdlcl9pdGVtX2Ny ZWF0ZWQgKHNlbGYsIGNoYW5nZV91cm4pOworICAgICB9CistICBlbHNlIGlmIChjaGFuZ2VfdHlw ZSA9PSBQSE9UT1NfVFJBQ0tFUl9DSEFOR0VfRVZFTlRfREVMRVRFRCkKKysgIGVsc2UgaWYgKGNo YW5nZV90eXBlID09IFRSQUNLRVJfTk9USUZJRVJfRVZFTlRfREVMRVRFKQorICAgICB7CisgICAg ICAgR09iamVjdCAqb2JqZWN0OworIAorICAgICAgIG9iamVjdCA9IHBob3Rvc19iYXNlX21hbmFn ZXJfZ2V0X29iamVjdF9ieV9pZCAoUEhPVE9TX0JBU0VfTUFOQUdFUiAoc2VsZiksIGNoYW5nZV91 cm4pOworKyAgICAgIGdfbWVzc2FnZSAoIkRFTEVURSBldmVudCBmb3IgJXMsIG9iamVjdCAlcCIs IGNoYW5nZV91cm4sIG9iamVjdCk7CisgICAgICAgaWYgKG9iamVjdCAhPSBOVUxMKQorICAgICAg ICAgeworICAgICAgICAgICBwaG90b3NfYmFzZV9pdGVtX2Rlc3Ryb3kgKFBIT1RPU19CQVNFX0lU RU0gKG9iamVjdCkpOworQEAgLTU3Nyw5ICs1NzgsMTUgQEAgcGhvdG9zX2l0ZW1fbWFuYWdlcl9j aGFuZ2VzX3BlbmRpbmdfZm9yZWFjaCAoZ3BvaW50ZXIga2V5LCBncG9pbnRlciB2YWx1ZSwgZ3Bv aW4KKyAKKyAKKyBzdGF0aWMgdm9pZAorLXBob3Rvc19pdGVtX21hbmFnZXJfY2hhbmdlc19wZW5k aW5nIChQaG90b3NJdGVtTWFuYWdlciAqc2VsZiwgR0hhc2hUYWJsZSAqY2hhbmdlcykKKy17Cist ICBnX2hhc2hfdGFibGVfZm9yZWFjaCAoY2hhbmdlcywgcGhvdG9zX2l0ZW1fbWFuYWdlcl9jaGFu Z2VzX3BlbmRpbmdfZm9yZWFjaCwgc2VsZik7CisrcGhvdG9zX2l0ZW1fbWFuYWdlcl9jaGFuZ2Vz X3BlbmRpbmcgKFBob3Rvc0l0ZW1NYW5hZ2VyICpzZWxmLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAqc2VydmljZSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgKmdyYXBoLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHUHRyQXJyYXkgICAgICAgICAqZXZl bnRzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciAgICAg ICAgICAgdXNlcl9kYXRhKQorK3sKKysgIGlmIChnX3N0cl9lcXVhbCAoZ3JhcGgsIFRSQUNLRVJf UElDVFVSRVNfR1JBUEgpKSB7CisrICAgIGdfcHRyX2FycmF5X2ZvcmVhY2ggKGV2ZW50cywgcGhv dG9zX2l0ZW1fbWFuYWdlcl9jaGFuZ2VzX3BlbmRpbmdfZm9yZWFjaCwgc2VsZik7CisrICB9Cisg fQorIAorIAorQEAgLTcxNyw3ICs3MjQsNyBAQCBwaG90b3NfaXRlbV9tYW5hZ2VyX3dhaXRfZm9y X2NoYW5nZXNfdGltZW91dCAoZ3BvaW50ZXIgdXNlcl9kYXRhKQorICAgICAgIGdfYXV0b3B0ciAo UGhvdG9zUXVlcnkpIHF1ZXJ5ID0gTlVMTDsKKyAgICAgICBnX2F1dG9mcmVlIGdjaGFyICpzcGFy cWwgPSBOVUxMOworIAorLSAgICAgIHNwYXJxbCA9IGdfc3RyZHVwX3ByaW50ZiAoIlNFTEVDVCA/ dXJuIG5pZTp1cmwgKD91cm4pIFdIRVJFIHsgP3VybiBuaWU6dXJsICclcycgfSIsIHVyaSk7Cisr ICAgICAgc3BhcnFsID0gZ19zdHJkdXBfcHJpbnRmICgiU0VMRUNUID91cm4gbmllOmlzU3RvcmVk QXMgKD91cm4pIFdIRVJFIHsgP3VybiBuaWU6aXNTdG9yZWRBcyAnJXMnIH0iLCB1cmkpOworICAg ICAgIHF1ZXJ5ID0gcGhvdG9zX3F1ZXJ5X25ldyAoTlVMTCwgc3BhcnFsKTsKKyAgICAgICBwaG90 b3NfdHJhY2tlcl9xdWV1ZV9zZWxlY3QgKHNlbGYtPnF1ZXVlLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcXVlcnksCitAQCAtMTAzOCw3ICsxMDQ1LDcgQEAgcGhvdG9zX2l0 ZW1fbWFuYWdlcl9kaXNwb3NlIChHT2JqZWN0ICpvYmplY3QpCisgICBnX2NsZWFyX29iamVjdCAo JnNlbGYtPmFjdGl2ZV9vYmplY3QpOworICAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5sb2FkZXJf Y2FuY2VsbGFibGUpOworICAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5hY3RpdmVfY29sbGVjdGlv bik7CistICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPm1vbml0b3IpOworKyAgZ19jbGVhcl9vYmpl Y3QgKCZzZWxmLT5ub3RpZmllcik7CisgICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPnF1ZXVlKTsK KyAKKyAgIEdfT0JKRUNUX0NMQVNTIChwaG90b3NfaXRlbV9tYW5hZ2VyX3BhcmVudF9jbGFzcykt PmRpc3Bvc2UgKG9iamVjdCk7CitAQCAtMTA5MywyMCArMTEwMCwyNCBAQCBwaG90b3NfaXRlbV9t YW5hZ2VyX2luaXQgKFBob3Rvc0l0ZW1NYW5hZ2VyICpzZWxmKQorIAorICAgc2VsZi0+bW9kZSA9 IFBIT1RPU19XSU5ET1dfTU9ERV9OT05FOworIAorLSAgc2VsZi0+bW9uaXRvciA9IHBob3Rvc190 cmFja2VyX2NoYW5nZV9tb25pdG9yX2R1cF9zaW5nbGV0b24gKE5VTEwsIE5VTEwpOworLSAgaWYg KEdfTElLRUxZIChzZWxmLT5tb25pdG9yICE9IE5VTEwpKQorLSAgICBnX3NpZ25hbF9jb25uZWN0 X29iamVjdCAoc2VsZi0+bW9uaXRvciwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICJj aGFuZ2VzLXBlbmRpbmciLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19DQUxMQkFD SyAocGhvdG9zX2l0ZW1fbWFuYWdlcl9jaGFuZ2VzX3BlbmRpbmcpLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfQ09O TkVDVF9TV0FQUEVEKTsKKy0KKyAgIHsKKyAgICAgZ19hdXRvcHRyIChHRXJyb3IpIGVycm9yID0g TlVMTDsKKyAKKyAgICAgc2VsZi0+cXVldWUgPSBwaG90b3NfdHJhY2tlcl9xdWV1ZV9kdXBfc2lu Z2xldG9uIChOVUxMLCAmZXJyb3IpOworICAgICBpZiAoR19VTkxJS0VMWSAoZXJyb3IgIT0gTlVM TCkpCistICAgICAgZ193YXJuaW5nICgiVW5hYmxlIHRvIGNyZWF0ZSBQaG90b3NUcmFja2VyUXVl dWU6ICVzIiwgZXJyb3ItPm1lc3NhZ2UpOworKyAgICAgIHsKKysgICAgICAgIGdfd2FybmluZyAo IlVuYWJsZSB0byBjcmVhdGUgUGhvdG9zVHJhY2tlclF1ZXVlOiAlcyIsIGVycm9yLT5tZXNzYWdl KTsKKysgICAgICAgIHNlbGYtPm5vdGlmaWVyID0gTlVMTDsKKysgICAgICB9CisrICAgIGVsc2UK KysgICAgICB7CisrICAgICAgICBzZWxmLT5ub3RpZmllciA9IHBob3Rvc190cmFja2VyX3F1ZXVl X2dldF9ub3RpZmllciAoc2VsZi0+cXVldWUpOworKyAgICAgICAgZ19zaWduYWxfY29ubmVjdF9v YmplY3QgKHNlbGYtPm5vdGlmaWVyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJldmVudHMiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfQ0FMTEJBQ0sg KHBob3Rvc19pdGVtX21hbmFnZXJfY2hhbmdlc19wZW5kaW5nKSwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEdfQ09OTkVDVF9TV0FQUEVEKTsKKysgICAgICB9CisgICB9CisgCisgICBzZWxmLT5mdWxsc2Ny ZWVuID0gRkFMU0U7CitAQCAtMTI0MSw3ICsxMjUyLDcgQEAgcGhvdG9zX2l0ZW1fbWFuYWdlcl9h ZGRfaXRlbSAoUGhvdG9zSXRlbU1hbmFnZXIgKnNlbGYsCisgICBnX3JldHVybl9pZl9mYWlsIChi YXNlX2l0ZW1fdHlwZSA9PSBHX1RZUEVfTk9ORQorICAgICAgICAgICAgICAgICAgICAgfHwgKGJh c2VfaXRlbV90eXBlICE9IFBIT1RPU19UWVBFX0JBU0VfSVRFTQorICAgICAgICAgICAgICAgICAg ICAgICAgICYmIGdfdHlwZV9pc19hIChiYXNlX2l0ZW1fdHlwZSwgUEhPVE9TX1RZUEVfQkFTRV9J VEVNKSkpOworLSAgZ19yZXR1cm5faWZfZmFpbCAoVFJBQ0tFUl9TUEFSUUxfSVNfQ1VSU09SIChj dXJzb3IpKTsKKysgIGdfcmV0dXJuX2lmX2ZhaWwgKFRSQUNLRVJfSVNfU1BBUlFMX0NVUlNPUiAo Y3Vyc29yKSk7CisgCisgICBpZCA9IHRyYWNrZXJfc3BhcnFsX2N1cnNvcl9nZXRfc3RyaW5nIChj dXJzb3IsIFBIT1RPU19RVUVSWV9DT0xVTU5TX1VSTiwgTlVMTCk7CisgICBnX3JldHVybl9pZl9m YWlsIChpZCAhPSBOVUxMICYmIGlkWzBdICE9ICdcMCcpOworQEAgLTEzNzAsNyArMTM4MSw3IEBA IHBob3Rvc19pdGVtX21hbmFnZXJfY3JlYXRlX2l0ZW0gKFBob3Rvc0l0ZW1NYW5hZ2VyICpzZWxm LAorICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKGJhc2VfaXRlbV90eXBlID09IEdfVFlQRV9OT05F CisgICAgICAgICAgICAgICAgICAgICAgICAgfHwgKGJhc2VfaXRlbV90eXBlICE9IFBIT1RPU19U WVBFX0JBU0VfSVRFTQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBnX3R5cGVfaXNf YSAoYmFzZV9pdGVtX3R5cGUsIFBIT1RPU19UWVBFX0JBU0VfSVRFTSkpLCBOVUxMKTsKKy0gIGdf cmV0dXJuX3ZhbF9pZl9mYWlsIChUUkFDS0VSX1NQQVJRTF9JU19DVVJTT1IgKGN1cnNvciksIE5V TEwpOworKyAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKFRSQUNLRVJfSVNfU1BBUlFMX0NVUlNPUiAo Y3Vyc29yKSwgTlVMTCk7CisgCisgICBpZCA9IHRyYWNrZXJfc3BhcnFsX2N1cnNvcl9nZXRfc3Ry aW5nIChjdXJzb3IsIFBIT1RPU19RVUVSWV9DT0xVTU5TX1VSTiwgTlVMTCk7CisgICBpdGVtID0g UEhPVE9TX0JBU0VfSVRFTSAocGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfb2JqZWN0X2J5X2lkIChQ SE9UT1NfQkFTRV9NQU5BR0VSIChzZWxmKSwgaWQpKTsKK2RpZmYgLS1naXQgYS9zcmMvcGhvdG9z LXF1YXJrcy5jIGIvc3JjL3Bob3Rvcy1xdWFya3MuYworaW5kZXggMDg3MGVmNjIuLjVlZTI1NzQ1 IDEwMDY0NAorLS0tIGEvc3JjL3Bob3Rvcy1xdWFya3MuYworKysrIGIvc3JjL3Bob3Rvcy1xdWFy a3MuYworQEAgLTI1LDY4ICsyNSw2OCBAQAorIEdRdWFyaworIHBob3Rvc19xdWFya3NfZmxhc2hf b2ZmX3F1YXJrICh2b2lkKQorIHsKKy0gIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmlu ZyAoImh0dHA6Ly93d3cudHJhY2tlci1wcm9qZWN0Lm9yZy90ZW1wL25tbSNmbGFzaC1vZmYiKTsK KysgIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyAoImh0dHA6Ly90cmFja2VyLmFw aS5nbm9tZS5vcmcvb250b2xvZ3kvdjMvbm1tI2ZsYXNoLW9mZiIpOworIH0KKyAKKyAKKyBHUXVh cmsKKyBwaG90b3NfcXVhcmtzX2ZsYXNoX29uX3F1YXJrICh2b2lkKQorIHsKKy0gIHJldHVybiBn X3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyAoImh0dHA6Ly93d3cudHJhY2tlci1wcm9qZWN0Lm9y Zy90ZW1wL25tbSNmbGFzaC1vbiIpOworKyAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3Ry aW5nICgiaHR0cDovL3RyYWNrZXIuYXBpLmdub21lLm9yZy9vbnRvbG9neS92My9ubW0jZmxhc2gt b24iKTsKKyB9CisgCisgCisgR1F1YXJrCisgcGhvdG9zX3F1YXJrc19vcmllbnRhdGlvbl9ib3R0 b21fcXVhcmsgKHZvaWQpCisgeworLSAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5n ICgiaHR0cDovL3d3dy5zZW1hbnRpY2Rlc2t0b3Aub3JnL29udG9sb2dpZXMvMjAwNy8wMy8yMi9u Zm8jb3JpZW50YXRpb24tYm90dG9tIik7CisrICByZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19z dHJpbmcgKCJodHRwOi8vdHJhY2tlci5hcGkuZ25vbWUub3JnL29udG9sb2d5L3YzL25mbyNvcmll bnRhdGlvbi1ib3R0b20iKTsKKyB9CisgCisgCisgR1F1YXJrCisgcGhvdG9zX3F1YXJrc19vcmll bnRhdGlvbl9ib3R0b21fbWlycm9yX3F1YXJrICh2b2lkKQorIHsKKy0gIHJldHVybiBnX3F1YXJr X2Zyb21fc3RhdGljX3N0cmluZyAoImh0dHA6Ly93d3cuc2VtYW50aWNkZXNrdG9wLm9yZy9vbnRv bG9naWVzLzIwMDcvMDMvMjIvbmZvI29yaWVudGF0aW9uLWJvdHRvbS1taXJyb3IiKTsKKysgIHJl dHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyAoImh0dHA6Ly90cmFja2VyLmFwaS5nbm9t ZS5vcmcvb250b2xvZ3kvdjMvbmZvI29yaWVudGF0aW9uLWJvdHRvbS1taXJyb3IiKTsKKyB9Cisg CisgCisgR1F1YXJrCisgcGhvdG9zX3F1YXJrc19vcmllbnRhdGlvbl9sZWZ0X3F1YXJrICh2b2lk KQorIHsKKy0gIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyAoImh0dHA6Ly93d3cu c2VtYW50aWNkZXNrdG9wLm9yZy9vbnRvbG9naWVzLzIwMDcvMDMvMjIvbmZvI29yaWVudGF0aW9u LWxlZnQiKTsKKysgIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyAoImh0dHA6Ly90 cmFja2VyLmFwaS5nbm9tZS5vcmcvb250b2xvZ3kvdjMvbmZvI29yaWVudGF0aW9uLWxlZnQiKTsK KyB9CisgCisgCisgR1F1YXJrCisgcGhvdG9zX3F1YXJrc19vcmllbnRhdGlvbl9sZWZ0X21pcnJv cl9xdWFyayAodm9pZCkKKyB7CistICByZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcg KCJodHRwOi8vd3d3LnNlbWFudGljZGVza3RvcC5vcmcvb250b2xvZ2llcy8yMDA3LzAzLzIyL25m byNvcmllbnRhdGlvbi1sZWZ0LW1pcnJvciIpOworKyAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0 aWNfc3RyaW5nICgiaHR0cDovL3RyYWNrZXIuYXBpLmdub21lLm9yZy9vbnRvbG9neS92My9uZm8j b3JpZW50YXRpb24tbGVmdC1taXJyb3IiKTsKKyB9CisgCisgCisgR1F1YXJrCisgcGhvdG9zX3F1 YXJrc19vcmllbnRhdGlvbl9yaWdodF9xdWFyayAodm9pZCkKKyB7CistICByZXR1cm4gZ19xdWFy a19mcm9tX3N0YXRpY19zdHJpbmcgKCJodHRwOi8vd3d3LnNlbWFudGljZGVza3RvcC5vcmcvb250 b2xvZ2llcy8yMDA3LzAzLzIyL25mbyNvcmllbnRhdGlvbi1yaWdodCIpOworKyAgcmV0dXJuIGdf cXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nICgiaHR0cDovL3RyYWNrZXIuYXBpLmdub21lLm9yZy9v bnRvbG9neS92My9uZm8jb3JpZW50YXRpb24tcmlnaHQiKTsKKyB9CisgCisgCisgR1F1YXJrCisg cGhvdG9zX3F1YXJrc19vcmllbnRhdGlvbl9yaWdodF9taXJyb3JfcXVhcmsgKHZvaWQpCisgewor LSAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nICgiaHR0cDovL3d3dy5zZW1hbnRp Y2Rlc2t0b3Aub3JnL29udG9sb2dpZXMvMjAwNy8wMy8yMi9uZm8jb3JpZW50YXRpb24tcmlnaHQt bWlycm9yIik7CisrICByZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcgKCJodHRwOi8v dHJhY2tlci5hcGkuZ25vbWUub3JnL29udG9sb2d5L3YzL25mbyNvcmllbnRhdGlvbi1yaWdodC1t aXJyb3IiKTsKKyB9CisgCisgCisgR1F1YXJrCisgcGhvdG9zX3F1YXJrc19vcmllbnRhdGlvbl90 b3BfcXVhcmsgKHZvaWQpCisgeworLSAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5n ICgiaHR0cDovL3d3dy5zZW1hbnRpY2Rlc2t0b3Aub3JnL29udG9sb2dpZXMvMjAwNy8wMy8yMi9u Zm8jb3JpZW50YXRpb24tdG9wIik7CisrICByZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJp bmcgKCJodHRwOi8vdHJhY2tlci5hcGkuZ25vbWUub3JnL29udG9sb2d5L3YzL25mbyNvcmllbnRh dGlvbi10b3AiKTsKKyB9CisgCisgCisgR1F1YXJrCisgcGhvdG9zX3F1YXJrc19vcmllbnRhdGlv bl90b3BfbWlycm9yX3F1YXJrICh2b2lkKQorIHsKKy0gIHJldHVybiBnX3F1YXJrX2Zyb21fc3Rh dGljX3N0cmluZyAoImh0dHA6Ly93d3cuc2VtYW50aWNkZXNrdG9wLm9yZy9vbnRvbG9naWVzLzIw MDcvMDMvMjIvbmZvI29yaWVudGF0aW9uLXRvcC1taXJyb3IiKTsKKysgIHJldHVybiBnX3F1YXJr X2Zyb21fc3RhdGljX3N0cmluZyAoImh0dHA6Ly90cmFja2VyLmFwaS5nbm9tZS5vcmcvb250b2xv Z3kvdjMvbmZvI29yaWVudGF0aW9uLXRvcC1taXJyb3IiKTsKKyB9CitkaWZmIC0tZ2l0IGEvc3Jj L3Bob3Rvcy1xdWVyeS1idWlsZGVyLmMgYi9zcmMvcGhvdG9zLXF1ZXJ5LWJ1aWxkZXIuYworaW5k ZXggZTA3MzViZGUuLjQ2ZDY1ZThmIDEwMDY0NAorLS0tIGEvc3JjL3Bob3Rvcy1xdWVyeS1idWls ZGVyLmMKKysrKyBiL3NyYy9waG90b3MtcXVlcnktYnVpbGRlci5jCitAQCAtMjUsNiArMjUsNyBA QAorIAorICNpbmNsdWRlIDxzdHJpbmcuaD4KKyAKKysjaW5jbHVkZSAicGhvdG9zLWFwcGxpY2F0 aW9uLmgiCisgI2luY2x1ZGUgInBob3Rvcy1iYXNlLW1hbmFnZXIuaCIKKyAjaW5jbHVkZSAicGhv dG9zLXF1ZXJ5LmgiCisgI2luY2x1ZGUgInBob3Rvcy1xdWVyeS1idWlsZGVyLmgiCitAQCAtMzIs NiArMzMsNyBAQAorICNpbmNsdWRlICJwaG90b3Mtc291cmNlLW1hbmFnZXIuaCIKKyAjaW5jbHVk ZSAicGhvdG9zLXNlYXJjaC1tYXRjaC1tYW5hZ2VyLmgiCisgI2luY2x1ZGUgInBob3Rvcy1zZWFy Y2gtdHlwZS1tYW5hZ2VyLmgiCisrI2luY2x1ZGUgInBob3Rvcy10cmFja2VyLXF1ZXVlLmgiCisg CisgI2RlZmluZSBQSE9UT1NfUVVFUllfQ09MTEVDVElPTlNfSURFTlRJRklFUiAicGhvdG9zOmNv bGxlY3Rpb246IgorICNkZWZpbmUgUEhPVE9TX1FVRVJZX0xPQ0FMX0NPTExFQ1RJT05TX0lERU5U SUZJRVIgInBob3Rvczpjb2xsZWN0aW9uOmxvY2FsOiIKK0BAIC00OCwxMiArNTAsMTQgQEAgY29u c3QgZ2NoYXIgKnBob3Rvc19kZWZhdWx0X2ZpbHRlciA9IFwKKyAKKyBzdGF0aWMgZ2NoYXIgKgor IHBob3Rvc19xdWVyeV9idWlsZGVyX3F1ZXJ5IChQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0 YXRlLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiBnbG9iYWwsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICp2YWx1ZXMsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGdpbnQgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFBob3Rvc09mZnNldENvbnRyb2xsZXIgKm9mZnNldF9jbnRybHIpCisgeworICAgUGhvdG9z U3BhcnFsVGVtcGxhdGUgKnRlbXBsYXRlOworLSAgY29uc3QgZ2NoYXIgKnByb2plY3Rpb24gPSBO VUxMOworKyAgY29uc3QgZ2NoYXIgKm1pbmVyX2ZzX2J1c25hbWUgPSBOVUxMOworKyAgY29uc3Qg Z2NoYXIgKm1haW5fcHJvamVjdGlvbiA9IE5VTEw7CisrICBjb25zdCBnY2hhciAqc2Vjb25kX3By b2plY3Rpb24gPSBOVUxMOworICAgZ19hdXRvZnJlZSBnY2hhciAqaXRlbV9wYXR0ZXJuID0gTlVM TDsKKyAgIGdfYXV0b2ZyZWUgZ2NoYXIgKnNlYXJjaF9maWx0ZXIgPSBOVUxMOworICAgZ19hdXRv ZnJlZSBnY2hhciAqc291cmNlX2ZpbHRlciA9IE5VTEw7CitAQCAtNjMsMjkgKzY3LDM1IEBAIHBo b3Rvc19xdWVyeV9idWlsZGVyX3F1ZXJ5IChQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0YXRl LAorIAorICAgdGVtcGxhdGUgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF9zcGFycWxfdGVtcGxh dGUgKHN0YXRlLT5zcmNoX3R5cF9tbmdyLCBmbGFncyk7CisgCistICBwcm9qZWN0aW9uID0gIj91 cm4gIgorLSAgICAgICAgICAgICAgICJuaWU6dXJsICg/dXJuKSAiCistICAgICAgICAgICAgICAg Im5mbzpmaWxlTmFtZSAoP3VybikgIgorLSAgICAgICAgICAgICAgICJuaWU6bWltZVR5cGUgKD91 cm4pICIKKy0gICAgICAgICAgICAgICAibmllOnRpdGxlICg/dXJuKSAiCistICAgICAgICAgICAg ICAgInRyYWNrZXI6Y29hbGVzY2UgKG5jbzpmdWxsbmFtZSAoP2NyZWF0b3IpLCBuY286ZnVsbG5h bWUgKD9wdWJsaXNoZXIpLCAnJykgIgorLSAgICAgICAgICAgICAgICJ0cmFja2VyOmNvYWxlc2Nl IChuZm86ZmlsZUxhc3RNb2RpZmllZCAoP3VybiksIG5pZTpjb250ZW50TGFzdE1vZGlmaWVkICg/ dXJuKSkgQVMgP210aW1lICIKKy0gICAgICAgICAgICAgICAibmFvOmlkZW50aWZpZXIgKD91cm4p ICIKKy0gICAgICAgICAgICAgICAicmRmOnR5cGUgKD91cm4pICIKKy0gICAgICAgICAgICAgICAi bmllOmRhdGFTb3VyY2UoP3VybikgIgorLSAgICAgICAgICAgICAgICIoIEVYSVNUUyB7ID91cm4g bmFvOmhhc1RhZyBuYW86cHJlZGVmaW5lZC10YWctZmF2b3JpdGUgfSApICIKKy0gICAgICAgICAg ICAgICAiKCBFWElTVFMgeyA/dXJuIG5jbzpjb250cmlidXRvciA/Y29udHJpYnV0b3IgRklMVEVS ICggP2NvbnRyaWJ1dG9yICE9ID9jcmVhdG9yICkgfSApICIKKy0gICAgICAgICAgICAgICAidHJh Y2tlcjpjb2FsZXNjZShuZm86ZmlsZUNyZWF0ZWQgKD91cm4pLCBuaWU6Y29udGVudENyZWF0ZWQg KD91cm4pKSAiCistICAgICAgICAgICAgICAgIm5mbzp3aWR0aCAoP3VybikgIgorLSAgICAgICAg ICAgICAgICJuZm86aGVpZ2h0ICg/dXJuKSAiCistICAgICAgICAgICAgICAgIm5mbzplcXVpcG1l bnQgKD91cm4pICIKKy0gICAgICAgICAgICAgICAibmZvOm9yaWVudGF0aW9uICg/dXJuKSAiCist ICAgICAgICAgICAgICAgIm5tbTpleHBvc3VyZVRpbWUgKD91cm4pICIKKy0gICAgICAgICAgICAg ICAibm1tOmZudW1iZXIgKD91cm4pICIKKy0gICAgICAgICAgICAgICAibm1tOmZvY2FsTGVuZ3Ro ICg/dXJuKSAiCistICAgICAgICAgICAgICAgIm5tbTppc29TcGVlZCAoP3VybikgIgorLSAgICAg ICAgICAgICAgICJubW06Zmxhc2ggKD91cm4pICIKKy0gICAgICAgICAgICAgICAic2xvOmxvY2F0 aW9uICg/dXJuKSAiOworKyAgbWluZXJfZnNfYnVzbmFtZSA9IHBob3Rvc190cmFja2VyX3F1ZXVl X2dldF9taW5lcl9mc19idXNuYW1lIChzdGF0ZS0+cXVldWUpOworKworKyAgbWFpbl9wcm9qZWN0 aW9uID0gIj91cm4gIgorKyAgICAgICAgICAgICAgICAgICAgIj9maWxlICIKKysgICAgICAgICAg ICAgICAgICAgICJuZm86ZmlsZU5hbWUgKD9maWxlKSBBUyA/ZmlsZW5hbWUgIgorKyAgICAgICAg ICAgICAgICAgICAgIm5pZTptaW1lVHlwZSAoP3VybikgQVMgP21pbWV0eXBlICIKKysgICAgICAg ICAgICAgICAgICAgICJuaWU6dGl0bGUgKD91cm4pIEFTID90aXRsZSAiCisrICAgICAgICAgICAg ICAgICAgICAidHJhY2tlcjpjb2FsZXNjZSAobmNvOmZ1bGxuYW1lICg/Y3JlYXRvciksIG5jbzpm dWxsbmFtZSAoP3B1Ymxpc2hlciksICcnKSBBUyA/YXV0aG9yX25hbWUgIgorKyAgICAgICAgICAg ICAgICAgICAgInRyYWNrZXI6Y29hbGVzY2UgKG5mbzpmaWxlTGFzdE1vZGlmaWVkICg/ZmlsZSks IG5pZTpjb250ZW50TGFzdE1vZGlmaWVkICg/dXJuKSkgQVMgP210aW1lICIKKysgICAgICAgICAg ICAgICAgICAgICJuYW86aWRlbnRpZmllciAoP3VybikgQVMgP2lkZW50aWZpZXIgIgorKyAgICAg ICAgICAgICAgICAgICAgInJkZjp0eXBlICg/dXJuKSBBUyA/dHlwZSAiCisrICAgICAgICAgICAg ICAgICAgICAibmllOmRhdGFTb3VyY2UoP3VybikgQVMgP2RhdGFzb3VyY2UgIgorKyAgICAgICAg ICAgICAgICAgICAgIiggRVhJU1RTIHsgP3VybiBuY286Y29udHJpYnV0b3IgP2NvbnRyaWJ1dG9y IEZJTFRFUiAoID9jb250cmlidXRvciAhPSA/Y3JlYXRvciApIH0gKSBBUyA/aGFzX2NvbnRyaWJ1 dG9yICIKKysgICAgICAgICAgICAgICAgICAgICJ0cmFja2VyOmNvYWxlc2NlKG5mbzpmaWxlQ3Jl YXRlZCAoP2ZpbGUpLCBuaWU6Y29udGVudENyZWF0ZWQgKD91cm4pKSBBUyA/Y3RpbWUgIgorKyAg ICAgICAgICAgICAgICAgICAgIm5mbzp3aWR0aCAoP3VybikgQVMgP3dpZHRoICIKKysgICAgICAg ICAgICAgICAgICAgICJuZm86aGVpZ2h0ICg/dXJuKSBBUyA/aGVpZ2h0ICIKKysgICAgICAgICAg ICAgICAgICAgICJuZm86ZXF1aXBtZW50ICg/dXJuKSBBUyA/ZXF1aXBtZW50ICIKKysgICAgICAg ICAgICAgICAgICAgICJuZm86b3JpZW50YXRpb24gKD91cm4pIEFTID9vcmllbnRhdGlvbiAiCisr ICAgICAgICAgICAgICAgICAgICAibm1tOmV4cG9zdXJlVGltZSAoP3VybikgQVMgP2V4cG9zdXJl X3RpbWUgIgorKyAgICAgICAgICAgICAgICAgICAgIm5tbTpmbnVtYmVyICg/dXJuKSBBUyA/Zm51 bWJlciAiCisrICAgICAgICAgICAgICAgICAgICAibm1tOmZvY2FsTGVuZ3RoICg/dXJuKSBBUyA/ Zm9jYWxfbGVuZ3RoICIKKysgICAgICAgICAgICAgICAgICAgICJubW06aXNvU3BlZWQgKD91cm4p IEFTID9pc29zcGVlZCAiCisrICAgICAgICAgICAgICAgICAgICAibm1tOmZsYXNoICg/dXJuKSBB UyA/Zmxhc2ggIgorKyAgICAgICAgICAgICAgICAgICAgInNsbzpsb2NhdGlvbiAoP3VybikgQVMg P2xvY2F0aW9uICI7CisrCisrICBzZWNvbmRfcHJvamVjdGlvbiA9ICI/dXJuID9maWxlID9maWxl bmFtZSA/bWltZXR5cGUgP3RpdGxlID9hdXRob3JfbmFtZSA/bXRpbWUgP2lkZW50aWZpZXIgP3R5 cGUgP2RhdGFzb3VyY2UgIgorKyAgICAgICAgICAgICAgICAgICAgICAiKCBFWElTVFMgeyA/dXJu IG5hbzpoYXNUYWcgbmFvOnByZWRlZmluZWQtdGFnLWZhdm9yaXRlIH0gKSBBUyA/aXNfZmF2b3Jp dGUgIgorKyAgICAgICAgICAgICAgICAgICAgICAiP2hhc19jb250cmlidXRvciA/Y3RpbWUgP3dp ZHRoID9oZWlnaHQgP2VxdWlwbWVudCA/b3JpZW50YXRpb24gP2V4cG9zdXJlX3RpbWUgP2ZudW1i ZXIgIgorKyAgICAgICAgICAgICAgICAgICAgICAiP2ZvY2FsX2xlbmd0aCA/aXNvc3BlZWQgP2Zs YXNoID9sb2NhdGlvbiAiOworIAorICAgaXRlbV9wYXR0ZXJuID0gcGhvdG9zX2Jhc2VfbWFuYWdl cl9nZXRfd2hlcmUgKHN0YXRlLT5pdGVtX21uZ3IsIGZsYWdzKTsKKyAKK0BAIC05Nyw3ICsxMDcs NyBAQCBwaG90b3NfcXVlcnlfYnVpbGRlcl9xdWVyeSAoUGhvdG9zU2VhcmNoQ29udGV4dFN0YXRl ICpzdGF0ZSwKKyAKKyAgIG9yZGVyID0gIk9SREVSIEJZIERFU0MgKD9tdGltZSkiOworIAorLSAg aWYgKGdsb2JhbCAmJiAoZmxhZ3MgJiBQSE9UT1NfUVVFUllfRkxBR1NfVU5MSU1JVEVEKSA9PSAw KQorKyAgaWYgKHZhbHVlcyA9PSBOVUxMICYmIChmbGFncyAmIFBIT1RPU19RVUVSWV9GTEFHU19V TkxJTUlURUQpID09IDApCisgICAgIHsKKyAgICAgICBnaW50IG9mZnNldCA9IDA7CisgICAgICAg Z2ludCBzdGVwID0gNjA7CitAQCAtMTEyLDEyICsxMjIsMTYgQEAgcGhvdG9zX3F1ZXJ5X2J1aWxk ZXJfcXVlcnkgKFBob3Rvc1NlYXJjaENvbnRleHRTdGF0ZSAqc3RhdGUsCisgICAgIH0KKyAKKyAg IHNwYXJxbCA9IHBob3Rvc19zcGFycWxfdGVtcGxhdGVfZ2V0X3NwYXJxbCAodGVtcGxhdGUsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcm9qZWN0aW9u IiwgcHJvamVjdGlvbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIm1pbmVyX2ZzX2J1c25hbWUiLCBtaW5lcl9mc19idXNuYW1lLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibWFpbl9wcm9qZWN0aW9uIiwgbWFp bl9wcm9qZWN0aW9uLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAic2Vjb25kX3Byb2plY3Rpb24iLCBzZWNvbmRfcHJvamVjdGlvbiwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZpbmFsX3Byb2plY3Rpb24iLCBz ZWNvbmRfcHJvamVjdGlvbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgInZhbHVlcyIsIHZhbHVlcyA/IHZhbHVlcyA6ICIiLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29sbGVjdGlvbnNfZGVmYXVsdF9maWx0 ZXIiLCBjb2xsZWN0aW9uc19kZWZhdWx0X2ZpbHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIml0ZW1fcGF0dGVybiIsIGl0ZW1fcGF0dGVybiwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBob3Rvc19kZWZh dWx0X2ZpbHRlciIsIHBob3Rvc19kZWZhdWx0X2ZpbHRlciwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgInNvdXJjZV9maWx0ZXIiLCBzb3VyY2VfZmlsdGVy ID8gc291cmNlX2ZpbHRlciA6ICIiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAic2VhcmNoX2ZpbHRlciIsIHNlYXJjaF9maWx0ZXIgPyBzZWFyY2hfZmls dGVyIDogIiIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJzb3VyY2VfZmlsdGVyIiwgc291cmNlX2ZpbHRlciA/IHNvdXJjZV9maWx0ZXIgOiAiKHRydWUp IiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNlYXJj aF9maWx0ZXIiLCBzZWFyY2hfZmlsdGVyID8gc2VhcmNoX2ZpbHRlciA6ICIodHJ1ZSkiLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3JkZXIiLCBvcmRl ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9mZnNl dF9saW1pdCIsIG9mZnNldF9saW1pdCA/IG9mZnNldF9saW1pdCA6ICIiLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKK0BAIC0xMzMsNiArMTQ3 LDcgQEAgcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfY3JlYXRlX2NvbGxlY3Rpb25fcXVlcnkgKFBob3Rv c1NlYXJjaENvbnRleHRTdGF0ZSAqc3RhdGUsCisgeworICAgZ19hdXRvcHRyIChHRGF0ZVRpbWUp IG5vdyA9IE5VTEw7CisgICBQaG90b3NRdWVyeSAqcXVlcnk7CisrICBnX2F1dG9wdHIgKFRyYWNr ZXJSZXNvdXJjZSkgY29sbGVjdGlvbiA9IE5VTEw7CisgICBnX2F1dG9mcmVlIGdjaGFyICppZGVu dGlmaWVyID0gTlVMTDsKKyAgIGdfYXV0b2ZyZWUgZ2NoYXIgKnNwYXJxbCA9IE5VTEw7CisgICBn X2F1dG9mcmVlIGdjaGFyICp0aW1lID0gTlVMTDsKK0BAIC0xNDQsMTMgKzE1OSwxNCBAQCBwaG90 b3NfcXVlcnlfYnVpbGRlcl9jcmVhdGVfY29sbGVjdGlvbl9xdWVyeSAoUGhvdG9zU2VhcmNoQ29u dGV4dFN0YXRlICpzdGF0ZSwKKyAgIG5vdyA9IGdfZGF0ZV90aW1lX25ld19ub3dfdXRjICgpOwor ICAgdGltZSA9IGdfZGF0ZV90aW1lX2Zvcm1hdF9pc284NjAxIChub3cpOworIAorLSAgc3BhcnFs ID0gZ19zdHJkdXBfcHJpbnRmICgiSU5TRVJUIHsgXzpyZXMgYSBuZm86RGF0YUNvbnRhaW5lciA7 IGEgbmllOkRhdGFPYmplY3QgOyAiCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuaWU6 Y29udGVudExhc3RNb2RpZmllZCAnJXMnIDsgIgorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAibmllOnRpdGxlICclcycgOyAiCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW86 aWRlbnRpZmllciAnJXMnIH0iLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZGVudGlmaWVyKTsKKysgIGNvbGxlY3Rpb24gPSB0cmFja2VyX3Jlc291cmNlX25l dyAoIl86cmVzIik7CisrICB0cmFja2VyX3Jlc291cmNlX2FkZF91cmkgKGNvbGxlY3Rpb24sICJy ZGY6dHlwZSIsICJuZm86RGF0YUNvbnRhaW5lciIpOworKyAgdHJhY2tlcl9yZXNvdXJjZV9hZGRf dXJpIChjb2xsZWN0aW9uLCAicmRmOnR5cGUiLCAibmllOkRhdGFPYmplY3QiKTsKKysgIHRyYWNr ZXJfcmVzb3VyY2Vfc2V0X3N0cmluZyAoY29sbGVjdGlvbiwgIm5pZTpjb250ZW50TGFzdE1vZGlm aWVkIiwgdGltZSk7CisrICB0cmFja2VyX3Jlc291cmNlX3NldF9zdHJpbmcgKGNvbGxlY3Rpb24s ICJuaWU6dGl0bGUiLCBuYW1lKTsKKysgIHRyYWNrZXJfcmVzb3VyY2Vfc2V0X3N0cmluZyAoY29s bGVjdGlvbiwgIm5hbzppZGVudGlmaWVyIiwgaWRlbnRpZmllcik7CisrCisrICBzcGFycWwgPSB0 cmFja2VyX3Jlc291cmNlX3ByaW50X3NwYXJxbF91cGRhdGUgKGNvbGxlY3Rpb24sIE5VTEwsICJ0 cmFja2VyOlBpY3R1cmVzIik7CisgCisgICBxdWVyeSA9IHBob3Rvc19xdWVyeV9uZXcgKHN0YXRl LCBzcGFycWwpOworIAorQEAgLTE4MCw3ICsxOTYsOSBAQCBQaG90b3NRdWVyeSAqCisgcGhvdG9z X3F1ZXJ5X2J1aWxkZXJfY291bnRfcXVlcnkgKFBob3Rvc1NlYXJjaENvbnRleHRTdGF0ZSAqc3Rh dGUsIGdpbnQgZmxhZ3MpCisgeworICAgUGhvdG9zU3BhcnFsVGVtcGxhdGUgKnRlbXBsYXRlOwor LSAgY29uc3QgZ2NoYXIgKnByb2plY3Rpb24gPSBOVUxMOworKyAgY29uc3QgZ2NoYXIgKm1pbmVy X2ZzX2J1c25hbWUgPSBOVUxMOworKyAgY29uc3QgZ2NoYXIgKmNvdW50X3Byb2plY3Rpb24gPSBO VUxMOworKyAgY29uc3QgZ2NoYXIgKnZhbHVlX3Byb2plY3Rpb24gPSBOVUxMOworICAgZ19hdXRv ZnJlZSBnY2hhciAqaXRlbV9wYXR0ZXJuID0gTlVMTDsKKyAgIGdfYXV0b2ZyZWUgZ2NoYXIgKnNl YXJjaF9maWx0ZXIgPSBOVUxMOworICAgZ19hdXRvZnJlZSBnY2hhciAqc291cmNlX2ZpbHRlciA9 IE5VTEw7CitAQCAtMTg5LDcgKzIwNywxMCBAQCBwaG90b3NfcXVlcnlfYnVpbGRlcl9jb3VudF9x dWVyeSAoUGhvdG9zU2VhcmNoQ29udGV4dFN0YXRlICpzdGF0ZSwgZ2ludCBmbGFncykKKyAKKyAg IHRlbXBsYXRlID0gcGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfc3BhcnFsX3RlbXBsYXRlIChzdGF0 ZS0+c3JjaF90eXBfbW5nciwgZmxhZ3MpOworIAorLSAgcHJvamVjdGlvbiA9ICJDT1VOVCg/dXJu KSAiOworKyAgbWluZXJfZnNfYnVzbmFtZSA9IHBob3Rvc190cmFja2VyX3F1ZXVlX2dldF9taW5l cl9mc19idXNuYW1lIChzdGF0ZS0+cXVldWUpOworKworKyAgdmFsdWVfcHJvamVjdGlvbiA9ICI/ dXJuICI7CisrICBjb3VudF9wcm9qZWN0aW9uID0gIkNPVU5UKD91cm4pICI7CisgCisgICBpdGVt X3BhdHRlcm4gPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF93aGVyZSAoc3RhdGUtPml0ZW1fbW5n ciwgZmxhZ3MpOworIAorQEAgLTIwMCwxMiArMjIxLDE2IEBAIHBob3Rvc19xdWVyeV9idWlsZGVy X2NvdW50X3F1ZXJ5IChQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0YXRlLCBnaW50IGZsYWdz KQorICAgICB9CisgCisgICBzcGFycWwgPSBwaG90b3Nfc3BhcnFsX3RlbXBsYXRlX2dldF9zcGFy cWwgKHRlbXBsYXRlLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAicHJvamVjdGlvbiIsIHByb2plY3Rpb24sCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJtaW5lcl9mc19idXNuYW1lIiwgbWluZXJfZnNfYnVzbmFt ZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1haW5f cHJvamVjdGlvbiIsIHZhbHVlX3Byb2plY3Rpb24sCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJzZWNvbmRfcHJvamVjdGlvbiIsIHZhbHVlX3Byb2plY3Rp b24sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmaW5h bF9wcm9qZWN0aW9uIiwgY291bnRfcHJvamVjdGlvbiwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlcyIsICIiLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29sbGVjdGlvbnNfZGVmYXVsdF9maWx0ZXIi LCBjb2xsZWN0aW9uc19kZWZhdWx0X2ZpbHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIml0ZW1fcGF0dGVybiIsIGl0ZW1fcGF0dGVybiwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBob3Rvc19kZWZhdWx0 X2ZpbHRlciIsIHBob3Rvc19kZWZhdWx0X2ZpbHRlciwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgInNvdXJjZV9maWx0ZXIiLCBzb3VyY2VfZmlsdGVyID8g c291cmNlX2ZpbHRlciA6ICIiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAic2VhcmNoX2ZpbHRlciIsIHNlYXJjaF9maWx0ZXIgPyBzZWFyY2hfZmlsdGVy IDogIiIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJz b3VyY2VfZmlsdGVyIiwgc291cmNlX2ZpbHRlciA/IHNvdXJjZV9maWx0ZXIgOiAiKHRydWUpIiwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNlYXJjaF9m aWx0ZXIiLCBzZWFyY2hfZmlsdGVyID8gc2VhcmNoX2ZpbHRlciA6ICIodHJ1ZSkiLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3JkZXIiLCAiIiwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9mZnNldF9saW1p dCIsICIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBO VUxMKTsKK0BAIC0yNjQsNyArMjg5LDcgQEAgcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfZmV0Y2hfY29s bGVjdGlvbnNfbG9jYWwgKFBob3Rvc1NlYXJjaENvbnRleHRTdGF0ZSAqc3RhdGUpCisgICBnX2F1 dG9mcmVlIGdjaGFyICpzcGFycWwgPSBOVUxMOworIAorICAgc3BhcnFsID0gcGhvdG9zX3F1ZXJ5 X2J1aWxkZXJfcXVlcnkgKHN0YXRlLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFRSVUUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVM TCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQSE9UT1NfUVVFUllf RkxBR1NfQ09MTEVDVElPTlMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IFBIT1RPU19RVUVSWV9GTEFHU19MT0NBTAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgUEhPVE9TX1FVRVJZX0ZMQUdTX1VOTElNSVRFRCwKK0BAIC0yODQsNyAr MzA5LDcgQEAgcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfZ2xvYmFsX3F1ZXJ5IChQaG90b3NTZWFyY2hD b250ZXh0U3RhdGUgKnN0YXRlLAorICAgUGhvdG9zUXVlcnkgKnF1ZXJ5OworICAgZ19hdXRvZnJl ZSBnY2hhciAqc3BhcnFsID0gTlVMTDsKKyAKKy0gIHNwYXJxbCA9IHBob3Rvc19xdWVyeV9idWls ZGVyX3F1ZXJ5IChzdGF0ZSwgVFJVRSwgZmxhZ3MsIG9mZnNldF9jbnRybHIpOworKyAgc3BhcnFs ID0gcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfcXVlcnkgKHN0YXRlLCBOVUxMLCBmbGFncywgb2Zmc2V0 X2NudHJscik7CisgICBxdWVyeSA9IHBob3Rvc19xdWVyeV9uZXcgKHN0YXRlLCBzcGFycWwpOwor IAorICAgcmV0dXJuIHF1ZXJ5OworQEAgLTMxMywxMCArMzM4LDE5IEBAIHBob3Rvc19xdWVyeV9i dWlsZGVyX3NldF9jb2xsZWN0aW9uX3F1ZXJ5IChQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0 YXRlLAorICAgUGhvdG9zUXVlcnkgKnF1ZXJ5OworICAgZ19hdXRvZnJlZSBnY2hhciAqc3BhcnFs ID0gTlVMTDsKKyAKKy0gIHNwYXJxbCA9IGdfc3RyZHVwX3ByaW50ZiAoIiVzIHsgPCVzPiBuaWU6 aXNQYXJ0T2YgPCVzPiB9IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0dGluZyA/ ICJJTlNFUlQiIDogIkRFTEVURSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1f dXJuLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uX3Vybik7CisrICBp ZiAoc2V0dGluZykKKysgICAgc3BhcnFsID0gZ19zdHJkdXBfcHJpbnRmICgiSU5TRVJUIERBVEEg eyAiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgR1JBUEggdHJhY2tlcjpQaWN0 dXJlcyB7IgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgPCVzPiBhIG5pZTpE YXRhT2JqZWN0ICwgbm1tOlBob3RvIDsgIgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICIgICAgICBuaWU6aXNQYXJ0T2YgPCVzPiAiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIiAgfSIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAifSIsIGl0ZW1fdXJuLCBj b2xsZWN0aW9uX3Vybik7CisrICBlbHNlCisrICAgIHNwYXJxbCA9IGdfc3RyZHVwX3ByaW50ZiAo IkRFTEVURSBEQVRBIHsgIgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgIEdSQVBI IHRyYWNrZXI6UGljdHVyZXMgeyIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAg IDwlcz4gbmllOmlzUGFydE9mIDwlcz4gIgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICIgIH0iCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIn0iLCBpdGVtX3VybiwgY29s bGVjdGlvbl91cm4pOworICAgcXVlcnkgPSBwaG90b3NfcXVlcnlfbmV3IChzdGF0ZSwgc3BhcnFs KTsKKyAKKyAgIHJldHVybiBxdWVyeTsKK0BAIC0zMjYsMTcgKzM2MCwxNCBAQCBwaG90b3NfcXVl cnlfYnVpbGRlcl9zZXRfY29sbGVjdGlvbl9xdWVyeSAoUGhvdG9zU2VhcmNoQ29udGV4dFN0YXRl ICpzdGF0ZSwKKyBQaG90b3NRdWVyeSAqCisgcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfc2luZ2xlX3F1 ZXJ5IChQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0YXRlLCBnaW50IGZsYWdzLCBjb25zdCBn Y2hhciAqcmVzb3VyY2UpCisgeworLSAgZ19hdXRvcHRyIChHUmVnZXgpIHJlZ2V4ID0gTlVMTDsK KyAgIFBob3Rvc1F1ZXJ5ICpxdWVyeTsKKy0gIGdfYXV0b2ZyZWUgZ2NoYXIgKnJlcGxhY2VtZW50 ID0gTlVMTDsKKyAgIGdfYXV0b2ZyZWUgZ2NoYXIgKnNwYXJxbCA9IE5VTEw7CistICBnX2F1dG9m cmVlIGdjaGFyICp0bXAgPSBOVUxMOworKyAgZ19hdXRvZnJlZSBnY2hhciAqdmFsdWVzID0gTlVM TDsKKysKKysgIHZhbHVlcyA9IGdfc3RyZHVwX3ByaW50ZiAoIlZBTFVFUyA/dXJuIHsgPCVzPiB9 IiwgcmVzb3VyY2UpOworIAorLSAgdG1wID0gcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfcXVlcnkgKHN0 YXRlLCBGQUxTRSwgZmxhZ3MsIE5VTEwpOworKyAgc3BhcnFsID0gcGhvdG9zX3F1ZXJ5X2J1aWxk ZXJfcXVlcnkgKHN0YXRlLCB2YWx1ZXMsIGZsYWdzLCBOVUxMKTsKKyAKKy0gIHJlZ2V4ID0gZ19y ZWdleF9uZXcgKCJcXD91cm4iLCAwLCAwLCBOVUxMKTsKKy0gIHJlcGxhY2VtZW50ID0gZ19zdHJj b25jYXQgKCI8IiwgcmVzb3VyY2UsICI+IiwgTlVMTCk7CistICBzcGFycWwgPSBnX3JlZ2V4X3Jl cGxhY2UgKHJlZ2V4LCB0bXAsIC0xLCAwLCByZXBsYWNlbWVudCwgMCwgTlVMTCk7CisgICBxdWVy eSA9IHBob3Rvc19xdWVyeV9uZXcgKHN0YXRlLCBzcGFycWwpOworIAorICAgcmV0dXJuIHF1ZXJ5 OworQEAgLTM1NCw3ICszODUsMTQgQEAgcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfdXBkYXRlX210aW1l X3F1ZXJ5IChQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0YXRlLCBjb25zdAorICAgbm93ID0g Z19kYXRlX3RpbWVfbmV3X25vd191dGMgKCk7CisgICB0aW1lID0gZ19kYXRlX3RpbWVfZm9ybWF0 X2lzbzg2MDEgKG5vdyk7CisgCistICBzcGFycWwgPSBnX3N0cmR1cF9wcmludGYgKCJJTlNFUlQg T1IgUkVQTEFDRSB7IDwlcz4gbmllOmNvbnRlbnRMYXN0TW9kaWZpZWQgJyVzJyB9IiwgcmVzb3Vy Y2UsIHRpbWUpOworKyAgc3BhcnFsID0gZ19zdHJkdXBfcHJpbnRmICgiV0lUSCB0cmFja2VyOlBp Y3R1cmVzICIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRFTEVURSB7IDwlcz4gbmll OmNvbnRlbnRMYXN0TW9kaWZpZWQgP3RpbWUgfSAiCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJJTlNFUlQgeyAiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgIDwlcz4gYSBu bW06UGhvdG8gOyAiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgbmllOmNvbnRl bnRMYXN0TW9kaWZpZWQgJyVzJyAiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ9Igor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiV0hFUkUgeyA8JXM+IG5pZTpjb250ZW50TGFz dE1vZGlmaWVkID90aW1lIH0iLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJj ZSwgcmVzb3VyY2UsIHRpbWUsIHJlc291cmNlKTsKKyAgIHF1ZXJ5ID0gcGhvdG9zX3F1ZXJ5X25l dyAoc3RhdGUsIHNwYXJxbCk7CisgCisgICByZXR1cm4gcXVlcnk7CitkaWZmIC0tZ2l0IGEvc3Jj L3Bob3Rvcy1zZWFyY2gtY29udGV4dC5jIGIvc3JjL3Bob3Rvcy1zZWFyY2gtY29udGV4dC5jCitp bmRleCA0YjUwMzc5OC4uNmY4Njk0YmMgMTAwNjQ0CistLS0gYS9zcmMvcGhvdG9zLXNlYXJjaC1j b250ZXh0LmMKKysrKyBiL3NyYy9waG90b3Mtc2VhcmNoLWNvbnRleHQuYworQEAgLTMxLDYgKzMx LDcgQEAKKyAjaW5jbHVkZSAicGhvdG9zLXNlYXJjaC1tYXRjaC1tYW5hZ2VyLmgiCisgI2luY2x1 ZGUgInBob3Rvcy1zZWFyY2gtdHlwZS1tYW5hZ2VyLmgiCisgI2luY2x1ZGUgInBob3Rvcy1zb3Vy Y2UtbWFuYWdlci5oIgorKyNpbmNsdWRlICJwaG90b3MtdHJhY2tlci1xdWV1ZS5oIgorIAorIAor IEdfREVGSU5FX0lOVEVSRkFDRSAoUGhvdG9zU2VhcmNoQ29udGV4dCwgcGhvdG9zX3NlYXJjaF9j b250ZXh0LCBHX1RZUEVfT0JKRUNUKTsKK0BAIC01NCw2ICs1NSw3IEBAIHBob3Rvc19zZWFyY2hf Y29udGV4dF9zdGF0ZV9uZXcgKFBob3Rvc1NlYXJjaENvbnRleHQgKnNlbGYpCisgICBzdGF0ZS0+ c3JjaF9jbnRybHIgPSBwaG90b3Nfc2VhcmNoX2NvbnRyb2xsZXJfbmV3ICgpOworICAgc3RhdGUt PnNyY2hfbXRjaF9tbmdyID0gcGhvdG9zX3NlYXJjaF9tYXRjaF9tYW5hZ2VyX25ldyAoc3RhdGUt PnNyY2hfY250cmxyKTsKKyAgIHN0YXRlLT5zcmNoX3R5cF9tbmdyID0gcGhvdG9zX3NlYXJjaF90 eXBlX21hbmFnZXJfbmV3ICgpOworKyAgc3RhdGUtPnF1ZXVlID0gcGhvdG9zX3RyYWNrZXJfcXVl dWVfZHVwX3NpbmdsZXRvbiAoTlVMTCwgTlVMTCk7CisgCisgICByZXR1cm4gc3RhdGU7CisgfQor QEAgLTY4LDYgKzcwLDcgQEAgcGhvdG9zX3NlYXJjaF9jb250ZXh0X3N0YXRlX2ZyZWUgKFBob3Rv c1NlYXJjaENvbnRleHRTdGF0ZSAqc3RhdGUpCisgICBnX29iamVjdF91bnJlZiAoc3RhdGUtPnNy Y2hfbXRjaF9tbmdyKTsKKyAgIGdfb2JqZWN0X3VucmVmIChzdGF0ZS0+c3JjaF90eXBfbW5ncik7 CisgICBnX29iamVjdF91bnJlZiAoc3RhdGUtPnNyY2hfY250cmxyKTsKKysgIGdfY2xlYXJfb2Jq ZWN0ICgmc3RhdGUtPnF1ZXVlKTsKKyAgIGdfc2xpY2VfZnJlZSAoUGhvdG9zU2VhcmNoQ29udGV4 dFN0YXRlLCBzdGF0ZSk7CisgfQorIAorZGlmZiAtLWdpdCBhL3NyYy9waG90b3Mtc2VhcmNoLWNv bnRleHQuaCBiL3NyYy9waG90b3Mtc2VhcmNoLWNvbnRleHQuaAoraW5kZXggMmFmNmNmOTYuLjVh MThkMzg2IDEwMDY0NAorLS0tIGEvc3JjL3Bob3Rvcy1zZWFyY2gtY29udGV4dC5oCisrKysgYi9z cmMvcGhvdG9zLXNlYXJjaC1jb250ZXh0LmgKK0BAIC00MSw2ICs0MSw3IEBAIHN0cnVjdCBfUGhv dG9zU2VhcmNoQ29udGV4dFN0YXRlCisgICBncG9pbnRlciBzcmNoX3R5cF9tbmdyOworICAgZ3Bv aW50ZXIgb2Zmc2V0X2NudHJscjsKKyAgIGdwb2ludGVyIHNyY2hfY250cmxyOworKyAgZ3BvaW50 ZXIgcXVldWU7CisgfTsKKyAKKyBQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUgICAgICAqcGhvdG9z X3NlYXJjaF9jb250ZXh0X3N0YXRlX25ldyAgICAgIChQaG90b3NTZWFyY2hDb250ZXh0ICpzZWxm KTsKK2RpZmYgLS1naXQgYS9zcmMvcGhvdG9zLXNlYXJjaC1tYXRjaC1tYW5hZ2VyLmMgYi9zcmMv cGhvdG9zLXNlYXJjaC1tYXRjaC1tYW5hZ2VyLmMKK2luZGV4IGU2ZGM0MjlhLi4yYmExZmQwZiAx MDA2NDQKKy0tLSBhL3NyYy9waG90b3Mtc2VhcmNoLW1hdGNoLW1hbmFnZXIuYworKysrIGIvc3Jj L3Bob3Rvcy1zZWFyY2gtbWF0Y2gtbWFuYWdlci5jCitAQCAtMTQ4LDcgKzE0OCw3IEBAIHBob3Rv c19zZWFyY2hfbWF0Y2hfbWFuYWdlcl9pbml0IChQaG90b3NTZWFyY2hNYXRjaE1hbmFnZXIgKnNl bGYpCisgICAgICAgICAgICAgICAgICAgIiAgdHJhY2tlcjpjYXNlLWZvbGQgKHRyYWNrZXI6Y29h bGVzY2UgKG5jbzpmdWxsbmFtZSAoP2NyZWF0b3IpLCBuY286ZnVsbG5hbWUoP3B1Ymxpc2hlcikp KSwiCisgICAgICAgICAgICAgICAgICAgIiAgXCIlc1wiKSI7CisgICB0aXRsZV9maWx0ZXIgPSAi Zm46Y29udGFpbnMgKCIKKy0gICAgICAgICAgICAgICAgICIgIHRyYWNrZXI6Y2FzZS1mb2xkICh0 cmFja2VyOmNvYWxlc2NlIChuaWU6dGl0bGUgKD91cm4pLCBuZm86ZmlsZU5hbWUoP3VybikpKSwi CisrICAgICAgICAgICAgICAgICAiICB0cmFja2VyOmNhc2UtZm9sZCAodHJhY2tlcjpjb2FsZXNj ZSAobmllOnRpdGxlICg/dXJuKSwgbmZvOmZpbGVOYW1lKD9maWxlKSkpLCIKKyAgICAgICAgICAg ICAgICAgICIgIFwiJXNcIikiOworIAorICAgc2VhcmNoX21hdGNoID0gcGhvdG9zX3NlYXJjaF9t YXRjaF9uZXcgKFBIT1RPU19TRUFSQ0hfTUFUQ0hfU1RPQ0tfQUxMLAorZGlmZiAtLWdpdCBhL3Ny Yy9waG90b3Mtc291cmNlLmMgYi9zcmMvcGhvdG9zLXNvdXJjZS5jCitpbmRleCBkYjZmMmRlOS4u NTIxOTY1MmMgMTAwNjQ0CistLS0gYS9zcmMvcGhvdG9zLXNvdXJjZS5jCisrKysgYi9zcmMvcGhv dG9zLXNvdXJjZS5jCitAQCAtNjIsNyArNjIsNyBAQCBHX0RFRklORV9UWVBFX1dJVEhfQ09ERSAo UGhvdG9zU291cmNlLCBwaG90b3Nfc291cmNlLCBHX1RZUEVfT0JKRUNULAorIERaTF9ERUZJTkVf Q09VTlRFUiAoaW5zdGFuY2VzLCAiUGhvdG9zU291cmNlIiwgIkluc3RhbmNlcyIsICJOdW1iZXIg b2YgUGhvdG9zU291cmNlIGluc3RhbmNlcyIpCisgCisgCistc3RhdGljIGNvbnN0IGdjaGFyICpU UkFDS0VSX1NDSEVNQSA9ICJvcmcuZnJlZWRlc2t0b3AuVHJhY2tlci5NaW5lci5GaWxlcyI7Cisr c3RhdGljIGNvbnN0IGdjaGFyICpUUkFDS0VSX1NDSEVNQSA9ICJvcmcuZnJlZWRlc2t0b3AuVHJh Y2tlcjMuTWluZXIuRmlsZXMiOworIHN0YXRpYyBjb25zdCBnY2hhciAqVFJBQ0tFUl9LRVlfUkVD VVJTSVZFX0RJUkVDVE9SSUVTID0gImluZGV4LXJlY3Vyc2l2ZS1kaXJlY3RvcmllcyI7CisgCisg CitAQCAtOTQsNyArOTQsNyBAQCBwaG90b3Nfc291cmNlX2J1aWxkX2ZpbHRlcl9sb2NhbCAodm9p ZCkKKyAgICAgICAgIGNvbnRpbnVlOworIAorICAgICAgIHRyYWNrZXJfdXJpID0gcGhvdG9zX3V0 aWxzX2NvbnZlcnRfcGF0aF90b191cmkgKHRyYWNrZXJfZGlyc1tpXSk7CistICAgICAgZ19zdHJp bmdfYXBwZW5kX3ByaW50ZiAodHJhY2tlcl9maWx0ZXIsICIgfHwgZm46Y29udGFpbnMgKG5pZTp1 cmwgKD91cm4pLCAnJXMnKSIsIHRyYWNrZXJfdXJpKTsKKysgICAgICBnX3N0cmluZ19hcHBlbmRf cHJpbnRmICh0cmFja2VyX2ZpbHRlciwgIiB8fCBmbjpjb250YWlucyAobmllOmlzU3RvcmVkQXMg KD91cm4pLCAnJXMnKSIsIHRyYWNrZXJfdXJpKTsKKyAgICAgfQorIAorICAgcGF0aCA9IGdfZ2V0 X3VzZXJfc3BlY2lhbF9kaXIgKEdfVVNFUl9ESVJFQ1RPUllfREVTS1RPUCk7CitAQCAtMTA5LDEx ICsxMDksMTEgQEAgcGhvdG9zX3NvdXJjZV9idWlsZF9maWx0ZXJfbG9jYWwgKHZvaWQpCisgICBl eHBvcnRfcGF0aCA9IGdfYnVpbGRfZmlsZW5hbWUgKHBhdGgsIFBIT1RPU19FWFBPUlRfU1VCUEFU SCwgTlVMTCk7CisgICBleHBvcnRfdXJpID0gcGhvdG9zX3V0aWxzX2NvbnZlcnRfcGF0aF90b191 cmkgKGV4cG9ydF9wYXRoKTsKKyAKKy0gIGZpbHRlciA9IGdfc3RyZHVwX3ByaW50ZiAoIigoKGZu OmNvbnRhaW5zIChuaWU6dXJsICg/dXJuKSwgJyVzJykiCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICIgICB8fCBmbjpjb250YWlucyAobmllOnVybCAoP3VybiksICclcycpIgorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiICAgfHwgZm46Y29udGFpbnMgKG5pZTp1cmwgKD91cm4p LCAnJXMnKSIKKysgIGZpbHRlciA9IGdfc3RyZHVwX3ByaW50ZiAoIigoKGZuOmNvbnRhaW5zIChu aWU6aXNTdG9yZWRBcyAoP3VybiksICclcycpIgorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiICAgfHwgZm46Y29udGFpbnMgKG5pZTppc1N0b3JlZEFzICg/dXJuKSwgJyVzJykiCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICIgICB8fCBmbjpjb250YWlucyAobmllOmlzU3RvcmVk QXMgKD91cm4pLCAnJXMnKSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICVzKSIK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgJiYgIWZuOmNvbnRhaW5zIChuaWU6dXJs ICg/dXJuKSwgJyVzJykpIgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAmJiAhZm46 Y29udGFpbnMgKG5pZTppc1N0b3JlZEFzICg/dXJuKSwgJyVzJykpIgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiIHx8IGZuOnN0YXJ0cy13aXRoIChuYW86aWRlbnRpZmllciAoP3Vybiks ICclcycpIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIHx8ICg/dXJuID0gbmZvOmlt YWdlLWNhdGVnb3J5LXNjcmVlbnNob3QpKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRlc2t0b3BfdXJpLAorQEAgLTE0Niw3ICsxNDYsNyBAQCBwaG90b3Nfc291cmNlX2J1aWxkX2Zp bHRlcl9yZXNvdXJjZSAoUGhvdG9zU291cmNlICpzZWxmKQorIAorICAgICAgIHJvb3QgPSBnX21v dW50X2dldF9yb290IChzZWxmLT5tb3VudCk7CisgICAgICAgdXJpID0gZ19maWxlX2dldF91cmkg KHJvb3QpOworLSAgICAgIGZpbHRlciA9IGdfc3RyZHVwX3ByaW50ZiAoIihmbjpzdGFydHMtd2l0 aCAobmllOnVybCAoP3VybiksICclcycpKSIsIHVyaSk7CisrICAgICAgZmlsdGVyID0gZ19zdHJk dXBfcHJpbnRmICgiKGZuOnN0YXJ0cy13aXRoIChuaWU6aXNTdG9yZWRBcyAoP3VybiksICclcycp KSIsIHVyaSk7CisgICAgIH0KKyAgIGVsc2UKKyAgICAgeworZGlmZiAtLWdpdCBhL3NyYy9waG90 b3MtdHJhY2tlci1jaGFuZ2UtZXZlbnQuYyBiL3NyYy9waG90b3MtdHJhY2tlci1jaGFuZ2UtZXZl bnQuYworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCBkNWM3NGViYy4uMDAwMDAwMDAK Ky0tLSBhL3NyYy9waG90b3MtdHJhY2tlci1jaGFuZ2UtZXZlbnQuYworKysrIC9kZXYvbnVsbAor QEAgLTEsMTM2ICswLDAgQEAKKy0vKgorLSAqIFBob3RvcyAtIGFjY2Vzcywgb3JnYW5pemUgYW5k IHNoYXJlIHlvdXIgcGhvdG9zIG9uIEdOT01FCistICogQ29weXJpZ2h0IMKpIDIwMTIg4oCTIDIw MTkgUmVkIEhhdCwgSW5jLgorLSAqCistICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKy0gKiBpdCB1bmRlciB0aGUg dGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQor LSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhl IExpY2Vuc2UsIG9yCistICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKy0g KgorLSAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAorLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCistICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorLSAqIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCistICoKKy0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVj ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorLSAqIGFsb25n IHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNl bnNlcy8+LgorLSAqLworLQorLS8qIEJhc2VkIG9uIGNvZGUgZnJvbToKKy0gKiAgICsgRG9jdW1l bnRzCistICovCistCistCistI2luY2x1ZGUgImNvbmZpZy5oIgorLQorLSNpbmNsdWRlICJwaG90 b3MtdHJhY2tlci1jaGFuZ2UtZXZlbnQuaCIKKy0KKy0KKy1zdHJ1Y3QgX1Bob3Rvc1RyYWNrZXJD aGFuZ2VFdmVudAorLXsKKy0gIFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudFR5cGUgdHlwZTsKKy0g IGdjaGFyICpwcmVkaWNhdGU7CistICBnY2hhciAqdXJuOworLSAgZ2ludDMyIHByZWRpY2F0ZV9p ZDsKKy0gIGdpbnQzMiB1cm5faWQ7CistfTsKKy0KKy0KKy1zdGF0aWMgY29uc3QgZ2NoYXIgKlJE Rl9UWVBFID0gImh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyN0eXBl IjsKKy0KKy0KKy12b2lkCistcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X2ZyZWUgKFBob3Rv c1RyYWNrZXJDaGFuZ2VFdmVudCAqc2VsZikKKy17CistICBnX2ZyZWUgKHNlbGYtPnByZWRpY2F0 ZSk7CistICBnX2ZyZWUgKHNlbGYtPnVybik7CistICBnX3NsaWNlX2ZyZWUgKFBob3Rvc1RyYWNr ZXJDaGFuZ2VFdmVudCwgc2VsZik7CistfQorLQorLQorLVBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVu dCAqCistcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X25ldyAoZ2ludDMyIHVybl9pZCwgZ2lu dDMyIHByZWRpY2F0ZV9pZCwgZ2Jvb2xlYW4gaXNfZGVsZXRlKQorLXsKKy0gIFBob3Rvc1RyYWNr ZXJDaGFuZ2VFdmVudCAqc2VsZjsKKy0KKy0gIHNlbGYgPSBnX3NsaWNlX25ldzAgKFBob3Rvc1Ry YWNrZXJDaGFuZ2VFdmVudCk7CistICBzZWxmLT51cm5faWQgPSB1cm5faWQ7CistICBzZWxmLT5w cmVkaWNhdGVfaWQgPSBwcmVkaWNhdGVfaWQ7CistCistICBpZiAoaXNfZGVsZXRlKQorLSAgICBz ZWxmLT50eXBlID0gUEhPVE9TX1RSQUNLRVJfQ0hBTkdFX0VWRU5UX0RFTEVURUQ7CistICBlbHNl CistICAgIHNlbGYtPnR5cGUgPSBQSE9UT1NfVFJBQ0tFUl9DSEFOR0VfRVZFTlRfQ1JFQVRFRDsK Ky0KKy0gIHJldHVybiBzZWxmOworLX0KKy0KKy0KKy1QaG90b3NUcmFja2VyQ2hhbmdlRXZlbnQg KgorLXBob3Rvc190cmFja2VyX2NoYW5nZV9ldmVudF9jb3B5IChQaG90b3NUcmFja2VyQ2hhbmdl RXZlbnQgKmV2ZW50KQorLXsKKy0gIFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqc2VsZjsKKy0K Ky0gIHNlbGYgPSBnX3NsaWNlX25ldzAgKFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCk7CistICBz ZWxmLT50eXBlID0gZXZlbnQtPnR5cGU7CistICBzZWxmLT5wcmVkaWNhdGUgPSBnX3N0cmR1cCAo ZXZlbnQtPnByZWRpY2F0ZSk7CistICBzZWxmLT51cm4gPSBnX3N0cmR1cCAoZXZlbnQtPnVybik7 CistICBzZWxmLT5wcmVkaWNhdGVfaWQgPSBldmVudC0+cHJlZGljYXRlX2lkOworLSAgc2VsZi0+ dXJuX2lkID0gZXZlbnQtPnVybl9pZDsKKy0KKy0gIHJldHVybiBzZWxmOworLX0KKy0KKy0KKy1Q aG90b3NUcmFja2VyQ2hhbmdlRXZlbnRUeXBlCistcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50 X2dldF90eXBlIChQaG90b3NUcmFja2VyQ2hhbmdlRXZlbnQgKnNlbGYpCisteworLSAgcmV0dXJu IHNlbGYtPnR5cGU7CistfQorLQorLQorLWdpbnQzMgorLXBob3Rvc190cmFja2VyX2NoYW5nZV9l dmVudF9nZXRfcHJlZGljYXRlX2lkIChQaG90b3NUcmFja2VyQ2hhbmdlRXZlbnQgKnNlbGYpCist eworLSAgcmV0dXJuIHNlbGYtPnByZWRpY2F0ZV9pZDsKKy19CistCistCistY29uc3QgZ2NoYXIg KgorLXBob3Rvc190cmFja2VyX2NoYW5nZV9ldmVudF9nZXRfdXJuIChQaG90b3NUcmFja2VyQ2hh bmdlRXZlbnQgKnNlbGYpCisteworLSAgcmV0dXJuIHNlbGYtPnVybjsKKy19CistCistCistZ2lu dDMyCistcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X2dldF91cm5faWQgKFBob3Rvc1RyYWNr ZXJDaGFuZ2VFdmVudCAqc2VsZikKKy17CistICByZXR1cm4gc2VsZi0+dXJuX2lkOworLX0KKy0K Ky0KKy12b2lkCistcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X21lcmdlIChQaG90b3NUcmFj a2VyQ2hhbmdlRXZlbnQgKnNlbGYsIFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqZXZlbnQpCist eworLSAgZ19yZXR1cm5faWZfZmFpbCAoZ19zdHJjbXAwIChzZWxmLT51cm4sIGV2ZW50LT51cm4p ID09IDApOworLQorLSAgaWYgKGV2ZW50LT50eXBlID09IFBIT1RPU19UUkFDS0VSX0NIQU5HRV9F VkVOVF9ERUxFVEVEIHx8IGV2ZW50LT50eXBlID09IFBIT1RPU19UUkFDS0VSX0NIQU5HRV9FVkVO VF9DUkVBVEVEKQorLSAgICBzZWxmLT50eXBlID0gZXZlbnQtPnR5cGU7CistfQorLQorLQorLXZv aWQKKy1waG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfc2V0X3Jlc29sdmVkX3ZhbHVlcyAoUGhv dG9zVHJhY2tlckNoYW5nZUV2ZW50ICpzZWxmLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqdXJuLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqcHJlZGljYXRl KQorLXsKKy0gIGdfcmV0dXJuX2lmX2ZhaWwgKHNlbGYtPnByZWRpY2F0ZSA9PSBOVUxMKTsKKy0g IGdfcmV0dXJuX2lmX2ZhaWwgKHNlbGYtPnVybiA9PSBOVUxMKTsKKy0KKy0gIHNlbGYtPnVybiA9 IGdfc3RyZHVwICh1cm4pOworLSAgc2VsZi0+cHJlZGljYXRlID0gZ19zdHJkdXAgKHByZWRpY2F0 ZSk7CistCistICBpZiAoZ19zdHJjbXAwIChwcmVkaWNhdGUsIFJERl9UWVBFKSAhPSAwKQorLSAg ICBzZWxmLT50eXBlID0gUEhPVE9TX1RSQUNLRVJfQ0hBTkdFX0VWRU5UX0NIQU5HRUQ7CistfQor ZGlmZiAtLWdpdCBhL3NyYy9waG90b3MtdHJhY2tlci1jaGFuZ2UtZXZlbnQuaCBiL3NyYy9waG90 b3MtdHJhY2tlci1jaGFuZ2UtZXZlbnQuaAorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRl eCBlZWU0ZjQwYy4uMDAwMDAwMDAKKy0tLSBhL3NyYy9waG90b3MtdHJhY2tlci1jaGFuZ2UtZXZl bnQuaAorKysrIC9kZXYvbnVsbAorQEAgLTEsNjQgKzAsMCBAQAorLS8qCistICogUGhvdG9zIC0g YWNjZXNzLCBvcmdhbml6ZSBhbmQgc2hhcmUgeW91ciBwaG90b3Mgb24gR05PTUUKKy0gKiBDb3B5 cmlnaHQgwqkgMjAxMiDigJMgMjAxOSBSZWQgSGF0LCBJbmMuCistICoKKy0gKiBUaGlzIHByb2dy YW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlm eQorLSAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgYXMgcHVibGlzaGVkIGJ5CistICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0 aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKy0gKiAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgorLSAqCistICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCistICogYnV0IFdJVEhPVVQgQU5ZIFdB UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKy0gKiBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCist ICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKy0gKgorLSAq IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlCistICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0 cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCistICovCistCistLyogQmFzZWQgb24gY29kZSBm cm9tOgorLSAqICAgKyBEb2N1bWVudHMKKy0gKi8KKy0KKy0jaWZuZGVmIFBIT1RPU19UUkFDS0VS X0NIQU5HRV9FVkVOVF9ICistI2RlZmluZSBQSE9UT1NfVFJBQ0tFUl9DSEFOR0VfRVZFTlRfSAor LQorLSNpbmNsdWRlIDxnbGliLmg+CistCistR19CRUdJTl9ERUNMUworLQorLXR5cGVkZWYgZW51 bQorLXsKKy0gIFBIT1RPU19UUkFDS0VSX0NIQU5HRV9FVkVOVF9DSEFOR0VELAorLSAgUEhPVE9T X1RSQUNLRVJfQ0hBTkdFX0VWRU5UX0NSRUFURUQsCistICBQSE9UT1NfVFJBQ0tFUl9DSEFOR0Vf RVZFTlRfREVMRVRFRAorLX0gUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50VHlwZTsKKy0KKy10eXBl ZGVmIHN0cnVjdCBfUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50IFBob3Rvc1RyYWNrZXJDaGFuZ2VF dmVudDsKKy0KKy1QaG90b3NUcmFja2VyQ2hhbmdlRXZlbnQgICpwaG90b3NfdHJhY2tlcl9jaGFu Z2VfZXZlbnRfbmV3ICAgICAgICAoZ2ludDMyIHVybl9pZCwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2ludDMyIHBy ZWRpY2F0ZV9pZCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gaXNfZGVsZXRlKTsKKy0KKy1QaG90b3NU cmFja2VyQ2hhbmdlRXZlbnQgICpwaG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfY29weSAgICAg ICAoUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICpldmVudCk7CistCistdm9pZCAgICAgICAgICAg ICAgICAgICAgICAgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X2ZyZWUgICAgICAgKFBob3Rv c1RyYWNrZXJDaGFuZ2VFdmVudCAqc2VsZik7CistCistUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50 VHlwZSBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfZ2V0X3R5cGUgKFBob3Rvc1RyYWNrZXJD aGFuZ2VFdmVudCAqc2VsZik7CistCistZ2ludDMyICAgICAgICAgICAgICAgICAgICAgcGhvdG9z X3RyYWNrZXJfY2hhbmdlX2V2ZW50X2dldF9wcmVkaWNhdGVfaWQgKFBob3Rvc1RyYWNrZXJDaGFu Z2VFdmVudCAqc2VsZik7CistCistY29uc3QgZ2NoYXIgICAgICAgICAgICAgICAqcGhvdG9zX3Ry YWNrZXJfY2hhbmdlX2V2ZW50X2dldF91cm4gICAgKFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAq c2VsZik7CistCistZ2ludDMyICAgICAgICAgICAgICAgICAgICAgcGhvdG9zX3RyYWNrZXJfY2hh bmdlX2V2ZW50X2dldF91cm5faWQgKFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqc2VsZik7Cist Cistdm9pZCAgICAgICAgICAgICAgICAgICAgICAgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50 X21lcmdlICAgICAgKFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqc2VsZiwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICpldmVudCk7CistCistdm9pZCAgICAgICAgICAgICAg ICAgICAgICAgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X3NldF9yZXNvbHZlZF92YWx1ZXMg KFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqc2VsZiwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgZ2NoYXIgKnVybiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgKnByZWRpY2F0 ZSk7CistCistR19FTkRfREVDTFMKKy0KKy0jZW5kaWYgLyogUEhPVE9TX1RSQUNLRVJfQ0hBTkdF X0VWRU5UX0ggKi8KK2RpZmYgLS1naXQgYS9zcmMvcGhvdG9zLXRyYWNrZXItY2hhbmdlLW1vbml0 b3IuYyBiL3NyYy9waG90b3MtdHJhY2tlci1jaGFuZ2UtbW9uaXRvci5jCitkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKK2luZGV4IDJlOTgxMGFhLi4wMDAwMDAwMAorLS0tIGEvc3JjL3Bob3Rvcy10 cmFja2VyLWNoYW5nZS1tb25pdG9yLmMKKysrKyAvZGV2L251bGwKK0BAIC0xLDQ2OCArMCwwIEBA CistLyoKKy0gKiBQaG90b3MgLSBhY2Nlc3MsIG9yZ2FuaXplIGFuZCBzaGFyZSB5b3VyIHBob3Rv cyBvbiBHTk9NRQorLSAqIENvcHlyaWdodCDCqSAyMDEyIOKAkyAyMDE5IFJlZCBIYXQsIEluYy4K Ky0gKgorLSAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CistICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKy0gKiB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorLSAq IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCistICoKKy0gKiBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKy0g KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy YW50eSBvZgorLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUKKy0gKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgorLSAqCistICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKy0gKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh bS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKy0gKi8KKy0K Ky0vKiBCYXNlZCBvbiBjb2RlIGZyb206CistICogICArIERvY3VtZW50cworLSAqLworLQorLQor LSNpbmNsdWRlICJjb25maWcuaCIKKy0KKy0jaW5jbHVkZSA8Z2xpYi5oPgorLSNpbmNsdWRlIDx0 cmFja2VyLXNwYXJxbC5oPgorLQorLSNpbmNsdWRlICJwaG90b3MtdHJhY2tlci1jaGFuZ2UtZXZl bnQuaCIKKy0jaW5jbHVkZSAicGhvdG9zLXRyYWNrZXItY2hhbmdlLW1vbml0b3IuaCIKKy0jaW5j bHVkZSAicGhvdG9zLXRyYWNrZXItcXVldWUuaCIKKy0jaW5jbHVkZSAicGhvdG9zLXRyYWNrZXIt cmVzb3VyY2VzLmgiCistI2luY2x1ZGUgInBob3Rvcy1xdWVyeS5oIgorLQorLQorLXN0cnVjdCBf UGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3IKKy17CistICBHT2JqZWN0IHBhcmVudF9pbnN0YW5j ZTsKKy0gIEdIYXNoVGFibGUgKnBlbmRpbmdfY2hhbmdlczsKKy0gIEdIYXNoVGFibGUgKnVucmVz b2x2ZWRfaWRzOworLSAgR1F1ZXVlICpwZW5kaW5nX2V2ZW50czsKKy0gIFBob3Rvc1RyYWNrZXJR dWV1ZSAqcXVldWU7CistICBUcmFja2VyUmVzb3VyY2VzICpyZXNvdXJjZV9zZXJ2aWNlOworLSAg Z3VpbnQgb3V0c3RhbmRpbmdfb3BzOworLSAgZ3VpbnQgcGVuZGluZ19ldmVudHNfaWQ7CistfTsK Ky0KKy1lbnVtCisteworLSAgQ0hBTkdFU19QRU5ESU5HLAorLSAgTEFTVF9TSUdOQUwKKy19Owor LQorLXN0YXRpYyBndWludCBzaWduYWxzW0xBU1RfU0lHTkFMXSA9IHsgMCB9OworLQorLXN0YXRp YyB2b2lkIHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX2luaXRhYmxlX2lmYWNlX2luaXQg KEdJbml0YWJsZUlmYWNlICppZmFjZSk7CistCistCistR19ERUZJTkVfVFlQRV9FWFRFTkRFRCAo UGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3IsIHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9y LCBHX1RZUEVfT0JKRUNULCAwLAorLSAgICAgICAgICAgICAgICAgICAgICAgIEdfSU1QTEVNRU5U X0lOVEVSRkFDRSAoR19UWVBFX0lOSVRBQkxFLCBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRv cl9pbml0YWJsZV9pZmFjZV9pbml0KSk7CistCistCistZW51bQorLXsKKy0gIENIQU5HRV9NT05J VE9SX1RJTUVPVVQgPSA1MDAsIC8qIG1zICovCistICBDSEFOR0VfTU9OSVRPUl9NQVhfSVRFTVMg PSA1MDAKKy19OworLQorLQorLXR5cGVkZWYgc3RydWN0IF9QaG90b3NUcmFja2VyQ2hhbmdlTW9u aXRvclF1ZXJ5RGF0YSBQaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvclF1ZXJ5RGF0YTsKKy10eXBl ZGVmIHN0cnVjdCBfVHJhY2tlclJlc291cmNlc0V2ZW50IFRyYWNrZXJSZXNvdXJjZXNFdmVudDsK Ky0KKy1zdHJ1Y3QgX1Bob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yUXVlcnlEYXRhCisteworLSAg UGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3IgKnNlbGY7CistICBHSGFzaFRhYmxlICppZF90YWJs ZTsKKy0gIEdRdWV1ZSAqZXZlbnRzOworLX07CistCistc3RydWN0IF9UcmFja2VyUmVzb3VyY2Vz RXZlbnQKKy17CistICBnaW50MzIgZ3JhcGg7CistICBnaW50MzIgc3ViamVjdDsKKy0gIGdpbnQz MiBwcmVkaWNhdGU7CistICBnaW50MzIgb2JqZWN0OworLX07CistCistCistc3RhdGljIHZvaWQK Ky1waG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9xdWVyeV9kYXRhX2ZyZWUgKFBob3Rvc1Ry YWNrZXJDaGFuZ2VNb25pdG9yUXVlcnlEYXRhICpkYXRhKQorLXsKKy0gIGdfY2xlYXJfb2JqZWN0 ICgmZGF0YS0+c2VsZik7CistCistICBpZiAoZGF0YS0+aWRfdGFibGUgIT0gTlVMTCkKKy0gICAg Z19oYXNoX3RhYmxlX3VucmVmIChkYXRhLT5pZF90YWJsZSk7CistCistICBpZiAoZGF0YS0+ZXZl bnRzICE9IE5VTEwpCistICAgIGdfcXVldWVfZnJlZV9mdWxsIChkYXRhLT5ldmVudHMsIChHRGVz dHJveU5vdGlmeSkgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X2ZyZWUpOworLQorLSAgZ19z bGljZV9mcmVlIChQaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvclF1ZXJ5RGF0YSwgZGF0YSk7Cist fQorLQorLQorLXN0YXRpYyBQaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvclF1ZXJ5RGF0YSAqCist cGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfcXVlcnlfZGF0YV9uZXcgKFBob3Rvc1RyYWNr ZXJDaGFuZ2VNb25pdG9yICpzZWxmLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBHSGFzaFRhYmxlICppZF90YWJsZSwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgR1F1ZXVlICpldmVudHMpCisteworLSAgUGhvdG9z VHJhY2tlckNoYW5nZU1vbml0b3JRdWVyeURhdGEgKmRhdGE7CistCistICBkYXRhID0gZ19zbGlj ZV9uZXcwIChQaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvclF1ZXJ5RGF0YSk7CistICBkYXRhLT5z ZWxmID0gZ19vYmplY3RfcmVmIChzZWxmKTsKKy0gIGRhdGEtPmlkX3RhYmxlID0gaWRfdGFibGU7 CistICBkYXRhLT5ldmVudHMgPSBldmVudHM7CistCistICByZXR1cm4gZGF0YTsKKy19CistCist Cistc3RhdGljIHZvaWQKKy1waG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9hZGRfZXZlbnQg KFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yICpzZWxmLCBQaG90b3NUcmFja2VyQ2hhbmdlRXZl bnQgKmNoYW5nZV9ldmVudCkKKy17CistICBQaG90b3NUcmFja2VyQ2hhbmdlRXZlbnQgKm9sZF9j aGFuZ2VfZXZlbnQ7CistICBjb25zdCBnY2hhciAqdXJuOworLQorLSAgdXJuID0gcGhvdG9zX3Ry YWNrZXJfY2hhbmdlX2V2ZW50X2dldF91cm4gKGNoYW5nZV9ldmVudCk7CistICBvbGRfY2hhbmdl X2V2ZW50ID0gKFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqKSBnX2hhc2hfdGFibGVfbG9va3Vw IChzZWxmLT5wZW5kaW5nX2NoYW5nZXMsIHVybik7CistCistICBpZiAob2xkX2NoYW5nZV9ldmVu dCAhPSBOVUxMKQorLSAgICBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfbWVyZ2UgKG9sZF9j aGFuZ2VfZXZlbnQsIGNoYW5nZV9ldmVudCk7CistICBlbHNlCistICAgIGdfaGFzaF90YWJsZV9p bnNlcnQgKHNlbGYtPnBlbmRpbmdfY2hhbmdlcywgZ19zdHJkdXAgKHVybiksIHBob3Rvc190cmFj a2VyX2NoYW5nZV9ldmVudF9jb3B5IChjaGFuZ2VfZXZlbnQpKTsKKy19CistCistCistc3RhdGlj IHZvaWQKKy1waG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9yZW1vdmVfdGltZW91dCAoUGhv dG9zVHJhY2tlckNoYW5nZU1vbml0b3IgKnNlbGYpCisteworLSAgaWYgKHNlbGYtPnBlbmRpbmdf ZXZlbnRzX2lkICE9IDApCistICAgIHsKKy0gICAgICBnX3NvdXJjZV9yZW1vdmUgKHNlbGYtPnBl bmRpbmdfZXZlbnRzX2lkKTsKKy0gICAgICBzZWxmLT5wZW5kaW5nX2V2ZW50c19pZCA9IDA7Cist ICAgIH0KKy19CistCistCistc3RhdGljIHZvaWQKKy1waG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9u aXRvcl9zZW5kX2V2ZW50cyAoUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3IgKnNlbGYsIEdIYXNo VGFibGUgKmlkX3RhYmxlLCBHUXVldWUgKmV2ZW50cykKKy17CistICBHTGlzdCAqbDsKKy0KKy0g IGZvciAobCA9IGV2ZW50cy0+aGVhZDsgbCAhPSBOVUxMOyBsID0gbC0+bmV4dCkKKy0gICAgewor LSAgICAgIFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqY2hhbmdlX2V2ZW50ID0gKFBob3Rvc1Ry YWNrZXJDaGFuZ2VFdmVudCAqKSBsLT5kYXRhOworLSAgICAgIGNvbnN0IGdjaGFyICpwcmVkaWNh dGU7CistICAgICAgY29uc3QgZ2NoYXIgKnVybjsKKy0gICAgICBnaW50MzIgcHJlZGljYXRlX2lk OworLSAgICAgIGdpbnQzMiB1cm5faWQ7CistCistICAgICAgcHJlZGljYXRlX2lkID0gcGhvdG9z X3RyYWNrZXJfY2hhbmdlX2V2ZW50X2dldF9wcmVkaWNhdGVfaWQgKGNoYW5nZV9ldmVudCk7Cist ICAgICAgdXJuX2lkID0gcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X2dldF91cm5faWQgKGNo YW5nZV9ldmVudCk7CistCistICAgICAgcHJlZGljYXRlID0gKGdjaGFyICopIGdfaGFzaF90YWJs ZV9sb29rdXAgKGlkX3RhYmxlLCBHSU5UX1RPX1BPSU5URVIgKHByZWRpY2F0ZV9pZCkpOworLSAg ICAgIGlmIChHX1VOTElLRUxZIChwcmVkaWNhdGUgPT0gTlVMTCkpCistICAgICAgICBjb250aW51 ZTsKKy0KKy0gICAgICB1cm4gPSAoZ2NoYXIgKikgZ19oYXNoX3RhYmxlX2xvb2t1cCAoaWRfdGFi bGUsIEdJTlRfVE9fUE9JTlRFUiAodXJuX2lkKSk7CistICAgICAgaWYgKEdfVU5MSUtFTFkgKHVy biA9PSBOVUxMKSkKKy0gICAgICAgIGNvbnRpbnVlOworLQorLSAgICAgIHBob3Rvc190cmFja2Vy X2NoYW5nZV9ldmVudF9zZXRfcmVzb2x2ZWRfdmFsdWVzIChjaGFuZ2VfZXZlbnQsIHVybiwgcHJl ZGljYXRlKTsKKy0gICAgICBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9hZGRfZXZlbnQg KHNlbGYsIGNoYW5nZV9ldmVudCk7CistICAgIH0KKy0KKy0gIGdfc2lnbmFsX2VtaXQgKHNlbGYs IHNpZ25hbHNbQ0hBTkdFU19QRU5ESU5HXSwgMCwgc2VsZi0+cGVuZGluZ19jaGFuZ2VzKTsKKy0g IGdfaGFzaF90YWJsZV9yZW1vdmVfYWxsIChzZWxmLT5wZW5kaW5nX2NoYW5nZXMpOworLX0KKy0K Ky0KKy1zdGF0aWMgdm9pZAorLXBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX2N1cnNvcl9u ZXh0IChHT2JqZWN0ICpzb3VyY2Vfb2JqZWN0LCBHQXN5bmNSZXN1bHQgKnJlcywgZ3BvaW50ZXIg dXNlcl9kYXRhKQorLXsKKy0gIFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yUXVlcnlEYXRhICpk YXRhID0gKFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yUXVlcnlEYXRhICopIHVzZXJfZGF0YTsK Ky0gIFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yICpzZWxmID0gZGF0YS0+c2VsZjsKKy0gIFRy YWNrZXJTcGFycWxDdXJzb3IgKmN1cnNvciA9IFRSQUNLRVJfU1BBUlFMX0NVUlNPUiAoc291cmNl X29iamVjdCk7CistICBHSGFzaFRhYmxlSXRlciBpdGVyOworLSAgZ2Jvb2xlYW4gdmFsaWQ7Cist CistICB7CistICAgIGdfYXV0b3B0ciAoR0Vycm9yKSBlcnJvciA9IE5VTEw7CistCistICAgIHZh bGlkID0gdHJhY2tlcl9zcGFycWxfY3Vyc29yX25leHRfZmluaXNoIChjdXJzb3IsIHJlcywgJmVy cm9yKTsKKy0gICAgaWYgKGVycm9yICE9IE5VTEwpCistICAgICAgZ193YXJuaW5nICgiVW5hYmxl IHRvIHJlc29sdmUgaXRlbSBVUk5zIGZvciBncmFwaCBjaGFuZ2VzOiAlcyIsIGVycm9yLT5tZXNz YWdlKTsKKy0gIH0KKy0KKy0gIGlmICh2YWxpZCkKKy0gICAgeworLSAgICAgIGd1aW50IGlkeDsK Ky0KKy0gICAgICBpZHggPSAwOworLSAgICAgIGdfaGFzaF90YWJsZV9pdGVyX2luaXQgKCZpdGVy LCBkYXRhLT5pZF90YWJsZSk7CistICAgICAgd2hpbGUgKGdfaGFzaF90YWJsZV9pdGVyX25leHQg KCZpdGVyLCBOVUxMLCBOVUxMKSkKKy0gICAgICAgIHsKKy0gICAgICAgICAgY29uc3QgZ2NoYXIg KnN0cjsKKy0KKy0gICAgICAgICAgc3RyID0gdHJhY2tlcl9zcGFycWxfY3Vyc29yX2dldF9zdHJp bmcgKGN1cnNvciwgaWR4LCBOVUxMKTsKKy0gICAgICAgICAgZ19oYXNoX3RhYmxlX2l0ZXJfcmVw bGFjZSAoJml0ZXIsIGdfc3RyZHVwIChzdHIpKTsKKy0gICAgICAgICAgaWR4Kys7CistICAgICAg ICB9CistCistICAgICAgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3Jfc2VuZF9ldmVudHMg KHNlbGYsIGRhdGEtPmlkX3RhYmxlLCBkYXRhLT5ldmVudHMpOworLSAgICB9CistCistICB0cmFj a2VyX3NwYXJxbF9jdXJzb3JfY2xvc2UgKGN1cnNvcik7CistICBwaG90b3NfdHJhY2tlcl9jaGFu Z2VfbW9uaXRvcl9xdWVyeV9kYXRhX2ZyZWUgKGRhdGEpOworLX0KKy0KKy0KKy1zdGF0aWMgdm9p ZAorLXBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX3F1ZXJ5X2V4ZWN1dGVkIChHT2JqZWN0 ICpzb3VyY2Vfb2JqZWN0LCBHQXN5bmNSZXN1bHQgKnJlcywgZ3BvaW50ZXIgdXNlcl9kYXRhKQor LXsKKy0gIFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yUXVlcnlEYXRhICpkYXRhID0gKFBob3Rv c1RyYWNrZXJDaGFuZ2VNb25pdG9yUXVlcnlEYXRhICopIHVzZXJfZGF0YTsKKy0gIFRyYWNrZXJT cGFycWxDb25uZWN0aW9uICpjb25uZWN0aW9uID0gVFJBQ0tFUl9TUEFSUUxfQ09OTkVDVElPTiAo c291cmNlX29iamVjdCk7CistICBUcmFja2VyU3BhcnFsQ3Vyc29yICpjdXJzb3I7IC8qIFRPRE86 IFVzZSBnX2F1dG9wdHIgKi8KKy0KKy0gIHsKKy0gICAgZ19hdXRvcHRyIChHRXJyb3IpIGVycm9y ID0gTlVMTDsKKy0KKy0gICAgY3Vyc29yID0gdHJhY2tlcl9zcGFycWxfY29ubmVjdGlvbl9xdWVy eV9maW5pc2ggKGNvbm5lY3Rpb24sIHJlcywgJmVycm9yKTsKKy0gICAgaWYgKGVycm9yICE9IE5V TEwpCistICAgICAgeworLSAgICAgICAgZ193YXJuaW5nICgiVW5hYmxlIHRvIHJlc29sdmUgaXRl bSBVUk5zIGZvciBncmFwaCBjaGFuZ2VzOiAlcyIsIGVycm9yLT5tZXNzYWdlKTsKKy0gICAgICAg IHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX3F1ZXJ5X2RhdGFfZnJlZSAoZGF0YSk7Cist ICAgICAgICByZXR1cm47CistICAgICAgfQorLSAgfQorLQorLSAgdHJhY2tlcl9zcGFycWxfY3Vy c29yX25leHRfYXN5bmMgKGN1cnNvciwgTlVMTCwgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0 b3JfY3Vyc29yX25leHQsIGRhdGEpOworLSAgZ19vYmplY3RfdW5yZWYgKGN1cnNvcik7CistfQor LQorLQorLXN0YXRpYyBnYm9vbGVhbgorLXBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX3By b2Nlc3NfZXZlbnRzIChQaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvciAqc2VsZikKKy17CistICBH SGFzaFRhYmxlICppZF90YWJsZTsKKy0gIEdIYXNoVGFibGVJdGVyIGl0ZXI7CistICBHUXVldWUg KmV2ZW50czsKKy0gIGdfYXV0b3B0ciAoR1N0cmluZykgc3BhcnFsID0gTlVMTDsKKy0gIFBob3Rv c1RyYWNrZXJDaGFuZ2VNb25pdG9yUXVlcnlEYXRhICpkYXRhOworLSAgZ19hdXRvcHRyIChQaG90 b3NRdWVyeSkgcXVlcnkgPSBOVUxMOworLSAgZ3BvaW50ZXIgaWQ7CistCistICBldmVudHMgPSBz ZWxmLT5wZW5kaW5nX2V2ZW50czsKKy0gIHNlbGYtPnBlbmRpbmdfZXZlbnRzID0gZ19xdWV1ZV9u ZXcgKCk7CistCistICBpZF90YWJsZSA9IHNlbGYtPnVucmVzb2x2ZWRfaWRzOworLSAgc2VsZi0+ dW5yZXNvbHZlZF9pZHMgPSBnX2hhc2hfdGFibGVfbmV3X2Z1bGwgKGdfZGlyZWN0X2hhc2gsIGdf ZGlyZWN0X2VxdWFsLCBOVUxMLCBnX2ZyZWUpOworLQorLSAgc2VsZi0+cGVuZGluZ19ldmVudHNf aWQgPSAwOworLQorLSAgc3BhcnFsID0gZ19zdHJpbmdfbmV3ICgiU0VMRUNUIik7CistCistICBn X2hhc2hfdGFibGVfaXRlcl9pbml0ICgmaXRlciwgaWRfdGFibGUpOworLSAgd2hpbGUgKGdfaGFz aF90YWJsZV9pdGVyX25leHQgKCZpdGVyLCAmaWQsIE5VTEwpKQorLSAgICBnX3N0cmluZ19hcHBl bmRfcHJpbnRmIChzcGFycWwsICIgdHJhY2tlcjp1cmkoJWQpIiwgR1BPSU5URVJfVE9fSU5UIChp ZCkpOworLQorLSAgZ19zdHJpbmdfYXBwZW5kIChzcGFycWwsICIge30iKTsKKy0KKy0gIHF1ZXJ5 ID0gcGhvdG9zX3F1ZXJ5X25ldyAoTlVMTCwgc3BhcnFsLT5zdHIpOworLQorLSAgZGF0YSA9IHBo b3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX3F1ZXJ5X2RhdGFfbmV3IChzZWxmLCBpZF90YWJs ZSwgZXZlbnRzKTsKKy0gIHBob3Rvc190cmFja2VyX3F1ZXVlX3NlbGVjdCAoc2VsZi0+cXVldWUs CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5LAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBOVUxMLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw aG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9xdWVyeV9leGVjdXRlZCwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZGF0YSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTlVMTCk7CistCistICByZXR1cm4gR19TT1VSQ0VfUkVNT1ZFOworLX0KKy0KKy0KKy1zdGF0 aWMgdm9pZAorLXBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX2FkZF9wZW5kaW5nX2V2ZW50 IChQaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvciAqc2VsZiwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVHJhY2tlclJlc291cmNlc0V2ZW50 ICpldmVudCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZ2Jvb2xlYW4gaXNfZGVsZXRlKQorLXsKKy0gIFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAq Y2hhbmdlX2V2ZW50OworLQorLSAgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfcmVtb3Zl X3RpbWVvdXQgKHNlbGYpOworLQorLSAgZ19oYXNoX3RhYmxlX2luc2VydCAoc2VsZi0+dW5yZXNv bHZlZF9pZHMsIEdJTlRfVE9fUE9JTlRFUiAoZXZlbnQtPnN1YmplY3QpLCBOVUxMKTsKKy0gIGdf aGFzaF90YWJsZV9pbnNlcnQgKHNlbGYtPnVucmVzb2x2ZWRfaWRzLCBHSU5UX1RPX1BPSU5URVIg KGV2ZW50LT5wcmVkaWNhdGUpLCBOVUxMKTsKKy0KKy0gIGNoYW5nZV9ldmVudCA9IHBob3Rvc190 cmFja2VyX2NoYW5nZV9ldmVudF9uZXcgKGV2ZW50LT5zdWJqZWN0LCBldmVudC0+cHJlZGljYXRl LCBpc19kZWxldGUpOworLSAgZ19xdWV1ZV9wdXNoX3RhaWwgKHNlbGYtPnBlbmRpbmdfZXZlbnRz LCBjaGFuZ2VfZXZlbnQpOworLQorLSAgaWYgKHNlbGYtPnBlbmRpbmdfZXZlbnRzLT5sZW5ndGgg Pj0gQ0hBTkdFX01PTklUT1JfTUFYX0lURU1TKQorLSAgICBwaG90b3NfdHJhY2tlcl9jaGFuZ2Vf bW9uaXRvcl9wcm9jZXNzX2V2ZW50cyAoc2VsZik7CistICBlbHNlCistICAgIHNlbGYtPnBlbmRp bmdfZXZlbnRzX2lkID0gZ190aW1lb3V0X2FkZCAoQ0hBTkdFX01PTklUT1JfVElNRU9VVCwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR1NvdXJjZUZ1bmMp IHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX3Byb2Nlc3NfZXZlbnRzLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYpOworLX0KKy0KKy0KKy1z dGF0aWMgdm9pZAorLXBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX2dyYXBoX3VwZGF0ZWQg KFRyYWNrZXJSZXNvdXJjZXMgKnJlc291cmNlX3NlcnZpY2UsCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgKmNsYXNzX25hbWUsCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1ZhcmlhbnQgKmRlbGV0 ZV9ldmVudHMsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg R1ZhcmlhbnQgKmluc2VydF9ldmVudHMsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ3BvaW50ZXIgdXNlcl9kYXRhKQorLXsKKy0gIFBob3Rvc1RyYWNrZXJD aGFuZ2VNb25pdG9yICpzZWxmID0gUEhPVE9TX1RSQUNLRVJfQ0hBTkdFX01PTklUT1IgKHVzZXJf ZGF0YSk7CistICBjb25zdCBUcmFja2VyUmVzb3VyY2VzRXZlbnQgKmV2ZW50czsKKy0gIGdzaXpl IGk7CistICBnc2l6ZSBuX2VsZW1lbnRzOworLQorLSAgZXZlbnRzID0gKGNvbnN0IFRyYWNrZXJS ZXNvdXJjZXNFdmVudCAqKSBnX3ZhcmlhbnRfZ2V0X2ZpeGVkX2FycmF5IChkZWxldGVfZXZlbnRz LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAmbl9lbGVtZW50cywKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mIChUcmFj a2VyUmVzb3VyY2VzRXZlbnQpKTsKKy0gIGZvciAoaSA9IDA7IGkgPCBuX2VsZW1lbnRzOyBpKysp CistICAgIHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX2FkZF9wZW5kaW5nX2V2ZW50IChz ZWxmLCAmZXZlbnRzW2ldLCBUUlVFKTsKKy0KKy0gIGV2ZW50cyA9IChjb25zdCBUcmFja2VyUmVz b3VyY2VzRXZlbnQgKikgZ192YXJpYW50X2dldF9maXhlZF9hcnJheSAoaW5zZXJ0X2V2ZW50cywK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJm5fZWxlbWVudHMsCistICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZiAoVHJhY2tl clJlc291cmNlc0V2ZW50KSk7CistICBmb3IgKGkgPSAwOyBpIDwgbl9lbGVtZW50czsgaSsrKQor LSAgICBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9hZGRfcGVuZGluZ19ldmVudCAoc2Vs ZiwgJmV2ZW50c1tpXSwgRkFMU0UpOworLX0KKy0KKy0KKy1zdGF0aWMgR09iamVjdCAqCistcGhv dG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfY29uc3RydWN0b3IgKEdUeXBlIHR5cGUsCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50IG5fY29uc3RydWN0 X3BhcmFtcywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR09i amVjdENvbnN0cnVjdFBhcmFtICpjb25zdHJ1Y3RfcGFyYW1zKQorLXsKKy0gIHN0YXRpYyBHT2Jq ZWN0ICpzZWxmID0gTlVMTDsKKy0KKy0gIGlmIChzZWxmID09IE5VTEwpCistICAgIHsKKy0gICAg ICBzZWxmID0gR19PQkpFQ1RfQ0xBU1MgKHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX3Bh cmVudF9jbGFzcyktPmNvbnN0cnVjdG9yICh0eXBlLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG5fY29uc3RydWN0X3BhcmFtcywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdHJ1Y3RfcGFyYW1zKTsKKy0gICAgICBnX29iamVjdF9hZGRfd2Vha19wb2ludGVyIChz ZWxmLCAoZ3BvaW50ZXIpICZzZWxmKTsKKy0gICAgICByZXR1cm4gc2VsZjsKKy0gICAgfQorLQor LSAgcmV0dXJuIGdfb2JqZWN0X3JlZiAoc2VsZik7CistfQorLQorLQorLXN0YXRpYyB2b2lkCist cGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfZGlzcG9zZSAoR09iamVjdCAqb2JqZWN0KQor LXsKKy0gIFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yICpzZWxmID0gUEhPVE9TX1RSQUNLRVJf Q0hBTkdFX01PTklUT1IgKG9iamVjdCk7CistCistICBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9u aXRvcl9yZW1vdmVfdGltZW91dCAoc2VsZik7CistCistICBnX2NsZWFyX29iamVjdCAoJnNlbGYt PnF1ZXVlKTsKKy0gIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+cmVzb3VyY2Vfc2VydmljZSk7Cist CistICBHX09CSkVDVF9DTEFTUyAocGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfcGFyZW50 X2NsYXNzKS0+ZGlzcG9zZSAob2JqZWN0KTsKKy19CistCistCistc3RhdGljIHZvaWQKKy1waG90 b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9maW5hbGl6ZSAoR09iamVjdCAqb2JqZWN0KQorLXsK Ky0gIFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yICpzZWxmID0gUEhPVE9TX1RSQUNLRVJfQ0hB TkdFX01PTklUT1IgKG9iamVjdCk7CistCistICBnX2hhc2hfdGFibGVfdW5yZWYgKHNlbGYtPnBl bmRpbmdfY2hhbmdlcyk7CistICBnX2hhc2hfdGFibGVfdW5yZWYgKHNlbGYtPnVucmVzb2x2ZWRf aWRzKTsKKy0KKy0gIGdfcXVldWVfZnJlZV9mdWxsIChzZWxmLT5wZW5kaW5nX2V2ZW50cywgKEdE ZXN0cm95Tm90aWZ5KSBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfZnJlZSk7CistCistICBH X09CSkVDVF9DTEFTUyAocGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfcGFyZW50X2NsYXNz KS0+ZmluYWxpemUgKG9iamVjdCk7CistfQorLQorLQorLXN0YXRpYyB2b2lkCistcGhvdG9zX3Ry YWNrZXJfY2hhbmdlX21vbml0b3JfaW5pdCAoUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3IgKnNl bGYpCisteworLSAgc2VsZi0+cGVuZGluZ19jaGFuZ2VzID0gZ19oYXNoX3RhYmxlX25ld19mdWxs IChnX3N0cl9oYXNoLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBnX3N0cl9lcXVhbCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ19mcmVlLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoR0Rlc3Ryb3lOb3RpZnkpIHBob3Rvc190cmFja2VyX2NoYW5nZV9l dmVudF9mcmVlKTsKKy0KKy0gIHNlbGYtPnVucmVzb2x2ZWRfaWRzID0gZ19oYXNoX3RhYmxlX25l d19mdWxsIChnX2RpcmVjdF9oYXNoLCBnX2RpcmVjdF9lcXVhbCwgTlVMTCwgZ19mcmVlKTsKKy0K Ky0gIHNlbGYtPnBlbmRpbmdfZXZlbnRzID0gZ19xdWV1ZV9uZXcgKCk7CistfQorLQorLQorLXN0 YXRpYyB2b2lkCistcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfY2xhc3NfaW5pdCAoUGhv dG9zVHJhY2tlckNoYW5nZU1vbml0b3JDbGFzcyAqY2xhc3MpCisteworLSAgR09iamVjdENsYXNz ICpvYmplY3RfY2xhc3MgPSBHX09CSkVDVF9DTEFTUyAoY2xhc3MpOworLQorLSAgb2JqZWN0X2Ns YXNzLT5jb25zdHJ1Y3RvciA9IHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX2NvbnN0cnVj dG9yOworLSAgb2JqZWN0X2NsYXNzLT5kaXNwb3NlID0gcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21v bml0b3JfZGlzcG9zZTsKKy0gIG9iamVjdF9jbGFzcy0+ZmluYWxpemUgPSBwaG90b3NfdHJhY2tl cl9jaGFuZ2VfbW9uaXRvcl9maW5hbGl6ZTsKKy0KKy0gIHNpZ25hbHNbQ0hBTkdFU19QRU5ESU5H XSA9IGdfc2lnbmFsX25ldyAoImNoYW5nZXMtcGVuZGluZyIsCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTIChjbGFzcyksCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfU0lHTkFMX1JVTl9MQVNU LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAvKmFjY3VtdWxhdG9y ICovCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIC8q YWNjdV9kYXRhICovCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGdfY2Nsb3N1cmVfbWFyc2hhbF9WT0lEX19CT1hFRCwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgR19UWVBFX05PTkUsCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDEsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEdfVFlQRV9IQVNIX1RBQkxFKTsKKy19CistCistCistc3RhdGljIGdib29s ZWFuCistcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfaW5pdGFibGVfaW5pdCAoR0luaXRh YmxlICppbml0YWJsZSwgR0NhbmNlbGxhYmxlICpjYW5jZWxsYWJsZSwgR0Vycm9yICoqZXJyb3Ip CisteworLSAgUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3IgKnNlbGYgPSBQSE9UT1NfVFJBQ0tF Ul9DSEFOR0VfTU9OSVRPUiAoaW5pdGFibGUpOworLSAgZ2Jvb2xlYW4gcmV0X3ZhbCA9IFRSVUU7 CistCistICBpZiAoR19MSUtFTFkgKHNlbGYtPnF1ZXVlICE9IE5VTEwgJiYgc2VsZi0+cmVzb3Vy Y2Vfc2VydmljZSAhPSBOVUxMKSkKKy0gICAgZ290byBvdXQ7CistCistICBzZWxmLT5xdWV1ZSA9 IHBob3Rvc190cmFja2VyX3F1ZXVlX2R1cF9zaW5nbGV0b24gKGNhbmNlbGxhYmxlLCBlcnJvcik7 CistICBpZiAoR19VTkxJS0VMWSAoc2VsZi0+cXVldWUgPT0gTlVMTCkpCistICAgIHsKKy0gICAg ICByZXRfdmFsID0gRkFMU0U7CistICAgICAgZ290byBvdXQ7CistICAgIH0KKy0KKy0gIHNlbGYt PnJlc291cmNlX3NlcnZpY2UgPSB0cmFja2VyX3Jlc291cmNlc19wcm94eV9uZXdfZm9yX2J1c19z eW5jIChHX0JVU19UWVBFX1NFU1NJT04sCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19EQlVTX1BST1hZX0ZMQUdT X05PTkUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIm9yZy5mcmVlZGVza3RvcC5UcmFja2VyMSIsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIi9vcmcvZnJlZWRlc2t0b3AvVHJhY2tlcjEvUmVzb3VyY2VzIiwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjYW5jZWxsYWJsZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcik7CistICBpZiAoR19VTkxJS0VMWSAo c2VsZi0+cmVzb3VyY2Vfc2VydmljZSA9PSBOVUxMKSkKKy0gICAgeworLSAgICAgIHJldF92YWwg PSBGQUxTRTsKKy0gICAgICBnb3RvIG91dDsKKy0gICAgfQorLQorLSAgZ19zaWduYWxfY29ubmVj dCAoc2VsZi0+cmVzb3VyY2Vfc2VydmljZSwKKy0gICAgICAgICAgICAgICAgICAgICJncmFwaC11 cGRhdGVkIiwKKy0gICAgICAgICAgICAgICAgICAgIEdfQ0FMTEJBQ0sgKHBob3Rvc190cmFja2Vy X2NoYW5nZV9tb25pdG9yX2dyYXBoX3VwZGF0ZWQpLAorLSAgICAgICAgICAgICAgICAgICAgc2Vs Zik7CistCistIG91dDoKKy0gIHJldHVybiByZXRfdmFsOworLX0KKy0KKy0KKy1zdGF0aWMgdm9p ZAorLXBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX2luaXRhYmxlX2lmYWNlX2luaXQgKEdJ bml0YWJsZUlmYWNlICppZmFjZSkKKy17CistICBpZmFjZS0+aW5pdCA9IHBob3Rvc190cmFja2Vy X2NoYW5nZV9tb25pdG9yX2luaXRhYmxlX2luaXQ7CistfQorLQorLQorLVBob3Rvc1RyYWNrZXJD aGFuZ2VNb25pdG9yICoKKy1waG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9kdXBfc2luZ2xl dG9uIChHQ2FuY2VsbGFibGUgKmNhbmNlbGxhYmxlLCBHRXJyb3IgKiplcnJvcikKKy17CistICBy ZXR1cm4gZ19pbml0YWJsZV9uZXcgKFBIT1RPU19UWVBFX1RSQUNLRVJfQ0hBTkdFX01PTklUT1Is IGNhbmNlbGxhYmxlLCBlcnJvciwgTlVMTCk7CistfQorZGlmZiAtLWdpdCBhL3NyYy9waG90b3Mt dHJhY2tlci1jaGFuZ2UtbW9uaXRvci5oIGIvc3JjL3Bob3Rvcy10cmFja2VyLWNoYW5nZS1tb25p dG9yLmgKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggOTc0MGIwNDYuLjAwMDAwMDAw CistLS0gYS9zcmMvcGhvdG9zLXRyYWNrZXItY2hhbmdlLW1vbml0b3IuaAorKysrIC9kZXYvbnVs bAorQEAgLTEsNDIgKzAsMCBAQAorLS8qCistICogUGhvdG9zIC0gYWNjZXNzLCBvcmdhbml6ZSBh bmQgc2hhcmUgeW91ciBwaG90b3Mgb24gR05PTUUKKy0gKiBDb3B5cmlnaHQgwqkgMjAxMiDigJMg MjAxOSBSZWQgSGF0LCBJbmMuCistICoKKy0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2Fy ZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorLSAqIGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 CistICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0 aGUgTGljZW5zZSwgb3IKKy0gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor LSAqCistICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsCistICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKy0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCistICogR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKy0gKgorLSAqIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCistICogYWxv bmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzLz4uCistICovCistCistLyogQmFzZWQgb24gY29kZSBmcm9tOgorLSAqICAgKyBEb2N1 bWVudHMKKy0gKi8KKy0KKy0jaWZuZGVmIFBIT1RPU19UUkFDS0VSX0NIQU5HRV9NT05JVE9SX0gK Ky0jZGVmaW5lIFBIT1RPU19UUkFDS0VSX0NIQU5HRV9NT05JVE9SX0gKKy0KKy0jaW5jbHVkZSA8 Z2lvL2dpby5oPgorLQorLUdfQkVHSU5fREVDTFMKKy0KKy0jZGVmaW5lIFBIT1RPU19UWVBFX1RS QUNLRVJfQ0hBTkdFX01PTklUT1IgKHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX2dldF90 eXBlICgpKQorLUdfREVDTEFSRV9GSU5BTF9UWVBFIChQaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRv ciwKKy0gICAgICAgICAgICAgICAgICAgICAgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3Is CistICAgICAgICAgICAgICAgICAgICAgIFBIT1RPUywKKy0gICAgICAgICAgICAgICAgICAgICAg VFJBQ0tFUl9DSEFOR0VfTU9OSVRPUiwKKy0gICAgICAgICAgICAgICAgICAgICAgR09iamVjdCk7 CistCistUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3IgICpwaG90b3NfdHJhY2tlcl9jaGFuZ2Vf bW9uaXRvcl9kdXBfc2luZ2xldG9uICAgIChHQ2FuY2VsbGFibGUgKmNhbmNlbGxhYmxlLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgR0Vycm9yICoqZXJyb3IpOworLQorLUdfRU5EX0RFQ0xTCistCist I2VuZGlmIC8qIFBIT1RPU19UUkFDS0VSX0NIQU5HRV9NT05JVE9SX0ggKi8KK2RpZmYgLS1naXQg YS9zcmMvcGhvdG9zLXRyYWNrZXItY29udHJvbGxlci5jIGIvc3JjL3Bob3Rvcy10cmFja2VyLWNv bnRyb2xsZXIuYworaW5kZXggM2E2MmNmMmQuLmYwYjgxZTAyIDEwMDY0NAorLS0tIGEvc3JjL3Bo b3Rvcy10cmFja2VyLWNvbnRyb2xsZXIuYworKysrIGIvc3JjL3Bob3Rvcy10cmFja2VyLWNvbnRy b2xsZXIuYworQEAgLTI5Miw2ICsyOTIsMTIgQEAgcGhvdG9zX3RyYWNrZXJfY29udHJvbGxlcl9w ZXJmb3JtX2N1cnJlbnRfcXVlcnkgKFBob3Rvc1RyYWNrZXJDb250cm9sbGVyICpzZWxmKQorIAor ICAgcHJpdiA9IHBob3Rvc190cmFja2VyX2NvbnRyb2xsZXJfZ2V0X2luc3RhbmNlX3ByaXZhdGUg KHNlbGYpOworIAorKyAgaWYgKEdfVU5MSUtFTFkgKHByaXYtPnF1ZXVlID09IE5VTEwpKQorKyAg ICB7CisrICAgICAgcGhvdG9zX3RyYWNrZXJfY29udHJvbGxlcl9xdWVyeV9lcnJvciAoc2VsZiwg cHJpdi0+cXVldWVfZXJyb3IpOworKyAgICAgIGdvdG8gb3V0OworKyAgICB9CisrCisgICBnX2Ns ZWFyX29iamVjdCAoJnByaXYtPmN1cnJlbnRfcXVlcnkpOworICAgcHJpdi0+Y3VycmVudF9xdWVy eSA9IFBIT1RPU19UUkFDS0VSX0NPTlRST0xMRVJfR0VUX0NMQVNTIChzZWxmKS0+Z2V0X3F1ZXJ5 IChzZWxmKTsKKyAgIGdfcmV0dXJuX2lmX2ZhaWwgKHByaXYtPmN1cnJlbnRfcXVlcnkgIT0gTlVM TCk7CitAQCAtMzAzLDEyICszMDksNiBAQCBwaG90b3NfdHJhY2tlcl9jb250cm9sbGVyX3BlcmZv cm1fY3VycmVudF9xdWVyeSAoUGhvdG9zVHJhY2tlckNvbnRyb2xsZXIgKnNlbGYpCisgICBnX29i amVjdF91bnJlZiAocHJpdi0+Y2FuY2VsbGFibGUpOworICAgcHJpdi0+Y2FuY2VsbGFibGUgPSBn X2NhbmNlbGxhYmxlX25ldyAoKTsKKyAKKy0gIGlmIChHX1VOTElLRUxZIChwcml2LT5xdWV1ZSA9 PSBOVUxMKSkKKy0gICAgeworLSAgICAgIHBob3Rvc190cmFja2VyX2NvbnRyb2xsZXJfcXVlcnlf ZXJyb3IgKHNlbGYsIHByaXYtPnF1ZXVlX2Vycm9yKTsKKy0gICAgICBnb3RvIG91dDsKKy0gICAg fQorLQorICAgcGhvdG9zX3RyYWNrZXJfcXVldWVfc2VsZWN0IChwcml2LT5xdWV1ZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpdi0+Y3VycmVudF9xdWVyeSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcHJpdi0+Y2FuY2VsbGFibGUsCitkaWZmIC0tZ2l0IGEv c3JjL3Bob3Rvcy10cmFja2VyLWV4dHJhY3QtcHJpb3JpdHkueG1sIGIvc3JjL3Bob3Rvcy10cmFj a2VyLWV4dHJhY3QtcHJpb3JpdHkueG1sCitpbmRleCA3ZTNiOWIwYy4uMmI1NjIyOTkgMTAwNjQ0 CistLS0gYS9zcmMvcGhvdG9zLXRyYWNrZXItZXh0cmFjdC1wcmlvcml0eS54bWwKKysrKyBiL3Ny Yy9waG90b3MtdHJhY2tlci1leHRyYWN0LXByaW9yaXR5LnhtbAorQEAgLTIxLDcgKzIxLDcgQEAK KyAtLT4KKyAKKyA8bm9kZSBuYW1lPSIvIiB4bWxuczpkb2M9Imh0dHA6Ly93d3cuZnJlZWRlc2t0 b3Aub3JnL2RidXMvMS4wL2RvYy5kdGQiPgorLSAgPGludGVyZmFjZSBuYW1lPSJvcmcuZnJlZWRl c2t0b3AuVHJhY2tlcjEuRXh0cmFjdC5Qcmlvcml0eSI+CisrICA8aW50ZXJmYWNlIG5hbWU9Im9y Zy5mcmVlZGVza3RvcC5UcmFja2VyMy5FeHRyYWN0LlByaW9yaXR5Ij4KKyAgICAgPG1ldGhvZCBu YW1lPSJDbGVhclJkZlR5cGVzIiAvPgorICAgICA8bWV0aG9kIG5hbWU9IlNldFJkZlR5cGVzIj4K KyAgICAgICA8YXJnIG5hbWU9InJkZl90eXBlcyIgdHlwZT0iYXMiIGRpcmVjdGlvbj0iaW4iIC8+ CitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy10cmFja2VyLWltcG9ydC1jb250cm9sbGVyLmMgYi9z cmMvcGhvdG9zLXRyYWNrZXItaW1wb3J0LWNvbnRyb2xsZXIuYworaW5kZXggMDg1YWNlM2EuLmQ3 ZWQ5YjIwIDEwMDY0NAorLS0tIGEvc3JjL3Bob3Rvcy10cmFja2VyLWltcG9ydC1jb250cm9sbGVy LmMKKysrKyBiL3NyYy9waG90b3MtdHJhY2tlci1pbXBvcnQtY29udHJvbGxlci5jCitAQCAtMjQs NyArMjQsNiBAQAorICNpbmNsdWRlICJjb25maWcuaCIKKyAKKyAjaW5jbHVkZSA8Z2lvL2dpby5o PgorLSNpbmNsdWRlIDxsaWJ0cmFja2VyLWNvbnRyb2wvdHJhY2tlci1jb250cm9sLmg+CisgCisg I2luY2x1ZGUgInBob3Rvcy1iYXNlLW1hbmFnZXIuaCIKKyAjaW5jbHVkZSAicGhvdG9zLWRlYnVn LmgiCitAQCAtMzQsNiArMzMsOCBAQAorICNpbmNsdWRlICJwaG90b3MtcXVlcnktYnVpbGRlci5o IgorICNpbmNsdWRlICJwaG90b3Mtc2VhcmNoLWNvbnRleHQuaCIKKyAjaW5jbHVkZSAicGhvdG9z LXRyYWNrZXItaW1wb3J0LWNvbnRyb2xsZXIuaCIKKysjaW5jbHVkZSAicGhvdG9zLXRyYWNrZXIt bWluZXItaW5kZXguaCIKKysjaW5jbHVkZSAicGhvdG9zLXRyYWNrZXItcXVldWUuaCIKKyAjaW5j bHVkZSAicGhvdG9zLXV0aWxzLmgiCisgCisgCitAQCAtNDUsNyArNDYsNyBAQCBzdHJ1Y3QgX1Bo b3Rvc1RyYWNrZXJJbXBvcnRDb250cm9sbGVyCisgICBQaG90b3NCYXNlTWFuYWdlciAqaXRlbV9t bmdyOworICAgUGhvdG9zQmFzZU1hbmFnZXIgKnNyY19tbmdyOworICAgUGhvdG9zT2Zmc2V0Q29u dHJvbGxlciAqb2Zmc2V0X2NudHJscjsKKy0gIFRyYWNrZXJNaW5lck1hbmFnZXIgKm1hbmFnZXI7 CisrICBUcmFja2VyTWluZXJGaWxlc0luZGV4ICptaW5lcl9jb250cm9sX3Byb3h5OworIH07Cisg CisgCitAQCAtNzYsMTIgKzc3LDEyIEBAIHN0YXRpYyB2b2lkCisgcGhvdG9zX3RyYWNrZXJfaW1w b3J0X2NvbnRyb2xsZXJfaW5kZXggKEdPYmplY3QgKnNvdXJjZV9vYmplY3QsIEdBc3luY1Jlc3Vs dCAqcmVzLCBncG9pbnRlciB1c2VyX2RhdGEpCisgeworICAgZ19hdXRvcHRyIChHRmlsZSkgZmls ZSA9IEdfRklMRSAodXNlcl9kYXRhKTsKKy0gIFRyYWNrZXJNaW5lck1hbmFnZXIgKm1hbmFnZXIg PSBUUkFDS0VSX01JTkVSX01BTkFHRVIgKHNvdXJjZV9vYmplY3QpOworKyAgVHJhY2tlck1pbmVy RmlsZXNJbmRleCAqbWluZXJfY29udHJvbF9wcm94eSA9IFRSQUNLRVJfTUlORVJfRklMRVNfSU5E RVggKHNvdXJjZV9vYmplY3QpOworIAorICAgeworICAgICBnX2F1dG9wdHIgKEdFcnJvcikgZXJy b3IgPSBOVUxMOworIAorLSAgICBpZiAoIXRyYWNrZXJfbWluZXJfbWFuYWdlcl9pbmRleF9maWxl X2Zvcl9wcm9jZXNzX2ZpbmlzaCAobWFuYWdlciwgcmVzLCAmZXJyb3IpKQorKyAgICBpZiAoIXRy YWNrZXJfbWluZXJfZmlsZXNfaW5kZXhfY2FsbF9pbmRleF9sb2NhdGlvbl9maW5pc2ggKG1pbmVy X2NvbnRyb2xfcHJveHksIHJlcywgJmVycm9yKSkKKyAgICAgICB7CisgICAgICAgICBpZiAoIWdf ZXJyb3JfbWF0Y2hlcyAoZXJyb3IsIEdfSU9fRVJST1IsIEdfSU9fRVJST1JfQ0FOQ0VMTEVEKSkK KyAgICAgICAgICAgeworQEAgLTEwMiw2ICsxMDMsOCBAQCBwaG90b3NfdHJhY2tlcl9pbXBvcnRf Y29udHJvbGxlcl9uZXh0X2ZpbGVzIChHT2JqZWN0ICpzb3VyY2Vfb2JqZWN0LCBHQXN5bmNSZXN1 bAorICAgR0ZpbGVFbnVtZXJhdG9yICplbnVtZXJhdG9yID0gR19GSUxFX0VOVU1FUkFUT1IgKHNv dXJjZV9vYmplY3QpOworICAgR0xpc3QgKmluZm9zID0gTlVMTDsKKyAgIEdMaXN0ICpsOworKyAg Y29uc3QgZ2NoYXIgKnRyYWNrZXJfcHJpb3JpdHlfZ3JhcGhzW10gPSB7IFRSQUNLRVJfUElDVFVS RVNfR1JBUEggfTsKKysgIGNvbnN0IGdjaGFyICp0cmFja2VyX2luZGV4X2xvY2F0aW9uX2ZsYWdz W10gPSB7ICJmb3ItcHJvY2VzcyIgfTsKKyAKKyAgIHsKKyAgICAgZ19hdXRvcHRyIChHRXJyb3Ip IGVycm9yID0gTlVMTDsKK0BAIC0xODcsMTEgKzE5MCwxMyBAQCBwaG90b3NfdHJhY2tlcl9pbXBv cnRfY29udHJvbGxlcl9uZXh0X2ZpbGVzIChHT2JqZWN0ICpzb3VyY2Vfb2JqZWN0LCBHQXN5bmNS ZXN1bAorICAgICAgICAgICAgICAgICAgICAgaWYgKGdfY29udGVudF90eXBlX2VxdWFscyAobWlt ZV90eXBlLCBJTVBPUlRBQkxFX01JTUVfVFlQRVNbaV0pCisgICAgICAgICAgICAgICAgICAgICAg ICAgfHwgZ19jb250ZW50X3R5cGVfaXNfYSAobWltZV90eXBlLCBJTVBPUlRBQkxFX01JTUVfVFlQ RVNbaV0pKQorICAgICAgICAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAgICAgICAgICAg ICAgdHJhY2tlcl9taW5lcl9tYW5hZ2VyX2luZGV4X2ZpbGVfZm9yX3Byb2Nlc3NfYXN5bmMgKHNl bGYtPm1hbmFnZXIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGUsCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYtPmNhbmNlbGxhYmxlLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaG90b3NfdHJhY2tl cl9pbXBvcnRfY29udHJvbGxlcl9pbmRleCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19vYmplY3Rf cmVmIChmaWxlKSk7CisrICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2tlcl9taW5lcl9maWxl c19pbmRleF9jYWxsX2luZGV4X2xvY2F0aW9uIChzZWxmLT5taW5lcl9jb250cm9sX3Byb3h5LAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdXJpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2tlcl9wcmlvcml0eV9ncmFw aHMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB0cmFja2VyX2luZGV4X2xvY2F0aW9uX2ZsYWdzLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi0+Y2FuY2VsbGFibGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaG90b3NfdHJhY2tl cl9pbXBvcnRfY29udHJvbGxlcl9pbmRleCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfb2JqZWN0X3JlZiAo ZmlsZSkpOworICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4aW5nID0gVFJVRTsKKyAgICAg ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgIH0KK0BAIC0yOTEsMjggKzI5 Niw2IEBAIHBob3Rvc190cmFja2VyX2ltcG9ydF9jb250cm9sbGVyX3NvdXJjZV9hY3RpdmVfY2hh bmdlZCAoUGhvdG9zVHJhY2tlckltcG9ydENvbnRyCisgICAgIHsKKyAgICAgICBnX3JldHVybl9p Zl9mYWlsIChnX3F1ZXVlX2lzX2VtcHR5IChzZWxmLT5wZW5kaW5nX2RpcmVjdG9yaWVzKSk7Cisg CistICAgICAgaWYgKEdfTElLRUxZIChzZWxmLT5tYW5hZ2VyICE9IE5VTEwpKQorLSAgICAgICAg eworLSAgICAgICAgICBnX2F1dG9wdHIgKEdGaWxlKSByb290ID0gTlVMTDsKKy0gICAgICAgICAg Z19hdXRvZnJlZSBnY2hhciAqdXJpID0gTlVMTDsKKy0KKy0gICAgICAgICAgcm9vdCA9IGdfbW91 bnRfZ2V0X3Jvb3QgKG1vdW50KTsKKy0gICAgICAgICAgZ19xdWV1ZV9wdXNoX3RhaWwgKHNlbGYt PnBlbmRpbmdfZGlyZWN0b3JpZXMsIGdfb2JqZWN0X3JlZiAocm9vdCkpOworLQorLSAgICAgICAg ICB1cmkgPSBnX2ZpbGVfZ2V0X3VyaSAocm9vdCk7CistICAgICAgICAgIHBob3Rvc19kZWJ1ZyAo UEhPVE9TX0RFQlVHX0lNUE9SVCwgIkVudW1lcmF0aW5nIGRldmljZSBkaXJlY3RvcnkgJXMiLCB1 cmkpOworLQorLSAgICAgICAgICBnX2ZpbGVfZW51bWVyYXRlX2NoaWxkcmVuX2FzeW5jIChyb290 LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0ZJTEVfQVRU UklCVVRFX1NUQU5EQVJEX0NPTlRFTlRfVFlQRSIsIgorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBHX0ZJTEVfQVRUUklCVVRFX1NUQU5EQVJEX05BTUUiLCIKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19GSUxFX0FUVFJJQlVU RV9TVEFOREFSRF9UWVBFLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBHX0ZJTEVfUVVFUllfSU5GT19OT0ZPTExPV19TWU1MSU5LUywKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19QUklPUklUWV9ERUZBVUxULAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLT5jYW5jZWxsYWJsZSwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGhvdG9zX3RyYWNr ZXJfaW1wb3J0X2NvbnRyb2xsZXJfZW51bWVyYXRlX2NoaWxkcmVuLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmKTsKKy0gICAgICAgIH0KKy0KKyAgICAg ICBwaG90b3NfdHJhY2tlcl9jb250cm9sbGVyX3JlZnJlc2hfZm9yX29iamVjdCAoUEhPVE9TX1RS QUNLRVJfQ09OVFJPTExFUiAoc2VsZikpOworICAgICB9CisgfQorQEAgLTM3OSw3ICszNjIsNiBA QCBwaG90b3NfdHJhY2tlcl9pbXBvcnRfY29udHJvbGxlcl9kaXNwb3NlIChHT2JqZWN0ICpvYmpl Y3QpCisgCisgICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPnNyY19tbmdyKTsKKyAgIGdfY2xlYXJf b2JqZWN0ICgmc2VsZi0+b2Zmc2V0X2NudHJscik7CistICBnX2NsZWFyX29iamVjdCAoJnNlbGYt Pm1hbmFnZXIpOworIAorICAgR19PQkpFQ1RfQ0xBU1MgKHBob3Rvc190cmFja2VyX2ltcG9ydF9j b250cm9sbGVyX3BhcmVudF9jbGFzcyktPmRpc3Bvc2UgKG9iamVjdCk7CisgfQorQEAgLTM5Nyw2 ICszNzksMzcgQEAgcGhvdG9zX3RyYWNrZXJfaW1wb3J0X2NvbnRyb2xsZXJfZmluYWxpemUgKEdP YmplY3QgKm9iamVjdCkKKyB9CisgCisgCisrc3RhdGljIFRyYWNrZXJNaW5lckZpbGVzSW5kZXgg KgorK3Bob3Rvc190cmFja2VyX2ltcG9ydF9jb250cm9sbGVyX2dldF9taW5lcl9mc19jb250cm9s X3Byb3h5IChHQ2FuY2VsbGFibGUgKmNhbmNlbGxhYmxlKQorK3sKKysgIGdfYXV0b3B0ciAoUGhv dG9zVHJhY2tlclF1ZXVlKSB0cmFja2VyX3F1ZXVlID0gTlVMTDsKKysgIGNvbnN0IGdjaGFyICpt aW5lcl9mc19jb250cm9sX2J1c25hbWU7CisrICBnX2F1dG9wdHIgKEdFcnJvcikgZXJyb3IgPSBO VUxMOworKyAgVHJhY2tlck1pbmVyRmlsZXNJbmRleCAqbWluZXJfY29udHJvbF9wcm94eTsKKysK KysgIHRyYWNrZXJfcXVldWUgPSBwaG90b3NfdHJhY2tlcl9xdWV1ZV9kdXBfc2luZ2xldG9uIChj YW5jZWxsYWJsZSwgJmVycm9yKTsKKysKKysgIGlmICghdHJhY2tlcl9xdWV1ZSkgeworKyAgICBn X3dhcm5pbmcgKCJFcnJvciBnZXR0aW5nIFRyYWNrZXIgcXVldWU6ICVzLiBJbXBvcnQgd2lsbCBu b3Qgd29yay4iLCBlcnJvci0+bWVzc2FnZSk7CisrICAgIHJldHVybiBOVUxMOworKyAgfQorKwor KyAgbWluZXJfZnNfY29udHJvbF9idXNuYW1lID0gcGhvdG9zX3RyYWNrZXJfcXVldWVfZ2V0X21p bmVyX2ZzX2NvbnRyb2xfYnVzbmFtZSAodHJhY2tlcl9xdWV1ZSk7CisrICBtaW5lcl9jb250cm9s X3Byb3h5ID0gdHJhY2tlcl9taW5lcl9maWxlc19pbmRleF9wcm94eV9uZXdfZm9yX2J1c19zeW5j IChHX0JVU19UWVBFX1NFU1NJT04sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0RCVVNfUFJPWFlfRkxB R1NfTk9ORSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbmVyX2ZzX2NvbnRyb2xfYnVzbmFtZSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICIvb3JnL2ZyZWVkZXNrdG9wL1RyYWNrZXIzL01pbmVyL0ZpbGVzL0Nv bnRyb2wiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZlcnJv cik7CisrICBpZiAoIW1pbmVyX2NvbnRyb2xfcHJveHkpIHsKKysgICAgZ193YXJuaW5nICgiRXJy b3IgZ2V0dGluZyBUcmFja2VyIE1pbmVyIEZTIGNvbnRyb2wgcHJveHk6ICVzLiBJbXBvcnQgd2ls bCBub3Qgd29yayIsIGVycm9yLT5tZXNzYWdlKTsKKysgICAgcmV0dXJuIE5VTEw7CisrICB9Cisr CisrICByZXR1cm4gbWluZXJfY29udHJvbF9wcm94eTsKKyt9CisrCisrCisgc3RhdGljIHZvaWQK KyBwaG90b3NfdHJhY2tlcl9pbXBvcnRfY29udHJvbGxlcl9pbml0IChQaG90b3NUcmFja2VySW1w b3J0Q29udHJvbGxlciAqc2VsZikKKyB7CitAQCAtNDIxLDEzICs0MzQsNyBAQCBwaG90b3NfdHJh Y2tlcl9pbXBvcnRfY29udHJvbGxlcl9pbml0IChQaG90b3NUcmFja2VySW1wb3J0Q29udHJvbGxl ciAqc2VsZikKKyAKKyAgIHNlbGYtPm9mZnNldF9jbnRybHIgPSBwaG90b3Nfb2Zmc2V0X2ltcG9y dF9jb250cm9sbGVyX2R1cF9zaW5nbGV0b24gKCk7CisgCistICB7CistICAgIGdfYXV0b3B0ciAo R0Vycm9yKSBlcnJvciA9IE5VTEw7CistCistICAgIHNlbGYtPm1hbmFnZXIgPSB0cmFja2VyX21p bmVyX21hbmFnZXJfbmV3X2Z1bGwgKEZBTFNFLCAmZXJyb3IpOworLSAgICBpZiAoZXJyb3IgIT0g TlVMTCkKKy0gICAgICBnX3dhcm5pbmcgKCJVbmFibGUgdG8gY3JlYXRlIGEgVHJhY2tlck1pbmVy TWFuYWdlciwgaW5kZXhpbmcgYXR0YWNoZWQgZGV2aWNlcyB3b24ndCB3b3JrOiAlcyIsIGVycm9y LT5tZXNzYWdlKTsKKy0gIH0KKysgIHNlbGYtPm1pbmVyX2NvbnRyb2xfcHJveHkgPSBwaG90b3Nf dHJhY2tlcl9pbXBvcnRfY29udHJvbGxlcl9nZXRfbWluZXJfZnNfY29udHJvbF9wcm94eSAoTlVM TCk7CisgfQorIAorIAorZGlmZiAtLWdpdCBhL3NyYy9waG90b3MtdHJhY2tlci1xdWV1ZS5jIGIv c3JjL3Bob3Rvcy10cmFja2VyLXF1ZXVlLmMKK2luZGV4IDZhYzgyOWNkLi5hNWY0YzkxYSAxMDA2 NDQKKy0tLSBhL3NyYy9waG90b3MtdHJhY2tlci1xdWV1ZS5jCisrKysgYi9zcmMvcGhvdG9zLXRy YWNrZXItcXVldWUuYworQEAgLTM3LDkgKzM3LDIwIEBAIHN0cnVjdCBfUGhvdG9zVHJhY2tlclF1 ZXVlCisgICBHT2JqZWN0IHBhcmVudF9pbnN0YW5jZTsKKyAgIEdFcnJvciAqaW5pdGlhbGl6YXRp b25fZXJyb3I7CisgICBHUXVldWUgKnF1ZXVlOworLSAgVHJhY2tlclNwYXJxbENvbm5lY3Rpb24g KmNvbm5lY3Rpb247CisrICBUcmFja2VyU3BhcnFsQ29ubmVjdGlvbiAqbG9jYWxfY29ubmVjdGlv bjsKKysgIFRyYWNrZXJTcGFycWxDb25uZWN0aW9uICptaW5lcl9mc19jb25uZWN0aW9uOworICAg Z2Jvb2xlYW4gaXNfaW5pdGlhbGl6ZWQ7CisgICBnYm9vbGVhbiBydW5uaW5nOworKyAgZ2Jvb2xl YW4gbWluZXJfZnNfcmVhZHk7CisrICBjb25zdCBnY2hhciAqbWluZXJfZnNfYnVzbmFtZTsKKysg IGNvbnN0IGdjaGFyICptaW5lcl9mc19jb250cm9sX2J1c25hbWU7CisrfTsKKysKKytlbnVtCisr eworKyAgUFJPUF8wLAorKyAgUFJPUF9NSU5FUl9GU19SRUFEWSwKKysgIFBST1BfTUlORVJfRlNf QlVTTkFNRQorIH07CisgCisgc3RhdGljIHZvaWQgcGhvdG9zX3RyYWNrZXJfcXVldWVfaW5pdGFi bGVfaWZhY2VfaW5pdCAoR0luaXRhYmxlSWZhY2UgKmlmYWNlKTsKK0BAIC05MCw3ICsxMDEsNiBA QCBwaG90b3NfdHJhY2tlcl9xdWV1ZV9kYXRhX2ZyZWUgKFBob3Rvc1RyYWNrZXJRdWV1ZURhdGEg KmRhdGEpCisgCisgR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFBob3Rvc1RyYWNrZXJR dWV1ZURhdGEsIHBob3Rvc190cmFja2VyX3F1ZXVlX2RhdGFfZnJlZSk7CisgCistCisgc3RhdGlj IFBob3Rvc1RyYWNrZXJRdWV1ZURhdGEgKgorIHBob3Rvc190cmFja2VyX3F1ZXVlX2RhdGFfbmV3 IChQaG90b3NRdWVyeSAqcXVlcnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBo b3Rvc1RyYWNrZXJRdWVyeVR5cGUgcXVlcnlfdHlwZSwKK0BAIC0xNzksNyArMTg5LDcgQEAgcGhv dG9zX3RyYWNrZXJfcXVldWVfY2hlY2sgKFBob3Rvc1RyYWNrZXJRdWV1ZSAqc2VsZikKKyAgIHN3 aXRjaCAoZGF0YS0+cXVlcnlfdHlwZSkKKyAgICAgeworICAgICBjYXNlIFBIT1RPU19UUkFDS0VS X1FVRVJZX1NFTEVDVDoKKy0gICAgICB0cmFja2VyX3NwYXJxbF9jb25uZWN0aW9uX3F1ZXJ5X2Fz eW5jIChzZWxmLT5jb25uZWN0aW9uLAorKyAgICAgIHRyYWNrZXJfc3BhcnFsX2Nvbm5lY3Rpb25f cXVlcnlfYXN5bmMgKHNlbGYtPmxvY2FsX2Nvbm5lY3Rpb24sCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BhcnFsLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtPmNhbmNlbGxhYmxlLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBob3Rvc190cmFja2VyX3F1ZXVlX2Nv bGxlY3RvciwKK0BAIC0xODcsMTggKzE5NywxNiBAQCBwaG90b3NfdHJhY2tlcl9xdWV1ZV9jaGVj ayAoUGhvdG9zVHJhY2tlclF1ZXVlICpzZWxmKQorICAgICAgIGJyZWFrOworIAorICAgICBjYXNl IFBIT1RPU19UUkFDS0VSX1FVRVJZX1VQREFURToKKy0gICAgICB0cmFja2VyX3NwYXJxbF9jb25u ZWN0aW9uX3VwZGF0ZV9hc3luYyAoc2VsZi0+Y29ubmVjdGlvbiwKKysgICAgICB0cmFja2VyX3Nw YXJxbF9jb25uZWN0aW9uX3VwZGF0ZV9hc3luYyAoc2VsZi0+bG9jYWxfY29ubmVjdGlvbiwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BhcnFsLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX1BSSU9SSVRZX0RF RkFVTFQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRh dGEtPmNhbmNlbGxhYmxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwaG90b3NfdHJhY2tlcl9xdWV1ZV9jb2xsZWN0b3IsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfb2JqZWN0X3JlZiAoc2VsZikpOworICAg ICAgIGJyZWFrOworIAorICAgICBjYXNlIFBIT1RPU19UUkFDS0VSX1FVRVJZX1VQREFURV9CTEFO SzoKKy0gICAgICB0cmFja2VyX3NwYXJxbF9jb25uZWN0aW9uX3VwZGF0ZV9ibGFua19hc3luYyAo c2VsZi0+Y29ubmVjdGlvbiwKKysgICAgICB0cmFja2VyX3NwYXJxbF9jb25uZWN0aW9uX3VwZGF0 ZV9ibGFua19hc3luYyAoc2VsZi0+bG9jYWxfY29ubmVjdGlvbiwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BhcnFsLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX1BSSU9SSVRZX0RFRkFV TFQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRhdGEtPmNhbmNlbGxhYmxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBwaG90b3NfdHJhY2tlcl9xdWV1ZV9jb2xsZWN0b3IsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfb2JqZWN0X3Jl ZiAoc2VsZikpOworQEAgLTIxMSw2ICsyMTksNTMgQEAgcGhvdG9zX3RyYWNrZXJfcXVldWVfY2hl Y2sgKFBob3Rvc1RyYWNrZXJRdWV1ZSAqc2VsZikKKyB9CisgCisgCisrc3RhdGljIGdib29sZWFu CisrcGhvdG9zX3RyYWNrZXJfcXVldWVfc3RhcnRfc2Vzc2lvbl9taW5lcl9mcyAoUGhvdG9zVHJh Y2tlclF1ZXVlICpzZWxmLCBHRXJyb3IgKiplcnJvcikKKyt7CisrICBjb25zdCBnY2hhciAqYnVz bmFtZSA9ICJvcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMuTWluZXIuRmlsZXMiOworKyAgY29uc3Qg Z2NoYXIgKmNvbnRyb2xfYnVzbmFtZSA9ICJvcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMuTWluZXIu RmlsZXMuQ29udHJvbCI7CisrCisrICBwaG90b3NfZGVidWcgKFBIT1RPU19ERUJVR19UUkFDS0VS LCAiQ29ubmVjdGluZyB0byAlcyIsIGJ1c25hbWUpOworKyAgc2VsZi0+bWluZXJfZnNfY29ubmVj dGlvbiA9IHRyYWNrZXJfc3BhcnFsX2Nvbm5lY3Rpb25fYnVzX25ldyAoYnVzbmFtZSwgTlVMTCwg TlVMTCwgZXJyb3IpOworKyAgaWYgKCplcnJvcikKKysgICAgeworKyAgICAgIGdfd2FybmluZyAo IlVuYWJsZSB0byBjcmVhdGUgY29ubmVjdGlvbiBmb3Igc2Vzc2lvbi13aWRlIFRyYWNrZXIgaW5k ZXhlciBhdCAlczogJXMiLCBidXNuYW1lLCAoKmVycm9yKS0+bWVzc2FnZSk7CisrICAgICAgcmV0 dXJuIEZBTFNFOworKyAgICB9CisrCisrICBzZWxmLT5taW5lcl9mc19idXNuYW1lID0gYnVzbmFt ZTsKKysgIHNlbGYtPm1pbmVyX2ZzX2NvbnRyb2xfYnVzbmFtZSA9IGNvbnRyb2xfYnVzbmFtZTsK KysKKysgIHJldHVybiBUUlVFOworK30KKysKKysKKytzdGF0aWMgZ2Jvb2xlYW4KKytwaG90b3Nf dHJhY2tlcl9xdWV1ZV9zdGFydF9sb2NhbF9taW5lcl9mcyAoUGhvdG9zVHJhY2tlclF1ZXVlICpz ZWxmLCBHRXJyb3IgKiplcnJvcikKKyt7CisrICBjb25zdCBnY2hhciAqYnVzbmFtZSA9ICJvcmcu Z25vbWUuUGhvdG9zLlRyYWNrZXIzLk1pbmVyLkZpbGVzIjsKKysgIGNvbnN0IGdjaGFyICpjb250 cm9sX2J1c25hbWUgPSAib3JnLmdub21lLlBob3Rvcy5UcmFja2VyMy5NaW5lci5GaWxlcy5Db250 cm9sIjsKKysKKysgIHBob3Rvc19kZWJ1ZyAoUEhPVE9TX0RFQlVHX1RSQUNLRVIsICJDb25uZWN0 aW5nIHRvICVzIiwgYnVzbmFtZSk7CisrICBzZWxmLT5taW5lcl9mc19jb25uZWN0aW9uID0gdHJh Y2tlcl9zcGFycWxfY29ubmVjdGlvbl9idXNfbmV3IChidXNuYW1lLCBOVUxMLCBOVUxMLCBlcnJv cik7CisrICBpZiAoKmVycm9yKQorKyAgICB7CisrICAgICAgZ19jcml0aWNhbCAoIkNvdWxkIG5v dCBzdGFydCBsb2NhbCBUcmFja2VyIGluZGV4ZXIgYXQgJXM6ICVzIiwgYnVzbmFtZSwgKCplcnJv ciktPm1lc3NhZ2UpOworKyAgICAgIHJldHVybiBGQUxTRTsKKysgICAgfQorKworKyAgc2VsZi0+ bWluZXJfZnNfYnVzbmFtZSA9IGJ1c25hbWU7CisrICBzZWxmLT5taW5lcl9mc19jb250cm9sX2J1 c25hbWUgPSBjb250cm9sX2J1c25hbWU7CisrCisrICByZXR1cm4gVFJVRTsKKyt9CisrCisrc3Rh dGljIGdib29sZWFuCisraW5zaWRlX2ZsYXRwYWsgKHZvaWQpCisreworKyAgICByZXR1cm4gZ19m aWxlX3Rlc3QgKCIvLmZsYXRwYWstaW5mbyIsIEdfRklMRV9URVNUX0VYSVNUUyk7CisrfQorKwor IHN0YXRpYyBHT2JqZWN0ICoKKyBwaG90b3NfdHJhY2tlcl9xdWV1ZV9jb25zdHJ1Y3RvciAoR1R5 cGUgdHlwZSwgZ3VpbnQgbl9jb25zdHJ1Y3RfcGFyYW1zLCBHT2JqZWN0Q29uc3RydWN0UGFyYW0g KmNvbnN0cnVjdF9wYXJhbXMpCisgeworQEAgLTIzNCw3ICsyODksOCBAQCBwaG90b3NfdHJhY2tl cl9xdWV1ZV9kaXNwb3NlIChHT2JqZWN0ICpvYmplY3QpCisgeworICAgUGhvdG9zVHJhY2tlclF1 ZXVlICpzZWxmID0gUEhPVE9TX1RSQUNLRVJfUVVFVUUgKG9iamVjdCk7CisgCistICBnX2NsZWFy X29iamVjdCAoJnNlbGYtPmNvbm5lY3Rpb24pOworKyAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5s b2NhbF9jb25uZWN0aW9uKTsKKysgIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+bWluZXJfZnNfY29u bmVjdGlvbik7CisgCisgICBHX09CSkVDVF9DTEFTUyAocGhvdG9zX3RyYWNrZXJfcXVldWVfcGFy ZW50X2NsYXNzKS0+ZGlzcG9zZSAob2JqZWN0KTsKKyB9CitAQCAtMjU4LDYgKzMxNCwzOCBAQCBw aG90b3NfdHJhY2tlcl9xdWV1ZV9pbml0IChQaG90b3NUcmFja2VyUXVldWUgKnNlbGYpCisgICBz ZWxmLT5xdWV1ZSA9IGdfcXVldWVfbmV3ICgpOworIH0KKyAKKytzdGF0aWMgdm9pZAorK3Bob3Rv c190cmFja2VyX3F1ZXVlX2dldF9wcm9wZXJ0eSAoR09iamVjdCAqb2JqZWN0LCBndWludCBwcm9w X2lkLCBHVmFsdWUgKnZhbHVlLCBHUGFyYW1TcGVjICpwc3BlYykKKyt7CisrICBQaG90b3NUcmFj a2VyUXVldWUgKnNlbGYgPSBQSE9UT1NfVFJBQ0tFUl9RVUVVRSAob2JqZWN0KTsKKysKKysgIHN3 aXRjaCAocHJvcF9pZCkKKysgICAgeworKyAgICBjYXNlIFBST1BfTUlORVJfRlNfUkVBRFk6Cisr ICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbiAodmFsdWUsIHNlbGYtPm1pbmVyX2ZzX3JlYWR5KTsK KysgICAgICBicmVhazsKKysKKysgICAgY2FzZSBQUk9QX01JTkVSX0ZTX0JVU05BTUU6CisrICAg ICAgZ192YWx1ZV9zZXRfc3RyaW5nICh2YWx1ZSwgc2VsZi0+bWluZXJfZnNfYnVzbmFtZSk7Cisr ICAgICAgYnJlYWs7CisrCisrICAgIGRlZmF1bHQ6CisrICAgICAgR19PQkpFQ1RfV0FSTl9JTlZB TElEX1BST1BFUlRZX0lEIChvYmplY3QsIHByb3BfaWQsIHBzcGVjKTsKKysgICAgICBicmVhazsK KysgICAgfQorK30KKysKKytzdGF0aWMgdm9pZAorK3Bob3Rvc190cmFja2VyX3F1ZXVlX3NldF9w cm9wZXJ0eSAoR09iamVjdCAqb2JqZWN0LCBndWludCBwcm9wX2lkLCBjb25zdCBHVmFsdWUgKnZh bHVlLCBHUGFyYW1TcGVjICpwc3BlYykKKyt7CisrICBzd2l0Y2ggKHByb3BfaWQpCisrICAgIHsK KysgICAgLyogQWxsIHByb3BlcnRpZXMgYXJlIHJlYWQgb25seSAqLworKyAgICBkZWZhdWx0Ogor KyAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRCAob2JqZWN0LCBwcm9wX2lk LCBwc3BlYyk7CisrICAgICAgYnJlYWs7CisrICAgIH0KKyt9CisgCisgc3RhdGljIHZvaWQKKyBw aG90b3NfdHJhY2tlcl9xdWV1ZV9jbGFzc19pbml0IChQaG90b3NUcmFja2VyUXVldWVDbGFzcyAq Y2xhc3MpCitAQCAtMjY3LDYgKzM1NSwyNCBAQCBwaG90b3NfdHJhY2tlcl9xdWV1ZV9jbGFzc19p bml0IChQaG90b3NUcmFja2VyUXVldWVDbGFzcyAqY2xhc3MpCisgICBvYmplY3RfY2xhc3MtPmNv bnN0cnVjdG9yID0gcGhvdG9zX3RyYWNrZXJfcXVldWVfY29uc3RydWN0b3I7CisgICBvYmplY3Rf Y2xhc3MtPmRpc3Bvc2UgPSBwaG90b3NfdHJhY2tlcl9xdWV1ZV9kaXNwb3NlOworICAgb2JqZWN0 X2NsYXNzLT5maW5hbGl6ZSA9IHBob3Rvc190cmFja2VyX3F1ZXVlX2ZpbmFsaXplOworKyAgb2Jq ZWN0X2NsYXNzLT5nZXRfcHJvcGVydHkgPSBwaG90b3NfdHJhY2tlcl9xdWV1ZV9nZXRfcHJvcGVy dHk7CisrICBvYmplY3RfY2xhc3MtPnNldF9wcm9wZXJ0eSA9IHBob3Rvc190cmFja2VyX3F1ZXVl X3NldF9wcm9wZXJ0eTsKKysKKysgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkgKG9i amVjdF9jbGFzcywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfTUlO RVJfRlNfUkVBRFksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFt X3NwZWNfYm9vbGVhbiAoInRyYWNrZXItbWluZXItZnMtcmVhZHkiLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUcmFja2VyIE1pbmVy IEZTIHJlYWR5IiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiVFJVRSBpZiBpdCBpcyBwb3NzaWJsZSB0byBxdWVyeSBUcmFja2VyIGlu ZGV4ZXIiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEZBTFNFLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEdfUEFSQU1fUkVBREFCTEUpKTsKKysKKysgIGdfb2JqZWN0X2Ns YXNzX2luc3RhbGxfcHJvcGVydHkgKG9iamVjdF9jbGFzcywKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFBST1BfTUlORVJfRlNfQlVTTkFNRSwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcgKCJ0cmFja2VyLW1pbmVyLWZz LWJ1c25hbWUiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIlRyYWNrZXIgTWluZXIgRlMgYnVzbmFtZSIsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRC1CdXMgbmFtZSBvZiB0 aGUgVHJhY2tlciBpbmRleGVyIGRhZW1vbiIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfUEFSQU1fUkVBREFCTEUpKTsKKyB9 CisgCisgCitAQCAtMjc0LDEzICszODAsMTYgQEAgc3RhdGljIGdib29sZWFuCisgcGhvdG9zX3Ry YWNrZXJfcXVldWVfaW5pdGFibGVfaW5pdCAoR0luaXRhYmxlICppbml0YWJsZSwgR0NhbmNlbGxh YmxlICpjYW5jZWxsYWJsZSwgR0Vycm9yICoqZXJyb3IpCisgeworICAgUGhvdG9zVHJhY2tlclF1 ZXVlICpzZWxmID0gUEhPVE9TX1RSQUNLRVJfUVVFVUUgKGluaXRhYmxlKTsKKysgIFRyYWNrZXJT cGFycWxDb25uZWN0aW9uRmxhZ3MgdHJhY2tlcl9mbGFnczsKKysgIGdfYXV0b3B0ciAoR0ZpbGUp IHN0b3JlID0gTlVMTDsKKyAgIGdib29sZWFuIHJldF92YWwgPSBGQUxTRTsKKysgIGdib29sZWFu IG1pbmVyX29rID0gRkFMU0U7CisgCisgICBHX0xPQ0sgKGluaXRfbG9jayk7CisgCisgICBpZiAo c2VsZi0+aXNfaW5pdGlhbGl6ZWQpCisgICAgIHsKKy0gICAgICBpZiAoc2VsZi0+Y29ubmVjdGlv biAhPSBOVUxMKQorKyAgICAgIGlmIChzZWxmLT5sb2NhbF9jb25uZWN0aW9uICE9IE5VTEwgJiYg c2VsZi0+bWluZXJfZnNfY29ubmVjdGlvbiAhPSBOVUxMKQorICAgICAgICAgcmV0X3ZhbCA9IFRS VUU7CisgICAgICAgZWxzZQorICAgICAgICAgZ19hc3NlcnRfbm9ubnVsbCAoc2VsZi0+aW5pdGlh bGl6YXRpb25fZXJyb3IpOworQEAgLTI5MCwxMSArMzk5LDQ5IEBAIHBob3Rvc190cmFja2VyX3F1 ZXVlX2luaXRhYmxlX2luaXQgKEdJbml0YWJsZSAqaW5pdGFibGUsIEdDYW5jZWxsYWJsZSAqY2Fu Y2VsbGFiCisgCisgICBnX2Fzc2VydF9ub19lcnJvciAoc2VsZi0+aW5pdGlhbGl6YXRpb25fZXJy b3IpOworIAorLSAgc2VsZi0+Y29ubmVjdGlvbiA9IHRyYWNrZXJfc3BhcnFsX2Nvbm5lY3Rpb25f Z2V0IChjYW5jZWxsYWJsZSwgJnNlbGYtPmluaXRpYWxpemF0aW9uX2Vycm9yKTsKKysgIC8qIENv bm5lY3QgdG8gdGhlIGxvY2FsIGRhdGFiYXNlIHdoaWNoIHN0b3JlcyB1c2VyIGRhdGEuCisrICAg KgorKyAgICogU2FtZSBmbGFncyB0aGF0IHRyYWNrZXItbWluZXItZnMgdXNlcyBieSBkZWZhdWx0 LiBTZWU6CisrICAgKiBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvdHJhY2tlci1taW5l cnMvLS9ibG9iL21hc3Rlci9zcmMvbWluZXJzL2ZzL3RyYWNrZXItbWFpbi5jI0w3MzUgYW5kCisr ICAgKiBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvdHJhY2tlci1taW5lcnMvLS9ibG9i L21hc3Rlci9kYXRhL29yZy5mcmVlZGVza3RvcC5UcmFja2VyLkZUUy5nc2NoZW1hLnhtbCAqLwor KyAgdHJhY2tlcl9mbGFncyA9IFRSQUNLRVJfU1BBUlFMX0NPTk5FQ1RJT05fRkxBR1NfRlRTX0VO QUJMRV9VTkFDQ0VOVCB8CisrICAgICAgICAgICAgICAgICAgVFJBQ0tFUl9TUEFSUUxfQ09OTkVD VElPTl9GTEFHU19GVFNfRU5BQkxFX1NUT1BfV09SRFMgfAorKyAgICAgICAgICAgICAgICAgIFRS QUNLRVJfU1BBUlFMX0NPTk5FQ1RJT05fRkxBR1NfRlRTX0lHTk9SRV9OVU1CRVJTOworKworKyAg c3RvcmUgPSBnX2ZpbGVfbmV3X2J1aWxkX2ZpbGVuYW1lIChnX2dldF91c2VyX2RhdGFfZGlyICgp LCAiZ25vbWUtcGhvdG9zIiwgTlVMTCk7CisrCisrICBwaG90b3NfZGVidWcgKFBIT1RPU19ERUJV R19UUkFDS0VSLCAiT3BlbmluZyBsb2NhbCBkYXRhYmFzZSBhdCAlcyIsIGdfZmlsZV9wZWVrX3Bh dGggKHN0b3JlKSk7CisrICBzZWxmLT5sb2NhbF9jb25uZWN0aW9uID0gdHJhY2tlcl9zcGFycWxf Y29ubmVjdGlvbl9uZXcgKHRyYWNrZXJfZmxhZ3MsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlLAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFja2VyX3NwYXJx bF9nZXRfb250b2xvZ3lfbmVwb211ayAoKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FuY2VsbGFibGUsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzZWxmLT5pbml0 aWFsaXphdGlvbl9lcnJvcik7CisrCisgICBpZiAoR19VTkxJS0VMWSAoc2VsZi0+aW5pdGlhbGl6 YXRpb25fZXJyb3IgIT0gTlVMTCkpCisgICAgIGdvdG8gb3V0OworIAorLSAgcmV0X3ZhbCA9IFRS VUU7CisrICAvKiBDb25uZWN0IHRvIGZpbGVzeXN0ZW0gaW5kZXhlci4gKi8KKysgIG1pbmVyX29r ID0gcGhvdG9zX3RyYWNrZXJfcXVldWVfc3RhcnRfc2Vzc2lvbl9taW5lcl9mcyAoc2VsZiwgJnNl bGYtPmluaXRpYWxpemF0aW9uX2Vycm9yKTsKKysKKysgIGlmICghbWluZXJfb2sgJiYgaW5zaWRl X2ZsYXRwYWsgKCkpCisrICAgIHsKKysgICAgICBnX2NsZWFyX2Vycm9yICgmc2VsZi0+aW5pdGlh bGl6YXRpb25fZXJyb3IpOworKyAgICAgIG1pbmVyX29rID0gcGhvdG9zX3RyYWNrZXJfcXVldWVf c3RhcnRfbG9jYWxfbWluZXJfZnMgKHNlbGYsICZzZWxmLT5pbml0aWFsaXphdGlvbl9lcnJvcik7 CisrICAgIH0KKysKKysgIGlmIChtaW5lcl9vaykKKysgICAgeworKyAgICAgIHBob3Rvc19kZWJ1 ZyAoUEhPVE9TX0RFQlVHX1RSQUNLRVIsICJVc2luZyAlcyBhcyB0cmFja2VyLW1pbmVyLWZzIiwg c2VsZi0+bWluZXJfZnNfYnVzbmFtZSk7CisrICAgICAgcmV0X3ZhbCA9IFRSVUU7CisrICAgIH0K KysgIGVsc2UKKysgICAgeworKyAgICAgIHBob3Rvc19kZWJ1ZyAoUEhPVE9TX0RFQlVHX1RSQUNL RVIsICJJbml0aWFsaXphdGlvbiBmYWlsZWQgZHVlIHRvICVzIiwgc2VsZi0+aW5pdGlhbGl6YXRp b25fZXJyb3ItPm1lc3NhZ2UpOworKyAgICAgIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+bWluZXJf ZnNfY29ubmVjdGlvbik7CisrICAgICAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5sb2NhbF9jb25u ZWN0aW9uKTsKKysgICAgICByZXRfdmFsID0gRkFMU0U7CisrICAgIH0KKysKKyAKKyAgb3V0Ogor ICAgc2VsZi0+aXNfaW5pdGlhbGl6ZWQgPSBUUlVFOworQEAgLTMxOSwxMCArNDY2LDQ0IEBAIHBo b3Rvc190cmFja2VyX3F1ZXVlX2luaXRhYmxlX2lmYWNlX2luaXQgKEdJbml0YWJsZUlmYWNlICpp ZmFjZSkKKyBQaG90b3NUcmFja2VyUXVldWUgKgorIHBob3Rvc190cmFja2VyX3F1ZXVlX2R1cF9z aW5nbGV0b24gKEdDYW5jZWxsYWJsZSAqY2FuY2VsbGFibGUsIEdFcnJvciAqKmVycm9yKQorIHsK KysgIEdPYmplY3QgKnNpbmdsZXRvbjsKKysKKyAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChjYW5j ZWxsYWJsZSA9PSBOVUxMIHx8IEdfSVNfQ0FOQ0VMTEFCTEUgKGNhbmNlbGxhYmxlKSwgTlVMTCk7 CisgICBnX3JldHVybl92YWxfaWZfZmFpbCAoZXJyb3IgPT0gTlVMTCB8fCAqZXJyb3IgPT0gTlVM TCwgTlVMTCk7CisgCistICByZXR1cm4gZ19pbml0YWJsZV9uZXcgKFBIT1RPU19UWVBFX1RSQUNL RVJfUVVFVUUsIGNhbmNlbGxhYmxlLCBlcnJvciwgTlVMTCk7CisrICBzaW5nbGV0b24gPSBnX29i amVjdF9uZXcgKFBIT1RPU19UWVBFX1RSQUNLRVJfUVVFVUUsIE5VTEwpOworKworKyAgaWYgKGdf aW5pdGFibGVfaW5pdCAoR19JTklUQUJMRSAoc2luZ2xldG9uKSwgY2FuY2VsbGFibGUsIGVycm9y KSkKKysgICAgICByZXR1cm4gUEhPVE9TX1RSQUNLRVJfUVVFVUUgKHNpbmdsZXRvbik7CisrCisr ICAvKiBPbiBlcnJvciB3ZSBkZWxpYmVyYXRlbHkgZG9uJ3QgdW5yZWYgdGhlIG9iamVjdCBzbyB0 aGF0IHdlIHdvbid0IHRyeQorKyAgICogYW5kIHJlLWluaXRpYWxpemUgVHJhY2tlciB3aGVuIGNh bGxlZCBhZ2Fpbi4KKysgICAqLworKyAgcmV0dXJuIE5VTEw7CisrfQorKworKworK2NvbnN0IGdj aGFyICoKKytwaG90b3NfdHJhY2tlcl9xdWV1ZV9nZXRfbWluZXJfZnNfYnVzbmFtZSAoUGhvdG9z VHJhY2tlclF1ZXVlICpzZWxmKQorK3sKKysgIHJldHVybiBzZWxmLT5taW5lcl9mc19idXNuYW1l OworK30KKysKKysKKytjb25zdCBnY2hhciAqCisrcGhvdG9zX3RyYWNrZXJfcXVldWVfZ2V0X21p bmVyX2ZzX2NvbnRyb2xfYnVzbmFtZSAoUGhvdG9zVHJhY2tlclF1ZXVlICpzZWxmKQorK3sKKysg IHJldHVybiBzZWxmLT5taW5lcl9mc19jb250cm9sX2J1c25hbWU7CisrfQorKworKworK1RyYWNr ZXJOb3RpZmllciAqCisrcGhvdG9zX3RyYWNrZXJfcXVldWVfZ2V0X25vdGlmaWVyIChQaG90b3NU cmFja2VyUXVldWUgKnNlbGYpCisreworKyAgLyogV2Ugd2FudCBub3RpZmljYXRpb25zIG9uIGZp bGVzeXN0ZW0gY2hhbmdlcywgd2UgZG9uJ3QgbmVlZCB0aGVtIGZvciB0aGUKKysgICAqIGxvY2Fs IGRhdGFiYXNlIHdoaWNoIHdlIG1hbmFnZSBvdXJzZWx2ZXMuCisrICAgKi8KKysgIHJldHVybiB0 cmFja2VyX3NwYXJxbF9jb25uZWN0aW9uX2NyZWF0ZV9ub3RpZmllciAoc2VsZi0+bWluZXJfZnNf Y29ubmVjdGlvbik7CisgfQorIAorIAorQEAgLTM1MSw2ICs1MzIsNyBAQCBwaG90b3NfdHJhY2tl cl9xdWV1ZV9zZWxlY3QgKFBob3Rvc1RyYWNrZXJRdWV1ZSAqc2VsZiwKKyB9CisgCisgCisrCisg dm9pZAorIHBob3Rvc190cmFja2VyX3F1ZXVlX3VwZGF0ZSAoUGhvdG9zVHJhY2tlclF1ZXVlICpz ZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGhvdG9zUXVlcnkgKnF1ZXJ5LAor ZGlmZiAtLWdpdCBhL3NyYy9waG90b3MtdHJhY2tlci1xdWV1ZS5oIGIvc3JjL3Bob3Rvcy10cmFj a2VyLXF1ZXVlLmgKK2luZGV4IDkzZDk3MzA2Li42ZTMxZWNmNiAxMDA2NDQKKy0tLSBhL3NyYy9w aG90b3MtdHJhY2tlci1xdWV1ZS5oCisrKysgYi9zcmMvcGhvdG9zLXRyYWNrZXItcXVldWUuaAor QEAgLTI0LDE2ICsyNCwyMyBAQAorICNkZWZpbmUgUEhPVE9TX1RSQUNLRVJfUVVFVUVfSAorIAor ICNpbmNsdWRlIDxnaW8vZ2lvLmg+CisrI2luY2x1ZGUgPGxpYnRyYWNrZXItc3BhcnFsL3RyYWNr ZXItc3BhcnFsLmg+CisgCisgI2luY2x1ZGUgInBob3Rvcy1xdWVyeS5oIgorIAorIEdfQkVHSU5f REVDTFMKKyAKKysjZGVmaW5lIFRSQUNLRVJfUElDVFVSRVNfR1JBUEggImh0dHA6Ly90cmFja2Vy LmFwaS5nbm9tZS5vcmcvb250b2xvZ3kvdjMvdHJhY2tlciNQaWN0dXJlcyIKKysKKyAjZGVmaW5l IFBIT1RPU19UWVBFX1RSQUNLRVJfUVVFVUUgKHBob3Rvc190cmFja2VyX3F1ZXVlX2dldF90eXBl ICgpKQorIEdfREVDTEFSRV9GSU5BTF9UWVBFIChQaG90b3NUcmFja2VyUXVldWUsIHBob3Rvc190 cmFja2VyX3F1ZXVlLCBQSE9UT1MsIFRSQUNLRVJfUVVFVUUsIEdPYmplY3QpOworIAorIFBob3Rv c1RyYWNrZXJRdWV1ZSAgICAqcGhvdG9zX3RyYWNrZXJfcXVldWVfZHVwX3NpbmdsZXRvbiAgICAg ICAgICAoR0NhbmNlbGxhYmxlICpjYW5jZWxsYWJsZSwgR0Vycm9yICoqZXJyb3IpOworIAorK2Nv bnN0IGdjaGFyICogICAgICAgICAgcGhvdG9zX3RyYWNrZXJfcXVldWVfZ2V0X21pbmVyX2ZzX2J1 c25hbWUgICAgICAgICAoUGhvdG9zVHJhY2tlclF1ZXVlICpzZWxmKTsKKytjb25zdCBnY2hhciAq ICAgICAgICAgIHBob3Rvc190cmFja2VyX3F1ZXVlX2dldF9taW5lcl9mc19jb250cm9sX2J1c25h bWUgKFBob3Rvc1RyYWNrZXJRdWV1ZSAqc2VsZik7CisrVHJhY2tlck5vdGlmaWVyICogICAgICBw aG90b3NfdHJhY2tlcl9xdWV1ZV9nZXRfbm90aWZpZXIgICAgICAgICAgICAgICAgIChQaG90b3NU cmFja2VyUXVldWUgKnNlbGYpOworKworIHZvaWQgICAgICAgICAgICAgICAgICAgcGhvdG9zX3Ry YWNrZXJfcXVldWVfc2VsZWN0ICAgICAgICAgICAgICAgICAoUGhvdG9zVHJhY2tlclF1ZXVlICpz ZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUGhvdG9zUXVlcnkgKnF1ZXJ5LAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NhbmNl bGxhYmxlICpjYW5jZWxsYWJsZSwKK2RpZmYgLS1naXQgYS9zcmMvcGhvdG9zLXRyYWNrZXItcmVz b3VyY2VzLnhtbCBiL3NyYy9waG90b3MtdHJhY2tlci1yZXNvdXJjZXMueG1sCitkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKK2luZGV4IDE4MTc3YWEwLi4wMDAwMDAwMAorLS0tIGEvc3JjL3Bob3Rv cy10cmFja2VyLXJlc291cmNlcy54bWwKKysrKyAvZGV2L251bGwKK0BAIC0xLDMxICswLDAgQEAK Ky08IURPQ1RZUEUgbm9kZSBQVUJMSUMKKy0iLS8vZnJlZWRlc2t0b3AvL0RURCBELUJVUyBPYmpl Y3QgSW50cm9zcGVjdGlvbiAxLjAvL0VOIgorLSJodHRwOi8vd3d3LmZyZWVkZXNrdG9wLm9yZy9z dGFuZGFyZHMvZGJ1cy8xLjAvaW50cm9zcGVjdC5kdGQiPgorLQorLTwhLS0KKy0gUGhvdG9zIC0g YWNjZXNzLCBvcmdhbml6ZSBhbmQgc2hhcmUgeW91ciBwaG90b3Mgb24gR05PTUUKKy0gQ29weXJp Z2h0IMKpIDIwMTIg4oCTIDIwMTkgUmVkIEhhdCwgSW5jLgorLQorLSBUaGlzIHByb2dyYW0gaXMg ZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorLSBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1 Ymxpc2hlZCBieQorLSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lv biAzIG9mIHRoZSBMaWNlbnNlLCBvcgorLSAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz aW9uLgorLQorLSBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp dCB3aWxsIGJlIHVzZWZ1bCwKKy0gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKy0gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorLSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorLQorLSBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorLSBhbG9uZyB3aXRoIHRo aXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4K Ky0tLT4KKy0KKy08bm9kZSBuYW1lPSIvIiB4bWxuczpkb2M9Imh0dHA6Ly93d3cuZnJlZWRlc2t0 b3Aub3JnL2RidXMvMS4wL2RvYy5kdGQiPgorLSAgPGludGVyZmFjZSBuYW1lPSJvcmcuZnJlZWRl c2t0b3AuVHJhY2tlcjEuUmVzb3VyY2VzIj4KKy0gICAgPHNpZ25hbCBuYW1lPSJHcmFwaFVwZGF0 ZWQiPgorLSAgICAgIDxhcmcgbmFtZT0iY2xhc3NOYW1lIiB0eXBlPSJzIiAvPgorLSAgICAgIDxh cmcgbmFtZT0iZGVsZXRlRXZlbnRzIiB0eXBlPSJhKGlpaWkpIiAvPgorLSAgICAgIDxhcmcgbmFt ZT0iaW5zZXJ0RXZlbnRzIiB0eXBlPSJhKGlpaWkpIiAvPgorLSAgICA8L3NpZ25hbD4KKy0gIDwv aW50ZXJmYWNlPgorLTwvbm9kZT4KK2RpZmYgLS1naXQgYS9zcmMvcGhvdG9zLXV0aWxzLmMgYi9z cmMvcGhvdG9zLXV0aWxzLmMKK2luZGV4IGM2MzgyOTdiLi5jYzg1OTNkOCAxMDA2NDQKKy0tLSBh L3NyYy9waG90b3MtdXRpbHMuYworKysrIGIvc3JjL3Bob3Rvcy11dGlscy5jCitAQCAtMTI2MSw3 ICsxMjYxLDEzIEBAIHBob3Rvc191dGlsc19zZXRfZWRpdGVkX25hbWUgKGNvbnN0IGdjaGFyICp1 cm4sIGNvbnN0IGdjaGFyICp0aXRsZSkKKyAgIGdfYXV0b3B0ciAoUGhvdG9zVHJhY2tlclF1ZXVl KSBxdWV1ZSA9IE5VTEw7CisgICBnX2F1dG9mcmVlIGdjaGFyICpzcGFycWwgPSBOVUxMOworIAor LSAgc3BhcnFsID0gZ19zdHJkdXBfcHJpbnRmICgiSU5TRVJUIE9SIFJFUExBQ0UgeyA8JXM+IG5p ZTp0aXRsZSBcIiVzXCIgfSIsIHVybiwgdGl0bGUpOworKyAgc3BhcnFsID0gZ19zdHJkdXBfcHJp bnRmICgiV0lUSCB0cmFja2VyOlBpY3R1cmVzICIKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIkRFTEVURSB7IDwlcz4gbmllOnRpdGxlID90aXRsZSB9ICIKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIklOU0VSVCB7ICIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAg PCVzPiBhIG5tbTpQaG90byA7ICIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICBu aWU6dGl0bGUgXCIlc1wiIC4gIgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAifSIKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIldIRVJFIHsgPCVzPiBuaWU6dGl0bGUgP3RpdGxl IH0iLCB1cm4sIHVybiwgdGl0bGUsIHVybik7CisgICBxdWVyeSA9IHBob3Rvc19xdWVyeV9uZXcg KE5VTEwsIHNwYXJxbCk7CisgCisgICB7CitAQCAtMTI4OSw5ICsxMjk1LDE5IEBAIHBob3Rvc191 dGlsc19zZXRfZmF2b3JpdGUgKGNvbnN0IGdjaGFyICp1cm4sIGdib29sZWFuIGlzX2Zhdm9yaXRl KQorICAgZ19hdXRvcHRyIChQaG90b3NUcmFja2VyUXVldWUpIHF1ZXVlID0gTlVMTDsKKyAgIGdf YXV0b2ZyZWUgZ2NoYXIgKnNwYXJxbCA9IE5VTEw7CisgCistICBzcGFycWwgPSBnX3N0cmR1cF9w cmludGYgKCIlcyB7IDwlcz4gbmFvOmhhc1RhZyBuYW86cHJlZGVmaW5lZC10YWctZmF2b3JpdGUg fSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpc19mYXZvcml0ZSkgPyAiSU5TRVJU IE9SIFJFUExBQ0UiIDogIkRFTEVURSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVy bik7CisrICBpZiAoaXNfZmF2b3JpdGUpCisrICAgIHNwYXJxbCA9IGdfc3RyZHVwX3ByaW50ZiAo IklOU0VSVCBEQVRBIHsgIgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgIEdSQVBI IHRyYWNrZXI6UGljdHVyZXMgeyIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAg IDwlcz4gYSBubW06UGhvdG8gOyAiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAg ICAgIG5hbzpoYXNUYWcgbmFvOnByZWRlZmluZWQtdGFnLWZhdm9yaXRlICIKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiICB9ICIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAifSIsIHVybik7CisrICBlbHNlCisrICAgIHNwYXJxbCA9IGdfc3RyZHVwX3ByaW50ZiAoIkRF TEVURSBEQVRBIHsiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgR1JBUEggdHJh Y2tlcjpQaWN0dXJlcyB7IgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgPCVz PiBuYW86aGFzVGFnIG5hbzpwcmVkZWZpbmVkLXRhZy1mYXZvcml0ZSAiCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIiAgfSAiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg In0iLCB1cm4pOworICAgcXVlcnkgPSBwaG90b3NfcXVlcnlfbmV3IChOVUxMLCBzcGFycWwpOwor IAorICAgeworZGlmZiAtLWdpdCBhL3NyYy9waG90b3MtdXRpbHMuaCBiL3NyYy9waG90b3MtdXRp bHMuaAoraW5kZXggNzhlYzM2NjguLmYxNDUwZjdkIDEwMDY0NAorLS0tIGEvc3JjL3Bob3Rvcy11 dGlscy5oCisrKysgYi9zcmMvcGhvdG9zLXV0aWxzLmgKK0BAIC00Niw3ICs0Niw3IEBAIEdfQkVH SU5fREVDTFMKKyAjZGVmaW5lIFBIT1RPU19UUkFDS0VSX0NPTlRST0xMRVJfRVhURU5TSU9OX1BP SU5UX05BTUUgInBob3Rvcy10cmFja2VyLWNvbnRyb2xsZXIiCisgCisgI2RlZmluZSBQSE9UT1Nf Q09MTEVDVElPTl9TQ1JFRU5TSE9UIFwKKy0gICJodHRwOi8vd3d3LnNlbWFudGljZGVza3RvcC5v cmcvb250b2xvZ2llcy8yMDA3LzAzLzIyL25mbyNpbWFnZS1jYXRlZ29yeS1zY3JlZW5zaG90Igor KyAgImh0dHA6Ly90cmFja2VyLmFwaS5nbm9tZS5vcmcvb250b2xvZ3kvdjMvbmZvI2ltYWdlLWNh dGVnb3J5LXNjcmVlbnNob3QiCisgI2RlZmluZSBQSE9UT1NfRVhQT1JUX1NVQlBBVEggIkV4cG9y dHMiCisgCisgdHlwZWRlZiBlbnVtCitkaWZmIC0tZ2l0IGEvc3JjL3F1ZXJpZXMvYWxsLnNwYXJx bC50ZW1wbGF0ZSBiL3NyYy9xdWVyaWVzL2FsbC5zcGFycWwudGVtcGxhdGUKK2luZGV4IDFjZWY5 OGU4Li4xNGUwODAyNyAxMDA2NDQKKy0tLSBhL3NyYy9xdWVyaWVzL2FsbC5zcGFycWwudGVtcGxh dGUKKysrKyBiL3NyYy9xdWVyaWVzL2FsbC5zcGFycWwudGVtcGxhdGUKK0BAIC0xLDMwICsxLDQy IEBACistU0VMRUNUIHt7cHJvamVjdGlvbn19CisrU0VMRUNUIHt7ZmluYWxfcHJvamVjdGlvbn19 CisrRlJPTSBOQU1FRCB0cmFja2VyOlBpY3R1cmVzCisgeworICAgICB7CistICAgICAgICBTRUxF Q1Qge3twcm9qZWN0aW9ufX0KKysgICAgICAgIFNFTEVDVCB7e21haW5fcHJvamVjdGlvbn19Cisg ICAgICAgICB7CisgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICBTRUxFQ1QgP3VybiBD T1VOVCg/aXRlbSkgQVMgP2NvdW50CisgICAgICAgICAgICAgICAgIHsKKysgICAgICAgICAgICAg ICAgICAgIHt7dmFsdWVzfX0KKysgICAgICAgICAgICAgICAgICAgIFZBTFVFUyAoP2ZpbGUgP2Zp bGVuYW1lID9jcmVhdG9yID9wdWJsaXNoZXIpIHsgKCIiICIiICIiICIiKSB9CisgICAgICAgICAg ICAgICAgICAgICA/dXJuIGEgbmZvOkRhdGFDb250YWluZXIuCistICAgICAgICAgICAgICAgICAg ICA/aXRlbSBhIG5tbTpQaG90bzsgbmllOmlzUGFydE9mID91cm4uCistICAgICAgICAgICAgICAg IH0gR1JPVVAgQlkgP3VybgorKyAgICAgICAgICAgICAgICAgICAgP2l0ZW0gYSBubW06UGhvdG8g OworKyAgICAgICAgICAgICAgICAgICAgICAgbmllOmlzUGFydE9mID91cm4gLgorKyAgICAgICAg ICAgICAgICAgICAge3tpdGVtX3BhdHRlcm59fQorKyAgICAgICAgICAgICAgICB9CisrICAgICAg ICAgICAgICAgIEdST1VQIEJZID91cm4KKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgRklM VEVSICg/Y291bnQgPiAwICYmIHt7Y29sbGVjdGlvbnNfZGVmYXVsdF9maWx0ZXJ9fSAmJiB7e3Nl YXJjaF9maWx0ZXJ9fSkKKyAgICAgICAgIH0KKy0gICAgICAgIEdST1VQIEJZID91cm4KKyAgICAg fQorICAgICBVTklPTgorICAgICB7CistICAgICAgICBTRUxFQ1Qge3twcm9qZWN0aW9ufX0KKysg ICAgICAgIFNFTEVDVCB7e3NlY29uZF9wcm9qZWN0aW9ufX0KKyAgICAgICAgIHsKKy0gICAgICAg ICAgICA/dXJuIGEgbm1tOlBob3RvIC4KKy0gICAgICAgICAgICBPUFRJT05BTCB7ID91cm4gbmNv OmNyZWF0b3IgP2NyZWF0b3IgLiB9CistICAgICAgICAgICAgT1BUSU9OQUwgeyA/dXJuIG5jbzpw dWJsaXNoZXIgP3B1Ymxpc2hlciAuIH0KKyAgICAgICAgICAgICB7e2l0ZW1fcGF0dGVybn19Cist ICAgICAgICAgICAgRklMVEVSICh7e3Bob3Rvc19kZWZhdWx0X2ZpbHRlcn19ICYmIHt7c291cmNl X2ZpbHRlcn19ICYmIHt7c2VhcmNoX2ZpbHRlcn19KQorKyAgICAgICAgICAgIFNFUlZJQ0UgPGRi dXM6e3ttaW5lcl9mc19idXNuYW1lfX0+CisrICAgICAgICAgICAgeworKyAgICAgICAgICAgICAg ICBTRUxFQ1Qge3ttYWluX3Byb2plY3Rpb259fQorKyAgICAgICAgICAgICAgICB7CisrICAgICAg ICAgICAgICAgICAgICB7e3ZhbHVlc319CisrICAgICAgICAgICAgICAgICAgICA/dXJuIGEgbm1t OlBob3RvIDsKKysgICAgICAgICAgICAgICAgICAgICAgICBuaWU6aXNTdG9yZWRBcyA/ZmlsZSAu CisrICAgICAgICAgICAgICAgICAgICBPUFRJT05BTCB7ID91cm4gbmNvOmNyZWF0b3IgP2NyZWF0 b3IgLiB9CisrICAgICAgICAgICAgICAgICAgICBPUFRJT05BTCB7ID91cm4gbmNvOnB1Ymxpc2hl ciA/cHVibGlzaGVyIC4gfQorKyAgICAgICAgICAgICAgICAgICAgRklMVEVSICh7e3Bob3Rvc19k ZWZhdWx0X2ZpbHRlcn19ICYmIHt7c291cmNlX2ZpbHRlcn19ICYmIHt7c2VhcmNoX2ZpbHRlcn19 KQorKyAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgfQorICAgICAgICAgfQorLSAgICAg ICAgR1JPVVAgQlkgP3VybgorICAgICB9CisgfQorIHt7b3JkZXJ9fQorZGlmZiAtLWdpdCBhL3Ny Yy9xdWVyaWVzL2NvbGxlY3Rpb25zLnNwYXJxbC50ZW1wbGF0ZSBiL3NyYy9xdWVyaWVzL2NvbGxl Y3Rpb25zLnNwYXJxbC50ZW1wbGF0ZQoraW5kZXggMjBiMzVjZDYuLjRkZmIzNDVhIDEwMDY0NAor LS0tIGEvc3JjL3F1ZXJpZXMvY29sbGVjdGlvbnMuc3BhcnFsLnRlbXBsYXRlCisrKysgYi9zcmMv cXVlcmllcy9jb2xsZWN0aW9ucy5zcGFycWwudGVtcGxhdGUKK0BAIC0xLDE0ICsxLDIwIEBACist U0VMRUNUIHt7cHJvamVjdGlvbn19CisrU0VMRUNUIHt7ZmluYWxfcHJvamVjdGlvbn19Cisgewor KyAgICBTRUxFQ1Qge3ttYWluX3Byb2plY3Rpb259fQorICAgICB7CistICAgICAgICBTRUxFQ1Qg P3VybiBDT1VOVCg/aXRlbSkgQVMgP2NvdW50CisgICAgICAgICB7CistICAgICAgICAgICAgP3Vy biBhIG5mbzpEYXRhQ29udGFpbmVyLgorLSAgICAgICAgICAgID9pdGVtIGEgbm1tOlBob3RvOyBu aWU6aXNQYXJ0T2YgP3Vybi4KKy0gICAgICAgIH0gR1JPVVAgQlkgP3VybgorKyAgICAgICAgICAg IFNFTEVDVCA/dXJuIENPVU5UKD9pdGVtKSBBUyA/Y291bnQKKysgICAgICAgICAgICB7CisrICAg ICAgICAgICAgICAgIHt7dmFsdWVzfX0KKysgICAgICAgICAgICAgICAgVkFMVUVTICg/ZmlsZSA/ ZmlsZW5hbWUgP2NyZWF0b3IgP3B1Ymxpc2hlcikgeyAoIiIgIiIgIiIgIiIpIH0KKysgICAgICAg ICAgICAgICAgP3VybiBhIG5mbzpEYXRhQ29udGFpbmVyIC4KKysgICAgICAgICAgICAgICAgP2l0 ZW0gYSBubW06UGhvdG8gOworKyAgICAgICAgICAgICAgICAgICBuaWU6aXNQYXJ0T2YgP3VybiAu CisrICAgICAgICAgICAgfQorKyAgICAgICAgICAgIEdST1VQIEJZID91cm4KKysgICAgICAgIH0K KysgICAgICAgIEZJTFRFUiAoP2NvdW50ID4gMCAmJiB7e2NvbGxlY3Rpb25zX2RlZmF1bHRfZmls dGVyfX0gJiYge3tzZWFyY2hfZmlsdGVyfX0pCisgICAgIH0KKy0gICAgRklMVEVSICg/Y291bnQg PiAwICYmIHt7Y29sbGVjdGlvbnNfZGVmYXVsdF9maWx0ZXJ9fSAmJiB7e3NlYXJjaF9maWx0ZXJ9 fSkKKyB9CistR1JPVVAgQlkgP3VybgorIHt7b3JkZXJ9fQorIHt7b2Zmc2V0X2xpbWl0fX0KK2Rp ZmYgLS1naXQgYS9zcmMvcXVlcmllcy9mYXZvcml0ZS1waG90b3Muc3BhcnFsLnRlbXBsYXRlIGIv c3JjL3F1ZXJpZXMvZmF2b3JpdGUtcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZQoraW5kZXggMDg4NWEw OGEuLjlhMGQ3ODA2IDEwMDY0NAorLS0tIGEvc3JjL3F1ZXJpZXMvZmF2b3JpdGUtcGhvdG9zLnNw YXJxbC50ZW1wbGF0ZQorKysrIGIvc3JjL3F1ZXJpZXMvZmF2b3JpdGUtcGhvdG9zLnNwYXJxbC50 ZW1wbGF0ZQorQEAgLTEsMTIgKzEsMjAgQEAKKy1TRUxFQ1Qge3twcm9qZWN0aW9ufX0KKytTRUxF Q1Qge3tmaW5hbF9wcm9qZWN0aW9ufX0KKytGUk9NIHRyYWNrZXI6UGljdHVyZXMKKyB7CisgICAg ID91cm4gYSBubW06UGhvdG8gLgorICAgICA/dXJuIGEgbm1tOlBob3RvOyBuYW86aGFzVGFnIG5h bzpwcmVkZWZpbmVkLXRhZy1mYXZvcml0ZSAuCistICAgIE9QVElPTkFMIHsgP3VybiBuY286Y3Jl YXRvciA/Y3JlYXRvciAuIH0KKy0gICAgT1BUSU9OQUwgeyA/dXJuIG5jbzpwdWJsaXNoZXIgP3B1 Ymxpc2hlciAuIH0KKy0gICAge3tpdGVtX3BhdHRlcm59fQorLSAgICBGSUxURVIgKHt7cGhvdG9z X2RlZmF1bHRfZmlsdGVyfX0gJiYge3tzb3VyY2VfZmlsdGVyfX0gJiYge3tzZWFyY2hfZmlsdGVy fX0pCisrICAgIFNFUlZJQ0UgPGRidXM6e3ttaW5lcl9mc19idXNuYW1lfX0+CisrICAgIHsKKysg ICAgICAgIFNFTEVDVCB7e21haW5fcHJvamVjdGlvbn19CisrICAgICAgICB7CisrICAgICAgICAg ICAgP3VybiBhIG5tbTpQaG90byA7CisrICAgICAgICAgICAgICAgIG5pZTppc1N0b3JlZEFzID9m aWxlIC4KKysgICAgICAgICAgICBPUFRJT05BTCB7ID91cm4gbmNvOmNyZWF0b3IgP2NyZWF0b3Ig LiB9CisrICAgICAgICAgICAgT1BUSU9OQUwgeyA/dXJuIG5jbzpwdWJsaXNoZXIgP3B1Ymxpc2hl ciAuIH0KKysgICAgICAgICAgICB7e2l0ZW1fcGF0dGVybn19CisrICAgICAgICAgICAgRklMVEVS ICh7e3Bob3Rvc19kZWZhdWx0X2ZpbHRlcn19ICYmIHt7c291cmNlX2ZpbHRlcn19ICYmIHt7c2Vh cmNoX2ZpbHRlcn19KQorKyAgICAgICAgfQorKyAgICB9CisgfQorLUdST1VQIEJZID91cm4KKyB7 e29yZGVyfX0KKyB7e29mZnNldF9saW1pdH19CitkaWZmIC0tZ2l0IGEvc3JjL3F1ZXJpZXMvcGhv dG9zLnNwYXJxbC50ZW1wbGF0ZSBiL3NyYy9xdWVyaWVzL3Bob3Rvcy5zcGFycWwudGVtcGxhdGUK K2luZGV4IDRlYjEwYjc0Li42YWRlMzVlMiAxMDA2NDQKKy0tLSBhL3NyYy9xdWVyaWVzL3Bob3Rv cy5zcGFycWwudGVtcGxhdGUKKysrKyBiL3NyYy9xdWVyaWVzL3Bob3Rvcy5zcGFycWwudGVtcGxh dGUKK0BAIC0xLDExICsxLDE5IEBACistU0VMRUNUIHt7cHJvamVjdGlvbn19CisrU0VMRUNUIHt7 ZmluYWxfcHJvamVjdGlvbn19CisrRlJPTSB0cmFja2VyOlBpY3R1cmVzCisgeworLSAgICA/dXJu IGEgbm1tOlBob3RvIC4KKy0gICAgT1BUSU9OQUwgeyA/dXJuIG5jbzpjcmVhdG9yID9jcmVhdG9y IC4gfQorLSAgICBPUFRJT05BTCB7ID91cm4gbmNvOnB1Ymxpc2hlciA/cHVibGlzaGVyIC4gfQor LSAgICB7e2l0ZW1fcGF0dGVybn19CistICAgIEZJTFRFUiAoe3twaG90b3NfZGVmYXVsdF9maWx0 ZXJ9fSAmJiB7e3NvdXJjZV9maWx0ZXJ9fSAmJiB7e3NlYXJjaF9maWx0ZXJ9fSkKKysgICAgU0VS VklDRSA8ZGJ1czp7e21pbmVyX2ZzX2J1c25hbWV9fT4KKysgICAgeworKyAgICAgICAgU0VMRUNU IHt7bWFpbl9wcm9qZWN0aW9ufX0KKysgICAgICAgIHsKKysgICAgICAgICAgICB7e3ZhbHVlc319 CisrICAgICAgICAgICAgP3VybiBhIG5tbTpQaG90byA7CisrICAgICAgICAgICAgICAgIG5pZTpp c1N0b3JlZEFzID9maWxlIC4KKysgICAgICAgICAgICBPUFRJT05BTCB7ID91cm4gbmNvOmNyZWF0 b3IgP2NyZWF0b3IgLiB9CisrICAgICAgICAgICAgT1BUSU9OQUwgeyA/dXJuIG5jbzpwdWJsaXNo ZXIgP3B1Ymxpc2hlciAuIH0KKysgICAgICAgICAgICB7e2l0ZW1fcGF0dGVybn19CisrICAgICAg ICAgICAgRklMVEVSICh7e3Bob3Rvc19kZWZhdWx0X2ZpbHRlcn19ICYmIHt7c291cmNlX2ZpbHRl cn19ICYmIHt7c2VhcmNoX2ZpbHRlcn19KQorKyAgICAgICAgfQorKyAgICB9CisgfQorLUdST1VQ IEJZID91cm4KKyB7e29yZGVyfX0KKyB7e29mZnNldF9saW1pdH19CistLSAKK0dpdExhYgorCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXBob3Rvcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUt cGhvdG9zL3RlbXBsYXRlCmluZGV4IDFlZDhiOTg2MWVjLi43YzgzYTJlNzVkNCAxMDA2NDQKLS0t IGEvc3JjcGtncy9nbm9tZS1waG90b3MvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1waG90 b3MvdGVtcGxhdGUKQEAgLTEsMjIgKzEsMjMgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21l LXBob3RvcycKIHBrZ25hbWU9Z25vbWUtcGhvdG9zCi12ZXJzaW9uPTMuMzQuMgordmVyc2lvbj0z LjM3LjkxLjEKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVz b24KIGNvbmZpZ3VyZV9hcmdzPSItRGRvZ3RhaWw9ZmFsc2UiCiBob3N0bWFrZWRlcGVuZHM9InBr Zy1jb25maWcgZ2V0dGV4dCBpdHN0b29sIGdsaWItZGV2ZWwgZ2RrLXBpeGJ1ZiBsaWJyc3ZnIgog bWFrZWRlcGVuZHM9Imd0ayszLWRldmVsIGJhYmwtZGV2ZWwgZXhlbXBpLWRldmVsIGxjbXMyLWRl dmVsCi0gZ2ZiZ3JhcGgtZGV2ZWwgdHJhY2tlci1kZXZlbCBsaWJleGlmLWRldmVsIGxpYnJzdmct ZGV2ZWwgZ3JpbG8tZGV2ZWwKKyBnZmJncmFwaC1kZXZlbCB0cmFja2VyMy1kZXZlbCBsaWJleGlm LWRldmVsIGxpYnJzdmctZGV2ZWwgZ3JpbG8tZGV2ZWwKICBsaWJnZXhpdjItZGV2ZWwgZ25vbWUt b25saW5lLWFjY291bnRzLWRldmVsIGdub21lLWRlc2t0b3AtZGV2ZWwgbGliZ2RhdGEtZGV2ZWwK ICBnZW9jb2RlLWdsaWItZGV2ZWwgbGliZGF6emxlLWRldmVsIGdlZ2wtZGV2ZWwiCi1kZXBlbmRz PSJkZXNrdG9wLWZpbGUtdXRpbHMgdHJhY2tlciB0cmFja2VyLW1pbmVycyIKK2RlcGVuZHM9ImRl c2t0b3AtZmlsZS11dGlscyB0cmFja2VyMyB0cmFja2VyMy1taW5lcnMiCiBzaG9ydF9kZXNjPSJB Y2Nlc3MsIG9yZ2FuaXplLCBhbmQgc2hhcmUgeW91ciBwaG90b3Mgb24gR05PTUUiCiBtYWludGFp bmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIu MC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvUGhvdG9z IgotZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L2dub21lLXBob3Rvcy8ke3ZlcnNpb24lLip9L2du b21lLXBob3Rvcy0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTNjNTljNzZlZjI4NjE4ZWMw NTVhMTc5OWQxMDQwMjg3YjkwYTBiMDIxZmViMGEwMmIxZWFjMjhlOWMyZWI0MWEKK2Rpc3RmaWxl cz0iJHtHTk9NRV9TSVRFfS9nbm9tZS1waG90b3MvJHt2ZXJzaW9uJS4qLip9L2dub21lLXBob3Rv cy0ke3ZlcnNpb259LnRhci54eiIKK2NoZWNrc3VtPTI3OGRhMjMyMzRlMjdjNTQzMDIwZGFlOTQz YWQ1MjA4NmI5ZWNhYTVlZTNhYWQwYjAzMWI4NmVlMDRkMzk0YWEKK3BhdGNoX2FyZ3M9Ii1OcDEi CiAKIGJ1aWxkX29wdGlvbnM9ImdpciIKIGJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgoKRnJv bSA4YTYwMGZhZTNmZWJhYzBkNzNhNTM0ZGM3Y2JlMmM2NjhjMzViY2I3IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0 ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDc3LzEw Ml0gZW9nOiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIHNyY3BrZ3MvZW9nL3RlbXBsYXRlIHwgNiAr KystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9lb2cvdGVtcGxhdGUgYi9zcmNwa2dzL2VvZy90ZW1wbGF0ZQpp bmRleCBlNGNhY2I3MDc5ZS4uMjc1OTI3Mzg3MmUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZW9nL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvZW9nL3RlbXBsYXRlCkBAIC0xLDIwICsxLDIwIEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdlb2cnCiBwa2duYW1lPWVvZwotdmVyc2lvbj0zLjM2LjEKK3ZlcnNp b249My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9oZWxwZXI9ImdpciIKIGJ1aWxkX3N0eWxlPW1l c29uCiBjb25maWd1cmVfYXJncz0iLURpbnRyb3NwZWN0aW9uPSQodm9wdF9pZiBnaXIgdHJ1ZSBm YWxzZSkiCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgZ2xpYi1kZXZlbCBpdHN0b29sIHBrZy1j b25maWciCiBtYWtlZGVwZW5kcz0iZXhlbXBpLWRldmVsIGdub21lLWRlc2t0b3AtZGV2ZWwgbGli ZXhpZi1kZXZlbCBsaWJwZWFzLWRldmVsCi0gbGlicnN2Zy1kZXZlbCBsY21zMi1kZXZlbCIKKyBs aWJyc3ZnLWRldmVsIGxjbXMyLWRldmVsIGxpYnBvcnRhbC1kZXZlbCIKIGRlcGVuZHM9ImRlc2t0 b3AtZmlsZS11dGlscyBoaWNvbG9yLWljb24tdGhlbWUgc2hhcmVkLW1pbWUtaW5mbyIKIHNob3J0 X2Rlc2M9IkV5ZSBvZiBHTk9NRSBncmFwaGljcyB2aWV3ZXIgcHJvZ3JhbSIKIG1haW50YWluZXI9 IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9y LWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9FeWVPZkdub21l IgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L2VvZy8ke3ZlcnNpb24lLip9L2VvZy0ke3ZlcnNp b259LnRhci54eiIKLWNoZWNrc3VtPWU0NTRhMWE3YWE1ZTNhMzMyMWVhYjAxMTY3NzgxMTBlNWE3 YTdiNjNiY2YyMTY3NmVkYTFhN2JlMTg3YzljOTUKK2NoZWNrc3VtPWUxYTNhNDdjMzg2ODhjZDUz OGRlZGE2MjdjMGVmZjExM2QwNWMzMTZiMWRkZTYyNDMxNTA0MzcyNTlkMmQ5NjMKIHNobGliX3By b3ZpZGVzPSJsaWJlb2cuc28iCiBsaWIzMmRpc2FibGVkPXllcwogCgpGcm9tIDY4NDU2MTg5MGM1 YjU0M2I2ZWI4ODJkMWQzNDhjZGE2YmZiMGMyMWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1 ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNzgvMTAyXSBldmluY2U6IHVw ZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9ldmluY2UvdGVtcGxhdGUgfCAxNCArKysrKysr LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmNwa2dzL2V2aW5jZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvZXZpbmNlL3Rl bXBsYXRlCmluZGV4IDQwMzVmMTVjNjkwLi4wZWI4MDc1MDI1MyAxMDA2NDQKLS0tIGEvc3JjcGtn cy9ldmluY2UvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9ldmluY2UvdGVtcGxhdGUKQEAgLTEsMTMg KzEsMTMgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2V2aW5jZScKIHBrZ25hbWU9ZXZpbmNlCi12 ZXJzaW9uPTMuMzYuNwordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0i Z2lyIgotYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQotY29uZmlndXJlX2FyZ3M9IiQodm9wdF9l bmFibGUgZ2lyIGludHJvc3BlY3Rpb24pIC0tZGlzYWJsZS1zY2hlbWFzLWNvbXBpbGUKLSAtLWVu YWJsZS1jb21pY3MgLS1kaXNhYmxlLXN0YXRpYyAtLWVuYWJsZS14cHMgLS1kaXNhYmxlLXQxbGli Ci0gLS1kaXNhYmxlLWJyb3dzZXItcGx1Z2luIC0tZW5hYmxlLXBzIgotaG9zdG1ha2VkZXBlbmRz PSJhZHdhaXRhLWljb24tdGhlbWUgZ2V0dGV4dCBnbGliLWRldmVsIGdub21lLWRvYy11dGlscwor YnVpbGRfc3R5bGU9bWVzb24KK2NvbmZpZ3VyZV9hcmdzPSIkKHZvcHRfYm9vbCBnaXIgaW50cm9z cGVjdGlvbikKKyAtRGNvbWljcz1lbmFibGVkIC1EcHM9ZW5hYmxlZCAtRHhwcz1lbmFibGVkIC1E ZHZpPWRpc2FibGVkCisgLUR0MWxpYj1kaXNhYmxlZCAtRGJyb3dzZXJfcGx1Z2luPWZhbHNlIgor aG9zdG1ha2VkZXBlbmRzPSJhZHdhaXRhLWljb24tdGhlbWUgZ2V0dGV4dCBndGstZG9jIGdsaWIt ZGV2ZWwgZ25vbWUtZG9jLXV0aWxzCiAgaXRzdG9vbCBwa2ctY29uZmlnIHBlcmwtWE1MLVBhcnNl ciBhcHBzdHJlYW0tZ2xpYiIKICMgWFhYIG1pc3NpbmcgcGFja2FnZXMgZm9yIERWSSBiYWNrZW5k LgogbWFrZWRlcGVuZHM9ImFkd2FpdGEtaWNvbi10aGVtZSBkanZ1bGlicmUtZGV2ZWwgZ25vbWUt ZGVza3RvcC1kZXZlbCBsaWJTTS1kZXZlbApAQCAtMTksNyArMTksNyBAQCBtYWludGFpbmVyPSJF bm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1s YXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvRXZpbmNlIgogZGlz dGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9 LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NjVkNjFhNDIzZTNmYmJlMDcwMDFmNjVlODc0 MjJkZmI3ZDJlNDJiOWVkZjBjYTZhMWQ0MjdhZjlhMDRiOGYzMgorY2hlY2tzdW09MjZkZjg5N2E0 MTc1NDViNDc2ZDI2MDZiMTQ3MzExMjJlODQyNzhhZTk5NGJkNjRlYTUzNTQ0OWMzY2YwMTk0OAog CiBidWlsZF9vcHRpb25zPSJnaXIiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKCkZyb20g ODkxYTQ1YWY1NDdiZWM3MTYwYTYzN2U3Mzc4MmViYmYzNWY4NDBmYiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6 IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA3OS8xMDJd IGZpbGUtcm9sbGVyOiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIHNyY3BrZ3MvZmlsZS1yb2xsZXIv dGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9maWxlLXJvbGxlci90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvZmlsZS1yb2xsZXIvdGVtcGxhdGUKaW5kZXggMDM2MjJhMjIzMTMuLmY4NTZjMzI0MjI5 IDEwMDY0NAotLS0gYS9zcmNwa2dzL2ZpbGUtcm9sbGVyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv ZmlsZS1yb2xsZXIvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICdmaWxlLXJvbGxlcicKIHBrZ25hbWU9ZmlsZS1yb2xsZXIKLXZlcnNpb249My4zNi4wCit2ZXJz aW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5k cz0iZ2V0dGV4dCBnbGliLWRldmVsIGl0c3Rvb2wgcGtnLWNvbmZpZyIKQEAgLTEyLDYgKzEyLDYg QEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vu c2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9B cHBzL0ZpbGVSb2xsZXIiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3Zl cnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1iOTE0NGRl OGY1MzZmNTgzZWMyOWQ3MDNjMmMxNzBiZjJkMDBjNmMxNjZjZDVlM2Y3ZWZhYmRhNTUxZjEwNDc4 CitjaGVja3N1bT03MjNkMWM2ZTU2N2QzNWRhZDVlZWVhZWI4NmI4ZDE4NzA1NjU4ZWU3M2UwYjNi OTdlYTE2YWRjN2E0ZGMzMzFhCiAKIENGTEFHUz0iLWZjb21tb24iCgpGcm9tIGExZDljMTYxYzNm MzM4ZWI4MmNkOGQ0Zjk0OWQzNzYxYjY5NjNiMmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1 ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwODAvMTAyXSBnbm9tZS1jYWxl bmRhcjogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL2dub21lLWNhbGVuZGFyL3RlbXBs YXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtY2FsZW5kYXIvdGVtcGxhdGUgYi9zcmNw a2dzL2dub21lLWNhbGVuZGFyL3RlbXBsYXRlCmluZGV4IDljOTFjOGI1ZjRkLi5kM2M3NmI5N2Yw ZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1jYWxlbmRhci90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL2dub21lLWNhbGVuZGFyL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAnZ25vbWUtY2FsZW5kYXInCiBwa2duYW1lPWdub21lLWNhbGVuZGFyCi12ZXJzaW9u PTMuMzYuMgordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBo b3N0bWFrZWRlcGVuZHM9ImdldHRleHQgZ2xpYi1kZXZlbCBwa2ctY29uZmlnICQodm9wdF9pZiBn aXIgJ2dvYmplY3QtaW50cm9zcGVjdGlvbicpIgpAQCAtMTMsNyArMTMsNyBAQCBsaWNlbnNlPSJH UEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9D YWxlbmRhciIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21l LWNhbGVuZGFyL3Jhdy9tYXN0ZXIvTkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3Br Z25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNr c3VtPWQwYjA1MzQ1YzA1NTVhMDg1ZTZlNTQyNmVhYjQ5NDk0YWJhMjgyNmM4NTZlYjA2ZmQ3ZmRi NzYyZWMwYzRjMWYKK2NoZWNrc3VtPWMzNjg0MjUyYTcyYmI1OTA4OWQwNzE1MTQ0NThhNGFlYmE0 MTdmOTU1MWZmNWQ1NDhlMWE1OTg0ZTQ3YjQ3MzMKIAogYnVpbGRfb3B0aW9ucz0iZ2lyIgogYnVp bGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCgpGcm9tIGU4YzgzZDc3NDFiNTM5N2Y2NWFjYTYxNmVm YWE0OWU2YTdjODQ3ODAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xl c2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBGcmksIDE0IEF1ZyAyMDIwIDE2OjUxOjU1 ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwODEvMTAyXSBnbm9tZS1tdXNpYzogdXBkYXRlIHRvIDMu MzguMAoKLS0tCiBzcmNwa2dzL2dub21lLW11c2ljL3RlbXBsYXRlIHwgOSArKysrKy0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9nbm9tZS1tdXNpYy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtbXVzaWMvdGVt cGxhdGUKaW5kZXggMTI1MTE3MzY0MDcuLjg1YTc1NjEwNTllIDEwMDY0NAotLS0gYS9zcmNwa2dz L2dub21lLW11c2ljL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtbXVzaWMvdGVtcGxhdGUK QEAgLTEsMTkgKzEsMjAgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLW11c2ljJwogcGtn bmFtZT1nbm9tZS1tdXNpYwotdmVyc2lvbj0zLjM2LjEKK3ZlcnNpb249My4zOC4wCiByZXZpc2lv bj0xCiBidWlsZF9oZWxwZXI9ImdpciIKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVu ZHM9ImdldHRleHQgZ2xpYi1kZXZlbCBpdHN0b29sIHBrZy1jb25maWciCiBtYWtlZGVwZW5kcz0i Z25vbWUtZGVza3RvcC1kZXZlbCBncmlsby1kZXZlbCBsaWJtZWRpYWFydC1kZXZlbAotIHB5dGhv bjMtZ29iamVjdC1kZXZlbCBweXRob24zLWRidXMgdHJhY2tlci1kZXZlbCBnbm9tZS1vbmxpbmUt YWNjb3VudHMtZGV2ZWwKKyBweXRob24zLWdvYmplY3QtZGV2ZWwgcHl0aG9uMy1kYnVzIHRyYWNr ZXIzLWRldmVsIGdub21lLW9ubGluZS1hY2NvdW50cy1kZXZlbAogIGxpYmRhenpsZS1kZXZlbCBn cmlsby1wbHVnaW5zIHB5dGhvbjMtY2Fpcm8tZGV2ZWwiCiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUt dXRpbHMgcHl0aG9uMy1kYnVzIHB5dGhvbjMtZ29iamVjdCBweXRob24zLXJlcXVlc3RzCi0gdHJh Y2tlciB0cmFja2VyLW1pbmVycyBnc3QtcGx1Z2lucy1nb29kMSBncmlsby1wbHVnaW5zIGxpYmRh enpsZSIKKyB0cmFja2VyMyB0cmFja2VyMy1taW5lcnMgZ3N0LXBsdWdpbnMtZ29vZDEgZ3JpbG8t cGx1Z2lucyBsaWJkYXp6bGUKKyBsaWJtZWRpYWFydCIKIHNob3J0X2Rlc2M9IkdOT01FIG11c2lj IHBsYXlpbmcgYXBwbGljYXRpb24iCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZv aWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRw czovL3dpa2kuZ25vbWUub3JnL0FwcHMvTXVzaWMiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0v JHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1j aGVja3N1bT03YjgwZjYzMGQxNTgzMzQ5MzVhODc2MDI5NjU1MGNjOTFiNTBkNjA0ZmE2OGI0MDJm ZTUxNjViMTUzMWVjMzMyCitjaGVja3N1bT0zNzBhYTk3ZWU0NjEwZDExYjRiOGY2OTFlNWM5Y2Uz MGZhNTU2NjU4NzBiZjZkNWYyMzE5NjU4YmRmYWNkNzA1CiBsaWIzMmRpc2FibGVkPXllcwoKRnJv bSBiMTVjMjZjNzFiODU3MjA3ZjVlM2U2OTRlNzdlMWQwZmRlYzIwMzEwIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0 ZTogU2F0LCAxNSBBdWcgMjAyMCAwMDoxNTo1MCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDgyLzEw Ml0gZ2VkaXQ6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICB8 ICAyICstCiBzcmNwa2dzL2dlZGl0L3RlbXBsYXRlIHwgMjEgKysrKysrKysrKy0tLS0tLS0tLS0t CiAyIGZpbGVzIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IDMzZDJhMzVmYTA0 Li4yOGM5Y2QzOWUyYyAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hs aWJzCkBAIC0zNjgzLDcgKzM2ODMsNyBAQCBsaWJxaHR0cGVuZ2luZS5zby4xIHFodHRwZW5naW5l LTEuMC4xXzEKIGxpYnFtZG5zZW5naW5lLnNvLjAgcW1kbnNlbmdpbmUtMC4xLjBfMQogbGlieWFu Zy5zby4xIGxpYnlhbmctMS4wcjVfMQogbGliaHRwLnNvLjIgbGliaHRwLTAuNS4zMF8xCi1saWJn ZWRpdC0zLjM2LnNvIGdlZGl0LTMuMzYuMV8xCitsaWJnZWRpdC0zLjM4LnNvIGdlZGl0LTMuMzcu M18xCiBsaWJjaGV3aW5nLnNvLjMgbGliY2hld2luZy0wLjUuMV8xCiBsaWJkd2FydmVzLnNvLjEg cGFob2xlLTEuMTJfMQogbGliZHdhcnZlc19lbWl0LnNvLjEgcGFob2xlLTEuMTJfMQpkaWZmIC0t Z2l0IGEvc3JjcGtncy9nZWRpdC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ2VkaXQvdGVtcGxhdGUKaW5k ZXggNGUyNzNhYWYxODIuLmRjMmRlOGI0YzQ4IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dlZGl0L3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvZ2VkaXQvdGVtcGxhdGUKQEAgLTEsMTQgKzEsMTQgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ2dlZGl0JwogcGtnbmFtZT1nZWRpdAotdmVyc2lvbj0zLjM2LjEK K3ZlcnNpb249My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9oZWxwZXI9ImdpciIKIGJ1aWxkX3N0 eWxlPW1lc29uCiBweWNvbXBpbGVfZGlycz0idXNyL2xpYi9nZWRpdC9wbHVnaW5zIgotY29uZmln dXJlX2FyZ3M9Ii1EcGx1Z2lucz10cnVlIC1EdmFwaT0kKHZvcHRfaWYgdmFsYSB0cnVlIGZhbHNl KQotIC1EaW50cm9zcGVjdGlvbj0kKHZvcHRfaWYgZ2lyIHRydWUgZmFsc2UpIgorY29uZmlndXJl X2FyZ3M9Ii1EcGx1Z2lucz10cnVlCisgJCh2b3B0X2Jvb2wgZ2lyIHZhcGkpICQodm9wdF9ib29s IGdpciBpbnRyb3NwZWN0aW9uKSIKIGhvc3RtYWtlZGVwZW5kcz0iaXRzdG9vbCBwa2ctY29uZmln IGdsaWItZGV2ZWwgZ2RrLXBpeGJ1ZiBwZXJsIGdldHRleHQKLSAkKHZvcHRfaWYgdmFsYSB2YWxh KSIKKyAkKHZvcHRfaWYgZ2lyIHZhbGEpIgogbWFrZWRlcGVuZHM9ImdzZXR0aW5ncy1kZXNrdG9w LXNjaGVtYXMtZGV2ZWwgZ3NwZWxsLWRldmVsIGd0a3NvdXJjZXZpZXc0LWRldmVsCiAgbGlicGVh cy1kZXZlbCBsaWJzb3VwLWRldmVsIHRlcGwtZGV2ZWwgJCh2b3B0X2lmIGdpciAncHl0aG9uMy1n b2JqZWN0LWRldmVsJykiCiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMgZ3NldHRpbmdzLWRl c2t0b3Atc2NoZW1hcyBpc28tY29kZXMiCkBAIC0xNywyMyArMTcsMjIgQEAgbWFpbnRhaW5lcj0i RW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3It bGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0dlZGl0IgogZGlz dGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9 LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NmRjMzhlZGEyMjdkMWMzNjhlMDM5ZTliZmY0 ODVkMGJlZTlhNDlkNWY5NTYwYzM4N2VlMDhmNTgxOGE0ZTM4Nwotc2hsaWJfcHJvdmlkZXM9Imxp YmdlZGl0LTMuMzYuc28iCitjaGVja3N1bT00NmNmMDY4MDZkZTU4ZjZlNWU5NWUzNGZkOThhZDBi MmMwYzUwYjNkYWU2ZDIzY2E1N2QxNmQ1Y2M0MTg1NmY4CitzaGxpYl9wcm92aWRlcz0ibGliZ2Vk aXQtMy4zOC5zbyIKIHB5dGhvbl92ZXJzaW9uPTMKIAotYnVpbGRfb3B0aW9ucz0iZ2lyIHZhbGEi Ci1idWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciB2YWxhIgorYnVpbGRfb3B0aW9ucz0iZ2lyIgor YnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCiAKIGdlZGl0LWRldmVsX3BhY2thZ2UoKSB7Ci0J ZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IGd0a3NvdXJjZXZp ZXctZGV2ZWwgbGlicGVhcy1kZXZlbCIKKwlkZXBlbmRzPSIke3NvdXJjZXBrZ30+PSR7dmVyc2lv bn1fJHtyZXZpc2lvbn0gZ3Rrc291cmNldmlldzQtZGV2ZWwKKwkgbGlicGVhcy1kZXZlbCB0ZXBs LWRldmVsIgogCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKIAlwa2dfaW5zdGFs bCgpIHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUKIAkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKIAkJ aWYgWyAiJGJ1aWxkX29wdGlvbl9naXIiIF07IHRoZW4KIAkJCXZtb3ZlIHVzci9zaGFyZS9nZWRp dC9naXItMS4wCi0JCWZpCi0JCWlmIFsgIiRidWlsZF9vcHRpb25fdmFsYSIgXTsgdGhlbgogCQkJ dm1vdmUgdXNyL3NoYXJlL3ZhbGEKIAkJZmkKIAl9CgpGcm9tIDhiMzNmMDAyYTMwYmQxODZkMzg2 NzA0OGE3NzYxYWU3MmEwMTYyNzEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmll bCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTYXQsIDE1IEF1ZyAyMDIwIDAw OjE4OjQ5ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwODMvMTAyXSBnZWRpdC1wbHVnaW5zOiB1cGRh dGUgdG8gMy4zOC4wCgotLS0KIHNyY3BrZ3MvZ2VkaXQtcGx1Z2lucy90ZW1wbGF0ZSB8IDggKysr Ky0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9nZWRpdC1wbHVnaW5zL3RlbXBsYXRlIGIvc3JjcGtncy9nZWRp dC1wbHVnaW5zL3RlbXBsYXRlCmluZGV4IGYyZjk0ZTYzZjU5Li5iNzgzM2RiMTJkZSAxMDA2NDQK LS0tIGEvc3JjcGtncy9nZWRpdC1wbHVnaW5zL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ2VkaXQt cGx1Z2lucy90ZW1wbGF0ZQpAQCAtMSwxMSArMSwxMSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn Z2VkaXQtcGx1Z2lucycKIHBrZ25hbWU9Z2VkaXQtcGx1Z2lucwotdmVyc2lvbj0zLjM2LjIKK3Zl cnNpb249My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogcHljb21waWxlX2Rp cnM9InVzci9saWIvZ2VkaXQvcGx1Z2lucyIKLWhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBnbGli LWRldmVsIGl0c3Rvb2wgcGtnLWNvbmZpZyB2YWxhIGFwcHN0cmVhbS1nbGliIHB5dGhvbjMtZ29i amVjdAotIGd1Y2hhcm1hcC1kZXZlbCB2dGUzLWRldmVsIgoraG9zdG1ha2VkZXBlbmRzPSJnZXR0 ZXh0IGdsaWItZGV2ZWwgaXRzdG9vbCBwa2ctY29uZmlnIHZhbGEgYXBwc3RyZWFtLWdsaWIKKyBw eXRob24zLWdvYmplY3QgZ3VjaGFybWFwLWRldmVsIHZ0ZTMtZGV2ZWwiCiBtYWtlZGVwZW5kcz0i Z2VkaXQtZGV2ZWwgZ3Rrc291cmNldmlldzQtZGV2ZWwgZ3RrKzMtZGV2ZWwgbGliZ2l0Mi1nbGli LWRldmVsCiAgbGliZ2xpYi1kZXZlbCBsaWJwZWFzLWRldmVsIHB5dGhvbi1kYnVzLWRldmVsIHB5 dGhvbjMtZGV2ZWwgemVpdGdlaXN0LWRldmVsIgogZGVwZW5kcz0icHl0aG9uMy1nb2JqZWN0IGd1 Y2hhcm1hcCB2dGUzIgpAQCAtMTQsNSArMTQsNSBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8 Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVw YWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL2FjdGlvbi9zaG93L0FwcHMvR2VkaXQvUGx1Z2lu c0xpc3RzIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4q fS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09MTE1MWI5NTUzOTNmNzVi NWVlNTliNTExNTRmZGE0ZjE5MjhmNDk4ZmU5ODZhNTU4NGQzY2Q0NDA4NzZhNmFmNgorY2hlY2tz dW09YmRhMmJkNWFkN2ViZGQ1MzVkMWNjNmM4NzAwYzI5NWRlYzY0YjIyN2M5MTczYzBkMmJhZTAw Njc1MTYyNTlmYgogcHl0aG9uX3ZlcnNpb249MwoKRnJvbSBkZmMzOTk2MjdiOWEwZWYzN2FhNTFj MTY0Y2JmZjBlMTM1MGVkMGRiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwg S29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU2F0LCAxNSBBdWcgMjAyMCAwMDoz Mzo0OSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDg0LzEwMl0gZ25vbWUtbGF0ZXg6IHVwZGF0ZSB0 byAzLjM4LjAKCi0tLQogc3JjcGtncy9nbm9tZS1sYXRleC90ZW1wbGF0ZSB8IDYgKysrLS0tCiAx IGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvZ25vbWUtbGF0ZXgvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWxhdGV4L3Rl bXBsYXRlCmluZGV4IDkwZDYwYmU4NjBhLi44M2ExNmY5ZDRhMiAxMDA2NDQKLS0tIGEvc3JjcGtn cy9nbm9tZS1sYXRleC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWxhdGV4L3RlbXBsYXRl CkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtbGF0ZXgnCiBwa2du YW1lPWdub21lLWxhdGV4Ci12ZXJzaW9uPTMuMzIuMAotcmV2aXNpb249MgordmVyc2lvbj0zLjM4 LjAKK3JldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9Z251LWNvbmZp Z3VyZQogY29uZmlndXJlX2FyZ3M9Ii0tZGlzYWJsZS1hcHBzdHJlYW0tdXRpbCAtLWRpc2FibGUt ZGNvbmYtbWlncmF0aW9uCkBAIC0xNSw3ICsxNSw3IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5k IDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVyIgogaG9t ZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9HTk9NRS1MYVRlWCIKIGRpc3RmaWxl cz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3Zl cnNpb259LnRhci54eiIKLWNoZWNrc3VtPTBmMDY5YzdiNGM2NzU0MjU1YTFjN2UzZTNiMDUwOTI1 ZDgwNzZmNTU0NTg1MjZhMzBhYjU5ZTBhN2Q1MmFjYzkKK2NoZWNrc3VtPWE4MmE5ZmM2ZjA1Njky OWVhMThkNmRmZmQxMjFlNzFiMmMyMTc2ODgwOGM4NmVmMWYzNGRhMGY4NmUyMjBkNzcKIAogYnVp bGRfb3B0aW9ucz0iZ2lyIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCgpGcm9tIDhlNjYy ZTc0MWVhOTUwMDQ3ZDZmODdjYWQ1YTliMDI4MjkwMTcyMWQgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4s IDE2IEF1ZyAyMDIwIDA0OjIzOjMzICswMjAwClN1YmplY3Q6IFtQQVRDSCAwODUvMTAyXSBiYW9i YWI6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9iYW9iYWIvdGVtcGxhdGUgfCA0ICsr LS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9iYW9iYWIvdGVtcGxhdGUgYi9zcmNwa2dzL2Jhb2JhYi90ZW1wbGF0 ZQppbmRleCBhMDI4YmU0Y2Q1Yi4uODgyMTU1MzU2YTQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYmFv YmFiL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvYmFvYmFiL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnYmFvYmFiJwogcGtnbmFtZT1iYW9iYWIKLXZlcnNpb249 My4zNC4xCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGhv c3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBwa2ctY29uZmlnIGl0c3Rvb2wgZ2xpYi1kZXZlbCB2YWxh IgpAQCAtMTEsNCArMTEsNCBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRs aW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR0ZETC0xLjEtb3ItbGF0ZXIi CiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9hY3Rpb24vc2hvdy9BcHBzL0Rpc2tV c2FnZUFuYWx5emVyIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJz aW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09N2Y5ODFkNGYx MzVlNGY4MGZiYTNmNjZlODZiMGVlZWRjOTRhMjQzNDY0OTI2MmZmMDFhNWYwY2IwMjdiMjBjNQor Y2hlY2tzdW09MDQ4NDY4MTQ3ODYwODE2Yjk3ZjE1ZDUwYjNjODRlOWFjZjA1MzljMTQ0MWNmZWI2 MzcwM2QxMTJlODcyODMyOQoKRnJvbSA2ZjMxM2I5MDI5Nzk2MTU0NDI3ZTExMjY3ZjJlNmM1YjA0 ZTVjNTc1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5p ZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAwNDozMTo1MyArMDIwMApT dWJqZWN0OiBbUEFUQ0ggMDg2LzEwMl0gZ25vbWUtYm94ZXM6IHVwZGF0ZSB0byAzLjM4LjAKCi0t LQogc3JjcGtncy9nbm9tZS1ib3hlcy90ZW1wbGF0ZSB8IDcgKysrKy0tLQogMSBmaWxlIGNoYW5n ZWQsIDQgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dz L2dub21lLWJveGVzL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1ib3hlcy90ZW1wbGF0ZQppbmRl eCAwZmEyYWU3NmM3Mi4uZTUxZDJkMTlhNWQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtYm94 ZXMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1ib3hlcy90ZW1wbGF0ZQpAQCAtMSw2ICsx LDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWJveGVzJwogcGtnbmFtZT1nbm9tZS1i b3hlcwotdmVyc2lvbj0zLjM2LjUKK3ZlcnNpb249My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9o ZWxwZXI9ImdpciIKIGJ1aWxkX3N0eWxlPW1lc29uCkBAIC04LDcgKzgsOCBAQCBob3N0bWFrZWRl cGVuZHM9ImdldHRleHQgaXRzdG9vbCBwa2ctY29uZmlnIHZhbGEgZ2xpYi1kZXZlbCIKIG1ha2Vk ZXBlbmRzPSJjbHV0dGVyLWd0ay1kZXZlbCBmcmVlcmRwLWRldmVsIGd0ay12bmMtZGV2ZWwgbGli YXJjaGl2ZS1kZXZlbAogIGxpYmdsaWItZGV2ZWwgbGliZ3VkZXYtZGV2ZWwgbGlib3NpbmZvLWRl dmVsIGxpYnNlY3JldC1kZXZlbCBsaWJzb3VwLWRldmVsCiAgbGlidXNiLWRldmVsIGxpYnZpcnQt Z2xpYi1kZXZlbCBsaWJ4bWwyLWRldmVsIHNwaWNlLWd0ay1kZXZlbCBzcGljZS1wcm90b2NvbAot IHRyYWNrZXItZGV2ZWwgdmFsYS1kZXZlbCB3ZWJraXQyZ3RrLWRldmVsIHZ0ZTMtZGV2ZWwiCisg dHJhY2tlci1kZXZlbCB2YWxhLWRldmVsIHdlYmtpdDJndGstZGV2ZWwgdnRlMy1kZXZlbCBndGtz b3VyY2V2aWV3NC1kZXZlbAorIGxpYmhhbmR5LWRldmVsIgogZGVwZW5kcz0iZGVza3RvcC1maWxl LXV0aWxzIGhpY29sb3ItaWNvbi10aGVtZSBsaWJvc2luZm8gbGlidmlydC1nbGliIHFlbXUgdHJh Y2tlciIKIHNob3J0X2Rlc2M9IkdOT01FIDMgYXBwbGljYXRpb24gdG8gYWNjZXNzIHJlbW90ZSBv ciB2aXJ0dWFsIHN5c3RlbXMiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRs aW51eC5vcmc+IgpAQCAtMTYsNCArMTcsNCBAQCBsaWNlbnNlPSJMR1BMLTIuMC1vci1sYXRlciIK IGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvQm94ZXMiCiBjaGFuZ2Vsb2c9 Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9HTk9NRS9nbm9tZS1ib3hlcy9nbm9t ZS0zLTM2L05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNp b24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT00YzU0Y2FiZTM1 NWU4NzhkMDQ1NzUxNzM0NmU0MjQ3YTg2MGI2ODgzNDEzZDNiZjc3NjgxZGNkMTFlZjQxYmNlCitj aGVja3N1bT02OTZiNTk5ZmMyMWFmOTQxOTc1Njc5MjA1ZjJiMTI5Y2ZmYTAzNjMyYzQ0NDgxMGRk OTRiMTQwOWQwNDFhMzhiCgpGcm9tIGM2YWNjNTVlNzU0ZDJhYTUwNjgxOWIwOWZhNzZmYjcxMmI0 NzBhZGIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmll bEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDA0OjM1OjI0ICswMjAwClN1 YmplY3Q6IFtQQVRDSCAwODcvMTAyXSBnbm9tZS1jYWxjdWxhdG9yOiB1cGRhdGUgdG8gMy4zOC4w CgotLS0KIHNyY3BrZ3MvZ25vbWUtY2FsY3VsYXRvci90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZp bGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZ25vbWUtY2FsY3VsYXRvci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtY2FsY3Vs YXRvci90ZW1wbGF0ZQppbmRleCAwNjIxNGIwOGQ5Yi4uZGU4MWU0ODk2OWUgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3MvZ25vbWUtY2FsY3VsYXRvci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWNh bGN1bGF0b3IvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdn bm9tZS1jYWxjdWxhdG9yJwogcGtnbmFtZT1nbm9tZS1jYWxjdWxhdG9yCi12ZXJzaW9uPTMuMzYu MAotcmV2aXNpb249MgordmVyc2lvbj0zLjM4LjAKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1l c29uCiBidWlsZF9oZWxwZXI9ImdpciIKIGhvc3RtYWtlZGVwZW5kcz0iY21ha2UgZ2V0dGV4dCBn bGliLWRldmVsIGl0c3Rvb2wgcGtnLWNvbmZpZyB2YWxhIgpAQCAtMTQsNCArMTQsNCBAQCBsaWNl bnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcv QXBwcy9DYWxjdWxhdG9yIgogY2hhbmdlbG9nPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVu dC5jb20vR05PTUUvZ25vbWUtY2FsY3VsYXRvci9nbm9tZS0zLTMyL05FV1MiCiBkaXN0ZmlsZXM9 IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJz aW9ufS50YXIueHoiCi1jaGVja3N1bT1hMmU4MzBmOWM5ODU2ZmFkNjVkYWQxZDZjMGFlNmFiYWQw ZjBiNDk2Yzk5ODRhYzAwNTMxNWM1Y2M0MjIwZGIzCitjaGVja3N1bT05MDJlMjNmZjU1MDY5MmIw MjQ1OWUxNGQ2ZWJiYThiNjcwNjYzYTlmNGFmMGQ5OGVlNTJmYWRlYTg5NWI1N2ZlCgpGcm9tIGVl MTMwYjJkODNjNzNjZDBhM2JiNjIyOGU5NDNjYWM0OGU2ODQ3MzQgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBT dW4sIDE2IEF1ZyAyMDIwIDA0OjQ0OjU4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwODgvMTAyXSBn bm9tZS1kaXNrLXV0aWxpdHk6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9nbm9tZS1k aXNrLXV0aWxpdHkvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0 aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWRpc2st dXRpbGl0eS90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtZGlzay11dGlsaXR5L3RlbXBsYXRlCmlu ZGV4IGRjNjdiYmJhNzg1Li42ZWY3YmU2MTAzZSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1k aXNrLXV0aWxpdHkvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1kaXNrLXV0aWxpdHkvdGVt cGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1kaXNrLXV0 aWxpdHknCiBwa2duYW1lPWdub21lLWRpc2stdXRpbGl0eQotdmVyc2lvbj0zLjM2LjEKLXJldmlz aW9uPTIKK3ZlcnNpb249My4zOC4wCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogY29u ZmlndXJlX2FyZ3M9Ii1EbG9naW5kPW5vbmUiCiBob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwg Z3RrLWRvYyBpbnRsdG9vbCBwa2ctY29uZmlnIGxpYnhzbHQiCkBAIC0xMyw1ICsxMyw1IEBAIG1h aW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJH UEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9E aXNrcyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0v JHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTc5MWIxOGYyMzFiY2JjNmQ5 NDFhZjM4MzdjYTViZTE0ZjIxNTdlNWNlM2QzMmJkYzViOWViODk0N2UxMmI0MTQKK2NoZWNrc3Vt PTc3MzRjZTY2OGQ5ZWMzMTI4NmFiZDc5NDRmOTUxOTAyMTAyODhmYmM1NDcwNGYwNWJjNTVjYmQw MzQwYjUyMjMKIGxpYjMyZGlzYWJsZWQ9eWVzCgpGcm9tIGY1ZGE3N2QwNjg2NDQ4OGZjYjAwNmNj NDRjZTcxY2I1MmVkMGE3MmUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBL b2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDA0OjQ5 OjI2ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwODkvMTAyXSBnbm9tZS1zY3JlZW5zaG90OiB1cGRh dGUgdG8gMy4zOC4wCgotLS0KIHNyY3BrZ3MvZ25vbWUtc2NyZWVuc2hvdC90ZW1wbGF0ZSB8IDgg KysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1zY3JlZW5zaG90L3RlbXBsYXRlIGIvc3JjcGtn cy9nbm9tZS1zY3JlZW5zaG90L3RlbXBsYXRlCmluZGV4IDk5Y2FiNjJlZWUxLi5hMzk0ODNiYzQz NyAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1zY3JlZW5zaG90L3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvZ25vbWUtc2NyZWVuc2hvdC90ZW1wbGF0ZQpAQCAtMSwxNCArMSwxNCBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAnZ25vbWUtc2NyZWVuc2hvdCcKIHBrZ25hbWU9Z25vbWUtc2NyZWVuc2hv dAotdmVyc2lvbj0zLjM2LjAKLXJldmlzaW9uPTIKK3ZlcnNpb249My4zOC4wCityZXZpc2lvbj0x CiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJhcHBkYXRhLXRvb2xzIGdldHRl eHQgZ2xpYi1kZXZlbCBpdHN0b29sIHBrZy1jb25maWciCi1tYWtlZGVwZW5kcz0ibGliY2FuYmVy cmEtZGV2ZWwiCittYWtlZGVwZW5kcz0ibGliY2FuYmVycmEtZGV2ZWwgbGliaGFuZHkxLWRldmVs IgogZGVwZW5kcz0iZGVza3RvcC1maWxlLXV0aWxzIgogc2hvcnRfZGVzYz0iU2NyZWVuc2hvdCBj YXB0dXJlIHV0aWxpdHkgZm9yIEdOT01FIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRv eEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0i aHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNjcmVlbnNob3QiCiBkaXN0Zmls ZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2 ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0zMzQ5NWQ4OTI3MDcxNzkyNTRiNzQzZjhmNzBjOWE4 MmNkZTVjNWYyYzdlYTNkYjYzNGEyYmE3ZWE3MzMxMjY2CitjaGVja3N1bT1lNTU2ZDNkZDEzNGQ5 MTM0NGQyODU3YzA2NjQzNGJmYjY0ZjdjODViZGVjN2JjMzM3MzkzNjZiOWJjZDI5ZmMwCgpGcm9t IGMyOWU2ZDM0N2QxZDdhODI5MjQ5YzU3ZjMwNTYyMTIxOWZkMzA5NjQgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRl OiBTdW4sIDE2IEF1ZyAyMDIwIDA0OjUxOjAwICswMjAwClN1YmplY3Q6IFtQQVRDSCAwOTAvMTAy XSBnbm9tZS1zeXN0ZW0tbW9uaXRvcjogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL2du b21lLXN5c3RlbS1tb25pdG9yL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBp bnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUt c3lzdGVtLW1vbml0b3IvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLXN5c3RlbS1tb25pdG9yL3Rl bXBsYXRlCmluZGV4IGZmMTFiMzU5MGE0Li41MDYwMzY2ODdjNCAxMDA2NDQKLS0tIGEvc3JjcGtn cy9nbm9tZS1zeXN0ZW0tbW9uaXRvci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLXN5c3Rl bS1tb25pdG9yL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn Z25vbWUtc3lzdGVtLW1vbml0b3InCiBwa2duYW1lPWdub21lLXN5c3RlbS1tb25pdG9yCi12ZXJz aW9uPTMuMzYuMQordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29u CiBjb25maWd1cmVfYXJncz0iLURzeXN0ZW1kPWZhbHNlIgpAQCAtMTEsNCArMTEsNCBAQCBtYWlu dGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BM LTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvU3lz dGVtTW9uaXRvciIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lv biUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTg2NmI0N2FiMGY0 Yzc1YjBlYzU3ZDYzMDAzMzdhNzM3MzQ2M2FhYWQ1ZGY5NWVkZGZlNTM1NGMyMmJlN2JjYTEKK2No ZWNrc3VtPTczYmY3YWI0ZDU1MDNjMjU2N2Q3NmY4MzFjOWFlM2ZlMjdjMzE0OTU3NjE4ODlhZDNi MzUxZWY0YzA2OGFmZjQKCkZyb20gZmE0NzdhZjgyOWNkMmNlM2M2ZjE1YmYwZTIwMTQ5M2I5NTE1 NzcwOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVs QG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMTg6MjQ6MDIgKzAyMDAKU3Vi amVjdDogW1BBVENIIDA5MS8xMDJdIGFkd2FpdGEtaWNvbi10aGVtZTogdXBkYXRlIHRvIDMuMzgu MCwgZHJvcCBub2FyY2gKCi0tLQogc3JjcGtncy9hZHdhaXRhLWljb24tdGhlbWUvdGVtcGxhdGUg fCA3ICsrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9hZHdhaXRhLWljb24tdGhlbWUvdGVtcGxhdGUgYi9z cmNwa2dzL2Fkd2FpdGEtaWNvbi10aGVtZS90ZW1wbGF0ZQppbmRleCBmZWJkMjkxNWJlNi4uOGRk Y2RlOWI3ODcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYWR3YWl0YS1pY29uLXRoZW1lL3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvYWR3YWl0YS1pY29uLXRoZW1lL3RlbXBsYXRlCkBAIC0xLDggKzEsNyBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnYWR3YWl0YS1pY29uLXRoZW1lJwogcGtnbmFtZT1hZHdh aXRhLWljb24tdGhlbWUKLXZlcnNpb249My4zNi4xCi1yZXZpc2lvbj0yCi1hcmNocz1ub2FyY2gK K3ZlcnNpb249My4zOC4wCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBo b3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWciCiBkZXBlbmRzPSJsaWJyc3ZnIgpAQCAtMTEsNCAr MTAsNCBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+Igog bGljZW5zZT0iTEdQTC0zLjAtb3ItbGF0ZXIsIENDLUJZLVNBLTMuMCIKIGhvbWVwYWdlPSJodHRw czovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvYWR3YWl0YS1pY29uLXRoZW1lIgogZGlzdGZpbGVz PSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVy c2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZTQ5ODUxODYyNzA0NGRmZDdkYjdkNzlhNWIzZDQzNzg0 OGNhZjE5OTFlZjRlZjAzNmEyZDNhMmFjMmMxZjE0ZAorY2hlY2tzdW09NjY4M2ExYWFmMjQzMGNj ZDllYTYzOGRkNGJmZTEwMDJiYzkyYjQxMjA1MGMzZGJhMjBlNDgwZjk3OWZhYWY5NwoKRnJvbSBl NzNhYWIxYmQzZjQyY2ZhYTRkNzlkZWYwZjRlMjFlNGU4ZTU1MGFhIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTog U3VuLCAxNiBBdWcgMjAyMCAxOTo1Nzo0MyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDkyLzEwMl0g Z25vbWUtYmFja2dyb3VuZHM6IHVwZGF0ZSB0byAzLjM4LjAsIGRyb3Agbm9hcmNoCgotLS0KIHNy Y3BrZ3MvZ25vbWUtYmFja2dyb3VuZHMvdGVtcGxhdGUgfCA3ICsrKy0tLS0KIDEgZmlsZSBjaGFu Z2VkLCAzIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9nbm9tZS1iYWNrZ3JvdW5kcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtYmFja2dyb3VuZHMv dGVtcGxhdGUKaW5kZXggMGIxZWU0MjczNTMuLjBmYWMwYmIzYmVlIDEwMDY0NAotLS0gYS9zcmNw a2dzL2dub21lLWJhY2tncm91bmRzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtYmFja2dy b3VuZHMvdGVtcGxhdGUKQEAgLTEsOCArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9t ZS1iYWNrZ3JvdW5kcycKIHBrZ25hbWU9Z25vbWUtYmFja2dyb3VuZHMKLXZlcnNpb249My4zNi4w Ci1yZXZpc2lvbj0yCi1hcmNocz1ub2FyY2gKK3ZlcnNpb249My4zOC4wCityZXZpc2lvbj0xCiBi dWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPWdldHRleHQKIHNob3J0X2Rlc2M9IlNl dCBvZiBiYWNrZ3JvdW5kIGltYWdlcyBmb3IgdGhlIEdOT01FIERlc2t0b3AiCkBAIC0xMCw0ICs5 LDQgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxp Y2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIENDLUJZLTIuMCwgQ0MtQlktU0EtMi4wLCBDQy1CWS1T QS0zLjAiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLWJh Y2tncm91bmRzIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9u JS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09YjhjYjgxZTRjZjlk MDg1ZmJiMjM1NDA2MzViNDkyZDVjMTI0YTFmODYxMWMyYWE5YWM2Mzg0MTExZDc3YmIwYgorY2hl Y2tzdW09Zjc3MTJhODczYTgwYzlhOWZjZjM5NTI2MTFlZmZlYjJkOWFlZDIzYTNlOGFiZmNkYThh ZmIxNWM0MjdkMWVlMwoKRnJvbSBmMDM4MmMwYjdkOTY5YjgzMDcyMzgzYzY3NmU4MjBlMTU3OTZh MzlhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxA b2N0YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAyMToyMzoyNCArMDIwMApTdWJq ZWN0OiBbUEFUQ0ggMDkzLzEwMl0gc2ltcGxlLXNjYW46IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQog c3JjcGtncy9zaW1wbGUtc2Nhbi90ZW1wbGF0ZSB8IDcgKysrLS0tLQogMSBmaWxlIGNoYW5nZWQs IDMgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3Np bXBsZS1zY2FuL3RlbXBsYXRlIGIvc3JjcGtncy9zaW1wbGUtc2Nhbi90ZW1wbGF0ZQppbmRleCA0 YWUzYjg2NDNmZC4uYzYxN2M5ZjE1ZDMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvc2ltcGxlLXNjYW4v dGVtcGxhdGUKKysrIGIvc3JjcGtncy9zaW1wbGUtc2Nhbi90ZW1wbGF0ZQpAQCAtMSw3ICsxLDYg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3NpbXBsZS1zY2FuJwogcGtnbmFtZT1zaW1wbGUtc2Nh bgotX2dub21lX3ZlcnNpb249My4zNgotdmVyc2lvbj0zLjM2LjQKK3ZlcnNpb249My4zOC4wCiBy ZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGds aWItZGV2ZWwgaXRzdG9vbCBwa2ctY29uZmlnIHZhbGEiCkBAIC0xMSw1ICsxMCw1IEBAIHNob3J0 X2Rlc2M9IkdUSyBTaW1wbGUgc2Nhbm5pbmcgdXRpbGl0eSIKIG1haW50YWluZXI9IkVubm8gQm9s YW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVyIgog aG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9zaW1wbGUtc2NhbiIKLWRp c3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7X2dub21lX3ZlcnNpb259LyR7cGtn bmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT01NmFmMTgyOTFhNzc2M2Y3NjNkYTVm MGVkZWQyNDdkMmY4ZWJmOTExMmMyODZlZjg5MDEzMzc0OTY5ZmVmNTI1CitkaXN0ZmlsZXM9IiR7 R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9u fS50YXIueHoiCitjaGVja3N1bT00MzU2YWZmZDAzNWYwMWE1N2IxODIxOTllZmZkOTgwODcwMGVm Y2NiNDk4YmRjODM2N2JmMDliY2U0MDRjMzExCgpGcm9tIDhiMWYxNzViMTc3YWY3YzhjYjk4Yzk1 Zjg4ZWYwYTg4MTNmYTk1OWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBL b2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDIxOjIw OjU4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwOTQvMTAyXSByeWdlbDogdXBkYXRlIHRvIDAuNDAu MAoKLS0tCiBzcmNwa2dzL3J5Z2VsL3RlbXBsYXRlIHwgMTAgKysrKystLS0tLQogMSBmaWxlIGNo YW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNw a2dzL3J5Z2VsL3RlbXBsYXRlIGIvc3JjcGtncy9yeWdlbC90ZW1wbGF0ZQppbmRleCBkMjhkYmMy Y2UwOC4uNjUxNDk3NTFmNWEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcnlnZWwvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9yeWdlbC90ZW1wbGF0ZQpAQCAtMSwyMiArMSwyMiBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAncnlnZWwnCiBwa2duYW1lPXJ5Z2VsCi12ZXJzaW9uPTAuMzguMwotcmV2aXNpb249 MgordmVyc2lvbj0wLjQwLjAKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9o ZWxwZXI9ImdpciIKIGNvbmZpZ3VyZV9hcmdzPSItRGV4YW1wbGVzPWZhbHNlIC1EdGVzdHM9ZmFs c2UKICAtRHN5c3RlbWQtdXNlci11bml0cy1kaXI9bm9uZSIKIGhvc3RtYWtlZGVwZW5kcz0icGtn LWNvbmZpZyBnbGliLWRldmVsIHZhbGEiCiBtYWtlZGVwZW5kcz0ic3FsaXRlLWRldmVsIGd0aysz LWRldmVsIGxpYnNvdXAtZGV2ZWwgbGliZ2VlMDgtZGV2ZWwKLSBndXBucC1hdi1kZXZlbCBndXBu cC1kbG5hLWRldmVsIHRyYWNrZXItZGV2ZWwgbGlibWVkaWFhcnQtZGV2ZWwKLSBnc3NkcC1kZXZl bCIKKyBndXBucC1hdi1kZXZlbCBndXBucC1kbG5hLWRldmVsIHRyYWNrZXItZGV2ZWwgdHJhY2tl cjMtZGV2ZWwKKyBsaWJtZWRpYWFydC1kZXZlbCBnc3NkcC1kZXZlbCBnc3QxLWVkaXRpbmctc2Vy dmljZXMtZGV2ZWwiCiBkZXBlbmRzPSJoaWNvbG9yLWljb24tdGhlbWUgZGVza3RvcC1maWxlLXV0 aWxzIgogc2hvcnRfZGVzYz0iR05PTUUgaG9tZSBtZWRpYSBzb2x1dGlvbiIKIG1haW50YWluZXI9 Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMS1vci1s YXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL1J5Z2VsIgog ZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25h bWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09MDhjMjFhNTc3ZjdiZGFkMjY0NDZhNzVm ZmEzMjc3OGIyNjg0MmMzYjExODgxNjVmMGIxOTgxODU1OTc0N2QwMAorY2hlY2tzdW09ZDY3ZWNj ODM0ZWQwNjAzMzdlOGZhYjhjYjU1YTRmM2QwYzBjY2U0NDU3ZTBjZDMwNzkwM2EyNTM5ZjZlMmI3 NwogCiBjb25mX2ZpbGVzPSIvZXRjL3J5Z2VsLmNvbmYiCiAKCkZyb20gNzNjMzM3ZTgyMWQxNmMw YmYxYjFiZTUzZDRjYjg2ZjIzZjQ5MTQ2MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog RGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIw MjAgMDU6MjM6MzggKzAyMDAKU3ViamVjdDogW1BBVENIIDA5NS8xMDJdIGdub21lLWJ1aWxkZXI6 IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogLi4uL2dub21lLWJ1aWxkZXIvcGF0Y2hlcy9saWJnaXQy LTEuMC4wLnBhdGNoIHwgIDIyIC0tCiBzcmNwa2dzL2dub21lLWJ1aWxkZXIvcGF0Y2hlcy9tZXNv bjA1Mi5wYXRjaCAgfCAzMzQgLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmNwa2dzL2dub21lLWJ1aWxk ZXIvdGVtcGxhdGUgICAgICAgICAgICAgICAgfCAgMTUgKy0KIDMgZmlsZXMgY2hhbmdlZCwgMTAg aW5zZXJ0aW9ucygrKSwgMzYxIGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvZ25vbWUtYnVpbGRlci9wYXRjaGVzL2xpYmdpdDItMS4wLjAucGF0Y2gKIGRlbGV0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL2dub21lLWJ1aWxkZXIvcGF0Y2hlcy9tZXNvbjA1Mi5wYXRjaAoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtYnVpbGRlci9wYXRjaGVzL2xpYmdpdDItMS4wLjAucGF0 Y2ggYi9zcmNwa2dzL2dub21lLWJ1aWxkZXIvcGF0Y2hlcy9saWJnaXQyLTEuMC4wLnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YjliNGEyYmYxYS4uMDAwMDAwMDAwMDAKLS0t IGEvc3JjcGtncy9nbm9tZS1idWlsZGVyL3BhdGNoZXMvbGliZ2l0Mi0xLjAuMC5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLWNvbW1pdCA0NDEzNmEyZTVjNTI2MjNiMGU2MmMz ODg0NmY1MTFmMzA3NjE1Y2UyCi1BdXRob3I6IHE2NiA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+Ci1E YXRlOiAgIFN1biBNYXkgMyAxOTo1MjowOSAyMDIwICswMjAwCi0KLSAgICBmaXggYnVpbGQgd2l0 aCBsaWJnaXQyLTEuMC4wCi0KLWRpZmYgLS1naXQgYS9zcmMvcGx1Z2lucy9naXQvZGFlbW9uL2lw Yy1naXQtcmVwb3NpdG9yeS1pbXBsLmMgYi9zcmMvcGx1Z2lucy9naXQvZGFlbW9uL2lwYy1naXQt cmVwb3NpdG9yeS1pbXBsLmMKLWluZGV4IDdmMDEwNDIuLjJjY2M0ZGYgMTAwNjQ0Ci0tLS0gYS9z cmMvcGx1Z2lucy9naXQvZGFlbW9uL2lwYy1naXQtcmVwb3NpdG9yeS1pbXBsLmMKLSsrKyBiL3Ny Yy9wbHVnaW5zL2dpdC9kYWVtb24vaXBjLWdpdC1yZXBvc2l0b3J5LWltcGwuYwotQEAgLTMzLDEx ICszMyw3IEBACi0gI2luY2x1ZGUgImlwYy1naXQtdHlwZXMuaCIKLSAjaW5jbHVkZSAiaXBjLWdp dC11dGlsLmgiCi0gCi0tI2lmIExJQkdJVDJfU09WRVJTSU9OID49IDI4Ci0gR19ERUZJTkVfQVVU T19DTEVBTlVQX0NMRUFSX0ZVTkMgKGdpdF9idWYsIGdpdF9idWZfZGlzcG9zZSkKLS0jZWxzZQot LUdfREVGSU5FX0FVVE9fQ0xFQU5VUF9DTEVBUl9GVU5DIChnaXRfYnVmLCBnaXRfYnVmX2ZyZWUp Ci0tI2VuZGlmCi0gCi0gdHlwZWRlZiBlbnVtCi0gewpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9t ZS1idWlsZGVyL3BhdGNoZXMvbWVzb24wNTIucGF0Y2ggYi9zcmNwa2dzL2dub21lLWJ1aWxkZXIv cGF0Y2hlcy9tZXNvbjA1Mi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjhj MjhlODJjMWUuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZ25vbWUtYnVpbGRlci9wYXRjaGVz L21lc29uMDUyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzM0ICswLDAgQEAKLUZyb20gYzhi ODYyYjQ5MWNmYmJiNGY3OWIyNGQ3Y2Q5MGU0ZmIxZjM3Y2I5ZiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKLUZyb206IERpZWdvIEVzY2FsYW50ZSBVcnJlbG8gPGRpZWdvZUBnbm9tZS5vcmc+Ci1E YXRlOiBGcmksIDI1IE9jdCAyMDE5IDA0OjQ5OjE1IC0wNTAwCi1TdWJqZWN0OiBbUEFUQ0hdIFdJ UDogYnVpbGQ6IEZpeCBsaW5rX3dob2xlIHVzYWdlIGZvciBtZXNvbiAwLjUyLjAKLQotTWVzb24g MC41Mi4wIGNoYW5nZWQgaG93IGxpbmtfd2hvbGUgYmVoYXZlcyBhbmQgaW4gZG9pbmcgc28gYnJv a2Ugb3VyCi11c2FnZSBvZiBsaW5rX3dob2xlIGludGVybmFsbHkuCi0KLUEgcXVpY2sgZ2xhbmNl IG92ZXIgbWVzb25idWlsZC9iYWNrZW5kL25pbmphYmFja2VuZC5weSBzZWVtcyB0byBjb25maXJt Ci1DaHJpc3RpYW4ncyBzdXNwaWNpb24gdGhhdCBsaW5rX3dpdGggaXMgd2hhdCB3ZSB3YW50IGZv ciBpbnRlcm5hbCB1c2UsCi1hbmQgbGlua193aG9sZSBmb3IgdGhlIGZpbmFsIGJpbmFyeS4KLQot WW91IGNhbiBzZWUgc29tZSBtb3JlIHJlZmVyZW5jZXMgdG8gdGhpcyBhbmQgc2ltaWxhciBpc3N1 ZXMgaW4gdGhlCi1mb2xsb3dpbmcgamhidWlsZCBjb21taXQ6Ci1odHRwczovL2dpdGxhYi5nbm9t ZS5vcmcvR05PTUUvamhidWlsZC9jb21taXQvZGJlNjc5MDQ1ZmY1OTgyNTc3ZjIyZTdhZjhkYzhm ZGZiZDFjNjMxMQotCi1GaXhlczogaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21l LWJ1aWxkZXIvaXNzdWVzLzEwNTcKLS0tLQotIHNyYy9saWJpZGUvY29kZS9tZXNvbi5idWlsZCAg ICAgICB8ICAyICstCi0gc3JjL2xpYmlkZS9jb3JlL21lc29uLmJ1aWxkICAgICAgIHwgIDIgKy0K LSBzcmMvbGliaWRlL2RlYnVnZ2VyL21lc29uLmJ1aWxkICAgfCAgMiArLQotIHNyYy9saWJpZGUv ZWRpdG9yL21lc29uLmJ1aWxkICAgICB8ICAyICstCi0gc3JjL2xpYmlkZS9mb3VuZHJ5L21lc29u LmJ1aWxkICAgIHwgIDIgKy0KLSBzcmMvbGliaWRlL2dyZWV0ZXIvbWVzb24uYnVpbGQgICAgfCAg MiArLQotIHNyYy9saWJpZGUvZ3VpL21lc29uLmJ1aWxkICAgICAgICB8ICAyICstCi0gc3JjL2xp YmlkZS9pby9tZXNvbi5idWlsZCAgICAgICAgIHwgIDIgKy0KLSBzcmMvbGliaWRlL2xzcC9tZXNv bi5idWlsZCAgICAgICAgfCAgMiArLQotIHNyYy9saWJpZGUvcGx1Z2lucy9tZXNvbi5idWlsZCAg ICB8ICAyICstCi0gc3JjL2xpYmlkZS9wcm9qZWN0cy9tZXNvbi5idWlsZCAgIHwgIDIgKy0KLSBz cmMvbGliaWRlL3NlYXJjaC9tZXNvbi5idWlsZCAgICAgfCAgMiArLQotIHNyYy9saWJpZGUvc291 cmNldmlldy9tZXNvbi5idWlsZCB8ICAyICstCi0gc3JjL2xpYmlkZS90ZXJtaW5hbC9tZXNvbi5i dWlsZCAgIHwgIDIgKy0KLSBzcmMvbGliaWRlL3RoZW1lcy9tZXNvbi5idWlsZCAgICAgfCAgMiAr LQotIHNyYy9saWJpZGUvdGhyZWFkaW5nL21lc29uLmJ1aWxkICB8ICAyICstCi0gc3JjL2xpYmlk ZS90cmVlL21lc29uLmJ1aWxkICAgICAgIHwgIDIgKy0KLSBzcmMvbGliaWRlL3Zjcy9tZXNvbi5i dWlsZCAgICAgICAgfCAgMiArLQotIHNyYy9saWJpZGUvd2Via2l0L21lc29uLmJ1aWxkICAgICB8 ICAyICstCi0gc3JjL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgIHwgMjYgKysrKysrKysr KysrKysrKysrKysrKysrKy0KLSAyMCBmaWxlcyBjaGFuZ2VkLCA0NCBpbnNlcnRpb25zKCspLCAy MCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvY29kZS9tZXNvbi5idWls ZCBiL3NyYy9saWJpZGUvY29kZS9tZXNvbi5idWlsZAotaW5kZXggZGRhY2RjMTYyLi4xYTRmYzVk MjYgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL2NvZGUvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9s aWJpZGUvY29kZS9tZXNvbi5idWlsZAotQEAgLTE3NSw3ICsxNzUsNyBAQCBsaWJpZGVfY29kZSA9 IHN0YXRpY19saWJyYXJ5KCdpZGUtY29kZS0nICsgbGliaWRlX2FwaV92ZXJzaW9uLAotIGxpYmlk ZV9jb2RlX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAgICAgICAgICAgIHNvdXJjZXM6 IGxpYmlkZV9jb2RlX3ByaXZhdGVfaGVhZGVycyArIGxpYmlkZV9jb2RlX2dlbmVyYXRlZF9oZWFk ZXJzLAotICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX2NvZGVfZGVwcywKLS0gICAgICAg ICAgIGxpbmtfd2hvbGU6IGxpYmlkZV9jb2RlLAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGli aWRlX2NvZGUsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcu JyksCi0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvY29yZS9tZXNvbi5idWlsZCBiL3Ny Yy9saWJpZGUvY29yZS9tZXNvbi5idWlsZAotaW5kZXggMWZhODJmYWQ5Li5iYjc1Y2JmMjYgMTAw NjQ0Ci0tLS0gYS9zcmMvbGliaWRlL2NvcmUvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9saWJpZGUv Y29yZS9tZXNvbi5idWlsZAotQEAgLTExNyw3ICsxMTcsNyBAQCBsaWJpZGVfY29yZSA9IHN0YXRp Y19saWJyYXJ5KCdpZGUtY29yZS0nICsgbGliaWRlX2FwaV92ZXJzaW9uLCBsaWJpZGVfY29yZV9z b3VyYwotIGxpYmlkZV9jb3JlX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAgICAgICAg ICAgIHNvdXJjZXM6IGxpYmlkZV9jb3JlX3ByaXZhdGVfaGVhZGVycyArIGxpYmlkZV9jb3JlX2dl bmVyYXRlZF9oZWFkZXJzLAotICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX2NvcmVfZGVw cywKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV9jb3JlLAotKyAgICAgICAgICAgIGxp bmtfd2l0aDogbGliaWRlX2NvcmUsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2Rp cmVjdG9yaWVzKCcuJyksCi0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvZGVidWdnZXIv bWVzb24uYnVpbGQgYi9zcmMvbGliaWRlL2RlYnVnZ2VyL21lc29uLmJ1aWxkCi1pbmRleCBkZmZj YTIwY2EuLmI1ZTcyZDVjMCAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvZGVidWdnZXIvbWVzb24u YnVpbGQKLSsrKyBiL3NyYy9saWJpZGUvZGVidWdnZXIvbWVzb24uYnVpbGQKLUBAIC04NCw3ICs4 NCw3IEBAIGxpYmlkZV9kZWJ1Z2dlciA9IHN0YXRpY19saWJyYXJ5KCdpZGUtZGVidWdnZXItJyAr IGxpYmlkZV9hcGlfdmVyc2lvbiwKLSBsaWJpZGVfZGVidWdnZXJfZGVwID0gZGVjbGFyZV9kZXBl bmRlbmN5KAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX2RlYnVnZ2VyX3ByaXZhdGVf aGVhZGVycyArIGxpYmlkZV9kZWJ1Z2dlcl9nZW5lcmF0ZWRfaGVhZGVycywKLSAgICAgICAgICBk ZXBlbmRlbmNpZXM6IGxpYmlkZV9kZWJ1Z2dlcl9kZXBzLAotLSAgICAgICAgICAgbGlua193aG9s ZTogbGliaWRlX2RlYnVnZ2VyLAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRlX2RlYnVn Z2VyLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAot ICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL2VkaXRvci9tZXNvbi5idWlsZCBiL3NyYy9s aWJpZGUvZWRpdG9yL21lc29uLmJ1aWxkCi1pbmRleCAyODM4NDI1YjcuLjgwOGVkNzg0ZiAxMDA2 NDQKLS0tLSBhL3NyYy9saWJpZGUvZWRpdG9yL21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRl L2VkaXRvci9tZXNvbi5idWlsZAotQEAgLTEwNyw3ICsxMDcsNyBAQCBsaWJpZGVfZWRpdG9yID0g c3RhdGljX2xpYnJhcnkoJ2lkZS1lZGl0b3ItJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwgbGliaWRl X2VkaXRvcgotIAotIGxpYmlkZV9lZGl0b3JfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAg ICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX2VkaXRvcl9kZXBzLAotLSAgICAgICAgICAgbGlu a193aG9sZTogbGliaWRlX2VkaXRvciwKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV9l ZGl0b3IsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuJyks Ci0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfZWRpdG9yX2dlbmVyYXRlZF9oZWFkZXJz LAotICkKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL2ZvdW5kcnkvbWVzb24uYnVpbGQgYi9zcmMv bGliaWRlL2ZvdW5kcnkvbWVzb24uYnVpbGQKLWluZGV4IDIyNjM5N2MxNS4uZDQ4NzhhYTExIDEw MDY0NAotLS0tIGEvc3JjL2xpYmlkZS9mb3VuZHJ5L21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGli aWRlL2ZvdW5kcnkvbWVzb24uYnVpbGQKLUBAIC0xNzgsNyArMTc4LDcgQEAgbGliaWRlX2ZvdW5k cnkgPSBzdGF0aWNfbGlicmFyeSgnaWRlLWZvdW5kcnktJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwK LSAKLSBsaWJpZGVfZm91bmRyeV9kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAg ZGVwZW5kZW5jaWVzOiBsaWJpZGVfZm91bmRyeV9kZXBzLAotLSAgICAgICAgICAgbGlua193aG9s ZTogbGliaWRlX2ZvdW5kcnksCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfZm91bmRy eSwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSAg ICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV9mb3VuZHJ5X2dlbmVyYXRlZF9oZWFkZXJzLAot ICkKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL2dyZWV0ZXIvbWVzb24uYnVpbGQgYi9zcmMvbGli aWRlL2dyZWV0ZXIvbWVzb24uYnVpbGQKLWluZGV4IDM5NjhjYTQxZS4uMTIxZDQ5OGQwIDEwMDY0 NAotLS0tIGEvc3JjL2xpYmlkZS9ncmVldGVyL21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRl L2dyZWV0ZXIvbWVzb24uYnVpbGQKLUBAIC04Myw3ICs4Myw3IEBAIGxpYmlkZV9ncmVldGVyID0g c3RhdGljX2xpYnJhcnkoJ2lkZS1ncmVldGVyLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sCi0gbGli aWRlX2dyZWV0ZXJfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAgICAgICAgICAgICAgc291 cmNlczogbGliaWRlX2dyZWV0ZXJfcHJpdmF0ZV9oZWFkZXJzICsgbGliaWRlX2dyZWV0ZXJfZ2Vu ZXJhdGVkX2hlYWRlcnMsCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfZ3JlZXRlcl9k ZXBzLAotLSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRlX2dyZWV0ZXIsCi0rICAgICAgICAg ICAgbGlua193aXRoOiBsaWJpZGVfZ3JlZXRlciwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGlu Y2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9n dWkvbWVzb24uYnVpbGQgYi9zcmMvbGliaWRlL2d1aS9tZXNvbi5idWlsZAotaW5kZXggOWY0Njlk MmZhLi45NDMxMTI4MmYgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL2d1aS9tZXNvbi5idWlsZAot KysrIGIvc3JjL2xpYmlkZS9ndWkvbWVzb24uYnVpbGQKLUBAIC0yMDQsNyArMjA0LDcgQEAgbGli aWRlX2d1aSA9IHN0YXRpY19saWJyYXJ5KCdpZGUtZ3VpLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24s IGxpYmlkZV9ndWlfc291cmNlcywKLSBsaWJpZGVfZ3VpX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5j eSgKLSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV9ndWlfcHJpdmF0ZV9oZWFkZXJzICsg bGliaWRlX2d1aV9nZW5lcmF0ZWRfaGVhZGVycywKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxp YmlkZV9ndWlfZGVwcywKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV9ndWksCi0rICAg ICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfZ3VpLAotICAgaW5jbHVkZV9kaXJlY3Rvcmllczog aW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRl L2lvL21lc29uLmJ1aWxkIGIvc3JjL2xpYmlkZS9pby9tZXNvbi5idWlsZAotaW5kZXggYjViNmY0 YzY4Li5mNDhiM2JkOGQgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL2lvL21lc29uLmJ1aWxkCi0r KysgYi9zcmMvbGliaWRlL2lvL21lc29uLmJ1aWxkCi1AQCAtNjMsNyArNjMsNyBAQCBsaWJpZGVf aW8gPSBzdGF0aWNfbGlicmFyeSgnaWRlLWlvLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sIGxpYmlk ZV9pb19zb3VyY2VzLAotIAotIGxpYmlkZV9pb19kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0g ICAgICAgICAgZGVwZW5kZW5jaWVzOiBbIGxpYmdpb19kZXAsIGxpYmlkZV9jb3JlX2RlcCwgbGli aWRlX3RocmVhZGluZ19kZXAgXSwKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV9pbywK LSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV9pbywKLSAgIGluY2x1ZGVfZGlyZWN0b3Jp ZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xp YmlkZS9sc3AvbWVzb24uYnVpbGQgYi9zcmMvbGliaWRlL2xzcC9tZXNvbi5idWlsZAotaW5kZXgg MjNhYmE3NGZhLi5jODE0MGNhMDMgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL2xzcC9tZXNvbi5i dWlsZAotKysrIGIvc3JjL2xpYmlkZS9sc3AvbWVzb24uYnVpbGQKLUBAIC04NCw3ICs4NCw3IEBA IGxpYmlkZV9sc3AgPSBzdGF0aWNfbGlicmFyeSgnaWRlLWxzcC0nICsgbGliaWRlX2FwaV92ZXJz aW9uLCBsaWJpZGVfbHNwX3NvdXJjZXMsCi0gbGliaWRlX2xzcF9kZXAgPSBkZWNsYXJlX2RlcGVu ZGVuY3koCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfbHNwX3ByaXZhdGVfaGVhZGVy cywKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV9sc3BfZGVwcywKLS0gICAgICAgICAg IGxpbmtfd2hvbGU6IGxpYmlkZV9sc3AsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVf bHNwLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAot ICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL3BsdWdpbnMvbWVzb24uYnVpbGQgYi9zcmMv bGliaWRlL3BsdWdpbnMvbWVzb24uYnVpbGQKLWluZGV4IGEzM2M1MjhjOS4uZmZmNTk5ZGIzIDEw MDY0NAotLS0tIGEvc3JjL2xpYmlkZS9wbHVnaW5zL21lc29uLmJ1aWxkCi0rKysgYi9zcmMvbGli aWRlL3BsdWdpbnMvbWVzb24uYnVpbGQKLUBAIC01MSw3ICs1MSw3IEBAIGxpYmlkZV9wbHVnaW5z ID0gc3RhdGljX2xpYnJhcnkoJ2lkZS1wbHVnaW5zLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sCi0g bGliaWRlX3BsdWdpbnNfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAgICAgICAgICAgICAg c291cmNlczogbGliaWRlX3BsdWdpbnNfcHJpdmF0ZV9oZWFkZXJzLAotICAgICAgICAgIGRlcGVu ZGVuY2llczogbGliaWRlX3BsdWdpbnNfZGVwcywKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxp YmlkZV9wbHVnaW5zLAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRlX3BsdWdpbnMsCi0g ICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuJyksCi0gKQotIAot ZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvcHJvamVjdHMvbWVzb24uYnVpbGQgYi9zcmMvbGliaWRl L3Byb2plY3RzL21lc29uLmJ1aWxkCi1pbmRleCA0NjNmZjA2YmMuLjNjYzk3MjVjNiAxMDA2NDQK LS0tLSBhL3NyYy9saWJpZGUvcHJvamVjdHMvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9saWJpZGUv cHJvamVjdHMvbWVzb24uYnVpbGQKLUBAIC03OSw3ICs3OSw3IEBAIGxpYmlkZV9wcm9qZWN0cyA9 IHN0YXRpY19saWJyYXJ5KCdpZGUtcHJvamVjdHMtJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwgbGli aWRlX3ByCi0gbGliaWRlX3Byb2plY3RzX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAg ICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV9wcm9qZWN0c19wcml2YXRlX2hlYWRlcnMsCi0gICAg ICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfcHJvamVjdHNfZGVwcywKLS0gICAgICAgICAgIGxp bmtfd2hvbGU6IGxpYmlkZV9wcm9qZWN0cywKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlk ZV9wcm9qZWN0cywKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMo Jy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9zZWFyY2gvbWVzb24uYnVpbGQg Yi9zcmMvbGliaWRlL3NlYXJjaC9tZXNvbi5idWlsZAotaW5kZXggZTViM2I0M2FiLi5jZjczYWE5 MWQgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL3NlYXJjaC9tZXNvbi5idWlsZAotKysrIGIvc3Jj L2xpYmlkZS9zZWFyY2gvbWVzb24uYnVpbGQKLUBAIC01MSw3ICs1MSw3IEBAIGxpYmlkZV9zZWFy Y2ggPSBzdGF0aWNfbGlicmFyeSgnaWRlLXNlYXJjaC0nICsgbGliaWRlX2FwaV92ZXJzaW9uLCBs aWJpZGVfc2VhcmNoCi0gCi0gbGliaWRlX3NlYXJjaF9kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3ko Ci0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfc2VhcmNoX2RlcHMsCi0tICAgICAgICAg ICBsaW5rX3dob2xlOiBsaWJpZGVfc2VhcmNoLAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGli aWRlX3NlYXJjaCwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMo Jy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9zb3VyY2V2aWV3L21lc29uLmJ1 aWxkIGIvc3JjL2xpYmlkZS9zb3VyY2V2aWV3L21lc29uLmJ1aWxkCi1pbmRleCBjNGJhMTJkMWYu Ljk5NjQxMjk4YiAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvc291cmNldmlldy9tZXNvbi5idWls ZAotKysrIGIvc3JjL2xpYmlkZS9zb3VyY2V2aWV3L21lc29uLmJ1aWxkCi1AQCAtMTU4LDcgKzE1 OCw3IEBAIGxpYmlkZV9zb3VyY2V2aWV3ID0gc3RhdGljX2xpYnJhcnkoJ2lkZS1zb3VyY2V2aWV3 LScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sCi0gbGliaWRlX3NvdXJjZXZpZXdfZGVwID0gZGVjbGFy ZV9kZXBlbmRlbmN5KAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX3NvdXJjZXZpZXdf cHJpdmF0ZV9oZWFkZXJzICsgbGliaWRlX3NvdXJjZXZpZXdfZ2VuZXJhdGVkX2hlYWRlcnMsCi0g ICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfc291cmNldmlld19kZXBzLAotLSAgICAgICAg ICAgbGlua193aG9sZTogbGliaWRlX3NvdXJjZXZpZXcsCi0rICAgICAgICAgICAgbGlua193aXRo OiBsaWJpZGVfc291cmNldmlldywKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGly ZWN0b3JpZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS90ZXJtaW5hbC9t ZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvdGVybWluYWwvbWVzb24uYnVpbGQKLWluZGV4IDFkN2M5 ZjcyNy4uNmFmZmNhZTE0IDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS90ZXJtaW5hbC9tZXNvbi5i dWlsZAotKysrIGIvc3JjL2xpYmlkZS90ZXJtaW5hbC9tZXNvbi5idWlsZAotQEAgLTkzLDcgKzkz LDcgQEAgbGliaWRlX3Rlcm1pbmFsID0gc3RhdGljX2xpYnJhcnkoJ2lkZS10ZXJtaW5hbC0nICsg bGliaWRlX2FwaV92ZXJzaW9uLAotIGxpYmlkZV90ZXJtaW5hbF9kZXAgPSBkZWNsYXJlX2RlcGVu ZGVuY3koCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfdGVybWluYWxfZ2VuZXJhdGVk X2hlYWRlcnMsCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfdGVybWluYWxfZGVwcywK LS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV90ZXJtaW5hbCwKLSsgICAgICAgICAgICBs aW5rX3dpdGg6IGxpYmlkZV90ZXJtaW5hbCwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1 ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS90aGVt ZXMvbWVzb24uYnVpbGQgYi9zcmMvbGliaWRlL3RoZW1lcy9tZXNvbi5idWlsZAotaW5kZXggOWQ2 YzhlMjQ3Li5kODgzYTRiODYgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL3RoZW1lcy9tZXNvbi5i dWlsZAotKysrIGIvc3JjL2xpYmlkZS90aGVtZXMvbWVzb24uYnVpbGQKLUBAIC00Niw3ICs0Niw3 IEBAIGxpYmlkZV90aGVtZXMgPSBzdGF0aWNfbGlicmFyeSgnaWRlLXRoZW1lcy0nICsgbGliaWRl X2FwaV92ZXJzaW9uLAotIGxpYmlkZV90aGVtZXNfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAot ICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX3RoZW1lc19yZXNvdXJjZXNbMV0sCi0gICAg ICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfdGhlbWVzX2RlcHMsCi0tICAgICAgICAgICBsaW5r X3dob2xlOiBsaWJpZGVfdGhlbWVzLAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRlX3Ro ZW1lcywKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwK LSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS90aHJlYWRpbmcvbWVzb24uYnVpbGQgYi9z cmMvbGliaWRlL3RocmVhZGluZy9tZXNvbi5idWlsZAotaW5kZXggZDM4ZGRmYjY0Li5kNjI4YmUy ZmYgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL3RocmVhZGluZy9tZXNvbi5idWlsZAotKysrIGIv c3JjL2xpYmlkZS90aHJlYWRpbmcvbWVzb24uYnVpbGQKLUBAIC02Niw3ICs2Niw3IEBAIGxpYmlk ZV90aHJlYWRpbmcgPSBzdGF0aWNfbGlicmFyeSgnaWRlLXRocmVhZGluZy0nICsgbGliaWRlX2Fw aV92ZXJzaW9uLCBsaWJpZGVfCi0gbGliaWRlX3RocmVhZGluZ19kZXAgPSBkZWNsYXJlX2RlcGVu ZGVuY3koCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfdGhyZWFkaW5nX3ByaXZhdGVf aGVhZGVycywKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV90aHJlYWRpbmdfZGVwcywK LS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV90aHJlYWRpbmcsCi0rICAgICAgICAgICAg bGlua193aXRoOiBsaWJpZGVfdGhyZWFkaW5nLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5j bHVkZV9kaXJlY3RvcmllcygnLicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL3Ry ZWUvbWVzb24uYnVpbGQgYi9zcmMvbGliaWRlL3RyZWUvbWVzb24uYnVpbGQKLWluZGV4IDdiOTky MjgyOC4uNWE1OTExMDZjIDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS90cmVlL21lc29uLmJ1aWxk Ci0rKysgYi9zcmMvbGliaWRlL3RyZWUvbWVzb24uYnVpbGQKLUBAIC02MSw3ICs2MSw3IEBAIGxp YmlkZV90cmVlID0gc3RhdGljX2xpYnJhcnkoJ2lkZS10cmVlLScgKyBsaWJpZGVfYXBpX3ZlcnNp b24sIGxpYmlkZV90cmVlX3NvdXJjCi0gbGliaWRlX3RyZWVfZGVwID0gZGVjbGFyZV9kZXBlbmRl bmN5KAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX3RyZWVfcHJpdmF0ZV9oZWFkZXJz LAotICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX3RyZWVfZGVwcywKLS0gICAgICAgICAg IGxpbmtfd2hvbGU6IGxpYmlkZV90cmVlLAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRl X3RyZWUsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuJyks Ci0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvdmNzL21lc29uLmJ1aWxkIGIvc3JjL2xp YmlkZS92Y3MvbWVzb24uYnVpbGQKLWluZGV4IDZiMGUxNTdjNC4uYzc2MmFmYjY0IDEwMDY0NAot LS0tIGEvc3JjL2xpYmlkZS92Y3MvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9saWJpZGUvdmNzL21l c29uLmJ1aWxkCi1AQCAtODQsNyArODQsNyBAQCBsaWJpZGVfdmNzID0gc3RhdGljX2xpYnJhcnko J2lkZS12Y3MtJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwKLSAKLSBsaWJpZGVfdmNzX2RlcCA9IGRl Y2xhcmVfZGVwZW5kZW5jeSgKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV92Y3NfZGVw cywKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV92Y3MsCi0rICAgICAgICAgICAgbGlu a193aXRoOiBsaWJpZGVfdmNzLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJl Y3RvcmllcygnLicpLAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX3Zjc19nZW5lcmF0 ZWRfaGVhZGVycywKLSApCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS93ZWJraXQvbWVzb24uYnVp bGQgYi9zcmMvbGliaWRlL3dlYmtpdC9tZXNvbi5idWlsZAotaW5kZXggZTE3NjdhZTQ2Li5mY2U0 NzdiMzYgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL3dlYmtpdC9tZXNvbi5idWlsZAotKysrIGIv c3JjL2xpYmlkZS93ZWJraXQvbWVzb24uYnVpbGQKLUBAIC0zOSw3ICszOSw3IEBAIGxpYmlkZV93 ZWJraXQgPSBzdGF0aWNfbGlicmFyeSgnaWRlLXdlYmtpdC0nICsgbGliaWRlX2FwaV92ZXJzaW9u LCBsaWJpZGVfd2Via2l0Ci0gCi0gbGliaWRlX3dlYmtpdF9kZXAgPSBkZWNsYXJlX2RlcGVuZGVu Y3koCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfd2Via2l0X2RlcHMsCi0tICAgICAg ICAgICBsaW5rX3dob2xlOiBsaWJpZGVfd2Via2l0LAotKyAgICAgICAgICAgIGxpbmtfd2l0aDog bGliaWRlX3dlYmtpdCwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3Jp ZXMoJy4nKSwKLSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV93ZWJraXRfZ2VuZXJhdGVk X2hlYWRlcnMsCi0gKQotZGlmZiAtLWdpdCBhL3NyYy9tZXNvbi5idWlsZCBiL3NyYy9tZXNvbi5i dWlsZAotaW5kZXggM2ViOWJhNTM1Li4xMTNhMTQyYWQgMTAwNjQ0Ci0tLS0gYS9zcmMvbWVzb24u YnVpbGQKLSsrKyBiL3NyYy9tZXNvbi5idWlsZAotQEAgLTQ4LDYgKzQ4LDMwIEBAIGdub21lX2J1 aWxkZXJfZGVwcyA9IFsKLSAgIGxpYmlkZV90cmVlX2RlcCwKLSBdCi0gCi0rZ25vbWVfYnVpbGRl cl9zdGF0aWMgPSBbCi0rICBsaWJpZGVfY29kZSwKLSsgIGxpYmlkZV9jb3JlLAotKyAgbGliaWRl X2RlYnVnZ2VyLAotKyAgbGliaWRlX2VkaXRvciwKLSsgIGxpYmlkZV9mb3VuZHJ5LAotKyAgbGli aWRlX2dyZWV0ZXIsCi0rICBsaWJpZGVfZ3VpLAotKyAgbGliaWRlX2lvLAotKyAgbGliaWRlX2xz cCwKLSsgIGxpYmlkZV9wbHVnaW5zLAotKyAgbGliaWRlX3Byb2plY3RzLAotKyAgbGliaWRlX3Nl YXJjaCwKLSsgIGxpYmlkZV9zb3VyY2V2aWV3LAotKyAgbGliaWRlX3Rlcm1pbmFsLAotKyAgbGli aWRlX3RoZW1lcywKLSsgIGxpYmlkZV90aHJlYWRpbmcsCi0rICBsaWJpZGVfdHJlZSwKLSsgIGxp YmlkZV92Y3MsCi0rICBsaWJpZGVfd2Via2l0LAotKwotKyAgcGx1Z2lucywKLStdCi0rCi0gaWYg bGlic3lzcHJvZl9jYXB0dXJlLmZvdW5kKCkKLSAgIGdub21lX2J1aWxkZXJfZGVwcyArPSBsaWJz eXNwcm9mX2NhcHR1cmUKLSBlbmRpZgotQEAgLTc3LDcgKzEwMSw3IEBAIGdub21lX2J1aWxkZXIg PSBleGVjdXRhYmxlKCdnbm9tZS1idWlsZGVyJywgJ21haW4uYycsICdidWctYnVkZHkuYycsCi0g ICAgICAgICAgICAgY19hcmdzOiBsaWJpZGVfYXJncyArIGV4ZV9jX2FyZ3MgKyByZWxlYXNlX2Fy Z3MsCi0gICAgICAgICAgbGlua19hcmdzOiBleGVfbGlua19hcmdzLAotICAgICAgICAgICAgICAg IHBpZTogdHJ1ZSwKLS0gICAgICAgIGxpbmtfd2hvbGU6IHBsdWdpbnMsCi0rICAgICAgICBsaW5r X3dob2xlOiBnbm9tZV9idWlsZGVyX3N0YXRpYywKLSAgICAgIGluc3RhbGxfcnBhdGg6IHBrZ2xp YmRpcl9hYnMsCi0gICAgICAgZGVwZW5kZW5jaWVzOiBnbm9tZV9idWlsZGVyX2RlcHMsCi0gKQot LS0gCi0yLjI0LjEKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1idWlsZGVyL3RlbXBsYXRl IGIvc3JjcGtncy9nbm9tZS1idWlsZGVyL3RlbXBsYXRlCmluZGV4IDhjOGMwMTVkOGEzLi5hZDJk NGI2ZDAzYSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1idWlsZGVyL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvZ25vbWUtYnVpbGRlci90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxh dGUgZmlsZSBmb3IgJ2dub21lLWJ1aWxkZXInCiBwa2duYW1lPWdub21lLWJ1aWxkZXIKLXZlcnNp b249My4zNC4xCi1yZXZpc2lvbj02Cit2ZXJzaW9uPTMuMzguMAorcmV2aXNpb249MQogYnVpbGRf c3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj1xZW11CiBjb25maWd1cmVfYXJncz0iLUR3aXRoX3dl YmtpdD10cnVlIC1Ed2l0aF9zeXNwcm9mPXRydWUgLURoZWxwPXRydWUiCkBAIC0xMSwxNSArMTEs MTUgQEAgbWFrZWRlcGVuZHM9ImNhaXJvLWRldmVsIGNsYW5nIGRldmhlbHAtZGV2ZWwgZW5jaGFu dDItZGV2ZWwgZmxhdHBhay1kZXZlbAogIGdzcGVsbC1kZXZlbCBndGtzb3VyY2V2aWV3NC1kZXZl bCBndGsrMy1kZXZlbCBqc29uLWdsaWItZGV2ZWwganNvbnJwYy1nbGliLWRldmVsCiAgbGliZGF6 emxlLWRldmVsIGxpYmdpdDItZ2xpYi1kZXZlbCBsaWJnbGliLWRldmVsIGxpYm9zdHJlZS1kZXZl bCBsaWJwZWFzLWRldmVsCiAgbGlieG1sMi1kZXZlbCB0ZW1wbGF0ZS1nbGliLWRldmVsIHZhbGEt ZGV2ZWwgdnRlMy1kZXZlbCB3ZWJraXQyZ3RrLWRldmVsCi0gcHl0aG9uMy1nb2JqZWN0LWRldmVs IHN5c3Byb2YtZGV2ZWwgZ2xhZGUzLWRldmVsIgorIHB5dGhvbjMtZ29iamVjdC1kZXZlbCBzeXNw cm9mLWRldmVsIGdsYWRlMy1kZXZlbCBsaWJwb3J0YWwtZGV2ZWwiCiBkZXBlbmRzPSJkZXNrdG9w LWZpbGUtdXRpbHMgZmxhdHBhay1idWlsZGVyIHB5dGhvbjMtbHhtbCBkZXZoZWxwIHB5dGhvbjMt Z29iamVjdCIKIHNob3J0X2Rlc2M9IklERSBmb3IgR05PTUUiCiBtYWludGFpbmVyPSJFbm5vIEJv bGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIK IGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvQnVpbGRlciIKLWNoYW5nZWxv Zz0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLWJ1aWxkZXIvcmF3L2dub21l LWJ1aWxkZXItMy0zNC9ORVdTIgorY2hhbmdlbG9nPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcv R05PTUUvZ25vbWUtYnVpbGRlci9yYXcvZ25vbWUtYnVpbGRlci0zLTM2L05FV1MiCiBkaXN0Zmls ZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2 ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0wYjZlNDYxMDU3ZWE4MTUxZTgwNTI0YzBlYTdlZjFj Yjk0OGU5MmFmZGE5ZGM2YmQzM2FlMzM5MmYwNDUwMWE0CitjaGVja3N1bT1kNjg5NTM4YmFmOGVm YjFhY2Y3ZWE2MDcyNjhiMWFhYTE0MThkNTUxN2Q5MmQ0ZjY5NDZhM2RiZjgxNGVhZTU1CiBwYXRj aF9hcmdzPSItTnAxIgogCiBjYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KQEAgLTI4LDMg KzI4LDggQEAgY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCiAJCUxJQlMrPSIgLWxleGVj aW5mbyIKIAkJOzsKIGVzYWMKKworcHJlX2NvbmZpZ3VyZSgpIHsKKwkjIHRoaXMgdGVzdCBuZWVk cyBYCisJdnNlZCAtaSAicy90ZXN0KCd0ZXN0LXRleHQtaXRlcicvIyYvIiBzcmMvdGVzdHMvbWVz b24uYnVpbGQKK30KCkZyb20gMWFiMGY3Yjc5YWJhZWE0MjU3Y2MyMmVjNWZkZGQwZWI2ZGFmZmNl YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9j dGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTcgU2VwIDIwMjAgMDE6MjE6NTMgKzAyMDAKU3ViamVj dDogW1BBVENIIDA5Ni8xMDJdIHJldHJvLWd0azogdXBkYXRlIHRvIDEuMC4wCgotLS0KIGNvbW1v bi9zaGxpYnMgICAgICAgICAgICAgIHwgIDIgKy0KIHNyY3BrZ3MvcmV0cm8tZ3RrL3RlbXBsYXRl IHwgMTIgKysrKysrKysrLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDQg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMK aW5kZXggMjhjOWNkMzllMmMuLjhkZWUyMWM5ZGIzIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJz CisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTM1NzQsNyArMzU3NCw3IEBAIGxpYndscm9vdHMuc28u NiB3bHJvb3RzLTAuMTEuMF8xCiBsaWJiYXNlZW5jb2RlLnNvLjEgbGliYmFzZWVuY29kZS0xLjAu OV8xCiBsaWJjb3RwLnNvLjEyIGxpYmNvdHAtMS4yLjFfMQogbGlidW5hcnIuc28uMSBsaWJ1bmFy ci0xLjAuMV8xCi1saWJyZXRyby1ndGstMC4xNC5zby4wIHJldHJvLWd0ay0wLjE2LjBfMQorbGli cmV0cm8tZ3RrLTEuc28uMCByZXRyby1ndGstMS4wLjBfMQogbGlibWFuZXR0ZS0wLjIuc28uMCBs aWJtYW5ldHRlLTAuMi4xXzEKIGxpYmZtdC5zby42IGZtdC01LjIuMV8xCiBsaWJlbGVtZW50YXJ5 LWNhbGVuZGFyLnNvLjAgbGliaW8uZWxlbWVudGFyeS5jYWxlbmRhci00LjIuM18xCmRpZmYgLS1n aXQgYS9zcmNwa2dzL3JldHJvLWd0ay90ZW1wbGF0ZSBiL3NyY3BrZ3MvcmV0cm8tZ3RrL3RlbXBs YXRlCmluZGV4IGRhMGFlY2NkMjQzLi4wNGFkOWNmMDUxYiAxMDA2NDQKLS0tIGEvc3JjcGtncy9y ZXRyby1ndGsvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9yZXRyby1ndGsvdGVtcGxhdGUKQEAgLTEs MjIgKzEsMjggQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3JldHJvLWd0aycKIHBrZ25hbWU9cmV0 cm8tZ3RrCi12ZXJzaW9uPTAuMTguMAordmVyc2lvbj0xLjAuMAogcmV2aXNpb249MQogYnVpbGRf c3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgogY29uZmlndXJlX2FyZ3M9IiQodm9wdF9i b29sIGdpciBpbnRyb3NwZWN0aW9uKSIKIGhvc3RtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBwa2ct Y29uZmlnIHZhbGEiCi1tYWtlZGVwZW5kcz0iZ3RrKzMtZGV2ZWwgbGliZXBveHktZGV2ZWwgbGli Z2xpYi1kZXZlbCBwdWxzZWF1ZGlvLWRldmVsIgorbWFrZWRlcGVuZHM9Imd0ayszLWRldmVsIGxp YmVwb3h5LWRldmVsIGxpYmdsaWItZGV2ZWwgcHVsc2VhdWRpby1kZXZlbAorIGxpYnNhbXBsZXJh dGUtZGV2ZWwiCiBzaG9ydF9kZXNjPSJHVEsrIExpYnJldHJvIGZyb250ZW5kIGZyYW1ld29yayIK IG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNl PSJHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9H Tk9NRS9yZXRyby1ndGsiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3Zl cnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1jZWRiODgx MTc0YzQyZTg4OTU0ZWVjYjVkZmFjNzg5NTRhMTk4MWFhZWViZGM4OTE4Yzg4NjFjNmMwOGE0NTEy CitjaGVja3N1bT01Yzc0MzdhNzY4MTI1YTZmNjI3ZDA2M2VkODkwZTkzMjhkNDEwOGRiNTJhNmQ1 YWExMGU1MmQyZjI1YmI4OGRiCiAKIGJ1aWxkX29wdGlvbnM9ImdpciIKIGJ1aWxkX29wdGlvbnNf ZGVmYXVsdD0iZ2lyIgogCisjIG5lZWRzIFgKK2RvX2NoZWNrKCkgeworCToKK30KKwogcmV0cm8t Z3RrLWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0ibGliZ2xpYi1kZXZlbCAke3NvdXJjZXBr Z30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCiAJc2hvcnRfZGVzYys9IiAtIGRldmVsb3BtZW50 IGZpbGVzIgoKRnJvbSA1MjM0MDY1NWUyODMwMGVhMmFjODcxMGQ4N2ZlZDk4ZDM0MzBjM2MxIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZv cmdlLm9yZz4KRGF0ZTogVGh1LCAxNyBTZXAgMjAyMCAwMToyNjowMSArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMDk3LzEwMl0gZ25vbWUtZ2FtZXM6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtn cy9nbm9tZS1nYW1lcy90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNl cnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtZ2Ft ZXMvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWdhbWVzL3RlbXBsYXRlCmluZGV4IDI3MzFkZjBm NmQ5Li41OGYzMTE1NmQwNiAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1nYW1lcy90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL2dub21lLWdhbWVzL3RlbXBsYXRlCkBAIC0xLDE1ICsxLDE1IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1nYW1lcycKIHBrZ25hbWU9Z25vbWUtZ2FtZXMKLXZl cnNpb249My4zNC4wCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVz b24KIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBnbGliLWRldmVsIHBrZy1jb25maWcgdmFsYS1k ZXZlbCIKIG1ha2VkZXBlbmRzPSJsaWJhcmNoaXZlLWRldmVsIGdyaWxvLWRldmVsIGd0ayszLWRl dmVsIGxpYmdsaWItZGV2ZWwKICBsaWJtYW5ldHRlLWRldmVsIGxpYnJzdmctZGV2ZWwgbGlic291 cC1kZXZlbCBsaWJ4bWwyLWRldmVsIHJldHJvLWd0ay1kZXZlbAotIHNxbGl0ZS1kZXZlbCB0cmFj a2VyLWRldmVsIGxpYmhhbmR5LWRldmVsIgorIHNxbGl0ZS1kZXZlbCB0cmFja2VyLWRldmVsIGxp YmhhbmR5MS1kZXZlbCIKIHNob3J0X2Rlc2M9IkJyb3dzZSBhbmQgcGxheSB5b3VyIGdhbWVzIgog bWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9 IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBz L0dhbWVzIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4q fS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09MGZkNzI0NmQ2MWNlMjFj MGZjMTIxYzU0ODgwNTFhNTg2NmMxOWRlMmMyODM1YWQ3ZmU0YjE4YzA2NjI3ZGNiYQorY2hlY2tz dW09NWM4NjhmZDZlYjBiOGQyM2I5OTUwMzk2MzMwNDNlOTBkOGQ5Mzg1NmQzMTU4MzJkZTNhMzE1 ZDdiMWU1NGU0OAoKRnJvbSAzOTg4NzljNjhiODU1MmRmZDFmOTdmMDk4OTFhMDBiMjE2MTFkNTcw IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0 YWZvcmdlLm9yZz4KRGF0ZTogRnJpLCAxNCBBdWcgMjAyMCAyMzoyMjozNCArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggMDk4LzEwMl0gZ25vbWUtcGFuZWw6IHVwZGF0ZSB0byAzLjM3LjEKCi0tLQogY29t bW9uL3NobGlicyAgICAgICAgICAgICAgICB8IDIgKy0KIHNyY3BrZ3MvZ25vbWUtcGFuZWwvdGVt cGxhdGUgfCA2ICsrKy0tLQogMiBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5k ZXggOGRlZTIxYzlkYjMuLjA2MTg4Njg1MDhhIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisr KyBiL2NvbW1vbi9zaGxpYnMKQEAgLTU2NCw3ICs1NjQsNyBAQCBsaWJwYWNrYWdla2l0LWdsaWIy LnNvLjE4IFBhY2thZ2VLaXQtMS4xLjEyXzEKIGxpYnBzbC5zby41IGxpYnBzbC0wLjIwLjJfMQog bGlic291cC0yLjQuc28uMSBsaWJzb3VwLTIuMzQuMF8xCiBsaWJzb3VwLWdub21lLTIuNC5zby4x IGxpYnNvdXAtZ25vbWUtMi4zNC4wXzEKLWxpYnBhbmVsLWFwcGxldC5zby4zIGdub21lLXBhbmVs LTMuMzAuMF8xCitsaWJnbm9tZS1wYW5lbC5zby4wIGdub21lLXBhbmVsLTMuMzcuMV8xCiBsaWJ1 bmludW0uc28uNSBsaWJ1bmludW0tMi43XzEKIGxpYnVuaXF1ZS0zLjAuc28uMCBsaWJ1bmlxdWUt Mi45MS40XzEKIGxpYndlYmtpdDJndGstNC4wLnNvLjM3IHdlYmtpdDJndGstMi42LjJfMQpkaWZm IC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1wYW5lbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtcGFu ZWwvdGVtcGxhdGUKaW5kZXggNzBmMjNiOGI1NTEuLjI0ZDlkMmI5ZWI1IDEwMDY0NAotLS0gYS9z cmNwa2dzL2dub21lLXBhbmVsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtcGFuZWwvdGVt cGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1wYW5lbCcK IHBrZ25hbWU9Z25vbWUtcGFuZWwKLXZlcnNpb249My4zNC4xCi1yZXZpc2lvbj0zCit2ZXJzaW9u PTMuMzcuMQorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogY29uZmlndXJl X2FyZ3M9ImF4X2N2X3pvbmVpbmZvX3R6ZGlyPS91c3Ivc2hhcmUvem9uZWluZm8iCiBob3N0bWFr ZWRlcGVuZHM9ImdldHRleHQtZGV2ZWwgZ2xpYi1kZXZlbCBpdHN0b29sIHBrZy1jb25maWcgdHpk YXRhIGdldHRleHQiCkBAIC0xNCw3ICsxNCw3IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxn b3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHRkRMLTEu MS1vci1sYXRlciwgTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdu b21lLm9yZy9Qcm9qZWN0cy9Hbm9tZVBhbmVsIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7 cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hl Y2tzdW09YTZiYzAyNTUyNTJlZWI0Yjk2NGJjYmU1NWZkNzkwOGI2OWY5MTRjMDYyYzVlYzhkZmY1 YWMwMjYyZDI5YjkwZAorY2hlY2tzdW09MWQ1OThmZDY4OTMzZTc2MDE4ZjJmYjExNmE3ODcxY2Jj MDAzM2MxZjEwOWJmYmZlMDhhMWVjYjU2MDY3ZDE1MgogcGF0Y2hfYXJncz0iLU5wMSIKIAogZ25v bWUtcGFuZWwtZGV2ZWxfcGFja2FnZSgpIHsKCkZyb20gYjFmMzVmMDlkNDNkMjcxOWNmMDc3NDIw YTkwN2M0M2IwNmViYThlYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtv bGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IEZyaSwgMTQgQXVnIDIwMjAgMjM6MjQ6 NTEgKzAyMDAKU3ViamVjdDogW1BBVENIIDA5OS8xMDJdIG1ldGFjaXR5OiB1cGRhdGUgdG8gMy4z Ny4xCgotLS0KIHNyY3BrZ3MvbWV0YWNpdHkvdGVtcGxhdGUgfCA5ICsrKystLS0tLQogMSBmaWxl IGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmNwa2dzL21ldGFjaXR5L3RlbXBsYXRlIGIvc3JjcGtncy9tZXRhY2l0eS90ZW1wbGF0ZQppbmRl eCA1YWEyMzE0OTJlNy4uNDMwOTc3NmJkNTQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbWV0YWNpdHkv dGVtcGxhdGUKKysrIGIvc3JjcGtncy9tZXRhY2l0eS90ZW1wbGF0ZQpAQCAtMSwxOCArMSwxNyBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbWV0YWNpdHknCiBwa2duYW1lPW1ldGFjaXR5Ci1yZXZl cnRzPSIzLjM3LjFfMSIKLXZlcnNpb249My4zNC4xCit2ZXJzaW9uPTMuMzcuMQogcmV2aXNpb249 MQogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGdl dHRleHQtZGV2ZWwgZ2xpYi1kZXZlbCBpdHN0b29sIHBrZy1jb25maWcgeWVscC10b29scyB6ZW5p dHkiCiBtYWtlZGVwZW5kcz0iZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy1kZXZlbCBndGsrMy1k ZXZlbCBsaWJjYW5iZXJyYS1kZXZlbAogIGxpYmdsaWItZGV2ZWwgbGliZ3RvcC1kZXZlbCBsaWJT TS1kZXZlbCBsaWJYY29tcG9zaXRlLWRldmVsIGxpYlhkYW1hZ2UtZGV2ZWwKLSBsaWJYZml4ZXMt ZGV2ZWwgbGliWGluZXJhbWEtZGV2ZWwgbGliWHJlbmRlci1kZXZlbCBsaWJYMTEtZGV2ZWwgcGFu Z28tZGV2ZWwKLSBzdGFydHVwLW5vdGlmaWNhdGlvbi1kZXZlbCBWdWxrYW4tSGVhZGVycyB2dWxr YW4tbG9hZGVyIgorIGxpYlhmaXhlcy1kZXZlbCBsaWJYaW5lcmFtYS1kZXZlbCBsaWJYcmVuZGVy LWRldmVsIGxpYlgxMS1kZXZlbCBsaWJYcmVzLWRldmVsCisgcGFuZ28tZGV2ZWwgc3RhcnR1cC1u b3RpZmljYXRpb24tZGV2ZWwgVnVsa2FuLUhlYWRlcnMgdnVsa2FuLWxvYWRlciIKIGRlcGVuZHM9 Inplbml0eSIKIHNob3J0X2Rlc2M9IldpbmRvdyBNYW5hZ2VyIGZvciB0aGUgR05PTUUgZW52aXJv bm1lbnQiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+Igog bGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9t ZS5vcmcvR05PTUUvbWV0YWNpdHkiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1l fS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0z MWM3ZDEwNDVjMzkwYWZiM2JmNDA1NzM1YjBiMjZjNDU5MTk3Y2JmNDNhZjM3YzQ2OWViODkxOGNl M2E0NTNkCitjaGVja3N1bT04MGQ2ZjNkOTVhNDMyOGZiMjZkMGE2NDcxZjU3NWI3NDJiMzZiOGYy NzIxZjhmM2MxODA3MTk3ZmE5MDBhMTI2CgpGcm9tIGIwZjhkY2NmZGQ4YmMyYWI1OTJhYWFkOTIz YTc5MTQwODc2YTczYTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xl c2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBGcmksIDE0IEF1ZyAyMDIwIDIzOjQwOjM0 ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMDAvMTAyXSBnbm9tZS1mbGFzaGJhY2s6IHVwZGF0ZSB0 byAzLjM3LjIKCkFkZGVkIFBBTSBjb25maWcgYXMgc3VnZ2VzdGVkIGJ5IG1uYWJpZC4KLS0tCiAu Li4vZ25vbWUtZmxhc2hiYWNrL2ZpbGVzL2dub21lLWZsYXNoYmFjay5wYW0gfCAgNiArKysrCiBz cmNwa2dzL2dub21lLWZsYXNoYmFjay90ZW1wbGF0ZSAgICAgICAgICAgICAgfCAzNCArKysrKysr KysrKysrKy0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDMxIGluc2VydGlvbnMoKyksIDkgZGVsZXRp b25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbm9tZS1mbGFzaGJhY2svZmlsZXMv Z25vbWUtZmxhc2hiYWNrLnBhbQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtZmxhc2hiYWNr L2ZpbGVzL2dub21lLWZsYXNoYmFjay5wYW0gYi9zcmNwa2dzL2dub21lLWZsYXNoYmFjay9maWxl cy9nbm9tZS1mbGFzaGJhY2sucGFtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi5mNzc2ZjBiMzYzMgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZ25vbWUtZmxhc2hi YWNrL2ZpbGVzL2dub21lLWZsYXNoYmFjay5wYW0KQEAgLTAsMCArMSw2IEBACisjJVBBTS0xLjAK K2F1dGggICAgIGluY2x1ZGUgIHN5c3RlbS1hdXRoCithdXRoICAgICBvcHRpb25hbCBwYW1fZ25v bWVfa2V5cmluZy5zbworYWNjb3VudCAgaW5jbHVkZSAgc3lzdGVtLWF1dGgKK3Bhc3N3b3JkIGlu Y2x1ZGUgIHN5c3RlbS1hdXRoCitzZXNzaW9uICBpbmNsdWRlICBzeXN0ZW0tYXV0aApkaWZmIC0t Z2l0IGEvc3JjcGtncy9nbm9tZS1mbGFzaGJhY2svdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWZs YXNoYmFjay90ZW1wbGF0ZQppbmRleCBkMzIxMjBjYWI2Zi4uNjhhMWE2NzRhY2YgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvZ25vbWUtZmxhc2hiYWNrL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUt Zmxhc2hiYWNrL3RlbXBsYXRlCkBAIC0xLDIwICsxLDM2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICdnbm9tZS1mbGFzaGJhY2snCiBwa2duYW1lPWdub21lLWZsYXNoYmFjawotdmVyc2lvbj0zLjM0 LjIKK3ZlcnNpb249My4zNy4yCiByZXZpc2lvbj0xCiBidWlsZF9oZWxwZXI9Z2lyCiBidWlsZF9z dHlsZT1nbnUtY29uZmlndXJlCi1jb25maWd1cmVfYXJncz0iLS1lbmFibGUtY29tcGlsZS13YXJu aW5ncz1taW5pbXVtIgotaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGF1dG9tYWtlIGdsaWIt ZGV2ZWwgZ2V0dGV4dCIKLW1ha2VkZXBlbmRzPSJndGsrMy1kZXZlbCBnc2V0dGluZ3MtZGVza3Rv cC1zY2hlbWFzLWRldmVsCi0gbGliZ2xpYi1kZXZlbCBnZGstcGl4YnVmLWRldmVsIHVwb3dlci1k ZXZlbCBpYnVzLWRldmVsIHBvbGtpdC1kZXZlbAotIHB1bHNlYXVkaW8tZGV2ZWwgbGliY2FuYmVy cmEtZGV2ZWwgbGlieGNiLWRldmVsIGxpYlgxMS1kZXZlbCBwYW5nby1kZXZlbAotIGxpYnhrYmZp bGUtZGV2ZWwgZ25vbWUtYmx1ZXRvb3RoLWRldmVsIGdub21lLWRlc2t0b3AtZGV2ZWwiCitjb25m aWd1cmVfYXJncz0iLS13aXRoLWNvbXBpei1zZXNzaW9uIC0tZW5hYmxlLWNvbXBpbGUtd2Fybmlu Z3M9bWluaW11bSIKK2hvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBnZXR0ZXh0IGdldHRleHQt ZGV2ZWwgYXV0b21ha2UgbGlidG9vbCBnbGliLWRldmVsIgorbWFrZWRlcGVuZHM9InBhbS1kZXZl bCBlbG9naW5kLWRldmVsIHVwb3dlci1kZXZlbCBpYnVzLWRldmVsIHBvbGtpdC1kZXZlbAorIHB1 bHNlYXVkaW8tZGV2ZWwgbGliY2FuYmVycmEtZGV2ZWwgbGlieGNiLWRldmVsIGxpYlgxMS1kZXZl bCBsaWJ4a2JmaWxlLWRldmVsCisgbGliY29tcGl6Y29uZmlnLWRldmVsIGxpYmdsaWItZGV2ZWwg cGFuZ28tZGV2ZWwgZ3RrKzMtZGV2ZWwgZ2RrLXBpeGJ1Zi1kZXZlbAorIGdkbS1kZXZlbCBnbm9t ZS1ibHVldG9vdGgtZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbCBnbm9tZS1wYW5lbC1kZXZlbAor IGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMtZGV2ZWwiCiBkZXBlbmRzPSJnbm9tZS1ibHVldG9v dGggZ25vbWUtc2Vzc2lvbiBnbm9tZS1zZXR0aW5ncy1kYWVtb24KLSBnbm9tZS1wYW5lbCBnbm9t ZS10aGVtZXMtc3RhbmRhcmQgbWV0YWNpdHkiCisgZ25vbWUtcGFuZWwgZ25vbWUtdGhlbWVzLWV4 dHJhIG1ldGFjaXR5Igogc2hvcnRfZGVzYz0iR05PTUUgMyBzZXNzaW9uIHdpdGggc2ltaWxhciB1 c2VyIGV4cGVyaWVuY2UgdG8gdGhlIEdOT01FIDIueCBzZXJpZXMiCiBtYWludGFpbmVyPSJzaGl6 b25pYyA8cmVhbHRpYXpAZ21haWwuY29tPiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBo b21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9Hbm9tZUZsYXNoYmFjayIK IGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2du YW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTNiZTY1Mzg4Y2QyYzhmMzk3NDFiY2Mw NWRhODdlZjQwMDM1MTgzYTlhMzk1MDJkNjc2OTYyNDJjMmFlYjQ2OWMKK2NoZWNrc3VtPWFiMGRl MDBiMGY2YzliZjMwYzE5NjUxNTY0YmQ5YTc0YmJkZmI3ZDc2ZGQyMTE5YjI2MzFhMzY3MWY4YmU2 NTMKKworcG9zdF9leHRyYWN0KCkgeworCXZzZWQgLWkgJ3MvbGliY29tcGl6Y29uZmlnID49IDBc LjlcLjE0XC4wL2xpYmNvbXBpemNvbmZpZyA+PSAwLjguMTYuMC8nIFwKKwkJY29uZmlndXJlLmFj Cit9CisKK3ByZV9jb25maWd1cmUoKSB7CisJYXV0b3JlY29uZiAtaWYKK30KKworcG9zdF9pbnN0 YWxsKCkgeworCXZpbnN0YWxsICR7RklMRVNESVJ9L2dub21lLWZsYXNoYmFjay5wYW0gNjQ0IC9l dGMvcGFtLmQgZ25vbWUtZmxhc2hiYWNrCisJdnNlZCAtaSAtZSAicy8gLS1zeXN0ZW1kLy9nIiBc CisJCSR7REVTVERJUn0vdXNyL2xpYmV4ZWMvZ25vbWUtZmxhc2hiYWNrLXtjb21waXosbWV0YWNp dHl9Cit9CgpGcm9tIDAyYmM2NDdjOTllMDk0MzM1MmIzMDBmZTU1ZTAzODdlYzBiMWZlNWIgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9y Z2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDIxOjA1OjExICswMjAwClN1YmplY3Q6IFtQ QVRDSCAxMDEvMTAyXSBwb2xhcmk6IHVwZGF0ZSB0byAzLjM3LjMKCi0tLQogc3JjcGtncy9wb2xh cmkvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9wb2xhcmkvdGVtcGxhdGUgYi9zcmNw a2dzL3BvbGFyaS90ZW1wbGF0ZQppbmRleCAwNzY3YmFjOTdiOC4uNDFkMDhlZTgxYjUgMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3MvcG9sYXJpL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcG9sYXJpL3RlbXBs YXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncG9sYXJpJwogcGtnbmFt ZT1wb2xhcmkKLXZlcnNpb249My4zNi4zCit2ZXJzaW9uPTMuMzcuMwogcmV2aXNpb249MQogYnVp bGRfc3R5bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBpdHN0b29sIGdvYmpl Y3QtaW50cm9zcGVjdGlvbiBnZXR0ZXh0IgpAQCAtMTMsNyArMTMsNyBAQCBtYWludGFpbmVyPSJP cnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRl ciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvUG9sYXJpIgogZGlzdGZp bGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7 dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NGYyNjY0N2U5ODFjNWQwYmY0MmRmNTgyYWRhYzIw YmJmZGFjZGZlOGM0ZmUxNTBhZjBjYTAzZDJlMGNlZjUzYQorY2hlY2tzdW09NzkwNWI5ZGRiM2Y4 MTFkY2MyM2IzMDc1MDExODdlYWQ0ZGRjNzhlZDBhNjUyOWFmY2RkY2I5NDQzYmExMjkwOAogCiBp ZiBbICIkQ1JPU1NfQlVJTEQiIF0gOyB0aGVuCiAJaG9zdG1ha2VkZXBlbmRzKz0iIGdsaWItZGV2 ZWwgcHJlbGluay1jcm9zcyBxZW11LXVzZXItc3RhdGljIgoKRnJvbSA1Yzk5ZTNjZGI4NDdhNTY3 ZWM3ZDYyZDc1ZmMwMWQ4MjhlODBiODEyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBE YW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVHVlLCAxOCBBdWcgMjAy MCAwNTozNTowNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTAyLzEwMl0gYnVkZ2llLWRlc2t0b3A6 IHJlYnVpbGQgZm9yIG11dHRlci03CgpbY2kgc2tpcF0KLS0tCiAuLi4vYnVkZ2llLWRlc2t0b3Av cGF0Y2hlcy9hcHBzeXMtYnVpbGQucGF0Y2ggfCAgICAxMSArCiAuLi4vYnVkZ2llLWRlc2t0b3Av cGF0Y2hlcy9nbm9tZS0zMzgucGF0Y2ggICAgfCAxMzQ3MiArKysrKysrKysrKysrKysrCiBzcmNw a2dzL2J1ZGdpZS1kZXNrdG9wL3RlbXBsYXRlICAgICAgICAgICAgICAgfCAgICAgMiArLQogMyBm aWxlcyBjaGFuZ2VkLCAxMzQ4NCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9idWRnaWUtZGVza3RvcC9wYXRjaGVzL2FwcHN5cy1idWlsZC5w YXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvYnVkZ2llLWRlc2t0b3AvcGF0Y2hlcy9n bm9tZS0zMzgucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2J1ZGdpZS1kZXNrdG9wL3BhdGNo ZXMvYXBwc3lzLWJ1aWxkLnBhdGNoIGIvc3JjcGtncy9idWRnaWUtZGVza3RvcC9wYXRjaGVzL2Fw cHN5cy1idWlsZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u YjY2MjVmMDQ2ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2J1ZGdpZS1kZXNrdG9wL3Bh dGNoZXMvYXBwc3lzLWJ1aWxkLnBhdGNoCkBAIC0wLDAgKzEsMTEgQEAKKy0tLSBzcmMvYXBwc3lz L0FwcFN5c3RlbS52YWxhCisrKysgc3JjL2FwcHN5cy9BcHBTeXN0ZW0udmFsYQorQEAgLTcwLDcg KzcwLDcgQEAgcHVibGljIGNsYXNzIEFwcFN5c3RlbSA6IEdMaWIuT2JqZWN0CisgICAgIH0KKyAK KyAgICAgcHJpdmF0ZSB2b2lkIHNpZ25hbF9yZWNlaXZlZChHTGliLkRCdXNDb25uZWN0aW9uIGNv bm5lY3Rpb24sCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nIHNlbmRl ciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmc/IHNlbmRlciwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcgb2JqZWN0X3BhdGgsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nIGludGVyZmFjZV9uYW1lLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZyBzaWduYWxfbmFtZSwKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvYnVkZ2llLWRlc2t0b3AvcGF0Y2hlcy9nbm9tZS0zMzgucGF0Y2ggYi9z cmNwa2dzL2J1ZGdpZS1kZXNrdG9wL3BhdGNoZXMvZ25vbWUtMzM4LnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45MmZhNzZhMTdiMAotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvYnVkZ2llLWRlc2t0b3AvcGF0Y2hlcy9nbm9tZS0zMzgucGF0Y2gKQEAgLTAs MCArMSwxMzQ3MiBAQAorRnJvbSAzMGJhMGI1YTQ5ODZkNmJlMzY4N2ExZDdmYjQ4MjkwNjE4NWVh OGM5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRGF2aWQgTW9oYW1tZWQgPGZvc3Nm cmVlZG9tQHVzZXJzLm5vcmVwbHkuZ2l0aHViLmNvbT4KK0RhdGU6IFR1ZSwgMTggRmViIDIwMjAg MDY6NDA6MTIgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0gZ25vbWUgMy4zOCBjb21wYXRpYmlsaXR5 CisKK1NxdWFzaGVkIGJ5IEBxNjYgZnJvbToKKworaHR0cHM6Ly9naXRodWIuY29tL3NvbHVzLXBy b2plY3QvYnVkZ2llLWRlc2t0b3AvcHVsbC8xOTg3CisKK3BsdXMgYW4gYXNzb3J0bWVudCBvZiBv bGRlciBtdXR0ZXIgdXBkYXRlcyBmcm9tIGdpdCBtYXN0ZXIKKy0tLQorIG1lc29uLmJ1aWxkICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTYgKy0KKyBtZXNvbl9vcHRpb25z LnR4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxIC0KKyBzcmMvYXBwbGV0cy9z dGF0dXMvU3RhdHVzQXBwbGV0LnZhbGEgICAgICAgICAgfCAgICA2IC0KKyBzcmMvYXBwbGV0cy9z dGF0dXMvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgfCAgIDEzICstCisgc3JjL3dtL2JhY2tn cm91bmQudmFsYSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNSArLQorIHNyYy93bS9tZXNv bi5idWlsZCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzAgKy0KKyBzcmMvd20vc2hp bS52YWxhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEwICstCisgc3JjL3dtL3dt LnZhbGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMCArLQorIC4uLntDbHV0 dGVyLTUubWV0YWRhdGEgPT4gQ2x1dHRlci02Lm1ldGFkYXRhfSB8ICAgIDAKKyAuLi57Q2x1dHRl ci00Lm1ldGFkYXRhID0+IENsdXR0ZXItNy5tZXRhZGF0YX0gfCAgIDQzIC0KKyB2YXBpL3tDb2ds LTQubWV0YWRhdGEgPT4gQ29nbC02Lm1ldGFkYXRhfSAgICAgfCAgICAwCisgdmFwaS97Q29nbC01 Lm1ldGFkYXRhID0+IENvZ2wtNy5tZXRhZGF0YX0gICAgIHwgICAgMiAtCisgdmFwaS9NZXRhLTMu bWV0YWRhdGEgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2NiAtCisgdmFwaS97TWV0YS01 Lm1ldGFkYXRhID0+IE1ldGEtNi5tZXRhZGF0YX0gICAgIHwgICAgMAorIHZhcGkve01ldGEtNC5t ZXRhZGF0YSA9PiBNZXRhLTcubWV0YWRhdGF9ICAgICB8ICAgMjUgKy0KKyB2YXBpL2dlbmVyYXRl LW11dHRlci12YXBpLnNoICAgICAgICAgICAgICAgICAgfCAgICAyICstCisgdmFwaS9ncmFwaGVu ZS1nb2JqZWN0LTEuMC52YXBpICAgICAgICAgICAgICAgIHwgIDY5MSArKysrKysrCisgdmFwaS9s aWJtdXR0ZXItMi5kZXBzICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgOSAtCisgdmFwaS9s aWJtdXR0ZXItMi52YXBpICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTMyNSAtLS0tLS0tLS0t LS0tLQorIHZhcGkvbGlibXV0dGVyLTMtY3VzdG9tLnZhbGEgICAgICAgICAgICAgICAgICB8ICAg IDYgLQorIHZhcGkvbGlibXV0dGVyLTMuZGVwcyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg IDkgLQorIHZhcGkvbGlibXV0dGVyLTQuZGVwcyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg IDggLQorIHZhcGkvbGlibXV0dGVyLTQudmFwaSAgICAgICAgICAgICAgICAgICAgICAgICB8IDE0 MjUgLS0tLS0tLS0tLS0tLS0tCisgdmFwaS97bGlibXV0dGVyLTUuZGVwcyA9PiBsaWJtdXR0ZXIt Ni5kZXBzfSAgIHwgICAgMyArLQorIHZhcGkve2xpYm11dHRlci01LnZhcGkgPT4gbGlibXV0dGVy LTYudmFwaX0gICB8ICAgNDUgKy0KKyB2YXBpL2xpYm11dHRlci03LWN1c3RvbS52YWxhICAgICAg ICAgICAgICAgICAgfCAgICA3ICsKKyB2YXBpL2xpYm11dHRlci03LmRlcHMgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICA2ICsKKyB2YXBpL3tsaWJtdXR0ZXItMy52YXBpID0+IGxpYm11dHRl ci03LnZhcGl9ICAgfCAgMzkwICsrLS0KKyB2YXBpL2xpYm11dHRlci1jb2dsLTQudmFwaSAgICAg ICAgICAgICAgICAgICAgfCAxMjcyIC0tLS0tLS0tLS0tLS0KKyB2YXBpL211dHRlci1jbHV0dGVy LTUtY3VzdG9tLnZhbGEgICAgICAgICAgICAgfCAgMTU4IC0tCisgLi4uc3RvbS52YWxhID0+IG11 dHRlci1jbHV0dGVyLTYtY3VzdG9tLnZhbGF9IHwgICAxMSAtCisgLi4uci1jbHV0dGVyLTUuZGVw cyA9PiBtdXR0ZXItY2x1dHRlci02LmRlcHN9IHwgICAgMiArLQorIC4uLnItY2x1dHRlci01LnZh cGkgPT4gbXV0dGVyLWNsdXR0ZXItNi52YXBpfSB8ICA4MDYgKystLS0tLS0KKyAuLi5yLWNsdXR0 ZXItNC5kZXBzID0+IG11dHRlci1jbHV0dGVyLTcuZGVwc30gfCAgICAzICstCisgLi4uci1jbHV0 dGVyLTQudmFwaSA9PiBtdXR0ZXItY2x1dHRlci03LnZhcGl9IHwgMTYxNSArKysrLS0tLS0tLS0t LS0tLQorIC4uLi1jdXN0b20udmFsYSA9PiBtdXR0ZXItY29nbC02LWN1c3RvbS52YWxhfSB8ICAg IDAKKyAuLi57bXV0dGVyLWNvZ2wtNC5kZXBzID0+IG11dHRlci1jb2dsLTYuZGVwc30gfCAgICAw CisgLi4ue211dHRlci1jb2dsLTUudmFwaSA9PiBtdXR0ZXItY29nbC02LnZhcGl9IHwgIDQyMiAr LS0tLQorIC4uLi1jdXN0b20udmFsYSA9PiBtdXR0ZXItY29nbC03LWN1c3RvbS52YWxhfSB8ICAg MjAgKy0KKyAuLi57bXV0dGVyLWNvZ2wtNS5kZXBzID0+IG11dHRlci1jb2dsLTcuZGVwc30gfCAg ICAwCisgLi4ue211dHRlci1jb2dsLTQudmFwaSA9PiBtdXR0ZXItY29nbC03LnZhcGl9IHwgIDY3 MSArKystLS0tCisgdmFwaS9wb2xraXQtZ29iamVjdC0xLnZhcGkgICAgICAgICAgICAgICAgICAg IHwgICAzMSArLQorIDQyIGZpbGVzIGNoYW5nZWQsIDE5MjAgaW5zZXJ0aW9ucygrKSwgNzI1NCBk ZWxldGlvbnMoLSkKKyByZW5hbWUgdmFwaS97Q2x1dHRlci01Lm1ldGFkYXRhID0+IENsdXR0ZXIt Ni5tZXRhZGF0YX0gKDEwMCUpCisgcmVuYW1lIHZhcGkve0NsdXR0ZXItNC5tZXRhZGF0YSA9PiBD bHV0dGVyLTcubWV0YWRhdGF9ICg3OCUpCisgcmVuYW1lIHZhcGkve0NvZ2wtNC5tZXRhZGF0YSA9 PiBDb2dsLTYubWV0YWRhdGF9ICgxMDAlKQorIHJlbmFtZSB2YXBpL3tDb2dsLTUubWV0YWRhdGEg PT4gQ29nbC03Lm1ldGFkYXRhfSAoOTElKQorIGRlbGV0ZSBtb2RlIDEwMDY0NCB2YXBpL01ldGEt My5tZXRhZGF0YQorIHJlbmFtZSB2YXBpL3tNZXRhLTUubWV0YWRhdGEgPT4gTWV0YS02Lm1ldGFk YXRhfSAoMTAwJSkKKyByZW5hbWUgdmFwaS97TWV0YS00Lm1ldGFkYXRhID0+IE1ldGEtNy5tZXRh ZGF0YX0gKDc2JSkKKyBjcmVhdGUgbW9kZSAxMDA2NDQgdmFwaS9ncmFwaGVuZS1nb2JqZWN0LTEu MC52YXBpCisgZGVsZXRlIG1vZGUgMTAwNjQ0IHZhcGkvbGlibXV0dGVyLTIuZGVwcworIGRlbGV0 ZSBtb2RlIDEwMDY0NCB2YXBpL2xpYm11dHRlci0yLnZhcGkKKyBkZWxldGUgbW9kZSAxMDA2NDQg dmFwaS9saWJtdXR0ZXItMy1jdXN0b20udmFsYQorIGRlbGV0ZSBtb2RlIDEwMDY0NCB2YXBpL2xp Ym11dHRlci0zLmRlcHMKKyBkZWxldGUgbW9kZSAxMDA2NDQgdmFwaS9saWJtdXR0ZXItNC5kZXBz CisgZGVsZXRlIG1vZGUgMTAwNjQ0IHZhcGkvbGlibXV0dGVyLTQudmFwaQorIHJlbmFtZSB2YXBp L3tsaWJtdXR0ZXItNS5kZXBzID0+IGxpYm11dHRlci02LmRlcHN9ICg1MCUpCisgcmVuYW1lIHZh cGkve2xpYm11dHRlci01LnZhcGkgPT4gbGlibXV0dGVyLTYudmFwaX0gKDk3JSkKKyBjcmVhdGUg bW9kZSAxMDA2NDQgdmFwaS9saWJtdXR0ZXItNy1jdXN0b20udmFsYQorIGNyZWF0ZSBtb2RlIDEw MDY0NCB2YXBpL2xpYm11dHRlci03LmRlcHMKKyByZW5hbWUgdmFwaS97bGlibXV0dGVyLTMudmFw aSA9PiBsaWJtdXR0ZXItNy52YXBpfSAoNzUlKQorIGRlbGV0ZSBtb2RlIDEwMDY0NCB2YXBpL2xp Ym11dHRlci1jb2dsLTQudmFwaQorIGRlbGV0ZSBtb2RlIDEwMDY0NCB2YXBpL211dHRlci1jbHV0 dGVyLTUtY3VzdG9tLnZhbGEKKyByZW5hbWUgdmFwaS97bXV0dGVyLWNsdXR0ZXItNC1jdXN0b20u dmFsYSA9PiBtdXR0ZXItY2x1dHRlci02LWN1c3RvbS52YWxhfSAoOTIlKQorIHJlbmFtZSB2YXBp L3ttdXR0ZXItY2x1dHRlci01LmRlcHMgPT4gbXV0dGVyLWNsdXR0ZXItNi5kZXBzfSAoNjMlKQor IHJlbmFtZSB2YXBpL3ttdXR0ZXItY2x1dHRlci01LnZhcGkgPT4gbXV0dGVyLWNsdXR0ZXItNi52 YXBpfSAoOTMlKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY2x1dHRlci00LmRlcHMgPT4gbXV0dGVy LWNsdXR0ZXItNy5kZXBzfSAoNTQlKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY2x1dHRlci00LnZh cGkgPT4gbXV0dGVyLWNsdXR0ZXItNy52YXBpfSAoODYlKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXIt Y29nbC01LWN1c3RvbS52YWxhID0+IG11dHRlci1jb2dsLTYtY3VzdG9tLnZhbGF9ICgxMDAlKQor IHJlbmFtZSB2YXBpL3ttdXR0ZXItY29nbC00LmRlcHMgPT4gbXV0dGVyLWNvZ2wtNi5kZXBzfSAo MTAwJSkKKyByZW5hbWUgdmFwaS97bXV0dGVyLWNvZ2wtNS52YXBpID0+IG11dHRlci1jb2dsLTYu dmFwaX0gKDY4JSkKKyByZW5hbWUgdmFwaS97bXV0dGVyLWNvZ2wtNC1jdXN0b20udmFsYSA9PiBt dXR0ZXItY29nbC03LWN1c3RvbS52YWxhfSAoODElKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY29n bC01LmRlcHMgPT4gbXV0dGVyLWNvZ2wtNy5kZXBzfSAoMTAwJSkKKyByZW5hbWUgdmFwaS97bXV0 dGVyLWNvZ2wtNC52YXBpID0+IG11dHRlci1jb2dsLTcudmFwaX0gKDU5JSkKKworZGlmZiAtLWdp dCBtZXNvbi5idWlsZCBtZXNvbi5idWlsZAoraW5kZXggMmEwZTAzMTYuLjNjNGM2YWMxIDEwMDY0 NAorLS0tIG1lc29uLmJ1aWxkCisrKysgbWVzb24uYnVpbGQKK0BAIC0zMiwxNiArMzIsMTYgQEAg YW1fY2ZsYWdzID0gWworIGFkZF9nbG9iYWxfYXJndW1lbnRzKGFtX2NmbGFncywgbGFuZ3VhZ2U6 ICdjJykKKyBtZXNvbi5hZGRfaW5zdGFsbF9zY3JpcHQoJ21lc29uX3Bvc3RfaW5zdGFsbC5zaCcp CisgCistIyBCdWRnaWUgbmVlZHMgYSBtaW5pbXVtIDMuMjIgR05PTUUgc3RhY2sKKy1nbm9tZV9t aW5pbXVtX3ZlcnNpb24gPSAnPj0gMy4yMi4wJworKyMgQnVkZ2llIG5lZWRzIGEgbWluaW11bSAz LjI0IEdOT01FIHN0YWNrCisrZ25vbWVfbWluaW11bV92ZXJzaW9uID0gJz49IDMuMjQuMCcKKyAK KyBkZXBfZ3RrMyA9IGRlcGVuZGVuY3koJ2d0aystMy4wJywgdmVyc2lvbjogZ25vbWVfbWluaW11 bV92ZXJzaW9uKQorLWRlcF9nbGliID0gZGVwZW5kZW5jeSgnZ2xpYi0yLjAnLCB2ZXJzaW9uOiAn Pj0gMi40Ni4wJykKKy1kZXBfZ2lvdW5peCA9IGRlcGVuZGVuY3koJ2dpby11bml4LTIuMCcsIHZl cnNpb246ICc+PSAyLjQ2LjAnKQorLWRlcF9wZWFzID0gZGVwZW5kZW5jeSgnbGlicGVhcy0xLjAn LCB2ZXJzaW9uOiAnPj0gMS44LjAnKQorK2RlcF9nbGliID0gZGVwZW5kZW5jeSgnZ2xpYi0yLjAn LCB2ZXJzaW9uOiAnPj0gMi42Mi4wJykKKytkZXBfZ2lvdW5peCA9IGRlcGVuZGVuY3koJ2dpby11 bml4LTIuMCcsIHZlcnNpb246ICc+PSAyLjYyLjAnKQorK2RlcF9wZWFzID0gZGVwZW5kZW5jeSgn bGlicGVhcy0xLjAnLCB2ZXJzaW9uOiAnPj0gMS4yNC4wJykKKyBkZXBfZ2RreDExID0gZGVwZW5k ZW5jeSgnZ2RrLXgxMS0zLjAnLCB2ZXJzaW9uOiBnbm9tZV9taW5pbXVtX3ZlcnNpb24pCisgZGVw X2xpYnV1aWQgPSBkZXBlbmRlbmN5KCd1dWlkJykKKy1kZXBfdmFsYSA9IGRlcGVuZGVuY3koJ3Zh cGlnZW4nLCB2ZXJzaW9uOiAnPj0gMC40MC4wJykKKytkZXBfdmFsYSA9IGRlcGVuZGVuY3koJ3Zh cGlnZW4nLCB2ZXJzaW9uOiAnPj0gMC40Ni4wJykKKyAKKyAjIE5lZWRlZCBmb3Iga2V5Ym9hcmR5 IGJpdHMKKyBkZXBfaWJ1cyA9IGRlcGVuZGVuY3koJ2lidXMtMS4wJywgdmVyc2lvbjogJz49IDEu NS4xMCcpCitAQCAtNTEsMTAgKzUxLDEwIEBAIGRlcF9nc2V0dGluZ3MgPSBkZXBlbmRlbmN5KCdn c2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzJywgdmVyc2lvbjogZ25vbWVfbWluaW11bV92CisgZGVw X2dzZCA9IGRlcGVuZGVuY3koJ2dub21lLXNldHRpbmdzLWRhZW1vbicsIHZlcnNpb246ICc+PTMu MjguMCcpCisgCisgIyB3bmNrIHVzZWQgYWxsIG92ZXIgdGhlIHBsYWNlLi4KKy1kZXBfd25jayA9 IGRlcGVuZGVuY3koJ2xpYnduY2stMy4wJywgdmVyc2lvbjogJz49IDMuMTQuMCcpCisrZGVwX3du Y2sgPSBkZXBlbmRlbmN5KCdsaWJ3bmNrLTMuMCcsIHZlcnNpb246ICc+PSAzLjMyLjAnKQorIAor ICMgYWNjb3VudHNzZXJ2aWNlIGluIG11bHRpcGxlIGFwcGxldHMKKy1kZXBfYWNjb3VudHNzZXJ2 aWNlID0gZGVwZW5kZW5jeSgnYWNjb3VudHNzZXJ2aWNlJywgdmVyc2lvbjogJz49IDAuNi40MCcp CisrZGVwX2FjY291bnRzc2VydmljZSA9IGRlcGVuZGVuY3koJ2FjY291bnRzc2VydmljZScsIHZl cnNpb246ICc+PSAwLjYuNTUnKQorIAorICMgQ3JlYXRlIGNvbmZpZy5oCisgY2RhdGEgPSBjb25m aWd1cmF0aW9uX2RhdGEoKQorZGlmZiAtLWdpdCBtZXNvbl9vcHRpb25zLnR4dCBtZXNvbl9vcHRp b25zLnR4dAoraW5kZXggZDcxYjA5YjUuLmRjYTkxMjk2IDEwMDY0NAorLS0tIG1lc29uX29wdGlv bnMudHh0CisrKysgbWVzb25fb3B0aW9ucy50eHQKK0BAIC0xLDUgKzEsNCBAQAorIG9wdGlvbign d2l0aC1zdGF0ZWxlc3MnLCB0eXBlOiAnYm9vbGVhbicsIHZhbHVlOiBmYWxzZSwgZGVzY3JpcHRp b246ICdFbmFibGUgc3RhdGVsZXNzIFhERyBwYXRocycpCisgb3B0aW9uKCd3aXRoLXBvbGtpdCcs IHR5cGU6ICdib29sZWFuJywgdmFsdWU6IHRydWUsIGRlc2NyaXB0aW9uOiAnRW5hYmxlIFBvbEtp dCBzdXBwb3J0JykKKy1vcHRpb24oJ3dpdGgtYmx1ZXRvb3RoJywgdHlwZTogJ2Jvb2xlYW4nLCB2 YWx1ZTogdHJ1ZSwgZGVzY3JpcHRpb246ICdFbmFibGUgZ25vbWUtYmx1ZXRvb3RoIHN1cHBvcnQn KQorIG9wdGlvbignd2l0aC1ndGstZG9jJywgdHlwZTogJ2Jvb2xlYW4nLCB2YWx1ZTogdHJ1ZSwg ZGVzY3JpcHRpb246ICdCdWlsZCBndGstZG9jIGRvY3VtZW50YXRpb24nKQorIG9wdGlvbignd2l0 aC1kZXNrdG9wLWljb25zJywgdHlwZTogJ2NvbWJvJywgY2hvaWNlczogWyduYXV0aWx1cycsICdu b25lJ10sIHZhbHVlOiAnbmF1dGlsdXMnLCBkZXNjcmlwdGlvbjogJ0Rlc2t0b3AgaWNvbiBoYW5k bGluZycpCitkaWZmIC0tZ2l0IHNyYy9hcHBsZXRzL3N0YXR1cy9TdGF0dXNBcHBsZXQudmFsYSBz cmMvYXBwbGV0cy9zdGF0dXMvU3RhdHVzQXBwbGV0LnZhbGEKK2luZGV4IGI5ODI2Mzk0Li43MWYy ODdjOSAxMDA2NDQKKy0tLSBzcmMvYXBwbGV0cy9zdGF0dXMvU3RhdHVzQXBwbGV0LnZhbGEKKysr KyBzcmMvYXBwbGV0cy9zdGF0dXMvU3RhdHVzQXBwbGV0LnZhbGEKK0BAIC0yMCw5ICsyMCw3IEBA IHB1YmxpYyBjbGFzcyBTdGF0dXNBcHBsZXQgOiBCdWRnaWUuQXBwbGV0CisgeworIAorICAgICBw cm90ZWN0ZWQgR3RrLkJveCB3aWRnZXQ7CistI2lmIFdJVEhfQkxVRVRPT1RICisgICAgIHByb3Rl Y3RlZCBCbHVldG9vdGhJbmRpY2F0b3IgYmx1ZTsKKy0jZW5kaWYKKyAgICAgcHJvdGVjdGVkIFNv dW5kSW5kaWNhdG9yIHNvdW5kOworICAgICBwcm90ZWN0ZWQgUG93ZXJJbmRpY2F0b3IgcG93ZXI7 CisgICAgIHByb3RlY3RlZCBHdGsuRXZlbnRCb3g/IHdyYXA7CitAQCAtNjgsMTIgKzY2LDEwIEBA IHB1YmxpYyBjbGFzcyBTdGF0dXNBcHBsZXQgOiBCdWRnaWUuQXBwbGV0CisgICAgICAgICB0aGlz LnNldHVwX3BvcG92ZXIocG93ZXIuZWJveCwgcG93ZXIucG9wb3Zlcik7CisgICAgICAgICB0aGlz LnNldHVwX3BvcG92ZXIoc291bmQuZWJveCwgc291bmQucG9wb3Zlcik7CisgCistI2lmIFdJVEhf QkxVRVRPT1RICisgICAgICAgICBibHVlID0gbmV3IEJsdWV0b290aEluZGljYXRvcigpOworICAg ICAgICAgd2lkZ2V0LnBhY2tfc3RhcnQoYmx1ZSwgZmFsc2UsIGZhbHNlLCAyKTsKKyAgICAgICAg IGJsdWUuc2hvd19hbGwoKTsKKyAgICAgICAgIHRoaXMuc2V0dXBfcG9wb3ZlcihibHVlLmVib3gs IGJsdWUucG9wb3Zlcik7CistI2VuZGlmCisgICAgIH0KKyAKKyAgICAgcHVibGljIG92ZXJyaWRl IHZvaWQgcGFuZWxfcG9zaXRpb25fY2hhbmdlZChCdWRnaWUuUGFuZWxQb3NpdGlvbiBwb3NpdGlv bikKK0BAIC05MSw5ICs4Nyw3IEBAIHB1YmxpYyBjbGFzcyBTdGF0dXNBcHBsZXQgOiBCdWRnaWUu QXBwbGV0CisgICAgICAgICB0aGlzLm1hbmFnZXIgPSBtYW5hZ2VyOworICAgICAgICAgbWFuYWdl ci5yZWdpc3Rlcl9wb3BvdmVyKHBvd2VyLmVib3gsIHBvd2VyLnBvcG92ZXIpOworICAgICAgICAg bWFuYWdlci5yZWdpc3Rlcl9wb3BvdmVyKHNvdW5kLmVib3gsIHNvdW5kLnBvcG92ZXIpOworLSNp ZiBXSVRIX0JMVUVUT09USAorICAgICAgICAgbWFuYWdlci5yZWdpc3Rlcl9wb3BvdmVyKGJsdWUu ZWJveCwgYmx1ZS5wb3BvdmVyKTsKKy0jZW5kaWYKKyAgICAgfQorIH0gLy8gRW5kIGNsYXNzCisg CitkaWZmIC0tZ2l0IHNyYy9hcHBsZXRzL3N0YXR1cy9tZXNvbi5idWlsZCBzcmMvYXBwbGV0cy9z dGF0dXMvbWVzb24uYnVpbGQKK2luZGV4IDY5OWZiOGY0Li5iNGQyNzA2YyAxMDA2NDQKKy0tLSBz cmMvYXBwbGV0cy9zdGF0dXMvbWVzb24uYnVpbGQKKysrKyBzcmMvYXBwbGV0cy9zdGF0dXMvbWVz b24uYnVpbGQKK0BAIC0xMCw2ICsxMCw3IEBAIGN1c3RvbV90YXJnZXQoJ3BsdWdpbi1maWxlLXN0 YXR1cycsCisgICAgIGluc3RhbGxfZGlyIDogYXBwbGV0X3N0YXR1c19kaXIpCisgCisgYXBwbGV0 X3N0YXR1c19zb3VyY2VzID0gWworKyAgICAnQmx1ZXRvb3RoSW5kaWNhdG9yLnZhbGEnLAorICAg ICAnU3RhdHVzQXBwbGV0LnZhbGEnLAorICAgICAnUG93ZXJJbmRpY2F0b3IudmFsYScsCisgICAg ICdTb3VuZEluZGljYXRvci52YWxhJywKK0BAIC0yMCwyMiArMjEsMTMgQEAgYXBwbGV0X3N0YXR1 c19kZXBzID0gWworICAgICBkZXBfZ3RrMywKKyAgICAgZGVwX3BlYXMsCisgICAgIGRlcF9hY2Nv dW50c3NlcnZpY2UsCisrICAgIGRlcGVuZGVuY3koJ2dub21lLWJsdWV0b290aC0xLjAnLCB2ZXJz aW9uOiBnbm9tZV9taW5pbXVtX3ZlcnNpb24pLAorICAgICBkZXBlbmRlbmN5KCd1cG93ZXItZ2xp YicsIHZlcnNpb246ICc+PSAwLjk5LjAnKSwKKyAgICAgbGlua19saWJwbHVnaW4sCisgICAgIGd2 Yy5nZXRfdmFyaWFibGUoJ2xpYmd2Y19kZXAnKSwKKyAgICAgbWVzb24uZ2V0X2NvbXBpbGVyKCdj JykuZmluZF9saWJyYXJ5KCdtJywgcmVxdWlyZWQ6IGZhbHNlKSwKKyBdCisgCistIyBCbHVldG9v dGggaXMgb3B0aW9uYWwgdG8gYWxsb3cgc21hbGxlciBidWlsZHMKKy13aXRoX2JsdWV0b290aCA9 IGdldF9vcHRpb24oJ3dpdGgtYmx1ZXRvb3RoJykKKy1hcHBsZXRfc3RhdHVzX3ZhbGFfYXJncyA9 IFtdCistCistaWYgd2l0aF9ibHVldG9vdGggPT0gdHJ1ZQorLSAgICBhcHBsZXRfc3RhdHVzX2Rl cHMgKz0gZGVwZW5kZW5jeSgnZ25vbWUtYmx1ZXRvb3RoLTEuMCcsIHZlcnNpb246IGdub21lX21p bmltdW1fdmVyc2lvbikKKy0gICAgYXBwbGV0X3N0YXR1c19zb3VyY2VzICs9ICdCbHVldG9vdGhJ bmRpY2F0b3IudmFsYScKKy0gICAgYXBwbGV0X3N0YXR1c192YWxhX2FyZ3MgKz0gWyctRCcsICdX SVRIX0JMVUVUT09USCddCistZW5kaWYKKy0KKyBzaGFyZWRfbGlicmFyeSgKKyAgICAgJ3N0YXR1 c2FwcGxldCcsCisgICAgIGFwcGxldF9zdGF0dXNfc291cmNlcywKK0BAIC01MCw3ICs0Miw2IEBA IHNoYXJlZF9saWJyYXJ5KAorICAgICAgICAgJy0tcGtnJywgJ2d2Yy0xLjAnLAorICAgICAgICAg Jy0tcGtnJywgJ2dpby11bml4LTIuMCcsCisgICAgICAgICAnLS12YXBpZGlyJywgam9pbl9wYXRo cyhtZXNvbi5zb3VyY2Vfcm9vdCgpLCAndmFwaScpLAorLSAgICAgICAgYXBwbGV0X3N0YXR1c192 YWxhX2FyZ3MsCisgICAgIF0sCisgICAgIGluc3RhbGw6IHRydWUsCisgICAgIGluc3RhbGxfZGly OiBhcHBsZXRfc3RhdHVzX2RpciwKK2RpZmYgLS1naXQgc3JjL3dtL2JhY2tncm91bmQudmFsYSBz cmMvd20vYmFja2dyb3VuZC52YWxhCitpbmRleCAwODRhYTlhYi4uYjMzMWUwYzQgMTAwNjQ0Cist LS0gc3JjL3dtL2JhY2tncm91bmQudmFsYQorKysrIHNyYy93bS9iYWNrZ3JvdW5kLnZhbGEKK0BA IC0yMDQsOCArMjA0LDEzIEBAIHB1YmxpYyBjbGFzcyBCdWRnaWVCYWNrZ3JvdW5kIDogQ2x1dHRl ci5BY3RvcgorIAorICAgICAgICAgdmFyIGFjdG9yID0gbmV3IE1ldGEuQmFja2dyb3VuZEFjdG9y KGRpc3BsYXksIGluZGV4KTsKKyAgICAgICAgIHZhciBiYWNrZ3JvdW5kID0gbmV3IE1ldGEuQmFj a2dyb3VuZChkaXNwbGF5KTsKKysjaWYgSEFWRV9NVVRURVJfNgorICAgICAgICAgYWN0b3Iuc2V0 X2JhY2tncm91bmQoYmFja2dyb3VuZCk7CistCisrI2Vsc2UKKysgICAgICAgIHZhciBjb250ZW50 ID0gYWN0b3IuZ2V0X2NvbnRlbnQoKTsKKysgICAgICAgIHVub3duZWQgTWV0YS5CYWNrZ3JvdW5k Q29udGVudCBiYWNrZ3JvdW5kX2NvbnRlbnQgPSAoTWV0YS5CYWNrZ3JvdW5kQ29udGVudCkgY29u dGVudDsKKysgICAgICAgIGJhY2tncm91bmRfY29udGVudC5zZXRfYmFja2dyb3VuZChiYWNrZ3Jv dW5kKTsKKysjZW5kaWYKKyAgICAgICAgIHJlY3QgPSBkaXNwbGF5LmdldF9tb25pdG9yX2dlb21l dHJ5KGluZGV4KTsKKyAgICAgICAgIGFjdG9yLnNldF9zaXplKHJlY3Qud2lkdGgsIHJlY3QuaGVp Z2h0KTsKKyAgICAgICAgIGFjdG9yLnNldCgib3BhY2l0eSIsIDApOworQEAgLTIyMSwxMyArMjI2 LDIxIEBAIHB1YmxpYyBjbGFzcyBCdWRnaWVCYWNrZ3JvdW5kIDogQ2x1dHRlci5BY3RvcgorICAg ICAgICAgc2hhZGluZ19kaXJlY3Rpb24gPSAoR0Rlc2t0b3AuQmFja2dyb3VuZFNoYWRpbmcpc2V0 dGluZ3MuZ2V0X2VudW0oQ09MT1JfU0hBRElOR19UWVBFX0tFWSk7CisgICAgICAgICB2YXIgY29s b3Jfc3RyID0gc2V0dGluZ3MuZ2V0X3N0cmluZyhQUklNQVJZX0NPTE9SX0tFWSk7CisgICAgICAg ICBpZiAoY29sb3Jfc3RyICE9IG51bGwgJiYgY29sb3Jfc3RyICE9ICIiKSB7CisrI2lmIEhBVkVf TVVUVEVSXzYKKyAgICAgICAgICAgICBwcmltYXJ5X2NvbG9yID0gQ2x1dHRlci5Db2xvci5mcm9t X3N0cmluZyhjb2xvcl9zdHIpOworKyNlbHNlCisrICAgICAgICAgICAgQ2x1dHRlci5Db2xvci5m cm9tX3N0cmluZyhvdXQgcHJpbWFyeV9jb2xvciwgY29sb3Jfc3RyKTsKKysjZW5kaWYKKyAgICAg ICAgICAgICBjb2xvcl9zdHIgPSBudWxsOworICAgICAgICAgfQorIAorICAgICAgICAgY29sb3Jf c3RyID0gc2V0dGluZ3MuZ2V0X3N0cmluZyhTRUNPTkRBUllfQ09MT1JfS0VZKTsKKyAgICAgICAg IGlmIChjb2xvcl9zdHIgIT0gbnVsbCAmJiBjb2xvcl9zdHIgIT0gIiIpIHsKKysjaWYgSEFWRV9N VVRURVJfNgorICAgICAgICAgICAgIHNlY29uZGFyeV9jb2xvciA9IENsdXR0ZXIuQ29sb3IuZnJv bV9zdHJpbmcoY29sb3Jfc3RyKTsKKysjZWxzZQorKyAgICAgICAgICAgIENsdXR0ZXIuQ29sb3Iu ZnJvbV9zdHJpbmcob3V0IHNlY29uZGFyeV9jb2xvciwgY29sb3Jfc3RyKTsKKysjZW5kaWYKKyAg ICAgICAgICAgICBjb2xvcl9zdHIgPSBudWxsOworICAgICAgICAgfQorIAorZGlmZiAtLWdpdCBz cmMvd20vbWVzb24uYnVpbGQgc3JjL3dtL21lc29uLmJ1aWxkCitpbmRleCBlMzliODY3OC4uNTgz Y2U3OTAgMTAwNjQ0CistLS0gc3JjL3dtL21lc29uLmJ1aWxkCisrKysgc3JjL3dtL21lc29uLmJ1 aWxkCitAQCAtMTcsMjAgKzE3LDE4IEBAIGJ1ZGdpZV93bV9zb3VyY2VzID0gWworIAorIGJ1ZGdp ZV93bV9zdGF0dXNfdmFsYV9hcmdzID0gW10KKyAKKy12YXBpX211dHRlciA9ICdsaWJtdXR0ZXIt MycKKy1kZXBfbXV0dGVyID0gZGVwZW5kZW5jeSgnbGlibXV0dGVyLTMnLCB2ZXJzaW9uOiBnbm9t ZV9taW5pbXVtX3ZlcnNpb24sIHJlcXVpcmVkOiBmYWxzZSkKKy1pZiBub3QgZGVwX211dHRlci5m b3VuZCgpCistICAgIGRlcF9tdXR0ZXIgPSBkZXBlbmRlbmN5KCdsaWJtdXR0ZXItNCcsIHZlcnNp b246IGdub21lX21pbmltdW1fdmVyc2lvbiwgcmVxdWlyZWQ6IGZhbHNlKQorK2RlcF9ncmFwaGVu ZSA9IGRlcGVuZGVuY3koJ2dyYXBoZW5lLWdvYmplY3QtMS4wJywgdmVyc2lvbjogJz49IDEuMTAn KQorK2RlcF9tdXR0ZXIgPSBkZXBlbmRlbmN5KCdsaWJtdXR0ZXItNycsIHZlcnNpb246IGdub21l X21pbmltdW1fdmVyc2lvbiwgcmVxdWlyZWQ6IGZhbHNlKQorK2lmIGRlcF9tdXR0ZXIuZm91bmQo KQorKyAgICBidWRnaWVfd21fc3RhdHVzX3ZhbGFfYXJncyArPSBbJy1EJywgJ0hBVkVfTVVUVEVS XzcnXQorKyAgICBtZXNzYWdlKCdVc2luZyBuZXcgbGlibXV0dGVyLTcgQUJJIGZyb20gR05PTUUg My4zOCcpCisrICAgIHZhcGlfbXV0dGVyID0gJ2xpYm11dHRlci03JworK2Vsc2UKKysgICAgZGVw X211dHRlciA9IGRlcGVuZGVuY3koJ2xpYm11dHRlci02JywgdmVyc2lvbjogZ25vbWVfbWluaW11 bV92ZXJzaW9uKQorKyAgICBidWRnaWVfd21fc3RhdHVzX3ZhbGFfYXJncyArPSBbJy1EJywgJ0hB VkVfTVVUVEVSXzYnXQorICAgICBpZiBkZXBfbXV0dGVyLmZvdW5kKCkKKy0gICAgICAgIG1lc3Nh Z2UoJ1VzaW5nIG5ldyBsaWJtdXR0ZXItNCBBQkkgZnJvbSBHTk9NRSAzLjMyJykKKy0gICAgICAg IHZhcGlfbXV0dGVyID0gJ2xpYm11dHRlci00JworLSAgICBlbHNlCistICAgICAgICBkZXBfbXV0 dGVyID0gZGVwZW5kZW5jeSgnbGlibXV0dGVyLTUnLCB2ZXJzaW9uOiBnbm9tZV9taW5pbXVtX3Zl cnNpb24pCistICAgICAgICBpZiBkZXBfbXV0dGVyLmZvdW5kKCkKKy0gICAgICAgICAgICBtZXNz YWdlKCdVc2luZyBuZXcgbGlibXV0dGVyLTUgQUJJIGZyb20gR05PTUUgMy4zNCcpCistICAgICAg ICAgICAgdmFwaV9tdXR0ZXIgPSAnbGlibXV0dGVyLTUnCistICAgICAgICAgICAgYnVkZ2llX3dt X3N0YXR1c192YWxhX2FyZ3MgKz0gWyctRCcsICdIQVZFX01VVFRFUl81J10KKy0gICAgICAgIGVu ZGlmCisrICAgICAgICBtZXNzYWdlKCdVc2luZyBuZXcgbGlibXV0dGVyLTYgQUJJIGZyb20gR05P TUUgMy4zNicpCisrICAgICAgICB2YXBpX211dHRlciA9ICdsaWJtdXR0ZXItNicKKyAgICAgZW5k aWYKKyBlbmRpZgorIAorQEAgLTQyLDggKzQwLDggQEAgYnVkZ2llX3dtX2RlcHMgPSBbCisgICAg IGRlcF9pYnVzLAorIF0KKyAKKy1pZiBkZXBfZ3NkLnZlcnNpb24oKS52ZXJzaW9uX2NvbXBhcmUo Jz49My4zMS45MScpCistICAgIGJ1ZGdpZV93bV9zdGF0dXNfdmFsYV9hcmdzICs9IFsnLUQnLCAn SEFWRV9HU0RfMzMyJ10KKytpZiBkZXBfZ3NkLnZlcnNpb24oKS52ZXJzaW9uX2NvbXBhcmUoJz49 My4zNi4wJykKKysgICAgYnVkZ2llX3dtX3N0YXR1c192YWxhX2FyZ3MgKz0gWyctRCcsICdIQVZF X0dTRF9TVVBQT1JURUQnXQorIGVuZGlmCisgCisgYnVkZ2llX3dtX3ZhbGFfYXJncyA9ICBbCitA QCAtNjAsNyArNTgsNyBAQCBidWRnaWVfd21fdmFsYV9hcmdzID0gIFsKKyAKKyBycGF0aCA9ICcn CisgCistaWYgZGVwX211dHRlci52ZXJzaW9uKCkudmVyc2lvbl9jb21wYXJlKCc+PTMuMjguMCcp CisraWYgZGVwX211dHRlci52ZXJzaW9uKCkudmVyc2lvbl9jb21wYXJlKCc+PTMuMzYuMCcpCisg ICAgIHJwYXRoID0gZGVwX211dHRlci5nZXRfcGtnY29uZmlnX3ZhcmlhYmxlKCd0eXBlbGliZGly JykKKyAgICAgYnVkZ2llX3dtX3ZhbGFfYXJncyArPSBbJy0tZ2lyZGlyJywgcnBhdGhdCisgZW5k aWYKK2RpZmYgLS1naXQgc3JjL3dtL3NoaW0udmFsYSBzcmMvd20vc2hpbS52YWxhCitpbmRleCA0 Y2RmYTBiMC4uZmMyNGIyODkgMTAwNjQ0CistLS0gc3JjL3dtL3NoaW0udmFsYQorKysrIHNyYy93 bS9zaGltLnZhbGEKK0BAIC0xNCw3ICsxNCw3IEBAIG5hbWVzcGFjZSBCdWRnaWUgeworIHB1Ymxp YyBzdHJ1Y3QgR3NkQWNjZWwgeworICAgICBzdHJpbmcgYWNjZWxlcmF0b3I7CisgICAgIHVpbnQg ZmxhZ3M7CistI2lmIEhBVkVfR1NEXzMzMgorKyNpZiBIQVZFX0dTRF9TVVBQT1JURUQKKyAgICAg TWV0YS5LZXlCaW5kaW5nRmxhZ3MgZ3JhYl9mbGFnczsKKyAjZW5kaWYKKyB9CitAQCAtMTkzLDEx ICsxOTMsNyBAQCBwdWJsaWMgY2xhc3MgU2hlbGxTaGltIDogR0xpYi5PYmplY3QKKyAgICAgICAg IG9zZF9wcm94eSA9IG51bGw7CisgICAgIH0KKyAKKy0jaWYgSEFWRV9NVVRURVJfNQorICAgICBw cml2YXRlIHZvaWQgb25fYWNjZWxlcmF0b3JfYWN0aXZhdGVkKHVpbnQgYWN0aW9uLCBDbHV0dGVy LklucHV0RGV2aWNlIGRldiwgdWludCBkZXZpY2VfaWQpCistI2Vsc2UKKy0gICAgcHJpdmF0ZSB2 b2lkIG9uX2FjY2VsZXJhdG9yX2FjdGl2YXRlZCh1aW50IGFjdGlvbiwgdWludCBkZXZpY2VfaWQp CistI2VuZGlmCisgICAgIHsKKyAgICAgICAgIEhhc2hUYWJsZTxzdHJpbmcsVmFyaWFudD4gcGFy YW1zID0gbmV3IEhhc2hUYWJsZTxzdHJpbmcsVmFyaWFudD4oc3RyX2hhc2gsIHN0cl9lcXVhbCk7 CisgCitAQCAtMjMwLDcgKzIyNiw3IEBAIHB1YmxpYyBjbGFzcyBTaGVsbFNoaW0gOiBHTGliLk9i amVjdAorICAgICAgICAgfQorICAgICB9CisgCistI2lmIEhBVkVfR1NEXzMzMgorKyNpZiBIQVZF X0dTRF9TVVBQT1JURUQKKyAgICAgcHJpdmF0ZSB1aW50IF9ncmFiKHN0cmluZyBzZW5kZXIsIHN0 cmluZyBzZXEsIHVpbnQgZmxhZywgTWV0YS5LZXlCaW5kaW5nRmxhZ3MgZ3JhYl9mbGFncykKKyAg ICAgeworICAgICAgICAgdmFyIHJldCA9IGRpc3BsYXkuZ3JhYl9hY2NlbGVyYXRvcihzZXEsIGdy YWJfZmxhZ3MpOworQEAgLTI3Myw3ICsyNjksNyBAQCBwdWJsaWMgY2xhc3MgU2hlbGxTaGltIDog R0xpYi5PYmplY3QKKyAgICAgICAgICAgICBvbl9idXNfYWNxdWlyZWQsIG51bGwsIG51bGwpOwor ICAgICB9CisgCistI2lmIEhBVkVfR1NEXzMzMgorKyNpZiBIQVZFX0dTRF9TVVBQT1JURUQKKyAg ICAgcHVibGljIHVpbnQgR3JhYkFjY2VsZXJhdG9yKEJ1c05hbWUgc2VuZGVyLCBzdHJpbmcgYWNj ZWxlcmF0b3IsIHVpbnQgZmxhZ3MsIE1ldGEuS2V5QmluZGluZ0ZsYWdzIGdyYWJfZmxhZ3MpCisg ICAgIHsKKyAgICAgICAgIHJldHVybiBfZ3JhYihzZW5kZXIsIGFjY2VsZXJhdG9yLCBmbGFncywg Z3JhYl9mbGFncyk7CitkaWZmIC0tZ2l0IHNyYy93bS93bS52YWxhIHNyYy93bS93bS52YWxhCitp bmRleCBmZWU4OTQ0My4uYmNjZjNiOTUgMTAwNjQ0CistLS0gc3JjL3dtL3dtLnZhbGEKKysrKyBz cmMvd20vd20udmFsYQorQEAgLTEzNyw4ICsxMzcsOCBAQCBwdWJsaWMgY2xhc3MgQnVkZ2llV00g OiBNZXRhLlBsdWdpbgorICAgICBwdWJsaWMgc3RhdGljIHN0cmluZ1tdPyBvbGRfYXJnczsKKyAg ICAgcHVibGljIHN0YXRpYyBib29sIHdheWxhbmQgPSBmYWxzZTsKKyAKKy0gICAgc3RhdGljIENs dXR0ZXIuUG9pbnQgUFZfQ0VOVEVSOworLSAgICBzdGF0aWMgQ2x1dHRlci5Qb2ludCBQVl9OT1JN OworKyAgICBzdGF0aWMgR3JhcGhlbmUuUG9pbnQgUFZfQ0VOVEVSOworKyAgICBzdGF0aWMgR3Jh cGhlbmUuUG9pbnQgUFZfTk9STTsKKyAKKyAgICAgcHJpdmF0ZSBNZXRhLkJhY2tncm91bmRHcm91 cD8gYmFja2dyb3VuZF9ncm91cDsKKyAKK0BAIC0xNzEsMTAgKzE3MSwxMCBAQCBwdWJsaWMgY2xh c3MgQnVkZ2llV00gOiBNZXRhLlBsdWdpbgorICAgICAgICAgICAgIGxpY2Vuc2UgPSAiR1BMLTIu MCIsCisgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAiQnVkZ2llIFdpbmRvdyBNYW5hZ2VyIgor ICAgICAgICAgfTsKKy0gICAgICAgIFBWX0NFTlRFUiA9IENsdXR0ZXIuUG9pbnQuYWxsb2MoKTsK KysgICAgICAgIFBWX0NFTlRFUiA9IEdyYXBoZW5lLlBvaW50KCk7CisrICAgICAgICBQVl9OT1JN ID0gR3JhcGhlbmUuUG9pbnQoKTsKKyAgICAgICAgIFBWX0NFTlRFUi54ID0gMC41ZjsKKyAgICAg ICAgIFBWX0NFTlRFUi55ID0gMC41ZjsKKy0gICAgICAgIFBWX05PUk0gPSBDbHV0dGVyLlBvaW50 LmFsbG9jKCk7CisgICAgICAgICBQVl9OT1JNLnggPSAwLjBmOworICAgICAgICAgUFZfTk9STS55 ID0gMC4wZjsKKyAgICAgfQorQEAgLTEwMDEsNyArMTAwMSw3IEBAIHB1YmxpYyBjbGFzcyBCdWRn aWVXTSA6IE1ldGEuUGx1Z2luCisgICAgICAgICB0aWxlX3ByZXZpZXcuc2V0KCJzY2FsZS14Iiwg Tk9USUZJQ0FUSU9OX01BUF9TQ0FMRV9YLCAic2NhbGUteSIsIE5PVElGSUNBVElPTl9NQVBfU0NB TEVfWSwKKyAgICAgICAgICAgICAicGl2b3QtcG9pbnQiLCBQVl9DRU5URVIpOworIAorLSAgICAg ICAgdGlsZV9wcmV2aWV3Lmxvd2VyKHdpbl9hY3Rvcik7CisrICAgICAgICAvL3RpbGVfcHJldmll dy5sb3dlcih3aW5fYWN0b3IpOworICAgICAgICAgdGlsZV9wcmV2aWV3LnRpbGVfcmVjdCA9IHRp bGVfcmVjdDsKKyAKKyAgICAgICAgIHRpbGVfcHJldmlldy5zaG93KCk7CitkaWZmIC0tZ2l0IHZh cGkvQ2x1dHRlci01Lm1ldGFkYXRhIHZhcGkvQ2x1dHRlci02Lm1ldGFkYXRhCitzaW1pbGFyaXR5 IGluZGV4IDEwMCUKK3JlbmFtZSBmcm9tIHZhcGkvQ2x1dHRlci01Lm1ldGFkYXRhCityZW5hbWUg dG8gdmFwaS9DbHV0dGVyLTYubWV0YWRhdGEKK2RpZmYgLS1naXQgdmFwaS9DbHV0dGVyLTQubWV0 YWRhdGEgdmFwaS9DbHV0dGVyLTcubWV0YWRhdGEKK3NpbWlsYXJpdHkgaW5kZXggNzglCityZW5h bWUgZnJvbSB2YXBpL0NsdXR0ZXItNC5tZXRhZGF0YQorcmVuYW1lIHRvIHZhcGkvQ2x1dHRlci03 Lm1ldGFkYXRhCitpbmRleCA1YzIxMmU4NS4uMTg1NTI3NGQgMTAwNjQ0CistLS0gdmFwaS9DbHV0 dGVyLTQubWV0YWRhdGEKKysrKyB2YXBpL0NsdXR0ZXItNy5tZXRhZGF0YQorQEAgLTEsMTMgKzEs MTAgQEAKKyAvLyBOb24gbWluaS1vYmplY3QKKyBBY3RvckJveCBzdHJ1Y3QKKyBDb2xvciBzdHJ1 Y3QKKy1Gb2cgc3RydWN0CistR2VvbWV0cnkgc3RydWN0CisgS25vdCBzdHJ1Y3QKKyBQYXRoTm9k ZSBzdHJ1Y3QKKyBQZXJzcGVjdGl2ZSBzdHJ1Y3QKKyBVbml0cyBzdHJ1Y3QKKy1WZXJ0ZXggc3Ry dWN0CisgCisgKi5yZWYgdW5vd25lZAorIAorQEAgLTE3LDcgKzE0LDYgQEAgaW5pdF93aXRoX2Fy Z3MKKyBBY3RvcgorIAkuYXBwbHlfdHJhbnNmb3JtLm1hdHJpeCByZWYKKyAJLmdldF9hYnNfYWxs b2NhdGlvbl92ZXJ0aWNlcy52ZXJ0cyBvdXQ9ZmFsc2UKKy0JLmdldF9hbGxvY2F0aW9uX3ZlcnRp Y2VzLnZlcnRzIG91dD1mYWxzZQorIENhbnZhcworIAkubmV3IHN5bWJvbF90eXBlPSJjb25zdHJ1 Y3RvciIKKyBFdmVudC50eXBlI21ldGhvZCBuYW1lPSJnZXRfdHlwZSIKK0BAIC0yNyw3ICsyMyw2 IEBAIEltYWdlCisgLy8gPz8/CisgQWN0b3IuaGFzX3BvaW50ZXIjbWV0aG9kIG5hbWU9ImdldF9o YXNfcG9pbnRlciIKKyBJbml0RXJyb3IgZXJyb3Jkb21haW49ZmFsc2UKKy1yZWRyYXcgc2tpcAor IAorIC8vIE5vdCBhbGwgYmFja2luZyBzeW1ib2xzIGFyZSBkZXByZWNhdGVkCisgQWN0b3IucGlj ayBkZXByZWNhdGVkPWZhbHNlCitAQCAtNTUsNyArNTAsNiBAQCBDb250YWluZXIKKyAJLmxvd2Vy IHZpcnR1YWwKKyAJLnJhaXNlIHZpcnR1YWwKKyAJLipfY2hpbGRfbWV0YSN2aXJ0dWFsX21ldGhv ZCB2aXJ0dWFsCistCS5mb3JlYWNoX3dpdGhfaW50ZXJuYWxzI3ZpcnR1YWxfbWV0aG9kIHZpcnR1 YWwKKyAKKyAvLyBEZWZhdWx0IHZhbHVlcworIENvbnRhaW5lcgorQEAgLTcwLDMyICs2NCwyMSBA QCBUZXh0CisgLy8gUmVwYXJlbnRlZCBmdW5jcyBtZXRob2RzIGNhbid0IGJlIGluc3RhbmNlIG1l dGhvZHMKKyBmZWF0dXJlX2F2YWlsYWJsZSBza2lwCisgZmVhdHVyZV9nZXRfYWxsIHNraXAKKy1G ZWF0dXJlRmxhZ3MudGV4dHVyZV9ucG90IHNraXAKKyAKKyAvLyBTa2lwcGVkIGJ5IGctaSBmb3Ig dW5rbm93biByZWFzb25zCisgTGF5b3V0TWFuYWdlcgorIAkuY3JlYXRlX2NoaWxkX21ldGEgc2tp cD1mYWxzZQorLU1vZGVsCistCS5pbnNlcnRfcm93IHNraXA9ZmFsc2UKKyAKKyAvLyBWYXJpYWRp YyBhcmd1bWVudHMKKy1BY3RvcgorLQkuYW5pbWF0ZSBza2lwPWZhbHNlCistCS5hbmltYXRlX3dp dGhfYWxwaGEgc2tpcD1mYWxzZQorLQkuYW5pbWF0ZV93aXRoX3RpbWVsaW5lIHNraXA9ZmFsc2UK Ky1BbmltYXRvcgorLQkuc2V0IHNraXA9ZmFsc2UKKyBCb3gKKyAJLnBhY2sgc2tpcD1mYWxzZQor IAkucGFja19hZnRlciBza2lwPWZhbHNlCisgCS5wYWNrX2F0IHNraXA9ZmFsc2UKKyAJLnBhY2tf YmVmb3JlIHNraXA9ZmFsc2UKKyBDb250YWluZXIKKy0JLmFkZF92YWxpc3Qgc2tpcD1mYWxzZQor IAkuY2hpbGRfZ2V0IHNraXA9ZmFsc2UKKyAJLmNoaWxkX3NldCBza2lwPWZhbHNlCisgCS5yZW1v dmUgc2tpcD1mYWxzZQorLQkucmVtb3ZlX3ZhbGlzdCBza2lwPWZhbHNlCisgSW50ZXJ2YWwKKyAJ Lm5ldyBza2lwPWZhbHNlCisgCS5nZXRfaW50ZXJ2YWwgc2tpcD1mYWxzZQorQEAgLTEwNSwxNSAr ODgsNiBAQCBJbnRlcnZhbAorIExheW91dE1hbmFnZXIKKyAJLmNoaWxkX2dldCBza2lwPWZhbHNl CisgCS5jaGlsZF9zZXQgc2tpcD1mYWxzZQorLUxpc3RNb2RlbAorLQkubmV3IHNraXA9ZmFsc2UK Ky1Nb2RlbAorLQkuYXBwZW5kIHNraXA9ZmFsc2UKKy0JLmluc2VydCBza2lwPWZhbHNlCistCS5w cmVwZW5kIHNraXA9ZmFsc2UKKy1Nb2RlbEl0ZXIKKy0JLmdldCBza2lwPWZhbHNlCistCS5zZXQg c2tpcD1mYWxzZQorIFNjcmlwdAorIAkuZ2V0X29iamVjdHMgc2tpcD1mYWxzZQorIAorQEAgLTEy MiwxNyArOTYsMTEgQEAgVGV4dHVyZQorIAkubmV3X2Zyb21fZmlsZSB0aHJvd3M9IkNsdXR0ZXIu VGV4dHVyZUVycm9yIgorIAorIC8vIFNraXBwZWQgdXBzdHJlYW0gZm9yIHVua25vd24gcmVhc29u cworLUFscGhhLnJlZ2lzdGVyX2Z1bmMgc2tpcD1mYWxzZQorLVRpbWVvdXRQb29sIHNraXA9ZmFs c2UKKyBJbnRlcnZhbC5yZWdpc3Rlcl9wcm9ncmVzc19mdW5jIHNraXA9ZmFsc2UKKy1mcmFtZV9z b3VyY2VfKiBza2lwPWZhbHNlCisgZ2V0X29wdGlvbl9ncm91cCBza2lwPWZhbHNlCisgZ2V0X29w dGlvbl9ncm91cF93aXRob3V0X2luaXQgc2tpcD1mYWxzZQorLXRocmVhZHNfYWRkX2ZyYW1lX3Nv dXJjZSBza2lwPWZhbHNlCistdGhyZWFkc19hZGRfZnJhbWVfc291cmNlX2Z1bGwgc2tpcD1mYWxz ZQorIHRocmVhZHNfYWRkX2lkbGUgc2tpcD1mYWxzZQorIHRocmVhZHNfYWRkX2lkbGVfZnVsbCBz a2lwPWZhbHNlCistdGhyZWFkc19zZXRfbG9ja19mdW5jdGlvbnMgc2tpcD1mYWxzZQorIHRocmVh ZHNfYWRkX3RpbWVvdXQgc2tpcD1mYWxzZQorIHRocmVhZHNfYWRkX3RpbWVvdXRfZnVsbCBza2lw PWZhbHNlCisgCitAQCAtMTQzLDE1ICsxMTEsMTIgQEAgQWN0b3JCb3gKKyBVbml0cy5mcm9tXyog c2tpcAorIENvbG9yCisgCS5uZXcgc2tpcAorLVZlcnRleC5uZXcgc2tpcAorIAorIC8vIENsYXNz IG1ldGhvZHMKKyBjb250YWluZXJfY2xhc3NfZmluZF9jaGlsZF9wcm9wZXJ0eSBza2lwCisgY29u dGFpbmVyX2NsYXNzX2xpc3RfY2hpbGRfcHJvcGVydGllcyBza2lwCisgCisgLy8gTW92ZSBzeW1i b2xzCistZ2V0X2FjdG9yX2J5X2dpZCBwYXJlbnQ9IkNsdXR0ZXIuQWN0b3IiIG5hbWU9ImdldF9i eV9naWQiCistZ2V0X2lucHV0X2RldmljZV9mb3JfaWQgcGFyZW50PSJDbHV0dGVyLklucHV0RGV2 aWNlIiBuYW1lPSJnZXRfZm9yX2lkIgorIHVuaXRzX2Zyb21fKiBza2lwCisgCisgLy8gQ2xhc3Nl cyBtYXJrZWQgYXMgb3V0IGJ1dCBub3QgZG91YmxlIHB0cgorQEAgLTIwMiwyMyArMTY3LDE1IEBA IFBBVEhfUkVMQVRJVkUgc2tpcD1mYWxzZQorIFBSSU9SSVRZX1JFRFJBVyBza2lwPWZhbHNlCisg CisgLy8gQ2x1dHRlciBkZXZzIGRvbid0IGxpa2UgdXMgY3JlYXRpbmcgbmVzdGVkIG5hbWVzcGFj ZXMKKy1mcmFtZV9zb3VyY2VfKiBuYW1lPSJmcmFtZV9zb3VyY2VfKC4rKSIgcGFyZW50PSJDbHV0 dGVyLkZyYW1lU291cmNlIgorIHZhbHVlXyogbmFtZT0idmFsdWVfKC4rKSIgcGFyZW50PSJDbHV0 dGVyLlZhbHVlIgorIHRocmVhZHNfKiBuYW1lPSJ0aHJlYWRzXyguKykiIHBhcmVudD0iQ2x1dHRl ci5UaHJlYWRzIgorLXRocmVhZHNfYWRkX2ZyYW1lX3NvdXJjZSBuYW1lPSJhZGQiIHBhcmVudD0i Q2x1dHRlci5UaHJlYWRzLkZyYW1lU291cmNlIgorLXRocmVhZHNfYWRkX2ZyYW1lX3NvdXJjZV9m dWxsIG5hbWU9ImFkZF9mdWxsIiBwYXJlbnQ9IkNsdXR0ZXIuVGhyZWFkcy5GcmFtZVNvdXJjZSIK KyB0aHJlYWRzX2FkZF9pZGxlIG5hbWU9ImFkZCIgcGFyZW50PSJDbHV0dGVyLlRocmVhZHMuSWRs ZSIKKyB0aHJlYWRzX2FkZF9pZGxlX2Z1bGwgbmFtZT0iYWRkX2Z1bGwiIHBhcmVudD0iQ2x1dHRl ci5UaHJlYWRzLklkbGUiCisgdGhyZWFkc19hZGRfdGltZW91dCBuYW1lPSJhZGQiIHBhcmVudD0i Q2x1dHRlci5UaHJlYWRzLlRpbWVvdXQiCisgdGhyZWFkc19hZGRfdGltZW91dF9mdWxsIG5hbWU9 ImFkZF9mdWxsIiBwYXJlbnQ9IkNsdXR0ZXIuVGhyZWFkcy5UaW1lb3V0IgorLXV0aWxfbmV4dF9w MiBuYW1lPSJuZXh0X3Bvd2VyX29mXzIiIHBhcmVudD0iQ2x1dHRlci5VdGlsIgorIAorIC8vIEJh Y2t3YXJkcyBjb21wYXRpYmlsaXR5CisgQ29sb3IuYWxsb2Mgc3ltYm9sX3R5cGU9ImZ1bmN0aW9u IgorLVBvaW50LmFsbG9jIHN5bWJvbF90eXBlPSJmdW5jdGlvbiIKKy1SZWN0LmFsbG9jIHN5bWJv bF90eXBlPSJmdW5jdGlvbiIKKy1TaXplLmFsbG9jIHN5bWJvbF90eXBlPSJmdW5jdGlvbiIKKy1W ZXJ0ZXguYWxsb2Mgc3ltYm9sX3R5cGU9ImZ1bmN0aW9uIgorIAorIEJpbkFsaWdubWVudCBkZXBy ZWNhdGVkPWZhbHNlIGRlcHJlY2F0ZWRfc2luY2U9bnVsbAorIEJpbkFsaWdubWVudC4qIGRlcHJl Y2F0ZWQKK2RpZmYgLS1naXQgdmFwaS9Db2dsLTQubWV0YWRhdGEgdmFwaS9Db2dsLTYubWV0YWRh dGEKK3NpbWlsYXJpdHkgaW5kZXggMTAwJQorcmVuYW1lIGZyb20gdmFwaS9Db2dsLTQubWV0YWRh dGEKK3JlbmFtZSB0byB2YXBpL0NvZ2wtNi5tZXRhZGF0YQorZGlmZiAtLWdpdCB2YXBpL0NvZ2wt NS5tZXRhZGF0YSB2YXBpL0NvZ2wtNy5tZXRhZGF0YQorc2ltaWxhcml0eSBpbmRleCA5MSUKK3Jl bmFtZSBmcm9tIHZhcGkvQ29nbC01Lm1ldGFkYXRhCityZW5hbWUgdG8gdmFwaS9Db2dsLTcubWV0 YWRhdGEKK2luZGV4IDA5MmI1ZTI5Li5lNTJiZmEzNSAxMDA2NDQKKy0tLSB2YXBpL0NvZ2wtNS5t ZXRhZGF0YQorKysrIHZhcGkvQ29nbC03Lm1ldGFkYXRhCitAQCAtOSwxMiArOSwxMCBAQCBjcmVh dGVfc2hhZGVyIHNraXAKKyAKKyAKKyBpc19iaXRtYXAgc2tpcAorLWlzX21hdGVyaWFsIHNraXAK KyBpc19vZmZzY3JlZW4gc2tpcAorIGlzX3Byb2dyYW0gc2tpcAorIGlzX3NoYWRlciBza2lwCisg aXNfdGV4dHVyZSBza2lwCistaXNfdmVydGV4X2J1ZmZlciBza2lwCisgCisgTWF0cml4IHN0cnVj dAorICAgLmdldF9hcnJheSBhcnJheT10cnVlIGFycmF5X2xlbmd0aF9pZHg9LTEKK2RpZmYgLS1n aXQgdmFwaS9NZXRhLTMubWV0YWRhdGEgdmFwaS9NZXRhLTMubWV0YWRhdGEKK2RlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAoraW5kZXggMzcwZDQ5OTYuLjAwMDAwMDAwCistLS0gdmFwaS9NZXRhLTMu bWV0YWRhdGEKKysrKyAvZGV2L251bGwKK0BAIC0xLDY2ICswLDAgQEAKKy1CYWNrZW5kIGNoZWFk ZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZW5kLmgiCistQmFja2dyb3VuZCBjaGVhZGVyX2Zp bGVuYW1lPSJtZXRhL21ldGEtYmFja2dyb3VuZC5oIgorLUJhY2tncm91bmRBY3RvciBjaGVhZGVy X2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oIgorLUJhY2tncm91bmRHcm91 cCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oIgorLUJhY2tn cm91bmRJbWFnZUNhY2hlIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLWlt YWdlLmgiCistRGlzcGxheSBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2Rpc3BsYXkuaCIKKy1NZXRh IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWFpbi5oIgorLU1vbml0b3JNYW5hZ2VyIGNoZWFkZXJf ZmlsZW5hbWU9Im1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCIKKy1SZWN0YW5nbGUgc3RydWN0 CistUGx1Z2luIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1wbHVnaW4uaCIKKy1QbHVnaW5J bmZvIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1wbHVnaW4uaCIKKy1wcmVmc18qIGNoZWFk ZXJfZmlsZW5hbWU9Im1ldGEvcHJlZnMuaCIgcGFyZW50PSJNZXRhLlByZWZzIgorLWFkZF92ZXJi b3NlX3RvcGljIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwu aCIKKy1idWcgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5o IgorLWRlYnVnX3NwZXdfcmVhbCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0i bWV0YS91dGlsLmgiCistZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIHBhcmVudD0iTWV0YS5VdGls IiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy14MTFfZXJyb3JfdHJhcF9wb3AgcGFy ZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXgxMV9lcnJv cl90cmFwX3B1c2ggcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRp bC5oIgorLXgxMV9lcnJvcl90cmFwX3BvcF93aXRoX3JldHVybiBwYXJlbnQ9Ik1ldGEuVXRpbCIg Y2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistZXh0ZXJuYWxfYmluZGluZ19uYW1lX2Zv cl9hY3Rpb24gcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5o IgorLWZyZWVfZ3NsaXN0X2FuZF9lbGVtZW50cyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9m aWxlbmFtZT0ibWV0YS91dGlsLmgiCistZ191dGY4X3N0cm5kdXAgcGFyZW50PSJNZXRhLlV0aWwi IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWdldF9sb2NhbGVfZGlyZWN0aW9uIHBh cmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1nZXRfb3Zl cmxheV93aW5kb3cgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRp bC5oIgorLWdyYXZpdHlfdG9fc3RyaW5nIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVu YW1lPSJtZXRhL3V0aWwuaCIKKy1pc19kZWJ1Z2dpbmcgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFk ZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWlzX3N5bmNpbmcgcGFyZW50PSJNZXRhLlV0aWwi IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWlzX3ZlcmJvc2UgcGFyZW50PSJNZXRh LlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWlzX3dheWxhbmRfY29tcG9z aXRvciBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCist bGF0ZXJfYWRkIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwu aCIKKy1sYXRlcl9yZW1vdmUgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1l dGEvdXRpbC5oIgorLXBvcF9ub19tc2dfcHJlZml4IHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVy X2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1wdXNoX25vX21zZ19wcmVmaXggcGFyZW50PSJNZXRh LlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXJlY3QgcGFyZW50PSJNZXRh LlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXJlbW92ZV92ZXJib3NlX3Rv cGljIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1z ZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1l PSJtZXRhL3V0aWwuaCIKKy1zaG93X2RpYWxvZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9m aWxlbmFtZT0ibWV0YS91dGlsLmgiCistdG9waWNfcmVhbCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hl YWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistdW5zaWduZWRfbG9uZ19lcXVhbCBwYXJlbnQ9 Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistdW5zaWduZWRfbG9u Z19oYXNoIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIK Ky12ZXJib3NlX3JlYWwgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEv dXRpbC5oIgorLXdhcm5pbmcgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1l dGEvdXRpbC5oIgorLXNob3dfZGlhbG9nIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVu YW1lPSJtZXRhL3V0aWwuaCIKKy1nZXRfc3RhZ2VfZm9yX2Rpc3BsYXkgcGFyZW50PSJNZXRhLkNv bXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKy1n ZXRfd2luZG93X2FjdG9ycyBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFt ZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLWdldF93aW5kb3dfZ3JvdXBfZm9yX2Rpc3Bs YXkgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCIKKy1nZXRfdG9wX3dpbmRvd19ncm91cF9mb3JfZGlzcGxheSBwYXJlbnQ9 Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRl ci5oIgorLWdldF9mZWVkYmFja19ncm91cF9mb3JfZGlzcGxheSBwYXJlbnQ9Ik1ldGEuQ29tcG9z aXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLWRpc2Fi bGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRl cl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLWVuYWJsZV91bnJlZGlyZWN0 X2Zvcl9kaXNwbGF5IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCistc2V0X3N0YWdlX2lucHV0X3JlZ2lvbiBwYXJlbnQ9 Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRl ci5oIgorLWVtcHR5X3N0YWdlX2lucHV0X3JlZ2lvbiBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIg Y2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLWZvY3VzX3N0YWdl X3dpbmRvdyBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9j b21wb3NpdG9yLW11dHRlci5oIgorLXN0YWdlX2lzX2ZvY3VzZWQgcGFyZW50PSJNZXRhLkNvbXBv c2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKy1rZXli aW5kaW5nc19zZXRfY3VzdG9tX2hhbmRsZXIgcGFyZW50PSJNZXRhLktleUJpbmRpbmciIG5hbWU9 InNldF9jdXN0b21faGFuZGxlciIKKy1LZXlIYW5kbGVyRnVuYy5ldmVudCB0eXBlPSJDbHV0dGVy LktleUV2ZW50PyIKKy1nZXRfYmFja2VuZCBwYXJlbnQ9Ik1ldGEuQmFja2VuZCIKKy1XaW5kb3cu Zm9jdXMjc2lnbmFsIHNraXA9dHJ1ZQorLVdpbmRvdy5nZXRfeHdpbmRvdyBza2lwPWZhbHNlCist Z2V0X29wdGlvbl9jb250ZXh0IHNraXA9ZmFsc2UKKy1zZXRfZ25vbWVfd21fa2V5YmluZGluZ3Mg c2tpcD1mYWxzZQorLXNldF93bV9uYW1lIHNraXA9ZmFsc2UKKy1pbml0IHNraXA9ZmFsc2UKKy1y dW4gc2tpcD1mYWxzZQorLXNob3dfZGlhbG9nIHNraXA9ZmFsc2UKKy1nZXRfYmFja2VuZCBjaGVh ZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFja2VuZC5oIgorZGlmZiAtLWdpdCB2YXBpL01ldGEt NS5tZXRhZGF0YSB2YXBpL01ldGEtNi5tZXRhZGF0YQorc2ltaWxhcml0eSBpbmRleCAxMDAlCity ZW5hbWUgZnJvbSB2YXBpL01ldGEtNS5tZXRhZGF0YQorcmVuYW1lIHRvIHZhcGkvTWV0YS02Lm1l dGFkYXRhCitkaWZmIC0tZ2l0IHZhcGkvTWV0YS00Lm1ldGFkYXRhIHZhcGkvTWV0YS03Lm1ldGFk YXRhCitzaW1pbGFyaXR5IGluZGV4IDc2JQorcmVuYW1lIGZyb20gdmFwaS9NZXRhLTQubWV0YWRh dGEKK3JlbmFtZSB0byB2YXBpL01ldGEtNy5tZXRhZGF0YQoraW5kZXggYWUyYTc4MTcuLjcyNjI5 ZmJhIDEwMDY0NAorLS0tIHZhcGkvTWV0YS00Lm1ldGFkYXRhCisrKysgdmFwaS9NZXRhLTcubWV0 YWRhdGEKK0BAIC0xLDI2ICsxLDIxIEBACisgQmFja2VuZCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh L21ldGEtYmFja2VuZC5oIgorIEJhY2tncm91bmQgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRh LWJhY2tncm91bmQuaCIKKyBCYWNrZ3JvdW5kQWN0b3IgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9t ZXRhLWJhY2tncm91bmQtYWN0b3IuaCIKKytCYWNrZ3JvdW5kQ29udGVudCBjaGVhZGVyX2ZpbGVu YW1lPSJtZXRhL21ldGEtYmFja2dyb3VuZC1jb250ZW50LmgiCisgQmFja2dyb3VuZEdyb3VwIGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgiCisgQmFja2dyb3Vu ZEltYWdlIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgiCisg QmFja2dyb3VuZEltYWdlQ2FjaGUgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWJhY2tncm91 bmQtaW1hZ2UuaCIKKyBCYXJyaWVyIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvYmFycmllci5oIgor IEJhcnJpZXJFdmVudCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2JhcnJpZXIuaCIKKy1Cb3hlcyBj aGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2JveGVzLmgiCisgQ2xvc2VEaWFsb2cgY2hlYWRlcl9maWxl bmFtZT0ibWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oIgorLUNvbXBvc2l0b3IgY2hlYWRlcl9maWxl bmFtZT0ibWV0YS9jb21wb3NpdG9yLmgiCistQ29tcG9zaXRvck11dHRlciBjaGVhZGVyX2ZpbGVu YW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCisgQ3Vyc29yVHJhY2tlciBjaGVhZGVyX2Zp bGVuYW1lPSJtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCIKKyBEaXNwbGF5IGNoZWFkZXJfZmls ZW5hbWU9Im1ldGEvZGlzcGxheS5oIgorIERuZCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEt ZG5kLmgiCistR3JvdXAgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9ncm91cC5oIgorIElkbGVNb25p dG9yIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCIKKyBJbmhpYml0 U2hvcnRjdXRzRGlhbG9nIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1pbmhpYml0LXNob3J0 Y3V0cy1kaWFsb2cuaCIKKy1LZXliaW5kaW5ncyBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2tleWJp bmRpbmdzLmgiCisgTGF1bmNoQ29udGV4dCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtbGF1 bmNoLWNvbnRleHQuaCIKKyBNZXRhIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWFpbi5oIgorIE1v bml0b3JNYW5hZ2VyIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIu aCIKKy1QbHVnaW4gY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXBsdWdpbi5oIgorIFByZWZl cmVuY2UgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9wcmVmcy5oIgorIFJlbW90ZUFjY2Vzc0NvbnRy b2xsZXIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxl ci5oIgorIFJlbW90ZUFjY2Vzc0hhbmRsZSBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtcmVt b3RlLWFjY2Vzcy1jb250cm9sbGVyLmgiCitAQCAtMzEsOSArMjYsNyBAQCBTb3VuZFBsYXllciBj aGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtc291bmQtcGxheWVyLmgiCisgU3RhZ2UgY2hlYWRl cl9maWxlbmFtZT0ibWV0YS9tZXRhLXN0YWdlLmgiCisgU3RhcnR1cE5vdGlmaWNhdGlvbiBjaGVh ZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCIKKyBUaGVtZSBj aGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3RoZW1lLmgiCistVHlwZXMgY2hlYWRlcl9maWxlbmFtZT0i bWV0YS90eXBlcy5oIgorLVV0aWwgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistVmVy c2lvbiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtdmVyc2lvbi5oIgorK1dheWxhbmRDbGll bnQgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXdheWxhbmQtY2xpZW50LmgiCisgV2luZG93 IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvd2luZG93LmgiCisgV2luZG93QWN0b3IgY2hlYWRlcl9m aWxlbmFtZT0ibWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oIgorIFdpbmRvd0dyb3VwIGNoZWFkZXJf ZmlsZW5hbWU9Im1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCIKK0BAIC00NiwxNyArMzksMTEgQEAg UGx1Z2luIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1wbHVnaW4uaCIKKyBQbHVnaW5JbmZv IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1wbHVnaW4uaCIKKyBwcmVmc18qIGNoZWFkZXJf ZmlsZW5hbWU9Im1ldGEvcHJlZnMuaCIgcGFyZW50PSJNZXRhLlByZWZzIgorIGFkZF92ZXJib3Nl X3RvcGljIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIK Ky1idWcgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgor LWRlYnVnX3NwZXdfcmVhbCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0 YS91dGlsLmgiCistZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIHBhcmVudD0iTWV0YS5VdGlsIiBj aGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKyB4MTFfZXJyb3JfdHJhcF9wb3AgcGFyZW50 PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIHgxMV9lcnJvcl90 cmFwX3B1c2ggcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5o IgorIHgxMV9lcnJvcl90cmFwX3BvcF93aXRoX3JldHVybiBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hl YWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisgZXh0ZXJuYWxfYmluZGluZ19uYW1lX2Zvcl9h Y3Rpb24gcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgor LWZyZWVfZ3NsaXN0X2FuZF9lbGVtZW50cyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxl bmFtZT0ibWV0YS91dGlsLmgiCistZ191dGY4X3N0cm5kdXAgcGFyZW50PSJNZXRhLlV0aWwiIGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIGdldF9sb2NhbGVfZGlyZWN0aW9uIHBhcmVu dD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1nZXRfb3Zlcmxh eV93aW5kb3cgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5o IgorIGdyYXZpdHlfdG9fc3RyaW5nIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1l PSJtZXRhL3V0aWwuaCIKKyBpc19kZWJ1Z2dpbmcgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJf ZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIGlzX3N5bmNpbmcgcGFyZW50PSJNZXRhLlV0aWwiIGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorQEAgLTY4LDEzICs1NSw4IEBAIHBvcF9ub19t c2dfcHJlZml4IHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwu aCIKKyBwdXNoX25vX21zZ19wcmVmaXggcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5h bWU9Im1ldGEvdXRpbC5oIgorIHJlY3QgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5h bWU9Im1ldGEvdXRpbC5oIgorIHJlbW92ZV92ZXJib3NlX3RvcGljIHBhcmVudD0iTWV0YS5VdGls IiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1zZXRfc3RhZ2VfaW5wdXRfcmVnaW9u IHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1zaG93 X2RpYWxvZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgi CistdG9waWNfcmVhbCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91 dGlsLmgiCisgdW5zaWduZWRfbG9uZ19lcXVhbCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9m aWxlbmFtZT0ibWV0YS91dGlsLmgiCisgdW5zaWduZWRfbG9uZ19oYXNoIHBhcmVudD0iTWV0YS5V dGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy12ZXJib3NlX3JlYWwgcGFyZW50 PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXdhcm5pbmcgcGFy ZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIHNob3dfZGlh bG9nIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKyBn ZXRfc3RhZ2VfZm9yX2Rpc3BsYXkgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmls ZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKyBnZXRfd2luZG93X2FjdG9ycyBwYXJl bnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11 dHRlci5oIgorQEAgLTgzLDEwICs2NSw3IEBAIGdldF90b3Bfd2luZG93X2dyb3VwX2Zvcl9kaXNw bGF5IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhCisgZ2V0 X2ZlZWRiYWNrX2dyb3VwX2Zvcl9kaXNwbGF5IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVh ZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCisgZGlzYWJsZV91bnJlZGly ZWN0X2Zvcl9kaXNwbGF5IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1l PSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCisgZW5hYmxlX3VucmVkaXJlY3RfZm9yX2Rpc3Bs YXkgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCIKKy1zZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIHBhcmVudD0iTWV0YS5Db21w b3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCistZW1w dHlfc3RhZ2VfaW5wdXRfcmVnaW9uIHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2Zp bGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCisgZm9jdXNfc3RhZ2Vfd2luZG93IHBh cmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgiCistc3RhZ2VfaXNfZm9jdXNlZCBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hl YWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorIGtleWJpbmRpbmdzX3Nl dF9jdXN0b21faGFuZGxlciBwYXJlbnQ9Ik1ldGEuS2V5QmluZGluZyIgbmFtZT0ic2V0X2N1c3Rv bV9oYW5kbGVyIgorIEtleUhhbmRsZXJGdW5jLmV2ZW50IHR5cGU9IkNsdXR0ZXIuS2V5RXZlbnQ/ IgorIGdldF9iYWNrZW5kIHBhcmVudD0iTWV0YS5CYWNrZW5kIgorZGlmZiAtLWdpdCB2YXBpL2dl bmVyYXRlLW11dHRlci12YXBpLnNoIHZhcGkvZ2VuZXJhdGUtbXV0dGVyLXZhcGkuc2gKK2luZGV4 IDZiMDcwMjQwLi5iMjMzZTU4NiAxMDA3NTUKKy0tLSB2YXBpL2dlbmVyYXRlLW11dHRlci12YXBp LnNoCisrKysgdmFwaS9nZW5lcmF0ZS1tdXR0ZXItdmFwaS5zaAorQEAgLTEsNyArMSw3IEBACisg IyEvYmluL2Jhc2gKKyBzZXQgLXhlCisgCistdmVyc2lvbj0kezEtNH0KKyt2ZXJzaW9uPSR7Ni03 fQorIGdpcmRpcj0kKHBrZy1jb25maWcgbGlibXV0dGVyLSR2ZXJzaW9uIC0tdmFyaWFibGU9Z2ly ZGlyKQorIAorIGNkICQoZGlybmFtZSAkMCkKK2RpZmYgLS1naXQgdmFwaS9ncmFwaGVuZS1nb2Jq ZWN0LTEuMC52YXBpIHZhcGkvZ3JhcGhlbmUtZ29iamVjdC0xLjAudmFwaQorbmV3IGZpbGUgbW9k ZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwLi42OTgwMTUzNQorLS0tIC9kZXYvbnVsbAorKysrIHZh cGkvZ3JhcGhlbmUtZ29iamVjdC0xLjAudmFwaQorQEAgLTAsMCArMSw2OTEgQEAKKysvKiBncmFw aGVuZS1nb2JqZWN0LTEuMC52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5 LiAqLworKworK1tDQ29kZSAoY3ByZWZpeCA9ICJHcmFwaGVuZSIsIGdpcl9uYW1lc3BhY2UgPSAi R3JhcGhlbmUiLCBnaXJfdmVyc2lvbiA9ICIxLjAiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAiZ3Jh cGhlbmVfIildCisrbmFtZXNwYWNlIEdyYXBoZW5lIHsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX2JveF90IiwgdHlw ZV9pZCA9ICJncmFwaGVuZV9ib3hfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0g IjEuMiIpXQorKwlwdWJsaWMgc3RydWN0IEJveCB7CisrCQlwdWJsaWMgYm9vbCBjb250YWluc19i b3ggKEdyYXBoZW5lLkJveCBiKTsKKysJCXB1YmxpYyBib29sIGNvbnRhaW5zX3BvaW50IChHcmFw aGVuZS5Qb2ludDNEIHBvaW50KTsKKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5C b3g/IGVtcHR5ICgpOworKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5lLkJveCBiKTsKKysJ CXB1YmxpYyBHcmFwaGVuZS5Cb3ggZXhwYW5kIChHcmFwaGVuZS5Qb2ludDNEIHBvaW50KTsKKysJ CXB1YmxpYyBHcmFwaGVuZS5Cb3ggZXhwYW5kX3NjYWxhciAoZmxvYXQgc2NhbGFyKTsKKysJCXB1 YmxpYyBHcmFwaGVuZS5Cb3ggZXhwYW5kX3ZlYzMgKEdyYXBoZW5lLlZlYzMgdmVjKTsKKysJCXB1 YmxpYyBHcmFwaGVuZS5TcGhlcmUgZ2V0X2JvdW5kaW5nX3NwaGVyZSAoKTsKKysJCXB1YmxpYyBH cmFwaGVuZS5Qb2ludDNEIGdldF9jZW50ZXIgKCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X2RlcHRo ICgpOworKwkJcHVibGljIGZsb2F0IGdldF9oZWlnaHQgKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUu UG9pbnQzRCBnZXRfbWF4ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0QgZ2V0X21pbiAo KTsKKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIGdldF9zaXplICgpOworKwkJcHVibGljIHZvaWQg Z2V0X3ZlcnRpY2VzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gcmVmIEdyYXBoZW5l LlZlYzMgdmVydGljZXNbOF0pOworKwkJcHVibGljIGZsb2F0IGdldF93aWR0aCAoKTsKKysJCXB1 YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5Cb3g/IGluZmluaXRlICgpOworKwkJcHVibGlj IHVub3duZWQgR3JhcGhlbmUuQm94PyBpbml0IChHcmFwaGVuZS5Qb2ludDNEPyBtaW4sIEdyYXBo ZW5lLlBvaW50M0Q/IG1heCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Cb3g/IGluaXRf ZnJvbV9ib3ggKEdyYXBoZW5lLkJveCBzcmMpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUu Qm94PyBpbml0X2Zyb21fcG9pbnRzIChbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3Bv aW50cyIsIGFycmF5X2xlbmd0aF9wb3MgPSAwLjUsIGFycmF5X2xlbmd0aF90eXBlID0gImd1aW50 IildIEdyYXBoZW5lLlBvaW50M0RbXSBwb2ludHMpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhl bmUuQm94PyBpbml0X2Zyb21fdmVjMyAoR3JhcGhlbmUuVmVjMz8gbWluLCBHcmFwaGVuZS5WZWMz PyBtYXgpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuQm94PyBpbml0X2Zyb21fdmVjdG9y cyAoW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl92ZWN0b3JzIiwgYXJyYXlfbGVuZ3Ro X3BvcyA9IDAuNSwgYXJyYXlfbGVuZ3RoX3R5cGUgPSAiZ3VpbnQiKV0gR3JhcGhlbmUuVmVjM1td IHZlY3RvcnMpOworKwkJcHVibGljIGJvb2wgaW50ZXJzZWN0aW9uIChHcmFwaGVuZS5Cb3ggYiwg b3V0IEdyYXBoZW5lLkJveCByZXMpOworKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5l LkJveD8gbWludXNfb25lICgpOworKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLkJv eD8gb25lICgpOworKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLkJveD8gb25lX21p bnVzX29uZSAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Cb3ggdW5pb24gKEdyYXBoZW5lLkJveCBi KTsKKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5Cb3g/IHplcm8gKCk7CisrCX0K KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1l ID0gImdyYXBoZW5lX2V1bGVyX3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX2V1bGVyX2dldF90eXBl ICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJcHVibGljIHN0cnVjdCBFdWxl ciB7CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuRXVsZXIgYik7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF9hbHBoYSAoKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X2JldGEgKCk7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF9nYW1tYSAo KTsKKysJCXB1YmxpYyBHcmFwaGVuZS5FdWxlck9yZGVyIGdldF9vcmRlciAoKTsKKysJCXB1Ymxp YyBmbG9hdCBnZXRfeCAoKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfeSAoKTsKKysJCXB1YmxpYyBm bG9hdCBnZXRfeiAoKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLkV1bGVyPyBpbml0IChm bG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLkV1 bGVyPyBpbml0X2Zyb21fZXVsZXIgKEdyYXBoZW5lLkV1bGVyPyBzcmMpOworKwkJcHVibGljIHVu b3duZWQgR3JhcGhlbmUuRXVsZXI/IGluaXRfZnJvbV9tYXRyaXggKEdyYXBoZW5lLk1hdHJpeD8g bSwgR3JhcGhlbmUuRXVsZXJPcmRlciBvcmRlcik7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVu ZS5FdWxlcj8gaW5pdF9mcm9tX3F1YXRlcm5pb24gKEdyYXBoZW5lLlF1YXRlcm5pb24/IHEsIEdy YXBoZW5lLkV1bGVyT3JkZXIgb3JkZXIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K KysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLkV1bGVyPyBpbml0X2Zyb21fcmFkaWFucyAoZmxv YXQgeCwgZmxvYXQgeSwgZmxvYXQgeiwgR3JhcGhlbmUuRXVsZXJPcmRlciBvcmRlcik7CisrCQlw dWJsaWMgdW5vd25lZCBHcmFwaGVuZS5FdWxlcj8gaW5pdF9mcm9tX3ZlYzMgKEdyYXBoZW5lLlZl YzM/IHYsIEdyYXBoZW5lLkV1bGVyT3JkZXIgb3JkZXIpOworKwkJcHVibGljIHVub3duZWQgR3Jh cGhlbmUuRXVsZXI/IGluaXRfd2l0aF9vcmRlciAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeiwg R3JhcGhlbmUuRXVsZXJPcmRlciBvcmRlcik7CisrCQlwdWJsaWMgR3JhcGhlbmUuRXVsZXIgcmVv cmRlciAoR3JhcGhlbmUuRXVsZXJPcmRlciBvcmRlcik7CisrCQlwdWJsaWMgR3JhcGhlbmUuTWF0 cml4IHRvX21hdHJpeCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJs aWMgR3JhcGhlbmUuUXVhdGVybmlvbiB0b19xdWF0ZXJuaW9uICgpOworKwkJcHVibGljIEdyYXBo ZW5lLlZlYzMgdG9fdmVjMyAoKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Z3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfZnJ1c3R1bV90IiwgdHlwZV9p ZCA9ICJncmFwaGVuZV9mcnVzdHVtX2dldF90eXBlICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjIiKV0KKysJcHVibGljIHN0cnVjdCBGcnVzdHVtIHsKKysJCXB1YmxpYyBib29sIGNvbnRh aW5zX3BvaW50IChHcmFwaGVuZS5Qb2ludDNEIHBvaW50KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjYiKV0KKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5GcnVzdHVtIGIpOworKwkJ cHVibGljIHZvaWQgZ2V0X3BsYW5lcyAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHJl ZiBHcmFwaGVuZS5QbGFuZSBwbGFuZXNbNl0pOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUu RnJ1c3R1bT8gaW5pdCAoR3JhcGhlbmUuUGxhbmUgcDAsIEdyYXBoZW5lLlBsYW5lIHAxLCBHcmFw aGVuZS5QbGFuZSBwMiwgR3JhcGhlbmUuUGxhbmUgcDMsIEdyYXBoZW5lLlBsYW5lIHA0LCBHcmFw aGVuZS5QbGFuZSBwNSk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5GcnVzdHVtPyBpbml0 X2Zyb21fZnJ1c3R1bSAoR3JhcGhlbmUuRnJ1c3R1bSBzcmMpOworKwkJcHVibGljIHVub3duZWQg R3JhcGhlbmUuRnJ1c3R1bT8gaW5pdF9mcm9tX21hdHJpeCAoR3JhcGhlbmUuTWF0cml4IG1hdHJp eCk7CisrCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3RzX2JveCAoR3JhcGhlbmUuQm94IGJveCk7Cisr CQlwdWJsaWMgYm9vbCBpbnRlcnNlY3RzX3NwaGVyZSAoR3JhcGhlbmUuU3BoZXJlIHNwaGVyZSk7 CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIs IGNuYW1lID0gImdyYXBoZW5lX21hdHJpeF90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV9tYXRyaXhf Z2V0X3R5cGUgKCkiKV0KKysJcHVibGljIHN0cnVjdCBNYXRyaXggeworKwkJcHVibGljIGJvb2wg ZGVjb21wb3NlIChvdXQgR3JhcGhlbmUuVmVjMyB0cmFuc2xhdGUsIG91dCBHcmFwaGVuZS5WZWMz IHNjYWxlLCBvdXQgR3JhcGhlbmUuUXVhdGVybmlvbiByb3RhdGUsIG91dCBHcmFwaGVuZS5WZWMz IHNoZWFyLCBvdXQgR3JhcGhlbmUuVmVjNCBwZXJzcGVjdGl2ZSk7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZGV0ZXJtaW5hbnQgKCk7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5lLk1hdHJp eCBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgYm9vbCBlcXVh bF9mYXN0IChHcmFwaGVuZS5NYXRyaXggYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBnZXRfcm93ICh1aW50IGluZGV4Xyk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3ZhbHVlICh1aW50IHJv dywgdWludCBjb2wpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZs b2F0IGdldF94X3NjYWxlICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1 YmxpYyBmbG9hdCBnZXRfeF90cmFuc2xhdGlvbiAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfeV9zY2FsZSAoKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3lfdHJhbnNsYXRpb24gKCk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3pfc2NhbGUgKCk7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF96X3Ry YW5zbGF0aW9uICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVu b3duZWQgR3JhcGhlbmUuTWF0cml4PyBpbml0X2Zyb21fMmQgKGRvdWJsZSB4eCwgZG91YmxlIHl4 LCBkb3VibGUgeHksIGRvdWJsZSB5eSwgZG91YmxlIHhfMCwgZG91YmxlIHlfMCk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/ IGluaXRfZnJvbV9mbG9hdCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0IHZb MTZdKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdy YXBoZW5lLk1hdHJpeD8gaW5pdF9mcm9tX21hdHJpeCAoR3JhcGhlbmUuTWF0cml4IHNyYyk7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5N YXRyaXg/IGluaXRfZnJvbV92ZWM0IChHcmFwaGVuZS5WZWM0IHYwLCBHcmFwaGVuZS5WZWM0IHYx LCBHcmFwaGVuZS5WZWM0IHYyLCBHcmFwaGVuZS5WZWM0IHYzKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjIiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8gaW5pdF9mcnVz dHVtIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3AsIGZs b2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor KwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuTWF0cml4PyBpbml0X2lkZW50aXR5ICgpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuTWF0 cml4PyBpbml0X2xvb2tfYXQgKEdyYXBoZW5lLlZlYzMgZXllLCBHcmFwaGVuZS5WZWMzIGNlbnRl ciwgR3JhcGhlbmUuVmVjMyB1cCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlw dWJsaWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfb3J0aG8gKGZsb2F0IGxlZnQsIGZs b2F0IHJpZ2h0LCBmbG9hdCB0b3AsIGZsb2F0IGJvdHRvbSwgZmxvYXQgel9uZWFyLCBmbG9hdCB6 X2Zhcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBH cmFwaGVuZS5NYXRyaXg/IGluaXRfcGVyc3BlY3RpdmUgKGZsb2F0IGZvdnksIGZsb2F0IGFzcGVj dCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfcm90YXRlIChmbG9h dCBhbmdsZSwgR3JhcGhlbmUuVmVjMyBheGlzKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8gaW5pdF9zY2FsZSAoZmxvYXQg eCwgZmxvYXQgeSwgZmxvYXQgeik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlw dWJsaWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfc2tldyAoZmxvYXQgeF9za2V3LCBm bG9hdCB5X3NrZXcpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVu b3duZWQgR3JhcGhlbmUuTWF0cml4PyBpbml0X3RyYW5zbGF0ZSAoR3JhcGhlbmUuUG9pbnQzRCBw KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5NYXRy aXggaW50ZXJwb2xhdGUgKEdyYXBoZW5lLk1hdHJpeCBiLCBkb3VibGUgZmFjdG9yKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBib29sIGludmVyc2UgKG91dCBHcmFw aGVuZS5NYXRyaXggcmVzKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1Ymxp YyBib29sIGlzXzJkICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGlj IGJvb2wgaXNfYmFja2ZhY2VfdmlzaWJsZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyBib29sIGlzX2lkZW50aXR5ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorKwkJcHVibGljIGJvb2wgaXNfc2luZ3VsYXIgKCk7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuTWF0cml4IG11bHRpcGx5IChHcmFwaGVu ZS5NYXRyaXggYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGJv b2wgbmVhciAoR3JhcGhlbmUuTWF0cml4IGIsIGZsb2F0IGVwc2lsb24pOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLk1hdHJpeCBub3JtYWxpemUgKCk7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuTWF0cml4 IHBlcnNwZWN0aXZlIChmbG9hdCBkZXB0aCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisrCQlwdWJsaWMgdm9pZCBwcmludCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBwcm9qZWN0X3BvaW50IChHcmFwaGVuZS5Qb2ludCBw KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5RdWFk IHByb2plY3RfcmVjdCAoR3JhcGhlbmUuUmVjdCByKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IHByb2plY3RfcmVjdF9ib3VuZHMgKEdyYXBo ZW5lLlJlY3Qgcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9p ZCByb3RhdGUgKGZsb2F0IGFuZ2xlLCBHcmFwaGVuZS5WZWMzIGF4aXMpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIHZvaWQgcm90YXRlX2V1bGVyIChHcmFwaGVuZS5F dWxlciBlKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyB2b2lkIHJv dGF0ZV9xdWF0ZXJuaW9uIChHcmFwaGVuZS5RdWF0ZXJuaW9uIHEpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgcm90YXRlX3ggKGZsb2F0IGFuZ2xlKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB2b2lkIHJvdGF0ZV95IChmbG9h dCBhbmdsZSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCBy b3RhdGVfeiAoZmxvYXQgYW5nbGUpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJ cHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IGZhY3Rvcl94LCBmbG9hdCBmYWN0b3JfeSwgZmxvYXQg ZmFjdG9yX3opOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQg c2tld194eSAoZmxvYXQgZmFjdG9yKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJ CXB1YmxpYyB2b2lkIHNrZXdfeHogKGZsb2F0IGZhY3Rvcik7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCBza2V3X3l6IChmbG9hdCBmYWN0b3IpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGJvb2wgdG9fMmQgKG91dCBkb3VibGUg eHgsIG91dCBkb3VibGUgeXgsIG91dCBkb3VibGUgeHksIG91dCBkb3VibGUgeXksIG91dCBkb3Vi bGUgeF8wLCBvdXQgZG91YmxlIHlfMCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgdm9pZCB0b19mbG9hdCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHJl ZiBmbG9hdCB2WzE2XSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMg R3JhcGhlbmUuUmVjdCB0cmFuc2Zvcm1fYm91bmRzIChHcmFwaGVuZS5SZWN0IHIpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIEdyYXBoZW5lLkJveCB0cmFuc2Zvcm1f Ym94IChHcmFwaGVuZS5Cb3ggYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlw dWJsaWMgR3JhcGhlbmUuUG9pbnQgdHJhbnNmb3JtX3BvaW50IChHcmFwaGVuZS5Qb2ludCBwKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNE IHRyYW5zZm9ybV9wb2ludDNkIChHcmFwaGVuZS5Qb2ludDNEIHApOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlJheSB0cmFuc2Zvcm1fcmF5IChHcmFw aGVuZS5SYXkgcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3Jh cGhlbmUuUXVhZCB0cmFuc2Zvcm1fcmVjdCAoR3JhcGhlbmUuUmVjdCByKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5TcGhlcmUgdHJhbnNmb3JtX3Nw aGVyZSAoR3JhcGhlbmUuU3BoZXJlIHMpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor KwkJcHVibGljIEdyYXBoZW5lLlZlYzMgdHJhbnNmb3JtX3ZlYzMgKEdyYXBoZW5lLlZlYzMgdik7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCB0 cmFuc2Zvcm1fdmVjNCAoR3JhcGhlbmUuVmVjNCB2KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyB2b2lkIHRyYW5zbGF0ZSAoR3JhcGhlbmUuUG9pbnQzRCBwb3MpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLk1hdHJpeCB0 cmFuc3Bvc2UgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgR3Jh cGhlbmUuUG9pbnQzRCB1bnByb2plY3RfcG9pbnQzZCAoR3JhcGhlbmUuTWF0cml4IG1vZGVsdmll dywgR3JhcGhlbmUuUG9pbnQzRCBwb2ludCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCB1bnRyYW5zZm9ybV9ib3VuZHMgKEdyYXBoZW5lLlJl Y3QgciwgR3JhcGhlbmUuUmVjdCBib3VuZHMpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorKwkJcHVibGljIGJvb2wgdW50cmFuc2Zvcm1fcG9pbnQgKEdyYXBoZW5lLlBvaW50IHAsIEdy YXBoZW5lLlJlY3QgYm91bmRzLCBvdXQgR3JhcGhlbmUuUG9pbnQgcmVzKTsKKysJfQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3Jh cGhlbmVfcGxhbmVfdCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfcGxhbmVfZ2V0X3R5cGUgKCkiKV0K KysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwlwdWJsaWMgc3RydWN0IFBsYW5lIHsKKysJ CXB1YmxpYyBmbG9hdCBkaXN0YW5jZSAoR3JhcGhlbmUuUG9pbnQzRCBwb2ludCk7CisrCQlwdWJs aWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuUGxhbmUgYik7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X2Nv bnN0YW50ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgZ2V0X25vcm1hbCAoKTsKKysJCXB1 YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBsYW5lPyBpbml0IChHcmFwaGVuZS5WZWMzPyBub3JtYWws IGZsb2F0IGNvbnN0YW50KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBsYW5lPyBpbml0 X2Zyb21fcGxhbmUgKEdyYXBoZW5lLlBsYW5lIHNyYyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFw aGVuZS5QbGFuZT8gaW5pdF9mcm9tX3BvaW50IChHcmFwaGVuZS5WZWMzIG5vcm1hbCwgR3JhcGhl bmUuUG9pbnQzRCBwb2ludCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5QbGFuZT8gaW5p dF9mcm9tX3BvaW50cyAoR3JhcGhlbmUuUG9pbnQzRCBhLCBHcmFwaGVuZS5Qb2ludDNEIGIsIEdy YXBoZW5lLlBvaW50M0QgYyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5QbGFuZT8gaW5p dF9mcm9tX3ZlYzQgKEdyYXBoZW5lLlZlYzQgc3JjKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5QbGFu ZSBuZWdhdGUgKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUGxhbmUgbm9ybWFsaXplICgpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5QbGFuZSB0cmFu c2Zvcm0gKEdyYXBoZW5lLk1hdHJpeCBtYXRyaXgsIEdyYXBoZW5lLk1hdHJpeD8gbm9ybWFsX21h dHJpeCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmpl Y3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3BvaW50X3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX3Bv aW50X2dldF90eXBlICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJcHVibGlj IHN0cnVjdCBQb2ludCB7CisrCQlwdWJsaWMgZmxvYXQgeDsKKysJCXB1YmxpYyBmbG9hdCB5Owor KwkJcHVibGljIGZsb2F0IGRpc3RhbmNlIChHcmFwaGVuZS5Qb2ludCBiLCBvdXQgZmxvYXQgZF94 LCBvdXQgZmxvYXQgZF95KTsKKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5Qb2ludCBi KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBvaW50PyBpbml0IChmbG9hdCB4LCBmbG9h dCB5KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBvaW50PyBpbml0X2Zyb21fcG9pbnQg KEdyYXBoZW5lLlBvaW50IHNyYyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisrCQlw dWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Qb2ludD8gaW5pdF9mcm9tX3ZlYzIgKEdyYXBoZW5lLlZl YzIgc3JjKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBpbnRlcnBvbGF0ZSAoR3JhcGhlbmUu UG9pbnQgYiwgZG91YmxlIGZhY3Rvcik7CisrCQlwdWJsaWMgYm9vbCBuZWFyIChHcmFwaGVuZS5Q b2ludCBiLCBmbG9hdCBlcHNpbG9uKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJ CXB1YmxpYyBHcmFwaGVuZS5WZWMyIHRvX3ZlYzIgKCk7CisrCQlwdWJsaWMgc3RhdGljIHVub3du ZWQgR3JhcGhlbmUuUG9pbnQ/IHplcm8gKCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3BvaW50M2RfdCIs IGxvd2VyX2Nhc2VfY3N1ZmZpeCA9ICJwb2ludDNkIiwgdHlwZV9pZCA9ICJncmFwaGVuZV9wb2lu dDNkX2dldF90eXBlICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJcHVibGlj IHN0cnVjdCBQb2ludDNEIHsKKysJCXB1YmxpYyBmbG9hdCB4OworKwkJcHVibGljIGZsb2F0IHk7 CisrCQlwdWJsaWMgZmxvYXQgejsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIGNyb3NzIChH cmFwaGVuZS5Qb2ludDNEIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorKwkJcHVi bGljIGZsb2F0IGRpc3RhbmNlIChHcmFwaGVuZS5Qb2ludDNEIGIsIG91dCBHcmFwaGVuZS5WZWMz IGRlbHRhKTsKKysJCXB1YmxpYyBmbG9hdCBkb3QgKEdyYXBoZW5lLlBvaW50M0QgYik7CisrCQlw dWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuUG9pbnQzRCBiKTsKKysJCXB1YmxpYyB1bm93bmVk IEdyYXBoZW5lLlBvaW50M0Q/IGluaXQgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworKwkJ cHVibGljIHVub3duZWQgR3JhcGhlbmUuUG9pbnQzRD8gaW5pdF9mcm9tX3BvaW50IChHcmFwaGVu ZS5Qb2ludDNEIHNyYyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Qb2ludDNEPyBpbml0 X2Zyb21fdmVjMyAoR3JhcGhlbmUuVmVjMyB2KTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNE IGludGVycG9sYXRlIChHcmFwaGVuZS5Qb2ludDNEIGIsIGRvdWJsZSBmYWN0b3IpOworKwkJcHVi bGljIGZsb2F0IGxlbmd0aCAoKTsKKysJCXB1YmxpYyBib29sIG5lYXIgKEdyYXBoZW5lLlBvaW50 M0QgYiwgZmxvYXQgZXBzaWxvbik7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBub3JtYWxp emUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisrCQlwdWJsaWMgR3JhcGhlbmUu UG9pbnQzRCBub3JtYWxpemVfdmlld3BvcnQgKEdyYXBoZW5lLlJlY3Qgdmlld3BvcnQsIGZsb2F0 IHpfbmVhciwgZmxvYXQgel9mYXIpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0Qgc2NhbGUg KGZsb2F0IGZhY3Rvcik7CisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyB0b192ZWMzICgpOworKwkJ cHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlBvaW50M0Q/IHplcm8gKCk7CisrCX0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0g ImdyYXBoZW5lX3F1YWRfdCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfcXVhZF9nZXRfdHlwZSAoKSIp XQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCXB1YmxpYyBzdHJ1Y3QgUXVhZCB7Cisr CQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBib3VuZHMgKCk7CisrCQlwdWJsaWMgYm9vbCBjb250YWlu cyAoR3JhcGhlbmUuUG9pbnQgcCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Qb2ludD8g Z2V0X3BvaW50ICh1aW50IGluZGV4Xyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5RdWFk PyBpbml0IChHcmFwaGVuZS5Qb2ludCBwMSwgR3JhcGhlbmUuUG9pbnQgcDIsIEdyYXBoZW5lLlBv aW50IHAzLCBHcmFwaGVuZS5Qb2ludCBwNCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIild CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5RdWFkPyBpbml0X2Zyb21fcG9pbnRzIChbQ0Nv ZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gR3JhcGhlbmUuUG9pbnQgcG9pbnRzWzRdKTsKKysJ CXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlF1YWQ/IGluaXRfZnJvbV9yZWN0IChHcmFwaGVuZS5S ZWN0IHIpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2Jq ZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9xdWF0ZXJuaW9uX3QiLCB0eXBlX2lkID0gImdyYXBo ZW5lX3F1YXRlcm5pb25fZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorKwlwdWJsaWMgc3RydWN0IFF1YXRlcm5pb24geworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5RdWF0ZXJuaW9uIGFkZCAoR3JhcGhlbmUuUXVhdGVy bmlvbiBiKTsKKysJCXB1YmxpYyBmbG9hdCBkb3QgKEdyYXBoZW5lLlF1YXRlcm5pb24gYik7Cisr CQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuUXVhdGVybmlvbiBiKTsKKysJCXB1YmxpYyB1 bm93bmVkIEdyYXBoZW5lLlF1YXRlcm5pb24/IGluaXQgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0 IHosIGZsb2F0IHcpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUXVhdGVybmlvbj8gaW5p dF9mcm9tX2FuZ2xlX3ZlYzMgKGZsb2F0IGFuZ2xlLCBHcmFwaGVuZS5WZWMzIGF4aXMpOworKwkJ cHVibGljIHVub3duZWQgR3JhcGhlbmUuUXVhdGVybmlvbj8gaW5pdF9mcm9tX2FuZ2xlcyAoZmxv YXQgZGVnX3gsIGZsb2F0IGRlZ195LCBmbG9hdCBkZWdfeik7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4yIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5RdWF0ZXJuaW9uPyBpbml0X2Zy b21fZXVsZXIgKEdyYXBoZW5lLkV1bGVyIGUpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUu UXVhdGVybmlvbj8gaW5pdF9mcm9tX21hdHJpeCAoR3JhcGhlbmUuTWF0cml4IG0pOworKwkJcHVi bGljIHVub3duZWQgR3JhcGhlbmUuUXVhdGVybmlvbj8gaW5pdF9mcm9tX3F1YXRlcm5pb24gKEdy YXBoZW5lLlF1YXRlcm5pb24gc3JjKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlF1YXRl cm5pb24/IGluaXRfZnJvbV9yYWRpYW5zIChmbG9hdCByYWRfeCwgZmxvYXQgcmFkX3ksIGZsb2F0 IHJhZF96KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlF1YXRlcm5pb24/IGluaXRfZnJv bV92ZWM0IChHcmFwaGVuZS5WZWM0IHNyYyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5R dWF0ZXJuaW9uPyBpbml0X2lkZW50aXR5ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlF1YXRlcm5p b24gaW52ZXJ0ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBH cmFwaGVuZS5RdWF0ZXJuaW9uIG11bHRpcGx5IChHcmFwaGVuZS5RdWF0ZXJuaW9uIGIpOworKwkJ cHVibGljIEdyYXBoZW5lLlF1YXRlcm5pb24gbm9ybWFsaXplICgpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5RdWF0ZXJuaW9uIHNjYWxlIChmbG9h dCBmYWN0b3IpOworKwkJcHVibGljIEdyYXBoZW5lLlF1YXRlcm5pb24gc2xlcnAgKEdyYXBoZW5l LlF1YXRlcm5pb24gYiwgZmxvYXQgZmFjdG9yKTsKKysJCXB1YmxpYyB2b2lkIHRvX2FuZ2xlX3Zl YzMgKG91dCBmbG9hdCBhbmdsZSwgb3V0IEdyYXBoZW5lLlZlYzMgYXhpcyk7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgdm9pZCB0b19hbmdsZXMgKG91dCBmbG9hdCBk ZWdfeCwgb3V0IGZsb2F0IGRlZ195LCBvdXQgZmxvYXQgZGVnX3opOworKwkJcHVibGljIEdyYXBo ZW5lLk1hdHJpeCB0b19tYXRyaXggKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisr CQlwdWJsaWMgdm9pZCB0b19yYWRpYW5zIChvdXQgZmxvYXQgcmFkX3gsIG91dCBmbG9hdCByYWRf eSwgb3V0IGZsb2F0IHJhZF96KTsKKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IHRvX3ZlYzQgKCk7 CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIs IGNuYW1lID0gImdyYXBoZW5lX3JheV90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV9yYXlfZ2V0X3R5 cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorKwlwdWJsaWMgc3RydWN0IFJh eSB7CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuUmF5IGIpOworKwkJcHVibGljIEdy YXBoZW5lLlBvaW50M0QgZ2V0X2Nsb3Nlc3RfcG9pbnRfdG9fcG9pbnQgKEdyYXBoZW5lLlBvaW50 M0QgcCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBnZXRfZGlyZWN0aW9uICgpOworKwkJcHVi bGljIGZsb2F0IGdldF9kaXN0YW5jZV90b19wbGFuZSAoR3JhcGhlbmUuUGxhbmUgcCk7CisrCQlw dWJsaWMgZmxvYXQgZ2V0X2Rpc3RhbmNlX3RvX3BvaW50IChHcmFwaGVuZS5Qb2ludDNEIHApOwor KwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0QgZ2V0X29yaWdpbiAoKTsKKysJCXB1YmxpYyBHcmFw aGVuZS5Qb2ludDNEIGdldF9wb3NpdGlvbl9hdCAoZmxvYXQgdCk7CisrCQlwdWJsaWMgdW5vd25l ZCBHcmFwaGVuZS5SYXk/IGluaXQgKEdyYXBoZW5lLlBvaW50M0Q/IG9yaWdpbiwgR3JhcGhlbmUu VmVjMz8gZGlyZWN0aW9uKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlJheT8gaW5pdF9m cm9tX3JheSAoR3JhcGhlbmUuUmF5IHNyYyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5S YXk/IGluaXRfZnJvbV92ZWMzIChHcmFwaGVuZS5WZWMzPyBvcmlnaW4sIEdyYXBoZW5lLlZlYzM/ IGRpcmVjdGlvbik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIEdy YXBoZW5lLlJheUludGVyc2VjdGlvbktpbmQgaW50ZXJzZWN0X2JveCAoR3JhcGhlbmUuQm94IGIs IG91dCBmbG9hdCB0X291dCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVi bGljIEdyYXBoZW5lLlJheUludGVyc2VjdGlvbktpbmQgaW50ZXJzZWN0X3NwaGVyZSAoR3JhcGhl bmUuU3BoZXJlIHMsIG91dCBmbG9hdCB0X291dCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlJheUludGVyc2VjdGlvbktpbmQgaW50ZXJzZWN0X3Ry aWFuZ2xlIChHcmFwaGVuZS5UcmlhbmdsZSB0LCBvdXQgZmxvYXQgdF9vdXQpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBib29sIGludGVyc2VjdHNfYm94IChHcmFw aGVuZS5Cb3ggYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGJv b2wgaW50ZXJzZWN0c19zcGhlcmUgKEdyYXBoZW5lLlNwaGVyZSBzKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3RzX3RyaWFuZ2xlIChHcmFw aGVuZS5UcmlhbmdsZSB0KTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3Jh cGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfcmVjdF90IiwgdHlwZV9pZCA9ICJn cmFwaGVuZV9yZWN0X2dldF90eXBlICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KysJcHVibGljIHN0cnVjdCBSZWN0IHsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBvcmlnaW47 CisrCQlwdWJsaWMgR3JhcGhlbmUuU2l6ZSBzaXplOworKwkJcHVibGljIHN0YXRpYyBHcmFwaGVu ZS5SZWN0PyBhbGxvYyAoKTsKKysJCXB1YmxpYyBib29sIGNvbnRhaW5zX3BvaW50IChHcmFwaGVu ZS5Qb2ludCBwKTsKKysJCXB1YmxpYyBib29sIGNvbnRhaW5zX3JlY3QgKEdyYXBoZW5lLlJlY3Qg Yik7CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuUmVjdCBiKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IGV4cGFuZCAoR3JhcGhl bmUuUG9pbnQgcCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGZs b2F0IGdldF9hcmVhICgpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50IGdldF9ib3R0b21fbGVm dCAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBnZXRfYm90dG9tX3JpZ2h0ICgpOworKwkJ cHVibGljIEdyYXBoZW5lLlBvaW50IGdldF9jZW50ZXIgKCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0 X2hlaWdodCAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBnZXRfdG9wX2xlZnQgKCk7Cisr CQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQgZ2V0X3RvcF9yaWdodCAoKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyB2b2lkIGdldF92ZXJ0aWNlcyAoW0NDb2RlIChhcnJh eV9sZW5ndGggPSBmYWxzZSldIHJlZiBHcmFwaGVuZS5WZWMyIHZlcnRpY2VzWzRdKTsKKysJCXB1 YmxpYyBmbG9hdCBnZXRfd2lkdGggKCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X3ggKCk7CisrCQlw dWJsaWMgZmxvYXQgZ2V0X3kgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5SZWN0PyBp bml0IChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKysJCXB1 YmxpYyB1bm93bmVkIEdyYXBoZW5lLlJlY3Q/IGluaXRfZnJvbV9yZWN0IChHcmFwaGVuZS5SZWN0 IHNyYyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5SZWN0PyBpbnNldCAoZmxvYXQgZF94 LCBmbG9hdCBkX3kpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorKwkJcHVibGljIEdy YXBoZW5lLlJlY3QgaW5zZXRfciAoZmxvYXQgZF94LCBmbG9hdCBkX3kpOworKwkJcHVibGljIEdy YXBoZW5lLlJlY3QgaW50ZXJwb2xhdGUgKEdyYXBoZW5lLlJlY3QgYiwgZG91YmxlIGZhY3Rvcik7 CisrCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3Rpb24gKEdyYXBoZW5lLlJlY3QgYiwgb3V0IEdyYXBo ZW5lLlJlY3QgcmVzKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlJlY3Q/IG5vcm1hbGl6 ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5S ZWN0IG5vcm1hbGl6ZV9yICgpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUmVjdD8gb2Zm c2V0IChmbG9hdCBkX3gsIGZsb2F0IGRfeSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40Iild CisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBvZmZzZXRfciAoZmxvYXQgZF94LCBmbG9hdCBkX3kp OworKwkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiLCBzaW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IHJvdW5kICgpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IHJv dW5kX2V4dGVudHMgKCk7CisrCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS40Iiwgc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFw aGVuZS5SZWN0PyByb3VuZF90b19waXhlbCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBzY2FsZSAoZmxvYXQgc19oLCBmbG9hdCBzX3Yp OworKwkJcHVibGljIEdyYXBoZW5lLlJlY3QgdW5pb24gKEdyYXBoZW5lLlJlY3QgYik7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS40IildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhl bmUuUmVjdD8gemVybyAoKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3Jh cGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfc2ltZDRmX3QiLCBoYXNfdHlwZV9p ZCA9IGZhbHNlKV0KKysJcHVibGljIHN0cnVjdCBTaW1kNEYgeworKwl9CisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9z aW1kNHg0Zl90IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCXB1YmxpYyBzdHJ1Y3QgU2ltZDRY NEYgeworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0 LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9zaXplX3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX3NpemVf Z2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwlwdWJsaWMgc3Ry dWN0IFNpemUgeworKwkJcHVibGljIGZsb2F0IHdpZHRoOworKwkJcHVibGljIGZsb2F0IGhlaWdo dDsKKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5TaXplIGIpOworKwkJcHVibGljIHVu b3duZWQgR3JhcGhlbmUuU2l6ZT8gaW5pdCAoZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7Cisr CQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5TaXplPyBpbml0X2Zyb21fc2l6ZSAoR3JhcGhlbmUu U2l6ZSBzcmMpOworKwkJcHVibGljIEdyYXBoZW5lLlNpemUgaW50ZXJwb2xhdGUgKEdyYXBoZW5l LlNpemUgYiwgZG91YmxlIGZhY3Rvcik7CisrCQlwdWJsaWMgR3JhcGhlbmUuU2l6ZSBzY2FsZSAo ZmxvYXQgZmFjdG9yKTsKKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5TaXplPyB6 ZXJvICgpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2Jq ZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9zcGhlcmVfdCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVf c3BoZXJlX2dldF90eXBlICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJcHVi bGljIHN0cnVjdCBTcGhlcmUgeworKwkJcHVibGljIGJvb2wgY29udGFpbnNfcG9pbnQgKEdyYXBo ZW5lLlBvaW50M0QgcG9pbnQpOworKwkJcHVibGljIGZsb2F0IGRpc3RhbmNlIChHcmFwaGVuZS5Q b2ludDNEIHBvaW50KTsKKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5TcGhlcmUgYik7 CisrCQlwdWJsaWMgR3JhcGhlbmUuQm94IGdldF9ib3VuZGluZ19ib3ggKCk7CisrCQlwdWJsaWMg R3JhcGhlbmUuUG9pbnQzRCBnZXRfY2VudGVyICgpOworKwkJcHVibGljIGZsb2F0IGdldF9yYWRp dXMgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5TcGhlcmU/IGluaXQgKEdyYXBoZW5l LlBvaW50M0Q/IGNlbnRlciwgZmxvYXQgcmFkaXVzKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBo ZW5lLlNwaGVyZT8gaW5pdF9mcm9tX3BvaW50cyAoW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUg PSAibl9wb2ludHMiLCBhcnJheV9sZW5ndGhfcG9zID0gMC41LCBhcnJheV9sZW5ndGhfdHlwZSA9 ICJndWludCIpXSBHcmFwaGVuZS5Qb2ludDNEW10gcG9pbnRzLCBHcmFwaGVuZS5Qb2ludDNEPyBj ZW50ZXIpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuU3BoZXJlPyBpbml0X2Zyb21fdmVj dG9ycyAoW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl92ZWN0b3JzIiwgYXJyYXlfbGVu Z3RoX3BvcyA9IDAuNSwgYXJyYXlfbGVuZ3RoX3R5cGUgPSAiZ3VpbnQiKV0gR3JhcGhlbmUuVmVj M1tdIHZlY3RvcnMsIEdyYXBoZW5lLlBvaW50M0Q/IGNlbnRlcik7CisrCQlwdWJsaWMgYm9vbCBp c19lbXB0eSAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5TcGhlcmUgdHJhbnNsYXRlIChHcmFwaGVu ZS5Qb2ludDNEIHBvaW50KTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3Jh cGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfdHJpYW5nbGVfdCIsIHR5cGVfaWQg PSAiZ3JhcGhlbmVfdHJpYW5nbGVfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0g IjEuMiIpXQorKwlwdWJsaWMgc3RydWN0IFRyaWFuZ2xlIHsKKysJCXB1YmxpYyBib29sIGNvbnRh aW5zX3BvaW50IChHcmFwaGVuZS5Qb2ludDNEIHApOworKwkJcHVibGljIGJvb2wgZXF1YWwgKEdy YXBoZW5lLlRyaWFuZ2xlIGIpOworKwkJcHVibGljIGZsb2F0IGdldF9hcmVhICgpOworKwkJcHVi bGljIGJvb2wgZ2V0X2Jhcnljb29yZHMgKEdyYXBoZW5lLlBvaW50M0Q/IHAsIG91dCBHcmFwaGVu ZS5WZWMyIHJlcyk7CisrCQlwdWJsaWMgR3JhcGhlbmUuQm94IGdldF9ib3VuZGluZ19ib3ggKCk7 CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBnZXRfbWlkcG9pbnQgKCk7CisrCQlwdWJsaWMg R3JhcGhlbmUuVmVjMyBnZXRfbm9ybWFsICgpOworKwkJcHVibGljIEdyYXBoZW5lLlBsYW5lIGdl dF9wbGFuZSAoKTsKKysJCXB1YmxpYyB2b2lkIGdldF9wb2ludHMgKG91dCBHcmFwaGVuZS5Qb2lu dDNEIGEsIG91dCBHcmFwaGVuZS5Qb2ludDNEIGIsIG91dCBHcmFwaGVuZS5Qb2ludDNEIGMpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBib29sIGdldF91diAoR3Jh cGhlbmUuUG9pbnQzRD8gcCwgR3JhcGhlbmUuVmVjMiB1dl9hLCBHcmFwaGVuZS5WZWMyIHV2X2Is IEdyYXBoZW5lLlZlYzIgdXZfYywgb3V0IEdyYXBoZW5lLlZlYzIgcmVzKTsKKysJCXB1YmxpYyB2 b2lkIGdldF92ZXJ0aWNlcyAob3V0IEdyYXBoZW5lLlZlYzMgYSwgb3V0IEdyYXBoZW5lLlZlYzMg Yiwgb3V0IEdyYXBoZW5lLlZlYzMgYyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor KwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuVHJpYW5nbGU/IGluaXRfZnJvbV9mbG9hdCAoW0ND b2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0IGFbM10sIFtDQ29kZSAoYXJyYXlfbGVu Z3RoID0gZmFsc2UpXSBmbG9hdCBiWzNdLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0g ZmxvYXQgY1szXSk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5UcmlhbmdsZT8gaW5pdF9m cm9tX3BvaW50M2QgKEdyYXBoZW5lLlBvaW50M0Q/IGEsIEdyYXBoZW5lLlBvaW50M0Q/IGIsIEdy YXBoZW5lLlBvaW50M0Q/IGMpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuVHJpYW5nbGU/ IGluaXRfZnJvbV92ZWMzIChHcmFwaGVuZS5WZWMzPyBhLCBHcmFwaGVuZS5WZWMzPyBiLCBHcmFw aGVuZS5WZWMzPyBjKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhl bmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfdmVjMl90IiwgdHlwZV9pZCA9ICJncmFw aGVuZV92ZWMyX2dldF90eXBlICgpIildCisrCXB1YmxpYyBzdHJ1Y3QgVmVjMiB7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBhZGQgKEdyYXBo ZW5lLlZlYzIgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3Jh cGhlbmUuVmVjMiBkaXZpZGUgKEdyYXBoZW5lLlZlYzIgYik7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZG90IChHcmFwaGVuZS5WZWMyIGIpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5lLlZl YzIgdjIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGdl dF94ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGdl dF95ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQg R3JhcGhlbmUuVmVjMj8gaW5pdCAoZmxvYXQgeCwgZmxvYXQgeSk7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5WZWMyPyBpbml0X2Zyb21f ZmxvYXQgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdCBzcmNbMl0pOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuVmVj Mj8gaW5pdF9mcm9tX3ZlYzIgKEdyYXBoZW5lLlZlYzIgc3JjKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBpbnRlcnBvbGF0ZSAoR3JhcGhl bmUuVmVjMiB2MiwgZG91YmxlIGZhY3Rvcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisrCQlwdWJsaWMgZmxvYXQgbGVuZ3RoICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzIgbWF4IChHcmFwaGVuZS5WZWMyIGIpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzIgbWluIChHcmFw aGVuZS5WZWMyIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdy YXBoZW5lLlZlYzIgbXVsdGlwbHkgKEdyYXBoZW5lLlZlYzIgYik7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4yIildCisrCQlwdWJsaWMgYm9vbCBuZWFyIChHcmFwaGVuZS5WZWMyIHYyLCBmbG9h dCBlcHNpbG9uKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFw aGVuZS5WZWMyIG5lZ2F0ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1 YmxpYyBHcmFwaGVuZS5WZWMyIG5vcm1hbGl6ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWMyPyBvbmUgKCk7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBzY2Fs ZSAoZmxvYXQgZmFjdG9yKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1Ymxp YyBHcmFwaGVuZS5WZWMyIHN1YnRyYWN0IChHcmFwaGVuZS5WZWMyIGIpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgdG9fZmxvYXQgKFtDQ29kZSAoYXJyYXlf bGVuZ3RoID0gZmFsc2UpXSByZWYgZmxvYXQgZGVzdFsyXSk7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuVmVjMj8geF9heGlz ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93 bmVkIEdyYXBoZW5lLlZlYzI/IHlfYXhpcyAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWMyPyB6ZXJvICgpOworKwl9 CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFt ZSA9ICJncmFwaGVuZV92ZWMzX3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX3ZlYzNfZ2V0X3R5cGUg KCkiKV0KKysJcHVibGljIHN0cnVjdCBWZWMzIHsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIGFkZCAoR3JhcGhlbmUuVmVjMyBiKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIGNyb3NzIChH cmFwaGVuZS5WZWMzIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGlj IEdyYXBoZW5lLlZlYzMgZGl2aWRlIChHcmFwaGVuZS5WZWMzIGIpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGRvdCAoR3JhcGhlbmUuVmVjMyBiKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVu ZS5WZWMzIHYyKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9h dCBnZXRfeCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFw aGVuZS5WZWMyIGdldF94eSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1 YmxpYyBHcmFwaGVuZS5WZWMzIGdldF94eTAgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBnZXRfeHl6MCAoKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IGdldF94eXoxICgpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzQgZ2V0X3h5 encgKGZsb2F0IHcpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZs b2F0IGdldF95ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZs b2F0IGdldF96ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVu b3duZWQgR3JhcGhlbmUuVmVjMz8gaW5pdCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5W ZWMzPyBpbml0X2Zyb21fZmxvYXQgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9h dCBzcmNbM10pOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3du ZWQgR3JhcGhlbmUuVmVjMz8gaW5pdF9mcm9tX3ZlYzMgKEdyYXBoZW5lLlZlYzMgc3JjKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBpbnRl cnBvbGF0ZSAoR3JhcGhlbmUuVmVjMyB2MiwgZG91YmxlIGZhY3Rvcik7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgbGVuZ3RoICgpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgbWF4IChHcmFwaGVuZS5W ZWMzIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5l LlZlYzMgbWluIChHcmFwaGVuZS5WZWMzIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgbXVsdGlwbHkgKEdyYXBoZW5lLlZlYzMgYik7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgYm9vbCBuZWFyIChHcmFwaGVu ZS5WZWMzIHYyLCBmbG9hdCBlcHNpbG9uKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0K KysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIG5lZ2F0ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIG5vcm1hbGl6ZSAoKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5W ZWMzPyBvbmUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgR3Jh cGhlbmUuVmVjMyBzY2FsZSAoZmxvYXQgZmFjdG9yKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIHN1YnRyYWN0IChHcmFwaGVuZS5WZWMzIGIp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgdG9fZmxvYXQg KFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSByZWYgZmxvYXQgZGVzdFszXSk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhl bmUuVmVjMz8geF9heGlzICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVi bGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzM/IHlfYXhpcyAoKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWMz PyB6X2F4aXMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3Rh dGljIHVub3duZWQgR3JhcGhlbmUuVmVjMz8gemVybyAoKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfdmVj NF90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV92ZWM0X2dldF90eXBlICgpIildCisrCXB1YmxpYyBz dHJ1Y3QgVmVjNCB7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3Jh cGhlbmUuVmVjNCBhZGQgKEdyYXBoZW5lLlZlYzQgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBkaXZpZGUgKEdyYXBoZW5lLlZlYzQgYik7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZG90IChHcmFw aGVuZS5WZWM0IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIGJv b2wgZXF1YWwgKEdyYXBoZW5lLlZlYzQgdjIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorKwkJcHVibGljIGZsb2F0IGdldF93ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorKwkJcHVibGljIGZsb2F0IGdldF94ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzIgZ2V0X3h5ICgpOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgZ2V0X3h5eiAoKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfeSAoKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfeiAoKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzQ/IGlu aXQgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHosIGZsb2F0IHcpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuVmVjND8gaW5pdF9mcm9t X2Zsb2F0IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXQgc3JjWzRdKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlZl YzQ/IGluaXRfZnJvbV92ZWMyIChHcmFwaGVuZS5WZWMyIHNyYywgZmxvYXQgeiwgZmxvYXQgdyk7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVu ZS5WZWM0PyBpbml0X2Zyb21fdmVjMyAoR3JhcGhlbmUuVmVjMyBzcmMsIGZsb2F0IHcpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuVmVj ND8gaW5pdF9mcm9tX3ZlYzQgKEdyYXBoZW5lLlZlYzQgc3JjKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBpbnRlcnBvbGF0ZSAoR3JhcGhl bmUuVmVjNCB2MiwgZG91YmxlIGZhY3Rvcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisrCQlwdWJsaWMgZmxvYXQgbGVuZ3RoICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzQgbWF4IChHcmFwaGVuZS5WZWM0IGIpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzQgbWluIChHcmFw aGVuZS5WZWM0IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdy YXBoZW5lLlZlYzQgbXVsdGlwbHkgKEdyYXBoZW5lLlZlYzQgYik7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4yIildCisrCQlwdWJsaWMgYm9vbCBuZWFyIChHcmFwaGVuZS5WZWM0IHYyLCBmbG9h dCBlcHNpbG9uKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFw aGVuZS5WZWM0IG5lZ2F0ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1 YmxpYyBHcmFwaGVuZS5WZWM0IG5vcm1hbGl6ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWM0PyBvbmUgKCk7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBzY2Fs ZSAoZmxvYXQgZmFjdG9yKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1Ymxp YyBHcmFwaGVuZS5WZWM0IHN1YnRyYWN0IChHcmFwaGVuZS5WZWM0IGIpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgdG9fZmxvYXQgKFtDQ29kZSAoYXJyYXlf bGVuZ3RoID0gZmFsc2UpXSByZWYgZmxvYXQgZGVzdFs0XSk7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuVmVjND8gd19heGlz ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93 bmVkIEdyYXBoZW5lLlZlYzQ/IHhfYXhpcyAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWM0PyB5X2F4aXMgKCk7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3Jh cGhlbmUuVmVjND8gel9heGlzICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJ cHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzQ/IHplcm8gKCk7CisrCX0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdy YXBoZW5lX2V1bGVyX29yZGVyX3QiLCBjcHJlZml4ID0gIkdSQVBIRU5FX0VVTEVSX09SREVSXyIs IGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCXB1 YmxpYyBlbnVtIEV1bGVyT3JkZXIgeworKwkJREVGQVVMVCwKKysJCVhZWiwKKysJCVlaWCwKKysJ CVpYWSwKKysJCVhaWSwKKysJCVlYWiwKKysJCVpZWCwKKysJCVNYWVosCisrCQlTWFlYLAorKwkJ U1haWSwKKysJCVNYWlgsCisrCQlTWVpYLAorKwkJU1laWSwKKysJCVNZWFosCisrCQlTWVhZLAor KwkJU1pYWSwKKysJCVNaWFosCisrCQlTWllYLAorKwkJU1pZWiwKKysJCVJaWVgsCisrCQlSWFlY LAorKwkJUllaWCwKKysJCVJYWlgsCisrCQlSWFpZLAorKwkJUllaWSwKKysJCVJaWFksCisrCQlS WVhZLAorKwkJUllYWiwKKysJCVJaWFosCisrCQlSWFlaLAorKwkJUlpZWgorKwl9CisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFw aGVuZV9yYXlfaW50ZXJzZWN0aW9uX2tpbmRfdCIsIGNwcmVmaXggPSAiR1JBUEhFTkVfUkFZX0lO VEVSU0VDVElPTl9LSU5EXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorKwlwdWJsaWMgZW51bSBSYXlJbnRlcnNlY3Rpb25LaW5kIHsKKysJCU5P TkUsCisrCQlFTlRFUiwKKysJCUxFQVZFCisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gIkdSQVBIRU5FX0hBU19HQ0MiKV0KKysJ cHVibGljIGNvbnN0IGludCBIQVNfR0NDOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Z3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiR1JBUEhFTkVfSEFTX1NDQUxBUiIpXQorKwlw dWJsaWMgY29uc3QgaW50IEhBU19TQ0FMQVI7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJHUkFQSEVORV9IQVNfU1NFIildCisrCXB1 YmxpYyBjb25zdCBpbnQgSEFTX1NTRTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdy YXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gIkdSQVBIRU5FX1BJIildCisrCXB1YmxpYyBjb25z dCBkb3VibGUgUEk7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2Jq ZWN0LmgiLCBjbmFtZSA9ICJHUkFQSEVORV9QSV8yIildCisrCXB1YmxpYyBjb25zdCBkb3VibGUg UElfMjsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIs IGNuYW1lID0gIkdSQVBIRU5FX1NJTURfUyIpXQorKwlwdWJsaWMgY29uc3Qgc3RyaW5nIFNJTURf UzsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNu YW1lID0gIkdSQVBIRU5FX1ZFQzJfTEVOIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KysJcHVibGljIGNvbnN0IGludCBWRUMyX0xFTjsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gIkdSQVBIRU5FX1ZFQzNfTEVOIildCisr CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJcHVibGljIGNvbnN0IGludCBWRUMzX0xFTjsK KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1l ID0gIkdSQVBIRU5FX1ZFQzRfTEVOIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJ cHVibGljIGNvbnN0IGludCBWRUM0X0xFTjsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImZhbHNlIildCisrCXB1YmxpYyBjb25zdCBp bnQgQGZhbHNlOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVj dC5oIiwgY25hbWUgPSAidHJ1ZSIpXQorKwlwdWJsaWMgY29uc3QgaW50IEB0cnVlOworK30KK2Rp ZmYgLS1naXQgdmFwaS9saWJtdXR0ZXItMi5kZXBzIHZhcGkvbGlibXV0dGVyLTIuZGVwcworZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAxZjNjOTA3OS4uMDAwMDAwMDAKKy0tLSB2YXBp L2xpYm11dHRlci0yLmRlcHMKKysrKyAvZGV2L251bGwKK0BAIC0xLDkgKzAsMCBAQAorLWNhaXJv CistZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcworLWdkay0zLjAKKy1nZGstcGl4YnVmLTIuMAor LWd0aystMy4wCisteDExCisteGZpeGVzLTQuMAorLWNsdXR0ZXItMS4wCistY29nbC0xLjAKK2Rp ZmYgLS1naXQgdmFwaS9saWJtdXR0ZXItMi52YXBpIHZhcGkvbGlibXV0dGVyLTIudmFwaQorZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwYTZjNDM1Ny4uMDAwMDAwMDAKKy0tLSB2YXBp L2xpYm11dHRlci0yLnZhcGkKKysrKyAvZGV2L251bGwKK0BAIC0xLDEzMjUgKzAsMCBAQAorLS8q IGxpYm11dHRlci52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLwor LQorLVtDQ29kZSAoY3ByZWZpeCA9ICJNZXRhIiwgZ2lyX25hbWVzcGFjZSA9ICJNZXRhIiwgZ2ly X3ZlcnNpb24gPSAiMy4wIiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gIm1ldGFfIildCistbmFtZXNw YWNlIE1ldGEgeworLQluYW1lc3BhY2UgUHJlZnMgeworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGFkZF9saXN0ZW5l ciAoTWV0YS5QcmVmc0NoYW5nZWRGdW5jIGZ1bmMpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGJlbGxfaXNfYXVk aWJsZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgdm9pZCBjaGFuZ2Vfd29ya3NwYWNlX25hbWUgKGludCBpLCBzdHJp bmcgbmFtZSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIild CistCQlwdWJsaWMgc3RhdGljIEdEZXNrdG9wLlRpdGxlYmFyQWN0aW9uIGdldF9hY3Rpb25fZG91 YmxlX2NsaWNrX3RpdGxlYmFyICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBHRGVza3RvcC5UaXRsZWJhckFjdGlvbiBn ZXRfYWN0aW9uX21pZGRsZV9jbGlja190aXRsZWJhciAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgR0Rlc2t0b3AuVGl0 bGViYXJBY3Rpb24gZ2V0X2FjdGlvbl9yaWdodF9jbGlja190aXRsZWJhciAoKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMg Ym9vbCBnZXRfYXR0YWNoX21vZGFsX2RpYWxvZ3MgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2F1dG9f bWF4aW1pemUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5o IildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2F1dG9fcmFpc2UgKCk7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGlu dCBnZXRfYXV0b19yYWlzZV9kZWxheSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0YS5CdXR0b25MYXlvdXQgZ2V0 X2J1dHRvbl9sYXlvdXQgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9w cmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2NlbnRlcl9uZXdfd2luZG93cyAo KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgYm9vbCBnZXRfY29tcG9zaXRpbmdfbWFuYWdlciAoKTsKKy0JCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50 IGdldF9jdXJzb3Jfc2l6ZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgZ2V0X2N1cnNvcl90 aGVtZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfZGlzYWJsZV93b3JrYXJvdW5kcyAoKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgaW50IGdldF9kcmFnX3RocmVzaG9sZCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IGdldF9kcmFnZ2FibGVf Ym9yZGVyX3dpZHRoICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJl ZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGdldF9keW5hbWljX3dvcmtzcGFjZXMgKCk7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJs aWMgc3RhdGljIGJvb2wgZ2V0X2VkZ2VfdGlsaW5nICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGdldF9mb2N1 c19jaGFuZ2Vfb25fcG9pbnRlcl9yZXN0ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBHRGVza3RvcC5Gb2N1c01vZGUg Z2V0X2ZvY3VzX21vZGUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9w cmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIEdEZXNrdG9wLkZvY3VzTmV3V2luZG93cyBnZXRf Zm9jdXNfbmV3X3dpbmRvd3MgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2ZvcmNlX2Z1bGxzY3JlZW4g KCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlw dWJsaWMgc3RhdGljIGJvb2wgZ2V0X2dub21lX2FjY2Vzc2liaWxpdHkgKCk7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJv b2wgZ2V0X2dub21lX2FuaW1hdGlvbnMgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2lnbm9yZV9yZXF1 ZXN0X2hpZGVfdGl0bGViYXIgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIE1ldGEuS2V5QmluZGluZ0FjdGlvbiBnZXRf a2V5YmluZGluZ19hY3Rpb24gKHN0cmluZyBuYW1lKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IGdldF9tb3VzZV9i dXR0b25fbWVudSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZz LmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0YS5WaXJ0dWFsTW9kaWZpZXIgZ2V0X21vdXNlX2J1 dHRvbl9tb2RzICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMu aCIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgZ2V0X21vdXNlX2J1dHRvbl9yZXNpemUgKCk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMg c3RhdGljIGludCBnZXRfbnVtX3dvcmtzcGFjZXMgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X3JhaXNl X29uX2NsaWNrICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMu aCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGdldF9zaG93X2ZhbGxiYWNrX2FwcF9tZW51ICgp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVi bGljIHN0YXRpYyB1bm93bmVkIFBhbmdvLkZvbnREZXNjcmlwdGlvbiBnZXRfdGl0bGViYXJfZm9u dCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0J CXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfdmlzdWFsX2JlbGwgKCk7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIEdEZXNrdG9w LlZpc3VhbEJlbGxUeXBlIGdldF92aXN1YWxfYmVsbF90eXBlICgpOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVk IHN0cmluZyBnZXRfd29ya3NwYWNlX25hbWUgKGludCBpKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfd29y a3NwYWNlc19vbmx5X29uX3ByaW1hcnkgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgaW5pdCAoKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgdm9pZCBvdmVycmlkZV9wcmVmZXJlbmNlX3NjaGVtYSAoc3RyaW5nIGtleSwgc3RyaW5nIHNj aGVtYSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCist CQlwdWJsaWMgc3RhdGljIHZvaWQgcmVtb3ZlX2xpc3RlbmVyIChNZXRhLlByZWZzQ2hhbmdlZEZ1 bmMgZnVuYyk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIild CistCQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2ZvcmNlX2Z1bGxzY3JlZW4gKGJvb2wgd2hldGhl cik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlw dWJsaWMgc3RhdGljIHZvaWQgc2V0X2lnbm9yZV9yZXF1ZXN0X2hpZGVfdGl0bGViYXIgKGJvb2wg d2hldGhlcik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIild CistCQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X251bV93b3Jrc3BhY2VzIChpbnQgbl93b3Jrc3Bh Y2VzKTsKKy0JfQorLQluYW1lc3BhY2UgVXRpbCB7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2FkZF92ZXJib3NlX3RvcGljIildCist CQlwdWJsaWMgc3RhdGljIHZvaWQgYWRkX3ZlcmJvc2VfdG9waWMgKE1ldGEuRGVidWdUb3BpYyB0 b3BpYyk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFt ZSA9ICJtZXRhX2J1ZyIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGJ1ZyAoc3RyaW5nIGZvcm1h dCwgLi4uKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNu YW1lID0gIm1ldGFfZGVidWdfc3Bld19yZWFsIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZGVi dWdfc3Bld19yZWFsIChzdHJpbmcgZm9ybWF0LCAuLi4pOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9kaXNhYmxlX3VucmVkaXJlY3Rf Zm9yX3NjcmVlbiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGRpc2FibGVfdW5yZWRpcmVjdF9m b3Jfc2NyZWVuIChNZXRhLlNjcmVlbiBzY3JlZW4pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZW1wdHlfc3Rh Z2VfaW5wdXRfcmVnaW9uIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZW1wdHlfc3RhZ2VfaW5w dXRfcmVnaW9uIChNZXRhLlNjcmVlbiBzY3JlZW4pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9lbmFibGVfdW5yZWRpcmVjdF9mb3Jf c2NyZWVuIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZW5hYmxlX3VucmVkaXJlY3RfZm9yX3Nj cmVlbiAoTWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfZXJyb3JfdHJhcF9wb3AiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgdm9pZCBlcnJvcl90cmFwX3BvcCAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9l cnJvcl90cmFwX3B1c2giKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBlcnJvcl90cmFwX3B1c2gg KE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfZXJyb3JfdHJhcF9wdXNoX3dpdGhfcmV0dXJuIild CistCQlwdWJsaWMgc3RhdGljIHZvaWQgZXJyb3JfdHJhcF9wdXNoX3dpdGhfcmV0dXJuIChNZXRh LkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiLCBjbmFtZSA9ICJtZXRhX2V4dGVybmFsX2JpbmRpbmdfbmFtZV9mb3JfYWN0aW9uIild CistCQlwdWJsaWMgc3RhdGljIHN0cmluZyBleHRlcm5hbF9iaW5kaW5nX25hbWVfZm9yX2FjdGlv biAodWludCBrZXliaW5kaW5nX2FjdGlvbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2ZhdGFsIildCistCQlwdWJsaWMgc3RhdGlj IHZvaWQgZmF0YWwgKHN0cmluZyBmb3JtYXQsIC4uLik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2ZyZWVfZ3NsaXN0X2FuZF9lbGVt ZW50cyIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGZyZWVfZ3NsaXN0X2FuZF9lbGVtZW50cyAo R0xpYi5TTGlzdDx2b2lkKj4gbGlzdF90b19kZWVwX2ZyZWUpOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9nX3V0Zjhfc3RybmR1cCIp XQorLQkJcHVibGljIHN0YXRpYyBzdHJpbmcgZ191dGY4X3N0cm5kdXAgKHN0cmluZyBzcmMsIHNp emVfdCBuKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNu YW1lID0gIm1ldGFfZ2V0X2xvY2FsZV9kaXJlY3Rpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0 YS5Mb2NhbGVEaXJlY3Rpb24gZ2V0X2xvY2FsZV9kaXJlY3Rpb24gKCk7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2dldF9vdmVybGF5 X3dpbmRvdyIpXQorLQkJcHVibGljIHN0YXRpYyBYLldpbmRvdyBnZXRfb3ZlcmxheV93aW5kb3cg KE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2dyYXZpdHlfdG9fc3RyaW5nIildCistCQlwdWJsaWMg c3RhdGljIHVub3duZWQgc3RyaW5nIGdyYXZpdHlfdG9fc3RyaW5nIChpbnQgZ3Jhdml0eSk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRh X2lzX2RlYnVnZ2luZyIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGlzX2RlYnVnZ2luZyAoKTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1l dGFfaXNfc3luY2luZyIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGlzX3N5bmNpbmcgKCk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRh X2lzX3ZlcmJvc2UiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBpc192ZXJib3NlICgpOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9p c193YXlsYW5kX2NvbXBvc2l0b3IiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBpc193YXlsYW5k X2NvbXBvc2l0b3IgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWlu LmgiLCBjbmFtZSA9ICJtZXRhX2xhdGVyX2FkZCIpXQorLQkJcHVibGljIHN0YXRpYyB1aW50IGxh dGVyX2FkZCAoTWV0YS5MYXRlclR5cGUgd2hlbiwgb3duZWQgR0xpYi5Tb3VyY2VGdW5jIGZ1bmMp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAi bWV0YV9sYXRlcl9yZW1vdmUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBsYXRlcl9yZW1vdmUg KHVpbnQgbGF0ZXJfaWQpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFp bi5oIiwgY25hbWUgPSAibWV0YV9wb3Bfbm9fbXNnX3ByZWZpeCIpXQorLQkJcHVibGljIHN0YXRp YyB2b2lkIHBvcF9ub19tc2dfcHJlZml4ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9wdXNoX25vX21zZ19wcmVmaXgiKV0KKy0J CXB1YmxpYyBzdGF0aWMgdm9pZCBwdXNoX25vX21zZ19wcmVmaXggKCk7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX3JlY3QiKV0KKy0J CXB1YmxpYyBzdGF0aWMgTWV0YS5SZWN0YW5nbGU/IHJlY3QgKGludCB4LCBpbnQgeSwgaW50IHdp ZHRoLCBpbnQgaGVpZ2h0KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21h aW4uaCIsIGNuYW1lID0gIm1ldGFfcmVtb3ZlX3ZlcmJvc2VfdG9waWMiKV0KKy0JCXB1YmxpYyBz dGF0aWMgdm9pZCByZW1vdmVfdmVyYm9zZV90b3BpYyAoTWV0YS5EZWJ1Z1RvcGljIHRvcGljKTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgi LCBjbmFtZSA9ICJtZXRhX3NldF9zdGFnZV9pbnB1dF9yZWdpb24iKV0KKy0JCXB1YmxpYyBzdGF0 aWMgdm9pZCBzZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIChNZXRhLlNjcmVlbiBzY3JlZW4sIFguWHNl cnZlclJlZ2lvbiByZWdpb24pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWFpbi5oIiwgY25hbWUgPSAibWV0YV9zaG93X2RpYWxvZyIpXQorLQkJcHVibGljIHN0YXRpYyBH TGliLlBpZCBzaG93X2RpYWxvZyAoc3RyaW5nIHR5cGUsIHN0cmluZyBtZXNzYWdlLCBzdHJpbmc/ IHRpbWVvdXQgPSBudWxsLCBzdHJpbmc/IGRpc3BsYXkgPSBudWxsLCBzdHJpbmc/IG9rX3RleHQg PSBudWxsLCBzdHJpbmc/IGNhbmNlbF90ZXh0ID0gbnVsbCwgc3RyaW5nPyBpY29uX25hbWUgPSBu dWxsLCBpbnQgdHJhbnNpZW50X2ZvciA9IDAsIEdMaWIuU0xpc3Q8c3RyaW5nPj8gY29sdW1ucyA9 IG51bGwsIEdMaWIuU0xpc3Q8c3RyaW5nPj8gZW50cmllcyA9IG51bGwpOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV90b3BpY19yZWFs IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgdG9waWNfcmVhbCAoTWV0YS5EZWJ1Z1RvcGljIHRv cGljLCBzdHJpbmcgZm9ybWF0LCAuLi4pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV91bnNpZ25lZF9sb25nX2VxdWFsIildCistCQlw dWJsaWMgc3RhdGljIGludCB1bnNpZ25lZF9sb25nX2VxdWFsICh2b2lkKiB2MSwgdm9pZCogdjIp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAi bWV0YV91bnNpZ25lZF9sb25nX2hhc2giKV0KKy0JCXB1YmxpYyBzdGF0aWMgdWludCB1bnNpZ25l ZF9sb25nX2hhc2ggKHZvaWQqIHYpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV92ZXJib3NlX3JlYWwiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgdm9pZCB2ZXJib3NlX3JlYWwgKHN0cmluZyBmb3JtYXQsIC4uLik7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX3dhcm5pbmciKV0K Ky0JCXB1YmxpYyBzdGF0aWMgdm9pZCB3YXJuaW5nIChzdHJpbmcgZm9ybWF0LCAuLi4pOworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIHR5cGVfaWQgPSAi bWV0YV9iYWNrZW5kX2dldF90eXBlICgpIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBCYWNr ZW5kIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UpXQorLQkJcHJvdGVjdGVkIEJhY2tlbmQgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tlbmQuaCIsIGNuYW1lID0gIm1ldGFfZ2V0X2JhY2tlbmQi KV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLkJhY2tlbmQgZ2V0X2JhY2tlbmQgKCk7 CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9zdGFnZSAoKTsKKy0JCXB1Ymxp YyB2b2lkIGxvY2tfbGF5b3V0X2dyb3VwICh1aW50IGlkeCk7CistCQlwdWJsaWMgdm9pZCBzZXRf a2V5bWFwIChzdHJpbmcgbGF5b3V0cywgc3RyaW5nIHZhcmlhbnRzLCBzdHJpbmcgb3B0aW9ucyk7 CistCQlwdWJsaWMgc2lnbmFsIHZvaWQga2V5bWFwX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2ln bmFsIHZvaWQga2V5bWFwX2xheW91dF9ncm91cF9jaGFuZ2VkICh1aW50IG9iamVjdCk7CistCQlw dWJsaWMgc2lnbmFsIHZvaWQgbGFzdF9kZXZpY2VfY2hhbmdlZCAoaW50IG9iamVjdCk7CistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgiLCB0 eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3Mg QmFja2dyb3VuZCA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlKV0KKy0JCXB1YmxpYyBCYWNrZ3JvdW5kIChNZXRhLlNjcmVlbiBzY3JlZW4p OworLQkJcHVibGljIHN0YXRpYyB2b2lkIHJlZnJlc2hfYWxsICgpOworLQkJcHVibGljIHZvaWQg c2V0X2JsZW5kIChHTGliLkZpbGUgZmlsZTEsIEdMaWIuRmlsZSBmaWxlMiwgZG91YmxlIGJsZW5k X2ZhY3RvciwgR0Rlc2t0b3AuQmFja2dyb3VuZFN0eWxlIHN0eWxlKTsKKy0JCXB1YmxpYyB2b2lk IHNldF9jb2xvciAoQ2x1dHRlci5Db2xvciBjb2xvcik7CistCQlwdWJsaWMgdm9pZCBzZXRfZmls ZSAoR0xpYi5GaWxlIGZpbGUsIEdEZXNrdG9wLkJhY2tncm91bmRTdHlsZSBzdHlsZSk7CistCQlw dWJsaWMgdm9pZCBzZXRfZ3JhZGllbnQgKEdEZXNrdG9wLkJhY2tncm91bmRTaGFkaW5nIHNoYWRp bmdfZGlyZWN0aW9uLCBDbHV0dGVyLkNvbG9yIGNvbG9yLCBDbHV0dGVyLkNvbG9yIHNlY29uZF9j b2xvcik7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLlNjcmVlbiBtZXRh X3NjcmVlbiB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQg Y2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRh LWJhY2tncm91bmQtYWN0b3IuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2FjdG9yX2dl dF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kQWN0b3IgOiBDbHV0dGVyLkFj dG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWlu ZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlwdWJsaWMgQmFja2dyb3Vu ZEFjdG9yIChNZXRhLlNjcmVlbiBzY3JlZW4sIGludCBtb25pdG9yKTsKKy0JCXB1YmxpYyB2b2lk IHNldF9iYWNrZ3JvdW5kIChNZXRhLkJhY2tncm91bmQgYmFja2dyb3VuZCk7CistCQlwdWJsaWMg dm9pZCBzZXRfdmlnbmV0dGUgKGJvb2wgZW5hYmxlZCwgZG91YmxlIGJyaWdodG5lc3MsIGRvdWJs ZSBzaGFycG5lc3MpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5CYWNr Z3JvdW5kIGJhY2tncm91bmQgeyBvd25lZCBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlwdWJsaWMgZG91YmxlIGJyaWdodG5lc3MgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5TY3JlZW4gbWV0YV9zY3JlZW4geyBvd25lZCBn ZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IG1v bml0b3IgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJs aWMgYm9vbCB2aWduZXR0ZSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0J CXB1YmxpYyBkb3VibGUgdmlnbmV0dGVfc2hhcnBuZXNzIHsgZ2V0OyBzZXQ7IH0KKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCIs IHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2dyb3VwX2dldF90eXBlICgpIildCistCXB1Ymxp YyBjbGFzcyBCYWNrZ3JvdW5kR3JvdXAgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3Is IENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJs ZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJD bHV0dGVyQWN0b3IqIildCistCQlwdWJsaWMgQmFja2dyb3VuZEdyb3VwICgpOworLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oIiwg dHlwZV9pZCA9ICJtZXRhX2JhY2tncm91bmRfaW1hZ2VfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGlj IGNsYXNzIEJhY2tncm91bmRJbWFnZSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBCYWNrZ3JvdW5kSW1hZ2Ug KCk7CistCQlwdWJsaWMgYm9vbCBnZXRfc3VjY2VzcyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENv Z2wuVGV4dHVyZSBnZXRfdGV4dHVyZSAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2xvYWRlZCAoKTsK Ky0JCXB1YmxpYyBzaWduYWwgdm9pZCBsb2FkZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgiLCB0eXBlX2lkID0gIm1l dGFfYmFja2dyb3VuZF9pbWFnZV9jYWNoZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3Mg QmFja2dyb3VuZEltYWdlQ2FjaGUgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgQmFja2dyb3VuZEltYWdlQ2Fj aGUgKCk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5CYWNrZ3JvdW5kSW1hZ2VDYWNo ZSBnZXRfZGVmYXVsdCAoKTsKKy0JCXB1YmxpYyBNZXRhLkJhY2tncm91bmRJbWFnZSBsb2FkIChH TGliLkZpbGUgZmlsZSk7CistCQlwdWJsaWMgdm9pZCBwdXJnZSAoR0xpYi5GaWxlIGZpbGUpOwor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCIsIHR5cGVf aWQgPSAibWV0YV9iYXJyaWVyX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBCYXJyaWVy IDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorLQkJcHJvdGVjdGVkIEJhcnJpZXIgKCk7CistCQlwdWJsaWMgdm9pZCBkZXN0cm95ICgp OworLQkJcHVibGljIGJvb2wgaXNfYWN0aXZlICgpOworLQkJcHVibGljIHZvaWQgcmVsZWFzZSAo TWV0YS5CYXJyaWVyRXZlbnQgZXZlbnQpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJs aWMgTWV0YS5CYXJyaWVyRGlyZWN0aW9uIGRpcmVjdGlvbnMgeyBnZXQ7IGNvbnN0cnVjdDsgfQor LQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5EaXNwbGF5IGRpc3BsYXkgeyBv d25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMg aW50IHgxIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVi bGljIGludCB4MiB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0J CXB1YmxpYyBpbnQgeTEgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlwdWJsaWMgaW50IHkyIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBzaWduYWwg dm9pZCBoaXQgKE1ldGEuQmFycmllckV2ZW50IGV2ZW50KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9p ZCBsZWZ0IChNZXRhLkJhcnJpZXJFdmVudCBldmVudCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHki LCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAibWV0YV9iYXJyaWVy X2V2ZW50X2dldF90eXBlICgpIildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgQmFycmll ckV2ZW50IHsKKy0JCXB1YmxpYyBpbnQgZHQ7CistCQlwdWJsaWMgZG91YmxlIGR4OworLQkJcHVi bGljIGRvdWJsZSBkeTsKKy0JCXB1YmxpYyBpbnQgZXZlbnRfaWQ7CistCQlwdWJsaWMgYm9vbCBn cmFiYmVkOworLQkJcHVibGljIGJvb2wgcmVsZWFzZWQ7CistCQlwdWJsaWMgdWludDMyIHRpbWU7 CistCQlwdWJsaWMgZG91YmxlIHg7CistCQlwdWJsaWMgZG91YmxlIHk7CistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci5oIildCistCVtDb21wYWN0XQor LQlwdWJsaWMgY2xhc3MgQ29tcG9zaXRvciB7CistCQlwdWJsaWMgdm9pZCBhZGRfd2luZG93IChN ZXRhLldpbmRvdyB3aW5kb3cpOworLQkJcHVibGljIHZvaWQgZGVzdHJveSAoKTsKKy0JCXB1Ymxp YyBib29sIGZpbHRlcl9rZXliaW5kaW5nIChNZXRhLktleUJpbmRpbmcgYmluZGluZyk7CistCQlw dWJsaWMgdm9pZCBmbGFzaF9zY3JlZW4gKE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAi bWV0YV9mb2N1c19zdGFnZV93aW5kb3ciKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBmb2N1c19z dGFnZV93aW5kb3cgKE1ldGEuU2NyZWVuIHNjcmVlbiwgdWludDMyIHRpbWVzdGFtcCk7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25h bWUgPSAibWV0YV9nZXRfZmVlZGJhY2tfZ3JvdXBfZm9yX3NjcmVlbiIpXQorLQkJcHVibGljIHN0 YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2ZlZWRiYWNrX2dyb3VwX2Zvcl9zY3JlZW4g KE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9nZXRfc3RhZ2VfZm9yX3NjcmVl biIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3I/IGdldF9zdGFnZV9m b3Jfc2NyZWVuIChNZXRhLlNjcmVlbiBzY3JlZW4pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZ2V0X3RvcF93 aW5kb3dfZ3JvdXBfZm9yX3NjcmVlbiIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0 ZXIuQWN0b3I/IGdldF90b3Bfd2luZG93X2dyb3VwX2Zvcl9zY3JlZW4gKE1ldGEuU2NyZWVuIHNj cmVlbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11 dHRlci5oIiwgY25hbWUgPSAibWV0YV9nZXRfd2luZG93X2FjdG9ycyIpXQorLQkJcHVibGljIHN0 YXRpYyB1bm93bmVkIEdMaWIuTGlzdDx3ZWFrIE1ldGEuV2luZG93QWN0b3I+PyBnZXRfd2luZG93 X2FjdG9ycyAoTWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dldF93aW5kb3df Z3JvdXBfZm9yX3NjcmVlbiIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0 b3I/IGdldF93aW5kb3dfZ3JvdXBfZm9yX3NjcmVlbiAoTWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0J CXB1YmxpYyB2b2lkIGhpZGVfdGlsZV9wcmV2aWV3ICgpOworLQkJcHVibGljIHZvaWQgaGlkZV93 aW5kb3cgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5Db21wRWZmZWN0IGVmZmVjdCk7CistCQlw dWJsaWMgdm9pZCBtYW5hZ2UgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLkNvbXBvc2l0b3IgQG5l dyAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJcHVibGljIHZvaWQgcXVldWVfZnJhbWVfZHJh d24gKE1ldGEuV2luZG93IHdpbmRvdywgYm9vbCBub19kZWxheV9mcmFtZSk7CistCQlwdWJsaWMg dm9pZCByZW1vdmVfd2luZG93IChNZXRhLldpbmRvdyB3aW5kb3cpOworLQkJcHVibGljIHZvaWQg c2hvd190aWxlX3ByZXZpZXcgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5SZWN0YW5nbGUgdGls ZV9yZWN0LCBpbnQgdGlsZV9tb25pdG9yX251bWJlcik7CistCQlwdWJsaWMgdm9pZCBzaG93X3dp bmRvdyAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLkNvbXBFZmZlY3QgZWZmZWN0KTsKKy0JCXB1 YmxpYyB2b2lkIHNob3dfd2luZG93X21lbnUgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5XaW5k b3dNZW51VHlwZSBtZW51LCBpbnQgeCwgaW50IHkpOworLQkJcHVibGljIHZvaWQgc2hvd193aW5k b3dfbWVudV9mb3JfcmVjdCAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLldpbmRvd01lbnVUeXBl IG1lbnUsIE1ldGEuUmVjdGFuZ2xlIHJlY3QpOworLQkJcHVibGljIHZvaWQgc2l6ZV9jaGFuZ2Vf d2luZG93IChNZXRhLldpbmRvdyB3aW5kb3csIE1ldGEuU2l6ZUNoYW5nZSB3aGljaF9jaGFuZ2Us IE1ldGEuUmVjdGFuZ2xlIG9sZF9mcmFtZV9yZWN0LCBNZXRhLlJlY3RhbmdsZSBvbGRfYnVmZmVy X3JlY3QpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1t dXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfc3RhZ2VfaXNfZm9jdXNlZCIpXQorLQkJcHVibGljIHN0 YXRpYyBib29sIHN0YWdlX2lzX2ZvY3VzZWQgKE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlwdWJs aWMgdm9pZCBzd2l0Y2hfd29ya3NwYWNlIChNZXRhLldvcmtzcGFjZSBmcm9tLCBNZXRhLldvcmtz cGFjZSB0bywgTWV0YS5Nb3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uKTsKKy0JCXB1YmxpYyB2b2lk IHN5bmNfc3RhY2sgKEdMaWIuTGlzdDxNZXRhLldpbmRvd0FjdG9yPiBzdGFjayk7CistCQlwdWJs aWMgdm9pZCBzeW5jX3VwZGF0ZXNfZnJvemVuIChNZXRhLldpbmRvdyB3aW5kb3cpOworLQkJcHVi bGljIHZvaWQgc3luY193aW5kb3dfZ2VvbWV0cnkgKE1ldGEuV2luZG93IHdpbmRvdywgYm9vbCBk aWRfcGxhY2VtZW50KTsKKy0JCXB1YmxpYyB2b2lkIHVubWFuYWdlICgpOworLQkJcHVibGljIHZv aWQgd2luZG93X29wYWNpdHlfY2hhbmdlZCAoTWV0YS5XaW5kb3cgd2luZG93KTsKKy0JCXB1Ymxp YyB2b2lkIHdpbmRvd19zaGFwZV9jaGFuZ2VkIChNZXRhLldpbmRvdyB3aW5kb3cpOworLQkJcHVi bGljIHZvaWQgd2luZG93X3N1cmZhY2VfY2hhbmdlZCAoTWV0YS5XaW5kb3cgd2luZG93KTsKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWN1cnNvci10cmFja2Vy LmgiLCB0eXBlX2lkID0gIm1ldGFfY3Vyc29yX3RyYWNrZXJfZ2V0X3R5cGUgKCkiKV0KKy0JcHVi bGljIGNsYXNzIEN1cnNvclRyYWNrZXIgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgQ3Vyc29yVHJhY2tlciAo KTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLkN1cnNvclRyYWNrZXIgZ2V0X2Zvcl9z Y3JlZW4gKE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlwdWJsaWMgdm9pZCBnZXRfaG90IChvdXQg aW50IHgsIG91dCBpbnQgeSk7CistCQlwdWJsaWMgdm9pZCBnZXRfcG9pbnRlciAoaW50IHgsIGlu dCB5LCBDbHV0dGVyLk1vZGlmaWVyVHlwZSBtb2RzKTsKKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wu VGV4dHVyZSBnZXRfc3ByaXRlICgpOworLQkJcHVibGljIHZvaWQgc2V0X3BvaW50ZXJfdmlzaWJs ZSAoYm9vbCB2aXNpYmxlKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfY2hhbmdlZCAo KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9kaXNwbGF5LmgiLCB0 eXBlX2lkID0gIm1ldGFfZGlzcGxheV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgRGlz cGxheSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBEaXNwbGF5ICgpOworLQkJcHVibGljIHZvaWQgYWRkX2ln bm9yZWRfY3Jvc3Npbmdfc2VyaWFsICh1bG9uZyBzZXJpYWwpOworLQkJcHVibGljIHVpbnQgYWRk X2tleWJpbmRpbmcgKHN0cmluZyBuYW1lLCBHTGliLlNldHRpbmdzIHNldHRpbmdzLCBNZXRhLktl eUJpbmRpbmdGbGFncyBmbGFncywgb3duZWQgTWV0YS5LZXlIYW5kbGVyRnVuYyBoYW5kbGVyKTsK Ky0JCXB1YmxpYyBib29sIGJlZ2luX2dyYWJfb3AgKE1ldGEuU2NyZWVuIHNjcmVlbiwgTWV0YS5X aW5kb3cgd2luZG93LCBNZXRhLkdyYWJPcCBvcCwgYm9vbCBwb2ludGVyX2FscmVhZHlfZ3JhYmJl ZCwgYm9vbCBmcmFtZV9hY3Rpb24sIGludCBidXR0b24sIHVsb25nIG1vZG1hc2ssIHVpbnQzMiB0 aW1lc3RhbXAsIGludCByb290X3gsIGludCByb290X3kpOworLQkJcHVibGljIHZvaWQgY2xlYXJf bW91c2VfbW9kZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGVuZF9ncmFiX29wICh1aW50MzIgdGltZXN0 YW1wKTsKKy0JCXB1YmxpYyB2b2lkIGZvY3VzX3RoZV9ub19mb2N1c193aW5kb3cgKE1ldGEuU2Ny ZWVuIHNjcmVlbiwgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBmcmVlemVfa2V5 Ym9hcmQgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHVub3duZWQgTWV0YS5Db21wb3Np dG9yIGdldF9jb21wb3NpdG9yICgpOworLQkJcHVibGljIHVpbnQzMiBnZXRfY3VycmVudF90aW1l ICgpOworLQkJcHVibGljIHVpbnQzMiBnZXRfY3VycmVudF90aW1lX3JvdW5kdHJpcCAoKTsKKy0J CXB1YmxpYyBpbnQgZ2V0X2RhbWFnZV9ldmVudF9iYXNlICgpOworLQkJcHVibGljIHVub3duZWQg TWV0YS5XaW5kb3cgZ2V0X2ZvY3VzX3dpbmRvdyAoKTsKKy0JCXB1YmxpYyBNZXRhLkdyYWJPcCBn ZXRfZ3JhYl9vcCAoKTsKKy0JCXB1YmxpYyB1aW50IGdldF9rZXliaW5kaW5nX2FjdGlvbiAodWlu dCBrZXljb2RlLCB1bG9uZyBtYXNrKTsKKy0JCXB1YmxpYyB1aW50MzIgZ2V0X2xhc3RfdXNlcl90 aW1lICgpOworLQkJcHVibGljIGludCBnZXRfc2hhcGVfZXZlbnRfYmFzZSAoKTsKKy0JCXB1Ymxp YyB1bm93bmVkIE1ldGEuV2luZG93IGdldF90YWJfY3VycmVudCAoTWV0YS5UYWJMaXN0IHR5cGUs IE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSk7CistCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgTWV0 YS5XaW5kb3c+IGdldF90YWJfbGlzdCAoTWV0YS5UYWJMaXN0IHR5cGUsIE1ldGEuV29ya3NwYWNl PyB3b3Jrc3BhY2UpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X3RhYl9uZXh0 IChNZXRhLlRhYkxpc3QgdHlwZSwgTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlLCBNZXRhLldpbmRv dz8gd2luZG93LCBib29sIGJhY2t3YXJkKTsKKy0JCXB1YmxpYyB1bm93bmVkIFguRGlzcGxheSBn ZXRfeGRpc3BsYXkgKCk7CistCQlwdWJsaWMgaW50IGdldF94aW5wdXRfb3Bjb2RlICgpOworLQkJ cHVibGljIHVpbnQgZ3JhYl9hY2NlbGVyYXRvciAoc3RyaW5nIGFjY2VsZXJhdG9yKTsKKy0JCXB1 YmxpYyBib29sIGhhc19zaGFwZSAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3BvaW50ZXJfZW11bGF0 aW5nX3NlcXVlbmNlIChDbHV0dGVyLkV2ZW50U2VxdWVuY2U/IHNlcXVlbmNlKTsKKy0JCXB1Ymxp YyB1bm93bmVkIE1ldGEuR3JvdXAgbG9va3VwX2dyb3VwIChYLldpbmRvdyBncm91cF9sZWFkZXIp OworLQkJcHVibGljIGJvb2wgcmVtb3ZlX2tleWJpbmRpbmcgKHN0cmluZyBuYW1lKTsKKy0JCXB1 YmxpYyB2b2lkIHNldF9pbnB1dF9mb2N1c193aW5kb3cgKE1ldGEuV2luZG93IHdpbmRvdywgYm9v bCBmb2N1c19mcmFtZSwgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgR0xpYi5TTGlzdDx3 ZWFrIE1ldGEuV2luZG93PiBzb3J0X3dpbmRvd3NfYnlfc3RhY2tpbmcgKEdMaWIuU0xpc3Q8TWV0 YS5XaW5kb3c+IHdpbmRvd3MpOworLQkJcHVibGljIGJvb2wgc3VwcG9ydHNfZXh0ZW5kZWRfYmFy cmllcnMgKCk7CistCQlwdWJsaWMgdm9pZCB1bmZyZWV6ZV9rZXlib2FyZCAodWludDMyIHRpbWVz dGFtcCk7CistCQlwdWJsaWMgYm9vbCB1bmdyYWJfYWNjZWxlcmF0b3IgKHVpbnQgYWN0aW9uX2lk KTsKKy0JCXB1YmxpYyB2b2lkIHVuZ3JhYl9rZXlib2FyZCAodWludDMyIHRpbWVzdGFtcCk7Cist CQlwdWJsaWMgdm9pZCB1bm1hbmFnZV9zY3JlZW4gKE1ldGEuU2NyZWVuIHNjcmVlbiwgdWludDMy IHRpbWVzdGFtcCk7CistCQlwdWJsaWMgYm9vbCB4c2VydmVyX3RpbWVfaXNfYmVmb3JlICh1aW50 MzIgdGltZTEsIHVpbnQzMiB0aW1lMik7CistCQlwdWJsaWMgYm9vbCB4d2luZG93X2lzX2Ffbm9f Zm9jdXNfd2luZG93IChYLldpbmRvdyB4d2luZG93KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBh Y2NlbGVyYXRvcl9hY3RpdmF0ZWQgKHVpbnQgb2JqZWN0LCB1aW50IHAwLCB1aW50IHAxKTsKKy0J CXB1YmxpYyBzaWduYWwgdm9pZCBncmFiX29wX2JlZ2luIChNZXRhLlNjcmVlbiBvYmplY3QsIE1l dGEuV2luZG93IHAwLCBNZXRhLkdyYWJPcCBwMSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZ3Jh Yl9vcF9lbmQgKE1ldGEuU2NyZWVuIG9iamVjdCwgTWV0YS5XaW5kb3cgcDAsIE1ldGEuR3JhYk9w IHAxKTsKKy0JCXB1YmxpYyBzaWduYWwgYm9vbCBtb2RpZmllcnNfYWNjZWxlcmF0b3JfYWN0aXZh dGVkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIG92ZXJsYXlfa2V5ICgpOworLQkJcHVibGlj IHNpZ25hbCBib29sIHJlc3RhcnQgKCk7CistCQlwdWJsaWMgc2lnbmFsIGJvb2wgc2hvd19yZXNp emVfcG9wdXAgKGJvb2wgb2JqZWN0LCBNZXRhLlJlY3RhbmdsZSBwMCwgaW50IHAxLCBpbnQgcDIp OworLQkJcHVibGljIHNpZ25hbCBib29sIHNob3dfcmVzdGFydF9tZXNzYWdlIChzdHJpbmc/IG1l c3NhZ2UpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19jcmVhdGVkIChNZXRhLldpbmRv dyBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19kZW1hbmRzX2F0dGVudGlv biAoTWV0YS5XaW5kb3cgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfbWFy a2VkX3VyZ2VudCAoTWV0YS5XaW5kb3cgb2JqZWN0KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNz IEZyYW1lIHsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9ncm91cC5o IildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgR3JvdXAgeworLQkJcHVibGljIGludCBn ZXRfc2l6ZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfc3RhcnR1cF9pZCAoKTsK Ky0JCXB1YmxpYyBHTGliLlNMaXN0PHdlYWsgTWV0YS5XaW5kb3c+IGxpc3Rfd2luZG93cyAoKTsK Ky0JCXB1YmxpYyBib29sIHByb3BlcnR5X25vdGlmeSAoWC5FdmVudCBldmVudCk7CistCQlwdWJs aWMgdm9pZCB1cGRhdGVfbGF5ZXJzICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgiLCB0eXBlX2lkID0gIm1ldGFfaWRsZV9tb25p dG9yX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBJZGxlTW9uaXRvciA6IEdMaWIuT2Jq ZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXBy b3RlY3RlZCBJZGxlTW9uaXRvciAoKTsKKy0JCXB1YmxpYyB1aW50IGFkZF9pZGxlX3dhdGNoICh1 aW50NjQgaW50ZXJ2YWxfbXNlYywgb3duZWQgTWV0YS5JZGxlTW9uaXRvcldhdGNoRnVuYz8gY2Fs bGJhY2spOworLQkJcHVibGljIHVpbnQgYWRkX3VzZXJfYWN0aXZlX3dhdGNoIChvd25lZCBNZXRh LklkbGVNb25pdG9yV2F0Y2hGdW5jPyBjYWxsYmFjayk7CistCQlwdWJsaWMgc3RhdGljIHVub3du ZWQgTWV0YS5JZGxlTW9uaXRvciBnZXRfY29yZSAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25l ZCBNZXRhLklkbGVNb25pdG9yIGdldF9mb3JfZGV2aWNlIChpbnQgZGV2aWNlX2lkKTsKKy0JCXB1 YmxpYyBpbnQ2NCBnZXRfaWRsZXRpbWUgKCk7CistCQlwdWJsaWMgdm9pZCByZW1vdmVfd2F0Y2gg KHVpbnQgaWQpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IGRldmljZV9p ZCB7IGdldDsgY29uc3RydWN0OyB9CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEva2V5YmluZGluZ3MuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJl ZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdf Z2V0X3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBLZXlCaW5kaW5nIHsK Ky0JCXB1YmxpYyB1aW50IGdldF9tYXNrICgpOworLQkJcHVibGljIE1ldGEuVmlydHVhbE1vZGlm aWVyIGdldF9tb2RpZmllcnMgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X25hbWUg KCk7CistCQlwdWJsaWMgYm9vbCBpc19idWlsdGluICgpOworLQkJcHVibGljIGJvb2wgaXNfcmV2 ZXJzZWQgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9rZXliaW5kaW5n cy5oIiwgY25hbWUgPSAibWV0YV9rZXliaW5kaW5nc19zZXRfY3VzdG9tX2hhbmRsZXIiKV0KKy0J CXB1YmxpYyBzdGF0aWMgYm9vbCBzZXRfY3VzdG9tX2hhbmRsZXIgKHN0cmluZyBuYW1lLCBvd25l ZCBNZXRhLktleUhhbmRsZXJGdW5jPyBoYW5kbGVyKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oIiwgdHlwZV9pZCA9ICJtZXRh X21vbml0b3JfbWFuYWdlcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3Mg TW9uaXRvck1hbmFnZXIgOiBHTGliLkRCdXNJbnRlcmZhY2VTa2VsZXRvbiwgR0xpYi5EQnVzSW50 ZXJmYWNlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0J CXByb3RlY3RlZCBNb25pdG9yTWFuYWdlciAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBN ZXRhLk1vbml0b3JNYW5hZ2VyIEBnZXQgKCk7CistCQlwdWJsaWMgaW50IGdldF9tb25pdG9yX2Zv cl9vdXRwdXQgKHVpbnQgaWQpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGNvbmZpcm1fZGlzcGxh eV9jaGFuZ2UgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0 YS1wbHVnaW4uaCIsIHR5cGVfaWQgPSAibWV0YV9wbHVnaW5fZ2V0X3R5cGUgKCkiKV0KKy0JcHVi bGljIGFic3RyYWN0IGNsYXNzIFBsdWdpbiA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBQbHVnaW4gKCk7Cist CQlwdWJsaWMgYm9vbCBiZWdpbl9tb2RhbCAoTWV0YS5Nb2RhbE9wdGlvbnMgb3B0aW9ucywgdWlu dDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBjb21wbGV0ZV9kaXNwbGF5X2NoYW5nZSAo Ym9vbCBvayk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBjb25maXJt X2Rpc3BsYXlfY2hhbmdlICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZv aWQgZGVzdHJveSAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCBkZXN0 cm95X2NvbXBsZXRlZCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCBl bmRfbW9kYWwgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHVub3duZWQgTWV0YS5QbHVn aW5JbmZvPyBnZXRfaW5mbyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuU2NyZWVuIGdldF9z Y3JlZW4gKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBoaWRlX3Rp bGVfcHJldmlldyAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCBib29sIGtl eWJpbmRpbmdfZmlsdGVyIChNZXRhLktleUJpbmRpbmcgYmluZGluZyk7CistCQlbTm9XcmFwcGVy XQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBraWxsX3N3aXRjaF93b3Jrc3BhY2UgKCk7CistCQlb Tm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBraWxsX3dpbmRvd19lZmZlY3RzIChN ZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBtYW5hZ2VyX3Nl dF9wbHVnaW5fdHlwZSAoR0xpYi5UeXBlIGd0eXBlKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJs aWMgdmlydHVhbCB2b2lkIG1hcCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlwdWJsaWMg dm9pZCBtYXBfY29tcGxldGVkIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCVtOb1dyYXBw ZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIG1pbmltaXplIChNZXRhLldpbmRvd0FjdG9yIGFj dG9yKTsKKy0JCXB1YmxpYyB2b2lkIG1pbmltaXplX2NvbXBsZXRlZCAoTWV0YS5XaW5kb3dBY3Rv ciBhY3Rvcik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBNZXRh LlBsdWdpbkluZm8/IHBsdWdpbl9pbmZvICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2 aXJ0dWFsIHZvaWQgc2hvd190aWxlX3ByZXZpZXcgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5S ZWN0YW5nbGUgdGlsZV9yZWN0LCBpbnQgdGlsZV9tb25pdG9yX251bWJlcik7CistCQlbTm9XcmFw cGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzaG93X3dpbmRvd19tZW51IChNZXRhLldpbmRv dyB3aW5kb3csIE1ldGEuV2luZG93TWVudVR5cGUgbWVudSwgaW50IHgsIGludCB5KTsKKy0JCVtO b1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNob3dfd2luZG93X21lbnVfZm9yX3Jl Y3QgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5XaW5kb3dNZW51VHlwZSBtZW51LCBNZXRhLlJl Y3RhbmdsZSByZWN0KTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNp emVfY2hhbmdlIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yLCBNZXRhLlNpemVDaGFuZ2Ugd2hpY2hf Y2hhbmdlLCBNZXRhLlJlY3RhbmdsZSBvbGRfZnJhbWVfcmVjdCwgTWV0YS5SZWN0YW5nbGUgb2xk X2J1ZmZlcl9yZWN0KTsKKy0JCXB1YmxpYyB2b2lkIHNpemVfY2hhbmdlX2NvbXBsZXRlZCAoTWV0 YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwg dm9pZCBzdGFydCAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHN3 aXRjaF93b3Jrc3BhY2UgKGludCBmcm9tLCBpbnQgdG8sIE1ldGEuTW90aW9uRGlyZWN0aW9uIGRp cmVjdGlvbik7CistCQlwdWJsaWMgdm9pZCBzd2l0Y2hfd29ya3NwYWNlX2NvbXBsZXRlZCAoKTsK Ky0gCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCB1bm1pbmltaXplIChNZXRh LldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIHVubWluaW1pemVfY29tcGxldGVk IChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmly dHVhbCBib29sIHhldmVudF9maWx0ZXIgKFguRXZlbnQgZXZlbnQpOworLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3NjcmVlbi5oIiwgdHlwZV9pZCA9ICJtZXRhX3NjcmVl bl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgU2NyZWVuIDogR0xpYi5PYmplY3Qgewor LQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVk IFNjcmVlbiAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlPyBhcHBlbmRfbmV3 X3dvcmtzcGFjZSAoYm9vbCBhY3RpdmF0ZSwgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMg dm9pZCBmb2N1c19kZWZhdWx0X3dpbmRvdyAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMg dW5vd25lZCBNZXRhLldvcmtzcGFjZSBnZXRfYWN0aXZlX3dvcmtzcGFjZSAoKTsKKy0JCXB1Ymxp YyBpbnQgZ2V0X2FjdGl2ZV93b3Jrc3BhY2VfaW5kZXggKCk7CistCQlwdWJsaWMgaW50IGdldF9j dXJyZW50X21vbml0b3IgKCk7CistCQlwdWJsaWMgaW50IGdldF9jdXJyZW50X21vbml0b3JfZm9y X3BvcyAoaW50IHgsIGludCB5KTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuRGlzcGxheSBnZXRf ZGlzcGxheSAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfbW9uaXRvcl9nZW9tZXRy eSAoaW50IG1vbml0b3IpOworLQkJcHVibGljIGJvb2wgZ2V0X21vbml0b3JfaW5fZnVsbHNjcmVl biAoaW50IG1vbml0b3IpOworLQkJcHVibGljIGludCBnZXRfbW9uaXRvcl9pbmRleF9mb3JfcmVj dCAoTWV0YS5SZWN0YW5nbGUgcmVjdCk7CistCQlwdWJsaWMgaW50IGdldF9tb25pdG9yX25laWdo Ym9yX2luZGV4IChpbnQgd2hpY2hfbW9uaXRvciwgTWV0YS5TY3JlZW5EaXJlY3Rpb24gZGlyKTsK Ky0JCXB1YmxpYyBpbnQgZ2V0X25fbW9uaXRvcnMgKCk7CistCQlwdWJsaWMgaW50IGdldF9uX3dv cmtzcGFjZXMgKCk7CistCQlwdWJsaWMgaW50IGdldF9wcmltYXJ5X21vbml0b3IgKCk7CistCQlw dWJsaWMgaW50IGdldF9zY3JlZW5fbnVtYmVyICgpOworLQkJcHVibGljIHZvaWQgZ2V0X3NpemUg KG91dCBpbnQgd2lkdGgsIG91dCBpbnQgaGVpZ2h0KTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEu V29ya3NwYWNlPyBnZXRfd29ya3NwYWNlX2J5X2luZGV4IChpbnQgaW5kZXgpOworLQkJcHVibGlj IHVub3duZWQgR0xpYi5MaXN0PE1ldGEuV29ya3NwYWNlPiBnZXRfd29ya3NwYWNlcyAoKTsKKy0J CXB1YmxpYyBYLldpbmRvdyBnZXRfeHJvb3QgKCk7CistCQlwdWJsaWMgdm9pZCBvdmVycmlkZV93 b3Jrc3BhY2VfbGF5b3V0IChNZXRhLlNjcmVlbkNvcm5lciBzdGFydGluZ19jb3JuZXIsIGJvb2wg dmVydGljYWxfbGF5b3V0LCBpbnQgbl9yb3dzLCBpbnQgbl9jb2x1bW5zKTsKKy0JCXB1YmxpYyB2 b2lkIHJlbW92ZV93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSwgdWludDMyIHRp bWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBzZXRfY21fc2VsZWN0aW9uICgpOworLQkJcHVibGlj IHZvaWQgc2V0X2N1cnNvciAoTWV0YS5DdXJzb3IgY3Vyc29yKTsKKy0JCXB1YmxpYyBpbnQgbl93 b3Jrc3BhY2VzIHsgZ2V0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgaW5fZnVsbHNjcmVlbl9j aGFuZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIG1vbml0b3JzX2NoYW5nZWQgKCk7Cist CQlwdWJsaWMgc2lnbmFsIHZvaWQgcmVzdGFja2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lk IHN0YXJ0dXBfc2VxdWVuY2VfY2hhbmdlZCAodm9pZCogb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWdu YWwgdm9pZCB3aW5kb3dfZW50ZXJlZF9tb25pdG9yIChpbnQgb2JqZWN0LCBNZXRhLldpbmRvdyBw MCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X2xlZnRfbW9uaXRvciAoaW50IG9iamVj dCwgTWV0YS5XaW5kb3cgcDApOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmthcmVhc19jaGFu Z2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmtzcGFjZV9hZGRlZCAoaW50IG9iamVj dCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlX3JlbW92ZWQgKGludCBvYmplY3Qp OworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmtzcGFjZV9zd2l0Y2hlZCAoaW50IG9iamVjdCwg aW50IHAwLCBNZXRhLk1vdGlvbkRpcmVjdGlvbiBwMSk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oIiwgcmVmX2Z1bmN0aW9uID0g Im1ldGFfc2hhZG93X3JlZiIsIHR5cGVfaWQgPSAibWV0YV9zaGFkb3dfZ2V0X3R5cGUgKCkiLCB1 bnJlZl9mdW5jdGlvbiA9ICJtZXRhX3NoYWRvd191bnJlZiIpXQorLQlbQ29tcGFjdF0KKy0JcHVi bGljIGNsYXNzIFNoYWRvdyB7CistCQlwdWJsaWMgdm9pZCBnZXRfYm91bmRzIChpbnQgd2luZG93 X3gsIGludCB3aW5kb3dfeSwgaW50IHdpbmRvd193aWR0aCwgaW50IHdpbmRvd19oZWlnaHQsIENh aXJvLlJlY3RhbmdsZUludCBib3VuZHMpOworLQkJcHVibGljIHZvaWQgcGFpbnQgKGludCB3aW5k b3dfeCwgaW50IHdpbmRvd195LCBpbnQgd2luZG93X3dpZHRoLCBpbnQgd2luZG93X2hlaWdodCwg dWludDggb3BhY2l0eSwgQ2Fpcm8uUmVnaW9uPyBjbGlwLCBib29sIGNsaXBfc3RyaWN0bHkpOwor LQkJcHVibGljIE1ldGEuU2hhZG93IEByZWYgKCk7CistCQlwdWJsaWMgdm9pZCB1bnJlZiAoKTsK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXNoYWRvdy1mYWN0 b3J5LmgiLCB0eXBlX2lkID0gIm1ldGFfc2hhZG93X2ZhY3RvcnlfZ2V0X3R5cGUgKCkiKV0KKy0J cHVibGljIGNsYXNzIFNoYWRvd0ZhY3RvcnkgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwdWJsaWMgU2hhZG93RmFjdG9yeSAo KTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLlNoYWRvd0ZhY3RvcnkgZ2V0X2RlZmF1 bHQgKCk7CistCQlwdWJsaWMgTWV0YS5TaGFkb3dQYXJhbXMgZ2V0X3BhcmFtcyAoc3RyaW5nIGNs YXNzX25hbWUsIGJvb2wgZm9jdXNlZCk7CistCQlwdWJsaWMgTWV0YS5TaGFkb3cgZ2V0X3NoYWRv dyAoTWV0YS5XaW5kb3dTaGFwZSBzaGFwZSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBzdHJpbmcg Y2xhc3NfbmFtZSwgYm9vbCBmb2N1c2VkKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9wYXJhbXMgKHN0 cmluZyBjbGFzc19uYW1lLCBib29sIGZvY3VzZWQsIE1ldGEuU2hhZG93UGFyYW1zIEBwYXJhbXMp OworLQkJcHVibGljIHNpZ25hbCB2b2lkIGNoYW5nZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oIiwgdHlwZV9pZCA9ICJt ZXRhX3NoYXBlZF90ZXh0dXJlX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBTaGFwZWRU ZXh0dXJlIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFi bGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFNoYXBlZFRleHR1 cmUgKCk7CistCQlwdWJsaWMgQ2Fpcm8uU3VyZmFjZSBnZXRfaW1hZ2UgKENhaXJvLlJlY3Rhbmds ZUludCBjbGlwKTsKKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfdGV4dHVyZSAo KTsKKy0JCXB1YmxpYyB2b2lkIHNldF9jcmVhdGVfbWlwbWFwcyAoYm9vbCBjcmVhdGVfbWlwbWFw cyk7CistCQlwdWJsaWMgdm9pZCBzZXRfbWFza190ZXh0dXJlIChDb2dsLlRleHR1cmUgbWFza190 ZXh0dXJlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9vcGFxdWVfcmVnaW9uIChvd25lZCBDYWlyby5S ZWdpb24gb3BhcXVlX3JlZ2lvbik7CistCQlwdWJsaWMgYm9vbCB1cGRhdGVfYXJlYSAoaW50IHgs IGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHNp emVfY2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS90 aGVtZS5oIildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgVGhlbWUgeworLQkJcHVibGlj IHZvaWQgZnJlZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuVGhlbWUgZ2V0X2RlZmF1bHQgKCk7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgdW5vd25lZCBNZXRhLlRoZW1lIEBuZXcgKCk7CistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvd2luZG93LmgiLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X2dl dF90eXBlICgpIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBXaW5kb3cgOiBHTGliLk9iamVj dCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90 ZWN0ZWQgV2luZG93ICgpOworLQkJcHVibGljIHZvaWQgYWN0aXZhdGUgKHVpbnQzMiBjdXJyZW50 X3RpbWUpOworLQkJcHVibGljIHZvaWQgYWN0aXZhdGVfd2l0aF93b3Jrc3BhY2UgKHVpbnQzMiBj dXJyZW50X3RpbWUsIE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSk7CistCQlwdWJsaWMgYm9vbCBh bGxvd3NfbW92ZSAoKTsKKy0JCXB1YmxpYyBib29sIGFsbG93c19yZXNpemUgKCk7CistCQlwdWJs aWMgdm9pZCBiZWdpbl9ncmFiX29wIChNZXRhLkdyYWJPcCBvcCwgYm9vbCBmcmFtZV9hY3Rpb24s IHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIGJvb2wgY2FuX2Nsb3NlICgpOworLQkJcHVi bGljIGJvb2wgY2FuX21heGltaXplICgpOworLQkJcHVibGljIGJvb2wgY2FuX21pbmltaXplICgp OworLQkJcHVibGljIGJvb2wgY2FuX3NoYWRlICgpOworLQkJcHVibGljIHZvaWQgY2hhbmdlX3dv cmtzcGFjZSAoTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlKTsKKy0JCXB1YmxpYyB2b2lkIGNoYW5n ZV93b3Jrc3BhY2VfYnlfaW5kZXggKGludCBzcGFjZV9pbmRleCwgYm9vbCBhcHBlbmQpOworLQkJ cHVibGljIHZvaWQgY2hlY2tfYWxpdmUgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIE1l dGEuUmVjdGFuZ2xlIGNsaWVudF9yZWN0X3RvX2ZyYW1lX3JlY3QgKE1ldGEuUmVjdGFuZ2xlIGNs aWVudF9yZWN0KTsKKy0JCXB1YmxpYyB2b2lkIGNvbXB1dGVfZ3JvdXAgKCk7CistCQlwdWJsaWMg dm9pZCBAZGVsZXRlICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEu V2luZG93IGZpbmRfcm9vdF9hbmNlc3RvciAoKTsKKy0JCXB1YmxpYyB2b2lkIGZvY3VzICh1aW50 MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIGZvcmVhY2hfYW5jZXN0b3IgKE1ldGEuV2lu ZG93Rm9yZWFjaEZ1bmMgZnVuYyk7CistCQlwdWJsaWMgdm9pZCBmb3JlYWNoX3RyYW5zaWVudCAo TWV0YS5XaW5kb3dGb3JlYWNoRnVuYyBmdW5jKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBm cmFtZV9yZWN0X3RvX2NsaWVudF9yZWN0IChNZXRhLlJlY3RhbmdsZSBmcmFtZV9yZWN0KTsKKy0J CVtDQ29kZSAoYXJyYXlfbGVuZ3RoX3BvcyA9IDAuMSwgYXJyYXlfbGVuZ3RoX3R5cGUgPSAiZ3Np emUiKV0KKy0JCXB1YmxpYyBpbnRbXSBnZXRfYWxsX21vbml0b3JzICgpOworLQkJcHVibGljIE1l dGEuUmVjdGFuZ2xlIGdldF9idWZmZXJfcmVjdCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmlu ZyBnZXRfY2xpZW50X21hY2hpbmUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBHTGliLk9iamVjdCBn ZXRfY29tcG9zaXRvcl9wcml2YXRlICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9k ZXNjcmlwdGlvbiAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuRGlzcGxheSBnZXRfZGlzcGxh eSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuRnJhbWUgZ2V0X2ZyYW1lICgpOworLQkJcHVi bGljIHVub3duZWQgQ2Fpcm8uUmVnaW9uPyBnZXRfZnJhbWVfYm91bmRzICgpOworLQkJcHVibGlj IE1ldGEuUmVjdGFuZ2xlIGdldF9mcmFtZV9yZWN0ICgpOworLQkJcHVibGljIE1ldGEuRnJhbWVU eXBlIGdldF9mcmFtZV90eXBlICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5Hcm91cCBnZXRf Z3JvdXAgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a19hcHBfbWVudV9vYmpl Y3RfcGF0aCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX2FwcGxpY2F0aW9u X2lkICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9ndGtfYXBwbGljYXRpb25fb2Jq ZWN0X3BhdGggKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a19tZW51YmFyX29i amVjdF9wYXRoICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9ndGtfdGhlbWVfdmFy aWFudCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX3VuaXF1ZV9idXNfbmFt ZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX3dpbmRvd19vYmplY3RfcGF0 aCAoKTsKKy0JCXB1YmxpYyBib29sIGdldF9pY29uX2dlb21ldHJ5IChvdXQgTWV0YS5SZWN0YW5n bGUgcmVjdCk7CistCQlwdWJsaWMgTWV0YS5TdGFja0xheWVyIGdldF9sYXllciAoKTsKKy0JCXB1 YmxpYyBNZXRhLk1heGltaXplRmxhZ3MgZ2V0X21heGltaXplZCAoKTsKKy0JCXB1YmxpYyBpbnQg Z2V0X21vbml0b3IgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X211dHRlcl9oaW50 cyAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3BpZCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmlu ZyBnZXRfcm9sZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuU2NyZWVuIGdldF9zY3JlZW4g KCk7CistCQlwdWJsaWMgdWludCBnZXRfc3RhYmxlX3NlcXVlbmNlICgpOworLQkJcHVibGljIHVu b3duZWQgc3RyaW5nIGdldF9zdGFydHVwX2lkICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5X aW5kb3c/IGdldF90aWxlX21hdGNoICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF90 aXRsZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGdldF90cmFuc2llbnRfZm9y ICgpOworLQkJcHVibGljIHVpbnQzMiBnZXRfdXNlcl90aW1lICgpOworLQkJcHVibGljIE1ldGEu V2luZG93VHlwZSBnZXRfd2luZG93X3R5cGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcg Z2V0X3dtX2NsYXNzICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF93bV9jbGFzc19p bnN0YW5jZSAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfd29ya19hcmVhX2FsbF9t b25pdG9ycyAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfd29ya19hcmVhX2N1cnJl bnRfbW9uaXRvciAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfd29ya19hcmVhX2Zv cl9tb25pdG9yIChpbnQgd2hpY2hfbW9uaXRvcik7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldv cmtzcGFjZSBnZXRfd29ya3NwYWNlICgpOworLQkJcHVibGljIFguV2luZG93IGdldF94d2luZG93 ICgpOworLQkJcHVibGljIHZvaWQgZ3JvdXBfbGVhZGVyX2NoYW5nZWQgKCk7CistCQlwdWJsaWMg Ym9vbCBoYXNfZm9jdXMgKCk7CistCQlwdWJsaWMgYm9vbCBpc19hYm92ZSAoKTsKKy0JCXB1Ymxp YyBib29sIGlzX2Fsd2F5c19vbl9hbGxfd29ya3NwYWNlcyAoKTsKKy0JCXB1YmxpYyBib29sIGlz X2FuY2VzdG9yX29mX3RyYW5zaWVudCAoTWV0YS5XaW5kb3cgdHJhbnNpZW50KTsKKy0JCXB1Ymxp YyBib29sIGlzX2F0dGFjaGVkX2RpYWxvZyAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2Z1bGxzY3Jl ZW4gKCk7CistCQlwdWJsaWMgYm9vbCBpc19oaWRkZW4gKCk7CistCQlwdWJsaWMgYm9vbCBpc19t b25pdG9yX3NpemVkICgpOworLQkJcHVibGljIGJvb2wgaXNfb25fYWxsX3dvcmtzcGFjZXMgKCk7 CistCQlwdWJsaWMgYm9vbCBpc19vbl9wcmltYXJ5X21vbml0b3IgKCk7CistCQlwdWJsaWMgYm9v bCBpc19vdmVycmlkZV9yZWRpcmVjdCAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3JlbW90ZSAoKTsK Ky0JCXB1YmxpYyBib29sIGlzX3NjcmVlbl9zaXplZCAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3No YWRlZCAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3NraXBfdGFza2JhciAoKTsKKy0JCXB1YmxpYyB2 b2lkIGtpbGwgKCk7CistCQlwdWJsaWMgYm9vbCBsb2NhdGVkX29uX3dvcmtzcGFjZSAoTWV0YS5X b3Jrc3BhY2Ugd29ya3NwYWNlKTsKKy0JCXB1YmxpYyB2b2lkIGxvd2VyICgpOworLQkJcHVibGlj IHZvaWQgbWFrZV9hYm92ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIG1ha2VfZnVsbHNjcmVlbiAoKTsK Ky0JCXB1YmxpYyB2b2lkIG1heGltaXplIChNZXRhLk1heGltaXplRmxhZ3MgZGlyZWN0aW9ucyk7 CistCQlwdWJsaWMgdm9pZCBtaW5pbWl6ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIG1vdmVfZnJhbWUg KGJvb2wgdXNlcl9vcCwgaW50IHJvb3RfeF9udywgaW50IHJvb3RfeV9udyk7CistCQlwdWJsaWMg dm9pZCBtb3ZlX3Jlc2l6ZV9mcmFtZSAoYm9vbCB1c2VyX29wLCBpbnQgcm9vdF94X253LCBpbnQg cm9vdF95X253LCBpbnQgdywgaW50IGgpOworLQkJcHVibGljIHZvaWQgbW92ZV90b19tb25pdG9y IChpbnQgbW9uaXRvcik7CistCQlwdWJsaWMgdm9pZCByYWlzZSAoKTsKKy0JCXB1YmxpYyBib29s IHJlcXVlc3RlZF9ieXBhc3NfY29tcG9zaXRvciAoKTsKKy0JCXB1YmxpYyBib29sIHJlcXVlc3Rl ZF9kb250X2J5cGFzc19jb21wb3NpdG9yICgpOworLQkJcHVibGljIHZvaWQgc2V0X2NvbXBvc2l0 b3JfcHJpdmF0ZSAoR0xpYi5PYmplY3QgcHJpdik7CistCQlwdWJsaWMgdm9pZCBzZXRfZGVtYW5k c19hdHRlbnRpb24gKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfaWNvbl9nZW9tZXRyeSAoTWV0YS5S ZWN0YW5nbGU/IHJlY3QpOworLQkJcHVibGljIHZvaWQgc2hhZGUgKHVpbnQzMiB0aW1lc3RhbXAp OworLQkJcHVibGljIHZvaWQgc2hvdmVfdGl0bGViYXJfb25zY3JlZW4gKCk7CistCQlwdWJsaWMg Ym9vbCBzaG93aW5nX29uX2l0c193b3Jrc3BhY2UgKCk7CistCQlwdWJsaWMgdm9pZCBzaHV0ZG93 bl9ncm91cCAoKTsKKy0JCXB1YmxpYyB2b2lkIHN0aWNrICgpOworLQkJcHVibGljIGJvb2wgdGl0 bGViYXJfaXNfb25zY3JlZW4gKCk7CistCQlwdWJsaWMgdm9pZCB1bm1ha2VfYWJvdmUgKCk7Cist CQlwdWJsaWMgdm9pZCB1bm1ha2VfZnVsbHNjcmVlbiAoKTsKKy0JCXB1YmxpYyB2b2lkIHVubWF4 aW1pemUgKE1ldGEuTWF4aW1pemVGbGFncyBkaXJlY3Rpb25zKTsKKy0JCXB1YmxpYyB2b2lkIHVu bWluaW1pemUgKCk7CistCQlwdWJsaWMgdm9pZCB1bnNldF9kZW1hbmRzX2F0dGVudGlvbiAoKTsK Ky0JCXB1YmxpYyB2b2lkIHVuc2hhZGUgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHZv aWQgdW5zdGljayAoKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgYWJv dmUgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgYXBwZWFy c19mb2N1c2VkIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29s IGRlY29yYXRlZCB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9v bCBkZW1hbmRzX2F0dGVudGlvbiB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlw dWJsaWMgYm9vbCBmdWxsc2NyZWVuIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIGd0a19hcHBf bWVudV9vYmplY3RfcGF0aCB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyBndGtfYXBwbGljYXRp b25faWQgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3RrX2FwcGxpY2F0aW9uX29iamVjdF9w YXRoIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIGd0a19tZW51YmFyX29iamVjdF9wYXRoIHsg Z2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIGd0a191bmlxdWVfYnVzX25hbWUgeyBnZXQ7IH0KKy0J CXB1YmxpYyBzdHJpbmcgZ3RrX3dpbmRvd19vYmplY3RfcGF0aCB7IGdldDsgfQorLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlwdWJsaWMgQ2Fpcm8uU3VyZmFjZSBpY29uIHsgb3duZWQgZ2V0OyB9 CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIG1heGltaXplZF9ob3Jpem9u dGFsbHkgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgbWF4 aW1pemVkX3ZlcnRpY2FsbHkgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVi bGljIENhaXJvLlN1cmZhY2UgbWluaV9pY29uIHsgb3duZWQgZ2V0OyB9CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIG1pbmltaXplZCB7IGdldDsgfQorLQkJcHVibGljIHN0 cmluZyBtdXR0ZXJfaGludHMgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVi bGljIGJvb2wgb25fYWxsX3dvcmtzcGFjZXMgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJcHVibGljIGJvb2wgcmVzaXplYWJsZSB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlwdWJsaWMgYm9vbCBza2lwX3Rhc2tiYXIgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJp bmcgdGl0bGUgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wg dXJnZW50IHsgZ2V0OyB9CistCQlwdWJsaWMgdWludCB1c2VyX3RpbWUgeyBnZXQ7IH0KKy0JCXB1 YmxpYyBNZXRhLldpbmRvd1R5cGUgd2luZG93X3R5cGUgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJp bmcgd21fY2xhc3MgeyBnZXQ7IH0KKy0JCVtDQ29kZSAoY25hbWUgPSAiZm9jdXMiKV0KKy0JCXB1 YmxpYyBzaWduYWwgdm9pZCBmb2N1c2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHBvc2l0 aW9uX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcmFpc2VkICgpOworLQkJcHVi bGljIHNpZ25hbCB2b2lkIHNpemVfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB1 bm1hbmFnZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlX2NoYW5nZWQgKCk7 CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS13aW5kb3ctYWN0 b3IuaCIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfYWN0b3JfZ2V0X3R5cGUgKCkiKV0KKy0JcHVi bGljIGNsYXNzIFdpbmRvd0FjdG9yIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBD bHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUg eworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVj dGVkIFdpbmRvd0FjdG9yICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X21l dGFfd2luZG93ICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfdGV4dHVy ZSAoKTsKKy0JCXB1YmxpYyBYLldpbmRvdyBnZXRfeF93aW5kb3cgKCk7CistCQlwdWJsaWMgYm9v bCBpc19kZXN0cm95ZWQgKCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBzdHJp bmcgc2hhZG93X2NsYXNzIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJcHVibGljIE1ldGEuU2hhZG93TW9kZSBzaGFkb3dfbW9kZSB7IGdldDsgc2V0OyB9Cist CQlwdWJsaWMgc2lnbmFsIHZvaWQgZmlyc3RfZnJhbWUgKCk7CistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YV93aW5kb3dfc2hhcGUuaCIsIHJlZl9mdW5jdGlvbiA9 ICJtZXRhX3dpbmRvd19zaGFwZV9yZWYiLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X3NoYXBlX2dl dF90eXBlICgpIiwgdW5yZWZfZnVuY3Rpb24gPSAibWV0YV93aW5kb3dfc2hhcGVfdW5yZWYiKV0K Ky0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBXaW5kb3dTaGFwZSB7CistCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwdWJsaWMgV2luZG93U2hhcGUgKENh aXJvLlJlZ2lvbiByZWdpb24pOworLQkJcHVibGljIGJvb2wgZXF1YWwgKE1ldGEuV2luZG93U2hh cGUgc2hhcGVfYik7CistCQlwdWJsaWMgdm9pZCBnZXRfYm9yZGVycyAoaW50IGJvcmRlcl90b3As IGludCBib3JkZXJfcmlnaHQsIGludCBib3JkZXJfYm90dG9tLCBpbnQgYm9yZGVyX2xlZnQpOwor LQkJcHVibGljIHVpbnQgaGFzaCAoKTsKKy0JCXB1YmxpYyBNZXRhLldpbmRvd1NoYXBlIEByZWYg KCk7CistCQlwdWJsaWMgQ2Fpcm8uUmVnaW9uIHRvX3JlZ2lvbiAoaW50IGNlbnRlcl93aWR0aCwg aW50IGNlbnRlcl9oZWlnaHQpOworLQkJcHVibGljIHZvaWQgdW5yZWYgKCk7CistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1l dGFfd29ya3NwYWNlX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBXb3Jrc3BhY2UgOiBH TGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSld CistCQlwcm90ZWN0ZWQgV29ya3NwYWNlICgpOworLQkJcHVibGljIHZvaWQgYWN0aXZhdGUgKHVp bnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgYWN0aXZhdGVfd2l0aF9mb2N1cyAoTWV0 YS5XaW5kb3cgZm9jdXNfdGhpcywgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdW5vd25l ZCBNZXRhLldvcmtzcGFjZSBnZXRfbmVpZ2hib3IgKE1ldGEuTW90aW9uRGlyZWN0aW9uIGRpcmVj dGlvbik7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLlNjcmVlbiBnZXRfc2NyZWVuICgpOworLQkJ cHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF93b3JrX2FyZWFfYWxsX21vbml0b3JzICgpOworLQkJ cHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF93b3JrX2FyZWFfZm9yX21vbml0b3IgKGludCB3aGlj aF9tb25pdG9yKTsKKy0JCXB1YmxpYyBpbnQgaW5kZXggKCk7CistCQlwdWJsaWMgR0xpYi5MaXN0 PHdlYWsgTWV0YS5XaW5kb3c+IGxpc3Rfd2luZG93cyAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9i dWlsdGluX3N0cnV0cyAoR0xpYi5TTGlzdDxNZXRhLlN0cnV0PiBzdHJ1dHMpOworLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdWludCBuX3dpbmRvd3MgeyBnZXQ7IH0KKy0JCVtOb0Fj Y2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQgd29ya3NwYWNlX2luZGV4IHsgZ2V0OyB9Cist CQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X2FkZGVkIChNZXRhLldpbmRvdyBvYmplY3QpOwor LQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19yZW1vdmVkIChNZXRhLldpbmRvdyBvYmplY3Qp OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgaGFz X3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgQnV0dG9uTGF5b3V0IHsKKy0JCVtD Q29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UsIGFycmF5X251bGxfdGVybWluYXRlZCA9IHRydWUp XQorLQkJcHVibGljIHdlYWsgTWV0YS5CdXR0b25GdW5jdGlvbltdIGxlZnRfYnV0dG9uczsKKy0J CVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UsIGFycmF5X251bGxfdGVybWluYXRlZCA9IHRy dWUpXQorLQkJcHVibGljIHdlYWsgYm9vbFtdIGxlZnRfYnV0dG9uc19oYXNfc3BhY2VyOworLQkJ W0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSwgYXJyYXlfbnVsbF90ZXJtaW5hdGVkID0gdHJ1 ZSldCistCQlwdWJsaWMgd2VhayBNZXRhLkJ1dHRvbkZ1bmN0aW9uW10gcmlnaHRfYnV0dG9uczsK Ky0JCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UsIGFycmF5X251bGxfdGVybWluYXRlZCA9 IHRydWUpXQorLQkJcHVibGljIHdlYWsgYm9vbFtdIHJpZ2h0X2J1dHRvbnNfaGFzX3NwYWNlcjsK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9ib3hlcy5oIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgRWRnZSB7CistCQlwdWJsaWMgTWV0YS5S ZWN0YW5nbGUgcmVjdDsKKy0JCXB1YmxpYyBNZXRhLlNpZGUgc2lkZV90eXBlOworLQkJcHVibGlj IE1ldGEuRWRnZVR5cGUgZWRnZV90eXBlOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2NvbW1vbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1 Y3QgRnJhbWVCb3JkZXJzIHsKKy0JCXB1YmxpYyBHdGsuQm9yZGVyIHZpc2libGU7CistCQlwdWJs aWMgR3RrLkJvcmRlciBpbnZpc2libGU7CistCQlwdWJsaWMgR3RrLkJvcmRlciB0b3RhbDsKKy0J CXB1YmxpYyB2b2lkIGNsZWFyICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21ldGEtcGx1Z2luLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0 cnVjdCBQbHVnaW5JbmZvIHsKKy0JCXB1YmxpYyB3ZWFrIHN0cmluZyBuYW1lOworLQkJcHVibGlj IHdlYWsgc3RyaW5nIHZlcnNpb247CistCQlwdWJsaWMgd2VhayBzdHJpbmcgYXV0aG9yOworLQkJ cHVibGljIHdlYWsgc3RyaW5nIGxpY2Vuc2U7CistCQlwdWJsaWMgd2VhayBzdHJpbmcgZGVzY3Jp cHRpb247CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1wbHVn aW4uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IFBsdWdpblZlcnNp b24geworLQkJcHVibGljIHVpbnQgdmVyc2lvbl9tYWpvcjsKKy0JCXB1YmxpYyB1aW50IHZlcnNp b25fbWlub3I7CistCQlwdWJsaWMgdWludCB2ZXJzaW9uX21pY3JvOworLQkJcHVibGljIHVpbnQg dmVyc2lvbl9hcGk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYm94 ZXMuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IFJlY3RhbmdsZSB7 CistCQlwdWJsaWMgaW50IHg7CistCQlwdWJsaWMgaW50IHk7CistCQlwdWJsaWMgaW50IHdpZHRo OworLQkJcHVibGljIGludCBoZWlnaHQ7CistCQlwdWJsaWMgaW50IGFyZWEgKCk7CistCQlwdWJs aWMgYm9vbCBjb250YWluc19yZWN0IChNZXRhLlJlY3RhbmdsZSBpbm5lcl9yZWN0KTsKKy0JCXB1 YmxpYyBib29sIGNvdWxkX2ZpdF9yZWN0IChNZXRhLlJlY3RhbmdsZSBpbm5lcl9yZWN0KTsKKy0J CXB1YmxpYyBib29sIGVxdWFsIChNZXRhLlJlY3RhbmdsZSBzcmMyKTsKKy0JCXB1YmxpYyBib29s IGhvcml6X292ZXJsYXAgKE1ldGEuUmVjdGFuZ2xlIHJlY3QyKTsKKy0JCXB1YmxpYyBib29sIGlu dGVyc2VjdCAoTWV0YS5SZWN0YW5nbGUgc3JjMiwgb3V0IE1ldGEuUmVjdGFuZ2xlIGRlc3QpOwor LQkJcHVibGljIGJvb2wgb3ZlcmxhcCAoTWV0YS5SZWN0YW5nbGUgcmVjdDIpOworLQkJcHVibGlj IE1ldGEuUmVjdGFuZ2xlIHVuaW9uIChNZXRhLlJlY3RhbmdsZSByZWN0Mik7CistCQlwdWJsaWMg Ym9vbCB2ZXJ0X292ZXJsYXAgKE1ldGEuUmVjdGFuZ2xlIHJlY3QyKTsKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgiLCBoYXNfdHlw ZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBTaGFkb3dQYXJhbXMgeworLQkJcHVibGlj IGludCByYWRpdXM7CistCQlwdWJsaWMgaW50IHRvcF9mYWRlOworLQkJcHVibGljIGludCB4X29m ZnNldDsKKy0JCXB1YmxpYyBpbnQgeV9vZmZzZXQ7CistCQlwdWJsaWMgdWludDggb3BhY2l0eTsK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9ib3hlcy5oIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgU3RydXQgeworLQkJcHVibGljIE1ldGEu UmVjdGFuZ2xlIHJlY3Q7CistCQlwdWJsaWMgTWV0YS5TaWRlIHNpZGU7CistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oIiwgY3ByZWZpeCA9ICJNRVRBX0JB UlJJRVJfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9iYXJyaWVyX2RpcmVjdGlvbl9nZXRf dHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIEJhcnJpZXJEaXJlY3Rpb24gewor LQkJUE9TSVRJVkVfWCwKKy0JCVBPU0lUSVZFX1ksCistCQlORUdBVElWRV9YLAorLQkJTkVHQVRJ VkVfWQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwg Y3ByZWZpeCA9ICJNRVRBX0JVVFRPTl9GVU5DVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfYnV0dG9u X2Z1bmN0aW9uX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEJ1dHRvbkZ1bmN0aW9uIHsK Ky0JCU1FTlUsCistCQlNSU5JTUlaRSwKKy0JCU1BWElNSVpFLAorLQkJQ0xPU0UsCistCQlTSEFE RSwKKy0JCUFCT1ZFLAorLQkJU1RJQ0ssCistCQlVTlNIQURFLAorLQkJVU5BQk9WRSwKKy0JCVVO U1RJQ0ssCistCQlBUFBNRU5VLAorLQkJTEFTVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2NvbXBvc2l0b3IuaCIsIGNwcmVmaXggPSAiTUVUQV9DT01QX0VGRkVDVF8i LCB0eXBlX2lkID0gIm1ldGFfY29tcF9lZmZlY3RfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVu dW0gQ29tcEVmZmVjdCB7CistCQlDUkVBVEUsCistCQlVTk1JTklNSVpFLAorLQkJREVTVFJPWSwK Ky0JCU1JTklNSVpFLAorLQkJTk9ORQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0NVUlNPUl8iLCB0eXBlX2lkID0gIm1l dGFfY3Vyc29yX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEN1cnNvciB7CistCQlOT05F LAorLQkJREVGQVVMVCwKKy0JCU5PUlRIX1JFU0laRSwKKy0JCVNPVVRIX1JFU0laRSwKKy0JCVdF U1RfUkVTSVpFLAorLQkJRUFTVF9SRVNJWkUsCistCQlTRV9SRVNJWkUsCistCQlTV19SRVNJWkUs CistCQlORV9SRVNJWkUsCistCQlOV19SRVNJWkUsCistCQlNT1ZFX09SX1JFU0laRV9XSU5ET1cs CistCQlCVVNZLAorLQkJRE5EX0lOX0RSQUcsCistCQlETkRfTU9WRSwKKy0JCURORF9DT1BZLAor LQkJRE5EX1VOU1VQUE9SVEVEX1RBUkdFVCwKKy0JCVBPSU5USU5HX0hBTkQsCistCQlDUk9TU0hB SVIsCistCQlJQkVBTSwKKy0JCUxBU1QKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS91dGlsLmgiLCBjcHJlZml4ID0gIk1FVEFfREVCVUdfIiwgdHlwZV9pZCA9ICJtZXRh X2RlYnVnX3RvcGljX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gRGVi dWdUb3BpYyB7CistCQlWRVJCT1NFLAorLQkJRk9DVVMsCistCQlXT1JLQVJFQSwKKy0JCVNUQUNL LAorLQkJVEhFTUVTLAorLQkJU00sCistCQlFVkVOVFMsCistCQlXSU5ET1dfU1RBVEUsCistCQlX SU5ET1dfT1BTLAorLQkJR0VPTUVUUlksCistCQlQTEFDRU1FTlQsCistCQlQSU5HLAorLQkJWElO RVJBTUEsCistCQlLRVlCSU5ESU5HUywKKy0JCVNZTkMsCistCQlFUlJPUlMsCistCQlTVEFSVFVQ LAorLQkJUFJFRlMsCistCQlHUk9VUFMsCistCQlSRVNJWklORywKKy0JCVNIQVBFUywKKy0JCUNP TVBPU0lUT1IsCistCQlFREdFX1JFU0lTVEFOQ0UsCistCQlEQlVTCistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfRElSRUNU SU9OXyIsIHR5cGVfaWQgPSAibWV0YV9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdz XQorLQlwdWJsaWMgZW51bSBEaXJlY3Rpb24geworLQkJTEVGVCwKKy0JCVJJR0hULAorLQkJVE9Q LAorLQkJQk9UVE9NLAorLQkJVVAsCistCQlET1dOLAorLQkJSE9SSVpPTlRBTCwKKy0JCVZFUlRJ Q0FMCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYm94ZXMuaCIsIGNw cmVmaXggPSAiTUVUQV9FREdFXyIsIHR5cGVfaWQgPSAibWV0YV9lZGdlX3R5cGVfZ2V0X3R5cGUg KCkiKV0KKy0JcHVibGljIGVudW0gRWRnZVR5cGUgeworLQkJV0lORE9XLAorLQkJTU9OSVRPUiwK Ky0JCVNDUkVFTgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIsIGNwcmVmaXggPSAiTUVUQV9FWElUXyIsIHR5cGVfaWQgPSAibWV0YV9leGl0X2NvZGVfZ2V0 X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gRXhpdENvZGUgeworLQkJU1VDQ0VTUywKKy0JCUVS Uk9SCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBj cHJlZml4ID0gIk1FVEFfRlJBTUVfIiwgdHlwZV9pZCA9ICJtZXRhX2ZyYW1lX2ZsYWdzX2dldF90 eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gRnJhbWVGbGFncyB7CistCQlBTExP V1NfREVMRVRFLAorLQkJQUxMT1dTX01FTlUsCistCQlBTExPV1NfQVBQTUVOVSwKKy0JCUFMTE9X U19NSU5JTUlaRSwKKy0JCUFMTE9XU19NQVhJTUlaRSwKKy0JCUFMTE9XU19WRVJUSUNBTF9SRVNJ WkUsCistCQlBTExPV1NfSE9SSVpPTlRBTF9SRVNJWkUsCistCQlIQVNfRk9DVVMsCistCQlTSEFE RUQsCistCQlTVFVDSywKKy0JCU1BWElNSVpFRCwKKy0JCUFMTE9XU19TSEFERSwKKy0JCUFMTE9X U19NT1ZFLAorLQkJRlVMTFNDUkVFTiwKKy0JCUlTX0ZMQVNISU5HLAorLQkJQUJPVkUsCistCQlU SUxFRF9MRUZULAorLQkJVElMRURfUklHSFQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9GUkFNRV9UWVBFXyIsIHR5cGVf aWQgPSAibWV0YV9mcmFtZV90eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEZyYW1l VHlwZSB7CistCQlOT1JNQUwsCistCQlESUFMT0csCistCQlNT0RBTF9ESUFMT0csCistCQlVVElM SVRZLAorLQkJTUVOVSwKKy0JCUJPUkRFUiwKKy0JCUFUVEFDSEVELAorLQkJTEFTVDsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQkJcHVibGljIHN0YXRp YyB1bm93bmVkIHN0cmluZyB0b19zdHJpbmcgKE1ldGEuRnJhbWVUeXBlIHR5cGUpOworLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJN RVRBX0dSQUJfT1BfIiwgdHlwZV9pZCA9ICJtZXRhX2dyYWJfb3BfZ2V0X3R5cGUgKCkiKV0KKy0J cHVibGljIGVudW0gR3JhYk9wIHsKKy0JCU5PTkUsCistCQlDT01QT1NJVE9SLAorLQkJV0FZTEFO RF9QT1BVUCwKKy0JCVdJTkRPV19CQVNFLAorLQkJRlJBTUVfQlVUVE9OLAorLQkJTU9WSU5HLAor LQkJUkVTSVpJTkdfTlcsCistCQlSRVNJWklOR19OLAorLQkJUkVTSVpJTkdfTkUsCistCQlSRVNJ WklOR19FLAorLQkJUkVTSVpJTkdfU1csCistCQlSRVNJWklOR19TLAorLQkJUkVTSVpJTkdfU0Us CistCQlSRVNJWklOR19XLAorLQkJS0VZQk9BUkRfTU9WSU5HLAorLQkJS0VZQk9BUkRfUkVTSVpJ TkdfVU5LTk9XTiwKKy0JCUtFWUJPQVJEX1JFU0laSU5HX05XLAorLQkJS0VZQk9BUkRfUkVTSVpJ TkdfTiwKKy0JCUtFWUJPQVJEX1JFU0laSU5HX05FLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfRSwK Ky0JCUtFWUJPQVJEX1JFU0laSU5HX1NXLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfUywKKy0JCUtF WUJPQVJEX1JFU0laSU5HX1NFLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfVworLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjcHJlZml4ID0gIk1FVEFfS0VZ QklORElOR19BQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5nX2FjdGlvbl9nZXRf dHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBLZXlCaW5kaW5nQWN0aW9uIHsKKy0JCU5PTkUsCist CQlXT1JLU1BBQ0VfMSwKKy0JCVdPUktTUEFDRV8yLAorLQkJV09SS1NQQUNFXzMsCistCQlXT1JL U1BBQ0VfNCwKKy0JCVdPUktTUEFDRV81LAorLQkJV09SS1NQQUNFXzYsCistCQlXT1JLU1BBQ0Vf NywKKy0JCVdPUktTUEFDRV84LAorLQkJV09SS1NQQUNFXzksCistCQlXT1JLU1BBQ0VfMTAsCist CQlXT1JLU1BBQ0VfMTEsCistCQlXT1JLU1BBQ0VfMTIsCistCQlXT1JLU1BBQ0VfTEVGVCwKKy0J CVdPUktTUEFDRV9SSUdIVCwKKy0JCVdPUktTUEFDRV9VUCwKKy0JCVdPUktTUEFDRV9ET1dOLAor LQkJV09SS1NQQUNFX0xBU1QsCistCQlTV0lUQ0hfQVBQTElDQVRJT05TLAorLQkJU1dJVENIX0FQ UExJQ0FUSU9OU19CQUNLV0FSRCwKKy0JCVNXSVRDSF9HUk9VUCwKKy0JCVNXSVRDSF9HUk9VUF9C QUNLV0FSRCwKKy0JCVNXSVRDSF9XSU5ET1dTLAorLQkJU1dJVENIX1dJTkRPV1NfQkFDS1dBUkQs CistCQlTV0lUQ0hfUEFORUxTLAorLQkJU1dJVENIX1BBTkVMU19CQUNLV0FSRCwKKy0JCUNZQ0xF X0dST1VQLAorLQkJQ1lDTEVfR1JPVVBfQkFDS1dBUkQsCistCQlDWUNMRV9XSU5ET1dTLAorLQkJ Q1lDTEVfV0lORE9XU19CQUNLV0FSRCwKKy0JCUNZQ0xFX1BBTkVMUywKKy0JCUNZQ0xFX1BBTkVM U19CQUNLV0FSRCwKKy0JCVNIT1dfREVTS1RPUCwKKy0JCVBBTkVMX01BSU5fTUVOVSwKKy0JCVBB TkVMX1JVTl9ESUFMT0csCistCQlUT0dHTEVfUkVDT1JESU5HLAorLQkJU0VUX1NQRVdfTUFSSywK Ky0JCUFDVElWQVRFX1dJTkRPV19NRU5VLAorLQkJVE9HR0xFX0ZVTExTQ1JFRU4sCistCQlUT0dH TEVfTUFYSU1JWkVELAorLQkJVE9HR0xFX1RJTEVEX0xFRlQsCistCQlUT0dHTEVfVElMRURfUklH SFQsCistCQlUT0dHTEVfQUJPVkUsCistCQlNQVhJTUlaRSwKKy0JCVVOTUFYSU1JWkUsCistCQlU T0dHTEVfU0hBREVELAorLQkJTUlOSU1JWkUsCistCQlDTE9TRSwKKy0JCUJFR0lOX01PVkUsCist CQlCRUdJTl9SRVNJWkUsCistCQlUT0dHTEVfT05fQUxMX1dPUktTUEFDRVMsCistCQlNT1ZFX1RP X1dPUktTUEFDRV8xLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfMiwKKy0JCU1PVkVfVE9fV09SS1NQ QUNFXzMsCistCQlNT1ZFX1RPX1dPUktTUEFDRV80LAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfNSwK Ky0JCU1PVkVfVE9fV09SS1NQQUNFXzYsCistCQlNT1ZFX1RPX1dPUktTUEFDRV83LAorLQkJTU9W RV9UT19XT1JLU1BBQ0VfOCwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzksCistCQlNT1ZFX1RPX1dP UktTUEFDRV8xMCwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzExLAorLQkJTU9WRV9UT19XT1JLU1BB Q0VfMTIsCistCQlNT1ZFX1RPX1dPUktTUEFDRV9MRUZULAorLQkJTU9WRV9UT19XT1JLU1BBQ0Vf UklHSFQsCistCQlNT1ZFX1RPX1dPUktTUEFDRV9VUCwKKy0JCU1PVkVfVE9fV09SS1NQQUNFX0RP V04sCistCQlNT1ZFX1RPX1dPUktTUEFDRV9MQVNULAorLQkJTU9WRV9UT19NT05JVE9SX0xFRlQs CistCQlNT1ZFX1RPX01PTklUT1JfUklHSFQsCistCQlNT1ZFX1RPX01PTklUT1JfVVAsCistCQlN T1ZFX1RPX01PTklUT1JfRE9XTiwKKy0JCVJBSVNFX09SX0xPV0VSLAorLQkJUkFJU0UsCistCQlM T1dFUiwKKy0JCU1BWElNSVpFX1ZFUlRJQ0FMTFksCistCQlNQVhJTUlaRV9IT1JJWk9OVEFMTFks CistCQlNT1ZFX1RPX0NPUk5FUl9OVywKKy0JCU1PVkVfVE9fQ09STkVSX05FLAorLQkJTU9WRV9U T19DT1JORVJfU1csCistCQlNT1ZFX1RPX0NPUk5FUl9TRSwKKy0JCU1PVkVfVE9fU0lERV9OLAor LQkJTU9WRV9UT19TSURFX1MsCistCQlNT1ZFX1RPX1NJREVfRSwKKy0JCU1PVkVfVE9fU0lERV9X LAorLQkJTU9WRV9UT19DRU5URVIsCistCQlPVkVSTEFZX0tFWSwKKy0JCUlTT19ORVhUX0dST1VQ LAorLQkJQUxXQVlTX09OX1RPUCwKKy0JCUxBU1QKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY3ByZWZpeCA9ICJNRVRBX0tFWV9CSU5ESU5HXyIsIHR5 cGVfaWQgPSAibWV0YV9rZXlfYmluZGluZ19mbGFnc19nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3Nd CistCXB1YmxpYyBlbnVtIEtleUJpbmRpbmdGbGFncyB7CistCQlOT05FLAorLQkJUEVSX1dJTkRP VywKKy0JCUJVSUxUSU4sCistCQlJU19SRVZFUlNFRAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNwcmVmaXggPSAiTUVUQV9MQVRFUl8iLCB0eXBlX2lk ID0gIm1ldGFfbGF0ZXJfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBMYXRlclR5 cGUgeworLQkJUkVTSVpFLAorLQkJQ0FMQ19TSE9XSU5HLAorLQkJQ0hFQ0tfRlVMTFNDUkVFTiwK Ky0JCVNZTkNfU1RBQ0ssCistCQlCRUZPUkVfUkVEUkFXLAorLQkJSURMRQorLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNwcmVmaXggPSAiTUVUQV9MT0NB TEVfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9sb2NhbGVfZGlyZWN0aW9uX2dldF90eXBl ICgpIildCistCXB1YmxpYyBlbnVtIExvY2FsZURpcmVjdGlvbiB7CistCQlMVFIsCistCQlSVEwK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cuaCIsIGNwcmVm aXggPSAiTUVUQV9NQVhJTUlaRV8iLCB0eXBlX2lkID0gIm1ldGFfbWF4aW1pemVfZmxhZ3NfZ2V0 X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBNYXhpbWl6ZUZsYWdzIHsKKy0J CUhPUklaT05UQUwsCistCQlWRVJUSUNBTCwKKy0JCUJPVEgKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXBsdWdpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX01PREFM XyIsIHR5cGVfaWQgPSAibWV0YV9tb2RhbF9vcHRpb25zX2dldF90eXBlICgpIildCistCVtGbGFn c10KKy0JcHVibGljIGVudW0gTW9kYWxPcHRpb25zIHsKKy0JCVBPSU5URVJfQUxSRUFEWV9HUkFC QkVELAorLQkJS0VZQk9BUkRfQUxSRUFEWV9HUkFCQkVECistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfTU9USU9OXyIsIHR5 cGVfaWQgPSAibWV0YV9tb3Rpb25fZGlyZWN0aW9uX2dldF90eXBlICgpIildCistCXB1YmxpYyBl bnVtIE1vdGlvbkRpcmVjdGlvbiB7CistCQlVUCwKKy0JCURPV04sCistCQlMRUZULAorLQkJUklH SFQsCistCQlVUF9MRUZULAorLQkJVVBfUklHSFQsCistCQlET1dOX0xFRlQsCistCQlET1dOX1JJ R0hUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNw cmVmaXggPSAiTUVUQV9QUkVGXyIsIHR5cGVfaWQgPSAibWV0YV9wcmVmZXJlbmNlX2dldF90eXBl ICgpIildCistCXB1YmxpYyBlbnVtIFByZWZlcmVuY2UgeworLQkJTU9VU0VfQlVUVE9OX01PRFMs CistCQlGT0NVU19NT0RFLAorLQkJRk9DVVNfTkVXX1dJTkRPV1MsCistCQlBVFRBQ0hfTU9EQUxf RElBTE9HUywKKy0JCVJBSVNFX09OX0NMSUNLLAorLQkJQUNUSU9OX0RPVUJMRV9DTElDS19USVRM RUJBUiwKKy0JCUFDVElPTl9NSURETEVfQ0xJQ0tfVElUTEVCQVIsCistCQlBQ1RJT05fUklHSFRf Q0xJQ0tfVElUTEVCQVIsCistCQlBVVRPX1JBSVNFLAorLQkJQVVUT19SQUlTRV9ERUxBWSwKKy0J CUZPQ1VTX0NIQU5HRV9PTl9QT0lOVEVSX1JFU1QsCistCQlUSVRMRUJBUl9GT05ULAorLQkJTlVN X1dPUktTUEFDRVMsCistCQlEWU5BTUlDX1dPUktTUEFDRVMsCistCQlLRVlCSU5ESU5HUywKKy0J CURJU0FCTEVfV09SS0FST1VORFMsCistCQlCVVRUT05fTEFZT1VULAorLQkJV09SS1NQQUNFX05B TUVTLAorLQkJVklTVUFMX0JFTEwsCistCQlBVURJQkxFX0JFTEwsCistCQlWSVNVQUxfQkVMTF9U WVBFLAorLQkJR05PTUVfQUNDRVNTSUJJTElUWSwKKy0JCUdOT01FX0FOSU1BVElPTlMsCistCQlD VVJTT1JfVEhFTUUsCistCQlDVVJTT1JfU0laRSwKKy0JCVJFU0laRV9XSVRIX1JJR0hUX0JVVFRP TiwKKy0JCUVER0VfVElMSU5HLAorLQkJRk9SQ0VfRlVMTFNDUkVFTiwKKy0JCVdPUktTUEFDRVNf T05MWV9PTl9QUklNQVJZLAorLQkJRFJBR0dBQkxFX0JPUkRFUl9XSURUSCwKKy0JCUFVVE9fTUFY SU1JWkUsCistCQlDRU5URVJfTkVXX1dJTkRPV1MsCistCQlEUkFHX1RIUkVTSE9MRDsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQkJcHVibGljIHN0YXRp YyB1bm93bmVkIHN0cmluZyB0b19zdHJpbmcgKE1ldGEuUHJlZmVyZW5jZSBwcmVmKTsKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9zY3JlZW4uaCIsIGNwcmVmaXggPSAi TUVUQV9TQ1JFRU5fIiwgdHlwZV9pZCA9ICJtZXRhX3NjcmVlbl9jb3JuZXJfZ2V0X3R5cGUgKCki KV0KKy0JcHVibGljIGVudW0gU2NyZWVuQ29ybmVyIHsKKy0JCVRPUExFRlQsCistCQlUT1BSSUdI VCwKKy0JCUJPVFRPTUxFRlQsCistCQlCT1RUT01SSUdIVAorLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21ldGEtZW51bS10eXBlcy5oIiwgY3ByZWZpeCA9ICJNRVRBX1ND UkVFTl8iLCB0eXBlX2lkID0gIm1ldGFfc2NyZWVuX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQor LQlwdWJsaWMgZW51bSBTY3JlZW5EaXJlY3Rpb24geworLQkJVVAsCistCQlET1dOLAorLQkJTEVG VCwKKy0JCVJJR0hUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0 YS1lbnVtLXR5cGVzLmgiLCBjcHJlZml4ID0gIk1FVEFfU0hBRE9XX01PREVfIiwgdHlwZV9pZCA9 ICJtZXRhX3NoYWRvd19tb2RlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFNoYWRvd01v ZGUgeworLQkJQVVUTywKKy0JCUZPUkNFRF9PRkYsCistCQlGT1JDRURfT04KKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9T SURFXyIsIHR5cGVfaWQgPSAibWV0YV9zaWRlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVt IFNpZGUgeworLQkJTEVGVCwKKy0JCVJJR0hULAorLQkJVE9QLAorLQkJQk9UVE9NCistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1lbnVtLXR5cGVzLmgiLCBjcHJl Zml4ID0gIk1FVEFfU0laRV9DSEFOR0VfIiwgdHlwZV9pZCA9ICJtZXRhX3NpemVfY2hhbmdlX2dl dF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFNpemVDaGFuZ2UgeworLQkJTUFYSU1JWkUsCist CQlVTk1BWElNSVpFLAorLQkJRlVMTFNDUkVFTiwKKy0JCVVORlVMTFNDUkVFTgorLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRB X0xBWUVSXyIsIHR5cGVfaWQgPSAibWV0YV9zdGFja19sYXllcl9nZXRfdHlwZSAoKSIpXQorLQlw dWJsaWMgZW51bSBTdGFja0xheWVyIHsKKy0JCURFU0tUT1AsCistCQlCT1RUT00sCistCQlOT1JN QUwsCistCQlUT1AsCistCQlET0NLLAorLQkJRlVMTFNDUkVFTiwKKy0JCUZPQ1VTRURfV0lORE9X LAorLQkJT1ZFUlJJREVfUkVESVJFQ1QsCistCQlMQVNUCistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvZGlzcGxheS5oIiwgY3ByZWZpeCA9ICJNRVRBX1RBQl9MSVNUXyIs IHR5cGVfaWQgPSAibWV0YV90YWJfbGlzdF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBU YWJMaXN0IHsKKy0JCU5PUk1BTCwKKy0JCURPQ0tTLAorLQkJR1JPVVAsCistCQlOT1JNQUxfQUxM CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvZGlzcGxheS5oIiwgY3By ZWZpeCA9ICJNRVRBX1RBQl9TSE9XXyIsIHR5cGVfaWQgPSAibWV0YV90YWJfc2hvd190eXBlX2dl dF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFRhYlNob3dUeXBlIHsKKy0JCUlDT04sCistCQlJ TlNUQU5UTFkKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24u aCIsIGNwcmVmaXggPSAiTUVUQV9WSVJUVUFMXyIsIHR5cGVfaWQgPSAibWV0YV92aXJ0dWFsX21v ZGlmaWVyX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gVmlydHVhbE1v ZGlmaWVyIHsKKy0JCVNISUZUX01BU0ssCistCQlDT05UUk9MX01BU0ssCistCQlBTFRfTUFTSywK Ky0JCU1FVEFfTUFTSywKKy0JCVNVUEVSX01BU0ssCistCQlIWVBFUl9NQVNLLAorLQkJTU9EMl9N QVNLLAorLQkJTU9EM19NQVNLLAorLQkJTU9ENF9NQVNLLAorLQkJTU9ENV9NQVNLCistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvd2luZG93LmgiLCBjcHJlZml4ID0gIk1F VEFfV0lORE9XX0NMSUVOVF9UWVBFXyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfY2xpZW50X3R5 cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gV2luZG93Q2xpZW50VHlwZSB7CistCQlX QVlMQU5ELAorLQkJWDExCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv Y29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfV0lORE9XX01FTlVfIiwgdHlwZV9pZCA9ICJtZXRh X3dpbmRvd19tZW51X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gV2luZG93TWVu dVR5cGUgeworLQkJV00sCistCQlBUFAKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS93aW5kb3cuaCIsIGNwcmVmaXggPSAiTUVUQV9XSU5ET1dfIiwgdHlwZV9pZCA9ICJt ZXRhX3dpbmRvd190eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFdpbmRvd1R5cGUg eworLQkJTk9STUFMLAorLQkJREVTS1RPUCwKKy0JCURPQ0ssCistCQlESUFMT0csCistCQlNT0RB TF9ESUFMT0csCistCQlUT09MQkFSLAorLQkJTUVOVSwKKy0JCVVUSUxJVFksCistCQlTUExBU0hT Q1JFRU4sCistCQlEUk9QRE9XTl9NRU5VLAorLQkJUE9QVVBfTUVOVSwKKy0JCVRPT0xUSVAsCist CQlOT1RJRklDQVRJT04sCistCQlDT01CTywKKy0JCURORCwKKy0JCU9WRVJSSURFX09USEVSCist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1pZGxlLW1vbml0b3Iu aCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIElkbGVNb25p dG9yV2F0Y2hGdW5jIChNZXRhLklkbGVNb25pdG9yIG1vbml0b3IsIHVpbnQgd2F0Y2hfaWQpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgaW5zdGFuY2VfcG9z ID0gNS45KV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQgS2V5SGFuZGxlckZ1bmMgKE1ldGEuRGlz cGxheSBkaXNwbGF5LCBNZXRhLlNjcmVlbiBzY3JlZW4sIE1ldGEuV2luZG93PyB3aW5kb3csIENs dXR0ZXIuS2V5RXZlbnQ/IGV2ZW50LCBNZXRhLktleUJpbmRpbmcgYmluZGluZyk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkp XQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBQcmVmc0NoYW5nZWRGdW5jIChNZXRhLlByZWZlcmVu Y2UgcHJlZik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3dpbmRvdy5oIiwg aW5zdGFuY2VfcG9zID0gMS45KV0KKy0JcHVibGljIGRlbGVnYXRlIGJvb2wgV2luZG93Rm9yZWFj aEZ1bmMgKE1ldGEuV2luZG93IHdpbmRvdyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfREVGQVVMVF9JQ09OX05BTUUiKV0KKy0JcHVi bGljIGNvbnN0IHN0cmluZyBERUZBVUxUX0lDT05fTkFNRTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9JQ09OX0hFSUdIVCIpXQorLQlw dWJsaWMgY29uc3QgaW50IElDT05fSEVJR0hUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX0lDT05fV0lEVEgiKV0KKy0JcHVibGljIGNv bnN0IGludCBJQ09OX1dJRFRIOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiLCBjbmFtZSA9ICJNRVRBX01BSk9SX1ZFUlNJT04iKV0KKy0JcHVibGljIGNvbnN0IGlu dCBNQUpPUl9WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWlu LmgiLCBjbmFtZSA9ICJNRVRBX01JQ1JPX1ZFUlNJT04iKV0KKy0JcHVibGljIGNvbnN0IGludCBN SUNST19WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi LCBjbmFtZSA9ICJNRVRBX01JTklfSUNPTl9IRUlHSFQiKV0KKy0JcHVibGljIGNvbnN0IGludCBN SU5JX0lDT05fSEVJR0hUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWlu LmgiLCBjbmFtZSA9ICJNRVRBX01JTklfSUNPTl9XSURUSCIpXQorLQlwdWJsaWMgY29uc3QgaW50 IE1JTklfSUNPTl9XSURUSDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFp bi5oIiwgY25hbWUgPSAiTUVUQV9NSU5PUl9WRVJTSU9OIildCistCXB1YmxpYyBjb25zdCBpbnQg TUlOT1JfVkVSU0lPTjsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IiwgY25hbWUgPSAiTUVUQV9QTFVHSU5fQVBJX1ZFUlNJT04iKV0KKy0JcHVibGljIGNvbnN0IGlu dCBQTFVHSU5fQVBJX1ZFUlNJT047CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfQkVGT1JFX1JFRFJBVyIpXQorLQlwdWJs aWMgY29uc3QgaW50IFBSSU9SSVRZX0JFRk9SRV9SRURSQVc7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUFJFRlNfTk9U SUZZIildCistCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfUFJFRlNfTk9USUZZOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9S SVRZX1JFRFJBVyIpXQorLQlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZX1JFRFJBVzsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9QUklP UklUWV9SRVNJWkUiKV0KKy0JcHVibGljIGNvbnN0IGludCBQUklPUklUWV9SRVNJWkU7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfVklS VFVBTF9DT1JFX0tFWUJPQVJEX0lEIildCistCXB1YmxpYyBjb25zdCBpbnQgVklSVFVBTF9DT1JF X0tFWUJPQVJEX0lEOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi LCBjbmFtZSA9ICJNRVRBX1ZJUlRVQUxfQ09SRV9QT0lOVEVSX0lEIildCistCXB1YmxpYyBjb25z dCBpbnQgVklSVFVBTF9DT1JFX1BPSU5URVJfSUQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgYWN0aXZhdGVfc2Vzc2lv biAoKTsKKy0gCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgY2x1dHRlcl9pbml0ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGV4aXQgKE1ldGEu RXhpdENvZGUgY29kZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgR0xpYi5PcHRpb25Db250ZXh0IGdldF9vcHRp b25fY29udGV4dCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfcmVwbGFjZV9jdXJyZW50X3dtICgpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIGluaXQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfcmVzdGFydCAoKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBxdWl0 IChNZXRhLkV4aXRDb2RlIGNvZGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlZ2lzdGVyX3dpdGhfc2Vzc2lvbiAo KTsKKy0gCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgcmVzdGFydCAoc3RyaW5nIG1lc3NhZ2UpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JcHVibGljIHN0YXRpYyBpbnQgcnVuICgp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIHNldF9nbm9tZV93bV9rZXliaW5kaW5ncyAoc3RyaW5nIHdtX2tleWJpbmRp bmdzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCBzZXRfd21fbmFtZSAoc3RyaW5nIHdtX25hbWUpOworLX0KK2RpZmYg LS1naXQgdmFwaS9saWJtdXR0ZXItMy1jdXN0b20udmFsYSB2YXBpL2xpYm11dHRlci0zLWN1c3Rv bS52YWxhCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDI5ZTU5NzdkLi4wMDAwMDAw MAorLS0tIHZhcGkvbGlibXV0dGVyLTMtY3VzdG9tLnZhbGEKKysrKyAvZGV2L251bGwKK0BAIC0x LDYgKzAsMCBAQAorLW5hbWVzcGFjZSBNZXRhIHsKKy0JcHVibGljIGFic3RyYWN0IGNsYXNzIE1v bml0b3JNYW5hZ2VyIDogTWV0YS5EQnVzRGlzcGxheUNvbmZpZ1NrZWxldG9uLCBHTGliLkRCdXNJ bnRlcmZhY2UgeworLQkJLyogbm90IGV4cG9ydGVkICovCistCQlwdWJsaWMgc2lnbmFsIHZvaWQg bW9uaXRvcnNfY2hhbmdlZCAoKTsKKy0JfQorLX0KK2RpZmYgLS1naXQgdmFwaS9saWJtdXR0ZXIt My5kZXBzIHZhcGkvbGlibXV0dGVyLTMuZGVwcworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Citp bmRleCAxZjNjOTA3OS4uMDAwMDAwMDAKKy0tLSB2YXBpL2xpYm11dHRlci0zLmRlcHMKKysrKyAv ZGV2L251bGwKK0BAIC0xLDkgKzAsMCBAQAorLWNhaXJvCistZ3NldHRpbmdzLWRlc2t0b3Atc2No ZW1hcworLWdkay0zLjAKKy1nZGstcGl4YnVmLTIuMAorLWd0aystMy4wCisteDExCisteGZpeGVz LTQuMAorLWNsdXR0ZXItMS4wCistY29nbC0xLjAKK2RpZmYgLS1naXQgdmFwaS9saWJtdXR0ZXIt NC5kZXBzIHZhcGkvbGlibXV0dGVyLTQuZGVwcworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Citp bmRleCAzNjdjMzViOS4uMDAwMDAwMDAKKy0tLSB2YXBpL2xpYm11dHRlci00LmRlcHMKKysrKyAv ZGV2L251bGwKK0BAIC0xLDggKzAsMCBAQAorLWdkay0zLjAKKy1nZGstcGl4YnVmLTIuMAorLWdz ZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMKKy1ndGsrLTMuMAorLW11dHRlci1jbHV0dGVyLTQKKy1t dXR0ZXItY29nbC00CisteDExCisteGZpeGVzLTQuMAorZGlmZiAtLWdpdCB2YXBpL2xpYm11dHRl ci00LnZhcGkgdmFwaS9saWJtdXR0ZXItNC52YXBpCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK K2luZGV4IGUwZDM1NmEwLi4wMDAwMDAwMAorLS0tIHZhcGkvbGlibXV0dGVyLTQudmFwaQorKysr IC9kZXYvbnVsbAorQEAgLTEsMTQyNSArMCwwIEBACistLyogbGlibXV0dGVyLTQudmFwaSBnZW5l cmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKy0KKy1bQ0NvZGUgKGNwcmVmaXgg PSAiTWV0YSIsIGdpcl9uYW1lc3BhY2UgPSAiTWV0YSIsIGdpcl92ZXJzaW9uID0gIjQiLCBsb3dl cl9jYXNlX2NwcmVmaXggPSAibWV0YV8iKV0KKy1uYW1lc3BhY2UgTWV0YSB7CistCW5hbWVzcGFj ZSBDb21wb3NpdG9yIHsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2Rpc2FibGVfdW5yZWRpcmVjdF9mb3JfZGlz cGxheSIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGRpc2FibGVfdW5yZWRpcmVjdF9mb3JfZGlz cGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZW1wdHlfc3RhZ2Vf aW5wdXRfcmVnaW9uIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZW1wdHlfc3RhZ2VfaW5wdXRf cmVnaW9uIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9lbmFibGVfdW5y ZWRpcmVjdF9mb3JfZGlzcGxheSIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGVuYWJsZV91bnJl ZGlyZWN0X2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0 YV9mb2N1c19zdGFnZV93aW5kb3ciKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBmb2N1c19zdGFn ZV93aW5kb3cgKE1ldGEuRGlzcGxheSBkaXNwbGF5LCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFt ZSA9ICJtZXRhX2dldF9mZWVkYmFja19ncm91cF9mb3JfZGlzcGxheSIpXQorLQkJcHVibGljIHN0 YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2ZlZWRiYWNrX2dyb3VwX2Zvcl9kaXNwbGF5 IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9nZXRfc3RhZ2VfZm9yX2Rp c3BsYXkiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9zdGFn ZV9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZ2V0 X3RvcF93aW5kb3dfZ3JvdXBfZm9yX2Rpc3BsYXkiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25l ZCBDbHV0dGVyLkFjdG9yIGdldF90b3Bfd2luZG93X2dyb3VwX2Zvcl9kaXNwbGF5IChNZXRhLkRp c3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21w b3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9nZXRfd2luZG93X2FjdG9ycyIpXQorLQkJ cHVibGljIHN0YXRpYyB1bm93bmVkIEdMaWIuTGlzdDxDbHV0dGVyLkFjdG9yPiBnZXRfd2luZG93 X2FjdG9ycyAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZ2V0X3dpbmRv d19ncm91cF9mb3JfZGlzcGxheSIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIu QWN0b3IgZ2V0X3dpbmRvd19ncm91cF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIu aCIsIGNuYW1lID0gIm1ldGFfc2V0X3N0YWdlX2lucHV0X3JlZ2lvbiIpXQorLQkJcHVibGljIHN0 YXRpYyB2b2lkIHNldF9zdGFnZV9pbnB1dF9yZWdpb24gKE1ldGEuRGlzcGxheSBkaXNwbGF5LCBY LlhzZXJ2ZXJSZWdpb24gcmVnaW9uKTsKKy0JfQorLQluYW1lc3BhY2UgUHJlZnMgeworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJl ZnNfYmVsbF9pc19hdWRpYmxlIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfYmVsbF9p c19hdWRpYmxlICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMu aCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfY2hhbmdlX3dvcmtzcGFjZV9uYW1lIildCistCQlwdWJs aWMgc3RhdGljIHZvaWQgcHJlZnNfY2hhbmdlX3dvcmtzcGFjZV9uYW1lIChpbnQgaSwgc3RyaW5n IG5hbWUpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNu YW1lID0gIm1ldGFfcHJlZnNfZ2V0X2FjdGlvbl9kb3VibGVfY2xpY2tfdGl0bGViYXIiKV0KKy0J CXB1YmxpYyBzdGF0aWMgR0Rlc2t0b3AuVGl0bGViYXJBY3Rpb24gcHJlZnNfZ2V0X2FjdGlvbl9k b3VibGVfY2xpY2tfdGl0bGViYXIgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfYWN0aW9uX21pZGRsZV9jbGlj a190aXRsZWJhciIpXQorLQkJcHVibGljIHN0YXRpYyBHRGVza3RvcC5UaXRsZWJhckFjdGlvbiBw cmVmc19nZXRfYWN0aW9uX21pZGRsZV9jbGlja190aXRsZWJhciAoKTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9h Y3Rpb25fcmlnaHRfY2xpY2tfdGl0bGViYXIiKV0KKy0JCXB1YmxpYyBzdGF0aWMgR0Rlc2t0b3Au VGl0bGViYXJBY3Rpb24gcHJlZnNfZ2V0X2FjdGlvbl9yaWdodF9jbGlja190aXRsZWJhciAoKTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJt ZXRhX3ByZWZzX2dldF9hdHRhY2hfbW9kYWxfZGlhbG9ncyIpXQorLQkJcHVibGljIHN0YXRpYyBi b29sIHByZWZzX2dldF9hdHRhY2hfbW9kYWxfZGlhbG9ncyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9hdXRv X21heGltaXplIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2F1dG9fbWF4aW1p emUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25h bWUgPSAibWV0YV9wcmVmc19nZXRfYXV0b19yYWlzZSIpXQorLQkJcHVibGljIHN0YXRpYyBib29s IHByZWZzX2dldF9hdXRvX3JhaXNlICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2F1dG9fcmFpc2VfZGVsYXki KV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IHByZWZzX2dldF9hdXRvX3JhaXNlX2RlbGF5ICgpOwor LQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1l dGFfcHJlZnNfZ2V0X2J1dHRvbl9sYXlvdXQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0YS5CdXR0 b25MYXlvdXQgcHJlZnNfZ2V0X2J1dHRvbl9sYXlvdXQgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfY2VudGVy X25ld193aW5kb3dzIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2NlbnRlcl9u ZXdfd2luZG93cyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZz LmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9jb21wb3NpdGluZ19tYW5hZ2VyIildCistCQlw dWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2NvbXBvc2l0aW5nX21hbmFnZXIgKCk7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9w cmVmc19nZXRfY3Vyc29yX3NpemUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IHByZWZzX2dldF9j dXJzb3Jfc2l6ZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZz LmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9jdXJzb3JfdGhlbWUiKV0KKy0JCXB1YmxpYyBz dGF0aWMgdW5vd25lZCBzdHJpbmcgcHJlZnNfZ2V0X2N1cnNvcl90aGVtZSAoKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZz X2dldF9kaXNhYmxlX3dvcmthcm91bmRzIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNf Z2V0X2Rpc2FibGVfd29ya2Fyb3VuZHMgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfZHJhZ190aHJlc2hvbGQi KV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IHByZWZzX2dldF9kcmFnX3RocmVzaG9sZCAoKTsKKy0J CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRh X3ByZWZzX2dldF9kcmFnZ2FibGVfYm9yZGVyX3dpZHRoIildCistCQlwdWJsaWMgc3RhdGljIGlu dCBwcmVmc19nZXRfZHJhZ2dhYmxlX2JvcmRlcl93aWR0aCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9keW5h bWljX3dvcmtzcGFjZXMiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfZHluYW1p Y193b3Jrc3BhY2VzICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJl ZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2VkZ2VfdGlsaW5nIildCistCQlwdWJsaWMg c3RhdGljIGJvb2wgcHJlZnNfZ2V0X2VkZ2VfdGlsaW5nICgpOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2ZvY3Vz X2NoYW5nZV9vbl9wb2ludGVyX3Jlc3QiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19n ZXRfZm9jdXNfY2hhbmdlX29uX3BvaW50ZXJfcmVzdCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9mb2N1c19t b2RlIildCistCQlwdWJsaWMgc3RhdGljIEdEZXNrdG9wLkZvY3VzTW9kZSBwcmVmc19nZXRfZm9j dXNfbW9kZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgi LCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9mb2N1c19uZXdfd2luZG93cyIpXQorLQkJcHVibGlj IHN0YXRpYyBHRGVza3RvcC5Gb2N1c05ld1dpbmRvd3MgcHJlZnNfZ2V0X2ZvY3VzX25ld193aW5k b3dzICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNu YW1lID0gIm1ldGFfcHJlZnNfZ2V0X2ZvcmNlX2Z1bGxzY3JlZW4iKV0KKy0JCXB1YmxpYyBzdGF0 aWMgYm9vbCBwcmVmc19nZXRfZm9yY2VfZnVsbHNjcmVlbiAoKTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9nbm9t ZV9hY2Nlc3NpYmlsaXR5IildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2dub21l X2FjY2Vzc2liaWxpdHkgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9w cmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfZ25vbWVfYW5pbWF0aW9ucyIpXQorLQkJ cHVibGljIHN0YXRpYyBib29sIHByZWZzX2dldF9nbm9tZV9hbmltYXRpb25zICgpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJl ZnNfZ2V0X2tleWJpbmRpbmdfYWN0aW9uIildCistCQlwdWJsaWMgc3RhdGljIE1ldGEuS2V5Qmlu ZGluZ0FjdGlvbiBwcmVmc19nZXRfa2V5YmluZGluZ19hY3Rpb24gKHN0cmluZyBuYW1lKTsKKy0J CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRh X3ByZWZzX2dldF9tb3VzZV9idXR0b25fbWVudSIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgcHJl ZnNfZ2V0X21vdXNlX2J1dHRvbl9tZW51ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X21vdXNlX2J1dHRvbl9t b2RzIildCistCQlwdWJsaWMgc3RhdGljIE1ldGEuVmlydHVhbE1vZGlmaWVyIHByZWZzX2dldF9t b3VzZV9idXR0b25fbW9kcyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9tb3VzZV9idXR0b25fcmVzaXplIild CistCQlwdWJsaWMgc3RhdGljIGludCBwcmVmc19nZXRfbW91c2VfYnV0dG9uX3Jlc2l6ZSAoKTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJt ZXRhX3ByZWZzX2dldF9udW1fd29ya3NwYWNlcyIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgcHJl ZnNfZ2V0X251bV93b3Jrc3BhY2VzICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X3JhaXNlX29uX2NsaWNrIild CistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X3JhaXNlX29uX2NsaWNrICgpOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFf cHJlZnNfZ2V0X3Nob3dfZmFsbGJhY2tfYXBwX21lbnUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9v bCBwcmVmc19nZXRfc2hvd19mYWxsYmFja19hcHBfbWVudSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF90aXRs ZWJhcl9mb250IildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgUGFuZ28uRm9udERlc2NyaXB0 aW9uIHByZWZzX2dldF90aXRsZWJhcl9mb250ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X3Zpc3VhbF9iZWxs IildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X3Zpc3VhbF9iZWxsICgpOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFf cHJlZnNfZ2V0X3Zpc3VhbF9iZWxsX3R5cGUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgR0Rlc2t0b3Au VmlzdWFsQmVsbFR5cGUgcHJlZnNfZ2V0X3Zpc3VhbF9iZWxsX3R5cGUgKCk7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19n ZXRfd29ya3NwYWNlX25hbWUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgcHJl ZnNfZ2V0X3dvcmtzcGFjZV9uYW1lIChpbnQgaSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfd29ya3NwYWNlc19v bmx5X29uX3ByaW1hcnkiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfd29ya3Nw YWNlc19vbmx5X29uX3ByaW1hcnkgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19pbml0IildCistCQlwdWJsaWMgc3Rh dGljIHZvaWQgcHJlZnNfaW5pdCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX3NldF9mb3JjZV9mdWxsc2NyZWVuIild CistCQlwdWJsaWMgc3RhdGljIHZvaWQgcHJlZnNfc2V0X2ZvcmNlX2Z1bGxzY3JlZW4gKGJvb2wg d2hldGhlcik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwg Y25hbWUgPSAibWV0YV9wcmVmc19zZXRfbnVtX3dvcmtzcGFjZXMiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgdm9pZCBwcmVmc19zZXRfbnVtX3dvcmtzcGFjZXMgKGludCBuX3dvcmtzcGFjZXMpOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFf cHJlZnNfc2V0X3Nob3dfZmFsbGJhY2tfYXBwX21lbnUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9p ZCBwcmVmc19zZXRfc2hvd19mYWxsYmFja19hcHBfbWVudSAoYm9vbCB3aGV0aGVyKTsKKy0JfQor LQluYW1lc3BhY2UgVXRpbCB7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91 dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2FkZF92ZXJib3NlX3RvcGljIildCistCQlwdWJsaWMgc3Rh dGljIHZvaWQgYWRkX3ZlcmJvc2VfdG9waWMgKE1ldGEuRGVidWdUb3BpYyB0b3BpYyk7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2V4 dGVybmFsX2JpbmRpbmdfbmFtZV9mb3JfYWN0aW9uIildCistCQlwdWJsaWMgc3RhdGljIHN0cmlu ZyBleHRlcm5hbF9iaW5kaW5nX25hbWVfZm9yX2FjdGlvbiAodWludCBrZXliaW5kaW5nX2FjdGlv bik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9 ICJtZXRhX2dfdXRmOF9zdHJuZHVwIildCistCQlwdWJsaWMgc3RhdGljIHN0cmluZyBnX3V0Zjhf c3RybmR1cCAoc3RyaW5nIHNyYywgc2l6ZV90IG4pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9nZXRfbG9jYWxlX2RpcmVjdGlvbiIp XQorLQkJcHVibGljIHN0YXRpYyBNZXRhLkxvY2FsZURpcmVjdGlvbiBnZXRfbG9jYWxlX2RpcmVj dGlvbiAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNu YW1lID0gIm1ldGFfZ3Jhdml0eV90b19zdHJpbmciKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25l ZCBzdHJpbmcgZ3Jhdml0eV90b19zdHJpbmcgKGludCBncmF2aXR5KTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfaXNfZGVidWdnaW5n IildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfZGVidWdnaW5nICgpOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9pc19zeW5jaW5n IildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfc3luY2luZyAoKTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfaXNfdmVyYm9zZSIp XQorLQkJcHVibGljIHN0YXRpYyBib29sIGlzX3ZlcmJvc2UgKCk7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2lzX3dheWxhbmRfY29t cG9zaXRvciIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGlzX3dheWxhbmRfY29tcG9zaXRvciAo KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0g Im1ldGFfbGF0ZXJfYWRkIildCistCQlwdWJsaWMgc3RhdGljIHVpbnQgbGF0ZXJfYWRkIChNZXRh LkxhdGVyVHlwZSB3aGVuLCBvd25lZCBHTGliLlNvdXJjZUZ1bmMgZnVuYyk7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2xhdGVyX3Jl bW92ZSIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGxhdGVyX3JlbW92ZSAodWludCBsYXRlcl9p ZCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9 ICJtZXRhX3BvcF9ub19tc2dfcHJlZml4IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgcG9wX25v X21zZ19wcmVmaXggKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGls LmgiLCBjbmFtZSA9ICJtZXRhX3B1c2hfbm9fbXNnX3ByZWZpeCIpXQorLQkJcHVibGljIHN0YXRp YyB2b2lkIHB1c2hfbm9fbXNnX3ByZWZpeCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfcmVjdCIpXQorLQkJcHVibGljIHN0YXRp YyBNZXRhLlJlY3RhbmdsZT8gcmVjdCAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWln aHQpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUg PSAibWV0YV9yZW1vdmVfdmVyYm9zZV90b3BpYyIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHJl bW92ZV92ZXJib3NlX3RvcGljIChNZXRhLkRlYnVnVG9waWMgdG9waWMpOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9zaG93X2RpYWxv ZyIpXQorLQkJcHVibGljIHN0YXRpYyBHTGliLlBpZCBzaG93X2RpYWxvZyAoc3RyaW5nIHR5cGUs IHN0cmluZyBtZXNzYWdlLCBzdHJpbmcgdGltZW91dCwgc3RyaW5nIGRpc3BsYXksIHN0cmluZyBv a190ZXh0LCBzdHJpbmcgY2FuY2VsX3RleHQsIHN0cmluZyBpY29uX25hbWUsIGludCB0cmFuc2ll bnRfZm9yLCBHTGliLlNMaXN0PHZvaWQqPiBjb2x1bW5zLCBHTGliLlNMaXN0PHZvaWQqPiBlbnRy aWVzKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1l ID0gIm1ldGFfdW5zaWduZWRfbG9uZ19lcXVhbCIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgdW5z aWduZWRfbG9uZ19lcXVhbCAodm9pZCogdjEsIHZvaWQqIHYyKTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfdW5zaWduZWRfbG9uZ19o YXNoIildCistCQlwdWJsaWMgc3RhdGljIHVpbnQgdW5zaWduZWRfbG9uZ19oYXNoICh2b2lkKiB2 KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0g Im1ldGFfeDExX2Vycm9yX3RyYXBfcG9wIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgeDExX2Vy cm9yX3RyYXBfcG9wIChNZXRhLlgxMURpc3BsYXkgeDExX2Rpc3BsYXkpOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV94MTFfZXJyb3Jf dHJhcF9wb3Bfd2l0aF9yZXR1cm4iKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IHgxMV9lcnJvcl90 cmFwX3BvcF93aXRoX3JldHVybiAoTWV0YS5YMTFEaXNwbGF5IHgxMV9kaXNwbGF5KTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfeDEx X2Vycm9yX3RyYXBfcHVzaCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHgxMV9lcnJvcl90cmFw X3B1c2ggKE1ldGEuWDExRGlzcGxheSB4MTFfZGlzcGxheSk7CistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZW5kLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFj a2VuZF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgQmFja2VuZCA6IEdM aWIuT2JqZWN0LCBHTGliLkluaXRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBCYWNrZW5kICgpOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZW5kLmgiLCBjbmFtZSA9ICJtZXRhX2dldF9i YWNrZW5kIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5CYWNrZW5kIGdldF9iYWNr ZW5kICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5EbmQgZ2V0X2RuZCAoKTsKKy0JCXB1Ymxp YyB1bm93bmVkIE1ldGEuUmVtb3RlQWNjZXNzQ29udHJvbGxlciBnZXRfcmVtb3RlX2FjY2Vzc19j b250cm9sbGVyICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfc3RhZ2Ug KCk7CistCQlwdWJsaWMgdm9pZCBsb2NrX2xheW91dF9ncm91cCAodWludCBpZHgpOworLQkJcHVi bGljIHZvaWQgc2V0X2tleW1hcCAoc3RyaW5nIGxheW91dHMsIHN0cmluZyB2YXJpYW50cywgc3Ry aW5nIG9wdGlvbnMpOworLQkJcHVibGljIHZvaWQgc2V0X251bWxvY2sgKGJvb2wgbnVtbG9ja19z dGF0ZSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQga2V5bWFwX2NoYW5nZWQgKCk7CistCQlwdWJs aWMgc2lnbmFsIHZvaWQga2V5bWFwX2xheW91dF9ncm91cF9jaGFuZ2VkICh1aW50IG9iamVjdCk7 CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbGFzdF9kZXZpY2VfY2hhbmdlZCAoaW50IG9iamVjdCk7 CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbGlkX2lzX2Nsb3NlZF9jaGFuZ2VkIChib29sIG9iamVj dCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3Jv dW5kLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9nZXRfdHlwZSAoKSIpXQorLQlwdWJs aWMgY2xhc3MgQmFja2dyb3VuZCA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXB1YmxpYyBCYWNrZ3JvdW5kIChNZXRhLkRpc3Bs YXkgZGlzcGxheSk7CistCQlwdWJsaWMgc3RhdGljIHZvaWQgcmVmcmVzaF9hbGwgKCk7CistCQlw dWJsaWMgdm9pZCBzZXRfYmxlbmQgKEdMaWIuRmlsZSBmaWxlMSwgR0xpYi5GaWxlIGZpbGUyLCBk b3VibGUgYmxlbmRfZmFjdG9yLCBHRGVza3RvcC5CYWNrZ3JvdW5kU3R5bGUgc3R5bGUpOworLQkJ cHVibGljIHZvaWQgc2V0X2NvbG9yIChDbHV0dGVyLkNvbG9yIGNvbG9yKTsKKy0JCXB1YmxpYyB2 b2lkIHNldF9maWxlIChHTGliLkZpbGUgZmlsZSwgR0Rlc2t0b3AuQmFja2dyb3VuZFN0eWxlIHN0 eWxlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9ncmFkaWVudCAoR0Rlc2t0b3AuQmFja2dyb3VuZFNo YWRpbmcgc2hhZGluZ19kaXJlY3Rpb24sIENsdXR0ZXIuQ29sb3IgY29sb3IsIENsdXR0ZXIuQ29s b3Igc2Vjb25kX2NvbG9yKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEu RGlzcGxheSBtZXRhX2Rpc3BsYXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGlj IHNpZ25hbCB2b2lkIGNoYW5nZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dy b3VuZF9hY3Rvcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgQmFja2dyb3VuZEFjdG9y IDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENs dXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJcHVi bGljIEJhY2tncm91bmRBY3RvciAoTWV0YS5EaXNwbGF5IGRpc3BsYXksIGludCBtb25pdG9yKTsK Ky0JCXB1YmxpYyB2b2lkIHNldF9iYWNrZ3JvdW5kIChNZXRhLkJhY2tncm91bmQgYmFja2dyb3Vu ZCk7CistCQlwdWJsaWMgdm9pZCBzZXRfZ3JhZGllbnQgKGJvb2wgZW5hYmxlZCwgaW50IGhlaWdo dCwgZG91YmxlIHRvbmVfc3RhcnQpOworLQkJcHVibGljIHZvaWQgc2V0X21vbml0b3IgKGludCBt b25pdG9yKTsKKy0JCXB1YmxpYyB2b2lkIHNldF92aWduZXR0ZSAoYm9vbCBlbmFibGVkLCBkb3Vi bGUgYnJpZ2h0bmVzcywgZG91YmxlIHNoYXJwbmVzcyk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0K Ky0JCXB1YmxpYyBNZXRhLkJhY2tncm91bmQgYmFja2dyb3VuZCB7IG93bmVkIGdldDsgc2V0OyB9 CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBkb3VibGUgYnJpZ2h0bmVzcyB7IGdl dDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGdyYWRpZW50 IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCBncmFk aWVudF9oZWlnaHQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJs aWMgZG91YmxlIGdyYWRpZW50X21heF9kYXJrbmVzcyB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLkRpc3BsYXkgbWV0YV9kaXNwbGF5IHsgb3duZWQg Z2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCBt b25pdG9yIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVi bGljIGJvb2wgdmlnbmV0dGUgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCist CQlwdWJsaWMgZG91YmxlIHZpZ25ldHRlX3NoYXJwbmVzcyB7IGdldDsgc2V0OyB9CistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgi LCB0eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9ncm91cF9nZXRfdHlwZSAoKSIpXQorLQlwdWJs aWMgY2xhc3MgQmFja2dyb3VuZEdyb3VwIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9y LCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFi bGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAi Q2x1dHRlckFjdG9yKiIpXQorLQkJcHVibGljIEJhY2tncm91bmRHcm91cCAoKTsKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCIs IHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2ltYWdlX2dldF90eXBlICgpIildCistCXB1Ymxp YyBjbGFzcyBCYWNrZ3JvdW5kSW1hZ2UgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgQmFja2dyb3VuZEltYWdl ICgpOworLQkJcHVibGljIGJvb2wgZ2V0X3N1Y2Nlc3MgKCk7CistCQlwdWJsaWMgdW5vd25lZCBD b2dsLlRleHR1cmUgZ2V0X3RleHR1cmUgKCk7CistCQlwdWJsaWMgYm9vbCBpc19sb2FkZWQgKCk7 CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbG9hZGVkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oIiwgdHlwZV9pZCA9ICJt ZXRhX2JhY2tncm91bmRfaW1hZ2VfY2FjaGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNz IEJhY2tncm91bmRJbWFnZUNhY2hlIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIEJhY2tncm91bmRJbWFnZUNh Y2hlICgpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuQmFja2dyb3VuZEltYWdlQ2Fj aGUgZ2V0X2RlZmF1bHQgKCk7CistCQlwdWJsaWMgTWV0YS5CYWNrZ3JvdW5kSW1hZ2UgbG9hZCAo R0xpYi5GaWxlIGZpbGUpOworLQkJcHVibGljIHZvaWQgcHVyZ2UgKEdMaWIuRmlsZSBmaWxlKTsK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9i b3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11 dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0 YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21l dGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMu aCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRp YWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFn ZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxl ci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEv bWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEt c3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lv bi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0 YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEv bWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1l dGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dv cmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhcnJpZXJfZ2V0X3R5cGUgKCkiKV0KKy0JcHVi bGljIGNsYXNzIEJhcnJpZXIgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgQmFycmllciAoKTsKKy0JCXB1Ymxp YyB2b2lkIGRlc3Ryb3kgKCk7CistCQlwdWJsaWMgYm9vbCBpc19hY3RpdmUgKCk7CistCQlwdWJs aWMgdm9pZCByZWxlYXNlIChNZXRhLkJhcnJpZXJFdmVudCBldmVudCk7CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLkJhcnJpZXJEaXJlY3Rpb24gZGlyZWN0aW9ucyB7IGdl dDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLkRp c3BsYXkgZGlzcGxheSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKy0JCXB1YmxpYyBpbnQgeDEgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNz b3JNZXRob2RdCistCQlwdWJsaWMgaW50IHgyIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0Fj Y2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCB5MSB7IGdldDsgY29uc3RydWN0OyB9CistCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgeTIgeyBnZXQ7IGNvbnN0cnVjdDsgfQor LQkJcHVibGljIHNpZ25hbCB2b2lkIGhpdCAoTWV0YS5CYXJyaWVyRXZlbnQgZXZlbnQpOworLQkJ cHVibGljIHNpZ25hbCB2b2lkIGxlZnQgKE1ldGEuQmFycmllckV2ZW50IGV2ZW50KTsKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgiLCBjb3B5X2Z1bmN0 aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlw ZV9pZCA9ICJtZXRhX2JhcnJpZXJfZXZlbnRfZ2V0X3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCist CXB1YmxpYyBjbGFzcyBCYXJyaWVyRXZlbnQgeworLQkJcHVibGljIGludCBkdDsKKy0JCXB1Ymxp YyBkb3VibGUgZHg7CistCQlwdWJsaWMgZG91YmxlIGR5OworLQkJcHVibGljIGludCBldmVudF9p ZDsKKy0JCXB1YmxpYyBib29sIGdyYWJiZWQ7CistCQlwdWJsaWMgYm9vbCByZWxlYXNlZDsKKy0J CXB1YmxpYyB1aW50MzIgdGltZTsKKy0JCXB1YmxpYyBkb3VibGUgeDsKKy0JCXB1YmxpYyBkb3Vi bGUgeTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgs bWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3Np dG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdz LmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1h Y3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxt ZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0t dHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRj dXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9y LW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29u dHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5o LG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRh L21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEt dmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3Vw LmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5o LG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVm cy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxt ZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX2N1cnNvcl90cmFja2VyX2dldF90eXBl ICgpIildCistCXB1YmxpYyBjbGFzcyBDdXJzb3JUcmFja2VyIDogR0xpYi5PYmplY3QgeworLQkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIEN1 cnNvclRyYWNrZXIgKCk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5DdXJzb3JUcmFj a2VyIGdldF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJcHVibGljIHZv aWQgZ2V0X2hvdCAob3V0IGludCB4LCBvdXQgaW50IHkpOworLQkJcHVibGljIHZvaWQgZ2V0X3Bv aW50ZXIgKGludCB4LCBpbnQgeSwgQ2x1dHRlci5Nb2RpZmllclR5cGUgbW9kcyk7CistCQlwdWJs aWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X3Nwcml0ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHNl dF9wb2ludGVyX3Zpc2libGUgKGJvb2wgdmlzaWJsZSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQg Y3Vyc29yX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29yX21vdmVkIChm bG9hdCBvYmplY3QsIGZsb2F0IHAwKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9kaXNwbGF5LmgiLCB0eXBlX2lkID0gIm1ldGFfZGlzcGxheV9nZXRfdHlwZSAoKSIp XQorLQlwdWJsaWMgY2xhc3MgRGlzcGxheSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBEaXNwbGF5ICgpOwor LQkJcHVibGljIHZvaWQgYWRkX2lnbm9yZWRfY3Jvc3Npbmdfc2VyaWFsICh1bG9uZyBzZXJpYWwp OworLQkJcHVibGljIHVpbnQgYWRkX2tleWJpbmRpbmcgKHN0cmluZyBuYW1lLCBHTGliLlNldHRp bmdzIHNldHRpbmdzLCBNZXRhLktleUJpbmRpbmdGbGFncyBmbGFncywgb3duZWQgTWV0YS5LZXlI YW5kbGVyRnVuYyBoYW5kbGVyKTsKKy0JCXB1YmxpYyBib29sIGJlZ2luX2dyYWJfb3AgKE1ldGEu V2luZG93IHdpbmRvdywgTWV0YS5HcmFiT3Agb3AsIGJvb2wgcG9pbnRlcl9hbHJlYWR5X2dyYWJi ZWQsIGJvb2wgZnJhbWVfYWN0aW9uLCBpbnQgYnV0dG9uLCB1bG9uZyBtb2RtYXNrLCB1aW50MzIg dGltZXN0YW1wLCBpbnQgcm9vdF94LCBpbnQgcm9vdF95KTsKKy0JCXB1YmxpYyB2b2lkIGNsZWFy X21vdXNlX21vZGUgKCk7CistCQlwdWJsaWMgdm9pZCBjbG9zZSAodWludDMyIHRpbWVzdGFtcCk7 CistCQlwdWJsaWMgdm9pZCBlbmRfZ3JhYl9vcCAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJs aWMgdm9pZCBmb2N1c19kZWZhdWx0X3dpbmRvdyAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJs aWMgdm9pZCBmcmVlemVfa2V5Ym9hcmQgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIGlu dCBnZXRfY3VycmVudF9tb25pdG9yICgpOworLQkJcHVibGljIHVpbnQzMiBnZXRfY3VycmVudF90 aW1lICgpOworLQkJcHVibGljIHVpbnQzMiBnZXRfY3VycmVudF90aW1lX3JvdW5kdHJpcCAoKTsK Ky0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGdldF9mb2N1c193aW5kb3cgKCk7CistCQlw dWJsaWMgTWV0YS5HcmFiT3AgZ2V0X2dyYWJfb3AgKCk7CistCQlwdWJsaWMgdWludCBnZXRfa2V5 YmluZGluZ19hY3Rpb24gKHVpbnQga2V5Y29kZSwgdWxvbmcgbWFzayk7CistCQlwdWJsaWMgdWlu dDMyIGdldF9sYXN0X3VzZXJfdGltZSAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRf bW9uaXRvcl9nZW9tZXRyeSAoaW50IG1vbml0b3IpOworLQkJcHVibGljIGJvb2wgZ2V0X21vbml0 b3JfaW5fZnVsbHNjcmVlbiAoaW50IG1vbml0b3IpOworLQkJcHVibGljIGludCBnZXRfbW9uaXRv cl9pbmRleF9mb3JfcmVjdCAoTWV0YS5SZWN0YW5nbGUgcmVjdCk7CistCQlwdWJsaWMgaW50IGdl dF9tb25pdG9yX25laWdoYm9yX2luZGV4IChpbnQgd2hpY2hfbW9uaXRvciwgTWV0YS5EaXNwbGF5 RGlyZWN0aW9uIGRpcik7CistCQlwdWJsaWMgaW50IGdldF9uX21vbml0b3JzICgpOworLQkJcHVi bGljIHN0cmluZyBnZXRfcGFkX2FjdGlvbl9sYWJlbCAoQ2x1dHRlci5JbnB1dERldmljZSBwYWQs IE1ldGEuUGFkQWN0aW9uVHlwZSBhY3Rpb25fdHlwZSwgdWludCBhY3Rpb25fbnVtYmVyKTsKKy0J CXB1YmxpYyBpbnQgZ2V0X3ByaW1hcnlfbW9uaXRvciAoKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9z aXplIChvdXQgaW50IHdpZHRoLCBvdXQgaW50IGhlaWdodCk7CistCQlwdWJsaWMgdW5vd25lZCBN ZXRhLlNvdW5kUGxheWVyIGdldF9zb3VuZF9wbGF5ZXIgKCk7CistCQlwdWJsaWMgdW5vd25lZCBN ZXRhLldpbmRvdyBnZXRfdGFiX2N1cnJlbnQgKE1ldGEuVGFiTGlzdCB0eXBlLCBNZXRhLldvcmtz cGFjZSB3b3Jrc3BhY2UpOworLQkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIE1ldGEuV2luZG93PiBn ZXRfdGFiX2xpc3QgKE1ldGEuVGFiTGlzdCB0eXBlLCBNZXRhLldvcmtzcGFjZT8gd29ya3NwYWNl KTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGdldF90YWJfbmV4dCAoTWV0YS5UYWJM aXN0IHR5cGUsIE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSwgTWV0YS5XaW5kb3c/IHdpbmRvdywg Ym9vbCBiYWNrd2FyZCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZU1hbmFnZXIg Z2V0X3dvcmtzcGFjZV9tYW5hZ2VyICgpOworLQkJcHVibGljIHVpbnQgZ3JhYl9hY2NlbGVyYXRv ciAoc3RyaW5nIGFjY2VsZXJhdG9yLCBNZXRhLktleUJpbmRpbmdGbGFncyBmbGFncyk7CistCQlw dWJsaWMgYm9vbCBpc19wb2ludGVyX2VtdWxhdGluZ19zZXF1ZW5jZSAoQ2x1dHRlci5FdmVudFNl cXVlbmNlPyBzZXF1ZW5jZSk7CistCQlwdWJsaWMgYm9vbCByZW1vdmVfa2V5YmluZGluZyAoc3Ry aW5nIG5hbWUpOworLQkJcHVibGljIHZvaWQgcmVxdWVzdF9wYWRfb3NkIChDbHV0dGVyLklucHV0 RGV2aWNlIHBhZCwgYm9vbCBlZGl0aW9uX21vZGUpOworLQkJcHVibGljIHZvaWQgc2V0X2N1cnNv ciAoTWV0YS5DdXJzb3IgY3Vyc29yKTsKKy0JCXB1YmxpYyBHTGliLlNMaXN0PHdlYWsgTWV0YS5X aW5kb3c+IHNvcnRfd2luZG93c19ieV9zdGFja2luZyAoR0xpYi5TTGlzdDxNZXRhLldpbmRvdz4g d2luZG93cyk7CistCQlwdWJsaWMgYm9vbCBzdXBwb3J0c19leHRlbmRlZF9iYXJyaWVycyAoKTsK Ky0JCXB1YmxpYyB2b2lkIHVuZnJlZXplX2tleWJvYXJkICh1aW50MzIgdGltZXN0YW1wKTsKKy0J CXB1YmxpYyBib29sIHVuZ3JhYl9hY2NlbGVyYXRvciAodWludCBhY3Rpb25faWQpOworLQkJcHVi bGljIHZvaWQgdW5ncmFiX2tleWJvYXJkICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyBi b29sIHhzZXJ2ZXJfdGltZV9pc19iZWZvcmUgKHVpbnQzMiB0aW1lMSwgdWludDMyIHRpbWUyKTsK Ky0JCXB1YmxpYyBNZXRhLldpbmRvdyBmb2N1c193aW5kb3cgeyBnZXQ7IH0KKy0JCXB1YmxpYyBz aWduYWwgdm9pZCBhY2NlbGVyYXRvcl9hY3RpdmF0ZWQgKHVpbnQgb2JqZWN0LCB1aW50IHAwLCB1 aW50IHAxKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfdXBkYXRlZCAoKTsKKy0JCXB1 YmxpYyBzaWduYWwgdm9pZCBnbF92aWRlb19tZW1vcnlfcHVyZ2VkICgpOworLQkJcHVibGljIHNp Z25hbCB2b2lkIGdyYWJfb3BfYmVnaW4gKE1ldGEuRGlzcGxheSBvYmplY3QsIE1ldGEuV2luZG93 IHAwLCBNZXRhLkdyYWJPcCBwMSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZ3JhYl9vcF9lbmQg KE1ldGEuRGlzcGxheSBvYmplY3QsIE1ldGEuV2luZG93IHAwLCBNZXRhLkdyYWJPcCBwMSk7Cist CQlwdWJsaWMgc2lnbmFsIHZvaWQgaW5fZnVsbHNjcmVlbl9jaGFuZ2VkICgpOworLQkJcHVibGlj IHNpZ25hbCBib29sIG1vZGlmaWVyc19hY2NlbGVyYXRvcl9hY3RpdmF0ZWQgKCk7CistCQlwdWJs aWMgc2lnbmFsIHZvaWQgb3ZlcmxheV9rZXkgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcGFk X21vZGVfc3dpdGNoIChDbHV0dGVyLklucHV0RGV2aWNlIG9iamVjdCwgdWludCBwMCwgdWludCBw MSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcmVzdGFja2VkICgpOworLQkJcHVibGljIHNpZ25h bCBib29sIHJlc3RhcnQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2hvd19vc2QgKGludCBv YmplY3QsIHN0cmluZyBwMCwgc3RyaW5nIHAxKTsKKy0JCXB1YmxpYyBzaWduYWwgdW5vd25lZCBD bHV0dGVyLkFjdG9yPyBzaG93X3BhZF9vc2QgKENsdXR0ZXIuSW5wdXREZXZpY2UgcGFkLCBHTGli LlNldHRpbmdzIHNldHRpbmdzLCBzdHJpbmcgbGF5b3V0X3BhdGgsIGJvb2wgZWRpdGlvbl9tb2Rl LCBpbnQgbW9uaXRvcl9pZHgpOworLQkJcHVibGljIHNpZ25hbCBib29sIHNob3dfcmVzaXplX3Bv cHVwIChib29sIG9iamVjdCwgTWV0YS5SZWN0YW5nbGUgcDAsIGludCBwMSwgaW50IHAyKTsKKy0J CXB1YmxpYyBzaWduYWwgYm9vbCBzaG93X3Jlc3RhcnRfbWVzc2FnZSAoc3RyaW5nPyBtZXNzYWdl KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBzaG93aW5nX2Rlc2t0b3BfY2hhbmdlZCAoKTsKKy0J CXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfY3JlYXRlZCAoTWV0YS5XaW5kb3cgb2JqZWN0KTsK Ky0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfZGVtYW5kc19hdHRlbnRpb24gKE1ldGEuV2lu ZG93IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X2VudGVyZWRfbW9uaXRv ciAoaW50IG9iamVjdCwgTWV0YS5XaW5kb3cgcDApOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdp bmRvd19sZWZ0X21vbml0b3IgKGludCBvYmplY3QsIE1ldGEuV2luZG93IHAwKTsKKy0JCXB1Ymxp YyBzaWduYWwgdm9pZCB3aW5kb3dfbWFya2VkX3VyZ2VudCAoTWV0YS5XaW5kb3cgb2JqZWN0KTsK Ky0JCXB1YmxpYyBzaWduYWwgdm9pZCB3b3JrYXJlYXNfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBz aWduYWwgdm9pZCB4MTFfZGlzcGxheV9jbG9zaW5nICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lk IHgxMV9kaXNwbGF5X29wZW5lZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3Np dG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAu aCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0 YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5k LmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9t ZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5o LG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRh LXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0 YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1z b3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmlj YXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRh L21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13 b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEt ZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGls LmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX2RuZF9n ZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgRG5kIDogR0xpYi5PYmplY3QgeworLQkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIERuZCAo KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBkbmRfZW50ZXIgKCk7CistCQlwdWJsaWMgc2lnbmFs IHZvaWQgZG5kX2xlYXZlICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGRuZF9wb3NpdGlvbl9j aGFuZ2UgKGludCBvYmplY3QsIGludCBwMCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29t cG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dy b3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRh L21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRh LWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1l dGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRl eHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEv bWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRh L21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21l dGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90 aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgs bWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21l dGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEt eDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEv dXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGhhc190eXBlX2lkID0gZmFs c2UpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIEZyYW1lIHsKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29t bW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlz cGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9t ZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNr ZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRs ZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0 YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEt cGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1z ZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4 dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21l dGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13 aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1z aGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxh eS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRh L3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlw ZV9pZCA9ICJtZXRhX2lkbGVfbW9uaXRvcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3Mg SWRsZU1vbml0b3IgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVu Y3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgSWRsZU1vbml0b3IgKCk7CistCQlwdWJsaWMg dWludCBhZGRfaWRsZV93YXRjaCAodWludDY0IGludGVydmFsX21zZWMsIG93bmVkIE1ldGEuSWRs ZU1vbml0b3JXYXRjaEZ1bmM/IGNhbGxiYWNrKTsKKy0JCXB1YmxpYyB1aW50IGFkZF91c2VyX2Fj dGl2ZV93YXRjaCAob3duZWQgTWV0YS5JZGxlTW9uaXRvcldhdGNoRnVuYz8gY2FsbGJhY2spOwor LQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuSWRsZU1vbml0b3IgZ2V0X2NvcmUgKCk7Cist CQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5JZGxlTW9uaXRvciBnZXRfZm9yX2RldmljZSAo aW50IGRldmljZV9pZCk7CistCQlwdWJsaWMgaW50NjQgZ2V0X2lkbGV0aW1lICgpOworLQkJcHVi bGljIHZvaWQgcmVtb3ZlX3dhdGNoICh1aW50IGlkKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQor LQkJcHVibGljIGludCBkZXZpY2VfaWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9j b21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9k aXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRh L21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJh Y2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1p ZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9t ZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0 YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRh LXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10 ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEv bWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRh LXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93 LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNw bGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1l dGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBj b3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9m cmVlIiwgdHlwZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5nX2dldF90eXBlICgpIildCistCVtDb21w YWN0XQorLQlwdWJsaWMgY2xhc3MgS2V5QmluZGluZyB7CistCQlwdWJsaWMgdWludCBnZXRfbWFz ayAoKTsKKy0JCXB1YmxpYyBNZXRhLlZpcnR1YWxNb2RpZmllciBnZXRfbW9kaWZpZXJzICgpOwor LQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9uYW1lICgpOworLQkJcHVibGljIGJvb2wgaXNf YnVpbHRpbiAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3JldmVyc2VkICgpOworLQkJW0NDb2RlIChj bmFtZSA9ICJtZXRhX2tleWJpbmRpbmdzX3NldF9jdXN0b21faGFuZGxlciIpXQorLQkJcHVibGlj IHN0YXRpYyBib29sIHNldF9jdXN0b21faGFuZGxlciAoc3RyaW5nIG5hbWUsIG93bmVkIE1ldGEu S2V5SGFuZGxlckZ1bmM/IGhhbmRsZXIpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBv c2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91 cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9t ZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1k bmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRh L21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0 LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21l dGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9t ZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRh LXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlm aWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1l dGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRh LXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgx MS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0 aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfbGF1 bmNoX2NvbnRleHRfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIExhdW5jaENvbnRleHQg OiBHTGliLkFwcExhdW5jaENvbnRleHQgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIExhdW5jaENvbnRleHQgKCk7CistCQlwdWJsaWMg dm9pZCBzZXRfdGltZXN0YW1wICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIHNl dF93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSk7CistCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKy0JCXB1YmxpYyBNZXRhLkRpc3BsYXkgZGlzcGxheSB7IG93bmVkIGdldDsgY29uc3Ry dWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB1aW50IHRpbWVzdGFtcCB7 IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLldvcmtz cGFjZSB3b3Jrc3BhY2UgeyBvd25lZCBnZXQ7IHNldDsgfQorLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgiLCB0eXBlX2lkID0gIm1l dGFfbW9uaXRvcl9tYW5hZ2VyX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBNb25pdG9y TWFuYWdlciA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBNb25pdG9yTWFuYWdlciAoKTsKKy0JCXB1YmxpYyBi b29sIGNhbl9zd2l0Y2hfY29uZmlnICgpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEu TW9uaXRvck1hbmFnZXIgQGdldCAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgaW50IGdldF9kaXNwbGF5 X2NvbmZpZ3VyYXRpb25fdGltZW91dCAoKTsKKy0JCXB1YmxpYyBib29sIGdldF9pc19idWlsdGlu X2Rpc3BsYXlfb24gKCk7CistCQlwdWJsaWMgaW50IGdldF9tb25pdG9yX2Zvcl9jb25uZWN0b3Ig KHN0cmluZyBjb25uZWN0b3IpOworLQkJcHVibGljIE1ldGEuTW9uaXRvclN3aXRjaENvbmZpZ1R5 cGUgZ2V0X3N3aXRjaF9jb25maWcgKCk7CistCQlwdWJsaWMgdm9pZCBzd2l0Y2hfY29uZmlnIChN ZXRhLk1vbml0b3JTd2l0Y2hDb25maWdUeXBlIGNvbmZpZ190eXBlKTsKKy0JCVtOb0FjY2Vzc29y TWV0aG9kXQorLQkJcHVibGljIE1ldGEuQmFja2VuZCBiYWNrZW5kIHsgb3duZWQgZ2V0OyBjb25z dHJ1Y3Q7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBjb25maXJtX2Rpc3BsYXlfY2hhbmdlICgp OworLQkJcHVibGljIHNpZ25hbCB2b2lkIG1vbml0b3JzX2NoYW5nZWQgKCk7CistCQlwdWJsaWMg c2lnbmFsIHZvaWQgbW9uaXRvcnNfY2hhbmdlZF9pbnRlcm5hbCAoKTsKKy0JCXB1YmxpYyBzaWdu YWwgdm9pZCBwb3dlcl9zYXZlX21vZGVfY2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXBsdWdpbi5oIiwgdHlwZV9pZCA9ICJtZXRhX3BsdWdp bl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgUGx1Z2luIDogR0xpYi5P YmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJ cHJvdGVjdGVkIFBsdWdpbiAoKTsKKy0JCXB1YmxpYyBib29sIGJlZ2luX21vZGFsIChNZXRhLk1v ZGFsT3B0aW9ucyBvcHRpb25zLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIGNv bXBsZXRlX2Rpc3BsYXlfY2hhbmdlIChib29sIG9rKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJs aWMgdmlydHVhbCB2b2lkIGNvbmZpcm1fZGlzcGxheV9jaGFuZ2UgKCk7CistCQlbTm9XcmFwcGVy XQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBkZXN0cm95IChNZXRhLldpbmRvd0FjdG9yIGFjdG9y KTsKKy0JCXB1YmxpYyB2b2lkIGRlc3Ryb3lfY29tcGxldGVkIChNZXRhLldpbmRvd0FjdG9yIGFj dG9yKTsKKy0JCXB1YmxpYyB2b2lkIGVuZF9tb2RhbCAodWludDMyIHRpbWVzdGFtcCk7CistCQlw dWJsaWMgdW5vd25lZCBNZXRhLkRpc3BsYXkgZ2V0X2Rpc3BsYXkgKCk7CistCQlwdWJsaWMgdW5v d25lZCBNZXRhLlBsdWdpbkluZm8/IGdldF9pbmZvICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1 YmxpYyB2aXJ0dWFsIHZvaWQgaGlkZV90aWxlX3ByZXZpZXcgKCk7CistCQlbTm9XcmFwcGVyXQor LQkJcHVibGljIHZpcnR1YWwgYm9vbCBrZXliaW5kaW5nX2ZpbHRlciAoTWV0YS5LZXlCaW5kaW5n IGJpbmRpbmcpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQga2lsbF9z d2l0Y2hfd29ya3NwYWNlICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZv aWQga2lsbF93aW5kb3dfZWZmZWN0cyAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlwdWJs aWMgc3RhdGljIHZvaWQgbWFuYWdlcl9zZXRfcGx1Z2luX3R5cGUgKEdMaWIuVHlwZSBndHlwZSk7 CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBtYXAgKE1ldGEuV2luZG93 QWN0b3IgYWN0b3IpOworLQkJcHVibGljIHZvaWQgbWFwX2NvbXBsZXRlZCAoTWV0YS5XaW5kb3dB Y3RvciBhY3Rvcik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBtaW5p bWl6ZSAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCBtaW5pbWl6ZV9j b21wbGV0ZWQgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1 YmxpYyB2aXJ0dWFsIHVub3duZWQgTWV0YS5QbHVnaW5JbmZvPyBwbHVnaW5faW5mbyAoKTsKKy0J CVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNob3dfdGlsZV9wcmV2aWV3IChN ZXRhLldpbmRvdyB3aW5kb3csIE1ldGEuUmVjdGFuZ2xlIHRpbGVfcmVjdCwgaW50IHRpbGVfbW9u aXRvcl9udW1iZXIpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2hv d193aW5kb3dfbWVudSAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLldpbmRvd01lbnVUeXBlIG1l bnUsIGludCB4LCBpbnQgeSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9p ZCBzaG93X3dpbmRvd19tZW51X2Zvcl9yZWN0IChNZXRhLldpbmRvdyB3aW5kb3csIE1ldGEuV2lu ZG93TWVudVR5cGUgbWVudSwgTWV0YS5SZWN0YW5nbGUgcmVjdCk7CistCQlbTm9XcmFwcGVyXQor LQkJcHVibGljIHZpcnR1YWwgdm9pZCBzaXplX2NoYW5nZSAoTWV0YS5XaW5kb3dBY3RvciBhY3Rv ciwgTWV0YS5TaXplQ2hhbmdlIHdoaWNoX2NoYW5nZSwgTWV0YS5SZWN0YW5nbGUgb2xkX2ZyYW1l X3JlY3QsIE1ldGEuUmVjdGFuZ2xlIG9sZF9idWZmZXJfcmVjdCk7CistCQlwdWJsaWMgdm9pZCBz aXplX2NoYW5nZV9jb21wbGV0ZWQgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJW05vV3Jh cHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2l6ZV9jaGFuZ2VkIChNZXRhLldpbmRvd0Fj dG9yIGFjdG9yKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHN0YXJ0 ICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc3dpdGNoX3dvcmtz cGFjZSAoaW50IGZyb20sIGludCB0bywgTWV0YS5Nb3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uKTsK Ky0JCXB1YmxpYyB2b2lkIHN3aXRjaF93b3Jrc3BhY2VfY29tcGxldGVkICgpOworLQkJW05vV3Jh cHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgdW5taW5pbWl6ZSAoTWV0YS5XaW5kb3dBY3Rv ciBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCB1bm1pbmltaXplX2NvbXBsZXRlZCAoTWV0YS5XaW5k b3dBY3RvciBhY3Rvcik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgYm9vbCB4 ZXZlbnRfZmlsdGVyIChYLkV2ZW50IGV2ZW50KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9j b21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEv Z3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3Vw LmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1l dGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21l dGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgs bWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29u dGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0 YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1l dGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEv bWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1u b3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3Iu aCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEv bWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0 YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0 YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRh X3JlbW90ZV9hY2Nlc3NfY29udHJvbGxlcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3Mg UmVtb3RlQWNjZXNzQ29udHJvbGxlciA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBSZW1vdGVBY2Nlc3NDb250 cm9sbGVyICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIG5ld19oYW5kbGUgKE1ldGEuUmVtb3Rl QWNjZXNzSGFuZGxlIG9iamVjdCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRv ci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgs bWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEt Y2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5o LG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0 YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxt ZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1y ZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEt c2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291 bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0 aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9t ZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29y a3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVy cm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5o LG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV9yZW1vdGVf YWNjZXNzX2hhbmRsZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgUmVtb3RlQWNjZXNz SGFuZGxlIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFJlbW90ZUFjY2Vzc0hhbmRsZSAoKTsKKy0JCXB1Ymxp YyB2aXJ0dWFsIHZvaWQgc3RvcCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBzdG9wcGVkICgp OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRh L2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxt ZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9y LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEv bWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBl cy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMt ZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFu YWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9s bGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0 YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0 YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJz aW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxt ZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgs bWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEv d29ya3NwYWNlLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0NvbXBhY3RdCistCXB1Ymxp YyBjbGFzcyBTZXR0aW5ncyB7CistCQlwdWJsaWMgaW50IGdldF9mb250X2RwaSAoKTsKKy0JCXB1 YmxpYyBpbnQgZ2V0X3VpX3NjYWxpbmdfZmFjdG9yICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxt ZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5Lmgs bWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFj a2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt Z3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdl LmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1l dGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0 b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5j aC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4u aCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdz LmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgs bWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFy dHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1h Y3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgs bWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0 YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMu aCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCByZWZfZnVuY3Rp b24gPSAibWV0YV9zaGFkb3dfcmVmIiwgdHlwZV9pZCA9ICJtZXRhX3NoYWRvd19nZXRfdHlwZSAo KSIsIHVucmVmX2Z1bmN0aW9uID0gIm1ldGFfc2hhZG93X3VucmVmIildCistCVtDb21wYWN0XQor LQlwdWJsaWMgY2xhc3MgU2hhZG93IHsKKy0JCXB1YmxpYyB2b2lkIGdldF9ib3VuZHMgKGludCB3 aW5kb3dfeCwgaW50IHdpbmRvd195LCBpbnQgd2luZG93X3dpZHRoLCBpbnQgd2luZG93X2hlaWdo dCwgQ2Fpcm8uUmVjdGFuZ2xlSW50IGJvdW5kcyk7CistCQlwdWJsaWMgdm9pZCBwYWludCAoQ29n bC5GcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlciwgaW50IHdpbmRvd194LCBpbnQgd2luZG93X3ksIGlu dCB3aW5kb3dfd2lkdGgsIGludCB3aW5kb3dfaGVpZ2h0LCB1aW50OCBvcGFjaXR5LCBDYWlyby5S ZWdpb24/IGNsaXAsIGJvb2wgY2xpcF9zdHJpY3RseSk7CistCQlwdWJsaWMgTWV0YS5TaGFkb3cg QHJlZiAoKTsKKy0JCXB1YmxpYyB2b2lkIHVucmVmICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxt ZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5Lmgs bWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFj a2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt Z3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdl LmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1l dGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0 b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5j aC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4u aCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdz LmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgs bWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFy dHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1h Y3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgs bWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0 YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMu aCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0g Im1ldGFfc2hhZG93X2ZhY3RvcnlfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFNoYWRv d0ZhY3RvcnkgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSldCistCQlwdWJsaWMgU2hhZG93RmFjdG9yeSAoKTsKKy0JCXB1YmxpYyBzdGF0 aWMgdW5vd25lZCBNZXRhLlNoYWRvd0ZhY3RvcnkgZ2V0X2RlZmF1bHQgKCk7CistCQlwdWJsaWMg TWV0YS5TaGFkb3dQYXJhbXMgZ2V0X3BhcmFtcyAoc3RyaW5nIGNsYXNzX25hbWUsIGJvb2wgZm9j dXNlZCk7CistCQlwdWJsaWMgTWV0YS5TaGFkb3cgZ2V0X3NoYWRvdyAoTWV0YS5XaW5kb3dTaGFw ZSBzaGFwZSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBzdHJpbmcgY2xhc3NfbmFtZSwgYm9vbCBm b2N1c2VkKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9wYXJhbXMgKHN0cmluZyBjbGFzc19uYW1lLCBi b29sIGZvY3VzZWQsIE1ldGEuU2hhZG93UGFyYW1zIEBwYXJhbXMpOworLQkJcHVibGljIHNpZ25h bCB2b2lkIGNoYW5nZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5o LG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0 YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xv c2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1l dGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1p bmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRh L21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1v dGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hh ZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQt cGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9u LmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRh LXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3Nw YWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9y cy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1l dGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV9zaGFwZWRfdGV4 dHVyZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgU2hhcGVkVGV4dHVyZSA6IENsdXR0 ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNv bnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9m dW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBTaGFwZWRUZXh0dXJlICgpOworLQkJcHVi bGljIENhaXJvLlN1cmZhY2UgZ2V0X2ltYWdlIChDYWlyby5SZWN0YW5nbGVJbnQgY2xpcCk7Cist CQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X3RleHR1cmUgKCk7CistCQlwdWJsaWMg dm9pZCBzZXRfY3JlYXRlX21pcG1hcHMgKGJvb2wgY3JlYXRlX21pcG1hcHMpOworLQkJcHVibGlj IHZvaWQgc2V0X21hc2tfdGV4dHVyZSAoQ29nbC5UZXh0dXJlIG1hc2tfdGV4dHVyZSk7CistCQlw dWJsaWMgdm9pZCBzZXRfb3BhcXVlX3JlZ2lvbiAob3duZWQgQ2Fpcm8uUmVnaW9uIG9wYXF1ZV9y ZWdpb24pOworLQkJcHVibGljIGJvb2wgdXBkYXRlX2FyZWEgKGludCB4LCBpbnQgeSwgaW50IHdp ZHRoLCBpbnQgaGVpZ2h0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBzaXplX2NoYW5nZWQgKCk7 CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEv Ym94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1t dXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1l dGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3Iu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9t ZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVz LmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1k aWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5h Z2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xs ZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRh L21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRh LXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNp b24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1l dGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRh L21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxt ZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93 b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV9zb3VuZF9wbGF5ZXJfZ2V0X3R5cGUgKCkiKV0K Ky0JcHVibGljIGNsYXNzIFNvdW5kUGxheWVyIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFNvdW5kUGxheWVy ICgpOworLQkJcHVibGljIHZvaWQgcGxheV9mcm9tX2ZpbGUgKEdMaWIuRmlsZSBmaWxlLCBzdHJp bmcgZGVzY3JpcHRpb24sIEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlID0gbnVsbCk7Cist CQlwdWJsaWMgdm9pZCBwbGF5X2Zyb21fdGhlbWUgKHN0cmluZyBuYW1lLCBzdHJpbmcgZGVzY3Jp cHRpb24sIEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlID0gbnVsbCk7CistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRh L2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRh L2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1l dGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10 cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRh LWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRh L21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21l dGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVk LXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0 YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21l dGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5k b3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRp c3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgs bWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIs IHR5cGVfaWQgPSAibWV0YV9zdGFnZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgU3Rh Z2UgOiBDbHV0dGVyLlN0YWdlLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwg Q2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgU3RhZ2UgKCk7CistCQlw dWJsaWMgc3RhdGljIGJvb2wgaXNfZm9jdXNlZCAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJ cHVibGljIHNpZ25hbCB2b2lkIGFjdG9yc19wYWludGVkICgpOworLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24u aCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5 LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEt YmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWlt YWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5o LG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1v bml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxh dW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVn aW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRp bmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJl LmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1z dGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRv dy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBl LmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5Lmgs bWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlw ZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lk ID0gIm1ldGFfc3RhcnR1cF9ub3RpZmljYXRpb25fZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNs YXNzIFN0YXJ0dXBOb3RpZmljYXRpb24gOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgU3RhcnR1cE5vdGlmaWNh dGlvbiAoKTsKKy0JCXB1YmxpYyBNZXRhLkxhdW5jaENvbnRleHQgY3JlYXRlX2xhdW5jaGVyICgp OworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5EaXNwbGF5IGRpc3BsYXkg eyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGNoYW5nZWQg KHZvaWQqIG9iamVjdCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv YmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9r ZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2Ut ZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEv bWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhp Yml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21l dGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUt YWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93 LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxh eWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgs bWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdp bmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNl LW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5o LG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEv d2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV9zdGFydHVwX3NlcXVl bmNlX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBTdGFydHVwU2VxdWVuY2UgOiBHTGli Lk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCist CQlwcm90ZWN0ZWQgU3RhcnR1cFNlcXVlbmNlICgpOworLQkJcHVibGljIHZvaWQgY29tcGxldGUg KCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2FwcGxpY2F0aW9uX2lkICgpOworLQkJ cHVibGljIGJvb2wgZ2V0X2NvbXBsZXRlZCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBn ZXRfaWNvbl9uYW1lICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9pZCAoKTsKKy0J CXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfbmFtZSAoKTsKKy0JCXB1YmxpYyB1aW50NjQgZ2V0 X3RpbWVzdGFtcCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfd21jbGFzcyAoKTsK Ky0JCXB1YmxpYyBpbnQgZ2V0X3dvcmtzcGFjZSAoKTsKKy0JCXB1YmxpYyBzdHJpbmcgYXBwbGlj YXRpb25faWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIHN0cmluZyBpY29uX25hbWUg eyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIHN0cmluZyBpZCB7IGdldDsgY29uc3RydWN0 OyB9CistCQlwdWJsaWMgc3RyaW5nIG5hbWUgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGlj IHVpbnQ2NCB0aW1lc3RhbXAgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIHN0cmluZyB3 bWNsYXNzIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBpbnQgd29ya3NwYWNlIHsgZ2V0 OyBjb25zdHJ1Y3Q7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9i YXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0 YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tl eWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1k aWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9t ZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGli aXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0 YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1h Y2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ct ZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5 ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxt ZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2lu ZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2Ut bWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgs bWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93 aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtDb21w YWN0XQorLQlwdWJsaWMgY2xhc3MgVGhlbWUgeworLQkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hl cy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRl ci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9t YWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEt Y3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxt ZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxv Zy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIu aCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5o LG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0 YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3Rh Z2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5o LG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9t ZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0 YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEv dGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtz cGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMg YWJzdHJhY3QgY2xhc3MgV2luZG93IDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFdpbmRvdyAoKTsKKy0JCXB1 YmxpYyB2b2lkIGFjdGl2YXRlICh1aW50MzIgY3VycmVudF90aW1lKTsKKy0JCXB1YmxpYyB2b2lk IGFjdGl2YXRlX3dpdGhfd29ya3NwYWNlICh1aW50MzIgY3VycmVudF90aW1lLCBNZXRhLldvcmtz cGFjZSB3b3Jrc3BhY2UpOworLQkJcHVibGljIGJvb2wgYWxsb3dzX21vdmUgKCk7CistCQlwdWJs aWMgYm9vbCBhbGxvd3NfcmVzaXplICgpOworLQkJcHVibGljIHZvaWQgYmVnaW5fZ3JhYl9vcCAo TWV0YS5HcmFiT3Agb3AsIGJvb2wgZnJhbWVfYWN0aW9uLCB1aW50MzIgdGltZXN0YW1wKTsKKy0J CXB1YmxpYyBib29sIGNhbl9jbG9zZSAoKTsKKy0JCXB1YmxpYyBib29sIGNhbl9tYXhpbWl6ZSAo KTsKKy0JCXB1YmxpYyBib29sIGNhbl9taW5pbWl6ZSAoKTsKKy0JCXB1YmxpYyBib29sIGNhbl9z aGFkZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGNoYW5nZV93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNl IHdvcmtzcGFjZSk7CistCQlwdWJsaWMgdm9pZCBjaGFuZ2Vfd29ya3NwYWNlX2J5X2luZGV4IChp bnQgc3BhY2VfaW5kZXgsIGJvb2wgYXBwZW5kKTsKKy0JCXB1YmxpYyB2b2lkIGNoZWNrX2FsaXZl ICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBjbGllbnRfcmVj dF90b19mcmFtZV9yZWN0IChNZXRhLlJlY3RhbmdsZSBjbGllbnRfcmVjdCk7CistCQlwdWJsaWMg dm9pZCBjb21wdXRlX2dyb3VwICgpOworLQkJcHVibGljIHZvaWQgQGRlbGV0ZSAodWludDMyIHRp bWVzdGFtcCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBmaW5kX3Jvb3RfYW5jZXN0 b3IgKCk7CistCQlwdWJsaWMgdm9pZCBmb2N1cyAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJs aWMgdm9pZCBmb3JlYWNoX2FuY2VzdG9yIChNZXRhLldpbmRvd0ZvcmVhY2hGdW5jIGZ1bmMpOwor LQkJcHVibGljIHZvaWQgZm9yZWFjaF90cmFuc2llbnQgKE1ldGEuV2luZG93Rm9yZWFjaEZ1bmMg ZnVuYyk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZnJhbWVfcmVjdF90b19jbGllbnRfcmVj dCAoTWV0YS5SZWN0YW5nbGUgZnJhbWVfcmVjdCk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUg Z2V0X2J1ZmZlcl9yZWN0ICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9jbGllbnRf bWFjaGluZSAoKTsKKy0JCXB1YmxpYyBNZXRhLldpbmRvd0NsaWVudFR5cGUgZ2V0X2NsaWVudF90 eXBlICgpOworLQkJcHVibGljIHVub3duZWQgR0xpYi5PYmplY3QgZ2V0X2NvbXBvc2l0b3JfcHJp dmF0ZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZGVzY3JpcHRpb24gKCk7Cist CQlwdWJsaWMgdW5vd25lZCBNZXRhLkRpc3BsYXkgZ2V0X2Rpc3BsYXkgKCk7CistCQlwdWJsaWMg dW5vd25lZCBDYWlyby5SZWdpb24/IGdldF9mcmFtZV9ib3VuZHMgKCk7CistCQlwdWJsaWMgTWV0 YS5SZWN0YW5nbGUgZ2V0X2ZyYW1lX3JlY3QgKCk7CistCQlwdWJsaWMgTWV0YS5GcmFtZVR5cGUg Z2V0X2ZyYW1lX3R5cGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a19hcHBf bWVudV9vYmplY3RfcGF0aCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX2Fw cGxpY2F0aW9uX2lkICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9ndGtfYXBwbGlj YXRpb25fb2JqZWN0X3BhdGggKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a19t ZW51YmFyX29iamVjdF9wYXRoICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9ndGtf dGhlbWVfdmFyaWFudCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX3VuaXF1 ZV9idXNfbmFtZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX3dpbmRvd19v YmplY3RfcGF0aCAoKTsKKy0JCXB1YmxpYyBib29sIGdldF9pY29uX2dlb21ldHJ5IChvdXQgTWV0 YS5SZWN0YW5nbGUgcmVjdCk7CistCQlwdWJsaWMgdWludDY0IGdldF9pZCAoKTsKKy0JCXB1Ymxp YyBNZXRhLlN0YWNrTGF5ZXIgZ2V0X2xheWVyICgpOworLQkJcHVibGljIE1ldGEuTWF4aW1pemVG bGFncyBnZXRfbWF4aW1pemVkICgpOworLQkJcHVibGljIGludCBnZXRfbW9uaXRvciAoKTsKKy0J CXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfbXV0dGVyX2hpbnRzICgpOworLQkJcHVibGljIGlu dCBnZXRfcGlkICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9yb2xlICgpOworLQkJ cHVibGljIHVub3duZWQgc3RyaW5nIGdldF9zYW5kYm94ZWRfYXBwX2lkICgpOworLQkJcHVibGlj IHVpbnQgZ2V0X3N0YWJsZV9zZXF1ZW5jZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBn ZXRfc3RhcnR1cF9pZCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93PyBnZXRfdGls ZV9tYXRjaCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfdGl0bGUgKCk7CistCQlw dWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBnZXRfdHJhbnNpZW50X2ZvciAoKTsKKy0JCXB1Ymxp YyB1aW50MzIgZ2V0X3VzZXJfdGltZSAoKTsKKy0JCXB1YmxpYyBNZXRhLldpbmRvd1R5cGUgZ2V0 X3dpbmRvd190eXBlICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF93bV9jbGFzcyAo KTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfd21fY2xhc3NfaW5zdGFuY2UgKCk7Cist CQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9hbGxfbW9uaXRvcnMgKCk7Cist CQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9jdXJyZW50X21vbml0b3IgKCk7 CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9mb3JfbW9uaXRvciAoaW50 IHdoaWNoX21vbml0b3IpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2UgZ2V0X3dv cmtzcGFjZSAoKTsKKy0JCXB1YmxpYyBYLldpbmRvdyBnZXRfeHdpbmRvdyAoKTsKKy0JCXB1Ymxp YyB2b2lkIGdyb3VwX2xlYWRlcl9jaGFuZ2VkICgpOworLQkJcHVibGljIGJvb2wgaGFzX2ZvY3Vz ICgpOworLQkJcHVibGljIGJvb2wgaXNfYWJvdmUgKCk7CistCQlwdWJsaWMgYm9vbCBpc19hbHdh eXNfb25fYWxsX3dvcmtzcGFjZXMgKCk7CistCQlwdWJsaWMgYm9vbCBpc19hbmNlc3Rvcl9vZl90 cmFuc2llbnQgKE1ldGEuV2luZG93IHRyYW5zaWVudCk7CistCQlwdWJsaWMgYm9vbCBpc19hdHRh Y2hlZF9kaWFsb2cgKCk7CistCQlwdWJsaWMgYm9vbCBpc19jbGllbnRfZGVjb3JhdGVkICgpOwor LQkJcHVibGljIGJvb2wgaXNfZnVsbHNjcmVlbiAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2hpZGRl biAoKTsKKy0JCXB1YmxpYyBib29sIGlzX21vbml0b3Jfc2l6ZWQgKCk7CistCQlwdWJsaWMgYm9v bCBpc19vbl9hbGxfd29ya3NwYWNlcyAoKTsKKy0JCXB1YmxpYyBib29sIGlzX29uX3ByaW1hcnlf bW9uaXRvciAoKTsKKy0JCXB1YmxpYyBib29sIGlzX292ZXJyaWRlX3JlZGlyZWN0ICgpOworLQkJ cHVibGljIGJvb2wgaXNfcmVtb3RlICgpOworLQkJcHVibGljIGJvb2wgaXNfc2NyZWVuX3NpemVk ICgpOworLQkJcHVibGljIGJvb2wgaXNfc2hhZGVkICgpOworLQkJcHVibGljIGJvb2wgaXNfc2tp cF90YXNrYmFyICgpOworLQkJcHVibGljIHZvaWQga2lsbCAoKTsKKy0JCXB1YmxpYyBib29sIGxv Y2F0ZWRfb25fd29ya3NwYWNlIChNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UpOworLQkJcHVibGlj IHZvaWQgbG93ZXIgKCk7CistCQlwdWJsaWMgdm9pZCBtYWtlX2Fib3ZlICgpOworLQkJcHVibGlj IHZvaWQgbWFrZV9mdWxsc2NyZWVuICgpOworLQkJcHVibGljIHZvaWQgbWF4aW1pemUgKE1ldGEu TWF4aW1pemVGbGFncyBkaXJlY3Rpb25zKTsKKy0JCXB1YmxpYyB2b2lkIG1pbmltaXplICgpOwor LQkJcHVibGljIHZvaWQgbW92ZV9mcmFtZSAoYm9vbCB1c2VyX29wLCBpbnQgcm9vdF94X253LCBp bnQgcm9vdF95X253KTsKKy0JCXB1YmxpYyB2b2lkIG1vdmVfcmVzaXplX2ZyYW1lIChib29sIHVz ZXJfb3AsIGludCByb290X3hfbncsIGludCByb290X3lfbncsIGludCB3LCBpbnQgaCk7CistCQlw dWJsaWMgdm9pZCBtb3ZlX3RvX21vbml0b3IgKGludCBtb25pdG9yKTsKKy0JCXB1YmxpYyB2b2lk IHJhaXNlICgpOworLQkJcHVibGljIGJvb2wgcmVxdWVzdGVkX2J5cGFzc19jb21wb3NpdG9yICgp OworLQkJcHVibGljIGJvb2wgcmVxdWVzdGVkX2RvbnRfYnlwYXNzX2NvbXBvc2l0b3IgKCk7Cist CQlwdWJsaWMgdm9pZCBzZXRfY29tcG9zaXRvcl9wcml2YXRlIChHTGliLk9iamVjdCBwcml2KTsK Ky0JCXB1YmxpYyB2b2lkIHNldF9kZW1hbmRzX2F0dGVudGlvbiAoKTsKKy0JCXB1YmxpYyB2b2lk IHNldF9pY29uX2dlb21ldHJ5IChNZXRhLlJlY3RhbmdsZT8gcmVjdCk7CistCQlwdWJsaWMgdm9p ZCBzaGFkZSAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBzaG92ZV90aXRsZWJh cl9vbnNjcmVlbiAoKTsKKy0JCXB1YmxpYyBib29sIHNob3dpbmdfb25faXRzX3dvcmtzcGFjZSAo KTsKKy0JCXB1YmxpYyB2b2lkIHNodXRkb3duX2dyb3VwICgpOworLQkJcHVibGljIHZvaWQgc3Rp Y2sgKCk7CistCQlwdWJsaWMgYm9vbCB0aXRsZWJhcl9pc19vbnNjcmVlbiAoKTsKKy0JCXB1Ymxp YyB2b2lkIHVubWFrZV9hYm92ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHVubWFrZV9mdWxsc2NyZWVu ICgpOworLQkJcHVibGljIHZvaWQgdW5tYXhpbWl6ZSAoTWV0YS5NYXhpbWl6ZUZsYWdzIGRpcmVj dGlvbnMpOworLQkJcHVibGljIHZvaWQgdW5taW5pbWl6ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHVu c2V0X2RlbWFuZHNfYXR0ZW50aW9uICgpOworLQkJcHVibGljIHZvaWQgdW5zaGFkZSAodWludDMy IHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCB1bnN0aWNrICgpOworLQkJW05vQWNjZXNzb3JN ZXRob2RdCistCQlwdWJsaWMgYm9vbCBhYm92ZSB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlwdWJsaWMgYm9vbCBhcHBlYXJzX2ZvY3VzZWQgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgZGVjb3JhdGVkIHsgZ2V0OyB9CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGRlbWFuZHNfYXR0ZW50aW9uIHsgZ2V0OyB9Cist CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGZ1bGxzY3JlZW4geyBnZXQ7IH0K Ky0JCXB1YmxpYyBzdHJpbmcgZ3RrX2FwcF9tZW51X29iamVjdF9wYXRoIHsgZ2V0OyB9CistCQlw dWJsaWMgc3RyaW5nIGd0a19hcHBsaWNhdGlvbl9pZCB7IGdldDsgfQorLQkJcHVibGljIHN0cmlu ZyBndGtfYXBwbGljYXRpb25fb2JqZWN0X3BhdGggeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcg Z3RrX21lbnViYXJfb2JqZWN0X3BhdGggeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3RrX3Vu aXF1ZV9idXNfbmFtZSB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyBndGtfd2luZG93X29iamVj dF9wYXRoIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB2b2lkKiBp Y29uIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIG1heGlt aXplZF9ob3Jpem9udGFsbHkgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVi bGljIGJvb2wgbWF4aW1pemVkX3ZlcnRpY2FsbHkgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0 aG9kXQorLQkJcHVibGljIHZvaWQqIG1pbmlfaWNvbiB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JN ZXRob2RdCistCQlwdWJsaWMgYm9vbCBtaW5pbWl6ZWQgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJp bmcgbXV0dGVyX2hpbnRzIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1Ymxp YyBib29sIG9uX2FsbF93b3Jrc3BhY2VzIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0K Ky0JCXB1YmxpYyBib29sIHJlc2l6ZWFibGUgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJcHVibGljIGJvb2wgc2tpcF90YXNrYmFyIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5n IHRpdGxlIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIHVy Z2VudCB7IGdldDsgfQorLQkJcHVibGljIHVpbnQgdXNlcl90aW1lIHsgZ2V0OyB9CistCQlwdWJs aWMgTWV0YS5XaW5kb3dUeXBlIHdpbmRvd190eXBlIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5n IHdtX2NsYXNzIHsgZ2V0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcG9zaXRpb25fY2hhbmdl ZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCByYWlzZWQgKCk7CistCQlwdWJsaWMgc2lnbmFs IHZvaWQgc2hvd24gKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2l6ZV9jaGFuZ2VkICgpOwor LQkJcHVibGljIHNpZ25hbCB2b2lkIHVubWFuYWdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9p ZCB3b3Jrc3BhY2VfY2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3Np dG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAu aCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0 YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5k LmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9t ZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5o LG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRh LXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0 YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1z b3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmlj YXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRh L21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13 b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEt ZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGls LmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRv d19hY3Rvcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgV2luZG93QWN0 b3IgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwg Q2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgV2luZG93QWN0b3IgKCk7 CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBnZXRfbWV0YV93aW5kb3cgKCk7CistCQlw dWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF90ZXh0dXJlICgpOworLQkJcHVibGljIFgu V2luZG93IGdldF94X3dpbmRvdyAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2Rlc3Ryb3llZCAoKTsK Ky0JCXB1YmxpYyB2b2lkIHN5bmNfdmlzaWJpbGl0eSAoKTsKKy0JCXB1YmxpYyBNZXRhLldpbmRv dyBtZXRhX3dpbmRvdyB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0K Ky0JCXB1YmxpYyBzdHJpbmcgc2hhZG93X2NsYXNzIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKy0JCVtO b0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuU2hhZG93TW9kZSBzaGFkb3dfbW9kZSB7 IGdldDsgc2V0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZWZmZWN0c19jb21wbGV0ZWQgKCk7 CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZmlyc3RfZnJhbWUgKCk7CistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1v bi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3Bs YXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0 YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt aW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2Vy LmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUt bW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEt bGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBs dWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0 dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1 cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRh LXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2lu ZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hh cGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXku aCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90 eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVf aWQgPSAibWV0YV93aW5kb3dfZ3JvdXBfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFdp bmRvd0dyb3VwIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1h dGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFdpbmRvd0dy b3VwICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIu aCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGlu Z3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5o LG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51 bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9y dGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1j b250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1l dGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0 YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3Jv dXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3By ZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5o LG1ldGEvd29ya3NwYWNlLmgiLCByZWZfZnVuY3Rpb24gPSAibWV0YV93aW5kb3dfc2hhcGVfcmVm IiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19zaGFwZV9nZXRfdHlwZSAoKSIsIHVucmVmX2Z1bmN0 aW9uID0gIm1ldGFfd2luZG93X3NoYXBlX3VucmVmIildCistCVtDb21wYWN0XQorLQlwdWJsaWMg Y2xhc3MgV2luZG93U2hhcGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UpXQorLQkJcHVibGljIFdpbmRvd1NoYXBlIChDYWlyby5SZWdpb24gcmVnaW9uKTsKKy0J CXB1YmxpYyBib29sIGVxdWFsIChNZXRhLldpbmRvd1NoYXBlIHNoYXBlX2IpOworLQkJcHVibGlj IHZvaWQgZ2V0X2JvcmRlcnMgKGludCBib3JkZXJfdG9wLCBpbnQgYm9yZGVyX3JpZ2h0LCBpbnQg Ym9yZGVyX2JvdHRvbSwgaW50IGJvcmRlcl9sZWZ0KTsKKy0JCXB1YmxpYyB1aW50IGhhc2ggKCk7 CistCQlwdWJsaWMgTWV0YS5XaW5kb3dTaGFwZSBAcmVmICgpOworLQkJcHVibGljIENhaXJvLlJl Z2lvbiB0b19yZWdpb24gKGludCBjZW50ZXJfd2lkdGgsIGludCBjZW50ZXJfaGVpZ2h0KTsKKy0J CXB1YmxpYyB2b2lkIHVucmVmICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0 b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5o LG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRh L21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRh LWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQu aCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21l dGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0Lmgs bWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEt cmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRh LXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNv dW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNh dGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEv bWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdv cmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1l cnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwu aCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfd29ya3Nw YWNlX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBXb3Jrc3BhY2UgOiBHTGliLk9iamVj dCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90 ZWN0ZWQgV29ya3NwYWNlICgpOworLQkJcHVibGljIHZvaWQgYWN0aXZhdGUgKHVpbnQzMiB0aW1l c3RhbXApOworLQkJcHVibGljIHZvaWQgYWN0aXZhdGVfd2l0aF9mb2N1cyAoTWV0YS5XaW5kb3cg Zm9jdXNfdGhpcywgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLkRp c3BsYXkgZ2V0X2Rpc3BsYXkgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZSBn ZXRfbmVpZ2hib3IgKE1ldGEuTW90aW9uRGlyZWN0aW9uIGRpcmVjdGlvbik7CistCQlwdWJsaWMg TWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9hbGxfbW9uaXRvcnMgKCk7CistCQlwdWJsaWMg TWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9mb3JfbW9uaXRvciAoaW50IHdoaWNoX21vbml0 b3IpOworLQkJcHVibGljIGludCBpbmRleCAoKTsKKy0JCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBN ZXRhLldpbmRvdz4gbGlzdF93aW5kb3dzICgpOworLQkJcHVibGljIHZvaWQgc2V0X2J1aWx0aW5f c3RydXRzIChHTGliLlNMaXN0PE1ldGEuU3RydXQ/PiBzdHJ1dHMpOworLQkJW05vQWNjZXNzb3JN ZXRob2RdCistCQlwdWJsaWMgdWludCBuX3dpbmRvd3MgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29y TWV0aG9kXQorLQkJcHVibGljIHVpbnQgd29ya3NwYWNlX2luZGV4IHsgZ2V0OyB9CistCQlwdWJs aWMgc2lnbmFsIHZvaWQgd2luZG93X2FkZGVkIChNZXRhLldpbmRvdyBvYmplY3QpOworLQkJcHVi bGljIHNpZ25hbCB2b2lkIHdpbmRvd19yZW1vdmVkIChNZXRhLldpbmRvdyBvYmplY3QpOworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVz LmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21h aW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1j dXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1l dGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9n LmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5o LG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgs bWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRh LXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFn ZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgs bWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21l dGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRh LXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90 aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3Nw YWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfd29ya3NwYWNlX21hbmFnZXJfZ2V0X3R5cGUgKCkiKV0K Ky0JcHVibGljIGNsYXNzIFdvcmtzcGFjZU1hbmFnZXIgOiBHTGliLk9iamVjdCB7CistCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgV29ya3Nw YWNlTWFuYWdlciAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlIGFwcGVuZF9u ZXdfd29ya3NwYWNlIChib29sIGFjdGl2YXRlLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1Ymxp YyB1bm93bmVkIE1ldGEuV29ya3NwYWNlIGdldF9hY3RpdmVfd29ya3NwYWNlICgpOworLQkJcHVi bGljIGludCBnZXRfYWN0aXZlX3dvcmtzcGFjZV9pbmRleCAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0 X25fd29ya3NwYWNlcyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlIGdldF93 b3Jrc3BhY2VfYnlfaW5kZXggKGludCBpbmRleCk7CistCQlwdWJsaWMgdm9pZCBvdmVycmlkZV93 b3Jrc3BhY2VfbGF5b3V0IChNZXRhLkRpc3BsYXlDb3JuZXIgc3RhcnRpbmdfY29ybmVyLCBib29s IHZlcnRpY2FsX2xheW91dCwgaW50IG5fcm93cywgaW50IG5fY29sdW1ucyk7CistCQlwdWJsaWMg dm9pZCByZW1vdmVfd29ya3NwYWNlIChNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UsIHVpbnQzMiB0 aW1lc3RhbXApOworLQkJcHVibGljIGludCBuX3dvcmtzcGFjZXMgeyBnZXQ7IH0KKy0JCXB1Ymxp YyBzaWduYWwgdm9pZCBhY3RpdmVfd29ya3NwYWNlX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2ln bmFsIHZvaWQgc2hvd2luZ19kZXNrdG9wX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZv aWQgd29ya3NwYWNlX2FkZGVkIChpbnQgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3 b3Jrc3BhY2VfcmVtb3ZlZCAoaW50IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29y a3NwYWNlX3N3aXRjaGVkIChpbnQgb2JqZWN0LCBpbnQgcDAsIE1ldGEuTW90aW9uRGlyZWN0aW9u IHAxKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgs bWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3Np dG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdz LmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1h Y3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxt ZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0t dHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRj dXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9y LW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29u dHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5o LG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRh L21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEt dmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3Vw LmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5o LG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVm cy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxt ZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3gxMV9kaXNwbGF5X2dldF90eXBlICgp IildCistCXB1YmxpYyBjbGFzcyBYMTFEaXNwbGF5IDogR0xpYi5PYmplY3QgeworLQkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFgxMURpc3Bs YXkgKCk7CistCQlwdWJsaWMgdm9pZCBmb2N1c190aGVfbm9fZm9jdXNfd2luZG93ICh1aW50MzIg dGltZXN0YW1wKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2RhbWFnZV9ldmVudF9iYXNlICgpOworLQkJ cHVibGljIGludCBnZXRfc2NyZWVuX251bWJlciAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3NoYXBl X2V2ZW50X2Jhc2UgKCk7CistCQlwdWJsaWMgYm9vbCBoYXNfc2hhcGUgKCk7CistCQlwdWJsaWMg dm9pZCBzZXRfY21fc2VsZWN0aW9uICgpOworLQkJcHVibGljIHZvaWQgc2V0X2lucHV0X2ZvY3Vz X3dpbmRvdyAoTWV0YS5XaW5kb3cgd2luZG93LCBib29sIGZvY3VzX2ZyYW1lLCB1aW50MzIgdGlt ZXN0YW1wKTsKKy0JCXB1YmxpYyBib29sIHh3aW5kb3dfaXNfYV9ub19mb2N1c193aW5kb3cgKFgu V2luZG93IHh3aW5kb3cpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEv a2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEt YmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3Nl LWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRh L21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5o aWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9t ZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3Rl LWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRv dy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBs YXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5o LG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13 aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFj ZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMu aCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRh L3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2NuYW1lID0gIk1ldGFDbG9zZURpYWxv Z0ludGVyZmFjZSIsIHR5cGVfaWQgPSAibWV0YV9jbG9zZV9kaWFsb2dfZ2V0X3R5cGUgKCkiKV0K Ky0JcHVibGljIGludGVyZmFjZSBDbG9zZURpYWxvZyA6IEdMaWIuT2JqZWN0IHsKKy0JCXB1Ymxp YyBhYnN0cmFjdCB2b2lkIGZvY3VzICgpOworLQkJcHVibGljIGFic3RyYWN0IHZvaWQgaGlkZSAo KTsKKy0JCXB1YmxpYyBib29sIGlzX3Zpc2libGUgKCk7CistCQlwdWJsaWMgYWJzdHJhY3Qgdm9p ZCBzaG93ICgpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYWJzdHJhY3QgTWV0 YS5XaW5kb3cgd2luZG93IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtIYXNFbWl0dGVy XQorLQkJcHVibGljIHNpZ25hbCB2b2lkIHJlc3BvbnNlIChNZXRhLkNsb3NlRGlhbG9nUmVzcG9u c2UgcmVzcG9uc2UpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Jh cnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5 YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRp YWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21l dGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJp dC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRh LW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFj Y2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1m YWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXll ci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1l dGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5k b3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1t YW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxt ZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dp bmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2NuYW1lID0gIk1ldGFJbmhpYml0U2hvcnRj dXRzRGlhbG9nSW50ZXJmYWNlIiwgdHlwZV9pZCA9ICJtZXRhX2luaGliaXRfc2hvcnRjdXRzX2Rp YWxvZ19nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgaW50ZXJmYWNlIEluaGliaXRTaG9ydGN1dHNE aWFsb2cgOiBHTGliLk9iamVjdCB7CistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBoaWRlICgpOwor LQkJcHVibGljIGFic3RyYWN0IHZvaWQgc2hvdyAoKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQor LQkJcHVibGljIGFic3RyYWN0IE1ldGEuV2luZG93IHdpbmRvdyB7IG93bmVkIGdldDsgY29uc3Ry dWN0OyB9CistCQlbSGFzRW1pdHRlcl0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCByZXNwb25zZSAo TWV0YS5JbmhpYml0U2hvcnRjdXRzRGlhbG9nUmVzcG9uc2UgcmVzcG9uc2UpOworLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0 YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0 YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxt ZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3It dHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0 YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0 YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEv bWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9t ZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBl ZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1l dGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9t ZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2lu ZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1k aXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5o LG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgi LCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBCdXR0b25MYXlvdXQgewor LQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBNZXRhLkJ1 dHRvbkZ1bmN0aW9uIGxlZnRfYnV0dG9uc1s0XTsKKy0JCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0g ZmFsc2UpXQorLQkJcHVibGljIHdlYWsgYm9vbCBsZWZ0X2J1dHRvbnNfaGFzX3NwYWNlcls0XTsK Ky0JCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXQorLQkJcHVibGljIHdlYWsgTWV0YS5C dXR0b25GdW5jdGlvbiByaWdodF9idXR0b25zWzRdOworLQkJW0NDb2RlIChhcnJheV9sZW5ndGgg PSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBib29sIHJpZ2h0X2J1dHRvbnNfaGFzX3NwYWNlcls0 XTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0 YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9y LW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgs bWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rv ci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRh L21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlw ZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRz LWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1h bmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJv bGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1l dGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21l dGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVy c2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgs bWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1l dGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5o LG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRh L3dvcmtzcGFjZS5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgRWRn ZSB7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgcmVjdDsKKy0JCXB1YmxpYyBNZXRhLlNpZGUg c2lkZV90eXBlOworLQkJcHVibGljIE1ldGEuRWRnZVR5cGUgZWRnZV90eXBlOworLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0 YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0 YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxt ZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3It dHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0 YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0 YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEv bWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9t ZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBl ZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1l dGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9t ZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2lu ZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1k aXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5o LG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgi LCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBGcmFtZUJvcmRlcnMgewor LQkJcHVibGljIEd0ay5Cb3JkZXIgdmlzaWJsZTsKKy0JCXB1YmxpYyBHdGsuQm9yZGVyIGludmlz aWJsZTsKKy0JCXB1YmxpYyBHdGsuQm9yZGVyIHRvdGFsOworLQkJcHVibGljIHZvaWQgY2xlYXIg KCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1wbHVnaW4u aCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IFBsdWdpbkluZm8gewor LQkJcHVibGljIHdlYWsgc3RyaW5nIG5hbWU7CistCQlwdWJsaWMgd2VhayBzdHJpbmcgdmVyc2lv bjsKKy0JCXB1YmxpYyB3ZWFrIHN0cmluZyBhdXRob3I7CistCQlwdWJsaWMgd2VhayBzdHJpbmcg bGljZW5zZTsKKy0JCXB1YmxpYyB3ZWFrIHN0cmluZyBkZXNjcmlwdGlvbjsKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEv Y29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEv ZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0 YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRy YWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEt aWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEv bWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21l dGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0 YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQt dGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRh L21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0 YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRv dy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlz cGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxt ZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwg aGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgUGx1Z2luVmVyc2lvbiB7Cist CQlwdWJsaWMgdWludCB2ZXJzaW9uX21ham9yOworLQkJcHVibGljIHVpbnQgdmVyc2lvbl9taW5v cjsKKy0JCXB1YmxpYyB1aW50IHZlcnNpb25fbWljcm87CistCQlwdWJsaWMgdWludCB2ZXJzaW9u X2FwaTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgs bWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3Np dG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdz LmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1h Y3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxt ZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0t dHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRj dXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9y LW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29u dHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5o LG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRh L21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEt dmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3Vw LmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5o LG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVm cy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxt ZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3JlY3RhbmdsZV9nZXRfdHlwZSAoKSIp XQorLQlwdWJsaWMgc3RydWN0IFJlY3RhbmdsZSB7CistCQlwdWJsaWMgaW50IHg7CistCQlwdWJs aWMgaW50IHk7CistCQlwdWJsaWMgaW50IHdpZHRoOworLQkJcHVibGljIGludCBoZWlnaHQ7Cist CQlwdWJsaWMgaW50IGFyZWEgKCk7CistCQlwdWJsaWMgYm9vbCBjb250YWluc19yZWN0IChNZXRh LlJlY3RhbmdsZSBpbm5lcl9yZWN0KTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZT8gY29weSAo KTsKKy0JCXB1YmxpYyBib29sIGNvdWxkX2ZpdF9yZWN0IChNZXRhLlJlY3RhbmdsZSBpbm5lcl9y ZWN0KTsKKy0JCXB1YmxpYyBib29sIGVxdWFsIChNZXRhLlJlY3RhbmdsZSBzcmMyKTsKKy0JCXB1 YmxpYyB2b2lkIGZyZWUgKCk7CistCQlwdWJsaWMgYm9vbCBob3Jpel9vdmVybGFwIChNZXRhLlJl Y3RhbmdsZSByZWN0Mik7CistCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3QgKE1ldGEuUmVjdGFuZ2xl IHNyYzIsIG91dCBNZXRhLlJlY3RhbmdsZSBkZXN0KTsKKy0JCXB1YmxpYyBib29sIG92ZXJsYXAg KE1ldGEuUmVjdGFuZ2xlIHJlY3QyKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSB1bmlvbiAo TWV0YS5SZWN0YW5nbGUgcmVjdDIpOworLQkJcHVibGljIGJvb2wgdmVydF9vdmVybGFwIChNZXRh LlJlY3RhbmdsZSByZWN0Mik7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5o LG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0 YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xv c2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1l dGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1p bmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRh L21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1v dGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hh ZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQt cGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9u LmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRh LXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3Nw YWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9y cy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1l dGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlw dWJsaWMgc3RydWN0IFNoYWRvd1BhcmFtcyB7CistCQlwdWJsaWMgaW50IHJhZGl1czsKKy0JCXB1 YmxpYyBpbnQgdG9wX2ZhZGU7CistCQlwdWJsaWMgaW50IHhfb2Zmc2V0OworLQkJcHVibGljIGlu dCB5X29mZnNldDsKKy0JCXB1YmxpYyB1aW50OCBvcGFjaXR5OworLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24u aCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5 LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEt YmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWlt YWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5o LG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1v bml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxh dW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVn aW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRp bmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJl LmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1z dGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRv dy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBl LmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5Lmgs bWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlw ZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBoYXNfdHlw ZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBTdHJ1dCB7CistCQlwdWJsaWMgTWV0YS5S ZWN0YW5nbGUgcmVjdDsKKy0JCXB1YmxpYyBNZXRhLlNpZGUgc2lkZTsKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29t bW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlz cGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9t ZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNr ZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRs ZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0 YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEt cGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1z ZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4 dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21l dGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13 aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1z aGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxh eS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRh L3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3By ZWZpeCA9ICJNRVRBX0JBUlJJRVJfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9iYXJyaWVy X2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIEJhcnJp ZXJEaXJlY3Rpb24geworLQkJUE9TSVRJVkVfWCwKKy0JCVBPU0lUSVZFX1ksCistCQlORUdBVElW RV9YLAorLQkJTkVHQVRJVkVfWQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3Iu aCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1l dGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21l dGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNs b3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxt ZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEt aW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0 YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVt b3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNo YWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5k LXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlv bi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0 YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtz cGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJv cnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxt ZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfQlVUVE9OX0ZV TkNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9idXR0b25fZnVuY3Rpb25fZ2V0X3R5cGUgKCkiKV0K Ky0JcHVibGljIGVudW0gQnV0dG9uRnVuY3Rpb24geworLQkJTUVOVSwKKy0JCU1JTklNSVpFLAor LQkJTUFYSU1JWkUsCistCQlDTE9TRSwKKy0JCUxBU1QKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0 YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1l dGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tl bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdy b3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5o LG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRh L21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9y LmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gt Y29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgs bWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5o LG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1l dGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1 cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0 b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1l dGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEv bWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgs bWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJN RVRBX0NMT1NFX0RJQUxPR19SRVNQT05TRV8iLCB0eXBlX2lkID0gIm1ldGFfY2xvc2VfZGlhbG9n X3Jlc3BvbnNlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIENsb3NlRGlhbG9nUmVzcG9u c2UgeworLQkJV0FJVCwKKy0JCUZPUkNFX0NMT1NFCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEv Y29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRh L2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91 cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxt ZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9t ZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5o LG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNv bnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1l dGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxt ZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRh L21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAt bm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9y LmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRh L21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21l dGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1l dGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVU QV9DT01QX0VGRkVDVF8iLCB0eXBlX2lkID0gIm1ldGFfY29tcF9lZmZlY3RfZ2V0X3R5cGUgKCki KV0KKy0JcHVibGljIGVudW0gQ29tcEVmZmVjdCB7CistCQlDUkVBVEUsCistCQlVTk1JTklNSVpF LAorLQkJREVTVFJPWSwKKy0JCU1JTklNSVpFLAorLQkJTk9ORQorLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24u aCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5 LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEt YmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWlt YWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5o LG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1v bml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxh dW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVn aW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRp bmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJl LmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1z dGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRv dy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBl LmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5Lmgs bWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlw ZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4 ID0gIk1FVEFfQ1VSU09SXyIsIHR5cGVfaWQgPSAibWV0YV9jdXJzb3JfZ2V0X3R5cGUgKCkiKV0K Ky0JcHVibGljIGVudW0gQ3Vyc29yIHsKKy0JCU5PTkUsCistCQlERUZBVUxULAorLQkJTk9SVEhf UkVTSVpFLAorLQkJU09VVEhfUkVTSVpFLAorLQkJV0VTVF9SRVNJWkUsCistCQlFQVNUX1JFU0la RSwKKy0JCVNFX1JFU0laRSwKKy0JCVNXX1JFU0laRSwKKy0JCU5FX1JFU0laRSwKKy0JCU5XX1JF U0laRSwKKy0JCU1PVkVfT1JfUkVTSVpFX1dJTkRPVywKKy0JCUJVU1ksCistCQlETkRfSU5fRFJB RywKKy0JCURORF9NT1ZFLAorLQkJRE5EX0NPUFksCistCQlETkRfVU5TVVBQT1JURURfVEFSR0VU LAorLQkJUE9JTlRJTkdfSEFORCwKKy0JCUNST1NTSEFJUiwKKy0JCUlCRUFNLAorLQkJTEFTVAor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2Jv eGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0 dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRh L21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0 YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5o LG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlh bG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdl ci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVy LmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9t ZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1z dGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9u LmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRh L21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0 YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29y a3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfREVCVUdfIiwgdHlwZV9pZCA9ICJtZXRhX2RlYnVn X3RvcGljX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gRGVidWdUb3Bp YyB7CistCQlWRVJCT1NFLAorLQkJRk9DVVMsCistCQlXT1JLQVJFQSwKKy0JCVNUQUNLLAorLQkJ VEhFTUVTLAorLQkJU00sCistCQlFVkVOVFMsCistCQlXSU5ET1dfU1RBVEUsCistCQlXSU5ET1df T1BTLAorLQkJR0VPTUVUUlksCistCQlQTEFDRU1FTlQsCistCQlQSU5HLAorLQkJWElORVJBTUEs CistCQlLRVlCSU5ESU5HUywKKy0JCVNZTkMsCistCQlFUlJPUlMsCistCQlTVEFSVFVQLAorLQkJ UFJFRlMsCistCQlHUk9VUFMsCistCQlSRVNJWklORywKKy0JCVNIQVBFUywKKy0JCUNPTVBPU0lU T1IsCistCQlFREdFX1JFU0lTVEFOQ0UsCistCQlEQlVTCistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1l dGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxt ZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNr ZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1n cm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2Uu aCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0 YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRv ci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNo LWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5o LG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3Mu aCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxt ZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0 dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFj dG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxt ZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRh L21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5o LG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAi TUVUQV9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIp XQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIERpcmVjdGlvbiB7CistCQlMRUZULAorLQkJUklH SFQsCistCQlUT1AsCistCQlCT1RUT00sCistCQlVUCwKKy0JCURPV04sCistCQlIT1JJWk9OVEFM LAorLQkJVkVSVElDQUwKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9i YXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0 YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tl eWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1k aWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9t ZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGli aXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0 YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1h Y2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ct ZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5 ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxt ZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2lu ZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2Ut bWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgs bWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93 aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0RJU1BMQVlfIiwgdHlw ZV9pZCA9ICJtZXRhX2Rpc3BsYXlfY29ybmVyX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVt IERpc3BsYXlDb3JuZXIgeworLQkJVE9QTEVGVCwKKy0JCVRPUFJJR0hULAorLQkJQk9UVE9NTEVG VCwKKy0JCUJPVFRPTVJJR0hUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5o LG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0 YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xv c2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1l dGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1p bmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRh L21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1v dGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hh ZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQt cGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9u LmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRh LXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3Nw YWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9y cy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1l dGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9ESVNQTEFZXyIs IHR5cGVfaWQgPSAibWV0YV9kaXNwbGF5X2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlwdWJs aWMgZW51bSBEaXNwbGF5RGlyZWN0aW9uIHsKKy0JCVVQLAorLQkJRE9XTiwKKy0JCUxFRlQsCist CQlSSUdIVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIu aCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGlu Z3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5o LG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51 bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9y dGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1j b250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1l dGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0 YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3Jv dXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3By ZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5o LG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfRURHRV8iLCB0eXBlX2lkID0gIm1l dGFfZWRnZV90eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEVkZ2VUeXBlIHsKKy0J CVdJTkRPVywKKy0JCU1PTklUT1IsCistCQlTQ1JFRU4KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0 YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1l dGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tl bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdy b3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5o LG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRh L21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9y LmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gt Y29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgs bWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5o LG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1l dGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1 cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0 b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1l dGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEv bWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgs bWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJN RVRBX0VYSVRfIiwgdHlwZV9pZCA9ICJtZXRhX2V4aXRfY29kZV9nZXRfdHlwZSAoKSIpXQorLQlw dWJsaWMgZW51bSBFeGl0Q29kZSB7CistCQlTVUNDRVNTLAorLQkJRVJST1IKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEv Y29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEv ZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0 YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRy YWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEt aWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEv bWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21l dGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0 YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQt dGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRh L21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0 YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRv dy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlz cGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxt ZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwg Y3ByZWZpeCA9ICJNRVRBX0ZSQU1FXyIsIHR5cGVfaWQgPSAibWV0YV9mcmFtZV9mbGFnc19nZXRf dHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIEZyYW1lRmxhZ3MgeworLQkJQUxM T1dTX0RFTEVURSwKKy0JCUFMTE9XU19NRU5VLAorLQkJQUxMT1dTX01JTklNSVpFLAorLQkJQUxM T1dTX01BWElNSVpFLAorLQkJQUxMT1dTX1ZFUlRJQ0FMX1JFU0laRSwKKy0JCUFMTE9XU19IT1JJ Wk9OVEFMX1JFU0laRSwKKy0JCUhBU19GT0NVUywKKy0JCVNIQURFRCwKKy0JCVNUVUNLLAorLQkJ TUFYSU1JWkVELAorLQkJQUxMT1dTX1NIQURFLAorLQkJQUxMT1dTX01PVkUsCistCQlGVUxMU0NS RUVOLAorLQkJSVNfRkxBU0hJTkcsCistCQlBQk9WRSwKKy0JCVRJTEVEX0xFRlQsCistCQlUSUxF RF9SSUdIVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIu aCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGlu Z3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5o LG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51 bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9y dGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1j b250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1l dGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0 YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3Jv dXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3By ZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5o LG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfRlJBTUVfVFlQRV8iLCB0eXBlX2lk ID0gIm1ldGFfZnJhbWVfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBGcmFtZVR5 cGUgeworLQkJTk9STUFMLAorLQkJRElBTE9HLAorLQkJTU9EQUxfRElBTE9HLAorLQkJVVRJTElU WSwKKy0JCU1FTlUsCistCQlCT1JERVIsCistCQlBVFRBQ0hFRCwKKy0JCUxBU1Q7CistCQlwdWJs aWMgdW5vd25lZCBzdHJpbmcgdG9fc3RyaW5nICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRh L2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0 YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3Jv dXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgs bWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEv bWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3Iu aCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1j b250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxt ZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgs bWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0 YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVw LW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rv ci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0 YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9t ZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxt ZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1F VEFfR1JBQl9PUF8iLCB0eXBlX2lkID0gIm1ldGFfZ3JhYl9vcF9nZXRfdHlwZSAoKSIpXQorLQlw dWJsaWMgZW51bSBHcmFiT3AgeworLQkJTk9ORSwKKy0JCVdJTkRPV19CQVNFLAorLQkJQ09NUE9T SVRPUiwKKy0JCVdBWUxBTkRfUE9QVVAsCistCQlGUkFNRV9CVVRUT04sCistCQlNT1ZJTkcsCist CQlSRVNJWklOR19OVywKKy0JCVJFU0laSU5HX04sCistCQlSRVNJWklOR19ORSwKKy0JCVJFU0la SU5HX0UsCistCQlSRVNJWklOR19TVywKKy0JCVJFU0laSU5HX1MsCistCQlSRVNJWklOR19TRSwK Ky0JCVJFU0laSU5HX1csCistCQlLRVlCT0FSRF9NT1ZJTkcsCistCQlLRVlCT0FSRF9SRVNJWklO R19VTktOT1dOLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfTlcsCistCQlLRVlCT0FSRF9SRVNJWklO R19OLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfTkUsCistCQlLRVlCT0FSRF9SRVNJWklOR19FLAor LQkJS0VZQk9BUkRfUkVTSVpJTkdfU1csCistCQlLRVlCT0FSRF9SRVNJWklOR19TLAorLQkJS0VZ Qk9BUkRfUkVTSVpJTkdfU0UsCistCQlLRVlCT0FSRF9SRVNJWklOR19XCistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2Nv bW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rp c3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEv bWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFj a2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlk bGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21l dGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRh LXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEt c2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRl eHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9t ZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEt d2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ct c2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3Bs YXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0 YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNw cmVmaXggPSAiTUVUQV9JTkhJQklUX1NIT1JUQ1VUU19ESUFMT0dfUkVTUE9OU0VfIiwgdHlwZV9p ZCA9ICJtZXRhX2luaGliaXRfc2hvcnRjdXRzX2RpYWxvZ19yZXNwb25zZV9nZXRfdHlwZSAoKSIp XQorLQlwdWJsaWMgZW51bSBJbmhpYml0U2hvcnRjdXRzRGlhbG9nUmVzcG9uc2UgeworLQkJQUxM T1csCistCQlERU5ZCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFy cmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEv Y29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXli aW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlh bG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0 YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0 LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEt bW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNj ZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZh Y3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVy LmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0 YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRv dy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1h bmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1l dGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2lu ZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9LRVlCSU5ESU5HX0FDVElP Tl8iLCB0eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdfYWN0aW9uX2dldF90eXBlICgpIildCist CXB1YmxpYyBlbnVtIEtleUJpbmRpbmdBY3Rpb24geworLQkJTk9ORSwKKy0JCVdPUktTUEFDRV8x LAorLQkJV09SS1NQQUNFXzIsCistCQlXT1JLU1BBQ0VfMywKKy0JCVdPUktTUEFDRV80LAorLQkJ V09SS1NQQUNFXzUsCistCQlXT1JLU1BBQ0VfNiwKKy0JCVdPUktTUEFDRV83LAorLQkJV09SS1NQ QUNFXzgsCistCQlXT1JLU1BBQ0VfOSwKKy0JCVdPUktTUEFDRV8xMCwKKy0JCVdPUktTUEFDRV8x MSwKKy0JCVdPUktTUEFDRV8xMiwKKy0JCVdPUktTUEFDRV9MRUZULAorLQkJV09SS1NQQUNFX1JJ R0hULAorLQkJV09SS1NQQUNFX1VQLAorLQkJV09SS1NQQUNFX0RPV04sCistCQlXT1JLU1BBQ0Vf TEFTVCwKKy0JCVNXSVRDSF9BUFBMSUNBVElPTlMsCistCQlTV0lUQ0hfQVBQTElDQVRJT05TX0JB Q0tXQVJELAorLQkJU1dJVENIX0dST1VQLAorLQkJU1dJVENIX0dST1VQX0JBQ0tXQVJELAorLQkJ U1dJVENIX1dJTkRPV1MsCistCQlTV0lUQ0hfV0lORE9XU19CQUNLV0FSRCwKKy0JCVNXSVRDSF9Q QU5FTFMsCistCQlTV0lUQ0hfUEFORUxTX0JBQ0tXQVJELAorLQkJQ1lDTEVfR1JPVVAsCistCQlD WUNMRV9HUk9VUF9CQUNLV0FSRCwKKy0JCUNZQ0xFX1dJTkRPV1MsCistCQlDWUNMRV9XSU5ET1dT X0JBQ0tXQVJELAorLQkJQ1lDTEVfUEFORUxTLAorLQkJQ1lDTEVfUEFORUxTX0JBQ0tXQVJELAor LQkJU0hPV19ERVNLVE9QLAorLQkJUEFORUxfTUFJTl9NRU5VLAorLQkJUEFORUxfUlVOX0RJQUxP RywKKy0JCVRPR0dMRV9SRUNPUkRJTkcsCistCQlTRVRfU1BFV19NQVJLLAorLQkJQUNUSVZBVEVf V0lORE9XX01FTlUsCistCQlUT0dHTEVfRlVMTFNDUkVFTiwKKy0JCVRPR0dMRV9NQVhJTUlaRUQs CistCQlUT0dHTEVfVElMRURfTEVGVCwKKy0JCVRPR0dMRV9USUxFRF9SSUdIVCwKKy0JCVRPR0dM RV9BQk9WRSwKKy0JCU1BWElNSVpFLAorLQkJVU5NQVhJTUlaRSwKKy0JCVRPR0dMRV9TSEFERUQs CistCQlNSU5JTUlaRSwKKy0JCUNMT1NFLAorLQkJQkVHSU5fTU9WRSwKKy0JCUJFR0lOX1JFU0la RSwKKy0JCVRPR0dMRV9PTl9BTExfV09SS1NQQUNFUywKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzEs CistCQlNT1ZFX1RPX1dPUktTUEFDRV8yLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfMywKKy0JCU1P VkVfVE9fV09SS1NQQUNFXzQsCistCQlNT1ZFX1RPX1dPUktTUEFDRV81LAorLQkJTU9WRV9UT19X T1JLU1BBQ0VfNiwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzcsCistCQlNT1ZFX1RPX1dPUktTUEFD RV84LAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfOSwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzEwLAor LQkJTU9WRV9UT19XT1JLU1BBQ0VfMTEsCistCQlNT1ZFX1RPX1dPUktTUEFDRV8xMiwKKy0JCU1P VkVfVE9fV09SS1NQQUNFX0xFRlQsCistCQlNT1ZFX1RPX1dPUktTUEFDRV9SSUdIVCwKKy0JCU1P VkVfVE9fV09SS1NQQUNFX1VQLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfRE9XTiwKKy0JCU1PVkVf VE9fV09SS1NQQUNFX0xBU1QsCistCQlNT1ZFX1RPX01PTklUT1JfTEVGVCwKKy0JCU1PVkVfVE9f TU9OSVRPUl9SSUdIVCwKKy0JCU1PVkVfVE9fTU9OSVRPUl9VUCwKKy0JCU1PVkVfVE9fTU9OSVRP Ul9ET1dOLAorLQkJUkFJU0VfT1JfTE9XRVIsCistCQlSQUlTRSwKKy0JCUxPV0VSLAorLQkJTUFY SU1JWkVfVkVSVElDQUxMWSwKKy0JCU1BWElNSVpFX0hPUklaT05UQUxMWSwKKy0JCU1PVkVfVE9f Q09STkVSX05XLAorLQkJTU9WRV9UT19DT1JORVJfTkUsCistCQlNT1ZFX1RPX0NPUk5FUl9TVywK Ky0JCU1PVkVfVE9fQ09STkVSX1NFLAorLQkJTU9WRV9UT19TSURFX04sCistCQlNT1ZFX1RPX1NJ REVfUywKKy0JCU1PVkVfVE9fU0lERV9FLAorLQkJTU9WRV9UT19TSURFX1csCistCQlNT1ZFX1RP X0NFTlRFUiwKKy0JCU9WRVJMQVlfS0VZLAorLQkJSVNPX05FWFRfR1JPVVAsCistCQlBTFdBWVNf T05fVE9QLAorLQkJU1dJVENIX01PTklUT1IsCistCQlST1RBVEVfTU9OSVRPUiwKKy0JCUxBU1QK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9i b3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11 dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0 YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21l dGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMu aCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRp YWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFn ZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxl ci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEv bWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEt c3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lv bi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0 YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEv bWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1l dGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dv cmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0tFWV9CSU5ESU5HXyIsIHR5cGVfaWQgPSAibWV0 YV9rZXlfYmluZGluZ19mbGFnc19nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBl bnVtIEtleUJpbmRpbmdGbGFncyB7CistCQlOT05FLAorLQkJUEVSX1dJTkRPVywKKy0JCUJVSUxU SU4sCistCQlJU19SRVZFUlNFRCwKKy0JCU5PTl9NQVNLQUJMRSwKKy0JCUlHTk9SRV9BVVRPUkVQ RUFUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1l dGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRv ci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5o LG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0 b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0 YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5 cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0 cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1t YW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRy b2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxt ZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9t ZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZl cnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5o LG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxt ZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMu aCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0 YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9MQVRFUl8iLCB0eXBlX2lkID0gIm1ldGFf bGF0ZXJfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBMYXRlclR5cGUgeworLQkJ UkVTSVpFLAorLQkJQ0FMQ19TSE9XSU5HLAorLQkJQ0hFQ0tfRlVMTFNDUkVFTiwKKy0JCVNZTkNf U1RBQ0ssCistCQlCRUZPUkVfUkVEUkFXLAorLQkJSURMRQorLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxt ZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5Lmgs bWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFj a2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt Z3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdl LmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1l dGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0 b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5j aC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4u aCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdz LmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgs bWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFy dHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1h Y3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgs bWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0 YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMu aCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0g Ik1FVEFfTE9DQUxFX0RJUkVDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfbG9jYWxlX2RpcmVjdGlv bl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBMb2NhbGVEaXJlY3Rpb24geworLQkJTFRS LAorLQkJUlRMCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmll ci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29t cG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5k aW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9n LmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1l bnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNo b3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9u aXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNz LWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rv cnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgs bWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9t ZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1n cm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFn ZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEv cHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93 LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9NQVhJTUlaRV8iLCB0eXBlX2lk ID0gIm1ldGFfbWF4aW1pemVfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJs aWMgZW51bSBNYXhpbWl6ZUZsYWdzIHsKKy0JCUhPUklaT05UQUwsCistCQlWRVJUSUNBTCwKKy0J CUJPVEgKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgs bWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3Np dG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdz LmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1h Y3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxt ZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0t dHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRj dXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9y LW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29u dHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5o LG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRh L21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEt dmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3Vw LmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5o LG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVm cy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxt ZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX01PREFMXyIsIHR5cGVfaWQgPSAibWV0 YV9tb2RhbF9vcHRpb25zX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0g TW9kYWxPcHRpb25zIHsKKy0JCVBPSU5URVJfQUxSRUFEWV9HUkFCQkVELAorLQkJS0VZQk9BUkRf QUxSRUFEWV9HUkFCQkVECistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv YmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9r ZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2Ut ZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEv bWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhp Yml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21l dGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUt YWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93 LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxh eWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgs bWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdp bmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNl LW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5o LG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEv d2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9NT05JVE9SX1NXSVRD SF9DT05GSUdfIiwgdHlwZV9pZCA9ICJtZXRhX21vbml0b3Jfc3dpdGNoX2NvbmZpZ190eXBlX2dl dF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIE1vbml0b3JTd2l0Y2hDb25maWdUeXBlIHsKKy0J CUFMTF9NSVJST1IsCistCQlBTExfTElORUFSLAorLQkJRVhURVJOQUwsCistCQlCVUlMVElOLAor LQkJVU5LTk9XTgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJp ZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2Nv bXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5Ymlu ZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dy b3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxv Zy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEt ZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1z aG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1v bml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vz cy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0 b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5o LG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEv bWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ct Z3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5h Z2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRh L3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRv dy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfTU9USU9OXyIsIHR5cGVfaWQg PSAibWV0YV9tb3Rpb25fZGlyZWN0aW9uX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIE1v dGlvbkRpcmVjdGlvbiB7CistCQlVUCwKKy0JCURPV04sCistCQlMRUZULAorLQkJUklHSFQsCist CQlVUF9MRUZULAorLQkJVVBfUklHSFQsCistCQlET1dOX0xFRlQsCistCQlET1dOX1JJR0hUCist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94 ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEv bWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRh LWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgs bWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFs b2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIu aCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21l dGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0 YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24u aCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEv bWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21l dGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRh L3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jr c3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9QQURfQUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9w YWRfYWN0aW9uX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gUGFkQWN0aW9uVHlw ZSB7CistCQlCVVRUT04sCistCQlSSU5HLAorLQkJU1RSSVAKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgs bWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5o LG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJh Y2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFn ZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxt ZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25p dG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVu Y2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2lu LmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5n cy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5o LG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3Rh cnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ct YWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5o LG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1l dGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVz LmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9 ICJNRVRBX1BSRUZfIiwgdHlwZV9pZCA9ICJtZXRhX3ByZWZlcmVuY2VfZ2V0X3R5cGUgKCkiKV0K Ky0JcHVibGljIGVudW0gUHJlZmVyZW5jZSB7CistCQlNT1VTRV9CVVRUT05fTU9EUywKKy0JCUZP Q1VTX01PREUsCistCQlGT0NVU19ORVdfV0lORE9XUywKKy0JCUFUVEFDSF9NT0RBTF9ESUFMT0dT LAorLQkJUkFJU0VfT05fQ0xJQ0ssCistCQlBQ1RJT05fRE9VQkxFX0NMSUNLX1RJVExFQkFSLAor LQkJQUNUSU9OX01JRERMRV9DTElDS19USVRMRUJBUiwKKy0JCUFDVElPTl9SSUdIVF9DTElDS19U SVRMRUJBUiwKKy0JCUFVVE9fUkFJU0UsCistCQlBVVRPX1JBSVNFX0RFTEFZLAorLQkJRk9DVVNf Q0hBTkdFX09OX1BPSU5URVJfUkVTVCwKKy0JCVRJVExFQkFSX0ZPTlQsCistCQlOVU1fV09SS1NQ QUNFUywKKy0JCURZTkFNSUNfV09SS1NQQUNFUywKKy0JCUtFWUJJTkRJTkdTLAorLQkJRElTQUJM RV9XT1JLQVJPVU5EUywKKy0JCUJVVFRPTl9MQVlPVVQsCistCQlXT1JLU1BBQ0VfTkFNRVMsCist CQlWSVNVQUxfQkVMTCwKKy0JCUFVRElCTEVfQkVMTCwKKy0JCVZJU1VBTF9CRUxMX1RZUEUsCist CQlHTk9NRV9BQ0NFU1NJQklMSVRZLAorLQkJR05PTUVfQU5JTUFUSU9OUywKKy0JCUNVUlNPUl9U SEVNRSwKKy0JCUNVUlNPUl9TSVpFLAorLQkJUkVTSVpFX1dJVEhfUklHSFRfQlVUVE9OLAorLQkJ RURHRV9USUxJTkcsCistCQlGT1JDRV9GVUxMU0NSRUVOLAorLQkJV09SS1NQQUNFU19PTkxZX09O X1BSSU1BUlksCistCQlEUkFHR0FCTEVfQk9SREVSX1dJRFRILAorLQkJQVVUT19NQVhJTUlaRSwK Ky0JCUNFTlRFUl9ORVdfV0lORE9XUywKKy0JCURSQUdfVEhSRVNIT0xEOworLQkJcHVibGljIHVu b3duZWQgc3RyaW5nIHRvX3N0cmluZyAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21w b3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3Jv dXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgs bWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEv bWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEt ZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0 YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4 dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9t ZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEv bWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0 YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3Rp ZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxt ZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0 YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14 MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91 dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX1NI QURPV19NT0RFXyIsIHR5cGVfaWQgPSAibWV0YV9zaGFkb3dfbW9kZV9nZXRfdHlwZSAoKSIpXQor LQlwdWJsaWMgZW51bSBTaGFkb3dNb2RlIHsKKy0JCUFVVE8sCistCQlGT1JDRURfT0ZGLAorLQkJ Rk9SQ0VEX09OCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmll ci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29t cG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5k aW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9n LmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1l bnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNo b3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9u aXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNz LWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rv cnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgs bWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9t ZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1n cm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFn ZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEv cHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93 LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9TSURFXyIsIHR5cGVfaWQgPSAi bWV0YV9zaWRlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFNpZGUgeworLQkJTEVGVCwK Ky0JCVJJR0hULAorLQkJVE9QLAorLQkJQk9UVE9NCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEv Y29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRh L2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91 cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxt ZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9t ZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5o LG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNv bnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1l dGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxt ZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRh L21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAt bm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9y LmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRh L21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21l dGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1l dGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVU QV9TSVpFX0NIQU5HRV8iLCB0eXBlX2lkID0gIm1ldGFfc2l6ZV9jaGFuZ2VfZ2V0X3R5cGUgKCki KV0KKy0JcHVibGljIGVudW0gU2l6ZUNoYW5nZSB7CistCQlNQVhJTUlaRSwKKy0JCVVOTUFYSU1J WkUsCistCQlGVUxMU0NSRUVOLAorLQkJVU5GVUxMU0NSRUVOCistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5o LG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXku aCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1i YWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1h Z2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgs bWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9u aXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1 bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdp bi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGlu Z3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUu aCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0 YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93 LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUu aCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxt ZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBl cy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXgg PSAiTUVUQV9MQVlFUl8iLCB0eXBlX2lkID0gIm1ldGFfc3RhY2tfbGF5ZXJfZ2V0X3R5cGUgKCki KV0KKy0JcHVibGljIGVudW0gU3RhY2tMYXllciB7CistCQlERVNLVE9QLAorLQkJQk9UVE9NLAor LQkJTk9STUFMLAorLQkJVE9QLAorLQkJRE9DSywKKy0JCU9WRVJSSURFX1JFRElSRUNULAorLQkJ TEFTVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxt ZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3Mu aCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFj dG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1l dGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10 eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1 dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3It bWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250 cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5Lmgs bWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEv bWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12 ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAu aCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgs bWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZz LmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1l dGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfVEFCX0xJU1RfIiwgdHlwZV9pZCA9ICJt ZXRhX3RhYl9saXN0X2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFRhYkxpc3QgeworLQkJ Tk9STUFMLAorLQkJRE9DS1MsCistCQlHUk9VUCwKKy0JCU5PUk1BTF9BTEwKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEv Y29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEv ZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0 YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRy YWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEt aWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEv bWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21l dGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0 YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQt dGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRh L21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0 YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRv dy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlz cGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxt ZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwg Y3ByZWZpeCA9ICJNRVRBX1RBQl9TSE9XXyIsIHR5cGVfaWQgPSAibWV0YV90YWJfc2hvd190eXBl X2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFRhYlNob3dUeXBlIHsKKy0JCUlDT04sCist CQlJTlNUQU5UTFkKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJy aWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9j b21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJp bmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFs b2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRh LWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQt c2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1t b25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nl c3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFj dG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIu aCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRh L21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93 LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFu YWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0 YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5k b3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX1ZJUlRVQUxfIiwgdHlwZV9p ZCA9ICJtZXRhX3ZpcnR1YWxfbW9kaWZpZXJfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlw dWJsaWMgZW51bSBWaXJ0dWFsTW9kaWZpZXIgeworLQkJU0hJRlRfTUFTSywKKy0JCUNPTlRST0xf TUFTSywKKy0JCUFMVF9NQVNLLAorLQkJTUVUQV9NQVNLLAorLQkJU1VQRVJfTUFTSywKKy0JCUhZ UEVSX01BU0ssCistCQlNT0QyX01BU0ssCistCQlNT0QzX01BU0ssCistCQlNT0Q0X01BU0ssCist CQlNT0Q1X01BU0sKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJy aWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9j b21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJp bmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFs b2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRh LWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQt c2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1t b25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nl c3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFj dG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIu aCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRh L21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93 LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFu YWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0 YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5k b3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX1dJTkRPV19DTElFTlRfVFlQ RV8iLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X2NsaWVudF90eXBlX2dldF90eXBlICgpIildCist CXB1YmxpYyBlbnVtIFdpbmRvd0NsaWVudFR5cGUgeworLQkJV0FZTEFORCwKKy0JCVgxMQorLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVz LmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21h aW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1j dXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1l dGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9n LmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5o LG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgs bWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRh LXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFn ZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgs bWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21l dGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRh LXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90 aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3Nw YWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfV0lORE9XX01FTlVfIiwgdHlwZV9pZCA9ICJtZXRhX3dp bmRvd19tZW51X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gV2luZG93TWVudVR5 cGUgeworLQkJV00sCistCQlBUFAKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9y LmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxt ZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1j bG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgs bWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRh LWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1l dGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJl bW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1z aGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3Vu ZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRp b24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21l dGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jr c3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJy b3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgs bWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX1dJTkRPV18i LCB0eXBlX2lkID0gIm1ldGFfd2luZG93X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVu dW0gV2luZG93VHlwZSB7CistCQlOT1JNQUwsCistCQlERVNLVE9QLAorLQkJRE9DSywKKy0JCURJ QUxPRywKKy0JCU1PREFMX0RJQUxPRywKKy0JCVRPT0xCQVIsCistCQlNRU5VLAorLQkJVVRJTElU WSwKKy0JCVNQTEFTSFNDUkVFTiwKKy0JCURST1BET1dOX01FTlUsCistCQlQT1BVUF9NRU5VLAor LQkJVE9PTFRJUCwKKy0JCU5PVElGSUNBVElPTiwKKy0JCUNPTUJPLAorLQkJRE5ELAorLQkJT1ZF UlJJREVfT1RIRVIKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJy aWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9j b21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJp bmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFs b2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRh LWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQt c2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1t b25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nl c3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFj dG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIu aCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRh L21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93 LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFu YWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0 YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5k b3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0KKy0JcHVibGljIGRl bGVnYXRlIHZvaWQgSWRsZU1vbml0b3JXYXRjaEZ1bmMgKE1ldGEuSWRsZU1vbml0b3IgbW9uaXRv ciwgdWludCB3YXRjaF9pZCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Jh cnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5 YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRp YWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21l dGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJp dC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRh LW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFj Y2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1m YWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXll ci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1l dGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5k b3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1t YW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxt ZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dp bmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBpbnN0YW5jZV9wb3MgPSA0LjkpXQorLQlwdWJsaWMg ZGVsZWdhdGUgdm9pZCBLZXlIYW5kbGVyRnVuYyAoTWV0YS5EaXNwbGF5IGRpc3BsYXksIE1ldGEu V2luZG93IHdpbmRvdywgW0NDb2RlICh0eXBlID0gIkNsdXR0ZXJLZXlFdmVudCoiKV0gQ2x1dHRl ci5LZXlFdmVudD8gZXZlbnQsIE1ldGEuS2V5QmluZGluZyBiaW5kaW5nKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1v bi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3Bs YXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0 YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt aW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2Vy LmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUt bW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEt bGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBs dWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0 dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1 cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRh LXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2lu ZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hh cGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXku aCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90 eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGluc3Rh bmNlX3BvcyA9IDEuOSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIFByZWZzQ2hhbmdlZEZ1bmMg KE1ldGEuUHJlZmVyZW5jZSBwcmVmKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5o LG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0 YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xv c2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1l dGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1p bmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRh L21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1v dGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hh ZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQt cGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9u LmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRh LXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3Nw YWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9y cy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1l dGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCistCXB1 YmxpYyBkZWxlZ2F0ZSBib29sIFdpbmRvd0ZvcmVhY2hGdW5jIChNZXRhLldpbmRvdyB3aW5kb3cp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hl cy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRl ci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9t YWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEt Y3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxt ZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxv Zy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIu aCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5o LG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0 YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3Rh Z2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5o LG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9t ZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0 YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEv dGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtz cGFjZS5oIiwgY25hbWUgPSAiTUVUQV9DVVJSRU5UX1RJTUUiKV0KKy0JcHVibGljIGNvbnN0IGlu dCBDVVJSRU5UX1RJTUU7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJp ZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2Nv bXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5Ymlu ZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dy b3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxv Zy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEt ZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1z aG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1v bml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vz cy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0 b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5o LG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEv bWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ct Z3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5h Z2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRh L3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRv dy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX0RFRkFVTFRfSUNPTl9OQU1FIild CistCXB1YmxpYyBjb25zdCBzdHJpbmcgREVGQVVMVF9JQ09OX05BTUU7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24u aCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5 LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEt YmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWlt YWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5o LG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1v bml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxh dW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVn aW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRp bmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJl LmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1z dGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRv dy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBl LmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5Lmgs bWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlw ZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9 ICJNRVRBX0lDT05fSEVJR0hUIildCistCXB1YmxpYyBjb25zdCBpbnQgSUNPTl9IRUlHSFQ7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgs bWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgs bWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4u aCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJz b3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEv bWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgs bWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1l dGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0 YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNo YXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5o LG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0 YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEt d2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgx MS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVt ZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNl LmgiLCBjbmFtZSA9ICJNRVRBX0lDT05fV0lEVEgiKV0KKy0JcHVibGljIGNvbnN0IGludCBJQ09O X1dJRFRIOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0 YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9y LW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgs bWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rv ci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRh L21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlw ZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRz LWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1h bmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJv bGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1l dGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21l dGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVy c2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgs bWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1l dGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5o LG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRh L3dvcmtzcGFjZS5oIiwgY25hbWUgPSAiTUVUQV9NQUpPUl9WRVJTSU9OIildCistCXB1YmxpYyBj b25zdCBpbnQgTUFKT1JfVkVSU0lPTjsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5o LG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0 YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xv c2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1l dGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1p bmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRh L21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1v dGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hh ZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQt cGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9u LmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRh LXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3Nw YWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9y cy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1l dGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFfTUlDUk9fVkVSU0lP TiIpXQorLQlwdWJsaWMgY29uc3QgaW50IE1JQ1JPX1ZFUlNJT047CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxt ZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5Lmgs bWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFj a2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt Z3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdl LmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1l dGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0 b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5j aC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4u aCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdz LmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgs bWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFy dHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1h Y3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgs bWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0 YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMu aCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJN RVRBX01JTklfSUNPTl9IRUlHSFQiKV0KKy0JcHVibGljIGNvbnN0IGludCBNSU5JX0lDT05fSEVJ R0hUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9i b3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11 dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0 YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21l dGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMu aCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRp YWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFn ZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxl ci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEv bWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEt c3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lv bi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0 YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEv bWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1l dGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dv cmtzcGFjZS5oIiwgY25hbWUgPSAiTUVUQV9NSU5JX0lDT05fV0lEVEgiKV0KKy0JcHVibGljIGNv bnN0IGludCBNSU5JX0lDT05fV0lEVEg7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3Iu aCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1l dGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21l dGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNs b3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxt ZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEt aW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0 YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVt b3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNo YWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5k LXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlv bi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0 YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtz cGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJv cnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxt ZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX01JTk9SX1ZFUlNJ T04iKV0KKy0JcHVibGljIGNvbnN0IGludCBNSU5PUl9WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgs bWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5o LG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJh Y2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFn ZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxt ZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25p dG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVu Y2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2lu LmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5n cy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5o LG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3Rh cnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ct YWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5o LG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1l dGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVz LmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUgPSAi TUVUQV9QTFVHSU5fQVBJX1ZFUlNJT04iKV0KKy0JcHVibGljIGNvbnN0IGludCBQTFVHSU5fQVBJ X1ZFUlNJT047CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxt ZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3Mu aCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFj dG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1l dGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10 eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1 dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3It bWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250 cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5Lmgs bWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEv bWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12 ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAu aCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgs bWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZz LmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1l dGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZX0JFRk9SRV9SRURSQVciKV0K Ky0JcHVibGljIGNvbnN0IGludCBQUklPUklUWV9CRUZPUkVfUkVEUkFXOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9u LmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxh eS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRh LWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1p bWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIu aCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1t b25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1s YXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1 Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0 aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVy ZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEt c3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5k b3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFw ZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5o LG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5 cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUg PSAiTUVUQV9QUklPUklUWV9QUkVGU19OT1RJRlkiKV0KKy0JcHVibGljIGNvbnN0IGludCBQUklP UklUWV9QUkVGU19OT1RJRlk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Jh cnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5 YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRp YWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21l dGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJp dC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRh LW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFj Y2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1m YWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXll ci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1l dGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5k b3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1t YW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxt ZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dp bmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZX1JFRFJBVyIp XQorLQlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZX1JFRFJBVzsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1l dGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxt ZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNr ZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1n cm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2Uu aCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0 YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRv ci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNo LWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5o LG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3Mu aCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxt ZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0 dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFj dG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxt ZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRh L21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5o LG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1F VEFfUFJJT1JJVFlfUkVTSVpFIildCistCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfUkVTSVpF OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hl cy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRl ci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9t YWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEt Y3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxt ZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxv Zy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIu aCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5o LG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0 YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3Rh Z2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5o LG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9t ZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0 YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEv dGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtz cGFjZS5oIiwgY25hbWUgPSAiTUVUQV9WSVJUVUFMX0NPUkVfS0VZQk9BUkRfSUQiKV0KKy0JcHVi bGljIGNvbnN0IGludCBWSVJUVUFMX0NPUkVfS0VZQk9BUkRfSUQ7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxt ZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5Lmgs bWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFj a2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt Z3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdl LmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1l dGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0 b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5j aC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4u aCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdz LmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgs bWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFy dHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1h Y3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgs bWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0 YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMu aCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJN RVRBX1ZJUlRVQUxfQ09SRV9QT0lOVEVSX0lEIildCistCXB1YmxpYyBjb25zdCBpbnQgVklSVFVB TF9DT1JFX1BPSU5URVJfSUQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Jh cnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5 YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRp YWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21l dGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJp dC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRh LW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFj Y2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1m YWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXll ci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1l dGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5k b3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1t YW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxt ZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dp bmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGFjdGl2YXRl X3Nlc3Npb24gKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIu aCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGlu Z3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5o LG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51 bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9y dGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1j b250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1l dGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0 YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3Jv dXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3By ZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5o LG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGV4aXQgKE1ldGEuRXhp dENvZGUgY29kZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIu aCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGlu Z3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5o LG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51 bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9y dGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1j b250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1l dGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0 YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3Jv dXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3By ZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5o LG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIEdMaWIuT3B0aW9u Q29udGV4dCBnZXRfb3B0aW9uX2NvbnRleHQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBv c2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91 cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9t ZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1k bmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRh L21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0 LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21l dGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9t ZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRh LXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlm aWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1l dGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRh LXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgx MS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0 aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyBi b29sIGdldF9yZXBsYWNlX2N1cnJlbnRfd20gKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBv c2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91 cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9t ZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1k bmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRh L21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0 LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21l dGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9t ZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRh LXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlm aWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1l dGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRh LXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgx MS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0 aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIGluaXQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIu aCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGlu Z3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5o LG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51 bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9y dGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1j b250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1l dGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0 YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3Jv dXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3By ZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5o LG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGlzX3Jlc3RhcnQgKCk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVz LmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21h aW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1j dXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1l dGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9n LmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5o LG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgs bWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRh LXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFn ZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgs bWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21l dGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRh LXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90 aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3Nw YWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHF1aXQgKE1ldGEuRXhpdENvZGUgY29kZSk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVz LmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21h aW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1j dXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1l dGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9n LmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5o LG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgs bWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRh LXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFn ZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgs bWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21l dGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRh LXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90 aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3Nw YWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlZ2lzdGVyX3dpdGhfc2Vzc2lvbiAoKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMu aCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIu aCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFp bi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1 cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0 YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cu aCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgs bWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxt ZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEt c2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdl LmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxt ZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0 YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEt eDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3Ro ZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3Bh Y2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVzdGFydCAoc3RyaW5nPyBtZXNzYWdlKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMu aCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIu aCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFp bi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1 cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0 YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cu aCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgs bWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxt ZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEt c2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdl LmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxt ZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0 YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEt eDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3Ro ZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3Bh Y2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIGludCBydW4gKCk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRh L2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0 YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3Jv dXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgs bWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEv bWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3Iu aCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1j b250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxt ZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgs bWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0 YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVw LW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rv ci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0 YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9t ZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxt ZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHNldF9nbm9tZV93bV9rZXliaW5kaW5ncyAoc3RyaW5nIHdtX2tleWJpbmRpbmdz KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94 ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEv bWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRh LWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgs bWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFs b2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIu aCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21l dGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0 YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24u aCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEv bWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21l dGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRh L3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jr c3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3dtX25hbWUgKHN0cmluZyB3bV9u YW1lKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEv Ym94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1t dXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1l dGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3Iu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9t ZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVz LmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1k aWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5h Z2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xs ZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRh L21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRh LXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNp b24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1l dGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRh L21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxt ZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93 b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgeDExX2luaXRfZ2RrX2Rpc3BsYXkg KCkgdGhyb3dzIEdMaWIuRXJyb3I7CistfQorZGlmZiAtLWdpdCB2YXBpL2xpYm11dHRlci01LmRl cHMgdmFwaS9saWJtdXR0ZXItNi5kZXBzCitzaW1pbGFyaXR5IGluZGV4IDUwJQorcmVuYW1lIGZy b20gdmFwaS9saWJtdXR0ZXItNS5kZXBzCityZW5hbWUgdG8gdmFwaS9saWJtdXR0ZXItNi5kZXBz CitpbmRleCA0OGFhNzU2My4uMjIzNTI1ZTQgMTAwNjQ0CistLS0gdmFwaS9saWJtdXR0ZXItNS5k ZXBzCisrKysgdmFwaS9saWJtdXR0ZXItNi5kZXBzCitAQCAtMSw1ICsxLDYgQEAKKyBndGsrLTMu MAorIGpzb24tZ2xpYi0xLjAKKy1tdXR0ZXItY2x1dHRlci01CisrbXV0dGVyLWNsdXR0ZXItNgor IHgxMQorIHhmaXhlcy00LjAKKytncmFwaGVuZS1nb2JqZWN0LTEuMAorZGlmZiAtLWdpdCB2YXBp L2xpYm11dHRlci01LnZhcGkgdmFwaS9saWJtdXR0ZXItNi52YXBpCitzaW1pbGFyaXR5IGluZGV4 IDk3JQorcmVuYW1lIGZyb20gdmFwaS9saWJtdXR0ZXItNS52YXBpCityZW5hbWUgdG8gdmFwaS9s aWJtdXR0ZXItNi52YXBpCitpbmRleCBiOTVhMjhlNi4uYjM2YmUxYjcgMTAwNjQ0CistLS0gdmFw aS9saWJtdXR0ZXItNS52YXBpCisrKysgdmFwaS9saWJtdXR0ZXItNi52YXBpCitAQCAtMSwxMiAr MSwxMCBAQAorLS8qIGxpYm11dHRlci01LnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5v dCBtb2RpZnkuICovCisrLyogbGlibXV0dGVyLTYudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwg ZG8gbm90IG1vZGlmeS4gKi8KKyAKKy1bQ0NvZGUgKGNwcmVmaXggPSAiTWV0YSIsIGdpcl9uYW1l c3BhY2UgPSAiTWV0YSIsIGdpcl92ZXJzaW9uID0gIjUiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAi bWV0YV8iKV0KKytbQ0NvZGUgKGNwcmVmaXggPSAiTWV0YSIsIGdpcl9uYW1lc3BhY2UgPSAiTWV0 YSIsIGdpcl92ZXJzaW9uID0gIjYiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAibWV0YV8iKV0KKyBu YW1lc3BhY2UgTWV0YSB7CisgCW5hbWVzcGFjZSBDb21wb3NpdG9yIHsKKyAJCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRh X2Rpc2FibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSIpXQorIAkJcHVibGljIHN0YXRpYyB2b2lk IGRpc2FibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOwor LQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIs IGNuYW1lID0gIm1ldGFfZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIildCistCQlwdWJsaWMgc3Rh dGljIHZvaWQgZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7 CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5o IiwgY25hbWUgPSAibWV0YV9lbmFibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSIpXQorIAkJcHVi bGljIHN0YXRpYyB2b2lkIGVuYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IChNZXRhLkRpc3Bs YXkgZGlzcGxheSk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3Np dG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9mb2N1c19zdGFnZV93aW5kb3ciKV0KK0BAIC0y MSw4ICsxOSw2IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBH TGliLkxpc3Q8Q2x1dHRlci5BY3Rvcj4gZ2V0X3dpbmRvd19hY3RvcnMgKE1ldGEuRGlzcGxheSBk aXNwbGF5KTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dldF93aW5kb3dfZ3JvdXBfZm9yX2Rpc3BsYXkiKV0K KyAJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF93aW5kb3dfZ3JvdXBf Zm9yX2Rpc3BsYXkgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX3NldF9z dGFnZV9pbnB1dF9yZWdpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc3RhZ2VfaW5w dXRfcmVnaW9uIChNZXRhLkRpc3BsYXkgZGlzcGxheSwgWC5Yc2VydmVyUmVnaW9uIHJlZ2lvbik7 CisgCX0KKyAJbmFtZXNwYWNlIFByZWZzIHsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2JlbGxfaXNfYXVkaWJsZSIpXQor QEAgLTE2NCw3ICsxNjAsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgdm9pZCBzZXRf bnVtbG9jayAoYm9vbCBudW1sb2NrX3N0YXRlKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBrZXlt YXBfY2hhbmdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBrZXltYXBfbGF5b3V0X2dyb3Vw X2NoYW5nZWQgKHVpbnQgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBsYXN0X2Rldmlj ZV9jaGFuZ2VkIChpbnQgb2JqZWN0KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBsYXN0X2Rldmlj ZV9jaGFuZ2VkIChDbHV0dGVyLklucHV0RGV2aWNlIG9iamVjdCk7CisgCQlwdWJsaWMgc2lnbmFs IHZvaWQgbGlkX2lzX2Nsb3NlZF9jaGFuZ2VkIChib29sIG9iamVjdCk7CisgCX0KKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgiLCB0eXBlX2lkID0g Im1ldGFfYmFja2dyb3VuZF9nZXRfdHlwZSAoKSIpXQorQEAgLTE3NCw3ICsxNzAsNyBAQCBuYW1l c3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgc3RhdGljIHZvaWQgcmVmcmVzaF9hbGwgKCk7CisgCQlw dWJsaWMgdm9pZCBzZXRfYmxlbmQgKEdMaWIuRmlsZSBmaWxlMSwgR0xpYi5GaWxlIGZpbGUyLCBk b3VibGUgYmxlbmRfZmFjdG9yLCBHRGVza3RvcC5CYWNrZ3JvdW5kU3R5bGUgc3R5bGUpOworIAkJ cHVibGljIHZvaWQgc2V0X2NvbG9yIChDbHV0dGVyLkNvbG9yIGNvbG9yKTsKKy0JCXB1YmxpYyB2 b2lkIHNldF9maWxlIChHTGliLkZpbGUgZmlsZSwgR0Rlc2t0b3AuQmFja2dyb3VuZFN0eWxlIHN0 eWxlKTsKKysJCXB1YmxpYyB2b2lkIHNldF9maWxlIChHTGliLkZpbGU/IGZpbGUsIEdEZXNrdG9w LkJhY2tncm91bmRTdHlsZSBzdHlsZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfZ3JhZGllbnQgKEdE ZXNrdG9wLkJhY2tncm91bmRTaGFkaW5nIHNoYWRpbmdfZGlyZWN0aW9uLCBDbHV0dGVyLkNvbG9y IGNvbG9yLCBDbHV0dGVyLkNvbG9yIHNlY29uZF9jb2xvcik7CisgCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKyAJCXB1YmxpYyBNZXRhLkRpc3BsYXkgbWV0YV9kaXNwbGF5IHsgb3duZWQgZ2V0OyBjb25z dHJ1Y3Q7IH0KK0BAIC0yNzUsNyArMjcxLDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGlj IHVub3duZWQgQ29nbC5UZXh0dXJlIGdldF9zcHJpdGUgKCk7CisgCQlwdWJsaWMgdm9pZCBzZXRf cG9pbnRlcl92aXNpYmxlIChib29sIHZpc2libGUpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGN1 cnNvcl9jaGFuZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGN1cnNvcl9tb3ZlZCAoZmxv YXQgb2JqZWN0LCBmbG9hdCBwMCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29yX21vdmVk IChmbG9hdCB4LCBmbG9hdCB5KTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB2aXNpYmlsaXR5X2No YW5nZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvZGlzcGxh eS5oIiwgdHlwZV9pZCA9ICJtZXRhX2Rpc3BsYXlfZ2V0X3R5cGUgKCkiKV0KK0BAIC0zMjcsNiAr MzIzLDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIGJvb2wgeHNlcnZlcl90aW1lX2lz X2JlZm9yZSAodWludDMyIHRpbWUxLCB1aW50MzIgdGltZTIpOworIAkJcHVibGljIE1ldGEuV2lu ZG93IGZvY3VzX3dpbmRvdyB7IGdldDsgfQorIAkJcHVibGljIHNpZ25hbCB2b2lkIGFjY2VsZXJh dG9yX2FjdGl2YXRlZCAodWludCBvYmplY3QsIENsdXR0ZXIuSW5wdXREZXZpY2UgcDAsIHVpbnQg cDEpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGNsb3NpbmcgKCk7CisgCQlwdWJsaWMgc2lnbmFs IHZvaWQgY3Vyc29yX3VwZGF0ZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZ2xfdmlkZW9f bWVtb3J5X3B1cmdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBncmFiX29wX2JlZ2luIChN ZXRhLkRpc3BsYXkgb2JqZWN0LCBNZXRhLldpbmRvdyBwMCwgTWV0YS5HcmFiT3AgcDEpOworQEAg LTM1MCw2ICszNDcsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQg d29ya2FyZWFzX2NoYW5nZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgeDExX2Rpc3BsYXlf Y2xvc2luZyAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB4MTFfZGlzcGxheV9vcGVuZWQgKCk7 CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgeDExX2Rpc3BsYXlfc2V0dXAgKCk7CisgCX0KKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1kbmQuaCIsIHR5cGVfaWQgPSAibWV0 YV9kbmRfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIERuZCA6IEdMaWIuT2JqZWN0IHsK K0BAIC0zNzAsMTEgKzM2OCwxMCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgdWludCBh ZGRfaWRsZV93YXRjaCAodWludDY0IGludGVydmFsX21zZWMsIG93bmVkIE1ldGEuSWRsZU1vbml0 b3JXYXRjaEZ1bmM/IGNhbGxiYWNrKTsKKyAJCXB1YmxpYyB1aW50IGFkZF91c2VyX2FjdGl2ZV93 YXRjaCAob3duZWQgTWV0YS5JZGxlTW9uaXRvcldhdGNoRnVuYz8gY2FsbGJhY2spOworIAkJcHVi bGljIHN0YXRpYyB1bm93bmVkIE1ldGEuSWRsZU1vbml0b3IgZ2V0X2NvcmUgKCk7CistCQlwdWJs aWMgc3RhdGljIHVub3duZWQgTWV0YS5JZGxlTW9uaXRvciBnZXRfZm9yX2RldmljZSAoaW50IGRl dmljZV9pZCk7CisgCQlwdWJsaWMgaW50NjQgZ2V0X2lkbGV0aW1lICgpOworIAkJcHVibGljIHZv aWQgcmVtb3ZlX3dhdGNoICh1aW50IGlkKTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVi bGljIGludCBkZXZpY2VfaWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIENsdXR0ZXIu SW5wdXREZXZpY2UgZGV2aWNlIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJfQorIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdf Ym94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJt ZXRhX2tleV9iaW5kaW5nX2dldF90eXBlICgpIildCisgCVtDb21wYWN0XQorQEAgLTUzNiwxNSAr NTMzLDE0IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBjaGFuZ2Vk ICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtc2hhcGVk LXRleHR1cmUuaCIsIHR5cGVfaWQgPSAibWV0YV9zaGFwZWRfdGV4dHVyZV9nZXRfdHlwZSAoKSIp XQorLQlwdWJsaWMgY2xhc3MgU2hhcGVkVGV4dHVyZSA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBs ZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5T Y3JpcHRhYmxlIHsKKysJcHVibGljIGNsYXNzIFNoYXBlZFRleHR1cmUgOiBHTGliLk9iamVjdCwg Q2x1dHRlci5Db250ZW50IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlKV0KKyAJCXByb3RlY3RlZCBTaGFwZWRUZXh0dXJlICgpOworLQkJcHVibGljIENhaXJvLlN1 cmZhY2UgZ2V0X2ltYWdlIChDYWlyby5SZWN0YW5nbGVJbnQgY2xpcCk7CisrCQlwdWJsaWMgQ2Fp cm8uU3VyZmFjZT8gZ2V0X2ltYWdlIChDYWlyby5SZWN0YW5nbGVJbnQ/IGNsaXApOworIAkJcHVi bGljIHVub3duZWQgQ29nbC5UZXh0dXJlIGdldF90ZXh0dXJlICgpOworIAkJcHVibGljIHZvaWQg c2V0X2NyZWF0ZV9taXBtYXBzIChib29sIGNyZWF0ZV9taXBtYXBzKTsKKyAJCXB1YmxpYyB2b2lk IHNldF9tYXNrX3RleHR1cmUgKENvZ2wuVGV4dHVyZSBtYXNrX3RleHR1cmUpOworIAkJcHVibGlj IHZvaWQgc2V0X29wYXF1ZV9yZWdpb24gKG93bmVkIENhaXJvLlJlZ2lvbiBvcGFxdWVfcmVnaW9u KTsKKy0JCXB1YmxpYyBib29sIHVwZGF0ZV9hcmVhIChpbnQgeCwgaW50IHksIGludCB3aWR0aCwg aW50IGhlaWdodCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2l6ZV9jaGFuZ2VkICgpOworIAl9 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtc291bmQtcGxheWVyLmgi LCB0eXBlX2lkID0gIm1ldGFfc291bmRfcGxheWVyX2dldF90eXBlICgpIildCitAQCAtNzU2LDE3 ICs3NTIsMTYgQEAgbmFtZXNwYWNlIE1ldGEgeworIAlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgV2lu ZG93QWN0b3IgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0 YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CisgCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgV2luZG93QWN0 b3IgKCk7CisrCQlwdWJsaWMgQ2Fpcm8uU3VyZmFjZT8gZ2V0X2ltYWdlIChDYWlyby5SZWN0YW5n bGVJbnQ/IGNsaXApOworIAkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X21ldGFfd2lu ZG93ICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfdGV4dHVyZSAoKTsK KysJCXB1YmxpYyB1bm93bmVkIE1ldGEuU2hhcGVkVGV4dHVyZSBnZXRfdGV4dHVyZSAoKTsKKyAJ CXB1YmxpYyBib29sIGlzX2Rlc3Ryb3llZCAoKTsKKyAJCXB1YmxpYyB2b2lkIHN5bmNfdmlzaWJp bGl0eSAoKTsKKyAJCXB1YmxpYyBNZXRhLldpbmRvdyBtZXRhX3dpbmRvdyB7IGdldDsgY29uc3Ry dWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBzdHJpbmcgc2hhZG93X2Ns YXNzIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGlj IE1ldGEuU2hhZG93TW9kZSBzaGFkb3dfbW9kZSB7IGdldDsgc2V0OyB9CisrCQlwdWJsaWMgc2ln bmFsIHZvaWQgZGFtYWdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBlZmZlY3RzX2NvbXBs ZXRlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBmaXJzdF9mcmFtZSAoKTsKKysJCXB1Ymxp YyBzaWduYWwgdm9pZCB0aGF3ZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfZ3Jv dXBfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIFdpbmRvd0dyb3VwIDogQ2x1dHRlci5B Y3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFp bmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworQEAgLTgxMyw3ICs4MDgsNyBAQCBuYW1lc3BhY2Ug TWV0YSB7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZSBnZXRfYWN0aXZlX3dvcmtz cGFjZSAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X2FjdGl2ZV93b3Jrc3BhY2VfaW5kZXggKCk7Cisg CQlwdWJsaWMgaW50IGdldF9uX3dvcmtzcGFjZXMgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRh LldvcmtzcGFjZSBnZXRfd29ya3NwYWNlX2J5X2luZGV4IChpbnQgaW5kZXgpOworKwkJcHVibGlj IHVub3duZWQgTWV0YS5Xb3Jrc3BhY2U/IGdldF93b3Jrc3BhY2VfYnlfaW5kZXggKGludCBpbmRl eCk7CisgCQlwdWJsaWMgdm9pZCBvdmVycmlkZV93b3Jrc3BhY2VfbGF5b3V0IChNZXRhLkRpc3Bs YXlDb3JuZXIgc3RhcnRpbmdfY29ybmVyLCBib29sIHZlcnRpY2FsX2xheW91dCwgaW50IG5fcm93 cywgaW50IG5fY29sdW1ucyk7CisgCQlwdWJsaWMgdm9pZCByZW1vdmVfd29ya3NwYWNlIChNZXRh LldvcmtzcGFjZSB3b3Jrc3BhY2UsIHVpbnQzMiB0aW1lc3RhbXApOworIAkJcHVibGljIHZvaWQg cmVvcmRlcl93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSwgaW50IG5ld19pbmRl eCk7CitAQCAtODMzLDExICs4MjgsMTMgQEAgbmFtZXNwYWNlIE1ldGEgeworIAlwdWJsaWMgY2xh c3MgWDExRGlzcGxheSA6IEdMaWIuT2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9m dW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBYMTFEaXNwbGF5ICgpOworKwkJcHVibGlj IHZvaWQgY2xlYXJfc3RhZ2VfaW5wdXRfcmVnaW9uICgpOworIAkJcHVibGljIGludCBnZXRfZGFt YWdlX2V2ZW50X2Jhc2UgKCk7CisgCQlwdWJsaWMgaW50IGdldF9zY3JlZW5fbnVtYmVyICgpOwor IAkJcHVibGljIGludCBnZXRfc2hhcGVfZXZlbnRfYmFzZSAoKTsKKyAJCXB1YmxpYyBib29sIGhh c19zaGFwZSAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9jbV9zZWxlY3Rpb24gKCk7CisrCQlwdWJs aWMgdm9pZCBzZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIChYLlhzZXJ2ZXJSZWdpb24gcmVnaW9uKTsK KyAJCXB1YmxpYyBib29sIHh3aW5kb3dfaXNfYV9ub19mb2N1c193aW5kb3cgKFguV2luZG93IHh3 aW5kb3cpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtY2xv c2UtZGlhbG9nLmgiLCB0eXBlX2NuYW1lID0gIk1ldGFDbG9zZURpYWxvZ0ludGVyZmFjZSIsIHR5 cGVfaWQgPSAibWV0YV9jbG9zZV9kaWFsb2dfZ2V0X3R5cGUgKCkiKV0KK0BAIC04OTksNyArODk2 LDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHVpbnQgdmVyc2lvbl9taWNybzsKKyAJ CXB1YmxpYyB1aW50IHZlcnNpb25fYXBpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIsIHR5cGVfaWQgPSAibWV0YV9yZWN0YW5nbGVfZ2V0X3R5cGUgKCki KV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY29weV9mdW5j dGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5 cGVfaWQgPSAibWV0YV9yZWN0YW5nbGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIHN0cnVjdCBS ZWN0YW5nbGUgeworIAkJcHVibGljIGludCB4OworIAkJcHVibGljIGludCB5OworQEAgLTE0NDMs NiArMTQ0MCw4IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCBhY3RpdmF0ZV9zZXNzaW9u ICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKysJcHVi bGljIHN0YXRpYyB2b2lkIGFkZF9jbHV0dGVyX2RlYnVnX2ZsYWdzIChDbHV0dGVyLkRlYnVnRmxh ZyBkZWJ1Z19mbGFncywgQ2x1dHRlci5EcmF3RGVidWdGbGFnIGRyYXdfZmxhZ3MsIENsdXR0ZXIu UGlja0RlYnVnRmxhZyBwaWNrX2ZsYWdzKTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBleGl0IChNZXRhLkV4aXRDb2Rl IGNvZGUpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJ cHVibGljIHN0YXRpYyBzdHJpbmcgZ191dGY4X3N0cm5kdXAgKHN0cmluZyBzcmMsIHNpemVfdCBu KTsKK0BAIC0xNDU5LDYgKzE0NTgsOCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgcmVn aXN0ZXJfd2l0aF9zZXNzaW9uICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiKV0KKysJcHVibGljIHN0YXRpYyB2b2lkIHJlbW92ZV9jbHV0dGVyX2RlYnVnX2Zs YWdzIChDbHV0dGVyLkRlYnVnRmxhZyBkZWJ1Z19mbGFncywgQ2x1dHRlci5EcmF3RGVidWdGbGFn IGRyYXdfZmxhZ3MsIENsdXR0ZXIuUGlja0RlYnVnRmxhZyBwaWNrX2ZsYWdzKTsKKysJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgdm9p ZCByZXN0YXJ0IChzdHJpbmc/IG1lc3NhZ2UpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyBpbnQgcnVuICgpOworQEAgLTE0Njcs NSArMTQ2OCw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfd21fbmFtZSAoc3Ry aW5nIHdtX25hbWUpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi KV0KKysJcHVibGljIHN0YXRpYyB2b2lkIHRlc3RfaW5pdCAoKTsKKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCB4MTFfaW5p dF9nZGtfZGlzcGxheSAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyB9CitkaWZmIC0tZ2l0IHZhcGkv bGlibXV0dGVyLTctY3VzdG9tLnZhbGEgdmFwaS9saWJtdXR0ZXItNy1jdXN0b20udmFsYQorbmV3 IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwLi4xZTBiOTE3YworLS0tIC9kZXYvbnVs bAorKysrIHZhcGkvbGlibXV0dGVyLTctY3VzdG9tLnZhbGEKK0BAIC0wLDAgKzEsNyBAQAorK1tD Q29kZSAoaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrcHVibGljIHN0cnVjdCBiZWZvcmVfZnJhbWUg eworK30KKysKKytbQ0NvZGUgKGhhc190eXBlX2lkID0gZmFsc2UpXQorK3B1YmxpYyBzdHJ1Y3Qg ZnJhbWUgeworK30KK2RpZmYgLS1naXQgdmFwaS9saWJtdXR0ZXItNy5kZXBzIHZhcGkvbGlibXV0 dGVyLTcuZGVwcworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwLi4yZWY5MTll ZQorLS0tIC9kZXYvbnVsbAorKysrIHZhcGkvbGlibXV0dGVyLTcuZGVwcworQEAgLTAsMCArMSw2 IEBACisrZ3RrKy0zLjAKKytqc29uLWdsaWItMS4wCisrbXV0dGVyLWNsdXR0ZXItNworK3gxMQor K3hmaXhlcy00LjAKKytncmFwaGVuZS1nb2JqZWN0LTEuMAorZGlmZiAtLWdpdCB2YXBpL2xpYm11 dHRlci0zLnZhcGkgdmFwaS9saWJtdXR0ZXItNy52YXBpCitzaW1pbGFyaXR5IGluZGV4IDc1JQor cmVuYW1lIGZyb20gdmFwaS9saWJtdXR0ZXItMy52YXBpCityZW5hbWUgdG8gdmFwaS9saWJtdXR0 ZXItNy52YXBpCitpbmRleCAxNzE1YWE4Zi4uOTBjNDE1OTAgMTAwNjQ0CistLS0gdmFwaS9saWJt dXR0ZXItMy52YXBpCisrKysgdmFwaS9saWJtdXR0ZXItNy52YXBpCitAQCAtMSwxMiArMSwxMCBA QAorLS8qIGxpYm11dHRlci0zLnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2Rp ZnkuICovCisrLyogbGlibXV0dGVyLTcudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90 IG1vZGlmeS4gKi8KKyAKKy1bQ0NvZGUgKGNwcmVmaXggPSAiTWV0YSIsIGdpcl9uYW1lc3BhY2Ug PSAiTWV0YSIsIGdpcl92ZXJzaW9uID0gIjMiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAibWV0YV8i KV0KKytbQ0NvZGUgKGNwcmVmaXggPSAiTWV0YSIsIGdpcl9uYW1lc3BhY2UgPSAiTWV0YSIsIGdp cl92ZXJzaW9uID0gIjciLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAibWV0YV8iKV0KKyBuYW1lc3Bh Y2UgTWV0YSB7CisgCW5hbWVzcGFjZSBDb21wb3NpdG9yIHsKKyAJCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2Rpc2Fi bGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSIpXQorIAkJcHVibGljIHN0YXRpYyB2b2lkIGRpc2Fi bGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1l ID0gIm1ldGFfZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIildCistCQlwdWJsaWMgc3RhdGljIHZv aWQgZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CisgCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25h bWUgPSAibWV0YV9lbmFibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSIpXQorIAkJcHVibGljIHN0 YXRpYyB2b2lkIGVuYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlz cGxheSk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11 dHRlci5oIiwgY25hbWUgPSAibWV0YV9mb2N1c19zdGFnZV93aW5kb3ciKV0KK0BAIC0yMSw4ICsx OSw2IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHTGliLkxp c3Q8Q2x1dHRlci5BY3Rvcj4gZ2V0X3dpbmRvd19hY3RvcnMgKE1ldGEuRGlzcGxheSBkaXNwbGF5 KTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgiLCBjbmFtZSA9ICJtZXRhX2dldF93aW5kb3dfZ3JvdXBfZm9yX2Rpc3BsYXkiKV0KKyAJCXB1 YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF93aW5kb3dfZ3JvdXBfZm9yX2Rp c3BsYXkgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX3NldF9zdGFnZV9p bnB1dF9yZWdpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc3RhZ2VfaW5wdXRfcmVn aW9uIChNZXRhLkRpc3BsYXkgZGlzcGxheSwgWC5Yc2VydmVyUmVnaW9uIHJlZ2lvbik7CisgCX0K KyAJbmFtZXNwYWNlIFByZWZzIHsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2JlbGxfaXNfYXVkaWJsZSIpXQorQEAgLTQ3 LDYgKzQzLDggQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHN0YXRpYyBNZXRhLkJ1dHRv bkxheW91dCBwcmVmc19nZXRfYnV0dG9uX2xheW91dCAoKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9jZW50ZXJf bmV3X3dpbmRvd3MiKV0KKyAJCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfY2VudGVyX25l d193aW5kb3dzICgpOworKwkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMu aCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2NoZWNrX2FsaXZlX3RpbWVvdXQiKV0KKysJCXB1 YmxpYyBzdGF0aWMgdWludCBwcmVmc19nZXRfY2hlY2tfYWxpdmVfdGltZW91dCAoKTsKKyAJCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3By ZWZzX2dldF9jb21wb3NpdGluZ19tYW5hZ2VyIildCisgCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJl ZnNfZ2V0X2NvbXBvc2l0aW5nX21hbmFnZXIgKCk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfY3Vyc29yX3NpemUi KV0KK0BAIC03NSw4ICs3Myw2IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzdGF0aWMg Ym9vbCBwcmVmc19nZXRfZ25vbWVfYWNjZXNzaWJpbGl0eSAoKTsKKyAJCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9nbm9t ZV9hbmltYXRpb25zIildCisgCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2dub21lX2Fu aW1hdGlvbnMgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5o IiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfaWdub3JlX3JlcXVlc3RfaGlkZV90aXRsZWJhciIp XQorLQkJcHVibGljIHN0YXRpYyBib29sIHByZWZzX2dldF9pZ25vcmVfcmVxdWVzdF9oaWRlX3Rp dGxlYmFyICgpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIs IGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2tleWJpbmRpbmdfYWN0aW9uIildCisgCQlwdWJsaWMg c3RhdGljIE1ldGEuS2V5QmluZGluZ0FjdGlvbiBwcmVmc19nZXRfa2V5YmluZGluZ19hY3Rpb24g KHN0cmluZyBuYW1lKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZz LmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9tb3VzZV9idXR0b25fbWVudSIpXQorQEAgLTEw NSw4ICsxMDEsNiBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgc3RhdGljIHZvaWQgcHJl ZnNfaW5pdCAoKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgi LCBjbmFtZSA9ICJtZXRhX3ByZWZzX3NldF9mb3JjZV9mdWxsc2NyZWVuIildCisgCQlwdWJsaWMg c3RhdGljIHZvaWQgcHJlZnNfc2V0X2ZvcmNlX2Z1bGxzY3JlZW4gKGJvb2wgd2hldGhlcik7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0 YV9wcmVmc19zZXRfaWdub3JlX3JlcXVlc3RfaGlkZV90aXRsZWJhciIpXQorLQkJcHVibGljIHN0 YXRpYyB2b2lkIHByZWZzX3NldF9pZ25vcmVfcmVxdWVzdF9oaWRlX3RpdGxlYmFyIChib29sIHdo ZXRoZXIpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNu YW1lID0gIm1ldGFfcHJlZnNfc2V0X251bV93b3Jrc3BhY2VzIildCisgCQlwdWJsaWMgc3RhdGlj IHZvaWQgcHJlZnNfc2V0X251bV93b3Jrc3BhY2VzIChpbnQgbl93b3Jrc3BhY2VzKTsKKyAJCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3By ZWZzX3NldF9zaG93X2ZhbGxiYWNrX2FwcF9tZW51IildCitAQCAtMTE3LDEyICsxMTEsMTAgQEAg bmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHN0YXRpYyB2b2lkIGFkZF92ZXJib3NlX3RvcGlj IChNZXRhLkRlYnVnVG9waWMgdG9waWMpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9leHRlcm5hbF9iaW5kaW5nX25hbWVfZm9yX2Fj dGlvbiIpXQorIAkJcHVibGljIHN0YXRpYyBzdHJpbmcgZXh0ZXJuYWxfYmluZGluZ19uYW1lX2Zv cl9hY3Rpb24gKHVpbnQga2V5YmluZGluZ19hY3Rpb24pOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9nX3V0Zjhfc3RybmR1cCIpXQor LQkJcHVibGljIHN0YXRpYyBzdHJpbmcgZ191dGY4X3N0cm5kdXAgKHN0cmluZyBzcmMsIHNpemVf dCBuKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1l ID0gIm1ldGFfZ2V0X2xvY2FsZV9kaXJlY3Rpb24iKV0KKyAJCXB1YmxpYyBzdGF0aWMgTWV0YS5M b2NhbGVEaXJlY3Rpb24gZ2V0X2xvY2FsZV9kaXJlY3Rpb24gKCk7CisgCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2dyYXZpdHlfdG9fc3Ry aW5nIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgc3RyaW5nIGdyYXZpdHlfdG9fc3RyaW5n IChpbnQgZ3Jhdml0eSk7CisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgc3RyaW5nIGdyYXZpdHlf dG9fc3RyaW5nIChNZXRhLkdyYXZpdHkgZ3Jhdml0eSk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2lzX2RlYnVnZ2luZyIpXQorIAkJ cHVibGljIHN0YXRpYyBib29sIGlzX2RlYnVnZ2luZyAoKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfaXNfc3luY2luZyIpXQorQEAg LTE2NSwxMiArMTU3LDEzIEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyB1bm93bmVkIE1l dGEuRG5kIGdldF9kbmQgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRhLlJlbW90ZUFjY2Vzc0Nv bnRyb2xsZXIgZ2V0X3JlbW90ZV9hY2Nlc3NfY29udHJvbGxlciAoKTsKKyAJCXB1YmxpYyB1bm93 bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3N0YWdlICgpOworKwkJcHVibGljIGJvb2wgaXNfcmVuZGVy aW5nX2hhcmR3YXJlX2FjY2VsZXJhdGVkICgpOworIAkJcHVibGljIHZvaWQgbG9ja19sYXlvdXRf Z3JvdXAgKHVpbnQgaWR4KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9rZXltYXAgKHN0cmluZyBsYXlv dXRzLCBzdHJpbmcgdmFyaWFudHMsIHN0cmluZyBvcHRpb25zKTsKKyAJCXB1YmxpYyB2b2lkIHNl dF9udW1sb2NrIChib29sIG51bWxvY2tfc3RhdGUpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGtl eW1hcF9jaGFuZ2VkICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGtleW1hcF9sYXlvdXRfZ3Jv dXBfY2hhbmdlZCAodWludCBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGxhc3RfZGV2 aWNlX2NoYW5nZWQgKGludCBvYmplY3QpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGxhc3RfZGV2 aWNlX2NoYW5nZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0KTsKKyAJCXB1YmxpYyBzaWdu YWwgdm9pZCBsaWRfaXNfY2xvc2VkX2NoYW5nZWQgKGJvb2wgb2JqZWN0KTsKKyAJfQorIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tncm91bmQuaCIsIHR5cGVfaWQg PSAibWV0YV9iYWNrZ3JvdW5kX2dldF90eXBlICgpIildCitAQCAtMTgwLDcgKzE3Myw3IEBAIG5h bWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzdGF0aWMgdm9pZCByZWZyZXNoX2FsbCAoKTsKKyAJ CXB1YmxpYyB2b2lkIHNldF9ibGVuZCAoR0xpYi5GaWxlIGZpbGUxLCBHTGliLkZpbGUgZmlsZTIs IGRvdWJsZSBibGVuZF9mYWN0b3IsIEdEZXNrdG9wLkJhY2tncm91bmRTdHlsZSBzdHlsZSk7Cisg CQlwdWJsaWMgdm9pZCBzZXRfY29sb3IgKENsdXR0ZXIuQ29sb3IgY29sb3IpOworLQkJcHVibGlj IHZvaWQgc2V0X2ZpbGUgKEdMaWIuRmlsZSBmaWxlLCBHRGVza3RvcC5CYWNrZ3JvdW5kU3R5bGUg c3R5bGUpOworKwkJcHVibGljIHZvaWQgc2V0X2ZpbGUgKEdMaWIuRmlsZT8gZmlsZSwgR0Rlc2t0 b3AuQmFja2dyb3VuZFN0eWxlIHN0eWxlKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9ncmFkaWVudCAo R0Rlc2t0b3AuQmFja2dyb3VuZFNoYWRpbmcgc2hhZGluZ19kaXJlY3Rpb24sIENsdXR0ZXIuQ29s b3IgY29sb3IsIENsdXR0ZXIuQ29sb3Igc2Vjb25kX2NvbG9yKTsKKyAJCVtOb0FjY2Vzc29yTWV0 aG9kXQorIAkJcHVibGljIE1ldGEuRGlzcGxheSBtZXRhX2Rpc3BsYXkgeyBvd25lZCBnZXQ7IGNv bnN0cnVjdDsgfQorQEAgLTE5MCw5ICsxODMsMTggQEAgbmFtZXNwYWNlIE1ldGEgeworIAlwdWJs aWMgY2xhc3MgQmFja2dyb3VuZEFjdG9yIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9y LCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFi bGUgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAi Q2x1dHRlckFjdG9yKiIpXQorIAkJcHVibGljIEJhY2tncm91bmRBY3RvciAoTWV0YS5EaXNwbGF5 IGRpc3BsYXksIGludCBtb25pdG9yKTsKKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGlj IE1ldGEuRGlzcGxheSBtZXRhX2Rpc3BsYXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJ W05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgaW50IG1vbml0b3IgeyBnZXQ7IGNvbnN0cnVj dDsgfQorKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtYmFja2dy b3VuZC1jb250ZW50LmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9jb250ZW50X2dldF90 eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kQ29udGVudCA6IEdMaWIuT2JqZWN0 LCBDbHV0dGVyLkNvbnRlbnQgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UpXQorKwkJcHJvdGVjdGVkIEJhY2tncm91bmRDb250ZW50ICgpOworKwkJcHVibGljIHN0 YXRpYyBDbHV0dGVyLkNvbnRlbnQgQG5ldyAoTWV0YS5EaXNwbGF5IGRpc3BsYXksIGludCBtb25p dG9yKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9iYWNrZ3JvdW5kIChNZXRhLkJhY2tncm91bmQgYmFj a2dyb3VuZCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfZ3JhZGllbnQgKGJvb2wgZW5hYmxlZCwgaW50 IGhlaWdodCwgZG91YmxlIHRvbmVfc3RhcnQpOworLQkJcHVibGljIHZvaWQgc2V0X21vbml0b3Ig KGludCBtb25pdG9yKTsKKyAJCXB1YmxpYyB2b2lkIHNldF92aWduZXR0ZSAoYm9vbCBlbmFibGVk LCBkb3VibGUgYnJpZ2h0bmVzcywgZG91YmxlIHNoYXJwbmVzcyk7CisgCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKyAJCXB1YmxpYyBNZXRhLkJhY2tncm91bmQgYmFja2dyb3VuZCB7IG93bmVkIGdldDsg c2V0OyB9CitAQCAtMjc3LDE0ICsyNzksMTQgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGlj IHN0YXRpYyB1bm93bmVkIE1ldGEuQ3Vyc29yVHJhY2tlciBnZXRfZm9yX2Rpc3BsYXkgKE1ldGEu RGlzcGxheSBkaXNwbGF5KTsKKyAJCXB1YmxpYyB2b2lkIGdldF9ob3QgKG91dCBpbnQgeCwgb3V0 IGludCB5KTsKKyAJCXB1YmxpYyB2b2lkIGdldF9wb2ludGVyIChpbnQgeCwgaW50IHksIENsdXR0 ZXIuTW9kaWZpZXJUeXBlIG1vZHMpOworKwkJcHVibGljIGJvb2wgZ2V0X3BvaW50ZXJfdmlzaWJs ZSAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfc3ByaXRlICgpOworIAkJ cHVibGljIHZvaWQgc2V0X3BvaW50ZXJfdmlzaWJsZSAoYm9vbCB2aXNpYmxlKTsKKysJCVtOb0Fj Y2Vzc29yTWV0aG9kXQorKwkJcHVibGljIE1ldGEuQmFja2VuZCBiYWNrZW5kIHsgb3duZWQgZ2V0 OyBjb25zdHJ1Y3Q7IH0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfY2hhbmdlZCAoKTsK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLW1vbml0b3ItbWFu YWdlci5oIiwgdHlwZV9pZCA9ICJtZXRhX2RidXNfZGlzcGxheV9jb25maWdfc2tlbGV0b25fZ2V0 X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIERCdXNEaXNwbGF5Q29uZmlnU2tlbGV0b24gOiBH TGliLkRCdXNJbnRlcmZhY2VTa2VsZXRvbiwgR0xpYi5EQnVzSW50ZXJmYWNlIHsKKy0JCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBEQnVzRGlz cGxheUNvbmZpZ1NrZWxldG9uICgpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGN1cnNvcl9tb3Zl ZCAoZmxvYXQgeCwgZmxvYXQgeSk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgdmlzaWJpbGl0eV9j aGFuZ2VkICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Rpc3Bs YXkuaCIsIHR5cGVfaWQgPSAibWV0YV9kaXNwbGF5X2dldF90eXBlICgpIildCisgCXB1YmxpYyBj bGFzcyBEaXNwbGF5IDogR0xpYi5PYmplY3QgeworQEAgLTMwOSwzMiArMzExLDM5IEBAIG5hbWVz cGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBib29sIGdldF9tb25pdG9yX2luX2Z1bGxzY3JlZW4gKGlu dCBtb25pdG9yKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X21vbml0b3JfaW5kZXhfZm9yX3JlY3QgKE1l dGEuUmVjdGFuZ2xlIHJlY3QpOworIAkJcHVibGljIGludCBnZXRfbW9uaXRvcl9uZWlnaGJvcl9p bmRleCAoaW50IHdoaWNoX21vbml0b3IsIE1ldGEuRGlzcGxheURpcmVjdGlvbiBkaXIpOworKwkJ cHVibGljIGZsb2F0IGdldF9tb25pdG9yX3NjYWxlIChpbnQgbW9uaXRvcik7CisgCQlwdWJsaWMg aW50IGdldF9uX21vbml0b3JzICgpOworIAkJcHVibGljIHN0cmluZyBnZXRfcGFkX2FjdGlvbl9s YWJlbCAoQ2x1dHRlci5JbnB1dERldmljZSBwYWQsIE1ldGEuUGFkQWN0aW9uVHlwZSBhY3Rpb25f dHlwZSwgdWludCBhY3Rpb25fbnVtYmVyKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X3ByaW1hcnlfbW9u aXRvciAoKTsKKysJCXB1YmxpYyB1bm93bmVkIE1ldGEuU2VsZWN0aW9uIGdldF9zZWxlY3Rpb24g KCk7CisgCQlwdWJsaWMgdm9pZCBnZXRfc2l6ZSAob3V0IGludCB3aWR0aCwgb3V0IGludCBoZWln aHQpOworKwkJcHVibGljIHVub3duZWQgTWV0YS5Tb3VuZFBsYXllciBnZXRfc291bmRfcGxheWVy ICgpOworIAkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X3RhYl9jdXJyZW50IChNZXRh LlRhYkxpc3QgdHlwZSwgTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlKTsKKyAJCXB1YmxpYyBHTGli Lkxpc3Q8d2VhayBNZXRhLldpbmRvdz4gZ2V0X3RhYl9saXN0IChNZXRhLlRhYkxpc3QgdHlwZSwg TWV0YS5Xb3Jrc3BhY2U/IHdvcmtzcGFjZSk7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRv dyBnZXRfdGFiX25leHQgKE1ldGEuVGFiTGlzdCB0eXBlLCBNZXRhLldvcmtzcGFjZSB3b3Jrc3Bh Y2UsIE1ldGEuV2luZG93PyB3aW5kb3csIGJvb2wgYmFja3dhcmQpOworIAkJcHVibGljIHVub3du ZWQgTWV0YS5Xb3Jrc3BhY2VNYW5hZ2VyIGdldF93b3Jrc3BhY2VfbWFuYWdlciAoKTsKKy0JCXB1 YmxpYyB1aW50IGdyYWJfYWNjZWxlcmF0b3IgKHN0cmluZyBhY2NlbGVyYXRvcik7CisrCQlwdWJs aWMgdWludCBncmFiX2FjY2VsZXJhdG9yIChzdHJpbmcgYWNjZWxlcmF0b3IsIE1ldGEuS2V5Qmlu ZGluZ0ZsYWdzIGZsYWdzKTsKKyAJCXB1YmxpYyBib29sIGlzX3BvaW50ZXJfZW11bGF0aW5nX3Nl cXVlbmNlIChDbHV0dGVyLkV2ZW50U2VxdWVuY2U/IHNlcXVlbmNlKTsKKyAJCXB1YmxpYyBib29s IHJlbW92ZV9rZXliaW5kaW5nIChzdHJpbmcgbmFtZSk7CisgCQlwdWJsaWMgdm9pZCByZXF1ZXN0 X3BhZF9vc2QgKENsdXR0ZXIuSW5wdXREZXZpY2UgcGFkLCBib29sIGVkaXRpb25fbW9kZSk7Cisg CQlwdWJsaWMgdm9pZCBzZXRfY3Vyc29yIChNZXRhLkN1cnNvciBjdXJzb3IpOworKwkJcHVibGlj IHZvaWQgc2V0X2lucHV0X2ZvY3VzIChNZXRhLldpbmRvdyB3aW5kb3csIGJvb2wgZm9jdXNfZnJh bWUsIHVpbnQzMiB0aW1lc3RhbXApOworIAkJcHVibGljIEdMaWIuU0xpc3Q8d2VhayBNZXRhLldp bmRvdz4gc29ydF93aW5kb3dzX2J5X3N0YWNraW5nIChHTGliLlNMaXN0PE1ldGEuV2luZG93PiB3 aW5kb3dzKTsKKyAJCXB1YmxpYyBib29sIHN1cHBvcnRzX2V4dGVuZGVkX2JhcnJpZXJzICgpOwor IAkJcHVibGljIHZvaWQgdW5mcmVlemVfa2V5Ym9hcmQgKHVpbnQzMiB0aW1lc3RhbXApOworIAkJ cHVibGljIGJvb2wgdW5ncmFiX2FjY2VsZXJhdG9yICh1aW50IGFjdGlvbl9pZCk7CisgCQlwdWJs aWMgdm9pZCB1bmdyYWJfa2V5Ym9hcmQgKHVpbnQzMiB0aW1lc3RhbXApOworKwkJcHVibGljIHZv aWQgdW5zZXRfaW5wdXRfZm9jdXMgKHVpbnQzMiB0aW1lc3RhbXApOworIAkJcHVibGljIGJvb2wg eHNlcnZlcl90aW1lX2lzX2JlZm9yZSAodWludDMyIHRpbWUxLCB1aW50MzIgdGltZTIpOworIAkJ cHVibGljIE1ldGEuV2luZG93IGZvY3VzX3dpbmRvdyB7IGdldDsgfQorLQkJcHVibGljIHNpZ25h bCB2b2lkIGFjY2VsZXJhdG9yX2FjdGl2YXRlZCAodWludCBvYmplY3QsIHVpbnQgcDAsIHVpbnQg cDEpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGFjY2VsZXJhdG9yX2FjdGl2YXRlZCAodWludCBv YmplY3QsIENsdXR0ZXIuSW5wdXREZXZpY2UgcDAsIHVpbnQgcDEpOworKwkJcHVibGljIHNpZ25h bCB2b2lkIGNsb3NpbmcgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29yX3VwZGF0ZWQg KCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZ2xfdmlkZW9fbWVtb3J5X3B1cmdlZCAoKTsKKyAJ CXB1YmxpYyBzaWduYWwgdm9pZCBncmFiX29wX2JlZ2luIChNZXRhLkRpc3BsYXkgb2JqZWN0LCBN ZXRhLldpbmRvdyBwMCwgTWV0YS5HcmFiT3AgcDEpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGdy YWJfb3BfZW5kIChNZXRhLkRpc3BsYXkgb2JqZWN0LCBNZXRhLldpbmRvdyBwMCwgTWV0YS5HcmFi T3AgcDEpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGluX2Z1bGxzY3JlZW5fY2hhbmdlZCAoKTsK KysJCXB1YmxpYyBzaWduYWwgYm9vbCBpbml0X3hzZXJ2ZXIgKEdMaWIuVGFzayBvYmplY3QpOwor IAkJcHVibGljIHNpZ25hbCBib29sIG1vZGlmaWVyc19hY2NlbGVyYXRvcl9hY3RpdmF0ZWQgKCk7 CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgb3ZlcmxheV9rZXkgKCk7CisgCQlwdWJsaWMgc2lnbmFs IHZvaWQgcGFkX21vZGVfc3dpdGNoIChDbHV0dGVyLklucHV0RGV2aWNlIG9iamVjdCwgdWludCBw MCwgdWludCBwMSk7CitAQCAtMzQ1LDcgKzM1NCw2IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1 YmxpYyBzaWduYWwgYm9vbCBzaG93X3Jlc2l6ZV9wb3B1cCAoYm9vbCBvYmplY3QsIE1ldGEuUmVj dGFuZ2xlIHAwLCBpbnQgcDEsIGludCBwMik7CisgCQlwdWJsaWMgc2lnbmFsIGJvb2wgc2hvd19y ZXN0YXJ0X21lc3NhZ2UgKHN0cmluZz8gbWVzc2FnZSk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQg c2hvd2luZ19kZXNrdG9wX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgc3RhcnR1 cF9zZXF1ZW5jZV9jaGFuZ2VkICh2b2lkKiBvYmplY3QpOworIAkJcHVibGljIHNpZ25hbCB2b2lk IHdpbmRvd19jcmVhdGVkIChNZXRhLldpbmRvdyBvYmplY3QpOworIAkJcHVibGljIHNpZ25hbCB2 b2lkIHdpbmRvd19kZW1hbmRzX2F0dGVudGlvbiAoTWV0YS5XaW5kb3cgb2JqZWN0KTsKKyAJCXB1 YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfZW50ZXJlZF9tb25pdG9yIChpbnQgb2JqZWN0LCBNZXRh LldpbmRvdyBwMCk7CitAQCAtMzU0LDYgKzM2Miw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1 YmxpYyBzaWduYWwgdm9pZCB3b3JrYXJlYXNfY2hhbmdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwg dm9pZCB4MTFfZGlzcGxheV9jbG9zaW5nICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHgxMV9k aXNwbGF5X29wZW5lZCAoKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCB4MTFfZGlzcGxheV9zZXR1 cCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWRuZC5o IiwgdHlwZV9pZCA9ICJtZXRhX2RuZF9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgY2xhc3MgRG5k IDogR0xpYi5PYmplY3QgeworQEAgLTM2Myw3ICszNzIsNyBAQCBuYW1lc3BhY2UgTWV0YSB7Cisg CQlwdWJsaWMgc2lnbmFsIHZvaWQgZG5kX2xlYXZlICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lk IGRuZF9wb3NpdGlvbl9jaGFuZ2UgKGludCBvYmplY3QsIGludCBwMCk7CisgCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNl KV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgaGFzX3R5cGVf aWQgPSBmYWxzZSldCisgCVtDb21wYWN0XQorIAlwdWJsaWMgY2xhc3MgRnJhbWUgeworIAl9CitA QCAtMzc0LDEzICszODMsMTIgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHVpbnQgYWRk X2lkbGVfd2F0Y2ggKHVpbnQ2NCBpbnRlcnZhbF9tc2VjLCBvd25lZCBNZXRhLklkbGVNb25pdG9y V2F0Y2hGdW5jPyBjYWxsYmFjayk7CisgCQlwdWJsaWMgdWludCBhZGRfdXNlcl9hY3RpdmVfd2F0 Y2ggKG93bmVkIE1ldGEuSWRsZU1vbml0b3JXYXRjaEZ1bmM/IGNhbGxiYWNrKTsKKyAJCXB1Ymxp YyBzdGF0aWMgdW5vd25lZCBNZXRhLklkbGVNb25pdG9yIGdldF9jb3JlICgpOworLQkJcHVibGlj IHN0YXRpYyB1bm93bmVkIE1ldGEuSWRsZU1vbml0b3IgZ2V0X2Zvcl9kZXZpY2UgKGludCBkZXZp Y2VfaWQpOworIAkJcHVibGljIGludDY0IGdldF9pZGxldGltZSAoKTsKKyAJCXB1YmxpYyB2b2lk IHJlbW92ZV93YXRjaCAodWludCBpZCk7CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1Ymxp YyBpbnQgZGV2aWNlX2lkIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCXB1YmxpYyBDbHV0dGVyLklu cHV0RGV2aWNlIGRldmljZSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisgCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEva2V5YmluZGluZ3MuaCIsIGNvcHlfZnVuY3Rpb24g PSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lk ID0gIm1ldGFfa2V5X2JpbmRpbmdfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBm cmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAibWV0YV9rZXlfYmluZGlu Z19nZXRfdHlwZSAoKSIpXQorIAlbQ29tcGFjdF0KKyAJcHVibGljIGNsYXNzIEtleUJpbmRpbmcg eworIAkJcHVibGljIHVpbnQgZ2V0X21hc2sgKCk7CitAQCAtMzkxLDggKzM5OSwyMSBAQCBuYW1l c3BhY2UgTWV0YSB7CisgCQlbQ0NvZGUgKGNuYW1lID0gIm1ldGFfa2V5YmluZGluZ3Nfc2V0X2N1 c3RvbV9oYW5kbGVyIildCisgCQlwdWJsaWMgc3RhdGljIGJvb2wgc2V0X2N1c3RvbV9oYW5kbGVy IChzdHJpbmcgbmFtZSwgb3duZWQgTWV0YS5LZXlIYW5kbGVyRnVuYz8gaGFuZGxlcik7CisgCX0K KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5o IiwgdHlwZV9pZCA9ICJtZXRhX2xhdW5jaF9jb250ZXh0X2dldF90eXBlICgpIildCisrCXB1Ymxp YyBjbGFzcyBMYXVuY2hDb250ZXh0IDogR0xpYi5BcHBMYXVuY2hDb250ZXh0IHsKKysJCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBMYXVuY2hD b250ZXh0ICgpOworKwkJcHVibGljIHZvaWQgc2V0X3RpbWVzdGFtcCAodWludDMyIHRpbWVzdGFt cCk7CisrCQlwdWJsaWMgdm9pZCBzZXRfd29ya3NwYWNlIChNZXRhLldvcmtzcGFjZSB3b3Jrc3Bh Y2UpOworKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgTWV0YS5EaXNwbGF5IGRpc3Bs YXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlw dWJsaWMgdWludCB0aW1lc3RhbXAgeyBnZXQ7IHNldDsgfQorKwkJW05vQWNjZXNzb3JNZXRob2Rd CisrCQlwdWJsaWMgTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlIHsgb3duZWQgZ2V0OyBzZXQ7IH0K KysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLW1vbml0b3ItbWFu YWdlci5oIiwgdHlwZV9pZCA9ICJtZXRhX21vbml0b3JfbWFuYWdlcl9nZXRfdHlwZSAoKSIpXQor LQlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgTW9uaXRvck1hbmFnZXIgOiBNZXRhLkRCdXNEaXNwbGF5 Q29uZmlnU2tlbGV0b24sIEdMaWIuREJ1c0ludGVyZmFjZSwgR0xpYi5EQnVzSW50ZXJmYWNlIHsK KysJcHVibGljIGNsYXNzIE1vbml0b3JNYW5hZ2VyIDogR0xpYi5PYmplY3QgeworIAkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIE1vbml0b3JN YW5hZ2VyICgpOworIAkJcHVibGljIGJvb2wgY2FuX3N3aXRjaF9jb25maWcgKCk7CitAQCAtNDA3 LDYgKzQyOCw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBjb25m aXJtX2Rpc3BsYXlfY2hhbmdlICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIG1vbml0b3JzX2No YW5nZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgbW9uaXRvcnNfY2hhbmdlZF9pbnRlcm5h bCAoKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBwb3dlcl9zYXZlX21vZGVfY2hhbmdlZCAoKTsK KyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXBsdWdpbi5oIiwg dHlwZV9pZCA9ICJtZXRhX3BsdWdpbl9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgYWJzdHJhY3Qg Y2xhc3MgUGx1Z2luIDogR0xpYi5PYmplY3QgeworQEAgLTQzMCw2ICs0NTIsOCBAQCBuYW1lc3Bh Y2UgTWV0YSB7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGtpbGxfc3dpdGNoX3dvcmtzcGFjZSAo KTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGtpbGxfd2luZG93X2Vm ZmVjdHMgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworKwkJW05vV3JhcHBlcl0KKysJCXB1Ymxp YyB2aXJ0dWFsIHZvaWQgbG9jYXRlX3BvaW50ZXIgKCk7CisgCQlwdWJsaWMgc3RhdGljIHZvaWQg bWFuYWdlcl9zZXRfcGx1Z2luX3R5cGUgKEdMaWIuVHlwZSBndHlwZSk7CisgCQlbTm9XcmFwcGVy XQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBtYXAgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOwor QEAgLTQ2NSwyNiArNDg5LDU2IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJcHVibGljIGNsYXNzIFJl bW90ZUFjY2Vzc0NvbnRyb2xsZXIgOiBHTGliLk9iamVjdCB7CisgCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgUmVtb3RlQWNjZXNzQ29udHJv bGxlciAoKTsKKysJCXB1YmxpYyB2b2lkIGluaGliaXRfcmVtb3RlX2FjY2VzcyAoKTsKKysJCXB1 YmxpYyB2b2lkIHVuaW5oaWJpdF9yZW1vdGVfYWNjZXNzICgpOworIAkJcHVibGljIHNpZ25hbCB2 b2lkIG5ld19oYW5kbGUgKE1ldGEuUmVtb3RlQWNjZXNzSGFuZGxlIG9iamVjdCk7CisgCX0KKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRy b2xsZXIuaCIsIHR5cGVfaWQgPSAibWV0YV9yZW1vdGVfYWNjZXNzX2hhbmRsZV9nZXRfdHlwZSAo KSIpXQorIAlwdWJsaWMgY2xhc3MgUmVtb3RlQWNjZXNzSGFuZGxlIDogR0xpYi5PYmplY3Qgewor IAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVk IFJlbW90ZUFjY2Vzc0hhbmRsZSAoKTsKKysJCXB1YmxpYyBib29sIGdldF9kaXNhYmxlX2FuaW1h dGlvbnMgKCk7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIHN0b3AgKCk7CisrCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKysJCXB1YmxpYyBib29sIGlzX3JlY29yZGluZyB7IGdldDsgY29uc3RydWN0OyB9 CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgc3RvcHBlZCAoKTsKKyAJfQorKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCB0eXBlX2lkID0gIm1ldGFfc2VsZWN0aW9uX2dl dF90eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBTZWxlY3Rpb24gOiBHTGliLk9iamVjdCB7Cisr CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwdWJsaWMgU2Vs ZWN0aW9uIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CisrCQlwdWJsaWMgR0xpYi5MaXN0PHN0cmlu Zz4gZ2V0X21pbWV0eXBlcyAoTWV0YS5TZWxlY3Rpb25UeXBlIHNlbGVjdGlvbl90eXBlKTsKKysJ CXB1YmxpYyB2b2lkIHNldF9vd25lciAoTWV0YS5TZWxlY3Rpb25UeXBlIHNlbGVjdGlvbl90eXBl LCBNZXRhLlNlbGVjdGlvblNvdXJjZSBvd25lcik7CisrCQlwdWJsaWMgYXN5bmMgYm9vbCB0cmFu c2Zlcl9hc3luYyAoTWV0YS5TZWxlY3Rpb25UeXBlIHNlbGVjdGlvbl90eXBlLCBzdHJpbmcgbWlt ZXR5cGUsIHNzaXplX3Qgc2l6ZSwgR0xpYi5PdXRwdXRTdHJlYW0gb3V0cHV0LCBHTGliLkNhbmNl bGxhYmxlPyBjYW5jZWxsYWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgdm9pZCB1 bnNldF9vd25lciAoTWV0YS5TZWxlY3Rpb25UeXBlIHNlbGVjdGlvbl90eXBlLCBNZXRhLlNlbGVj dGlvblNvdXJjZSBvd25lcik7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgb3duZXJfY2hhbmdlZCAo dWludCBvYmplY3QsIE1ldGEuU2VsZWN0aW9uU291cmNlIHAwKTsKKysJfQorKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCB0eXBlX2lkID0gIm1ldGFfc2VsZWN0aW9u X3NvdXJjZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgU2VsZWN0aW9uU291cmNlIDog R0xpYi5PYmplY3QgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Up XQorKwkJcHJvdGVjdGVkIFNlbGVjdGlvblNvdXJjZSAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIEdM aWIuTGlzdDxzdHJpbmc+IGdldF9taW1ldHlwZXMgKCk7CisrCQlwdWJsaWMgYm9vbCBpc19hY3Rp dmUgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBhc3luYyBHTGliLklucHV0U3RyZWFtIHJlYWRfYXN5 bmMgKHN0cmluZyBtaW1ldHlwZSwgR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUpIHRocm93 cyBHTGliLkVycm9yOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgYWN0aXZhdGVkICgp OworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgZGVhY3RpdmF0ZWQgKCk7CisrCX0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgdHlwZV9pZCA9ICJtZXRh X3NlbGVjdGlvbl9zb3VyY2VfbWVtb3J5X2dldF90eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBT ZWxlY3Rpb25Tb3VyY2VNZW1vcnkgOiBNZXRhLlNlbGVjdGlvblNvdXJjZSB7CisrCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJNZXRhU2VsZWN0aW9uU291 cmNlKiIpXQorKwkJcHVibGljIFNlbGVjdGlvblNvdXJjZU1lbW9yeSAoc3RyaW5nIG1pbWV0eXBl LCBHTGliLkJ5dGVzIGNvbnRlbnQpOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21ldGEtc2V0dGluZ3MuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbQ29tcGFj dF0KKyAJcHVibGljIGNsYXNzIFNldHRpbmdzIHsKKyAJCXB1YmxpYyBpbnQgZ2V0X2ZvbnRfZHBp ICgpOworIAkJcHVibGljIGludCBnZXRfdWlfc2NhbGluZ19mYWN0b3IgKCk7CisgCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oIiwgcmVm X2Z1bmN0aW9uID0gIm1ldGFfc2hhZG93X3JlZiIsIHR5cGVfaWQgPSAibWV0YV9zaGFkb3dfZ2V0 X3R5cGUgKCkiLCB1bnJlZl9mdW5jdGlvbiA9ICJtZXRhX3NoYWRvd191bnJlZiIpXQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCByZWZfZnVuY3Rpb24gPSAibWV0 YV9zaGFkb3dfcmVmIiwgdHlwZV9pZCA9ICJtZXRhX3NoYWRvd19nZXRfdHlwZSAoKSIsIHVucmVm X2Z1bmN0aW9uID0gIm1ldGFfc2hhZG93X3VucmVmIildCisgCVtDb21wYWN0XQorIAlwdWJsaWMg Y2xhc3MgU2hhZG93IHsKKyAJCXB1YmxpYyB2b2lkIGdldF9ib3VuZHMgKGludCB3aW5kb3dfeCwg aW50IHdpbmRvd195LCBpbnQgd2luZG93X3dpZHRoLCBpbnQgd2luZG93X2hlaWdodCwgQ2Fpcm8u UmVjdGFuZ2xlSW50IGJvdW5kcyk7CistCQlwdWJsaWMgdm9pZCBwYWludCAoaW50IHdpbmRvd194 LCBpbnQgd2luZG93X3ksIGludCB3aW5kb3dfd2lkdGgsIGludCB3aW5kb3dfaGVpZ2h0LCB1aW50 OCBvcGFjaXR5LCBDYWlyby5SZWdpb24/IGNsaXAsIGJvb2wgY2xpcF9zdHJpY3RseSk7CisrCQlw dWJsaWMgdm9pZCBwYWludCAoQ29nbC5GcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlciwgaW50IHdpbmRv d194LCBpbnQgd2luZG93X3ksIGludCB3aW5kb3dfd2lkdGgsIGludCB3aW5kb3dfaGVpZ2h0LCB1 aW50OCBvcGFjaXR5LCBDYWlyby5SZWdpb24/IGNsaXAsIGJvb2wgY2xpcF9zdHJpY3RseSk7Cisg CQlwdWJsaWMgTWV0YS5TaGFkb3cgQHJlZiAoKTsKKyAJCXB1YmxpYyB2b2lkIHVucmVmICgpOwor IAl9CitAQCAtNDk5LDI4ICs1NTMsNzQgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHNp Z25hbCB2b2lkIGNoYW5nZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3NoYXBlZF90ZXh0 dXJlX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBTaGFwZWRUZXh0dXJlIDogQ2x1dHRl ci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29u dGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworKwlwdWJsaWMgY2xhc3MgU2hhcGVkVGV4dHVy ZSA6IEdMaWIuT2JqZWN0LCBDbHV0dGVyLkNvbnRlbnQgeworIAkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFNoYXBlZFRleHR1cmUgKCk7Cist CQlwdWJsaWMgQ2Fpcm8uU3VyZmFjZSBnZXRfaW1hZ2UgKENhaXJvLlJlY3RhbmdsZUludCBjbGlw KTsKKysJCXB1YmxpYyBDYWlyby5TdXJmYWNlPyBnZXRfaW1hZ2UgKENhaXJvLlJlY3RhbmdsZUlu dD8gY2xpcCk7CisgCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X3RleHR1cmUgKCk7 CisgCQlwdWJsaWMgdm9pZCBzZXRfY3JlYXRlX21pcG1hcHMgKGJvb2wgY3JlYXRlX21pcG1hcHMp OworIAkJcHVibGljIHZvaWQgc2V0X21hc2tfdGV4dHVyZSAoQ29nbC5UZXh0dXJlIG1hc2tfdGV4 dHVyZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfb3BhcXVlX3JlZ2lvbiAob3duZWQgQ2Fpcm8uUmVn aW9uIG9wYXF1ZV9yZWdpb24pOworLQkJcHVibGljIGJvb2wgdXBkYXRlX2FyZWEgKGludCB4LCBp bnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBzaXpl X2NoYW5nZWQgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29t cG9zaXRvci1tdXR0ZXIuaCIsIHR5cGVfaWQgPSAibWV0YV9zdGFnZV9nZXRfdHlwZSAoKSIpXQor KwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXNvdW5kLXBsYXllci5oIiwg dHlwZV9pZCA9ICJtZXRhX3NvdW5kX3BsYXllcl9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xh c3MgU291bmRQbGF5ZXIgOiBHTGliLk9iamVjdCB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3Rf ZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgU291bmRQbGF5ZXIgKCk7CisrCQlwdWJs aWMgdm9pZCBwbGF5X2Zyb21fZmlsZSAoR0xpYi5GaWxlIGZpbGUsIHN0cmluZyBkZXNjcmlwdGlv biwgR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUgPSBudWxsKTsKKysJCXB1YmxpYyB2b2lk IHBsYXlfZnJvbV90aGVtZSAoc3RyaW5nIG5hbWUsIHN0cmluZyBkZXNjcmlwdGlvbiwgR0xpYi5D YW5jZWxsYWJsZT8gY2FuY2VsbGFibGUgPSBudWxsKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tZXRhLXN0YWdlLmgiLCB0eXBlX2lkID0gIm1ldGFfc3RhZ2VfZ2V0 X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIFN0YWdlIDogQ2x1dHRlci5TdGFnZSwgQXRrLklt cGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVy LlNjcmlwdGFibGUgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Up XQorIAkJcHJvdGVjdGVkIFN0YWdlICgpOworIAkJcHVibGljIHN0YXRpYyBib29sIGlzX2ZvY3Vz ZWQgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBhY3RvcnNf cGFpbnRlZCAoKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRh LXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgiLCB0eXBlX2lkID0gIm1ldGFfc3RhcnR1cF9ub3RpZmlj YXRpb25fZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIFN0YXJ0dXBOb3RpZmljYXRpb24g OiBHTGliLk9iamVjdCB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSldCisrCQlwcm90ZWN0ZWQgU3RhcnR1cE5vdGlmaWNhdGlvbiAoKTsKKysJCXB1YmxpYyBNZXRh LkxhdW5jaENvbnRleHQgY3JlYXRlX2xhdW5jaGVyICgpOworKwkJW05vQWNjZXNzb3JNZXRob2Rd CisrCQlwdWJsaWMgTWV0YS5EaXNwbGF5IGRpc3BsYXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsg fQorKwkJcHVibGljIHNpZ25hbCB2b2lkIGNoYW5nZWQgKHZvaWQqIG9iamVjdCk7CisrCX0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgdHlwZV9pZCA9ICJtZXRh X3N0YXJ0dXBfc2VxdWVuY2VfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIFN0YXJ0dXBT ZXF1ZW5jZSA6IEdMaWIuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBTdGFydHVwU2VxdWVuY2UgKCk7CisrCQlwdWJsaWMg dW5vd25lZCBzdHJpbmcgZ2V0X2FwcGxpY2F0aW9uX2lkICgpOworKwkJcHVibGljIGJvb2wgZ2V0 X2NvbXBsZXRlZCAoKTsKKysJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfaWNvbl9uYW1lICgp OworKwkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9pZCAoKTsKKysJCXB1YmxpYyB1bm93bmVk IHN0cmluZyBnZXRfbmFtZSAoKTsKKysJCXB1YmxpYyB1aW50NjQgZ2V0X3RpbWVzdGFtcCAoKTsK KysJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfd21jbGFzcyAoKTsKKysJCXB1YmxpYyBpbnQg Z2V0X3dvcmtzcGFjZSAoKTsKKysJCXB1YmxpYyBzdHJpbmcgYXBwbGljYXRpb25faWQgeyBnZXQ7 IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIHN0cmluZyBpY29uX25hbWUgeyBnZXQ7IGNvbnN0cnVj dDsgfQorKwkJcHVibGljIHN0cmluZyBpZCB7IGdldDsgY29uc3RydWN0OyB9CisrCQlwdWJsaWMg c3RyaW5nIG5hbWUgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIHVpbnQ2NCB0aW1lc3Rh bXAgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIHN0cmluZyB3bWNsYXNzIHsgZ2V0OyBj b25zdHJ1Y3Q7IH0KKysJCXB1YmxpYyBpbnQgd29ya3NwYWNlIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0K KysJCVtIYXNFbWl0dGVyXQorKwkJcHVibGljIHNpZ25hbCB2b2lkIGNvbXBsZXRlICgpOworIAl9 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3RoZW1lLmgiLCBoYXNfdHlwZV9p ZCA9IGZhbHNlKV0KKyAJW0NvbXBhY3RdCisgCXB1YmxpYyBjbGFzcyBUaGVtZSB7CisgCQlwdWJs aWMgdm9pZCBmcmVlICgpOworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21ldGEtd2F5bGFuZC1jbGllbnQuaCIsIHR5cGVfaWQgPSAibWV0YV93YXlsYW5kX2NsaWVudF9n ZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgV2F5bGFuZENsaWVudCA6IEdMaWIuT2JqZWN0 IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXB1Ymxp YyBXYXlsYW5kQ2xpZW50IChHTGliLlN1YnByb2Nlc3NMYXVuY2hlciBsYXVuY2hlcikgdGhyb3dz IEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgdm9pZCBoaWRlX2Zyb21fd2luZG93X2xpc3QgKE1ldGEu V2luZG93IHdpbmRvdyk7CisrCQlwdWJsaWMgYm9vbCBvd25zX3dpbmRvdyAoTWV0YS5XaW5kb3cg d2luZG93KTsKKysJCXB1YmxpYyB2b2lkIHNob3dfaW5fd2luZG93X2xpc3QgKE1ldGEuV2luZG93 IHdpbmRvdyk7CisrCQlwdWJsaWMgR0xpYi5TdWJwcm9jZXNzIHNwYXdudiAoTWV0YS5EaXNwbGF5 IGRpc3BsYXksIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UsIGFycmF5X251bGxfdGVybWlu YXRlZCA9IHRydWUpXSBzdHJpbmdbXSBhcmd2KSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJfQorIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cuaCIsIHR5cGVfaWQgPSAibWV0 YV93aW5kb3dfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIFdpbmRvdyA6 IEdMaWIuT2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl KV0KK0BAIC01NDcsNiArNjQ3LDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIE1ldGEu UmVjdGFuZ2xlIGZyYW1lX3JlY3RfdG9fY2xpZW50X3JlY3QgKE1ldGEuUmVjdGFuZ2xlIGZyYW1l X3JlY3QpOworIAkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF9idWZmZXJfcmVjdCAoKTsKKyAJ CXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfY2xpZW50X21hY2hpbmUgKCk7CisrCQlwdWJsaWMg TWV0YS5XaW5kb3dDbGllbnRUeXBlIGdldF9jbGllbnRfdHlwZSAoKTsKKyAJCXB1YmxpYyB1bm93 bmVkIEdMaWIuT2JqZWN0IGdldF9jb21wb3NpdG9yX3ByaXZhdGUgKCk7CisgCQlwdWJsaWMgdW5v d25lZCBzdHJpbmcgZ2V0X2Rlc2NyaXB0aW9uICgpOworIAkJcHVibGljIHVub3duZWQgTWV0YS5E aXNwbGF5IGdldF9kaXNwbGF5ICgpOworQEAgLTU2MSw2ICs2NjIsNyBAQCBuYW1lc3BhY2UgTWV0 YSB7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a191bmlxdWVfYnVzX25hbWUgKCk7 CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a193aW5kb3dfb2JqZWN0X3BhdGggKCk7 CisgCQlwdWJsaWMgYm9vbCBnZXRfaWNvbl9nZW9tZXRyeSAob3V0IE1ldGEuUmVjdGFuZ2xlIHJl Y3QpOworKwkJcHVibGljIHVpbnQ2NCBnZXRfaWQgKCk7CisgCQlwdWJsaWMgTWV0YS5TdGFja0xh eWVyIGdldF9sYXllciAoKTsKKyAJCXB1YmxpYyBNZXRhLk1heGltaXplRmxhZ3MgZ2V0X21heGlt aXplZCAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X21vbml0b3IgKCk7CitAQCAtNjEwLDggKzcxMiw2 IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyB2b2lkIG1vdmVfcmVzaXplX2ZyYW1lIChi b29sIHVzZXJfb3AsIGludCByb290X3hfbncsIGludCByb290X3lfbncsIGludCB3LCBpbnQgaCk7 CisgCQlwdWJsaWMgdm9pZCBtb3ZlX3RvX21vbml0b3IgKGludCBtb25pdG9yKTsKKyAJCXB1Ymxp YyB2b2lkIHJhaXNlICgpOworLQkJcHVibGljIGJvb2wgcmVxdWVzdGVkX2J5cGFzc19jb21wb3Np dG9yICgpOworLQkJcHVibGljIGJvb2wgcmVxdWVzdGVkX2RvbnRfYnlwYXNzX2NvbXBvc2l0b3Ig KCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfY29tcG9zaXRvcl9wcml2YXRlIChHTGliLk9iamVjdCBw cml2KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9kZW1hbmRzX2F0dGVudGlvbiAoKTsKKyAJCXB1Ymxp YyB2b2lkIHNldF9pY29uX2dlb21ldHJ5IChNZXRhLlJlY3RhbmdsZT8gcmVjdCk7CitAQCAtNjcy LDI0ICs3NzIsMjUgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHNpZ25hbCB2b2lkIHNo b3duICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHNpemVfY2hhbmdlZCAoKTsKKyAJCXB1Ymxp YyBzaWduYWwgdm9pZCB1bm1hbmFnZWQgKCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgdW5tYW5h Z2luZyAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3BhY2VfY2hhbmdlZCAoKTsKKyAJ fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5o IiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19hY3Rvcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMg Y2xhc3MgV2luZG93QWN0b3IgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0 ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7Cisr CXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBXaW5kb3dBY3RvciA6IENsdXR0ZXIuQWN0b3IsIEF0ay5J bXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRl ci5TY3JpcHRhYmxlIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl KV0KKyAJCXByb3RlY3RlZCBXaW5kb3dBY3RvciAoKTsKKysJCXB1YmxpYyB2b2lkIGZyZWV6ZSAo KTsKKysJCXB1YmxpYyBDYWlyby5TdXJmYWNlPyBnZXRfaW1hZ2UgKENhaXJvLlJlY3RhbmdsZUlu dD8gY2xpcCk7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBnZXRfbWV0YV93aW5kb3cg KCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF90ZXh0dXJlICgpOworLQkJ cHVibGljIFguV2luZG93IGdldF94X3dpbmRvdyAoKTsKKysJCXB1YmxpYyB1bm93bmVkIE1ldGEu U2hhcGVkVGV4dHVyZSBnZXRfdGV4dHVyZSAoKTsKKyAJCXB1YmxpYyBib29sIGlzX2Rlc3Ryb3ll ZCAoKTsKKyAJCXB1YmxpYyB2b2lkIHN5bmNfdmlzaWJpbGl0eSAoKTsKKysJCXB1YmxpYyB2b2lk IHRoYXcgKCk7CisgCQlwdWJsaWMgTWV0YS5XaW5kb3cgbWV0YV93aW5kb3cgeyBnZXQ7IGNvbnN0 cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgc3RyaW5nIHNoYWRvd19j bGFzcyB7IG93bmVkIGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1Ymxp YyBNZXRhLlNoYWRvd01vZGUgc2hhZG93X21vZGUgeyBnZXQ7IHNldDsgfQorKwkJcHVibGljIHNp Z25hbCB2b2lkIGRhbWFnZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZWZmZWN0c19jb21w bGV0ZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZmlyc3RfZnJhbWUgKCk7CisrCQlwdWJs aWMgc2lnbmFsIHZvaWQgdGhhd2VkICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21ldGEtd2luZG93LWdyb3VwLmgiLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X2dy b3VwX2dldF90eXBlICgpIildCisgCXB1YmxpYyBjbGFzcyBXaW5kb3dHcm91cCA6IENsdXR0ZXIu QWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRh aW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKK0BAIC03MjAsNyArODIxLDkgQEAgbmFtZXNwYWNl IE1ldGEgeworIAkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF93b3JrX2FyZWFfZm9yX21vbml0 b3IgKGludCB3aGljaF9tb25pdG9yKTsKKyAJCXB1YmxpYyBpbnQgaW5kZXggKCk7CisgCQlwdWJs aWMgR0xpYi5MaXN0PHdlYWsgTWV0YS5XaW5kb3c+IGxpc3Rfd2luZG93cyAoKTsKKy0JCXB1Ymxp YyB2b2lkIHNldF9idWlsdGluX3N0cnV0cyAoR0xpYi5TTGlzdDxNZXRhLlN0cnV0PiBzdHJ1dHMp OworKwkJcHVibGljIHZvaWQgc2V0X2J1aWx0aW5fc3RydXRzIChHTGliLlNMaXN0PE1ldGEuU3Ry dXQ/PiBzdHJ1dHMpOworKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgYm9vbCBhY3Rp dmUgeyBnZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJcHVibGljIHVpbnQgbl93aW5k b3dzIHsgZ2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KK0BAIC03MzYsMjcgKzgzOSwzMyBA QCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZSBnZXRf YWN0aXZlX3dvcmtzcGFjZSAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X2FjdGl2ZV93b3Jrc3BhY2Vf aW5kZXggKCk7CisgCQlwdWJsaWMgaW50IGdldF9uX3dvcmtzcGFjZXMgKCk7CistCQlwdWJsaWMg dW5vd25lZCBNZXRhLldvcmtzcGFjZSBnZXRfd29ya3NwYWNlX2J5X2luZGV4IChpbnQgaW5kZXgp OworKwkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2U/IGdldF93b3Jrc3BhY2VfYnlfaW5k ZXggKGludCBpbmRleCk7CisgCQlwdWJsaWMgdm9pZCBvdmVycmlkZV93b3Jrc3BhY2VfbGF5b3V0 IChNZXRhLkRpc3BsYXlDb3JuZXIgc3RhcnRpbmdfY29ybmVyLCBib29sIHZlcnRpY2FsX2xheW91 dCwgaW50IG5fcm93cywgaW50IG5fY29sdW1ucyk7CisgCQlwdWJsaWMgdm9pZCByZW1vdmVfd29y a3NwYWNlIChNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UsIHVpbnQzMiB0aW1lc3RhbXApOworKwkJ cHVibGljIHZvaWQgcmVvcmRlcl93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSwg aW50IG5ld19pbmRleCk7CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBpbnQgbGF5 b3V0X2NvbHVtbnMgeyBnZXQ7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIGlu dCBsYXlvdXRfcm93cyB7IGdldDsgfQorIAkJcHVibGljIGludCBuX3dvcmtzcGFjZXMgeyBnZXQ7 IH0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBhY3RpdmVfd29ya3NwYWNlX2NoYW5nZWQgKCk7Cisg CQlwdWJsaWMgc2lnbmFsIHZvaWQgc2hvd2luZ19kZXNrdG9wX2NoYW5nZWQgKCk7CisgCQlwdWJs aWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlX2FkZGVkIChpbnQgb2JqZWN0KTsKKyAJCXB1YmxpYyBz aWduYWwgdm9pZCB3b3Jrc3BhY2VfcmVtb3ZlZCAoaW50IG9iamVjdCk7CisgCQlwdWJsaWMgc2ln bmFsIHZvaWQgd29ya3NwYWNlX3N3aXRjaGVkIChpbnQgb2JqZWN0LCBpbnQgcDAsIE1ldGEuTW90 aW9uRGlyZWN0aW9uIHAxKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3BhY2VzX3Jlb3Jk ZXJlZCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXgx MS1kaXNwbGF5LmgiLCB0eXBlX2lkID0gIm1ldGFfeDExX2Rpc3BsYXlfZ2V0X3R5cGUgKCkiKV0K KyAJcHVibGljIGNsYXNzIFgxMURpc3BsYXkgOiBHTGliLk9iamVjdCB7CisgCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgWDExRGlzcGxheSAo KTsKKy0JCXB1YmxpYyB2b2lkIGZvY3VzX3RoZV9ub19mb2N1c193aW5kb3cgKHVpbnQzMiB0aW1l c3RhbXApOworKwkJcHVibGljIHZvaWQgY2xlYXJfc3RhZ2VfaW5wdXRfcmVnaW9uICgpOworIAkJ cHVibGljIGludCBnZXRfZGFtYWdlX2V2ZW50X2Jhc2UgKCk7CisgCQlwdWJsaWMgaW50IGdldF9z Y3JlZW5fbnVtYmVyICgpOworIAkJcHVibGljIGludCBnZXRfc2hhcGVfZXZlbnRfYmFzZSAoKTsK KyAJCXB1YmxpYyBib29sIGhhc19zaGFwZSAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9jbV9zZWxl Y3Rpb24gKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfaW5wdXRfZm9jdXNfd2luZG93IChNZXRhLldp bmRvdyB3aW5kb3csIGJvb2wgZm9jdXNfZnJhbWUsIHVpbnQzMiB0aW1lc3RhbXApOworKwkJcHVi bGljIHZvaWQgc2V0X3N0YWdlX2lucHV0X3JlZ2lvbiAoWC5Yc2VydmVyUmVnaW9uIHJlZ2lvbik7 CisgCQlwdWJsaWMgYm9vbCB4d2luZG93X2lzX2Ffbm9fZm9jdXNfd2luZG93IChYLldpbmRvdyB4 d2luZG93KTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWNs b3NlLWRpYWxvZy5oIiwgdHlwZV9jbmFtZSA9ICJNZXRhQ2xvc2VEaWFsb2dJbnRlcmZhY2UiLCB0 eXBlX2lkID0gIm1ldGFfY2xvc2VfZGlhbG9nX2dldF90eXBlICgpIildCitAQCAtNzc5LDI0ICs4 ODgsMjQgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJW0hhc0VtaXR0ZXJdCisgCQlwdWJsaWMgc2ln bmFsIHZvaWQgcmVzcG9uc2UgKE1ldGEuSW5oaWJpdFNob3J0Y3V0c0RpYWxvZ1Jlc3BvbnNlIHJl c3BvbnNlKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24u aCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIHN0cnVjdCBCdXR0 b25MYXlvdXQgeworIAkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMg d2VhayBNZXRhLkJ1dHRvbkZ1bmN0aW9uIGxlZnRfYnV0dG9uc1s1XTsKKysJCXB1YmxpYyB3ZWFr IE1ldGEuQnV0dG9uRnVuY3Rpb24gbGVmdF9idXR0b25zWzRdOworIAkJW0NDb2RlIChhcnJheV9s ZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBib29sIGxlZnRfYnV0dG9uc19oYXNfc3Bh Y2VyWzVdOworKwkJcHVibGljIHdlYWsgYm9vbCBsZWZ0X2J1dHRvbnNfaGFzX3NwYWNlcls0XTsK KyAJCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXQorLQkJcHVibGljIHdlYWsgTWV0YS5C dXR0b25GdW5jdGlvbiByaWdodF9idXR0b25zWzVdOworKwkJcHVibGljIHdlYWsgTWV0YS5CdXR0 b25GdW5jdGlvbiByaWdodF9idXR0b25zWzRdOworIAkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBm YWxzZSldCistCQlwdWJsaWMgd2VhayBib29sIHJpZ2h0X2J1dHRvbnNfaGFzX3NwYWNlcls1XTsK KysJCXB1YmxpYyB3ZWFrIGJvb2wgcmlnaHRfYnV0dG9uc19oYXNfc3BhY2VyWzRdOworIAl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JveGVzLmgiLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgaGFz X3R5cGVfaWQgPSBmYWxzZSldCisgCXB1YmxpYyBzdHJ1Y3QgRWRnZSB7CisgCQlwdWJsaWMgTWV0 YS5SZWN0YW5nbGUgcmVjdDsKKyAJCXB1YmxpYyBNZXRhLlNpZGUgc2lkZV90eXBlOworIAkJcHVi bGljIE1ldGEuRWRnZVR5cGUgZWRnZV90eXBlOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor IAlwdWJsaWMgc3RydWN0IEZyYW1lQm9yZGVycyB7CisgCQlwdWJsaWMgR3RrLkJvcmRlciB2aXNp YmxlOworIAkJcHVibGljIEd0ay5Cb3JkZXIgaW52aXNpYmxlOworQEAgLTgxMSwxNCArOTIwLDE0 IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyB3ZWFrIHN0cmluZyBsaWNlbnNlOworIAkJ cHVibGljIHdlYWsgc3RyaW5nIGRlc2NyaXB0aW9uOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21ldGEtcGx1Z2luLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCisgCXB1YmxpYyBzdHJ1Y3QgUGx1Z2luVmVyc2lvbiB7CisgCQlwdWJsaWMgdWludCB2 ZXJzaW9uX21ham9yOworIAkJcHVibGljIHVpbnQgdmVyc2lvbl9taW5vcjsKKyAJCXB1YmxpYyB1 aW50IHZlcnNpb25fbWljcm87CisgCQlwdWJsaWMgdWludCB2ZXJzaW9uX2FwaTsKKyAJfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9ib3hlcy5oIiwgdHlwZV9pZCA9ICJtZXRh X3JlY3RhbmdsZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rp b24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJtZXRhX3JlY3RhbmdsZV9nZXRfdHlwZSAo KSIpXQorIAlwdWJsaWMgc3RydWN0IFJlY3RhbmdsZSB7CisgCQlwdWJsaWMgaW50IHg7CisgCQlw dWJsaWMgaW50IHk7CitAQCAtODM2LDcgKzk0NSw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1 YmxpYyBNZXRhLlJlY3RhbmdsZSB1bmlvbiAoTWV0YS5SZWN0YW5nbGUgcmVjdDIpOworIAkJcHVi bGljIGJvb2wgdmVydF9vdmVybGFwIChNZXRhLlJlY3RhbmdsZSByZWN0Mik7CisgCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oIiwgaGFz X3R5cGVfaWQgPSBmYWxzZSldCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21h aW4uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgc3RydWN0IFNoYWRvd1BhcmFt cyB7CisgCQlwdWJsaWMgaW50IHJhZGl1czsKKyAJCXB1YmxpYyBpbnQgdG9wX2ZhZGU7CitAQCAt ODQ0LDEyICs5NTMsMTIgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIGludCB5X29mZnNl dDsKKyAJCXB1YmxpYyB1aW50OCBvcGFjaXR5OworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2JveGVzLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisg CXB1YmxpYyBzdHJ1Y3QgU3RydXQgeworIAkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIHJlY3Q7Cisg CQlwdWJsaWMgTWV0YS5TaWRlIHNpZGU7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvYmFycmllci5oIiwgY3ByZWZpeCA9ICJNRVRBX0JBUlJJRVJfRElSRUNUSU9OXyIs IHR5cGVfaWQgPSAibWV0YV9iYXJyaWVyX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfQkFS UklFUl9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2JhcnJpZXJfZGlyZWN0aW9uX2dldF90 eXBlICgpIildCisgCVtGbGFnc10KKyAJcHVibGljIGVudW0gQmFycmllckRpcmVjdGlvbiB7Cisg CQlQT1NJVElWRV9YLAorQEAgLTg1NywyMSArOTY2LDIwIEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJ CU5FR0FUSVZFX1gsCisgCQlORUdBVElWRV9ZCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfQlVUVE9OX0ZVTkNUSU9OXyIs IHR5cGVfaWQgPSAibWV0YV9idXR0b25fZnVuY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0JVVFRP Tl9GVU5DVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfYnV0dG9uX2Z1bmN0aW9uX2dldF90eXBlICgp IildCisgCXB1YmxpYyBlbnVtIEJ1dHRvbkZ1bmN0aW9uIHsKKyAJCU1FTlUsCisgCQlNSU5JTUla RSwKKyAJCU1BWElNSVpFLAorIAkJQ0xPU0UsCistCQlBUFBNRU5VLAorIAkJTEFTVAorIAl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgiLCBj cHJlZml4ID0gIk1FVEFfQ0xPU0VfRElBTE9HX1JFU1BPTlNFXyIsIHR5cGVfaWQgPSAibWV0YV9j bG9zZV9kaWFsb2dfcmVzcG9uc2VfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0NMT1NFX0RJQUxPR19SRVNQ T05TRV8iLCB0eXBlX2lkID0gIm1ldGFfY2xvc2VfZGlhbG9nX3Jlc3BvbnNlX2dldF90eXBlICgp IildCisgCXB1YmxpYyBlbnVtIENsb3NlRGlhbG9nUmVzcG9uc2UgeworIAkJV0FJVCwKKyAJCUZP UkNFX0NMT1NFCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9z aXRvci5oIiwgY3ByZWZpeCA9ICJNRVRBX0NPTVBfRUZGRUNUXyIsIHR5cGVfaWQgPSAibWV0YV9j b21wX2VmZmVjdF9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfQ09NUF9FRkZFQ1RfIiwgdHlwZV9pZCA9ICJt ZXRhX2NvbXBfZWZmZWN0X2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIENvbXBFZmZlY3Qg eworIAkJQ1JFQVRFLAorIAkJVU5NSU5JTUlaRSwKK0BAIC04NzksNyArOTg3LDcgQEAgbmFtZXNw YWNlIE1ldGEgeworIAkJTUlOSU1JWkUsCisgCQlOT05FCisgCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfQ1VSU09SXyIsIHR5 cGVfaWQgPSAibWV0YV9jdXJzb3JfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0NVUlNPUl8iLCB0eXBlX2lk ID0gIm1ldGFfY3Vyc29yX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIEN1cnNvciB7Cisg CQlOT05FLAorIAkJREVGQVVMVCwKK0BAIC05MDAsOSArMTAwOCwxMCBAQCBuYW1lc3BhY2UgTWV0 YSB7CisgCQlQT0lOVElOR19IQU5ELAorIAkJQ1JPU1NIQUlSLAorIAkJSUJFQU0sCisrCQlCTEFO SywKKyAJCUxBU1QKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGls LmgiLCBjcHJlZml4ID0gIk1FVEFfREVCVUdfIiwgdHlwZV9pZCA9ICJtZXRhX2RlYnVnX3RvcGlj X2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIsIGNwcmVmaXggPSAiTUVUQV9ERUJVR18iLCB0eXBlX2lkID0gIm1ldGFfZGVidWdfdG9waWNf Z2V0X3R5cGUgKCkiKV0KKyAJW0ZsYWdzXQorIAlwdWJsaWMgZW51bSBEZWJ1Z1RvcGljIHsKKyAJ CVZFUkJPU0UsCitAQCAtOTI4LDkgKzEwMzcsMTAgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJU0hB UEVTLAorIAkJQ09NUE9TSVRPUiwKKyAJCUVER0VfUkVTSVNUQU5DRSwKKy0JCURCVVMKKysJCURC VVMsCisrCQlJTlBVVAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Nv bW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0RJUkVDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfZGly ZWN0aW9uX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2Rp cmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCisgCXB1YmxpYyBlbnVtIERpcmVjdGlv biB7CisgCQlMRUZULAorQEAgLTk0MiwyMSArMTA1MiwyMSBAQCBuYW1lc3BhY2UgTWV0YSB7Cisg CQlIT1JJWk9OVEFMLAorIAkJVkVSVElDQUwKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9kaXNwbGF5LmgiLCBjcHJlZml4ID0gIk1FVEFfRElTUExBWV8iLCB0eXBlX2lk ID0gIm1ldGFfZGlzcGxheV9jb3JuZXJfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0RJU1BMQVlfIiwgdHlw ZV9pZCA9ICJtZXRhX2Rpc3BsYXlfY29ybmVyX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVt IERpc3BsYXlDb3JuZXIgeworIAkJVE9QTEVGVCwKKyAJCVRPUFJJR0hULAorIAkJQk9UVE9NTEVG VCwKKyAJCUJPVFRPTVJJR0hUCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvZGlzcGxheS5oIiwgY3ByZWZpeCA9ICJNRVRBX0RJU1BMQVlfIiwgdHlwZV9pZCA9ICJtZXRh X2Rpc3BsYXlfZGlyZWN0aW9uX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9ESVNQTEFZXyIsIHR5cGVfaWQg PSAibWV0YV9kaXNwbGF5X2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBE aXNwbGF5RGlyZWN0aW9uIHsKKyAJCVVQLAorIAkJRE9XTiwKKyAJCUxFRlQsCisgCQlSSUdIVAor IAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JveGVzLmgiLCBjcHJlZml4 ID0gIk1FVEFfRURHRV8iLCB0eXBlX2lkID0gIm1ldGFfZWRnZV90eXBlX2dldF90eXBlICgpIild CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAi TUVUQV9FREdFXyIsIHR5cGVfaWQgPSAibWV0YV9lZGdlX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKyAJ cHVibGljIGVudW0gRWRnZVR5cGUgeworIAkJV0lORE9XLAorIAkJTU9OSVRPUiwKK0BAIC05Njcs MTIgKzEwNzcsMTEgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJU1VDQ0VTUywKKyAJCUVSUk9SCisg CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4 ID0gIk1FVEFfRlJBTUVfIiwgdHlwZV9pZCA9ICJtZXRhX2ZyYW1lX2ZsYWdzX2dldF90eXBlICgp IildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXgg PSAiTUVUQV9GUkFNRV8iLCB0eXBlX2lkID0gIm1ldGFfZnJhbWVfZmxhZ3NfZ2V0X3R5cGUgKCki KV0KKyAJW0ZsYWdzXQorIAlwdWJsaWMgZW51bSBGcmFtZUZsYWdzIHsKKyAJCUFMTE9XU19ERUxF VEUsCisgCQlBTExPV1NfTUVOVSwKKy0JCUFMTE9XU19BUFBNRU5VLAorIAkJQUxMT1dTX01JTklN SVpFLAorIAkJQUxMT1dTX01BWElNSVpFLAorIAkJQUxMT1dTX1ZFUlRJQ0FMX1JFU0laRSwKK0BA IC05ODQsMTIgKzEwOTMsMTEgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJQUxMT1dTX1NIQURFLAor IAkJQUxMT1dTX01PVkUsCisgCQlGVUxMU0NSRUVOLAorLQkJSVNfRkxBU0hJTkcsCisgCQlBQk9W RSwKKyAJCVRJTEVEX0xFRlQsCisgCQlUSUxFRF9SSUdIVAorIAl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0ZSQU1FX1RZUEVf IiwgdHlwZV9pZCA9ICJtZXRhX2ZyYW1lX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0ZSQU1FX1RZ UEVfIiwgdHlwZV9pZCA9ICJtZXRhX2ZyYW1lX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGlj IGVudW0gRnJhbWVUeXBlIHsKKyAJCU5PUk1BTCwKKyAJCURJQUxPRywKK0BAIC0xMDAxLDcgKzEx MDksNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlMQVNUOworIAkJcHVibGljIHVub3duZWQgc3Ry aW5nIHRvX3N0cmluZyAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9HUkFCX09QXyIsIHR5cGVfaWQgPSAibWV0YV9n cmFiX29wX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9HUkFCX09QXyIsIHR5cGVfaWQgPSAibWV0YV9ncmFi X29wX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIEdyYWJPcCB7CisgCQlOT05FLAorIAkJ V0lORE9XX0JBU0UsCitAQCAtMTAyOCwxMiArMTEzNiwyNiBAQCBuYW1lc3BhY2UgTWV0YSB7Cisg CQlLRVlCT0FSRF9SRVNJWklOR19TRSwKKyAJCUtFWUJPQVJEX1JFU0laSU5HX1cKKyAJfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRp YWxvZy5oIiwgY3ByZWZpeCA9ICJNRVRBX0lOSElCSVRfU0hPUlRDVVRTX0RJQUxPR19SRVNQT05T RV8iLCB0eXBlX2lkID0gIm1ldGFfaW5oaWJpdF9zaG9ydGN1dHNfZGlhbG9nX3Jlc3BvbnNlX2dl dF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIs IGNwcmVmaXggPSAiTUVUQV9HUkFWSVRZXyIsIHR5cGVfaWQgPSAibWV0YV9ncmF2aXR5X2dldF90 eXBlICgpIildCisrCXB1YmxpYyBlbnVtIEdyYXZpdHkgeworKwkJTk9ORSwKKysJCU5PUlRIX1dF U1QsCisrCQlOT1JUSCwKKysJCU5PUlRIX0VBU1QsCisrCQlXRVNULAorKwkJQ0VOVEVSLAorKwkJ RUFTVCwKKysJCVNPVVRIX1dFU1QsCisrCQlTT1VUSCwKKysJCVNPVVRIX0VBU1QsCisrCQlTVEFU SUMKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJl Zml4ID0gIk1FVEFfSU5ISUJJVF9TSE9SVENVVFNfRElBTE9HX1JFU1BPTlNFXyIsIHR5cGVfaWQg PSAibWV0YV9pbmhpYml0X3Nob3J0Y3V0c19kaWFsb2dfcmVzcG9uc2VfZ2V0X3R5cGUgKCkiKV0K KyAJcHVibGljIGVudW0gSW5oaWJpdFNob3J0Y3V0c0RpYWxvZ1Jlc3BvbnNlIHsKKyAJCUFMTE9X LAorIAkJREVOWQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZz LmgiLCBjcHJlZml4ID0gIk1FVEFfS0VZQklORElOR19BQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRh X2tleV9iaW5kaW5nX2FjdGlvbl9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfS0VZQklORElOR19BQ1RJT05f IiwgdHlwZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5nX2FjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlw dWJsaWMgZW51bSBLZXlCaW5kaW5nQWN0aW9uIHsKKyAJCU5PTkUsCisgCQlXT1JLU1BBQ0VfMSwK K0BAIC0xMTIyLDIyICsxMjQ0LDI1IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCU1PVkVfVE9fU0lE RV9XLAorIAkJTU9WRV9UT19DRU5URVIsCisgCQlPVkVSTEFZX0tFWSwKKysJCUxPQ0FURV9QT0lO VEVSX0tFWSwKKyAJCUlTT19ORVhUX0dST1VQLAorIAkJQUxXQVlTX09OX1RPUCwKKyAJCVNXSVRD SF9NT05JVE9SLAorIAkJUk9UQVRFX01PTklUT1IsCisgCQlMQVNUCisgCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNwcmVmaXggPSAiTUVUQV9LRVlfQklO RElOR18iLCB0eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0K KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJN RVRBX0tFWV9CSU5ESU5HXyIsIHR5cGVfaWQgPSAibWV0YV9rZXlfYmluZGluZ19mbGFnc19nZXRf dHlwZSAoKSIpXQorIAlbRmxhZ3NdCisgCXB1YmxpYyBlbnVtIEtleUJpbmRpbmdGbGFncyB7Cisg CQlOT05FLAorIAkJUEVSX1dJTkRPVywKKyAJCUJVSUxUSU4sCisgCQlJU19SRVZFUlNFRCwKKy0J CU5PTl9NQVNLQUJMRQorKwkJTk9OX01BU0tBQkxFLAorKwkJSUdOT1JFX0FVVE9SRVBFQVQsCisr CQlOT19BVVRPX0dSQUIKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91 dGlsLmgiLCBjcHJlZml4ID0gIk1FVEFfTEFURVJfIiwgdHlwZV9pZCA9ICJtZXRhX2xhdGVyX3R5 cGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFp bi5oIiwgY3ByZWZpeCA9ICJNRVRBX0xBVEVSXyIsIHR5cGVfaWQgPSAibWV0YV9sYXRlcl90eXBl X2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIExhdGVyVHlwZSB7CisgCQlSRVNJWkUsCisg CQlDQUxDX1NIT1dJTkcsCitAQCAtMTE0NiwyNSArMTI3MSwyNSBAQCBuYW1lc3BhY2UgTWV0YSB7 CisgCQlCRUZPUkVfUkVEUkFXLAorIAkJSURMRQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNwcmVmaXggPSAiTUVUQV9MT0NBTEVfRElSRUNUSU9OXyIs IHR5cGVfaWQgPSAibWV0YV9sb2NhbGVfZGlyZWN0aW9uX2dldF90eXBlICgpIildCisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9MT0NB TEVfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9sb2NhbGVfZGlyZWN0aW9uX2dldF90eXBl ICgpIildCisgCXB1YmxpYyBlbnVtIExvY2FsZURpcmVjdGlvbiB7CisgCQlMVFIsCisgCQlSVEwK KyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cuaCIsIGNwcmVm aXggPSAiTUVUQV9NQVhJTUlaRV8iLCB0eXBlX2lkID0gIm1ldGFfbWF4aW1pemVfZmxhZ3NfZ2V0 X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwg Y3ByZWZpeCA9ICJNRVRBX01BWElNSVpFXyIsIHR5cGVfaWQgPSAibWV0YV9tYXhpbWl6ZV9mbGFn c19nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCisgCXB1YmxpYyBlbnVtIE1heGltaXplRmxhZ3Mg eworIAkJSE9SSVpPTlRBTCwKKyAJCVZFUlRJQ0FMLAorIAkJQk9USAorIAl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtcGx1Z2luLmgiLCBjcHJlZml4ID0gIk1FVEFf TU9EQUxfIiwgdHlwZV9pZCA9ICJtZXRhX21vZGFsX29wdGlvbnNfZ2V0X3R5cGUgKCkiKV0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRB X01PREFMXyIsIHR5cGVfaWQgPSAibWV0YV9tb2RhbF9vcHRpb25zX2dldF90eXBlICgpIildCisg CVtGbGFnc10KKyAJcHVibGljIGVudW0gTW9kYWxPcHRpb25zIHsKKyAJCVBPSU5URVJfQUxSRUFE WV9HUkFCQkVELAorIAkJS0VZQk9BUkRfQUxSRUFEWV9HUkFCQkVECisgCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCIsIGNwcmVmaXgg PSAiTUVUQV9NT05JVE9SX1NXSVRDSF9DT05GSUdfIiwgdHlwZV9pZCA9ICJtZXRhX21vbml0b3Jf c3dpdGNoX2NvbmZpZ190eXBlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9NT05JVE9SX1NXSVRDSF9DT05G SUdfIiwgdHlwZV9pZCA9ICJtZXRhX21vbml0b3Jfc3dpdGNoX2NvbmZpZ190eXBlX2dldF90eXBl ICgpIildCisgCXB1YmxpYyBlbnVtIE1vbml0b3JTd2l0Y2hDb25maWdUeXBlIHsKKyAJCUFMTF9N SVJST1IsCisgCQlBTExfTElORUFSLAorQEAgLTExNzIsNyArMTI5Nyw3IEBAIG5hbWVzcGFjZSBN ZXRhIHsKKyAJCUJVSUxUSU4sCisgCQlVTktOT1dOCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfTU9USU9OXyIsIHR5cGVf aWQgPSAibWV0YV9tb3Rpb25fZGlyZWN0aW9uX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9NT1RJT05fIiwg dHlwZV9pZCA9ICJtZXRhX21vdGlvbl9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGlj IGVudW0gTW90aW9uRGlyZWN0aW9uIHsKKyAJCVVQLAorIAkJRE9XTiwKK0BAIC0xMTgzLDcgKzEz MDgsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlET1dOX0xFRlQsCisgCQlET1dOX1JJR0hUCisg CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvZGlzcGxheS5oIiwgY3ByZWZp eCA9ICJNRVRBX1BBRF9BQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX3BhZF9hY3Rpb25fdHlwZV9n ZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi LCBjcHJlZml4ID0gIk1FVEFfUEFEX0FDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfcGFkX2FjdGlv bl90eXBlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIFBhZEFjdGlvblR5cGUgeworIAkJ QlVUVE9OLAorIAkJUklORywKK0BAIC0xMjIzLDMwICsxMzQ4LDM5IEBAIG5hbWVzcGFjZSBNZXRh IHsKKyAJCURSQUdHQUJMRV9CT1JERVJfV0lEVEgsCisgCQlBVVRPX01BWElNSVpFLAorIAkJQ0VO VEVSX05FV19XSU5ET1dTLAorLQkJRFJBR19USFJFU0hPTEQ7CisrCQlEUkFHX1RIUkVTSE9MRCwK KysJCUxPQ0FURV9QT0lOVEVSLAorKwkJQ0hFQ0tfQUxJVkVfVElNRU9VVDsKKyAJCXB1YmxpYyB1 bm93bmVkIHN0cmluZyB0b19zdHJpbmcgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCIsIGNwcmVmaXggPSAiTUVUQV9TSEFET1df TU9ERV8iLCB0eXBlX2lkID0gIm1ldGFfc2hhZG93X21vZGVfZ2V0X3R5cGUgKCkiKV0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBXyIs IHR5cGVfaWQgPSAibWV0YV9zZWxlY3Rpb25fdHlwZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMg ZW51bSBTZWxlY3Rpb25UeXBlIHsKKysJCVNFTEVDVElPTl9QUklNQVJZLAorKwkJU0VMRUNUSU9O X0NMSVBCT0FSRCwKKysJCVNFTEVDVElPTl9ETkQsCisrCQlOX1NFTEVDVElPTl9UWVBFUworKwl9 CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAi TUVUQV9TSEFET1dfTU9ERV8iLCB0eXBlX2lkID0gIm1ldGFfc2hhZG93X21vZGVfZ2V0X3R5cGUg KCkiKV0KKyAJcHVibGljIGVudW0gU2hhZG93TW9kZSB7CisgCQlBVVRPLAorIAkJRk9SQ0VEX09G RiwKKyAJCUZPUkNFRF9PTgorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1NJREVfIiwgdHlwZV9pZCA9ICJtZXRhX3NpZGVf Z2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IiwgY3ByZWZpeCA9ICJNRVRBX1NJREVfIiwgdHlwZV9pZCA9ICJtZXRhX3NpZGVfZ2V0X3R5cGUg KCkiKV0KKyAJcHVibGljIGVudW0gU2lkZSB7CisgCQlMRUZULAorIAkJUklHSFQsCisgCQlUT1As CisgCQlCT1RUT00KKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21w b3NpdG9yLmgiLCBjcHJlZml4ID0gIk1FVEFfU0laRV9DSEFOR0VfIiwgdHlwZV9pZCA9ICJtZXRh X3NpemVfY2hhbmdlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9TSVpFX0NIQU5HRV8iLCB0eXBlX2lkID0g Im1ldGFfc2l6ZV9jaGFuZ2VfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gU2l6ZUNoYW5n ZSB7CisgCQlNQVhJTUlaRSwKKyAJCVVOTUFYSU1JWkUsCisgCQlGVUxMU0NSRUVOLAorIAkJVU5G VUxMU0NSRUVOCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9u LmgiLCBjcHJlZml4ID0gIk1FVEFfTEFZRVJfIiwgdHlwZV9pZCA9ICJtZXRhX3N0YWNrX2xheWVy X2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIsIGNwcmVmaXggPSAiTUVUQV9MQVlFUl8iLCB0eXBlX2lkID0gIm1ldGFfc3RhY2tfbGF5ZXJf Z2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gU3RhY2tMYXllciB7CisgCQlERVNLVE9QLAor IAkJQk9UVE9NLAorQEAgLTEyNTYsMTkgKzEzOTAsMTkgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJ T1ZFUlJJREVfUkVESVJFQ1QsCisgCQlMQVNUCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvZGlzcGxheS5oIiwgY3ByZWZpeCA9ICJNRVRBX1RBQl9MSVNUXyIsIHR5cGVf aWQgPSAibWV0YV90YWJfbGlzdF9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfVEFCX0xJU1RfIiwgdHlwZV9p ZCA9ICJtZXRhX3RhYl9saXN0X2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIFRhYkxpc3Qg eworIAkJTk9STUFMLAorIAkJRE9DS1MsCisgCQlHUk9VUCwKKyAJCU5PUk1BTF9BTEwKKyAJfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9kaXNwbGF5LmgiLCBjcHJlZml4ID0g Ik1FVEFfVEFCX1NIT1dfIiwgdHlwZV9pZCA9ICJtZXRhX3RhYl9zaG93X3R5cGVfZ2V0X3R5cGUg KCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZp eCA9ICJNRVRBX1RBQl9TSE9XXyIsIHR5cGVfaWQgPSAibWV0YV90YWJfc2hvd190eXBlX2dldF90 eXBlICgpIildCisgCXB1YmxpYyBlbnVtIFRhYlNob3dUeXBlIHsKKyAJCUlDT04sCisgCQlJTlNU QU5UTFkKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIs IGNwcmVmaXggPSAiTUVUQV9WSVJUVUFMXyIsIHR5cGVfaWQgPSAibWV0YV92aXJ0dWFsX21vZGlm aWVyX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21h aW4uaCIsIGNwcmVmaXggPSAiTUVUQV9WSVJUVUFMXyIsIHR5cGVfaWQgPSAibWV0YV92aXJ0dWFs X21vZGlmaWVyX2dldF90eXBlICgpIildCisgCVtGbGFnc10KKyAJcHVibGljIGVudW0gVmlydHVh bE1vZGlmaWVyIHsKKyAJCVNISUZUX01BU0ssCitAQCAtMTI4MiwxNyArMTQxNiwxNyBAQCBuYW1l c3BhY2UgTWV0YSB7CisgCQlNT0Q0X01BU0ssCisgCQlNT0Q1X01BU0sKKyAJfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cuaCIsIGNwcmVmaXggPSAiTUVUQV9XSU5E T1dfQ0xJRU5UX1RZUEVfIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19jbGllbnRfdHlwZV9nZXRf dHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBj cHJlZml4ID0gIk1FVEFfV0lORE9XX0NMSUVOVF9UWVBFXyIsIHR5cGVfaWQgPSAibWV0YV93aW5k b3dfY2xpZW50X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gV2luZG93Q2xpZW50 VHlwZSB7CisgCQlXQVlMQU5ELAorIAkJWDExCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfV0lORE9XX01FTlVfIiwgdHlw ZV9pZCA9ICJtZXRhX3dpbmRvd19tZW51X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1dJTkRPV19N RU5VXyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfbWVudV90eXBlX2dldF90eXBlICgpIildCisg CXB1YmxpYyBlbnVtIFdpbmRvd01lbnVUeXBlIHsKKyAJCVdNLAorIAkJQVBQCisgCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvd2luZG93LmgiLCBjcHJlZml4ID0gIk1FVEFf V0lORE9XXyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfdHlwZV9nZXRfdHlwZSAoKSIpXQorKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFf V0lORE9XXyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfdHlwZV9nZXRfdHlwZSAoKSIpXQorIAlw dWJsaWMgZW51bSBXaW5kb3dUeXBlIHsKKyAJCU5PUk1BTCwKKyAJCURFU0tUT1AsCitAQCAtMTMx MSw1MSArMTQ0NSw1NyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlETkQsCisgCQlPVkVSUklERV9P VEhFUgorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtaWRsZS1t b25pdG9yLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorIAlwdWJsaWMgZGVsZWdh dGUgdm9pZCBJZGxlTW9uaXRvcldhdGNoRnVuYyAoTWV0YS5JZGxlTW9uaXRvciBtb25pdG9yLCB1 aW50IHdhdGNoX2lkKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMu aCIsIGluc3RhbmNlX3BvcyA9IDQuOSldCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIsIGluc3RhbmNlX3BvcyA9IDQuOSldCisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lk IEtleUhhbmRsZXJGdW5jIChNZXRhLkRpc3BsYXkgZGlzcGxheSwgTWV0YS5XaW5kb3cgd2luZG93 LCBbQ0NvZGUgKHR5cGUgPSAiQ2x1dHRlcktleUV2ZW50KiIpXSBDbHV0dGVyLktleUV2ZW50PyBl dmVudCwgTWV0YS5LZXlCaW5kaW5nIGJpbmRpbmcpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9wcmVmcy5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJcHVi bGljIGRlbGVnYXRlIHZvaWQgUHJlZnNDaGFuZ2VkRnVuYyAoTWV0YS5QcmVmZXJlbmNlIHByZWYp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cuaCIsIGluc3RhbmNl X3BvcyA9IDEuOSldCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIs IGluc3RhbmNlX3BvcyA9IDEuOSldCisgCXB1YmxpYyBkZWxlZ2F0ZSBib29sIFdpbmRvd0ZvcmVh Y2hGdW5jIChNZXRhLldpbmRvdyB3aW5kb3cpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfQ1VSUkVOVF9USU1FIildCisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfQ1VSUkVO VF9USU1FIildCisgCXB1YmxpYyBjb25zdCBpbnQgQ1VSUkVOVF9USU1FOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfREVGQVVMVF9J Q09OX05BTUUiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwg Y25hbWUgPSAiTUVUQV9ERUZBVUxUX0lDT05fTkFNRSIpXQorIAlwdWJsaWMgY29uc3Qgc3RyaW5n IERFRkFVTFRfSUNPTl9OQU1FOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9j b21tb24uaCIsIGNuYW1lID0gIk1FVEFfSUNPTl9IRUlHSFQiKV0KKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9JQ09OX0hFSUdIVCIpXQor IAlwdWJsaWMgY29uc3QgaW50IElDT05fSEVJR0hUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfSUNPTl9XSURUSCIpXQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX0lDT05f V0lEVEgiKV0KKyAJcHVibGljIGNvbnN0IGludCBJQ09OX1dJRFRIOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfTUFKT1JfVkVSU0lP TiIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9 ICJNRVRBX01BSk9SX1ZFUlNJT04iKV0KKyAJcHVibGljIGNvbnN0IGludCBNQUpPUl9WRVJTSU9O OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0g Ik1FVEFfTUlDUk9fVkVSU0lPTiIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01JQ1JPX1ZFUlNJT04iKV0KKyAJcHVibGljIGNvbnN0 IGludCBNSUNST19WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9j b21tb24uaCIsIGNuYW1lID0gIk1FVEFfTUlOSV9JQ09OX0hFSUdIVCIpXQorKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01JTklfSUNPTl9I RUlHSFQiKV0KKyAJcHVibGljIGNvbnN0IGludCBNSU5JX0lDT05fSEVJR0hUOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfTUlOSV9J Q09OX1dJRFRIIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIs IGNuYW1lID0gIk1FVEFfTUlOSV9JQ09OX1dJRFRIIildCisgCXB1YmxpYyBjb25zdCBpbnQgTUlO SV9JQ09OX1dJRFRIOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24u aCIsIGNuYW1lID0gIk1FVEFfTUlOT1JfVkVSU0lPTiIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01JTk9SX1ZFUlNJT04iKV0KKyAJ cHVibGljIGNvbnN0IGludCBNSU5PUl9WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfUExVR0lOX0FQSV9WRVJTSU9OIild CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1F VEFfUExVR0lOX0FQSV9WRVJTSU9OIildCisgCXB1YmxpYyBjb25zdCBpbnQgUExVR0lOX0FQSV9W RVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNu YW1lID0gIk1FVEFfUFJJT1JJVFlfQkVGT1JFX1JFRFJBVyIpXQorKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZX0JFRk9SRV9S RURSQVciKV0KKyAJcHVibGljIGNvbnN0IGludCBQUklPUklUWV9CRUZPUkVfUkVEUkFXOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFf UFJJT1JJVFlfUFJFRlNfTk9USUZZIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUFJFRlNfTk9USUZZIildCisgCXB1 YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfUFJFRlNfTk9USUZZOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUkVEUkFX IildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0g Ik1FVEFfUFJJT1JJVFlfUkVEUkFXIildCisgCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfUkVE UkFXOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1l ID0gIk1FVEFfUFJJT1JJVFlfUkVTSVpFIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUkVTSVpFIildCisgCXB1Ymxp YyBjb25zdCBpbnQgUFJJT1JJVFlfUkVTSVpFOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfVklSVFVBTF9DT1JFX0tFWUJPQVJEX0lE IildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0g Ik1FVEFfVklSVFVBTF9DT1JFX0tFWUJPQVJEX0lEIildCisgCXB1YmxpYyBjb25zdCBpbnQgVklS VFVBTF9DT1JFX0tFWUJPQVJEX0lEOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfVklSVFVBTF9DT1JFX1BPSU5URVJfSUQiKV0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9W SVJUVUFMX0NPUkVfUE9JTlRFUl9JRCIpXQorIAlwdWJsaWMgY29uc3QgaW50IFZJUlRVQUxfQ09S RV9QT0lOVEVSX0lEOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi KV0KKyAJcHVibGljIHN0YXRpYyBib29sIGFjdGl2YXRlX3Nlc3Npb24gKCk7CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorKwlwdWJsaWMgc3RhdGljIHZvaWQg YWRkX2NsdXR0ZXJfZGVidWdfZmxhZ3MgKENsdXR0ZXIuRGVidWdGbGFnIGRlYnVnX2ZsYWdzLCBD bHV0dGVyLkRyYXdEZWJ1Z0ZsYWcgZHJhd19mbGFncywgQ2x1dHRlci5QaWNrRGVidWdGbGFnIHBp Y2tfZmxhZ3MpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0K KysJcHVibGljIHN0YXRpYyB2b2lkIGNsdXR0ZXJfaW5pdCAoKTsKKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBleGl0IChN ZXRhLkV4aXRDb2RlIGNvZGUpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiKV0KKysJcHVibGljIHN0YXRpYyBzdHJpbmcgZ191dGY4X3N0cm5kdXAgKHN0cmluZyBz cmMsIHNpemVfdCBuKTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IildCisgCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHTGliLk9wdGlvbkNvbnRleHQgZ2V0X29wdGlv bl9jb250ZXh0ICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi KV0KKyAJcHVibGljIHN0YXRpYyBib29sIGdldF9yZXBsYWNlX2N1cnJlbnRfd20gKCk7CitAQCAt MTM2OCw2ICsxNTA4LDggQEAgbmFtZXNwYWNlIE1ldGEgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIHJlZ2lzdGVyX3dp dGhfc2Vzc2lvbiAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IildCisrCXB1YmxpYyBzdGF0aWMgdm9pZCByZW1vdmVfY2x1dHRlcl9kZWJ1Z19mbGFncyAoQ2x1 dHRlci5EZWJ1Z0ZsYWcgZGVidWdfZmxhZ3MsIENsdXR0ZXIuRHJhd0RlYnVnRmxhZyBkcmF3X2Zs YWdzLCBDbHV0dGVyLlBpY2tEZWJ1Z0ZsYWcgcGlja19mbGFncyk7CisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgcmVzdGFy dCAoc3RyaW5nPyBtZXNzYWdlKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgaW50IHJ1biAoKTsKK0BAIC0xMzc1LDYgKzE1MTcs MTQgQEAgbmFtZXNwYWNlIE1ldGEgeworIAlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2dub21lX3dt X2tleWJpbmRpbmdzIChzdHJpbmcgd21fa2V5YmluZGluZ3MpOworIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIHNldF93bV9u YW1lIChzdHJpbmcgd21fbmFtZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21ldGEteDExLWRpc3BsYXkuaCIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiKV0KKysJcHVibGljIHN0YXRpYyB2b2lkIHRlc3RfaW5pdCAoKTsKKysJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgYm9v bCB4MTFfaW5pdF9nZGtfZGlzcGxheSAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyB9CisrW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImxpYm11dHRlci03LWN1c3RvbS5oIiwgaGFzX3R5cGVfaWQg PSBmYWxzZSldCisrcHVibGljIHN0cnVjdCBiZWZvcmVfZnJhbWUgeworK30KKytbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibGlibXV0dGVyLTctY3VzdG9tLmgiLCBoYXNfdHlwZV9pZCA9IGZh bHNlKV0KKytwdWJsaWMgc3RydWN0IGZyYW1lIHsKKyt9CitkaWZmIC0tZ2l0IHZhcGkvbGlibXV0 dGVyLWNvZ2wtNC52YXBpIHZhcGkvbGlibXV0dGVyLWNvZ2wtNC52YXBpCitkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKK2luZGV4IDdkYzE4NDc2Li4wMDAwMDAwMAorLS0tIHZhcGkvbGlibXV0dGVy LWNvZ2wtNC52YXBpCisrKysgL2Rldi9udWxsCitAQCAtMSwxMjcyICswLDAgQEAKKy0vKiBsaWJt dXR0ZXItY29nbC00LnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnkuICov CistCistW0NDb2RlIChjcHJlZml4ID0gIkNvZ2wiLCBnaXJfbmFtZXNwYWNlID0gIkNvZ2wiLCBn aXJfdmVyc2lvbiA9ICI0IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gImNvZ2xfIildCistbmFtZXNw YWNlIENvZ2wgeworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0 eXBlX2lkID0gImNvZ2xfYml0bWFwX2dldF9ndHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgQml0 bWFwIDogQ29nbC5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UpXQorLQkJcHJvdGVjdGVkIEJpdG1hcCAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgdWludDMy IGVycm9yX3F1YXJrICgpOworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIEJpdG1hcC5mcm9t X2ZpbGUgKHN0cmluZyBmaWxlbmFtZSkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENvZ2wuUGl4ZWxGb3JtYXQgZ2V0X2Zvcm1hdCAo KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgaW50IGdldF9oZWln aHQgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIGludCBnZXRf cm93c3RyaWRlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0 YXRpYyBDb2dsLkJvb2wgZ2V0X3NpemVfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUsIG91dCBp bnQgd2lkdGgsIG91dCBpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CistCQlwdWJsaWMgaW50IGdldF93aWR0aCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0NvbXBhY3Rd CistCXB1YmxpYyBjbGFzcyBFdWxlciB7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1 bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY29nbF9mcmFtZV9jbG9zdXJlX2dl dF9ndHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0K Ky0JcHVibGljIGNsYXNzIEZyYW1lQ2xvc3VyZSB7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBm cmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY29nbF9tYXRlcmlhbF9n ZXRfdHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIE1hdGVyaWFsIHsKKy0J CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMg TWF0ZXJpYWwgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWwg Y29weSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBmb3JlYWNoX2xheWVy IChDb2dsLk1hdGVyaWFsTGF5ZXJDYWxsYmFjayBjYWxsYmFjayk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIHZvaWQgZ2V0X2FtYmllbnQgKENvZ2wuQ29sb3IgYW1iaWVudCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNp bmNlID0gIjEuMCIpXQorLQkJcHVibGljIENvZ2wuQ29sb3IgZ2V0X2NvbG9yICgpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9kaWZmdXNlIChDb2dsLkNvbG9yIGRpZmZ1 c2UpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9lbWlzc2lvbiAoQ29n bC5Db2xvciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuQm9v bCBnZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5ZXJfaW5kZXgp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0 X2xheWVyX3dyYXBfbW9kZV9wIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0K Ky0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9zIChp bnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVy aWFsV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJfaW5kZXgpOworLQkJ cHVibGljIHVub3duZWQgR0xpYi5MaXN0PENvZ2wuTWF0ZXJpYWxMYXllcj4gZ2V0X2xheWVycyAo KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgaW50IGdldF9uX2xheWVycyAoKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwg c2luY2UgPSAiMS40IildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3BvaW50X3NpemUgKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNp bmNlID0gIjEuMCIpXQorLQkJcHVibGljIGZsb2F0IGdldF9zaGluaW5lc3MgKCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1 bGFyKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ29nbC5IYW5kbGUgZ2V0X3VzZXJf cHJvZ3JhbSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5IYW5k bGUgQHJlZiAoQ29nbC5IYW5kbGUgbWF0ZXJpYWwpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92 ZV9sYXllciAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMg dm9pZCBzZXRfYWxwaGFfdGVzdF9mdW5jdGlvbiAoQ29nbC5NYXRlcmlhbEFscGhhRnVuYyBhbHBo YV9mdW5jLCBmbG9hdCBhbHBoYV9yZWZlcmVuY2UpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9hbWJpZW50IChDb2dsLkNvbG9yIGFtYmllbnQpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIx LjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbWJpZW50X2FuZF9kaWZmdXNlIChDb2dsLkNvbG9y IGNvbG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9ibGVu ZCAoc3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEu MCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2JsZW5kX2NvbnN0YW50IChDb2dsLkNvbG9yIGNvbnN0 YW50X2NvbG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3Ig KENvZ2wuQ29sb3IgY29sb3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9jb2xvcjRmIChmbG9hdCByZWQsIGZsb2F0IGdyZWVuLCBmbG9hdCBibHVlLCBmbG9hdCBhbHBo YSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yNHViICh1aW50 OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVlLCB1aW50OCBhbHBoYSk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2RpZmZ1c2UgKENvZ2wuQ29sb3IgZGlmZnVzZSk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2VtaXNzaW9uIChDb2dsLkNv bG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5 ZXIgKGludCBsYXllcl9pbmRleCwgQ29nbC5IYW5kbGUgdGV4dHVyZSk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEu MCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfbGF5ZXJfY29tYmluZSAoaW50IGxheWVyX2lu ZGV4LCBzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfY29tYmluZV9jb25zdGFudCAoaW50IGxh eWVyX2luZGV4LCBDb2dsLkNvbG9yIGNvbnN0YW50KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgdm9pZCBzZXRf bGF5ZXJfZmlsdGVycyAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsRmlsdGVyIG1pbl9m aWx0ZXIsIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgbWFnX2ZpbHRlcik7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIHZv aWQgc2V0X2xheWVyX21hdHJpeCAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdHJpeCBtYXRyaXgp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2xheWVyX3BvaW50 X3Nwcml0ZV9jb29yZHNfZW5hYmxlZCAoaW50IGxheWVyX2luZGV4LCBDb2dsLkJvb2wgZW5hYmxl KSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBz ZXRfbGF5ZXJfd3JhcF9tb2RlIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFwTW9k ZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3Jh cF9tb2RlX3AgKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIG1vZGUpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfcyAo aW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJf aW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCist CQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRfc2l6ZSAoZmxvYXQgcG9pbnRfc2l6ZSk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NoaW5pbmVzcyAoZmxvYXQgc2hpbmluZXNz KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc3BlY3VsYXIgKENvZ2wu Q29sb3Igc3BlY3VsYXIpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91 c2VyX3Byb2dyYW0gKENvZ2wuSGFuZGxlIHByb2dyYW0pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIHN0YXRpYyB2b2lkIHVucmVmIChDb2dsLkhhbmRsZSBtYXRlcmlhbCk7CistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgTWF0ZXJpYWxMYXllciB7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQor LQkJcHVibGljIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgZ2V0X21hZ19maWx0ZXIgKCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJ cHVibGljIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgZ2V0X21pbl9maWx0ZXIgKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVi bGljIENvZ2wuSGFuZGxlIGdldF90ZXh0dXJlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVy aWFsTGF5ZXJUeXBlIGdldF90eXBlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBD b2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X3dyYXBfbW9kZV9wICgpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQi KV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X3dyYXBfbW9kZV9zICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X3dy YXBfbW9kZV90ICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIHR5cGVfaWQgPSAiY29nbF9vYmplY3RfZ2V0X2d0eXBlICgpIildCistCXB1YmxpYyBh YnN0cmFjdCBjbGFzcyBPYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIE9iamVjdCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfb2Zmc2NyZWVuX2dl dF9ndHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgT2Zmc2NyZWVuIDogQ29nbC5PYmplY3QsIENv Z2wuRnJhbWVidWZmZXIgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorLQkJcHJvdGVjdGVkIE9mZnNjcmVlbiAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9p ZCogQHJlZiAodm9pZCogb2Zmc2NyZWVuKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgT2Zmc2NyZWVuLnRvX3RleHR1cmUgKENvZ2wu VGV4dHVyZSB0ZXh0dXJlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCB1bnJlZiAodm9pZCog b2Zmc2NyZWVuKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0K Ky0JCXB1YmxpYyBPZmZzY3JlZW4ud2l0aF90ZXh0dXJlIChDb2dsLlRleHR1cmUgdGV4dHVyZSk7 CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9p ZCA9ICJjb2dsX29uc2NyZWVuX2dldF9ndHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgT25zY3Jl ZW4gOiBDb2dsLk9iamVjdCwgQ29nbC5GcmFtZWJ1ZmZlciB7CistCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgT25zY3JlZW4gKCk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIENvZ2wuT25zY3JlZW5EaXJ0eUNs b3N1cmUgYWRkX2RpcnR5X2NhbGxiYWNrIChbQ0NvZGUgKGRlbGVnYXRlX3RhcmdldF9wb3MgPSAx LjUpXSBDb2dsLk9uc2NyZWVuRGlydHlDYWxsYmFjayBjYWxsYmFjaywgQ29nbC5Vc2VyRGF0YURl c3Ryb3lDYWxsYmFjaz8gZGVzdHJveSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCist CQlwdWJsaWMgQ29nbC5PbnNjcmVlblJlc2l6ZUNsb3N1cmUgYWRkX3Jlc2l6ZV9jYWxsYmFjayAo W0NDb2RlIChkZWxlZ2F0ZV90YXJnZXRfcG9zID0gMS41KV0gQ29nbC5PbnNjcmVlblJlc2l6ZUNh bGxiYWNrIGNhbGxiYWNrLCBDb2dsLlVzZXJEYXRhRGVzdHJveUNhbGxiYWNrPyBkZXN0cm95KTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE0 Iiwgc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHVpbnQgYWRkX3N3YXBfYnVmZmVyc19jYWxs YmFjayAoQ29nbC5Td2FwQnVmZmVyc05vdGlmeSBjYWxsYmFjayk7CistCQlwdWJsaWMgc3RhdGlj IHZvaWQgY2x1dHRlcl9iYWNrZW5kX3NldF9zaXplX0NMVVRURVIgKGludCB3aWR0aCwgaW50IGhl aWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQkJcHVibGljIGludCBnZXRf YnVmZmVyX2FnZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMg aW50NjQgZ2V0X2ZyYW1lX2NvdW50ZXIgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9yZXNpemFibGUgKCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBoaWRlICgpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9kaXJ0eV9jYWxsYmFjayAoQ29nbC5P bnNjcmVlbkRpcnR5Q2xvc3VyZSBjbG9zdXJlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0 IildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfZnJhbWVfY2FsbGJhY2sgKENvZ2wuRnJhbWVDbG9z dXJlIGNsb3N1cmUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZv aWQgcmVtb3ZlX3Jlc2l6ZV9jYWxsYmFjayAoQ29nbC5PbnNjcmVlblJlc2l6ZUNsb3N1cmUgY2xv c3VyZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNCIsIHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9zd2FwX2J1 ZmZlcnNfY2FsbGJhY2sgKHVpbnQgaWQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQor LQkJcHVibGljIHZvaWQgc2V0X3Jlc2l6YWJsZSAoQ29nbC5Cb29sIHJlc2l6YWJsZSk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzaG93ICgpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHN3YXBfYnVmZmVycyAoKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgdm9pZCBzd2FwX2J1ZmZl cnNfd2l0aF9kYW1hZ2UgKGludCByZWN0YW5nbGVzLCBpbnQgbl9yZWN0YW5nbGVzKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzd2FwX3JlZ2lvbiAoaW50 IHJlY3RhbmdsZXMsIGludCBuX3JlY3RhbmdsZXMpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5Iiwg ZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNvZ2xfb25zY3JlZW5f ZGlydHlfY2xvc3VyZV9nZXRfZ3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCVtWZXJzaW9uIChz aW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBjbGFzcyBPbnNjcmVlbkRpcnR5Q2xvc3VyZSB7Cist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5j dGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5 cGVfaWQgPSAiY29nbF9vbnNjcmVlbl9yZXNpemVfY2xvc3VyZV9nZXRfZ3R5cGUgKCkiKV0KKy0J W0NvbXBhY3RdCistCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JcHVibGljIGNsYXNzIE9u c2NyZWVuUmVzaXplQ2xvc3VyZSB7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX3BpcGVsaW5lX2dldF9ndHlwZSAoKSIpXQor LQlwdWJsaWMgY2xhc3MgUGlwZWxpbmUgOiBDb2dsLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgUGlwZWxpbmUgKCk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5QaXBlbGluZSBjb3B5 ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgZm9yZWFj aF9sYXllciAoQ29nbC5QaXBlbGluZUxheWVyQ2FsbGJhY2sgY2FsbGJhY2spOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuUGlwZWxpbmVBbHBoYUZ1bmMgZ2V0 X2FscGhhX3Rlc3RfZnVuY3Rpb24gKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCist CQlwdWJsaWMgZmxvYXQgZ2V0X2FscGhhX3Rlc3RfcmVmZXJlbmNlICgpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FtYmllbnQgKENvZ2wuQ29sb3Ig YW1iaWVudCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5D b2xvciBnZXRfY29sb3IgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJs aWMgQ29nbC5Db2xvck1hc2sgZ2V0X2NvbG9yX21hc2sgKCk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5QaXBlbGluZUN1bGxGYWNlTW9kZSBnZXRfY3VsbF9m YWNlX21vZGUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9p ZCBnZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9lbWlzc2lvbiAoQ29nbC5Db2xvciBlbWlzc2lv bik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5XaW5kaW5n IGdldF9mcm9udF9mYWNlX3dpbmRpbmcgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorLQkJcHVibGljIENvZ2wuUGlwZWxpbmVGaWx0ZXIgZ2V0X2xheWVyX21hZ19maWx0ZXIgKGlu dCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGlj IENvZ2wuUGlwZWxpbmVGaWx0ZXIgZ2V0X2xheWVyX21pbl9maWx0ZXIgKGludCBsYXllcl9pbmRl eCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdl dF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGludCBsYXllcl9pbmRleCk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHVub3duZWQgQ29nbC5UZXh0 dXJlIGdldF9sYXllcl90ZXh0dXJlIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBnZXRfbGF5ZXJf d3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42 IildCistCQlwdWJsaWMgQ29nbC5QaXBlbGluZVdyYXBNb2RlIGdldF9sYXllcl93cmFwX21vZGVf cyAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1 YmxpYyBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV90IChpbnQgbGF5 ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIGludCBn ZXRfbl9sYXllcnMgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMg Q29nbC5Cb29sIGdldF9wZXJfdmVydGV4X3BvaW50X3NpemUgKCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMi4wIildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3BvaW50X3NpemUgKCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3NoaW5pbmVzcyAoKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9zcGVjdWxh ciAoQ29nbC5Db2xvciBzcGVjdWxhcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCist CQlwdWJsaWMgaW50IGdldF91bmlmb3JtX2xvY2F0aW9uIChzdHJpbmcgdW5pZm9ybV9uYW1lKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkhhbmRsZSBnZXRf dXNlcl9wcm9ncmFtICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1Ymxp YyB2b2lkIHJlbW92ZV9sYXllciAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbHBoYV90ZXN0X2Z1bmN0aW9uIChDb2ds LlBpcGVsaW5lQWxwaGFGdW5jIGFscGhhX2Z1bmMsIGZsb2F0IGFscGhhX3JlZmVyZW5jZSk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVudCAo Q29nbC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9hbWJpZW50X2FuZF9kaWZmdXNlIChDb2dsLkNvbG9yIGNvbG9yKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2JsZW5k IChzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ibGVuZF9jb25zdGFudCAoQ29nbC5D b2xvciBjb25zdGFudF9jb2xvcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlw dWJsaWMgdm9pZCBzZXRfY29sb3IgKENvZ2wuQ29sb3IgY29sb3IpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yNGYgKGZsb2F0IHJlZCwgZmxv YXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2xvcjR1YiAodWludDggcmVkLCB1aW50OCBn cmVlbiwgdWludDggYmx1ZSwgdWludDggYWxwaGEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu OCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yX21hc2sgKENvZ2wuQ29sb3JNYXNrIGNvbG9y X21hc2spOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X2N1bGxfZmFjZV9tb2RlIChDb2dsLlBpcGVsaW5lQ3VsbEZhY2VNb2RlIGN1bGxfZmFjZV9tb2Rl KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kaWZm dXNlIChDb2dsLkNvbG9yIGRpZmZ1c2UpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQor LQkJcHVibGljIHZvaWQgc2V0X2VtaXNzaW9uIChDb2dsLkNvbG9yIGVtaXNzaW9uKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9mcm9udF9mYWNlX3dp bmRpbmcgKENvZ2wuV2luZGluZyBmcm9udF93aW5kaW5nKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2xheWVyX2NvbWJpbmUgKGludCBsYXll cl9pbmRleCwgc3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfY29tYmluZV9j b25zdGFudCAoaW50IGxheWVyX2luZGV4LCBDb2dsLkNvbG9yIGNvbnN0YW50KTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfZmlsdGVycyAo aW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lRmlsdGVyIG1pbl9maWx0ZXIsIENvZ2wuUGlw ZWxpbmVGaWx0ZXIgbWFnX2ZpbHRlcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor LQkJcHVibGljIHZvaWQgc2V0X2xheWVyX21hdHJpeCAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1h dHJpeCBtYXRyaXgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9sYXllcl9udWxsX3RleHR1cmUgKGludCBsYXllcl9pbmRleCwgQ29nbC5UZXh0dXJl VHlwZSB0ZXh0dXJlX3R5cGUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVi bGljIENvZ2wuQm9vbCBzZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQg bGF5ZXJfaW5kZXgsIENvZ2wuQm9vbCBlbmFibGUpIHRocm93cyBHTGliLkVycm9yOworLQkJcHVi bGljIHZvaWQgc2V0X2xheWVyX3RleHR1cmUgKGludCBsYXllcl9pbmRleCwgQ29nbC5UZXh0dXJl IHRleHR1cmUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQg c2V0X2xheWVyX3dyYXBfbW9kZSAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lV3JhcE1v ZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBz ZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCwgQ29nbC5QaXBlbGluZVdyYXBN b2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQg c2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVXcmFw TW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9sYXllcl93cmFwX21vZGVfdCAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lV3Jh cE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29n bC5Cb29sIHNldF9wZXJfdmVydGV4X3BvaW50X3NpemUgKENvZ2wuQm9vbCBlbmFibGUpIHRocm93 cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZv aWQgc2V0X3BvaW50X3NpemUgKGZsb2F0IHBvaW50X3NpemUpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NoaW5pbmVzcyAoZmxvYXQgc2hpbmluZXNz KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zcGVj dWxhciAoQ29nbC5Db2xvciBzcGVjdWxhcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CistCQlwdWJsaWMgdm9pZCBzZXRfdW5pZm9ybV8xZiAoaW50IHVuaWZvcm1fbG9jYXRpb24sIGZs b2F0IHZhbHVlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF91bmlmb3JtXzFpIChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgaW50IHZhbHVlKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91bmlmb3JtX2Zsb2F0 IChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgaW50IG5fY29tcG9uZW50cywgaW50IGNvdW50LCBmbG9h dCB2YWx1ZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBz ZXRfdW5pZm9ybV9pbnQgKGludCB1bmlmb3JtX2xvY2F0aW9uLCBpbnQgbl9jb21wb25lbnRzLCBp bnQgY291bnQsIGludCB2YWx1ZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlw dWJsaWMgdm9pZCBzZXRfdW5pZm9ybV9tYXRyaXggKGludCB1bmlmb3JtX2xvY2F0aW9uLCBpbnQg ZGltZW5zaW9ucywgaW50IGNvdW50LCBDb2dsLkJvb2wgdHJhbnNwb3NlLCBmbG9hdCB2YWx1ZSk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfdXNlcl9w cm9ncmFtIChDb2dsLkhhbmRsZSBwcm9ncmFtKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0NvbXBhY3Rd CistCXB1YmxpYyBjbGFzcyBRdWF0ZXJuaW9uIHsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfZnJhbWVidWZmZXJfZ2V0X2d0 eXBlICgpIildCistCXB1YmxpYyBpbnRlcmZhY2UgRnJhbWVidWZmZXIgOiBDb2dsLk9iamVjdCB7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGFsbG9j YXRlICgpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQor LQkJcHVibGljIHZvaWQgY2xlYXIgKHVsb25nIGJ1ZmZlcnMsIENvZ2wuQ29sb3IgY29sb3IpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgY2xlYXI0ZiAodWxv bmcgYnVmZmVycywgZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxw aGEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgZGlzY2Fy ZF9idWZmZXJzICh1bG9uZyBidWZmZXJzKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CistCQlwdWJsaWMgdm9pZCBkcmF3X211bHRpdGV4dHVyZWRfcmVjdGFuZ2xlIChDb2dsLlBpcGVs aW5lIHBpcGVsaW5lLCBmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIs IFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIHRleF9jb29yZHMsIGludCB0 ZXhfY29vcmRzX2xlbik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGlj IHZvaWQgZHJhd19yZWN0YW5nbGUgKENvZ2wuUGlwZWxpbmUgcGlwZWxpbmUsIGZsb2F0IHhfMSwg ZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorLQkJcHVibGljIHZvaWQgZHJhd19yZWN0YW5nbGVzIChDb2dsLlBpcGVsaW5lIHBp cGVsaW5lLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXRbXSBjb29yZGluYXRl cywgdWludCBuX3JlY3RhbmdsZXMpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0J CXB1YmxpYyB2b2lkIGRyYXdfdGV4dHVyZWRfcmVjdGFuZ2xlIChDb2dsLlBpcGVsaW5lIHBpcGVs aW5lLCBmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIsIGZsb2F0IHNf MSwgZmxvYXQgdF8xLCBmbG9hdCBzXzIsIGZsb2F0IHRfMik7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgZHJhd190ZXh0dXJlZF9yZWN0YW5nbGVzIChDb2ds LlBpcGVsaW5lIHBpcGVsaW5lLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXRb XSBjb29yZGluYXRlcywgdWludCBuX3JlY3RhbmdsZXMpOworLQkJcHVibGljIHN0YXRpYyB1aW50 MzIgZXJyb3JfcXVhcmsgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVi bGljIHZvaWQgZmluaXNoICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1 YmxpYyB2b2lkIGZydXN0dW0gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20s IGZsb2F0IHRvcCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS44IildCistCQlwdWJsaWMgaW50IGdldF9hbHBoYV9iaXRzICgpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIGludCBnZXRfYmx1ZV9iaXRzICgpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIENvZ2wuQ29sb3JNYXNrIGdldF9j b2xvcl9tYXNrICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIGlu dCBnZXRfZGVwdGhfYml0cyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCQlw dWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X2RlcHRoX3RleHR1cmUgKCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfZGVwdGhfdGV4 dHVyZV9lbmFibGVkICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JCXB1Ymxp YyBDb2dsLkJvb2wgZ2V0X2RlcHRoX3dyaXRlX2VuYWJsZWQgKCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS44IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9kaXRoZXJfZW5hYmxlZCAoKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X2dyZWVuX2Jp dHMgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgaW50IGdldF9o ZWlnaHQgKCk7CistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9pc19zdGVyZW8gKCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENvZ2wuTWF0cml4IGdldF9tb2RlbHZp ZXdfbWF0cml4ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBD b2dsLk1hdHJpeCBnZXRfcHJvamVjdGlvbl9tYXRyaXggKCk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS44IildCistCQlwdWJsaWMgaW50IGdldF9yZWRfYml0cyAoKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgaW50IGdldF9zYW1wbGVzX3Blcl9waXhlbCAoKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIwIildCistCQlwdWJsaWMgQ29nbC5TdGVyZW9Nb2Rl IGdldF9zdGVyZW9fbW9kZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1 YmxpYyB2b2lkIGdldF92aWV3cG9ydDRmdiAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSld IG91dCB1bm93bmVkIGZsb2F0IHZpZXdwb3J0WzRdKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjgiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfdmlld3BvcnRfaGVpZ2h0ICgpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIGZsb2F0IGdldF92aWV3cG9ydF93aWR0aCAo KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfdmll d3BvcnRfeCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBmbG9h dCBnZXRfdmlld3BvcnRfeSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1 YmxpYyBpbnQgZ2V0X3dpZHRoICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0J CXB1YmxpYyB2b2lkIGlkZW50aXR5X21hdHJpeCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCistCQlwdWJsaWMgdm9pZCBvcnRob2dyYXBoaWMgKGZsb2F0IHhfMSwgZmxvYXQgeV8x LCBmbG9hdCB4XzIsIGZsb2F0IHlfMiwgZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBwZXJzcGVjdGl2ZSAoZmxvYXQg Zm92X3ksIGZsb2F0IGFzcGVjdCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcG9wX2NsaXAgKCk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcG9wX21hdHJpeCAoKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBwdXNoX21hdHJp eCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBwdXNo X3JlY3RhbmdsZV9jbGlwIChmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5 XzIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHB1c2hf c2Npc3Nvcl9jbGlwIChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCByZWFkX3BpeGVs cyAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIENvZ2wuUGl4ZWxGb3JtYXQg Zm9ybWF0LCB1aW50OCBwaXhlbHMpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0J CXB1YmxpYyBDb2dsLkJvb2wgcmVhZF9waXhlbHNfaW50b19iaXRtYXAgKGludCB4LCBpbnQgeSwg Q29nbC5SZWFkUGl4ZWxzRmxhZ3Mgc291cmNlLCBDb2dsLkJpdG1hcCBiaXRtYXApOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgcmVzb2x2ZV9zYW1wbGVzICgp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgcmVzb2x2ZV9z YW1wbGVzX3JlZ2lvbiAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHJvdGF0ZSAoZmxvYXQg YW5nbGUsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorLQkJcHVibGljIHZvaWQgcm90YXRlX2V1bGVyIChDb2dsLkV1bGVyIGV1bGVyKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHJvdGF0ZV9xdWF0 ZXJuaW9uIChDb2dsLlF1YXRlcm5pb24gcXVhdGVybmlvbik7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0 IHopOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Nv bG9yX21hc2sgKENvZ2wuQ29sb3JNYXNrIGNvbG9yX21hc2spOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kZXB0aF90ZXh0dXJlX2VuYWJsZWQgKENv Z2wuQm9vbCBlbmFibGVkKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCQlwdWJs aWMgdm9pZCBzZXRfZGVwdGhfd3JpdGVfZW5hYmxlZCAoQ29nbC5Cb29sIGRlcHRoX3dyaXRlX2Vu YWJsZWQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X2RpdGhlcl9lbmFibGVkIChDb2dsLkJvb2wgZGl0aGVyX2VuYWJsZWQpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9tb2RlbHZpZXdfbWF0cml4IChD b2dsLk1hdHJpeCBtYXRyaXgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9wcm9qZWN0aW9uX21hdHJpeCAoQ29nbC5NYXRyaXggbWF0cml4KTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zYW1wbGVzX3Bl cl9waXhlbCAoaW50IHNhbXBsZXNfcGVyX3BpeGVsKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjIwIildCistCQlwdWJsaWMgdm9pZCBzZXRfc3RlcmVvX21vZGUgKENvZ2wuU3RlcmVvTW9kZSBz dGVyZW9fbW9kZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9p ZCBzZXRfdmlld3BvcnQgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWln aHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHRyYW5z Zm9ybSAoQ29nbC5NYXRyaXggbWF0cml4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CistCQlwdWJsaWMgdm9pZCB0cmFuc2xhdGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOwor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQg PSAiY29nbF90ZXh0dXJlX2dldF9ndHlwZSAoKSIpXQorLQlwdWJsaWMgaW50ZXJmYWNlIFRleHR1 cmUgOiBDb2dsLk9iamVjdCB7CistCQlwdWJsaWMgQ29nbC5Cb29sIGFsbG9jYXRlICgpIHRocm93 cyBHTGliLkVycm9yOworLQkJcHVibGljIHN0YXRpYyB1aW50MzIgZXJyb3JfcXVhcmsgKCk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQkJcHVibGljIENvZ2wuVGV4dHVyZUNvbXBv bmVudHMgZ2V0X2NvbXBvbmVudHMgKCk7CistCQlwdWJsaWMgaW50IGdldF9kYXRhIChDb2dsLlBp eGVsRm9ybWF0IGZvcm1hdCwgdWludCByb3dzdHJpZGUsIHVpbnQ4IGRhdGEpOworLQkJcHVibGlj IENvZ2wuQm9vbCBnZXRfZ2xfdGV4dHVyZSAob3V0IHVpbnQgb3V0X2dsX2hhbmRsZSwgb3V0IHVp bnQgb3V0X2dsX3RhcmdldCk7CistCQlwdWJsaWMgdWludCBnZXRfaGVpZ2h0ICgpOworLQkJcHVi bGljIGludCBnZXRfbWF4X3dhc3RlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0K Ky0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X3ByZW11bHRpcGxpZWQgKCk7CistCQlwdWJsaWMgdWlu dCBnZXRfd2lkdGggKCk7CistCQlwdWJsaWMgQ29nbC5Cb29sIGlzX3NsaWNlZCAoKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9iaXRt YXAgKENvZ2wuQml0bWFwIGJpdG1hcCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4 ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMg c3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9kYXRhIChpbnQgd2lkdGgsIGludCBoZWlnaHQs IENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgQ29nbC5Q aXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQsIGludCByb3dzdHJpZGUsIHVpbnQ4IGRhdGEpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgi LCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIG5ld19mcm9t X2ZpbGUgKHN0cmluZyBmaWxlbmFtZSwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4 ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAi MC44IildCistCQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9mb3JlaWduICh1 aW50IGdsX2hhbmRsZSwgdWludCBnbF90YXJnZXQsIHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCB1 aW50IHhfcG90X3dhc3RlLCB1aW50IHlfcG90X3dhc3RlLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1h dCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xOCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9z dWJfdGV4dHVyZSAoaW50IHN1Yl94LCBpbnQgc3ViX3ksIGludCBzdWJfd2lkdGgsIGludCBzdWJf aGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVy ZSBuZXdfd2l0aF9zaXplICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxh Z3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjE4IildCistCQlwdWJsaWMgdm9pZCBzZXRfY29tcG9uZW50cyAoQ29nbC5U ZXh0dXJlQ29tcG9uZW50cyBjb21wb25lbnRzKTsKKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2Rh dGEgKENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCBpbnQgcm93c3RyaWRlLCB1aW50OCBkYXRhLCBp bnQgbGV2ZWwpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9wcmVtdWx0aXBsaWVkIChDb2dsLkJvb2wgcHJlbXVsdGlw bGllZCk7CistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9yZWdpb24gKGludCBzcmNfeCwgaW50IHNy Y195LCBpbnQgZHN0X3gsIGludCBkc3RfeSwgdWludCBkc3Rfd2lkdGgsIHVpbnQgZHN0X2hlaWdo dCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgdWludCBy b3dzdHJpZGUsIHVpbnQ4IGRhdGEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJ cHVibGljIENvZ2wuQm9vbCBzZXRfcmVnaW9uX2Zyb21fYml0bWFwIChpbnQgc3JjX3gsIGludCBz cmNfeSwgaW50IGRzdF94LCBpbnQgZHN0X3ksIHVpbnQgZHN0X3dpZHRoLCB1aW50IGRzdF9oZWln aHQsIENvZ2wuQml0bWFwIGJpdG1hcCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtTaW1wbGVUeXBlXQorLQlwdWJsaWMgc3RydWN0IEFuZ2xl IDogaW50MzIgeworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbU2ltcGxlVHlwZV0KKy0JcHVibGljIHN0cnVjdCBCb29sIDogaW50IHsKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNv Z2xfY29sb3JfZ2V0X2d0eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0J cHVibGljIHN0cnVjdCBDb2xvciB7CistCQlwdWJsaWMgQ29nbC5Db2xvcj8gY29weSAoKTsKKy0J CXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGVxdWFsICh2b2lkKiB2MSwgdm9pZCogdjIpOworLQkJ cHVibGljIGZsb2F0IGdldF9hbHBoYSAoKTsKKy0JCXB1YmxpYyB1aW50OCBnZXRfYWxwaGFfYnl0 ZSAoKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfYWxwaGFfZmxvYXQgKCk7CistCQlwdWJsaWMgZmxv YXQgZ2V0X2JsdWUgKCk7CistCQlwdWJsaWMgdWludDggZ2V0X2JsdWVfYnl0ZSAoKTsKKy0JCXB1 YmxpYyBmbG9hdCBnZXRfYmx1ZV9mbG9hdCAoKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfZ3JlZW4g KCk7CistCQlwdWJsaWMgdWludDggZ2V0X2dyZWVuX2J5dGUgKCk7CistCQlwdWJsaWMgZmxvYXQg Z2V0X2dyZWVuX2Zsb2F0ICgpOworLQkJcHVibGljIGZsb2F0IGdldF9yZWQgKCk7CistCQlwdWJs aWMgdWludDggZ2V0X3JlZF9ieXRlICgpOworLQkJcHVibGljIGZsb2F0IGdldF9yZWRfZmxvYXQg KCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBpbml0X2Zy b21fNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGluaXRfZnJvbV80 ZnYgKGZsb2F0IGNvbG9yX2FycmF5KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0J CXB1YmxpYyB2b2lkIGluaXRfZnJvbV80dWIgKHVpbnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4 IGJsdWUsIHVpbnQ4IGFscGhhKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCistCQlw dWJsaWMgc3RhdGljIHZvaWQgaW5pdF9mcm9tX2hzbCAob3V0IENvZ2wuQ29sb3IgY29sb3IsIGZs b2F0IGh1ZSwgZmxvYXQgc2F0dXJhdGlvbiwgZmxvYXQgbHVtaW5hbmNlKTsKKy0JCXB1YmxpYyB2 b2lkIHByZW11bHRpcGx5ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVi bGljIHZvaWQgc2V0X2FscGhhIChmbG9hdCBhbHBoYSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGFfYnl0ZSAodWludDggYWxwaGEpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FscGhhX2Zsb2F0 IChmbG9hdCBhbHBoYSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMg dm9pZCBzZXRfYmx1ZSAoZmxvYXQgYmx1ZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40Iild CistCQlwdWJsaWMgdm9pZCBzZXRfYmx1ZV9ieXRlICh1aW50OCBibHVlKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ibHVlX2Zsb2F0IChmbG9hdCBi bHVlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjQiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9mcm9tXzRmIChmbG9h dCByZWQsIGZsb2F0IGdyZWVuLCBmbG9hdCBibHVlLCBmbG9hdCBhbHBoYSk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS40Iiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZnJvbV80dWIgKHVpbnQ4IHJlZCwgdWludDggZ3Jl ZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ncmVlbiAoZmxvYXQgZ3JlZW4pOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2dyZWVuX2J5dGUgKHVpbnQ4IGdy ZWVuKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9n cmVlbl9mbG9hdCAoZmxvYXQgZ3JlZW4pOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQor LQkJcHVibGljIHZvaWQgc2V0X3JlZCAoZmxvYXQgcmVkKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9yZWRfYnl0ZSAodWludDggcmVkKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9yZWRfZmxvYXQgKGZs b2F0IHJlZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIHZvaWQg dG9faHNsIChvdXQgZmxvYXQgaHVlLCBvdXQgZmxvYXQgc2F0dXJhdGlvbiwgb3V0IGZsb2F0IGx1 bWluYW5jZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCB1 bnByZW11bHRpcGx5ICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS44 IildCistCXB1YmxpYyBzdHJ1Y3QgRGVidWdPYmplY3RUeXBlSW5mbyB7CistCQlwdWJsaWMgd2Vh ayBzdHJpbmcgbmFtZTsKKy0JCXB1YmxpYyB1bG9uZyBpbnN0YW5jZV9jb3VudDsKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1NpbXBsZVR5cGVd CistCXB1YmxpYyBzdHJ1Y3QgSGFuZGxlIHsKKy0JCXB1YmxpYyBzdGF0aWMgR0xpYi5UeXBlIGdl dF90eXBlICgpOworLQkJcHVibGljIENvZ2wuSGFuZGxlIEByZWYgKCk7CistCQlwdWJsaWMgdm9p ZCB1bnJlZiAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiLCB0eXBlX2lkID0gImNvZ2xfbWF0cml4X2dldF9ndHlwZSAoKSIpXQorLQlwdWJsaWMgc3Ry dWN0IE1hdHJpeCB7CistCQlwdWJsaWMgZmxvYXQgeHg7CistCQlwdWJsaWMgZmxvYXQgeXg7Cist CQlwdWJsaWMgZmxvYXQgeng7CistCQlwdWJsaWMgZmxvYXQgd3g7CistCQlwdWJsaWMgZmxvYXQg eHk7CistCQlwdWJsaWMgZmxvYXQgeXk7CistCQlwdWJsaWMgZmxvYXQgenk7CistCQlwdWJsaWMg ZmxvYXQgd3k7CistCQlwdWJsaWMgZmxvYXQgeHo7CistCQlwdWJsaWMgZmxvYXQgeXo7CistCQlw dWJsaWMgZmxvYXQgeno7CistCQlwdWJsaWMgZmxvYXQgd3o7CistCQlwdWJsaWMgZmxvYXQgeHc7 CistCQlwdWJsaWMgZmxvYXQgeXc7CistCQlwdWJsaWMgZmxvYXQgenc7CistCQlwdWJsaWMgZmxv YXQgd3c7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgQ29nbC5NYXRy aXg/IGNvcHkgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgc3Rh dGljIENvZ2wuQm9vbCBlcXVhbCAodm9pZCogdjEsIHZvaWQqIHYyKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlwdWJsaWMgdm9pZCBm cnVzdHVtIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3As IGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworLQkJcHVibGljIHVub3duZWQgZmxvYXRbXSBn ZXRfYXJyYXkgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgQ29n bC5Cb29sIGdldF9pbnZlcnNlIChvdXQgQ29nbC5NYXRyaXggaW52ZXJzZSk7CistCQlwdWJsaWMg dm9pZCBpbml0X2Zyb21fZXVsZXIgKENvZ2wuRXVsZXIgZXVsZXIpOworLQkJcHVibGljIHZvaWQg aW5pdF9mcm9tX3F1YXRlcm5pb24gKENvZ2wuUXVhdGVybmlvbiBxdWF0ZXJuaW9uKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGluaXRfdHJhbnNsYXRpb24g KGZsb2F0IHR4LCBmbG9hdCB0eSwgZmxvYXQgdHopOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu OCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBpc19pZGVudGl0eSAoKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIGxvb2tfYXQgKGZsb2F0IGV5ZV9wb3NpdGlv bl94LCBmbG9hdCBleWVfcG9zaXRpb25feSwgZmxvYXQgZXllX3Bvc2l0aW9uX3osIGZsb2F0IG9i amVjdF94LCBmbG9hdCBvYmplY3RfeSwgZmxvYXQgb2JqZWN0X3osIGZsb2F0IHdvcmxkX3VwX3gs IGZsb2F0IHdvcmxkX3VwX3ksIGZsb2F0IHdvcmxkX3VwX3opOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lk IG9ydGhvIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3As IGZsb2F0IG5lYXIsIGZsb2F0IGZhcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor LQkJcHVibGljIHZvaWQgb3J0aG9ncmFwaGljIChmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQg eF8yLCBmbG9hdCB5XzIsIGZsb2F0IG5lYXIsIGZsb2F0IGZhcik7CistCQlwdWJsaWMgdm9pZCBw ZXJzcGVjdGl2ZSAoZmxvYXQgZm92X3ksIGZsb2F0IGFzcGVjdCwgZmxvYXQgel9uZWFyLCBmbG9h dCB6X2Zhcik7CistCQlwdWJsaWMgdm9pZCBwcm9qZWN0X3BvaW50cyAoaW50IG5fY29tcG9uZW50 cywgc2l6ZV90IHN0cmlkZV9pbiwgdm9pZCogcG9pbnRzX2luLCBzaXplX3Qgc3RyaWRlX291dCwg dm9pZCogcG9pbnRzX291dCwgaW50IG5fcG9pbnRzKTsKKy0JCXB1YmxpYyB2b2lkIHJvdGF0ZSAo ZmxvYXQgYW5nbGUsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgcm90YXRlX2V1bGVyIChDb2dsLkV1bGVyIGV1 bGVyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHJvdGF0 ZV9xdWF0ZXJuaW9uIChDb2dsLlF1YXRlcm5pb24gcXVhdGVybmlvbik7CistCQlwdWJsaWMgdm9p ZCBzY2FsZSAoZmxvYXQgc3gsIGZsb2F0IHN5LCBmbG9hdCBzeik7CistCQlwdWJsaWMgdm9pZCB0 cmFuc2Zvcm1fcG9pbnQgKHJlZiBmbG9hdCB4LCByZWYgZmxvYXQgeSwgcmVmIGZsb2F0IHosIHJl ZiBmbG9hdCB3KTsKKy0JCXB1YmxpYyB2b2lkIHRyYW5zZm9ybV9wb2ludHMgKGludCBuX2NvbXBv bmVudHMsIHNpemVfdCBzdHJpZGVfaW4sIHZvaWQqIHBvaW50c19pbiwgc2l6ZV90IHN0cmlkZV9v dXQsIHZvaWQqIHBvaW50c19vdXQsIGludCBuX3BvaW50cyk7CistCQlwdWJsaWMgdm9pZCB0cmFu c2xhdGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHRyYW5zcG9zZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHZpZXdfMmRfaW5fZnJ1c3R1bSAoZmxvYXQgbGVm dCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCB6X25lYXIsIGZs b2F0IHpfMmQsIGZsb2F0IHdpZHRoXzJkLCBmbG9hdCBoZWlnaHRfMmQpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgdmlld18yZF9pbl9wZXJzcGVjdGl2ZSAo ZmxvYXQgZm92X3ksIGZsb2F0IGFzcGVjdCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6XzJkLCBmbG9h dCB3aWR0aF8yZCwgZmxvYXQgaGVpZ2h0XzJkKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24g KHNpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0cnVjdCBPbnNjcmVlbkRpcnR5SW5mbyB7Cist CQlwdWJsaWMgaW50IHg7CistCQlwdWJsaWMgaW50IHk7CistCQlwdWJsaWMgaW50IHdpZHRoOwor LQkJcHVibGljIGludCBoZWlnaHQ7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgVGV4 dHVyZVZlcnRleCB7CistCQlwdWJsaWMgZmxvYXQgeDsKKy0JCXB1YmxpYyBmbG9hdCB5OworLQkJ cHVibGljIGZsb2F0IHo7CistCQlwdWJsaWMgZmxvYXQgdHg7CistCQlwdWJsaWMgZmxvYXQgdHk7 CistCQlwdWJsaWMgQ29nbC5Db2xvciBjb2xvcjsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24g KHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgc3RydWN0IFVzZXJEYXRhS2V5IHsKKy0JCXB1Ymxp YyBpbnQgdW51c2VkOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIGNuYW1lID0gIl9Db2dsQ29sb3JTaXplQ2hlY2siLCBoYXNfdHlwZV9pZCA9IGZhbHNl KV0KKy0JcHVibGljIHN0cnVjdCBfQ29sb3JTaXplQ2hlY2sgeworLQkJW0NDb2RlIChhcnJheV9s ZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBjaGFyW10gY29tcGlsZV90aW1lX2Fzc2Vy dF9Db2dsQ29sb3Jfc2l6ZTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCBjbmFtZSA9ICJfQ29nbE1hdHJpeFNpemVDaGVjayIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IF9NYXRyaXhTaXplQ2hlY2sgeworLQkJW0NDb2RlIChh cnJheV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBjaGFyW10gY29tcGlsZV90aW1l X2Fzc2VydF9Db2dsTWF0cml4X3NpemU7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiX0NvZ2xUZXh0dXJlVmVydGV4U2l6ZUNoZWNrIiwg aGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgX1RleHR1cmVWZXJ0ZXhTaXpl Q2hlY2sgeworLQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2Vh ayBjaGFyW10gY29tcGlsZV90aW1lX2Fzc2VydF9Db2dsVGV4dHVyZVZlcnRleF9zaXplOworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAi Q09HTF9BVFRSSUJVVEVfVFlQRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBBdHRyaWJ1dGVUeXBlIHsKKy0JCUJZVEUs CistCQlVTlNJR05FRF9CWVRFLAorLQkJU0hPUlQsCistCQlVTlNJR05FRF9TSE9SVCwKKy0JCUZM T0FUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3By ZWZpeCA9ICJDT0dMX0JJVE1BUF9FUlJPUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1Zl cnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgZW51bSBCaXRtYXBFcnJvciB7CistCQlG QUlMRUQsCistCQlVTktOT1dOX1RZUEUsCistCQlDT1JSVVBUX0lNQUdFCistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0JMRU5E X1NUUklOR19FUlJPUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBCbGVuZFN0cmluZ0Vycm9yIHsKKy0JCVBBUlNFX0VS Uk9SLAorLQkJQVJHVU1FTlRfUEFSU0VfRVJST1IsCistCQlJTlZBTElEX0VSUk9SLAorLQkJR1BV X1VOU1VQUE9SVEVEX0VSUk9SOworLQkJcHVibGljIHN0YXRpYyB1aW50MzIgcXVhcmsgKCk7Cist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9 ICJDT0dMX0JVRkZFUl9CSVRfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtGbGFnc10KKy0J W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBCdWZmZXJCaXQgeworLQkJ Q09MT1IsCistCQlERVBUSCwKKy0JCVNURU5DSUwKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCistCVtGbGFnc10KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMg ZW51bSBCdWZmZXJUYXJnZXQgeworLQkJV0lORE9XX0JVRkZFUiwKKy0JCU9GRlNDUkVFTl9CVUZG RVIKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJl Zml4ID0gIkNPR0xfQ09MT1JfTUFTS18iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0ZsYWdz XQorLQlwdWJsaWMgZW51bSBDb2xvck1hc2sgeworLQkJTk9ORSwKKy0JCVJFRCwKKy0JCUdSRUVO LAorLQkJQkxVRSwKKy0JCUFMUEhBLAorLQkJQUxMCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0RFUFRIX1RFU1RfRlVOQ1RJ T05fIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIERlcHRoVGVzdEZ1bmN0 aW9uIHsKKy0JCU5FVkVSLAorLQkJTEVTUywKKy0JCUVRVUFMLAorLQkJTEVRVUFMLAorLQkJR1JF QVRFUiwKKy0JCU5PVEVRVUFMLAorLQkJR0VRVUFMLAorLQkJQUxXQVlTCistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZFQVRV UkVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtGbGFnc10KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjAuOCIpXQorLQlwdWJsaWMgZW51bSBGZWF0dXJlRmxhZ3MgeworLQkJVEVYVFVSRV9SRUNU QU5HTEUsCistCQlURVhUVVJFX05QT1QsCistCQlURVhUVVJFX1lVViwKKy0JCVRFWFRVUkVfUkVB RF9QSVhFTFMsCistCQlTSEFERVJTX0dMU0wsCistCQlPRkZTQ1JFRU4sCistCQlPRkZTQ1JFRU5f TVVMVElTQU1QTEUsCistCQlPRkZTQ1JFRU5fQkxJVCwKKy0JCUZPVVJfQ0xJUF9QTEFORVMsCist CQlTVEVOQ0lMX0JVRkZFUiwKKy0JCVZCT1MsCistCQlQQk9TLAorLQkJVU5TSUdORURfSU5UX0lO RElDRVMsCistCQlERVBUSF9SQU5HRSwKKy0JCVRFWFRVUkVfTlBPVF9CQVNJQywKKy0JCVRFWFRV UkVfTlBPVF9NSVBNQVAsCistCQlURVhUVVJFX05QT1RfUkVQRUFULAorLQkJUE9JTlRfU1BSSVRF LAorLQkJVEVYVFVSRV8zRCwKKy0JCU1BUF9CVUZGRVJfRk9SX1JFQUQsCistCQlNQVBfQlVGRkVS X0ZPUl9XUklURSwKKy0JCU9OU0NSRUVOX01VTFRJUExFLAorLQkJREVQVEhfVEVYVFVSRQorLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAi Q09HTF9GSUxURVJfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIEZpbHRl clJldHVybiB7CistCQlDT05USU5VRSwKKy0JCVJFTU9WRQorLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GT0dfTU9ERV8iLCBo YXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJs aWMgZW51bSBGb2dNb2RlIHsKKy0JCUxJTkVBUiwKKy0JCUVYUE9ORU5USUFMLAorLQkJRVhQT05F TlRJQUxfU1FVQVJFRAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GUkFNRV9FVkVOVF8iLCBoYXNfdHlwZV9pZCA9IGZhbHNl KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0JcHVibGljIGVudW0gRnJhbWVFdmVu dCB7CistCQlTWU5DLAorLQkJQ09NUExFVEUKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRlJBTUVCVUZGRVJfRVJST1JfIiwg aGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIEZyYW1lYnVmZmVyRXJyb3Igewor LQkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZSQU1FQlVGRkVSX0VSUk9SX0FMTE9DQVRFIildCist CQlGUkFNRUJVRkZFUl9FUlJPUl9BTExPQ0FURTsKKy0JCXB1YmxpYyBzdGF0aWMgdWludDMyIHF1 YXJrICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIs IGNwcmVmaXggPSAiQ09HTF9JTkRJQ0VTX1RZUEVfVU5TSUdORURfIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCistCXB1YmxpYyBlbnVtIEluZGljZXNUeXBlIHsKKy0JCUJZVEUsCistCQlTSE9SVCwK Ky0JCUlOVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIs IGNwcmVmaXggPSAiQ09HTF9NQVRFUklBTF9BTFBIQV9GVU5DXyIsIGhhc190eXBlX2lkID0gZmFs c2UpXQorLQlwdWJsaWMgZW51bSBNYXRlcmlhbEFscGhhRnVuYyB7CistCQlORVZFUiwKKy0JCUxF U1MsCistCQlFUVVBTCwKKy0JCUxFUVVBTCwKKy0JCUdSRUFURVIsCistCQlOT1RFUVVBTCwKKy0J CUdFUVVBTCwKKy0JCUFMV0FZUworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9NQVRFUklBTF9GSUxURVJfIiwgaGFzX3R5cGVf aWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIE1hdGVyaWFsRmlsdGVyIHsKKy0JCU5FQVJFU1Qs CistCQlMSU5FQVIsCistCQlORUFSRVNUX01JUE1BUF9ORUFSRVNULAorLQkJTElORUFSX01JUE1B UF9ORUFSRVNULAorLQkJTkVBUkVTVF9NSVBNQVBfTElORUFSLAorLQkJTElORUFSX01JUE1BUF9M SU5FQVIKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBj cHJlZml4ID0gIkNPR0xfTUFURVJJQUxfTEFZRVJfVFlQRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNl KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBNYXRlcmlhbExh eWVyVHlwZSB7CistCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfTUFURVJJQUxfTEFZRVJfVFlQRV9U RVhUVVJFIildCistCQlNQVRFUklBTF9MQVlFUl9UWVBFX1RFWFRVUkUKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfTUFURVJJ QUxfV1JBUF9NT0RFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2Ug PSAiMS40IildCistCXB1YmxpYyBlbnVtIE1hdGVyaWFsV3JhcE1vZGUgeworLQkJUkVQRUFULAor LQkJQ0xBTVBfVE9fRURHRSwKKy0JCUFVVE9NQVRJQworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9QSVBFTElORV9BTFBIQV9G VU5DXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgZW51bSBQaXBlbGluZUFscGhh RnVuYyB7CistCQlORVZFUiwKKy0JCUxFU1MsCistCQlFUVVBTCwKKy0JCUxFUVVBTCwKKy0JCUdS RUFURVIsCistCQlOT1RFUVVBTCwKKy0JCUdFUVVBTCwKKy0JCUFMV0FZUworLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9QSVBF TElORV9DVUxMX0ZBQ0VfTU9ERV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVu dW0gUGlwZWxpbmVDdWxsRmFjZU1vZGUgeworLQkJTk9ORSwKKy0JCUZST05ULAorLQkJQkFDSywK Ky0JCUJPVEgKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi LCBjcHJlZml4ID0gIkNPR0xfUElQRUxJTkVfRklMVEVSXyIsIGhhc190eXBlX2lkID0gZmFsc2Up XQorLQlwdWJsaWMgZW51bSBQaXBlbGluZUZpbHRlciB7CistCQlORUFSRVNULAorLQkJTElORUFS LAorLQkJTkVBUkVTVF9NSVBNQVBfTkVBUkVTVCwKKy0JCUxJTkVBUl9NSVBNQVBfTkVBUkVTVCwK Ky0JCU5FQVJFU1RfTUlQTUFQX0xJTkVBUiwKKy0JCUxJTkVBUl9NSVBNQVBfTElORUFSCistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJD T0dMX1BJUEVMSU5FX1dSQVBfTU9ERV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorLQlwdWJsaWMgZW51bSBQaXBlbGluZVdyYXBNb2RlIHsKKy0J CVJFUEVBVCwKKy0JCU1JUlJPUkVEX1JFUEVBVCwKKy0JCUNMQU1QX1RPX0VER0UsCistCQlBVVRP TUFUSUMKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBj cHJlZml4ID0gIkNPR0xfUElYRUxfRk9STUFUXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlb RmxhZ3NdCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIGVudW0gUGl4ZWxG b3JtYXQgeworLQkJQU5ZLAorLQkJQV84LAorLQkJUkdCXzU2NSwKKy0JCVJHQkFfNDQ0NCwKKy0J CVJHQkFfNTU1MSwKKy0JCVlVViwKKy0JCUdfOCwKKy0JCVJHXzg4LAorLQkJUkdCXzg4OCwKKy0J CUJHUl84ODgsCistCQlSR0JBXzg4ODgsCistCQlCR1JBXzg4ODgsCistCQlBUkdCXzg4ODgsCist CQlBQkdSXzg4ODgsCistCQlSR0JBXzEwMTAxMDIsCistCQlCR1JBXzEwMTAxMDIsCistCQlBUkdC XzIxMDEwMTAsCistCQlBQkdSXzIxMDEwMTAsCistCQlSR0JBXzg4ODhfUFJFLAorLQkJQkdSQV84 ODg4X1BSRSwKKy0JCUFSR0JfODg4OF9QUkUsCistCQlBQkdSXzg4ODhfUFJFLAorLQkJUkdCQV80 NDQ0X1BSRSwKKy0JCVJHQkFfNTU1MV9QUkUsCistCQlSR0JBXzEwMTAxMDJfUFJFLAorLQkJQkdS QV8xMDEwMTAyX1BSRSwKKy0JCUFSR0JfMjEwMTAxMF9QUkUsCistCQlBQkdSXzIxMDEwMTBfUFJF LAorLQkJREVQVEhfMTYsCistCQlERVBUSF8zMiwKKy0JCURFUFRIXzI0X1NURU5DSUxfOAorLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAi Q09HTF9SRUFEX1BJWEVMU19DT0xPUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0ZsYWdz XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIFJlYWRQaXhlbHNG bGFncyB7CistCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfUkVBRF9QSVhFTFNfQ09MT1JfQlVGRkVS IildCistCQlSRUFEX1BJWEVMU19DT0xPUl9CVUZGRVIKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfUkVOREVSRVJfRVJST1Jf IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIFJlbmRlcmVyRXJyb3Igewor LQkJWExJQl9ESVNQTEFZX09QRU4sCistCQlCQURfQ09OU1RSQUlOVAorLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9TSEFERVJf VFlQRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorLQlwdWJsaWMgZW51bSBTaGFkZXJUeXBlIHsKKy0JCVZFUlRFWCwKKy0JCUZSQUdNRU5UCist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9 ICJDT0dMX1NURVJFT18iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVudW0gU3Rl cmVvTW9kZSB7CistCQlCT1RILAorLQkJTEVGVCwKKy0JCVJJR0hUCistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1NZU1RFTV9F UlJPUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIp XQorLQlwdWJsaWMgZW51bSBTeXN0ZW1FcnJvciB7CistCQlVTlNVUFBPUlRFRCwKKy0JCU5PX01F TU9SWQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNw cmVmaXggPSAiQ09HTF9URVhUVVJFX0NPTVBPTkVOVFNfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSld CistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBlbnVtIFRleHR1cmVDb21w b25lbnRzIHsKKy0JCUEsCistCQlSRywKKy0JCVJHQiwKKy0JCVJHQkEsCistCQlERVBUSAorLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAi Q09HTF9URVhUVVJFX0VSUk9SXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAo c2luY2UgPSAiMS44IildCistCXB1YmxpYyBlbnVtIFRleHR1cmVFcnJvciB7CistCQlTSVpFLAor LQkJRk9STUFULAorLQkJQkFEX1BBUkFNRVRFUiwKKy0JCVRZUEU7CistCQlwdWJsaWMgc3RhdGlj IHVpbnQzMiBxdWFyayAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfVEVYVFVSRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNl KV0KKy0JW0ZsYWdzXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVt IFRleHR1cmVGbGFncyB7CistCQlOT05FLAorLQkJTk9fQVVUT19NSVBNQVAsCistCQlOT19TTElD SU5HLAorLQkJTk9fQVRMQVMKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfVEVYVFVSRV9UWVBFXyIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgZW51bSBUZXh0 dXJlVHlwZSB7CistCQlAMkQsCistCQlAM0QsCistCQlSRUNUQU5HTEUKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfVkVSVElD RVNfTU9ERV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorLQlwdWJsaWMgZW51bSBWZXJ0aWNlc01vZGUgeworLQkJUE9JTlRTLAorLQkJTElORVMs CistCQlMSU5FX0xPT1AsCistCQlMSU5FX1NUUklQLAorLQkJVFJJQU5HTEVTLAorLQkJVFJJQU5H TEVfU1RSSVAsCistCQlUUklBTkdMRV9GQU4KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfV0lORElOR18iLCBoYXNfdHlwZV9p ZCA9IGZhbHNlKV0KKy0JcHVibGljIGVudW0gV2luZGluZyB7CistCQlDTE9DS1dJU0UsCistCQlD T1VOVEVSX0NMT0NLV0lTRQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9XSU5TWVNfRkVBVFVSRV8iLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKy0JcHVibGljIGVudW0gV2luc3lzRmVhdHVyZSB7CistCQlNVUxUSVBMRV9PTlND UkVFTiwKKy0JCVNXQVBfVEhST1RUTEUsCistCQlWQkxBTktfQ09VTlRFUiwKKy0JCVZCTEFOS19X QUlULAorLQkJVEVYVFVSRV9GUk9NX1BJWE1BUCwKKy0JCVNXQVBfQlVGRkVSU19FVkVOVCwKKy0J CVNXQVBfUkVHSU9OLAorLQkJU1dBUF9SRUdJT05fVEhST1RUTEUsCistCQlTV0FQX1JFR0lPTl9T WU5DSFJPTklaRUQsCistCQlCVUZGRVJfQUdFLAorLQkJU1lOQ19BTkRfQ09NUExFVEVfRVZFTlQs CistCQlOX0ZFQVRVUkVTCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIp XQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBEZWJ1Z09iamVjdEZvcmVhY2hUeXBlQ2FsbGJhY2sg KENvZ2wuRGVidWdPYmplY3RUeXBlSW5mbyBpbmZvKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQi KV0KKy0JcHVibGljIGRlbGVnYXRlIENvZ2wuQm9vbCBNYXRlcmlhbExheWVyQ2FsbGJhY2sgKENv Z2wuTWF0ZXJpYWwgbWF0ZXJpYWwsIGludCBsYXllcl9pbmRleCk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCistCVtWZXJz aW9uIChzaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIE9uc2NyZWVuRGly dHlDYWxsYmFjayAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbiwgQ29nbC5PbnNjcmVlbkRpcnR5SW5m byBpbmZvKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5z dGFuY2VfcG9zID0gMy45KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQlwdWJsaWMg ZGVsZWdhdGUgdm9pZCBPbnNjcmVlblJlc2l6ZUNhbGxiYWNrIChDb2dsLk9uc2NyZWVuIG9uc2Ny ZWVuLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorLQlwdWJsaWMgZGVsZWdhdGUg dm9pZCBPbnNjcmVlblgxMU1hc2tDYWxsYmFjayAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbiwgdWlu dDMyIGV2ZW50X21hc2spOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCist CXB1YmxpYyBkZWxlZ2F0ZSBDb2dsLkJvb2wgUGlwZWxpbmVMYXllckNhbGxiYWNrIChDb2dsLlBp cGVsaW5lIHBpcGVsaW5lLCBpbnQgbGF5ZXJfaW5kZXgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorLQlwdWJsaWMgZGVs ZWdhdGUgdm9pZCBTd2FwQnVmZmVyc05vdGlmeSAoQ29nbC5GcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZl cik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190YXJn ZXQgPSBmYWxzZSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIFVzZXJEYXRhRGVzdHJveUNhbGxi YWNrICh2b2lkKiBkYXRhKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIiwgY25hbWUgPSAiQ09HTF9BRklSU1RfQklUIildCistCXB1YmxpYyBjb25zdCBpbnQgQUZJ UlNUX0JJVDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25h bWUgPSAiQ09HTF9BX0JJVCIpXQorLQlwdWJsaWMgY29uc3QgaW50IEFfQklUOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX0JHUl9CSVQi KV0KKy0JcHVibGljIGNvbnN0IGludCBCR1JfQklUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX0RFUFRIX0JJVCIpXQorLQlwdWJsaWMg Y29uc3QgaW50IERFUFRIX0JJVDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIiwgY25hbWUgPSAiQ09HTF9QUkVNVUxUX0JJVCIpXQorLQlwdWJsaWMgY29uc3QgaW50 IFBSRU1VTFRfQklUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi LCBjbmFtZSA9ICJDT0dMX1NURU5DSUxfQklUIildCistCXB1YmxpYyBjb25zdCBpbnQgU1RFTkNJ TF9CSVQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1l ID0gIkNPR0xfVEVYVFVSRV9NQVhfV0FTVEUiKV0KKy0JcHVibGljIGNvbnN0IGludCBURVhUVVJF X01BWF9XQVNURTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBiZWdpbl9nbCAoKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiKV0KKy0JcHVibGljIHN0 YXRpYyBDb2dsLkJvb2wgY2hlY2tfZXh0ZW5zaW9uIChzdHJpbmcgbmFtZSwgc3RyaW5nIGV4dCk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgY2xlYXIgKENvZ2wuQ29sb3IgY29sb3IsIHVsb25nIGJ1ZmZlcnMpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JcHVibGljIHN0 YXRpYyBDb2dsLkJvb2wgY2x1dHRlcl9jaGVja19leHRlbnNpb25fQ0xVVFRFUiAoc3RyaW5nIG5h bWUsIHN0cmluZyBleHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgY2x1dHRlcl93aW5zeXNfaGFzX2ZlYXR1 cmVfQ0xVVFRFUiAoQ29nbC5XaW5zeXNGZWF0dXJlIGZlYXR1cmUpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZGVidWdfbWF0cml4X3ByaW50IChDb2dsLk1hdHJpeCBt YXRyaXgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZGVidWdfb2Jq ZWN0X2ZvcmVhY2hfdHlwZSAoQ29nbC5EZWJ1Z09iamVjdEZvcmVhY2hUeXBlQ2FsbGJhY2sgZnVu Yyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoc2luY2UgPSAiMS44IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBkZWJ1Z19vYmplY3Rf cHJpbnRfaW5zdGFuY2VzICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGRpc2FibGVfZm9nICgpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JcHVibGljIHN0YXRpYyB2b2lkIGVuZF9nbCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGZlYXR1 cmVzX2F2YWlsYWJsZSAoQ29nbC5GZWF0dXJlRmxhZ3MgZmVhdHVyZXMpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZmx1c2ggKCk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuOC4yIildCistCXB1YmxpYyBz dGF0aWMgdm9pZCBmcnVzdHVtIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9t LCBmbG9hdCB0b3AsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJv b2wgZ2V0X2JhY2tmYWNlX2N1bGxpbmdfZW5hYmxlZCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGdldF9iaXRt YXNrcyAob3V0IGludCByZWQsIG91dCBpbnQgZ3JlZW4sIG91dCBpbnQgYmx1ZSwgb3V0IGludCBh bHBoYSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQor LQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBnZXRfZGVwdGhfdGVzdF9lbmFibGVkICgpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNp bmNlID0gIjEuOCIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ29nbC5GcmFtZWJ1ZmZlciBn ZXRfZHJhd19mcmFtZWJ1ZmZlciAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5GZWF0 dXJlRmxhZ3MgZ2V0X2ZlYXR1cmVzICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLk1hdHJpeCBnZXRfbW9kZWx2 aWV3X21hdHJpeCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgR0xpYi5PcHRpb25Hcm91cCBn ZXRfb3B0aW9uX2dyb3VwICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLk1hdHJpeCBnZXRfcHJvamVjdGlvbl9t YXRyaXggKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQqIGdldF9zb3VyY2UgKCk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgZ2V0X3ZpZXdwb3J0IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0g b3V0IGZsb2F0IHZbNF0pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyBHTGliLlR5cGUgZ3R5cGVfbWF0cml4X2dldF90eXBl ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgaXNfZnJh bWVidWZmZXIgKHZvaWQqIG9iamVjdCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3Rh dGljIENvZ2wuQm9vbCBpc19vbnNjcmVlbiAodm9pZCogb2JqZWN0KTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAi KV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgaXNfcGlwZWxpbmUgKHZvaWQqIG9iamVjdCk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuNCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBpc192ZXJ0ZXhfYnVmZmVyX2luZGlj ZXMgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgb3J0 aG8gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxv YXQgbmVhciwgZmxvYXQgZmFyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwZXJzcGVjdGl2ZSAoZmxvYXQgZm92 eSwgZmxvYXQgYXNwZWN0LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHBvbHlnb24gKENvZ2wuVGV4dHVyZVZlcnRleCB2 ZXJ0aWNlcywgdWludCBuX3ZlcnRpY2VzLCBDb2dsLkJvb2wgdXNlX2NvbG9yKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMg dm9pZCBwb3BfbWF0cml4ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHBvcF9zb3Vy Y2UgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgcHVzaF9tYXRyaXggKCk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQlwdWJsaWMgc3Rh dGljIHZvaWQgcHVzaF9zb3VyY2UgKHZvaWQqIG1hdGVyaWFsKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5n bGUgKGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMik7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGVfd2l0aF9tdWx0aXRleHR1 cmVfY29vcmRzIChmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHgyLCBmbG9hdCB5MiwgW0NDb2Rl IChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0W10gdGV4X2Nvb3JkcywgaW50IHRleF9jb29y ZHNfbGVuKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlY3Rhbmds ZV93aXRoX3RleHR1cmVfY29vcmRzIChmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHgyLCBmbG9h dCB5MiwgZmxvYXQgdHgxLCBmbG9hdCB0eTEsIGZsb2F0IHR4MiwgZmxvYXQgdHkyKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlY3RhbmdsZXMgKFtDQ29kZSAoYXJy YXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIHZlcnRzLCB1aW50IG5fcmVjdHMpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjAuOC42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGVzX3dpdGhfdGV4dHVy ZV9jb29yZHMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIHZlcnRzLCB1 aW50IG5fcmVjdHMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJvdGF0ZSAoZmxvYXQgYW5nbGUsIGZsb2F0IHgs IGZsb2F0IHksIGZsb2F0IHopOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNjYWxlIChmbG9hdCB4LCBmbG9hdCB5 LCBmbG9hdCB6KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfYmFja2ZhY2VfY3VsbGluZ19lbmFibGVkIChD b2dsLkJvb2wgc2V0dGluZyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2RlcHRoX3Rlc3RfZW5hYmxlZCAo Q29nbC5Cb29sIHNldHRpbmcpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9mb2cgKENvZ2wuQ29sb3IgZm9n X2NvbG9yLCBDb2dsLkZvZ01vZGUgbW9kZSwgZmxvYXQgZGVuc2l0eSwgZmxvYXQgel9uZWFyLCBm bG9hdCB6X2Zhcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X21vZGVsdmlld19tYXRyaXggKENvZ2wuTWF0 cml4IG1hdHJpeCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3Byb2plY3Rpb25fbWF0cml4IChDb2dsLk1h dHJpeCBtYXRyaXgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9zb3VyY2UgKHZv aWQqIG1hdGVyaWFsKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlX2Nv bG9yIChDb2dsLkNvbG9yIGNvbG9yKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRf c291cmNlX2NvbG9yNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0 IGFscGhhKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwg c2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlX2NvbG9yNHVi ICh1aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVlLCB1aW50OCBhbHBoYSk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3NvdXJjZV90ZXh0dXJlIChDb2dsLlRleHR1cmUg dGV4dHVyZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwg c2luY2UgPSAiMS4yIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfdmlld3BvcnQgKGludCB4 LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzaGFkZXJfY29t cGlsZSAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgc3RyaW5nIHNoYWRlcl9nZXRfaW5m b19sb2cgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuU2hhZGVyVHlwZSBzaGFk ZXJfZ2V0X3R5cGUgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBzaGFk ZXJfaXNfY29tcGlsZWQgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuSGFuZGxl IHNoYWRlcl9yZWYgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2hhZGVyX3Nv dXJjZSAoQ29nbC5IYW5kbGUgc2hhZGVyLCBzdHJpbmcgc291cmNlKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBz aGFkZXJfdW5yZWYgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGlj IENvZ2wuVGV4dHVyZSB0ZXh0dXJlX25ld19mcm9tX2JpdG1hcCAoQ29nbC5CaXRtYXAgYml0bWFw LCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3Jt YXQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5j ZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgdGV4dHVyZV9uZXdfZnJv bV9kYXRhIChpbnQgd2lkdGgsIGludCBoZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBD b2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQs IGludCByb3dzdHJpZGUsIHVpbnQ4IGRhdGEpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2ds LlRleHR1cmUgdGV4dHVyZV9uZXdfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUsIENvZ2wuVGV4 dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCkgdGhyb3dz IEdMaWIuRXJyb3I7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x OCIsIHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJl X25ld19mcm9tX2ZvcmVpZ24gKHVpbnQgZ2xfaGFuZGxlLCB1aW50IGdsX3RhcmdldCwgdWludCB3 aWR0aCwgdWludCBoZWlnaHQsIHVpbnQgeF9wb3Rfd2FzdGUsIHVpbnQgeV9wb3Rfd2FzdGUsIENv Z2wuUGl4ZWxGb3JtYXQgZm9ybWF0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0 dXJlIHRleHR1cmVfbmV3X3dpdGhfc2l6ZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQsIENvZ2wu VGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEu NCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdHJhbnNmb3JtIChDb2dsLk1hdHJpeCBtYXRyaXgp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIHRyYW5zbGF0ZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9hZGQgKENvZ2wuSGFuZGxlIGhhbmRsZSwgc3RyaW5n IGF0dHJpYnV0ZV9uYW1lLCB1aW50OCBuX2NvbXBvbmVudHMsIENvZ2wuQXR0cmlidXRlVHlwZSB0 eXBlLCBDb2dsLkJvb2wgbm9ybWFsaXplZCwgdWludDE2IHN0cmlkZSwgdm9pZCogcG9pbnRlcik7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9kZWxldGUgKENvZ2wuSGFuZGxlIGhhbmRsZSwg c3RyaW5nIGF0dHJpYnV0ZV9uYW1lKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2Rpc2Fi bGUgKENvZ2wuSGFuZGxlIGhhbmRsZSwgc3RyaW5nIGF0dHJpYnV0ZV9uYW1lKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMg dm9pZCB2ZXJ0ZXhfYnVmZmVyX2RyYXcgKENvZ2wuSGFuZGxlIGhhbmRsZSwgQ29nbC5WZXJ0aWNl c01vZGUgbW9kZSwgaW50IGZpcnN0LCBpbnQgY291bnQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9i dWZmZXJfZHJhd19lbGVtZW50cyAoQ29nbC5IYW5kbGUgaGFuZGxlLCBDb2dsLlZlcnRpY2VzTW9k ZSBtb2RlLCBDb2dsLkhhbmRsZSBpbmRpY2VzLCBpbnQgbWluX2luZGV4LCBpbnQgbWF4X2luZGV4 LCBpbnQgaW5kaWNlc19vZmZzZXQsIGludCBjb3VudCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1 ZmZlcl9lbmFibGUgKENvZ2wuSGFuZGxlIGhhbmRsZSwgc3RyaW5nIGF0dHJpYnV0ZV9uYW1lKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1Ymxp YyBzdGF0aWMgdWludCB2ZXJ0ZXhfYnVmZmVyX2dldF9uX3ZlcnRpY2VzIChDb2dsLkhhbmRsZSBo YW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0K Ky0JcHVibGljIHN0YXRpYyBDb2dsLkhhbmRsZSB2ZXJ0ZXhfYnVmZmVyX2luZGljZXNfZ2V0X2Zv cl9xdWFkcyAodWludCBuX2luZGljZXMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkluZGljZXNUeXBlIHZlcnRl eF9idWZmZXJfaW5kaWNlc19nZXRfdHlwZSAoQ29nbC5IYW5kbGUgaW5kaWNlcyk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGlj IENvZ2wuSGFuZGxlIHZlcnRleF9idWZmZXJfbmV3ICh1aW50IG5fdmVydGljZXMpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQlwdWJsaWMgc3RhdGlj IENvZ2wuSGFuZGxlIHZlcnRleF9idWZmZXJfcmVmIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfc3VibWl0IChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQlwdWJsaWMgc3Rh dGljIHZvaWQgdmVydGV4X2J1ZmZlcl91bnJlZiAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIwLjguMiIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmlld3BvcnQgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0 KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCXB1Ymxp YyBzdGF0aWMgdWludDMyIHgxMV9vbnNjcmVlbl9nZXRfdmlzdWFsX3hpZCAoQ29nbC5PbnNjcmVl biBvbnNjcmVlbik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHVpbnQzMiB4 MTFfb25zY3JlZW5fZ2V0X3dpbmRvd194aWQgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4pOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgeDExX29uc2NyZWVuX3NldF9mb3Jl aWduX3dpbmRvd194aWQgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4sIHVpbnQzMiB4aWQsIFtDQ29k ZSAoc2NvcGUgPSAiYXN5bmMiKV0gQ29nbC5PbnNjcmVlblgxMU1hc2tDYWxsYmFjayB1cGRhdGUp OworLX0KK2RpZmYgLS1naXQgdmFwaS9tdXR0ZXItY2x1dHRlci01LWN1c3RvbS52YWxhIHZhcGkv bXV0dGVyLWNsdXR0ZXItNS1jdXN0b20udmFsYQorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Citp bmRleCBiOGQ4MzhkMC4uMDAwMDAwMDAKKy0tLSB2YXBpL211dHRlci1jbHV0dGVyLTUtY3VzdG9t LnZhbGEKKysrKyAvZGV2L251bGwKK0BAIC0xLDE1OCArMCwwIEBACistbmFtZXNwYWNlIENsdXR0 ZXIgeworLSAgW0NDb2RlICh0eXBlX2lkID0gIkNMVVRURVJfVFlQRV9BQ1RPUl9CT1giLCBjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistICBwdWJsaWMgc3RydWN0IEFj dG9yQm94IHsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2FjdG9yX2JveF9mcm9tX3Zl cnRpY2VzIildCistICAgIHB1YmxpYyBBY3RvckJveC5mcm9tX3ZlcnRpY2VzIChDbHV0dGVyLlZl cnRleFtdIHZlcnRzKTsKKy0gIH0KKy0KKy0gIHB1YmxpYyBzdHJ1Y3QgTWF0cml4IDogQ29nbC5N YXRyaXggeworLSAgfQorLQorLSAgcHVibGljIGNsYXNzIEJhY2tlbmQgOiBHTGliLk9iamVjdCB7 CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyB2aXJ0dWFsIHZvaWQgYWRkX29wdGlvbnMg KEdMaWIuT3B0aW9uR3JvdXAgZ3JvdXApOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMg dmlydHVhbCBib29sIGNyZWF0ZV9jb250ZXh0ICgpIHRocm93cyBHTGliLkVycm9yOworLSAgICBb Tm9XcmFwcGVyXQorLSAgICBwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuU3RhZ2VXaW5k b3cgY3JlYXRlX3N0YWdlIChDbHV0dGVyLlN0YWdlIHdyYXBwZXIpIHRocm93cyBHTGliLkVycm9y OworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgdmlydHVhbCB2b2lkIGVuc3VyZV9jb250 ZXh0IChDbHV0dGVyLlN0YWdlIHN0YWdlKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGlj IHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLkRldmljZU1hbmFnZXIgZ2V0X2RldmljZV9tYW5hZ2Vy ICgpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgdmlydHVhbCBDbHV0dGVyLkZlYXR1 cmVGbGFncyBnZXRfZmVhdHVyZXMgKCk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyB2 aXJ0dWFsIHZvaWQgaW5pdF9ldmVudHMgKCk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1Ymxp YyB2aXJ0dWFsIHZvaWQgaW5pdF9mZWF0dXJlcyAoKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAg cHVibGljIHZpcnR1YWwgYm9vbCBwb3N0X3BhcnNlICgpIHRocm93cyBHTGliLkVycm9yOworLSAg ICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgdmlydHVhbCBib29sIHByZV9wYXJzZSAoKSB0aHJv d3MgR0xpYi5FcnJvcjsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIHZpcnR1YWwgdm9p ZCByZWRyYXcgKENsdXR0ZXIuU3RhZ2Ugc3RhZ2UpOworLSAgfQorLQorLSAgW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2Jv eF9nZXRfdHlwZSAoKSIpXQorLSAgcHVibGljIGNsYXNzIEJveCA6IENsdXR0ZXIuQWN0b3Igewor LSAgICBwdWJsaWMgQ2x1dHRlci5MYXlvdXRNYW5hZ2VyIGxheW91dF9tYW5hZ2VyIHsgZ2V0OyBz ZXQ7IH0KKy0gIH0KKy0KKy0gIFtDQ29kZSAodHlwZV9pZCA9ICJDTFVUVEVSX1RZUEVfQ09MT1Ii LCBjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistICBwdWJsaWMgc3Ry dWN0IENvbG9yIHsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbG9yX2Zyb21faGxz IildCistICAgIHB1YmxpYyBDb2xvci5mcm9tX2hscyAoZmxvYXQgaHVlLCBmbG9hdCBsdW1pbmFu Y2UsIGZsb2F0IHNhdHVyYXRpb24pOworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfY29s b3JfZnJvbV9waXhlbCIpXQorLSAgICBwdWJsaWMgQ29sb3IuZnJvbV9waXhlbCAodWludDMyIHBp eGVsKTsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbG9yX2Zyb21fc3RyaW5nIild CistICAgIHB1YmxpYyBDb2xvci5mcm9tX3N0cmluZyAoc3RyaW5nIHN0cik7CistICAgIFtDQ29k ZSAoY25hbWUgPSAiY2x1dHRlcl9jb2xvcl9mcm9tX3N0cmluZyIpXQorLSAgICBwdWJsaWMgYm9v bCBwYXJzZV9zdHJpbmcgKHN0cmluZyBzdHIpOworLSAgICBwdWJsaWMgc3RhdGljIHVub3duZWQg Q2x1dHRlci5Db2xvcj8gZ2V0X3N0YXRpYyAoQ2x1dHRlci5TdGF0aWNDb2xvciBjb2xvcik7Cist ICB9CistCistICBbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCB0eXBlX2lkID0gImNsdXR0ZXJfY29udGFpbmVyX2dldF90eXBlICgpIildCistICBwdWJsaWMg aW50ZXJmYWNlIENvbnRhaW5lciA6IEdMaWIuT2JqZWN0IHsKKy0gICAgcHVibGljIHZvaWQgYWRk IChwYXJhbXMgQ2x1dHRlci5BY3RvcltdIGFjdG9ycyk7CistICAgIFtDQ29kZSAoY25hbWUgPSAi Y2x1dHRlcl9jb250YWluZXJfY2xhc3NfZmluZF9jaGlsZF9wcm9wZXJ0eSIpXQorLSAgICBwdWJs aWMgY2xhc3MgdW5vd25lZCBHTGliLlBhcmFtU3BlYyBmaW5kX2NoaWxkX3Byb3BlcnR5IChzdHJp bmcgcHJvcGVydHlfbmFtZSk7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9jb250YWlu ZXJfY2xhc3NfbGlzdF9jaGlsZF9wcm9wZXJ0aWVzIildCistICAgIHB1YmxpYyBjbGFzcyB1bm93 bmVkIEdMaWIuUGFyYW1TcGVjW10gbGlzdF9jaGlsZF9wcm9wZXJ0aWVzICgpOworLSAgfQorLQor LSAgW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9m dW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIs IHR5cGVfaWQgPSAiY2x1dHRlcl9ldmVudF9nZXRfdHlwZSAoKSIpXQorLSAgW0NvbXBhY3RdCist ICBwdWJsaWMgY2xhc3MgRXZlbnQgeworLSAgICBwdWJsaWMgQ2x1dHRlci5BbnlFdmVudCBhbnkg eyBbQ0NvZGUgKGNuYW1lID0gIihDbHV0dGVyQW55RXZlbnQgKikiKV0gZ2V0OyB9CistICAgIHB1 YmxpYyBDbHV0dGVyLkJ1dHRvbkV2ZW50IGJ1dHRvbiB7IFtDQ29kZSAoY25hbWUgPSAiKENsdXR0 ZXJCdXR0b25FdmVudCAqKSIpXSBnZXQ7IH0KKy0gICAgcHVibGljIENsdXR0ZXIuQ3Jvc3NpbmdF dmVudCBjcm9zc2luZyB7IFtDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJDcm9zc2luZ0V2ZW50ICop IildIGdldDsgfQorLSAgICBwdWJsaWMgQ2x1dHRlci5LZXlFdmVudCBrZXkgeyBbQ0NvZGUgKGNu YW1lID0gIihDbHV0dGVyS2V5RXZlbnQgKikiKV0gZ2V0OyB9CistICAgIHB1YmxpYyBDbHV0dGVy Lk1vdGlvbkV2ZW50IG1vdGlvbiB7IFtDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJNb3Rpb25FdmVu dCAqKSIpXSBnZXQ7IH0KKy0gICAgcHVibGljIENsdXR0ZXIuU2Nyb2xsRXZlbnQgc2Nyb2xsIHsg W0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlclNjcm9sbEV2ZW50ICopIildIGdldDsgfQorLSAgICBw dWJsaWMgQ2x1dHRlci5TdGFnZVN0YXRlRXZlbnQgc3RhZ2Vfc3RhdGUgeyBbQ0NvZGUgKGNuYW1l ID0gIihDbHV0dGVyU3RhZ2VTdGF0ZUV2ZW50ICopIildIGdldDsgfQorLSAgICBwdWJsaWMgQ2x1 dHRlci5Ub3VjaEV2ZW50IHRvdWNoIHsgW0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlclRvdWNoRXZl bnQgKikiKV0gZ2V0OyB9CistICAgIHB1YmxpYyBDbHV0dGVyLlRvdWNocGFkUGluY2hFdmVudCB0 b3VjaHBhZF9waW5jaCB7IFtDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJUb3VjaHBhZFBpbmNoRXZl bnQgKikiKV0gZ2V0OyB9CistICAgIHB1YmxpYyBDbHV0dGVyLlRvdWNocGFkU3dpcGVFdmVudCB0 b3VjaHBhZF9zd2lwZSB7IFtDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJUb3VjaHBhZFN3aXBlRXZl bnQgKikiKV0gZ2V0OyB9CistICB9CistCistICBbQ0NvZGUgKHR5cGVfaWQgPSAiY2x1dHRlcl9z dGFnZV9nZXRfdHlwZSAoKSIsIGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi KV0KKy0gIHB1YmxpYyBjbGFzcyBTdGFnZSA6IENsdXR0ZXIuR3JvdXAgeworLSAgICBbQ0NvZGUg KGNuYW1lID0gImNsdXR0ZXJfcmVkcmF3IildCistICAgIHB1YmxpYyB2b2lkIHJlZHJhdyAoKTsK Ky0gIH0KKy0KKy0gIFtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIpXQorLSAgcHVibGljIGludGVyZmFjZSBTdGFnZVdpbmRvdyA6IEdMaWIuT2JqZWN0IHsKKy0g ICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgYWRkX3JlZHJhd19jbGlw IChDbHV0dGVyLkdlb21ldHJ5IHN0YWdlX3JlY3RhbmdsZSk7CistICAgIFtOb1dyYXBwZXJdCist ICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGdldF9nZW9tZXRyeSAoQ2x1dHRlci5HZW9tZXRyeSBn ZW9tZXRyeSk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgZ2V0 X3BlbmRpbmdfc3dhcHMgKCk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFj dCB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3dyYXBwZXIgKCk7CistICAgIFtOb1dyYXBwZXJd CistICAgIHB1YmxpYyBhYnN0cmFjdCBib29sIGhhc19yZWRyYXdfY2xpcHMgKCk7CistICAgIFtO b1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGhpZGUgKCk7CistICAgIFtOb1dy YXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCBib29sIGlnbm9yaW5nX3JlZHJhd19jbGlwcyAo KTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IGJvb2wgcmVhbGl6ZSAo KTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgcmVzaXplIChp bnQgd2lkdGgsIGludCBoZWlnaHQpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJz dHJhY3Qgdm9pZCBzZXRfY3Vyc29yX3Zpc2libGUgKGJvb2wgY3Vyc29yX3Zpc2libGUpOworLSAg ICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfZnVsbHNjcmVlbiAo Ym9vbCBpc19mdWxsc2NyZWVuKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3Ry YWN0IHZvaWQgc2V0X3RpdGxlIChzdHJpbmcgdGl0bGUpOworLSAgICBbTm9XcmFwcGVyXQorLSAg ICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfdXNlcl9yZXNpemFibGUgKGJvb2wgaXNfcmVzaXph YmxlKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgc2hvdyAo Ym9vbCBkb19yYWlzZSk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCB2 b2lkIHVucmVhbGl6ZSAoKTsKKy0gIH0KKy0KKy0gIFtDQ29kZSAodHlwZV9pZCA9ICJjbHV0dGVy X3RleHR1cmVfZ2V0X3R5cGUgKCkiLCBjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIildCistICBwdWJsaWMgY2xhc3MgVGV4dHVyZSA6IENsdXR0ZXIuQWN0b3IgeworLSAgICBw dWJsaWMgQ29nbC5NYXRlcmlhbCBjb2dsX21hdGVyaWFsIHsgZ2V0OyBzZXQ7IH0KKy0gICAgcHVi bGljIENvZ2wuVGV4dHVyZSBjb2dsX3RleHR1cmUgeyBnZXQ7IHNldDsgfQorLSAgfQorLQorLSAg W0NvbXBhY3RdCistICBbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiKV0KKy0gIHB1YmxpYyBjbGFzcyBUaW1lb3V0UG9vbCB7CistICAgIFtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0gICAgcHVibGljIFRpbWVvdXRQb29sIChpbnQg cHJpb3JpdHkpOworLSAgfQorLQorLSAgW0NDb2RlIChjcHJlZml4ID0gIkNMVVRURVJfRkVBVFVS RV8iLCBjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistICBbRmxhZ3Nd CistICBwdWJsaWMgZW51bSBGZWF0dXJlRmxhZ3MgeworLSAgICBURVhUVVJFX05QT1Q7CistICAg IFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9mZWF0dXJlX2F2YWlsYWJsZSIpXQorLSAgICBwdWJs aWMgYm9vbCBpc19hdmFpbGFibGUgKCk7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9m ZWF0dXJlX2dldF9hbGwiKV0KKy0gICAgcHVibGljIHN0YXRpYyBDbHV0dGVyLkZlYXR1cmVGbGFn cyBAZ2V0ICgpOworLSAgfQorLQorLSAgW0NDb2RlICh0eXBlX2lkID0gIkNMVVRURVJfVFlQRV9V TklUUyIsIGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0gIHB1Ymxp YyBzdHJ1Y3QgVW5pdHMgeworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJv bV9jbSIpXQorLSAgICBwdWJsaWMgVW5pdHMuZnJvbV9jbSAoZmxvYXQgY20pOworLSAgICBbQ0Nv ZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9lbSIpXQorLSAgICBwdWJsaWMgVW5pdHMu ZnJvbV9lbSAoZmxvYXQgZW0pOworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNf ZnJvbV9lbV9mb3JfZm9udCIpXQorLSAgICBwdWJsaWMgVW5pdHMuZnJvbV9lbV9mb3JfZm9udCAo c3RyaW5nIGZvbnRfbmFtZSwgZmxvYXQgZW0pOworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0 ZXJfdW5pdHNfZnJvbV9tbSIpXQorLSAgICBwdWJsaWMgVW5pdHMuZnJvbV9tbSAoZmxvYXQgbW0p OworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9waXhlbHMiKV0KKy0g ICAgcHVibGljIFVuaXRzLmZyb21fcGl4ZWxzIChpbnQgcHgpOworLSAgICBbQ0NvZGUgKGNuYW1l ID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9wdCIpXQorLSAgICBwdWJsaWMgVW5pdHMuZnJvbV9wdCAo ZmxvYXQgcHQpOworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9zdHJp bmciKV0KKy0gICAgcHVibGljIFVuaXRzLmZyb21fc3RyaW5nIChzdHJpbmcgc3RyKTsKKy0gIH0K Ky19CitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNsdXR0ZXItNC1jdXN0b20udmFsYSB2YXBpL211 dHRlci1jbHV0dGVyLTYtY3VzdG9tLnZhbGEKK3NpbWlsYXJpdHkgaW5kZXggOTIlCityZW5hbWUg ZnJvbSB2YXBpL211dHRlci1jbHV0dGVyLTQtY3VzdG9tLnZhbGEKK3JlbmFtZSB0byB2YXBpL211 dHRlci1jbHV0dGVyLTYtY3VzdG9tLnZhbGEKK2luZGV4IGI4ZDgzOGQwLi44OTIyNGJlNiAxMDA2 NDQKKy0tLSB2YXBpL211dHRlci1jbHV0dGVyLTQtY3VzdG9tLnZhbGEKKysrKyB2YXBpL211dHRl ci1jbHV0dGVyLTYtY3VzdG9tLnZhbGEKK0BAIC0xLDkgKzEsNCBAQAorIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKy0gIFtDQ29kZSAodHlwZV9pZCA9ICJDTFVUVEVSX1RZUEVfQUNUT1JfQk9YIiwgY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLSAgcHVibGljIHN0cnVjdCBB Y3RvckJveCB7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9hY3Rvcl9ib3hfZnJvbV92 ZXJ0aWNlcyIpXQorLSAgICBwdWJsaWMgQWN0b3JCb3guZnJvbV92ZXJ0aWNlcyAoQ2x1dHRlci5W ZXJ0ZXhbXSB2ZXJ0cyk7CistICB9CisgCisgICBwdWJsaWMgc3RydWN0IE1hdHJpeCA6IENvZ2wu TWF0cml4IHsKKyAgIH0KK0BAIC0xOCw4ICsxMyw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAg ICAgW05vV3JhcHBlcl0KKyAgICAgcHVibGljIHZpcnR1YWwgdm9pZCBlbnN1cmVfY29udGV4dCAo Q2x1dHRlci5TdGFnZSBzdGFnZSk7CisgICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyB2aXJ0 dWFsIHVub3duZWQgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGdldF9kZXZpY2VfbWFuYWdlciAoKTsK Ky0gICAgW05vV3JhcHBlcl0KKyAgICAgcHVibGljIHZpcnR1YWwgQ2x1dHRlci5GZWF0dXJlRmxh Z3MgZ2V0X2ZlYXR1cmVzICgpOworICAgICBbTm9XcmFwcGVyXQorICAgICBwdWJsaWMgdmlydHVh bCB2b2lkIGluaXRfZXZlbnRzICgpOworQEAgLTgzLDEwICs3Niw2IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAKKyAgIFtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIpXQorICAgcHVibGljIGludGVyZmFjZSBTdGFnZVdpbmRvdyA6IEdMaWIuT2JqZWN0IHsKKy0g ICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgYWRkX3JlZHJhd19jbGlw IChDbHV0dGVyLkdlb21ldHJ5IHN0YWdlX3JlY3RhbmdsZSk7CistICAgIFtOb1dyYXBwZXJdCist ICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGdldF9nZW9tZXRyeSAoQ2x1dHRlci5HZW9tZXRyeSBn ZW9tZXRyeSk7CisgICAgIFtOb1dyYXBwZXJdCisgICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgZ2V0 X3BlbmRpbmdfc3dhcHMgKCk7CisgICAgIFtOb1dyYXBwZXJdCitkaWZmIC0tZ2l0IHZhcGkvbXV0 dGVyLWNsdXR0ZXItNS5kZXBzIHZhcGkvbXV0dGVyLWNsdXR0ZXItNi5kZXBzCitzaW1pbGFyaXR5 IGluZGV4IDYzJQorcmVuYW1lIGZyb20gdmFwaS9tdXR0ZXItY2x1dHRlci01LmRlcHMKK3JlbmFt ZSB0byB2YXBpL211dHRlci1jbHV0dGVyLTYuZGVwcworaW5kZXggM2Y1YTkyYTYuLjdhNzBkNmRm IDEwMDY0NAorLS0tIHZhcGkvbXV0dGVyLWNsdXR0ZXItNS5kZXBzCisrKysgdmFwaS9tdXR0ZXIt Y2x1dHRlci02LmRlcHMKK0BAIC0xLDQgKzEsNCBAQAorIGF0aworIGNhaXJvCisganNvbi1nbGli LTEuMAorLW11dHRlci1jb2dsLTUKKyttdXR0ZXItY29nbC02CitkaWZmIC0tZ2l0IHZhcGkvbXV0 dGVyLWNsdXR0ZXItNS52YXBpIHZhcGkvbXV0dGVyLWNsdXR0ZXItNi52YXBpCitzaW1pbGFyaXR5 IGluZGV4IDkzJQorcmVuYW1lIGZyb20gdmFwaS9tdXR0ZXItY2x1dHRlci01LnZhcGkKK3JlbmFt ZSB0byB2YXBpL211dHRlci1jbHV0dGVyLTYudmFwaQoraW5kZXggMjRmN2Y2YjEuLjAxMzBhOTNj IDEwMDY0NAorLS0tIHZhcGkvbXV0dGVyLWNsdXR0ZXItNS52YXBpCisrKysgdmFwaS9tdXR0ZXIt Y2x1dHRlci02LnZhcGkKK0BAIC0xLDYgKzEsNiBAQAorLS8qIG11dHRlci1jbHV0dGVyLTUudmFw aSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKysvKiBtdXR0ZXItY2x1 dHRlci02LnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnkuICovCisgCist W0NDb2RlIChjcHJlZml4ID0gIkNsdXR0ZXIiLCBnaXJfbmFtZXNwYWNlID0gIkNsdXR0ZXIiLCBn aXJfdmVyc2lvbiA9ICI1IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gImNsdXR0ZXJfIildCisrW0ND b2RlIChjcHJlZml4ID0gIkNsdXR0ZXIiLCBnaXJfbmFtZXNwYWNlID0gIkNsdXR0ZXIiLCBnaXJf dmVyc2lvbiA9ICI2IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gImNsdXR0ZXJfIildCisgbmFtZXNw YWNlIENsdXR0ZXIgeworIAluYW1lc3BhY2UgS2V5IHsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNuYW1lID0gIkNMVVRURVJfS0VZXzAiKV0KK0BA IC00NjYxLDIyICs0NjYxLDE0IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lk IGFsbG9jYXRlX3ByZWZlcnJlZF9zaXplIChDbHV0dGVyLkFsbG9jYXRpb25GbGFncyBmbGFncyk7 CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24g YW5pbWF0ZSAodWxvbmcgbW9kZSwgdWludCBkdXJhdGlvbiwgLi4uKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4w IildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBhbmltYXRlX3dpdGhfYWxw aGEgKENsdXR0ZXIuQWxwaGEgYWxwaGEsIC4uLik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVi bGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0ZV93aXRoX2FscGhhdiAoQ2x1dHRl ci5BbHBoYSBhbHBoYSwgW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVz IiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDEuNSldIHN0cmluZ1tdIHByb3BlcnRpZXMsIFtDQ29kZSAo YXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAx LjUpXSBHTGliLlZhbHVlW10gdmFsdWVzKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMg dW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBhbmltYXRlX3dpdGhfdGltZWxpbmUgKHVsb25nIG1v ZGUsIENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUsIC4uLik7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0ZV93aXRoX3RpbWVsaW5l diAodWxvbmcgbW9kZSwgQ2x1dHRlci5UaW1lbGluZSB0aW1lbGluZSwgW0NDb2RlIChhcnJheV9s ZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDIuNSldIHN0 cmluZ1tdIHByb3BlcnRpZXMsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVy dGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAyLjUpXSBHTGliLlZhbHVlW10gdmFsdWVzKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBhbmlt YXRldiAodWxvbmcgbW9kZSwgdWludCBkdXJhdGlvbiwgW0NDb2RlIChhcnJheV9sZW5ndGhfY25h bWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDIuNSldIHN0cmluZ1tdIHBy b3BlcnRpZXMsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFy cmF5X2xlbmd0aF9wb3MgPSAyLjUpXSBHTGliLlZhbHVlW10gdmFsdWVzKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCBhcHBseV9yZWxhdGl2 ZV90cmFuc2Zvcm1fdG9fcG9pbnQgKENsdXR0ZXIuQWN0b3I/IGFuY2VzdG9yLCBDbHV0dGVyLlZl cnRleCBwb2ludCk7CisrCQlwdWJsaWMgdm9pZCBhcHBseV9yZWxhdGl2ZV90cmFuc2Zvcm1fdG9f cG9pbnQgKENsdXR0ZXIuQWN0b3I/IGFuY2VzdG9yLCBHcmFwaGVuZS5Qb2ludDNEIHBvaW50LCBv dXQgdW5vd25lZCBHcmFwaGVuZS5Qb2ludDNEIHZlcnRleCk7CisgCQlbTm9XcmFwcGVyXQorIAkJ cHVibGljIHZpcnR1YWwgdm9pZCBhcHBseV90cmFuc2Zvcm0gKHJlZiBDbHV0dGVyLk1hdHJpeCBt YXRyaXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIENsdXR0ZXIu VmVydGV4IGFwcGx5X3RyYW5zZm9ybV90b19wb2ludCAoQ2x1dHRlci5WZXJ0ZXggcG9pbnQpOwor KwkJcHVibGljIHZvaWQgYXBwbHlfdHJhbnNmb3JtX3RvX3BvaW50IChHcmFwaGVuZS5Qb2ludDNE IHBvaW50LCBvdXQgdW5vd25lZCBHcmFwaGVuZS5Qb2ludDNEIHZlcnRleCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4yNCIpXQorIAkJcHVibGljIHZvaWQgYmluZF9tb2RlbCAoR0xpYi5MaXN0 TW9kZWw/IG1vZGVsLCBvd25lZCBDbHV0dGVyLkFjdG9yQ3JlYXRlQ2hpbGRGdW5jIGNyZWF0ZV9j aGlsZF9mdW5jKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KK0BAIC00Njg4LDIwICs0 NjgwLDE5IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQi KV0KKyAJCXB1YmxpYyBib29sIGNvbnRhaW5zIChDbHV0dGVyLkFjdG9yIGRlc2NlbmRhbnQpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgY29udGludWVfcGFp bnQgKCk7CisrCQlwdWJsaWMgdm9pZCBjb250aW51ZV9wYWludCAoQ2x1dHRlci5QYWludENvbnRl eHQgcGFpbnRfY29udGV4dCk7CisrCQlwdWJsaWMgdm9pZCBjb250aW51ZV9waWNrIChDbHV0dGVy LlBpY2tDb250ZXh0IHBpY2tfY29udGV4dCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisgCQlwdWJsaWMgUGFuZ28uQ29udGV4dCBjcmVhdGVfcGFuZ29fY29udGV4dCAoKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBQYW5nby5MYXlvdXQgY3JlYXRlX3Bh bmdvX2xheW91dCAoc3RyaW5nPyB0ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CisgCQlwdWJsaWMgdm9pZCBkZXN0cm95X2FsbF9jaGlsZHJlbiAoKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40 IildCistCQlwdWJsaWMgdm9pZCBkZXRhY2hfYW5pbWF0aW9uICgpOworIAkJW0NDb2RlIChjbmFt ZSA9ICJjbHV0dGVyX2FjdG9yX2V2ZW50IildCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42Iild CisgCQlwdWJsaWMgYm9vbCBlbWl0X2V2ZW50IChDbHV0dGVyLkV2ZW50IGV2ZW50LCBib29sIGNh cHR1cmUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQgZ2V0 X2Fic19hbGxvY2F0aW9uX3ZlcnRpY2VzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0g Q2x1dHRlci5WZXJ0ZXggdmVydHNbNF0pOworKwkJcHVibGljIHZvaWQgZ2V0X2Fic19hbGxvY2F0 aW9uX3ZlcnRpY2VzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gR3JhcGhlbmUuUG9p bnQzRCB2ZXJ0c1s0XSk7CisgCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIEF0ay5PYmplY3QgZ2V0 X2FjY2Vzc2libGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMg dW5vd25lZCBDbHV0dGVyLkFjdGlvbiBnZXRfYWN0aW9uIChzdHJpbmcgbmFtZSk7CitAQCAtNDcw OSwxNiArNDcwMCwxMCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgR0xpYi5MaXN0 PHdlYWsgQ2x1dHRlci5BY3Rpb24+IGdldF9hY3Rpb25zICgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjAuOCIpXQorIAkJcHVibGljIENsdXR0ZXIuQWN0b3JCb3ggZ2V0X2FsbG9jYXRpb25fYm94 ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkdlb21ldHJ5IGdldF9h bGxvY2F0aW9uX2dlb21ldHJ5ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJ cHVibGljIHZvaWQgZ2V0X2FsbG9jYXRpb25fdmVydGljZXMgKENsdXR0ZXIuQWN0b3I/IGFuY2Vz dG9yLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gQ2x1dHRlci5WZXJ0ZXggdmVydHNb NF0pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9hbmNob3JfcG9pbnQg KG91dCBmbG9hdCBhbmNob3JfeCwgb3V0IGZsb2F0IGFuY2hvcl95KTsKKysJCXB1YmxpYyB2b2lk IGdldF9hbGxvY2F0aW9uX3ZlcnRpY2VzIChDbHV0dGVyLkFjdG9yPyBhbmNlc3RvciwgW0NDb2Rl IChhcnJheV9sZW5ndGggPSBmYWxzZSldIEdyYXBoZW5lLlBvaW50M0QgdmVydHNbNF0pOworIAkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkdyYXZpdHkgZ2V0X2FuY2hvcl9wb2lu dF9ncmF2aXR5ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0 ZXIuQW5pbWF0aW9uIGdldF9hbmltYXRpb24gKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorIAkJcHVibGljIENsdXR0ZXIuQ29sb3IgZ2V0X2JhY2tncm91bmRfY29sb3IgKCk7Cisg CQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfZ2V0X2FjdG9yX2J5X2dpZCIpXQorQEAgLTQ3Njgs OCArNDc1Myw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIGdldF9maXhl ZF9wb3NpdGlvbl9zZXQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJs aWMgQ2x1dHRlci5BY3RvckZsYWdzIGdldF9mbGFncyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIwLjYiKV0KKy0J CXB1YmxpYyB1aW50MzIgZ2V0X2dpZCAoKTsKKyAJCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9h Y3Rvcl9oYXNfcG9pbnRlciIpXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVi bGljIGJvb2wgZ2V0X2hhc19wb2ludGVyICgpOworQEAgLTQ4NDgsOCArNDgzMSw2IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLlRleHREaXJlY3Rpb24gZ2V0X3RleHRf ZGlyZWN0aW9uICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBD bHV0dGVyLk1hdHJpeCBnZXRfdHJhbnNmb3JtICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1 YmxpYyBDbHV0dGVyLk1hdHJpeCBnZXRfdHJhbnNmb3JtYXRpb25fbWF0cml4ICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5QYWludFZv bHVtZSBnZXRfdHJhbnNmb3JtZWRfcGFpbnRfdm9sdW1lIChDbHV0dGVyLkFjdG9yIHJlbGF0aXZl X3RvX2FuY2VzdG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KK0BAIC00ODkyLDcg KzQ4NzMsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBoYXNfbWFwcGVk X2Nsb25lcyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2aXJ0 dWFsIGJvb2wgaGFzX292ZXJsYXBzICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0KKysJCVtOb1dyYXBw ZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGhpZGVfYWxsICgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIGluc2VydF9jaGlsZF9hYm92ZSAoQ2x1dHRl ci5BY3RvciBjaGlsZCwgQ2x1dHRlci5BY3Rvcj8gc2libGluZyk7CitAQCAtNDkxMiwxMCArNDg5 Myw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIGlzX3NjYWxlZCAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjI0IildCisgCQlwdWJsaWMgYm9vbCBpc192aXNpYmxl ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIGxvd2VyIChDbHV0dGVyLkFjdG9yPyBhYm92ZSk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIp XQorLQkJcHVibGljIHZvaWQgbG93ZXJfYm90dG9tICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBtYXAgKCk7CisgCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIp XQorQEAgLTQ5MjgsMTcgKzQ5MDUsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGlj IGJvb2wgbmVlZHNfZXhwYW5kIChDbHV0dGVyLk9yaWVudGF0aW9uIG9yaWVudGF0aW9uKTsKKyAJ CVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBhaW50X25vZGUgKENsdXR0ZXIu UGFpbnROb2RlIHJvb3QpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyB2b2lkIHBpY2tf Ym94IChDbHV0dGVyLlBpY2tDb250ZXh0IHBpY2tfY29udGV4dCwgQ2x1dHRlci5BY3RvckJveCBi b3gpOworIAkJcHVibGljIHZvaWQgcG9wX2ludGVybmFsICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0K KyAJCXB1YmxpYyB2b2lkIHB1c2hfaW50ZXJuYWwgKCk7CisgCQlwdWJsaWMgdm9pZCBxdWV1ZV9y ZWRyYXcgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQg cXVldWVfcmVkcmF3X3dpdGhfY2xpcCAoQ2Fpcm8uUmVjdGFuZ2xlSW50PyBjbGlwKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCist CQlwdWJsaWMgdm9pZCByYWlzZSAoQ2x1dHRlci5BY3Rvcj8gYmVsb3cpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1Ymxp YyB2b2lkIHJhaXNlX3RvcCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1 YmxpYyB2b2lkIHJlbW92ZV9hY3Rpb24gKENsdXR0ZXIuQWN0aW9uIGFjdGlvbik7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS40IildCitAQCAtNDk2MCw4ICs0OTMyLDYgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJcHVibGljIHZvaWQgcmVtb3ZlX2VmZmVjdF9ieV9uYW1lIChzdHJpbmcgbmFt ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgcmVtb3Zl X3RyYW5zaXRpb24gKHN0cmluZyBuYW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC4yIildCistCQlwdWJsaWMg dm9pZCByZXBhcmVudCAoQ2x1dHRlci5BY3RvciBuZXdfcGFyZW50KTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCByZXBsYWNlX2NoaWxkIChDbHV0dGVyLkFj dG9yIG9sZF9jaGlsZCwgQ2x1dHRlci5BY3RvciBuZXdfY2hpbGQpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KK0BAIC01MDQ2LDggKzUwMTYsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCQlwdWJsaWMgdm9pZCBzZXRfc2NhbGUgKGRvdWJsZSBzY2FsZV94LCBkb3VibGUgc2NhbGVf eSk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3NjYWxlX2Z1bGwgKGRv dWJsZSBzY2FsZV94LCBkb3VibGUgc2NhbGVfeSwgZmxvYXQgY2VudGVyX3gsIGZsb2F0IGNlbnRl cl95KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc2NhbGVfd2l0aF9n cmF2aXR5IChkb3VibGUgc2NhbGVfeCwgZG91YmxlIHNjYWxlX3ksIENsdXR0ZXIuR3Jhdml0eSBn cmF2aXR5KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdm9pZCBz ZXRfc2NhbGVfeiAoZG91YmxlIHNjYWxlX3opOworIAkJcHVibGljIHZvaWQgc2V0X3NpemUgKGZs b2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpOworQEAgLTUxMTAsMTEgKzUwNzgsOCBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGJv b2wgY2hpbGRfdHJhbnNmb3JtX3NldCB7IGdldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIp XQorLQkJcHVibGljIENsdXR0ZXIuR2VvbWV0cnkgY2xpcCB7IG93bmVkIGdldDsgc2V0OyB9Cist CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlw dWJsaWMgQ2x1dHRlci5SZWN0IGNsaXBfcmVjdCB7IG93bmVkIGdldDsgc2V0OyB9CisrCQlwdWJs aWMgR3JhcGhlbmUuUmVjdCBjbGlwX3JlY3QgeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIGJvb2wgY2xpcF90b19hbGxvY2F0aW9uIHsg Z2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAgLTUxOTksMTIgKzUxNjQsMTIg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHVpbnQgb3BhY2l0eSB7IGdldDsgc2V0 OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIild CistCQlwdWJsaWMgQ2x1dHRlci5Qb2ludCBwaXZvdF9wb2ludCB7IG93bmVkIGdldDsgc2V0OyB9 CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQgcGl2b3RfcG9pbnQgeyBvd25lZCBnZXQ7IHNldDsg fQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBmbG9hdCBwaXZvdF9w b2ludF96IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlBvaW50IHBvc2l0aW9uIHsgb3du ZWQgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBwb3NpdGlvbiB7IG93bmVk IGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgYm9v bCByZWFjdGl2ZSB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KK0BAIC01MjI1 LDEzICs1MTkwLDEzIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBkb3VibGUgcm90 YXRpb25fYW5nbGVfeiB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMC42IildCistCQlwdWJsaWMgQ2x1dHRlci5WZXJ0ZXggcm90YXRpb25fY2VudGVyX3gg eyBvd25lZCBnZXQ7IHNldDsgfQorKwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0Qgcm90YXRpb25f Y2VudGVyX3ggeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjAuNiIpXQorLQkJcHVibGljIENsdXR0ZXIuVmVydGV4IHJvdGF0aW9uX2NlbnRlcl95 IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIHJvdGF0aW9u X2NlbnRlcl95IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCByb3RhdGlvbl9jZW50ZXJf eiB7IG93bmVkIGdldDsgc2V0OyB9CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCByb3RhdGlv bl9jZW50ZXJfeiB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJ CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgQ2x1dHRlci5HcmF2aXR5IHJvdGF0aW9uX2NlbnRl cl96X2dyYXZpdHkgeyBnZXQ7IHNldDsgfQorQEAgLTUyNTcsNyArNTIyMiw3IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIHNob3dfb25fc2V0X3BhcmVudCB7IGdldDsgc2V0 OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIild CistCQlwdWJsaWMgQ2x1dHRlci5TaXplIHNpemUgeyBvd25lZCBnZXQ7IHNldDsgfQorKwkJcHVi bGljIEdyYXBoZW5lLlNpemUgc2l6ZSB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgQ2x1dHRlci5UZXh0RGlyZWN0aW9uIHRleHRfZGly ZWN0aW9uIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAgLTUzMTksMTEg KzUyODQsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZpcnR1YWwgc2lnbmFs IGJvb2wgbW90aW9uX2V2ZW50IChDbHV0dGVyLk1vdGlvbkV2ZW50IGV2ZW50KTsKKyAJCVtIYXNF bWl0dGVyXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lk IHBhaW50ICgpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGFpbnQgKENsdXR0ZXIu UGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIp XQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGFyZW50X3NldCAoQ2x1dHRlci5BY3Rv cj8gb2xkX3BhcmVudCk7CisrCQlbSGFzRW1pdHRlcl0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHBpY2sgKENsdXR0ZXIuQ29sb3Ig Y29sb3IpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGljayAoQ2x1dHRlci5QaWNr Q29udGV4dCBwaWNrX2NvbnRleHQpOworIAkJW0hhc0VtaXR0ZXJdCisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4yIildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBxdWV1ZV9yZWxheW91 dCAoKTsKK0BAIC01MzYxLDYgKzUzMjcsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVi bGljIGJvb2wgZW5hYmxlZCB7IGdldDsgc2V0OyB9CisgCQlwdWJsaWMgc3RyaW5nIG5hbWUgeyBn ZXQ7IHNldDsgfQorIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hY3Rvcl9ub2RlX2dldF90eXBlICgpIildCisr CXB1YmxpYyBjbGFzcyBBY3Rvck5vZGUgOiBDbHV0dGVyLlBhaW50Tm9kZSB7CisrCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyUGFpbnROb2Rl KiIpXQorKwkJcHVibGljIEFjdG9yTm9kZSAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CisrCX0KKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9 ICJjbHV0dGVyX2FsaWduX2NvbnN0cmFpbnRfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNp bmNlID0gIjEuNCIpXQorIAlwdWJsaWMgY2xhc3MgQWxpZ25Db25zdHJhaW50IDogQ2x1dHRlci5D b25zdHJhaW50IHsKK0BAIC01Mzg4LDE5ICs1MzU5LDEyIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB1bG9uZyBnZXRfbW9kZSAo KTsKKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuVGltZWxpbmUgZ2V0X3RpbWVsaW5lICgpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRpYyB1bG9uZyByZWdp c3Rlcl9jbG9zdXJlIChHTGliLkNsb3N1cmUgY2xvc3VyZSk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIHVsb25nIHJlZ2lzdGVyX2Z1bmMgKENsdXR0ZXIu QWxwaGFGdW5jIGZ1bmMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGlj IHZvaWQgc2V0X2Nsb3N1cmUgKEdMaWIuQ2xvc3VyZSBjbG9zdXJlKTsKKyAJCXB1YmxpYyB2b2lk IHNldF9mdW5jIChvd25lZCBDbHV0dGVyLkFscGhhRnVuYyBmdW5jKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9tb2RlICh1bG9uZyBtb2RlKTsKKyAJ CXB1YmxpYyB2b2lkIHNldF90aW1lbGluZSAoQ2x1dHRlci5UaW1lbGluZSB0aW1lbGluZSk7Cist CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQWxwaGEud2l0aF9mdW5jIChDbHV0dGVyLlRpbWVs aW5lIHRpbWVsaW5lLCBvd25lZCBDbHV0dGVyLkFscGhhRnVuYyBmdW5jKTsKKyAJCXB1YmxpYyBk b3VibGUgYWxwaGEgeyBnZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1 YmxpYyB1bG9uZyBtb2RlIHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CitAQCAtNTQxMSwzNSArNTM3 NSwyNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCXB1YmxpYyBjbGFzcyBBbmltYXRpb24gOiBH TGliLk9iamVjdCwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXB1YmxpYyBBbmltYXRpb24gKCk7CistCQlwdWJsaWMg dW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBiaW5kIChzdHJpbmcgcHJvcGVydHlfbmFtZSwgR0xp Yi5WYWx1ZSBmaW5hbCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBiaW5k X2ludGVydmFsIChzdHJpbmcgcHJvcGVydHlfbmFtZSwgb3duZWQgQ2x1dHRlci5JbnRlcnZhbCBp bnRlcnZhbCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5B bHBoYSBnZXRfYWxwaGEgKCk7CisgCQlwdWJsaWMgdWludCBnZXRfZHVyYXRpb24gKCk7CisgCQlw dWJsaWMgdW5vd25lZCBDbHV0dGVyLkludGVydmFsIGdldF9pbnRlcnZhbCAoc3RyaW5nIHByb3Bl cnR5X25hbWUpOworIAkJcHVibGljIGJvb2wgZ2V0X2xvb3AgKCk7CisgCQlwdWJsaWMgdWxvbmcg Z2V0X21vZGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBHTGliLk9iamVjdCBnZXRfb2JqZWN0ICgp OworIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5UaW1lbGluZSBnZXRfdGltZWxpbmUgKCk7Cisg CQlwdWJsaWMgYm9vbCBoYXNfcHJvcGVydHkgKHN0cmluZyBwcm9wZXJ0eV9uYW1lKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGEgKENsdXR0ZXIuQWxwaGEgYWxw aGEpOworIAkJcHVibGljIHZvaWQgc2V0X2R1cmF0aW9uICh1aW50IG1zZWNzKTsKKyAJCXB1Ymxp YyB2b2lkIHNldF9sb29wIChib29sIGxvb3ApOworIAkJcHVibGljIHZvaWQgc2V0X21vZGUgKHVs b25nIG1vZGUpOworIAkJcHVibGljIHZvaWQgc2V0X29iamVjdCAoR0xpYi5PYmplY3Qgb2JqZWN0 KTsKKyAJCXB1YmxpYyB2b2lkIHNldF90aW1lbGluZSAoQ2x1dHRlci5UaW1lbGluZT8gdGltZWxp bmUpOworLQkJcHVibGljIHZvaWQgdW5iaW5kX3Byb3BlcnR5IChzdHJpbmcgcHJvcGVydHlfbmFt ZSk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiB1cGRhdGUgKHN0cmluZyBw cm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVlIGZpbmFsKTsKKy0JCXB1YmxpYyB2b2lkIHVwZGF0ZV9p bnRlcnZhbCAoc3RyaW5nIHByb3BlcnR5X25hbWUsIENsdXR0ZXIuSW50ZXJ2YWwgaW50ZXJ2YWwp OworKwkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENs dXR0ZXIuQWxwaGEgYWxwaGEgeyBnZXQ7IHNldDsgfQorKwkJcHVibGljIENsdXR0ZXIuQWxwaGEg YWxwaGEgeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJcHVibGljIHVpbnQgZHVyYXRpb24geyBnZXQ7 IHNldDsgfQorIAkJcHVibGljIGJvb2wgbG9vcCB7IGdldDsgc2V0OyB9CisgCQlwdWJsaWMgdWxv bmcgbW9kZSB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgR0xpYi5PYmplY3Qgb2JqZWN0IHsgZ2V0 OyBzZXQ7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIEdMaWIuT2JqZWN0IG9i amVjdCB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlwdWJsaWMgQ2x1dHRlci5UaW1lbGluZSB0aW1l bGluZSB7IGdldDsgc2V0OyB9CistCQlbSGFzRW1pdHRlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNp Z25hbCB2b2lkIGNvbXBsZXRlZCAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHN0 YXJ0ZWQgKCk7CisgCX0KK0BAIC01NDYwLDIxICs1NDE1LDE4IEBAIG5hbWVzcGFjZSBDbHV0dGVy IHsKKyAJCXByb3RlY3RlZCBCYWNrZW5kICgpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2 aXJ0dWFsIHZvaWQgYWRkX29wdGlvbnMgKEdMaWIuT3B0aW9uR3JvdXAgZ3JvdXApOworLQkJcHVi bGljIHZvaWQgYmVsbF9ub3RpZnkgKCk7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1 YWwgYm9vbCBjcmVhdGVfY29udGV4dCAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtOb1dyYXBw ZXJdCisgCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuU3RhZ2VXaW5kb3cgY3JlYXRl X3N0YWdlIChDbHV0dGVyLlN0YWdlIHdyYXBwZXIpIHRocm93cyBHTGliLkVycm9yOworIAkJW05v V3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZW5zdXJlX2NvbnRleHQgKENsdXR0ZXIu U3RhZ2Ugc3RhZ2UpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQg Q2x1dHRlci5EZXZpY2VNYW5hZ2VyIGdldF9kZXZpY2VfbWFuYWdlciAoKTsKKysJCXB1YmxpYyB1 bm93bmVkIENsdXR0ZXIuU2VhdCBnZXRfZGVmYXVsdF9zZWF0ICgpOworIAkJW05vV3JhcHBlcl0K KyAJCXB1YmxpYyB2aXJ0dWFsIENsdXR0ZXIuRmVhdHVyZUZsYWdzIGdldF9mZWF0dXJlcyAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENhaXJvLkZv bnRPcHRpb25zIGdldF9mb250X29wdGlvbnMgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVy LklucHV0TWV0aG9kIGdldF9pbnB1dF9tZXRob2QgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0 dGVyLktleW1hcCBnZXRfa2V5bWFwICgpOworIAkJcHVibGljIGRvdWJsZSBnZXRfcmVzb2x1dGlv biAoKTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGluaXRfZXZlbnRz ICgpOworQEAgLTU0OTYsOTUgKzU0NDgsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHNpZ25hbCB2b2lkIHNldHRpbmdzX2No YW5nZWQgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JlaGF2aW91cl9nZXRfdHlwZSAoKSIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS42Iiwgc2lu Y2UgPSAiMC4yIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBCZWhhdmlvdXIgOiBHTGliLk9i amVjdCwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBCZWhhdmlvdXIgKCk7CistCQlwdWJsaWMgdm9p ZCBhY3RvcnNfZm9yZWFjaCAoQ2x1dHRlci5CZWhhdmlvdXJGb3JlYWNoRnVuYyBmdW5jKTsKKy0J CVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFscGhhX25vdGlmeSAoZG91Ymxl IGFscGhhX3ZhbHVlKTsKKy0JCXB1YmxpYyB2b2lkIGFwcGx5IChDbHV0dGVyLkFjdG9yIGFjdG9y KTsKKy0JCXB1YmxpYyBHTGliLlNMaXN0PHdlYWsgQ2x1dHRlci5BY3Rvcj4gZ2V0X2FjdG9ycyAo KTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWxwaGEgZ2V0X2FscGhhICgpOworLQkJcHVi bGljIGludCBnZXRfbl9hY3RvcnMgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9y IGdldF9udGhfYWN0b3IgKGludCBpbmRleF8pOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIp XQorLQkJcHVibGljIGJvb2wgaXNfYXBwbGllZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlw dWJsaWMgdm9pZCByZW1vdmUgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX2FsbCAoKTsKKy0JCXB1YmxpYyB2 b2lkIHNldF9hbHBoYSAoQ2x1dHRlci5BbHBoYSBhbHBoYSk7CistCQlwdWJsaWMgQ2x1dHRlci5B bHBoYSBhbHBoYSB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCist CQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBhcHBsaWVkIChDbHV0dGVyLkFjdG9yIGFjdG9y KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25h bCB2b2lkIHJlbW92ZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9i ZWhhdmlvdXJfZGVwdGhfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNiIsIHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMg Y2xhc3MgQmVoYXZpb3VyRGVwdGggOiBDbHV0dGVyLkJlaGF2aW91ciwgQ2x1dHRlci5TY3JpcHRh YmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0g IkNsdXR0ZXJCZWhhdmlvdXIqIildCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlw dWJsaWMgQmVoYXZpb3VyRGVwdGggKENsdXR0ZXIuQWxwaGE/IGFscGhhLCBpbnQgZGVwdGhfc3Rh cnQsIGludCBkZXB0aF9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVi bGljIHZvaWQgZ2V0X2JvdW5kcyAob3V0IGludCBkZXB0aF9zdGFydCwgb3V0IGludCBkZXB0aF9l bmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Jv dW5kcyAoaW50IGRlcHRoX3N0YXJ0LCBpbnQgZGVwdGhfZW5kKTsKKy0JCVtOb0FjY2Vzc29yTWV0 aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIGludCBkZXB0aF9l bmQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC40IildCistCQlwdWJsaWMgaW50IGRlcHRoX3N0YXJ0IHsgZ2V0OyBzZXQ7IH0KKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBl X2lkID0gImNsdXR0ZXJfYmVoYXZpb3VyX29wYWNpdHlfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNiIsIHNpbmNlID0g IjAuMiIpXQorLQlwdWJsaWMgY2xhc3MgQmVoYXZpb3VyT3BhY2l0eSA6IENsdXR0ZXIuQmVoYXZp b3VyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckJlaGF2aW91cioiKV0KKy0JCXB1YmxpYyBCZWhh dmlvdXJPcGFjaXR5IChDbHV0dGVyLkFscGhhPyBhbHBoYSwgdWludDggb3BhY2l0eV9zdGFydCwg dWludDggb3BhY2l0eV9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVi bGljIHZvaWQgZ2V0X2JvdW5kcyAob3V0IHVpbnQ4IG9wYWNpdHlfc3RhcnQsIG91dCB1aW50OCBv cGFjaXR5X2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9p ZCBzZXRfYm91bmRzICh1aW50OCBvcGFjaXR5X3N0YXJ0LCB1aW50OCBvcGFjaXR5X2VuZCk7Cist CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB1aW50IG9wYWNpdHlfZW5kIHsgZ2V0OyBz ZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQgb3BhY2l0eV9zdGFy dCB7IGdldDsgc2V0OyB9CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JlaGF2aW91cl9zY2FsZV9nZXRfdHlw ZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS42Iiwgc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBjbGFzcyBCZWhhdmlvdXJTY2FsZSA6 IENsdXR0ZXIuQmVoYXZpb3VyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckJlaGF2aW91cioiKV0K Ky0JCXB1YmxpYyBCZWhhdmlvdXJTY2FsZSAoQ2x1dHRlci5BbHBoYT8gYWxwaGEsIGRvdWJsZSB4 X3NjYWxlX3N0YXJ0LCBkb3VibGUgeV9zY2FsZV9zdGFydCwgZG91YmxlIHhfc2NhbGVfZW5kLCBk b3VibGUgeV9zY2FsZV9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVi bGljIHZvaWQgZ2V0X2JvdW5kcyAob3V0IGRvdWJsZSB4X3NjYWxlX3N0YXJ0LCBvdXQgZG91Ymxl IHlfc2NhbGVfc3RhcnQsIG91dCBkb3VibGUgeF9zY2FsZV9lbmQsIG91dCBkb3VibGUgeV9zY2Fs ZV9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0 X2JvdW5kcyAoZG91YmxlIHhfc2NhbGVfc3RhcnQsIGRvdWJsZSB5X3NjYWxlX3N0YXJ0LCBkb3Vi bGUgeF9zY2FsZV9lbmQsIGRvdWJsZSB5X3NjYWxlX2VuZCk7CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBkb3VibGUgeF9zY2Fs ZV9lbmQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAo c2luY2UgPSAiMC42IildCistCQlwdWJsaWMgZG91YmxlIHhfc2NhbGVfc3RhcnQgeyBnZXQ7IHNl dDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42Iild CistCQlwdWJsaWMgZG91YmxlIHlfc2NhbGVfZW5kIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIGRvdWJs ZSB5X3NjYWxlX3N0YXJ0IHsgZ2V0OyBzZXQ7IH0KKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYmluX2xheW91 dF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCXB1YmxpYyBj bGFzcyBCaW5MYXlvdXQgOiBDbHV0dGVyLkxheW91dE1hbmFnZXIgeworIAkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckxheW91dE1hbmFnZXIq IildCisgCQlwdWJsaWMgQmluTGF5b3V0IChDbHV0dGVyLkJpbkFsaWdubWVudCB4X2FsaWduID0g Q2x1dHRlci5CaW5BbGlnbm1lbnQuU1RBUlQsIENsdXR0ZXIuQmluQWxpZ25tZW50IHlfYWxpZ24g PSBDbHV0dGVyLkJpbkFsaWdubWVudC5TVEFSVCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVi bGljIHZvaWQgYWRkIChDbHV0dGVyLkFjdG9yIGNoaWxkLCBDbHV0dGVyLkJpbkFsaWdubWVudCB4 X2FsaWduLCBDbHV0dGVyLkJpbkFsaWdubWVudCB5X2FsaWduKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIild CistCQlwdWJsaWMgdm9pZCBnZXRfYWxpZ25tZW50IChDbHV0dGVyLkFjdG9yPyBjaGlsZCwgb3V0 IENsdXR0ZXIuQmluQWxpZ25tZW50IHhfYWxpZ24sIG91dCBDbHV0dGVyLkJpbkFsaWdubWVudCB5 X2FsaWduKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxpZ25tZW50 IChDbHV0dGVyLkFjdG9yPyBjaGlsZCwgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeF9hbGlnbiwgQ2x1 dHRlci5CaW5BbGlnbm1lbnQgeV9hbGlnbik7CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS4yIildCisgCQlwdWJsaWMgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeF9hbGlnbiB7IGdl dDsgc2V0OyB9CitAQCAtNTc1OCwzNyArNTYyNiw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CXB1YmxpYyBmbG9hdCB4OworIAkJcHVibGljIGZsb2F0IHk7CisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2Nh aXJvX3RleHR1cmVfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGNs YXNzIENhaXJvVGV4dHVyZSA6IENsdXR0ZXIuVGV4dHVyZSwgQXRrLkltcGxlbWVudG9yLCBDbHV0 dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgewor LQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRl ckFjdG9yKiIpXQorLQkJcHVibGljIENhaXJvVGV4dHVyZSAodWludCB3aWR0aCwgdWludCBoZWln aHQpOworLQkJcHVibGljIHZvaWQgY2xlYXIgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJs aWMgQ2Fpcm8uQ29udGV4dCBjcmVhdGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMg Q2Fpcm8uQ29udGV4dCBjcmVhdGVfcmVnaW9uIChpbnQgeF9vZmZzZXQsIGludCB5X29mZnNldCwg aW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0J CXB1YmxpYyBib29sIGdldF9hdXRvX3Jlc2l6ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9zdXJm YWNlX3NpemUgKG91dCB1aW50IHdpZHRoLCBvdXQgdWludCBoZWlnaHQpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgaW52YWxpZGF0ZSAoKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIGludmFsaWRhdGVfcmVjdGFuZ2xl IChDYWlyby5SZWN0YW5nbGVJbnQ/IHJlY3QpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIp XQorLQkJcHVibGljIHZvaWQgc2V0X2F1dG9fcmVzaXplIChib29sIHZhbHVlKTsKKy0JCXB1Ymxp YyB2b2lkIHNldF9zdXJmYWNlX3NpemUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0KTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBib29sIGF1dG9fcmVzaXplIHsgZ2V0 OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQgc3VyZmFjZV9o ZWlnaHQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdWlu dCBzdXJmYWNlX3dpZHRoIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYi KV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBDYWlyby5TdXJmYWNlIGNyZWF0ZV9zdXJmYWNl ICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44Iild CistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCBkcmF3IChDYWlyby5Db250ZXh0IGNyKTsK Ky0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0 eXBlX2lkID0gImNsdXR0ZXJfY2FudmFzX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCisgCXB1YmxpYyBjbGFzcyBDYW52YXMgOiBHTGliLk9iamVjdCwgQ2x1dHRl ci5Db250ZW50IHsKK0BAIC01OTIwLDYyICs1NzU3LDI0IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJCXB1YmxpYyB2b2lkIHNldF9mYWN0b3IgKGRvdWJsZSBmYWN0b3IpOworIAkJcHVibGljIGRv dWJsZSBmYWN0b3IgeyBnZXQ7IHNldDsgfQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9kZXZpY2VfbWFuYWdl cl9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBh YnN0cmFjdCBjbGFzcyBEZXZpY2VNYW5hZ2VyIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIERldmljZU1hbmFn ZXIgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBhZGRfZGV2aWNl IChDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGlj IHZpcnR1YWwgdm9pZCBhcHBseV9rYmRfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5LYmRBMTF5U2V0 dGluZ3Mgc2V0dGluZ3MpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQg Y29tcHJlc3NfbW90aW9uIChDbHV0dGVyLkV2ZW50IGV2ZW50LCBDbHV0dGVyLkV2ZW50IHRvX2Rp c2NhcmQpOworLQkJcHVibGljIHZpcnR1YWwgQ2x1dHRlci5WaXJ0dWFsSW5wdXREZXZpY2UgY3Jl YXRlX3ZpcnR1YWxfZGV2aWNlIChDbHV0dGVyLklucHV0RGV2aWNlVHlwZSBkZXZpY2VfdHlwZSk7 CistCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuSW5wdXREZXZpY2UgZ2V0X2NvcmVf ZGV2aWNlIChDbHV0dGVyLklucHV0RGV2aWNlVHlwZSBkZXZpY2VfdHlwZSk7CistCQlwdWJsaWMg c3RhdGljIHVub3duZWQgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGdldF9kZWZhdWx0ICgpOworLQkJ cHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLklucHV0RGV2aWNlIGdldF9kZXZpY2UgKGlu dCBkZXZpY2VfaWQpOworLQkJcHVibGljIHZvaWQgZ2V0X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0 dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CistCQlwdWJsaWMgdm9pZCBnZXRfcG9pbnRl cl9hMTF5X3NldHRpbmdzIChDbHV0dGVyLlBvaW50ZXJBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOwor LQkJcHVibGljIHZpcnR1YWwgQ2x1dHRlci5WaXJ0dWFsRGV2aWNlVHlwZSBnZXRfc3VwcG9ydGVk X3ZpcnR1YWxfZGV2aWNlX3R5cGVzICgpOworLQkJcHVibGljIEdMaWIuU0xpc3Q8d2VhayBDbHV0 dGVyLklucHV0RGV2aWNlPiBsaXN0X2RldmljZXMgKCk7CistCQlwdWJsaWMgdW5vd25lZCBHTGli LlNMaXN0PENsdXR0ZXIuSW5wdXREZXZpY2U+IHBlZWtfZGV2aWNlcyAoKTsKKy0JCVtOb1dyYXBw ZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHJlbW92ZV9kZXZpY2UgKENsdXR0ZXIuSW5wdXRE ZXZpY2UgZGV2aWNlKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNl bGVjdF9zdGFnZV9ldmVudHMgKENsdXR0ZXIuU3RhZ2Ugc3RhZ2UpOworLQkJcHVibGljIHZvaWQg c2V0X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7 CistCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRlcl9hMTF5X2R3ZWxsX2NsaWNrX3R5cGUgKENsdXR0 ZXIuUG9pbnRlckExMXlEd2VsbENsaWNrVHlwZSBjbGlja190eXBlKTsKKy0JCXB1YmxpYyB2b2lk IHNldF9wb2ludGVyX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuUG9pbnRlckExMXlTZXR0aW5ncyBz ZXR0aW5ncyk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBDbHV0dGVyLkJhY2tl bmQgYmFja2VuZCB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZv aWQgZGV2aWNlX2FkZGVkIChDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSk7CistCQlwdWJsaWMg c2lnbmFsIHZvaWQgZGV2aWNlX3JlbW92ZWQgKENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlKTsK Ky0JCXB1YmxpYyBzaWduYWwgdm9pZCBrYmRfYTExeV9mbGFnc19jaGFuZ2VkICh1aW50IHNldHRp bmdzX2ZsYWdzLCB1aW50IGNoYW5nZWRfbWFzayk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQga2Jk X2ExMXlfbW9kc19zdGF0ZV9jaGFuZ2VkICh1aW50IGxhdGNoZWRfbWFzaywgdWludCBsb2NrZWRf bWFzayk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcHRyX2ExMXlfZHdlbGxfY2xpY2tfdHlwZV9j aGFuZ2VkIChDbHV0dGVyLlBvaW50ZXJBMTF5RHdlbGxDbGlja1R5cGUgY2xpY2tfdHlwZSk7Cist CQlwdWJsaWMgc2lnbmFsIHZvaWQgcHRyX2ExMXlfdGltZW91dF9zdGFydGVkIChDbHV0dGVyLklu cHV0RGV2aWNlIGRldmljZSwgQ2x1dHRlci5Qb2ludGVyQTExeVRpbWVvdXRUeXBlIHRpbWVvdXRf dHlwZSwgdWludCBkZWxheSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcHRyX2ExMXlfdGltZW91 dF9zdG9wcGVkIChDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSwgQ2x1dHRlci5Qb2ludGVyQTEx eVRpbWVvdXRUeXBlIHRpbWVvdXRfdHlwZSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgdG9vbF9j aGFuZ2VkIChDbHV0dGVyLklucHV0RGV2aWNlIG9iamVjdCwgQ2x1dHRlci5JbnB1dERldmljZVRv b2wgcDApOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9kcmFnX2FjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlb VmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBjbGFzcyBEcmFnQWN0aW9uIDogQ2x1 dHRlci5BY3Rpb24geworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Us IHR5cGUgPSAiQ2x1dHRlckFjdGlvbioiKV0KKyAJCXB1YmxpYyBEcmFnQWN0aW9uICgpOworLQkJ cHVibGljIGJvb2wgZ2V0X2RyYWdfYXJlYSAoQ2x1dHRlci5SZWN0IGRyYWdfYXJlYSk7CisrCQlw dWJsaWMgYm9vbCBnZXRfZHJhZ19hcmVhIChHcmFwaGVuZS5SZWN0IGRyYWdfYXJlYSk7CisgCQlw dWJsaWMgQ2x1dHRlci5EcmFnQXhpcyBnZXRfZHJhZ19heGlzICgpOworIAkJcHVibGljIHVub3du ZWQgQ2x1dHRlci5BY3RvciBnZXRfZHJhZ19oYW5kbGUgKCk7CisgCQlwdWJsaWMgdm9pZCBnZXRf ZHJhZ190aHJlc2hvbGQgKG91dCB1aW50IHhfdGhyZXNob2xkLCBvdXQgdWludCB5X3RocmVzaG9s ZCk7CisgCQlwdWJsaWMgdm9pZCBnZXRfbW90aW9uX2Nvb3JkcyAob3V0IGZsb2F0IG1vdGlvbl94 LCBvdXQgZmxvYXQgbW90aW9uX3kpOworIAkJcHVibGljIHZvaWQgZ2V0X3ByZXNzX2Nvb3JkcyAo b3V0IGZsb2F0IHByZXNzX3gsIG91dCBmbG9hdCBwcmVzc195KTsKKy0JCXB1YmxpYyB2b2lkIHNl dF9kcmFnX2FyZWEgKENsdXR0ZXIuUmVjdD8gZHJhZ19hcmVhKTsKKysJCXB1YmxpYyB2b2lkIHNl dF9kcmFnX2FyZWEgKEdyYXBoZW5lLlJlY3Q/IGRyYWdfYXJlYSk7CisgCQlwdWJsaWMgdm9pZCBz ZXRfZHJhZ19heGlzIChDbHV0dGVyLkRyYWdBeGlzIGF4aXMpOworIAkJcHVibGljIHZvaWQgc2V0 X2RyYWdfaGFuZGxlIChDbHV0dGVyLkFjdG9yPyBoYW5kbGUpOworIAkJcHVibGljIHZvaWQgc2V0 X2RyYWdfdGhyZXNob2xkIChpbnQgeF90aHJlc2hvbGQsIGludCB5X3RocmVzaG9sZCk7CisgCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJs aWMgQ2x1dHRlci5SZWN0IGRyYWdfYXJlYSB7IG93bmVkIGdldDsgc2V0OyB9CisrCQlwdWJsaWMg R3JhcGhlbmUuUmVjdCBkcmFnX2FyZWEgeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNz b3JNZXRob2RdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGJvb2wg ZHJhZ19hcmVhX3NldCB7IGdldDsgfQorQEAgLTYwMTEsMTMgKzU4MTAsMTMgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgbW9kaWZ5 X3BhaW50X3ZvbHVtZSAoQ2x1dHRlci5QYWludFZvbHVtZSB2b2x1bWUpOworIAkJW05vV3JhcHBl cl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGFpbnQgKENsdXR0ZXIuRWZmZWN0UGFpbnRGbGFn cyBmbGFncyk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBhaW50IChDbHV0dGVyLlBhaW50Q29u dGV4dCBwYWludF9jb250ZXh0LCBDbHV0dGVyLkVmZmVjdFBhaW50RmxhZ3MgZmxhZ3MpOworIAkJ W05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGljayAoQ2x1dHRlci5FZmZlY3RQ YWludEZsYWdzIGZsYWdzKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGljayAoQ2x1dHRlci5Q aWNrQ29udGV4dCBwaWNrX2NvbnRleHQpOworIAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0 dWFsIHZvaWQgcG9zdF9wYWludCAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcG9zdF9wYWlu dCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7CisgCQlbTm9XcmFwcGVyXQor LQkJcHVibGljIHZpcnR1YWwgYm9vbCBwcmVfcGFpbnQgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBi b29sIHByZV9wYWludCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCBxdWV1ZV9yZXBhaW50ICgp OworIAl9CitAQCAtNjA2OCw3ICs1ODY3LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVi bGljIHVpbnQgZ2V0X21vZGVfZ3JvdXAgKCk7CisgCQlwdWJsaWMgYm9vbCBnZXRfcGFkX2V2ZW50 X2RldGFpbHMgKG91dCB1aW50IG51bWJlciwgb3V0IHVpbnQgbW9kZSwgb3V0IGRvdWJsZSB2YWx1 ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3Bv c2l0aW9uIChDbHV0dGVyLlBvaW50IHBvc2l0aW9uKTsKKysJCXB1YmxpYyB2b2lkIGdldF9wb3Np dGlvbiAoR3JhcGhlbmUuUG9pbnQgcG9zaXRpb24pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfcmVsYXRlZCAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNjMwOCw3ICs2MTA3LDcgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIGJv b2wgZ2V0X2F4aXNfdmFsdWUgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBkb3VibGVb XSBheGVzLCBDbHV0dGVyLklucHV0QXhpcyBheGlzLCBvdXQgZG91YmxlIHZhbHVlKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgYm9vbCBnZXRfY29vcmRzIChDbHV0 dGVyLkV2ZW50U2VxdWVuY2U/IHNlcXVlbmNlLCBDbHV0dGVyLlBvaW50IHBvaW50KTsKKysJCXB1 YmxpYyBib29sIGdldF9jb29yZHMgKENsdXR0ZXIuRXZlbnRTZXF1ZW5jZT8gc2VxdWVuY2UsIEdy YXBoZW5lLlBvaW50IHBvaW50KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1 YmxpYyBpbnQgZ2V0X2RldmljZV9pZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0K K0BAIC02MzIyLDcgKzYxMjEsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9v bCBnZXRfZW5hYmxlZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJs aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9ncmFiYmVkX2FjdG9yICgpOworLQkJcHVibGlj IGludCBnZXRfZ3JvdXBfbl9tb2RlcyAoaW50IGdyb3VwKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGlu dCBnZXRfZ3JvdXBfbl9tb2RlcyAoaW50IGdyb3VwKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjYiKV0KKyAJCXB1YmxpYyBib29sIGdldF9oYXNfY3Vyc29yICgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNiIpXQorQEAgLTYzNDQsMTYgKzYxNDMsMTcgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5TdGFnZSBnZXRfcG9pbnRlcl9zdGFnZSAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIyIildCisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcg Z2V0X3Byb2R1Y3RfaWQgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlNlYXQgZ2V0X3Nl YXQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgR0xpYi5MaXN0 PHdlYWsgQ2x1dHRlci5JbnB1dERldmljZT4gZ2V0X3NsYXZlX2RldmljZXMgKCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4yMiIpXQorIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF92ZW5k b3JfaWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQg Z3JhYiAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlwdWJsaWMgYm9vbCBpc19ncm91cGVkIChD bHV0dGVyLklucHV0RGV2aWNlIG90aGVyX2RldmljZSk7CistCQlwdWJsaWMgYm9vbCBpc19tb2Rl X3N3aXRjaF9idXR0b24gKHVpbnQgZ3JvdXAsIHVpbnQgYnV0dG9uKTsKKysJCXB1YmxpYyB2aXJ0 dWFsIGJvb2wgaXNfZ3JvdXBlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvdGhlcl9kZXZpY2UpOwor KwkJcHVibGljIHZpcnR1YWwgYm9vbCBpc19tb2RlX3N3aXRjaF9idXR0b24gKHVpbnQgZ3JvdXAs IHVpbnQgYnV0dG9uKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMg Ym9vbCBrZXljb2RlX3RvX2V2ZGV2ICh1aW50IGhhcmR3YXJlX2tleWNvZGUsIHVpbnQgZXZkZXZf a2V5Y29kZSk7CisrCQlwdWJsaWMgdmlydHVhbCBib29sIGtleWNvZGVfdG9fZXZkZXYgKHVpbnQg aGFyZHdhcmVfa2V5Y29kZSwgdWludCBldmRldl9rZXljb2RlKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIHNlcXVlbmNlX2dl dF9ncmFiYmVkX2FjdG9yIChDbHV0dGVyLkV2ZW50U2VxdWVuY2Ugc2VxdWVuY2UpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTIiKV0KK0BAIC02MzY5LDEyICs2MTY5LDExIEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHVuZ3JhYiAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB2b2lkIHVwZGF0ZV9mcm9tX2V2ZW50IChDbHV0dGVyLkV2 ZW50IGV2ZW50LCBib29sIHVwZGF0ZV9zdGFnZSk7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGlj IHZpcnR1YWwgdm9pZCB1cGRhdGVfZnJvbV90b29sIChDbHV0dGVyLklucHV0RGV2aWNlVG9vbCB0 b29sKTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIp XQorIAkJcHVibGljIENsdXR0ZXIuQmFja2VuZCBiYWNrZW5kIHsgb3duZWQgZ2V0OyBjb25zdHJ1 Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIp XQorLQkJcHVibGljIENsdXR0ZXIuRGV2aWNlTWFuYWdlciBkZXZpY2VfbWFuYWdlciB7IG93bmVk IGdldDsgY29uc3RydWN0OyB9CisgCQlwdWJsaWMgQ2x1dHRlci5JbnB1dE1vZGUgZGV2aWNlX21v ZGUgeyBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJcHVibGljIHN0cmluZyBkZXZpY2Vfbm9kZSB7IGdl dDsgY29uc3RydWN0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCitAQCAtNjM5Nyw2 ICs2MTk2LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHN0cmluZyBuYW1lIHsg b3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIyIildCisg CQlwdWJsaWMgc3RyaW5nIHByb2R1Y3RfaWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGlj IENsdXR0ZXIuU2VhdCBzZWF0IHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjIyIildCisgCQlwdWJsaWMgc3RyaW5nIHZlbmRvcl9pZCB7IGdldDsgY29uc3RydWN0 OyB9CisgCX0KK0BAIC02NDM0LDcgKzYyMzQsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlw dWJsaWMgdm9pZCBzZXRfY2FuX3Nob3dfcHJlZWRpdCAoYm9vbCBjYW5fc2hvd19wcmVlZGl0KTsK KyAJCXB1YmxpYyB2b2lkIHNldF9jb250ZW50X2hpbnRzIChDbHV0dGVyLklucHV0Q29udGVudEhp bnRGbGFncyBoaW50KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9jb250ZW50X3B1cnBvc2UgKENsdXR0 ZXIuSW5wdXRDb250ZW50UHVycG9zZSBwdXJwb3NlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9jdXJz b3JfbG9jYXRpb24gKENsdXR0ZXIuUmVjdCByZWN0KTsKKysJCXB1YmxpYyB2b2lkIHNldF9jdXJz b3JfbG9jYXRpb24gKEdyYXBoZW5lLlJlY3QgcmVjdCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfaW5w dXRfcGFuZWxfc3RhdGUgKENsdXR0ZXIuSW5wdXRQYW5lbFN0YXRlIHN0YXRlKTsKKyAJCVtOb1dy YXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNldF9wcmVlZGl0X3RleHQgKHN0cmluZyBw cmVlZGl0LCB1aW50IGN1cnNvcik7CitAQCAtNjQ1Myw3ICs2MjUzLDcgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcmVzZXQgKCk7 CisgCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzZXRfY3Vyc29yX2xvY2F0 aW9uIChDbHV0dGVyLlJlY3QgcmVjdCk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNldF9jdXJz b3JfbG9jYXRpb24gKEdyYXBoZW5lLlJlY3QgcmVjdCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfaW5w dXRfcGFuZWxfc3RhdGUgKENsdXR0ZXIuSW5wdXRQYW5lbFN0YXRlIHN0YXRlKTsKKyAJCXB1Ymxp YyB2b2lkIHNldF9wcmVlZGl0X3RleHQgKHN0cmluZz8gcHJlZWRpdCwgdWludCBjdXJzb3IpOwor IAkJW05vV3JhcHBlcl0KK0BAIC02NDcwLDcgKzYyNzAsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCQlwdWJsaWMgQ2x1dHRlci5JbnB1dENvbnRlbnRQdXJwb3NlIGNvbnRlbnRfcHVycG9zZSB7 IGdldDsgc2V0OyB9CisgCQlbSGFzRW1pdHRlcl0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBjb21t aXQgKHN0cmluZyB0ZXh0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfbG9jYXRpb25f Y2hhbmdlZCAoQ2x1dHRlci5SZWN0IG9iamVjdCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vy c29yX2xvY2F0aW9uX2NoYW5nZWQgKEdyYXBoZW5lLlJlY3Qgb2JqZWN0KTsKKyAJCVtIYXNFbWl0 dGVyXQorIAkJcHVibGljIHNpZ25hbCB2b2lkIGRlbGV0ZV9zdXJyb3VuZGluZyAodWludCBvZmZz ZXQsIHVpbnQgbGVuKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBpbnB1dF9wYW5lbF9zdGF0ZSAo Q2x1dHRlci5JbnB1dFBhbmVsU3RhdGUgb2JqZWN0KTsKK0BAIC02NTQ2LDI3ICs2MzQ2LDMxIEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBLZXltYXAgKCk7CisgCQlwdWJsaWMgdmlydHVhbCBib29s IGdldF9jYXBzX2xvY2tfc3RhdGUgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBQYW5nby5EaXJlY3Rp b24gZ2V0X2RpcmVjdGlvbiAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgZ2V0X251bV9sb2Nr X3N0YXRlICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHN0YXRlX2NoYW5nZWQgKCk7CisgCX0K KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9p ZCA9ICJjbHV0dGVyX2xheWVyX25vZGVfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIExh eWVyTm9kZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9m dW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJQYWludE5vZGUqIildCisrCQlwdWJsaWMg TGF5ZXJOb2RlIChDb2dsLk1hdHJpeCBwcm9qZWN0aW9uLCBDYWlyby5SZWN0YW5nbGUgdmlld3Bv cnQsIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIHVpbnQ4IG9wYWNpdHkpOworKwl9CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAi Y2x1dHRlcl9sYXlvdXRfbWFuYWdlcl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2Ug PSAiMS4yIildCisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBMYXlvdXRNYW5hZ2VyIDogR0xpYi5J bml0aWFsbHlVbm93bmVkIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlKV0KKyAJCXByb3RlY3RlZCBMYXlvdXRNYW5hZ2VyICgpOworIAkJcHVibGljIHZpcnR1YWwg dm9pZCBhbGxvY2F0ZSAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9y Qm94IGFsbG9jYXRpb24sIENsdXR0ZXIuQWxsb2NhdGlvbkZsYWdzIGZsYWdzKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS4yIildCistCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuQWxwaGEgYmVnaW5f YW5pbWF0aW9uICh1aW50IGR1cmF0aW9uLCB1bG9uZyBtb2RlKTsKKyAJCXB1YmxpYyB2b2lkIGNo aWxkX2dldCAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9y LCAuLi4pOworIAkJcHVibGljIHZvaWQgY2hpbGRfZ2V0X3Byb3BlcnR5IChDbHV0dGVyLkNvbnRh aW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IsIHN0cmluZyBwcm9wZXJ0eV9uYW1l LCBHTGliLlZhbHVlIHZhbHVlKTsKKyAJCXB1YmxpYyB2b2lkIGNoaWxkX3NldCAoQ2x1dHRlci5D b250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yLCAuLi4pOworIAkJcHVibGlj IHZvaWQgY2hpbGRfc2V0X3Byb3BlcnR5IChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENs dXR0ZXIuQWN0b3IgYWN0b3IsIHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVlIHZhbHVl KTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuTGF5 b3V0TWV0YSBjcmVhdGVfY2hpbGRfbWV0YSAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBD bHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCisrCQlbTm9XcmFwcGVyXQor IAkJcHVibGljIHZpcnR1YWwgdm9pZCBlbmRfYW5pbWF0aW9uICgpOworIAkJcHVibGljIHVub3du ZWQgR0xpYi5QYXJhbVNwZWMgZmluZF9jaGlsZF9wcm9wZXJ0eSAoc3RyaW5nIG5hbWUpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjIiKV0KKysJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCBkb3VibGUg Z2V0X2FuaW1hdGlvbl9wcm9ncmVzcyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuTGF5b3V0TWV0YSBnZXRfY2hpbGRfbWV0YSAoQ2x1 dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yKTsKK0BAIC02NjIz LDEyICs2NDI3LDEyIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXByb3RlY3RlZCBPZmZzY3Jl ZW5FZmZlY3QgKCk7CisgCQlwdWJsaWMgdmlydHVhbCBDb2dsLkhhbmRsZSBjcmVhdGVfdGV4dHVy ZSAoZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x NCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3RhcmdldF9yZWN0IChvdXQgdW5vd25lZCBDbHV0dGVy LlJlY3QgcmVjdCk7CisrCQlwdWJsaWMgYm9vbCBnZXRfdGFyZ2V0X3JlY3QgKG91dCB1bm93bmVk IEdyYXBoZW5lLlJlY3QgcmVjdCk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNCIsIHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIGJvb2wg Z2V0X3RhcmdldF9zaXplIChvdXQgZmxvYXQgd2lkdGgsIG91dCBmbG9hdCBoZWlnaHQpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxl IGdldF90ZXh0dXJlICgpOworLQkJcHVibGljIHZpcnR1YWwgdm9pZCBwYWludF90YXJnZXQgKCk7 CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBhaW50X3RhcmdldCAoQ2x1dHRlci5QYWludENvbnRl eHQgcGFpbnRfY29udGV4dCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BhZ2VfdHVybl9lZmZlY3RfZ2V0 X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorQEAgLTY2NDUsNiArNjQ0 OSwxNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZG91YmxlIHBlcmlvZCB7IGdl dDsgc2V0OyB9CisgCQlwdWJsaWMgZmxvYXQgcmFkaXVzIHsgZ2V0OyBzZXQ7IH0KKyAJfQorKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCByZWZfZnVuY3Rp b24gPSAiY2x1dHRlcl9wYWludF9jb250ZXh0X3JlZiIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYWlu dF9jb250ZXh0X2dldF90eXBlICgpIiwgdW5yZWZfZnVuY3Rpb24gPSAiY2x1dHRlcl9wYWludF9j b250ZXh0X3VucmVmIildCisrCVtDb21wYWN0XQorKwlwdWJsaWMgY2xhc3MgUGFpbnRDb250ZXh0 IHsKKysJCXB1YmxpYyB2b2lkIGRlc3Ryb3kgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBDb2dsLkZy YW1lYnVmZmVyIGdldF9mcmFtZWJ1ZmZlciAoKTsKKysJCXB1YmxpYyB2b2lkIHBvcF9mcmFtZWJ1 ZmZlciAoKTsKKysJCXB1YmxpYyB2b2lkIHB1c2hfZnJhbWVidWZmZXIgKENvZ2wuRnJhbWVidWZm ZXIgZnJhbWVidWZmZXIpOworKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5QYWludENvbnRleHQg QHJlZiAoKTsKKysJCXB1YmxpYyB2b2lkIHVucmVmICgpOworKwl9CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYWlu dF9ub2RlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1 YmxpYyBhYnN0cmFjdCBjbGFzcyBQYWludE5vZGUgeworQEAgLTY2NTQsNyArNjQ2OCw4IEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIGFkZF9tdWx0aXRleHR1cmVfcmVjdGFu Z2xlIChDbHV0dGVyLkFjdG9yQm94IHJlY3QsIGZsb2F0IHRleHRfY29vcmRzLCB1aW50IHRleHRf Y29vcmRzX2xlbik7CisgCQlwdWJsaWMgdm9pZCBhZGRfcmVjdGFuZ2xlIChDbHV0dGVyLkFjdG9y Qm94IHJlY3QpOworIAkJcHVibGljIHZvaWQgYWRkX3RleHR1cmVfcmVjdGFuZ2xlIChDbHV0dGVy LkFjdG9yQm94IHJlY3QsIGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlf Mik7CistCQlwdWJsaWMgdm9pZCBwYWludCAoKTsKKysJCXB1YmxpYyB1bm93bmVkIENvZ2wuRnJh bWVidWZmZXIgZ2V0X2ZyYW1lYnVmZmVyICgpOworKwkJcHVibGljIHZvaWQgcGFpbnQgKENsdXR0 ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworIAkJcHVibGljIHVub3duZWQgQ2x1dHRl ci5QYWludE5vZGUgQHJlZiAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9uYW1lIChzdHJpbmcgbmFt ZSk7CisgCQlwdWJsaWMgdm9pZCB1bnJlZiAoKTsKK0BAIC02NjcyLDcgKzY0ODcsNyBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMg ZmxvYXQgZ2V0X2hlaWdodCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1 YmxpYyBDbHV0dGVyLlZlcnRleCBnZXRfb3JpZ2luICgpOworKwkJcHVibGljIHZvaWQgZ2V0X29y aWdpbiAob3V0IHVub3duZWQgR3JhcGhlbmUuUG9pbnQzRCB2ZXJ0ZXgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIGZsb2F0IGdldF93aWR0aCAoKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjYiKV0KK0BAIC02NjgyLDcgKzY0OTcsNyBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgdm9pZCBzZXRf aGVpZ2h0IChmbG9hdCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJ cHVibGljIHZvaWQgc2V0X29yaWdpbiAoQ2x1dHRlci5WZXJ0ZXggb3JpZ2luKTsKKysJCXB1Ymxp YyB2b2lkIHNldF9vcmlnaW4gKEdyYXBoZW5lLlBvaW50M0Qgb3JpZ2luKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF93aWR0aCAoZmxvYXQgd2lkdGgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTY3NjksMjYgKzY1ODQsMTkgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIENsdXR0ZXIuUGF0aCBwYXRoIHsgZ2V0OyBz ZXQ7IH0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBub2RlX3JlYWNoZWQgKENsdXR0ZXIuQWN0b3Ig YWN0b3IsIHVpbnQgaW5kZXgpOworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIHJlZl9mdW5jdGlvbiA9ICJjbHV0dGVyX3BpY2tfY29udGV4dF9y ZWYiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGlja19jb250ZXh0X2dldF90eXBlICgpIiwgdW5yZWZf ZnVuY3Rpb24gPSAiY2x1dHRlcl9waWNrX2NvbnRleHRfdW5yZWYiKV0KKysJW0NvbXBhY3RdCisr CXB1YmxpYyBjbGFzcyBQaWNrQ29udGV4dCB7CisrCQlwdWJsaWMgdm9pZCBkZXN0cm95ICgpOwor KwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5QaWNrQ29udGV4dCBAcmVmICgpOworKwkJcHVibGlj IHZvaWQgdW5yZWYgKCk7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BpcGVsaW5lX25vZGVfZ2V0X3R5cGUg KCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGNsYXNzIFBpcGVs aW5lTm9kZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9m dW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBQaXBlbGluZU5vZGUgKCk7CisgCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5j dGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5 cGVfaWQgPSAiY2x1dHRlcl9wb2ludF9nZXRfdHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JW1Zl cnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JcHVibGljIGNsYXNzIFBvaW50IHsKKy0JCXB1Ymxp YyBmbG9hdCB4OworLQkJcHVibGljIGZsb2F0IHk7CistCQlwdWJsaWMgc3RhdGljIENsdXR0ZXIu UG9pbnQgYWxsb2MgKCk7CistCQlwdWJsaWMgQ2x1dHRlci5Qb2ludCBjb3B5ICgpOworLQkJcHVi bGljIGZsb2F0IGRpc3RhbmNlIChDbHV0dGVyLlBvaW50IGIsIG91dCBmbG9hdCB4X2Rpc3RhbmNl LCBvdXQgZmxvYXQgeV9kaXN0YW5jZSk7CistCQlwdWJsaWMgYm9vbCBlcXVhbHMgKENsdXR0ZXIu UG9pbnQgYik7CistCQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1 dHRlci5Qb2ludCBpbml0IChmbG9hdCB4LCBmbG9hdCB5KTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5v d25lZCBDbHV0dGVyLlBvaW50IHplcm8gKCk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3Byb3BlcnR5X3Ry YW5zaXRpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJ cHVibGljIGNsYXNzIFByb3BlcnR5VHJhbnNpdGlvbiA6IENsdXR0ZXIuVHJhbnNpdGlvbiwgQ2x1 dHRlci5TY3JpcHRhYmxlIHsKK0BAIC02Nzk4LDMzICs2NjA2LDYgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJcHVibGljIHZvaWQgc2V0X3Byb3BlcnR5X25hbWUgKHN0cmluZz8gcHJvcGVydHlf bmFtZSk7CisgCQlwdWJsaWMgc3RyaW5nIHByb3BlcnR5X25hbWUgeyBnZXQ7IHNldDsgfQorIAl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlf ZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUi LCB0eXBlX2lkID0gImNsdXR0ZXJfcmVjdF9nZXRfdHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0J W1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JcHVibGljIGNsYXNzIFJlY3QgeworLQkJcHVi bGljIHdlYWsgQ2x1dHRlci5Qb2ludCBvcmlnaW47CistCQlwdWJsaWMgd2VhayBDbHV0dGVyLlNp emUgc2l6ZTsKKy0JCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5SZWN0IGFsbG9jICgpOworLQkJcHVi bGljIHZvaWQgY2xhbXBfdG9fcGl4ZWwgKCk7CistCQlwdWJsaWMgYm9vbCBjb250YWluc19wb2lu dCAoQ2x1dHRlci5Qb2ludCBwb2ludCk7CistCQlwdWJsaWMgYm9vbCBjb250YWluc19yZWN0IChD bHV0dGVyLlJlY3QgYik7CistCQlwdWJsaWMgQ2x1dHRlci5SZWN0IGNvcHkgKCk7CistCQlwdWJs aWMgYm9vbCBlcXVhbHMgKENsdXR0ZXIuUmVjdCBiKTsKKy0JCXB1YmxpYyB2b2lkIGZyZWUgKCk7 CistCQlwdWJsaWMgdm9pZCBnZXRfY2VudGVyIChDbHV0dGVyLlBvaW50IGNlbnRlcik7CistCQlw dWJsaWMgZmxvYXQgZ2V0X2hlaWdodCAoKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfd2lkdGggKCk7 CistCQlwdWJsaWMgZmxvYXQgZ2V0X3ggKCk7CistCQlwdWJsaWMgZmxvYXQgZ2V0X3kgKCk7Cist CQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlJlY3QgaW5pdCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxv YXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7CistCQlwdWJsaWMgdm9pZCBpbnNldCAoZmxvYXQgZF94 LCBmbG9hdCBkX3kpOworLQkJcHVibGljIGJvb2wgaW50ZXJzZWN0aW9uIChDbHV0dGVyLlJlY3Qg YiwgQ2x1dHRlci5SZWN0PyByZXMpOworLQkJcHVibGljIENsdXR0ZXIuUmVjdCBub3JtYWxpemUg KCk7CistCQlwdWJsaWMgdm9pZCBvZmZzZXQgKGZsb2F0IGRfeCwgZmxvYXQgZF95KTsKKy0JCXB1 YmxpYyB2b2lkIHNjYWxlIChmbG9hdCBzX3gsIGZsb2F0IHNfeSk7CistCQlwdWJsaWMgdm9pZCB1 bmlvbiAoQ2x1dHRlci5SZWN0IGIsIENsdXR0ZXIuUmVjdCByZXMpOworLQkJcHVibGljIHN0YXRp YyB1bm93bmVkIENsdXR0ZXIuUmVjdCB6ZXJvICgpOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9yZWN0YW5n bGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAlwdWJsaWMg Y2xhc3MgUmVjdGFuZ2xlIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVy LkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworQEAg LTY5MDcsOCArNjY4OCw4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKyAJCXB1 YmxpYyBTY3JvbGxBY3RvciAoKTsKKyAJCXB1YmxpYyBDbHV0dGVyLlNjcm9sbE1vZGUgZ2V0X3Nj cm9sbF9tb2RlICgpOworLQkJcHVibGljIHZvaWQgc2Nyb2xsX3RvX3BvaW50IChDbHV0dGVyLlBv aW50IHBvaW50KTsKKy0JCXB1YmxpYyB2b2lkIHNjcm9sbF90b19yZWN0IChDbHV0dGVyLlJlY3Qg cmVjdCk7CisrCQlwdWJsaWMgdm9pZCBzY3JvbGxfdG9fcG9pbnQgKEdyYXBoZW5lLlBvaW50IHBv aW50KTsKKysJCXB1YmxpYyB2b2lkIHNjcm9sbF90b19yZWN0IChHcmFwaGVuZS5SZWN0IHJlY3Qp OworIAkJcHVibGljIHZvaWQgc2V0X3Njcm9sbF9tb2RlIChDbHV0dGVyLlNjcm9sbE1vZGUgbW9k ZSk7CisgCQlwdWJsaWMgQ2x1dHRlci5TY3JvbGxNb2RlIHNjcm9sbF9tb2RlIHsgZ2V0OyBzZXQ7 IH0KKyAJfQorQEAgLTY5MzAsNiArNjcxMSw0NCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlw dWJsaWMgZmxvYXQgeDsKKyAJCXB1YmxpYyBmbG9hdCB5OworIAl9CisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zZWF0 X2dldF90eXBlICgpIildCisrCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBTZWF0IDogR0xpYi5PYmpl Y3QgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHJv dGVjdGVkIFNlYXQgKCk7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZpcnR1YWwgdm9pZCBh cHBseV9rYmRfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5LYmRBMTF5U2V0dGluZ3Mgc2V0dGluZ3Mp OworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBiZWxsX25vdGlmeSAoKTsKKysJCXB1YmxpYyB2aXJ0 dWFsIHZvaWQgY29tcHJlc3NfbW90aW9uIChDbHV0dGVyLkV2ZW50IGV2ZW50LCBDbHV0dGVyLkV2 ZW50IHRvX2Rpc2NhcmQpOworKwkJW05vV3JhcHBlcl0KKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQg Y29weV9ldmVudF9kYXRhIChDbHV0dGVyLkV2ZW50IHNyYywgQ2x1dHRlci5FdmVudCBkZXN0KTsK KysJCXB1YmxpYyB2aXJ0dWFsIENsdXR0ZXIuVmlydHVhbElucHV0RGV2aWNlIGNyZWF0ZV92aXJ0 dWFsX2RldmljZSAoQ2x1dHRlci5JbnB1dERldmljZVR5cGUgZGV2aWNlX3R5cGUpOworKwkJcHVi bGljIHZvaWQgZW5zdXJlX2ExMXlfc3RhdGUgKCk7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGlj IHZpcnR1YWwgdm9pZCBmcmVlX2V2ZW50X2RhdGEgKENsdXR0ZXIuRXZlbnQgZXZlbnQpOworKwkJ cHVibGljIHZvaWQgZ2V0X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVyLktiZEExMXlTZXR0aW5n cyBzZXR0aW5ncyk7CisrCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuSW5wdXREZXZp Y2UgZ2V0X2tleWJvYXJkICgpOworKwkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLktl eW1hcCBnZXRfa2V5bWFwICgpOworKwkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLklu cHV0RGV2aWNlIGdldF9wb2ludGVyICgpOworKwkJcHVibGljIHZvaWQgZ2V0X3BvaW50ZXJfYTEx eV9zZXR0aW5ncyAoQ2x1dHRlci5Qb2ludGVyQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKysJCXB1 YmxpYyB2aXJ0dWFsIENsdXR0ZXIuVmlydHVhbERldmljZVR5cGUgZ2V0X3N1cHBvcnRlZF92aXJ0 dWFsX2RldmljZV90eXBlcyAoKTsKKysJCXB1YmxpYyBib29sIGdldF90b3VjaF9tb2RlICgpOwor KwkJcHVibGljIHZpcnR1YWwgR0xpYi5MaXN0PHdlYWsgQ2x1dHRlci5JbnB1dERldmljZT4gbGlz dF9kZXZpY2VzICgpOworKwkJcHVibGljIHZvaWQgc2V0X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0 dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CisrCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRl cl9hMTF5X2R3ZWxsX2NsaWNrX3R5cGUgKENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbENsaWNrVHlw ZSBjbGlja190eXBlKTsKKysJCXB1YmxpYyB2b2lkIHNldF9wb2ludGVyX2ExMXlfc2V0dGluZ3Mg KENsdXR0ZXIuUG9pbnRlckExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CisrCQlwdWJsaWMgdmlydHVh bCB2b2lkIHdhcnBfcG9pbnRlciAoaW50IHgsIGludCB5KTsKKysJCVtOb0FjY2Vzc29yTWV0aG9k XQorKwkJcHVibGljIENsdXR0ZXIuQmFja2VuZCBiYWNrZW5kIHsgb3duZWQgZ2V0OyBjb25zdHJ1 Y3Q7IH0KKysJCXB1YmxpYyBib29sIHRvdWNoX21vZGUgeyBnZXQ7IH0KKysJCXB1YmxpYyBzaWdu YWwgdm9pZCBkZXZpY2VfYWRkZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0KTsKKysJCXB1 YmxpYyBzaWduYWwgdm9pZCBkZXZpY2VfcmVtb3ZlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvYmpl Y3QpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGtiZF9hMTF5X2ZsYWdzX2NoYW5nZWQgKHVpbnQg c2V0dGluZ3NfZmxhZ3MsIHVpbnQgY2hhbmdlZF9tYXNrKTsKKysJCXB1YmxpYyBzaWduYWwgdm9p ZCBrYmRfYTExeV9tb2RzX3N0YXRlX2NoYW5nZWQgKHVpbnQgbGF0Y2hlZF9tYXNrLCB1aW50IGxv Y2tlZF9tYXNrKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBwdHJfYTExeV9kd2VsbF9jbGlja190 eXBlX2NoYW5nZWQgKENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbENsaWNrVHlwZSBjbGlja190eXBl KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBwdHJfYTExeV90aW1lb3V0X3N0YXJ0ZWQgKENsdXR0 ZXIuSW5wdXREZXZpY2UgZGV2aWNlLCBDbHV0dGVyLlBvaW50ZXJBMTF5VGltZW91dFR5cGUgdGlt ZW91dF90eXBlLCB1aW50IGRlbGF5KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBwdHJfYTExeV90 aW1lb3V0X3N0b3BwZWQgKENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlLCBDbHV0dGVyLlBvaW50 ZXJBMTF5VGltZW91dFR5cGUgdGltZW91dF90eXBlLCBib29sIGNsaWNrZWQpOworKwkJcHVibGlj IHNpZ25hbCB2b2lkIHRvb2xfY2hhbmdlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvYmplY3QsIENs dXR0ZXIuSW5wdXREZXZpY2VUb29sIHAwKTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfc2V0dGluZ3NfZ2V0 X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAlwdWJsaWMgY2xhc3Mg U2V0dGluZ3MgOiBHTGliLk9iamVjdCB7CitAQCAtNzAwMiwxOCArNjgyMSw2IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0K KyAJCXByb3RlY3RlZCBTaGFkZXJNYXRyaXggKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2Nv cHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9z aXplX2dldF90eXBlICgpIildCistCVtDb21wYWN0XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MiIpXQorLQlwdWJsaWMgY2xhc3MgU2l6ZSB7CistCQlwdWJsaWMgZmxvYXQgaGVpZ2h0OworLQkJ cHVibGljIGZsb2F0IHdpZHRoOworLQkJcHVibGljIHN0YXRpYyBDbHV0dGVyLlNpemUgYWxsb2Mg KCk7CistCQlwdWJsaWMgQ2x1dHRlci5TaXplIGNvcHkgKCk7CistCQlwdWJsaWMgYm9vbCBlcXVh bHMgKENsdXR0ZXIuU2l6ZSBiKTsKKy0JCXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlwdWJsaWMg dW5vd25lZCBDbHV0dGVyLlNpemUgaW5pdCAoZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7Cist CX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlw ZV9pZCA9ICJjbHV0dGVyX3NuYXBfY29uc3RyYWludF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lv biAoc2luY2UgPSAiMS42IildCisgCXB1YmxpYyBjbGFzcyBTbmFwQ29uc3RyYWludCA6IENsdXR0 ZXIuQ29uc3RyYWludCB7CitAQCAtNzA1MiwxNCArNjg1OSwxMiBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlwdWJsaWMgdm9pZCBmcmVlemVfdXBkYXRlcyAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBib29sIGdldF9hY2NlcHRfZm9jdXMgKCk7CistCQlwdWJs aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9hY3Rvcl9hdF9wb3MgKENsdXR0ZXIuUGlja01v ZGUgcGlja19tb2RlLCBpbnQgeCwgaW50IHkpOworKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5B Y3RvciBnZXRfYWN0b3JfYXRfcG9zIChDbHV0dGVyLlBpY2tNb2RlIHBpY2tfbW9kZSwgZmxvYXQg eCwgZmxvYXQgeSk7CisgCQlwdWJsaWMgYm9vbCBnZXRfY2FwdHVyZV9maW5hbF9zaXplIChDYWly by5SZWN0YW5nbGVJbnQgcmVjdCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBmbG9hdCBzY2FsZSk7 CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIpXQorIAkJcHVibGljIENsdXR0ZXIuQ29sb3IgZ2V0X2NvbG9yICgpOworIAkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKyAJCXB1Ymxp YyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLlN0YWdlIGdldF9kZWZhdWx0ICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9 ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkZvZyBnZXRfZm9nICgpOworIAkJcHVibGljIGlu dDY0IGdldF9mcmFtZV9jb3VudGVyICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQor IAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfa2V5X2ZvY3VzICgpOworQEAgLTcw NjcsMTkgKzY4NzIsMTQgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgZ2V0 X21pbmltdW1fc2l6ZSAob3V0IHVpbnQgd2lkdGgsIG91dCB1aW50IGhlaWdodCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgYm9vbCBnZXRfbW90aW9uX2V2ZW50c19l bmFibGVkICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGJvb2wg Z2V0X25vX2NsZWFyX2hpbnQgKCk7CisgCQlwdWJsaWMgQ2x1dHRlci5QZXJzcGVjdGl2ZSBnZXRf cGVyc3BlY3RpdmUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMg Q2Fpcm8uUmVjdGFuZ2xlSW50IGdldF9yZWRyYXdfY2xpcF9ib3VuZHMgKCk7CisrCQlwdWJsaWMg Q2Fpcm8uUmVnaW9uIGdldF9yZWRyYXdfY2xpcCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKyAJCXB1YmxpYyBib29sIGdldF90aHJvdHRsZV9tb3Rpb25fZXZlbnRzICgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF90 aXRsZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBib29sIGdl dF91c2VfYWxwaGEgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3Vz ZV9mb2cgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisgCQlwdWJsaWMgdm9pZCBo aWRlX2N1cnNvciAoKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44IildCitAQCAtNzA5NCwxNiArNjg5NCwxMiBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBzZXRfYWNjZXB0X2ZvY3VzIChi b29sIGFjY2VwdF9mb2N1cyk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2NvbG9yIChDbHV0dGVy LkNvbG9yIGNvbG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBzZXRfZm9n IChDbHV0dGVyLkZvZyBmb2cpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVi bGljIHZvaWQgc2V0X2tleV9mb2N1cyAoQ2x1dHRlci5BY3Rvcj8gYWN0b3IpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIHZvaWQgc2V0X21pbmltdW1fc2l6ZSAodWlu dCB3aWR0aCwgdWludCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJ cHVibGljIHZvaWQgc2V0X21vdGlvbl9ldmVudHNfZW5hYmxlZCAoYm9vbCBlbmFibGVkKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ub19jbGVhcl9o aW50IChib29sIG5vX2NsZWFyKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9wZXJzcGVjdGl2ZSAoQ2x1 dHRlci5QZXJzcGVjdGl2ZSBwZXJzcGVjdGl2ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisgCQlwdWJsaWMgdm9pZCBzZXRfdGhyb3R0bGVfbW90aW9uX2V2ZW50cyAoYm9vbCB0aHJv dHRsZSk7CitAQCAtNzExMSw4ICs2OTA3LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVi bGljIHZvaWQgc2V0X3RpdGxlIChzdHJpbmcgdGl0bGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMiIpXQorIAkJcHVibGljIHZvaWQgc2V0X3VzZV9hbHBoYSAoYm9vbCB1c2VfYWxwaGEpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi LCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91c2VfZm9nIChib29sIGZvZyk7 CisgCQlwdWJsaWMgdm9pZCBzaG93X2N1cnNvciAoKTsKKyAJCXB1YmxpYyB2b2lkIHRoYXdfdXBk YXRlcyAoKTsKKyAJCXB1YmxpYyB2b2lkIHVwZGF0ZV9yZXNvdXJjZV9zY2FsZXMgKCk7CitAQCAt NzEyMiwyMCArNjkxNiwxNCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRl ci5Db2xvciBjb2xvciB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCXB1 YmxpYyBib29sIGN1cnNvcl92aXNpYmxlIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgQ2x1dHRlci5Gb2cgZm9nIHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkFjdG9yIGtleV9mb2N1cyB7IGdldDsg c2V0OyB9CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCBub19j bGVhcl9oaW50IHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJ CXB1YmxpYyBDbHV0dGVyLlBlcnNwZWN0aXZlIHBlcnNwZWN0aXZlIHsgZ2V0OyBzZXQ7IH0KKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyBzdHJpbmcgdGl0bGUgeyBnZXQ7 IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIGJvb2wgdXNl X2FscGhhIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgYm9vbCB1 c2VfZm9nIHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1 YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGFjdGl2YXRlICgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMjAiKV0KK0BAIC03MTU4LDggKzY5NDYsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgR0xpYi5TTGlzdDx3ZWFrIENs dXR0ZXIuU3RhZ2U+IGxpc3Rfc3RhZ2VzICgpOworIAkJcHVibGljIHVub3duZWQgR0xpYi5TTGlz dDxDbHV0dGVyLlN0YWdlPiBwZWVrX3N0YWdlcyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9kZWZhdWx0X3N0YWdlIChDbHV0dGVyLlN0YWdlIHN0YWdlKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLlN0YWdlIGRlZmF1bHRf c3RhZ2UgeyBnZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KK0BAIC03MjA2LDE2 ICs2OTkyLDEwIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCisgCQlw dWJsaWMgdWludCBnZXRfZHVyYXRpb24gKHN0cmluZz8gc291cmNlX3N0YXRlX25hbWUsIHN0cmlu Zz8gdGFyZ2V0X3N0YXRlX25hbWUpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBHTGli Lkxpc3Q8d2VhayBDbHV0dGVyLlN0YXRlS2V5PiBnZXRfa2V5cyAoc3RyaW5nPyBzb3VyY2Vfc3Rh dGVfbmFtZSwgc3RyaW5nPyB0YXJnZXRfc3RhdGVfbmFtZSwgR0xpYi5PYmplY3Q/IG9iamVjdCwg c3RyaW5nPyBwcm9wZXJ0eV9uYW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdW5v d25lZCBzdHJpbmcgZ2V0X3N0YXRlICgpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBH TGliLkxpc3Q8d2VhayBzdHJpbmc+IGdldF9zdGF0ZXMgKCk7CisgCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQor LQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5UaW1lbGluZSBnZXRfdGltZWxpbmUgKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX2tleSAoc3RyaW5nPyBzb3VyY2Vf c3RhdGVfbmFtZSwgc3RyaW5nPyB0YXJnZXRfc3RhdGVfbmFtZSwgR0xpYi5PYmplY3Q/IG9iamVj dCwgc3RyaW5nPyBwcm9wZXJ0eV9uYW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMg dm9pZCBzZXRfZHVyYXRpb24gKHN0cmluZz8gc291cmNlX3N0YXRlX25hbWUsIHN0cmluZz8gdGFy Z2V0X3N0YXRlX25hbWUsIHVpbnQgZHVyYXRpb24pOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKyAJCXB1 YmxpYyB1bm93bmVkIENsdXR0ZXIuU3RhdGUgc2V0X2tleSAoc3RyaW5nPyBzb3VyY2Vfc3RhdGVf bmFtZSwgc3RyaW5nIHRhcmdldF9zdGF0ZV9uYW1lLCBHTGliLk9iamVjdCBvYmplY3QsIHN0cmlu ZyBwcm9wZXJ0eV9uYW1lLCB1aW50IG1vZGUsIEdMaWIuVmFsdWUgdmFsdWUsIGRvdWJsZSBwcmVf ZGVsYXksIGRvdWJsZSBwb3N0X2RlbGF5KTsKK0BAIC03MjM2LDI0ICs3MDE2LDggQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAlbQ29tcGFjdF0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQor IAlwdWJsaWMgY2xhc3MgU3RhdGVLZXkgeworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1 bG9uZyBnZXRfbW9kZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBH TGliLk9iamVjdCBnZXRfb2JqZWN0ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBk b3VibGUgZ2V0X3Bvc3RfZGVsYXkgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGRv dWJsZSBnZXRfcHJlX2RlbGF5ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93 bmVkIHN0cmluZyBnZXRfcHJvcGVydHlfbmFtZSAoKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCisgCQlw dWJsaWMgR0xpYi5UeXBlIGdldF9wcm9wZXJ0eV90eXBlICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0K Ky0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfc291cmNlX3N0YXRlX25hbWUgKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF90YXJnZXRfc3RhdGVf bmFtZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCBnZXRfdmFsdWUgKEdM aWIuVmFsdWUgdmFsdWUpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zd2lwZV9hY3Rpb25fZ2V0X3R5cGUg KCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorQEAgLTcyNjUsNTMgKzcwMjksNiBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorIAkJ cHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgc3dpcGUgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENs dXR0ZXIuU3dpcGVEaXJlY3Rpb24gZGlyZWN0aW9uKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdGFibGVf bGF5b3V0X2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMS40IildCistCXB1YmxpYyBjbGFzcyBU YWJsZUxheW91dCA6IENsdXR0ZXIuTGF5b3V0TWFuYWdlciB7CistCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyTGF5b3V0TWFuYWdlcioiKV0K Ky0JCXB1YmxpYyBUYWJsZUxheW91dCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMg dm9pZCBnZXRfYWxpZ25tZW50IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQgQ2x1dHRlci5UYWJs ZUFsaWdubWVudCB4X2FsaWduLCBvdXQgQ2x1dHRlci5UYWJsZUFsaWdubWVudCB5X2FsaWduKTsK Ky0JCXB1YmxpYyBpbnQgZ2V0X2NvbHVtbl9jb3VudCAoKTsKKy0JCXB1YmxpYyB1aW50IGdldF9j b2x1bW5fc3BhY2luZyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdWludCBnZXRf ZWFzaW5nX2R1cmF0aW9uICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bG9uZyBn ZXRfZWFzaW5nX21vZGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgZ2V0 X2V4cGFuZCAoQ2x1dHRlci5BY3RvciBhY3Rvciwgb3V0IGJvb2wgeF9leHBhbmQsIG91dCBib29s IHlfZXhwYW5kKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBnZXRfZmlsbCAo Q2x1dHRlci5BY3RvciBhY3Rvciwgb3V0IGJvb2wgeF9maWxsLCBvdXQgYm9vbCB5X2ZpbGwpOwor LQkJcHVibGljIGludCBnZXRfcm93X2NvdW50ICgpOworLQkJcHVibGljIHVpbnQgZ2V0X3Jvd19z cGFjaW5nICgpOworLQkJcHVibGljIHZvaWQgZ2V0X3NwYW4gKENsdXR0ZXIuQWN0b3IgYWN0b3Is IG91dCBpbnQgY29sdW1uX3NwYW4sIG91dCBpbnQgcm93X3NwYW4pOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQi KV0KKy0JCXB1YmxpYyBib29sIGdldF91c2VfYW5pbWF0aW9ucyAoKTsKKy0JCXB1YmxpYyB2b2lk IHBhY2sgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGludCBjb2x1bW4sIGludCByb3cpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbGlnbm1lbnQgKENsdXR0ZXIuQWN0b3Ig YWN0b3IsIENsdXR0ZXIuVGFibGVBbGlnbm1lbnQgeF9hbGlnbiwgQ2x1dHRlci5UYWJsZUFsaWdu bWVudCB5X2FsaWduKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9jb2x1bW5fc3BhY2luZyAodWludCBz cGFjaW5nKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfZWFzaW5nX2R1 cmF0aW9uICh1aW50IG1zZWNzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBz ZXRfZWFzaW5nX21vZGUgKHVsb25nIG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9leHBhbmQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGJvb2wgeF9leHBhbmQsIGJv b2wgeV9leHBhbmQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9maWxs IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBib29sIHhfZmlsbCwgYm9vbCB5X2ZpbGwpOworLQkJcHVi bGljIHZvaWQgc2V0X3Jvd19zcGFjaW5nICh1aW50IHNwYWNpbmcpOworLQkJcHVibGljIHZvaWQg c2V0X3NwYW4gKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGludCBjb2x1bW5fc3BhbiwgaW50IHJvd19z cGFuKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfdXNlX2FuaW1hdGlv bnMgKGJvb2wgYW5pbWF0ZSk7CistCQlwdWJsaWMgdWludCBjb2x1bW5fc3BhY2luZyB7IGdldDsg c2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVpbnQgZWFzaW5nX2R1cmF0aW9u IHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdWxvbmcgZWFzaW5n X21vZGUgeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIHVpbnQgcm93X3NwYWNpbmcgeyBnZXQ7IHNl dDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIHVzZV9hbmltYXRpb25zIHsg Z2V0OyBzZXQ7IH0KKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdGFwX2FjdGlvbl9nZXRfdHlwZSAoKSIpXQor IAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorIAlwdWJsaWMgY2xhc3MgVGFwQWN0aW9uIDog Q2x1dHRlci5HZXN0dXJlQWN0aW9uIHsKK0BAIC03MzM5LDcgKzcwNTYsNyBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBnZXRfY3Vyc29yX2NvbG9yICgpOwor IAkJcHVibGljIGludCBnZXRfY3Vyc29yX3Bvc2l0aW9uICgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9jdXJzb3JfcmVjdCAob3V0IHVub3duZWQg Q2x1dHRlci5SZWN0IHJlY3QpOworKwkJcHVibGljIHZvaWQgZ2V0X2N1cnNvcl9yZWN0IChvdXQg dW5vd25lZCBHcmFwaGVuZS5SZWN0IHJlY3QpOworIAkJcHVibGljIHVpbnQgZ2V0X2N1cnNvcl9z aXplICgpOworIAkJcHVibGljIGJvb2wgZ2V0X2N1cnNvcl92aXNpYmxlICgpOworIAkJcHVibGlj IGJvb2wgZ2V0X2VkaXRhYmxlICgpOworQEAgLTc0NTgsNyArNzE3NSw3IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCisgCQlwdWJsaWMgdmlydHVh bCBzaWduYWwgdm9pZCBjdXJzb3JfY2hhbmdlZCAoKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBjdXJzb3JfZXZlbnQgKENsdXR0ZXIuR2VvbWV0cnkg Z2VvbWV0cnkpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgY3Vyc29yX2V2ZW50IChH cmFwaGVuZS5SZWN0IHJlY3QpOworIAkJW0hhc0VtaXR0ZXJdCisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4yIildCisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGVsZXRlX3RleHQgKGludCBzdGFydF9w b3MsIGludCBlbmRfcG9zKTsKK0BAIC03NDk3LDkyICs3MjE0LDkgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJcHVibGljIFRleHROb2RlIChQYW5nby5MYXlvdXQ/IGxheW91dCwgQ2x1dHRlci5D b2xvcj8gY29sb3IpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl90ZXh0dXJlX2dldF90eXBlICgpIildCist CVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGNsYXNzIFRleHR1cmUgOiBDbHV0 dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5D b250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3Rf ZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGlj IFRleHR1cmUgKCk7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwg dHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgVGV4 dHVyZS5mcm9tX2FjdG9yIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMC44IildCistCQlwdWJsaWMgVGV4dHVyZS5mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFt ZSkgdGhyb3dzIENsdXR0ZXIuVGV4dHVyZUVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9i YXNlX3NpemUgKG91dCBpbnQgd2lkdGgsIG91dCBpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4w IildCistCQlwdWJsaWMgdW5vd25lZCBDb2dsLkhhbmRsZSBnZXRfY29nbF9tYXRlcmlhbCAoKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdW5vd25lZCBDb2dsLkhhbmRsZSBnZXRfY29n bF90ZXh0dXJlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlRleHR1 cmVRdWFsaXR5IGdldF9maWx0ZXJfcXVhbGl0eSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgYm9vbCBnZXRfa2VlcF9hc3BlY3RfcmF0aW8gKCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIGJvb2wgZ2V0X2xvYWRfYXN5bmMgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIGJvb2wgZ2V0X2xvYWRfZGF0YV9hc3luYyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCist CQlwdWJsaWMgaW50IGdldF9tYXhfdGlsZV93YXN0ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCist CQlwdWJsaWMgYm9vbCBnZXRfcGlja193aXRoX2FscGhhICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyB2b2lkIGdldF9yZXBlYXQgKG91dCBib29sIHJlcGVhdF94LCBvdXQgYm9vbCBy ZXBlYXRfeSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3N5bmNfc2l6 ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgYm9vbCBzZXRfYXJlYV9mcm9tX3Jn Yl9kYXRhIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gdWludDhbXSBkYXRhLCBib29s IGhhc19hbHBoYSwgaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIGludCByb3dz dHJpZGUsIGludCBicHAsIENsdXR0ZXIuVGV4dHVyZUZsYWdzIGZsYWdzKSB0aHJvd3MgR0xpYi5F cnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdm9pZCBzZXRfY29nbF9tYXRlcmlh bCAoQ29nbC5IYW5kbGUgY29nbF9tYXRlcmlhbCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVi bGljIHZvaWQgc2V0X2NvZ2xfdGV4dHVyZSAoQ29nbC5IYW5kbGUgY29nbF90ZXgpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9maWx0ZXJfcXVhbGl0eSAoQ2x1dHRlci5U ZXh0dXJlUXVhbGl0eSBmaWx0ZXJfcXVhbGl0eSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVi bGljIGJvb2wgc2V0X2Zyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lKSB0aHJvd3MgR0xpYi5FcnJv cjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgYm9vbCBzZXRfZnJvbV9yZ2JfZGF0YSAo W0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHVpbnQ4W10gZGF0YSwgYm9vbCBoYXNfYWxw aGEsIGludCB3aWR0aCwgaW50IGhlaWdodCwgaW50IHJvd3N0cmlkZSwgaW50IGJwcCwgQ2x1dHRl ci5UZXh0dXJlRmxhZ3MgZmxhZ3MpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQi KV0KKy0JCXB1YmxpYyBib29sIHNldF9mcm9tX3l1dl9kYXRhIChbQ0NvZGUgKGFycmF5X2xlbmd0 aCA9IGZhbHNlKV0gdWludDhbXSBkYXRhLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIENsdXR0ZXIu VGV4dHVyZUZsYWdzIGZsYWdzKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgdm9pZCBzZXRfa2VlcF9hc3BlY3RfcmF0aW8gKGJvb2wga2VlcF9hc3BlY3Qp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sb2FkX2FzeW5jIChib29s IGxvYWRfYXN5bmMpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sb2Fk X2RhdGFfYXN5bmMgKGJvb2wgbG9hZF9hc3luYyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVi bGljIHZvaWQgc2V0X3BpY2tfd2l0aF9hbHBoYSAoYm9vbCBwaWNrX3dpdGhfYWxwaGEpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9yZXBlYXQgKGJvb2wgcmVwZWF0X3gs IGJvb2wgcmVwZWF0X3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9z eW5jX3NpemUgKGJvb2wgc3luY19zaXplKTsKKysJcHVibGljIGNsYXNzIFRleHR1cmUgOiBDbHV0 dGVyLkFjdG9yIHsKKyAJCXB1YmxpYyBDb2dsLk1hdGVyaWFsIGNvZ2xfbWF0ZXJpYWwgeyBnZXQ7 IHNldDsgfQorIAkJcHVibGljIENvZ2wuVGV4dHVyZSBjb2dsX3RleHR1cmUgeyBnZXQ7IHNldDsg fQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBkaXNhYmxlX3NsaWNpbmcg eyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGlj IHN0cmluZyBmaWxlbmFtZSB7IG93bmVkIGdldDsgc2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5U ZXh0dXJlUXVhbGl0eSBmaWx0ZXJfcXVhbGl0eSB7IGdldDsgc2V0IGNvbnN0cnVjdDsgfQorLQkJ cHVibGljIGJvb2wga2VlcF9hc3BlY3RfcmF0aW8geyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjAiKV0KKy0JCXB1YmxpYyBib29sIGxvYWRfYXN5bmMgeyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4w IildCistCQlwdWJsaWMgYm9vbCBsb2FkX2RhdGFfYXN5bmMgeyBzZXQ7IH0KKy0JCXB1YmxpYyBi b29sIHBpY2tfd2l0aF9hbHBoYSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0K Ky0JCXB1YmxpYyBib29sIHJlcGVhdF94IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0 aG9kXQorLQkJcHVibGljIGJvb2wgcmVwZWF0X3kgeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIGJv b2wgc3luY19zaXplIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVi bGljIGludCB0aWxlX3dhc3RlIHsgZ2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IHZpcnR1YWwgc2lnbmFsIHZvaWQgbG9hZF9maW5pc2hlZCAoR0xpYi5FcnJvciBlcnJvcik7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIp XQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGl4YnVmX2NoYW5nZSAoKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCist CQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBzaXplX2NoYW5nZSAoaW50IHdpZHRoLCBpbnQg aGVpZ2h0KTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdGV4dHVyZV9ub2RlX2dldF90eXBlICgpIildCisg CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNzYwOCw3ICs3MjQyLDcgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIGJv b2wgZ2V0X2F1dG9fcmV2ZXJzZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCist CQlwdWJsaWMgYm9vbCBnZXRfY3ViaWNfYmV6aWVyX3Byb2dyZXNzIChDbHV0dGVyLlBvaW50IGNf MSwgQ2x1dHRlci5Qb2ludCBjXzIpOworKwkJcHVibGljIGJvb2wgZ2V0X2N1YmljX2Jlemllcl9w cm9ncmVzcyAoR3JhcGhlbmUuUG9pbnQgY18xLCBHcmFwaGVuZS5Qb2ludCBjXzIpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2N1cnJlbnRfcmVwZWF0 ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorQEAgLTc2NDUsNyArNzI3OSw3IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1 YmxpYyB2b2lkIHNldF9hdXRvX3JldmVyc2UgKGJvb2wgcmV2ZXJzZSk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2N1YmljX2Jlemllcl9wcm9ncmVz cyAoQ2x1dHRlci5Qb2ludCBjXzEsIENsdXR0ZXIuUG9pbnQgY18yKTsKKysJCXB1YmxpYyB2b2lk IHNldF9jdWJpY19iZXppZXJfcHJvZ3Jlc3MgKEdyYXBoZW5lLlBvaW50IGNfMSwgR3JhcGhlbmUu UG9pbnQgY18yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyB2b2lk IHNldF9kZWxheSAodWludCBtc2Vjcyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCitA QCAtNzc0NCw2ICs3Mzc4LDExIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBmbG9h dCB4OworIAkJcHVibGljIGZsb2F0IHk7CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RyYW5zZm9ybV9ub2Rl X2dldF90eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBUcmFuc2Zvcm1Ob2RlIDogQ2x1dHRlci5Q YWludE5vZGUgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5 cGUgPSAiQ2x1dHRlclBhaW50Tm9kZSoiKV0KKysJCXB1YmxpYyBUcmFuc2Zvcm1Ob2RlIChDb2ds Lk1hdHJpeCBwcm9qZWN0aW9uKTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdHJhbnNpdGlvbl9nZXRfdHlw ZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgYWJzdHJhY3Qg Y2xhc3MgVHJhbnNpdGlvbiA6IENsdXR0ZXIuVGltZWxpbmUsIENsdXR0ZXIuU2NyaXB0YWJsZSB7 CitAQCAtNzc4Myw3ICs3NDIyLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFZpcnR1YWxJbnB1 dERldmljZSAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X2RldmljZV90eXBlICgpOworLQkJcHVibGlj IHVub3duZWQgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGdldF9tYW5hZ2VyICgpOworIAkJcHVibGlj IHZpcnR1YWwgdm9pZCBub3RpZnlfYWJzb2x1dGVfbW90aW9uICh1aW50NjQgdGltZV91cywgZG91 YmxlIHgsIGRvdWJsZSB5KTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90aWZ5X2J1dHRvbiAo dWludDY0IHRpbWVfdXMsIHVpbnQzMiBidXR0b24sIENsdXR0ZXIuQnV0dG9uU3RhdGUgYnV0dG9u X3N0YXRlKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90aWZ5X2Rpc2NyZXRlX3Njcm9sbCAo dWludDY0IHRpbWVfdXMsIENsdXR0ZXIuU2Nyb2xsRGlyZWN0aW9uIGRpcmVjdGlvbiwgQ2x1dHRl ci5TY3JvbGxTb3VyY2Ugc2Nyb2xsX3NvdXJjZSk7CitAQCAtNzc5NCwyNSArNzQzMiwyNSBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIG5vdGlmeV90b3VjaF9k b3duICh1aW50NjQgdGltZV91cywgaW50IHNsb3QsIGRvdWJsZSB4LCBkb3VibGUgeSk7CisgCQlw dWJsaWMgdmlydHVhbCB2b2lkIG5vdGlmeV90b3VjaF9tb3Rpb24gKHVpbnQ2NCB0aW1lX3VzLCBp bnQgc2xvdCwgZG91YmxlIHgsIGRvdWJsZSB5KTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90 aWZ5X3RvdWNoX3VwICh1aW50NjQgdGltZV91cywgaW50IHNsb3QpOworLQkJW05vQWNjZXNzb3JN ZXRob2RdCistCQlwdWJsaWMgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGRldmljZV9tYW5hZ2VyIHsg b3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCXB1YmxpYyBDbHV0dGVyLklucHV0RGV2aWNlVHlw ZSBkZXZpY2VfdHlwZSB7IGdldDsgY29uc3RydWN0OyB9CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0K KysJCXB1YmxpYyBDbHV0dGVyLlNlYXQgc2VhdCB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9Cisg CX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlw ZV9pZCA9ICJjbHV0dGVyX3pvb21fYWN0aW9uX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEyIildCisgCXB1YmxpYyBjbGFzcyBab29tQWN0aW9uIDogQ2x1dHRlci5HZXN0 dXJlQWN0aW9uIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0 eXBlID0gIkNsdXR0ZXJBY3Rpb24qIildCisgCQlwdWJsaWMgWm9vbUFjdGlvbiAoKTsKKy0JCXB1 YmxpYyB2b2lkIGdldF9mb2NhbF9wb2ludCAoQ2x1dHRlci5Qb2ludCBwb2ludCk7CistCQlwdWJs aWMgdm9pZCBnZXRfdHJhbnNmb3JtZWRfZm9jYWxfcG9pbnQgKENsdXR0ZXIuUG9pbnQgcG9pbnQp OworKwkJcHVibGljIHZvaWQgZ2V0X2ZvY2FsX3BvaW50IChHcmFwaGVuZS5Qb2ludCBwb2ludCk7 CisrCQlwdWJsaWMgdm9pZCBnZXRfdHJhbnNmb3JtZWRfZm9jYWxfcG9pbnQgKEdyYXBoZW5lLlBv aW50IHBvaW50KTsKKyAJCXB1YmxpYyBDbHV0dGVyLlpvb21BeGlzIGdldF96b29tX2F4aXMgKCk7 CisgCQlwdWJsaWMgdm9pZCBzZXRfem9vbV9heGlzIChDbHV0dGVyLlpvb21BeGlzIGF4aXMpOwor IAkJcHVibGljIENsdXR0ZXIuWm9vbUF4aXMgem9vbV9heGlzIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1 YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIHpvb20gKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0 ZXIuUG9pbnQgZm9jYWxfcG9pbnQsIGRvdWJsZSBmYWN0b3IpOworKwkJcHVibGljIHZpcnR1YWwg c2lnbmFsIGJvb2wgem9vbSAoQ2x1dHRlci5BY3RvciBhY3RvciwgR3JhcGhlbmUuUG9pbnQgZm9j YWxfcG9pbnQsIGRvdWJsZSBmYWN0b3IpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfY25hbWUgPSAiQ2x1dHRlckFuaW1hdGFibGVJ bnRlcmZhY2UiLCB0eXBlX2lkID0gImNsdXR0ZXJfYW5pbWF0YWJsZV9nZXRfdHlwZSAoKSIpXQor IAlwdWJsaWMgaW50ZXJmYWNlIEFuaW1hdGFibGUgOiBHTGliLk9iamVjdCB7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAi MS4wIildCisrCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIGFic3RyYWN0IGJvb2wgYW5pbWF0ZV9w cm9wZXJ0eSAoQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0aW9uLCBzdHJpbmcgcHJvcGVydHlfbmFt ZSwgR0xpYi5WYWx1ZSBpbml0aWFsX3ZhbHVlLCBHTGliLlZhbHVlIGZpbmFsX3ZhbHVlLCBkb3Vi bGUgcHJvZ3Jlc3MsIEdMaWIuVmFsdWUgdmFsdWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NCIpXQorIAkJcHVibGljIGFic3RyYWN0IHVub3duZWQgR0xpYi5QYXJhbVNwZWMgZmluZF9wcm9w ZXJ0eSAoc3RyaW5nIHByb3BlcnR5X25hbWUpOworQEAgLTc4MzAsOCArNzQ2OCw2IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAodmZ1bmNfbmFtZSA9ICJhZGQiKV0KKyAJCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2Ug PSAiMC40IildCisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBhZGRfYWN0b3IgKENsdXR0ZXIuQWN0 b3IgYWN0b3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGFkZF92YWxpc3Qg KENsdXR0ZXIuQWN0b3IgZmlyc3RfYWN0b3IsIHZhX2xpc3QgdmFyX2FyZ3MpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIHZvaWQgY2hpbGRfZ2V0IChDbHV0dGVyLkFj dG9yIGFjdG9yLCAuLi4pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorQEAgLTc4NTMs MTAgKzc0ODksNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0 dGVyLkFjdG9yIGZpbmRfY2hpbGRfYnlfbmFtZSAoc3RyaW5nIGNoaWxkX25hbWUpOworIAkJW0ND b2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbnRhaW5lcl9jbGFzc19maW5kX2NoaWxkX3Byb3BlcnR5 IildCisgCQlwdWJsaWMgY2xhc3MgdW5vd25lZCBHTGliLlBhcmFtU3BlYyBmaW5kX2NoaWxkX3By b3BlcnR5IChzdHJpbmcgcHJvcGVydHlfbmFtZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQorLQkJcHVi bGljIGFic3RyYWN0IHZvaWQgQGZvcmVhY2ggKENsdXR0ZXIuQ2FsbGJhY2sgY2FsbGJhY2spOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi LCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZm9yZWFjaF93aXRoX2lu dGVybmFscyAoQ2x1dHRlci5DYWxsYmFjayBjYWxsYmFjayk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMC44IildCisgCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuQ2hpbGRNZXRhIGdl dF9jaGlsZF9tZXRhIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKyAJCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40IildCitA QCAtNzg3NCw4ICs3NTA2LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW0NDb2RlICh2ZnVu Y19uYW1lID0gInJlbW92ZSIpXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyBhYnN0cmFj dCB2b2lkIHJlbW92ZV9hY3RvciAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAu NCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX3ZhbGlzdCAoQ2x1dHRlci5BY3RvciBmaXJzdF9h Y3RvciwgdmFfbGlzdCB2YXJfYXJncyk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIGFi c3RyYWN0IHZvaWQgc29ydF9kZXB0aF9vcmRlciAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25h bCB2b2lkIGFjdG9yX2FkZGVkIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKK0BAIC03ODkyLDcgKzc1 MjIsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBpbnZh bGlkYXRlICgpOworIAkJcHVibGljIGFic3RyYWN0IHZvaWQgaW52YWxpZGF0ZV9zaXplICgpOwor IAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHBhaW50X2NvbnRlbnQgKENs dXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuUGFpbnROb2RlIG5vZGUpOworKwkJcHVibGljIGFi c3RyYWN0IHZvaWQgcGFpbnRfY29udGVudCAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5Q YWludE5vZGUgbm9kZSwgQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQg YXR0YWNoZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KK0BAIC03OTA4LDEwICs3NTM4LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAl9Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlwdWJs aWMgaW50ZXJmYWNlIFN0YWdlV2luZG93IDogR0xpYi5PYmplY3QgeworLQkJW05vV3JhcHBlcl0K Ky0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGFkZF9yZWRyYXdfY2xpcCAoQ2x1dHRlci5HZW9tZXRy eSBzdGFnZV9yZWN0YW5nbGUpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2 b2lkIGdldF9nZW9tZXRyeSAoQ2x1dHRlci5HZW9tZXRyeSBnZW9tZXRyeSk7CisgCQlbTm9XcmFw cGVyXQorIAkJcHVibGljIGFic3RyYWN0IGludCBnZXRfcGVuZGluZ19zd2FwcyAoKTsKKyAJCVtO b1dyYXBwZXJdCitAQCAtNzkzOSwxNCArNzU2NSwxNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlbTm9XcmFwcGVyXQorIAkJcHVibGljIGFic3RyYWN0IHZvaWQgdW5yZWFsaXplICgpOworIAl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVf aWQgPSAiQ0xVVFRFUl9UWVBFX0FDVE9SX0JPWCIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIs IGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FjdG9y X2JveF9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgc3RydWN0IEFjdG9yQm94IHsKKyAJCXB1Ymxp YyBmbG9hdCB4MTsKKyAJCXB1YmxpYyBmbG9hdCB5MTsKKyAJCXB1YmxpYyBmbG9hdCB4MjsKKyAJ CXB1YmxpYyBmbG9hdCB5MjsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisrCQlwdWJs aWMgc3RhdGljIENsdXR0ZXIuQWN0b3JCb3g/IGFsbG9jICgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgY2xhbXBfdG9fcGl4ZWwgKCk7CisrCQlwdWJsaWMg c3RhdGljIHZvaWQgY2xhbXBfdG9fcGl4ZWwgKHJlZiBDbHV0dGVyLkFjdG9yQm94IGJveCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgYm9vbCBjb250YWlucyAoZmxv YXQgeCwgZmxvYXQgeSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCitAQCAtNzk1NSw4 ICs3NTgzLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgZXF1YWwgKENs dXR0ZXIuQWN0b3JCb3ggYm94X2IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJ cHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9hY3Rvcl9i b3hfZnJvbV92ZXJ0aWNlcyIpXQorLQkJcHVibGljIEFjdG9yQm94LmZyb21fdmVydGljZXMgKENs dXR0ZXIuVmVydGV4W10gdmVydHMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJ cHVibGljIGZsb2F0IGdldF9hcmVhICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor QEAgLTgwMDIsNyArNzYyOCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB3ZWFr IENhaXJvLlN1cmZhY2UgaW1hZ2U7CisgCQlwdWJsaWMgQ2Fpcm8uUmVjdGFuZ2xlSW50IHJlY3Q7 CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg dHlwZV9pZCA9ICJDTFVUVEVSX1RZUEVfQ09MT1IiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHki LCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiQ0xVVFRFUl9UWVBF X0NPTE9SIildCisgCXB1YmxpYyBzdHJ1Y3QgQ29sb3IgeworIAkJcHVibGljIHVpbnQ4IHJlZDsK KyAJCXB1YmxpYyB1aW50OCBncmVlbjsKK0BAIC04MDQxLDI0ICs3NjY3LDYgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAkJcHVibGljIHN0cmlu ZyB0b19zdHJpbmcgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2ZvZ19nZXRfdHlwZSAoKSIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNp bmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3RydWN0IEZvZyB7CistCQlwdWJsaWMgZmxvYXQgel9u ZWFyOworLQkJcHVibGljIGZsb2F0IHpfZmFyOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9nZW9tZXRyeV9n ZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RydWN0IEdlb21ldHJ5IHsKKy0JCXB1YmxpYyBp bnQgeDsKKy0JCXB1YmxpYyBpbnQgeTsKKy0JCXB1YmxpYyB1aW50IHdpZHRoOworLQkJcHVibGlj IHVpbnQgaGVpZ2h0OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGJv b2wgaW50ZXJzZWN0cyAoQ2x1dHRlci5HZW9tZXRyeSBnZW9tZXRyeTEpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENsdXR0ZXIuR2VvbWV0cnkgdW5pb24gKENsdXR0 ZXIuR2VvbWV0cnkgZ2VvbWV0cnlfYik7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCXB1YmxpYyBz dHJ1Y3QgS2JkQTExeVNldHRpbmdzIHsKKyAJCXB1YmxpYyBDbHV0dGVyLktleWJvYXJkQTExeUZs YWdzIGNvbnRyb2xzOworQEAgLTgwNjksNyArNzY3Nyw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJCXB1YmxpYyBpbnQgbW91c2VrZXlzX21heF9zcGVlZDsKKyAJCXB1YmxpYyBpbnQgbW91c2Vr ZXlzX2FjY2VsX3RpbWU7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2tub3RfZ2V0X3R5cGUgKCkiKV0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5j dGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5 cGVfaWQgPSAiY2x1dHRlcl9rbm90X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjIiKV0KKyAJcHVibGljIHN0cnVjdCBLbm90IHsKKyAJCXB1YmxpYyBpbnQgeDsKK0BAIC04 MTIxLDcgKzc3MjksNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZG91YmxlIHZh bHVlOworIAkJcHVibGljIHVpbnQzMiBtb2RlOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYXRoX25vZGVf Z2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0g ImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYXRoX25vZGVfZ2V0X3R5cGUgKCki KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3RydWN0IFBhdGhOb2Rl IHsKKyAJCXB1YmxpYyBDbHV0dGVyLlBhdGhOb2RlVHlwZSB0eXBlOworQEAgLTgxMzEsNyArNzcz OSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIGVxdWFsIChDbHV0dGVy LlBhdGhOb2RlIG5vZGVfYik7CisgCQlwdWJsaWMgdm9pZCBmcmVlICgpOworIAl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9wZXJzcGVjdGl2ZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIs IGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BlcnNw ZWN0aXZlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJcHVi bGljIHN0cnVjdCBQZXJzcGVjdGl2ZSB7CisgCQlwdWJsaWMgZmxvYXQgZm92eTsKK0BAIC04MTYy LDcgKzc3NzAsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgd2VhayBDbHV0dGVy LkFjdG9yIHNvdXJjZTsKKyAJCXB1YmxpYyB3ZWFrIENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNl OworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIs IHR5cGVfaWQgPSAiQ0xVVFRFUl9UWVBFX1VOSVRTIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5 IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gIkNMVVRURVJfVFlQ RV9VTklUUyIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBzdHJ1Y3Qg VW5pdHMgeworIAkJcHVibGljIENsdXR0ZXIuVW5pdHM/IGNvcHkgKCk7CitAQCAtODE4NiwyMyAr Nzc5NCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBmbG9hdCB0b19waXhlbHMg KCk7CisgCQlwdWJsaWMgc3RyaW5nIHRvX3N0cmluZyAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdmVy dGV4X2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JcHVibGlj IHN0cnVjdCBWZXJ0ZXggeworLQkJcHVibGljIGZsb2F0IHg7CistCQlwdWJsaWMgZmxvYXQgeTsK Ky0JCXB1YmxpYyBmbG9hdCB6OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgQ2x1dHRlci5WZXJ0ZXg/IGFsbG9jICgpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIuVmVydGV4PyBjb3B5ICgpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wgZXF1YWwgKENsdXR0ZXIuVmVydGV4 IHZlcnRleF9iKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lk IGZyZWUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHVub3du ZWQgQ2x1dHRlci5WZXJ0ZXg/IGluaXQgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQl9 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVm aXggPSAiQ0xVVFRFUl9BQ1RPUl9BTElHTl8iLCB0eXBlX2lkID0gImNsdXR0ZXJfYWN0b3JfYWxp Z25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGlj IGVudW0gQWN0b3JBbGlnbiB7CitAQCAtODM0MCw2ICs3OTMxLDI3IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCVlfQVhJUywKKyAJCUJPVEgKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfREVCVUdfIiwgdHlw ZV9pZCA9ICJjbHV0dGVyX2RlYnVnX2ZsYWdfZ2V0X3R5cGUgKCkiKV0KKysJW0ZsYWdzXQorKwlw dWJsaWMgZW51bSBEZWJ1Z0ZsYWcgeworKwkJTUlTQywKKysJCUFDVE9SLAorKwkJVEVYVFVSRSwK KysJCUVWRU5ULAorKwkJUEFJTlQsCisrCQlQQU5HTywKKysJCUJBQ0tFTkQsCisrCQlTQ0hFRFVM RVIsCisrCQlTQ1JJUFQsCisrCQlTSEFERVIsCisrCQlNVUxUSVNUQUdFLAorKwkJQU5JTUFUSU9O LAorKwkJTEFZT1VULAorKwkJUElDSywKKysJCUVWRU5UTE9PUCwKKysJCUNMSVBQSU5HLAorKwkJ T09CX1RSQU5TRk9STVMKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfRFJBR18iLCB0eXBlX2lkID0gImNsdXR0 ZXJfZHJhZ19heGlzX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0K KyAJcHVibGljIGVudW0gRHJhZ0F4aXMgeworQEAgLTgzNDcsNiArNzk1OSwxOSBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlYX0FYSVMsCisgCQlZX0FYSVMKKyAJfQorKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfREVC VUdfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2RyYXdfZGVidWdfZmxhZ19nZXRfdHlwZSAoKSIpXQor KwlbRmxhZ3NdCisrCXB1YmxpYyBlbnVtIERyYXdEZWJ1Z0ZsYWcgeworKwkJRElTQUJMRV9TV0FQ X0VWRU5UUywKKysJCURJU0FCTEVfQ0xJUFBFRF9SRURSQVdTLAorKwkJUkVEUkFXUywKKysJCVBB SU5UX1ZPTFVNRVMsCisrCQlESVNBQkxFX0NVTExJTkcsCisrCQlESVNBQkxFX09GRlNDUkVFTl9S RURJUkVDVCwKKysJCUNPTlRJTlVPVVNfUkVEUkFXLAorKwkJUEFJTlRfREVGT1JNX1RJTEVTLAor KwkJUEFJTlRfREFNQUdFX1JFR0lPTgorKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9FRkZFQ1RfUEFJTlRfQUNU T1JfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2VmZmVjdF9wYWludF9mbGFnc19nZXRfdHlwZSAoKSIp XQorIAlbRmxhZ3NdCisgCXB1YmxpYyBlbnVtIEVmZmVjdFBhaW50RmxhZ3MgeworQEAgLTgzOTgs OCArODAyMyw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJcHVibGljIGVudW0gRmVhdHVyZUZs YWdzIHsKKyAJCVRFWFRVUkVfTlBPVCwKKyAJCVNXQVBfVEhST1RUTEUsCistCQlURVhUVVJFX1lV ViwKKy0JCVRFWFRVUkVfUkVBRF9QSVhFTFMsCisgCQlTVEFHRV9TVEFUSUMsCisgCQlTVEFHRV9D VVJTT1IsCisgCQlTSEFERVJTX0dMU0wsCitAQCAtODY1Nyw2ICs4MjgwLDExIEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCVJFTF9MSU5FX1RPLAorIAkJUkVMX0NVUlZFX1RPCisgCX0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJD TFVUVEVSX0RFQlVHX05PUF8iLCB0eXBlX2lkID0gImNsdXR0ZXJfcGlja19kZWJ1Z19mbGFnX2dl dF90eXBlICgpIildCisrCVtGbGFnc10KKysJcHVibGljIGVudW0gUGlja0RlYnVnRmxhZyB7Cisr CQlQSUNLSU5HCisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX1BJQ0tfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3Bp Y2tfbW9kZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1 YmxpYyBlbnVtIFBpY2tNb2RlIHsKK0BAIC04ODUxLDEzICs4NDc5LDYgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJTEVGVCwKKyAJCVJJR0hUCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX1RBQkxFX0FMSUdO TUVOVF8iLCB0eXBlX2lkID0gImNsdXR0ZXJfdGFibGVfYWxpZ25tZW50X2dldF90eXBlICgpIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIy Iiwgc2luY2UgPSAiMS40IildCistCXB1YmxpYyBlbnVtIFRhYmxlQWxpZ25tZW50IHsKKy0JCVNU QVJULAorLQkJQ0VOVEVSLAorLQkJRU5ECistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX1RFWFRfRElSRUNUSU9O XyIsIHR5cGVfaWQgPSAiY2x1dHRlcl90ZXh0X2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlb VmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCXB1YmxpYyBlbnVtIFRleHREaXJlY3Rpb24gewor QEAgLTg5MzMsMjggKzg1NTQsMTkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJVkFMVUU7Cisg CQlwdWJsaWMgc3RhdGljIEdMaWIuUXVhcmsgcXVhcmsgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX1RF WFRVUkVfRVJST1JfIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JcHVibGljIGVy cm9yZG9tYWluIFRleHR1cmVFcnJvciB7CistCQlPVVRfT0ZfTUVNT1JZLAorLQkJTk9fWVVWLAor LQkJQkFEX0ZPUk1BVDsKKy0JCXB1YmxpYyBzdGF0aWMgR0xpYi5RdWFyayBxdWFyayAoKTsKKy0J fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBpbnN0 YW5jZV9wb3MgPSAxLjkpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4yNCIpXQorIAlwdWJsaWMg ZGVsZWdhdGUgQ2x1dHRlci5BY3RvciBBY3RvckNyZWF0ZUNoaWxkRnVuYyAoR0xpYi5PYmplY3Qg aXRlbSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIs IGluc3RhbmNlX3BvcyA9IDEuOSldCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC4yIildCisgCXB1YmxpYyBkZWxlZ2F0 ZSBkb3VibGUgQWxwaGFGdW5jIChDbHV0dGVyLkFscGhhIGFscGhhKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNiIs IHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBCZWhhdmlvdXJGb3JlYWNo RnVuYyAoQ2x1dHRlci5CZWhhdmlvdXIgYmVoYXZpb3VyLCBDbHV0dGVyLkFjdG9yIGFjdG9yKTsK KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaW5zdGFu Y2VfcG9zID0gNC45KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgZGVs ZWdhdGUgYm9vbCBCaW5kaW5nQWN0aW9uRnVuYyAoR0xpYi5PYmplY3QgZ29iamVjdCwgc3RyaW5n IGFjdGlvbl9uYW1lLCB1aW50IGtleV92YWwsIENsdXR0ZXIuTW9kaWZpZXJUeXBlIG1vZGlmaWVy cyk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGlu c3RhbmNlX3BvcyA9IDEuOSldCisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIENhbGxiYWNrIChDbHV0 dGVyLkFjdG9yIGFjdG9yKTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIiwgaGFzX3RhcmdldCA9IGZhbHNlKV0KKysJcHVibGljIGRlbGVnYXRlIHZvaWQg RW1pdElucHV0RGV2aWNlRXZlbnQgKENsdXR0ZXIuRXZlbnQgZXZlbnQsIENsdXR0ZXIuSW5wdXRE ZXZpY2UgZGV2aWNlKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgi KV0KKyAJcHVibGljIGRlbGVnYXRlIGJvb2wgRXZlbnRGaWx0ZXJGdW5jIChDbHV0dGVyLkV2ZW50 IGV2ZW50KTsKK0BAIC04OTg1LDkgKzg1OTcsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJcHVibGljIGNvbnN0IGludCBQUklPUklUWV9SRURS QVc7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQor LQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuQWN0 b3JCb3g/IGFjdG9yX2JveF9hbGxvYyAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBiYXNlX2luaXQgKCk7 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorQEAgLTkwNTEsOSArODY2MCw2IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3RhdGlj IHVub3duZWQgUGFuZ28uRm9udE1hcCBnZXRfZm9udF9tYXAgKCk7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAi MC42IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9rZXlib2Fy ZF9ncmFiICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAlwdWJsaWMgc3RhdGljIEdMaWIu T3B0aW9uR3JvdXAgZ2V0X29wdGlvbl9ncm91cCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCitAQCAtOTA2MSwxNyArODY2Nyw4IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJcHVibGljIHN0YXRpYyBHTGliLk9wdGlvbkdyb3VwIGdldF9vcHRp b25fZ3JvdXBfd2l0aG91dF9pbml0ICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQlwdWJs aWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfcG9pbnRlcl9ncmFiICgpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNp b24gKHNpbmNlID0gIjAuNiIpXQorIAlwdWJsaWMgc3RhdGljIHVub3duZWQgc3RyaW5nIGdldF9z Y3JpcHRfaWQgKEdMaWIuT2JqZWN0IGdvYmplY3QpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgZ3JhYl9rZXlib2FyZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlb VmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBncmFiX3BvaW50 ZXIgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJcHVibGljIHN0YXRpYyBDbHV0dGVyLkluaXRFcnJvciBp bml0IChbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJhcmdjIiwgYXJyYXlfbGVuZ3RoX3Bv cyA9IDAuNSldIHJlZiB1bm93bmVkIHN0cmluZ1tdPyBhcmd2KTsKKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIw LjIiKV0KK0BAIC05MDg3LDI5ICs4Njg0LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJcHVibGljIHN0 YXRpYyB2b2lkIHNldF9jdXN0b21fYmFja2VuZF9mdW5jICh2b2lkKiBmdW5jKTsKKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChz aW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB0ZXN0X2FkZF9kYXRhX2Z1bGwg KHN0cmluZyB0ZXN0X3BhdGgsIG93bmVkIEdMaWIuVGVzdERhdGFGdW5jIHRlc3RfZnVuYyk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgdGVzdF9jaGVja19h Y3Rvcl9hdF9wb2ludCAoQ2x1dHRlci5BY3RvciBzdGFnZSwgQ2x1dHRlci5Qb2ludCBwb2ludCwg Q2x1dHRlci5BY3RvciBhY3Rvciwgb3V0IENsdXR0ZXIuQWN0b3I/IHJlc3VsdCk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xOCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgdGVzdF9jaGVja19jb2xvcl9h dF9wb2ludCAoQ2x1dHRlci5BY3RvciBzdGFnZSwgQ2x1dHRlci5Qb2ludCBwb2ludCwgQ2x1dHRl ci5Db2xvciBjb2xvciwgb3V0IENsdXR0ZXIuQ29sb3IgcmVzdWx0KTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIHRlc3RfZ2V0 X3N0YWdlICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHRlc3RfaW5pdCAoaW50IGFyZ2MsIHN0cmluZyBh cmd2KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIild CistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMgaW50IHRlc3Rf cnVuICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdW5n cmFiX2tleWJvYXJkICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgdW5ncmFiX3BvaW50ZXIgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJs aWMgc3RhdGljIHVpbnQgdW5pY29kZV90b19rZXlzeW0gKHVpbnQzMiB3Yyk7CisgfQorZGlmZiAt LWdpdCB2YXBpL211dHRlci1jbHV0dGVyLTQuZGVwcyB2YXBpL211dHRlci1jbHV0dGVyLTcuZGVw cworc2ltaWxhcml0eSBpbmRleCA1NCUKK3JlbmFtZSBmcm9tIHZhcGkvbXV0dGVyLWNsdXR0ZXIt NC5kZXBzCityZW5hbWUgdG8gdmFwaS9tdXR0ZXItY2x1dHRlci03LmRlcHMKK2luZGV4IDk1MDk0 MDI2Li42YmQxY2NmNyAxMDA2NDQKKy0tLSB2YXBpL211dHRlci1jbHV0dGVyLTQuZGVwcworKysr IHZhcGkvbXV0dGVyLWNsdXR0ZXItNy5kZXBzCitAQCAtMSw1ICsxLDQgQEAKKyBhdGsKKyBjYWly bworIGpzb24tZ2xpYi0xLjAKKy1tdXR0ZXItY29nbC00CistcGFuZ28KKyttdXR0ZXItY29nbC03 CitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNsdXR0ZXItNC52YXBpIHZhcGkvbXV0dGVyLWNsdXR0 ZXItNy52YXBpCitzaW1pbGFyaXR5IGluZGV4IDg2JQorcmVuYW1lIGZyb20gdmFwaS9tdXR0ZXIt Y2x1dHRlci00LnZhcGkKK3JlbmFtZSB0byB2YXBpL211dHRlci1jbHV0dGVyLTcudmFwaQoraW5k ZXggYzhhMWQyM2IuLmFlYTZhMzFhIDEwMDY0NAorLS0tIHZhcGkvbXV0dGVyLWNsdXR0ZXItNC52 YXBpCisrKysgdmFwaS9tdXR0ZXItY2x1dHRlci03LnZhcGkKK0BAIC0xLDYgKzEsNiBAQAorLS8q IG11dHRlci1jbHV0dGVyLTQudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlm eS4gKi8KKysvKiBtdXR0ZXItY2x1dHRlci03LnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRv IG5vdCBtb2RpZnkuICovCisgCistW0NDb2RlIChjcHJlZml4ID0gIkNsdXR0ZXIiLCBnaXJfbmFt ZXNwYWNlID0gIkNsdXR0ZXIiLCBnaXJfdmVyc2lvbiA9ICI0IiwgbG93ZXJfY2FzZV9jcHJlZml4 ID0gImNsdXR0ZXJfIildCisrW0NDb2RlIChjcHJlZml4ID0gIkNsdXR0ZXIiLCBnaXJfbmFtZXNw YWNlID0gIkNsdXR0ZXIiLCBnaXJfdmVyc2lvbiA9ICI3IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0g ImNsdXR0ZXJfIildCisgbmFtZXNwYWNlIENsdXR0ZXIgeworIAluYW1lc3BhY2UgS2V5IHsKKyAJ CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNuYW1lID0g IkNMVVRURVJfS0VZXzAiKV0KK0BAIC00NTc2LDIwICs0NTc2LDggQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBzdGF0aWMgdWlu dCBhZGRfcmVwYWludF9mdW5jX2Z1bGwgKENsdXR0ZXIuUmVwYWludEZsYWdzIGZsYWdzLCBvd25l ZCBHTGliLlNvdXJjZUZ1bmMgZnVuYyk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgc3RhdGlj IHZvaWQgZW50ZXIgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgaW5p dCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIp XQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBsZWF2ZSAoKTsKKy0J CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHN0YXRpYyB2b2lkIHJlbW92ZV9yZXBh aW50X2Z1bmMgKHVpbnQgaGFuZGxlX2lkKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJ cHVibGljIHN0YXRpYyB2b2lkIHNldF9sb2NrX2Z1bmN0aW9ucyAoR0xpYi5DYWxsYmFjayBlbnRl cl9mbiwgR0xpYi5DYWxsYmFjayBsZWF2ZV9mbik7CisgCX0KKyAJbmFtZXNwYWNlIFZhbHVlIHsK KyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorQEAg LTQ2MzYsNyArNDYyNCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBzdGF0aWMg dm9pZCB0YWtlX3BhaW50X25vZGUgKEdMaWIuVmFsdWUgdmFsdWUsIENsdXR0ZXIuUGFpbnROb2Rl PyBub2RlKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYWN0aW9uX2dldF90eXBlICgpIildCistCVtWZXJz aW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIEFjdGlvbiA6IENs dXR0ZXIuQWN0b3JNZXRhIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlKV0KKyAJCXByb3RlY3RlZCBBY3Rpb24gKCk7CitAQCAtNDY2NCwzMyArNDY1MSwyMyBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVi bGljIHZvaWQgYWRkX3RyYW5zaXRpb24gKHN0cmluZyBuYW1lLCBDbHV0dGVyLlRyYW5zaXRpb24g dHJhbnNpdGlvbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdmly dHVhbCB2b2lkIGFsbG9jYXRlIChDbHV0dGVyLkFjdG9yQm94IGJveCwgQ2x1dHRlci5BbGxvY2F0 aW9uRmxhZ3MgZmxhZ3MpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBhbGxvY2F0ZSAoQ2x1dHRl ci5BY3RvckJveCBib3gpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGlj IHZvaWQgYWxsb2NhdGVfYWxpZ25fZmlsbCAoQ2x1dHRlci5BY3RvckJveCBib3gsIGRvdWJsZSB4 X2FsaWduLCBkb3VibGUgeV9hbGlnbiwgYm9vbCB4X2ZpbGwsIGJvb2wgeV9maWxsLCBDbHV0dGVy LkFsbG9jYXRpb25GbGFncyBmbGFncyk7CisrCQlwdWJsaWMgdm9pZCBhbGxvY2F0ZV9hbGlnbl9m aWxsIChDbHV0dGVyLkFjdG9yQm94IGJveCwgZG91YmxlIHhfYWxpZ24sIGRvdWJsZSB5X2FsaWdu LCBib29sIHhfZmlsbCwgYm9vbCB5X2ZpbGwpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIHZvaWQgYWxsb2NhdGVfYXZhaWxhYmxlX3NpemUgKGZsb2F0IHgsIGZsb2F0 IHksIGZsb2F0IGF2YWlsYWJsZV93aWR0aCwgZmxvYXQgYXZhaWxhYmxlX2hlaWdodCwgQ2x1dHRl ci5BbGxvY2F0aW9uRmxhZ3MgZmxhZ3MpOworKwkJcHVibGljIHZvaWQgYWxsb2NhdGVfYXZhaWxh YmxlX3NpemUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGF2YWlsYWJsZV93aWR0aCwgZmxvYXQg YXZhaWxhYmxlX2hlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCistCQlwdWJs aWMgdm9pZCBhbGxvY2F0ZV9wcmVmZXJyZWRfc2l6ZSAoQ2x1dHRlci5BbGxvY2F0aW9uRmxhZ3Mg ZmxhZ3MpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5p bWF0aW9uIGFuaW1hdGUgKHVsb25nIG1vZGUsIHVpbnQgZHVyYXRpb24sIC4uLik7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0ZV93 aXRoX2FscGhhIChDbHV0dGVyLkFscGhhIGFscGhhLCAuLi4pOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGFuaW1hdGVfd2l0aF9hbHBoYXYg KENsdXR0ZXIuQWxwaGEgYWxwaGEsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJv cGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAxLjUpXSBzdHJpbmdbXSBwcm9wZXJ0aWVzLCBb Q0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3Byb3BlcnRpZXMiLCBhcnJheV9sZW5ndGhf cG9zID0gMS41KV0gR0xpYi5WYWx1ZVtdIHZhbHVlcyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0ZV93aXRoX3RpbWVsaW5lICh1 bG9uZyBtb2RlLCBDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lLCAuLi4pOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGFuaW1hdGVfd2l0aF90 aW1lbGluZXYgKHVsb25nIG1vZGUsIENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUsIFtDQ29kZSAo YXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAy LjUpXSBzdHJpbmdbXSBwcm9wZXJ0aWVzLCBbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJu X3Byb3BlcnRpZXMiLCBhcnJheV9sZW5ndGhfcG9zID0gMi41KV0gR0xpYi5WYWx1ZVtdIHZhbHVl cyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRp b24gYW5pbWF0ZXYgKHVsb25nIG1vZGUsIHVpbnQgZHVyYXRpb24sIFtDQ29kZSAoYXJyYXlfbGVu Z3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAyLjUpXSBzdHJp bmdbXSBwcm9wZXJ0aWVzLCBbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3Byb3BlcnRp ZXMiLCBhcnJheV9sZW5ndGhfcG9zID0gMi41KV0gR0xpYi5WYWx1ZVtdIHZhbHVlcyk7CisrCQlw dWJsaWMgdm9pZCBhbGxvY2F0ZV9wcmVmZXJyZWRfc2l6ZSAoZmxvYXQgeCwgZmxvYXQgeSk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgQ2x1dHRlci5WZXJ0ZXggYXBw bHlfcmVsYXRpdmVfdHJhbnNmb3JtX3RvX3BvaW50IChDbHV0dGVyLkFjdG9yPyBhbmNlc3Rvciwg Q2x1dHRlci5WZXJ0ZXggcG9pbnQpOworKwkJcHVibGljIHZvaWQgYXBwbHlfcmVsYXRpdmVfdHJh bnNmb3JtX3RvX3BvaW50IChDbHV0dGVyLkFjdG9yPyBhbmNlc3RvciwgR3JhcGhlbmUuUG9pbnQz RCBwb2ludCwgb3V0IHVub3duZWQgR3JhcGhlbmUuUG9pbnQzRCB2ZXJ0ZXgpOworIAkJW05vV3Jh cHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYXBwbHlfdHJhbnNmb3JtIChyZWYgQ2x1dHRl ci5NYXRyaXggbWF0cml4KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1Ymxp YyBDbHV0dGVyLlZlcnRleCBhcHBseV90cmFuc2Zvcm1fdG9fcG9pbnQgKENsdXR0ZXIuVmVydGV4 IHBvaW50KTsKKysJCXB1YmxpYyB2b2lkIGFwcGx5X3RyYW5zZm9ybV90b19wb2ludCAoR3JhcGhl bmUuUG9pbnQzRCBwb2ludCwgb3V0IHVub3duZWQgR3JhcGhlbmUuUG9pbnQzRCB2ZXJ0ZXgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjQiKV0KKyAJCXB1YmxpYyB2b2lkIGJpbmRfbW9kZWwg KEdMaWIuTGlzdE1vZGVsPyBtb2RlbCwgb3duZWQgQ2x1dHRlci5BY3RvckNyZWF0ZUNoaWxkRnVu YyBjcmVhdGVfY2hpbGRfZnVuYyk7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZpcnR1YWwg ZmxvYXQgY2FsY3VsYXRlX3Jlc291cmNlX3NjYWxlIChpbnQgcGhhc2UpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHZvaWQgY2xlYXJfYWN0aW9ucyAoKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KK0BAIC00NzAwLDIwICs0Njc3LDE5IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBib29s IGNvbnRhaW5zIChDbHV0dGVyLkFjdG9yIGRlc2NlbmRhbnQpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgY29udGludWVfcGFpbnQgKCk7CisrCQlwdWJsaWMg dm9pZCBjb250aW51ZV9wYWludCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7 CisrCQlwdWJsaWMgdm9pZCBjb250aW51ZV9waWNrIChDbHV0dGVyLlBpY2tDb250ZXh0IHBpY2tf Y29udGV4dCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgUGFuZ28u Q29udGV4dCBjcmVhdGVfcGFuZ29fY29udGV4dCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKyAJCXB1YmxpYyBQYW5nby5MYXlvdXQgY3JlYXRlX3BhbmdvX2xheW91dCAoc3RyaW5n PyB0ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBk ZXN0cm95X2FsbF9jaGlsZHJlbiAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9p ZCBkZXRhY2hfYW5pbWF0aW9uICgpOworIAkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2FjdG9y X2V2ZW50IildCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgYm9vbCBl bWl0X2V2ZW50IChDbHV0dGVyLkV2ZW50IGV2ZW50LCBib29sIGNhcHR1cmUpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2Fic19hbGxvY2F0aW9uX3Zl cnRpY2VzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gQ2x1dHRlci5WZXJ0ZXggdmVy dHNbNF0pOworKwkJcHVibGljIHZvaWQgZ2V0X2Fic19hbGxvY2F0aW9uX3ZlcnRpY2VzIChbQ0Nv ZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gR3JhcGhlbmUuUG9pbnQzRCB2ZXJ0c1s0XSk7Cisg CQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIEF0ay5PYmplY3QgZ2V0X2FjY2Vzc2libGUgKCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFj dGlvbiBnZXRfYWN0aW9uIChzdHJpbmcgbmFtZSk7CitAQCAtNDcyMSwyMSArNDY5Nyw4IEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBDbHV0dGVyLkFjdGlv bj4gZ2V0X2FjdGlvbnMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJs aWMgQ2x1dHRlci5BY3RvckJveCBnZXRfYWxsb2NhdGlvbl9ib3ggKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAu OCIpXQorLQkJcHVibGljIENsdXR0ZXIuR2VvbWV0cnkgZ2V0X2FsbG9jYXRpb25fZ2VvbWV0cnkg KCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBnZXRfYWxs b2NhdGlvbl92ZXJ0aWNlcyAoQ2x1dHRlci5BY3Rvcj8gYW5jZXN0b3IsIFtDQ29kZSAoYXJyYXlf bGVuZ3RoID0gZmFsc2UpXSBDbHV0dGVyLlZlcnRleCB2ZXJ0c1s0XSk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAu NiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FuY2hvcl9wb2ludCAob3V0IGZsb2F0IGFuY2hvcl94 LCBvdXQgZmxvYXQgYW5jaG9yX3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDbHV0 dGVyLkdyYXZpdHkgZ2V0X2FuY2hvcl9wb2ludF9ncmF2aXR5ICgpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAi KV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGdldF9hbmltYXRpb24gKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIENsdXR0ZXIuQ29sb3Ig Z2V0X2JhY2tncm91bmRfY29sb3IgKCk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfZ2V0 X2FjdG9yX2J5X2dpZCIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93 bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2J5X2dpZCAodWludDMyIGlkXyk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfY2hp bGRfYXRfaW5kZXggKGludCBpbmRleF8pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0K K0BAIC00NzYyLDggKzQ3MjUsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9p ZCBnZXRfY29udGVudF9zY2FsaW5nX2ZpbHRlcnMgKG91dCBDbHV0dGVyLlNjYWxpbmdGaWx0ZXIg bWluX2ZpbHRlciwgb3V0IENsdXR0ZXIuU2NhbGluZ0ZpbHRlciBtYWdfZmlsdGVyKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlBhaW50 Vm9sdW1lIGdldF9kZWZhdWx0X3BhaW50X3ZvbHVtZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgZmxvYXQg Z2V0X2RlcHRoICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB1 aW50IGdldF9lYXNpbmdfZGVsYXkgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor QEAgLTQ3NzYsMTIgKzQ3MzcsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIEdM aWIuTGlzdDx3ZWFrIENsdXR0ZXIuRWZmZWN0PiBnZXRfZWZmZWN0cyAoKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9m aXJzdF9jaGlsZCAoKTsKKysJCXB1YmxpYyBib29sIGdldF9maXhlZF9wb3NpdGlvbiAob3V0IGZs b2F0IHgsIG91dCBmbG9hdCB5KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1 YmxpYyBib29sIGdldF9maXhlZF9wb3NpdGlvbl9zZXQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisgCQlwdWJsaWMgQ2x1dHRlci5BY3RvckZsYWdzIGdldF9mbGFncyAoKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBz aW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB1aW50MzIgZ2V0X2dpZCAoKTsKKyAJCVtDQ29kZSAo Y25hbWUgPSAiY2x1dHRlcl9hY3Rvcl9oYXNfcG9pbnRlciIpXQorIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMiIpXQorIAkJcHVibGljIGJvb2wgZ2V0X2hhc19wb2ludGVyICgpOworQEAgLTQ4Mzks MTcgKzQ3OTksMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgZ2V0X3Jl YWN0aXZlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIENsdXR0 ZXIuUmVxdWVzdE1vZGUgZ2V0X3JlcXVlc3RfbW9kZSAoKTsKKy0JCXB1YmxpYyBib29sIGdldF9y ZXNvdXJjZV9zY2FsZSAob3V0IGZsb2F0IHJlc291cmNlX3NjYWxlKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44 IildCistCQlwdWJsaWMgZG91YmxlIGdldF9yb3RhdGlvbiAoQ2x1dHRlci5Sb3RhdGVBeGlzIGF4 aXMsIG91dCBmbG9hdCB4LCBvdXQgZmxvYXQgeSwgb3V0IGZsb2F0IHopOworKwkJcHVibGljIGZs b2F0IGdldF9yZXNvdXJjZV9zY2FsZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIild CisgCQlwdWJsaWMgZG91YmxlIGdldF9yb3RhdGlvbl9hbmdsZSAoQ2x1dHRlci5Sb3RhdGVBeGlz IGF4aXMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAkJcHVibGljIHZvaWQgZ2V0 X3NjYWxlIChvdXQgZG91YmxlIHNjYWxlX3gsIG91dCBkb3VibGUgc2NhbGVfeSk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3NjYWxlX2NlbnRlciAob3V0IGZsb2F0IGNl bnRlcl94LCBvdXQgZmxvYXQgY2VudGVyX3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1Ymxp YyBDbHV0dGVyLkdyYXZpdHkgZ2V0X3NjYWxlX2dyYXZpdHkgKCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGRvdWJsZSBnZXRfc2NhbGVfeiAoKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIwLjIiKV0KK0BAIC00ODYwLDggKzQ4MTQsNyBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5UZXh0RGlyZWN0aW9uIGdldF90ZXh0X2RpcmVjdGlv biAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgQ2x1dHRlci5N YXRyaXggZ2V0X3RyYW5zZm9ybSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2x1 dHRlci5NYXRyaXggZ2V0X3RyYW5zZm9ybWF0aW9uX21hdHJpeCAoKTsKKysJCXB1YmxpYyB2b2lk IGdldF90cmFuc2Zvcm1lZF9leHRlbnRzIChvdXQgdW5vd25lZCBHcmFwaGVuZS5SZWN0IHJlY3Qp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRl ci5QYWludFZvbHVtZSBnZXRfdHJhbnNmb3JtZWRfcGFpbnRfdm9sdW1lIChDbHV0dGVyLkFjdG9y IHJlbGF0aXZlX3RvX2FuY2VzdG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KK0BA IC00ODg1LDEwICs0ODM4LDkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wg Z2V0X3lfZXhwYW5kICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1Ymxp YyBmbG9hdCBnZXRfel9wb3NpdGlvbiAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMg Q2x1dHRlci5HcmF2aXR5IGdldF96X3JvdGF0aW9uX2dyYXZpdHkgKCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBncmFiX2tleV9mb2N1cyAoKTsKKysJCXB1 YmxpYyB2aXJ0dWFsIGJvb2wgaGFzX2FjY2Vzc2libGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorIAkJcHVibGljIGJvb2wgaGFzX2FjdGlvbnMgKCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS40IildCitAQCAtNDkwMCwxOCArNDg1MiwyMCBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlwdWJsaWMgYm9vbCBoYXNfZWZmZWN0cyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjQiKV0KKyAJCXB1YmxpYyBib29sIGhhc19rZXlfZm9jdXMgKCk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xNiIpXQorIAkJcHVibGljIGJvb2wgaGFzX21hcHBlZF9jbG9uZXMgKCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdmlydHVhbCBib29sIGhhc19v dmVybGFwcyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC4yIildCisrCQlbTm9XcmFwcGVyXQorIAkJcHVibGlj IHZpcnR1YWwgdm9pZCBoaWRlX2FsbCAoKTsKKysJCXB1YmxpYyB2b2lkIGluaGliaXRfY3VsbGlu ZyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBpbnNl cnRfY2hpbGRfYWJvdmUgKENsdXR0ZXIuQWN0b3IgY2hpbGQsIENsdXR0ZXIuQWN0b3I/IHNpYmxp bmcpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIGluc2Vy dF9jaGlsZF9hdF9pbmRleCAoQ2x1dHRlci5BY3RvciBjaGlsZCwgaW50IGluZGV4Xyk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgaW5zZXJ0X2NoaWxkX2Jl bG93IChDbHV0dGVyLkFjdG9yIGNoaWxkLCBDbHV0dGVyLkFjdG9yPyBzaWJsaW5nKTsKKysJCXB1 YmxpYyB2b2lkIGludmFsaWRhdGVfdHJhbnNmb3JtICgpOworKwkJcHVibGljIGJvb2wgaXNfZWZm ZWN0aXZlbHlfb25fc3RhZ2VfdmlldyAoQ2x1dHRlci5TdGFnZVZpZXcgdmlldyk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgYm9vbCBpc19pbl9jbG9uZV9wYWludCAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjI0IildCitAQCAtNDkyNCwzMyArNDg3OCwyMCBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBpc19zY2FsZWQgKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4yNCIpXQorIAkJcHVibGljIGJvb2wgaXNfdmlzaWJsZSAoKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEw IildCistCQlwdWJsaWMgdm9pZCBsb3dlciAoQ2x1dHRlci5BY3Rvcj8gYWJvdmUpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0J CXB1YmxpYyB2b2lkIGxvd2VyX2JvdHRvbSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbWFwICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0J CXB1YmxpYyB2b2lkIG1vdmVfYW5jaG9yX3BvaW50IChmbG9hdCBhbmNob3JfeCwgZmxvYXQgYW5j aG9yX3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIG1vdmVfYW5jaG9yX3Bv aW50X2Zyb21fZ3Jhdml0eSAoQ2x1dHRlci5HcmF2aXR5IGdyYXZpdHkpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjAuMiIpXQorIAkJcHVibGljIHZvaWQgbW92ZV9ieSAoZmxvYXQgZHgsIGZsb2F0 IGR5KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgYm9vbCBuZWVk c19leHBhbmQgKENsdXR0ZXIuT3JpZW50YXRpb24gb3JpZW50YXRpb24pOworIAkJW05vV3JhcHBl cl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGFpbnRfbm9kZSAoQ2x1dHRlci5QYWludE5vZGUg cm9vdCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgcG9wX2ludGVybmFsICgp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHB1c2hfaW50ZXJuYWwgKCk7Cisr CQlwdWJsaWMgdW5vd25lZCBHTGliLkxpc3Q8Q2x1dHRlci5TdGFnZVZpZXc+IHBlZWtfc3RhZ2Vf dmlld3MgKCk7CisrCQlwdWJsaWMgdm9pZCBwaWNrX2JveCAoQ2x1dHRlci5QaWNrQ29udGV4dCBw aWNrX2NvbnRleHQsIENsdXR0ZXIuQWN0b3JCb3ggYm94KTsKKysJCXB1YmxpYyB1bm93bmVkIENs dXR0ZXIuRnJhbWVDbG9jayBwaWNrX2ZyYW1lX2Nsb2NrICgpOworIAkJcHVibGljIHZvaWQgcXVl dWVfcmVkcmF3ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2 b2lkIHF1ZXVlX3JlZHJhd193aXRoX2NsaXAgKENhaXJvLlJlY3RhbmdsZUludD8gY2xpcCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIp XQorLQkJcHVibGljIHZvaWQgcmFpc2UgKENsdXR0ZXIuQWN0b3I/IGJlbG93KTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlw dWJsaWMgdm9pZCByYWlzZV90b3AgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisg CQlwdWJsaWMgdm9pZCByZW1vdmVfYWN0aW9uIChDbHV0dGVyLkFjdGlvbiBhY3Rpb24pOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorQEAgLTQ5NzIsOCArNDkxMyw2IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV9lZmZlY3RfYnlfbmFtZSAoc3RyaW5n IG5hbWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHJl bW92ZV90cmFuc2l0aW9uIChzdHJpbmcgbmFtZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuMiIpXQorLQkJcHVi bGljIHZvaWQgcmVwYXJlbnQgKENsdXR0ZXIuQWN0b3IgbmV3X3BhcmVudCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgcmVwbGFjZV9jaGlsZCAoQ2x1dHRl ci5BY3RvciBvbGRfY2hpbGQsIENsdXR0ZXIuQWN0b3IgbmV3X2NoaWxkKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCitAQCAtNDk4MSwxMSArNDkyMCw3IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBzYXZl X2Vhc2luZ19zdGF0ZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJs aWMgdm9pZCBzZXRfYWxsb2NhdGlvbiAoQ2x1dHRlci5BY3RvckJveCBib3gsIENsdXR0ZXIuQWxs b2NhdGlvbkZsYWdzIGZsYWdzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBz ZXRfYW5jaG9yX3BvaW50IChmbG9hdCBhbmNob3JfeCwgZmxvYXQgYW5jaG9yX3kpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbmNob3JfcG9pbnRfZnJvbV9ncmF2aXR5 IChDbHV0dGVyLkdyYXZpdHkgZ3Jhdml0eSk7CisrCQlwdWJsaWMgdm9pZCBzZXRfYWxsb2NhdGlv biAoQ2x1dHRlci5BY3RvckJveCBib3gpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K KyAJCXB1YmxpYyB2b2lkIHNldF9iYWNrZ3JvdW5kX2NvbG9yIChDbHV0dGVyLkNvbG9yPyBjb2xv cik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTUwMDgsOCArNDk0Myw2IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9jb250ZW50X3JlcGVhdCAo Q2x1dHRlci5Db250ZW50UmVwZWF0IHJlcGVhdCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2NvbnRlbnRfc2NhbGluZ19maWx0ZXJzIChDbHV0dGVy LlNjYWxpbmdGaWx0ZXIgbWluX2ZpbHRlciwgQ2x1dHRlci5TY2FsaW5nRmlsdGVyIG1hZ19maWx0 ZXIpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kZXB0aCAoZmxvYXQgZGVwdGgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9lYXNpbmdfZGVsYXkg KHVpbnQgbXNlY3MpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC01MDM5LDgg KzQ5NzIsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBzZXRfb2Zmc2Ny ZWVuX3JlZGlyZWN0IChDbHV0dGVyLk9mZnNjcmVlblJlZGlyZWN0IHJlZGlyZWN0KTsKKyAJCXB1 YmxpYyB2b2lkIHNldF9vcGFjaXR5ICh1aW50OCBvcGFjaXR5KTsKKyAJCXB1YmxpYyB2b2lkIHNl dF9vcGFjaXR5X292ZXJyaWRlIChpbnQgb3BhY2l0eSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X3BhcmVudCAoQ2x1dHRlci5BY3RvciBwYXJlbnQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTIiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9waXZvdF9wb2ludCAoZmxvYXQgcGl2b3RfeCwgZmxv YXQgcGl2b3RfeSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorQEAgLTUwNTAsMTYg KzQ5ODEsMTAgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgc2V0X3JlYWN0 aXZlIChib29sIHJlYWN0aXZlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1 YmxpYyB2b2lkIHNldF9yZXF1ZXN0X21vZGUgKENsdXR0ZXIuUmVxdWVzdE1vZGUgbW9kZSk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3JvdGF0aW9uIChDbHV0dGVyLlJv dGF0ZUF4aXMgYXhpcywgZG91YmxlIGFuZ2xlLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdm9pZCBzZXRfcm90YXRp b25fYW5nbGUgKENsdXR0ZXIuUm90YXRlQXhpcyBheGlzLCBkb3VibGUgYW5nbGUpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAkJcHVibGljIHZvaWQgc2V0X3NjYWxlIChkb3VibGUg c2NhbGVfeCwgZG91YmxlIHNjYWxlX3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9zY2FsZV9mdWxsIChkb3VibGUgc2NhbGVfeCwgZG91YmxlIHNjYWxlX3ksIGZsb2F0 IGNlbnRlcl94LCBmbG9hdCBjZW50ZXJfeSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X3NjYWxlX3dpdGhfZ3Jhdml0eSAoZG91YmxlIHNjYWxlX3gsIGRvdWJsZSBzY2Fs ZV95LCBDbHV0dGVyLkdyYXZpdHkgZ3Jhdml0eSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MiIpXQorIAkJcHVibGljIHZvaWQgc2V0X3NjYWxlX3ogKGRvdWJsZSBzY2FsZV96KTsKKyAJCXB1 YmxpYyB2b2lkIHNldF9zaXplIChmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKK0BAIC01MDg1 LDE3ICs1MDEwLDEyIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF95 X2V4cGFuZCAoYm9vbCBleHBhbmQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJ CXB1YmxpYyB2b2lkIHNldF96X3Bvc2l0aW9uIChmbG9hdCB6X3Bvc2l0aW9uKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfel9yb3RhdGlvbl9mcm9tX2dyYXZpdHkgKGRv dWJsZSBhbmdsZSwgQ2x1dHRlci5HcmF2aXR5IGdyYXZpdHkpOworIAkJcHVibGljIGJvb2wgc2hv dWxkX3BpY2tfcGFpbnQgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuMiIpXQorLQkJcHVibGljIHZpcnR1YWwg dm9pZCBzaG93X2FsbCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1Ymxp YyBib29sIHRyYW5zZm9ybV9zdGFnZV9wb2ludCAoZmxvYXQgeCwgZmxvYXQgeSwgb3V0IGZsb2F0 IHhfb3V0LCBvdXQgZmxvYXQgeV9vdXQpOworKwkJcHVibGljIHZvaWQgdW5pbmhpYml0X2N1bGxp bmcgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdmlydHVhbCB2 b2lkIHVubWFwICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHVucGFyZW50 ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgdW5zZXRf ZmxhZ3MgKENsdXR0ZXIuQWN0b3JGbGFncyBmbGFncyk7CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0K K0BAIC01MTAzLDE2ICs1MDIzLDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIENs dXR0ZXIuQWN0aW9uIGFjdGlvbnMgeyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIENsdXR0ZXIuQWN0b3JCb3ggYWxs b2NhdGlvbiB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIENsdXR0ZXIuR3Jhdml0eSBhbmNob3JfZ3Jhdml0eSB7IGdldDsgc2V0OyB9 CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgZmxv YXQgYW5jaG9yX3ggeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjAuOCIpXQorLQkJcHVibGljIGZsb2F0IGFuY2hvcl95IHsgZ2V0OyBzZXQ7IH0KKysJCXB1 YmxpYyBDbHV0dGVyLkFjdG9yQm94IGFsbG9jYXRpb24geyBvd25lZCBnZXQ7IH0KKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBiYWNrZ3JvdW5k X2NvbG9yIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAgLTUxMjIsMTEg KzUwMzMsOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MiIpXQorIAkJcHVibGljIGJvb2wgY2hpbGRfdHJhbnNmb3JtX3NldCB7IGdldDsgfQorIAkJW05v QWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIENsdXR0ZXIuR2VvbWV0cnkgY2xpcCB7IGdl dDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5SZWN0IGNsaXBfcmVjdCB7IG93bmVkIGdldDsgc2V0 OyB9CisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBjbGlwX3JlY3QgeyBvd25lZCBnZXQ7IHNldDsg fQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIGJvb2wgY2xpcF90b19h bGxvY2F0aW9uIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAgLTUxNDAs OCArNTA0OCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLkNvbnRl bnRHcmF2aXR5IGNvbnRlbnRfZ3Jhdml0eSB7IGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMiIpXQorIAkJcHVibGljIENsdXR0ZXIuQ29udGVudFJlcGVhdCBjb250ZW50X3Jl cGVhdCB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIGZsb2F0IGRl cHRoIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNCIpXQorIAkJcHVibGljIENsdXR0ZXIuRWZmZWN0IGVmZmVjdCB7IHNldDsgfQor QEAgLTUyMTEsMTIgKzUxMTcsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHVp bnQgb3BhY2l0eSB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5Qb2ludCBwaXZvdF9wb2lu dCB7IG93bmVkIGdldDsgc2V0OyB9CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQgcGl2b3RfcG9p bnQgeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJ CXB1YmxpYyBmbG9hdCBwaXZvdF9wb2ludF96IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29y TWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBDbHV0dGVy LlBvaW50IHBvc2l0aW9uIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBHcmFwaGVuZS5Q b2ludCBwb3NpdGlvbiB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MC42IildCisgCQlwdWJsaWMgYm9vbCByZWFjdGl2ZSB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nl c3Nvck1ldGhvZF0KK0BAIC01MjI1LDggKzUxMzEsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgQ2x1dHRlci5SZXF1ZXN0TW9k ZSByZXF1ZXN0X21vZGUgeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCistCQlw dWJsaWMgZmxvYXQgcmVzb3VyY2Vfc2NhbGUgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIGRvdWJsZSByb3RhdGlv bl9hbmdsZV94IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAgLTUyMzYs MjcgKzUxNDAsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MC42IildCisgCQlwdWJsaWMgZG91YmxlIHJvdGF0aW9uX2FuZ2xlX3ogeyBnZXQ7IHNldDsgfQor IAkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIENsdXR0 ZXIuVmVydGV4IHJvdGF0aW9uX2NlbnRlcl94IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29y TWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCByb3Rh dGlvbl9jZW50ZXJfeSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMC42IildCistCQlwdWJsaWMgQ2x1dHRlci5WZXJ0ZXggcm90YXRpb25fY2VudGVyX3og eyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIENsdXR0ZXIuR3Jhdml0eSByb3RhdGlvbl9jZW50ZXJfel9ncmF2aXR5IHsgZ2V0 OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1 YmxpYyBmbG9hdCBzY2FsZV9jZW50ZXJfeCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgZmxvYXQgc2NhbGVfY2VudGVyX3kg eyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIENsdXR0ZXIuR3Jhdml0eSBzY2FsZV9ncmF2aXR5IHsgZ2V0OyBzZXQ7IH0KKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVi bGljIGRvdWJsZSBzY2FsZV94IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQor QEAgLTUyNjksNyArNTE1Miw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29s IHNob3dfb25fc2V0X3BhcmVudCB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0K KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5TaXplIHNp emUgeyBvd25lZCBnZXQ7IHNldDsgfQorKwkJcHVibGljIEdyYXBoZW5lLlNpemUgc2l6ZSB7IG93 bmVkIGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMg Q2x1dHRlci5UZXh0RGlyZWN0aW9uIHRleHRfZGlyZWN0aW9uIHsgZ2V0OyBzZXQ7IH0KKyAJCVtO b0FjY2Vzc29yTWV0aG9kXQorQEAgLTUyOTksOCArNTE4Miw2IEBAIG5hbWVzcGFjZSBDbHV0dGVy IHsKKyAJCXB1YmxpYyBib29sIHlfZXhwYW5kIHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgZmxvYXQgel9wb3NpdGlvbiB7IGdldDsgc2V0OyB9 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc2lnbmFsIHZvaWQgYWxs b2NhdGlvbl9jaGFuZ2VkIChDbHV0dGVyLkFjdG9yQm94IGJveCwgQ2x1dHRlci5BbGxvY2F0aW9u RmxhZ3MgZmxhZ3MpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHZp cnR1YWwgc2lnbmFsIGJvb2wgYnV0dG9uX3ByZXNzX2V2ZW50IChDbHV0dGVyLkJ1dHRvbkV2ZW50 IGV2ZW50KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KK0BAIC01MzMxLDIyICs1MjEy LDI1IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29s IG1vdGlvbl9ldmVudCAoQ2x1dHRlci5Nb3Rpb25FdmVudCBldmVudCk7CisgCQlbSGFzRW1pdHRl cl0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBwYWlu dCAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHBhaW50IChDbHV0dGVyLlBhaW50 Q29udGV4dCBwYWludF9jb250ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KKyAJ CXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHBhcmVudF9zZXQgKENsdXR0ZXIuQWN0b3I/IG9s ZF9wYXJlbnQpOworKwkJW0hhc0VtaXR0ZXJdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBwaWNrIChDbHV0dGVyLkNvbG9yIGNvbG9y KTsKKysJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHBpY2sgKENsdXR0ZXIuUGlja0NvbnRl eHQgcGlja19jb250ZXh0KTsKKyAJCVtIYXNFbWl0dGVyXQorIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcXVldWVfcmVsYXlvdXQgKCk7 CisgCQlbSGFzRW1pdHRlcl0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgdmlydHVhbCBz aWduYWwgdm9pZCByZWFsaXplICgpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcmVz b3VyY2Vfc2NhbGVfY2hhbmdlZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJ CXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIHNjcm9sbF9ldmVudCAoQ2x1dHRlci5TY3JvbGxF dmVudCBldmVudCk7CisgCQlbSGFzRW1pdHRlcl0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIi KV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHNob3cgKCk7CisrCQlwdWJsaWMgc2ln bmFsIHZvaWQgc3RhZ2Vfdmlld3NfY2hhbmdlZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEyIildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCB0b3VjaF9ldmVudCAoQ2x1dHRl ci5FdmVudCBldmVudCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorQEAgLTUzNTgs MjEgKzUyNDIsMzMgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZpcnR1YWwgc2ln bmFsIHZvaWQgdW5yZWFsaXplICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hY3Rvcl9tZXRhX2dldF90 eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGFic3RyYWN0 IGNsYXNzIEFjdG9yTWV0YSA6IEdMaWIuSW5pdGlhbGx5VW5vd25lZCB7CisgCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgQWN0b3JNZXRhICgp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRl ci5BY3RvciBnZXRfYWN0b3IgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlw dWJsaWMgYm9vbCBnZXRfZW5hYmxlZCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0K KyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfbmFtZSAoKTsKKyAJCVtOb1dyYXBwZXJdCisg CQlwdWJsaWMgdmlydHVhbCB2b2lkIHNldF9hY3RvciAoQ2x1dHRlci5BY3Rvcj8gYWN0b3IpOwor LQkJcHVibGljIHZvaWQgc2V0X2VuYWJsZWQgKGJvb2wgaXNfZW5hYmxlZCk7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS40IildCisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNldF9lbmFibGVkIChi b29sIGlzX2VuYWJsZWQpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGlj IHZvaWQgc2V0X25hbWUgKHN0cmluZyBuYW1lKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQi KV0KKyAJCXB1YmxpYyBDbHV0dGVyLkFjdG9yIGFjdG9yIHsgZ2V0OyB9CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgYm9vbCBlbmFibGVkIHsgZ2V0OyBzZXQ7IH0KKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBzdHJpbmcgbmFtZSB7IGdldDsg c2V0OyB9CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FjdG9yX25vZGVfZ2V0X3R5cGUgKCkiKV0KKysJcHVi bGljIGNsYXNzIEFjdG9yTm9kZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsKKysJCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJQYWludE5vZGUqIild CisrCQlwdWJsaWMgQWN0b3JOb2RlIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKysJfQorIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNs dXR0ZXJfYWxpZ25fY29uc3RyYWludF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2Ug PSAiMS40IildCisgCXB1YmxpYyBjbGFzcyBBbGlnbkNvbnN0cmFpbnQgOiBDbHV0dGVyLkNvbnN0 cmFpbnQgeworQEAgLTUzODAsODEgKzUyNzYsMTggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ cHVibGljIEFsaWduQ29uc3RyYWludCAoQ2x1dHRlci5BY3Rvcj8gc291cmNlLCBDbHV0dGVyLkFs aWduQXhpcyBheGlzLCBmbG9hdCBmYWN0b3IpOworIAkJcHVibGljIENsdXR0ZXIuQWxpZ25BeGlz IGdldF9hbGlnbl9heGlzICgpOworIAkJcHVibGljIGZsb2F0IGdldF9mYWN0b3IgKCk7CisrCQlw dWJsaWMgdm9pZCBnZXRfcGl2b3RfcG9pbnQgKG91dCB1bm93bmVkIEdyYXBoZW5lLlBvaW50IHBp dm90X3BvaW50KTsKKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3NvdXJjZSAo KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9hbGlnbl9heGlzIChDbHV0dGVyLkFsaWduQXhpcyBheGlz KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9mYWN0b3IgKGZsb2F0IGZhY3Rvcik7CisrCQlwdWJsaWMg dm9pZCBzZXRfcGl2b3RfcG9pbnQgKEdyYXBoZW5lLlBvaW50IHBpdm90X3BvaW50KTsKKyAJCXB1 YmxpYyB2b2lkIHNldF9zb3VyY2UgKENsdXR0ZXIuQWN0b3I/IHNvdXJjZSk7CisgCQlwdWJsaWMg Q2x1dHRlci5BbGlnbkF4aXMgYWxpZ25fYXhpcyB7IGdldDsgc2V0IGNvbnN0cnVjdDsgfQorIAkJ cHVibGljIGZsb2F0IGZhY3RvciB7IGdldDsgc2V0IGNvbnN0cnVjdDsgfQorKwkJW05vQWNjZXNz b3JNZXRob2RdCisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQgcGl2b3RfcG9pbnQgeyBvd25lZCBn ZXQ7IHNldDsgfQorIAkJcHVibGljIENsdXR0ZXIuQWN0b3Igc291cmNlIHsgZ2V0OyBzZXQgY29u c3RydWN0OyB9CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FscGhhX2dldF90eXBlICgpIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMC4yIildCistCXB1YmxpYyBjbGFzcyBBbHBoYSA6IEdMaWIuSW5pdGlhbGx5VW5vd25lZCwg Q2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlKV0KKy0JCXB1YmxpYyBBbHBoYSAoKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9m dW5jdGlvbiA9IGZhbHNlKV0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1Ymxp YyBBbHBoYS5mdWxsIChDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lLCB1bG9uZyBtb2RlKTsKKy0J CXB1YmxpYyBkb3VibGUgZ2V0X2FscGhhICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIHVsb25nIGdldF9tb2RlICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRl ci5UaW1lbGluZSBnZXRfdGltZWxpbmUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgc3RhdGljIHVsb25nIHJlZ2lzdGVyX2Nsb3N1cmUgKEdMaWIuQ2xvc3VyZSBj bG9zdXJlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBzdGF0aWMg dWxvbmcgcmVnaXN0ZXJfZnVuYyAoQ2x1dHRlci5BbHBoYUZ1bmMgZnVuYyk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdm9pZCBzZXRfY2xvc3VyZSAoR0xpYi5DbG9z dXJlIGNsb3N1cmUpOworLQkJcHVibGljIHZvaWQgc2V0X2Z1bmMgKG93bmVkIENsdXR0ZXIuQWxw aGFGdW5jIGZ1bmMpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZv aWQgc2V0X21vZGUgKHVsb25nIG1vZGUpOworLQkJcHVibGljIHZvaWQgc2V0X3RpbWVsaW5lIChD bHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlKV0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBB bHBoYS53aXRoX2Z1bmMgKENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUsIG93bmVkIENsdXR0ZXIu QWxwaGFGdW5jIGZ1bmMpOworLQkJcHVibGljIGRvdWJsZSBhbHBoYSB7IGdldDsgfQorLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVsb25nIG1vZGUgeyBnZXQ7IHNldCBj b25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lIHsgZ2V0OyBz ZXQ7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYW5pbWF0aW9uX2dldF90eXBlICgpIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS4wIildCistCXB1YmxpYyBjbGFzcyBBbmltYXRpb24gOiBHTGliLk9iamVjdCwgQ2x1dHRl ci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl KV0KKy0JCXB1YmxpYyBBbmltYXRpb24gKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFu aW1hdGlvbiBiaW5kIChzdHJpbmcgcHJvcGVydHlfbmFtZSwgR0xpYi5WYWx1ZSBmaW5hbCk7Cist CQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBiaW5kX2ludGVydmFsIChzdHJpbmcg cHJvcGVydHlfbmFtZSwgb3duZWQgQ2x1dHRlci5JbnRlcnZhbCBpbnRlcnZhbCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbHBoYSBnZXRfYWxwaGEgKCk7 CistCQlwdWJsaWMgdWludCBnZXRfZHVyYXRpb24gKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0 dGVyLkludGVydmFsIGdldF9pbnRlcnZhbCAoc3RyaW5nIHByb3BlcnR5X25hbWUpOworLQkJcHVi bGljIGJvb2wgZ2V0X2xvb3AgKCk7CistCQlwdWJsaWMgdWxvbmcgZ2V0X21vZGUgKCk7CistCQlw dWJsaWMgdW5vd25lZCBHTGliLk9iamVjdCBnZXRfb2JqZWN0ICgpOworLQkJcHVibGljIHVub3du ZWQgQ2x1dHRlci5UaW1lbGluZSBnZXRfdGltZWxpbmUgKCk7CistCQlwdWJsaWMgYm9vbCBoYXNf cHJvcGVydHkgKHN0cmluZyBwcm9wZXJ0eV9uYW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgdm9pZCBzZXRfYWxwaGEgKENsdXR0ZXIuQWxwaGEgYWxwaGEpOworLQkJcHVibGljIHZv aWQgc2V0X2R1cmF0aW9uICh1aW50IG1zZWNzKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9sb29wIChi b29sIGxvb3ApOworLQkJcHVibGljIHZvaWQgc2V0X21vZGUgKHVsb25nIG1vZGUpOworLQkJcHVi bGljIHZvaWQgc2V0X29iamVjdCAoR0xpYi5PYmplY3Qgb2JqZWN0KTsKKy0JCXB1YmxpYyB2b2lk IHNldF90aW1lbGluZSAoQ2x1dHRlci5UaW1lbGluZT8gdGltZWxpbmUpOworLQkJcHVibGljIHZv aWQgdW5iaW5kX3Byb3BlcnR5IChzdHJpbmcgcHJvcGVydHlfbmFtZSk7CistCQlwdWJsaWMgdW5v d25lZCBDbHV0dGVyLkFuaW1hdGlvbiB1cGRhdGUgKHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGli LlZhbHVlIGZpbmFsKTsKKy0JCXB1YmxpYyB2b2lkIHVwZGF0ZV9pbnRlcnZhbCAoc3RyaW5nIHBy b3BlcnR5X25hbWUsIENsdXR0ZXIuSW50ZXJ2YWwgaW50ZXJ2YWwpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAi KV0KKy0JCXB1YmxpYyBDbHV0dGVyLkFscGhhIGFscGhhIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1Ymxp YyB1aW50IGR1cmF0aW9uIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBib29sIGxvb3AgeyBnZXQ7 IHNldDsgfQorLQkJcHVibGljIHVsb25nIG1vZGUgeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIEdM aWIuT2JqZWN0IG9iamVjdCB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5UaW1lbGlu ZSB0aW1lbGluZSB7IGdldDsgc2V0OyB9CistCQlbSGFzRW1pdHRlcl0KKy0JCXB1YmxpYyB2aXJ0 dWFsIHNpZ25hbCB2b2lkIGNvbXBsZXRlZCAoKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2 b2lkIHN0YXJ0ZWQgKCk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtDb21wYWN0XQorIAlbVmVy c2lvbiAoc2luY2UgPSAiMC4yIildCitAQCAtNTQ2NywzNyArNTMwMCwxNCBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JhY2tlbmRfZ2V0X3R5cGUgKCkiKV0KKyAJW1Zl cnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQlwdWJsaWMgY2xhc3MgQmFja2VuZCA6IEdMaWIuT2Jq ZWN0IHsKKysJcHVibGljIGFic3RyYWN0IGNsYXNzIEJhY2tlbmQgOiBHTGliLk9iamVjdCB7Cisg CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQg QmFja2VuZCAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFkZF9v cHRpb25zIChHTGliLk9wdGlvbkdyb3VwIGdyb3VwKTsKKy0JCXB1YmxpYyB2b2lkIGJlbGxfbm90 aWZ5ICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIGJvb2wgY3JlYXRlX2Nv bnRleHQgKCkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZp cnR1YWwgdW5vd25lZCBDbHV0dGVyLlN0YWdlV2luZG93IGNyZWF0ZV9zdGFnZSAoQ2x1dHRlci5T dGFnZSB3cmFwcGVyKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJs aWMgdmlydHVhbCB2b2lkIGVuc3VyZV9jb250ZXh0IChDbHV0dGVyLlN0YWdlIHN0YWdlKTsKKy0J CVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuRGV2aWNlTWFu YWdlciBnZXRfZGV2aWNlX21hbmFnZXIgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZp cnR1YWwgQ2x1dHRlci5GZWF0dXJlRmxhZ3MgZ2V0X2ZlYXR1cmVzICgpOworKwkJcHVibGljIHVu b3duZWQgQ2x1dHRlci5TZWF0IGdldF9kZWZhdWx0X3NlYXQgKCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC44IildCisgCQlwdWJsaWMgdW5vd25lZCBDYWlyby5Gb250T3B0aW9ucyBnZXRfZm9u dF9vcHRpb25zICgpOworIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5JbnB1dE1ldGhvZCBnZXRf aW5wdXRfbWV0aG9kICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5LZXltYXAgZ2V0X2tl eW1hcCAoKTsKKyAJCXB1YmxpYyBkb3VibGUgZ2V0X3Jlc29sdXRpb24gKCk7CistCQlbTm9XcmFw cGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBpbml0X2V2ZW50cyAoKTsKKy0JCVtOb1dyYXBw ZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGluaXRfZmVhdHVyZXMgKCk7CistCQlbTm9XcmFw cGVyXQorLQkJcHVibGljIHZpcnR1YWwgYm9vbCBwb3N0X3BhcnNlICgpIHRocm93cyBHTGliLkVy cm9yOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIGJvb2wgcHJlX3BhcnNlICgp IHRocm93cyBHTGliLkVycm9yOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZv aWQgcmVkcmF3IChDbHV0dGVyLlN0YWdlIHN0YWdlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIw LjgiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9mb250X29wdGlvbnMgKENhaXJvLkZvbnRPcHRpb25z IG9wdGlvbnMpOworIAkJcHVibGljIHZvaWQgc2V0X2lucHV0X21ldGhvZCAoQ2x1dHRlci5JbnB1 dE1ldGhvZCBtZXRob2QpOworQEAgLTU1MDgsOTUgKzUzMTgsMTEgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHNpZ25hbCB2b2lk IHNldHRpbmdzX2NoYW5nZWQgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JlaGF2aW91cl9nZXRfdHlw ZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS42Iiwgc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBCZWhhdmlv dXIgOiBHTGliLk9iamVjdCwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBCZWhhdmlvdXIgKCk7Cist CQlwdWJsaWMgdm9pZCBhY3RvcnNfZm9yZWFjaCAoQ2x1dHRlci5CZWhhdmlvdXJGb3JlYWNoRnVu YyBmdW5jKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFscGhhX25v dGlmeSAoZG91YmxlIGFscGhhX3ZhbHVlKTsKKy0JCXB1YmxpYyB2b2lkIGFwcGx5IChDbHV0dGVy LkFjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyBHTGliLlNMaXN0PHdlYWsgQ2x1dHRlci5BY3Rvcj4g Z2V0X2FjdG9ycyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWxwaGEgZ2V0X2FscGhh ICgpOworLQkJcHVibGljIGludCBnZXRfbl9hY3RvcnMgKCk7CistCQlwdWJsaWMgdW5vd25lZCBD bHV0dGVyLkFjdG9yIGdldF9udGhfYWN0b3IgKGludCBpbmRleF8pOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjAuNCIpXQorLQkJcHVibGljIGJvb2wgaXNfYXBwbGllZCAoQ2x1dHRlci5BY3RvciBh Y3Rvcik7CistCQlwdWJsaWMgdm9pZCByZW1vdmUgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX2FsbCAoKTsK Ky0JCXB1YmxpYyB2b2lkIHNldF9hbHBoYSAoQ2x1dHRlci5BbHBoYSBhbHBoYSk7CistCQlwdWJs aWMgQ2x1dHRlci5BbHBoYSBhbHBoYSB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMC40IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBhcHBsaWVkIChDbHV0dGVy LkFjdG9yIGFjdG9yKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2 aXJ0dWFsIHNpZ25hbCB2b2lkIHJlbW92ZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQg PSAiY2x1dHRlcl9iZWhhdmlvdXJfZGVwdGhfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNiIsIHNpbmNlID0gIjAuMiIp XQorLQlwdWJsaWMgY2xhc3MgQmVoYXZpb3VyRGVwdGggOiBDbHV0dGVyLkJlaGF2aW91ciwgQ2x1 dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlLCB0eXBlID0gIkNsdXR0ZXJCZWhhdmlvdXIqIildCistCQlbVmVyc2lvbiAoc2luY2UgPSAi MC40IildCistCQlwdWJsaWMgQmVoYXZpb3VyRGVwdGggKENsdXR0ZXIuQWxwaGE/IGFscGhhLCBp bnQgZGVwdGhfc3RhcnQsIGludCBkZXB0aF9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAu NiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2JvdW5kcyAob3V0IGludCBkZXB0aF9zdGFydCwgb3V0 IGludCBkZXB0aF9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2JvdW5kcyAoaW50IGRlcHRoX3N0YXJ0LCBpbnQgZGVwdGhfZW5kKTsKKy0JCVtO b0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGlj IGludCBkZXB0aF9lbmQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlb VmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgaW50IGRlcHRoX3N0YXJ0IHsgZ2V0 OyBzZXQ7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYmVoYXZpb3VyX29wYWNpdHlfZ2V0X3R5cGUgKCki KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu NiIsIHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgY2xhc3MgQmVoYXZpb3VyT3BhY2l0eSA6IENs dXR0ZXIuQmVoYXZpb3VyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckJlaGF2aW91cioiKV0KKy0J CXB1YmxpYyBCZWhhdmlvdXJPcGFjaXR5IChDbHV0dGVyLkFscGhhPyBhbHBoYSwgdWludDggb3Bh Y2l0eV9zdGFydCwgdWludDggb3BhY2l0eV9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAu NiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2JvdW5kcyAob3V0IHVpbnQ4IG9wYWNpdHlfc3RhcnQs IG91dCB1aW50OCBvcGFjaXR5X2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCist CQlwdWJsaWMgdm9pZCBzZXRfYm91bmRzICh1aW50OCBvcGFjaXR5X3N0YXJ0LCB1aW50OCBvcGFj aXR5X2VuZCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB1aW50IG9wYWNpdHlf ZW5kIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQg b3BhY2l0eV9zdGFydCB7IGdldDsgc2V0OyB9CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JlaGF2aW91cl9z Y2FsZV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS42Iiwgc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBjbGFzcyBCZWhh dmlvdXJTY2FsZSA6IENsdXR0ZXIuQmVoYXZpb3VyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckJl aGF2aW91cioiKV0KKy0JCXB1YmxpYyBCZWhhdmlvdXJTY2FsZSAoQ2x1dHRlci5BbHBoYT8gYWxw aGEsIGRvdWJsZSB4X3NjYWxlX3N0YXJ0LCBkb3VibGUgeV9zY2FsZV9zdGFydCwgZG91YmxlIHhf c2NhbGVfZW5kLCBkb3VibGUgeV9zY2FsZV9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAu NCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2JvdW5kcyAob3V0IGRvdWJsZSB4X3NjYWxlX3N0YXJ0 LCBvdXQgZG91YmxlIHlfc2NhbGVfc3RhcnQsIG91dCBkb3VibGUgeF9zY2FsZV9lbmQsIG91dCBk b3VibGUgeV9zY2FsZV9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVi bGljIHZvaWQgc2V0X2JvdW5kcyAoZG91YmxlIHhfc2NhbGVfc3RhcnQsIGRvdWJsZSB5X3NjYWxl X3N0YXJ0LCBkb3VibGUgeF9zY2FsZV9lbmQsIGRvdWJsZSB5X3NjYWxlX2VuZCk7CistCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBk b3VibGUgeF9zY2FsZV9lbmQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCist CQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgZG91YmxlIHhfc2NhbGVfc3Rh cnQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC42IildCistCQlwdWJsaWMgZG91YmxlIHlfc2NhbGVfZW5kIHsgZ2V0OyBzZXQ7IH0K Ky0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJ cHVibGljIGRvdWJsZSB5X3NjYWxlX3N0YXJ0IHsgZ2V0OyBzZXQ7IH0KKy0JfQorIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0 ZXJfYmluX2xheW91dF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIild CisgCXB1YmxpYyBjbGFzcyBCaW5MYXlvdXQgOiBDbHV0dGVyLkxheW91dE1hbmFnZXIgeworIAkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckxh eW91dE1hbmFnZXIqIildCisgCQlwdWJsaWMgQmluTGF5b3V0IChDbHV0dGVyLkJpbkFsaWdubWVu dCB4X2FsaWduID0gQ2x1dHRlci5CaW5BbGlnbm1lbnQuU1RBUlQsIENsdXR0ZXIuQmluQWxpZ25t ZW50IHlfYWxpZ24gPSBDbHV0dGVyLkJpbkFsaWdubWVudC5TVEFSVCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu MiIpXQorLQkJcHVibGljIHZvaWQgYWRkIChDbHV0dGVyLkFjdG9yIGNoaWxkLCBDbHV0dGVyLkJp bkFsaWdubWVudCB4X2FsaWduLCBDbHV0dGVyLkJpbkFsaWdubWVudCB5X2FsaWduKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBnZXRfYWxpZ25tZW50IChDbHV0dGVyLkFjdG9y PyBjaGlsZCwgb3V0IENsdXR0ZXIuQmluQWxpZ25tZW50IHhfYWxpZ24sIG91dCBDbHV0dGVyLkJp bkFsaWdubWVudCB5X2FsaWduKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBz ZXRfYWxpZ25tZW50IChDbHV0dGVyLkFjdG9yPyBjaGlsZCwgQ2x1dHRlci5CaW5BbGlnbm1lbnQg eF9hbGlnbiwgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeV9hbGlnbik7CisgCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgQ2x1dHRlci5CaW5BbGlnbm1lbnQg eF9hbGlnbiB7IGdldDsgc2V0OyB9CitAQCAtNTY0NCw5OCArNTM3MCwyOSBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlw ZSA9ICJDbHV0dGVyRWZmZWN0KiIpXQorIAkJcHVibGljIEJsdXJFZmZlY3QgKCk7CisgCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9 ICJjbHV0dGVyX2JveF9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIild CistCXB1YmxpYyBjbGFzcyBCb3ggOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENs dXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7 CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0 dGVyQWN0b3IqIildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIEJveCAoQ2x1dHRlci5M YXlvdXRNYW5hZ2VyIG1hbmFnZXIpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBDbHV0 dGVyLkNvbG9yIGdldF9jb2xvciAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdW5v d25lZCBDbHV0dGVyLkxheW91dE1hbmFnZXIgZ2V0X2xheW91dF9tYW5hZ2VyICgpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5j ZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHBhY2sgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIC4u Lik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgcGFja19hZnRlciAoQ2x1dHRl ci5BY3RvciBhY3RvciwgQ2x1dHRlci5BY3Rvcj8gc2libGluZywgLi4uKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAi MS4yIildCistCQlwdWJsaWMgdm9pZCBwYWNrX2F0IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBpbnQg cG9zaXRpb24sIC4uLik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgcGFja19i ZWZvcmUgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuQWN0b3I/IHNpYmxpbmcsIC4uLik7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgcGFja3YgKENsdXR0ZXIuQWN0b3Ig YWN0b3IsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5 X2xlbmd0aF9wb3MgPSAxLjUsIGFycmF5X2xlbmd0aF90eXBlID0gImd1aW50IildIHN0cmluZ1td IHByb3BlcnRpZXMsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIs IGFycmF5X2xlbmd0aF9wb3MgPSAxLjUsIGFycmF5X2xlbmd0aF90eXBlID0gImd1aW50IildIEdM aWIuVmFsdWVbXSB2YWx1ZXMpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9jb2xvciAoQ2x1dHRlci5Db2xvcj8gY29sb3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9sYXlvdXRfbWFuYWdlciAoQ2x1dHRlci5MYXlvdXRNYW5hZ2VyIG1hbmFn ZXIpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGNvbG9yIHsg Z2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0J CXB1YmxpYyBib29sIGNvbG9yX3NldCB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5M YXlvdXRNYW5hZ2VyIGxheW91dF9tYW5hZ2VyIHsgZ2V0OyBzZXQ7IH0KKy0JfQorIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0 ZXJfYm94X2xheW91dF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIild CisgCXB1YmxpYyBjbGFzcyBCb3hMYXlvdXQgOiBDbHV0dGVyLkxheW91dE1hbmFnZXIgeworIAkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckxh eW91dE1hbmFnZXIqIildCisgCQlwdWJsaWMgQm94TGF5b3V0ICgpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIi KV0KKy0JCXB1YmxpYyB2b2lkIGdldF9hbGlnbm1lbnQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIG91 dCBDbHV0dGVyLkJveEFsaWdubWVudCB4X2FsaWduLCBvdXQgQ2x1dHRlci5Cb3hBbGlnbm1lbnQg eV9hbGlnbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHVpbnQgZ2V0X2Vhc2luZ19k dXJhdGlvbiAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdWxvbmcgZ2V0X2Vhc2lu Z19tb2RlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBib29sIGdldF9leHBhbmQg KENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lk IGdldF9maWxsIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQgYm9vbCB4X2ZpbGwsIG91dCBib29s IHlfZmlsbCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgYm9vbCBn ZXRfaG9tb2dlbmVvdXMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVi bGljIENsdXR0ZXIuT3JpZW50YXRpb24gZ2V0X29yaWVudGF0aW9uICgpOworIAkJcHVibGljIGJv b2wgZ2V0X3BhY2tfc3RhcnQgKCk7CisgCQlwdWJsaWMgdWludCBnZXRfc3BhY2luZyAoKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgYm9vbCBnZXRfdXNlX2FuaW1hdGlvbnMgKCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3ZlcnRpY2FsICgpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHBhY2sgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGJv b2wgZXhwYW5kLCBib29sIHhfZmlsbCwgYm9vbCB5X2ZpbGwsIENsdXR0ZXIuQm94QWxpZ25tZW50 IHhfYWxpZ24sIENsdXR0ZXIuQm94QWxpZ25tZW50IHlfYWxpZ24pOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbGlnbm1lbnQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENs dXR0ZXIuQm94QWxpZ25tZW50IHhfYWxpZ24sIENsdXR0ZXIuQm94QWxpZ25tZW50IHlfYWxpZ24p OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9lYXNpbmdfZHVyYXRpb24g KHVpbnQgbXNlY3MpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9lYXNp bmdfbW9kZSAodWxvbmcgbW9kZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQg c2V0X2V4cGFuZCAoQ2x1dHRlci5BY3RvciBhY3RvciwgYm9vbCBleHBhbmQpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9maWxsIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBi b29sIHhfZmlsbCwgYm9vbCB5X2ZpbGwpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQor IAkJcHVibGljIHZvaWQgc2V0X2hvbW9nZW5lb3VzIChib29sIGhvbW9nZW5lb3VzKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdm9pZCBzZXRfb3JpZW50YXRpb24g KENsdXR0ZXIuT3JpZW50YXRpb24gb3JpZW50YXRpb24pOworIAkJcHVibGljIHZvaWQgc2V0X3Bh Y2tfc3RhcnQgKGJvb2wgcGFja19zdGFydCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfc3BhY2luZyAo dWludCBzcGFjaW5nKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBzZXRfdXNl X2FuaW1hdGlvbnMgKGJvb2wgYW5pbWF0ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGlj IHZvaWQgc2V0X3ZlcnRpY2FsIChib29sIHZlcnRpY2FsKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCist CQlwdWJsaWMgdWludCBlYXNpbmdfZHVyYXRpb24geyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjIiKV0KKy0JCXB1YmxpYyB1bG9uZyBlYXNpbmdfbW9kZSB7IGdldDsgc2V0OyB9CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgYm9vbCBob21vZ2VuZW91cyB7IGdldDsg c2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIENsdXR0ZXIu T3JpZW50YXRpb24gb3JpZW50YXRpb24geyBnZXQ7IHNldDsgfQorIAkJcHVibGljIGJvb2wgcGFj a19zdGFydCB7IGdldDsgc2V0OyB9CisgCQlwdWJsaWMgdWludCBzcGFjaW5nIHsgZ2V0OyBzZXQ7 IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgYm9vbCB1c2VfYW5pbWF0aW9ucyB7IGdl dDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIGJvb2wgdmVydGljYWwgeyBn ZXQ7IHNldDsgfQorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9icmlnaHRuZXNzX2NvbnRyYXN0X2VmZmVjdF9n ZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTU3NDksOSAr NTQwNiw5IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9jb250cmFz dCAoZmxvYXQgY29udHJhc3QpOworIAkJcHVibGljIHZvaWQgc2V0X2NvbnRyYXN0X2Z1bGwgKGZs b2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUpOworIAkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBicmlnaHRuZXNzIHsgZ2V0OyBzZXQ7IH0KKysJCXB1 YmxpYyBDbHV0dGVyLkNvbG9yIGJyaWdodG5lc3MgeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJW05v QWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBjb250cmFzdCB7IGdldDsg c2V0OyB9CisrCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBjb250cmFzdCB7IG93bmVkIGdldDsgc2V0 OyB9CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtDb21wYWN0XQorQEAgLTU3NzAsMzcgKzU0Mjcs NiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZmxvYXQgeDsKKyAJCXB1YmxpYyBm bG9hdCB5OworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9jYWlyb190ZXh0dXJlX2dldF90eXBlICgpIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS4wIildCistCXB1YmxpYyBjbGFzcyBDYWlyb1RleHR1cmUgOiBDbHV0dGVyLlRl eHR1cmUsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRh aW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCXB1YmxpYyBDYWlyb1Rl eHR1cmUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0KTsKKy0JCXB1YmxpYyB2b2lkIGNsZWFyICgp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu OCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENhaXJvLkNvbnRleHQgY3JlYXRlICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIs IHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENhaXJvLkNvbnRleHQgY3JlYXRlX3JlZ2lvbiAo aW50IHhfb2Zmc2V0LCBpbnQgeV9vZmZzZXQsIGludCB3aWR0aCwgaW50IGhlaWdodCk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgYm9vbCBnZXRfYXV0b19yZXNpemUg KCk7CistCQlwdWJsaWMgdm9pZCBnZXRfc3VyZmFjZV9zaXplIChvdXQgdWludCB3aWR0aCwgb3V0 IHVpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2 b2lkIGludmFsaWRhdGUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJs aWMgdm9pZCBpbnZhbGlkYXRlX3JlY3RhbmdsZSAoQ2Fpcm8uUmVjdGFuZ2xlSW50PyByZWN0KTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hdXRvX3Jl c2l6ZSAoYm9vbCB2YWx1ZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfc3VyZmFjZV9zaXplICh1aW50 IHdpZHRoLCB1aW50IGhlaWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlw dWJsaWMgYm9vbCBhdXRvX3Jlc2l6ZSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCXB1YmxpYyB1aW50IHN1cmZhY2VfaGVpZ2h0IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0Fj Y2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQgc3VyZmFjZV93aWR0aCB7IGdldDsgc2V0OyB9 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwg Q2Fpcm8uU3VyZmFjZSBjcmVhdGVfc3VyZmFjZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJv b2wgZHJhdyAoQ2Fpcm8uQ29udGV4dCBjcik7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2NhbnZhc19nZXRf dHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgY2xhc3Mg Q2FudmFzIDogR0xpYi5PYmplY3QsIENsdXR0ZXIuQ29udGVudCB7CitAQCAtNTgyNywxNyArNTQ1 MywyMCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5Db250YWluZXIg Y29udGFpbmVyIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfY2xpY2tfYWN0 aW9uX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGlj IGNsYXNzIENsaWNrQWN0aW9uIDogQ2x1dHRlci5BY3Rpb24geworIAkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdGlvbioiKV0KKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBDbGlja0FjdGlvbiAoKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB1aW50IGdldF9idXR0b24gKCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCBnZXRfY29vcmRzIChv dXQgZmxvYXQgcHJlc3NfeCwgb3V0IGZsb2F0IHByZXNzX3kpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNiIpXQorIAkJcHVibGljIENsdXR0ZXIuTW9kaWZpZXJUeXBlIGdldF9zdGF0ZSAoKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHJlbGVhc2UgKCk7 CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJ CXB1YmxpYyBib29sIGhlbGQgeyBnZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuOCIpXQorQEAgLTU4NDYsNyArNTQ3NSw5IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyBpbnQgbG9u Z19wcmVzc190aHJlc2hvbGQgeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgYm9vbCBwcmVzc2VkIHsgZ2V0 OyB9CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWdu YWwgdm9pZCBjbGlja2VkIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIGxvbmdfcHJlc3MgKENs dXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuTG9uZ1ByZXNzU3RhdGUgc3RhdGUpOworQEAgLTU4 ODgsOCArNTUxOSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXByb3RlY3RlZCBDb25zdHJh aW50ICgpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgdXBkYXRlX2Fs bG9jYXRpb24gKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuQWN0b3JCb3ggYWxsb2NhdGlv bik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCB1cGRhdGVfcHJlZmVy cmVkX3NpemUgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuT3JpZW50YXRpb24gZGlyZWN0 aW9uLCBmbG9hdCBmb3Jfc2l6ZSwgZmxvYXQgbWluaW11bV9zaXplLCBmbG9hdCBuYXR1cmFsX3Np emUpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCB1cGRhdGVfcHJlZmVycmVkX3NpemUgKENsdXR0 ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuT3JpZW50YXRpb24gZGlyZWN0aW9uLCBmbG9hdCBmb3Jf c2l6ZSwgcmVmIGZsb2F0IG1pbmltdW1fc2l6ZSwgcmVmIGZsb2F0IG5hdHVyYWxfc2l6ZSk7Cisg CX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaGFz X3R5cGVfaWQgPSBmYWxzZSldCisgCVtDb21wYWN0XQorQEAgLTU4OTgsNiArNTUyOCw3IEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB3ZWFrIENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2 aWNlOworIAkJcHVibGljIENsdXR0ZXIuRXZlbnRGbGFncyBmbGFnczsKKyAJCXB1YmxpYyB3ZWFr IENsdXR0ZXIuQWN0b3IgcmVsYXRlZDsKKysJCXB1YmxpYyB3ZWFrIENsdXR0ZXIuRXZlbnRTZXF1 ZW5jZSBzZXF1ZW5jZTsKKyAJCXB1YmxpYyB3ZWFrIENsdXR0ZXIuQWN0b3Igc291cmNlOworIAkJ cHVibGljIHdlYWsgQ2x1dHRlci5TdGFnZSBzdGFnZTsKKyAJCXB1YmxpYyB1aW50MzIgdGltZTsK K0BAIC01OTMxLDk4ICs1NTYyLDIxIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2 b2lkIHNldF9mYWN0b3IgKGRvdWJsZSBmYWN0b3IpOworIAkJcHVibGljIGRvdWJsZSBmYWN0b3Ig eyBnZXQ7IHNldDsgfQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9kZXZpY2VfbWFuYWdlcl9nZXRfdHlwZSAo KSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFz cyBEZXZpY2VNYW5hZ2VyIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIERldmljZU1hbmFnZXIgKCk7CistCQlb Tm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBhZGRfZGV2aWNlIChDbHV0dGVyLklu cHV0RGV2aWNlIGRldmljZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9p ZCBhcHBseV9rYmRfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5LYmRBMTF5U2V0dGluZ3Mgc2V0dGlu Z3MpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgY29tcHJlc3NfbW90 aW9uIChDbHV0dGVyLkV2ZW50IGV2ZW50LCBDbHV0dGVyLkV2ZW50IHRvX2Rpc2NhcmQpOworLQkJ cHVibGljIHZpcnR1YWwgQ2x1dHRlci5WaXJ0dWFsSW5wdXREZXZpY2UgY3JlYXRlX3ZpcnR1YWxf ZGV2aWNlIChDbHV0dGVyLklucHV0RGV2aWNlVHlwZSBkZXZpY2VfdHlwZSk7CistCQlwdWJsaWMg dmlydHVhbCB1bm93bmVkIENsdXR0ZXIuSW5wdXREZXZpY2UgZ2V0X2NvcmVfZGV2aWNlIChDbHV0 dGVyLklucHV0RGV2aWNlVHlwZSBkZXZpY2VfdHlwZSk7CistCQlwdWJsaWMgc3RhdGljIHVub3du ZWQgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGdldF9kZWZhdWx0ICgpOworLQkJcHVibGljIHZpcnR1 YWwgdW5vd25lZCBDbHV0dGVyLklucHV0RGV2aWNlIGdldF9kZXZpY2UgKGludCBkZXZpY2VfaWQp OworLQkJcHVibGljIHZvaWQgZ2V0X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVyLktiZEExMXlT ZXR0aW5ncyBzZXR0aW5ncyk7CistCQlwdWJsaWMgdmlydHVhbCBDbHV0dGVyLlZpcnR1YWxEZXZp Y2VUeXBlIGdldF9zdXBwb3J0ZWRfdmlydHVhbF9kZXZpY2VfdHlwZXMgKCk7CistCQlwdWJsaWMg R0xpYi5TTGlzdDx3ZWFrIENsdXR0ZXIuSW5wdXREZXZpY2U+IGxpc3RfZGV2aWNlcyAoKTsKKy0J CXB1YmxpYyB1bm93bmVkIEdMaWIuU0xpc3Q8Q2x1dHRlci5JbnB1dERldmljZT4gcGVla19kZXZp Y2VzICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcmVtb3ZlX2Rl dmljZSAoQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1 YmxpYyB2aXJ0dWFsIHZvaWQgc2VsZWN0X3N0YWdlX2V2ZW50cyAoQ2x1dHRlci5TdGFnZSBzdGFn ZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfa2JkX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuS2JkQTEx eVNldHRpbmdzIHNldHRpbmdzKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIENs dXR0ZXIuQmFja2VuZCBiYWNrZW5kIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCXB1Ymxp YyBzaWduYWwgdm9pZCBkZXZpY2VfYWRkZWQgKENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlKTsK Ky0JCXB1YmxpYyBzaWduYWwgdm9pZCBkZXZpY2VfcmVtb3ZlZCAoQ2x1dHRlci5JbnB1dERldmlj ZSBkZXZpY2UpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGtiZF9hMTF5X2ZsYWdzX2NoYW5nZWQg KHVpbnQgc2V0dGluZ3NfZmxhZ3MsIHVpbnQgY2hhbmdlZF9tYXNrKTsKKy0JCXB1YmxpYyBzaWdu YWwgdm9pZCBrYmRfYTExeV9tb2RzX3N0YXRlX2NoYW5nZWQgKHVpbnQgbGF0Y2hlZF9tYXNrLCB1 aW50IGxvY2tlZF9tYXNrKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB0b29sX2NoYW5nZWQgKENs dXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0LCBDbHV0dGVyLklucHV0RGV2aWNlVG9vbCBwMCk7Cist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlw ZV9pZCA9ICJjbHV0dGVyX2RyYWdfYWN0aW9uX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChz aW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGNsYXNzIERyYWdBY3Rpb24gOiBDbHV0dGVyLkFjdGlv biB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJD bHV0dGVyQWN0aW9uKiIpXQorLQkJcHVibGljIERyYWdBY3Rpb24gKCk7CistCQlwdWJsaWMgYm9v bCBnZXRfZHJhZ19hcmVhIChDbHV0dGVyLlJlY3QgZHJhZ19hcmVhKTsKKy0JCXB1YmxpYyBDbHV0 dGVyLkRyYWdBeGlzIGdldF9kcmFnX2F4aXMgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVy LkFjdG9yIGdldF9kcmFnX2hhbmRsZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9kcmFnX3RocmVz aG9sZCAob3V0IHVpbnQgeF90aHJlc2hvbGQsIG91dCB1aW50IHlfdGhyZXNob2xkKTsKKy0JCXB1 YmxpYyB2b2lkIGdldF9tb3Rpb25fY29vcmRzIChvdXQgZmxvYXQgbW90aW9uX3gsIG91dCBmbG9h dCBtb3Rpb25feSk7CistCQlwdWJsaWMgdm9pZCBnZXRfcHJlc3NfY29vcmRzIChvdXQgZmxvYXQg cHJlc3NfeCwgb3V0IGZsb2F0IHByZXNzX3kpOworLQkJcHVibGljIHZvaWQgc2V0X2RyYWdfYXJl YSAoQ2x1dHRlci5SZWN0PyBkcmFnX2FyZWEpOworLQkJcHVibGljIHZvaWQgc2V0X2RyYWdfYXhp cyAoQ2x1dHRlci5EcmFnQXhpcyBheGlzKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9kcmFnX2hhbmRs ZSAoQ2x1dHRlci5BY3Rvcj8gaGFuZGxlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9kcmFnX3RocmVz aG9sZCAoaW50IHhfdGhyZXNob2xkLCBpbnQgeV90aHJlc2hvbGQpOworLQkJW05vQWNjZXNzb3JN ZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIENsdXR0ZXIu UmVjdCBkcmFnX2FyZWEgeyBvd25lZCBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIGJvb2wgZHJhZ19hcmVh X3NldCB7IGdldDsgfQorLQkJcHVibGljIENsdXR0ZXIuRHJhZ0F4aXMgZHJhZ19heGlzIHsgZ2V0 OyBzZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLkFjdG9yIGRyYWdfaGFuZGxlIHsgZ2V0OyBzZXQ7 IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCB4X2RyYWdfdGhyZXNob2xk IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCB5X2Ry YWdfdGhyZXNob2xkIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lk IGRyYWdfYmVnaW4gKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGZsb2F0IGV2ZW50X3gsIGZsb2F0IGV2 ZW50X3ksIENsdXR0ZXIuTW9kaWZpZXJUeXBlIG1vZGlmaWVycyk7CistCQlwdWJsaWMgdmlydHVh bCBzaWduYWwgdm9pZCBkcmFnX2VuZCAoQ2x1dHRlci5BY3RvciBhY3RvciwgZmxvYXQgZXZlbnRf eCwgZmxvYXQgZXZlbnRfeSwgQ2x1dHRlci5Nb2RpZmllclR5cGUgbW9kaWZpZXJzKTsKKy0JCXB1 YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGRyYWdfbW90aW9uIChDbHV0dGVyLkFjdG9yIGFjdG9y LCBmbG9hdCBkZWx0YV94LCBmbG9hdCBkZWx0YV95KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEyIildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCBkcmFnX3Byb2dyZXNzIChDbHV0 dGVyLkFjdG9yIGFjdG9yLCBmbG9hdCBkZWx0YV94LCBmbG9hdCBkZWx0YV95KTsKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0g ImNsdXR0ZXJfZHJvcF9hY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0g IjEuOCIpXQorLQlwdWJsaWMgY2xhc3MgRHJvcEFjdGlvbiA6IENsdXR0ZXIuQWN0aW9uIHsKKy0J CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJB Y3Rpb24qIildCistCQlwdWJsaWMgRHJvcEFjdGlvbiAoKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHNp Z25hbCBib29sIGNhbl9kcm9wIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBmbG9hdCBldmVudF94LCBm bG9hdCBldmVudF95KTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGRyb3AgKENsdXR0 ZXIuQWN0b3IgYWN0b3IsIGZsb2F0IGV2ZW50X3gsIGZsb2F0IGV2ZW50X3kpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBkcm9wX2NhbmNlbCAo Q2x1dHRlci5BY3RvciBhY3RvciwgZmxvYXQgZXZlbnRfeCwgZmxvYXQgZXZlbnRfeSk7CistCQlw dWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBvdmVyX2luIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsK Ky0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIG92ZXJfb3V0IChDbHV0dGVyLkFjdG9yIGFj dG9yKTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfZWZmZWN0X2dldF90eXBlICgpIildCisgCVtWZXJzaW9u IChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIEVmZmVjdCA6IENsdXR0 ZXIuQWN0b3JNZXRhIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl KV0KKyAJCXByb3RlY3RlZCBFZmZlY3QgKCk7CisgCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZp cnR1YWwgYm9vbCBnZXRfcGFpbnRfdm9sdW1lIChDbHV0dGVyLlBhaW50Vm9sdW1lIHZvbHVtZSk7 CisrCQlwdWJsaWMgdmlydHVhbCBib29sIG1vZGlmeV9wYWludF92b2x1bWUgKENsdXR0ZXIuUGFp bnRWb2x1bWUgdm9sdW1lKTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lk IHBhaW50IChDbHV0dGVyLkVmZmVjdFBhaW50RmxhZ3MgZmxhZ3MpOworKwkJcHVibGljIHZpcnR1 YWwgdm9pZCBwYWludCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCwgQ2x1dHRl ci5FZmZlY3RQYWludEZsYWdzIGZsYWdzKTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmly dHVhbCB2b2lkIHBpY2sgKENsdXR0ZXIuRWZmZWN0UGFpbnRGbGFncyBmbGFncyk7CisrCQlwdWJs aWMgdmlydHVhbCB2b2lkIHBpY2sgKENsdXR0ZXIuUGlja0NvbnRleHQgcGlja19jb250ZXh0KTsK KyAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBvc3RfcGFpbnQgKCk7Cisr CQlwdWJsaWMgdmlydHVhbCB2b2lkIHBvc3RfcGFpbnQgKENsdXR0ZXIuUGFpbnRDb250ZXh0IHBh aW50X2NvbnRleHQpOworIAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIGJvb2wgcHJl X3BhaW50ICgpOworKwkJcHVibGljIHZpcnR1YWwgYm9vbCBwcmVfcGFpbnQgKENsdXR0ZXIuUGFp bnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQor IAkJcHVibGljIHZvaWQgcXVldWVfcmVwYWludCAoKTsKKyAJfQorQEAgLTYwMzMsOCArNTU4Nywx MiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5FdmVudFR5cGUgdHlw ZTsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXB1Ymxp YyBFdmVudCAoQ2x1dHRlci5FdmVudFR5cGUgdHlwZSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xOCIpXQorKwkJcHVibGljIHN0YXRpYyB1aW50IGFkZF9maWx0ZXIgKENsdXR0ZXIuU3RhZ2U/ IHN0YWdlLCBbQ0NvZGUgKGRlbGVnYXRlX3RhcmdldF9wb3MgPSAyLjIsIGRlc3Ryb3lfbm90aWZ5 X3BvcyA9IDIuMSldIG93bmVkIENsdXR0ZXIuRXZlbnRGaWx0ZXJGdW5jIGZ1bmMpOworIAkJcHVi bGljIENsdXR0ZXIuRXZlbnQgY29weSAoKTsKKyAJCXB1YmxpYyB2b2lkIGZyZWUgKCk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMC40IildCisrCQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuRXZlbnQg QGdldCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgZG91Ymxl IGdldF9hbmdsZSAoQ2x1dHRlci5FdmVudCB0YXJnZXQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuNiIpXQorQEAgLTYwNzMsNyArNTYzMSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1 YmxpYyB1aW50IGdldF9tb2RlX2dyb3VwICgpOworIAkJcHVibGljIGJvb2wgZ2V0X3BhZF9ldmVu dF9kZXRhaWxzIChvdXQgdWludCBudW1iZXIsIG91dCB1aW50IG1vZGUsIG91dCBkb3VibGUgdmFs dWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9w b3NpdGlvbiAoQ2x1dHRlci5Qb2ludCBwb3NpdGlvbik7CisrCQlwdWJsaWMgdm9pZCBnZXRfcG9z aXRpb24gKEdyYXBoZW5lLlBvaW50IHBvc2l0aW9uKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3JlbGF0ZWQgKCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTYxMDYsOCArNTY2NCwxMiBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBoYXNfc2hpZnRfbW9kaWZpZXIgKCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGJvb2wgaXNfcG9pbnRlcl9l bXVsYXRlZCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKysJCXB1YmxpYyBzdGF0 aWMgdW5vd25lZCBDbHV0dGVyLkV2ZW50IHBlZWsgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MC42IildCisgCQlwdWJsaWMgdm9pZCBwdXQgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x OCIpXQorKwkJcHVibGljIHN0YXRpYyB2b2lkIHJlbW92ZV9maWx0ZXIgKHVpbnQgaWQpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2J1dHRvbiAodWlu dDMyIGJ1dHRvbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCitAQCAtNjE0MCwxNiAr NTcwMiw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9zdGF0ZSAo Q2x1dHRlci5Nb2RpZmllclR5cGUgc3RhdGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIp XQorIAkJcHVibGljIHZvaWQgc2V0X3RpbWUgKHVpbnQzMiB0aW1lXyk7CistCQlwdWJsaWMgQ2x1 dHRlci5BbnlFdmVudCBhbnkge1tDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJBbnlFdmVudCAqKSIp XSAgZ2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5CdXR0b25FdmVudCBidXR0b24ge1tDQ29kZSAo Y25hbWUgPSAiKENsdXR0ZXJCdXR0b25FdmVudCAqKSIpXSAgZ2V0OyB9CistCQlwdWJsaWMgQ2x1 dHRlci5Dcm9zc2luZ0V2ZW50IGNyb3NzaW5nIHtbQ0NvZGUgKGNuYW1lID0gIihDbHV0dGVyQ3Jv c3NpbmdFdmVudCAqKSIpXSAgZ2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5LZXlFdmVudCBrZXkg e1tDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJLZXlFdmVudCAqKSIpXSAgZ2V0OyB9CistCQlwdWJs aWMgQ2x1dHRlci5Nb3Rpb25FdmVudCBtb3Rpb24ge1tDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJN b3Rpb25FdmVudCAqKSIpXSAgZ2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5TY3JvbGxFdmVudCBz Y3JvbGwge1tDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJTY3JvbGxFdmVudCAqKSIpXSAgZ2V0OyB9 CistCQlwdWJsaWMgQ2x1dHRlci5TdGFnZVN0YXRlRXZlbnQgc3RhZ2Vfc3RhdGUge1tDQ29kZSAo Y25hbWUgPSAiKENsdXR0ZXJTdGFnZVN0YXRlRXZlbnQgKikiKV0gIGdldDsgfQorLQkJcHVibGlj IENsdXR0ZXIuVG91Y2hFdmVudCB0b3VjaCB7W0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlclRvdWNo RXZlbnQgKikiKV0gIGdldDsgfQorLQkJcHVibGljIENsdXR0ZXIuVG91Y2hwYWRQaW5jaEV2ZW50 IHRvdWNocGFkX3BpbmNoIHtbQ0NvZGUgKGNuYW1lID0gIihDbHV0dGVyVG91Y2hwYWRQaW5jaEV2 ZW50ICopIildICBnZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLlRvdWNocGFkU3dpcGVFdmVudCB0 b3VjaHBhZF9zd2lwZSB7W0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlclRvdWNocGFkU3dpcGVFdmVu dCAqKSIpXSAgZ2V0OyB9CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0 aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9ldmVudF9zZXF1ZW5jZV9n ZXRfdHlwZSAoKSIpXQorIAlbQ29tcGFjdF0KK0BAIC02MTk4LDEwICs1NzUwLDI0IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCisgCQlwdWJsaWMg Ym9vbCBzbmFwX3RvX2dyaWQgeyBnZXQ7IHNldDsgfQorIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9mcmFtZV9j bG9ja19nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgRnJhbWVDbG9jayA6IEdMaWIuT2Jq ZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXB1 YmxpYyBGcmFtZUNsb2NrIChmbG9hdCByZWZyZXNoX3JhdGUsIENsdXR0ZXIuRnJhbWVMaXN0ZW5l cklmYWNlIGlmYWNlLCB2b2lkKiB1c2VyX2RhdGEpOworKwkJcHVibGljIHZvaWQgYWRkX3RpbWVs aW5lIChDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfcmVm cmVzaF9yYXRlICgpOworKwkJcHVibGljIHZvaWQgaW5oaWJpdCAoKTsKKysJCXB1YmxpYyB2b2lk IHJlbW92ZV90aW1lbGluZSAoQ2x1dHRlci5UaW1lbGluZSB0aW1lbGluZSk7CisrCQlwdWJsaWMg dm9pZCBzY2hlZHVsZV91cGRhdGUgKCk7CisrCQlwdWJsaWMgdm9pZCBzY2hlZHVsZV91cGRhdGVf bm93ICgpOworKwkJcHVibGljIHZvaWQgdW5pbmhpYml0ICgpOworKwkJW0hhc0VtaXR0ZXJdCisr CQlwdWJsaWMgc2lnbmFsIHZvaWQgZGVzdHJveSAoKTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfZ2VzdHVy ZV9hY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAlw dWJsaWMgY2xhc3MgR2VzdHVyZUFjdGlvbiA6IENsdXR0ZXIuQWN0aW9uIHsKKyAJCVtDQ29kZSAo aGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3Rpb24qIild CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgR2VzdHVyZUFjdGlvbiAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdm9pZCBjYW5jZWwg KCk7CitAQCAtNjIxMSw2ICs1Nzc3LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGlj IHVub3duZWQgQ2x1dHRlci5JbnB1dERldmljZSBnZXRfZGV2aWNlICh1aW50IHBvaW50KTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkV2 ZW50IGdldF9sYXN0X2V2ZW50ICh1aW50IHBvaW50KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjgiKV0KKyAJCXB1YmxpYyB2b2lkIGdldF9tb3Rpb25fY29vcmRzICh1aW50IHBvaW50LCBvdXQg ZmxvYXQgbW90aW9uX3gsIG91dCBmbG9hdCBtb3Rpb25feSk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMiIpXQorIAkJcHVibGljIGZsb2F0IGdldF9tb3Rpb25fZGVsdGEgKHVpbnQgcG9pbnQs IG91dCBmbG9hdCBkZWx0YV94LCBvdXQgZmxvYXQgZGVsdGFfeSk7CitAQCAtNjIxOCw3ICs1Nzg1 LDkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHVpbnQgZ2V0X25fY3VycmVudF9w b2ludHMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGludCBn ZXRfbl90b3VjaF9wb2ludHMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlw dWJsaWMgdm9pZCBnZXRfcHJlc3NfY29vcmRzICh1aW50IHBvaW50LCBvdXQgZmxvYXQgcHJlc3Nf eCwgb3V0IGZsb2F0IHByZXNzX3kpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJ cHVibGljIHZvaWQgZ2V0X3JlbGVhc2VfY29vcmRzICh1aW50IHBvaW50LCBvdXQgZmxvYXQgcmVs ZWFzZV94LCBvdXQgZmxvYXQgcmVsZWFzZV95KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEy IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkV2ZW50U2VxdWVuY2UgZ2V0X3NlcXVlbmNl ICh1aW50IHBvaW50KTsKK0BAIC02MjQ2LDkgKzU4MTUsMTMgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJcHVibGljIGZsb2F0IHRocmVzaG9sZF90cmlnZ2VyX2Rpc3RhbmNlX3kgeyBnZXQ7IGNv bnN0cnVjdDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKyAJCXB1YmxpYyBDbHV0 dGVyLkdlc3R1cmVUcmlnZ2VyRWRnZSB0aHJlc2hvbGRfdHJpZ2dlcl9lZGdlIHsgZ2V0OyBjb25z dHJ1Y3Q7IH0KKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2aXJ0dWFs IHNpZ25hbCBib29sIGdlc3R1cmVfYmVnaW4gKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgZ2Vz dHVyZV9jYW5jZWwgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuOCIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgZ2VzdHVyZV9lbmQgKENsdXR0 ZXIuQWN0b3IgYWN0b3IpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGlj IHZpcnR1YWwgc2lnbmFsIGJvb2wgZ2VzdHVyZV9wcm9ncmVzcyAoQ2x1dHRlci5BY3RvciBhY3Rv cik7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgdHlwZV9pZCA9ICJjbHV0dGVyX2dyaWRfbGF5b3V0X2dldF90eXBlICgpIildCitAQCAtNjI3 OCwxOSArNTg1MSw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIHJvd19o b21vZ2VuZW91cyB7IGdldDsgc2V0OyB9CisgCQlwdWJsaWMgdWludCByb3dfc3BhY2luZyB7IGdl dDsgc2V0OyB9CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2dyb3VwX2dldF90eXBlICgpIildCistCVtWZXJz aW9uIChzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGNsYXNzIEdyb3VwIDogQ2x1dHRlci5BY3Rv ciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVy LCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBHcm91cCAo KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIiwgc2luY2UgPSAiMC4yIildCistCQlwdWJsaWMgaW50IGdldF9uX2NoaWxkcmVuICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi LCBzaW5jZSA9ICIwLjIiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X250 aF9jaGlsZCAoaW50IGluZGV4Xyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX2FsbCAoKTsK Ky0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0 eXBlX2lkID0gImNsdXR0ZXJfaW1hZ2VfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKyAJcHVibGljIGNsYXNzIEltYWdlIDogR0xpYi5PYmplY3QsIENsdXR0ZXIu Q29udGVudCB7CitAQCAtNjMwNiw2ICs1ODY2LDggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlw dWJsaWMgY2xhc3MgSW5wdXREZXZpY2UgOiBHTGliLk9iamVjdCB7CisgCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgSW5wdXREZXZpY2UgKCk7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVy LkFjdG9yIGdldF9hY3RvciAoQ2x1dHRlci5FdmVudFNlcXVlbmNlPyBzZXF1ZW5jZSk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLklucHV0 RGV2aWNlIGdldF9hc3NvY2lhdGVkX2RldmljZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjYiKV0KK0BAIC02MzEzLDcgKzU4NzUsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgYm9vbCBnZXRfYXhpc192YWx1ZSAoW0ND b2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGRvdWJsZVtdIGF4ZXMsIENsdXR0ZXIuSW5wdXRB eGlzIGF4aXMsIG91dCBkb3VibGUgdmFsdWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIi KV0KKy0JCXB1YmxpYyBib29sIGdldF9jb29yZHMgKENsdXR0ZXIuRXZlbnRTZXF1ZW5jZT8gc2Vx dWVuY2UsIENsdXR0ZXIuUG9pbnQgcG9pbnQpOworKwkJcHVibGljIGJvb2wgZ2V0X2Nvb3JkcyAo Q2x1dHRlci5FdmVudFNlcXVlbmNlPyBzZXF1ZW5jZSwgR3JhcGhlbmUuUG9pbnQgcG9pbnQpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIGludCBnZXRfZGV2aWNlX2lk ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTYzMjUsMTIgKzU4ODcsOSBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5JbnB1dERldmljZVR5cGUg Z2V0X2RldmljZV90eXBlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVi bGljIGJvb2wgZ2V0X2VuYWJsZWQgKCk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfZ2V0 X2lucHV0X2RldmljZV9mb3JfaWQiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgc3Rh dGljIHVub3duZWQgQ2x1dHRlci5JbnB1dERldmljZSBnZXRfZm9yX2lkIChpbnQgaWRfKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFj dG9yIGdldF9ncmFiYmVkX2FjdG9yICgpOworLQkJcHVibGljIGludCBnZXRfZ3JvdXBfbl9tb2Rl cyAoaW50IGdyb3VwKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGludCBnZXRfZ3JvdXBfbl9tb2RlcyAo aW50IGdyb3VwKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBib29s IGdldF9oYXNfY3Vyc29yICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTYz NDYsMjMgKzU5MDUsMjEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGludCBnZXRf bl9tb2RlX2dyb3VwcyAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X25fcmluZ3MgKCk7CisgCQlwdWJs aWMgaW50IGdldF9uX3N0cmlwcyAoKTsKKy0JCXB1YmxpYyBib29sIGdldF9waHlzaWNhbF9zaXpl IChkb3VibGUgd2lkdGgsIGRvdWJsZSBoZWlnaHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MiIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfcG9pbnRlcl9hY3RvciAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0 ZXIuU3RhZ2UgZ2V0X3BvaW50ZXJfc3RhZ2UgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4y MiIpXQorIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9wcm9kdWN0X2lkICgpOworKwkJcHVi bGljIHVub3duZWQgQ2x1dHRlci5TZWF0IGdldF9zZWF0ICgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNiIpXQorIAkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIENsdXR0ZXIuSW5wdXREZXZpY2U+ IGdldF9zbGF2ZV9kZXZpY2VzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjIiKV0KKyAJ CXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfdmVuZG9yX2lkICgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIGdyYWIgKENsdXR0ZXIuQWN0b3IgYWN0b3Ip OworLQkJcHVibGljIGJvb2wgaXNfZ3JvdXBlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvdGhlcl9k ZXZpY2UpOworLQkJcHVibGljIGJvb2wgaXNfbW9kZV9zd2l0Y2hfYnV0dG9uICh1aW50IGdyb3Vw LCB1aW50IGJ1dHRvbik7CisrCQlwdWJsaWMgdmlydHVhbCBib29sIGlzX2dyb3VwZWQgKENsdXR0 ZXIuSW5wdXREZXZpY2Ugb3RoZXJfZGV2aWNlKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgaXNf bW9kZV9zd2l0Y2hfYnV0dG9uICh1aW50IGdyb3VwLCB1aW50IGJ1dHRvbik7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIGJvb2wga2V5Y29kZV90b19ldmRldiAodWlu dCBoYXJkd2FyZV9rZXljb2RlLCB1aW50IGV2ZGV2X2tleWNvZGUpOworKwkJcHVibGljIHZpcnR1 YWwgYm9vbCBrZXljb2RlX3RvX2V2ZGV2ICh1aW50IGhhcmR3YXJlX2tleWNvZGUsIHVpbnQgZXZk ZXZfa2V5Y29kZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIHVu b3duZWQgQ2x1dHRlci5BY3RvciBzZXF1ZW5jZV9nZXRfZ3JhYmJlZF9hY3RvciAoQ2x1dHRlci5F dmVudFNlcXVlbmNlIHNlcXVlbmNlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCitA QCAtNjM3OCwxMiArNTkzNSwxMSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9p ZCB1bmdyYWIgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgdm9p ZCB1cGRhdGVfZnJvbV9ldmVudCAoQ2x1dHRlci5FdmVudCBldmVudCwgYm9vbCB1cGRhdGVfc3Rh Z2UpOworKwkJW05vV3JhcHBlcl0KKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgdXBkYXRlX2Zyb21f dG9vbCAoQ2x1dHRlci5JbnB1dERldmljZVRvb2wgdG9vbCk7CisgCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkJhY2tl bmQgYmFja2VuZCB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkRldmlj ZU1hbmFnZXIgZGV2aWNlX21hbmFnZXIgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJcHVi bGljIENsdXR0ZXIuSW5wdXRNb2RlIGRldmljZV9tb2RlIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJ CXB1YmxpYyBzdHJpbmcgZGV2aWNlX25vZGUgeyBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMiIpXQorQEAgLTY0MDYsNiArNTk2Miw3IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCXB1YmxpYyBzdHJpbmcgbmFtZSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yMiIpXQorIAkJcHVibGljIHN0cmluZyBwcm9kdWN0X2lk IHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCXB1YmxpYyBDbHV0dGVyLlNlYXQgc2VhdCB7IGdldDsg Y29uc3RydWN0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yMiIpXQorIAkJcHVibGljIHN0 cmluZyB2ZW5kb3JfaWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorIAl9CitAQCAtNjQzMCw3ICs1OTg3 LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0 dWFsIHZvaWQgY29tbWl0X3RleHQgKHN0cmluZyB0ZXh0KTsKKyAJCVtOb1dyYXBwZXJdCistCQlw dWJsaWMgdmlydHVhbCB2b2lkIGRlbGV0ZV9zdXJyb3VuZGluZyAodWludCBvZmZzZXQsIHVpbnQg bGVuKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZGVsZXRlX3N1cnJvdW5kaW5nIChpbnQgb2Zm c2V0LCB1aW50IGxlbik7CisgCQlwdWJsaWMgYm9vbCBmaWx0ZXJfa2V5X2V2ZW50IChDbHV0dGVy LktleUV2ZW50IGtleSk7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBm b2N1c19pbiAoQ2x1dHRlci5JbnB1dE1ldGhvZCBpbnB1dF9tZXRob2QpOworQEAgLTY0NDMsNyAr NjAwMCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9jYW5fc2hv d19wcmVlZGl0IChib29sIGNhbl9zaG93X3ByZWVkaXQpOworIAkJcHVibGljIHZvaWQgc2V0X2Nv bnRlbnRfaGludHMgKENsdXR0ZXIuSW5wdXRDb250ZW50SGludEZsYWdzIGhpbnQpOworIAkJcHVi bGljIHZvaWQgc2V0X2NvbnRlbnRfcHVycG9zZSAoQ2x1dHRlci5JbnB1dENvbnRlbnRQdXJwb3Nl IHB1cnBvc2UpOworLQkJcHVibGljIHZvaWQgc2V0X2N1cnNvcl9sb2NhdGlvbiAoQ2x1dHRlci5S ZWN0IHJlY3QpOworKwkJcHVibGljIHZvaWQgc2V0X2N1cnNvcl9sb2NhdGlvbiAoR3JhcGhlbmUu UmVjdCByZWN0KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9pbnB1dF9wYW5lbF9zdGF0ZSAoQ2x1dHRl ci5JbnB1dFBhbmVsU3RhdGUgc3RhdGUpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0 dWFsIHZvaWQgc2V0X3ByZWVkaXRfdGV4dCAoc3RyaW5nIHByZWVkaXQsIHVpbnQgY3Vyc29yKTsK K0BAIC02NDYyLDcgKzYwMTksNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbTm9XcmFwcGVy XQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCByZXNldCAoKTsKKyAJCVtOb1dyYXBwZXJdCistCQlw dWJsaWMgdmlydHVhbCB2b2lkIHNldF9jdXJzb3JfbG9jYXRpb24gKENsdXR0ZXIuUmVjdCByZWN0 KTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2V0X2N1cnNvcl9sb2NhdGlvbiAoR3JhcGhlbmUu UmVjdCByZWN0KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9pbnB1dF9wYW5lbF9zdGF0ZSAoQ2x1dHRl ci5JbnB1dFBhbmVsU3RhdGUgc3RhdGUpOworIAkJcHVibGljIHZvaWQgc2V0X3ByZWVkaXRfdGV4 dCAoc3RyaW5nPyBwcmVlZGl0LCB1aW50IGN1cnNvcik7CisgCQlbTm9XcmFwcGVyXQorQEAgLTY0 NzksOSArNjAzNiw5IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLklu cHV0Q29udGVudFB1cnBvc2UgY29udGVudF9wdXJwb3NlIHsgZ2V0OyBzZXQ7IH0KKyAJCVtIYXNF bWl0dGVyXQorIAkJcHVibGljIHNpZ25hbCB2b2lkIGNvbW1pdCAoc3RyaW5nIHRleHQpOworLQkJ cHVibGljIHNpZ25hbCB2b2lkIGN1cnNvcl9sb2NhdGlvbl9jaGFuZ2VkIChDbHV0dGVyLlJlY3Qg b2JqZWN0KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfbG9jYXRpb25fY2hhbmdlZCAo R3JhcGhlbmUuUmVjdCBvYmplY3QpOworIAkJW0hhc0VtaXR0ZXJdCistCQlwdWJsaWMgc2lnbmFs IHZvaWQgZGVsZXRlX3N1cnJvdW5kaW5nICh1aW50IG9mZnNldCwgdWludCBsZW4pOworKwkJcHVi bGljIHNpZ25hbCB2b2lkIGRlbGV0ZV9zdXJyb3VuZGluZyAoaW50IG9mZnNldCwgdWludCBsZW4p OworIAkJcHVibGljIHNpZ25hbCB2b2lkIGlucHV0X3BhbmVsX3N0YXRlIChDbHV0dGVyLklucHV0 UGFuZWxTdGF0ZSBvYmplY3QpOworIAkJW0hhc0VtaXR0ZXJdCisgCQlwdWJsaWMgc2lnbmFsIHZv aWQgcmVxdWVzdF9zdXJyb3VuZGluZyAoKTsKK0BAIC02NTU1LDI4ICs2MTEyLDI4IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl KV0KKyAJCXByb3RlY3RlZCBLZXltYXAgKCk7CisgCQlwdWJsaWMgdmlydHVhbCBib29sIGdldF9j YXBzX2xvY2tfc3RhdGUgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBQYW5nby5EaXJlY3Rpb24gZ2V0 X2RpcmVjdGlvbiAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgZ2V0X251bV9sb2NrX3N0YXRl ICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHN0YXRlX2NoYW5nZWQgKCk7CisgCX0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJj bHV0dGVyX2xheWVyX25vZGVfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIExheWVyTm9k ZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJQYWludE5vZGUqIildCisrCQlwdWJsaWMgTGF5ZXJO b2RlIChDb2dsLk1hdHJpeCBwcm9qZWN0aW9uLCBDYWlyby5SZWN0YW5nbGUgdmlld3BvcnQsIGZs b2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIHVpbnQ4IG9wYWNpdHkpOworKwl9CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRl cl9sYXlvdXRfbWFuYWdlcl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4y IildCisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBMYXlvdXRNYW5hZ2VyIDogR0xpYi5Jbml0aWFs bHlVbm93bmVkIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0K KyAJCXByb3RlY3RlZCBMYXlvdXRNYW5hZ2VyICgpOworLQkJcHVibGljIHZpcnR1YWwgdm9pZCBh bGxvY2F0ZSAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yQm94IGFs bG9jYXRpb24sIENsdXR0ZXIuQWxsb2NhdGlvbkZsYWdzIGZsYWdzKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4y IildCistCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuQWxwaGEgYmVnaW5fYW5pbWF0 aW9uICh1aW50IGR1cmF0aW9uLCB1bG9uZyBtb2RlKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQg YWxsb2NhdGUgKENsdXR0ZXIuQ29udGFpbmVyIGNvbnRhaW5lciwgQ2x1dHRlci5BY3RvckJveCBh bGxvY2F0aW9uKTsKKyAJCXB1YmxpYyB2b2lkIGNoaWxkX2dldCAoQ2x1dHRlci5Db250YWluZXIg Y29udGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yLCAuLi4pOworIAkJcHVibGljIHZvaWQgY2hp bGRfZ2V0X3Byb3BlcnR5IChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0 b3IgYWN0b3IsIHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVlIHZhbHVlKTsKKyAJCXB1 YmxpYyB2b2lkIGNoaWxkX3NldCAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVy LkFjdG9yIGFjdG9yLCAuLi4pOworIAkJcHVibGljIHZvaWQgY2hpbGRfc2V0X3Byb3BlcnR5IChD bHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IsIHN0cmluZyBw cm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVlIHZhbHVlKTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJs aWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuTGF5b3V0TWV0YSBjcmVhdGVfY2hpbGRfbWV0YSAo Q2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS4yIildCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGVuZF9hbmltYXRpb24gKCk7Cisg CQlwdWJsaWMgdW5vd25lZCBHTGliLlBhcmFtU3BlYyBmaW5kX2NoaWxkX3Byb3BlcnR5IChzdHJp bmcgbmFtZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZpcnR1YWwgZG91YmxlIGdl dF9hbmltYXRpb25fcHJvZ3Jlc3MgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisg CQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkxheW91dE1ldGEgZ2V0X2NoaWxkX21ldGEgKENsdXR0 ZXIuQ29udGFpbmVyIGNvbnRhaW5lciwgQ2x1dHRlci5BY3RvciBhY3Rvcik7CisgCQlbTm9XcmFw cGVyXQorQEAgLTY2MzIsMTIgKzYxODksMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHJv dGVjdGVkIE9mZnNjcmVlbkVmZmVjdCAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIENvZ2wuSGFuZGxl IGNyZWF0ZV90ZXh0dXJlIChmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMgYm9vbCBnZXRfdGFyZ2V0X3JlY3QgKG91dCB1 bm93bmVkIENsdXR0ZXIuUmVjdCByZWN0KTsKKysJCXB1YmxpYyBib29sIGdldF90YXJnZXRfcmVj dCAob3V0IHVub3duZWQgR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE0Iiwgc2luY2UgPSAiMS44IildCisg CQlwdWJsaWMgYm9vbCBnZXRfdGFyZ2V0X3NpemUgKG91dCBmbG9hdCB3aWR0aCwgb3V0IGZsb2F0 IGhlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHVub3du ZWQgQ29nbC5IYW5kbGUgZ2V0X3RleHR1cmUgKCk7CistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBh aW50X3RhcmdldCAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGFpbnRfdGFyZ2V0IChDbHV0 dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0KTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGFnZV90 dXJuX2VmZmVjdF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCitA QCAtNjY1NCw2ICs2MjExLDE3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBkb3Vi bGUgcGVyaW9kIHsgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyBmbG9hdCByYWRpdXMgeyBnZXQ7IHNl dDsgfQorIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIHJlZl9mdW5jdGlvbiA9ICJjbHV0dGVyX3BhaW50X2NvbnRleHRfcmVmIiwgdHlwZV9pZCA9 ICJjbHV0dGVyX3BhaW50X2NvbnRleHRfZ2V0X3R5cGUgKCkiLCB1bnJlZl9mdW5jdGlvbiA9ICJj bHV0dGVyX3BhaW50X2NvbnRleHRfdW5yZWYiKV0KKysJW0NvbXBhY3RdCisrCXB1YmxpYyBjbGFz cyBQYWludENvbnRleHQgeworKwkJcHVibGljIHZvaWQgZGVzdHJveSAoKTsKKysJCXB1YmxpYyB1 bm93bmVkIENvZ2wuRnJhbWVidWZmZXIgZ2V0X2ZyYW1lYnVmZmVyICgpOworKwkJcHVibGljIHVu b3duZWQgQ2Fpcm8uUmVnaW9uIGdldF9yZWRyYXdfY2xpcCAoKTsKKysJCXB1YmxpYyB2b2lkIHBv cF9mcmFtZWJ1ZmZlciAoKTsKKysJCXB1YmxpYyB2b2lkIHB1c2hfZnJhbWVidWZmZXIgKENvZ2wu RnJhbWVidWZmZXIgZnJhbWVidWZmZXIpOworKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5QYWlu dENvbnRleHQgQHJlZiAoKTsKKysJCXB1YmxpYyB2b2lkIHVucmVmICgpOworKwl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9wYWludF9ub2RlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBQYWludE5vZGUgeworQEAgLTY2NjMsNyArNjIz MSw4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIGFkZF9tdWx0aXRleHR1 cmVfcmVjdGFuZ2xlIChDbHV0dGVyLkFjdG9yQm94IHJlY3QsIGZsb2F0IHRleHRfY29vcmRzLCB1 aW50IHRleHRfY29vcmRzX2xlbik7CisgCQlwdWJsaWMgdm9pZCBhZGRfcmVjdGFuZ2xlIChDbHV0 dGVyLkFjdG9yQm94IHJlY3QpOworIAkJcHVibGljIHZvaWQgYWRkX3RleHR1cmVfcmVjdGFuZ2xl IChDbHV0dGVyLkFjdG9yQm94IHJlY3QsIGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIs IGZsb2F0IHlfMik7CistCQlwdWJsaWMgdm9pZCBwYWludCAoKTsKKysJCXB1YmxpYyB1bm93bmVk IENvZ2wuRnJhbWVidWZmZXIgZ2V0X2ZyYW1lYnVmZmVyICgpOworKwkJcHVibGljIHZvaWQgcGFp bnQgKENsdXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworIAkJcHVibGljIHVub3du ZWQgQ2x1dHRlci5QYWludE5vZGUgQHJlZiAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9uYW1lIChz dHJpbmcgbmFtZSk7CisgCQlwdWJsaWMgdm9pZCB1bnJlZiAoKTsKK0BAIC02NjgxLDcgKzYyNTAs NyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisg CQlwdWJsaWMgZmxvYXQgZ2V0X2hlaWdodCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYi KV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCBnZXRfb3JpZ2luICgpOworKwkJcHVibGljIHZv aWQgZ2V0X29yaWdpbiAob3V0IHVub3duZWQgR3JhcGhlbmUuUG9pbnQzRCB2ZXJ0ZXgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIGZsb2F0IGdldF93aWR0aCAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KK0BAIC02NjkxLDcgKzYyNjAsNyBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMg dm9pZCBzZXRfaGVpZ2h0IChmbG9hdCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NiIpXQorLQkJcHVibGljIHZvaWQgc2V0X29yaWdpbiAoQ2x1dHRlci5WZXJ0ZXggb3JpZ2luKTsK KysJCXB1YmxpYyB2b2lkIHNldF9vcmlnaW4gKEdyYXBoZW5lLlBvaW50M0Qgb3JpZ2luKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF93aWR0aCAoZmxv YXQgd2lkdGgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTY3NzgsODggKzYz NDcsMjkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIENsdXR0ZXIuUGF0aCBwYXRo IHsgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBub2RlX3JlYWNoZWQgKENsdXR0 ZXIuQWN0b3IgYWN0b3IsIHVpbnQgaW5kZXgpOworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHJlZl9mdW5jdGlvbiA9ICJjbHV0dGVyX3BpY2tf Y29udGV4dF9yZWYiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGlja19jb250ZXh0X2dldF90eXBlICgp IiwgdW5yZWZfZnVuY3Rpb24gPSAiY2x1dHRlcl9waWNrX2NvbnRleHRfdW5yZWYiKV0KKysJW0Nv bXBhY3RdCisrCXB1YmxpYyBjbGFzcyBQaWNrQ29udGV4dCB7CisrCQlwdWJsaWMgdm9pZCBkZXN0 cm95ICgpOworKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5QaWNrQ29udGV4dCBAcmVmICgpOwor KwkJcHVibGljIHZvaWQgdW5yZWYgKCk7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BpcGVsaW5lX25vZGVf Z2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGNs YXNzIFBpcGVsaW5lTm9kZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsKKyAJCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBQaXBlbGluZU5vZGUgKCk7 CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg Y29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRf ZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wb2ludF9nZXRfdHlwZSAoKSIpXQorLQlbQ29tcGFj dF0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JcHVibGljIGNsYXNzIFBvaW50IHsK Ky0JCXB1YmxpYyBmbG9hdCB4OworLQkJcHVibGljIGZsb2F0IHk7CistCQlwdWJsaWMgc3RhdGlj IENsdXR0ZXIuUG9pbnQgYWxsb2MgKCk7CistCQlwdWJsaWMgQ2x1dHRlci5Qb2ludCBjb3B5ICgp OworLQkJcHVibGljIGZsb2F0IGRpc3RhbmNlIChDbHV0dGVyLlBvaW50IGIsIG91dCBmbG9hdCB4 X2Rpc3RhbmNlLCBvdXQgZmxvYXQgeV9kaXN0YW5jZSk7CistCQlwdWJsaWMgYm9vbCBlcXVhbHMg KENsdXR0ZXIuUG9pbnQgYik7CistCQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJcHVibGljIHVu b3duZWQgQ2x1dHRlci5Qb2ludCBpbml0IChmbG9hdCB4LCBmbG9hdCB5KTsKKy0JCXB1YmxpYyBz dGF0aWMgdW5vd25lZCBDbHV0dGVyLlBvaW50IHplcm8gKCk7CistCX0KKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3By b3BlcnR5X3RyYW5zaXRpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKyAJcHVibGljIGNsYXNzIFByb3BlcnR5VHJhbnNpdGlvbiA6IENsdXR0ZXIuVHJhbnNp dGlvbiwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJUcmFuc2l0aW9uKiIpXQorIAkJcHVibGljIFBy b3BlcnR5VHJhbnNpdGlvbiAoc3RyaW5nPyBwcm9wZXJ0eV9uYW1lKTsKKysJCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJUcmFuc2l0aW9uKiIp XQorKwkJcHVibGljIFByb3BlcnR5VHJhbnNpdGlvbi5mb3JfYWN0b3IgKENsdXR0ZXIuQWN0b3Ig YWN0b3IsIHN0cmluZz8gcHJvcGVydHlfbmFtZSk7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcg Z2V0X3Byb3BlcnR5X25hbWUgKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfcHJvcGVydHlfbmFtZSAo c3RyaW5nPyBwcm9wZXJ0eV9uYW1lKTsKKy0JCXB1YmxpYyBzdHJpbmcgcHJvcGVydHlfbmFtZSB7 IGdldDsgc2V0OyB9CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9u ID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9yZWN0X2dldF90eXBlICgpIild CistCVtDb21wYWN0XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQlwdWJsaWMgY2xh c3MgUmVjdCB7CistCQlwdWJsaWMgd2VhayBDbHV0dGVyLlBvaW50IG9yaWdpbjsKKy0JCXB1Ymxp YyB3ZWFrIENsdXR0ZXIuU2l6ZSBzaXplOworLQkJcHVibGljIHN0YXRpYyBDbHV0dGVyLlJlY3Qg YWxsb2MgKCk7CistCQlwdWJsaWMgdm9pZCBjbGFtcF90b19waXhlbCAoKTsKKy0JCXB1YmxpYyBi b29sIGNvbnRhaW5zX3BvaW50IChDbHV0dGVyLlBvaW50IHBvaW50KTsKKy0JCXB1YmxpYyBib29s IGNvbnRhaW5zX3JlY3QgKENsdXR0ZXIuUmVjdCBiKTsKKy0JCXB1YmxpYyBDbHV0dGVyLlJlY3Qg Y29weSAoKTsKKy0JCXB1YmxpYyBib29sIGVxdWFscyAoQ2x1dHRlci5SZWN0IGIpOworLQkJcHVi bGljIHZvaWQgZnJlZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9jZW50ZXIgKENsdXR0ZXIuUG9p bnQgY2VudGVyKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfaGVpZ2h0ICgpOworLQkJcHVibGljIGZs b2F0IGdldF93aWR0aCAoKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfeCAoKTsKKy0JCXB1YmxpYyBm bG9hdCBnZXRfeSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuUmVjdCBpbml0IChmbG9h dCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKy0JCXB1YmxpYyB2b2lk IGluc2V0IChmbG9hdCBkX3gsIGZsb2F0IGRfeSk7CistCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3Rp b24gKENsdXR0ZXIuUmVjdCBiLCBDbHV0dGVyLlJlY3Q/IHJlcyk7CistCQlwdWJsaWMgQ2x1dHRl ci5SZWN0IG5vcm1hbGl6ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIG9mZnNldCAoZmxvYXQgZF94LCBm bG9hdCBkX3kpOworLQkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IHNfeCwgZmxvYXQgc195KTsK Ky0JCXB1YmxpYyB2b2lkIHVuaW9uIChDbHV0dGVyLlJlY3QgYiwgQ2x1dHRlci5SZWN0IHJlcyk7 CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5SZWN0IHplcm8gKCk7CistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9 ICJjbHV0dGVyX3JlY3RhbmdsZV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAi MC4yIildCistCXB1YmxpYyBjbGFzcyBSZWN0YW5nbGUgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1w bGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIu U2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwg dHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIFJlY3RhbmdsZSAoKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwg c2luY2UgPSAiMC4yIildCistCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBnZXRfYm9yZGVyX2NvbG9y ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0KKy0JCXB1YmxpYyB1aW50IGdldF9ib3JkZXJfd2lkdGgg KCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIpXQorLQkJcHVibGljIENsdXR0ZXIuQ29sb3IgZ2V0X2NvbG9yICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9ib3JkZXJfY29sb3IgKENsdXR0ZXIuQ29sb3IgY29sb3IpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5j ZSA9ICIwLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ib3JkZXJfd2lkdGggKHVpbnQgd2lkdGgp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2xvciAoQ2x1dHRlci5Db2xvciBjb2xvcik7Cist CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVy QWN0b3IqIildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIpXQorLQkJcHVibGljIFJlY3RhbmdsZS53aXRoX2NvbG9yIChDbHV0dGVyLkNv bG9yIGNvbG9yKTsKKy0JCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGJvcmRlcl9jb2xvciB7IGdldDsg c2V0OyB9CistCQlwdWJsaWMgdWludCBib3JkZXJfd2lkdGggeyBnZXQ7IHNldDsgfQorLQkJcHVi bGljIENsdXR0ZXIuQ29sb3IgY29sb3IgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlwdWJsaWMgYm9vbCBoYXNfYm9yZGVyIHsgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyB2 b2lkIHNldF9wcm9wZXJ0eV9uYW1lIChzdHJpbmc/IHByb3BlcnR5X25hbWUpOworKwkJcHVibGlj IHN0cmluZyBwcm9wZXJ0eV9uYW1lIHsgZ2V0OyBzZXQ7IH0KKyAJfQorIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfcm9v dF9ub2RlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBjbGFzcyBSb290Tm9kZSA6IENsdXR0ZXIu UGFpbnROb2RlIHsKK0BAIC02ODgwLDE1ICs2MzkwLDExIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJCXB1YmxpYyBTY3JpcHQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlw dWJsaWMgdm9pZCBhZGRfc2VhcmNoX3BhdGhzIChbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9 ICJuX3BhdGhzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDEuMSwgYXJyYXlfbGVuZ3RoX3R5cGUgPSAi Z3NpemUiKV0gc3RyaW5nW10gcGF0aHMpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2 b2lkIGFkZF9zdGF0ZXMgKHN0cmluZz8gbmFtZSwgQ2x1dHRlci5TdGF0ZSBzdGF0ZSk7CisgCQlw dWJsaWMgdm9pZCBjb25uZWN0X3NpZ25hbHMgKHZvaWQqIHVzZXJfZGF0YSk7CisgCQlwdWJsaWMg dm9pZCBjb25uZWN0X3NpZ25hbHNfZnVsbCAoQ2x1dHRlci5TY3JpcHRDb25uZWN0RnVuYyBmdW5j KTsKKyAJCXB1YmxpYyB2b2lkIGVuc3VyZV9vYmplY3RzICgpOworIAkJcHVibGljIHVub3duZWQg R0xpYi5PYmplY3QgZ2V0X29iamVjdCAoc3RyaW5nIG5hbWUpOworIAkJcHVibGljIGludCBnZXRf b2JqZWN0cyAoLi4uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0 dGVyLlN0YXRlIGdldF9zdGF0ZXMgKHN0cmluZz8gbmFtZSk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF90cmFuc2xhdGlvbl9kb21h aW4gKCk7CisgCQlwdWJsaWMgdmlydHVhbCBHTGliLlR5cGUgZ2V0X3R5cGVfZnJvbV9uYW1lIChz dHJpbmcgdHlwZV9uYW1lKTsKK0BAIC02OTE2LDggKzY0MjIsOCBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJD bHV0dGVyQWN0b3IqIildCisgCQlwdWJsaWMgU2Nyb2xsQWN0b3IgKCk7CisgCQlwdWJsaWMgQ2x1 dHRlci5TY3JvbGxNb2RlIGdldF9zY3JvbGxfbW9kZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHNjcm9s bF90b19wb2ludCAoQ2x1dHRlci5Qb2ludCBwb2ludCk7CistCQlwdWJsaWMgdm9pZCBzY3JvbGxf dG9fcmVjdCAoQ2x1dHRlci5SZWN0IHJlY3QpOworKwkJcHVibGljIHZvaWQgc2Nyb2xsX3RvX3Bv aW50IChHcmFwaGVuZS5Qb2ludCBwb2ludCk7CisrCQlwdWJsaWMgdm9pZCBzY3JvbGxfdG9fcmVj dCAoR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9zY3JvbGxfbW9kZSAo Q2x1dHRlci5TY3JvbGxNb2RlIG1vZGUpOworIAkJcHVibGljIENsdXR0ZXIuU2Nyb2xsTW9kZSBz Y3JvbGxfbW9kZSB7IGdldDsgc2V0OyB9CisgCX0KK0BAIC02OTM5LDYgKzY0NDUsNDcgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGZsb2F0IHg7CisgCQlwdWJsaWMgZmxvYXQgeTsK KyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0 eXBlX2lkID0gImNsdXR0ZXJfc2VhdF9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgYWJzdHJhY3Qg Y2xhc3MgU2VhdCA6IEdMaWIuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBTZWF0ICgpOworKwkJW05vV3JhcHBlcl0KKysJ CXB1YmxpYyB2aXJ0dWFsIHZvaWQgYXBwbHlfa2JkX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuS2Jk QTExeVNldHRpbmdzIHNldHRpbmdzKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYmVsbF9ub3Rp ZnkgKCk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIGNvbXByZXNzX21vdGlvbiAoQ2x1dHRlci5F dmVudCBldmVudCwgQ2x1dHRlci5FdmVudCB0b19kaXNjYXJkKTsKKysJCVtOb1dyYXBwZXJdCisr CQlwdWJsaWMgdmlydHVhbCB2b2lkIGNvcHlfZXZlbnRfZGF0YSAoQ2x1dHRlci5FdmVudCBzcmMs IENsdXR0ZXIuRXZlbnQgZGVzdCk7CisrCQlwdWJsaWMgdmlydHVhbCBDbHV0dGVyLlZpcnR1YWxJ bnB1dERldmljZSBjcmVhdGVfdmlydHVhbF9kZXZpY2UgKENsdXR0ZXIuSW5wdXREZXZpY2VUeXBl IGRldmljZV90eXBlKTsKKysJCXB1YmxpYyB2b2lkIGVuc3VyZV9hMTF5X3N0YXRlICgpOworKwkJ W05vV3JhcHBlcl0KKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZnJlZV9ldmVudF9kYXRhIChDbHV0 dGVyLkV2ZW50IGV2ZW50KTsKKysJCXB1YmxpYyB2b2lkIGdldF9rYmRfYTExeV9zZXR0aW5ncyAo Q2x1dHRlci5LYmRBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworKwkJcHVibGljIHZpcnR1YWwgdW5v d25lZCBDbHV0dGVyLklucHV0RGV2aWNlIGdldF9rZXlib2FyZCAoKTsKKysJCXB1YmxpYyB2aXJ0 dWFsIHVub3duZWQgQ2x1dHRlci5LZXltYXAgZ2V0X2tleW1hcCAoKTsKKysJCXB1YmxpYyB2aXJ0 dWFsIHVub3duZWQgQ2x1dHRlci5JbnB1dERldmljZSBnZXRfcG9pbnRlciAoKTsKKysJCXB1Ymxp YyB2b2lkIGdldF9wb2ludGVyX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuUG9pbnRlckExMXlTZXR0 aW5ncyBzZXR0aW5ncyk7CisrCQlwdWJsaWMgYm9vbCBnZXRfdG91Y2hfbW9kZSAoKTsKKysJCXB1 YmxpYyB2b2lkIGluaGliaXRfdW5mb2N1cyAoKTsKKysJCXB1YmxpYyBib29sIGlzX3VuZm9jdXNf aW5oaWJpdGVkICgpOworKwkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIENsdXR0ZXIuSW5wdXREZXZp Y2U+IGxpc3RfZGV2aWNlcyAoKTsKKysJCXB1YmxpYyB2b2lkIHNldF9rYmRfYTExeV9zZXR0aW5n cyAoQ2x1dHRlci5LYmRBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworKwkJcHVibGljIHZvaWQgc2V0 X3BvaW50ZXJfYTExeV9kd2VsbF9jbGlja190eXBlIChDbHV0dGVyLlBvaW50ZXJBMTF5RHdlbGxD bGlja1R5cGUgY2xpY2tfdHlwZSk7CisrCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRlcl9hMTF5X3Nl dHRpbmdzIChDbHV0dGVyLlBvaW50ZXJBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworKwkJcHVibGlj IHZvaWQgdW5pbmhpYml0X3VuZm9jdXMgKCk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHdhcnBf cG9pbnRlciAoaW50IHgsIGludCB5KTsKKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGlj IENsdXR0ZXIuQmFja2VuZCBiYWNrZW5kIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCXB1 YmxpYyBib29sIHRvdWNoX21vZGUgeyBnZXQ7IH0KKysJCXB1YmxpYyBzaWduYWwgdm9pZCBkZXZp Y2VfYWRkZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0KTsKKysJCXB1YmxpYyBzaWduYWwg dm9pZCBkZXZpY2VfcmVtb3ZlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvYmplY3QpOworKwkJcHVi bGljIHNpZ25hbCB2b2lkIGlzX3VuZm9jdXNfaW5oaWJpdGVkX2NoYW5nZWQgKCk7CisrCQlwdWJs aWMgc2lnbmFsIHZvaWQga2JkX2ExMXlfZmxhZ3NfY2hhbmdlZCAodWludCBzZXR0aW5nc19mbGFn cywgdWludCBjaGFuZ2VkX21hc2spOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGtiZF9hMTF5X21v ZHNfc3RhdGVfY2hhbmdlZCAodWludCBsYXRjaGVkX21hc2ssIHVpbnQgbG9ja2VkX21hc2spOwor KwkJcHVibGljIHNpZ25hbCB2b2lkIHB0cl9hMTF5X2R3ZWxsX2NsaWNrX3R5cGVfY2hhbmdlZCAo Q2x1dHRlci5Qb2ludGVyQTExeUR3ZWxsQ2xpY2tUeXBlIGNsaWNrX3R5cGUpOworKwkJcHVibGlj IHNpZ25hbCB2b2lkIHB0cl9hMTF5X3RpbWVvdXRfc3RhcnRlZCAoQ2x1dHRlci5JbnB1dERldmlj ZSBkZXZpY2UsIENsdXR0ZXIuUG9pbnRlckExMXlUaW1lb3V0VHlwZSB0aW1lb3V0X3R5cGUsIHVp bnQgZGVsYXkpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHB0cl9hMTF5X3RpbWVvdXRfc3RvcHBl ZCAoQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UsIENsdXR0ZXIuUG9pbnRlckExMXlUaW1lb3V0 VHlwZSB0aW1lb3V0X3R5cGUsIGJvb2wgY2xpY2tlZCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQg dG9vbF9jaGFuZ2VkIChDbHV0dGVyLklucHV0RGV2aWNlIG9iamVjdCwgQ2x1dHRlci5JbnB1dERl dmljZVRvb2wgcDApOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zZXR0aW5nc19nZXRfdHlwZSAoKSIpXQor IAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBjbGFzcyBTZXR0aW5ncyA6IEdM aWIuT2JqZWN0IHsKK0BAIC03MDExLDE4ICs2NTU4LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVk IFNoYWRlck1hdHJpeCAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVu Y3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3NpemVfZ2V0X3R5cGUg KCkiKV0KKy0JW0NvbXBhY3RdCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCXB1Ymxp YyBjbGFzcyBTaXplIHsKKy0JCXB1YmxpYyBmbG9hdCBoZWlnaHQ7CistCQlwdWJsaWMgZmxvYXQg d2lkdGg7CistCQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuU2l6ZSBhbGxvYyAoKTsKKy0JCXB1Ymxp YyBDbHV0dGVyLlNpemUgY29weSAoKTsKKy0JCXB1YmxpYyBib29sIGVxdWFscyAoQ2x1dHRlci5T aXplIGIpOworLQkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0 ZXIuU2l6ZSBpbml0IChmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKy0JfQorIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0 ZXJfc25hcF9jb25zdHJhaW50X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIx LjYiKV0KKyAJcHVibGljIGNsYXNzIFNuYXBDb25zdHJhaW50IDogQ2x1dHRlci5Db25zdHJhaW50 IHsKK0BAIC03MDQzLDEzNSArNjU3OCw2NiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCX0KKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9 ICJjbHV0dGVyX3N0YWdlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIi KV0KKy0JcHVibGljIGNsYXNzIFN0YWdlIDogQ2x1dHRlci5Hcm91cCwgQXRrLkltcGxlbWVudG9y LCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFi bGUgeworKwlwdWJsaWMgY2xhc3MgU3RhZ2UgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50 b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0 YWJsZSB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9 ICJDbHV0dGVyQWN0b3IqIildCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJs aWMgU3RhZ2UgKCk7CistCQlwdWJsaWMgYm9vbCBjYXB0dXJlIChib29sIHBhaW50LCBDYWlyby5S ZWN0YW5nbGVJbnQgcmVjdCwgQ2x1dHRlci5DYXB0dXJlIGNhcHR1cmVzLCBpbnQgbl9jYXB0dXJl cyk7CisgCQlwdWJsaWMgdm9pZCBjYXB0dXJlX2ludG8gKGJvb2wgcGFpbnQsIENhaXJvLlJlY3Rh bmdsZUludCByZWN0LCB1aW50OCBkYXRhKTsKKysJCXB1YmxpYyB2b2lkIGNsZWFyX3N0YWdlX3Zp ZXdzICgpOworIAkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX3N0YWdlX2V2ZW50IildCisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMC40IildCisgCQlwdWJsaWMgYm9vbCBlbWl0X2V2ZW50IChDbHV0 dGVyLkV2ZW50IGV2ZW50KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgc2luY2Ug PSAiMC44IildCistCQlwdWJsaWMgdm9pZCBlbnN1cmVfY3VycmVudCAoKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGVuc3VyZV9yZWRyYXcgKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBlbnN1cmVfdmlld3BvcnQg KCk7CistCQlwdWJsaWMgdm9pZCBmcmVlemVfdXBkYXRlcyAoKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBib29sIGdldF9hY2NlcHRfZm9jdXMgKCk7CistCQlwdWJs aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9hY3Rvcl9hdF9wb3MgKENsdXR0ZXIuUGlja01v ZGUgcGlja19tb2RlLCBpbnQgeCwgaW50IHkpOworKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5B Y3RvciBnZXRfYWN0b3JfYXRfcG9zIChDbHV0dGVyLlBpY2tNb2RlIHBpY2tfbW9kZSwgZmxvYXQg eCwgZmxvYXQgeSk7CisgCQlwdWJsaWMgYm9vbCBnZXRfY2FwdHVyZV9maW5hbF9zaXplIChDYWly by5SZWN0YW5nbGVJbnQgcmVjdCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBmbG9hdCBzY2FsZSk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIpXQorLQkJcHVibGljIENsdXR0ZXIuQ29sb3IgZ2V0X2NvbG9yICgpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLlN0YWdlIGdldF9kZWZhdWx0ICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9 ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkZvZyBnZXRfZm9nICgpOworIAkJcHVibGljIGlu dDY0IGdldF9mcmFtZV9jb3VudGVyICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIGJvb2wgZ2V0X2Z1bGxzY3JlZW4gKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MC42IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9rZXlfZm9jdXMgKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgdm9pZCBnZXRfbWluaW11 bV9zaXplIChvdXQgdWludCB3aWR0aCwgb3V0IHVpbnQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyBib29sIGdldF9tb3Rpb25fZXZlbnRzX2VuYWJsZWQg KCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCBnZXRfbm9f Y2xlYXJfaGludCAoKTsKKyAJCXB1YmxpYyBDbHV0dGVyLlBlcnNwZWN0aXZlIGdldF9wZXJzcGVj dGl2ZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBDYWlyby5S ZWN0YW5nbGVJbnQgZ2V0X3JlZHJhd19jbGlwX2JvdW5kcyAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBib29sIGdldF90aHJvdHRsZV9tb3Rpb25fZXZlbnRzICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAkJcHVibGljIHVub3duZWQgc3RyaW5n IGdldF90aXRsZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBi b29sIGdldF91c2VfYWxwaGEgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIGJvb2wg Z2V0X3VzZV9mb2cgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMg Ym9vbCBnZXRfdXNlcl9yZXNpemFibGUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40Iild CistCQlwdWJsaWMgdm9pZCBoaWRlX2N1cnNvciAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44IildCistCQlw dWJsaWMgYm9vbCBpc19kZWZhdWx0ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2 b2lkIHF1ZXVlX3JlZHJhdyAoKTsKKysJCXB1YmxpYyBib29sIHBhaW50X3RvX2J1ZmZlciAoQ2Fp cm8uUmVjdGFuZ2xlSW50IHJlY3QsIGZsb2F0IHNjYWxlLCB1aW50OCBkYXRhLCBpbnQgc3RyaWRl LCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgQ2x1dHRlci5QYWludEZsYWcgcGFpbnRfZmxhZ3Mp IHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIHZvaWQgcGFpbnRfdG9fZnJhbWVidWZmZXIg KENvZ2wuRnJhbWVidWZmZXIgZnJhbWVidWZmZXIsIENhaXJvLlJlY3RhbmdsZUludCByZWN0LCBm bG9hdCBzY2FsZSwgQ2x1dHRlci5QYWludEZsYWcgcGFpbnRfZmxhZ3MpOworIAkJW0NDb2RlIChh cnJheV9sZW5ndGggPSBmYWxzZSldCisgCQlwdWJsaWMgdWludDhbXSByZWFkX3BpeGVscyAoaW50 IHgsIGludCB5LCBpbnQgd2lkdGggPSAtMSwgaW50IGhlaWdodCA9IC0xKTsKKy0JCVtDQ29kZSAo Y25hbWUgPSAiY2x1dHRlcl9yZWRyYXciKV0KKy0JCXB1YmxpYyB2b2lkIHJlZHJhdyAoKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hY2NlcHRfZm9j dXMgKGJvb2wgYWNjZXB0X2ZvY3VzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3IgKENs dXR0ZXIuQ29sb3IgY29sb3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9mb2cgKENsdXR0ZXIuRm9nIGZvZyk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgdm9pZCBzZXRfZnVsbHNjcmVlbiAoYm9vbCBmdWxsc2NyZWVuKTsKKysJCXB1Ymxp YyB2b2lkIHNjaGVkdWxlX3VwZGF0ZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0K KyAJCXB1YmxpYyB2b2lkIHNldF9rZXlfZm9jdXMgKENsdXR0ZXIuQWN0b3I/IGFjdG9yKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9taW5pbXVtX3Np emUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgi KV0KKyAJCXB1YmxpYyB2b2lkIHNldF9tb3Rpb25fZXZlbnRzX2VuYWJsZWQgKGJvb2wgZW5hYmxl ZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfbm9f Y2xlYXJfaGludCAoYm9vbCBub19jbGVhcik7CistCQlwdWJsaWMgdm9pZCBzZXRfcGVyc3BlY3Rp dmUgKENsdXR0ZXIuUGVyc3BlY3RpdmUgcGVyc3BlY3RpdmUpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3Rocm90dGxlX21vdGlvbl9ldmVudHMgKGJv b2wgdGhyb3R0bGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAkJcHVibGljIHZv aWQgc2V0X3RpdGxlIChzdHJpbmcgdGl0bGUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIp XQorIAkJcHVibGljIHZvaWQgc2V0X3VzZV9hbHBoYSAoYm9vbCB1c2VfYWxwaGEpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5j ZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91c2VfZm9nIChib29sIGZvZyk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdm9pZCBzZXRfdXNlcl9yZXNpemFi bGUgKGJvb2wgcmVzaXphYmxlKTsKKy0JCXB1YmxpYyB2b2lkIHNob3dfY3Vyc29yICgpOworLQkJ cHVibGljIHZvaWQgdGhhd191cGRhdGVzICgpOworLQkJcHVibGljIHZvaWQgdXBkYXRlX3Jlc291 cmNlX3NjYWxlcyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBi b29sIGFjY2VwdF9mb2N1cyB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENsdXR0ZXIuQ29s b3IgY29sb3IgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMg Ym9vbCBjdXJzb3JfdmlzaWJsZSB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIENsdXR0ZXIuRm9nIGZvZyB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCXB1YmxpYyBib29sIGZ1bGxzY3JlZW5fc2V0IHsgZ2V0OyB9CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgQ2x1dHRlci5BY3RvciBrZXlfZm9jdXMgeyBnZXQ7 IHNldDsgfQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGJvb2wgbm9f Y2xlYXJfaGludCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlw dWJsaWMgYm9vbCBvZmZzY3JlZW4geyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0g IjAuOCIpXQorLQkJcHVibGljIENsdXR0ZXIuUGVyc3BlY3RpdmUgcGVyc3BlY3RpdmUgeyBnZXQ7 IHNldDsgfQorKwkJcHVibGljIENsdXR0ZXIuUGVyc3BlY3RpdmUgcGVyc3BlY3RpdmUgeyBnZXQ7 IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyBzdHJpbmcgdGl0bGUg eyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIGJv b2wgdXNlX2FscGhhIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMg Ym9vbCB1c2VfZm9nIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0K Ky0JCXB1YmxpYyBib29sIHVzZXJfcmVzaXphYmxlIHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGFjdGl2YXRl ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjAiKV0KKy0JCXB1YmxpYyBzaWduYWwgdm9p ZCBhZnRlcl9wYWludCAoKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBhZnRlcl9wYWludCAoQ2x1 dHRlci5TdGFnZVZpZXcgdmlldyk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgYWZ0ZXJfdXBkYXRl IChDbHV0dGVyLlN0YWdlVmlldyB2aWV3KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBiZWZvcmVf cGFpbnQgKENsdXR0ZXIuU3RhZ2VWaWV3IHZpZXcpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGJl Zm9yZV91cGRhdGUgKENsdXR0ZXIuU3RhZ2VWaWV3IHZpZXcpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjAuNiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgZGVhY3RpdmF0ZSAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBi b29sIGRlbGV0ZV9ldmVudCAoQ2x1dHRlci5FdmVudCBldmVudCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC42IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBmdWxsc2NyZWVuICgp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFs IHZvaWQgdW5mdWxsc2NyZWVuICgpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGFp bnRfdmlldyAoQ2x1dHRlci5TdGFnZVZpZXcgdmlldywgQ2Fpcm8uUmVnaW9uIHJlZHJhd19jbGlw KTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCB0eXBlX2lkID0gImNsdXR0ZXJfc3RhZ2VfbWFuYWdlcl9nZXRfdHlwZSAoKSIpXQorIAlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCitAQCAtNzE4NSw4ICs2NjUxLDYgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIEdMaWIuU0xp c3Q8d2VhayBDbHV0dGVyLlN0YWdlPiBsaXN0X3N0YWdlcyAoKTsKKyAJCXB1YmxpYyB1bm93bmVk IEdMaWIuU0xpc3Q8Q2x1dHRlci5TdGFnZT4gcGVla19zdGFnZXMgKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIiwgc2luY2UgPSAiMC44 IildCistCQlwdWJsaWMgdm9pZCBzZXRfZGVmYXVsdF9zdGFnZSAoQ2x1dHRlci5TdGFnZSBzdGFn ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgQ2x1dHRlci5TdGFn ZSBkZWZhdWx0X3N0YWdlIHsgZ2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCitA QCAtNzIwNiw2MyArNjY3MCwzMyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdWlu dDMyIHRpbWU7CisgCQlwdWJsaWMgQ2x1dHRlci5FdmVudFR5cGUgdHlwZTsKKyAJfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNs dXR0ZXJfc3RhdGVfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQor LQlwdWJsaWMgY2xhc3MgU3RhdGUgOiBHTGliLk9iamVjdCwgQ2x1dHRlci5TY3JpcHRhYmxlIHsK KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9p ZCA9ICJjbHV0dGVyX3N0YWdlX3ZpZXdfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIFN0 YWdlVmlldyA6IEdMaWIuT2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgU3RhdGUgKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVpbnQgZ2V0X2R1cmF0aW9uIChzdHJpbmc/IHNvdXJj ZV9zdGF0ZV9uYW1lLCBzdHJpbmc/IHRhcmdldF9zdGF0ZV9uYW1lKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40 IildCistCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgQ2x1dHRlci5TdGF0ZUtleT4gZ2V0X2tleXMg KHN0cmluZz8gc291cmNlX3N0YXRlX25hbWUsIHN0cmluZz8gdGFyZ2V0X3N0YXRlX25hbWUsIEdM aWIuT2JqZWN0PyBvYmplY3QsIHN0cmluZz8gcHJvcGVydHlfbmFtZSk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9zdGF0ZSAoKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS40IildCistCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgc3RyaW5nPiBnZXRfc3RhdGVzICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuVGltZWxpbmUgZ2V0 X3RpbWVsaW5lICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9r ZXkgKHN0cmluZz8gc291cmNlX3N0YXRlX25hbWUsIHN0cmluZz8gdGFyZ2V0X3N0YXRlX25hbWUs IEdMaWIuT2JqZWN0PyBvYmplY3QsIHN0cmluZz8gcHJvcGVydHlfbmFtZSk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2R1cmF0aW9uIChzdHJpbmc/IHNvdXJjZV9zdGF0 ZV9uYW1lLCBzdHJpbmc/IHRhcmdldF9zdGF0ZV9uYW1lLCB1aW50IGR1cmF0aW9uKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlN0YXRlIHNldF9rZXkgKHN0 cmluZz8gc291cmNlX3N0YXRlX25hbWUsIHN0cmluZyB0YXJnZXRfc3RhdGVfbmFtZSwgR0xpYi5P YmplY3Qgb2JqZWN0LCBzdHJpbmcgcHJvcGVydHlfbmFtZSwgdWludCBtb2RlLCBHTGliLlZhbHVl IHZhbHVlLCBkb3VibGUgcHJlX2RlbGF5LCBkb3VibGUgcG9zdF9kZWxheSk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5UaW1lbGluZSBzZXRfc3RhdGUgKHN0 cmluZyB0YXJnZXRfc3RhdGVfbmFtZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVu b3duZWQgQ2x1dHRlci5UaW1lbGluZSB3YXJwX3RvX3N0YXRlIChzdHJpbmcgdGFyZ2V0X3N0YXRl X25hbWUpOworKwkJcHJvdGVjdGVkIFN0YWdlVmlldyAoKTsKKysJCXB1YmxpYyB2b2lkIGFzc2ln bl9uZXh0X3NjYW5vdXQgKENvZ2wuU2Nhbm91dCBzY2Fub3V0KTsKKysJCXB1YmxpYyB1bm93bmVk IENvZ2wuRnJhbWVidWZmZXIgZ2V0X2ZyYW1lYnVmZmVyICgpOworKwkJcHVibGljIHZvaWQgZ2V0 X2xheW91dCAoQ2Fpcm8uUmVjdGFuZ2xlSW50IHJlY3QpOworKwkJcHVibGljIHZpcnR1YWwgdm9p ZCBnZXRfb2Zmc2NyZWVuX3RyYW5zZm9ybWF0aW9uX21hdHJpeCAoQ29nbC5NYXRyaXggbWF0cml4 KTsKKysJCXB1YmxpYyB1bm93bmVkIENvZ2wuRnJhbWVidWZmZXIgZ2V0X29uc2NyZWVuICgpOwor KwkJcHVibGljIGZsb2F0IGdldF9zY2FsZSAoKTsKKysJCXB1YmxpYyB2b2lkIGludmFsaWRhdGVf b2Zmc2NyZWVuX2JsaXRfcGlwZWxpbmUgKCk7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZp cnR1YWwgdm9pZCBzZXR1cF9vZmZzY3JlZW5fYmxpdF9waXBlbGluZSAoQ29nbC5QaXBlbGluZSBw aXBlbGluZSk7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZpcnR1YWwgdm9pZCB0cmFuc2Zv cm1fcmVjdF90b19vbnNjcmVlbiAoQ2Fpcm8uUmVjdGFuZ2xlSW50IHNyY19yZWN0LCBpbnQgZHN0 X3dpZHRoLCBpbnQgZHN0X2hlaWdodCwgQ2Fpcm8uUmVjdGFuZ2xlSW50IGRzdF9yZWN0KTsKKyAJ CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1aW50IGR1 cmF0aW9uIHsgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBDYWlyby5SZWN0YW5nbGVJbnQgbGF5b3V0 IHsgb3duZWQgZ2V0OyBzZXQgY29uc3RydWN0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS40IildCistCQlwdWJsaWMgc3RyaW5nIHN0YXRlIHsgb3duZWQgZ2V0OyBzZXQ7 IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBjb21w bGV0ZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0g ImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zdGF0ZV9rZXlfZ2V0X3R5cGUgKCki KV0KKy0JW0NvbXBhY3RdCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGNs YXNzIFN0YXRlS2V5IHsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdWxvbmcgZ2V0X21v ZGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgR0xpYi5PYmplY3Qg Z2V0X29iamVjdCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgZG91YmxlIGdldF9w b3N0X2RlbGF5ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBkb3VibGUgZ2V0X3By ZV9kZWxheSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcg Z2V0X3Byb3BlcnR5X25hbWUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIEdMaWIu VHlwZSBnZXRfcHJvcGVydHlfdHlwZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMg dW5vd25lZCBzdHJpbmcgZ2V0X3NvdXJjZV9zdGF0ZV9uYW1lICgpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQi KV0KKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfdGFyZ2V0X3N0YXRlX25hbWUgKCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3ZhbHVlIChHTGliLlZhbHVlIHZh bHVlKTsKKysJCXB1YmxpYyBzdHJpbmcgbmFtZSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9Cisr CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBmbG9hdCByZWZyZXNoX3JhdGUgeyBnZXQ7 IHNldCBjb25zdHJ1Y3Q7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIGZsb2F0 IHNjYWxlIHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJ CXB1YmxpYyBDbHV0dGVyLlN0YWdlIHN0YWdlIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJ CVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIGJvb2wgdXNlX3NoYWRvd2ZiIHsgZ2V0OyBj b25zdHJ1Y3Q7IH0KKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfc3dpcGVfYWN0aW9uX2dldF90eXBlICgpIild CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KK0BAIC03Mjc0LDUzICs2NzA4LDYgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKyAJCXB1Ymxp YyB2aXJ0dWFsIHNpZ25hbCBib29sIHN3aXBlIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBDbHV0dGVy LlN3aXBlRGlyZWN0aW9uIGRpcmVjdGlvbik7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RhYmxlX2xheW91 dF9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgY2xhc3MgVGFibGVM YXlvdXQgOiBDbHV0dGVyLkxheW91dE1hbmFnZXIgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckxheW91dE1hbmFnZXIqIildCistCQlw dWJsaWMgVGFibGVMYXlvdXQgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQg Z2V0X2FsaWdubWVudCAoQ2x1dHRlci5BY3RvciBhY3Rvciwgb3V0IENsdXR0ZXIuVGFibGVBbGln bm1lbnQgeF9hbGlnbiwgb3V0IENsdXR0ZXIuVGFibGVBbGlnbm1lbnQgeV9hbGlnbik7CistCQlw dWJsaWMgaW50IGdldF9jb2x1bW5fY291bnQgKCk7CistCQlwdWJsaWMgdWludCBnZXRfY29sdW1u X3NwYWNpbmcgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVpbnQgZ2V0X2Vhc2lu Z19kdXJhdGlvbiAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdWxvbmcgZ2V0X2Vh c2luZ19tb2RlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9leHBh bmQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIG91dCBib29sIHhfZXhwYW5kLCBvdXQgYm9vbCB5X2V4 cGFuZCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2ZpbGwgKENsdXR0 ZXIuQWN0b3IgYWN0b3IsIG91dCBib29sIHhfZmlsbCwgb3V0IGJvb2wgeV9maWxsKTsKKy0JCXB1 YmxpYyBpbnQgZ2V0X3Jvd19jb3VudCAoKTsKKy0JCXB1YmxpYyB1aW50IGdldF9yb3dfc3BhY2lu ZyAoKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9zcGFuIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQg aW50IGNvbHVtbl9zcGFuLCBvdXQgaW50IHJvd19zcGFuKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCist CQlwdWJsaWMgYm9vbCBnZXRfdXNlX2FuaW1hdGlvbnMgKCk7CistCQlwdWJsaWMgdm9pZCBwYWNr IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBpbnQgY29sdW1uLCBpbnQgcm93KTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxpZ25tZW50IChDbHV0dGVyLkFjdG9yIGFjdG9y LCBDbHV0dGVyLlRhYmxlQWxpZ25tZW50IHhfYWxpZ24sIENsdXR0ZXIuVGFibGVBbGlnbm1lbnQg eV9hbGlnbik7CistCQlwdWJsaWMgdm9pZCBzZXRfY29sdW1uX3NwYWNpbmcgKHVpbnQgc3BhY2lu Zyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Vhc2luZ19kdXJhdGlv biAodWludCBtc2Vjcyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Vh c2luZ19tb2RlICh1bG9uZyBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9p ZCBzZXRfZXhwYW5kIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBib29sIHhfZXhwYW5kLCBib29sIHlf ZXhwYW5kKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfZmlsbCAoQ2x1 dHRlci5BY3RvciBhY3RvciwgYm9vbCB4X2ZpbGwsIGJvb2wgeV9maWxsKTsKKy0JCXB1YmxpYyB2 b2lkIHNldF9yb3dfc3BhY2luZyAodWludCBzcGFjaW5nKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9z cGFuIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBpbnQgY29sdW1uX3NwYW4sIGludCByb3dfc3Bhbik7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3VzZV9hbmltYXRpb25zIChi b29sIGFuaW1hdGUpOworLQkJcHVibGljIHVpbnQgY29sdW1uX3NwYWNpbmcgeyBnZXQ7IHNldDsg fQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1aW50IGVhc2luZ19kdXJhdGlvbiB7IGdl dDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVsb25nIGVhc2luZ19tb2Rl IHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyB1aW50IHJvd19zcGFjaW5nIHsgZ2V0OyBzZXQ7IH0K Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCB1c2VfYW5pbWF0aW9ucyB7IGdldDsg c2V0OyB9CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RhcF9hY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKyAJcHVibGljIGNsYXNzIFRhcEFjdGlvbiA6IENsdXR0 ZXIuR2VzdHVyZUFjdGlvbiB7CitAQCAtNzM0OCw3ICs2NzM1LDcgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJcHVibGljIENsdXR0ZXIuQ29sb3IgZ2V0X2N1cnNvcl9jb2xvciAoKTsKKyAJCXB1 YmxpYyBpbnQgZ2V0X2N1cnNvcl9wb3NpdGlvbiAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjE2IildCistCQlwdWJsaWMgdm9pZCBnZXRfY3Vyc29yX3JlY3QgKG91dCB1bm93bmVkIENsdXR0 ZXIuUmVjdCByZWN0KTsKKysJCXB1YmxpYyB2b2lkIGdldF9jdXJzb3JfcmVjdCAob3V0IHVub3du ZWQgR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCXB1YmxpYyB1aW50IGdldF9jdXJzb3Jfc2l6ZSAo KTsKKyAJCXB1YmxpYyBib29sIGdldF9jdXJzb3JfdmlzaWJsZSAoKTsKKyAJCXB1YmxpYyBib29s IGdldF9lZGl0YWJsZSAoKTsKK0BAIC03NDY3LDcgKzY4NTQsNyBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2ln bmFsIHZvaWQgY3Vyc29yX2NoYW5nZWQgKCk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IHZpcnR1YWwgc2lnbmFsIHZvaWQgY3Vyc29yX2V2ZW50IChDbHV0dGVyLkdlb21ldHJ5IGdlb21l dHJ5KTsKKysJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGN1cnNvcl9ldmVudCAoR3JhcGhl bmUuUmVjdCByZWN0KTsKKyAJCVtIYXNFbWl0dGVyXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MiIpXQorIAkJcHVibGljIHNpZ25hbCB2b2lkIGRlbGV0ZV90ZXh0IChpbnQgc3RhcnRfcG9zLCBp bnQgZW5kX3Bvcyk7CitAQCAtNzUwNSw5NCArNjg5Miw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0 ZXJQYWludE5vZGUqIildCisgCQlwdWJsaWMgVGV4dE5vZGUgKFBhbmdvLkxheW91dD8gbGF5b3V0 LCBDbHV0dGVyLkNvbG9yPyBjb2xvcik7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RleHR1cmVfZ2V0X3R5 cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgY2xhc3MgVGV4 dHVyZSA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxl LCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIild CistCQlwdWJsaWMgVGV4dHVyZSAoKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIwLjYiKV0KKy0J CXB1YmxpYyBUZXh0dXJlLmZyb21fYWN0b3IgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9y KiIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21fZmlsZSAoc3Ry aW5nIGZpbGVuYW1lKSB0aHJvd3MgQ2x1dHRlci5UZXh0dXJlRXJyb3I7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGlj IHZvaWQgZ2V0X2Jhc2Vfc2l6ZSAob3V0IGludCB3aWR0aCwgb3V0IGludCBoZWlnaHQpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxlIGdldF9jb2dsX21h dGVyaWFsICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFu ZGxlIGdldF9jb2dsX3RleHR1cmUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIENs dXR0ZXIuVGV4dHVyZVF1YWxpdHkgZ2V0X2ZpbHRlcl9xdWFsaXR5ICgpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjAiKV0KKy0JCXB1YmxpYyBib29sIGdldF9rZWVwX2FzcGVjdF9yYXRpbyAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBnZXRfbG9hZF9hc3luYyAoKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgYm9vbCBnZXRfbG9hZF9kYXRhX2FzeW5jICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIwLjgiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X21heF90aWxlX3dhc3RlICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIGdldF9waWNrX3dpdGhfYWxwaGEgKCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3JlcGVhdCAob3V0IGJvb2wgcmVwZWF0X3gs IG91dCBib29sIHJlcGVhdF95KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBn ZXRfc3luY19zaXplICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBib29sIHNldF9h cmVhX2Zyb21fcmdiX2RhdGEgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1aW50OFtd IGRhdGEsIGJvb2wgaGFzX2FscGhhLCBpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdo dCwgaW50IHJvd3N0cmlkZSwgaW50IGJwcCwgQ2x1dHRlci5UZXh0dXJlRmxhZ3MgZmxhZ3MpIHRo cm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9j b2dsX21hdGVyaWFsIChDb2dsLkhhbmRsZSBjb2dsX21hdGVyaWFsKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44 IildCistCQlwdWJsaWMgdm9pZCBzZXRfY29nbF90ZXh0dXJlIChDb2dsLkhhbmRsZSBjb2dsX3Rl eCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2ZpbHRlcl9xdWFsaXR5 IChDbHV0dGVyLlRleHR1cmVRdWFsaXR5IGZpbHRlcl9xdWFsaXR5KTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44 IildCistCQlwdWJsaWMgYm9vbCBzZXRfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUpIHRocm93 cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBib29sIHNldF9mcm9t X3JnYl9kYXRhIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gdWludDhbXSBkYXRhLCBi b29sIGhhc19hbHBoYSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBpbnQgcm93c3RyaWRlLCBpbnQg YnBwLCBDbHV0dGVyLlRleHR1cmVGbGFncyBmbGFncykgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNp bmNlID0gIjAuNCIpXQorLQkJcHVibGljIGJvb2wgc2V0X2Zyb21feXV2X2RhdGEgKFtDQ29kZSAo YXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1aW50OFtdIGRhdGEsIGludCB3aWR0aCwgaW50IGhlaWdo dCwgQ2x1dHRlci5UZXh0dXJlRmxhZ3MgZmxhZ3MpIHRocm93cyBHTGliLkVycm9yOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9rZWVwX2FzcGVjdF9yYXRpbyAoYm9vbCBr ZWVwX2FzcGVjdCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xvYWRf YXN5bmMgKGJvb2wgbG9hZF9hc3luYyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZv aWQgc2V0X2xvYWRfZGF0YV9hc3luYyAoYm9vbCBsb2FkX2FzeW5jKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40 IildCistCQlwdWJsaWMgdm9pZCBzZXRfcGlja193aXRoX2FscGhhIChib29sIHBpY2tfd2l0aF9h bHBoYSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3JlcGVhdCAoYm9v bCByZXBlYXRfeCwgYm9vbCByZXBlYXRfeSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X3N5bmNfc2l6ZSAoYm9vbCBzeW5jX3NpemUpOworLQkJcHVibGljIENvZ2wuTWF0 ZXJpYWwgY29nbF9tYXRlcmlhbCB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgQ29nbC5UZXh0dXJl IGNvZ2xfdGV4dHVyZSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1 YmxpYyBib29sIGRpc2FibGVfc2xpY2luZyB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgc3RyaW5nIGZpbGVuYW1lIHsgb3duZWQgZ2V0OyBz ZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLlRleHR1cmVRdWFsaXR5IGZpbHRlcl9xdWFsaXR5IHsg Z2V0OyBzZXQgY29uc3RydWN0OyB9CistCQlwdWJsaWMgYm9vbCBrZWVwX2FzcGVjdF9yYXRpbyB7 IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wgbG9hZF9hc3lu YyB7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGxvYWRfZGF0YV9h c3luYyB7IHNldDsgfQorLQkJcHVibGljIGJvb2wgcGlja193aXRoX2FscGhhIHsgZ2V0OyBzZXQ7 IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgcmVwZWF0X3ggeyBnZXQ7 IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCByZXBlYXRfeSB7 IGdldDsgc2V0OyB9CistCQlwdWJsaWMgYm9vbCBzeW5jX3NpemUgeyBnZXQ7IHNldDsgfQorLQkJ W05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IHRpbGVfd2FzdGUgeyBnZXQ7IH0KKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBsb2FkX2Zpbmlz aGVkIChHTGliLkVycm9yIGVycm9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9p ZCBwaXhidWZfY2hhbmdlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHNp emVfY2hhbmdlIChpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQl9CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl90ZXh0 dXJlX25vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJ cHVibGljIGNsYXNzIFRleHR1cmVOb2RlIDogQ2x1dHRlci5QaXBlbGluZU5vZGUgeworQEAgLTc2 MDQsNyArNjkwMyw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJcHVibGljIGNsYXNzIFRpbWVs aW5lIDogR0xpYi5PYmplY3QsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CisgCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42Iild CistCQlwdWJsaWMgVGltZWxpbmUgKHVpbnQgbXNlY3MpOworKwkJcHVibGljIFRpbWVsaW5lICh1 aW50IGR1cmF0aW9uX21zKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisgCQlwdWJs aWMgdm9pZCBhZGRfbWFya2VyIChzdHJpbmcgbWFya2VyX25hbWUsIGRvdWJsZSBwcm9ncmVzcyk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCitAQCAtNzYxMiwxMiArNjkxMSwxNSBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBhZHZhbmNlICh1aW50IG1zZWNzKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyB2b2lkIGFkdmFuY2VfdG9f bWFya2VyIChzdHJpbmcgbWFya2VyX25hbWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1Ymxp YyBDbHV0dGVyLlRpbWVsaW5lIGNsb25lICgpOworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UpXQorKwkJcHVibGljIFRpbWVsaW5lLmZvcl9hY3RvciAoQ2x1dHRlci5B Y3RvciBhY3RvciwgdWludCBkdXJhdGlvbl9tcyk7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3Rf ZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwdWJsaWMgVGltZWxpbmUuZm9yX2ZyYW1lX2Nsb2NrIChD bHV0dGVyLkZyYW1lQ2xvY2sgZnJhbWVfY2xvY2ssIHVpbnQgZHVyYXRpb25fbXMpOworKwkJcHVi bGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfYWN0b3IgKCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS42IildCisgCQlwdWJsaWMgYm9vbCBnZXRfYXV0b19yZXZlcnNlICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBib29sIGdldF9jdWJpY19iZXppZXJf cHJvZ3Jlc3MgKENsdXR0ZXIuUG9pbnQgY18xLCBDbHV0dGVyLlBvaW50IGNfMik7CisrCQlwdWJs aWMgYm9vbCBnZXRfY3ViaWNfYmV6aWVyX3Byb2dyZXNzIChHcmFwaGVuZS5Qb2ludCBjXzEsIEdy YXBoZW5lLlBvaW50IGNfMik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVi bGljIGludCBnZXRfY3VycmVudF9yZXBlYXQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40 IildCitAQCAtNzYzMSw4ICs2OTMzLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBpbnQ2NCBnZXRfZHVyYXRpb25faGludCAo KTsKKyAJCXB1YmxpYyB1aW50IGdldF9lbGFwc2VkX3RpbWUgKCk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIGJv b2wgZ2V0X2xvb3AgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMg ZG91YmxlIGdldF9wcm9ncmVzcyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitA QCAtNzY1MSwxOCArNjk1MSwxOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgdm9pZCByZW1vdmVfbWFya2VyIChzdHJpbmcgbWFy a2VyX25hbWUpOworIAkJcHVibGljIHZvaWQgcmV3aW5kICgpOworKwkJcHVibGljIHZvaWQgc2V0 X2FjdG9yIChDbHV0dGVyLkFjdG9yPyBhY3Rvcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42 IildCisgCQlwdWJsaWMgdm9pZCBzZXRfYXV0b19yZXZlcnNlIChib29sIHJldmVyc2UpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jdWJpY19iZXpp ZXJfcHJvZ3Jlc3MgKENsdXR0ZXIuUG9pbnQgY18xLCBDbHV0dGVyLlBvaW50IGNfMik7CisrCQlw dWJsaWMgdm9pZCBzZXRfY3ViaWNfYmV6aWVyX3Byb2dyZXNzIChHcmFwaGVuZS5Qb2ludCBjXzEs IEdyYXBoZW5lLlBvaW50IGNfMik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisgCQlw dWJsaWMgdm9pZCBzZXRfZGVsYXkgKHVpbnQgbXNlY3MpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjAuNiIpXQorIAkJcHVibGljIHZvaWQgc2V0X2RpcmVjdGlvbiAoQ2x1dHRlci5UaW1lbGluZURp cmVjdGlvbiBkaXJlY3Rpb24pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVi bGljIHZvaWQgc2V0X2R1cmF0aW9uICh1aW50IG1zZWNzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBz ZXRfbG9vcCAoYm9vbCBsb29wKTsKKysJCXB1YmxpYyB2b2lkIHNldF9mcmFtZV9jbG9jayAoQ2x1 dHRlci5GcmFtZUNsb2NrIGZyYW1lX2Nsb2NrKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCisgCQlwdWJsaWMgdm9pZCBzZXRfcHJvZ3Jlc3NfZnVuYyAob3duZWQgQ2x1dHRlci5UaW1l bGluZVByb2dyZXNzRnVuYz8gZnVuYyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor QEAgLTc2NzQsNiArNjk3NCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lk IHNraXAgKHVpbnQgbXNlY3MpOworIAkJcHVibGljIHZvaWQgc3RhcnQgKCk7CisgCQlwdWJsaWMg dm9pZCBzdG9wICgpOworKwkJcHVibGljIENsdXR0ZXIuQWN0b3IgYWN0b3IgeyBnZXQ7IHNldCBj b25zdHJ1Y3Q7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBib29s IGF1dG9fcmV2ZXJzZSB7IGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40Iild CitAQCAtNzY4Miw4ICs2OTgzLDggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIENs dXR0ZXIuVGltZWxpbmVEaXJlY3Rpb24gZGlyZWN0aW9uIHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB1aW50IGR1cmF0aW9uIHsgZ2V0OyBzZXQ7 IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIildCistCQlwdWJsaWMgYm9vbCBsb29wIHsgZ2V0OyBzZXQ7IH0KKysJCVtOb0FjY2Vzc29y TWV0aG9kXQorKwkJcHVibGljIENsdXR0ZXIuRnJhbWVDbG9jayBmcmFtZV9jbG9jayB7IG93bmVk IGdldDsgc2V0IGNvbnN0cnVjdDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJ CXB1YmxpYyBDbHV0dGVyLkFuaW1hdGlvbk1vZGUgcHJvZ3Jlc3NfbW9kZSB7IGdldDsgc2V0OyB9 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTc2OTcsMTIgKzY5OTgsNiBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVi bGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgc3RvcHBlZCAoYm9vbCBpc19maW5pc2hlZCk7CisgCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtD b21wYWN0XQorLQlwdWJsaWMgY2xhc3MgVGltZW91dFBvb2wgeworLQkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHVibGljIFRpbWVvdXRQb29sIChpbnQgcHJp b3JpdHkpOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbQ29tcGFjdF0KKyAJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KK0BAIC03NzUzLDYgKzcwNDgsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJcHVibGljIGZsb2F0IHg7CisgCQlwdWJsaWMgZmxvYXQgeTsKKyAJfQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0 ZXJfdHJhbnNmb3JtX25vZGVfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIFRyYW5zZm9y bU5vZGUgOiBDbHV0dGVyLlBhaW50Tm9kZSB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVu Y3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyUGFpbnROb2RlKiIpXQorKwkJcHVibGljIFRy YW5zZm9ybU5vZGUgKENvZ2wuTWF0cml4IHByb2plY3Rpb24pOworKwl9CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl90 cmFuc2l0aW9uX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisg CXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBUcmFuc2l0aW9uIDogQ2x1dHRlci5UaW1lbGluZSwgQ2x1 dHRlci5TY3JpcHRhYmxlIHsKK0BAIC03NzkyLDcgKzcwOTIsNiBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90 ZWN0ZWQgVmlydHVhbElucHV0RGV2aWNlICgpOworIAkJcHVibGljIGludCBnZXRfZGV2aWNlX3R5 cGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkRldmljZU1hbmFnZXIgZ2V0X21hbmFn ZXIgKCk7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIG5vdGlmeV9hYnNvbHV0ZV9tb3Rpb24gKHVp bnQ2NCB0aW1lX3VzLCBkb3VibGUgeCwgZG91YmxlIHkpOworIAkJcHVibGljIHZpcnR1YWwgdm9p ZCBub3RpZnlfYnV0dG9uICh1aW50NjQgdGltZV91cywgdWludDMyIGJ1dHRvbiwgQ2x1dHRlci5C dXR0b25TdGF0ZSBidXR0b25fc3RhdGUpOworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBub3RpZnlf ZGlzY3JldGVfc2Nyb2xsICh1aW50NjQgdGltZV91cywgQ2x1dHRlci5TY3JvbGxEaXJlY3Rpb24g ZGlyZWN0aW9uLCBDbHV0dGVyLlNjcm9sbFNvdXJjZSBzY3JvbGxfc291cmNlKTsKK0BAIC03ODAz LDI4ICs3MTAyLDI3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZv aWQgbm90aWZ5X3RvdWNoX2Rvd24gKHVpbnQ2NCB0aW1lX3VzLCBpbnQgc2xvdCwgZG91YmxlIHgs IGRvdWJsZSB5KTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90aWZ5X3RvdWNoX21vdGlvbiAo dWludDY0IHRpbWVfdXMsIGludCBzbG90LCBkb3VibGUgeCwgZG91YmxlIHkpOworIAkJcHVibGlj IHZpcnR1YWwgdm9pZCBub3RpZnlfdG91Y2hfdXAgKHVpbnQ2NCB0aW1lX3VzLCBpbnQgc2xvdCk7 CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBDbHV0dGVyLkRldmljZU1hbmFnZXIg ZGV2aWNlX21hbmFnZXIgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJcHVibGljIENsdXR0 ZXIuSW5wdXREZXZpY2VUeXBlIGRldmljZV90eXBlIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCVtO b0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIENsdXR0ZXIuU2VhdCBzZWF0IHsgb3duZWQgZ2V0 OyBjb25zdHJ1Y3Q7IH0KKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfem9vbV9hY3Rpb25fZ2V0X3R5cGUgKCki KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJcHVibGljIGNsYXNzIFpvb21BY3Rp b24gOiBDbHV0dGVyLkdlc3R1cmVBY3Rpb24geworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdGlvbioiKV0KKyAJCXB1YmxpYyBab29t QWN0aW9uICgpOworLQkJcHVibGljIHZvaWQgZ2V0X2ZvY2FsX3BvaW50IChDbHV0dGVyLlBvaW50 IHBvaW50KTsKKy0JCXB1YmxpYyB2b2lkIGdldF90cmFuc2Zvcm1lZF9mb2NhbF9wb2ludCAoQ2x1 dHRlci5Qb2ludCBwb2ludCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfZm9jYWxfcG9pbnQgKEdyYXBo ZW5lLlBvaW50IHBvaW50KTsKKysJCXB1YmxpYyB2b2lkIGdldF90cmFuc2Zvcm1lZF9mb2NhbF9w b2ludCAoR3JhcGhlbmUuUG9pbnQgcG9pbnQpOworIAkJcHVibGljIENsdXR0ZXIuWm9vbUF4aXMg Z2V0X3pvb21fYXhpcyAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF96b29tX2F4aXMgKENsdXR0ZXIu Wm9vbUF4aXMgYXhpcyk7CisgCQlwdWJsaWMgQ2x1dHRlci5ab29tQXhpcyB6b29tX2F4aXMgeyBn ZXQ7IHNldDsgfQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgem9vbSAoQ2x1dHRlci5B Y3RvciBhY3RvciwgQ2x1dHRlci5Qb2ludCBmb2NhbF9wb2ludCwgZG91YmxlIGZhY3Rvcik7Cisr CQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCB6b29tIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBH cmFwaGVuZS5Qb2ludCBmb2NhbF9wb2ludCwgZG91YmxlIGZhY3Rvcik7CisgCX0KKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9jbmFtZSA9ICJD bHV0dGVyQW5pbWF0YWJsZUludGVyZmFjZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hbmltYXRhYmxl X2dldF90eXBlICgpIildCisgCXB1YmxpYyBpbnRlcmZhY2UgQW5pbWF0YWJsZSA6IEdMaWIuT2Jq ZWN0IHsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjgiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBhYnN0cmFjdCBib29sIGFuaW1hdGVf cHJvcGVydHkgKENsdXR0ZXIuQW5pbWF0aW9uIGFuaW1hdGlvbiwgc3RyaW5nIHByb3BlcnR5X25h bWUsIEdMaWIuVmFsdWUgaW5pdGlhbF92YWx1ZSwgR0xpYi5WYWx1ZSBmaW5hbF92YWx1ZSwgZG91 YmxlIHByb2dyZXNzLCBHTGliLlZhbHVlIHZhbHVlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjQiKV0KKyAJCXB1YmxpYyBhYnN0cmFjdCB1bm93bmVkIEdMaWIuUGFyYW1TcGVjIGZpbmRfcHJv cGVydHkgKHN0cmluZyBwcm9wZXJ0eV9uYW1lKTsKKysJCXB1YmxpYyBhYnN0cmFjdCB1bm93bmVk IENsdXR0ZXIuQWN0b3IgZ2V0X2FjdG9yICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIp XQorIAkJcHVibGljIGFic3RyYWN0IHZvaWQgZ2V0X2luaXRpYWxfc3RhdGUgKHN0cmluZyBwcm9w ZXJ0eV9uYW1lLCBHTGliLlZhbHVlIHZhbHVlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgi KV0KK0BAIC03ODM1LDEyICs3MTMzLDkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0 ZXJfY29udGFpbmVyX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0K KyAJcHVibGljIGludGVyZmFjZSBDb250YWluZXIgOiBHTGliLk9iamVjdCB7CistCQlwdWJsaWMg dm9pZCBhZGQgKHBhcmFtcyBDbHV0dGVyLkFjdG9yW10gYWN0b3JzKTsKKyAJCVtDQ29kZSAodmZ1 bmNfbmFtZSA9ICJhZGQiKV0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40IildCisgCQlwdWJsaWMgYWJzdHJhY3Qg dm9pZCBhZGRfYWN0b3IgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0K Ky0JCXB1YmxpYyB2b2lkIGFkZF92YWxpc3QgKENsdXR0ZXIuQWN0b3IgZmlyc3RfYWN0b3IsIHZh X2xpc3QgdmFyX2FyZ3MpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGlj IHZvaWQgY2hpbGRfZ2V0IChDbHV0dGVyLkFjdG9yIGFjdG9yLCAuLi4pOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjAuOCIpXQorQEAgLTc4NjAsMTggKzcxNTUsMTAgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBkZXN0cm95X2NoaWxkX21ldGEgKENsdXR0ZXIu QWN0b3IgYWN0b3IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHVu b3duZWQgQ2x1dHRlci5BY3RvciBmaW5kX2NoaWxkX2J5X25hbWUgKHN0cmluZyBjaGlsZF9uYW1l KTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9jb250YWluZXJfY2xhc3NfZmluZF9jaGls ZF9wcm9wZXJ0eSIpXQorLQkJcHVibGljIGNsYXNzIHVub3duZWQgR0xpYi5QYXJhbVNwZWMgZmlu ZF9jaGlsZF9wcm9wZXJ0eSAoc3RyaW5nIHByb3BlcnR5X25hbWUpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQi KV0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIEBmb3JlYWNoIChDbHV0dGVyLkNhbGxiYWNrIGNh bGxiYWNrKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGZvcmVh Y2hfd2l0aF9pbnRlcm5hbHMgKENsdXR0ZXIuQ2FsbGJhY2sgY2FsbGJhY2spOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLkNo aWxkTWV0YSBnZXRfY2hpbGRfbWV0YSAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CisgCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0g IjAuNCIpXQorIAkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIENsdXR0ZXIuQWN0b3I+IGdldF9jaGls ZHJlbiAoKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9jb250YWluZXJfY2xhc3NfbGlz dF9jaGlsZF9wcm9wZXJ0aWVzIildCistCQlwdWJsaWMgY2xhc3MgdW5vd25lZCBHTGliLlBhcmFt U3BlY1tdIGxpc3RfY2hpbGRfcHJvcGVydGllcyAoKTsKKyAJCVtDQ29kZSAodmZ1bmNfbmFtZSA9 ICJsb3dlciIpXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbG93 ZXJfY2hpbGQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuQWN0b3I/IHNpYmxpbmcgPSBu dWxsKTsKK0BAIC03ODgzLDggKzcxNzAsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbQ0Nv ZGUgKHZmdW5jX25hbWUgPSAicmVtb3ZlIildCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQorIAkJcHVibGlj IGFic3RyYWN0IHZvaWQgcmVtb3ZlX2FjdG9yIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2lu Y2UgPSAiMC40IildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfdmFsaXN0IChDbHV0dGVyLkFjdG9y IGZpcnN0X2FjdG9yLCB2YV9saXN0IHZhcl9hcmdzKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCisgCQlw dWJsaWMgYWJzdHJhY3Qgdm9pZCBzb3J0X2RlcHRoX29yZGVyICgpOworIAkJcHVibGljIHZpcnR1 YWwgc2lnbmFsIHZvaWQgYWN0b3JfYWRkZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworQEAgLTc5 MDEsNyArNzE4Niw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBhYnN0cmFjdCB2 b2lkIGludmFsaWRhdGUgKCk7CisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBpbnZhbGlkYXRlX3Np emUgKCk7CisgCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgcGFpbnRfY29u dGVudCAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5QYWludE5vZGUgbm9kZSk7CisrCQlw dWJsaWMgYWJzdHJhY3Qgdm9pZCBwYWludF9jb250ZW50IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBD bHV0dGVyLlBhaW50Tm9kZSBub2RlLCBDbHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0 KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdmlydHVhbCBzaWdu YWwgdm9pZCBhdHRhY2hlZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorQEAgLTc5MTUsNDcgKzcyMDAsMTYgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJcHVibGljIGFic3RyYWN0IHZvaWQgc2V0X2N1c3RvbV9wcm9wZXJ0eSAoQ2x1dHRlci5T Y3JpcHQgc2NyaXB0LCBzdHJpbmcgbmFtZSwgR0xpYi5WYWx1ZSB2YWx1ZSk7CisgCQlwdWJsaWMg YWJzdHJhY3Qgdm9pZCBzZXRfaWQgKHN0cmluZyBpZF8pOworIAl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlwdWJsaWMgaW50ZXJmYWNlIFN0 YWdlV2luZG93IDogR0xpYi5PYmplY3QgeworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0 cmFjdCB2b2lkIGFkZF9yZWRyYXdfY2xpcCAoQ2x1dHRlci5HZW9tZXRyeSBzdGFnZV9yZWN0YW5n bGUpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGdldF9nZW9tZXRy eSAoQ2x1dHRlci5HZW9tZXRyeSBnZW9tZXRyeSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGlj IGFic3RyYWN0IGludCBnZXRfcGVuZGluZ19zd2FwcyAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlw dWJsaWMgYWJzdHJhY3QgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF93cmFwcGVyICgpOworLQkJ W05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCBib29sIGhhc19yZWRyYXdfY2xpcHMgKCk7 CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgaGlkZSAoKTsKKy0JCVtO b1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3QgYm9vbCBpZ25vcmluZ19yZWRyYXdfY2xpcHMg KCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IGJvb2wgcmVhbGl6ZSAoKTsK Ky0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCByZXNpemUgKGludCB3aWR0 aCwgaW50IGhlaWdodCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQg c2V0X2N1cnNvcl92aXNpYmxlIChib29sIGN1cnNvcl92aXNpYmxlKTsKKy0JCVtOb1dyYXBwZXJd CistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfZnVsbHNjcmVlbiAoYm9vbCBpc19mdWxsc2Ny ZWVuKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfdGl0bGUg KHN0cmluZyB0aXRsZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQg c2V0X3VzZXJfcmVzaXphYmxlIChib29sIGlzX3Jlc2l6YWJsZSk7CistCQlbTm9XcmFwcGVyXQor LQkJcHVibGljIGFic3RyYWN0IHZvaWQgc2hvdyAoYm9vbCBkb19yYWlzZSk7CistCQlbTm9XcmFw cGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgdW5yZWFsaXplICgpOworLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiQ0xV VFRFUl9UWVBFX0FDVE9SX0JPWCIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVu Y3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FjdG9yX2JveF9nZXRf dHlwZSAoKSIpXQorIAlwdWJsaWMgc3RydWN0IEFjdG9yQm94IHsKKyAJCXB1YmxpYyBmbG9hdCB4 MTsKKyAJCXB1YmxpYyBmbG9hdCB5MTsKKyAJCXB1YmxpYyBmbG9hdCB4MjsKKyAJCXB1YmxpYyBm bG9hdCB5MjsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisrCQlwdWJsaWMgc3RhdGlj IENsdXR0ZXIuQWN0b3JCb3g/IGFsbG9jICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIp XQorLQkJcHVibGljIHZvaWQgY2xhbXBfdG9fcGl4ZWwgKCk7CisrCQlwdWJsaWMgc3RhdGljIHZv aWQgY2xhbXBfdG9fcGl4ZWwgKHJlZiBDbHV0dGVyLkFjdG9yQm94IGJveCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgYm9vbCBjb250YWlucyAoZmxvYXQgeCwgZmxv YXQgeSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCitAQCAtNzk2NCw4ICs3MjE4LDYg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgZXF1YWwgKENsdXR0ZXIuQWN0 b3JCb3ggYm94X2IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZv aWQgZnJlZSAoKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9hY3Rvcl9ib3hfZnJvbV92 ZXJ0aWNlcyIpXQorLQkJcHVibGljIEFjdG9yQm94LmZyb21fdmVydGljZXMgKENsdXR0ZXIuVmVy dGV4W10gdmVydHMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIGZs b2F0IGdldF9hcmVhICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorQEAgLTc5ODYs NiArNzIzOCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIGluaXRfcmVj dCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgQ2x1dHRlci5BY3RvckJveCBpbnRlcnBv bGF0ZSAoQ2x1dHRlci5BY3RvckJveCBmaW5hbCwgZG91YmxlIHByb2dyZXNzKTsKKysJCXB1Ymxp YyBib29sIGlzX2luaXRpYWxpemVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQor IAkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IHNjYWxlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjYiKV0KK0BAIC04MDExLDcgKzcyNjQsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlw dWJsaWMgd2VhayBDYWlyby5TdXJmYWNlIGltYWdlOworIAkJcHVibGljIENhaXJvLlJlY3Rhbmds ZUludCByZWN0OworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIHR5cGVfaWQgPSAiQ0xVVFRFUl9UWVBFX0NPTE9SIildCisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19i b3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNs dXR0ZXJfY29sb3JfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIHN0cnVjdCBDb2xvciB7CisgCQlw dWJsaWMgdWludDggcmVkOworIAkJcHVibGljIHVpbnQ4IGdyZWVuOworQEAgLTgwMjcsMTIgKzcy ODAsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgZXF1YWwgKENsdXR0 ZXIuQ29sb3IgdjIpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAkJcHVibGljIHZv aWQgZnJlZSAoKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9jb2xvcl9mcm9tX2hscyIp XQorLQkJcHVibGljIENvbG9yLmZyb21faGxzIChmbG9hdCBodWUsIGZsb2F0IGx1bWluYW5jZSwg ZmxvYXQgc2F0dXJhdGlvbik7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfY29sb3JfZnJv bV9waXhlbCIpXQorLQkJcHVibGljIENvbG9yLmZyb21fcGl4ZWwgKHVpbnQzMiBwaXhlbCk7Cist CQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfY29sb3JfZnJvbV9zdHJpbmciKV0KKy0JCXB1Ymxp YyBDb2xvci5mcm9tX3N0cmluZyAoc3RyaW5nIHN0cik7CisrCQlwdWJsaWMgc3RhdGljIHZvaWQg ZnJvbV9obHMgKG91dCBDbHV0dGVyLkNvbG9yIGNvbG9yLCBmbG9hdCBodWUsIGZsb2F0IGx1bWlu YW5jZSwgZmxvYXQgc2F0dXJhdGlvbik7CisrCQlwdWJsaWMgc3RhdGljIHZvaWQgZnJvbV9waXhl bCAob3V0IENsdXR0ZXIuQ29sb3IgY29sb3IsIHVpbnQzMiBwaXhlbCk7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIGJvb2wgZnJvbV9zdHJpbmcgKG91dCBD bHV0dGVyLkNvbG9yIGNvbG9yLCBzdHJpbmcgc3RyKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjYiKV0KKyAJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkNvbG9yPyBnZXRfc3RhdGlj IChDbHV0dGVyLlN0YXRpY0NvbG9yIGNvbG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKyAJCXB1YmxpYyB1aW50IGhhc2ggKCk7CitAQCAtODA0MSw4ICs3MjkzLDYgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIENs dXR0ZXIuQ29sb3IgaW50ZXJwb2xhdGUgKENsdXR0ZXIuQ29sb3IgZmluYWwsIGRvdWJsZSBwcm9n cmVzcyk7CisgCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBsaWdodGVuICgpOworLQkJW0NDb2RlIChj bmFtZSA9ICJjbHV0dGVyX2NvbG9yX2Zyb21fc3RyaW5nIildCistCQlwdWJsaWMgYm9vbCBwYXJz ZV9zdHJpbmcgKHN0cmluZyBzdHIpOworIAkJcHVibGljIENsdXR0ZXIuQ29sb3Igc2hhZGUgKGRv dWJsZSBmYWN0b3IpOworIAkJcHVibGljIENsdXR0ZXIuQ29sb3Igc3VidHJhY3QgKENsdXR0ZXIu Q29sb3IgYik7CisgCQlwdWJsaWMgdm9pZCB0b19obHMgKG91dCBmbG9hdCBodWUsIG91dCBmbG9h dCBsdW1pbmFuY2UsIG91dCBmbG9hdCBzYXR1cmF0aW9uKTsKK0BAIC04MDUwLDIzICs3MzAwLDEw IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KKyAJ CXB1YmxpYyBzdHJpbmcgdG9fc3RyaW5nICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9mb2dfZ2V0X3R5 cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0cnVjdCBGb2cgeworLQkJcHVi bGljIGZsb2F0IHpfbmVhcjsKKy0JCXB1YmxpYyBmbG9hdCB6X2ZhcjsKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0 ZXJfZ2VvbWV0cnlfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0cnVjdCBHZW9tZXRyeSB7 CistCQlwdWJsaWMgaW50IHg7CistCQlwdWJsaWMgaW50IHk7CistCQlwdWJsaWMgdWludCB3aWR0 aDsKKy0JCXB1YmxpYyB1aW50IGhlaWdodDsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0K Ky0JCXB1YmxpYyBib29sIGludGVyc2VjdHMgKENsdXR0ZXIuR2VvbWV0cnkgZ2VvbWV0cnkxKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkdlb21ldHJ5 IHVuaW9uIChDbHV0dGVyLkdlb21ldHJ5IGdlb21ldHJ5X2IpOworKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJ cHVibGljIHN0cnVjdCBGcmFtZUxpc3RlbmVySWZhY2UgeworKwkJcHVibGljIHdlYWsgZ2xvYmFs OjpiZWZvcmVfZnJhbWUgYmVmb3JlX2ZyYW1lOworKwkJcHVibGljIHdlYWsgZ2xvYmFsOjpmcmFt ZSBmcmFtZTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIHN0cnVjdCBLYmRBMTF5U2V0 dGluZ3MgeworQEAgLTgwNzgsNyArNzMxNSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1 YmxpYyBpbnQgbW91c2VrZXlzX21heF9zcGVlZDsKKyAJCXB1YmxpYyBpbnQgbW91c2VrZXlzX2Fj Y2VsX3RpbWU7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2tub3RfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9 ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQg PSAiY2x1dHRlcl9rbm90X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIi KV0KKyAJcHVibGljIHN0cnVjdCBLbm90IHsKKyAJCXB1YmxpYyBpbnQgeDsKK0BAIC04MDg3LDgg KzczMjQsMTkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgZXF1YWwgKENs dXR0ZXIuS25vdCBrbm90X2IpOworIAkJcHVibGljIHZvaWQgZnJlZSAoKTsKKyAJfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJDT0dMX1RZ UEVfTUFUUklYIildCisgCXB1YmxpYyBzdHJ1Y3QgTWF0cml4IDogQ29nbC5NYXRyaXggeworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKysJCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5NYXRy aXg/IGFsbG9jICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKysJCXB1YmxpYyB2 b2lkIGZyZWUgKCk7CisrCQlwdWJsaWMgc3RhdGljIEdMaWIuVHlwZSBnZXRfdHlwZSAoKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLk1h dHJpeD8gaW5pdF9mcm9tX2FycmF5IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxv YXQgdmFsdWVzWzE2XSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorKwkJcHVibGlj IHVub3duZWQgQ2x1dHRlci5NYXRyaXg/IGluaXRfZnJvbV9tYXRyaXggKENsdXR0ZXIuTWF0cml4 IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKysJCXB1YmxpYyB1bm93bmVkIENs dXR0ZXIuTWF0cml4PyBpbml0X2lkZW50aXR5ICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlw dWJsaWMgc3RydWN0IFBhZEJ1dHRvbkV2ZW50IHsKK0BAIC04MTMwLDcgKzczNzgsNyBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZG91YmxlIHZhbHVlOworIAkJcHVibGljIHVpbnQz MiBtb2RlOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYXRoX25vZGVfZ2V0X3R5cGUgKCkiKV0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlv biA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVf aWQgPSAiY2x1dHRlcl9wYXRoX25vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorIAlwdWJsaWMgc3RydWN0IFBhdGhOb2RlIHsKKyAJCXB1YmxpYyBDbHV0dGVy LlBhdGhOb2RlVHlwZSB0eXBlOworQEAgLTgxNDAsNyArNzM4OCw3IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCXB1YmxpYyBib29sIGVxdWFsIChDbHV0dGVyLlBhdGhOb2RlIG5vZGVfYik7Cisg CQlwdWJsaWMgdm9pZCBmcmVlICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wZXJzcGVjdGl2ZV9nZXRf dHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19i b3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BlcnNwZWN0aXZlX2dldF90eXBlICgpIild CisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJcHVibGljIHN0cnVjdCBQZXJzcGVjdGl2 ZSB7CisgCQlwdWJsaWMgZmxvYXQgZm92eTsKK0BAIC04MTQ5LDYgKzczOTcsMTkgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJcHVibGljIGZsb2F0IHpfZmFyOworIAl9CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGhhc190eXBlX2lkID0gZmFsc2Up XQorKwlwdWJsaWMgc3RydWN0IFBvaW50ZXJBMTF5U2V0dGluZ3MgeworKwkJcHVibGljIENsdXR0 ZXIuUG9pbnRlckExMXlGbGFncyBjb250cm9sczsKKysJCXB1YmxpYyBDbHV0dGVyLlBvaW50ZXJB MTF5RHdlbGxDbGlja1R5cGUgZHdlbGxfY2xpY2tfdHlwZTsKKysJCXB1YmxpYyBDbHV0dGVyLlBv aW50ZXJBMTF5RHdlbGxNb2RlIGR3ZWxsX21vZGU7CisrCQlwdWJsaWMgQ2x1dHRlci5Qb2ludGVy QTExeUR3ZWxsRGlyZWN0aW9uIGR3ZWxsX2dlc3R1cmVfc2luZ2xlOworKwkJcHVibGljIENsdXR0 ZXIuUG9pbnRlckExMXlEd2VsbERpcmVjdGlvbiBkd2VsbF9nZXN0dXJlX2RvdWJsZTsKKysJCXB1 YmxpYyBDbHV0dGVyLlBvaW50ZXJBMTF5RHdlbGxEaXJlY3Rpb24gZHdlbGxfZ2VzdHVyZV9kcmFn OworKwkJcHVibGljIENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbERpcmVjdGlvbiBkd2VsbF9nZXN0 dXJlX3NlY29uZGFyeTsKKysJCXB1YmxpYyBpbnQgc2Vjb25kYXJ5X2NsaWNrX2RlbGF5OworKwkJ cHVibGljIGludCBkd2VsbF9kZWxheTsKKysJCXB1YmxpYyBpbnQgZHdlbGxfdGhyZXNob2xkOwor Kwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGhh c190eXBlX2lkID0gZmFsc2UpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4yOCIpXQorIAlwdWJs aWMgc3RydWN0IFByb3hpbWl0eUV2ZW50IHsKKyAJCXB1YmxpYyBDbHV0dGVyLkV2ZW50VHlwZSB0 eXBlOworQEAgLTgxNTgsNDcgKzc0MTksMTYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVi bGljIHdlYWsgQ2x1dHRlci5BY3RvciBzb3VyY2U7CisgCQlwdWJsaWMgd2VhayBDbHV0dGVyLklu cHV0RGV2aWNlIGRldmljZTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gIkNMVVRURVJfVFlQRV9VTklUUyIpXQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9u ID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9p ZCA9ICJjbHV0dGVyX3VuaXRzX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKyAJcHVibGljIHN0cnVjdCBVbml0cyB7CisgCQlwdWJsaWMgQ2x1dHRlci5Vbml0cz8g Y29weSAoKTsKKyAJCXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNs dXR0ZXJfdW5pdHNfZnJvbV9jbSIpXQorLQkJcHVibGljIFVuaXRzLmZyb21fY20gKGZsb2F0IGNt KTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX2VtIildCistCQlwdWJs aWMgVW5pdHMuZnJvbV9lbSAoZmxvYXQgZW0pOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVy X3VuaXRzX2Zyb21fZW1fZm9yX2ZvbnQiKV0KKy0JCXB1YmxpYyBVbml0cy5mcm9tX2VtX2Zvcl9m b250IChzdHJpbmcgZm9udF9uYW1lLCBmbG9hdCBlbSk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNs dXR0ZXJfdW5pdHNfZnJvbV9tbSIpXQorLQkJcHVibGljIFVuaXRzLmZyb21fbW0gKGZsb2F0IG1t KTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX3BpeGVscyIpXQorLQkJ cHVibGljIFVuaXRzLmZyb21fcGl4ZWxzIChpbnQgcHgpOworLQkJW0NDb2RlIChjbmFtZSA9ICJj bHV0dGVyX3VuaXRzX2Zyb21fcHQiKV0KKy0JCXB1YmxpYyBVbml0cy5mcm9tX3B0IChmbG9hdCBw dCk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9zdHJpbmciKV0KKy0J CXB1YmxpYyBVbml0cy5mcm9tX3N0cmluZyAoc3RyaW5nIHN0cik7CisgCQlwdWJsaWMgQ2x1dHRl ci5Vbml0VHlwZSBnZXRfdW5pdF90eXBlICgpOworIAkJcHVibGljIGZsb2F0IGdldF91bml0X3Zh bHVlICgpOworIAkJcHVibGljIGZsb2F0IHRvX3BpeGVscyAoKTsKKyAJCXB1YmxpYyBzdHJpbmcg dG9fc3RyaW5nICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl92ZXJ0ZXhfZ2V0X3R5cGUgKCkiKV0KKy0J W1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQlwdWJsaWMgc3RydWN0IFZlcnRleCB7CistCQlw dWJsaWMgZmxvYXQgeDsKKy0JCXB1YmxpYyBmbG9hdCB5OworLQkJcHVibGljIGZsb2F0IHo7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHN0YXRpYyBDbHV0dGVyLlZl cnRleD8gYWxsb2MgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMg Q2x1dHRlci5WZXJ0ZXg/IGNvcHkgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgYm9vbCBlcXVhbCAoQ2x1dHRlci5WZXJ0ZXggdmVydGV4X2IpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlZlcnRleD8gaW5p dCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0FDVE9SX0FM SUdOXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hY3Rvcl9hbGlnbl9nZXRfdHlwZSAoKSIpXQorIAlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgZW51bSBBY3RvckFsaWduIHsKK0BA IC04MjIzLDE0ICs3NDUzLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJWV9BWElTLAorIAkJ Qk9USAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIGNwcmVmaXggPSAiQ0xVVFRFUl8iLCB0eXBlX2lkID0gImNsdXR0ZXJfYWxsb2NhdGlvbl9m bGFnc19nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKy0JcHVibGljIGVudW0gQWxsb2NhdGlvbkZsYWdzIHsKKy0JCUFMTE9DQVRJT05fTk9ORSwK Ky0JCUFCU09MVVRFX09SSUdJTl9DSEFOR0VELAorLQkJREVMRUdBVEVfTEFZT1VUCistCX0KKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9 ICJDTFVUVEVSXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hbmltYXRpb25fbW9kZV9nZXRfdHlwZSAo KSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBlbnVtIEFuaW1hdGlv bk1vZGUgeworQEAgLTgzMzYsNiArNzU1OCwyNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlZ X0FYSVMsCisgCQlCT1RICisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0RFQlVHXyIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9kZWJ1Z19mbGFnX2dldF90eXBlICgpIildCisrCVtGbGFnc10KKysJcHVibGljIGVudW0g RGVidWdGbGFnIHsKKysJCU1JU0MsCisrCQlBQ1RPUiwKKysJCVRFWFRVUkUsCisrCQlFVkVOVCwK KysJCVBBSU5ULAorKwkJUEFOR08sCisrCQlCQUNLRU5ELAorKwkJU0NIRURVTEVSLAorKwkJU0NS SVBULAorKwkJU0hBREVSLAorKwkJTVVMVElTVEFHRSwKKysJCUFOSU1BVElPTiwKKysJCUxBWU9V VCwKKysJCVBJQ0ssCisrCQlFVkVOVExPT1AsCisrCQlDTElQUElORywKKysJCU9PQl9UUkFOU0ZP Uk1TCisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgY3ByZWZpeCA9ICJDTFVUVEVSX0RSQUdfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2RyYWdfYXhp c19nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBl bnVtIERyYWdBeGlzIHsKK0BAIC04MzQzLDExICs3NTg2LDI0IEBAIG5hbWVzcGFjZSBDbHV0dGVy IHsKKyAJCVhfQVhJUywKKyAJCVlfQVhJUworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9FRkZFQ1RfUEFJTlRf QUNUT1JfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2VmZmVjdF9wYWludF9mbGFnc19nZXRfdHlwZSAo KSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBj cHJlZml4ID0gIkNMVVRURVJfREVCVUdfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2RyYXdfZGVidWdf ZmxhZ19nZXRfdHlwZSAoKSIpXQorKwlbRmxhZ3NdCisrCXB1YmxpYyBlbnVtIERyYXdEZWJ1Z0Zs YWcgeworKwkJRElTQUJMRV9TV0FQX0VWRU5UUywKKysJCURJU0FCTEVfQ0xJUFBFRF9SRURSQVdT LAorKwkJUkVEUkFXUywKKysJCVBBSU5UX1ZPTFVNRVMsCisrCQlESVNBQkxFX0NVTExJTkcsCisr CQlESVNBQkxFX09GRlNDUkVFTl9SRURJUkVDVCwKKysJCUNPTlRJTlVPVVNfUkVEUkFXLAorKwkJ UEFJTlRfREVGT1JNX1RJTEVTLAorKwkJUEFJTlRfREFNQUdFX1JFR0lPTgorKwl9CisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xV VFRFUl9FRkZFQ1RfUEFJTlRfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2VmZmVjdF9wYWludF9mbGFn c19nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCisgCXB1YmxpYyBlbnVtIEVmZmVjdFBhaW50Rmxh Z3MgeworLQkJW0NDb2RlIChjbmFtZSA9ICJDTFVUVEVSX0VGRkVDVF9QQUlOVF9BQ1RPUl9ESVJU WSIpXQorLQkJQUNUT1JfRElSVFkKKysJCUFDVE9SX0RJUlRZLAorKwkJQllQQVNTX0VGRkVDVAor IAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNw cmVmaXggPSAiQ0xVVFRFUl9FVkVOVF8iLCB0eXBlX2lkID0gImNsdXR0ZXJfZXZlbnRfZmxhZ3Nf Z2V0X3R5cGUgKCkiKV0KKyAJW0ZsYWdzXQorQEAgLTgzOTIsMjEgKzc2NDgsMTIgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAlbRmxhZ3NdCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJ cHVibGljIGVudW0gRmVhdHVyZUZsYWdzIHsKKy0JCVRFWFRVUkVfTlBPVCwKKy0JCVNXQVBfVEhS T1RUTEUsCistCQlURVhUVVJFX1lVViwKKy0JCVRFWFRVUkVfUkVBRF9QSVhFTFMsCisgCQlTVEFH RV9TVEFUSUMsCistCQlTVEFHRV9VU0VSX1JFU0laRSwKKyAJCVNUQUdFX0NVUlNPUiwKKyAJCVNI QURFUlNfR0xTTCwKKyAJCU9GRlNDUkVFTiwKKyAJCVNUQUdFX01VTFRJUExFLAorLQkJU1dBUF9F VkVOVFM7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfZmVhdHVyZV9hdmFpbGFibGUiKV0K Ky0JCXB1YmxpYyBib29sIGlzX2F2YWlsYWJsZSAoKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1 dHRlcl9mZWF0dXJlX2dldF9hbGwiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5GZWF0dXJl RmxhZ3MgQGdldCAoKTsKKysJCVNXQVBfRVZFTlRTCisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0ZMT1dfIiwg dHlwZV9pZCA9ICJjbHV0dGVyX2Zsb3dfb3JpZW50YXRpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1Zl cnNpb24gKHNpbmNlID0gIjEuMiIpXQorQEAgLTg0MTQsMTIgKzc2NjEsMTAgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJSE9SSVpPTlRBTCwKKyAJCVZFUlRJQ0FMCisgCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVS X0ZPTlRfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2ZvbnRfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKy0J W0ZsYWdzXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4yMiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBGb250RmxhZ3MgeworLQkJ TUlQTUFQUElORywKKy0JCUhJTlRJTkcKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0ZSQU1FX1JFU1VMVF8iLCB0eXBl X2lkID0gImNsdXR0ZXJfZnJhbWVfcmVzdWx0X2dldF90eXBlICgpIildCisrCXB1YmxpYyBlbnVt IEZyYW1lUmVzdWx0IHsKKysJCVBFTkRJTkdfUFJFU0VOVEVELAorKwkJSURMRQorIAl9CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAi Q0xVVFRFUl9HRVNUVVJFX1RSSUdHRVJfRURHRV8iLCB0eXBlX2lkID0gImNsdXR0ZXJfZ2VzdHVy ZV90cmlnZ2VyX2VkZ2VfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgi KV0KK0BAIC04NjM0LDcgKzc4NzksOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCVtWZXJzaW9u IChzaW5jZSA9ICIxLjgiKV0KKyAJcHVibGljIGVudW0gT2Zmc2NyZWVuUmVkaXJlY3QgeworIAkJ QVVUT01BVElDX0ZPUl9PUEFDSVRZLAorLQkJQUxXQVlTCisrCQlBTFdBWVMsCisrCQlPTl9JRExF CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg Y3ByZWZpeCA9ICJDTFVUVEVSX09SSUVOVEFUSU9OXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9vcmll bnRhdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorQEAg LTg2NDIsNiArNzg4OCwxMyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlIT1JJWk9OVEFMLAor IAkJVkVSVElDQUwKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfUEFJTlRfRkxBR18iLCB0eXBlX2lkID0gImNs dXR0ZXJfcGFpbnRfZmxhZ19nZXRfdHlwZSAoKSIpXQorKwlbRmxhZ3NdCisrCXB1YmxpYyBlbnVt IFBhaW50RmxhZyB7CisrCQlOT05FLAorKwkJTk9fQ1VSU09SUywKKysJCUZPUkNFX0NVUlNPUlMK KysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBj cHJlZml4ID0gIkNMVVRURVJfUEFOXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYW5fYXhpc19nZXRf dHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAlwdWJsaWMgZW51bSBQ YW5BeGlzIHsKK0BAIC04NjYxLDYgKzc5MTQsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ UkVMX0xJTkVfVE8sCisgCQlSRUxfQ1VSVkVfVE8KKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfREVCVUdfTk9Q XyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9waWNrX2RlYnVnX2ZsYWdfZ2V0X3R5cGUgKCkiKV0KKysJ W0ZsYWdzXQorKwlwdWJsaWMgZW51bSBQaWNrRGVidWdGbGFnIHsKKysJCVBJQ0tJTkcKKysJfQor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4 ID0gIkNMVVRURVJfUElDS18iLCB0eXBlX2lkID0gImNsdXR0ZXJfcGlja19tb2RlX2dldF90eXBl ICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIGVudW0gUGlja01v ZGUgeworQEAgLTg2NjgsMTMgKzc5MjYsNDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJUkVB Q1RJVkUsCisgCQlBTEwKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfQTExWV9EV0VMTF9DTElDS19UWVBFXyIs IHR5cGVfaWQgPSAiY2x1dHRlcl9wb2ludGVyX2ExMXlfZHdlbGxfY2xpY2tfdHlwZV9nZXRfdHlw ZSAoKSIpXQorKwlwdWJsaWMgZW51bSBQb2ludGVyQTExeUR3ZWxsQ2xpY2tUeXBlIHsKKysJCU5P TkUsCisrCQlQUklNQVJZLAorKwkJU0VDT05EQVJZLAorKwkJTUlERExFLAorKwkJRE9VQkxFLAor KwkJRFJBRworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9BMTFZX0RXRUxMX0RJUkVDVElPTl8iLCB0eXBlX2lk ID0gImNsdXR0ZXJfcG9pbnRlcl9hMTF5X2R3ZWxsX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQor KwlwdWJsaWMgZW51bSBQb2ludGVyQTExeUR3ZWxsRGlyZWN0aW9uIHsKKysJCU5PTkUsCisrCQlM RUZULAorKwkJUklHSFQsCisrCQlVUCwKKysJCURPV04KKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfQTExWV9E V0VMTF9NT0RFXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wb2ludGVyX2ExMXlfZHdlbGxfbW9kZV9n ZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgZW51bSBQb2ludGVyQTExeUR3ZWxsTW9kZSB7CisrCQlX SU5ET1csCisrCQlHRVNUVVJFCisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0ExMVlfIiwgdHlwZV9pZCA9ICJj bHV0dGVyX3BvaW50ZXJfYTExeV9mbGFnc19nZXRfdHlwZSAoKSIpXQorKwlbRmxhZ3NdCisrCXB1 YmxpYyBlbnVtIFBvaW50ZXJBMTF5RmxhZ3MgeworKwkJU0VDT05EQVJZX0NMSUNLX0VOQUJMRUQs CisrCQlEV0VMTF9FTkFCTEVECisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0ExMVlfVElNRU9VVF9UWVBFXyIs IHR5cGVfaWQgPSAiY2x1dHRlcl9wb2ludGVyX2ExMXlfdGltZW91dF90eXBlX2dldF90eXBlICgp IildCisrCXB1YmxpYyBlbnVtIFBvaW50ZXJBMTF5VGltZW91dFR5cGUgeworKwkJU0VDT05EQVJZ X0NMSUNLLAorKwkJRFdFTEwsCisrCQlHRVNUVVJFCisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX1JFUEFJTlRf RkxBR1NfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3JlcGFpbnRfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0K KyAJW0ZsYWdzXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgZW51bSBS ZXBhaW50RmxhZ3MgeworIAkJUFJFX1BBSU5ULAorLQkJUE9TVF9QQUlOVCwKKy0JCVFVRVVFX1JF RFJBV19PTl9BREQKKysJCVBPU1RfUEFJTlQKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfUkVRVUVTVF8iLCB0 eXBlX2lkID0gImNsdXR0ZXJfcmVxdWVzdF9tb2RlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9u IChzaW5jZSA9ICIwLjgiKV0KK0BAIC04NzU1LDggKzgwNDYsNiBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCVtGbGFnc10KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAlwdWJsaWMgZW51 bSBTdGFnZVN0YXRlIHsKKy0JCUZVTExTQ1JFRU4sCistCQlPRkZTQ1JFRU4sCisgCQlBQ1RJVkFU RUQKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCBjcHJlZml4ID0gIkNMVVRURVJfQ09MT1JfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3N0YXRpY19j b2xvcl9nZXRfdHlwZSAoKSIpXQorQEAgLTg4MjMsMTMgKzgxMTIsNiBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlMRUZULAorIAkJUklHSFQKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfVEFCTEVfQUxJR05N RU5UXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl90YWJsZV9hbGlnbm1lbnRfZ2V0X3R5cGUgKCkiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMjIi LCBzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGVudW0gVGFibGVBbGlnbm1lbnQgeworLQkJU1RB UlQsCistCQlDRU5URVIsCistCQlFTkQKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfVEVYVF9ESVJFQ1RJT05f IiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RleHRfZGlyZWN0aW9uX2dldF90eXBlICgpIildCisgCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJcHVibGljIGVudW0gVGV4dERpcmVjdGlvbiB7CitA QCAtODkwNSwyOCArODE4NywxNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlWQUxVRTsKKyAJ CXB1YmxpYyBzdGF0aWMgR0xpYi5RdWFyayBxdWFyayAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfVEVY VFVSRV9FUlJPUl8iKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQlwdWJsaWMgZXJy b3Jkb21haW4gVGV4dHVyZUVycm9yIHsKKy0JCU9VVF9PRl9NRU1PUlksCistCQlOT19ZVVYsCist CQlCQURfRk9STUFUOworLQkJcHVibGljIHN0YXRpYyBHTGliLlF1YXJrIHF1YXJrICgpOworLQl9 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGluc3Rh bmNlX3BvcyA9IDEuOSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjI0IildCisgCXB1YmxpYyBk ZWxlZ2F0ZSBDbHV0dGVyLkFjdG9yIEFjdG9yQ3JlYXRlQ2hpbGRGdW5jIChHTGliLk9iamVjdCBp dGVtKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg aW5zdGFuY2VfcG9zID0gMS45KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGRlbGVnYXRl IGRvdWJsZSBBbHBoYUZ1bmMgKENsdXR0ZXIuQWxwaGEgYWxwaGEpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS42Iiwg c2luY2UgPSAiMC4yIildCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIEJlaGF2aW91ckZvcmVhY2hG dW5jIChDbHV0dGVyLkJlaGF2aW91ciBiZWhhdmlvdXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IpOwor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBpbnN0YW5j ZV9wb3MgPSA0LjkpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBkZWxl Z2F0ZSBib29sIEJpbmRpbmdBY3Rpb25GdW5jIChHTGliLk9iamVjdCBnb2JqZWN0LCBzdHJpbmcg YWN0aW9uX25hbWUsIHVpbnQga2V5X3ZhbCwgQ2x1dHRlci5Nb2RpZmllclR5cGUgbW9kaWZpZXJz KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaW5z dGFuY2VfcG9zID0gMS45KV0KKyAJcHVibGljIGRlbGVnYXRlIHZvaWQgQ2FsbGJhY2sgKENsdXR0 ZXIuQWN0b3IgYWN0b3IpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCBoYXNfdGFyZ2V0ID0gZmFsc2UpXQorKwlwdWJsaWMgZGVsZWdhdGUgdm9pZCBF bWl0SW5wdXREZXZpY2VFdmVudCAoQ2x1dHRlci5FdmVudCBldmVudCwgQ2x1dHRlci5JbnB1dERl dmljZSBkZXZpY2UpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIp XQorIAlwdWJsaWMgZGVsZWdhdGUgYm9vbCBFdmVudEZpbHRlckZ1bmMgKENsdXR0ZXIuRXZlbnQg ZXZlbnQpOworQEAgLTg5NTcsOSArODIyNyw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJW1Zl cnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZX1JFRFJB VzsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCist CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5BY3Rv ckJveD8gYWN0b3JfYm94X2FsbG9jICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIGJhc2VfaW5pdCAoKTsK KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCitAQCAtODk3MSwzNyArODIzOCwxMiBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBzdGF0 aWMgYm9vbCBjaGVja193aW5kb3dpbmdfYmFja2VuZCAoc3RyaW5nIGJhY2tlbmRfdHlwZSk7Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNl ID0gIjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgY2xlYXJfZ2x5cGhfY2FjaGUgKCk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgY29sb3JfZnJvbV9obHMgKG91dCBDbHV0dGVyLkNvbG9yIGNvbG9yLCBm bG9hdCBodWUsIGZsb2F0IGx1bWluYW5jZSwgZmxvYXQgc2F0dXJhdGlvbik7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgY29sb3JfZnJvbV9waXhlbCAob3V0IENsdXR0ZXIuQ29sb3IgY29sb3IsIHVpbnQzMiBw aXhlbCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIp XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBjb2xv cl9mcm9tX3N0cmluZyAob3V0IENsdXR0ZXIuQ29sb3IgY29sb3IsIHN0cmluZyBzdHIpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNp b24gKHNpbmNlID0gIjEuNiIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5Db2xv cj8gY29sb3JfZ2V0X3N0YXRpYyAoQ2x1dHRlci5TdGF0aWNDb2xvciBjb2xvcik7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlbVmVyc2lvbiAo c2luY2UgPSAiMS4xNCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgZGlzYWJsZV9hY2Nlc3NpYmls aXR5ICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgZG9f ZXZlbnQgKENsdXR0ZXIuRXZlbnQgZXZlbnQpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0J cHVibGljIHN0YXRpYyB1aW50IGV2ZW50X2FkZF9maWx0ZXIgKENsdXR0ZXIuU3RhZ2U/IHN0YWdl LCBbQ0NvZGUgKGRlbGVnYXRlX3RhcmdldF9wb3MgPSAyLjIsIGRlc3Ryb3lfbm90aWZ5X3BvcyA9 IDIuMSldIG93bmVkIENsdXR0ZXIuRXZlbnRGaWx0ZXJGdW5jIGZ1bmMpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjAuNCIpXQorLQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuRXZlbnQgZXZlbnRfZ2V0ICgpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1Zl cnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5F dmVudCBldmVudF9wZWVrICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIGV2ZW50X3JlbW92ZV9maWx0ZXIgKHVpbnQgaWQpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0g IjAuNCIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgZXZlbnRzX3BlbmRpbmcgKCk7CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorQEAgLTkwMTQsOSAr ODI1Niw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorIAlwdWJsaWMgc3RhdGljIHVpbnQzMiBnZXRfY3VycmVudF9ldmVudF90aW1lICgpOworIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVi bGljIHN0YXRpYyBib29sIGdldF9kZWJ1Z19lbmFibGVkICgpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAu NCIpXQorIAlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5CYWNrZW5kIGdldF9kZWZhdWx0 X2JhY2tlbmQgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIpXQorQEAgLTkwMjYsMTggKzgyNjUsOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJcHVibGljIHN0YXRpYyBDbHV0dGVyLlRleHREaXJl Y3Rpb24gZ2V0X2RlZmF1bHRfdGV4dF9kaXJlY3Rpb24gKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJs aWMgc3RhdGljIENsdXR0ZXIuRm9udEZsYWdzIGdldF9mb250X2ZsYWdzICgpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3RhdGljIHVub3duZWQgUGFuZ28uRm9udE1hcCBnZXRf Zm9udF9tYXAgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgdW5v d25lZCBDbHV0dGVyLkFjdG9yIGdldF9rZXlib2FyZF9ncmFiICgpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjAuNiIpXQorLQlw dWJsaWMgc3RhdGljIGJvb2wgZ2V0X21vdGlvbl9ldmVudHNfZW5hYmxlZCAoKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtWZXJzaW9uIChz aW5jZSA9ICIwLjIiKV0KKyAJcHVibGljIHN0YXRpYyBHTGliLk9wdGlvbkdyb3VwIGdldF9vcHRp b25fZ3JvdXAgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIpXQorQEAgLTkwNDUsMjYgKzgyNzUsOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCXB1 YmxpYyBzdGF0aWMgR0xpYi5PcHRpb25Hcm91cCBnZXRfb3B0aW9uX2dyb3VwX3dpdGhvdXRfaW5p dCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIild CisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENs dXR0ZXIuQWN0b3IgZ2V0X3BvaW50ZXJfZ3JhYiAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0K KyAJcHVibGljIHN0YXRpYyB1bm93bmVkIHN0cmluZyBnZXRfc2NyaXB0X2lkIChHTGliLk9iamVj dCBnb2JqZWN0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIiwgc2luY2UgPSAiMC40IildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfc2hvd19m cHMgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIpXQorLQlwdWJsaWMgc3RhdGljIHVsb25nIGdldF90aW1lc3RhbXAgKCk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBncmFiX2tleWJvYXJkIChDbHV0dGVy LkFjdG9yIGFjdG9yKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIGdyYWJfcG9pbnRlciAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuOCIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgZ3JhYl9wb2ludGVyX2Zvcl9kZXZpY2UgKENsdXR0ZXIuQWN0b3Ig YWN0b3IsIGludCBpZF8pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiKV0KKyAJcHVibGljIHN0YXRpYyBDbHV0dGVyLkluaXRFcnJvciBpbml0IChbQ0Nv ZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJhcmdjIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDAuNSld IHJlZiB1bm93bmVkIHN0cmluZ1tdPyBhcmd2KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KK0BA IC05MDgwLDQxICs4MjkyLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lk IHNldF9jdXN0b21fYmFja2VuZF9mdW5jICh2b2lkKiBmdW5jKTsKKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCBzZXRfZGVmYXVsdF9mcmFtZV9yYXRlICh1aW50IGZyYW1lc19wZXJf c2VjKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEw Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfZm9udF9mbGFncyAo Q2x1dHRlci5Gb250RmxhZ3MgZmxhZ3MpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgc2V0X21vdGlvbl9ldmVudHNfZW5hYmxlZCAoYm9vbCBlbmFibGUpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHRlc3RfYWRkX2RhdGFfZnVsbCAoc3Ry aW5nIHRlc3RfcGF0aCwgb3duZWQgR0xpYi5UZXN0RGF0YUZ1bmMgdGVzdF9mdW5jKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9u IChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMgYm9vbCB0ZXN0X2NoZWNrX2FjdG9y X2F0X3BvaW50IChDbHV0dGVyLkFjdG9yIHN0YWdlLCBDbHV0dGVyLlBvaW50IHBvaW50LCBDbHV0 dGVyLkFjdG9yIGFjdG9yLCBvdXQgQ2x1dHRlci5BY3Rvcj8gcmVzdWx0KTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMgYm9vbCB0ZXN0X2NoZWNrX2NvbG9yX2F0X3Bv aW50IChDbHV0dGVyLkFjdG9yIHN0YWdlLCBDbHV0dGVyLlBvaW50IHBvaW50LCBDbHV0dGVyLkNv bG9yIGNvbG9yLCBvdXQgQ2x1dHRlci5Db2xvciByZXN1bHQpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEu MTgiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgdGVzdF9nZXRfc3Rh Z2UgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdGVzdF9pbml0IChpbnQgYXJnYywgc3RyaW5nIGFyZ3Yp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0J W1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyBpbnQgdGVzdF9ydW4g KCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQor LQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB1bmdyYWJf a2V5Ym9hcmQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCB1bmdyYWJfcG9pbnRlciAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB1 bmdyYWJfcG9pbnRlcl9mb3JfZGV2aWNlIChpbnQgaWRfKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCisgCXB1YmxpYyBzdGF0aWMgdWludCB1bmljb2RlX3RvX2tleXN5bSAodWludDMyIHdjKTsK KyB9CitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNvZ2wtNS1jdXN0b20udmFsYSB2YXBpL211dHRl ci1jb2dsLTYtY3VzdG9tLnZhbGEKK3NpbWlsYXJpdHkgaW5kZXggMTAwJQorcmVuYW1lIGZyb20g dmFwaS9tdXR0ZXItY29nbC01LWN1c3RvbS52YWxhCityZW5hbWUgdG8gdmFwaS9tdXR0ZXItY29n bC02LWN1c3RvbS52YWxhCitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNvZ2wtNC5kZXBzIHZhcGkv bXV0dGVyLWNvZ2wtNi5kZXBzCitzaW1pbGFyaXR5IGluZGV4IDEwMCUKK3JlbmFtZSBmcm9tIHZh cGkvbXV0dGVyLWNvZ2wtNC5kZXBzCityZW5hbWUgdG8gdmFwaS9tdXR0ZXItY29nbC02LmRlcHMK K2RpZmYgLS1naXQgdmFwaS9tdXR0ZXItY29nbC01LnZhcGkgdmFwaS9tdXR0ZXItY29nbC02LnZh cGkKK3NpbWlsYXJpdHkgaW5kZXggNjglCityZW5hbWUgZnJvbSB2YXBpL211dHRlci1jb2dsLTUu dmFwaQorcmVuYW1lIHRvIHZhcGkvbXV0dGVyLWNvZ2wtNi52YXBpCitpbmRleCBhODk2MTIyNC4u MTk1ZTNiMTcgMTAwNjQ0CistLS0gdmFwaS9tdXR0ZXItY29nbC01LnZhcGkKKysrKyB2YXBpL211 dHRlci1jb2dsLTYudmFwaQorQEAgLTEsNiArMSw2IEBACistLyogbXV0dGVyLWNvZ2wtNS52YXBp IGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLworKy8qIG11dHRlci1jb2ds LTYudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKyAKKy1bQ0Nv ZGUgKGNwcmVmaXggPSAiQ29nbCIsIGdpcl9uYW1lc3BhY2UgPSAiQ29nbCIsIGdpcl92ZXJzaW9u ID0gIjUiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAiY29nbF8iKV0KKytbQ0NvZGUgKGNwcmVmaXgg PSAiQ29nbCIsIGdpcl9uYW1lc3BhY2UgPSAiQ29nbCIsIGdpcl92ZXJzaW9uID0gIjYiLCBsb3dl cl9jYXNlX2NwcmVmaXggPSAiY29nbF8iKV0KKyBuYW1lc3BhY2UgQ29nbCB7CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNvZ2xIYW5kbGUiLCB0 eXBlX2lkID0gImNvZ2xfYml0bWFwX2dldF9ndHlwZSAoKSIpXQorIAlbQ29tcGFjdF0KK0BAIC0y OCw5ICsyOCwxMCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgYm9vbCBzZXRfZGF0YSAo c2l6ZV90IG9mZnNldCwgW0NDb2RlIChhcnJheV9sZW5ndGhfdHlwZSA9ICJzaXplX3QiKV0gdWlu dDhbXSBkYXRhKTsKKyAJCXB1YmxpYyB2b2lkIHVubWFwICgpOworIAl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlb Q29tcGFjdF0KKy0JcHVibGljIGNsYXNzIEV1bGVyIHsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX2NvbnRleHRfZ2V0X2d0eXBlICgp IildCisrCXB1YmxpYyBjbGFzcyBDb250ZXh0IDogQ29nbC5PYmplY3QgeworKwkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIENvbnRleHQgKCk7 CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9m dW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIs IHR5cGVfaWQgPSAiY29nbF9mcmFtZV9jbG9zdXJlX2dldF9ndHlwZSAoKSIpXQorIAlbQ29tcGFj dF0KK0BAIC02NSw2MiArNjYsMTcgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKyAJCXB1YmxpYyBNYXRlcmlhbCAoKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 Iiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbCBjb3B5ICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBz aW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGZvcmVhY2hfbGF5ZXIgKENvZ2wuTWF0ZXJp YWxMYXllckNhbGxiYWNrIGNhbGxiYWNrKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMg dm9pZCBnZXRfYW1iaWVudCAoQ29nbC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgQ29nbC5Db2xvciBnZXRfY29sb3IgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIHZvaWQgZ2V0X2RpZmZ1c2UgKENvZ2wuQ29sb3IgZGlmZnVzZSk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2VtaXNzaW9uIChDb2dsLkNvbG9yIGVtaXNz aW9uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCBnZXRfbGF5ZXJfcG9pbnRf c3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYi KV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9w IChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1h dGVyaWFsV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X2xh eWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJfaW5kZXgpOworLQkJcHVibGljIHVub3duZWQgR0xp Yi5MaXN0PENvZ2wuTWF0ZXJpYWxMYXllcj4gZ2V0X2xheWVycyAoKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4w IildCistCQlwdWJsaWMgaW50IGdldF9uX2xheWVycyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCist CQlwdWJsaWMgZmxvYXQgZ2V0X3BvaW50X3NpemUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIGZsb2F0IGdldF9zaGluaW5lc3MgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVi bGljIHZvaWQgZ2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS40IildCistCQlwdWJsaWMgdW5vd25lZCBDb2dsLkhhbmRsZSBnZXRfdXNlcl9wcm9ncmFtICgp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENvZ2wuSGFuZGxl IEByZWYgKENvZ2wuSGFuZGxlIG1hdGVyaWFsKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgdm9pZCByZW1vdmVf bGF5ZXIgKGludCBsYXllcl9pbmRleCk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZv aWQgc2V0X2FscGhhX3Rlc3RfZnVuY3Rpb24gKENvZ2wuTWF0ZXJpYWxBbHBoYUZ1bmMgYWxwaGFf ZnVuYywgZmxvYXQgYWxwaGFfcmVmZXJlbmNlKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJs aWMgdm9pZCBzZXRfYW1iaWVudCAoQ29nbC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4w IildCistCQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVudF9hbmRfZGlmZnVzZSAoQ29nbC5Db2xvciBj b2xvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIGJvb2wgc2V0X2JsZW5kIChzdHJp bmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisg CQlwdWJsaWMgdm9pZCBzZXRfYmxlbmRfY29uc3RhbnQgKENvZ2wuQ29sb3IgY29uc3RhbnRfY29s b3IpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9jb2xvciAoQ29nbC5D b2xvciBjb2xvcik7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9y NGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwg c2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfY29sb3I0dWIgKHVpbnQ4IHJlZCwg dWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsKKyAJCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgdm9pZCBzZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNlKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZW1pc3Npb24gKENvZ2wuQ29sb3IgZW1p c3Npb24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9sYXllciAoaW50 IGxheWVyX2luZGV4LCBDb2dsLkhhbmRsZSB0ZXh0dXJlKTsKKyAJCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisg CQlwdWJsaWMgYm9vbCBzZXRfbGF5ZXJfY29tYmluZSAoaW50IGxheWVyX2luZGV4LCBzdHJpbmcg YmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKK0BAIC0xMzMsNDEgKzg5LDEzIEBAIG5h bWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgYm9vbCBzZXRfbGF5 ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5ZXJfaW5kZXgsIGJvb2wgZW5h YmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9p ZCBzZXRfbGF5ZXJfd3JhcF9tb2RlIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFw TW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJf d3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIG1vZGUp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVf cyAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgbW9kZSk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNl ID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV90IChpbnQgbGF5 ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40Iild CisgCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRfc2l6ZSAoZmxvYXQgcG9pbnRfc2l6ZSk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNp bmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NoaW5pbmVzcyAoZmxvYXQgc2hpbmlu ZXNzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc3BlY3VsYXIgKENv Z2wuQ29sb3Igc3BlY3VsYXIpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNl dF91c2VyX3Byb2dyYW0gKENvZ2wuSGFuZGxlIHByb2dyYW0pOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIsIHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIHN0YXRpYyB2b2lkIHVucmVmIChDb2dsLkhhbmRsZSBtYXRlcmlhbCk7CisgCX0K KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3R5cGVfaWQg PSBmYWxzZSldCisgCVtDb21wYWN0XQorIAlwdWJsaWMgY2xhc3MgTWF0ZXJpYWxMYXllciB7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIp XQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgZ2V0X21hZ19maWx0ZXIgKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQor LQkJcHVibGljIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgZ2V0X21pbl9maWx0ZXIgKCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJ cHVibGljIHVub3duZWQgQ29nbC5IYW5kbGUgZ2V0X3RleHR1cmUgKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGlj IENvZ2wuTWF0ZXJpYWxMYXllclR5cGUgZ2V0X3R5cGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQor LQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfd3JhcF9tb2RlX3AgKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNp bmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfd3JhcF9t b2RlX3MgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFw TW9kZSBnZXRfd3JhcF9tb2RlX3QgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX29iamVjdF9nZXRfZ3R5cGUgKCkiKV0K KyAJcHVibGljIGFic3RyYWN0IGNsYXNzIE9iamVjdCB7CitAQCAtMTc4LDEzICsxMDYsOSBAQCBu YW1lc3BhY2UgQ29nbCB7CisgCXB1YmxpYyBjbGFzcyBPZmZzY3JlZW4gOiBDb2dsLk9iamVjdCwg Q29nbC5GcmFtZWJ1ZmZlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSldCisgCQlwcm90ZWN0ZWQgT2Zmc2NyZWVuICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHN0YXRpYyB2 b2lkKiBAcmVmICh2b2lkKiBvZmZzY3JlZW4pOworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UpXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiKV0KKyAJCXB1YmxpYyBPZmZzY3JlZW4udG9fdGV4dHVyZSAoQ29n bC5UZXh0dXJlIHRleHR1cmUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHVucmVmICh2b2lk KiBvZmZzY3JlZW4pOworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Up XQorIAkJcHVibGljIE9mZnNjcmVlbi53aXRoX3RleHR1cmUgKENvZ2wuVGV4dHVyZSB0ZXh0dXJl KTsKKyAJfQorQEAgLTE5Niw5ICsxMjAsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMg Q29nbC5PbnNjcmVlbkRpcnR5Q2xvc3VyZSBhZGRfZGlydHlfY2FsbGJhY2sgKFtDQ29kZSAoZGVs ZWdhdGVfdGFyZ2V0X3BvcyA9IDEuNSldIENvZ2wuT25zY3JlZW5EaXJ0eUNhbGxiYWNrIGNhbGxi YWNrLCBDb2dsLlVzZXJEYXRhRGVzdHJveUNhbGxiYWNrPyBkZXN0cm95KTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBDb2dsLk9uc2NyZWVuUmVzaXplQ2xvc3VyZSBh ZGRfcmVzaXplX2NhbGxiYWNrIChbQ0NvZGUgKGRlbGVnYXRlX3RhcmdldF9wb3MgPSAxLjUpXSBD b2dsLk9uc2NyZWVuUmVzaXplQ2FsbGJhY2sgY2FsbGJhY2ssIENvZ2wuVXNlckRhdGFEZXN0cm95 Q2FsbGJhY2s/IGRlc3Ryb3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTQiLCBzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdWludCBh ZGRfc3dhcF9idWZmZXJzX2NhbGxiYWNrIChDb2dsLlN3YXBCdWZmZXJzTm90aWZ5IGNhbGxiYWNr KTsKKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBjbHV0dGVyX2JhY2tlbmRfc2V0X3NpemVfQ0xVVFRF UiAoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0Iild CisgCQlwdWJsaWMgaW50IGdldF9idWZmZXJfYWdlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTQiKV0KK0BAIC0yMTMsOCArMTM0LDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGlj IHZvaWQgcmVtb3ZlX2ZyYW1lX2NhbGxiYWNrIChDb2dsLkZyYW1lQ2xvc3VyZSBjbG9zdXJlKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV9yZXNp emVfY2FsbGJhY2sgKENvZ2wuT25zY3JlZW5SZXNpemVDbG9zdXJlIGNsb3N1cmUpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTQiLCBzaW5j ZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfc3dhcF9idWZmZXJzX2NhbGxiYWNr ICh1aW50IGlkKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lk IHNldF9yZXNpemFibGUgKGJvb2wgcmVzaXphYmxlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KK0BAIC0yNDQsNyArMTYzLDggQEAgbmFtZXNwYWNlIENvZ2wgeworIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfcGlwZWxpbmVf Z2V0X2d0eXBlICgpIildCisgCXB1YmxpYyBjbGFzcyBQaXBlbGluZSA6IENvZ2wuT2JqZWN0IHsK KyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3Rl ZCBQaXBlbGluZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKysJCXB1YmxpYyBQ aXBlbGluZSAoQ29nbC5Db250ZXh0IGNvbnRleHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIu MCIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmUgY29weSAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KK0BAIC0yNTQsMTYgKzE3NCwxMCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X2FscGhhX3Rlc3Rf cmVmZXJlbmNlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZv aWQgZ2V0X2FtYmllbnQgKENvZ2wuQ29sb3IgYW1iaWVudCk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCisgCQlwdWJsaWMgQ29nbC5Db2xvciBnZXRfY29sb3IgKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgQ29nbC5QaXBlbGluZUN1bGxGYWNlTW9kZSBn ZXRfY3VsbF9mYWNlX21vZGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlw dWJsaWMgdm9pZCBnZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNlKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9lbWlzc2lvbiAoQ29nbC5Db2xv ciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgQ29n bC5XaW5kaW5nIGdldF9mcm9udF9mYWNlX3dpbmRpbmcgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmVGaWx0ZXIgZ2V0X2xheWVyX21hZ19m aWx0ZXIgKGludCBsYXllcl9pbmRleCk7CitAQCAtMjc0LDggKzE4OCw2IEBAIG5hbWVzcGFjZSBD b2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdW5vd25lZCBD b2dsLlRleHR1cmUgZ2V0X2xheWVyX3RleHR1cmUgKGludCBsYXllcl9pbmRleCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgQ29nbC5QaXBlbGluZVdyYXBNb2RlIGdl dF9sYXllcl93cmFwX21vZGVfcCAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgZ2V0X2xheWVyX3dy YXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIp XQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3Qg KGludCBsYXllcl9pbmRleCk7CitAQCAtMjg2LDEwICsxOTgsNiBAQCBuYW1lc3BhY2UgQ29nbCB7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X3BvaW50 X3NpemUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgZmxvYXQg Z2V0X3NoaW5pbmVzcyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1Ymxp YyB2b2lkIGdldF9zcGVjdWxhciAoQ29nbC5Db2xvciBzcGVjdWxhcik7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgaW50IGdldF91bmlmb3JtX2xvY2F0aW9uIChzdHJp bmcgdW5pZm9ybV9uYW1lKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1Ymxp YyB1bm93bmVkIENvZ2wuSGFuZGxlIGdldF91c2VyX3Byb2dyYW0gKCk7CitAQCAtMjk4LDEwICsy MDYsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisg CQlwdWJsaWMgdm9pZCBzZXRfYWxwaGFfdGVzdF9mdW5jdGlvbiAoQ29nbC5QaXBlbGluZUFscGhh RnVuYyBhbHBoYV9mdW5jLCBmbG9hdCBhbHBoYV9yZWZlcmVuY2UpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FtYmllbnQgKENvZ2wuQ29sb3IgYW1i aWVudCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRf YW1iaWVudF9hbmRfZGlmZnVzZSAoQ29nbC5Db2xvciBjb2xvcik7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMi4wIildCisgCQlwdWJsaWMgYm9vbCBzZXRfYmxlbmQgKHN0cmluZyBibGVuZF9zdHJp bmcpIHRocm93cyBHTGliLkVycm9yOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJ cHVibGljIHZvaWQgc2V0X2JsZW5kX2NvbnN0YW50IChDb2dsLkNvbG9yIGNvbnN0YW50X2NvbG9y KTsKK0BAIC0zMTQsMTAgKzIxOCw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9jdWxsX2ZhY2VfbW9kZSAoQ29nbC5Q aXBlbGluZUN1bGxGYWNlTW9kZSBjdWxsX2ZhY2VfbW9kZSk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNl KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9lbWlz c2lvbiAoQ29nbC5Db2xvciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CisgCQlwdWJsaWMgdm9pZCBzZXRfZnJvbnRfZmFjZV93aW5kaW5nIChDb2dsLldpbmRpbmcgZnJv bnRfd2luZGluZyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgYm9v bCBzZXRfbGF5ZXJfY29tYmluZSAoaW50IGxheWVyX2luZGV4LCBzdHJpbmcgYmxlbmRfc3RyaW5n KSB0aHJvd3MgR0xpYi5FcnJvcjsKK0BAIC0zMzUsOCArMjM1LDYgQEAgbmFtZXNwYWNlIENvZ2wg eworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVy X3dyYXBfbW9kZSAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgbW9kZSk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJf d3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCwgQ29nbC5QaXBlbGluZVdyYXBNb2RlIG1vZGUp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVy X3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBtb2Rl KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9sYXll cl93cmFwX21vZGVfdCAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgbW9k ZSk7CitAQCAtMzQ1LDEwICsyNDMsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRfc2l6ZSAoZmxvYXQgcG9p bnRfc2l6ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBz ZXRfc2hpbmluZXNzIChmbG9hdCBzaGluaW5lc3MpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIu MCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF91bmlmb3Jt XzFmIChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgZmxvYXQgdmFsdWUpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3VuaWZvcm1fMWkgKGludCB1bmlmb3Jt X2xvY2F0aW9uLCBpbnQgdmFsdWUpOworQEAgLTM4MiwxMCArMjc2LDYgQEAgbmFtZXNwYWNlIENv Z2wgeworIAkJcHVibGljIHN0YXRpYyB2b2lkIHVuaWZvcm1fbWF0cml4IChpbnQgdW5pZm9ybV9u bywgaW50IHNpemUsIGJvb2wgdHJhbnNwb3NlLCBbQ0NvZGUgKGFycmF5X2xlbmd0aF9wb3MgPSAy LjkpXSBmbG9hdFtdIHZhbHVlKTsKKyAJCXB1YmxpYyB2b2lkIHVzZSAoKTsKKyAJfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNl KV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBRdWF0ZXJuaW9uIHsKKy0JfQorIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDb2dsSGFuZGxl IiwgcmVmX2Z1bmN0aW9uID0gImNvZ2xfc2hhZGVyX3JlZiIsIHVucmVmX2Z1bmN0aW9uID0gImNv Z2xfc2hhZGVyX3VucmVmIildCisgCVtDb21wYWN0XQorIAlwdWJsaWMgY2xhc3MgU2hhZGVyIDog Q29nbC5IYW5kbGUgeworQEAgLTQ2NSwxMiArMzU1LDEwIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJ CXB1YmxpYyBpbnQgZ2V0X2FscGhhX2JpdHMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44 IildCisgCQlwdWJsaWMgaW50IGdldF9ibHVlX2JpdHMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS44IildCisrCQlwdWJsaWMgdW5vd25lZCBDb2dsLkNvbnRleHQgZ2V0X2NvbnRleHQgKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgaW50IGdldF9kZXB0aF9i aXRzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1YmxpYyB1bm93bmVk IENvZ2wuVGV4dHVyZSBnZXRfZGVwdGhfdGV4dHVyZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjE0IildCistCQlwdWJsaWMgYm9vbCBnZXRfZGVwdGhfdGV4dHVyZV9lbmFibGVkICgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKyAJCXB1YmxpYyBib29sIGdldF9kZXB0aF93 cml0ZV9lbmFibGVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorQEAgLTUxNiw2 ICs0MDQsNyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgdm9pZCBwdXNoX21hdHJpeCAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBwdXNoX3Jl Y3RhbmdsZV9jbGlwIChmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIp OworKwkJcHVibGljIHZvaWQgcHVzaF9yZWdpb25fY2xpcCAoQ2Fpcm8uUmVnaW9uIHJlZ2lvbik7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgcHVzaF9zY2lz c29yX2NsaXAgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNTI5LDEzICs0MTgsOSBAQCBuYW1lc3BhY2UgQ29n bCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgcm90YXRl IChmbG9hdCBhbmdsZSwgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCByb3RhdGVfZXVsZXIgKENvZ2wuRXVsZXIg ZXVsZXIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgcm90 YXRlX3F1YXRlcm5pb24gKENvZ2wuUXVhdGVybmlvbiBxdWF0ZXJuaW9uKTsKKysJCXB1YmxpYyB2 b2lkIHJvdGF0ZV9ldWxlciAoR3JhcGhlbmUuRXVsZXIgZXVsZXIpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHNjYWxlIChmbG9hdCB4LCBmbG9hdCB5LCBm bG9hdCB6KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMgdm9pZCBz ZXRfZGVwdGhfdGV4dHVyZV9lbmFibGVkIChib29sIGVuYWJsZWQpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTgiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9kZXB0aF93cml0ZV9lbmFibGVkIChi b29sIGRlcHRoX3dyaXRlX2VuYWJsZWQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQor QEAgLTYzNSwxMCArNTIwLDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIHZvaWQgc2V0 X2JsdWVfYnl0ZSAodWludDggYmx1ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisg CQlwdWJsaWMgdm9pZCBzZXRfYmx1ZV9mbG9hdCAoZmxvYXQgYmx1ZSk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS40Iiwgc2luY2UgPSAiMS4w IildCistCQlwdWJsaWMgdm9pZCBzZXRfZnJvbV80ZiAoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwg ZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZv aWQgc2V0X2Zyb21fNHViICh1aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVlLCB1aW50 OCBhbHBoYSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdm9pZCBz ZXRfZ3JlZW4gKGZsb2F0IGdyZWVuKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KK0BA IC02NjIsNyArNTQzLDcgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIHdlYWsgc3RyaW5n IG5hbWU7CisgCQlwdWJsaWMgdWxvbmcgaW5zdGFuY2VfY291bnQ7CisgCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJDT0dMX1RZUEVfTUFU UklYIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNvcHlf ZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUi LCB0eXBlX2lkID0gIkNPR0xfVFlQRV9NQVRSSVgiKV0KKyAJcHVibGljIHN0cnVjdCBNYXRyaXgg eworIAkJcHVibGljIGZsb2F0IHh4OworIAkJcHVibGljIGZsb2F0IHl4OworQEAgLTY5Miw4ICs1 NzMsNyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgYm9vbCBnZXRfaW52ZXJzZSAob3V0 IENvZ2wuTWF0cml4IGludmVyc2UpOworIAkJW0NDb2RlIChjbmFtZSA9ICJjb2dsX21hdHJpeF9p bml0X2lkZW50aXR5IildCisgCQlwdWJsaWMgTWF0cml4LmlkZW50aXR5ICgpOworLQkJcHVibGlj IHZvaWQgaW5pdF9mcm9tX2V1bGVyIChDb2dsLkV1bGVyIGV1bGVyKTsKKy0JCXB1YmxpYyB2b2lk IGluaXRfZnJvbV9xdWF0ZXJuaW9uIChDb2dsLlF1YXRlcm5pb24gcXVhdGVybmlvbik7CisrCQlw dWJsaWMgdm9pZCBpbml0X2Zyb21fZXVsZXIgKEdyYXBoZW5lLkV1bGVyIGV1bGVyKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIGluaXRfdHJhbnNsYXRpb24g KGZsb2F0IHR4LCBmbG9hdCB0eSwgZmxvYXQgdHopOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu OCIpXQorQEAgLTcwMiwxOSArNTgyLDE1IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyB2 b2lkIGxvb2tfYXQgKGZsb2F0IGV5ZV9wb3NpdGlvbl94LCBmbG9hdCBleWVfcG9zaXRpb25feSwg ZmxvYXQgZXllX3Bvc2l0aW9uX3osIGZsb2F0IG9iamVjdF94LCBmbG9hdCBvYmplY3RfeSwgZmxv YXQgb2JqZWN0X3osIGZsb2F0IHdvcmxkX3VwX3gsIGZsb2F0IHdvcmxkX3VwX3ksIGZsb2F0IHdv cmxkX3VwX3opOworIAkJW0NDb2RlIChjbmFtZSA9ICJjb2dsX21hdHJpeF9tdWx0aXBseSIpXQor IAkJcHVibGljIE1hdHJpeC5tdWx0aXBseSAoQ29nbC5NYXRyaXggYSwgQ29nbC5NYXRyaXggYik7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIpXQorLQkJcHVibGljIHZvaWQgb3J0aG8gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9h dCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBvcnRob2dyYXBoaWMgKGZsb2F0IHhf MSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMiwgZmxvYXQgbmVhciwgZmxvYXQgZmFy KTsKKyAJCXB1YmxpYyB2b2lkIHBlcnNwZWN0aXZlIChmbG9hdCBmb3ZfeSwgZmxvYXQgYXNwZWN0 LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKyAJCXB1YmxpYyB2b2lkIHByb2plY3RfcG9p bnRzIChpbnQgbl9jb21wb25lbnRzLCBzaXplX3Qgc3RyaWRlX2luLCB2b2lkKiBwb2ludHNfaW4s IHNpemVfdCBzdHJpZGVfb3V0LCB2b2lkKiBwb2ludHNfb3V0LCBpbnQgbl9wb2ludHMpOworIAkJ cHVibGljIHZvaWQgcm90YXRlIChmbG9hdCBhbmdsZSwgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQg eik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCByb3RhdGVf ZXVsZXIgKENvZ2wuRXVsZXIgZXVsZXIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQor LQkJcHVibGljIHZvaWQgcm90YXRlX3F1YXRlcm5pb24gKENvZ2wuUXVhdGVybmlvbiBxdWF0ZXJu aW9uKTsKKysJCXB1YmxpYyB2b2lkIHJvdGF0ZV9ldWxlciAoR3JhcGhlbmUuRXVsZXIgZXVsZXIp OworIAkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IHN4LCBmbG9hdCBzeSwgZmxvYXQgc3opOwor LQkJcHVibGljIHZvaWQgdHJhbnNmb3JtX3BvaW50IChyZWYgZmxvYXQgeCwgcmVmIGZsb2F0IHks IHJlZiBmbG9hdCB6LCByZWYgZmxvYXQgdyk7CisrCQlwdWJsaWMgc3RhdGljIHZvaWQgdHJhbnNm b3JtX3BvaW50IChyZWYgQ29nbC5NYXRyaXggbWF0cml4LCByZWYgZmxvYXQgeCwgcmVmIGZsb2F0 IHksIHJlZiBmbG9hdCB6LCByZWYgZmxvYXQgdyk7CisgCQlwdWJsaWMgdm9pZCB0cmFuc2Zvcm1f cG9pbnRzIChpbnQgbl9jb21wb25lbnRzLCBzaXplX3Qgc3RyaWRlX2luLCB2b2lkKiBwb2ludHNf aW4sIHNpemVfdCBzdHJpZGVfb3V0LCB2b2lkKiBwb2ludHNfb3V0LCBpbnQgbl9wb2ludHMpOwor IAkJcHVibGljIHZvaWQgdHJhbnNsYXRlIChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtODE4LDM4ICs2OTQsMzMgQEAgbmFtZXNw YWNlIENvZ2wgeworIAkJTk9ORSwKKyAJCU5PX0dFVF9EQVRBCisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZFQVRVUkVfIiwg aGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtGbGFnc10KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAu OCIpXQorLQlwdWJsaWMgZW51bSBGZWF0dXJlRmxhZ3MgeworLQkJVEVYVFVSRV9ZVVYsCistCQlU RVhUVVJFX1JFQURfUElYRUxTLAorLQkJT0ZGU0NSRUVOLAorLQkJT0ZGU0NSRUVOX01VTFRJU0FN UExFLAorLQkJRk9VUl9DTElQX1BMQU5FUywKKy0JCVNURU5DSUxfQlVGRkVSLAorLQkJVkJPUywK Ky0JCVBCT1MsCistCQlVTlNJR05FRF9JTlRfSU5ESUNFUywKKy0JCURFUFRIX1JBTkdFLAorLQkJ UE9JTlRfU1BSSVRFLAorLQkJTUFQX0JVRkZFUl9GT1JfUkVBRCwKKy0JCU1BUF9CVUZGRVJfRk9S X1dSSVRFLAorLQkJT05TQ1JFRU5fTVVMVElQTEUsCistCQlERVBUSF9URVhUVVJFCisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GRUFU VVJFX0lEXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorKwlwdWJsaWMgZW51bSBGZWF0dXJlSUQgeworKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dM X0ZFQVRVUkVfSURfVU5TSUdORURfSU5UX0lORElDRVMiKV0KKysJCU9HTF9GRUFUVVJFX0lEX1VO U0lHTkVEX0lOVF9JTkRJQ0VTLAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURf TUFQX0JVRkZFUl9GT1JfUkVBRCIpXQorKwkJT0dMX0ZFQVRVUkVfSURfTUFQX0JVRkZFUl9GT1Jf UkVBRCwKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX01BUF9CVUZGRVJfRk9S X1dSSVRFIildCisrCQlPR0xfRkVBVFVSRV9JRF9NQVBfQlVGRkVSX0ZPUl9XUklURSwKKysJCVtD Q29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX1NXQVBfQlVGRkVSU19FVkVOVCIpXQorKwkJ T0dMX0ZFQVRVUkVfSURfU1dBUF9CVUZGRVJTX0VWRU5ULAorKwkJW0NDb2RlIChjbmFtZSA9ICJD T0dMX0ZFQVRVUkVfSURfUFJFU0VOVEFUSU9OX1RJTUUiKV0KKysJCU9HTF9GRUFUVVJFX0lEX1BS RVNFTlRBVElPTl9USU1FLAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfRkVO Q0UiKV0KKysJCU9HTF9GRUFUVVJFX0lEX0ZFTkNFLAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dM X0ZFQVRVUkVfSURfVEVYVFVSRV9SRyIpXQorKwkJT0dMX0ZFQVRVUkVfSURfVEVYVFVSRV9SRywK KysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX0JVRkZFUl9BR0UiKV0KKysJCU9H TF9GRUFUVVJFX0lEX0JVRkZFUl9BR0UsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVS RV9JRF9URVhUVVJFX0VHTF9JTUFHRV9FWFRFUk5BTCIpXQorKwkJT0dMX0ZFQVRVUkVfSURfVEVY VFVSRV9FR0xfSU1BR0VfRVhURVJOQUwKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRklMVEVSXyIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorIAlwdWJsaWMgZW51bSBGaWx0ZXJSZXR1cm4geworIAkJQ09OVElOVUUsCisgCQlS RU1PVkUKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBj cHJlZml4ID0gIkNPR0xfRk9HX01PREVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGVudW0gRm9nTW9kZSB7CistCQlMSU5FQVIs CistCQlFWFBPTkVOVElBTCwKKy0JCUVYUE9ORU5USUFMX1NRVUFSRUQKKy0JfQorIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRlJBTUVf RVZFTlRfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0 IildCisgCXB1YmxpYyBlbnVtIEZyYW1lRXZlbnQgeworQEAgLTg2Miw2ICs3MzMsMTQgQEAgbmFt ZXNwYWNlIENvZ2wgeworIAkJRlJBTUVCVUZGRVJfRVJST1JfQUxMT0NBVEU7CisgCQlwdWJsaWMg c3RhdGljIHVpbnQzMiBxdWFyayAoKTsKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfR1JBUEhJQ1NfUkVTRVRfU1RBVFVTXyIs IGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlwdWJsaWMgZW51bSBHcmFwaGljc1Jlc2V0U3RhdHVz IHsKKysJCU5PX0VSUk9SLAorKwkJR1VJTFRZX0NPTlRFWFRfUkVTRVQsCisrCQlJTk5PQ0VOVF9D T05URVhUX1JFU0VULAorKwkJVU5LTk9XTl9DT05URVhUX1JFU0VULAorKwkJUFVSR0VEX0NPTlRF WFRfUkVTRVQKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi LCBjcHJlZml4ID0gIkNPR0xfSU5ESUNFU19UWVBFX1VOU0lHTkVEXyIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorIAlwdWJsaWMgZW51bSBJbmRpY2VzVHlwZSB7CisgCQlCWVRFLAorQEAgLTg4OCwx MiArNzY3LDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJTkVBUkVTVF9NSVBNQVBfTElORUFSLAor IAkJTElORUFSX01JUE1BUF9MSU5FQVIKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfTUFURVJJQUxfTEFZRVJfVFlQRV8iLCBo YXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJs aWMgZW51bSBNYXRlcmlhbExheWVyVHlwZSB7CistCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfTUFU RVJJQUxfTEFZRVJfVFlQRV9URVhUVVJFIildCistCQlNQVRFUklBTF9MQVlFUl9UWVBFX1RFWFRV UkUKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJl Zml4ID0gIkNPR0xfTUFURVJJQUxfV1JBUF9NT0RFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor IAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBlbnVtIE1hdGVyaWFsV3JhcE1v ZGUgeworQEAgLTk3MSw2ICs4NDQsOCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlERVBUSF8xNiwK KyAJCURFUFRIXzMyLAorIAkJREVQVEhfMjRfU1RFTkNJTF84OworKwkJcHVibGljIGludCBnZXRf Ynl0ZXNfcGVyX3BpeGVsIChpbnQgcGxhbmUpOworKwkJcHVibGljIGludCBnZXRfbl9wbGFuZXMg KCk7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgdG9fc3RyaW5nICgpOworIAl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9SRUFE X1BJWEVMU19DT0xPUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KK0BAIC0xMDY0LDkgKzkzOSw5 IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIp XQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBEZWJ1Z09iamVjdEZvcmVhY2hUeXBlQ2FsbGJhY2sg KENvZ2wuRGVidWdPYmplY3RUeXBlSW5mbyBpbmZvKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQi KV0KKy0JcHVibGljIGRlbGVnYXRlIGJvb2wgTWF0ZXJpYWxMYXllckNhbGxiYWNrIChDb2dsLk1h dGVyaWFsIG1hdGVyaWFsLCBpbnQgbGF5ZXJfaW5kZXgpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorKwlbVmVyc2lvbiAo c2luY2UgPSAiMC4xMCIpXQorKwlwdWJsaWMgZGVsZWdhdGUgdm9pZCBGZWF0dXJlQ2FsbGJhY2sg KENvZ2wuRmVhdHVyZUlEIGZlYXR1cmUpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAi MS4xNiIpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBPbnNjcmVlbkRpcnR5Q2FsbGJhY2sgKENv Z2wuT25zY3JlZW4gb25zY3JlZW4sIENvZ2wuT25zY3JlZW5EaXJ0eUluZm8gaW5mbyk7CitAQCAt MTA3NCwxMyArOTQ5LDkgQEAgbmFtZXNwYWNlIENvZ2wgeworIAlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIE9uc2NyZWVuUmVzaXplQ2FsbGJhY2sgKENv Z2wuT25zY3JlZW4gb25zY3JlZW4sIGludCB3aWR0aCwgaW50IGhlaWdodCk7CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCist CXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIE9uc2NyZWVuWDExTWFza0NhbGxiYWNrIChDb2dsLk9uc2Ny ZWVuIG9uc2NyZWVuLCB1aW50MzIgZXZlbnRfbWFzayk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCisgCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKyAJcHVibGljIGRlbGVnYXRlIGJvb2wgUGlwZWxpbmVMYXllckNhbGxi YWNrIChDb2dsLlBpcGVsaW5lIHBpcGVsaW5lLCBpbnQgbGF5ZXJfaW5kZXgpOworIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQor LQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBTd2FwQnVmZmVyc05vdGlmeSAoQ29nbC5GcmFtZWJ1ZmZl ciBmcmFtZWJ1ZmZlcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisgCXB1YmxpYyBkZWxlZ2F0ZSBib29sIFRleHR1cmUy REVHTEltYWdlRXh0ZXJuYWxBbGxvYyAoQ29nbC5UZXh0dXJlMkQgdGV4XzJkKSB0aHJvd3MgR0xp Yi5FcnJvcjsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFz X3RhcmdldCA9IGZhbHNlKV0KKyAJcHVibGljIGRlbGVnYXRlIHZvaWQgVXNlckRhdGFEZXN0cm95 Q2FsbGJhY2sgKHZvaWQqIGRhdGEpOworQEAgLTEwOTIsNiArOTYzLDggQEAgbmFtZXNwYWNlIENv Z2wgeworIAlwdWJsaWMgY29uc3QgaW50IEJHUl9CSVQ7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfREVQVEhfQklUIildCisgCXB1Ymxp YyBjb25zdCBpbnQgREVQVEhfQklUOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX1BJWEVMX0ZPUk1BVF9NQVhfUExBTkVTIildCisrCXB1 YmxpYyBjb25zdCBpbnQgUElYRUxfRk9STUFUX01BWF9QTEFORVM7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfUFJFTVVMVF9CSVQiKV0K KyAJcHVibGljIGNvbnN0IGludCBQUkVNVUxUX0JJVDsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9TVEVOQ0lMX0JJVCIpXQorQEAgLTEw OTksMTkgKzk3Miw4IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9URVhUVVJFX01BWF9XQVNURSIpXQor IAlwdWJsaWMgY29uc3QgaW50IFRFWFRVUkVfTUFYX1dBU1RFOworIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIGJlZ2luX2dsICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKyAJcHVibGljIHN0YXRpYyBib29sIGJsaXRfZnJhbWVidWZmZXIgKENvZ2wu RnJhbWVidWZmZXIgc3JjLCBDb2dsLkZyYW1lYnVmZmVyIGRlc3QsIGludCBzcmNfeCwgaW50IHNy Y195LCBpbnQgZHN0X3gsIGludCBkc3RfeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KSB0aHJvd3Mg R0xpYi5FcnJvcjsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIi KV0KKy0JcHVibGljIHN0YXRpYyBib29sIGNoZWNrX2V4dGVuc2lvbiAoc3RyaW5nIG5hbWUsIHN0 cmluZyBleHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi KV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGNsZWFyIChDb2dsLkNvbG9yIGNvbG9yLCB1bG9uZyBi dWZmZXJzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CXB1YmxpYyBzdGF0aWMgYm9vbCBjbHV0dGVyX2NoZWNrX2V4dGVuc2lvbl9DTFVUVEVSIChzdHJp bmcgbmFtZSwgc3RyaW5nIGV4dCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgY2x1dHRlcl93aW5zeXNfaGFzX2ZlYXR1 cmVfQ0xVVFRFUiAoQ29nbC5XaW5zeXNGZWF0dXJlIGZlYXR1cmUpOworIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorQEAgLTExMjksNTcgKzk5MSwzOCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCVtWZXJzaW9uIChz aW5jZSA9ICIxLjgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIGRlYnVnX29iamVjdF9wcmludF9p bnN0YW5jZXMgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZGlzYWJsZV9mb2cgKCk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgZW5kX2dsICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGZlYXR1cmVzX2F2YWlsYWJs ZSAoQ29nbC5GZWF0dXJlRmxhZ3MgZmVhdHVyZXMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJs aWMgc3RhdGljIHZvaWQgZmx1c2ggKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuOC4yIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBm cnVzdHVtIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3As IGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorKwlwdWJsaWMgc3RhdGljIHZvaWQgZm9yZWFjaF9mZWF0dXJlIChDb2dsLkNvbnRleHQgY29u dGV4dCwgQ29nbC5GZWF0dXJlQ2FsbGJhY2sgY2FsbGJhY2spOworIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKyAJcHVibGljIHN0YXRpYyBib29sIGdldF9i YWNrZmFjZV9jdWxsaW5nX2VuYWJsZWQgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS44IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBnZXRfYml0bWFza3MgKG91 dCBpbnQgcmVkLCBvdXQgaW50IGdyZWVuLCBvdXQgaW50IGJsdWUsIG91dCBpbnQgYWxwaGEpOwor KwlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorKwlwdWJsaWMgc3RhdGljIGludDY0IGdldF9j bG9ja190aW1lIChDb2dsLkNvbnRleHQgY29udGV4dCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2RlcHRo X3Rlc3RfZW5hYmxlZCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93 bmVkIENvZ2wuRnJhbWVidWZmZXIgZ2V0X2RyYXdfZnJhbWVidWZmZXIgKCk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuOCIpXQorLQlw dWJsaWMgc3RhdGljIENvZ2wuRmVhdHVyZUZsYWdzIGdldF9mZWF0dXJlcyAoKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMg Q29nbC5NYXRyaXggZ2V0X21vZGVsdmlld19tYXRyaXggKCk7CisrCXB1YmxpYyBzdGF0aWMgQ29n bC5HcmFwaGljc1Jlc2V0U3RhdHVzIGdldF9ncmFwaGljc19yZXNldF9zdGF0dXMgKENvZ2wuQ29u dGV4dCBjb250ZXh0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBzdGF0aWMgR0xpYi5PcHRpb25Hcm91cCBn ZXRfb3B0aW9uX2dyb3VwICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKyAJcHVibGljIHN0YXRpYyBHTGliLkNhbGxiYWNrIGdldF9wcm9jX2FkZHJlc3Mg KHN0cmluZyBzKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEw IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5NYXRyaXggZ2V0X3Byb2plY3Rpb25fbWF0cml4ICgp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9 ICIxLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkKiBnZXRfc291cmNlICgpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIGdldF92aWV3cG9ydCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIG91dCBmbG9h dCB2WzRdKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisg CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iild CisgCXB1YmxpYyBzdGF0aWMgR0xpYi5UeXBlIGd0eXBlX21hdHJpeF9nZXRfdHlwZSAoKTsKKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCisrCXB1YmxpYyBzdGF0aWMgYm9vbCBoYXNfZmVhdHVyZSAoQ29nbC5D b250ZXh0IGNvbnRleHQsIENvZ2wuRmVhdHVyZUlEIGZlYXR1cmUpOworKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKysJcHVibGljIHN0YXRpYyBib29sIGlzX2NvbnRleHQgKHZvaWQqIG9iamVjdCk7CisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorKwlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgaXNfZnJhbWVidWZmZXIgKHZvaWQq IG9iamVjdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor IAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTExOTMsNTMgKzEwMzYsOSBAQCBuYW1l c3BhY2UgQ29nbCB7CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBzdGF0 aWMgYm9vbCBpc190ZXh0dXJlXzJkX3NsaWNlZCAodm9pZCogb2JqZWN0KTsKKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCXB1 YmxpYyBzdGF0aWMgYm9vbCBpc192ZXJ0ZXhfYnVmZmVyX2luZGljZXMgKENvZ2wuSGFuZGxlIGhh bmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlb VmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCBtYXRyaXhfZXF1 YWwgKHZvaWQqIHYxLCB2b2lkKiB2Mik7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgb3J0 aG8gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxv YXQgbmVhciwgZmxvYXQgZmFyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwZXJzcGVjdGl2ZSAoZmxvYXQgZm92 eSwgZmxvYXQgYXNwZWN0LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHBvbHlnb24gKENvZ2wuVGV4dHVyZVZlcnRleCB2 ZXJ0aWNlcywgdWludCBuX3ZlcnRpY2VzLCBib29sIHVzZV9jb2xvcik7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg cG9wX21hdHJpeCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwb3Bfc291cmNlICgp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIHB1c2hfbWF0cml4ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIHB1c2hfc291cmNlICh2b2lkKiBtYXRlcmlhbCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xlIChm bG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xlX3dpdGhfbXVsdGl0ZXh0dXJlX2Nv b3JkcyAoZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB4MiwgZmxvYXQgeTIsIFtDQ29kZSAoYXJy YXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIHRleF9jb29yZHMsIGludCB0ZXhfY29vcmRzX2xl bik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGVfd2l0 aF90ZXh0dXJlX2Nvb3JkcyAoZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB4MiwgZmxvYXQgeTIs IGZsb2F0IHR4MSwgZmxvYXQgdHkxLCBmbG9hdCB0eDIsIGZsb2F0IHR5Mik7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGVzIChbQ0NvZGUgKGFycmF5X2xl bmd0aCA9IGZhbHNlKV0gZmxvYXRbXSB2ZXJ0cywgdWludCBuX3JlY3RzKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIw LjguNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xlc193aXRoX3RleHR1cmVfY29v cmRzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXRbXSB2ZXJ0cywgdWludCBu X3JlY3RzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIild CistCXB1YmxpYyBzdGF0aWMgdm9pZCByb3RhdGUgKGZsb2F0IGFuZ2xlLCBmbG9hdCB4LCBmbG9h dCB5LCBmbG9hdCB6KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzY2FsZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxv YXQgeik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQor IAlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2JhY2tmYWNlX2N1bGxpbmdfZW5hYmxlZCAoYm9vbCBz ZXR0aW5nKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCitA QCAtMTI0Nyw1MyArMTA0NiwxMSBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCXB1YmxpYyBzdGF0aWMg dm9pZCBzZXRfZGVwdGhfdGVzdF9lbmFibGVkIChib29sIHNldHRpbmcpOworIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHNldF9mb2cgKENvZ2wuQ29sb3IgZm9nX2NvbG9yLCBDb2dsLkZvZ01vZGUgbW9kZSwgZmxvYXQg ZGVuc2l0eSwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X21v ZGVsdmlld19tYXRyaXggKENvZ2wuTWF0cml4IG1hdHJpeCk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3By b2plY3Rpb25fbWF0cml4IChDb2dsLk1hdHJpeCBtYXRyaXgpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHNldF9zb3VyY2UgKHZvaWQqIG1hdGVyaWFsKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBz dGF0aWMgdm9pZCBzZXRfc291cmNlX2NvbG9yIChDb2dsLkNvbG9yIGNvbG9yKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCist CXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlX2NvbG9yNGYgKGZsb2F0IHJlZCwgZmxvYXQg Z3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMg dm9pZCBzZXRfc291cmNlX2NvbG9yNHViICh1aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBi bHVlLCB1aW50OCBhbHBoYSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3NvdXJj ZV90ZXh0dXJlIChDb2dsLlRleHR1cmUgdGV4dHVyZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBzdGF0aWMg dm9pZCBzZXRfdmlld3BvcnQgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1Ymxp YyBzdGF0aWMgdm9pZCBzaGFkZXJfY29tcGlsZSAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0 aWMgc3RyaW5nIHNoYWRlcl9nZXRfaW5mb19sb2cgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAlwdWJsaWMgc3Rh dGljIENvZ2wuU2hhZGVyVHlwZSBzaGFkZXJfZ2V0X3R5cGUgKENvZ2wuSGFuZGxlIGhhbmRsZSk7 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJs aWMgc3RhdGljIGJvb2wgc2hhZGVyX2lzX2NvbXBpbGVkIChDb2dsLkhhbmRsZSBoYW5kbGUpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGlj IHN0YXRpYyB1bm93bmVkIENvZ2wuSGFuZGxlIHNoYWRlcl9yZWYgKENvZ2wuSGFuZGxlIGhhbmRs ZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAlw dWJsaWMgc3RhdGljIHZvaWQgc2hhZGVyX3NvdXJjZSAoQ29nbC5IYW5kbGUgc2hhZGVyLCBzdHJp bmcgc291cmNlKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzaGFkZXJfdW5yZWYgKENvZ2wuSGFuZGxlIGhhbmRs ZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNl ID0gIjEuMCIpXQorIAlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJlX25ld19mcm9t X2JpdG1hcCAoQ29nbC5CaXRtYXAgYml0bWFwLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29n bC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KK0BAIC0xMzA2LDU5ICsxMDYzLDYgQEAgbmFtZXNwYWNlIENv Z2wgeworIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xOCIsIHNpbmNlID0gIjAuOCIpXQorIAlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0 dXJlX25ld193aXRoX3NpemUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVG bGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOworIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjQiKV0KKy0J cHVibGljIHN0YXRpYyB2b2lkIHRyYW5zZm9ybSAoQ29nbC5NYXRyaXggbWF0cml4KTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCB0cmFuc2xhdGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIHZlcnRleF9idWZmZXJfYWRkIChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0cmluZyBhdHRyaWJ1 dGVfbmFtZSwgdWludDggbl9jb21wb25lbnRzLCBDb2dsLkF0dHJpYnV0ZVR5cGUgdHlwZSwgYm9v bCBub3JtYWxpemVkLCB1aW50MTYgc3RyaWRlLCB2b2lkKiBwb2ludGVyKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCB2ZXJ0ZXhfYnVmZmVyX2RlbGV0ZSAoQ29nbC5IYW5kbGUgaGFuZGxlLCBzdHJpbmcgYXR0cmli dXRlX25hbWUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi KV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfZGlzYWJsZSAoQ29nbC5IYW5k bGUgaGFuZGxlLCBzdHJpbmcgYXR0cmlidXRlX25hbWUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9i dWZmZXJfZHJhdyAoQ29nbC5IYW5kbGUgaGFuZGxlLCBDb2dsLlZlcnRpY2VzTW9kZSBtb2RlLCBp bnQgZmlyc3QsIGludCBjb3VudCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9kcmF3X2Vs ZW1lbnRzIChDb2dsLkhhbmRsZSBoYW5kbGUsIENvZ2wuVmVydGljZXNNb2RlIG1vZGUsIENvZ2wu SGFuZGxlIGluZGljZXMsIGludCBtaW5faW5kZXgsIGludCBtYXhfaW5kZXgsIGludCBpbmRpY2Vz X29mZnNldCwgaW50IGNvdW50KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2VuYWJsZSAo Q29nbC5IYW5kbGUgaGFuZGxlLCBzdHJpbmcgYXR0cmlidXRlX25hbWUpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB1aW50 IHZlcnRleF9idWZmZXJfZ2V0X25fdmVydGljZXMgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3Rh dGljIHVub3duZWQgQ29nbC5IYW5kbGUgdmVydGV4X2J1ZmZlcl9pbmRpY2VzX2dldF9mb3JfcXVh ZHMgKHVpbnQgbl9pbmRpY2VzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5JbmRpY2VzVHlwZSB2ZXJ0ZXhfYnVm ZmVyX2luZGljZXNfZ2V0X3R5cGUgKENvZ2wuSGFuZGxlIGluZGljZXMpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93 bmVkIENvZ2wuSGFuZGxlIHZlcnRleF9idWZmZXJfbmV3ICh1aW50IG5fdmVydGljZXMpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQlwdWJsaWMgc3Rh dGljIHVub3duZWQgQ29nbC5IYW5kbGUgdmVydGV4X2J1ZmZlcl9yZWYgKENvZ2wuSGFuZGxlIGhh bmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9zdWJtaXQgKENvZ2wuSGFuZGxlIGhh bmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIildCist CXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX3VucmVmIChDb2dsLkhhbmRsZSBoYW5k bGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNl ID0gIjAuOC4yIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2aWV3cG9ydCAodWludCB3aWR0aCwg dWludCBoZWlnaHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JcHVibGljIHN0YXRpYyB1aW50MzIgeDExX29uc2NyZWVuX2dldF92aXN1YWxfeGlkIChD b2dsLk9uc2NyZWVuIG9uc2NyZWVuKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBzdGF0 aWMgdWludDMyIHgxMV9vbnNjcmVlbl9nZXRfd2luZG93X3hpZCAoQ29nbC5PbnNjcmVlbiBvbnNj cmVlbik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB4MTFfb25zY3Jl ZW5fc2V0X2ZvcmVpZ25fd2luZG93X3hpZCAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbiwgdWludDMy IHhpZCwgW0NDb2RlIChzY29wZSA9ICJhc3luYyIpXSBDb2dsLk9uc2NyZWVuWDExTWFza0NhbGxi YWNrIHVwZGF0ZSk7CisgfQorZGlmZiAtLWdpdCB2YXBpL211dHRlci1jb2dsLTQtY3VzdG9tLnZh bGEgdmFwaS9tdXR0ZXItY29nbC03LWN1c3RvbS52YWxhCitzaW1pbGFyaXR5IGluZGV4IDgxJQor cmVuYW1lIGZyb20gdmFwaS9tdXR0ZXItY29nbC00LWN1c3RvbS52YWxhCityZW5hbWUgdG8gdmFw aS9tdXR0ZXItY29nbC03LWN1c3RvbS52YWxhCitpbmRleCAyNTUxODg1YS4uYzRkNGI5M2EgMTAw NjQ0CistLS0gdmFwaS9tdXR0ZXItY29nbC00LWN1c3RvbS52YWxhCisrKysgdmFwaS9tdXR0ZXIt Y29nbC03LWN1c3RvbS52YWxhCitAQCAtMSwxMCArMSw0IEBACisgbmFtZXNwYWNlIENvZ2wgewor LQlbQ29tcGFjdF0KKy0JW0NDb2RlIChjbmFtZSA9ICJDb2dsSGFuZGxlIildCistCXB1YmxpYyBj bGFzcyBCaXRtYXA6IEhhbmRsZSB7CistCQlwdWJsaWMgc3RhdGljIEJpdG1hcCBuZXdfZnJvbV9m aWxlIChzdHJpbmcgZmlsZW5hbWUpIHRocm93cyBHTGliLkVycm9yOworLQl9CistCisgCVtDb21w YWN0XQorIAlbQ0NvZGUgKGNuYW1lID0gIkNvZ2xIYW5kbGUiKV0KKyAJcHVibGljIGNsYXNzIEJ1 ZmZlcjogSGFuZGxlIHsKK0BAIC00Miw3ICszNiw3IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1 YmxpYyBib29sIGlzX3ZlcnRleF9idWZmZXIgKCk7CisgCX0KKyAKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlvbiA9ICJjb2dsX3BhdGhfY29w eSIpXSAKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9m dW5jdGlvbiA9ICJjb2dsX3BhdGhfY29weSIpXQorIAlbQ29tcGFjdF0KKyAJcHVibGljIGNsYXNz IFBhdGggeworIAkJcHVibGljIHN0YXRpYyB2b2lkIEBuZXcgKCk7CitAQCAtODIsMTggKzc2LDYg QEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIHZvaWQgc291cmNlIChzdHJpbmcgc291cmNl KTsKKyAJfQorIAorLQlbQ29tcGFjdF0KKy0JW0NDb2RlIChjbmFtZSA9ICJDb2dsSGFuZGxlIiwg cmVmX2Z1bmN0aW9uID0gImNvZ2xfdGV4dHVyZV9yZWYiLCB1bnJlZl9mdW5jdGlvbiA9ICJjb2ds X3RleHR1cmVfdW5yZWYiKV0KKy0JcHVibGljIGNsYXNzIFRleHR1cmU6IEhhbmRsZSB7CistCQlw dWJsaWMgQ29nbC5QaXhlbEZvcm1hdCBnZXRfZm9ybWF0ICgpOworLQkJcHVibGljIHVpbnQgZ2V0 X3Jvd3N0cmlkZSAoKTsKKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21fYml0bWFwIChDb2dsLkJpdG1h cCBibXBfaGFuZGxlLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBp bnRlcm5hbF9mb3JtYXQpOworLQkJcHVibGljIFRleHR1cmUuZnJvbV9kYXRhICh1aW50IHdpZHRo LCB1aW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQg Zm9ybWF0LCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCwgdWludCByb3dzdHJpZGUs IFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1Y2hhcltdIGRhdGEpOworLQkJcHVibGlj IFRleHR1cmUuZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUsIENvZ2wuVGV4dHVyZUZsYWdzIGZs YWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCkgdGhyb3dzIEdMaWIuRXJyb3I7 CistCQlwdWJsaWMgVGV4dHVyZS5mcm9tX3N1Yl90ZXh0dXJlIChDb2dsLlRleHR1cmUgZnVsbF90 ZXh0dXJlLCBpbnQgc3ViX3gsIGludCBzdWJfeSwgaW50IHN1Yl93aWR0aCwgaW50IHN1Yl9oZWln aHQpOworLQkJcHVibGljIFRleHR1cmUud2l0aF9zaXplICh1aW50IHdpZHRoLCB1aW50IGhlaWdo dCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9y bWF0KTsKKy0JfQorLQorIAlbQ29tcGFjdF0KKyAJW0NDb2RlIChjbmFtZSA9ICJDb2dsSGFuZGxl IiwgcmVmX2Z1bmN0aW9uID0gImNvZ2xfdmVydGV4X2J1ZmZlcl9yZWYiLCB1bnJlZl9mdW5jdGlv biA9ICJjb2dsX3ZlcnRleF9idWZmZXJfdW5yZWYiKV0KKyAJcHVibGljIGNsYXNzIFZlcnRleEJ1 ZmZlcjogSGFuZGxlIHsKK2RpZmYgLS1naXQgdmFwaS9tdXR0ZXItY29nbC01LmRlcHMgdmFwaS9t dXR0ZXItY29nbC03LmRlcHMKK3NpbWlsYXJpdHkgaW5kZXggMTAwJQorcmVuYW1lIGZyb20gdmFw aS9tdXR0ZXItY29nbC01LmRlcHMKK3JlbmFtZSB0byB2YXBpL211dHRlci1jb2dsLTcuZGVwcwor ZGlmZiAtLWdpdCB2YXBpL211dHRlci1jb2dsLTQudmFwaSB2YXBpL211dHRlci1jb2dsLTcudmFw aQorc2ltaWxhcml0eSBpbmRleCA1OSUKK3JlbmFtZSBmcm9tIHZhcGkvbXV0dGVyLWNvZ2wtNC52 YXBpCityZW5hbWUgdG8gdmFwaS9tdXR0ZXItY29nbC03LnZhcGkKK2luZGV4IDVkZThmNDQ3Li42 MjBjMjMxNyAxMDA2NDQKKy0tLSB2YXBpL211dHRlci1jb2dsLTQudmFwaQorKysrIHZhcGkvbXV0 dGVyLWNvZ2wtNy52YXBpCitAQCAtMSwxMiArMSwxMyBAQAorLS8qIG11dHRlci1jb2dsLTQudmFw aSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKysvKiBtdXR0ZXItY29n bC03LnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnkuICovCisgCistW0ND b2RlIChjcHJlZml4ID0gIkNvZ2wiLCBnaXJfbmFtZXNwYWNlID0gIkNvZ2wiLCBnaXJfdmVyc2lv biA9ICI0IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gImNvZ2xfIildCisrW0NDb2RlIChjcHJlZml4 ID0gIkNvZ2wiLCBnaXJfbmFtZXNwYWNlID0gIkNvZ2wiLCBnaXJfdmVyc2lvbiA9ICI3IiwgbG93 ZXJfY2FzZV9jcHJlZml4ID0gImNvZ2xfIildCisgbmFtZXNwYWNlIENvZ2wgeworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDb2dsSGFuZGxlIiwg dHlwZV9pZCA9ICJjb2dsX2JpdG1hcF9nZXRfZ3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCXB1 YmxpYyBjbGFzcyBCaXRtYXAgOiBDb2dsLkhhbmRsZSB7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF9iaXRtYXBfZ2V0X2d0eXBlICgp IildCisrCXB1YmxpYyBjbGFzcyBCaXRtYXAgOiBDb2dsLk9iamVjdCB7CisrCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgQml0bWFwICgpOwor IAkJcHVibGljIHN0YXRpYyB1aW50MzIgZXJyb3JfcXVhcmsgKCk7CistCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDb2dsQml0bWFwKiIpXQorKwkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorIAkJcHVibGljIEJpdG1hcC5mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSkg dGhyb3dzIEdMaWIuRXJyb3I7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTE2 LDEwICsxNyw5IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCisgCQlwdWJsaWMgaW50IGdldF9yb3dzdHJpZGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBnZXRfc2l6ZV9mcm9tX2ZpbGUg KHN0cmluZyBmaWxlbmFtZSwgb3V0IGludCB3aWR0aCwgb3V0IGludCBoZWlnaHQpOworKwkJcHVi bGljIHN0YXRpYyBib29sIGdldF9zaXplX2Zyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lLCBvdXQg aW50IHdpZHRoLCBvdXQgaW50IGhlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorIAkJcHVibGljIGludCBnZXRfd2lkdGggKCk7CistCQlwdWJsaWMgc3RhdGljIENvZ2wuQml0 bWFwIG5ld19mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSkgdGhyb3dzIEdMaWIuRXJyb3I7Cisg CX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAi Q29nbEhhbmRsZSIpXQorIAlbQ29tcGFjdF0KK0BAIC0yOCwxNSArMjgsMjggQEAgbmFtZXNwYWNl IENvZ2wgeworIAkJcHVibGljIGJvb2wgc2V0X2RhdGEgKHNpemVfdCBvZmZzZXQsIFtDQ29kZSAo YXJyYXlfbGVuZ3RoX3R5cGUgPSAic2l6ZV90IildIHVpbnQ4W10gZGF0YSk7CisgCQlwdWJsaWMg dm9pZCB1bm1hcCAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFz cyBFdWxlciB7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5 cGVfaWQgPSAiY29nbF9jb250ZXh0X2dldF9ndHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgQ29u dGV4dCA6IENvZ2wuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlKV0KKysJCXByb3RlY3RlZCBDb250ZXh0ICgpOworKwkJcHVibGljIGJvb2wgaXNfaGFy ZHdhcmVfYWNjZWxlcmF0ZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0 aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY29nbF9mcmFtZV9jbG9zdXJlX2dldF9n dHlwZSAoKSIpXQorIAlbQ29tcGFjdF0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKyAJ cHVibGljIGNsYXNzIEZyYW1lQ2xvc3VyZSB7CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX2ZyYW1lX2luZm9fZ2V0X2d0eXBl ICgpIildCisrCXB1YmxpYyBjbGFzcyBGcmFtZUluZm8gOiBDb2dsLk9iamVjdCB7CisrCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgRnJhbWVJ bmZvICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKysJCXB1YmxpYyBpbnQ2NCBn ZXRfZnJhbWVfY291bnRlciAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisrCQlw dWJsaWMgaW50NjQgZ2V0X3ByZXNlbnRhdGlvbl90aW1lICgpOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTQiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfcmVmcmVzaF9yYXRlICgpOworKwl9Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHJlZl9mdW5jdGlvbiA9 ICJjb2dsX2hhbmRsZV9yZWYiLCB1bnJlZl9mdW5jdGlvbiA9ICJjb2dsX2hhbmRsZV91bnJlZiIp XQorIAlbQ29tcGFjdF0KKyAJcHVibGljIGNsYXNzIEhhbmRsZSB7CitAQCAtNjUsNjUgKzc4LDIw IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlKV0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2IildCisgCQlwdWJsaWMgTWF0ZXJpYWwgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMiIpXQor LQkJcHVibGljIENvZ2wuTWF0ZXJpYWwgY29weSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgdm9pZCBmb3JlYWNoX2xheWVyIChDb2dsLk1hdGVyaWFsTGF5ZXJDYWxsYmFjayBjYWxs YmFjayk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FtYmllbnQgKENv Z2wuQ29sb3IgYW1iaWVudCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENvZ2wuQ29s b3IgZ2V0X2NvbG9yICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9k aWZmdXNlIChDb2dsLkNvbG9yIGRpZmZ1c2UpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1Ymxp YyB2b2lkIGdldF9lbWlzc2lvbiAoQ29nbC5Db2xvciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19l bmFibGVkIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBD b2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9wIChpbnQgbGF5ZXJfaW5k ZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUg Z2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYi KV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV90 IChpbnQgbGF5ZXJfaW5kZXgpOworLQkJcHVibGljIHVub3duZWQgR0xpYi5MaXN0PENvZ2wuTWF0 ZXJpYWxMYXllcj4gZ2V0X2xheWVycyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMg aW50IGdldF9uX2xheWVycyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgZmxvYXQg Z2V0X3BvaW50X3NpemUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGZsb2F0IGdl dF9zaGluaW5lc3MgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3Nw ZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJs aWMgdW5vd25lZCBDb2dsLkhhbmRsZSBnZXRfdXNlcl9wcm9ncmFtICgpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIsIHNpbmNlID0gIjEu MCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENvZ2wuSGFuZGxlIEByZWYgKENvZ2wuSGFu ZGxlIG1hdGVyaWFsKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfbGF5ZXIgKGludCBsYXll cl9pbmRleCk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2FscGhhX3Rl c3RfZnVuY3Rpb24gKENvZ2wuTWF0ZXJpYWxBbHBoYUZ1bmMgYWxwaGFfZnVuYywgZmxvYXQgYWxw aGFfcmVmZXJlbmNlKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYW1i aWVudCAoQ29nbC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMg dm9pZCBzZXRfYW1iaWVudF9hbmRfZGlmZnVzZSAoQ29nbC5Db2xvciBjb2xvcik7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfYmxlbmQgKHN0cmluZyBibGVuZF9z dHJpbmcpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIGJvb2wgc2V0X2JsZW5kIChzdHJp bmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisg CQlwdWJsaWMgdm9pZCBzZXRfYmxlbmRfY29uc3RhbnQgKENvZ2wuQ29sb3IgY29uc3RhbnRfY29s b3IpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9jb2xvciAoQ29nbC5D b2xvciBjb2xvcik7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9y NGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwg c2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfY29sb3I0dWIgKHVpbnQ4IHJlZCwg dWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsKKyAJCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgdm9pZCBzZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNlKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZW1pc3Npb24gKENvZ2wuQ29sb3IgZW1p c3Npb24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9sYXllciAoaW50 IGxheWVyX2luZGV4LCBDb2dsLkhhbmRsZSB0ZXh0dXJlKTsKKyAJCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgQ29nbC5Cb29sIHNldF9sYXllcl9jb21iaW5lIChpbnQgbGF5ZXJfaW5kZXgsIHN0 cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIGJvb2wgc2V0 X2xheWVyX2NvbWJpbmUgKGludCBsYXllcl9pbmRleCwgc3RyaW5nIGJsZW5kX3N0cmluZykgdGhy b3dzIEdMaWIuRXJyb3I7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xh eWVyX2NvbWJpbmVfY29uc3RhbnQgKGludCBsYXllcl9pbmRleCwgQ29nbC5Db2xvciBjb25zdGFu dCk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIpXQorQEAgLTEzMSw0MyArOTksMTUgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKyAJCXB1 YmxpYyB2b2lkIHNldF9sYXllcl9tYXRyaXggKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRyaXgg bWF0cml4KTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9sYXll cl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGludCBsYXllcl9pbmRleCwgQ29nbC5Cb29s IGVuYWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZSAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFs V3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xh eWVyX3dyYXBfbW9kZV9wIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBt b2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9t b2RlX3MgKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIG1vZGUpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBz aW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfdCAoaW50 IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgbW9kZSk7CisrCQlwdWJsaWMgYm9v bCBzZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5ZXJfaW5kZXgs IGJvb2wgZW5hYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCisgCQlw dWJsaWMgdm9pZCBzZXRfcG9pbnRfc2l6ZSAoZmxvYXQgcG9pbnRfc2l6ZSk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NoaW5pbmVzcyAoZmxvYXQgc2hpbmluZXNzKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc3BlY3VsYXIgKENvZ2wuQ29s b3Igc3BlY3VsYXIpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF91c2Vy X3Byb2dyYW0gKENvZ2wuSGFuZGxlIHByb2dyYW0pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVi bGljIHN0YXRpYyB2b2lkIHVucmVmIChDb2dsLkhhbmRsZSBtYXRlcmlhbCk7CisgCX0KKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3R5cGVfaWQgPSBmYWxz ZSldCisgCVtDb21wYWN0XQorIAlwdWJsaWMgY2xhc3MgTWF0ZXJpYWxMYXllciB7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJ cHVibGljIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgZ2V0X21hZ19maWx0ZXIgKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVi bGljIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgZ2V0X21pbl9maWx0ZXIgKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGlj IHVub3duZWQgQ29nbC5IYW5kbGUgZ2V0X3RleHR1cmUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIENvZ2wu TWF0ZXJpYWxMYXllclR5cGUgZ2V0X3R5cGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVi bGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfd3JhcF9tb2RlX3AgKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuNCIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfd3JhcF9tb2RlX3Mg KCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBn ZXRfd3JhcF9tb2RlX3QgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX29iamVjdF9nZXRfZ3R5cGUgKCkiKV0KKyAJcHVi bGljIGFic3RyYWN0IGNsYXNzIE9iamVjdCB7CitAQCAtMTc4LDEzICsxMTgsOSBAQCBuYW1lc3Bh Y2UgQ29nbCB7CisgCXB1YmxpYyBjbGFzcyBPZmZzY3JlZW4gOiBDb2dsLk9iamVjdCwgQ29nbC5G cmFtZWJ1ZmZlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSld CisgCQlwcm90ZWN0ZWQgT2Zmc2NyZWVuICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkKiBA cmVmICh2b2lkKiBvZmZzY3JlZW4pOworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UpXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiKV0KKyAJCXB1YmxpYyBPZmZzY3JlZW4udG9fdGV4dHVyZSAoQ29nbC5UZXh0 dXJlIHRleHR1cmUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHVucmVmICh2b2lkKiBvZmZz Y3JlZW4pOworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJ cHVibGljIE9mZnNjcmVlbi53aXRoX3RleHR1cmUgKENvZ2wuVGV4dHVyZSB0ZXh0dXJlKTsKKyAJ fQorQEAgLTE5NCwxNyArMTMwLDE2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXByb3RlY3RlZCBP bnNjcmVlbiAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCisgCQlwdWJsaWMgQ29n bC5PbnNjcmVlbkRpcnR5Q2xvc3VyZSBhZGRfZGlydHlfY2FsbGJhY2sgKFtDQ29kZSAoZGVsZWdh dGVfdGFyZ2V0X3BvcyA9IDEuNSldIENvZ2wuT25zY3JlZW5EaXJ0eUNhbGxiYWNrIGNhbGxiYWNr LCBDb2dsLlVzZXJEYXRhRGVzdHJveUNhbGxiYWNrPyBkZXN0cm95KTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjE0IildCisrCQlwdWJsaWMgQ29nbC5GcmFtZUNsb3N1cmUgYWRkX2ZyYW1lX2Nh bGxiYWNrIChbQ0NvZGUgKGRlbGVnYXRlX3RhcmdldF9wb3MgPSAxLjUpXSBDb2dsLkZyYW1lQ2Fs bGJhY2sgY2FsbGJhY2ssIENvZ2wuVXNlckRhdGFEZXN0cm95Q2FsbGJhY2s/IGRlc3Ryb3kpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIENvZ2wuT25zY3JlZW5SZXNp emVDbG9zdXJlIGFkZF9yZXNpemVfY2FsbGJhY2sgKFtDQ29kZSAoZGVsZWdhdGVfdGFyZ2V0X3Bv cyA9IDEuNSldIENvZ2wuT25zY3JlZW5SZXNpemVDYWxsYmFjayBjYWxsYmFjaywgQ29nbC5Vc2Vy RGF0YURlc3Ryb3lDYWxsYmFjaz8gZGVzdHJveSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNCIsIHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1 YmxpYyB1aW50IGFkZF9zd2FwX2J1ZmZlcnNfY2FsbGJhY2sgKENvZ2wuU3dhcEJ1ZmZlcnNOb3Rp ZnkgY2FsbGJhY2spOworLQkJcHVibGljIHN0YXRpYyB2b2lkIGNsdXR0ZXJfYmFja2VuZF9zZXRf c2l6ZV9DTFVUVEVSIChpbnQgd2lkdGgsIGludCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTQiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2J1ZmZlcl9hZ2UgKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xNCIpXQorIAkJcHVibGljIGludDY0IGdldF9mcmFtZV9jb3VudGVyICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRf cmVzaXphYmxlICgpOworKwkJcHVibGljIGJvb2wgZ2V0X3Jlc2l6YWJsZSAoKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIGhpZGUgKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xNiIpXQorQEAgLTIxMywxOCArMTQ4LDE2IEBAIG5hbWVzcGFjZSBDb2ds IHsKKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV9mcmFtZV9jYWxsYmFjayAoQ29nbC5GcmFtZUNsb3N1 cmUgY2xvc3VyZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9p ZCByZW1vdmVfcmVzaXplX2NhbGxiYWNrIChDb2dsLk9uc2NyZWVuUmVzaXplQ2xvc3VyZSBjbG9z dXJlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE0Iiwgc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX3N3YXBfYnVm ZmVyc19jYWxsYmFjayAodWludCBpZCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCist CQlwdWJsaWMgdm9pZCBzZXRfcmVzaXphYmxlIChDb2dsLkJvb2wgcmVzaXphYmxlKTsKKysJCXB1 YmxpYyB2b2lkIHNldF9yZXNpemFibGUgKGJvb2wgcmVzaXphYmxlKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNob3cgKCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc3dhcF9idWZmZXJzICgpOworKwkJcHVibGlj IHZvaWQgc3dhcF9idWZmZXJzIChDb2dsLkZyYW1lSW5mbyBmcmFtZV9pbmZvKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgdm9pZCBzd2FwX2J1ZmZlcnNfd2l0aF9k YW1hZ2UgKGludCByZWN0YW5nbGVzLCBpbnQgbl9yZWN0YW5nbGVzKTsKKysJCXB1YmxpYyB2b2lk IHN3YXBfYnVmZmVyc193aXRoX2RhbWFnZSAoaW50IHJlY3RhbmdsZXMsIGludCBuX3JlY3Rhbmds ZXMsIENvZ2wuRnJhbWVJbmZvIGluZm8pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K Ky0JCXB1YmxpYyB2b2lkIHN3YXBfcmVnaW9uIChpbnQgcmVjdGFuZ2xlcywgaW50IG5fcmVjdGFu Z2xlcyk7CisrCQlwdWJsaWMgdm9pZCBzd2FwX3JlZ2lvbiAoaW50IHJlY3RhbmdsZXMsIGludCBu X3JlY3RhbmdsZXMsIENvZ2wuRnJhbWVJbmZvIGluZm8pOworIAl9CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5 IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNvZ2xfb25zY3Jl ZW5fZGlydHlfY2xvc3VyZV9nZXRfZ3R5cGUgKCkiKV0KKyAJW0NvbXBhY3RdCitAQCAtMjQ0LDcg KzE3Nyw4IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX3BpcGVsaW5lX2dldF9ndHlwZSAoKSIpXQor IAlwdWJsaWMgY2xhc3MgUGlwZWxpbmUgOiBDb2dsLk9iamVjdCB7CisgCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgUGlwZWxpbmUgKCk7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisrCQlwdWJsaWMgUGlwZWxpbmUgKENvZ2wuQ29u dGV4dCBjb250ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBD b2dsLlBpcGVsaW5lIGNvcHkgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCitAQCAt MjU0LDQ0ICsxODgsMzAgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorIAkJcHVibGljIGZsb2F0IGdldF9hbHBoYV90ZXN0X3JlZmVyZW5jZSAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9hbWJpZW50IChD b2dsLkNvbG9yIGFtYmllbnQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVi bGljIENvZ2wuQ29sb3IgZ2V0X2NvbG9yICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIp XQorLQkJcHVibGljIENvZ2wuQ29sb3JNYXNrIGdldF9jb2xvcl9tYXNrICgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmVDdWxsRmFjZU1vZGUg Z2V0X2N1bGxfZmFjZV9tb2RlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJ cHVibGljIHZvaWQgZ2V0X2RpZmZ1c2UgKENvZ2wuQ29sb3IgZGlmZnVzZSk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfZW1pc3Npb24gKENvZ2wuQ29s b3IgZW1pc3Npb24pOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIENv Z2wuV2luZGluZyBnZXRfZnJvbnRfZmFjZV93aW5kaW5nICgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBDb2dsLlBpcGVsaW5lRmlsdGVyIGdldF9sYXllcl9tYWdf ZmlsdGVyIChpbnQgbGF5ZXJfaW5kZXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K KyAJCXB1YmxpYyBDb2dsLlBpcGVsaW5lRmlsdGVyIGdldF9sYXllcl9taW5fZmlsdGVyIChpbnQg bGF5ZXJfaW5kZXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENv Z2wuQm9vbCBnZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5ZXJf aW5kZXgpOworKwkJcHVibGljIGJvb2wgZ2V0X2xheWVyX3BvaW50X3Nwcml0ZV9jb29yZHNfZW5h YmxlZCAoaW50IGxheWVyX2luZGV4KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisg CQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X2xheWVyX3RleHR1cmUgKGludCBsYXll cl9pbmRleCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgQ29nbC5Q aXBlbGluZVdyYXBNb2RlIGdldF9sYXllcl93cmFwX21vZGVfcCAoaW50IGxheWVyX2luZGV4KTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBDb2dsLlBpcGVsaW5lV3Jh cE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBnZXRf bGF5ZXJfd3JhcF9tb2RlX3QgKGludCBsYXllcl9pbmRleCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCisgCQlwdWJsaWMgaW50IGdldF9uX2xheWVycyAoKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X3Blcl92ZXJ0ZXhfcG9pbnRf c2l6ZSAoKTsKKysJCXB1YmxpYyBib29sIGdldF9wZXJfdmVydGV4X3BvaW50X3NpemUgKCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X3BvaW50X3Np emUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgZmxvYXQgZ2V0 X3NoaW5pbmVzcyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIGdldF9zcGVjdWxhciAoQ29nbC5Db2xvciBzcGVjdWxhcik7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMi4wIildCisgCQlwdWJsaWMgaW50IGdldF91bmlmb3JtX2xvY2F0aW9uIChzdHJpbmcg dW5pZm9ybV9uYW1lKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB1 bm93bmVkIENvZ2wuSGFuZGxlIGdldF91c2VyX3Byb2dyYW0gKCk7CitAQCAtMzAwLDExICsyMjAs NyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlw dWJsaWMgdm9pZCBzZXRfYWxwaGFfdGVzdF9mdW5jdGlvbiAoQ29nbC5QaXBlbGluZUFscGhhRnVu YyBhbHBoYV9mdW5jLCBmbG9hdCBhbHBoYV9yZWZlcmVuY2UpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FtYmllbnQgKENvZ2wuQ29sb3IgYW1iaWVu dCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYW1i aWVudF9hbmRfZGlmZnVzZSAoQ29nbC5Db2xvciBjb2xvcik7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9ibGVuZCAoc3RyaW5nIGJsZW5kX3N0 cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgYm9vbCBzZXRfYmxlbmQgKHN0cmlu ZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2JsZW5kX2NvbnN0YW50IChDb2dsLkNvbG9yIGNv bnN0YW50X2NvbG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KK0BAIC0zMTMsNDYg KzIyOSwzNSBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgdm9pZCBzZXRfY29sb3I0ZiAo ZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2NvbG9yNHViICh1aW50 OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVlLCB1aW50OCBhbHBoYSk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3JfbWFzayAoQ29nbC5D b2xvck1hc2sgY29sb3JfbWFzayk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlw dWJsaWMgdm9pZCBzZXRfY3VsbF9mYWNlX21vZGUgKENvZ2wuUGlwZWxpbmVDdWxsRmFjZU1vZGUg Y3VsbF9mYWNlX21vZGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2RpZmZ1c2UgKENvZ2wuQ29sb3IgZGlmZnVzZSk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZW1pc3Npb24gKENvZ2wuQ29sb3IgZW1p c3Npb24pOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0 X2Zyb250X2ZhY2Vfd2luZGluZyAoQ29nbC5XaW5kaW5nIGZyb250X3dpbmRpbmcpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfbGF5ZXJfY29t YmluZSAoaW50IGxheWVyX2luZGV4LCBzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5F cnJvcjsKKysJCXB1YmxpYyBib29sIHNldF9sYXllcl9jb21iaW5lIChpbnQgbGF5ZXJfaW5kZXgs IHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVyX2NvbWJpbmVfY29uc3RhbnQg KGludCBsYXllcl9pbmRleCwgQ29nbC5Db2xvciBjb25zdGFudCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVyX2ZpbHRlcnMgKGludCBsYXll cl9pbmRleCwgQ29nbC5QaXBlbGluZUZpbHRlciBtaW5fZmlsdGVyLCBDb2dsLlBpcGVsaW5lRmls dGVyIG1hZ19maWx0ZXIpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1Ymxp YyB2b2lkIHNldF9sYXllcl9tYXRyaXggKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRyaXggbWF0 cml4KTsKKysJCXB1YmxpYyB2b2lkIHNldF9sYXllcl9tYXhfbWlwbWFwX2xldmVsIChpbnQgbGF5 ZXIsIGludCBtYXhfbGV2ZWwpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9sYXllcl9udWxsX3RleHR1cmUgKGludCBsYXllcl9pbmRleCwgQ29nbC5U ZXh0dXJlVHlwZSB0ZXh0dXJlX3R5cGUpOworKwkJcHVibGljIHZvaWQgc2V0X2xheWVyX251bGxf dGV4dHVyZSAoaW50IGxheWVyX2luZGV4KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K Ky0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2xheWVyX3BvaW50X3Nwcml0ZV9jb29yZHNfZW5hYmxl ZCAoaW50IGxheWVyX2luZGV4LCBDb2dsLkJvb2wgZW5hYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsK KysJCXB1YmxpYyBib29sIHNldF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGlu dCBsYXllcl9pbmRleCwgYm9vbCBlbmFibGUpIHRocm93cyBHTGliLkVycm9yOworIAkJcHVibGlj IHZvaWQgc2V0X2xheWVyX3RleHR1cmUgKGludCBsYXllcl9pbmRleCwgQ29nbC5UZXh0dXJlIHRl eHR1cmUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0 X2xheWVyX3dyYXBfbW9kZSAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lV3JhcE1vZGUg bW9kZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRf bGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCwgQ29nbC5QaXBlbGluZVdyYXBNb2Rl IG1vZGUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0 X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVXcmFwTW9k ZSBtb2RlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNl dF9sYXllcl93cmFwX21vZGVfdCAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lV3JhcE1v ZGUgbW9kZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5C b29sIHNldF9wZXJfdmVydGV4X3BvaW50X3NpemUgKENvZ2wuQm9vbCBlbmFibGUpIHRocm93cyBH TGliLkVycm9yOworKwkJcHVibGljIGJvb2wgc2V0X3Blcl92ZXJ0ZXhfcG9pbnRfc2l6ZSAoYm9v bCBlbmFibGUpIHRocm93cyBHTGliLkVycm9yOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorIAkJcHVibGljIHZvaWQgc2V0X3BvaW50X3NpemUgKGZsb2F0IHBvaW50X3NpemUpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NoaW5pbmVzcyAo ZmxvYXQgc2hpbmluZXNzKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9zcGVjdWxhciAoQ29nbC5Db2xvciBzcGVjdWxhcik7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfdW5pZm9ybV8xZiAoaW50IHVuaWZv cm1fbG9jYXRpb24sIGZsb2F0IHZhbHVlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K KyAJCXB1YmxpYyB2b2lkIHNldF91bmlmb3JtXzFpIChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgaW50 IHZhbHVlKTsKK0BAIC0zNjEsNyArMjY2LDcgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3VuaWZvcm1faW50IChpbnQg dW5pZm9ybV9sb2NhdGlvbiwgaW50IG5fY29tcG9uZW50cywgaW50IGNvdW50LCBpbnQgdmFsdWUp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3VuaWZv cm1fbWF0cml4IChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgaW50IGRpbWVuc2lvbnMsIGludCBjb3Vu dCwgQ29nbC5Cb29sIHRyYW5zcG9zZSwgZmxvYXQgdmFsdWUpOworKwkJcHVibGljIHZvaWQgc2V0 X3VuaWZvcm1fbWF0cml4IChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgaW50IGRpbWVuc2lvbnMsIGlu dCBjb3VudCwgYm9vbCB0cmFuc3Bvc2UsIGZsb2F0IHZhbHVlKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF91c2VyX3Byb2dyYW0gKENvZ2wuSGFuZGxl IHByb2dyYW0pOworIAl9CitAQCAtMzg4LDcgKzI5Myw3IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJ fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9p ZCA9IGZhbHNlKV0KKyAJW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBRdWF0ZXJuaW9uIHsKKysJ cHVibGljIGNsYXNzIFNjYW5vdXQgeworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNvZ2xIYW5kbGUiLCByZWZfZnVuY3Rpb24gPSAiY29n bF9zaGFkZXJfcmVmIiwgdW5yZWZfZnVuY3Rpb24gPSAiY29nbF9zaGFkZXJfdW5yZWYiKV0KKyAJ W0NvbXBhY3RdCitAQCAtNDAxLDQ4ICszMDYsMjMgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVi bGljIGJvb2wgaXNfY29tcGlsZWQgKCk7CisgCQlwdWJsaWMgdm9pZCBzb3VyY2UgKHN0cmluZyBz b3VyY2UpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIs IGNuYW1lID0gIkNvZ2xIYW5kbGUiLCByZWZfZnVuY3Rpb24gPSAiY29nbF90ZXh0dXJlX3JlZiIs IHR5cGVfaWQgPSAiY29nbF90ZXh0dXJlX2dldF9ndHlwZSAoKSIsIHVucmVmX2Z1bmN0aW9uID0g ImNvZ2xfdGV4dHVyZV91bnJlZiIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIFRleHR1 cmUgOiBDb2dsLkhhbmRsZSB7CistCQlwdWJsaWMgQ29nbC5Cb29sIGFsbG9jYXRlICgpIHRocm93 cyBHTGliLkVycm9yOworLQkJcHVibGljIHN0YXRpYyB1aW50MzIgZXJyb3JfcXVhcmsgKCk7Cist CQlwdWJsaWMgVGV4dHVyZS5mcm9tX2JpdG1hcCAoQ29nbC5CaXRtYXAgYm1wX2hhbmRsZSwgQ29n bC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsK Ky0JCXB1YmxpYyBUZXh0dXJlLmZyb21fZGF0YSAodWludCB3aWR0aCwgdWludCBoZWlnaHQsIENv Z2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgQ29nbC5QaXhl bEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQsIHVpbnQgcm93c3RyaWRlLCBbQ0NvZGUgKGFycmF5X2xl bmd0aCA9IGZhbHNlKV0gdWNoYXJbXSBkYXRhKTsKKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21fZmls ZSAoc3RyaW5nIGZpbGVuYW1lLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZv cm1hdCBpbnRlcm5hbF9mb3JtYXQpIHRocm93cyBHTGliLkVycm9yOworLQkJcHVibGljIFRleHR1 cmUuZnJvbV9zdWJfdGV4dHVyZSAoQ29nbC5UZXh0dXJlIGZ1bGxfdGV4dHVyZSwgaW50IHN1Yl94 LCBpbnQgc3ViX3ksIGludCBzdWJfd2lkdGgsIGludCBzdWJfaGVpZ2h0KTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjE4IildCistCQlwdWJsaWMgQ29nbC5UZXh0dXJlQ29tcG9uZW50cyBnZXRf Y29tcG9uZW50cyAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2RhdGEgKENvZ2wuUGl4ZWxGb3JtYXQg Zm9ybWF0LCB1aW50IHJvd3N0cmlkZSwgdWludDggZGF0YSk7CistCQlwdWJsaWMgQ29nbC5QaXhl bEZvcm1hdCBnZXRfZm9ybWF0ICgpOworLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfZ2xfdGV4dHVy ZSAob3V0IHVpbnQgb3V0X2dsX2hhbmRsZSwgb3V0IHVpbnQgb3V0X2dsX3RhcmdldCk7CistCQlw dWJsaWMgdWludCBnZXRfaGVpZ2h0ICgpOworLQkJcHVibGljIGludCBnZXRfbWF4X3dhc3RlICgp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0 X3ByZW11bHRpcGxpZWQgKCk7CistCQlwdWJsaWMgdWludCBnZXRfcm93c3RyaWRlICgpOworLQkJ cHVibGljIHVpbnQgZ2V0X3dpZHRoICgpOworLQkJcHVibGljIENvZ2wuQm9vbCBpc19zbGljZWQg KCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xOCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgbmV3 X2Zyb21fYml0bWFwIChDb2dsLkJpdG1hcCBiaXRtYXAsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdz LCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQor LQkJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgbmV3X2Zyb21fZGF0YSAoaW50IHdpZHRoLCBp bnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBmb3Jt YXQsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0LCBpbnQgcm93c3RyaWRlLCB1aW50 OCBkYXRhKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVy ZSBuZXdfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdz LCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCkgdGhyb3dzIEdMaWIuRXJyb3I7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIs IHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgbmV3X2Zyb21f Zm9yZWlnbiAodWludCBnbF9oYW5kbGUsIHVpbnQgZ2xfdGFyZ2V0LCB1aW50IHdpZHRoLCB1aW50 IGhlaWdodCwgdWludCB4X3BvdF93YXN0ZSwgdWludCB5X3BvdF93YXN0ZSwgQ29nbC5QaXhlbEZv cm1hdCBmb3JtYXQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBDb2dsLlRleHR1cmUg bmV3X2Zyb21fc3ViX3RleHR1cmUgKGludCBzdWJfeCwgaW50IHN1Yl95LCBpbnQgc3ViX3dpZHRo LCBpbnQgc3ViX2hlaWdodCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHN0YXRpYyBD b2dsLlRleHR1cmUgbmV3X3dpdGhfc2l6ZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQsIENvZ2wu VGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbXBvbmVu dHMgKENvZ2wuVGV4dHVyZUNvbXBvbmVudHMgY29tcG9uZW50cyk7CistCQlwdWJsaWMgQ29nbC5C b29sIHNldF9kYXRhIChDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgaW50IHJvd3N0cmlkZSwgdWlu dDggZGF0YSwgaW50IGxldmVsKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjE4IildCistCQlwdWJsaWMgdm9pZCBzZXRfcHJlbXVsdGlwbGllZCAoQ29nbC5Cb29s IHByZW11bHRpcGxpZWQpOworLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfcmVnaW9uIChpbnQgc3Jj X3gsIGludCBzcmNfeSwgaW50IGRzdF94LCBpbnQgZHN0X3ksIHVpbnQgZHN0X3dpZHRoLCB1aW50 IGRzdF9oZWlnaHQsIGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29nbC5QaXhlbEZvcm1hdCBmb3Jt YXQsIHVpbnQgcm93c3RyaWRlLCB1aW50OCBkYXRhKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X3JlZ2lvbl9mcm9tX2JpdG1hcCAoaW50IHNy Y194LCBpbnQgc3JjX3ksIGludCBkc3RfeCwgaW50IGRzdF95LCB1aW50IGRzdF93aWR0aCwgdWlu dCBkc3RfaGVpZ2h0LCBDb2dsLkJpdG1hcCBiaXRtYXApOworLQkJcHVibGljIFRleHR1cmUud2l0 aF9zaXplICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3Ms IENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgbG93ZXJfY2FzZV9jc3VmZml4ID0gInRleHR1cmVfMmQi LCB0eXBlX2lkID0gImNvZ2xfdGV4dHVyZV8yZF9nZXRfZ3R5cGUgKCkiKV0KKysJcHVibGljIGNs YXNzIFRleHR1cmUyRCA6IENvZ2wuT2JqZWN0LCBDb2dsLlRleHR1cmUgeworKwkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIFRleHR1cmUyRCAo KTsKKysJCXB1YmxpYyB2b2lkIGVnbF9pbWFnZV9leHRlcm5hbF9hbGxvY19maW5pc2ggKHZvaWQq IHVzZXJfZGF0YSwgR0xpYi5EZXN0cm95Tm90aWZ5IGRlc3Ryb3kpOworKwkJcHVibGljIHZvaWQg ZWdsX2ltYWdlX2V4dGVybmFsX2JpbmQgKCk7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVu Y3Rpb24gPSBmYWxzZSldCisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisrCQlwdWJsaWMg VGV4dHVyZTJELmZyb21fYml0bWFwIChDb2dsLkJpdG1hcCBiaXRtYXApOworKwl9CisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGxvd2VyX2Nhc2VfY3N1ZmZpeCA9 ICJ0ZXh0dXJlXzJkX3NsaWNlZCIsIHR5cGVfaWQgPSAiY29nbF90ZXh0dXJlXzJkX3NsaWNlZF9n ZXRfZ3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIFRleHR1cmUyRFNsaWNlZCA6IENvZ2wuT2Jq ZWN0LCBDb2dsLlRleHR1cmUgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UpXQorKwkJcHJvdGVjdGVkIFRleHR1cmUyRFNsaWNlZCAoKTsKKysJCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2 IildCisrCQlwdWJsaWMgVGV4dHVyZTJEU2xpY2VkLmZyb21fYml0bWFwIChDb2dsLkJpdG1hcCBi bXAsIGludCBtYXhfd2FzdGUpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNvZ2xIYW5kbGUiLCByZWZfZnVuY3Rpb24gPSAiY29nbF92 ZXJ0ZXhfYnVmZmVyX3JlZiIsIHVucmVmX2Z1bmN0aW9uID0gImNvZ2xfdmVydGV4X2J1ZmZlcl91 bnJlZiIpXQorIAlbQ29tcGFjdF0KK0BAIC00NjgsNyArMzQ4LDcgQEAgbmFtZXNwYWNlIENvZ2wg eworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0g ImNvZ2xfZnJhbWVidWZmZXJfZ2V0X2d0eXBlICgpIildCisgCXB1YmxpYyBpbnRlcmZhY2UgRnJh bWVidWZmZXIgOiBDb2dsLk9iamVjdCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCist CQlwdWJsaWMgQ29nbC5Cb29sIGFsbG9jYXRlICgpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVi bGljIGJvb2wgYWxsb2NhdGUgKCkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCBjbGVhciAodWxvbmcgYnVmZmVycywgQ29nbC5D b2xvciBjb2xvcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCitAQCAtNDg4LDYgKzM2 OCw3IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyBzdGF0aWMgdWludDMyIGVycm9yX3F1 YXJrICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIGZp bmlzaCAoKTsKKysJCXB1YmxpYyB2b2lkIGZsdXNoICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIGZydXN0dW0gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0 LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCitAQCAtNDk1LDIyICszNzYsMTggQEAgbmFtZXNw YWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIGludCBn ZXRfYmx1ZV9iaXRzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGlj IENvZ2wuQ29sb3JNYXNrIGdldF9jb2xvcl9tYXNrICgpOworKwkJcHVibGljIHVub3duZWQgQ29n bC5Db250ZXh0IGdldF9jb250ZXh0ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQor IAkJcHVibGljIGludCBnZXRfZGVwdGhfYml0cyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjE0IildCistCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X2RlcHRoX3RleHR1cmUg KCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBn ZXRfZGVwdGhfdGV4dHVyZV9lbmFibGVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgi KV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2RlcHRoX3dyaXRlX2VuYWJsZWQgKCk7CisrCQlw dWJsaWMgYm9vbCBnZXRfZGVwdGhfd3JpdGVfZW5hYmxlZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2RpdGhlcl9lbmFibGVkICgpOwor KwkJcHVibGljIGJvb2wgZ2V0X2RpdGhlcl9lbmFibGVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuOCIpXQorIAkJcHVibGljIGludCBnZXRfZ3JlZW5fYml0cyAoKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2hlaWdodCAoKTsKKy0JCXB1Ymxp YyBDb2dsLkJvb2wgZ2V0X2lzX3N0ZXJlbyAoKTsKKysJCXB1YmxpYyBib29sIGdldF9pc19zdGVy ZW8gKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIENvZ2wuTWF0 cml4IGdldF9tb2RlbHZpZXdfbWF0cml4ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KK0BAIC01NDcsMTIgKzQyNCwxMyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgdm9p ZCBwdXNoX21hdHJpeCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJs aWMgdm9pZCBwdXNoX3JlY3RhbmdsZV9jbGlwIChmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQg eF8yLCBmbG9hdCB5XzIpOworKwkJcHVibGljIHZvaWQgcHVzaF9yZWdpb25fY2xpcCAoQ2Fpcm8u UmVnaW9uIHJlZ2lvbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGlj IHZvaWQgcHVzaF9zY2lzc29yX2NsaXAgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVp Z2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgQ29nbC5Cb29s IHJlYWRfcGl4ZWxzIChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29nbC5Q aXhlbEZvcm1hdCBmb3JtYXQsIHVpbnQ4IHBpeGVscyk7CisrCQlwdWJsaWMgYm9vbCByZWFkX3Bp eGVscyAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIENvZ2wuUGl4ZWxGb3Jt YXQgZm9ybWF0LCB1aW50OCBwaXhlbHMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K Ky0JCXB1YmxpYyBDb2dsLkJvb2wgcmVhZF9waXhlbHNfaW50b19iaXRtYXAgKGludCB4LCBpbnQg eSwgQ29nbC5SZWFkUGl4ZWxzRmxhZ3Mgc291cmNlLCBDb2dsLkJpdG1hcCBiaXRtYXApOworKwkJ cHVibGljIGJvb2wgcmVhZF9waXhlbHNfaW50b19iaXRtYXAgKGludCB4LCBpbnQgeSwgQ29nbC5S ZWFkUGl4ZWxzRmxhZ3Mgc291cmNlLCBDb2dsLkJpdG1hcCBiaXRtYXApOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZvaWQgcmVzb2x2ZV9zYW1wbGVzICgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorQEAgLTU2MCwxOSArNDM4LDEzIEBAIG5hbWVzcGFj ZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBy b3RhdGUgKGZsb2F0IGFuZ2xlLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHJvdGF0ZV9ldWxlciAoQ29nbC5F dWxlciBldWxlcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9p ZCByb3RhdGVfcXVhdGVybmlvbiAoQ29nbC5RdWF0ZXJuaW9uIHF1YXRlcm5pb24pOworKwkJcHVi bGljIHZvaWQgcm90YXRlX2V1bGVyIChHcmFwaGVuZS5FdWxlciBldWxlcik7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IHgsIGZsb2F0 IHksIGZsb2F0IHopOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZv aWQgc2V0X2NvbG9yX21hc2sgKENvZ2wuQ29sb3JNYXNrIGNvbG9yX21hc2spOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kZXB0aF90ZXh0dXJlX2Vu YWJsZWQgKENvZ2wuQm9vbCBlbmFibGVkKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4Iild CistCQlwdWJsaWMgdm9pZCBzZXRfZGVwdGhfd3JpdGVfZW5hYmxlZCAoQ29nbC5Cb29sIGRlcHRo X3dyaXRlX2VuYWJsZWQpOworKwkJcHVibGljIHZvaWQgc2V0X2RlcHRoX3dyaXRlX2VuYWJsZWQg KGJvb2wgZGVwdGhfd3JpdGVfZW5hYmxlZCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44Iild CistCQlwdWJsaWMgdm9pZCBzZXRfZGl0aGVyX2VuYWJsZWQgKENvZ2wuQm9vbCBkaXRoZXJfZW5h YmxlZCk7CisrCQlwdWJsaWMgdm9pZCBzZXRfZGl0aGVyX2VuYWJsZWQgKGJvb2wgZGl0aGVyX2Vu YWJsZWQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHNl dF9tb2RlbHZpZXdfbWF0cml4IChDb2dsLk1hdHJpeCBtYXRyaXgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KK0BAIC01ODgsNiArNDYwLDM5IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCB0cmFuc2xhdGUgKGZs b2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF90ZXh0dXJlX2dldF9ndHlwZSAoKSIp XQorKwlwdWJsaWMgaW50ZXJmYWNlIFRleHR1cmUgOiBDb2dsLk9iamVjdCB7CisrCQlwdWJsaWMg Ym9vbCBhbGxvY2F0ZSAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyBzdGF0aWMgdWlu dDMyIGVycm9yX3F1YXJrICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKysJCXB1 YmxpYyBDb2dsLlRleHR1cmVDb21wb25lbnRzIGdldF9jb21wb25lbnRzICgpOworKwkJcHVibGlj IGludCBnZXRfZGF0YSAoQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIHVpbnQgcm93c3RyaWRlLCBb Q0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gdWludDhbXT8gZGF0YSk7CisrCQlwdWJsaWMg Ym9vbCBnZXRfZ2xfdGV4dHVyZSAob3V0IHVpbnQgb3V0X2dsX2hhbmRsZSwgb3V0IHVpbnQgb3V0 X2dsX3RhcmdldCk7CisrCQlwdWJsaWMgdWludCBnZXRfaGVpZ2h0ICgpOworKwkJcHVibGljIGlu dCBnZXRfbWF4X3dhc3RlICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKysJCXB1 YmxpYyBib29sIGdldF9wcmVtdWx0aXBsaWVkICgpOworKwkJcHVibGljIHVpbnQgZ2V0X3dpZHRo ICgpOworKwkJcHVibGljIGJvb2wgaXNfc2xpY2VkICgpOworKwkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIxLjAiKV0KKysJ CXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIG5ld19mcm9tX2JpdG1hcCAoQ29nbC5CaXRtYXAg Yml0bWFwLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5h bF9mb3JtYXQpOworKwkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKysJCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0 dXJlIG5ld19mcm9tX2RhdGEgKGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxh Z3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCBDb2dsLlBpeGVsRm9ybWF0IGludGVy bmFsX2Zvcm1hdCwgaW50IHJvd3N0cmlkZSwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSld IHVpbnQ4W10gZGF0YSk7CisrCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorKwkJcHVibGljIHN0YXRpYyBDb2ds LlRleHR1cmUgbmV3X2Zyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lLCBDb2dsLlRleHR1cmVGbGFn cyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpIHRocm93cyBHTGliLkVy cm9yOworKwkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTgiLCBzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBDb2dsLlRleHR1cmUgbmV3X2Zyb21f c3ViX3RleHR1cmUgKGludCBzdWJfeCwgaW50IHN1Yl95LCBpbnQgc3ViX3dpZHRoLCBpbnQgc3Vi X2hlaWdodCk7CisrCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorKwkJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1 cmUgbmV3X3dpdGhfc2l6ZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQsIENvZ2wuVGV4dHVyZUZs YWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xOCIpXQorKwkJcHVibGljIHZvaWQgc2V0X2NvbXBvbmVudHMgKENvZ2wu VGV4dHVyZUNvbXBvbmVudHMgY29tcG9uZW50cyk7CisrCQlwdWJsaWMgYm9vbCBzZXRfZGF0YSAo Q29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIGludCByb3dzdHJpZGUsIFtDQ29kZSAoYXJyYXlfbGVu Z3RoID0gZmFsc2UpXSB1aW50OFtdIGRhdGEsIGludCBsZXZlbCkgdGhyb3dzIEdMaWIuRXJyb3I7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorKwkJcHVibGljIHZvaWQgc2V0X3ByZW11 bHRpcGxpZWQgKGJvb2wgcHJlbXVsdGlwbGllZCk7CisrCQlwdWJsaWMgYm9vbCBzZXRfcmVnaW9u IChpbnQgc3JjX3gsIGludCBzcmNfeSwgaW50IGRzdF94LCBpbnQgZHN0X3ksIHVpbnQgZHN0X3dp ZHRoLCB1aW50IGRzdF9oZWlnaHQsIGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29nbC5QaXhlbEZv cm1hdCBmb3JtYXQsIHVpbnQgcm93c3RyaWRlLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNl KV0gdWludDhbXSBkYXRhKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKysJCXB1Ymxp YyBib29sIHNldF9yZWdpb25fZnJvbV9iaXRtYXAgKGludCBzcmNfeCwgaW50IHNyY195LCBpbnQg ZHN0X3gsIGludCBkc3RfeSwgdWludCBkc3Rfd2lkdGgsIHVpbnQgZHN0X2hlaWdodCwgQ29nbC5C aXRtYXAgYml0bWFwKTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKyAJW1NpbXBsZVR5cGVdCisgCXB1YmxpYyBzdHJ1Y3QgQW5nbGUgOiBpbnQzMiB7 CitAQCAtNjM1LDEwICs1NDAsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgdm9pZCBz ZXRfYmx1ZV9ieXRlICh1aW50OCBibHVlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0K KyAJCXB1YmxpYyB2b2lkIHNldF9ibHVlX2Zsb2F0IChmbG9hdCBibHVlKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjQiLCBzaW5jZSA9ICIx LjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9mcm9tXzRmIChmbG9hdCByZWQsIGZsb2F0IGdyZWVu LCBmbG9hdCBibHVlLCBmbG9hdCBhbHBoYSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS40Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMg dm9pZCBzZXRfZnJvbV80dWIgKHVpbnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVp bnQ4IGFscGhhKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lk IHNldF9ncmVlbiAoZmxvYXQgZ3JlZW4pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQor QEAgLTY2Miw3ICs1NjMsNyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgd2VhayBzdHJp bmcgbmFtZTsKKyAJCXB1YmxpYyB1bG9uZyBpbnN0YW5jZV9jb3VudDsKKyAJfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gIkNPR0xfVFlQRV9N QVRSSVgiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29w eV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJl ZSIsIHR5cGVfaWQgPSAiQ09HTF9UWVBFX01BVFJJWCIpXQorIAlwdWJsaWMgc3RydWN0IE1hdHJp eCB7CisgCQlwdWJsaWMgZmxvYXQgeHg7CisgCQlwdWJsaWMgZmxvYXQgeXg7CitAQCAtNjg5LDMy ICs1OTAsMjcgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIHZvaWQgZnJ1c3R1bSAoZmxv YXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCB6X25l YXIsIGZsb2F0IHpfZmFyKTsKKyAJCXB1YmxpYyB1bm93bmVkIGZsb2F0W10gZ2V0X2FycmF5ICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRf aW52ZXJzZSAob3V0IENvZ2wuTWF0cml4IGludmVyc2UpOworKwkJcHVibGljIGJvb2wgZ2V0X2lu dmVyc2UgKG91dCBDb2dsLk1hdHJpeCBpbnZlcnNlKTsKKyAJCVtDQ29kZSAoY25hbWUgPSAiY29n bF9tYXRyaXhfaW5pdF9pZGVudGl0eSIpXQorIAkJcHVibGljIE1hdHJpeC5pZGVudGl0eSAoKTsK Ky0JCXB1YmxpYyB2b2lkIGluaXRfZnJvbV9ldWxlciAoQ29nbC5FdWxlciBldWxlcik7CistCQlw dWJsaWMgdm9pZCBpbml0X2Zyb21fcXVhdGVybmlvbiAoQ29nbC5RdWF0ZXJuaW9uIHF1YXRlcm5p b24pOworKwkJcHVibGljIHZvaWQgaW5pdF9mcm9tX2V1bGVyIChHcmFwaGVuZS5FdWxlciBldWxl cik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBpbml0X3Ry YW5zbGF0aW9uIChmbG9hdCB0eCwgZmxvYXQgdHksIGZsb2F0IHR6KTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgaXNfaWRlbnRpdHkgKCk7CisrCQlw dWJsaWMgYm9vbCBpc19pZGVudGl0eSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0K KyAJCXB1YmxpYyB2b2lkIGxvb2tfYXQgKGZsb2F0IGV5ZV9wb3NpdGlvbl94LCBmbG9hdCBleWVf cG9zaXRpb25feSwgZmxvYXQgZXllX3Bvc2l0aW9uX3osIGZsb2F0IG9iamVjdF94LCBmbG9hdCBv YmplY3RfeSwgZmxvYXQgb2JqZWN0X3osIGZsb2F0IHdvcmxkX3VwX3gsIGZsb2F0IHdvcmxkX3Vw X3ksIGZsb2F0IHdvcmxkX3VwX3opOworIAkJW0NDb2RlIChjbmFtZSA9ICJjb2dsX21hdHJpeF9t dWx0aXBseSIpXQorIAkJcHVibGljIE1hdHJpeC5tdWx0aXBseSAoQ29nbC5NYXRyaXggYSwgQ29n bC5NYXRyaXggYik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgb3J0aG8gKGZsb2F0IGxlZnQsIGZsb2F0 IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBvcnRob2dyYXBo aWMgKGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMiwgZmxvYXQgbmVh ciwgZmxvYXQgZmFyKTsKKyAJCXB1YmxpYyB2b2lkIHBlcnNwZWN0aXZlIChmbG9hdCBmb3ZfeSwg ZmxvYXQgYXNwZWN0LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKyAJCXB1YmxpYyB2b2lk IHByb2plY3RfcG9pbnRzIChpbnQgbl9jb21wb25lbnRzLCBzaXplX3Qgc3RyaWRlX2luLCB2b2lk KiBwb2ludHNfaW4sIHNpemVfdCBzdHJpZGVfb3V0LCB2b2lkKiBwb2ludHNfb3V0LCBpbnQgbl9w b2ludHMpOworIAkJcHVibGljIHZvaWQgcm90YXRlIChmbG9hdCBhbmdsZSwgZmxvYXQgeCwgZmxv YXQgeSwgZmxvYXQgeik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMg dm9pZCByb3RhdGVfZXVsZXIgKENvZ2wuRXVsZXIgZXVsZXIpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgcm90YXRlX3F1YXRlcm5pb24gKENvZ2wuUXVhdGVy bmlvbiBxdWF0ZXJuaW9uKTsKKysJCXB1YmxpYyB2b2lkIHJvdGF0ZV9ldWxlciAoR3JhcGhlbmUu RXVsZXIgZXVsZXIpOworIAkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IHN4LCBmbG9hdCBzeSwg ZmxvYXQgc3opOworLQkJcHVibGljIHZvaWQgdHJhbnNmb3JtX3BvaW50IChyZWYgZmxvYXQgeCwg cmVmIGZsb2F0IHksIHJlZiBmbG9hdCB6LCByZWYgZmxvYXQgdyk7CisrCQlwdWJsaWMgc3RhdGlj IHZvaWQgdHJhbnNmb3JtX3BvaW50IChyZWYgQ29nbC5NYXRyaXggbWF0cml4LCByZWYgZmxvYXQg eCwgcmVmIGZsb2F0IHksIHJlZiBmbG9hdCB6LCByZWYgZmxvYXQgdyk7CisgCQlwdWJsaWMgdm9p ZCB0cmFuc2Zvcm1fcG9pbnRzIChpbnQgbl9jb21wb25lbnRzLCBzaXplX3Qgc3RyaWRlX2luLCB2 b2lkKiBwb2ludHNfaW4sIHNpemVfdCBzdHJpZGVfb3V0LCB2b2lkKiBwb2ludHNfb3V0LCBpbnQg bl9wb2ludHMpOworIAkJcHVibGljIHZvaWQgdHJhbnNsYXRlIChmbG9hdCB4LCBmbG9hdCB5LCBm bG9hdCB6KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtODAxLDE2ICs2OTcs NiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlXSU5ET1dfQlVGRkVSLAorIAkJT0ZGU0NSRUVOX0JV RkZFUgorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNw cmVmaXggPSAiQ09HTF9DT0xPUl9NQVNLXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbRmxh Z3NdCistCXB1YmxpYyBlbnVtIENvbG9yTWFzayB7CistCQlOT05FLAorLQkJUkVELAorLQkJR1JF RU4sCistCQlCTFVFLAorLQkJQUxQSEEsCistCQlBTEwKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfREVQVEhfVEVTVF9GVU5D VElPTl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIGVudW0gRGVwdGhUZXN0RnVu Y3Rpb24geworIAkJTkVWRVIsCitAQCAtODIyLDQ2ICs3MDgsNDEgQEAgbmFtZXNwYWNlIENvZ2wg eworIAkJR0VRVUFMLAorIAkJQUxXQVlTCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZFQVRVUkVfIiwgaGFzX3R5cGVfaWQg PSBmYWxzZSldCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNw cmVmaXggPSAiQ09HTF9FR0xfSU1BR0VfRkxBR18iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJ W0ZsYWdzXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCistCXB1YmxpYyBlbnVtIEZlYXR1 cmVGbGFncyB7CistCQlURVhUVVJFX1JFQ1RBTkdMRSwKKy0JCVRFWFRVUkVfTlBPVCwKKy0JCVRF WFRVUkVfWVVWLAorLQkJVEVYVFVSRV9SRUFEX1BJWEVMUywKKy0JCVNIQURFUlNfR0xTTCwKKy0J CU9GRlNDUkVFTiwKKy0JCU9GRlNDUkVFTl9NVUxUSVNBTVBMRSwKKy0JCU9GRlNDUkVFTl9CTElU LAorLQkJRk9VUl9DTElQX1BMQU5FUywKKy0JCVNURU5DSUxfQlVGRkVSLAorLQkJVkJPUywKKy0J CVBCT1MsCistCQlVTlNJR05FRF9JTlRfSU5ESUNFUywKKy0JCURFUFRIX1JBTkdFLAorLQkJVEVY VFVSRV9OUE9UX0JBU0lDLAorLQkJVEVYVFVSRV9OUE9UX01JUE1BUCwKKy0JCVRFWFRVUkVfTlBP VF9SRVBFQVQsCistCQlQT0lOVF9TUFJJVEUsCistCQlURVhUVVJFXzNELAorLQkJTUFQX0JVRkZF Ul9GT1JfUkVBRCwKKy0JCU1BUF9CVUZGRVJfRk9SX1dSSVRFLAorLQkJT05TQ1JFRU5fTVVMVElQ TEUsCistCQlERVBUSF9URVhUVVJFCisrCXB1YmxpYyBlbnVtIEVnbEltYWdlRmxhZ3MgeworKwkJ Tk9ORSwKKysJCU5PX0dFVF9EQVRBCisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZFQVRVUkVfSURfIiwgaGFzX3R5cGVfaWQg PSBmYWxzZSldCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCXB1YmxpYyBlbnVtIEZl YXR1cmVJRCB7CisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9VTlNJR05FRF9J TlRfSU5ESUNFUyIpXQorKwkJT0dMX0ZFQVRVUkVfSURfVU5TSUdORURfSU5UX0lORElDRVMsCisr CQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9NQVBfQlVGRkVSX0ZPUl9SRUFEIild CisrCQlPR0xfRkVBVFVSRV9JRF9NQVBfQlVGRkVSX0ZPUl9SRUFELAorKwkJW0NDb2RlIChjbmFt ZSA9ICJDT0dMX0ZFQVRVUkVfSURfTUFQX0JVRkZFUl9GT1JfV1JJVEUiKV0KKysJCU9HTF9GRUFU VVJFX0lEX01BUF9CVUZGRVJfRk9SX1dSSVRFLAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZF QVRVUkVfSURfU1dBUF9CVUZGRVJTX0VWRU5UIildCisrCQlPR0xfRkVBVFVSRV9JRF9TV0FQX0JV RkZFUlNfRVZFTlQsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9QUkVTRU5U QVRJT05fVElNRSIpXQorKwkJT0dMX0ZFQVRVUkVfSURfUFJFU0VOVEFUSU9OX1RJTUUsCisrCQlb Q0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9GRU5DRSIpXQorKwkJT0dMX0ZFQVRVUkVf SURfRkVOQ0UsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9URVhUVVJFX1JH IildCisrCQlPR0xfRkVBVFVSRV9JRF9URVhUVVJFX1JHLAorKwkJW0NDb2RlIChjbmFtZSA9ICJD T0dMX0ZFQVRVUkVfSURfQlVGRkVSX0FHRSIpXQorKwkJT0dMX0ZFQVRVUkVfSURfQlVGRkVSX0FH RSwKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX1RFWFRVUkVfRUdMX0lNQUdF X0VYVEVSTkFMIildCisrCQlPR0xfRkVBVFVSRV9JRF9URVhUVVJFX0VHTF9JTUFHRV9FWFRFUk5B TCwKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX0JMSVRfRlJBTUVCVUZGRVIi KV0KKysJCU9HTF9GRUFUVVJFX0lEX0JMSVRfRlJBTUVCVUZGRVIKKyAJfQorIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRklMVEVSXyIs IGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgZW51bSBGaWx0ZXJSZXR1cm4geworIAkJ Q09OVElOVUUsCisgCQlSRU1PVkUKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRk9HX01PREVfIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGVudW0gRm9nTW9k ZSB7CistCQlMSU5FQVIsCistCQlFWFBPTkVOVElBTCwKKy0JCUVYUE9ORU5USUFMX1NRVUFSRUQK Ky0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4 ID0gIkNPR0xfRlJBTUVfRVZFTlRfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtWZXJzaW9u IChzaW5jZSA9ICIxLjE0IildCisgCXB1YmxpYyBlbnVtIEZyYW1lRXZlbnQgeworQEAgLTg3NCw2 ICs3NTUsMTQgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJRlJBTUVCVUZGRVJfRVJST1JfQUxMT0NB VEU7CisgCQlwdWJsaWMgc3RhdGljIHVpbnQzMiBxdWFyayAoKTsKKyAJfQorKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfR1JBUEhJQ1Nf UkVTRVRfU1RBVFVTXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlwdWJsaWMgZW51bSBHcmFw aGljc1Jlc2V0U3RhdHVzIHsKKysJCU5PX0VSUk9SLAorKwkJR1VJTFRZX0NPTlRFWFRfUkVTRVQs CisrCQlJTk5PQ0VOVF9DT05URVhUX1JFU0VULAorKwkJVU5LTk9XTl9DT05URVhUX1JFU0VULAor KwkJUFVSR0VEX0NPTlRFWFRfUkVTRVQKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfSU5ESUNFU19UWVBFX1VOU0lHTkVEXyIs IGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgZW51bSBJbmRpY2VzVHlwZSB7CisgCQlC WVRFLAorQEAgLTkwMCwxMiArNzg5LDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJTkVBUkVTVF9N SVBNQVBfTElORUFSLAorIAkJTElORUFSX01JUE1BUF9MSU5FQVIKKyAJfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfTUFURVJJQUxf TEFZRVJfVFlQRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorLQlwdWJsaWMgZW51bSBNYXRlcmlhbExheWVyVHlwZSB7CistCQlbQ0NvZGUgKGNu YW1lID0gIkNPR0xfTUFURVJJQUxfTEFZRVJfVFlQRV9URVhUVVJFIildCistCQlNQVRFUklBTF9M QVlFUl9UWVBFX1RFWFRVUkUKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfTUFURVJJQUxfV1JBUF9NT0RFXyIsIGhhc190eXBl X2lkID0gZmFsc2UpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBlbnVt IE1hdGVyaWFsV3JhcE1vZGUgeworQEAgLTk3MCw2ICs4NTMsMTAgQEAgbmFtZXNwYWNlIENvZ2wg eworIAkJQkdSQV8xMDEwMTAyLAorIAkJQVJHQl8yMTAxMDEwLAorIAkJQUJHUl8yMTAxMDEwLAor KwkJUkdCQV9GUF8xNjE2MTYxNiwKKysJCUJHUkFfRlBfMTYxNjE2MTYsCisrCQlBUkdCX0ZQXzE2 MTYxNjE2LAorKwkJQUJHUl9GUF8xNjE2MTYxNiwKKyAJCVJHQkFfODg4OF9QUkUsCisgCQlCR1JB Xzg4ODhfUFJFLAorIAkJQVJHQl84ODg4X1BSRSwKK0BAIC05ODAsOSArODY3LDE2IEBAIG5hbWVz cGFjZSBDb2dsIHsKKyAJCUJHUkFfMTAxMDEwMl9QUkUsCisgCQlBUkdCXzIxMDEwMTBfUFJFLAor IAkJQUJHUl8yMTAxMDEwX1BSRSwKKysJCVJHQkFfRlBfMTYxNjE2MTZfUFJFLAorKwkJQkdSQV9G UF8xNjE2MTYxNl9QUkUsCisrCQlBUkdCX0ZQXzE2MTYxNjE2X1BSRSwKKysJCUFCR1JfRlBfMTYx NjE2MTZfUFJFLAorIAkJREVQVEhfMTYsCisgCQlERVBUSF8zMiwKKy0JCURFUFRIXzI0X1NURU5D SUxfOAorKwkJREVQVEhfMjRfU1RFTkNJTF84OworKwkJcHVibGljIGludCBnZXRfYnl0ZXNfcGVy X3BpeGVsIChpbnQgcGxhbmUpOworKwkJcHVibGljIGludCBnZXRfbl9wbGFuZXMgKCk7CisrCQlw dWJsaWMgdW5vd25lZCBzdHJpbmcgdG9fc3RyaW5nICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9SRUFEX1BJWEVMU19D T0xPUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW0ZsYWdzXQorQEAgLTEwNDEsMTMgKzkz NSw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCU5PX1NMSUNJTkcsCisgCQlOT19BVExBUworIAl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAi Q09HTF9URVhUVVJFX1RZUEVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBlbnVtIFRleHR1cmVUeXBlIHsKKy0JCUAyRCwKKy0J CUAzRCwKKy0JCVJFQ1RBTkdMRQorLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9WRVJUSUNFU19NT0RFXyIsIGhhc190eXBlX2lk ID0gZmFsc2UpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBlbnVtIFZl cnRpY2VzTW9kZSB7CitAQCAtMTA2Nyw3ICs5NTQsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9X SU5TWVNfRkVBVFVSRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIGVudW0gV2lu c3lzRmVhdHVyZSB7CisgCQlNVUxUSVBMRV9PTlNDUkVFTiwKKy0JCVNXQVBfVEhST1RUTEUsCisg CQlWQkxBTktfQ09VTlRFUiwKKyAJCVZCTEFOS19XQUlULAorIAkJVEVYVFVSRV9GUk9NX1BJWE1B UCwKK0BAIC0xMDgyLDkgKzk2OCwxMiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisgCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJcHVibGljIGRlbGVnYXRlIHZvaWQgRGVidWdPYmpl Y3RGb3JlYWNoVHlwZUNhbGxiYWNrIChDb2dsLkRlYnVnT2JqZWN0VHlwZUluZm8gaW5mbyk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9 IDIuOSldCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCXB1YmxpYyBkZWxlZ2F0ZSBDb2dsLkJvb2wgTWF0 ZXJpYWxMYXllckNhbGxiYWNrIChDb2dsLk1hdGVyaWFsIG1hdGVyaWFsLCBpbnQgbGF5ZXJfaW5k ZXgpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5j ZV9wb3MgPSAxLjkpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMC4xMCIpXQorKwlwdWJsaWMgZGVs ZWdhdGUgdm9pZCBGZWF0dXJlQ2FsbGJhY2sgKENvZ2wuRmVhdHVyZUlEIGZlYXR1cmUpOworKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAz LjkpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorKwlwdWJsaWMgZGVsZWdhdGUgdm9p ZCBGcmFtZUNhbGxiYWNrIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuLCBDb2dsLkZyYW1lRXZlbnQg ZXZlbnQsIENvZ2wuRnJhbWVJbmZvIGluZm8pOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorIAlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xNiIpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBPbnNjcmVlbkRpcnR5Q2FsbGJhY2sg KENvZ2wuT25zY3JlZW4gb25zY3JlZW4sIENvZ2wuT25zY3JlZW5EaXJ0eUluZm8gaW5mbyk7CitA QCAtMTA5MiwxMiArOTgxLDEwIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBPbnNjcmVlblJlc2l6ZUNhbGxiYWNr IChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkp XQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBPbnNjcmVlblgxMU1hc2tDYWxsYmFjayAoQ29nbC5P bnNjcmVlbiBvbnNjcmVlbiwgdWludDMyIGV2ZW50X21hc2spOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorIAlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCistCXB1YmxpYyBkZWxlZ2F0ZSBDb2dsLkJvb2wgUGlwZWxpbmVM YXllckNhbGxiYWNrIChDb2dsLlBpcGVsaW5lIHBpcGVsaW5lLCBpbnQgbGF5ZXJfaW5kZXgpOwor KwlwdWJsaWMgZGVsZWdhdGUgYm9vbCBQaXBlbGluZUxheWVyQ2FsbGJhY2sgKENvZ2wuUGlwZWxp bmUgcGlwZWxpbmUsIGludCBsYXllcl9pbmRleCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCistCXB1YmxpYyBkZWxlZ2F0 ZSB2b2lkIFN3YXBCdWZmZXJzTm90aWZ5IChDb2dsLkZyYW1lYnVmZmVyIGZyYW1lYnVmZmVyKTsK KysJcHVibGljIGRlbGVnYXRlIGJvb2wgVGV4dHVyZTJERUdMSW1hZ2VFeHRlcm5hbEFsbG9jIChD b2dsLlRleHR1cmUyRCB0ZXhfMmQpIHRocm93cyBHTGliLkVycm9yOworIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdGFyZ2V0ID0gZmFsc2UpXQorIAlwdWJs aWMgZGVsZWdhdGUgdm9pZCBVc2VyRGF0YURlc3Ryb3lDYWxsYmFjayAodm9pZCogZGF0YSk7Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xf QUZJUlNUX0JJVCIpXQorQEAgLTExMDgsNiArOTk1LDggQEAgbmFtZXNwYWNlIENvZ2wgeworIAlw dWJsaWMgY29uc3QgaW50IEJHUl9CSVQ7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfREVQVEhfQklUIildCisgCXB1YmxpYyBjb25zdCBp bnQgREVQVEhfQklUOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi LCBjbmFtZSA9ICJDT0dMX1BJWEVMX0ZPUk1BVF9NQVhfUExBTkVTIildCisrCXB1YmxpYyBjb25z dCBpbnQgUElYRUxfRk9STUFUX01BWF9QTEFORVM7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfUFJFTVVMVF9CSVQiKV0KKyAJcHVibGlj IGNvbnN0IGludCBQUkVNVUxUX0JJVDsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9TVEVOQ0lMX0JJVCIpXQorQEAgLTExMTUsMjEgKzEw MDQsMTIgQEAgbmFtZXNwYWNlIENvZ2wgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX1RFWFRVUkVfTUFYX1dBU1RFIildCisgCXB1Ymxp YyBjb25zdCBpbnQgVEVYVFVSRV9NQVhfV0FTVEU7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgYmVnaW5fZ2wgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4yIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGNoZWNrX2V4dGVuc2lvbiAoc3RyaW5n IG5hbWUsIHN0cmluZyBleHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGNsZWFyIChDb2dsLkNvbG9yIGNvbG9y LCB1bG9uZyBidWZmZXJzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGNsdXR0ZXJfY2hlY2tfZXh0ZW5zaW9u X0NMVVRURVIgKHN0cmluZyBuYW1lLCBzdHJpbmcgZXh0KTsKKysJcHVibGljIHN0YXRpYyBib29s IGJsaXRfZnJhbWVidWZmZXIgKENvZ2wuRnJhbWVidWZmZXIgc3JjLCBDb2dsLkZyYW1lYnVmZmVy IGRlc3QsIGludCBzcmNfeCwgaW50IHNyY195LCBpbnQgZHN0X3gsIGludCBkc3RfeSwgaW50IHdp ZHRoLCBpbnQgaGVpZ2h0KSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGNsdXR0 ZXJfd2luc3lzX2hhc19mZWF0dXJlX0NMVVRURVIgKENvZ2wuV2luc3lzRmVhdHVyZSBmZWF0dXJl KTsKKysJcHVibGljIHN0YXRpYyBib29sIGNsdXR0ZXJfd2luc3lzX2hhc19mZWF0dXJlX0NMVVRU RVIgKENvZ2wuV2luc3lzRmVhdHVyZSBmZWF0dXJlKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVi bGljIHN0YXRpYyBDb2dsLkJvb2wgY29sb3JfZXF1YWwgKHZvaWQqIHYxLCB2b2lkKiB2Mik7Cisr CXB1YmxpYyBzdGF0aWMgYm9vbCBjb2xvcl9lcXVhbCAodm9pZCogdjEsIHZvaWQqIHYyKTsKKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChz aW5jZSA9ICIxLjE2IildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBjb2xvcl9pbml0X2Zyb21faHNs IChvdXQgQ29nbC5Db2xvciBjb2xvciwgZmxvYXQgaHVlLCBmbG9hdCBzYXR1cmF0aW9uLCBmbG9h dCBsdW1pbmFuY2UpOworQEAgLTExNDMsMjM0ICsxMDIzLDg3IEBAIG5hbWVzcGFjZSBDb2dsIHsK KyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgZGVidWdf b2JqZWN0X3ByaW50X2luc3RhbmNlcyAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBkaXNhYmxlX2ZvZyAoKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBlbmRfZ2wgKCk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9v bCBmZWF0dXJlc19hdmFpbGFibGUgKENvZ2wuRmVhdHVyZUZsYWdzIGZlYXR1cmVzKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIGZsdXNoICgpOworIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjguMiIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgZnJ1c3R1bSAoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0 IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKysJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKysJcHVibGljIHN0YXRpYyB2b2lkIGZvcmVhY2hfZmVhdHVy ZSAoQ29nbC5Db250ZXh0IGNvbnRleHQsIENvZ2wuRmVhdHVyZUNhbGxiYWNrIGNhbGxiYWNrKTsK KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1Ymxp YyBzdGF0aWMgQ29nbC5Cb29sIGdldF9iYWNrZmFjZV9jdWxsaW5nX2VuYWJsZWQgKCk7CisrCXB1 YmxpYyBzdGF0aWMgYm9vbCBnZXRfYmFja2ZhY2VfY3VsbGluZ19lbmFibGVkICgpOworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgZ2V0X2JpdG1hc2tzIChvdXQgaW50IHJlZCwgb3V0IGludCBncmVlbiwgb3V0IGludCBi bHVlLCBvdXQgaW50IGFscGhhKTsKKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKysJcHVi bGljIHN0YXRpYyBpbnQ2NCBnZXRfY2xvY2tfdGltZSAoQ29nbC5Db250ZXh0IGNvbnRleHQpOwor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGlj IHN0YXRpYyBDb2dsLkJvb2wgZ2V0X2RlcHRoX3Rlc3RfZW5hYmxlZCAoKTsKKysJcHVibGljIHN0 YXRpYyBib29sIGdldF9kZXB0aF90ZXN0X2VuYWJsZWQgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCist CXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDb2dsLkZyYW1lYnVmZmVyIGdldF9kcmF3X2ZyYW1lYnVm ZmVyICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBz aW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkZlYXR1cmVGbGFncyBnZXRfZmVh dHVyZXMgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIp XQorLQlwdWJsaWMgc3RhdGljIENvZ2wuTWF0cml4IGdldF9tb2RlbHZpZXdfbWF0cml4ICgpOwor KwlwdWJsaWMgc3RhdGljIENvZ2wuR3JhcGhpY3NSZXNldFN0YXR1cyBnZXRfZ3JhcGhpY3NfcmVz ZXRfc3RhdHVzIChDb2dsLkNvbnRleHQgY29udGV4dCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3RhdGlj IEdMaWIuT3B0aW9uR3JvdXAgZ2V0X29wdGlvbl9ncm91cCAoKTsKKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCXB1YmxpYyBzdGF0aWMgR0xpYi5DYWxsYmFj ayBnZXRfcHJvY19hZGRyZXNzIChzdHJpbmcgcyk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuTWF0cml4IGdldF9w cm9qZWN0aW9uX21hdHJpeCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCogZ2V0X3Nv dXJjZSAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIild CistCXB1YmxpYyBzdGF0aWMgdm9pZCBnZXRfdmlld3BvcnQgKFtDQ29kZSAoYXJyYXlfbGVuZ3Ro ID0gZmFsc2UpXSBvdXQgZmxvYXQgdls0XSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xOCIpXQorIAlwdWJsaWMgc3RhdGljIEdMaWIuVHlwZSBndHlwZV9tYXRy aXhfZ2V0X3R5cGUgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wu Qm9vbCBpc19mcmFtZWJ1ZmZlciAodm9pZCogb2JqZWN0KTsKKysJcHVibGljIHN0YXRpYyBib29s IGhhc19mZWF0dXJlIChDb2dsLkNvbnRleHQgY29udGV4dCwgQ29nbC5GZWF0dXJlSUQgZmVhdHVy ZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBpc19vbnNj cmVlbiAodm9pZCogb2JqZWN0KTsKKysJcHVibGljIHN0YXRpYyBib29sIGlzX2NvbnRleHQgKHZv aWQqIG9iamVjdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29s IGlzX3BpcGVsaW5lICh2b2lkKiBvYmplY3QpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIHN0YXRpYyBDb2ds LkJvb2wgaXNfdmVydGV4X2J1ZmZlcl9pbmRpY2VzIChDb2dsLkhhbmRsZSBoYW5kbGUpOworKwlw dWJsaWMgc3RhdGljIGJvb2wgaXNfZnJhbWVfaW5mbyAodm9pZCogb2JqZWN0KTsKKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjQiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgbWF0cml4X2VxdWFsICh2b2lkKiB2 MSwgdm9pZCogdjIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIG9ydGhvIChmbG9hdCBs ZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3AsIGZsb2F0IG5lYXIsIGZs b2F0IGZhcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcGVyc3BlY3RpdmUgKGZsb2F0IGZvdnksIGZsb2F0IGFz cGVjdCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCBwb2x5Z29uIChDb2dsLlRleHR1cmVWZXJ0ZXggdmVydGljZXMsIHVp bnQgbl92ZXJ0aWNlcywgQ29nbC5Cb29sIHVzZV9jb2xvcik7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcG9wX21h dHJpeCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwg c2luY2UgPSAiMS42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwb3Bfc291cmNlICgpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHB1c2hfbWF0cml4ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHB1 c2hfc291cmNlICh2b2lkKiBtYXRlcmlhbCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xlIChmbG9hdCB4 XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xlX3dpdGhfbXVsdGl0ZXh0dXJlX2Nvb3JkcyAo ZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB4MiwgZmxvYXQgeTIsIFtDQ29kZSAoYXJyYXlfbGVu Z3RoID0gZmFsc2UpXSBmbG9hdFtdIHRleF9jb29yZHMsIGludCB0ZXhfY29vcmRzX2xlbik7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGVfd2l0aF90ZXh0 dXJlX2Nvb3JkcyAoZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB4MiwgZmxvYXQgeTIsIGZsb2F0 IHR4MSwgZmxvYXQgdHkxLCBmbG9hdCB0eDIsIGZsb2F0IHR5Mik7CisrCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCisrCXB1YmxpYyBzdGF0aWMgYm9vbCBpc19mcmFtZWJ1ZmZlciAodm9pZCog b2JqZWN0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlY3Rhbmds ZXMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIHZlcnRzLCB1aW50IG5f cmVjdHMpOworKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwlwdWJsaWMgc3RhdGljIGJv b2wgaXNfb25zY3JlZW4gKHZvaWQqIG9iamVjdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC44LjYiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIHJlY3RhbmdsZXNfd2l0aF90ZXh0dXJlX2Nvb3JkcyAoW0NDb2RlIChh cnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0W10gdmVydHMsIHVpbnQgbl9yZWN0cyk7CisrCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKysJcHVibGljIHN0YXRpYyBib29sIGlzX3BpcGVsaW5l ICh2b2lkKiBvYmplY3QpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJvdGF0ZSAoZmxvYXQgYW5nbGUsIGZsb2F0 IHgsIGZsb2F0IHksIGZsb2F0IHopOworKwlwdWJsaWMgc3RhdGljIGJvb2wgaXNfdGV4dHVyZV8y ZCAodm9pZCogb2JqZWN0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzY2FsZSAoZmxvYXQgeCwgZmxvYXQgeSwg ZmxvYXQgeik7CisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCXB1YmxpYyBzdGF0aWMg Ym9vbCBpc190ZXh0dXJlXzJkX3NsaWNlZCAodm9pZCogb2JqZWN0KTsKKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBz ZXRfYmFja2ZhY2VfY3VsbGluZ19lbmFibGVkIChDb2dsLkJvb2wgc2V0dGluZyk7CisrCVtWZXJz aW9uIChzaW5jZSA9ICIxLjQiKV0KKysJcHVibGljIHN0YXRpYyBib29sIG1hdHJpeF9lcXVhbCAo dm9pZCogdjEsIHZvaWQqIHYyKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfZGVwdGhfdGVzdF9lbmFibGVk IChDb2dsLkJvb2wgc2V0dGluZyk7CisrCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfYmFja2ZhY2Vf Y3VsbGluZ19lbmFibGVkIChib29sIHNldHRpbmcpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9mb2cgKENv Z2wuQ29sb3IgZm9nX2NvbG9yLCBDb2dsLkZvZ01vZGUgbW9kZSwgZmxvYXQgZGVuc2l0eSwgZmxv YXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CisrCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfZGVwdGhf dGVzdF9lbmFibGVkIChib29sIHNldHRpbmcpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9tb2RlbHZpZXdf bWF0cml4IChDb2dsLk1hdHJpeCBtYXRyaXgpOworKwlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3Ry YWNpbmdfZGlzYWJsZWRfb25fdGhyZWFkICh2b2lkKiBkYXRhKTsKKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRf cHJvamVjdGlvbl9tYXRyaXggKENvZ2wuTWF0cml4IG1hdHJpeCk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgc2V0X3NvdXJjZSAodm9pZCogbWF0ZXJpYWwpOworKwlwdWJsaWMgc3RhdGlj IHZvaWQgc2V0X3RyYWNpbmdfZW5hYmxlZF9vbl90aHJlYWQgKHZvaWQqIGRhdGEsIHN0cmluZyBn cm91cCwgc3RyaW5nIGZpbGVuYW1lKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRf c291cmNlX2NvbG9yIChDb2dsLkNvbG9yIGNvbG9yKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMg dm9pZCBzZXRfc291cmNlX2NvbG9yNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJs dWUsIGZsb2F0IGFscGhhKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNl X2NvbG9yNHViICh1aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVlLCB1aW50OCBhbHBo YSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNl ID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3NvdXJjZV90ZXh0dXJlIChDb2ds LlRleHR1cmUgdGV4dHVyZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS44Iiwgc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfdmlld3Bv cnQgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBz aGFkZXJfY29tcGlsZSAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgc3RyaW5nIHNoYWRl cl9nZXRfaW5mb19sb2cgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CisrCXB1YmxpYyBzdGF0aWMgdm9p ZCBzZXRfdHJhY2luZ19lbmFibGVkX29uX3RocmVhZF93aXRoX2ZkICh2b2lkKiBkYXRhLCBzdHJp bmcgZ3JvdXAsIGludCBmZCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIpXQorIAlwdWJsaWMgc3RhdGljIENvZ2wuU2hhZGVyVHlwZSBzaGFkZXJfZ2V0X3R5 cGUgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBzaGFkZXJfaXNfY29t cGlsZWQgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ29nbC5IYW5kbGUg c2hhZGVyX3JlZiAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBzaGFkZXJfc291 cmNlIChDb2dsLkhhbmRsZSBzaGFkZXIsIHN0cmluZyBzb3VyY2UpOworIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNo YWRlcl91bnJlZiAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBzdGF0aWMg Q29nbC5UZXh0dXJlIHRleHR1cmVfbmV3X2Zyb21fYml0bWFwIChDb2dsLkJpdG1hcCBiaXRtYXAs IENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1h dCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNl ID0gIjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJlX25ld19mcm9t X2RhdGEgKGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENv Z2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCwg aW50IHJvd3N0cmlkZSwgdWludDggZGF0YSk7CisrCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJl IHRleHR1cmVfbmV3X2Zyb21fZGF0YSAoaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBDb2dsLlRleHR1 cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIENvZ2wuUGl4ZWxGb3JtYXQg aW50ZXJuYWxfZm9ybWF0LCBpbnQgcm93c3RyaWRlLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZh bHNlKV0gdWludDhbXSBkYXRhKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCisgCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJl IHRleHR1cmVfbmV3X2Zyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lLCBDb2dsLlRleHR1cmVGbGFn cyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpIHRocm93cyBHTGliLkVy cm9yOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5j ZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgdGV4dHVyZV9uZXdfZnJv bV9mb3JlaWduICh1aW50IGdsX2hhbmRsZSwgdWludCBnbF90YXJnZXQsIHVpbnQgd2lkdGgsIHVp bnQgaGVpZ2h0LCB1aW50IHhfcG90X3dhc3RlLCB1aW50IHlfcG90X3dhc3RlLCBDb2dsLlBpeGVs Rm9ybWF0IGZvcm1hdCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xOCIsIHNpbmNlID0gIjAuOCIpXQorIAlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0 dXJlX25ld193aXRoX3NpemUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVG bGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOworIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjQiKV0KKy0J cHVibGljIHN0YXRpYyB2b2lkIHRyYW5zZm9ybSAoQ29nbC5NYXRyaXggbWF0cml4KTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCB0cmFuc2xhdGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIHZlcnRleF9idWZmZXJfYWRkIChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0cmluZyBhdHRyaWJ1 dGVfbmFtZSwgdWludDggbl9jb21wb25lbnRzLCBDb2dsLkF0dHJpYnV0ZVR5cGUgdHlwZSwgQ29n bC5Cb29sIG5vcm1hbGl6ZWQsIHVpbnQxNiBzdHJpZGUsIHZvaWQqIHBvaW50ZXIpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIHZlcnRleF9idWZmZXJfZGVsZXRlIChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0cmluZyBh dHRyaWJ1dGVfbmFtZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9kaXNhYmxlIChDb2ds LkhhbmRsZSBoYW5kbGUsIHN0cmluZyBhdHRyaWJ1dGVfbmFtZSk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVy dGV4X2J1ZmZlcl9kcmF3IChDb2dsLkhhbmRsZSBoYW5kbGUsIENvZ2wuVmVydGljZXNNb2RlIG1v ZGUsIGludCBmaXJzdCwgaW50IGNvdW50KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2Ry YXdfZWxlbWVudHMgKENvZ2wuSGFuZGxlIGhhbmRsZSwgQ29nbC5WZXJ0aWNlc01vZGUgbW9kZSwg Q29nbC5IYW5kbGUgaW5kaWNlcywgaW50IG1pbl9pbmRleCwgaW50IG1heF9pbmRleCwgaW50IGlu ZGljZXNfb2Zmc2V0LCBpbnQgY291bnQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfZW5h YmxlIChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0cmluZyBhdHRyaWJ1dGVfbmFtZSk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGlj IHVpbnQgdmVydGV4X2J1ZmZlcl9nZXRfbl92ZXJ0aWNlcyAoQ29nbC5IYW5kbGUgaGFuZGxlKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1Ymxp YyBzdGF0aWMgdW5vd25lZCBDb2dsLkhhbmRsZSB2ZXJ0ZXhfYnVmZmVyX2luZGljZXNfZ2V0X2Zv cl9xdWFkcyAodWludCBuX2luZGljZXMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkluZGljZXNUeXBlIHZlcnRl eF9idWZmZXJfaW5kaWNlc19nZXRfdHlwZSAoQ29nbC5IYW5kbGUgaW5kaWNlcyk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGlj IHVub3duZWQgQ29nbC5IYW5kbGUgdmVydGV4X2J1ZmZlcl9uZXcgKHVpbnQgbl92ZXJ0aWNlcyk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIildCistCXB1Ymxp YyBzdGF0aWMgdW5vd25lZCBDb2dsLkhhbmRsZSB2ZXJ0ZXhfYnVmZmVyX3JlZiAoQ29nbC5IYW5k bGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX3N1Ym1pdCAoQ29nbC5IYW5k bGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIi KV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfdW5yZWYgKENvZ2wuSGFuZGxl IGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwg c2luY2UgPSAiMC44LjIiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZpZXdwb3J0ICh1aW50IHdp ZHRoLCB1aW50IGhlaWdodCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlwdWJsaWMgc3RhdGljIHVpbnQzMiB4MTFfb25zY3JlZW5fZ2V0X3Zpc3VhbF94 aWQgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGlj IHN0YXRpYyB1aW50MzIgeDExX29uc2NyZWVuX2dldF93aW5kb3dfeGlkIChDb2dsLk9uc2NyZWVu IG9uc2NyZWVuKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHgxMV9v bnNjcmVlbl9zZXRfZm9yZWlnbl93aW5kb3dfeGlkIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuLCB1 aW50MzIgeGlkLCBbQ0NvZGUgKHNjb3BlID0gImFzeW5jIildIENvZ2wuT25zY3JlZW5YMTFNYXNr Q2FsbGJhY2sgdXBkYXRlKTsKKyB9CitkaWZmIC0tZ2l0IHZhcGkvcG9sa2l0LWdvYmplY3QtMS52 YXBpIHZhcGkvcG9sa2l0LWdvYmplY3QtMS52YXBpCitpbmRleCA5M2VmZjhhNS4uZmVkYzZhNGEg MTAwNjQ0CistLS0gdmFwaS9wb2xraXQtZ29iamVjdC0xLnZhcGkKKysrKyB2YXBpL3BvbGtpdC1n b2JqZWN0LTEudmFwaQorQEAgLTcsNyArNyw3IEBAIG5hbWVzcGFjZSBQb2xraXQgeworIAkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIEFjdGlv bkRlc2NyaXB0aW9uICgpOworIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9hY3Rpb25faWQg KCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2Fubm90YXRpb24gKHN0cmluZyBrZXkp OworKwkJcHVibGljIHVub3duZWQgc3RyaW5nPyBnZXRfYW5ub3RhdGlvbiAoc3RyaW5nIGtleSk7 CisgCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlLCBhcnJheV9udWxsX3Rlcm1pbmF0ZWQg PSB0cnVlKV0KKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZ1tdIGdldF9hbm5vdGF0aW9uX2tleXMg KCk7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2Rlc2NyaXB0aW9uICgpOworQEAgLTM0 LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFBvbGtpdCB7CisgCQlwdWJsaWMgUG9sa2l0LkF1dGhvcml0 eUZlYXR1cmVzIGdldF9iYWNrZW5kX2ZlYXR1cmVzICgpOworIAkJcHVibGljIHVub3duZWQgc3Ry aW5nIGdldF9iYWNrZW5kX25hbWUgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2Jh Y2tlbmRfdmVyc2lvbiAoKTsKKy0JCXB1YmxpYyBzdHJpbmcgZ2V0X293bmVyICgpOworKwkJcHVi bGljIHN0cmluZz8gZ2V0X293bmVyICgpOworIAkJcHVibGljIHN0YXRpYyBQb2xraXQuQXV0aG9y aXR5IGdldF9zeW5jIChHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSA9IG51bGwpIHRocm93 cyBHTGliLkVycm9yOworIAkJcHVibGljIGFzeW5jIGJvb2wgcmVnaXN0ZXJfYXV0aGVudGljYXRp b25fYWdlbnQgKFBvbGtpdC5TdWJqZWN0IHN1YmplY3QsIHN0cmluZyBsb2NhbGUsIHN0cmluZyBv YmplY3RfcGF0aCwgR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUpIHRocm93cyBHTGliLkVy cm9yOworIAkJcHVibGljIGJvb2wgcmVnaXN0ZXJfYXV0aGVudGljYXRpb25fYWdlbnRfc3luYyAo UG9sa2l0LlN1YmplY3Qgc3ViamVjdCwgc3RyaW5nIGxvY2FsZSwgc3RyaW5nIG9iamVjdF9wYXRo LCBHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSA9IG51bGwpIHRocm93cyBHTGliLkVycm9y OworQEAgLTU2LDIxICs1NiwyMiBAQCBuYW1lc3BhY2UgUG9sa2l0IHsKKyAJcHVibGljIGNsYXNz IEF1dGhvcml6YXRpb25SZXN1bHQgOiBHTGliLk9iamVjdCB7CisgCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwdWJsaWMgQXV0aG9yaXphdGlvblJlc3VsdCAo Ym9vbCBpc19hdXRob3JpemVkLCBib29sIGlzX2NoYWxsZW5nZSwgUG9sa2l0LkRldGFpbHM/IGRl dGFpbHMpOworLQkJcHVibGljIHVub3duZWQgUG9sa2l0LkRldGFpbHMgZ2V0X2RldGFpbHMgKCk7 CisrCQlwdWJsaWMgdW5vd25lZCBQb2xraXQuRGV0YWlscz8gZ2V0X2RldGFpbHMgKCk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMC4xMDEiKV0KKyAJCXB1YmxpYyBib29sIGdldF9kaXNtaXNzZWQg KCk7CisgCQlwdWJsaWMgYm9vbCBnZXRfaXNfYXV0aG9yaXplZCAoKTsKKyAJCXB1YmxpYyBib29s IGdldF9pc19jaGFsbGVuZ2UgKCk7CisgCQlwdWJsaWMgYm9vbCBnZXRfcmV0YWluc19hdXRob3Jp emF0aW9uICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF90ZW1wb3JhcnlfYXV0aG9y aXphdGlvbl9pZCAoKTsKKysJCXB1YmxpYyB1bm93bmVkIHN0cmluZz8gZ2V0X3RlbXBvcmFyeV9h dXRob3JpemF0aW9uX2lkICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJw b2xraXQvcG9sa2l0LmgiLCB0eXBlX2lkID0gInBvbGtpdF9kZXRhaWxzX2dldF90eXBlICgpIild CisgCXB1YmxpYyBjbGFzcyBEZXRhaWxzIDogR0xpYi5PYmplY3QgeworIAkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHVibGljIERldGFpbHMgKCk7CisgCQlb Q0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlLCBhcnJheV9udWxsX3Rlcm1pbmF0ZWQgPSB0cnVl KV0KKy0JCXB1YmxpYyBzdHJpbmdbXSBnZXRfa2V5cyAoKTsKKysJCXB1YmxpYyBzdHJpbmdbXT8g Z2V0X2tleXMgKCk7CisgCQlwdWJsaWMgdm9pZCBpbnNlcnQgKHN0cmluZyBrZXksIHN0cmluZz8g dmFsdWUpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGxvb2t1cCAoc3RyaW5nIGtleSk7Cisr CQlwdWJsaWMgdW5vd25lZCBzdHJpbmc/IGxvb2t1cCAoc3RyaW5nIGtleSk7CisgCX0KKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gInBvbGtpdC9wb2xraXQuaCIsIHR5cGVfaWQgPSAicG9s a2l0X3Blcm1pc3Npb25fZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIFBlcm1pc3Npb24g OiBHTGliLlBlcm1pc3Npb24sIEdMaWIuQXN5bmNJbml0YWJsZSwgR0xpYi5Jbml0YWJsZSB7CitA QCAtODgsNyArODksOCBAQCBuYW1lc3BhY2UgUG9sa2l0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBTeXN0ZW1CdXNOYW1lICgpOwor IAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9uYW1lICgpOworLQkJcHVibGljIFBvbGtpdC5T dWJqZWN0IGdldF9wcm9jZXNzX3N5bmMgKEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlID0g bnVsbCkgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgUG9sa2l0LlN1YmplY3Q/IGdldF9w cm9jZXNzX3N5bmMgKEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlID0gbnVsbCkgdGhyb3dz IEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgUG9sa2l0LlVuaXhVc2VyPyBnZXRfdXNlcl9zeW5jIChH TGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSA9IG51bGwpIHRocm93cyBHTGliLkVycm9yOwor IAkJcHVibGljIHN0YXRpYyBQb2xraXQuU3ViamVjdCBAbmV3IChzdHJpbmcgbmFtZSk7CisgCQlw dWJsaWMgdm9pZCBzZXRfbmFtZSAoc3RyaW5nIG5hbWUpOworIAkJcHVibGljIHN0cmluZyBuYW1l IHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CitAQCAtMTQ2LDkgKzE0OCwxMCBAQCBuYW1lc3BhY2Ug UG9sa2l0IHsKKyAJCXByb3RlY3RlZCBVbml4U2Vzc2lvbiAoKTsKKyAJCXB1YmxpYyB1bm93bmVk IHN0cmluZyBnZXRfc2Vzc2lvbl9pZCAoKTsKKyAJCXB1YmxpYyBzdGF0aWMgUG9sa2l0LlN1Ympl Y3QgQG5ldyAoc3RyaW5nIHNlc3Npb25faWQpOworLQkJcHVibGljIHN0YXRpYyBhc3luYyBQb2xr aXQuU3ViamVjdCBuZXdfZm9yX3Byb2Nlc3MgKGludCBwaWQsIEdMaWIuQ2FuY2VsbGFibGU/IGNh bmNlbGxhYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCXB1YmxpYyBzdGF0aWMgUG9sa2l0LlN1 YmplY3QgbmV3X2Zvcl9wcm9jZXNzX3N5bmMgKGludCBwaWQsIEdMaWIuQ2FuY2VsbGFibGU/IGNh bmNlbGxhYmxlID0gbnVsbCkgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgc3RhdGljIGFz eW5jIFBvbGtpdC5TdWJqZWN0PyBuZXdfZm9yX3Byb2Nlc3MgKGludCBwaWQsIEdMaWIuQ2FuY2Vs bGFibGU/IGNhbmNlbGxhYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyBzdGF0aWMg UG9sa2l0LlN1YmplY3Q/IG5ld19mb3JfcHJvY2Vzc19zeW5jIChpbnQgcGlkLCBHTGliLkNhbmNl bGxhYmxlPyBjYW5jZWxsYWJsZSA9IG51bGwpIHRocm93cyBHTGliLkVycm9yOworIAkJcHVibGlj IHZvaWQgc2V0X3Nlc3Npb25faWQgKHN0cmluZyBzZXNzaW9uX2lkKTsKKysJCVtOb0FjY2Vzc29y TWV0aG9kXQorIAkJcHVibGljIGludCBwaWQgeyBjb25zdHJ1Y3Q7IH0KKyAJCXB1YmxpYyBzdHJp bmcgc2Vzc2lvbl9pZCB7IGdldDsgc2V0IGNvbnN0cnVjdDsgfQorIAl9CitAQCAtMTU2LDE3ICsx NTksMTcgQEAgbmFtZXNwYWNlIFBvbGtpdCB7CisgCXB1YmxpYyBjbGFzcyBVbml4VXNlciA6IEdM aWIuT2JqZWN0LCBQb2xraXQuSWRlbnRpdHkgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFVuaXhVc2VyICgpOworLQkJcHVibGljIHVu b3duZWQgc3RyaW5nIGdldF9uYW1lICgpOworKwkJcHVibGljIHVub3duZWQgc3RyaW5nPyBnZXRf bmFtZSAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X3VpZCAoKTsKKyAJCXB1YmxpYyBzdGF0aWMgUG9s a2l0LklkZW50aXR5IEBuZXcgKGludCB1aWQpOworLQkJcHVibGljIHN0YXRpYyBQb2xraXQuSWRl bnRpdHkgbmV3X2Zvcl9uYW1lIChzdHJpbmcgbmFtZSkgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlw dWJsaWMgc3RhdGljIFBvbGtpdC5JZGVudGl0eT8gbmV3X2Zvcl9uYW1lIChzdHJpbmcgbmFtZSkg dGhyb3dzIEdMaWIuRXJyb3I7CisgCQlwdWJsaWMgdm9pZCBzZXRfdWlkIChpbnQgdWlkKTsKKyAJ CXB1YmxpYyBpbnQgdWlkIHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CisgCX0KKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gInBvbGtpdC9wb2xraXQuaCIsIHR5cGVfaWQgPSAicG9sa2l0X2lk ZW50aXR5X2dldF90eXBlICgpIildCisgCXB1YmxpYyBpbnRlcmZhY2UgSWRlbnRpdHkgOiBHTGli Lk9iamVjdCB7CisgCQlwdWJsaWMgYWJzdHJhY3QgYm9vbCBlcXVhbCAoUG9sa2l0LklkZW50aXR5 IGIpOworLQkJcHVibGljIHN0YXRpYyBQb2xraXQuSWRlbnRpdHkgZnJvbV9zdHJpbmcgKHN0cmlu ZyBzdHIpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIHN0YXRpYyBQb2xraXQuSWRlbnRp dHk/IGZyb21fc3RyaW5nIChzdHJpbmcgc3RyKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCXB1Ymxp YyBhYnN0cmFjdCB1aW50IGhhc2ggKCk7CisgCQlwdWJsaWMgYWJzdHJhY3Qgc3RyaW5nIHRvX3N0 cmluZyAoKTsKKyAJfQorQEAgLTIwMSw3ICsyMDQsNyBAQCBuYW1lc3BhY2UgUG9sa2l0IHsKKyAJ CUFETUlOSVNUUkFUT1JfQVVUSEVOVElDQVRJT05fUkVRVUlSRURfUkVUQUlORUQsCisgCQlBVVRI T1JJWkVEOworIAkJcHVibGljIHN0YXRpYyBib29sIGZyb21fc3RyaW5nIChzdHJpbmcgc3RyaW5n LCBQb2xraXQuSW1wbGljaXRBdXRob3JpemF0aW9uIG91dF9pbXBsaWNpdF9hdXRob3JpemF0aW9u KTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgdG9fc3RyaW5nIChQb2xraXQuSW1w bGljaXRBdXRob3JpemF0aW9uIGltcGxpY2l0X2F1dGhvcml6YXRpb24pOworKwkJcHVibGljIHVu b3duZWQgc3RyaW5nIHRvX3N0cmluZyAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAicG9sa2l0L3BvbGtpdC5oIiwgY3ByZWZpeCA9ICJQT0xLSVRfRVJST1JfIildCisgCXB1 YmxpYyBlcnJvcmRvbWFpbiBFcnJvciB7CitAQCAtMjEyLDcgKzIxNSw3IEBAIG5hbWVzcGFjZSBQ b2xraXQgeworIAkJcHVibGljIHN0YXRpYyBHTGliLlF1YXJrIHF1YXJrICgpOworIAl9CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJwb2xraXQvcG9sa2l0LmgiKV0KKy0JcHVibGljIHN0 YXRpYyBQb2xraXQuSWRlbnRpdHkgaWRlbnRpdHlfZnJvbV9zdHJpbmcgKHN0cmluZyBzdHIpIHRo cm93cyBHTGliLkVycm9yOworKwlwdWJsaWMgc3RhdGljIFBvbGtpdC5JZGVudGl0eT8gaWRlbnRp dHlfZnJvbV9zdHJpbmcgKHN0cmluZyBzdHIpIHRocm93cyBHTGliLkVycm9yOworIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAicG9sa2l0L3BvbGtpdC5oIildCisgCXB1YmxpYyBzdGF0aWMg UG9sa2l0LlN1YmplY3Qgc3ViamVjdF9mcm9tX3N0cmluZyAoc3RyaW5nIHN0cikgdGhyb3dzIEdM aWIuRXJyb3I7CisgfQorLS0gCisyLjI4LjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9idWRnaWUt ZGVza3RvcC90ZW1wbGF0ZSBiL3NyY3BrZ3MvYnVkZ2llLWRlc2t0b3AvdGVtcGxhdGUKaW5kZXgg YjMyZTc3MzRkM2IuLmFlNWE5ZDVmNzY5IDEwMDY0NAotLS0gYS9zcmNwa2dzL2J1ZGdpZS1kZXNr dG9wL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvYnVkZ2llLWRlc2t0b3AvdGVtcGxhdGUKQEAgLTEs NyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdidWRnaWUtZGVza3RvcCcKIHBrZ25hbWU9 YnVkZ2llLWRlc2t0b3AKIHZlcnNpb249MTAuNS4xCi1yZXZpc2lvbj0zCityZXZpc2lvbj00CiBi dWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPWdpcgogY29uZmlndXJlX2FyZ3M9Ii1Ed2l0 aC1ndGstZG9jPWZhbHNlIC1Ed2l0aC1kZXNrdG9wLWljb25zPW5vbmUiCg== --===============3773849876920196462==--