From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (qmail 31571 invoked from network); 17 Sep 2020 21:21:43 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 17 Sep 2020 21:21:43 -0000 Content-Type: multipart/mixed; boundary="===============2863029092095253798==" 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 23:21:42 +0200 List-Id: Message-ID: <20200917212142.Hy_9VeCYHxOvSFFdtnwNv1WYTt9arrNuik7Zv4D6eV4@z> GitHub notification mails are now in MIME to allow UTF8. --===============2863029092095253798== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgcTY2IGFnYWluc3QgbWFzdGVyIG9u IHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9xNjYvdm9p ZC1wYWNrYWdlcyBnbm9tZTMzOApodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBh Y2thZ2VzL3B1bGwvMjQyNjAKCmdub21lIDMuMzgKVGhpcyBzaG91bGQgbm93IGJlIG1vcmUgb3Ig bGVzcyByZWFkeS4gVGVzdGVkIG9uIGBhYXJjaDY0YCBhbmQgb24gYHBwYzY0bGUtbXVzbGAuIFNl dmVyYWwgInVuc3RhYmxlIiB2ZXJzaW9ucyB3ZXJlIHVzZWQsIHNpbmNlIDMuMzggc2hpcHBlZCB3 aXRoIHRoZW0gKGUuZy4gYGdub21lLW9ubGluZS1hY2NvdW50c2AsIGBnbm9tZS1jb250YWN0c2Ag YW5kIHRoZSBgZ25vbWUtZmxhc2hiYWNrYCBjb21wb25lbnRzKSwgc2hvdWxkbid0IGJlIGEgcHJh Y3RpY2FsIHByb2JsZW0gYW5kIHdlIGNhbiB1cGRhdGUgdGhlbSBsYXRlciBvbmNlIHRhZ2dlZC4N Cg0KIyBUT0RPDQoNCi0gW3hdIGNsZWFuIGl0IHVwDQotIFt4XSBiZXR0ZXIgdGVzdGluZywgbWFr ZSBzdXJlIHRlc3RzdWl0ZSBwYXNzZXMNCi0gW3hdIGltcG9ydCB0aGUgdXNlZnVsIGJpdHMgZnJv bSAjMjEzODIsIG9yIHJlYmFzZSBpZiBpdCBnZXRzIG1lcmdlZA0KLSBbIF0gbWFrZSBzdXJlIGNy b3NzYnVpbGRzIHdvcmsNCi0gW3hdIHRlc3Qgb24gbW9yZSBwbGF0Zm9ybXMNCi0gW3hdIGZpeCB0 aGUgbWV0YXBhY2thZ2VzICh0aGV5IGhhdmVuJ3QgYmVlbiB0b3VjaGVkLCBwb3NzaWJseSBpbiBo dHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMjI5MzYpDQot IH5+ZHJvcCB0aGUgYHZhbGFgIG9wdGlvbiBpbiB0aGUgcmVzdCBvZiB0aGUgcGFja2FnZXN+fiBw cm9iYWJseSBnb25uYSBkbyB0aGF0IG9uY2UgdGhpcyBQUiBpcyBtZXJnZWQNCg0KIyBTdGFibGUg dXBkYXRlcw0KDQotIFt4XSBtb3pqczc4IC0+IDc4LjIuMCAqKihuZXcpKioNCi0gW3hdIHllbHAt eHNsIC0+IDMuMzguMA0KLSBbeF0geWVscC10b29scyAtPiAzLjM4LjANCi0gW3hdIHllbHAgLT4g My4zOC4wDQotIFt4XSB2YWxhIC0+IDAuNTAuMA0KLSBbeF0gdmFsYWRvYyAtPiAwLjUwLjAgDQot IFt4XSB2YWxhYmluZCAtPiAocmV2YnVtcCkgDQotIFt4XSBkZXZoZWxwIC0+IDMuMzguMA0KLSBb eF0gZ2RsIC0+IDMuMzQuMA0KLSBbeF0gbGlic291cCAtPiAyLjcyLjANCi0gW3hdIGdyaWxvIC0+ IDAuMy4xMw0KLSBbeF0gZ3JpbG8tcGx1Z2lucyAtPiAwLjMuMTINCi0gW3hdIGd0a3NvdXJjZXZp ZXc0IC0+IDQuOC4wDQotIFt4XSB0ZXBsIC0+IDUuMC4wDQotIFt4XSBnbGFkZTMgLT4gMy4zOC4w DQotIFt4XSBsaWJoYW5keSAtPiAocmV2YnVtcCkNCi0gW3hdIGxpYmhhbmR5MSAtPiAxLjAuMA0K LSBbeF0gbGlieGZjZTR1aSAtPiAocmV2YnVtcCkNCi0gW3hdIGxpYmRhenpsZSAtPiAzLjM4LjAN Ci0gW3hdIGFuanV0YSAtPiAocmV2YnVtcCkNCi0gW3hdIHN5c3Byb2YgLT4gMy4zOC4wDQotIFt4 XSB0cmFja2VyIC0+IDIuMy42DQotIFt4XSB0cmFja2VyLW1pbmVycyAtPiAyLjMuNQ0KLSBbeF0g dHJhY2tlcjMgLT4gMy4wLjAgKioobmV3KSoqDQotIFt4XSB0cmFja2VyMy1taW5lcnMgLT4gMy4w LjAgKioobmV3KSoqDQotIFt4XSBiaWppYmVuIC0+IDMuMzYuMw0KLSBbeF0gZ3JhcGhlbmUgLT4g MS4xMC4yDQotIFt4XSBhbXRrIC0+IDUuMi4wDQotIFt4XSBpby5lbGVtZW50YXJ5LmNvZGUgLT4g KHJldmJ1bXApDQotIFt4XSBwaG9kYXYgLT4gMi41DQotIFt4XSBnc2V0dGluZ3MtZGVza3RvcC1z Y2hlbWFzIC0+IDMuMzguMA0KLSBbeF0gZ2xpYi1uZXR3b3JraW5nIC0+IDIuNjYuMA0KLSBbeF0g YXQtc3BpMi1jb3JlIC0+IDIuMzguMA0KLSBbeF0gYXQtc3BpMi1hdGsgLT4gMi4zOC4wDQotIFt4 XSBsaWJnd2VhdGhlciAtPiAzLjM2LjENCi0gW3hdIGdub21lLW1lbnVzIC0+IDMuMzYuMA0KLSBb eF0gZ25vbWUtZGVza3RvcCAtPiAzLjM4LjANCi0gW3hdIGdub21lLXNldHRpbmdzLWRhZW1vbiAt PiAzLjM4LjANCi0gW3hdIG11dHRlciAtPiAzLjM4LjANCi0gW3hdIGNoZWVzZSAtPiAzLjM4LjAN Ci0gW3hdIGV2b2x1dGlvbi1kYXRhLXNlcnZlciAtPiAzLjM4LjANCi0gW3hdIGZvbGtzIC0+IDAu MTQuMA0KLSBbeF0gZ25vbWUtb25saW5lLWFjY291bnRzIC0+IDMuMzcuOTANCi0gW3hdIGd2ZnMg LT4gMS40Ni4wDQotIFt4XSBnbm9tZS1jb250cm9sLWNlbnRlciAtPiAzLjM4LjANCi0gW3hdIGRj b25mLWVkaXRvciAtPiAzLjM4LjANCi0gW3hdIGdqcyAtPiAxLjY2LjANCi0gW3hdIGdub21lLXNo ZWxsIC0+IDMuMzguMA0KLSBbeF0gZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyAtPiAzLjM4LjANCi0g W3hdIGdkbSAtPiAzLjM4LjANCi0gW3hdIGdub21lLXNlc3Npb24gLT4gMy4zOC4wDQotIFt4XSBn bm9tZS1pbml0aWFsLXNldHVwIC0+IDMuMzguMA0KLSBbeF0geGRnLWRlc2t0b3AtcG9ydGFsLWd0 ayAtPiAxLjguMA0KLSBbeF0gbmF1dGlsdXMgLT4gMy4zOC4wDQotIFt4XSBnbm9tZS1tYXBzIC0+ IDMuMzguMA0KLSBbeF0gZXZvbHV0aW9uIC0+IDMuMzguMA0KLSBbeF0gZXZvbHV0aW9uLWV3cyAt PiAzLjM4LjANCi0gW3hdIHB5dGhvbjMtYXRzcGkgLT4gMi4zOC4wDQotIFt4XSBweXRob24tYXRz cGkgLT4gMi4zOC4wDQotIFt4XSBvcmNhIC0+IDMuMzguMA0KLSBbeF0gZ25vbWUtd2VhdGhlciAt PiAocmV2YnVtcCkNCi0gW3hdIHZ0ZTMgLT4gMC42Mi4wDQotIFt4XSBnbm9tZS10ZXJtaW5hbCAt PiAzLjM4LjANCi0gW3hdIGdub21lLWdldHRpbmctc3RhcnRlZC1kb2NzIC0+IDMuMzYuMg0KLSBb eF0gZ25vbWUtdXNlci1kb2NzIC0+IDMuMzguMA0KLSBbeF0gZ25vbWUtZXB1Yi10aHVtYm5haWxl ciAtPiAxLjYNCi0gW3hdIGdub21lLWJvb2tzIC0+IChyZXZidW1wKQ0KLSBbeF0gZ25vbWUtY2hh cmFjdGVycyAtPiAocmV2YnVtcCkNCi0gW3hdIGdub21lLWRvY3VtZW50cyAtPiAocmV2YnVtcCkN Ci0gW3hdIGdub21lLWZvbnQtdmlld2VyIC0+IChyZXZidW1wKQ0KLSBbeF0gdG90ZW0gLT4gMy4z OC4wDQotIFt4XSBnbm9tZS1zY3JlZW5zYXZlciAtPiAocmV2YnVtcCArIGJ1aWxkIGZpeCkNCi0g W3hdIGdub21lLWNsb2NrcyAtPiAzLjM4LjANCi0gW3hdIGVwaXBoYW55IC0+IDMuMzguMA0KLSBb eF0gZ25vbWUtY29udGFjdHMgLT4gMy4zNy4yDQotIFt4XSBnbm9tZS1waG90b3MgLT4gMy4zNy45 MS4xDQotIFt4XSBlb2cgLT4gMy4zOC4wDQotIFt4XSBldmluY2UgLT4gMy4zOC4wDQotIFt4XSBm aWxlLXJvbGxlciAtPiAzLjM4LjANCi0gW3hdIGdub21lLWNhbGVuZGFyIC0+IDMuMzguMA0KLSBb eF0gZ25vbWUtbXVzaWMgLT4gMy4zOC4wDQotIFt4XSBnZWRpdCAtPiAzLjM4LjANCi0gW3hdIGdl ZGl0LXBsdWdpbnMgLT4gMy4zOC4wDQotIFt4XSBnbm9tZS1sYXRleCAtPiAzLjM4LjANCi0gW3hd IGJhb2JhYiAtPiAzLjM4LjANCi0gW3hdIGdub21lLWJveGVzIC0+IDMuMzguMA0KLSBbeF0gZ25v bWUtY2FsY3VsYXRvciAtPiAzLjM4LjANCi0gW3hdIGdub21lLWRpc2stdXRpbGl0eSAtPiAzLjM4 LjANCi0gW3hdIGdub21lLXNjcmVlbnNob3QgLT4gMy4zOC4wDQotIFt4XSBnbm9tZS1zeXN0ZW0t bW9uaXRvciAtPiAzLjM4LjANCi0gW3hdIGFkd2FpdGEtaWNvbi10aGVtZSAtPiAzLjM4LjANCi0g W3hdIGdub21lLWJhY2tncm91bmRzIC0+IDMuMzguMA0KLSBbeF0gc2ltcGxlLXNjYW4gLT4gMy4z OC4wDQotIFt4XSByeWdlbCAtPiAwLjQwLjANCi0gW3hdIGdub21lLWJ1aWxkZXIgLT4gMy4zOC4w DQotIFt4XSByZXRyby1ndGsgLT4gMS4wLjANCi0gW3hdIGdub21lLWdhbWVzIC0+IDMuMzguMA0K LSBbeF0gZ25vbWUtcGFuZWwgLT4gMy4zNy4xDQotIFt4XSBtZXRhY2l0eSAtPiAzLjM3LjENCi0g W3hdIGdub21lLWZsYXNoYmFjayAtPiAzLjM3LjMNCi0gW3hdIGJ1ZGdpZS1kZXNrdG9wIC0+IChy ZWJ1aWxkKQ0KDQojIyBNZXJnZWQNCg0KLSBbeF0gbGlic2lnYysrMyAtPiAzLjAuMyAobmV3KQ0K LSBbeF0gbW0tY29tbW9uIC0+IDEuMC4xDQotIFt4XSBnbGlibW0gLT4gMi42NC4yDQotIFt4XSBw YW5nb21tIC0+IDIuNDIuMQ0KLSBbeF0gbGlibm90aWZ5IC0+IDAuNy45DQotIFt4XSBhdGsgLT4g Mi4zNi4wDQotIFt4XSBndGsrMyAtPiAzLjI0LjIyDQotIFt4XSBsaWJwb3J0YWwgLT4gMC4zIChu ZXcpDQotIFt4XSBjb2dsIC0+IDEuMjIuMjgNCi0gW3hdIGdlb2NvZGUtZ2xpYiAtPiAzLjI2LjIN Ci0gW3hdIGdmYmdyYXBoIC0+IDAuMi40DQotIFt4XSBsaWJnc2YgLT4gMS4xNC40Nw0KLSBbeF0g bGlic2VjcmV0IC0+IDAuMjAuMw0KLSBbeF0gbGliY2hhbXBsYWluIC0+IDAuMTIuMjANCi0gW3hd IGdvbSAtPiAwLjQNCi0gW3hdIGdzc2RwIC0+IDEuMi4zDQotIFt4XSBndGstdm5jIC0+IDEuMC4w IChkcm9wcyB1bnVzZWQgZ3RrMiBzdXBwb3J0KQ0KLSBbeF0gZ3VwbnAgLT4gMS4yLjQNCi0gW3hd IGdub21lLXZpZGVvLWVmZmVjdHMgLT4gMC41LjANCi0gW3hdIGdsaWIgLT4gMi42Ni4wDQotIFt4 XSB3ZWJraXQyZ3RrIC0+IDIuMzAuMA0KDQojIyBObyB1cGRhdGVzDQoNCi0gcG9sYXJpIChubyBu ZXdlciBzdGFibGUgdmVyc2lvbikNCi0gZ3RrNCAobm8gc3RhYmxlIHZlcnNpb24geWV0KQoKQSBw YXRjaCBmaWxlIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdl cy9wdWxsLzI0MjYwLnBhdGNoIGlzIGF0dGFjaGVk --===============2863029092095253798== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-gnome338-24260.patch" RnJvbSAzMTQ5ZmJmMjAyMTg1Nzk5OTE4NjU5ZGM1ODE3ZTI2ZDk2ZThmNTlmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4K RGF0ZTogVGh1LCAxNyBTZXAgMjAyMCAwMTo1NDoxNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDAx LzEwMl0geWVscC14c2w6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy95ZWxwLXhzbC90 ZW1wbGF0ZSB8IDUgKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDMgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy95ZWxwLXhzbC90ZW1wbGF0ZSBiL3NyY3Br Z3MveWVscC14c2wvdGVtcGxhdGUKaW5kZXggZjc0YTdmYmE2N2MuLjI2MDc5MmI1YmY1IDEwMDY0 NAotLS0gYS9zcmNwa2dzL3llbHAteHNsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MveWVscC14c2wv dGVtcGxhdGUKQEAgLTEsOCArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICd5ZWxwLXhzbCcK IHBrZ25hbWU9eWVscC14c2wKLXZlcnNpb249My4zNi4wCit2ZXJzaW9uPTMuMzguMAogcmV2aXNp b249MQotYXJjaHM9bm9hcmNoCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBob3N0bWFrZWRl cGVuZHM9InBrZy1jb25maWcgaW50bHRvb2wgaXRzdG9vbCBsaWJ4c2x0IgogbWFrZWRlcGVuZHM9 ImxpYnhzbHQtZGV2ZWwiCkBAIC0xMSw0ICsxMCw0IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5k IDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9t ZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9ZZWxwL1hzbCIKIGRpc3RmaWxlcz0i JHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNp b259LnRhci54eiIKLWNoZWNrc3VtPTRmZTUxYzAyMzNiNzlhNGMyMDRjNjg0OThkNDVmMDliMzQy YzMwZWQwMmM0ZTQxODUwNmMwZTM1ZjA5MDRlYzMKK2NoZWNrc3VtPTEzYmNjMjAxMWM0YzU1Mzg0 MTc0ZDE4YzdiMmYwMDE1YTk2YjA0ZWZkMjRmM2Y2NDZhZjJlNzE2N2U3YWIwZDcKCkZyb20gODY1 MTRjMmMzYmNkZDZjMTc5NjZjZTlkMTM5ZjNjNWJjOGIwYmI3OCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRo dSwgMTcgU2VwIDIwMjAgMDE6NTU6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDAwMi8xMDJdIHll bHAtdG9vbHM6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy95ZWxwLXRvb2xzL3RlbXBs YXRlIHwgNSArKy0tLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3llbHAtdG9vbHMvdGVtcGxhdGUgYi9zcmNwa2dz L3llbHAtdG9vbHMvdGVtcGxhdGUKaW5kZXggOWU4YTY3MGU2YjAuLjM1MDYxMGUzMzk3IDEwMDY0 NAotLS0gYS9zcmNwa2dzL3llbHAtdG9vbHMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy95ZWxwLXRv b2xzL3RlbXBsYXRlCkBAIC0xLDggKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAneWVscC10 b29scycKIHBrZ25hbWU9eWVscC10b29scwotdmVyc2lvbj0zLjMyLjIKK3ZlcnNpb249My4zOC4w CiByZXZpc2lvbj0xCi1hcmNocz1ub2FyY2gKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGhv c3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBpdHN0b29sIGxpYnhzbHQiCiBtYWtlZGVwZW5kcz0i eWVscC14c2wiCkBAIC0xMiw0ICsxMSw0IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0 b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9 Imh0dHA6Ly93d3cuZ25vbWUub3JnIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFt ZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09 MTgzODU2YjVlZDBiMGJiMmMwNWRkMTIwNGFmMDIzOTQ2ZWQ0MzY5NDNlMzVlNzg5YWZiMDI5NWU1 ZTcxZThmOQorY2hlY2tzdW09NjA3Y2U0YjNlZTg1MTdjNDJkYjkyNGEwMWE3ODY2MGEwMzMxNzU5 NWM3NTgyNTczMWVhODZhOTIwZTJiMDRiMAoKRnJvbSA3YjkzOWZjMGVkNGQxZjAyY2M3ZTdkZDc3 ZTUxN2EyYTAzOGI2MzRhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29s ZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxNyBTZXAgMjAyMCAwMTo1Mzow NCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDAzLzEwMl0geWVscDogdXBkYXRlIHRvIDMuMzguMAoK LS0tCiBzcmNwa2dzL3llbHAvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGlu c2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy95ZWxwL3Rl bXBsYXRlIGIvc3JjcGtncy95ZWxwL3RlbXBsYXRlCmluZGV4IDYzY2E3YzIyNWM4Li5kMTQxZDgw ZDQzNiAxMDA2NDQKLS0tIGEvc3JjcGtncy95ZWxwL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MveWVs cC90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3llbHAnCiBw a2duYW1lPXllbHAKLXZlcnNpb249My4zNi4wCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQog YnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogY29uZmlndXJlX2FyZ3M9Ii0tZGlzYWJsZS1zY2hl bWFzLWNvbXBpbGUgLS1kaXNhYmxlLXN0YXRpYyIKQEAgLTEzLDcgKzEzLDcgQEAgbWFpbnRhaW5l cj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAt b3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL1llbHAiCiBk aXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFt ZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1mZDRiM2UyM2QzMWFkMmJlYmU0MmFjOGY4 MDI0MmIyZDliZWY1MTQxOGJmNjJiNTlhY2RmMjQ0MGJkOTRlZDI0CitjaGVja3N1bT1kN2NkY2Uw ZTZkYmE1MTNiNGRmMTA5YzFmYTdlZmZjYmYwOGJiM2Y0ZDAwZDllNzkyYzdlZGYzNDU0NGY5NjU4 CiAKIHllbHAtZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSJ5ZWxwLSR7dmVyc2lvbn1fJHty ZXZpc2lvbn0iCgpGcm9tIGU2YTZkOTAzMzhmZjVhMWQyZmRkMzY1MDcwODg3MjVmYTY2NmI2Njcg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3Rh Zm9yZ2Uub3JnPgpEYXRlOiBXZWQsIDE2IFNlcCAyMDIwIDIwOjI5OjIxICswMjAwClN1YmplY3Q6 IFtQQVRDSCAwMDQvMTAyXSB2YWxhOiB1cGRhdGUgdG8gMC41MC4wCgotLS0KIGNvbW1vbi9zaGxp YnMgICAgICAgICB8ICAyICstCiBzcmNwa2dzL3ZhbGEvdGVtcGxhdGUgfCAxMCArKysrKy0tLS0t CiAyIGZpbGVzIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCBkZjgyMWVmYjE1MS4u ZWVkNjU0NTk1MGUgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGli cwpAQCAtMzE1Nyw3ICszMTU3LDcgQEAgbGlic3lzcHJvZi0zLnNvIHN5c3Byb2YtMy4zNC4wXzEK IGxpYnN5c3Byb2YtdWktMy5zbyBzeXNwcm9mLTMuMzQuMF8xCiBsaWJtb3pqcy01Mi5zbyBtb3pq czUyLTUyLjMuMF8xCiBsaWJtb3pqcy01Mi5zby4wIG1vempzNTItNTIuMy4wXzEKLWxpYnZhbGEt MC40OC5zby4wIGxpYnZhbGEtMC40OC4wXzEKK2xpYnZhbGEtMC41MC5zby4wIGxpYnZhbGEtMC41 MC4wXzEKIGxpYnZhbGFkb2MtMC40OC5zby4wIGxpYnZhbGFkb2MtMC40OC4wXzEKIGxpYnZhbGFj Y29kZWdlbi5zbyBsaWJ2YWxhLTAuNDQuMF8xCiBsaWJwaG9kYXYtMi4wLnNvLjAgcGhvZGF2LTIu Ml8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL3ZhbGEvdGVtcGxhdGUgYi9zcmNwa2dzL3ZhbGEvdGVt cGxhdGUKaW5kZXggZTk1ODgyNWYxOTYuLjYzMTBiZjQzY2NmIDEwMDY0NAotLS0gYS9zcmNwa2dz L3ZhbGEvdGVtcGxhdGUKKysrIGIvc3JjcGtncy92YWxhL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAndmFsYScKIHBrZ25hbWU9dmFsYQogIyBTaG91bGQgYmUg a2VwdCBpbiBzeW5jIHdpdGggJ3ZhbGFkb2MnIChzaGFyZWQgZGlzdGZpbGVzKQotdmVyc2lvbj0w LjQ4LjkKK3ZlcnNpb249MC41MC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1nbnUtY29uZmln dXJlCiBjb25maWd1cmVfYXJncz0iLS1kaXNhYmxlLXZhbGFkb2MiCkBAIC0xMiw5ICsxMiw5IEBA IHNob3J0X2Rlc2M9IkNvbXBpbGVyIGZvciB0aGUgR09iamVjdCB0eXBlIHN5c3RlbSIKIG1haW50 YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BM LTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3Rz L1ZhbGEiCi1jaGFuZ2Vsb2c9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS92YWxhL3Jh dy8wLjQ4L05FV1MiCitjaGFuZ2Vsb2c9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS92 YWxhL3Jhdy8wLjUwL05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vdmFsYS8ke3ZlcnNp b24lLip9L3ZhbGEtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT05Y2VhMTZkM2JiM2RhZGRi ZmUwNTU2Yjk5ZmJmYTA4MTQ2MjMwZGI3NjUxZTFlNjc0Y2QwOGI0ZGY1Y2VmZWE5CitjaGVja3N1 bT04MzhhZGM1MGFjMDg4ODFlMDZjZjIzM2ZlZmQ5Mzc0MGRlYzE1MzAzMTJjYzFjZjEyYzM2ZDRl MGU4N2QzMDcxCiBzaGxpYl9wcm92aWRlcz0ibGlidmFsYWNjb2RlZ2VuLnNvIgogCiBwb3N0X2lu c3RhbGwoKSB7CkBAIC0yMiw4ICsyMiw4IEBAIHBvc3RfaW5zdGFsbCgpIHsKIAkjIHNvIHRoZSBw YWNrYWdlIHRoYXQgdXNlIGl0IGZhbGwgaW50byBvdXIgd3JhcHBlci4KIAkjIGtlZXAgdGhlIGJp bmFyeSB2ZXJzaW9uZWQsIHdlIGRvbid0IGtub3cgdGhlIHBvdGVudGlhbAogCSMgZmFsbG91dCBm cm9tIHVzaW5nIHRoZSB1bnZlcnNpb25lZCBvbmUKLQl2c2VkIC1lICdzfF52YXBpZ2VuPS4qfHZh cGlnZW49dmFwaWdlbi0wLjQ4fGcnIFwKLQkJIC1pICR7REVTVERJUn0vdXNyL2xpYi9wa2djb25m aWcvdmFwaWdlbi0wLjQ4LnBjCisJdnNlZCAtZSAnc3xedmFwaWdlbj0uKnx2YXBpZ2VuPXZhcGln ZW4tMC41MHxnJyBcCisJCSAtaSAke0RFU1RESVJ9L3Vzci9saWIvcGtnY29uZmlnL3ZhcGlnZW4t MC41MC5wYwogfQogCiBsaWJ2YWxhX3BhY2thZ2UoKSB7CgpGcm9tIDAxMWZhNGFiYmQzOTZiZGQx ZTRmMmNlYzM2OTdiZGI4OTQ5MjhlYmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERh bmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBXZWQsIDE2IFNlcCAyMDIw IDIwOjMwOjMyICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMDUvMTAyXSB2YWxhZG9jOiB1cGRhdGUg dG8gMC41MC4wCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICB8IDIgKy0KIHNyY3BrZ3Mv dmFsYWRvYy90ZW1wbGF0ZSB8IDYgKysrLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9u cygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9u L3NobGlicwppbmRleCBlZWQ2NTQ1OTUwZS4uMjg0YTVkZGUxZDIgMTAwNjQ0Ci0tLSBhL2NvbW1v bi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtMzE1OCw3ICszMTU4LDcgQEAgbGlic3lz cHJvZi11aS0zLnNvIHN5c3Byb2YtMy4zNC4wXzEKIGxpYm1vempzLTUyLnNvIG1vempzNTItNTIu My4wXzEKIGxpYm1vempzLTUyLnNvLjAgbW96anM1Mi01Mi4zLjBfMQogbGlidmFsYS0wLjUwLnNv LjAgbGlidmFsYS0wLjUwLjBfMQotbGlidmFsYWRvYy0wLjQ4LnNvLjAgbGlidmFsYWRvYy0wLjQ4 LjBfMQorbGlidmFsYWRvYy0wLjUwLnNvLjAgbGlidmFsYWRvYy0wLjUwLjBfMQogbGlidmFsYWNj b2RlZ2VuLnNvIGxpYnZhbGEtMC40NC4wXzEKIGxpYnBob2Rhdi0yLjAuc28uMCBwaG9kYXYtMi4y XzEKIGxpYmdmc2hhcmUuc28uMiBsaWJnZnNoYXJlLTIuMC4wXzEKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvdmFsYWRvYy90ZW1wbGF0ZSBiL3NyY3BrZ3MvdmFsYWRvYy90ZW1wbGF0ZQppbmRleCAyNGNh MDI4MzY1NS4uY2U1YTFkN2E1NGYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvdmFsYWRvYy90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL3ZhbGFkb2MvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICd2YWxhZG9jJwogcGtnbmFtZT12YWxhZG9jCiAjIFNob3VsZCBiZSBrZXB0 IGluIHN5bmMgd2l0aCAndmFsYScgKHNoYXJlZCBkaXN0ZmlsZXMpCi12ZXJzaW9uPTAuNDguOQor dmVyc2lvbj0wLjUwLjAKIHJldmlzaW9uPTEKIHdya3NyYz0idmFsYS0ke3ZlcnNpb259IgogYnVp bGRfc3R5bGU9Z251LWNvbmZpZ3VyZQpAQCAtMTMsOSArMTMsOSBAQCBzaG9ydF9kZXNjPSJWYWxh IERvY3VtZW50YXRpb24gVG9vbCIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9p ZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRw czovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL1ZhbGEiCi1jaGFuZ2Vsb2c9Imh0dHBzOi8vZ2l0 bGFiLmdub21lLm9yZy9HTk9NRS92YWxhL3Jhdy8wLjQyL05FV1MiCitjaGFuZ2Vsb2c9Imh0dHBz Oi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS92YWxhL3Jhdy8wLjUwL05FV1MiCiBkaXN0ZmlsZXM9 IiR7R05PTUVfU0lURX0vdmFsYS8ke3ZlcnNpb24lLip9L3ZhbGEtJHt2ZXJzaW9ufS50YXIueHoi Ci1jaGVja3N1bT05Y2VhMTZkM2JiM2RhZGRiZmUwNTU2Yjk5ZmJmYTA4MTQ2MjMwZGI3NjUxZTFl Njc0Y2QwOGI0ZGY1Y2VmZWE5CitjaGVja3N1bT04MzhhZGM1MGFjMDg4ODFlMDZjZjIzM2ZlZmQ5 Mzc0MGRlYzE1MzAzMTJjYzFjZjEyYzM2ZDRlMGU4N2QzMDcxCiAKIHByZV9jb25maWd1cmUoKSB7 CiAJYXV0b3JlY29uZiAtaWYKCkZyb20gNzA3YjY0NjdhOTQ0YjQ0OWJmM2M4MzAzNmYyZThiOWIw MDdiMjY4ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFu aWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFdlZCwgMTYgU2VwIDIwMjAgMjA6MzI6MTMgKzAyMDAK U3ViamVjdDogW1BBVENIIDAwNi8xMDJdIHZhbGFiaW5kOiByZWJ1aWxkIGZvciB2YWxhLTAuNTAK Ci0tLQogc3JjcGtncy92YWxhYmluZC9wYXRjaGVzL3ZhbGEtMDUwLnBhdGNoIHwgMjUgKysrKysr KysrKysrKysrKysrKysrKysrKwogc3JjcGtncy92YWxhYmluZC90ZW1wbGF0ZSAgICAgICAgICAg ICAgIHwgIDIgKy0KIDIgZmlsZXMgY2hhbmdlZCwgMjYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv bigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvdmFsYWJpbmQvcGF0Y2hlcy92YWxhLTA1 MC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdmFsYWJpbmQvcGF0Y2hlcy92YWxhLTA1MC5w YXRjaCBiL3NyY3BrZ3MvdmFsYWJpbmQvcGF0Y2hlcy92YWxhLTA1MC5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYmQ3YzZhNzQzNDUKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL3ZhbGFiaW5kL3BhdGNoZXMvdmFsYS0wNTAucGF0Y2gKQEAgLTAsMCArMSwy NSBAQAorRnJvbSBmOTQyMzE1NDAyZTNmYzM4ZGVmMTRhOTc0ZGQ1YjIxMGU1ZDJjMzhkIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3Jn ZS5vcmc+CitEYXRlOiBXZWQsIDE2IFNlcCAyMDIwIDIwOjM5OjI5ICswMjAwCitTdWJqZWN0OiBb UEFUQ0hdIGZpeCB3aXRoIHZhbGEtMC41MAorCistLS0KKyB2YWxhYmluZHdyaXRlci52YWxhIHwg MiArLQorIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQorCitk aWZmIC0tZ2l0IHZhbGFiaW5kd3JpdGVyLnZhbGEgdmFsYWJpbmR3cml0ZXIudmFsYQoraW5kZXgg MTY1Y2RmNS4uYzc5M2M5ZiAxMDA2NDQKKy0tLSB2YWxhYmluZHdyaXRlci52YWxhCisrKysgdmFs YWJpbmR3cml0ZXIudmFsYQorQEAgLTMzLDcgKzMzLDcgQEAgcHVibGljIGNsYXNzIFZhbGFiaW5k V3JpdGVyIDogQ29kZVZpc2l0b3IgeworIAkJaWYgKGdsaWJtb2RlKQorIAkJCWNvbnRleHQuYWRk X2RlZmluZSAoIkdPQkpFQ1QiKTsKKyAJCS8vIHJlcXVpcmVkIHRvIGF2b2lkIHVnbHkgcnVudGlt ZSBlcnJvcnMKKy0JCWNvbnRleHQucHJvZmlsZSA9IFByb2ZpbGUuR09CSkVDVDsKKysJCWNvbnRl eHQuc2V0X3RhcmdldF9wcm9maWxlKFByb2ZpbGUuR09CSkVDVCk7CisgCX0KKyAKKyAJcHVibGlj IHZvaWQgcGFyc2UgKCkgeworLS0gCisyLjI4LjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy92YWxh YmluZC90ZW1wbGF0ZSBiL3NyY3BrZ3MvdmFsYWJpbmQvdGVtcGxhdGUKaW5kZXggZjZmOTMxYzMw MzMuLjJiZjBkZjMzNmUzIDEwMDY0NAotLS0gYS9zcmNwa2dzL3ZhbGFiaW5kL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvdmFsYWJpbmQvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICd2YWxhYmluZCcKIHBrZ25hbWU9dmFsYWJpbmQKIHZlcnNpb249MS43LjEKLXJl dmlzaW9uPTUKK3JldmlzaW9uPTYKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9 InBrZy1jb25maWcgdmFsYS1kZXZlbCBnaXQiCiBtYWtlZGVwZW5kcz0idmFsYS1kZXZlbCBnbGli LWRldmVsIgoKRnJvbSAzYjhlMmNkYjgwZjEzMmZlZDk0ZDQ3ZTBjOWVhNWU5MGQzZmMwMjRmIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZv cmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMDA3LzEwMl0gZGV2aGVscDogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL2Rl dmhlbHAvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyks IDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9kZXZoZWxwL3RlbXBsYXRlIGIv c3JjcGtncy9kZXZoZWxwL3RlbXBsYXRlCmluZGV4IGExYzJkY2JiNzYyLi44NmIzNzc2YWRmZCAx MDA2NDQKLS0tIGEvc3JjcGtncy9kZXZoZWxwL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZGV2aGVs cC90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2RldmhlbHAn CiBwa2duYW1lPWRldmhlbHAKLXZlcnNpb249My4zNi4xCit2ZXJzaW9uPTMuMzguMAogcmV2aXNp b249MQogYnVpbGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1tZXNvbgpAQCAtMTEsNyArMTEs NyBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGlj ZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3Jn L0FwcHMvRGV2aGVscCIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVy c2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTRjZjhlYzkz MDJiYzRhNzllMDFhYzUzYmQ5YzhiOTVhNTk2ZjcxZjM1MzUxZjQ4YjYzMjYzMjI3ZjA5YThhM2QK K2NoZWNrc3VtPTkxOGVmYjE3MzEyMmIyNmQ0NWZhNTFjMTk0YTBiNjU5ZTYzZmVlNzcwNWY2NzIy ZGIyNTM0ZmFiYzM0NTIzNjkKIAogZGV2aGVscC1kZXZlbF9wYWNrYWdlKCkgewogCXNob3J0X2Rl c2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKCkZyb20gNTAxYzNmOTlhNzk0YWY0ZmFhYWM2Mzhm ZGFmMzAyZGY1NTUxZWJjNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9x Pz1DND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29u Z2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMTQgU2VwIDIwMjAgMjA6MjI6NDMgKzA3MDAK U3ViamVjdDogW1BBVENIIDAwOC8xMDJdIGdkbDogdXBkYXRlIHRvIDMuMzQuMC4KCi0tLQogc3Jj cGtncy9nZGwvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9u cygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dkbC90ZW1wbGF0ZSBi L3NyY3BrZ3MvZ2RsL3RlbXBsYXRlCmluZGV4IGQ1YjE4MGJkNDNiLi4zNWJlZTgwM2Y5NiAxMDA2 NDQKLS0tIGEvc3JjcGtncy9nZGwvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nZGwvdGVtcGxhdGUK QEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnZGwnCiBwa2duYW1lPWdkbAot dmVyc2lvbj0zLjI4LjAKLXJldmlzaW9uPTMKK3ZlcnNpb249My4zNC4wCityZXZpc2lvbj0xCiBi dWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBidWlsZF9oZWxwZXI9ImdpciIKIGNvbmZpZ3VyZV9h cmdzPSIkKHZvcHRfZW5hYmxlIGdpciBpbnRyb3NwZWN0aW9uKSIKQEAgLTEyLDcgKzEyLDcgQEAg bWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9 IkxHUEwtMi4xLW9yLWxhdGVyLCBMR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczov L2RldmVsb3Blci5nbm9tZS5vcmcvZ2RsLyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3Br Z25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNr c3VtPTUyY2M5OGVjYzEwNTE0ODQ2N2IzYjJiNGUwZDI3YWU0ODRiMWI2NzEwZDUzNDEzZjc3MWVk MDdlZjFiNzM3YjYKK2NoZWNrc3VtPTg1OGIzMGYwY2RjZTRjNGNiM2U4MzY1YTdkNTRjZTU3YzM4 OGJlZmYzOGVhNTgzYmU1NDQ5YmM3OGRkYThkMDIKIAogIyBQYWNrYWdlIGJ1aWxkIG9wdGlvbnMK IGJ1aWxkX29wdGlvbnM9ImdpciIKCkZyb20gYjFkMjhjNzljNGI4MzRmNTJhMDk2NTczZWMxNjY3 YTY3ODA5YzI4NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8 ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMjE6MTY6NDUgKzAy MDAKU3ViamVjdDogW1BBVENIIDAwOS8xMDJdIGxpYnNvdXA6IHVwZGF0ZSB0byAyLjcyLjAKCi0t LQogc3JjcGtncy9saWJzb3VwL3RlbXBsYXRlIHwgMjUgKysrKysrKysrKysrKystLS0tLS0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvbGlic291cC90ZW1wbGF0ZSBiL3NyY3BrZ3MvbGlic291cC90ZW1w bGF0ZQppbmRleCBmN2E5ODM3M2FjOC4uMWJhOGY4YTU4MjIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv bGlic291cC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xpYnNvdXAvdGVtcGxhdGUKQEAgLTEsMTYg KzEsMTYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2xpYnNvdXAnCiBwa2duYW1lPWxpYnNvdXAK LXZlcnNpb249Mi43MC4wCit2ZXJzaW9uPTIuNzIuMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9 bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgotY29uZmlndXJlX2FyZ3M9Ii1EZ3NzYXBpPWRpc2Fi bGVkIC1EbnRsbT1kaXNhYmxlZAotIC1EaW50cm9zcGVjdGlvbj0kKHZvcHRfaWYgZ2lyIGVuYWJs ZWQgZGlzYWJsZWQpCi0gLUR2YXBpPSQodm9wdF9pZiB2YWxhIGVuYWJsZWQgZGlzYWJsZWQpIC1E dGxzX2NoZWNrPWZhbHNlIgorY29uZmlndXJlX2FyZ3M9Ii1EZ3NzYXBpPWRpc2FibGVkIC1EbnRs bT1kaXNhYmxlZCAtRHN5c3Byb2Y9ZGlzYWJsZWQKKyAtRHRsc19jaGVjaz1mYWxzZSAtRGludHJv c3BlY3Rpb249JCh2b3B0X2lmIGdpciBlbmFibGVkIGRpc2FibGVkKQorIC1EdmFwaT0kKHZvcHRf aWYgZ2lyIGVuYWJsZWQgZGlzYWJsZWQpIgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0LWRldmVs IGdsaWItZGV2ZWwgcGtnLWNvbmZpZyBnZXR0ZXh0Ci0gJCh2b3B0X2lmIHZhbGEgJ3ZhbGEnKSIK KyAkKHZvcHRfaWYgZ2lyIHZhbGEpIgogbWFrZWRlcGVuZHM9ImxpYmdsaWItZGV2ZWwgbGlieG1s Mi1kZXZlbCBzcWxpdGUtZGV2ZWwgbGlicHNsLWRldmVsCi0gYnJvdGxpLWRldmVsICQodm9wdF9p ZiB2YWxhICd2YWxhLWRldmVsJykiCisgYnJvdGxpLWRldmVsICQodm9wdF9pZiBnaXIgdmFsYS1k ZXZlbCkiCiBkZXBlbmRzPSJnbGliLW5ldHdvcmtpbmciCiBzaG9ydF9kZXNjPSJIVFRQIGxpYnJh cnkgaW1wbGVtZW50YXRpb24gaW4gQyIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hA dm9pZGxpbnV4Lm9yZz4iCkBAIC0xOCwxMSArMTgsMTYgQEAgbGljZW5zZT0iTEdQTC0yLjEtb3It bGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9saWJzb3Vw IgogY2hhbmdlbG9nPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vR05PTUUvbGli c291cC9nbm9tZS0zLTM2L05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1l fS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT01 NGIwMjBmNzRhZWZhNDM4OTE4ZDhlNTNjZmY2MmUyYjFlNTllZmUyZGU1M2UwNmIxOWE0YjA3YjFm NGQ1MzQyCitjaGVja3N1bT0xNzBjM2Y4NDQ2YjBmNjVmOGU0YjkzNjAzMzQ5MTcyYjEwODVmYjg5 MTdjMTgxZDEwOTYyZjAyYmI4NWY1Mzg3CiAKICMgUGFja2FnZSBidWlsZCBvcHRpb25zCi1idWls ZF9vcHRpb25zPSJnaXIgdmFsYSIKLWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIHZhbGEiCiti dWlsZF9vcHRpb25zPSJnaXIiCitidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKKworIyBnaW8g dGVzdHMgY2FuJ3QgcnVuIGluIGNocm9vdAorZG9fY2hlY2soKSB7CisJOgorfQogCiBsaWJzb3Vw LWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0iJHttYWtlZGVwZW5kc30gbGlic291cD49JHt2 ZXJzaW9ufV8ke3JldmlzaW9ufSIKQEAgLTMxLDggKzM2LDYgQEAgbGlic291cC1kZXZlbF9wYWNr YWdlKCkgewogCQl2bW92ZSB1c3IvbGliL3BrZ2NvbmZpZy9saWJzb3VwLTIuNC5wYwogCQlpZiBb ICIkYnVpbGRfb3B0aW9uX2dpciIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL2dpci0xLjAv U291cC0yLjQuZ2lyCi0JCWZpCi0JCWlmIFsgIiRidWlsZF9vcHRpb25fdmFsYSIgXTsgdGhlbgog CQkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKIAkJZmkKIAkJdm1vdmUgdXNyL2luY2x1ZGUvbGlic291 cC0yLjQKCkZyb20gOGFmODZjZDQ1NWU3MDQ5ZWQwYzc4NmJmNzI5OWE3MDVhZTc2NDEyNiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3Jn ZS5vcmc+CkRhdGU6IFRodSwgMTcgU2VwIDIwMjAgMDE6MTA6MjIgKzAyMDAKU3ViamVjdDogW1BB VENIIDAxMC8xMDJdIGdyaWxvOiB1cGRhdGUgdG8gMC4zLjEzLCBkcm9wIHZhbGEgb3B0aW9uCgot LS0KIHNyY3BrZ3MvZ3JpbG8vdGVtcGxhdGUgfCAxNiArKysrKysrLS0tLS0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvZ3JpbG8vdGVtcGxhdGUgYi9zcmNwa2dzL2dyaWxvL3RlbXBsYXRlCmluZGV4IDRhNmFi NGNhYmUzLi42NGJhZTliZDRlMiAxMDA2NDQKLS0tIGEvc3JjcGtncy9ncmlsby90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL2dyaWxvL3RlbXBsYXRlCkBAIC0xLDEyICsxLDEyIEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdncmlsbycKIHBrZ25hbWU9Z3JpbG8KLXZlcnNpb249MC4zLjEyCit2ZXJzaW9u PTAuMy4xMwogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2ly IgotY29uZmlndXJlX2FyZ3M9Ii1EZW5hYmxlLWludHJvc3BlY3Rpb249JCh2b3B0X2lmIGdpciB0 cnVlIGZhbHNlKQotIC1EZW5hYmxlLXZhbGE9JCh2b3B0X2lmIGdpciB0cnVlIGZhbHNlKSAtRGVu YWJsZS1ndGstZG9jPWZhbHNlIgotaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IHBrZy1jb25maWcg Z2xpYi1kZXZlbCAkKHZvcHRfaWYgdmFsYSB2YWxhKSIKK2NvbmZpZ3VyZV9hcmdzPSIkKHZvcHRf Ym9vbCBnaXIgZW5hYmxlLWludHJvc3BlY3Rpb24pICQodm9wdF9ib29sIGdpciB2YWxhKQorIC1E ZW5hYmxlLWd0ay1kb2M9ZmFsc2UiCitob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgcGtnLWNvbmZp ZyBnbGliLWRldmVsICQodm9wdF9pZiBnaXIgdmFsYSkiCiBtYWtlZGVwZW5kcz0iZ3RrKzMtZGV2 ZWwgbGlieG1sMi1kZXZlbCBsaWJzb3VwLWRldmVsIGxpYm9hdXRoLWRldmVsCiAgdG90ZW0tcGwt cGFyc2VyLWRldmVsIgogc2hvcnRfZGVzYz0iRnJhbWV3b3JrIGZvY3VzZWQgb24gbWFraW5nIG1l ZGlhIGRpc2NvdmVyeSBhbmQgYnJvd3NpbmcgZWFzeSIKQEAgLTE0LDExICsxNCwxMSBAQCBtYWlu dGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTEdQ TC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cDovL2xpdmUuZ25vbWUub3JnL0dyaWxvIgog ZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25h bWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZGJmYmQ2MDgyMTAzMjg4NTkyYWY5NzU2 ODE4MGI5Y2M4MWEzMzZhMjc0ZWQ1MTYwNDEyZjg3Njc1ZWMxMWE3MQorY2hlY2tzdW09ZDE0ODM3 ZjIyMzQxOTQzZWQ4YTE4OWQ5ZjA4MjdhMTcwMTZiODAyZDE4ZDBlZDA4MGUxNDEzZGUwZmRjOTI3 YgogCiAjIFBhY2thZ2UgYnVpbGQgb3B0aW9ucwotYnVpbGRfb3B0aW9ucz0iZ2lyIHZhbGEiCi1i dWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciB2YWxhIgorYnVpbGRfb3B0aW9ucz0iZ2lyIgorYnVp bGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCiAKIGdyaWxvLWRldmVsX3BhY2thZ2UoKSB7CiAJZGVw ZW5kcz0iJHttYWtlZGVwZW5kc30gZ3JpbG8+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCkBAIC0y Nyw4ICsyNyw2IEBAIGdyaWxvLWRldmVsX3BhY2thZ2UoKSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRl CiAJCWlmIFsgIiRidWlsZF9vcHRpb25fZ2lyIiBdOyB0aGVuCiAJCQl2bW92ZSB1c3Ivc2hhcmUv Z2lyLTEuMAotCQlmaQotCQlpZiBbICIkYnVpbGRfb3B0aW9uX3ZhbGEiIF07IHRoZW4KIAkJCXZt b3ZlIHVzci9zaGFyZS92YWxhCiAJCWZpCiAJCXZtb3ZlIHVzci9saWIvcGtnY29uZmlnCgpGcm9t IDg3NmMzNmJjMTZjNDkwMjYwYzIyYWE0ZGYzYmI1M2I4MTNhMmEwMTIgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRl OiBUaHUsIDE3IFNlcCAyMDIwIDAxOjE1OjM1ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMTEvMTAy XSBncmlsby1wbHVnaW5zOiB1cGRhdGUgdG8gMC4zLjEyCgotLS0KIHNyY3BrZ3MvZ3JpbG8tcGx1 Z2lucy90ZW1wbGF0ZSB8IDEyICsrKysrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0 aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dyaWxvLXBsdWdp bnMvdGVtcGxhdGUgYi9zcmNwa2dzL2dyaWxvLXBsdWdpbnMvdGVtcGxhdGUKaW5kZXggOGJmNjUx MzY2ZGEuLjU1YmNjZjFmZmI3IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dyaWxvLXBsdWdpbnMvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9ncmlsby1wbHVnaW5zL3RlbXBsYXRlCkBAIC0xLDEwICsxLDkg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dyaWxvLXBsdWdpbnMnCiBwa2duYW1lPWdyaWxvLXBs dWdpbnMKLXZlcnNpb249MC4zLjExCit2ZXJzaW9uPTAuMy4xMgogcmV2aXNpb249MQogYnVpbGRf c3R5bGU9bWVzb24KLWhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBpbnRsdG9vbCBpdHN0b29s IGdsaWItZGV2ZWwgZ3BlcmYKLQlnbm9tZS1kb2MtdXRpbHMiCitob3N0bWFrZWRlcGVuZHM9InBr Zy1jb25maWcgaW50bHRvb2wgaXRzdG9vbCBnbGliLWRldmVsIGdwZXJmIGdub21lLWRvYy11dGls cyIKICMgWFhYIG1pc3NpbmcgcGx1Z2luczogZmFrZW1ldGFkYXRhLgogbWFrZWRlcGVuZHM9Imdy aWxvLWRldmVsIGdvbS1kZXZlbCBndXBucC1hdi1kZXZlbCBqc29uLWdsaWItZGV2ZWwKICBsaWJx dXZpLWRldmVsIHJlc3QtZGV2ZWwgc3FsaXRlLWRldmVsIGxpYmdjcnlwdC1kZXZlbCBnbWltZS1k ZXZlbApAQCAtMTYsNCArMTUsOSBAQCBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRs aW51eC5vcmc+IgogbGljZW5zZT0iTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cDov L2xpdmUuZ25vbWUub3JnL0dyaWxvIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFt ZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09 ZGRlMmU2MDViMTk5NDM0MWM2YmYwMTI0OTNlMDU2YjQwNmIwODU3MTgzNGRlYTNiM2M2NzFkNWI4 YjFkY2Q3MworY2hlY2tzdW09YzZiNmRmMDg2YTE2NGQ2NWMyMDZkNzAxMzljZTgwNTkxZjhmZWNh MzU0NTYxMmU0NWI4MjNmYjRmZTRiMjU3NworCisjIGZlZWwgZnJlZSB0byBmaXgKK2RvX2NoZWNr KCkgeworCToKK30KCkZyb20gM2ViMjg1NmMwOGNmYTNlZmMyZmY1MzI2MzVlNzgzNWQ5MmY1MjQ5 YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9j dGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDQ6NTY6MzQgKzAyMDAKU3ViamVj dDogW1BBVENIIDAxMi8xMDJdIGd0a3NvdXJjZXZpZXc0OiB1cGRhdGUgdG8gNC44LjAKCi0tLQog c3JjcGtncy9ndGtzb3VyY2V2aWV3NC90ZW1wbGF0ZSB8IDI5ICsrKysrKysrKysrKysrKystLS0t LS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTYgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ndGtzb3VyY2V2aWV3NC90ZW1wbGF0ZSBiL3NyY3Br Z3MvZ3Rrc291cmNldmlldzQvdGVtcGxhdGUKaW5kZXggNjg0ODcxNjc3M2MuLjVjZmQ1ZWNmYmQ5 IDEwMDY0NAotLS0gYS9zcmNwa2dzL2d0a3NvdXJjZXZpZXc0L3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvZ3Rrc291cmNldmlldzQvdGVtcGxhdGUKQEAgLTEsMzIgKzEsMzcgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ2d0a3NvdXJjZXZpZXc0JwogcGtnbmFtZT1ndGtzb3VyY2V2aWV3NAotdmVyc2lv bj00LjIuMAotcmV2aXNpb249MgordmVyc2lvbj00LjguMAorcmV2aXNpb249MQogd3Jrc3JjPSJn dGtzb3VyY2V2aWV3LSR7dmVyc2lvbn0iCi1idWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCitidWls ZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCi1jb25maWd1cmVfYXJncz0iLS1lbmFi bGUtZ2xhZGUtY2F0YWxvZyAkKHZvcHRfZW5hYmxlIGdpciBpbnRyb3NwZWN0aW9uKQotICQodm9w dF9lbmFibGUgdmFsYSkgJCh2b3B0X2VuYWJsZSBndGtfZG9jIGd0ay1kb2MpIgorY29uZmlndXJl X2FyZ3M9Ii1EZ2xhZGVfY2F0YWxvZz10cnVlICQodm9wdF9ib29sIGdpciBnaXIpCisgJCh2b3B0 X2Jvb2wgZ2lyIHZhcGkpICQodm9wdF9ib29sIGd0a19kb2MgZ3RrX2RvYykiCiBob3N0bWFrZWRl cGVuZHM9Imd0ayszLWRldmVsIGdsaWItZGV2ZWwgaXRzdG9vbCBsaWJ4c2x0IHBrZy1jb25maWcK LSAkKHZvcHRfaWYgdmFsYSB2YWxhKSAkKHZvcHRfaWYgZ3RrX2RvYyBndGstZG9jKSIKKyAkKHZv cHRfaWYgZ2lyIHZhbGEpICQodm9wdF9pZiBndGtfZG9jIGd0ay1kb2MpIgogbWFrZWRlcGVuZHM9 ImdsYWRlMy1kZXZlbCBndGsrMy1kZXZlbCBsaWJnbGliLWRldmVsIGxpYnhtbDItZGV2ZWwKLSAk KHZvcHRfaWYgdmFsYSB2YWxhKSIKKyAkKHZvcHRfaWYgZ2lyIHZhbGEpIgogc2hvcnRfZGVzYz0i VGV4dCB3aWRnZXQgdGhhdCBleHRlbmRzIEdUSysgR3RrVGV4dFZpZXcgd2lkZ2V0IgogbWFpbnRh aW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0y LjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9H dGtTb3VyY2VWaWV3IgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L2d0a3NvdXJjZXZpZXcvJHt2 ZXJzaW9uJS4qfS9ndGtzb3VyY2V2aWV3LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09YzQz MWViMjM0ZGM4M2M3ODE5ZTU4Zjc3ZGQyYWY5NzMyNTJjNzc1MGRhMWM5ZDEyNWRkYzk0MjY4Zjk0 ZjY3NQorY2hlY2tzdW09MDBhMTkxMjE1MDBjZWRmMWJhZTk3ZjM1YWY4NjVkODM5ODQxZmQ3ODVk OWZhY2YxODg0OThlMTM5NzViNGUxYQogCiAjIFBhY2thZ2UgYnVpbGQgb3B0aW9ucwotYnVpbGRf b3B0aW9ucz0iZ2lyIHZhbGEgZ3RrX2RvYyIKK2J1aWxkX29wdGlvbnM9ImdpciBndGtfZG9jIgog ZGVzY19vcHRpb25fZ3RrX2RvYz0iQnVpbGQgQVBJIGRvY3MgdmlhIGd0ay1kb2MiCi1idWlsZF9v cHRpb25zX2RlZmF1bHQ9ImdpciB2YWxhIgorYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCiAK IGlmIFsgLXogIiRDUk9TU19CVUlMRCIgXTsgdGhlbgogCWJ1aWxkX29wdGlvbnNfZGVmYXVsdCs9 IiBndGtfZG9jIgogZmkKIAorIyBOZWVkcyBYCitkb19jaGVjaygpIHsKKwk6Cit9CisKIGd0a3Nv dXJjZXZpZXc0LWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0iZ3RrKzMtZGV2ZWwgbGliZ2xp Yi1kZXZlbCBsaWJ4bWwyLWRldmVsICR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9u fSIKIAlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCkBAIC0zNiwxMSArNDEsOSBA QCBndGtzb3VyY2V2aWV3NC1kZXZlbF9wYWNrYWdlKCkgewogCQl2bW92ZSAidXNyL2xpYi8qLnNv IgogCQl2bW92ZSB1c3Ivc2hhcmUvZ2xhZGUKIAkJdm1vdmUgdXNyL3NoYXJlL2d0ay1kb2MKLQkJ aWYgWyAiJGJ1aWxkX29wdGlvbl92YWxhIiBdOyB0aGVuCi0JCQl2bW92ZSB1c3Ivc2hhcmUvdmFs YQotCQlmaQogCQlpZiBbICIkYnVpbGRfb3B0aW9uX2dpciIgXTsgdGhlbgogCQkJdm1vdmUgdXNy L3NoYXJlL2dpci0xLjAKKwkJCXZtb3ZlIHVzci9zaGFyZS92YWxhCiAJCWZpCiAJfQogfQoKRnJv bSBkMGU3M2MzNjE5Y2RiYjIwZGUyNjFiM2Y5NGRiMzQ2YWU5NjZkYzE0IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0 ZTogU2F0LCAxNSBBdWcgMjAyMCAwMDoxMjoxNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDEzLzEw Ml0gdGVwbDogdXBkYXRlIHRvIDUuMC4wCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAg ICAgICAgICB8ICAyICstCiBzcmNwa2dzL3RlcGwvcGF0Y2hlcy9uby1naXIucGF0Y2ggfCA0NSAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL3RlcGwvdGVtcGxhdGUgICAg ICAgICAgICAgfCAxMCArKystLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDUxIGluc2VydGlvbnMoKyks IDYgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy90ZXBsL3BhdGNoZXMv bm8tZ2lyLnBhdGNoCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMK aW5kZXggMjg0YTVkZGUxZDIuLjE0ZmQzYzkzNTFmIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJz CisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTM1NTQsNyArMzU1NCw3IEBAIGxpYnd4X2d0azN1X21l ZGlhLTMuMC5zby4wIHd4V2lkZ2V0cy1ndGszLTMuMC40XzEKIGxpYnd4X2d0azN1X3JpYmJvbi0z LjAuc28uMCB3eFdpZGdldHMtZ3RrMy0zLjAuNF8xCiBsaWJ3eF9ndGszdV9nbC0zLjAuc28uMCB3 eFdpZGdldHMtZ3RrMy0zLjAuNF8xCiBsaWJ3eF9ndGszdV9zdGMtMy4wLnNvLjAgd3hXaWRnZXRz LWd0azMtMy4wLjRfMQotbGlidGVwbC00LnNvLjAgdGVwbC00LjIuMF8xCitsaWJ0ZXBsLTUuc28u MCB0ZXBsLTQuMi4wXzEKIGxpYm5vbWFjc0NvcmUuc28uMyBub21hY3MtMy4xMC4yXzQKIGxpYmF1 ZGl0LnNvLjEgbGliYXVkaXQtMi44LjRfMQogbGliYXVwYXJzZS5zby4wIGxpYmF1cGFyc2UtMi44 LjRfMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy90ZXBsL3BhdGNoZXMvbm8tZ2lyLnBhdGNoIGIvc3Jj cGtncy90ZXBsL3BhdGNoZXMvbm8tZ2lyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi5lMzQwMDI3YjdmMQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvdGVw bC9wYXRjaGVzL25vLWdpci5wYXRjaApAQCAtMCwwICsxLDQ1IEBACitGcm9tIDE3ZTU3ZWQxNTY0 NTBmZTU5MDAxY2IwYTE0ZjhkODdjNDBkNmJmNzcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitG cm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KK0RhdGU6IFNhdCwgMTUg QXVnIDIwMjAgMDA6MDk6MTUgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gQWxsb3cgZGlzYWJsaW5n IGdpcgorCistLS0KKyBtZXNvbl9vcHRpb25zLnR4dCB8IDUgKysrKysKKyB0ZXBsL21lc29uLmJ1 aWxkICB8IDQgKysrKworIDIgZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspCisKK2RpZmYg LS1naXQgbWVzb25fb3B0aW9ucy50eHQgbWVzb25fb3B0aW9ucy50eHQKK2luZGV4IGNhZDk3ZGQu LjVlOTkwODQgMTAwNjQ0CistLS0gbWVzb25fb3B0aW9ucy50eHQKKysrKyBtZXNvbl9vcHRpb25z LnR4dAorQEAgLTMsMyArMyw4IEBAIG9wdGlvbigKKyAgIHR5cGU6ICdib29sZWFuJywgdmFsdWU6 IGZhbHNlLAorICAgZGVzY3JpcHRpb246ICdCdWlsZCBBUEkgcmVmZXJlbmNlIChyZXF1aXJlcyBn dGstZG9jKScKKyApCisrb3B0aW9uKAorKyAgJ2dpcicsCisrICB0eXBlOiAnYm9vbGVhbicsIHZh bHVlOiB0cnVlLAorKyAgZGVzY3JpcHRpb246ICdCdWlsZCBnb2JqZWN0LWludHJvc3BlY3Rpb24n CisrKQorZGlmZiAtLWdpdCB0ZXBsL21lc29uLmJ1aWxkIHRlcGwvbWVzb24uYnVpbGQKK2luZGV4 IDIyNmQ5MTMuLmIzNWRkM2EgMTAwNjQ0CistLS0gdGVwbC9tZXNvbi5idWlsZAorKysrIHRlcGwv bWVzb24uYnVpbGQKK0BAIC0xNjQsNiArMTY0LDggQEAgUEtHX0NPTkZJRy5nZW5lcmF0ZSh0ZXBs X2xpYiwKKyAgIGxpYnJhcmllczogVEVQTF9QVUJMSUNfREVQUywKKyApCisgCisraWYgZ2V0X29w dGlvbignZ2lyJykKKysKKyBHTk9NRS5nZW5lcmF0ZV9naXIoCisgICB0ZXBsX2xpYiwKKyAgIGV4 cG9ydF9wYWNrYWdlczogJ3RlcGwtQDBAJy5mb3JtYXQoVEVQTF9BUElfVkVSU0lPTiksCitAQCAt MTgyLDMgKzE4NCw1IEBAIEdOT01FLmdlbmVyYXRlX2dpcigKKyAgICMgU3VwcG9ydCBmb3IgZGVw cyBiZWluZyBidWlsdCBhcyBzdWJwcm9qZWN0czoKKyAgIGRlcGVuZGVuY2llczogVEVQTF9ERVBT LAorICkKKysKKytlbmRpZgorLS0gCisyLjI4LjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy90ZXBs L3RlbXBsYXRlIGIvc3JjcGtncy90ZXBsL3RlbXBsYXRlCmluZGV4IGY0ZDM3MWQ2MDNkLi43OThk NWNkMDA3NyAxMDA2NDQKLS0tIGEvc3JjcGtncy90ZXBsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv dGVwbC90ZW1wbGF0ZQpAQCAtMSwxMCArMSwxMCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAndGVw bCcKIHBrZ25hbWU9dGVwbAotdmVyc2lvbj00LjQuMAordmVyc2lvbj01LjAuMAogcmV2aXNpb249 MQotYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQotYnVpbGRfaGVscGVyPSJnaXIiCi1jb25maWd1 cmVfYXJncz0iJCh2b3B0X2VuYWJsZSBnaXIgaW50cm9zcGVjdGlvbikiCitidWlsZF9zdHlsZT1t ZXNvbgorYnVpbGRfaGVscGVyPWdpcgorY29uZmlndXJlX2FyZ3M9IiQodm9wdF9ib29sIGdpciBn aXIpIgogaG9zdG1ha2VkZXBlbmRzPSJnbGliLWRldmVsIHBrZy1jb25maWciCiBtYWtlZGVwZW5k cz0iYW10ay1kZXZlbCBsaWJnbGliLWRldmVsIGd0a3NvdXJjZXZpZXc0LWRldmVsIGd0ayszLWRl dmVsCiAgbGlieG1sMi1kZXZlbCB1Y2hhcmRldC1kZXZlbCIKQEAgLTEzLDcgKzEzLDcgQEAgbWFp bnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQ TC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0 cy9UZXBsIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4q fS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZTZmNjY3M2E4YTI3ZThm MjgwNzI1ZGI4ZmJhY2VjNzliMjA2NzZhZTA1NTg3NTUyMzlkMTVhOTgwOGZhYTI1NgorY2hlY2tz dW09YzZiZDI5MDRmNTMwNDhiN2QwMTQ5MjM2NjEwYjM4ZjUwMmYyNjM0ZDM5NWQ4YjliM2M2NTk1 NTNmNDA0NWE3NAogCiBidWlsZF9vcHRpb25zPSJnaXIiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9 ImdpciIKCkZyb20gY2U2OGIwNmVkZDhhMzkzZWU0MDk1MmM3MzIzMDBiNjE4MDc4MDI5ZSBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBuPTIwVHI9 RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+CkRh dGU6IE1vbiwgMTQgU2VwIDIwMjAgMjA6Mjc6MjIgKzA3MDAKU3ViamVjdDogW1BBVENIIDAxNC8x MDJdIGdsYWRlMzogdXBkYXRlIHRvIDMuMzguMC4KCi0tLQogY29tbW9uL3NobGlicyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyY3BrZ3MvZ2xhZGUzL3BhdGNoZXMv YXV0b2dlbi1hdXRvY29uZi5wYXRjaCB8IDk4IC0tLS0tLS0tLS0tLS0tLS0tLS0KIC4uLi9wYXRj aGVzL2NvbmZpZ3VyZS1zaGVsbC1xdW90ZS5wYXRjaCAgICAgICB8IDExIC0tLQogc3JjcGtncy9n bGFkZTMvcGF0Y2hlcy9jcm9zcy5wYXRjaCAgICAgICAgICAgIHwgNDAgLS0tLS0tLS0KIHNyY3Br Z3MvZ2xhZGUzL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgICB8IDE3ICsrLS0KIDUgZmls ZXMgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCAxNjEgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9nbGFkZTMvcGF0Y2hlcy9hdXRvZ2VuLWF1dG9jb25mLnBhdGNoCiBk ZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbGFkZTMvcGF0Y2hlcy9jb25maWd1cmUtc2hlbGwt cXVvdGUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2dsYWRlMy9wYXRjaGVzL2Ny b3NzLnBhdGNoCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5k ZXggMTRmZDNjOTM1MWYuLjRiNzY3OWJmOGFjIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisr KyBiL2NvbW1vbi9zaGxpYnMKQEAgLTc3MCw3ICs3NzAsNyBAQCBsaWJvcmMtdGVzdC0wLjQuc28u MCBvcmMtMC40LjExXzEKIGxpYmdtaW1lLTIuNi5zby4wIGdtaW1lLTIuNi40XzEKIGxpYnRvdGVt LXBscGFyc2VyLnNvLjE4IHRvdGVtLXBsLXBhcnNlci0zLjI2LjFfMQogbGlidG90ZW0tcGxwYXJz ZXItbWluaS5zby4xOCBsaWJ0b3RlbS1wbHBhcnNlci1taW5pLTMuMjYuMV8xCi1saWJnbGFkZXVp LTIuc28uNiBsaWJnbGFkZXVpMy0zLjEwLjBfMQorbGliZ2xhZGV1aS0yLnNvLjEzIGxpYmdsYWRl dWkzLTMuMzguMF8xCiBsaWJ0ZGIuc28uMSBsaWJ0ZGItMS4yLjJfMQogbGliZ3NzZHAtMS4yLnNv LjAgZ3NzZHAtMS4yLjBfMQogbGliZ3VwbnAtMS4yLnNvLjAgZ3VwbnAtMS4yLjBfMQpkaWZmIC0t Z2l0IGEvc3JjcGtncy9nbGFkZTMvcGF0Y2hlcy9hdXRvZ2VuLWF1dG9jb25mLnBhdGNoIGIvc3Jj cGtncy9nbGFkZTMvcGF0Y2hlcy9hdXRvZ2VuLWF1dG9jb25mLnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCBmMWRmYzM0MmI0Ny4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9n bGFkZTMvcGF0Y2hlcy9hdXRvZ2VuLWF1dG9jb25mLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs OTggKzAsMCBAQAotRnJvbSA4MzQxY2Y3OGJjNjg3OWNiMmQ1MGUxMmI1ODg2ZWU3ZGNhM2QwOWYy IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogPT9VVEYtOD9xP0phdmllcj0yMEphcmQ9 QzM9QjNuPz0gPGpqYXJkb25AZ25vbWUub3JnPgotRGF0ZTogU2F0LCA5IEZlYiAyMDE5IDEzOjE1 OjE3ICswMDAwCi1TdWJqZWN0OiBbUEFUQ0hdIFVzZSBhdXRvcmVjb25mIGluc3RlYWQgZGVwcmVj YXRlZCBnbm9tZS1jb21tb24KLQotU2VlIGh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMv R25vbWVDb21tb24vTWlncmF0aW9uCi0tLS0KLSBhdXRvZ2VuLnNoICAgfCA0NyArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLQotIGNvbmZpZ3VyZS5hYyB8ICA2 ICsrLS0tLQotIDIgZmlsZXMgY2hhbmdlZCwgMzUgaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25z KC0pCi0KLWRpZmYgLS1naXQgYXV0b2dlbi5zaCBhdXRvZ2VuLnNoCi1pbmRleCAxZDhjZDg0MC4u ZmQzNTY2M2IgMTAwNzU1Ci0tLS0gYXV0b2dlbi5zaAotKysrIGF1dG9nZW4uc2gKLUBAIC0xLDIy ICsxLDQxIEBACi0gIyEvYmluL3NoCi0gIyBSdW4gdGhpcyB0byBnZW5lcmF0ZSBhbGwgdGhlIGlu aXRpYWwgbWFrZWZpbGVzLCBldGMuCi0rdGVzdCAtbiAiJHNyY2RpciIgfHwgc3JjZGlyPSQoZGly bmFtZSAiJDAiKQotK3Rlc3QgLW4gIiRzcmNkaXIiIHx8IHNyY2Rpcj0uCi0gCi0tc3JjZGlyPWBk aXJuYW1lICQwYAotLXRlc3QgLXogIiRzcmNkaXIiICYmIHNyY2Rpcj0uCi0rb2xkZGlyPSQocHdk KQotIAotLVBLR19OQU1FPSJnbGFkZSIKLStjZCAkc3JjZGlyCi0gCi0tKHRlc3QgLWYgJHNyY2Rp ci9jb25maWd1cmUuYWMgXAotLSAgJiYgdGVzdCAtZiAkc3JjZGlyL2F1dG9nZW4uc2gpIHx8IHsK LS0gICAgZWNobyAtbiAiKipFcnJvcioqOiBEaXJlY3RvcnkgIlxgJHNyY2RpclwnIiBkb2VzIG5v dCBsb29rIGxpa2UgdGhlIgotLSAgICBlY2hvICIgdG9wLWxldmVsICRQS0dfTkFNRSBkaXJlY3Rv cnkiCi0tICAgIGV4aXQgMQotKyh0ZXN0IC1mIGNvbmZpZ3VyZS5hYykgfHwgewotKyAgICAgICAg ZWNobyAiKioqIEVSUk9SOiBEaXJlY3RvcnkgJyRzcmNkaXInIGRvZXMgbm90IGxvb2sgbGlrZSB0 aGUgdG9wLWxldmVsIHByb2plY3QgZGlyZWN0b3J5ICoqKiIKLSsgICAgICAgIGV4aXQgMQotIH0K LSAKLS13aGljaCBnbm9tZS1hdXRvZ2VuLnNoIHx8IHsKLS0gICAgZWNobyAiWW91IG5lZWQgdG8g aW5zdGFsbCBnbm9tZS1jb21tb24gbW9kdWxlIGFuZCBtYWtlIgotLSAgICBlY2hvICJzdXJlIHRo ZSBnbm9tZS1hdXRvZ2VuLnNoIHNjcmlwdCBpcyBpbiB5b3VyIFwkUEFUSC4iCi0tICAgIGV4aXQg MQotLX0KLSsjIHNoZWxsY2hlY2sgZGlzYWJsZT1TQzIwMTYKLStQS0dfTkFNRT0kKGF1dG9jb25m IC0tdHJhY2UgJ0FDX0lOSVQ6JDEnIGNvbmZpZ3VyZS5hYykKLSsKLStpZiBbICIkIyIgPSAwIC1h ICJ4JE5PQ09ORklHVVJFIiA9ICJ4IiBdOyB0aGVuCi0rICAgICAgICBlY2hvICIqKiogV0FSTklO RzogSSBhbSBnb2luZyB0byBydW4gJ2NvbmZpZ3VyZScgd2l0aCBubyBhcmd1bWVudHMuIiA+JjIK LSsgICAgICAgIGVjaG8gIioqKiBJZiB5b3Ugd2lzaCB0byBwYXNzIGFueSB0byBpdCwgcGxlYXNl IHNwZWNpZnkgdGhlbSBvbiB0aGUiID4mMgotKyAgICAgICAgZWNobyAiKioqICckMCcgY29tbWFu ZCBsaW5lLiIgPiYyCi0rICAgICAgICBlY2hvICIiID4mMgotK2ZpCi0rCi0rYWNsb2NhbCAtLWlu c3RhbGwgfHwgZXhpdCAxCi0rZ3RrZG9jaXplIC0tY29weSB8fCBleGl0IDEKLStpbnRsdG9vbGl6 ZSAtLWZvcmNlIC0tY29weSAtLWF1dG9tYWtlIHx8IGV4aXQgMQotK2F1dG9yZWNvbmYgLS12ZXJi b3NlIC0tZm9yY2UgLS1pbnN0YWxsIHx8IGV4aXQgMQotKwotK2NkICIkb2xkZGlyIgotK2lmIFsg IiROT0NPTkZJR1VSRSIgPSAiIiBdOyB0aGVuCi0rICAgICAgICAkc3JjZGlyL2NvbmZpZ3VyZSAi JEAiIHx8IGV4aXQgMQotIAotLS4gZ25vbWUtYXV0b2dlbi5zaAotKyAgICAgICAgaWYgWyAiJDEi ID0gIi0taGVscCIgXTsgdGhlbgotKyAgICAgICAgICAgICAgICBleGl0IDAKLSsgICAgICAgIGVs c2UKLSsgICAgICAgICAgICAgICAgZWNobyAiTm93IHR5cGUgJ21ha2UnIHRvIGNvbXBpbGUgJFBL R19OQU1FIiB8fCBleGl0IDEKLSsgICAgICAgIGZpCi0rZWxzZQotKyAgICAgICAgZWNobyAiU2tp cHBpbmcgY29uZmlndXJlIHByb2Nlc3MuIgotK2ZpCi1kaWZmIC0tZ2l0IGNvbmZpZ3VyZS5hYyBj b25maWd1cmUuYWMKLWluZGV4IGEzNTI0NjU2Li42MzhlNzgwMSAxMDA2NDQKLS0tLSBjb25maWd1 cmUuYWMKLSsrKyBjb25maWd1cmUuYWMKLUBAIC0zMyw2ICszMyw4IEBAIEFNX01BSU5UQUlORVJf TU9ERShbZW5hYmxlXSkKLSAjIHRvIG1ha2UKLSBBTV9TSUxFTlRfUlVMRVMoW3llc10pCi0gCi0r QVhfQ0hFQ0tfRU5BQkxFX0RFQlVHKFt5ZXNdLFtHTk9NRV9FTkFCTEVfREVCVUddKQotKwotICMg Q2hlY2tzIGZvciBwcm9ncmFtcwotIEFDX1BST0dfQ0MKLSBBQ19QUk9HX0lOU1RBTEwKLUBAIC03 OSwxMCArODEsNiBAQCBBTV9DT05ESVRJT05BTChHTEFERV9VTlNUQUJMRSwgdGVzdCAieCRHTEFE RV9VTlNUQUJMRSIgPSAieHllcyIpCi0gCi0gIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gCi0tR05PTUVfREVCVUdfQ0hF Q0sKLS1HTk9NRV9DT01QSUxFX1dBUk5JTkdTKFttYXhpbXVtXSkKLS1HTk9NRV9NQUlOVEFJTkVS X01PREVfREVGSU5FUwotLQotICMgRm9yIHRoZSBwbHVnaW5zLCB3ZSBkb24ndCB1c2UgdGhlIHdh cm5pbmcgZmxhZ3MgZGVmaW5lZCBieSBHTk9NRV9DT01QSUxFX1dBUk5JTkdTLgotICMgVGhlc2Ug ZmxhZ3MgaW5jbHVkZSAtV21pc3NpbmctcHJvdG90eXBlcywgd2hpY2ggd2UgcHJlZmVyIG5vdCB0 byB1c2UuCi0gaWYgdGVzdCAieCRHQ0MiID0gInh5ZXMiOyB0aGVuCi0tLSAKLTIuMjQuMQotCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2dsYWRlMy9wYXRjaGVzL2NvbmZpZ3VyZS1zaGVsbC1xdW90ZS5w YXRjaCBiL3NyY3BrZ3MvZ2xhZGUzL3BhdGNoZXMvY29uZmlndXJlLXNoZWxsLXF1b3RlLnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiM2M2MGNjZjM2NS4uMDAwMDAwMDAwMDAK LS0tIGEvc3JjcGtncy9nbGFkZTMvcGF0Y2hlcy9jb25maWd1cmUtc2hlbGwtcXVvdGUucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi0tLS0gY29uZmlndXJlLmFjCi0rKysgY29u ZmlndXJlLmFjCi1AQCAtMjc5LDcgKzI3OSw3IEBACi0gZG5sIENoZWNrIGZvciBHREsgUXVhcnR6 IGFuZCBNYWNPU1ggaW50ZWdyYXRpb24gcGFja2FnZSAKLSBkbmwgPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotIF9nZGtfdGd0 PWAkUEtHX0NPTkZJRyAtLXZhcmlhYmxlPXRhcmdldHMgZ2RrLTMuMGAKLS1BTV9DT05ESVRJT05B TChbR0RLX1RBUkdFVF9RVUFSVFpdLCBbdGVzdCB4JF9nZGtfdGd0ID0geHF1YXJ0el0pCi0rQU1f Q09ORElUSU9OQUwoW0dES19UQVJHRVRfUVVBUlRaXSwgW3Rlc3QgIngkX2dka190Z3QiID0geHF1 YXJ0el0pCi0gaWYgdGVzdCAieCRfZ2RrX3RndCIgPSB4cXVhcnR6OyB0aGVuIAotICAgIFBLR19D SEVDS19NT0RVTEVTKEdUS19NQUMsIGd0ay1tYWMtaW50ZWdyYXRpb24tZ3RrMykKLSAKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvZ2xhZGUzL3BhdGNoZXMvY3Jvc3MucGF0Y2ggYi9zcmNwa2dzL2dsYWRl My9wYXRjaGVzL2Nyb3NzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwM2Ix ZDdlODQ2ZS4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9nbGFkZTMvcGF0Y2hlcy9jcm9zcy5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAgQEAKLS0tLSBtNC9weXRob24ubTQKLSsr KyBtNC9weXRob24ubTQKLUBAIC00MywxNyArNDMsOSBAQAotIFtBQ19SRVFVSVJFKFtBTV9QQVRI X1BZVEhPTl0pCi0gQUNfTVNHX0NIRUNLSU5HKGZvciBoZWFkZXJzIHJlcXVpcmVkIHRvIGNvbXBp bGUgcHl0aG9uIGV4dGVuc2lvbnMpCi0gZG5sIGRlZHVjZSBQWVRIT05fSU5DTFVERVMKLS1hbV9w eXRob25fcHJpbnRfaW5jbHVkZXM9IlwKLS1mcm9tIGRpc3R1dGlscyBpbXBvcnQgc3lzY29uZmln IGFzIHNjCi0taW5jbGRpcnMgPSBbW11dCi0tCi0tZm9yIGQgaW4gc2MuZ2V0X2NvbmZpZ192YXIo J0lOQ0xESVJTVE9NQUtFJykuc3BsaXQoKToKLS0gICAgaW5jbGRpcnMuYXBwZW5kKCctSScgKyBk KQotLQotLXByaW50KCcgJy5qb2luKGluY2xkaXJzKSkKLS0iCi0reGJwc19zeXNyb290PWAkQ0Mg LS1wcmludC1zeXNyb290YAotIGlmIHRlc3QgIngkUFlUSE9OX0lOQ0xVREVTIiA9PSB4OyB0aGVu Ci0tICBQWVRIT05fSU5DTFVERVM9YCRQWVRIT04gLWMgIiRhbV9weXRob25fcHJpbnRfaW5jbHVk ZXMiYAotKyAgUFlUSE9OX0lOQ0xVREVTPWAiJHhicHNfc3lzcm9vdC8kUFlUSE9OLWNvbmZpZyIg LS1pbmNsdWRlc2AKLSBmaQotIEFDX1NVQlNUKFBZVEhPTl9JTkNMVURFUykKLSBkbmwgY2hlY2sg aWYgdGhlIGhlYWRlcnMgZXhpc3Q6Ci1AQCAtNzQsMTYgKzY2LDExIEBACi0gW0FDX1JFUVVJUkUo W0FNX0NIRUNLX1BZVEhPTl9IRUFERVJTXSkKLSBBQ19NU0dfQ0hFQ0tJTkcoZm9yIGxpYnJhcmll cyByZXF1aXJlZCB0byBlbWJlZCBweXRob24pCi0gZG5sIGRlZHVjZSBQWVRIT05fTElCUwotLWFt X3B5dGhvbl9wcmludF9saWJzPSJcCi0tZnJvbSBkaXN0dXRpbHMgaW1wb3J0IHN5c2NvbmZpZyBh cyBzYwotLWxpYnMgPSAnLUwnICsgc2MuZ2V0X2NvbmZpZ192YXIoJ0xJQkRJUicpLnN0cmlwKCkK LS1saWJzICs9ICcgJyArIHNjLmdldF9jb25maWdfdmFyKCdCTERMSUJSQVJZJykKLS1wcmludChs aWJzKSIKLSBhbV9weXRob25fcHJpbnRfbGliX2xvYz0iXAotIGZyb20gZGlzdHV0aWxzIGltcG9y dCBzeXNjb25maWcgYXMgc2MKLSBwcmludChzYy5nZXRfY29uZmlnX3ZhcignTElCRElSJykpIgot IGlmIHRlc3QgIngkUFlUSE9OX0xJQlMiID09IHg7IHRoZW4KLS0JUFlUSE9OX0xJQlM9YCRQWVRI T04gLWMgIiRhbV9weXRob25fcHJpbnRfbGlicyJgCi0rCVBZVEhPTl9MSUJTPWAiJHhicHNfc3lz cm9vdC8kUFlUSE9OLWNvbmZpZyIgLS1sZGZsYWdzIC0tZW1iZWRgCi0gZmkKLSBpZiB0ZXN0ICJ4 JFBZVEhPTl9MSUJfTE9DIiA9PSB4OyB0aGVuCi0gCVBZVEhPTl9MSUJfTE9DPWAkUFlUSE9OIC1j ICIkYW1fcHl0aG9uX3ByaW50X2xpYl9sb2MiYApkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbGFkZTMv dGVtcGxhdGUgYi9zcmNwa2dzL2dsYWRlMy90ZW1wbGF0ZQppbmRleCA5MTBjMTM4ZGY2YS4uZDNk OGUwZDVkY2YgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ2xhZGUzL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvZ2xhZGUzL3RlbXBsYXRlCkBAIC0xLDMyICsxLDI3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICdnbGFkZTMnCiBwa2duYW1lPWdsYWRlMwotdmVyc2lvbj0zLjIyLjIKK3ZlcnNpb249My4zOC4w CiByZXZpc2lvbj0xCiB3cmtzcmM9ImdsYWRlLSR7dmVyc2lvbn0iCi1idWlsZF9zdHlsZT1nbnUt Y29uZmlndXJlCitidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCi1jb25maWd1 cmVfYXJncz0iLS1kaXNhYmxlLXN0YXRpYyAtLWVuYWJsZS1kZWJ1Zz1pbmZvIFBZVEhPTj0vdXNy L2Jpbi9weXRob24zCi0gLS1lbmFibGUtZ2xhZGV1aSAkKHZvcHRfZW5hYmxlIGdpciBpbnRyb3Nw ZWN0aW9uKSIKK2NvbmZpZ3VyZV9hcmdzPSItRGd0a19kb2M9dHJ1ZSAtRG1hbj10cnVlICQodm9w dF9ib29sIGdpciBpbnRyb3NwZWN0aW9uKSIKIGhvc3RtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBn bm9tZS1kb2MtdXRpbHMgaW50bHRvb2wgaXRzdG9vbCBwa2ctY29uZmlnCi0gYXV0b21ha2UgYXV0 b2NvbmYtYXJjaGl2ZSBsaWJ0b29sIHllbHAtdG9vbHMgZ2V0dGV4dC1kZXZlbCBndGstZG9jIgot bWFrZWRlcGVuZHM9Imd0ayszLWRldmVsIHB5dGhvbjMtZ29iamVjdC1kZXZlbCB3ZWJraXQyZ3Rr LWRldmVsIgorIGdqcy1kZXZlbCB5ZWxwLXRvb2xzIGdldHRleHQtZGV2ZWwgZ3RrLWRvYyIKK21h a2VkZXBlbmRzPSJndGsrMy1kZXZlbCBweXRob24zLWdvYmplY3QtZGV2ZWwgd2Via2l0Mmd0ay1k ZXZlbCBnanMtZGV2ZWwiCiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMgaGljb2xvci1pY29u LXRoZW1lIgogc2hvcnRfZGVzYz0iVXNlciBJbnRlcmZhY2UgRGVzaWduZXIgZm9yIEdUSyszIgog bWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQ TC0yLjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHA6Ly9nbGFk ZS5nbm9tZS5vcmcvIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L2dsYWRlLyR7dmVyc2lvbiUu Kn0vZ2xhZGUtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1lZGVmYTZlYjI0YjRkMTViZDUy NTg5MTIxZGMxMDliYzA4YzI4NjE1N2M0MTI4OGRlYjc0ZGQ5Y2MzZjI2YTIxCitjaGVja3N1bT00 YTkxNGM1YzBiMTljMmU1MmZkNGFkMTUwNzdkNDA2ZGJmZDZhZDAyNDVlMjM5ZDczOTBiZjg3ZjI3 ZDkxMDNjCiBsaWIzMmRpc2FibGVkPXllcwogCiAjIFBhY2thZ2UgYnVpbGQgb3B0aW9ucwogYnVp bGRfb3B0aW9ucz0iZ2lyIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCiAKLXByZV9jb25m aWd1cmUoKSB7Ci0JTk9DT05GSUdVUkU9MSAuL2F1dG9nZW4uc2gKLX0KLQogZG9fY2hlY2soKSB7 CiAJIyBSZXF1aXJlIHJ1bm5pbmcgeHNlcnZlcgogCToKCkZyb20gZWY0MzgyYzE1OTNlYmRkOTAw MDE1M2Q4MDMzM2RmZWViOGYzMWU2OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9V VEYtOD9xPz1DND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89 CiA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMTUgU2VwIDIwMjAgMDU6Mzg6NTUg KzA3MDAKU3ViamVjdDogW1BBVENIIDAxNS8xMDJdIGxpYmhhbmR5OiByZWJ1aWxkIGZvciBnbGFk ZTMtMy4zOC4wLCBtb3ZlZCB0byBHTk9NRQoKLS0tCiBzcmNwa2dzL2xpYmhhbmR5L3RlbXBsYXRl IHwgMTQgKysrKysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA0 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliaGFuZHkvdGVtcGxhdGUgYi9z cmNwa2dzL2xpYmhhbmR5L3RlbXBsYXRlCmluZGV4IDM4NjcyZjFmYjZlLi5jMTljMzg5N2VmYSAx MDA2NDQKLS0tIGEvc3JjcGtncy9saWJoYW5keS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2xpYmhh bmR5L3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbGliaGFu ZHknCiBwa2duYW1lPWxpYmhhbmR5CiB2ZXJzaW9uPTAuMC4xMwotcmV2aXNpb249MQorcmV2aXNp b249Mgogd3Jrc3JjPSJsaWJoYW5keS12JHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPW1lc29uCiBi dWlsZF9oZWxwZXI9ImdpciIKQEAgLTE0LDE0ICsxNCwyMCBAQCBtYWtlZGVwZW5kcz0iZ3RrKzMt ZGV2ZWwgbGliZ2xpYi1kZXZlbCAkKHZvcHRfaWYgZ2xhZGUgZ2xhZGUzLWRldmVsKSIKIHNob3J0 X2Rlc2M9IkxpYnJhcnkgZnVsbCBvZiBHVEsrIHdpZGdldHMgZm9yIG1vYmlsZSBwaG9uZXMiCiBt YWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTEdQ TC0yLjAtb3ItbGF0ZXIiCi1ob21lcGFnZT0iaHR0cHM6Ly9zb3VyY2UucHVyaS5zbS9MaWJyZW01 L2xpYmhhbmR5IgotZGlzdGZpbGVzPSJodHRwczovL3NvdXJjZS5wdXJpLnNtL0xpYnJlbTUvbGli aGFuZHkvLS9hcmNoaXZlL3Yke3ZlcnNpb259L2xpYmhhbmR5LXYke3ZlcnNpb259LnRhci5neiIK LWNoZWNrc3VtPTEzOGJlYzk0ZTY2ZDE1YTdhMTkzNTBiNjU4NDVkNDUyOWJjZDk2OWVhOTEzYWIz ZWI0MzhmNTZmZTQ3ZDVkMzcKK2hvbWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05P TUUvbGliaGFuZHkiCitkaXN0ZmlsZXM9IiRob21lcGFnZS8tL2FyY2hpdmUvdiR7dmVyc2lvbn0v bGliaGFuZHktdiR7dmVyc2lvbn0udGFyLmd6IgorY2hlY2tzdW09NjQ1MzU1YTAwOWYyM2YyNTRl YWVjNzc1MmI5NDg5YzNjMmY1ODMyMzk3ZmNlYzc1NDMzYTdlMDBlZmJmZTUyZgogCiBidWlsZF9v cHRpb25zPSJnaXIgdmFsYSBnbGFkZSIKIGRlc2Nfb3B0aW9uX2dsYWRlPSJHZW5lcmF0ZSBnbGFk ZSBtb2R1bGVzIGFuZCBjYXRhbG9nIGZpbGVzIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIg dmFsYSBnbGFkZSIKIAorIyBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvbGliaGFuZHkv LS9tZXJnZV9yZXF1ZXN0cy81NTkKK0NGTEFHUz0iLURHUENfT0JKRUNUX0RFTElNSVRFUj1HTEFE RV9QUk9QRVJUWV9ERUZfT0JKRUNUX0RFTElNSVRFUiIKK0NGTEFHUys9IiAtRGdsYWRlX3dpZGdl dF9hY3Rpb25fZ2V0X2NsYXNzPWdsYWRlX3dpZGdldF9hY3Rpb25fZ2V0X2RlZiIKKyMgaHR0cHM6 Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dsYWRlLy0vY29tbWl0L2JiNjI2ZGQKK0NGTEFHUys9 IiAtREdXQV9HRVRfQ0xBU1M9R0xBREVfV0lER0VUX0FEQVBUT1JfR0VUX0FEQVBUT1JfQ0xBU1Mi CisKIGxpYmhhbmR5LWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0k e3ZlcnNpb259XyR7cmV2aXNpb259IGd0ayszLWRldmVsIgogCXNob3J0X2Rlc2MrPSIgLSBkZXZl bG9wbWVudCBmaWxlcyIKCkZyb20gZWZmOTYyMDVlM2QxNWY1NTY3YjQ0ZWRmYmIyNjA4ZjUwMDAz YjY3MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9 QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFp bC5jb20+CkRhdGU6IE1vbiwgMTQgU2VwIDIwMjAgMjA6MzQ6NDYgKzA3MDAKU3ViamVjdDogW1BB VENIIDAxNi8xMDJdIGxpYmhhbmR5MTogdXBkYXRlIHRvIDEuMC4wCgotLS0KIHNyY3BrZ3MvbGli aGFuZHkxL3RlbXBsYXRlIHwgNyArKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25z KCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGliaGFuZHkxL3RlbXBs YXRlIGIvc3JjcGtncy9saWJoYW5keTEvdGVtcGxhdGUKaW5kZXggMTkxZTY5OGIwZDYuLjU0N2Fm Y2NhYTExIDEwMDY0NAotLS0gYS9zcmNwa2dzL2xpYmhhbmR5MS90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL2xpYmhhbmR5MS90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ2xpYmhhbmR5MScKIHBrZ25hbWU9bGliaGFuZHkxCi12ZXJzaW9uPTAuOTAuMAordmVyc2lv bj0xLjAuMAogcmV2aXNpb249MQogd3Jrc3JjPSJsaWJoYW5keS0ke3ZlcnNpb259IgogYnVpbGRf c3R5bGU9bWVzb24KQEAgLTE2LDEyICsxNiwxNSBAQCBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3Jw aGFuQHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTEdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFn ZT0iaHR0cHM6Ly9zb3VyY2UucHVyaS5zbS9MaWJyZW01L2xpYmhhbmR5IgogZGlzdGZpbGVzPSIk e0dOT01FX1NJVEV9L2xpYmhhbmR5LyR7dmVyc2lvbiUuKn0vbGliaGFuZHktJHt2ZXJzaW9ufS50 YXIueHoiCi1jaGVja3N1bT02YWIwODY5YTNhYTQ4MzI5OGVhMjBlYzg5ZDRjMTRjMzhiYTRkZTQx NmIzMzE4MWQyMWUxNWE2MDM5ZGY1OTg1CitjaGVja3N1bT1hOTM5ODU4MmY0N2I3ZDcyOTIwNWQ2 ZWFjMGMwNjhmZWYzNWFhZjI0OWZkZDU3ZWVhMzcyNGY4NTE4ZDI2Njk5CiAKIGJ1aWxkX29wdGlv bnM9ImdpciBnbGFkZSIKIGRlc2Nfb3B0aW9uX2dsYWRlPSJHZW5lcmF0ZSBnbGFkZSBtb2R1bGVz IGFuZCBjYXRhbG9nIGZpbGVzIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIgZ2xhZGUiCiAK KyMgaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dsYWRlLy0vY29tbWl0L2JiNjI2ZGQK K0NGTEFHUz0iLURHV0FfR0VUX0NMQVNTPUdMQURFX1dJREdFVF9BREFQVE9SX0dFVF9BREFQVE9S X0NMQVNTIgorCiBsaWJoYW5keTEtZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSIke3NvdXJj ZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gZ3RrKzMtZGV2ZWwiCiAJY29uZmxpY3RzPSJs aWJoYW5keS1kZXZlbD49MCIKCkZyb20gZmI4ODk2NjE3Y2Q1NDUxYjUyZTU2ZDI5YzQ5ZWU3Njk5 ZGI3NjhkMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89 QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBn bWFpbC5jb20+CkRhdGU6IFR1ZSwgMTUgU2VwIDIwMjAgMDU6NDE6MDEgKzA3MDAKU3ViamVjdDog W1BBVENIIDAxNy8xMDJdIGxpYnhmY2U0dWk6IHJlYnVpbGQgZm9yIGdsYWRlMy0zLjM4LjAKCi0t LQogc3JjcGtncy9saWJ4ZmNlNHVpL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEg aW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJ4ZmNl NHVpL3RlbXBsYXRlIGIvc3JjcGtncy9saWJ4ZmNlNHVpL3RlbXBsYXRlCmluZGV4IDI1YTVjNDc5 OTU1Li4wYTYyYWQxODJiNCAxMDA2NDQKLS0tIGEvc3JjcGtncy9saWJ4ZmNlNHVpL3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvbGlieGZjZTR1aS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ2xpYnhmY2U0dWknCiBwa2duYW1lPWxpYnhmY2U0dWkKIHZlcnNpb249 NC4xNC4xCi1yZXZpc2lvbj00CityZXZpc2lvbj01CiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJl CiBidWlsZF9oZWxwZXI9ImdpciIKIGNvbmZpZ3VyZV9hcmdzPSItLWRpc2FibGUtc3RhdGljIgoK RnJvbSA0MDdiZDVhNWNhYjUwNGM4MGEzZDFkYTE1MWMxMDMwNmNjNjAwMjM1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4K RGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDE4 LzEwMl0gbGliZGF6emxlOiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIHNyY3BrZ3MvbGliZGF6emxl L3RlbXBsYXRlIHwgMjQgKysrKysrKysrKysrKystLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwg MTQgaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9s aWJkYXp6bGUvdGVtcGxhdGUgYi9zcmNwa2dzL2xpYmRhenpsZS90ZW1wbGF0ZQppbmRleCA1YWMw OWZlZWZjOS4uOWI4MDdiZTk0NzQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGliZGF6emxlL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvbGliZGF6emxlL3RlbXBsYXRlCkBAIC0xLDIzICsxLDI5IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdsaWJkYXp6bGUnCiBwa2duYW1lPWxpYmRhenpsZQotdmVyc2lv bj0zLjM2LjAKK3ZlcnNpb249My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgog YnVpbGRfaGVscGVyPSJnaXIiCi1jb25maWd1cmVfYXJncz0iLURlbmFibGVfZ3RrX2RvYz1mYWxz ZSAtRHdpdGhfdmFwaT0kKHZvcHRfaWYgdmFsYSB0cnVlIGZhbHNlKQotIC1Ed2l0aF9pbnRyb3Nw ZWN0aW9uPSQodm9wdF9pZiBnaXIgdHJ1ZSBmYWxzZSkiCi1ob3N0bWFrZWRlcGVuZHM9ImdsaWIt ZGV2ZWwgcGtnLWNvbmZpZyAkKHZvcHRfaWYgdmFsYSAndmFsYScpIgorY29uZmlndXJlX2FyZ3M9 Ii1EZW5hYmxlX2d0a19kb2M9ZmFsc2UKKyAkKHZvcHRfYm9vbCBnaXIgd2l0aF92YXBpKQorICQo dm9wdF9ib29sIGdpciB3aXRoX2ludHJvc3BlY3Rpb24pIgoraG9zdG1ha2VkZXBlbmRzPSJnbGli LWRldmVsIHBrZy1jb25maWcgJCh2b3B0X2lmIGdpciB2YWxhKSIKIG1ha2VkZXBlbmRzPSJndGsr My1kZXZlbCBsaWJnbGliLWRldmVsIgogc2hvcnRfZGVzYz0iTGlicmFyeSB0byBkZWxpZ2h0IHlv dXIgdXNlcnMgd2l0aCBmYW5jeSBmZWF0dXJlcyIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxn b3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBh Z2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9saWJkYXp6bGUiCi1jaGFuZ2Vsb2c9 Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9HTk9NRS9saWJkYXp6bGUvbGliZGF6 emxlLTMtMzIvTkVXUyIKK2NoYW5nZWxvZz0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01F L2xpYmRhenpsZS8tL3Jhdy8ke3ZlcnNpb259L05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lU RX0vbGliZGF6emxlLyR7dmVyc2lvbiUuKn0vbGliZGF6emxlLSR7dmVyc2lvbn0udGFyLnh6Igot Y2hlY2tzdW09ODJiMzFiYmY1NTBmYzYyOTcwYzc4YmY3ZjlkNTVlNWZhZTViOGVhMTNiMjRmZTJk MTNjOGM2MDM5NDA5ZDk1OAorY2hlY2tzdW09ZTE4YWYyODIxNzk0M2JjZWMxMDY1ODUyOThhOTFl YzNkYTQ4YWEzYWQ2MmZkMDk5MmYyM2YwYzcwY2QxNjc4ZgogCi1idWlsZF9vcHRpb25zPSJnaXIg dmFsYSIKLWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIHZhbGEiCitidWlsZF9vcHRpb25zPSJn aXIiCitidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKKworIyBuZWVkcyBYCitkb19jaGVjaygp IHsKKwk6Cit9CiAKIGxpYmRhenpsZS1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVuZHM9IiR7c291 cmNlcGtnfS0ke3ZlcnNpb259XyR7cmV2aXNpb259IGd0ayszLWRldmVsIgpAQCAtMjgsOCArMzQs NiBAQCBsaWJkYXp6bGUtZGV2ZWxfcGFja2FnZSgpIHsKIAkJdm1vdmUgInVzci9saWIvKi5zbyIK IAkJaWYgWyAiJGJ1aWxkX29wdGlvbl9naXIiIF07IHRoZW4KIAkJCXZtb3ZlIHVzci9zaGFyZS9n aXItMS4wCi0JCWZpCi0JCWlmIFsgIiRidWlsZF9vcHRpb25fdmFsYSIgXTsgdGhlbgogCQkJdm1v dmUgdXNyL3NoYXJlL3ZhbGEKIAkJZmkKIAl9CgpGcm9tIDVkMTdlMjVmOGNhMmFmYmNjMmUxNGUy ZDEyMTE3MWU3MDUwMDE0MGEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/ cT89QzQ9OTBvPUMzPUEwbj0yMFRyPUUxPUJBPUE3bj0yMEM9QzM9QjRuZz0yMERhbmg/PQogPGNv bmdkYW5ocXhAZ21haWwuY29tPgpEYXRlOiBUdWUsIDE1IFNlcCAyMDIwIDA1OjQzOjEzICswNzAw ClN1YmplY3Q6IFtQQVRDSCAwMTkvMTAyXSBhbmp1dGE6IHJlYnVpbGQgZm9yIGdsYWRlMy0zLjM4 LjAsIHZhbGEtMC41MAoKLS0tCiBzcmNwa2dzL2FuanV0YS90ZW1wbGF0ZSB8IDIgKy0KIDEgZmls ZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvYW5qdXRhL3RlbXBsYXRlIGIvc3JjcGtncy9hbmp1dGEvdGVtcGxhdGUKaW5kZXggYzIx YzkyN2NkMTIuLmI0NmQ1OGFlYWZlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2FuanV0YS90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL2FuanV0YS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxh dGUgZmlsZSBmb3IgJ2FuanV0YScKIHBrZ25hbWU9YW5qdXRhCiB2ZXJzaW9uPTMuMzQuMAotcmV2 aXNpb249MworcmV2aXNpb249NAogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogYnVpbGRfaGVs cGVyPSJnaXIgcWVtdSIKIGNvbmZpZ3VyZV9hcmdzPSItLWRpc2FibGUtY29tcGlsZS13YXJuaW5n cyAtLWRpc2FibGUtc2NoZW1hcy1jb21waWxlCgpGcm9tIDc0NTVmYmRkYWRlMDc1MmU5N2E2ZTU0 NDgwNjYwZTJkZDYwMmZhZDMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBL b2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDA1OjI4 OjE0ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMjAvMTAyXSBzeXNwcm9mOiB1cGRhdGUgdG8gMy4z OC4wCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgNCArLQogLi4uL3BhdGNoZXMvYWxsb2NzLWJ5LXNpemUtZ3NpemUtZm9ybWF0LnBhdGNoIHwg IDEyIC0tCiBzcmNwa2dzL3N5c3Byb2YvcGF0Y2hlcy9idWlsZC5wYXRjaCAgICAgICAgICAgfCAg MTAgKysKIHNyY3BrZ3Mvc3lzcHJvZi9wYXRjaGVzL211c2wucGF0Y2ggICAgICAgICAgICB8IDEy NSArKysrKysrKysrKysrKysrKysKIHNyY3BrZ3Mvc3lzcHJvZi90ZW1wbGF0ZSAgICAgICAgICAg ICAgICAgICAgICB8ICAgNCArLQogNSBmaWxlcyBjaGFuZ2VkLCAxMzkgaW5zZXJ0aW9ucygrKSwg MTYgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9zeXNwcm9mL3BhdGNo ZXMvYWxsb2NzLWJ5LXNpemUtZ3NpemUtZm9ybWF0LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjcGtncy9zeXNwcm9mL3BhdGNoZXMvYnVpbGQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL3N5c3Byb2YvcGF0Y2hlcy9tdXNsLnBhdGNoCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3No bGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggNGI3Njc5YmY4YWMuLmUzOGVjODVkZWMxIDEwMDY0 NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTMxNTMsOCArMzE1 Myw4IEBAIGxpYm1pcmFnZS5zby4xMSBsaWJtaXJhZ2UtMy4xLjBfMQogbGlid2todG1sdG94LnNv LjAgbGlid2todG1sdG9wZGYtMC4xMi41XzEKIGxpYml4bWwuc28uMTAgbGlidXBucDEuOC0xLjgu Ml8xCiBsaWJ1cG5wLnNvLjEzIGxpYnVwbnAxLjgtMS44LjRfMQotbGlic3lzcHJvZi0zLnNvIHN5 c3Byb2YtMy4zNC4wXzEKLWxpYnN5c3Byb2YtdWktMy5zbyBzeXNwcm9mLTMuMzQuMF8xCitsaWJz eXNwcm9mLTQuc28gc3lzcHJvZi0zLjM3LjkwXzEKK2xpYnN5c3Byb2YtdWktNC5zbyBzeXNwcm9m LTMuMzcuOTBfMQogbGlibW96anMtNTIuc28gbW96anM1Mi01Mi4zLjBfMQogbGlibW96anMtNTIu c28uMCBtb3pqczUyLTUyLjMuMF8xCiBsaWJ2YWxhLTAuNTAuc28uMCBsaWJ2YWxhLTAuNTAuMF8x CmRpZmYgLS1naXQgYS9zcmNwa2dzL3N5c3Byb2YvcGF0Y2hlcy9hbGxvY3MtYnktc2l6ZS1nc2l6 ZS1mb3JtYXQucGF0Y2ggYi9zcmNwa2dzL3N5c3Byb2YvcGF0Y2hlcy9hbGxvY3MtYnktc2l6ZS1n c2l6ZS1mb3JtYXQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFmZWUwN2Vi YmMyLi4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL3N5c3Byb2YvcGF0Y2hlcy9hbGxvY3MtYnkt c2l6ZS1nc2l6ZS1mb3JtYXQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi1k aWZmIC1yYXVOIHNyYy90ZXN0cy9hbGxvY3MtYnktc2l6ZS5jIHNyYy90ZXN0cy9hbGxvY3MtYnkt c2l6ZS5jCi0tLS0gc3JjL3Rlc3RzL2FsbG9jcy1ieS1zaXplLmMJMjAyMC0wMy0yMiAyMDowMDox Mi42NzcwNDg4MjIgKzAxMDAKLSsrKyBzcmMvdGVzdHMvYWxsb2NzLWJ5LXNpemUuYwkyMDIwLTAz LTIyIDIwOjAxOjA3LjAwMDQxODM2MSArMDEwMAotQEAgLTEwOSw3ICsxMDksNyBAQAotICAgICB7 Ci0gICAgICAgY29uc3QgSXRlbSAqaXRlbSA9ICZnX2FycmF5X2luZGV4IChhciwgSXRlbSwgaSk7 Ci0gCi0tICAgICAgZ19wcmludCAoIiUiR19HVUlOVDY0X0ZPUk1BVCIsJSJHX0dVSU5UNjRfRk9S TUFUIiwlIkdfR1VJTlQ2NF9GT1JNQVQiXG4iLAotKyAgICAgIGdfcHJpbnQgKCIlIkdfR1NJWkVf Rk9STUFUIiwlIkdfR1NJWkVfRk9STUFUIiwlIkdfR1NJWkVfRk9STUFUIlxuIiwKLSAgICAgICAg ICAgICAgICBpdGVtLT5zaXplLCBpdGVtLT5jbXAsIGl0ZW0tPmNvdW50KTsKLSAgICAgfQotIH0K ZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc3lzcHJvZi9wYXRjaGVzL2J1aWxkLnBhdGNoIGIvc3JjcGtn cy9zeXNwcm9mL3BhdGNoZXMvYnVpbGQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLmFiN2MyYzFjMTY0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9zeXNw cm9mL3BhdGNoZXMvYnVpbGQucGF0Y2gKQEAgLTAsMCArMSwxMCBAQAorLS0tIHNyYy9saWJzeXNw cm9mLWNhcHR1cmUvc3lzcHJvZi1jYXB0dXJlLWNvbmRpdGlvbi5jCisrKysgc3JjL2xpYnN5c3By b2YtY2FwdHVyZS9zeXNwcm9mLWNhcHR1cmUtY29uZGl0aW9uLmMKK0BAIC0yNjksNiArMjY5LDcg QEAgc3lzcHJvZl9jYXB0dXJlX2NvbmRpdGlvbl9jb3B5IChjb25zdCBTeXNwcm9mQ2FwdHVyZUNv bmRpdGlvbiAqc2VsZikKKyAgICAgfQorIAorICAgc3lzcHJvZl9hc3NlcnRfbm90X3JlYWNoZWQg KCk7CisrICByZXR1cm4gTlVMTDsKKyB9CisgCisgc3RhdGljIHZvaWQKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3Mvc3lzcHJvZi9wYXRjaGVzL211c2wucGF0Y2ggYi9zcmNwa2dzL3N5c3Byb2YvcGF0Y2hl cy9tdXNsLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41MWY0 MjEyODg5MQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvc3lzcHJvZi9wYXRjaGVzL211c2wu cGF0Y2gKQEAgLTAsMCArMSwxMjUgQEAKK0Zyb20gMWQyZGUzMmU5N2JmNTU2OWNjMzNlZTlhOTBj ODczZTFiYmQyYjFlNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IHE2NiA8ZGFuaWVs QG9jdGFmb3JnZS5vcmc+CitEYXRlOiBTdW4sIDYgU2VwIDIwMjAgMTg6MjE6MzcgKzAyMDAKK1N1 YmplY3Q6IFtQQVRDSF0gZml4IGJ1aWxkIG9uIG11c2wKKworLS0tCisgLi4uL3N5c3Byb2YtY2Fw dHVyZS1jdXJzb3IuYyAgICAgICAgICAgICAgICAgIHwgIDEgKworIC4uLi9zeXNwcm9mLWNhcHR1 cmUtcmVhZGVyLmMgICAgICAgICAgICAgICAgICB8ICAxICsKKyBzcmMvbGlic3lzcHJvZi1jYXB0 dXJlL3N5c3Byb2YtY2FwdHVyZS11dGlsLmMgfCAgMSArCisgLi4uL3N5c3Byb2YtY2FwdHVyZS13 cml0ZXItY2F0LmMgICAgICAgICAgICAgIHwgIDEgKworIHNyYy9saWJzeXNwcm9mLWNhcHR1cmUv c3lzcHJvZi1jb2xsZWN0b3IuYyAgICB8ICAxICsKKyBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5 c3Byb2YtY29tcGF0LmggICAgICAgfCAyOCArKysrKysrKysrKysrKysrKysrCisgc3JjL2xpYnN5 c3Byb2YtY2FwdHVyZS9zeXNwcm9mLXBsYXRmb3JtLmMgICAgIHwgIDEgKworIDcgZmlsZXMgY2hh bmdlZCwgMzQgaW5zZXJ0aW9ucygrKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvbGlic3lzcHJv Zi1jYXB0dXJlL3N5c3Byb2YtY29tcGF0LmgKKworZGlmZiAtLWdpdCBzcmMvbGlic3lzcHJvZi1j YXB0dXJlL3N5c3Byb2YtY2FwdHVyZS1jdXJzb3IuYyBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5 c3Byb2YtY2FwdHVyZS1jdXJzb3IuYworaW5kZXggMjQ1NjNmMC4uYmI3N2E2MCAxMDA2NDQKKy0t LSBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY2FwdHVyZS1jdXJzb3IuYworKysrIHNy Yy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jYXB0dXJlLWN1cnNvci5jCitAQCAtNTksNiAr NTksNyBAQAorICNpbmNsdWRlIDxhc3NlcnQuaD4KKyAjaW5jbHVkZSA8c3RkbGliLmg+CisgCisr I2luY2x1ZGUgInN5c3Byb2YtY29tcGF0LmgiCisgI2luY2x1ZGUgInN5c3Byb2YtY2FwdHVyZS1j b25kaXRpb24uaCIKKyAjaW5jbHVkZSAic3lzcHJvZi1jYXB0dXJlLWN1cnNvci5oIgorICNpbmNs dWRlICJzeXNwcm9mLWNhcHR1cmUtcmVhZGVyLmgiCitkaWZmIC0tZ2l0IHNyYy9saWJzeXNwcm9m LWNhcHR1cmUvc3lzcHJvZi1jYXB0dXJlLXJlYWRlci5jIHNyYy9saWJzeXNwcm9mLWNhcHR1cmUv c3lzcHJvZi1jYXB0dXJlLXJlYWRlci5jCitpbmRleCA2N2M2YjI4Li4yNTJkMDA2IDEwMDY0NAor LS0tIHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jYXB0dXJlLXJlYWRlci5jCisrKysg c3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNhcHR1cmUtcmVhZGVyLmMKK0BAIC02OCw2 ICs2OCw3IEBACisgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorICNpbmNsdWRlIDx1bmlzdGQuaD4K KyAKKysjaW5jbHVkZSAic3lzcHJvZi1jb21wYXQuaCIKKyAjaW5jbHVkZSAic3lzcHJvZi1jYXB0 dXJlLXJlYWRlci5oIgorICNpbmNsdWRlICJzeXNwcm9mLWNhcHR1cmUtdXRpbC1wcml2YXRlLmgi CisgI2luY2x1ZGUgInN5c3Byb2YtY2FwdHVyZS13cml0ZXIuaCIKK2RpZmYgLS1naXQgc3JjL2xp YnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNhcHR1cmUtdXRpbC5jIHNyYy9saWJzeXNwcm9mLWNh cHR1cmUvc3lzcHJvZi1jYXB0dXJlLXV0aWwuYworaW5kZXggMGJiZWEwNi4uMGU1ZjdlNyAxMDA2 NDQKKy0tLSBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY2FwdHVyZS11dGlsLmMKKysr KyBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY2FwdHVyZS11dGlsLmMKK0BAIC01Niw2 ICs1Niw3IEBACisgCisgI2luY2x1ZGUgImNvbmZpZy5oIgorIAorKyNpbmNsdWRlIDxzdGRpbnQu aD4KKyAjaW5jbHVkZSA8YXNzZXJ0Lmg+CisgI2luY2x1ZGUgPGVycm5vLmg+CisgI2luY2x1ZGUg PHVuaXN0ZC5oPgorZGlmZiAtLWdpdCBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY2Fw dHVyZS13cml0ZXItY2F0LmMgc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNhcHR1cmUt d3JpdGVyLWNhdC5jCitpbmRleCA2NjE3MWI5Li45ZmViYmJiIDEwMDY0NAorLS0tIHNyYy9saWJz eXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jYXB0dXJlLXdyaXRlci1jYXQuYworKysrIHNyYy9saWJz eXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1jYXB0dXJlLXdyaXRlci1jYXQuYworQEAgLTYzLDYgKzYz LDcgQEAKKyAjaW5jbHVkZSA8c3RkbGliLmg+CisgI2luY2x1ZGUgPHVuaXN0ZC5oPgorIAorKyNp bmNsdWRlICJzeXNwcm9mLWNvbXBhdC5oIgorICNpbmNsdWRlICJzeXNwcm9mLWNhcHR1cmUuaCIK KyAjaW5jbHVkZSAic3lzcHJvZi1tYWNyb3MtaW50ZXJuYWwuaCIKKyAKK2RpZmYgLS1naXQgc3Jj L2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNvbGxlY3Rvci5jIHNyYy9saWJzeXNwcm9mLWNh cHR1cmUvc3lzcHJvZi1jb2xsZWN0b3IuYworaW5kZXggMWQ3YTBkNi4uN2FmNmM5NiAxMDA2NDQK Ky0tLSBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY29sbGVjdG9yLmMKKysrKyBzcmMv bGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY29sbGVjdG9yLmMKK0BAIC03Myw2ICs3Myw3IEBA CisgCisgI2luY2x1ZGUgIm1hcHBlZC1yaW5nLWJ1ZmZlci5oIgorIAorKyNpbmNsdWRlICJzeXNw cm9mLWNvbXBhdC5oIgorICNpbmNsdWRlICJzeXNwcm9mLWNhcHR1cmUtdXRpbC1wcml2YXRlLmgi CisgI2luY2x1ZGUgInN5c3Byb2YtY29sbGVjdG9yLmgiCisgI2luY2x1ZGUgInN5c3Byb2YtbWFj cm9zLWludGVybmFsLmgiCitkaWZmIC0tZ2l0IHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJv Zi1jb21wYXQuaCBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY29tcGF0LmgKK25ldyBm aWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi5hZTliZjEwCistLS0gL2Rldi9udWxsCisr Kysgc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNvbXBhdC5oCitAQCAtMCwwICsxLDI4 IEBACisrLyogYWRkZWQgYnkgcTY2IEAgdm9pZCB0byBmaXggYnVpbGQgb24gbXVzbCAqLworKwor KyNwcmFnbWEgb25jZQorKworKyNpZm5kZWYgX19HTElCQ19fCisrCisrI2luY2x1ZGUgPHN0ZGxp Yi5oPgorKyNpbmNsdWRlIDxlcnJuby5oPgorKworKy8qIGZyb20gZ2xpYmMgKi8KKysjaWZuZGVm IFRFTVBfRkFJTFVSRV9SRVRSWQorKyMgZGVmaW5lIFRFTVBfRkFJTFVSRV9SRVRSWShleHByZXNz aW9uKSBcCisrICAoX19leHRlbnNpb25fXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAoeyBsb25nIGludCBfX3Jlc3Vs dDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK KysgICAgICAgZG8gX19yZXN1bHQgPSAobG9uZyBpbnQpIChleHByZXNzaW9uKTsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgICAgIHdoaWxlIChfX3Jlc3VsdCA9PSAtMUwg JiYgZXJybm8gPT0gRUlOVFIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICAg ICBfX3Jlc3VsdDsgfSkpCisrI2VuZGlmCisrCisrc3RhdGljIGlubGluZSB2b2lkICpyZWFsbG9j YXJyYXkodm9pZCAqcCwgc2l6ZV90IG5tZW1iLCBzaXplX3Qgc3opIHsKKysgICAgaWYgKHN6ICYm IChubWVtYiA+ICgoc2l6ZV90KS0xIC8gc3opKSkgeworKyAgICAgICAgZXJybm8gPSBFTk9NRU07 CisrICAgICAgICByZXR1cm4gTlVMTDsKKysgICAgfQorKyAgICByZXR1cm4gcmVhbGxvYyhwLCBu bWVtYiAqIHN6KTsKKyt9CisrCisrI2VuZGlmCitkaWZmIC0tZ2l0IHNyYy9saWJzeXNwcm9mLWNh cHR1cmUvc3lzcHJvZi1wbGF0Zm9ybS5jIHNyYy9saWJzeXNwcm9mLWNhcHR1cmUvc3lzcHJvZi1w bGF0Zm9ybS5jCitpbmRleCBhODBhYjg5Li4wNWJkNTkwIDEwMDY0NAorLS0tIHNyYy9saWJzeXNw cm9mLWNhcHR1cmUvc3lzcHJvZi1wbGF0Zm9ybS5jCisrKysgc3JjL2xpYnN5c3Byb2YtY2FwdHVy ZS9zeXNwcm9mLXBsYXRmb3JtLmMKK0BAIC02MCw2ICs2MCw3IEBACisgI2luY2x1ZGUgPHN5cy9z eXNjYWxsLmg+CisgI2luY2x1ZGUgPHVuaXN0ZC5oPgorIAorKyNpbmNsdWRlICJzeXNwcm9mLWNv bXBhdC5oIgorICNpbmNsdWRlICJzeXNwcm9mLWNhcHR1cmUtdXRpbC1wcml2YXRlLmgiCisgI2lu Y2x1ZGUgInN5c3Byb2YtcGxhdGZvcm0uaCIKKyAKKy0tIAorMi4yOC4wCisKZGlmZiAtLWdpdCBh L3NyY3BrZ3Mvc3lzcHJvZi90ZW1wbGF0ZSBiL3NyY3BrZ3Mvc3lzcHJvZi90ZW1wbGF0ZQppbmRl eCA2OGJjYTYwMjU1My4uZWFlNTFlYTczNTYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvc3lzcHJvZi90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3N5c3Byb2YvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdzeXNwcm9mJwogcGtnbmFtZT1zeXNwcm9mCi12ZXJzaW9uPTMu MzYuMAordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBjb25m aWd1cmVfYXJncz0iLURlbmFibGVfZ3RrPXRydWUgLURzeXN0ZW1kdW5pdGRpcj1kZWxldGVtZSIK QEAgLTExLDcgKzExLDcgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGlu dXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0zLjAtb3ItbGF0ZXIiCiBo b21lcGFnZT0iaHR0cDovL3N5c3Byb2YuY29tLyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8k e3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNo ZWNrc3VtPTg2NzBkYjRkYWNmN2IyMTlkMzBjNTc1YzQ2NWIxN2M4ZWQ2NzI0ZGJhZGUzNDdmMmNk ZTk1NDhiZmYwMzkxMDgKK2NoZWNrc3VtPThiY2Q3MjhkYzJmNzRlNmY1ODk0MTAzNzBkZmIxYjg4 MDE0NjhiYjNjYzE4MDNhYTI0MDczNWE3Y2ZmMjQxY2UKIAogIyBmb3IgSVRTIHJ1bGVzCiBpZiBb ICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KCkZyb20gYzFlZjRhZjViZDY3NTM5ZTE2MDJhMjk2NWIx ZjM2NGJlMDRiOTJlYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVz YSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDgg KzAyMDAKU3ViamVjdDogW1BBVENIIDAyMS8xMDJdIHRyYWNrZXI6IHVwZGF0ZSB0byAyLjMuNgoK LS0tCiAuLi4vdHJhY2tlci9wYXRjaGVzL2ZhaWxpbmctdGVzdC1tdXNsLnBhdGNoICAgfCAyNCAr KysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL3RyYWNrZXIvdGVtcGxhdGUgICAgICAgICAgICAg ICAgICAgICAgfCAgOSArKystLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDI5IGluc2VydGlvbnMoKyks IDQgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy90cmFja2VyL3BhdGNo ZXMvZmFpbGluZy10ZXN0LW11c2wucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3RyYWNrZXIv cGF0Y2hlcy9mYWlsaW5nLXRlc3QtbXVzbC5wYXRjaCBiL3NyY3BrZ3MvdHJhY2tlci9wYXRjaGVz L2ZhaWxpbmctdGVzdC1tdXNsLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi5mZjE4ZjA2ZGU5YgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvdHJhY2tlci9w YXRjaGVzL2ZhaWxpbmctdGVzdC1tdXNsLnBhdGNoCkBAIC0wLDAgKzEsMjQgQEAKK0Zyb20gNWVl N2Q1OGYxOTU0MmQxZGFjODcyYmFkZDcyNjY5ZWUyODhiZDMxNiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKK0Zyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgorRGF0ZTog V2VkLCAxNiBTZXAgMjAyMCAyMjoxMTo1MCArMDIwMAorU3ViamVjdDogW1BBVENIXSBkcm9wIHRl c3QgdGhhdCBmYWlscyBvbiBtdXNsCisKKy0tLQorIHRlc3RzL2xpYnRyYWNrZXItY29tbW9uL21l c29uLmJ1aWxkIHwgMSAtCisgMSBmaWxlIGNoYW5nZWQsIDEgZGVsZXRpb24oLSkKKworZGlmZiAt LWdpdCB0ZXN0cy9saWJ0cmFja2VyLWNvbW1vbi9tZXNvbi5idWlsZCB0ZXN0cy9saWJ0cmFja2Vy LWNvbW1vbi9tZXNvbi5idWlsZAoraW5kZXggNTViN2FkYS4uNjk2ODhlMCAxMDA2NDQKKy0tLSB0 ZXN0cy9saWJ0cmFja2VyLWNvbW1vbi9tZXNvbi5idWlsZAorKysrIHRlc3RzL2xpYnRyYWNrZXIt Y29tbW9uL21lc29uLmJ1aWxkCitAQCAtMiw3ICsyLDYgQEAgbGlidHJhY2tlcl9jb21tb25fdGVz dHMgPSBbCisgICAgICdkYXRlLXRpbWUnLAorICAgICAnZGJ1cycsCisgICAgICdmaWxlLXV0aWxz JywKKy0gICAgJ3NjaGVkJywKKyAgICAgJ3R5cGUtdXRpbHMnLAorICAgICAndXRpbHMnLAorIF0K Ky0tIAorMi4yOC4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdHJhY2tlci90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvdHJhY2tlci90ZW1wbGF0ZQppbmRleCAzNzA3NGNiMzQ4ZC4uODEwNjc1Njc3ZmUgMTAw NjQ0Ci0tLSBhL3NyY3BrZ3MvdHJhY2tlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3RyYWNrZXIv dGVtcGxhdGUKQEAgLTEsMjIgKzEsMjMgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3RyYWNrZXIn CiBwa2duYW1lPXRyYWNrZXIKLXZlcnNpb249Mi4zLjEKLXJldmlzaW9uPTIKK3ZlcnNpb249Mi4z LjYKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKIGNv bmZpZ3VyZV9hcmdzPSItRGRvY3M9ZmFsc2UgLURmdHM9dHJ1ZSAtRGZ1bmN0aW9uYWxfdGVzdHM9 ZmFsc2UKICAtRGpvdXJuYWw9dHJ1ZSAtRG1hbj10cnVlIC1EbmV0d29ya19tYW5hZ2VyPWVuYWJs ZWQgLURzdGVtbWVyPWRpc2FibGVkCiAgLURzeXN0ZW1kX3VzZXJfc2VydmljZXM9bm8iCi1ob3N0 bWFrZWRlcGVuZHM9InBrZy1jb25maWcgZ2xpYi1kZXZlbCB2YWxhIgoraG9zdG1ha2VkZXBlbmRz PSJnZXR0ZXh0IHBrZy1jb25maWcgZ2xpYi1kZXZlbCB2YWxhIgogbWFrZWRlcGVuZHM9ImRidXMt ZGV2ZWwgbGliZ2xpYi1kZXZlbCBpY3UtZGV2ZWwganNvbi1nbGliLWRldmVsCiAgbGlic291cC1k ZXZlbCBsaWJ4bWwyLWRldmVsIHNxbGl0ZS1kZXZlbCBOZXR3b3JrTWFuYWdlci1kZXZlbAogIGJh c2gtY29tcGxldGlvbiIKK2NoZWNrZGVwZW5kcz0idGFyIgogc2hvcnRfZGVzYz0iUGVyc29uYWwg c2VhcmNoIHRvb2wgYW5kIHN0b3JhZ2Ugc3lzdGVtIgogbWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9y cGhhbkB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFn ZT0iaHR0cHM6Ly9saXZlLmdub21lLm9yZy9UcmFja2VyIgogZGlzdGZpbGVzPSIke0dOT01FX1NJ VEV9L3RyYWNrZXIvJHt2ZXJzaW9uJS4qfS90cmFja2VyLSR7dmVyc2lvbn0udGFyLnh6IgotY2hl Y2tzdW09YjY3NDg3MjZlNDY1YWQyZjRkOTkxNTYwNjM0YjFmZDBkZjg4NDFmM2Q5ODFiM2I4Mzdj NDE2MmFiZWRmMDhhMQorY2hlY2tzdW09YmQxZWI0MTIyMTM1Mjk2ZmE3YjU3YjFjM2ZhMGVkNjAy Y2Y3ZDA2YzBiOGU1MzRkMGJkMTdmZjVmOTdmZWVmMgogCiBpZiBbICIkQ1JPU1NfQlVJTEQiIF07 IHRoZW4KIAlob3N0bWFrZWRlcGVuZHMrPSIgZGJ1cyIKCkZyb20gOWViOGFlNzcwNjUzMGJhZDQy NzIxMzFjYzhkNjczOGMyMjk2ZjY4MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFu aWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTcgU2VwIDIwMjAg MDA6MjI6MTEgKzAyMDAKU3ViamVjdDogW1BBVENIIDAyMi8xMDJdIHRyYWNrZXItbWluZXJzOiB1 cGRhdGUgdG8gMi4zLjUKCi0tLQogc3JjcGtncy90cmFja2VyLW1pbmVycy90ZW1wbGF0ZSB8IDE3 ICsrKysrKysrKy0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCA4IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdHJhY2tlci1taW5lcnMvdGVtcGxhdGUg Yi9zcmNwa2dzL3RyYWNrZXItbWluZXJzL3RlbXBsYXRlCmluZGV4IDAyMGMxMjRmMzIyLi42MDBk MTQ0MjE4YyAxMDA2NDQKLS0tIGEvc3JjcGtncy90cmFja2VyLW1pbmVycy90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL3RyYWNrZXItbWluZXJzL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAndHJhY2tlci1taW5lcnMnCiBwa2duYW1lPXRyYWNrZXItbWluZXJzCi12 ZXJzaW9uPTIuMy4xCi1yZXZpc2lvbj0zCit2ZXJzaW9uPTIuMy41CityZXZpc2lvbj0xCiBidWls ZF9zdHlsZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1EdHJhY2tlcl9jb3JlPXN5c3RlbSAtRGRv Y3M9ZmFsc2UgLURleHRyYWN0PXRydWUKICAtRGZ1bmN0aW9uYWxfdGVzdHM9ZmFsc2UgLURjdWU9 ZW5hYmxlZCAtRGV4aWY9ZW5hYmxlZCAtRGZsYWM9ZW5hYmxlZApAQCAtMTAsMjEgKzEwLDIyIEBA IGNvbmZpZ3VyZV9hcmdzPSItRHRyYWNrZXJfY29yZT1zeXN0ZW0gLURkb2NzPWZhbHNlIC1EZXh0 cmFjdD10cnVlCiAgLUR0aWZmPWVuYWJsZWQgLUR2b3JiaXM9ZW5hYmxlZCAtRHhtbD1lbmFibGVk IC1EeG1wPWVuYWJsZWQgLUR4cHM9ZW5hYmxlZAogIC1EYmF0dGVyeV9kZXRlY3Rpb249dXBvd2Vy IC1EY2hhcnNldF9kZXRlY3Rpb249aWN1CiAgLURnZW5lcmljX21lZGlhX2V4dHJhY3Rvcj1nc3Ry ZWFtZXIgLURnc3RyZWFtZXJfYmFja2VuZD1kaXNjb3ZlcmVyCi0gLURzeXN0ZW1kX3VzZXJfc2Vy dmljZXM9bm8iCisgLURzeXN0ZW1kX3VzZXJfc2VydmljZXM9bm8gLURtaW5lcl9yc3M9ZmFsc2Ui CiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgZ2xpYi1kZXZlbCBpbnRsdG9vbCIKIG1ha2Vk ZXBlbmRzPSJ0cmFja2VyLWRldmVsIGZmbXBlZy1kZXZlbCBkYnVzLWRldmVsIGV4ZW1waS1kZXZl bCBsaWJmbGFjLWRldmVsCiAgbGliZ2xpYi1kZXZlbCBsaWJnZXhpdjItZGV2ZWwgZ3N0cmVhbWVy MS1kZXZlbCBpY3UtZGV2ZWwgbGliY3VlLWRldmVsCiAgbGliZXhpZi1kZXZlbCBsaWJnc2YtZGV2 ZWwgbGliZ3hwcy1kZXZlbCBsaWJpcHRjZGF0YS1kZXZlbCBsaWJqcGVnLXR1cmJvLWRldmVsCiAg bGlib3NpbmZvLWRldmVsIGxpYnBuZy1kZXZlbCBsaWJzZWNjb21wLWRldmVsIHRpZmYtZGV2ZWwg bGlieG1sMi1kZXZlbAogIGxpYnZvcmJpcy1kZXZlbCBwb3BwbGVyLWdsaWItZGV2ZWwgdGFnbGli LWRldmVsIHRvdGVtLXBsLXBhcnNlci1kZXZlbAotIHVwb3dlci1kZXZlbCB6bGliLWRldmVsIGdz dC1wbHVnaW5zLWJhc2UxLWRldmVsIGdpZmxpYi1kZXZlbCIKKyB1cG93ZXItZGV2ZWwgemxpYi1k ZXZlbCBnc3QtcGx1Z2lucy1iYXNlMS1kZXZlbCBnaWZsaWItZGV2ZWwgbGliaGFyZmJ1enoiCiBz aG9ydF9kZXNjPSJEYXRhIG1pbmVycyBmb3IgdHJhY2tlciIKIG1haW50YWluZXI9IkVubm8gQm9s YW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgog aG9tZXBhZ2U9Imh0dHBzOi8vZGV2ZWxvcGVyLmdub21lLm9yZy9saWJ0cmFja2VyLW1pbmVyL3N0 YWJsZSIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS90cmFja2VyLW1pbmVycy8ke3ZlcnNpb24l Lip9L3RyYWNrZXItbWluZXJzLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09N2IxZGUwNmE3 YTc5ZWExYzc4MTNjOGEyMWY4Y2QxYzU1ZjJiOTVmNzk5Y2Y5ZjQ3ZjAyMDRmM2JlOGE1OTBlMAor Y2hlY2tzdW09OTUwOWQzN2ZiMjlhY2QyMzMwNThmNGRmNWJkMTIzNGI2OTJhYzZmOTQ2YmMyZTVm N2I4ZGJmNTFkZmU1YjlmYQogCi0jIE1pc3NpbmcgbGliZ3JzcwotY29uZmlndXJlX2FyZ3MrPSIg LURtaW5lcl9yc3M9ZmFsc2UiCi1tYWtlZGVwZW5kcys9IiBsaWJoYXJmYnV6eiIKKyMgcmVsaWVz IG9uIHVuc3VwcG9ydGVkIG9wcyBpbiBjaHJvb3QKK2RvX2NoZWNrKCkgeworCToKK30KCkZyb20g MmZhOGQxNDQ0NGQ2YWVmMzFjOTBjMzg2MjE2MjRkMjMyNmI5NmNkZCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6 IFRodSwgMTcgU2VwIDIwMjAgMDA6MTU6NDkgKzAyMDAKU3ViamVjdDogW1BBVENIIDAyMy8xMDJd IE5ldyBwYWNrYWdlOiB0cmFja2VyMy0zLjAuMAoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAg ICAgIHwgIDMgKystCiBzcmNwa2dzL2xpYnRyYWNrZXIzICAgICAgIHwgIDEgKwogc3JjcGtncy90 cmFja2VyMy1kZXZlbCAgICB8ICAxICsKIHNyY3BrZ3MvdHJhY2tlcjMvdGVtcGxhdGUgfCA1NyAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHNyY3BrZ3MvdHJhY2tlcjMv dXBkYXRlICAgfCAgMSArCiA1IGZpbGVzIGNoYW5nZWQsIDYyIGluc2VydGlvbnMoKyksIDEgZGVs ZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL2xpYnRyYWNrZXIzCiBjcmVhdGUg bW9kZSAxMjAwMDAgc3JjcGtncy90cmFja2VyMy1kZXZlbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvdHJhY2tlcjMvdGVtcGxhdGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3RyYWNr ZXIzL3VwZGF0ZQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmlu ZGV4IGUzOGVjODVkZWMxLi5kNzdjMTM3NmI5OCAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicwor KysgYi9jb21tb24vc2hsaWJzCkBAIC0zMTQ0LDYgKzMxNDQsOCBAQCBsaWJjcHBjbXMuc28uMSBj cHBjbXMtMS4wLjVfMQogbGliY3BwZGIuc28uMCBjcHBkYi0wLjMuMV8xCiBsaWJ0cmFja2VyLWNv bnRyb2wtMi4wLnNvLjAgbGlidHJhY2tlci0yLjAuMF8xCiBsaWJ0cmFja2VyLXNwYXJxbC0yLjAu c28uMCBsaWJ0cmFja2VyLTIuMC4wXzEKK2xpYnRyYWNrZXItbWluZXItMi4wLnNvLjAgbGlidHJh Y2tlci0yLjAuMV8xCitsaWJ0cmFja2VyLXNwYXJxbC0zLjAuc28uMCBsaWJ0cmFja2VyMy0zLjAu MF8xCiBsaWJkb2NrYXBwLnNvLjMgbGliZG9ja2FwcC0wLjcuMl8xCiBsaWJrcmRjY29yZS5zby41 IGtyZGMtMTcuMDQuM18xCiBsaWJBcmN1cy5zby4zIGxpYkFyY3VzLTMuMS4wXzEKQEAgLTMxNjIs NyArMzE2NCw2IEBAIGxpYnZhbGFkb2MtMC41MC5zby4wIGxpYnZhbGFkb2MtMC41MC4wXzEKIGxp YnZhbGFjY29kZWdlbi5zbyBsaWJ2YWxhLTAuNDQuMF8xCiBsaWJwaG9kYXYtMi4wLnNvLjAgcGhv ZGF2LTIuMl8xCiBsaWJnZnNoYXJlLnNvLjIgbGliZ2ZzaGFyZS0yLjAuMF8xCi1saWJ0cmFja2Vy LW1pbmVyLTIuMC5zby4wIGxpYnRyYWNrZXItMi4wLjFfMQogbGlidGFjYWNzLnNvLjEgdGFjYWNz LTQuMC40LjI4XzEKIGxpYmZmbXMyLnNvLjQgbGliZmZtczItMi4yMy4xXzEKIGxpYmRkY3V0aWwu c28uMyBkZGN1dGlsLTAuOS45XzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbGlidHJhY2tlcjMgYi9z cmNwa2dzL2xpYnRyYWNrZXIzCm5ldyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4IDAwMDAwMDAwMDAw Li41OWRkNjkxMWIzYgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbGlidHJhY2tlcjMKQEAg LTAsMCArMSBAQAordHJhY2tlcjMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n aXQgYS9zcmNwa2dzL3RyYWNrZXIzLWRldmVsIGIvc3JjcGtncy90cmFja2VyMy1kZXZlbApuZXcg ZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAwMDAwMC4uNTlkZDY5MTFiM2IKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL3RyYWNrZXIzLWRldmVsCkBAIC0wLDAgKzEgQEAKK3RyYWNrZXIz ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy90cmFja2Vy My90ZW1wbGF0ZSBiL3NyY3BrZ3MvdHJhY2tlcjMvdGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLjFjMjEwMGYyNmNhCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy90cmFja2VyMy90ZW1wbGF0ZQpAQCAtMCwwICsxLDU3IEBACisjIFRlbXBsYXRlIGZpbGUg Zm9yICd0cmFja2VyMycKK3BrZ25hbWU9dHJhY2tlcjMKK3ZlcnNpb249My4wLjAKK3JldmlzaW9u PTEKK3dya3NyYz10cmFja2VyLSR7dmVyc2lvbn0KK2J1aWxkX3N0eWxlPW1lc29uCitidWlsZF9o ZWxwZXI9ImdpciIKK2NvbmZpZ3VyZV9hcmdzPSItRGRvY3M9ZmFsc2UgLURtYW49dHJ1ZSAtRG5l dHdvcmtfbWFuYWdlcj1lbmFibGVkCisgLURzdGVtbWVyPWRpc2FibGVkIC1Ec3lzdGVtZF91c2Vy X3NlcnZpY2VzPWZhbHNlIgoraG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IHBrZy1jb25maWcgZ2xp Yi1kZXZlbCB2YWxhIGFzY2lpZG9jIgorbWFrZWRlcGVuZHM9ImRidXMtZGV2ZWwgbGliZ2xpYi1k ZXZlbCBpY3UtZGV2ZWwganNvbi1nbGliLWRldmVsCisgbGlic291cC1kZXZlbCBsaWJ4bWwyLWRl dmVsIHNxbGl0ZS1kZXZlbCBOZXR3b3JrTWFuYWdlci1kZXZlbAorIGJhc2gtY29tcGxldGlvbiIK K2NoZWNrZGVwZW5kcz0idGFyIHB5dGhvbjMtZ29iamVjdCIKK3Nob3J0X2Rlc2M9IlBlcnNvbmFs IHNlYXJjaCB0b29sIGFuZCBzdG9yYWdlIHN5c3RlbSIKK21haW50YWluZXI9InE2NiA8ZGFuaWVs QG9jdGFmb3JnZS5vcmc+IgorbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgTEdQTC0yLjEtb3It bGF0ZXIiCitob21lcGFnZT0iaHR0cHM6Ly9saXZlLmdub21lLm9yZy9UcmFja2VyIgorZGlzdGZp bGVzPSIke0dOT01FX1NJVEV9L3RyYWNrZXIvJHt2ZXJzaW9uJS4qfS90cmFja2VyLSR7dmVyc2lv bn0udGFyLnh6IgorY2hlY2tzdW09NzA4NjQ1MTVmNTc1MmIwNTk2ZjljNDQyZDdlODY1ODU3MzRm NDJiODJhOTIzM2U1NWRhZTZhYzJiMGQzMzgzNworCitpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRo ZW4KKwlob3N0bWFrZWRlcGVuZHMrPSIgZGJ1cyIKK2ZpCisKKyMgbmVlZHMgYSBkYnVzIHNldHVw Citkb19jaGVjaygpIHsKKwk6Cit9CisKK3Bvc3RfcGF0Y2goKSB7CisJaWYgWyAiJENST1NTX0JV SUxEIiBdOyB0aGVuCisJCSMgVGVsbCB0aGUgYnVpbGQgc3lzdGVtIHRoYXQgd2UgaGF2ZSBpbnRl cm5hbCBmdHM1IGluIHNxbGl0ZTMKKwkJdnNlZCAtaSAiL1xbcHJvcGVydGllc1xdL2Egc3FsaXRl M19oYXNfZnRzNSA9ICd0cnVlJyIgeGJwc19tZXNvbi5jcm9zcworCWZpCit9CisKK3RyYWNrZXIz LWRldmVsX3BhY2thZ2UoKSB7CisJZGVwZW5kcz0ibGlidHJhY2tlcjM+PSR7dmVyc2lvbn1fJHty ZXZpc2lvbn0gbGliZ2xpYi1kZXZlbCBqc29uLWdsaWItZGV2ZWwKKwkgbGlic291cC1kZXZlbCIK KwlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCisJcGtnX2luc3RhbGwoKSB7CisJ CXZtb3ZlIHVzci9pbmNsdWRlCisJCXZtb3ZlIHVzci9zaGFyZS9naXItMS4wCisJCXZtb3ZlIHVz ci9zaGFyZS92YWxhCisJCXZtb3ZlIHVzci9saWIvcGtnY29uZmlnCisJCXZtb3ZlICJ1c3IvbGli Lyouc28iCisJfQorfQorCitsaWJ0cmFja2VyM19wYWNrYWdlKCkgeworCXNob3J0X2Rlc2MrPSIg LSBzaGFyZWQgbGlicmFyaWVzIgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSAidXNyL2xpYi8q LnNvLioiCisJCXZtb3ZlIHVzci9saWIvZ2lyZXBvc2l0b3J5LTEuMAorCX0KK30KZGlmZiAtLWdp dCBhL3NyY3BrZ3MvdHJhY2tlcjMvdXBkYXRlIGIvc3JjcGtncy90cmFja2VyMy91cGRhdGUKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmU5ODQ3ZTI1YjU0Ci0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy90cmFja2VyMy91cGRhdGUKQEAgLTAsMCArMSBAQAorcGF0dGVy bj0iXFF0cmFja2VyXEUtXEtbMC05XStcLlswLTldKlwuWzAtOS5dKlswLTldKD89KSIKCkZyb20g ZTgyMDYyZjBkZTFiZGEwYjBiNTdiZWNmMjg3ZWU3MzBmMDliYmEzYSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6 IFRodSwgMTcgU2VwIDIwMjAgMDA6MTY6MDQgKzAyMDAKU3ViamVjdDogW1BBVENIIDAyNC8xMDJd IE5ldyBwYWNrYWdlOiB0cmFja2VyMy1taW5lcnMtMy4wLjAKCi0tLQogc3JjcGtncy90cmFja2Vy My1taW5lcnMvcGF0Y2hlcy9idWlsZC5wYXRjaCAgIHwgIDI1ICsrKysrCiAuLi4vcGF0Y2hlcy9k b250LXVzZS1tYWxsb2MtdHJpbS5wYXRjaCAgICAgICAgfCAxMDQgKysrKysrKysrKysrKysrKysr CiBzcmNwa2dzL3RyYWNrZXIzLW1pbmVycy90ZW1wbGF0ZSAgICAgICAgICAgICAgfCAgMzQgKysr KysrCiAzIGZpbGVzIGNoYW5nZWQsIDE2MyBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjcGtncy90cmFja2VyMy1taW5lcnMvcGF0Y2hlcy9idWlsZC5wYXRjaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MvdHJhY2tlcjMtbWluZXJzL3BhdGNoZXMvZG9udC11c2UtbWFsbG9j LXRyaW0ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3RyYWNrZXIzLW1pbmVycy90 ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvdHJhY2tlcjMtbWluZXJzL3BhdGNoZXMvYnVp bGQucGF0Y2ggYi9zcmNwa2dzL3RyYWNrZXIzLW1pbmVycy9wYXRjaGVzL2J1aWxkLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kNThhMGQ4YzBmOAotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvdHJhY2tlcjMtbWluZXJzL3BhdGNoZXMvYnVpbGQucGF0Y2gK QEAgLTAsMCArMSwyNSBAQAorRnJvbSA4ZDcwOWMzYjU1ZGM5MjYyMWQ1ODcxZmI0MjlhMDJjNzhj YzRiMmQ4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFu aWVsQG9jdGFmb3JnZS5vcmc+CitEYXRlOiBXZWQsIDE2IFNlcCAyMDIwIDIzOjU3OjMyICswMjAw CitTdWJqZWN0OiBbUEFUQ0hdIGZpeCBidWlsZAorCistLS0KKyBzcmMvbGlidHJhY2tlci1taW5l ci9tZXNvbi5idWlsZCB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEg ZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBzcmMvbGlidHJhY2tlci1taW5lci9tZXNvbi5idWls ZCBzcmMvbGlidHJhY2tlci1taW5lci9tZXNvbi5idWlsZAoraW5kZXggYTIyNjYyMy4uOWVhY2Vl MyAxMDA2NDQKKy0tLSBzcmMvbGlidHJhY2tlci1taW5lci9tZXNvbi5idWlsZAorKysrIHNyYy9s aWJ0cmFja2VyLW1pbmVyL21lc29uLmJ1aWxkCitAQCAtNDAsNyArNDAsNyBAQCBlbmRpZgorIAor IGxpYnRyYWNrZXJfbWluZXIgPSBsaWJyYXJ5KAorICAgICAndHJhY2tlci1taW5lci0nICsgdHJh Y2tlcl9hcGlfdmVyc2lvbiwKKy0gICAgbWluZXJfZW51bXNbMF0sIG1pbmVyX2VudW1zWzFdLCBt aW5lcl9zb3VyY2VzLAorKyAgICBtaW5lcl9lbnVtc1swXSwgbWluZXJfZW51bXNbMV0sIHRyYWNr ZXJfbWluZXJzX2NvbW1vbl9lbnVtX2hlYWRlciwgbWluZXJfc291cmNlcywKKyAgICAgY19hcmdz OiB0cmFja2VyX2NfYXJncywKKyAgICAgaW5zdGFsbDogdHJ1ZSwKKyAgICAgaW5zdGFsbF9kaXI6 IHRyYWNrZXJfaW50ZXJuYWxfbGlic19kaXIsCistLSAKKzIuMjguMAorCmRpZmYgLS1naXQgYS9z cmNwa2dzL3RyYWNrZXIzLW1pbmVycy9wYXRjaGVzL2RvbnQtdXNlLW1hbGxvYy10cmltLnBhdGNo IGIvc3JjcGtncy90cmFja2VyMy1taW5lcnMvcGF0Y2hlcy9kb250LXVzZS1tYWxsb2MtdHJpbS5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2Y0MmE5MTIwOTcK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3RyYWNrZXIzLW1pbmVycy9wYXRjaGVzL2RvbnQt dXNlLW1hbGxvYy10cmltLnBhdGNoCkBAIC0wLDAgKzEsMTA0IEBACitSZWFzb246IFRoaXMgcmV2 ZXJ0cyAxOTFjYzUyMThiNTNmYmE4NWJhZWMxYzhjMTdiYjI0NmE3NDA0NGMwIGFuZAorY2NiMGI0 ZWJiZmY0ZGZhY2YxN2VhNjdjZTU2YmIyN2MzOTc0MTgxMS4gbWFsbG9jX3RyaW0gaXMgZ2xpYmMg c3BlY2lmaWMKK0FQSSwgc28gdGhpcyBjYXVzZXMgdGhlIGJ1aWxkIHRvIGZhaWwgb24gbXVzbC4K K1Vwc3RyZWFtOiBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvdHJhY2tlci1taW5lcnMv LS9pc3N1ZXMvMTM1CitkaWZmIC0tZ2l0IGEvc3JjL21pbmVycy9mcy90cmFja2VyLW1haW4uYyBi L3NyYy9taW5lcnMvZnMvdHJhY2tlci1tYWluLmMKK2luZGV4IGM2MDA3MGQuLjIyMDkxNmQgMTAw NjQ0CistLS0gc3JjL21pbmVycy9mcy90cmFja2VyLW1haW4uYworKysrIHNyYy9taW5lcnMvZnMv dHJhY2tlci1tYWluLmMKK0BAIC01Nyw3ICs1Nyw2IEBACisgc3RhdGljIEdNYWluTG9vcCAqbWFp bl9sb29wOworIHN0YXRpYyBHREJ1c1Byb3h5ICppbmRleF9wcm94eTsKKyBzdGF0aWMgR1B0ckFy cmF5ICpwcm94eV9mb2xkZXJzOworLXN0YXRpYyBndWludCBjbGVhbnVwX2lkOworIAorIHN0YXRp YyBnaW50IGluaXRpYWxfc2xlZXAgPSAtMTsKKyBzdGF0aWMgZ2Jvb2xlYW4gbm9fZGFlbW9uOwor QEAgLTQzMywzNyArNDMyLDYgQEAgbWluZXJfc3RhcnQgKFRyYWNrZXJNaW5lciAgKm1pbmVyLAor IAkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluZXIpOworIH0K KyAKKy1zdGF0aWMgZ2Jvb2xlYW4KKy1jbGVhbnVwX2NiIChncG9pbnRlciB1c2VyX2RhdGEpCist eworLQkvKiBSZWNsYWltIGFzIG11Y2ggbWVtb3J5IGFzIHBvc3NpYmxlICovCistCW1hbGxvY190 cmltICgwKTsKKy0KKy0JY2xlYW51cF9pZCA9IDA7CistCistCXJldHVybiBHX1NPVVJDRV9SRU1P VkU7CistfQorLQorLSNpZiBHTElCX0NIRUNLX1ZFUlNJT04gKDIsIDY0LCAwKQorLXN0YXRpYyB2 b2lkCistb25fbG93X21lbW9yeSAoR01lbW9yeU1vbml0b3IgICAgICAgICAgICAqbW9uaXRvciwK Ky0gICAgICAgICAgICAgICBHTWVtb3J5TW9uaXRvcldhcm5pbmdMZXZlbCBsZXZlbCwKKy0gICAg ICAgICAgICAgICBncG9pbnRlciAgICAgICAgICAgICAgICAgICB1c2VyX2RhdGEpCisteworLQlp ZiAobGV2ZWwgPiBHX01FTU9SWV9NT05JVE9SX1dBUk5JTkdfTEVWRUxfTE9XKQorLQkJbWFsbG9j X3RyaW0gKDApOworLX0KKy0jZW5kaWYKKy0KKy1zdGF0aWMgdm9pZAorLW1pbmVyX3N0YXJ0ZWRf Y2IgKFRyYWNrZXJNaW5lckZTICpmcykKKy17CistCWlmIChjbGVhbnVwX2lkKSB7CistCQlnX3Nv dXJjZV9yZW1vdmUgKGNsZWFudXBfaWQpOworLQkJY2xlYW51cF9pZCA9IDA7CistCX0KKy19Cist Cisgc3RhdGljIHZvaWQKKyBtaW5lcl9maW5pc2hlZF9jYiAoVHJhY2tlck1pbmVyRlMgKmZzLAor ICAgICAgICAgICAgICAgICAgICBnZG91YmxlICAgICAgICAgc2Vjb25kc19lbGFwc2VkLAorQEAg LTQ4Myw4ICs0NTEsNiBAQCBtaW5lcl9maW5pc2hlZF9jYiAoVHJhY2tlck1pbmVyRlMgKmZzLAor IAkJCQkJCQkgVFJVRSk7CisgCX0KKyAKKy0JY2xlYW51cF9pZCA9IGdfdGltZW91dF9hZGRfc2Vj b25kcyAoMzAsIGNsZWFudXBfY2IsIE5VTEwpOworLQorIAkvKiBXZSdyZSBub3Qgc3RpY2tpbmcg YXJvdW5kIGZvciBmaWxlIHVwZGF0ZXMsIHNvIHN0b3AKKyAJICogdGhlIG1haW5sb29wIGFuZCBl eGl0LgorIAkgKi8KK0BAIC05NDEsOSArOTA3LDYgQEAgbWFpbiAoZ2ludCBhcmdjLCBnY2hhciAq YXJndltdKQorIAlUcmFja2VyRW5kcG9pbnREQnVzICplbmRwb2ludDsKKyAJVHJhY2tlckRvbWFp bk9udG9sb2d5ICpkb21haW5fb250b2xvZ3k7CisgCUdDYW5jZWxsYWJsZSAqY2FuY2VsbGFibGU7 CistI2lmIEdMSUJfQ0hFQ0tfVkVSU0lPTiAoMiwgNjQsIDApCistCUdNZW1vcnlNb25pdG9yICpt ZW1vcnlfbW9uaXRvcjsKKy0jZW5kaWYKKyAJZ2NoYXIgKmRvbWFpbl9uYW1lLCAqZGJ1c19uYW1l OworIAorIAltYWluX2xvb3AgPSBOVUxMOworQEAgLTExMjksMTggKzEwOTIsMTAgQEAgbWFpbiAo Z2ludCBhcmdjLCBnY2hhciAqYXJndltdKQorIAkJdHJhY2tlcl9taW5lcl9maWxlc19zZXRfbXRp bWVfY2hlY2tpbmcgKFRSQUNLRVJfTUlORVJfRklMRVMgKG1pbmVyX2ZpbGVzKSwgZG9fbXRpbWVf Y2hlY2tpbmcpOworIAl9CisgCistCWdfc2lnbmFsX2Nvbm5lY3QgKG1pbmVyX2ZpbGVzLCAic3Rh cnRlZCIsCistCQkJICBHX0NBTExCQUNLIChtaW5lcl9zdGFydGVkX2NiKSwKKy0JCQkgIE5VTEwp OworIAlnX3NpZ25hbF9jb25uZWN0IChtaW5lcl9maWxlcywgImZpbmlzaGVkIiwKKyAJCQkgIEdf Q0FMTEJBQ0sgKG1pbmVyX2ZpbmlzaGVkX2NiKSwKKyAJCQkgIE5VTEwpOworIAorLSNpZiBHTElC X0NIRUNLX1ZFUlNJT04gKDIsIDY0LCAwKQorLQltZW1vcnlfbW9uaXRvciA9IGdfbWVtb3J5X21v bml0b3JfZHVwX2RlZmF1bHQgKCk7CistCWdfc2lnbmFsX2Nvbm5lY3QgKG1lbW9yeV9tb25pdG9y LCAibG93LW1lbW9yeS13YXJuaW5nIiwgb25fbG93X21lbW9yeSwgTlVMTCk7CistI2VuZGlmCist CisgCS8qIFByZWVtcHQgY3JlYXRpb24gb2YgZ3JhcGhzICovCisgCXRyYWNrZXJfc3BhcnFsX2Nv bm5lY3Rpb25fdXBkYXRlX2FzeW5jICh0cmFja2VyX21pbmVyX2dldF9jb25uZWN0aW9uIChtaW5l cl9maWxlcyksCisgCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ1JF QVRFIFNJTEVOVCBHUkFQSCB0cmFja2VyOkZpbGVTeXN0ZW07ICIKK0BAIC0xMTgzLDExICsxMTM4 LDYgQEAgbWFpbiAoZ2ludCBhcmdjLCBnY2hhciAqYXJndltdKQorIAl0cmFja2VyX3NwYXJxbF9j b25uZWN0aW9uX2Nsb3NlIChzcGFycWxfY29ubik7CisgCWdfb2JqZWN0X3VucmVmIChzcGFycWxf Y29ubik7CisgCistI2lmIEdMSUJfQ0hFQ0tfVkVSU0lPTiAoMiwgNjQsIDApCistCWdfc2lnbmFs X2hhbmRsZXJzX2Rpc2Nvbm5lY3RfYnlfZnVuYyAobWVtb3J5X21vbml0b3IsIG9uX2xvd19tZW1v cnksIE5VTEwpOworLQlnX29iamVjdF91bnJlZiAobWVtb3J5X21vbml0b3IpOworLSNlbmRpZgor LQorIAlnX3ByaW50ICgiXG5PS1xuXG4iKTsKKyAKKyAJcmV0dXJuIEVYSVRfU1VDQ0VTUzsKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvdHJhY2tlcjMtbWluZXJzL3RlbXBsYXRlIGIvc3JjcGtncy90cmFj a2VyMy1taW5lcnMvdGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLjBiZjE0YjQ4NDc5Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy90cmFja2VyMy1taW5l cnMvdGVtcGxhdGUKQEAgLTAsMCArMSwzNCBAQAorIyBUZW1wbGF0ZSBmaWxlIGZvciAndHJhY2tl cjMtbWluZXJzJworcGtnbmFtZT10cmFja2VyMy1taW5lcnMKK3ZlcnNpb249My4wLjAKK3Jldmlz aW9uPTEKK3dya3NyYz10cmFja2VyLW1pbmVycy0ke3ZlcnNpb259CitidWlsZF9zdHlsZT1tZXNv bgorIyBtaXNzaW5nIGxpYmdyc3MgZm9yIG1pbmVyX3JzcworY29uZmlndXJlX2FyZ3M9Ii1EdHJh Y2tlcl9jb3JlPXN5c3RlbSAtRGRvY3M9ZmFsc2UgLURleHRyYWN0PXRydWUKKyAtRGZ1bmN0aW9u YWxfdGVzdHM9ZmFsc2UgLURjdWU9ZW5hYmxlZCAtRGV4aWY9ZW5hYmxlZCAtRGZsYWM9ZW5hYmxl ZAorIC1EZ2lmPWVuYWJsZWQgLURnc2Y9ZW5hYmxlZCAtRGlwdGM9ZW5hYmxlZCAtRGlzbz1lbmFi bGVkIC1EanBlZz1lbmFibGVkCisgLURwZGY9ZW5hYmxlZCAtRHBsYXlsaXN0PWVuYWJsZWQgLURw bmc9ZW5hYmxlZCAtRHJhdz1lbmFibGVkIC1EdGFnbGliPWVuYWJsZWQKKyAtRHRpZmY9ZW5hYmxl ZCAtRHZvcmJpcz1lbmFibGVkIC1EeG1sPWVuYWJsZWQgLUR4bXA9ZW5hYmxlZCAtRHhwcz1lbmFi bGVkCisgLURtaW5lcl9yc3M9ZmFsc2UgLURiYXR0ZXJ5X2RldGVjdGlvbj11cG93ZXIgLURjaGFy c2V0X2RldGVjdGlvbj1pY3UKKyAtRGdlbmVyaWNfbWVkaWFfZXh0cmFjdG9yPWdzdHJlYW1lciAt RGdzdHJlYW1lcl9iYWNrZW5kPWRpc2NvdmVyZXIKKyAtRHN5c3RlbWRfdXNlcl9zZXJ2aWNlcz1m YWxzZSAtRG5ldHdvcmtfbWFuYWdlcj1lbmFibGVkIgoraG9zdG1ha2VkZXBlbmRzPSJwa2ctY29u ZmlnIGdsaWItZGV2ZWwgaW50bHRvb2wgYXNjaWlkb2MiCittYWtlZGVwZW5kcz0idHJhY2tlcjMt ZGV2ZWwgZmZtcGVnLWRldmVsIGRidXMtZGV2ZWwgZXhlbXBpLWRldmVsIGxpYmZsYWMtZGV2ZWwK KyBsaWJnbGliLWRldmVsIGxpYmdleGl2Mi1kZXZlbCBnc3RyZWFtZXIxLWRldmVsIGljdS1kZXZl bCBsaWJjdWUtZGV2ZWwKKyBsaWJleGlmLWRldmVsIGxpYmdzZi1kZXZlbCBsaWJneHBzLWRldmVs IGxpYmlwdGNkYXRhLWRldmVsIGxpYmpwZWctdHVyYm8tZGV2ZWwKKyBsaWJvc2luZm8tZGV2ZWwg bGlicG5nLWRldmVsIGxpYnNlY2NvbXAtZGV2ZWwgdGlmZi1kZXZlbCBsaWJ4bWwyLWRldmVsCisg bGlidm9yYmlzLWRldmVsIHBvcHBsZXItZ2xpYi1kZXZlbCB0YWdsaWItZGV2ZWwgdG90ZW0tcGwt cGFyc2VyLWRldmVsCisgdXBvd2VyLWRldmVsIHpsaWItZGV2ZWwgZ3N0LXBsdWdpbnMtYmFzZTEt ZGV2ZWwgZ2lmbGliLWRldmVsCisgTmV0d29ya01hbmFnZXItZGV2ZWwgbGliaGFyZmJ1enoiCitz aG9ydF9kZXNjPSJEYXRhIG1pbmVycyBmb3IgdHJhY2tlcjMiCittYWludGFpbmVyPSJxNjYgPGRh bmllbEBvY3RhZm9yZ2Uub3JnPiIKK2xpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCitob21lcGFn ZT0iaHR0cHM6Ly9kZXZlbG9wZXIuZ25vbWUub3JnL2xpYnRyYWNrZXItbWluZXIvc3RhYmxlIgor ZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L3RyYWNrZXItbWluZXJzLyR7dmVyc2lvbiUuKn0vdHJh Y2tlci1taW5lcnMtJHt2ZXJzaW9ufS50YXIueHoiCitjaGVja3N1bT1iYjQ4MWE3YzIzYzVkZWY0 ZjIxNTYyN2EwNjMwZmJlOWQxYzY0ZjMzMTk4MjU4NTlkN2E3MzY0NTczOGY0MDQyCisKKyMgcmVs aWVzIG9uIHVuc3VwcG9ydGVkIG9wcyBpbiBjaHJvb3QKK2RvX2NoZWNrKCkgeworCToKK30KCkZy b20gODQyY2EwNmJhMjUxMTI0MDMxYzY0NWEwN2IyYjc3OTgzMWMxYTE5MyBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTdu PTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6IFR1ZSwg MTUgU2VwIDIwMjAgMDY6NDc6NTYgKzA3MDAKU3ViamVjdDogW1BBVENIIDAyNS8xMDJdIGJpamli ZW46IHVwZGF0ZSB0byAzLjM2LjMuCgotLS0KIHNyY3BrZ3MvYmlqaWJlbi90ZW1wbGF0ZSB8IDkg KysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmlqaWJlbi90ZW1wbGF0ZSBiL3NyY3BrZ3MvYmlqaWJl bi90ZW1wbGF0ZQppbmRleCA3MzAwNTNiNWQxYy4uMGJmYTZmMjc1YWMgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvYmlqaWJlbi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2JpamliZW4vdGVtcGxhdGUKQEAg LTEsOSArMSwxMCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnYmlqaWJlbicKIHBrZ25hbWU9Ymlq aWJlbgotdmVyc2lvbj0zLjM2LjEKK3ZlcnNpb249My4zNi4zCiByZXZpc2lvbj0xCiBidWlsZF9o ZWxwZXI9ImdpciIKIGJ1aWxkX3N0eWxlPW1lc29uCitjb25maWd1cmVfYXJncz0iLUR6ZWl0Z2Vp c3Q9dHJ1ZSIKIGhvc3RtYWtlZGVwZW5kcz0iaXRzdG9vbCBwa2ctY29uZmlnIGdldHRleHQiCiBt YWtlZGVwZW5kcz0iY2x1dHRlci1ndGstZGV2ZWwgZXZvbHV0aW9uLWRldmVsIHRyYWNrZXItZGV2 ZWwgd2Via2l0Mmd0ay1kZXZlbAogIHplaXRnZWlzdC1kZXZlbCBsaWJoYW5keS1kZXZlbCIKQEAg LTE0LDUgKzE1LDkgQEAgbGljZW5zZT0iR1BMLTMuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRw czovL3dpa2kuZ25vbWUub3JnL0FwcHMvTm90ZXMiCiBjaGFuZ2Vsb2c9Imh0dHBzOi8vcmF3Lmdp dGh1YnVzZXJjb250ZW50LmNvbS9HTk9NRS9iaWppYmVuL2dub21lLSR7dmVyc2lvbiUuKn0vTkVX UyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtw a2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTIxMmY2NmEzZDJjNzE3ZGZiM2Qz NzIyMDQyNjE3ODA4OTM5NWRhMjNlZjlmM2QwNTE3MTNhYWY2NTk3YTQxMTAKK2NoZWNrc3VtPTcw ZTliNjIxZTExYmY3YWY2YzYyNDhmOGM5OTgzMGY2ZmZiZmY2MDVmYjQzYTg0OGQyNjg4MGU3ZTFi NTJkZDYKIG5vY3Jvc3M9ImV2b2x1dGlvbi1kYXRhLXNlcnZlciBjcm9zcyIKKworcHJlX2J1aWxk KCkgeworCW5pbmphIC1DIGJ1aWxkIHNyYy9saWJiaWppL2JpamktbWFyc2hhbGVycy5oCit9CgpG cm9tIDRkNGU1YjE2MzM2MmIxZGNkODg5ZDU0OTc2YzY5NDgwMGY4ODExNTggTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpE YXRlOiBXZWQsIDE2IFNlcCAyMDIwIDIwOjIwOjUwICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMjYv MTAyXSBncmFwaGVuZTogdXBkYXRlIHRvIDEuMTAuMgoKLS0tCiBzcmNwa2dzL2dyYXBoZW5lL3Rl bXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ3JhcGhlbmUvdGVtcGxhdGUgYi9zcmNwa2dz L2dyYXBoZW5lL3RlbXBsYXRlCmluZGV4IGY1Y2M5OWI0MTI4Li5lODY4MjM5YmZhMCAxMDA2NDQK LS0tIGEvc3JjcGtncy9ncmFwaGVuZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dyYXBoZW5lL3Rl bXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ3JhcGhlbmUnCiBw a2duYW1lPWdyYXBoZW5lCi12ZXJzaW9uPTEuMTAuMAordmVyc2lvbj0xLjEwLjIKIHJldmlzaW9u PTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKQEAgLTEzLDcgKzEzLDcg QEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vu c2U9Ik1JVCIKIGhvbWVwYWdlPSJodHRwczovL2dpdGh1Yi5jb20vZWJhc3NpL2dyYXBoZW5lIgog ZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L2dyYXBoZW5lLyR7dmVyc2lvbiUuKn0vZ3JhcGhlbmUt JHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT00MDZkOTdmNTFkZDRjYTYxZTkxZjg0NjY2YTAw YzNlOTc2ZDNlNjY3Y2QyNDhiNzZkOTJmZGIzNWNlODc2NDk5CitjaGVja3N1bT1lOTdkZTgyMDhm MWFhYzRmOTEzZDRmYTcxYWI3M2E3MDM0ZTgwNzE4NmZlYjJhYmU1NTg3NmU1MWM0MjVhN2Y2CiAK IGNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgogCWFybSopIGNvbmZpZ3VyZV9hcmdzKz0i IC1EYXJtX25lb249ZmFsc2UiIDs7CgpGcm9tIDBjZGUyYjY5MjgyOWQxNWI0Zjk2ZWRkNjYxMzdl ZDRlYjhiMWE2N2IgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2Eg PGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBXZWQsIDE2IFNlcCAyMDIwIDIwOjIyOjQwICsw MjAwClN1YmplY3Q6IFtQQVRDSCAwMjcvMTAyXSBhbXRrOiB1cGRhdGUgdG8gNS4yLjAKCi0tLQog c3JjcGtncy9hbXRrL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRp b25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYW10ay90ZW1wbGF0 ZSBiL3NyY3BrZ3MvYW10ay90ZW1wbGF0ZQppbmRleCA0NDljNTdlMDdlNi4uNDMzYmUyYjljNTQg MTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYW10ay90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2FtdGsvdGVt cGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdhbXRrJwogcGtnbmFt ZT1hbXRrCi12ZXJzaW9uPTUuMS4xCit2ZXJzaW9uPTUuMi4wCiByZXZpc2lvbj0xCiBidWlsZF9z dHlsZT1nbnUtY29uZmlndXJlCiBidWlsZF9oZWxwZXI9ImdpciIKQEAgLTEyLDcgKzEyLDcgQEAg bWFpbnRhaW5lcj0iT3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxH UEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVj dHMvQW10ayIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS9hbXRrLyR7dmVyc2lvbiUuKn0vYW10 ay0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWY5NjU2YmRkNDI3OGFhYmZiODU1NGYwMjkw NDliOWZmYWY1MWI1M2ZhYTQ2MzQ4M2E4NDAzNjU0NjMzNTVkZjEKK2NoZWNrc3VtPTgyMDU0NWJi NGNmODdlY2ViYzJjMzYzOGQ2YjZlNThiOGRiZDYwYTQxOWE5YjQzY2YwMjAxMjRlNWRhZDcwNzgK IAogYnVpbGRfb3B0aW9ucz0iZ2lyIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCgpGcm9t IGU5NTIzMWMyMDczZTZlNjZkZGU3YjkxMGI2NTYwYjhlNjk0NzYzZGIgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRl OiBXZWQsIDE2IFNlcCAyMDIwIDIwOjQ0OjUxICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMjgvMTAy XSBpby5lbGVtZW50YXJ5LmNvZGU6IHJlYnVpbGQgZm9yIHZhbGEtMC41MAoKLS0tCiAuLi4vaW8u ZWxlbWVudGFyeS5jb2RlL3BhdGNoZXMvdmFsYTA1MC5wYXRjaCAgfCAyNSArKysrKysrKysrKysr KysrKysrCiBzcmNwa2dzL2lvLmVsZW1lbnRhcnkuY29kZS90ZW1wbGF0ZSAgICAgICAgICAgfCAg MiArLQogMiBmaWxlcyBjaGFuZ2VkLCAyNiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9pby5lbGVtZW50YXJ5LmNvZGUvcGF0Y2hlcy92YWxh MDUwLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9pby5lbGVtZW50YXJ5LmNvZGUvcGF0Y2hl cy92YWxhMDUwLnBhdGNoIGIvc3JjcGtncy9pby5lbGVtZW50YXJ5LmNvZGUvcGF0Y2hlcy92YWxh MDUwLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45ZWVlZTFm YjY2NAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvaW8uZWxlbWVudGFyeS5jb2RlL3BhdGNo ZXMvdmFsYTA1MC5wYXRjaApAQCAtMCwwICsxLDI1IEBACitGcm9tIGExODVkZTBlNzcxNmFhMmRl MmJmMjFkZTk2ZTZjOWFmMWRjYTgxYWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBE YW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KK0RhdGU6IFdlZCwgMTYgU2VwIDIw MjAgMjA6NDM6MDcgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gZml4IHdpdGggdmFsYS0wLjUwCisK Ky0tLQorIHBsdWdpbnMvb3V0bGluZS9WYWxhL1ZhbGFTeW1ib2xPdXRsaW5lLnZhbGEgfCAyICst CisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisKK2RpZmYg LS1naXQgcGx1Z2lucy9vdXRsaW5lL1ZhbGEvVmFsYVN5bWJvbE91dGxpbmUudmFsYSBwbHVnaW5z L291dGxpbmUvVmFsYS9WYWxhU3ltYm9sT3V0bGluZS52YWxhCitpbmRleCBjOGRiMzM5Li4zMTM4 NmE2IDEwMDY0NAorLS0tIHBsdWdpbnMvb3V0bGluZS9WYWxhL1ZhbGFTeW1ib2xPdXRsaW5lLnZh bGEKKysrKyBwbHVnaW5zL291dGxpbmUvVmFsYS9WYWxhU3ltYm9sT3V0bGluZS52YWxhCitAQCAt NjEsNyArNjEsNyBAQCBwdWJsaWMgY2xhc3MgQ29kZS5QbHVnaW5zLlZhbGFTeW1ib2xPdXRsaW5l IDogT2JqZWN0LCBDb2RlLlBsdWdpbnMuU3ltYm9sT3V0bGluZQorIAorICAgICBwdWJsaWMgdm9p ZCBwYXJzZV9zeW1ib2xzICgpIHsKKyAgICAgICAgIHZhciBjb250ZXh0ID0gbmV3IFZhbGEuQ29k ZUNvbnRleHQgKCk7CistICAgICAgICBjb250ZXh0LnByb2ZpbGUgPSBWYWxhLlByb2ZpbGUuR09C SkVDVDsKKysgICAgICAgIGNvbnRleHQuc2V0X3RhcmdldF9wcm9maWxlKFZhbGEuUHJvZmlsZS5H T0JKRUNUKTsKKyAgICAgICAgIGNvbnRleHQuYWRkX3NvdXJjZV9maWxlbmFtZSAoZG9jLmZpbGUu Z2V0X3BhdGggKCkpOworICAgICAgICAgY29udGV4dC5yZXBvcnQgPSBuZXcgUmVwb3J0ICgpOwor ICAgICAgICAgaWYgKGNhbmNlbGxhYmxlICE9IG51bGwpCistLSAKKzIuMjguMAorCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2lvLmVsZW1lbnRhcnkuY29kZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvaW8uZWxl bWVudGFyeS5jb2RlL3RlbXBsYXRlCmluZGV4IDQ0N2U3ZTVmNjBhLi44ZDQzYWQ0MTMwZCAxMDA2 NDQKLS0tIGEvc3JjcGtncy9pby5lbGVtZW50YXJ5LmNvZGUvdGVtcGxhdGUKKysrIGIvc3JjcGtn cy9pby5lbGVtZW50YXJ5LmNvZGUvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdpby5lbGVtZW50YXJ5LmNvZGUnCiBwa2duYW1lPWlvLmVsZW1lbnRhcnkuY29k ZQogdmVyc2lvbj0zLjQuMQotcmV2aXNpb249MgorcmV2aXNpb249Mwogd3Jrc3JjPSJjb2RlLSR7 dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmln IHZhbGEgaW50bHRvb2wgZ2xpYi1kZXZlbCIKCkZyb20gOGI5YTA4OWRiODliN2NhYjkyNmU5Yzdl NGFhNmYzNWZlNzEzMDM1YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtv bGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFdlZCwgMTYgU2VwIDIwMjAgMjA6NTI6 MjYgKzAyMDAKU3ViamVjdDogW1BBVENIIDAyOS8xMDJdIHBob2RhdjogdXBkYXRlIHRvIDIuNQoK LS0tCiBzcmNwa2dzL3Bob2Rhdi90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3Bob2Rh di90ZW1wbGF0ZSBiL3NyY3BrZ3MvcGhvZGF2L3RlbXBsYXRlCmluZGV4IDFhOTBhMWEwZTU4Li4x MzA5Mjg5Njg5OSAxMDA2NDQKLS0tIGEvc3JjcGtncy9waG9kYXYvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9waG9kYXYvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9y ICdwaG9kYXYnCiBwa2duYW1lPXBob2RhdgotdmVyc2lvbj0yLjQKK3ZlcnNpb249Mi41CiByZXZp c2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1Ec3lzdGVtZD1kaXNh YmxlZCAtRGF2YWhpPWVuYWJsZWQgLURndGtfZG9jPWRpc2FibGVkCkBAIC0xMyw3ICsxMyw3IEBA IG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNl PSJMR1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL3Bo b2RhdiIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbn0vJHtw a2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTdkZGRjMmI3NWUwNGQwODY2YmI5 YzlhODMwMjhhNTk3ZWJkNzNlZjRjMzdiZDZlYmUxMDMyYTg3MGI0M2I4YzMKK2NoZWNrc3VtPTcx ZjBhOWNkNzBhZmQ0ZGQxNDEyYTAyOTgzMzFkYmI4YWM3MWMwMzc3ZjUyMTE3YWZjMTVlYjg4ZGM2 ZmI5MTAKIAogcGhvZGF2LWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0ibGliZ2xpYi1kZXZl bCBsaWJzb3VwLWRldmVsIGxpYnhtbDItZGV2ZWwKCkZyb20gZjAwYjJhMDAwMWIyYTM3Mjc1MjVl NzI2NmM4ZDYwYThiOTJhOWQ2YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVs IEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6 NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDAzMC8xMDJdIGdzZXR0aW5ncy1kZXNrdG9wLXNj aGVtYXM6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogLi4uL3BhdGNoZXMvZml4LWNyb3NzLWdpci5w YXRjaCAgICAgICAgICAgICAgICAgICAgIHwgMTMgLS0tLS0tLS0tLS0tLQogc3JjcGtncy9nc2V0 dGluZ3MtZGVza3RvcC1zY2hlbWFzL3RlbXBsYXRlICAgICAgICAgIHwgIDYgKysrLS0tCiAyIGZp bGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9nc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzL3BhdGNoZXMvZml4LWNy b3NzLWdpci5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ3NldHRpbmdzLWRlc2t0b3Atc2No ZW1hcy9wYXRjaGVzL2ZpeC1jcm9zcy1naXIucGF0Y2ggYi9zcmNwa2dzL2dzZXR0aW5ncy1kZXNr dG9wLXNjaGVtYXMvcGF0Y2hlcy9maXgtY3Jvc3MtZ2lyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCBiMjk5ZDVjOWNkMC4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9nc2V0 dGluZ3MtZGVza3RvcC1zY2hlbWFzL3BhdGNoZXMvZml4LWNyb3NzLWdpci5wYXRjaAorKysgL2Rl di9udWxsCkBAIC0xLDEzICswLDAgQEAKLWRpZmYgLS1naXQgYS9oZWFkZXJzL21lc29uLmJ1aWxk IGIvaGVhZGVycy9tZXNvbi5idWlsZAotaW5kZXggM2NlOGI2MS4uMTEzMjY5NSAxMDA2NDQKLS0t LSBoZWFkZXJzL21lc29uLmJ1aWxkCi0rKysgaGVhZGVycy9tZXNvbi5idWlsZAotQEAgLTE5LDcg KzE5LDcgQEAgZW51bXNfeG1sID0gY3VzdG9tX3RhcmdldCgKLSAgIGluc3RhbGw6IHRydWUsCi0g ICBpbnN0YWxsX2Rpcjogc2NoZW1hc2RpcikKLSAKLS1pZiBub3QgbWVzb24uaXNfY3Jvc3NfYnVp bGQoKSBhbmQgZ2V0X29wdGlvbignaW50cm9zcGVjdGlvbicpCi0raWYgZ2V0X29wdGlvbignaW50 cm9zcGVjdGlvbicpCi0gICBub2luc3RfbGliID0gc2hhcmVkX2xpYnJhcnkoJ25vaW5zdCcsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVycywKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpbnN0YWxsOiBmYWxzZSkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ3NldHRp bmdzLWRlc2t0b3Atc2NoZW1hcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ3NldHRpbmdzLWRlc2t0b3At c2NoZW1hcy90ZW1wbGF0ZQppbmRleCA0OWM2NGNjYTczOC4uNzZjNGIwZTA4MTAgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL2dzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzJwogcGtnbmFtZT1n c2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzCi12ZXJzaW9uPTMuMzYuMAotcmV2aXNpb249MgordmVy c2lvbj0zLjM4LjAKK3JldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9 bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSItRGludHJvc3BlY3Rpb249JCh2b3B0X2lmIGdpciB0cnVl IGZhbHNlKSIKQEAgLTEyLDcgKzEyLDcgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRv eEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9 Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFz IgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3Br Z25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NzY0YWI2ODMyODY1MzYzMjQ1MzNh NThkNGU5NWZjNTdmODFhZGFiYTdkODgwZGQwZWJiYmNlZDYzZTk2MGVhNgorY2hlY2tzdW09NTcw NGM4MjY2MDA0YjI5NjAzNjY3MWYyMjNjNzA1ZGMwNDZhYTY5NGExYjFhYmI4N2M2N2U3ZDI3NDdh OGM2NwogCiAjIFBhY2thZ2UgYnVpbGQgb3B0aW9ucwogYnVpbGRfb3B0aW9ucz0iZ2lyIgoKRnJv bSBlYTg2MDUxOTFjYWY1NjRkOTkwOTBlNjQ3MDljN2I3MjcwNTFmODQ1IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0 ZTogU3VuLCAxNiBBdWcgMjAyMCAwNToyMDoyNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDMxLzEw Ml0gZ2xpYi1uZXR3b3JraW5nOiB1cGRhdGUgdG8gMi42Ni4wCgotLS0KIHNyY3BrZ3MvZ2xpYi1u ZXR3b3JraW5nL3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlv bnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbGliLW5ldHdvcmtp bmcvdGVtcGxhdGUgYi9zcmNwa2dzL2dsaWItbmV0d29ya2luZy90ZW1wbGF0ZQppbmRleCA1ZWFm ZmE4MmU2NC4uOTZmMzEyY2ZmNGQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ2xpYi1uZXR3b3JraW5n L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ2xpYi1uZXR3b3JraW5nL3RlbXBsYXRlCkBAIC0xLDcg KzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ2xpYi1uZXR3b3JraW5nJwogcGtnbmFtZT1n bGliLW5ldHdvcmtpbmcKLXZlcnNpb249Mi42NC4xCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTIuNjYu MAorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSItRGluc3Rh bGxlZF90ZXN0cz1mYWxzZSAtRGdudXRscz1lbmFibGVkIC1EbGlicHJveHk9ZW5hYmxlZAogIC1E Z25vbWVfcHJveHk9ZW5hYmxlZCIKQEAgLTE0LDcgKzE0LDcgQEAgbWFpbnRhaW5lcj0iRW5ubyBC b2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVy IgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbGliLW5ldHdvcmtp bmcvIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8k e3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09YTRjMzQ2ZGVmN2Q4MTc0Njdk NzlhOTVjMjNiM2NjZjIyZTRkZjE1NDg4NzA3MjZiNjMzOTY0MDA4NTJkYWY3MgorY2hlY2tzdW09 YzVkN2JlMjQzN2ZkZDE5NmVlYmZiNzBjNDUxN2I5NmQzYmE3ZWMxM2JkNDk2MzE4YjhmMDJkZWEz ODNlMDA5OQogbGliMzJkaXNhYmxlZD15ZXMKIAogcG9zdF9pbnN0YWxsKCkgewoKRnJvbSBiYTY3 NzhlOWM2Yjg5ZmNmYWFjYjk0ODAyZjBlZDE5MzFhZjU5MDQxIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1 LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDMyLzEwMl0gYXQt c3BpMi1jb3JlOiB1cGRhdGUgdG8gMi4zOC4wCgotLS0KIHNyY3BrZ3MvYXQtc3BpMi1jb3JlL3Rl bXBsYXRlIHwgMTQgKysrKysrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMo KyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9hdC1zcGkyLWNvcmUvdGVt cGxhdGUgYi9zcmNwa2dzL2F0LXNwaTItY29yZS90ZW1wbGF0ZQppbmRleCBiMzgzZmU5OWJlZC4u NzRlNjA3MDEyMDEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYXQtc3BpMi1jb3JlL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvYXQtc3BpMi1jb3JlL3RlbXBsYXRlCkBAIC0xLDIzICsxLDI3IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdhdC1zcGkyLWNvcmUnCiBwa2duYW1lPWF0LXNwaTItY29yZQotdmVy c2lvbj0yLjM0LjAKK3ZlcnNpb249Mi4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNv bgogYnVpbGRfaGVscGVyPSJnaXIiCi1ob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgZGJ1cyBn bGliLWRldmVsIgotbWFrZWRlcGVuZHM9ImxpYmdsaWItZGV2ZWwgbGliWGV4dC1kZXZlbCBsaWJT TS1kZXZlbCBsaWJYdHN0LWRldmVsCi0gbGliWGV2aWUtZGV2ZWwgZGJ1cy1kZXZlbCIKK2hvc3Rt YWtlZGVwZW5kcz0icGtnLWNvbmZpZyBkYnVzIGdsaWItZGV2ZWwgZ2V0dGV4dCIKK21ha2VkZXBl bmRzPSJsaWJnbGliLWRldmVsIGxpYlhleHQtZGV2ZWwgbGliU00tZGV2ZWwgbGliWHRzdC1kZXZl bCBkYnVzLWRldmVsIgogc2hvcnRfZGVzYz0iQXNzaXN0aXZlIFRlY2hub2xvZ3kgU2VydmljZSBQ cm92aWRlciBJbnRlcmZhY2UiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRs aW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczov L2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvYXQtc3BpMi1jb3JlIgogZGlzdGZpbGVzPSIke0dOT01F X1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFy Lnh6IgotY2hlY2tzdW09ZDYyOWNkYmQ2NzRlNTM5Zjg5MTIwMjg1MTJhZjU4Mzk5MDkzOGM3YjQ5 ZTI1MTg0YzEyNmIwMDEyMWVmMTFjNgorY2hlY2tzdW09ODRlMzZjM2ZlNjY4NjIxMzNmNWZlMjI5 NzcyYjc2YWEyNTI2ZTEwZGU1MDE0YTM3NzhmMmZhNDZjZTU1MGRhNQogCiAjIFBhY2thZ2UgYnVp bGQgb3B0aW9ucwogYnVpbGRfb3B0aW9ucz0iZ2lyIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJn aXIiCiAKKyMgbm9uLXRyaXZpYWwgZGJ1cyBzZXR1cAorZG9fY2hlY2soKSB7CisJOgorfQorCiBw b3N0X2luc3RhbGwoKSB7CiAJcm0gLXJmICR7REVTVERJUn0vdXNyL2xpYi9zeXN0ZW1kCiB9CgpG cm9tIDg3M2FiMzA0MThmNmU1YzEzMGVjZDFiOTMyODc4MjljODkzZTNiZjIgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpE YXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwMzMv MTAyXSBhdC1zcGkyLWF0azogdXBkYXRlIHRvIDIuMzguMAoKLS0tCiBzcmNwa2dzL2F0LXNwaTIt YXRrL3RlbXBsYXRlIHwgOSArKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMo KyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9hdC1zcGkyLWF0ay90ZW1w bGF0ZSBiL3NyY3BrZ3MvYXQtc3BpMi1hdGsvdGVtcGxhdGUKaW5kZXggNDM1MWI3OTk2ZjMuLmNm OTQ1ZGZmYjI2IDEwMDY0NAotLS0gYS9zcmNwa2dzL2F0LXNwaTItYXRrL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvYXQtc3BpMi1hdGsvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdhdC1zcGkyLWF0aycKIHBrZ25hbWU9YXQtc3BpMi1hdGsKLXZlcnNpb249Mi4z NC4xCit2ZXJzaW9uPTIuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGhvc3Rt YWtlZGVwZW5kcz0ibGlidG9vbCBwa2ctY29uZmlnIGludGx0b29sIGdsaWItZGV2ZWwiCkBAIC0x MCw3ICsxMCwxMiBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5v cmc+IgogbGljZW5zZT0iTEdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cDovL3d3dy5n bm9tZS5vcmciCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24l Lip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT03NzZkZjkzMDc0OGZk ZTcxYzEyOGJlNmMzNjZhOTg3Yjk4YjZlZTY2ZDUwOGVkOWM4ZGIyMzU1YmY0YjljYzE2CitjaGVj a3N1bT1jZmEwMDhhNWFmODIyYjM2YWU2Mjg3ZjE4MTgyYzQwYzkxZGQ2OTljNTVmYWEzODYwNTg4 MWVkMTc1Y2E0NjRmCisKKyMgbm9uLXRyaXZpYWwgZGJ1cyBzZXR1cAorZG9fY2hlY2soKSB7CisJ OgorfQogCiBhdC1zcGkyLWF0ay1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVuZHM9IiR7bWFrZWRl cGVuZHN9ICR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKCkZyb20gZmRjODgw ZTYyMTk5Nzg4ZWI2YWRjNDk2MTM0ZWMzMzFhN2E1ZjE4MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwg MTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDAzNC8xMDJdIGxpYmd3 ZWF0aGVyOiB1cGRhdGUgdG8gMy4zNi4xCgotLS0KIHNyY3BrZ3MvbGliZ3dlYXRoZXIvdGVtcGxh dGUgfCAxNSArKysrKystLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyks IDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9saWJnd2VhdGhlci90ZW1wbGF0 ZSBiL3NyY3BrZ3MvbGliZ3dlYXRoZXIvdGVtcGxhdGUKaW5kZXggMzRjNjRkNmUzYTEuLmZjZGI1 ODc5NTAxIDEwMDY0NAotLS0gYS9zcmNwa2dzL2xpYmd3ZWF0aGVyL3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvbGliZ3dlYXRoZXIvdGVtcGxhdGUKQEAgLTEsMTMgKzEsMTIgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ2xpYmd3ZWF0aGVyJwogcGtnbmFtZT1saWJnd2VhdGhlcgotdmVyc2lvbj0zLjM2 LjAKK3ZlcnNpb249My4zNi4xCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRf aGVscGVyPSJnaXIiCi1jb25maWd1cmVfYXJncz0iLURlbmFibGVfdmFsYT0kKHZvcHRfaWYgdmFs YSB0cnVlIGZhbHNlKQotIC1EaW50cm9zcGVjdGlvbj0kKHZvcHRfaWYgZ2lyIHRydWUgZmFsc2Up Citjb25maWd1cmVfYXJncz0iJCh2b3B0X2Jvb2wgZ2lyIGVuYWJsZV92YWxhKSAkKHZvcHRfYm9v bCBnaXIgaW50cm9zcGVjdGlvbikKICAtRHpvbmVpbmZvX2Rpcj0vdXNyL3NoYXJlL3pvbmVpbmZv IgotaG9zdG1ha2VkZXBlbmRzPSJnbGliLWRldmVsIGludGx0b29sIHBrZy1jb25maWcgJCh2b3B0 X2lmIHZhbGEgdmFsYSkiCitob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgaW50bHRvb2wgcGtn LWNvbmZpZyAkKHZvcHRfaWYgZ2lyIHZhbGEpIgogbWFrZWRlcGVuZHM9Imdlb2NvZGUtZ2xpYi1k ZXZlbCBndGsrMy1kZXZlbCBsaWJzb3VwLWdub21lLWRldmVsIgogY2hlY2tkZXBlbmRzPSJ0emRh dGEiCiBzaG9ydF9kZXNjPSJHTk9NRSBXZWF0aGVyIGluZm9ybWF0aW9uIGFjY2VzcyBsaWJyYXJ5 IgpAQCAtMTUsMTAgKzE0LDEwIEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9p ZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRw czovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL0xpYkdXZWF0aGVyIgogZGlzdGZpbGVzPSIke0dO T01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0u dGFyLnh6IgotY2hlY2tzdW09ZDJmZmVlYzAxNzg4ZDAzZDFiYmYzNTExM2ZjMmYwNTRjNmMzNjAw NzIxMDg4ZjgyN2JjYzMxZTVjNjAzYTMyZAorY2hlY2tzdW09ZGUyNzA5ZjBlZTIzM2IyMDExNmQ1 ZmE5ODYxZDQwNjA3MTc5OGM0YWEzNzgzMGNhMjVmNWVmMmMwMDgzZTQ1MAogCi1idWlsZF9vcHRp b25zPSJnaXIgdmFsYSIKLWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIHZhbGEiCitidWlsZF9v cHRpb25zPSJnaXIiCitidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKIAogcG9zdF9wYXRjaCgp IHsKIAkjIFRoaXMgdGVzdCByZXF1aXJlcyBMQ19JREVOVElGSUNBVElPTiwgd2hpY2ggaXMgYSBH TElCQydzIGV4dGVuc2lvbgpAQCAtMzUsOCArMzQsNiBAQCBsaWJnd2VhdGhlci1kZXZlbF9wYWNr YWdlKCkgewogCQl2bW92ZSAidXNyL2xpYi8qLnNvIgogCQlpZiBbICIkYnVpbGRfb3B0aW9uX2dp ciIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL2dpci0xLjAKLQkJZmkKLQkJaWYgWyAiJGJ1 aWxkX29wdGlvbl92YWxhIiBdOyB0aGVuCiAJCQl2bW92ZSB1c3Ivc2hhcmUvdmFsYQogCQlmaQog CX0KCkZyb20gZDIyZjFhMTBiMzdlZWFiNWNiMmQ3N2QzNTZkZmRmY2ViMjA2ZGU2OCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5v cmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENI IDAzNS8xMDJdIGdub21lLW1lbnVzOiB1cGRhdGUgdG8gMy4zNi4wCgotLS0KIHNyY3BrZ3MvZ25v bWUtbWVudXMvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9u cygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLW1lbnVzL3Rl bXBsYXRlIGIvc3JjcGtncy9nbm9tZS1tZW51cy90ZW1wbGF0ZQppbmRleCAyOTEwMjEyOWMzOC4u ZTc4N2ZiOGRlNmIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtbWVudXMvdGVtcGxhdGUKKysr IGIvc3JjcGtncy9nbm9tZS1tZW51cy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxh dGUgZmlsZSBmb3IgJ2dub21lLW1lbnVzJwogcGtnbmFtZT1nbm9tZS1tZW51cwotdmVyc2lvbj0z LjMyLjAKLXJldmlzaW9uPTIKK3ZlcnNpb249My4zNi4wCityZXZpc2lvbj0xCiBidWlsZF9zdHls ZT1nbnUtY29uZmlndXJlCiBidWlsZF9oZWxwZXI9ImdpciIKIGNvbmZpZ3VyZV9hcmdzPSItLWRp c2FibGUtc3RhdGljIgpAQCAtMTIsNyArMTIsNyBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8 Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgTEdQTC0y LjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2du b21lLW1lbnVzIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9u JS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09Yzg1MGM2NGIyMDc0 MjY1ZmU1OWUwOTlhMzQwYjg2ODljZjNkZDQ2NThkYzlmZWRkZDJhYjVlOTVmMWE3NGI3NAorY2hl Y2tzdW09ZDkzNDhmMzhiZGU5NTZmYzMyNzUzYjI4YzFjZGUxOWMxNzViZmRiZjFmNGQ1YjA2MDAz YjNhYTA5MTUzYmIxZgogCiBidWlsZF9vcHRpb25zPSJnaXIiCiBidWlsZF9vcHRpb25zX2RlZmF1 bHQ9ImdpciIKCkZyb20gMmFiOGFhZTZhYmVhMzc2YWM0OTgyN2U2ZjU4NmM1NWQxY2JjMjQ0OCBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFm b3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDog W1BBVENIIDAzNi8xMDJdIGdub21lLWRlc2t0b3A6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogY29t bW9uL3NobGlicyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogc3JjcGtncy9n bm9tZS1kZXNrdG9wL3BhdGNoZXMvYnVpbGQucGF0Y2ggfCAxOCArKysrKysrKysrKysrKysrKysK IHNyY3BrZ3MvZ25vbWUtZGVza3RvcC90ZW1wbGF0ZSAgICAgICAgICAgIHwgMTEgKysrKysrKyst LS0KIDMgZmlsZXMgY2hhbmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2dub21lLWRlc2t0b3AvcGF0Y2hlcy9idWlsZC5wYXRj aAoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IGQ3N2Mx Mzc2Yjk4Li5kOGRhZjY0ZTJhMiAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21t b24vc2hsaWJzCkBAIC0xMTc2LDcgKzExNzYsNyBAQCBsaWJnc3RiYXNlY2FtZXJhYmluc3JjLTEu MC5zby4wIGdzdC1wbHVnaW5zLWJhZDEtMS4wLjBfMQogbGliZ3N0Y29kZWNwYXJzZXJzLTEuMC5z by4wIGdzdC1wbHVnaW5zLWJhZDEtMS4wLjBfMQogbGliZ3N0cGxheWVyLTEuMC5zby4wIGdzdC1w bHVnaW5zLWJhZDEtMS4wLjBfMQogbGliZ3N0Z2wtMS4wLnNvLjAgZ3N0LXBsdWdpbnMtYmFzZTEt MS4xNC4wXzEKLWxpYmdub21lLWRlc2t0b3AtMy5zby4xOCBnbm9tZS1kZXNrdG9wLTMuMzQuMF8x CitsaWJnbm9tZS1kZXNrdG9wLTMuc28uMTkgZ25vbWUtZGVza3RvcC0zLjM3LjkwLjFfMQogbGli c2VjcmV0LTEuc28uMCBsaWJzZWNyZXQtMC4xMF8xCiBsaWJnd2VhdGhlci0zLnNvLjE2IGxpYmd3 ZWF0aGVyLTMuMzQuMF8xCiBsaWJnbm9tZWtiZC5zby44IGxpYmdub21la2JkLTMuNi4wXzEKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtZGVza3RvcC9wYXRjaGVzL2J1aWxkLnBhdGNoIGIvc3Jj cGtncy9nbm9tZS1kZXNrdG9wL3BhdGNoZXMvYnVpbGQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLmVmZWQwMGEyNWRkCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9nbm9tZS1kZXNrdG9wL3BhdGNoZXMvYnVpbGQucGF0Y2gKQEAgLTAsMCArMSwxOCBAQAor Y29tbWl0IDRmNTVmZjA3ODQxMTk5M2I3ODJlNzRlYTE4YzVjNmFiMzVhZGY2ODUKK0F1dGhvcjog RGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CitEYXRlOiAgIFdlZCBBdWcgMTIg MDU6MjY6MDAgMjAyMCArMDIwMAorCisgICAgYmxhCisKK2RpZmYgLS1naXQgbGliZ25vbWUtZGVz a3RvcC9nbm9tZS1yci5oIGxpYmdub21lLWRlc2t0b3AvZ25vbWUtcnIuaAoraW5kZXggMTExYmFi My4uNzY5ODY3MiAxMDA2NDQKKy0tLSBsaWJnbm9tZS1kZXNrdG9wL2dub21lLXJyLmgKKysrKyBs aWJnbm9tZS1kZXNrdG9wL2dub21lLXJyLmgKK0BAIC0yOCw2ICsyOCw3IEBACisgI2Vycm9yICAg IEdub21lUlIgaXMgdW5zdGFibGUgQVBJLiBZb3UgbXVzdCBkZWZpbmUgR05PTUVfREVTS1RPUF9V U0VfVU5TVEFCTEVfQVBJIGJlZm9yZSBpbmNsdWRpbmcgZ25vbWVyci5oCisgI2VuZGlmCisgCisr I2luY2x1ZGUgPHN0ZGludC5oPgorICNpbmNsdWRlIDxnbGliLmg+CisgI2luY2x1ZGUgPGdkay9n ZGsuaD4KKyAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtZGVza3RvcC90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvZ25vbWUtZGVza3RvcC90ZW1wbGF0ZQppbmRleCA5OTJjYjFmZjE2YS4uYmQwYjJmNWMx ZDkgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtZGVza3RvcC90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL2dub21lLWRlc2t0b3AvdGVtcGxhdGUKQEAgLTEsMTAgKzEsMTAgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ2dub21lLWRlc2t0b3AnCiBwa2duYW1lPWdub21lLWRlc2t0b3AKLXZlcnNpb249 My4zNC4xCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1 aWxkX2hlbHBlcj0iZ2lyIgotY29uZmlndXJlX2FyZ3M9Ii1EZ25vbWUtZGlzdHJpYnV0b3I9Vm9p ZExpbnV4IC1EdWRldj1lbmFibGVkCitjb25maWd1cmVfYXJncz0iLURnbm9tZV9kaXN0cmlidXRv cj1Wb2lkTGludXggLUR1ZGV2PWVuYWJsZWQgLURzeXN0ZW1kPWRpc2FibGVkCiAgLURpbnRyb3Nw ZWN0aW9uPSQodm9wdF9pZiBnaXIgdHJ1ZSBmYWxzZSkiCiBob3N0bWFrZWRlcGVuZHM9ImdldHRl eHQgaXRzdG9vbCBwa2ctY29uZmlnIGdsaWItZGV2ZWwiCiBtYWtlZGVwZW5kcz0iZXVkZXYtbGli dWRldi1kZXZlbCBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzLWRldmVsIGd0ayszLWRldmVsCkBA IC0xNiwxMSArMTYsMTYgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGlu dXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyIgog aG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1kZXNrdG9wIgog ZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25h bWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09YzFkYmViNTY2NmRhZDI3MTY2Yzc2OWU0 OGUyYWI0MWRkNWVkNzQ3MThlYTM1ZWI1N2M4NDg4NzkwNjYyZGM1YQorY2hlY2tzdW09MDg5ZGJi ZTNjNjZmZTU1NzU2NTlhNGEzODVkNWQ0YmJkOTljZjYzNzAzNGRmMzE3ZjIxY2Y1ODZiNWRkNmI5 MAogCiBidWlsZF9vcHRpb25zPSJnaXIiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKIAor IyBuZWVkcyBYCitkb19jaGVjaygpIHsKKwk6Cit9CisKIGdub21lLWRlc2t0b3AtZGV2ZWxfcGFj a2FnZSgpIHsKIAlkZXBlbmRzPSJndGsrMy1kZXZlbCBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFz LWRldmVsPj0zLjEyCiAJIGdkay1waXhidWYtZGV2ZWwgaXNvLWNvZGVzIGxpYlgxMS1kZXZlbCBs aWJnbGliLWRldmVsIGxpYnNlY2NvbXAtZGV2ZWwKCkZyb20gMDZiNzczODliZDg2ZDk0MmRiZDk2 ZTc0MTExYzMzNWI5MGRiZWFhNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVs IEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6 NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDAzNy8xMDJdIGdub21lLXNldHRpbmdzLWRhZW1v bjogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiAuLi4vcGF0Y2hlcy9sb2dpbmQtYmFja2xpZ2h0LnBh dGNoICAgICAgICAgICAgfCAxMzYgKysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL2dub21lLXNl dHRpbmdzLWRhZW1vbi90ZW1wbGF0ZSAgICAgICAgfCAgMTEgKy0KIDIgZmlsZXMgY2hhbmdlZCwg MTQyIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9nbm9tZS1zZXR0aW5ncy1kYWVtb24vcGF0Y2hlcy9sb2dpbmQtYmFja2xpZ2h0LnBhdGNo CgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1zZXR0aW5ncy1kYWVtb24vcGF0Y2hlcy9sb2dp bmQtYmFja2xpZ2h0LnBhdGNoIGIvc3JjcGtncy9nbm9tZS1zZXR0aW5ncy1kYWVtb24vcGF0Y2hl cy9sb2dpbmQtYmFja2xpZ2h0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi5lNWNhNmJkNDNkZAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZ25vbWUtc2V0 dGluZ3MtZGFlbW9uL3BhdGNoZXMvbG9naW5kLWJhY2tsaWdodC5wYXRjaApAQCAtMCwwICsxLDEz NiBAQAorRnJvbSAzODQ1YjNhN2I1OGYyNmVjNjhkYmMxYzQ1N2VhZDA2ZjQ4ODExODBiIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3Jn ZS5vcmc+CitEYXRlOiBGcmksIDE0IEF1ZyAyMDIwIDE3OjQ4OjIxICswMjAwCitTdWJqZWN0OiBb UEFUQ0hdIFRoZSBuZXcgbG9naW5kIGJyaWdodG5lc3MgY29kZSBkb2Vzbid0IHdvcmsgd2l0aCBl bG9naW5kLgorCitodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2V0dGluZ3Mt ZGFlbW9uLy0vY29tbWl0L2NkMDUxZTZjN2NjZmI3ZTdiMGVjNDQwNDA5YzU1OWIyZTUxMjg0ZTgK Ky0tLQorIHBsdWdpbnMvcG93ZXIvZ3NkLWJhY2tsaWdodC5jIHwgNzcgKysrKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA3 MCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBwbHVnaW5zL3Bvd2VyL2dzZC1iYWNrbGlnaHQu YyBwbHVnaW5zL3Bvd2VyL2dzZC1iYWNrbGlnaHQuYworaW5kZXggY2E1ZjI3Mi4uNGFjYzJlNSAx MDA2NDQKKy0tLSBwbHVnaW5zL3Bvd2VyL2dzZC1iYWNrbGlnaHQuYworKysrIHBsdWdpbnMvcG93 ZXIvZ3NkLWJhY2tsaWdodC5jCitAQCAtNDAsOCArNDAsNiBAQCBzdHJ1Y3QgX0dzZEJhY2tsaWdo dAorICAgICAgICAgZ2ludCBicmlnaHRuZXNzX3N0ZXA7CisgCisgI2lmZGVmIF9fbGludXhfXwor LSAgICAgICAgR0RCdXNQcm94eSAqbG9naW5kX3Byb3h5OworLQorICAgICAgICAgR1VkZXZDbGll bnQgKnVkZXY7CisgICAgICAgICBHVWRldkRldmljZSAqdWRldl9kZXZpY2U7CisgCitAQCAtNjEs MTAgKzU5LDYgQEAgZW51bSB7CisgICAgICAgICBQUk9QX0xBU1QsCisgfTsKKyAKKy0jZGVmaW5l IFNZU1RFTURfREJVU19OQU1FICAgICAgICAgICAgICAgICAgICAgICAib3JnLmZyZWVkZXNrdG9w LmxvZ2luMSIKKy0jZGVmaW5lIFNZU1RFTURfREJVU19QQVRIICAgICAgICAgICAgICAgICAgICAg ICAiL29yZy9mcmVlZGVza3RvcC9sb2dpbjEvc2Vzc2lvbi9hdXRvIgorLSNkZWZpbmUgU1lTVEVN RF9EQlVTX0lOVEVSRkFDRSAgICAgICAgICAgICAgICAgICJvcmcuZnJlZWRlc2t0b3AubG9naW4x LlNlc3Npb24iCistCisgc3RhdGljIEdQYXJhbVNwZWMgKnByb3BzW1BST1BfTEFTVF07CisgCisg c3RhdGljIHZvaWQgICAgIGdzZF9iYWNrbGlnaHRfaW5pdGFibGVfaWZhY2VfaW5pdCAoR0luaXRh YmxlSWZhY2UgICppZmFjZSk7CitAQCAtNDgyLDMwICs0NzYsMTMgQEAgZ3NkX2JhY2tsaWdodF9z ZXRfYnJpZ2h0bmVzc192YWxfYXN5bmMgKEdzZEJhY2tsaWdodCAqYmFja2xpZ2h0LAorICAgICAg ICAgaWYgKGJhY2tsaWdodC0+dWRldl9kZXZpY2UgIT0gTlVMTCkgeworICAgICAgICAgICAgICAg ICBCYWNrbGlnaHRIZWxwZXJEYXRhICp0YXNrX2RhdGE7CisgCistICAgICAgICAgICAgICAgIGlm IChiYWNrbGlnaHQtPmxvZ2luZF9wcm94eSkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIGdf ZGJ1c19wcm94eV9jYWxsIChiYWNrbGlnaHQtPmxvZ2luZF9wcm94eSwKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNldEJyaWdodG5lc3MiLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3ZhcmlhbnRfbmV3ICgiKHNzdSki LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiYmFja2xpZ2h0IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZ191ZGV2X2RldmljZV9nZXRfbmFtZSAoYmFja2xpZ2h0LT51 ZGV2X2RldmljZSksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGJhY2tsaWdodC0+YnJpZ2h0bmVzc190YXJnZXQpLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0RCVVNfQ0FMTF9GTEFHU19OT05F LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMSwgTlVMTCwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCk7 CistCistICAgICAgICAgICAgICAgICAgICAgICAgcGVyY2VudCA9IEFCU19UT19QRVJDRU5UQUdF IChiYWNrbGlnaHQtPmJyaWdodG5lc3NfbWluLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2xpZ2h0LT5icmlnaHRuZXNzX21heCwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2ts aWdodC0+YnJpZ2h0bmVzc190YXJnZXQpOworLSAgICAgICAgICAgICAgICAgICAgICAgIGdfdGFz a19yZXR1cm5faW50ICh0YXNrLCBwZXJjZW50KTsKKy0gICAgICAgICAgICAgICAgfSBlbHNlIHsK Ky0gICAgICAgICAgICAgICAgICAgICAgICB0YXNrX2RhdGEgPSBnX25ldzAgKEJhY2tsaWdodEhl bHBlckRhdGEsIDEpOworLSAgICAgICAgICAgICAgICAgICAgICAgIHRhc2tfZGF0YS0+dmFsdWUg PSBiYWNrbGlnaHQtPmJyaWdodG5lc3NfdGFyZ2V0OworLSAgICAgICAgICAgICAgICAgICAgICAg IGdfdGFza19zZXRfdGFza19kYXRhICh0YXNrLCB0YXNrX2RhdGEsIGJhY2tsaWdodF90YXNrX2Rh dGFfZGVzdHJveSk7CistCistICAgICAgICAgICAgICAgICAgICAgICAgLyogVGFzayBpcyBzZXQg dXAgbm93LiBRdWV1ZSBpdCBhbmQgZW5zdXJlIHdlIGFyZSB3b3JraW5nIHNvbWV0aGluZy4gKi8K Ky0gICAgICAgICAgICAgICAgICAgICAgICBnX3F1ZXVlX3B1c2hfdGFpbCAoJmJhY2tsaWdodC0+ dGFza3MsIHRhc2spOworLSAgICAgICAgICAgICAgICAgICAgICAgIGdzZF9iYWNrbGlnaHRfcHJv Y2Vzc190YXNrcXVldWUgKGJhY2tsaWdodCk7CistICAgICAgICAgICAgICAgIH0KKysgICAgICAg ICAgICAgICAgdGFza19kYXRhID0gZ19uZXcwIChCYWNrbGlnaHRIZWxwZXJEYXRhLCAxKTsKKysg ICAgICAgICAgICAgICAgdGFza19kYXRhLT52YWx1ZSA9IGJhY2tsaWdodC0+YnJpZ2h0bmVzc190 YXJnZXQ7CisrICAgICAgICAgICAgICAgIGdfdGFza19zZXRfdGFza19kYXRhICh0YXNrLCB0YXNr X2RhdGEsIGJhY2tsaWdodF90YXNrX2RhdGFfZGVzdHJveSk7CisrCisrICAgICAgICAgICAgICAg IC8qIFRhc2sgaXMgc2V0IHVwIG5vdy4gUXVldWUgaXQgYW5kIGVuc3VyZSB3ZSBhcmUgd29ya2lu ZyBzb21ldGhpbmcuICovCisrICAgICAgICAgICAgICAgIGdfcXVldWVfcHVzaF90YWlsICgmYmFj a2xpZ2h0LT50YXNrcywgdGFzayk7CisrICAgICAgICAgICAgICAgIGdzZF9iYWNrbGlnaHRfcHJv Y2Vzc190YXNrcXVldWUgKGJhY2tsaWdodCk7CisgCisgICAgICAgICAgICAgICAgIHJldHVybjsK KyAgICAgICAgIH0KK0BAIC04MjMsNyArODAwLDYgQEAgZ3NkX2JhY2tsaWdodF9pbml0YWJsZV9p bml0IChHSW5pdGFibGUgICAgICAgKmluaXRhYmxlLAorIHsKKyAgICAgICAgIEdzZEJhY2tsaWdo dCAqYmFja2xpZ2h0ID0gR1NEX0JBQ0tMSUdIVCAoaW5pdGFibGUpOworICAgICAgICAgR25vbWVS Uk91dHB1dCogb3V0cHV0ID0gTlVMTDsKKy0gICAgICAgIEdFcnJvciAqbG9naW5kX2Vycm9yID0g TlVMTDsKKyAKKyAgICAgICAgIGlmIChjYW5jZWxsYWJsZSAhPSBOVUxMKSB7CisgICAgICAgICAg ICAgICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwgKGVycm9yLCBHX0lPX0VSUk9SLCBHX0lPX0VSUk9S X05PVF9TVVBQT1JURUQsCitAQCAtODMyLDQ0ICs4MDgsNiBAQCBnc2RfYmFja2xpZ2h0X2luaXRh YmxlX2luaXQgKEdJbml0YWJsZSAgICAgICAqaW5pdGFibGUsCisgICAgICAgICB9CisgCisgI2lm ZGVmIF9fbGludXhfXworLSAgICAgICAgYmFja2xpZ2h0LT5sb2dpbmRfcHJveHkgPQorLSAgICAg ICAgICAgICAgICBnX2RidXNfcHJveHlfbmV3X2Zvcl9idXNfc3luYyAoR19CVVNfVFlQRV9TWVNU RU0sCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNZU1RFTURfREJV U19OQU1FLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U1lTVEVNRF9EQlVTX1BBVEgsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTWVNURU1EX0RCVVNfSU5URVJGQUNFLAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgJmxvZ2luZF9lcnJvcik7CistICAgICAg ICBpZiAoYmFja2xpZ2h0LT5sb2dpbmRfcHJveHkpIHsKKy0gICAgICAgICAgICAgICAgLyogQ2hl Y2sgdGhhdCB0aGUgU2V0QnJpZ2h0bmVzcyBtZXRob2QgZG9lcyBleGlzdCAqLworLSAgICAgICAg ICAgICAgICBnX2RidXNfcHJveHlfY2FsbF9zeW5jIChiYWNrbGlnaHQtPmxvZ2luZF9wcm94eSwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNldEJyaWdodG5lc3Mi LCBOVUxMLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0RCVVNf Q0FMTF9GTEFHU19OT05FLCAtMSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTlVMTCwgJmxvZ2luZF9lcnJvcik7CistCistICAgICAgICAgICAgICAgIGlmIChnX2Vy cm9yX21hdGNoZXMgKGxvZ2luZF9lcnJvciwgR19EQlVTX0VSUk9SLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBHX0RCVVNfRVJST1JfSU5WQUxJRF9BUkdTKSkgeworLSAg ICAgICAgICAgICAgICAgICAgICAgIC8qIFdlIGFyZSBjYWxsaW5nIHRoZSBtZXRob2Qgd2l0aCBu byBhcmd1bWVudHMsIHNvCistICAgICAgICAgICAgICAgICAgICAgICAgICogdGhpcyBpcyBleHBl Y3RlZC4KKy0gICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy0gICAgICAgICAgICAgICAgICAg ICAgICBnX2NsZWFyX2Vycm9yICgmbG9naW5kX2Vycm9yKTsKKy0gICAgICAgICAgICAgICAgfSBl bHNlIGlmIChnX2Vycm9yX21hdGNoZXMgKGxvZ2luZF9lcnJvciwgR19EQlVTX0VSUk9SLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19EQlVTX0VSUk9SX1VO S05PV05fTUVUSE9EKSkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIC8qIHN5c3RlbWQgdmVy c2lvbiBpcyB0b28gb2xkLCBzbyBpZ25vcmUuCistICAgICAgICAgICAgICAgICAgICAgICAgICov CistICAgICAgICAgICAgICAgICAgICAgICAgZ19jbGVhcl9lcnJvciAoJmxvZ2luZF9lcnJvcik7 CistICAgICAgICAgICAgICAgICAgICAgICAgZ19jbGVhcl9vYmplY3QgKCZiYWNrbGlnaHQtPmxv Z2luZF9wcm94eSk7CistICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAg ICAgICAgICAgLyogRmFpbCBvbiBhbnl0aGluZyBlbHNlICovCistICAgICAgICAgICAgICAgICAg ICAgICAgZ19jbGVhcl9vYmplY3QgKCZiYWNrbGlnaHQtPmxvZ2luZF9wcm94eSk7CistICAgICAg ICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0KKy0gICAgICAgIGlmIChsb2dpbmRfZXJyb3IpIHsK Ky0gICAgICAgICAgICAgICAgZ193YXJuaW5nICgiTm8gbG9naW5kIGZvdW5kOiAlcyIsIGxvZ2lu ZF9lcnJvci0+bWVzc2FnZSk7CistICAgICAgICAgICAgICAgIGdfZXJyb3JfZnJlZSAobG9naW5k X2Vycm9yKTsKKy0gICAgICAgIH0KKy0KKyAgICAgICAgIC8qIFRyeSBmaW5kaW5nIGEgdWRldiBk ZXZpY2UuICovCisgICAgICAgICBpZiAoZ3NkX2JhY2tsaWdodF91ZGV2X2luaXQgKGJhY2tsaWdo dCkpCisgICAgICAgICAgICAgICAgIGdvdG8gZm91bmQ7CitAQCAtOTExLDcgKzg0OSw2IEBAIGdz ZF9iYWNrbGlnaHRfZmluYWxpemUgKEdPYmplY3QgKm9iamVjdCkKKyAjaWZkZWYgX19saW51eF9f CisgICAgICAgICBnX2Fzc2VydCAoYmFja2xpZ2h0LT5hY3RpdmVfdGFzayA9PSBOVUxMKTsKKyAg ICAgICAgIGdfYXNzZXJ0IChnX3F1ZXVlX2lzX2VtcHR5ICgmYmFja2xpZ2h0LT50YXNrcykpOwor LSAgICAgICAgZ19jbGVhcl9vYmplY3QgKCZiYWNrbGlnaHQtPmxvZ2luZF9wcm94eSk7CisgICAg ICAgICBnX2NsZWFyX29iamVjdCAoJmJhY2tsaWdodC0+dWRldik7CisgICAgICAgICBnX2NsZWFy X29iamVjdCAoJmJhY2tsaWdodC0+dWRldl9kZXZpY2UpOworICAgICAgICAgaWYgKGJhY2tsaWdo dC0+aWRsZV91cGRhdGUpIHsKKy0tIAorMi4yOC4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25v bWUtc2V0dGluZ3MtZGFlbW9uL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1zZXR0aW5ncy1kYWVt b24vdGVtcGxhdGUKaW5kZXggYTcwZTI4YmU1ZmEuLmI2ZGEyOGUyNTU0IDEwMDY0NAotLS0gYS9z cmNwa2dzL2dub21lLXNldHRpbmdzLWRhZW1vbi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21l LXNldHRpbmdzLWRhZW1vbi90ZW1wbGF0ZQpAQCAtMSwxMCArMSwxMSBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAnZ25vbWUtc2V0dGluZ3MtZGFlbW9uJwogcGtnbmFtZT1nbm9tZS1zZXR0aW5ncy1k YWVtb24KLXZlcnNpb249My4zNC4xCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTMuMzguMAorcmV2aXNp b249MQogYnVpbGRfc3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzKz0iLURzeXN0ZW1kPWZhbHNl IgotaG9zdG1ha2VkZXBlbmRzPSJjbWFrZSBkb2Nib29rLXhzbCBnbGliLWRldmVsIGxpYmdsaWIt ZGV2ZWwgbGlieHNsdCBwZXJsIHBrZy1jb25maWciCitob3N0bWFrZWRlcGVuZHM9ImNtYWtlIGRv Y2Jvb2steHNsIGdldHRleHQgZ2xpYi1kZXZlbCBsaWJnbGliLWRldmVsIGxpYnhzbHQKKyBwZXJs IHBrZy1jb25maWciCiBtYWtlZGVwZW5kcz0iTmV0d29ya01hbmFnZXItZGV2ZWwgYWxzYS1saWIt ZGV2ZWwgY29sb3JkLWRldmVsIGN1cHMtZGV2ZWwgZ2NyLWRldmVsCiAgZ2VvY2x1ZTItZGV2ZWwg Z25vbWUtZGVza3RvcC1kZXZlbCBpYnVzLWRldmVsIGxpYmNhbmJlcnJhLWRldmVsIGxpYmdub21l a2JkLWRldmVsCiAgbGliZ3dlYXRoZXItZGV2ZWwgbGlibm90aWZ5LWRldmVsIGxpYnJzdmctZGV2 ZWwgbGlid2Fjb20tZGV2ZWwgbnNzLWRldmVsCkBAIC0xMiwxMyArMTMsMTMgQEAgbWFrZWRlcGVu ZHM9Ik5ldHdvcmtNYW5hZ2VyLWRldmVsIGFsc2EtbGliLWRldmVsIGNvbG9yZC1kZXZlbCBjdXBz LWRldmVsIGdjci1kZXYKICB4Zjg2LWlucHV0LXdhY29tLWRldmVsIgogZGVwZW5kcz0iaGljb2xv ci1pY29uLXRoZW1lIHB1bHNlYXVkaW8iCiBjaGVja2RlcGVuZHM9ImVsb2dpbmQgbGlibm90aWZ5 IHB5dGhvbjMtZGJ1c21vY2sgcHl0aG9uMy1nb2JqZWN0Ci0gcHl0aG9uMy1weWNvZGVzdHlsZSIK KyBweXRob24zLXB5Y29kZXN0eWxlIHdoaWNoIGh3aWRzIGV1ZGV2Igogc2hvcnRfZGVzYz0iR05P TUUgc2V0dGluZ3MgZGFlbW9uIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lk bGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6 Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNldHRpbmdzLWRhZW1vbiIKIGRpc3RmaWxl cz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3Zl cnNpb259LnRhci54eiIKLWNoZWNrc3VtPTk5ODFhMjBiYWJmOGRhNzc0NGI3ZmJlMTc1YjllMzYw NzhiZjA4ZjNiZjY1ZmU1YWVkZWI4MmNmZTI3YWMxMWYKK2NoZWNrc3VtPWI3ZWQ1YjVmYWI5YWFk MTkyY2VlZDZhOTViZTI4MDUxMjRlM2M2M2M0Njg5MWJiYWUwNzZmN2VjM2ZkNjc5MmUKIAogaWYg WyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJaG9zdG1ha2VkZXBlbmRzKz0iIHBvbGtpdCIKCkZy b20gZWNjMDU3NjRiOTk5MzE4NmY0NjY3NmI4NDNiMzAwOWY2OTkzMDBlYiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRh dGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDAzOC8x MDJdIG11dHRlcjogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTggKy0KIC4uLi9wYXRjaGVzL2ZpeC1jb2dsLWVn bC1pbmNsdWRlcy5wYXRjaCAgICAgICB8ICAxMSAtCiBzcmNwa2dzL211dHRlci9wYXRjaGVzL3Bp cGV3aXJlLTAuMy5wYXRjaCAgICAgfCA1MjEgLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmNwa2dzL211 dHRlci90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgICAgfCAgMzQgKy0KIDQgZmlsZXMgY2hh bmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwgNTU1IGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvbXV0dGVyL3BhdGNoZXMvZml4LWNvZ2wtZWdsLWluY2x1ZGVzLnBhdGNoCiBk ZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tdXR0ZXIvcGF0Y2hlcy9waXBld2lyZS0wLjMucGF0 Y2gKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCBkOGRh ZjY0ZTJhMi4uNjdmMjgyNTFjMjIgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29t bW9uL3NobGlicwpAQCAtMzAwMiwxNSArMzAwMiwxNSBAQCBsaWJkZWNvcmF0aW9uLnNvLjAgY29t cGl6LWNvcmUtMC44LjE0XzEKIGxpYmNvbXBpemNvbmZpZy5zby4wIGxpYmNvbXBpemNvbmZpZy0w LjguMTRfMQogbGliZW1lcmFsZGVuZ2luZS5zby4wIGVtZXJhbGQtMC44LjE0XzEKIGxpYmhhbmd1 bC5zby4xIGxpYmhhbmd1bC0wLjEuMF8xCi1saWJtdXR0ZXItNS5zby4wIG11dHRlci0zLjM0LjFf MQotbGlibXV0dGVyLWNsdXR0ZXItNS5zbyBtdXR0ZXItMy4zNC4xXzEKLWxpYm11dHRlci1jbHV0 dGVyLTUuc28uMCBtdXR0ZXItMy4zNC4xXzEKLWxpYm11dHRlci1jb2dsLXBhdGgtNS5zbyBtdXR0 ZXItMy4zNC4xXzEKLWxpYm11dHRlci1jb2dsLXBhdGgtNS5zby4wIG11dHRlci0zLjM0LjFfMQot bGlibXV0dGVyLWNvZ2wtNS5zbyBtdXR0ZXItMy4zNC4xXzEKLWxpYm11dHRlci1jb2dsLTUuc28u MCBtdXR0ZXItMy4zNC4xXzEKLWxpYm11dHRlci1jb2dsLXBhbmdvLTUuc28gbXV0dGVyLTMuMzQu MV8xCi1saWJtdXR0ZXItY29nbC1wYW5nby01LnNvLjAgbXV0dGVyLTMuMzQuMV8xCitsaWJtdXR0 ZXItNy5zby4wIG11dHRlci0zLjM3LjkwXzEKK2xpYm11dHRlci1jbHV0dGVyLTcuc28gbXV0dGVy LTMuMzcuOTBfMQorbGlibXV0dGVyLWNsdXR0ZXItNy5zby4wIG11dHRlci0zLjM3LjkwXzEKK2xp Ym11dHRlci1jb2dsLXBhdGgtNy5zbyBtdXR0ZXItMy4zNy45MF8xCitsaWJtdXR0ZXItY29nbC1w YXRoLTcuc28uMCBtdXR0ZXItMy4zNy45MF8xCitsaWJtdXR0ZXItY29nbC03LnNvIG11dHRlci0z LjM3LjkwXzEKK2xpYm11dHRlci1jb2dsLTcuc28uMCBtdXR0ZXItMy4zNy45MF8xCitsaWJtdXR0 ZXItY29nbC1wYW5nby03LnNvIG11dHRlci0zLjM3LjkwXzEKK2xpYm11dHRlci1jb2dsLXBhbmdv LTcuc28uMCBtdXR0ZXItMy4zNy45MF8xCiBsaWJnZW9jbHVlLTIuc28uMCBnZW9jbHVlMi0yLjQu NF8xCiBsaWJnZXB1Yi5zby4wIGxpYmdlcHViLTAuNF8xCiBsaWJzbG9weS5zby43LjUgc2xvcC03 LjVfMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tdXR0ZXIvcGF0Y2hlcy9maXgtY29nbC1lZ2wtaW5j bHVkZXMucGF0Y2ggYi9zcmNwa2dzL211dHRlci9wYXRjaGVzL2ZpeC1jb2dsLWVnbC1pbmNsdWRl cy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDkwOTg4ODg3YzMuLjAwMDAw MDAwMDAwCi0tLSBhL3NyY3BrZ3MvbXV0dGVyL3BhdGNoZXMvZml4LWNvZ2wtZWdsLWluY2x1ZGVz LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotLS0tIGNvZ2wvY29nbC9tZXNv bi5idWlsZAkyMDE5LTEwLTA4IDE5OjE1OjEwLjAwMDAwMDAwMCArMDIwMAotKysrIGNvZ2wvY29n bC9tZXNvbi5idWlsZAkyMDE5LTEyLTE2IDE1OjQ1OjQ0LjAzNzY0MDU0OCArMDEwMAotQEAgLTQ4 LDcgKzQ4LDcgQEAKLSBidWlsdF9oZWFkZXJzICs9IFtjb2dsX2dsX2hlYWRlcl9oXQotIAotIGlm IGhhdmVfZWdsCi0tICBjb2dsX2VnbF9pbmNsdWRlc19zdHJpbmcgPSAnI2luY2x1ZGUgPEVHTC9l Z2wuaD5cbiNpbmNsdWRlIDxFR0wvZWdsZXh0Lmg+JwotKyAgY29nbF9lZ2xfaW5jbHVkZXNfc3Ry aW5nID0gJyNpbmNsdWRlIDxFR0wvZWdsLmg+XG4jaW5jbHVkZSA8RUdML2VnbGV4dC5oPlxuI2lu Y2x1ZGUgPEVHTC9lZ2xtZXNhZXh0Lmg+JwotIGVsc2UKLSAgIGNvZ2xfZWdsX2luY2x1ZGVzX3N0 cmluZyA9ICcnCi0gZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbXV0dGVyL3BhdGNoZXMvcGlw ZXdpcmUtMC4zLnBhdGNoIGIvc3JjcGtncy9tdXR0ZXIvcGF0Y2hlcy9waXBld2lyZS0wLjMucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGViZmY2NWZiYTg1Li4wMDAwMDAwMDAw MAotLS0gYS9zcmNwa2dzL211dHRlci9wYXRjaGVzL3BpcGV3aXJlLTAuMy5wYXRjaAorKysgL2Rl di9udWxsCkBAIC0xLDUyMSArMCwwIEBACi1CdWlsZCBtdXR0ZXIgYWdhaW5zdCBwaXBld2lyZS0w LjMsIGJhc2VkIG9uIGEgcGF0Y2ggYXQ6Ci1odHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUv bXV0dGVyLy0vbWVyZ2VfcmVxdWVzdHMvMTA2MgotLS0tIG1lc29uLmJ1aWxkCi0rKysgbWVzb24u YnVpbGQKLUBAIC01MCw3ICs1MCw3IEBAIGxpYmlucHV0X3JlcSA9ICc+PSAxLjcnCi0gZ2JtX3Jl cSA9ICc+PSAxMC4zJwotCi0gIyBzY3JlZW4gY2FzdCB2ZXJzaW9uIHJlcXVpcmVtZW50cwotLWxp YnBpcGV3aXJlX3JlcSA9ICc+PSAwLjIuNScKLStsaWJwaXBld2lyZV9yZXEgPSAnPj0gMC4zLjAn Ci0KLSBnbm9tZSA9IGltcG9ydCgnZ25vbWUnKQotIHBrZyA9IGltcG9ydCgncGtnY29uZmlnJykK LUBAIC0yNDEsNyArMjQxLDcgQEAgZW5kaWYKLQotIGhhdmVfcmVtb3RlX2Rlc2t0b3AgPSBnZXRf b3B0aW9uKCdyZW1vdGVfZGVza3RvcCcpCi0gaWYgaGF2ZV9yZW1vdGVfZGVza3RvcAotLSAgbGli cGlwZXdpcmVfZGVwID0gZGVwZW5kZW5jeSgnbGlicGlwZXdpcmUtMC4yJywgdmVyc2lvbjogbGli cGlwZXdpcmVfcmVxKQotKyAgbGlicGlwZXdpcmVfZGVwID0gZGVwZW5kZW5jeSgnbGlicGlwZXdp cmUtMC4zJywgdmVyc2lvbjogbGlicGlwZXdpcmVfcmVxKQotIGVuZGlmCi0KLSBoYXZlX2ludHJv c3BlY3Rpb24gPSBnZXRfb3B0aW9uKCdpbnRyb3NwZWN0aW9uJykKLWRpZmYgLS1naXQgYS9zcmMv YmFja2VuZHMvbWV0YS1zY3JlZW4tY2FzdC1zdHJlYW0tc3JjLmMgYi9zcmMvYmFja2VuZHMvbWV0 YS1zY3JlZW4tY2FzdC1zdHJlYW0tc3JjLmMKLWluZGV4IDgyYzVjYmE0MzYuLmJhMWNlOTRhN2Ug MTAwNjQ0Ci0tLS0gc3JjL2JhY2tlbmRzL21ldGEtc2NyZWVuLWNhc3Qtc3RyZWFtLXNyYy5jCi0r Kysgc3JjL2JhY2tlbmRzL21ldGEtc2NyZWVuLWNhc3Qtc3RyZWFtLXNyYy5jCi1AQCAtMjksNiAr MjksNyBAQAotICNpbmNsdWRlIDxzcGEvcGFyYW0vcHJvcHMuaD4KLSAjaW5jbHVkZSA8c3BhL3Bh cmFtL2Zvcm1hdC11dGlscy5oPgotICNpbmNsdWRlIDxzcGEvcGFyYW0vdmlkZW8vZm9ybWF0LXV0 aWxzLmg+Ci0rI2luY2x1ZGUgPHNwYS91dGlscy9yZXN1bHQuaD4KLSAjaW5jbHVkZSA8c3RkaW50 Lmg+Ci0gI2luY2x1ZGUgPHN5cy9tbWFuLmg+Ci0KLUBAIC02MiwxNSArNjMsNiBAQCBlbnVtCi0K LSBzdGF0aWMgZ3VpbnQgc2lnbmFsc1tOX1NJR05BTFNdOwotCi0tdHlwZWRlZiBzdHJ1Y3QgX01l dGFTcGFUeXBlCi0tewotLSAgc3RydWN0IHNwYV90eXBlX21lZGlhX3R5cGUgbWVkaWFfdHlwZTsK LS0gIHN0cnVjdCBzcGFfdHlwZV9tZWRpYV9zdWJ0eXBlIG1lZGlhX3N1YnR5cGU7Ci0tICBzdHJ1 Y3Qgc3BhX3R5cGVfZm9ybWF0X3ZpZGVvIGZvcm1hdF92aWRlbzsKLS0gIHN0cnVjdCBzcGFfdHlw ZV92aWRlb19mb3JtYXQgdmlkZW9fZm9ybWF0OwotLSAgdWludDMyX3QgbWV0YV9jdXJzb3I7Ci0t fSBNZXRhU3BhVHlwZTsKLS0KLSB0eXBlZGVmIHN0cnVjdCBfTWV0YVBpcGVXaXJlU291cmNlCi0g ewotICAgR1NvdXJjZSBiYXNlOwotQEAgLTgyLDE5ICs3NCwxOSBAQCB0eXBlZGVmIHN0cnVjdCBf TWV0YVNjcmVlbkNhc3RTdHJlYW1TcmNQcml2YXRlCi0gewotICAgTWV0YVNjcmVlbkNhc3RTdHJl YW0gKnN0cmVhbTsKLQotKyAgc3RydWN0IHB3X2NvbnRleHQgKnBpcGV3aXJlX2NvbnRleHQ7Ci0g ICBzdHJ1Y3QgcHdfY29yZSAqcGlwZXdpcmVfY29yZTsKLS0gIHN0cnVjdCBwd19yZW1vdGUgKnBp cGV3aXJlX3JlbW90ZTsKLS0gIHN0cnVjdCBwd190eXBlICpwaXBld2lyZV90eXBlOwotICAgTWV0 YVBpcGVXaXJlU291cmNlICpwaXBld2lyZV9zb3VyY2U7Ci0tICBzdHJ1Y3Qgc3BhX2hvb2sgcGlw ZXdpcmVfcmVtb3RlX2xpc3RlbmVyOwotKyAgc3RydWN0IHNwYV9ob29rIHBpcGV3aXJlX2NvcmVf bGlzdGVuZXI7Ci0KLSAgIGdib29sZWFuIGlzX2VuYWJsZWQ7Ci0KLSAgIHN0cnVjdCBwd19zdHJl YW0gKnBpcGV3aXJlX3N0cmVhbTsKLSAgIHN0cnVjdCBzcGFfaG9vayBwaXBld2lyZV9zdHJlYW1f bGlzdGVuZXI7Ci0rICB1aW50MzJfdCBub2RlX2lkOwotCi0tICBNZXRhU3BhVHlwZSBzcGFfdHlw ZTsKLSAgIHN0cnVjdCBzcGFfdmlkZW9faW5mb19yYXcgdmlkZW9fZm9ybWF0OwotKyAgaW50IHZp ZGVvX3N0cmlkZTsKLQotICAgdWludDY0X3QgbGFzdF9mcmFtZV90aW1lc3RhbXBfdXM7Ci0KLUBA IC0xMTIsOCArMTA0LDYgQEAgR19ERUZJTkVfVFlQRV9XSVRIX0NPREUgKE1ldGFTY3JlZW5DYXN0 U3RyZWFtU3JjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19pbml0X2luaXRhYmxlX2lmYWNlKQotICAg ICAgICAgICAgICAgICAgICAgICAgICBHX0FERF9QUklWQVRFIChNZXRhU2NyZWVuQ2FzdFN0cmVh bVNyYykpCi0KLS0jZGVmaW5lIFBST1BfUkFOR0UobWluLCBtYXgpIDIsIChtaW4pLCAobWF4KQot LQotIHN0YXRpYyB2b2lkCi0gbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2dldF9zcGVjcyAo TWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgKnNyYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAqd2lkdGgsCi1AQCAtMjg2LDkg KzI3Niw2IEBAIG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19zZXRfZW1wdHlfY3Vyc29yX3Nw cml0ZV9tZXRhZGF0YSAoTWV0YVNjcmVlbkNhc3RTdHJlCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgICAgICAgICAgICAg ICAgICAgICAgeCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGludCAgICAgICAgICAgICAgICAgICAgICB5KQotIHsKLS0gIE1l dGFTY3JlZW5DYXN0U3RyZWFtU3JjUHJpdmF0ZSAqcHJpdiA9Ci0tICAgIG1ldGFfc2NyZWVuX2Nh c3Rfc3RyZWFtX3NyY19nZXRfaW5zdGFuY2VfcHJpdmF0ZSAoc3JjKTsKLS0gIE1ldGFTcGFUeXBl ICpzcGFfdHlwZSA9ICZwcml2LT5zcGFfdHlwZTsKLSAgIHN0cnVjdCBzcGFfbWV0YV9iaXRtYXAg KnNwYV9tZXRhX2JpdG1hcDsKLQotICAgc3BhX21ldGFfY3Vyc29yLT5pZCA9IDE7Ci1AQCAtMzAw LDcgKzI4Nyw3IEBAIG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19zZXRfZW1wdHlfY3Vyc29y X3Nwcml0ZV9tZXRhZGF0YSAoTWV0YVNjcmVlbkNhc3RTdHJlCi0gICBzcGFfbWV0YV9iaXRtYXAg PSBTUEFfTUVNQkVSIChzcGFfbWV0YV9jdXJzb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzcGFfbWV0YV9jdXJzb3ItPmJpdG1hcF9vZmZzZXQsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc3BhX21ldGFfYml0bWFwKTsKLS0gIHNwYV9tZXRhX2Jp dG1hcC0+Zm9ybWF0ID0gc3BhX3R5cGUtPnZpZGVvX2Zvcm1hdC5SR0JBOwotKyAgc3BhX21ldGFf Yml0bWFwLT5mb3JtYXQgPSBTUEFfVklERU9fRk9STUFUX1JHQkE7Ci0gICBzcGFfbWV0YV9iaXRt YXAtPm9mZnNldCA9IHNpemVvZiAoc3RydWN0IHNwYV9tZXRhX2JpdG1hcCk7Ci0KLSAgIHNwYV9t ZXRhX2N1cnNvci0+aG90c3BvdC54ID0gMDsKLUBAIC0zMTcsOSArMzA0LDYgQEAgbWV0YV9zY3Jl ZW5fY2FzdF9zdHJlYW1fc3JjX3NldF9jdXJzb3Jfc3ByaXRlX21ldGFkYXRhIChNZXRhU2NyZWVu Q2FzdFN0cmVhbVNyYwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW50ICAgICAgICAgICAgICAgICAgICAgIHksCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCAgICAgICAg ICAgICAgICAgICAgc2NhbGUpCi0gewotLSAgTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmNQcml2YXRl ICpwcml2ID0KLS0gICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2dldF9pbnN0YW5jZV9w cml2YXRlIChzcmMpOwotLSAgTWV0YVNwYVR5cGUgKnNwYV90eXBlID0gJnByaXYtPnNwYV90eXBl OwotICAgQ29nbFRleHR1cmUgKmN1cnNvcl90ZXh0dXJlOwotICAgc3RydWN0IHNwYV9tZXRhX2Jp dG1hcCAqc3BhX21ldGFfYml0bWFwOwotICAgaW50IGhvdHNwb3RfeCwgaG90c3BvdF95OwotQEAg LTM0Niw3ICszMzAsNyBAQCBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfc2V0X2N1cnNvcl9z cHJpdGVfbWV0YWRhdGEgKE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjCi0gICBzcGFfbWV0YV9iaXRt YXAgPSBTUEFfTUVNQkVSIChzcGFfbWV0YV9jdXJzb3IsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzcGFfbWV0YV9jdXJzb3ItPmJpdG1hcF9vZmZzZXQsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qgc3BhX21ldGFfYml0bWFwKTsKLS0gIHNwYV9tZXRh X2JpdG1hcC0+Zm9ybWF0ID0gc3BhX3R5cGUtPnZpZGVvX2Zvcm1hdC5SR0JBOwotKyAgc3BhX21l dGFfYml0bWFwLT5mb3JtYXQgPSBTUEFfVklERU9fRk9STUFUX1JHQkE7Ci0gICBzcGFfbWV0YV9i aXRtYXAtPm9mZnNldCA9IHNpemVvZiAoc3RydWN0IHNwYV9tZXRhX2JpdG1hcCk7Ci0KLSAgIG1l dGFfY3Vyc29yX3Nwcml0ZV9nZXRfaG90c3BvdCAoY3Vyc29yX3Nwcml0ZSwgJmhvdHNwb3RfeCwg JmhvdHNwb3RfeSk7Ci1AQCAtMzgyLDEyICszNjYsMTAgQEAgc3RhdGljIHZvaWQKLSBhZGRfY3Vy c29yX21ldGFkYXRhIChNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyYyAqc3JjLAotICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCBzcGFfYnVmZmVyICAgICAgICpzcGFfYnVmZmVyKQotIHsKLS0gIE1l dGFTY3JlZW5DYXN0U3RyZWFtU3JjUHJpdmF0ZSAqcHJpdiA9Ci0tICAgIG1ldGFfc2NyZWVuX2Nh c3Rfc3RyZWFtX3NyY19nZXRfaW5zdGFuY2VfcHJpdmF0ZSAoc3JjKTsKLS0gIE1ldGFTcGFUeXBl ICpzcGFfdHlwZSA9ICZwcml2LT5zcGFfdHlwZTsKLSAgIHN0cnVjdCBzcGFfbWV0YV9jdXJzb3Ig KnNwYV9tZXRhX2N1cnNvcjsKLQotLSAgc3BhX21ldGFfY3Vyc29yID0gc3BhX2J1ZmZlcl9maW5k X21ldGEgKHNwYV9idWZmZXIsIHNwYV90eXBlLT5tZXRhX2N1cnNvcik7Ci0rICBzcGFfbWV0YV9j dXJzb3IgPSBzcGFfYnVmZmVyX2ZpbmRfbWV0YV9kYXRhIChzcGFfYnVmZmVyLCBTUEFfTUVUQV9D dXJzb3IsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz aXplb2YgKCpzcGFfbWV0YV9jdXJzb3IpKTsKLSAgIGlmIChzcGFfbWV0YV9jdXJzb3IpCi0gICAg IG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19zZXRfY3Vyc29yX21ldGFkYXRhIChzcmMsIHNw YV9tZXRhX2N1cnNvcik7Ci0gfQotQEAgLTQ0NywxNCArNDI5LDE0IEBAIG1ldGFfc2NyZWVuX2Nh c3Rfc3RyZWFtX3NyY19tYXliZV9yZWNvcmRfZnJhbWUgKE1ldGFTY3JlZW5DYXN0U3RyZWFtU3Jj ICpzcmMpCi0gICAgIHsKLSAgICAgICBkYXRhID0gc3BhX2J1ZmZlci0+ZGF0YXNbMF0uZGF0YTsK LSAgICAgfQotLSAgZWxzZSBpZiAoc3BhX2J1ZmZlci0+ZGF0YXNbMF0udHlwZSA9PSBwcml2LT5w aXBld2lyZV90eXBlLT5kYXRhLk1lbUZkKQotKyAgZWxzZSBpZiAoc3BhX2J1ZmZlci0+ZGF0YXNb MF0udHlwZSA9PSBTUEFfREFUQV9NZW1GZCkKLSAgICAgewotICAgICAgIG1hcCA9IG1tYXAgKE5V TEwsIHNwYV9idWZmZXItPmRhdGFzWzBdLm1heHNpemUgKyBzcGFfYnVmZmVyLT5kYXRhc1swXS5t YXBvZmZzZXQsCi0gICAgICAgICAgICAgICAgICAgUFJPVF9SRUFEIHwgUFJPVF9XUklURSwgTUFQ X1NIQVJFRCwKLSAgICAgICAgICAgICAgICAgICBzcGFfYnVmZmVyLT5kYXRhc1swXS5mZCwgMCk7 Ci0gICAgICAgaWYgKG1hcCA9PSBNQVBfRkFJTEVEKQotICAgICAgICAgewotLSAgICAgICAgICBn X3dhcm5pbmcgKCJGYWlsZWQgdG8gbW1hcCBwaXBld2lyZSBzdHJlYW0gYnVmZmVyOiAlc1xuIiwK LSsgICAgICAgICAgZ193YXJuaW5nICgiRmFpbGVkIHRvIG1tYXAgcGlwZXdpcmUgc3RyZWFtIGJ1 ZmZlcjogJXMiLAotICAgICAgICAgICAgICAgICAgICAgIHN0cmVycm9yIChlcnJubykpOwotICAg ICAgICAgICByZXR1cm47Ci0gICAgICAgICB9Ci1AQCAtNDY5LDI4ICs0NTEsMzAgQEAgbWV0YV9z Y3JlZW5fY2FzdF9zdHJlYW1fc3JjX21heWJlX3JlY29yZF9mcmFtZSAoTWV0YVNjcmVlbkNhc3RT dHJlYW1TcmMgKnNyYykKLQotICAgaWYgKG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19yZWNv cmRfZnJhbWUgKHNyYywgZGF0YSkpCi0gICAgIHsKLS0gICAgICBzdHJ1Y3Qgc3BhX21ldGFfdmlk ZW9fY3JvcCAqc3BhX21ldGFfdmlkZW9fY3JvcDsKLSsgICAgICBzdHJ1Y3Qgc3BhX21ldGFfcmVn aW9uICpzcGFfbWV0YV92aWRlb19jcm9wOwotCi0gICAgICAgc3BhX2J1ZmZlci0+ZGF0YXNbMF0u Y2h1bmstPnNpemUgPSBzcGFfYnVmZmVyLT5kYXRhc1swXS5tYXhzaXplOwotKyAgICAgIHNwYV9i dWZmZXItPmRhdGFzWzBdLmNodW5rLT5zdHJpZGUgPSBwcml2LT52aWRlb19zdHJpZGU7Ci0KLSAg ICAgICAvKiBVcGRhdGUgVmlkZW9Dcm9wIGlmIG5lZWRlZCAqLwotICAgICAgIHNwYV9tZXRhX3Zp ZGVvX2Nyb3AgPQotLSAgICAgICAgc3BhX2J1ZmZlcl9maW5kX21ldGEgKHNwYV9idWZmZXIsIHBy aXYtPnBpcGV3aXJlX3R5cGUtPm1ldGEuVmlkZW9Dcm9wKTsKLSsgICAgICAgIHNwYV9idWZmZXJf ZmluZF9tZXRhX2RhdGEgKHNwYV9idWZmZXIsIFNQQV9NRVRBX1ZpZGVvQ3JvcCwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZiAoKnNwYV9tZXRhX3ZpZGVvX2Nyb3Ap KTsKLSAgICAgICBpZiAoc3BhX21ldGFfdmlkZW9fY3JvcCkKLSAgICAgICAgIHsKLSAgICAgICAg ICAgaWYgKG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19nZXRfdmlkZW9jcm9wIChzcmMsICZj cm9wX3JlY3QpKQotICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVv X2Nyb3AtPnggPSBjcm9wX3JlY3QueDsKLS0gICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Ny b3AtPnkgPSBjcm9wX3JlY3QueTsKLS0gICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3At PndpZHRoID0gY3JvcF9yZWN0LndpZHRoOwotLSAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9f Y3JvcC0+aGVpZ2h0ID0gY3JvcF9yZWN0LmhlaWdodDsKLSsgICAgICAgICAgICAgIHNwYV9tZXRh X3ZpZGVvX2Nyb3AtPnJlZ2lvbi5wb3NpdGlvbi54ID0gY3JvcF9yZWN0Lng7Ci0rICAgICAgICAg ICAgICBzcGFfbWV0YV92aWRlb19jcm9wLT5yZWdpb24ucG9zaXRpb24ueSA9IGNyb3BfcmVjdC55 OwotKyAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+cmVnaW9uLnNpemUud2lkdGgg PSBjcm9wX3JlY3Qud2lkdGg7Ci0rICAgICAgICAgICAgICBzcGFfbWV0YV92aWRlb19jcm9wLT5y ZWdpb24uc2l6ZS5oZWlnaHQgPSBjcm9wX3JlY3QuaGVpZ2h0OwotICAgICAgICAgICAgIH0KLSAg ICAgICAgICAgZWxzZQotICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgIHNwYV9tZXRhX3Zp ZGVvX2Nyb3AtPnggPSAwOwotLSAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+eSA9 IDA7Ci0tICAgICAgICAgICAgICBzcGFfbWV0YV92aWRlb19jcm9wLT53aWR0aCA9IHByaXYtPnN0 cmVhbV93aWR0aDsKLS0gICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPmhlaWdodCA9 IHByaXYtPnN0cmVhbV9oZWlnaHQ7Ci0rICAgICAgICAgICAgICBzcGFfbWV0YV92aWRlb19jcm9w LT5yZWdpb24ucG9zaXRpb24ueCA9IDA7Ci0rICAgICAgICAgICAgICBzcGFfbWV0YV92aWRlb19j cm9wLT5yZWdpb24ucG9zaXRpb24ueSA9IDA7Ci0rICAgICAgICAgICAgICBzcGFfbWV0YV92aWRl b19jcm9wLT5yZWdpb24uc2l6ZS53aWR0aCA9IHByaXYtPnN0cmVhbV93aWR0aDsKLSsgICAgICAg ICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnJlZ2lvbi5zaXplLmhlaWdodCA9IHByaXYtPnN0 cmVhbV9oZWlnaHQ7Ci0gICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICB9Ci1AQCAtNTU1 LDcgKzUzOSw2IEBAIG9uX3N0cmVhbV9zdGF0ZV9jaGFuZ2VkICh2b2lkICAgICAgICAgICAgICAg ICAqZGF0YSwKLSAgIE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjICpzcmMgPSBkYXRhOwotICAgTWV0 YVNjcmVlbkNhc3RTdHJlYW1TcmNQcml2YXRlICpwcml2ID0KLSAgICAgbWV0YV9zY3JlZW5fY2Fz dF9zdHJlYW1fc3JjX2dldF9pbnN0YW5jZV9wcml2YXRlIChzcmMpOwotLSAgdWludDMyX3Qgbm9k ZV9pZDsKLQotICAgc3dpdGNoIChzdGF0ZSkKLSAgICAgewotQEAgLTU2MywxNCArNTQ2LDEyIEBA IG9uX3N0cmVhbV9zdGF0ZV9jaGFuZ2VkICh2b2lkICAgICAgICAgICAgICAgICAqZGF0YSwKLSAg ICAgICBnX3dhcm5pbmcgKCJwaXBld2lyZSBzdHJlYW0gZXJyb3I6ICVzIiwgZXJyb3JfbWVzc2Fn ZSk7Ci0gICAgICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX25vdGlmeV9jbG9zZWQgKHNy Yyk7Ci0gICAgICAgYnJlYWs7Ci0tICAgIGNhc2UgUFdfU1RSRUFNX1NUQVRFX0NPTkZJR1VSRToK LS0gICAgICBub2RlX2lkID0gcHdfc3RyZWFtX2dldF9ub2RlX2lkIChwcml2LT5waXBld2lyZV9z dHJlYW0pOwotLSAgICAgIGdfc2lnbmFsX2VtaXQgKHNyYywgc2lnbmFsc1tSRUFEWV0sIDAsICh1 bnNpZ25lZCBpbnQpIG5vZGVfaWQpOwotLSAgICAgIGJyZWFrOwotLSAgICBjYXNlIFBXX1NUUkVB TV9TVEFURV9VTkNPTk5FQ1RFRDoKLS0gICAgY2FzZSBQV19TVFJFQU1fU1RBVEVfQ09OTkVDVElO RzoKLS0gICAgY2FzZSBQV19TVFJFQU1fU1RBVEVfUkVBRFk6Ci0gICAgIGNhc2UgUFdfU1RSRUFN X1NUQVRFX1BBVVNFRDoKLSsgICAgICBpZiAocHJpdi0+bm9kZV9pZCA9PSBTUEFfSURfSU5WQUxJ RCAmJiBwcml2LT5waXBld2lyZV9zdHJlYW0pCi0rICAgICAgICB7Ci0rICAgICAgICAgIHByaXYt Pm5vZGVfaWQgPSBwd19zdHJlYW1fZ2V0X25vZGVfaWQgKHByaXYtPnBpcGV3aXJlX3N0cmVhbSk7 Ci0rICAgICAgICAgIGdfc2lnbmFsX2VtaXQgKHNyYywgc2lnbmFsc1tSRUFEWV0sIDAsICh1bnNp Z25lZCBpbnQpIHByaXYtPm5vZGVfaWQpOwotKyAgICAgICAgfQotICAgICAgIGlmIChtZXRhX3Nj cmVlbl9jYXN0X3N0cmVhbV9zcmNfaXNfZW5hYmxlZCAoc3JjKSkKLSAgICAgICAgIG1ldGFfc2Ny ZWVuX2Nhc3Rfc3RyZWFtX3NyY19kaXNhYmxlIChzcmMpOwotICAgICAgIGJyZWFrOwotQEAgLTU3 OCw2OCArNTU5LDY5IEBAIG9uX3N0cmVhbV9zdGF0ZV9jaGFuZ2VkICh2b2lkICAgICAgICAgICAg ICAgICAqZGF0YSwKLSAgICAgICBpZiAoIW1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19pc19l bmFibGVkIChzcmMpKQotICAgICAgICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2VuYWJs ZSAoc3JjKTsKLSAgICAgICBicmVhazsKLSsgICAgY2FzZSBQV19TVFJFQU1fU1RBVEVfVU5DT05O RUNURUQ6Ci0rICAgIGNhc2UgUFdfU1RSRUFNX1NUQVRFX0NPTk5FQ1RJTkc6Ci0rICAgICAgYnJl YWs7Ci0gICAgIH0KLSB9Ci0KLSBzdGF0aWMgdm9pZAotLW9uX3N0cmVhbV9mb3JtYXRfY2hhbmdl ZCAodm9pZCAgICAgICAgICAgICAgICAgKmRhdGEsCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBzdHJ1Y3Qgc3BhX3BvZCAqZm9ybWF0KQotK29uX3N0cmVhbV9wYXJhbV9jaGFuZ2Vk ICh2b2lkICAgICAgICAgICAgICAgICAqZGF0YSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg dWludDMyX3QgICAgICAgICAgICAgIGlkLAotKyAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBzdHJ1Y3Qgc3BhX3BvZCAqZm9ybWF0KQotIHsKLSAgIE1ldGFTY3JlZW5DYXN0U3RyZWFtU3Jj ICpzcmMgPSBkYXRhOwotICAgTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmNQcml2YXRlICpwcml2ID0K LSAgICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2dldF9pbnN0YW5jZV9wcml2YXRlIChz cmMpOwotLSAgc3RydWN0IHB3X3R5cGUgKnBpcGV3aXJlX3R5cGUgPSBwcml2LT5waXBld2lyZV90 eXBlOwotICAgdWludDhfdCBwYXJhbXNfYnVmZmVyWzEwMjRdOwotICAgaW50MzJfdCB3aWR0aCwg aGVpZ2h0LCBzdHJpZGUsIHNpemU7Ci0gICBzdHJ1Y3Qgc3BhX3BvZF9idWlsZGVyIHBvZF9idWls ZGVyOwotICAgY29uc3Qgc3RydWN0IHNwYV9wb2QgKnBhcmFtc1szXTsKLSAgIGNvbnN0IGludCBi cHAgPSA0OwotCi0tICBpZiAoIWZvcm1hdCkKLS0gICAgewotLSAgICAgIHB3X3N0cmVhbV9maW5p c2hfZm9ybWF0IChwcml2LT5waXBld2lyZV9zdHJlYW0sIDAsIE5VTEwsIDApOwotLSAgICAgIHJl dHVybjsKLS0gICAgfQotKyAgaWYgKCFmb3JtYXQgfHwgaWQgIT0gU1BBX1BBUkFNX0Zvcm1hdCkK LSsgICAgcmV0dXJuOwotCi0gICBzcGFfZm9ybWF0X3ZpZGVvX3Jhd19wYXJzZSAoZm9ybWF0LAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwcml2LT52aWRlb19mb3JtYXQsCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJnByaXYtPnNwYV90eXBlLmZvcm1hdF92aWRlbyk7 Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnByaXYtPnZpZGVvX2Zvcm1hdCk7Ci0K LSAgIHdpZHRoID0gcHJpdi0+dmlkZW9fZm9ybWF0LnNpemUud2lkdGg7Ci0gICBoZWlnaHQgPSBw cml2LT52aWRlb19mb3JtYXQuc2l6ZS5oZWlnaHQ7Ci0gICBzdHJpZGUgPSBTUEFfUk9VTkRfVVBf TiAod2lkdGggKiBicHAsIDQpOwotICAgc2l6ZSA9IGhlaWdodCAqIHN0cmlkZTsKLQotKyAgcHJp di0+dmlkZW9fc3RyaWRlID0gc3RyaWRlOwotKwotICAgcG9kX2J1aWxkZXIgPSBTUEFfUE9EX0JV SUxERVJfSU5JVCAocGFyYW1zX2J1ZmZlciwgc2l6ZW9mIChwYXJhbXNfYnVmZmVyKSk7Ci0KLS0g IHBhcmFtc1swXSA9IHNwYV9wb2RfYnVpbGRlcl9vYmplY3QgKAotKyAgcGFyYW1zWzBdID0gc3Bh X3BvZF9idWlsZGVyX2FkZF9vYmplY3QgKAotICAgICAmcG9kX2J1aWxkZXIsCi0tICAgIHBpcGV3 aXJlX3R5cGUtPnBhcmFtLmlkQnVmZmVycywgcGlwZXdpcmVfdHlwZS0+cGFyYW1fYnVmZmVycy5C dWZmZXJzLAotLSAgICAiOiIsIHBpcGV3aXJlX3R5cGUtPnBhcmFtX2J1ZmZlcnMuc2l6ZSwgImki LCBzaXplLAotLSAgICAiOiIsIHBpcGV3aXJlX3R5cGUtPnBhcmFtX2J1ZmZlcnMuc3RyaWRlLCAi aSIsIHN0cmlkZSwKLS0gICAgIjoiLCBwaXBld2lyZV90eXBlLT5wYXJhbV9idWZmZXJzLmJ1ZmZl cnMsICJpcnUiLCAxNiwgUFJPUF9SQU5HRSAoMiwgMTYpLAotLSAgICAiOiIsIHBpcGV3aXJlX3R5 cGUtPnBhcmFtX2J1ZmZlcnMuYWxpZ24sICJpIiwgMTYpOwotLQotLSAgcGFyYW1zWzFdID0gc3Bh X3BvZF9idWlsZGVyX29iamVjdCAoCi0rICAgIFNQQV9UWVBFX09CSkVDVF9QYXJhbUJ1ZmZlcnMs IFNQQV9QQVJBTV9CdWZmZXJzLAotKyAgICBTUEFfUEFSQU1fQlVGRkVSU19idWZmZXJzLCBTUEFf UE9EX0NIT0lDRV9SQU5HRV9JbnQgKDE2LCAyLCAxNiksCi0rICAgIFNQQV9QQVJBTV9CVUZGRVJT X2Jsb2NrcywgU1BBX1BPRF9JbnQgKDEpLAotKyAgICBTUEFfUEFSQU1fQlVGRkVSU19zaXplLCBT UEFfUE9EX0ludCAoc2l6ZSksCi0rICAgIFNQQV9QQVJBTV9CVUZGRVJTX3N0cmlkZSwgU1BBX1BP RF9JbnQgKHN0cmlkZSksCi0rICAgIFNQQV9QQVJBTV9CVUZGRVJTX2FsaWduLCBTUEFfUE9EX0lu dCAoMTYpKTsKLSsKLSsgIHBhcmFtc1sxXSA9IHNwYV9wb2RfYnVpbGRlcl9hZGRfb2JqZWN0ICgK LSAgICAgJnBvZF9idWlsZGVyLAotLSAgICBwaXBld2lyZV90eXBlLT5wYXJhbS5pZE1ldGEsIHBp cGV3aXJlX3R5cGUtPnBhcmFtX21ldGEuTWV0YSwKLS0gICAgIjoiLCBwaXBld2lyZV90eXBlLT5w YXJhbV9tZXRhLnR5cGUsICJJIiwgcGlwZXdpcmVfdHlwZS0+bWV0YS5WaWRlb0Nyb3AsCi0tICAg ICI6IiwgcGlwZXdpcmVfdHlwZS0+cGFyYW1fbWV0YS5zaXplLCAiaSIsIHNpemVvZiAoc3RydWN0 IHNwYV9tZXRhX3ZpZGVvX2Nyb3ApKTsKLSsgICAgU1BBX1RZUEVfT0JKRUNUX1BhcmFtTWV0YSwg U1BBX1BBUkFNX01ldGEsCi0rICAgIFNQQV9QQVJBTV9NRVRBX3R5cGUsIFNQQV9QT0RfSWQgKFNQ QV9NRVRBX1ZpZGVvQ3JvcCksCi0rICAgIFNQQV9QQVJBTV9NRVRBX3NpemUsIFNQQV9QT0RfSW50 IChzaXplb2YgKHN0cnVjdCBzcGFfbWV0YV9yZWdpb24pKSk7Ci0KLS0gIHBhcmFtc1syXSA9IHNw YV9wb2RfYnVpbGRlcl9vYmplY3QgKAotKyAgcGFyYW1zWzJdID0gc3BhX3BvZF9idWlsZGVyX2Fk ZF9vYmplY3QgKAotICAgICAmcG9kX2J1aWxkZXIsCi0tICAgIHBpcGV3aXJlX3R5cGUtPnBhcmFt LmlkTWV0YSwgcGlwZXdpcmVfdHlwZS0+cGFyYW1fbWV0YS5NZXRhLAotLSAgICAiOiIsIHBpcGV3 aXJlX3R5cGUtPnBhcmFtX21ldGEudHlwZSwgIkkiLCBwcml2LT5zcGFfdHlwZS5tZXRhX2N1cnNv ciwKLS0gICAgIjoiLCBwaXBld2lyZV90eXBlLT5wYXJhbV9tZXRhLnNpemUsICJpIiwgQ1VSU09S X01FVEFfU0laRSAoNjQsIDY0KSk7Ci0rICAgIFNQQV9UWVBFX09CSkVDVF9QYXJhbU1ldGEsIFNQ QV9QQVJBTV9NZXRhLAotKyAgICBTUEFfUEFSQU1fTUVUQV90eXBlLCBTUEFfUE9EX0lkIChTUEFf TUVUQV9DdXJzb3IpLAotKyAgICBTUEFfUEFSQU1fTUVUQV9zaXplLCBTUEFfUE9EX0ludCAoQ1VS U09SX01FVEFfU0laRSAoNjQsIDY0KSkpOwotCi0tICBwd19zdHJlYW1fZmluaXNoX2Zvcm1hdCAo cHJpdi0+cGlwZXdpcmVfc3RyZWFtLCAwLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh cmFtcywgR19OX0VMRU1FTlRTIChwYXJhbXMpKTsKLSsgIHB3X3N0cmVhbV91cGRhdGVfcGFyYW1z IChwcml2LT5waXBld2lyZV9zdHJlYW0sIHBhcmFtcywgR19OX0VMRU1FTlRTIChwYXJhbXMpKTsK LSB9Ci0KLSBzdGF0aWMgY29uc3Qgc3RydWN0IHB3X3N0cmVhbV9ldmVudHMgc3RyZWFtX2V2ZW50 cyA9IHsKLSAgIFBXX1ZFUlNJT05fU1RSRUFNX0VWRU5UUywKLSAgIC5zdGF0ZV9jaGFuZ2VkID0g b25fc3RyZWFtX3N0YXRlX2NoYW5nZWQsCi0tICAuZm9ybWF0X2NoYW5nZWQgPSBvbl9zdHJlYW1f Zm9ybWF0X2NoYW5nZWQsCi0rICAucGFyYW1fY2hhbmdlZCA9IG9uX3N0cmVhbV9wYXJhbV9jaGFu Z2VkLAotIH07Ci0KLSBzdGF0aWMgc3RydWN0IHB3X3N0cmVhbSAqCi1AQCAtNjUyLDggKzYzNCw2 IEBAIGNyZWF0ZV9waXBld2lyZV9zdHJlYW0gKE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjICAqc3Jj LAotICAgdWludDhfdCBidWZmZXJbMTAyNF07Ci0gICBzdHJ1Y3Qgc3BhX3BvZF9idWlsZGVyIHBv ZF9idWlsZGVyID0KLSAgICAgU1BBX1BPRF9CVUlMREVSX0lOSVQgKGJ1ZmZlciwgc2l6ZW9mIChi dWZmZXIpKTsKLS0gIE1ldGFTcGFUeXBlICpzcGFfdHlwZSA9ICZwcml2LT5zcGFfdHlwZTsKLS0g IHN0cnVjdCBwd190eXBlICpwaXBld2lyZV90eXBlID0gcHJpdi0+cGlwZXdpcmVfdHlwZTsKLSAg IGZsb2F0IGZyYW1lX3JhdGU7Ci0gICBNZXRhRnJhY3Rpb24gZnJhbWVfcmF0ZV9mcmFjdGlvbjsK LSAgIHN0cnVjdCBzcGFfZnJhY3Rpb24gbWF4X2ZyYW1lcmF0ZTsKLUBAIC02NjEsNyArNjQxLDkg QEAgY3JlYXRlX3BpcGV3aXJlX3N0cmVhbSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgICpzcmMs Ci0gICBjb25zdCBzdHJ1Y3Qgc3BhX3BvZCAqcGFyYW1zWzFdOwotICAgaW50IHJlc3VsdDsKLQot LSAgcGlwZXdpcmVfc3RyZWFtID0gcHdfc3RyZWFtX25ldyAocHJpdi0+cGlwZXdpcmVfcmVtb3Rl LAotKyAgcHJpdi0+bm9kZV9pZCA9IFNQQV9JRF9JTlZBTElEOwotKwotKyAgcGlwZXdpcmVfc3Ry ZWFtID0gcHdfc3RyZWFtX25ldyAocHJpdi0+cGlwZXdpcmVfY29yZSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJtZXRhLXNjcmVlbi1jYXN0LXNyYyIsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKLSAgIGlmICghcGlwZXdpcmVfc3RyZWFt KQotQEAgLTY4MiwxNyArNjY0LDE3IEBAIGNyZWF0ZV9waXBld2lyZV9zdHJlYW0gKE1ldGFTY3Jl ZW5DYXN0U3RyZWFtU3JjICAqc3JjLAotICAgbWF4X2ZyYW1lcmF0ZSA9IFNQQV9GUkFDVElPTiAo ZnJhbWVfcmF0ZV9mcmFjdGlvbi5udW0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBmcmFtZV9yYXRlX2ZyYWN0aW9uLmRlbm9tKTsKLQotLSAgcGFyYW1zWzBdID0gc3BhX3BvZF9i dWlsZGVyX29iamVjdCAoCi0rICBwYXJhbXNbMF0gPSBzcGFfcG9kX2J1aWxkZXJfYWRkX29iamVj dCAoCi0gICAgICZwb2RfYnVpbGRlciwKLS0gICAgcGlwZXdpcmVfdHlwZS0+cGFyYW0uaWRFbnVt Rm9ybWF0LCBwaXBld2lyZV90eXBlLT5zcGFfZm9ybWF0LAotLSAgICAiSSIsIHNwYV90eXBlLT5t ZWRpYV90eXBlLnZpZGVvLAotLSAgICAiSSIsIHNwYV90eXBlLT5tZWRpYV9zdWJ0eXBlLnJhdywK LS0gICAgIjoiLCBzcGFfdHlwZS0+Zm9ybWF0X3ZpZGVvLmZvcm1hdCwgIkkiLCBzcGFfdHlwZS0+ dmlkZW9fZm9ybWF0LkJHUngsCi0tICAgICI6Iiwgc3BhX3R5cGUtPmZvcm1hdF92aWRlby5zaXpl LCAiUiIsICZTUEFfUkVDVEFOR0xFIChwcml2LT5zdHJlYW1fd2lkdGgsCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcml2LT5zdHJl YW1faGVpZ2h0KSwKLS0gICAgIjoiLCBzcGFfdHlwZS0+Zm9ybWF0X3ZpZGVvLmZyYW1lcmF0ZSwg IkYiLCAmU1BBX0ZSQUNUSU9OICgwLCAxKSwKLS0gICAgIjoiLCBzcGFfdHlwZS0+Zm9ybWF0X3Zp ZGVvLm1heF9mcmFtZXJhdGUsICJGcnUiLCAmbWF4X2ZyYW1lcmF0ZSwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX1JBTkdFICgmbWlu X2ZyYW1lcmF0ZSwKLSsgICAgU1BBX1RZUEVfT0JKRUNUX0Zvcm1hdCwgU1BBX1BBUkFNX0VudW1G b3JtYXQsCi0rICAgIFNQQV9GT1JNQVRfbWVkaWFUeXBlLCBTUEFfUE9EX0lkIChTUEFfTUVESUFf VFlQRV92aWRlbyksCi0rICAgIFNQQV9GT1JNQVRfbWVkaWFTdWJ0eXBlLCBTUEFfUE9EX0lkIChT UEFfTUVESUFfU1VCVFlQRV9yYXcpLAotKyAgICBTUEFfRk9STUFUX1ZJREVPX2Zvcm1hdCwgU1BB X1BPRF9JZCAoU1BBX1ZJREVPX0ZPUk1BVF9CR1J4KSwKLSsgICAgU1BBX0ZPUk1BVF9WSURFT19z aXplLCBTUEFfUE9EX1JlY3RhbmdsZSAoJlNQQV9SRUNUQU5HTEUgKHByaXYtPnN0cmVhbV93aWR0 aCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHByaXYtPnN0cmVhbV9oZWlnaHQpKSwKLSsgICAgU1BBX0ZPUk1BVF9WSURFT19m cmFtZXJhdGUsIFNQQV9QT0RfRnJhY3Rpb24gKCZTUEFfRlJBQ1RJT04gKDAsIDEpKSwKLSsgICAg U1BBX0ZPUk1BVF9WSURFT19tYXhGcmFtZXJhdGUsIFNQQV9QT0RfQ0hPSUNFX1JBTkdFX0ZyYWN0 aW9uICgmbWF4X2ZyYW1lcmF0ZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWluX2ZyYW1lcmF0ZSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAmbWF4X2ZyYW1lcmF0ZSkpOwotCi0gICBwd19zdHJlYW1fYWRkX2xpc3RlbmVyIChwaXBld2ly ZV9zdHJlYW0sCi1AQCAtNzAyLDcgKzY4NCw3IEBAIGNyZWF0ZV9waXBld2lyZV9zdHJlYW0gKE1l dGFTY3JlZW5DYXN0U3RyZWFtU3JjICAqc3JjLAotCi0gICByZXN1bHQgPSBwd19zdHJlYW1fY29u bmVjdCAocGlwZXdpcmVfc3RyZWFtLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBX X0RJUkVDVElPTl9PVVRQVVQsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUEFfSURfSU5WQUxJRCwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoUFdfU1RSRUFNX0ZMQUdfRFJJVkVSIHwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUFdfU1RSRUFNX0ZMQUdfTUFQX0JVRkZFUlMpLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcywgR19OX0VMRU1FTlRTIChwYXJhbXMp KTsKLUBAIC03MTcsNDAgKzY5OSwxOCBAQCBjcmVhdGVfcGlwZXdpcmVfc3RyZWFtIChNZXRhU2Ny ZWVuQ2FzdFN0cmVhbVNyYyAgKnNyYywKLSB9Ci0KLSBzdGF0aWMgdm9pZAotLW9uX3N0YXRlX2No YW5nZWQgKHZvaWQgICAgICAgICAgICAgICAgICpkYXRhLAotLSAgICAgICAgICAgICAgICAgIGVu dW0gcHdfcmVtb3RlX3N0YXRlICBvbGQsCi0tICAgICAgICAgICAgICAgICAgZW51bSBwd19yZW1v dGVfc3RhdGUgIHN0YXRlLAotLSAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgICAgICAgICAg ICplcnJvcl9tZXNzYWdlKQotK29uX2NvcmVfZXJyb3IgKHZvaWQgICAgICAgKmRhdGEsCi0rICAg ICAgICAgICAgICAgdWludDMyX3QgICAgaWQsCi0rCSAgICAgICBpbnQgICAgICAgICBzZXEsCi0r CSAgICAgICBpbnQgICAgICAgICByZXMsCi0rCSAgICAgICBjb25zdCBjaGFyICptZXNzYWdlKQot IHsKLSAgIE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjICpzcmMgPSBkYXRhOwotLSAgTWV0YVNjcmVl bkNhc3RTdHJlYW1TcmNQcml2YXRlICpwcml2ID0KLS0gICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJl YW1fc3JjX2dldF9pbnN0YW5jZV9wcml2YXRlIChzcmMpOwotLSAgc3RydWN0IHB3X3N0cmVhbSAq cGlwZXdpcmVfc3RyZWFtOwotLSAgR0Vycm9yICplcnJvciA9IE5VTEw7Ci0KLS0gIHN3aXRjaCAo c3RhdGUpCi0tICAgIHsKLS0gICAgY2FzZSBQV19SRU1PVEVfU1RBVEVfRVJST1I6Ci0tICAgICAg Z193YXJuaW5nICgicGlwZXdpcmUgcmVtb3RlIGVycm9yOiAlc1xuIiwgZXJyb3JfbWVzc2FnZSk7 Ci0tICAgICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX25vdGlmeV9jbG9zZWQgKHNyYyk7 Ci0tICAgICAgYnJlYWs7Ci0tICAgIGNhc2UgUFdfUkVNT1RFX1NUQVRFX0NPTk5FQ1RFRDoKLS0g ICAgICBwaXBld2lyZV9zdHJlYW0gPSBjcmVhdGVfcGlwZXdpcmVfc3RyZWFtIChzcmMsICZlcnJv cik7Ci0tICAgICAgaWYgKCFwaXBld2lyZV9zdHJlYW0pCi0tICAgICAgICB7Ci0tICAgICAgICAg IGdfd2FybmluZyAoIkNvdWxkIG5vdCBjcmVhdGUgcGlwZXdpcmUgc3RyZWFtOiAlcyIsIGVycm9y LT5tZXNzYWdlKTsKLS0gICAgICAgICAgZ19lcnJvcl9mcmVlIChlcnJvcik7Ci0tICAgICAgICAg IG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19ub3RpZnlfY2xvc2VkIChzcmMpOwotLSAgICAg ICAgfQotLSAgICAgIGVsc2UKLS0gICAgICAgIHsKLS0gICAgICAgICAgcHJpdi0+cGlwZXdpcmVf c3RyZWFtID0gcGlwZXdpcmVfc3RyZWFtOwotLSAgICAgICAgfQotLSAgICAgIGJyZWFrOwotLSAg ICBjYXNlIFBXX1JFTU9URV9TVEFURV9VTkNPTk5FQ1RFRDoKLS0gICAgY2FzZSBQV19SRU1PVEVf U1RBVEVfQ09OTkVDVElORzoKLS0gICAgICBicmVhazsKLS0gICAgfQotKyAgZ193YXJuaW5nICgi cGlwZXdpcmUgcmVtb3RlIGVycm9yOiBpZDoldSAlcyIsIGlkLCBtZXNzYWdlKTsKLSsKLSsgIGlm IChpZCA9PSBQV19JRF9DT1JFICYmIHJlcyA9PSAtRVBJUEUpCi0rICAgIG1ldGFfc2NyZWVuX2Nh c3Rfc3RyZWFtX3NyY19ub3RpZnlfY2xvc2VkIChzcmMpOwotIH0KLQotIHN0YXRpYyBnYm9vbGVh bgotQEAgLTc5MywxNyArNzUzLDYgQEAgc3RhdGljIEdTb3VyY2VGdW5jcyBwaXBld2lyZV9zb3Vy Y2VfZnVuY3MgPQotICAgcGlwZXdpcmVfbG9vcF9zb3VyY2VfZmluYWxpemUKLSB9OwotCi0tc3Rh dGljIHZvaWQKLS1pbml0X3NwYV90eXBlIChNZXRhU3BhVHlwZSAgICAgICAgICp0eXBlLAotLSAg ICAgICAgICAgICAgIHN0cnVjdCBzcGFfdHlwZV9tYXAgKm1hcCkKLS17Ci0tICBzcGFfdHlwZV9t ZWRpYV90eXBlX21hcCAobWFwLCAmdHlwZS0+bWVkaWFfdHlwZSk7Ci0tICBzcGFfdHlwZV9tZWRp YV9zdWJ0eXBlX21hcCAobWFwLCAmdHlwZS0+bWVkaWFfc3VidHlwZSk7Ci0tICBzcGFfdHlwZV9m b3JtYXRfdmlkZW9fbWFwIChtYXAsICZ0eXBlLT5mb3JtYXRfdmlkZW8pOwotLSAgc3BhX3R5cGVf dmlkZW9fZm9ybWF0X21hcCAobWFwLCAmdHlwZS0+dmlkZW9fZm9ybWF0KTsKLS0gIHR5cGUtPm1l dGFfY3Vyc29yID0gc3BhX3R5cGVfbWFwX2dldF9pZChtYXAsIFNQQV9UWVBFX01FVEFfX0N1cnNv cik7Ci0tfQotLQotIHN0YXRpYyBNZXRhUGlwZVdpcmVTb3VyY2UgKgotIGNyZWF0ZV9waXBld2ly ZV9zb3VyY2UgKHZvaWQpCi0gewotQEAgLTgyOSw5ICs3NzgsOSBAQCBjcmVhdGVfcGlwZXdpcmVf c291cmNlICh2b2lkKQotICAgcmV0dXJuIHBpcGV3aXJlX3NvdXJjZTsKLSB9Ci0KLS1zdGF0aWMg Y29uc3Qgc3RydWN0IHB3X3JlbW90ZV9ldmVudHMgcmVtb3RlX2V2ZW50cyA9IHsKLS0gIFBXX1ZF UlNJT05fUkVNT1RFX0VWRU5UUywKLS0gIC5zdGF0ZV9jaGFuZ2VkID0gb25fc3RhdGVfY2hhbmdl ZCwKLStzdGF0aWMgY29uc3Qgc3RydWN0IHB3X2NvcmVfZXZlbnRzIGNvcmVfZXZlbnRzID0gewot KyAgUFdfVkVSU0lPTl9DT1JFX0VWRU5UUywKLSsgIC5lcnJvciA9IG9uX2NvcmVfZXJyb3IsCi0g fTsKLQotIHN0YXRpYyBnYm9vbGVhbgotQEAgLTg1MSwzNyArODAwLDMxIEBAIG1ldGFfc2NyZWVu X2Nhc3Rfc3RyZWFtX3NyY19pbml0YWJsZV9pbml0IChHSW5pdGFibGUgICAgICppbml0YWJsZSwK LSAgICAgICByZXR1cm4gRkFMU0U7Ci0gICAgIH0KLQotLSAgcHJpdi0+cGlwZXdpcmVfY29yZSA9 IHB3X2NvcmVfbmV3IChwcml2LT5waXBld2lyZV9zb3VyY2UtPnBpcGV3aXJlX2xvb3AsCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwotLSAgaWYgKCFwcml2LT5w aXBld2lyZV9jb3JlKQotKyAgcHJpdi0+cGlwZXdpcmVfY29udGV4dCA9IHB3X2NvbnRleHRfbmV3 IChwcml2LT5waXBld2lyZV9zb3VyY2UtPnBpcGV3aXJlX2xvb3AsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIDApOwotKyAgaWYgKCFwcml2LT5waXBl d2lyZV9jb250ZXh0KQotICAgICB7Ci0gICAgICAgZ19zZXRfZXJyb3IgKGVycm9yLCBHX0lPX0VS Uk9SLCBHX0lPX0VSUk9SX0ZBSUxFRCwKLS0gICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBj cmVhdGUgcGlwZXdpcmUgY29yZSIpOwotKyAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIGNy ZWF0ZSBwaXBld2lyZSBjb250ZXh0Iik7Ci0gICAgICAgcmV0dXJuIEZBTFNFOwotICAgICB9Ci0K LS0gIHByaXYtPnBpcGV3aXJlX3JlbW90ZSA9IHB3X3JlbW90ZV9uZXcgKHByaXYtPnBpcGV3aXJl X2NvcmUsIE5VTEwsIDApOwotLSAgaWYgKCFwcml2LT5waXBld2lyZV9yZW1vdGUpCi0rICBwcml2 LT5waXBld2lyZV9jb3JlID0gcHdfY29udGV4dF9jb25uZWN0IChwcml2LT5waXBld2lyZV9jb250 ZXh0LCBOVUxMLCAwKTsKLSsgIGlmICghcHJpdi0+cGlwZXdpcmVfY29yZSkKLSAgICAgewotICAg ICAgIGdfc2V0X2Vycm9yIChlcnJvciwgR19JT19FUlJPUiwgR19JT19FUlJPUl9GQUlMRUQsCi0t ICAgICAgICAgICAgICAgICAgICJDb3VsZG4ndCBjcmVhdCBwaXBld2lyZSByZW1vdGUiKTsKLSsg ICAgICAgICAgICAgICAgICAgIkNvdWxkbid0IGNvbm5lY3QgcGlwZXdpcmUgY29udGV4dCIpOwot ICAgICAgIHJldHVybiBGQUxTRTsKLSAgICAgfQotCi0tICBwd19yZW1vdGVfYWRkX2xpc3RlbmVy IChwcml2LT5waXBld2lyZV9yZW1vdGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAmcHJp di0+cGlwZXdpcmVfcmVtb3RlX2xpc3RlbmVyLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAg JnJlbW90ZV9ldmVudHMsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICBzcmMpOwotKyAgcHdf Y29yZV9hZGRfbGlzdGVuZXIgKHByaXYtPnBpcGV3aXJlX2NvcmUsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgJnByaXYtPnBpcGV3aXJlX2NvcmVfbGlzdGVuZXIsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgJmNvcmVfZXZlbnRzLAotKyAgICAgICAgICAgICAgICAgICAgICAgIHNyYyk7Ci0K LS0gIHByaXYtPnBpcGV3aXJlX3R5cGUgPSBwd19jb3JlX2dldF90eXBlIChwcml2LT5waXBld2ly ZV9jb3JlKTsKLS0gIGluaXRfc3BhX3R5cGUgKCZwcml2LT5zcGFfdHlwZSwgcHJpdi0+cGlwZXdp cmVfdHlwZS0+bWFwKTsKLS0KLS0gIGlmIChwd19yZW1vdGVfY29ubmVjdCAocHJpdi0+cGlwZXdp cmVfcmVtb3RlKSAhPSAwKQotLSAgICB7Ci0tICAgICAgZ19zZXRfZXJyb3IgKGVycm9yLCBHX0lP X0VSUk9SLCBHX0lPX0VSUk9SX0ZBSUxFRCwKLS0gICAgICAgICAgICAgICAgICAgIkNvdWxkbid0 IGNvbm5lY3QgcGlwZXdpcmUgcmVtb3RlIik7Ci0tICAgICAgcmV0dXJuIEZBTFNFOwotLSAgICB9 Ci0rICBwcml2LT5waXBld2lyZV9zdHJlYW0gPSBjcmVhdGVfcGlwZXdpcmVfc3RyZWFtIChzcmMs IGVycm9yKTsKLSsgIGlmICghcHJpdi0+cGlwZXdpcmVfc3RyZWFtKQotKyAgICByZXR1cm4gRkFM U0U7Ci0KLSAgIHJldHVybiBUUlVFOwotIH0KLUBAIC05MTIsOCArODU1LDggQEAgbWV0YV9zY3Jl ZW5fY2FzdF9zdHJlYW1fc3JjX2ZpbmFsaXplIChHT2JqZWN0ICpvYmplY3QpCi0gICAgIG1ldGFf c2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19kaXNhYmxlIChzcmMpOwotCi0gICBnX2NsZWFyX3BvaW50 ZXIgKCZwcml2LT5waXBld2lyZV9zdHJlYW0sIHB3X3N0cmVhbV9kZXN0cm95KTsKLS0gIGdfY2xl YXJfcG9pbnRlciAoJnByaXYtPnBpcGV3aXJlX3JlbW90ZSwgcHdfcmVtb3RlX2Rlc3Ryb3kpOwot LSAgZ19jbGVhcl9wb2ludGVyICgmcHJpdi0+cGlwZXdpcmVfY29yZSwgcHdfY29yZV9kZXN0cm95 KTsKLSsgIGdfY2xlYXJfcG9pbnRlciAoJnByaXYtPnBpcGV3aXJlX2NvcmUsIHB3X2NvcmVfZGlz Y29ubmVjdCk7Ci0rICBnX2NsZWFyX3BvaW50ZXIgKCZwcml2LT5waXBld2lyZV9jb250ZXh0LCBw d19jb250ZXh0X2Rlc3Ryb3kpOwotICAgZ19zb3VyY2VfZGVzdHJveSAoJnByaXYtPnBpcGV3aXJl X3NvdXJjZS0+YmFzZSk7Ci0KLSAgIEdfT0JKRUNUX0NMQVNTIChtZXRhX3NjcmVlbl9jYXN0X3N0 cmVhbV9zcmNfcGFyZW50X2NsYXNzKS0+ZmluYWxpemUgKG9iamVjdCk7CmRpZmYgLS1naXQgYS9z cmNwa2dzL211dHRlci90ZW1wbGF0ZSBiL3NyY3BrZ3MvbXV0dGVyL3RlbXBsYXRlCmluZGV4IDgw NmEzYmVmOWYwLi40NzkyODQwMzRlYSAxMDA2NDQKLS0tIGEvc3JjcGtncy9tdXR0ZXIvdGVtcGxh dGUKKysrIGIvc3JjcGtncy9tdXR0ZXIvdGVtcGxhdGUKQEAgLTEsMzQgKzEsNDAgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ211dHRlcicKIHBrZ25hbWU9bXV0dGVyCi12ZXJzaW9uPTMuMzQuMQot cmV2aXNpb249MwordmVyc2lvbj0zLjM4LjAKK3JldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2ly IgogYnVpbGRfc3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSItRGVnbF9kZXZpY2U9dHJ1ZSAt RHVkZXY9dHJ1ZSAtRG5hdGl2ZV9iYWNrZW5kPXRydWUKLSAtRHByb2ZpbGVyPWZhbHNlIC1EaW50 cm9zcGVjdGlvbj10cnVlIC1EeHdheWxhbmRfcGF0aD0vdXNyL2Jpbi9Yd2F5bGFuZCIKKyAtRHBy b2ZpbGVyPWZhbHNlIC1EaW50cm9zcGVjdGlvbj10cnVlIC1EeHdheWxhbmRfcGF0aD0vdXNyL2Jp bi9Yd2F5bGFuZAorIC1EeHdheWxhbmRfaW5pdGZkPWRpc2FibGVkIgogaG9zdG1ha2VkZXBlbmRz PSJnZXR0ZXh0IGdsaWItZGV2ZWwgcGtnLWNvbmZpZyB6ZW5pdHkgd2F5bGFuZC1kZXZlbCB4b3Jn LXNlcnZlciIKLW1ha2VkZXBlbmRzPSJlbG9naW5kLWRldmVsIGdsaWItZGV2ZWwgZ25vbWUtZGVz a3RvcC1kZXZlbCBqc29uLWdsaWItZGV2ZWwKLSBsaWJnbGliLWRldmVsIGxpYlNNLWRldmVsIGxp Ylh0c3QtZGV2ZWwgbGliY2FuYmVycmEtZGV2ZWwgbGliaW5wdXQtZGV2ZWwKLSBNZXNhTGliLWRl dmVsIHBpcGV3aXJlLWRldmVsIHN0YXJ0dXAtbm90aWZpY2F0aW9uLWRldmVsIHdheWxhbmQtcHJv dG9jb2xzCi0gZ25vbWUtc2V0dGluZ3MtZGFlbW9uLWRldmVsIgotZGVwZW5kcz0iZGVza3RvcC1m aWxlLXV0aWxzIHplbml0eSIKK21ha2VkZXBlbmRzPSJlbG9naW5kLWRldmVsIGdsaWItZGV2ZWwg Z25vbWUtZGVza3RvcC1kZXZlbCBncmFwaGVuZS1kZXZlbAorIGpzb24tZ2xpYi1kZXZlbCBsaWJn bGliLWRldmVsIGxpYlNNLWRldmVsIGxpYlh0c3QtZGV2ZWwgbGliY2FuYmVycmEtZGV2ZWwKKyBs aWJpbnB1dC1kZXZlbCBNZXNhTGliLWRldmVsIHBpcGV3aXJlLWRldmVsIHN0YXJ0dXAtbm90aWZp Y2F0aW9uLWRldmVsCisgd2F5bGFuZC1wcm90b2NvbHMgZ25vbWUtc2V0dGluZ3MtZGFlbW9uLWRl dmVsIgorZGVwZW5kcz0iZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcyBkZXNrdG9wLWZpbGUtdXRp bHMgemVuaXR5Igogc2hvcnRfZGVzYz0iTGlnaHR3ZWlnaHQgR1RLKzMgd2luZG93IG1hbmFnZXIi CiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5z ZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1By b2plY3RzL011dHRlci8iCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3Zl cnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1iYTE4MjZj Zjg4YmRiODFlNjM5NDNjYWMwMTRhOGU4YmNmMzVlYzE3OGM1MzI2NDQwMWY5YzcyZmRlYWI3NThl Ci1zaGxpYl9wcm92aWRlcz0ibGlibXV0dGVyLWNsdXR0ZXItNS5zbyBsaWJtdXR0ZXItY29nbC01 LnNvCi0gbGlibXV0dGVyLWNvZ2wtcGFuZ28tNS5zbyBsaWJtdXR0ZXItY29nbC1wYXRoLTUuc28i CitjaGVja3N1bT0wNThlZDEzZDEwMjA4NWQzZTliNmZhNTU2NGM2NjA1MGE0NzhjMzY0YTBjYzU1 YmM4NDRmZWEzZGRjZDkwZWFiCitzaGxpYl9wcm92aWRlcz0ibGlibXV0dGVyLWNsdXR0ZXItNy5z byBsaWJtdXR0ZXItY29nbC03LnNvCisgbGlibXV0dGVyLWNvZ2wtcGFuZ28tNy5zbyBsaWJtdXR0 ZXItY29nbC1wYXRoLTcuc28iCisKKyMgbmVlZHMgWAorZG9fY2hlY2soKSB7CisJOgorfQogCiBt dXR0ZXItZGV2ZWxfcGFja2FnZSgpIHsKLQlkZXBlbmRzPSJnc2V0dGluZ3MtZGVza3RvcC1zY2hl bWFzIGd0ayszLWRldmVsIGNsdXR0ZXItZGV2ZWwgbGliWDExLWRldmVsCi0JIGxpYlh0c3QtZGV2 ZWwgbXV0dGVyLSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJZGVwZW5kcz0iZ3RrKzMtZGV2ZWwg Z3JhcGhlbmUtZGV2ZWwgY2x1dHRlci1kZXZlbAorCSBsaWJYMTEtZGV2ZWwgbGliWHRzdC1kZXZl bCBtdXR0ZXItJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKIAlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxv cG1lbnQgZmlsZXMiCiAJcGtnX2luc3RhbGwoKSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRlCiAJCXZt b3ZlIHVzci9saWIvcGtnY29uZmlnCi0JCXZtb3ZlICJ1c3IvbGliL211dHRlci01LyouZ2lyIgor CQl2bW92ZSAidXNyL2xpYi9tdXR0ZXItNy8qLmdpciIKIAkJdm1vdmUgInVzci9saWIvKi5zbyIK IAl9CiB9CgpGcm9tIDZlYWQ4MTJlMTUwNjZkNzI3YjQ4MTA1ZGZiNWU5Mjg3MDFlYWE5YzQgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9y Z2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwMzkvMTAyXSBjaGVlc2U6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9jaGVl c2UvdGVtcGxhdGUgfCAxNCArKysrKy0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0 aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2NoZWVzZS90ZW1w bGF0ZSBiL3NyY3BrZ3MvY2hlZXNlL3RlbXBsYXRlCmluZGV4IDdhNTZiYTAzOWZiLi5mYWEzMjll ZTBlNCAxMDA2NDQKLS0tIGEvc3JjcGtncy9jaGVlc2UvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9j aGVlc2UvdGVtcGxhdGUKQEAgLTEsMTEgKzEsMTAgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2No ZWVzZScKIHBrZ25hbWU9Y2hlZXNlCi12ZXJzaW9uPTMuMzQuMAordmVyc2lvbj0zLjM4LjAKIHJl dmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKLWNvbmZpZ3Vy ZV9hcmdzPSItRGd0a19kb2M9JCh2b3B0X2lmIGd0a19kb2MgJ3RydWUnICdmYWxzZScpCi0gLURt YW49JCh2b3B0X2lmIGd0a19kb2MgJ3RydWUnICdmYWxzZScpIgorY29uZmlndXJlX2FyZ3M9IiQo dm9wdF9ib29sIGd0a19kb2MgZ3RrX2RvYykgJCh2b3B0X2Jvb2wgZ3RrX2RvYyBtYW4pIgogaG9z dG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGdkay1waXhidWYgZ2xpYi1kZXZlbCBpdHN0b29sIHBrZy1j b25maWcgdmFsYSBsaWJyc3ZnCiAgJCh2b3B0X2lmIGd0a19kb2MgJ2d0ay1kb2MnKSAkKHZvcHRf aWYgZ2lyICdnb2JqZWN0LWludHJvc3BlY3Rpb24nKSIKIG1ha2VkZXBlbmRzPSJjbHV0dGVyLWdz dDMtZGV2ZWwgY2x1dHRlci1ndGstZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbApAQCAtMTcsNyAr MTYsNyBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+Igog bGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUu b3JnL0FwcHMvQ2hlZXNlIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2 ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZDE4NjU2 MDBhYzg4MDEyZTEzNmIxZWMzZGI3MmE0NjM0ZjU3YmMyMDM1ODk1Mjc3YmU3OTJiYjA3ODYyN2U3 MworY2hlY2tzdW09ODhkMjczMmI0MjFiOTAzMTEwYTI2MjhkYjI1YzBkNjFlMjE5YzQyYmRmYjU5 NzExNTEwMzNmYmE5NWE4ZDE2ZgogCiBidWlsZF9vcHRpb25zPSJnaXIgZ3RrX2RvYyIKIGJ1aWxk X29wdGlvbnNfZGVmYXVsdD0iZ2lyIgpAQCAtMzcsMTEgKzM2LDggQEAgbGliY2hlZXNlX3BhY2th Z2UoKSB7CiB9CiAKIGNoZWVzZS1kZXZlbF9wYWNrYWdlKCkgewotCWRlcGVuZHM9ImdzdC1wbHVn aW5zLWJhZDEtZGV2ZWwKLQkJIGNsdXR0ZXItZ3N0My1kZXZlbAotCQkgY2x1dHRlci1ndGstZGV2 ZWwKLQkJIGxpYmNhbmJlcnJhLWRldmVsCi0JCSBsaWJjaGVlc2U+PSR7dmVyc2lvbn1fJHtyZXZp c2lvbn0iCisJZGVwZW5kcz0iZ3N0LXBsdWdpbnMtYmFkMS1kZXZlbCBjbHV0dGVyLWdzdDMtZGV2 ZWwgY2x1dHRlci1ndGstZGV2ZWwKKwkgbGliY2FuYmVycmEtZGV2ZWwgbGliY2hlZXNlPj0ke3Zl cnNpb259XyR7cmV2aXNpb259IgogCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIK IAlwa2dfaW5zdGFsbCgpIHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUKCkZyb20gMDQxYThhY2ExNjRh MDY5NDQyNGYwMzdiOTUwMzg1MDY2ZDhiZTgzZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVn IDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA0MC8xMDJdIGV2b2x1dGlvbi1k YXRhLXNlcnZlcjogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAyICstCiBzcmNwa2dzL2V2b2x1dGlvbi1kYXRhLXNlcnZlci90 ZW1wbGF0ZSB8IDI1ICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwg MTYgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3No bGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggNjdmMjgyNTFjMjIuLmY5MTE3YTRlYmRhIDEwMDY0 NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTYyNiw3ICs2MjYs NyBAQCBsaWJpY2Fsc3NfY3h4LnNvLjMgbGliaWNhbC0zLjAuNF8xCiBsaWJpY2FsdmNhbC5zby4z IGxpYmljYWwtMy4wLjRfMQogbGliaWNhbC1nbGliLnNvLjMgbGliaWNhbC0zLjAuNF8xCiBsaWJj YW1lbC0xLjIuc28uNjIgZXZvbHV0aW9uLWRhdGEtc2VydmVyLTMuMzAuMF8xCi1saWJlZGF0YXNl cnZlci0xLjIuc28uMjQgZXZvbHV0aW9uLWRhdGEtc2VydmVyLTMuMzIuMF8xCitsaWJlZGF0YXNl cnZlci0xLjIuc28uMjUgZXZvbHV0aW9uLWRhdGEtc2VydmVyLTMuMzcuOTBfMQogbGliZWJhY2tl bmQtMS4yLnNvLjEwIGV2b2x1dGlvbi1kYXRhLXNlcnZlci0zLjE3LjkwXzEKIGxpYmVkYXRhc2Vy dmVydWktMS4yLnNvLjIgZXZvbHV0aW9uLWRhdGEtc2VydmVyLTMuMjguMF8xCiBsaWJlYm9vay1j b250YWN0cy0xLjIuc28uMyBldm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4zNC4wXzEKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvZXZvbHV0aW9uLWRhdGEtc2VydmVyL3RlbXBsYXRlIGIvc3JjcGtncy9ldm9s dXRpb24tZGF0YS1zZXJ2ZXIvdGVtcGxhdGUKaW5kZXggZTUwMjkyYTQzZWEuLjhjY2Y5Y2I2ZWIw IDEwMDY0NAotLS0gYS9zcmNwa2dzL2V2b2x1dGlvbi1kYXRhLXNlcnZlci90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL2V2b2x1dGlvbi1kYXRhLXNlcnZlci90ZW1wbGF0ZQpAQCAtMSwyOSArMSwzNCBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZXZvbHV0aW9uLWRhdGEtc2VydmVyJwogcGtnbmFtZT1l dm9sdXRpb24tZGF0YS1zZXJ2ZXIKLXZlcnNpb249My4zNi4xCi1yZXZpc2lvbj0zCit2ZXJzaW9u PTMuMzguMAorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Y21ha2UKLWJ1aWxkX2hlbHBlcj1naXIK K2J1aWxkX2hlbHBlcj0iZ2lyIHFlbXUiCiBjb25maWd1cmVfYXJncz0iLURFTkFCTEVfVU9BPU9G RgotICQodm9wdF9pZiBnaXIgJy1ERU5BQkxFX0lOVFJPU1BFQ1RJT049T04gLURFTkFCTEVfVkFM QV9CSU5ESU5HUz1PTicgJy1ERU5BQkxFX1dFQVRIRVI9T0ZGJykiCi1ob3N0bWFrZWRlcGVuZHM9 ImZsZXggZ2xpYi1kZXZlbCBncGVyZiBpbnRsdG9vbCBwa2ctY29uZmlnIGxpYmdsaWItZGV2ZWwK LSAkKHZvcHRfaWYgZ2lyICdnb2JqZWN0LWludHJvc3BlY3Rpb24nKSIKLW1ha2VkZXBlbmRzPSJi b29zdC1kZXZlbCBsaWJjYW5iZXJyYS1kZXZlbCBsaWJnZGF0YS1kZXZlbCAkKHZvcHRfaWYgZ2ly IGxpYmd3ZWF0aGVyLWRldmVsKQotIGxpYmljYWwtZGV2ZWwgbGlic2VjcmV0LWRldmVsIG1pdC1r cmI1LWRldmVsICQodm9wdF9pZiBnaXIgJ3ZhbGEtZGV2ZWwnKSB3ZWJraXQyZ3RrLWRldmVsIgot ZGVwZW5kcz0iJCh2b3B0X2lmIGdpciBsaWJnd2VhdGhlcikgbGlic291cC1nbm9tZSIKKyAkKHZv cHRfaWYgZ2lyICctREVOQUJMRV9JTlRST1NQRUNUSU9OPU9OIC1ERU5BQkxFX1ZBTEFfQklORElO R1M9T04nKSIKK2hvc3RtYWtlZGVwZW5kcz0iZmxleCBnbGliLWRldmVsIGdwZXJmIGludGx0b29s IHBrZy1jb25maWcgbGliZ2xpYi1kZXZlbCIKK21ha2VkZXBlbmRzPSJib29zdC1kZXZlbCBsaWJj YW5iZXJyYS1kZXZlbCBsaWJnZGF0YS1kZXZlbCBsaWJpY2FsLWRldmVsCisgbGlic2VjcmV0LWRl dmVsIG1pdC1rcmI1LWRldmVsIHdlYmtpdDJndGstZGV2ZWwgbGliZ3dlYXRoZXItZGV2ZWwKKyAk KHZvcHRfaWYgZ2lyIHZhbGEtZGV2ZWwpIgorZGVwZW5kcz0ibGliZ3dlYXRoZXIgbGlic291cC1n bm9tZSIKIHNob3J0X2Rlc2M9IkNlbnRyYWxpemVkIGFjY2VzcyB0byBhcHBvaW50bWVudHMgYW5k IGNvbnRhY3RzIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3Jn PiIKIGxpY2Vuc2U9IkxHUEwtMi4xLW9ubHkiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21l Lm9yZy9BcHBzL0V2b2x1dGlvbiIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNv bnRlbnQuY29tL0dOT01FL2V2b2x1dGlvbi1kYXRhLXNlcnZlci9nbm9tZS0zLTM2L05FV1MiCiBk aXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFt ZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0xMzEyMmIyZWRkZGI5ODMwNjIwN2QyYTM1 ZDVjY2FlMjVhOTA3MDI3NjljYTBhMGI1MTY1M2I1OTg0OTg2Nzk2CitjaGVja3N1bT0xMzY4OWE3 YjU1NzY1ODA2YzRkNWYzYjA1ZWY2YzI0YjBiZjk5NTdiOWVkOTI0MGMyZGQwOWEyY2RiMTNiMGFm CiAKIGJ1aWxkX29wdGlvbnM9ImdpciIKIGlmIFsgLXogIiRDUk9TU19CVUlMRCIgXTsgdGhlbgog CWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgogZmkKIAorIyBwcm9ibGVtYXRpYworZG9fY2hl Y2soKSB7CisJOgorfQorCiAjIGNtYWtlIHBlcmZvbXJtcyAyIGNoZWNrcyB1c2luZyBiaW5hcnkg cnVudGltZSwgYWJvdXQgaWNvbnYgYW5kIHNmcnRpbWUuCiAjIG11c2wgKDEuMS4xNikgZG9lcyBu b3Qgc3VwcG9ydCAiSVNPLTIwMjItSlAiIGVuY29kaW5nIChzZWUgaXRzIHJvYWRtYXApLAogIyBh bHRob3VnaCBldm9sdXRpb24tZGF0YS1zZXJ2ZXIgaXMgZmluZSB3aXRoIG11c2wuCgpGcm9tIGY4 OTc5NDIzZmI0MzQ0ZGI4ZmFmZjhjNmYxNTM3MGEyYWNlNjRhNmEgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBU aHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNDEvMTAyXSBm b2xrczogdXBkYXRlIHRvIDAuMTQuMAoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgIHwgIDcg KysrKy0tLQogc3JjcGtncy9mb2xrcy90ZW1wbGF0ZSB8IDI4ICsrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggZjkx MTdhNGViZGEuLmU2OTg2YTgyNzI4IDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2Nv bW1vbi9zaGxpYnMKQEAgLTgzMSw5ICs4MzEsMTAgQEAgbGliZG1yLnNvLjAuMSBkZWVwaW4tbW92 aWUtcmVib3JuLTMuMi41XzEKIGxpYmdqcy5zby4wIGdqcy0xLjY1LjJfMQogbGlidGVsZXBhdGh5 LWdsaWIuc28uMCB0ZWxlcGF0aHktZ2xpYi0wLjE1LjVfMQogbGliYWNjb3VudHNzZXJ2aWNlLnNv LjAgYWNjb3VudHNzZXJ2aWNlLTAuNi40XzEKLWxpYmZvbGtzLnNvLjI1IGZvbGtzLTAuOS41XzEK LWxpYmZvbGtzLXRlbGVwYXRoeS5zby4yNSBmb2xrcy0wLjkuNV8xCi1saWJmb2xrcy1lZHMuc28u MjUgZm9sa3MtMC45LjVfMQorbGliZm9sa3Muc28uMjUgZm9sa3MtMC4xNC4wXzEKK2xpYmZvbGtz LWR1bW15LnNvLjI1IGZvbGtzLTAuMTQuMF8xCitsaWJmb2xrcy10ZWxlcGF0aHkuc28uMjUgZm9s a3MtMC4xNC4wXzEKK2xpYmZvbGtzLWVkcy5zby4yNSBmb2xrcy0wLjE0LjBfMQogbGlibmljZS5z by4xMCBsaWJuaWNlLTAuMS4wXzEKIGxpYmd1cG5wLWlnZC0xLjAuc28uNCBndXBucC1pZ2QtMC4y LjBfMQogbGlidGVsZXBhdGh5LWxvZ2dlci5zby4zIHRlbGVwYXRoeS1sb2dnZXItMC42LjBfMQpk aWZmIC0tZ2l0IGEvc3JjcGtncy9mb2xrcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZm9sa3MvdGVtcGxh dGUKaW5kZXggMzMxMGM1NGZhZGQuLmIwNzZiOTRiZWEyIDEwMDY0NAotLS0gYS9zcmNwa2dzL2Zv bGtzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZm9sa3MvdGVtcGxhdGUKQEAgLTEsMjEgKzEsMjcg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2ZvbGtzJwogcGtnbmFtZT1mb2xrcwotdmVyc2lvbj0w LjEzLjEKLXJldmlzaW9uPTIKK3ZlcnNpb249MC4xNC4wCityZXZpc2lvbj0xCiBidWlsZF9zdHls ZT1tZXNvbgotYnVpbGRfaGVscGVyPWdpcgotY29uZmlndXJlX2FyZ3M9Ii1EYl9sdG89ZmFsc2Ug LURsaWJzb2NpYWx3ZWItYmFja2VuZD1mYWxzZSIKLWhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZp ZyBpbnRsdG9vbCBnbGliLWRldmVsIHZhbGEgcHl0aG9uIGdvYmplY3QtaW50cm9zcGVjdGlvbgot IGV2b2x1dGlvbi1kYXRhLXNlcnZlci1kZXZlbCIKK2J1aWxkX2hlbHBlcj0iZ2lyIHFlbXUiCitj b25maWd1cmVfYXJncz0iLURiX2x0bz1mYWxzZSIKK2hvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZp ZyBpbnRsdG9vbCBnbGliLWRldmVsIHB5dGhvbjMgcHl0aG9uMy1kYnVzbW9jaworIGV2b2x1dGlv bi1kYXRhLXNlcnZlci1kZXZlbCAkKHZvcHRfaWYgZ2lyIHZhbGEpIgogbWFrZWRlcGVuZHM9InJl YWRsaW5lLWRldmVsIHRlbGVwYXRoeS1nbGliLWRldmVsIHplaXRnZWlzdC1kZXZlbAotIGxpYmdl ZTA4LWRldmVsIGV2b2x1dGlvbi1kYXRhLXNlcnZlci1kZXZlbCB0cmFja2VyLWRldmVsIgorIGxp YmdlZTA4LWRldmVsIGV2b2x1dGlvbi1kYXRhLXNlcnZlci1kZXZlbCB0cmFja2VyLWRldmVsCisg JCh2b3B0X2lmIGdpciB2YWxhLWRldmVsKSIKIGRlcGVuZHM9InplaXRnZWlzdCIKIHNob3J0X2Rl c2M9IkdPYmplY3QgTGlicmFyeSB0byBhZ2dyZWdhdGUgcGVvcGxlIGludG8gbWV0YWNvbnRhY3Rz IgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vu c2U9IkxHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcv UHJvamVjdHMvRm9sa3MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3Zl cnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0zZGYxYzY2 M2I4MmZlMjExYWVhZDJiMzFjYWUxZmM0MWQxMjRlODU0MzYzNzU3NjJmNjc0NWM0NWJhNDZhYTVk CitjaGVja3N1bT1kNmU3NzhkYTYzN2QzYjMzZmQ5YTZiNDUxMTVlODE1N2Q4ODY4MjExZGMwOGI5 NDNkMTA3NWI1ZWI3MjgyYmI5CisKK2J1aWxkX29wdGlvbnM9ImdpciIKK2lmIFsgLXogIiRDUk9T U19CVUlMRCIgXTsgdGhlbgorCWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgorZmkKIAogZm9s a3MtZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSIke21ha2VkZXBlbmRzfSAke3NvdXJjZXBr Z30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCkBAIC0yNCw3ICszMCw5IEBAIGZvbGtzLWRldmVs X3BhY2thZ2UoKSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRlCiAJCXZtb3ZlIHVzci9saWIvcGtnY29u ZmlnCiAJCXZtb3ZlICJ1c3IvbGliLyouc28iCi0JCXZtb3ZlIHVzci9zaGFyZS92YWxhCi0JCXZt b3ZlIHVzci9zaGFyZS9naXItMS4wCisJCWlmIFsgIiRidWlsZF9vcHRpb25fZ2lyIiBdOyB0aGVu CisJCQl2bW92ZSB1c3Ivc2hhcmUvZ2lyLTEuMAorCQkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKKwkJ ZmkKIAl9CiB9CgpGcm9tIDJhNDk1OGI0MzA0MTYzNTkyMGYwNDI2NjBmYjdkYWZhYzg4MTZiNjAg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3Rh Zm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6 IFtQQVRDSCAwNDIvMTAyXSBnbm9tZS1vbmxpbmUtYWNjb3VudHM6IHVwZGF0ZSB0byAzLjM3Ljkw CgotLS0KIHNyY3BrZ3MvZ25vbWUtb25saW5lLWFjY291bnRzL3RlbXBsYXRlIHwgMTQgKysrKysr LS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1vbmxpbmUtYWNjb3VudHMvdGVtcGxhdGUgYi9z cmNwa2dzL2dub21lLW9ubGluZS1hY2NvdW50cy90ZW1wbGF0ZQppbmRleCAxOTNhN2Y5YjQzZi4u Mjk5ODBkNDM0MjQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtb25saW5lLWFjY291bnRzL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtb25saW5lLWFjY291bnRzL3RlbXBsYXRlCkBAIC0x LDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtb25saW5lLWFjY291bnRzJwog cGtnbmFtZT1nbm9tZS1vbmxpbmUtYWNjb3VudHMKLXZlcnNpb249My4zNi4wCi1yZXZpc2lvbj0y Cit2ZXJzaW9uPTMuMzcuOTAKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUK IGJ1aWxkX2hlbHBlcj0iZ2lyIgogY29uZmlndXJlX2FyZ3M9IiQodm9wdF9lbmFibGUgZ2lyIGlu dHJvc3BlY3Rpb24pCkBAIC0xMSw3ICsxMSw3IEBAIGNvbmZpZ3VyZV9hcmdzPSIkKHZvcHRfZW5h YmxlIGdpciBpbnRyb3NwZWN0aW9uKQogIC0tZW5hYmxlLW93bmNsb3VkIC0tZW5hYmxlLXdpbmRv d3MtbGl2ZSAtLWVuYWJsZS1wb2NrZXQKICAtLWVuYWJsZS1sYXN0Zm0gLS1lbmFibGUtbWVkaWEt c2VydmVyIgogaG9zdG1ha2VkZXBlbmRzPSJkb2Nib29rLXhzbCBnZXR0ZXh0LWRldmVsIGdsaWIt ZGV2ZWwgZ25vbWUtY29tbW9uCi0gbGlieHNsdCBwa2ctY29uZmlnICQodm9wdF9pZiB2YWxhIHZh bGEpIgorIGxpYnhzbHQgcGtnLWNvbmZpZyAkKHZvcHRfaWYgZ2lyIHZhbGEpIgogbWFrZWRlcGVu ZHM9Imdjci1kZXZlbCBndGsrMy1kZXZlbCBqc29uLWdsaWItZGV2ZWwgbGlibm90aWZ5LWRldmVs IGxpYnNlY3JldC1kZXZlbAogIGxpYnNvdXAtZGV2ZWwgbWl0LWtyYjUtZGV2ZWwgcmVzdC1kZXZl bCB0ZWxlcGF0aHktZ2xpYi1kZXZlbCB3ZWJraXQyZ3RrLWRldmVsIgogZGVwZW5kcz0iaGljb2xv ci1pY29uLXRoZW1lIgpAQCAtMjAsMTAgKzIwLDEwIEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5k IDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMC1vci1sYXRlciIKIGhv bWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL0dub21lT25saW5lQWNjb3Vu dHMiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7 cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0xYzhmNjI5OTA4MzNjYTQxMTg4 ZGJiODBjNWU5OWQ5OWI1N2E2MjYwOGNhNjc1YmJjZDM3YmMyMjQ0NzQyZjJlCitjaGVja3N1bT05 ZjY5ODJjODk2ZTYyMzVhMmU4NWI4YTQ5N2M3YmY2M2E0YTI4OGI1Njc4ZGI0MGRjMzczNTE1ZWZi ZWRiMWJiCiAKLWJ1aWxkX29wdGlvbnM9ImdpciB2YWxhIgotYnVpbGRfb3B0aW9uc19kZWZhdWx0 PSJnaXIgdmFsYSIKK2J1aWxkX29wdGlvbnM9ImdpciIKK2J1aWxkX29wdGlvbnNfZGVmYXVsdD0i Z2lyIgogCiBnbm9tZS1vbmxpbmUtYWNjb3VudHMtZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRz PSJndGsrMy1kZXZlbCAke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCkBAIC0z NSw4ICszNSw2IEBAIGdub21lLW9ubGluZS1hY2NvdW50cy1kZXZlbF9wYWNrYWdlKCkgewogCQl2 bW92ZSB1c3IvbGliL2dvYS0xLjAKIAkJaWYgWyAiJGJ1aWxkX29wdGlvbl9naXIiIF07IHRoZW4K IAkJCXZtb3ZlIHVzci9zaGFyZS9naXItMS4wCi0JCWZpCi0JCWlmIFsgIiRidWlsZF9vcHRpb25f dmFsYSIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKIAkJZmkKIAl9CgpGcm9tIGM1 M2FmNjIwMjQyMGZkZDFmNTBhNGZlN2JkYTc5YjU3MzZiNDQ3YjAgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBT dW4sIDE2IEF1ZyAyMDIwIDIxOjEwOjQ0ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNDMvMTAyXSBn dmZzOiB1cGRhdGUgdG8gMS40Ni4wCgotLS0KIHNyY3BrZ3MvZ3Zmcy90ZW1wbGF0ZSB8IDQgKyst LQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9zcmNwa2dzL2d2ZnMvdGVtcGxhdGUgYi9zcmNwa2dzL2d2ZnMvdGVtcGxhdGUKaW5k ZXggMTI3YTA1Nzc5MDEuLjYxMDcwMjNjMjFlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2d2ZnMvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9ndmZzL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1w bGF0ZSBmaWxlIGZvciAnZ3ZmcycKIHBrZ25hbWU9Z3ZmcwotdmVyc2lvbj0xLjQ0LjEKK3ZlcnNp b249MS40Ni4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9 Ii1Ec3lzdGVtZHVzZXJ1bml0ZGlyPW5vIC1EdG1wZmlsZXNkaXI9bm8gLURsb2dpbmQ9ZmFsc2UK QEAgLTIwLDcgKzIwLDcgQEAgbGljZW5zZT0iTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0i aHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9ndmZzIgogY2hhbmdlbG9nPSJodHRwczov L2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ3Zmcy9yYXcvZ25vbWUtMy0zNC9ORVdTIgogZGlzdGZp bGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7 dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NTBlZjMyNDVkMWIwMzY2NmE0MDQ1NTEwOTE2OWEy YTFiZDUxNDE5ZmQyZDUxZjlmYTZjZmQ0Zjg5ZjA0ZmI0NgorY2hlY2tzdW09NzhiYTczYTZkYTA5 YTIxY2UzYWNjNzc2YjQ2YzI2ZGQ1YmVhMjE2NDYzYTY1ZDY1YjQwNTJhNTdmNWQ5NzBlOQogCiAj IE1hbnVhbGx5IGRlY2xhcmUgc2hsaWJzIHVzZWQgYnkgdGhlIHN1YnBrZ3MuCiBzaGxpYl9wcm92 aWRlcz0ibGliZ3Zmc2NvbW1vbi5zbyBsaWJndmZzZGFlbW9uLnNvIgoKRnJvbSAxMzNjOWNiZTA3 ZjhiMDMzNTQ0OGZhZGRjMjY4NTM3MTFlYjJiMDY3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBB dWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDQ0LzEwMl0gZ25vbWUtY29u dHJvbC1jZW50ZXI6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9OZXR3b3JrTWFuYWdl ci90ZW1wbGF0ZSAgICAgICAgICAgICAgIHwgIDIgKwogLi4uL2dub21lLWNvbnRyb2wtY2VudGVy L3BhdGNoZXMvbm0xMjIucGF0Y2ggIHwgMzggKysrKysrKysrKysrKysrKysrKwogc3JjcGtncy9n bm9tZS1jb250cm9sLWNlbnRlci90ZW1wbGF0ZSAgICAgICAgIHwgMjQgKysrKysrKy0tLS0tCiAz IGZpbGVzIGNoYW5nZWQsIDU0IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ25vbWUtY29udHJvbC1jZW50ZXIvcGF0Y2hlcy9ubTEyMi5w YXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvTmV0d29ya01hbmFnZXIvdGVtcGxhdGUgYi9zcmNw a2dzL05ldHdvcmtNYW5hZ2VyL3RlbXBsYXRlCmluZGV4IGVkZWI4Mjc4NTc5Li5lNDgyYmJhOThk ZSAxMDA2NDQKLS0tIGEvc3JjcGtncy9OZXR3b3JrTWFuYWdlci90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL05ldHdvcmtNYW5hZ2VyL3RlbXBsYXRlCkBAIC0xLDQgKzEsNiBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAnTmV0d29ya01hbmFnZXInCisjIHdoZW4gdXBkYXRpbmcgdG8gMS4yNCBvciBuZXdl ciwgZHJvcCB0aGUgY29tcGF0CisjIHBhdGNoIGluIGdub21lLWNvbnRyb2wtY2VudGVyIGFuZCBy ZWJ1aWxkIGl0CiBwa2duYW1lPU5ldHdvcmtNYW5hZ2VyCiB2ZXJzaW9uPTEuMjIuMTAKIHJldmlz aW9uPTIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtY29udHJvbC1jZW50ZXIvcGF0Y2hlcy9u bTEyMi5wYXRjaCBiL3NyY3BrZ3MvZ25vbWUtY29udHJvbC1jZW50ZXIvcGF0Y2hlcy9ubTEyMi5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uODMzZmVkMzk2OGUK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2dub21lLWNvbnRyb2wtY2VudGVyL3BhdGNoZXMv bm0xMjIucGF0Y2gKQEAgLTAsMCArMSwzOCBAQAorRnJvbSA0MTU5Zjk4NGJkMzUxY2FmNmYwZTFh ZGJkOTBmZWViODVhYjI1MmY0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRGFuaWVs IEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CitEYXRlOiBXZWQsIDE2IFNlcCAyMDIwIDIy OjAyOjA0ICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIHJlc3RvcmUgY29tcGF0aWJpbGl0eSB3aXRo IG5ldHdvcmttYW5hZ2VyIDEuMjIKKworZHJvcCB0aGlzIHBhdGNoIGFuZCByZWJ1aWxkIGdub21l LWNvbnRyb2wtY2VudGVyIHdoZW4gdXBkYXRpbmcgbm0KKy0tLQorIHBhbmVscy9uZXR3b3JrL25l dC1kZXZpY2Utd2lmaS5jIHwgNyAtLS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDcgZGVsZXRpb25z KC0pCisKK2RpZmYgLS1naXQgcGFuZWxzL25ldHdvcmsvbmV0LWRldmljZS13aWZpLmMgcGFuZWxz L25ldHdvcmsvbmV0LWRldmljZS13aWZpLmMKK2luZGV4IGNiODZlNWIuLmQ2M2M1N2MgMTAwNjQ0 CistLS0gcGFuZWxzL25ldHdvcmsvbmV0LWRldmljZS13aWZpLmMKKysrKyBwYW5lbHMvbmV0d29y ay9uZXQtZGV2aWNlLXdpZmkuYworQEAgLTExODAsMTEgKzExODAsNiBAQCBubV9jbGllbnRfb25f cGVybWlzc2lvbl9jaGFuZ2UgKE5ldERldmljZVdpZmkgKnNlbGYpIHsKKyAgICAgICAgIE5NQ2xp ZW50UGVybWlzc2lvblJlc3VsdCBwZXJtOworICAgICAgICAgTk1EZXZpY2VXaWZpQ2FwYWJpbGl0 aWVzIGNhcHM7CisgCistICAgICAgICBpZiAobm1fY2xpZW50X2dldF9wZXJtaXNzaW9uc19zdGF0 ZSAoc2VsZi0+Y2xpZW50KSAhPSBOTV9URVJOQVJZX1RSVUUpIHsKKy0gICAgICAgICAgICAgICAg LyogcGVybWlzc2lvbnMgYXJlbid0IHJlYWR5IHlldCAqLworLSAgICAgICAgICAgICAgICByZXR1 cm47CistICAgICAgICB9CistCisgICAgICAgICAvKiBvbmx5IGVuYWJsZSB0aGUgYnV0dG9uIGlm IHRoZSB1c2VyIGNhbiBjcmVhdGUgYSBob3RzcG90ICovCisgICAgICAgICBwZXJtID0gbm1fY2xp ZW50X2dldF9wZXJtaXNzaW9uX3Jlc3VsdCAoc2VsZi0+Y2xpZW50LCBOTV9DTElFTlRfUEVSTUlT U0lPTl9XSUZJX1NIQVJFX09QRU4pOworICAgICAgICAgY2FwcyA9IG5tX2RldmljZV93aWZpX2dl dF9jYXBhYmlsaXRpZXMgKE5NX0RFVklDRV9XSUZJIChzZWxmLT5kZXZpY2UpKTsKK0BAIC0xMjI3 LDggKzEyMjIsNiBAQCBuZXRfZGV2aWNlX3dpZmlfbmV3IChDY1BhbmVsICpwYW5lbCwgTk1DbGll bnQgKmNsaWVudCwgTk1EZXZpY2UgKmRldmljZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBHX0NBTExCQUNLIChhcF9hY3RpdmF0ZWQpLCBzZWxmLCBHX0NPTk5FQ1RfU1dBUFBF RCk7CisgICAgICAgICBnX3NpZ25hbF9jb25uZWN0X29iamVjdCAobGlzdCwgImNvbmZpZ3VyZSIs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19DQUxMQkFDSyAoc2hvd19kZXRh aWxzX2Zvcl9yb3cpLCBzZWxmLCBHX0NPTk5FQ1RfU1dBUFBFRCk7CistICAgICAgICBnX3NpZ25h bF9jb25uZWN0X29iamVjdCAoY2xpZW50LCAibm90aWZ5IiwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBHX0NBTExCQUNLKG5tX2NsaWVudF9vbl9wZXJtaXNzaW9uX2NoYW5nZSks IHNlbGYsIEdfQ09OTkVDVF9TV0FQUEVEKTsKKyAKKyAgICAgICAgIG5tX2NsaWVudF9vbl9wZXJt aXNzaW9uX2NoYW5nZShzZWxmKTsKKyAKKy0tIAorMi4yOC4wCisKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvZ25vbWUtY29udHJvbC1jZW50ZXIvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWNvbnRyb2wt Y2VudGVyL3RlbXBsYXRlCmluZGV4IDlmZGI4NTNhZmJmLi4xOTExMDFhZmFhZCAxMDA2NDQKLS0t IGEvc3JjcGtncy9nbm9tZS1jb250cm9sLWNlbnRlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2du b21lLWNvbnRyb2wtY2VudGVyL3RlbXBsYXRlCkBAIC0xLDIyICsxLDIyIEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdnbm9tZS1jb250cm9sLWNlbnRlcicKIHBrZ25hbWU9Z25vbWUtY29udHJvbC1j ZW50ZXIKLXZlcnNpb249My4zNC4xCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTMuMzguMAorcmV2aXNp b249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgogY29uZmlndXJlX2Fy Z3M9Ii1EY2hlZXNlPSQodm9wdF9pZiBjaGVlc2UgdHJ1ZSBmYWxzZSkiCi1ob3N0bWFrZWRlcGVu ZHM9ImdsaWItZGV2ZWwgZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy1kZXZlbCBpbnRsdG9vbCBw a2ctY29uZmlnIHBvbGtpdAotIHB5dGhvbjMiCitob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwg Z3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy1kZXZlbCBpbnRsdG9vbCBwa2ctY29uZmlnCisgcG9s a2l0IHB5dGhvbjMiCiBtYWtlZGVwZW5kcz0iTW9kZW1NYW5hZ2VyLWRldmVsIGFjY291bnRzc2Vy dmljZS1kZXZlbCBhbHNhLXBsdWdpbnMKICBjb2xvcmQtZ3RrLWRldmVsIGdub21lLWJsdWV0b290 aC1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsIGdub21lLW1lbnVzLWRldmVsCiAgZ25vbWUtb25s aW5lLWFjY291bnRzLWRldmVsIGdub21lLXNldHRpbmdzLWRhZW1vbi1kZXZlbCBncmlsby1kZXZl bCBpYnVzLWRldmVsCi0gbGliU00tZGV2ZWwgbGliWHhmODZtaXNjLWRldmVsIGxpYmdub21la2Jk LWRldmVsIGxpYmd0b3AtZGV2ZWwKKyBsaWJTTS1kZXZlbCBsaWJYeGY4Nm1pc2MtZGV2ZWwgbGli Z25vbWVrYmQtZGV2ZWwgbGliZ3RvcC1kZXZlbCBsaWJoYW5keTEtZGV2ZWwKICBsaWJwd3F1YWxp dHktZGV2ZWwgbWl0LWtyYjUtZGV2ZWwgbmV0d29yay1tYW5hZ2VyLWFwcGxldC1kZXZlbCBwb2xr aXQtZGV2ZWwKICBwdWxzZWF1ZGlvLWRldmVsIHNhbWJhLWRldmVsIHR6ZGF0YSB1cG93ZXItZGV2 ZWwgdmFsYS1kZXZlbCBjbHV0dGVyLWd0ay1kZXZlbAogIGxpYnhtbDItZGV2ZWwgbGliWDExLWRl dmVsIGd0ayszLWRldmVsIGN1cHMtZGV2ZWwgbGliZ3VkZXYtZGV2ZWwgbGlid2Fjb20tZGV2ZWwK ICBjbHV0dGVyLWRldmVsIGxpYnNlY3JldC1kZXZlbCBsaWJjYW5iZXJyYS1kZXZlbCB1ZGlza3My LWRldmVsIGdzb3VuZC1kZXZlbAogICQodm9wdF9pZiBjaGVlc2UgY2hlZXNlLWRldmVsKSIKLWRl cGVuZHM9ImFsc2EtcGx1Z2lucy1wdWxzZWF1ZGlvIGRlc2t0b3AtZmlsZS11dGlscworZGVwZW5k cz0iYWxzYS1wbHVnaW5zLXB1bHNlYXVkaW8gZGVza3RvcC1maWxlLXV0aWxzIHVwb3dlciBjb2xv cmQgY3Vwcy1way1oZWxwZXIKICBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzIGhpY29sb3ItaWNv bi10aGVtZSBpc28tY29kZXMgc291bmQtdGhlbWUtZnJlZWRlc2t0b3AKICBjcmFja2xpYiIKIHNo b3J0X2Rlc2M9IkdOT01FIGNvbnRyb2wgY2VudGVyIgpAQCAtMjQsMTMgKzI0LDE3IEBAIG1haW50 YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwt Mi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9n bm9tZS1jb250cm9sLWNlbnRlciIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9 LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTVm ODJlY2Q1NTU0MTM2YzQ2MjI0OGVjNTM2M2I4MmQ5NTM1OGIzOWRmZDY3ODcwMDZkODMwN2I0NTA0 ZTUxNWUKK2NoZWNrc3VtPWY2YjZiNWI4ZWY5YzM4ZDg5NWJhNWFmODdmMzFhZGFlMDIxOTRhZDg2 YzlhYTZjZmYyZDJiOTc1NWMyZGIxZGEKIAogYnVpbGRfb3B0aW9ucz0iY2hlZXNlIgorYnVpbGRf b3B0aW9uc19kZWZhdWx0PSJjaGVlc2UiCisKIGRlc2Nfb3B0aW9uX2NoZWVzZT0iQWRkIHN1cHBv cnQgZm9yIGFkZGluZyB1c2VyIGFjY291bnQgaW1hZ2VzIHdpdGggeW91ciB3ZWJjYW0iCi1pZiBb IC16ICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KLQlidWlsZF9vcHRpb25zX2RlZmF1bHQrPSIgY2hl ZXNlIgotZmkKKworIyBuZWVkcyBYMTEgYW5kIHJlcXVpcmVzIGFsdGVyZWQgZmlsZXN5c3RlbQor ZG9fY2hlY2soKSB7CisJOgorfQogCiBDRkxBR1M9Ii1mY29tbW9uIgogCgpGcm9tIDgwNjc2NDBj NjIwZDkxYWNlMDhiZTVhYTM4ZGY3NzZiNmUwNTVjMGIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEz IEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNDUvMTAyXSBkY29uZi1l ZGl0b3I6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9kY29uZi1lZGl0b3IvdGVtcGxh dGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Rjb25mLWVkaXRvci90ZW1wbGF0ZSBiL3NyY3Br Z3MvZGNvbmYtZWRpdG9yL3RlbXBsYXRlCmluZGV4IGRlMjUwYmJjOGE5Li4yMzI1MmI5Zjc0ZSAx MDA2NDQKLS0tIGEvc3JjcGtncy9kY29uZi1lZGl0b3IvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9k Y29uZi1lZGl0b3IvdGVtcGxhdGUKQEAgLTEsMTMgKzEsMTMgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ2Rjb25mLWVkaXRvcicKIHBrZ25hbWU9ZGNvbmYtZWRpdG9yCi12ZXJzaW9uPTMuMzYuMAor dmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCi1ob3N0bWFrZWRl cGVuZHM9ImRvY2Jvb2steHNsIGdsaWItZGV2ZWwgbGlieHNsdCBwa2ctY29uZmlnIHZhbGEiCito b3N0bWFrZWRlcGVuZHM9ImRvY2Jvb2steHNsIGdsaWItZGV2ZWwgbGlieHNsdCBwa2ctY29uZmln IHZhbGEgZ2V0dGV4dCIKIG1ha2VkZXBlbmRzPSJkY29uZi1kZXZlbCBndGsrMy1kZXZlbCIKIHNo b3J0X2Rlc2M9Ikxvdy1sZXZlbCBjb25maWd1cmF0aW9uIHN5c3RlbSAtIEdUSysgZWRpdG9yIgog bWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9 IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9q ZWN0cy9kY29uZiIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lv biUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTcyZWVkMDU2NzA5 MTdmOGU0MzIwMGU0MGNjYzZiZTYwMjExZjBhODdiMDE3NTM0ZWFjMWZkNmM3MTczYTA2OTMKK2No ZWNrc3VtPTZkODkyNDlhMzc5MDgyZGU2YThlOTVhMmEyMDJkMGNhNWZlMWM5Nzc2YmMwZDVkM2Vm MDY1NTY3ZDgxODNlYjQKCkZyb20gOWNiMWI2OGFjODk5YzA0MzVlOTBhZWE5NjQ1NmU3MjQ4MjQ0 NTcwNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVs QG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDY6NDI6MDIgKzAyMDAKU3Vi amVjdDogW1BBVENIIDA0Ni8xMDJdIGdqczogdXBkYXRlIHRvIDEuNjYuMAoKLS0tCiBzcmNwa2dz L2dqcy90ZW1wbGF0ZSB8IDggKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMo KyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nanMvdGVtcGxhdGUgYi9z cmNwa2dzL2dqcy90ZW1wbGF0ZQppbmRleCBlYzQ4YmFkZGYxMS4uOGExMzNkZDgwNDggMTAwNjQ0 Ci0tLSBhL3NyY3BrZ3MvZ2pzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ2pzL3RlbXBsYXRlCkBA IC0xLDI3ICsxLDI3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnanMnCiBwa2duYW1lPWdqcwot dmVyc2lvbj0xLjY1LjIKK3ZlcnNpb249MS42Ni4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1t ZXNvbgogYnVpbGRfaGVscGVyPSJnaXIgcWVtdSIKIGNvbmZpZ3VyZV9hcmdzPSItRHNraXBfZGJ1 c190ZXN0cz10cnVlIC1Ec2tpcF9ndGtfdGVzdHM9dHJ1ZQogIC1EcHJvZmlsZXI9ZGlzYWJsZWQg LURpbnN0YWxsZWRfdGVzdHM9ZmFsc2UiICMgRGlzYWJsZSB0ZXN0cyBiZWNhdXNlIHRoZXkgbmVl ZCBkYnVzLCBYIGFuZCBHVEsuCiBob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgcGtnLWNvbmZp ZyIKLW1ha2VkZXBlbmRzPSJkYnVzLWdsaWItZGV2ZWwgbW96anM2OC1kZXZlbCByZWFkbGluZS1k ZXZlbCBzeXNwcm9mLWRldmVsIgorbWFrZWRlcGVuZHM9ImRidXMtZ2xpYi1kZXZlbCBtb3pqczc4 LWRldmVsIHJlYWRsaW5lLWRldmVsIHN5c3Byb2YtZGV2ZWwiCiBzaG9ydF9kZXNjPSJNb3ppbGxh LWJhc2VkIGphdmFzY3JpcHQgYmluZGluZ3MgZm9yIHRoZSBHTk9NRSBwbGF0Zm9ybSIKIG1haW50 YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJNSVQs IExHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvYWN0 aW9uL3Nob3cvUHJvamVjdHMvR2pzIgogY2hhbmdlbG9nPSJodHRwczovL2dpdGxhYi5nbm9tZS5v cmcvR05PTUUvZ2pzL2Jsb2IvZ25vbWUtMy0zMC9ORVdTIgogZGlzdGZpbGVzPSIke0dOT01FX1NJ VEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6 IgotY2hlY2tzdW09YTY2ZWRhZDhhNWYxMDAyN2Y5YjE4MmQ4OGFmODRiODFmMTNlNWFkNTg0MDMx OWNmYTc0N2Q2NmU3N2UwMjE0ZgorY2hlY2tzdW09ZjMwY2Y5MGUwMTZkYjZjOGZkZDAwNTk3NDk1 NTk2MTE3NjBmMDcyMWYzNzViMmI2MWUwYjcyMzliNDNhYjVmOAogCiBwb3N0X2luc3RhbGwoKSB7 CiAJdmxpY2Vuc2UgQ09QWUlORwogfQogCiBnanMtZGV2ZWxfcGFja2FnZSgpIHsKLQlkZXBlbmRz PSJsaWJnaXJlcG9zaXRvcnktZGV2ZWwgbW96anM2OC1kZXZlbCAke3NvdXJjZXBrZ30+PSR7dmVy c2lvbn1fJHtyZXZpc2lvbn0iCisJZGVwZW5kcz0ibGliZ2lyZXBvc2l0b3J5LWRldmVsIG1vempz NzgtZGV2ZWwgJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgogCXNob3J0X2Rl c2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKIAlwa2dfaW5zdGFsbCgpIHsKIAkJdm1vdmUgdXNy L2luY2x1ZGUKCkZyb20gMDQ1MzQ5ZTJkODM1NWE3ZDY4YzE1YTdjYTU4MDhmYzE5MGIzMThhZiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFm b3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDog W1BBVENIIDA0Ny8xMDJdIGdub21lLXNoZWxsOiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIHNyY3Br Z3MvZ25vbWUtc2hlbGwvdGVtcGxhdGUgfCAxMSArKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQs IDggaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2du b21lLXNoZWxsL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1zaGVsbC90ZW1wbGF0ZQppbmRleCA5 NmM1YjgwYTE5NC4uZjI3Nzk1NTcyZWYgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtc2hlbGwv dGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1zaGVsbC90ZW1wbGF0ZQpAQCAtMSwxMiArMSwx MiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtc2hlbGwnCiBwa2duYW1lPWdub21lLXNo ZWxsCi12ZXJzaW9uPTMuMzQuMQordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0 eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9Z2lyCiBjb25maWd1cmVfYXJncz0iLURzeXN0ZW1kPWZh bHNlIgogaG9zdG1ha2VkZXBlbmRzPSJnb2JqZWN0LWludHJvc3BlY3Rpb24gZ3RrLWRvYyBsaWJ4 c2x0IHBrZy1jb25maWcgcHl0aG9uMyBzYXNzYwotIGFzY2lpZG9jIHBlcmwgZ2xpYi1kZXZlbCBt dXR0ZXItZGV2ZWwiCisgYXNjaWlkb2MgcGVybCBnbGliLWRldmVsIG11dHRlci1kZXZlbCBnZXR0 ZXh0IGdqcy1kZXZlbCIKIG1ha2VkZXBlbmRzPSJhdC1zcGkyLWF0ayBjYXJpYm91LWRldmVsIGV2 b2x1dGlvbi1kYXRhLXNlcnZlci1kZXZlbCBmb2xrcy1kZXZlbAogIGdjci1kZXZlbCBnanMtZGV2 ZWwgZ25vbWUtYmx1ZXRvb3RoLWRldmVsIGdub21lLWNvbnRyb2wtY2VudGVyLWRldmVsIGdub21l LWRlc2t0b3AtZGV2ZWwKICBnbm9tZS1tZW51cy1kZXZlbCBnc2V0dGluZ3MtZGVza3RvcC1zY2hl bWFzLWRldmVsIGdzdHJlYW1lcjEtZGV2ZWwgZ3RrKzMtZGV2ZWwKQEAgLTIxLDQgKzIxLDkgQEAg bGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUu b3JnL1Byb2plY3RzL0dub21lU2hlbGwiCiBjaGFuZ2Vsb2c9Imh0dHBzOi8vcmF3LmdpdGh1YnVz ZXJjb250ZW50LmNvbS9HTk9NRS9nbm9tZS1zaGVsbC9nbm9tZS0zLTMwL05FV1MiCiBkaXN0Zmls ZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2 ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1jY2Q4NjU1OWI5Yzg5N2MyMTlkMmQyZWJmZGI4NDEz ZWZhNGMxYmVlODQ2NDI3Yzc1MGNiOGEzMDFiM2Y2ZDFlCitjaGVja3N1bT1jNjI2NDAzYmMwODc1 ZWU2ZGE4YzdhNjJhYzBjZWUzMTJiYWRiNTIzYWYwNzNjYjE2NjEyNTAxNWE3NWEwYTk3CisKKyMg bmVlZHMgWAorZG9fY2hlY2soKSB7CisJOgorfQoKRnJvbSA4MmE0YjBlZjJmM2QyNDQ4N2VlMzRk ZWExYzE1YTkxY2E2MWEyZDI0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwg S29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0 ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDQ4LzEwMl0gZ25vbWUtc2hlbGwtZXh0ZW5zaW9u czogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL2dub21lLXNoZWxsLWV4dGVuc2lvbnMv dGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXNoZWxsLWV4dGVuc2lvbnMv dGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLXNoZWxsLWV4dGVuc2lvbnMvdGVtcGxhdGUKaW5kZXgg OTcxNjhiNDBmNjYuLmU0OTMwMzg0ZmQ0IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXNoZWxs LWV4dGVuc2lvbnMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1zaGVsbC1leHRlbnNpb25z L3RlbXBsYXRlCkBAIC0xLDE1ICsxLDE1IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1z aGVsbC1leHRlbnNpb25zJwogcGtnbmFtZT1nbm9tZS1zaGVsbC1leHRlbnNpb25zCi12ZXJzaW9u PTMuMzQuMQordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGFyY2hzPW5vYXJjaAogYnVpbGRf c3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSItRGV4dGVuc2lvbl9zZXQ9YWxsIgotaG9zdG1h a2VkZXBlbmRzPSJwa2ctY29uZmlnIgoraG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGdldHRl eHQiCiBkZXBlbmRzPSJnbm9tZS1zaGVsbD49JHt2ZXJzaW9ufSBuYXV0aWx1cyB1bnppcCIKIHNo b3J0X2Rlc2M9IkV4dGVuc2lvbnMgZm9yIEdOT01FIHNoZWxsLCBpbmNsdWRpbmcgY2xhc3NpYyBt b2RlIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxp Y2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9y Zy9Qcm9qZWN0cy9Hbm9tZVNoZWxsL0V4dGVuc2lvbnMiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lU RX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoi Ci1jaGVja3N1bT1iMGFkNTExNDNiMWJmNDBkZWY0YTEwZjhmZDBhYjBmZmI0NzIxODMwNDgwMDc5 NGU2MmNhZGQyOWQwYWNjNzViCitjaGVja3N1bT1mNzI2Zjg1YmIzOThiMDgyYWQwOWE3ZGVkMzA2 ZjIyYmQyNWQyNTg5OGM3ZjE4YmQ3NzVkZjY2NDAwZDM5MTlmCgpGcm9tIDU2NGE1NTA2NTFhNGQ0 ODBhNjMwNTkyNjgzODJjNTRiMzg5OTlkMzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAy MDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNDkvMTAyXSBnZG06IHVwZGF0ZSB0 byAzLjM4LjAKCi0tLQogc3JjcGtncy9nZG0vcGF0Y2hlcy90YWtlLW91dC10aGUtdHJhc2gucGF0 Y2ggfCAyMyArKysrKysrKysrKysrKysrKwogc3JjcGtncy9nZG0vdGVtcGxhdGUgICAgICAgICAg ICAgICAgICAgICAgICAgfCAyNiArKysrKysrKysrKy0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2Vk LCAzNyBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL2dkbS9wYXRjaGVzL3Rha2Utb3V0LXRoZS10cmFzaC5wYXRjaAoKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZ2RtL3BhdGNoZXMvdGFrZS1vdXQtdGhlLXRyYXNoLnBhdGNoIGIvc3JjcGtncy9n ZG0vcGF0Y2hlcy90YWtlLW91dC10aGUtdHJhc2gucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLjY5MjdjNzI3N2IxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9nZG0vcGF0Y2hlcy90YWtlLW91dC10aGUtdHJhc2gucGF0Y2gKQEAgLTAsMCArMSwyMyBAQAor LS0tIG1lc29uLmJ1aWxkCisrKysgbWVzb24uYnVpbGQKK0BAIC05NCwxOSArOTQsOCBAQCBpZiB4 ZG1jcF9kZXAuZm91bmQoKSBhbmQgZ2V0X29wdGlvbigndGNwLXdyYXBwZXJzJykKKyAgIGxpYndy YXBfZGVwID0gY2MuZmluZF9saWJyYXJ5KCdsaWJ3cmFwJykKKyBlbmRpZgorICMgc3lzdGVtZAor LXN5c3RlbWRfZGVwID0gZGVwZW5kZW5jeSgnc3lzdGVtZCcpCisgbGlic3lzdGVtZF9kZXAgPSBk ZXBlbmRlbmN5KCdsaWJzeXN0ZW1kJykKKy1pZiBtZXNvbi52ZXJzaW9uKCkudmVyc2lvbl9jb21w YXJlKCc+PSAwLjUzJykKKy0gIHN5c3RlbWRfbXVsdGlzZWF0X3ggPSBmaW5kX3Byb2dyYW0oJ3N5 c3RlbWQtbXVsdGktc2VhdC14JywKKy0gICAgcmVxdWlyZWQ6IGZhbHNlLAorLSAgICBkaXJzOiBb CistICAgICAgc3lzdGVtZF9kZXAuZ2V0X3BrZ2NvbmZpZ192YXJpYWJsZSgnc3lzdGVtZHV0aWxk aXInKSwKKy0gICAgICAnL2xpYi9zeXN0ZW1kJywKKy0gICAgICAnL3Vzci9saWIvc3lzdGVtZCcs CistICAgIF0pCistZWxzZQorLSAgc3lzdGVtZF9tdWx0aXNlYXRfeCA9IGZpbmRfcHJvZ3JhbSgn c3lzdGVtZC1tdWx0aS1zZWF0LXgnLCByZXF1aXJlZDogZmFsc2UpCistZW5kaWYKKytzeXN0ZW1k X211bHRpc2VhdF94ID0gZmluZF9wcm9ncmFtKCdzeXN0ZW1kLW11bHRpLXNlYXQteCcsIHJlcXVp cmVkOiBmYWxzZSkKKyBzeXN0ZW1kX3hfc2VydmVyID0gc3lzdGVtZF9tdWx0aXNlYXRfeC5mb3Vu ZCgpPyBzeXN0ZW1kX211bHRpc2VhdF94LnBhdGgoKSA6ICcvbGliL3N5c3RlbWQvc3lzdGVtZC1t dWx0aS1zZWF0LXgnCisgIyBQbHltb3V0aAorIHBseW1vdXRoX2RlcCA9IGRlcGVuZGVuY3koJ3Bs eS1ib290LWNsaWVudCcsIHJlcXVpcmVkOiBnZXRfb3B0aW9uKCdwbHltb3V0aCcpKQpkaWZmIC0t Z2l0IGEvc3JjcGtncy9nZG0vdGVtcGxhdGUgYi9zcmNwa2dzL2dkbS90ZW1wbGF0ZQppbmRleCBi YjViNDg2OTJkNC4uMTE4ODgxZTRjNGMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ2RtL3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvZ2RtL3RlbXBsYXRlCkBAIC0xLDI3ICsxLDI4IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdnZG0nCiBwa2duYW1lPWdkbQotdmVyc2lvbj0zLjM0LjEKK3ZlcnNpb249My4z OC4wCiByZXZpc2lvbj0xCiBidWlsZF9oZWxwZXI9ImdpciIKLWJ1aWxkX3N0eWxlPWdudS1jb25m aWd1cmUKLWNvbmZpZ3VyZV9hcmdzPSIkKHZvcHRfZW5hYmxlIGdpciBpbnRyb3NwZWN0aW9uKQot IC0tZGlzYWJsZS1zY2hlbWFzLWNvbXBpbGUgLS1kaXNhYmxlLXN0YXRpYyAtLXdpdGgtZGVmYXVs dC1wYW0tY29uZmlnPWFyY2gKLSAtLXdpdGgtYXQtc3BpLXJlZ2lzdHJ5ZC1kaXJlY3Rvcnk9L3Vz ci9saWJleGVjIC0td2l0aG91dC10Y3Atd3JhcHBlcnMKLSAtLXdpdGgtc2NyZWVuc2hvdC1kaXI9 L3Zhci9saWIvZ2RtL2dyZWV0ZXIgLS1zYmluZGlyPS91c3IvYmluIC0td2l0aG91dC1wbHltb3V0 aAotIC0td2l0aC14YXV0aC1kaXI9L3J1bi9nZG0gLS13aXRoLXBpZC1maWxlPS9ydW4vZ2RtL2dk bS5waWQKLSAtLWRpc2FibGUtc3lzdGVtZC1qb3VybmFsIC0td2l0aC1pbml0aWFsLXZ0PTcgLS1l bmFibGUtd2F5bGFuZC1zdXBwb3J0IgorYnVpbGRfc3R5bGU9bWVzb24KK2NvbmZpZ3VyZV9hcmdz PSIKKyAtRGRlZmF1bHQtcGFtLWNvbmZpZz1hcmNoIC1EYXQtc3BpLXJlZ2lzdHJ5ZC1kaXI9L3Vz ci9saWJleGVjCisgLUR0Y3Atd3JhcHBlcnM9ZmFsc2UgLURzY3JlZW5zaG90LWRpcj0vdmFyL2xp Yi9nZG0vZ3JlZXRlcgorIC1EcGx5bW91dGg9ZGlzYWJsZWQgLUR4YXV0aC1kaXI9L3J1bi9nZG0g LURwaWQtZmlsZT0vcnVuL2dkbS9nZG0ucGlkCisgLURzeXN0ZW1kLWpvdXJuYWw9ZmFsc2UgLURp bml0aWFsLXZ0PTcgLUR3YXlsYW5kLXN1cHBvcnQ9dHJ1ZQorIC1Ec2VsaW51eD1kaXNhYmxlZCAt RGxpYmF1ZGl0PWRpc2FibGVkCisgLURzeXN0ZW1kc3lzdGVtdW5pdGRpcj0vdG1wIC1Ec3lzdGVt ZHVzZXJ1bml0ZGlyPS90bXAiCiBob3N0bWFrZWRlcGVuZHM9ImRjb25mIGdldHRleHQgaXRzdG9v bCBwa2ctY29uZmlnIgogbWFrZWRlcGVuZHM9ImFjY291bnRzc2VydmljZS1kZXZlbCBlbG9naW5k LWRldmVsIGdldHRleHQtZGV2ZWwgZ2xpYi1kZXZlbAogIGlzby1jb2RlcyBsaWJTTS1kZXZlbCBs aWJjYW5iZXJyYS1kZXZlbCBuc3MtZGV2ZWwgcGFtLWRldmVsIHVwb3dlci1kZXZlbCIKLWRlcGVu ZHM9Imdub21lLXNldHRpbmdzLWRhZW1vbiBnbm9tZS1zaGVsbCB4b3JnLXNlcnZlciB4b3JnLXNl cnZlci14d2F5bGFuZAotIHhyZGIiCitkZXBlbmRzPSJnbm9tZS1zZXR0aW5ncy1kYWVtb24gZ25v bWUtc2hlbGwgZ25vbWUtc2Vzc2lvbiBnbm9tZS10aGVtZXMtZXh0cmEKKyBnc2V0dGluZ3MtZGVz a3RvcC1zY2hlbWFzIHhvcmctc2VydmVyIHhvcmctc2VydmVyLXh3YXlsYW5kIHhyZGIiCiBjaGVj a2RlcGVuZHM9ImNoZWNrLWRldmVsIgogc2hvcnRfZGVzYz0iR05PTUUgRGlzcGxheSBNYW5hZ2Vy IgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vu c2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Q cm9qZWN0cy9HRE0iCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNp b24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1lODVkZjY1N2Fh OGQ5MzYxYWY0ZmIxMjIwMTRkOGYxMjNhOTNiZmU0NWE3NjYyZmJhMmIzNzNkODM5ZGJkOGQzCitj aGVja3N1bT00NmQ0NDE1YzM5Yzk0Y2NlZTgxZmJhYzIxMTAyZTJlYmNkMjg0ZDM5ODU4Yzg5M2U3 NTk5MDBiMWU4ODQzNWJhCiAKIGNvbmZfZmlsZXM9IgogCS9ldGMvZ2RtL2N1c3RvbS5jb25mCkBA IC00Nyw2ICs0OCw3IEBAIHBvc3RfaW5zdGFsbCgpIHsKIAl2aW5zdGFsbCAkRklMRVNESVIvWHNl c3Npb24gNzU1IGV0Yy9nZG0KIAogCXZzZWQgLWkgInMvcGFtX3N5c3RlbWRcLnNvL3BhbV9lbG9n aW5kLnNvLyIgJERFU1RESVIvZXRjL3BhbS5kLyoKKwlybSAtcmYgJHtERVNURElSfS90bXAKIAog CSMgcnVuaXQgc2VydmljZQogCXZzdiBnZG0KQEAgLTYwLDcgKzYyLDcgQEAgbGliZ2RtX3BhY2th Z2UoKSB7CiB9CiAKIGdkbS1kZXZlbF9wYWNrYWdlKCkgewotCWRlcGVuZHM9ImxpYmdkbT49JHt2 ZXJzaW9ufV8ke3JldmlzaW9ufSIKKwlkZXBlbmRzPSJsaWJnZG0+PSR7dmVyc2lvbn1fJHtyZXZp c2lvbn0gZWxvZ2luZC1kZXZlbCIKIAlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMi CiAJcGtnX2luc3RhbGwoKSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRlCgpGcm9tIDczNjMzNmM5ZWEz ZWM0OGRkOWEzY2IwNjFiY2VjZWUwNWEzYmFmZGQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1 ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNTAvMTAyXSBnbm9tZS1zZXNz aW9uOiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIC4uLi1hcHAtU3RyaXAtYmxhY2tsaXN0ZWQtdmFy aWFibGVzLWZyby5wYXRjaCB8IDY3ICsrKysrKysrKysrKysrKysrKysKIC4uLi9wYXRjaGVzL25v LXN5c3RlbWQtZGVwLnBhdGNoICAgICAgICAgICAgICB8IDE0ICsrKysKIHNyY3BrZ3MvZ25vbWUt c2Vzc2lvbi90ZW1wbGF0ZSAgICAgICAgICAgICAgICB8IDEwICsrLQogMyBmaWxlcyBjaGFuZ2Vk LCA4OCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvZ25vbWUtc2Vzc2lvbi9wYXRjaGVzLzAwMDEtcmV2ZXJ0LWF1dG9zdGFydC1hcHAtU3Ry aXAtYmxhY2tsaXN0ZWQtdmFyaWFibGVzLWZyby5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvZ25vbWUtc2Vzc2lvbi9wYXRjaGVzL25vLXN5c3RlbWQtZGVwLnBhdGNoCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9nbm9tZS1zZXNzaW9uL3BhdGNoZXMvMDAwMS1yZXZlcnQtYXV0b3N0YXJ0 LWFwcC1TdHJpcC1ibGFja2xpc3RlZC12YXJpYWJsZXMtZnJvLnBhdGNoIGIvc3JjcGtncy9nbm9t ZS1zZXNzaW9uL3BhdGNoZXMvMDAwMS1yZXZlcnQtYXV0b3N0YXJ0LWFwcC1TdHJpcC1ibGFja2xp c3RlZC12YXJpYWJsZXMtZnJvLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi5jZmQ5ZjRiYTZjZgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZ25vbWUtc2Vz c2lvbi9wYXRjaGVzLzAwMDEtcmV2ZXJ0LWF1dG9zdGFydC1hcHAtU3RyaXAtYmxhY2tsaXN0ZWQt dmFyaWFibGVzLWZyby5wYXRjaApAQCAtMCwwICsxLDY3IEBACitGcm9tIDFkZTM1NzVhMWVhOWNk YjM1NzlhZDUzODEwOGM1MTgxODg0Nzc5N2MgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9t OiBSYXNtdXMgVGhvbXNlbiA8b3NzQGNvZ2l0cmkuZGV2PgorRGF0ZTogRnJpLCA2IERlYyAyMDE5 IDExOjQ4OjAyICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIHJldmVydDogYXV0b3N0YXJ0LWFwcDog U3RyaXAgYmxhY2tsaXN0ZWQgdmFyaWFibGVzIGZyb20KKyBhdXRvc3RhcnQgZW52aXJvbm1lbnQK KworVGhpcyBicmVha3MgZ25vbWUtc2Vzc2lvbiBvbiBub24tc3lzdGVtZCBzeXN0ZW1zLgorCito dHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2Vzc2lvbi9pc3N1ZXMvNDQKKy0t LQorIGdub21lLXNlc3Npb24vZ3NtLWF1dG9zdGFydC1hcHAuYyB8IDUgLS0tLS0KKyBnbm9tZS1z ZXNzaW9uL2dzbS11dGlsLmMgICAgICAgICAgfCA2IC0tLS0tLQorIGdub21lLXNlc3Npb24vZ3Nt LXV0aWwuaCAgICAgICAgICB8IDEgLQorIDMgZmlsZXMgY2hhbmdlZCwgMTIgZGVsZXRpb25zKC0p CisKK2RpZmYgLS1naXQgYS9nbm9tZS1zZXNzaW9uL2dzbS1hdXRvc3RhcnQtYXBwLmMgYi9nbm9t ZS1zZXNzaW9uL2dzbS1hdXRvc3RhcnQtYXBwLmMKK2luZGV4IDZmZDU5MTUuLjAxYmE1ZjkgMTAw NjQ0CistLS0gZ25vbWUtc2Vzc2lvbi9nc20tYXV0b3N0YXJ0LWFwcC5jCisrKysgZ25vbWUtc2Vz c2lvbi9nc20tYXV0b3N0YXJ0LWFwcC5jCitAQCAtOTk3LDcgKzk5Nyw2IEBAIGF1dG9zdGFydF9h cHBfc3RhcnRfc3Bhd24gKEdzbUF1dG9zdGFydEFwcCAqYXBwLAorICAgICAgICAgZ2Jvb2xlYW4g ICAgICAgICBzdWNjZXNzOworICAgICAgICAgR0Vycm9yICAgICAgICAgICpsb2NhbF9lcnJvcjsK KyAgICAgICAgIGNvbnN0IGNoYXIgICAgICAqc3RhcnR1cF9pZDsKKy0gICAgICAgIGNvbnN0IGNo YXIgKiBjb25zdCAqdmFyaWFibGVfYmxhY2tsaXN0OworICAgICAgICAgY29uc3QgY2hhciAqIGNv bnN0ICpjaGlsZF9lbnZpcm9ubWVudDsKKyAgICAgICAgIGludCBpOworICAgICAgICAgR0FwcExh dW5jaENvbnRleHQgKmN0eDsKK0BAIC0xMDE0LDEwICsxMDEzLDYgQEAgYXV0b3N0YXJ0X2FwcF9z dGFydF9zcGF3biAoR3NtQXV0b3N0YXJ0QXBwICphcHAsCisgICAgICAgICBsb2NhbF9lcnJvciA9 IE5VTEw7CisgICAgICAgICBjdHggPSBnX2FwcF9sYXVuY2hfY29udGV4dF9uZXcgKCk7CisgCist ICAgICAgICB2YXJpYWJsZV9ibGFja2xpc3QgPSBnc21fdXRpbF9nZXRfdmFyaWFibGVfYmxhY2ts aXN0ICgpOworLSAgICAgICAgZm9yIChpID0gMDsgdmFyaWFibGVfYmxhY2tsaXN0W2ldICE9IE5V TEw7IGkrKykKKy0gICAgICAgICAgICAgICAgZ19hcHBfbGF1bmNoX2NvbnRleHRfdW5zZXRlbnYg KGN0eCwgdmFyaWFibGVfYmxhY2tsaXN0W2ldKTsKKy0KKyAgICAgICAgIGNoaWxkX2Vudmlyb25t ZW50ID0gZ3NtX3V0aWxfbGlzdGVudiAoKTsKKyAgICAgICAgIGZvciAoaSA9IDA7IGNoaWxkX2Vu dmlyb25tZW50W2ldICE9IE5VTEw7IGkrKykgeworICAgICAgICAgICAgICAgICBjaGFyICoqZW52 aXJvbm1lbnRfdHVwbGU7CitkaWZmIC0tZ2l0IGEvZ25vbWUtc2Vzc2lvbi9nc20tdXRpbC5jIGIv Z25vbWUtc2Vzc2lvbi9nc20tdXRpbC5jCitpbmRleCAwMmJjNGE1Li5hZGExMjI1IDEwMDY0NAor LS0tIGdub21lLXNlc3Npb24vZ3NtLXV0aWwuYworKysrIGdub21lLXNlc3Npb24vZ3NtLXV0aWwu YworQEAgLTgwOCw5ICs4MDgsMyBAQCBnc21fdXRpbF9saXN0ZW52ICh2b2lkKQorICAgICAgICAg cmV0dXJuIChjb25zdCBjaGFyICogY29uc3QgKikgY2hpbGRfZW52aXJvbm1lbnQ7CisgCisgfQor LQorLWNvbnN0IGNoYXIgKiBjb25zdCAqCistZ3NtX3V0aWxfZ2V0X3ZhcmlhYmxlX2JsYWNrbGlz dCAodm9pZCkKKy17CistICAgICAgICByZXR1cm4gdmFyaWFibGVfYmxhY2tsaXN0OworLX0KK2Rp ZmYgLS1naXQgYS9nbm9tZS1zZXNzaW9uL2dzbS11dGlsLmggYi9nbm9tZS1zZXNzaW9uL2dzbS11 dGlsLmgKK2luZGV4IGJkN2I2OTguLjhiY2E1ZjQgMTAwNjQ0CistLS0gZ25vbWUtc2Vzc2lvbi9n c20tdXRpbC5oCisrKysgZ25vbWUtc2Vzc2lvbi9nc20tdXRpbC5oCitAQCAtNTAsNyArNTAsNiBA QCBjaGFyICogICAgICBnc21fdXRpbF9nZW5lcmF0ZV9zdGFydHVwX2lkICAgICAgICAgICAgKHZv aWQpOworIHZvaWQgICAgICAgIGdzbV91dGlsX3NldGVudiAgICAgICAgICAgICAgICAgICAgICAg ICAoY29uc3QgY2hhciAqdmFyaWFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICp2YWx1ZSk7CisgY29uc3QgY2hhciAq IGNvbnN0ICogZ3NtX3V0aWxfbGlzdGVudiAgICAgICAgICAgICAgICh2b2lkKTsKKy1jb25zdCBj aGFyICogY29uc3QgKiBnc21fdXRpbF9nZXRfdmFyaWFibGVfYmxhY2tsaXN0KHZvaWQpOworIAor IGdib29sZWFuICAgIGdzbV91dGlsX2V4cG9ydF9hY3RpdmF0aW9uX2Vudmlyb25tZW50ICAoR0Vy cm9yICAgICAqKmVycm9yKTsKKyAjaWZkZWYgSEFWRV9TWVNURU1ECistLSAKKzIuMjQuMAorCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXNlc3Npb24vcGF0Y2hlcy9uby1zeXN0ZW1kLWRlcC5w YXRjaCBiL3NyY3BrZ3MvZ25vbWUtc2Vzc2lvbi9wYXRjaGVzL25vLXN5c3RlbWQtZGVwLnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44ZTU1YTBmNzk4NwotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZ25vbWUtc2Vzc2lvbi9wYXRjaGVzL25vLXN5c3RlbWQt ZGVwLnBhdGNoCkBAIC0wLDAgKzEsMTQgQEAKKy0tLSBtZXNvbi5idWlsZAorKysrIG1lc29uLmJ1 aWxkCitAQCAtMTMwLDEwICsxMzAsNyBAQCBpZiBlbmFibGVfc3lzdGVtZCBvciBlbmFibGVfY29u c29sZWtpdAorIAorICAgIyBDaGVjayBmb3Igc3lzdGVtZAorICAgaWYgZW5hYmxlX3N5c3RlbWQK Ky0gICAgc3lzdGVtZF9kZXAgPSBkZXBlbmRlbmN5KCdzeXN0ZW1kJywgdmVyc2lvbjogJz49IDI0 MicsIHJlcXVpcmVkOiB0cnVlKQorLSAgICBzeXN0ZW1kX3VzZXJ1bml0ZGlyID0gc3lzdGVtZF9k ZXAuZ2V0X3BrZ2NvbmZpZ192YXJpYWJsZSgnc3lzdGVtZHVzZXJ1bml0ZGlyJywKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVm aW5lX3ZhcmlhYmxlOiBbJ3ByZWZpeCcsIHByZWZpeF0pCistCisrICAgIHN5c3RlbWRfdXNlcnVu aXRkaXIgPSAnL3RtcCcKKyAgICAgbGlic3lzdGVtZF9kZXAgPSBkZXBlbmRlbmN5KCdsaWJzeXN0 ZW1kJywgdmVyc2lvbjogJz49IDIwOScsIHJlcXVpcmVkOiBmYWxzZSkKKyAgICAgc2Vzc2lvbl9i aW5fZGVwcyArPSBsaWJzeXN0ZW1kX2RlcAorIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1z ZXNzaW9uL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1zZXNzaW9uL3RlbXBsYXRlCmluZGV4IDQ0 NDRmMTYyYmYxLi5jOWJjNDkzMGMzOSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1zZXNzaW9u L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtc2Vzc2lvbi90ZW1wbGF0ZQpAQCAtMSw5ICsx LDkgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLXNlc3Npb24nCiBwa2duYW1lPWdub21l LXNlc3Npb24KLXZlcnNpb249My4zNC4xCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVp bGRfc3R5bGU9bWVzb24KLWNvbmZpZ3VyZV9hcmdzPSItRHN5c3RlbWRfam91cm5hbD1mYWxzZSIK K2NvbmZpZ3VyZV9hcmdzPSItRHN5c3RlbWRfam91cm5hbD1mYWxzZSAtRHN5c3RlbWRfc2Vzc2lv bj1kaXNhYmxlIgogaG9zdG1ha2VkZXBlbmRzPSJnbGliLWRldmVsIGludGx0b29sIHBrZy1jb25m aWcgeG1sdG8iCiBtYWtlZGVwZW5kcz0iZWxvZ2luZC1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVs IGd0ayszLWRldmVsIGpzb24tZ2xpYi1kZXZlbAogIGxpYmdsaWItZGV2ZWwgbGliSUNFLWRldmVs IGxpYlNNLWRldmVsIGxpYlh0c3QtZGV2ZWwgc3RhcnR1cC1ub3RpZmljYXRpb24tZGV2ZWwKQEAg LTE1LDQgKzE1LDggQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgu b3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyIgogaG9t ZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zZXNzaW9uIgogZGlz dGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9 LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZDc4MDFmZTJkNWE3NTFiMTljYjU4MDgxNzcx MzE2YTc2YWFiZDVjNTUwY2Q1OGQ0ZTRjNmE1YTRlZDM1NjY2MAorY2hlY2tzdW09N2JjYzBlYjJj ZGJhNGIzZjZkMWI0NTliM2EzMDg3M2I3YmI2NWIzODNjMWY2YTVmNjNjM2UzYjVjNzk0M2Q2Nwor Citwb3N0X2luc3RhbGwoKSB7CisJcm0gLXJmICR7REVTVERJUn0vdG1wCit9CgpGcm9tIGNjMjI4 OThjMmQ0NzkxYWYyNjk5ZTBmNzk2MDYzMGYzOTIxZDU5NTYgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUs IDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNTEvMTAyXSBnbm9t ZS1pbml0aWFsLXNldHVwOiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIHNyY3BrZ3MvZ25vbWUtaW5p dGlhbC1zZXR1cC90ZW1wbGF0ZSB8IDExICsrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBp bnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUt aW5pdGlhbC1zZXR1cC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtaW5pdGlhbC1zZXR1cC90ZW1w bGF0ZQppbmRleCA1NWRmMmY1M2MxZC4uNjNhYmQzYzVjODMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv Z25vbWUtaW5pdGlhbC1zZXR1cC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWluaXRpYWwt c2V0dXAvdGVtcGxhdGUKQEAgLTEsMTAgKzEsMTEgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2du b21lLWluaXRpYWwtc2V0dXAnCiBwa2duYW1lPWdub21lLWluaXRpYWwtc2V0dXAKLXZlcnNpb249 My4zNC4xCi1yZXZpc2lvbj0zCit2ZXJzaW9uPTMuMzguMAorcmV2aXNpb249MQogYnVpbGRfc3R5 bGU9bWVzb24KLWNvbmZpZ3VyZV9hcmdzPSItRHNvZnR3YXJlLXNvdXJjZXM9ZGlzYWJsZWQgLURz eXN0ZW1kPWZhbHNlIgotaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGdsaWItZGV2ZWwiCitj b25maWd1cmVfYXJncz0iLURzb2Z0d2FyZS1zb3VyY2VzPWRpc2FibGVkIC1EcGFyZW50YWxfY29u dHJvbHM9ZGlzYWJsZWQKKyAtRHN5c3RlbWQ9ZmFsc2UiCitob3N0bWFrZWRlcGVuZHM9InBrZy1j b25maWcgZ2xpYi1kZXZlbCBnZXR0ZXh0IgogbWFrZWRlcGVuZHM9Ik5ldHdvcmtNYW5hZ2VyLWRl dmVsIGFjY291bnRzc2VydmljZS1kZXZlbCBsaWJnbGliLWRldmVsCiAgZ25vbWUtZGVza3RvcC1k ZXZlbCBjaGVlc2UtZGV2ZWwgbGliZ3dlYXRoZXItZGV2ZWwgd2Via2l0Mmd0ay1kZXZlbAogIGdu b21lLW9ubGluZS1hY2NvdW50cy1kZXZlbCBnZG0tZGV2ZWwgbGlicHdxdWFsaXR5LWRldmVsCkBA IC0xNyw0ICsxOCw0IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4 Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lr aS5nbm9tZS5vcmcvRGVzaWduL09TL0luaXRpYWxTZXR1cCIKIGRpc3RmaWxlcz0iJHtHTk9NRV9T SVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54 eiIKLWNoZWNrc3VtPWU3MWYxMGVmNmI2MzFjZDkyZmZkZTc3NGU0MTMwYjMyYjI0OTRiNGRmNWVm Mjg4Mzc1ZDhiMTk1N2VlYWJmYTEKK2NoZWNrc3VtPTNhODU3YWVmNWVmYjY4OWY0MDg2MzJkYjg0 NjlhZDI3NjIwZjc2MmQ5NzcwNzBhMzYwMzVjNTIyYzZmODI3NTkKCkZyb20gNjNhODg4ZGJjZmZj NWQ3YmU0ZTUyNTI4MzkxNDE0NjdjNDY2M2Y0OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVn IDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA1Mi8xMDJdIHhkZy1kZXNrdG9w LXBvcnRhbC1ndGs6IHVwZGF0ZSB0byAxLjguMAoKLS0tCiBzcmNwa2dzL3hkZy1kZXNrdG9wLXBv cnRhbC1ndGsvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMo KyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy94ZGctZGVza3RvcC1wb3J0 YWwtZ3RrL3RlbXBsYXRlIGIvc3JjcGtncy94ZGctZGVza3RvcC1wb3J0YWwtZ3RrL3RlbXBsYXRl CmluZGV4IGRlZTBlNDYzMzg2Li43NTE3ZDFiMzJkOCAxMDA2NDQKLS0tIGEvc3JjcGtncy94ZGct ZGVza3RvcC1wb3J0YWwtZ3RrL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MveGRnLWRlc2t0b3AtcG9y dGFsLWd0ay90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3hk Zy1kZXNrdG9wLXBvcnRhbC1ndGsnCiBwa2duYW1lPXhkZy1kZXNrdG9wLXBvcnRhbC1ndGsKLXZl cnNpb249MS42LjAKK3ZlcnNpb249MS44LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWdudS1j b25maWd1cmUKIGhvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBsaWJ4c2x0IGdsaWItZGV2ZWwg eGRnLWRlc2t0b3AtcG9ydGFsIGdldHRleHQiCkBAIC0xMiw3ICsxMiw3IEBAIG1haW50YWluZXI9 IkR1bmNhZW4gPGR1bmNhZW5Adm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMS1vci1s YXRlciIKIGhvbWVwYWdlPSJodHRwczovL2dpdGh1Yi5jb20vZmxhdHBhay94ZGctZGVza3RvcC1w b3J0YWwtZ3RrIgogZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vZmxhdHBhay8ke3BrZ25h bWV9L3JlbGVhc2VzL2Rvd25sb2FkLyR7dmVyc2lvbn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRh ci54eiIKLWNoZWNrc3VtPTk1NmZkMTY2MDgyNDdlNzExOWQ0YzZkOTVhNmRjNjU3OGRjZTI1N2Qy ZjI3MmQwM2IzNDk4NTcyMjU3ZTJmNzYKK2NoZWNrc3VtPWE1MjUyOWVkMzIxZTA0NGNhOWFkY2E1 ZTk3MThkOWJhNTdjNDE0YTI2MzRkZDQxMDlkZjM0NGM1YjllZWQ3N2YKIAogcG9zdF9pbnN0YWxs KCkgewogCXJtIC1yZiAiJHtERVNURElSfS91c3IvbGliL3N5c3RlbWQiCgpGcm9tIDBhMTIxMWY2 MzE4Y2M2ZTg5N2Q5NmM0YWFiMDU3MjhmOGNkYmRiZWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEz IEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNTMvMTAyXSBuYXV0aWx1 czogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL25hdXRpbHVzL3RlbXBsYXRlIHwgMTAg KysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL25hdXRpbHVzL3RlbXBsYXRlIGIvc3JjcGtncy9uYXV0 aWx1cy90ZW1wbGF0ZQppbmRleCA1MzdhODUxOTczZi4uZGU5NjhmMDFkN2MgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3MvbmF1dGlsdXMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9uYXV0aWx1cy90ZW1wbGF0 ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ25hdXRpbHVzJwogcGtnbmFt ZT1uYXV0aWx1cwotdmVyc2lvbj0zLjM2LjEuMQordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEK IGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKQEAgLTgsMTYgKzgsMTYgQEAg Y29uZmlndXJlX2FyZ3M9Ii1EdGVzdHM9aGVhZGxlc3MgLURpbnRyb3NwZWN0aW9uPSQodm9wdF9p ZiBnaXIgdHJ1ZSBmYWxzZSkiCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgZ2xpYi1kZXZlbCBs aWJ4c2x0IHBrZy1jb25maWciCiBtYWtlZGVwZW5kcz0iZXhlbXBpLWRldmVsIGdub21lLWF1dG9h ci1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsIGd0ayszLWRldmVsCiAgbGliZXhpZi1kZXZlbCBs aWJnZXhpdjItZGV2ZWwgbGliZ2xpYi1kZXZlbCBsaWJub3RpZnktZGV2ZWwgbGlic2VjY29tcC1k ZXZlbAotIGxpYlgxMS1kZXZlbCBsaWJ4bWwyLWRldmVsIHRyYWNrZXItZGV2ZWwgZ3N0LXBsdWdp bnMtYmFzZTEtZGV2ZWwiCisgbGliWDExLWRldmVsIGxpYnhtbDItZGV2ZWwgdHJhY2tlcjMtZGV2 ZWwgZ3N0LXBsdWdpbnMtYmFzZTEtZGV2ZWwiCiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMg Z3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcyBoaWNvbG9yLWljb24tdGhlbWUKLSB0cmFja2VyLW1p bmVycyB0cmFja2VyIgotY2hlY2tkZXBlbmRzPSJ0cmFja2VyIgorIHRyYWNrZXIzLW1pbmVycyB0 cmFja2VyMyIKK2NoZWNrZGVwZW5kcz0idHJhY2tlcjMgdHJhY2tlcjMtbWluZXJzIHB5dGhvbjMt Z29iamVjdCBkYnVzIgogc2hvcnRfZGVzYz0iR05PTUUgZmlsZSBtYW5hZ2VyIgogbWFpbnRhaW5l cj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAt b3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9t ZS5vcmcvTmF1dGlsdXMiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3Zl cnNpb246OjR9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1mOTI1MmY1 MDgyMTFkOWYzNjhhNDlkYjY5Nzg5MGY4OTVkMDgwZjA5NTkwYWVjYWYzMzgwM2E1MTlkZWY3YmRl CitjaGVja3N1bT1jNmYzMzBmOWYzZjdkYmYzNWFmYjZlYzIwOTRiNzQ2ZWU3NWQ1ZTkyOGM4ZjY3 ODBkYWIyNjY3MjA4NmNjYWMwCiAKIGJ1aWxkX29wdGlvbnM9ImdpciIKIGJ1aWxkX29wdGlvbnNf ZGVmYXVsdD0iZ2lyIgoKRnJvbSBmZWJmNjNjZTAzZDUwOWYwNjJjMjQ4ZmYzMGEyZGFiNzQ3MzFk ZGFhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxA b2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJq ZWN0OiBbUEFUQ0ggMDU0LzEwMl0gZ25vbWUtbWFwczogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBz cmNwa2dzL2dub21lLW1hcHMvdGVtcGxhdGUgfCAxMCArKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdl ZCwgNSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Z25vbWUtbWFwcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtbWFwcy90ZW1wbGF0ZQppbmRleCAw MzAwYmU2MDU5OS4uMzI4NWZhZjE3ZTQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtbWFwcy90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLW1hcHMvdGVtcGxhdGUKQEAgLTEsMTYgKzEsMTYg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLW1hcHMnCiBwa2duYW1lPWdub21lLW1hcHMK LXZlcnNpb249My4zNi4xCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9 bWVzb24KLWhvc3RtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBnb2JqZWN0LWludHJvc3BlY3Rpb24g aW50bHRvb2wgcGtnLWNvbmZpZyBBcHBTdHJlYW0iCitidWlsZF9oZWxwZXI9ImdpciIKK2hvc3Rt YWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBpbnRsdG9vbCBwa2ctY29uZmlnIEFwcFN0cmVhbSIKIG1h a2VkZXBlbmRzPSJmb2xrcy1kZXZlbCBnZW9jbHVlMi1kZXZlbCBnZW9jb2RlLWdsaWItZGV2ZWwg Z2pzLWRldmVsCi0gZ25vbWUtZGVza3RvcC1kZXZlbCBsaWJjaGFtcGxhaW4tZGV2ZWwgcmVzdC1k ZXZlbCIKKyBnbm9tZS1kZXNrdG9wLWRldmVsIGxpYmNoYW1wbGFpbi1kZXZlbCByZXN0LWRldmVs IGxpYmhhbmR5MS1kZXZlbCIKIGRlcGVuZHM9Imdlb2NsdWUyIGdmYmdyYXBoIGdqcyIKIHNob3J0 X2Rlc2M9IkdOT01FIG1hcHMgYXBwbGljYXRpb24iCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8 Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVw YWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvTWFwcyIKIGRpc3RmaWxlcz0iJHtHTk9N RV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRh ci54eiIKLWNoZWNrc3VtPTFhMzJlZmQ5NmFkODk4Zjc3YTYzNmQyZDA0NjNkNzU3MDA5YjRiODEy MjU5Yzg5ZmZkY2I5MWQ2YWZjMDUyZjkKLW5vY3Jvc3M9ImV2b2x1dGlvbi1kYXRhc2VydmVyIGNy b3NzIGdpciBkb2Vzbid0IHdvcmsiCitjaGVja3N1bT01NTc1ODM0MGViZDA4NDYxMDI4M2JmMWY2 ZmVjNmMwNDI1NTlhMTg2ZWI4Njk5YzA1NmEyMmRmZWYxZDk3Zjk5CgpGcm9tIDQ3NThhOWY0MWU5 YWM1ZmU4NTM3ZGIzMDE1ZWYwNGIyZmYyZmM5NTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1 ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNTUvMTAyXSBldm9sdXRpb246 IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogLi4uL2V2b2x1dGlvbi9maWxlcy9kaXNhYmxlUnVudGlt ZVRlc3RzLmNtYWtlIHwgNDUgLS0tLS0tLS0tLS0tLS0tLS0tLQogc3JjcGtncy9ldm9sdXRpb24v ZmlsZXMvaWNvbnYtZGV0ZWN0LmggICAgICAgIHwgIDUgLS0tCiBzcmNwa2dzL2V2b2x1dGlvbi90 ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgfCAzNSArKystLS0tLS0tLS0tLS0KIDMgZmlsZXMg Y2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA3OCBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL2V2b2x1dGlvbi9maWxlcy9kaXNhYmxlUnVudGltZVRlc3RzLmNtYWtlCiBk ZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9ldm9sdXRpb24vZmlsZXMvaWNvbnYtZGV0ZWN0LmgK CmRpZmYgLS1naXQgYS9zcmNwa2dzL2V2b2x1dGlvbi9maWxlcy9kaXNhYmxlUnVudGltZVRlc3Rz LmNtYWtlIGIvc3JjcGtncy9ldm9sdXRpb24vZmlsZXMvZGlzYWJsZVJ1bnRpbWVUZXN0cy5jbWFr ZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGJlNTViNDIwNzAuLjAwMDAwMDAwMDAw Ci0tLSBhL3NyY3BrZ3MvZXZvbHV0aW9uL2ZpbGVzL2Rpc2FibGVSdW50aW1lVGVzdHMuY21ha2UK KysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi0jIFRoaXMgZmlsZSB3YXMgZ2VuZXJhdGVk IGJ5IENNYWtlIGJlY2F1c2UgaXQgZGV0ZWN0ZWQgVFJZX1JVTigpIGNvbW1hbmRzCi0jIGluIGNy b3NzY29tcGlsaW5nIG1vZGUuIEl0IHdpbGwgYmUgb3ZlcndyaXR0ZW4gYnkgdGhlIG5leHQgQ01h a2UgcnVuLgotIyBDb3B5IGl0IHRvIGEgc2FmZSBsb2NhdGlvbiwgc2V0IHRoZSB2YXJpYWJsZXMg dG8gYXBwcm9wcmlhdGUgdmFsdWVzCi0jIGFuZCB1c2UgaXQgdGhlbiB0byBwcmVzZXQgdGhlIENN YWtlIGNhY2hlICh1c2luZyAtQykuCi0KLQotIyBfY29ycmVjdF9pY29udl9FWElUQ09ERQotIyAg ICBpbmRpY2F0ZXMgd2hldGhlciB0aGUgZXhlY3V0YWJsZSB3b3VsZCBoYXZlIGJlZW4gYWJsZSB0 byBydW4gb24gaXRzCi0jICAgIHRhcmdldCBwbGF0Zm9ybS4gSWYgc28sIHNldCBfY29ycmVjdF9p Y29udl9FWElUQ09ERSB0bwotIyAgICB0aGUgZXhpdCBjb2RlIChpbiBtYW55IGNhc2VzIDAgZm9y IHN1Y2Nlc3MpLCBvdGhlcndpc2UgZW50ZXIgIkZBSUxFRF9UT19SVU4iLgotIyBUaGUgX2NvcnJl Y3RfaWNvbnZfQ09NUElMRUQgdmFyaWFibGUgaG9sZHMgdGhlIGJ1aWxkIHJlc3VsdCBmb3IgdGhp cyBUUllfUlVOKCkuCi0jIAotIyBTb3VyY2UgZmlsZSAgIDogL2J1aWxkZGlyL2V2b2x1dGlvbi1k YXRhLXNlcnZlci0zLjI2LjAvYnVpbGQvQ01ha2VGaWxlcy9DTWFrZVRtcC9zcmMuYwotIyBFeGVj dXRhYmxlICAgIDogL2J1aWxkZGlyL2V2b2x1dGlvbi1kYXRhLXNlcnZlci0zLjI2LjAvYnVpbGQv Q01ha2VGaWxlcy9jbVRDXzMxNWVlLV9jb3JyZWN0X2ljb252X0VYSVRDT0RFCi0jIFJ1biBhcmd1 bWVudHMgOiAKLSMgICAgQ2FsbGVkIGZyb206IFsyXQkvdXNyL3NoYXJlL2NtYWtlLTMuOS9Nb2R1 bGVzL0NoZWNrQ1NvdXJjZVJ1bnMuY21ha2UKLSMgICAgICAgICAgICAgICAgIFsxXQkvYnVpbGRk aXIvZXZvbHV0aW9uLWRhdGEtc2VydmVyLTMuMjYuMC9DTWFrZUxpc3RzLnR4dAotCi1zZXQoIF9j b3JyZWN0X2ljb252X0VYSVRDT0RFIAotICAgICAwCi0gICAgIENBQ0hFIElOVEVSTkFMICJSZXN1 bHQgZnJvbSBUUllfUlVOIiBGT1JDRSkKLXNldChfY29ycmVjdF9pY29udl9FWElUQ09ERV9fVFJZ UlVOX09VVFBVVAotICAgICAwCi0gICAgIENBQ0hFIElOVEVSTkFMICJSZXN1bHQgZnJvbSBUUllf UlVOIiBGT1JDRSkKLQotCi0jIEhBVkVfTEtTVFJGVElNRV9FWElUQ09ERQotIyAgICBpbmRpY2F0 ZXMgd2hldGhlciB0aGUgZXhlY3V0YWJsZSB3b3VsZCBoYXZlIGJlZW4gYWJsZSB0byBydW4gb24g aXRzCi0jICAgIHRhcmdldCBwbGF0Zm9ybS4gSWYgc28sIHNldCBIQVZFX0xLU1RSRlRJTUVfRVhJ VENPREUgdG8KLSMgICAgdGhlIGV4aXQgY29kZSAoaW4gbWFueSBjYXNlcyAwIGZvciBzdWNjZXNz KSwgb3RoZXJ3aXNlIGVudGVyICJGQUlMRURfVE9fUlVOIi4KLSMgVGhlIEhBVkVfTEtTVFJGVElN RV9DT01QSUxFRCB2YXJpYWJsZSBob2xkcyB0aGUgYnVpbGQgcmVzdWx0IGZvciB0aGlzIFRSWV9S VU4oKS4KLSMgCi0jIFNvdXJjZSBmaWxlICAgOiAvYnVpbGRkaXIvZXZvbHV0aW9uLWRhdGEtc2Vy dmVyLTMuMjYuMC9idWlsZC9DTWFrZUZpbGVzL0NNYWtlVG1wL3NyYy5jCi0jIEV4ZWN1dGFibGUg ICAgOiAvYnVpbGRkaXIvZXZvbHV0aW9uLWRhdGEtc2VydmVyLTMuMjYuMC9idWlsZC9DTWFrZUZp bGVzL2NtVENfZDI4OTctSEFWRV9MS1NUUkZUSU1FX0VYSVRDT0RFCi0jIFJ1biBhcmd1bWVudHMg OiAKLSMgICAgQ2FsbGVkIGZyb206IFsyXQkvdXNyL3NoYXJlL2NtYWtlLTMuOS9Nb2R1bGVzL0No ZWNrQ1NvdXJjZVJ1bnMuY21ha2UKLSMgICAgICAgICAgICAgICAgIFsxXQkvYnVpbGRkaXIvZXZv bHV0aW9uLWRhdGEtc2VydmVyLTMuMjYuMC9DTWFrZUxpc3RzLnR4dAotCi1zZXQoIEhBVkVfTEtT VFJGVElNRV9FWElUQ09ERSAKLSAgICAgMAotICAgICBDQUNIRSBJTlRFUk5BTCAiUmVzdWx0IGZy b20gVFJZX1JVTiIgRk9SQ0UpCi1zZXQoIEhBVkVfTEtTVFJGVElNRV9FWElUQ09ERV9fVFJZUlVO X09VVFBVVAotICAgICAwCi0gICAgIENBQ0hFIElOVEVSTkFMICJSZXN1bHQgZnJvbSBUUllfUlVO IiBGT1JDRSkKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ldm9sdXRpb24vZmlsZXMvaWNvbnYtZGV0 ZWN0LmggYi9zcmNwa2dzL2V2b2x1dGlvbi9maWxlcy9pY29udi1kZXRlY3QuaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggNDZmNDc2ZDViYzkuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3Br Z3MvZXZvbHV0aW9uL2ZpbGVzL2ljb252LWRldGVjdC5oCisrKyAvZGV2L251bGwKQEAgLTEsNSAr MCwwIEBACi0vKiBUaGlzIGlzIGFuIGF1dG8tZ2VuZXJhdGVkIGhlYWRlciwgRE8gTk9UIEVESVQh ICovCi0KLSNkZWZpbmUgSUNPTlZfSVNPX0RfRk9STUFUICJpc28tJWQtJWQiCi0jZGVmaW5lIElD T05WX0lTT19TX0ZPUk1BVCAiaXNvLSVkLSVzIgotI2RlZmluZSBJQ09OVl8xMDY0NiAiaXNvLTEw NjQ2IgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ldm9sdXRpb24vdGVtcGxhdGUgYi9zcmNwa2dzL2V2 b2x1dGlvbi90ZW1wbGF0ZQppbmRleCA1NjBlZDkzZGEwMi4uYWEzZmEzNGJjNGMgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvZXZvbHV0aW9uL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZXZvbHV0aW9uL3Rl bXBsYXRlCkBAIC0xLDU0ICsxLDMzIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdldm9sdXRpb24n CiBwa2duYW1lPWV2b2x1dGlvbgotdmVyc2lvbj0zLjM2LjEKK3ZlcnNpb249My4zOC4wCiByZXZp c2lvbj0xCiBidWlsZF9zdHlsZT1jbWFrZQorYnVpbGRfaGVscGVyPSJnaXIgcWVtdSIKIGNvbmZp Z3VyZV9hcmdzPSItREVOQUJMRV9BVVRPQVI9T0ZGIC1ERU5BQkxFX0xJQkNSWVBUVUk9T0ZGIC1E RU5BQkxFX0dUS1NQRUxMPU9GRgotIC1ERU5BQkxFX1RFWFRfSElHSExJR0hUPU9GRiAtREVOQUJM RV9QU1RfSU1QT1JUPU9GRgotIC1ERU5BQkxFX1dFQVRIRVI9JCh2b3B0X2lmIGdpciBPTiBPRkYp IgorIC1ERU5BQkxFX1RFWFRfSElHSExJR0hUPU9GRiAtREVOQUJMRV9QU1RfSU1QT1JUPU9GRiAt REVOQUJMRV9XRUFUSEVSPU9OIgogaG9zdG1ha2VkZXBlbmRzPSJnbm9tZS1kb2MtdXRpbHMgZ29i amVjdC1pbnRyb3NwZWN0aW9uIGludGx0b29sIGl0c3Rvb2wKLSBwa2ctY29uZmlnIgorIHBrZy1j b25maWcgZ2xpYi1kZXZlbCIKIG1ha2VkZXBlbmRzPSJOZXR3b3JrTWFuYWdlci1kZXZlbCBjbHV0 dGVyLWd0ay1kZXZlbCBlbmNoYW50Mi1kZXZlbAogIGV2b2x1dGlvbi1kYXRhLXNlcnZlci1kZXZl bCBnc3BlbGwtZGV2ZWwgZ3RraHRtbC1kZXZlbCBsaWJjYW5iZXJyYS1kZXZlbAotICQodm9wdF9p ZiBnaXIgbGliZ3dlYXRoZXItZGV2ZWwpIGxpYm5vdGlmeS1kZXZlbCB3ZWJraXQyZ3RrLWRldmVs IHl0bmVmLWRldmVsCisgbGliZ3dlYXRoZXItZGV2ZWwgbGlibm90aWZ5LWRldmVsIHdlYmtpdDJn dGstZGV2ZWwgeXRuZWYtZGV2ZWwKICBnbm9tZS1kZXNrdG9wLWRldmVsIgogZGVwZW5kcz0iZ25v bWUta2V5cmluZyIKIHNob3J0X2Rlc2M9IkludGVncmF0ZWQgbWFpbCwgYWRkcmVzc2Jvb2sgYW5k IGNhbGVuZGFyaW5nIGZvciBHTk9NRSIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hA dm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciwgTEdQTC0zLjAtb3It bGF0ZXIsIEdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9y Zy9BcHBzL0V2b2x1dGlvbiIKLWNoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRl bnQuY29tL0dOT01FL2V2b2x1dGlvbi9nbm9tZS0zLTM2L05FV1MiCitjaGFuZ2Vsb2c9Imh0dHBz Oi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9HTk9NRS9ldm9sdXRpb24vZ25vbWUtMy0zOC9O RVdTIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8k e3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ODczYWNmMWRiZWMzOGU2N2Ux NjkwNjQ2NDVhYzNhOWI5YTk0NGJkMmI2MzMxNjFkZjZlNWYwNTcwMGUzNmNiOAorY2hlY2tzdW09 ZjgxY2M0MGY1NGFhMmQwNTlkYTRmM2E5NGViMDkzNjJlODE1MTMzMDZjOTc0YTQxY2E3ODk1Yjlj ODk1N2M1ZAogc2hsaWJfcHJvdmlkZXM9ImxpYmV2b2x1dGlvbi1jYWxlbmRhci5zbyBsaWJldm9s dXRpb24tdXRpbC5zbyBsaWJlbWFpbC1lbmdpbmUuc28KICBsaWJldm9sdXRpb24tbWFpbC5zbyBs aWJldm9sdXRpb24tc2hlbGwuc28iCiAKIGJ1aWxkX29wdGlvbnM9ImdpciIKIGlmIFsgLXogIiRD Uk9TU19CVUlMRCIgXTsgdGhlbgogCWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgotZWxzZQot CWhvc3RtYWtlZGVwZW5kcys9IiBnbGliLWRldmVsIgogZmkKIAotIyBjbWFrZSBwZXJmb21ybXMg MiBjaGVja3MgdXNpbmcgYmluYXJ5IHJ1bnRpbWUsIGFib3V0IGljb252IGFuZCBzZnJ0aW1lLgot IyBtdXNsICgxLjEuMTYpIGRvZXMgbm90IHN1cHBvcnQgIklTTy0yMDIyLUpQIiBlbmNvZGluZyAo c2VlIGl0cyByb2FkbWFwKSwKLSMgYWx0aG91Z2ggZXZvbHV0aW9uLWRhdGEtc2VydmVyIGlzIGZp bmUgd2l0aCBtdXNsLgotIyBJZiBjcm9zc2J1aWxkLCBjbWFrZSBsZXQgZGlzYWJsaW5nIHJ1bnRp bWUgY2hlY2tzIHZpYSBzcGVjaWZpYyBkaXJlY3RpdmVzLgotIyB0ZXN0IGljb252LWRldGVjdC5j IGFsc28gZ2VuZXJhdGVzIGljb252LWRldGVjdC5oIHRoYXQgaXMgcmVxdWlyZWQgZm9yIGJ1aWxk LgotIyBTbyBjb21wbGV0bHkgZGlzYWJsZSB0ZXN0IGZyb20gaWNvbnYtZGV0ZWN0LmMgKGNtYWtl LnBhdGNoIGZpbGUpIGFuZAotIyB1c2UgYSBjbWFrZSBjYWNoZSBmaWxlIG9uIGNyb3NzYnVpbGQg dG8gZGlzYWJsZSBzZnJ0aW1lIHJ1bm5pbmcgdGVzdC4KLWlmIFsgIiRDUk9TU19CVUlMRCIgXTsg dGhlbgotCWNvbmZpZ3VyZV9hcmdzKz0iIC1DIGRpc2FibGVSdW50aW1lVGVzdHMuY21ha2UiCi1m aQotCi1wcmVfY29uZmlndXJlKCkgewotCW1rZGlyIC1wIGJ1aWxkCi0JY3AgJHtGSUxFU0RJUn0v aWNvbnYtZGV0ZWN0LmggJHt3cmtzcmN9L2J1aWxkLy4KLQlpZiBbICIkQ1JPU1NfQlVJTEQiIF07 IHRoZW4KLQkJY3AgJHtGSUxFU0RJUn0vZGlzYWJsZVJ1bnRpbWVUZXN0cy5jbWFrZSAke3dya3Ny Y30vYnVpbGQvLgotCWZpCi19Ci0KIGV2b2x1dGlvbi1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVu ZHM9IndlYmtpdDJndGstZGV2ZWwgZ3RrKzMtZGV2ZWwgbGliZ2xpYi1kZXZlbCBldm9sdXRpb24t ZGF0YS1zZXJ2ZXItZGV2ZWwKIAkgZ3RraHRtbC1kZXZlbCAke3NvdXJjZXBrZ30+PSR7dmVyc2lv bn1fJHtyZXZpc2lvbn0iCgpGcm9tIDY5NWFlZWQ1MTZlZGYwMWQ4N2U3NzljZjU2YjI1OGZmNGE4 MzBjZGYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmll bEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1 YmplY3Q6IFtQQVRDSCAwNTYvMTAyXSBldm9sdXRpb24tZXdzOiB1cGRhdGUgdG8gMy4zOC4wCgot LS0KIHNyY3BrZ3MvZXZvbHV0aW9uLWV3cy90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hh bmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvZXZvbHV0aW9uLWV3cy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZXZvbHV0aW9uLWV3cy90ZW1wbGF0 ZQppbmRleCA0ZmY4MTE2NDY2Yy4uOThlZTNhNzdmZTcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZXZv bHV0aW9uLWV3cy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2V2b2x1dGlvbi1ld3MvdGVtcGxhdGUK QEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdldm9sdXRpb24tZXdzJwogcGtn bmFtZT1ldm9sdXRpb24tZXdzCi12ZXJzaW9uPTMuMzYuMQordmVyc2lvbj0zLjM4LjAKIHJldmlz aW9uPTEKIGJ1aWxkX3N0eWxlPWNtYWtlCiBjb25maWd1cmVfYXJncz0iLURMSUJFWEVDX0lOU1RB TExfRElSPS91c3IvbGliL2V2b2x1dGlvbiIKQEAgLTEwLDYgKzEwLDYgQEAgc2hvcnRfZGVzYz0i TVMgRXhjaGFuZ2UgaW50ZWdyYXRpb24gdGhyb3VnaCBFeGNoYW5nZSBXZWIgU2VydmljZXMiCiBt YWludGFpbmVyPSJQZXRlciBLdWNoYXIgPG1hc2FqQGdteC5jb20+IgogbGljZW5zZT0iTEdQTC0y LjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0V2b2x1 dGlvbiIKLWNoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0dOT01F L2V2b2x1dGlvbi1ld3MvZ25vbWUtMy0zNi9ORVdTIgorY2hhbmdlbG9nPSJodHRwczovL3Jhdy5n aXRodWJ1c2VyY29udGVudC5jb20vR05PTUUvZXZvbHV0aW9uLWV3cy9nbm9tZS0zLTM4L05FV1Mi CiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtn bmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1kMDg4M2M3ZDIyNzgyN2NjNWM0NDY4 YjdlMzFhM2VlMzcwYmNkN2Q0MWE0ZGJiOTUwYWI1ZGIzNmM5NTUxYWMxCitjaGVja3N1bT01OWJm NTljYWJiOWQxOTNkOTEwNzY5NzJkZDhhNmU3MWViZjM0YzdiZmFkMDFjZDY5NTQyOTczNDdhMzA3 N2IzCgpGcm9tIDhhZjY1NmFhMTdhYzBjYjhlYmQwZmU2MzE5YjE1M2NjNjQyMDU5NjkgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uu b3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRD SCAwNTcvMTAyXSBweXRob24zLWF0c3BpOiB1cGRhdGUgdG8gMi4zOC4wCgotLS0KIHNyY3BrZ3Mv cHl0aG9uMy1hdHNwaS90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNl cnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcHl0aG9uMy1h dHNwaS90ZW1wbGF0ZSBiL3NyY3BrZ3MvcHl0aG9uMy1hdHNwaS90ZW1wbGF0ZQppbmRleCBhMzNh Mzc0ZmUxOC4uMjNmYTk4OTM0ZTUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcHl0aG9uMy1hdHNwaS90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3B5dGhvbjMtYXRzcGkvdGVtcGxhdGUKQEAgLTEsNyArMSw3 IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdweXRob24zLWF0c3BpJwogcGtnbmFtZT1weXRob24z LWF0c3BpCi12ZXJzaW9uPTIuMzIuMQotcmV2aXNpb249NAordmVyc2lvbj0yLjM4LjAKK3Jldmlz aW9uPTEKIGFyY2hzPW5vYXJjaAogd3Jrc3JjPSJweWF0c3BpLSR7dmVyc2lvbn0iCiBidWlsZF9z dHlsZT1nbnUtY29uZmlndXJlCkBAIC0xMyw0ICsxMyw0IEBAIG1haW50YWluZXI9IkVubm8gQm9s YW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgog aG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9weWF0c3BpMiIKIGRpc3Rm aWxlcz0iJHtHTk9NRV9TSVRFfS9weWF0c3BpLyR7dmVyc2lvbiUuKn0vcHlhdHNwaS0ke3ZlcnNp b259LnRhci54eiIKLWNoZWNrc3VtPTg0OTU0YTViYmVhY2M4MzY0M2YwNTc3OGQ4YmVhZmNhYjgy MDhlMTFiMzliMjQ2MzdiNGM0ZGQxZjg2MjAzODkKK2NoZWNrc3VtPWZmODA5MzEyZmQwYzJmNjFl MTkxYzE4MWExYTYzOGEzMGI1NzliOTFiNjgyY2ZiNWEwNTUzNWE1NTI2NWI0M2QKCkZyb20gMGE5 MTlkZGU5OTlhNWNjNjJhYTEwYjgxZmQ4ZmY4YzE5OTY3ZWFlNyBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRo dSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA1OC8xMDJdIHB5 dGhvbi1hdHNwaTogdXBkYXRlIHRvIDIuMzguMAoKLS0tCiBzcmNwa2dzL3B5dGhvbi1hdHNwaS90 ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcHl0aG9uLWF0c3BpL3RlbXBsYXRlIGIv c3JjcGtncy9weXRob24tYXRzcGkvdGVtcGxhdGUKaW5kZXggMDE0MWQ5N2Y4NWQuLjc1MDVjMzJh ZDYwIDEwMDY0NAotLS0gYS9zcmNwa2dzL3B5dGhvbi1hdHNwaS90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL3B5dGhvbi1hdHNwaS90ZW1wbGF0ZQpAQCAtMSw4ICsxLDggQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ3B5dGhvbi1hdHNwaScKICMgS2VlcCBweXRob24zLWF0c3BpIGluIHN5bmMKIHBrZ25h bWU9cHl0aG9uLWF0c3BpCi12ZXJzaW9uPTIuMzIuMQotcmV2aXNpb249NAordmVyc2lvbj0yLjM4 LjAKK3JldmlzaW9uPTEKIGFyY2hzPW5vYXJjaAogd3Jrc3JjPSJweWF0c3BpLSR7dmVyc2lvbn0i CiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCkBAIC0xNCw0ICsxNCw0IEBAIG1haW50YWluZXI9 IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9y LWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9weWF0c3Bp MiIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS9weWF0c3BpLyR7dmVyc2lvbiUuKn0vcHlhdHNw aS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTg0OTU0YTViYmVhY2M4MzY0M2YwNTc3OGQ4 YmVhZmNhYjgyMDhlMTFiMzliMjQ2MzdiNGM0ZGQxZjg2MjAzODkKK2NoZWNrc3VtPWZmODA5MzEy ZmQwYzJmNjFlMTkxYzE4MWExYTYzOGEzMGI1NzliOTFiNjgyY2ZiNWEwNTUzNWE1NTI2NWI0M2QK CkZyb20gZDBhMjU3OTc3MGUwOWYyYjdiZWYyMTE4MDI1NWE1Y2M5ZDczYjIzYiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+ CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA1 OS8xMDJdIG9yY2E6IHVwZGF0ZSB0byAzLjM4LjAsIGRyb3Agbm9hcmNoCgotLS0KIHNyY3BrZ3Mv b3JjYS90ZW1wbGF0ZSB8IDUgKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyks IDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcmNhL3RlbXBsYXRlIGIvc3Jj cGtncy9vcmNhL3RlbXBsYXRlCmluZGV4IGY3MDIwMmU2ZDc2Li4zOGU5MjM0NmI4NiAxMDA2NDQK LS0tIGEvc3JjcGtncy9vcmNhL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvb3JjYS90ZW1wbGF0ZQpA QCAtMSw4ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ29yY2EnCiBwa2duYW1lPW9yY2EK LXZlcnNpb249My4zNi4xCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQotYXJjaHM9bm9hcmNo CiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBob3N0bWFrZWRlcGVuZHM9ImludGx0b29sIGl0 c3Rvb2wgcGtnLWNvbmZpZyIKIG1ha2VkZXBlbmRzPSJhdC1zcGkyLWF0ay1kZXZlbCBsaWJsb3Vp cy1kZXZlbCBweXRob24zLWdvYmplY3QtZGV2ZWwiCkBAIC0xMyw3ICsxMiw3IEBAIG1haW50YWlu ZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4w LW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvT3Jj YSIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtw a2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWMxYWM2NDhiNmJlMzE0ODhjMjZm Zjk1OTExNDI4Nzg2OWRmOWNlM2NhMjE5OTllNDBkZWQ4Nzc0MWM5ODgzMWYKK2NoZWNrc3VtPTFj MzI3OWQ3OTg5OGRiMTBhMTA1YmNiNzA1YjVhNDA0MmIxYjUxYTljMDU3YTZiZDBmZmQ2NWRhYzIz NTZmZWUKIAogaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJaG9zdG1ha2VkZXBlbmRzKz0i IHB5dGhvbjMtZ29iamVjdC1kZXZlbCIKCkZyb20gMTcyNzI4OTg1NmNhODE0MzY1ODYxZGE2MjQ5 Mjc2NDI0NjJlYjUyMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVz YSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDgg KzAyMDAKU3ViamVjdDogW1BBVENIIDA2MC8xMDJdIGdub21lLXdlYXRoZXI6IGJ1bXAKCi0tLQog c3JjcGtncy9nbm9tZS13ZWF0aGVyL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEg aW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS13 ZWF0aGVyL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS13ZWF0aGVyL3RlbXBsYXRlCmluZGV4IGQz MGJlOWJmMTkyLi5jMDI4ZTQ2YmE2NSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS13ZWF0aGVy L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtd2VhdGhlci90ZW1wbGF0ZQpAQCAtMSw3ICsx LDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLXdlYXRoZXInCiBwa2duYW1lPWdub21l LXdlYXRoZXIKIHZlcnNpb249My4zNi4xCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBidWlsZF9o ZWxwZXI9ImdpciIKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQg cGtnLWNvbmZpZyBpdHN0b29sIGdsaWItZGV2ZWwgZ2pzIgoKRnJvbSAyMTVhZmVlMzg1NzRjNmY0 ZmJjNzNhN2Q1YTRkYzBjM2QzM2IzYTlhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBE YW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAy MCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDYxLzEwMl0gdnRlMzogdXBkYXRlIHRv IDAuNjIuMAoKLS0tCiBzcmNwa2dzL3Z0ZTMvdGVtcGxhdGUgfCAxOSArKysrKysrKy0tLS0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL3Z0ZTMvdGVtcGxhdGUgYi9zcmNwa2dzL3Z0ZTMvdGVtcGxhdGUK aW5kZXggNjExNmIzY2M2MjEuLjQxZjlmNGU3ZTlhIDEwMDY0NAotLS0gYS9zcmNwa2dzL3Z0ZTMv dGVtcGxhdGUKKysrIGIvc3JjcGtncy92dGUzL3RlbXBsYXRlCkBAIC0xLDI5ICsxLDI4IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICd2dGUzJwogcGtnbmFtZT12dGUzCi12ZXJzaW9uPTAuNjAuMwor dmVyc2lvbj0wLjYyLjAKIHJldmlzaW9uPTEKIHdya3NyYz0idnRlLSR7dmVyc2lvbn0iCiBidWls ZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCi1jb25maWd1cmVfYXJncz0iLURiX25k ZWJ1Zz1mYWxzZSAtRGdpcj0kKHZvcHRfaWYgZ2lyIHRydWUgZmFsc2UpCi0gLUR2YXBpPSQodm9w dF9pZiB2YWxhIHRydWUgZmFsc2UpIC1EYl9sdG89ZmFsc2UgLURfc3lzdGVtZD1mYWxzZSIKK2Nv bmZpZ3VyZV9hcmdzPSItRGJfbmRlYnVnPWZhbHNlIC1EYl9sdG89ZmFsc2UgLURfc3lzdGVtZD1m YWxzZQorICQodm9wdF9ib29sIGdpciBnaXIpICQodm9wdF9ib29sIGdpciB2YXBpKSIKIGhvc3Rt YWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBnbm9tZS1kb2MtdXRpbHMgZ3BlcmYgaW50bHRvb2wgcGtn LWNvbmZpZwotICQodm9wdF9pZiB2YWxhIHZhbGEpIgotbWFrZWRlcGVuZHM9ImdudXRscy1kZXZl bCBndGsrMy1kZXZlbCBwY3JlMi1kZXZlbCAkKHZvcHRfaWYgdmFsYSB2YWxhLWRldmVsKSIKLWRl cGVuZHM9InZ0ZSIKKyAkKHZvcHRfaWYgZ2lyIHZhbGEpIgorbWFrZWRlcGVuZHM9ImdudXRscy1k ZXZlbCBndGsrMy1kZXZlbCBwY3JlMi1kZXZlbCAkKHZvcHRfaWYgZ2lyIHZhbGEtZGV2ZWwpIgog c2hvcnRfZGVzYz0iVGVybWluYWwgd2lkZ2V0IHdpdGggaW1wcm92ZWQgYWNjZXNzaWJpbGl0eSBh bmQgSTE4TiBzdXBwb3J0IgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGlu dXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyLCBM R1BMLTMuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMv VGVybWluYWwvVlRFIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L3Z0ZS8ke3ZlcnNpb24lLip9 L3Z0ZS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWZlYjc2ZTExODFhMzU3ZDg2MTEyZDQ0 N2EwOGQxMjdlMjA4MTQzOGRmNzZlY2U4MzI0M2IxODYwOWRkOTgyMmEKK2NoZWNrc3VtPTRkMmQy NDZlZDQ3ZjA4Y2M3M2Y2NDcxYWE4ZTlmMzc4OTk4YjdkMGY3ZGNiMGM0MzNmMjlkYTU4MzlkYmIw MTYKIAogIyBTdXBwcmVzcyB3YXJuaW5ncyBhcyBlcnJvcnMgZm9yIE5VTEwgZm9ybWF0IHN0cmlu Z3MgKG11c2wgbGliYykKIENYWEZMQUdTPSItV25vLWVycm9yPWZvcm1hdD0iCiAKICMgUGFja2Fn ZSBidWlsZCBvcHRpb25zCi1idWlsZF9vcHRpb25zPSJnaXIgdmFsYSIKLWJ1aWxkX29wdGlvbnNf ZGVmYXVsdD0iZ2lyIHZhbGEiCitidWlsZF9vcHRpb25zPSJnaXIiCitidWlsZF9vcHRpb25zX2Rl ZmF1bHQ9ImdpciIKIAogcHJlX2J1aWxkKCkgewogCWV4cG9ydCBHSVJfRVhUUkFfTElCU19QQVRI PSIke3dya3NyY30vc3JjLy5saWJzIgpAQCAtMzgsOCArMzcsNiBAQCB2dGUzLWRldmVsX3BhY2th Z2UoKSB7CiAJCXZtb3ZlICJ1c3IvbGliLyouc28iCiAJCWlmIFsgIiRidWlsZF9vcHRpb25fZ2ly IiBdOyB0aGVuCiAJCQl2bW92ZSB1c3Ivc2hhcmUvZ2lyLTEuMAotCQlmaQotCQlpZiBbICIkYnVp bGRfb3B0aW9uX3ZhbGEiIF07IHRoZW4KIAkJCXZtb3ZlIHVzci9zaGFyZS92YWxhCiAJCWZpCiAJ fQoKRnJvbSBhNzVkNGVhN2Q4MDhhNzJjNTVjYzQxNjA3N2FmY2YwOWE1ZTNkNGE0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9y Zz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0gg MDYyLzEwMl0gZ25vbWUtdGVybWluYWw6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9n bm9tZS10ZXJtaW5hbC90ZW1wbGF0ZSB8IDggKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGlu c2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS10 ZXJtaW5hbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtdGVybWluYWwvdGVtcGxhdGUKaW5kZXgg YmYzZDViY2RkNDIuLjEyNmJhNTk1NmZkIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXRlcm1p bmFsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtdGVybWluYWwvdGVtcGxhdGUKQEAgLTEs MTEgKzEsMTEgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLXRlcm1pbmFsJwogcGtnbmFt ZT1nbm9tZS10ZXJtaW5hbAotdmVyc2lvbj0zLjM2LjEuMQordmVyc2lvbj0zLjM4LjAKIHJldmlz aW9uPTEKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGNvbmZpZ3VyZV9hcmdzPSItLWRpc2Fi bGUtc3RhdGljIC0td2l0aC1uYXV0aWx1cy1leHRlbnNpb24iCiBob3N0bWFrZWRlcGVuZHM9ImFw cGRhdGEtdG9vbHMgZ2xpYi1kZXZlbCBpbnRsdG9vbCBpdHN0b29sCi0gcGtnLWNvbmZpZyIKKyBw a2ctY29uZmlnIGRvY2Jvb2steHNsIgogbWFrZWRlcGVuZHM9ImRjb25mLWRldmVsIGdub21lLXNo ZWxsIGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMtZGV2ZWwKICBuYXV0aWx1cy1kZXZlbCB2dGUz LWRldmVsIgogZGVwZW5kcz0iZGVza3RvcC1maWxlLXV0aWxzIgpAQCAtMTMsOCArMTMsOCBAQCBz aG9ydF9kZXNjPSJHTk9NRSB0ZXJtaW5hbCBlbXVsYXRvciBhcHBsaWNhdGlvbiIKIG1haW50YWlu ZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4w LW9yLWxhdGVyLCBHRkRMLTEuMy1vbmx5IgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5v cmcvQXBwcy9UZXJtaW5hbCIKLWRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7 dmVyc2lvbjowOjR9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1mM2Q3 MDhhMWU3NmQ3N2MxYzg1YjEyNmY2ZTAwMzIyMGExNWQ0YTQ2YTUwZmQ4MDcwZTFhM2FhYmU2Nzhh Mzc2CitkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7 cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCitjaGVja3N1bT0wYTBmYzdhOGIzODNjNmZmZDYx NDY5YmUxZGVhNWJhNjNjZmZhZDgxMjkyMTc4MGU3ZmFkNDBjMmUyYWU1NGY1CiBsaWIzMmRpc2Fi bGVkPXllcwogCiBpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KCkZyb20gMWU0NDk5MzY1NWEx NTllMDFmYTlmODhkYmI3M2MxOWM0ODYwMzc1YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVn IDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA2My8xMDJdIGdub21lLWdldHRp bmctc3RhcnRlZC1kb2NzOiB1cGRhdGUgdG8gMy4zNi4yCgotLS0KIHNyY3BrZ3MvZ25vbWUtZ2V0 dGluZy1zdGFydGVkLWRvY3MvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGlu c2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1n ZXR0aW5nLXN0YXJ0ZWQtZG9jcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtZ2V0dGluZy1zdGFy dGVkLWRvY3MvdGVtcGxhdGUKaW5kZXggNWJlYzkzNDkwYmEuLmJlZDliNjk2MTYyIDEwMDY0NAot LS0gYS9zcmNwa2dzL2dub21lLWdldHRpbmctc3RhcnRlZC1kb2NzL3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvZ25vbWUtZ2V0dGluZy1zdGFydGVkLWRvY3MvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1nZXR0aW5nLXN0YXJ0ZWQtZG9jcycKIHBrZ25h bWU9Z25vbWUtZ2V0dGluZy1zdGFydGVkLWRvY3MKLXZlcnNpb249My4zNC4wCit2ZXJzaW9uPTMu MzYuMgogcmV2aXNpb249MQogYXJjaHM9bm9hcmNoCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJl CkBAIC0xMSw0ICsxMSw0IEBAIGxpY2Vuc2U9IkNDLUJZLVNBLTMuMCIKIGhvbWVwYWdlPSJodHRw czovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtZ2V0dGluZy1zdGFydGVkLWRvY3MiCiAj Y2hhbmdlbG9nPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtZ2V0dGluZy1z dGFydGVkLWRvY3MvcmF3L21hc3Rlci9ORVdTIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7 cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hl Y2tzdW09ZjcwY2UyY2EyM2FkNzg2MjE1ZjNjOTJlYzg1NzgzZTNhYWJlZDA3ZTRmNzg3MDBmYTI3 ZjliMmNmNzZlMDNkYgorY2hlY2tzdW09MDQ5NGI4OTEzYTk0NmI2NDUwNTM2ZTEyMGMxNTRhYmQy OTIzOGViYmEyZjUyNzM0NTkyYjFmNjQ1ZTUyMWRjNgoKRnJvbSBkNzQxYWZiNjA2YmE0YTdmNjdj MGFlNzExMjBjNmY0YTZkNTZmNzFlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5p ZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAx ODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDY0LzEwMl0gZ25vbWUtdXNlci1kb2NzOiB1 cGRhdGUgdG8gMy4zOC4wLCBkcm9wIG5vYXJjaAoKLS0tCiBzcmNwa2dzL2dub21lLXVzZXItZG9j cy90ZW1wbGF0ZSB8IDUgKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDMg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS11c2VyLWRvY3MvdGVtcGxh dGUgYi9zcmNwa2dzL2dub21lLXVzZXItZG9jcy90ZW1wbGF0ZQppbmRleCA0Y2I1NTM5NmUzNy4u Zjk5NDJlMjQ4NDMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtdXNlci1kb2NzL3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvZ25vbWUtdXNlci1kb2NzL3RlbXBsYXRlCkBAIC0xLDggKzEsNyBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtdXNlci1kb2NzJwogcGtnbmFtZT1nbm9tZS11c2Vy LWRvY3MKLXZlcnNpb249My4zNC4wCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQotYXJjaHM9 bm9hcmNoCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBob3N0bWFrZWRlcGVuZHM9ImdldHRl eHQgcGtnLWNvbmZpZyBpdHN0b29sIGdub21lLWRvYy11dGlscyIKIG1ha2VkZXBlbmRzPSJ5ZWxw IgpAQCAtMTMsNCArMTIsNCBAQCBsaWNlbnNlPSJDQy1CWS0zLjAiCiBob21lcGFnZT0iaHR0cHM6 Ly9naXRodWIuY29tL0dOT01FL2dub21lLXVzZXItZG9jcyIKICNjaGFuZ2Vsb2c9Imh0dHBzOi8v cmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9HTk9NRS9nbm9tZS11c2VyLWRvY3MvbWFzdGVyL05F V1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7 cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT04Zjk5MDdmZjE1ZmZmOTdkYTc1 ZWNlNjQ1Y2M4Njc2NjcwM2FjNTRkNzE2ZDI1NTYzYmE2N2ZmZWQxYWYyNGVkCitjaGVja3N1bT0z OGQzZGI1YjVkYzU5MTI4MTJhMmM2Y2IyOTc2NWJmYjM5MjQyY2VkY2Q3ZWUzNDdkZjk4ZmNhNzc3 ZGNlZThhCgpGcm9tIDhhMGIzN2JiOWU4YzlkMDYzYTc2N2QzZWU0MWQxYjMwMGZmM2JkMDcgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9y Z2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwNjUvMTAyXSBnbm9tZS1lcHViLXRodW1ibmFpbGVyOiB1cGRhdGUgdG8gMS42CgotLS0K IHNyY3BrZ3MvZ25vbWUtZXB1Yi10aHVtYm5haWxlci90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxl IGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmNwa2dzL2dub21lLWVwdWItdGh1bWJuYWlsZXIvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWVw dWItdGh1bWJuYWlsZXIvdGVtcGxhdGUKaW5kZXggYjE2ZTcwNTQ3NWYuLmM2ZTFjMDJiOWQzIDEw MDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWVwdWItdGh1bWJuYWlsZXIvdGVtcGxhdGUKKysrIGIv c3JjcGtncy9nbm9tZS1lcHViLXRodW1ibmFpbGVyL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtZXB1Yi10aHVtYm5haWxlcicKIHBrZ25hbWU9Z25v bWUtZXB1Yi10aHVtYm5haWxlcgotdmVyc2lvbj0xLjUKK3ZlcnNpb249MS42CiByZXZpc2lvbj0x CiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWci CkBAIC0xMCw0ICsxMCw0IEBAIG1haW50YWluZXI9IkFsaWYgUmFjaG1hd2FkaSA8YXJjaEBzdWJv c2l0by5jb20+IgogbGljZW5zZT0iR1BMLTMiCiBob21lcGFnZT0iaHR0cHM6Ly9naXQuZ25vbWUu b3JnL2Jyb3dzZS9nbm9tZS1lcHViLXRodW1ibmFpbGVyIgogZGlzdGZpbGVzPSIke0dOT01FX1NJ VEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9ufS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6Igot Y2hlY2tzdW09MzA4MjEwZjU4MDAyMTlmNjRjYWU0ODI4ZTU5YmI4ZTZlNGM1M2I4ODgwNDhjZjQ4 NzIyMWFlYjQzMzdkNzkxYQorY2hlY2tzdW09YjUwMjQyMGQ5YjAyZWEwYjBmYzc5ODZlZjVhMDkx YTEyYjIyODZiZTE0ZmVkOWU0NzU5NGZlOWZhMGM1ODk4ZQoKRnJvbSBhMzU1MjRhZDljYmUxMjlh MjY2NDkxMGI5MjNkNjNjYzQyYjQ0YmFmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBE YW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAy MCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDY2LzEwMl0gZ25vbWUtYm9va3M6IGJ1 bXAKCi0tLQogc3JjcGtncy9nbm9tZS1ib29rcy90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFu Z2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Z25vbWUtYm9va3MvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWJvb2tzL3RlbXBsYXRlCmluZGV4 IDExNGI5ZTAzNGMyLi4xZDQ5NzRmZTE4MyAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1ib29r cy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWJvb2tzL3RlbXBsYXRlCkBAIC0xLDcgKzEs NyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtYm9va3MnCiBwa2duYW1lPWdub21lLWJv b2tzCiB2ZXJzaW9uPTMuMzQuMAotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRfaGVscGVy PSJnaXIiCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIHZh bGEgZ2xpYi1kZXZlbCBsaWJyc3ZnIGRvY2Jvb2steHNsIGxpYnhzbHQKCkZyb20gMDM0MzZhZjE5 NzJhNmNhY2JhNTM0NGVkNDVkOTFhOGRhZTk3MjMyNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMg QXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDA2Ny8xMDJdIGdub21lLWNo YXJhY3RlcnM6IGJ1bXAKCi0tLQogc3JjcGtncy9nbm9tZS1jaGFyYWN0ZXJzL3RlbXBsYXRlIHwg MiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1jaGFyYWN0ZXJzL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9t ZS1jaGFyYWN0ZXJzL3RlbXBsYXRlCmluZGV4IDg5ODY4ZjRiYzA0Li5hYzI2NGU1MWE2YSAxMDA2 NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1jaGFyYWN0ZXJzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv Z25vbWUtY2hhcmFjdGVycy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ2dub21lLWNoYXJhY3RlcnMnCiBwa2duYW1lPWdub21lLWNoYXJhY3RlcnMKIHZlcnNp b249My4zNC4wCi1yZXZpc2lvbj0yCityZXZpc2lvbj0zCiBidWlsZF9zdHlsZT1tZXNvbgogYnVp bGRfaGVscGVyPSJnaXIiCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgZ2pzIGdsaWItZGV2ZWwg aXRzdG9vbCBwa2ctY29uZmlnIgoKRnJvbSBjMThjOTQwZjNiZjQ1OGM0OTQ4MjhlNTQ4OWJjY2I0 Y2ExYjcyNmIyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxk YW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIw MApTdWJqZWN0OiBbUEFUQ0ggMDY4LzEwMl0gZ25vbWUtZG9jdW1lbnRzOiBidW1wCgotLS0KIHNy Y3BrZ3MvZ25vbWUtZG9jdW1lbnRzL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEg aW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1k b2N1bWVudHMvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWRvY3VtZW50cy90ZW1wbGF0ZQppbmRl eCA5N2I1M2Q2MzVkNy4uN2U0NWI4MjVlNzEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtZG9j dW1lbnRzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtZG9jdW1lbnRzL3RlbXBsYXRlCkBA IC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtZG9jdW1lbnRzJwogcGtn bmFtZT1nbm9tZS1kb2N1bWVudHMKIHZlcnNpb249My4zNC4wCi1yZXZpc2lvbj0xCityZXZpc2lv bj0yCiBidWlsZF9oZWxwZXI9ImdpciIKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVu ZHM9ImRvY2Jvb2steHNsIGdldHRleHQgaXRzdG9vbCBwa2ctY29uZmlnIGdsaWItZGV2ZWwgbGli eHNsdCBnZGstcGl4YnVmCgpGcm9tIDUxMGYyMGUxODBiNjgxOTdlYjM4NTljODkwMDU3ODFlMDIx ZDdiOTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmll bEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1 YmplY3Q6IFtQQVRDSCAwNjkvMTAyXSBnbm9tZS1mb250LXZpZXdlcjogYnVtcAoKLS0tCiBzcmNw a2dzL2dub21lLWZvbnQtdmlld2VyL3RlbXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEg aW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1m b250LXZpZXdlci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtZm9udC12aWV3ZXIvdGVtcGxhdGUK aW5kZXggNmQwMzUzNjZkNDQuLmY3NGZjYmNiMDAwIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21l LWZvbnQtdmlld2VyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtZm9udC12aWV3ZXIvdGVt cGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1mb250LXZp ZXdlcicKIHBrZ25hbWU9Z25vbWUtZm9udC12aWV3ZXIKIHZlcnNpb249My4zNC4wCi1yZXZpc2lv bj0xCityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJwa2ct Y29uZmlnIGdsaWItZGV2ZWwiCiBtYWtlZGVwZW5kcz0iZm9udGNvbmZpZy1kZXZlbCBmcmVldHlw ZS1kZXZlbCBnbGliLWRldmVsIGd0ayszLWRldmVsCgpGcm9tIGI1ZmY2YWVkN2ZiMTc0YzI5ZWZh ZWViOWFlZDkzZDFmMzgwZDc0MGIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmll bCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4 OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNzAvMTAyXSB0b3RlbTogdXBkYXRlIHRvIDMu MzguMAoKLS0tCiBzcmNwa2dzL3RvdGVtL3RlbXBsYXRlIHwgMTYgKysrKysrKysrLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmNwa2dzL3RvdGVtL3RlbXBsYXRlIGIvc3JjcGtncy90b3RlbS90ZW1wbGF0ZQppbmRl eCA4MTUyMmIzMTQ4OC4uNTZmYjE1MjcwZmIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvdG90ZW0vdGVt cGxhdGUKKysrIGIvc3JjcGtncy90b3RlbS90ZW1wbGF0ZQpAQCAtMSwxNCArMSwxNCBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAndG90ZW0nCiBwa2duYW1lPXRvdGVtCi12ZXJzaW9uPTMuMzQuMQor dmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxw ZXI9ImdpciIKIGNvbmZpZ3VyZV9hcmdzPSItRGVuYWJsZS1weXRob249bm8gLURlbmFibGUtbmF1 dGlsdXM9eWVzCiAgLURlbmFibGUtaW50cm9zcGVjdGlvbj0kKHZvcHRfaWYgZ2lyIHllcyBubykK LSAtRGVuYWJsZS12YWxhPSQodm9wdF9pZiB2YWxhIHllcyBubykiCisgLURlbmFibGUtdmFsYT0k KHZvcHRfaWYgZ2lyIHllcyBubykiCiBob3N0bWFrZWRlcGVuZHM9Imdub21lLWRvYy11dGlscyBp bnRsdG9vbCBpdHN0b29sIHBrZy1jb25maWcKLSAkKHZvcHRfaWYgdmFsYSB2YWxhKSBnc3RyZWFt ZXIxIGdzdC1wbHVnaW5zLWJhc2UxIGdzdC1wbHVnaW5zLWdvb2QxCisgJCh2b3B0X2lmIGdpciB2 YWxhKSBnc3RyZWFtZXIxIGdzdC1wbHVnaW5zLWJhc2UxIGdzdC1wbHVnaW5zLWdvb2QxCiAgZ2xp Yi1kZXZlbCIKICMgWFhYIG1pc3NpbmcgbGlyYyBwbHVnaW4uCiBtYWtlZGVwZW5kcz0iY2x1dHRl ci1nc3QzLWRldmVsIGNsdXR0ZXItZ3RrLWRldmVsIGRidXMtZ2xpYi1kZXZlbApAQCAtMjEsMTYg KzIxLDE4IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4i CiBsaWNlbnNlPSJMR1BMLTIuMC1vci1sYXRlciwgR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdl PSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvVmlkZW9zIgogZGlzdGZpbGVzPSIke0dOT01F X1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFy Lnh6IgotY2hlY2tzdW09NmJmODlhYjA5NmRmYzU2NGYyNjA5NzZlNDg0MTY1ZjA5YmQ4ODY0MzRk MTg0NDEwZDJmOTQ0YmZiYTYxMWEwOQorY2hlY2tzdW09YTgyOWYyYjVhYTA0MzVhYTQzMTgxNjE1 MzE5M2Q1NTQ3ZmFkZTllYjhkNDg5ZjU2YmUyMmFmYmU2NTFjNDMyZgogCiAjIFhYWCB4dWxydW5u ZXIgcGx1Z2luLgogIyBYWFggcmVlbmFibGUgcHl0aG9uIHBsdWdpbiBpZiBweWxpbnQgcGtnIGV4 aXN0cy4KICNweWNvbXBpbGVfZGlycz0idXNyL2xpYi90b3RlbS9wbHVnaW5zIgogCi1kaXNhYmxl X3BhcmFsbGVsX2J1aWxkPXllcworZG9fY2hlY2soKSB7CisJOgorfQogCi1idWlsZF9vcHRpb25z PSJnaXIgdmFsYSIKLWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIHZhbGEiCitidWlsZF9vcHRp b25zPSJnaXIiCitidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKIAogbGlidG90ZW1fcGFja2Fn ZSgpIHsKIAlzaG9ydF9kZXNjKz0iIC0gcnVudGltZSBsaWJyYXJ5IgoKRnJvbSAzMzRmMjhhZTJk ZmM2OTRkYjE4MGQwNWJhZDMyZjUwNDczNmNlYThhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBB dWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDcxLzEwMl0gZ25vbWUtc2Ny ZWVuc2F2ZXI6IGJ1bXAgKyBmaXggYnVpbGQKCi0tLQogc3JjcGtncy9nbm9tZS1zY3JlZW5zYXZl ci9wYXRjaGVzL2J1aWxkLnBhdGNoIHwgMTIgKysrKysrKysrKysrCiBzcmNwa2dzL2dub21lLXNj cmVlbnNhdmVyL3RlbXBsYXRlICAgICAgICAgICAgfCAgMiArLQogMiBmaWxlcyBjaGFuZ2VkLCAx MyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9nbm9tZS1zY3JlZW5zYXZlci9wYXRjaGVzL2J1aWxkLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9nbm9tZS1zY3JlZW5zYXZlci9wYXRjaGVzL2J1aWxkLnBhdGNoIGIvc3JjcGtncy9nbm9t ZS1zY3JlZW5zYXZlci9wYXRjaGVzL2J1aWxkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi42ZGNkYmU3ZGQ3ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv Z25vbWUtc2NyZWVuc2F2ZXIvcGF0Y2hlcy9idWlsZC5wYXRjaApAQCAtMCwwICsxLDEyIEBACist LS0gc3JjL2dzLW1hbmFnZXIuYworKysrIHNyYy9ncy1tYW5hZ2VyLmMKK0BAIC04MjAsOCArODIw LDcgQEAgYXBwbHlfYmFja2dyb3VuZF90b193aW5kb3cgKEdTTWFuYWdlciAqbWFuYWdlciwKKyAg ICAgICAgIHN1cmZhY2UgPSBnbm9tZV9iZ19jcmVhdGVfc3VyZmFjZSAobWFuYWdlci0+cHJpdi0+ YmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdka193aW5k b3csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQsCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFKTsKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0KTsKKyAgICAgICAgIGdz X3dpbmRvd19zZXRfYmFja2dyb3VuZF9zdXJmYWNlICh3aW5kb3csIHN1cmZhY2UpOworICAgICAg ICAgY2Fpcm9fc3VyZmFjZV9kZXN0cm95IChzdXJmYWNlKTsKKyB9CmRpZmYgLS1naXQgYS9zcmNw a2dzL2dub21lLXNjcmVlbnNhdmVyL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1zY3JlZW5zYXZl ci90ZW1wbGF0ZQppbmRleCAzNjNmY2YxMmUxMC4uYzNhNzBjZmVmN2MgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvZ25vbWUtc2NyZWVuc2F2ZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1zY3Jl ZW5zYXZlci90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2du b21lLXNjcmVlbnNhdmVyJwogcGtnbmFtZT1nbm9tZS1zY3JlZW5zYXZlcgogdmVyc2lvbj0zLjYu MQotcmV2aXNpb249MgorcmV2aXNpb249MwogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogY29u ZmlndXJlX2FyZ3M9Ii0tZW5hYmxlLWNvbXBpbGUtd2FybmluZ3M9bWluaW11bSIKIGhvc3RtYWtl ZGVwZW5kcz0icGtnLWNvbmZpZyBhdXRvbWFrZSBpbnRsdG9vbCBnbGliLWRldmVsIgoKRnJvbSA5 MmIxMDFmZGYzNDk5NGY3NzEyNTY0YzNmNjUzMGZmODU2ZGMyZTYxIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTog VGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDcyLzEwMl0g Z25vbWUtY2xvY2tzOiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIHNyY3BrZ3MvZ25vbWUtY2xvY2tz L3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1jbG9ja3MvdGVtcGxhdGUg Yi9zcmNwa2dzL2dub21lLWNsb2Nrcy90ZW1wbGF0ZQppbmRleCAzZTA0OWI0MmZiMS4uNzJmNzFm OTI2OGMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtY2xvY2tzL3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvZ25vbWUtY2xvY2tzL3RlbXBsYXRlCkBAIC0xLDEyICsxLDEyIEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdnbm9tZS1jbG9ja3MnCiBwa2duYW1lPWdub21lLWNsb2NrcwotdmVyc2lvbj0z LjM2LjAKK3ZlcnNpb249My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9oZWxwZXI9ImdpciIKIGJ1 aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgaW50bHRvb2wgaXRz dG9vbCBnbGliLWRldmVsIHZhbGEiCiBtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCB2YWxhLWRldmVs IGdub21lLWRlc2t0b3AtZGV2ZWwKLSBsaWJnd2VhdGhlci1kZXZlbCBsaWJoYW5keS1kZXZlbCBs aWJub3RpZnktZGV2ZWwgZ3NvdW5kLWRldmVsCisgbGliZ3dlYXRoZXItZGV2ZWwgbGliaGFuZHkx LWRldmVsIGxpYm5vdGlmeS1kZXZlbCBnc291bmQtZGV2ZWwKICBnZW9jb2RlLWdsaWItZGV2ZWwg ZGVza3RvcC1maWxlLXV0aWxzIGhpY29sb3ItaWNvbi10aGVtZQogIGdlb2NsdWUyLWRldmVsIgog ZGVwZW5kcz0iZGVza3RvcC1maWxlLXV0aWxzIGhpY29sb3ItaWNvbi10aGVtZSIKQEAgLTE1LDQg KzE1LDQgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIK IGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21l Lm9yZy9BcHBzL0Nsb2NrcyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7 dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTRjOTc4 YjBjN2Y3YjlkYWViZDI3MmQwMTc1ZjhhNTQ0MTVlMjA3OGYxMzRmNDhhZGQ1Y2YyNDM2MmVlZjQ5 YzYKK2NoZWNrc3VtPWQ5NTZjYjA1MGYxY2E0NmI0NDM1MTllNGY1OWFiMjA0MjkwZDYyNzBkZWM5 MWM3NGI1Mzg5NWFlY2M3OTQ0MzgKCkZyb20gNjY2M2MyZmE4NzM4YmFiMmU3MTcyYzRiNzcwMDAw NTQ0ZGZjYTg0MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8 ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAy MDAKU3ViamVjdDogW1BBVENIIDA3My8xMDJdIGVwaXBoYW55OiB1cGRhdGUgdG8gMy4zOC4wCgot LS0KIHNyY3BrZ3MvZXBpcGhhbnkvdGVtcGxhdGUgfCA4ICsrKystLS0tCiAxIGZpbGUgY2hhbmdl ZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv ZXBpcGhhbnkvdGVtcGxhdGUgYi9zcmNwa2dzL2VwaXBoYW55L3RlbXBsYXRlCmluZGV4IDVkNmFj NmE2MzdkLi5mMjNiMjNjNmZiZSAxMDA2NDQKLS0tIGEvc3JjcGtncy9lcGlwaGFueS90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL2VwaXBoYW55L3RlbXBsYXRlCkBAIC0xLDE5ICsxLDE5IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdlcGlwaGFueScKIHBrZ25hbWU9ZXBpcGhhbnkKLXZlcnNpb249My4z Ni4yCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfaGVscGVyPSJnaXIiCiBidWls ZF9zdHlsZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1EZGlzdHJpYnV0b3JfbmFtZT1Wb2lkTGlu dXggLUR1bml0X3Rlc3RzPWRpc2FibGVkIgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGdsaWIt ZGV2ZWwgaXRzdG9vbCBwa2ctY29uZmlnIgogbWFrZWRlcGVuZHM9Ik5ldHdvcmtNYW5hZ2VyLWRl dmVsIGF2YWhpLWdsaWItbGlicy1kZXZlbCBnY3ItZGV2ZWwKLSBnbm9tZS1kZXNrdG9wLWRldmVs IGpzb24tZ2xpYi1kZXZlbCBsaWJkYXp6bGUtZGV2ZWwgbGliaGFuZHktZGV2ZWwKKyBnbm9tZS1k ZXNrdG9wLWRldmVsIGpzb24tZ2xpYi1kZXZlbCBsaWJkYXp6bGUtZGV2ZWwgbGliaGFuZHkxLWRl dmVsCiAgbGlibm90aWZ5LWRldmVsIGxpYnNlY3JldC1kZXZlbCBsaWJzb3VwLWdub21lLWRldmVs IGxpYnduY2stZGV2ZWwgbGlieHNsdC1kZXZlbAotIG5ldHRsZS1kZXZlbCBuc3MtZGV2ZWwgd2Vi a2l0Mmd0ay1kZXZlbCIKKyBuZXR0bGUtZGV2ZWwgbnNzLWRldmVsIHdlYmtpdDJndGstZGV2ZWwg bGlicG9ydGFsLWRldmVsIgogZGVwZW5kcz0iZGVza3RvcC1maWxlLXV0aWxzIGhpY29sb3ItaWNv bi10aGVtZSBpc28tY29kZXMgd2Via2l0Mmd0ayIKIHNob3J0X2Rlc2M9IkludHVpdGl2ZSBHTk9N RSB3ZWIgYnJvd3NlciIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4 Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lr aS5nbm9tZS5vcmcvQXBwcy9XZWIiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1l fS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1j MmU2NzZhYTBmZTIxMTgwOWE1ZTdlOGE3ZTQ2MWQxODI4OTBmMjUzYzUzZjQ2MTBmMjYxMDA5NGI2 ZmJmYjVlCitjaGVja3N1bT0yMjhlODIwZDdjN2Y4NTQxZTRkYjVlY2M2YzgxYjVhODhiZGU5YjFl YTE3Y2FlNGE1ZjM4NDQ2Zjc5ODljNTUyCgpGcm9tIGE3Nzg3ZDMzZTVlZWE2NTA4NDY4YzllYjgz NTU1OGY4MmNjYzM2MmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xl c2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4 ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNzQvMTAyXSBnbm9tZS1jb250YWN0czogdXBkYXRlIHRv IDMuMzcuMgoKLS0tCiBzcmNwa2dzL2dub21lLWNvbnRhY3RzL3RlbXBsYXRlIHwgMTMgKysrKysr LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWNvbnRhY3RzL3RlbXBsYXRlIGIvc3JjcGtncy9n bm9tZS1jb250YWN0cy90ZW1wbGF0ZQppbmRleCAyYTgyMTNhNzI0MC4uYWE0ZWY5NDAxMzYgMTAw NjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtY29udGFjdHMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9n bm9tZS1jb250YWN0cy90ZW1wbGF0ZQpAQCAtMSwxNiArMSwxNSBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAnZ25vbWUtY29udGFjdHMnCiBwa2duYW1lPWdub21lLWNvbnRhY3RzCi12ZXJzaW9uPTMu MzQuMAotcmV2aXNpb249Mgotd3Jrc3JjPSJnbm9tZS1jb250YWN0cy0ke3ZlcnNpb24lLip9Igor dmVyc2lvbj0zLjM3LjIKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCi1ob3N0bWFrZWRl cGVuZHM9ImRvY2Jvb2steHNsIGdldHRleHQgZ2xpYi1kZXZlbCBsaWJ4c2x0IHBrZy1jb25maWcg dmFsYSIKK2hvc3RtYWtlZGVwZW5kcz0iZG9jYm9vay14c2wgZm9sa3MtZGV2ZWwgZ2V0dGV4dCBn bGliLWRldmVsIGxpYnhzbHQgcGtnLWNvbmZpZyB2YWxhIgogbWFrZWRlcGVuZHM9ImNoZWVzZS1k ZXZlbCBmb2xrcy1kZXZlbCBnZW9jb2RlLWdsaWItZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbAot IGxpYmNoYW1wbGFpbi1kZXZlbCBsaWJub3RpZnktZGV2ZWwgdmFsYS1kZXZlbCBsaWJoYW5keS1k ZXZlbCIKKyBsaWJjaGFtcGxhaW4tZGV2ZWwgbGlibm90aWZ5LWRldmVsIHZhbGEtZGV2ZWwgbGli aGFuZHkxLWRldmVsIgogZGVwZW5kcz0iZGVza3RvcC1maWxlLXV0aWxzIgogc2hvcnRfZGVzYz0i R05PTUUgY29udGFjdHMgbWFuYWdlciIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hA dm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0 dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9Db250YWN0cyIKLWRpc3RmaWxlcz0iJHtHTk9NRV9T SVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb24lLip9LnRh ci54eiIKLWNoZWNrc3VtPTk5NjAyZWM4ZDY2MGMxZjNjOTJjYWU2MzU2ZjY0ZjcyZmI2ZGI1OGU1 NWJjZTI3YTU5OTMzMGJmN2I2MjJmMTIKK2Rpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25h bWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKK2NoZWNrc3Vt PTFkMzQ2OWQ1ZTkwZjIzZDEyOWQxMjc2YjJmOWI4ODU0NTlmM2Q3YjQzMDU0Y2QwOTc1OWI4NWFj NzZjOTE4YjQKCkZyb20gZTZmMjYzYTFjZTZlNjYxZjBlZDMyYmVkNTNhOTk0OWVlYTZmNjdhMiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFm b3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDog W1BBVENIIDA3NS8xMDJdIGdub21lLXBob3RvczogdXBkYXRlIHRvIDMuMzcuOTEuMSwgdXNlIHRy YWNrZXIzCgotLS0KIHNyY3BrZ3MvZ25vbWUtcGhvdG9zL3BhdGNoZXMvdHJhY2tlcjMucGF0Y2gg fCA0MjU0ICsrKysrKysrKysrKysrKysrKysKIHNyY3BrZ3MvZ25vbWUtcGhvdG9zL3RlbXBsYXRl ICAgICAgICAgICAgICAgfCAgIDExICstCiAyIGZpbGVzIGNoYW5nZWQsIDQyNjAgaW5zZXJ0aW9u cygrKSwgNSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2dub21lLXBo b3Rvcy9wYXRjaGVzL3RyYWNrZXIzLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1w aG90b3MvcGF0Y2hlcy90cmFja2VyMy5wYXRjaCBiL3NyY3BrZ3MvZ25vbWUtcGhvdG9zL3BhdGNo ZXMvdHJhY2tlcjMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LjQwNmRjYTMwZmQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9nbm9tZS1waG90b3MvcGF0 Y2hlcy90cmFja2VyMy5wYXRjaApAQCAtMCwwICsxLDQyNTQgQEAKK0Zyb20gYjRhOGRlMWVmNzlj OTRjMWMxMWI3MzA3ODcxMDhmMzA1Yzk2MmUzOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206IFNhbSBUaHVyc2ZpZWxkIDxzYW1AYWZ1ZXJhLm1lLnVrPgorRGF0ZTogV2VkLCAyNiBBdWcg MjAyMCAwMTo1Nzo0NiArMDIwMAorU3ViamVjdDogW1BBVENIIDEvNF0gcGhvdG9zLXRyYWNrZXIt Y29udHJvbGxlcjogTGFiZWwgdW5pdCBvZiB0aW1pbmcKKyBtZWFzdXJlbWVudHMKKworT3RoZXJ3 aXNlLCBpdCdzIG5vdCBjbGVhciBpZiB0aGVzZSBhcmUgdGltaW5ncyBvciBzb21lIGtpbmQgb2Yg SUQKK251bWJlci4KKy0tLQorIHNyYy9waG90b3MtdHJhY2tlci1jb250cm9sbGVyLmMgfCA0ICsr LS0KKyAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQorCitk aWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy10cmFja2VyLWNvbnRyb2xsZXIuYyBiL3NyYy9waG90b3Mt dHJhY2tlci1jb250cm9sbGVyLmMKK2luZGV4IGEwMmRiMDc3Li4zYTYyY2YyZCAxMDA2NDQKKy0t LSBhL3NyYy9waG90b3MtdHJhY2tlci1jb250cm9sbGVyLmMKKysrKyBiL3NyYy9waG90b3MtdHJh Y2tlci1jb250cm9sbGVyLmMKK0BAIC0yMzcsNyArMjM3LDcgQEAgcGhvdG9zX3RyYWNrZXJfY29u dHJvbGxlcl9jdXJzb3JfbmV4dCAoR09iamVjdCAqc291cmNlX29iamVjdCwgR0FzeW5jUmVzdWx0 ICpyZXMKKyAgICAgfQorIAorICAgbm93ID0gZ19nZXRfbW9ub3RvbmljX3RpbWUgKCk7CistICBw aG90b3NfZGVidWcgKFBIT1RPU19ERUJVR19UUkFDS0VSLCAiUXVlcnkgQ3Vyc29yOiAlIiBHX0dJ TlQ2NF9GT1JNQVQsIChub3cgLSBwcml2LT5sYXN0X3F1ZXJ5X3RpbWUpIC8gMTAwMDAwMCk7Cisr ICBwaG90b3NfZGVidWcgKFBIT1RPU19ERUJVR19UUkFDS0VSLCAiUXVlcnkgQ3Vyc29yOiAlIiBH X0dJTlQ2NF9GT1JNQVQgIiBzZWNvbmRzIiwgKG5vdyAtIHByaXYtPmxhc3RfcXVlcnlfdGltZSkg LyAxMDAwMDAwKTsKKyAKKyAgIHBob3Rvc19pdGVtX21hbmFnZXJfYWRkX2l0ZW1fZm9yX21vZGUg KFBIT1RPU19JVEVNX01BTkFHRVIgKHByaXYtPml0ZW1fbW5nciksCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQSE9UT1NfVFJBQ0tFUl9DT05UUk9MTEVSX0dFVF9D TEFTUyAoc2VsZiktPmJhc2VfaXRlbV90eXBlLAorQEAgLTM0Niw3ICszNDYsNyBAQCBwaG90b3Nf dHJhY2tlcl9jb250cm9sbGVyX3NldF9xdWVyeV9zdGF0dXMgKFBob3Rvc1RyYWNrZXJDb250cm9s bGVyICpzZWxmLCBnYm9vbAorICAgZWxzZQorICAgICB7CisgICAgICAgcGhvdG9zX2RlYnVnIChQ SE9UT1NfREVCVUdfVFJBQ0tFUiwKKy0gICAgICAgICAgICAgICAgICAgICJRdWVyeSBFbGFwc2Vk OiAlIiBHX0dJTlQ2NF9GT1JNQVQsCisrICAgICAgICAgICAgICAgICAgICAiUXVlcnkgRWxhcHNl ZDogJSIgR19HSU5UNjRfRk9STUFUICIgc2Vjb25kcyIsCisgICAgICAgICAgICAgICAgICAgICAo bm93IC0gcHJpdi0+bGFzdF9xdWVyeV90aW1lKSAvIDEwMDAwMDApOworICAgICAgIHByaXYtPmxh c3RfcXVlcnlfdGltZSA9IDA7CisgICAgIH0KKy0tIAorR2l0TGFiCisKKworRnJvbSA3Yzk4YTg4 NGJhNmEyNjc5NWVhMjVhODc4MDAwMmFjMTAxMDM2ODg3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQorRnJvbTogU2FtIFRodXJzZmllbGQgPHNhbUBhZnVlcmEubWUudWs+CitEYXRlOiBXZWQsIDI3 IE1heSAyMDIwIDEzOjA3OjU4ICswMjAwCitTdWJqZWN0OiBbUEFUQ0ggMi80XSBGaXggYnVpbGQg ZmFpbHVyZSBkdWUgdG8gdW5kZWZpbmVkIE1fUEkgY29uc3RhbnQKKworVGhlIDxtYXRoLmg+IGhl YWRlciBuZWVkcyB0byBiZSBpbmNsdWRlZC4KKworUHJldmlvdXNseSBJIHN1cHBvc2UgbGlidHJh Y2tlci1zcGFycWwuaCBwdWxsZWQgdGhpcyBpbi4KKy0tLQorIHNyYy9waG90b3MtdXRpbHMuYyB8 IDEgKworIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQorCitkaWZmIC0tZ2l0IGEvc3Jj L3Bob3Rvcy11dGlscy5jIGIvc3JjL3Bob3Rvcy11dGlscy5jCitpbmRleCA0MDFmNTJiYS4uYzYz ODI5N2IgMTAwNjQ0CistLS0gYS9zcmMvcGhvdG9zLXV0aWxzLmMKKysrKyBiL3NyYy9waG90b3Mt dXRpbHMuYworQEAgLTMwLDYgKzMwLDcgQEAKKyAjaW5jbHVkZSA8Z2xpYi5oPgorICNpbmNsdWRl IDx0cmFja2VyLXNwYXJxbC5oPgorICNpbmNsdWRlIDxsaWJnZC9nZC5oPgorKyNpbmNsdWRlIDxt YXRoLmg+CisgCisgI2luY2x1ZGUgInBob3Rvcy1hcHBsaWNhdGlvbi5oIgorICNpbmNsdWRlICJw aG90b3MtZGV2aWNlLWl0ZW0uaCIKKy0tIAorR2l0TGFiCisKKworRnJvbSAwZTRiZDdiYmM4MDU2 NzQzYThlYTA3YWIzNzEzYWQ1NDNjMDBkNDc4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJv bTogU2FtIFRodXJzZmllbGQgPHNhbUBhZnVlcmEubWUudWs+CitEYXRlOiBTdW4sIDcgSnVuIDIw MjAgMjE6NTM6MjAgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAzLzRdIEdlbmVyYXRlIHF1ZXJpZXMg dXNpbmcgU1BBUlFMIHRlbXBsYXRlcworCitUaGUgY29kZSB0byBnZW5lcmF0ZSBTUEFSUUwgcXVl cmllcyB3YXMgc3BsaXQgYWNyb3NzIG1hbnkgZGlmZmVyZW50Citzb3VyY2UgZmlsZXMsIG1ha2lu ZyBpdCBkaWZmaWN1bHQgdG8gbWFrZSBiaWcgY2hhbmdlcy4gTm93IHRoZQorcXVlcmllcyBhcmUg d3JpdHRlbiBvdXQgYXMgdGVtcGxhdGVzIGFuZCB3ZSB1c2UgdGVtcGxhdGUgc3Vic3RpdHV0aW9u Cit0byBidWlsZCB0aGUgU1BBUlFMIHRoYXQgd2Ugc2VuZCB0byBUcmFja2VyLgorLS0tCisgc3Jj L21lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNSArCisgc3JjL3Bo b3Rvcy1iYXNlLW1hbmFnZXIuYyAgICAgICAgICAgICAgICAgICB8ICAxNSArKworIHNyYy9waG90 b3MtYmFzZS1tYW5hZ2VyLmggICAgICAgICAgICAgICAgICAgfCAgIDQgKworIHNyYy9waG90b3Mt ZmlsdGVyYWJsZS5jICAgICAgICAgICAgICAgICAgICAgfCAgIDggLQorIHNyYy9waG90b3MtZmls dGVyYWJsZS5oICAgICAgICAgICAgICAgICAgICAgfCAgIDMgLQorIHNyYy9waG90b3MtcXVlcnkt YnVpbGRlci5jICAgICAgICAgICAgICAgICAgfCAyMDcgKysrKysrKysrLS0tLS0tLS0tLS0KKyBz cmMvcGhvdG9zLXNlYXJjaC10eXBlLW1hbmFnZXIuYyAgICAgICAgICAgIHwgIDU5ICstLS0tLQor IHNyYy9waG90b3Mtc2VhcmNoLXR5cGUuYyAgICAgICAgICAgICAgICAgICAgfCAgNjcgKysrLS0t LQorIHNyYy9waG90b3Mtc2VhcmNoLXR5cGUuaCAgICAgICAgICAgICAgICAgICAgfCAgIDYgKy0K KyBzcmMvcGhvdG9zLXNwYXJxbC10ZW1wbGF0ZS5jICAgICAgICAgICAgICAgIHwgMTg3ICsrKysr KysrKysrKysrKysrKworIHNyYy9waG90b3Mtc3BhcnFsLXRlbXBsYXRlLmggICAgICAgICAgICAg ICAgfCAgMzggKysrKworIHNyYy9waG90b3MuZ3Jlc291cmNlLnhtbCAgICAgICAgICAgICAgICAg ICAgfCAgIDQgKworIHNyYy9xdWVyaWVzL2FsbC5zcGFycWwudGVtcGxhdGUgICAgICAgICAgICAg fCAgMzEgKysrCisgc3JjL3F1ZXJpZXMvY29sbGVjdGlvbnMuc3BhcnFsLnRlbXBsYXRlICAgICB8 ICAxNCArKworIHNyYy9xdWVyaWVzL2Zhdm9yaXRlLXBob3Rvcy5zcGFycWwudGVtcGxhdGUgfCAg MTIgKysKKyBzcmMvcXVlcmllcy9waG90b3Muc3BhcnFsLnRlbXBsYXRlICAgICAgICAgIHwgIDEx ICsrCisgMTYgZmlsZXMgY2hhbmdlZCwgNDQ2IGluc2VydGlvbnMoKyksIDIyNSBkZWxldGlvbnMo LSkKKyBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Bob3Rvcy1zcGFycWwtdGVtcGxhdGUuYworIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmMvcGhvdG9zLXNwYXJxbC10ZW1wbGF0ZS5oCisgY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyYy9xdWVyaWVzL2FsbC5zcGFycWwudGVtcGxhdGUKKyBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjL3F1ZXJpZXMvY29sbGVjdGlvbnMuc3BhcnFsLnRlbXBsYXRlCisgY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyYy9xdWVyaWVzL2Zhdm9yaXRlLXBob3Rvcy5zcGFycWwudGVtcGxhdGUKKyBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjL3F1ZXJpZXMvcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZQorCitk aWZmIC0tZ2l0IGEvc3JjL21lc29uLmJ1aWxkIGIvc3JjL21lc29uLmJ1aWxkCitpbmRleCA5OTE5 ZjBjZi4uYjViMjc1OWMgMTAwNjQ0CistLS0gYS9zcmMvbWVzb24uYnVpbGQKKysrKyBiL3NyYy9t ZXNvbi5idWlsZAorQEAgLTE5NSw2ICsxOTUsNyBAQCBzb3VyY2VzID0gY29tbW9uX3NvdXJjZXMg KyBmaWxlcygKKyAgICdwaG90b3Mtc291cmNlLmMnLAorICAgJ3Bob3Rvcy1zb3VyY2UtbWFuYWdl ci5jJywKKyAgICdwaG90b3Mtc291cmNlLW5vdGlmaWNhdGlvbi5jJywKKysgICdwaG90b3Mtc3Bh cnFsLXRlbXBsYXRlLmMnLAorICAgJ3Bob3Rvcy1zcGlubmVyLWJveC5jJywKKyAgICdwaG90b3Mt dGh1bWJuYWlsLWZhY3RvcnkuYycsCisgICAncGhvdG9zLXRvb2wuYycsCitAQCAtMjkwLDYgKzI5 MSwxMCBAQCByZXNvdXJjZV9kYXRhID0gZmlsZXMoCisgICAncGhvdG9zLXNlbGVjdGlvbi10b29s YmFyLnVpJywKKyAgICdwaG90b3Mtc2hhcmUtZGlhbG9nLnVpJywKKyAgICdwaG90b3Mtem9vbS1j b250cm9scy51aScsCisrICAncXVlcmllcy9hbGwuc3BhcnFsLnRlbXBsYXRlJywKKysgICdxdWVy aWVzL2NvbGxlY3Rpb25zLnNwYXJxbC50ZW1wbGF0ZScsCisrICAncXVlcmllcy9mYXZvcml0ZS1w aG90b3Muc3BhcnFsLnRlbXBsYXRlJywKKysgICdxdWVyaWVzL3Bob3Rvcy5zcGFycWwudGVtcGxh dGUnLAorICkKKyAKKyBzb3VyY2VzICs9IGdub21lLmNvbXBpbGVfcmVzb3VyY2VzKAorZGlmZiAt LWdpdCBhL3NyYy9waG90b3MtYmFzZS1tYW5hZ2VyLmMgYi9zcmMvcGhvdG9zLWJhc2UtbWFuYWdl ci5jCitpbmRleCBkNDlkMTlhNS4uMDUyNjM4ZDUgMTAwNjQ0CistLS0gYS9zcmMvcGhvdG9zLWJh c2UtbWFuYWdlci5jCisrKysgYi9zcmMvcGhvdG9zLWJhc2UtbWFuYWdlci5jCitAQCAtMjUwLDYg KzI1MCwxMiBAQCBwaG90b3NfYmFzZV9tYW5hZ2VyX2RlZmF1bHRfZ2V0X3doZXJlIChQaG90b3NC YXNlTWFuYWdlciAqc2VsZiwgZ2ludCBmbGFncykKKyB9CisgCisgCisrc3RhdGljIFBob3Rvc1Nw YXJxbFRlbXBsYXRlICoKKytwaG90b3NfYmFzZV9tYW5hZ2VyX2RlZmF1bHRfZ2V0X3NwYXJxbF90 ZW1wbGF0ZSAoUGhvdG9zQmFzZU1hbmFnZXIgKnNlbGYsIGdpbnQgZmxhZ3MpCisreworKyAgcmV0 dXJuIE5VTEw7CisrfQorKworIHN0YXRpYyB2b2lkCisgcGhvdG9zX2Jhc2VfbWFuYWdlcl9kZWZh dWx0X3JlbW92ZV9vYmplY3RfYnlfaWQgKFBob3Rvc0Jhc2VNYW5hZ2VyICpzZWxmLCBjb25zdCBn Y2hhciAqaWQpCisgeworQEAgLTQzOCw2ICs0NDQsNyBAQCBwaG90b3NfYmFzZV9tYW5hZ2VyX2Ns YXNzX2luaXQgKFBob3Rvc0Jhc2VNYW5hZ2VyQ2xhc3MgKmNsYXNzKQorICAgY2xhc3MtPmdldF9v YmplY3RfYnlfaWQgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2RlZmF1bHRfZ2V0X29iamVjdF9ieV9p ZDsKKyAgIGNsYXNzLT5nZXRfcHJldmlvdXNfb2JqZWN0ID0gcGhvdG9zX2Jhc2VfbWFuYWdlcl9k ZWZhdWx0X2dldF9wcmV2aW91c19vYmplY3Q7CisgICBjbGFzcy0+Z2V0X3doZXJlID0gcGhvdG9z X2Jhc2VfbWFuYWdlcl9kZWZhdWx0X2dldF93aGVyZTsKKysgIGNsYXNzLT5nZXRfc3BhcnFsX3Rl bXBsYXRlID0gcGhvdG9zX2Jhc2VfbWFuYWdlcl9kZWZhdWx0X2dldF9zcGFycWxfdGVtcGxhdGU7 CisgICBjbGFzcy0+cmVtb3ZlX29iamVjdF9ieV9pZCA9IHBob3Rvc19iYXNlX21hbmFnZXJfZGVm YXVsdF9yZW1vdmVfb2JqZWN0X2J5X2lkOworICAgY2xhc3MtPnNldF9hY3RpdmVfb2JqZWN0ID0g cGhvdG9zX2Jhc2VfbWFuYWdlcl9kZWZhdWx0X3NldF9hY3RpdmVfb2JqZWN0OworIAorQEAgLTcx NCw2ICs3MjEsMTQgQEAgcGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfd2hlcmUgKFBob3Rvc0Jhc2VN YW5hZ2VyICpzZWxmLCBnaW50IGZsYWdzKQorIH0KKyAKKyAKKytQaG90b3NTcGFycWxUZW1wbGF0 ZSAqCisrcGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfc3BhcnFsX3RlbXBsYXRlIChQaG90b3NCYXNl TWFuYWdlciAqc2VsZiwgZ2ludCBmbGFncykKKyt7CisrICBnX3JldHVybl92YWxfaWZfZmFpbCAo UEhPVE9TX0lTX0JBU0VfTUFOQUdFUiAoc2VsZiksIE5VTEwpOworKyAgcmV0dXJuIFBIT1RPU19C QVNFX01BTkFHRVJfR0VUX0NMQVNTIChzZWxmKS0+Z2V0X3NwYXJxbF90ZW1wbGF0ZSAoc2VsZiwg ZmxhZ3MpOworK30KKysKKysKKyB2b2lkCisgcGhvdG9zX2Jhc2VfbWFuYWdlcl9wcm9jZXNzX25l d19vYmplY3RzIChQaG90b3NCYXNlTWFuYWdlciAqc2VsZiwgR0hhc2hUYWJsZSAqbmV3X29iamVj dHMpCisgeworZGlmZiAtLWdpdCBhL3NyYy9waG90b3MtYmFzZS1tYW5hZ2VyLmggYi9zcmMvcGhv dG9zLWJhc2UtbWFuYWdlci5oCitpbmRleCA5OWQyMDNlOS4uMDRjZmE3ZGIgMTAwNjQ0CistLS0g YS9zcmMvcGhvdG9zLWJhc2UtbWFuYWdlci5oCisrKysgYi9zcmMvcGhvdG9zLWJhc2UtbWFuYWdl ci5oCitAQCAtMjQsNiArMjQsNyBAQAorICNkZWZpbmUgUEhPVE9TX0JBU0VfTUFOQUdFUl9ICisg CisgI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisrI2luY2x1ZGUgInBob3Rvcy1zcGFycWwtdGVt cGxhdGUuaCIKKyAKKyBHX0JFR0lOX0RFQ0xTCisgCitAQCAtNDYsNiArNDcsNyBAQCBzdHJ1Y3Qg X1Bob3Rvc0Jhc2VNYW5hZ2VyQ2xhc3MKKyAgIGdjaGFyICAgICAgICAgKigqZ2V0X3doZXJlKSAg ICAgICAgICAgICAgKFBob3Rvc0Jhc2VNYW5hZ2VyICpzZWxmLCBnaW50IGZsYWdzKTsKKyAgIHZv aWQgICAgICAgICAgICgqcmVtb3ZlX29iamVjdF9ieV9pZCkgICAgKFBob3Rvc0Jhc2VNYW5hZ2Vy ICpzZWxmLCBjb25zdCBnY2hhciAqaWQpOworICAgZ2Jvb2xlYW4gICAgICAgKCpzZXRfYWN0aXZl X29iamVjdCkgICAgICAoUGhvdG9zQmFzZU1hbmFnZXIgKnNlbGYsIEdPYmplY3QgKm9iamVjdCk7 CisrICBQaG90b3NTcGFycWxUZW1wbGF0ZSAqKCpnZXRfc3BhcnFsX3RlbXBsYXRlKSAoUGhvdG9z QmFzZU1hbmFnZXIgKnNlbGYsIGdpbnQgZmxhZ3MpOworIAorICAgLyogc2lnbmFscyAqLworICAg dm9pZCAgICAgICAgICAgKCphY3RpdmVfY2hhbmdlZCkgICAgICAgICAoUGhvdG9zQmFzZU1hbmFn ZXIgKnNlbGYsIEdPYmplY3QgKm9iamVjdCk7CitAQCAtODAsNiArODIsOCBAQCBjb25zdCBnY2hh ciAgICAgICAgKnBob3Rvc19iYXNlX21hbmFnZXJfZ2V0X3RpdGxlICAgICAgICAgICAgICAgIChQ aG90b3NCYXNlTWFuYQorIAorIGdjaGFyICAgICAgICAgICAgICAqcGhvdG9zX2Jhc2VfbWFuYWdl cl9nZXRfd2hlcmUgICAgICAgICAgICAgICAgKFBob3Rvc0Jhc2VNYW5hZ2VyICpzZWxmLCBnaW50 IGZsYWdzKTsKKyAKKytQaG90b3NTcGFycWxUZW1wbGF0ZSAqcGhvdG9zX2Jhc2VfbWFuYWdlcl9n ZXRfc3BhcnFsX3RlbXBsYXRlICAgIChQaG90b3NCYXNlTWFuYWdlciAqc2VsZiwgZ2ludCBmbGFn cyk7CisrCisgdm9pZCAgICAgICAgICAgICAgICBwaG90b3NfYmFzZV9tYW5hZ2VyX3Byb2Nlc3Nf bmV3X29iamVjdHMgICAgICAoUGhvdG9zQmFzZU1hbmFnZXIgKnNlbGYsIEdIYXNoVGFibGUgKm5l d19vYmplY3RzKTsKKyAKKyB2b2lkICAgICAgICAgICAgICAgIHBob3Rvc19iYXNlX21hbmFnZXJf cmVtb3ZlX29iamVjdCAgICAgICAgICAgIChQaG90b3NCYXNlTWFuYWdlciAqc2VsZiwgR09iamVj dCAqb2JqZWN0KTsKK2RpZmYgLS1naXQgYS9zcmMvcGhvdG9zLWZpbHRlcmFibGUuYyBiL3NyYy9w aG90b3MtZmlsdGVyYWJsZS5jCitpbmRleCAzNjFiMWMyOS4uYWFhNDEwOWMgMTAwNjQ0CistLS0g YS9zcmMvcGhvdG9zLWZpbHRlcmFibGUuYworKysrIGIvc3JjL3Bob3Rvcy1maWx0ZXJhYmxlLmMK K0BAIC02OSwxNCArNjksNiBAQCBwaG90b3NfZmlsdGVyYWJsZV9nZXRfaWQgKFBob3Rvc0ZpbHRl cmFibGUgKnNlbGYpCisgfQorIAorIAorLWdjaGFyICoKKy1waG90b3NfZmlsdGVyYWJsZV9nZXRf d2hlcmUgKFBob3Rvc0ZpbHRlcmFibGUgKnNlbGYpCisteworLSAgZ19yZXR1cm5fdmFsX2lmX2Zh aWwgKFBIT1RPU19JU19GSUxURVJBQkxFIChzZWxmKSwgTlVMTCk7CistICByZXR1cm4gUEhPVE9T X0ZJTFRFUkFCTEVfR0VUX0lGQUNFIChzZWxmKS0+Z2V0X3doZXJlIChzZWxmKTsKKy19CistCist CisgZ2Jvb2xlYW4KKyBwaG90b3NfZmlsdGVyYWJsZV9pc19zZWFyY2hfY3JpdGVyaW9uIChQaG90 b3NGaWx0ZXJhYmxlICpzZWxmKQorIHsKK2RpZmYgLS1naXQgYS9zcmMvcGhvdG9zLWZpbHRlcmFi bGUuaCBiL3NyYy9waG90b3MtZmlsdGVyYWJsZS5oCitpbmRleCBlNzY4YmNhMC4uOGEzNDE1ZmMg MTAwNjQ0CistLS0gYS9zcmMvcGhvdG9zLWZpbHRlcmFibGUuaAorKysrIGIvc3JjL3Bob3Rvcy1m aWx0ZXJhYmxlLmgKK0BAIC0zNyw3ICszNyw2IEBAIHN0cnVjdCBfUGhvdG9zRmlsdGVyYWJsZUlu dGVyZmFjZQorICAgZ2Jvb2xlYW4gKCpnZXRfYnVpbHRpbikgKFBob3Rvc0ZpbHRlcmFibGUgKnNl bGYpOworICAgZ2NoYXIgKigqZ2V0X2ZpbHRlcikgKFBob3Rvc0ZpbHRlcmFibGUgKnNlbGYpOwor ICAgY29uc3QgZ2NoYXIgKigqZ2V0X2lkKSAoUGhvdG9zRmlsdGVyYWJsZSAqc2VsZik7CistICBn Y2hhciAqKCpnZXRfd2hlcmUpIChQaG90b3NGaWx0ZXJhYmxlICpzZWxmKTsKKyAgIGdib29sZWFu ICgqaXNfc2VhcmNoX2NyaXRlcmlvbikgKFBob3Rvc0ZpbHRlcmFibGUgKnNlbGYpOworIH07Cisg CitAQCAtNDcsOCArNDYsNiBAQCBnY2hhciAgICAgICAgICAgICAgKnBob3Rvc19maWx0ZXJhYmxl X2dldF9maWx0ZXIgICAgICAgICAoUGhvdG9zRmlsdGVyYWJsZSAqc2VsZgorIAorIGNvbnN0IGdj aGFyICAgICAgICAqcGhvdG9zX2ZpbHRlcmFibGVfZ2V0X2lkICAgICAgICAgICAgIChQaG90b3NG aWx0ZXJhYmxlICpzZWxmKTsKKyAKKy1nY2hhciAgICAgICAgICAgICAgKnBob3Rvc19maWx0ZXJh YmxlX2dldF93aGVyZSAgICAgICAgICAoUGhvdG9zRmlsdGVyYWJsZSAqc2VsZik7CistCisgZ2Jv b2xlYW4gICAgICAgICAgICBwaG90b3NfZmlsdGVyYWJsZV9pc19zZWFyY2hfY3JpdGVyaW9uICAo UGhvdG9zRmlsdGVyYWJsZSAqc2VsZik7CisgCisgR19FTkRfREVDTFMKK2RpZmYgLS1naXQgYS9z cmMvcGhvdG9zLXF1ZXJ5LWJ1aWxkZXIuYyBiL3NyYy9waG90b3MtcXVlcnktYnVpbGRlci5jCitp bmRleCA2Yjk5NjgxMS4uZTA3MzViZGUgMTAwNjQ0CistLS0gYS9zcmMvcGhvdG9zLXF1ZXJ5LWJ1 aWxkZXIuYworKysrIGIvc3JjL3Bob3Rvcy1xdWVyeS1idWlsZGVyLmMKK0BAIC0yNiwxMTIgKzI2 LDc2IEBACisgI2luY2x1ZGUgPHN0cmluZy5oPgorIAorICNpbmNsdWRlICJwaG90b3MtYmFzZS1t YW5hZ2VyLmgiCisrI2luY2x1ZGUgInBob3Rvcy1xdWVyeS5oIgorICNpbmNsdWRlICJwaG90b3Mt cXVlcnktYnVpbGRlci5oIgorICNpbmNsdWRlICJwaG90b3Mtc2VhcmNoLXR5cGUuaCIKKyAjaW5j bHVkZSAicGhvdG9zLXNvdXJjZS1tYW5hZ2VyLmgiCisgI2luY2x1ZGUgInBob3Rvcy1zZWFyY2gt bWF0Y2gtbWFuYWdlci5oIgorICNpbmNsdWRlICJwaG90b3Mtc2VhcmNoLXR5cGUtbWFuYWdlci5o IgorIAorKyNkZWZpbmUgUEhPVE9TX1FVRVJZX0NPTExFQ1RJT05TX0lERU5USUZJRVIgInBob3Rv czpjb2xsZWN0aW9uOiIKKysjZGVmaW5lIFBIT1RPU19RVUVSWV9MT0NBTF9DT0xMRUNUSU9OU19J REVOVElGSUVSICJwaG90b3M6Y29sbGVjdGlvbjpsb2NhbDoiCisgCistc3RhdGljIGdjaGFyICoK Ky1waG90b3NfcXVlcnlfYnVpbGRlcl9maWx0ZXIgKFBob3Rvc1NlYXJjaENvbnRleHRTdGF0ZSAq c3RhdGUsIGdpbnQgZmxhZ3MpCisteworLSAgZ2NoYXIgKnNwYXJxbDsKKy0gIGdfYXV0b2ZyZWUg Z2NoYXIgKnNyY19tbmdyX2ZpbHRlciA9IE5VTEw7CistICBnX2F1dG9mcmVlIGdjaGFyICpzcmNo X210Y2hfbW5ncl9maWx0ZXIgPSBOVUxMOworLSAgZ19hdXRvZnJlZSBnY2hhciAqc3JjaF90eXBf bW5ncl9maWx0ZXIgPSBOVUxMOworK2NvbnN0IGdjaGFyICpjb2xsZWN0aW9uc19kZWZhdWx0X2Zp bHRlciA9IFwKKysgICIoZm46c3RhcnRzLXdpdGggKG5hbzppZGVudGlmaWVyICg/dXJuKSwgJyIg UEhPVE9TX1FVRVJZX0NPTExFQ1RJT05TX0lERU5USUZJRVIgIicpIgorKyAgIiAgIHx8ICg/dXJu ID0gbmZvOmltYWdlLWNhdGVnb3J5LXNjcmVlbnNob3QpKSI7CisgCistICBzcmNfbW5ncl9maWx0 ZXIgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF9maWx0ZXIgKHN0YXRlLT5zcmNfbW5nciwgZmxh Z3MpOworLSAgc3JjaF9tdGNoX21uZ3JfZmlsdGVyID0gcGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRf ZmlsdGVyIChzdGF0ZS0+c3JjaF9tdGNoX21uZ3IsIGZsYWdzKTsKKy0gIHNyY2hfdHlwX21uZ3Jf ZmlsdGVyID0gcGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfZmlsdGVyIChzdGF0ZS0+c3JjaF90eXBf bW5nciwgZmxhZ3MpOworIAorLSAgc3BhcnFsID0gZ19zdHJkdXBfcHJpbnRmICgiRklMVEVSICgl cyAmJiAlcyAmJiAlcykiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmNfbW5ncl9m aWx0ZXIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY2hfbXRjaF9tbmdyX2ZpbHRl ciwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjaF90eXBfbW5ncl9maWx0ZXIpOwor LQorLSAgcmV0dXJuIHNwYXJxbDsKKy19CisrLyogVGhpcyBpbmNsdWRlcyBtaW1ldHlwZSBibG9j a2xpc3QgKi8KKytjb25zdCBnY2hhciAqcGhvdG9zX2RlZmF1bHRfZmlsdGVyID0gXAorKyAgIihu aWU6bWltZVR5cGUoP3VybikgIT0gJ2ltYWdlL2dpZicgJiYgbmllOm1pbWVUeXBlKD91cm4pICE9 ICdpbWFnZS94LWVwcycpIjsKKyAKKyAKKyBzdGF0aWMgZ2NoYXIgKgorLXBob3Rvc19xdWVyeV9i dWlsZGVyX29wdGlvbmFsICh2b2lkKQorLXsKKy0gIHJldHVybiBnX3N0cmR1cCAoIk9QVElPTkFM IHsgP3VybiBuY286Y3JlYXRvciA/Y3JlYXRvciAuIH0gIgorLSAgICAgICAgICAgICAgICAgICAi T1BUSU9OQUwgeyA/dXJuIG5jbzpwdWJsaXNoZXIgP3B1Ymxpc2hlciAuIH0iKTsKKy19CistCist Cistc3RhdGljIGdjaGFyICoKKy1waG90b3NfcXVlcnlfYnVpbGRlcl9pbm5lcl93aGVyZSAoUGhv dG9zU2VhcmNoQ29udGV4dFN0YXRlICpzdGF0ZSwgZ2Jvb2xlYW4gZ2xvYmFsLCBnaW50IGZsYWdz KQorK3Bob3Rvc19xdWVyeV9idWlsZGVyX3F1ZXJ5IChQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUg KnN0YXRlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiBnbG9iYWwsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpbnQgZmxhZ3MsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBob3Rvc09mZnNldENvbnRyb2xsZXIgKm9mZnNldF9jbnRybHIpCisgewor LSAgZ19hdXRvZnJlZSBnY2hhciAqaXRlbV9tbmdyX3doZXJlID0gTlVMTDsKKysgIFBob3Rvc1Nw YXJxbFRlbXBsYXRlICp0ZW1wbGF0ZTsKKysgIGNvbnN0IGdjaGFyICpwcm9qZWN0aW9uID0gTlVM TDsKKysgIGdfYXV0b2ZyZWUgZ2NoYXIgKml0ZW1fcGF0dGVybiA9IE5VTEw7CisrICBnX2F1dG9m cmVlIGdjaGFyICpzZWFyY2hfZmlsdGVyID0gTlVMTDsKKysgIGdfYXV0b2ZyZWUgZ2NoYXIgKnNv dXJjZV9maWx0ZXIgPSBOVUxMOworKyAgY29uc3QgZ2NoYXIgKm9yZGVyID0gTlVMTDsKKysgIGdf YXV0b2ZyZWUgZ2NoYXIgKm9mZnNldF9saW1pdCA9IE5VTEw7CisgICBnY2hhciAqc3BhcnFsOwor LSAgZ19hdXRvZnJlZSBnY2hhciAqc3JjaF90eXBfbW5ncl93aGVyZSA9IE5VTEw7CisgCistICBz cmNoX3R5cF9tbmdyX3doZXJlID0gcGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfd2hlcmUgKHN0YXRl LT5zcmNoX3R5cF9tbmdyLCBmbGFncyk7CisrICB0ZW1wbGF0ZSA9IHBob3Rvc19iYXNlX21hbmFn ZXJfZ2V0X3NwYXJxbF90ZW1wbGF0ZSAoc3RhdGUtPnNyY2hfdHlwX21uZ3IsIGZsYWdzKTsKKysK KysgIHByb2plY3Rpb24gPSAiP3VybiAiCisrICAgICAgICAgICAgICAgIm5pZTp1cmwgKD91cm4p ICIKKysgICAgICAgICAgICAgICAibmZvOmZpbGVOYW1lICg/dXJuKSAiCisrICAgICAgICAgICAg ICAgIm5pZTptaW1lVHlwZSAoP3VybikgIgorKyAgICAgICAgICAgICAgICJuaWU6dGl0bGUgKD91 cm4pICIKKysgICAgICAgICAgICAgICAidHJhY2tlcjpjb2FsZXNjZSAobmNvOmZ1bGxuYW1lICg/ Y3JlYXRvciksIG5jbzpmdWxsbmFtZSAoP3B1Ymxpc2hlciksICcnKSAiCisrICAgICAgICAgICAg ICAgInRyYWNrZXI6Y29hbGVzY2UgKG5mbzpmaWxlTGFzdE1vZGlmaWVkICg/dXJuKSwgbmllOmNv bnRlbnRMYXN0TW9kaWZpZWQgKD91cm4pKSBBUyA/bXRpbWUgIgorKyAgICAgICAgICAgICAgICJu YW86aWRlbnRpZmllciAoP3VybikgIgorKyAgICAgICAgICAgICAgICJyZGY6dHlwZSAoP3Vybikg IgorKyAgICAgICAgICAgICAgICJuaWU6ZGF0YVNvdXJjZSg/dXJuKSAiCisrICAgICAgICAgICAg ICAgIiggRVhJU1RTIHsgP3VybiBuYW86aGFzVGFnIG5hbzpwcmVkZWZpbmVkLXRhZy1mYXZvcml0 ZSB9ICkgIgorKyAgICAgICAgICAgICAgICIoIEVYSVNUUyB7ID91cm4gbmNvOmNvbnRyaWJ1dG9y ID9jb250cmlidXRvciBGSUxURVIgKCA/Y29udHJpYnV0b3IgIT0gP2NyZWF0b3IgKSB9ICkgIgor KyAgICAgICAgICAgICAgICJ0cmFja2VyOmNvYWxlc2NlKG5mbzpmaWxlQ3JlYXRlZCAoP3Vybiks IG5pZTpjb250ZW50Q3JlYXRlZCAoP3VybikpICIKKysgICAgICAgICAgICAgICAibmZvOndpZHRo ICg/dXJuKSAiCisrICAgICAgICAgICAgICAgIm5mbzpoZWlnaHQgKD91cm4pICIKKysgICAgICAg ICAgICAgICAibmZvOmVxdWlwbWVudCAoP3VybikgIgorKyAgICAgICAgICAgICAgICJuZm86b3Jp ZW50YXRpb24gKD91cm4pICIKKysgICAgICAgICAgICAgICAibm1tOmV4cG9zdXJlVGltZSAoP3Vy bikgIgorKyAgICAgICAgICAgICAgICJubW06Zm51bWJlciAoP3VybikgIgorKyAgICAgICAgICAg ICAgICJubW06Zm9jYWxMZW5ndGggKD91cm4pICIKKysgICAgICAgICAgICAgICAibm1tOmlzb1Nw ZWVkICg/dXJuKSAiCisrICAgICAgICAgICAgICAgIm5tbTpmbGFzaCAoP3VybikgIgorKyAgICAg ICAgICAgICAgICJzbG86bG9jYXRpb24gKD91cm4pICI7CisrCisrICBpdGVtX3BhdHRlcm4gPSBw aG90b3NfYmFzZV9tYW5hZ2VyX2dldF93aGVyZSAoc3RhdGUtPml0ZW1fbW5nciwgZmxhZ3MpOwor IAorICAgaWYgKCEoZmxhZ3MgJiBQSE9UT1NfUVVFUllfRkxBR1NfVU5GSUxURVJFRCkpCisgICAg IHsKKy0gICAgICBpZiAoZ2xvYmFsKQorLSAgICAgICAgeworLSAgICAgICAgICAvKiBUT0RPOiBT ZWFyY2hDYXRlZ29yeU1hbmFnZXIgKi8KKy0KKy0gICAgICAgICAgaXRlbV9tbmdyX3doZXJlID0g cGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfd2hlcmUgKHN0YXRlLT5pdGVtX21uZ3IsIGZsYWdzKTsK Ky0gICAgICAgIH0KKysgICAgICBzb3VyY2VfZmlsdGVyID0gcGhvdG9zX2Jhc2VfbWFuYWdlcl9n ZXRfZmlsdGVyIChzdGF0ZS0+c3JjX21uZ3IsIGZsYWdzKTsKKysgICAgICBzZWFyY2hfZmlsdGVy ID0gcGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfZmlsdGVyIChzdGF0ZS0+c3JjaF9tdGNoX21uZ3Is IGZsYWdzKTsKKyAgICAgfQorIAorLSAgc3BhcnFsID0gZ19zdHJkdXBfcHJpbnRmICgiV0hFUkUg eyAlcyAlcyB9IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjaF90eXBfbW5ncl93 aGVyZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGl0ZW1fbW5ncl93aGVyZSAhPSBO VUxMKSA/IGl0ZW1fbW5ncl93aGVyZSA6ICIiKTsKKy0KKy0gIHJldHVybiBzcGFycWw7CistfQor LQorLQorLXN0YXRpYyBnY2hhciAqCistcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfd2hlcmUgKFBob3Rv c1NlYXJjaENvbnRleHRTdGF0ZSAqc3RhdGUsIGdib29sZWFuIGdsb2JhbCwgZ2ludCBmbGFncykK Ky17CistICBjb25zdCBnY2hhciAqY291bnRfaXRlbXMgPSAiQ09VTlQgKD9pdGVtKSBBUyA/Y291 bnQiOworLSAgZ2Jvb2xlYW4gaXRlbV9kZWZpbmVkOworLSAgZ19hdXRvZnJlZSBnY2hhciAqZmls dGVyID0gTlVMTDsKKy0gIGdfYXV0b2ZyZWUgZ2NoYXIgKm9wdGlvbmFsID0gTlVMTDsKKy0gIGdj aGFyICpzcGFycWw7CistICBnX2F1dG9mcmVlIGdjaGFyICp3aGVyZV9zcGFycWwgPSBOVUxMOwor LQorLSAgd2hlcmVfc3BhcnFsID0gcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfaW5uZXJfd2hlcmUgKHN0 YXRlLCBnbG9iYWwsIGZsYWdzKTsKKy0gIGl0ZW1fZGVmaW5lZCA9IHN0cnN0ciAod2hlcmVfc3Bh cnFsLCAiP2l0ZW0iKSAhPSBOVUxMOworLQorLSAgb3B0aW9uYWwgPSBwaG90b3NfcXVlcnlfYnVp bGRlcl9vcHRpb25hbCAoKTsKKy0KKy0gIGlmICghKGZsYWdzICYgUEhPVE9TX1FVRVJZX0ZMQUdT X1VORklMVEVSRUQpKQorLSAgICBmaWx0ZXIgPSBwaG90b3NfcXVlcnlfYnVpbGRlcl9maWx0ZXIg KHN0YXRlLCBmbGFncyk7CistCistICBzcGFycWwgPSBnX3N0cmR1cF9wcmludGYgKCJXSEVSRSB7 eyIKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICBTRUxFQ1QgP3VybiByZGY6dHlw ZSAoP3VybikgQVMgP3R5cGUgJXMgJXMgR1JPVVAgQlkgKD91cm4pIgorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiICB9IgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAlcyAl cyIKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIn0iLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpdGVtX2RlZmluZWQgPyBjb3VudF9pdGVtcyA6ICIiLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICB3aGVyZV9zcGFycWwsCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG9wdGlvbmFsLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmlsdGVyICE9IE5V TEwpID8gZmlsdGVyIDogIiIpOworLQorLSAgcmV0dXJuIHNwYXJxbDsKKy19CistCistCistc3Rh dGljIGdjaGFyICoKKy1waG90b3NfcXVlcnlfYnVpbGRlcl9xdWVyeSAoUGhvdG9zU2VhcmNoQ29u dGV4dFN0YXRlICpzdGF0ZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4g Z2xvYmFsLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaW50IGZsYWdzLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQaG90b3NPZmZzZXRDb250cm9sbGVyICpvZmZzZXRfY250 cmxyKQorLXsKKy0gIGdjaGFyICpzcGFycWw7CistICBnX2F1dG9mcmVlIGdjaGFyICp0YWlsX3Nw YXJxbCA9IE5VTEw7CistICBnX2F1dG9mcmVlIGdjaGFyICp3aGVyZV9zcGFycWwgPSBOVUxMOwor LQorLSAgd2hlcmVfc3BhcnFsID0gcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfd2hlcmUgKHN0YXRlLCBn bG9iYWwsIGZsYWdzKTsKKysgIG9yZGVyID0gIk9SREVSIEJZIERFU0MgKD9tdGltZSkiOworIAor ICAgaWYgKGdsb2JhbCAmJiAoZmxhZ3MgJiBQSE9UT1NfUVVFUllfRkxBR1NfVU5MSU1JVEVEKSA9 PSAwKQorICAgICB7CitAQCAtMTQ0LDM1ICsxMDgsMTkgQEAgcGhvdG9zX3F1ZXJ5X2J1aWxkZXJf cXVlcnkgKFBob3Rvc1NlYXJjaENvbnRleHRTdGF0ZSAqc3RhdGUsCisgICAgICAgICAgIHN0ZXAg PSBwaG90b3Nfb2Zmc2V0X2NvbnRyb2xsZXJfZ2V0X3N0ZXAgKG9mZnNldF9jbnRybHIpOworICAg ICAgICAgfQorIAorLSAgICAgIHRhaWxfc3BhcnFsID0gZ19zdHJkdXBfcHJpbnRmICgiT1JERVIg QlkgREVTQyAoP210aW1lKSBMSU1JVCAlZCBPRkZTRVQgJWQiLCBzdGVwLCBvZmZzZXQpOworKyAg ICAgIG9mZnNldF9saW1pdCA9IGdfc3RyZHVwX3ByaW50ZiAoIkxJTUlUICVkIE9GRlNFVCAlZCIs IHN0ZXAsIG9mZnNldCk7CisgICAgIH0KKyAKKy0gIHNwYXJxbCA9IGdfc3RyY29uY2F0ICgiU0VM RUNUID91cm4gIgorLSAgICAgICAgICAgICAgICAgICAgICAgICJuaWU6dXJsICg/dXJuKSAiCist ICAgICAgICAgICAgICAgICAgICAgICAgIm5mbzpmaWxlTmFtZSAoP3VybikgIgorLSAgICAgICAg ICAgICAgICAgICAgICAgICJuaWU6bWltZVR5cGUgKD91cm4pICIKKy0gICAgICAgICAgICAgICAg ICAgICAgICAibmllOnRpdGxlICg/dXJuKSAiCistICAgICAgICAgICAgICAgICAgICAgICAgInRy YWNrZXI6Y29hbGVzY2UgKG5jbzpmdWxsbmFtZSAoP2NyZWF0b3IpLCBuY286ZnVsbG5hbWUgKD9w dWJsaXNoZXIpLCAnJykgIgorLSAgICAgICAgICAgICAgICAgICAgICAgICJ0cmFja2VyOmNvYWxl c2NlIChuZm86ZmlsZUxhc3RNb2RpZmllZCAoP3VybiksIG5pZTpjb250ZW50TGFzdE1vZGlmaWVk ICg/dXJuKSkgQVMgP210aW1lICIKKy0gICAgICAgICAgICAgICAgICAgICAgICAibmFvOmlkZW50 aWZpZXIgKD91cm4pICIKKy0gICAgICAgICAgICAgICAgICAgICAgICAicmRmOnR5cGUgKD91cm4p ICIKKy0gICAgICAgICAgICAgICAgICAgICAgICAibmllOmRhdGFTb3VyY2UoP3VybikgIgorLSAg ICAgICAgICAgICAgICAgICAgICAgICIoIEVYSVNUUyB7ID91cm4gbmFvOmhhc1RhZyBuYW86cHJl ZGVmaW5lZC10YWctZmF2b3JpdGUgfSApICIKKy0gICAgICAgICAgICAgICAgICAgICAgICAiKCBF WElTVFMgeyA/dXJuIG5jbzpjb250cmlidXRvciA/Y29udHJpYnV0b3IgRklMVEVSICggP2NvbnRy aWJ1dG9yICE9ID9jcmVhdG9yICkgfSApICIKKy0gICAgICAgICAgICAgICAgICAgICAgICAidHJh Y2tlcjpjb2FsZXNjZShuZm86ZmlsZUNyZWF0ZWQgKD91cm4pLCBuaWU6Y29udGVudENyZWF0ZWQg KD91cm4pKSAiCistICAgICAgICAgICAgICAgICAgICAgICAgIm5mbzp3aWR0aCAoP3VybikgIgor LSAgICAgICAgICAgICAgICAgICAgICAgICJuZm86aGVpZ2h0ICg/dXJuKSAiCistICAgICAgICAg ICAgICAgICAgICAgICAgIm5mbzplcXVpcG1lbnQgKD91cm4pICIKKy0gICAgICAgICAgICAgICAg ICAgICAgICAibmZvOm9yaWVudGF0aW9uICg/dXJuKSAiCistICAgICAgICAgICAgICAgICAgICAg ICAgIm5tbTpleHBvc3VyZVRpbWUgKD91cm4pICIKKy0gICAgICAgICAgICAgICAgICAgICAgICAi bm1tOmZudW1iZXIgKD91cm4pICIKKy0gICAgICAgICAgICAgICAgICAgICAgICAibm1tOmZvY2Fs TGVuZ3RoICg/dXJuKSAiCistICAgICAgICAgICAgICAgICAgICAgICAgIm5tbTppc29TcGVlZCAo P3VybikgIgorLSAgICAgICAgICAgICAgICAgICAgICAgICJubW06Zmxhc2ggKD91cm4pICIKKy0g ICAgICAgICAgICAgICAgICAgICAgICAic2xvOmxvY2F0aW9uICg/dXJuKSAiLAorLSAgICAgICAg ICAgICAgICAgICAgICAgIHdoZXJlX3NwYXJxbCwKKy0gICAgICAgICAgICAgICAgICAgICAgICB0 YWlsX3NwYXJxbCwKKy0gICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKysgIHNwYXJxbCA9 IHBob3Rvc19zcGFycWxfdGVtcGxhdGVfZ2V0X3NwYXJxbCAodGVtcGxhdGUsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcm9qZWN0aW9uIiwgcHJvamVj dGlvbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNv bGxlY3Rpb25zX2RlZmF1bHRfZmlsdGVyIiwgY29sbGVjdGlvbnNfZGVmYXVsdF9maWx0ZXIsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpdGVtX3BhdHRl cm4iLCBpdGVtX3BhdHRlcm4sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJwaG90b3NfZGVmYXVsdF9maWx0ZXIiLCBwaG90b3NfZGVmYXVsdF9maWx0ZXIs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzb3VyY2Vf ZmlsdGVyIiwgc291cmNlX2ZpbHRlciA/IHNvdXJjZV9maWx0ZXIgOiAiIiwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNlYXJjaF9maWx0ZXIiLCBzZWFy Y2hfZmlsdGVyID8gc2VhcmNoX2ZpbHRlciA6ICIiLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAib3JkZXIiLCBvcmRlciwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9mZnNldF9saW1pdCIsIG9mZnNldF9saW1p dCA/IG9mZnNldF9saW1pdCA6ICIiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBOVUxMKTsKKyAKKyAgIHJldHVybiBzcGFycWw7CisgfQorQEAgLTIzMSwx MiArMTc5LDM3IEBAIHBob3Rvc19xdWVyeV9idWlsZGVyX2NvbGxlY3Rpb25faWNvbl9xdWVyeSAo UGhvdG9zU2VhcmNoQ29udGV4dFN0YXRlICpzdGF0ZSwgY29uCisgUGhvdG9zUXVlcnkgKgorIHBo b3Rvc19xdWVyeV9idWlsZGVyX2NvdW50X3F1ZXJ5IChQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUg KnN0YXRlLCBnaW50IGZsYWdzKQorIHsKKy0gIFBob3Rvc1F1ZXJ5ICpxdWVyeTsKKysgIFBob3Rv c1NwYXJxbFRlbXBsYXRlICp0ZW1wbGF0ZTsKKysgIGNvbnN0IGdjaGFyICpwcm9qZWN0aW9uID0g TlVMTDsKKysgIGdfYXV0b2ZyZWUgZ2NoYXIgKml0ZW1fcGF0dGVybiA9IE5VTEw7CisrICBnX2F1 dG9mcmVlIGdjaGFyICpzZWFyY2hfZmlsdGVyID0gTlVMTDsKKysgIGdfYXV0b2ZyZWUgZ2NoYXIg KnNvdXJjZV9maWx0ZXIgPSBOVUxMOworICAgZ19hdXRvZnJlZSBnY2hhciAqc3BhcnFsID0gTlVM TDsKKy0gIGdfYXV0b2ZyZWUgZ2NoYXIgKndoZXJlX3NwYXJxbCA9IE5VTEw7CisrICBQaG90b3NR dWVyeSAqcXVlcnk7CisrCisrICB0ZW1wbGF0ZSA9IHBob3Rvc19iYXNlX21hbmFnZXJfZ2V0X3Nw YXJxbF90ZW1wbGF0ZSAoc3RhdGUtPnNyY2hfdHlwX21uZ3IsIGZsYWdzKTsKKysKKysgIHByb2pl Y3Rpb24gPSAiQ09VTlQoP3VybikgIjsKKysKKysgIGl0ZW1fcGF0dGVybiA9IHBob3Rvc19iYXNl X21hbmFnZXJfZ2V0X3doZXJlIChzdGF0ZS0+aXRlbV9tbmdyLCBmbGFncyk7CisrCisrICBpZiAo ISAoZmxhZ3MgJiBQSE9UT1NfUVVFUllfRkxBR1NfVU5GSUxURVJFRCkpCisrICAgIHsKKysgICAg ICBzb3VyY2VfZmlsdGVyID0gcGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfZmlsdGVyIChzdGF0ZS0+ c3JjX21uZ3IsIGZsYWdzKTsKKysgICAgICBzZWFyY2hfZmlsdGVyID0gcGhvdG9zX2Jhc2VfbWFu YWdlcl9nZXRfZmlsdGVyIChzdGF0ZS0+c3JjaF9tdGNoX21uZ3IsIGZsYWdzKTsKKysgICAgfQor KworKyAgc3BhcnFsID0gcGhvdG9zX3NwYXJxbF90ZW1wbGF0ZV9nZXRfc3BhcnFsICh0ZW1wbGF0 ZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInByb2pl Y3Rpb24iLCBwcm9qZWN0aW9uLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiY29sbGVjdGlvbnNfZGVmYXVsdF9maWx0ZXIiLCBjb2xsZWN0aW9uc19kZWZh dWx0X2ZpbHRlciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIml0ZW1fcGF0dGVybiIsIGl0ZW1fcGF0dGVybiwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgInBob3Rvc19kZWZhdWx0X2ZpbHRlciIsIHBob3Rvc19k ZWZhdWx0X2ZpbHRlciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgInNvdXJjZV9maWx0ZXIiLCBzb3VyY2VfZmlsdGVyID8gc291cmNlX2ZpbHRlciA6ICIi LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2VhcmNo X2ZpbHRlciIsIHNlYXJjaF9maWx0ZXIgPyBzZWFyY2hfZmlsdGVyIDogIiIsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvcmRlciIsICIiLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib2Zmc2V0X2xpbWl0Iiwg IiIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwp OworIAorLSAgd2hlcmVfc3BhcnFsID0gcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfd2hlcmUgKHN0YXRl LCBUUlVFLCBmbGFncyk7CistICBzcGFycWwgPSBnX3N0cmNvbmNhdCAoIlNFTEVDVCBESVNUSU5D VCBDT1VOVCg/dXJuKSAiLCB3aGVyZV9zcGFycWwsIE5VTEwpOworICAgcXVlcnkgPSBwaG90b3Nf cXVlcnlfbmV3IChzdGF0ZSwgc3BhcnFsKTsKKyAKKyAgIHJldHVybiBxdWVyeTsKK2RpZmYgLS1n aXQgYS9zcmMvcGhvdG9zLXNlYXJjaC10eXBlLW1hbmFnZXIuYyBiL3NyYy9waG90b3Mtc2VhcmNo LXR5cGUtbWFuYWdlci5jCitpbmRleCA4N2Y0NDFlZC4uNWM4N2Q0YTQgMTAwNjQ0CistLS0gYS9z cmMvcGhvdG9zLXNlYXJjaC10eXBlLW1hbmFnZXIuYworKysrIGIvc3JjL3Bob3Rvcy1zZWFyY2gt dHlwZS1tYW5hZ2VyLmMKK0BAIC00MSwxMyArNDEsNiBAQCBzdHJ1Y3QgX1Bob3Rvc1NlYXJjaFR5 cGVNYW5hZ2VyCisgR19ERUZJTkVfVFlQRSAoUGhvdG9zU2VhcmNoVHlwZU1hbmFnZXIsIHBob3Rv c19zZWFyY2hfdHlwZV9tYW5hZ2VyLCBQSE9UT1NfVFlQRV9CQVNFX01BTkFHRVIpOworIAorIAor LXN0YXRpYyBjb25zdCBnY2hhciAqQkxBQ0tMSVNURURfTUlNRV9UWVBFU1tdID0KKy17CistICAi aW1hZ2UvZ2lmIiwKKy0gICJpbWFnZS94LWVwcyIKKy19OworLQorLQorIHN0YXRpYyBnY2hhciAq CisgcGhvdG9zX3NlYXJjaF90eXBlX21hbmFnZXJfZ2V0X2ZpbHRlciAoUGhvdG9zQmFzZU1hbmFn ZXIgKm1uZ3IsIGdpbnQgZmxhZ3MpCisgeworQEAgLTY5LDkgKzYyLDggQEAgcGhvdG9zX3NlYXJj aF90eXBlX21hbmFnZXJfZ2V0X2ZpbHRlciAoUGhvdG9zQmFzZU1hbmFnZXIgKm1uZ3IsIGdpbnQg ZmxhZ3MpCisgICByZXR1cm4gZmlsdGVyOworIH0KKyAKKy0KKy1zdGF0aWMgZ2NoYXIgKgorLXBo b3Rvc19zZWFyY2hfdHlwZV9tYW5hZ2VyX2dldF93aGVyZSAoUGhvdG9zQmFzZU1hbmFnZXIgKm1u Z3IsIGdpbnQgZmxhZ3MpCisrc3RhdGljIFBob3Rvc1NwYXJxbFRlbXBsYXRlICoKKytwaG90b3Nf c2VhcmNoX3R5cGVfbWFuYWdlcl9nZXRfc3BhcnFsX3RlbXBsYXRlIChQaG90b3NCYXNlTWFuYWdl ciAqbW5nciwgZ2ludCBmbGFncykKKyB7CisgICBHT2JqZWN0ICpzZWFyY2hfdHlwZTsKKyAKK0BA IC04Niw3NCArNzgsMzkgQEAgcGhvdG9zX3NlYXJjaF90eXBlX21hbmFnZXJfZ2V0X3doZXJlIChQ aG90b3NCYXNlTWFuYWdlciAqbW5nciwgZ2ludCBmbGFncykKKyAgIGVsc2UKKyAgICAgc2VhcmNo X3R5cGUgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF9vYmplY3RfYnlfaWQgKG1uZ3IsIFBIT1RP U19TRUFSQ0hfVFlQRV9TVE9DS19BTEwpOworIAorLSAgcmV0dXJuIHBob3Rvc19maWx0ZXJhYmxl X2dldF93aGVyZSAoUEhPVE9TX0ZJTFRFUkFCTEUgKHNlYXJjaF90eXBlKSk7CisrICByZXR1cm4g cGhvdG9zX3NlYXJjaF90eXBlX2dldF9zcGFycWxfdGVtcGxhdGUgKFBIT1RPU19TRUFSQ0hfVFlQ RSAoc2VhcmNoX3R5cGUpKTsKKyB9CisgCistCisgc3RhdGljIHZvaWQKKyBwaG90b3Nfc2VhcmNo X3R5cGVfbWFuYWdlcl9pbml0IChQaG90b3NTZWFyY2hUeXBlTWFuYWdlciAqc2VsZikKKyB7Cisg ICBQaG90b3NTZWFyY2hUeXBlICpzZWFyY2hfdHlwZTsKKy0gIGdjaGFyICppdGVtX2ZpbHRlcjsK Ky0gIGdjaGFyICphbGxfZmlsdGVyOworLSAgZ2NoYXIgKmJsYWNrbGlzdGVkX21pbWVfdHlwZXNf ZmlsdGVyOworLSAgZ2NoYXIgKmNvbF9maWx0ZXI7CistICBnY2hhciAqKnN0cnY7CistICBndWlu dCBpOworLSAgZ3VpbnQgbl9lbGVtZW50czsKKy0KKy0gIG5fZWxlbWVudHMgPSBHX05fRUxFTUVO VFMgKEJMQUNLTElTVEVEX01JTUVfVFlQRVMpOworLSAgc3RydiA9IChnY2hhciAqKikgZ19tYWxs b2MwX24gKG5fZWxlbWVudHMgKyAxLCBzaXplb2YgKGdjaGFyICopKTsKKy0gIGZvciAoaSA9IDA7 IGkgPCBuX2VsZW1lbnRzOyBpKyspCistICAgIHN0cnZbaV0gPSBnX3N0cmR1cF9wcmludGYgKCJu aWU6bWltZVR5cGUoP3VybikgIT0gJyVzJyIsIEJMQUNLTElTVEVEX01JTUVfVFlQRVNbaV0pOwor LQorLSAgYmxhY2tsaXN0ZWRfbWltZV90eXBlc19maWx0ZXIgPSBnX3N0cmpvaW52ICgiICYmICIs IHN0cnYpOworLQorLSAgaXRlbV9maWx0ZXIgPSBnX3N0cmR1cF9wcmludGYgKCIoZm46Y29udGFp bnMgKD90eXBlLCAnbm1tI1Bob3RvJykgJiYgJXMpIiwgYmxhY2tsaXN0ZWRfbWltZV90eXBlc19m aWx0ZXIpOworLSAgY29sX2ZpbHRlciA9IGdfc3RyZHVwX3ByaW50ZiAoIihmbjpjb250YWlucyAo P3R5cGUsICduZm8jRGF0YUNvbnRhaW5lcicpIgorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIiAmJiA/Y291bnQgPiAwIgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IiAmJiAoZm46c3RhcnRzLXdpdGggKG5hbzppZGVudGlmaWVyICg/dXJuKSwgJyVzJykiCistICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICB8fCAoP3VybiA9IG5mbzppbWFnZS1j YXRlZ29yeS1zY3JlZW5zaG90KSkpIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBIT1RPU19RVUVSWV9DT0xMRUNUSU9OU19JREVOVElGSUVSKTsKKy0gIGFsbF9maWx0ZXIgPSBn X3N0cmR1cF9wcmludGYgKCIoJXMgfHwgJXMpIiwgY29sX2ZpbHRlciwgaXRlbV9maWx0ZXIpOwor IAorICAgc2VhcmNoX3R5cGUgPSBwaG90b3Nfc2VhcmNoX3R5cGVfbmV3X2Z1bGwgKFBIT1RPU19T RUFSQ0hfVFlQRV9TVE9DS19BTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXygiQWxsIiksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIj91cm4gYSByZGZzOlJlc291cmNlLiAiCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIk9QVElPTkFMIHs/aXRlbSBhIG5tbTpQaG90bzsg bmllOmlzUGFydE9mID91cm59IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhbGxfZmlsdGVyKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAicmVzb3VyY2U6Ly8vb3JnL2dub21lL1Bob3Rvcy9hbGwuc3BhcnFsLnRl bXBsYXRlIik7CisgICBwaG90b3NfYmFzZV9tYW5hZ2VyX2FkZF9vYmplY3QgKFBIT1RPU19CQVNF X01BTkFHRVIgKHNlbGYpLCBHX09CSkVDVCAoc2VhcmNoX3R5cGUpKTsKKyAgIGdfb2JqZWN0X3Vu cmVmIChzZWFyY2hfdHlwZSk7CisgCisgICBzZWFyY2hfdHlwZSA9IHBob3Rvc19zZWFyY2hfdHlw ZV9uZXdfZnVsbCAoUEhPVE9TX1NFQVJDSF9UWVBFX1NUT0NLX0NPTExFQ1RJT05TLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIkFsYnVtcyIpLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI/dXJuIGEgbmZvOkRh dGFDb250YWluZXIuICIKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiP2l0ZW0gYSBubW06UGhvdG87IG5pZTppc1BhcnRPZiA/dXJuLiIsCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX2ZpbHRlcik7CisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlc291cmNlOi8vL29yZy9n bm9tZS9QaG90b3MvY29sbGVjdGlvbnMuc3BhcnFsLnRlbXBsYXRlIik7CisgICBwaG90b3NfYmFz ZV9tYW5hZ2VyX2FkZF9vYmplY3QgKFBIT1RPU19CQVNFX01BTkFHRVIgKHNlbGYpLCBHX09CSkVD VCAoc2VhcmNoX3R5cGUpKTsKKyAgIGdfb2JqZWN0X3VucmVmIChzZWFyY2hfdHlwZSk7CisgCisg ICBzZWFyY2hfdHlwZSA9IHBob3Rvc19zZWFyY2hfdHlwZV9uZXdfZnVsbCAoUEhPVE9TX1NFQVJD SF9UWVBFX1NUT0NLX0ZBVk9SSVRFUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBfKCJGYXZvcml0ZXMiKSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiP3VybiBhIG5tbTpQaG90bzsgbmFvOmhhc1RhZyBuYW86cHJl ZGVmaW5lZC10YWctZmF2b3JpdGUuICIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYmxhY2tsaXN0ZWRfbWltZV90eXBlc19maWx0ZXIpOworKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZXNvdXJjZTovLy9vcmcvZ25v bWUvUGhvdG9zL2Zhdm9yaXRlLXBob3Rvcy5zcGFycWwudGVtcGxhdGUiKTsKKyAgIHBob3Rvc19i YXNlX21hbmFnZXJfYWRkX29iamVjdCAoUEhPVE9TX0JBU0VfTUFOQUdFUiAoc2VsZiksIEdfT0JK RUNUIChzZWFyY2hfdHlwZSkpOworICAgZ19vYmplY3RfdW5yZWYgKHNlYXJjaF90eXBlKTsKKyAK KyAgIHNlYXJjaF90eXBlID0gcGhvdG9zX3NlYXJjaF90eXBlX25ld19mdWxsIChQSE9UT1NfU0VB UkNIX1RZUEVfU1RPQ0tfUEhPVE9TLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF8oIlBob3RvcyIpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICI/dXJuIGEgbm1tOlBob3RvIiwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBibGFja2xpc3RlZF9taW1lX3R5cGVzX2ZpbHRlcik7 CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlc291cmNl Oi8vL29yZy9nbm9tZS9QaG90b3MvcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZSIpOworICAgcGhvdG9z X2Jhc2VfbWFuYWdlcl9hZGRfb2JqZWN0IChQSE9UT1NfQkFTRV9NQU5BR0VSIChzZWxmKSwgR19P QkpFQ1QgKHNlYXJjaF90eXBlKSk7CisgICBnX29iamVjdF91bnJlZiAoc2VhcmNoX3R5cGUpOwor IAorICAgcGhvdG9zX2Jhc2VfbWFuYWdlcl9zZXRfYWN0aXZlX29iamVjdF9ieV9pZCAoUEhPVE9T X0JBU0VfTUFOQUdFUiAoc2VsZiksIFBIT1RPU19TRUFSQ0hfVFlQRV9TVE9DS19BTEwpOworLQor LSAgZ19mcmVlIChpdGVtX2ZpbHRlcik7CistICBnX2ZyZWUgKGFsbF9maWx0ZXIpOworLSAgZ19m cmVlIChibGFja2xpc3RlZF9taW1lX3R5cGVzX2ZpbHRlcik7CistICBnX2ZyZWUgKGNvbF9maWx0 ZXIpOworLSAgZ19zdHJmcmVldiAoc3Rydik7CisgfQorIAorIAorQEAgLTE2Myw3ICsxMjAsNyBA QCBwaG90b3Nfc2VhcmNoX3R5cGVfbWFuYWdlcl9jbGFzc19pbml0IChQaG90b3NTZWFyY2hUeXBl TWFuYWdlckNsYXNzICpjbGFzcykKKyAgIFBob3Rvc0Jhc2VNYW5hZ2VyQ2xhc3MgKmJhc2VfbWFu YWdlcl9jbGFzcyA9IFBIT1RPU19CQVNFX01BTkFHRVJfQ0xBU1MgKGNsYXNzKTsKKyAKKyAgIGJh c2VfbWFuYWdlcl9jbGFzcy0+Z2V0X2ZpbHRlciA9IHBob3Rvc19zZWFyY2hfdHlwZV9tYW5hZ2Vy X2dldF9maWx0ZXI7CistICBiYXNlX21hbmFnZXJfY2xhc3MtPmdldF93aGVyZSA9IHBob3Rvc19z ZWFyY2hfdHlwZV9tYW5hZ2VyX2dldF93aGVyZTsKKysgIGJhc2VfbWFuYWdlcl9jbGFzcy0+Z2V0 X3NwYXJxbF90ZW1wbGF0ZSA9IHBob3Rvc19zZWFyY2hfdHlwZV9tYW5hZ2VyX2dldF9zcGFycWxf dGVtcGxhdGU7CisgfQorIAorIAorZGlmZiAtLWdpdCBhL3NyYy9waG90b3Mtc2VhcmNoLXR5cGUu YyBiL3NyYy9waG90b3Mtc2VhcmNoLXR5cGUuYworaW5kZXggNDRkYzYwZWIuLmYzYmJhZTE1IDEw MDY0NAorLS0tIGEvc3JjL3Bob3Rvcy1zZWFyY2gtdHlwZS5jCisrKysgYi9zcmMvcGhvdG9zLXNl YXJjaC10eXBlLmMKK0BAIC0yNSwyNCArMjUsMjMgQEAKKyAKKyAjaW5jbHVkZSAicGhvdG9zLWZp bHRlcmFibGUuaCIKKyAjaW5jbHVkZSAicGhvdG9zLXNlYXJjaC10eXBlLmgiCisrI2luY2x1ZGUg InBob3Rvcy1zcGFycWwtdGVtcGxhdGUuaCIKKyAKKyAKKyBzdHJ1Y3QgX1Bob3Rvc1NlYXJjaFR5 cGUKKyB7CisgICBHT2JqZWN0IHBhcmVudF9pbnN0YW5jZTsKKy0gIGdjaGFyICpmaWx0ZXI7Cisg ICBnY2hhciAqaWQ7CisgICBnY2hhciAqbmFtZTsKKy0gIGdjaGFyICp3aGVyZTsKKysgIFBob3Rv c1NwYXJxbFRlbXBsYXRlICpzcGFycWxfdGVtcGxhdGU7CisgfTsKKyAKKyBlbnVtCisgeworICAg UFJPUF8wLAorLSAgUFJPUF9GSUxURVIsCisgICBQUk9QX0lELAorICAgUFJPUF9OQU1FLAorLSAg UFJPUF9XSEVSRSwKKysgIFBST1BfU1BBUlFMX1RFTVBMQVRFLAorIH07CisgCisgc3RhdGljIHZv aWQgcGhvdG9zX3NlYXJjaF90eXBlX2ZpbHRlcmFibGVfaWZhY2VfaW5pdCAoUGhvdG9zRmlsdGVy YWJsZUludGVyZmFjZSAqaWZhY2UpOworQEAgLTUzLDE0ICs1Miw2IEBAIEdfREVGSU5FX1RZUEVf V0lUSF9DT0RFIChQaG90b3NTZWFyY2hUeXBlLCBwaG90b3Nfc2VhcmNoX3R5cGUsIEdfVFlQRV9P QkpFQ1QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cGhvdG9zX3NlYXJjaF90eXBlX2ZpbHRlcmFibGVfaWZhY2VfaW5pdCkpOworIAorIAorLXN0YXRp YyBnY2hhciAqCistcGhvdG9zX3NlYXJjaF90eXBlX2dldF9maWx0ZXIgKFBob3Rvc0ZpbHRlcmFi bGUgKmlmYWNlKQorLXsKKy0gIFBob3Rvc1NlYXJjaFR5cGUgKnNlbGYgPSBQSE9UT1NfU0VBUkNI X1RZUEUgKGlmYWNlKTsKKy0gIHJldHVybiBnX3N0cmR1cCAoc2VsZi0+ZmlsdGVyKTsKKy19Cist CistCisgc3RhdGljIGNvbnN0IGdjaGFyICoKKyBwaG90b3Nfc2VhcmNoX3R5cGVfZ2V0X2lkIChQ aG90b3NGaWx0ZXJhYmxlICpmaWx0ZXJhYmxlKQorIHsKK0BAIC02OSwxNCArNjAsNiBAQCBwaG90 b3Nfc2VhcmNoX3R5cGVfZ2V0X2lkIChQaG90b3NGaWx0ZXJhYmxlICpmaWx0ZXJhYmxlKQorIH0K KyAKKyAKKy1zdGF0aWMgZ2NoYXIgKgorLXBob3Rvc19zZWFyY2hfdHlwZV9nZXRfd2hlcmUgKFBo b3Rvc0ZpbHRlcmFibGUgKmlmYWNlKQorLXsKKy0gIFBob3Rvc1NlYXJjaFR5cGUgKnNlbGYgPSBQ SE9UT1NfU0VBUkNIX1RZUEUgKGlmYWNlKTsKKy0gIHJldHVybiBnX3N0cmR1cCAoc2VsZi0+d2hl cmUpOworLX0KKy0KKy0KKyBzdGF0aWMgZ2Jvb2xlYW4KKyBwaG90b3Nfc2VhcmNoX3R5cGVfaXNf c2VhcmNoX2NyaXRlcmlvbiAoUGhvdG9zRmlsdGVyYWJsZSAqaWZhY2UpCisgeworQEAgLTg0LDE1 ICs2NywyMCBAQCBwaG90b3Nfc2VhcmNoX3R5cGVfaXNfc2VhcmNoX2NyaXRlcmlvbiAoUGhvdG9z RmlsdGVyYWJsZSAqaWZhY2UpCisgfQorIAorIAorK1Bob3Rvc1NwYXJxbFRlbXBsYXRlICoKKytw aG90b3Nfc2VhcmNoX3R5cGVfZ2V0X3NwYXJxbF90ZW1wbGF0ZSAoUGhvdG9zU2VhcmNoVHlwZSAq c2VsZikKKyt7CisrICByZXR1cm4gc2VsZi0+c3BhcnFsX3RlbXBsYXRlOworK30KKysKKyBzdGF0 aWMgdm9pZAorIHBob3Rvc19zZWFyY2hfdHlwZV9maW5hbGl6ZSAoR09iamVjdCAqb2JqZWN0KQor IHsKKyAgIFBob3Rvc1NlYXJjaFR5cGUgKnNlbGYgPSBQSE9UT1NfU0VBUkNIX1RZUEUgKG9iamVj dCk7CisgCistICBnX2ZyZWUgKHNlbGYtPmZpbHRlcik7CisgICBnX2ZyZWUgKHNlbGYtPmlkKTsK KyAgIGdfZnJlZSAoc2VsZi0+bmFtZSk7CistICBnX2ZyZWUgKHNlbGYtPndoZXJlKTsKKysgIGdf Y2xlYXJfb2JqZWN0ICgmc2VsZi0+c3BhcnFsX3RlbXBsYXRlKTsKKyAKKyAgIEdfT0JKRUNUX0NM QVNTIChwaG90b3Nfc2VhcmNoX3R5cGVfcGFyZW50X2NsYXNzKS0+ZmluYWxpemUgKG9iamVjdCk7 CisgfQorQEAgLTExMyw2ICsxMDEsMTAgQEAgcGhvdG9zX3NlYXJjaF90eXBlX2dldF9wcm9wZXJ0 eSAoR09iamVjdCAqb2JqZWN0LCBndWludCBwcm9wX2lkLCBHVmFsdWUgKnZhbHVlLAorICAgICAg IGdfdmFsdWVfc2V0X3N0cmluZyAodmFsdWUsIHNlbGYtPm5hbWUpOworICAgICAgIGJyZWFrOwor IAorKyAgICBjYXNlIFBST1BfU1BBUlFMX1RFTVBMQVRFOgorKyAgICAgIGdfdmFsdWVfc2V0X29i amVjdCAodmFsdWUsIHNlbGYtPnNwYXJxbF90ZW1wbGF0ZSk7CisrICAgICAgYnJlYWs7CisrCisg ICAgIGRlZmF1bHQ6CisgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEIChv YmplY3QsIHByb3BfaWQsIHBzcGVjKTsKKyAgICAgICBicmVhazsKK0BAIC0xMjcsMTAgKzExOSw2 IEBAIHBob3Rvc19zZWFyY2hfdHlwZV9zZXRfcHJvcGVydHkgKEdPYmplY3QgKm9iamVjdCwgZ3Vp bnQgcHJvcF9pZCwgY29uc3QgR1ZhbHVlICp2CisgCisgICBzd2l0Y2ggKHByb3BfaWQpCisgICAg IHsKKy0gICAgY2FzZSBQUk9QX0ZJTFRFUjoKKy0gICAgICBzZWxmLT5maWx0ZXIgPSBnX3ZhbHVl X2R1cF9zdHJpbmcgKHZhbHVlKTsKKy0gICAgICBicmVhazsKKy0KKyAgICAgY2FzZSBQUk9QX0lE OgorICAgICAgIHNlbGYtPmlkID0gZ192YWx1ZV9kdXBfc3RyaW5nICh2YWx1ZSk7CisgICAgICAg YnJlYWs7CitAQCAtMTM5LDggKzEyNyw4IEBAIHBob3Rvc19zZWFyY2hfdHlwZV9zZXRfcHJvcGVy dHkgKEdPYmplY3QgKm9iamVjdCwgZ3VpbnQgcHJvcF9pZCwgY29uc3QgR1ZhbHVlICp2CisgICAg ICAgc2VsZi0+bmFtZSA9IGdfdmFsdWVfZHVwX3N0cmluZyAodmFsdWUpOworICAgICAgIGJyZWFr OworIAorLSAgICBjYXNlIFBST1BfV0hFUkU6CistICAgICAgc2VsZi0+d2hlcmUgPSBnX3ZhbHVl X2R1cF9zdHJpbmcgKHZhbHVlKTsKKysgICAgY2FzZSBQUk9QX1NQQVJRTF9URU1QTEFURToKKysg ICAgICBzZWxmLT5zcGFycWxfdGVtcGxhdGUgPSBnX29iamVjdF9yZWYgKGdfdmFsdWVfZ2V0X29i amVjdCAodmFsdWUpKTsKKyAgICAgICBicmVhazsKKyAKKyAgICAgZGVmYXVsdDoKK0BAIC0xNjUs MTQgKzE1Myw2IEBAIHBob3Rvc19zZWFyY2hfdHlwZV9jbGFzc19pbml0IChQaG90b3NTZWFyY2hU eXBlQ2xhc3MgKmNsYXNzKQorICAgb2JqZWN0X2NsYXNzLT5nZXRfcHJvcGVydHkgPSBwaG90b3Nf c2VhcmNoX3R5cGVfZ2V0X3Byb3BlcnR5OworICAgb2JqZWN0X2NsYXNzLT5zZXRfcHJvcGVydHkg PSBwaG90b3Nfc2VhcmNoX3R5cGVfc2V0X3Byb3BlcnR5OworIAorLSAgZ19vYmplY3RfY2xhc3Nf aW5zdGFsbF9wcm9wZXJ0eSAob2JqZWN0X2NsYXNzLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUFJPUF9GSUxURVIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nICgiZmlsdGVyIiwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIsCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKHRydWUpIiwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEdfUEFSQU1fQ09OU1RSVUNUX09OTFkgfCBHX1BBUkFNX1dSSVRBQkxFKSk7CistCisgICBnX29i amVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5IChvYmplY3RfY2xhc3MsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQUk9QX0lELAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZyAoImlkIiwKK0BAIC0xOTAsMTEgKzE3MCwx MSBAQCBwaG90b3Nfc2VhcmNoX3R5cGVfY2xhc3NfaW5pdCAoUGhvdG9zU2VhcmNoVHlwZUNsYXNz ICpjbGFzcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEdfUEFSQU1fQ09OU1RSVUNUX09OTFkgfCBHX1BBUkFNX1JFQURXUklURSkpOwor IAorICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSAob2JqZWN0X2NsYXNzLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9XSEVSRSwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcgKCJ3aGVyZSIsCist ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi IiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfU1BBUlFMX1RFTVBM QVRFLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX29i amVjdCAoInNwYXJxbC10ZW1wbGF0ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAiIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIiLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEhPVE9TX1RZUEVfU1BBUlFMX1RF TVBMQVRFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgR19QQVJBTV9DT05TVFJVQ1RfT05MWSB8IEdfUEFSQU1fV1JJVEFCTEUpKTsKKyB9 CisgCitAQCAtMjAyLDkgKzE4Miw3IEBAIHBob3Rvc19zZWFyY2hfdHlwZV9jbGFzc19pbml0IChQ aG90b3NTZWFyY2hUeXBlQ2xhc3MgKmNsYXNzKQorIHN0YXRpYyB2b2lkCisgcGhvdG9zX3NlYXJj aF90eXBlX2ZpbHRlcmFibGVfaWZhY2VfaW5pdCAoUGhvdG9zRmlsdGVyYWJsZUludGVyZmFjZSAq aWZhY2UpCisgeworLSAgaWZhY2UtPmdldF9maWx0ZXIgPSBwaG90b3Nfc2VhcmNoX3R5cGVfZ2V0 X2ZpbHRlcjsKKyAgIGlmYWNlLT5nZXRfaWQgPSBwaG90b3Nfc2VhcmNoX3R5cGVfZ2V0X2lkOwor LSAgaWZhY2UtPmdldF93aGVyZSA9IHBob3Rvc19zZWFyY2hfdHlwZV9nZXRfd2hlcmU7CisgICBp ZmFjZS0+aXNfc2VhcmNoX2NyaXRlcmlvbiA9IHBob3Rvc19zZWFyY2hfdHlwZV9pc19zZWFyY2hf Y3JpdGVyaW9uOworIH0KKyAKK0BAIC0yMTcsMTIgKzE5NSwxMyBAQCBwaG90b3Nfc2VhcmNoX3R5 cGVfbmV3IChjb25zdCBnY2hhciAqaWQsIGNvbnN0IGdjaGFyICpuYW1lKQorIAorIAorIFBob3Rv c1NlYXJjaFR5cGUgKgorLXBob3Rvc19zZWFyY2hfdHlwZV9uZXdfZnVsbCAoY29uc3QgZ2NoYXIg KmlkLCBjb25zdCBnY2hhciAqbmFtZSwgY29uc3QgZ2NoYXIgKndoZXJlLCBjb25zdCBnY2hhciAq ZmlsdGVyKQorK3Bob3Rvc19zZWFyY2hfdHlwZV9uZXdfZnVsbCAoY29uc3QgZ2NoYXIgKmlkLCBj b25zdCBnY2hhciAqbmFtZSwgY29uc3QgZ2NoYXIgKnRlbXBsYXRlX3BhdGgpCisgeworKyAgZ19h dXRvcHRyIChQaG90b3NTcGFycWxUZW1wbGF0ZSkgdGVtcGxhdGUgPSBwaG90b3Nfc3BhcnFsX3Rl bXBsYXRlX25ldyAodGVtcGxhdGVfcGF0aCk7CisrCisgICByZXR1cm4gZ19vYmplY3RfbmV3IChQ SE9UT1NfVFlQRV9TRUFSQ0hfVFlQRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJpZCIsIGlk LAorICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiLCBuYW1lLAorLSAgICAgICAgICAgICAg ICAgICAgICAgImZpbHRlciIsIGZpbHRlciwKKy0gICAgICAgICAgICAgICAgICAgICAgICJ3aGVy ZSIsIHdoZXJlLAorKyAgICAgICAgICAgICAgICAgICAgICAgInNwYXJxbC10ZW1wbGF0ZSIsIHRl bXBsYXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisgfQorZGlmZiAtLWdpdCBh L3NyYy9waG90b3Mtc2VhcmNoLXR5cGUuaCBiL3NyYy9waG90b3Mtc2VhcmNoLXR5cGUuaAoraW5k ZXggMmY3MTM1YmQuLjdkNjk5ZGQ0IDEwMDY0NAorLS0tIGEvc3JjL3Bob3Rvcy1zZWFyY2gtdHlw ZS5oCisrKysgYi9zcmMvcGhvdG9zLXNlYXJjaC10eXBlLmgKK0BAIC0yNCw2ICsyNCw3IEBACisg I2RlZmluZSBQSE9UT1NfU0VBUkNIX1RZUEVfSAorIAorICNpbmNsdWRlIDxnbGliLW9iamVjdC5o PgorKyNpbmNsdWRlICJwaG90b3Mtc3BhcnFsLXRlbXBsYXRlLmgiCisgCisgR19CRUdJTl9ERUNM UworIAorQEAgLTM5LDggKzQwLDkgQEAgUGhvdG9zU2VhcmNoVHlwZSAgICAqcGhvdG9zX3NlYXJj aF90eXBlX25ldyAgICAgICAgICAgICAgICAoY29uc3QgZ2NoYXIgKmlkLCBjb24KKyAKKyBQaG90 b3NTZWFyY2hUeXBlICAgICpwaG90b3Nfc2VhcmNoX3R5cGVfbmV3X2Z1bGwgICAgICAgICAgIChj b25zdCBnY2hhciAqaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgKm5hbWUsCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIg KndoZXJlLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IGdjaGFyICpmaWx0ZXIpOworKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICp0ZW1w bGF0ZV9wYXRoKTsKKysKKytQaG90b3NTcGFycWxUZW1wbGF0ZSAqcGhvdG9zX3NlYXJjaF90eXBl X2dldF9zcGFycWxfdGVtcGxhdGUgKFBob3Rvc1NlYXJjaFR5cGUgKnNlbGYpOworIAorIEdfRU5E X0RFQ0xTCisgCitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy1zcGFycWwtdGVtcGxhdGUuYyBiL3Ny Yy9waG90b3Mtc3BhcnFsLXRlbXBsYXRlLmMKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAw MDAwMDAwMC4uYjMyNDM3YzAKKy0tLSAvZGV2L251bGwKKysrKyBiL3NyYy9waG90b3Mtc3BhcnFs LXRlbXBsYXRlLmMKK0BAIC0wLDAgKzEsMTg3IEBACisrLyoKKysgKiBQaG90b3MgLSBhY2Nlc3Ms IG9yZ2FuaXplIGFuZCBzaGFyZSB5b3VyIHBob3RvcyBvbiBHTk9NRQorKyAqIENvcHlyaWdodCDC qSAyMDIwIFNhbSBUaHVyc2ZpZWxkIDxzYW1AYWZ1ZXJhLm1lLnVrPgorKyAqCisrICogVGhpcyBw cm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBt b2RpZnkKKysgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrICogKGF0IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysgKgorKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAqIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICogTUVS Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo ZQorKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrICoK KysgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZQorKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUg PGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKyAqLworKworKyNpbmNsdWRlIDxnaW8v Z2lvLmg+CisrCisrI2luY2x1ZGUgInBob3Rvcy1zcGFycWwtdGVtcGxhdGUuaCIKKysKKysjZGVm aW5lIE1BWF9TUEFSUUxfVEVNUExBVEVfU0laRSAoMTAyNCAqIDEwKQorKworK3N0cnVjdCBfUGhv dG9zU3BhcnFsVGVtcGxhdGUgeworKyAgR09iamVjdCBwYXJlbnRfaW5zdGFuY2U7CisrICBnY2hh ciAqdGVtcGxhdGVfcGF0aDsKKysgIGdjaGFyICp0ZW1wbGF0ZV90ZXh0OworK307CisrCisrR19E RUZJTkVfVFlQRSAoUGhvdG9zU3BhcnFsVGVtcGxhdGUsIHBob3Rvc19zcGFycWxfdGVtcGxhdGUs IEdfVFlQRV9PQkpFQ1QpCisrCisrZW51bSB7CisrICBQUk9QXzAsCisrICBQUk9QX1RFTVBMQVRF X1BBVEgsCisrICBOX1BST1BTCisrfTsKKysKKytQaG90b3NTcGFycWxUZW1wbGF0ZSAqCisrcGhv dG9zX3NwYXJxbF90ZW1wbGF0ZV9uZXcgKGNvbnN0IGdjaGFyICp0ZW1wbGF0ZV9wYXRoKQorK3sK KysgIHJldHVybiBnX29iamVjdF9uZXcgKFBIT1RPU19UWVBFX1NQQVJRTF9URU1QTEFURSwgInRl bXBsYXRlLXBhdGgiLCB0ZW1wbGF0ZV9wYXRoLCBOVUxMKTsKKyt9CisrCisrc3RhdGljIHZvaWQK KytwaG90b3Nfc3BhcnFsX3RlbXBsYXRlX2NvbnN0cnVjdGVkIChHT2JqZWN0ICpvYmplY3QpCisr eworKyAgUGhvdG9zU3BhcnFsVGVtcGxhdGUgKnNlbGYgPSBQSE9UT1NfU1BBUlFMX1RFTVBMQVRF IChvYmplY3QpOworKyAgZ19hdXRvcHRyIChHRmlsZSkgZmlsZSA9IE5VTEw7CisrICBnX2F1dG9w dHIgKEdGaWxlSW5wdXRTdHJlYW0pIHN0cmVhbSA9IE5VTEw7CisrICBnY2hhciBidWZmZXJbTUFY X1NQQVJRTF9URU1QTEFURV9TSVpFICsgMV07CisrICBnc2l6ZSBieXRlc19yZWFkOworKyAgZ19h dXRvcHRyIChHRXJyb3IpIGVycm9yID0gTlVMTDsKKysKKysgIEdfT0JKRUNUX0NMQVNTIChwaG90 b3Nfc3BhcnFsX3RlbXBsYXRlX3BhcmVudF9jbGFzcyktPmNvbnN0cnVjdGVkIChvYmplY3QpOwor KworKyAgZmlsZSA9IGdfZmlsZV9uZXdfZm9yX3VyaSAoc2VsZi0+dGVtcGxhdGVfcGF0aCk7Cisr CisrICBzdHJlYW0gPSBnX2ZpbGVfcmVhZCAoZmlsZSwgTlVMTCwgJmVycm9yKTsKKysKKysgIGlm ICghc3RyZWFtKQorKyAgICB7CisrICAgICAgZ19jcml0aWNhbCAoIkZhaWxlZCB0byBvcGVuIHRl bXBsYXRlICVzOiAlcyIsIHNlbGYtPnRlbXBsYXRlX3BhdGgsIGVycm9yLT5tZXNzYWdlKTsKKysg ICAgfQorKworKyAgZ19pbnB1dF9zdHJlYW1fcmVhZF9hbGwgKEdfSU5QVVRfU1RSRUFNIChzdHJl YW0pLCBidWZmZXIsIE1BWF9TUEFSUUxfVEVNUExBVEVfU0laRSwgJmJ5dGVzX3JlYWQsIE5VTEws ICZlcnJvcik7CisrCisrICBpZiAoZXJyb3IpCisrICAgIHsKKysgICAgICBnX2NyaXRpY2FsICgi RmFpbGVkIHRvIHJlYWQgdGVtcGxhdGUgJXM6ICVzIiwgc2VsZi0+dGVtcGxhdGVfcGF0aCwgZXJy b3ItPm1lc3NhZ2UpOworKyAgICB9CisrCisrICBidWZmZXJbYnl0ZXNfcmVhZF0gPSAnXDAnOwor KworKyAgc2VsZi0+dGVtcGxhdGVfdGV4dCAgPSBnX3N0cmR1cCAoYnVmZmVyKTsKKyt9CisrCisr c3RhdGljIHZvaWQKKytwaG90b3Nfc3BhcnFsX3RlbXBsYXRlX2ZpbmFsaXplIChHT2JqZWN0ICpv YmplY3QpCisreworKyAgR19PQkpFQ1RfQ0xBU1MgKHBob3Rvc19zcGFycWxfdGVtcGxhdGVfcGFy ZW50X2NsYXNzKS0+ZmluYWxpemUgKG9iamVjdCk7CisrfQorKworK3N0YXRpYyB2b2lkCisrcGhv dG9zX3NwYXJxbF90ZW1wbGF0ZV9nZXRfcHJvcGVydHkgKEdPYmplY3QgICAgKm9iamVjdCwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgICAgICAgcHJvcF9pZCwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1ZhbHVlICAgICAqdmFsdWUs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdQYXJhbVNwZWMgKnBzcGVj KQorK3sKKysgIFBob3Rvc1NwYXJxbFRlbXBsYXRlICpzZWxmID0gUEhPVE9TX1NQQVJRTF9URU1Q TEFURSAob2JqZWN0KTsKKysKKysgIHN3aXRjaCAocHJvcF9pZCkKKysgICAgeworKyAgICBjYXNl IFBST1BfVEVNUExBVEVfUEFUSDoKKysgICAgICBnX3ZhbHVlX3NldF9zdHJpbmcgKHZhbHVlLCBz ZWxmLT50ZW1wbGF0ZV9wYXRoKTsKKysgICAgICBicmVhazsKKysKKysgICAgZGVmYXVsdDoKKysg ICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQgKG9iamVjdCwgcHJvcF9pZCwg cHNwZWMpOworKyAgICB9CisrfQorKworK3N0YXRpYyB2b2lkCisrcGhvdG9zX3NwYXJxbF90ZW1w bGF0ZV9zZXRfcHJvcGVydHkgKEdPYmplY3QgICAgICAqb2JqZWN0LAorKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBndWludCAgICAgICAgIHByb3BfaWQsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEdWYWx1ZSAqdmFsdWUsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdQYXJhbVNwZWMgICAqcHNwZWMpCisrewor KyAgUGhvdG9zU3BhcnFsVGVtcGxhdGUgKnNlbGYgPSBQSE9UT1NfU1BBUlFMX1RFTVBMQVRFIChv YmplY3QpOworKworKyAgc3dpdGNoIChwcm9wX2lkKQorKyAgICB7CisrICAgIGNhc2UgUFJPUF9U RU1QTEFURV9QQVRIOgorKyAgICAgIHNlbGYtPnRlbXBsYXRlX3BhdGggPSBnX3ZhbHVlX2R1cF9z dHJpbmcgKHZhbHVlKTsKKysgICAgICBicmVhazsKKysKKysgICAgZGVmYXVsdDoKKysgICAgICBH X09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQgKG9iamVjdCwgcHJvcF9pZCwgcHNwZWMp OworKyAgICB9CisrfQorKworK3N0YXRpYyB2b2lkCisrcGhvdG9zX3NwYXJxbF90ZW1wbGF0ZV9j bGFzc19pbml0IChQaG90b3NTcGFycWxUZW1wbGF0ZUNsYXNzICprbGFzcykKKyt7CisrICBHT2Jq ZWN0Q2xhc3MgKm9iamVjdF9jbGFzcyA9IEdfT0JKRUNUX0NMQVNTIChrbGFzcyk7CisrCisrICBv YmplY3RfY2xhc3MtPmNvbnN0cnVjdGVkID0gcGhvdG9zX3NwYXJxbF90ZW1wbGF0ZV9jb25zdHJ1 Y3RlZDsKKysgIG9iamVjdF9jbGFzcy0+ZmluYWxpemUgPSBwaG90b3Nfc3BhcnFsX3RlbXBsYXRl X2ZpbmFsaXplOworKyAgb2JqZWN0X2NsYXNzLT5nZXRfcHJvcGVydHkgPSBwaG90b3Nfc3BhcnFs X3RlbXBsYXRlX2dldF9wcm9wZXJ0eTsKKysgIG9iamVjdF9jbGFzcy0+c2V0X3Byb3BlcnR5ID0g cGhvdG9zX3NwYXJxbF90ZW1wbGF0ZV9zZXRfcHJvcGVydHk7CisrCisrICBnX29iamVjdF9jbGFz c19pbnN0YWxsX3Byb3BlcnR5IChvYmplY3RfY2xhc3MsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQUk9QX1RFTVBMQVRFX1BBVEgsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nICgidGVtcGxhdGUtcGF0aCIsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGVt cGxhdGUgcGF0aCIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiUGF0aCB0byB0aGUgdGVtcGxhdGUgZmlsZS4iLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfUEFS QU1fQ09OU1RSVUNUX09OTFkgfCBHX1BBUkFNX1JFQURXUklURSkpOworK30KKysKKytzdGF0aWMg dm9pZAorK3Bob3Rvc19zcGFycWxfdGVtcGxhdGVfaW5pdCAoUGhvdG9zU3BhcnFsVGVtcGxhdGUg KnNlbGYpCisreworK30KKysKKysKKytnY2hhciAqCisrcGhvdG9zX3NwYXJxbF90ZW1wbGF0ZV9n ZXRfc3BhcnFsIChQaG90b3NTcGFycWxUZW1wbGF0ZSAqc2VsZiwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICpmaXJzdF9iaW5kaW5nX25h bWUsIC4uLikKKyt7CisrICB2YV9saXN0IHZhOworKyAgZ2NoYXIgKnNwYXJxbDsKKysKKysgIHNw YXJxbCA9IHNlbGYtPnRlbXBsYXRlX3RleHQ7CisrCisrICAvKiBGSVhNRTogdGhpcyBpcyBhbiBp bmVmZmljZW50IHdheSB0byBkbyB0ZW1wbGF0ZSBzdWJzdGl0dXRpb25zCisrICAgKiBiZWNhdXNl IHdlIGFsbG9jYXRlIGFuZCBmcmVlIGEgY29weSBvZiB0aGUgc3RyaW5nIGZvciBlYWNoIGJpbmRp bmcuCisrICAgKiBXZSBzaG91bGQgY2hlY2sgaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01F L3RlbXBsYXRlLWdsaWIvCisrICAgKi8KKysgIGlmIChmaXJzdF9iaW5kaW5nX25hbWUpCisrICAg IHsKKysgICAgICBHUmVnZXggKnJlZ2V4OworKyAgICAgIGdjaGFyICpuYW1lX3JlZ2V4OworKyAg ICAgIGNvbnN0IGdjaGFyICpuYW1lOworKyAgICAgIGNvbnN0IGdjaGFyICp2YWx1ZTsKKysKKysg ICAgICB2YV9zdGFydCAodmEsIGZpcnN0X2JpbmRpbmdfbmFtZSk7CisrICAgICAgbmFtZSA9IGZp cnN0X2JpbmRpbmdfbmFtZTsKKysgICAgICBkbyB7CisrICAgICAgICB2YWx1ZSA9IHZhX2FyZyAo dmEsIGNvbnN0IGdjaGFyICopOworKworKyAgICAgICAgaWYgKHZhbHVlID09IE5VTEwpCisrICAg ICAgICAgIHsKKysgICAgICAgICAgICBnX2NyaXRpY2FsICgiTWlzc2luZyB2YWx1ZSBmb3IgYXJn dW1lbnQgXCIlc1wiIiwgbmFtZSk7CisrICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICAgIH0K KysKKysgICAgICAgIG5hbWVfcmVnZXggPSBnX3N0cmR1cF9wcmludGYgKCJ7e1xccz8lc1xccz99 fSIsIG5hbWUpOworKyAgICAgICAgcmVnZXggPSBnX3JlZ2V4X25ldyAobmFtZV9yZWdleCwgMCwg MCwgTlVMTCk7CisrICAgICAgICBzcGFycWwgPSBnX3JlZ2V4X3JlcGxhY2VfbGl0ZXJhbCAocmVn ZXgsIHNwYXJxbCwgLTEsIDAsIHZhbHVlLCAwLCBOVUxMKSA7CisrICAgICAgfSB3aGlsZSAoKG5h bWUgPSB2YV9hcmcgKHZhLCBjb25zdCBnY2hhciAqKSkpOworKworKyAgICAgIHZhX2VuZCAodmEp OworKyAgICB9CisrCisrICByZXR1cm4gc3BhcnFsOworK30KK2RpZmYgLS1naXQgYS9zcmMvcGhv dG9zLXNwYXJxbC10ZW1wbGF0ZS5oIGIvc3JjL3Bob3Rvcy1zcGFycWwtdGVtcGxhdGUuaAorbmV3 IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwLi42NjM1MWIzOAorLS0tIC9kZXYvbnVs bAorKysrIGIvc3JjL3Bob3Rvcy1zcGFycWwtdGVtcGxhdGUuaAorQEAgLTAsMCArMSwzOCBAQAor Ky8qCisrICogUGhvdG9zIC0gYWNjZXNzLCBvcmdhbml6ZSBhbmQgc2hhcmUgeW91ciBwaG90b3Mg b24gR05PTUUKKysgKiBDb3B5cmlnaHQgwqkgMjAyMCBTYW0gVGh1cnNmaWVsZCA8c2FtQGFmdWVy YS5tZS51az4KKysgKgorKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrICogaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysgKiB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNl LCBvcgorKyAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrICoKKysgKiBU aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKKysgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZgorKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBmb3IgbW9yZSBkZXRhaWxzLgorKyAqCisrICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg Y29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysgKiBhbG9uZyB3aXRoIHRo aXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4K KysgKi8KKysKKysjcHJhZ21hIG9uY2UKKysKKysjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKysK KytHX0JFR0lOX0RFQ0xTCisrCisrI2RlZmluZSBQSE9UT1NfVFlQRV9TUEFSUUxfVEVNUExBVEUg KHBob3Rvc19zcGFycWxfdGVtcGxhdGVfZ2V0X3R5cGUoKSkKKysKKytHX0RFQ0xBUkVfRklOQUxf VFlQRSAoUGhvdG9zU3BhcnFsVGVtcGxhdGUsIHBob3Rvc19zcGFycWxfdGVtcGxhdGUsIFBIT1RP UywgU1BBUlFMX1RFTVBMQVRFLCBHT2JqZWN0KQorKworK3N0cnVjdCBfUGhvdG9zU3BhcnFsVGVt cGxhdGVDbGFzcworK3sKKysgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CisrfTsKKysKKytQ aG90b3NTcGFycWxUZW1wbGF0ZSAqcGhvdG9zX3NwYXJxbF90ZW1wbGF0ZV9uZXcgKGNvbnN0IGdj aGFyICp0ZW1wbGF0ZV9wYXRoKTsKKysKKytnY2hhciAqcGhvdG9zX3NwYXJxbF90ZW1wbGF0ZV9n ZXRfc3BhcnFsIChQaG90b3NTcGFycWxUZW1wbGF0ZSAqc2VsZiwgY29uc3QgZ2NoYXIgKmZpcnN0 X2JpbmRpbmdfbmFtZSwgLi4uKSAgR19HTlVDX05VTExfVEVSTUlOQVRFRDsKKysKKytHX0VORF9E RUNMUworZGlmZiAtLWdpdCBhL3NyYy9waG90b3MuZ3Jlc291cmNlLnhtbCBiL3NyYy9waG90b3Mu Z3Jlc291cmNlLnhtbAoraW5kZXggMTAxNWIxMWQuLjM5ZTZkODQyIDEwMDY0NAorLS0tIGEvc3Jj L3Bob3Rvcy5ncmVzb3VyY2UueG1sCisrKysgYi9zcmMvcGhvdG9zLmdyZXNvdXJjZS54bWwKK0BA IC0zNSw2ICszNSwxMCBAQAorICAgICA8ZmlsZSBhbGlhcz0ic2VsZWN0aW9uLXRvb2xiYXIudWki IHByZXByb2Nlc3M9InhtbC1zdHJpcGJsYW5rcyIgY29tcHJlc3NlZD0idHJ1ZSI+cGhvdG9zLXNl bGVjdGlvbi10b29sYmFyLnVpPC9maWxlPgorICAgICA8ZmlsZSBhbGlhcz0ic2hhcmUtZGlhbG9n LnVpIiBwcmVwcm9jZXNzPSJ4bWwtc3RyaXBibGFua3MiIGNvbXByZXNzZWQ9InRydWUiPnBob3Rv cy1zaGFyZS1kaWFsb2cudWk8L2ZpbGU+CisgICAgIDxmaWxlIGFsaWFzPSJ6b29tLWNvbnRyb2xz LnVpIiBwcmVwcm9jZXNzPSJ4bWwtc3RyaXBibGFua3MiIGNvbXByZXNzZWQ9InRydWUiPnBob3Rv cy16b29tLWNvbnRyb2xzLnVpPC9maWxlPgorKyAgICA8ZmlsZSBhbGlhcz0iYWxsLnNwYXJxbC50 ZW1wbGF0ZSI+cXVlcmllcy9hbGwuc3BhcnFsLnRlbXBsYXRlPC9maWxlPgorKyAgICA8ZmlsZSBh bGlhcz0iY29sbGVjdGlvbnMuc3BhcnFsLnRlbXBsYXRlIj5xdWVyaWVzL2NvbGxlY3Rpb25zLnNw YXJxbC50ZW1wbGF0ZTwvZmlsZT4KKysgICAgPGZpbGUgYWxpYXM9ImZhdm9yaXRlLXBob3Rvcy5z cGFycWwudGVtcGxhdGUiPnF1ZXJpZXMvZmF2b3JpdGUtcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZTwv ZmlsZT4KKysgICAgPGZpbGUgYWxpYXM9InBob3Rvcy5zcGFycWwudGVtcGxhdGUiPnF1ZXJpZXMv cGhvdG9zLnNwYXJxbC50ZW1wbGF0ZTwvZmlsZT4KKyAgIDwvZ3Jlc291cmNlPgorIAorICAgPGdy ZXNvdXJjZSBwcmVmaXg9Ii9vcmcvZ25vbWUvUGhvdG9zL2d0ayI+CitkaWZmIC0tZ2l0IGEvc3Jj L3F1ZXJpZXMvYWxsLnNwYXJxbC50ZW1wbGF0ZSBiL3NyYy9xdWVyaWVzL2FsbC5zcGFycWwudGVt cGxhdGUKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMC4uMWNlZjk4ZTgKKy0t LSAvZGV2L251bGwKKysrKyBiL3NyYy9xdWVyaWVzL2FsbC5zcGFycWwudGVtcGxhdGUKK0BAIC0w LDAgKzEsMzEgQEAKKytTRUxFQ1Qge3twcm9qZWN0aW9ufX0KKyt7CisrICAgIHsKKysgICAgICAg IFNFTEVDVCB7e3Byb2plY3Rpb259fQorKyAgICAgICAgeworKyAgICAgICAgICAgIHsKKysgICAg ICAgICAgICAgICAgU0VMRUNUID91cm4gQ09VTlQoP2l0ZW0pIEFTID9jb3VudAorKyAgICAgICAg ICAgICAgICB7CisrICAgICAgICAgICAgICAgICAgICA/dXJuIGEgbmZvOkRhdGFDb250YWluZXIu CisrICAgICAgICAgICAgICAgICAgICA/aXRlbSBhIG5tbTpQaG90bzsgbmllOmlzUGFydE9mID91 cm4uCisrICAgICAgICAgICAgICAgIH0gR1JPVVAgQlkgP3VybgorKyAgICAgICAgICAgIH0KKysg ICAgICAgICAgICBGSUxURVIgKD9jb3VudCA+IDAgJiYge3tjb2xsZWN0aW9uc19kZWZhdWx0X2Zp bHRlcn19ICYmIHt7c2VhcmNoX2ZpbHRlcn19KQorKyAgICAgICAgfQorKyAgICAgICAgR1JPVVAg QlkgP3VybgorKyAgICB9CisrICAgIFVOSU9OCisrICAgIHsKKysgICAgICAgIFNFTEVDVCB7e3By b2plY3Rpb259fQorKyAgICAgICAgeworKyAgICAgICAgICAgID91cm4gYSBubW06UGhvdG8gLgor KyAgICAgICAgICAgIE9QVElPTkFMIHsgP3VybiBuY286Y3JlYXRvciA/Y3JlYXRvciAuIH0KKysg ICAgICAgICAgICBPUFRJT05BTCB7ID91cm4gbmNvOnB1Ymxpc2hlciA/cHVibGlzaGVyIC4gfQor KyAgICAgICAgICAgIHt7aXRlbV9wYXR0ZXJufX0KKysgICAgICAgICAgICBGSUxURVIgKHt7cGhv dG9zX2RlZmF1bHRfZmlsdGVyfX0gJiYge3tzb3VyY2VfZmlsdGVyfX0gJiYge3tzZWFyY2hfZmls dGVyfX0pCisrICAgICAgICB9CisrICAgICAgICBHUk9VUCBCWSA/dXJuCisrICAgIH0KKyt9Cisr e3tvcmRlcn19Cisre3tvZmZzZXRfbGltaXR9fQorZGlmZiAtLWdpdCBhL3NyYy9xdWVyaWVzL2Nv bGxlY3Rpb25zLnNwYXJxbC50ZW1wbGF0ZSBiL3NyYy9xdWVyaWVzL2NvbGxlY3Rpb25zLnNwYXJx bC50ZW1wbGF0ZQorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwLi4yMGIzNWNk NgorLS0tIC9kZXYvbnVsbAorKysrIGIvc3JjL3F1ZXJpZXMvY29sbGVjdGlvbnMuc3BhcnFsLnRl bXBsYXRlCitAQCAtMCwwICsxLDE0IEBACisrU0VMRUNUIHt7cHJvamVjdGlvbn19CisreworKyAg ICB7CisrICAgICAgICBTRUxFQ1QgP3VybiBDT1VOVCg/aXRlbSkgQVMgP2NvdW50CisrICAgICAg ICB7CisrICAgICAgICAgICAgP3VybiBhIG5mbzpEYXRhQ29udGFpbmVyLgorKyAgICAgICAgICAg ID9pdGVtIGEgbm1tOlBob3RvOyBuaWU6aXNQYXJ0T2YgP3Vybi4KKysgICAgICAgIH0gR1JPVVAg QlkgP3VybgorKyAgICB9CisrICAgIEZJTFRFUiAoP2NvdW50ID4gMCAmJiB7e2NvbGxlY3Rpb25z X2RlZmF1bHRfZmlsdGVyfX0gJiYge3tzZWFyY2hfZmlsdGVyfX0pCisrfQorK0dST1VQIEJZID91 cm4KKyt7e29yZGVyfX0KKyt7e29mZnNldF9saW1pdH19CitkaWZmIC0tZ2l0IGEvc3JjL3F1ZXJp ZXMvZmF2b3JpdGUtcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZSBiL3NyYy9xdWVyaWVzL2Zhdm9yaXRl LXBob3Rvcy5zcGFycWwudGVtcGxhdGUKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAw MDAwMC4uMDg4NWEwOGEKKy0tLSAvZGV2L251bGwKKysrKyBiL3NyYy9xdWVyaWVzL2Zhdm9yaXRl LXBob3Rvcy5zcGFycWwudGVtcGxhdGUKK0BAIC0wLDAgKzEsMTIgQEAKKytTRUxFQ1Qge3twcm9q ZWN0aW9ufX0KKyt7CisrICAgID91cm4gYSBubW06UGhvdG8gLgorKyAgICA/dXJuIGEgbm1tOlBo b3RvOyBuYW86aGFzVGFnIG5hbzpwcmVkZWZpbmVkLXRhZy1mYXZvcml0ZSAuCisrICAgIE9QVElP TkFMIHsgP3VybiBuY286Y3JlYXRvciA/Y3JlYXRvciAuIH0KKysgICAgT1BUSU9OQUwgeyA/dXJu IG5jbzpwdWJsaXNoZXIgP3B1Ymxpc2hlciAuIH0KKysgICAge3tpdGVtX3BhdHRlcm59fQorKyAg ICBGSUxURVIgKHt7cGhvdG9zX2RlZmF1bHRfZmlsdGVyfX0gJiYge3tzb3VyY2VfZmlsdGVyfX0g JiYge3tzZWFyY2hfZmlsdGVyfX0pCisrfQorK0dST1VQIEJZID91cm4KKyt7e29yZGVyfX0KKyt7 e29mZnNldF9saW1pdH19CitkaWZmIC0tZ2l0IGEvc3JjL3F1ZXJpZXMvcGhvdG9zLnNwYXJxbC50 ZW1wbGF0ZSBiL3NyYy9xdWVyaWVzL3Bob3Rvcy5zcGFycWwudGVtcGxhdGUKK25ldyBmaWxlIG1v ZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMC4uNGViMTBiNzQKKy0tLSAvZGV2L251bGwKKysrKyBi L3NyYy9xdWVyaWVzL3Bob3Rvcy5zcGFycWwudGVtcGxhdGUKK0BAIC0wLDAgKzEsMTEgQEAKKytT RUxFQ1Qge3twcm9qZWN0aW9ufX0KKyt7CisrICAgID91cm4gYSBubW06UGhvdG8gLgorKyAgICBP UFRJT05BTCB7ID91cm4gbmNvOmNyZWF0b3IgP2NyZWF0b3IgLiB9CisrICAgIE9QVElPTkFMIHsg P3VybiBuY286cHVibGlzaGVyID9wdWJsaXNoZXIgLiB9CisrICAgIHt7aXRlbV9wYXR0ZXJufX0K KysgICAgRklMVEVSICh7e3Bob3Rvc19kZWZhdWx0X2ZpbHRlcn19ICYmIHt7c291cmNlX2ZpbHRl cn19ICYmIHt7c2VhcmNoX2ZpbHRlcn19KQorK30KKytHUk9VUCBCWSA/dXJuCisre3tvcmRlcn19 Cisre3tvZmZzZXRfbGltaXR9fQorLS0gCitHaXRMYWIKKworCitGcm9tIGQ2MWQ0NDBlZmUzNDBi ZGE0ZTE5NWQ2NDAwNjZmYjI5MjIwZDBjYjUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9t OiBTYW0gVGh1cnNmaWVsZCA8c2FtQGFmdWVyYS5tZS51az4KK0RhdGU6IFNhdCwgMjMgTWF5IDIw MjAgMTM6MzY6MjUgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCA0LzRdIFBvcnQgdG8gVHJhY2tlciAz CisKK05vdGFibGUgY2hhbmdlczoKKworICAqIFVzZXIgZGF0YSAoZmF2b3VyaXRlcywgYWxidW1z KSBpcyBub3cgc3RvcmVkIGluIGEgcHJpdmF0ZSBkYXRhYmFzZSBpbgorICAgIH4vLmxvY2FsL3No YXJlL2dub21lLXBob3Rvcy4gVGhpcyBpcyBjb21iaW5lZCB3aXRoIHRoZSBUcmFja2VyIE1pbmVy CisgICAgRlMgaW5kZXggb2YgcGhvdG9zIGF0IHF1ZXJ5IHRpbWUuCisgICogSW5zaWRlIEZsYXRw YWssIHRoZSBhcHAgY29ubmVjdHMgdG8gVHJhY2tlciB2aWEgdGhlIG5ldworICAgIHhkZy10cmFj a2VyLXBvcnRhbCBpbnN0ZWFkIG9mIHRhbGtpbmcgZGlyZWN0bHkgb3ZlciBELUJ1cy4gQWNjZXNz IGlzCisgICAgbGltaXRlZCBieSB0aGUgcG9ydGFsIHNvIHRoZSBhcHAgY2FuIG9ubHkgc2VlIHRo ZSBQaWN0dXJlcyBncmFwaC4KKyAgKiBUaGUgRmxhdHBhayBidWlsZCBjYW4gdXNlIGEgYnVuZGxl ZCB2ZXJzaW9uIG9mIFRyYWNrZXIgTWluZXJzLCBpZiBhCisgICAgc3VpdGFibGUgdmVyc2lvbiBp cyBub3QgYXZhaWxhYmxlIG9uIHRoZSBob3N0LgorICAqIENoYW5nZSBkZXRlY3Rpb24gaXMgZG9u ZSB1c2luZyBUcmFja2VyTm90aWZpZXIgaW5zdGVhZCBvZiB3YXRjaGluZworICAgIHRoZSBHcmFw aFVwZGF0ZWQgRC1CdXMgc2lnbmFsIGRpcmVjdGx5LgorCitDbG9zZXMgaHR0cHM6Ly9naXRsYWIu Z25vbWUub3JnL0dOT01FL2dub21lLXBob3Rvcy8tL2lzc3Vlcy81OQorQ2xvc2VzIGh0dHBzOi8v Z2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1waG90b3MvLS9pc3N1ZXMvMTUyCistLS0KKyBk YXRhL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKworIGRh dGEvdHJhY2tlci9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICAgICAgICB8ICAzMyArKworIC4u LmUuUGhvdG9zLlRyYWNrZXIzLk1pbmVyLkV4dHJhY3Quc2VydmljZS5pbiB8ICAgNyArCisgLi4u b21lLlBob3Rvcy5UcmFja2VyMy5NaW5lci5GaWxlcy5zZXJ2aWNlLmluIHwgICA3ICsKKyBkYXRh L3RyYWNrZXIvb3JnLmdub21lLlBob3Rvcy5kb21haW4ucnVsZS5pbiAgfCAgMjAgKworIGZsYXRw YWsvb3JnLmdub21lLlBob3Rvcy5qc29uICAgICAgICAgICAgICAgICB8ICA1NSArLQorIG1lc29u LmJ1aWxkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArLQorIHNyYy9t ZXNvbi5idWlsZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxOSArLQorIC4uLmZy ZWVkZXNrdG9wLlRyYWNrZXIzLk1pbmVyLkZpbGVzLkluZGV4LnhtbCB8ICAxMSArCisgc3JjL29y Zy5mcmVlZGVza3RvcC5UcmFja2VyMy5NaW5lci54bWwgICAgICAgIHwgIDU2ICsrKworIHNyYy9w aG90b3MtYXBwbGljYXRpb24uYyAgICAgICAgICAgICAgICAgICAgICB8IDE4NCArKystLS0tCisg c3JjL3Bob3Rvcy1iYXNlLWl0ZW0uYyAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE4ICstCisg c3JjL3Bob3Rvcy1pbmRleGluZy1ub3RpZmljYXRpb24uYyAgICAgICAgICAgIHwgIDUzICstCisg c3JjL3Bob3Rvcy1pdGVtLW1hbmFnZXIuYyAgICAgICAgICAgICAgICAgICAgIHwgIDY5ICstLQor IHNyYy9waG90b3MtcXVhcmtzLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyMCArLQor IHNyYy9waG90b3MtcXVlcnktYnVpbGRlci5jICAgICAgICAgICAgICAgICAgICB8IDE0OCArKysr LS0KKyBzcmMvcGhvdG9zLXNlYXJjaC1jb250ZXh0LmMgICAgICAgICAgICAgICAgICAgfCAgIDMg KworIHNyYy9waG90b3Mtc2VhcmNoLWNvbnRleHQuaCAgICAgICAgICAgICAgICAgICB8ICAgMSAr Cisgc3JjL3Bob3Rvcy1zZWFyY2gtbWF0Y2gtbWFuYWdlci5jICAgICAgICAgICAgIHwgICAyICst Cisgc3JjL3Bob3Rvcy1zb3VyY2UuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE0ICst Cisgc3JjL3Bob3Rvcy10cmFja2VyLWNoYW5nZS1ldmVudC5jICAgICAgICAgICAgIHwgMTM2IC0t LS0tCisgc3JjL3Bob3Rvcy10cmFja2VyLWNoYW5nZS1ldmVudC5oICAgICAgICAgICAgIHwgIDY0 IC0tLQorIHNyYy9waG90b3MtdHJhY2tlci1jaGFuZ2UtbW9uaXRvci5jICAgICAgICAgICB8IDQ2 OCAtLS0tLS0tLS0tLS0tLS0tLS0KKyBzcmMvcGhvdG9zLXRyYWNrZXItY2hhbmdlLW1vbml0b3Iu aCAgICAgICAgICAgfCAgNDIgLS0KKyBzcmMvcGhvdG9zLXRyYWNrZXItY29udHJvbGxlci5jICAg ICAgICAgICAgICAgfCAgMTIgKy0KKyBzcmMvcGhvdG9zLXRyYWNrZXItZXh0cmFjdC1wcmlvcml0 eS54bWwgICAgICAgfCAgIDIgKy0KKyBzcmMvcGhvdG9zLXRyYWNrZXItaW1wb3J0LWNvbnRyb2xs ZXIuYyAgICAgICAgfCAgODUgKystLQorIHNyYy9waG90b3MtdHJhY2tlci1xdWV1ZS5jICAgICAg ICAgICAgICAgICAgICB8IDIwNiArKysrKysrLQorIHNyYy9waG90b3MtdHJhY2tlci1xdWV1ZS5o ICAgICAgICAgICAgICAgICAgICB8ICAgNyArCisgc3JjL3Bob3Rvcy10cmFja2VyLXJlc291cmNl cy54bWwgICAgICAgICAgICAgIHwgIDMxIC0tCisgc3JjL3Bob3Rvcy11dGlscy5jICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDI0ICstCisgc3JjL3Bob3Rvcy11dGlscy5oICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAyICstCisgc3JjL3F1ZXJpZXMvYWxsLnNwYXJxbC50ZW1w bGF0ZSAgICAgICAgICAgICAgIHwgIDM0ICstCisgc3JjL3F1ZXJpZXMvY29sbGVjdGlvbnMuc3Bh cnFsLnRlbXBsYXRlICAgICAgIHwgIDIwICstCisgc3JjL3F1ZXJpZXMvZmF2b3JpdGUtcGhvdG9z LnNwYXJxbC50ZW1wbGF0ZSAgIHwgIDIwICstCisgc3JjL3F1ZXJpZXMvcGhvdG9zLnNwYXJxbC50 ZW1wbGF0ZSAgICAgICAgICAgIHwgIDIyICstCisgMzYgZmlsZXMgY2hhbmdlZCwgNzU0IGluc2Vy dGlvbnMoKyksIDExNDYgZGVsZXRpb25zKC0pCisgY3JlYXRlIG1vZGUgMTAwNjQ0IGRhdGEvdHJh Y2tlci9tZXNvbi5idWlsZAorIGNyZWF0ZSBtb2RlIDEwMDY0NCBkYXRhL3RyYWNrZXIvb3JnLmdu b21lLlBob3Rvcy5UcmFja2VyMy5NaW5lci5FeHRyYWN0LnNlcnZpY2UuaW4KKyBjcmVhdGUgbW9k ZSAxMDA2NDQgZGF0YS90cmFja2VyL29yZy5nbm9tZS5QaG90b3MuVHJhY2tlcjMuTWluZXIuRmls ZXMuc2VydmljZS5pbgorIGNyZWF0ZSBtb2RlIDEwMDY0NCBkYXRhL3RyYWNrZXIvb3JnLmdub21l LlBob3Rvcy5kb21haW4ucnVsZS5pbgorIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvb3JnLmZyZWVk ZXNrdG9wLlRyYWNrZXIzLk1pbmVyLkZpbGVzLkluZGV4LnhtbAorIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmMvb3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIzLk1pbmVyLnhtbAorIGRlbGV0ZSBtb2RlIDEw MDY0NCBzcmMvcGhvdG9zLXRyYWNrZXItY2hhbmdlLWV2ZW50LmMKKyBkZWxldGUgbW9kZSAxMDA2 NDQgc3JjL3Bob3Rvcy10cmFja2VyLWNoYW5nZS1ldmVudC5oCisgZGVsZXRlIG1vZGUgMTAwNjQ0 IHNyYy9waG90b3MtdHJhY2tlci1jaGFuZ2UtbW9uaXRvci5jCisgZGVsZXRlIG1vZGUgMTAwNjQ0 IHNyYy9waG90b3MtdHJhY2tlci1jaGFuZ2UtbW9uaXRvci5oCisgZGVsZXRlIG1vZGUgMTAwNjQ0 IHNyYy9waG90b3MtdHJhY2tlci1yZXNvdXJjZXMueG1sCisKK2RpZmYgLS1naXQgYS9kYXRhL21l c29uLmJ1aWxkIGIvZGF0YS9tZXNvbi5idWlsZAoraW5kZXggNzg5OGIwY2MuLmYwZDg1ZDRiIDEw MDY0NAorLS0tIGEvZGF0YS9tZXNvbi5idWlsZAorKysrIGIvZGF0YS9tZXNvbi5idWlsZAorQEAg LTU0LDMgKzU0LDUgQEAgaW5zdGFsbF9kYXRhKAorICAgcGhvdG9zX25hbWVzcGFjZS50b19sb3dl cigpICsgJy5nc2NoZW1hLnhtbCcsCisgICBpbnN0YWxsX2Rpcjogam9pbl9wYXRocyhwaG90b3Nf ZGF0YWRpciwgJ2dsaWItMi4wJywgJ3NjaGVtYXMnKSwKKyApCisrCisrc3ViZGlyKCd0cmFja2Vy JykKK2RpZmYgLS1naXQgYS9kYXRhL3RyYWNrZXIvbWVzb24uYnVpbGQgYi9kYXRhL3RyYWNrZXIv bWVzb24uYnVpbGQKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMC4uYWNjYzk5 YzIKKy0tLSAvZGV2L251bGwKKysrKyBiL2RhdGEvdHJhY2tlci9tZXNvbi5idWlsZAorQEAgLTAs MCArMSwzMyBAQAorKyMgRmlsZXMgbmVlZGVkIGZvciBydW5uaW5nIFRyYWNrZXIgaW5zaWRlIHRo ZSBGbGF0cGFrIHNhbmRib3gsIGZvciBzeXN0ZW1zCisrIyB3aGljaCBkb24ndCBoYXZlIGEgc3Vp dGFibGUgdmVyc2lvbiBvZiBUcmFja2VyIGluIHRoZSBob3N0IE9TLgorKyMKKysjIFdlIG11c3Qg ZXhwb3J0IHRoZSAuc2VydmljZSBmaWxlcyBmcm9tIHRoZSBzYW5kYm94IHNvIHRoZXkgd29yayBv biB0aGUKKysjIHNlc3Npb24gYnVzLiBUaGlzIG1lYW5zIHRoZSBUcmFja2VyIGRvbWFpbiBuYW1l IG11c3QgY29ycmVzcG9uZCB3aXRoIHRoZQorKyMgYXBwbGljYXRpb24gSUQuCisrCisrCisrZG9t YWluX29udG9sb2dpZXNfZGlyID0gZ2V0X29wdGlvbignZGF0YWRpcicpIC8gJ3RyYWNrZXIzJyAv ICdkb21haW4tb250b2xvZ2llcycKKytkYnVzX3NlcnZpY2VzX2RpciA9IGdldF9vcHRpb24oJ2Rh dGFkaXInKSAvICdkYnVzLTEnIC8gJ3NlcnZpY2VzJworKworK3RyYWNrZXJfZG9tYWluX2NvbmZp ZyA9IGNvbmZpZ3VyYXRpb25fZGF0YSgpCisrdHJhY2tlcl9kb21haW5fY29uZmlnLnNldCgnYXBw bGljYXRpb25faWQnLCBwaG90b3NfbmFtZXNwYWNlKQorK3RyYWNrZXJfZG9tYWluX2NvbmZpZy5z ZXQoJ2RvbWFpbl9ydWxlJywgZ2V0X29wdGlvbigncHJlZml4JykgLyBkb21haW5fb250b2xvZ2ll c19kaXIgLyBwaG90b3NfbmFtZXNwYWNlICsgJy5kb21haW4ucnVsZScpCisrCisrY29uZmlndXJl X2ZpbGUoCisrICBpbnB1dDogJ29yZy5nbm9tZS5QaG90b3MuZG9tYWluLnJ1bGUuaW4nLAorKyAg b3V0cHV0OiBwaG90b3NfbmFtZXNwYWNlICsgJy5kb21haW4ucnVsZScsCisrICBjb25maWd1cmF0 aW9uOiB0cmFja2VyX2RvbWFpbl9jb25maWcsCisrICBpbnN0YWxsX2RpcjogZG9tYWluX29udG9s b2dpZXNfZGlyKQorKworK2NvbmZpZ3VyZV9maWxlKAorKyAgaW5wdXQ6ICdvcmcuZ25vbWUuUGhv dG9zLlRyYWNrZXIzLk1pbmVyLkV4dHJhY3Quc2VydmljZS5pbicsCisrICBvdXRwdXQ6IHBob3Rv c19uYW1lc3BhY2UgKyAnLlRyYWNrZXIzLk1pbmVyLkV4dHJhY3Quc2VydmljZScsCisrICBjb25m aWd1cmF0aW9uOiB0cmFja2VyX2RvbWFpbl9jb25maWcsCisrICBpbnN0YWxsX2RpcjogZGJ1c19z ZXJ2aWNlc19kaXIpCisrCisrY29uZmlndXJlX2ZpbGUoCisrICBpbnB1dDogJ29yZy5nbm9tZS5Q aG90b3MuVHJhY2tlcjMuTWluZXIuRmlsZXMuc2VydmljZS5pbicsCisrICBvdXRwdXQ6IHBob3Rv c19uYW1lc3BhY2UgKyAnLlRyYWNrZXIzLk1pbmVyLkZpbGVzLnNlcnZpY2UnLAorKyAgY29uZmln dXJhdGlvbjogdHJhY2tlcl9kb21haW5fY29uZmlnLAorKyAgaW5zdGFsbF9kaXI6IGRidXNfc2Vy dmljZXNfZGlyKQorKworZGlmZiAtLWdpdCBhL2RhdGEvdHJhY2tlci9vcmcuZ25vbWUuUGhvdG9z LlRyYWNrZXIzLk1pbmVyLkV4dHJhY3Quc2VydmljZS5pbiBiL2RhdGEvdHJhY2tlci9vcmcuZ25v bWUuUGhvdG9zLlRyYWNrZXIzLk1pbmVyLkV4dHJhY3Quc2VydmljZS5pbgorbmV3IGZpbGUgbW9k ZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwLi5lYjdhODdhYQorLS0tIC9kZXYvbnVsbAorKysrIGIv ZGF0YS90cmFja2VyL29yZy5nbm9tZS5QaG90b3MuVHJhY2tlcjMuTWluZXIuRXh0cmFjdC5zZXJ2 aWNlLmluCitAQCAtMCwwICsxLDcgQEAKKytbRC1CVVMgU2VydmljZV0KKytOYW1lPUBhcHBsaWNh dGlvbl9pZEAuVHJhY2tlcjMuTWluZXIuRXh0cmFjdAorK0V4ZWM9L2FwcC9saWJleGVjL3RyYWNr ZXItZXh0cmFjdC0zIC0tZG9tYWluLW9udG9sb2d5IEBkb21haW5fcnVsZUAKKysKKysjIE1pbmVy IGRldGFpbHMgbmVlZGVkIGZvciB0cmFja2VyLWNvbnRyb2wKKytQYXRoPS9vcmcvZnJlZWRlc2t0 b3AvVHJhY2tlcjMvTWluZXIvRXh0cmFjdAorK05hbWVTdWZmaXg9TWluZXIuRmlsZXMKK2RpZmYg LS1naXQgYS9kYXRhL3RyYWNrZXIvb3JnLmdub21lLlBob3Rvcy5UcmFja2VyMy5NaW5lci5GaWxl cy5zZXJ2aWNlLmluIGIvZGF0YS90cmFja2VyL29yZy5nbm9tZS5QaG90b3MuVHJhY2tlcjMuTWlu ZXIuRmlsZXMuc2VydmljZS5pbgorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAw Li40ZmE3MzcxZAorLS0tIC9kZXYvbnVsbAorKysrIGIvZGF0YS90cmFja2VyL29yZy5nbm9tZS5Q aG90b3MuVHJhY2tlcjMuTWluZXIuRmlsZXMuc2VydmljZS5pbgorQEAgLTAsMCArMSw3IEBACisr W0QtQlVTIFNlcnZpY2VdCisrTmFtZT1AYXBwbGljYXRpb25faWRALlRyYWNrZXIzLk1pbmVyLkZp bGVzCisrRXhlYz0vYXBwL2xpYmV4ZWMvdHJhY2tlci1taW5lci1mcy0zIC0tZG9tYWluLW9udG9s b2d5IEBkb21haW5fcnVsZUAgLS1pbml0aWFsLXNsZWVwIDAKKysKKysjIE1pbmVyIGRldGFpbHMg bmVlZGVkIGZvciB0cmFja2VyLWNvbnRyb2wKKytQYXRoPS9vcmcvZnJlZWRlc2t0b3AvVHJhY2tl cjMvTWluZXIvRmlsZXMKKytOYW1lU3VmZml4PU1pbmVyLkZpbGVzCitkaWZmIC0tZ2l0IGEvZGF0 YS90cmFja2VyL29yZy5nbm9tZS5QaG90b3MuZG9tYWluLnJ1bGUuaW4gYi9kYXRhL3RyYWNrZXIv b3JnLmdub21lLlBob3Rvcy5kb21haW4ucnVsZS5pbgorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2lu ZGV4IDAwMDAwMDAwLi44ZjVmYzRhMQorLS0tIC9kZXYvbnVsbAorKysrIGIvZGF0YS90cmFja2Vy L29yZy5nbm9tZS5QaG90b3MuZG9tYWluLnJ1bGUuaW4KK0BAIC0wLDAgKzEsMjAgQEAKKysjIFRo aXMgZGVmaW5lcyBhIHByaXZhdGUgVHJhY2tlciBkb21haW4gZm9yIEdOT01FIFBob3Rvcy4KKysj CisrIyBJdCdzIHVzZWQgdG8gcnVuIHRoZSBUcmFja2VyIGluZGV4ZXIgaW5zaWRlIGEgRmxhdHBh ayBzYW5kYm94LCB3aGVuIFBob3RvcyBpcworKyMgcnVubmluZyBvbiBhIGhvc3QgdGhhdCBkb2Vz bid0IGhhdmUgYSBzdWl0YWJsZSB2ZXJzaW9uIG9mIFRyYWNrZXIgaW5zdGFsbGVkLgorKworK1tE b21haW5PbnRvbG9neV0KKysjIExvY2F0aW9uIGZvciB0aGUgVHJhY2tlciBkYXRhYmFzZQorK0Nh Y2hlTG9jYXRpb249JFhER19DQUNIRV9IT01FL2dub21lLXBob3Rvcy9taW5lci9maWxlcworKwor KyMgTmFtZSBvZiB0aGUgb250b2xvZ3kgdG8gdXNlLCBtdXN0IGJlIG9uZSBsb2NhdGVkIGluCisr IyAkKHNoYXJlZGlyKS90cmFja2VyL29udG9sb2dpZXMKKytPbnRvbG9neU5hbWU9bmVwb211awor KworKyMgREJ1cyBuYW1lIGZvciB0aGUgb3duZXIgKG5vdCBvcHRpb25hbCkuIFRyYWNrZXIgd2ls bCB1c2UKKysjIHRoZSBkb21haW4gYXMgdGhlIHByZWZpeCBvZiB0aGUgREJ1cyBuYW1lIGZvciBh bGwgdGhlCisrIyBzZXJ2aWNlcyByZWxhdGVkIHRvIHRoaXMgZG9tYWluIG9udG9sb2d5LgorK0Rv bWFpbj1AYXBwbGljYXRpb25faWRACisrCisrIyBMaXN0IG9mIG1pbmVycyB3ZSBleHBlY3QgdG8g cnVuIGluIHRoaXMgZG9tYWluLgorK01pbmVycz1NaW5lci5GaWxlcztNaW5lci5FeHRyYWN0Citk aWZmIC0tZ2l0IGEvZmxhdHBhay9vcmcuZ25vbWUuUGhvdG9zLmpzb24gYi9mbGF0cGFrL29yZy5n bm9tZS5QaG90b3MuanNvbgoraW5kZXggNWQxNjY4OWMuLmFkZmRhZjM0IDEwMDY0NAorLS0tIGEv ZmxhdHBhay9vcmcuZ25vbWUuUGhvdG9zLmpzb24KKysrKyBiL2ZsYXRwYWsvb3JnLmdub21lLlBo b3Rvcy5qc29uCitAQCAtNyw3ICs3LDcgQEAKKyAgICAgInRhZ3MiOiBbICJuaWdodGx5IiBdLAor ICAgICAiZGVza3RvcC1maWxlLW5hbWUtcHJlZml4IjogIihOaWdodGx5KSAiLAorICAgICAiZmlu aXNoLWFyZ3MiOiBbCistICAgICAgICAiLS1lbnY9VFJBQ0tFUl9TUEFSUUxfQkFDS0VORD1idXMi LAorKyAgICAgICAgIi0tYWRkLXBvbGljeT1UcmFja2VyMy5kYnVzOm9yZy5mcmVlZGVza3RvcC5U cmFja2VyMy5NaW5lci5GaWxlcz10cmFja2VyOlBpY3R1cmVzIiwKKyAgICAgICAgICItLWZpbGVz eXN0ZW09eGRnLWRvd25sb2FkIiwKKyAgICAgICAgICItLWZpbGVzeXN0ZW09eGRnLXBpY3R1cmVz IiwKKyAgICAgICAgICItLW1ldGFkYXRhPVgtRENvbmY9bWlncmF0ZS1wYXRoPS9vcmcvZ25vbWUv cGhvdG9zLyIsCitAQCAtMTcsOCArMTcsOCBAQAorICAgICAgICAgIi0tc29ja2V0PXdheWxhbmQi LAorICAgICAgICAgIi0tc29ja2V0PXgxMSIsCisgICAgICAgICAiLS10YWxrLW5hbWU9b3JnLmZy ZWVkZXNrdG9wLkZpbGVNYW5hZ2VyMSIsCistICAgICAgICAiLS10YWxrLW5hbWU9b3JnLmZyZWVk ZXNrdG9wLlRyYWNrZXIxIiwKKy0gICAgICAgICItLXRhbGstbmFtZT1vcmcuZnJlZWRlc2t0b3Au VHJhY2tlcjEuTWluZXIuRXh0cmFjdCIsCisrICAgICAgICAiLS10YWxrLW5hbWU9b3JnLmZyZWVk ZXNrdG9wLlRyYWNrZXIzLk1pbmVyLkZpbGVzIiwKKysgICAgICAgICItLXRhbGstbmFtZT1vcmcu ZnJlZWRlc2t0b3AuVHJhY2tlcjMuTWluZXIuRmlsZXMuSW5kZXgiLAorICAgICAgICAgIi0tdGFs ay1uYW1lPWNvbS5pbnRlbC5kbGV5bmEtcmVuZGVyZXIiLAorICAgICAgICAgIi0tdGFsay1uYW1l PW9yZy5nbm9tZS5Db250cm9sQ2VudGVyIiwKKyAgICAgICAgICItLXRhbGstbmFtZT1vcmcuZ25v bWUuU2V0dGluZ3NEYWVtb24iLAorQEAgLTI0OCw1NiArMjQ4LDIyIEBACisgICAgICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgICBdCisgICAgICAgICB9LAorLSAgICAgICAgeworLSAgICAgICAg ICAgICJuYW1lIjogInRyYWNrZXIiLAorLSAgICAgICAgICAgICJidWlsZHN5c3RlbSI6ICJtZXNv biIsCistICAgICAgICAgICAgImNsZWFudXAiOiBbICIvYmluIiwgIi9ldGMiLCAiL2xpYi9naXJl cG9zaXRvcnktMS4wIiwgIi9saWJleGVjIiwgIi9zaGFyZS9kYnVzLTEiLCAiL3NoYXJlL2dpci0x LjAiIF0sCistICAgICAgICAgICAgImNvbmZpZy1vcHRzIjogWyAiLURiYXNoX2NvbXBsZXRpb249 bm8iLCAiLURkb2NzPWZhbHNlIiwgIi1Ec3lzdGVtZF91c2VyX3NlcnZpY2VzPW5vIiBdLAorLSAg ICAgICAgICAgICJzb3VyY2VzIjogWworLSAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAg ICAgICAgICAidHlwZSI6ICJnaXQiLAorLSAgICAgICAgICAgICAgICAgICAgInVybCI6ICJodHRw czovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvdHJhY2tlci5naXQiLAorLSAgICAgICAgICAgICAg ICAgICAgImJyYW5jaCI6ICJ0cmFja2VyLTIuMyIKKy0gICAgICAgICAgICAgICAgfQorLSAgICAg ICAgICAgIF0KKy0gICAgICAgIH0sCistICAgICAgICB7CistICAgICAgICAgICAgIm5hbWUiOiAi aW50bHRvb2wiLAorLSAgICAgICAgICAgICJjbGVhbnVwIjogWyAiKiIgXSwKKy0gICAgICAgICAg ICAic291cmNlcyI6IFsKKy0gICAgICAgICAgICAgICAgeworLSAgICAgICAgICAgICAgICAgICAg InR5cGUiOiAiYXJjaGl2ZSIsCistICAgICAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8v bGF1bmNocGFkLm5ldC9pbnRsdG9vbC90cnVuay8wLjUxLjAvK2Rvd25sb2FkL2ludGx0b29sLTAu NTEuMC50YXIuZ3oiLAorLSAgICAgICAgICAgICAgICAgICAgInNoYTI1NiI6ICI2N2M3NGQ5NDE5 NmIxNTNiNzc0YWI5Zjg5YjJmYTZjNmJhNzkzNTI0MDcwMzdjOGMxNGQ1YWViMzM0ZTk1OWNkIgor LSAgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgXQorLSAgICAgICAgfSwKKyAgICAgICAg IHsKKyAgICAgICAgICAgICAibmFtZSI6ICJ0cmFja2VyLW1pbmVycyIsCisgICAgICAgICAgICAg ImJ1aWxkc3lzdGVtIjogIm1lc29uIiwKKy0gICAgICAgICAgICAiY2xlYW51cCI6IFsgIi9ldGMi LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAiL2xpYiIsCistICAgICAgICAgICAgICAgICAg ICAgICAgICIvbGliZXhlYyIsCistICAgICAgICAgICAgICAgICAgICAgICAgICIvc2hhcmUvZGJ1 cy0xL3NlcnZpY2VzL29yZy5mcmVlZGVza3RvcC5UcmFja2VyMS5NaW5lci5FeHRyYWN0LnNlcnZp Y2UiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAiL3NoYXJlL2RidXMtMS9zZXJ2aWNlcy9v cmcuZnJlZWRlc2t0b3AuVHJhY2tlcjEuV3JpdGViYWNrLnNlcnZpY2UiLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAiL3NoYXJlL3RyYWNrZXIvbWluZXJzL29yZy5mcmVlZGVza3RvcC5UcmFj a2VyMS5NaW5lci5BcHBsaWNhdGlvbnMuc2VydmljZSIsCistICAgICAgICAgICAgICAgICAgICAg ICAgICIvc2hhcmUvdHJhY2tlci9taW5lcnMvb3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIxLk1pbmVy LkV4dHJhY3Quc2VydmljZSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICIvc2hhcmUvdHJh Y2tlci9taW5lcnMvb3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIxLk1pbmVyLlJTUy5zZXJ2aWNlIiwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgIi9zaGFyZS90cmFja2VyLW1pbmVycyIsCistICAg ICAgICAgICAgICAgICAgICAgICAgICIvc2hhcmUvZ2xpYi0yLjAvc2NoZW1hcy9vcmcuZnJlZWRl c2t0b3AuVHJhY2tlci5FeHRyYWN0LmdzY2hlbWEueG1sIiwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgIi9zaGFyZS9nbGliLTIuMC9zY2hlbWFzL29yZy5mcmVlZGVza3RvcC5UcmFja2VyLldy aXRlYmFjay5nc2NoZW1hLnhtbCIgXSwKKy0gICAgICAgICAgICAiY29uZmlnLW9wdHMiOiBbICIt RGV4dHJhY3Q9ZmFsc2UiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1EZ2VuZXJp Y19tZWRpYV9leHRyYWN0b3I9bm9uZSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi LURtaW5lcl9hcHBzPWZhbHNlIiwKKysgICAgICAgICAgICAiY2xlYW51cCI6IFsgIi9zaGFyZS9k YnVzLTEvc2VydmljZXMvb3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIzLk1pbmVyLkV4dHJhY3Quc2Vy dmljZSIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICIvc2hhcmUvZGJ1cy0xL3NlcnZpY2Vz L29yZy5mcmVlZGVza3RvcC5UcmFja2VyMy5NaW5lci5GaWxlcy5zZXJ2aWNlIiwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgIi9zaGFyZS9kYnVzLTEvc2VydmljZXMvb3JnLmZyZWVkZXNrdG9w LlRyYWNrZXIzLldyaXRlYmFjay5zZXJ2aWNlIiBdLAorKyAgICAgICAgICAgICJjb25maWctb3B0 cyI6IFsgIi1EbWFuPWZhbHNlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItRG1p bmVyX2ZzPXRydWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1EbWluZXJfcnNz PWZhbHNlIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICItRHN5c3RlbWRfdXNlcl9z ZXJ2aWNlcz1ubyIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLURzeXN0ZW1kX3Vz ZXJfc2VydmljZXM9ZmFsc2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1Ed3Jp dGViYWNrPWZhbHNlIiBdLAorICAgICAgICAgICAgICJzb3VyY2VzIjogWworICAgICAgICAgICAg ICAgICB7CisgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJnaXQiLAorICAgICAgICAgICAg ICAgICAgICAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvdHJhY2tlci1t aW5lcnMuZ2l0IiwKKy0gICAgICAgICAgICAgICAgICAgICJicmFuY2giOiAidHJhY2tlci1taW5l cnMtMi4zIgorKyAgICAgICAgICAgICAgICAgICAgImJyYW5jaCI6ICJtYXN0ZXIiCisgICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICBdCisgICAgICAgICB9LAorQEAgLTMwOSw3ICsyNzUs OCBAQAorICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJn aXQiLAorICAgICAgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5v cmcvR05PTUUvZ25vbWUtcGhvdG9zLmdpdCIsCistICAgICAgICAgICAgICAgICAgICAiZGlzYWJs ZS1zaGFsbG93LWNsb25lIjogInRydWUiCisrICAgICAgICAgICAgICAgICAgICAiZGlzYWJsZS1z aGFsbG93LWNsb25lIjogInRydWUiLAorKyAgICAgICAgICAgICAgICAgICAgImJyYW5jaCI6ICJz YW0vdHJhY2tlcjMiCisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBdCisgICAgICAg ICB9CitkaWZmIC0tZ2l0IGEvbWVzb24uYnVpbGQgYi9tZXNvbi5idWlsZAoraW5kZXggNzA4MTZk MjQuLjFjNmYyOTA2IDEwMDY0NAorLS0tIGEvbWVzb24uYnVpbGQKKysrKyBiL21lc29uLmJ1aWxk CitAQCAtMTcyLDggKzE3Miw3IEBAIGxpYmdkYXRhX2RlcCA9IGRlcGVuZGVuY3koJ2xpYmdkYXRh JywgdmVyc2lvbjogJz49IDAuMTcuMTAnKQorIGxpYmdmZ3JhcGhfZGVwID0gZGVwZW5kZW5jeSgn bGliZ2ZiZ3JhcGgtMC4yJywgdmVyc2lvbjogJz49IDAuMi4xJykKKyBsaWJqcGVnX2RlcCA9IGRl cGVuZGVuY3koJ2xpYmpwZWcnKQorIGxpYnBuZ19kZXAgPSBkZXBlbmRlbmN5KCdsaWJwbmcxNicp CistdHJhY2tlcl9jb250cm9sX2RlcCA9IGRlcGVuZGVuY3koJ3RyYWNrZXItY29udHJvbC0yLjAn KQorLXRyYWNrZXJfc3BhcnFsX2RlcCA9IGRlcGVuZGVuY3koJ3RyYWNrZXItc3BhcnFsLTIuMCcp CisrdHJhY2tlcl9zcGFycWxfZGVwID0gZGVwZW5kZW5jeSgndHJhY2tlci1zcGFycWwtMy4wJykK KyAKKyBkYnVzX2RlcCA9IGRlcGVuZGVuY3koJ2RidXMtMScpCisgZGJ1c19zZXJ2aWNlX2RpciA9 IGRidXNfZGVwLmdldF9wa2djb25maWdfdmFyaWFibGUoCitkaWZmIC0tZ2l0IGEvc3JjL21lc29u LmJ1aWxkIGIvc3JjL21lc29uLmJ1aWxkCitpbmRleCBiNWIyNzU5Yy4uNmIzYjdmMDEgMTAwNjQ0 CistLS0gYS9zcmMvbWVzb24uYnVpbGQKKysrKyBiL3NyYy9tZXNvbi5idWlsZAorQEAgLTIwNSw4 ICsyMDUsNiBAQCBzb3VyY2VzID0gY29tbW9uX3NvdXJjZXMgKyBmaWxlcygKKyAgICdwaG90b3Mt dG9vbC1lbmhhbmNlLmMnLAorICAgJ3Bob3Rvcy10b29sLWZpbHRlci1idXR0b24uYycsCisgICAn cGhvdG9zLXRvb2wtZmlsdGVycy5jJywKKy0gICdwaG90b3MtdHJhY2tlci1jaGFuZ2UtZXZlbnQu YycsCistICAncGhvdG9zLXRyYWNrZXItY2hhbmdlLW1vbml0b3IuYycsCisgICAncGhvdG9zLXRy YWNrZXItY29sbGVjdGlvbi12aWV3LWNvbnRyb2xsZXIuYycsCisgICAncGhvdG9zLXRyYWNrZXIt Y29sbGVjdGlvbnMtY29udHJvbGxlci5jJywKKyAgICdwaG90b3MtdHJhY2tlci1jb250cm9sbGVy LmMnLAorQEAgLTM2NywyMiArMzY1LDE4IEBAIHNvdXJjZXMgKz0gZ25vbWUuZ2RidXNfY29kZWdl bigKKyAgIGF1dG9jbGVhbnVwOiAnYWxsJywKKyApCisgCistdHJhY2tlcl9leHRyYWN0X3ByaW9y aXR5ID0gJ3Bob3Rvcy10cmFja2VyLWV4dHJhY3QtcHJpb3JpdHknCistCisgc291cmNlcyArPSBn bm9tZS5nZGJ1c19jb2RlZ2VuKAorLSAgdHJhY2tlcl9leHRyYWN0X3ByaW9yaXR5LAorLSAgdHJh Y2tlcl9leHRyYWN0X3ByaW9yaXR5ICsgJy54bWwnLAorLSAgaW50ZXJmYWNlX3ByZWZpeDogJ29y Zy5mcmVlZGVza3RvcC5UcmFja2VyMS4nLAorKyAgJ3Bob3Rvcy10cmFja2VyLW1pbmVyJywKKysg ICdvcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMuTWluZXIueG1sJywKKysgIGludGVyZmFjZV9wcmVm aXg6ICdvcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMuJywKKyAgIG5hbWVzcGFjZTogJ1RyYWNrZXIn LAorICAgYXV0b2NsZWFudXA6ICdhbGwnLAorICkKKyAKKy10cmFja2VyX3Jlc291cmNlcyA9ICdw aG90b3MtdHJhY2tlci1yZXNvdXJjZXMnCistCisgc291cmNlcyArPSBnbm9tZS5nZGJ1c19jb2Rl Z2VuKAorLSAgdHJhY2tlcl9yZXNvdXJjZXMsCistICB0cmFja2VyX3Jlc291cmNlcyArICcueG1s JywKKy0gIGludGVyZmFjZV9wcmVmaXg6ICdvcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjEuJywKKysg ICdwaG90b3MtdHJhY2tlci1taW5lci1pbmRleCcsCisrICAnb3JnLmZyZWVkZXNrdG9wLlRyYWNr ZXIzLk1pbmVyLkZpbGVzLkluZGV4LnhtbCcsCisrICBpbnRlcmZhY2VfcHJlZml4OiAnb3JnLmZy ZWVkZXNrdG9wLlRyYWNrZXIzLicsCisgICBuYW1lc3BhY2U6ICdUcmFja2VyJywKKyAgIGF1dG9j bGVhbnVwOiAnYWxsJywKKyApCitAQCAtNDAxLDcgKzM5NSw2IEBAIGRlcHMgPSBjb21tb25fZGVw cyArIFsKKyAgIGxpYmdkYXRhX2RlcCwKKyAgIGxpYmdmZ3JhcGhfZGVwLAorICAgbV9kZXAsCist ICB0cmFja2VyX2NvbnRyb2xfZGVwLAorICAgdHJhY2tlcl9zcGFycWxfZGVwLAorIF0KKyAKK2Rp ZmYgLS1naXQgYS9zcmMvb3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIzLk1pbmVyLkZpbGVzLkluZGV4 LnhtbCBiL3NyYy9vcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMuTWluZXIuRmlsZXMuSW5kZXgueG1s CituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAuLmUzNjhmMWUyCistLS0gL2Rl di9udWxsCisrKysgYi9zcmMvb3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIzLk1pbmVyLkZpbGVzLklu ZGV4LnhtbAorQEAgLTAsMCArMSwxMSBAQAorKzxub2RlPgorKyAgPGludGVyZmFjZSBuYW1lPSdv cmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMuTWluZXIuRmlsZXMuSW5kZXgnPgorKyAgICA8bWV0aG9k IG5hbWU9J0luZGV4TG9jYXRpb24nPgorKyAgICAgIDxhcmcgdHlwZT0ncycgbmFtZT0nZmlsZV91 cmknIGRpcmVjdGlvbj0naW4nIC8+CisrICAgICAgPGFyZyB0eXBlPSdhcycgbmFtZT0nZ3JhcGhz JyBkaXJlY3Rpb249J2luJyAvPgorKyAgICAgIDxhcmcgdHlwZT0nYXMnIG5hbWU9J2ZsYWdzJyBk aXJlY3Rpb249J2luJz4iCisrICAgICAgICA8ZG9jOmRvYz48ZG9jOnN1bW1hcnk+RXh0ZW5zaW9u IGZsYWdzLCBubyBhbGxvd2VkIHZhbHVlcyBhdCB0aGUgbW9tZW50PC9kb2M6c3VtbWFyeT48L2Rv Yzpkb2M+CisrICAgICAgPC9hcmc+CisrICAgIDwvbWV0aG9kPgorKyAgPC9pbnRlcmZhY2U+Cisr PC9ub2RlPgorZGlmZiAtLWdpdCBhL3NyYy9vcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMuTWluZXIu eG1sIGIvc3JjL29yZy5mcmVlZGVza3RvcC5UcmFja2VyMy5NaW5lci54bWwKK25ldyBmaWxlIG1v ZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMC4uNmZlMDljODQKKy0tLSAvZGV2L251bGwKKysrKyBi L3NyYy9vcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMuTWluZXIueG1sCitAQCAtMCwwICsxLDU2IEBA CisrPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKysKKys8bm9kZSBuYW1l PSIvIj4KKysgIDxpbnRlcmZhY2UgbmFtZT0ib3JnLmZyZWVkZXNrdG9wLlRyYWNrZXIzLk1pbmVy Ij4KKysgICAgPGFubm90YXRpb24gbmFtZT0ib3JnLmZyZWVkZXNrdG9wLkRCdXMuR0xpYi5DU3lt Ym9sIiB2YWx1ZT0iX3RyYWNrZXJfbWluZXJfZGJ1cyIvPgorKyAgICA8bWV0aG9kIG5hbWU9IlN0 YXJ0Ij4KKysgICAgICA8YW5ub3RhdGlvbiBuYW1lPSJvcmcuZnJlZWRlc2t0b3AuREJ1cy5HTGli LkFzeW5jIiAgdmFsdWU9InRydWUiLz4KKysgICAgPC9tZXRob2Q+CisrICAgIDxtZXRob2QgbmFt ZT0iR2V0U3RhdHVzIj4KKysgICAgICA8YW5ub3RhdGlvbiBuYW1lPSJvcmcuZnJlZWRlc2t0b3Au REJ1cy5HTGliLkFzeW5jIiB2YWx1ZT0idHJ1ZSIvPgorKyAgICAgIDxhcmcgdHlwZT0icyIgbmFt ZT0ic3RhdHVzIiBkaXJlY3Rpb249Im91dCIgLz4KKysgICAgPC9tZXRob2Q+CisrICAgIDxtZXRo b2QgbmFtZT0iR2V0UHJvZ3Jlc3MiPgorKyAgICAgIDxhbm5vdGF0aW9uIG5hbWU9Im9yZy5mcmVl ZGVza3RvcC5EQnVzLkdMaWIuQXN5bmMiIHZhbHVlPSJ0cnVlIi8+CisrICAgICAgPGFyZyB0eXBl PSJkIiBuYW1lPSJwcm9ncmVzcyIgZGlyZWN0aW9uPSJvdXQiIC8+CisrICAgIDwvbWV0aG9kPgor KyAgICA8bWV0aG9kIG5hbWU9IkdldFJlbWFpbmluZ1RpbWUiPgorKyAgICAgIDxhbm5vdGF0aW9u IG5hbWU9Im9yZy5mcmVlZGVza3RvcC5EQnVzLkdMaWIuQXN5bmMiIHZhbHVlPSJ0cnVlIi8+Cisr ICAgICAgPGFyZyB0eXBlPSJpIiBuYW1lPSJyZW1haW5pbmdfdGltZSIgZGlyZWN0aW9uPSJvdXQi IC8+CisrICAgIDwvbWV0aG9kPgorKyAgICA8bWV0aG9kIG5hbWU9IkdldFBhdXNlRGV0YWlscyI+ CisrICAgICAgPGFubm90YXRpb24gbmFtZT0ib3JnLmZyZWVkZXNrdG9wLkRCdXMuR0xpYi5Bc3lu YyIgdmFsdWU9InRydWUiLz4KKysgICAgICA8YXJnIHR5cGU9ImFzIiBuYW1lPSJwYXVzZV9hcHBs aWNhdGlvbnMiIGRpcmVjdGlvbj0ib3V0IiAvPgorKyAgICAgIDxhcmcgdHlwZT0iYXMiIG5hbWU9 InBhdXNlX3JlYXNvbnMiIGRpcmVjdGlvbj0ib3V0IiAvPgorKyAgICA8L21ldGhvZD4KKysgICAg PG1ldGhvZCBuYW1lPSJQYXVzZSI+CisrICAgICAgPGFubm90YXRpb24gbmFtZT0ib3JnLmZyZWVk ZXNrdG9wLkRCdXMuR0xpYi5Bc3luYyIgIHZhbHVlPSJ0cnVlIi8+CisrICAgICAgPGFyZyB0eXBl PSJzIiBuYW1lPSJhcHBsaWNhdGlvbiIgZGlyZWN0aW9uPSJpbiIgLz4KKysgICAgICA8YXJnIHR5 cGU9InMiIG5hbWU9InJlYXNvbiIgZGlyZWN0aW9uPSJpbiIgLz4KKysgICAgICA8YXJnIHR5cGU9 ImkiIG5hbWU9ImNvb2tpZSIgZGlyZWN0aW9uPSJvdXQiIC8+CisrICAgIDwvbWV0aG9kPgorKyAg ICA8bWV0aG9kIG5hbWU9IlBhdXNlRm9yUHJvY2VzcyI+CisrICAgICAgPGFubm90YXRpb24gbmFt ZT0ib3JnLmZyZWVkZXNrdG9wLkRCdXMuR0xpYi5Bc3luYyIgIHZhbHVlPSJ0cnVlIi8+CisrICAg ICAgPGFyZyB0eXBlPSJzIiBuYW1lPSJhcHBsaWNhdGlvbiIgZGlyZWN0aW9uPSJpbiIgLz4KKysg ICAgICA8YXJnIHR5cGU9InMiIG5hbWU9InJlYXNvbiIgZGlyZWN0aW9uPSJpbiIgLz4KKysgICAg ICA8YXJnIHR5cGU9ImkiIG5hbWU9ImNvb2tpZSIgZGlyZWN0aW9uPSJvdXQiIC8+CisrICAgIDwv bWV0aG9kPgorKyAgICA8bWV0aG9kIG5hbWU9IlJlc3VtZSI+CisrICAgICAgPGFubm90YXRpb24g bmFtZT0ib3JnLmZyZWVkZXNrdG9wLkRCdXMuR0xpYi5Bc3luYyIgdmFsdWU9InRydWUiLz4KKysg ICAgICA8YXJnIHR5cGU9ImkiIG5hbWU9ImNvb2tpZSIgZGlyZWN0aW9uPSJpbiIgLz4KKysgICAg PC9tZXRob2Q+CisrCisrICAgIDwhLS0gU2lnbmFscyAtLT4KKysgICAgPHNpZ25hbCBuYW1lPSJT dGFydGVkIiAvPgorKyAgICA8c2lnbmFsIG5hbWU9IlN0b3BwZWQiPgorKyAgICAgIDxhcmcgdHlw ZT0iYiIgbmFtZT0iaW50ZXJydXB0ZWQiIC8+CisrICAgIDwvc2lnbmFsPgorKyAgICA8c2lnbmFs IG5hbWU9IlBhdXNlZCIgLz4KKysgICAgPHNpZ25hbCBuYW1lPSJSZXN1bWVkIiAvPgorKyAgICA8 c2lnbmFsIG5hbWU9IlByb2dyZXNzIj4KKysgICAgICA8YXJnIHR5cGU9InMiIG5hbWU9InN0YXR1 cyIgLz4KKysgICAgICA8YXJnIHR5cGU9ImQiIG5hbWU9InByb2dyZXNzIiAvPgorKyAgICAgIDxh cmcgdHlwZT0iaSIgbmFtZT0icmVtYWluaW5nX3RpbWUiIC8+CisrICAgIDwvc2lnbmFsPgorKyAg PC9pbnRlcmZhY2U+CisrPC9ub2RlPgorZGlmZiAtLWdpdCBhL3NyYy9waG90b3MtYXBwbGljYXRp b24uYyBiL3NyYy9waG90b3MtYXBwbGljYXRpb24uYworaW5kZXggY2IxMTRmZGEuLjVmYmJiZWYy IDEwMDY0NAorLS0tIGEvc3JjL3Bob3Rvcy1hcHBsaWNhdGlvbi5jCisrKysgYi9zcmMvcGhvdG9z LWFwcGxpY2F0aW9uLmMKK0BAIC0zNiw3ICszNiw2IEBACisgI2luY2x1ZGUgPGdsaWIuaD4KKyAj aW5jbHVkZSA8Z2xpYi9naTE4bi5oPgorICNpbmNsdWRlIDxncmlsby5oPgorLSNpbmNsdWRlIDxs aWJ0cmFja2VyLWNvbnRyb2wvdHJhY2tlci1jb250cm9sLmg+CisgCisgI2luY2x1ZGUgInBob3Rv cy1hcHBsaWNhdGlvbi5oIgorICNpbmNsdWRlICJwaG90b3MtYmFzZS1pdGVtLmgiCitAQCAtNjgs NyArNjcsOCBAQAorICNpbmNsdWRlICJwaG90b3Mtc2hhcmUtbm90aWZpY2F0aW9uLmgiCisgI2lu Y2x1ZGUgInBob3Rvcy1zaGFyZS1wb2ludC1tYW5hZ2VyLmgiCisgI2luY2x1ZGUgInBob3Rvcy10 aHVtYm5haWwtZmFjdG9yeS5oIgorLSNpbmNsdWRlICJwaG90b3MtdHJhY2tlci1leHRyYWN0LXBy aW9yaXR5LmgiCisrI2luY2x1ZGUgInBob3Rvcy10cmFja2VyLW1pbmVyLWluZGV4LmgiCisrI2lu Y2x1ZGUgInBob3Rvcy10cmFja2VyLXF1ZXVlLmgiCisgI2luY2x1ZGUgInBob3Rvcy11dGlscy5o IgorIAorIAorQEAgLTEyNyw3ICsxMjcsNyBAQCBzdHJ1Y3QgX1Bob3Rvc0FwcGxpY2F0aW9uCisg ICBQaG90b3NTZWFyY2hQcm92aWRlciAqc2VhcmNoX3Byb3ZpZGVyOworICAgUGhvdG9zU2VsZWN0 aW9uQ29udHJvbGxlciAqc2VsX2NudHJscjsKKyAgIFBob3Rvc1RodW1ibmFpbEZhY3RvcnkgKmZh Y3Rvcnk7CistICBUcmFja2VyRXh0cmFjdFByaW9yaXR5ICpleHRyYWN0X3ByaW9yaXR5OworKyAg VHJhY2tlck1pbmVyRmlsZXNJbmRleCAqbWluZXJfY29udHJvbF9wcm94eTsKKyAgIGdib29sZWFu IGVtcHR5X3Jlc3VsdHM7CisgICBnYm9vbGVhbiBtYWluX3dpbmRvd19kZWxldGVkOworICAgZ3Vp bnQgY3JlYXRlX21pbmVyc19jb3VudDsKK0BAIC0xNDgsNyArMTQ4LDYgQEAgc3RhdGljIGd1aW50 IHNpZ25hbHNbTEFTVF9TSUdOQUxdID0geyAwIH07CisgCisgc3RhdGljIHZvaWQgcGhvdG9zX2Fw cGxpY2F0aW9uX3NlYXJjaF9jb250ZXh0X2lmYWNlX2luaXQgKFBob3Rvc1NlYXJjaENvbnRleHRJ bnRlcmZhY2UgKmlmYWNlKTsKKyAKKy0KKyBHX0RFRklORV9UWVBFX1dJVEhfQ09ERSAoUGhvdG9z QXBwbGljYXRpb24sIHBob3Rvc19hcHBsaWNhdGlvbiwgR1RLX1RZUEVfQVBQTElDQVRJT04sCisg ICAgICAgICAgICAgICAgICAgICAgICAgIEdfSU1QTEVNRU5UX0lOVEVSRkFDRSAoUEhPVE9TX1RZ UEVfU0VBUkNIX0NPTlRFWFQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcGhvdG9zX2FwcGxpY2F0aW9uX3NlYXJjaF9jb250ZXh0X2lmYWNlX2luaXQp KTsKK0BAIC0xOTEsMTEgKzE5MCwxMSBAQCBzdHJ1Y3QgX1Bob3Rvc0FwcGxpY2F0aW9uQ3JlYXRl RGF0YQorIHN0cnVjdCBfUGhvdG9zQXBwbGljYXRpb25JbXBvcnREYXRhCisgeworICAgUGhvdG9z QXBwbGljYXRpb24gKmFwcGxpY2F0aW9uOworKyAgVHJhY2tlck1pbmVyRmlsZXNJbmRleCAqbWlu ZXJfY29udHJvbF9wcm94eTsKKyAgIEdGaWxlICpkZXN0aW5hdGlvbjsKKyAgIEdGaWxlICppbXBv cnRfc3ViX2RpcjsKKyAgIEdMaXN0ICpmaWxlczsKKyAgIFBob3Rvc0Jhc2VJdGVtICpjb2xsZWN0 aW9uOworLSAgVHJhY2tlck1pbmVyTWFuYWdlciAqbWFuYWdlcjsKKyAgIGdjaGFyICpjb2xsZWN0 aW9uX3VybjsKKyAgIGdpbnQ2NCBjdGltZV9sYXRlc3Q7CisgfTsKK0BAIC0yNDgsNyArMjQ3LDcg QEAgcGhvdG9zX2FwcGxpY2F0aW9uX2NyZWF0ZV9kYXRhX2ZyZWUgKFBob3Rvc0FwcGxpY2F0aW9u Q3JlYXRlRGF0YSAqZGF0YSkKKyAKKyBzdGF0aWMgUGhvdG9zQXBwbGljYXRpb25JbXBvcnREYXRh ICoKKyBwaG90b3NfYXBwbGljYXRpb25faW1wb3J0X2RhdGFfbmV3IChQaG90b3NBcHBsaWNhdGlv biAqYXBwbGljYXRpb24sCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJh Y2tlck1pbmVyTWFuYWdlciAqbWFuYWdlciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBUcmFja2VyTWluZXJGaWxlc0luZGV4ICptaW5lcl9jb250cm9sX3Byb3h5LAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMaXN0ICpmaWxlcywKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaW50NjQgY3RpbWVfbGF0ZXN0KQorIHsKK0BA IC0yNTcsNyArMjU2LDcgQEAgcGhvdG9zX2FwcGxpY2F0aW9uX2ltcG9ydF9kYXRhX25ldyAoUGhv dG9zQXBwbGljYXRpb24gKmFwcGxpY2F0aW9uLAorICAgZGF0YSA9IGdfc2xpY2VfbmV3MCAoUGhv dG9zQXBwbGljYXRpb25JbXBvcnREYXRhKTsKKyAgIGdfYXBwbGljYXRpb25faG9sZCAoR19BUFBM SUNBVElPTiAoYXBwbGljYXRpb24pKTsKKyAgIGRhdGEtPmFwcGxpY2F0aW9uID0gYXBwbGljYXRp b247CistICBkYXRhLT5tYW5hZ2VyID0gZ19vYmplY3RfcmVmIChtYW5hZ2VyKTsKKysgIGRhdGEt Pm1pbmVyX2NvbnRyb2xfcHJveHkgPSBtaW5lcl9jb250cm9sX3Byb3h5OworICAgZGF0YS0+Zmls ZXMgPSBnX2xpc3RfY29weV9kZWVwIChmaWxlcywgKEdDb3B5RnVuYykgZ19vYmplY3RfcmVmLCBO VUxMKTsKKyAgIGRhdGEtPmN0aW1lX2xhdGVzdCA9IGN0aW1lX2xhdGVzdDsKKyAgIHJldHVybiBk YXRhOworQEAgLTI3Nyw4ICsyNzYsOCBAQCBwaG90b3NfYXBwbGljYXRpb25faW1wb3J0X2RhdGFf ZnJlZSAoUGhvdG9zQXBwbGljYXRpb25JbXBvcnREYXRhICpkYXRhKQorIAorICAgZ19jbGVhcl9v YmplY3QgKCZkYXRhLT5kZXN0aW5hdGlvbik7CisgICBnX2NsZWFyX29iamVjdCAoJmRhdGEtPmlt cG9ydF9zdWJfZGlyKTsKKysgIGdfY2xlYXJfb2JqZWN0ICgmZGF0YS0+bWluZXJfY29udHJvbF9w cm94eSk7CisgICBnX2xpc3RfZnJlZV9mdWxsIChkYXRhLT5maWxlcywgZ19vYmplY3RfdW5yZWYp OworLSAgZ19jbGVhcl9vYmplY3QgKCZkYXRhLT5tYW5hZ2VyKTsKKyAgIGdfZnJlZSAoZGF0YS0+ Y29sbGVjdGlvbl91cm4pOworICAgZ19zbGljZV9mcmVlIChQaG90b3NBcHBsaWNhdGlvbkltcG9y dERhdGEsIGRhdGEpOworIH0KK0BAIC01ODQsMjcgKzU4Myw2IEBAIHBob3Rvc19hcHBsaWNhdGlv bl9hY3Rpb25zX3VwZGF0ZSAoUGhvdG9zQXBwbGljYXRpb24gKnNlbGYpCisgfQorIAorIAorLXN0 YXRpYyB2b2lkCistcGhvdG9zX2FwcGxpY2F0aW9uX3RyYWNrZXJfY2xlYXJfcmRmX3R5cGVzIChH T2JqZWN0ICpzb3VyY2Vfb2JqZWN0LCBHQXN5bmNSZXN1bHQgKnJlcywgZ3BvaW50ZXIgdXNlcl9k YXRhKQorLXsKKy0gIFBob3Rvc0FwcGxpY2F0aW9uICpzZWxmID0gUEhPVE9TX0FQUExJQ0FUSU9O ICh1c2VyX2RhdGEpOworLSAgVHJhY2tlckV4dHJhY3RQcmlvcml0eSAqZXh0cmFjdF9wcmlvcml0 eSA9IFRSQUNLRVJfRVhUUkFDVF9QUklPUklUWSAoc291cmNlX29iamVjdCk7CistCistICB7Cist ICAgIGdfYXV0b3B0ciAoR0Vycm9yKSBlcnJvciA9IE5VTEw7CistCistICAgIGlmICghdHJhY2tl cl9leHRyYWN0X3ByaW9yaXR5X2NhbGxfY2xlYXJfcmRmX3R5cGVzX2ZpbmlzaCAoZXh0cmFjdF9w cmlvcml0eSwgcmVzLCAmZXJyb3IpKQorLSAgICAgIHsKKy0gICAgICAgIGdfd2FybmluZyAoIlVu YWJsZSB0byBjYWxsIENsZWFyUmRmVHlwZXM6ICVzIiwgZXJyb3ItPm1lc3NhZ2UpOworLSAgICAg ICAgZ290byBvdXQ7CistICAgICAgfQorLSAgfQorLQorLSBvdXQ6CistICBnX2FwcGxpY2F0aW9u X3JlbGVhc2UgKEdfQVBQTElDQVRJT04gKHNlbGYpKTsKKy19CistCistCisgc3RhdGljIGdib29s ZWFuCisgcGhvdG9zX2FwcGxpY2F0aW9uX2RlbGV0ZV9ldmVudCAoUGhvdG9zQXBwbGljYXRpb24g KnNlbGYpCisgeworQEAgLTY0MSwxNiArNjE5LDYgQEAgcGhvdG9zX2FwcGxpY2F0aW9uX2Rlc3Ry b3kgKFBob3Rvc0FwcGxpY2F0aW9uICpzZWxmKQorICAgc2VsZi0+Y3JlYXRlX3dpbmRvd19jYW5j ZWxsYWJsZSA9IGdfY2FuY2VsbGFibGVfbmV3ICgpOworIAorICAgcGhvdG9zX2FwcGxpY2F0aW9u X3N0b3BfbWluZXJzIChzZWxmKTsKKy0KKy0gIGlmIChzZWxmLT5leHRyYWN0X3ByaW9yaXR5ICE9 IE5VTEwpCistICAgIHsKKy0gICAgICBnX2FwcGxpY2F0aW9uX2hvbGQgKEdfQVBQTElDQVRJT04g KHNlbGYpKTsKKy0gICAgICB0cmFja2VyX2V4dHJhY3RfcHJpb3JpdHlfY2FsbF9jbGVhcl9yZGZf dHlwZXMgKHNlbGYtPmV4dHJhY3RfcHJpb3JpdHksCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGhvdG9zX2FwcGxpY2F0aW9uX3RyYWNr ZXJfY2xlYXJfcmRmX3R5cGVzLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZik7CistICAgICAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5l eHRyYWN0X3ByaW9yaXR5KTsKKy0gICAgfQorIH0KKyAKKyAKK0BAIC03NDAsNjAgKzcwOCw2IEBA IHBob3Rvc19hcHBsaWNhdGlvbl9nZWdsX2luaXRfZmlzaGVzX2lkbGUgKGdwb2ludGVyIHVzZXJf ZGF0YSkKKyB9CisgCisgCistc3RhdGljIHZvaWQKKy1waG90b3NfYXBwbGljYXRpb25fdHJhY2tl cl9zZXRfcmRmX3R5cGVzIChHT2JqZWN0ICpzb3VyY2Vfb2JqZWN0LCBHQXN5bmNSZXN1bHQgKnJl cywgZ3BvaW50ZXIgdXNlcl9kYXRhKQorLXsKKy0gIFBob3Rvc0FwcGxpY2F0aW9uICpzZWxmID0g UEhPVE9TX0FQUExJQ0FUSU9OICh1c2VyX2RhdGEpOworLSAgVHJhY2tlckV4dHJhY3RQcmlvcml0 eSAqZXh0cmFjdF9wcmlvcml0eSA9IFRSQUNLRVJfRVhUUkFDVF9QUklPUklUWSAoc291cmNlX29i amVjdCk7CistCistICB7CistICAgIGdfYXV0b3B0ciAoR0Vycm9yKSBlcnJvciA9IE5VTEw7Cist CistICAgIGlmICghdHJhY2tlcl9leHRyYWN0X3ByaW9yaXR5X2NhbGxfc2V0X3JkZl90eXBlc19m aW5pc2ggKGV4dHJhY3RfcHJpb3JpdHksIHJlcywgJmVycm9yKSkKKy0gICAgICB7CistICAgICAg ICBpZiAoIWdfZXJyb3JfbWF0Y2hlcyAoZXJyb3IsIEdfSU9fRVJST1IsIEdfSU9fRVJST1JfQ0FO Q0VMTEVEKSkKKy0gICAgICAgICAgZ193YXJuaW5nICgiVW5hYmxlIHRvIGNhbGwgU2V0UmRmVHlw ZXM6ICVzIiwgZXJyb3ItPm1lc3NhZ2UpOworLQorLSAgICAgICAgZ290byBvdXQ7CistICAgICAg fQorLSAgfQorLQorLSBvdXQ6CistICBnX2FwcGxpY2F0aW9uX3JlbGVhc2UgKEdfQVBQTElDQVRJ T04gKHNlbGYpKTsKKy19CistCistCistc3RhdGljIHZvaWQKKy1waG90b3NfYXBwbGljYXRpb25f dHJhY2tlcl9leHRyYWN0X3ByaW9yaXR5IChHT2JqZWN0ICpzb3VyY2Vfb2JqZWN0LCBHQXN5bmNS ZXN1bHQgKnJlcywgZ3BvaW50ZXIgdXNlcl9kYXRhKQorLXsKKy0gIFBob3Rvc0FwcGxpY2F0aW9u ICpzZWxmID0gUEhPVE9TX0FQUExJQ0FUSU9OICh1c2VyX2RhdGEpOworLSAgY29uc3QgZ2NoYXIg KmNvbnN0IHJkZl90eXBlc1tdID0geyJuZm86SW1hZ2UiLCBOVUxMfTsKKy0KKy0gIHsKKy0gICAg Z19hdXRvcHRyIChHRXJyb3IpIGVycm9yID0gTlVMTDsKKy0KKy0gICAgc2VsZi0+ZXh0cmFjdF9w cmlvcml0eSA9IHRyYWNrZXJfZXh0cmFjdF9wcmlvcml0eV9wcm94eV9uZXdfZm9yX2J1c19maW5p c2ggKHJlcywgJmVycm9yKTsKKy0gICAgaWYgKGVycm9yICE9IE5VTEwpCistICAgICAgeworLSAg ICAgICAgaWYgKCFnX2Vycm9yX21hdGNoZXMgKGVycm9yLCBHX0lPX0VSUk9SLCBHX0lPX0VSUk9S X0NBTkNFTExFRCkpCistICAgICAgICAgIGdfd2FybmluZyAoIlVuYWJsZSB0byBjcmVhdGUgVHJh Y2tlckV4dHJhY3RQcmlvcml0eSBwcm94eTogJXMiLCBlcnJvci0+bWVzc2FnZSk7CistCistICAg ICAgICBnb3RvIG91dDsKKy0gICAgICB9CistICB9CistCistICBnX2FwcGxpY2F0aW9uX2hvbGQg KEdfQVBQTElDQVRJT04gKHNlbGYpKTsKKy0gIHRyYWNrZXJfZXh0cmFjdF9wcmlvcml0eV9jYWxs X3NldF9yZGZfdHlwZXMgKHNlbGYtPmV4dHJhY3RfcHJpb3JpdHksCistICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZGZfdHlwZXMsCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLT5jcmVhdGVfd2luZG93X2Nh bmNlbGxhYmxlLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcGhvdG9zX2FwcGxpY2F0aW9uX3RyYWNrZXJfc2V0X3JkZl90eXBlcywKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYpOworLQorLSBvdXQ6Cist ICBnX2FwcGxpY2F0aW9uX3JlbGVhc2UgKEdfQVBQTElDQVRJT04gKHNlbGYpKTsKKy19CistCist Cisgc3RhdGljIGdib29sZWFuCisgcGhvdG9zX2FwcGxpY2F0aW9uX2NyZWF0ZV93aW5kb3cgKFBo b3Rvc0FwcGxpY2F0aW9uICpzZWxmKQorIHsKK0BAIC04MjgsMTMgKzc0Miw2IEBAIHBob3Rvc19h cHBsaWNhdGlvbl9jcmVhdGVfd2luZG93IChQaG90b3NBcHBsaWNhdGlvbiAqc2VsZikKKyAgICAg c2VsZi0+aW5pdF9maXNoZXNfaWQgPSBnX2lkbGVfYWRkIChwaG90b3NfYXBwbGljYXRpb25fZ2Vn bF9pbml0X2Zpc2hlc19pZGxlLCBzZWxmKTsKKyAKKyAgIGdfYXBwbGljYXRpb25faG9sZCAoR19B UFBMSUNBVElPTiAoc2VsZikpOworLSAgdHJhY2tlcl9leHRyYWN0X3ByaW9yaXR5X3Byb3h5X25l d19mb3JfYnVzIChHX0JVU19UWVBFX1NFU1NJT04sCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEdfREJVU19QUk9YWV9GTEFHU19OT05FLAorLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3JnLmZyZWVkZXNrdG9wLlRy YWNrZXIxLk1pbmVyLkV4dHJhY3QiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiL29yZy9mcmVlZGVza3RvcC9UcmFja2VyMS9FeHRyYWN0L1ByaW9yaXR5 IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi0+ Y3JlYXRlX3dpbmRvd19jYW5jZWxsYWJsZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcGhvdG9zX2FwcGxpY2F0aW9uX3RyYWNrZXJfZXh0cmFjdF9wcmlv cml0eSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zik7CisgCisgICBwaG90b3NfYXBwbGljYXRpb25fc3RhcnRfbWluZXJzIChzZWxmKTsKKyAgIHJl dHVybiBUUlVFOworQEAgLTExMTMsMTggKzEwMjAsMTggQEAgcGhvdG9zX2FwcGxpY2F0aW9uX2dl dF9zdGF0ZSAoUGhvdG9zU2VhcmNoQ29udGV4dCAqY29udGV4dCkKKyAKKyAKKyBzdGF0aWMgdm9p ZAorLXBob3Rvc19hcHBsaWNhdGlvbl9pbXBvcnRfaW5kZXhfZmlsZSAoR09iamVjdCAqc291cmNl X29iamVjdCwgR0FzeW5jUmVzdWx0ICpyZXMsIGdwb2ludGVyIHVzZXJfZGF0YSkKKytwaG90b3Nf YXBwbGljYXRpb25faW1wb3J0X2luZGV4X2xvY2F0aW9uIChHT2JqZWN0ICpzb3VyY2Vfb2JqZWN0 LCBHQXN5bmNSZXN1bHQgKnJlcywgZ3BvaW50ZXIgdXNlcl9kYXRhKQorIHsKKyAgIFBob3Rvc0Fw cGxpY2F0aW9uICpzZWxmOworICAgZ19hdXRvcHRyIChHRmlsZSkgZmlsZSA9IEdfRklMRSAodXNl cl9kYXRhKTsKKy0gIFRyYWNrZXJNaW5lck1hbmFnZXIgKm1hbmFnZXIgPSBUUkFDS0VSX01JTkVS X01BTkFHRVIgKHNvdXJjZV9vYmplY3QpOworKyAgVHJhY2tlck1pbmVyRmlsZXNJbmRleCAqbWlu ZXJfY29udHJvbF9wcm94eSA9IFRSQUNLRVJfTUlORVJfRklMRVNfSU5ERVggKHNvdXJjZV9vYmpl Y3QpOworIAorICAgc2VsZiA9IFBIT1RPU19BUFBMSUNBVElPTiAoZ19hcHBsaWNhdGlvbl9nZXRf ZGVmYXVsdCAoKSk7CisgCisgICB7CisgICAgIGdfYXV0b3B0ciAoR0Vycm9yKSBlcnJvciA9IE5V TEw7CisgCistICAgIGlmICghdHJhY2tlcl9taW5lcl9tYW5hZ2VyX2luZGV4X2ZpbGVfZm9yX3By b2Nlc3NfZmluaXNoIChtYW5hZ2VyLCByZXMsICZlcnJvcikpCisrICAgIGlmICghdHJhY2tlcl9t aW5lcl9maWxlc19pbmRleF9jYWxsX2luZGV4X2xvY2F0aW9uX2ZpbmlzaCAobWluZXJfY29udHJv bF9wcm94eSwgcmVzLCAmZXJyb3IpKQorICAgICAgIHsKKyAgICAgICAgIGdfYXV0b2ZyZWUgZ2No YXIgKnVyaSA9IE5VTEw7CisgCitAQCAtMTMyMyw3ICsxMjMwLDYgQEAgcGhvdG9zX2FwcGxpY2F0 aW9uX2ltcG9ydF9maWxlX2NvcHkgKEdPYmplY3QgKnNvdXJjZV9vYmplY3QsIEdBc3luY1Jlc3Vs dCAqcmVzLAorICAgUGhvdG9zQXBwbGljYXRpb24gKnNlbGYgPSBkYXRhLT5hcHBsaWNhdGlvbjsK KyAgIGdfYXV0b3B0ciAoR0ZpbGUpIGRlc3RpbmF0aW9uID0gTlVMTDsKKyAgIEdGaWxlICpzb3Vy Y2UgPSBHX0ZJTEUgKHNvdXJjZV9vYmplY3QpOworLSAgVHJhY2tlck1pbmVyTWFuYWdlciAqbWFu YWdlciA9IGRhdGEtPm1hbmFnZXI7CisgCisgICB7CisgICAgIGdfYXV0b3B0ciAoR0Vycm9yKSBl cnJvciA9IE5VTEw7CitAQCAtMTM0OCw2ICsxMjU0LDggQEAgcGhvdG9zX2FwcGxpY2F0aW9uX2lt cG9ydF9maWxlX2NvcHkgKEdPYmplY3QgKnNvdXJjZV9vYmplY3QsIEdBc3luY1Jlc3VsdCAqcmVz LAorICAgZWxzZQorICAgICB7CisgICAgICAgZ19hdXRvZnJlZSBnY2hhciAqZGVzdGluYXRpb25f dXJpID0gTlVMTDsKKysgICAgICBjb25zdCBnY2hhciAqdHJhY2tlcl9wcmlvcml0eV9ncmFwaHNb XSA9IHsgVFJBQ0tFUl9QSUNUVVJFU19HUkFQSCB9OworKyAgICAgIGNvbnN0IGdjaGFyICp0cmFj a2VyX2luZGV4X2xvY2F0aW9uX2ZsYWdzW10gPSB7ICJmb3ItcHJvY2VzcyIgfTsKKyAKKyAgICAg ICBnX2Fzc2VydF90cnVlIChHX0lTX0ZJTEUgKGRlc3RpbmF0aW9uKSk7CisgICAgICAgZ19zZXRf b2JqZWN0ICgmZGF0YS0+ZGVzdGluYXRpb24sIGRlc3RpbmF0aW9uKTsKK0BAIC0xMzY0LDExICsx MjcyLDEzIEBAIHBob3Rvc19hcHBsaWNhdGlvbl9pbXBvcnRfZmlsZV9jb3B5IChHT2JqZWN0ICpz b3VyY2Vfb2JqZWN0LCBHQXN5bmNSZXN1bHQgKnJlcywKKyAKKyAgICAgICBnX2FwcGxpY2F0aW9u X2hvbGQgKEdfQVBQTElDQVRJT04gKHNlbGYpKTsKKyAgICAgICBnX2FwcGxpY2F0aW9uX21hcmtf YnVzeSAoR19BUFBMSUNBVElPTiAoc2VsZikpOworLSAgICAgIHRyYWNrZXJfbWluZXJfbWFuYWdl cl9pbmRleF9maWxlX2Zvcl9wcm9jZXNzX2FzeW5jIChtYW5hZ2VyLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbiwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTlVMTCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcGhvdG9zX2FwcGxpY2F0aW9uX2ltcG9ydF9pbmRleF9maWxlLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX29i amVjdF9yZWYgKGRlc3RpbmF0aW9uKSk7CisrICAgICAgdHJhY2tlcl9taW5lcl9maWxlc19pbmRl eF9jYWxsX2luZGV4X2xvY2F0aW9uIChzZWxmLT5taW5lcl9jb250cm9sX3Byb3h5LAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRp b25fdXJpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdHJhY2tlcl9wcmlvcml0eV9ncmFwaHMsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFja2VyX2luZGV4X2xvY2F0aW9uX2ZsYWdz LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TlVMTCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHBob3Rvc19hcHBsaWNhdGlvbl9pbXBvcnRfaW5kZXhfbG9jYXRpb24sCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX29iamVjdF9yZWYg KGRlc3RpbmF0aW9uKSk7CisgICAgIH0KKyAKKyAgb3V0OgorQEAgLTE1MDksNiArMTQxOSwzNyBA QCBwaG90b3NfYXBwbGljYXRpb25faW1wb3J0X3Jlc3BvbnNlIChHdGtEaWFsb2cgKmRpYWxvZywg Z2ludCByZXNwb25zZV9pZCwgZ3BvaW50ZQorIH0KKyAKKyAKKytzdGF0aWMgVHJhY2tlck1pbmVy RmlsZXNJbmRleCAqCisrcGhvdG9zX2FwcGxpY2F0aW9uX2dldF9taW5lcl9mc19jb250cm9sX3By b3h5IChHQ2FuY2VsbGFibGUgKmNhbmNlbGxhYmxlKQorK3sKKysgIGdfYXV0b3B0ciAoUGhvdG9z VHJhY2tlclF1ZXVlKSB0cmFja2VyX3F1ZXVlID0gTlVMTDsKKysgIGNvbnN0IGdjaGFyICptaW5l cl9mc19jb250cm9sX2J1c25hbWU7CisrICBnX2F1dG9wdHIgKEdFcnJvcikgZXJyb3IgPSBOVUxM OworKyAgVHJhY2tlck1pbmVyRmlsZXNJbmRleCAqbWluZXJfY29udHJvbF9wcm94eTsKKysKKysg IHRyYWNrZXJfcXVldWUgPSBwaG90b3NfdHJhY2tlcl9xdWV1ZV9kdXBfc2luZ2xldG9uIChjYW5j ZWxsYWJsZSwgJmVycm9yKTsKKysKKysgIGlmICghdHJhY2tlcl9xdWV1ZSkgeworKyAgICBnX3dh cm5pbmcgKCJFcnJvciBnZXR0aW5nIFRyYWNrZXIgcXVldWU6ICVzLiBJbXBvcnQgd2lsbCBub3Qg d29yay4iLCBlcnJvci0+bWVzc2FnZSk7CisrICAgIHJldHVybiBOVUxMOworKyAgfQorKworKyAg bWluZXJfZnNfY29udHJvbF9idXNuYW1lID0gcGhvdG9zX3RyYWNrZXJfcXVldWVfZ2V0X21pbmVy X2ZzX2NvbnRyb2xfYnVzbmFtZSAodHJhY2tlcl9xdWV1ZSk7CisrICBtaW5lcl9jb250cm9sX3By b3h5ID0gdHJhY2tlcl9taW5lcl9maWxlc19pbmRleF9wcm94eV9uZXdfZm9yX2J1c19zeW5jIChH X0JVU19UWVBFX1NFU1NJT04sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0RCVVNfUFJPWFlfRkxBR1Nf Tk9ORSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG1pbmVyX2ZzX2NvbnRyb2xfYnVzbmFtZSwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICIvb3JnL2ZyZWVkZXNrdG9wL1RyYWNrZXIzL01pbmVyL0ZpbGVzL0NvbnRy b2wiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZlcnJvcik7 CisrICBpZiAoIW1pbmVyX2NvbnRyb2xfcHJveHkpIHsKKysgICAgZ193YXJuaW5nICgiRXJyb3Ig Z2V0dGluZyBUcmFja2VyIE1pbmVyIEZTIGNvbnRyb2wgcHJveHk6ICVzLiBJbXBvcnQgd2lsbCBu b3Qgd29yayIsIGVycm9yLT5tZXNzYWdlKTsKKysgICAgcmV0dXJuIE5VTEw7CisrICB9CisrCisr ICByZXR1cm4gbWluZXJfY29udHJvbF9wcm94eTsKKyt9CisrCisrCisgc3RhdGljIHZvaWQKKyBw aG90b3NfYXBwbGljYXRpb25faW1wb3J0IChQaG90b3NBcHBsaWNhdGlvbiAqc2VsZikKKyB7CitA QCAtMTUxOSw4ICsxNDYwLDggQEAgcGhvdG9zX2FwcGxpY2F0aW9uX2ltcG9ydCAoUGhvdG9zQXBw bGljYXRpb24gKnNlbGYpCisgICBHdGtXaWRnZXQgKmRpYWxvZzsKKyAgIGdfYXV0b3B0ciAoUGhv dG9zQXBwbGljYXRpb25JbXBvcnREYXRhKSBkYXRhID0gTlVMTDsKKyAgIFBob3Rvc1NvdXJjZSAq c291cmNlOworLSAgVHJhY2tlck1pbmVyTWFuYWdlciAqbWFuYWdlciA9IE5VTEw7IC8qIFRPRE86 IHVzZSBnX2F1dG9wdHIgKi8KKyAgIGdpbnQ2NCBjdGltZV9sYXRlc3QgPSAtMTsKKysgIFRyYWNr ZXJNaW5lckZpbGVzSW5kZXggKm1pbmVyX2NvbnRyb2xfcHJveHk7CisgCisgICBzb3VyY2UgPSBQ SE9UT1NfU09VUkNFIChwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF9hY3RpdmVfb2JqZWN0IChzZWxm LT5zdGF0ZS0+c3JjX21uZ3IpKTsKKyAgIGdfcmV0dXJuX2lmX2ZhaWwgKFBIT1RPU19JU19TT1VS Q0UgKHNvdXJjZSkpOworQEAgLTE1MzMsMTcgKzE0NzQsOSBAQCBwaG90b3NfYXBwbGljYXRpb25f aW1wb3J0IChQaG90b3NBcHBsaWNhdGlvbiAqc2VsZikKKyAgIHNlbGVjdGlvbiA9IHBob3Rvc19z ZWxlY3Rpb25fY29udHJvbGxlcl9nZXRfc2VsZWN0aW9uIChzZWxmLT5zZWxfY250cmxyKTsKKyAg IGdfcmV0dXJuX2lmX2ZhaWwgKHNlbGVjdGlvbiAhPSBOVUxMKTsKKyAKKy0gIHsKKy0gICAgZ19h dXRvcHRyIChHRXJyb3IpIGVycm9yID0gTlVMTDsKKy0KKy0gICAgbWFuYWdlciA9IHRyYWNrZXJf bWluZXJfbWFuYWdlcl9uZXdfZnVsbCAoRkFMU0UsICZlcnJvcik7CistICAgIGlmIChlcnJvciAh PSBOVUxMKQorLSAgICAgIHsKKy0gICAgICAgIGdfd2FybmluZyAoIlVuYWJsZSB0byBjcmVhdGUg YSBUcmFja2VyTWluZXJNYW5hZ2VyLCBpbXBvcnRpbmcgZnJvbSBhdHRhY2hlZCBkZXZpY2VzIHdv bid0IHdvcms6ICVzIiwKKy0gICAgICAgICAgICAgICAgICAgZXJyb3ItPm1lc3NhZ2UpOworLSAg ICAgICAgZ290byBvdXQ7CistICAgICAgfQorLSAgfQorKyAgbWluZXJfY29udHJvbF9wcm94eSA9 IHBob3Rvc19hcHBsaWNhdGlvbl9nZXRfbWluZXJfZnNfY29udHJvbF9wcm94eSAoTlVMTCk7Cisr ICBpZiAoIW1pbmVyX2NvbnRyb2xfcHJveHkpCisrICAgIGdvdG8gb3V0OworIAorICAgZm9yIChs ID0gc2VsZWN0aW9uOyBsICE9IE5VTEw7IGwgPSBsLT5uZXh0KQorICAgICB7CitAQCAtMTU3Miwx NCArMTUwNSwxNCBAQCBwaG90b3NfYXBwbGljYXRpb25faW1wb3J0IChQaG90b3NBcHBsaWNhdGlv biAqc2VsZikKKyAgIGRpYWxvZyA9IHBob3Rvc19pbXBvcnRfZGlhbG9nX25ldyAoR1RLX1dJTkRP VyAoc2VsZi0+bWFpbl93aW5kb3cpLCBjdGltZV9sYXRlc3QpOworICAgZ3RrX3dpZGdldF9zaG93 X2FsbCAoZGlhbG9nKTsKKyAKKy0gIGRhdGEgPSBwaG90b3NfYXBwbGljYXRpb25faW1wb3J0X2Rh dGFfbmV3IChzZWxmLCBtYW5hZ2VyLCBmaWxlcywgY3RpbWVfbGF0ZXN0KTsKKysgIGRhdGEgPSBw aG90b3NfYXBwbGljYXRpb25faW1wb3J0X2RhdGFfbmV3IChzZWxmLCBtaW5lcl9jb250cm9sX3By b3h5LCBmaWxlcywgY3RpbWVfbGF0ZXN0KTsKKysKKyAgIGdfc2lnbmFsX2Nvbm5lY3QgKGRpYWxv ZywKKyAgICAgICAgICAgICAgICAgICAgICJyZXNwb25zZSIsCisgICAgICAgICAgICAgICAgICAg ICBHX0NBTExCQUNLIChwaG90b3NfYXBwbGljYXRpb25faW1wb3J0X3Jlc3BvbnNlKSwKKyAgICAg ICAgICAgICAgICAgICAgIGdfc3RlYWxfcG9pbnRlciAoJmRhdGEpKTsKKyAKKyAgb3V0OgorLSAg Z19jbGVhcl9vYmplY3QgKCZtYW5hZ2VyKTsKKyAgIGdfbGlzdF9mcmVlX2Z1bGwgKGZpbGVzLCBn X29iamVjdF91bnJlZik7CisgfQorIAorQEAgLTI5NzQsNiArMjkwNyw3IEBAIHBob3Rvc19hcHBs aWNhdGlvbl9kaXNwb3NlIChHT2JqZWN0ICpvYmplY3QpCisgICBnX2NsZWFyX29iamVjdCAoJnNl bGYtPmluc3RhX2FjdGlvbik7CisgICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPmxvYWRfbmV4dF9h Y3Rpb24pOworICAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5sb2FkX3ByZXZpb3VzX2FjdGlvbik7 CisrICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPm1pbmVyX2NvbnRyb2xfcHJveHkpOworICAgZ19j bGVhcl9vYmplY3QgKCZzZWxmLT5vcGVuX2FjdGlvbik7CisgICBnX2NsZWFyX29iamVjdCAoJnNl bGYtPnByZXZpZXdfbWVudV9hY3Rpb24pOworICAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5wcmlt YXJ5X21lbnVfYWN0aW9uKTsKK0BAIC0zMDAyLDcgKzI5MzYsNiBAQCBwaG90b3NfYXBwbGljYXRp b25fZGlzcG9zZSAoR09iamVjdCAqb2JqZWN0KQorICAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5j YW1lcmFfY2FjaGUpOworICAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5zZWxfY250cmxyKTsKKyAg IGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+ZmFjdG9yeSk7CistICBnX2NsZWFyX29iamVjdCAoJnNl bGYtPmV4dHJhY3RfcHJpb3JpdHkpOworIAorICAgaWYgKHNlbGYtPnN0YXRlICE9IE5VTEwpCisg ICAgIHsKK0BAIC0zMTMwLDggKzMwNjMsNyBAQCBwaG90b3NfYXBwbGljYXRpb25fZ2V0X21pbmVy c19ydW5uaW5nIChQaG90b3NBcHBsaWNhdGlvbiAqc2VsZikKKyAgIHJldHVybiBzZWxmLT5taW5l cnNfcnVubmluZzsKKyB9CisgCistCistZ2ludAorK2ludAorIHBob3Rvc19hcHBsaWNhdGlvbl9n ZXRfc2NhbGVfZmFjdG9yIChQaG90b3NBcHBsaWNhdGlvbiAqc2VsZikKKyB7CisgICBHTGlzdCAq d2luZG93czsKK2RpZmYgLS1naXQgYS9zcmMvcGhvdG9zLWJhc2UtaXRlbS5jIGIvc3JjL3Bob3Rv cy1iYXNlLWl0ZW0uYworaW5kZXggMTQzNDMxZjkuLmIzNDcwNmYyIDEwMDY0NAorLS0tIGEvc3Jj L3Bob3Rvcy1iYXNlLWl0ZW0uYworKysrIGIvc3JjL3Bob3Rvcy1iYXNlLWl0ZW0uYworQEAgLTI3 NTYsNiArMjc1NiwxNiBAQCBwaG90b3NfYmFzZV9pdGVtX3VwZGF0ZV9pbmZvX2Zyb21fdHlwZSAo UGhvdG9zQmFzZUl0ZW0gKnNlbGYpCisgfQorIAorIAorK3N0YXRpYyBnZG91YmxlCisrZ2V0X2Rv dWJsZV93aXRoX2RlZmF1bHQgKFRyYWNrZXJTcGFycWxDdXJzb3IgKmN1cnNvciwgUGhvdG9zUXVl cnlDb2x1bW5zIGNvbHVtbiwgZ2RvdWJsZSBkZWZhdWx0X3ZhbHVlKQorK3sKKysgIGlmICh0cmFj a2VyX3NwYXJxbF9jdXJzb3JfaXNfYm91bmQgKGN1cnNvciwgY29sdW1uKSkgeworKyAgICByZXR1 cm4gdHJhY2tlcl9zcGFycWxfY3Vyc29yX2dldF9kb3VibGUgKGN1cnNvciwgY29sdW1uKTsKKysg IH0gZWxzZSB7CisrICAgIHJldHVybiBkZWZhdWx0X3ZhbHVlOworKyAgfQorK30KKysKKyBzdGF0 aWMgdm9pZAorIHBob3Rvc19iYXNlX2l0ZW1fcG9wdWxhdGVfZnJvbV9jdXJzb3IgKFBob3Rvc0Jh c2VJdGVtICpzZWxmLCBUcmFja2VyU3BhcnFsQ3Vyc29yICpjdXJzb3IpCisgeworQEAgLTI4OTEs MTAgKzI5MDEsMTAgQEAgcGhvdG9zX2Jhc2VfaXRlbV9wb3B1bGF0ZV9mcm9tX2N1cnNvciAoUGhv dG9zQmFzZUl0ZW0gKnNlbGYsIFRyYWNrZXJTcGFycWxDdXJzb3IKKyAgICAgICBwcml2LT53aWR0 aCA9IGhlaWdodDsKKyAgICAgfQorIAorLSAgcHJpdi0+ZXhwb3N1cmVfdGltZSA9IHRyYWNrZXJf c3BhcnFsX2N1cnNvcl9nZXRfZG91YmxlIChjdXJzb3IsIFBIT1RPU19RVUVSWV9DT0xVTU5TX0VY UE9TVVJFX1RJTUUpOworLSAgcHJpdi0+Zm51bWJlciA9IHRyYWNrZXJfc3BhcnFsX2N1cnNvcl9n ZXRfZG91YmxlIChjdXJzb3IsIFBIT1RPU19RVUVSWV9DT0xVTU5TX0ZOVU1CRVIpOworLSAgcHJp di0+Zm9jYWxfbGVuZ3RoID0gdHJhY2tlcl9zcGFycWxfY3Vyc29yX2dldF9kb3VibGUgKGN1cnNv ciwgUEhPVE9TX1FVRVJZX0NPTFVNTlNfRk9DQUxfTEVOR1RIKTsKKy0gIHByaXYtPmlzb19zcGVl ZCA9IHRyYWNrZXJfc3BhcnFsX2N1cnNvcl9nZXRfZG91YmxlIChjdXJzb3IsIFBIT1RPU19RVUVS WV9DT0xVTU5TX0lTT19TUEVFRCk7CisrICBwcml2LT5leHBvc3VyZV90aW1lID0gZ2V0X2RvdWJs ZV93aXRoX2RlZmF1bHQgKGN1cnNvciwgUEhPVE9TX1FVRVJZX0NPTFVNTlNfRVhQT1NVUkVfVElN RSwgMC4wKTsKKysgIHByaXYtPmZudW1iZXIgPSBnZXRfZG91YmxlX3dpdGhfZGVmYXVsdCAoY3Vy c29yLCBQSE9UT1NfUVVFUllfQ09MVU1OU19GTlVNQkVSLCAwLjApOworKyAgcHJpdi0+Zm9jYWxf bGVuZ3RoID0gZ2V0X2RvdWJsZV93aXRoX2RlZmF1bHQgKGN1cnNvciwgUEhPVE9TX1FVRVJZX0NP TFVNTlNfRk9DQUxfTEVOR1RILCAwLjApOworKyAgcHJpdi0+aXNvX3NwZWVkID0gZ2V0X2RvdWJs ZV93aXRoX2RlZmF1bHQgKGN1cnNvciwgUEhPVE9TX1FVRVJZX0NPTFVNTlNfSVNPX1NQRUVELCAw LjApOworIAorICAgZmxhc2ggPSB0cmFja2VyX3NwYXJxbF9jdXJzb3JfZ2V0X3N0cmluZyAoY3Vy c29yLCBQSE9UT1NfUVVFUllfQ09MVU1OU19GTEFTSCwgTlVMTCk7CisgICBwcml2LT5mbGFzaCA9 IGdfcXVhcmtfZnJvbV9zdHJpbmcgKGZsYXNoKTsKK2RpZmYgLS1naXQgYS9zcmMvcGhvdG9zLWlu ZGV4aW5nLW5vdGlmaWNhdGlvbi5jIGIvc3JjL3Bob3Rvcy1pbmRleGluZy1ub3RpZmljYXRpb24u YworaW5kZXggN2IyZWE3ZGQuLjEyMmQwZDkxIDEwMDY0NAorLS0tIGEvc3JjL3Bob3Rvcy1pbmRl eGluZy1ub3RpZmljYXRpb24uYworKysrIGIvc3JjL3Bob3Rvcy1pbmRleGluZy1ub3RpZmljYXRp b24uYworQEAgLTI2LDEyICsyNiwxMyBAQAorICNpbmNsdWRlIDxnaW8vZ2lvLmg+CisgI2luY2x1 ZGUgPGdsaWIuaD4KKyAjaW5jbHVkZSA8Z2xpYi9naTE4bi5oPgorLSNpbmNsdWRlIDxsaWJ0cmFj a2VyLWNvbnRyb2wvdHJhY2tlci1jb250cm9sLmg+CisgCisgI2luY2x1ZGUgInBob3Rvcy1hcHBs aWNhdGlvbi5oIgorICNpbmNsdWRlICJwaG90b3MtZ29tLW1pbmVyLmgiCisgI2luY2x1ZGUgInBo b3Rvcy1pbmRleGluZy1ub3RpZmljYXRpb24uaCIKKyAjaW5jbHVkZSAicGhvdG9zLW5vdGlmaWNh dGlvbi1tYW5hZ2VyLmgiCisrI2luY2x1ZGUgInBob3Rvcy10cmFja2VyLXF1ZXVlLmgiCisrI2lu Y2x1ZGUgInBob3Rvcy10cmFja2VyLW1pbmVyLmgiCisgCisgCisgc3RydWN0IF9QaG90b3NJbmRl eGluZ05vdGlmaWNhdGlvbgorQEAgLTQxLDcgKzQyLDcgQEAgc3RydWN0IF9QaG90b3NJbmRleGlu Z05vdGlmaWNhdGlvbgorICAgR3RrV2lkZ2V0ICpwcmltYXJ5X2xhYmVsOworICAgR3RrV2lkZ2V0 ICpzZWNvbmRhcnlfbGFiZWw7CisgICBHdGtXaWRnZXQgKnNwaW5uZXI7CistICBUcmFja2VyTWlu ZXJNYW5hZ2VyICptYW5hZ2VyOworKyAgVHJhY2tlck1pbmVyICptaW5lcl9mc19wcm94eTsKKyAg IGdib29sZWFuIGNsb3NlZDsKKyAgIGdib29sZWFuIG9uX2Rpc3BsYXk7CisgICBndWludCB0aW1l b3V0X2lkOworQEAgLTU2LDggKzU3LDYgQEAgZW51bQorICAgUkVNT1RFX01JTkVSX1RJTUVPVVQg PSAxMCAvKiBzICovCisgfTsKKyAKKy1zdGF0aWMgY29uc3QgZ2NoYXIgKk1JTkVSX0ZJTEVTID0g Im9yZy5mcmVlZGVza3RvcC5UcmFja2VyMS5NaW5lci5GaWxlcyI7CistCisgCisgc3RhdGljIHZv aWQKKyBwaG90b3NfaW5kZXhpbmdfbm90aWZpY2F0aW9uX3JlbW92ZV90aW1lb3V0IChQaG90b3NJ bmRleGluZ05vdGlmaWNhdGlvbiAqc2VsZikKK0BAIC0xODAsMTYgKzE3OSwxOCBAQCBwaG90b3Nf aW5kZXhpbmdfbm90aWZpY2F0aW9uX2NoZWNrX25vdGlmaWNhdGlvbiAoUGhvdG9zSW5kZXhpbmdO b3RpZmljYXRpb24gKnNlbAorICAgR1NMaXN0ICpydW5uaW5nID0gTlVMTDsKKyAgIGdib29sZWFu IGlzX2luZGV4aW5nX2xvY2FsID0gRkFMU0U7CisgICBnYm9vbGVhbiBpc19pbmRleGluZ19yZW1v dGUgPSBGQUxTRTsKKysgIEdFcnJvciAqZXJyb3IgPSBOVUxMOworKyAgZ2RvdWJsZSBwcm9ncmVz czsKKyAKKy0gIHJ1bm5pbmcgPSB0cmFja2VyX21pbmVyX21hbmFnZXJfZ2V0X3J1bm5pbmcgKHNl bGYtPm1hbmFnZXIpOworLSAgaWYgKGdfc2xpc3RfZmluZF9jdXN0b20gKHJ1bm5pbmcsIChnY29u c3Rwb2ludGVyKSBNSU5FUl9GSUxFUywgKEdDb21wYXJlRnVuYykgZ19zdHJjbXAwKSAhPSBOVUxM KQorLSAgICB7CistICAgICAgZ2RvdWJsZSBwcm9ncmVzczsKKysgIHRyYWNrZXJfbWluZXJfY2Fs bF9nZXRfcHJvZ3Jlc3Nfc3luYyAoc2VsZi0+bWluZXJfZnNfcHJveHksICZwcm9ncmVzcywgTlVM TCwgJmVycm9yKTsKKysgIGlmIChlcnJvcikgeworKyAgICBnX3dhcm5pbmcgKCJDb3VsZG4ndCBn ZXQgaW5kZXhpbmcgcHJvZ3Jlc3MgZnJvbSBUcmFja2VyIE1pbmVyIEZTOiAlcyIsIGVycm9yLT5t ZXNzYWdlKTsKKyAKKy0gICAgICB0cmFja2VyX21pbmVyX21hbmFnZXJfZ2V0X3N0YXR1cyAoc2Vs Zi0+bWFuYWdlciwgTUlORVJfRklMRVMsIE5VTEwsICZwcm9ncmVzcywgTlVMTCk7CistICAgICAg aWYgKHByb2dyZXNzIDwgMSkKKy0gICAgICAgIGlzX2luZGV4aW5nX2xvY2FsID0gVFJVRTsKKy0g ICAgfQorKyAgICBnX2NsZWFyX2Vycm9yICgmZXJyb3IpOworKyAgfSBlbHNlIHsKKysgICAgaWYg KHByb2dyZXNzIDwgMSkKKysgICAgICBpc19pbmRleGluZ19sb2NhbCA9IFRSVUU7CisrICB9Cisg CisgICBhcHAgPSBnX2FwcGxpY2F0aW9uX2dldF9kZWZhdWx0ICgpOworICAgbWluZXJzX3J1bm5p bmcgPSBwaG90b3NfYXBwbGljYXRpb25fZ2V0X21pbmVyc19ydW5uaW5nIChQSE9UT1NfQVBQTElD QVRJT04gKGFwcCkpOworQEAgLTIyMiw3ICsyMjMsNiBAQCBwaG90b3NfaW5kZXhpbmdfbm90aWZp Y2F0aW9uX2Rpc3Bvc2UgKEdPYmplY3QgKm9iamVjdCkKKyAgIHBob3Rvc19pbmRleGluZ19ub3Rp ZmljYXRpb25fcmVtb3ZlX3RpbWVvdXQgKHNlbGYpOworIAorICAgZ19jbGVhcl9vYmplY3QgKCZz ZWxmLT5udGZjdG5fbW5ncik7CistICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPm1hbmFnZXIpOwor IAorICAgR19PQkpFQ1RfQ0xBU1MgKHBob3Rvc19pbmRleGluZ19ub3RpZmljYXRpb25fcGFyZW50 X2NsYXNzKS0+ZGlzcG9zZSAob2JqZWN0KTsKKyB9CitAQCAtMjQwLDEzICsyNDAsMjUgQEAgcGhv dG9zX2luZGV4aW5nX25vdGlmaWNhdGlvbl9pbml0IChQaG90b3NJbmRleGluZ05vdGlmaWNhdGlv biAqc2VsZikKKyAgIGFwcCA9IGdfYXBwbGljYXRpb25fZ2V0X2RlZmF1bHQgKCk7CisgCisgICB7 CisrICAgIGdfYXV0b3B0ciAoUGhvdG9zVHJhY2tlclF1ZXVlKSB0cmFja2VyX3F1ZXVlOworICAg ICBnX2F1dG9wdHIgKEdFcnJvcikgZXJyb3IgPSBOVUxMOworKyAgICBjb25zdCBnY2hhciAqbWlu ZXJfZnNfYnVzbmFtZTsKKysKKysgICAgdHJhY2tlcl9xdWV1ZSA9IHBob3Rvc190cmFja2VyX3F1 ZXVlX2R1cF9zaW5nbGV0b24gKE5VTEwsICZlcnJvcik7CisrCisrICAgIGlmICh0cmFja2VyX3F1 ZXVlKSB7CisrICAgICAgbWluZXJfZnNfYnVzbmFtZSA9IHBob3Rvc190cmFja2VyX3F1ZXVlX2dl dF9taW5lcl9mc19idXNuYW1lICh0cmFja2VyX3F1ZXVlKTsKKysgICAgICBzZWxmLT5taW5lcl9m c19wcm94eSA9IHRyYWNrZXJfbWluZXJfcHJveHlfbmV3X2Zvcl9idXNfc3luYyAoR19CVVNfVFlQ RV9TRVNTSU9OLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBHX0RCVVNfUFJPWFlfRkxBR1NfTk9ORSwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbWluZXJfZnNfYnVzbmFtZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi9vcmcvZnJlZWRlc2t0b3AvVHJhY2tl cjMvTWluZXIvRmlsZXMiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZXJyb3IpOwor KyAgICB9CisgCistICAgIHNlbGYtPm1hbmFnZXIgPSB0cmFja2VyX21pbmVyX21hbmFnZXJfbmV3 X2Z1bGwgKEZBTFNFLCAmZXJyb3IpOworICAgICBpZiAoZXJyb3IgIT0gTlVMTCkKKyAgICAgICB7 CistICAgICAgICBnX3dhcm5pbmcgKCJVbmFibGUgdG8gY3JlYXRlIGEgVHJhY2tlck1pbmVyTWFu YWdlciwgaW5kZXhpbmcgcHJvZ3Jlc3Mgbm90aWZpY2F0aW9uIHdvbid0IHdvcms6ICVzIiwKKy0g ICAgICAgICAgICAgICAgICAgZXJyb3ItPm1lc3NhZ2UpOworKyAgICAgICAgZ193YXJuaW5nICgi VW5hYmxlIHRvIGNyZWF0ZSBwcm94eSBmb3IgVHJhY2tlciBNaW5lciBGUywgaW5kZXhpbmcgcHJv Z3Jlc3Mgbm90aWZpY2F0aW9uIHdvbid0IHdvcmsiKTsKKyAgICAgICAgIHJldHVybjsKKyAgICAg ICB9CisgICB9CitAQCAtMjkzLDEwICszMDUsMTEgQEAgcGhvdG9zX2luZGV4aW5nX25vdGlmaWNh dGlvbl9pbml0IChQaG90b3NJbmRleGluZ05vdGlmaWNhdGlvbiAqc2VsZikKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfQ09O TkVDVF9TV0FQUEVEKTsKKyAKKy0gIGdfc2lnbmFsX2Nvbm5lY3Rfc3dhcHBlZCAoc2VsZi0+bWFu YWdlciwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1pbmVyLXByb2dyZXNzIiwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgR19DQUxMQkFDSyAocGhvdG9zX2luZGV4aW5nX25v dGlmaWNhdGlvbl9jaGVja19ub3RpZmljYXRpb24pLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmKTsKKysgIGdfc2lnbmFsX2Nvbm5lY3Rfb2JqZWN0IChzZWxmLT5taW5lcl9mc19w cm94eSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJvZ3Jlc3MiLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIEdfQ0FMTEJBQ0sgKHBob3Rvc19pbmRleGluZ19ub3RpZmljYXRp b25fY2hlY2tfbm90aWZpY2F0aW9uKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfQ09OTkVDVF9TV0FQUEVEKTsKKyB9Cisg CisgCitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy1pdGVtLW1hbmFnZXIuYyBiL3NyYy9waG90b3Mt aXRlbS1tYW5hZ2VyLmMKK2luZGV4IGM0NGZiYmZjLi5lNDUxMWJiMSAxMDA2NDQKKy0tLSBhL3Ny Yy9waG90b3MtaXRlbS1tYW5hZ2VyLmMKKysrKyBiL3NyYy9waG90b3MtaXRlbS1tYW5hZ2VyLmMK K0BAIC00MSwxMiArNDEsOSBAQAorICNpbmNsdWRlICJwaG90b3MtcXVlcnkuaCIKKyAjaW5jbHVk ZSAicGhvdG9zLXNlYXJjaC1jb250ZXh0LmgiCisgI2luY2x1ZGUgInBob3Rvcy1zaW5nbGUtaXRl bS1qb2IuaCIKKy0jaW5jbHVkZSAicGhvdG9zLXRyYWNrZXItY2hhbmdlLWV2ZW50LmgiCistI2lu Y2x1ZGUgInBob3Rvcy10cmFja2VyLWNoYW5nZS1tb25pdG9yLmgiCisgI2luY2x1ZGUgInBob3Rv cy10cmFja2VyLXF1ZXVlLmgiCisgI2luY2x1ZGUgInBob3Rvcy11dGlscy5oIgorIAorLQorIHN0 cnVjdCBfUGhvdG9zSXRlbU1hbmFnZXIKKyB7CisgICBQaG90b3NCYXNlTWFuYWdlciBwYXJlbnRf aW5zdGFuY2U7CitAQCAtNjAsNyArNTcsNyBAQCBzdHJ1Y3QgX1Bob3Rvc0l0ZW1NYW5hZ2VyCisg ICBQaG90b3NCYXNlSXRlbSAqYWN0aXZlX2NvbGxlY3Rpb247CisgICBQaG90b3NCYXNlTWFuYWdl ciAqKml0ZW1fbW5ncl9jaGxkcm47CisgICBQaG90b3NMb2FkU3RhdGUgbG9hZF9zdGF0ZTsKKy0g IFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yICptb25pdG9yOworKyAgVHJhY2tlck5vdGlmaWVy ICpub3RpZmllcjsKKyAgIFBob3Rvc1RyYWNrZXJRdWV1ZSAqcXVldWU7CisgICBQaG90b3NXaW5k b3dNb2RlIG1vZGU7CisgICBnYm9vbGVhbiBmdWxsc2NyZWVuOworQEAgLTMxMSw3ICszMDgsNyBA QCBwaG90b3NfaXRlbV9tYW5hZ2VyX2FkZF9jdXJzb3JfZm9yX21vZGUgKFBob3Rvc0l0ZW1NYW5h Z2VyICpzZWxmLAorICAgZ19yZXR1cm5faWZfZmFpbCAoYmFzZV9pdGVtX3R5cGUgPT0gR19UWVBF X05PTkUKKyAgICAgICAgICAgICAgICAgICAgIHx8IChiYXNlX2l0ZW1fdHlwZSAhPSBQSE9UT1Nf VFlQRV9CQVNFX0lURU0KKyAgICAgICAgICAgICAgICAgICAgICAgICAmJiBnX3R5cGVfaXNfYSAo YmFzZV9pdGVtX3R5cGUsIFBIT1RPU19UWVBFX0JBU0VfSVRFTSkpKTsKKy0gIGdfcmV0dXJuX2lm X2ZhaWwgKFRSQUNLRVJfU1BBUlFMX0lTX0NVUlNPUiAoY3Vyc29yKSk7CisrICBnX3JldHVybl9p Zl9mYWlsIChUUkFDS0VSX0lTX1NQQVJRTF9DVVJTT1IgKGN1cnNvcikpOworICAgZ19yZXR1cm5f aWZfZmFpbCAobW9kZSAhPSBQSE9UT1NfV0lORE9XX01PREVfTk9ORSk7CisgICBnX3JldHVybl9p Zl9mYWlsIChtb2RlICE9IFBIT1RPU19XSU5ET1dfTU9ERV9FRElUKTsKKyAgIGdfcmV0dXJuX2lm X2ZhaWwgKG1vZGUgIT0gUEhPVE9TX1dJTkRPV19NT0RFX1BSRVZJRVcpOworQEAgLTUyOSwyMSAr NTI2LDIzIEBAIHBob3Rvc19pdGVtX21hbmFnZXJfaXRlbV9jcmVhdGVkIChQaG90b3NJdGVtTWFu YWdlciAqc2VsZiwgY29uc3QgZ2NoYXIgKnVybikKKyAKKyAKKyBzdGF0aWMgdm9pZAorLXBob3Rv c19pdGVtX21hbmFnZXJfY2hhbmdlc19wZW5kaW5nX2ZvcmVhY2ggKGdwb2ludGVyIGtleSwgZ3Bv aW50ZXIgdmFsdWUsIGdwb2ludGVyIHVzZXJfZGF0YSkKKytwaG90b3NfaXRlbV9tYW5hZ2VyX2No YW5nZXNfcGVuZGluZ19mb3JlYWNoIChncG9pbnRlciBkYXRhLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyIHVzZXJfZGF0YSkKKyB7CisgICBQ aG90b3NJdGVtTWFuYWdlciAqc2VsZiA9IFBIT1RPU19JVEVNX01BTkFHRVIgKHVzZXJfZGF0YSk7 CistICBQaG90b3NUcmFja2VyQ2hhbmdlRXZlbnQgKmNoYW5nZV9ldmVudCA9IChQaG90b3NUcmFj a2VyQ2hhbmdlRXZlbnQgKikgdmFsdWU7CistICBQaG90b3NUcmFja2VyQ2hhbmdlRXZlbnRUeXBl IGNoYW5nZV90eXBlOworKyAgVHJhY2tlck5vdGlmaWVyRXZlbnQgKmV2ZW50ID0gKFRyYWNrZXJO b3RpZmllckV2ZW50ICopIGRhdGE7CisrICBUcmFja2VyTm90aWZpZXJFdmVudFR5cGUgY2hhbmdl X3R5cGU7CisgICBjb25zdCBnY2hhciAqY2hhbmdlX3VybjsKKyAKKy0gIGNoYW5nZV90eXBlID0g cGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X2dldF90eXBlIChjaGFuZ2VfZXZlbnQpOworLSAg Y2hhbmdlX3VybiA9IHBob3Rvc190cmFja2VyX2NoYW5nZV9ldmVudF9nZXRfdXJuIChjaGFuZ2Vf ZXZlbnQpOworKyAgY2hhbmdlX3R5cGUgPSB0cmFja2VyX25vdGlmaWVyX2V2ZW50X2dldF9ldmVu dF90eXBlIChldmVudCk7CisrICBjaGFuZ2VfdXJuID0gdHJhY2tlcl9ub3RpZmllcl9ldmVudF9n ZXRfdXJuIChldmVudCk7CisgCistICBpZiAoY2hhbmdlX3R5cGUgPT0gUEhPVE9TX1RSQUNLRVJf Q0hBTkdFX0VWRU5UX0NIQU5HRUQpCisrICBpZiAoY2hhbmdlX3R5cGUgPT0gVFJBQ0tFUl9OT1RJ RklFUl9FVkVOVF9VUERBVEUpCisgICAgIHsKKyAgICAgICBHT2JqZWN0ICpvYmplY3Q7CisgCisg ICAgICAgb2JqZWN0ID0gcGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfb2JqZWN0X2J5X2lkIChQSE9U T1NfQkFTRV9NQU5BR0VSIChzZWxmKSwgY2hhbmdlX3Vybik7CisrICAgICAgZ19tZXNzYWdlICgi VVBEQVRFIGV2ZW50IGZvciAlcywgb2JqZWN0ICVwIiwgY2hhbmdlX3Vybiwgb2JqZWN0KTsKKyAg ICAgICBpZiAob2JqZWN0ICE9IE5VTEwpCisgICAgICAgICB7CisgICAgICAgICAgIHBob3Rvc19i YXNlX2l0ZW1fcmVmcmVzaCAoUEhPVE9TX0JBU0VfSVRFTSAob2JqZWN0KSk7CitAQCAtNTU3LDE1 ICs1NTYsMTcgQEAgcGhvdG9zX2l0ZW1fbWFuYWdlcl9jaGFuZ2VzX3BlbmRpbmdfZm9yZWFjaCAo Z3BvaW50ZXIga2V5LCBncG9pbnRlciB2YWx1ZSwgZ3BvaW4KKyAgICAgICAgICAgICB9CisgICAg ICAgICB9CisgICAgIH0KKy0gIGVsc2UgaWYgKGNoYW5nZV90eXBlID09IFBIT1RPU19UUkFDS0VS X0NIQU5HRV9FVkVOVF9DUkVBVEVEKQorKyAgZWxzZSBpZiAoY2hhbmdlX3R5cGUgPT0gVFJBQ0tF Ul9OT1RJRklFUl9FVkVOVF9DUkVBVEUpCisgICAgIHsKKysgICAgICBnX21lc3NhZ2UgKCJDUkVB VEUgZXZlbnQgZm9yICVzIiwgY2hhbmdlX3Vybik7CisgICAgICAgcGhvdG9zX2l0ZW1fbWFuYWdl cl9pdGVtX2NyZWF0ZWQgKHNlbGYsIGNoYW5nZV91cm4pOworICAgICB9CistICBlbHNlIGlmIChj aGFuZ2VfdHlwZSA9PSBQSE9UT1NfVFJBQ0tFUl9DSEFOR0VfRVZFTlRfREVMRVRFRCkKKysgIGVs c2UgaWYgKGNoYW5nZV90eXBlID09IFRSQUNLRVJfTk9USUZJRVJfRVZFTlRfREVMRVRFKQorICAg ICB7CisgICAgICAgR09iamVjdCAqb2JqZWN0OworIAorICAgICAgIG9iamVjdCA9IHBob3Rvc19i YXNlX21hbmFnZXJfZ2V0X29iamVjdF9ieV9pZCAoUEhPVE9TX0JBU0VfTUFOQUdFUiAoc2VsZiks IGNoYW5nZV91cm4pOworKyAgICAgIGdfbWVzc2FnZSAoIkRFTEVURSBldmVudCBmb3IgJXMsIG9i amVjdCAlcCIsIGNoYW5nZV91cm4sIG9iamVjdCk7CisgICAgICAgaWYgKG9iamVjdCAhPSBOVUxM KQorICAgICAgICAgeworICAgICAgICAgICBwaG90b3NfYmFzZV9pdGVtX2Rlc3Ryb3kgKFBIT1RP U19CQVNFX0lURU0gKG9iamVjdCkpOworQEAgLTU3Nyw5ICs1NzgsMTUgQEAgcGhvdG9zX2l0ZW1f bWFuYWdlcl9jaGFuZ2VzX3BlbmRpbmdfZm9yZWFjaCAoZ3BvaW50ZXIga2V5LCBncG9pbnRlciB2 YWx1ZSwgZ3BvaW4KKyAKKyAKKyBzdGF0aWMgdm9pZAorLXBob3Rvc19pdGVtX21hbmFnZXJfY2hh bmdlc19wZW5kaW5nIChQaG90b3NJdGVtTWFuYWdlciAqc2VsZiwgR0hhc2hUYWJsZSAqY2hhbmdl cykKKy17CistICBnX2hhc2hfdGFibGVfZm9yZWFjaCAoY2hhbmdlcywgcGhvdG9zX2l0ZW1fbWFu YWdlcl9jaGFuZ2VzX3BlbmRpbmdfZm9yZWFjaCwgc2VsZik7CisrcGhvdG9zX2l0ZW1fbWFuYWdl cl9jaGFuZ2VzX3BlbmRpbmcgKFBob3Rvc0l0ZW1NYW5hZ2VyICpzZWxmLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAqc2VydmljZSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgKmdy YXBoLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHUHRyQXJyYXkgICAg ICAgICAqZXZlbnRzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9p bnRlciAgICAgICAgICAgdXNlcl9kYXRhKQorK3sKKysgIGlmIChnX3N0cl9lcXVhbCAoZ3JhcGgs IFRSQUNLRVJfUElDVFVSRVNfR1JBUEgpKSB7CisrICAgIGdfcHRyX2FycmF5X2ZvcmVhY2ggKGV2 ZW50cywgcGhvdG9zX2l0ZW1fbWFuYWdlcl9jaGFuZ2VzX3BlbmRpbmdfZm9yZWFjaCwgc2VsZik7 CisrICB9CisgfQorIAorIAorQEAgLTcxNyw3ICs3MjQsNyBAQCBwaG90b3NfaXRlbV9tYW5hZ2Vy X3dhaXRfZm9yX2NoYW5nZXNfdGltZW91dCAoZ3BvaW50ZXIgdXNlcl9kYXRhKQorICAgICAgIGdf YXV0b3B0ciAoUGhvdG9zUXVlcnkpIHF1ZXJ5ID0gTlVMTDsKKyAgICAgICBnX2F1dG9mcmVlIGdj aGFyICpzcGFycWwgPSBOVUxMOworIAorLSAgICAgIHNwYXJxbCA9IGdfc3RyZHVwX3ByaW50ZiAo IlNFTEVDVCA/dXJuIG5pZTp1cmwgKD91cm4pIFdIRVJFIHsgP3VybiBuaWU6dXJsICclcycgfSIs IHVyaSk7CisrICAgICAgc3BhcnFsID0gZ19zdHJkdXBfcHJpbnRmICgiU0VMRUNUID91cm4gbmll OmlzU3RvcmVkQXMgKD91cm4pIFdIRVJFIHsgP3VybiBuaWU6aXNTdG9yZWRBcyAnJXMnIH0iLCB1 cmkpOworICAgICAgIHF1ZXJ5ID0gcGhvdG9zX3F1ZXJ5X25ldyAoTlVMTCwgc3BhcnFsKTsKKyAg ICAgICBwaG90b3NfdHJhY2tlcl9xdWV1ZV9zZWxlY3QgKHNlbGYtPnF1ZXVlLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnksCitAQCAtMTAzOCw3ICsxMDQ1LDcgQEAg cGhvdG9zX2l0ZW1fbWFuYWdlcl9kaXNwb3NlIChHT2JqZWN0ICpvYmplY3QpCisgICBnX2NsZWFy X29iamVjdCAoJnNlbGYtPmFjdGl2ZV9vYmplY3QpOworICAgZ19jbGVhcl9vYmplY3QgKCZzZWxm LT5sb2FkZXJfY2FuY2VsbGFibGUpOworICAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5hY3RpdmVf Y29sbGVjdGlvbik7CistICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPm1vbml0b3IpOworKyAgZ19j bGVhcl9vYmplY3QgKCZzZWxmLT5ub3RpZmllcik7CisgICBnX2NsZWFyX29iamVjdCAoJnNlbGYt PnF1ZXVlKTsKKyAKKyAgIEdfT0JKRUNUX0NMQVNTIChwaG90b3NfaXRlbV9tYW5hZ2VyX3BhcmVu dF9jbGFzcyktPmRpc3Bvc2UgKG9iamVjdCk7CitAQCAtMTA5MywyMCArMTEwMCwyNCBAQCBwaG90 b3NfaXRlbV9tYW5hZ2VyX2luaXQgKFBob3Rvc0l0ZW1NYW5hZ2VyICpzZWxmKQorIAorICAgc2Vs Zi0+bW9kZSA9IFBIT1RPU19XSU5ET1dfTU9ERV9OT05FOworIAorLSAgc2VsZi0+bW9uaXRvciA9 IHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX2R1cF9zaW5nbGV0b24gKE5VTEwsIE5VTEwp OworLSAgaWYgKEdfTElLRUxZIChzZWxmLT5tb25pdG9yICE9IE5VTEwpKQorLSAgICBnX3NpZ25h bF9jb25uZWN0X29iamVjdCAoc2VsZi0+bW9uaXRvciwKKy0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJjaGFuZ2VzLXBlbmRpbmciLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg R19DQUxMQkFDSyAocGhvdG9zX2l0ZW1fbWFuYWdlcl9jaGFuZ2VzX3BlbmRpbmcpLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEdfQ09OTkVDVF9TV0FQUEVEKTsKKy0KKyAgIHsKKyAgICAgZ19hdXRvcHRyIChHRXJyb3Ip IGVycm9yID0gTlVMTDsKKyAKKyAgICAgc2VsZi0+cXVldWUgPSBwaG90b3NfdHJhY2tlcl9xdWV1 ZV9kdXBfc2luZ2xldG9uIChOVUxMLCAmZXJyb3IpOworICAgICBpZiAoR19VTkxJS0VMWSAoZXJy b3IgIT0gTlVMTCkpCistICAgICAgZ193YXJuaW5nICgiVW5hYmxlIHRvIGNyZWF0ZSBQaG90b3NU cmFja2VyUXVldWU6ICVzIiwgZXJyb3ItPm1lc3NhZ2UpOworKyAgICAgIHsKKysgICAgICAgIGdf d2FybmluZyAoIlVuYWJsZSB0byBjcmVhdGUgUGhvdG9zVHJhY2tlclF1ZXVlOiAlcyIsIGVycm9y LT5tZXNzYWdlKTsKKysgICAgICAgIHNlbGYtPm5vdGlmaWVyID0gTlVMTDsKKysgICAgICB9Cisr ICAgIGVsc2UKKysgICAgICB7CisrICAgICAgICBzZWxmLT5ub3RpZmllciA9IHBob3Rvc190cmFj a2VyX3F1ZXVlX2dldF9ub3RpZmllciAoc2VsZi0+cXVldWUpOworKyAgICAgICAgZ19zaWduYWxf Y29ubmVjdF9vYmplY3QgKHNlbGYtPm5vdGlmaWVyLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJldmVudHMiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdf Q0FMTEJBQ0sgKHBob3Rvc19pdGVtX21hbmFnZXJfY2hhbmdlc19wZW5kaW5nKSwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEdfQ09OTkVDVF9TV0FQUEVEKTsKKysgICAgICB9CisgICB9CisgCisgICBzZWxm LT5mdWxsc2NyZWVuID0gRkFMU0U7CitAQCAtMTI0MSw3ICsxMjUyLDcgQEAgcGhvdG9zX2l0ZW1f bWFuYWdlcl9hZGRfaXRlbSAoUGhvdG9zSXRlbU1hbmFnZXIgKnNlbGYsCisgICBnX3JldHVybl9p Zl9mYWlsIChiYXNlX2l0ZW1fdHlwZSA9PSBHX1RZUEVfTk9ORQorICAgICAgICAgICAgICAgICAg ICAgfHwgKGJhc2VfaXRlbV90eXBlICE9IFBIT1RPU19UWVBFX0JBU0VfSVRFTQorICAgICAgICAg ICAgICAgICAgICAgICAgICYmIGdfdHlwZV9pc19hIChiYXNlX2l0ZW1fdHlwZSwgUEhPVE9TX1RZ UEVfQkFTRV9JVEVNKSkpOworLSAgZ19yZXR1cm5faWZfZmFpbCAoVFJBQ0tFUl9TUEFSUUxfSVNf Q1VSU09SIChjdXJzb3IpKTsKKysgIGdfcmV0dXJuX2lmX2ZhaWwgKFRSQUNLRVJfSVNfU1BBUlFM X0NVUlNPUiAoY3Vyc29yKSk7CisgCisgICBpZCA9IHRyYWNrZXJfc3BhcnFsX2N1cnNvcl9nZXRf c3RyaW5nIChjdXJzb3IsIFBIT1RPU19RVUVSWV9DT0xVTU5TX1VSTiwgTlVMTCk7CisgICBnX3Jl dHVybl9pZl9mYWlsIChpZCAhPSBOVUxMICYmIGlkWzBdICE9ICdcMCcpOworQEAgLTEzNzAsNyAr MTM4MSw3IEBAIHBob3Rvc19pdGVtX21hbmFnZXJfY3JlYXRlX2l0ZW0gKFBob3Rvc0l0ZW1NYW5h Z2VyICpzZWxmLAorICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKGJhc2VfaXRlbV90eXBlID09IEdf VFlQRV9OT05FCisgICAgICAgICAgICAgICAgICAgICAgICAgfHwgKGJhc2VfaXRlbV90eXBlICE9 IFBIT1RPU19UWVBFX0JBU0VfSVRFTQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiBn X3R5cGVfaXNfYSAoYmFzZV9pdGVtX3R5cGUsIFBIT1RPU19UWVBFX0JBU0VfSVRFTSkpLCBOVUxM KTsKKy0gIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChUUkFDS0VSX1NQQVJRTF9JU19DVVJTT1IgKGN1 cnNvciksIE5VTEwpOworKyAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKFRSQUNLRVJfSVNfU1BBUlFM X0NVUlNPUiAoY3Vyc29yKSwgTlVMTCk7CisgCisgICBpZCA9IHRyYWNrZXJfc3BhcnFsX2N1cnNv cl9nZXRfc3RyaW5nIChjdXJzb3IsIFBIT1RPU19RVUVSWV9DT0xVTU5TX1VSTiwgTlVMTCk7Cisg ICBpdGVtID0gUEhPVE9TX0JBU0VfSVRFTSAocGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfb2JqZWN0 X2J5X2lkIChQSE9UT1NfQkFTRV9NQU5BR0VSIChzZWxmKSwgaWQpKTsKK2RpZmYgLS1naXQgYS9z cmMvcGhvdG9zLXF1YXJrcy5jIGIvc3JjL3Bob3Rvcy1xdWFya3MuYworaW5kZXggMDg3MGVmNjIu LjVlZTI1NzQ1IDEwMDY0NAorLS0tIGEvc3JjL3Bob3Rvcy1xdWFya3MuYworKysrIGIvc3JjL3Bo b3Rvcy1xdWFya3MuYworQEAgLTI1LDY4ICsyNSw2OCBAQAorIEdRdWFyaworIHBob3Rvc19xdWFy a3NfZmxhc2hfb2ZmX3F1YXJrICh2b2lkKQorIHsKKy0gIHJldHVybiBnX3F1YXJrX2Zyb21fc3Rh dGljX3N0cmluZyAoImh0dHA6Ly93d3cudHJhY2tlci1wcm9qZWN0Lm9yZy90ZW1wL25tbSNmbGFz aC1vZmYiKTsKKysgIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyAoImh0dHA6Ly90 cmFja2VyLmFwaS5nbm9tZS5vcmcvb250b2xvZ3kvdjMvbm1tI2ZsYXNoLW9mZiIpOworIH0KKyAK KyAKKyBHUXVhcmsKKyBwaG90b3NfcXVhcmtzX2ZsYXNoX29uX3F1YXJrICh2b2lkKQorIHsKKy0g IHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyAoImh0dHA6Ly93d3cudHJhY2tlci1w cm9qZWN0Lm9yZy90ZW1wL25tbSNmbGFzaC1vbiIpOworKyAgcmV0dXJuIGdfcXVhcmtfZnJvbV9z dGF0aWNfc3RyaW5nICgiaHR0cDovL3RyYWNrZXIuYXBpLmdub21lLm9yZy9vbnRvbG9neS92My9u bW0jZmxhc2gtb24iKTsKKyB9CisgCisgCisgR1F1YXJrCisgcGhvdG9zX3F1YXJrc19vcmllbnRh dGlvbl9ib3R0b21fcXVhcmsgKHZvaWQpCisgeworLSAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0 aWNfc3RyaW5nICgiaHR0cDovL3d3dy5zZW1hbnRpY2Rlc2t0b3Aub3JnL29udG9sb2dpZXMvMjAw Ny8wMy8yMi9uZm8jb3JpZW50YXRpb24tYm90dG9tIik7CisrICByZXR1cm4gZ19xdWFya19mcm9t X3N0YXRpY19zdHJpbmcgKCJodHRwOi8vdHJhY2tlci5hcGkuZ25vbWUub3JnL29udG9sb2d5L3Yz L25mbyNvcmllbnRhdGlvbi1ib3R0b20iKTsKKyB9CisgCisgCisgR1F1YXJrCisgcGhvdG9zX3F1 YXJrc19vcmllbnRhdGlvbl9ib3R0b21fbWlycm9yX3F1YXJrICh2b2lkKQorIHsKKy0gIHJldHVy biBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyAoImh0dHA6Ly93d3cuc2VtYW50aWNkZXNrdG9w Lm9yZy9vbnRvbG9naWVzLzIwMDcvMDMvMjIvbmZvI29yaWVudGF0aW9uLWJvdHRvbS1taXJyb3Ii KTsKKysgIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyAoImh0dHA6Ly90cmFja2Vy LmFwaS5nbm9tZS5vcmcvb250b2xvZ3kvdjMvbmZvI29yaWVudGF0aW9uLWJvdHRvbS1taXJyb3Ii KTsKKyB9CisgCisgCisgR1F1YXJrCisgcGhvdG9zX3F1YXJrc19vcmllbnRhdGlvbl9sZWZ0X3F1 YXJrICh2b2lkKQorIHsKKy0gIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyAoImh0 dHA6Ly93d3cuc2VtYW50aWNkZXNrdG9wLm9yZy9vbnRvbG9naWVzLzIwMDcvMDMvMjIvbmZvI29y aWVudGF0aW9uLWxlZnQiKTsKKysgIHJldHVybiBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyAo Imh0dHA6Ly90cmFja2VyLmFwaS5nbm9tZS5vcmcvb250b2xvZ3kvdjMvbmZvI29yaWVudGF0aW9u LWxlZnQiKTsKKyB9CisgCisgCisgR1F1YXJrCisgcGhvdG9zX3F1YXJrc19vcmllbnRhdGlvbl9s ZWZ0X21pcnJvcl9xdWFyayAodm9pZCkKKyB7CistICByZXR1cm4gZ19xdWFya19mcm9tX3N0YXRp Y19zdHJpbmcgKCJodHRwOi8vd3d3LnNlbWFudGljZGVza3RvcC5vcmcvb250b2xvZ2llcy8yMDA3 LzAzLzIyL25mbyNvcmllbnRhdGlvbi1sZWZ0LW1pcnJvciIpOworKyAgcmV0dXJuIGdfcXVhcmtf ZnJvbV9zdGF0aWNfc3RyaW5nICgiaHR0cDovL3RyYWNrZXIuYXBpLmdub21lLm9yZy9vbnRvbG9n eS92My9uZm8jb3JpZW50YXRpb24tbGVmdC1taXJyb3IiKTsKKyB9CisgCisgCisgR1F1YXJrCisg cGhvdG9zX3F1YXJrc19vcmllbnRhdGlvbl9yaWdodF9xdWFyayAodm9pZCkKKyB7CistICByZXR1 cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcgKCJodHRwOi8vd3d3LnNlbWFudGljZGVza3Rv cC5vcmcvb250b2xvZ2llcy8yMDA3LzAzLzIyL25mbyNvcmllbnRhdGlvbi1yaWdodCIpOworKyAg cmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nICgiaHR0cDovL3RyYWNrZXIuYXBpLmdu b21lLm9yZy9vbnRvbG9neS92My9uZm8jb3JpZW50YXRpb24tcmlnaHQiKTsKKyB9CisgCisgCisg R1F1YXJrCisgcGhvdG9zX3F1YXJrc19vcmllbnRhdGlvbl9yaWdodF9taXJyb3JfcXVhcmsgKHZv aWQpCisgeworLSAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nICgiaHR0cDovL3d3 dy5zZW1hbnRpY2Rlc2t0b3Aub3JnL29udG9sb2dpZXMvMjAwNy8wMy8yMi9uZm8jb3JpZW50YXRp b24tcmlnaHQtbWlycm9yIik7CisrICByZXR1cm4gZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcg KCJodHRwOi8vdHJhY2tlci5hcGkuZ25vbWUub3JnL29udG9sb2d5L3YzL25mbyNvcmllbnRhdGlv bi1yaWdodC1taXJyb3IiKTsKKyB9CisgCisgCisgR1F1YXJrCisgcGhvdG9zX3F1YXJrc19vcmll bnRhdGlvbl90b3BfcXVhcmsgKHZvaWQpCisgeworLSAgcmV0dXJuIGdfcXVhcmtfZnJvbV9zdGF0 aWNfc3RyaW5nICgiaHR0cDovL3d3dy5zZW1hbnRpY2Rlc2t0b3Aub3JnL29udG9sb2dpZXMvMjAw Ny8wMy8yMi9uZm8jb3JpZW50YXRpb24tdG9wIik7CisrICByZXR1cm4gZ19xdWFya19mcm9tX3N0 YXRpY19zdHJpbmcgKCJodHRwOi8vdHJhY2tlci5hcGkuZ25vbWUub3JnL29udG9sb2d5L3YzL25m byNvcmllbnRhdGlvbi10b3AiKTsKKyB9CisgCisgCisgR1F1YXJrCisgcGhvdG9zX3F1YXJrc19v cmllbnRhdGlvbl90b3BfbWlycm9yX3F1YXJrICh2b2lkKQorIHsKKy0gIHJldHVybiBnX3F1YXJr X2Zyb21fc3RhdGljX3N0cmluZyAoImh0dHA6Ly93d3cuc2VtYW50aWNkZXNrdG9wLm9yZy9vbnRv bG9naWVzLzIwMDcvMDMvMjIvbmZvI29yaWVudGF0aW9uLXRvcC1taXJyb3IiKTsKKysgIHJldHVy biBnX3F1YXJrX2Zyb21fc3RhdGljX3N0cmluZyAoImh0dHA6Ly90cmFja2VyLmFwaS5nbm9tZS5v cmcvb250b2xvZ3kvdjMvbmZvI29yaWVudGF0aW9uLXRvcC1taXJyb3IiKTsKKyB9CitkaWZmIC0t Z2l0IGEvc3JjL3Bob3Rvcy1xdWVyeS1idWlsZGVyLmMgYi9zcmMvcGhvdG9zLXF1ZXJ5LWJ1aWxk ZXIuYworaW5kZXggZTA3MzViZGUuLjQ2ZDY1ZThmIDEwMDY0NAorLS0tIGEvc3JjL3Bob3Rvcy1x dWVyeS1idWlsZGVyLmMKKysrKyBiL3NyYy9waG90b3MtcXVlcnktYnVpbGRlci5jCitAQCAtMjUs NiArMjUsNyBAQAorIAorICNpbmNsdWRlIDxzdHJpbmcuaD4KKyAKKysjaW5jbHVkZSAicGhvdG9z LWFwcGxpY2F0aW9uLmgiCisgI2luY2x1ZGUgInBob3Rvcy1iYXNlLW1hbmFnZXIuaCIKKyAjaW5j bHVkZSAicGhvdG9zLXF1ZXJ5LmgiCisgI2luY2x1ZGUgInBob3Rvcy1xdWVyeS1idWlsZGVyLmgi CitAQCAtMzIsNiArMzMsNyBAQAorICNpbmNsdWRlICJwaG90b3Mtc291cmNlLW1hbmFnZXIuaCIK KyAjaW5jbHVkZSAicGhvdG9zLXNlYXJjaC1tYXRjaC1tYW5hZ2VyLmgiCisgI2luY2x1ZGUgInBo b3Rvcy1zZWFyY2gtdHlwZS1tYW5hZ2VyLmgiCisrI2luY2x1ZGUgInBob3Rvcy10cmFja2VyLXF1 ZXVlLmgiCisgCisgI2RlZmluZSBQSE9UT1NfUVVFUllfQ09MTEVDVElPTlNfSURFTlRJRklFUiAi cGhvdG9zOmNvbGxlY3Rpb246IgorICNkZWZpbmUgUEhPVE9TX1FVRVJZX0xPQ0FMX0NPTExFQ1RJ T05TX0lERU5USUZJRVIgInBob3Rvczpjb2xsZWN0aW9uOmxvY2FsOiIKK0BAIC00OCwxMiArNTAs MTQgQEAgY29uc3QgZ2NoYXIgKnBob3Rvc19kZWZhdWx0X2ZpbHRlciA9IFwKKyAKKyBzdGF0aWMg Z2NoYXIgKgorIHBob3Rvc19xdWVyeV9idWlsZGVyX3F1ZXJ5IChQaG90b3NTZWFyY2hDb250ZXh0 U3RhdGUgKnN0YXRlLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiBnbG9i YWwsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICp2YWx1ZXMsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpbnQgZmxhZ3MsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBob3Rvc09mZnNldENvbnRyb2xsZXIgKm9mZnNldF9jbnRybHIpCisgewor ICAgUGhvdG9zU3BhcnFsVGVtcGxhdGUgKnRlbXBsYXRlOworLSAgY29uc3QgZ2NoYXIgKnByb2pl Y3Rpb24gPSBOVUxMOworKyAgY29uc3QgZ2NoYXIgKm1pbmVyX2ZzX2J1c25hbWUgPSBOVUxMOwor KyAgY29uc3QgZ2NoYXIgKm1haW5fcHJvamVjdGlvbiA9IE5VTEw7CisrICBjb25zdCBnY2hhciAq c2Vjb25kX3Byb2plY3Rpb24gPSBOVUxMOworICAgZ19hdXRvZnJlZSBnY2hhciAqaXRlbV9wYXR0 ZXJuID0gTlVMTDsKKyAgIGdfYXV0b2ZyZWUgZ2NoYXIgKnNlYXJjaF9maWx0ZXIgPSBOVUxMOwor ICAgZ19hdXRvZnJlZSBnY2hhciAqc291cmNlX2ZpbHRlciA9IE5VTEw7CitAQCAtNjMsMjkgKzY3 LDM1IEBAIHBob3Rvc19xdWVyeV9idWlsZGVyX3F1ZXJ5IChQaG90b3NTZWFyY2hDb250ZXh0U3Rh dGUgKnN0YXRlLAorIAorICAgdGVtcGxhdGUgPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF9zcGFy cWxfdGVtcGxhdGUgKHN0YXRlLT5zcmNoX3R5cF9tbmdyLCBmbGFncyk7CisgCistICBwcm9qZWN0 aW9uID0gIj91cm4gIgorLSAgICAgICAgICAgICAgICJuaWU6dXJsICg/dXJuKSAiCistICAgICAg ICAgICAgICAgIm5mbzpmaWxlTmFtZSAoP3VybikgIgorLSAgICAgICAgICAgICAgICJuaWU6bWlt ZVR5cGUgKD91cm4pICIKKy0gICAgICAgICAgICAgICAibmllOnRpdGxlICg/dXJuKSAiCistICAg ICAgICAgICAgICAgInRyYWNrZXI6Y29hbGVzY2UgKG5jbzpmdWxsbmFtZSAoP2NyZWF0b3IpLCBu Y286ZnVsbG5hbWUgKD9wdWJsaXNoZXIpLCAnJykgIgorLSAgICAgICAgICAgICAgICJ0cmFja2Vy OmNvYWxlc2NlIChuZm86ZmlsZUxhc3RNb2RpZmllZCAoP3VybiksIG5pZTpjb250ZW50TGFzdE1v ZGlmaWVkICg/dXJuKSkgQVMgP210aW1lICIKKy0gICAgICAgICAgICAgICAibmFvOmlkZW50aWZp ZXIgKD91cm4pICIKKy0gICAgICAgICAgICAgICAicmRmOnR5cGUgKD91cm4pICIKKy0gICAgICAg ICAgICAgICAibmllOmRhdGFTb3VyY2UoP3VybikgIgorLSAgICAgICAgICAgICAgICIoIEVYSVNU UyB7ID91cm4gbmFvOmhhc1RhZyBuYW86cHJlZGVmaW5lZC10YWctZmF2b3JpdGUgfSApICIKKy0g ICAgICAgICAgICAgICAiKCBFWElTVFMgeyA/dXJuIG5jbzpjb250cmlidXRvciA/Y29udHJpYnV0 b3IgRklMVEVSICggP2NvbnRyaWJ1dG9yICE9ID9jcmVhdG9yICkgfSApICIKKy0gICAgICAgICAg ICAgICAidHJhY2tlcjpjb2FsZXNjZShuZm86ZmlsZUNyZWF0ZWQgKD91cm4pLCBuaWU6Y29udGVu dENyZWF0ZWQgKD91cm4pKSAiCistICAgICAgICAgICAgICAgIm5mbzp3aWR0aCAoP3VybikgIgor LSAgICAgICAgICAgICAgICJuZm86aGVpZ2h0ICg/dXJuKSAiCistICAgICAgICAgICAgICAgIm5m bzplcXVpcG1lbnQgKD91cm4pICIKKy0gICAgICAgICAgICAgICAibmZvOm9yaWVudGF0aW9uICg/ dXJuKSAiCistICAgICAgICAgICAgICAgIm5tbTpleHBvc3VyZVRpbWUgKD91cm4pICIKKy0gICAg ICAgICAgICAgICAibm1tOmZudW1iZXIgKD91cm4pICIKKy0gICAgICAgICAgICAgICAibm1tOmZv Y2FsTGVuZ3RoICg/dXJuKSAiCistICAgICAgICAgICAgICAgIm5tbTppc29TcGVlZCAoP3Vybikg IgorLSAgICAgICAgICAgICAgICJubW06Zmxhc2ggKD91cm4pICIKKy0gICAgICAgICAgICAgICAi c2xvOmxvY2F0aW9uICg/dXJuKSAiOworKyAgbWluZXJfZnNfYnVzbmFtZSA9IHBob3Rvc190cmFj a2VyX3F1ZXVlX2dldF9taW5lcl9mc19idXNuYW1lIChzdGF0ZS0+cXVldWUpOworKworKyAgbWFp bl9wcm9qZWN0aW9uID0gIj91cm4gIgorKyAgICAgICAgICAgICAgICAgICAgIj9maWxlICIKKysg ICAgICAgICAgICAgICAgICAgICJuZm86ZmlsZU5hbWUgKD9maWxlKSBBUyA/ZmlsZW5hbWUgIgor KyAgICAgICAgICAgICAgICAgICAgIm5pZTptaW1lVHlwZSAoP3VybikgQVMgP21pbWV0eXBlICIK KysgICAgICAgICAgICAgICAgICAgICJuaWU6dGl0bGUgKD91cm4pIEFTID90aXRsZSAiCisrICAg ICAgICAgICAgICAgICAgICAidHJhY2tlcjpjb2FsZXNjZSAobmNvOmZ1bGxuYW1lICg/Y3JlYXRv ciksIG5jbzpmdWxsbmFtZSAoP3B1Ymxpc2hlciksICcnKSBBUyA/YXV0aG9yX25hbWUgIgorKyAg ICAgICAgICAgICAgICAgICAgInRyYWNrZXI6Y29hbGVzY2UgKG5mbzpmaWxlTGFzdE1vZGlmaWVk ICg/ZmlsZSksIG5pZTpjb250ZW50TGFzdE1vZGlmaWVkICg/dXJuKSkgQVMgP210aW1lICIKKysg ICAgICAgICAgICAgICAgICAgICJuYW86aWRlbnRpZmllciAoP3VybikgQVMgP2lkZW50aWZpZXIg IgorKyAgICAgICAgICAgICAgICAgICAgInJkZjp0eXBlICg/dXJuKSBBUyA/dHlwZSAiCisrICAg ICAgICAgICAgICAgICAgICAibmllOmRhdGFTb3VyY2UoP3VybikgQVMgP2RhdGFzb3VyY2UgIgor KyAgICAgICAgICAgICAgICAgICAgIiggRVhJU1RTIHsgP3VybiBuY286Y29udHJpYnV0b3IgP2Nv bnRyaWJ1dG9yIEZJTFRFUiAoID9jb250cmlidXRvciAhPSA/Y3JlYXRvciApIH0gKSBBUyA/aGFz X2NvbnRyaWJ1dG9yICIKKysgICAgICAgICAgICAgICAgICAgICJ0cmFja2VyOmNvYWxlc2NlKG5m bzpmaWxlQ3JlYXRlZCAoP2ZpbGUpLCBuaWU6Y29udGVudENyZWF0ZWQgKD91cm4pKSBBUyA/Y3Rp bWUgIgorKyAgICAgICAgICAgICAgICAgICAgIm5mbzp3aWR0aCAoP3VybikgQVMgP3dpZHRoICIK KysgICAgICAgICAgICAgICAgICAgICJuZm86aGVpZ2h0ICg/dXJuKSBBUyA/aGVpZ2h0ICIKKysg ICAgICAgICAgICAgICAgICAgICJuZm86ZXF1aXBtZW50ICg/dXJuKSBBUyA/ZXF1aXBtZW50ICIK KysgICAgICAgICAgICAgICAgICAgICJuZm86b3JpZW50YXRpb24gKD91cm4pIEFTID9vcmllbnRh dGlvbiAiCisrICAgICAgICAgICAgICAgICAgICAibm1tOmV4cG9zdXJlVGltZSAoP3VybikgQVMg P2V4cG9zdXJlX3RpbWUgIgorKyAgICAgICAgICAgICAgICAgICAgIm5tbTpmbnVtYmVyICg/dXJu KSBBUyA/Zm51bWJlciAiCisrICAgICAgICAgICAgICAgICAgICAibm1tOmZvY2FsTGVuZ3RoICg/ dXJuKSBBUyA/Zm9jYWxfbGVuZ3RoICIKKysgICAgICAgICAgICAgICAgICAgICJubW06aXNvU3Bl ZWQgKD91cm4pIEFTID9pc29zcGVlZCAiCisrICAgICAgICAgICAgICAgICAgICAibm1tOmZsYXNo ICg/dXJuKSBBUyA/Zmxhc2ggIgorKyAgICAgICAgICAgICAgICAgICAgInNsbzpsb2NhdGlvbiAo P3VybikgQVMgP2xvY2F0aW9uICI7CisrCisrICBzZWNvbmRfcHJvamVjdGlvbiA9ICI/dXJuID9m aWxlID9maWxlbmFtZSA/bWltZXR5cGUgP3RpdGxlID9hdXRob3JfbmFtZSA/bXRpbWUgP2lkZW50 aWZpZXIgP3R5cGUgP2RhdGFzb3VyY2UgIgorKyAgICAgICAgICAgICAgICAgICAgICAiKCBFWElT VFMgeyA/dXJuIG5hbzpoYXNUYWcgbmFvOnByZWRlZmluZWQtdGFnLWZhdm9yaXRlIH0gKSBBUyA/ aXNfZmF2b3JpdGUgIgorKyAgICAgICAgICAgICAgICAgICAgICAiP2hhc19jb250cmlidXRvciA/ Y3RpbWUgP3dpZHRoID9oZWlnaHQgP2VxdWlwbWVudCA/b3JpZW50YXRpb24gP2V4cG9zdXJlX3Rp bWUgP2ZudW1iZXIgIgorKyAgICAgICAgICAgICAgICAgICAgICAiP2ZvY2FsX2xlbmd0aCA/aXNv c3BlZWQgP2ZsYXNoID9sb2NhdGlvbiAiOworIAorICAgaXRlbV9wYXR0ZXJuID0gcGhvdG9zX2Jh c2VfbWFuYWdlcl9nZXRfd2hlcmUgKHN0YXRlLT5pdGVtX21uZ3IsIGZsYWdzKTsKKyAKK0BAIC05 Nyw3ICsxMDcsNyBAQCBwaG90b3NfcXVlcnlfYnVpbGRlcl9xdWVyeSAoUGhvdG9zU2VhcmNoQ29u dGV4dFN0YXRlICpzdGF0ZSwKKyAKKyAgIG9yZGVyID0gIk9SREVSIEJZIERFU0MgKD9tdGltZSki OworIAorLSAgaWYgKGdsb2JhbCAmJiAoZmxhZ3MgJiBQSE9UT1NfUVVFUllfRkxBR1NfVU5MSU1J VEVEKSA9PSAwKQorKyAgaWYgKHZhbHVlcyA9PSBOVUxMICYmIChmbGFncyAmIFBIT1RPU19RVUVS WV9GTEFHU19VTkxJTUlURUQpID09IDApCisgICAgIHsKKyAgICAgICBnaW50IG9mZnNldCA9IDA7 CisgICAgICAgZ2ludCBzdGVwID0gNjA7CitAQCAtMTEyLDEyICsxMjIsMTYgQEAgcGhvdG9zX3F1 ZXJ5X2J1aWxkZXJfcXVlcnkgKFBob3Rvc1NlYXJjaENvbnRleHRTdGF0ZSAqc3RhdGUsCisgICAg IH0KKyAKKyAgIHNwYXJxbCA9IHBob3Rvc19zcGFycWxfdGVtcGxhdGVfZ2V0X3NwYXJxbCAodGVt cGxhdGUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJw cm9qZWN0aW9uIiwgcHJvamVjdGlvbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIm1pbmVyX2ZzX2J1c25hbWUiLCBtaW5lcl9mc19idXNuYW1lLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibWFpbl9wcm9qZWN0 aW9uIiwgbWFpbl9wcm9qZWN0aW9uLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAic2Vjb25kX3Byb2plY3Rpb24iLCBzZWNvbmRfcHJvamVjdGlvbiwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZpbmFsX3Byb2pl Y3Rpb24iLCBzZWNvbmRfcHJvamVjdGlvbiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgInZhbHVlcyIsIHZhbHVlcyA/IHZhbHVlcyA6ICIiLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29sbGVjdGlvbnNfZGVm YXVsdF9maWx0ZXIiLCBjb2xsZWN0aW9uc19kZWZhdWx0X2ZpbHRlciwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIml0ZW1fcGF0dGVybiIsIGl0ZW1fcGF0 dGVybiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBo b3Rvc19kZWZhdWx0X2ZpbHRlciIsIHBob3Rvc19kZWZhdWx0X2ZpbHRlciwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNvdXJjZV9maWx0ZXIiLCBzb3Vy Y2VfZmlsdGVyID8gc291cmNlX2ZpbHRlciA6ICIiLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAic2VhcmNoX2ZpbHRlciIsIHNlYXJjaF9maWx0ZXIgPyBz ZWFyY2hfZmlsdGVyIDogIiIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJzb3VyY2VfZmlsdGVyIiwgc291cmNlX2ZpbHRlciA/IHNvdXJjZV9maWx0ZXIg OiAiKHRydWUpIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgInNlYXJjaF9maWx0ZXIiLCBzZWFyY2hfZmlsdGVyID8gc2VhcmNoX2ZpbHRlciA6ICIodHJ1 ZSkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3Jk ZXIiLCBvcmRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIm9mZnNldF9saW1pdCIsIG9mZnNldF9saW1pdCA/IG9mZnNldF9saW1pdCA6ICIiLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKK0BAIC0x MzMsNiArMTQ3LDcgQEAgcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfY3JlYXRlX2NvbGxlY3Rpb25fcXVl cnkgKFBob3Rvc1NlYXJjaENvbnRleHRTdGF0ZSAqc3RhdGUsCisgeworICAgZ19hdXRvcHRyIChH RGF0ZVRpbWUpIG5vdyA9IE5VTEw7CisgICBQaG90b3NRdWVyeSAqcXVlcnk7CisrICBnX2F1dG9w dHIgKFRyYWNrZXJSZXNvdXJjZSkgY29sbGVjdGlvbiA9IE5VTEw7CisgICBnX2F1dG9mcmVlIGdj aGFyICppZGVudGlmaWVyID0gTlVMTDsKKyAgIGdfYXV0b2ZyZWUgZ2NoYXIgKnNwYXJxbCA9IE5V TEw7CisgICBnX2F1dG9mcmVlIGdjaGFyICp0aW1lID0gTlVMTDsKK0BAIC0xNDQsMTMgKzE1OSwx NCBAQCBwaG90b3NfcXVlcnlfYnVpbGRlcl9jcmVhdGVfY29sbGVjdGlvbl9xdWVyeSAoUGhvdG9z U2VhcmNoQ29udGV4dFN0YXRlICpzdGF0ZSwKKyAgIG5vdyA9IGdfZGF0ZV90aW1lX25ld19ub3df dXRjICgpOworICAgdGltZSA9IGdfZGF0ZV90aW1lX2Zvcm1hdF9pc284NjAxIChub3cpOworIAor LSAgc3BhcnFsID0gZ19zdHJkdXBfcHJpbnRmICgiSU5TRVJUIHsgXzpyZXMgYSBuZm86RGF0YUNv bnRhaW5lciA7IGEgbmllOkRhdGFPYmplY3QgOyAiCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJuaWU6Y29udGVudExhc3RNb2RpZmllZCAnJXMnIDsgIgorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAibmllOnRpdGxlICclcycgOyAiCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJuYW86aWRlbnRpZmllciAnJXMnIH0iLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0aW1lLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZGVudGlmaWVyKTsKKysgIGNvbGxlY3Rpb24gPSB0cmFja2VyX3Jl c291cmNlX25ldyAoIl86cmVzIik7CisrICB0cmFja2VyX3Jlc291cmNlX2FkZF91cmkgKGNvbGxl Y3Rpb24sICJyZGY6dHlwZSIsICJuZm86RGF0YUNvbnRhaW5lciIpOworKyAgdHJhY2tlcl9yZXNv dXJjZV9hZGRfdXJpIChjb2xsZWN0aW9uLCAicmRmOnR5cGUiLCAibmllOkRhdGFPYmplY3QiKTsK KysgIHRyYWNrZXJfcmVzb3VyY2Vfc2V0X3N0cmluZyAoY29sbGVjdGlvbiwgIm5pZTpjb250ZW50 TGFzdE1vZGlmaWVkIiwgdGltZSk7CisrICB0cmFja2VyX3Jlc291cmNlX3NldF9zdHJpbmcgKGNv bGxlY3Rpb24sICJuaWU6dGl0bGUiLCBuYW1lKTsKKysgIHRyYWNrZXJfcmVzb3VyY2Vfc2V0X3N0 cmluZyAoY29sbGVjdGlvbiwgIm5hbzppZGVudGlmaWVyIiwgaWRlbnRpZmllcik7CisrCisrICBz cGFycWwgPSB0cmFja2VyX3Jlc291cmNlX3ByaW50X3NwYXJxbF91cGRhdGUgKGNvbGxlY3Rpb24s IE5VTEwsICJ0cmFja2VyOlBpY3R1cmVzIik7CisgCisgICBxdWVyeSA9IHBob3Rvc19xdWVyeV9u ZXcgKHN0YXRlLCBzcGFycWwpOworIAorQEAgLTE4MCw3ICsxOTYsOSBAQCBQaG90b3NRdWVyeSAq CisgcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfY291bnRfcXVlcnkgKFBob3Rvc1NlYXJjaENvbnRleHRT dGF0ZSAqc3RhdGUsIGdpbnQgZmxhZ3MpCisgeworICAgUGhvdG9zU3BhcnFsVGVtcGxhdGUgKnRl bXBsYXRlOworLSAgY29uc3QgZ2NoYXIgKnByb2plY3Rpb24gPSBOVUxMOworKyAgY29uc3QgZ2No YXIgKm1pbmVyX2ZzX2J1c25hbWUgPSBOVUxMOworKyAgY29uc3QgZ2NoYXIgKmNvdW50X3Byb2pl Y3Rpb24gPSBOVUxMOworKyAgY29uc3QgZ2NoYXIgKnZhbHVlX3Byb2plY3Rpb24gPSBOVUxMOwor ICAgZ19hdXRvZnJlZSBnY2hhciAqaXRlbV9wYXR0ZXJuID0gTlVMTDsKKyAgIGdfYXV0b2ZyZWUg Z2NoYXIgKnNlYXJjaF9maWx0ZXIgPSBOVUxMOworICAgZ19hdXRvZnJlZSBnY2hhciAqc291cmNl X2ZpbHRlciA9IE5VTEw7CitAQCAtMTg5LDcgKzIwNywxMCBAQCBwaG90b3NfcXVlcnlfYnVpbGRl cl9jb3VudF9xdWVyeSAoUGhvdG9zU2VhcmNoQ29udGV4dFN0YXRlICpzdGF0ZSwgZ2ludCBmbGFn cykKKyAKKyAgIHRlbXBsYXRlID0gcGhvdG9zX2Jhc2VfbWFuYWdlcl9nZXRfc3BhcnFsX3RlbXBs YXRlIChzdGF0ZS0+c3JjaF90eXBfbW5nciwgZmxhZ3MpOworIAorLSAgcHJvamVjdGlvbiA9ICJD T1VOVCg/dXJuKSAiOworKyAgbWluZXJfZnNfYnVzbmFtZSA9IHBob3Rvc190cmFja2VyX3F1ZXVl X2dldF9taW5lcl9mc19idXNuYW1lIChzdGF0ZS0+cXVldWUpOworKworKyAgdmFsdWVfcHJvamVj dGlvbiA9ICI/dXJuICI7CisrICBjb3VudF9wcm9qZWN0aW9uID0gIkNPVU5UKD91cm4pICI7Cisg CisgICBpdGVtX3BhdHRlcm4gPSBwaG90b3NfYmFzZV9tYW5hZ2VyX2dldF93aGVyZSAoc3RhdGUt Pml0ZW1fbW5nciwgZmxhZ3MpOworIAorQEAgLTIwMCwxMiArMjIxLDE2IEBAIHBob3Rvc19xdWVy eV9idWlsZGVyX2NvdW50X3F1ZXJ5IChQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0YXRlLCBn aW50IGZsYWdzKQorICAgICB9CisgCisgICBzcGFycWwgPSBwaG90b3Nfc3BhcnFsX3RlbXBsYXRl X2dldF9zcGFycWwgKHRlbXBsYXRlLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAicHJvamVjdGlvbiIsIHByb2plY3Rpb24sCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtaW5lcl9mc19idXNuYW1lIiwgbWluZXJf ZnNfYnVzbmFtZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIm1haW5fcHJvamVjdGlvbiIsIHZhbHVlX3Byb2plY3Rpb24sCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZWNvbmRfcHJvamVjdGlvbiIsIHZhbHVl X3Byb2plY3Rpb24sCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJmaW5hbF9wcm9qZWN0aW9uIiwgY291bnRfcHJvamVjdGlvbiwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlcyIsICIiLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29sbGVjdGlvbnNfZGVmYXVs dF9maWx0ZXIiLCBjb2xsZWN0aW9uc19kZWZhdWx0X2ZpbHRlciwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIml0ZW1fcGF0dGVybiIsIGl0ZW1fcGF0dGVy biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBob3Rv c19kZWZhdWx0X2ZpbHRlciIsIHBob3Rvc19kZWZhdWx0X2ZpbHRlciwKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNvdXJjZV9maWx0ZXIiLCBzb3VyY2Vf ZmlsdGVyID8gc291cmNlX2ZpbHRlciA6ICIiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAic2VhcmNoX2ZpbHRlciIsIHNlYXJjaF9maWx0ZXIgPyBzZWFy Y2hfZmlsdGVyIDogIiIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJzb3VyY2VfZmlsdGVyIiwgc291cmNlX2ZpbHRlciA/IHNvdXJjZV9maWx0ZXIgOiAi KHRydWUpIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg InNlYXJjaF9maWx0ZXIiLCBzZWFyY2hfZmlsdGVyID8gc2VhcmNoX2ZpbHRlciA6ICIodHJ1ZSki LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib3JkZXIi LCAiIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9m ZnNldF9saW1pdCIsICIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBOVUxMKTsKK0BAIC0yNjQsNyArMjg5LDcgQEAgcGhvdG9zX3F1ZXJ5X2J1aWxkZXJf ZmV0Y2hfY29sbGVjdGlvbnNfbG9jYWwgKFBob3Rvc1NlYXJjaENvbnRleHRTdGF0ZSAqc3RhdGUp CisgICBnX2F1dG9mcmVlIGdjaGFyICpzcGFycWwgPSBOVUxMOworIAorICAgc3BhcnFsID0gcGhv dG9zX3F1ZXJ5X2J1aWxkZXJfcXVlcnkgKHN0YXRlLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFRSVUUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQSE9U T1NfUVVFUllfRkxBR1NfQ09MTEVDVElPTlMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8IFBIT1RPU19RVUVSWV9GTEFHU19MT0NBTAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgUEhPVE9TX1FVRVJZX0ZMQUdTX1VOTElNSVRFRCwKK0BA IC0yODQsNyArMzA5LDcgQEAgcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfZ2xvYmFsX3F1ZXJ5IChQaG90 b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0YXRlLAorICAgUGhvdG9zUXVlcnkgKnF1ZXJ5OworICAg Z19hdXRvZnJlZSBnY2hhciAqc3BhcnFsID0gTlVMTDsKKyAKKy0gIHNwYXJxbCA9IHBob3Rvc19x dWVyeV9idWlsZGVyX3F1ZXJ5IChzdGF0ZSwgVFJVRSwgZmxhZ3MsIG9mZnNldF9jbnRybHIpOwor KyAgc3BhcnFsID0gcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfcXVlcnkgKHN0YXRlLCBOVUxMLCBmbGFn cywgb2Zmc2V0X2NudHJscik7CisgICBxdWVyeSA9IHBob3Rvc19xdWVyeV9uZXcgKHN0YXRlLCBz cGFycWwpOworIAorICAgcmV0dXJuIHF1ZXJ5OworQEAgLTMxMywxMCArMzM4LDE5IEBAIHBob3Rv c19xdWVyeV9idWlsZGVyX3NldF9jb2xsZWN0aW9uX3F1ZXJ5IChQaG90b3NTZWFyY2hDb250ZXh0 U3RhdGUgKnN0YXRlLAorICAgUGhvdG9zUXVlcnkgKnF1ZXJ5OworICAgZ19hdXRvZnJlZSBnY2hh ciAqc3BhcnFsID0gTlVMTDsKKyAKKy0gIHNwYXJxbCA9IGdfc3RyZHVwX3ByaW50ZiAoIiVzIHsg PCVzPiBuaWU6aXNQYXJ0T2YgPCVzPiB9IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg c2V0dGluZyA/ICJJTlNFUlQiIDogIkRFTEVURSIsCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGl0ZW1fdXJuLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uX3Vy bik7CisrICBpZiAoc2V0dGluZykKKysgICAgc3BhcnFsID0gZ19zdHJkdXBfcHJpbnRmICgiSU5T RVJUIERBVEEgeyAiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgR1JBUEggdHJh Y2tlcjpQaWN0dXJlcyB7IgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgPCVz PiBhIG5pZTpEYXRhT2JqZWN0ICwgbm1tOlBob3RvIDsgIgorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICIgICAgICBuaWU6aXNQYXJ0T2YgPCVzPiAiCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIiAgfSIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAifSIsIGl0 ZW1fdXJuLCBjb2xsZWN0aW9uX3Vybik7CisrICBlbHNlCisrICAgIHNwYXJxbCA9IGdfc3RyZHVw X3ByaW50ZiAoIkRFTEVURSBEQVRBIHsgIgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICIgIEdSQVBIIHRyYWNrZXI6UGljdHVyZXMgeyIKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiICAgIDwlcz4gbmllOmlzUGFydE9mIDwlcz4gIgorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICIgIH0iCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIn0iLCBpdGVt X3VybiwgY29sbGVjdGlvbl91cm4pOworICAgcXVlcnkgPSBwaG90b3NfcXVlcnlfbmV3IChzdGF0 ZSwgc3BhcnFsKTsKKyAKKyAgIHJldHVybiBxdWVyeTsKK0BAIC0zMjYsMTcgKzM2MCwxNCBAQCBw aG90b3NfcXVlcnlfYnVpbGRlcl9zZXRfY29sbGVjdGlvbl9xdWVyeSAoUGhvdG9zU2VhcmNoQ29u dGV4dFN0YXRlICpzdGF0ZSwKKyBQaG90b3NRdWVyeSAqCisgcGhvdG9zX3F1ZXJ5X2J1aWxkZXJf c2luZ2xlX3F1ZXJ5IChQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0YXRlLCBnaW50IGZsYWdz LCBjb25zdCBnY2hhciAqcmVzb3VyY2UpCisgeworLSAgZ19hdXRvcHRyIChHUmVnZXgpIHJlZ2V4 ID0gTlVMTDsKKyAgIFBob3Rvc1F1ZXJ5ICpxdWVyeTsKKy0gIGdfYXV0b2ZyZWUgZ2NoYXIgKnJl cGxhY2VtZW50ID0gTlVMTDsKKyAgIGdfYXV0b2ZyZWUgZ2NoYXIgKnNwYXJxbCA9IE5VTEw7Cist ICBnX2F1dG9mcmVlIGdjaGFyICp0bXAgPSBOVUxMOworKyAgZ19hdXRvZnJlZSBnY2hhciAqdmFs dWVzID0gTlVMTDsKKysKKysgIHZhbHVlcyA9IGdfc3RyZHVwX3ByaW50ZiAoIlZBTFVFUyA/dXJu IHsgPCVzPiB9IiwgcmVzb3VyY2UpOworIAorLSAgdG1wID0gcGhvdG9zX3F1ZXJ5X2J1aWxkZXJf cXVlcnkgKHN0YXRlLCBGQUxTRSwgZmxhZ3MsIE5VTEwpOworKyAgc3BhcnFsID0gcGhvdG9zX3F1 ZXJ5X2J1aWxkZXJfcXVlcnkgKHN0YXRlLCB2YWx1ZXMsIGZsYWdzLCBOVUxMKTsKKyAKKy0gIHJl Z2V4ID0gZ19yZWdleF9uZXcgKCJcXD91cm4iLCAwLCAwLCBOVUxMKTsKKy0gIHJlcGxhY2VtZW50 ID0gZ19zdHJjb25jYXQgKCI8IiwgcmVzb3VyY2UsICI+IiwgTlVMTCk7CistICBzcGFycWwgPSBn X3JlZ2V4X3JlcGxhY2UgKHJlZ2V4LCB0bXAsIC0xLCAwLCByZXBsYWNlbWVudCwgMCwgTlVMTCk7 CisgICBxdWVyeSA9IHBob3Rvc19xdWVyeV9uZXcgKHN0YXRlLCBzcGFycWwpOworIAorICAgcmV0 dXJuIHF1ZXJ5OworQEAgLTM1NCw3ICszODUsMTQgQEAgcGhvdG9zX3F1ZXJ5X2J1aWxkZXJfdXBk YXRlX210aW1lX3F1ZXJ5IChQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUgKnN0YXRlLCBjb25zdAor ICAgbm93ID0gZ19kYXRlX3RpbWVfbmV3X25vd191dGMgKCk7CisgICB0aW1lID0gZ19kYXRlX3Rp bWVfZm9ybWF0X2lzbzg2MDEgKG5vdyk7CisgCistICBzcGFycWwgPSBnX3N0cmR1cF9wcmludGYg KCJJTlNFUlQgT1IgUkVQTEFDRSB7IDwlcz4gbmllOmNvbnRlbnRMYXN0TW9kaWZpZWQgJyVzJyB9 IiwgcmVzb3VyY2UsIHRpbWUpOworKyAgc3BhcnFsID0gZ19zdHJkdXBfcHJpbnRmICgiV0lUSCB0 cmFja2VyOlBpY3R1cmVzICIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRFTEVURSB7 IDwlcz4gbmllOmNvbnRlbnRMYXN0TW9kaWZpZWQgP3RpbWUgfSAiCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJJTlNFUlQgeyAiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICIg IDwlcz4gYSBubW06UGhvdG8gOyAiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAg bmllOmNvbnRlbnRMYXN0TW9kaWZpZWQgJyVzJyAiCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJ9IgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiV0hFUkUgeyA8JXM+IG5pZTpj b250ZW50TGFzdE1vZGlmaWVkID90aW1lIH0iLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICByZXNvdXJjZSwgcmVzb3VyY2UsIHRpbWUsIHJlc291cmNlKTsKKyAgIHF1ZXJ5ID0gcGhvdG9z X3F1ZXJ5X25ldyAoc3RhdGUsIHNwYXJxbCk7CisgCisgICByZXR1cm4gcXVlcnk7CitkaWZmIC0t Z2l0IGEvc3JjL3Bob3Rvcy1zZWFyY2gtY29udGV4dC5jIGIvc3JjL3Bob3Rvcy1zZWFyY2gtY29u dGV4dC5jCitpbmRleCA0YjUwMzc5OC4uNmY4Njk0YmMgMTAwNjQ0CistLS0gYS9zcmMvcGhvdG9z LXNlYXJjaC1jb250ZXh0LmMKKysrKyBiL3NyYy9waG90b3Mtc2VhcmNoLWNvbnRleHQuYworQEAg LTMxLDYgKzMxLDcgQEAKKyAjaW5jbHVkZSAicGhvdG9zLXNlYXJjaC1tYXRjaC1tYW5hZ2VyLmgi CisgI2luY2x1ZGUgInBob3Rvcy1zZWFyY2gtdHlwZS1tYW5hZ2VyLmgiCisgI2luY2x1ZGUgInBo b3Rvcy1zb3VyY2UtbWFuYWdlci5oIgorKyNpbmNsdWRlICJwaG90b3MtdHJhY2tlci1xdWV1ZS5o IgorIAorIAorIEdfREVGSU5FX0lOVEVSRkFDRSAoUGhvdG9zU2VhcmNoQ29udGV4dCwgcGhvdG9z X3NlYXJjaF9jb250ZXh0LCBHX1RZUEVfT0JKRUNUKTsKK0BAIC01NCw2ICs1NSw3IEBAIHBob3Rv c19zZWFyY2hfY29udGV4dF9zdGF0ZV9uZXcgKFBob3Rvc1NlYXJjaENvbnRleHQgKnNlbGYpCisg ICBzdGF0ZS0+c3JjaF9jbnRybHIgPSBwaG90b3Nfc2VhcmNoX2NvbnRyb2xsZXJfbmV3ICgpOwor ICAgc3RhdGUtPnNyY2hfbXRjaF9tbmdyID0gcGhvdG9zX3NlYXJjaF9tYXRjaF9tYW5hZ2VyX25l dyAoc3RhdGUtPnNyY2hfY250cmxyKTsKKyAgIHN0YXRlLT5zcmNoX3R5cF9tbmdyID0gcGhvdG9z X3NlYXJjaF90eXBlX21hbmFnZXJfbmV3ICgpOworKyAgc3RhdGUtPnF1ZXVlID0gcGhvdG9zX3Ry YWNrZXJfcXVldWVfZHVwX3NpbmdsZXRvbiAoTlVMTCwgTlVMTCk7CisgCisgICByZXR1cm4gc3Rh dGU7CisgfQorQEAgLTY4LDYgKzcwLDcgQEAgcGhvdG9zX3NlYXJjaF9jb250ZXh0X3N0YXRlX2Zy ZWUgKFBob3Rvc1NlYXJjaENvbnRleHRTdGF0ZSAqc3RhdGUpCisgICBnX29iamVjdF91bnJlZiAo c3RhdGUtPnNyY2hfbXRjaF9tbmdyKTsKKyAgIGdfb2JqZWN0X3VucmVmIChzdGF0ZS0+c3JjaF90 eXBfbW5ncik7CisgICBnX29iamVjdF91bnJlZiAoc3RhdGUtPnNyY2hfY250cmxyKTsKKysgIGdf Y2xlYXJfb2JqZWN0ICgmc3RhdGUtPnF1ZXVlKTsKKyAgIGdfc2xpY2VfZnJlZSAoUGhvdG9zU2Vh cmNoQ29udGV4dFN0YXRlLCBzdGF0ZSk7CisgfQorIAorZGlmZiAtLWdpdCBhL3NyYy9waG90b3Mt c2VhcmNoLWNvbnRleHQuaCBiL3NyYy9waG90b3Mtc2VhcmNoLWNvbnRleHQuaAoraW5kZXggMmFm NmNmOTYuLjVhMThkMzg2IDEwMDY0NAorLS0tIGEvc3JjL3Bob3Rvcy1zZWFyY2gtY29udGV4dC5o CisrKysgYi9zcmMvcGhvdG9zLXNlYXJjaC1jb250ZXh0LmgKK0BAIC00MSw2ICs0MSw3IEBAIHN0 cnVjdCBfUGhvdG9zU2VhcmNoQ29udGV4dFN0YXRlCisgICBncG9pbnRlciBzcmNoX3R5cF9tbmdy OworICAgZ3BvaW50ZXIgb2Zmc2V0X2NudHJscjsKKyAgIGdwb2ludGVyIHNyY2hfY250cmxyOwor KyAgZ3BvaW50ZXIgcXVldWU7CisgfTsKKyAKKyBQaG90b3NTZWFyY2hDb250ZXh0U3RhdGUgICAg ICAqcGhvdG9zX3NlYXJjaF9jb250ZXh0X3N0YXRlX25ldyAgICAgIChQaG90b3NTZWFyY2hDb250 ZXh0ICpzZWxmKTsKK2RpZmYgLS1naXQgYS9zcmMvcGhvdG9zLXNlYXJjaC1tYXRjaC1tYW5hZ2Vy LmMgYi9zcmMvcGhvdG9zLXNlYXJjaC1tYXRjaC1tYW5hZ2VyLmMKK2luZGV4IGU2ZGM0MjlhLi4y YmExZmQwZiAxMDA2NDQKKy0tLSBhL3NyYy9waG90b3Mtc2VhcmNoLW1hdGNoLW1hbmFnZXIuYwor KysrIGIvc3JjL3Bob3Rvcy1zZWFyY2gtbWF0Y2gtbWFuYWdlci5jCitAQCAtMTQ4LDcgKzE0OCw3 IEBAIHBob3Rvc19zZWFyY2hfbWF0Y2hfbWFuYWdlcl9pbml0IChQaG90b3NTZWFyY2hNYXRjaE1h bmFnZXIgKnNlbGYpCisgICAgICAgICAgICAgICAgICAgIiAgdHJhY2tlcjpjYXNlLWZvbGQgKHRy YWNrZXI6Y29hbGVzY2UgKG5jbzpmdWxsbmFtZSAoP2NyZWF0b3IpLCBuY286ZnVsbG5hbWUoP3B1 Ymxpc2hlcikpKSwiCisgICAgICAgICAgICAgICAgICAgIiAgXCIlc1wiKSI7CisgICB0aXRsZV9m aWx0ZXIgPSAiZm46Y29udGFpbnMgKCIKKy0gICAgICAgICAgICAgICAgICIgIHRyYWNrZXI6Y2Fz ZS1mb2xkICh0cmFja2VyOmNvYWxlc2NlIChuaWU6dGl0bGUgKD91cm4pLCBuZm86ZmlsZU5hbWUo P3VybikpKSwiCisrICAgICAgICAgICAgICAgICAiICB0cmFja2VyOmNhc2UtZm9sZCAodHJhY2tl cjpjb2FsZXNjZSAobmllOnRpdGxlICg/dXJuKSwgbmZvOmZpbGVOYW1lKD9maWxlKSkpLCIKKyAg ICAgICAgICAgICAgICAgICIgIFwiJXNcIikiOworIAorICAgc2VhcmNoX21hdGNoID0gcGhvdG9z X3NlYXJjaF9tYXRjaF9uZXcgKFBIT1RPU19TRUFSQ0hfTUFUQ0hfU1RPQ0tfQUxMLAorZGlmZiAt LWdpdCBhL3NyYy9waG90b3Mtc291cmNlLmMgYi9zcmMvcGhvdG9zLXNvdXJjZS5jCitpbmRleCBk YjZmMmRlOS4uNTIxOTY1MmMgMTAwNjQ0CistLS0gYS9zcmMvcGhvdG9zLXNvdXJjZS5jCisrKysg Yi9zcmMvcGhvdG9zLXNvdXJjZS5jCitAQCAtNjIsNyArNjIsNyBAQCBHX0RFRklORV9UWVBFX1dJ VEhfQ09ERSAoUGhvdG9zU291cmNlLCBwaG90b3Nfc291cmNlLCBHX1RZUEVfT0JKRUNULAorIERa TF9ERUZJTkVfQ09VTlRFUiAoaW5zdGFuY2VzLCAiUGhvdG9zU291cmNlIiwgIkluc3RhbmNlcyIs ICJOdW1iZXIgb2YgUGhvdG9zU291cmNlIGluc3RhbmNlcyIpCisgCisgCistc3RhdGljIGNvbnN0 IGdjaGFyICpUUkFDS0VSX1NDSEVNQSA9ICJvcmcuZnJlZWRlc2t0b3AuVHJhY2tlci5NaW5lci5G aWxlcyI7Cisrc3RhdGljIGNvbnN0IGdjaGFyICpUUkFDS0VSX1NDSEVNQSA9ICJvcmcuZnJlZWRl c2t0b3AuVHJhY2tlcjMuTWluZXIuRmlsZXMiOworIHN0YXRpYyBjb25zdCBnY2hhciAqVFJBQ0tF Ul9LRVlfUkVDVVJTSVZFX0RJUkVDVE9SSUVTID0gImluZGV4LXJlY3Vyc2l2ZS1kaXJlY3Rvcmll cyI7CisgCisgCitAQCAtOTQsNyArOTQsNyBAQCBwaG90b3Nfc291cmNlX2J1aWxkX2ZpbHRlcl9s b2NhbCAodm9pZCkKKyAgICAgICAgIGNvbnRpbnVlOworIAorICAgICAgIHRyYWNrZXJfdXJpID0g cGhvdG9zX3V0aWxzX2NvbnZlcnRfcGF0aF90b191cmkgKHRyYWNrZXJfZGlyc1tpXSk7CistICAg ICAgZ19zdHJpbmdfYXBwZW5kX3ByaW50ZiAodHJhY2tlcl9maWx0ZXIsICIgfHwgZm46Y29udGFp bnMgKG5pZTp1cmwgKD91cm4pLCAnJXMnKSIsIHRyYWNrZXJfdXJpKTsKKysgICAgICBnX3N0cmlu Z19hcHBlbmRfcHJpbnRmICh0cmFja2VyX2ZpbHRlciwgIiB8fCBmbjpjb250YWlucyAobmllOmlz U3RvcmVkQXMgKD91cm4pLCAnJXMnKSIsIHRyYWNrZXJfdXJpKTsKKyAgICAgfQorIAorICAgcGF0 aCA9IGdfZ2V0X3VzZXJfc3BlY2lhbF9kaXIgKEdfVVNFUl9ESVJFQ1RPUllfREVTS1RPUCk7CitA QCAtMTA5LDExICsxMDksMTEgQEAgcGhvdG9zX3NvdXJjZV9idWlsZF9maWx0ZXJfbG9jYWwgKHZv aWQpCisgICBleHBvcnRfcGF0aCA9IGdfYnVpbGRfZmlsZW5hbWUgKHBhdGgsIFBIT1RPU19FWFBP UlRfU1VCUEFUSCwgTlVMTCk7CisgICBleHBvcnRfdXJpID0gcGhvdG9zX3V0aWxzX2NvbnZlcnRf cGF0aF90b191cmkgKGV4cG9ydF9wYXRoKTsKKyAKKy0gIGZpbHRlciA9IGdfc3RyZHVwX3ByaW50 ZiAoIigoKGZuOmNvbnRhaW5zIChuaWU6dXJsICg/dXJuKSwgJyVzJykiCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICIgICB8fCBmbjpjb250YWlucyAobmllOnVybCAoP3VybiksICclcycp IgorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgfHwgZm46Y29udGFpbnMgKG5pZTp1 cmwgKD91cm4pLCAnJXMnKSIKKysgIGZpbHRlciA9IGdfc3RyZHVwX3ByaW50ZiAoIigoKGZuOmNv bnRhaW5zIChuaWU6aXNTdG9yZWRBcyAoP3VybiksICclcycpIgorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiICAgfHwgZm46Y29udGFpbnMgKG5pZTppc1N0b3JlZEFzICg/dXJuKSwgJyVz JykiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICB8fCBmbjpjb250YWlucyAobmll OmlzU3RvcmVkQXMgKD91cm4pLCAnJXMnKSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IiAgICVzKSIKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgJiYgIWZuOmNvbnRhaW5z IChuaWU6dXJsICg/dXJuKSwgJyVzJykpIgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAi ICAmJiAhZm46Y29udGFpbnMgKG5pZTppc1N0b3JlZEFzICg/dXJuKSwgJyVzJykpIgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiIHx8IGZuOnN0YXJ0cy13aXRoIChuYW86aWRlbnRpZmll ciAoP3VybiksICclcycpIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIHx8ICg/dXJu ID0gbmZvOmltYWdlLWNhdGVnb3J5LXNjcmVlbnNob3QpKSIsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRlc2t0b3BfdXJpLAorQEAgLTE0Niw3ICsxNDYsNyBAQCBwaG90b3Nfc291cmNl X2J1aWxkX2ZpbHRlcl9yZXNvdXJjZSAoUGhvdG9zU291cmNlICpzZWxmKQorIAorICAgICAgIHJv b3QgPSBnX21vdW50X2dldF9yb290IChzZWxmLT5tb3VudCk7CisgICAgICAgdXJpID0gZ19maWxl X2dldF91cmkgKHJvb3QpOworLSAgICAgIGZpbHRlciA9IGdfc3RyZHVwX3ByaW50ZiAoIihmbjpz dGFydHMtd2l0aCAobmllOnVybCAoP3VybiksICclcycpKSIsIHVyaSk7CisrICAgICAgZmlsdGVy ID0gZ19zdHJkdXBfcHJpbnRmICgiKGZuOnN0YXJ0cy13aXRoIChuaWU6aXNTdG9yZWRBcyAoP3Vy biksICclcycpKSIsIHVyaSk7CisgICAgIH0KKyAgIGVsc2UKKyAgICAgeworZGlmZiAtLWdpdCBh L3NyYy9waG90b3MtdHJhY2tlci1jaGFuZ2UtZXZlbnQuYyBiL3NyYy9waG90b3MtdHJhY2tlci1j aGFuZ2UtZXZlbnQuYworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCBkNWM3NGViYy4u MDAwMDAwMDAKKy0tLSBhL3NyYy9waG90b3MtdHJhY2tlci1jaGFuZ2UtZXZlbnQuYworKysrIC9k ZXYvbnVsbAorQEAgLTEsMTM2ICswLDAgQEAKKy0vKgorLSAqIFBob3RvcyAtIGFjY2Vzcywgb3Jn YW5pemUgYW5kIHNoYXJlIHlvdXIgcGhvdG9zIG9uIEdOT01FCistICogQ29weXJpZ2h0IMKpIDIw MTIg4oCTIDIwMTkgUmVkIEhhdCwgSW5jLgorLSAqCistICogVGhpcyBwcm9ncmFtIGlzIGZyZWUg c29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKy0gKiBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieQorLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9u IDMgb2YgdGhlIExpY2Vuc2UsIG9yCistICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4KKy0gKgorLSAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCistICogTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorLSAqIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCistICoKKy0gKiBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor LSAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251 Lm9yZy9saWNlbnNlcy8+LgorLSAqLworLQorLS8qIEJhc2VkIG9uIGNvZGUgZnJvbToKKy0gKiAg ICsgRG9jdW1lbnRzCistICovCistCistCistI2luY2x1ZGUgImNvbmZpZy5oIgorLQorLSNpbmNs dWRlICJwaG90b3MtdHJhY2tlci1jaGFuZ2UtZXZlbnQuaCIKKy0KKy0KKy1zdHJ1Y3QgX1Bob3Rv c1RyYWNrZXJDaGFuZ2VFdmVudAorLXsKKy0gIFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudFR5cGUg dHlwZTsKKy0gIGdjaGFyICpwcmVkaWNhdGU7CistICBnY2hhciAqdXJuOworLSAgZ2ludDMyIHBy ZWRpY2F0ZV9pZDsKKy0gIGdpbnQzMiB1cm5faWQ7CistfTsKKy0KKy0KKy1zdGF0aWMgY29uc3Qg Z2NoYXIgKlJERl9UWVBFID0gImh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRh eC1ucyN0eXBlIjsKKy0KKy0KKy12b2lkCistcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X2Zy ZWUgKFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqc2VsZikKKy17CistICBnX2ZyZWUgKHNlbGYt PnByZWRpY2F0ZSk7CistICBnX2ZyZWUgKHNlbGYtPnVybik7CistICBnX3NsaWNlX2ZyZWUgKFBo b3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCwgc2VsZik7CistfQorLQorLQorLVBob3Rvc1RyYWNrZXJD aGFuZ2VFdmVudCAqCistcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X25ldyAoZ2ludDMyIHVy bl9pZCwgZ2ludDMyIHByZWRpY2F0ZV9pZCwgZ2Jvb2xlYW4gaXNfZGVsZXRlKQorLXsKKy0gIFBo b3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqc2VsZjsKKy0KKy0gIHNlbGYgPSBnX3NsaWNlX25ldzAg KFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCk7CistICBzZWxmLT51cm5faWQgPSB1cm5faWQ7Cist ICBzZWxmLT5wcmVkaWNhdGVfaWQgPSBwcmVkaWNhdGVfaWQ7CistCistICBpZiAoaXNfZGVsZXRl KQorLSAgICBzZWxmLT50eXBlID0gUEhPVE9TX1RSQUNLRVJfQ0hBTkdFX0VWRU5UX0RFTEVURUQ7 CistICBlbHNlCistICAgIHNlbGYtPnR5cGUgPSBQSE9UT1NfVFJBQ0tFUl9DSEFOR0VfRVZFTlRf Q1JFQVRFRDsKKy0KKy0gIHJldHVybiBzZWxmOworLX0KKy0KKy0KKy1QaG90b3NUcmFja2VyQ2hh bmdlRXZlbnQgKgorLXBob3Rvc190cmFja2VyX2NoYW5nZV9ldmVudF9jb3B5IChQaG90b3NUcmFj a2VyQ2hhbmdlRXZlbnQgKmV2ZW50KQorLXsKKy0gIFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAq c2VsZjsKKy0KKy0gIHNlbGYgPSBnX3NsaWNlX25ldzAgKFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVu dCk7CistICBzZWxmLT50eXBlID0gZXZlbnQtPnR5cGU7CistICBzZWxmLT5wcmVkaWNhdGUgPSBn X3N0cmR1cCAoZXZlbnQtPnByZWRpY2F0ZSk7CistICBzZWxmLT51cm4gPSBnX3N0cmR1cCAoZXZl bnQtPnVybik7CistICBzZWxmLT5wcmVkaWNhdGVfaWQgPSBldmVudC0+cHJlZGljYXRlX2lkOwor LSAgc2VsZi0+dXJuX2lkID0gZXZlbnQtPnVybl9pZDsKKy0KKy0gIHJldHVybiBzZWxmOworLX0K Ky0KKy0KKy1QaG90b3NUcmFja2VyQ2hhbmdlRXZlbnRUeXBlCistcGhvdG9zX3RyYWNrZXJfY2hh bmdlX2V2ZW50X2dldF90eXBlIChQaG90b3NUcmFja2VyQ2hhbmdlRXZlbnQgKnNlbGYpCistewor LSAgcmV0dXJuIHNlbGYtPnR5cGU7CistfQorLQorLQorLWdpbnQzMgorLXBob3Rvc190cmFja2Vy X2NoYW5nZV9ldmVudF9nZXRfcHJlZGljYXRlX2lkIChQaG90b3NUcmFja2VyQ2hhbmdlRXZlbnQg KnNlbGYpCisteworLSAgcmV0dXJuIHNlbGYtPnByZWRpY2F0ZV9pZDsKKy19CistCistCistY29u c3QgZ2NoYXIgKgorLXBob3Rvc190cmFja2VyX2NoYW5nZV9ldmVudF9nZXRfdXJuIChQaG90b3NU cmFja2VyQ2hhbmdlRXZlbnQgKnNlbGYpCisteworLSAgcmV0dXJuIHNlbGYtPnVybjsKKy19Cist CistCistZ2ludDMyCistcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X2dldF91cm5faWQgKFBo b3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqc2VsZikKKy17CistICByZXR1cm4gc2VsZi0+dXJuX2lk OworLX0KKy0KKy0KKy12b2lkCistcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X21lcmdlIChQ aG90b3NUcmFja2VyQ2hhbmdlRXZlbnQgKnNlbGYsIFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAq ZXZlbnQpCisteworLSAgZ19yZXR1cm5faWZfZmFpbCAoZ19zdHJjbXAwIChzZWxmLT51cm4sIGV2 ZW50LT51cm4pID09IDApOworLQorLSAgaWYgKGV2ZW50LT50eXBlID09IFBIT1RPU19UUkFDS0VS X0NIQU5HRV9FVkVOVF9ERUxFVEVEIHx8IGV2ZW50LT50eXBlID09IFBIT1RPU19UUkFDS0VSX0NI QU5HRV9FVkVOVF9DUkVBVEVEKQorLSAgICBzZWxmLT50eXBlID0gZXZlbnQtPnR5cGU7CistfQor LQorLQorLXZvaWQKKy1waG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfc2V0X3Jlc29sdmVkX3Zh bHVlcyAoUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICpzZWxmLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqdXJuLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAq cHJlZGljYXRlKQorLXsKKy0gIGdfcmV0dXJuX2lmX2ZhaWwgKHNlbGYtPnByZWRpY2F0ZSA9PSBO VUxMKTsKKy0gIGdfcmV0dXJuX2lmX2ZhaWwgKHNlbGYtPnVybiA9PSBOVUxMKTsKKy0KKy0gIHNl bGYtPnVybiA9IGdfc3RyZHVwICh1cm4pOworLSAgc2VsZi0+cHJlZGljYXRlID0gZ19zdHJkdXAg KHByZWRpY2F0ZSk7CistCistICBpZiAoZ19zdHJjbXAwIChwcmVkaWNhdGUsIFJERl9UWVBFKSAh PSAwKQorLSAgICBzZWxmLT50eXBlID0gUEhPVE9TX1RSQUNLRVJfQ0hBTkdFX0VWRU5UX0NIQU5H RUQ7CistfQorZGlmZiAtLWdpdCBhL3NyYy9waG90b3MtdHJhY2tlci1jaGFuZ2UtZXZlbnQuaCBi L3NyYy9waG90b3MtdHJhY2tlci1jaGFuZ2UtZXZlbnQuaAorZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CitpbmRleCBlZWU0ZjQwYy4uMDAwMDAwMDAKKy0tLSBhL3NyYy9waG90b3MtdHJhY2tlci1j aGFuZ2UtZXZlbnQuaAorKysrIC9kZXYvbnVsbAorQEAgLTEsNjQgKzAsMCBAQAorLS8qCistICog UGhvdG9zIC0gYWNjZXNzLCBvcmdhbml6ZSBhbmQgc2hhcmUgeW91ciBwaG90b3Mgb24gR05PTUUK Ky0gKiBDb3B5cmlnaHQgwqkgMjAxMiDigJMgMjAxOSBSZWQgSGF0LCBJbmMuCistICoKKy0gKiBU aGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yIG1vZGlmeQorLSAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CistICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKy0gKiAoYXQgeW91ciBv cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorLSAqCistICogVGhpcyBwcm9ncmFtIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCistICogYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKy0g KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT ZWUgdGhlCistICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K Ky0gKgorLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlCistICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3Qs IHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCistICovCistCistLyogQmFzZWQg b24gY29kZSBmcm9tOgorLSAqICAgKyBEb2N1bWVudHMKKy0gKi8KKy0KKy0jaWZuZGVmIFBIT1RP U19UUkFDS0VSX0NIQU5HRV9FVkVOVF9ICistI2RlZmluZSBQSE9UT1NfVFJBQ0tFUl9DSEFOR0Vf RVZFTlRfSAorLQorLSNpbmNsdWRlIDxnbGliLmg+CistCistR19CRUdJTl9ERUNMUworLQorLXR5 cGVkZWYgZW51bQorLXsKKy0gIFBIT1RPU19UUkFDS0VSX0NIQU5HRV9FVkVOVF9DSEFOR0VELAor LSAgUEhPVE9TX1RSQUNLRVJfQ0hBTkdFX0VWRU5UX0NSRUFURUQsCistICBQSE9UT1NfVFJBQ0tF Ul9DSEFOR0VfRVZFTlRfREVMRVRFRAorLX0gUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50VHlwZTsK Ky0KKy10eXBlZGVmIHN0cnVjdCBfUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50IFBob3Rvc1RyYWNr ZXJDaGFuZ2VFdmVudDsKKy0KKy1QaG90b3NUcmFja2VyQ2hhbmdlRXZlbnQgICpwaG90b3NfdHJh Y2tlcl9jaGFuZ2VfZXZlbnRfbmV3ICAgICAgICAoZ2ludDMyIHVybl9pZCwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Z2ludDMyIHByZWRpY2F0ZV9pZCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gaXNfZGVsZXRlKTsKKy0K Ky1QaG90b3NUcmFja2VyQ2hhbmdlRXZlbnQgICpwaG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRf Y29weSAgICAgICAoUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICpldmVudCk7CistCistdm9pZCAg ICAgICAgICAgICAgICAgICAgICAgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X2ZyZWUgICAg ICAgKFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqc2VsZik7CistCistUGhvdG9zVHJhY2tlckNo YW5nZUV2ZW50VHlwZSBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfZ2V0X3R5cGUgKFBob3Rv c1RyYWNrZXJDaGFuZ2VFdmVudCAqc2VsZik7CistCistZ2ludDMyICAgICAgICAgICAgICAgICAg ICAgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X2dldF9wcmVkaWNhdGVfaWQgKFBob3Rvc1Ry YWNrZXJDaGFuZ2VFdmVudCAqc2VsZik7CistCistY29uc3QgZ2NoYXIgICAgICAgICAgICAgICAq cGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X2dldF91cm4gICAgKFBob3Rvc1RyYWNrZXJDaGFu Z2VFdmVudCAqc2VsZik7CistCistZ2ludDMyICAgICAgICAgICAgICAgICAgICAgcGhvdG9zX3Ry YWNrZXJfY2hhbmdlX2V2ZW50X2dldF91cm5faWQgKFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAq c2VsZik7CistCistdm9pZCAgICAgICAgICAgICAgICAgICAgICAgcGhvdG9zX3RyYWNrZXJfY2hh bmdlX2V2ZW50X21lcmdlICAgICAgKFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqc2VsZiwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUGhvdG9zVHJhY2tlckNoYW5nZUV2ZW50ICpldmVudCk7CistCistdm9pZCAgICAg ICAgICAgICAgICAgICAgICAgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X3NldF9yZXNvbHZl ZF92YWx1ZXMgKFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqc2VsZiwKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgZ2NoYXIgKnVybiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIg KnByZWRpY2F0ZSk7CistCistR19FTkRfREVDTFMKKy0KKy0jZW5kaWYgLyogUEhPVE9TX1RSQUNL RVJfQ0hBTkdFX0VWRU5UX0ggKi8KK2RpZmYgLS1naXQgYS9zcmMvcGhvdG9zLXRyYWNrZXItY2hh bmdlLW1vbml0b3IuYyBiL3NyYy9waG90b3MtdHJhY2tlci1jaGFuZ2UtbW9uaXRvci5jCitkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDJlOTgxMGFhLi4wMDAwMDAwMAorLS0tIGEvc3Jj L3Bob3Rvcy10cmFja2VyLWNoYW5nZS1tb25pdG9yLmMKKysrKyAvZGV2L251bGwKK0BAIC0xLDQ2 OCArMCwwIEBACistLyoKKy0gKiBQaG90b3MgLSBhY2Nlc3MsIG9yZ2FuaXplIGFuZCBzaGFyZSB5 b3VyIHBob3RvcyBvbiBHTk9NRQorLSAqIENvcHlyaWdodCDCqSAyMDEyIOKAkyAyMDE5IFJlZCBI YXQsIEluYy4KKy0gKgorLSAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CistICogaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKy0gKiB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNl LCBvcgorLSAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCistICoKKy0gKiBU aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKKy0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZgorLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKy0gKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBmb3IgbW9yZSBkZXRhaWxzLgorLSAqCistICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg Y29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKy0gKiBhbG9uZyB3aXRoIHRo aXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4K Ky0gKi8KKy0KKy0vKiBCYXNlZCBvbiBjb2RlIGZyb206CistICogICArIERvY3VtZW50cworLSAq LworLQorLQorLSNpbmNsdWRlICJjb25maWcuaCIKKy0KKy0jaW5jbHVkZSA8Z2xpYi5oPgorLSNp bmNsdWRlIDx0cmFja2VyLXNwYXJxbC5oPgorLQorLSNpbmNsdWRlICJwaG90b3MtdHJhY2tlci1j aGFuZ2UtZXZlbnQuaCIKKy0jaW5jbHVkZSAicGhvdG9zLXRyYWNrZXItY2hhbmdlLW1vbml0b3Iu aCIKKy0jaW5jbHVkZSAicGhvdG9zLXRyYWNrZXItcXVldWUuaCIKKy0jaW5jbHVkZSAicGhvdG9z LXRyYWNrZXItcmVzb3VyY2VzLmgiCistI2luY2x1ZGUgInBob3Rvcy1xdWVyeS5oIgorLQorLQor LXN0cnVjdCBfUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3IKKy17CistICBHT2JqZWN0IHBhcmVu dF9pbnN0YW5jZTsKKy0gIEdIYXNoVGFibGUgKnBlbmRpbmdfY2hhbmdlczsKKy0gIEdIYXNoVGFi bGUgKnVucmVzb2x2ZWRfaWRzOworLSAgR1F1ZXVlICpwZW5kaW5nX2V2ZW50czsKKy0gIFBob3Rv c1RyYWNrZXJRdWV1ZSAqcXVldWU7CistICBUcmFja2VyUmVzb3VyY2VzICpyZXNvdXJjZV9zZXJ2 aWNlOworLSAgZ3VpbnQgb3V0c3RhbmRpbmdfb3BzOworLSAgZ3VpbnQgcGVuZGluZ19ldmVudHNf aWQ7CistfTsKKy0KKy1lbnVtCisteworLSAgQ0hBTkdFU19QRU5ESU5HLAorLSAgTEFTVF9TSUdO QUwKKy19OworLQorLXN0YXRpYyBndWludCBzaWduYWxzW0xBU1RfU0lHTkFMXSA9IHsgMCB9Owor LQorLXN0YXRpYyB2b2lkIHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX2luaXRhYmxlX2lm YWNlX2luaXQgKEdJbml0YWJsZUlmYWNlICppZmFjZSk7CistCistCistR19ERUZJTkVfVFlQRV9F WFRFTkRFRCAoUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3IsIHBob3Rvc190cmFja2VyX2NoYW5n ZV9tb25pdG9yLCBHX1RZUEVfT0JKRUNULCAwLAorLSAgICAgICAgICAgICAgICAgICAgICAgIEdf SU1QTEVNRU5UX0lOVEVSRkFDRSAoR19UWVBFX0lOSVRBQkxFLCBwaG90b3NfdHJhY2tlcl9jaGFu Z2VfbW9uaXRvcl9pbml0YWJsZV9pZmFjZV9pbml0KSk7CistCistCistZW51bQorLXsKKy0gIENI QU5HRV9NT05JVE9SX1RJTUVPVVQgPSA1MDAsIC8qIG1zICovCistICBDSEFOR0VfTU9OSVRPUl9N QVhfSVRFTVMgPSA1MDAKKy19OworLQorLQorLXR5cGVkZWYgc3RydWN0IF9QaG90b3NUcmFja2Vy Q2hhbmdlTW9uaXRvclF1ZXJ5RGF0YSBQaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvclF1ZXJ5RGF0 YTsKKy10eXBlZGVmIHN0cnVjdCBfVHJhY2tlclJlc291cmNlc0V2ZW50IFRyYWNrZXJSZXNvdXJj ZXNFdmVudDsKKy0KKy1zdHJ1Y3QgX1Bob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yUXVlcnlEYXRh CisteworLSAgUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3IgKnNlbGY7CistICBHSGFzaFRhYmxl ICppZF90YWJsZTsKKy0gIEdRdWV1ZSAqZXZlbnRzOworLX07CistCistc3RydWN0IF9UcmFja2Vy UmVzb3VyY2VzRXZlbnQKKy17CistICBnaW50MzIgZ3JhcGg7CistICBnaW50MzIgc3ViamVjdDsK Ky0gIGdpbnQzMiBwcmVkaWNhdGU7CistICBnaW50MzIgb2JqZWN0OworLX07CistCistCistc3Rh dGljIHZvaWQKKy1waG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9xdWVyeV9kYXRhX2ZyZWUg KFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yUXVlcnlEYXRhICpkYXRhKQorLXsKKy0gIGdfY2xl YXJfb2JqZWN0ICgmZGF0YS0+c2VsZik7CistCistICBpZiAoZGF0YS0+aWRfdGFibGUgIT0gTlVM TCkKKy0gICAgZ19oYXNoX3RhYmxlX3VucmVmIChkYXRhLT5pZF90YWJsZSk7CistCistICBpZiAo ZGF0YS0+ZXZlbnRzICE9IE5VTEwpCistICAgIGdfcXVldWVfZnJlZV9mdWxsIChkYXRhLT5ldmVu dHMsIChHRGVzdHJveU5vdGlmeSkgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X2ZyZWUpOwor LQorLSAgZ19zbGljZV9mcmVlIChQaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvclF1ZXJ5RGF0YSwg ZGF0YSk7CistfQorLQorLQorLXN0YXRpYyBQaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvclF1ZXJ5 RGF0YSAqCistcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfcXVlcnlfZGF0YV9uZXcgKFBo b3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yICpzZWxmLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBHSGFzaFRhYmxlICppZF90YWJsZSwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1F1ZXVlICpldmVudHMpCistewor LSAgUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3JRdWVyeURhdGEgKmRhdGE7CistCistICBkYXRh ID0gZ19zbGljZV9uZXcwIChQaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvclF1ZXJ5RGF0YSk7Cist ICBkYXRhLT5zZWxmID0gZ19vYmplY3RfcmVmIChzZWxmKTsKKy0gIGRhdGEtPmlkX3RhYmxlID0g aWRfdGFibGU7CistICBkYXRhLT5ldmVudHMgPSBldmVudHM7CistCistICByZXR1cm4gZGF0YTsK Ky19CistCistCistc3RhdGljIHZvaWQKKy1waG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9h ZGRfZXZlbnQgKFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yICpzZWxmLCBQaG90b3NUcmFja2Vy Q2hhbmdlRXZlbnQgKmNoYW5nZV9ldmVudCkKKy17CistICBQaG90b3NUcmFja2VyQ2hhbmdlRXZl bnQgKm9sZF9jaGFuZ2VfZXZlbnQ7CistICBjb25zdCBnY2hhciAqdXJuOworLQorLSAgdXJuID0g cGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X2dldF91cm4gKGNoYW5nZV9ldmVudCk7CistICBv bGRfY2hhbmdlX2V2ZW50ID0gKFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqKSBnX2hhc2hfdGFi bGVfbG9va3VwIChzZWxmLT5wZW5kaW5nX2NoYW5nZXMsIHVybik7CistCistICBpZiAob2xkX2No YW5nZV9ldmVudCAhPSBOVUxMKQorLSAgICBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfbWVy Z2UgKG9sZF9jaGFuZ2VfZXZlbnQsIGNoYW5nZV9ldmVudCk7CistICBlbHNlCistICAgIGdfaGFz aF90YWJsZV9pbnNlcnQgKHNlbGYtPnBlbmRpbmdfY2hhbmdlcywgZ19zdHJkdXAgKHVybiksIHBo b3Rvc190cmFja2VyX2NoYW5nZV9ldmVudF9jb3B5IChjaGFuZ2VfZXZlbnQpKTsKKy19CistCist Cistc3RhdGljIHZvaWQKKy1waG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9yZW1vdmVfdGlt ZW91dCAoUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3IgKnNlbGYpCisteworLSAgaWYgKHNlbGYt PnBlbmRpbmdfZXZlbnRzX2lkICE9IDApCistICAgIHsKKy0gICAgICBnX3NvdXJjZV9yZW1vdmUg KHNlbGYtPnBlbmRpbmdfZXZlbnRzX2lkKTsKKy0gICAgICBzZWxmLT5wZW5kaW5nX2V2ZW50c19p ZCA9IDA7CistICAgIH0KKy19CistCistCistc3RhdGljIHZvaWQKKy1waG90b3NfdHJhY2tlcl9j aGFuZ2VfbW9uaXRvcl9zZW5kX2V2ZW50cyAoUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3IgKnNl bGYsIEdIYXNoVGFibGUgKmlkX3RhYmxlLCBHUXVldWUgKmV2ZW50cykKKy17CistICBHTGlzdCAq bDsKKy0KKy0gIGZvciAobCA9IGV2ZW50cy0+aGVhZDsgbCAhPSBOVUxMOyBsID0gbC0+bmV4dCkK Ky0gICAgeworLSAgICAgIFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqY2hhbmdlX2V2ZW50ID0g KFBob3Rvc1RyYWNrZXJDaGFuZ2VFdmVudCAqKSBsLT5kYXRhOworLSAgICAgIGNvbnN0IGdjaGFy ICpwcmVkaWNhdGU7CistICAgICAgY29uc3QgZ2NoYXIgKnVybjsKKy0gICAgICBnaW50MzIgcHJl ZGljYXRlX2lkOworLSAgICAgIGdpbnQzMiB1cm5faWQ7CistCistICAgICAgcHJlZGljYXRlX2lk ID0gcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X2dldF9wcmVkaWNhdGVfaWQgKGNoYW5nZV9l dmVudCk7CistICAgICAgdXJuX2lkID0gcGhvdG9zX3RyYWNrZXJfY2hhbmdlX2V2ZW50X2dldF91 cm5faWQgKGNoYW5nZV9ldmVudCk7CistCistICAgICAgcHJlZGljYXRlID0gKGdjaGFyICopIGdf aGFzaF90YWJsZV9sb29rdXAgKGlkX3RhYmxlLCBHSU5UX1RPX1BPSU5URVIgKHByZWRpY2F0ZV9p ZCkpOworLSAgICAgIGlmIChHX1VOTElLRUxZIChwcmVkaWNhdGUgPT0gTlVMTCkpCistICAgICAg ICBjb250aW51ZTsKKy0KKy0gICAgICB1cm4gPSAoZ2NoYXIgKikgZ19oYXNoX3RhYmxlX2xvb2t1 cCAoaWRfdGFibGUsIEdJTlRfVE9fUE9JTlRFUiAodXJuX2lkKSk7CistICAgICAgaWYgKEdfVU5M SUtFTFkgKHVybiA9PSBOVUxMKSkKKy0gICAgICAgIGNvbnRpbnVlOworLQorLSAgICAgIHBob3Rv c190cmFja2VyX2NoYW5nZV9ldmVudF9zZXRfcmVzb2x2ZWRfdmFsdWVzIChjaGFuZ2VfZXZlbnQs IHVybiwgcHJlZGljYXRlKTsKKy0gICAgICBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9h ZGRfZXZlbnQgKHNlbGYsIGNoYW5nZV9ldmVudCk7CistICAgIH0KKy0KKy0gIGdfc2lnbmFsX2Vt aXQgKHNlbGYsIHNpZ25hbHNbQ0hBTkdFU19QRU5ESU5HXSwgMCwgc2VsZi0+cGVuZGluZ19jaGFu Z2VzKTsKKy0gIGdfaGFzaF90YWJsZV9yZW1vdmVfYWxsIChzZWxmLT5wZW5kaW5nX2NoYW5nZXMp OworLX0KKy0KKy0KKy1zdGF0aWMgdm9pZAorLXBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9y X2N1cnNvcl9uZXh0IChHT2JqZWN0ICpzb3VyY2Vfb2JqZWN0LCBHQXN5bmNSZXN1bHQgKnJlcywg Z3BvaW50ZXIgdXNlcl9kYXRhKQorLXsKKy0gIFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yUXVl cnlEYXRhICpkYXRhID0gKFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yUXVlcnlEYXRhICopIHVz ZXJfZGF0YTsKKy0gIFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yICpzZWxmID0gZGF0YS0+c2Vs ZjsKKy0gIFRyYWNrZXJTcGFycWxDdXJzb3IgKmN1cnNvciA9IFRSQUNLRVJfU1BBUlFMX0NVUlNP UiAoc291cmNlX29iamVjdCk7CistICBHSGFzaFRhYmxlSXRlciBpdGVyOworLSAgZ2Jvb2xlYW4g dmFsaWQ7CistCistICB7CistICAgIGdfYXV0b3B0ciAoR0Vycm9yKSBlcnJvciA9IE5VTEw7Cist CistICAgIHZhbGlkID0gdHJhY2tlcl9zcGFycWxfY3Vyc29yX25leHRfZmluaXNoIChjdXJzb3Is IHJlcywgJmVycm9yKTsKKy0gICAgaWYgKGVycm9yICE9IE5VTEwpCistICAgICAgZ193YXJuaW5n ICgiVW5hYmxlIHRvIHJlc29sdmUgaXRlbSBVUk5zIGZvciBncmFwaCBjaGFuZ2VzOiAlcyIsIGVy cm9yLT5tZXNzYWdlKTsKKy0gIH0KKy0KKy0gIGlmICh2YWxpZCkKKy0gICAgeworLSAgICAgIGd1 aW50IGlkeDsKKy0KKy0gICAgICBpZHggPSAwOworLSAgICAgIGdfaGFzaF90YWJsZV9pdGVyX2lu aXQgKCZpdGVyLCBkYXRhLT5pZF90YWJsZSk7CistICAgICAgd2hpbGUgKGdfaGFzaF90YWJsZV9p dGVyX25leHQgKCZpdGVyLCBOVUxMLCBOVUxMKSkKKy0gICAgICAgIHsKKy0gICAgICAgICAgY29u c3QgZ2NoYXIgKnN0cjsKKy0KKy0gICAgICAgICAgc3RyID0gdHJhY2tlcl9zcGFycWxfY3Vyc29y X2dldF9zdHJpbmcgKGN1cnNvciwgaWR4LCBOVUxMKTsKKy0gICAgICAgICAgZ19oYXNoX3RhYmxl X2l0ZXJfcmVwbGFjZSAoJml0ZXIsIGdfc3RyZHVwIChzdHIpKTsKKy0gICAgICAgICAgaWR4Kys7 CistICAgICAgICB9CistCistICAgICAgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3Jfc2Vu ZF9ldmVudHMgKHNlbGYsIGRhdGEtPmlkX3RhYmxlLCBkYXRhLT5ldmVudHMpOworLSAgICB9Cist CistICB0cmFja2VyX3NwYXJxbF9jdXJzb3JfY2xvc2UgKGN1cnNvcik7CistICBwaG90b3NfdHJh Y2tlcl9jaGFuZ2VfbW9uaXRvcl9xdWVyeV9kYXRhX2ZyZWUgKGRhdGEpOworLX0KKy0KKy0KKy1z dGF0aWMgdm9pZAorLXBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX3F1ZXJ5X2V4ZWN1dGVk IChHT2JqZWN0ICpzb3VyY2Vfb2JqZWN0LCBHQXN5bmNSZXN1bHQgKnJlcywgZ3BvaW50ZXIgdXNl cl9kYXRhKQorLXsKKy0gIFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yUXVlcnlEYXRhICpkYXRh ID0gKFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yUXVlcnlEYXRhICopIHVzZXJfZGF0YTsKKy0g IFRyYWNrZXJTcGFycWxDb25uZWN0aW9uICpjb25uZWN0aW9uID0gVFJBQ0tFUl9TUEFSUUxfQ09O TkVDVElPTiAoc291cmNlX29iamVjdCk7CistICBUcmFja2VyU3BhcnFsQ3Vyc29yICpjdXJzb3I7 IC8qIFRPRE86IFVzZSBnX2F1dG9wdHIgKi8KKy0KKy0gIHsKKy0gICAgZ19hdXRvcHRyIChHRXJy b3IpIGVycm9yID0gTlVMTDsKKy0KKy0gICAgY3Vyc29yID0gdHJhY2tlcl9zcGFycWxfY29ubmVj dGlvbl9xdWVyeV9maW5pc2ggKGNvbm5lY3Rpb24sIHJlcywgJmVycm9yKTsKKy0gICAgaWYgKGVy cm9yICE9IE5VTEwpCistICAgICAgeworLSAgICAgICAgZ193YXJuaW5nICgiVW5hYmxlIHRvIHJl c29sdmUgaXRlbSBVUk5zIGZvciBncmFwaCBjaGFuZ2VzOiAlcyIsIGVycm9yLT5tZXNzYWdlKTsK Ky0gICAgICAgIHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX3F1ZXJ5X2RhdGFfZnJlZSAo ZGF0YSk7CistICAgICAgICByZXR1cm47CistICAgICAgfQorLSAgfQorLQorLSAgdHJhY2tlcl9z cGFycWxfY3Vyc29yX25leHRfYXN5bmMgKGN1cnNvciwgTlVMTCwgcGhvdG9zX3RyYWNrZXJfY2hh bmdlX21vbml0b3JfY3Vyc29yX25leHQsIGRhdGEpOworLSAgZ19vYmplY3RfdW5yZWYgKGN1cnNv cik7CistfQorLQorLQorLXN0YXRpYyBnYm9vbGVhbgorLXBob3Rvc190cmFja2VyX2NoYW5nZV9t b25pdG9yX3Byb2Nlc3NfZXZlbnRzIChQaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvciAqc2VsZikK Ky17CistICBHSGFzaFRhYmxlICppZF90YWJsZTsKKy0gIEdIYXNoVGFibGVJdGVyIGl0ZXI7Cist ICBHUXVldWUgKmV2ZW50czsKKy0gIGdfYXV0b3B0ciAoR1N0cmluZykgc3BhcnFsID0gTlVMTDsK Ky0gIFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yUXVlcnlEYXRhICpkYXRhOworLSAgZ19hdXRv cHRyIChQaG90b3NRdWVyeSkgcXVlcnkgPSBOVUxMOworLSAgZ3BvaW50ZXIgaWQ7CistCistICBl dmVudHMgPSBzZWxmLT5wZW5kaW5nX2V2ZW50czsKKy0gIHNlbGYtPnBlbmRpbmdfZXZlbnRzID0g Z19xdWV1ZV9uZXcgKCk7CistCistICBpZF90YWJsZSA9IHNlbGYtPnVucmVzb2x2ZWRfaWRzOwor LSAgc2VsZi0+dW5yZXNvbHZlZF9pZHMgPSBnX2hhc2hfdGFibGVfbmV3X2Z1bGwgKGdfZGlyZWN0 X2hhc2gsIGdfZGlyZWN0X2VxdWFsLCBOVUxMLCBnX2ZyZWUpOworLQorLSAgc2VsZi0+cGVuZGlu Z19ldmVudHNfaWQgPSAwOworLQorLSAgc3BhcnFsID0gZ19zdHJpbmdfbmV3ICgiU0VMRUNUIik7 CistCistICBnX2hhc2hfdGFibGVfaXRlcl9pbml0ICgmaXRlciwgaWRfdGFibGUpOworLSAgd2hp bGUgKGdfaGFzaF90YWJsZV9pdGVyX25leHQgKCZpdGVyLCAmaWQsIE5VTEwpKQorLSAgICBnX3N0 cmluZ19hcHBlbmRfcHJpbnRmIChzcGFycWwsICIgdHJhY2tlcjp1cmkoJWQpIiwgR1BPSU5URVJf VE9fSU5UIChpZCkpOworLQorLSAgZ19zdHJpbmdfYXBwZW5kIChzcGFycWwsICIge30iKTsKKy0K Ky0gIHF1ZXJ5ID0gcGhvdG9zX3F1ZXJ5X25ldyAoTlVMTCwgc3BhcnFsLT5zdHIpOworLQorLSAg ZGF0YSA9IHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX3F1ZXJ5X2RhdGFfbmV3IChzZWxm LCBpZF90YWJsZSwgZXZlbnRzKTsKKy0gIHBob3Rvc190cmFja2VyX3F1ZXVlX3NlbGVjdCAoc2Vs Zi0+cXVldWUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5LAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9xdWVyeV9leGVjdXRlZCwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTlVMTCk7CistCistICByZXR1cm4gR19TT1VSQ0VfUkVNT1ZFOworLX0KKy0K Ky0KKy1zdGF0aWMgdm9pZAorLXBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX2FkZF9wZW5k aW5nX2V2ZW50IChQaG90b3NUcmFja2VyQ2hhbmdlTW9uaXRvciAqc2VsZiwKKy0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVHJhY2tlclJlc291 cmNlc0V2ZW50ICpldmVudCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ2Jvb2xlYW4gaXNfZGVsZXRlKQorLXsKKy0gIFBob3Rvc1RyYWNrZXJDaGFu Z2VFdmVudCAqY2hhbmdlX2V2ZW50OworLQorLSAgcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0 b3JfcmVtb3ZlX3RpbWVvdXQgKHNlbGYpOworLQorLSAgZ19oYXNoX3RhYmxlX2luc2VydCAoc2Vs Zi0+dW5yZXNvbHZlZF9pZHMsIEdJTlRfVE9fUE9JTlRFUiAoZXZlbnQtPnN1YmplY3QpLCBOVUxM KTsKKy0gIGdfaGFzaF90YWJsZV9pbnNlcnQgKHNlbGYtPnVucmVzb2x2ZWRfaWRzLCBHSU5UX1RP X1BPSU5URVIgKGV2ZW50LT5wcmVkaWNhdGUpLCBOVUxMKTsKKy0KKy0gIGNoYW5nZV9ldmVudCA9 IHBob3Rvc190cmFja2VyX2NoYW5nZV9ldmVudF9uZXcgKGV2ZW50LT5zdWJqZWN0LCBldmVudC0+ cHJlZGljYXRlLCBpc19kZWxldGUpOworLSAgZ19xdWV1ZV9wdXNoX3RhaWwgKHNlbGYtPnBlbmRp bmdfZXZlbnRzLCBjaGFuZ2VfZXZlbnQpOworLQorLSAgaWYgKHNlbGYtPnBlbmRpbmdfZXZlbnRz LT5sZW5ndGggPj0gQ0hBTkdFX01PTklUT1JfTUFYX0lURU1TKQorLSAgICBwaG90b3NfdHJhY2tl cl9jaGFuZ2VfbW9uaXRvcl9wcm9jZXNzX2V2ZW50cyAoc2VsZik7CistICBlbHNlCistICAgIHNl bGYtPnBlbmRpbmdfZXZlbnRzX2lkID0gZ190aW1lb3V0X2FkZCAoQ0hBTkdFX01PTklUT1JfVElN RU9VVCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR1Nv dXJjZUZ1bmMpIHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX3Byb2Nlc3NfZXZlbnRzLAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYpOworLX0K Ky0KKy0KKy1zdGF0aWMgdm9pZAorLXBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX2dyYXBo X3VwZGF0ZWQgKFRyYWNrZXJSZXNvdXJjZXMgKnJlc291cmNlX3NlcnZpY2UsCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgKmNsYXNzX25h bWUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1Zhcmlh bnQgKmRlbGV0ZV9ldmVudHMsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgR1ZhcmlhbnQgKmluc2VydF9ldmVudHMsCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgdXNlcl9kYXRhKQorLXsKKy0gIFBob3Rv c1RyYWNrZXJDaGFuZ2VNb25pdG9yICpzZWxmID0gUEhPVE9TX1RSQUNLRVJfQ0hBTkdFX01PTklU T1IgKHVzZXJfZGF0YSk7CistICBjb25zdCBUcmFja2VyUmVzb3VyY2VzRXZlbnQgKmV2ZW50czsK Ky0gIGdzaXplIGk7CistICBnc2l6ZSBuX2VsZW1lbnRzOworLQorLSAgZXZlbnRzID0gKGNvbnN0 IFRyYWNrZXJSZXNvdXJjZXNFdmVudCAqKSBnX3ZhcmlhbnRfZ2V0X2ZpeGVkX2FycmF5IChkZWxl dGVfZXZlbnRzLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAmbl9lbGVtZW50cywKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6 ZW9mIChUcmFja2VyUmVzb3VyY2VzRXZlbnQpKTsKKy0gIGZvciAoaSA9IDA7IGkgPCBuX2VsZW1l bnRzOyBpKyspCistICAgIHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX2FkZF9wZW5kaW5n X2V2ZW50IChzZWxmLCAmZXZlbnRzW2ldLCBUUlVFKTsKKy0KKy0gIGV2ZW50cyA9IChjb25zdCBU cmFja2VyUmVzb3VyY2VzRXZlbnQgKikgZ192YXJpYW50X2dldF9maXhlZF9hcnJheSAoaW5zZXJ0 X2V2ZW50cywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJm5fZWxlbWVudHMsCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVv ZiAoVHJhY2tlclJlc291cmNlc0V2ZW50KSk7CistICBmb3IgKGkgPSAwOyBpIDwgbl9lbGVtZW50 czsgaSsrKQorLSAgICBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9hZGRfcGVuZGluZ19l dmVudCAoc2VsZiwgJmV2ZW50c1tpXSwgRkFMU0UpOworLX0KKy0KKy0KKy1zdGF0aWMgR09iamVj dCAqCistcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfY29uc3RydWN0b3IgKEdUeXBlIHR5 cGUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50IG5f Y29uc3RydWN0X3BhcmFtcywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgR09iamVjdENvbnN0cnVjdFBhcmFtICpjb25zdHJ1Y3RfcGFyYW1zKQorLXsKKy0gIHN0 YXRpYyBHT2JqZWN0ICpzZWxmID0gTlVMTDsKKy0KKy0gIGlmIChzZWxmID09IE5VTEwpCistICAg IHsKKy0gICAgICBzZWxmID0gR19PQkpFQ1RfQ0xBU1MgKHBob3Rvc190cmFja2VyX2NoYW5nZV9t b25pdG9yX3BhcmVudF9jbGFzcyktPmNvbnN0cnVjdG9yICh0eXBlLAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG5fY29uc3RydWN0X3BhcmFtcywKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdHJ1Y3RfcGFyYW1zKTsKKy0gICAgICBnX29iamVjdF9hZGRfd2Vha19w b2ludGVyIChzZWxmLCAoZ3BvaW50ZXIpICZzZWxmKTsKKy0gICAgICByZXR1cm4gc2VsZjsKKy0g ICAgfQorLQorLSAgcmV0dXJuIGdfb2JqZWN0X3JlZiAoc2VsZik7CistfQorLQorLQorLXN0YXRp YyB2b2lkCistcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfZGlzcG9zZSAoR09iamVjdCAq b2JqZWN0KQorLXsKKy0gIFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yICpzZWxmID0gUEhPVE9T X1RSQUNLRVJfQ0hBTkdFX01PTklUT1IgKG9iamVjdCk7CistCistICBwaG90b3NfdHJhY2tlcl9j aGFuZ2VfbW9uaXRvcl9yZW1vdmVfdGltZW91dCAoc2VsZik7CistCistICBnX2NsZWFyX29iamVj dCAoJnNlbGYtPnF1ZXVlKTsKKy0gIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+cmVzb3VyY2Vfc2Vy dmljZSk7CistCistICBHX09CSkVDVF9DTEFTUyAocGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0 b3JfcGFyZW50X2NsYXNzKS0+ZGlzcG9zZSAob2JqZWN0KTsKKy19CistCistCistc3RhdGljIHZv aWQKKy1waG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9maW5hbGl6ZSAoR09iamVjdCAqb2Jq ZWN0KQorLXsKKy0gIFBob3Rvc1RyYWNrZXJDaGFuZ2VNb25pdG9yICpzZWxmID0gUEhPVE9TX1RS QUNLRVJfQ0hBTkdFX01PTklUT1IgKG9iamVjdCk7CistCistICBnX2hhc2hfdGFibGVfdW5yZWYg KHNlbGYtPnBlbmRpbmdfY2hhbmdlcyk7CistICBnX2hhc2hfdGFibGVfdW5yZWYgKHNlbGYtPnVu cmVzb2x2ZWRfaWRzKTsKKy0KKy0gIGdfcXVldWVfZnJlZV9mdWxsIChzZWxmLT5wZW5kaW5nX2V2 ZW50cywgKEdEZXN0cm95Tm90aWZ5KSBwaG90b3NfdHJhY2tlcl9jaGFuZ2VfZXZlbnRfZnJlZSk7 CistCistICBHX09CSkVDVF9DTEFTUyAocGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfcGFy ZW50X2NsYXNzKS0+ZmluYWxpemUgKG9iamVjdCk7CistfQorLQorLQorLXN0YXRpYyB2b2lkCist cGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfaW5pdCAoUGhvdG9zVHJhY2tlckNoYW5nZU1v bml0b3IgKnNlbGYpCisteworLSAgc2VsZi0+cGVuZGluZ19jaGFuZ2VzID0gZ19oYXNoX3RhYmxl X25ld19mdWxsIChnX3N0cl9oYXNoLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBnX3N0cl9lcXVhbCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZ19mcmVlLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoR0Rlc3Ryb3lOb3RpZnkpIHBob3Rvc190cmFja2Vy X2NoYW5nZV9ldmVudF9mcmVlKTsKKy0KKy0gIHNlbGYtPnVucmVzb2x2ZWRfaWRzID0gZ19oYXNo X3RhYmxlX25ld19mdWxsIChnX2RpcmVjdF9oYXNoLCBnX2RpcmVjdF9lcXVhbCwgTlVMTCwgZ19m cmVlKTsKKy0KKy0gIHNlbGYtPnBlbmRpbmdfZXZlbnRzID0gZ19xdWV1ZV9uZXcgKCk7CistfQor LQorLQorLXN0YXRpYyB2b2lkCistcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfY2xhc3Nf aW5pdCAoUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3JDbGFzcyAqY2xhc3MpCisteworLSAgR09i amVjdENsYXNzICpvYmplY3RfY2xhc3MgPSBHX09CSkVDVF9DTEFTUyAoY2xhc3MpOworLQorLSAg b2JqZWN0X2NsYXNzLT5jb25zdHJ1Y3RvciA9IHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9y X2NvbnN0cnVjdG9yOworLSAgb2JqZWN0X2NsYXNzLT5kaXNwb3NlID0gcGhvdG9zX3RyYWNrZXJf Y2hhbmdlX21vbml0b3JfZGlzcG9zZTsKKy0gIG9iamVjdF9jbGFzcy0+ZmluYWxpemUgPSBwaG90 b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9maW5hbGl6ZTsKKy0KKy0gIHNpZ25hbHNbQ0hBTkdF U19QRU5ESU5HXSA9IGdfc2lnbmFsX25ldyAoImNoYW5nZXMtcGVuZGluZyIsCistICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTIChjbGFz cyksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfU0lHTkFM X1JVTl9MQVNULAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAvKmFj Y3VtdWxhdG9yICovCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IE5VTEwsIC8qYWNjdV9kYXRhICovCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9WT0lEX19CT1hFRCwKKy0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19UWVBFX05PTkUsCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEdfVFlQRV9IQVNIX1RBQkxFKTsKKy19CistCistCistc3Rh dGljIGdib29sZWFuCistcGhvdG9zX3RyYWNrZXJfY2hhbmdlX21vbml0b3JfaW5pdGFibGVfaW5p dCAoR0luaXRhYmxlICppbml0YWJsZSwgR0NhbmNlbGxhYmxlICpjYW5jZWxsYWJsZSwgR0Vycm9y ICoqZXJyb3IpCisteworLSAgUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3IgKnNlbGYgPSBQSE9U T1NfVFJBQ0tFUl9DSEFOR0VfTU9OSVRPUiAoaW5pdGFibGUpOworLSAgZ2Jvb2xlYW4gcmV0X3Zh bCA9IFRSVUU7CistCistICBpZiAoR19MSUtFTFkgKHNlbGYtPnF1ZXVlICE9IE5VTEwgJiYgc2Vs Zi0+cmVzb3VyY2Vfc2VydmljZSAhPSBOVUxMKSkKKy0gICAgZ290byBvdXQ7CistCistICBzZWxm LT5xdWV1ZSA9IHBob3Rvc190cmFja2VyX3F1ZXVlX2R1cF9zaW5nbGV0b24gKGNhbmNlbGxhYmxl LCBlcnJvcik7CistICBpZiAoR19VTkxJS0VMWSAoc2VsZi0+cXVldWUgPT0gTlVMTCkpCistICAg IHsKKy0gICAgICByZXRfdmFsID0gRkFMU0U7CistICAgICAgZ290byBvdXQ7CistICAgIH0KKy0K Ky0gIHNlbGYtPnJlc291cmNlX3NlcnZpY2UgPSB0cmFja2VyX3Jlc291cmNlc19wcm94eV9uZXdf Zm9yX2J1c19zeW5jIChHX0JVU19UWVBFX1NFU1NJT04sCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19EQlVTX1BS T1hZX0ZMQUdTX05PTkUsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9yZy5mcmVlZGVza3RvcC5UcmFja2VyMSIs CistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIi9vcmcvZnJlZWRlc2t0b3AvVHJhY2tlcjEvUmVzb3VyY2VzIiwKKy0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjYW5jZWxsYWJsZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcik7CistICBpZiAoR19V TkxJS0VMWSAoc2VsZi0+cmVzb3VyY2Vfc2VydmljZSA9PSBOVUxMKSkKKy0gICAgeworLSAgICAg IHJldF92YWwgPSBGQUxTRTsKKy0gICAgICBnb3RvIG91dDsKKy0gICAgfQorLQorLSAgZ19zaWdu YWxfY29ubmVjdCAoc2VsZi0+cmVzb3VyY2Vfc2VydmljZSwKKy0gICAgICAgICAgICAgICAgICAg ICJncmFwaC11cGRhdGVkIiwKKy0gICAgICAgICAgICAgICAgICAgIEdfQ0FMTEJBQ0sgKHBob3Rv c190cmFja2VyX2NoYW5nZV9tb25pdG9yX2dyYXBoX3VwZGF0ZWQpLAorLSAgICAgICAgICAgICAg ICAgICAgc2VsZik7CistCistIG91dDoKKy0gIHJldHVybiByZXRfdmFsOworLX0KKy0KKy0KKy1z dGF0aWMgdm9pZAorLXBob3Rvc190cmFja2VyX2NoYW5nZV9tb25pdG9yX2luaXRhYmxlX2lmYWNl X2luaXQgKEdJbml0YWJsZUlmYWNlICppZmFjZSkKKy17CistICBpZmFjZS0+aW5pdCA9IHBob3Rv c190cmFja2VyX2NoYW5nZV9tb25pdG9yX2luaXRhYmxlX2luaXQ7CistfQorLQorLQorLVBob3Rv c1RyYWNrZXJDaGFuZ2VNb25pdG9yICoKKy1waG90b3NfdHJhY2tlcl9jaGFuZ2VfbW9uaXRvcl9k dXBfc2luZ2xldG9uIChHQ2FuY2VsbGFibGUgKmNhbmNlbGxhYmxlLCBHRXJyb3IgKiplcnJvcikK Ky17CistICByZXR1cm4gZ19pbml0YWJsZV9uZXcgKFBIT1RPU19UWVBFX1RSQUNLRVJfQ0hBTkdF X01PTklUT1IsIGNhbmNlbGxhYmxlLCBlcnJvciwgTlVMTCk7CistfQorZGlmZiAtLWdpdCBhL3Ny Yy9waG90b3MtdHJhY2tlci1jaGFuZ2UtbW9uaXRvci5oIGIvc3JjL3Bob3Rvcy10cmFja2VyLWNo YW5nZS1tb25pdG9yLmgKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggOTc0MGIwNDYu LjAwMDAwMDAwCistLS0gYS9zcmMvcGhvdG9zLXRyYWNrZXItY2hhbmdlLW1vbml0b3IuaAorKysr IC9kZXYvbnVsbAorQEAgLTEsNDIgKzAsMCBAQAorLS8qCistICogUGhvdG9zIC0gYWNjZXNzLCBv cmdhbml6ZSBhbmQgc2hhcmUgeW91ciBwaG90b3Mgb24gR05PTUUKKy0gKiBDb3B5cmlnaHQgwqkg MjAxMiDigJMgMjAxOSBSZWQgSGF0LCBJbmMuCistICoKKy0gKiBUaGlzIHByb2dyYW0gaXMgZnJl ZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorLSAqIGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5CistICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNp b24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKy0gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2 ZXJzaW9uLgorLSAqCistICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCistICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3 aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKy0gKiBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCistICogR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKy0gKgorLSAqIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl CistICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uCistICovCistCistLyogQmFzZWQgb24gY29kZSBmcm9tOgorLSAq ICAgKyBEb2N1bWVudHMKKy0gKi8KKy0KKy0jaWZuZGVmIFBIT1RPU19UUkFDS0VSX0NIQU5HRV9N T05JVE9SX0gKKy0jZGVmaW5lIFBIT1RPU19UUkFDS0VSX0NIQU5HRV9NT05JVE9SX0gKKy0KKy0j aW5jbHVkZSA8Z2lvL2dpby5oPgorLQorLUdfQkVHSU5fREVDTFMKKy0KKy0jZGVmaW5lIFBIT1RP U19UWVBFX1RSQUNLRVJfQ0hBTkdFX01PTklUT1IgKHBob3Rvc190cmFja2VyX2NoYW5nZV9tb25p dG9yX2dldF90eXBlICgpKQorLUdfREVDTEFSRV9GSU5BTF9UWVBFIChQaG90b3NUcmFja2VyQ2hh bmdlTW9uaXRvciwKKy0gICAgICAgICAgICAgICAgICAgICAgcGhvdG9zX3RyYWNrZXJfY2hhbmdl X21vbml0b3IsCistICAgICAgICAgICAgICAgICAgICAgIFBIT1RPUywKKy0gICAgICAgICAgICAg ICAgICAgICAgVFJBQ0tFUl9DSEFOR0VfTU9OSVRPUiwKKy0gICAgICAgICAgICAgICAgICAgICAg R09iamVjdCk7CistCistUGhvdG9zVHJhY2tlckNoYW5nZU1vbml0b3IgICpwaG90b3NfdHJhY2tl cl9jaGFuZ2VfbW9uaXRvcl9kdXBfc2luZ2xldG9uICAgIChHQ2FuY2VsbGFibGUgKmNhbmNlbGxh YmxlLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Vycm9yICoqZXJyb3IpOworLQorLUdfRU5EX0RF Q0xTCistCistI2VuZGlmIC8qIFBIT1RPU19UUkFDS0VSX0NIQU5HRV9NT05JVE9SX0ggKi8KK2Rp ZmYgLS1naXQgYS9zcmMvcGhvdG9zLXRyYWNrZXItY29udHJvbGxlci5jIGIvc3JjL3Bob3Rvcy10 cmFja2VyLWNvbnRyb2xsZXIuYworaW5kZXggM2E2MmNmMmQuLmYwYjgxZTAyIDEwMDY0NAorLS0t IGEvc3JjL3Bob3Rvcy10cmFja2VyLWNvbnRyb2xsZXIuYworKysrIGIvc3JjL3Bob3Rvcy10cmFj a2VyLWNvbnRyb2xsZXIuYworQEAgLTI5Miw2ICsyOTIsMTIgQEAgcGhvdG9zX3RyYWNrZXJfY29u dHJvbGxlcl9wZXJmb3JtX2N1cnJlbnRfcXVlcnkgKFBob3Rvc1RyYWNrZXJDb250cm9sbGVyICpz ZWxmKQorIAorICAgcHJpdiA9IHBob3Rvc190cmFja2VyX2NvbnRyb2xsZXJfZ2V0X2luc3RhbmNl X3ByaXZhdGUgKHNlbGYpOworIAorKyAgaWYgKEdfVU5MSUtFTFkgKHByaXYtPnF1ZXVlID09IE5V TEwpKQorKyAgICB7CisrICAgICAgcGhvdG9zX3RyYWNrZXJfY29udHJvbGxlcl9xdWVyeV9lcnJv ciAoc2VsZiwgcHJpdi0+cXVldWVfZXJyb3IpOworKyAgICAgIGdvdG8gb3V0OworKyAgICB9Cisr CisgICBnX2NsZWFyX29iamVjdCAoJnByaXYtPmN1cnJlbnRfcXVlcnkpOworICAgcHJpdi0+Y3Vy cmVudF9xdWVyeSA9IFBIT1RPU19UUkFDS0VSX0NPTlRST0xMRVJfR0VUX0NMQVNTIChzZWxmKS0+ Z2V0X3F1ZXJ5IChzZWxmKTsKKyAgIGdfcmV0dXJuX2lmX2ZhaWwgKHByaXYtPmN1cnJlbnRfcXVl cnkgIT0gTlVMTCk7CitAQCAtMzAzLDEyICszMDksNiBAQCBwaG90b3NfdHJhY2tlcl9jb250cm9s bGVyX3BlcmZvcm1fY3VycmVudF9xdWVyeSAoUGhvdG9zVHJhY2tlckNvbnRyb2xsZXIgKnNlbGYp CisgICBnX29iamVjdF91bnJlZiAocHJpdi0+Y2FuY2VsbGFibGUpOworICAgcHJpdi0+Y2FuY2Vs bGFibGUgPSBnX2NhbmNlbGxhYmxlX25ldyAoKTsKKyAKKy0gIGlmIChHX1VOTElLRUxZIChwcml2 LT5xdWV1ZSA9PSBOVUxMKSkKKy0gICAgeworLSAgICAgIHBob3Rvc190cmFja2VyX2NvbnRyb2xs ZXJfcXVlcnlfZXJyb3IgKHNlbGYsIHByaXYtPnF1ZXVlX2Vycm9yKTsKKy0gICAgICBnb3RvIG91 dDsKKy0gICAgfQorLQorICAgcGhvdG9zX3RyYWNrZXJfcXVldWVfc2VsZWN0IChwcml2LT5xdWV1 ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpdi0+Y3VycmVudF9xdWVyeSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpdi0+Y2FuY2VsbGFibGUsCitkaWZm IC0tZ2l0IGEvc3JjL3Bob3Rvcy10cmFja2VyLWV4dHJhY3QtcHJpb3JpdHkueG1sIGIvc3JjL3Bo b3Rvcy10cmFja2VyLWV4dHJhY3QtcHJpb3JpdHkueG1sCitpbmRleCA3ZTNiOWIwYy4uMmI1NjIy OTkgMTAwNjQ0CistLS0gYS9zcmMvcGhvdG9zLXRyYWNrZXItZXh0cmFjdC1wcmlvcml0eS54bWwK KysrKyBiL3NyYy9waG90b3MtdHJhY2tlci1leHRyYWN0LXByaW9yaXR5LnhtbAorQEAgLTIxLDcg KzIxLDcgQEAKKyAtLT4KKyAKKyA8bm9kZSBuYW1lPSIvIiB4bWxuczpkb2M9Imh0dHA6Ly93d3cu ZnJlZWRlc2t0b3Aub3JnL2RidXMvMS4wL2RvYy5kdGQiPgorLSAgPGludGVyZmFjZSBuYW1lPSJv cmcuZnJlZWRlc2t0b3AuVHJhY2tlcjEuRXh0cmFjdC5Qcmlvcml0eSI+CisrICA8aW50ZXJmYWNl IG5hbWU9Im9yZy5mcmVlZGVza3RvcC5UcmFja2VyMy5FeHRyYWN0LlByaW9yaXR5Ij4KKyAgICAg PG1ldGhvZCBuYW1lPSJDbGVhclJkZlR5cGVzIiAvPgorICAgICA8bWV0aG9kIG5hbWU9IlNldFJk ZlR5cGVzIj4KKyAgICAgICA8YXJnIG5hbWU9InJkZl90eXBlcyIgdHlwZT0iYXMiIGRpcmVjdGlv bj0iaW4iIC8+CitkaWZmIC0tZ2l0IGEvc3JjL3Bob3Rvcy10cmFja2VyLWltcG9ydC1jb250cm9s bGVyLmMgYi9zcmMvcGhvdG9zLXRyYWNrZXItaW1wb3J0LWNvbnRyb2xsZXIuYworaW5kZXggMDg1 YWNlM2EuLmQ3ZWQ5YjIwIDEwMDY0NAorLS0tIGEvc3JjL3Bob3Rvcy10cmFja2VyLWltcG9ydC1j b250cm9sbGVyLmMKKysrKyBiL3NyYy9waG90b3MtdHJhY2tlci1pbXBvcnQtY29udHJvbGxlci5j CitAQCAtMjQsNyArMjQsNiBAQAorICNpbmNsdWRlICJjb25maWcuaCIKKyAKKyAjaW5jbHVkZSA8 Z2lvL2dpby5oPgorLSNpbmNsdWRlIDxsaWJ0cmFja2VyLWNvbnRyb2wvdHJhY2tlci1jb250cm9s Lmg+CisgCisgI2luY2x1ZGUgInBob3Rvcy1iYXNlLW1hbmFnZXIuaCIKKyAjaW5jbHVkZSAicGhv dG9zLWRlYnVnLmgiCitAQCAtMzQsNiArMzMsOCBAQAorICNpbmNsdWRlICJwaG90b3MtcXVlcnkt YnVpbGRlci5oIgorICNpbmNsdWRlICJwaG90b3Mtc2VhcmNoLWNvbnRleHQuaCIKKyAjaW5jbHVk ZSAicGhvdG9zLXRyYWNrZXItaW1wb3J0LWNvbnRyb2xsZXIuaCIKKysjaW5jbHVkZSAicGhvdG9z LXRyYWNrZXItbWluZXItaW5kZXguaCIKKysjaW5jbHVkZSAicGhvdG9zLXRyYWNrZXItcXVldWUu aCIKKyAjaW5jbHVkZSAicGhvdG9zLXV0aWxzLmgiCisgCisgCitAQCAtNDUsNyArNDYsNyBAQCBz dHJ1Y3QgX1Bob3Rvc1RyYWNrZXJJbXBvcnRDb250cm9sbGVyCisgICBQaG90b3NCYXNlTWFuYWdl ciAqaXRlbV9tbmdyOworICAgUGhvdG9zQmFzZU1hbmFnZXIgKnNyY19tbmdyOworICAgUGhvdG9z T2Zmc2V0Q29udHJvbGxlciAqb2Zmc2V0X2NudHJscjsKKy0gIFRyYWNrZXJNaW5lck1hbmFnZXIg Km1hbmFnZXI7CisrICBUcmFja2VyTWluZXJGaWxlc0luZGV4ICptaW5lcl9jb250cm9sX3Byb3h5 OworIH07CisgCisgCitAQCAtNzYsMTIgKzc3LDEyIEBAIHN0YXRpYyB2b2lkCisgcGhvdG9zX3Ry YWNrZXJfaW1wb3J0X2NvbnRyb2xsZXJfaW5kZXggKEdPYmplY3QgKnNvdXJjZV9vYmplY3QsIEdB c3luY1Jlc3VsdCAqcmVzLCBncG9pbnRlciB1c2VyX2RhdGEpCisgeworICAgZ19hdXRvcHRyIChH RmlsZSkgZmlsZSA9IEdfRklMRSAodXNlcl9kYXRhKTsKKy0gIFRyYWNrZXJNaW5lck1hbmFnZXIg Km1hbmFnZXIgPSBUUkFDS0VSX01JTkVSX01BTkFHRVIgKHNvdXJjZV9vYmplY3QpOworKyAgVHJh Y2tlck1pbmVyRmlsZXNJbmRleCAqbWluZXJfY29udHJvbF9wcm94eSA9IFRSQUNLRVJfTUlORVJf RklMRVNfSU5ERVggKHNvdXJjZV9vYmplY3QpOworIAorICAgeworICAgICBnX2F1dG9wdHIgKEdF cnJvcikgZXJyb3IgPSBOVUxMOworIAorLSAgICBpZiAoIXRyYWNrZXJfbWluZXJfbWFuYWdlcl9p bmRleF9maWxlX2Zvcl9wcm9jZXNzX2ZpbmlzaCAobWFuYWdlciwgcmVzLCAmZXJyb3IpKQorKyAg ICBpZiAoIXRyYWNrZXJfbWluZXJfZmlsZXNfaW5kZXhfY2FsbF9pbmRleF9sb2NhdGlvbl9maW5p c2ggKG1pbmVyX2NvbnRyb2xfcHJveHksIHJlcywgJmVycm9yKSkKKyAgICAgICB7CisgICAgICAg ICBpZiAoIWdfZXJyb3JfbWF0Y2hlcyAoZXJyb3IsIEdfSU9fRVJST1IsIEdfSU9fRVJST1JfQ0FO Q0VMTEVEKSkKKyAgICAgICAgICAgeworQEAgLTEwMiw2ICsxMDMsOCBAQCBwaG90b3NfdHJhY2tl cl9pbXBvcnRfY29udHJvbGxlcl9uZXh0X2ZpbGVzIChHT2JqZWN0ICpzb3VyY2Vfb2JqZWN0LCBH QXN5bmNSZXN1bAorICAgR0ZpbGVFbnVtZXJhdG9yICplbnVtZXJhdG9yID0gR19GSUxFX0VOVU1F UkFUT1IgKHNvdXJjZV9vYmplY3QpOworICAgR0xpc3QgKmluZm9zID0gTlVMTDsKKyAgIEdMaXN0 ICpsOworKyAgY29uc3QgZ2NoYXIgKnRyYWNrZXJfcHJpb3JpdHlfZ3JhcGhzW10gPSB7IFRSQUNL RVJfUElDVFVSRVNfR1JBUEggfTsKKysgIGNvbnN0IGdjaGFyICp0cmFja2VyX2luZGV4X2xvY2F0 aW9uX2ZsYWdzW10gPSB7ICJmb3ItcHJvY2VzcyIgfTsKKyAKKyAgIHsKKyAgICAgZ19hdXRvcHRy IChHRXJyb3IpIGVycm9yID0gTlVMTDsKK0BAIC0xODcsMTEgKzE5MCwxMyBAQCBwaG90b3NfdHJh Y2tlcl9pbXBvcnRfY29udHJvbGxlcl9uZXh0X2ZpbGVzIChHT2JqZWN0ICpzb3VyY2Vfb2JqZWN0 LCBHQXN5bmNSZXN1bAorICAgICAgICAgICAgICAgICAgICAgaWYgKGdfY29udGVudF90eXBlX2Vx dWFscyAobWltZV90eXBlLCBJTVBPUlRBQkxFX01JTUVfVFlQRVNbaV0pCisgICAgICAgICAgICAg ICAgICAgICAgICAgfHwgZ19jb250ZW50X3R5cGVfaXNfYSAobWltZV90eXBlLCBJTVBPUlRBQkxF X01JTUVfVFlQRVNbaV0pKQorICAgICAgICAgICAgICAgICAgICAgICB7CistICAgICAgICAgICAg ICAgICAgICAgICAgdHJhY2tlcl9taW5lcl9tYW5hZ2VyX2luZGV4X2ZpbGVfZm9yX3Byb2Nlc3Nf YXN5bmMgKHNlbGYtPm1hbmFnZXIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGUsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYtPmNhbmNlbGxhYmxlLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaG90 b3NfdHJhY2tlcl9pbXBvcnRfY29udHJvbGxlcl9pbmRleCwKKy0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Z19vYmplY3RfcmVmIChmaWxlKSk7CisrICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2tlcl9t aW5lcl9maWxlc19pbmRleF9jYWxsX2luZGV4X2xvY2F0aW9uIChzZWxmLT5taW5lcl9jb250cm9s X3Byb3h5LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdXJpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2tlcl9wcmlv cml0eV9ncmFwaHMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFja2VyX2luZGV4X2xvY2F0aW9uX2ZsYWdz LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi0+Y2FuY2VsbGFibGUsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaG90 b3NfdHJhY2tlcl9pbXBvcnRfY29udHJvbGxlcl9pbmRleCwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfb2Jq ZWN0X3JlZiAoZmlsZSkpOworICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4aW5nID0gVFJV RTsKKyAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgIH0KK0BAIC0y OTEsMjggKzI5Niw2IEBAIHBob3Rvc190cmFja2VyX2ltcG9ydF9jb250cm9sbGVyX3NvdXJjZV9h Y3RpdmVfY2hhbmdlZCAoUGhvdG9zVHJhY2tlckltcG9ydENvbnRyCisgICAgIHsKKyAgICAgICBn X3JldHVybl9pZl9mYWlsIChnX3F1ZXVlX2lzX2VtcHR5IChzZWxmLT5wZW5kaW5nX2RpcmVjdG9y aWVzKSk7CisgCistICAgICAgaWYgKEdfTElLRUxZIChzZWxmLT5tYW5hZ2VyICE9IE5VTEwpKQor LSAgICAgICAgeworLSAgICAgICAgICBnX2F1dG9wdHIgKEdGaWxlKSByb290ID0gTlVMTDsKKy0g ICAgICAgICAgZ19hdXRvZnJlZSBnY2hhciAqdXJpID0gTlVMTDsKKy0KKy0gICAgICAgICAgcm9v dCA9IGdfbW91bnRfZ2V0X3Jvb3QgKG1vdW50KTsKKy0gICAgICAgICAgZ19xdWV1ZV9wdXNoX3Rh aWwgKHNlbGYtPnBlbmRpbmdfZGlyZWN0b3JpZXMsIGdfb2JqZWN0X3JlZiAocm9vdCkpOworLQor LSAgICAgICAgICB1cmkgPSBnX2ZpbGVfZ2V0X3VyaSAocm9vdCk7CistICAgICAgICAgIHBob3Rv c19kZWJ1ZyAoUEhPVE9TX0RFQlVHX0lNUE9SVCwgIkVudW1lcmF0aW5nIGRldmljZSBkaXJlY3Rv cnkgJXMiLCB1cmkpOworLQorLSAgICAgICAgICBnX2ZpbGVfZW51bWVyYXRlX2NoaWxkcmVuX2Fz eW5jIChyb290LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH X0ZJTEVfQVRUUklCVVRFX1NUQU5EQVJEX0NPTlRFTlRfVFlQRSIsIgorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0ZJTEVfQVRUUklCVVRFX1NUQU5EQVJEX05B TUUiLCIKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19GSUxF X0FUVFJJQlVURV9TVEFOREFSRF9UWVBFLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBHX0ZJTEVfUVVFUllfSU5GT19OT0ZPTExPV19TWU1MSU5LUywKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19QUklPUklUWV9ERUZBVUxU LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLT5jYW5j ZWxsYWJsZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGhv dG9zX3RyYWNrZXJfaW1wb3J0X2NvbnRyb2xsZXJfZW51bWVyYXRlX2NoaWxkcmVuLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmKTsKKy0gICAgICAgIH0K Ky0KKyAgICAgICBwaG90b3NfdHJhY2tlcl9jb250cm9sbGVyX3JlZnJlc2hfZm9yX29iamVjdCAo UEhPVE9TX1RSQUNLRVJfQ09OVFJPTExFUiAoc2VsZikpOworICAgICB9CisgfQorQEAgLTM3OSw3 ICszNjIsNiBAQCBwaG90b3NfdHJhY2tlcl9pbXBvcnRfY29udHJvbGxlcl9kaXNwb3NlIChHT2Jq ZWN0ICpvYmplY3QpCisgCisgICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPnNyY19tbmdyKTsKKyAg IGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+b2Zmc2V0X2NudHJscik7CistICBnX2NsZWFyX29iamVj dCAoJnNlbGYtPm1hbmFnZXIpOworIAorICAgR19PQkpFQ1RfQ0xBU1MgKHBob3Rvc190cmFja2Vy X2ltcG9ydF9jb250cm9sbGVyX3BhcmVudF9jbGFzcyktPmRpc3Bvc2UgKG9iamVjdCk7CisgfQor QEAgLTM5Nyw2ICszNzksMzcgQEAgcGhvdG9zX3RyYWNrZXJfaW1wb3J0X2NvbnRyb2xsZXJfZmlu YWxpemUgKEdPYmplY3QgKm9iamVjdCkKKyB9CisgCisgCisrc3RhdGljIFRyYWNrZXJNaW5lckZp bGVzSW5kZXggKgorK3Bob3Rvc190cmFja2VyX2ltcG9ydF9jb250cm9sbGVyX2dldF9taW5lcl9m c19jb250cm9sX3Byb3h5IChHQ2FuY2VsbGFibGUgKmNhbmNlbGxhYmxlKQorK3sKKysgIGdfYXV0 b3B0ciAoUGhvdG9zVHJhY2tlclF1ZXVlKSB0cmFja2VyX3F1ZXVlID0gTlVMTDsKKysgIGNvbnN0 IGdjaGFyICptaW5lcl9mc19jb250cm9sX2J1c25hbWU7CisrICBnX2F1dG9wdHIgKEdFcnJvcikg ZXJyb3IgPSBOVUxMOworKyAgVHJhY2tlck1pbmVyRmlsZXNJbmRleCAqbWluZXJfY29udHJvbF9w cm94eTsKKysKKysgIHRyYWNrZXJfcXVldWUgPSBwaG90b3NfdHJhY2tlcl9xdWV1ZV9kdXBfc2lu Z2xldG9uIChjYW5jZWxsYWJsZSwgJmVycm9yKTsKKysKKysgIGlmICghdHJhY2tlcl9xdWV1ZSkg eworKyAgICBnX3dhcm5pbmcgKCJFcnJvciBnZXR0aW5nIFRyYWNrZXIgcXVldWU6ICVzLiBJbXBv cnQgd2lsbCBub3Qgd29yay4iLCBlcnJvci0+bWVzc2FnZSk7CisrICAgIHJldHVybiBOVUxMOwor KyAgfQorKworKyAgbWluZXJfZnNfY29udHJvbF9idXNuYW1lID0gcGhvdG9zX3RyYWNrZXJfcXVl dWVfZ2V0X21pbmVyX2ZzX2NvbnRyb2xfYnVzbmFtZSAodHJhY2tlcl9xdWV1ZSk7CisrICBtaW5l cl9jb250cm9sX3Byb3h5ID0gdHJhY2tlcl9taW5lcl9maWxlc19pbmRleF9wcm94eV9uZXdfZm9y X2J1c19zeW5jIChHX0JVU19UWVBFX1NFU1NJT04sCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0RCVVNf UFJPWFlfRkxBR1NfTk9ORSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbmVyX2ZzX2NvbnRyb2xfYnVz bmFtZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICIvb3JnL2ZyZWVkZXNrdG9wL1RyYWNrZXIzL01pbmVy L0ZpbGVzL0NvbnRyb2wiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICZlcnJvcik7CisrICBpZiAoIW1pbmVyX2NvbnRyb2xfcHJveHkpIHsKKysgICAgZ193YXJu aW5nICgiRXJyb3IgZ2V0dGluZyBUcmFja2VyIE1pbmVyIEZTIGNvbnRyb2wgcHJveHk6ICVzLiBJ bXBvcnQgd2lsbCBub3Qgd29yayIsIGVycm9yLT5tZXNzYWdlKTsKKysgICAgcmV0dXJuIE5VTEw7 CisrICB9CisrCisrICByZXR1cm4gbWluZXJfY29udHJvbF9wcm94eTsKKyt9CisrCisrCisgc3Rh dGljIHZvaWQKKyBwaG90b3NfdHJhY2tlcl9pbXBvcnRfY29udHJvbGxlcl9pbml0IChQaG90b3NU cmFja2VySW1wb3J0Q29udHJvbGxlciAqc2VsZikKKyB7CitAQCAtNDIxLDEzICs0MzQsNyBAQCBw aG90b3NfdHJhY2tlcl9pbXBvcnRfY29udHJvbGxlcl9pbml0IChQaG90b3NUcmFja2VySW1wb3J0 Q29udHJvbGxlciAqc2VsZikKKyAKKyAgIHNlbGYtPm9mZnNldF9jbnRybHIgPSBwaG90b3Nfb2Zm c2V0X2ltcG9ydF9jb250cm9sbGVyX2R1cF9zaW5nbGV0b24gKCk7CisgCistICB7CistICAgIGdf YXV0b3B0ciAoR0Vycm9yKSBlcnJvciA9IE5VTEw7CistCistICAgIHNlbGYtPm1hbmFnZXIgPSB0 cmFja2VyX21pbmVyX21hbmFnZXJfbmV3X2Z1bGwgKEZBTFNFLCAmZXJyb3IpOworLSAgICBpZiAo ZXJyb3IgIT0gTlVMTCkKKy0gICAgICBnX3dhcm5pbmcgKCJVbmFibGUgdG8gY3JlYXRlIGEgVHJh Y2tlck1pbmVyTWFuYWdlciwgaW5kZXhpbmcgYXR0YWNoZWQgZGV2aWNlcyB3b24ndCB3b3JrOiAl cyIsIGVycm9yLT5tZXNzYWdlKTsKKy0gIH0KKysgIHNlbGYtPm1pbmVyX2NvbnRyb2xfcHJveHkg PSBwaG90b3NfdHJhY2tlcl9pbXBvcnRfY29udHJvbGxlcl9nZXRfbWluZXJfZnNfY29udHJvbF9w cm94eSAoTlVMTCk7CisgfQorIAorIAorZGlmZiAtLWdpdCBhL3NyYy9waG90b3MtdHJhY2tlci1x dWV1ZS5jIGIvc3JjL3Bob3Rvcy10cmFja2VyLXF1ZXVlLmMKK2luZGV4IDZhYzgyOWNkLi5hNWY0 YzkxYSAxMDA2NDQKKy0tLSBhL3NyYy9waG90b3MtdHJhY2tlci1xdWV1ZS5jCisrKysgYi9zcmMv cGhvdG9zLXRyYWNrZXItcXVldWUuYworQEAgLTM3LDkgKzM3LDIwIEBAIHN0cnVjdCBfUGhvdG9z VHJhY2tlclF1ZXVlCisgICBHT2JqZWN0IHBhcmVudF9pbnN0YW5jZTsKKyAgIEdFcnJvciAqaW5p dGlhbGl6YXRpb25fZXJyb3I7CisgICBHUXVldWUgKnF1ZXVlOworLSAgVHJhY2tlclNwYXJxbENv bm5lY3Rpb24gKmNvbm5lY3Rpb247CisrICBUcmFja2VyU3BhcnFsQ29ubmVjdGlvbiAqbG9jYWxf Y29ubmVjdGlvbjsKKysgIFRyYWNrZXJTcGFycWxDb25uZWN0aW9uICptaW5lcl9mc19jb25uZWN0 aW9uOworICAgZ2Jvb2xlYW4gaXNfaW5pdGlhbGl6ZWQ7CisgICBnYm9vbGVhbiBydW5uaW5nOwor KyAgZ2Jvb2xlYW4gbWluZXJfZnNfcmVhZHk7CisrICBjb25zdCBnY2hhciAqbWluZXJfZnNfYnVz bmFtZTsKKysgIGNvbnN0IGdjaGFyICptaW5lcl9mc19jb250cm9sX2J1c25hbWU7CisrfTsKKysK KytlbnVtCisreworKyAgUFJPUF8wLAorKyAgUFJPUF9NSU5FUl9GU19SRUFEWSwKKysgIFBST1Bf TUlORVJfRlNfQlVTTkFNRQorIH07CisgCisgc3RhdGljIHZvaWQgcGhvdG9zX3RyYWNrZXJfcXVl dWVfaW5pdGFibGVfaWZhY2VfaW5pdCAoR0luaXRhYmxlSWZhY2UgKmlmYWNlKTsKK0BAIC05MCw3 ICsxMDEsNiBAQCBwaG90b3NfdHJhY2tlcl9xdWV1ZV9kYXRhX2ZyZWUgKFBob3Rvc1RyYWNrZXJR dWV1ZURhdGEgKmRhdGEpCisgCisgR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFBob3Rv c1RyYWNrZXJRdWV1ZURhdGEsIHBob3Rvc190cmFja2VyX3F1ZXVlX2RhdGFfZnJlZSk7CisgCist Cisgc3RhdGljIFBob3Rvc1RyYWNrZXJRdWV1ZURhdGEgKgorIHBob3Rvc190cmFja2VyX3F1ZXVl X2RhdGFfbmV3IChQaG90b3NRdWVyeSAqcXVlcnksCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFBob3Rvc1RyYWNrZXJRdWVyeVR5cGUgcXVlcnlfdHlwZSwKK0BAIC0xNzksNyArMTg5 LDcgQEAgcGhvdG9zX3RyYWNrZXJfcXVldWVfY2hlY2sgKFBob3Rvc1RyYWNrZXJRdWV1ZSAqc2Vs ZikKKyAgIHN3aXRjaCAoZGF0YS0+cXVlcnlfdHlwZSkKKyAgICAgeworICAgICBjYXNlIFBIT1RP U19UUkFDS0VSX1FVRVJZX1NFTEVDVDoKKy0gICAgICB0cmFja2VyX3NwYXJxbF9jb25uZWN0aW9u X3F1ZXJ5X2FzeW5jIChzZWxmLT5jb25uZWN0aW9uLAorKyAgICAgIHRyYWNrZXJfc3BhcnFsX2Nv bm5lY3Rpb25fcXVlcnlfYXN5bmMgKHNlbGYtPmxvY2FsX2Nvbm5lY3Rpb24sCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BhcnFsLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtPmNhbmNlbGxhYmxlLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBob3Rvc190cmFja2Vy X3F1ZXVlX2NvbGxlY3RvciwKK0BAIC0xODcsMTggKzE5NywxNiBAQCBwaG90b3NfdHJhY2tlcl9x dWV1ZV9jaGVjayAoUGhvdG9zVHJhY2tlclF1ZXVlICpzZWxmKQorICAgICAgIGJyZWFrOworIAor ICAgICBjYXNlIFBIT1RPU19UUkFDS0VSX1FVRVJZX1VQREFURToKKy0gICAgICB0cmFja2VyX3Nw YXJxbF9jb25uZWN0aW9uX3VwZGF0ZV9hc3luYyAoc2VsZi0+Y29ubmVjdGlvbiwKKysgICAgICB0 cmFja2VyX3NwYXJxbF9jb25uZWN0aW9uX3VwZGF0ZV9hc3luYyAoc2VsZi0+bG9jYWxfY29ubmVj dGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Bh cnFsLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX1BS SU9SSVRZX0RFRkFVTFQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRhdGEtPmNhbmNlbGxhYmxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBwaG90b3NfdHJhY2tlcl9xdWV1ZV9jb2xsZWN0b3IsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfb2JqZWN0X3JlZiAoc2Vs ZikpOworICAgICAgIGJyZWFrOworIAorICAgICBjYXNlIFBIT1RPU19UUkFDS0VSX1FVRVJZX1VQ REFURV9CTEFOSzoKKy0gICAgICB0cmFja2VyX3NwYXJxbF9jb25uZWN0aW9uX3VwZGF0ZV9ibGFu a19hc3luYyAoc2VsZi0+Y29ubmVjdGlvbiwKKysgICAgICB0cmFja2VyX3NwYXJxbF9jb25uZWN0 aW9uX3VwZGF0ZV9ibGFua19hc3luYyAoc2VsZi0+bG9jYWxfY29ubmVjdGlvbiwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BhcnFsLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX1BSSU9S SVRZX0RFRkFVTFQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRhdGEtPmNhbmNlbGxhYmxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwaG90b3NfdHJhY2tlcl9xdWV1ZV9jb2xsZWN0b3Is CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdf b2JqZWN0X3JlZiAoc2VsZikpOworQEAgLTIxMSw2ICsyMTksNTMgQEAgcGhvdG9zX3RyYWNrZXJf cXVldWVfY2hlY2sgKFBob3Rvc1RyYWNrZXJRdWV1ZSAqc2VsZikKKyB9CisgCisgCisrc3RhdGlj IGdib29sZWFuCisrcGhvdG9zX3RyYWNrZXJfcXVldWVfc3RhcnRfc2Vzc2lvbl9taW5lcl9mcyAo UGhvdG9zVHJhY2tlclF1ZXVlICpzZWxmLCBHRXJyb3IgKiplcnJvcikKKyt7CisrICBjb25zdCBn Y2hhciAqYnVzbmFtZSA9ICJvcmcuZnJlZWRlc2t0b3AuVHJhY2tlcjMuTWluZXIuRmlsZXMiOwor KyAgY29uc3QgZ2NoYXIgKmNvbnRyb2xfYnVzbmFtZSA9ICJvcmcuZnJlZWRlc2t0b3AuVHJhY2tl cjMuTWluZXIuRmlsZXMuQ29udHJvbCI7CisrCisrICBwaG90b3NfZGVidWcgKFBIT1RPU19ERUJV R19UUkFDS0VSLCAiQ29ubmVjdGluZyB0byAlcyIsIGJ1c25hbWUpOworKyAgc2VsZi0+bWluZXJf ZnNfY29ubmVjdGlvbiA9IHRyYWNrZXJfc3BhcnFsX2Nvbm5lY3Rpb25fYnVzX25ldyAoYnVzbmFt ZSwgTlVMTCwgTlVMTCwgZXJyb3IpOworKyAgaWYgKCplcnJvcikKKysgICAgeworKyAgICAgIGdf d2FybmluZyAoIlVuYWJsZSB0byBjcmVhdGUgY29ubmVjdGlvbiBmb3Igc2Vzc2lvbi13aWRlIFRy YWNrZXIgaW5kZXhlciBhdCAlczogJXMiLCBidXNuYW1lLCAoKmVycm9yKS0+bWVzc2FnZSk7Cisr ICAgICAgcmV0dXJuIEZBTFNFOworKyAgICB9CisrCisrICBzZWxmLT5taW5lcl9mc19idXNuYW1l ID0gYnVzbmFtZTsKKysgIHNlbGYtPm1pbmVyX2ZzX2NvbnRyb2xfYnVzbmFtZSA9IGNvbnRyb2xf YnVzbmFtZTsKKysKKysgIHJldHVybiBUUlVFOworK30KKysKKysKKytzdGF0aWMgZ2Jvb2xlYW4K KytwaG90b3NfdHJhY2tlcl9xdWV1ZV9zdGFydF9sb2NhbF9taW5lcl9mcyAoUGhvdG9zVHJhY2tl clF1ZXVlICpzZWxmLCBHRXJyb3IgKiplcnJvcikKKyt7CisrICBjb25zdCBnY2hhciAqYnVzbmFt ZSA9ICJvcmcuZ25vbWUuUGhvdG9zLlRyYWNrZXIzLk1pbmVyLkZpbGVzIjsKKysgIGNvbnN0IGdj aGFyICpjb250cm9sX2J1c25hbWUgPSAib3JnLmdub21lLlBob3Rvcy5UcmFja2VyMy5NaW5lci5G aWxlcy5Db250cm9sIjsKKysKKysgIHBob3Rvc19kZWJ1ZyAoUEhPVE9TX0RFQlVHX1RSQUNLRVIs ICJDb25uZWN0aW5nIHRvICVzIiwgYnVzbmFtZSk7CisrICBzZWxmLT5taW5lcl9mc19jb25uZWN0 aW9uID0gdHJhY2tlcl9zcGFycWxfY29ubmVjdGlvbl9idXNfbmV3IChidXNuYW1lLCBOVUxMLCBO VUxMLCBlcnJvcik7CisrICBpZiAoKmVycm9yKQorKyAgICB7CisrICAgICAgZ19jcml0aWNhbCAo IkNvdWxkIG5vdCBzdGFydCBsb2NhbCBUcmFja2VyIGluZGV4ZXIgYXQgJXM6ICVzIiwgYnVzbmFt ZSwgKCplcnJvciktPm1lc3NhZ2UpOworKyAgICAgIHJldHVybiBGQUxTRTsKKysgICAgfQorKwor KyAgc2VsZi0+bWluZXJfZnNfYnVzbmFtZSA9IGJ1c25hbWU7CisrICBzZWxmLT5taW5lcl9mc19j b250cm9sX2J1c25hbWUgPSBjb250cm9sX2J1c25hbWU7CisrCisrICByZXR1cm4gVFJVRTsKKyt9 CisrCisrc3RhdGljIGdib29sZWFuCisraW5zaWRlX2ZsYXRwYWsgKHZvaWQpCisreworKyAgICBy ZXR1cm4gZ19maWxlX3Rlc3QgKCIvLmZsYXRwYWstaW5mbyIsIEdfRklMRV9URVNUX0VYSVNUUyk7 CisrfQorKworIHN0YXRpYyBHT2JqZWN0ICoKKyBwaG90b3NfdHJhY2tlcl9xdWV1ZV9jb25zdHJ1 Y3RvciAoR1R5cGUgdHlwZSwgZ3VpbnQgbl9jb25zdHJ1Y3RfcGFyYW1zLCBHT2JqZWN0Q29uc3Ry dWN0UGFyYW0gKmNvbnN0cnVjdF9wYXJhbXMpCisgeworQEAgLTIzNCw3ICsyODksOCBAQCBwaG90 b3NfdHJhY2tlcl9xdWV1ZV9kaXNwb3NlIChHT2JqZWN0ICpvYmplY3QpCisgeworICAgUGhvdG9z VHJhY2tlclF1ZXVlICpzZWxmID0gUEhPVE9TX1RSQUNLRVJfUVVFVUUgKG9iamVjdCk7CisgCist ICBnX2NsZWFyX29iamVjdCAoJnNlbGYtPmNvbm5lY3Rpb24pOworKyAgZ19jbGVhcl9vYmplY3Qg KCZzZWxmLT5sb2NhbF9jb25uZWN0aW9uKTsKKysgIGdfY2xlYXJfb2JqZWN0ICgmc2VsZi0+bWlu ZXJfZnNfY29ubmVjdGlvbik7CisgCisgICBHX09CSkVDVF9DTEFTUyAocGhvdG9zX3RyYWNrZXJf cXVldWVfcGFyZW50X2NsYXNzKS0+ZGlzcG9zZSAob2JqZWN0KTsKKyB9CitAQCAtMjU4LDYgKzMx NCwzOCBAQCBwaG90b3NfdHJhY2tlcl9xdWV1ZV9pbml0IChQaG90b3NUcmFja2VyUXVldWUgKnNl bGYpCisgICBzZWxmLT5xdWV1ZSA9IGdfcXVldWVfbmV3ICgpOworIH0KKyAKKytzdGF0aWMgdm9p ZAorK3Bob3Rvc190cmFja2VyX3F1ZXVlX2dldF9wcm9wZXJ0eSAoR09iamVjdCAqb2JqZWN0LCBn dWludCBwcm9wX2lkLCBHVmFsdWUgKnZhbHVlLCBHUGFyYW1TcGVjICpwc3BlYykKKyt7CisrICBQ aG90b3NUcmFja2VyUXVldWUgKnNlbGYgPSBQSE9UT1NfVFJBQ0tFUl9RVUVVRSAob2JqZWN0KTsK KysKKysgIHN3aXRjaCAocHJvcF9pZCkKKysgICAgeworKyAgICBjYXNlIFBST1BfTUlORVJfRlNf UkVBRFk6CisrICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbiAodmFsdWUsIHNlbGYtPm1pbmVyX2Zz X3JlYWR5KTsKKysgICAgICBicmVhazsKKysKKysgICAgY2FzZSBQUk9QX01JTkVSX0ZTX0JVU05B TUU6CisrICAgICAgZ192YWx1ZV9zZXRfc3RyaW5nICh2YWx1ZSwgc2VsZi0+bWluZXJfZnNfYnVz bmFtZSk7CisrICAgICAgYnJlYWs7CisrCisrICAgIGRlZmF1bHQ6CisrICAgICAgR19PQkpFQ1Rf V0FSTl9JTlZBTElEX1BST1BFUlRZX0lEIChvYmplY3QsIHByb3BfaWQsIHBzcGVjKTsKKysgICAg ICBicmVhazsKKysgICAgfQorK30KKysKKytzdGF0aWMgdm9pZAorK3Bob3Rvc190cmFja2VyX3F1 ZXVlX3NldF9wcm9wZXJ0eSAoR09iamVjdCAqb2JqZWN0LCBndWludCBwcm9wX2lkLCBjb25zdCBH VmFsdWUgKnZhbHVlLCBHUGFyYW1TcGVjICpwc3BlYykKKyt7CisrICBzd2l0Y2ggKHByb3BfaWQp CisrICAgIHsKKysgICAgLyogQWxsIHByb3BlcnRpZXMgYXJlIHJlYWQgb25seSAqLworKyAgICBk ZWZhdWx0OgorKyAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRCAob2JqZWN0 LCBwcm9wX2lkLCBwc3BlYyk7CisrICAgICAgYnJlYWs7CisrICAgIH0KKyt9CisgCisgc3RhdGlj IHZvaWQKKyBwaG90b3NfdHJhY2tlcl9xdWV1ZV9jbGFzc19pbml0IChQaG90b3NUcmFja2VyUXVl dWVDbGFzcyAqY2xhc3MpCitAQCAtMjY3LDYgKzM1NSwyNCBAQCBwaG90b3NfdHJhY2tlcl9xdWV1 ZV9jbGFzc19pbml0IChQaG90b3NUcmFja2VyUXVldWVDbGFzcyAqY2xhc3MpCisgICBvYmplY3Rf Y2xhc3MtPmNvbnN0cnVjdG9yID0gcGhvdG9zX3RyYWNrZXJfcXVldWVfY29uc3RydWN0b3I7Cisg ICBvYmplY3RfY2xhc3MtPmRpc3Bvc2UgPSBwaG90b3NfdHJhY2tlcl9xdWV1ZV9kaXNwb3NlOwor ICAgb2JqZWN0X2NsYXNzLT5maW5hbGl6ZSA9IHBob3Rvc190cmFja2VyX3F1ZXVlX2ZpbmFsaXpl OworKyAgb2JqZWN0X2NsYXNzLT5nZXRfcHJvcGVydHkgPSBwaG90b3NfdHJhY2tlcl9xdWV1ZV9n ZXRfcHJvcGVydHk7CisrICBvYmplY3RfY2xhc3MtPnNldF9wcm9wZXJ0eSA9IHBob3Rvc190cmFj a2VyX3F1ZXVlX3NldF9wcm9wZXJ0eTsKKysKKysgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJv cGVydHkgKG9iamVjdF9jbGFzcywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBST1BfTUlORVJfRlNfUkVBRFksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBnX3BhcmFtX3NwZWNfYm9vbGVhbiAoInRyYWNrZXItbWluZXItZnMtcmVhZHkiLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUcmFj a2VyIE1pbmVyIEZTIHJlYWR5IiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiVFJVRSBpZiBpdCBpcyBwb3NzaWJsZSB0byBxdWVyeSBU cmFja2VyIGluZGV4ZXIiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEZBTFNFLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfUEFSQU1fUkVBREFCTEUpKTsKKysKKysgIGdf b2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkgKG9iamVjdF9jbGFzcywKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfTUlORVJfRlNfQlVTTkFNRSwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcgKCJ0cmFja2Vy LW1pbmVyLWZzLWJ1c25hbWUiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIlRyYWNrZXIgTWluZXIgRlMgYnVzbmFtZSIsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRC1CdXMg bmFtZSBvZiB0aGUgVHJhY2tlciBpbmRleGVyIGRhZW1vbiIsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfUEFSQU1fUkVBREFC TEUpKTsKKyB9CisgCisgCitAQCAtMjc0LDEzICszODAsMTYgQEAgc3RhdGljIGdib29sZWFuCisg cGhvdG9zX3RyYWNrZXJfcXVldWVfaW5pdGFibGVfaW5pdCAoR0luaXRhYmxlICppbml0YWJsZSwg R0NhbmNlbGxhYmxlICpjYW5jZWxsYWJsZSwgR0Vycm9yICoqZXJyb3IpCisgeworICAgUGhvdG9z VHJhY2tlclF1ZXVlICpzZWxmID0gUEhPVE9TX1RSQUNLRVJfUVVFVUUgKGluaXRhYmxlKTsKKysg IFRyYWNrZXJTcGFycWxDb25uZWN0aW9uRmxhZ3MgdHJhY2tlcl9mbGFnczsKKysgIGdfYXV0b3B0 ciAoR0ZpbGUpIHN0b3JlID0gTlVMTDsKKyAgIGdib29sZWFuIHJldF92YWwgPSBGQUxTRTsKKysg IGdib29sZWFuIG1pbmVyX29rID0gRkFMU0U7CisgCisgICBHX0xPQ0sgKGluaXRfbG9jayk7Cisg CisgICBpZiAoc2VsZi0+aXNfaW5pdGlhbGl6ZWQpCisgICAgIHsKKy0gICAgICBpZiAoc2VsZi0+ Y29ubmVjdGlvbiAhPSBOVUxMKQorKyAgICAgIGlmIChzZWxmLT5sb2NhbF9jb25uZWN0aW9uICE9 IE5VTEwgJiYgc2VsZi0+bWluZXJfZnNfY29ubmVjdGlvbiAhPSBOVUxMKQorICAgICAgICAgcmV0 X3ZhbCA9IFRSVUU7CisgICAgICAgZWxzZQorICAgICAgICAgZ19hc3NlcnRfbm9ubnVsbCAoc2Vs Zi0+aW5pdGlhbGl6YXRpb25fZXJyb3IpOworQEAgLTI5MCwxMSArMzk5LDQ5IEBAIHBob3Rvc190 cmFja2VyX3F1ZXVlX2luaXRhYmxlX2luaXQgKEdJbml0YWJsZSAqaW5pdGFibGUsIEdDYW5jZWxs YWJsZSAqY2FuY2VsbGFiCisgCisgICBnX2Fzc2VydF9ub19lcnJvciAoc2VsZi0+aW5pdGlhbGl6 YXRpb25fZXJyb3IpOworIAorLSAgc2VsZi0+Y29ubmVjdGlvbiA9IHRyYWNrZXJfc3BhcnFsX2Nv bm5lY3Rpb25fZ2V0IChjYW5jZWxsYWJsZSwgJnNlbGYtPmluaXRpYWxpemF0aW9uX2Vycm9yKTsK KysgIC8qIENvbm5lY3QgdG8gdGhlIGxvY2FsIGRhdGFiYXNlIHdoaWNoIHN0b3JlcyB1c2VyIGRh dGEuCisrICAgKgorKyAgICogU2FtZSBmbGFncyB0aGF0IHRyYWNrZXItbWluZXItZnMgdXNlcyBi eSBkZWZhdWx0LiBTZWU6CisrICAgKiBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvdHJh Y2tlci1taW5lcnMvLS9ibG9iL21hc3Rlci9zcmMvbWluZXJzL2ZzL3RyYWNrZXItbWFpbi5jI0w3 MzUgYW5kCisrICAgKiBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvdHJhY2tlci1taW5l cnMvLS9ibG9iL21hc3Rlci9kYXRhL29yZy5mcmVlZGVza3RvcC5UcmFja2VyLkZUUy5nc2NoZW1h LnhtbCAqLworKyAgdHJhY2tlcl9mbGFncyA9IFRSQUNLRVJfU1BBUlFMX0NPTk5FQ1RJT05fRkxB R1NfRlRTX0VOQUJMRV9VTkFDQ0VOVCB8CisrICAgICAgICAgICAgICAgICAgVFJBQ0tFUl9TUEFS UUxfQ09OTkVDVElPTl9GTEFHU19GVFNfRU5BQkxFX1NUT1BfV09SRFMgfAorKyAgICAgICAgICAg ICAgICAgIFRSQUNLRVJfU1BBUlFMX0NPTk5FQ1RJT05fRkxBR1NfRlRTX0lHTk9SRV9OVU1CRVJT OworKworKyAgc3RvcmUgPSBnX2ZpbGVfbmV3X2J1aWxkX2ZpbGVuYW1lIChnX2dldF91c2VyX2Rh dGFfZGlyICgpLCAiZ25vbWUtcGhvdG9zIiwgTlVMTCk7CisrCisrICBwaG90b3NfZGVidWcgKFBI T1RPU19ERUJVR19UUkFDS0VSLCAiT3BlbmluZyBsb2NhbCBkYXRhYmFzZSBhdCAlcyIsIGdfZmls ZV9wZWVrX3BhdGggKHN0b3JlKSk7CisrICBzZWxmLT5sb2NhbF9jb25uZWN0aW9uID0gdHJhY2tl cl9zcGFycWxfY29ubmVjdGlvbl9uZXcgKHRyYWNrZXJfZmxhZ3MsCisrICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFj a2VyX3NwYXJxbF9nZXRfb250b2xvZ3lfbmVwb211ayAoKSwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FuY2VsbGFibGUsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZz ZWxmLT5pbml0aWFsaXphdGlvbl9lcnJvcik7CisrCisgICBpZiAoR19VTkxJS0VMWSAoc2VsZi0+ aW5pdGlhbGl6YXRpb25fZXJyb3IgIT0gTlVMTCkpCisgICAgIGdvdG8gb3V0OworIAorLSAgcmV0 X3ZhbCA9IFRSVUU7CisrICAvKiBDb25uZWN0IHRvIGZpbGVzeXN0ZW0gaW5kZXhlci4gKi8KKysg IG1pbmVyX29rID0gcGhvdG9zX3RyYWNrZXJfcXVldWVfc3RhcnRfc2Vzc2lvbl9taW5lcl9mcyAo c2VsZiwgJnNlbGYtPmluaXRpYWxpemF0aW9uX2Vycm9yKTsKKysKKysgIGlmICghbWluZXJfb2sg JiYgaW5zaWRlX2ZsYXRwYWsgKCkpCisrICAgIHsKKysgICAgICBnX2NsZWFyX2Vycm9yICgmc2Vs Zi0+aW5pdGlhbGl6YXRpb25fZXJyb3IpOworKyAgICAgIG1pbmVyX29rID0gcGhvdG9zX3RyYWNr ZXJfcXVldWVfc3RhcnRfbG9jYWxfbWluZXJfZnMgKHNlbGYsICZzZWxmLT5pbml0aWFsaXphdGlv bl9lcnJvcik7CisrICAgIH0KKysKKysgIGlmIChtaW5lcl9vaykKKysgICAgeworKyAgICAgIHBo b3Rvc19kZWJ1ZyAoUEhPVE9TX0RFQlVHX1RSQUNLRVIsICJVc2luZyAlcyBhcyB0cmFja2VyLW1p bmVyLWZzIiwgc2VsZi0+bWluZXJfZnNfYnVzbmFtZSk7CisrICAgICAgcmV0X3ZhbCA9IFRSVUU7 CisrICAgIH0KKysgIGVsc2UKKysgICAgeworKyAgICAgIHBob3Rvc19kZWJ1ZyAoUEhPVE9TX0RF QlVHX1RSQUNLRVIsICJJbml0aWFsaXphdGlvbiBmYWlsZWQgZHVlIHRvICVzIiwgc2VsZi0+aW5p dGlhbGl6YXRpb25fZXJyb3ItPm1lc3NhZ2UpOworKyAgICAgIGdfY2xlYXJfb2JqZWN0ICgmc2Vs Zi0+bWluZXJfZnNfY29ubmVjdGlvbik7CisrICAgICAgZ19jbGVhcl9vYmplY3QgKCZzZWxmLT5s b2NhbF9jb25uZWN0aW9uKTsKKysgICAgICByZXRfdmFsID0gRkFMU0U7CisrICAgIH0KKysKKyAK KyAgb3V0OgorICAgc2VsZi0+aXNfaW5pdGlhbGl6ZWQgPSBUUlVFOworQEAgLTMxOSwxMCArNDY2 LDQ0IEBAIHBob3Rvc190cmFja2VyX3F1ZXVlX2luaXRhYmxlX2lmYWNlX2luaXQgKEdJbml0YWJs ZUlmYWNlICppZmFjZSkKKyBQaG90b3NUcmFja2VyUXVldWUgKgorIHBob3Rvc190cmFja2VyX3F1 ZXVlX2R1cF9zaW5nbGV0b24gKEdDYW5jZWxsYWJsZSAqY2FuY2VsbGFibGUsIEdFcnJvciAqKmVy cm9yKQorIHsKKysgIEdPYmplY3QgKnNpbmdsZXRvbjsKKysKKyAgIGdfcmV0dXJuX3ZhbF9pZl9m YWlsIChjYW5jZWxsYWJsZSA9PSBOVUxMIHx8IEdfSVNfQ0FOQ0VMTEFCTEUgKGNhbmNlbGxhYmxl KSwgTlVMTCk7CisgICBnX3JldHVybl92YWxfaWZfZmFpbCAoZXJyb3IgPT0gTlVMTCB8fCAqZXJy b3IgPT0gTlVMTCwgTlVMTCk7CisgCistICByZXR1cm4gZ19pbml0YWJsZV9uZXcgKFBIT1RPU19U WVBFX1RSQUNLRVJfUVVFVUUsIGNhbmNlbGxhYmxlLCBlcnJvciwgTlVMTCk7CisrICBzaW5nbGV0 b24gPSBnX29iamVjdF9uZXcgKFBIT1RPU19UWVBFX1RSQUNLRVJfUVVFVUUsIE5VTEwpOworKwor KyAgaWYgKGdfaW5pdGFibGVfaW5pdCAoR19JTklUQUJMRSAoc2luZ2xldG9uKSwgY2FuY2VsbGFi bGUsIGVycm9yKSkKKysgICAgICByZXR1cm4gUEhPVE9TX1RSQUNLRVJfUVVFVUUgKHNpbmdsZXRv bik7CisrCisrICAvKiBPbiBlcnJvciB3ZSBkZWxpYmVyYXRlbHkgZG9uJ3QgdW5yZWYgdGhlIG9i amVjdCBzbyB0aGF0IHdlIHdvbid0IHRyeQorKyAgICogYW5kIHJlLWluaXRpYWxpemUgVHJhY2tl ciB3aGVuIGNhbGxlZCBhZ2Fpbi4KKysgICAqLworKyAgcmV0dXJuIE5VTEw7CisrfQorKworKwor K2NvbnN0IGdjaGFyICoKKytwaG90b3NfdHJhY2tlcl9xdWV1ZV9nZXRfbWluZXJfZnNfYnVzbmFt ZSAoUGhvdG9zVHJhY2tlclF1ZXVlICpzZWxmKQorK3sKKysgIHJldHVybiBzZWxmLT5taW5lcl9m c19idXNuYW1lOworK30KKysKKysKKytjb25zdCBnY2hhciAqCisrcGhvdG9zX3RyYWNrZXJfcXVl dWVfZ2V0X21pbmVyX2ZzX2NvbnRyb2xfYnVzbmFtZSAoUGhvdG9zVHJhY2tlclF1ZXVlICpzZWxm KQorK3sKKysgIHJldHVybiBzZWxmLT5taW5lcl9mc19jb250cm9sX2J1c25hbWU7CisrfQorKwor KworK1RyYWNrZXJOb3RpZmllciAqCisrcGhvdG9zX3RyYWNrZXJfcXVldWVfZ2V0X25vdGlmaWVy IChQaG90b3NUcmFja2VyUXVldWUgKnNlbGYpCisreworKyAgLyogV2Ugd2FudCBub3RpZmljYXRp b25zIG9uIGZpbGVzeXN0ZW0gY2hhbmdlcywgd2UgZG9uJ3QgbmVlZCB0aGVtIGZvciB0aGUKKysg ICAqIGxvY2FsIGRhdGFiYXNlIHdoaWNoIHdlIG1hbmFnZSBvdXJzZWx2ZXMuCisrICAgKi8KKysg IHJldHVybiB0cmFja2VyX3NwYXJxbF9jb25uZWN0aW9uX2NyZWF0ZV9ub3RpZmllciAoc2VsZi0+ bWluZXJfZnNfY29ubmVjdGlvbik7CisgfQorIAorIAorQEAgLTM1MSw2ICs1MzIsNyBAQCBwaG90 b3NfdHJhY2tlcl9xdWV1ZV9zZWxlY3QgKFBob3Rvc1RyYWNrZXJRdWV1ZSAqc2VsZiwKKyB9Cisg CisgCisrCisgdm9pZAorIHBob3Rvc190cmFja2VyX3F1ZXVlX3VwZGF0ZSAoUGhvdG9zVHJhY2tl clF1ZXVlICpzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGhvdG9zUXVlcnkg KnF1ZXJ5LAorZGlmZiAtLWdpdCBhL3NyYy9waG90b3MtdHJhY2tlci1xdWV1ZS5oIGIvc3JjL3Bo b3Rvcy10cmFja2VyLXF1ZXVlLmgKK2luZGV4IDkzZDk3MzA2Li42ZTMxZWNmNiAxMDA2NDQKKy0t LSBhL3NyYy9waG90b3MtdHJhY2tlci1xdWV1ZS5oCisrKysgYi9zcmMvcGhvdG9zLXRyYWNrZXIt cXVldWUuaAorQEAgLTI0LDE2ICsyNCwyMyBAQAorICNkZWZpbmUgUEhPVE9TX1RSQUNLRVJfUVVF VUVfSAorIAorICNpbmNsdWRlIDxnaW8vZ2lvLmg+CisrI2luY2x1ZGUgPGxpYnRyYWNrZXItc3Bh cnFsL3RyYWNrZXItc3BhcnFsLmg+CisgCisgI2luY2x1ZGUgInBob3Rvcy1xdWVyeS5oIgorIAor IEdfQkVHSU5fREVDTFMKKyAKKysjZGVmaW5lIFRSQUNLRVJfUElDVFVSRVNfR1JBUEggImh0dHA6 Ly90cmFja2VyLmFwaS5nbm9tZS5vcmcvb250b2xvZ3kvdjMvdHJhY2tlciNQaWN0dXJlcyIKKysK KyAjZGVmaW5lIFBIT1RPU19UWVBFX1RSQUNLRVJfUVVFVUUgKHBob3Rvc190cmFja2VyX3F1ZXVl X2dldF90eXBlICgpKQorIEdfREVDTEFSRV9GSU5BTF9UWVBFIChQaG90b3NUcmFja2VyUXVldWUs IHBob3Rvc190cmFja2VyX3F1ZXVlLCBQSE9UT1MsIFRSQUNLRVJfUVVFVUUsIEdPYmplY3QpOwor IAorIFBob3Rvc1RyYWNrZXJRdWV1ZSAgICAqcGhvdG9zX3RyYWNrZXJfcXVldWVfZHVwX3Npbmds ZXRvbiAgICAgICAgICAoR0NhbmNlbGxhYmxlICpjYW5jZWxsYWJsZSwgR0Vycm9yICoqZXJyb3Ip OworIAorK2NvbnN0IGdjaGFyICogICAgICAgICAgcGhvdG9zX3RyYWNrZXJfcXVldWVfZ2V0X21p bmVyX2ZzX2J1c25hbWUgICAgICAgICAoUGhvdG9zVHJhY2tlclF1ZXVlICpzZWxmKTsKKytjb25z dCBnY2hhciAqICAgICAgICAgIHBob3Rvc190cmFja2VyX3F1ZXVlX2dldF9taW5lcl9mc19jb250 cm9sX2J1c25hbWUgKFBob3Rvc1RyYWNrZXJRdWV1ZSAqc2VsZik7CisrVHJhY2tlck5vdGlmaWVy ICogICAgICBwaG90b3NfdHJhY2tlcl9xdWV1ZV9nZXRfbm90aWZpZXIgICAgICAgICAgICAgICAg IChQaG90b3NUcmFja2VyUXVldWUgKnNlbGYpOworKworIHZvaWQgICAgICAgICAgICAgICAgICAg cGhvdG9zX3RyYWNrZXJfcXVldWVfc2VsZWN0ICAgICAgICAgICAgICAgICAoUGhvdG9zVHJhY2tl clF1ZXVlICpzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUGhvdG9zUXVlcnkgKnF1ZXJ5LAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgR0NhbmNlbGxhYmxlICpjYW5jZWxsYWJsZSwKK2RpZmYgLS1naXQgYS9zcmMvcGhvdG9zLXRy YWNrZXItcmVzb3VyY2VzLnhtbCBiL3NyYy9waG90b3MtdHJhY2tlci1yZXNvdXJjZXMueG1sCitk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDE4MTc3YWEwLi4wMDAwMDAwMAorLS0tIGEv c3JjL3Bob3Rvcy10cmFja2VyLXJlc291cmNlcy54bWwKKysrKyAvZGV2L251bGwKK0BAIC0xLDMx ICswLDAgQEAKKy08IURPQ1RZUEUgbm9kZSBQVUJMSUMKKy0iLS8vZnJlZWRlc2t0b3AvL0RURCBE LUJVUyBPYmplY3QgSW50cm9zcGVjdGlvbiAxLjAvL0VOIgorLSJodHRwOi8vd3d3LmZyZWVkZXNr dG9wLm9yZy9zdGFuZGFyZHMvZGJ1cy8xLjAvaW50cm9zcGVjdC5kdGQiPgorLQorLTwhLS0KKy0g UGhvdG9zIC0gYWNjZXNzLCBvcmdhbml6ZSBhbmQgc2hhcmUgeW91ciBwaG90b3Mgb24gR05PTUUK Ky0gQ29weXJpZ2h0IMKpIDIwMTIg4oCTIDIwMTkgUmVkIEhhdCwgSW5jLgorLQorLSBUaGlzIHBy b2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeQorLSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieQorLSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRo ZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorLSAoYXQgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLgorLQorLSBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKy0gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3 aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKy0gTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorLSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorLQorLSBZb3Ugc2hvdWxkIGhhdmUg cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorLSBhbG9u ZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGlj ZW5zZXMvPi4KKy0tLT4KKy0KKy08bm9kZSBuYW1lPSIvIiB4bWxuczpkb2M9Imh0dHA6Ly93d3cu ZnJlZWRlc2t0b3Aub3JnL2RidXMvMS4wL2RvYy5kdGQiPgorLSAgPGludGVyZmFjZSBuYW1lPSJv cmcuZnJlZWRlc2t0b3AuVHJhY2tlcjEuUmVzb3VyY2VzIj4KKy0gICAgPHNpZ25hbCBuYW1lPSJH cmFwaFVwZGF0ZWQiPgorLSAgICAgIDxhcmcgbmFtZT0iY2xhc3NOYW1lIiB0eXBlPSJzIiAvPgor LSAgICAgIDxhcmcgbmFtZT0iZGVsZXRlRXZlbnRzIiB0eXBlPSJhKGlpaWkpIiAvPgorLSAgICAg IDxhcmcgbmFtZT0iaW5zZXJ0RXZlbnRzIiB0eXBlPSJhKGlpaWkpIiAvPgorLSAgICA8L3NpZ25h bD4KKy0gIDwvaW50ZXJmYWNlPgorLTwvbm9kZT4KK2RpZmYgLS1naXQgYS9zcmMvcGhvdG9zLXV0 aWxzLmMgYi9zcmMvcGhvdG9zLXV0aWxzLmMKK2luZGV4IGM2MzgyOTdiLi5jYzg1OTNkOCAxMDA2 NDQKKy0tLSBhL3NyYy9waG90b3MtdXRpbHMuYworKysrIGIvc3JjL3Bob3Rvcy11dGlscy5jCitA QCAtMTI2MSw3ICsxMjYxLDEzIEBAIHBob3Rvc191dGlsc19zZXRfZWRpdGVkX25hbWUgKGNvbnN0 IGdjaGFyICp1cm4sIGNvbnN0IGdjaGFyICp0aXRsZSkKKyAgIGdfYXV0b3B0ciAoUGhvdG9zVHJh Y2tlclF1ZXVlKSBxdWV1ZSA9IE5VTEw7CisgICBnX2F1dG9mcmVlIGdjaGFyICpzcGFycWwgPSBO VUxMOworIAorLSAgc3BhcnFsID0gZ19zdHJkdXBfcHJpbnRmICgiSU5TRVJUIE9SIFJFUExBQ0Ug eyA8JXM+IG5pZTp0aXRsZSBcIiVzXCIgfSIsIHVybiwgdGl0bGUpOworKyAgc3BhcnFsID0gZ19z dHJkdXBfcHJpbnRmICgiV0lUSCB0cmFja2VyOlBpY3R1cmVzICIKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIkRFTEVURSB7IDwlcz4gbmllOnRpdGxlID90aXRsZSB9ICIKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIklOU0VSVCB7ICIKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIiAgPCVzPiBhIG5tbTpQaG90byA7ICIKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIiAgICBuaWU6dGl0bGUgXCIlc1wiIC4gIgorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAifSIKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIldIRVJFIHsgPCVzPiBuaWU6dGl0 bGUgP3RpdGxlIH0iLCB1cm4sIHVybiwgdGl0bGUsIHVybik7CisgICBxdWVyeSA9IHBob3Rvc19x dWVyeV9uZXcgKE5VTEwsIHNwYXJxbCk7CisgCisgICB7CitAQCAtMTI4OSw5ICsxMjk1LDE5IEBA IHBob3Rvc191dGlsc19zZXRfZmF2b3JpdGUgKGNvbnN0IGdjaGFyICp1cm4sIGdib29sZWFuIGlz X2Zhdm9yaXRlKQorICAgZ19hdXRvcHRyIChQaG90b3NUcmFja2VyUXVldWUpIHF1ZXVlID0gTlVM TDsKKyAgIGdfYXV0b2ZyZWUgZ2NoYXIgKnNwYXJxbCA9IE5VTEw7CisgCistICBzcGFycWwgPSBn X3N0cmR1cF9wcmludGYgKCIlcyB7IDwlcz4gbmFvOmhhc1RhZyBuYW86cHJlZGVmaW5lZC10YWct ZmF2b3JpdGUgfSIsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpc19mYXZvcml0ZSkg PyAiSU5TRVJUIE9SIFJFUExBQ0UiIDogIkRFTEVURSIsCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVybik7CisrICBpZiAoaXNfZmF2b3JpdGUpCisrICAgIHNwYXJxbCA9IGdfc3RyZHVw X3ByaW50ZiAoIklOU0VSVCBEQVRBIHsgIgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICIgIEdSQVBIIHRyYWNrZXI6UGljdHVyZXMgeyIKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiICAgIDwlcz4gYSBubW06UGhvdG8gOyAiCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIiAgICAgIG5hbzpoYXNUYWcgbmFvOnByZWRlZmluZWQtdGFnLWZhdm9yaXRlICIKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICB9ICIKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAifSIsIHVybik7CisrICBlbHNlCisrICAgIHNwYXJxbCA9IGdfc3RyZHVwX3By aW50ZiAoIkRFTEVURSBEQVRBIHsiCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAg R1JBUEggdHJhY2tlcjpQaWN0dXJlcyB7IgorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICIgICAgPCVzPiBuYW86aGFzVGFnIG5hbzpwcmVkZWZpbmVkLXRhZy1mYXZvcml0ZSAiCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgfSAiCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIn0iLCB1cm4pOworICAgcXVlcnkgPSBwaG90b3NfcXVlcnlfbmV3IChOVUxMLCBz cGFycWwpOworIAorICAgeworZGlmZiAtLWdpdCBhL3NyYy9waG90b3MtdXRpbHMuaCBiL3NyYy9w aG90b3MtdXRpbHMuaAoraW5kZXggNzhlYzM2NjguLmYxNDUwZjdkIDEwMDY0NAorLS0tIGEvc3Jj L3Bob3Rvcy11dGlscy5oCisrKysgYi9zcmMvcGhvdG9zLXV0aWxzLmgKK0BAIC00Niw3ICs0Niw3 IEBAIEdfQkVHSU5fREVDTFMKKyAjZGVmaW5lIFBIT1RPU19UUkFDS0VSX0NPTlRST0xMRVJfRVhU RU5TSU9OX1BPSU5UX05BTUUgInBob3Rvcy10cmFja2VyLWNvbnRyb2xsZXIiCisgCisgI2RlZmlu ZSBQSE9UT1NfQ09MTEVDVElPTl9TQ1JFRU5TSE9UIFwKKy0gICJodHRwOi8vd3d3LnNlbWFudGlj ZGVza3RvcC5vcmcvb250b2xvZ2llcy8yMDA3LzAzLzIyL25mbyNpbWFnZS1jYXRlZ29yeS1zY3Jl ZW5zaG90IgorKyAgImh0dHA6Ly90cmFja2VyLmFwaS5nbm9tZS5vcmcvb250b2xvZ3kvdjMvbmZv I2ltYWdlLWNhdGVnb3J5LXNjcmVlbnNob3QiCisgI2RlZmluZSBQSE9UT1NfRVhQT1JUX1NVQlBB VEggIkV4cG9ydHMiCisgCisgdHlwZWRlZiBlbnVtCitkaWZmIC0tZ2l0IGEvc3JjL3F1ZXJpZXMv YWxsLnNwYXJxbC50ZW1wbGF0ZSBiL3NyYy9xdWVyaWVzL2FsbC5zcGFycWwudGVtcGxhdGUKK2lu ZGV4IDFjZWY5OGU4Li4xNGUwODAyNyAxMDA2NDQKKy0tLSBhL3NyYy9xdWVyaWVzL2FsbC5zcGFy cWwudGVtcGxhdGUKKysrKyBiL3NyYy9xdWVyaWVzL2FsbC5zcGFycWwudGVtcGxhdGUKK0BAIC0x LDMwICsxLDQyIEBACistU0VMRUNUIHt7cHJvamVjdGlvbn19CisrU0VMRUNUIHt7ZmluYWxfcHJv amVjdGlvbn19CisrRlJPTSBOQU1FRCB0cmFja2VyOlBpY3R1cmVzCisgeworICAgICB7CistICAg ICAgICBTRUxFQ1Qge3twcm9qZWN0aW9ufX0KKysgICAgICAgIFNFTEVDVCB7e21haW5fcHJvamVj dGlvbn19CisgICAgICAgICB7CisgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICBTRUxF Q1QgP3VybiBDT1VOVCg/aXRlbSkgQVMgP2NvdW50CisgICAgICAgICAgICAgICAgIHsKKysgICAg ICAgICAgICAgICAgICAgIHt7dmFsdWVzfX0KKysgICAgICAgICAgICAgICAgICAgIFZBTFVFUyAo P2ZpbGUgP2ZpbGVuYW1lID9jcmVhdG9yID9wdWJsaXNoZXIpIHsgKCIiICIiICIiICIiKSB9Cisg ICAgICAgICAgICAgICAgICAgICA/dXJuIGEgbmZvOkRhdGFDb250YWluZXIuCistICAgICAgICAg ICAgICAgICAgICA/aXRlbSBhIG5tbTpQaG90bzsgbmllOmlzUGFydE9mID91cm4uCistICAgICAg ICAgICAgICAgIH0gR1JPVVAgQlkgP3VybgorKyAgICAgICAgICAgICAgICAgICAgP2l0ZW0gYSBu bW06UGhvdG8gOworKyAgICAgICAgICAgICAgICAgICAgICAgbmllOmlzUGFydE9mID91cm4gLgor KyAgICAgICAgICAgICAgICAgICAge3tpdGVtX3BhdHRlcm59fQorKyAgICAgICAgICAgICAgICB9 CisrICAgICAgICAgICAgICAgIEdST1VQIEJZID91cm4KKyAgICAgICAgICAgICB9CisgICAgICAg ICAgICAgRklMVEVSICg/Y291bnQgPiAwICYmIHt7Y29sbGVjdGlvbnNfZGVmYXVsdF9maWx0ZXJ9 fSAmJiB7e3NlYXJjaF9maWx0ZXJ9fSkKKyAgICAgICAgIH0KKy0gICAgICAgIEdST1VQIEJZID91 cm4KKyAgICAgfQorICAgICBVTklPTgorICAgICB7CistICAgICAgICBTRUxFQ1Qge3twcm9qZWN0 aW9ufX0KKysgICAgICAgIFNFTEVDVCB7e3NlY29uZF9wcm9qZWN0aW9ufX0KKyAgICAgICAgIHsK Ky0gICAgICAgICAgICA/dXJuIGEgbm1tOlBob3RvIC4KKy0gICAgICAgICAgICBPUFRJT05BTCB7 ID91cm4gbmNvOmNyZWF0b3IgP2NyZWF0b3IgLiB9CistICAgICAgICAgICAgT1BUSU9OQUwgeyA/ dXJuIG5jbzpwdWJsaXNoZXIgP3B1Ymxpc2hlciAuIH0KKyAgICAgICAgICAgICB7e2l0ZW1fcGF0 dGVybn19CistICAgICAgICAgICAgRklMVEVSICh7e3Bob3Rvc19kZWZhdWx0X2ZpbHRlcn19ICYm IHt7c291cmNlX2ZpbHRlcn19ICYmIHt7c2VhcmNoX2ZpbHRlcn19KQorKyAgICAgICAgICAgIFNF UlZJQ0UgPGRidXM6e3ttaW5lcl9mc19idXNuYW1lfX0+CisrICAgICAgICAgICAgeworKyAgICAg ICAgICAgICAgICBTRUxFQ1Qge3ttYWluX3Byb2plY3Rpb259fQorKyAgICAgICAgICAgICAgICB7 CisrICAgICAgICAgICAgICAgICAgICB7e3ZhbHVlc319CisrICAgICAgICAgICAgICAgICAgICA/ dXJuIGEgbm1tOlBob3RvIDsKKysgICAgICAgICAgICAgICAgICAgICAgICBuaWU6aXNTdG9yZWRB cyA/ZmlsZSAuCisrICAgICAgICAgICAgICAgICAgICBPUFRJT05BTCB7ID91cm4gbmNvOmNyZWF0 b3IgP2NyZWF0b3IgLiB9CisrICAgICAgICAgICAgICAgICAgICBPUFRJT05BTCB7ID91cm4gbmNv OnB1Ymxpc2hlciA/cHVibGlzaGVyIC4gfQorKyAgICAgICAgICAgICAgICAgICAgRklMVEVSICh7 e3Bob3Rvc19kZWZhdWx0X2ZpbHRlcn19ICYmIHt7c291cmNlX2ZpbHRlcn19ICYmIHt7c2VhcmNo X2ZpbHRlcn19KQorKyAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgfQorICAgICAgICAg fQorLSAgICAgICAgR1JPVVAgQlkgP3VybgorICAgICB9CisgfQorIHt7b3JkZXJ9fQorZGlmZiAt LWdpdCBhL3NyYy9xdWVyaWVzL2NvbGxlY3Rpb25zLnNwYXJxbC50ZW1wbGF0ZSBiL3NyYy9xdWVy aWVzL2NvbGxlY3Rpb25zLnNwYXJxbC50ZW1wbGF0ZQoraW5kZXggMjBiMzVjZDYuLjRkZmIzNDVh IDEwMDY0NAorLS0tIGEvc3JjL3F1ZXJpZXMvY29sbGVjdGlvbnMuc3BhcnFsLnRlbXBsYXRlCisr KysgYi9zcmMvcXVlcmllcy9jb2xsZWN0aW9ucy5zcGFycWwudGVtcGxhdGUKK0BAIC0xLDE0ICsx LDIwIEBACistU0VMRUNUIHt7cHJvamVjdGlvbn19CisrU0VMRUNUIHt7ZmluYWxfcHJvamVjdGlv bn19CisgeworKyAgICBTRUxFQ1Qge3ttYWluX3Byb2plY3Rpb259fQorICAgICB7CistICAgICAg ICBTRUxFQ1QgP3VybiBDT1VOVCg/aXRlbSkgQVMgP2NvdW50CisgICAgICAgICB7CistICAgICAg ICAgICAgP3VybiBhIG5mbzpEYXRhQ29udGFpbmVyLgorLSAgICAgICAgICAgID9pdGVtIGEgbm1t OlBob3RvOyBuaWU6aXNQYXJ0T2YgP3Vybi4KKy0gICAgICAgIH0gR1JPVVAgQlkgP3VybgorKyAg ICAgICAgICAgIFNFTEVDVCA/dXJuIENPVU5UKD9pdGVtKSBBUyA/Y291bnQKKysgICAgICAgICAg ICB7CisrICAgICAgICAgICAgICAgIHt7dmFsdWVzfX0KKysgICAgICAgICAgICAgICAgVkFMVUVT ICg/ZmlsZSA/ZmlsZW5hbWUgP2NyZWF0b3IgP3B1Ymxpc2hlcikgeyAoIiIgIiIgIiIgIiIpIH0K KysgICAgICAgICAgICAgICAgP3VybiBhIG5mbzpEYXRhQ29udGFpbmVyIC4KKysgICAgICAgICAg ICAgICAgP2l0ZW0gYSBubW06UGhvdG8gOworKyAgICAgICAgICAgICAgICAgICBuaWU6aXNQYXJ0 T2YgP3VybiAuCisrICAgICAgICAgICAgfQorKyAgICAgICAgICAgIEdST1VQIEJZID91cm4KKysg ICAgICAgIH0KKysgICAgICAgIEZJTFRFUiAoP2NvdW50ID4gMCAmJiB7e2NvbGxlY3Rpb25zX2Rl ZmF1bHRfZmlsdGVyfX0gJiYge3tzZWFyY2hfZmlsdGVyfX0pCisgICAgIH0KKy0gICAgRklMVEVS ICg/Y291bnQgPiAwICYmIHt7Y29sbGVjdGlvbnNfZGVmYXVsdF9maWx0ZXJ9fSAmJiB7e3NlYXJj aF9maWx0ZXJ9fSkKKyB9CistR1JPVVAgQlkgP3VybgorIHt7b3JkZXJ9fQorIHt7b2Zmc2V0X2xp bWl0fX0KK2RpZmYgLS1naXQgYS9zcmMvcXVlcmllcy9mYXZvcml0ZS1waG90b3Muc3BhcnFsLnRl bXBsYXRlIGIvc3JjL3F1ZXJpZXMvZmF2b3JpdGUtcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZQoraW5k ZXggMDg4NWEwOGEuLjlhMGQ3ODA2IDEwMDY0NAorLS0tIGEvc3JjL3F1ZXJpZXMvZmF2b3JpdGUt cGhvdG9zLnNwYXJxbC50ZW1wbGF0ZQorKysrIGIvc3JjL3F1ZXJpZXMvZmF2b3JpdGUtcGhvdG9z LnNwYXJxbC50ZW1wbGF0ZQorQEAgLTEsMTIgKzEsMjAgQEAKKy1TRUxFQ1Qge3twcm9qZWN0aW9u fX0KKytTRUxFQ1Qge3tmaW5hbF9wcm9qZWN0aW9ufX0KKytGUk9NIHRyYWNrZXI6UGljdHVyZXMK KyB7CisgICAgID91cm4gYSBubW06UGhvdG8gLgorICAgICA/dXJuIGEgbm1tOlBob3RvOyBuYW86 aGFzVGFnIG5hbzpwcmVkZWZpbmVkLXRhZy1mYXZvcml0ZSAuCistICAgIE9QVElPTkFMIHsgP3Vy biBuY286Y3JlYXRvciA/Y3JlYXRvciAuIH0KKy0gICAgT1BUSU9OQUwgeyA/dXJuIG5jbzpwdWJs aXNoZXIgP3B1Ymxpc2hlciAuIH0KKy0gICAge3tpdGVtX3BhdHRlcm59fQorLSAgICBGSUxURVIg KHt7cGhvdG9zX2RlZmF1bHRfZmlsdGVyfX0gJiYge3tzb3VyY2VfZmlsdGVyfX0gJiYge3tzZWFy Y2hfZmlsdGVyfX0pCisrICAgIFNFUlZJQ0UgPGRidXM6e3ttaW5lcl9mc19idXNuYW1lfX0+Cisr ICAgIHsKKysgICAgICAgIFNFTEVDVCB7e21haW5fcHJvamVjdGlvbn19CisrICAgICAgICB7Cisr ICAgICAgICAgICAgP3VybiBhIG5tbTpQaG90byA7CisrICAgICAgICAgICAgICAgIG5pZTppc1N0 b3JlZEFzID9maWxlIC4KKysgICAgICAgICAgICBPUFRJT05BTCB7ID91cm4gbmNvOmNyZWF0b3Ig P2NyZWF0b3IgLiB9CisrICAgICAgICAgICAgT1BUSU9OQUwgeyA/dXJuIG5jbzpwdWJsaXNoZXIg P3B1Ymxpc2hlciAuIH0KKysgICAgICAgICAgICB7e2l0ZW1fcGF0dGVybn19CisrICAgICAgICAg ICAgRklMVEVSICh7e3Bob3Rvc19kZWZhdWx0X2ZpbHRlcn19ICYmIHt7c291cmNlX2ZpbHRlcn19 ICYmIHt7c2VhcmNoX2ZpbHRlcn19KQorKyAgICAgICAgfQorKyAgICB9CisgfQorLUdST1VQIEJZ ID91cm4KKyB7e29yZGVyfX0KKyB7e29mZnNldF9saW1pdH19CitkaWZmIC0tZ2l0IGEvc3JjL3F1 ZXJpZXMvcGhvdG9zLnNwYXJxbC50ZW1wbGF0ZSBiL3NyYy9xdWVyaWVzL3Bob3Rvcy5zcGFycWwu dGVtcGxhdGUKK2luZGV4IDRlYjEwYjc0Li42YWRlMzVlMiAxMDA2NDQKKy0tLSBhL3NyYy9xdWVy aWVzL3Bob3Rvcy5zcGFycWwudGVtcGxhdGUKKysrKyBiL3NyYy9xdWVyaWVzL3Bob3Rvcy5zcGFy cWwudGVtcGxhdGUKK0BAIC0xLDExICsxLDE5IEBACistU0VMRUNUIHt7cHJvamVjdGlvbn19Cisr U0VMRUNUIHt7ZmluYWxfcHJvamVjdGlvbn19CisrRlJPTSB0cmFja2VyOlBpY3R1cmVzCisgewor LSAgICA/dXJuIGEgbm1tOlBob3RvIC4KKy0gICAgT1BUSU9OQUwgeyA/dXJuIG5jbzpjcmVhdG9y ID9jcmVhdG9yIC4gfQorLSAgICBPUFRJT05BTCB7ID91cm4gbmNvOnB1Ymxpc2hlciA/cHVibGlz aGVyIC4gfQorLSAgICB7e2l0ZW1fcGF0dGVybn19CistICAgIEZJTFRFUiAoe3twaG90b3NfZGVm YXVsdF9maWx0ZXJ9fSAmJiB7e3NvdXJjZV9maWx0ZXJ9fSAmJiB7e3NlYXJjaF9maWx0ZXJ9fSkK KysgICAgU0VSVklDRSA8ZGJ1czp7e21pbmVyX2ZzX2J1c25hbWV9fT4KKysgICAgeworKyAgICAg ICAgU0VMRUNUIHt7bWFpbl9wcm9qZWN0aW9ufX0KKysgICAgICAgIHsKKysgICAgICAgICAgICB7 e3ZhbHVlc319CisrICAgICAgICAgICAgP3VybiBhIG5tbTpQaG90byA7CisrICAgICAgICAgICAg ICAgIG5pZTppc1N0b3JlZEFzID9maWxlIC4KKysgICAgICAgICAgICBPUFRJT05BTCB7ID91cm4g bmNvOmNyZWF0b3IgP2NyZWF0b3IgLiB9CisrICAgICAgICAgICAgT1BUSU9OQUwgeyA/dXJuIG5j bzpwdWJsaXNoZXIgP3B1Ymxpc2hlciAuIH0KKysgICAgICAgICAgICB7e2l0ZW1fcGF0dGVybn19 CisrICAgICAgICAgICAgRklMVEVSICh7e3Bob3Rvc19kZWZhdWx0X2ZpbHRlcn19ICYmIHt7c291 cmNlX2ZpbHRlcn19ICYmIHt7c2VhcmNoX2ZpbHRlcn19KQorKyAgICAgICAgfQorKyAgICB9Cisg fQorLUdST1VQIEJZID91cm4KKyB7e29yZGVyfX0KKyB7e29mZnNldF9saW1pdH19CistLSAKK0dp dExhYgorCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXBob3Rvcy90ZW1wbGF0ZSBiL3NyY3Br Z3MvZ25vbWUtcGhvdG9zL3RlbXBsYXRlCmluZGV4IDFlZDhiOTg2MWVjLi43YzgzYTJlNzVkNCAx MDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1waG90b3MvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9n bm9tZS1waG90b3MvdGVtcGxhdGUKQEAgLTEsMjIgKzEsMjMgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ2dub21lLXBob3RvcycKIHBrZ25hbWU9Z25vbWUtcGhvdG9zCi12ZXJzaW9uPTMuMzQuMgor dmVyc2lvbj0zLjM3LjkxLjEKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRf c3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSItRGRvZ3RhaWw9ZmFsc2UiCiBob3N0bWFrZWRl cGVuZHM9InBrZy1jb25maWcgZ2V0dGV4dCBpdHN0b29sIGdsaWItZGV2ZWwgZ2RrLXBpeGJ1ZiBs aWJyc3ZnIgogbWFrZWRlcGVuZHM9Imd0ayszLWRldmVsIGJhYmwtZGV2ZWwgZXhlbXBpLWRldmVs IGxjbXMyLWRldmVsCi0gZ2ZiZ3JhcGgtZGV2ZWwgdHJhY2tlci1kZXZlbCBsaWJleGlmLWRldmVs IGxpYnJzdmctZGV2ZWwgZ3JpbG8tZGV2ZWwKKyBnZmJncmFwaC1kZXZlbCB0cmFja2VyMy1kZXZl bCBsaWJleGlmLWRldmVsIGxpYnJzdmctZGV2ZWwgZ3JpbG8tZGV2ZWwKICBsaWJnZXhpdjItZGV2 ZWwgZ25vbWUtb25saW5lLWFjY291bnRzLWRldmVsIGdub21lLWRlc2t0b3AtZGV2ZWwgbGliZ2Rh dGEtZGV2ZWwKICBnZW9jb2RlLWdsaWItZGV2ZWwgbGliZGF6emxlLWRldmVsIGdlZ2wtZGV2ZWwi Ci1kZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMgdHJhY2tlciB0cmFja2VyLW1pbmVycyIKK2Rl cGVuZHM9ImRlc2t0b3AtZmlsZS11dGlscyB0cmFja2VyMyB0cmFja2VyMy1taW5lcnMiCiBzaG9y dF9kZXNjPSJBY2Nlc3MsIG9yZ2FuaXplLCBhbmQgc2hhcmUgeW91ciBwaG90b3Mgb24gR05PTUUi CiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5z ZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0Fw cHMvUGhvdG9zIgotZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L2dub21lLXBob3Rvcy8ke3ZlcnNp b24lLip9L2dub21lLXBob3Rvcy0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTNjNTljNzZl ZjI4NjE4ZWMwNTVhMTc5OWQxMDQwMjg3YjkwYTBiMDIxZmViMGEwMmIxZWFjMjhlOWMyZWI0MWEK K2Rpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS9nbm9tZS1waG90b3MvJHt2ZXJzaW9uJS4qLip9L2du b21lLXBob3Rvcy0ke3ZlcnNpb259LnRhci54eiIKK2NoZWNrc3VtPTI3OGRhMjMyMzRlMjdjNTQz MDIwZGFlOTQzYWQ1MjA4NmI5ZWNhYTVlZTNhYWQwYjAzMWI4NmVlMDRkMzk0YWEKK3BhdGNoX2Fy Z3M9Ii1OcDEiCiAKIGJ1aWxkX29wdGlvbnM9ImdpciIKIGJ1aWxkX29wdGlvbnNfZGVmYXVsdD0i Z2lyIgoKRnJvbSBkNzIwNWVlMGU3MmRmYmU5Nzk0YzIwZTFhZjI1MjM5ODhhNzlkZmJkIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdl Lm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFU Q0ggMDc2LzEwMl0gZW9nOiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIHNyY3BrZ3MvZW9nL3RlbXBs YXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9lb2cvdGVtcGxhdGUgYi9zcmNwa2dzL2VvZy90 ZW1wbGF0ZQppbmRleCBlNGNhY2I3MDc5ZS4uMjc1OTI3Mzg3MmUgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvZW9nL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZW9nL3RlbXBsYXRlCkBAIC0xLDIwICsxLDIw IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdlb2cnCiBwa2duYW1lPWVvZwotdmVyc2lvbj0zLjM2 LjEKK3ZlcnNpb249My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9oZWxwZXI9ImdpciIKIGJ1aWxk X3N0eWxlPW1lc29uCiBjb25maWd1cmVfYXJncz0iLURpbnRyb3NwZWN0aW9uPSQodm9wdF9pZiBn aXIgdHJ1ZSBmYWxzZSkiCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgZ2xpYi1kZXZlbCBpdHN0 b29sIHBrZy1jb25maWciCiBtYWtlZGVwZW5kcz0iZXhlbXBpLWRldmVsIGdub21lLWRlc2t0b3At ZGV2ZWwgbGliZXhpZi1kZXZlbCBsaWJwZWFzLWRldmVsCi0gbGlicnN2Zy1kZXZlbCBsY21zMi1k ZXZlbCIKKyBsaWJyc3ZnLWRldmVsIGxjbXMyLWRldmVsIGxpYnBvcnRhbC1kZXZlbCIKIGRlcGVu ZHM9ImRlc2t0b3AtZmlsZS11dGlscyBoaWNvbG9yLWljb24tdGhlbWUgc2hhcmVkLW1pbWUtaW5m byIKIHNob3J0X2Rlc2M9IkV5ZSBvZiBHTk9NRSBncmFwaGljcyB2aWV3ZXIgcHJvZ3JhbSIKIG1h aW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJH UEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9F eWVPZkdub21lIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L2VvZy8ke3ZlcnNpb24lLip9L2Vv Zy0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWU0NTRhMWE3YWE1ZTNhMzMyMWVhYjAxMTY3 NzgxMTBlNWE3YTdiNjNiY2YyMTY3NmVkYTFhN2JlMTg3YzljOTUKK2NoZWNrc3VtPWUxYTNhNDdj Mzg2ODhjZDUzOGRlZGE2MjdjMGVmZjExM2QwNWMzMTZiMWRkZTYyNDMxNTA0MzcyNTlkMmQ5NjMK IHNobGliX3Byb3ZpZGVzPSJsaWJlb2cuc28iCiBsaWIzMmRpc2FibGVkPXllcwogCgpGcm9tIDIz ODRmYWFmZmQ4MzIyNzI5YWViMDFlYmZjMDczMDM3Y2VjYjAwZjAgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBU aHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNzcvMTAyXSBl dmluY2U6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9ldmluY2UvdGVtcGxhdGUgfCAx NCArKysrKysrLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgNyBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2V2aW5jZS90ZW1wbGF0ZSBiL3NyY3BrZ3Mv ZXZpbmNlL3RlbXBsYXRlCmluZGV4IDQwMzVmMTVjNjkwLi4wZWI4MDc1MDI1MyAxMDA2NDQKLS0t IGEvc3JjcGtncy9ldmluY2UvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9ldmluY2UvdGVtcGxhdGUK QEAgLTEsMTMgKzEsMTMgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2V2aW5jZScKIHBrZ25hbWU9 ZXZpbmNlCi12ZXJzaW9uPTMuMzYuNwordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxk X2hlbHBlcj0iZ2lyIgotYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQotY29uZmlndXJlX2FyZ3M9 IiQodm9wdF9lbmFibGUgZ2lyIGludHJvc3BlY3Rpb24pIC0tZGlzYWJsZS1zY2hlbWFzLWNvbXBp bGUKLSAtLWVuYWJsZS1jb21pY3MgLS1kaXNhYmxlLXN0YXRpYyAtLWVuYWJsZS14cHMgLS1kaXNh YmxlLXQxbGliCi0gLS1kaXNhYmxlLWJyb3dzZXItcGx1Z2luIC0tZW5hYmxlLXBzIgotaG9zdG1h a2VkZXBlbmRzPSJhZHdhaXRhLWljb24tdGhlbWUgZ2V0dGV4dCBnbGliLWRldmVsIGdub21lLWRv Yy11dGlscworYnVpbGRfc3R5bGU9bWVzb24KK2NvbmZpZ3VyZV9hcmdzPSIkKHZvcHRfYm9vbCBn aXIgaW50cm9zcGVjdGlvbikKKyAtRGNvbWljcz1lbmFibGVkIC1EcHM9ZW5hYmxlZCAtRHhwcz1l bmFibGVkIC1EZHZpPWRpc2FibGVkCisgLUR0MWxpYj1kaXNhYmxlZCAtRGJyb3dzZXJfcGx1Z2lu PWZhbHNlIgoraG9zdG1ha2VkZXBlbmRzPSJhZHdhaXRhLWljb24tdGhlbWUgZ2V0dGV4dCBndGst ZG9jIGdsaWItZGV2ZWwgZ25vbWUtZG9jLXV0aWxzCiAgaXRzdG9vbCBwa2ctY29uZmlnIHBlcmwt WE1MLVBhcnNlciBhcHBzdHJlYW0tZ2xpYiIKICMgWFhYIG1pc3NpbmcgcGFja2FnZXMgZm9yIERW SSBiYWNrZW5kLgogbWFrZWRlcGVuZHM9ImFkd2FpdGEtaWNvbi10aGVtZSBkanZ1bGlicmUtZGV2 ZWwgZ25vbWUtZGVza3RvcC1kZXZlbCBsaWJTTS1kZXZlbApAQCAtMTksNyArMTksNyBAQCBtYWlu dGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BM LTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvRXZp bmNlIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8k e3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NjVkNjFhNDIzZTNmYmJlMDcw MDFmNjVlODc0MjJkZmI3ZDJlNDJiOWVkZjBjYTZhMWQ0MjdhZjlhMDRiOGYzMgorY2hlY2tzdW09 MjZkZjg5N2E0MTc1NDViNDc2ZDI2MDZiMTQ3MzExMjJlODQyNzhhZTk5NGJkNjRlYTUzNTQ0OWMz Y2YwMTk0OAogCiBidWlsZF9vcHRpb25zPSJnaXIiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9Imdp ciIKCkZyb20gOGMxNmMxZmU1MDMyMDY5OTE5MWFlNDU3MDlmMGFhMjAzMWE1ZThiMCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5v cmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENI IDA3OC8xMDJdIGZpbGUtcm9sbGVyOiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIHNyY3BrZ3MvZmls ZS1yb2xsZXIvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMo KyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9maWxlLXJvbGxlci90ZW1w bGF0ZSBiL3NyY3BrZ3MvZmlsZS1yb2xsZXIvdGVtcGxhdGUKaW5kZXggMDM2MjJhMjIzMTMuLmY4 NTZjMzI0MjI5IDEwMDY0NAotLS0gYS9zcmNwa2dzL2ZpbGUtcm9sbGVyL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvZmlsZS1yb2xsZXIvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdmaWxlLXJvbGxlcicKIHBrZ25hbWU9ZmlsZS1yb2xsZXIKLXZlcnNpb249My4z Ni4wCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGhvc3Rt YWtlZGVwZW5kcz0iZ2V0dGV4dCBnbGliLWRldmVsIGl0c3Rvb2wgcGtnLWNvbmZpZyIKQEAgLTEy LDYgKzEyLDYgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3Jn PiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdu b21lLm9yZy9BcHBzL0ZpbGVSb2xsZXIiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2du YW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1 bT1iOTE0NGRlOGY1MzZmNTgzZWMyOWQ3MDNjMmMxNzBiZjJkMDBjNmMxNjZjZDVlM2Y3ZWZhYmRh NTUxZjEwNDc4CitjaGVja3N1bT03MjNkMWM2ZTU2N2QzNWRhZDVlZWVhZWI4NmI4ZDE4NzA1NjU4 ZWU3M2UwYjNiOTdlYTE2YWRjN2E0ZGMzMzFhCiAKIENGTEFHUz0iLWZjb21tb24iCgpGcm9tIGM4 MWQ0YmQxNDYxNzFlYWE0ODk2YzE0N2Y5MjE0ZTM1YWQ5ODgzYTYgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBU aHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNzkvMTAyXSBn bm9tZS1jYWxlbmRhcjogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL2dub21lLWNhbGVu ZGFyL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAy IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtY2FsZW5kYXIvdGVtcGxh dGUgYi9zcmNwa2dzL2dub21lLWNhbGVuZGFyL3RlbXBsYXRlCmluZGV4IDljOTFjOGI1ZjRkLi5k M2M3NmI5N2YwZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1jYWxlbmRhci90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL2dub21lLWNhbGVuZGFyL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtY2FsZW5kYXInCiBwa2duYW1lPWdub21lLWNhbGVuZGFy Ci12ZXJzaW9uPTMuMzYuMgordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxl PW1lc29uCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgZ2xpYi1kZXZlbCBwa2ctY29uZmlnICQo dm9wdF9pZiBnaXIgJ2dvYmplY3QtaW50cm9zcGVjdGlvbicpIgpAQCAtMTMsNyArMTMsNyBAQCBs aWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5v cmcvQXBwcy9DYWxlbmRhciIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dO T01FL2dub21lLWNhbGVuZGFyL3Jhdy9tYXN0ZXIvTkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9T SVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54 eiIKLWNoZWNrc3VtPWQwYjA1MzQ1YzA1NTVhMDg1ZTZlNTQyNmVhYjQ5NDk0YWJhMjgyNmM4NTZl YjA2ZmQ3ZmRiNzYyZWMwYzRjMWYKK2NoZWNrc3VtPWMzNjg0MjUyYTcyYmI1OTA4OWQwNzE1MTQ0 NThhNGFlYmE0MTdmOTU1MWZmNWQ1NDhlMWE1OTg0ZTQ3YjQ3MzMKIAogYnVpbGRfb3B0aW9ucz0i Z2lyIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCgpGcm9tIDU4ZDg1NWZhZWMxZjNhM2Ix N2Y1ZTg4YTRkNzk1NGZkNmUwNmU0YjAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERh bmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBGcmksIDE0IEF1ZyAyMDIw IDE2OjUxOjU1ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwODAvMTAyXSBnbm9tZS1tdXNpYzogdXBk YXRlIHRvIDMuMzguMAoKLS0tCiBzcmNwa2dzL2dub21lLW11c2ljL3RlbXBsYXRlIHwgOSArKysr Ky0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1tdXNpYy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUt bXVzaWMvdGVtcGxhdGUKaW5kZXggMTI1MTE3MzY0MDcuLjg1YTc1NjEwNTllIDEwMDY0NAotLS0g YS9zcmNwa2dzL2dub21lLW11c2ljL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtbXVzaWMv dGVtcGxhdGUKQEAgLTEsMTkgKzEsMjAgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLW11 c2ljJwogcGtnbmFtZT1nbm9tZS1tdXNpYwotdmVyc2lvbj0zLjM2LjEKK3ZlcnNpb249My4zOC4w CiByZXZpc2lvbj0xCiBidWlsZF9oZWxwZXI9ImdpciIKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0 bWFrZWRlcGVuZHM9ImdldHRleHQgZ2xpYi1kZXZlbCBpdHN0b29sIHBrZy1jb25maWciCiBtYWtl ZGVwZW5kcz0iZ25vbWUtZGVza3RvcC1kZXZlbCBncmlsby1kZXZlbCBsaWJtZWRpYWFydC1kZXZl bAotIHB5dGhvbjMtZ29iamVjdC1kZXZlbCBweXRob24zLWRidXMgdHJhY2tlci1kZXZlbCBnbm9t ZS1vbmxpbmUtYWNjb3VudHMtZGV2ZWwKKyBweXRob24zLWdvYmplY3QtZGV2ZWwgcHl0aG9uMy1k YnVzIHRyYWNrZXIzLWRldmVsIGdub21lLW9ubGluZS1hY2NvdW50cy1kZXZlbAogIGxpYmRhenps ZS1kZXZlbCBncmlsby1wbHVnaW5zIHB5dGhvbjMtY2Fpcm8tZGV2ZWwiCiBkZXBlbmRzPSJkZXNr dG9wLWZpbGUtdXRpbHMgcHl0aG9uMy1kYnVzIHB5dGhvbjMtZ29iamVjdCBweXRob24zLXJlcXVl c3RzCi0gdHJhY2tlciB0cmFja2VyLW1pbmVycyBnc3QtcGx1Z2lucy1nb29kMSBncmlsby1wbHVn aW5zIGxpYmRhenpsZSIKKyB0cmFja2VyMyB0cmFja2VyMy1taW5lcnMgZ3N0LXBsdWdpbnMtZ29v ZDEgZ3JpbG8tcGx1Z2lucyBsaWJkYXp6bGUKKyBsaWJtZWRpYWFydCIKIHNob3J0X2Rlc2M9IkdO T01FIG11c2ljIHBsYXlpbmcgYXBwbGljYXRpb24iCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8 Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVw YWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvTXVzaWMiCiBkaXN0ZmlsZXM9IiR7R05P TUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50 YXIueHoiCi1jaGVja3N1bT03YjgwZjYzMGQxNTgzMzQ5MzVhODc2MDI5NjU1MGNjOTFiNTBkNjA0 ZmE2OGI0MDJmZTUxNjViMTUzMWVjMzMyCitjaGVja3N1bT0zNzBhYTk3ZWU0NjEwZDExYjRiOGY2 OTFlNWM5Y2UzMGZhNTU2NjU4NzBiZjZkNWYyMzE5NjU4YmRmYWNkNzA1CiBsaWIzMmRpc2FibGVk PXllcwoKRnJvbSA1OTVmZGRlZGM1ODBiMTEwZTNjNjVmNzhhZGM5MmFiOGJjOTg3ZjIxIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdl Lm9yZz4KRGF0ZTogU2F0LCAxNSBBdWcgMjAyMCAwMDoxNTo1MCArMDIwMApTdWJqZWN0OiBbUEFU Q0ggMDgxLzEwMl0gZ2VkaXQ6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogY29tbW9uL3NobGlicyAg ICAgICAgICB8ICAyICstCiBzcmNwa2dzL2dlZGl0L3RlbXBsYXRlIHwgMjEgKysrKysrKysrKy0t LS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4IGU2 OTg2YTgyNzI4Li5hNmE0MjE1NTZmNSAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9j b21tb24vc2hsaWJzCkBAIC0zNjgzLDcgKzM2ODMsNyBAQCBsaWJxaHR0cGVuZ2luZS5zby4xIHFo dHRwZW5naW5lLTEuMC4xXzEKIGxpYnFtZG5zZW5naW5lLnNvLjAgcW1kbnNlbmdpbmUtMC4xLjBf MQogbGlieWFuZy5zby4xIGxpYnlhbmctMS4wcjVfMQogbGliaHRwLnNvLjIgbGliaHRwLTAuNS4z MF8xCi1saWJnZWRpdC0zLjM2LnNvIGdlZGl0LTMuMzYuMV8xCitsaWJnZWRpdC0zLjM4LnNvIGdl ZGl0LTMuMzcuM18xCiBsaWJjaGV3aW5nLnNvLjMgbGliY2hld2luZy0wLjUuMV8xCiBsaWJkd2Fy dmVzLnNvLjEgcGFob2xlLTEuMTJfMQogbGliZHdhcnZlc19lbWl0LnNvLjEgcGFob2xlLTEuMTJf MQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nZWRpdC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ2VkaXQvdGVt cGxhdGUKaW5kZXggNGUyNzNhYWYxODIuLmRjMmRlOGI0YzQ4IDEwMDY0NAotLS0gYS9zcmNwa2dz L2dlZGl0L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ2VkaXQvdGVtcGxhdGUKQEAgLTEsMTQgKzEs MTQgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dlZGl0JwogcGtnbmFtZT1nZWRpdAotdmVyc2lv bj0zLjM2LjEKK3ZlcnNpb249My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9oZWxwZXI9ImdpciIK IGJ1aWxkX3N0eWxlPW1lc29uCiBweWNvbXBpbGVfZGlycz0idXNyL2xpYi9nZWRpdC9wbHVnaW5z IgotY29uZmlndXJlX2FyZ3M9Ii1EcGx1Z2lucz10cnVlIC1EdmFwaT0kKHZvcHRfaWYgdmFsYSB0 cnVlIGZhbHNlKQotIC1EaW50cm9zcGVjdGlvbj0kKHZvcHRfaWYgZ2lyIHRydWUgZmFsc2UpIgor Y29uZmlndXJlX2FyZ3M9Ii1EcGx1Z2lucz10cnVlCisgJCh2b3B0X2Jvb2wgZ2lyIHZhcGkpICQo dm9wdF9ib29sIGdpciBpbnRyb3NwZWN0aW9uKSIKIGhvc3RtYWtlZGVwZW5kcz0iaXRzdG9vbCBw a2ctY29uZmlnIGdsaWItZGV2ZWwgZ2RrLXBpeGJ1ZiBwZXJsIGdldHRleHQKLSAkKHZvcHRfaWYg dmFsYSB2YWxhKSIKKyAkKHZvcHRfaWYgZ2lyIHZhbGEpIgogbWFrZWRlcGVuZHM9ImdzZXR0aW5n cy1kZXNrdG9wLXNjaGVtYXMtZGV2ZWwgZ3NwZWxsLWRldmVsIGd0a3NvdXJjZXZpZXc0LWRldmVs CiAgbGlicGVhcy1kZXZlbCBsaWJzb3VwLWRldmVsIHRlcGwtZGV2ZWwgJCh2b3B0X2lmIGdpciAn cHl0aG9uMy1nb2JqZWN0LWRldmVsJykiCiBkZXBlbmRzPSJkZXNrdG9wLWZpbGUtdXRpbHMgZ3Nl dHRpbmdzLWRlc2t0b3Atc2NoZW1hcyBpc28tY29kZXMiCkBAIC0xNywyMyArMTcsMjIgQEAgbWFp bnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQ TC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0dl ZGl0IgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8k e3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NmRjMzhlZGEyMjdkMWMzNjhl MDM5ZTliZmY0ODVkMGJlZTlhNDlkNWY5NTYwYzM4N2VlMDhmNTgxOGE0ZTM4Nwotc2hsaWJfcHJv dmlkZXM9ImxpYmdlZGl0LTMuMzYuc28iCitjaGVja3N1bT00NmNmMDY4MDZkZTU4ZjZlNWU5NWUz NGZkOThhZDBiMmMwYzUwYjNkYWU2ZDIzY2E1N2QxNmQ1Y2M0MTg1NmY4CitzaGxpYl9wcm92aWRl cz0ibGliZ2VkaXQtMy4zOC5zbyIKIHB5dGhvbl92ZXJzaW9uPTMKIAotYnVpbGRfb3B0aW9ucz0i Z2lyIHZhbGEiCi1idWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciB2YWxhIgorYnVpbGRfb3B0aW9u cz0iZ2lyIgorYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCiAKIGdlZGl0LWRldmVsX3BhY2th Z2UoKSB7Ci0JZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IGd0 a3NvdXJjZXZpZXctZGV2ZWwgbGlicGVhcy1kZXZlbCIKKwlkZXBlbmRzPSIke3NvdXJjZXBrZ30+ PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gZ3Rrc291cmNldmlldzQtZGV2ZWwKKwkgbGlicGVhcy1k ZXZlbCB0ZXBsLWRldmVsIgogCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKIAlw a2dfaW5zdGFsbCgpIHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUKIAkJdm1vdmUgdXNyL2xpYi9wa2dj b25maWcKIAkJaWYgWyAiJGJ1aWxkX29wdGlvbl9naXIiIF07IHRoZW4KIAkJCXZtb3ZlIHVzci9z aGFyZS9nZWRpdC9naXItMS4wCi0JCWZpCi0JCWlmIFsgIiRidWlsZF9vcHRpb25fdmFsYSIgXTsg dGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKIAkJZmkKIAl9CgpGcm9tIDc5ZGY4OTliODM0 YzM3ODg2OTM4MDk0OWRiODEzMDk1YTI1ZDQ1ODEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTYXQsIDE1IEF1 ZyAyMDIwIDAwOjE4OjQ5ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwODIvMTAyXSBnZWRpdC1wbHVn aW5zOiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIHNyY3BrZ3MvZ2VkaXQtcGx1Z2lucy90ZW1wbGF0 ZSB8IDggKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nZWRpdC1wbHVnaW5zL3RlbXBsYXRlIGIvc3Jj cGtncy9nZWRpdC1wbHVnaW5zL3RlbXBsYXRlCmluZGV4IGYyZjk0ZTYzZjU5Li5iNzgzM2RiMTJk ZSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nZWRpdC1wbHVnaW5zL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3MvZ2VkaXQtcGx1Z2lucy90ZW1wbGF0ZQpAQCAtMSwxMSArMSwxMSBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAnZ2VkaXQtcGx1Z2lucycKIHBrZ25hbWU9Z2VkaXQtcGx1Z2lucwotdmVyc2lvbj0z LjM2LjIKK3ZlcnNpb249My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogcHlj b21waWxlX2RpcnM9InVzci9saWIvZ2VkaXQvcGx1Z2lucyIKLWhvc3RtYWtlZGVwZW5kcz0iZ2V0 dGV4dCBnbGliLWRldmVsIGl0c3Rvb2wgcGtnLWNvbmZpZyB2YWxhIGFwcHN0cmVhbS1nbGliIHB5 dGhvbjMtZ29iamVjdAotIGd1Y2hhcm1hcC1kZXZlbCB2dGUzLWRldmVsIgoraG9zdG1ha2VkZXBl bmRzPSJnZXR0ZXh0IGdsaWItZGV2ZWwgaXRzdG9vbCBwa2ctY29uZmlnIHZhbGEgYXBwc3RyZWFt LWdsaWIKKyBweXRob24zLWdvYmplY3QgZ3VjaGFybWFwLWRldmVsIHZ0ZTMtZGV2ZWwiCiBtYWtl ZGVwZW5kcz0iZ2VkaXQtZGV2ZWwgZ3Rrc291cmNldmlldzQtZGV2ZWwgZ3RrKzMtZGV2ZWwgbGli Z2l0Mi1nbGliLWRldmVsCiAgbGliZ2xpYi1kZXZlbCBsaWJwZWFzLWRldmVsIHB5dGhvbi1kYnVz LWRldmVsIHB5dGhvbjMtZGV2ZWwgemVpdGdlaXN0LWRldmVsIgogZGVwZW5kcz0icHl0aG9uMy1n b2JqZWN0IGd1Y2hhcm1hcCB2dGUzIgpAQCAtMTQsNSArMTQsNSBAQCBtYWludGFpbmVyPSJFbm5v IEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRl ciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL2FjdGlvbi9zaG93L0FwcHMvR2Vk aXQvUGx1Z2luc0xpc3RzIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2 ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09MTE1MWI5 NTUzOTNmNzViNWVlNTliNTExNTRmZGE0ZjE5MjhmNDk4ZmU5ODZhNTU4NGQzY2Q0NDA4NzZhNmFm NgorY2hlY2tzdW09YmRhMmJkNWFkN2ViZGQ1MzVkMWNjNmM4NzAwYzI5NWRlYzY0YjIyN2M5MTcz YzBkMmJhZTAwNjc1MTYyNTlmYgogcHl0aG9uX3ZlcnNpb249MwoKRnJvbSA1ZjQ5ZjM2Y2FhNmU5 NDgzOWU1NTE5ZDMxYzQwM2I4MzA5ZGI2MWI3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU2F0LCAxNSBBdWcg MjAyMCAwMDozMzo0OSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDgzLzEwMl0gZ25vbWUtbGF0ZXg6 IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9nbm9tZS1sYXRleC90ZW1wbGF0ZSB8IDYg KysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtbGF0ZXgvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21l LWxhdGV4L3RlbXBsYXRlCmluZGV4IDkwZDYwYmU4NjBhLi44M2ExNmY5ZDRhMiAxMDA2NDQKLS0t IGEvc3JjcGtncy9nbm9tZS1sYXRleC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWxhdGV4 L3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtbGF0 ZXgnCiBwa2duYW1lPWdub21lLWxhdGV4Ci12ZXJzaW9uPTMuMzIuMAotcmV2aXNpb249MgordmVy c2lvbj0zLjM4LjAKK3JldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9 Z251LWNvbmZpZ3VyZQogY29uZmlndXJlX2FyZ3M9Ii0tZGlzYWJsZS1hcHBzdHJlYW0tdXRpbCAt LWRpc2FibGUtZGNvbmYtbWlncmF0aW9uCkBAIC0xNSw3ICsxNSw3IEBAIG1haW50YWluZXI9IkVu bm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMy4wLW9yLWxh dGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9HTk9NRS1MYVRlWCIK IGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2du YW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTBmMDY5YzdiNGM2NzU0MjU1YTFjN2Uz ZTNiMDUwOTI1ZDgwNzZmNTU0NTg1MjZhMzBhYjU5ZTBhN2Q1MmFjYzkKK2NoZWNrc3VtPWE4MmE5 ZmM2ZjA1NjkyOWVhMThkNmRmZmQxMjFlNzFiMmMyMTc2ODgwOGM4NmVmMWYzNGRhMGY4NmUyMjBk NzcKIAogYnVpbGRfb3B0aW9ucz0iZ2lyIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCgpG cm9tIGFjYWI1ZDBjYTA2ODkzNjdmMjFiMjA1MGZmODcwMzFkMzlkNDYwYjQgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpE YXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDA0OjIzOjMzICswMjAwClN1YmplY3Q6IFtQQVRDSCAwODQv MTAyXSBiYW9iYWI6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtncy9iYW9iYWIvdGVtcGxh dGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9iYW9iYWIvdGVtcGxhdGUgYi9zcmNwa2dzL2Jhb2Jh Yi90ZW1wbGF0ZQppbmRleCBhMDI4YmU0Y2Q1Yi4uODgyMTU1MzU2YTQgMTAwNjQ0Ci0tLSBhL3Ny Y3BrZ3MvYmFvYmFiL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvYmFvYmFiL3RlbXBsYXRlCkBAIC0x LDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnYmFvYmFiJwogcGtnbmFtZT1iYW9iYWIK LXZlcnNpb249My4zNC4xCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9 bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBwa2ctY29uZmlnIGl0c3Rvb2wgZ2xpYi1k ZXZlbCB2YWxhIgpAQCAtMTEsNCArMTEsNCBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290 dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgR0ZETC0xLjEt b3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9hY3Rpb24vc2hvdy9B cHBzL0Rpc2tVc2FnZUFuYWx5emVyIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFt ZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09 N2Y5ODFkNGYxMzVlNGY4MGZiYTNmNjZlODZiMGVlZWRjOTRhMjQzNDY0OTI2MmZmMDFhNWYwY2Iw MjdiMjBjNQorY2hlY2tzdW09MDQ4NDY4MTQ3ODYwODE2Yjk3ZjE1ZDUwYjNjODRlOWFjZjA1Mzlj MTQ0MWNmZWI2MzcwM2QxMTJlODcyODMyOQoKRnJvbSBiZjdlMmVjYjA3MjNiNzI3MDI0ZTA3OWNl ZTY1NzY0OGM2OTRlYTRhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29s ZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAwNDozMTo1 MyArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDg1LzEwMl0gZ25vbWUtYm94ZXM6IHVwZGF0ZSB0byAz LjM4LjAKCi0tLQogc3JjcGtncy9nbm9tZS1ib3hlcy90ZW1wbGF0ZSB8IDcgKysrKy0tLQogMSBm aWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmNwa2dzL2dub21lLWJveGVzL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1ib3hlcy90ZW1w bGF0ZQppbmRleCAwZmEyYWU3NmM3Mi4uZTUxZDJkMTlhNWQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv Z25vbWUtYm94ZXMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1ib3hlcy90ZW1wbGF0ZQpA QCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWJveGVzJwogcGtnbmFt ZT1nbm9tZS1ib3hlcwotdmVyc2lvbj0zLjM2LjUKK3ZlcnNpb249My4zOC4wCiByZXZpc2lvbj0x CiBidWlsZF9oZWxwZXI9ImdpciIKIGJ1aWxkX3N0eWxlPW1lc29uCkBAIC04LDcgKzgsOCBAQCBo b3N0bWFrZWRlcGVuZHM9ImdldHRleHQgaXRzdG9vbCBwa2ctY29uZmlnIHZhbGEgZ2xpYi1kZXZl bCIKIG1ha2VkZXBlbmRzPSJjbHV0dGVyLWd0ay1kZXZlbCBmcmVlcmRwLWRldmVsIGd0ay12bmMt ZGV2ZWwgbGliYXJjaGl2ZS1kZXZlbAogIGxpYmdsaWItZGV2ZWwgbGliZ3VkZXYtZGV2ZWwgbGli b3NpbmZvLWRldmVsIGxpYnNlY3JldC1kZXZlbCBsaWJzb3VwLWRldmVsCiAgbGlidXNiLWRldmVs IGxpYnZpcnQtZ2xpYi1kZXZlbCBsaWJ4bWwyLWRldmVsIHNwaWNlLWd0ay1kZXZlbCBzcGljZS1w cm90b2NvbAotIHRyYWNrZXItZGV2ZWwgdmFsYS1kZXZlbCB3ZWJraXQyZ3RrLWRldmVsIHZ0ZTMt ZGV2ZWwiCisgdHJhY2tlci1kZXZlbCB2YWxhLWRldmVsIHdlYmtpdDJndGstZGV2ZWwgdnRlMy1k ZXZlbCBndGtzb3VyY2V2aWV3NC1kZXZlbAorIGxpYmhhbmR5LWRldmVsIgogZGVwZW5kcz0iZGVz a3RvcC1maWxlLXV0aWxzIGhpY29sb3ItaWNvbi10aGVtZSBsaWJvc2luZm8gbGlidmlydC1nbGli IHFlbXUgdHJhY2tlciIKIHNob3J0X2Rlc2M9IkdOT01FIDMgYXBwbGljYXRpb24gdG8gYWNjZXNz IHJlbW90ZSBvciB2aXJ0dWFsIHN5c3RlbXMiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290 dG94QHZvaWRsaW51eC5vcmc+IgpAQCAtMTYsNCArMTcsNCBAQCBsaWNlbnNlPSJMR1BMLTIuMC1v ci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvQm94ZXMiCiBj aGFuZ2Vsb2c9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9HTk9NRS9nbm9tZS1i b3hlcy9nbm9tZS0zLTM2L05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1l fS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT00 YzU0Y2FiZTM1NWU4NzhkMDQ1NzUxNzM0NmU0MjQ3YTg2MGI2ODgzNDEzZDNiZjc3NjgxZGNkMTFl ZjQxYmNlCitjaGVja3N1bT02OTZiNTk5ZmMyMWFmOTQxOTc1Njc5MjA1ZjJiMTI5Y2ZmYTAzNjMy YzQ0NDgxMGRkOTRiMTQwOWQwNDFhMzhiCgpGcm9tIGY2ZDY1OWQ2MTg2YjYxMTY3YmIyYjBiM2Vm ZTYxZmYzOGY1OTJiYzIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xl c2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDA0OjM1OjI0 ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwODYvMTAyXSBnbm9tZS1jYWxjdWxhdG9yOiB1cGRhdGUg dG8gMy4zOC4wCgotLS0KIHNyY3BrZ3MvZ25vbWUtY2FsY3VsYXRvci90ZW1wbGF0ZSB8IDYgKysr LS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtY2FsY3VsYXRvci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25v bWUtY2FsY3VsYXRvci90ZW1wbGF0ZQppbmRleCAwNjIxNGIwOGQ5Yi4uZGU4MWU0ODk2OWUgMTAw NjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtY2FsY3VsYXRvci90ZW1wbGF0ZQorKysgYi9zcmNwa2dz L2dub21lLWNhbGN1bGF0b3IvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdnbm9tZS1jYWxjdWxhdG9yJwogcGtnbmFtZT1nbm9tZS1jYWxjdWxhdG9yCi12ZXJz aW9uPTMuMzYuMAotcmV2aXNpb249MgordmVyc2lvbj0zLjM4LjAKK3JldmlzaW9uPTEKIGJ1aWxk X3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKIGhvc3RtYWtlZGVwZW5kcz0iY21ha2Ug Z2V0dGV4dCBnbGliLWRldmVsIGl0c3Rvb2wgcGtnLWNvbmZpZyB2YWxhIgpAQCAtMTQsNCArMTQs NCBAQCBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5n bm9tZS5vcmcvQXBwcy9DYWxjdWxhdG9yIgogY2hhbmdlbG9nPSJodHRwczovL3Jhdy5naXRodWJ1 c2VyY29udGVudC5jb20vR05PTUUvZ25vbWUtY2FsY3VsYXRvci9nbm9tZS0zLTMyL05FV1MiCiBk aXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFt ZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1hMmU4MzBmOWM5ODU2ZmFkNjVkYWQxZDZj MGFlNmFiYWQwZjBiNDk2Yzk5ODRhYzAwNTMxNWM1Y2M0MjIwZGIzCitjaGVja3N1bT05MDJlMjNm ZjU1MDY5MmIwMjQ1OWUxNGQ2ZWJiYThiNjcwNjYzYTlmNGFmMGQ5OGVlNTJmYWRlYTg5NWI1N2Zl CgpGcm9tIDdhNDZkZWM3NmNlOTAyODA5NjRjNmUxY2MyMjQxNDk2ZjVjMmQyMTUgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3Jn PgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDA0OjQ0OjU4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAw ODcvMTAyXSBnbm9tZS1kaXNrLXV0aWxpdHk6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogc3JjcGtn cy9nbm9tZS1kaXNrLXV0aWxpdHkvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQs IDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2du b21lLWRpc2stdXRpbGl0eS90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtZGlzay11dGlsaXR5L3Rl bXBsYXRlCmluZGV4IGRjNjdiYmJhNzg1Li42ZWY3YmU2MTAzZSAxMDA2NDQKLS0tIGEvc3JjcGtn cy9nbm9tZS1kaXNrLXV0aWxpdHkvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1kaXNrLXV0 aWxpdHkvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9t ZS1kaXNrLXV0aWxpdHknCiBwa2duYW1lPWdub21lLWRpc2stdXRpbGl0eQotdmVyc2lvbj0zLjM2 LjEKLXJldmlzaW9uPTIKK3ZlcnNpb249My4zOC4wCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1t ZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1EbG9naW5kPW5vbmUiCiBob3N0bWFrZWRlcGVuZHM9Imds aWItZGV2ZWwgZ3RrLWRvYyBpbnRsdG9vbCBwa2ctY29uZmlnIGxpYnhzbHQiCkBAIC0xMyw1ICsx Myw1IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBs aWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5v cmcvQXBwcy9EaXNrcyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVy c2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTc5MWIxOGYy MzFiY2JjNmQ5NDFhZjM4MzdjYTViZTE0ZjIxNTdlNWNlM2QzMmJkYzViOWViODk0N2UxMmI0MTQK K2NoZWNrc3VtPTc3MzRjZTY2OGQ5ZWMzMTI4NmFiZDc5NDRmOTUxOTAyMTAyODhmYmM1NDcwNGYw NWJjNTVjYmQwMzQwYjUyMjMKIGxpYjMyZGlzYWJsZWQ9eWVzCgpGcm9tIDEyNDg3OTdmMGEzM2Fl ZGNlNTY2YWU0ZjM2ZWY2NTZhMTNjMTVlYzIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAy MDIwIDA0OjQ5OjI2ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwODgvMTAyXSBnbm9tZS1zY3JlZW5z aG90OiB1cGRhdGUgdG8gMy4zOC4wCgotLS0KIHNyY3BrZ3MvZ25vbWUtc2NyZWVuc2hvdC90ZW1w bGF0ZSB8IDggKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1zY3JlZW5zaG90L3RlbXBsYXRl IGIvc3JjcGtncy9nbm9tZS1zY3JlZW5zaG90L3RlbXBsYXRlCmluZGV4IDk5Y2FiNjJlZWUxLi5h Mzk0ODNiYzQzNyAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1zY3JlZW5zaG90L3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvZ25vbWUtc2NyZWVuc2hvdC90ZW1wbGF0ZQpAQCAtMSwxNCArMSwxNCBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtc2NyZWVuc2hvdCcKIHBrZ25hbWU9Z25vbWUt c2NyZWVuc2hvdAotdmVyc2lvbj0zLjM2LjAKLXJldmlzaW9uPTIKK3ZlcnNpb249My4zOC4wCity ZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJhcHBkYXRhLXRv b2xzIGdldHRleHQgZ2xpYi1kZXZlbCBpdHN0b29sIHBrZy1jb25maWciCi1tYWtlZGVwZW5kcz0i bGliY2FuYmVycmEtZGV2ZWwiCittYWtlZGVwZW5kcz0ibGliY2FuYmVycmEtZGV2ZWwgbGliaGFu ZHkxLWRldmVsIgogZGVwZW5kcz0iZGVza3RvcC1maWxlLXV0aWxzIgogc2hvcnRfZGVzYz0iU2Ny ZWVuc2hvdCBjYXB0dXJlIHV0aWxpdHkgZm9yIEdOT01FIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xh bmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBo b21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNjcmVlbnNob3Qi CiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtn bmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0zMzQ5NWQ4OTI3MDcxNzkyNTRiNzQz ZjhmNzBjOWE4MmNkZTVjNWYyYzdlYTNkYjYzNGEyYmE3ZWE3MzMxMjY2CitjaGVja3N1bT1lNTU2 ZDNkZDEzNGQ5MTM0NGQyODU3YzA2NjQzNGJmYjY0ZjdjODViZGVjN2JjMzM3MzkzNjZiOWJjZDI5 ZmMwCgpGcm9tIDUzMTRlYzA1Y2FmNTNlOTI3ZTBmNzk2MmJkYmYyZjBmZTM4ZGUyYTQgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uu b3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDA0OjUxOjAwICswMjAwClN1YmplY3Q6IFtQQVRD SCAwODkvMTAyXSBnbm9tZS1zeXN0ZW0tbW9uaXRvcjogdXBkYXRlIHRvIDMuMzguMAoKLS0tCiBz cmNwa2dzL2dub21lLXN5c3RlbS1tb25pdG9yL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hh bmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvZ25vbWUtc3lzdGVtLW1vbml0b3IvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLXN5c3RlbS1t b25pdG9yL3RlbXBsYXRlCmluZGV4IGZmMTFiMzU5MGE0Li41MDYwMzY2ODdjNCAxMDA2NDQKLS0t IGEvc3JjcGtncy9nbm9tZS1zeXN0ZW0tbW9uaXRvci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2du b21lLXN5c3RlbS1tb25pdG9yL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAnZ25vbWUtc3lzdGVtLW1vbml0b3InCiBwa2duYW1lPWdub21lLXN5c3RlbS1tb25p dG9yCi12ZXJzaW9uPTMuMzYuMQordmVyc2lvbj0zLjM4LjAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0 eWxlPW1lc29uCiBjb25maWd1cmVfYXJncz0iLURzeXN0ZW1kPWZhbHNlIgpAQCAtMTEsNCArMTEs NCBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGlj ZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3Jn L0FwcHMvU3lzdGVtTW9uaXRvciIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9 LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTg2 NmI0N2FiMGY0Yzc1YjBlYzU3ZDYzMDAzMzdhNzM3MzQ2M2FhYWQ1ZGY5NWVkZGZlNTM1NGMyMmJl N2JjYTEKK2NoZWNrc3VtPTczYmY3YWI0ZDU1MDNjMjU2N2Q3NmY4MzFjOWFlM2ZlMjdjMzE0OTU3 NjE4ODlhZDNiMzUxZWY0YzA2OGFmZjQKCkZyb20gOWIxYWIyNWEzNWVmNGNiZDcwMzFlYmI3MmRi OWJiOTYxYzI4ODU4NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVz YSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMTg6MjQ6MDIg KzAyMDAKU3ViamVjdDogW1BBVENIIDA5MC8xMDJdIGFkd2FpdGEtaWNvbi10aGVtZTogdXBkYXRl IHRvIDMuMzguMCwgZHJvcCBub2FyY2gKCi0tLQogc3JjcGtncy9hZHdhaXRhLWljb24tdGhlbWUv dGVtcGxhdGUgfCA3ICsrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDQg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9hZHdhaXRhLWljb24tdGhlbWUvdGVt cGxhdGUgYi9zcmNwa2dzL2Fkd2FpdGEtaWNvbi10aGVtZS90ZW1wbGF0ZQppbmRleCBmZWJkMjkx NWJlNi4uOGRkY2RlOWI3ODcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYWR3YWl0YS1pY29uLXRoZW1l L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvYWR3YWl0YS1pY29uLXRoZW1lL3RlbXBsYXRlCkBAIC0x LDggKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnYWR3YWl0YS1pY29uLXRoZW1lJwogcGtn bmFtZT1hZHdhaXRhLWljb24tdGhlbWUKLXZlcnNpb249My4zNi4xCi1yZXZpc2lvbj0yCi1hcmNo cz1ub2FyY2gKK3ZlcnNpb249My4zOC4wCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1nbnUtY29u ZmlndXJlCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWciCiBkZXBlbmRzPSJsaWJyc3ZnIgpA QCAtMTEsNCArMTAsNCBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51 eC5vcmc+IgogbGljZW5zZT0iTEdQTC0zLjAtb3ItbGF0ZXIsIENDLUJZLVNBLTMuMCIKIGhvbWVw YWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvYWR3YWl0YS1pY29uLXRoZW1lIgog ZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25h bWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZTQ5ODUxODYyNzA0NGRmZDdkYjdkNzlh NWIzZDQzNzg0OGNhZjE5OTFlZjRlZjAzNmEyZDNhMmFjMmMxZjE0ZAorY2hlY2tzdW09NjY4M2Ex YWFmMjQzMGNjZDllYTYzOGRkNGJmZTEwMDJiYzkyYjQxMjA1MGMzZGJhMjBlNDgwZjk3OWZhYWY5 NwoKRnJvbSAxMzNiMjQwZjMyZWM5OGYwNDY3Njk5MGI1NGEwZDk3MjExZGFhY2Y0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9y Zz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAxOTo1Nzo0MyArMDIwMApTdWJqZWN0OiBbUEFUQ0gg MDkxLzEwMl0gZ25vbWUtYmFja2dyb3VuZHM6IHVwZGF0ZSB0byAzLjM4LjAsIGRyb3Agbm9hcmNo CgotLS0KIHNyY3BrZ3MvZ25vbWUtYmFja2dyb3VuZHMvdGVtcGxhdGUgfCA3ICsrKy0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9nbm9tZS1iYWNrZ3JvdW5kcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtYmFj a2dyb3VuZHMvdGVtcGxhdGUKaW5kZXggMGIxZWU0MjczNTMuLjBmYWMwYmIzYmVlIDEwMDY0NAot LS0gYS9zcmNwa2dzL2dub21lLWJhY2tncm91bmRzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25v bWUtYmFja2dyb3VuZHMvdGVtcGxhdGUKQEAgLTEsOCArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICdnbm9tZS1iYWNrZ3JvdW5kcycKIHBrZ25hbWU9Z25vbWUtYmFja2dyb3VuZHMKLXZlcnNp b249My4zNi4wCi1yZXZpc2lvbj0yCi1hcmNocz1ub2FyY2gKK3ZlcnNpb249My4zOC4wCityZXZp c2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPWdldHRleHQKIHNob3J0 X2Rlc2M9IlNldCBvZiBiYWNrZ3JvdW5kIGltYWdlcyBmb3IgdGhlIEdOT01FIERlc2t0b3AiCkBA IC0xMCw0ICs5LDQgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgu b3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIENDLUJZLTIuMCwgQ0MtQlktU0EtMi4w LCBDQy1CWS1TQS0zLjAiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01F L2dub21lLWJhY2tncm91bmRzIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0v JHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09Yjhj YjgxZTRjZjlkMDg1ZmJiMjM1NDA2MzViNDkyZDVjMTI0YTFmODYxMWMyYWE5YWM2Mzg0MTExZDc3 YmIwYgorY2hlY2tzdW09Zjc3MTJhODczYTgwYzlhOWZjZjM5NTI2MTFlZmZlYjJkOWFlZDIzYTNl OGFiZmNkYThhZmIxNWM0MjdkMWVlMwoKRnJvbSBmODA0OGZhNTMxNTYyZWE3YjBiZTM2OWVjZWVi NTc0OTU1OGU1ZGYyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNh IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAyMToyMzoyNCAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggMDkyLzEwMl0gc2ltcGxlLXNjYW46IHVwZGF0ZSB0byAzLjM4 LjAKCi0tLQogc3JjcGtncy9zaW1wbGUtc2Nhbi90ZW1wbGF0ZSB8IDcgKysrLS0tLQogMSBmaWxl IGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmNwa2dzL3NpbXBsZS1zY2FuL3RlbXBsYXRlIGIvc3JjcGtncy9zaW1wbGUtc2Nhbi90ZW1wbGF0 ZQppbmRleCA0YWUzYjg2NDNmZC4uYzYxN2M5ZjE1ZDMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvc2lt cGxlLXNjYW4vdGVtcGxhdGUKKysrIGIvc3JjcGtncy9zaW1wbGUtc2Nhbi90ZW1wbGF0ZQpAQCAt MSw3ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3NpbXBsZS1zY2FuJwogcGtnbmFtZT1z aW1wbGUtc2NhbgotX2dub21lX3ZlcnNpb249My4zNgotdmVyc2lvbj0zLjM2LjQKK3ZlcnNpb249 My4zOC4wCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJn ZXR0ZXh0IGdsaWItZGV2ZWwgaXRzdG9vbCBwa2ctY29uZmlnIHZhbGEiCkBAIC0xMSw1ICsxMCw1 IEBAIHNob3J0X2Rlc2M9IkdUSyBTaW1wbGUgc2Nhbm5pbmcgdXRpbGl0eSIKIG1haW50YWluZXI9 IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMy4wLW9y LWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9zaW1wbGUt c2NhbiIKLWRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7X2dub21lX3ZlcnNp b259LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT01NmFmMTgyOTFhNzc2 M2Y3NjNkYTVmMGVkZWQyNDdkMmY4ZWJmOTExMmMyODZlZjg5MDEzMzc0OTY5ZmVmNTI1CitkaXN0 ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0t JHt2ZXJzaW9ufS50YXIueHoiCitjaGVja3N1bT00MzU2YWZmZDAzNWYwMWE1N2IxODIxOTllZmZk OTgwODcwMGVmY2NiNDk4YmRjODM2N2JmMDliY2U0MDRjMzExCgpGcm9tIGY4ODA2M2YyZGM1NjE3 NjNmMjMyYTUyZDc3MTZhZjQ0OWViMGU0NmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAy MDIwIDIxOjIwOjU4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwOTMvMTAyXSByeWdlbDogdXBkYXRl IHRvIDAuNDAuMAoKLS0tCiBzcmNwa2dzL3J5Z2VsL3RlbXBsYXRlIHwgMTAgKysrKystLS0tLQog MSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmNwa2dzL3J5Z2VsL3RlbXBsYXRlIGIvc3JjcGtncy9yeWdlbC90ZW1wbGF0ZQppbmRl eCBkMjhkYmMyY2UwOC4uNjUxNDk3NTFmNWEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcnlnZWwvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9yeWdlbC90ZW1wbGF0ZQpAQCAtMSwyMiArMSwyMiBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAncnlnZWwnCiBwa2duYW1lPXJ5Z2VsCi12ZXJzaW9uPTAuMzguMwot cmV2aXNpb249MgordmVyc2lvbj0wLjQwLjAKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29u CiBidWlsZF9oZWxwZXI9ImdpciIKIGNvbmZpZ3VyZV9hcmdzPSItRGV4YW1wbGVzPWZhbHNlIC1E dGVzdHM9ZmFsc2UKICAtRHN5c3RlbWQtdXNlci11bml0cy1kaXI9bm9uZSIKIGhvc3RtYWtlZGVw ZW5kcz0icGtnLWNvbmZpZyBnbGliLWRldmVsIHZhbGEiCiBtYWtlZGVwZW5kcz0ic3FsaXRlLWRl dmVsIGd0ayszLWRldmVsIGxpYnNvdXAtZGV2ZWwgbGliZ2VlMDgtZGV2ZWwKLSBndXBucC1hdi1k ZXZlbCBndXBucC1kbG5hLWRldmVsIHRyYWNrZXItZGV2ZWwgbGlibWVkaWFhcnQtZGV2ZWwKLSBn c3NkcC1kZXZlbCIKKyBndXBucC1hdi1kZXZlbCBndXBucC1kbG5hLWRldmVsIHRyYWNrZXItZGV2 ZWwgdHJhY2tlcjMtZGV2ZWwKKyBsaWJtZWRpYWFydC1kZXZlbCBnc3NkcC1kZXZlbCBnc3QxLWVk aXRpbmctc2VydmljZXMtZGV2ZWwiCiBkZXBlbmRzPSJoaWNvbG9yLWljb24tdGhlbWUgZGVza3Rv cC1maWxlLXV0aWxzIgogc2hvcnRfZGVzYz0iR05PTUUgaG9tZSBtZWRpYSBzb2x1dGlvbiIKIG1h aW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BM LTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3Rz L1J5Z2VsIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4q fS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09MDhjMjFhNTc3ZjdiZGFk MjY0NDZhNzVmZmEzMjc3OGIyNjg0MmMzYjExODgxNjVmMGIxOTgxODU1OTc0N2QwMAorY2hlY2tz dW09ZDY3ZWNjODM0ZWQwNjAzMzdlOGZhYjhjYjU1YTRmM2QwYzBjY2U0NDU3ZTBjZDMwNzkwM2Ey NTM5ZjZlMmI3NwogCiBjb25mX2ZpbGVzPSIvZXRjL3J5Z2VsLmNvbmYiCiAKCkZyb20gYTA1OTA4 ZTEzOTE4Mjg2MThkNTc2YTA4NDljNGFlNTE1YTM2ZTI3ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwg MTYgQXVnIDIwMjAgMDU6MjM6MzggKzAyMDAKU3ViamVjdDogW1BBVENIIDA5NC8xMDJdIGdub21l LWJ1aWxkZXI6IHVwZGF0ZSB0byAzLjM4LjAKCi0tLQogLi4uL2dub21lLWJ1aWxkZXIvcGF0Y2hl cy9saWJnaXQyLTEuMC4wLnBhdGNoIHwgIDIyIC0tCiBzcmNwa2dzL2dub21lLWJ1aWxkZXIvcGF0 Y2hlcy9tZXNvbjA1Mi5wYXRjaCAgfCAzMzQgLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmNwa2dzL2du b21lLWJ1aWxkZXIvdGVtcGxhdGUgICAgICAgICAgICAgICAgfCAgMTUgKy0KIDMgZmlsZXMgY2hh bmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgMzYxIGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvZ25vbWUtYnVpbGRlci9wYXRjaGVzL2xpYmdpdDItMS4wLjAucGF0Y2gKIGRl bGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2dub21lLWJ1aWxkZXIvcGF0Y2hlcy9tZXNvbjA1Mi5w YXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtYnVpbGRlci9wYXRjaGVzL2xpYmdpdDIt MS4wLjAucGF0Y2ggYi9zcmNwa2dzL2dub21lLWJ1aWxkZXIvcGF0Y2hlcy9saWJnaXQyLTEuMC4w LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YjliNGEyYmYxYS4uMDAwMDAw MDAwMDAKLS0tIGEvc3JjcGtncy9nbm9tZS1idWlsZGVyL3BhdGNoZXMvbGliZ2l0Mi0xLjAuMC5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLWNvbW1pdCA0NDEzNmEyZTVjNTI2 MjNiMGU2MmMzODg0NmY1MTFmMzA3NjE1Y2UyCi1BdXRob3I6IHE2NiA8ZGFuaWVsQG9jdGFmb3Jn ZS5vcmc+Ci1EYXRlOiAgIFN1biBNYXkgMyAxOTo1MjowOSAyMDIwICswMjAwCi0KLSAgICBmaXgg YnVpbGQgd2l0aCBsaWJnaXQyLTEuMC4wCi0KLWRpZmYgLS1naXQgYS9zcmMvcGx1Z2lucy9naXQv ZGFlbW9uL2lwYy1naXQtcmVwb3NpdG9yeS1pbXBsLmMgYi9zcmMvcGx1Z2lucy9naXQvZGFlbW9u L2lwYy1naXQtcmVwb3NpdG9yeS1pbXBsLmMKLWluZGV4IDdmMDEwNDIuLjJjY2M0ZGYgMTAwNjQ0 Ci0tLS0gYS9zcmMvcGx1Z2lucy9naXQvZGFlbW9uL2lwYy1naXQtcmVwb3NpdG9yeS1pbXBsLmMK LSsrKyBiL3NyYy9wbHVnaW5zL2dpdC9kYWVtb24vaXBjLWdpdC1yZXBvc2l0b3J5LWltcGwuYwot QEAgLTMzLDExICszMyw3IEBACi0gI2luY2x1ZGUgImlwYy1naXQtdHlwZXMuaCIKLSAjaW5jbHVk ZSAiaXBjLWdpdC11dGlsLmgiCi0gCi0tI2lmIExJQkdJVDJfU09WRVJTSU9OID49IDI4Ci0gR19E RUZJTkVfQVVUT19DTEVBTlVQX0NMRUFSX0ZVTkMgKGdpdF9idWYsIGdpdF9idWZfZGlzcG9zZSkK LS0jZWxzZQotLUdfREVGSU5FX0FVVE9fQ0xFQU5VUF9DTEVBUl9GVU5DIChnaXRfYnVmLCBnaXRf YnVmX2ZyZWUpCi0tI2VuZGlmCi0gCi0gdHlwZWRlZiBlbnVtCi0gewpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9nbm9tZS1idWlsZGVyL3BhdGNoZXMvbWVzb24wNTIucGF0Y2ggYi9zcmNwa2dzL2dub21l LWJ1aWxkZXIvcGF0Y2hlcy9tZXNvbjA1Mi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggNjhjMjhlODJjMWUuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZ25vbWUtYnVpbGRl ci9wYXRjaGVzL21lc29uMDUyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzM0ICswLDAgQEAK LUZyb20gYzhiODYyYjQ5MWNmYmJiNGY3OWIyNGQ3Y2Q5MGU0ZmIxZjM3Y2I5ZiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKLUZyb206IERpZWdvIEVzY2FsYW50ZSBVcnJlbG8gPGRpZWdvZUBnbm9t ZS5vcmc+Ci1EYXRlOiBGcmksIDI1IE9jdCAyMDE5IDA0OjQ5OjE1IC0wNTAwCi1TdWJqZWN0OiBb UEFUQ0hdIFdJUDogYnVpbGQ6IEZpeCBsaW5rX3dob2xlIHVzYWdlIGZvciBtZXNvbiAwLjUyLjAK LQotTWVzb24gMC41Mi4wIGNoYW5nZWQgaG93IGxpbmtfd2hvbGUgYmVoYXZlcyBhbmQgaW4gZG9p bmcgc28gYnJva2Ugb3VyCi11c2FnZSBvZiBsaW5rX3dob2xlIGludGVybmFsbHkuCi0KLUEgcXVp Y2sgZ2xhbmNlIG92ZXIgbWVzb25idWlsZC9iYWNrZW5kL25pbmphYmFja2VuZC5weSBzZWVtcyB0 byBjb25maXJtCi1DaHJpc3RpYW4ncyBzdXNwaWNpb24gdGhhdCBsaW5rX3dpdGggaXMgd2hhdCB3 ZSB3YW50IGZvciBpbnRlcm5hbCB1c2UsCi1hbmQgbGlua193aG9sZSBmb3IgdGhlIGZpbmFsIGJp bmFyeS4KLQotWW91IGNhbiBzZWUgc29tZSBtb3JlIHJlZmVyZW5jZXMgdG8gdGhpcyBhbmQgc2lt aWxhciBpc3N1ZXMgaW4gdGhlCi1mb2xsb3dpbmcgamhidWlsZCBjb21taXQ6Ci1odHRwczovL2dp dGxhYi5nbm9tZS5vcmcvR05PTUUvamhidWlsZC9jb21taXQvZGJlNjc5MDQ1ZmY1OTgyNTc3ZjIy ZTdhZjhkYzhmZGZiZDFjNjMxMQotCi1GaXhlczogaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dO T01FL2dub21lLWJ1aWxkZXIvaXNzdWVzLzEwNTcKLS0tLQotIHNyYy9saWJpZGUvY29kZS9tZXNv bi5idWlsZCAgICAgICB8ICAyICstCi0gc3JjL2xpYmlkZS9jb3JlL21lc29uLmJ1aWxkICAgICAg IHwgIDIgKy0KLSBzcmMvbGliaWRlL2RlYnVnZ2VyL21lc29uLmJ1aWxkICAgfCAgMiArLQotIHNy Yy9saWJpZGUvZWRpdG9yL21lc29uLmJ1aWxkICAgICB8ICAyICstCi0gc3JjL2xpYmlkZS9mb3Vu ZHJ5L21lc29uLmJ1aWxkICAgIHwgIDIgKy0KLSBzcmMvbGliaWRlL2dyZWV0ZXIvbWVzb24uYnVp bGQgICAgfCAgMiArLQotIHNyYy9saWJpZGUvZ3VpL21lc29uLmJ1aWxkICAgICAgICB8ICAyICst Ci0gc3JjL2xpYmlkZS9pby9tZXNvbi5idWlsZCAgICAgICAgIHwgIDIgKy0KLSBzcmMvbGliaWRl L2xzcC9tZXNvbi5idWlsZCAgICAgICAgfCAgMiArLQotIHNyYy9saWJpZGUvcGx1Z2lucy9tZXNv bi5idWlsZCAgICB8ICAyICstCi0gc3JjL2xpYmlkZS9wcm9qZWN0cy9tZXNvbi5idWlsZCAgIHwg IDIgKy0KLSBzcmMvbGliaWRlL3NlYXJjaC9tZXNvbi5idWlsZCAgICAgfCAgMiArLQotIHNyYy9s aWJpZGUvc291cmNldmlldy9tZXNvbi5idWlsZCB8ICAyICstCi0gc3JjL2xpYmlkZS90ZXJtaW5h bC9tZXNvbi5idWlsZCAgIHwgIDIgKy0KLSBzcmMvbGliaWRlL3RoZW1lcy9tZXNvbi5idWlsZCAg ICAgfCAgMiArLQotIHNyYy9saWJpZGUvdGhyZWFkaW5nL21lc29uLmJ1aWxkICB8ICAyICstCi0g c3JjL2xpYmlkZS90cmVlL21lc29uLmJ1aWxkICAgICAgIHwgIDIgKy0KLSBzcmMvbGliaWRlL3Zj cy9tZXNvbi5idWlsZCAgICAgICAgfCAgMiArLQotIHNyYy9saWJpZGUvd2Via2l0L21lc29uLmJ1 aWxkICAgICB8ICAyICstCi0gc3JjL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgIHwgMjYg KysrKysrKysrKysrKysrKysrKysrKysrKy0KLSAyMCBmaWxlcyBjaGFuZ2VkLCA0NCBpbnNlcnRp b25zKCspLCAyMCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvY29kZS9t ZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvY29kZS9tZXNvbi5idWlsZAotaW5kZXggZGRhY2RjMTYy Li4xYTRmYzVkMjYgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL2NvZGUvbWVzb24uYnVpbGQKLSsr KyBiL3NyYy9saWJpZGUvY29kZS9tZXNvbi5idWlsZAotQEAgLTE3NSw3ICsxNzUsNyBAQCBsaWJp ZGVfY29kZSA9IHN0YXRpY19saWJyYXJ5KCdpZGUtY29kZS0nICsgbGliaWRlX2FwaV92ZXJzaW9u LAotIGxpYmlkZV9jb2RlX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAgICAgICAgICAg IHNvdXJjZXM6IGxpYmlkZV9jb2RlX3ByaXZhdGVfaGVhZGVycyArIGxpYmlkZV9jb2RlX2dlbmVy YXRlZF9oZWFkZXJzLAotICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX2NvZGVfZGVwcywK LS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV9jb2RlLAotKyAgICAgICAgICAgIGxpbmtf d2l0aDogbGliaWRlX2NvZGUsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVj dG9yaWVzKCcuJyksCi0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvY29yZS9tZXNvbi5i dWlsZCBiL3NyYy9saWJpZGUvY29yZS9tZXNvbi5idWlsZAotaW5kZXggMWZhODJmYWQ5Li5iYjc1 Y2JmMjYgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL2NvcmUvbWVzb24uYnVpbGQKLSsrKyBiL3Ny Yy9saWJpZGUvY29yZS9tZXNvbi5idWlsZAotQEAgLTExNyw3ICsxMTcsNyBAQCBsaWJpZGVfY29y ZSA9IHN0YXRpY19saWJyYXJ5KCdpZGUtY29yZS0nICsgbGliaWRlX2FwaV92ZXJzaW9uLCBsaWJp ZGVfY29yZV9zb3VyYwotIGxpYmlkZV9jb3JlX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAg ICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV9jb3JlX3ByaXZhdGVfaGVhZGVycyArIGxpYmlk ZV9jb3JlX2dlbmVyYXRlZF9oZWFkZXJzLAotICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRl X2NvcmVfZGVwcywKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV9jb3JlLAotKyAgICAg ICAgICAgIGxpbmtfd2l0aDogbGliaWRlX2NvcmUsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBp bmNsdWRlX2RpcmVjdG9yaWVzKCcuJyksCi0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUv ZGVidWdnZXIvbWVzb24uYnVpbGQgYi9zcmMvbGliaWRlL2RlYnVnZ2VyL21lc29uLmJ1aWxkCi1p bmRleCBkZmZjYTIwY2EuLmI1ZTcyZDVjMCAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvZGVidWdn ZXIvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9saWJpZGUvZGVidWdnZXIvbWVzb24uYnVpbGQKLUBA IC04NCw3ICs4NCw3IEBAIGxpYmlkZV9kZWJ1Z2dlciA9IHN0YXRpY19saWJyYXJ5KCdpZGUtZGVi dWdnZXItJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwKLSBsaWJpZGVfZGVidWdnZXJfZGVwID0gZGVj bGFyZV9kZXBlbmRlbmN5KAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX2RlYnVnZ2Vy X3ByaXZhdGVfaGVhZGVycyArIGxpYmlkZV9kZWJ1Z2dlcl9nZW5lcmF0ZWRfaGVhZGVycywKLSAg ICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV9kZWJ1Z2dlcl9kZXBzLAotLSAgICAgICAgICAg bGlua193aG9sZTogbGliaWRlX2RlYnVnZ2VyLAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGli aWRlX2RlYnVnZ2VyLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3Rvcmll cygnLicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL2VkaXRvci9tZXNvbi5idWls ZCBiL3NyYy9saWJpZGUvZWRpdG9yL21lc29uLmJ1aWxkCi1pbmRleCAyODM4NDI1YjcuLjgwOGVk Nzg0ZiAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvZWRpdG9yL21lc29uLmJ1aWxkCi0rKysgYi9z cmMvbGliaWRlL2VkaXRvci9tZXNvbi5idWlsZAotQEAgLTEwNyw3ICsxMDcsNyBAQCBsaWJpZGVf ZWRpdG9yID0gc3RhdGljX2xpYnJhcnkoJ2lkZS1lZGl0b3ItJyArIGxpYmlkZV9hcGlfdmVyc2lv biwgbGliaWRlX2VkaXRvcgotIAotIGxpYmlkZV9lZGl0b3JfZGVwID0gZGVjbGFyZV9kZXBlbmRl bmN5KAotICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX2VkaXRvcl9kZXBzLAotLSAgICAg ICAgICAgbGlua193aG9sZTogbGliaWRlX2VkaXRvciwKLSsgICAgICAgICAgICBsaW5rX3dpdGg6 IGxpYmlkZV9lZGl0b3IsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9y aWVzKCcuJyksCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfZWRpdG9yX2dlbmVyYXRl ZF9oZWFkZXJzLAotICkKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL2ZvdW5kcnkvbWVzb24uYnVp bGQgYi9zcmMvbGliaWRlL2ZvdW5kcnkvbWVzb24uYnVpbGQKLWluZGV4IDIyNjM5N2MxNS4uZDQ4 NzhhYTExIDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS9mb3VuZHJ5L21lc29uLmJ1aWxkCi0rKysg Yi9zcmMvbGliaWRlL2ZvdW5kcnkvbWVzb24uYnVpbGQKLUBAIC0xNzgsNyArMTc4LDcgQEAgbGli aWRlX2ZvdW5kcnkgPSBzdGF0aWNfbGlicmFyeSgnaWRlLWZvdW5kcnktJyArIGxpYmlkZV9hcGlf dmVyc2lvbiwKLSAKLSBsaWJpZGVfZm91bmRyeV9kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0g ICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfZm91bmRyeV9kZXBzLAotLSAgICAgICAgICAg bGlua193aG9sZTogbGliaWRlX2ZvdW5kcnksCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJp ZGVfZm91bmRyeSwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMo Jy4nKSwKLSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV9mb3VuZHJ5X2dlbmVyYXRlZF9o ZWFkZXJzLAotICkKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL2dyZWV0ZXIvbWVzb24uYnVpbGQg Yi9zcmMvbGliaWRlL2dyZWV0ZXIvbWVzb24uYnVpbGQKLWluZGV4IDM5NjhjYTQxZS4uMTIxZDQ5 OGQwIDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS9ncmVldGVyL21lc29uLmJ1aWxkCi0rKysgYi9z cmMvbGliaWRlL2dyZWV0ZXIvbWVzb24uYnVpbGQKLUBAIC04Myw3ICs4Myw3IEBAIGxpYmlkZV9n cmVldGVyID0gc3RhdGljX2xpYnJhcnkoJ2lkZS1ncmVldGVyLScgKyBsaWJpZGVfYXBpX3ZlcnNp b24sCi0gbGliaWRlX2dyZWV0ZXJfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAgICAgICAg ICAgICAgc291cmNlczogbGliaWRlX2dyZWV0ZXJfcHJpdmF0ZV9oZWFkZXJzICsgbGliaWRlX2dy ZWV0ZXJfZ2VuZXJhdGVkX2hlYWRlcnMsCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVf Z3JlZXRlcl9kZXBzLAotLSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRlX2dyZWV0ZXIsCi0r ICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfZ3JlZXRlciwKLSAgIGluY2x1ZGVfZGlyZWN0 b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3Jj L2xpYmlkZS9ndWkvbWVzb24uYnVpbGQgYi9zcmMvbGliaWRlL2d1aS9tZXNvbi5idWlsZAotaW5k ZXggOWY0NjlkMmZhLi45NDMxMTI4MmYgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL2d1aS9tZXNv bi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS9ndWkvbWVzb24uYnVpbGQKLUBAIC0yMDQsNyArMjA0 LDcgQEAgbGliaWRlX2d1aSA9IHN0YXRpY19saWJyYXJ5KCdpZGUtZ3VpLScgKyBsaWJpZGVfYXBp X3ZlcnNpb24sIGxpYmlkZV9ndWlfc291cmNlcywKLSBsaWJpZGVfZ3VpX2RlcCA9IGRlY2xhcmVf ZGVwZW5kZW5jeSgKLSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV9ndWlfcHJpdmF0ZV9o ZWFkZXJzICsgbGliaWRlX2d1aV9nZW5lcmF0ZWRfaGVhZGVycywKLSAgICAgICAgICBkZXBlbmRl bmNpZXM6IGxpYmlkZV9ndWlfZGVwcywKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV9n dWksCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfZ3VpLAotICAgaW5jbHVkZV9kaXJl Y3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9z cmMvbGliaWRlL2lvL21lc29uLmJ1aWxkIGIvc3JjL2xpYmlkZS9pby9tZXNvbi5idWlsZAotaW5k ZXggYjViNmY0YzY4Li5mNDhiM2JkOGQgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL2lvL21lc29u LmJ1aWxkCi0rKysgYi9zcmMvbGliaWRlL2lvL21lc29uLmJ1aWxkCi1AQCAtNjMsNyArNjMsNyBA QCBsaWJpZGVfaW8gPSBzdGF0aWNfbGlicmFyeSgnaWRlLWlvLScgKyBsaWJpZGVfYXBpX3ZlcnNp b24sIGxpYmlkZV9pb19zb3VyY2VzLAotIAotIGxpYmlkZV9pb19kZXAgPSBkZWNsYXJlX2RlcGVu ZGVuY3koCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBbIGxpYmdpb19kZXAsIGxpYmlkZV9jb3Jl X2RlcCwgbGliaWRlX3RocmVhZGluZ19kZXAgXSwKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxp YmlkZV9pbywKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV9pbywKLSAgIGluY2x1ZGVf ZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0 IGEvc3JjL2xpYmlkZS9sc3AvbWVzb24uYnVpbGQgYi9zcmMvbGliaWRlL2xzcC9tZXNvbi5idWls ZAotaW5kZXggMjNhYmE3NGZhLi5jODE0MGNhMDMgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL2xz cC9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS9sc3AvbWVzb24uYnVpbGQKLUBAIC04NCw3 ICs4NCw3IEBAIGxpYmlkZV9sc3AgPSBzdGF0aWNfbGlicmFyeSgnaWRlLWxzcC0nICsgbGliaWRl X2FwaV92ZXJzaW9uLCBsaWJpZGVfbHNwX3NvdXJjZXMsCi0gbGliaWRlX2xzcF9kZXAgPSBkZWNs YXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfbHNwX3ByaXZh dGVfaGVhZGVycywKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV9sc3BfZGVwcywKLS0g ICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV9sc3AsCi0rICAgICAgICAgICAgbGlua193aXRo OiBsaWJpZGVfbHNwLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3Rvcmll cygnLicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL3BsdWdpbnMvbWVzb24uYnVp bGQgYi9zcmMvbGliaWRlL3BsdWdpbnMvbWVzb24uYnVpbGQKLWluZGV4IGEzM2M1MjhjOS4uZmZm NTk5ZGIzIDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS9wbHVnaW5zL21lc29uLmJ1aWxkCi0rKysg Yi9zcmMvbGliaWRlL3BsdWdpbnMvbWVzb24uYnVpbGQKLUBAIC01MSw3ICs1MSw3IEBAIGxpYmlk ZV9wbHVnaW5zID0gc3RhdGljX2xpYnJhcnkoJ2lkZS1wbHVnaW5zLScgKyBsaWJpZGVfYXBpX3Zl cnNpb24sCi0gbGliaWRlX3BsdWdpbnNfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAgICAg ICAgICAgICAgc291cmNlczogbGliaWRlX3BsdWdpbnNfcHJpdmF0ZV9oZWFkZXJzLAotICAgICAg ICAgIGRlcGVuZGVuY2llczogbGliaWRlX3BsdWdpbnNfZGVwcywKLS0gICAgICAgICAgIGxpbmtf d2hvbGU6IGxpYmlkZV9wbHVnaW5zLAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRlX3Bs dWdpbnMsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuJyks Ci0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvcHJvamVjdHMvbWVzb24uYnVpbGQgYi9z cmMvbGliaWRlL3Byb2plY3RzL21lc29uLmJ1aWxkCi1pbmRleCA0NjNmZjA2YmMuLjNjYzk3MjVj NiAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvcHJvamVjdHMvbWVzb24uYnVpbGQKLSsrKyBiL3Ny Yy9saWJpZGUvcHJvamVjdHMvbWVzb24uYnVpbGQKLUBAIC03OSw3ICs3OSw3IEBAIGxpYmlkZV9w cm9qZWN0cyA9IHN0YXRpY19saWJyYXJ5KCdpZGUtcHJvamVjdHMtJyArIGxpYmlkZV9hcGlfdmVy c2lvbiwgbGliaWRlX3ByCi0gbGliaWRlX3Byb2plY3RzX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5j eSgKLSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV9wcm9qZWN0c19wcml2YXRlX2hlYWRl cnMsCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfcHJvamVjdHNfZGVwcywKLS0gICAg ICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV9wcm9qZWN0cywKLSsgICAgICAgICAgICBsaW5rX3dp dGg6IGxpYmlkZV9wcm9qZWN0cywKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGly ZWN0b3JpZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9zZWFyY2gvbWVz b24uYnVpbGQgYi9zcmMvbGliaWRlL3NlYXJjaC9tZXNvbi5idWlsZAotaW5kZXggZTViM2I0M2Fi Li5jZjczYWE5MWQgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL3NlYXJjaC9tZXNvbi5idWlsZAot KysrIGIvc3JjL2xpYmlkZS9zZWFyY2gvbWVzb24uYnVpbGQKLUBAIC01MSw3ICs1MSw3IEBAIGxp YmlkZV9zZWFyY2ggPSBzdGF0aWNfbGlicmFyeSgnaWRlLXNlYXJjaC0nICsgbGliaWRlX2FwaV92 ZXJzaW9uLCBsaWJpZGVfc2VhcmNoCi0gCi0gbGliaWRlX3NlYXJjaF9kZXAgPSBkZWNsYXJlX2Rl cGVuZGVuY3koCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfc2VhcmNoX2RlcHMsCi0t ICAgICAgICAgICBsaW5rX3dob2xlOiBsaWJpZGVfc2VhcmNoLAotKyAgICAgICAgICAgIGxpbmtf d2l0aDogbGliaWRlX3NlYXJjaCwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGly ZWN0b3JpZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9zb3VyY2V2aWV3 L21lc29uLmJ1aWxkIGIvc3JjL2xpYmlkZS9zb3VyY2V2aWV3L21lc29uLmJ1aWxkCi1pbmRleCBj NGJhMTJkMWYuLjk5NjQxMjk4YiAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvc291cmNldmlldy9t ZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS9zb3VyY2V2aWV3L21lc29uLmJ1aWxkCi1AQCAt MTU4LDcgKzE1OCw3IEBAIGxpYmlkZV9zb3VyY2V2aWV3ID0gc3RhdGljX2xpYnJhcnkoJ2lkZS1z b3VyY2V2aWV3LScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sCi0gbGliaWRlX3NvdXJjZXZpZXdfZGVw ID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX3Nv dXJjZXZpZXdfcHJpdmF0ZV9oZWFkZXJzICsgbGliaWRlX3NvdXJjZXZpZXdfZ2VuZXJhdGVkX2hl YWRlcnMsCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfc291cmNldmlld19kZXBzLAot LSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRlX3NvdXJjZXZpZXcsCi0rICAgICAgICAgICAg bGlua193aXRoOiBsaWJpZGVfc291cmNldmlldywKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGlu Y2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS90 ZXJtaW5hbC9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvdGVybWluYWwvbWVzb24uYnVpbGQKLWlu ZGV4IDFkN2M5ZjcyNy4uNmFmZmNhZTE0IDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS90ZXJtaW5h bC9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS90ZXJtaW5hbC9tZXNvbi5idWlsZAotQEAg LTkzLDcgKzkzLDcgQEAgbGliaWRlX3Rlcm1pbmFsID0gc3RhdGljX2xpYnJhcnkoJ2lkZS10ZXJt aW5hbC0nICsgbGliaWRlX2FwaV92ZXJzaW9uLAotIGxpYmlkZV90ZXJtaW5hbF9kZXAgPSBkZWNs YXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfdGVybWluYWxf Z2VuZXJhdGVkX2hlYWRlcnMsCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfdGVybWlu YWxfZGVwcywKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV90ZXJtaW5hbCwKLSsgICAg ICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV90ZXJtaW5hbCwKLSAgIGluY2x1ZGVfZGlyZWN0b3Jp ZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xp YmlkZS90aGVtZXMvbWVzb24uYnVpbGQgYi9zcmMvbGliaWRlL3RoZW1lcy9tZXNvbi5idWlsZAot aW5kZXggOWQ2YzhlMjQ3Li5kODgzYTRiODYgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL3RoZW1l cy9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS90aGVtZXMvbWVzb24uYnVpbGQKLUBAIC00 Niw3ICs0Niw3IEBAIGxpYmlkZV90aGVtZXMgPSBzdGF0aWNfbGlicmFyeSgnaWRlLXRoZW1lcy0n ICsgbGliaWRlX2FwaV92ZXJzaW9uLAotIGxpYmlkZV90aGVtZXNfZGVwID0gZGVjbGFyZV9kZXBl bmRlbmN5KAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX3RoZW1lc19yZXNvdXJjZXNb MV0sCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfdGhlbWVzX2RlcHMsCi0tICAgICAg ICAgICBsaW5rX3dob2xlOiBsaWJpZGVfdGhlbWVzLAotKyAgICAgICAgICAgIGxpbmtfd2l0aDog bGliaWRlX3RoZW1lcywKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3Jp ZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS90aHJlYWRpbmcvbWVzb24u YnVpbGQgYi9zcmMvbGliaWRlL3RocmVhZGluZy9tZXNvbi5idWlsZAotaW5kZXggZDM4ZGRmYjY0 Li5kNjI4YmUyZmYgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL3RocmVhZGluZy9tZXNvbi5idWls ZAotKysrIGIvc3JjL2xpYmlkZS90aHJlYWRpbmcvbWVzb24uYnVpbGQKLUBAIC02Niw3ICs2Niw3 IEBAIGxpYmlkZV90aHJlYWRpbmcgPSBzdGF0aWNfbGlicmFyeSgnaWRlLXRocmVhZGluZy0nICsg bGliaWRlX2FwaV92ZXJzaW9uLCBsaWJpZGVfCi0gbGliaWRlX3RocmVhZGluZ19kZXAgPSBkZWNs YXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfdGhyZWFkaW5n X3ByaXZhdGVfaGVhZGVycywKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV90aHJlYWRp bmdfZGVwcywKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV90aHJlYWRpbmcsCi0rICAg ICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfdGhyZWFkaW5nLAotICAgaW5jbHVkZV9kaXJlY3Rv cmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMv bGliaWRlL3RyZWUvbWVzb24uYnVpbGQgYi9zcmMvbGliaWRlL3RyZWUvbWVzb24uYnVpbGQKLWlu ZGV4IDdiOTkyMjgyOC4uNWE1OTExMDZjIDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS90cmVlL21l c29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRlL3RyZWUvbWVzb24uYnVpbGQKLUBAIC02MSw3ICs2 MSw3IEBAIGxpYmlkZV90cmVlID0gc3RhdGljX2xpYnJhcnkoJ2lkZS10cmVlLScgKyBsaWJpZGVf YXBpX3ZlcnNpb24sIGxpYmlkZV90cmVlX3NvdXJjCi0gbGliaWRlX3RyZWVfZGVwID0gZGVjbGFy ZV9kZXBlbmRlbmN5KAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX3RyZWVfcHJpdmF0 ZV9oZWFkZXJzLAotICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX3RyZWVfZGVwcywKLS0g ICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV90cmVlLAotKyAgICAgICAgICAgIGxpbmtfd2l0 aDogbGliaWRlX3RyZWUsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9y aWVzKCcuJyksCi0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvdmNzL21lc29uLmJ1aWxk IGIvc3JjL2xpYmlkZS92Y3MvbWVzb24uYnVpbGQKLWluZGV4IDZiMGUxNTdjNC4uYzc2MmFmYjY0 IDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS92Y3MvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9saWJp ZGUvdmNzL21lc29uLmJ1aWxkCi1AQCAtODQsNyArODQsNyBAQCBsaWJpZGVfdmNzID0gc3RhdGlj X2xpYnJhcnkoJ2lkZS12Y3MtJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwKLSAKLSBsaWJpZGVfdmNz X2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlk ZV92Y3NfZGVwcywKLS0gICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV92Y3MsCi0rICAgICAg ICAgICAgbGlua193aXRoOiBsaWJpZGVfdmNzLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5j bHVkZV9kaXJlY3RvcmllcygnLicpLAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX3Zj c19nZW5lcmF0ZWRfaGVhZGVycywKLSApCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS93ZWJraXQv bWVzb24uYnVpbGQgYi9zcmMvbGliaWRlL3dlYmtpdC9tZXNvbi5idWlsZAotaW5kZXggZTE3Njdh ZTQ2Li5mY2U0NzdiMzYgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL3dlYmtpdC9tZXNvbi5idWls ZAotKysrIGIvc3JjL2xpYmlkZS93ZWJraXQvbWVzb24uYnVpbGQKLUBAIC0zOSw3ICszOSw3IEBA IGxpYmlkZV93ZWJraXQgPSBzdGF0aWNfbGlicmFyeSgnaWRlLXdlYmtpdC0nICsgbGliaWRlX2Fw aV92ZXJzaW9uLCBsaWJpZGVfd2Via2l0Ci0gCi0gbGliaWRlX3dlYmtpdF9kZXAgPSBkZWNsYXJl X2RlcGVuZGVuY3koCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfd2Via2l0X2RlcHMs Ci0tICAgICAgICAgICBsaW5rX3dob2xlOiBsaWJpZGVfd2Via2l0LAotKyAgICAgICAgICAgIGxp bmtfd2l0aDogbGliaWRlX3dlYmtpdCwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVf ZGlyZWN0b3JpZXMoJy4nKSwKLSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV93ZWJraXRf Z2VuZXJhdGVkX2hlYWRlcnMsCi0gKQotZGlmZiAtLWdpdCBhL3NyYy9tZXNvbi5idWlsZCBiL3Ny Yy9tZXNvbi5idWlsZAotaW5kZXggM2ViOWJhNTM1Li4xMTNhMTQyYWQgMTAwNjQ0Ci0tLS0gYS9z cmMvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9tZXNvbi5idWlsZAotQEAgLTQ4LDYgKzQ4LDMwIEBA IGdub21lX2J1aWxkZXJfZGVwcyA9IFsKLSAgIGxpYmlkZV90cmVlX2RlcCwKLSBdCi0gCi0rZ25v bWVfYnVpbGRlcl9zdGF0aWMgPSBbCi0rICBsaWJpZGVfY29kZSwKLSsgIGxpYmlkZV9jb3JlLAot KyAgbGliaWRlX2RlYnVnZ2VyLAotKyAgbGliaWRlX2VkaXRvciwKLSsgIGxpYmlkZV9mb3VuZHJ5 LAotKyAgbGliaWRlX2dyZWV0ZXIsCi0rICBsaWJpZGVfZ3VpLAotKyAgbGliaWRlX2lvLAotKyAg bGliaWRlX2xzcCwKLSsgIGxpYmlkZV9wbHVnaW5zLAotKyAgbGliaWRlX3Byb2plY3RzLAotKyAg bGliaWRlX3NlYXJjaCwKLSsgIGxpYmlkZV9zb3VyY2V2aWV3LAotKyAgbGliaWRlX3Rlcm1pbmFs LAotKyAgbGliaWRlX3RoZW1lcywKLSsgIGxpYmlkZV90aHJlYWRpbmcsCi0rICBsaWJpZGVfdHJl ZSwKLSsgIGxpYmlkZV92Y3MsCi0rICBsaWJpZGVfd2Via2l0LAotKwotKyAgcGx1Z2lucywKLStd Ci0rCi0gaWYgbGlic3lzcHJvZl9jYXB0dXJlLmZvdW5kKCkKLSAgIGdub21lX2J1aWxkZXJfZGVw cyArPSBsaWJzeXNwcm9mX2NhcHR1cmUKLSBlbmRpZgotQEAgLTc3LDcgKzEwMSw3IEBAIGdub21l X2J1aWxkZXIgPSBleGVjdXRhYmxlKCdnbm9tZS1idWlsZGVyJywgJ21haW4uYycsICdidWctYnVk ZHkuYycsCi0gICAgICAgICAgICAgY19hcmdzOiBsaWJpZGVfYXJncyArIGV4ZV9jX2FyZ3MgKyBy ZWxlYXNlX2FyZ3MsCi0gICAgICAgICAgbGlua19hcmdzOiBleGVfbGlua19hcmdzLAotICAgICAg ICAgICAgICAgIHBpZTogdHJ1ZSwKLS0gICAgICAgIGxpbmtfd2hvbGU6IHBsdWdpbnMsCi0rICAg ICAgICBsaW5rX3dob2xlOiBnbm9tZV9idWlsZGVyX3N0YXRpYywKLSAgICAgIGluc3RhbGxfcnBh dGg6IHBrZ2xpYmRpcl9hYnMsCi0gICAgICAgZGVwZW5kZW5jaWVzOiBnbm9tZV9idWlsZGVyX2Rl cHMsCi0gKQotLS0gCi0yLjI0LjEKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1idWlsZGVy L3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1idWlsZGVyL3RlbXBsYXRlCmluZGV4IDhjOGMwMTVk OGEzLi5hZDJkNGI2ZDAzYSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1idWlsZGVyL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtYnVpbGRlci90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAK ICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWJ1aWxkZXInCiBwa2duYW1lPWdub21lLWJ1aWxk ZXIKLXZlcnNpb249My4zNC4xCi1yZXZpc2lvbj02Cit2ZXJzaW9uPTMuMzguMAorcmV2aXNpb249 MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj1xZW11CiBjb25maWd1cmVfYXJncz0i LUR3aXRoX3dlYmtpdD10cnVlIC1Ed2l0aF9zeXNwcm9mPXRydWUgLURoZWxwPXRydWUiCkBAIC0x MSwxNSArMTEsMTUgQEAgbWFrZWRlcGVuZHM9ImNhaXJvLWRldmVsIGNsYW5nIGRldmhlbHAtZGV2 ZWwgZW5jaGFudDItZGV2ZWwgZmxhdHBhay1kZXZlbAogIGdzcGVsbC1kZXZlbCBndGtzb3VyY2V2 aWV3NC1kZXZlbCBndGsrMy1kZXZlbCBqc29uLWdsaWItZGV2ZWwganNvbnJwYy1nbGliLWRldmVs CiAgbGliZGF6emxlLWRldmVsIGxpYmdpdDItZ2xpYi1kZXZlbCBsaWJnbGliLWRldmVsIGxpYm9z dHJlZS1kZXZlbCBsaWJwZWFzLWRldmVsCiAgbGlieG1sMi1kZXZlbCB0ZW1wbGF0ZS1nbGliLWRl dmVsIHZhbGEtZGV2ZWwgdnRlMy1kZXZlbCB3ZWJraXQyZ3RrLWRldmVsCi0gcHl0aG9uMy1nb2Jq ZWN0LWRldmVsIHN5c3Byb2YtZGV2ZWwgZ2xhZGUzLWRldmVsIgorIHB5dGhvbjMtZ29iamVjdC1k ZXZlbCBzeXNwcm9mLWRldmVsIGdsYWRlMy1kZXZlbCBsaWJwb3J0YWwtZGV2ZWwiCiBkZXBlbmRz PSJkZXNrdG9wLWZpbGUtdXRpbHMgZmxhdHBhay1idWlsZGVyIHB5dGhvbjMtbHhtbCBkZXZoZWxw IHB5dGhvbjMtZ29iamVjdCIKIHNob3J0X2Rlc2M9IklERSBmb3IgR05PTUUiCiBtYWludGFpbmVy PSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1v ci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvQnVpbGRlciIK LWNoYW5nZWxvZz0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLWJ1aWxkZXIv cmF3L2dub21lLWJ1aWxkZXItMy0zNC9ORVdTIgorY2hhbmdlbG9nPSJodHRwczovL2dpdGxhYi5n bm9tZS5vcmcvR05PTUUvZ25vbWUtYnVpbGRlci9yYXcvZ25vbWUtYnVpbGRlci0zLTM2L05FV1Mi CiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtn bmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0wYjZlNDYxMDU3ZWE4MTUxZTgwNTI0 YzBlYTdlZjFjYjk0OGU5MmFmZGE5ZGM2YmQzM2FlMzM5MmYwNDUwMWE0CitjaGVja3N1bT1kNjg5 NTM4YmFmOGVmYjFhY2Y3ZWE2MDcyNjhiMWFhYTE0MThkNTUxN2Q5MmQ0ZjY5NDZhM2RiZjgxNGVh ZTU1CiBwYXRjaF9hcmdzPSItTnAxIgogCiBjYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4K QEAgLTI4LDMgKzI4LDggQEAgY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCiAJCUxJQlMr PSIgLWxleGVjaW5mbyIKIAkJOzsKIGVzYWMKKworcHJlX2NvbmZpZ3VyZSgpIHsKKwkjIHRoaXMg dGVzdCBuZWVkcyBYCisJdnNlZCAtaSAicy90ZXN0KCd0ZXN0LXRleHQtaXRlcicvIyYvIiBzcmMv dGVzdHMvbWVzb24uYnVpbGQKK30KCkZyb20gMGRlYzg5MmIxNzRmMGQ0YjAwYTcyYTlmNTQ4MWYy ODQwODRiZTBkMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8 ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTcgU2VwIDIwMjAgMDE6MjE6NTMgKzAy MDAKU3ViamVjdDogW1BBVENIIDA5NS8xMDJdIHJldHJvLWd0azogdXBkYXRlIHRvIDEuMC4wCgot LS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgIHwgIDIgKy0KIHNyY3BrZ3MvcmV0cm8tZ3Rr L3RlbXBsYXRlIHwgMTIgKysrKysrKysrLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlv bnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1v bi9zaGxpYnMKaW5kZXggYTZhNDIxNTU2ZjUuLmRjMGM1ODc0OTc2IDEwMDY0NAotLS0gYS9jb21t b24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTM1NzQsNyArMzU3NCw3IEBAIGxpYnds cm9vdHMuc28uNiB3bHJvb3RzLTAuMTEuMF8xCiBsaWJiYXNlZW5jb2RlLnNvLjEgbGliYmFzZWVu Y29kZS0xLjAuOV8xCiBsaWJjb3RwLnNvLjEyIGxpYmNvdHAtMS4yLjFfMQogbGlidW5hcnIuc28u MSBsaWJ1bmFyci0xLjAuMV8xCi1saWJyZXRyby1ndGstMC4xNC5zby4wIHJldHJvLWd0ay0wLjE2 LjBfMQorbGlicmV0cm8tZ3RrLTEuc28uMCByZXRyby1ndGstMS4wLjBfMQogbGlibWFuZXR0ZS0w LjIuc28uMCBsaWJtYW5ldHRlLTAuMi4xXzEKIGxpYmZtdC5zby42IGZtdC01LjIuMV8xCiBsaWJl bGVtZW50YXJ5LWNhbGVuZGFyLnNvLjAgbGliaW8uZWxlbWVudGFyeS5jYWxlbmRhci00LjIuM18x CmRpZmYgLS1naXQgYS9zcmNwa2dzL3JldHJvLWd0ay90ZW1wbGF0ZSBiL3NyY3BrZ3MvcmV0cm8t Z3RrL3RlbXBsYXRlCmluZGV4IGRhMGFlY2NkMjQzLi4wNGFkOWNmMDUxYiAxMDA2NDQKLS0tIGEv c3JjcGtncy9yZXRyby1ndGsvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9yZXRyby1ndGsvdGVtcGxh dGUKQEAgLTEsMjIgKzEsMjggQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3JldHJvLWd0aycKIHBr Z25hbWU9cmV0cm8tZ3RrCi12ZXJzaW9uPTAuMTguMAordmVyc2lvbj0xLjAuMAogcmV2aXNpb249 MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgogY29uZmlndXJlX2FyZ3M9 IiQodm9wdF9ib29sIGdpciBpbnRyb3NwZWN0aW9uKSIKIGhvc3RtYWtlZGVwZW5kcz0iZ2xpYi1k ZXZlbCBwa2ctY29uZmlnIHZhbGEiCi1tYWtlZGVwZW5kcz0iZ3RrKzMtZGV2ZWwgbGliZXBveHkt ZGV2ZWwgbGliZ2xpYi1kZXZlbCBwdWxzZWF1ZGlvLWRldmVsIgorbWFrZWRlcGVuZHM9Imd0aysz LWRldmVsIGxpYmVwb3h5LWRldmVsIGxpYmdsaWItZGV2ZWwgcHVsc2VhdWRpby1kZXZlbAorIGxp YnNhbXBsZXJhdGUtZGV2ZWwiCiBzaG9ydF9kZXNjPSJHVEsrIExpYnJldHJvIGZyb250ZW5kIGZy YW1ld29yayIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4i CiBsaWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdu b21lLm9yZy9HTk9NRS9yZXRyby1ndGsiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2du YW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1 bT1jZWRiODgxMTc0YzQyZTg4OTU0ZWVjYjVkZmFjNzg5NTRhMTk4MWFhZWViZGM4OTE4Yzg4NjFj NmMwOGE0NTEyCitjaGVja3N1bT01Yzc0MzdhNzY4MTI1YTZmNjI3ZDA2M2VkODkwZTkzMjhkNDEw OGRiNTJhNmQ1YWExMGU1MmQyZjI1YmI4OGRiCiAKIGJ1aWxkX29wdGlvbnM9ImdpciIKIGJ1aWxk X29wdGlvbnNfZGVmYXVsdD0iZ2lyIgogCisjIG5lZWRzIFgKK2RvX2NoZWNrKCkgeworCToKK30K KwogcmV0cm8tZ3RrLWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0ibGliZ2xpYi1kZXZlbCAk e3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCiAJc2hvcnRfZGVzYys9IiAtIGRl dmVsb3BtZW50IGZpbGVzIgoKRnJvbSBjZGY3OWI3YjEzZDc2YTFjNzVjMjBkYjEyM2VlM2E1NDhh MjNjOTUwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5p ZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxNyBTZXAgMjAyMCAwMToyNjowMSArMDIwMApT dWJqZWN0OiBbUEFUQ0ggMDk2LzEwMl0gZ25vbWUtZ2FtZXM6IHVwZGF0ZSB0byAzLjM4LjAKCi0t LQogc3JjcGtncy9nbm9tZS1nYW1lcy90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdl ZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Z25vbWUtZ2FtZXMvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWdhbWVzL3RlbXBsYXRlCmluZGV4 IDI3MzFkZjBmNmQ5Li41OGYzMTE1NmQwNiAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1nYW1l cy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWdhbWVzL3RlbXBsYXRlCkBAIC0xLDE1ICsx LDE1IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1nYW1lcycKIHBrZ25hbWU9Z25vbWUt Z2FtZXMKLXZlcnNpb249My4zNC4wCit2ZXJzaW9uPTMuMzguMAogcmV2aXNpb249MQogYnVpbGRf c3R5bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBnbGliLWRldmVsIHBrZy1jb25m aWcgdmFsYS1kZXZlbCIKIG1ha2VkZXBlbmRzPSJsaWJhcmNoaXZlLWRldmVsIGdyaWxvLWRldmVs IGd0ayszLWRldmVsIGxpYmdsaWItZGV2ZWwKICBsaWJtYW5ldHRlLWRldmVsIGxpYnJzdmctZGV2 ZWwgbGlic291cC1kZXZlbCBsaWJ4bWwyLWRldmVsIHJldHJvLWd0ay1kZXZlbAotIHNxbGl0ZS1k ZXZlbCB0cmFja2VyLWRldmVsIGxpYmhhbmR5LWRldmVsIgorIHNxbGl0ZS1kZXZlbCB0cmFja2Vy LWRldmVsIGxpYmhhbmR5MS1kZXZlbCIKIHNob3J0X2Rlc2M9IkJyb3dzZSBhbmQgcGxheSB5b3Vy IGdhbWVzIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIK IGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21l Lm9yZy9BcHBzL0dhbWVzIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2 ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09MGZkNzI0 NmQ2MWNlMjFjMGZjMTIxYzU0ODgwNTFhNTg2NmMxOWRlMmMyODM1YWQ3ZmU0YjE4YzA2NjI3ZGNi YQorY2hlY2tzdW09NWM4NjhmZDZlYjBiOGQyM2I5OTUwMzk2MzMwNDNlOTBkOGQ5Mzg1NmQzMTU4 MzJkZTNhMzE1ZDdiMWU1NGU0OAoKRnJvbSA0MjJjY2UxMDhmYWVmNTkwMmFkMmI5MjkyMmZkMjli NjhmZTMyNjgzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxk YW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogRnJpLCAxNCBBdWcgMjAyMCAyMzoyMjozNCArMDIw MApTdWJqZWN0OiBbUEFUQ0ggMDk3LzEwMl0gZ25vbWUtcGFuZWw6IHVwZGF0ZSB0byAzLjM3LjEK Ci0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAgICAgICB8IDIgKy0KIHNyY3BrZ3MvZ25vbWUt cGFuZWwvdGVtcGxhdGUgfCA2ICsrKy0tLQogMiBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMo KyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9z aGxpYnMKaW5kZXggZGMwYzU4NzQ5NzYuLmU2MDY3YjljNTg5IDEwMDY0NAotLS0gYS9jb21tb24v c2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTU2NCw3ICs1NjQsNyBAQCBsaWJwYWNrYWdl a2l0LWdsaWIyLnNvLjE4IFBhY2thZ2VLaXQtMS4xLjEyXzEKIGxpYnBzbC5zby41IGxpYnBzbC0w LjIwLjJfMQogbGlic291cC0yLjQuc28uMSBsaWJzb3VwLTIuMzQuMF8xCiBsaWJzb3VwLWdub21l LTIuNC5zby4xIGxpYnNvdXAtZ25vbWUtMi4zNC4wXzEKLWxpYnBhbmVsLWFwcGxldC5zby4zIGdu b21lLXBhbmVsLTMuMzAuMF8xCitsaWJnbm9tZS1wYW5lbC5zby4wIGdub21lLXBhbmVsLTMuMzcu MV8xCiBsaWJ1bmludW0uc28uNSBsaWJ1bmludW0tMi43XzEKIGxpYnVuaXF1ZS0zLjAuc28uMCBs aWJ1bmlxdWUtMi45MS40XzEKIGxpYndlYmtpdDJndGstNC4wLnNvLjM3IHdlYmtpdDJndGstMi42 LjJfMQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1wYW5lbC90ZW1wbGF0ZSBiL3NyY3BrZ3Mv Z25vbWUtcGFuZWwvdGVtcGxhdGUKaW5kZXggNzBmMjNiOGI1NTEuLjI0ZDlkMmI5ZWI1IDEwMDY0 NAotLS0gYS9zcmNwa2dzL2dub21lLXBhbmVsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUt cGFuZWwvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9t ZS1wYW5lbCcKIHBrZ25hbWU9Z25vbWUtcGFuZWwKLXZlcnNpb249My4zNC4xCi1yZXZpc2lvbj0z Cit2ZXJzaW9uPTMuMzcuMQorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQog Y29uZmlndXJlX2FyZ3M9ImF4X2N2X3pvbmVpbmZvX3R6ZGlyPS91c3Ivc2hhcmUvem9uZWluZm8i CiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQtZGV2ZWwgZ2xpYi1kZXZlbCBpdHN0b29sIHBrZy1j b25maWcgdHpkYXRhIGdldHRleHQiCkBAIC0xNCw3ICsxNCw3IEBAIG1haW50YWluZXI9IkVubm8g Qm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVy LCBHRkRMLTEuMS1vci1sYXRlciwgTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6 Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9Hbm9tZVBhbmVsIgogZGlzdGZpbGVzPSIke0dOT01F X1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFy Lnh6IgotY2hlY2tzdW09YTZiYzAyNTUyNTJlZWI0Yjk2NGJjYmU1NWZkNzkwOGI2OWY5MTRjMDYy YzVlYzhkZmY1YWMwMjYyZDI5YjkwZAorY2hlY2tzdW09MWQ1OThmZDY4OTMzZTc2MDE4ZjJmYjEx NmE3ODcxY2JjMDAzM2MxZjEwOWJmYmZlMDhhMWVjYjU2MDY3ZDE1MgogcGF0Y2hfYXJncz0iLU5w MSIKIAogZ25vbWUtcGFuZWwtZGV2ZWxfcGFja2FnZSgpIHsKCkZyb20gOTgxNDAwMWI5ODdlNzEx ZTE4NTkzMGM1NWJlODRhOGYzOGY4Y2NiYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog RGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IEZyaSwgMTQgQXVnIDIw MjAgMjM6MjQ6NTEgKzAyMDAKU3ViamVjdDogW1BBVENIIDA5OC8xMDJdIG1ldGFjaXR5OiB1cGRh dGUgdG8gMy4zNy4xCgotLS0KIHNyY3BrZ3MvbWV0YWNpdHkvdGVtcGxhdGUgfCAxMSArKysrKy0t LS0tLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL21ldGFjaXR5L3RlbXBsYXRlIGIvc3JjcGtncy9tZXRhY2l0eS90 ZW1wbGF0ZQppbmRleCA1YWEyMzE0OTJlNy4uYTU0OWRkN2E1OTYgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvbWV0YWNpdHkvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9tZXRhY2l0eS90ZW1wbGF0ZQpAQCAt MSwxOCArMSwxNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbWV0YWNpdHknCiBwa2duYW1lPW1l dGFjaXR5Ci1yZXZlcnRzPSIzLjM3LjFfMSIKLXZlcnNpb249My4zNC4xCi1yZXZpc2lvbj0xCit2 ZXJzaW9uPTMuMzcuMQorcmV2aXNpb249MgogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogaG9z dG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGdldHRleHQtZGV2ZWwgZ2xpYi1kZXZlbCBpdHN0b29sIHBr Zy1jb25maWcgeWVscC10b29scyB6ZW5pdHkiCiBtYWtlZGVwZW5kcz0iZ3NldHRpbmdzLWRlc2t0 b3Atc2NoZW1hcy1kZXZlbCBndGsrMy1kZXZlbCBsaWJjYW5iZXJyYS1kZXZlbAogIGxpYmdsaWIt ZGV2ZWwgbGliZ3RvcC1kZXZlbCBsaWJTTS1kZXZlbCBsaWJYY29tcG9zaXRlLWRldmVsIGxpYlhk YW1hZ2UtZGV2ZWwKLSBsaWJYZml4ZXMtZGV2ZWwgbGliWGluZXJhbWEtZGV2ZWwgbGliWHJlbmRl ci1kZXZlbCBsaWJYMTEtZGV2ZWwgcGFuZ28tZGV2ZWwKLSBzdGFydHVwLW5vdGlmaWNhdGlvbi1k ZXZlbCBWdWxrYW4tSGVhZGVycyB2dWxrYW4tbG9hZGVyIgorIGxpYlhmaXhlcy1kZXZlbCBsaWJY aW5lcmFtYS1kZXZlbCBsaWJYcmVuZGVyLWRldmVsIGxpYlgxMS1kZXZlbCBsaWJYcmVzLWRldmVs CisgcGFuZ28tZGV2ZWwgc3RhcnR1cC1ub3RpZmljYXRpb24tZGV2ZWwgVnVsa2FuLUhlYWRlcnMg dnVsa2FuLWxvYWRlciIKIGRlcGVuZHM9Inplbml0eSIKIHNob3J0X2Rlc2M9IldpbmRvdyBNYW5h Z2VyIGZvciB0aGUgR05PTUUgZW52aXJvbm1lbnQiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8 Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVw YWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvbWV0YWNpdHkiCiBkaXN0ZmlsZXM9 IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJz aW9ufS50YXIueHoiCi1jaGVja3N1bT0zMWM3ZDEwNDVjMzkwYWZiM2JmNDA1NzM1YjBiMjZjNDU5 MTk3Y2JmNDNhZjM3YzQ2OWViODkxOGNlM2E0NTNkCitjaGVja3N1bT04MGQ2ZjNkOTVhNDMyOGZi MjZkMGE2NDcxZjU3NWI3NDJiMzZiOGYyNzIxZjhmM2MxODA3MTk3ZmE5MDBhMTI2CgpGcm9tIDY1 YWY2YWExODQ5ZDg5OTg1YTEwMTRkZjYyNWU3ZDdhN2Q3MDQ0NTYgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBG cmksIDE0IEF1ZyAyMDIwIDIzOjQwOjM0ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwOTkvMTAyXSBn bm9tZS1mbGFzaGJhY2s6IHVwZGF0ZSB0byAzLjM3LjMKCi0tLQogLi4uL2dub21lLWZsYXNoYmFj ay9maWxlcy9nbm9tZS1mbGFzaGJhY2sucGFtIHwgIDYgKysrKwogc3JjcGtncy9nbm9tZS1mbGFz aGJhY2svdGVtcGxhdGUgICAgICAgICAgICAgIHwgMzQgKysrKysrKysrKysrKystLS0tLQogMiBm aWxlcyBjaGFuZ2VkLCAzMSBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MvZ25vbWUtZmxhc2hiYWNrL2ZpbGVzL2dub21lLWZsYXNoYmFjay5w YW0KCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWZsYXNoYmFjay9maWxlcy9nbm9tZS1mbGFz aGJhY2sucGFtIGIvc3JjcGtncy9nbm9tZS1mbGFzaGJhY2svZmlsZXMvZ25vbWUtZmxhc2hiYWNr LnBhbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjc3NmYwYjM2MzIK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2dub21lLWZsYXNoYmFjay9maWxlcy9nbm9tZS1m bGFzaGJhY2sucGFtCkBAIC0wLDAgKzEsNiBAQAorIyVQQU0tMS4wCithdXRoICAgICBpbmNsdWRl ICBzeXN0ZW0tYXV0aAorYXV0aCAgICAgb3B0aW9uYWwgcGFtX2dub21lX2tleXJpbmcuc28KK2Fj Y291bnQgIGluY2x1ZGUgIHN5c3RlbS1hdXRoCitwYXNzd29yZCBpbmNsdWRlICBzeXN0ZW0tYXV0 aAorc2Vzc2lvbiAgaW5jbHVkZSAgc3lzdGVtLWF1dGgKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25v bWUtZmxhc2hiYWNrL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1mbGFzaGJhY2svdGVtcGxhdGUK aW5kZXggZDMyMTIwY2FiNmYuLmEwNTNhNzhhZWIyIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21l LWZsYXNoYmFjay90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWZsYXNoYmFjay90ZW1wbGF0 ZQpAQCAtMSwyMCArMSwzNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtZmxhc2hiYWNr JwogcGtnbmFtZT1nbm9tZS1mbGFzaGJhY2sKLXZlcnNpb249My4zNC4yCit2ZXJzaW9uPTMuMzcu MwogcmV2aXNpb249MQogYnVpbGRfaGVscGVyPWdpcgogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3Vy ZQotY29uZmlndXJlX2FyZ3M9Ii0tZW5hYmxlLWNvbXBpbGUtd2FybmluZ3M9bWluaW11bSIKLWhv c3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBhdXRvbWFrZSBnbGliLWRldmVsIGdldHRleHQiCi1t YWtlZGVwZW5kcz0iZ3RrKzMtZGV2ZWwgZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy1kZXZlbAot IGxpYmdsaWItZGV2ZWwgZ2RrLXBpeGJ1Zi1kZXZlbCB1cG93ZXItZGV2ZWwgaWJ1cy1kZXZlbCBw b2xraXQtZGV2ZWwKLSBwdWxzZWF1ZGlvLWRldmVsIGxpYmNhbmJlcnJhLWRldmVsIGxpYnhjYi1k ZXZlbCBsaWJYMTEtZGV2ZWwgcGFuZ28tZGV2ZWwKLSBsaWJ4a2JmaWxlLWRldmVsIGdub21lLWJs dWV0b290aC1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsIgorY29uZmlndXJlX2FyZ3M9Ii0td2l0 aC1jb21waXotc2Vzc2lvbiAtLWVuYWJsZS1jb21waWxlLXdhcm5pbmdzPW1pbmltdW0iCitob3N0 bWFrZWRlcGVuZHM9InBrZy1jb25maWcgZ2V0dGV4dCBnZXR0ZXh0LWRldmVsIGF1dG9tYWtlIGxp YnRvb2wgZ2xpYi1kZXZlbCIKK21ha2VkZXBlbmRzPSJwYW0tZGV2ZWwgZWxvZ2luZC1kZXZlbCB1 cG93ZXItZGV2ZWwgaWJ1cy1kZXZlbCBwb2xraXQtZGV2ZWwKKyBwdWxzZWF1ZGlvLWRldmVsIGxp YmNhbmJlcnJhLWRldmVsIGxpYnhjYi1kZXZlbCBsaWJYMTEtZGV2ZWwgbGlieGtiZmlsZS1kZXZl bAorIGxpYmNvbXBpemNvbmZpZy1kZXZlbCBsaWJnbGliLWRldmVsIHBhbmdvLWRldmVsIGd0aysz LWRldmVsIGdkay1waXhidWYtZGV2ZWwKKyBnZG0tZGV2ZWwgZ25vbWUtYmx1ZXRvb3RoLWRldmVs IGdub21lLWRlc2t0b3AtZGV2ZWwgZ25vbWUtcGFuZWwtZGV2ZWwKKyBnc2V0dGluZ3MtZGVza3Rv cC1zY2hlbWFzLWRldmVsIgogZGVwZW5kcz0iZ25vbWUtYmx1ZXRvb3RoIGdub21lLXNlc3Npb24g Z25vbWUtc2V0dGluZ3MtZGFlbW9uCi0gZ25vbWUtcGFuZWwgZ25vbWUtdGhlbWVzLXN0YW5kYXJk IG1ldGFjaXR5IgorIGdub21lLXBhbmVsIGdub21lLXRoZW1lcy1leHRyYSBtZXRhY2l0eSIKIHNo b3J0X2Rlc2M9IkdOT01FIDMgc2Vzc2lvbiB3aXRoIHNpbWlsYXIgdXNlciBleHBlcmllbmNlIHRv IHRoZSBHTk9NRSAyLnggc2VyaWVzIgogbWFpbnRhaW5lcj0ic2hpem9uaWMgPHJlYWx0aWF6QGdt YWlsLmNvbT4iCiBsaWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8v d2lraS5nbm9tZS5vcmcvUHJvamVjdHMvR25vbWVGbGFzaGJhY2siCiBkaXN0ZmlsZXM9IiR7R05P TUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50 YXIueHoiCi1jaGVja3N1bT0zYmU2NTM4OGNkMmM4ZjM5NzQxYmNjMDVkYTg3ZWY0MDAzNTE4M2E5 YTM5NTAyZDY3Njk2MjQyYzJhZWI0NjljCitjaGVja3N1bT00NmQ0OGQ2ODc0NjQ2ZDEyZWM1ZWJj NjIyMTU4NDU2ZGIxY2VlYWY0OTI0YmQxZmM4YmY1OWNiYWFmYTFlMWMyCisKK3Bvc3RfZXh0cmFj dCgpIHsKKwl2c2VkIC1pICdzL2xpYmNvbXBpemNvbmZpZyA+PSAwXC45XC4xNFwuMC9saWJjb21w aXpjb25maWcgPj0gMC44LjE2LjAvJyBcCisJCWNvbmZpZ3VyZS5hYworfQorCitwcmVfY29uZmln dXJlKCkgeworCWF1dG9yZWNvbmYgLWlmCit9CisKK3Bvc3RfaW5zdGFsbCgpIHsKKwl2aW5zdGFs bCAke0ZJTEVTRElSfS9nbm9tZS1mbGFzaGJhY2sucGFtIDY0NCAvZXRjL3BhbS5kIGdub21lLWZs YXNoYmFjaworCXZzZWQgLWkgLWUgInMvIC0tc3lzdGVtZC8vZyIgXAorCQkke0RFU1RESVJ9L3Vz ci9saWJleGVjL2dub21lLWZsYXNoYmFjay17Y29tcGl6LG1ldGFjaXR5fQorfQoKRnJvbSBlZGVl MThjNDEzZGVhNmNlOWQ0MTE2MjBjMDcyNDdhZTI2YWQyNGVhIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVHVl LCAxOCBBdWcgMjAyMCAwNTozNTowNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTAwLzEwMl0gYnVk Z2llLWRlc2t0b3A6IHJlYnVpbGQgZm9yIG11dHRlci03CgpbY2kgc2tpcF0KLS0tCiAuLi4vYnVk Z2llLWRlc2t0b3AvcGF0Y2hlcy9hcHBzeXMtYnVpbGQucGF0Y2ggfCAgICAxMSArCiAuLi4vYnVk Z2llLWRlc2t0b3AvcGF0Y2hlcy9nbm9tZS0zMzgucGF0Y2ggICAgfCAxMzQ3MiArKysrKysrKysr KysrKysrCiBzcmNwa2dzL2J1ZGdpZS1kZXNrdG9wL3RlbXBsYXRlICAgICAgICAgICAgICAgfCAg ICAgMiArLQogMyBmaWxlcyBjaGFuZ2VkLCAxMzQ4NCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9u KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9idWRnaWUtZGVza3RvcC9wYXRjaGVzL2Fw cHN5cy1idWlsZC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvYnVkZ2llLWRlc2t0 b3AvcGF0Y2hlcy9nbm9tZS0zMzgucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2J1ZGdpZS1k ZXNrdG9wL3BhdGNoZXMvYXBwc3lzLWJ1aWxkLnBhdGNoIGIvc3JjcGtncy9idWRnaWUtZGVza3Rv cC9wYXRjaGVzL2FwcHN5cy1idWlsZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uYjY2MjVmMDQ2ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2J1ZGdp ZS1kZXNrdG9wL3BhdGNoZXMvYXBwc3lzLWJ1aWxkLnBhdGNoCkBAIC0wLDAgKzEsMTEgQEAKKy0t LSBzcmMvYXBwc3lzL0FwcFN5c3RlbS52YWxhCisrKysgc3JjL2FwcHN5cy9BcHBTeXN0ZW0udmFs YQorQEAgLTcwLDcgKzcwLDcgQEAgcHVibGljIGNsYXNzIEFwcFN5c3RlbSA6IEdMaWIuT2JqZWN0 CisgICAgIH0KKyAKKyAgICAgcHJpdmF0ZSB2b2lkIHNpZ25hbF9yZWNlaXZlZChHTGliLkRCdXND b25uZWN0aW9uIGNvbm5lY3Rpb24sCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RyaW5nIHNlbmRlciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmc/ IHNlbmRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcgb2JqZWN0 X3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nIGludGVyZmFj ZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZyBzaWduYWxf bmFtZSwKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYnVkZ2llLWRlc2t0b3AvcGF0Y2hlcy9nbm9tZS0z MzgucGF0Y2ggYi9zcmNwa2dzL2J1ZGdpZS1kZXNrdG9wL3BhdGNoZXMvZ25vbWUtMzM4LnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45MmZhNzZhMTdiMAotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvYnVkZ2llLWRlc2t0b3AvcGF0Y2hlcy9nbm9tZS0zMzgu cGF0Y2gKQEAgLTAsMCArMSwxMzQ3MiBAQAorRnJvbSAzMGJhMGI1YTQ5ODZkNmJlMzY4N2ExZDdm YjQ4MjkwNjE4NWVhOGM5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRGF2aWQgTW9o YW1tZWQgPGZvc3NmcmVlZG9tQHVzZXJzLm5vcmVwbHkuZ2l0aHViLmNvbT4KK0RhdGU6IFR1ZSwg MTggRmViIDIwMjAgMDY6NDA6MTIgKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0gZ25vbWUgMy4zOCBj b21wYXRpYmlsaXR5CisKK1NxdWFzaGVkIGJ5IEBxNjYgZnJvbToKKworaHR0cHM6Ly9naXRodWIu Y29tL3NvbHVzLXByb2plY3QvYnVkZ2llLWRlc2t0b3AvcHVsbC8xOTg3CisKK3BsdXMgYW4gYXNz b3J0bWVudCBvZiBvbGRlciBtdXR0ZXIgdXBkYXRlcyBmcm9tIGdpdCBtYXN0ZXIKKy0tLQorIG1l c29uLmJ1aWxkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTYgKy0KKyBt ZXNvbl9vcHRpb25zLnR4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxIC0KKyBz cmMvYXBwbGV0cy9zdGF0dXMvU3RhdHVzQXBwbGV0LnZhbGEgICAgICAgICAgfCAgICA2IC0KKyBz cmMvYXBwbGV0cy9zdGF0dXMvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgfCAgIDEzICstCisg c3JjL3dtL2JhY2tncm91bmQudmFsYSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNSArLQor IHNyYy93bS9tZXNvbi5idWlsZCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzAgKy0K KyBzcmMvd20vc2hpbS52YWxhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEwICst Cisgc3JjL3dtL3dtLnZhbGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMCAr LQorIC4uLntDbHV0dGVyLTUubWV0YWRhdGEgPT4gQ2x1dHRlci02Lm1ldGFkYXRhfSB8ICAgIDAK KyAuLi57Q2x1dHRlci00Lm1ldGFkYXRhID0+IENsdXR0ZXItNy5tZXRhZGF0YX0gfCAgIDQzIC0K KyB2YXBpL3tDb2dsLTQubWV0YWRhdGEgPT4gQ29nbC02Lm1ldGFkYXRhfSAgICAgfCAgICAwCisg dmFwaS97Q29nbC01Lm1ldGFkYXRhID0+IENvZ2wtNy5tZXRhZGF0YX0gICAgIHwgICAgMiAtCisg dmFwaS9NZXRhLTMubWV0YWRhdGEgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2NiAtCisg dmFwaS97TWV0YS01Lm1ldGFkYXRhID0+IE1ldGEtNi5tZXRhZGF0YX0gICAgIHwgICAgMAorIHZh cGkve01ldGEtNC5tZXRhZGF0YSA9PiBNZXRhLTcubWV0YWRhdGF9ICAgICB8ICAgMjUgKy0KKyB2 YXBpL2dlbmVyYXRlLW11dHRlci12YXBpLnNoICAgICAgICAgICAgICAgICAgfCAgICAyICstCisg dmFwaS9ncmFwaGVuZS1nb2JqZWN0LTEuMC52YXBpICAgICAgICAgICAgICAgIHwgIDY5MSArKysr KysrCisgdmFwaS9saWJtdXR0ZXItMi5kZXBzICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg OSAtCisgdmFwaS9saWJtdXR0ZXItMi52YXBpICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTMy NSAtLS0tLS0tLS0tLS0tLQorIHZhcGkvbGlibXV0dGVyLTMtY3VzdG9tLnZhbGEgICAgICAgICAg ICAgICAgICB8ICAgIDYgLQorIHZhcGkvbGlibXV0dGVyLTMuZGVwcyAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgIDkgLQorIHZhcGkvbGlibXV0dGVyLTQuZGVwcyAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgIDggLQorIHZhcGkvbGlibXV0dGVyLTQudmFwaSAgICAgICAgICAgICAgICAg ICAgICAgICB8IDE0MjUgLS0tLS0tLS0tLS0tLS0tCisgdmFwaS97bGlibXV0dGVyLTUuZGVwcyA9 PiBsaWJtdXR0ZXItNi5kZXBzfSAgIHwgICAgMyArLQorIHZhcGkve2xpYm11dHRlci01LnZhcGkg PT4gbGlibXV0dGVyLTYudmFwaX0gICB8ICAgNDUgKy0KKyB2YXBpL2xpYm11dHRlci03LWN1c3Rv bS52YWxhICAgICAgICAgICAgICAgICAgfCAgICA3ICsKKyB2YXBpL2xpYm11dHRlci03LmRlcHMg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA2ICsKKyB2YXBpL3tsaWJtdXR0ZXItMy52YXBp ID0+IGxpYm11dHRlci03LnZhcGl9ICAgfCAgMzkwICsrLS0KKyB2YXBpL2xpYm11dHRlci1jb2ds LTQudmFwaSAgICAgICAgICAgICAgICAgICAgfCAxMjcyIC0tLS0tLS0tLS0tLS0KKyB2YXBpL211 dHRlci1jbHV0dGVyLTUtY3VzdG9tLnZhbGEgICAgICAgICAgICAgfCAgMTU4IC0tCisgLi4uc3Rv bS52YWxhID0+IG11dHRlci1jbHV0dGVyLTYtY3VzdG9tLnZhbGF9IHwgICAxMSAtCisgLi4uci1j bHV0dGVyLTUuZGVwcyA9PiBtdXR0ZXItY2x1dHRlci02LmRlcHN9IHwgICAgMiArLQorIC4uLnIt Y2x1dHRlci01LnZhcGkgPT4gbXV0dGVyLWNsdXR0ZXItNi52YXBpfSB8ICA4MDYgKystLS0tLS0K KyAuLi5yLWNsdXR0ZXItNC5kZXBzID0+IG11dHRlci1jbHV0dGVyLTcuZGVwc30gfCAgICAzICst CisgLi4uci1jbHV0dGVyLTQudmFwaSA9PiBtdXR0ZXItY2x1dHRlci03LnZhcGl9IHwgMTYxNSAr KysrLS0tLS0tLS0tLS0tLQorIC4uLi1jdXN0b20udmFsYSA9PiBtdXR0ZXItY29nbC02LWN1c3Rv bS52YWxhfSB8ICAgIDAKKyAuLi57bXV0dGVyLWNvZ2wtNC5kZXBzID0+IG11dHRlci1jb2dsLTYu ZGVwc30gfCAgICAwCisgLi4ue211dHRlci1jb2dsLTUudmFwaSA9PiBtdXR0ZXItY29nbC02LnZh cGl9IHwgIDQyMiArLS0tLQorIC4uLi1jdXN0b20udmFsYSA9PiBtdXR0ZXItY29nbC03LWN1c3Rv bS52YWxhfSB8ICAgMjAgKy0KKyAuLi57bXV0dGVyLWNvZ2wtNS5kZXBzID0+IG11dHRlci1jb2ds LTcuZGVwc30gfCAgICAwCisgLi4ue211dHRlci1jb2dsLTQudmFwaSA9PiBtdXR0ZXItY29nbC03 LnZhcGl9IHwgIDY3MSArKystLS0tCisgdmFwaS9wb2xraXQtZ29iamVjdC0xLnZhcGkgICAgICAg ICAgICAgICAgICAgIHwgICAzMSArLQorIDQyIGZpbGVzIGNoYW5nZWQsIDE5MjAgaW5zZXJ0aW9u cygrKSwgNzI1NCBkZWxldGlvbnMoLSkKKyByZW5hbWUgdmFwaS97Q2x1dHRlci01Lm1ldGFkYXRh ID0+IENsdXR0ZXItNi5tZXRhZGF0YX0gKDEwMCUpCisgcmVuYW1lIHZhcGkve0NsdXR0ZXItNC5t ZXRhZGF0YSA9PiBDbHV0dGVyLTcubWV0YWRhdGF9ICg3OCUpCisgcmVuYW1lIHZhcGkve0NvZ2wt NC5tZXRhZGF0YSA9PiBDb2dsLTYubWV0YWRhdGF9ICgxMDAlKQorIHJlbmFtZSB2YXBpL3tDb2ds LTUubWV0YWRhdGEgPT4gQ29nbC03Lm1ldGFkYXRhfSAoOTElKQorIGRlbGV0ZSBtb2RlIDEwMDY0 NCB2YXBpL01ldGEtMy5tZXRhZGF0YQorIHJlbmFtZSB2YXBpL3tNZXRhLTUubWV0YWRhdGEgPT4g TWV0YS02Lm1ldGFkYXRhfSAoMTAwJSkKKyByZW5hbWUgdmFwaS97TWV0YS00Lm1ldGFkYXRhID0+ IE1ldGEtNy5tZXRhZGF0YX0gKDc2JSkKKyBjcmVhdGUgbW9kZSAxMDA2NDQgdmFwaS9ncmFwaGVu ZS1nb2JqZWN0LTEuMC52YXBpCisgZGVsZXRlIG1vZGUgMTAwNjQ0IHZhcGkvbGlibXV0dGVyLTIu ZGVwcworIGRlbGV0ZSBtb2RlIDEwMDY0NCB2YXBpL2xpYm11dHRlci0yLnZhcGkKKyBkZWxldGUg bW9kZSAxMDA2NDQgdmFwaS9saWJtdXR0ZXItMy1jdXN0b20udmFsYQorIGRlbGV0ZSBtb2RlIDEw MDY0NCB2YXBpL2xpYm11dHRlci0zLmRlcHMKKyBkZWxldGUgbW9kZSAxMDA2NDQgdmFwaS9saWJt dXR0ZXItNC5kZXBzCisgZGVsZXRlIG1vZGUgMTAwNjQ0IHZhcGkvbGlibXV0dGVyLTQudmFwaQor IHJlbmFtZSB2YXBpL3tsaWJtdXR0ZXItNS5kZXBzID0+IGxpYm11dHRlci02LmRlcHN9ICg1MCUp CisgcmVuYW1lIHZhcGkve2xpYm11dHRlci01LnZhcGkgPT4gbGlibXV0dGVyLTYudmFwaX0gKDk3 JSkKKyBjcmVhdGUgbW9kZSAxMDA2NDQgdmFwaS9saWJtdXR0ZXItNy1jdXN0b20udmFsYQorIGNy ZWF0ZSBtb2RlIDEwMDY0NCB2YXBpL2xpYm11dHRlci03LmRlcHMKKyByZW5hbWUgdmFwaS97bGli bXV0dGVyLTMudmFwaSA9PiBsaWJtdXR0ZXItNy52YXBpfSAoNzUlKQorIGRlbGV0ZSBtb2RlIDEw MDY0NCB2YXBpL2xpYm11dHRlci1jb2dsLTQudmFwaQorIGRlbGV0ZSBtb2RlIDEwMDY0NCB2YXBp L211dHRlci1jbHV0dGVyLTUtY3VzdG9tLnZhbGEKKyByZW5hbWUgdmFwaS97bXV0dGVyLWNsdXR0 ZXItNC1jdXN0b20udmFsYSA9PiBtdXR0ZXItY2x1dHRlci02LWN1c3RvbS52YWxhfSAoOTIlKQor IHJlbmFtZSB2YXBpL3ttdXR0ZXItY2x1dHRlci01LmRlcHMgPT4gbXV0dGVyLWNsdXR0ZXItNi5k ZXBzfSAoNjMlKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY2x1dHRlci01LnZhcGkgPT4gbXV0dGVy LWNsdXR0ZXItNi52YXBpfSAoOTMlKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY2x1dHRlci00LmRl cHMgPT4gbXV0dGVyLWNsdXR0ZXItNy5kZXBzfSAoNTQlKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXIt Y2x1dHRlci00LnZhcGkgPT4gbXV0dGVyLWNsdXR0ZXItNy52YXBpfSAoODYlKQorIHJlbmFtZSB2 YXBpL3ttdXR0ZXItY29nbC01LWN1c3RvbS52YWxhID0+IG11dHRlci1jb2dsLTYtY3VzdG9tLnZh bGF9ICgxMDAlKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY29nbC00LmRlcHMgPT4gbXV0dGVyLWNv Z2wtNi5kZXBzfSAoMTAwJSkKKyByZW5hbWUgdmFwaS97bXV0dGVyLWNvZ2wtNS52YXBpID0+IG11 dHRlci1jb2dsLTYudmFwaX0gKDY4JSkKKyByZW5hbWUgdmFwaS97bXV0dGVyLWNvZ2wtNC1jdXN0 b20udmFsYSA9PiBtdXR0ZXItY29nbC03LWN1c3RvbS52YWxhfSAoODElKQorIHJlbmFtZSB2YXBp L3ttdXR0ZXItY29nbC01LmRlcHMgPT4gbXV0dGVyLWNvZ2wtNy5kZXBzfSAoMTAwJSkKKyByZW5h bWUgdmFwaS97bXV0dGVyLWNvZ2wtNC52YXBpID0+IG11dHRlci1jb2dsLTcudmFwaX0gKDU5JSkK KworZGlmZiAtLWdpdCBtZXNvbi5idWlsZCBtZXNvbi5idWlsZAoraW5kZXggMmEwZTAzMTYuLjNj NGM2YWMxIDEwMDY0NAorLS0tIG1lc29uLmJ1aWxkCisrKysgbWVzb24uYnVpbGQKK0BAIC0zMiwx NiArMzIsMTYgQEAgYW1fY2ZsYWdzID0gWworIGFkZF9nbG9iYWxfYXJndW1lbnRzKGFtX2NmbGFn cywgbGFuZ3VhZ2U6ICdjJykKKyBtZXNvbi5hZGRfaW5zdGFsbF9zY3JpcHQoJ21lc29uX3Bvc3Rf aW5zdGFsbC5zaCcpCisgCistIyBCdWRnaWUgbmVlZHMgYSBtaW5pbXVtIDMuMjIgR05PTUUgc3Rh Y2sKKy1nbm9tZV9taW5pbXVtX3ZlcnNpb24gPSAnPj0gMy4yMi4wJworKyMgQnVkZ2llIG5lZWRz IGEgbWluaW11bSAzLjI0IEdOT01FIHN0YWNrCisrZ25vbWVfbWluaW11bV92ZXJzaW9uID0gJz49 IDMuMjQuMCcKKyAKKyBkZXBfZ3RrMyA9IGRlcGVuZGVuY3koJ2d0aystMy4wJywgdmVyc2lvbjog Z25vbWVfbWluaW11bV92ZXJzaW9uKQorLWRlcF9nbGliID0gZGVwZW5kZW5jeSgnZ2xpYi0yLjAn LCB2ZXJzaW9uOiAnPj0gMi40Ni4wJykKKy1kZXBfZ2lvdW5peCA9IGRlcGVuZGVuY3koJ2dpby11 bml4LTIuMCcsIHZlcnNpb246ICc+PSAyLjQ2LjAnKQorLWRlcF9wZWFzID0gZGVwZW5kZW5jeSgn bGlicGVhcy0xLjAnLCB2ZXJzaW9uOiAnPj0gMS44LjAnKQorK2RlcF9nbGliID0gZGVwZW5kZW5j eSgnZ2xpYi0yLjAnLCB2ZXJzaW9uOiAnPj0gMi42Mi4wJykKKytkZXBfZ2lvdW5peCA9IGRlcGVu ZGVuY3koJ2dpby11bml4LTIuMCcsIHZlcnNpb246ICc+PSAyLjYyLjAnKQorK2RlcF9wZWFzID0g ZGVwZW5kZW5jeSgnbGlicGVhcy0xLjAnLCB2ZXJzaW9uOiAnPj0gMS4yNC4wJykKKyBkZXBfZ2Rr eDExID0gZGVwZW5kZW5jeSgnZ2RrLXgxMS0zLjAnLCB2ZXJzaW9uOiBnbm9tZV9taW5pbXVtX3Zl cnNpb24pCisgZGVwX2xpYnV1aWQgPSBkZXBlbmRlbmN5KCd1dWlkJykKKy1kZXBfdmFsYSA9IGRl cGVuZGVuY3koJ3ZhcGlnZW4nLCB2ZXJzaW9uOiAnPj0gMC40MC4wJykKKytkZXBfdmFsYSA9IGRl cGVuZGVuY3koJ3ZhcGlnZW4nLCB2ZXJzaW9uOiAnPj0gMC40Ni4wJykKKyAKKyAjIE5lZWRlZCBm b3Iga2V5Ym9hcmR5IGJpdHMKKyBkZXBfaWJ1cyA9IGRlcGVuZGVuY3koJ2lidXMtMS4wJywgdmVy c2lvbjogJz49IDEuNS4xMCcpCitAQCAtNTEsMTAgKzUxLDEwIEBAIGRlcF9nc2V0dGluZ3MgPSBk ZXBlbmRlbmN5KCdnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzJywgdmVyc2lvbjogZ25vbWVfbWlu aW11bV92CisgZGVwX2dzZCA9IGRlcGVuZGVuY3koJ2dub21lLXNldHRpbmdzLWRhZW1vbicsIHZl cnNpb246ICc+PTMuMjguMCcpCisgCisgIyB3bmNrIHVzZWQgYWxsIG92ZXIgdGhlIHBsYWNlLi4K Ky1kZXBfd25jayA9IGRlcGVuZGVuY3koJ2xpYnduY2stMy4wJywgdmVyc2lvbjogJz49IDMuMTQu MCcpCisrZGVwX3duY2sgPSBkZXBlbmRlbmN5KCdsaWJ3bmNrLTMuMCcsIHZlcnNpb246ICc+PSAz LjMyLjAnKQorIAorICMgYWNjb3VudHNzZXJ2aWNlIGluIG11bHRpcGxlIGFwcGxldHMKKy1kZXBf YWNjb3VudHNzZXJ2aWNlID0gZGVwZW5kZW5jeSgnYWNjb3VudHNzZXJ2aWNlJywgdmVyc2lvbjog Jz49IDAuNi40MCcpCisrZGVwX2FjY291bnRzc2VydmljZSA9IGRlcGVuZGVuY3koJ2FjY291bnRz c2VydmljZScsIHZlcnNpb246ICc+PSAwLjYuNTUnKQorIAorICMgQ3JlYXRlIGNvbmZpZy5oCisg Y2RhdGEgPSBjb25maWd1cmF0aW9uX2RhdGEoKQorZGlmZiAtLWdpdCBtZXNvbl9vcHRpb25zLnR4 dCBtZXNvbl9vcHRpb25zLnR4dAoraW5kZXggZDcxYjA5YjUuLmRjYTkxMjk2IDEwMDY0NAorLS0t IG1lc29uX29wdGlvbnMudHh0CisrKysgbWVzb25fb3B0aW9ucy50eHQKK0BAIC0xLDUgKzEsNCBA QAorIG9wdGlvbignd2l0aC1zdGF0ZWxlc3MnLCB0eXBlOiAnYm9vbGVhbicsIHZhbHVlOiBmYWxz ZSwgZGVzY3JpcHRpb246ICdFbmFibGUgc3RhdGVsZXNzIFhERyBwYXRocycpCisgb3B0aW9uKCd3 aXRoLXBvbGtpdCcsIHR5cGU6ICdib29sZWFuJywgdmFsdWU6IHRydWUsIGRlc2NyaXB0aW9uOiAn RW5hYmxlIFBvbEtpdCBzdXBwb3J0JykKKy1vcHRpb24oJ3dpdGgtYmx1ZXRvb3RoJywgdHlwZTog J2Jvb2xlYW4nLCB2YWx1ZTogdHJ1ZSwgZGVzY3JpcHRpb246ICdFbmFibGUgZ25vbWUtYmx1ZXRv b3RoIHN1cHBvcnQnKQorIG9wdGlvbignd2l0aC1ndGstZG9jJywgdHlwZTogJ2Jvb2xlYW4nLCB2 YWx1ZTogdHJ1ZSwgZGVzY3JpcHRpb246ICdCdWlsZCBndGstZG9jIGRvY3VtZW50YXRpb24nKQor IG9wdGlvbignd2l0aC1kZXNrdG9wLWljb25zJywgdHlwZTogJ2NvbWJvJywgY2hvaWNlczogWydu YXV0aWx1cycsICdub25lJ10sIHZhbHVlOiAnbmF1dGlsdXMnLCBkZXNjcmlwdGlvbjogJ0Rlc2t0 b3AgaWNvbiBoYW5kbGluZycpCitkaWZmIC0tZ2l0IHNyYy9hcHBsZXRzL3N0YXR1cy9TdGF0dXNB cHBsZXQudmFsYSBzcmMvYXBwbGV0cy9zdGF0dXMvU3RhdHVzQXBwbGV0LnZhbGEKK2luZGV4IGI5 ODI2Mzk0Li43MWYyODdjOSAxMDA2NDQKKy0tLSBzcmMvYXBwbGV0cy9zdGF0dXMvU3RhdHVzQXBw bGV0LnZhbGEKKysrKyBzcmMvYXBwbGV0cy9zdGF0dXMvU3RhdHVzQXBwbGV0LnZhbGEKK0BAIC0y MCw5ICsyMCw3IEBAIHB1YmxpYyBjbGFzcyBTdGF0dXNBcHBsZXQgOiBCdWRnaWUuQXBwbGV0Cisg eworIAorICAgICBwcm90ZWN0ZWQgR3RrLkJveCB3aWRnZXQ7CistI2lmIFdJVEhfQkxVRVRPT1RI CisgICAgIHByb3RlY3RlZCBCbHVldG9vdGhJbmRpY2F0b3IgYmx1ZTsKKy0jZW5kaWYKKyAgICAg cHJvdGVjdGVkIFNvdW5kSW5kaWNhdG9yIHNvdW5kOworICAgICBwcm90ZWN0ZWQgUG93ZXJJbmRp Y2F0b3IgcG93ZXI7CisgICAgIHByb3RlY3RlZCBHdGsuRXZlbnRCb3g/IHdyYXA7CitAQCAtNjgs MTIgKzY2LDEwIEBAIHB1YmxpYyBjbGFzcyBTdGF0dXNBcHBsZXQgOiBCdWRnaWUuQXBwbGV0Cisg ICAgICAgICB0aGlzLnNldHVwX3BvcG92ZXIocG93ZXIuZWJveCwgcG93ZXIucG9wb3Zlcik7Cisg ICAgICAgICB0aGlzLnNldHVwX3BvcG92ZXIoc291bmQuZWJveCwgc291bmQucG9wb3Zlcik7Cisg CistI2lmIFdJVEhfQkxVRVRPT1RICisgICAgICAgICBibHVlID0gbmV3IEJsdWV0b290aEluZGlj YXRvcigpOworICAgICAgICAgd2lkZ2V0LnBhY2tfc3RhcnQoYmx1ZSwgZmFsc2UsIGZhbHNlLCAy KTsKKyAgICAgICAgIGJsdWUuc2hvd19hbGwoKTsKKyAgICAgICAgIHRoaXMuc2V0dXBfcG9wb3Zl cihibHVlLmVib3gsIGJsdWUucG9wb3Zlcik7CistI2VuZGlmCisgICAgIH0KKyAKKyAgICAgcHVi bGljIG92ZXJyaWRlIHZvaWQgcGFuZWxfcG9zaXRpb25fY2hhbmdlZChCdWRnaWUuUGFuZWxQb3Np dGlvbiBwb3NpdGlvbikKK0BAIC05MSw5ICs4Nyw3IEBAIHB1YmxpYyBjbGFzcyBTdGF0dXNBcHBs ZXQgOiBCdWRnaWUuQXBwbGV0CisgICAgICAgICB0aGlzLm1hbmFnZXIgPSBtYW5hZ2VyOworICAg ICAgICAgbWFuYWdlci5yZWdpc3Rlcl9wb3BvdmVyKHBvd2VyLmVib3gsIHBvd2VyLnBvcG92ZXIp OworICAgICAgICAgbWFuYWdlci5yZWdpc3Rlcl9wb3BvdmVyKHNvdW5kLmVib3gsIHNvdW5kLnBv cG92ZXIpOworLSNpZiBXSVRIX0JMVUVUT09USAorICAgICAgICAgbWFuYWdlci5yZWdpc3Rlcl9w b3BvdmVyKGJsdWUuZWJveCwgYmx1ZS5wb3BvdmVyKTsKKy0jZW5kaWYKKyAgICAgfQorIH0gLy8g RW5kIGNsYXNzCisgCitkaWZmIC0tZ2l0IHNyYy9hcHBsZXRzL3N0YXR1cy9tZXNvbi5idWlsZCBz cmMvYXBwbGV0cy9zdGF0dXMvbWVzb24uYnVpbGQKK2luZGV4IDY5OWZiOGY0Li5iNGQyNzA2YyAx MDA2NDQKKy0tLSBzcmMvYXBwbGV0cy9zdGF0dXMvbWVzb24uYnVpbGQKKysrKyBzcmMvYXBwbGV0 cy9zdGF0dXMvbWVzb24uYnVpbGQKK0BAIC0xMCw2ICsxMCw3IEBAIGN1c3RvbV90YXJnZXQoJ3Bs dWdpbi1maWxlLXN0YXR1cycsCisgICAgIGluc3RhbGxfZGlyIDogYXBwbGV0X3N0YXR1c19kaXIp CisgCisgYXBwbGV0X3N0YXR1c19zb3VyY2VzID0gWworKyAgICAnQmx1ZXRvb3RoSW5kaWNhdG9y LnZhbGEnLAorICAgICAnU3RhdHVzQXBwbGV0LnZhbGEnLAorICAgICAnUG93ZXJJbmRpY2F0b3Iu dmFsYScsCisgICAgICdTb3VuZEluZGljYXRvci52YWxhJywKK0BAIC0yMCwyMiArMjEsMTMgQEAg YXBwbGV0X3N0YXR1c19kZXBzID0gWworICAgICBkZXBfZ3RrMywKKyAgICAgZGVwX3BlYXMsCisg ICAgIGRlcF9hY2NvdW50c3NlcnZpY2UsCisrICAgIGRlcGVuZGVuY3koJ2dub21lLWJsdWV0b290 aC0xLjAnLCB2ZXJzaW9uOiBnbm9tZV9taW5pbXVtX3ZlcnNpb24pLAorICAgICBkZXBlbmRlbmN5 KCd1cG93ZXItZ2xpYicsIHZlcnNpb246ICc+PSAwLjk5LjAnKSwKKyAgICAgbGlua19saWJwbHVn aW4sCisgICAgIGd2Yy5nZXRfdmFyaWFibGUoJ2xpYmd2Y19kZXAnKSwKKyAgICAgbWVzb24uZ2V0 X2NvbXBpbGVyKCdjJykuZmluZF9saWJyYXJ5KCdtJywgcmVxdWlyZWQ6IGZhbHNlKSwKKyBdCisg CistIyBCbHVldG9vdGggaXMgb3B0aW9uYWwgdG8gYWxsb3cgc21hbGxlciBidWlsZHMKKy13aXRo X2JsdWV0b290aCA9IGdldF9vcHRpb24oJ3dpdGgtYmx1ZXRvb3RoJykKKy1hcHBsZXRfc3RhdHVz X3ZhbGFfYXJncyA9IFtdCistCistaWYgd2l0aF9ibHVldG9vdGggPT0gdHJ1ZQorLSAgICBhcHBs ZXRfc3RhdHVzX2RlcHMgKz0gZGVwZW5kZW5jeSgnZ25vbWUtYmx1ZXRvb3RoLTEuMCcsIHZlcnNp b246IGdub21lX21pbmltdW1fdmVyc2lvbikKKy0gICAgYXBwbGV0X3N0YXR1c19zb3VyY2VzICs9 ICdCbHVldG9vdGhJbmRpY2F0b3IudmFsYScKKy0gICAgYXBwbGV0X3N0YXR1c192YWxhX2FyZ3Mg Kz0gWyctRCcsICdXSVRIX0JMVUVUT09USCddCistZW5kaWYKKy0KKyBzaGFyZWRfbGlicmFyeSgK KyAgICAgJ3N0YXR1c2FwcGxldCcsCisgICAgIGFwcGxldF9zdGF0dXNfc291cmNlcywKK0BAIC01 MCw3ICs0Miw2IEBAIHNoYXJlZF9saWJyYXJ5KAorICAgICAgICAgJy0tcGtnJywgJ2d2Yy0xLjAn LAorICAgICAgICAgJy0tcGtnJywgJ2dpby11bml4LTIuMCcsCisgICAgICAgICAnLS12YXBpZGly Jywgam9pbl9wYXRocyhtZXNvbi5zb3VyY2Vfcm9vdCgpLCAndmFwaScpLAorLSAgICAgICAgYXBw bGV0X3N0YXR1c192YWxhX2FyZ3MsCisgICAgIF0sCisgICAgIGluc3RhbGw6IHRydWUsCisgICAg IGluc3RhbGxfZGlyOiBhcHBsZXRfc3RhdHVzX2RpciwKK2RpZmYgLS1naXQgc3JjL3dtL2JhY2tn cm91bmQudmFsYSBzcmMvd20vYmFja2dyb3VuZC52YWxhCitpbmRleCAwODRhYTlhYi4uYjMzMWUw YzQgMTAwNjQ0CistLS0gc3JjL3dtL2JhY2tncm91bmQudmFsYQorKysrIHNyYy93bS9iYWNrZ3Jv dW5kLnZhbGEKK0BAIC0yMDQsOCArMjA0LDEzIEBAIHB1YmxpYyBjbGFzcyBCdWRnaWVCYWNrZ3Jv dW5kIDogQ2x1dHRlci5BY3RvcgorIAorICAgICAgICAgdmFyIGFjdG9yID0gbmV3IE1ldGEuQmFj a2dyb3VuZEFjdG9yKGRpc3BsYXksIGluZGV4KTsKKyAgICAgICAgIHZhciBiYWNrZ3JvdW5kID0g bmV3IE1ldGEuQmFja2dyb3VuZChkaXNwbGF5KTsKKysjaWYgSEFWRV9NVVRURVJfNgorICAgICAg ICAgYWN0b3Iuc2V0X2JhY2tncm91bmQoYmFja2dyb3VuZCk7CistCisrI2Vsc2UKKysgICAgICAg IHZhciBjb250ZW50ID0gYWN0b3IuZ2V0X2NvbnRlbnQoKTsKKysgICAgICAgIHVub3duZWQgTWV0 YS5CYWNrZ3JvdW5kQ29udGVudCBiYWNrZ3JvdW5kX2NvbnRlbnQgPSAoTWV0YS5CYWNrZ3JvdW5k Q29udGVudCkgY29udGVudDsKKysgICAgICAgIGJhY2tncm91bmRfY29udGVudC5zZXRfYmFja2dy b3VuZChiYWNrZ3JvdW5kKTsKKysjZW5kaWYKKyAgICAgICAgIHJlY3QgPSBkaXNwbGF5LmdldF9t b25pdG9yX2dlb21ldHJ5KGluZGV4KTsKKyAgICAgICAgIGFjdG9yLnNldF9zaXplKHJlY3Qud2lk dGgsIHJlY3QuaGVpZ2h0KTsKKyAgICAgICAgIGFjdG9yLnNldCgib3BhY2l0eSIsIDApOworQEAg LTIyMSwxMyArMjI2LDIxIEBAIHB1YmxpYyBjbGFzcyBCdWRnaWVCYWNrZ3JvdW5kIDogQ2x1dHRl ci5BY3RvcgorICAgICAgICAgc2hhZGluZ19kaXJlY3Rpb24gPSAoR0Rlc2t0b3AuQmFja2dyb3Vu ZFNoYWRpbmcpc2V0dGluZ3MuZ2V0X2VudW0oQ09MT1JfU0hBRElOR19UWVBFX0tFWSk7CisgICAg ICAgICB2YXIgY29sb3Jfc3RyID0gc2V0dGluZ3MuZ2V0X3N0cmluZyhQUklNQVJZX0NPTE9SX0tF WSk7CisgICAgICAgICBpZiAoY29sb3Jfc3RyICE9IG51bGwgJiYgY29sb3Jfc3RyICE9ICIiKSB7 CisrI2lmIEhBVkVfTVVUVEVSXzYKKyAgICAgICAgICAgICBwcmltYXJ5X2NvbG9yID0gQ2x1dHRl ci5Db2xvci5mcm9tX3N0cmluZyhjb2xvcl9zdHIpOworKyNlbHNlCisrICAgICAgICAgICAgQ2x1 dHRlci5Db2xvci5mcm9tX3N0cmluZyhvdXQgcHJpbWFyeV9jb2xvciwgY29sb3Jfc3RyKTsKKysj ZW5kaWYKKyAgICAgICAgICAgICBjb2xvcl9zdHIgPSBudWxsOworICAgICAgICAgfQorIAorICAg ICAgICAgY29sb3Jfc3RyID0gc2V0dGluZ3MuZ2V0X3N0cmluZyhTRUNPTkRBUllfQ09MT1JfS0VZ KTsKKyAgICAgICAgIGlmIChjb2xvcl9zdHIgIT0gbnVsbCAmJiBjb2xvcl9zdHIgIT0gIiIpIHsK KysjaWYgSEFWRV9NVVRURVJfNgorICAgICAgICAgICAgIHNlY29uZGFyeV9jb2xvciA9IENsdXR0 ZXIuQ29sb3IuZnJvbV9zdHJpbmcoY29sb3Jfc3RyKTsKKysjZWxzZQorKyAgICAgICAgICAgIENs dXR0ZXIuQ29sb3IuZnJvbV9zdHJpbmcob3V0IHNlY29uZGFyeV9jb2xvciwgY29sb3Jfc3RyKTsK KysjZW5kaWYKKyAgICAgICAgICAgICBjb2xvcl9zdHIgPSBudWxsOworICAgICAgICAgfQorIAor ZGlmZiAtLWdpdCBzcmMvd20vbWVzb24uYnVpbGQgc3JjL3dtL21lc29uLmJ1aWxkCitpbmRleCBl MzliODY3OC4uNTgzY2U3OTAgMTAwNjQ0CistLS0gc3JjL3dtL21lc29uLmJ1aWxkCisrKysgc3Jj L3dtL21lc29uLmJ1aWxkCitAQCAtMTcsMjAgKzE3LDE4IEBAIGJ1ZGdpZV93bV9zb3VyY2VzID0g WworIAorIGJ1ZGdpZV93bV9zdGF0dXNfdmFsYV9hcmdzID0gW10KKyAKKy12YXBpX211dHRlciA9 ICdsaWJtdXR0ZXItMycKKy1kZXBfbXV0dGVyID0gZGVwZW5kZW5jeSgnbGlibXV0dGVyLTMnLCB2 ZXJzaW9uOiBnbm9tZV9taW5pbXVtX3ZlcnNpb24sIHJlcXVpcmVkOiBmYWxzZSkKKy1pZiBub3Qg ZGVwX211dHRlci5mb3VuZCgpCistICAgIGRlcF9tdXR0ZXIgPSBkZXBlbmRlbmN5KCdsaWJtdXR0 ZXItNCcsIHZlcnNpb246IGdub21lX21pbmltdW1fdmVyc2lvbiwgcmVxdWlyZWQ6IGZhbHNlKQor K2RlcF9ncmFwaGVuZSA9IGRlcGVuZGVuY3koJ2dyYXBoZW5lLWdvYmplY3QtMS4wJywgdmVyc2lv bjogJz49IDEuMTAnKQorK2RlcF9tdXR0ZXIgPSBkZXBlbmRlbmN5KCdsaWJtdXR0ZXItNycsIHZl cnNpb246IGdub21lX21pbmltdW1fdmVyc2lvbiwgcmVxdWlyZWQ6IGZhbHNlKQorK2lmIGRlcF9t dXR0ZXIuZm91bmQoKQorKyAgICBidWRnaWVfd21fc3RhdHVzX3ZhbGFfYXJncyArPSBbJy1EJywg J0hBVkVfTVVUVEVSXzcnXQorKyAgICBtZXNzYWdlKCdVc2luZyBuZXcgbGlibXV0dGVyLTcgQUJJ IGZyb20gR05PTUUgMy4zOCcpCisrICAgIHZhcGlfbXV0dGVyID0gJ2xpYm11dHRlci03JworK2Vs c2UKKysgICAgZGVwX211dHRlciA9IGRlcGVuZGVuY3koJ2xpYm11dHRlci02JywgdmVyc2lvbjog Z25vbWVfbWluaW11bV92ZXJzaW9uKQorKyAgICBidWRnaWVfd21fc3RhdHVzX3ZhbGFfYXJncyAr PSBbJy1EJywgJ0hBVkVfTVVUVEVSXzYnXQorICAgICBpZiBkZXBfbXV0dGVyLmZvdW5kKCkKKy0g ICAgICAgIG1lc3NhZ2UoJ1VzaW5nIG5ldyBsaWJtdXR0ZXItNCBBQkkgZnJvbSBHTk9NRSAzLjMy JykKKy0gICAgICAgIHZhcGlfbXV0dGVyID0gJ2xpYm11dHRlci00JworLSAgICBlbHNlCistICAg ICAgICBkZXBfbXV0dGVyID0gZGVwZW5kZW5jeSgnbGlibXV0dGVyLTUnLCB2ZXJzaW9uOiBnbm9t ZV9taW5pbXVtX3ZlcnNpb24pCistICAgICAgICBpZiBkZXBfbXV0dGVyLmZvdW5kKCkKKy0gICAg ICAgICAgICBtZXNzYWdlKCdVc2luZyBuZXcgbGlibXV0dGVyLTUgQUJJIGZyb20gR05PTUUgMy4z NCcpCistICAgICAgICAgICAgdmFwaV9tdXR0ZXIgPSAnbGlibXV0dGVyLTUnCistICAgICAgICAg ICAgYnVkZ2llX3dtX3N0YXR1c192YWxhX2FyZ3MgKz0gWyctRCcsICdIQVZFX01VVFRFUl81J10K Ky0gICAgICAgIGVuZGlmCisrICAgICAgICBtZXNzYWdlKCdVc2luZyBuZXcgbGlibXV0dGVyLTYg QUJJIGZyb20gR05PTUUgMy4zNicpCisrICAgICAgICB2YXBpX211dHRlciA9ICdsaWJtdXR0ZXIt NicKKyAgICAgZW5kaWYKKyBlbmRpZgorIAorQEAgLTQyLDggKzQwLDggQEAgYnVkZ2llX3dtX2Rl cHMgPSBbCisgICAgIGRlcF9pYnVzLAorIF0KKyAKKy1pZiBkZXBfZ3NkLnZlcnNpb24oKS52ZXJz aW9uX2NvbXBhcmUoJz49My4zMS45MScpCistICAgIGJ1ZGdpZV93bV9zdGF0dXNfdmFsYV9hcmdz ICs9IFsnLUQnLCAnSEFWRV9HU0RfMzMyJ10KKytpZiBkZXBfZ3NkLnZlcnNpb24oKS52ZXJzaW9u X2NvbXBhcmUoJz49My4zNi4wJykKKysgICAgYnVkZ2llX3dtX3N0YXR1c192YWxhX2FyZ3MgKz0g WyctRCcsICdIQVZFX0dTRF9TVVBQT1JURUQnXQorIGVuZGlmCisgCisgYnVkZ2llX3dtX3ZhbGFf YXJncyA9ICBbCitAQCAtNjAsNyArNTgsNyBAQCBidWRnaWVfd21fdmFsYV9hcmdzID0gIFsKKyAK KyBycGF0aCA9ICcnCisgCistaWYgZGVwX211dHRlci52ZXJzaW9uKCkudmVyc2lvbl9jb21wYXJl KCc+PTMuMjguMCcpCisraWYgZGVwX211dHRlci52ZXJzaW9uKCkudmVyc2lvbl9jb21wYXJlKCc+ PTMuMzYuMCcpCisgICAgIHJwYXRoID0gZGVwX211dHRlci5nZXRfcGtnY29uZmlnX3ZhcmlhYmxl KCd0eXBlbGliZGlyJykKKyAgICAgYnVkZ2llX3dtX3ZhbGFfYXJncyArPSBbJy0tZ2lyZGlyJywg cnBhdGhdCisgZW5kaWYKK2RpZmYgLS1naXQgc3JjL3dtL3NoaW0udmFsYSBzcmMvd20vc2hpbS52 YWxhCitpbmRleCA0Y2RmYTBiMC4uZmMyNGIyODkgMTAwNjQ0CistLS0gc3JjL3dtL3NoaW0udmFs YQorKysrIHNyYy93bS9zaGltLnZhbGEKK0BAIC0xNCw3ICsxNCw3IEBAIG5hbWVzcGFjZSBCdWRn aWUgeworIHB1YmxpYyBzdHJ1Y3QgR3NkQWNjZWwgeworICAgICBzdHJpbmcgYWNjZWxlcmF0b3I7 CisgICAgIHVpbnQgZmxhZ3M7CistI2lmIEhBVkVfR1NEXzMzMgorKyNpZiBIQVZFX0dTRF9TVVBQ T1JURUQKKyAgICAgTWV0YS5LZXlCaW5kaW5nRmxhZ3MgZ3JhYl9mbGFnczsKKyAjZW5kaWYKKyB9 CitAQCAtMTkzLDExICsxOTMsNyBAQCBwdWJsaWMgY2xhc3MgU2hlbGxTaGltIDogR0xpYi5PYmpl Y3QKKyAgICAgICAgIG9zZF9wcm94eSA9IG51bGw7CisgICAgIH0KKyAKKy0jaWYgSEFWRV9NVVRU RVJfNQorICAgICBwcml2YXRlIHZvaWQgb25fYWNjZWxlcmF0b3JfYWN0aXZhdGVkKHVpbnQgYWN0 aW9uLCBDbHV0dGVyLklucHV0RGV2aWNlIGRldiwgdWludCBkZXZpY2VfaWQpCistI2Vsc2UKKy0g ICAgcHJpdmF0ZSB2b2lkIG9uX2FjY2VsZXJhdG9yX2FjdGl2YXRlZCh1aW50IGFjdGlvbiwgdWlu dCBkZXZpY2VfaWQpCistI2VuZGlmCisgICAgIHsKKyAgICAgICAgIEhhc2hUYWJsZTxzdHJpbmcs VmFyaWFudD4gcGFyYW1zID0gbmV3IEhhc2hUYWJsZTxzdHJpbmcsVmFyaWFudD4oc3RyX2hhc2gs IHN0cl9lcXVhbCk7CisgCitAQCAtMjMwLDcgKzIyNiw3IEBAIHB1YmxpYyBjbGFzcyBTaGVsbFNo aW0gOiBHTGliLk9iamVjdAorICAgICAgICAgfQorICAgICB9CisgCistI2lmIEhBVkVfR1NEXzMz MgorKyNpZiBIQVZFX0dTRF9TVVBQT1JURUQKKyAgICAgcHJpdmF0ZSB1aW50IF9ncmFiKHN0cmlu ZyBzZW5kZXIsIHN0cmluZyBzZXEsIHVpbnQgZmxhZywgTWV0YS5LZXlCaW5kaW5nRmxhZ3MgZ3Jh Yl9mbGFncykKKyAgICAgeworICAgICAgICAgdmFyIHJldCA9IGRpc3BsYXkuZ3JhYl9hY2NlbGVy YXRvcihzZXEsIGdyYWJfZmxhZ3MpOworQEAgLTI3Myw3ICsyNjksNyBAQCBwdWJsaWMgY2xhc3Mg U2hlbGxTaGltIDogR0xpYi5PYmplY3QKKyAgICAgICAgICAgICBvbl9idXNfYWNxdWlyZWQsIG51 bGwsIG51bGwpOworICAgICB9CisgCistI2lmIEhBVkVfR1NEXzMzMgorKyNpZiBIQVZFX0dTRF9T VVBQT1JURUQKKyAgICAgcHVibGljIHVpbnQgR3JhYkFjY2VsZXJhdG9yKEJ1c05hbWUgc2VuZGVy LCBzdHJpbmcgYWNjZWxlcmF0b3IsIHVpbnQgZmxhZ3MsIE1ldGEuS2V5QmluZGluZ0ZsYWdzIGdy YWJfZmxhZ3MpCisgICAgIHsKKyAgICAgICAgIHJldHVybiBfZ3JhYihzZW5kZXIsIGFjY2VsZXJh dG9yLCBmbGFncywgZ3JhYl9mbGFncyk7CitkaWZmIC0tZ2l0IHNyYy93bS93bS52YWxhIHNyYy93 bS93bS52YWxhCitpbmRleCBmZWU4OTQ0My4uYmNjZjNiOTUgMTAwNjQ0CistLS0gc3JjL3dtL3dt LnZhbGEKKysrKyBzcmMvd20vd20udmFsYQorQEAgLTEzNyw4ICsxMzcsOCBAQCBwdWJsaWMgY2xh c3MgQnVkZ2llV00gOiBNZXRhLlBsdWdpbgorICAgICBwdWJsaWMgc3RhdGljIHN0cmluZ1tdPyBv bGRfYXJnczsKKyAgICAgcHVibGljIHN0YXRpYyBib29sIHdheWxhbmQgPSBmYWxzZTsKKyAKKy0g ICAgc3RhdGljIENsdXR0ZXIuUG9pbnQgUFZfQ0VOVEVSOworLSAgICBzdGF0aWMgQ2x1dHRlci5Q b2ludCBQVl9OT1JNOworKyAgICBzdGF0aWMgR3JhcGhlbmUuUG9pbnQgUFZfQ0VOVEVSOworKyAg ICBzdGF0aWMgR3JhcGhlbmUuUG9pbnQgUFZfTk9STTsKKyAKKyAgICAgcHJpdmF0ZSBNZXRhLkJh Y2tncm91bmRHcm91cD8gYmFja2dyb3VuZF9ncm91cDsKKyAKK0BAIC0xNzEsMTAgKzE3MSwxMCBA QCBwdWJsaWMgY2xhc3MgQnVkZ2llV00gOiBNZXRhLlBsdWdpbgorICAgICAgICAgICAgIGxpY2Vu c2UgPSAiR1BMLTIuMCIsCisgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAiQnVkZ2llIFdpbmRv dyBNYW5hZ2VyIgorICAgICAgICAgfTsKKy0gICAgICAgIFBWX0NFTlRFUiA9IENsdXR0ZXIuUG9p bnQuYWxsb2MoKTsKKysgICAgICAgIFBWX0NFTlRFUiA9IEdyYXBoZW5lLlBvaW50KCk7CisrICAg ICAgICBQVl9OT1JNID0gR3JhcGhlbmUuUG9pbnQoKTsKKyAgICAgICAgIFBWX0NFTlRFUi54ID0g MC41ZjsKKyAgICAgICAgIFBWX0NFTlRFUi55ID0gMC41ZjsKKy0gICAgICAgIFBWX05PUk0gPSBD bHV0dGVyLlBvaW50LmFsbG9jKCk7CisgICAgICAgICBQVl9OT1JNLnggPSAwLjBmOworICAgICAg ICAgUFZfTk9STS55ID0gMC4wZjsKKyAgICAgfQorQEAgLTEwMDEsNyArMTAwMSw3IEBAIHB1Ymxp YyBjbGFzcyBCdWRnaWVXTSA6IE1ldGEuUGx1Z2luCisgICAgICAgICB0aWxlX3ByZXZpZXcuc2V0 KCJzY2FsZS14IiwgTk9USUZJQ0FUSU9OX01BUF9TQ0FMRV9YLCAic2NhbGUteSIsIE5PVElGSUNB VElPTl9NQVBfU0NBTEVfWSwKKyAgICAgICAgICAgICAicGl2b3QtcG9pbnQiLCBQVl9DRU5URVIp OworIAorLSAgICAgICAgdGlsZV9wcmV2aWV3Lmxvd2VyKHdpbl9hY3Rvcik7CisrICAgICAgICAv L3RpbGVfcHJldmlldy5sb3dlcih3aW5fYWN0b3IpOworICAgICAgICAgdGlsZV9wcmV2aWV3LnRp bGVfcmVjdCA9IHRpbGVfcmVjdDsKKyAKKyAgICAgICAgIHRpbGVfcHJldmlldy5zaG93KCk7Citk aWZmIC0tZ2l0IHZhcGkvQ2x1dHRlci01Lm1ldGFkYXRhIHZhcGkvQ2x1dHRlci02Lm1ldGFkYXRh CitzaW1pbGFyaXR5IGluZGV4IDEwMCUKK3JlbmFtZSBmcm9tIHZhcGkvQ2x1dHRlci01Lm1ldGFk YXRhCityZW5hbWUgdG8gdmFwaS9DbHV0dGVyLTYubWV0YWRhdGEKK2RpZmYgLS1naXQgdmFwaS9D bHV0dGVyLTQubWV0YWRhdGEgdmFwaS9DbHV0dGVyLTcubWV0YWRhdGEKK3NpbWlsYXJpdHkgaW5k ZXggNzglCityZW5hbWUgZnJvbSB2YXBpL0NsdXR0ZXItNC5tZXRhZGF0YQorcmVuYW1lIHRvIHZh cGkvQ2x1dHRlci03Lm1ldGFkYXRhCitpbmRleCA1YzIxMmU4NS4uMTg1NTI3NGQgMTAwNjQ0Cist LS0gdmFwaS9DbHV0dGVyLTQubWV0YWRhdGEKKysrKyB2YXBpL0NsdXR0ZXItNy5tZXRhZGF0YQor QEAgLTEsMTMgKzEsMTAgQEAKKyAvLyBOb24gbWluaS1vYmplY3QKKyBBY3RvckJveCBzdHJ1Y3QK KyBDb2xvciBzdHJ1Y3QKKy1Gb2cgc3RydWN0CistR2VvbWV0cnkgc3RydWN0CisgS25vdCBzdHJ1 Y3QKKyBQYXRoTm9kZSBzdHJ1Y3QKKyBQZXJzcGVjdGl2ZSBzdHJ1Y3QKKyBVbml0cyBzdHJ1Y3QK Ky1WZXJ0ZXggc3RydWN0CisgCisgKi5yZWYgdW5vd25lZAorIAorQEAgLTE3LDcgKzE0LDYgQEAg aW5pdF93aXRoX2FyZ3MKKyBBY3RvcgorIAkuYXBwbHlfdHJhbnNmb3JtLm1hdHJpeCByZWYKKyAJ LmdldF9hYnNfYWxsb2NhdGlvbl92ZXJ0aWNlcy52ZXJ0cyBvdXQ9ZmFsc2UKKy0JLmdldF9hbGxv Y2F0aW9uX3ZlcnRpY2VzLnZlcnRzIG91dD1mYWxzZQorIENhbnZhcworIAkubmV3IHN5bWJvbF90 eXBlPSJjb25zdHJ1Y3RvciIKKyBFdmVudC50eXBlI21ldGhvZCBuYW1lPSJnZXRfdHlwZSIKK0BA IC0yNyw3ICsyMyw2IEBAIEltYWdlCisgLy8gPz8/CisgQWN0b3IuaGFzX3BvaW50ZXIjbWV0aG9k IG5hbWU9ImdldF9oYXNfcG9pbnRlciIKKyBJbml0RXJyb3IgZXJyb3Jkb21haW49ZmFsc2UKKy1y ZWRyYXcgc2tpcAorIAorIC8vIE5vdCBhbGwgYmFja2luZyBzeW1ib2xzIGFyZSBkZXByZWNhdGVk CisgQWN0b3IucGljayBkZXByZWNhdGVkPWZhbHNlCitAQCAtNTUsNyArNTAsNiBAQCBDb250YWlu ZXIKKyAJLmxvd2VyIHZpcnR1YWwKKyAJLnJhaXNlIHZpcnR1YWwKKyAJLipfY2hpbGRfbWV0YSN2 aXJ0dWFsX21ldGhvZCB2aXJ0dWFsCistCS5mb3JlYWNoX3dpdGhfaW50ZXJuYWxzI3ZpcnR1YWxf bWV0aG9kIHZpcnR1YWwKKyAKKyAvLyBEZWZhdWx0IHZhbHVlcworIENvbnRhaW5lcgorQEAgLTcw LDMyICs2NCwyMSBAQCBUZXh0CisgLy8gUmVwYXJlbnRlZCBmdW5jcyBtZXRob2RzIGNhbid0IGJl IGluc3RhbmNlIG1ldGhvZHMKKyBmZWF0dXJlX2F2YWlsYWJsZSBza2lwCisgZmVhdHVyZV9nZXRf YWxsIHNraXAKKy1GZWF0dXJlRmxhZ3MudGV4dHVyZV9ucG90IHNraXAKKyAKKyAvLyBTa2lwcGVk IGJ5IGctaSBmb3IgdW5rbm93biByZWFzb25zCisgTGF5b3V0TWFuYWdlcgorIAkuY3JlYXRlX2No aWxkX21ldGEgc2tpcD1mYWxzZQorLU1vZGVsCistCS5pbnNlcnRfcm93IHNraXA9ZmFsc2UKKyAK KyAvLyBWYXJpYWRpYyBhcmd1bWVudHMKKy1BY3RvcgorLQkuYW5pbWF0ZSBza2lwPWZhbHNlCist CS5hbmltYXRlX3dpdGhfYWxwaGEgc2tpcD1mYWxzZQorLQkuYW5pbWF0ZV93aXRoX3RpbWVsaW5l IHNraXA9ZmFsc2UKKy1BbmltYXRvcgorLQkuc2V0IHNraXA9ZmFsc2UKKyBCb3gKKyAJLnBhY2sg c2tpcD1mYWxzZQorIAkucGFja19hZnRlciBza2lwPWZhbHNlCisgCS5wYWNrX2F0IHNraXA9ZmFs c2UKKyAJLnBhY2tfYmVmb3JlIHNraXA9ZmFsc2UKKyBDb250YWluZXIKKy0JLmFkZF92YWxpc3Qg c2tpcD1mYWxzZQorIAkuY2hpbGRfZ2V0IHNraXA9ZmFsc2UKKyAJLmNoaWxkX3NldCBza2lwPWZh bHNlCisgCS5yZW1vdmUgc2tpcD1mYWxzZQorLQkucmVtb3ZlX3ZhbGlzdCBza2lwPWZhbHNlCisg SW50ZXJ2YWwKKyAJLm5ldyBza2lwPWZhbHNlCisgCS5nZXRfaW50ZXJ2YWwgc2tpcD1mYWxzZQor QEAgLTEwNSwxNSArODgsNiBAQCBJbnRlcnZhbAorIExheW91dE1hbmFnZXIKKyAJLmNoaWxkX2dl dCBza2lwPWZhbHNlCisgCS5jaGlsZF9zZXQgc2tpcD1mYWxzZQorLUxpc3RNb2RlbAorLQkubmV3 IHNraXA9ZmFsc2UKKy1Nb2RlbAorLQkuYXBwZW5kIHNraXA9ZmFsc2UKKy0JLmluc2VydCBza2lw PWZhbHNlCistCS5wcmVwZW5kIHNraXA9ZmFsc2UKKy1Nb2RlbEl0ZXIKKy0JLmdldCBza2lwPWZh bHNlCistCS5zZXQgc2tpcD1mYWxzZQorIFNjcmlwdAorIAkuZ2V0X29iamVjdHMgc2tpcD1mYWxz ZQorIAorQEAgLTEyMiwxNyArOTYsMTEgQEAgVGV4dHVyZQorIAkubmV3X2Zyb21fZmlsZSB0aHJv d3M9IkNsdXR0ZXIuVGV4dHVyZUVycm9yIgorIAorIC8vIFNraXBwZWQgdXBzdHJlYW0gZm9yIHVu a25vd24gcmVhc29ucworLUFscGhhLnJlZ2lzdGVyX2Z1bmMgc2tpcD1mYWxzZQorLVRpbWVvdXRQ b29sIHNraXA9ZmFsc2UKKyBJbnRlcnZhbC5yZWdpc3Rlcl9wcm9ncmVzc19mdW5jIHNraXA9ZmFs c2UKKy1mcmFtZV9zb3VyY2VfKiBza2lwPWZhbHNlCisgZ2V0X29wdGlvbl9ncm91cCBza2lwPWZh bHNlCisgZ2V0X29wdGlvbl9ncm91cF93aXRob3V0X2luaXQgc2tpcD1mYWxzZQorLXRocmVhZHNf YWRkX2ZyYW1lX3NvdXJjZSBza2lwPWZhbHNlCistdGhyZWFkc19hZGRfZnJhbWVfc291cmNlX2Z1 bGwgc2tpcD1mYWxzZQorIHRocmVhZHNfYWRkX2lkbGUgc2tpcD1mYWxzZQorIHRocmVhZHNfYWRk X2lkbGVfZnVsbCBza2lwPWZhbHNlCistdGhyZWFkc19zZXRfbG9ja19mdW5jdGlvbnMgc2tpcD1m YWxzZQorIHRocmVhZHNfYWRkX3RpbWVvdXQgc2tpcD1mYWxzZQorIHRocmVhZHNfYWRkX3RpbWVv dXRfZnVsbCBza2lwPWZhbHNlCisgCitAQCAtMTQzLDE1ICsxMTEsMTIgQEAgQWN0b3JCb3gKKyBV bml0cy5mcm9tXyogc2tpcAorIENvbG9yCisgCS5uZXcgc2tpcAorLVZlcnRleC5uZXcgc2tpcAor IAorIC8vIENsYXNzIG1ldGhvZHMKKyBjb250YWluZXJfY2xhc3NfZmluZF9jaGlsZF9wcm9wZXJ0 eSBza2lwCisgY29udGFpbmVyX2NsYXNzX2xpc3RfY2hpbGRfcHJvcGVydGllcyBza2lwCisgCisg Ly8gTW92ZSBzeW1ib2xzCistZ2V0X2FjdG9yX2J5X2dpZCBwYXJlbnQ9IkNsdXR0ZXIuQWN0b3Ii IG5hbWU9ImdldF9ieV9naWQiCistZ2V0X2lucHV0X2RldmljZV9mb3JfaWQgcGFyZW50PSJDbHV0 dGVyLklucHV0RGV2aWNlIiBuYW1lPSJnZXRfZm9yX2lkIgorIHVuaXRzX2Zyb21fKiBza2lwCisg CisgLy8gQ2xhc3NlcyBtYXJrZWQgYXMgb3V0IGJ1dCBub3QgZG91YmxlIHB0cgorQEAgLTIwMiwy MyArMTY3LDE1IEBAIFBBVEhfUkVMQVRJVkUgc2tpcD1mYWxzZQorIFBSSU9SSVRZX1JFRFJBVyBz a2lwPWZhbHNlCisgCisgLy8gQ2x1dHRlciBkZXZzIGRvbid0IGxpa2UgdXMgY3JlYXRpbmcgbmVz dGVkIG5hbWVzcGFjZXMKKy1mcmFtZV9zb3VyY2VfKiBuYW1lPSJmcmFtZV9zb3VyY2VfKC4rKSIg cGFyZW50PSJDbHV0dGVyLkZyYW1lU291cmNlIgorIHZhbHVlXyogbmFtZT0idmFsdWVfKC4rKSIg cGFyZW50PSJDbHV0dGVyLlZhbHVlIgorIHRocmVhZHNfKiBuYW1lPSJ0aHJlYWRzXyguKykiIHBh cmVudD0iQ2x1dHRlci5UaHJlYWRzIgorLXRocmVhZHNfYWRkX2ZyYW1lX3NvdXJjZSBuYW1lPSJh ZGQiIHBhcmVudD0iQ2x1dHRlci5UaHJlYWRzLkZyYW1lU291cmNlIgorLXRocmVhZHNfYWRkX2Zy YW1lX3NvdXJjZV9mdWxsIG5hbWU9ImFkZF9mdWxsIiBwYXJlbnQ9IkNsdXR0ZXIuVGhyZWFkcy5G cmFtZVNvdXJjZSIKKyB0aHJlYWRzX2FkZF9pZGxlIG5hbWU9ImFkZCIgcGFyZW50PSJDbHV0dGVy LlRocmVhZHMuSWRsZSIKKyB0aHJlYWRzX2FkZF9pZGxlX2Z1bGwgbmFtZT0iYWRkX2Z1bGwiIHBh cmVudD0iQ2x1dHRlci5UaHJlYWRzLklkbGUiCisgdGhyZWFkc19hZGRfdGltZW91dCBuYW1lPSJh ZGQiIHBhcmVudD0iQ2x1dHRlci5UaHJlYWRzLlRpbWVvdXQiCisgdGhyZWFkc19hZGRfdGltZW91 dF9mdWxsIG5hbWU9ImFkZF9mdWxsIiBwYXJlbnQ9IkNsdXR0ZXIuVGhyZWFkcy5UaW1lb3V0Igor LXV0aWxfbmV4dF9wMiBuYW1lPSJuZXh0X3Bvd2VyX29mXzIiIHBhcmVudD0iQ2x1dHRlci5VdGls IgorIAorIC8vIEJhY2t3YXJkcyBjb21wYXRpYmlsaXR5CisgQ29sb3IuYWxsb2Mgc3ltYm9sX3R5 cGU9ImZ1bmN0aW9uIgorLVBvaW50LmFsbG9jIHN5bWJvbF90eXBlPSJmdW5jdGlvbiIKKy1SZWN0 LmFsbG9jIHN5bWJvbF90eXBlPSJmdW5jdGlvbiIKKy1TaXplLmFsbG9jIHN5bWJvbF90eXBlPSJm dW5jdGlvbiIKKy1WZXJ0ZXguYWxsb2Mgc3ltYm9sX3R5cGU9ImZ1bmN0aW9uIgorIAorIEJpbkFs aWdubWVudCBkZXByZWNhdGVkPWZhbHNlIGRlcHJlY2F0ZWRfc2luY2U9bnVsbAorIEJpbkFsaWdu bWVudC4qIGRlcHJlY2F0ZWQKK2RpZmYgLS1naXQgdmFwaS9Db2dsLTQubWV0YWRhdGEgdmFwaS9D b2dsLTYubWV0YWRhdGEKK3NpbWlsYXJpdHkgaW5kZXggMTAwJQorcmVuYW1lIGZyb20gdmFwaS9D b2dsLTQubWV0YWRhdGEKK3JlbmFtZSB0byB2YXBpL0NvZ2wtNi5tZXRhZGF0YQorZGlmZiAtLWdp dCB2YXBpL0NvZ2wtNS5tZXRhZGF0YSB2YXBpL0NvZ2wtNy5tZXRhZGF0YQorc2ltaWxhcml0eSBp bmRleCA5MSUKK3JlbmFtZSBmcm9tIHZhcGkvQ29nbC01Lm1ldGFkYXRhCityZW5hbWUgdG8gdmFw aS9Db2dsLTcubWV0YWRhdGEKK2luZGV4IDA5MmI1ZTI5Li5lNTJiZmEzNSAxMDA2NDQKKy0tLSB2 YXBpL0NvZ2wtNS5tZXRhZGF0YQorKysrIHZhcGkvQ29nbC03Lm1ldGFkYXRhCitAQCAtOSwxMiAr OSwxMCBAQCBjcmVhdGVfc2hhZGVyIHNraXAKKyAKKyAKKyBpc19iaXRtYXAgc2tpcAorLWlzX21h dGVyaWFsIHNraXAKKyBpc19vZmZzY3JlZW4gc2tpcAorIGlzX3Byb2dyYW0gc2tpcAorIGlzX3No YWRlciBza2lwCisgaXNfdGV4dHVyZSBza2lwCistaXNfdmVydGV4X2J1ZmZlciBza2lwCisgCisg TWF0cml4IHN0cnVjdAorICAgLmdldF9hcnJheSBhcnJheT10cnVlIGFycmF5X2xlbmd0aF9pZHg9 LTEKK2RpZmYgLS1naXQgdmFwaS9NZXRhLTMubWV0YWRhdGEgdmFwaS9NZXRhLTMubWV0YWRhdGEK K2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMzcwZDQ5OTYuLjAwMDAwMDAwCistLS0g dmFwaS9NZXRhLTMubWV0YWRhdGEKKysrKyAvZGV2L251bGwKK0BAIC0xLDY2ICswLDAgQEAKKy1C YWNrZW5kIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZW5kLmgiCistQmFja2dyb3Vu ZCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFja2dyb3VuZC5oIgorLUJhY2tncm91bmRB Y3RvciBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oIgorLUJh Y2tncm91bmRHcm91cCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91 cC5oIgorLUJhY2tncm91bmRJbWFnZUNhY2hlIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1i YWNrZ3JvdW5kLWltYWdlLmgiCistRGlzcGxheSBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2Rpc3Bs YXkuaCIKKy1NZXRhIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWFpbi5oIgorLU1vbml0b3JNYW5h Z2VyIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCIKKy1SZWN0 YW5nbGUgc3RydWN0CistUGx1Z2luIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1wbHVnaW4u aCIKKy1QbHVnaW5JbmZvIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1wbHVnaW4uaCIKKy1w cmVmc18qIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvcHJlZnMuaCIgcGFyZW50PSJNZXRhLlByZWZz IgorLWFkZF92ZXJib3NlX3RvcGljIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1l PSJtZXRhL3V0aWwuaCIKKy1idWcgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9 Im1ldGEvdXRpbC5oIgorLWRlYnVnX3NwZXdfcmVhbCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRl cl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIHBhcmVu dD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy14MTFfZXJyb3Jf dHJhcF9wb3AgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5o IgorLXgxMV9lcnJvcl90cmFwX3B1c2ggcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5h bWU9Im1ldGEvdXRpbC5oIgorLXgxMV9lcnJvcl90cmFwX3BvcF93aXRoX3JldHVybiBwYXJlbnQ9 Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistZXh0ZXJuYWxfYmlu ZGluZ19uYW1lX2Zvcl9hY3Rpb24gcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9 Im1ldGEvdXRpbC5oIgorLWZyZWVfZ3NsaXN0X2FuZF9lbGVtZW50cyBwYXJlbnQ9Ik1ldGEuVXRp bCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistZ191dGY4X3N0cm5kdXAgcGFyZW50 PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWdldF9sb2NhbGVf ZGlyZWN0aW9uIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwu aCIKKy1nZXRfb3ZlcmxheV93aW5kb3cgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5h bWU9Im1ldGEvdXRpbC5oIgorLWdyYXZpdHlfdG9fc3RyaW5nIHBhcmVudD0iTWV0YS5VdGlsIiBj aGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1pc19kZWJ1Z2dpbmcgcGFyZW50PSJNZXRh LlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWlzX3N5bmNpbmcgcGFyZW50 PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWlzX3ZlcmJvc2Ug cGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWlzX3dh eWxhbmRfY29tcG9zaXRvciBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0 YS91dGlsLmgiCistbGF0ZXJfYWRkIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1l PSJtZXRhL3V0aWwuaCIKKy1sYXRlcl9yZW1vdmUgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJf ZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXBvcF9ub19tc2dfcHJlZml4IHBhcmVudD0iTWV0YS5V dGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1wdXNoX25vX21zZ19wcmVmaXgg cGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXJlY3Qg cGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXJlbW92 ZV92ZXJib3NlX3RvcGljIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh L3V0aWwuaCIKKy1zZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVh ZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1zaG93X2RpYWxvZyBwYXJlbnQ9Ik1ldGEuVXRp bCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistdG9waWNfcmVhbCBwYXJlbnQ9Ik1l dGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistdW5zaWduZWRfbG9uZ19l cXVhbCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCist dW5zaWduZWRfbG9uZ19oYXNoIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJt ZXRhL3V0aWwuaCIKKy12ZXJib3NlX3JlYWwgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmls ZW5hbWU9Im1ldGEvdXRpbC5oIgorLXdhcm5pbmcgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJf ZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXNob3dfZGlhbG9nIHBhcmVudD0iTWV0YS5VdGlsIiBj aGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1nZXRfc3RhZ2VfZm9yX2Rpc3BsYXkgcGFy ZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1t dXR0ZXIuaCIKKy1nZXRfd2luZG93X2FjdG9ycyBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hl YWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLWdldF93aW5kb3dfZ3Jv dXBfZm9yX2Rpc3BsYXkgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9 Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKy1nZXRfdG9wX3dpbmRvd19ncm91cF9mb3JfZGlz cGxheSBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21w b3NpdG9yLW11dHRlci5oIgorLWdldF9mZWVkYmFja19ncm91cF9mb3JfZGlzcGxheSBwYXJlbnQ9 Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRl ci5oIgorLWRpc2FibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSBwYXJlbnQ9Ik1ldGEuQ29tcG9z aXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLWVuYWJs ZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVy X2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCistc2V0X3N0YWdlX2lucHV0X3Jl Z2lvbiBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21w b3NpdG9yLW11dHRlci5oIgorLWVtcHR5X3N0YWdlX2lucHV0X3JlZ2lvbiBwYXJlbnQ9Ik1ldGEu Q29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgor LWZvY3VzX3N0YWdlX3dpbmRvdyBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxl bmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLXN0YWdlX2lzX2ZvY3VzZWQgcGFyZW50 PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCIKKy1rZXliaW5kaW5nc19zZXRfY3VzdG9tX2hhbmRsZXIgcGFyZW50PSJNZXRhLktleUJp bmRpbmciIG5hbWU9InNldF9jdXN0b21faGFuZGxlciIKKy1LZXlIYW5kbGVyRnVuYy5ldmVudCB0 eXBlPSJDbHV0dGVyLktleUV2ZW50PyIKKy1nZXRfYmFja2VuZCBwYXJlbnQ9Ik1ldGEuQmFja2Vu ZCIKKy1XaW5kb3cuZm9jdXMjc2lnbmFsIHNraXA9dHJ1ZQorLVdpbmRvdy5nZXRfeHdpbmRvdyBz a2lwPWZhbHNlCistZ2V0X29wdGlvbl9jb250ZXh0IHNraXA9ZmFsc2UKKy1zZXRfZ25vbWVfd21f a2V5YmluZGluZ3Mgc2tpcD1mYWxzZQorLXNldF93bV9uYW1lIHNraXA9ZmFsc2UKKy1pbml0IHNr aXA9ZmFsc2UKKy1ydW4gc2tpcD1mYWxzZQorLXNob3dfZGlhbG9nIHNraXA9ZmFsc2UKKy1nZXRf YmFja2VuZCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFja2VuZC5oIgorZGlmZiAtLWdp dCB2YXBpL01ldGEtNS5tZXRhZGF0YSB2YXBpL01ldGEtNi5tZXRhZGF0YQorc2ltaWxhcml0eSBp bmRleCAxMDAlCityZW5hbWUgZnJvbSB2YXBpL01ldGEtNS5tZXRhZGF0YQorcmVuYW1lIHRvIHZh cGkvTWV0YS02Lm1ldGFkYXRhCitkaWZmIC0tZ2l0IHZhcGkvTWV0YS00Lm1ldGFkYXRhIHZhcGkv TWV0YS03Lm1ldGFkYXRhCitzaW1pbGFyaXR5IGluZGV4IDc2JQorcmVuYW1lIGZyb20gdmFwaS9N ZXRhLTQubWV0YWRhdGEKK3JlbmFtZSB0byB2YXBpL01ldGEtNy5tZXRhZGF0YQoraW5kZXggYWUy YTc4MTcuLjcyNjI5ZmJhIDEwMDY0NAorLS0tIHZhcGkvTWV0YS00Lm1ldGFkYXRhCisrKysgdmFw aS9NZXRhLTcubWV0YWRhdGEKK0BAIC0xLDI2ICsxLDIxIEBACisgQmFja2VuZCBjaGVhZGVyX2Zp bGVuYW1lPSJtZXRhL21ldGEtYmFja2VuZC5oIgorIEJhY2tncm91bmQgY2hlYWRlcl9maWxlbmFt ZT0ibWV0YS9tZXRhLWJhY2tncm91bmQuaCIKKyBCYWNrZ3JvdW5kQWN0b3IgY2hlYWRlcl9maWxl bmFtZT0ibWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCIKKytCYWNrZ3JvdW5kQ29udGVudCBj aGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFja2dyb3VuZC1jb250ZW50LmgiCisgQmFja2dy b3VuZEdyb3VwIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgi CisgQmFja2dyb3VuZEltYWdlIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZ3JvdW5k LWltYWdlLmgiCisgQmFja2dyb3VuZEltYWdlQ2FjaGUgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9t ZXRhLWJhY2tncm91bmQtaW1hZ2UuaCIKKyBCYXJyaWVyIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEv YmFycmllci5oIgorIEJhcnJpZXJFdmVudCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2JhcnJpZXIu aCIKKy1Cb3hlcyBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2JveGVzLmgiCisgQ2xvc2VEaWFsb2cg Y2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oIgorLUNvbXBvc2l0b3Ig Y2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLmgiCistQ29tcG9zaXRvck11dHRlciBj aGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCisgQ3Vyc29yVHJhY2tl ciBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCIKKyBEaXNwbGF5 IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvZGlzcGxheS5oIgorIERuZCBjaGVhZGVyX2ZpbGVuYW1l PSJtZXRhL21ldGEtZG5kLmgiCistR3JvdXAgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9ncm91cC5o IgorIElkbGVNb25pdG9yIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1pZGxlLW1vbml0b3Iu aCIKKyBJbmhpYml0U2hvcnRjdXRzRGlhbG9nIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1p bmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCIKKy1LZXliaW5kaW5ncyBjaGVhZGVyX2ZpbGVuYW1l PSJtZXRhL2tleWJpbmRpbmdzLmgiCisgTGF1bmNoQ29udGV4dCBjaGVhZGVyX2ZpbGVuYW1lPSJt ZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCIKKyBNZXRhIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEv bWFpbi5oIgorIE1vbml0b3JNYW5hZ2VyIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1tb25p dG9yLW1hbmFnZXIuaCIKKy1QbHVnaW4gY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXBsdWdp bi5oIgorIFByZWZlcmVuY2UgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9wcmVmcy5oIgorIFJlbW90 ZUFjY2Vzc0NvbnRyb2xsZXIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXJlbW90ZS1hY2Nl c3MtY29udHJvbGxlci5oIgorIFJlbW90ZUFjY2Vzc0hhbmRsZSBjaGVhZGVyX2ZpbGVuYW1lPSJt ZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgiCitAQCAtMzEsOSArMjYsNyBAQCBT b3VuZFBsYXllciBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtc291bmQtcGxheWVyLmgiCisg U3RhZ2UgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXN0YWdlLmgiCisgU3RhcnR1cE5vdGlm aWNhdGlvbiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24u aCIKKyBUaGVtZSBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3RoZW1lLmgiCistVHlwZXMgY2hlYWRl cl9maWxlbmFtZT0ibWV0YS90eXBlcy5oIgorLVV0aWwgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91 dGlsLmgiCistVmVyc2lvbiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtdmVyc2lvbi5oIgor K1dheWxhbmRDbGllbnQgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXdheWxhbmQtY2xpZW50 LmgiCisgV2luZG93IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvd2luZG93LmgiCisgV2luZG93QWN0 b3IgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oIgorIFdpbmRvd0dy b3VwIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCIKK0BAIC00Niwx NyArMzksMTEgQEAgUGx1Z2luIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1wbHVnaW4uaCIK KyBQbHVnaW5JbmZvIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1wbHVnaW4uaCIKKyBwcmVm c18qIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvcHJlZnMuaCIgcGFyZW50PSJNZXRhLlByZWZzIgor IGFkZF92ZXJib3NlX3RvcGljIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJt ZXRhL3V0aWwuaCIKKy1idWcgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1l dGEvdXRpbC5oIgorLWRlYnVnX3NwZXdfcmVhbCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9m aWxlbmFtZT0ibWV0YS91dGlsLmgiCistZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIHBhcmVudD0i TWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKyB4MTFfZXJyb3JfdHJh cF9wb3AgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgor IHgxMV9lcnJvcl90cmFwX3B1c2ggcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9 Im1ldGEvdXRpbC5oIgorIHgxMV9lcnJvcl90cmFwX3BvcF93aXRoX3JldHVybiBwYXJlbnQ9Ik1l dGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisgZXh0ZXJuYWxfYmluZGlu Z19uYW1lX2Zvcl9hY3Rpb24gcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1l dGEvdXRpbC5oIgorLWZyZWVfZ3NsaXN0X2FuZF9lbGVtZW50cyBwYXJlbnQ9Ik1ldGEuVXRpbCIg Y2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistZ191dGY4X3N0cm5kdXAgcGFyZW50PSJN ZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIGdldF9sb2NhbGVfZGly ZWN0aW9uIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIK Ky1nZXRfb3ZlcmxheV93aW5kb3cgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9 Im1ldGEvdXRpbC5oIgorIGdyYXZpdHlfdG9fc3RyaW5nIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVh ZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKyBpc19kZWJ1Z2dpbmcgcGFyZW50PSJNZXRhLlV0 aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIGlzX3N5bmNpbmcgcGFyZW50PSJN ZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorQEAgLTY4LDEzICs1NSw4 IEBAIHBvcF9ub19tc2dfcHJlZml4IHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1l PSJtZXRhL3V0aWwuaCIKKyBwdXNoX25vX21zZ19wcmVmaXggcGFyZW50PSJNZXRhLlV0aWwiIGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIHJlY3QgcGFyZW50PSJNZXRhLlV0aWwiIGNo ZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIHJlbW92ZV92ZXJib3NlX3RvcGljIHBhcmVu dD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1zZXRfc3RhZ2Vf aW5wdXRfcmVnaW9uIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0 aWwuaCIKKy1zaG93X2RpYWxvZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0i bWV0YS91dGlsLmgiCistdG9waWNfcmVhbCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxl bmFtZT0ibWV0YS91dGlsLmgiCisgdW5zaWduZWRfbG9uZ19lcXVhbCBwYXJlbnQ9Ik1ldGEuVXRp bCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisgdW5zaWduZWRfbG9uZ19oYXNoIHBh cmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy12ZXJib3Nl X3JlYWwgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgor LXdhcm5pbmcgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5o IgorIHNob3dfZGlhbG9nIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh L3V0aWwuaCIKKyBnZXRfc3RhZ2VfZm9yX2Rpc3BsYXkgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3Ii IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKyBnZXRfd2luZG93 X2FjdG9ycyBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9j b21wb3NpdG9yLW11dHRlci5oIgorQEAgLTgzLDEwICs2NSw3IEBAIGdldF90b3Bfd2luZG93X2dy b3VwX2Zvcl9kaXNwbGF5IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1l PSJtZXRhCisgZ2V0X2ZlZWRiYWNrX2dyb3VwX2Zvcl9kaXNwbGF5IHBhcmVudD0iTWV0YS5Db21w b3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCisgZGlz YWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVh ZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCisgZW5hYmxlX3VucmVkaXJl Y3RfZm9yX2Rpc3BsYXkgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9 Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKy1zZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIHBhcmVu dD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0 dGVyLmgiCistZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIHBhcmVudD0iTWV0YS5Db21wb3NpdG9y IiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCisgZm9jdXNfc3Rh Z2Vfd2luZG93IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgiCistc3RhZ2VfaXNfZm9jdXNlZCBwYXJlbnQ9Ik1ldGEuQ29t cG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorIGtl eWJpbmRpbmdzX3NldF9jdXN0b21faGFuZGxlciBwYXJlbnQ9Ik1ldGEuS2V5QmluZGluZyIgbmFt ZT0ic2V0X2N1c3RvbV9oYW5kbGVyIgorIEtleUhhbmRsZXJGdW5jLmV2ZW50IHR5cGU9IkNsdXR0 ZXIuS2V5RXZlbnQ/IgorIGdldF9iYWNrZW5kIHBhcmVudD0iTWV0YS5CYWNrZW5kIgorZGlmZiAt LWdpdCB2YXBpL2dlbmVyYXRlLW11dHRlci12YXBpLnNoIHZhcGkvZ2VuZXJhdGUtbXV0dGVyLXZh cGkuc2gKK2luZGV4IDZiMDcwMjQwLi5iMjMzZTU4NiAxMDA3NTUKKy0tLSB2YXBpL2dlbmVyYXRl LW11dHRlci12YXBpLnNoCisrKysgdmFwaS9nZW5lcmF0ZS1tdXR0ZXItdmFwaS5zaAorQEAgLTEs NyArMSw3IEBACisgIyEvYmluL2Jhc2gKKyBzZXQgLXhlCisgCistdmVyc2lvbj0kezEtNH0KKyt2 ZXJzaW9uPSR7Ni03fQorIGdpcmRpcj0kKHBrZy1jb25maWcgbGlibXV0dGVyLSR2ZXJzaW9uIC0t dmFyaWFibGU9Z2lyZGlyKQorIAorIGNkICQoZGlybmFtZSAkMCkKK2RpZmYgLS1naXQgdmFwaS9n cmFwaGVuZS1nb2JqZWN0LTEuMC52YXBpIHZhcGkvZ3JhcGhlbmUtZ29iamVjdC0xLjAudmFwaQor bmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwLi42OTgwMTUzNQorLS0tIC9kZXYv bnVsbAorKysrIHZhcGkvZ3JhcGhlbmUtZ29iamVjdC0xLjAudmFwaQorQEAgLTAsMCArMSw2OTEg QEAKKysvKiBncmFwaGVuZS1nb2JqZWN0LTEuMC52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBk byBub3QgbW9kaWZ5LiAqLworKworK1tDQ29kZSAoY3ByZWZpeCA9ICJHcmFwaGVuZSIsIGdpcl9u YW1lc3BhY2UgPSAiR3JhcGhlbmUiLCBnaXJfdmVyc2lvbiA9ICIxLjAiLCBsb3dlcl9jYXNlX2Nw cmVmaXggPSAiZ3JhcGhlbmVfIildCisrbmFtZXNwYWNlIEdyYXBoZW5lIHsKKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5l X2JveF90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV9ib3hfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNp b24gKHNpbmNlID0gIjEuMiIpXQorKwlwdWJsaWMgc3RydWN0IEJveCB7CisrCQlwdWJsaWMgYm9v bCBjb250YWluc19ib3ggKEdyYXBoZW5lLkJveCBiKTsKKysJCXB1YmxpYyBib29sIGNvbnRhaW5z X3BvaW50IChHcmFwaGVuZS5Qb2ludDNEIHBvaW50KTsKKysJCXB1YmxpYyBzdGF0aWMgdW5vd25l ZCBHcmFwaGVuZS5Cb3g/IGVtcHR5ICgpOworKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5l LkJveCBiKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Cb3ggZXhwYW5kIChHcmFwaGVuZS5Qb2ludDNE IHBvaW50KTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Cb3ggZXhwYW5kX3NjYWxhciAoZmxvYXQgc2Nh bGFyKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Cb3ggZXhwYW5kX3ZlYzMgKEdyYXBoZW5lLlZlYzMg dmVjKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5TcGhlcmUgZ2V0X2JvdW5kaW5nX3NwaGVyZSAoKTsK KysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIGdldF9jZW50ZXIgKCk7CisrCQlwdWJsaWMgZmxv YXQgZ2V0X2RlcHRoICgpOworKwkJcHVibGljIGZsb2F0IGdldF9oZWlnaHQgKCk7CisrCQlwdWJs aWMgR3JhcGhlbmUuUG9pbnQzRCBnZXRfbWF4ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50 M0QgZ2V0X21pbiAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIGdldF9zaXplICgpOworKwkJ cHVibGljIHZvaWQgZ2V0X3ZlcnRpY2VzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0g cmVmIEdyYXBoZW5lLlZlYzMgdmVydGljZXNbOF0pOworKwkJcHVibGljIGZsb2F0IGdldF93aWR0 aCAoKTsKKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5Cb3g/IGluZmluaXRlICgp OworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuQm94PyBpbml0IChHcmFwaGVuZS5Qb2ludDNE PyBtaW4sIEdyYXBoZW5lLlBvaW50M0Q/IG1heCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVu ZS5Cb3g/IGluaXRfZnJvbV9ib3ggKEdyYXBoZW5lLkJveCBzcmMpOworKwkJcHVibGljIHVub3du ZWQgR3JhcGhlbmUuQm94PyBpbml0X2Zyb21fcG9pbnRzIChbQ0NvZGUgKGFycmF5X2xlbmd0aF9j bmFtZSA9ICJuX3BvaW50cyIsIGFycmF5X2xlbmd0aF9wb3MgPSAwLjUsIGFycmF5X2xlbmd0aF90 eXBlID0gImd1aW50IildIEdyYXBoZW5lLlBvaW50M0RbXSBwb2ludHMpOworKwkJcHVibGljIHVu b3duZWQgR3JhcGhlbmUuQm94PyBpbml0X2Zyb21fdmVjMyAoR3JhcGhlbmUuVmVjMz8gbWluLCBH cmFwaGVuZS5WZWMzPyBtYXgpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuQm94PyBpbml0 X2Zyb21fdmVjdG9ycyAoW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl92ZWN0b3JzIiwg YXJyYXlfbGVuZ3RoX3BvcyA9IDAuNSwgYXJyYXlfbGVuZ3RoX3R5cGUgPSAiZ3VpbnQiKV0gR3Jh cGhlbmUuVmVjM1tdIHZlY3RvcnMpOworKwkJcHVibGljIGJvb2wgaW50ZXJzZWN0aW9uIChHcmFw aGVuZS5Cb3ggYiwgb3V0IEdyYXBoZW5lLkJveCByZXMpOworKwkJcHVibGljIHN0YXRpYyB1bm93 bmVkIEdyYXBoZW5lLkJveD8gbWludXNfb25lICgpOworKwkJcHVibGljIHN0YXRpYyB1bm93bmVk IEdyYXBoZW5lLkJveD8gb25lICgpOworKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5l LkJveD8gb25lX21pbnVzX29uZSAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Cb3ggdW5pb24gKEdy YXBoZW5lLkJveCBiKTsKKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5Cb3g/IHpl cm8gKCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmpl Y3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX2V1bGVyX3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX2V1 bGVyX2dldF90eXBlICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJcHVibGlj IHN0cnVjdCBFdWxlciB7CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuRXVsZXIgYik7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF9hbHBo YSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0 X2JldGEgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGZsb2F0 IGdldF9nYW1tYSAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5FdWxlck9yZGVyIGdldF9vcmRlciAo KTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfeCAoKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfeSAoKTsK KysJCXB1YmxpYyBmbG9hdCBnZXRfeiAoKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLkV1 bGVyPyBpbml0IChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKysJCXB1YmxpYyB1bm93bmVk IEdyYXBoZW5lLkV1bGVyPyBpbml0X2Zyb21fZXVsZXIgKEdyYXBoZW5lLkV1bGVyPyBzcmMpOwor KwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuRXVsZXI/IGluaXRfZnJvbV9tYXRyaXggKEdyYXBo ZW5lLk1hdHJpeD8gbSwgR3JhcGhlbmUuRXVsZXJPcmRlciBvcmRlcik7CisrCQlwdWJsaWMgdW5v d25lZCBHcmFwaGVuZS5FdWxlcj8gaW5pdF9mcm9tX3F1YXRlcm5pb24gKEdyYXBoZW5lLlF1YXRl cm5pb24/IHEsIEdyYXBoZW5lLkV1bGVyT3JkZXIgb3JkZXIpOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLkV1bGVyPyBpbml0X2Zyb21f cmFkaWFucyAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeiwgR3JhcGhlbmUuRXVsZXJPcmRlciBv cmRlcik7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5FdWxlcj8gaW5pdF9mcm9tX3ZlYzMg KEdyYXBoZW5lLlZlYzM/IHYsIEdyYXBoZW5lLkV1bGVyT3JkZXIgb3JkZXIpOworKwkJcHVibGlj IHVub3duZWQgR3JhcGhlbmUuRXVsZXI/IGluaXRfd2l0aF9vcmRlciAoZmxvYXQgeCwgZmxvYXQg eSwgZmxvYXQgeiwgR3JhcGhlbmUuRXVsZXJPcmRlciBvcmRlcik7CisrCQlwdWJsaWMgR3JhcGhl bmUuRXVsZXIgcmVvcmRlciAoR3JhcGhlbmUuRXVsZXJPcmRlciBvcmRlcik7CisrCQlwdWJsaWMg R3JhcGhlbmUuTWF0cml4IHRvX21hdHJpeCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCisrCQlwdWJsaWMgR3JhcGhlbmUuUXVhdGVybmlvbiB0b19xdWF0ZXJuaW9uICgpOworKwkJ cHVibGljIEdyYXBoZW5lLlZlYzMgdG9fdmVjMyAoKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfZnJ1c3R1 bV90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV9mcnVzdHVtX2dldF90eXBlICgpIildCisrCVtWZXJz aW9uIChzaW5jZSA9ICIxLjIiKV0KKysJcHVibGljIHN0cnVjdCBGcnVzdHVtIHsKKysJCXB1Ymxp YyBib29sIGNvbnRhaW5zX3BvaW50IChHcmFwaGVuZS5Qb2ludDNEIHBvaW50KTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjYiKV0KKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5GcnVz dHVtIGIpOworKwkJcHVibGljIHZvaWQgZ2V0X3BsYW5lcyAoW0NDb2RlIChhcnJheV9sZW5ndGgg PSBmYWxzZSldIHJlZiBHcmFwaGVuZS5QbGFuZSBwbGFuZXNbNl0pOworKwkJcHVibGljIHVub3du ZWQgR3JhcGhlbmUuRnJ1c3R1bT8gaW5pdCAoR3JhcGhlbmUuUGxhbmUgcDAsIEdyYXBoZW5lLlBs YW5lIHAxLCBHcmFwaGVuZS5QbGFuZSBwMiwgR3JhcGhlbmUuUGxhbmUgcDMsIEdyYXBoZW5lLlBs YW5lIHA0LCBHcmFwaGVuZS5QbGFuZSBwNSk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5G cnVzdHVtPyBpbml0X2Zyb21fZnJ1c3R1bSAoR3JhcGhlbmUuRnJ1c3R1bSBzcmMpOworKwkJcHVi bGljIHVub3duZWQgR3JhcGhlbmUuRnJ1c3R1bT8gaW5pdF9mcm9tX21hdHJpeCAoR3JhcGhlbmUu TWF0cml4IG1hdHJpeCk7CisrCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3RzX2JveCAoR3JhcGhlbmUu Qm94IGJveCk7CisrCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3RzX3NwaGVyZSAoR3JhcGhlbmUuU3Bo ZXJlIHNwaGVyZSk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5l LWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX21hdHJpeF90IiwgdHlwZV9pZCA9ICJncmFw aGVuZV9tYXRyaXhfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIHN0cnVjdCBNYXRyaXggeworKwkJ cHVibGljIGJvb2wgZGVjb21wb3NlIChvdXQgR3JhcGhlbmUuVmVjMyB0cmFuc2xhdGUsIG91dCBH cmFwaGVuZS5WZWMzIHNjYWxlLCBvdXQgR3JhcGhlbmUuUXVhdGVybmlvbiByb3RhdGUsIG91dCBH cmFwaGVuZS5WZWMzIHNoZWFyLCBvdXQgR3JhcGhlbmUuVmVjNCBwZXJzcGVjdGl2ZSk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZGV0ZXJtaW5hbnQgKCk7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGJvb2wgZXF1YWwgKEdy YXBoZW5lLk1hdHJpeCBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJs aWMgYm9vbCBlcXVhbF9mYXN0IChHcmFwaGVuZS5NYXRyaXggYik7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBnZXRfcm93ICh1aW50IGluZGV4 Xyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3Zh bHVlICh1aW50IHJvdywgdWludCBjb2wpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor KwkJcHVibGljIGZsb2F0IGdldF94X3NjYWxlICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfeF90cmFuc2xhdGlvbiAoKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfeV9zY2FsZSAoKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3lfdHJhbnNsYXRp b24gKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZ2V0 X3pfc2NhbGUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGZs b2F0IGdldF96X3RyYW5zbGF0aW9uICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor KwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuTWF0cml4PyBpbml0X2Zyb21fMmQgKGRvdWJsZSB4 eCwgZG91YmxlIHl4LCBkb3VibGUgeHksIGRvdWJsZSB5eSwgZG91YmxlIHhfMCwgZG91YmxlIHlf MCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFw aGVuZS5NYXRyaXg/IGluaXRfZnJvbV9mbG9hdCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxz ZSldIGZsb2F0IHZbMTZdKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1Ymxp YyB1bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8gaW5pdF9mcm9tX21hdHJpeCAoR3JhcGhlbmUuTWF0 cml4IHNyYyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25l ZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfZnJvbV92ZWM0IChHcmFwaGVuZS5WZWM0IHYwLCBHcmFw aGVuZS5WZWM0IHYxLCBHcmFwaGVuZS5WZWM0IHYyLCBHcmFwaGVuZS5WZWM0IHYzKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLk1hdHJp eD8gaW5pdF9mcnVzdHVtIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBm bG9hdCB0b3AsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuTWF0cml4PyBpbml0X2lkZW50 aXR5ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQg R3JhcGhlbmUuTWF0cml4PyBpbml0X2xvb2tfYXQgKEdyYXBoZW5lLlZlYzMgZXllLCBHcmFwaGVu ZS5WZWMzIGNlbnRlciwgR3JhcGhlbmUuVmVjMyB1cCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfb3J0aG8gKGZs b2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCB0b3AsIGZsb2F0IGJvdHRvbSwgZmxvYXQgel9u ZWFyLCBmbG9hdCB6X2Zhcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJs aWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfcGVyc3BlY3RpdmUgKGZsb2F0IGZvdnks IGZsb2F0IGFzcGVjdCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRf cm90YXRlIChmbG9hdCBhbmdsZSwgR3JhcGhlbmUuVmVjMyBheGlzKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8gaW5pdF9z Y2FsZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfc2tldyAoZmxv YXQgeF9za2V3LCBmbG9hdCB5X3NrZXcpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor KwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuTWF0cml4PyBpbml0X3RyYW5zbGF0ZSAoR3JhcGhl bmUuUG9pbnQzRCBwKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBH cmFwaGVuZS5NYXRyaXggaW50ZXJwb2xhdGUgKEdyYXBoZW5lLk1hdHJpeCBiLCBkb3VibGUgZmFj dG9yKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBib29sIGludmVy c2UgKG91dCBHcmFwaGVuZS5NYXRyaXggcmVzKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyBib29sIGlzXzJkICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorKwkJcHVibGljIGJvb2wgaXNfYmFja2ZhY2VfdmlzaWJsZSAoKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBib29sIGlzX2lkZW50aXR5ICgpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGJvb2wgaXNfc2luZ3VsYXIgKCk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuTWF0cml4IG11bHRp cGx5IChHcmFwaGVuZS5NYXRyaXggYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor KwkJcHVibGljIGJvb2wgbmVhciAoR3JhcGhlbmUuTWF0cml4IGIsIGZsb2F0IGVwc2lsb24pOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLk1hdHJpeCBu b3JtYWxpemUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3Jh cGhlbmUuTWF0cml4IHBlcnNwZWN0aXZlIChmbG9hdCBkZXB0aCk7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCBwcmludCAoKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBwcm9qZWN0X3BvaW50IChHcmFw aGVuZS5Qb2ludCBwKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBH cmFwaGVuZS5RdWFkIHByb2plY3RfcmVjdCAoR3JhcGhlbmUuUmVjdCByKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IHByb2plY3RfcmVjdF9i b3VuZHMgKEdyYXBoZW5lLlJlY3Qgcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgdm9pZCByb3RhdGUgKGZsb2F0IGFuZ2xlLCBHcmFwaGVuZS5WZWMzIGF4aXMpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIHZvaWQgcm90YXRlX2V1bGVy IChHcmFwaGVuZS5FdWxlciBlKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1 YmxpYyB2b2lkIHJvdGF0ZV9xdWF0ZXJuaW9uIChHcmFwaGVuZS5RdWF0ZXJuaW9uIHEpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgcm90YXRlX3ggKGZsb2F0 IGFuZ2xlKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB2b2lkIHJv dGF0ZV95IChmbG9hdCBhbmdsZSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlw dWJsaWMgdm9pZCByb3RhdGVfeiAoZmxvYXQgYW5nbGUpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorKwkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IGZhY3Rvcl94LCBmbG9hdCBmYWN0 b3JfeSwgZmxvYXQgZmFjdG9yX3opOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJ cHVibGljIHZvaWQgc2tld194eSAoZmxvYXQgZmFjdG9yKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKysJCXB1YmxpYyB2b2lkIHNrZXdfeHogKGZsb2F0IGZhY3Rvcik7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCBza2V3X3l6IChmbG9hdCBmYWN0 b3IpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGJvb2wgdG9fMmQg KG91dCBkb3VibGUgeHgsIG91dCBkb3VibGUgeXgsIG91dCBkb3VibGUgeHksIG91dCBkb3VibGUg eXksIG91dCBkb3VibGUgeF8wLCBvdXQgZG91YmxlIHlfMCk7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCB0b19mbG9hdCAoW0NDb2RlIChhcnJheV9sZW5ndGgg PSBmYWxzZSldIHJlZiBmbG9hdCB2WzE2XSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCB0cmFuc2Zvcm1fYm91bmRzIChHcmFwaGVuZS5SZWN0 IHIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIEdyYXBoZW5lLkJv eCB0cmFuc2Zvcm1fYm94IChHcmFwaGVuZS5Cb3ggYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQgdHJhbnNmb3JtX3BvaW50IChHcmFwaGVu ZS5Qb2ludCBwKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFw aGVuZS5Qb2ludDNEIHRyYW5zZm9ybV9wb2ludDNkIChHcmFwaGVuZS5Qb2ludDNEIHApOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlJheSB0cmFuc2Zv cm1fcmF5IChHcmFwaGVuZS5SYXkgcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgR3JhcGhlbmUuUXVhZCB0cmFuc2Zvcm1fcmVjdCAoR3JhcGhlbmUuUmVjdCByKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5TcGhlcmUg dHJhbnNmb3JtX3NwaGVyZSAoR3JhcGhlbmUuU3BoZXJlIHMpOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgdHJhbnNmb3JtX3ZlYzMgKEdyYXBo ZW5lLlZlYzMgdik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3Jh cGhlbmUuVmVjNCB0cmFuc2Zvcm1fdmVjNCAoR3JhcGhlbmUuVmVjNCB2KTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB2b2lkIHRyYW5zbGF0ZSAoR3JhcGhlbmUuUG9p bnQzRCBwb3MpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBo ZW5lLk1hdHJpeCB0cmFuc3Bvc2UgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisr CQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCB1bnByb2plY3RfcG9pbnQzZCAoR3JhcGhlbmUuTWF0 cml4IG1vZGVsdmlldywgR3JhcGhlbmUuUG9pbnQzRCBwb2ludCk7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCB1bnRyYW5zZm9ybV9ib3VuZHMg KEdyYXBoZW5lLlJlY3QgciwgR3JhcGhlbmUuUmVjdCBib3VuZHMpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIGJvb2wgdW50cmFuc2Zvcm1fcG9pbnQgKEdyYXBoZW5l LlBvaW50IHAsIEdyYXBoZW5lLlJlY3QgYm91bmRzLCBvdXQgR3JhcGhlbmUuUG9pbnQgcmVzKTsK KysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwg Y25hbWUgPSAiZ3JhcGhlbmVfcGxhbmVfdCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfcGxhbmVfZ2V0 X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwlwdWJsaWMgc3RydWN0 IFBsYW5lIHsKKysJCXB1YmxpYyBmbG9hdCBkaXN0YW5jZSAoR3JhcGhlbmUuUG9pbnQzRCBwb2lu dCk7CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuUGxhbmUgYik7CisrCQlwdWJsaWMg ZmxvYXQgZ2V0X2NvbnN0YW50ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgZ2V0X25vcm1h bCAoKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBsYW5lPyBpbml0IChHcmFwaGVuZS5W ZWMzPyBub3JtYWwsIGZsb2F0IGNvbnN0YW50KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5l LlBsYW5lPyBpbml0X2Zyb21fcGxhbmUgKEdyYXBoZW5lLlBsYW5lIHNyYyk7CisrCQlwdWJsaWMg dW5vd25lZCBHcmFwaGVuZS5QbGFuZT8gaW5pdF9mcm9tX3BvaW50IChHcmFwaGVuZS5WZWMzIG5v cm1hbCwgR3JhcGhlbmUuUG9pbnQzRCBwb2ludCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVu ZS5QbGFuZT8gaW5pdF9mcm9tX3BvaW50cyAoR3JhcGhlbmUuUG9pbnQzRCBhLCBHcmFwaGVuZS5Q b2ludDNEIGIsIEdyYXBoZW5lLlBvaW50M0QgYyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVu ZS5QbGFuZT8gaW5pdF9mcm9tX3ZlYzQgKEdyYXBoZW5lLlZlYzQgc3JjKTsKKysJCXB1YmxpYyBH cmFwaGVuZS5QbGFuZSBuZWdhdGUgKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUGxhbmUgbm9ybWFs aXplICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVu ZS5QbGFuZSB0cmFuc2Zvcm0gKEdyYXBoZW5lLk1hdHJpeCBtYXRyaXgsIEdyYXBoZW5lLk1hdHJp eD8gbm9ybWFsX21hdHJpeCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdy YXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3BvaW50X3QiLCB0eXBlX2lkID0g ImdyYXBoZW5lX3BvaW50X2dldF90eXBlICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJcHVibGljIHN0cnVjdCBQb2ludCB7CisrCQlwdWJsaWMgZmxvYXQgeDsKKysJCXB1Ymxp YyBmbG9hdCB5OworKwkJcHVibGljIGZsb2F0IGRpc3RhbmNlIChHcmFwaGVuZS5Qb2ludCBiLCBv dXQgZmxvYXQgZF94LCBvdXQgZmxvYXQgZF95KTsKKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFw aGVuZS5Qb2ludCBiKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBvaW50PyBpbml0IChm bG9hdCB4LCBmbG9hdCB5KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBvaW50PyBpbml0 X2Zyb21fcG9pbnQgKEdyYXBoZW5lLlBvaW50IHNyYyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS40IildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Qb2ludD8gaW5pdF9mcm9tX3ZlYzIg KEdyYXBoZW5lLlZlYzIgc3JjKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBpbnRlcnBvbGF0 ZSAoR3JhcGhlbmUuUG9pbnQgYiwgZG91YmxlIGZhY3Rvcik7CisrCQlwdWJsaWMgYm9vbCBuZWFy IChHcmFwaGVuZS5Qb2ludCBiLCBmbG9hdCBlcHNpbG9uKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjQiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMyIHRvX3ZlYzIgKCk7CisrCQlwdWJsaWMg c3RhdGljIHVub3duZWQgR3JhcGhlbmUuUG9pbnQ/IHplcm8gKCk7CisrCX0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5l X3BvaW50M2RfdCIsIGxvd2VyX2Nhc2VfY3N1ZmZpeCA9ICJwb2ludDNkIiwgdHlwZV9pZCA9ICJn cmFwaGVuZV9wb2ludDNkX2dldF90eXBlICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJcHVibGljIHN0cnVjdCBQb2ludDNEIHsKKysJCXB1YmxpYyBmbG9hdCB4OworKwkJcHVi bGljIGZsb2F0IHk7CisrCQlwdWJsaWMgZmxvYXQgejsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2lu dDNEIGNyb3NzIChHcmFwaGVuZS5Qb2ludDNEIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NCIpXQorKwkJcHVibGljIGZsb2F0IGRpc3RhbmNlIChHcmFwaGVuZS5Qb2ludDNEIGIsIG91dCBH cmFwaGVuZS5WZWMzIGRlbHRhKTsKKysJCXB1YmxpYyBmbG9hdCBkb3QgKEdyYXBoZW5lLlBvaW50 M0QgYik7CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuUG9pbnQzRCBiKTsKKysJCXB1 YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBvaW50M0Q/IGluaXQgKGZsb2F0IHgsIGZsb2F0IHksIGZs b2F0IHopOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUG9pbnQzRD8gaW5pdF9mcm9tX3Bv aW50IChHcmFwaGVuZS5Qb2ludDNEIHNyYyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Q b2ludDNEPyBpbml0X2Zyb21fdmVjMyAoR3JhcGhlbmUuVmVjMyB2KTsKKysJCXB1YmxpYyBHcmFw aGVuZS5Qb2ludDNEIGludGVycG9sYXRlIChHcmFwaGVuZS5Qb2ludDNEIGIsIGRvdWJsZSBmYWN0 b3IpOworKwkJcHVibGljIGZsb2F0IGxlbmd0aCAoKTsKKysJCXB1YmxpYyBib29sIG5lYXIgKEdy YXBoZW5lLlBvaW50M0QgYiwgZmxvYXQgZXBzaWxvbik7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9p bnQzRCBub3JtYWxpemUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisrCQlwdWJs aWMgR3JhcGhlbmUuUG9pbnQzRCBub3JtYWxpemVfdmlld3BvcnQgKEdyYXBoZW5lLlJlY3Qgdmll d3BvcnQsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworKwkJcHVibGljIEdyYXBoZW5lLlBv aW50M0Qgc2NhbGUgKGZsb2F0IGZhY3Rvcik7CisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyB0b192 ZWMzICgpOworKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlBvaW50M0Q/IHplcm8g KCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3Qu aCIsIGNuYW1lID0gImdyYXBoZW5lX3F1YWRfdCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfcXVhZF9n ZXRfdHlwZSAoKSIpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCXB1YmxpYyBzdHJ1 Y3QgUXVhZCB7CisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBib3VuZHMgKCk7CisrCQlwdWJsaWMg Ym9vbCBjb250YWlucyAoR3JhcGhlbmUuUG9pbnQgcCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFw aGVuZS5Qb2ludD8gZ2V0X3BvaW50ICh1aW50IGluZGV4Xyk7CisrCQlwdWJsaWMgdW5vd25lZCBH cmFwaGVuZS5RdWFkPyBpbml0IChHcmFwaGVuZS5Qb2ludCBwMSwgR3JhcGhlbmUuUG9pbnQgcDIs IEdyYXBoZW5lLlBvaW50IHAzLCBHcmFwaGVuZS5Qb2ludCBwNCk7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4yIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5RdWFkPyBpbml0X2Zyb21f cG9pbnRzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gR3JhcGhlbmUuUG9pbnQgcG9p bnRzWzRdKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlF1YWQ/IGluaXRfZnJvbV9yZWN0 IChHcmFwaGVuZS5SZWN0IHIpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJn cmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9xdWF0ZXJuaW9uX3QiLCB0eXBl X2lkID0gImdyYXBoZW5lX3F1YXRlcm5pb25fZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwlwdWJsaWMgc3RydWN0IFF1YXRlcm5pb24geworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5RdWF0ZXJuaW9uIGFkZCAoR3Jh cGhlbmUuUXVhdGVybmlvbiBiKTsKKysJCXB1YmxpYyBmbG9hdCBkb3QgKEdyYXBoZW5lLlF1YXRl cm5pb24gYik7CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuUXVhdGVybmlvbiBiKTsK KysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlF1YXRlcm5pb24/IGluaXQgKGZsb2F0IHgsIGZs b2F0IHksIGZsb2F0IHosIGZsb2F0IHcpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUXVh dGVybmlvbj8gaW5pdF9mcm9tX2FuZ2xlX3ZlYzMgKGZsb2F0IGFuZ2xlLCBHcmFwaGVuZS5WZWMz IGF4aXMpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUXVhdGVybmlvbj8gaW5pdF9mcm9t X2FuZ2xlcyAoZmxvYXQgZGVnX3gsIGZsb2F0IGRlZ195LCBmbG9hdCBkZWdfeik7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5RdWF0ZXJu aW9uPyBpbml0X2Zyb21fZXVsZXIgKEdyYXBoZW5lLkV1bGVyIGUpOworKwkJcHVibGljIHVub3du ZWQgR3JhcGhlbmUuUXVhdGVybmlvbj8gaW5pdF9mcm9tX21hdHJpeCAoR3JhcGhlbmUuTWF0cml4 IG0pOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUXVhdGVybmlvbj8gaW5pdF9mcm9tX3F1 YXRlcm5pb24gKEdyYXBoZW5lLlF1YXRlcm5pb24gc3JjKTsKKysJCXB1YmxpYyB1bm93bmVkIEdy YXBoZW5lLlF1YXRlcm5pb24/IGluaXRfZnJvbV9yYWRpYW5zIChmbG9hdCByYWRfeCwgZmxvYXQg cmFkX3ksIGZsb2F0IHJhZF96KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlF1YXRlcm5p b24/IGluaXRfZnJvbV92ZWM0IChHcmFwaGVuZS5WZWM0IHNyYyk7CisrCQlwdWJsaWMgdW5vd25l ZCBHcmFwaGVuZS5RdWF0ZXJuaW9uPyBpbml0X2lkZW50aXR5ICgpOworKwkJcHVibGljIEdyYXBo ZW5lLlF1YXRlcm5pb24gaW52ZXJ0ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K KysJCXB1YmxpYyBHcmFwaGVuZS5RdWF0ZXJuaW9uIG11bHRpcGx5IChHcmFwaGVuZS5RdWF0ZXJu aW9uIGIpOworKwkJcHVibGljIEdyYXBoZW5lLlF1YXRlcm5pb24gbm9ybWFsaXplICgpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5RdWF0ZXJuaW9u IHNjYWxlIChmbG9hdCBmYWN0b3IpOworKwkJcHVibGljIEdyYXBoZW5lLlF1YXRlcm5pb24gc2xl cnAgKEdyYXBoZW5lLlF1YXRlcm5pb24gYiwgZmxvYXQgZmFjdG9yKTsKKysJCXB1YmxpYyB2b2lk IHRvX2FuZ2xlX3ZlYzMgKG91dCBmbG9hdCBhbmdsZSwgb3V0IEdyYXBoZW5lLlZlYzMgYXhpcyk7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgdm9pZCB0b19hbmdsZXMg KG91dCBmbG9hdCBkZWdfeCwgb3V0IGZsb2F0IGRlZ195LCBvdXQgZmxvYXQgZGVnX3opOworKwkJ cHVibGljIEdyYXBoZW5lLk1hdHJpeCB0b19tYXRyaXggKCk7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4yIildCisrCQlwdWJsaWMgdm9pZCB0b19yYWRpYW5zIChvdXQgZmxvYXQgcmFkX3gsIG91 dCBmbG9hdCByYWRfeSwgb3V0IGZsb2F0IHJhZF96KTsKKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0 IHRvX3ZlYzQgKCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5l LWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3JheV90IiwgdHlwZV9pZCA9ICJncmFwaGVu ZV9yYXlfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorKwlwdWJs aWMgc3RydWN0IFJheSB7CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuUmF5IGIpOwor KwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0QgZ2V0X2Nsb3Nlc3RfcG9pbnRfdG9fcG9pbnQgKEdy YXBoZW5lLlBvaW50M0QgcCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBnZXRfZGlyZWN0aW9u ICgpOworKwkJcHVibGljIGZsb2F0IGdldF9kaXN0YW5jZV90b19wbGFuZSAoR3JhcGhlbmUuUGxh bmUgcCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X2Rpc3RhbmNlX3RvX3BvaW50IChHcmFwaGVuZS5Q b2ludDNEIHApOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0QgZ2V0X29yaWdpbiAoKTsKKysJ CXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIGdldF9wb3NpdGlvbl9hdCAoZmxvYXQgdCk7CisrCQlw dWJsaWMgdW5vd25lZCBHcmFwaGVuZS5SYXk/IGluaXQgKEdyYXBoZW5lLlBvaW50M0Q/IG9yaWdp biwgR3JhcGhlbmUuVmVjMz8gZGlyZWN0aW9uKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5l LlJheT8gaW5pdF9mcm9tX3JheSAoR3JhcGhlbmUuUmF5IHNyYyk7CisrCQlwdWJsaWMgdW5vd25l ZCBHcmFwaGVuZS5SYXk/IGluaXRfZnJvbV92ZWMzIChHcmFwaGVuZS5WZWMzPyBvcmlnaW4sIEdy YXBoZW5lLlZlYzM/IGRpcmVjdGlvbik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor KwkJcHVibGljIEdyYXBoZW5lLlJheUludGVyc2VjdGlvbktpbmQgaW50ZXJzZWN0X2JveCAoR3Jh cGhlbmUuQm94IGIsIG91dCBmbG9hdCB0X291dCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlJheUludGVyc2VjdGlvbktpbmQgaW50ZXJzZWN0X3Nw aGVyZSAoR3JhcGhlbmUuU3BoZXJlIHMsIG91dCBmbG9hdCB0X291dCk7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlJheUludGVyc2VjdGlvbktpbmQg aW50ZXJzZWN0X3RyaWFuZ2xlIChHcmFwaGVuZS5UcmlhbmdsZSB0LCBvdXQgZmxvYXQgdF9vdXQp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBib29sIGludGVyc2Vj dHNfYm94IChHcmFwaGVuZS5Cb3ggYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor KwkJcHVibGljIGJvb2wgaW50ZXJzZWN0c19zcGhlcmUgKEdyYXBoZW5lLlNwaGVyZSBzKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3RzX3Ry aWFuZ2xlIChHcmFwaGVuZS5UcmlhbmdsZSB0KTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfcmVjdF90Iiwg dHlwZV9pZCA9ICJncmFwaGVuZV9yZWN0X2dldF90eXBlICgpIildCisrCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKysJcHVibGljIHN0cnVjdCBSZWN0IHsKKysJCXB1YmxpYyBHcmFwaGVuZS5Q b2ludCBvcmlnaW47CisrCQlwdWJsaWMgR3JhcGhlbmUuU2l6ZSBzaXplOworKwkJcHVibGljIHN0 YXRpYyBHcmFwaGVuZS5SZWN0PyBhbGxvYyAoKTsKKysJCXB1YmxpYyBib29sIGNvbnRhaW5zX3Bv aW50IChHcmFwaGVuZS5Qb2ludCBwKTsKKysJCXB1YmxpYyBib29sIGNvbnRhaW5zX3JlY3QgKEdy YXBoZW5lLlJlY3QgYik7CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhlbmUuUmVjdCBiKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IGV4 cGFuZCAoR3JhcGhlbmUuUG9pbnQgcCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor KwkJcHVibGljIGZsb2F0IGdldF9hcmVhICgpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50IGdl dF9ib3R0b21fbGVmdCAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBnZXRfYm90dG9tX3Jp Z2h0ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50IGdldF9jZW50ZXIgKCk7CisrCQlwdWJs aWMgZmxvYXQgZ2V0X2hlaWdodCAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBnZXRfdG9w X2xlZnQgKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQgZ2V0X3RvcF9yaWdodCAoKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyB2b2lkIGdldF92ZXJ0aWNlcyAo W0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHJlZiBHcmFwaGVuZS5WZWMyIHZlcnRpY2Vz WzRdKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfd2lkdGggKCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0 X3ggKCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X3kgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFw aGVuZS5SZWN0PyBpbml0IChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVp Z2h0KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlJlY3Q/IGluaXRfZnJvbV9yZWN0IChH cmFwaGVuZS5SZWN0IHNyYyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5SZWN0PyBpbnNl dCAoZmxvYXQgZF94LCBmbG9hdCBkX3kpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQor KwkJcHVibGljIEdyYXBoZW5lLlJlY3QgaW5zZXRfciAoZmxvYXQgZF94LCBmbG9hdCBkX3kpOwor KwkJcHVibGljIEdyYXBoZW5lLlJlY3QgaW50ZXJwb2xhdGUgKEdyYXBoZW5lLlJlY3QgYiwgZG91 YmxlIGZhY3Rvcik7CisrCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3Rpb24gKEdyYXBoZW5lLlJlY3Qg Yiwgb3V0IEdyYXBoZW5lLlJlY3QgcmVzKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlJl Y3Q/IG5vcm1hbGl6ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJCXB1Ymxp YyBHcmFwaGVuZS5SZWN0IG5vcm1hbGl6ZV9yICgpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhl bmUuUmVjdD8gb2Zmc2V0IChmbG9hdCBkX3gsIGZsb2F0IGRfeSk7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS40IildCisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBvZmZzZXRfciAoZmxvYXQgZF94 LCBmbG9hdCBkX3kpOworKwkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0 IHJvdW5kICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFw aGVuZS5SZWN0IHJvdW5kX2V4dGVudHMgKCk7CisrCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS40Iiwgc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMg dW5vd25lZCBHcmFwaGVuZS5SZWN0PyByb3VuZF90b19waXhlbCAoKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBzY2FsZSAoZmxvYXQgc19o LCBmbG9hdCBzX3YpOworKwkJcHVibGljIEdyYXBoZW5lLlJlY3QgdW5pb24gKEdyYXBoZW5lLlJl Y3QgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisrCQlwdWJsaWMgc3RhdGljIHVu b3duZWQgR3JhcGhlbmUuUmVjdD8gemVybyAoKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfc2ltZDRmX3Qi LCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJcHVibGljIHN0cnVjdCBTaW1kNEYgeworKwl9Cisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9 ICJncmFwaGVuZV9zaW1kNHg0Zl90IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCXB1YmxpYyBz dHJ1Y3QgU2ltZDRYNEYgeworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFw aGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9zaXplX3QiLCB0eXBlX2lkID0gImdy YXBoZW5lX3NpemVfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor KwlwdWJsaWMgc3RydWN0IFNpemUgeworKwkJcHVibGljIGZsb2F0IHdpZHRoOworKwkJcHVibGlj IGZsb2F0IGhlaWdodDsKKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5TaXplIGIpOwor KwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuU2l6ZT8gaW5pdCAoZmxvYXQgd2lkdGgsIGZsb2F0 IGhlaWdodCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5TaXplPyBpbml0X2Zyb21fc2l6 ZSAoR3JhcGhlbmUuU2l6ZSBzcmMpOworKwkJcHVibGljIEdyYXBoZW5lLlNpemUgaW50ZXJwb2xh dGUgKEdyYXBoZW5lLlNpemUgYiwgZG91YmxlIGZhY3Rvcik7CisrCQlwdWJsaWMgR3JhcGhlbmUu U2l6ZSBzY2FsZSAoZmxvYXQgZmFjdG9yKTsKKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFw aGVuZS5TaXplPyB6ZXJvICgpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJn cmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9zcGhlcmVfdCIsIHR5cGVfaWQg PSAiZ3JhcGhlbmVfc3BoZXJlX2dldF90eXBlICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIx LjIiKV0KKysJcHVibGljIHN0cnVjdCBTcGhlcmUgeworKwkJcHVibGljIGJvb2wgY29udGFpbnNf cG9pbnQgKEdyYXBoZW5lLlBvaW50M0QgcG9pbnQpOworKwkJcHVibGljIGZsb2F0IGRpc3RhbmNl IChHcmFwaGVuZS5Qb2ludDNEIHBvaW50KTsKKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVu ZS5TcGhlcmUgYik7CisrCQlwdWJsaWMgR3JhcGhlbmUuQm94IGdldF9ib3VuZGluZ19ib3ggKCk7 CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBnZXRfY2VudGVyICgpOworKwkJcHVibGljIGZs b2F0IGdldF9yYWRpdXMgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5TcGhlcmU/IGlu aXQgKEdyYXBoZW5lLlBvaW50M0Q/IGNlbnRlciwgZmxvYXQgcmFkaXVzKTsKKysJCXB1YmxpYyB1 bm93bmVkIEdyYXBoZW5lLlNwaGVyZT8gaW5pdF9mcm9tX3BvaW50cyAoW0NDb2RlIChhcnJheV9s ZW5ndGhfY25hbWUgPSAibl9wb2ludHMiLCBhcnJheV9sZW5ndGhfcG9zID0gMC41LCBhcnJheV9s ZW5ndGhfdHlwZSA9ICJndWludCIpXSBHcmFwaGVuZS5Qb2ludDNEW10gcG9pbnRzLCBHcmFwaGVu ZS5Qb2ludDNEPyBjZW50ZXIpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuU3BoZXJlPyBp bml0X2Zyb21fdmVjdG9ycyAoW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl92ZWN0b3Jz IiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDAuNSwgYXJyYXlfbGVuZ3RoX3R5cGUgPSAiZ3VpbnQiKV0g R3JhcGhlbmUuVmVjM1tdIHZlY3RvcnMsIEdyYXBoZW5lLlBvaW50M0Q/IGNlbnRlcik7CisrCQlw dWJsaWMgYm9vbCBpc19lbXB0eSAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5TcGhlcmUgdHJhbnNs YXRlIChHcmFwaGVuZS5Qb2ludDNEIHBvaW50KTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfdHJpYW5nbGVf dCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfdHJpYW5nbGVfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNp b24gKHNpbmNlID0gIjEuMiIpXQorKwlwdWJsaWMgc3RydWN0IFRyaWFuZ2xlIHsKKysJCXB1Ymxp YyBib29sIGNvbnRhaW5zX3BvaW50IChHcmFwaGVuZS5Qb2ludDNEIHApOworKwkJcHVibGljIGJv b2wgZXF1YWwgKEdyYXBoZW5lLlRyaWFuZ2xlIGIpOworKwkJcHVibGljIGZsb2F0IGdldF9hcmVh ICgpOworKwkJcHVibGljIGJvb2wgZ2V0X2Jhcnljb29yZHMgKEdyYXBoZW5lLlBvaW50M0Q/IHAs IG91dCBHcmFwaGVuZS5WZWMyIHJlcyk7CisrCQlwdWJsaWMgR3JhcGhlbmUuQm94IGdldF9ib3Vu ZGluZ19ib3ggKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBnZXRfbWlkcG9pbnQgKCk7 CisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBnZXRfbm9ybWFsICgpOworKwkJcHVibGljIEdyYXBo ZW5lLlBsYW5lIGdldF9wbGFuZSAoKTsKKysJCXB1YmxpYyB2b2lkIGdldF9wb2ludHMgKG91dCBH cmFwaGVuZS5Qb2ludDNEIGEsIG91dCBHcmFwaGVuZS5Qb2ludDNEIGIsIG91dCBHcmFwaGVuZS5Q b2ludDNEIGMpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBib29s IGdldF91diAoR3JhcGhlbmUuUG9pbnQzRD8gcCwgR3JhcGhlbmUuVmVjMiB1dl9hLCBHcmFwaGVu ZS5WZWMyIHV2X2IsIEdyYXBoZW5lLlZlYzIgdXZfYywgb3V0IEdyYXBoZW5lLlZlYzIgcmVzKTsK KysJCXB1YmxpYyB2b2lkIGdldF92ZXJ0aWNlcyAob3V0IEdyYXBoZW5lLlZlYzMgYSwgb3V0IEdy YXBoZW5lLlZlYzMgYiwgb3V0IEdyYXBoZW5lLlZlYzMgYyk7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuVHJpYW5nbGU/IGluaXRfZnJv bV9mbG9hdCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0IGFbM10sIFtDQ29k ZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdCBiWzNdLCBbQ0NvZGUgKGFycmF5X2xlbmd0 aCA9IGZhbHNlKV0gZmxvYXQgY1szXSk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Ucmlh bmdsZT8gaW5pdF9mcm9tX3BvaW50M2QgKEdyYXBoZW5lLlBvaW50M0Q/IGEsIEdyYXBoZW5lLlBv aW50M0Q/IGIsIEdyYXBoZW5lLlBvaW50M0Q/IGMpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhl bmUuVHJpYW5nbGU/IGluaXRfZnJvbV92ZWMzIChHcmFwaGVuZS5WZWMzPyBhLCBHcmFwaGVuZS5W ZWMzPyBiLCBHcmFwaGVuZS5WZWMzPyBjKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfdmVjMl90IiwgdHlw ZV9pZCA9ICJncmFwaGVuZV92ZWMyX2dldF90eXBlICgpIildCisrCXB1YmxpYyBzdHJ1Y3QgVmVj MiB7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVj MiBhZGQgKEdyYXBoZW5lLlZlYzIgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBkaXZpZGUgKEdyYXBoZW5lLlZlYzIgYik7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZG90IChHcmFwaGVuZS5WZWMy IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIGJvb2wgZXF1YWwg KEdyYXBoZW5lLlZlYzIgdjIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVi bGljIGZsb2F0IGdldF94ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVi bGljIGZsb2F0IGdldF95ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVi bGljIHVub3duZWQgR3JhcGhlbmUuVmVjMj8gaW5pdCAoZmxvYXQgeCwgZmxvYXQgeSk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5WZWMy PyBpbml0X2Zyb21fZmxvYXQgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdCBz cmNbMl0pOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQg R3JhcGhlbmUuVmVjMj8gaW5pdF9mcm9tX3ZlYzIgKEdyYXBoZW5lLlZlYzIgc3JjKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBpbnRlcnBv bGF0ZSAoR3JhcGhlbmUuVmVjMiB2MiwgZG91YmxlIGZhY3Rvcik7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgbGVuZ3RoICgpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzIgbWF4IChHcmFwaGVuZS5WZWMy IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZl YzIgbWluIChHcmFwaGVuZS5WZWMyIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor KwkJcHVibGljIEdyYXBoZW5lLlZlYzIgbXVsdGlwbHkgKEdyYXBoZW5lLlZlYzIgYik7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgYm9vbCBuZWFyIChHcmFwaGVuZS5W ZWMyIHYyLCBmbG9hdCBlcHNpbG9uKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJ CXB1YmxpYyBHcmFwaGVuZS5WZWMyIG5lZ2F0ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMyIG5vcm1hbGl6ZSAoKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWMy PyBvbmUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgR3JhcGhl bmUuVmVjMiBzY2FsZSAoZmxvYXQgZmFjdG9yKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMyIHN1YnRyYWN0IChHcmFwaGVuZS5WZWMyIGIpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgdG9fZmxvYXQgKFtD Q29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSByZWYgZmxvYXQgZGVzdFsyXSk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUu VmVjMj8geF9heGlzICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGlj IHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzI/IHlfYXhpcyAoKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWMyPyB6 ZXJvICgpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2Jq ZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV92ZWMzX3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX3Zl YzNfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIHN0cnVjdCBWZWMzIHsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIGFkZCAoR3JhcGhlbmUuVmVj MyBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5W ZWMzIGNyb3NzIChHcmFwaGVuZS5WZWMzIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgZGl2aWRlIChHcmFwaGVuZS5WZWMzIGIpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGRvdCAoR3JhcGhlbmUu VmVjMyBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBib29sIGVx dWFsIChHcmFwaGVuZS5WZWMzIHYyKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJ CXB1YmxpYyBmbG9hdCBnZXRfeCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJ CXB1YmxpYyBHcmFwaGVuZS5WZWMyIGdldF94eSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIGdldF94eTAgKCk7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBnZXRfeHl6MCAoKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IGdldF94 eXoxICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5l LlZlYzQgZ2V0X3h5encgKGZsb2F0IHcpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor KwkJcHVibGljIGZsb2F0IGdldF95ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor KwkJcHVibGljIGZsb2F0IGdldF96ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor KwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuVmVjMz8gaW5pdCAoZmxvYXQgeCwgZmxvYXQgeSwg ZmxvYXQgeik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25l ZCBHcmFwaGVuZS5WZWMzPyBpbml0X2Zyb21fZmxvYXQgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0g ZmFsc2UpXSBmbG9hdCBzcmNbM10pOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJ cHVibGljIHVub3duZWQgR3JhcGhlbmUuVmVjMz8gaW5pdF9mcm9tX3ZlYzMgKEdyYXBoZW5lLlZl YzMgc3JjKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgR3JhcGhl bmUuVmVjMyBpbnRlcnBvbGF0ZSAoR3JhcGhlbmUuVmVjMyB2MiwgZG91YmxlIGZhY3Rvcik7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgbGVuZ3RoICgpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgbWF4 IChHcmFwaGVuZS5WZWMzIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVi bGljIEdyYXBoZW5lLlZlYzMgbWluIChHcmFwaGVuZS5WZWMzIGIpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgbXVsdGlwbHkgKEdyYXBoZW5l LlZlYzMgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgYm9vbCBu ZWFyIChHcmFwaGVuZS5WZWMzIHYyLCBmbG9hdCBlcHNpbG9uKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIG5lZ2F0ZSAoKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIG5vcm1hbGl6ZSAo KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25l ZCBHcmFwaGVuZS5WZWMzPyBvbmUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisr CQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBzY2FsZSAoZmxvYXQgZmFjdG9yKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIHN1YnRyYWN0IChHcmFw aGVuZS5WZWMzIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZv aWQgdG9fZmxvYXQgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSByZWYgZmxvYXQgZGVz dFszXSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVu b3duZWQgR3JhcGhlbmUuVmVjMz8geF9heGlzICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzM/IHlfYXhpcyAoKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBH cmFwaGVuZS5WZWMzPyB6X2F4aXMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuVmVjMz8gemVybyAoKTsKKysJfQorKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAi Z3JhcGhlbmVfdmVjNF90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV92ZWM0X2dldF90eXBlICgpIild CisrCXB1YmxpYyBzdHJ1Y3QgVmVjNCB7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisr CQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBhZGQgKEdyYXBoZW5lLlZlYzQgYik7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBkaXZpZGUgKEdyYXBo ZW5lLlZlYzQgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxv YXQgZG90IChHcmFwaGVuZS5WZWM0IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQor KwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5lLlZlYzQgdjIpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF93ICgpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF94ICgpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzIgZ2V0X3h5ICgpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgZ2V0X3h5eiAo KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfeSAo KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfeiAo KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBo ZW5lLlZlYzQ/IGluaXQgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHosIGZsb2F0IHcpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuVmVj ND8gaW5pdF9mcm9tX2Zsb2F0IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXQg c3JjWzRdKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVk IEdyYXBoZW5lLlZlYzQ/IGluaXRfZnJvbV92ZWMyIChHcmFwaGVuZS5WZWMyIHNyYywgZmxvYXQg eiwgZmxvYXQgdyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5v d25lZCBHcmFwaGVuZS5WZWM0PyBpbml0X2Zyb21fdmVjMyAoR3JhcGhlbmUuVmVjMyBzcmMsIGZs b2F0IHcpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQg R3JhcGhlbmUuVmVjND8gaW5pdF9mcm9tX3ZlYzQgKEdyYXBoZW5lLlZlYzQgc3JjKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBpbnRlcnBv bGF0ZSAoR3JhcGhlbmUuVmVjNCB2MiwgZG91YmxlIGZhY3Rvcik7CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgbGVuZ3RoICgpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzQgbWF4IChHcmFwaGVuZS5WZWM0 IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZl YzQgbWluIChHcmFwaGVuZS5WZWM0IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor KwkJcHVibGljIEdyYXBoZW5lLlZlYzQgbXVsdGlwbHkgKEdyYXBoZW5lLlZlYzQgYik7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgYm9vbCBuZWFyIChHcmFwaGVuZS5W ZWM0IHYyLCBmbG9hdCBlcHNpbG9uKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJ CXB1YmxpYyBHcmFwaGVuZS5WZWM0IG5lZ2F0ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IG5vcm1hbGl6ZSAoKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWM0 PyBvbmUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgR3JhcGhl bmUuVmVjNCBzY2FsZSAoZmxvYXQgZmFjdG9yKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IHN1YnRyYWN0IChHcmFwaGVuZS5WZWM0IGIpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgdG9fZmxvYXQgKFtD Q29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSByZWYgZmxvYXQgZGVzdFs0XSk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUu VmVjND8gd19heGlzICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGlj IHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzQ/IHhfYXhpcyAoKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWM0PyB5 X2F4aXMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGlj IHVub3duZWQgR3JhcGhlbmUuVmVjND8gel9heGlzICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzQ/IHplcm8gKCk7 CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIs IGNuYW1lID0gImdyYXBoZW5lX2V1bGVyX29yZGVyX3QiLCBjcHJlZml4ID0gIkdSQVBIRU5FX0VV TEVSX09SREVSXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAi MS4yIildCisrCXB1YmxpYyBlbnVtIEV1bGVyT3JkZXIgeworKwkJREVGQVVMVCwKKysJCVhZWiwK KysJCVlaWCwKKysJCVpYWSwKKysJCVhaWSwKKysJCVlYWiwKKysJCVpZWCwKKysJCVNYWVosCisr CQlTWFlYLAorKwkJU1haWSwKKysJCVNYWlgsCisrCQlTWVpYLAorKwkJU1laWSwKKysJCVNZWFos CisrCQlTWVhZLAorKwkJU1pYWSwKKysJCVNaWFosCisrCQlTWllYLAorKwkJU1pZWiwKKysJCVJa WVgsCisrCQlSWFlYLAorKwkJUllaWCwKKysJCVJYWlgsCisrCQlSWFpZLAorKwkJUllaWSwKKysJ CVJaWFksCisrCQlSWVhZLAorKwkJUllYWiwKKysJCVJaWFosCisrCQlSWFlaLAorKwkJUlpZWgor Kwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBj bmFtZSA9ICJncmFwaGVuZV9yYXlfaW50ZXJzZWN0aW9uX2tpbmRfdCIsIGNwcmVmaXggPSAiR1JB UEhFTkVfUkFZX0lOVEVSU0VDVElPTl9LSU5EXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwlwdWJsaWMgZW51bSBSYXlJbnRlcnNlY3Rpb25L aW5kIHsKKysJCU5PTkUsCisrCQlFTlRFUiwKKysJCUxFQVZFCisrCX0KKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gIkdSQVBIRU5FX0hB U19HQ0MiKV0KKysJcHVibGljIGNvbnN0IGludCBIQVNfR0NDOworKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiR1JBUEhFTkVfSEFTX1ND QUxBUiIpXQorKwlwdWJsaWMgY29uc3QgaW50IEhBU19TQ0FMQVI7CisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJHUkFQSEVORV9IQVNf U1NFIildCisrCXB1YmxpYyBjb25zdCBpbnQgSEFTX1NTRTsKKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gIkdSQVBIRU5FX1BJIildCisr CXB1YmxpYyBjb25zdCBkb3VibGUgUEk7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJn cmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJHUkFQSEVORV9QSV8yIildCisrCXB1YmxpYyBj b25zdCBkb3VibGUgUElfMjsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5l LWdvYmplY3QuaCIsIGNuYW1lID0gIkdSQVBIRU5FX1NJTURfUyIpXQorKwlwdWJsaWMgY29uc3Qg c3RyaW5nIFNJTURfUzsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdv YmplY3QuaCIsIGNuYW1lID0gIkdSQVBIRU5FX1ZFQzJfTEVOIildCisrCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKysJcHVibGljIGNvbnN0IGludCBWRUMyX0xFTjsKKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gIkdSQVBIRU5FX1ZF QzNfTEVOIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJcHVibGljIGNvbnN0IGlu dCBWRUMzX0xFTjsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmpl Y3QuaCIsIGNuYW1lID0gIkdSQVBIRU5FX1ZFQzRfTEVOIildCisrCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKysJcHVibGljIGNvbnN0IGludCBWRUM0X0xFTjsKKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImZhbHNlIildCisrCXB1 YmxpYyBjb25zdCBpbnQgQGZhbHNlOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3Jh cGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAidHJ1ZSIpXQorKwlwdWJsaWMgY29uc3QgaW50IEB0 cnVlOworK30KK2RpZmYgLS1naXQgdmFwaS9saWJtdXR0ZXItMi5kZXBzIHZhcGkvbGlibXV0dGVy LTIuZGVwcworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAxZjNjOTA3OS4uMDAwMDAw MDAKKy0tLSB2YXBpL2xpYm11dHRlci0yLmRlcHMKKysrKyAvZGV2L251bGwKK0BAIC0xLDkgKzAs MCBAQAorLWNhaXJvCistZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcworLWdkay0zLjAKKy1nZGst cGl4YnVmLTIuMAorLWd0aystMy4wCisteDExCisteGZpeGVzLTQuMAorLWNsdXR0ZXItMS4wCist Y29nbC0xLjAKK2RpZmYgLS1naXQgdmFwaS9saWJtdXR0ZXItMi52YXBpIHZhcGkvbGlibXV0dGVy LTIudmFwaQorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwYTZjNDM1Ny4uMDAwMDAw MDAKKy0tLSB2YXBpL2xpYm11dHRlci0yLnZhcGkKKysrKyAvZGV2L251bGwKK0BAIC0xLDEzMjUg KzAsMCBAQAorLS8qIGxpYm11dHRlci52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3Qg bW9kaWZ5LiAqLworLQorLVtDQ29kZSAoY3ByZWZpeCA9ICJNZXRhIiwgZ2lyX25hbWVzcGFjZSA9 ICJNZXRhIiwgZ2lyX3ZlcnNpb24gPSAiMy4wIiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gIm1ldGFf IildCistbmFtZXNwYWNlIE1ldGEgeworLQluYW1lc3BhY2UgUHJlZnMgeworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lk IGFkZF9saXN0ZW5lciAoTWV0YS5QcmVmc0NoYW5nZWRGdW5jIGZ1bmMpOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBib29s IGJlbGxfaXNfYXVkaWJsZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBjaGFuZ2Vfd29ya3NwYWNlX25hbWUg KGludCBpLCBzdHJpbmcgbmFtZSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIEdEZXNrdG9wLlRpdGxlYmFyQWN0aW9uIGdl dF9hY3Rpb25fZG91YmxlX2NsaWNrX3RpdGxlYmFyICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBHRGVza3RvcC5UaXRs ZWJhckFjdGlvbiBnZXRfYWN0aW9uX21pZGRsZV9jbGlja190aXRsZWJhciAoKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMg R0Rlc2t0b3AuVGl0bGViYXJBY3Rpb24gZ2V0X2FjdGlvbl9yaWdodF9jbGlja190aXRsZWJhciAo KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgYm9vbCBnZXRfYXR0YWNoX21vZGFsX2RpYWxvZ3MgKCk7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJv b2wgZ2V0X2F1dG9fbWF4aW1pemUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2F1dG9fcmFpc2UgKCk7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJs aWMgc3RhdGljIGludCBnZXRfYXV0b19yYWlzZV9kZWxheSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0YS5CdXR0 b25MYXlvdXQgZ2V0X2J1dHRvbl9sYXlvdXQgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2NlbnRlcl9u ZXdfd2luZG93cyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZz LmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfY29tcG9zaXRpbmdfbWFuYWdlciAoKTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgaW50IGdldF9jdXJzb3Jfc2l6ZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJpbmcg Z2V0X2N1cnNvcl90aGVtZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfZGlzYWJsZV93b3JrYXJvdW5k cyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0J CXB1YmxpYyBzdGF0aWMgaW50IGdldF9kcmFnX3RocmVzaG9sZCAoKTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IGdl dF9kcmFnZ2FibGVfYm9yZGVyX3dpZHRoICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGdldF9keW5hbWljX3dv cmtzcGFjZXMgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5o IildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2VkZ2VfdGlsaW5nICgpOworLQkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBi b29sIGdldF9mb2N1c19jaGFuZ2Vfb25fcG9pbnRlcl9yZXN0ICgpOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBHRGVza3Rv cC5Gb2N1c01vZGUgZ2V0X2ZvY3VzX21vZGUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIEdEZXNrdG9wLkZvY3VzTmV3 V2luZG93cyBnZXRfZm9jdXNfbmV3X3dpbmRvd3MgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2ZvcmNl X2Z1bGxzY3JlZW4gKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVm cy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2dub21lX2FjY2Vzc2liaWxpdHkgKCk7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJs aWMgc3RhdGljIGJvb2wgZ2V0X2dub21lX2FuaW1hdGlvbnMgKCk7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0 X2lnbm9yZV9yZXF1ZXN0X2hpZGVfdGl0bGViYXIgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIE1ldGEuS2V5QmluZGlu Z0FjdGlvbiBnZXRfa2V5YmluZGluZ19hY3Rpb24gKHN0cmluZyBuYW1lKTsKKy0JCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50 IGdldF9tb3VzZV9idXR0b25fbWVudSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0YS5WaXJ0dWFsTW9kaWZpZXIg Z2V0X21vdXNlX2J1dHRvbl9tb2RzICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgZ2V0X21vdXNlX2J1dHRvbl9y ZXNpemUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIild CistCQlwdWJsaWMgc3RhdGljIGludCBnZXRfbnVtX3dvcmtzcGFjZXMgKCk7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJv b2wgZ2V0X3JhaXNlX29uX2NsaWNrICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGdldF9zaG93X2ZhbGxiYWNr X2FwcF9tZW51ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMu aCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIFBhbmdvLkZvbnREZXNjcmlwdGlvbiBnZXRf dGl0bGViYXJfZm9udCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3By ZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfdmlzdWFsX2JlbGwgKCk7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3Rh dGljIEdEZXNrdG9wLlZpc3VhbEJlbGxUeXBlIGdldF92aXN1YWxfYmVsbF90eXBlICgpOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0 YXRpYyB1bm93bmVkIHN0cmluZyBnZXRfd29ya3NwYWNlX25hbWUgKGludCBpKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMg Ym9vbCBnZXRfd29ya3NwYWNlc19vbmx5X29uX3ByaW1hcnkgKCk7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgaW5p dCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0J CXB1YmxpYyBzdGF0aWMgdm9pZCBvdmVycmlkZV9wcmVmZXJlbmNlX3NjaGVtYSAoc3RyaW5nIGtl eSwgc3RyaW5nIHNjaGVtYSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9w cmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgcmVtb3ZlX2xpc3RlbmVyIChNZXRhLlBy ZWZzQ2hhbmdlZEZ1bmMgZnVuYyk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2ZvcmNlX2Z1bGxzY3JlZW4g KGJvb2wgd2hldGhlcik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVm cy5oIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2lnbm9yZV9yZXF1ZXN0X2hpZGVfdGl0 bGViYXIgKGJvb2wgd2hldGhlcik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X251bV93b3Jrc3BhY2VzIChp bnQgbl93b3Jrc3BhY2VzKTsKKy0JfQorLQluYW1lc3BhY2UgVXRpbCB7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2FkZF92ZXJib3Nl X3RvcGljIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgYWRkX3ZlcmJvc2VfdG9waWMgKE1ldGEu RGVidWdUb3BpYyB0b3BpYyk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiLCBjbmFtZSA9ICJtZXRhX2J1ZyIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGJ1ZyAo c3RyaW5nIGZvcm1hdCwgLi4uKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIsIGNuYW1lID0gIm1ldGFfZGVidWdfc3Bld19yZWFsIildCistCQlwdWJsaWMgc3Rh dGljIHZvaWQgZGVidWdfc3Bld19yZWFsIChzdHJpbmcgZm9ybWF0LCAuLi4pOworLQkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9kaXNhYmxl X3VucmVkaXJlY3RfZm9yX3NjcmVlbiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGRpc2FibGVf dW5yZWRpcmVjdF9mb3Jfc2NyZWVuIChNZXRhLlNjcmVlbiBzY3JlZW4pOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1l dGFfZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZW1w dHlfc3RhZ2VfaW5wdXRfcmVnaW9uIChNZXRhLlNjcmVlbiBzY3JlZW4pOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9lbmFibGVfdW5y ZWRpcmVjdF9mb3Jfc2NyZWVuIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZW5hYmxlX3VucmVk aXJlY3RfZm9yX3NjcmVlbiAoTWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfZXJyb3JfdHJhcF9wb3Ai KV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBlcnJvcl90cmFwX3BvcCAoTWV0YS5EaXNwbGF5IGRp c3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25h bWUgPSAibWV0YV9lcnJvcl90cmFwX3B1c2giKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBlcnJv cl90cmFwX3B1c2ggKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfZXJyb3JfdHJhcF9wdXNoX3dp dGhfcmV0dXJuIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZXJyb3JfdHJhcF9wdXNoX3dpdGhf cmV0dXJuIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2V4dGVybmFsX2JpbmRpbmdfbmFtZV9m b3JfYWN0aW9uIildCistCQlwdWJsaWMgc3RhdGljIHN0cmluZyBleHRlcm5hbF9iaW5kaW5nX25h bWVfZm9yX2FjdGlvbiAodWludCBrZXliaW5kaW5nX2FjdGlvbik7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2ZhdGFsIildCistCQlw dWJsaWMgc3RhdGljIHZvaWQgZmF0YWwgKHN0cmluZyBmb3JtYXQsIC4uLik7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2ZyZWVfZ3Ns aXN0X2FuZF9lbGVtZW50cyIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGZyZWVfZ3NsaXN0X2Fu ZF9lbGVtZW50cyAoR0xpYi5TTGlzdDx2b2lkKj4gbGlzdF90b19kZWVwX2ZyZWUpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9nX3V0 Zjhfc3RybmR1cCIpXQorLQkJcHVibGljIHN0YXRpYyBzdHJpbmcgZ191dGY4X3N0cm5kdXAgKHN0 cmluZyBzcmMsIHNpemVfdCBuKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIsIGNuYW1lID0gIm1ldGFfZ2V0X2xvY2FsZV9kaXJlY3Rpb24iKV0KKy0JCXB1Ymxp YyBzdGF0aWMgTWV0YS5Mb2NhbGVEaXJlY3Rpb24gZ2V0X2xvY2FsZV9kaXJlY3Rpb24gKCk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRh X2dldF9vdmVybGF5X3dpbmRvdyIpXQorLQkJcHVibGljIHN0YXRpYyBYLldpbmRvdyBnZXRfb3Zl cmxheV93aW5kb3cgKE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2dyYXZpdHlfdG9fc3RyaW5nIild CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgc3RyaW5nIGdyYXZpdHlfdG9fc3RyaW5nIChpbnQg Z3Jhdml0eSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBj bmFtZSA9ICJtZXRhX2lzX2RlYnVnZ2luZyIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGlzX2Rl YnVnZ2luZyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIs IGNuYW1lID0gIm1ldGFfaXNfc3luY2luZyIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGlzX3N5 bmNpbmcgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBj bmFtZSA9ICJtZXRhX2lzX3ZlcmJvc2UiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBpc192ZXJi b3NlICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25h bWUgPSAibWV0YV9pc193YXlsYW5kX2NvbXBvc2l0b3IiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9v bCBpc193YXlsYW5kX2NvbXBvc2l0b3IgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2xhdGVyX2FkZCIpXQorLQkJcHVibGljIHN0 YXRpYyB1aW50IGxhdGVyX2FkZCAoTWV0YS5MYXRlclR5cGUgd2hlbiwgb3duZWQgR0xpYi5Tb3Vy Y2VGdW5jIGZ1bmMpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IiwgY25hbWUgPSAibWV0YV9sYXRlcl9yZW1vdmUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBs YXRlcl9yZW1vdmUgKHVpbnQgbGF0ZXJfaWQpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9wb3Bfbm9fbXNnX3ByZWZpeCIpXQorLQkJ cHVibGljIHN0YXRpYyB2b2lkIHBvcF9ub19tc2dfcHJlZml4ICgpOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9wdXNoX25vX21zZ19w cmVmaXgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBwdXNoX25vX21zZ19wcmVmaXggKCk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRh X3JlY3QiKV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0YS5SZWN0YW5nbGU/IHJlY3QgKGludCB4LCBp bnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfcmVtb3ZlX3ZlcmJvc2VfdG9waWMiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgdm9pZCByZW1vdmVfdmVyYm9zZV90b3BpYyAoTWV0YS5EZWJ1Z1Rv cGljIHRvcGljKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX3NldF9zdGFnZV9pbnB1dF9yZWdpb24iKV0KKy0J CXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIChNZXRhLlNjcmVlbiBz Y3JlZW4sIFguWHNlcnZlclJlZ2lvbiByZWdpb24pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9zaG93X2RpYWxvZyIpXQorLQkJcHVi bGljIHN0YXRpYyBHTGliLlBpZCBzaG93X2RpYWxvZyAoc3RyaW5nIHR5cGUsIHN0cmluZyBtZXNz YWdlLCBzdHJpbmc/IHRpbWVvdXQgPSBudWxsLCBzdHJpbmc/IGRpc3BsYXkgPSBudWxsLCBzdHJp bmc/IG9rX3RleHQgPSBudWxsLCBzdHJpbmc/IGNhbmNlbF90ZXh0ID0gbnVsbCwgc3RyaW5nPyBp Y29uX25hbWUgPSBudWxsLCBpbnQgdHJhbnNpZW50X2ZvciA9IDAsIEdMaWIuU0xpc3Q8c3RyaW5n Pj8gY29sdW1ucyA9IG51bGwsIEdMaWIuU0xpc3Q8c3RyaW5nPj8gZW50cmllcyA9IG51bGwpOwor LQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0 YV90b3BpY19yZWFsIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgdG9waWNfcmVhbCAoTWV0YS5E ZWJ1Z1RvcGljIHRvcGljLCBzdHJpbmcgZm9ybWF0LCAuLi4pOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV91bnNpZ25lZF9sb25nX2Vx dWFsIildCistCQlwdWJsaWMgc3RhdGljIGludCB1bnNpZ25lZF9sb25nX2VxdWFsICh2b2lkKiB2 MSwgdm9pZCogdjIpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IiwgY25hbWUgPSAibWV0YV91bnNpZ25lZF9sb25nX2hhc2giKV0KKy0JCXB1YmxpYyBzdGF0aWMg dWludCB1bnNpZ25lZF9sb25nX2hhc2ggKHZvaWQqIHYpOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV92ZXJib3NlX3JlYWwiKV0KKy0J CXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJib3NlX3JlYWwgKHN0cmluZyBmb3JtYXQsIC4uLik7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRh X3dhcm5pbmciKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCB3YXJuaW5nIChzdHJpbmcgZm9ybWF0 LCAuLi4pOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIs IHR5cGVfaWQgPSAibWV0YV9iYWNrZW5kX2dldF90eXBlICgpIildCistCXB1YmxpYyBhYnN0cmFj dCBjbGFzcyBCYWNrZW5kIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIEJhY2tlbmQgKCk7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tlbmQuaCIsIGNuYW1lID0gIm1ldGFf Z2V0X2JhY2tlbmQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLkJhY2tlbmQgZ2V0 X2JhY2tlbmQgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9zdGFnZSAo KTsKKy0JCXB1YmxpYyB2b2lkIGxvY2tfbGF5b3V0X2dyb3VwICh1aW50IGlkeCk7CistCQlwdWJs aWMgdm9pZCBzZXRfa2V5bWFwIChzdHJpbmcgbGF5b3V0cywgc3RyaW5nIHZhcmlhbnRzLCBzdHJp bmcgb3B0aW9ucyk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQga2V5bWFwX2NoYW5nZWQgKCk7Cist CQlwdWJsaWMgc2lnbmFsIHZvaWQga2V5bWFwX2xheW91dF9ncm91cF9jaGFuZ2VkICh1aW50IG9i amVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbGFzdF9kZXZpY2VfY2hhbmdlZCAoaW50IG9i amVjdCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNr Z3JvdW5kLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9nZXRfdHlwZSAoKSIpXQorLQlw dWJsaWMgY2xhc3MgQmFja2dyb3VuZCA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXB1YmxpYyBCYWNrZ3JvdW5kIChNZXRhLlNj cmVlbiBzY3JlZW4pOworLQkJcHVibGljIHN0YXRpYyB2b2lkIHJlZnJlc2hfYWxsICgpOworLQkJ cHVibGljIHZvaWQgc2V0X2JsZW5kIChHTGliLkZpbGUgZmlsZTEsIEdMaWIuRmlsZSBmaWxlMiwg ZG91YmxlIGJsZW5kX2ZhY3RvciwgR0Rlc2t0b3AuQmFja2dyb3VuZFN0eWxlIHN0eWxlKTsKKy0J CXB1YmxpYyB2b2lkIHNldF9jb2xvciAoQ2x1dHRlci5Db2xvciBjb2xvcik7CistCQlwdWJsaWMg dm9pZCBzZXRfZmlsZSAoR0xpYi5GaWxlIGZpbGUsIEdEZXNrdG9wLkJhY2tncm91bmRTdHlsZSBz dHlsZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfZ3JhZGllbnQgKEdEZXNrdG9wLkJhY2tncm91bmRT aGFkaW5nIHNoYWRpbmdfZGlyZWN0aW9uLCBDbHV0dGVyLkNvbG9yIGNvbG9yLCBDbHV0dGVyLkNv bG9yIHNlY29uZF9jb2xvcik7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRh LlNjcmVlbiBtZXRhX3NjcmVlbiB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlwdWJsaWMg c2lnbmFsIHZvaWQgY2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3Jv dW5kX2FjdG9yX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kQWN0b3Ig OiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1 dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlwdWJs aWMgQmFja2dyb3VuZEFjdG9yIChNZXRhLlNjcmVlbiBzY3JlZW4sIGludCBtb25pdG9yKTsKKy0J CXB1YmxpYyB2b2lkIHNldF9iYWNrZ3JvdW5kIChNZXRhLkJhY2tncm91bmQgYmFja2dyb3VuZCk7 CistCQlwdWJsaWMgdm9pZCBzZXRfdmlnbmV0dGUgKGJvb2wgZW5hYmxlZCwgZG91YmxlIGJyaWdo dG5lc3MsIGRvdWJsZSBzaGFycG5lc3MpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJs aWMgTWV0YS5CYWNrZ3JvdW5kIGJhY2tncm91bmQgeyBvd25lZCBnZXQ7IHNldDsgfQorLQkJW05v QWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgZG91YmxlIGJyaWdodG5lc3MgeyBnZXQ7IHNldDsg fQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5TY3JlZW4gbWV0YV9zY3Jl ZW4geyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlw dWJsaWMgaW50IG1vbml0b3IgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlwdWJsaWMgYm9vbCB2aWduZXR0ZSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCXB1YmxpYyBkb3VibGUgdmlnbmV0dGVfc2hhcnBuZXNzIHsgZ2V0OyBzZXQ7 IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tncm91 bmQtZ3JvdXAuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2dyb3VwX2dldF90eXBlICgp IildCistCXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kR3JvdXAgOiBDbHV0dGVyLkFjdG9yLCBBdGsu SW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0 ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlwdWJsaWMgQmFja2dyb3VuZEdyb3VwICgp OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtYmFja2dyb3Vu ZC1pbWFnZS5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhY2tncm91bmRfaW1hZ2VfZ2V0X3R5cGUgKCki KV0KKy0JcHVibGljIGNsYXNzIEJhY2tncm91bmRJbWFnZSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBCYWNr Z3JvdW5kSW1hZ2UgKCk7CistCQlwdWJsaWMgYm9vbCBnZXRfc3VjY2VzcyAoKTsKKy0JCXB1Ymxp YyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfdGV4dHVyZSAoKTsKKy0JCXB1YmxpYyBib29sIGlz X2xvYWRlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBsb2FkZWQgKCk7CistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgiLCB0 eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9pbWFnZV9jYWNoZV9nZXRfdHlwZSAoKSIpXQorLQlw dWJsaWMgY2xhc3MgQmFja2dyb3VuZEltYWdlQ2FjaGUgOiBHTGliLk9iamVjdCB7CistCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgQmFja2dy b3VuZEltYWdlQ2FjaGUgKCk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5CYWNrZ3Jv dW5kSW1hZ2VDYWNoZSBnZXRfZGVmYXVsdCAoKTsKKy0JCXB1YmxpYyBNZXRhLkJhY2tncm91bmRJ bWFnZSBsb2FkIChHTGliLkZpbGUgZmlsZSk7CistCQlwdWJsaWMgdm9pZCBwdXJnZSAoR0xpYi5G aWxlIGZpbGUpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJp ZXIuaCIsIHR5cGVfaWQgPSAibWV0YV9iYXJyaWVyX2dldF90eXBlICgpIildCistCXB1YmxpYyBj bGFzcyBCYXJyaWVyIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIEJhcnJpZXIgKCk7CistCQlwdWJsaWMgdm9p ZCBkZXN0cm95ICgpOworLQkJcHVibGljIGJvb2wgaXNfYWN0aXZlICgpOworLQkJcHVibGljIHZv aWQgcmVsZWFzZSAoTWV0YS5CYXJyaWVyRXZlbnQgZXZlbnQpOworLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlwdWJsaWMgTWV0YS5CYXJyaWVyRGlyZWN0aW9uIGRpcmVjdGlvbnMgeyBnZXQ7IGNv bnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5EaXNwbGF5 IGRpc3BsYXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlwdWJsaWMgaW50IHgxIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0 aG9kXQorLQkJcHVibGljIGludCB4MiB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgeTEgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IHkyIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCXB1 YmxpYyBzaWduYWwgdm9pZCBoaXQgKE1ldGEuQmFycmllckV2ZW50IGV2ZW50KTsKKy0JCXB1Ymxp YyBzaWduYWwgdm9pZCBsZWZ0IChNZXRhLkJhcnJpZXJFdmVudCBldmVudCk7CistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY29weV9mdW5jdGlvbiA9ICJn X2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAi bWV0YV9iYXJyaWVyX2V2ZW50X2dldF90eXBlICgpIildCistCVtDb21wYWN0XQorLQlwdWJsaWMg Y2xhc3MgQmFycmllckV2ZW50IHsKKy0JCXB1YmxpYyBpbnQgZHQ7CistCQlwdWJsaWMgZG91Ymxl IGR4OworLQkJcHVibGljIGRvdWJsZSBkeTsKKy0JCXB1YmxpYyBpbnQgZXZlbnRfaWQ7CistCQlw dWJsaWMgYm9vbCBncmFiYmVkOworLQkJcHVibGljIGJvb2wgcmVsZWFzZWQ7CistCQlwdWJsaWMg dWludDMyIHRpbWU7CistCQlwdWJsaWMgZG91YmxlIHg7CistCQlwdWJsaWMgZG91YmxlIHk7Cist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci5oIildCist CVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgQ29tcG9zaXRvciB7CistCQlwdWJsaWMgdm9pZCBh ZGRfd2luZG93IChNZXRhLldpbmRvdyB3aW5kb3cpOworLQkJcHVibGljIHZvaWQgZGVzdHJveSAo KTsKKy0JCXB1YmxpYyBib29sIGZpbHRlcl9rZXliaW5kaW5nIChNZXRhLktleUJpbmRpbmcgYmlu ZGluZyk7CistCQlwdWJsaWMgdm9pZCBmbGFzaF9zY3JlZW4gKE1ldGEuU2NyZWVuIHNjcmVlbik7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5o IiwgY25hbWUgPSAibWV0YV9mb2N1c19zdGFnZV93aW5kb3ciKV0KKy0JCXB1YmxpYyBzdGF0aWMg dm9pZCBmb2N1c19zdGFnZV93aW5kb3cgKE1ldGEuU2NyZWVuIHNjcmVlbiwgdWludDMyIHRpbWVz dGFtcCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11 dHRlci5oIiwgY25hbWUgPSAibWV0YV9nZXRfZmVlZGJhY2tfZ3JvdXBfZm9yX3NjcmVlbiIpXQor LQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2ZlZWRiYWNrX2dyb3Vw X2Zvcl9zY3JlZW4gKE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9nZXRfc3Rh Z2VfZm9yX3NjcmVlbiIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3I/ IGdldF9zdGFnZV9mb3Jfc2NyZWVuIChNZXRhLlNjcmVlbiBzY3JlZW4pOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1l dGFfZ2V0X3RvcF93aW5kb3dfZ3JvdXBfZm9yX3NjcmVlbiIpXQorLQkJcHVibGljIHN0YXRpYyB1 bm93bmVkIENsdXR0ZXIuQWN0b3I/IGdldF90b3Bfd2luZG93X2dyb3VwX2Zvcl9zY3JlZW4gKE1l dGEuU2NyZWVuIHNjcmVlbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9j b21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9nZXRfd2luZG93X2FjdG9ycyIpXQor LQkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdMaWIuTGlzdDx3ZWFrIE1ldGEuV2luZG93QWN0b3I+ PyBnZXRfd2luZG93X2FjdG9ycyAoTWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRh X2dldF93aW5kb3dfZ3JvdXBfZm9yX3NjcmVlbiIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVk IENsdXR0ZXIuQWN0b3I/IGdldF93aW5kb3dfZ3JvdXBfZm9yX3NjcmVlbiAoTWV0YS5TY3JlZW4g c2NyZWVuKTsKKy0JCXB1YmxpYyB2b2lkIGhpZGVfdGlsZV9wcmV2aWV3ICgpOworLQkJcHVibGlj IHZvaWQgaGlkZV93aW5kb3cgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5Db21wRWZmZWN0IGVm ZmVjdCk7CistCQlwdWJsaWMgdm9pZCBtYW5hZ2UgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLkNv bXBvc2l0b3IgQG5ldyAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJcHVibGljIHZvaWQgcXVl dWVfZnJhbWVfZHJhd24gKE1ldGEuV2luZG93IHdpbmRvdywgYm9vbCBub19kZWxheV9mcmFtZSk7 CistCQlwdWJsaWMgdm9pZCByZW1vdmVfd2luZG93IChNZXRhLldpbmRvdyB3aW5kb3cpOworLQkJ cHVibGljIHZvaWQgc2hvd190aWxlX3ByZXZpZXcgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5S ZWN0YW5nbGUgdGlsZV9yZWN0LCBpbnQgdGlsZV9tb25pdG9yX251bWJlcik7CistCQlwdWJsaWMg dm9pZCBzaG93X3dpbmRvdyAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLkNvbXBFZmZlY3QgZWZm ZWN0KTsKKy0JCXB1YmxpYyB2b2lkIHNob3dfd2luZG93X21lbnUgKE1ldGEuV2luZG93IHdpbmRv dywgTWV0YS5XaW5kb3dNZW51VHlwZSBtZW51LCBpbnQgeCwgaW50IHkpOworLQkJcHVibGljIHZv aWQgc2hvd193aW5kb3dfbWVudV9mb3JfcmVjdCAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLldp bmRvd01lbnVUeXBlIG1lbnUsIE1ldGEuUmVjdGFuZ2xlIHJlY3QpOworLQkJcHVibGljIHZvaWQg c2l6ZV9jaGFuZ2Vfd2luZG93IChNZXRhLldpbmRvdyB3aW5kb3csIE1ldGEuU2l6ZUNoYW5nZSB3 aGljaF9jaGFuZ2UsIE1ldGEuUmVjdGFuZ2xlIG9sZF9mcmFtZV9yZWN0LCBNZXRhLlJlY3Rhbmds ZSBvbGRfYnVmZmVyX3JlY3QpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv Y29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfc3RhZ2VfaXNfZm9jdXNlZCIpXQor LQkJcHVibGljIHN0YXRpYyBib29sIHN0YWdlX2lzX2ZvY3VzZWQgKE1ldGEuU2NyZWVuIHNjcmVl bik7CistCQlwdWJsaWMgdm9pZCBzd2l0Y2hfd29ya3NwYWNlIChNZXRhLldvcmtzcGFjZSBmcm9t LCBNZXRhLldvcmtzcGFjZSB0bywgTWV0YS5Nb3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uKTsKKy0J CXB1YmxpYyB2b2lkIHN5bmNfc3RhY2sgKEdMaWIuTGlzdDxNZXRhLldpbmRvd0FjdG9yPiBzdGFj ayk7CistCQlwdWJsaWMgdm9pZCBzeW5jX3VwZGF0ZXNfZnJvemVuIChNZXRhLldpbmRvdyB3aW5k b3cpOworLQkJcHVibGljIHZvaWQgc3luY193aW5kb3dfZ2VvbWV0cnkgKE1ldGEuV2luZG93IHdp bmRvdywgYm9vbCBkaWRfcGxhY2VtZW50KTsKKy0JCXB1YmxpYyB2b2lkIHVubWFuYWdlICgpOwor LQkJcHVibGljIHZvaWQgd2luZG93X29wYWNpdHlfY2hhbmdlZCAoTWV0YS5XaW5kb3cgd2luZG93 KTsKKy0JCXB1YmxpYyB2b2lkIHdpbmRvd19zaGFwZV9jaGFuZ2VkIChNZXRhLldpbmRvdyB3aW5k b3cpOworLQkJcHVibGljIHZvaWQgd2luZG93X3N1cmZhY2VfY2hhbmdlZCAoTWV0YS5XaW5kb3cg d2luZG93KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWN1 cnNvci10cmFja2VyLmgiLCB0eXBlX2lkID0gIm1ldGFfY3Vyc29yX3RyYWNrZXJfZ2V0X3R5cGUg KCkiKV0KKy0JcHVibGljIGNsYXNzIEN1cnNvclRyYWNrZXIgOiBHTGliLk9iamVjdCB7CistCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgQ3Vy c29yVHJhY2tlciAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLkN1cnNvclRyYWNr ZXIgZ2V0X2Zvcl9zY3JlZW4gKE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlwdWJsaWMgdm9pZCBn ZXRfaG90IChvdXQgaW50IHgsIG91dCBpbnQgeSk7CistCQlwdWJsaWMgdm9pZCBnZXRfcG9pbnRl ciAoaW50IHgsIGludCB5LCBDbHV0dGVyLk1vZGlmaWVyVHlwZSBtb2RzKTsKKy0JCXB1YmxpYyB1 bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfc3ByaXRlICgpOworLQkJcHVibGljIHZvaWQgc2V0X3Bv aW50ZXJfdmlzaWJsZSAoYm9vbCB2aXNpYmxlKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJz b3JfY2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9k aXNwbGF5LmgiLCB0eXBlX2lkID0gIm1ldGFfZGlzcGxheV9nZXRfdHlwZSAoKSIpXQorLQlwdWJs aWMgY2xhc3MgRGlzcGxheSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBEaXNwbGF5ICgpOworLQkJcHVibGlj IHZvaWQgYWRkX2lnbm9yZWRfY3Jvc3Npbmdfc2VyaWFsICh1bG9uZyBzZXJpYWwpOworLQkJcHVi bGljIHVpbnQgYWRkX2tleWJpbmRpbmcgKHN0cmluZyBuYW1lLCBHTGliLlNldHRpbmdzIHNldHRp bmdzLCBNZXRhLktleUJpbmRpbmdGbGFncyBmbGFncywgb3duZWQgTWV0YS5LZXlIYW5kbGVyRnVu YyBoYW5kbGVyKTsKKy0JCXB1YmxpYyBib29sIGJlZ2luX2dyYWJfb3AgKE1ldGEuU2NyZWVuIHNj cmVlbiwgTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLkdyYWJPcCBvcCwgYm9vbCBwb2ludGVyX2Fs cmVhZHlfZ3JhYmJlZCwgYm9vbCBmcmFtZV9hY3Rpb24sIGludCBidXR0b24sIHVsb25nIG1vZG1h c2ssIHVpbnQzMiB0aW1lc3RhbXAsIGludCByb290X3gsIGludCByb290X3kpOworLQkJcHVibGlj IHZvaWQgY2xlYXJfbW91c2VfbW9kZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGVuZF9ncmFiX29wICh1 aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIGZvY3VzX3RoZV9ub19mb2N1c193aW5k b3cgKE1ldGEuU2NyZWVuIHNjcmVlbiwgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9p ZCBmcmVlemVfa2V5Ym9hcmQgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHVub3duZWQg TWV0YS5Db21wb3NpdG9yIGdldF9jb21wb3NpdG9yICgpOworLQkJcHVibGljIHVpbnQzMiBnZXRf Y3VycmVudF90aW1lICgpOworLQkJcHVibGljIHVpbnQzMiBnZXRfY3VycmVudF90aW1lX3JvdW5k dHJpcCAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2RhbWFnZV9ldmVudF9iYXNlICgpOworLQkJcHVi bGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X2ZvY3VzX3dpbmRvdyAoKTsKKy0JCXB1YmxpYyBN ZXRhLkdyYWJPcCBnZXRfZ3JhYl9vcCAoKTsKKy0JCXB1YmxpYyB1aW50IGdldF9rZXliaW5kaW5n X2FjdGlvbiAodWludCBrZXljb2RlLCB1bG9uZyBtYXNrKTsKKy0JCXB1YmxpYyB1aW50MzIgZ2V0 X2xhc3RfdXNlcl90aW1lICgpOworLQkJcHVibGljIGludCBnZXRfc2hhcGVfZXZlbnRfYmFzZSAo KTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGdldF90YWJfY3VycmVudCAoTWV0YS5U YWJMaXN0IHR5cGUsIE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSk7CistCQlwdWJsaWMgR0xpYi5M aXN0PHdlYWsgTWV0YS5XaW5kb3c+IGdldF90YWJfbGlzdCAoTWV0YS5UYWJMaXN0IHR5cGUsIE1l dGEuV29ya3NwYWNlPyB3b3Jrc3BhY2UpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cg Z2V0X3RhYl9uZXh0IChNZXRhLlRhYkxpc3QgdHlwZSwgTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNl LCBNZXRhLldpbmRvdz8gd2luZG93LCBib29sIGJhY2t3YXJkKTsKKy0JCXB1YmxpYyB1bm93bmVk IFguRGlzcGxheSBnZXRfeGRpc3BsYXkgKCk7CistCQlwdWJsaWMgaW50IGdldF94aW5wdXRfb3Bj b2RlICgpOworLQkJcHVibGljIHVpbnQgZ3JhYl9hY2NlbGVyYXRvciAoc3RyaW5nIGFjY2VsZXJh dG9yKTsKKy0JCXB1YmxpYyBib29sIGhhc19zaGFwZSAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3Bv aW50ZXJfZW11bGF0aW5nX3NlcXVlbmNlIChDbHV0dGVyLkV2ZW50U2VxdWVuY2U/IHNlcXVlbmNl KTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuR3JvdXAgbG9va3VwX2dyb3VwIChYLldpbmRvdyBn cm91cF9sZWFkZXIpOworLQkJcHVibGljIGJvb2wgcmVtb3ZlX2tleWJpbmRpbmcgKHN0cmluZyBu YW1lKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9pbnB1dF9mb2N1c193aW5kb3cgKE1ldGEuV2luZG93 IHdpbmRvdywgYm9vbCBmb2N1c19mcmFtZSwgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMg R0xpYi5TTGlzdDx3ZWFrIE1ldGEuV2luZG93PiBzb3J0X3dpbmRvd3NfYnlfc3RhY2tpbmcgKEdM aWIuU0xpc3Q8TWV0YS5XaW5kb3c+IHdpbmRvd3MpOworLQkJcHVibGljIGJvb2wgc3VwcG9ydHNf ZXh0ZW5kZWRfYmFycmllcnMgKCk7CistCQlwdWJsaWMgdm9pZCB1bmZyZWV6ZV9rZXlib2FyZCAo dWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgYm9vbCB1bmdyYWJfYWNjZWxlcmF0b3IgKHVp bnQgYWN0aW9uX2lkKTsKKy0JCXB1YmxpYyB2b2lkIHVuZ3JhYl9rZXlib2FyZCAodWludDMyIHRp bWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCB1bm1hbmFnZV9zY3JlZW4gKE1ldGEuU2NyZWVuIHNj cmVlbiwgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgYm9vbCB4c2VydmVyX3RpbWVfaXNf YmVmb3JlICh1aW50MzIgdGltZTEsIHVpbnQzMiB0aW1lMik7CistCQlwdWJsaWMgYm9vbCB4d2lu ZG93X2lzX2Ffbm9fZm9jdXNfd2luZG93IChYLldpbmRvdyB4d2luZG93KTsKKy0JCXB1YmxpYyBz aWduYWwgdm9pZCBhY2NlbGVyYXRvcl9hY3RpdmF0ZWQgKHVpbnQgb2JqZWN0LCB1aW50IHAwLCB1 aW50IHAxKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBncmFiX29wX2JlZ2luIChNZXRhLlNjcmVl biBvYmplY3QsIE1ldGEuV2luZG93IHAwLCBNZXRhLkdyYWJPcCBwMSk7CistCQlwdWJsaWMgc2ln bmFsIHZvaWQgZ3JhYl9vcF9lbmQgKE1ldGEuU2NyZWVuIG9iamVjdCwgTWV0YS5XaW5kb3cgcDAs IE1ldGEuR3JhYk9wIHAxKTsKKy0JCXB1YmxpYyBzaWduYWwgYm9vbCBtb2RpZmllcnNfYWNjZWxl cmF0b3JfYWN0aXZhdGVkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIG92ZXJsYXlfa2V5ICgp OworLQkJcHVibGljIHNpZ25hbCBib29sIHJlc3RhcnQgKCk7CistCQlwdWJsaWMgc2lnbmFsIGJv b2wgc2hvd19yZXNpemVfcG9wdXAgKGJvb2wgb2JqZWN0LCBNZXRhLlJlY3RhbmdsZSBwMCwgaW50 IHAxLCBpbnQgcDIpOworLQkJcHVibGljIHNpZ25hbCBib29sIHNob3dfcmVzdGFydF9tZXNzYWdl IChzdHJpbmc/IG1lc3NhZ2UpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19jcmVhdGVk IChNZXRhLldpbmRvdyBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19kZW1h bmRzX2F0dGVudGlvbiAoTWV0YS5XaW5kb3cgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9p ZCB3aW5kb3dfbWFya2VkX3VyZ2VudCAoTWV0YS5XaW5kb3cgb2JqZWN0KTsKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIpXQorLQlbQ29tcGFjdF0KKy0J cHVibGljIGNsYXNzIEZyYW1lIHsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9ncm91cC5oIildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgR3JvdXAgeworLQkJ cHVibGljIGludCBnZXRfc2l6ZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfc3Rh cnR1cF9pZCAoKTsKKy0JCXB1YmxpYyBHTGliLlNMaXN0PHdlYWsgTWV0YS5XaW5kb3c+IGxpc3Rf d2luZG93cyAoKTsKKy0JCXB1YmxpYyBib29sIHByb3BlcnR5X25vdGlmeSAoWC5FdmVudCBldmVu dCk7CistCQlwdWJsaWMgdm9pZCB1cGRhdGVfbGF5ZXJzICgpOworLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgiLCB0eXBlX2lkID0gIm1l dGFfaWRsZV9tb25pdG9yX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBJZGxlTW9uaXRv ciA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlKV0KKy0JCXByb3RlY3RlZCBJZGxlTW9uaXRvciAoKTsKKy0JCXB1YmxpYyB1aW50IGFkZF9p ZGxlX3dhdGNoICh1aW50NjQgaW50ZXJ2YWxfbXNlYywgb3duZWQgTWV0YS5JZGxlTW9uaXRvcldh dGNoRnVuYz8gY2FsbGJhY2spOworLQkJcHVibGljIHVpbnQgYWRkX3VzZXJfYWN0aXZlX3dhdGNo IChvd25lZCBNZXRhLklkbGVNb25pdG9yV2F0Y2hGdW5jPyBjYWxsYmFjayk7CistCQlwdWJsaWMg c3RhdGljIHVub3duZWQgTWV0YS5JZGxlTW9uaXRvciBnZXRfY29yZSAoKTsKKy0JCXB1YmxpYyBz dGF0aWMgdW5vd25lZCBNZXRhLklkbGVNb25pdG9yIGdldF9mb3JfZGV2aWNlIChpbnQgZGV2aWNl X2lkKTsKKy0JCXB1YmxpYyBpbnQ2NCBnZXRfaWRsZXRpbWUgKCk7CistCQlwdWJsaWMgdm9pZCBy ZW1vdmVfd2F0Y2ggKHVpbnQgaWQpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMg aW50IGRldmljZV9pZCB7IGdldDsgY29uc3RydWN0OyB9CistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEva2V5YmluZGluZ3MuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hl ZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gIm1ldGFf a2V5X2JpbmRpbmdfZ2V0X3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBL ZXlCaW5kaW5nIHsKKy0JCXB1YmxpYyB1aW50IGdldF9tYXNrICgpOworLQkJcHVibGljIE1ldGEu VmlydHVhbE1vZGlmaWVyIGdldF9tb2RpZmllcnMgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJp bmcgZ2V0X25hbWUgKCk7CistCQlwdWJsaWMgYm9vbCBpc19idWlsdGluICgpOworLQkJcHVibGlj IGJvb2wgaXNfcmV2ZXJzZWQgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9rZXliaW5kaW5ncy5oIiwgY25hbWUgPSAibWV0YV9rZXliaW5kaW5nc19zZXRfY3VzdG9tX2hh bmRsZXIiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBzZXRfY3VzdG9tX2hhbmRsZXIgKHN0cmlu ZyBuYW1lLCBvd25lZCBNZXRhLktleUhhbmRsZXJGdW5jPyBoYW5kbGVyKTsKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oIiwgdHlw ZV9pZCA9ICJtZXRhX21vbml0b3JfbWFuYWdlcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgYWJz dHJhY3QgY2xhc3MgTW9uaXRvck1hbmFnZXIgOiBHTGliLkRCdXNJbnRlcmZhY2VTa2VsZXRvbiwg R0xpYi5EQnVzSW50ZXJmYWNlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBNb25pdG9yTWFuYWdlciAoKTsKKy0JCXB1YmxpYyBzdGF0 aWMgdW5vd25lZCBNZXRhLk1vbml0b3JNYW5hZ2VyIEBnZXQgKCk7CistCQlwdWJsaWMgaW50IGdl dF9tb25pdG9yX2Zvcl9vdXRwdXQgKHVpbnQgaWQpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGNv bmZpcm1fZGlzcGxheV9jaGFuZ2UgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWV0YS1wbHVnaW4uaCIsIHR5cGVfaWQgPSAibWV0YV9wbHVnaW5fZ2V0X3R5cGUg KCkiKV0KKy0JcHVibGljIGFic3RyYWN0IGNsYXNzIFBsdWdpbiA6IEdMaWIuT2JqZWN0IHsKKy0J CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBQ bHVnaW4gKCk7CistCQlwdWJsaWMgYm9vbCBiZWdpbl9tb2RhbCAoTWV0YS5Nb2RhbE9wdGlvbnMg b3B0aW9ucywgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBjb21wbGV0ZV9kaXNw bGF5X2NoYW5nZSAoYm9vbCBvayk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwg dm9pZCBjb25maXJtX2Rpc3BsYXlfY2hhbmdlICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1Ymxp YyB2aXJ0dWFsIHZvaWQgZGVzdHJveSAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlwdWJs aWMgdm9pZCBkZXN0cm95X2NvbXBsZXRlZCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlw dWJsaWMgdm9pZCBlbmRfbW9kYWwgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHVub3du ZWQgTWV0YS5QbHVnaW5JbmZvPyBnZXRfaW5mbyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEu U2NyZWVuIGdldF9zY3JlZW4gKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwg dm9pZCBoaWRlX3RpbGVfcHJldmlldyAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmly dHVhbCBib29sIGtleWJpbmRpbmdfZmlsdGVyIChNZXRhLktleUJpbmRpbmcgYmluZGluZyk7Cist CQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBraWxsX3N3aXRjaF93b3Jrc3Bh Y2UgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBraWxsX3dpbmRv d19lZmZlY3RzIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyBzdGF0aWMgdm9p ZCBtYW5hZ2VyX3NldF9wbHVnaW5fdHlwZSAoR0xpYi5UeXBlIGd0eXBlKTsKKy0JCVtOb1dyYXBw ZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIG1hcCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7 CistCQlwdWJsaWMgdm9pZCBtYXBfY29tcGxldGVkIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsK Ky0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIG1pbmltaXplIChNZXRhLldp bmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIG1pbmltaXplX2NvbXBsZXRlZCAoTWV0 YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwg dW5vd25lZCBNZXRhLlBsdWdpbkluZm8/IHBsdWdpbl9pbmZvICgpOworLQkJW05vV3JhcHBlcl0K Ky0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2hvd190aWxlX3ByZXZpZXcgKE1ldGEuV2luZG93IHdp bmRvdywgTWV0YS5SZWN0YW5nbGUgdGlsZV9yZWN0LCBpbnQgdGlsZV9tb25pdG9yX251bWJlcik7 CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzaG93X3dpbmRvd19tZW51 IChNZXRhLldpbmRvdyB3aW5kb3csIE1ldGEuV2luZG93TWVudVR5cGUgbWVudSwgaW50IHgsIGlu dCB5KTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNob3dfd2luZG93 X21lbnVfZm9yX3JlY3QgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5XaW5kb3dNZW51VHlwZSBt ZW51LCBNZXRhLlJlY3RhbmdsZSByZWN0KTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmly dHVhbCB2b2lkIHNpemVfY2hhbmdlIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yLCBNZXRhLlNpemVD aGFuZ2Ugd2hpY2hfY2hhbmdlLCBNZXRhLlJlY3RhbmdsZSBvbGRfZnJhbWVfcmVjdCwgTWV0YS5S ZWN0YW5nbGUgb2xkX2J1ZmZlcl9yZWN0KTsKKy0JCXB1YmxpYyB2b2lkIHNpemVfY2hhbmdlX2Nv bXBsZXRlZCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVi bGljIHZpcnR1YWwgdm9pZCBzdGFydCAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmly dHVhbCB2b2lkIHN3aXRjaF93b3Jrc3BhY2UgKGludCBmcm9tLCBpbnQgdG8sIE1ldGEuTW90aW9u RGlyZWN0aW9uIGRpcmVjdGlvbik7CistCQlwdWJsaWMgdm9pZCBzd2l0Y2hfd29ya3NwYWNlX2Nv bXBsZXRlZCAoKTsKKy0gCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCB1bm1p bmltaXplIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIHVubWluaW1p emVfY29tcGxldGVkIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCVtOb1dyYXBwZXJdCist CQlwdWJsaWMgdmlydHVhbCBib29sIHhldmVudF9maWx0ZXIgKFguRXZlbnQgZXZlbnQpOworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3NjcmVlbi5oIiwgdHlwZV9pZCA9 ICJtZXRhX3NjcmVlbl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgU2NyZWVuIDogR0xp Yi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQor LQkJcHJvdGVjdGVkIFNjcmVlbiAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNl PyBhcHBlbmRfbmV3X3dvcmtzcGFjZSAoYm9vbCBhY3RpdmF0ZSwgdWludDMyIHRpbWVzdGFtcCk7 CistCQlwdWJsaWMgdm9pZCBmb2N1c19kZWZhdWx0X3dpbmRvdyAodWludDMyIHRpbWVzdGFtcCk7 CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZSBnZXRfYWN0aXZlX3dvcmtzcGFjZSAo KTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2FjdGl2ZV93b3Jrc3BhY2VfaW5kZXggKCk7CistCQlwdWJs aWMgaW50IGdldF9jdXJyZW50X21vbml0b3IgKCk7CistCQlwdWJsaWMgaW50IGdldF9jdXJyZW50 X21vbml0b3JfZm9yX3BvcyAoaW50IHgsIGludCB5KTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEu RGlzcGxheSBnZXRfZGlzcGxheSAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfbW9u aXRvcl9nZW9tZXRyeSAoaW50IG1vbml0b3IpOworLQkJcHVibGljIGJvb2wgZ2V0X21vbml0b3Jf aW5fZnVsbHNjcmVlbiAoaW50IG1vbml0b3IpOworLQkJcHVibGljIGludCBnZXRfbW9uaXRvcl9p bmRleF9mb3JfcmVjdCAoTWV0YS5SZWN0YW5nbGUgcmVjdCk7CistCQlwdWJsaWMgaW50IGdldF9t b25pdG9yX25laWdoYm9yX2luZGV4IChpbnQgd2hpY2hfbW9uaXRvciwgTWV0YS5TY3JlZW5EaXJl Y3Rpb24gZGlyKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X25fbW9uaXRvcnMgKCk7CistCQlwdWJsaWMg aW50IGdldF9uX3dvcmtzcGFjZXMgKCk7CistCQlwdWJsaWMgaW50IGdldF9wcmltYXJ5X21vbml0 b3IgKCk7CistCQlwdWJsaWMgaW50IGdldF9zY3JlZW5fbnVtYmVyICgpOworLQkJcHVibGljIHZv aWQgZ2V0X3NpemUgKG91dCBpbnQgd2lkdGgsIG91dCBpbnQgaGVpZ2h0KTsKKy0JCXB1YmxpYyB1 bm93bmVkIE1ldGEuV29ya3NwYWNlPyBnZXRfd29ya3NwYWNlX2J5X2luZGV4IChpbnQgaW5kZXgp OworLQkJcHVibGljIHVub3duZWQgR0xpYi5MaXN0PE1ldGEuV29ya3NwYWNlPiBnZXRfd29ya3Nw YWNlcyAoKTsKKy0JCXB1YmxpYyBYLldpbmRvdyBnZXRfeHJvb3QgKCk7CistCQlwdWJsaWMgdm9p ZCBvdmVycmlkZV93b3Jrc3BhY2VfbGF5b3V0IChNZXRhLlNjcmVlbkNvcm5lciBzdGFydGluZ19j b3JuZXIsIGJvb2wgdmVydGljYWxfbGF5b3V0LCBpbnQgbl9yb3dzLCBpbnQgbl9jb2x1bW5zKTsK Ky0JCXB1YmxpYyB2b2lkIHJlbW92ZV93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtzcGFj ZSwgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBzZXRfY21fc2VsZWN0aW9uICgp OworLQkJcHVibGljIHZvaWQgc2V0X2N1cnNvciAoTWV0YS5DdXJzb3IgY3Vyc29yKTsKKy0JCXB1 YmxpYyBpbnQgbl93b3Jrc3BhY2VzIHsgZ2V0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgaW5f ZnVsbHNjcmVlbl9jaGFuZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIG1vbml0b3JzX2No YW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcmVzdGFja2VkICgpOworLQkJcHVibGlj IHNpZ25hbCB2b2lkIHN0YXJ0dXBfc2VxdWVuY2VfY2hhbmdlZCAodm9pZCogb2JqZWN0KTsKKy0J CXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfZW50ZXJlZF9tb25pdG9yIChpbnQgb2JqZWN0LCBN ZXRhLldpbmRvdyBwMCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X2xlZnRfbW9uaXRv ciAoaW50IG9iamVjdCwgTWV0YS5XaW5kb3cgcDApOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdv cmthcmVhc19jaGFuZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmtzcGFjZV9hZGRl ZCAoaW50IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlX3JlbW92ZWQg KGludCBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmtzcGFjZV9zd2l0Y2hlZCAo aW50IG9iamVjdCwgaW50IHAwLCBNZXRhLk1vdGlvbkRpcmVjdGlvbiBwMSk7CistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oIiwgcmVm X2Z1bmN0aW9uID0gIm1ldGFfc2hhZG93X3JlZiIsIHR5cGVfaWQgPSAibWV0YV9zaGFkb3dfZ2V0 X3R5cGUgKCkiLCB1bnJlZl9mdW5jdGlvbiA9ICJtZXRhX3NoYWRvd191bnJlZiIpXQorLQlbQ29t cGFjdF0KKy0JcHVibGljIGNsYXNzIFNoYWRvdyB7CistCQlwdWJsaWMgdm9pZCBnZXRfYm91bmRz IChpbnQgd2luZG93X3gsIGludCB3aW5kb3dfeSwgaW50IHdpbmRvd193aWR0aCwgaW50IHdpbmRv d19oZWlnaHQsIENhaXJvLlJlY3RhbmdsZUludCBib3VuZHMpOworLQkJcHVibGljIHZvaWQgcGFp bnQgKGludCB3aW5kb3dfeCwgaW50IHdpbmRvd195LCBpbnQgd2luZG93X3dpZHRoLCBpbnQgd2lu ZG93X2hlaWdodCwgdWludDggb3BhY2l0eSwgQ2Fpcm8uUmVnaW9uPyBjbGlwLCBib29sIGNsaXBf c3RyaWN0bHkpOworLQkJcHVibGljIE1ldGEuU2hhZG93IEByZWYgKCk7CistCQlwdWJsaWMgdm9p ZCB1bnJlZiAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRh LXNoYWRvdy1mYWN0b3J5LmgiLCB0eXBlX2lkID0gIm1ldGFfc2hhZG93X2ZhY3RvcnlfZ2V0X3R5 cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFNoYWRvd0ZhY3RvcnkgOiBHTGliLk9iamVjdCB7Cist CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwdWJsaWMgU2hh ZG93RmFjdG9yeSAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLlNoYWRvd0ZhY3Rv cnkgZ2V0X2RlZmF1bHQgKCk7CistCQlwdWJsaWMgTWV0YS5TaGFkb3dQYXJhbXMgZ2V0X3BhcmFt cyAoc3RyaW5nIGNsYXNzX25hbWUsIGJvb2wgZm9jdXNlZCk7CistCQlwdWJsaWMgTWV0YS5TaGFk b3cgZ2V0X3NoYWRvdyAoTWV0YS5XaW5kb3dTaGFwZSBzaGFwZSwgaW50IHdpZHRoLCBpbnQgaGVp Z2h0LCBzdHJpbmcgY2xhc3NfbmFtZSwgYm9vbCBmb2N1c2VkKTsKKy0JCXB1YmxpYyB2b2lkIHNl dF9wYXJhbXMgKHN0cmluZyBjbGFzc19uYW1lLCBib29sIGZvY3VzZWQsIE1ldGEuU2hhZG93UGFy YW1zIEBwYXJhbXMpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGNoYW5nZWQgKCk7CistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oIiwg dHlwZV9pZCA9ICJtZXRhX3NoYXBlZF90ZXh0dXJlX2dldF90eXBlICgpIildCistCXB1YmxpYyBj bGFzcyBTaGFwZWRUZXh0dXJlIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0 dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgewor LQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVk IFNoYXBlZFRleHR1cmUgKCk7CistCQlwdWJsaWMgQ2Fpcm8uU3VyZmFjZSBnZXRfaW1hZ2UgKENh aXJvLlJlY3RhbmdsZUludCBjbGlwKTsKKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBn ZXRfdGV4dHVyZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9jcmVhdGVfbWlwbWFwcyAoYm9vbCBj cmVhdGVfbWlwbWFwcyk7CistCQlwdWJsaWMgdm9pZCBzZXRfbWFza190ZXh0dXJlIChDb2dsLlRl eHR1cmUgbWFza190ZXh0dXJlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9vcGFxdWVfcmVnaW9uIChv d25lZCBDYWlyby5SZWdpb24gb3BhcXVlX3JlZ2lvbik7CistCQlwdWJsaWMgYm9vbCB1cGRhdGVf YXJlYSAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQkJcHVibGljIHNp Z25hbCB2b2lkIHNpemVfY2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS90aGVtZS5oIildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgVGhlbWUg eworLQkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuVGhlbWUgZ2V0 X2RlZmF1bHQgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi KV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLlRoZW1lIEBuZXcgKCk7CistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvd2luZG93LmgiLCB0eXBlX2lkID0gIm1l dGFfd2luZG93X2dldF90eXBlICgpIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBXaW5kb3cg OiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSldCistCQlwcm90ZWN0ZWQgV2luZG93ICgpOworLQkJcHVibGljIHZvaWQgYWN0aXZhdGUgKHVp bnQzMiBjdXJyZW50X3RpbWUpOworLQkJcHVibGljIHZvaWQgYWN0aXZhdGVfd2l0aF93b3Jrc3Bh Y2UgKHVpbnQzMiBjdXJyZW50X3RpbWUsIE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSk7CistCQlw dWJsaWMgYm9vbCBhbGxvd3NfbW92ZSAoKTsKKy0JCXB1YmxpYyBib29sIGFsbG93c19yZXNpemUg KCk7CistCQlwdWJsaWMgdm9pZCBiZWdpbl9ncmFiX29wIChNZXRhLkdyYWJPcCBvcCwgYm9vbCBm cmFtZV9hY3Rpb24sIHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIGJvb2wgY2FuX2Nsb3Nl ICgpOworLQkJcHVibGljIGJvb2wgY2FuX21heGltaXplICgpOworLQkJcHVibGljIGJvb2wgY2Fu X21pbmltaXplICgpOworLQkJcHVibGljIGJvb2wgY2FuX3NoYWRlICgpOworLQkJcHVibGljIHZv aWQgY2hhbmdlX3dvcmtzcGFjZSAoTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlKTsKKy0JCXB1Ymxp YyB2b2lkIGNoYW5nZV93b3Jrc3BhY2VfYnlfaW5kZXggKGludCBzcGFjZV9pbmRleCwgYm9vbCBh cHBlbmQpOworLQkJcHVibGljIHZvaWQgY2hlY2tfYWxpdmUgKHVpbnQzMiB0aW1lc3RhbXApOwor LQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGNsaWVudF9yZWN0X3RvX2ZyYW1lX3JlY3QgKE1ldGEu UmVjdGFuZ2xlIGNsaWVudF9yZWN0KTsKKy0JCXB1YmxpYyB2b2lkIGNvbXB1dGVfZ3JvdXAgKCk7 CistCQlwdWJsaWMgdm9pZCBAZGVsZXRlICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB1 bm93bmVkIE1ldGEuV2luZG93IGZpbmRfcm9vdF9hbmNlc3RvciAoKTsKKy0JCXB1YmxpYyB2b2lk IGZvY3VzICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIGZvcmVhY2hfYW5jZXN0 b3IgKE1ldGEuV2luZG93Rm9yZWFjaEZ1bmMgZnVuYyk7CistCQlwdWJsaWMgdm9pZCBmb3JlYWNo X3RyYW5zaWVudCAoTWV0YS5XaW5kb3dGb3JlYWNoRnVuYyBmdW5jKTsKKy0JCXB1YmxpYyBNZXRh LlJlY3RhbmdsZSBmcmFtZV9yZWN0X3RvX2NsaWVudF9yZWN0IChNZXRhLlJlY3RhbmdsZSBmcmFt ZV9yZWN0KTsKKy0JCVtDQ29kZSAoYXJyYXlfbGVuZ3RoX3BvcyA9IDAuMSwgYXJyYXlfbGVuZ3Ro X3R5cGUgPSAiZ3NpemUiKV0KKy0JCXB1YmxpYyBpbnRbXSBnZXRfYWxsX21vbml0b3JzICgpOwor LQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF9idWZmZXJfcmVjdCAoKTsKKy0JCXB1YmxpYyB1 bm93bmVkIHN0cmluZyBnZXRfY2xpZW50X21hY2hpbmUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBH TGliLk9iamVjdCBnZXRfY29tcG9zaXRvcl9wcml2YXRlICgpOworLQkJcHVibGljIHVub3duZWQg c3RyaW5nIGdldF9kZXNjcmlwdGlvbiAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuRGlzcGxh eSBnZXRfZGlzcGxheSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuRnJhbWUgZ2V0X2ZyYW1l ICgpOworLQkJcHVibGljIHVub3duZWQgQ2Fpcm8uUmVnaW9uPyBnZXRfZnJhbWVfYm91bmRzICgp OworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF9mcmFtZV9yZWN0ICgpOworLQkJcHVibGlj IE1ldGEuRnJhbWVUeXBlIGdldF9mcmFtZV90eXBlICgpOworLQkJcHVibGljIHVub3duZWQgTWV0 YS5Hcm91cCBnZXRfZ3JvdXAgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a19h cHBfbWVudV9vYmplY3RfcGF0aCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3Rr X2FwcGxpY2F0aW9uX2lkICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9ndGtfYXBw bGljYXRpb25fb2JqZWN0X3BhdGggKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0 a19tZW51YmFyX29iamVjdF9wYXRoICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9n dGtfdGhlbWVfdmFyaWFudCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX3Vu aXF1ZV9idXNfbmFtZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX3dpbmRv d19vYmplY3RfcGF0aCAoKTsKKy0JCXB1YmxpYyBib29sIGdldF9pY29uX2dlb21ldHJ5IChvdXQg TWV0YS5SZWN0YW5nbGUgcmVjdCk7CistCQlwdWJsaWMgTWV0YS5TdGFja0xheWVyIGdldF9sYXll ciAoKTsKKy0JCXB1YmxpYyBNZXRhLk1heGltaXplRmxhZ3MgZ2V0X21heGltaXplZCAoKTsKKy0J CXB1YmxpYyBpbnQgZ2V0X21vbml0b3IgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0 X211dHRlcl9oaW50cyAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3BpZCAoKTsKKy0JCXB1YmxpYyB1 bm93bmVkIHN0cmluZyBnZXRfcm9sZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuU2NyZWVu IGdldF9zY3JlZW4gKCk7CistCQlwdWJsaWMgdWludCBnZXRfc3RhYmxlX3NlcXVlbmNlICgpOwor LQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9zdGFydHVwX2lkICgpOworLQkJcHVibGljIHVu b3duZWQgTWV0YS5XaW5kb3c/IGdldF90aWxlX21hdGNoICgpOworLQkJcHVibGljIHVub3duZWQg c3RyaW5nIGdldF90aXRsZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGdldF90 cmFuc2llbnRfZm9yICgpOworLQkJcHVibGljIHVpbnQzMiBnZXRfdXNlcl90aW1lICgpOworLQkJ cHVibGljIE1ldGEuV2luZG93VHlwZSBnZXRfd2luZG93X3R5cGUgKCk7CistCQlwdWJsaWMgdW5v d25lZCBzdHJpbmcgZ2V0X3dtX2NsYXNzICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdl dF93bV9jbGFzc19pbnN0YW5jZSAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfd29y a19hcmVhX2FsbF9tb25pdG9ycyAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfd29y a19hcmVhX2N1cnJlbnRfbW9uaXRvciAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRf d29ya19hcmVhX2Zvcl9tb25pdG9yIChpbnQgd2hpY2hfbW9uaXRvcik7CistCQlwdWJsaWMgdW5v d25lZCBNZXRhLldvcmtzcGFjZSBnZXRfd29ya3NwYWNlICgpOworLQkJcHVibGljIFguV2luZG93 IGdldF94d2luZG93ICgpOworLQkJcHVibGljIHZvaWQgZ3JvdXBfbGVhZGVyX2NoYW5nZWQgKCk7 CistCQlwdWJsaWMgYm9vbCBoYXNfZm9jdXMgKCk7CistCQlwdWJsaWMgYm9vbCBpc19hYm92ZSAo KTsKKy0JCXB1YmxpYyBib29sIGlzX2Fsd2F5c19vbl9hbGxfd29ya3NwYWNlcyAoKTsKKy0JCXB1 YmxpYyBib29sIGlzX2FuY2VzdG9yX29mX3RyYW5zaWVudCAoTWV0YS5XaW5kb3cgdHJhbnNpZW50 KTsKKy0JCXB1YmxpYyBib29sIGlzX2F0dGFjaGVkX2RpYWxvZyAoKTsKKy0JCXB1YmxpYyBib29s IGlzX2Z1bGxzY3JlZW4gKCk7CistCQlwdWJsaWMgYm9vbCBpc19oaWRkZW4gKCk7CistCQlwdWJs aWMgYm9vbCBpc19tb25pdG9yX3NpemVkICgpOworLQkJcHVibGljIGJvb2wgaXNfb25fYWxsX3dv cmtzcGFjZXMgKCk7CistCQlwdWJsaWMgYm9vbCBpc19vbl9wcmltYXJ5X21vbml0b3IgKCk7Cist CQlwdWJsaWMgYm9vbCBpc19vdmVycmlkZV9yZWRpcmVjdCAoKTsKKy0JCXB1YmxpYyBib29sIGlz X3JlbW90ZSAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3NjcmVlbl9zaXplZCAoKTsKKy0JCXB1Ymxp YyBib29sIGlzX3NoYWRlZCAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3NraXBfdGFza2JhciAoKTsK Ky0JCXB1YmxpYyB2b2lkIGtpbGwgKCk7CistCQlwdWJsaWMgYm9vbCBsb2NhdGVkX29uX3dvcmtz cGFjZSAoTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlKTsKKy0JCXB1YmxpYyB2b2lkIGxvd2VyICgp OworLQkJcHVibGljIHZvaWQgbWFrZV9hYm92ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIG1ha2VfZnVs bHNjcmVlbiAoKTsKKy0JCXB1YmxpYyB2b2lkIG1heGltaXplIChNZXRhLk1heGltaXplRmxhZ3Mg ZGlyZWN0aW9ucyk7CistCQlwdWJsaWMgdm9pZCBtaW5pbWl6ZSAoKTsKKy0JCXB1YmxpYyB2b2lk IG1vdmVfZnJhbWUgKGJvb2wgdXNlcl9vcCwgaW50IHJvb3RfeF9udywgaW50IHJvb3RfeV9udyk7 CistCQlwdWJsaWMgdm9pZCBtb3ZlX3Jlc2l6ZV9mcmFtZSAoYm9vbCB1c2VyX29wLCBpbnQgcm9v dF94X253LCBpbnQgcm9vdF95X253LCBpbnQgdywgaW50IGgpOworLQkJcHVibGljIHZvaWQgbW92 ZV90b19tb25pdG9yIChpbnQgbW9uaXRvcik7CistCQlwdWJsaWMgdm9pZCByYWlzZSAoKTsKKy0J CXB1YmxpYyBib29sIHJlcXVlc3RlZF9ieXBhc3NfY29tcG9zaXRvciAoKTsKKy0JCXB1YmxpYyBi b29sIHJlcXVlc3RlZF9kb250X2J5cGFzc19jb21wb3NpdG9yICgpOworLQkJcHVibGljIHZvaWQg c2V0X2NvbXBvc2l0b3JfcHJpdmF0ZSAoR0xpYi5PYmplY3QgcHJpdik7CistCQlwdWJsaWMgdm9p ZCBzZXRfZGVtYW5kc19hdHRlbnRpb24gKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfaWNvbl9nZW9t ZXRyeSAoTWV0YS5SZWN0YW5nbGU/IHJlY3QpOworLQkJcHVibGljIHZvaWQgc2hhZGUgKHVpbnQz MiB0aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgc2hvdmVfdGl0bGViYXJfb25zY3JlZW4gKCk7 CistCQlwdWJsaWMgYm9vbCBzaG93aW5nX29uX2l0c193b3Jrc3BhY2UgKCk7CistCQlwdWJsaWMg dm9pZCBzaHV0ZG93bl9ncm91cCAoKTsKKy0JCXB1YmxpYyB2b2lkIHN0aWNrICgpOworLQkJcHVi bGljIGJvb2wgdGl0bGViYXJfaXNfb25zY3JlZW4gKCk7CistCQlwdWJsaWMgdm9pZCB1bm1ha2Vf YWJvdmUgKCk7CistCQlwdWJsaWMgdm9pZCB1bm1ha2VfZnVsbHNjcmVlbiAoKTsKKy0JCXB1Ymxp YyB2b2lkIHVubWF4aW1pemUgKE1ldGEuTWF4aW1pemVGbGFncyBkaXJlY3Rpb25zKTsKKy0JCXB1 YmxpYyB2b2lkIHVubWluaW1pemUgKCk7CistCQlwdWJsaWMgdm9pZCB1bnNldF9kZW1hbmRzX2F0 dGVudGlvbiAoKTsKKy0JCXB1YmxpYyB2b2lkIHVuc2hhZGUgKHVpbnQzMiB0aW1lc3RhbXApOwor LQkJcHVibGljIHZvaWQgdW5zdGljayAoKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVi bGljIGJvb2wgYWJvdmUgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGlj IGJvb2wgYXBwZWFyc19mb2N1c2VkIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0J CXB1YmxpYyBib29sIGRlY29yYXRlZCB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCist CQlwdWJsaWMgYm9vbCBkZW1hbmRzX2F0dGVudGlvbiB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JN ZXRob2RdCistCQlwdWJsaWMgYm9vbCBmdWxsc2NyZWVuIHsgZ2V0OyB9CistCQlwdWJsaWMgc3Ry aW5nIGd0a19hcHBfbWVudV9vYmplY3RfcGF0aCB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyBn dGtfYXBwbGljYXRpb25faWQgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3RrX2FwcGxpY2F0 aW9uX29iamVjdF9wYXRoIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIGd0a19tZW51YmFyX29i amVjdF9wYXRoIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIGd0a191bmlxdWVfYnVzX25hbWUg eyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3RrX3dpbmRvd19vYmplY3RfcGF0aCB7IGdldDsg fQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgQ2Fpcm8uU3VyZmFjZSBpY29uIHsg b3duZWQgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIG1heGlt aXplZF9ob3Jpem9udGFsbHkgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVi bGljIGJvb2wgbWF4aW1pemVkX3ZlcnRpY2FsbHkgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0 aG9kXQorLQkJcHVibGljIENhaXJvLlN1cmZhY2UgbWluaV9pY29uIHsgb3duZWQgZ2V0OyB9Cist CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIG1pbmltaXplZCB7IGdldDsgfQor LQkJcHVibGljIHN0cmluZyBtdXR0ZXJfaGludHMgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0 aG9kXQorLQkJcHVibGljIGJvb2wgb25fYWxsX3dvcmtzcGFjZXMgeyBnZXQ7IH0KKy0JCVtOb0Fj Y2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgcmVzaXplYWJsZSB7IGdldDsgfQorLQkJW05v QWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBza2lwX3Rhc2tiYXIgeyBnZXQ7IH0KKy0J CXB1YmxpYyBzdHJpbmcgdGl0bGUgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJ cHVibGljIGJvb2wgdXJnZW50IHsgZ2V0OyB9CistCQlwdWJsaWMgdWludCB1c2VyX3RpbWUgeyBn ZXQ7IH0KKy0JCXB1YmxpYyBNZXRhLldpbmRvd1R5cGUgd2luZG93X3R5cGUgeyBnZXQ7IH0KKy0J CXB1YmxpYyBzdHJpbmcgd21fY2xhc3MgeyBnZXQ7IH0KKy0JCVtDQ29kZSAoY25hbWUgPSAiZm9j dXMiKV0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBmb2N1c2VkICgpOworLQkJcHVibGljIHNpZ25h bCB2b2lkIHBvc2l0aW9uX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcmFpc2Vk ICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHNpemVfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBz aWduYWwgdm9pZCB1bm1hbmFnZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya3NwYWNl X2NoYW5nZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0 YS13aW5kb3ctYWN0b3IuaCIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfYWN0b3JfZ2V0X3R5cGUg KCkiKV0KKy0JcHVibGljIGNsYXNzIFdpbmRvd0FjdG9yIDogQ2x1dHRlci5BY3RvciwgQXRrLklt cGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVy LlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Up XQorLQkJcHJvdGVjdGVkIFdpbmRvd0FjdG9yICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5X aW5kb3cgZ2V0X21ldGFfd2luZG93ICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3Rv ciBnZXRfdGV4dHVyZSAoKTsKKy0JCXB1YmxpYyBYLldpbmRvdyBnZXRfeF93aW5kb3cgKCk7Cist CQlwdWJsaWMgYm9vbCBpc19kZXN0cm95ZWQgKCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0J CXB1YmxpYyBzdHJpbmcgc2hhZG93X2NsYXNzIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKy0JCVtOb0Fj Y2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuU2hhZG93TW9kZSBzaGFkb3dfbW9kZSB7IGdl dDsgc2V0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZmlyc3RfZnJhbWUgKCk7CistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YV93aW5kb3dfc2hhcGUuaCIsIHJl Zl9mdW5jdGlvbiA9ICJtZXRhX3dpbmRvd19zaGFwZV9yZWYiLCB0eXBlX2lkID0gIm1ldGFfd2lu ZG93X3NoYXBlX2dldF90eXBlICgpIiwgdW5yZWZfZnVuY3Rpb24gPSAibWV0YV93aW5kb3dfc2hh cGVfdW5yZWYiKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBXaW5kb3dTaGFwZSB7Cist CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwdWJsaWMgV2lu ZG93U2hhcGUgKENhaXJvLlJlZ2lvbiByZWdpb24pOworLQkJcHVibGljIGJvb2wgZXF1YWwgKE1l dGEuV2luZG93U2hhcGUgc2hhcGVfYik7CistCQlwdWJsaWMgdm9pZCBnZXRfYm9yZGVycyAoaW50 IGJvcmRlcl90b3AsIGludCBib3JkZXJfcmlnaHQsIGludCBib3JkZXJfYm90dG9tLCBpbnQgYm9y ZGVyX2xlZnQpOworLQkJcHVibGljIHVpbnQgaGFzaCAoKTsKKy0JCXB1YmxpYyBNZXRhLldpbmRv d1NoYXBlIEByZWYgKCk7CistCQlwdWJsaWMgQ2Fpcm8uUmVnaW9uIHRvX3JlZ2lvbiAoaW50IGNl bnRlcl93aWR0aCwgaW50IGNlbnRlcl9oZWlnaHQpOworLQkJcHVibGljIHZvaWQgdW5yZWYgKCk7 CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvd29ya3NwYWNlLmgiLCB0 eXBlX2lkID0gIm1ldGFfd29ya3NwYWNlX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBX b3Jrc3BhY2UgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgV29ya3NwYWNlICgpOworLQkJcHVibGljIHZvaWQg YWN0aXZhdGUgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgYWN0aXZhdGVfd2l0 aF9mb2N1cyAoTWV0YS5XaW5kb3cgZm9jdXNfdGhpcywgdWludDMyIHRpbWVzdGFtcCk7CistCQlw dWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZSBnZXRfbmVpZ2hib3IgKE1ldGEuTW90aW9uRGly ZWN0aW9uIGRpcmVjdGlvbik7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLlNjcmVlbiBnZXRfc2Ny ZWVuICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF93b3JrX2FyZWFfYWxsX21vbml0 b3JzICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF93b3JrX2FyZWFfZm9yX21vbml0 b3IgKGludCB3aGljaF9tb25pdG9yKTsKKy0JCXB1YmxpYyBpbnQgaW5kZXggKCk7CistCQlwdWJs aWMgR0xpYi5MaXN0PHdlYWsgTWV0YS5XaW5kb3c+IGxpc3Rfd2luZG93cyAoKTsKKy0JCXB1Ymxp YyB2b2lkIHNldF9idWlsdGluX3N0cnV0cyAoR0xpYi5TTGlzdDxNZXRhLlN0cnV0PiBzdHJ1dHMp OworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdWludCBuX3dpbmRvd3MgeyBnZXQ7 IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQgd29ya3NwYWNlX2luZGV4 IHsgZ2V0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X2FkZGVkIChNZXRhLldpbmRv dyBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19yZW1vdmVkIChNZXRhLldp bmRvdyBvYmplY3QpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Nv bW1vbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgQnV0dG9uTGF5 b3V0IHsKKy0JCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UsIGFycmF5X251bGxfdGVybWlu YXRlZCA9IHRydWUpXQorLQkJcHVibGljIHdlYWsgTWV0YS5CdXR0b25GdW5jdGlvbltdIGxlZnRf YnV0dG9uczsKKy0JCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UsIGFycmF5X251bGxfdGVy bWluYXRlZCA9IHRydWUpXQorLQkJcHVibGljIHdlYWsgYm9vbFtdIGxlZnRfYnV0dG9uc19oYXNf c3BhY2VyOworLQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSwgYXJyYXlfbnVsbF90ZXJt aW5hdGVkID0gdHJ1ZSldCistCQlwdWJsaWMgd2VhayBNZXRhLkJ1dHRvbkZ1bmN0aW9uW10gcmln aHRfYnV0dG9uczsKKy0JCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UsIGFycmF5X251bGxf dGVybWluYXRlZCA9IHRydWUpXQorLQkJcHVibGljIHdlYWsgYm9vbFtdIHJpZ2h0X2J1dHRvbnNf aGFzX3NwYWNlcjsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9ib3hl cy5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgRWRnZSB7CistCQlw dWJsaWMgTWV0YS5SZWN0YW5nbGUgcmVjdDsKKy0JCXB1YmxpYyBNZXRhLlNpZGUgc2lkZV90eXBl OworLQkJcHVibGljIE1ldGEuRWRnZVR5cGUgZWRnZV90eXBlOworLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCist CXB1YmxpYyBzdHJ1Y3QgRnJhbWVCb3JkZXJzIHsKKy0JCXB1YmxpYyBHdGsuQm9yZGVyIHZpc2li bGU7CistCQlwdWJsaWMgR3RrLkJvcmRlciBpbnZpc2libGU7CistCQlwdWJsaWMgR3RrLkJvcmRl ciB0b3RhbDsKKy0JCXB1YmxpYyB2b2lkIGNsZWFyICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21ldGEtcGx1Z2luLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K Ky0JcHVibGljIHN0cnVjdCBQbHVnaW5JbmZvIHsKKy0JCXB1YmxpYyB3ZWFrIHN0cmluZyBuYW1l OworLQkJcHVibGljIHdlYWsgc3RyaW5nIHZlcnNpb247CistCQlwdWJsaWMgd2VhayBzdHJpbmcg YXV0aG9yOworLQkJcHVibGljIHdlYWsgc3RyaW5nIGxpY2Vuc2U7CistCQlwdWJsaWMgd2VhayBz dHJpbmcgZGVzY3JpcHRpb247CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWV0YS1wbHVnaW4uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0 IFBsdWdpblZlcnNpb24geworLQkJcHVibGljIHVpbnQgdmVyc2lvbl9tYWpvcjsKKy0JCXB1Ymxp YyB1aW50IHZlcnNpb25fbWlub3I7CistCQlwdWJsaWMgdWludCB2ZXJzaW9uX21pY3JvOworLQkJ cHVibGljIHVpbnQgdmVyc2lvbl9hcGk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvYm94ZXMuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0 IFJlY3RhbmdsZSB7CistCQlwdWJsaWMgaW50IHg7CistCQlwdWJsaWMgaW50IHk7CistCQlwdWJs aWMgaW50IHdpZHRoOworLQkJcHVibGljIGludCBoZWlnaHQ7CistCQlwdWJsaWMgaW50IGFyZWEg KCk7CistCQlwdWJsaWMgYm9vbCBjb250YWluc19yZWN0IChNZXRhLlJlY3RhbmdsZSBpbm5lcl9y ZWN0KTsKKy0JCXB1YmxpYyBib29sIGNvdWxkX2ZpdF9yZWN0IChNZXRhLlJlY3RhbmdsZSBpbm5l cl9yZWN0KTsKKy0JCXB1YmxpYyBib29sIGVxdWFsIChNZXRhLlJlY3RhbmdsZSBzcmMyKTsKKy0J CXB1YmxpYyBib29sIGhvcml6X292ZXJsYXAgKE1ldGEuUmVjdGFuZ2xlIHJlY3QyKTsKKy0JCXB1 YmxpYyBib29sIGludGVyc2VjdCAoTWV0YS5SZWN0YW5nbGUgc3JjMiwgb3V0IE1ldGEuUmVjdGFu Z2xlIGRlc3QpOworLQkJcHVibGljIGJvb2wgb3ZlcmxhcCAoTWV0YS5SZWN0YW5nbGUgcmVjdDIp OworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIHVuaW9uIChNZXRhLlJlY3RhbmdsZSByZWN0Mik7 CistCQlwdWJsaWMgYm9vbCB2ZXJ0X292ZXJsYXAgKE1ldGEuUmVjdGFuZ2xlIHJlY3QyKTsKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBTaGFkb3dQYXJhbXMg eworLQkJcHVibGljIGludCByYWRpdXM7CistCQlwdWJsaWMgaW50IHRvcF9mYWRlOworLQkJcHVi bGljIGludCB4X29mZnNldDsKKy0JCXB1YmxpYyBpbnQgeV9vZmZzZXQ7CistCQlwdWJsaWMgdWlu dDggb3BhY2l0eTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9ib3hl cy5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgU3RydXQgeworLQkJ cHVibGljIE1ldGEuUmVjdGFuZ2xlIHJlY3Q7CistCQlwdWJsaWMgTWV0YS5TaWRlIHNpZGU7Cist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oIiwgY3ByZWZp eCA9ICJNRVRBX0JBUlJJRVJfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9iYXJyaWVyX2Rp cmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIEJhcnJpZXJE aXJlY3Rpb24geworLQkJUE9TSVRJVkVfWCwKKy0JCVBPU0lUSVZFX1ksCistCQlORUdBVElWRV9Y LAorLQkJTkVHQVRJVkVfWQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0JVVFRPTl9GVU5DVElPTl8iLCB0eXBlX2lkID0g Im1ldGFfYnV0dG9uX2Z1bmN0aW9uX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEJ1dHRv bkZ1bmN0aW9uIHsKKy0JCU1FTlUsCistCQlNSU5JTUlaRSwKKy0JCU1BWElNSVpFLAorLQkJQ0xP U0UsCistCQlTSEFERSwKKy0JCUFCT1ZFLAorLQkJU1RJQ0ssCistCQlVTlNIQURFLAorLQkJVU5B Qk9WRSwKKy0JCVVOU1RJQ0ssCistCQlBUFBNRU5VLAorLQkJTEFTVAorLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3IuaCIsIGNwcmVmaXggPSAiTUVUQV9D T01QX0VGRkVDVF8iLCB0eXBlX2lkID0gIm1ldGFfY29tcF9lZmZlY3RfZ2V0X3R5cGUgKCkiKV0K Ky0JcHVibGljIGVudW0gQ29tcEVmZmVjdCB7CistCQlDUkVBVEUsCistCQlVTk1JTklNSVpFLAor LQkJREVTVFJPWSwKKy0JCU1JTklNSVpFLAorLQkJTk9ORQorLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0NVUlNPUl8iLCB0 eXBlX2lkID0gIm1ldGFfY3Vyc29yX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEN1cnNv ciB7CistCQlOT05FLAorLQkJREVGQVVMVCwKKy0JCU5PUlRIX1JFU0laRSwKKy0JCVNPVVRIX1JF U0laRSwKKy0JCVdFU1RfUkVTSVpFLAorLQkJRUFTVF9SRVNJWkUsCistCQlTRV9SRVNJWkUsCist CQlTV19SRVNJWkUsCistCQlORV9SRVNJWkUsCistCQlOV19SRVNJWkUsCistCQlNT1ZFX09SX1JF U0laRV9XSU5ET1csCistCQlCVVNZLAorLQkJRE5EX0lOX0RSQUcsCistCQlETkRfTU9WRSwKKy0J CURORF9DT1BZLAorLQkJRE5EX1VOU1VQUE9SVEVEX1RBUkdFVCwKKy0JCVBPSU5USU5HX0hBTkQs CistCQlDUk9TU0hBSVIsCistCQlJQkVBTSwKKy0JCUxBU1QKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjcHJlZml4ID0gIk1FVEFfREVCVUdfIiwgdHlw ZV9pZCA9ICJtZXRhX2RlYnVnX3RvcGljX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVi bGljIGVudW0gRGVidWdUb3BpYyB7CistCQlWRVJCT1NFLAorLQkJRk9DVVMsCistCQlXT1JLQVJF QSwKKy0JCVNUQUNLLAorLQkJVEhFTUVTLAorLQkJU00sCistCQlFVkVOVFMsCistCQlXSU5ET1df U1RBVEUsCistCQlXSU5ET1dfT1BTLAorLQkJR0VPTUVUUlksCistCQlQTEFDRU1FTlQsCistCQlQ SU5HLAorLQkJWElORVJBTUEsCistCQlLRVlCSU5ESU5HUywKKy0JCVNZTkMsCistCQlFUlJPUlMs CistCQlTVEFSVFVQLAorLQkJUFJFRlMsCistCQlHUk9VUFMsCistCQlSRVNJWklORywKKy0JCVNI QVBFUywKKy0JCUNPTVBPU0lUT1IsCistCQlFREdFX1JFU0lTVEFOQ0UsCistCQlEQlVTCistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0g Ik1FVEFfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9kaXJlY3Rpb25fZ2V0X3R5cGUgKCki KV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBEaXJlY3Rpb24geworLQkJTEVGVCwKKy0JCVJJ R0hULAorLQkJVE9QLAorLQkJQk9UVE9NLAorLQkJVVAsCistCQlET1dOLAorLQkJSE9SSVpPTlRB TCwKKy0JCVZFUlRJQ0FMCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv Ym94ZXMuaCIsIGNwcmVmaXggPSAiTUVUQV9FREdFXyIsIHR5cGVfaWQgPSAibWV0YV9lZGdlX3R5 cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gRWRnZVR5cGUgeworLQkJV0lORE9XLAor LQkJTU9OSVRPUiwKKy0JCVNDUkVFTgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9FWElUXyIsIHR5cGVfaWQgPSAibWV0YV9l eGl0X2NvZGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gRXhpdENvZGUgeworLQkJU1VD Q0VTUywKKy0JCUVSUk9SCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv Y29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfRlJBTUVfIiwgdHlwZV9pZCA9ICJtZXRhX2ZyYW1l X2ZsYWdzX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gRnJhbWVGbGFn cyB7CistCQlBTExPV1NfREVMRVRFLAorLQkJQUxMT1dTX01FTlUsCistCQlBTExPV1NfQVBQTUVO VSwKKy0JCUFMTE9XU19NSU5JTUlaRSwKKy0JCUFMTE9XU19NQVhJTUlaRSwKKy0JCUFMTE9XU19W RVJUSUNBTF9SRVNJWkUsCistCQlBTExPV1NfSE9SSVpPTlRBTF9SRVNJWkUsCistCQlIQVNfRk9D VVMsCistCQlTSEFERUQsCistCQlTVFVDSywKKy0JCU1BWElNSVpFRCwKKy0JCUFMTE9XU19TSEFE RSwKKy0JCUFMTE9XU19NT1ZFLAorLQkJRlVMTFNDUkVFTiwKKy0JCUlTX0ZMQVNISU5HLAorLQkJ QUJPVkUsCistCQlUSUxFRF9MRUZULAorLQkJVElMRURfUklHSFQKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9GUkFNRV9U WVBFXyIsIHR5cGVfaWQgPSAibWV0YV9mcmFtZV90eXBlX2dldF90eXBlICgpIildCistCXB1Ymxp YyBlbnVtIEZyYW1lVHlwZSB7CistCQlOT1JNQUwsCistCQlESUFMT0csCistCQlNT0RBTF9ESUFM T0csCistCQlVVElMSVRZLAorLQkJTUVOVSwKKy0JCUJPUkRFUiwKKy0JCUFUVEFDSEVELAorLQkJ TEFTVDsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQkJ cHVibGljIHN0YXRpYyB1bm93bmVkIHN0cmluZyB0b19zdHJpbmcgKE1ldGEuRnJhbWVUeXBlIHR5 cGUpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwg Y3ByZWZpeCA9ICJNRVRBX0dSQUJfT1BfIiwgdHlwZV9pZCA9ICJtZXRhX2dyYWJfb3BfZ2V0X3R5 cGUgKCkiKV0KKy0JcHVibGljIGVudW0gR3JhYk9wIHsKKy0JCU5PTkUsCistCQlDT01QT1NJVE9S LAorLQkJV0FZTEFORF9QT1BVUCwKKy0JCVdJTkRPV19CQVNFLAorLQkJRlJBTUVfQlVUVE9OLAor LQkJTU9WSU5HLAorLQkJUkVTSVpJTkdfTlcsCistCQlSRVNJWklOR19OLAorLQkJUkVTSVpJTkdf TkUsCistCQlSRVNJWklOR19FLAorLQkJUkVTSVpJTkdfU1csCistCQlSRVNJWklOR19TLAorLQkJ UkVTSVpJTkdfU0UsCistCQlSRVNJWklOR19XLAorLQkJS0VZQk9BUkRfTU9WSU5HLAorLQkJS0VZ Qk9BUkRfUkVTSVpJTkdfVU5LTk9XTiwKKy0JCUtFWUJPQVJEX1JFU0laSU5HX05XLAorLQkJS0VZ Qk9BUkRfUkVTSVpJTkdfTiwKKy0JCUtFWUJPQVJEX1JFU0laSU5HX05FLAorLQkJS0VZQk9BUkRf UkVTSVpJTkdfRSwKKy0JCUtFWUJPQVJEX1JFU0laSU5HX1NXLAorLQkJS0VZQk9BUkRfUkVTSVpJ TkdfUywKKy0JCUtFWUJPQVJEX1JFU0laSU5HX1NFLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfVwor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjcHJlZml4 ID0gIk1FVEFfS0VZQklORElOR19BQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5n X2FjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBLZXlCaW5kaW5nQWN0aW9uIHsK Ky0JCU5PTkUsCistCQlXT1JLU1BBQ0VfMSwKKy0JCVdPUktTUEFDRV8yLAorLQkJV09SS1NQQUNF XzMsCistCQlXT1JLU1BBQ0VfNCwKKy0JCVdPUktTUEFDRV81LAorLQkJV09SS1NQQUNFXzYsCist CQlXT1JLU1BBQ0VfNywKKy0JCVdPUktTUEFDRV84LAorLQkJV09SS1NQQUNFXzksCistCQlXT1JL U1BBQ0VfMTAsCistCQlXT1JLU1BBQ0VfMTEsCistCQlXT1JLU1BBQ0VfMTIsCistCQlXT1JLU1BB Q0VfTEVGVCwKKy0JCVdPUktTUEFDRV9SSUdIVCwKKy0JCVdPUktTUEFDRV9VUCwKKy0JCVdPUktT UEFDRV9ET1dOLAorLQkJV09SS1NQQUNFX0xBU1QsCistCQlTV0lUQ0hfQVBQTElDQVRJT05TLAor LQkJU1dJVENIX0FQUExJQ0FUSU9OU19CQUNLV0FSRCwKKy0JCVNXSVRDSF9HUk9VUCwKKy0JCVNX SVRDSF9HUk9VUF9CQUNLV0FSRCwKKy0JCVNXSVRDSF9XSU5ET1dTLAorLQkJU1dJVENIX1dJTkRP V1NfQkFDS1dBUkQsCistCQlTV0lUQ0hfUEFORUxTLAorLQkJU1dJVENIX1BBTkVMU19CQUNLV0FS RCwKKy0JCUNZQ0xFX0dST1VQLAorLQkJQ1lDTEVfR1JPVVBfQkFDS1dBUkQsCistCQlDWUNMRV9X SU5ET1dTLAorLQkJQ1lDTEVfV0lORE9XU19CQUNLV0FSRCwKKy0JCUNZQ0xFX1BBTkVMUywKKy0J CUNZQ0xFX1BBTkVMU19CQUNLV0FSRCwKKy0JCVNIT1dfREVTS1RPUCwKKy0JCVBBTkVMX01BSU5f TUVOVSwKKy0JCVBBTkVMX1JVTl9ESUFMT0csCistCQlUT0dHTEVfUkVDT1JESU5HLAorLQkJU0VU X1NQRVdfTUFSSywKKy0JCUFDVElWQVRFX1dJTkRPV19NRU5VLAorLQkJVE9HR0xFX0ZVTExTQ1JF RU4sCistCQlUT0dHTEVfTUFYSU1JWkVELAorLQkJVE9HR0xFX1RJTEVEX0xFRlQsCistCQlUT0dH TEVfVElMRURfUklHSFQsCistCQlUT0dHTEVfQUJPVkUsCistCQlNQVhJTUlaRSwKKy0JCVVOTUFY SU1JWkUsCistCQlUT0dHTEVfU0hBREVELAorLQkJTUlOSU1JWkUsCistCQlDTE9TRSwKKy0JCUJF R0lOX01PVkUsCistCQlCRUdJTl9SRVNJWkUsCistCQlUT0dHTEVfT05fQUxMX1dPUktTUEFDRVMs CistCQlNT1ZFX1RPX1dPUktTUEFDRV8xLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfMiwKKy0JCU1P VkVfVE9fV09SS1NQQUNFXzMsCistCQlNT1ZFX1RPX1dPUktTUEFDRV80LAorLQkJTU9WRV9UT19X T1JLU1BBQ0VfNSwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzYsCistCQlNT1ZFX1RPX1dPUktTUEFD RV83LAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfOCwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzksCist CQlNT1ZFX1RPX1dPUktTUEFDRV8xMCwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzExLAorLQkJTU9W RV9UT19XT1JLU1BBQ0VfMTIsCistCQlNT1ZFX1RPX1dPUktTUEFDRV9MRUZULAorLQkJTU9WRV9U T19XT1JLU1BBQ0VfUklHSFQsCistCQlNT1ZFX1RPX1dPUktTUEFDRV9VUCwKKy0JCU1PVkVfVE9f V09SS1NQQUNFX0RPV04sCistCQlNT1ZFX1RPX1dPUktTUEFDRV9MQVNULAorLQkJTU9WRV9UT19N T05JVE9SX0xFRlQsCistCQlNT1ZFX1RPX01PTklUT1JfUklHSFQsCistCQlNT1ZFX1RPX01PTklU T1JfVVAsCistCQlNT1ZFX1RPX01PTklUT1JfRE9XTiwKKy0JCVJBSVNFX09SX0xPV0VSLAorLQkJ UkFJU0UsCistCQlMT1dFUiwKKy0JCU1BWElNSVpFX1ZFUlRJQ0FMTFksCistCQlNQVhJTUlaRV9I T1JJWk9OVEFMTFksCistCQlNT1ZFX1RPX0NPUk5FUl9OVywKKy0JCU1PVkVfVE9fQ09STkVSX05F LAorLQkJTU9WRV9UT19DT1JORVJfU1csCistCQlNT1ZFX1RPX0NPUk5FUl9TRSwKKy0JCU1PVkVf VE9fU0lERV9OLAorLQkJTU9WRV9UT19TSURFX1MsCistCQlNT1ZFX1RPX1NJREVfRSwKKy0JCU1P VkVfVE9fU0lERV9XLAorLQkJTU9WRV9UT19DRU5URVIsCistCQlPVkVSTEFZX0tFWSwKKy0JCUlT T19ORVhUX0dST1VQLAorLQkJQUxXQVlTX09OX1RPUCwKKy0JCUxBU1QKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY3ByZWZpeCA9ICJNRVRBX0tFWV9C SU5ESU5HXyIsIHR5cGVfaWQgPSAibWV0YV9rZXlfYmluZGluZ19mbGFnc19nZXRfdHlwZSAoKSIp XQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIEtleUJpbmRpbmdGbGFncyB7CistCQlOT05FLAor LQkJUEVSX1dJTkRPVywKKy0JCUJVSUxUSU4sCistCQlJU19SRVZFUlNFRAorLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNwcmVmaXggPSAiTUVUQV9MQVRF Ul8iLCB0eXBlX2lkID0gIm1ldGFfbGF0ZXJfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMg ZW51bSBMYXRlclR5cGUgeworLQkJUkVTSVpFLAorLQkJQ0FMQ19TSE9XSU5HLAorLQkJQ0hFQ0tf RlVMTFNDUkVFTiwKKy0JCVNZTkNfU1RBQ0ssCistCQlCRUZPUkVfUkVEUkFXLAorLQkJSURMRQor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNwcmVmaXgg PSAiTUVUQV9MT0NBTEVfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9sb2NhbGVfZGlyZWN0 aW9uX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIExvY2FsZURpcmVjdGlvbiB7CistCQlM VFIsCistCQlSVEwKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5k b3cuaCIsIGNwcmVmaXggPSAiTUVUQV9NQVhJTUlaRV8iLCB0eXBlX2lkID0gIm1ldGFfbWF4aW1p emVfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBNYXhpbWl6 ZUZsYWdzIHsKKy0JCUhPUklaT05UQUwsCistCQlWRVJUSUNBTCwKKy0JCUJPVEgKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXBsdWdpbi5oIiwgY3ByZWZpeCA9 ICJNRVRBX01PREFMXyIsIHR5cGVfaWQgPSAibWV0YV9tb2RhbF9vcHRpb25zX2dldF90eXBlICgp IildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gTW9kYWxPcHRpb25zIHsKKy0JCVBPSU5URVJf QUxSRUFEWV9HUkFCQkVELAorLQkJS0VZQk9BUkRfQUxSRUFEWV9HUkFCQkVECistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFf TU9USU9OXyIsIHR5cGVfaWQgPSAibWV0YV9tb3Rpb25fZGlyZWN0aW9uX2dldF90eXBlICgpIild CistCXB1YmxpYyBlbnVtIE1vdGlvbkRpcmVjdGlvbiB7CistCQlVUCwKKy0JCURPV04sCistCQlM RUZULAorLQkJUklHSFQsCistCQlVUF9MRUZULAorLQkJVVBfUklHSFQsCistCQlET1dOX0xFRlQs CistCQlET1dOX1JJR0hUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv cHJlZnMuaCIsIGNwcmVmaXggPSAiTUVUQV9QUkVGXyIsIHR5cGVfaWQgPSAibWV0YV9wcmVmZXJl bmNlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFByZWZlcmVuY2UgeworLQkJTU9VU0Vf QlVUVE9OX01PRFMsCistCQlGT0NVU19NT0RFLAorLQkJRk9DVVNfTkVXX1dJTkRPV1MsCistCQlB VFRBQ0hfTU9EQUxfRElBTE9HUywKKy0JCVJBSVNFX09OX0NMSUNLLAorLQkJQUNUSU9OX0RPVUJM RV9DTElDS19USVRMRUJBUiwKKy0JCUFDVElPTl9NSURETEVfQ0xJQ0tfVElUTEVCQVIsCistCQlB Q1RJT05fUklHSFRfQ0xJQ0tfVElUTEVCQVIsCistCQlBVVRPX1JBSVNFLAorLQkJQVVUT19SQUlT RV9ERUxBWSwKKy0JCUZPQ1VTX0NIQU5HRV9PTl9QT0lOVEVSX1JFU1QsCistCQlUSVRMRUJBUl9G T05ULAorLQkJTlVNX1dPUktTUEFDRVMsCistCQlEWU5BTUlDX1dPUktTUEFDRVMsCistCQlLRVlC SU5ESU5HUywKKy0JCURJU0FCTEVfV09SS0FST1VORFMsCistCQlCVVRUT05fTEFZT1VULAorLQkJ V09SS1NQQUNFX05BTUVTLAorLQkJVklTVUFMX0JFTEwsCistCQlBVURJQkxFX0JFTEwsCistCQlW SVNVQUxfQkVMTF9UWVBFLAorLQkJR05PTUVfQUNDRVNTSUJJTElUWSwKKy0JCUdOT01FX0FOSU1B VElPTlMsCistCQlDVVJTT1JfVEhFTUUsCistCQlDVVJTT1JfU0laRSwKKy0JCVJFU0laRV9XSVRI X1JJR0hUX0JVVFRPTiwKKy0JCUVER0VfVElMSU5HLAorLQkJRk9SQ0VfRlVMTFNDUkVFTiwKKy0J CVdPUktTUEFDRVNfT05MWV9PTl9QUklNQVJZLAorLQkJRFJBR0dBQkxFX0JPUkRFUl9XSURUSCwK Ky0JCUFVVE9fTUFYSU1JWkUsCistCQlDRU5URVJfTkVXX1dJTkRPV1MsCistCQlEUkFHX1RIUkVT SE9MRDsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQkJ cHVibGljIHN0YXRpYyB1bm93bmVkIHN0cmluZyB0b19zdHJpbmcgKE1ldGEuUHJlZmVyZW5jZSBw cmVmKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9zY3JlZW4uaCIs IGNwcmVmaXggPSAiTUVUQV9TQ1JFRU5fIiwgdHlwZV9pZCA9ICJtZXRhX3NjcmVlbl9jb3JuZXJf Z2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gU2NyZWVuQ29ybmVyIHsKKy0JCVRPUExFRlQs CistCQlUT1BSSUdIVCwKKy0JCUJPVFRPTUxFRlQsCistCQlCT1RUT01SSUdIVAorLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtZW51bS10eXBlcy5oIiwgY3ByZWZp eCA9ICJNRVRBX1NDUkVFTl8iLCB0eXBlX2lkID0gIm1ldGFfc2NyZWVuX2RpcmVjdGlvbl9nZXRf dHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBTY3JlZW5EaXJlY3Rpb24geworLQkJVVAsCistCQlE T1dOLAorLQkJTEVGVCwKKy0JCVJJR0hUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWV0YS1lbnVtLXR5cGVzLmgiLCBjcHJlZml4ID0gIk1FVEFfU0hBRE9XX01PREVf IiwgdHlwZV9pZCA9ICJtZXRhX3NoYWRvd19tb2RlX2dldF90eXBlICgpIildCistCXB1YmxpYyBl bnVtIFNoYWRvd01vZGUgeworLQkJQVVUTywKKy0JCUZPUkNFRF9PRkYsCistCQlGT1JDRURfT04K Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVm aXggPSAiTUVUQV9TSURFXyIsIHR5cGVfaWQgPSAibWV0YV9zaWRlX2dldF90eXBlICgpIildCist CXB1YmxpYyBlbnVtIFNpZGUgeworLQkJTEVGVCwKKy0JCVJJR0hULAorLQkJVE9QLAorLQkJQk9U VE9NCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1lbnVtLXR5 cGVzLmgiLCBjcHJlZml4ID0gIk1FVEFfU0laRV9DSEFOR0VfIiwgdHlwZV9pZCA9ICJtZXRhX3Np emVfY2hhbmdlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFNpemVDaGFuZ2UgeworLQkJ TUFYSU1JWkUsCistCQlVTk1BWElNSVpFLAorLQkJRlVMTFNDUkVFTiwKKy0JCVVORlVMTFNDUkVF TgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3By ZWZpeCA9ICJNRVRBX0xBWUVSXyIsIHR5cGVfaWQgPSAibWV0YV9zdGFja19sYXllcl9nZXRfdHlw ZSAoKSIpXQorLQlwdWJsaWMgZW51bSBTdGFja0xheWVyIHsKKy0JCURFU0tUT1AsCistCQlCT1RU T00sCistCQlOT1JNQUwsCistCQlUT1AsCistCQlET0NLLAorLQkJRlVMTFNDUkVFTiwKKy0JCUZP Q1VTRURfV0lORE9XLAorLQkJT1ZFUlJJREVfUkVESVJFQ1QsCistCQlMQVNUCistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvZGlzcGxheS5oIiwgY3ByZWZpeCA9ICJNRVRB X1RBQl9MSVNUXyIsIHR5cGVfaWQgPSAibWV0YV90YWJfbGlzdF9nZXRfdHlwZSAoKSIpXQorLQlw dWJsaWMgZW51bSBUYWJMaXN0IHsKKy0JCU5PUk1BTCwKKy0JCURPQ0tTLAorLQkJR1JPVVAsCist CQlOT1JNQUxfQUxMCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvZGlz cGxheS5oIiwgY3ByZWZpeCA9ICJNRVRBX1RBQl9TSE9XXyIsIHR5cGVfaWQgPSAibWV0YV90YWJf c2hvd190eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFRhYlNob3dUeXBlIHsKKy0J CUlDT04sCistCQlJTlNUQU5UTFkKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9WSVJUVUFMXyIsIHR5cGVfaWQgPSAibWV0 YV92aXJ0dWFsX21vZGlmaWVyX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVu dW0gVmlydHVhbE1vZGlmaWVyIHsKKy0JCVNISUZUX01BU0ssCistCQlDT05UUk9MX01BU0ssCist CQlBTFRfTUFTSywKKy0JCU1FVEFfTUFTSywKKy0JCVNVUEVSX01BU0ssCistCQlIWVBFUl9NQVNL LAorLQkJTU9EMl9NQVNLLAorLQkJTU9EM19NQVNLLAorLQkJTU9ENF9NQVNLLAorLQkJTU9ENV9N QVNLCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvd2luZG93LmgiLCBj cHJlZml4ID0gIk1FVEFfV0lORE9XX0NMSUVOVF9UWVBFXyIsIHR5cGVfaWQgPSAibWV0YV93aW5k b3dfY2xpZW50X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gV2luZG93Q2xpZW50 VHlwZSB7CistCQlXQVlMQU5ELAorLQkJWDExCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfV0lORE9XX01FTlVfIiwgdHlw ZV9pZCA9ICJtZXRhX3dpbmRvd19tZW51X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVu dW0gV2luZG93TWVudVR5cGUgeworLQkJV00sCistCQlBUFAKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cuaCIsIGNwcmVmaXggPSAiTUVUQV9XSU5ET1dfIiwg dHlwZV9pZCA9ICJtZXRhX3dpbmRvd190eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVt IFdpbmRvd1R5cGUgeworLQkJTk9STUFMLAorLQkJREVTS1RPUCwKKy0JCURPQ0ssCistCQlESUFM T0csCistCQlNT0RBTF9ESUFMT0csCistCQlUT09MQkFSLAorLQkJTUVOVSwKKy0JCVVUSUxJVFks CistCQlTUExBU0hTQ1JFRU4sCistCQlEUk9QRE9XTl9NRU5VLAorLQkJUE9QVVBfTUVOVSwKKy0J CVRPT0xUSVAsCistCQlOT1RJRklDQVRJT04sCistCQlDT01CTywKKy0JCURORCwKKy0JCU9WRVJS SURFX09USEVSCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1p ZGxlLW1vbml0b3IuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2 b2lkIElkbGVNb25pdG9yV2F0Y2hGdW5jIChNZXRhLklkbGVNb25pdG9yIG1vbml0b3IsIHVpbnQg d2F0Y2hfaWQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwg aW5zdGFuY2VfcG9zID0gNS45KV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQgS2V5SGFuZGxlckZ1 bmMgKE1ldGEuRGlzcGxheSBkaXNwbGF5LCBNZXRhLlNjcmVlbiBzY3JlZW4sIE1ldGEuV2luZG93 PyB3aW5kb3csIENsdXR0ZXIuS2V5RXZlbnQ/IGV2ZW50LCBNZXRhLktleUJpbmRpbmcgYmluZGlu Zyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBpbnN0YW5j ZV9wb3MgPSAxLjkpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBQcmVmc0NoYW5nZWRGdW5jIChN ZXRhLlByZWZlcmVuY2UgcHJlZik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3dpbmRvdy5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKy0JcHVibGljIGRlbGVnYXRlIGJvb2wg V2luZG93Rm9yZWFjaEZ1bmMgKE1ldGEuV2luZG93IHdpbmRvdyk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfREVGQVVMVF9JQ09OX05B TUUiKV0KKy0JcHVibGljIGNvbnN0IHN0cmluZyBERUZBVUxUX0lDT05fTkFNRTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9JQ09OX0hF SUdIVCIpXQorLQlwdWJsaWMgY29uc3QgaW50IElDT05fSEVJR0hUOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX0lDT05fV0lEVEgiKV0K Ky0JcHVibGljIGNvbnN0IGludCBJQ09OX1dJRFRIOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01BSk9SX1ZFUlNJT04iKV0KKy0JcHVi bGljIGNvbnN0IGludCBNQUpPUl9WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01JQ1JPX1ZFUlNJT04iKV0KKy0JcHVibGlj IGNvbnN0IGludCBNSUNST19WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01JTklfSUNPTl9IRUlHSFQiKV0KKy0JcHVibGlj IGNvbnN0IGludCBNSU5JX0lDT05fSEVJR0hUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01JTklfSUNPTl9XSURUSCIpXQorLQlwdWJs aWMgY29uc3QgaW50IE1JTklfSUNPTl9XSURUSDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9NSU5PUl9WRVJTSU9OIildCistCXB1Ymxp YyBjb25zdCBpbnQgTUlOT1JfVkVSU0lPTjsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9QTFVHSU5fQVBJX1ZFUlNJT04iKV0KKy0JcHVi bGljIGNvbnN0IGludCBQTFVHSU5fQVBJX1ZFUlNJT047CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfQkVGT1JFX1JFRFJB VyIpXQorLQlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZX0JFRk9SRV9SRURSQVc7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJ VFlfUFJFRlNfTk9USUZZIildCistCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfUFJFRlNfTk9U SUZZOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9 ICJNRVRBX1BSSU9SSVRZX1JFRFJBVyIpXQorLQlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZX1JF RFJBVzsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUg PSAiTUVUQV9QUklPUklUWV9SRVNJWkUiKV0KKy0JcHVibGljIGNvbnN0IGludCBQUklPUklUWV9S RVNJWkU7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1l ID0gIk1FVEFfVklSVFVBTF9DT1JFX0tFWUJPQVJEX0lEIildCistCXB1YmxpYyBjb25zdCBpbnQg VklSVFVBTF9DT1JFX0tFWUJPQVJEX0lEOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX1ZJUlRVQUxfQ09SRV9QT0lOVEVSX0lEIildCist CXB1YmxpYyBjb25zdCBpbnQgVklSVFVBTF9DT1JFX1BPSU5URVJfSUQ7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgYWN0 aXZhdGVfc2Vzc2lvbiAoKTsKKy0gCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21h aW4uaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgY2x1dHRlcl9pbml0ICgpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IGV4aXQgKE1ldGEuRXhpdENvZGUgY29kZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgR0xpYi5PcHRpb25Db250 ZXh0IGdldF9vcHRpb25fY29udGV4dCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfcmVwbGFjZV9jdXJyZW50 X3dtICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0J cHVibGljIHN0YXRpYyB2b2lkIGluaXQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfcmVzdGFydCAoKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCBxdWl0IChNZXRhLkV4aXRDb2RlIGNvZGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlZ2lzdGVyX3dp dGhfc2Vzc2lvbiAoKTsKKy0gCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVzdGFydCAoc3RyaW5nIG1lc3NhZ2UpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JcHVibGljIHN0YXRp YyBpbnQgcnVuICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi KV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9nbm9tZV93bV9rZXliaW5kaW5ncyAoc3RyaW5n IHdtX2tleWJpbmRpbmdzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFp bi5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfd21fbmFtZSAoc3RyaW5nIHdtX25hbWUp OworLX0KK2RpZmYgLS1naXQgdmFwaS9saWJtdXR0ZXItMy1jdXN0b20udmFsYSB2YXBpL2xpYm11 dHRlci0zLWN1c3RvbS52YWxhCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDI5ZTU5 NzdkLi4wMDAwMDAwMAorLS0tIHZhcGkvbGlibXV0dGVyLTMtY3VzdG9tLnZhbGEKKysrKyAvZGV2 L251bGwKK0BAIC0xLDYgKzAsMCBAQAorLW5hbWVzcGFjZSBNZXRhIHsKKy0JcHVibGljIGFic3Ry YWN0IGNsYXNzIE1vbml0b3JNYW5hZ2VyIDogTWV0YS5EQnVzRGlzcGxheUNvbmZpZ1NrZWxldG9u LCBHTGliLkRCdXNJbnRlcmZhY2UgeworLQkJLyogbm90IGV4cG9ydGVkICovCistCQlwdWJsaWMg c2lnbmFsIHZvaWQgbW9uaXRvcnNfY2hhbmdlZCAoKTsKKy0JfQorLX0KK2RpZmYgLS1naXQgdmFw aS9saWJtdXR0ZXItMy5kZXBzIHZhcGkvbGlibXV0dGVyLTMuZGVwcworZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CitpbmRleCAxZjNjOTA3OS4uMDAwMDAwMDAKKy0tLSB2YXBpL2xpYm11dHRlci0z LmRlcHMKKysrKyAvZGV2L251bGwKK0BAIC0xLDkgKzAsMCBAQAorLWNhaXJvCistZ3NldHRpbmdz LWRlc2t0b3Atc2NoZW1hcworLWdkay0zLjAKKy1nZGstcGl4YnVmLTIuMAorLWd0aystMy4wCist eDExCisteGZpeGVzLTQuMAorLWNsdXR0ZXItMS4wCistY29nbC0xLjAKK2RpZmYgLS1naXQgdmFw aS9saWJtdXR0ZXItNC5kZXBzIHZhcGkvbGlibXV0dGVyLTQuZGVwcworZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CitpbmRleCAzNjdjMzViOS4uMDAwMDAwMDAKKy0tLSB2YXBpL2xpYm11dHRlci00 LmRlcHMKKysrKyAvZGV2L251bGwKK0BAIC0xLDggKzAsMCBAQAorLWdkay0zLjAKKy1nZGstcGl4 YnVmLTIuMAorLWdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMKKy1ndGsrLTMuMAorLW11dHRlci1j bHV0dGVyLTQKKy1tdXR0ZXItY29nbC00CisteDExCisteGZpeGVzLTQuMAorZGlmZiAtLWdpdCB2 YXBpL2xpYm11dHRlci00LnZhcGkgdmFwaS9saWJtdXR0ZXItNC52YXBpCitkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKK2luZGV4IGUwZDM1NmEwLi4wMDAwMDAwMAorLS0tIHZhcGkvbGlibXV0dGVy LTQudmFwaQorKysrIC9kZXYvbnVsbAorQEAgLTEsMTQyNSArMCwwIEBACistLyogbGlibXV0dGVy LTQudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKy0KKy1bQ0Nv ZGUgKGNwcmVmaXggPSAiTWV0YSIsIGdpcl9uYW1lc3BhY2UgPSAiTWV0YSIsIGdpcl92ZXJzaW9u ID0gIjQiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAibWV0YV8iKV0KKy1uYW1lc3BhY2UgTWV0YSB7 CistCW5hbWVzcGFjZSBDb21wb3NpdG9yIHsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2Rpc2FibGVfdW5yZWRp cmVjdF9mb3JfZGlzcGxheSIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGRpc2FibGVfdW5yZWRp cmVjdF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFf ZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZW1wdHlf c3RhZ2VfaW5wdXRfcmVnaW9uIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0 YV9lbmFibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lk IGVuYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwg Y25hbWUgPSAibWV0YV9mb2N1c19zdGFnZV93aW5kb3ciKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9p ZCBmb2N1c19zdGFnZV93aW5kb3cgKE1ldGEuRGlzcGxheSBkaXNwbGF5LCB1aW50MzIgdGltZXN0 YW1wKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0 dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dldF9mZWVkYmFja19ncm91cF9mb3JfZGlzcGxheSIpXQor LQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2ZlZWRiYWNrX2dyb3Vw X2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9nZXRf c3RhZ2VfZm9yX2Rpc3BsYXkiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFj dG9yIGdldF9zdGFnZV9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1l ID0gIm1ldGFfZ2V0X3RvcF93aW5kb3dfZ3JvdXBfZm9yX2Rpc3BsYXkiKV0KKy0JCXB1YmxpYyBz dGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF90b3Bfd2luZG93X2dyb3VwX2Zvcl9kaXNw bGF5IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9nZXRfd2luZG93X2Fj dG9ycyIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdMaWIuTGlzdDxDbHV0dGVyLkFjdG9y PiBnZXRfd2luZG93X2FjdG9ycyAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1l dGFfZ2V0X3dpbmRvd19ncm91cF9mb3JfZGlzcGxheSIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93 bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3dpbmRvd19ncm91cF9mb3JfZGlzcGxheSAoTWV0YS5EaXNw bGF5IGRpc3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfc2V0X3N0YWdlX2lucHV0X3JlZ2lvbiIpXQor LQkJcHVibGljIHN0YXRpYyB2b2lkIHNldF9zdGFnZV9pbnB1dF9yZWdpb24gKE1ldGEuRGlzcGxh eSBkaXNwbGF5LCBYLlhzZXJ2ZXJSZWdpb24gcmVnaW9uKTsKKy0JfQorLQluYW1lc3BhY2UgUHJl ZnMgeworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1l ID0gIm1ldGFfcHJlZnNfYmVsbF9pc19hdWRpYmxlIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wg cHJlZnNfYmVsbF9pc19hdWRpYmxlICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfY2hhbmdlX3dvcmtzcGFjZV9uYW1l IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgcHJlZnNfY2hhbmdlX3dvcmtzcGFjZV9uYW1lIChp bnQgaSwgc3RyaW5nIG5hbWUpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv cHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2FjdGlvbl9kb3VibGVfY2xpY2tfdGl0 bGViYXIiKV0KKy0JCXB1YmxpYyBzdGF0aWMgR0Rlc2t0b3AuVGl0bGViYXJBY3Rpb24gcHJlZnNf Z2V0X2FjdGlvbl9kb3VibGVfY2xpY2tfdGl0bGViYXIgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfYWN0aW9u X21pZGRsZV9jbGlja190aXRsZWJhciIpXQorLQkJcHVibGljIHN0YXRpYyBHRGVza3RvcC5UaXRs ZWJhckFjdGlvbiBwcmVmc19nZXRfYWN0aW9uX21pZGRsZV9jbGlja190aXRsZWJhciAoKTsKKy0J CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRh X3ByZWZzX2dldF9hY3Rpb25fcmlnaHRfY2xpY2tfdGl0bGViYXIiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgR0Rlc2t0b3AuVGl0bGViYXJBY3Rpb24gcHJlZnNfZ2V0X2FjdGlvbl9yaWdodF9jbGlja190 aXRsZWJhciAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgi LCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9hdHRhY2hfbW9kYWxfZGlhbG9ncyIpXQorLQkJcHVi bGljIHN0YXRpYyBib29sIHByZWZzX2dldF9hdHRhY2hfbW9kYWxfZGlhbG9ncyAoKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3By ZWZzX2dldF9hdXRvX21heGltaXplIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0 X2F1dG9fbWF4aW1pemUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9w cmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfYXV0b19yYWlzZSIpXQorLQkJcHVibGlj IHN0YXRpYyBib29sIHByZWZzX2dldF9hdXRvX3JhaXNlICgpOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2F1dG9f cmFpc2VfZGVsYXkiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IHByZWZzX2dldF9hdXRvX3JhaXNl X2RlbGF5ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIs IGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2J1dHRvbl9sYXlvdXQiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgTWV0YS5CdXR0b25MYXlvdXQgcHJlZnNfZ2V0X2J1dHRvbl9sYXlvdXQgKCk7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVm c19nZXRfY2VudGVyX25ld193aW5kb3dzIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNf Z2V0X2NlbnRlcl9uZXdfd2luZG93cyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9jb21wb3NpdGluZ19tYW5h Z2VyIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2NvbXBvc2l0aW5nX21hbmFn ZXIgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25h bWUgPSAibWV0YV9wcmVmc19nZXRfY3Vyc29yX3NpemUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50 IHByZWZzX2dldF9jdXJzb3Jfc2l6ZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9jdXJzb3JfdGhlbWUiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgcHJlZnNfZ2V0X2N1cnNvcl90aGVtZSAo KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9 ICJtZXRhX3ByZWZzX2dldF9kaXNhYmxlX3dvcmthcm91bmRzIildCistCQlwdWJsaWMgc3RhdGlj IGJvb2wgcHJlZnNfZ2V0X2Rpc2FibGVfd29ya2Fyb3VuZHMgKCk7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfZHJh Z190aHJlc2hvbGQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IHByZWZzX2dldF9kcmFnX3RocmVz aG9sZCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBj bmFtZSA9ICJtZXRhX3ByZWZzX2dldF9kcmFnZ2FibGVfYm9yZGVyX3dpZHRoIildCistCQlwdWJs aWMgc3RhdGljIGludCBwcmVmc19nZXRfZHJhZ2dhYmxlX2JvcmRlcl93aWR0aCAoKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3By ZWZzX2dldF9keW5hbWljX3dvcmtzcGFjZXMiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVm c19nZXRfZHluYW1pY193b3Jrc3BhY2VzICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2VkZ2VfdGlsaW5nIild CistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2VkZ2VfdGlsaW5nICgpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJl ZnNfZ2V0X2ZvY3VzX2NoYW5nZV9vbl9wb2ludGVyX3Jlc3QiKV0KKy0JCXB1YmxpYyBzdGF0aWMg Ym9vbCBwcmVmc19nZXRfZm9jdXNfY2hhbmdlX29uX3BvaW50ZXJfcmVzdCAoKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZz X2dldF9mb2N1c19tb2RlIildCistCQlwdWJsaWMgc3RhdGljIEdEZXNrdG9wLkZvY3VzTW9kZSBw cmVmc19nZXRfZm9jdXNfbW9kZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9mb2N1c19uZXdfd2luZG93cyIp XQorLQkJcHVibGljIHN0YXRpYyBHRGVza3RvcC5Gb2N1c05ld1dpbmRvd3MgcHJlZnNfZ2V0X2Zv Y3VzX25ld193aW5kb3dzICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv cHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2ZvcmNlX2Z1bGxzY3JlZW4iKV0KKy0J CXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfZm9yY2VfZnVsbHNjcmVlbiAoKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3By ZWZzX2dldF9nbm9tZV9hY2Nlc3NpYmlsaXR5IildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJl ZnNfZ2V0X2dub21lX2FjY2Vzc2liaWxpdHkgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfZ25vbWVfYW5pbWF0 aW9ucyIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHByZWZzX2dldF9nbm9tZV9hbmltYXRpb25z ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1l ID0gIm1ldGFfcHJlZnNfZ2V0X2tleWJpbmRpbmdfYWN0aW9uIildCistCQlwdWJsaWMgc3RhdGlj IE1ldGEuS2V5QmluZGluZ0FjdGlvbiBwcmVmc19nZXRfa2V5YmluZGluZ19hY3Rpb24gKHN0cmlu ZyBuYW1lKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBj bmFtZSA9ICJtZXRhX3ByZWZzX2dldF9tb3VzZV9idXR0b25fbWVudSIpXQorLQkJcHVibGljIHN0 YXRpYyBpbnQgcHJlZnNfZ2V0X21vdXNlX2J1dHRvbl9tZW51ICgpOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X21v dXNlX2J1dHRvbl9tb2RzIildCistCQlwdWJsaWMgc3RhdGljIE1ldGEuVmlydHVhbE1vZGlmaWVy IHByZWZzX2dldF9tb3VzZV9idXR0b25fbW9kcyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9tb3VzZV9idXR0 b25fcmVzaXplIildCistCQlwdWJsaWMgc3RhdGljIGludCBwcmVmc19nZXRfbW91c2VfYnV0dG9u X3Jlc2l6ZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgi LCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9udW1fd29ya3NwYWNlcyIpXQorLQkJcHVibGljIHN0 YXRpYyBpbnQgcHJlZnNfZ2V0X251bV93b3Jrc3BhY2VzICgpOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X3JhaXNl X29uX2NsaWNrIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X3JhaXNlX29uX2Ns aWNrICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNu YW1lID0gIm1ldGFfcHJlZnNfZ2V0X3Nob3dfZmFsbGJhY2tfYXBwX21lbnUiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfc2hvd19mYWxsYmFja19hcHBfbWVudSAoKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3By ZWZzX2dldF90aXRsZWJhcl9mb250IildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgUGFuZ28u Rm9udERlc2NyaXB0aW9uIHByZWZzX2dldF90aXRsZWJhcl9mb250ICgpOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0 X3Zpc3VhbF9iZWxsIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X3Zpc3VhbF9i ZWxsICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNu YW1lID0gIm1ldGFfcHJlZnNfZ2V0X3Zpc3VhbF9iZWxsX3R5cGUiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgR0Rlc2t0b3AuVmlzdWFsQmVsbFR5cGUgcHJlZnNfZ2V0X3Zpc3VhbF9iZWxsX3R5cGUgKCk7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAi bWV0YV9wcmVmc19nZXRfd29ya3NwYWNlX25hbWUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25l ZCBzdHJpbmcgcHJlZnNfZ2V0X3dvcmtzcGFjZV9uYW1lIChpbnQgaSk7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRf d29ya3NwYWNlc19vbmx5X29uX3ByaW1hcnkiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVm c19nZXRfd29ya3NwYWNlc19vbmx5X29uX3ByaW1hcnkgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19pbml0IildCist CQlwdWJsaWMgc3RhdGljIHZvaWQgcHJlZnNfaW5pdCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX3NldF9mb3JjZV9m dWxsc2NyZWVuIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgcHJlZnNfc2V0X2ZvcmNlX2Z1bGxz Y3JlZW4gKGJvb2wgd2hldGhlcik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19zZXRfbnVtX3dvcmtzcGFjZXMiKV0KKy0J CXB1YmxpYyBzdGF0aWMgdm9pZCBwcmVmc19zZXRfbnVtX3dvcmtzcGFjZXMgKGludCBuX3dvcmtz cGFjZXMpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNu YW1lID0gIm1ldGFfcHJlZnNfc2V0X3Nob3dfZmFsbGJhY2tfYXBwX21lbnUiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgdm9pZCBwcmVmc19zZXRfc2hvd19mYWxsYmFja19hcHBfbWVudSAoYm9vbCB3aGV0 aGVyKTsKKy0JfQorLQluYW1lc3BhY2UgVXRpbCB7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2FkZF92ZXJib3NlX3RvcGljIildCist CQlwdWJsaWMgc3RhdGljIHZvaWQgYWRkX3ZlcmJvc2VfdG9waWMgKE1ldGEuRGVidWdUb3BpYyB0 b3BpYyk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFt ZSA9ICJtZXRhX2V4dGVybmFsX2JpbmRpbmdfbmFtZV9mb3JfYWN0aW9uIildCistCQlwdWJsaWMg c3RhdGljIHN0cmluZyBleHRlcm5hbF9iaW5kaW5nX25hbWVfZm9yX2FjdGlvbiAodWludCBrZXli aW5kaW5nX2FjdGlvbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGls LmgiLCBjbmFtZSA9ICJtZXRhX2dfdXRmOF9zdHJuZHVwIildCistCQlwdWJsaWMgc3RhdGljIHN0 cmluZyBnX3V0Zjhfc3RybmR1cCAoc3RyaW5nIHNyYywgc2l6ZV90IG4pOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9nZXRfbG9jYWxl X2RpcmVjdGlvbiIpXQorLQkJcHVibGljIHN0YXRpYyBNZXRhLkxvY2FsZURpcmVjdGlvbiBnZXRf bG9jYWxlX2RpcmVjdGlvbiAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfZ3Jhdml0eV90b19zdHJpbmciKV0KKy0JCXB1YmxpYyBz dGF0aWMgdW5vd25lZCBzdHJpbmcgZ3Jhdml0eV90b19zdHJpbmcgKGludCBncmF2aXR5KTsKKy0J CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFf aXNfZGVidWdnaW5nIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfZGVidWdnaW5nICgpOwor LQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0 YV9pc19zeW5jaW5nIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfc3luY2luZyAoKTsKKy0J CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFf aXNfdmVyYm9zZSIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGlzX3ZlcmJvc2UgKCk7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2lz X3dheWxhbmRfY29tcG9zaXRvciIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGlzX3dheWxhbmRf Y29tcG9zaXRvciAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwu aCIsIGNuYW1lID0gIm1ldGFfbGF0ZXJfYWRkIildCistCQlwdWJsaWMgc3RhdGljIHVpbnQgbGF0 ZXJfYWRkIChNZXRhLkxhdGVyVHlwZSB3aGVuLCBvd25lZCBHTGliLlNvdXJjZUZ1bmMgZnVuYyk7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJt ZXRhX2xhdGVyX3JlbW92ZSIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGxhdGVyX3JlbW92ZSAo dWludCBsYXRlcl9pZCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGls LmgiLCBjbmFtZSA9ICJtZXRhX3BvcF9ub19tc2dfcHJlZml4IildCistCQlwdWJsaWMgc3RhdGlj IHZvaWQgcG9wX25vX21zZ19wcmVmaXggKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX3B1c2hfbm9fbXNnX3ByZWZpeCIpXQorLQkJ cHVibGljIHN0YXRpYyB2b2lkIHB1c2hfbm9fbXNnX3ByZWZpeCAoKTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfcmVjdCIpXQorLQkJ cHVibGljIHN0YXRpYyBNZXRhLlJlY3RhbmdsZT8gcmVjdCAoaW50IHgsIGludCB5LCBpbnQgd2lk dGgsIGludCBoZWlnaHQpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRp bC5oIiwgY25hbWUgPSAibWV0YV9yZW1vdmVfdmVyYm9zZV90b3BpYyIpXQorLQkJcHVibGljIHN0 YXRpYyB2b2lkIHJlbW92ZV92ZXJib3NlX3RvcGljIChNZXRhLkRlYnVnVG9waWMgdG9waWMpOwor LQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0 YV9zaG93X2RpYWxvZyIpXQorLQkJcHVibGljIHN0YXRpYyBHTGliLlBpZCBzaG93X2RpYWxvZyAo c3RyaW5nIHR5cGUsIHN0cmluZyBtZXNzYWdlLCBzdHJpbmcgdGltZW91dCwgc3RyaW5nIGRpc3Bs YXksIHN0cmluZyBva190ZXh0LCBzdHJpbmcgY2FuY2VsX3RleHQsIHN0cmluZyBpY29uX25hbWUs IGludCB0cmFuc2llbnRfZm9yLCBHTGliLlNMaXN0PHZvaWQqPiBjb2x1bW5zLCBHTGliLlNMaXN0 PHZvaWQqPiBlbnRyaWVzKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0 aWwuaCIsIGNuYW1lID0gIm1ldGFfdW5zaWduZWRfbG9uZ19lcXVhbCIpXQorLQkJcHVibGljIHN0 YXRpYyBpbnQgdW5zaWduZWRfbG9uZ19lcXVhbCAodm9pZCogdjEsIHZvaWQqIHYyKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfdW5z aWduZWRfbG9uZ19oYXNoIildCistCQlwdWJsaWMgc3RhdGljIHVpbnQgdW5zaWduZWRfbG9uZ19o YXNoICh2b2lkKiB2KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwu aCIsIGNuYW1lID0gIm1ldGFfeDExX2Vycm9yX3RyYXBfcG9wIildCistCQlwdWJsaWMgc3RhdGlj IHZvaWQgeDExX2Vycm9yX3RyYXBfcG9wIChNZXRhLlgxMURpc3BsYXkgeDExX2Rpc3BsYXkpOwor LQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0 YV94MTFfZXJyb3JfdHJhcF9wb3Bfd2l0aF9yZXR1cm4iKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50 IHgxMV9lcnJvcl90cmFwX3BvcF93aXRoX3JldHVybiAoTWV0YS5YMTFEaXNwbGF5IHgxMV9kaXNw bGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1l ID0gIm1ldGFfeDExX2Vycm9yX3RyYXBfcHVzaCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHgx MV9lcnJvcl90cmFwX3B1c2ggKE1ldGEuWDExRGlzcGxheSB4MTFfZGlzcGxheSk7CistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZW5kLmgiLCB0eXBlX2lk ID0gIm1ldGFfYmFja2VuZF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3Mg QmFja2VuZCA6IEdMaWIuT2JqZWN0LCBHTGliLkluaXRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBCYWNrZW5kICgpOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZW5kLmgiLCBjbmFtZSA9 ICJtZXRhX2dldF9iYWNrZW5kIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5CYWNr ZW5kIGdldF9iYWNrZW5kICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5EbmQgZ2V0X2RuZCAo KTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuUmVtb3RlQWNjZXNzQ29udHJvbGxlciBnZXRfcmVt b3RlX2FjY2Vzc19jb250cm9sbGVyICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3Rv ciBnZXRfc3RhZ2UgKCk7CistCQlwdWJsaWMgdm9pZCBsb2NrX2xheW91dF9ncm91cCAodWludCBp ZHgpOworLQkJcHVibGljIHZvaWQgc2V0X2tleW1hcCAoc3RyaW5nIGxheW91dHMsIHN0cmluZyB2 YXJpYW50cywgc3RyaW5nIG9wdGlvbnMpOworLQkJcHVibGljIHZvaWQgc2V0X251bWxvY2sgKGJv b2wgbnVtbG9ja19zdGF0ZSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQga2V5bWFwX2NoYW5nZWQg KCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQga2V5bWFwX2xheW91dF9ncm91cF9jaGFuZ2VkICh1 aW50IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbGFzdF9kZXZpY2VfY2hhbmdlZCAo aW50IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbGlkX2lzX2Nsb3NlZF9jaGFuZ2Vk IChib29sIG9iamVjdCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWV0YS1iYWNrZ3JvdW5kLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9nZXRfdHlwZSAo KSIpXQorLQlwdWJsaWMgY2xhc3MgQmFja2dyb3VuZCA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXB1YmxpYyBCYWNrZ3JvdW5k IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlwdWJsaWMgc3RhdGljIHZvaWQgcmVmcmVzaF9h bGwgKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfYmxlbmQgKEdMaWIuRmlsZSBmaWxlMSwgR0xpYi5G aWxlIGZpbGUyLCBkb3VibGUgYmxlbmRfZmFjdG9yLCBHRGVza3RvcC5CYWNrZ3JvdW5kU3R5bGUg c3R5bGUpOworLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yIChDbHV0dGVyLkNvbG9yIGNvbG9yKTsK Ky0JCXB1YmxpYyB2b2lkIHNldF9maWxlIChHTGliLkZpbGUgZmlsZSwgR0Rlc2t0b3AuQmFja2dy b3VuZFN0eWxlIHN0eWxlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9ncmFkaWVudCAoR0Rlc2t0b3Au QmFja2dyb3VuZFNoYWRpbmcgc2hhZGluZ19kaXJlY3Rpb24sIENsdXR0ZXIuQ29sb3IgY29sb3Is IENsdXR0ZXIuQ29sb3Igc2Vjb25kX2NvbG9yKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJ cHVibGljIE1ldGEuRGlzcGxheSBtZXRhX2Rpc3BsYXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsg fQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGNoYW5nZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgiLCB0eXBlX2lkID0g Im1ldGFfYmFja2dyb3VuZF9hY3Rvcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgQmFj a2dyb3VuZEFjdG9yIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFu aW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9y KiIpXQorLQkJcHVibGljIEJhY2tncm91bmRBY3RvciAoTWV0YS5EaXNwbGF5IGRpc3BsYXksIGlu dCBtb25pdG9yKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9iYWNrZ3JvdW5kIChNZXRhLkJhY2tncm91 bmQgYmFja2dyb3VuZCk7CistCQlwdWJsaWMgdm9pZCBzZXRfZ3JhZGllbnQgKGJvb2wgZW5hYmxl ZCwgaW50IGhlaWdodCwgZG91YmxlIHRvbmVfc3RhcnQpOworLQkJcHVibGljIHZvaWQgc2V0X21v bml0b3IgKGludCBtb25pdG9yKTsKKy0JCXB1YmxpYyB2b2lkIHNldF92aWduZXR0ZSAoYm9vbCBl bmFibGVkLCBkb3VibGUgYnJpZ2h0bmVzcywgZG91YmxlIHNoYXJwbmVzcyk7CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLkJhY2tncm91bmQgYmFja2dyb3VuZCB7IG93bmVk IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBkb3VibGUgYnJp Z2h0bmVzcyB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBi b29sIGdyYWRpZW50IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVi bGljIGludCBncmFkaWVudF9oZWlnaHQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlwdWJsaWMgZG91YmxlIGdyYWRpZW50X21heF9kYXJrbmVzcyB7IGdldDsgc2V0OyB9 CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLkRpc3BsYXkgbWV0YV9kaXNw bGF5IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJ cHVibGljIGludCBtb25pdG9yIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0 aG9kXQorLQkJcHVibGljIGJvb2wgdmlnbmV0dGUgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNz b3JNZXRob2RdCistCQlwdWJsaWMgZG91YmxlIHZpZ25ldHRlX3NoYXJwbmVzcyB7IGdldDsgc2V0 OyB9CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWdyb3VwLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9ncm91cF9nZXRfdHlwZSAo KSIpXQorLQlwdWJsaWMgY2xhc3MgQmFja2dyb3VuZEdyb3VwIDogQ2x1dHRlci5BY3RvciwgQXRr LkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0 dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJcHVibGljIEJhY2tncm91bmRHcm91cCAo KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tncm91 bmQtaW1hZ2UuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2ltYWdlX2dldF90eXBlICgp IildCistCXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kSW1hZ2UgOiBHTGliLk9iamVjdCB7CistCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgQmFj a2dyb3VuZEltYWdlICgpOworLQkJcHVibGljIGJvb2wgZ2V0X3N1Y2Nlc3MgKCk7CistCQlwdWJs aWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X3RleHR1cmUgKCk7CistCQlwdWJsaWMgYm9vbCBp c19sb2FkZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbG9hZGVkICgpOworLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oIiwg dHlwZV9pZCA9ICJtZXRhX2JhY2tncm91bmRfaW1hZ2VfY2FjaGVfZ2V0X3R5cGUgKCkiKV0KKy0J cHVibGljIGNsYXNzIEJhY2tncm91bmRJbWFnZUNhY2hlIDogR0xpYi5PYmplY3QgeworLQkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIEJhY2tn cm91bmRJbWFnZUNhY2hlICgpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuQmFja2dy b3VuZEltYWdlQ2FjaGUgZ2V0X2RlZmF1bHQgKCk7CistCQlwdWJsaWMgTWV0YS5CYWNrZ3JvdW5k SW1hZ2UgbG9hZCAoR0xpYi5GaWxlIGZpbGUpOworLQkJcHVibGljIHZvaWQgcHVyZ2UgKEdMaWIu RmlsZSBmaWxlKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJy aWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9j b21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJp bmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFs b2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRh LWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQt c2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1t b25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nl c3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFj dG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIu aCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRh L21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93 LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFu YWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0 YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5k b3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhcnJpZXJfZ2V0X3R5cGUg KCkiKV0KKy0JcHVibGljIGNsYXNzIEJhcnJpZXIgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgQmFycmllciAo KTsKKy0JCXB1YmxpYyB2b2lkIGRlc3Ryb3kgKCk7CistCQlwdWJsaWMgYm9vbCBpc19hY3RpdmUg KCk7CistCQlwdWJsaWMgdm9pZCByZWxlYXNlIChNZXRhLkJhcnJpZXJFdmVudCBldmVudCk7Cist CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLkJhcnJpZXJEaXJlY3Rpb24gZGly ZWN0aW9ucyB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1 YmxpYyBNZXRhLkRpc3BsYXkgZGlzcGxheSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgeDEgeyBnZXQ7IGNvbnN0cnVjdDsgfQor LQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IHgyIHsgZ2V0OyBjb25zdHJ1Y3Q7 IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCB5MSB7IGdldDsgY29uc3Ry dWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgeTIgeyBnZXQ7IGNv bnN0cnVjdDsgfQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGhpdCAoTWV0YS5CYXJyaWVyRXZlbnQg ZXZlbnQpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGxlZnQgKE1ldGEuQmFycmllckV2ZW50IGV2 ZW50KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgi LCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hl ZF9mcmVlIiwgdHlwZV9pZCA9ICJtZXRhX2JhcnJpZXJfZXZlbnRfZ2V0X3R5cGUgKCkiKV0KKy0J W0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBCYXJyaWVyRXZlbnQgeworLQkJcHVibGljIGludCBk dDsKKy0JCXB1YmxpYyBkb3VibGUgZHg7CistCQlwdWJsaWMgZG91YmxlIGR5OworLQkJcHVibGlj IGludCBldmVudF9pZDsKKy0JCXB1YmxpYyBib29sIGdyYWJiZWQ7CistCQlwdWJsaWMgYm9vbCBy ZWxlYXNlZDsKKy0JCXB1YmxpYyB1aW50MzIgdGltZTsKKy0JCXB1YmxpYyBkb3VibGUgeDsKKy0J CXB1YmxpYyBkb3VibGUgeTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgs bWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRh L2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRh LWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9z ZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0 YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWlu aGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEv bWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90 ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFk b3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1w bGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24u aCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEt d2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3Bh Y2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3Jz LmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0 YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX2N1cnNvcl90cmFj a2VyX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBDdXJzb3JUcmFja2VyIDogR0xpYi5P YmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJ cHJvdGVjdGVkIEN1cnNvclRyYWNrZXIgKCk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0 YS5DdXJzb3JUcmFja2VyIGdldF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOwor LQkJcHVibGljIHZvaWQgZ2V0X2hvdCAob3V0IGludCB4LCBvdXQgaW50IHkpOworLQkJcHVibGlj IHZvaWQgZ2V0X3BvaW50ZXIgKGludCB4LCBpbnQgeSwgQ2x1dHRlci5Nb2RpZmllclR5cGUgbW9k cyk7CistCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X3Nwcml0ZSAoKTsKKy0JCXB1 YmxpYyB2b2lkIHNldF9wb2ludGVyX3Zpc2libGUgKGJvb2wgdmlzaWJsZSk7CistCQlwdWJsaWMg c2lnbmFsIHZvaWQgY3Vyc29yX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vy c29yX21vdmVkIChmbG9hdCBvYmplY3QsIGZsb2F0IHAwKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9kaXNwbGF5LmgiLCB0eXBlX2lkID0gIm1ldGFfZGlzcGxheV9n ZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgRGlzcGxheSA6IEdMaWIuT2JqZWN0IHsKKy0J CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBE aXNwbGF5ICgpOworLQkJcHVibGljIHZvaWQgYWRkX2lnbm9yZWRfY3Jvc3Npbmdfc2VyaWFsICh1 bG9uZyBzZXJpYWwpOworLQkJcHVibGljIHVpbnQgYWRkX2tleWJpbmRpbmcgKHN0cmluZyBuYW1l LCBHTGliLlNldHRpbmdzIHNldHRpbmdzLCBNZXRhLktleUJpbmRpbmdGbGFncyBmbGFncywgb3du ZWQgTWV0YS5LZXlIYW5kbGVyRnVuYyBoYW5kbGVyKTsKKy0JCXB1YmxpYyBib29sIGJlZ2luX2dy YWJfb3AgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5HcmFiT3Agb3AsIGJvb2wgcG9pbnRlcl9h bHJlYWR5X2dyYWJiZWQsIGJvb2wgZnJhbWVfYWN0aW9uLCBpbnQgYnV0dG9uLCB1bG9uZyBtb2Rt YXNrLCB1aW50MzIgdGltZXN0YW1wLCBpbnQgcm9vdF94LCBpbnQgcm9vdF95KTsKKy0JCXB1Ymxp YyB2b2lkIGNsZWFyX21vdXNlX21vZGUgKCk7CistCQlwdWJsaWMgdm9pZCBjbG9zZSAodWludDMy IHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBlbmRfZ3JhYl9vcCAodWludDMyIHRpbWVzdGFt cCk7CistCQlwdWJsaWMgdm9pZCBmb2N1c19kZWZhdWx0X3dpbmRvdyAodWludDMyIHRpbWVzdGFt cCk7CistCQlwdWJsaWMgdm9pZCBmcmVlemVfa2V5Ym9hcmQgKHVpbnQzMiB0aW1lc3RhbXApOwor LQkJcHVibGljIGludCBnZXRfY3VycmVudF9tb25pdG9yICgpOworLQkJcHVibGljIHVpbnQzMiBn ZXRfY3VycmVudF90aW1lICgpOworLQkJcHVibGljIHVpbnQzMiBnZXRfY3VycmVudF90aW1lX3Jv dW5kdHJpcCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGdldF9mb2N1c193aW5k b3cgKCk7CistCQlwdWJsaWMgTWV0YS5HcmFiT3AgZ2V0X2dyYWJfb3AgKCk7CistCQlwdWJsaWMg dWludCBnZXRfa2V5YmluZGluZ19hY3Rpb24gKHVpbnQga2V5Y29kZSwgdWxvbmcgbWFzayk7Cist CQlwdWJsaWMgdWludDMyIGdldF9sYXN0X3VzZXJfdGltZSAoKTsKKy0JCXB1YmxpYyBNZXRhLlJl Y3RhbmdsZSBnZXRfbW9uaXRvcl9nZW9tZXRyeSAoaW50IG1vbml0b3IpOworLQkJcHVibGljIGJv b2wgZ2V0X21vbml0b3JfaW5fZnVsbHNjcmVlbiAoaW50IG1vbml0b3IpOworLQkJcHVibGljIGlu dCBnZXRfbW9uaXRvcl9pbmRleF9mb3JfcmVjdCAoTWV0YS5SZWN0YW5nbGUgcmVjdCk7CistCQlw dWJsaWMgaW50IGdldF9tb25pdG9yX25laWdoYm9yX2luZGV4IChpbnQgd2hpY2hfbW9uaXRvciwg TWV0YS5EaXNwbGF5RGlyZWN0aW9uIGRpcik7CistCQlwdWJsaWMgaW50IGdldF9uX21vbml0b3Jz ICgpOworLQkJcHVibGljIHN0cmluZyBnZXRfcGFkX2FjdGlvbl9sYWJlbCAoQ2x1dHRlci5JbnB1 dERldmljZSBwYWQsIE1ldGEuUGFkQWN0aW9uVHlwZSBhY3Rpb25fdHlwZSwgdWludCBhY3Rpb25f bnVtYmVyKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3ByaW1hcnlfbW9uaXRvciAoKTsKKy0JCXB1Ymxp YyB2b2lkIGdldF9zaXplIChvdXQgaW50IHdpZHRoLCBvdXQgaW50IGhlaWdodCk7CistCQlwdWJs aWMgdW5vd25lZCBNZXRhLlNvdW5kUGxheWVyIGdldF9zb3VuZF9wbGF5ZXIgKCk7CistCQlwdWJs aWMgdW5vd25lZCBNZXRhLldpbmRvdyBnZXRfdGFiX2N1cnJlbnQgKE1ldGEuVGFiTGlzdCB0eXBl LCBNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UpOworLQkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIE1l dGEuV2luZG93PiBnZXRfdGFiX2xpc3QgKE1ldGEuVGFiTGlzdCB0eXBlLCBNZXRhLldvcmtzcGFj ZT8gd29ya3NwYWNlKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGdldF90YWJfbmV4 dCAoTWV0YS5UYWJMaXN0IHR5cGUsIE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSwgTWV0YS5XaW5k b3c/IHdpbmRvdywgYm9vbCBiYWNrd2FyZCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtz cGFjZU1hbmFnZXIgZ2V0X3dvcmtzcGFjZV9tYW5hZ2VyICgpOworLQkJcHVibGljIHVpbnQgZ3Jh Yl9hY2NlbGVyYXRvciAoc3RyaW5nIGFjY2VsZXJhdG9yLCBNZXRhLktleUJpbmRpbmdGbGFncyBm bGFncyk7CistCQlwdWJsaWMgYm9vbCBpc19wb2ludGVyX2VtdWxhdGluZ19zZXF1ZW5jZSAoQ2x1 dHRlci5FdmVudFNlcXVlbmNlPyBzZXF1ZW5jZSk7CistCQlwdWJsaWMgYm9vbCByZW1vdmVfa2V5 YmluZGluZyAoc3RyaW5nIG5hbWUpOworLQkJcHVibGljIHZvaWQgcmVxdWVzdF9wYWRfb3NkIChD bHV0dGVyLklucHV0RGV2aWNlIHBhZCwgYm9vbCBlZGl0aW9uX21vZGUpOworLQkJcHVibGljIHZv aWQgc2V0X2N1cnNvciAoTWV0YS5DdXJzb3IgY3Vyc29yKTsKKy0JCXB1YmxpYyBHTGliLlNMaXN0 PHdlYWsgTWV0YS5XaW5kb3c+IHNvcnRfd2luZG93c19ieV9zdGFja2luZyAoR0xpYi5TTGlzdDxN ZXRhLldpbmRvdz4gd2luZG93cyk7CistCQlwdWJsaWMgYm9vbCBzdXBwb3J0c19leHRlbmRlZF9i YXJyaWVycyAoKTsKKy0JCXB1YmxpYyB2b2lkIHVuZnJlZXplX2tleWJvYXJkICh1aW50MzIgdGlt ZXN0YW1wKTsKKy0JCXB1YmxpYyBib29sIHVuZ3JhYl9hY2NlbGVyYXRvciAodWludCBhY3Rpb25f aWQpOworLQkJcHVibGljIHZvaWQgdW5ncmFiX2tleWJvYXJkICh1aW50MzIgdGltZXN0YW1wKTsK Ky0JCXB1YmxpYyBib29sIHhzZXJ2ZXJfdGltZV9pc19iZWZvcmUgKHVpbnQzMiB0aW1lMSwgdWlu dDMyIHRpbWUyKTsKKy0JCXB1YmxpYyBNZXRhLldpbmRvdyBmb2N1c193aW5kb3cgeyBnZXQ7IH0K Ky0JCXB1YmxpYyBzaWduYWwgdm9pZCBhY2NlbGVyYXRvcl9hY3RpdmF0ZWQgKHVpbnQgb2JqZWN0 LCB1aW50IHAwLCB1aW50IHAxKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfdXBkYXRl ZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBnbF92aWRlb19tZW1vcnlfcHVyZ2VkICgpOwor LQkJcHVibGljIHNpZ25hbCB2b2lkIGdyYWJfb3BfYmVnaW4gKE1ldGEuRGlzcGxheSBvYmplY3Qs IE1ldGEuV2luZG93IHAwLCBNZXRhLkdyYWJPcCBwMSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQg Z3JhYl9vcF9lbmQgKE1ldGEuRGlzcGxheSBvYmplY3QsIE1ldGEuV2luZG93IHAwLCBNZXRhLkdy YWJPcCBwMSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgaW5fZnVsbHNjcmVlbl9jaGFuZ2VkICgp OworLQkJcHVibGljIHNpZ25hbCBib29sIG1vZGlmaWVyc19hY2NlbGVyYXRvcl9hY3RpdmF0ZWQg KCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgb3ZlcmxheV9rZXkgKCk7CistCQlwdWJsaWMgc2ln bmFsIHZvaWQgcGFkX21vZGVfc3dpdGNoIChDbHV0dGVyLklucHV0RGV2aWNlIG9iamVjdCwgdWlu dCBwMCwgdWludCBwMSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcmVzdGFja2VkICgpOworLQkJ cHVibGljIHNpZ25hbCBib29sIHJlc3RhcnQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2hv d19vc2QgKGludCBvYmplY3QsIHN0cmluZyBwMCwgc3RyaW5nIHAxKTsKKy0JCXB1YmxpYyBzaWdu YWwgdW5vd25lZCBDbHV0dGVyLkFjdG9yPyBzaG93X3BhZF9vc2QgKENsdXR0ZXIuSW5wdXREZXZp Y2UgcGFkLCBHTGliLlNldHRpbmdzIHNldHRpbmdzLCBzdHJpbmcgbGF5b3V0X3BhdGgsIGJvb2wg ZWRpdGlvbl9tb2RlLCBpbnQgbW9uaXRvcl9pZHgpOworLQkJcHVibGljIHNpZ25hbCBib29sIHNo b3dfcmVzaXplX3BvcHVwIChib29sIG9iamVjdCwgTWV0YS5SZWN0YW5nbGUgcDAsIGludCBwMSwg aW50IHAyKTsKKy0JCXB1YmxpYyBzaWduYWwgYm9vbCBzaG93X3Jlc3RhcnRfbWVzc2FnZSAoc3Ry aW5nPyBtZXNzYWdlKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBzaG93aW5nX2Rlc2t0b3BfY2hh bmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfY3JlYXRlZCAoTWV0YS5XaW5k b3cgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfZGVtYW5kc19hdHRlbnRp b24gKE1ldGEuV2luZG93IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X2Vu dGVyZWRfbW9uaXRvciAoaW50IG9iamVjdCwgTWV0YS5XaW5kb3cgcDApOworLQkJcHVibGljIHNp Z25hbCB2b2lkIHdpbmRvd19sZWZ0X21vbml0b3IgKGludCBvYmplY3QsIE1ldGEuV2luZG93IHAw KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfbWFya2VkX3VyZ2VudCAoTWV0YS5XaW5k b3cgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3b3JrYXJlYXNfY2hhbmdlZCAoKTsK Ky0JCXB1YmxpYyBzaWduYWwgdm9pZCB4MTFfZGlzcGxheV9jbG9zaW5nICgpOworLQkJcHVibGlj IHNpZ25hbCB2b2lkIHgxMV9kaXNwbGF5X29wZW5lZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgs bWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5o LG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJh Y2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFn ZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxt ZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25p dG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVu Y2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2lu LmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5n cy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5o LG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3Rh cnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ct YWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5o LG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1l dGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVz LmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9 ICJtZXRhX2RuZF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgRG5kIDogR0xpYi5PYmpl Y3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJv dGVjdGVkIERuZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBkbmRfZW50ZXIgKCk7CistCQlw dWJsaWMgc2lnbmFsIHZvaWQgZG5kX2xlYXZlICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGRu ZF9wb3NpdGlvbl9jaGFuZ2UgKGludCBvYmplY3QsIGludCBwMCk7CistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1v bi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3Bs YXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0 YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt aW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2Vy LmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUt bW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEt bGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBs dWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0 dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1 cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRh LXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2lu ZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hh cGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXku aCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90 eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGhhc190 eXBlX2lkID0gZmFsc2UpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIEZyYW1lIHsKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hl cy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRl ci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9t YWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEt Y3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxt ZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxv Zy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIu aCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5o LG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0 YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3Rh Z2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5o LG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9t ZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0 YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEv dGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtz cGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX2lkbGVfbW9uaXRvcl9nZXRfdHlwZSAoKSIpXQorLQlw dWJsaWMgY2xhc3MgSWRsZU1vbml0b3IgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgSWRsZU1vbml0b3IgKCk7 CistCQlwdWJsaWMgdWludCBhZGRfaWRsZV93YXRjaCAodWludDY0IGludGVydmFsX21zZWMsIG93 bmVkIE1ldGEuSWRsZU1vbml0b3JXYXRjaEZ1bmM/IGNhbGxiYWNrKTsKKy0JCXB1YmxpYyB1aW50 IGFkZF91c2VyX2FjdGl2ZV93YXRjaCAob3duZWQgTWV0YS5JZGxlTW9uaXRvcldhdGNoRnVuYz8g Y2FsbGJhY2spOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuSWRsZU1vbml0b3IgZ2V0 X2NvcmUgKCk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5JZGxlTW9uaXRvciBnZXRf Zm9yX2RldmljZSAoaW50IGRldmljZV9pZCk7CistCQlwdWJsaWMgaW50NjQgZ2V0X2lkbGV0aW1l ICgpOworLQkJcHVibGljIHZvaWQgcmVtb3ZlX3dhdGNoICh1aW50IGlkKTsKKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJcHVibGljIGludCBkZXZpY2VfaWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2Jv eGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0 dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRh L21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0 YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5o LG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlh bG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdl ci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVy LmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9t ZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1z dGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9u LmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRh L21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0 YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29y a3NwYWNlLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24g PSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5nX2dldF90eXBlICgp IildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgS2V5QmluZGluZyB7CistCQlwdWJsaWMg dWludCBnZXRfbWFzayAoKTsKKy0JCXB1YmxpYyBNZXRhLlZpcnR1YWxNb2RpZmllciBnZXRfbW9k aWZpZXJzICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9uYW1lICgpOworLQkJcHVi bGljIGJvb2wgaXNfYnVpbHRpbiAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3JldmVyc2VkICgpOwor LQkJW0NDb2RlIChjbmFtZSA9ICJtZXRhX2tleWJpbmRpbmdzX3NldF9jdXN0b21faGFuZGxlciIp XQorLQkJcHVibGljIHN0YXRpYyBib29sIHNldF9jdXN0b21faGFuZGxlciAoc3RyaW5nIG5hbWUs IG93bmVkIE1ldGEuS2V5SGFuZGxlckZ1bmM/IGhhbmRsZXIpOworLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24u aCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5 LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEt YmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWlt YWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5o LG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1v bml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxh dW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVn aW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRp bmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJl LmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1z dGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRv dy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBl LmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5Lmgs bWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlw ZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lk ID0gIm1ldGFfbGF1bmNoX2NvbnRleHRfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIExh dW5jaENvbnRleHQgOiBHTGliLkFwcExhdW5jaENvbnRleHQgeworLQkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIExhdW5jaENvbnRleHQgKCk7 CistCQlwdWJsaWMgdm9pZCBzZXRfdGltZXN0YW1wICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1 YmxpYyB2b2lkIHNldF93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSk7CistCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLkRpc3BsYXkgZGlzcGxheSB7IG93bmVk IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB1aW50 IHRpbWVzdGFtcCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1Ymxp YyBNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UgeyBvd25lZCBnZXQ7IHNldDsgfQorLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgiLCB0 eXBlX2lkID0gIm1ldGFfbW9uaXRvcl9tYW5hZ2VyX2dldF90eXBlICgpIildCistCXB1YmxpYyBj bGFzcyBNb25pdG9yTWFuYWdlciA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBNb25pdG9yTWFuYWdlciAoKTsK Ky0JCXB1YmxpYyBib29sIGNhbl9zd2l0Y2hfY29uZmlnICgpOworLQkJcHVibGljIHN0YXRpYyB1 bm93bmVkIE1ldGEuTW9uaXRvck1hbmFnZXIgQGdldCAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgaW50 IGdldF9kaXNwbGF5X2NvbmZpZ3VyYXRpb25fdGltZW91dCAoKTsKKy0JCXB1YmxpYyBib29sIGdl dF9pc19idWlsdGluX2Rpc3BsYXlfb24gKCk7CistCQlwdWJsaWMgaW50IGdldF9tb25pdG9yX2Zv cl9jb25uZWN0b3IgKHN0cmluZyBjb25uZWN0b3IpOworLQkJcHVibGljIE1ldGEuTW9uaXRvclN3 aXRjaENvbmZpZ1R5cGUgZ2V0X3N3aXRjaF9jb25maWcgKCk7CistCQlwdWJsaWMgdm9pZCBzd2l0 Y2hfY29uZmlnIChNZXRhLk1vbml0b3JTd2l0Y2hDb25maWdUeXBlIGNvbmZpZ190eXBlKTsKKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuQmFja2VuZCBiYWNrZW5kIHsgb3du ZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBjb25maXJtX2Rpc3Bs YXlfY2hhbmdlICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIG1vbml0b3JzX2NoYW5nZWQgKCk7 CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbW9uaXRvcnNfY2hhbmdlZF9pbnRlcm5hbCAoKTsKKy0J CXB1YmxpYyBzaWduYWwgdm9pZCBwb3dlcl9zYXZlX21vZGVfY2hhbmdlZCAoKTsKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXBsdWdpbi5oIiwgdHlwZV9pZCA9 ICJtZXRhX3BsdWdpbl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgUGx1 Z2luIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UpXQorLQkJcHJvdGVjdGVkIFBsdWdpbiAoKTsKKy0JCXB1YmxpYyBib29sIGJlZ2luX21v ZGFsIChNZXRhLk1vZGFsT3B0aW9ucyBvcHRpb25zLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1 YmxpYyB2b2lkIGNvbXBsZXRlX2Rpc3BsYXlfY2hhbmdlIChib29sIG9rKTsKKy0JCVtOb1dyYXBw ZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGNvbmZpcm1fZGlzcGxheV9jaGFuZ2UgKCk7Cist CQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBkZXN0cm95IChNZXRhLldpbmRv d0FjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIGRlc3Ryb3lfY29tcGxldGVkIChNZXRhLldp bmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIGVuZF9tb2RhbCAodWludDMyIHRpbWVz dGFtcCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLkRpc3BsYXkgZ2V0X2Rpc3BsYXkgKCk7Cist CQlwdWJsaWMgdW5vd25lZCBNZXRhLlBsdWdpbkluZm8/IGdldF9pbmZvICgpOworLQkJW05vV3Jh cHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgaGlkZV90aWxlX3ByZXZpZXcgKCk7CistCQlb Tm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgYm9vbCBrZXliaW5kaW5nX2ZpbHRlciAoTWV0 YS5LZXlCaW5kaW5nIGJpbmRpbmcpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFs IHZvaWQga2lsbF9zd2l0Y2hfd29ya3NwYWNlICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1Ymxp YyB2aXJ0dWFsIHZvaWQga2lsbF93aW5kb3dfZWZmZWN0cyAoTWV0YS5XaW5kb3dBY3RvciBhY3Rv cik7CistCQlwdWJsaWMgc3RhdGljIHZvaWQgbWFuYWdlcl9zZXRfcGx1Z2luX3R5cGUgKEdMaWIu VHlwZSBndHlwZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBtYXAg KE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJcHVibGljIHZvaWQgbWFwX2NvbXBsZXRlZCAo TWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1 YWwgdm9pZCBtaW5pbWl6ZSAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlwdWJsaWMgdm9p ZCBtaW5pbWl6ZV9jb21wbGV0ZWQgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJW05vV3Jh cHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgTWV0YS5QbHVnaW5JbmZvPyBwbHVnaW5f aW5mbyAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNob3dfdGls ZV9wcmV2aWV3IChNZXRhLldpbmRvdyB3aW5kb3csIE1ldGEuUmVjdGFuZ2xlIHRpbGVfcmVjdCwg aW50IHRpbGVfbW9uaXRvcl9udW1iZXIpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0 dWFsIHZvaWQgc2hvd193aW5kb3dfbWVudSAoTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLldpbmRv d01lbnVUeXBlIG1lbnUsIGludCB4LCBpbnQgeSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGlj IHZpcnR1YWwgdm9pZCBzaG93X3dpbmRvd19tZW51X2Zvcl9yZWN0IChNZXRhLldpbmRvdyB3aW5k b3csIE1ldGEuV2luZG93TWVudVR5cGUgbWVudSwgTWV0YS5SZWN0YW5nbGUgcmVjdCk7CistCQlb Tm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzaXplX2NoYW5nZSAoTWV0YS5XaW5k b3dBY3RvciBhY3RvciwgTWV0YS5TaXplQ2hhbmdlIHdoaWNoX2NoYW5nZSwgTWV0YS5SZWN0YW5n bGUgb2xkX2ZyYW1lX3JlY3QsIE1ldGEuUmVjdGFuZ2xlIG9sZF9idWZmZXJfcmVjdCk7CistCQlw dWJsaWMgdm9pZCBzaXplX2NoYW5nZV9jb21wbGV0ZWQgKE1ldGEuV2luZG93QWN0b3IgYWN0b3Ip OworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2l6ZV9jaGFuZ2VkIChN ZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVh bCB2b2lkIHN0YXJ0ICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQg c3dpdGNoX3dvcmtzcGFjZSAoaW50IGZyb20sIGludCB0bywgTWV0YS5Nb3Rpb25EaXJlY3Rpb24g ZGlyZWN0aW9uKTsKKy0JCXB1YmxpYyB2b2lkIHN3aXRjaF93b3Jrc3BhY2VfY29tcGxldGVkICgp OworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgdW5taW5pbWl6ZSAoTWV0 YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCB1bm1pbmltaXplX2NvbXBsZXRl ZCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZp cnR1YWwgYm9vbCB4ZXZlbnRfZmlsdGVyIChYLkV2ZW50IGV2ZW50KTsKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29t bW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlz cGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9t ZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNr ZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRs ZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0 YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEt cGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1z ZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4 dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21l dGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13 aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1z aGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxh eS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRh L3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlw ZV9pZCA9ICJtZXRhX3JlbW90ZV9hY2Nlc3NfY29udHJvbGxlcl9nZXRfdHlwZSAoKSIpXQorLQlw dWJsaWMgY2xhc3MgUmVtb3RlQWNjZXNzQ29udHJvbGxlciA6IEdMaWIuT2JqZWN0IHsKKy0JCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBSZW1v dGVBY2Nlc3NDb250cm9sbGVyICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIG5ld19oYW5kbGUg KE1ldGEuUmVtb3RlQWNjZXNzSGFuZGxlIG9iamVjdCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1l dGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxt ZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNr ZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1n cm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2Uu aCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0 YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRv ci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNo LWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5o LG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3Mu aCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxt ZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0 dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFj dG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxt ZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRh L21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5o LG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAi bWV0YV9yZW1vdGVfYWNjZXNzX2hhbmRsZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3Mg UmVtb3RlQWNjZXNzSGFuZGxlIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFJlbW90ZUFjY2Vzc0hhbmRsZSAo KTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc3RvcCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9p ZCBzdG9wcGVkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Jh cnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5 YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRp YWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21l dGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJp dC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRh LW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFj Y2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1m YWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXll ci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1l dGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5k b3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1t YW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxt ZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dp bmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0NvbXBh Y3RdCistCXB1YmxpYyBjbGFzcyBTZXR0aW5ncyB7CistCQlwdWJsaWMgaW50IGdldF9mb250X2Rw aSAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3VpX3NjYWxpbmdfZmFjdG9yICgpOworLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0 YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0 YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxt ZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3It dHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0 YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0 YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEv bWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9t ZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBl ZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1l dGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9t ZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2lu ZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1k aXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5o LG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgi LCByZWZfZnVuY3Rpb24gPSAibWV0YV9zaGFkb3dfcmVmIiwgdHlwZV9pZCA9ICJtZXRhX3NoYWRv d19nZXRfdHlwZSAoKSIsIHVucmVmX2Z1bmN0aW9uID0gIm1ldGFfc2hhZG93X3VucmVmIildCist CVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgU2hhZG93IHsKKy0JCXB1YmxpYyB2b2lkIGdldF9i b3VuZHMgKGludCB3aW5kb3dfeCwgaW50IHdpbmRvd195LCBpbnQgd2luZG93X3dpZHRoLCBpbnQg d2luZG93X2hlaWdodCwgQ2Fpcm8uUmVjdGFuZ2xlSW50IGJvdW5kcyk7CistCQlwdWJsaWMgdm9p ZCBwYWludCAoQ29nbC5GcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlciwgaW50IHdpbmRvd194LCBpbnQg d2luZG93X3ksIGludCB3aW5kb3dfd2lkdGgsIGludCB3aW5kb3dfaGVpZ2h0LCB1aW50OCBvcGFj aXR5LCBDYWlyby5SZWdpb24/IGNsaXAsIGJvb2wgY2xpcF9zdHJpY3RseSk7CistCQlwdWJsaWMg TWV0YS5TaGFkb3cgQHJlZiAoKTsKKy0JCXB1YmxpYyB2b2lkIHVucmVmICgpOworLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0 YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0 YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxt ZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3It dHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0 YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0 YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEv bWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9t ZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBl ZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1l dGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9t ZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2lu ZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1k aXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5o LG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgi LCB0eXBlX2lkID0gIm1ldGFfc2hhZG93X2ZhY3RvcnlfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGlj IGNsYXNzIFNoYWRvd0ZhY3RvcnkgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwdWJsaWMgU2hhZG93RmFjdG9yeSAoKTsKKy0J CXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLlNoYWRvd0ZhY3RvcnkgZ2V0X2RlZmF1bHQgKCk7 CistCQlwdWJsaWMgTWV0YS5TaGFkb3dQYXJhbXMgZ2V0X3BhcmFtcyAoc3RyaW5nIGNsYXNzX25h bWUsIGJvb2wgZm9jdXNlZCk7CistCQlwdWJsaWMgTWV0YS5TaGFkb3cgZ2V0X3NoYWRvdyAoTWV0 YS5XaW5kb3dTaGFwZSBzaGFwZSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBzdHJpbmcgY2xhc3Nf bmFtZSwgYm9vbCBmb2N1c2VkKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9wYXJhbXMgKHN0cmluZyBj bGFzc19uYW1lLCBib29sIGZvY3VzZWQsIE1ldGEuU2hhZG93UGFyYW1zIEBwYXJhbXMpOworLQkJ cHVibGljIHNpZ25hbCB2b2lkIGNoYW5nZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEv Y29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRh L2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91 cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxt ZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9t ZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5o LG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNv bnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1l dGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxt ZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRh L21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAt bm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9y LmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRh L21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21l dGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1l dGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0 YV9zaGFwZWRfdGV4dHVyZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgU2hhcGVkVGV4 dHVyZSA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxl LCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBTaGFwZWRUZXh0dXJl ICgpOworLQkJcHVibGljIENhaXJvLlN1cmZhY2UgZ2V0X2ltYWdlIChDYWlyby5SZWN0YW5nbGVJ bnQgY2xpcCk7CistCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X3RleHR1cmUgKCk7 CistCQlwdWJsaWMgdm9pZCBzZXRfY3JlYXRlX21pcG1hcHMgKGJvb2wgY3JlYXRlX21pcG1hcHMp OworLQkJcHVibGljIHZvaWQgc2V0X21hc2tfdGV4dHVyZSAoQ29nbC5UZXh0dXJlIG1hc2tfdGV4 dHVyZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfb3BhcXVlX3JlZ2lvbiAob3duZWQgQ2Fpcm8uUmVn aW9uIG9wYXF1ZV9yZWdpb24pOworLQkJcHVibGljIGJvb2wgdXBkYXRlX2FyZWEgKGludCB4LCBp bnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBzaXpl X2NoYW5nZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFy cmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEv Y29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXli aW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlh bG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0 YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0 LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEt bW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNj ZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZh Y3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVy LmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0 YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRv dy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1h bmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1l dGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2lu ZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV9zb3VuZF9wbGF5ZXJfZ2V0 X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFNvdW5kUGxheWVyIDogR0xpYi5PYmplY3Qgewor LQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVk IFNvdW5kUGxheWVyICgpOworLQkJcHVibGljIHZvaWQgcGxheV9mcm9tX2ZpbGUgKEdMaWIuRmls ZSBmaWxlLCBzdHJpbmcgZGVzY3JpcHRpb24sIEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxl ID0gbnVsbCk7CistCQlwdWJsaWMgdm9pZCBwbGF5X2Zyb21fdGhlbWUgKHN0cmluZyBuYW1lLCBz dHJpbmcgZGVzY3JpcHRpb24sIEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlID0gbnVsbCk7 CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEv Ym94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1t dXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1l dGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3Iu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9t ZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVz LmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1k aWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5h Z2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xs ZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRh L21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRh LXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNp b24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1l dGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRh L21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxt ZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93 b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV9zdGFnZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJs aWMgY2xhc3MgU3RhZ2UgOiBDbHV0dGVyLlN0YWdlLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIu QW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgU3Rh Z2UgKCk7CistCQlwdWJsaWMgc3RhdGljIGJvb2wgaXNfZm9jdXNlZCAoTWV0YS5EaXNwbGF5IGRp c3BsYXkpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGFjdG9yc19wYWludGVkICgpOworLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgs bWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgs bWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4u aCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJz b3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEv bWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgs bWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1l dGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0 YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNo YXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5o LG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0 YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEt d2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgx MS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVt ZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNl LmgiLCB0eXBlX2lkID0gIm1ldGFfc3RhcnR1cF9ub3RpZmljYXRpb25fZ2V0X3R5cGUgKCkiKV0K Ky0JcHVibGljIGNsYXNzIFN0YXJ0dXBOb3RpZmljYXRpb24gOiBHTGliLk9iamVjdCB7CistCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgU3Rh cnR1cE5vdGlmaWNhdGlvbiAoKTsKKy0JCXB1YmxpYyBNZXRhLkxhdW5jaENvbnRleHQgY3JlYXRl X2xhdW5jaGVyICgpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5EaXNw bGF5IGRpc3BsYXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIHNpZ25hbCB2 b2lkIGNoYW5nZWQgKHZvaWQqIG9iamVjdCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29t cG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dy b3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRh L21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRh LWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1l dGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRl eHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEv bWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRh L21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21l dGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90 aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgs bWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21l dGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEt eDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEv dXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV9z dGFydHVwX3NlcXVlbmNlX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBTdGFydHVwU2Vx dWVuY2UgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24g PSBmYWxzZSldCistCQlwcm90ZWN0ZWQgU3RhcnR1cFNlcXVlbmNlICgpOworLQkJcHVibGljIHZv aWQgY29tcGxldGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2FwcGxpY2F0aW9u X2lkICgpOworLQkJcHVibGljIGJvb2wgZ2V0X2NvbXBsZXRlZCAoKTsKKy0JCXB1YmxpYyB1bm93 bmVkIHN0cmluZyBnZXRfaWNvbl9uYW1lICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdl dF9pZCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfbmFtZSAoKTsKKy0JCXB1Ymxp YyB1aW50NjQgZ2V0X3RpbWVzdGFtcCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRf d21jbGFzcyAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3dvcmtzcGFjZSAoKTsKKy0JCXB1YmxpYyBz dHJpbmcgYXBwbGljYXRpb25faWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIHN0cmlu ZyBpY29uX25hbWUgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIHN0cmluZyBpZCB7IGdl dDsgY29uc3RydWN0OyB9CistCQlwdWJsaWMgc3RyaW5nIG5hbWUgeyBnZXQ7IGNvbnN0cnVjdDsg fQorLQkJcHVibGljIHVpbnQ2NCB0aW1lc3RhbXAgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVi bGljIHN0cmluZyB3bWNsYXNzIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBpbnQgd29y a3NwYWNlIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21w b3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3Jv dXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgs bWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEv bWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEt ZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0 YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4 dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9t ZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEv bWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0 YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3Rp ZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxt ZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0 YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14 MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91 dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgaGFzX3R5cGVfaWQgPSBmYWxz ZSldCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgVGhlbWUgeworLQkJcHVibGljIHZvaWQg ZnJlZSAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVy LmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21w b3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRp bmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cu aCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVu dW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hv cnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25p dG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3Mt Y29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9y eS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxt ZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21l dGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdy b3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdl ci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9w cmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cu aCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19nZXRfdHlwZSAoKSIp XQorLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgV2luZG93IDogR0xpYi5PYmplY3QgeworLQkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFdpbmRv dyAoKTsKKy0JCXB1YmxpYyB2b2lkIGFjdGl2YXRlICh1aW50MzIgY3VycmVudF90aW1lKTsKKy0J CXB1YmxpYyB2b2lkIGFjdGl2YXRlX3dpdGhfd29ya3NwYWNlICh1aW50MzIgY3VycmVudF90aW1l LCBNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UpOworLQkJcHVibGljIGJvb2wgYWxsb3dzX21vdmUg KCk7CistCQlwdWJsaWMgYm9vbCBhbGxvd3NfcmVzaXplICgpOworLQkJcHVibGljIHZvaWQgYmVn aW5fZ3JhYl9vcCAoTWV0YS5HcmFiT3Agb3AsIGJvb2wgZnJhbWVfYWN0aW9uLCB1aW50MzIgdGlt ZXN0YW1wKTsKKy0JCXB1YmxpYyBib29sIGNhbl9jbG9zZSAoKTsKKy0JCXB1YmxpYyBib29sIGNh bl9tYXhpbWl6ZSAoKTsKKy0JCXB1YmxpYyBib29sIGNhbl9taW5pbWl6ZSAoKTsKKy0JCXB1Ymxp YyBib29sIGNhbl9zaGFkZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGNoYW5nZV93b3Jrc3BhY2UgKE1l dGEuV29ya3NwYWNlIHdvcmtzcGFjZSk7CistCQlwdWJsaWMgdm9pZCBjaGFuZ2Vfd29ya3NwYWNl X2J5X2luZGV4IChpbnQgc3BhY2VfaW5kZXgsIGJvb2wgYXBwZW5kKTsKKy0JCXB1YmxpYyB2b2lk IGNoZWNrX2FsaXZlICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3Rhbmds ZSBjbGllbnRfcmVjdF90b19mcmFtZV9yZWN0IChNZXRhLlJlY3RhbmdsZSBjbGllbnRfcmVjdCk7 CistCQlwdWJsaWMgdm9pZCBjb21wdXRlX2dyb3VwICgpOworLQkJcHVibGljIHZvaWQgQGRlbGV0 ZSAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBmaW5k X3Jvb3RfYW5jZXN0b3IgKCk7CistCQlwdWJsaWMgdm9pZCBmb2N1cyAodWludDMyIHRpbWVzdGFt cCk7CistCQlwdWJsaWMgdm9pZCBmb3JlYWNoX2FuY2VzdG9yIChNZXRhLldpbmRvd0ZvcmVhY2hG dW5jIGZ1bmMpOworLQkJcHVibGljIHZvaWQgZm9yZWFjaF90cmFuc2llbnQgKE1ldGEuV2luZG93 Rm9yZWFjaEZ1bmMgZnVuYyk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZnJhbWVfcmVjdF90 b19jbGllbnRfcmVjdCAoTWV0YS5SZWN0YW5nbGUgZnJhbWVfcmVjdCk7CistCQlwdWJsaWMgTWV0 YS5SZWN0YW5nbGUgZ2V0X2J1ZmZlcl9yZWN0ICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5n IGdldF9jbGllbnRfbWFjaGluZSAoKTsKKy0JCXB1YmxpYyBNZXRhLldpbmRvd0NsaWVudFR5cGUg Z2V0X2NsaWVudF90eXBlICgpOworLQkJcHVibGljIHVub3duZWQgR0xpYi5PYmplY3QgZ2V0X2Nv bXBvc2l0b3JfcHJpdmF0ZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZGVzY3Jp cHRpb24gKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLkRpc3BsYXkgZ2V0X2Rpc3BsYXkgKCk7 CistCQlwdWJsaWMgdW5vd25lZCBDYWlyby5SZWdpb24/IGdldF9mcmFtZV9ib3VuZHMgKCk7Cist CQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X2ZyYW1lX3JlY3QgKCk7CistCQlwdWJsaWMgTWV0 YS5GcmFtZVR5cGUgZ2V0X2ZyYW1lX3R5cGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcg Z2V0X2d0a19hcHBfbWVudV9vYmplY3RfcGF0aCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmlu ZyBnZXRfZ3RrX2FwcGxpY2F0aW9uX2lkICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdl dF9ndGtfYXBwbGljYXRpb25fb2JqZWN0X3BhdGggKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJp bmcgZ2V0X2d0a19tZW51YmFyX29iamVjdF9wYXRoICgpOworLQkJcHVibGljIHVub3duZWQgc3Ry aW5nIGdldF9ndGtfdGhlbWVfdmFyaWFudCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBn ZXRfZ3RrX3VuaXF1ZV9idXNfbmFtZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRf Z3RrX3dpbmRvd19vYmplY3RfcGF0aCAoKTsKKy0JCXB1YmxpYyBib29sIGdldF9pY29uX2dlb21l dHJ5IChvdXQgTWV0YS5SZWN0YW5nbGUgcmVjdCk7CistCQlwdWJsaWMgdWludDY0IGdldF9pZCAo KTsKKy0JCXB1YmxpYyBNZXRhLlN0YWNrTGF5ZXIgZ2V0X2xheWVyICgpOworLQkJcHVibGljIE1l dGEuTWF4aW1pemVGbGFncyBnZXRfbWF4aW1pemVkICgpOworLQkJcHVibGljIGludCBnZXRfbW9u aXRvciAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfbXV0dGVyX2hpbnRzICgpOwor LQkJcHVibGljIGludCBnZXRfcGlkICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9y b2xlICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9zYW5kYm94ZWRfYXBwX2lkICgp OworLQkJcHVibGljIHVpbnQgZ2V0X3N0YWJsZV9zZXF1ZW5jZSAoKTsKKy0JCXB1YmxpYyB1bm93 bmVkIHN0cmluZyBnZXRfc3RhcnR1cF9pZCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2lu ZG93PyBnZXRfdGlsZV9tYXRjaCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfdGl0 bGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBnZXRfdHJhbnNpZW50X2ZvciAo KTsKKy0JCXB1YmxpYyB1aW50MzIgZ2V0X3VzZXJfdGltZSAoKTsKKy0JCXB1YmxpYyBNZXRhLldp bmRvd1R5cGUgZ2V0X3dpbmRvd190eXBlICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdl dF93bV9jbGFzcyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfd21fY2xhc3NfaW5z dGFuY2UgKCk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9hbGxfbW9u aXRvcnMgKCk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9jdXJyZW50 X21vbml0b3IgKCk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9mb3Jf bW9uaXRvciAoaW50IHdoaWNoX21vbml0b3IpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jr c3BhY2UgZ2V0X3dvcmtzcGFjZSAoKTsKKy0JCXB1YmxpYyBYLldpbmRvdyBnZXRfeHdpbmRvdyAo KTsKKy0JCXB1YmxpYyB2b2lkIGdyb3VwX2xlYWRlcl9jaGFuZ2VkICgpOworLQkJcHVibGljIGJv b2wgaGFzX2ZvY3VzICgpOworLQkJcHVibGljIGJvb2wgaXNfYWJvdmUgKCk7CistCQlwdWJsaWMg Ym9vbCBpc19hbHdheXNfb25fYWxsX3dvcmtzcGFjZXMgKCk7CistCQlwdWJsaWMgYm9vbCBpc19h bmNlc3Rvcl9vZl90cmFuc2llbnQgKE1ldGEuV2luZG93IHRyYW5zaWVudCk7CistCQlwdWJsaWMg Ym9vbCBpc19hdHRhY2hlZF9kaWFsb2cgKCk7CistCQlwdWJsaWMgYm9vbCBpc19jbGllbnRfZGVj b3JhdGVkICgpOworLQkJcHVibGljIGJvb2wgaXNfZnVsbHNjcmVlbiAoKTsKKy0JCXB1YmxpYyBi b29sIGlzX2hpZGRlbiAoKTsKKy0JCXB1YmxpYyBib29sIGlzX21vbml0b3Jfc2l6ZWQgKCk7Cist CQlwdWJsaWMgYm9vbCBpc19vbl9hbGxfd29ya3NwYWNlcyAoKTsKKy0JCXB1YmxpYyBib29sIGlz X29uX3ByaW1hcnlfbW9uaXRvciAoKTsKKy0JCXB1YmxpYyBib29sIGlzX292ZXJyaWRlX3JlZGly ZWN0ICgpOworLQkJcHVibGljIGJvb2wgaXNfcmVtb3RlICgpOworLQkJcHVibGljIGJvb2wgaXNf c2NyZWVuX3NpemVkICgpOworLQkJcHVibGljIGJvb2wgaXNfc2hhZGVkICgpOworLQkJcHVibGlj IGJvb2wgaXNfc2tpcF90YXNrYmFyICgpOworLQkJcHVibGljIHZvaWQga2lsbCAoKTsKKy0JCXB1 YmxpYyBib29sIGxvY2F0ZWRfb25fd29ya3NwYWNlIChNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2Up OworLQkJcHVibGljIHZvaWQgbG93ZXIgKCk7CistCQlwdWJsaWMgdm9pZCBtYWtlX2Fib3ZlICgp OworLQkJcHVibGljIHZvaWQgbWFrZV9mdWxsc2NyZWVuICgpOworLQkJcHVibGljIHZvaWQgbWF4 aW1pemUgKE1ldGEuTWF4aW1pemVGbGFncyBkaXJlY3Rpb25zKTsKKy0JCXB1YmxpYyB2b2lkIG1p bmltaXplICgpOworLQkJcHVibGljIHZvaWQgbW92ZV9mcmFtZSAoYm9vbCB1c2VyX29wLCBpbnQg cm9vdF94X253LCBpbnQgcm9vdF95X253KTsKKy0JCXB1YmxpYyB2b2lkIG1vdmVfcmVzaXplX2Zy YW1lIChib29sIHVzZXJfb3AsIGludCByb290X3hfbncsIGludCByb290X3lfbncsIGludCB3LCBp bnQgaCk7CistCQlwdWJsaWMgdm9pZCBtb3ZlX3RvX21vbml0b3IgKGludCBtb25pdG9yKTsKKy0J CXB1YmxpYyB2b2lkIHJhaXNlICgpOworLQkJcHVibGljIGJvb2wgcmVxdWVzdGVkX2J5cGFzc19j b21wb3NpdG9yICgpOworLQkJcHVibGljIGJvb2wgcmVxdWVzdGVkX2RvbnRfYnlwYXNzX2NvbXBv c2l0b3IgKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfY29tcG9zaXRvcl9wcml2YXRlIChHTGliLk9i amVjdCBwcml2KTsKKy0JCXB1YmxpYyB2b2lkIHNldF9kZW1hbmRzX2F0dGVudGlvbiAoKTsKKy0J CXB1YmxpYyB2b2lkIHNldF9pY29uX2dlb21ldHJ5IChNZXRhLlJlY3RhbmdsZT8gcmVjdCk7Cist CQlwdWJsaWMgdm9pZCBzaGFkZSAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBz aG92ZV90aXRsZWJhcl9vbnNjcmVlbiAoKTsKKy0JCXB1YmxpYyBib29sIHNob3dpbmdfb25faXRz X3dvcmtzcGFjZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHNodXRkb3duX2dyb3VwICgpOworLQkJcHVi bGljIHZvaWQgc3RpY2sgKCk7CistCQlwdWJsaWMgYm9vbCB0aXRsZWJhcl9pc19vbnNjcmVlbiAo KTsKKy0JCXB1YmxpYyB2b2lkIHVubWFrZV9hYm92ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHVubWFr ZV9mdWxsc2NyZWVuICgpOworLQkJcHVibGljIHZvaWQgdW5tYXhpbWl6ZSAoTWV0YS5NYXhpbWl6 ZUZsYWdzIGRpcmVjdGlvbnMpOworLQkJcHVibGljIHZvaWQgdW5taW5pbWl6ZSAoKTsKKy0JCXB1 YmxpYyB2b2lkIHVuc2V0X2RlbWFuZHNfYXR0ZW50aW9uICgpOworLQkJcHVibGljIHZvaWQgdW5z aGFkZSAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCB1bnN0aWNrICgpOworLQkJ W05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBhYm92ZSB7IGdldDsgfQorLQkJW05v QWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBhcHBlYXJzX2ZvY3VzZWQgeyBnZXQ7IH0K Ky0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgZGVjb3JhdGVkIHsgZ2V0OyB9 CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGRlbWFuZHNfYXR0ZW50aW9u IHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGZ1bGxzY3Jl ZW4geyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3RrX2FwcF9tZW51X29iamVjdF9wYXRoIHsg Z2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIGd0a19hcHBsaWNhdGlvbl9pZCB7IGdldDsgfQorLQkJ cHVibGljIHN0cmluZyBndGtfYXBwbGljYXRpb25fb2JqZWN0X3BhdGggeyBnZXQ7IH0KKy0JCXB1 YmxpYyBzdHJpbmcgZ3RrX21lbnViYXJfb2JqZWN0X3BhdGggeyBnZXQ7IH0KKy0JCXB1YmxpYyBz dHJpbmcgZ3RrX3VuaXF1ZV9idXNfbmFtZSB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyBndGtf d2luZG93X29iamVjdF9wYXRoIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1 YmxpYyB2b2lkKiBpY29uIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1Ymxp YyBib29sIG1heGltaXplZF9ob3Jpem9udGFsbHkgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0 aG9kXQorLQkJcHVibGljIGJvb2wgbWF4aW1pemVkX3ZlcnRpY2FsbHkgeyBnZXQ7IH0KKy0JCVtO b0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHZvaWQqIG1pbmlfaWNvbiB7IGdldDsgfQorLQkJ W05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBtaW5pbWl6ZWQgeyBnZXQ7IH0KKy0J CXB1YmxpYyBzdHJpbmcgbXV0dGVyX2hpbnRzIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCXB1YmxpYyBib29sIG9uX2FsbF93b3Jrc3BhY2VzIHsgZ2V0OyB9CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIHJlc2l6ZWFibGUgeyBnZXQ7IH0KKy0JCVtOb0Fj Y2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgc2tpcF90YXNrYmFyIHsgZ2V0OyB9CistCQlw dWJsaWMgc3RyaW5nIHRpdGxlIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1 YmxpYyBib29sIHVyZ2VudCB7IGdldDsgfQorLQkJcHVibGljIHVpbnQgdXNlcl90aW1lIHsgZ2V0 OyB9CistCQlwdWJsaWMgTWV0YS5XaW5kb3dUeXBlIHdpbmRvd190eXBlIHsgZ2V0OyB9CistCQlw dWJsaWMgc3RyaW5nIHdtX2NsYXNzIHsgZ2V0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcG9z aXRpb25fY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCByYWlzZWQgKCk7CistCQlw dWJsaWMgc2lnbmFsIHZvaWQgc2hvd24gKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2l6ZV9j aGFuZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHVubWFuYWdlZCAoKTsKKy0JCXB1Ymxp YyBzaWduYWwgdm9pZCB3b3Jrc3BhY2VfY2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgs bWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5o LG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJh Y2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFn ZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxt ZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25p dG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVu Y2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2lu LmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5n cy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5o LG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3Rh cnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ct YWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5o LG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1l dGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVz LmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9 ICJtZXRhX3dpbmRvd19hY3Rvcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgYWJzdHJhY3QgY2xh c3MgV2luZG93QWN0b3IgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIu QW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgV2lu ZG93QWN0b3IgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBnZXRfbWV0YV93aW5k b3cgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF90ZXh0dXJlICgpOwor LQkJcHVibGljIFguV2luZG93IGdldF94X3dpbmRvdyAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2Rl c3Ryb3llZCAoKTsKKy0JCXB1YmxpYyB2b2lkIHN5bmNfdmlzaWJpbGl0eSAoKTsKKy0JCXB1Ymxp YyBNZXRhLldpbmRvdyBtZXRhX3dpbmRvdyB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBzdHJpbmcgc2hhZG93X2NsYXNzIHsgb3duZWQgZ2V0OyBz ZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuU2hhZG93TW9kZSBz aGFkb3dfbW9kZSB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZWZmZWN0c19j b21wbGV0ZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZmlyc3RfZnJhbWUgKCk7CistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMu aCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIu aCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFp bi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1 cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0 YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cu aCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgs bWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxt ZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEt c2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdl LmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxt ZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0 YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEt eDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3Ro ZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3Bh Y2UuaCIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfZ3JvdXBfZ2V0X3R5cGUgKCkiKV0KKy0JcHVi bGljIGNsYXNzIFdpbmRvd0dyb3VwIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBD bHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUg eworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVj dGVkIFdpbmRvd0dyb3VwICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3Iu aCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1l dGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21l dGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNs b3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxt ZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEt aW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0 YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVt b3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNo YWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5k LXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlv bi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0 YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtz cGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJv cnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxt ZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCByZWZfZnVuY3Rpb24gPSAibWV0YV93aW5k b3dfc2hhcGVfcmVmIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19zaGFwZV9nZXRfdHlwZSAoKSIs IHVucmVmX2Z1bmN0aW9uID0gIm1ldGFfd2luZG93X3NoYXBlX3VucmVmIildCistCVtDb21wYWN0 XQorLQlwdWJsaWMgY2xhc3MgV2luZG93U2hhcGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHVibGljIFdpbmRvd1NoYXBlIChDYWlyby5SZWdpb24g cmVnaW9uKTsKKy0JCXB1YmxpYyBib29sIGVxdWFsIChNZXRhLldpbmRvd1NoYXBlIHNoYXBlX2Ip OworLQkJcHVibGljIHZvaWQgZ2V0X2JvcmRlcnMgKGludCBib3JkZXJfdG9wLCBpbnQgYm9yZGVy X3JpZ2h0LCBpbnQgYm9yZGVyX2JvdHRvbSwgaW50IGJvcmRlcl9sZWZ0KTsKKy0JCXB1YmxpYyB1 aW50IGhhc2ggKCk7CistCQlwdWJsaWMgTWV0YS5XaW5kb3dTaGFwZSBAcmVmICgpOworLQkJcHVi bGljIENhaXJvLlJlZ2lvbiB0b19yZWdpb24gKGludCBjZW50ZXJfd2lkdGgsIGludCBjZW50ZXJf aGVpZ2h0KTsKKy0JCXB1YmxpYyB2b2lkIHVucmVmICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxt ZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5Lmgs bWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFj a2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt Z3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdl LmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1l dGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0 b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5j aC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4u aCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdz LmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgs bWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFy dHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1h Y3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgs bWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0 YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMu aCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0g Im1ldGFfd29ya3NwYWNlX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBXb3Jrc3BhY2Ug OiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSldCistCQlwcm90ZWN0ZWQgV29ya3NwYWNlICgpOworLQkJcHVibGljIHZvaWQgYWN0aXZhdGUg KHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgYWN0aXZhdGVfd2l0aF9mb2N1cyAo TWV0YS5XaW5kb3cgZm9jdXNfdGhpcywgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdW5v d25lZCBNZXRhLkRpc3BsYXkgZ2V0X2Rpc3BsYXkgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRh LldvcmtzcGFjZSBnZXRfbmVpZ2hib3IgKE1ldGEuTW90aW9uRGlyZWN0aW9uIGRpcmVjdGlvbik7 CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9hbGxfbW9uaXRvcnMgKCk7 CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dvcmtfYXJlYV9mb3JfbW9uaXRvciAoaW50 IHdoaWNoX21vbml0b3IpOworLQkJcHVibGljIGludCBpbmRleCAoKTsKKy0JCXB1YmxpYyBHTGli Lkxpc3Q8d2VhayBNZXRhLldpbmRvdz4gbGlzdF93aW5kb3dzICgpOworLQkJcHVibGljIHZvaWQg c2V0X2J1aWx0aW5fc3RydXRzIChHTGliLlNMaXN0PE1ldGEuU3RydXQ/PiBzdHJ1dHMpOworLQkJ W05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdWludCBuX3dpbmRvd3MgeyBnZXQ7IH0KKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQgd29ya3NwYWNlX2luZGV4IHsgZ2V0 OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93X2FkZGVkIChNZXRhLldpbmRvdyBvYmpl Y3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19yZW1vdmVkIChNZXRhLldpbmRvdyBv YmplY3QpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIu aCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGlu Z3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5o LG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51 bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9y dGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1j b250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1l dGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0 YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3Jv dXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3By ZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5o LG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfd29ya3NwYWNlX21hbmFnZXJfZ2V0 X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFdvcmtzcGFjZU1hbmFnZXIgOiBHTGliLk9iamVj dCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90 ZWN0ZWQgV29ya3NwYWNlTWFuYWdlciAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3Nw YWNlIGFwcGVuZF9uZXdfd29ya3NwYWNlIChib29sIGFjdGl2YXRlLCB1aW50MzIgdGltZXN0YW1w KTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlIGdldF9hY3RpdmVfd29ya3NwYWNl ICgpOworLQkJcHVibGljIGludCBnZXRfYWN0aXZlX3dvcmtzcGFjZV9pbmRleCAoKTsKKy0JCXB1 YmxpYyBpbnQgZ2V0X25fd29ya3NwYWNlcyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29y a3NwYWNlIGdldF93b3Jrc3BhY2VfYnlfaW5kZXggKGludCBpbmRleCk7CistCQlwdWJsaWMgdm9p ZCBvdmVycmlkZV93b3Jrc3BhY2VfbGF5b3V0IChNZXRhLkRpc3BsYXlDb3JuZXIgc3RhcnRpbmdf Y29ybmVyLCBib29sIHZlcnRpY2FsX2xheW91dCwgaW50IG5fcm93cywgaW50IG5fY29sdW1ucyk7 CistCQlwdWJsaWMgdm9pZCByZW1vdmVfd29ya3NwYWNlIChNZXRhLldvcmtzcGFjZSB3b3Jrc3Bh Y2UsIHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIGludCBuX3dvcmtzcGFjZXMgeyBnZXQ7 IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBhY3RpdmVfd29ya3NwYWNlX2NoYW5nZWQgKCk7Cist CQlwdWJsaWMgc2lnbmFsIHZvaWQgc2hvd2luZ19kZXNrdG9wX2NoYW5nZWQgKCk7CistCQlwdWJs aWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlX2FkZGVkIChpbnQgb2JqZWN0KTsKKy0JCXB1YmxpYyBz aWduYWwgdm9pZCB3b3Jrc3BhY2VfcmVtb3ZlZCAoaW50IG9iamVjdCk7CistCQlwdWJsaWMgc2ln bmFsIHZvaWQgd29ya3NwYWNlX3N3aXRjaGVkIChpbnQgb2JqZWN0LCBpbnQgcDAsIE1ldGEuTW90 aW9uRGlyZWN0aW9uIHAxKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgs bWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRh L2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRh LWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9z ZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0 YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWlu aGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEv bWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90 ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFk b3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1w bGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24u aCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEt d2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3Bh Y2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3Jz LmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0 YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3gxMV9kaXNwbGF5 X2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBYMTFEaXNwbGF5IDogR0xpYi5PYmplY3Qg eworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVj dGVkIFgxMURpc3BsYXkgKCk7CistCQlwdWJsaWMgdm9pZCBmb2N1c190aGVfbm9fZm9jdXNfd2lu ZG93ICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2RhbWFnZV9ldmVudF9i YXNlICgpOworLQkJcHVibGljIGludCBnZXRfc2NyZWVuX251bWJlciAoKTsKKy0JCXB1YmxpYyBp bnQgZ2V0X3NoYXBlX2V2ZW50X2Jhc2UgKCk7CistCQlwdWJsaWMgYm9vbCBoYXNfc2hhcGUgKCk7 CistCQlwdWJsaWMgdm9pZCBzZXRfY21fc2VsZWN0aW9uICgpOworLQkJcHVibGljIHZvaWQgc2V0 X2lucHV0X2ZvY3VzX3dpbmRvdyAoTWV0YS5XaW5kb3cgd2luZG93LCBib29sIGZvY3VzX2ZyYW1l LCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyBib29sIHh3aW5kb3dfaXNfYV9ub19mb2N1 c193aW5kb3cgKFguV2luZG93IHh3aW5kb3cpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2Nv bXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9n cm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAu aCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0 YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0 YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxt ZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250 ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRh L21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0 YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9t ZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5v dGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5o LG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9t ZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRh LXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRh L3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2NuYW1lID0gIk1l dGFDbG9zZURpYWxvZ0ludGVyZmFjZSIsIHR5cGVfaWQgPSAibWV0YV9jbG9zZV9kaWFsb2dfZ2V0 X3R5cGUgKCkiKV0KKy0JcHVibGljIGludGVyZmFjZSBDbG9zZURpYWxvZyA6IEdMaWIuT2JqZWN0 IHsKKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGZvY3VzICgpOworLQkJcHVibGljIGFic3RyYWN0 IHZvaWQgaGlkZSAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3Zpc2libGUgKCk7CistCQlwdWJsaWMg YWJzdHJhY3Qgdm9pZCBzaG93ICgpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMg YWJzdHJhY3QgTWV0YS5XaW5kb3cgd2luZG93IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0J CVtIYXNFbWl0dGVyXQorLQkJcHVibGljIHNpZ25hbCB2b2lkIHJlc3BvbnNlIChNZXRhLkNsb3Nl RGlhbG9nUmVzcG9uc2UgcmVzcG9uc2UpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBv c2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91 cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9t ZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1k bmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRh L21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0 LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21l dGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9t ZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRh LXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlm aWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1l dGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRh LXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgx MS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0 aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2NuYW1lID0gIk1ldGFJ bmhpYml0U2hvcnRjdXRzRGlhbG9nSW50ZXJmYWNlIiwgdHlwZV9pZCA9ICJtZXRhX2luaGliaXRf c2hvcnRjdXRzX2RpYWxvZ19nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgaW50ZXJmYWNlIEluaGli aXRTaG9ydGN1dHNEaWFsb2cgOiBHTGliLk9iamVjdCB7CistCQlwdWJsaWMgYWJzdHJhY3Qgdm9p ZCBoaWRlICgpOworLQkJcHVibGljIGFic3RyYWN0IHZvaWQgc2hvdyAoKTsKKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJcHVibGljIGFic3RyYWN0IE1ldGEuV2luZG93IHdpbmRvdyB7IG93bmVk IGdldDsgY29uc3RydWN0OyB9CistCQlbSGFzRW1pdHRlcl0KKy0JCXB1YmxpYyBzaWduYWwgdm9p ZCByZXNwb25zZSAoTWV0YS5JbmhpYml0U2hvcnRjdXRzRGlhbG9nUmVzcG9uc2UgcmVzcG9uc2Up OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRh L2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxt ZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9y LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEv bWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBl cy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMt ZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFu YWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9s bGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0 YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0 YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJz aW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxt ZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgs bWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEv d29ya3NwYWNlLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBCdXR0 b25MYXlvdXQgeworLQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMg d2VhayBNZXRhLkJ1dHRvbkZ1bmN0aW9uIGxlZnRfYnV0dG9uc1s0XTsKKy0JCVtDQ29kZSAoYXJy YXlfbGVuZ3RoID0gZmFsc2UpXQorLQkJcHVibGljIHdlYWsgYm9vbCBsZWZ0X2J1dHRvbnNfaGFz X3NwYWNlcls0XTsKKy0JCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXQorLQkJcHVibGlj IHdlYWsgTWV0YS5CdXR0b25GdW5jdGlvbiByaWdodF9idXR0b25zWzRdOworLQkJW0NDb2RlIChh cnJheV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBib29sIHJpZ2h0X2J1dHRvbnNf aGFzX3NwYWNlcls0XTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9i YXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0 YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tl eWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1k aWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9t ZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGli aXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0 YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1h Y2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ct ZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5 ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxt ZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2lu ZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2Ut bWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgs bWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93 aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1Ymxp YyBzdHJ1Y3QgRWRnZSB7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgcmVjdDsKKy0JCXB1Ymxp YyBNZXRhLlNpZGUgc2lkZV90eXBlOworLQkJcHVibGljIE1ldGEuRWRnZVR5cGUgZWRnZV90eXBl OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRh L2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxt ZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9y LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEv bWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBl cy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMt ZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFu YWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9s bGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0 YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0 YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJz aW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxt ZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgs bWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEv d29ya3NwYWNlLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBGcmFt ZUJvcmRlcnMgeworLQkJcHVibGljIEd0ay5Cb3JkZXIgdmlzaWJsZTsKKy0JCXB1YmxpYyBHdGsu Qm9yZGVyIGludmlzaWJsZTsKKy0JCXB1YmxpYyBHdGsuQm9yZGVyIHRvdGFsOworLQkJcHVibGlj IHZvaWQgY2xlYXIgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWV0YS1wbHVnaW4uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IFBs dWdpbkluZm8geworLQkJcHVibGljIHdlYWsgc3RyaW5nIG5hbWU7CistCQlwdWJsaWMgd2VhayBz dHJpbmcgdmVyc2lvbjsKKy0JCXB1YmxpYyB3ZWFrIHN0cmluZyBhdXRob3I7CistCQlwdWJsaWMg d2VhayBzdHJpbmcgbGljZW5zZTsKKy0JCXB1YmxpYyB3ZWFrIHN0cmluZyBkZXNjcmlwdGlvbjsK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9i b3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11 dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0 YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21l dGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMu aCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRp YWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFn ZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxl ci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEv bWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEt c3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lv bi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0 YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEv bWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1l dGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dv cmtzcGFjZS5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgUGx1Z2lu VmVyc2lvbiB7CistCQlwdWJsaWMgdWludCB2ZXJzaW9uX21ham9yOworLQkJcHVibGljIHVpbnQg dmVyc2lvbl9taW5vcjsKKy0JCXB1YmxpYyB1aW50IHZlcnNpb25fbWljcm87CistCQlwdWJsaWMg dWludCB2ZXJzaW9uX2FwaTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgs bWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRh L2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRh LWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9z ZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0 YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWlu aGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEv bWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90 ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFk b3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1w bGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24u aCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEt d2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3Bh Y2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3Jz LmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0 YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3JlY3RhbmdsZV9n ZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgc3RydWN0IFJlY3RhbmdsZSB7CistCQlwdWJsaWMgaW50 IHg7CistCQlwdWJsaWMgaW50IHk7CistCQlwdWJsaWMgaW50IHdpZHRoOworLQkJcHVibGljIGlu dCBoZWlnaHQ7CistCQlwdWJsaWMgaW50IGFyZWEgKCk7CistCQlwdWJsaWMgYm9vbCBjb250YWlu c19yZWN0IChNZXRhLlJlY3RhbmdsZSBpbm5lcl9yZWN0KTsKKy0JCXB1YmxpYyBNZXRhLlJlY3Rh bmdsZT8gY29weSAoKTsKKy0JCXB1YmxpYyBib29sIGNvdWxkX2ZpdF9yZWN0IChNZXRhLlJlY3Rh bmdsZSBpbm5lcl9yZWN0KTsKKy0JCXB1YmxpYyBib29sIGVxdWFsIChNZXRhLlJlY3RhbmdsZSBz cmMyKTsKKy0JCXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlwdWJsaWMgYm9vbCBob3Jpel9vdmVy bGFwIChNZXRhLlJlY3RhbmdsZSByZWN0Mik7CistCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3QgKE1l dGEuUmVjdGFuZ2xlIHNyYzIsIG91dCBNZXRhLlJlY3RhbmdsZSBkZXN0KTsKKy0JCXB1YmxpYyBi b29sIG92ZXJsYXAgKE1ldGEuUmVjdGFuZ2xlIHJlY3QyKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3Rh bmdsZSB1bmlvbiAoTWV0YS5SZWN0YW5nbGUgcmVjdDIpOworLQkJcHVibGljIGJvb2wgdmVydF9v dmVybGFwIChNZXRhLlJlY3RhbmdsZSByZWN0Mik7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEv Y29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRh L2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91 cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxt ZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9t ZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5o LG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNv bnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1l dGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxt ZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRh L21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAt bm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9y LmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRh L21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21l dGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1l dGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IFNoYWRvd1BhcmFtcyB7CistCQlwdWJsaWMgaW50IHJh ZGl1czsKKy0JCXB1YmxpYyBpbnQgdG9wX2ZhZGU7CistCQlwdWJsaWMgaW50IHhfb2Zmc2V0Owor LQkJcHVibGljIGludCB5X29mZnNldDsKKy0JCXB1YmxpYyB1aW50OCBvcGFjaXR5OworLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgs bWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgs bWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4u aCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJz b3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEv bWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgs bWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1l dGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0 YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNo YXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5o LG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0 YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEt d2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgx MS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVt ZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNl LmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBTdHJ1dCB7CistCQlw dWJsaWMgTWV0YS5SZWN0YW5nbGUgcmVjdDsKKy0JCXB1YmxpYyBNZXRhLlNpZGUgc2lkZTsKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hl cy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRl ci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9t YWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEt Y3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxt ZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxv Zy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIu aCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5o LG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0 YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3Rh Z2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5o LG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9t ZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0 YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEv dGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtz cGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0JBUlJJRVJfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAi bWV0YV9iYXJyaWVyX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1Ymxp YyBlbnVtIEJhcnJpZXJEaXJlY3Rpb24geworLQkJUE9TSVRJVkVfWCwKKy0JCVBPU0lUSVZFX1ks CistCQlORUdBVElWRV9YLAorLQkJTkVHQVRJVkVfWQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRh L2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0 YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3Jv dXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgs bWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEv bWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3Iu aCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1j b250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxt ZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgs bWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0 YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVw LW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rv ci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0 YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9t ZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxt ZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1F VEFfQlVUVE9OX0ZVTkNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9idXR0b25fZnVuY3Rpb25fZ2V0 X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gQnV0dG9uRnVuY3Rpb24geworLQkJTUVOVSwKKy0J CU1JTklNSVpFLAorLQkJTUFYSU1JWkUsCistCQlDTE9TRSwKKy0JCUxBU1QKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEv Y29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEv ZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0 YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRy YWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEt aWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEv bWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21l dGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0 YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQt dGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRh L21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0 YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRv dy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlz cGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxt ZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwg Y3ByZWZpeCA9ICJNRVRBX0NMT1NFX0RJQUxPR19SRVNQT05TRV8iLCB0eXBlX2lkID0gIm1ldGFf Y2xvc2VfZGlhbG9nX3Jlc3BvbnNlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIENsb3Nl RGlhbG9nUmVzcG9uc2UgeworLQkJV0FJVCwKKy0JCUZPUkNFX0NMT1NFCistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2Nv bW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rp c3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEv bWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFj a2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlk bGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21l dGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRh LXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEt c2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRl eHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9t ZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEt d2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ct c2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3Bs YXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0 YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNw cmVmaXggPSAiTUVUQV9DT01QX0VGRkVDVF8iLCB0eXBlX2lkID0gIm1ldGFfY29tcF9lZmZlY3Rf Z2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gQ29tcEVmZmVjdCB7CistCQlDUkVBVEUsCist CQlVTk1JTklNSVpFLAorLQkJREVTVFJPWSwKKy0JCU1JTklNSVpFLAorLQkJTk9ORQorLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgs bWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgs bWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4u aCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJz b3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEv bWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgs bWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1l dGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0 YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNo YXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5o LG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0 YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEt d2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgx MS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVt ZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNl LmgiLCBjcHJlZml4ID0gIk1FVEFfQ1VSU09SXyIsIHR5cGVfaWQgPSAibWV0YV9jdXJzb3JfZ2V0 X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gQ3Vyc29yIHsKKy0JCU5PTkUsCistCQlERUZBVUxU LAorLQkJTk9SVEhfUkVTSVpFLAorLQkJU09VVEhfUkVTSVpFLAorLQkJV0VTVF9SRVNJWkUsCist CQlFQVNUX1JFU0laRSwKKy0JCVNFX1JFU0laRSwKKy0JCVNXX1JFU0laRSwKKy0JCU5FX1JFU0la RSwKKy0JCU5XX1JFU0laRSwKKy0JCU1PVkVfT1JfUkVTSVpFX1dJTkRPVywKKy0JCUJVU1ksCist CQlETkRfSU5fRFJBRywKKy0JCURORF9NT1ZFLAorLQkJRE5EX0NPUFksCistCQlETkRfVU5TVVBQ T1JURURfVEFSR0VULAorLQkJUE9JTlRJTkdfSEFORCwKKy0JCUNST1NTSEFJUiwKKy0JCUlCRUFN LAorLQkJTEFTVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJp ZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2Nv bXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5Ymlu ZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dy b3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxv Zy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEt ZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1z aG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1v bml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vz cy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0 b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5o LG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEv bWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ct Z3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5h Z2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRh L3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRv dy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfREVCVUdfIiwgdHlwZV9pZCA9 ICJtZXRhX2RlYnVnX3RvcGljX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVu dW0gRGVidWdUb3BpYyB7CistCQlWRVJCT1NFLAorLQkJRk9DVVMsCistCQlXT1JLQVJFQSwKKy0J CVNUQUNLLAorLQkJVEhFTUVTLAorLQkJU00sCistCQlFVkVOVFMsCistCQlXSU5ET1dfU1RBVEUs CistCQlXSU5ET1dfT1BTLAorLQkJR0VPTUVUUlksCistCQlQTEFDRU1FTlQsCistCQlQSU5HLAor LQkJWElORVJBTUEsCistCQlLRVlCSU5ESU5HUywKKy0JCVNZTkMsCistCQlFUlJPUlMsCistCQlT VEFSVFVQLAorLQkJUFJFRlMsCistCQlHUk9VUFMsCistCQlSRVNJWklORywKKy0JCVNIQVBFUywK Ky0JCUNPTVBPU0lUT1IsCistCQlFREdFX1JFU0lTVEFOQ0UsCistCQlEQlVTCistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRh L2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRh L2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1l dGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10 cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRh LWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRh L21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21l dGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVk LXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0 YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21l dGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5k b3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRp c3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgs bWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIs IGNwcmVmaXggPSAiTUVUQV9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2RpcmVjdGlvbl9n ZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIERpcmVjdGlvbiB7CistCQlM RUZULAorLQkJUklHSFQsCistCQlUT1AsCistCQlCT1RUT00sCistCQlVUCwKKy0JCURPV04sCist CQlIT1JJWk9OVEFMLAorLQkJVkVSVElDQUwKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21w b3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3Jv dXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgs bWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEv bWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEt ZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0 YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4 dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9t ZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEv bWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0 YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3Rp ZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxt ZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0 YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14 MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91 dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0RJ U1BMQVlfIiwgdHlwZV9pZCA9ICJtZXRhX2Rpc3BsYXlfY29ybmVyX2dldF90eXBlICgpIildCist CXB1YmxpYyBlbnVtIERpc3BsYXlDb3JuZXIgeworLQkJVE9QTEVGVCwKKy0JCVRPUFJJR0hULAor LQkJQk9UVE9NTEVGVCwKKy0JCUJPVFRPTVJJR0hUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEv Y29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRh L2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91 cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxt ZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9t ZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5o LG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNv bnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1l dGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxt ZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRh L21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAt bm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9y LmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRh L21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21l dGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1l dGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVU QV9ESVNQTEFZXyIsIHR5cGVfaWQgPSAibWV0YV9kaXNwbGF5X2RpcmVjdGlvbl9nZXRfdHlwZSAo KSIpXQorLQlwdWJsaWMgZW51bSBEaXNwbGF5RGlyZWN0aW9uIHsKKy0JCVVQLAorLQkJRE9XTiwK Ky0JCUxFRlQsCistCQlSSUdIVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3Iu aCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1l dGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21l dGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNs b3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxt ZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEt aW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0 YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVt b3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNo YWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5k LXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlv bi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0 YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtz cGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJv cnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxt ZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfRURHRV8iLCB0 eXBlX2lkID0gIm1ldGFfZWRnZV90eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEVk Z2VUeXBlIHsKKy0JCVdJTkRPVywKKy0JCU1PTklUT1IsCistCQlTQ1JFRU4KKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEv Y29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEv ZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0 YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRy YWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEt aWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEv bWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21l dGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0 YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQt dGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRh L21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0 YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRv dy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlz cGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxt ZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwg Y3ByZWZpeCA9ICJNRVRBX0VYSVRfIiwgdHlwZV9pZCA9ICJtZXRhX2V4aXRfY29kZV9nZXRfdHlw ZSAoKSIpXQorLQlwdWJsaWMgZW51bSBFeGl0Q29kZSB7CistCQlTVUNDRVNTLAorLQkJRVJST1IK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9i b3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11 dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0 YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21l dGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMu aCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRp YWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFn ZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxl ci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEv bWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEt c3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lv bi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0 YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEv bWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1l dGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dv cmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0ZSQU1FXyIsIHR5cGVfaWQgPSAibWV0YV9mcmFt ZV9mbGFnc19nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIEZyYW1lRmxh Z3MgeworLQkJQUxMT1dTX0RFTEVURSwKKy0JCUFMTE9XU19NRU5VLAorLQkJQUxMT1dTX01JTklN SVpFLAorLQkJQUxMT1dTX01BWElNSVpFLAorLQkJQUxMT1dTX1ZFUlRJQ0FMX1JFU0laRSwKKy0J CUFMTE9XU19IT1JJWk9OVEFMX1JFU0laRSwKKy0JCUhBU19GT0NVUywKKy0JCVNIQURFRCwKKy0J CVNUVUNLLAorLQkJTUFYSU1JWkVELAorLQkJQUxMT1dTX1NIQURFLAorLQkJQUxMT1dTX01PVkUs CistCQlGVUxMU0NSRUVOLAorLQkJSVNfRkxBU0hJTkcsCistCQlBQk9WRSwKKy0JCVRJTEVEX0xF RlQsCistCQlUSUxFRF9SSUdIVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3Iu aCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1l dGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21l dGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNs b3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxt ZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEt aW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0 YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVt b3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNo YWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5k LXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlv bi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0 YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtz cGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJv cnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxt ZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfRlJBTUVfVFlQ RV8iLCB0eXBlX2lkID0gIm1ldGFfZnJhbWVfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMg ZW51bSBGcmFtZVR5cGUgeworLQkJTk9STUFMLAorLQkJRElBTE9HLAorLQkJTU9EQUxfRElBTE9H LAorLQkJVVRJTElUWSwKKy0JCU1FTlUsCistCQlCT1JERVIsCistCQlBVFRBQ0hFRCwKKy0JCUxB U1Q7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgdG9fc3RyaW5nICgpOworLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9j b21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9k aXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRh L21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJh Y2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1p ZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9t ZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0 YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRh LXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10 ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEv bWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRh LXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93 LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNw bGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1l dGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBj cHJlZml4ID0gIk1FVEFfR1JBQl9PUF8iLCB0eXBlX2lkID0gIm1ldGFfZ3JhYl9vcF9nZXRfdHlw ZSAoKSIpXQorLQlwdWJsaWMgZW51bSBHcmFiT3AgeworLQkJTk9ORSwKKy0JCVdJTkRPV19CQVNF LAorLQkJQ09NUE9TSVRPUiwKKy0JCVdBWUxBTkRfUE9QVVAsCistCQlGUkFNRV9CVVRUT04sCist CQlNT1ZJTkcsCistCQlSRVNJWklOR19OVywKKy0JCVJFU0laSU5HX04sCistCQlSRVNJWklOR19O RSwKKy0JCVJFU0laSU5HX0UsCistCQlSRVNJWklOR19TVywKKy0JCVJFU0laSU5HX1MsCistCQlS RVNJWklOR19TRSwKKy0JCVJFU0laSU5HX1csCistCQlLRVlCT0FSRF9NT1ZJTkcsCistCQlLRVlC T0FSRF9SRVNJWklOR19VTktOT1dOLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfTlcsCistCQlLRVlC T0FSRF9SRVNJWklOR19OLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfTkUsCistCQlLRVlCT0FSRF9S RVNJWklOR19FLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfU1csCistCQlLRVlCT0FSRF9SRVNJWklO R19TLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfU0UsCistCQlLRVlCT0FSRF9SRVNJWklOR19XCist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94 ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEv bWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRh LWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgs bWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFs b2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIu aCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21l dGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0 YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24u aCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEv bWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21l dGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRh L3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jr c3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9JTkhJQklUX1NIT1JUQ1VUU19ESUFMT0dfUkVTUE9O U0VfIiwgdHlwZV9pZCA9ICJtZXRhX2luaGliaXRfc2hvcnRjdXRzX2RpYWxvZ19yZXNwb25zZV9n ZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBJbmhpYml0U2hvcnRjdXRzRGlhbG9nUmVzcG9u c2UgeworLQkJQUxMT1csCistCQlERU5ZCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9z aXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3Vw LmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21l dGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRu ZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEv bWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQu aCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0 YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21l dGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEt c291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZp Y2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0 YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEt d29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDEx LWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRp bC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9LRVlC SU5ESU5HX0FDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdfYWN0aW9uX2dldF90 eXBlICgpIildCistCXB1YmxpYyBlbnVtIEtleUJpbmRpbmdBY3Rpb24geworLQkJTk9ORSwKKy0J CVdPUktTUEFDRV8xLAorLQkJV09SS1NQQUNFXzIsCistCQlXT1JLU1BBQ0VfMywKKy0JCVdPUktT UEFDRV80LAorLQkJV09SS1NQQUNFXzUsCistCQlXT1JLU1BBQ0VfNiwKKy0JCVdPUktTUEFDRV83 LAorLQkJV09SS1NQQUNFXzgsCistCQlXT1JLU1BBQ0VfOSwKKy0JCVdPUktTUEFDRV8xMCwKKy0J CVdPUktTUEFDRV8xMSwKKy0JCVdPUktTUEFDRV8xMiwKKy0JCVdPUktTUEFDRV9MRUZULAorLQkJ V09SS1NQQUNFX1JJR0hULAorLQkJV09SS1NQQUNFX1VQLAorLQkJV09SS1NQQUNFX0RPV04sCist CQlXT1JLU1BBQ0VfTEFTVCwKKy0JCVNXSVRDSF9BUFBMSUNBVElPTlMsCistCQlTV0lUQ0hfQVBQ TElDQVRJT05TX0JBQ0tXQVJELAorLQkJU1dJVENIX0dST1VQLAorLQkJU1dJVENIX0dST1VQX0JB Q0tXQVJELAorLQkJU1dJVENIX1dJTkRPV1MsCistCQlTV0lUQ0hfV0lORE9XU19CQUNLV0FSRCwK Ky0JCVNXSVRDSF9QQU5FTFMsCistCQlTV0lUQ0hfUEFORUxTX0JBQ0tXQVJELAorLQkJQ1lDTEVf R1JPVVAsCistCQlDWUNMRV9HUk9VUF9CQUNLV0FSRCwKKy0JCUNZQ0xFX1dJTkRPV1MsCistCQlD WUNMRV9XSU5ET1dTX0JBQ0tXQVJELAorLQkJQ1lDTEVfUEFORUxTLAorLQkJQ1lDTEVfUEFORUxT X0JBQ0tXQVJELAorLQkJU0hPV19ERVNLVE9QLAorLQkJUEFORUxfTUFJTl9NRU5VLAorLQkJUEFO RUxfUlVOX0RJQUxPRywKKy0JCVRPR0dMRV9SRUNPUkRJTkcsCistCQlTRVRfU1BFV19NQVJLLAor LQkJQUNUSVZBVEVfV0lORE9XX01FTlUsCistCQlUT0dHTEVfRlVMTFNDUkVFTiwKKy0JCVRPR0dM RV9NQVhJTUlaRUQsCistCQlUT0dHTEVfVElMRURfTEVGVCwKKy0JCVRPR0dMRV9USUxFRF9SSUdI VCwKKy0JCVRPR0dMRV9BQk9WRSwKKy0JCU1BWElNSVpFLAorLQkJVU5NQVhJTUlaRSwKKy0JCVRP R0dMRV9TSEFERUQsCistCQlNSU5JTUlaRSwKKy0JCUNMT1NFLAorLQkJQkVHSU5fTU9WRSwKKy0J CUJFR0lOX1JFU0laRSwKKy0JCVRPR0dMRV9PTl9BTExfV09SS1NQQUNFUywKKy0JCU1PVkVfVE9f V09SS1NQQUNFXzEsCistCQlNT1ZFX1RPX1dPUktTUEFDRV8yLAorLQkJTU9WRV9UT19XT1JLU1BB Q0VfMywKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzQsCistCQlNT1ZFX1RPX1dPUktTUEFDRV81LAor LQkJTU9WRV9UT19XT1JLU1BBQ0VfNiwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzcsCistCQlNT1ZF X1RPX1dPUktTUEFDRV84LAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfOSwKKy0JCU1PVkVfVE9fV09S S1NQQUNFXzEwLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfMTEsCistCQlNT1ZFX1RPX1dPUktTUEFD RV8xMiwKKy0JCU1PVkVfVE9fV09SS1NQQUNFX0xFRlQsCistCQlNT1ZFX1RPX1dPUktTUEFDRV9S SUdIVCwKKy0JCU1PVkVfVE9fV09SS1NQQUNFX1VQLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfRE9X TiwKKy0JCU1PVkVfVE9fV09SS1NQQUNFX0xBU1QsCistCQlNT1ZFX1RPX01PTklUT1JfTEVGVCwK Ky0JCU1PVkVfVE9fTU9OSVRPUl9SSUdIVCwKKy0JCU1PVkVfVE9fTU9OSVRPUl9VUCwKKy0JCU1P VkVfVE9fTU9OSVRPUl9ET1dOLAorLQkJUkFJU0VfT1JfTE9XRVIsCistCQlSQUlTRSwKKy0JCUxP V0VSLAorLQkJTUFYSU1JWkVfVkVSVElDQUxMWSwKKy0JCU1BWElNSVpFX0hPUklaT05UQUxMWSwK Ky0JCU1PVkVfVE9fQ09STkVSX05XLAorLQkJTU9WRV9UT19DT1JORVJfTkUsCistCQlNT1ZFX1RP X0NPUk5FUl9TVywKKy0JCU1PVkVfVE9fQ09STkVSX1NFLAorLQkJTU9WRV9UT19TSURFX04sCist CQlNT1ZFX1RPX1NJREVfUywKKy0JCU1PVkVfVE9fU0lERV9FLAorLQkJTU9WRV9UT19TSURFX1cs CistCQlNT1ZFX1RPX0NFTlRFUiwKKy0JCU9WRVJMQVlfS0VZLAorLQkJSVNPX05FWFRfR1JPVVAs CistCQlBTFdBWVNfT05fVE9QLAorLQkJU1dJVENIX01PTklUT1IsCistCQlST1RBVEVfTU9OSVRP UiwKKy0JCUxBU1QKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJy aWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9j b21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJp bmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFs b2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRh LWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQt c2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1t b25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nl c3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFj dG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIu aCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRh L21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93 LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFu YWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0 YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5k b3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0tFWV9CSU5ESU5HXyIsIHR5 cGVfaWQgPSAibWV0YV9rZXlfYmluZGluZ19mbGFnc19nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3Nd CistCXB1YmxpYyBlbnVtIEtleUJpbmRpbmdGbGFncyB7CistCQlOT05FLAorLQkJUEVSX1dJTkRP VywKKy0JCUJVSUxUSU4sCistCQlJU19SRVZFUlNFRCwKKy0JCU5PTl9NQVNLQUJMRSwKKy0JCUlH Tk9SRV9BVVRPUkVQRUFUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv YmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9r ZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2Ut ZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEv bWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhp Yml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21l dGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUt YWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93 LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxh eWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgs bWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdp bmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNl LW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5o LG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEv d2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9MQVRFUl8iLCB0eXBl X2lkID0gIm1ldGFfbGF0ZXJfdHlwZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBMYXRl clR5cGUgeworLQkJUkVTSVpFLAorLQkJQ0FMQ19TSE9XSU5HLAorLQkJQ0hFQ0tfRlVMTFNDUkVF TiwKKy0JCVNZTkNfU1RBQ0ssCistCQlCRUZPUkVfUkVEUkFXLAorLQkJSURMRQorLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0 YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0 YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxt ZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3It dHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0 YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0 YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEv bWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9t ZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBl ZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1l dGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9t ZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2lu ZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1k aXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5o LG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgi LCBjcHJlZml4ID0gIk1FVEFfTE9DQUxFX0RJUkVDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfbG9j YWxlX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBMb2NhbGVEaXJlY3Rp b24geworLQkJTFRSLAorLQkJUlRMCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRv ci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgs bWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEt Y2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5o LG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0 YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxt ZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1y ZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEt c2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291 bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0 aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9t ZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29y a3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVy cm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5o LG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9NQVhJTUla RV8iLCB0eXBlX2lkID0gIm1ldGFfbWF4aW1pemVfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKy0JW0Zs YWdzXQorLQlwdWJsaWMgZW51bSBNYXhpbWl6ZUZsYWdzIHsKKy0JCUhPUklaT05UQUwsCistCQlW RVJUSUNBTCwKKy0JCUJPVEgKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgs bWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRh L2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRh LWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9z ZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0 YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWlu aGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEv bWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90 ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFk b3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1w bGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24u aCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEt d2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3Bh Y2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3Jz LmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0 YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX01PREFMXyIsIHR5 cGVfaWQgPSAibWV0YV9tb2RhbF9vcHRpb25zX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0J cHVibGljIGVudW0gTW9kYWxPcHRpb25zIHsKKy0JCVBPSU5URVJfQUxSRUFEWV9HUkFCQkVELAor LQkJS0VZQk9BUkRfQUxSRUFEWV9HUkFCQkVECistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29t cG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dy b3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRh L21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRh LWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1l dGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRl eHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEv bWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRh L21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21l dGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90 aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgs bWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21l dGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEt eDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEv dXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9N T05JVE9SX1NXSVRDSF9DT05GSUdfIiwgdHlwZV9pZCA9ICJtZXRhX21vbml0b3Jfc3dpdGNoX2Nv bmZpZ190eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIE1vbml0b3JTd2l0Y2hDb25m aWdUeXBlIHsKKy0JCUFMTF9NSVJST1IsCistCQlBTExfTElORUFSLAorLQkJRVhURVJOQUwsCist CQlCVUlMVElOLAorLQkJVU5LTk9XTgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0 b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5o LG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRh L21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRh LWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQu aCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21l dGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0Lmgs bWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEt cmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRh LXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNv dW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNh dGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEv bWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdv cmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1l cnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwu aCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfTU9USU9O XyIsIHR5cGVfaWQgPSAibWV0YV9tb3Rpb25fZGlyZWN0aW9uX2dldF90eXBlICgpIildCistCXB1 YmxpYyBlbnVtIE1vdGlvbkRpcmVjdGlvbiB7CistCQlVUCwKKy0JCURPV04sCistCQlMRUZULAor LQkJUklHSFQsCistCQlVUF9MRUZULAorLQkJVVBfUklHSFQsCistCQlET1dOX0xFRlQsCistCQlE T1dOX1JJR0hUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmll ci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29t cG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5k aW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9n LmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1l bnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNo b3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9u aXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNz LWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rv cnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgs bWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9t ZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1n cm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFn ZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEv cHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93 LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9QQURfQUNUSU9OXyIsIHR5cGVf aWQgPSAibWV0YV9wYWRfYWN0aW9uX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0g UGFkQWN0aW9uVHlwZSB7CistCQlCVVRUT04sCistCQlSSU5HLAorLQkJU1RSSVAKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1l dGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1l dGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgs bWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29y LXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21l dGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1l dGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRh L21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEv bWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFw ZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxt ZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEv bWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdp bmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEt ZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUu aCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5o IiwgY3ByZWZpeCA9ICJNRVRBX1BSRUZfIiwgdHlwZV9pZCA9ICJtZXRhX3ByZWZlcmVuY2VfZ2V0 X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gUHJlZmVyZW5jZSB7CistCQlNT1VTRV9CVVRUT05f TU9EUywKKy0JCUZPQ1VTX01PREUsCistCQlGT0NVU19ORVdfV0lORE9XUywKKy0JCUFUVEFDSF9N T0RBTF9ESUFMT0dTLAorLQkJUkFJU0VfT05fQ0xJQ0ssCistCQlBQ1RJT05fRE9VQkxFX0NMSUNL X1RJVExFQkFSLAorLQkJQUNUSU9OX01JRERMRV9DTElDS19USVRMRUJBUiwKKy0JCUFDVElPTl9S SUdIVF9DTElDS19USVRMRUJBUiwKKy0JCUFVVE9fUkFJU0UsCistCQlBVVRPX1JBSVNFX0RFTEFZ LAorLQkJRk9DVVNfQ0hBTkdFX09OX1BPSU5URVJfUkVTVCwKKy0JCVRJVExFQkFSX0ZPTlQsCist CQlOVU1fV09SS1NQQUNFUywKKy0JCURZTkFNSUNfV09SS1NQQUNFUywKKy0JCUtFWUJJTkRJTkdT LAorLQkJRElTQUJMRV9XT1JLQVJPVU5EUywKKy0JCUJVVFRPTl9MQVlPVVQsCistCQlXT1JLU1BB Q0VfTkFNRVMsCistCQlWSVNVQUxfQkVMTCwKKy0JCUFVRElCTEVfQkVMTCwKKy0JCVZJU1VBTF9C RUxMX1RZUEUsCistCQlHTk9NRV9BQ0NFU1NJQklMSVRZLAorLQkJR05PTUVfQU5JTUFUSU9OUywK Ky0JCUNVUlNPUl9USEVNRSwKKy0JCUNVUlNPUl9TSVpFLAorLQkJUkVTSVpFX1dJVEhfUklHSFRf QlVUVE9OLAorLQkJRURHRV9USUxJTkcsCistCQlGT1JDRV9GVUxMU0NSRUVOLAorLQkJV09SS1NQ QUNFU19PTkxZX09OX1BSSU1BUlksCistCQlEUkFHR0FCTEVfQk9SREVSX1dJRFRILAorLQkJQVVU T19NQVhJTUlaRSwKKy0JCUNFTlRFUl9ORVdfV0lORE9XUywKKy0JCURSQUdfVEhSRVNIT0xEOwor LQkJcHVibGljIHVub3duZWQgc3RyaW5nIHRvX3N0cmluZyAoKTsKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9u LmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxh eS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRh LWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1p bWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIu aCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1t b25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1s YXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1 Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0 aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVy ZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEt c3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5k b3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFw ZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5o LG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5 cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZp eCA9ICJNRVRBX1NIQURPV19NT0RFXyIsIHR5cGVfaWQgPSAibWV0YV9zaGFkb3dfbW9kZV9nZXRf dHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBTaGFkb3dNb2RlIHsKKy0JCUFVVE8sCistCQlGT1JD RURfT0ZGLAorLQkJRk9SQ0VEX09OCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRv ci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgs bWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEt Y2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5o LG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0 YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxt ZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1y ZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEt c2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291 bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0 aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9t ZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29y a3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVy cm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5o LG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9TSURFXyIs IHR5cGVfaWQgPSAibWV0YV9zaWRlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFNpZGUg eworLQkJTEVGVCwKKy0JCVJJR0hULAorLQkJVE9QLAorLQkJQk9UVE9NCistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2Nv bW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rp c3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEv bWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFj a2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlk bGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21l dGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRh LXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEt c2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRl eHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9t ZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEt d2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ct c2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3Bs YXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0 YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNw cmVmaXggPSAiTUVUQV9TSVpFX0NIQU5HRV8iLCB0eXBlX2lkID0gIm1ldGFfc2l6ZV9jaGFuZ2Vf Z2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gU2l6ZUNoYW5nZSB7CistCQlNQVhJTUlaRSwK Ky0JCVVOTUFYSU1JWkUsCistCQlGVUxMU0NSRUVOLAorLQkJVU5GVUxMU0NSRUVOCistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxt ZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxt ZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5o LG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNv ci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9t ZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxt ZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRh L21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hh cGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgs bWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRh L21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13 aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDEx LWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1l LmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2Uu aCIsIGNwcmVmaXggPSAiTUVUQV9MQVlFUl8iLCB0eXBlX2lkID0gIm1ldGFfc3RhY2tfbGF5ZXJf Z2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gU3RhY2tMYXllciB7CistCQlERVNLVE9QLAor LQkJQk9UVE9NLAorLQkJTk9STUFMLAorLQkJVE9QLAorLQkJRE9DSywKKy0JCU9WRVJSSURFX1JF RElSRUNULAorLQkJTEFTVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEv a2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEt YmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3Nl LWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRh L21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5o aWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9t ZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3Rl LWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRv dy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBs YXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5o LG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13 aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFj ZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMu aCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRh L3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfVEFCX0xJU1RfIiwg dHlwZV9pZCA9ICJtZXRhX3RhYl9saXN0X2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFRh Ykxpc3QgeworLQkJTk9STUFMLAorLQkJRE9DS1MsCistCQlHUk9VUCwKKy0JCU5PUk1BTF9BTEwK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9i b3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11 dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0 YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21l dGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMu aCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRp YWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFn ZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxl ci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEv bWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEt c3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lv bi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0 YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEv bWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1l dGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dv cmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX1RBQl9TSE9XXyIsIHR5cGVfaWQgPSAibWV0YV90 YWJfc2hvd190eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFRhYlNob3dUeXBlIHsK Ky0JCUlDT04sCistCQlJTlNUQU5UTFkKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3Np dG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAu aCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0 YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5k LmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9t ZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5o LG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRh LXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0 YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1z b3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmlj YXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRh L21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13 b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEt ZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGls LmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX1ZJUlRV QUxfIiwgdHlwZV9pZCA9ICJtZXRhX3ZpcnR1YWxfbW9kaWZpZXJfZ2V0X3R5cGUgKCkiKV0KKy0J W0ZsYWdzXQorLQlwdWJsaWMgZW51bSBWaXJ0dWFsTW9kaWZpZXIgeworLQkJU0hJRlRfTUFTSywK Ky0JCUNPTlRST0xfTUFTSywKKy0JCUFMVF9NQVNLLAorLQkJTUVUQV9NQVNLLAorLQkJU1VQRVJf TUFTSywKKy0JCUhZUEVSX01BU0ssCistCQlNT0QyX01BU0ssCistCQlNT0QzX01BU0ssCistCQlN T0Q0X01BU0ssCistCQlNT0Q1X01BU0sKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3Np dG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAu aCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0 YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5k LmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9t ZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5o LG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRh LXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0 YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1z b3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmlj YXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRh L21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13 b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEt ZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGls LmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX1dJTkRP V19DTElFTlRfVFlQRV8iLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X2NsaWVudF90eXBlX2dldF90 eXBlICgpIildCistCXB1YmxpYyBlbnVtIFdpbmRvd0NsaWVudFR5cGUgeworLQkJV0FZTEFORCwK Ky0JCVgxMQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIu aCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGlu Z3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5o LG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51 bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9y dGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1j b250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1l dGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0 YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3Jv dXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3By ZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5o LG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfV0lORE9XX01FTlVfIiwgdHlwZV9p ZCA9ICJtZXRhX3dpbmRvd19tZW51X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0g V2luZG93TWVudVR5cGUgeworLQkJV00sCistCQlBUFAKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0 YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1l dGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tl bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdy b3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5o LG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRh L21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9y LmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gt Y29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgs bWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5o LG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1l dGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1 cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0 b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1l dGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEv bWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgs bWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJN RVRBX1dJTkRPV18iLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X3R5cGVfZ2V0X3R5cGUgKCkiKV0K Ky0JcHVibGljIGVudW0gV2luZG93VHlwZSB7CistCQlOT1JNQUwsCistCQlERVNLVE9QLAorLQkJ RE9DSywKKy0JCURJQUxPRywKKy0JCU1PREFMX0RJQUxPRywKKy0JCVRPT0xCQVIsCistCQlNRU5V LAorLQkJVVRJTElUWSwKKy0JCVNQTEFTSFNDUkVFTiwKKy0JCURST1BET1dOX01FTlUsCistCQlQ T1BVUF9NRU5VLAorLQkJVE9PTFRJUCwKKy0JCU5PVElGSUNBVElPTiwKKy0JCUNPTUJPLAorLQkJ RE5ELAorLQkJT1ZFUlJJREVfT1RIRVIKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3Np dG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAu aCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0 YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5k LmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9t ZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5o LG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRh LXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0 YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1z b3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmlj YXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRh L21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13 b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEt ZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGls LmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0K Ky0JcHVibGljIGRlbGVnYXRlIHZvaWQgSWRsZU1vbml0b3JXYXRjaEZ1bmMgKE1ldGEuSWRsZU1v bml0b3IgbW9uaXRvciwgdWludCB3YXRjaF9pZCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBv c2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91 cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9t ZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1k bmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRh L21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0 LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21l dGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9t ZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRh LXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlm aWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1l dGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRh LXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgx MS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0 aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBpbnN0YW5jZV9wb3MgPSA0Ljkp XQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBLZXlIYW5kbGVyRnVuYyAoTWV0YS5EaXNwbGF5IGRp c3BsYXksIE1ldGEuV2luZG93IHdpbmRvdywgW0NDb2RlICh0eXBlID0gIkNsdXR0ZXJLZXlFdmVu dCoiKV0gQ2x1dHRlci5LZXlFdmVudD8gZXZlbnQsIE1ldGEuS2V5QmluZGluZyBiaW5kaW5nKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMu aCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIu aCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFp bi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1 cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0 YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cu aCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgs bWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxt ZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEt c2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdl LmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxt ZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0 YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEt eDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3Ro ZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3Bh Y2UuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIFByZWZz Q2hhbmdlZEZ1bmMgKE1ldGEuUHJlZmVyZW5jZSBwcmVmKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEv Y29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRh L2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91 cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxt ZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9t ZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5o LG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNv bnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1l dGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxt ZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRh L21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAt bm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9y LmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRh L21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21l dGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1l dGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGluc3RhbmNlX3BvcyA9 IDEuOSldCistCXB1YmxpYyBkZWxlZ2F0ZSBib29sIFdpbmRvd0ZvcmVhY2hGdW5jIChNZXRhLldp bmRvdyB3aW5kb3cpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVy LmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21w b3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRp bmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cu aCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVu dW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hv cnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25p dG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3Mt Y29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9y eS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxt ZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21l dGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdy b3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdl ci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9w cmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cu aCxtZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUgPSAiTUVUQV9DVVJSRU5UX1RJTUUiKV0KKy0JcHVi bGljIGNvbnN0IGludCBDVVJSRU5UX1RJTUU7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0 b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5o LG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRh L21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRh LWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQu aCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21l dGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0Lmgs bWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEt cmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRh LXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNv dW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNh dGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEv bWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdv cmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1l cnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwu aCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX0RFRkFVTFRf SUNPTl9OQU1FIildCistCXB1YmxpYyBjb25zdCBzdHJpbmcgREVGQVVMVF9JQ09OX05BTUU7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgs bWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgs bWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4u aCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJz b3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEv bWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgs bWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1l dGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0 YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNo YXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5o LG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0 YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEt d2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgx MS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVt ZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNl LmgiLCBjbmFtZSA9ICJNRVRBX0lDT05fSEVJR0hUIildCistCXB1YmxpYyBjb25zdCBpbnQgSUNP Tl9IRUlHSFQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxt ZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3Mu aCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFj dG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1l dGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10 eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1 dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3It bWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250 cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5Lmgs bWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEv bWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12 ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAu aCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgs bWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZz LmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1l dGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX0lDT05fV0lEVEgiKV0KKy0JcHVibGljIGNv bnN0IGludCBJQ09OX1dJRFRIOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9i YXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0 YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tl eWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1k aWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9t ZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGli aXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0 YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1h Y2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ct ZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5 ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxt ZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2lu ZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2Ut bWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgs bWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93 aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUgPSAiTUVUQV9NQUpPUl9WRVJTSU9OIild CistCXB1YmxpYyBjb25zdCBpbnQgTUFKT1JfVkVSU0lPTjsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEv Y29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRh L2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91 cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxt ZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9t ZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5o LG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNv bnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1l dGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxt ZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRh L21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAt bm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9y LmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRh L21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21l dGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1l dGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFf TUlDUk9fVkVSU0lPTiIpXQorLQlwdWJsaWMgY29uc3QgaW50IE1JQ1JPX1ZFUlNJT047CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0 YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0 YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxt ZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3It dHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0 YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0 YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEv bWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9t ZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBl ZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1l dGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9t ZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2lu ZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1k aXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5o LG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgi LCBjbmFtZSA9ICJNRVRBX01JTklfSUNPTl9IRUlHSFQiKV0KKy0JcHVibGljIGNvbnN0IGludCBN SU5JX0lDT05fSEVJR0hUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJy aWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9j b21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJp bmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFs b2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRh LWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQt c2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1t b25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nl c3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFj dG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIu aCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRh L21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93 LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFu YWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0 YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5k b3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUgPSAiTUVUQV9NSU5JX0lDT05fV0lEVEgiKV0K Ky0JcHVibGljIGNvbnN0IGludCBNSU5JX0lDT05fV0lEVEg7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRh L2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0 YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3Jv dXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgs bWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEv bWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3Iu aCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1j b250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxt ZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgs bWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0 YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVw LW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rv ci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0 YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9t ZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxt ZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRB X01JTk9SX1ZFUlNJT04iKV0KKy0JcHVibGljIGNvbnN0IGludCBNSU5PUl9WRVJTSU9OOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1l dGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1l dGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgs bWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29y LXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21l dGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1l dGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRh L21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEv bWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFw ZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxt ZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEv bWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdp bmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEt ZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUu aCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5o IiwgY25hbWUgPSAiTUVUQV9QTFVHSU5fQVBJX1ZFUlNJT04iKV0KKy0JcHVibGljIGNvbnN0IGlu dCBQTFVHSU5fQVBJX1ZFUlNJT047CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEv a2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEt YmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3Nl LWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRh L21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5o aWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9t ZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3Rl LWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRv dy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBs YXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5o LG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13 aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFj ZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMu aCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRh L3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZX0JFRk9S RV9SRURSQVciKV0KKy0JcHVibGljIGNvbnN0IGludCBQUklPUklUWV9CRUZPUkVfUkVEUkFXOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5o LG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5o LG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWlu LmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vy c29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRh L21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5o LG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxt ZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1l dGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1z aGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2Uu aCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1l dGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRh LXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14 MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhl bWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFj ZS5oIiwgY25hbWUgPSAiTUVUQV9QUklPUklUWV9QUkVGU19OT1RJRlkiKV0KKy0JcHVibGljIGNv bnN0IGludCBQUklPUklUWV9QUkVGU19OT1RJRlk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBv c2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91 cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9t ZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1k bmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRh L21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0 LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21l dGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9t ZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRh LXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlm aWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1l dGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRh LXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgx MS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0 aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9S SVRZX1JFRFJBVyIpXQorLQlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZX1JFRFJBVzsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRh L2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRh L2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1l dGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10 cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRh LWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRh L21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21l dGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVk LXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0 YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21l dGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5k b3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRp c3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgs bWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIs IGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUkVTSVpFIildCistCXB1YmxpYyBjb25zdCBpbnQgUFJJ T1JJVFlfUkVTSVpFOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVy LmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21w b3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRp bmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cu aCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVu dW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hv cnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25p dG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3Mt Y29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9y eS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxt ZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21l dGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdy b3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdl ci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9w cmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cu aCxtZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUgPSAiTUVUQV9WSVJUVUFMX0NPUkVfS0VZQk9BUkRf SUQiKV0KKy0JcHVibGljIGNvbnN0IGludCBWSVJUVUFMX0NPUkVfS0VZQk9BUkRfSUQ7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0 YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0 YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxt ZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3It dHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0 YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0 YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEv bWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9t ZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBl ZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1l dGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9t ZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2lu ZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1k aXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5o LG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgi LCBjbmFtZSA9ICJNRVRBX1ZJUlRVQUxfQ09SRV9QT0lOVEVSX0lEIildCistCXB1YmxpYyBjb25z dCBpbnQgVklSVFVBTF9DT1JFX1BPSU5URVJfSUQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBv c2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91 cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9t ZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1k bmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRh L21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0 LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21l dGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9t ZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRh LXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlm aWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1l dGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRh LXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgx MS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0 aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyBi b29sIGFjdGl2YXRlX3Nlc3Npb24gKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3Iu aCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1l dGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21l dGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNs b3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxt ZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEt aW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0 YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVt b3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNo YWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5k LXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlv bi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0 YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtz cGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJv cnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxt ZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGV4 aXQgKE1ldGEuRXhpdENvZGUgY29kZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3Iu aCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1l dGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21l dGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNs b3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxt ZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEt aW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0 YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVt b3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNo YWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5k LXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlv bi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0 YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtz cGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJv cnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxt ZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVk IEdMaWIuT3B0aW9uQ29udGV4dCBnZXRfb3B0aW9uX2NvbnRleHQgKCk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24u aCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5 LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEt YmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWlt YWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5o LG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1v bml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxh dW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVn aW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRp bmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJl LmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1z dGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRv dy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBl LmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5Lmgs bWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlw ZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVi bGljIHN0YXRpYyBib29sIGdldF9yZXBsYWNlX2N1cnJlbnRfd20gKCk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24u aCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5 LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEt YmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWlt YWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5o LG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1v bml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxh dW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVn aW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRp bmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJl LmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1z dGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRv dy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBl LmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5Lmgs bWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlw ZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIGluaXQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3Iu aCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1l dGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21l dGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNs b3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxt ZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEt aW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0 YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVt b3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNo YWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5k LXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlv bi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0 YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtz cGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJv cnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxt ZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGlz X3Jlc3RhcnQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIu aCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGlu Z3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5o LG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51 bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9y dGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1j b250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1l dGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0 YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3Jv dXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3By ZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5o LG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHF1aXQgKE1ldGEuRXhp dENvZGUgY29kZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIu aCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGlu Z3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5o LG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51 bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9y dGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0 b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1j b250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5 LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1l dGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0 YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3Jv dXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3By ZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5o LG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlZ2lzdGVyX3dpdGhf c2Vzc2lvbiAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5o LG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5n cy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt YWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgs bWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVt LXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0 Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRv ci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNv bnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rvcnku aCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0 YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRh LXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91 cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIu aCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJl ZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93Lmgs bWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVzdGFydCAoc3RyaW5n PyBtZXNzYWdlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5o LG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5n cy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt YWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgs bWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVt LXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0 Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRv ci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNv bnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rvcnku aCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0 YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRh LXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91 cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIu aCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJl ZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93Lmgs bWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIGludCBydW4gKCk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9j b21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9k aXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRh L21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJh Y2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1p ZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9t ZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0 YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRh LXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10 ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEv bWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRh LXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93 LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNw bGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1l dGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0K Ky0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9nbm9tZV93bV9rZXliaW5kaW5ncyAoc3RyaW5nIHdt X2tleWJpbmRpbmdzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmll ci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29t cG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5k aW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9n LmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1l bnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNo b3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9u aXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNz LWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rv cnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgs bWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9t ZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1n cm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFn ZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEv cHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93 LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3dtX25hbWUg KHN0cmluZyB3bV9uYW1lKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFy cmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEv Y29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXli aW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlh bG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0 YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0 LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEt bW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNj ZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZh Y3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVy LmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0 YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRv dy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1h bmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1l dGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2lu ZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgeDExX2luaXRf Z2RrX2Rpc3BsYXkgKCkgdGhyb3dzIEdMaWIuRXJyb3I7CistfQorZGlmZiAtLWdpdCB2YXBpL2xp Ym11dHRlci01LmRlcHMgdmFwaS9saWJtdXR0ZXItNi5kZXBzCitzaW1pbGFyaXR5IGluZGV4IDUw JQorcmVuYW1lIGZyb20gdmFwaS9saWJtdXR0ZXItNS5kZXBzCityZW5hbWUgdG8gdmFwaS9saWJt dXR0ZXItNi5kZXBzCitpbmRleCA0OGFhNzU2My4uMjIzNTI1ZTQgMTAwNjQ0CistLS0gdmFwaS9s aWJtdXR0ZXItNS5kZXBzCisrKysgdmFwaS9saWJtdXR0ZXItNi5kZXBzCitAQCAtMSw1ICsxLDYg QEAKKyBndGsrLTMuMAorIGpzb24tZ2xpYi0xLjAKKy1tdXR0ZXItY2x1dHRlci01CisrbXV0dGVy LWNsdXR0ZXItNgorIHgxMQorIHhmaXhlcy00LjAKKytncmFwaGVuZS1nb2JqZWN0LTEuMAorZGlm ZiAtLWdpdCB2YXBpL2xpYm11dHRlci01LnZhcGkgdmFwaS9saWJtdXR0ZXItNi52YXBpCitzaW1p bGFyaXR5IGluZGV4IDk3JQorcmVuYW1lIGZyb20gdmFwaS9saWJtdXR0ZXItNS52YXBpCityZW5h bWUgdG8gdmFwaS9saWJtdXR0ZXItNi52YXBpCitpbmRleCBiOTVhMjhlNi4uYjM2YmUxYjcgMTAw NjQ0CistLS0gdmFwaS9saWJtdXR0ZXItNS52YXBpCisrKysgdmFwaS9saWJtdXR0ZXItNi52YXBp CitAQCAtMSwxMiArMSwxMCBAQAorLS8qIGxpYm11dHRlci01LnZhcGkgZ2VuZXJhdGVkIGJ5IHZh cGlnZW4sIGRvIG5vdCBtb2RpZnkuICovCisrLyogbGlibXV0dGVyLTYudmFwaSBnZW5lcmF0ZWQg YnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKyAKKy1bQ0NvZGUgKGNwcmVmaXggPSAiTWV0 YSIsIGdpcl9uYW1lc3BhY2UgPSAiTWV0YSIsIGdpcl92ZXJzaW9uID0gIjUiLCBsb3dlcl9jYXNl X2NwcmVmaXggPSAibWV0YV8iKV0KKytbQ0NvZGUgKGNwcmVmaXggPSAiTWV0YSIsIGdpcl9uYW1l c3BhY2UgPSAiTWV0YSIsIGdpcl92ZXJzaW9uID0gIjYiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAi bWV0YV8iKV0KKyBuYW1lc3BhY2UgTWV0YSB7CisgCW5hbWVzcGFjZSBDb21wb3NpdG9yIHsKKyAJ CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBj bmFtZSA9ICJtZXRhX2Rpc2FibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSIpXQorIAkJcHVibGlj IHN0YXRpYyB2b2lkIGRpc2FibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5 IGRpc3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRv ci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIildCist CQlwdWJsaWMgc3RhdGljIHZvaWQgZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIChNZXRhLkRpc3Bs YXkgZGlzcGxheSk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3Np dG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9lbmFibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxh eSIpXQorIAkJcHVibGljIHN0YXRpYyB2b2lkIGVuYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5 IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9mb2N1c19zdGFnZV93aW5k b3ciKV0KK0BAIC0yMSw4ICsxOSw2IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzdGF0 aWMgdW5vd25lZCBHTGliLkxpc3Q8Q2x1dHRlci5BY3Rvcj4gZ2V0X3dpbmRvd19hY3RvcnMgKE1l dGEuRGlzcGxheSBkaXNwbGF5KTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dldF93aW5kb3dfZ3JvdXBfZm9y X2Rpc3BsYXkiKV0KKyAJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF93 aW5kb3dfZ3JvdXBfZm9yX2Rpc3BsYXkgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9 ICJtZXRhX3NldF9zdGFnZV9pbnB1dF9yZWdpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBz ZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIChNZXRhLkRpc3BsYXkgZGlzcGxheSwgWC5Yc2VydmVyUmVn aW9uIHJlZ2lvbik7CisgCX0KKyAJbmFtZXNwYWNlIFByZWZzIHsKKyAJCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2JlbGxfaXNf YXVkaWJsZSIpXQorQEAgLTE2NCw3ICsxNjAsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJs aWMgdm9pZCBzZXRfbnVtbG9jayAoYm9vbCBudW1sb2NrX3N0YXRlKTsKKyAJCXB1YmxpYyBzaWdu YWwgdm9pZCBrZXltYXBfY2hhbmdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBrZXltYXBf bGF5b3V0X2dyb3VwX2NoYW5nZWQgKHVpbnQgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9p ZCBsYXN0X2RldmljZV9jaGFuZ2VkIChpbnQgb2JqZWN0KTsKKysJCXB1YmxpYyBzaWduYWwgdm9p ZCBsYXN0X2RldmljZV9jaGFuZ2VkIChDbHV0dGVyLklucHV0RGV2aWNlIG9iamVjdCk7CisgCQlw dWJsaWMgc2lnbmFsIHZvaWQgbGlkX2lzX2Nsb3NlZF9jaGFuZ2VkIChib29sIG9iamVjdCk7Cisg CX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgi LCB0eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9nZXRfdHlwZSAoKSIpXQorQEAgLTE3NCw3ICsx NzAsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgc3RhdGljIHZvaWQgcmVmcmVzaF9h bGwgKCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfYmxlbmQgKEdMaWIuRmlsZSBmaWxlMSwgR0xpYi5G aWxlIGZpbGUyLCBkb3VibGUgYmxlbmRfZmFjdG9yLCBHRGVza3RvcC5CYWNrZ3JvdW5kU3R5bGUg c3R5bGUpOworIAkJcHVibGljIHZvaWQgc2V0X2NvbG9yIChDbHV0dGVyLkNvbG9yIGNvbG9yKTsK Ky0JCXB1YmxpYyB2b2lkIHNldF9maWxlIChHTGliLkZpbGUgZmlsZSwgR0Rlc2t0b3AuQmFja2dy b3VuZFN0eWxlIHN0eWxlKTsKKysJCXB1YmxpYyB2b2lkIHNldF9maWxlIChHTGliLkZpbGU/IGZp bGUsIEdEZXNrdG9wLkJhY2tncm91bmRTdHlsZSBzdHlsZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRf Z3JhZGllbnQgKEdEZXNrdG9wLkJhY2tncm91bmRTaGFkaW5nIHNoYWRpbmdfZGlyZWN0aW9uLCBD bHV0dGVyLkNvbG9yIGNvbG9yLCBDbHV0dGVyLkNvbG9yIHNlY29uZF9jb2xvcik7CisgCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKyAJCXB1YmxpYyBNZXRhLkRpc3BsYXkgbWV0YV9kaXNwbGF5IHsgb3du ZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KK0BAIC0yNzUsNyArMjcxLDcgQEAgbmFtZXNwYWNlIE1ldGEg eworIAkJcHVibGljIHVub3duZWQgQ29nbC5UZXh0dXJlIGdldF9zcHJpdGUgKCk7CisgCQlwdWJs aWMgdm9pZCBzZXRfcG9pbnRlcl92aXNpYmxlIChib29sIHZpc2libGUpOworIAkJcHVibGljIHNp Z25hbCB2b2lkIGN1cnNvcl9jaGFuZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGN1cnNv cl9tb3ZlZCAoZmxvYXQgb2JqZWN0LCBmbG9hdCBwMCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQg Y3Vyc29yX21vdmVkIChmbG9hdCB4LCBmbG9hdCB5KTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB2 aXNpYmlsaXR5X2NoYW5nZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvZGlzcGxheS5oIiwgdHlwZV9pZCA9ICJtZXRhX2Rpc3BsYXlfZ2V0X3R5cGUgKCkiKV0K K0BAIC0zMjcsNiArMzIzLDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIGJvb2wgeHNl cnZlcl90aW1lX2lzX2JlZm9yZSAodWludDMyIHRpbWUxLCB1aW50MzIgdGltZTIpOworIAkJcHVi bGljIE1ldGEuV2luZG93IGZvY3VzX3dpbmRvdyB7IGdldDsgfQorIAkJcHVibGljIHNpZ25hbCB2 b2lkIGFjY2VsZXJhdG9yX2FjdGl2YXRlZCAodWludCBvYmplY3QsIENsdXR0ZXIuSW5wdXREZXZp Y2UgcDAsIHVpbnQgcDEpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGNsb3NpbmcgKCk7CisgCQlw dWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29yX3VwZGF0ZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZv aWQgZ2xfdmlkZW9fbWVtb3J5X3B1cmdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBncmFi X29wX2JlZ2luIChNZXRhLkRpc3BsYXkgb2JqZWN0LCBNZXRhLldpbmRvdyBwMCwgTWV0YS5HcmFi T3AgcDEpOworQEAgLTM1MCw2ICszNDcsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMg c2lnbmFsIHZvaWQgd29ya2FyZWFzX2NoYW5nZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQg eDExX2Rpc3BsYXlfY2xvc2luZyAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB4MTFfZGlzcGxh eV9vcGVuZWQgKCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgeDExX2Rpc3BsYXlfc2V0dXAgKCk7 CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1kbmQuaCIsIHR5 cGVfaWQgPSAibWV0YV9kbmRfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIERuZCA6IEdM aWIuT2JqZWN0IHsKK0BAIC0zNzAsMTEgKzM2OCwxMCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlw dWJsaWMgdWludCBhZGRfaWRsZV93YXRjaCAodWludDY0IGludGVydmFsX21zZWMsIG93bmVkIE1l dGEuSWRsZU1vbml0b3JXYXRjaEZ1bmM/IGNhbGxiYWNrKTsKKyAJCXB1YmxpYyB1aW50IGFkZF91 c2VyX2FjdGl2ZV93YXRjaCAob3duZWQgTWV0YS5JZGxlTW9uaXRvcldhdGNoRnVuYz8gY2FsbGJh Y2spOworIAkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuSWRsZU1vbml0b3IgZ2V0X2NvcmUg KCk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5JZGxlTW9uaXRvciBnZXRfZm9yX2Rl dmljZSAoaW50IGRldmljZV9pZCk7CisgCQlwdWJsaWMgaW50NjQgZ2V0X2lkbGV0aW1lICgpOwor IAkJcHVibGljIHZvaWQgcmVtb3ZlX3dhdGNoICh1aW50IGlkKTsKKyAJCVtOb0FjY2Vzc29yTWV0 aG9kXQorLQkJcHVibGljIGludCBkZXZpY2VfaWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVi bGljIENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0K KyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjb3B5X2Z1 bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwg dHlwZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5nX2dldF90eXBlICgpIildCisgCVtDb21wYWN0XQor QEAgLTUzNiwxNSArNTMzLDE0IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzaWduYWwg dm9pZCBjaGFuZ2VkICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21ldGEtc2hhcGVkLXRleHR1cmUuaCIsIHR5cGVfaWQgPSAibWV0YV9zaGFwZWRfdGV4dHVyZV9n ZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgU2hhcGVkVGV4dHVyZSA6IENsdXR0ZXIuQWN0 b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5l ciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKysJcHVibGljIGNsYXNzIFNoYXBlZFRleHR1cmUgOiBH TGliLk9iamVjdCwgQ2x1dHRlci5Db250ZW50IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9m dW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBTaGFwZWRUZXh0dXJlICgpOworLQkJcHVi bGljIENhaXJvLlN1cmZhY2UgZ2V0X2ltYWdlIChDYWlyby5SZWN0YW5nbGVJbnQgY2xpcCk7Cisr CQlwdWJsaWMgQ2Fpcm8uU3VyZmFjZT8gZ2V0X2ltYWdlIChDYWlyby5SZWN0YW5nbGVJbnQ/IGNs aXApOworIAkJcHVibGljIHVub3duZWQgQ29nbC5UZXh0dXJlIGdldF90ZXh0dXJlICgpOworIAkJ cHVibGljIHZvaWQgc2V0X2NyZWF0ZV9taXBtYXBzIChib29sIGNyZWF0ZV9taXBtYXBzKTsKKyAJ CXB1YmxpYyB2b2lkIHNldF9tYXNrX3RleHR1cmUgKENvZ2wuVGV4dHVyZSBtYXNrX3RleHR1cmUp OworIAkJcHVibGljIHZvaWQgc2V0X29wYXF1ZV9yZWdpb24gKG93bmVkIENhaXJvLlJlZ2lvbiBv cGFxdWVfcmVnaW9uKTsKKy0JCXB1YmxpYyBib29sIHVwZGF0ZV9hcmVhIChpbnQgeCwgaW50IHks IGludCB3aWR0aCwgaW50IGhlaWdodCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2l6ZV9jaGFu Z2VkICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtc291 bmQtcGxheWVyLmgiLCB0eXBlX2lkID0gIm1ldGFfc291bmRfcGxheWVyX2dldF90eXBlICgpIild CitAQCAtNzU2LDE3ICs3NTIsMTYgQEAgbmFtZXNwYWNlIE1ldGEgeworIAlwdWJsaWMgYWJzdHJh Y3QgY2xhc3MgV2luZG93QWN0b3IgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENs dXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7 CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0 ZWQgV2luZG93QWN0b3IgKCk7CisrCQlwdWJsaWMgQ2Fpcm8uU3VyZmFjZT8gZ2V0X2ltYWdlIChD YWlyby5SZWN0YW5nbGVJbnQ/IGNsaXApOworIAkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cg Z2V0X21ldGFfd2luZG93ICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRf dGV4dHVyZSAoKTsKKysJCXB1YmxpYyB1bm93bmVkIE1ldGEuU2hhcGVkVGV4dHVyZSBnZXRfdGV4 dHVyZSAoKTsKKyAJCXB1YmxpYyBib29sIGlzX2Rlc3Ryb3llZCAoKTsKKyAJCXB1YmxpYyB2b2lk IHN5bmNfdmlzaWJpbGl0eSAoKTsKKyAJCXB1YmxpYyBNZXRhLldpbmRvdyBtZXRhX3dpbmRvdyB7 IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBzdHJp bmcgc2hhZG93X2NsYXNzIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJcHVibGljIE1ldGEuU2hhZG93TW9kZSBzaGFkb3dfbW9kZSB7IGdldDsgc2V0OyB9Cisr CQlwdWJsaWMgc2lnbmFsIHZvaWQgZGFtYWdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBl ZmZlY3RzX2NvbXBsZXRlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBmaXJzdF9mcmFtZSAo KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCB0aGF3ZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCIsIHR5cGVfaWQgPSAibWV0 YV93aW5kb3dfZ3JvdXBfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIFdpbmRvd0dyb3Vw IDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENs dXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworQEAgLTgxMyw3ICs4MDgsNyBA QCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZSBnZXRf YWN0aXZlX3dvcmtzcGFjZSAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X2FjdGl2ZV93b3Jrc3BhY2Vf aW5kZXggKCk7CisgCQlwdWJsaWMgaW50IGdldF9uX3dvcmtzcGFjZXMgKCk7CistCQlwdWJsaWMg dW5vd25lZCBNZXRhLldvcmtzcGFjZSBnZXRfd29ya3NwYWNlX2J5X2luZGV4IChpbnQgaW5kZXgp OworKwkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2U/IGdldF93b3Jrc3BhY2VfYnlfaW5k ZXggKGludCBpbmRleCk7CisgCQlwdWJsaWMgdm9pZCBvdmVycmlkZV93b3Jrc3BhY2VfbGF5b3V0 IChNZXRhLkRpc3BsYXlDb3JuZXIgc3RhcnRpbmdfY29ybmVyLCBib29sIHZlcnRpY2FsX2xheW91 dCwgaW50IG5fcm93cywgaW50IG5fY29sdW1ucyk7CisgCQlwdWJsaWMgdm9pZCByZW1vdmVfd29y a3NwYWNlIChNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UsIHVpbnQzMiB0aW1lc3RhbXApOworIAkJ cHVibGljIHZvaWQgcmVvcmRlcl93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSwg aW50IG5ld19pbmRleCk7CitAQCAtODMzLDExICs4MjgsMTMgQEAgbmFtZXNwYWNlIE1ldGEgewor IAlwdWJsaWMgY2xhc3MgWDExRGlzcGxheSA6IEdMaWIuT2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBYMTFEaXNwbGF5ICgp OworKwkJcHVibGljIHZvaWQgY2xlYXJfc3RhZ2VfaW5wdXRfcmVnaW9uICgpOworIAkJcHVibGlj IGludCBnZXRfZGFtYWdlX2V2ZW50X2Jhc2UgKCk7CisgCQlwdWJsaWMgaW50IGdldF9zY3JlZW5f bnVtYmVyICgpOworIAkJcHVibGljIGludCBnZXRfc2hhcGVfZXZlbnRfYmFzZSAoKTsKKyAJCXB1 YmxpYyBib29sIGhhc19zaGFwZSAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9jbV9zZWxlY3Rpb24g KCk7CisrCQlwdWJsaWMgdm9pZCBzZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIChYLlhzZXJ2ZXJSZWdp b24gcmVnaW9uKTsKKyAJCXB1YmxpYyBib29sIHh3aW5kb3dfaXNfYV9ub19mb2N1c193aW5kb3cg KFguV2luZG93IHh3aW5kb3cpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgiLCB0eXBlX2NuYW1lID0gIk1ldGFDbG9zZURpYWxvZ0lu dGVyZmFjZSIsIHR5cGVfaWQgPSAibWV0YV9jbG9zZV9kaWFsb2dfZ2V0X3R5cGUgKCkiKV0KK0BA IC04OTksNyArODk2LDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHVpbnQgdmVyc2lv bl9taWNybzsKKyAJCXB1YmxpYyB1aW50IHZlcnNpb25fYXBpOworIAl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIHR5cGVfaWQgPSAibWV0YV9yZWN0YW5nbGVf Z2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94 ZWRfZnJlZSIsIHR5cGVfaWQgPSAibWV0YV9yZWN0YW5nbGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVi bGljIHN0cnVjdCBSZWN0YW5nbGUgeworIAkJcHVibGljIGludCB4OworIAkJcHVibGljIGludCB5 OworQEAgLTE0NDMsNiArMTQ0MCw4IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCBhY3Rp dmF0ZV9zZXNzaW9uICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWlu LmgiKV0KKysJcHVibGljIHN0YXRpYyB2b2lkIGFkZF9jbHV0dGVyX2RlYnVnX2ZsYWdzIChDbHV0 dGVyLkRlYnVnRmxhZyBkZWJ1Z19mbGFncywgQ2x1dHRlci5EcmF3RGVidWdGbGFnIGRyYXdfZmxh Z3MsIENsdXR0ZXIuUGlja0RlYnVnRmxhZyBwaWNrX2ZsYWdzKTsKKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBleGl0IChN ZXRhLkV4aXRDb2RlIGNvZGUpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyBzdHJpbmcgZ191dGY4X3N0cm5kdXAgKHN0cmluZyBz cmMsIHNpemVfdCBuKTsKK0BAIC0xNDU5LDYgKzE0NTgsOCBAQCBuYW1lc3BhY2UgTWV0YSB7Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlwdWJsaWMgc3Rh dGljIHZvaWQgcmVnaXN0ZXJfd2l0aF9zZXNzaW9uICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKysJcHVibGljIHN0YXRpYyB2b2lkIHJlbW92ZV9jbHV0 dGVyX2RlYnVnX2ZsYWdzIChDbHV0dGVyLkRlYnVnRmxhZyBkZWJ1Z19mbGFncywgQ2x1dHRlci5E cmF3RGVidWdGbGFnIGRyYXdfZmxhZ3MsIENsdXR0ZXIuUGlja0RlYnVnRmxhZyBwaWNrX2ZsYWdz KTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1Ymxp YyBzdGF0aWMgdm9pZCByZXN0YXJ0IChzdHJpbmc/IG1lc3NhZ2UpOworIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyBpbnQgcnVuICgp OworQEAgLTE0NjcsNSArMTQ2OCw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRf d21fbmFtZSAoc3RyaW5nIHdtX25hbWUpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiKV0KKysJcHVibGljIHN0YXRpYyB2b2lkIHRlc3RfaW5pdCAoKTsKKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMg Ym9vbCB4MTFfaW5pdF9nZGtfZGlzcGxheSAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyB9CitkaWZm IC0tZ2l0IHZhcGkvbGlibXV0dGVyLTctY3VzdG9tLnZhbGEgdmFwaS9saWJtdXR0ZXItNy1jdXN0 b20udmFsYQorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwLi4xZTBiOTE3Ywor LS0tIC9kZXYvbnVsbAorKysrIHZhcGkvbGlibXV0dGVyLTctY3VzdG9tLnZhbGEKK0BAIC0wLDAg KzEsNyBAQAorK1tDQ29kZSAoaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrcHVibGljIHN0cnVjdCBi ZWZvcmVfZnJhbWUgeworK30KKysKKytbQ0NvZGUgKGhhc190eXBlX2lkID0gZmFsc2UpXQorK3B1 YmxpYyBzdHJ1Y3QgZnJhbWUgeworK30KK2RpZmYgLS1naXQgdmFwaS9saWJtdXR0ZXItNy5kZXBz IHZhcGkvbGlibXV0dGVyLTcuZGVwcworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAw MDAwLi4yZWY5MTllZQorLS0tIC9kZXYvbnVsbAorKysrIHZhcGkvbGlibXV0dGVyLTcuZGVwcwor QEAgLTAsMCArMSw2IEBACisrZ3RrKy0zLjAKKytqc29uLWdsaWItMS4wCisrbXV0dGVyLWNsdXR0 ZXItNworK3gxMQorK3hmaXhlcy00LjAKKytncmFwaGVuZS1nb2JqZWN0LTEuMAorZGlmZiAtLWdp dCB2YXBpL2xpYm11dHRlci0zLnZhcGkgdmFwaS9saWJtdXR0ZXItNy52YXBpCitzaW1pbGFyaXR5 IGluZGV4IDc1JQorcmVuYW1lIGZyb20gdmFwaS9saWJtdXR0ZXItMy52YXBpCityZW5hbWUgdG8g dmFwaS9saWJtdXR0ZXItNy52YXBpCitpbmRleCAxNzE1YWE4Zi4uOTBjNDE1OTAgMTAwNjQ0Cist LS0gdmFwaS9saWJtdXR0ZXItMy52YXBpCisrKysgdmFwaS9saWJtdXR0ZXItNy52YXBpCitAQCAt MSwxMiArMSwxMCBAQAorLS8qIGxpYm11dHRlci0zLnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4s IGRvIG5vdCBtb2RpZnkuICovCisrLyogbGlibXV0dGVyLTcudmFwaSBnZW5lcmF0ZWQgYnkgdmFw aWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKyAKKy1bQ0NvZGUgKGNwcmVmaXggPSAiTWV0YSIsIGdp cl9uYW1lc3BhY2UgPSAiTWV0YSIsIGdpcl92ZXJzaW9uID0gIjMiLCBsb3dlcl9jYXNlX2NwcmVm aXggPSAibWV0YV8iKV0KKytbQ0NvZGUgKGNwcmVmaXggPSAiTWV0YSIsIGdpcl9uYW1lc3BhY2Ug PSAiTWV0YSIsIGdpcl92ZXJzaW9uID0gIjciLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAibWV0YV8i KV0KKyBuYW1lc3BhY2UgTWV0YSB7CisgCW5hbWVzcGFjZSBDb21wb3NpdG9yIHsKKyAJCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9 ICJtZXRhX2Rpc2FibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSIpXQorIAkJcHVibGljIHN0YXRp YyB2b2lkIGRpc2FibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3Bs YXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCIsIGNuYW1lID0gIm1ldGFfZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIildCistCQlwdWJs aWMgc3RhdGljIHZvaWQgZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIChNZXRhLkRpc3BsYXkgZGlz cGxheSk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11 dHRlci5oIiwgY25hbWUgPSAibWV0YV9lbmFibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSIpXQor IAkJcHVibGljIHN0YXRpYyB2b2lkIGVuYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IChNZXRh LkRpc3BsYXkgZGlzcGxheSk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9j b21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9mb2N1c19zdGFnZV93aW5kb3ciKV0K K0BAIC0yMSw4ICsxOSw2IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzdGF0aWMgdW5v d25lZCBHTGliLkxpc3Q8Q2x1dHRlci5BY3Rvcj4gZ2V0X3dpbmRvd19hY3RvcnMgKE1ldGEuRGlz cGxheSBkaXNwbGF5KTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dldF93aW5kb3dfZ3JvdXBfZm9yX2Rpc3Bs YXkiKV0KKyAJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF93aW5kb3df Z3JvdXBfZm9yX2Rpc3BsYXkgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRh X3NldF9zdGFnZV9pbnB1dF9yZWdpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc3Rh Z2VfaW5wdXRfcmVnaW9uIChNZXRhLkRpc3BsYXkgZGlzcGxheSwgWC5Yc2VydmVyUmVnaW9uIHJl Z2lvbik7CisgCX0KKyAJbmFtZXNwYWNlIFByZWZzIHsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2JlbGxfaXNfYXVkaWJs ZSIpXQorQEAgLTQ3LDYgKzQzLDggQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHN0YXRp YyBNZXRhLkJ1dHRvbkxheW91dCBwcmVmc19nZXRfYnV0dG9uX2xheW91dCAoKTsKKyAJCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZz X2dldF9jZW50ZXJfbmV3X3dpbmRvd3MiKV0KKyAJCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19n ZXRfY2VudGVyX25ld193aW5kb3dzICgpOworKwkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2NoZWNrX2FsaXZlX3RpbWVv dXQiKV0KKysJCXB1YmxpYyBzdGF0aWMgdWludCBwcmVmc19nZXRfY2hlY2tfYWxpdmVfdGltZW91 dCAoKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFt ZSA9ICJtZXRhX3ByZWZzX2dldF9jb21wb3NpdGluZ19tYW5hZ2VyIildCisgCQlwdWJsaWMgc3Rh dGljIGJvb2wgcHJlZnNfZ2V0X2NvbXBvc2l0aW5nX21hbmFnZXIgKCk7CisgCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRf Y3Vyc29yX3NpemUiKV0KK0BAIC03NSw4ICs3Myw2IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1 YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfZ25vbWVfYWNjZXNzaWJpbGl0eSAoKTsKKyAJCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3By ZWZzX2dldF9nbm9tZV9hbmltYXRpb25zIildCisgCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNf Z2V0X2dub21lX2FuaW1hdGlvbnMgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfaWdub3JlX3JlcXVlc3RfaGlk ZV90aXRsZWJhciIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHByZWZzX2dldF9pZ25vcmVfcmVx dWVzdF9oaWRlX3RpdGxlYmFyICgpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2tleWJpbmRpbmdfYWN0aW9uIild CisgCQlwdWJsaWMgc3RhdGljIE1ldGEuS2V5QmluZGluZ0FjdGlvbiBwcmVmc19nZXRfa2V5Ymlu ZGluZ19hY3Rpb24gKHN0cmluZyBuYW1lKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9tb3VzZV9idXR0b25fbWVu dSIpXQorQEAgLTEwNSw4ICsxMDEsNiBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgc3Rh dGljIHZvaWQgcHJlZnNfaW5pdCAoKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX3NldF9mb3JjZV9mdWxsc2NyZWVuIild CisgCQlwdWJsaWMgc3RhdGljIHZvaWQgcHJlZnNfc2V0X2ZvcmNlX2Z1bGxzY3JlZW4gKGJvb2wg d2hldGhlcik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwg Y25hbWUgPSAibWV0YV9wcmVmc19zZXRfaWdub3JlX3JlcXVlc3RfaGlkZV90aXRsZWJhciIpXQor LQkJcHVibGljIHN0YXRpYyB2b2lkIHByZWZzX3NldF9pZ25vcmVfcmVxdWVzdF9oaWRlX3RpdGxl YmFyIChib29sIHdoZXRoZXIpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv cHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfc2V0X251bV93b3Jrc3BhY2VzIildCisgCQlw dWJsaWMgc3RhdGljIHZvaWQgcHJlZnNfc2V0X251bV93b3Jrc3BhY2VzIChpbnQgbl93b3Jrc3Bh Y2VzKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFt ZSA9ICJtZXRhX3ByZWZzX3NldF9zaG93X2ZhbGxiYWNrX2FwcF9tZW51IildCitAQCAtMTE3LDEy ICsxMTEsMTAgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHN0YXRpYyB2b2lkIGFkZF92 ZXJib3NlX3RvcGljIChNZXRhLkRlYnVnVG9waWMgdG9waWMpOworIAkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9leHRlcm5hbF9iaW5kaW5n X25hbWVfZm9yX2FjdGlvbiIpXQorIAkJcHVibGljIHN0YXRpYyBzdHJpbmcgZXh0ZXJuYWxfYmlu ZGluZ19uYW1lX2Zvcl9hY3Rpb24gKHVpbnQga2V5YmluZGluZ19hY3Rpb24pOworLQkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9nX3V0Zjhf c3RybmR1cCIpXQorLQkJcHVibGljIHN0YXRpYyBzdHJpbmcgZ191dGY4X3N0cm5kdXAgKHN0cmlu ZyBzcmMsIHNpemVfdCBuKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0 aWwuaCIsIGNuYW1lID0gIm1ldGFfZ2V0X2xvY2FsZV9kaXJlY3Rpb24iKV0KKyAJCXB1YmxpYyBz dGF0aWMgTWV0YS5Mb2NhbGVEaXJlY3Rpb24gZ2V0X2xvY2FsZV9kaXJlY3Rpb24gKCk7CisgCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2dy YXZpdHlfdG9fc3RyaW5nIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgc3RyaW5nIGdyYXZp dHlfdG9fc3RyaW5nIChpbnQgZ3Jhdml0eSk7CisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgc3Ry aW5nIGdyYXZpdHlfdG9fc3RyaW5nIChNZXRhLkdyYXZpdHkgZ3Jhdml0eSk7CisgCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2lzX2RlYnVn Z2luZyIpXQorIAkJcHVibGljIHN0YXRpYyBib29sIGlzX2RlYnVnZ2luZyAoKTsKKyAJCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfaXNfc3lu Y2luZyIpXQorQEAgLTE2NSwxMiArMTU3LDEzIEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1Ymxp YyB1bm93bmVkIE1ldGEuRG5kIGdldF9kbmQgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRhLlJl bW90ZUFjY2Vzc0NvbnRyb2xsZXIgZ2V0X3JlbW90ZV9hY2Nlc3NfY29udHJvbGxlciAoKTsKKyAJ CXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3N0YWdlICgpOworKwkJcHVibGljIGJv b2wgaXNfcmVuZGVyaW5nX2hhcmR3YXJlX2FjY2VsZXJhdGVkICgpOworIAkJcHVibGljIHZvaWQg bG9ja19sYXlvdXRfZ3JvdXAgKHVpbnQgaWR4KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9rZXltYXAg KHN0cmluZyBsYXlvdXRzLCBzdHJpbmcgdmFyaWFudHMsIHN0cmluZyBvcHRpb25zKTsKKyAJCXB1 YmxpYyB2b2lkIHNldF9udW1sb2NrIChib29sIG51bWxvY2tfc3RhdGUpOworIAkJcHVibGljIHNp Z25hbCB2b2lkIGtleW1hcF9jaGFuZ2VkICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGtleW1h cF9sYXlvdXRfZ3JvdXBfY2hhbmdlZCAodWludCBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2 b2lkIGxhc3RfZGV2aWNlX2NoYW5nZWQgKGludCBvYmplY3QpOworKwkJcHVibGljIHNpZ25hbCB2 b2lkIGxhc3RfZGV2aWNlX2NoYW5nZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0KTsKKyAJ CXB1YmxpYyBzaWduYWwgdm9pZCBsaWRfaXNfY2xvc2VkX2NoYW5nZWQgKGJvb2wgb2JqZWN0KTsK KyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tncm91bmQu aCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2dldF90eXBlICgpIildCitAQCAtMTgwLDcg KzE3Myw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzdGF0aWMgdm9pZCByZWZyZXNo X2FsbCAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9ibGVuZCAoR0xpYi5GaWxlIGZpbGUxLCBHTGli LkZpbGUgZmlsZTIsIGRvdWJsZSBibGVuZF9mYWN0b3IsIEdEZXNrdG9wLkJhY2tncm91bmRTdHls ZSBzdHlsZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfY29sb3IgKENsdXR0ZXIuQ29sb3IgY29sb3Ip OworLQkJcHVibGljIHZvaWQgc2V0X2ZpbGUgKEdMaWIuRmlsZSBmaWxlLCBHRGVza3RvcC5CYWNr Z3JvdW5kU3R5bGUgc3R5bGUpOworKwkJcHVibGljIHZvaWQgc2V0X2ZpbGUgKEdMaWIuRmlsZT8g ZmlsZSwgR0Rlc2t0b3AuQmFja2dyb3VuZFN0eWxlIHN0eWxlKTsKKyAJCXB1YmxpYyB2b2lkIHNl dF9ncmFkaWVudCAoR0Rlc2t0b3AuQmFja2dyb3VuZFNoYWRpbmcgc2hhZGluZ19kaXJlY3Rpb24s IENsdXR0ZXIuQ29sb3IgY29sb3IsIENsdXR0ZXIuQ29sb3Igc2Vjb25kX2NvbG9yKTsKKyAJCVtO b0FjY2Vzc29yTWV0aG9kXQorIAkJcHVibGljIE1ldGEuRGlzcGxheSBtZXRhX2Rpc3BsYXkgeyBv d25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorQEAgLTE5MCw5ICsxODMsMTggQEAgbmFtZXNwYWNlIE1l dGEgeworIAlwdWJsaWMgY2xhc3MgQmFja2dyb3VuZEFjdG9yIDogQ2x1dHRlci5BY3RvciwgQXRr LkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0 dGVyLlNjcmlwdGFibGUgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorIAkJcHVibGljIEJhY2tncm91bmRBY3RvciAo TWV0YS5EaXNwbGF5IGRpc3BsYXksIGludCBtb25pdG9yKTsKKysJCVtOb0FjY2Vzc29yTWV0aG9k XQorKwkJcHVibGljIE1ldGEuRGlzcGxheSBtZXRhX2Rpc3BsYXkgeyBvd25lZCBnZXQ7IGNvbnN0 cnVjdDsgfQorKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgaW50IG1vbml0b3IgeyBn ZXQ7IGNvbnN0cnVjdDsgfQorKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21ldGEtYmFja2dyb3VuZC1jb250ZW50LmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9j b250ZW50X2dldF90eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kQ29udGVudCA6 IEdMaWIuT2JqZWN0LCBDbHV0dGVyLkNvbnRlbnQgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIEJhY2tncm91bmRDb250ZW50ICgpOwor KwkJcHVibGljIHN0YXRpYyBDbHV0dGVyLkNvbnRlbnQgQG5ldyAoTWV0YS5EaXNwbGF5IGRpc3Bs YXksIGludCBtb25pdG9yKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9iYWNrZ3JvdW5kIChNZXRhLkJh Y2tncm91bmQgYmFja2dyb3VuZCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfZ3JhZGllbnQgKGJvb2wg ZW5hYmxlZCwgaW50IGhlaWdodCwgZG91YmxlIHRvbmVfc3RhcnQpOworLQkJcHVibGljIHZvaWQg c2V0X21vbml0b3IgKGludCBtb25pdG9yKTsKKyAJCXB1YmxpYyB2b2lkIHNldF92aWduZXR0ZSAo Ym9vbCBlbmFibGVkLCBkb3VibGUgYnJpZ2h0bmVzcywgZG91YmxlIHNoYXJwbmVzcyk7CisgCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKyAJCXB1YmxpYyBNZXRhLkJhY2tncm91bmQgYmFja2dyb3VuZCB7 IG93bmVkIGdldDsgc2V0OyB9CitAQCAtMjc3LDE0ICsyNzksMTQgQEAgbmFtZXNwYWNlIE1ldGEg eworIAkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuQ3Vyc29yVHJhY2tlciBnZXRfZm9yX2Rp c3BsYXkgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKyAJCXB1YmxpYyB2b2lkIGdldF9ob3QgKG91 dCBpbnQgeCwgb3V0IGludCB5KTsKKyAJCXB1YmxpYyB2b2lkIGdldF9wb2ludGVyIChpbnQgeCwg aW50IHksIENsdXR0ZXIuTW9kaWZpZXJUeXBlIG1vZHMpOworKwkJcHVibGljIGJvb2wgZ2V0X3Bv aW50ZXJfdmlzaWJsZSAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfc3By aXRlICgpOworIAkJcHVibGljIHZvaWQgc2V0X3BvaW50ZXJfdmlzaWJsZSAoYm9vbCB2aXNpYmxl KTsKKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIE1ldGEuQmFja2VuZCBiYWNrZW5k IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3Jf Y2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRh LW1vbml0b3ItbWFuYWdlci5oIiwgdHlwZV9pZCA9ICJtZXRhX2RidXNfZGlzcGxheV9jb25maWdf c2tlbGV0b25fZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIERCdXNEaXNwbGF5Q29uZmln U2tlbGV0b24gOiBHTGliLkRCdXNJbnRlcmZhY2VTa2VsZXRvbiwgR0xpYi5EQnVzSW50ZXJmYWNl IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3Rl Y3RlZCBEQnVzRGlzcGxheUNvbmZpZ1NrZWxldG9uICgpOworKwkJcHVibGljIHNpZ25hbCB2b2lk IGN1cnNvcl9tb3ZlZCAoZmxvYXQgeCwgZmxvYXQgeSk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQg dmlzaWJpbGl0eV9jaGFuZ2VkICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2Rpc3BsYXkuaCIsIHR5cGVfaWQgPSAibWV0YV9kaXNwbGF5X2dldF90eXBlICgpIild CisgCXB1YmxpYyBjbGFzcyBEaXNwbGF5IDogR0xpYi5PYmplY3QgeworQEAgLTMwOSwzMiArMzEx LDM5IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBib29sIGdldF9tb25pdG9yX2luX2Z1 bGxzY3JlZW4gKGludCBtb25pdG9yKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X21vbml0b3JfaW5kZXhf Zm9yX3JlY3QgKE1ldGEuUmVjdGFuZ2xlIHJlY3QpOworIAkJcHVibGljIGludCBnZXRfbW9uaXRv cl9uZWlnaGJvcl9pbmRleCAoaW50IHdoaWNoX21vbml0b3IsIE1ldGEuRGlzcGxheURpcmVjdGlv biBkaXIpOworKwkJcHVibGljIGZsb2F0IGdldF9tb25pdG9yX3NjYWxlIChpbnQgbW9uaXRvcik7 CisgCQlwdWJsaWMgaW50IGdldF9uX21vbml0b3JzICgpOworIAkJcHVibGljIHN0cmluZyBnZXRf cGFkX2FjdGlvbl9sYWJlbCAoQ2x1dHRlci5JbnB1dERldmljZSBwYWQsIE1ldGEuUGFkQWN0aW9u VHlwZSBhY3Rpb25fdHlwZSwgdWludCBhY3Rpb25fbnVtYmVyKTsKKyAJCXB1YmxpYyBpbnQgZ2V0 X3ByaW1hcnlfbW9uaXRvciAoKTsKKysJCXB1YmxpYyB1bm93bmVkIE1ldGEuU2VsZWN0aW9uIGdl dF9zZWxlY3Rpb24gKCk7CisgCQlwdWJsaWMgdm9pZCBnZXRfc2l6ZSAob3V0IGludCB3aWR0aCwg b3V0IGludCBoZWlnaHQpOworKwkJcHVibGljIHVub3duZWQgTWV0YS5Tb3VuZFBsYXllciBnZXRf c291bmRfcGxheWVyICgpOworIAkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X3RhYl9j dXJyZW50IChNZXRhLlRhYkxpc3QgdHlwZSwgTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlKTsKKyAJ CXB1YmxpYyBHTGliLkxpc3Q8d2VhayBNZXRhLldpbmRvdz4gZ2V0X3RhYl9saXN0IChNZXRhLlRh Ykxpc3QgdHlwZSwgTWV0YS5Xb3Jrc3BhY2U/IHdvcmtzcGFjZSk7CisgCQlwdWJsaWMgdW5vd25l ZCBNZXRhLldpbmRvdyBnZXRfdGFiX25leHQgKE1ldGEuVGFiTGlzdCB0eXBlLCBNZXRhLldvcmtz cGFjZSB3b3Jrc3BhY2UsIE1ldGEuV2luZG93PyB3aW5kb3csIGJvb2wgYmFja3dhcmQpOworIAkJ cHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2VNYW5hZ2VyIGdldF93b3Jrc3BhY2VfbWFuYWdl ciAoKTsKKy0JCXB1YmxpYyB1aW50IGdyYWJfYWNjZWxlcmF0b3IgKHN0cmluZyBhY2NlbGVyYXRv cik7CisrCQlwdWJsaWMgdWludCBncmFiX2FjY2VsZXJhdG9yIChzdHJpbmcgYWNjZWxlcmF0b3Is IE1ldGEuS2V5QmluZGluZ0ZsYWdzIGZsYWdzKTsKKyAJCXB1YmxpYyBib29sIGlzX3BvaW50ZXJf ZW11bGF0aW5nX3NlcXVlbmNlIChDbHV0dGVyLkV2ZW50U2VxdWVuY2U/IHNlcXVlbmNlKTsKKyAJ CXB1YmxpYyBib29sIHJlbW92ZV9rZXliaW5kaW5nIChzdHJpbmcgbmFtZSk7CisgCQlwdWJsaWMg dm9pZCByZXF1ZXN0X3BhZF9vc2QgKENsdXR0ZXIuSW5wdXREZXZpY2UgcGFkLCBib29sIGVkaXRp b25fbW9kZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfY3Vyc29yIChNZXRhLkN1cnNvciBjdXJzb3Ip OworKwkJcHVibGljIHZvaWQgc2V0X2lucHV0X2ZvY3VzIChNZXRhLldpbmRvdyB3aW5kb3csIGJv b2wgZm9jdXNfZnJhbWUsIHVpbnQzMiB0aW1lc3RhbXApOworIAkJcHVibGljIEdMaWIuU0xpc3Q8 d2VhayBNZXRhLldpbmRvdz4gc29ydF93aW5kb3dzX2J5X3N0YWNraW5nIChHTGliLlNMaXN0PE1l dGEuV2luZG93PiB3aW5kb3dzKTsKKyAJCXB1YmxpYyBib29sIHN1cHBvcnRzX2V4dGVuZGVkX2Jh cnJpZXJzICgpOworIAkJcHVibGljIHZvaWQgdW5mcmVlemVfa2V5Ym9hcmQgKHVpbnQzMiB0aW1l c3RhbXApOworIAkJcHVibGljIGJvb2wgdW5ncmFiX2FjY2VsZXJhdG9yICh1aW50IGFjdGlvbl9p ZCk7CisgCQlwdWJsaWMgdm9pZCB1bmdyYWJfa2V5Ym9hcmQgKHVpbnQzMiB0aW1lc3RhbXApOwor KwkJcHVibGljIHZvaWQgdW5zZXRfaW5wdXRfZm9jdXMgKHVpbnQzMiB0aW1lc3RhbXApOworIAkJ cHVibGljIGJvb2wgeHNlcnZlcl90aW1lX2lzX2JlZm9yZSAodWludDMyIHRpbWUxLCB1aW50MzIg dGltZTIpOworIAkJcHVibGljIE1ldGEuV2luZG93IGZvY3VzX3dpbmRvdyB7IGdldDsgfQorLQkJ cHVibGljIHNpZ25hbCB2b2lkIGFjY2VsZXJhdG9yX2FjdGl2YXRlZCAodWludCBvYmplY3QsIHVp bnQgcDAsIHVpbnQgcDEpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGFjY2VsZXJhdG9yX2FjdGl2 YXRlZCAodWludCBvYmplY3QsIENsdXR0ZXIuSW5wdXREZXZpY2UgcDAsIHVpbnQgcDEpOworKwkJ cHVibGljIHNpZ25hbCB2b2lkIGNsb3NpbmcgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vy c29yX3VwZGF0ZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZ2xfdmlkZW9fbWVtb3J5X3B1 cmdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBncmFiX29wX2JlZ2luIChNZXRhLkRpc3Bs YXkgb2JqZWN0LCBNZXRhLldpbmRvdyBwMCwgTWV0YS5HcmFiT3AgcDEpOworIAkJcHVibGljIHNp Z25hbCB2b2lkIGdyYWJfb3BfZW5kIChNZXRhLkRpc3BsYXkgb2JqZWN0LCBNZXRhLldpbmRvdyBw MCwgTWV0YS5HcmFiT3AgcDEpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGluX2Z1bGxzY3JlZW5f Y2hhbmdlZCAoKTsKKysJCXB1YmxpYyBzaWduYWwgYm9vbCBpbml0X3hzZXJ2ZXIgKEdMaWIuVGFz ayBvYmplY3QpOworIAkJcHVibGljIHNpZ25hbCBib29sIG1vZGlmaWVyc19hY2NlbGVyYXRvcl9h Y3RpdmF0ZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgb3ZlcmxheV9rZXkgKCk7CisgCQlw dWJsaWMgc2lnbmFsIHZvaWQgcGFkX21vZGVfc3dpdGNoIChDbHV0dGVyLklucHV0RGV2aWNlIG9i amVjdCwgdWludCBwMCwgdWludCBwMSk7CitAQCAtMzQ1LDcgKzM1NCw2IEBAIG5hbWVzcGFjZSBN ZXRhIHsKKyAJCXB1YmxpYyBzaWduYWwgYm9vbCBzaG93X3Jlc2l6ZV9wb3B1cCAoYm9vbCBvYmpl Y3QsIE1ldGEuUmVjdGFuZ2xlIHAwLCBpbnQgcDEsIGludCBwMik7CisgCQlwdWJsaWMgc2lnbmFs IGJvb2wgc2hvd19yZXN0YXJ0X21lc3NhZ2UgKHN0cmluZz8gbWVzc2FnZSk7CisgCQlwdWJsaWMg c2lnbmFsIHZvaWQgc2hvd2luZ19kZXNrdG9wX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFs IHZvaWQgc3RhcnR1cF9zZXF1ZW5jZV9jaGFuZ2VkICh2b2lkKiBvYmplY3QpOworIAkJcHVibGlj IHNpZ25hbCB2b2lkIHdpbmRvd19jcmVhdGVkIChNZXRhLldpbmRvdyBvYmplY3QpOworIAkJcHVi bGljIHNpZ25hbCB2b2lkIHdpbmRvd19kZW1hbmRzX2F0dGVudGlvbiAoTWV0YS5XaW5kb3cgb2Jq ZWN0KTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfZW50ZXJlZF9tb25pdG9yIChpbnQg b2JqZWN0LCBNZXRhLldpbmRvdyBwMCk7CitAQCAtMzU0LDYgKzM2Miw3IEBAIG5hbWVzcGFjZSBN ZXRhIHsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB3b3JrYXJlYXNfY2hhbmdlZCAoKTsKKyAJCXB1 YmxpYyBzaWduYWwgdm9pZCB4MTFfZGlzcGxheV9jbG9zaW5nICgpOworIAkJcHVibGljIHNpZ25h bCB2b2lkIHgxMV9kaXNwbGF5X29wZW5lZCAoKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCB4MTFf ZGlzcGxheV9zZXR1cCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tZXRhLWRuZC5oIiwgdHlwZV9pZCA9ICJtZXRhX2RuZF9nZXRfdHlwZSAoKSIpXQorIAlwdWJs aWMgY2xhc3MgRG5kIDogR0xpYi5PYmplY3QgeworQEAgLTM2Myw3ICszNzIsNyBAQCBuYW1lc3Bh Y2UgTWV0YSB7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZG5kX2xlYXZlICgpOworIAkJcHVibGlj IHNpZ25hbCB2b2lkIGRuZF9wb3NpdGlvbl9jaGFuZ2UgKGludCBvYmplY3QsIGludCBwMCk7Cisg CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBoYXNfdHlw ZV9pZCA9IGZhbHNlKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtDb21wYWN0XQorIAlwdWJsaWMgY2xhc3MgRnJh bWUgeworIAl9CitAQCAtMzc0LDEzICszODMsMTIgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVi bGljIHVpbnQgYWRkX2lkbGVfd2F0Y2ggKHVpbnQ2NCBpbnRlcnZhbF9tc2VjLCBvd25lZCBNZXRh LklkbGVNb25pdG9yV2F0Y2hGdW5jPyBjYWxsYmFjayk7CisgCQlwdWJsaWMgdWludCBhZGRfdXNl cl9hY3RpdmVfd2F0Y2ggKG93bmVkIE1ldGEuSWRsZU1vbml0b3JXYXRjaEZ1bmM/IGNhbGxiYWNr KTsKKyAJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLklkbGVNb25pdG9yIGdldF9jb3JlICgp OworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuSWRsZU1vbml0b3IgZ2V0X2Zvcl9kZXZp Y2UgKGludCBkZXZpY2VfaWQpOworIAkJcHVibGljIGludDY0IGdldF9pZGxldGltZSAoKTsKKyAJ CXB1YmxpYyB2b2lkIHJlbW92ZV93YXRjaCAodWludCBpZCk7CisgCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCXB1YmxpYyBpbnQgZGV2aWNlX2lkIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCXB1Ymxp YyBDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9Cisg CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEva2V5YmluZGluZ3MuaCIsIGNv cHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2Zy ZWUiLCB0eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2Jv eGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAibWV0 YV9rZXlfYmluZGluZ19nZXRfdHlwZSAoKSIpXQorIAlbQ29tcGFjdF0KKyAJcHVibGljIGNsYXNz IEtleUJpbmRpbmcgeworIAkJcHVibGljIHVpbnQgZ2V0X21hc2sgKCk7CitAQCAtMzkxLDggKzM5 OSwyMSBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlbQ0NvZGUgKGNuYW1lID0gIm1ldGFfa2V5Ymlu ZGluZ3Nfc2V0X2N1c3RvbV9oYW5kbGVyIildCisgCQlwdWJsaWMgc3RhdGljIGJvb2wgc2V0X2N1 c3RvbV9oYW5kbGVyIChzdHJpbmcgbmFtZSwgb3duZWQgTWV0YS5LZXlIYW5kbGVyRnVuYz8gaGFu ZGxlcik7CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1sYXVu Y2gtY29udGV4dC5oIiwgdHlwZV9pZCA9ICJtZXRhX2xhdW5jaF9jb250ZXh0X2dldF90eXBlICgp IildCisrCXB1YmxpYyBjbGFzcyBMYXVuY2hDb250ZXh0IDogR0xpYi5BcHBMYXVuY2hDb250ZXh0 IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXByb3Rl Y3RlZCBMYXVuY2hDb250ZXh0ICgpOworKwkJcHVibGljIHZvaWQgc2V0X3RpbWVzdGFtcCAodWlu dDMyIHRpbWVzdGFtcCk7CisrCQlwdWJsaWMgdm9pZCBzZXRfd29ya3NwYWNlIChNZXRhLldvcmtz cGFjZSB3b3Jrc3BhY2UpOworKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgTWV0YS5E aXNwbGF5IGRpc3BsYXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJW05vQWNjZXNzb3JN ZXRob2RdCisrCQlwdWJsaWMgdWludCB0aW1lc3RhbXAgeyBnZXQ7IHNldDsgfQorKwkJW05vQWNj ZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlIHsgb3duZWQg Z2V0OyBzZXQ7IH0KKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRh LW1vbml0b3ItbWFuYWdlci5oIiwgdHlwZV9pZCA9ICJtZXRhX21vbml0b3JfbWFuYWdlcl9nZXRf dHlwZSAoKSIpXQorLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgTW9uaXRvck1hbmFnZXIgOiBNZXRh LkRCdXNEaXNwbGF5Q29uZmlnU2tlbGV0b24sIEdMaWIuREJ1c0ludGVyZmFjZSwgR0xpYi5EQnVz SW50ZXJmYWNlIHsKKysJcHVibGljIGNsYXNzIE1vbml0b3JNYW5hZ2VyIDogR0xpYi5PYmplY3Qg eworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVj dGVkIE1vbml0b3JNYW5hZ2VyICgpOworIAkJcHVibGljIGJvb2wgY2FuX3N3aXRjaF9jb25maWcg KCk7CitAQCAtNDA3LDYgKzQyOCw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzaWdu YWwgdm9pZCBjb25maXJtX2Rpc3BsYXlfY2hhbmdlICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lk IG1vbml0b3JzX2NoYW5nZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgbW9uaXRvcnNfY2hh bmdlZF9pbnRlcm5hbCAoKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBwb3dlcl9zYXZlX21vZGVf Y2hhbmdlZCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRh LXBsdWdpbi5oIiwgdHlwZV9pZCA9ICJtZXRhX3BsdWdpbl9nZXRfdHlwZSAoKSIpXQorIAlwdWJs aWMgYWJzdHJhY3QgY2xhc3MgUGx1Z2luIDogR0xpYi5PYmplY3QgeworQEAgLTQzMCw2ICs0NTIs OCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGtpbGxfc3dpdGNo X3dvcmtzcGFjZSAoKTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGtp bGxfd2luZG93X2VmZmVjdHMgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworKwkJW05vV3JhcHBl cl0KKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbG9jYXRlX3BvaW50ZXIgKCk7CisgCQlwdWJsaWMg c3RhdGljIHZvaWQgbWFuYWdlcl9zZXRfcGx1Z2luX3R5cGUgKEdMaWIuVHlwZSBndHlwZSk7Cisg CQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBtYXAgKE1ldGEuV2luZG93QWN0 b3IgYWN0b3IpOworQEAgLTQ2NSwyNiArNDg5LDU2IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJcHVi bGljIGNsYXNzIFJlbW90ZUFjY2Vzc0NvbnRyb2xsZXIgOiBHTGliLk9iamVjdCB7CisgCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgUmVtb3Rl QWNjZXNzQ29udHJvbGxlciAoKTsKKysJCXB1YmxpYyB2b2lkIGluaGliaXRfcmVtb3RlX2FjY2Vz cyAoKTsKKysJCXB1YmxpYyB2b2lkIHVuaW5oaWJpdF9yZW1vdGVfYWNjZXNzICgpOworIAkJcHVi bGljIHNpZ25hbCB2b2lkIG5ld19oYW5kbGUgKE1ldGEuUmVtb3RlQWNjZXNzSGFuZGxlIG9iamVj dCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1yZW1vdGUt YWNjZXNzLWNvbnRyb2xsZXIuaCIsIHR5cGVfaWQgPSAibWV0YV9yZW1vdGVfYWNjZXNzX2hhbmRs ZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgY2xhc3MgUmVtb3RlQWNjZXNzSGFuZGxlIDogR0xp Yi5PYmplY3QgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQor IAkJcHJvdGVjdGVkIFJlbW90ZUFjY2Vzc0hhbmRsZSAoKTsKKysJCXB1YmxpYyBib29sIGdldF9k aXNhYmxlX2FuaW1hdGlvbnMgKCk7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIHN0b3AgKCk7Cisr CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBib29sIGlzX3JlY29yZGluZyB7IGdldDsg Y29uc3RydWN0OyB9CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgc3RvcHBlZCAoKTsKKyAJfQorKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCB0eXBlX2lkID0gIm1ldGFf c2VsZWN0aW9uX2dldF90eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBTZWxlY3Rpb24gOiBHTGli Lk9iamVjdCB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisr CQlwdWJsaWMgU2VsZWN0aW9uIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CisrCQlwdWJsaWMgR0xp Yi5MaXN0PHN0cmluZz4gZ2V0X21pbWV0eXBlcyAoTWV0YS5TZWxlY3Rpb25UeXBlIHNlbGVjdGlv bl90eXBlKTsKKysJCXB1YmxpYyB2b2lkIHNldF9vd25lciAoTWV0YS5TZWxlY3Rpb25UeXBlIHNl bGVjdGlvbl90eXBlLCBNZXRhLlNlbGVjdGlvblNvdXJjZSBvd25lcik7CisrCQlwdWJsaWMgYXN5 bmMgYm9vbCB0cmFuc2Zlcl9hc3luYyAoTWV0YS5TZWxlY3Rpb25UeXBlIHNlbGVjdGlvbl90eXBl LCBzdHJpbmcgbWltZXR5cGUsIHNzaXplX3Qgc2l6ZSwgR0xpYi5PdXRwdXRTdHJlYW0gb3V0cHV0 LCBHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlw dWJsaWMgdm9pZCB1bnNldF9vd25lciAoTWV0YS5TZWxlY3Rpb25UeXBlIHNlbGVjdGlvbl90eXBl LCBNZXRhLlNlbGVjdGlvblNvdXJjZSBvd25lcik7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgb3du ZXJfY2hhbmdlZCAodWludCBvYmplY3QsIE1ldGEuU2VsZWN0aW9uU291cmNlIHAwKTsKKysJfQor KwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCB0eXBlX2lkID0gIm1l dGFfc2VsZWN0aW9uX3NvdXJjZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgU2VsZWN0 aW9uU291cmNlIDogR0xpYi5PYmplY3QgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIFNlbGVjdGlvblNvdXJjZSAoKTsKKysJCXB1Ymxp YyB2aXJ0dWFsIEdMaWIuTGlzdDxzdHJpbmc+IGdldF9taW1ldHlwZXMgKCk7CisrCQlwdWJsaWMg Ym9vbCBpc19hY3RpdmUgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBhc3luYyBHTGliLklucHV0U3Ry ZWFtIHJlYWRfYXN5bmMgKHN0cmluZyBtaW1ldHlwZSwgR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2Vs bGFibGUpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQg YWN0aXZhdGVkICgpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgZGVhY3RpdmF0ZWQg KCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgdHlw ZV9pZCA9ICJtZXRhX3NlbGVjdGlvbl9zb3VyY2VfbWVtb3J5X2dldF90eXBlICgpIildCisrCXB1 YmxpYyBjbGFzcyBTZWxlY3Rpb25Tb3VyY2VNZW1vcnkgOiBNZXRhLlNlbGVjdGlvblNvdXJjZSB7 CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJNZXRh U2VsZWN0aW9uU291cmNlKiIpXQorKwkJcHVibGljIFNlbGVjdGlvblNvdXJjZU1lbW9yeSAoc3Ry aW5nIG1pbWV0eXBlLCBHTGliLkJ5dGVzIGNvbnRlbnQpOworKwl9CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21ldGEtc2V0dGluZ3MuaCIsIGhhc190eXBlX2lkID0gZmFsc2Up XQorIAlbQ29tcGFjdF0KKyAJcHVibGljIGNsYXNzIFNldHRpbmdzIHsKKyAJCXB1YmxpYyBpbnQg Z2V0X2ZvbnRfZHBpICgpOworIAkJcHVibGljIGludCBnZXRfdWlfc2NhbGluZ19mYWN0b3IgKCk7 CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1zaGFkb3ctZmFj dG9yeS5oIiwgcmVmX2Z1bmN0aW9uID0gIm1ldGFfc2hhZG93X3JlZiIsIHR5cGVfaWQgPSAibWV0 YV9zaGFkb3dfZ2V0X3R5cGUgKCkiLCB1bnJlZl9mdW5jdGlvbiA9ICJtZXRhX3NoYWRvd191bnJl ZiIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCByZWZfZnVu Y3Rpb24gPSAibWV0YV9zaGFkb3dfcmVmIiwgdHlwZV9pZCA9ICJtZXRhX3NoYWRvd19nZXRfdHlw ZSAoKSIsIHVucmVmX2Z1bmN0aW9uID0gIm1ldGFfc2hhZG93X3VucmVmIildCisgCVtDb21wYWN0 XQorIAlwdWJsaWMgY2xhc3MgU2hhZG93IHsKKyAJCXB1YmxpYyB2b2lkIGdldF9ib3VuZHMgKGlu dCB3aW5kb3dfeCwgaW50IHdpbmRvd195LCBpbnQgd2luZG93X3dpZHRoLCBpbnQgd2luZG93X2hl aWdodCwgQ2Fpcm8uUmVjdGFuZ2xlSW50IGJvdW5kcyk7CistCQlwdWJsaWMgdm9pZCBwYWludCAo aW50IHdpbmRvd194LCBpbnQgd2luZG93X3ksIGludCB3aW5kb3dfd2lkdGgsIGludCB3aW5kb3df aGVpZ2h0LCB1aW50OCBvcGFjaXR5LCBDYWlyby5SZWdpb24/IGNsaXAsIGJvb2wgY2xpcF9zdHJp Y3RseSk7CisrCQlwdWJsaWMgdm9pZCBwYWludCAoQ29nbC5GcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZl ciwgaW50IHdpbmRvd194LCBpbnQgd2luZG93X3ksIGludCB3aW5kb3dfd2lkdGgsIGludCB3aW5k b3dfaGVpZ2h0LCB1aW50OCBvcGFjaXR5LCBDYWlyby5SZWdpb24/IGNsaXAsIGJvb2wgY2xpcF9z dHJpY3RseSk7CisgCQlwdWJsaWMgTWV0YS5TaGFkb3cgQHJlZiAoKTsKKyAJCXB1YmxpYyB2b2lk IHVucmVmICgpOworIAl9CitAQCAtNDk5LDI4ICs1NTMsNzQgQEAgbmFtZXNwYWNlIE1ldGEgewor IAkJcHVibGljIHNpZ25hbCB2b2lkIGNoYW5nZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oIiwgdHlwZV9pZCA9ICJtZXRh X3NoYXBlZF90ZXh0dXJlX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBTaGFwZWRUZXh0 dXJlIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUs IENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworKwlwdWJsaWMgY2xhc3Mg U2hhcGVkVGV4dHVyZSA6IEdMaWIuT2JqZWN0LCBDbHV0dGVyLkNvbnRlbnQgeworIAkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFNoYXBlZFRl eHR1cmUgKCk7CistCQlwdWJsaWMgQ2Fpcm8uU3VyZmFjZSBnZXRfaW1hZ2UgKENhaXJvLlJlY3Rh bmdsZUludCBjbGlwKTsKKysJCXB1YmxpYyBDYWlyby5TdXJmYWNlPyBnZXRfaW1hZ2UgKENhaXJv LlJlY3RhbmdsZUludD8gY2xpcCk7CisgCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0 X3RleHR1cmUgKCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfY3JlYXRlX21pcG1hcHMgKGJvb2wgY3Jl YXRlX21pcG1hcHMpOworIAkJcHVibGljIHZvaWQgc2V0X21hc2tfdGV4dHVyZSAoQ29nbC5UZXh0 dXJlIG1hc2tfdGV4dHVyZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfb3BhcXVlX3JlZ2lvbiAob3du ZWQgQ2Fpcm8uUmVnaW9uIG9wYXF1ZV9yZWdpb24pOworLQkJcHVibGljIGJvb2wgdXBkYXRlX2Fy ZWEgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyAJCXB1YmxpYyBzaWdu YWwgdm9pZCBzaXplX2NoYW5nZWQgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIHR5cGVfaWQgPSAibWV0YV9zdGFnZV9nZXRf dHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXNvdW5k LXBsYXllci5oIiwgdHlwZV9pZCA9ICJtZXRhX3NvdW5kX3BsYXllcl9nZXRfdHlwZSAoKSIpXQor KwlwdWJsaWMgY2xhc3MgU291bmRQbGF5ZXIgOiBHTGliLk9iamVjdCB7CisrCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgU291bmRQbGF5ZXIg KCk7CisrCQlwdWJsaWMgdm9pZCBwbGF5X2Zyb21fZmlsZSAoR0xpYi5GaWxlIGZpbGUsIHN0cmlu ZyBkZXNjcmlwdGlvbiwgR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUgPSBudWxsKTsKKysJ CXB1YmxpYyB2b2lkIHBsYXlfZnJvbV90aGVtZSAoc3RyaW5nIG5hbWUsIHN0cmluZyBkZXNjcmlw dGlvbiwgR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUgPSBudWxsKTsKKysJfQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXN0YWdlLmgiLCB0eXBlX2lkID0gIm1l dGFfc3RhZ2VfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIFN0YWdlIDogQ2x1dHRlci5T dGFnZSwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFp bmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFN0YWdlICgpOworIAkJcHVibGljIHN0YXRpYyBi b29sIGlzX2ZvY3VzZWQgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKysJCXB1YmxpYyBzaWduYWwg dm9pZCBhY3RvcnNfcGFpbnRlZCAoKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgiLCB0eXBlX2lkID0gIm1ldGFfc3Rh cnR1cF9ub3RpZmljYXRpb25fZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIFN0YXJ0dXBO b3RpZmljYXRpb24gOiBHTGliLk9iamVjdCB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVu Y3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgU3RhcnR1cE5vdGlmaWNhdGlvbiAoKTsKKysJ CXB1YmxpYyBNZXRhLkxhdW5jaENvbnRleHQgY3JlYXRlX2xhdW5jaGVyICgpOworKwkJW05vQWNj ZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgTWV0YS5EaXNwbGF5IGRpc3BsYXkgeyBvd25lZCBnZXQ7 IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIHNpZ25hbCB2b2lkIGNoYW5nZWQgKHZvaWQqIG9iamVj dCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgdHlw ZV9pZCA9ICJtZXRhX3N0YXJ0dXBfc2VxdWVuY2VfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNs YXNzIFN0YXJ0dXBTZXF1ZW5jZSA6IEdMaWIuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBTdGFydHVwU2VxdWVuY2UgKCk7 CisrCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2FwcGxpY2F0aW9uX2lkICgpOworKwkJcHVi bGljIGJvb2wgZ2V0X2NvbXBsZXRlZCAoKTsKKysJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRf aWNvbl9uYW1lICgpOworKwkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9pZCAoKTsKKysJCXB1 YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfbmFtZSAoKTsKKysJCXB1YmxpYyB1aW50NjQgZ2V0X3Rp bWVzdGFtcCAoKTsKKysJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfd21jbGFzcyAoKTsKKysJ CXB1YmxpYyBpbnQgZ2V0X3dvcmtzcGFjZSAoKTsKKysJCXB1YmxpYyBzdHJpbmcgYXBwbGljYXRp b25faWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIHN0cmluZyBpY29uX25hbWUgeyBn ZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIHN0cmluZyBpZCB7IGdldDsgY29uc3RydWN0OyB9 CisrCQlwdWJsaWMgc3RyaW5nIG5hbWUgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIHVp bnQ2NCB0aW1lc3RhbXAgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIHN0cmluZyB3bWNs YXNzIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCXB1YmxpYyBpbnQgd29ya3NwYWNlIHsgZ2V0OyBj b25zdHJ1Y3Q7IH0KKysJCVtIYXNFbWl0dGVyXQorKwkJcHVibGljIHNpZ25hbCB2b2lkIGNvbXBs ZXRlICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3RoZW1lLmgi LCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW0NvbXBhY3RdCisgCXB1YmxpYyBjbGFzcyBUaGVt ZSB7CisgCQlwdWJsaWMgdm9pZCBmcmVlICgpOworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21ldGEtd2F5bGFuZC1jbGllbnQuaCIsIHR5cGVfaWQgPSAibWV0YV93YXls YW5kX2NsaWVudF9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgV2F5bGFuZENsaWVudCA6 IEdMaWIuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl KV0KKysJCXB1YmxpYyBXYXlsYW5kQ2xpZW50IChHTGliLlN1YnByb2Nlc3NMYXVuY2hlciBsYXVu Y2hlcikgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgdm9pZCBoaWRlX2Zyb21fd2luZG93 X2xpc3QgKE1ldGEuV2luZG93IHdpbmRvdyk7CisrCQlwdWJsaWMgYm9vbCBvd25zX3dpbmRvdyAo TWV0YS5XaW5kb3cgd2luZG93KTsKKysJCXB1YmxpYyB2b2lkIHNob3dfaW5fd2luZG93X2xpc3Qg KE1ldGEuV2luZG93IHdpbmRvdyk7CisrCQlwdWJsaWMgR0xpYi5TdWJwcm9jZXNzIHNwYXdudiAo TWV0YS5EaXNwbGF5IGRpc3BsYXksIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UsIGFycmF5 X251bGxfdGVybWluYXRlZCA9IHRydWUpXSBzdHJpbmdbXSBhcmd2KSB0aHJvd3MgR0xpYi5FcnJv cjsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cuaCIsIHR5 cGVfaWQgPSAibWV0YV93aW5kb3dfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGFic3RyYWN0IGNs YXNzIFdpbmRvdyA6IEdMaWIuT2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlKV0KK0BAIC01NDcsNiArNjQ3LDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJ cHVibGljIE1ldGEuUmVjdGFuZ2xlIGZyYW1lX3JlY3RfdG9fY2xpZW50X3JlY3QgKE1ldGEuUmVj dGFuZ2xlIGZyYW1lX3JlY3QpOworIAkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF9idWZmZXJf cmVjdCAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfY2xpZW50X21hY2hpbmUgKCk7 CisrCQlwdWJsaWMgTWV0YS5XaW5kb3dDbGllbnRUeXBlIGdldF9jbGllbnRfdHlwZSAoKTsKKyAJ CXB1YmxpYyB1bm93bmVkIEdMaWIuT2JqZWN0IGdldF9jb21wb3NpdG9yX3ByaXZhdGUgKCk7Cisg CQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2Rlc2NyaXB0aW9uICgpOworIAkJcHVibGljIHVu b3duZWQgTWV0YS5EaXNwbGF5IGdldF9kaXNwbGF5ICgpOworQEAgLTU2MSw2ICs2NjIsNyBAQCBu YW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a191bmlxdWVf YnVzX25hbWUgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a193aW5kb3dfb2Jq ZWN0X3BhdGggKCk7CisgCQlwdWJsaWMgYm9vbCBnZXRfaWNvbl9nZW9tZXRyeSAob3V0IE1ldGEu UmVjdGFuZ2xlIHJlY3QpOworKwkJcHVibGljIHVpbnQ2NCBnZXRfaWQgKCk7CisgCQlwdWJsaWMg TWV0YS5TdGFja0xheWVyIGdldF9sYXllciAoKTsKKyAJCXB1YmxpYyBNZXRhLk1heGltaXplRmxh Z3MgZ2V0X21heGltaXplZCAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X21vbml0b3IgKCk7CitAQCAt NjEwLDggKzcxMiw2IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyB2b2lkIG1vdmVfcmVz aXplX2ZyYW1lIChib29sIHVzZXJfb3AsIGludCByb290X3hfbncsIGludCByb290X3lfbncsIGlu dCB3LCBpbnQgaCk7CisgCQlwdWJsaWMgdm9pZCBtb3ZlX3RvX21vbml0b3IgKGludCBtb25pdG9y KTsKKyAJCXB1YmxpYyB2b2lkIHJhaXNlICgpOworLQkJcHVibGljIGJvb2wgcmVxdWVzdGVkX2J5 cGFzc19jb21wb3NpdG9yICgpOworLQkJcHVibGljIGJvb2wgcmVxdWVzdGVkX2RvbnRfYnlwYXNz X2NvbXBvc2l0b3IgKCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfY29tcG9zaXRvcl9wcml2YXRlIChH TGliLk9iamVjdCBwcml2KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9kZW1hbmRzX2F0dGVudGlvbiAo KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9pY29uX2dlb21ldHJ5IChNZXRhLlJlY3RhbmdsZT8gcmVj dCk7CitAQCAtNjcyLDI0ICs3NzIsMjUgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHNp Z25hbCB2b2lkIHNob3duICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHNpemVfY2hhbmdlZCAo KTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB1bm1hbmFnZWQgKCk7CisrCQlwdWJsaWMgc2lnbmFs IHZvaWQgdW5tYW5hZ2luZyAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3BhY2VfY2hh bmdlZCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXdp bmRvdy1hY3Rvci5oIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19hY3Rvcl9nZXRfdHlwZSAoKSIp XQorLQlwdWJsaWMgY2xhc3MgV2luZG93QWN0b3IgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVt ZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2Ny aXB0YWJsZSB7CisrCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBXaW5kb3dBY3RvciA6IENsdXR0ZXIu QWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRh aW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBXaW5kb3dBY3RvciAoKTsKKysJCXB1YmxpYyB2 b2lkIGZyZWV6ZSAoKTsKKysJCXB1YmxpYyBDYWlyby5TdXJmYWNlPyBnZXRfaW1hZ2UgKENhaXJv LlJlY3RhbmdsZUludD8gY2xpcCk7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBnZXRf bWV0YV93aW5kb3cgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF90ZXh0 dXJlICgpOworLQkJcHVibGljIFguV2luZG93IGdldF94X3dpbmRvdyAoKTsKKysJCXB1YmxpYyB1 bm93bmVkIE1ldGEuU2hhcGVkVGV4dHVyZSBnZXRfdGV4dHVyZSAoKTsKKyAJCXB1YmxpYyBib29s IGlzX2Rlc3Ryb3llZCAoKTsKKyAJCXB1YmxpYyB2b2lkIHN5bmNfdmlzaWJpbGl0eSAoKTsKKysJ CXB1YmxpYyB2b2lkIHRoYXcgKCk7CisgCQlwdWJsaWMgTWV0YS5XaW5kb3cgbWV0YV93aW5kb3cg eyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgc3Ry aW5nIHNoYWRvd19jbGFzcyB7IG93bmVkIGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCXB1YmxpYyBNZXRhLlNoYWRvd01vZGUgc2hhZG93X21vZGUgeyBnZXQ7IHNldDsgfQor KwkJcHVibGljIHNpZ25hbCB2b2lkIGRhbWFnZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQg ZWZmZWN0c19jb21wbGV0ZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZmlyc3RfZnJhbWUg KCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgdGhhd2VkICgpOworIAl9CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtd2luZG93LWdyb3VwLmgiLCB0eXBlX2lkID0gIm1l dGFfd2luZG93X2dyb3VwX2dldF90eXBlICgpIildCisgCXB1YmxpYyBjbGFzcyBXaW5kb3dHcm91 cCA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBD bHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKK0BAIC03MjAsNyArODIxLDkg QEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF93b3JrX2Fy ZWFfZm9yX21vbml0b3IgKGludCB3aGljaF9tb25pdG9yKTsKKyAJCXB1YmxpYyBpbnQgaW5kZXgg KCk7CisgCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgTWV0YS5XaW5kb3c+IGxpc3Rfd2luZG93cyAo KTsKKy0JCXB1YmxpYyB2b2lkIHNldF9idWlsdGluX3N0cnV0cyAoR0xpYi5TTGlzdDxNZXRhLlN0 cnV0PiBzdHJ1dHMpOworKwkJcHVibGljIHZvaWQgc2V0X2J1aWx0aW5fc3RydXRzIChHTGliLlNM aXN0PE1ldGEuU3RydXQ/PiBzdHJ1dHMpOworKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJs aWMgYm9vbCBhY3RpdmUgeyBnZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJcHVibGlj IHVpbnQgbl93aW5kb3dzIHsgZ2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KK0BAIC03MzYs MjcgKzgzOSwzMyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRhLldv cmtzcGFjZSBnZXRfYWN0aXZlX3dvcmtzcGFjZSAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X2FjdGl2 ZV93b3Jrc3BhY2VfaW5kZXggKCk7CisgCQlwdWJsaWMgaW50IGdldF9uX3dvcmtzcGFjZXMgKCk7 CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZSBnZXRfd29ya3NwYWNlX2J5X2luZGV4 IChpbnQgaW5kZXgpOworKwkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2U/IGdldF93b3Jr c3BhY2VfYnlfaW5kZXggKGludCBpbmRleCk7CisgCQlwdWJsaWMgdm9pZCBvdmVycmlkZV93b3Jr c3BhY2VfbGF5b3V0IChNZXRhLkRpc3BsYXlDb3JuZXIgc3RhcnRpbmdfY29ybmVyLCBib29sIHZl cnRpY2FsX2xheW91dCwgaW50IG5fcm93cywgaW50IG5fY29sdW1ucyk7CisgCQlwdWJsaWMgdm9p ZCByZW1vdmVfd29ya3NwYWNlIChNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UsIHVpbnQzMiB0aW1l c3RhbXApOworKwkJcHVibGljIHZvaWQgcmVvcmRlcl93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNl IHdvcmtzcGFjZSwgaW50IG5ld19pbmRleCk7CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1 YmxpYyBpbnQgbGF5b3V0X2NvbHVtbnMgeyBnZXQ7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQor KwkJcHVibGljIGludCBsYXlvdXRfcm93cyB7IGdldDsgfQorIAkJcHVibGljIGludCBuX3dvcmtz cGFjZXMgeyBnZXQ7IH0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBhY3RpdmVfd29ya3NwYWNlX2No YW5nZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2hvd2luZ19kZXNrdG9wX2NoYW5nZWQg KCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlX2FkZGVkIChpbnQgb2JqZWN0KTsK KyAJCXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3BhY2VfcmVtb3ZlZCAoaW50IG9iamVjdCk7Cisg CQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlX3N3aXRjaGVkIChpbnQgb2JqZWN0LCBpbnQg cDAsIE1ldGEuTW90aW9uRGlyZWN0aW9uIHAxKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jr c3BhY2VzX3Jlb3JkZXJlZCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgiLCB0eXBlX2lkID0gIm1ldGFfeDExX2Rpc3BsYXlfZ2V0 X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIFgxMURpc3BsYXkgOiBHTGliLk9iamVjdCB7Cisg CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQg WDExRGlzcGxheSAoKTsKKy0JCXB1YmxpYyB2b2lkIGZvY3VzX3RoZV9ub19mb2N1c193aW5kb3cg KHVpbnQzMiB0aW1lc3RhbXApOworKwkJcHVibGljIHZvaWQgY2xlYXJfc3RhZ2VfaW5wdXRfcmVn aW9uICgpOworIAkJcHVibGljIGludCBnZXRfZGFtYWdlX2V2ZW50X2Jhc2UgKCk7CisgCQlwdWJs aWMgaW50IGdldF9zY3JlZW5fbnVtYmVyICgpOworIAkJcHVibGljIGludCBnZXRfc2hhcGVfZXZl bnRfYmFzZSAoKTsKKyAJCXB1YmxpYyBib29sIGhhc19zaGFwZSAoKTsKKyAJCXB1YmxpYyB2b2lk IHNldF9jbV9zZWxlY3Rpb24gKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfaW5wdXRfZm9jdXNfd2lu ZG93IChNZXRhLldpbmRvdyB3aW5kb3csIGJvb2wgZm9jdXNfZnJhbWUsIHVpbnQzMiB0aW1lc3Rh bXApOworKwkJcHVibGljIHZvaWQgc2V0X3N0YWdlX2lucHV0X3JlZ2lvbiAoWC5Yc2VydmVyUmVn aW9uIHJlZ2lvbik7CisgCQlwdWJsaWMgYm9vbCB4d2luZG93X2lzX2Ffbm9fZm9jdXNfd2luZG93 IChYLldpbmRvdyB4d2luZG93KTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oIiwgdHlwZV9jbmFtZSA9ICJNZXRhQ2xvc2VEaWFsb2dJ bnRlcmZhY2UiLCB0eXBlX2lkID0gIm1ldGFfY2xvc2VfZGlhbG9nX2dldF90eXBlICgpIildCitA QCAtNzc5LDI0ICs4ODgsMjQgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJW0hhc0VtaXR0ZXJdCisg CQlwdWJsaWMgc2lnbmFsIHZvaWQgcmVzcG9uc2UgKE1ldGEuSW5oaWJpdFNob3J0Y3V0c0RpYWxv Z1Jlc3BvbnNlIHJlc3BvbnNlKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9jb21tb24uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGlj IHN0cnVjdCBCdXR0b25MYXlvdXQgeworIAkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSld CistCQlwdWJsaWMgd2VhayBNZXRhLkJ1dHRvbkZ1bmN0aW9uIGxlZnRfYnV0dG9uc1s1XTsKKysJ CXB1YmxpYyB3ZWFrIE1ldGEuQnV0dG9uRnVuY3Rpb24gbGVmdF9idXR0b25zWzRdOworIAkJW0ND b2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBib29sIGxlZnRfYnV0 dG9uc19oYXNfc3BhY2VyWzVdOworKwkJcHVibGljIHdlYWsgYm9vbCBsZWZ0X2J1dHRvbnNfaGFz X3NwYWNlcls0XTsKKyAJCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXQorLQkJcHVibGlj IHdlYWsgTWV0YS5CdXR0b25GdW5jdGlvbiByaWdodF9idXR0b25zWzVdOworKwkJcHVibGljIHdl YWsgTWV0YS5CdXR0b25GdW5jdGlvbiByaWdodF9idXR0b25zWzRdOworIAkJW0NDb2RlIChhcnJh eV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBib29sIHJpZ2h0X2J1dHRvbnNfaGFz X3NwYWNlcls1XTsKKysJCXB1YmxpYyB3ZWFrIGJvb2wgcmlnaHRfYnV0dG9uc19oYXNfc3BhY2Vy WzRdOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JveGVzLmgiLCBo YXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWFpbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCXB1YmxpYyBzdHJ1Y3QgRWRnZSB7Cisg CQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgcmVjdDsKKyAJCXB1YmxpYyBNZXRhLlNpZGUgc2lkZV90 eXBlOworIAkJcHVibGljIE1ldGEuRWRnZVR5cGUgZWRnZV90eXBlOworIAl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSld CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGhhc190eXBlX2lk ID0gZmFsc2UpXQorIAlwdWJsaWMgc3RydWN0IEZyYW1lQm9yZGVycyB7CisgCQlwdWJsaWMgR3Rr LkJvcmRlciB2aXNpYmxlOworIAkJcHVibGljIEd0ay5Cb3JkZXIgaW52aXNpYmxlOworQEAgLTgx MSwxNCArOTIwLDE0IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyB3ZWFrIHN0cmluZyBs aWNlbnNlOworIAkJcHVibGljIHdlYWsgc3RyaW5nIGRlc2NyaXB0aW9uOworIAl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtcGx1Z2luLmgiLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgaGFz X3R5cGVfaWQgPSBmYWxzZSldCisgCXB1YmxpYyBzdHJ1Y3QgUGx1Z2luVmVyc2lvbiB7CisgCQlw dWJsaWMgdWludCB2ZXJzaW9uX21ham9yOworIAkJcHVibGljIHVpbnQgdmVyc2lvbl9taW5vcjsK KyAJCXB1YmxpYyB1aW50IHZlcnNpb25fbWljcm87CisgCQlwdWJsaWMgdWludCB2ZXJzaW9uX2Fw aTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9ib3hlcy5oIiwgdHlw ZV9pZCA9ICJtZXRhX3JlY3RhbmdsZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIs IGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJtZXRhX3JlY3Rhbmds ZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgc3RydWN0IFJlY3RhbmdsZSB7CisgCQlwdWJsaWMg aW50IHg7CisgCQlwdWJsaWMgaW50IHk7CitAQCAtODM2LDcgKzk0NSw3IEBAIG5hbWVzcGFjZSBN ZXRhIHsKKyAJCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSB1bmlvbiAoTWV0YS5SZWN0YW5nbGUgcmVj dDIpOworIAkJcHVibGljIGJvb2wgdmVydF9vdmVybGFwIChNZXRhLlJlY3RhbmdsZSByZWN0Mik7 CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1zaGFkb3ctZmFj dG9yeS5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgc3RydWN0 IFNoYWRvd1BhcmFtcyB7CisgCQlwdWJsaWMgaW50IHJhZGl1czsKKyAJCXB1YmxpYyBpbnQgdG9w X2ZhZGU7CitAQCAtODQ0LDEyICs5NTMsMTIgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGlj IGludCB5X29mZnNldDsKKyAJCXB1YmxpYyB1aW50OCBvcGFjaXR5OworIAl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JveGVzLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgaGFzX3R5cGVfaWQg PSBmYWxzZSldCisgCXB1YmxpYyBzdHJ1Y3QgU3RydXQgeworIAkJcHVibGljIE1ldGEuUmVjdGFu Z2xlIHJlY3Q7CisgCQlwdWJsaWMgTWV0YS5TaWRlIHNpZGU7CisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oIiwgY3ByZWZpeCA9ICJNRVRBX0JBUlJJRVJf RElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9iYXJyaWVyX2RpcmVjdGlvbl9nZXRfdHlwZSAo KSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4 ID0gIk1FVEFfQkFSUklFUl9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2JhcnJpZXJfZGly ZWN0aW9uX2dldF90eXBlICgpIildCisgCVtGbGFnc10KKyAJcHVibGljIGVudW0gQmFycmllckRp cmVjdGlvbiB7CisgCQlQT1NJVElWRV9YLAorQEAgLTg1NywyMSArOTY2LDIwIEBAIG5hbWVzcGFj ZSBNZXRhIHsKKyAJCU5FR0FUSVZFX1gsCisgCQlORUdBVElWRV9ZCisgCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfQlVUVE9O X0ZVTkNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9idXR0b25fZnVuY3Rpb25fZ2V0X3R5cGUgKCki KV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9 ICJNRVRBX0JVVFRPTl9GVU5DVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfYnV0dG9uX2Z1bmN0aW9u X2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIEJ1dHRvbkZ1bmN0aW9uIHsKKyAJCU1FTlUs CisgCQlNSU5JTUlaRSwKKyAJCU1BWElNSVpFLAorIAkJQ0xPU0UsCistCQlBUFBNRU5VLAorIAkJ TEFTVAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtY2xvc2Ut ZGlhbG9nLmgiLCBjcHJlZml4ID0gIk1FVEFfQ0xPU0VfRElBTE9HX1JFU1BPTlNFXyIsIHR5cGVf aWQgPSAibWV0YV9jbG9zZV9kaWFsb2dfcmVzcG9uc2VfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0NMT1NF X0RJQUxPR19SRVNQT05TRV8iLCB0eXBlX2lkID0gIm1ldGFfY2xvc2VfZGlhbG9nX3Jlc3BvbnNl X2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIENsb3NlRGlhbG9nUmVzcG9uc2UgeworIAkJ V0FJVCwKKyAJCUZPUkNFX0NMT1NFCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvY29tcG9zaXRvci5oIiwgY3ByZWZpeCA9ICJNRVRBX0NPTVBfRUZGRUNUXyIsIHR5cGVf aWQgPSAibWV0YV9jb21wX2VmZmVjdF9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfQ09NUF9FRkZFQ1RfIiwg dHlwZV9pZCA9ICJtZXRhX2NvbXBfZWZmZWN0X2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVt IENvbXBFZmZlY3QgeworIAkJQ1JFQVRFLAorIAkJVU5NSU5JTUlaRSwKK0BAIC04NzksNyArOTg3 LDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJTUlOSU1JWkUsCisgCQlOT05FCisgCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFf Q1VSU09SXyIsIHR5cGVfaWQgPSAibWV0YV9jdXJzb3JfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0NVUlNP Ul8iLCB0eXBlX2lkID0gIm1ldGFfY3Vyc29yX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVt IEN1cnNvciB7CisgCQlOT05FLAorIAkJREVGQVVMVCwKK0BAIC05MDAsOSArMTAwOCwxMCBAQCBu YW1lc3BhY2UgTWV0YSB7CisgCQlQT0lOVElOR19IQU5ELAorIAkJQ1JPU1NIQUlSLAorIAkJSUJF QU0sCisrCQlCTEFOSywKKyAJCUxBU1QKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS91dGlsLmgiLCBjcHJlZml4ID0gIk1FVEFfREVCVUdfIiwgdHlwZV9pZCA9ICJtZXRh X2RlYnVnX3RvcGljX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9ERUJVR18iLCB0eXBlX2lkID0gIm1ldGFf ZGVidWdfdG9waWNfZ2V0X3R5cGUgKCkiKV0KKyAJW0ZsYWdzXQorIAlwdWJsaWMgZW51bSBEZWJ1 Z1RvcGljIHsKKyAJCVZFUkJPU0UsCitAQCAtOTI4LDkgKzEwMzcsMTAgQEAgbmFtZXNwYWNlIE1l dGEgeworIAkJU0hBUEVTLAorIAkJQ09NUE9TSVRPUiwKKyAJCUVER0VfUkVTSVNUQU5DRSwKKy0J CURCVVMKKysJCURCVVMsCisrCQlJTlBVVAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0RJUkVDVElPTl8iLCB0eXBlX2lk ID0gIm1ldGFfZGlyZWN0aW9uX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9ESVJFQ1RJT05fIiwgdHlwZV9p ZCA9ICJtZXRhX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCisgCXB1YmxpYyBl bnVtIERpcmVjdGlvbiB7CisgCQlMRUZULAorQEAgLTk0MiwyMSArMTA1MiwyMSBAQCBuYW1lc3Bh Y2UgTWV0YSB7CisgCQlIT1JJWk9OVEFMLAorIAkJVkVSVElDQUwKKyAJfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9kaXNwbGF5LmgiLCBjcHJlZml4ID0gIk1FVEFfRElTUExB WV8iLCB0eXBlX2lkID0gIm1ldGFfZGlzcGxheV9jb3JuZXJfZ2V0X3R5cGUgKCkiKV0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0RJ U1BMQVlfIiwgdHlwZV9pZCA9ICJtZXRhX2Rpc3BsYXlfY29ybmVyX2dldF90eXBlICgpIildCisg CXB1YmxpYyBlbnVtIERpc3BsYXlDb3JuZXIgeworIAkJVE9QTEVGVCwKKyAJCVRPUFJJR0hULAor IAkJQk9UVE9NTEVGVCwKKyAJCUJPVFRPTVJJR0hUCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvZGlzcGxheS5oIiwgY3ByZWZpeCA9ICJNRVRBX0RJU1BMQVlfIiwgdHlw ZV9pZCA9ICJtZXRhX2Rpc3BsYXlfZGlyZWN0aW9uX2dldF90eXBlICgpIildCisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9ESVNQTEFZ XyIsIHR5cGVfaWQgPSAibWV0YV9kaXNwbGF5X2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlw dWJsaWMgZW51bSBEaXNwbGF5RGlyZWN0aW9uIHsKKyAJCVVQLAorIAkJRE9XTiwKKyAJCUxFRlQs CisgCQlSSUdIVAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JveGVz LmgiLCBjcHJlZml4ID0gIk1FVEFfRURHRV8iLCB0eXBlX2lkID0gIm1ldGFfZWRnZV90eXBlX2dl dF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIs IGNwcmVmaXggPSAiTUVUQV9FREdFXyIsIHR5cGVfaWQgPSAibWV0YV9lZGdlX3R5cGVfZ2V0X3R5 cGUgKCkiKV0KKyAJcHVibGljIGVudW0gRWRnZVR5cGUgeworIAkJV0lORE9XLAorIAkJTU9OSVRP UiwKK0BAIC05NjcsMTIgKzEwNzcsMTEgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJU1VDQ0VTUywK KyAJCUVSUk9SCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9u LmgiLCBjcHJlZml4ID0gIk1FVEFfRlJBTUVfIiwgdHlwZV9pZCA9ICJtZXRhX2ZyYW1lX2ZsYWdz X2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIsIGNwcmVmaXggPSAiTUVUQV9GUkFNRV8iLCB0eXBlX2lkID0gIm1ldGFfZnJhbWVfZmxhZ3Nf Z2V0X3R5cGUgKCkiKV0KKyAJW0ZsYWdzXQorIAlwdWJsaWMgZW51bSBGcmFtZUZsYWdzIHsKKyAJ CUFMTE9XU19ERUxFVEUsCisgCQlBTExPV1NfTUVOVSwKKy0JCUFMTE9XU19BUFBNRU5VLAorIAkJ QUxMT1dTX01JTklNSVpFLAorIAkJQUxMT1dTX01BWElNSVpFLAorIAkJQUxMT1dTX1ZFUlRJQ0FM X1JFU0laRSwKK0BAIC05ODQsMTIgKzEwOTMsMTEgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJQUxM T1dTX1NIQURFLAorIAkJQUxMT1dTX01PVkUsCisgCQlGVUxMU0NSRUVOLAorLQkJSVNfRkxBU0hJ TkcsCisgCQlBQk9WRSwKKyAJCVRJTEVEX0xFRlQsCisgCQlUSUxFRF9SSUdIVAorIAl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRB X0ZSQU1FX1RZUEVfIiwgdHlwZV9pZCA9ICJtZXRhX2ZyYW1lX3R5cGVfZ2V0X3R5cGUgKCkiKV0K KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJN RVRBX0ZSQU1FX1RZUEVfIiwgdHlwZV9pZCA9ICJtZXRhX2ZyYW1lX3R5cGVfZ2V0X3R5cGUgKCki KV0KKyAJcHVibGljIGVudW0gRnJhbWVUeXBlIHsKKyAJCU5PUk1BTCwKKyAJCURJQUxPRywKK0BA IC0xMDAxLDcgKzExMDksNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlMQVNUOworIAkJcHVibGlj IHVub3duZWQgc3RyaW5nIHRvX3N0cmluZyAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9HUkFCX09QXyIsIHR5cGVf aWQgPSAibWV0YV9ncmFiX29wX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9HUkFCX09QXyIsIHR5cGVfaWQg PSAibWV0YV9ncmFiX29wX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIEdyYWJPcCB7Cisg CQlOT05FLAorIAkJV0lORE9XX0JBU0UsCitAQCAtMTAyOCwxMiArMTEzNiwyNiBAQCBuYW1lc3Bh Y2UgTWV0YSB7CisgCQlLRVlCT0FSRF9SRVNJWklOR19TRSwKKyAJCUtFWUJPQVJEX1JFU0laSU5H X1cKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWluaGliaXQt c2hvcnRjdXRzLWRpYWxvZy5oIiwgY3ByZWZpeCA9ICJNRVRBX0lOSElCSVRfU0hPUlRDVVRTX0RJ QUxPR19SRVNQT05TRV8iLCB0eXBlX2lkID0gIm1ldGFfaW5oaWJpdF9zaG9ydGN1dHNfZGlhbG9n X3Jlc3BvbnNlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9HUkFWSVRZXyIsIHR5cGVfaWQgPSAibWV0YV9n cmF2aXR5X2dldF90eXBlICgpIildCisrCXB1YmxpYyBlbnVtIEdyYXZpdHkgeworKwkJTk9ORSwK KysJCU5PUlRIX1dFU1QsCisrCQlOT1JUSCwKKysJCU5PUlRIX0VBU1QsCisrCQlXRVNULAorKwkJ Q0VOVEVSLAorKwkJRUFTVCwKKysJCVNPVVRIX1dFU1QsCisrCQlTT1VUSCwKKysJCVNPVVRIX0VB U1QsCisrCQlTVEFUSUMKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiLCBjcHJlZml4ID0gIk1FVEFfSU5ISUJJVF9TSE9SVENVVFNfRElBTE9HX1JFU1BPTlNF XyIsIHR5cGVfaWQgPSAibWV0YV9pbmhpYml0X3Nob3J0Y3V0c19kaWFsb2dfcmVzcG9uc2VfZ2V0 X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gSW5oaWJpdFNob3J0Y3V0c0RpYWxvZ1Jlc3BvbnNl IHsKKyAJCUFMTE9XLAorIAkJREVOWQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3ByZWZzLmgiLCBjcHJlZml4ID0gIk1FVEFfS0VZQklORElOR19BQ1RJT05fIiwgdHlw ZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5nX2FjdGlvbl9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfS0VZQklO RElOR19BQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5nX2FjdGlvbl9nZXRfdHlw ZSAoKSIpXQorIAlwdWJsaWMgZW51bSBLZXlCaW5kaW5nQWN0aW9uIHsKKyAJCU5PTkUsCisgCQlX T1JLU1BBQ0VfMSwKK0BAIC0xMTIyLDIyICsxMjQ0LDI1IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJ CU1PVkVfVE9fU0lERV9XLAorIAkJTU9WRV9UT19DRU5URVIsCisgCQlPVkVSTEFZX0tFWSwKKysJ CUxPQ0FURV9QT0lOVEVSX0tFWSwKKyAJCUlTT19ORVhUX0dST1VQLAorIAkJQUxXQVlTX09OX1RP UCwKKyAJCVNXSVRDSF9NT05JVE9SLAorIAkJUk9UQVRFX01PTklUT1IsCisgCQlMQVNUCisgCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNwcmVmaXggPSAi TUVUQV9LRVlfQklORElOR18iLCB0eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdfZmxhZ3NfZ2V0 X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwg Y3ByZWZpeCA9ICJNRVRBX0tFWV9CSU5ESU5HXyIsIHR5cGVfaWQgPSAibWV0YV9rZXlfYmluZGlu Z19mbGFnc19nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCisgCXB1YmxpYyBlbnVtIEtleUJpbmRp bmdGbGFncyB7CisgCQlOT05FLAorIAkJUEVSX1dJTkRPVywKKyAJCUJVSUxUSU4sCisgCQlJU19S RVZFUlNFRCwKKy0JCU5PTl9NQVNLQUJMRQorKwkJTk9OX01BU0tBQkxFLAorKwkJSUdOT1JFX0FV VE9SRVBFQVQsCisrCQlOT19BVVRPX0dSQUIKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS91dGlsLmgiLCBjcHJlZml4ID0gIk1FVEFfTEFURVJfIiwgdHlwZV9pZCA9ICJt ZXRhX2xhdGVyX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0xBVEVSXyIsIHR5cGVfaWQgPSAibWV0 YV9sYXRlcl90eXBlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIExhdGVyVHlwZSB7Cisg CQlSRVNJWkUsCisgCQlDQUxDX1NIT1dJTkcsCitAQCAtMTE0NiwyNSArMTI3MSwyNSBAQCBuYW1l c3BhY2UgTWV0YSB7CisgCQlCRUZPUkVfUkVEUkFXLAorIAkJSURMRQorIAl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNwcmVmaXggPSAiTUVUQV9MT0NBTEVf RElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9sb2NhbGVfZGlyZWN0aW9uX2dldF90eXBlICgp IildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXgg PSAiTUVUQV9MT0NBTEVfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9sb2NhbGVfZGlyZWN0 aW9uX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIExvY2FsZURpcmVjdGlvbiB7CisgCQlM VFIsCisgCQlSVEwKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5k b3cuaCIsIGNwcmVmaXggPSAiTUVUQV9NQVhJTUlaRV8iLCB0eXBlX2lkID0gIm1ldGFfbWF4aW1p emVfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX01BWElNSVpFXyIsIHR5cGVfaWQgPSAibWV0YV9t YXhpbWl6ZV9mbGFnc19nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCisgCXB1YmxpYyBlbnVtIE1h eGltaXplRmxhZ3MgeworIAkJSE9SSVpPTlRBTCwKKyAJCVZFUlRJQ0FMLAorIAkJQk9USAorIAl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtcGx1Z2luLmgiLCBjcHJl Zml4ID0gIk1FVEFfTU9EQUxfIiwgdHlwZV9pZCA9ICJtZXRhX21vZGFsX29wdGlvbnNfZ2V0X3R5 cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3By ZWZpeCA9ICJNRVRBX01PREFMXyIsIHR5cGVfaWQgPSAibWV0YV9tb2RhbF9vcHRpb25zX2dldF90 eXBlICgpIildCisgCVtGbGFnc10KKyAJcHVibGljIGVudW0gTW9kYWxPcHRpb25zIHsKKyAJCVBP SU5URVJfQUxSRUFEWV9HUkFCQkVELAorIAkJS0VZQk9BUkRfQUxSRUFEWV9HUkFCQkVECisgCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIu aCIsIGNwcmVmaXggPSAiTUVUQV9NT05JVE9SX1NXSVRDSF9DT05GSUdfIiwgdHlwZV9pZCA9ICJt ZXRhX21vbml0b3Jfc3dpdGNoX2NvbmZpZ190eXBlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9NT05JVE9S X1NXSVRDSF9DT05GSUdfIiwgdHlwZV9pZCA9ICJtZXRhX21vbml0b3Jfc3dpdGNoX2NvbmZpZ190 eXBlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIE1vbml0b3JTd2l0Y2hDb25maWdUeXBl IHsKKyAJCUFMTF9NSVJST1IsCisgCQlBTExfTElORUFSLAorQEAgLTExNzIsNyArMTI5Nyw3IEBA IG5hbWVzcGFjZSBNZXRhIHsKKyAJCUJVSUxUSU4sCisgCQlVTktOT1dOCisgCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfTU9U SU9OXyIsIHR5cGVfaWQgPSAibWV0YV9tb3Rpb25fZGlyZWN0aW9uX2dldF90eXBlICgpIildCisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVU QV9NT1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX21vdGlvbl9kaXJlY3Rpb25fZ2V0X3R5cGUgKCki KV0KKyAJcHVibGljIGVudW0gTW90aW9uRGlyZWN0aW9uIHsKKyAJCVVQLAorIAkJRE9XTiwKK0BA IC0xMTgzLDcgKzEzMDgsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlET1dOX0xFRlQsCisgCQlE T1dOX1JJR0hUCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvZGlzcGxh eS5oIiwgY3ByZWZpeCA9ICJNRVRBX1BBRF9BQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX3BhZF9h Y3Rpb25fdHlwZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfUEFEX0FDVElPTl8iLCB0eXBlX2lkID0gIm1l dGFfcGFkX2FjdGlvbl90eXBlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIFBhZEFjdGlv blR5cGUgeworIAkJQlVUVE9OLAorIAkJUklORywKK0BAIC0xMjIzLDMwICsxMzQ4LDM5IEBAIG5h bWVzcGFjZSBNZXRhIHsKKyAJCURSQUdHQUJMRV9CT1JERVJfV0lEVEgsCisgCQlBVVRPX01BWElN SVpFLAorIAkJQ0VOVEVSX05FV19XSU5ET1dTLAorLQkJRFJBR19USFJFU0hPTEQ7CisrCQlEUkFH X1RIUkVTSE9MRCwKKysJCUxPQ0FURV9QT0lOVEVSLAorKwkJQ0hFQ0tfQUxJVkVfVElNRU9VVDsK KyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyB0b19zdHJpbmcgKCk7CisgCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCIsIGNwcmVmaXggPSAi TUVUQV9TSEFET1dfTU9ERV8iLCB0eXBlX2lkID0gIm1ldGFfc2hhZG93X21vZGVfZ2V0X3R5cGUg KCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZp eCA9ICJNRVRBXyIsIHR5cGVfaWQgPSAibWV0YV9zZWxlY3Rpb25fdHlwZV9nZXRfdHlwZSAoKSIp XQorKwlwdWJsaWMgZW51bSBTZWxlY3Rpb25UeXBlIHsKKysJCVNFTEVDVElPTl9QUklNQVJZLAor KwkJU0VMRUNUSU9OX0NMSVBCT0FSRCwKKysJCVNFTEVDVElPTl9ETkQsCisrCQlOX1NFTEVDVElP Tl9UWVBFUworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIs IGNwcmVmaXggPSAiTUVUQV9TSEFET1dfTU9ERV8iLCB0eXBlX2lkID0gIm1ldGFfc2hhZG93X21v ZGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gU2hhZG93TW9kZSB7CisgCQlBVVRPLAor IAkJRk9SQ0VEX09GRiwKKyAJCUZPUkNFRF9PTgorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1NJREVfIiwgdHlwZV9pZCA9 ICJtZXRhX3NpZGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1NJREVfIiwgdHlwZV9pZCA9ICJtZXRhX3Np ZGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gU2lkZSB7CisgCQlMRUZULAorIAkJUklH SFQsCisgCQlUT1AsCisgCQlCT1RUT00KKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9jb21wb3NpdG9yLmgiLCBjcHJlZml4ID0gIk1FVEFfU0laRV9DSEFOR0VfIiwgdHlw ZV9pZCA9ICJtZXRhX3NpemVfY2hhbmdlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9TSVpFX0NIQU5HRV8i LCB0eXBlX2lkID0gIm1ldGFfc2l6ZV9jaGFuZ2VfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVu dW0gU2l6ZUNoYW5nZSB7CisgCQlNQVhJTUlaRSwKKyAJCVVOTUFYSU1JWkUsCisgCQlGVUxMU0NS RUVOLAorIAkJVU5GVUxMU0NSRUVOCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfTEFZRVJfIiwgdHlwZV9pZCA9ICJtZXRh X3N0YWNrX2xheWVyX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9MQVlFUl8iLCB0eXBlX2lkID0gIm1ldGFf c3RhY2tfbGF5ZXJfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gU3RhY2tMYXllciB7Cisg CQlERVNLVE9QLAorIAkJQk9UVE9NLAorQEAgLTEyNTYsMTkgKzEzOTAsMTkgQEAgbmFtZXNwYWNl IE1ldGEgeworIAkJT1ZFUlJJREVfUkVESVJFQ1QsCisgCQlMQVNUCisgCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvZGlzcGxheS5oIiwgY3ByZWZpeCA9ICJNRVRBX1RBQl9M SVNUXyIsIHR5cGVfaWQgPSAibWV0YV90YWJfbGlzdF9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfVEFCX0xJ U1RfIiwgdHlwZV9pZCA9ICJtZXRhX3RhYl9saXN0X2dldF90eXBlICgpIildCisgCXB1YmxpYyBl bnVtIFRhYkxpc3QgeworIAkJTk9STUFMLAorIAkJRE9DS1MsCisgCQlHUk9VUCwKKyAJCU5PUk1B TF9BTEwKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9kaXNwbGF5Lmgi LCBjcHJlZml4ID0gIk1FVEFfVEFCX1NIT1dfIiwgdHlwZV9pZCA9ICJtZXRhX3RhYl9zaG93X3R5 cGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFp bi5oIiwgY3ByZWZpeCA9ICJNRVRBX1RBQl9TSE9XXyIsIHR5cGVfaWQgPSAibWV0YV90YWJfc2hv d190eXBlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIFRhYlNob3dUeXBlIHsKKyAJCUlD T04sCisgCQlJTlNUQU5UTFkKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9WSVJUVUFMXyIsIHR5cGVfaWQgPSAibWV0YV92 aXJ0dWFsX21vZGlmaWVyX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9WSVJUVUFMXyIsIHR5cGVfaWQgPSAi bWV0YV92aXJ0dWFsX21vZGlmaWVyX2dldF90eXBlICgpIildCisgCVtGbGFnc10KKyAJcHVibGlj IGVudW0gVmlydHVhbE1vZGlmaWVyIHsKKyAJCVNISUZUX01BU0ssCitAQCAtMTI4MiwxNyArMTQx NiwxNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlNT0Q0X01BU0ssCisgCQlNT0Q1X01BU0sKKyAJ fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cuaCIsIGNwcmVmaXgg PSAiTUVUQV9XSU5ET1dfQ0xJRU5UX1RZUEVfIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19jbGll bnRfdHlwZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfV0lORE9XX0NMSUVOVF9UWVBFXyIsIHR5cGVfaWQg PSAibWV0YV93aW5kb3dfY2xpZW50X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0g V2luZG93Q2xpZW50VHlwZSB7CisgCQlXQVlMQU5ELAorIAkJWDExCisgCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfV0lORE9X X01FTlVfIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19tZW51X3R5cGVfZ2V0X3R5cGUgKCkiKV0K KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJN RVRBX1dJTkRPV19NRU5VXyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfbWVudV90eXBlX2dldF90 eXBlICgpIildCisgCXB1YmxpYyBlbnVtIFdpbmRvd01lbnVUeXBlIHsKKyAJCVdNLAorIAkJQVBQ CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvd2luZG93LmgiLCBjcHJl Zml4ID0gIk1FVEFfV0lORE9XXyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfdHlwZV9nZXRfdHlw ZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJl Zml4ID0gIk1FVEFfV0lORE9XXyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfdHlwZV9nZXRfdHlw ZSAoKSIpXQorIAlwdWJsaWMgZW51bSBXaW5kb3dUeXBlIHsKKyAJCU5PUk1BTCwKKyAJCURFU0tU T1AsCitAQCAtMTMxMSw1MSArMTQ0NSw1NyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlETkQsCisg CQlPVkVSUklERV9PVEhFUgorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21ldGEtaWRsZS1tb25pdG9yLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorIAlw dWJsaWMgZGVsZWdhdGUgdm9pZCBJZGxlTW9uaXRvcldhdGNoRnVuYyAoTWV0YS5JZGxlTW9uaXRv ciBtb25pdG9yLCB1aW50IHdhdGNoX2lkKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvcHJlZnMuaCIsIGluc3RhbmNlX3BvcyA9IDQuOSldCisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGluc3RhbmNlX3BvcyA9IDQuOSldCisgCXB1YmxpYyBk ZWxlZ2F0ZSB2b2lkIEtleUhhbmRsZXJGdW5jIChNZXRhLkRpc3BsYXkgZGlzcGxheSwgTWV0YS5X aW5kb3cgd2luZG93LCBbQ0NvZGUgKHR5cGUgPSAiQ2x1dHRlcktleUV2ZW50KiIpXSBDbHV0dGVy LktleUV2ZW50PyBldmVudCwgTWV0YS5LZXlCaW5kaW5nIGJpbmRpbmcpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgaW5zdGFuY2VfcG9zID0g MS45KV0KKyAJcHVibGljIGRlbGVnYXRlIHZvaWQgUHJlZnNDaGFuZ2VkRnVuYyAoTWV0YS5QcmVm ZXJlbmNlIHByZWYpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cu aCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisgCXB1YmxpYyBkZWxlZ2F0ZSBib29s IFdpbmRvd0ZvcmVhY2hGdW5jIChNZXRhLldpbmRvdyB3aW5kb3cpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfQ1VSUkVOVF9USU1F IildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0g Ik1FVEFfQ1VSUkVOVF9USU1FIildCisgCXB1YmxpYyBjb25zdCBpbnQgQ1VSUkVOVF9USU1FOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1F VEFfREVGQVVMVF9JQ09OX05BTUUiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9ERUZBVUxUX0lDT05fTkFNRSIpXQorIAlwdWJsaWMg Y29uc3Qgc3RyaW5nIERFRkFVTFRfSUNPTl9OQU1FOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfSUNPTl9IRUlHSFQiKV0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9JQ09O X0hFSUdIVCIpXQorIAlwdWJsaWMgY29uc3QgaW50IElDT05fSEVJR0hUOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfSUNPTl9XSURU SCIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9 ICJNRVRBX0lDT05fV0lEVEgiKV0KKyAJcHVibGljIGNvbnN0IGludCBJQ09OX1dJRFRIOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFf TUFKT1JfVkVSU0lPTiIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWlu LmgiLCBjbmFtZSA9ICJNRVRBX01BSk9SX1ZFUlNJT04iKV0KKyAJcHVibGljIGNvbnN0IGludCBN QUpPUl9WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24u aCIsIGNuYW1lID0gIk1FVEFfTUlDUk9fVkVSU0lPTiIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01JQ1JPX1ZFUlNJT04iKV0KKyAJ cHVibGljIGNvbnN0IGludCBNSUNST19WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfTUlOSV9JQ09OX0hFSUdIVCIpXQor KwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRB X01JTklfSUNPTl9IRUlHSFQiKV0KKyAJcHVibGljIGNvbnN0IGludCBNSU5JX0lDT05fSEVJR0hU OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0g Ik1FVEFfTUlOSV9JQ09OX1dJRFRIIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfTUlOSV9JQ09OX1dJRFRIIildCisgCXB1YmxpYyBj b25zdCBpbnQgTUlOSV9JQ09OX1dJRFRIOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfTUlOT1JfVkVSU0lPTiIpXQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01JTk9SX1ZF UlNJT04iKV0KKyAJcHVibGljIGNvbnN0IGludCBNSU5PUl9WRVJTSU9OOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfUExVR0lOX0FQ SV9WRVJTSU9OIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIs IGNuYW1lID0gIk1FVEFfUExVR0lOX0FQSV9WRVJTSU9OIildCisgCXB1YmxpYyBjb25zdCBpbnQg UExVR0lOX0FQSV9WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9j b21tb24uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfQkVGT1JFX1JFRFJBVyIpXQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9S SVRZX0JFRk9SRV9SRURSQVciKV0KKyAJcHVibGljIGNvbnN0IGludCBQUklPUklUWV9CRUZPUkVf UkVEUkFXOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNu YW1lID0gIk1FVEFfUFJJT1JJVFlfUFJFRlNfTk9USUZZIildCisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUFJFRlNfTk9U SUZZIildCisgCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfUFJFRlNfTk9USUZZOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfUFJJ T1JJVFlfUkVEUkFXIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUkVEUkFXIildCisgCXB1YmxpYyBjb25zdCBpbnQg UFJJT1JJVFlfUkVEUkFXOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21t b24uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUkVTSVpFIildCisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUkVTSVpF IildCisgCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfUkVTSVpFOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfVklSVFVBTF9DT1JF X0tFWUJPQVJEX0lEIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIsIGNuYW1lID0gIk1FVEFfVklSVFVBTF9DT1JFX0tFWUJPQVJEX0lEIildCisgCXB1YmxpYyBj b25zdCBpbnQgVklSVFVBTF9DT1JFX0tFWUJPQVJEX0lEOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfVklSVFVBTF9DT1JFX1BPSU5U RVJfSUQiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25h bWUgPSAiTUVUQV9WSVJUVUFMX0NPUkVfUE9JTlRFUl9JRCIpXQorIAlwdWJsaWMgY29uc3QgaW50 IFZJUlRVQUxfQ09SRV9QT0lOVEVSX0lEOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyBib29sIGFjdGl2YXRlX3Nlc3Npb24gKCk7 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorKwlwdWJsaWMg c3RhdGljIHZvaWQgYWRkX2NsdXR0ZXJfZGVidWdfZmxhZ3MgKENsdXR0ZXIuRGVidWdGbGFnIGRl YnVnX2ZsYWdzLCBDbHV0dGVyLkRyYXdEZWJ1Z0ZsYWcgZHJhd19mbGFncywgQ2x1dHRlci5QaWNr RGVidWdGbGFnIHBpY2tfZmxhZ3MpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiKV0KKysJcHVibGljIHN0YXRpYyB2b2lkIGNsdXR0ZXJfaW5pdCAoKTsKKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMg dm9pZCBleGl0IChNZXRhLkV4aXRDb2RlIGNvZGUpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiKV0KKysJcHVibGljIHN0YXRpYyBzdHJpbmcgZ191dGY4X3N0cm5k dXAgKHN0cmluZyBzcmMsIHNpemVfdCBuKTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHTGliLk9wdGlvbkNvbnRl eHQgZ2V0X29wdGlvbl9jb250ZXh0ICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyBib29sIGdldF9yZXBsYWNlX2N1cnJlbnRf d20gKCk7CitAQCAtMTM2OCw2ICsxNTA4LDggQEAgbmFtZXNwYWNlIE1ldGEgeworIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lk IHJlZ2lzdGVyX3dpdGhfc2Vzc2lvbiAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIildCisrCXB1YmxpYyBzdGF0aWMgdm9pZCByZW1vdmVfY2x1dHRlcl9kZWJ1 Z19mbGFncyAoQ2x1dHRlci5EZWJ1Z0ZsYWcgZGVidWdfZmxhZ3MsIENsdXR0ZXIuRHJhd0RlYnVn RmxhZyBkcmF3X2ZsYWdzLCBDbHV0dGVyLlBpY2tEZWJ1Z0ZsYWcgcGlja19mbGFncyk7CisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorIAlwdWJsaWMgc3RhdGlj IHZvaWQgcmVzdGFydCAoc3RyaW5nPyBtZXNzYWdlKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgaW50IHJ1biAoKTsKK0BAIC0x Mzc1LDYgKzE1MTcsMTQgQEAgbmFtZXNwYWNlIE1ldGEgeworIAlwdWJsaWMgc3RhdGljIHZvaWQg c2V0X2dub21lX3dtX2tleWJpbmRpbmdzIChzdHJpbmcgd21fa2V5YmluZGluZ3MpOworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyB2 b2lkIHNldF93bV9uYW1lIChzdHJpbmcgd21fbmFtZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21ldGEteDExLWRpc3BsYXkuaCIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKysJcHVibGljIHN0YXRpYyB2b2lkIHRlc3RfaW5pdCAo KTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1Ymxp YyBzdGF0aWMgYm9vbCB4MTFfaW5pdF9nZGtfZGlzcGxheSAoKSB0aHJvd3MgR0xpYi5FcnJvcjsK KyB9CisrW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImxpYm11dHRlci03LWN1c3RvbS5oIiwg aGFzX3R5cGVfaWQgPSBmYWxzZSldCisrcHVibGljIHN0cnVjdCBiZWZvcmVfZnJhbWUgeworK30K KytbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibGlibXV0dGVyLTctY3VzdG9tLmgiLCBoYXNf dHlwZV9pZCA9IGZhbHNlKV0KKytwdWJsaWMgc3RydWN0IGZyYW1lIHsKKyt9CitkaWZmIC0tZ2l0 IHZhcGkvbGlibXV0dGVyLWNvZ2wtNC52YXBpIHZhcGkvbGlibXV0dGVyLWNvZ2wtNC52YXBpCitk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDdkYzE4NDc2Li4wMDAwMDAwMAorLS0tIHZh cGkvbGlibXV0dGVyLWNvZ2wtNC52YXBpCisrKysgL2Rldi9udWxsCitAQCAtMSwxMjcyICswLDAg QEAKKy0vKiBsaWJtdXR0ZXItY29nbC00LnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5v dCBtb2RpZnkuICovCistCistW0NDb2RlIChjcHJlZml4ID0gIkNvZ2wiLCBnaXJfbmFtZXNwYWNl ID0gIkNvZ2wiLCBnaXJfdmVyc2lvbiA9ICI0IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gImNvZ2xf IildCistbmFtZXNwYWNlIENvZ2wgeworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfYml0bWFwX2dldF9ndHlwZSAoKSIpXQorLQlwdWJs aWMgY2xhc3MgQml0bWFwIDogQ29nbC5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIEJpdG1hcCAoKTsKKy0JCXB1YmxpYyBz dGF0aWMgdWludDMyIGVycm9yX3F1YXJrICgpOworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UpXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IEJpdG1hcC5mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSkgdGhyb3dzIEdMaWIuRXJyb3I7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENvZ2wuUGl4ZWxGb3JtYXQg Z2V0X2Zvcm1hdCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMg aW50IGdldF9oZWlnaHQgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVi bGljIGludCBnZXRfcm93c3RyaWRlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgZ2V0X3NpemVfZnJvbV9maWxlIChzdHJpbmcgZmls ZW5hbWUsIG91dCBpbnQgd2lkdGgsIG91dCBpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCistCQlwdWJsaWMgaW50IGdldF93aWR0aCAoKTsKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K Ky0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBFdWxlciB7CistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2Nv cHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY29nbF9mcmFt ZV9jbG9zdXJlX2dldF9ndHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTQiKV0KKy0JcHVibGljIGNsYXNzIEZyYW1lQ2xvc3VyZSB7CistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2Jv eGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY29n bF9tYXRlcmlhbF9nZXRfdHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIE1h dGVyaWFsIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iild CistCQlwdWJsaWMgTWF0ZXJpYWwgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIENv Z2wuTWF0ZXJpYWwgY29weSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBm b3JlYWNoX2xheWVyIChDb2dsLk1hdGVyaWFsTGF5ZXJDYWxsYmFjayBjYWxsYmFjayk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNp bmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FtYmllbnQgKENvZ2wuQ29sb3IgYW1i aWVudCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENvZ2wuQ29sb3IgZ2V0X2NvbG9y ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9kaWZmdXNlIChDb2ds LkNvbG9yIGRpZmZ1c2UpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9l bWlzc2lvbiAoQ29nbC5Db2xvciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVi bGljIENvZ2wuQm9vbCBnZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQg bGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFs V3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9wIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5j ZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X2xheWVyX3dy YXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JCXB1Ymxp YyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJf aW5kZXgpOworLQkJcHVibGljIHVub3duZWQgR0xpYi5MaXN0PENvZ2wuTWF0ZXJpYWxMYXllcj4g Z2V0X2xheWVycyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgaW50IGdldF9uX2xh eWVycyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3BvaW50X3Np emUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGZsb2F0IGdldF9zaGluaW5lc3Mg KCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3NwZWN1bGFyIChDb2ds LkNvbG9yIHNwZWN1bGFyKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ29nbC5IYW5k bGUgZ2V0X3VzZXJfcHJvZ3JhbSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgQ29nbC5IYW5kbGUgQHJlZiAoQ29nbC5IYW5kbGUgbWF0ZXJpYWwpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1Ymxp YyB2b2lkIHJlbW92ZV9sYXllciAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGFfdGVzdF9mdW5jdGlvbiAoQ29nbC5NYXRlcmlhbEFs cGhhRnVuYyBhbHBoYV9mdW5jLCBmbG9hdCBhbHBoYV9yZWZlcmVuY2UpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIx LjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbWJpZW50IChDb2dsLkNvbG9yIGFtYmllbnQpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbWJpZW50X2FuZF9kaWZmdXNl IChDb2dsLkNvbG9yIGNvbG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ29nbC5C b29sIHNldF9ibGVuZCAoc3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2JsZW5kX2NvbnN0YW50IChDb2ds LkNvbG9yIGNvbnN0YW50X2NvbG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9p ZCBzZXRfY29sb3IgKENvZ2wuQ29sb3IgY29sb3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9jb2xvcjRmIChmbG9hdCByZWQsIGZsb2F0IGdyZWVuLCBmbG9hdCBibHVl LCBmbG9hdCBhbHBoYSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Nv bG9yNHViICh1aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVlLCB1aW50OCBhbHBoYSk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2RpZmZ1c2UgKENvZ2wuQ29s b3IgZGlmZnVzZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2VtaXNz aW9uIChDb2dsLkNvbG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMg dm9pZCBzZXRfbGF5ZXIgKGludCBsYXllcl9pbmRleCwgQ29nbC5IYW5kbGUgdGV4dHVyZSk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfbGF5ZXJfY29tYmluZSAo aW50IGxheWVyX2luZGV4LCBzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfY29tYmluZV9jb25z dGFudCAoaW50IGxheWVyX2luZGV4LCBDb2dsLkNvbG9yIGNvbnN0YW50KTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJs aWMgdm9pZCBzZXRfbGF5ZXJfZmlsdGVycyAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFs RmlsdGVyIG1pbl9maWx0ZXIsIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgbWFnX2ZpbHRlcik7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQor LQkJcHVibGljIHZvaWQgc2V0X2xheWVyX21hdHJpeCAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1h dHJpeCBtYXRyaXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0 X2xheWVyX3BvaW50X3Nwcml0ZV9jb29yZHNfZW5hYmxlZCAoaW50IGxheWVyX2luZGV4LCBDb2ds LkJvb2wgZW5hYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0 ZXJpYWxXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBz ZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRlcmlhbFdyYXBN b2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93 cmFwX21vZGVfcyAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgbW9kZSk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV90 IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRfc2l6ZSAoZmxvYXQgcG9pbnRfc2l6 ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NoaW5pbmVzcyAoZmxv YXQgc2hpbmluZXNzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc3Bl Y3VsYXIgKENvZ2wuQ29sb3Igc3BlY3VsYXIpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF91c2VyX3Byb2dyYW0gKENvZ2wuSGFuZGxlIHByb2dyYW0pOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHVucmVmIChDb2dsLkhhbmRsZSBtYXRlcmlh bCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFz X3R5cGVfaWQgPSBmYWxzZSldCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgTWF0ZXJpYWxM YXllciB7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgZ2V0X21hZ19maWx0ZXIg KCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgZ2V0X21pbl9maWx0ZXIgKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIpXQorLQkJcHVibGljIENvZ2wuSGFuZGxlIGdldF90ZXh0dXJlICgpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JCXB1Ymxp YyBDb2dsLk1hdGVyaWFsTGF5ZXJUeXBlIGdldF90eXBlICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0K Ky0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X3dyYXBfbW9kZV9wICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBz aW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X3dyYXBf bW9kZV9zICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3Jh cE1vZGUgZ2V0X3dyYXBfbW9kZV90ICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF9vYmplY3RfZ2V0X2d0eXBlICgpIild CistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBPYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIE9iamVjdCAoKTsKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xf b2Zmc2NyZWVuX2dldF9ndHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgT2Zmc2NyZWVuIDogQ29n bC5PYmplY3QsIENvZ2wuRnJhbWVidWZmZXIgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIE9mZnNjcmVlbiAoKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgdm9pZCogQHJlZiAodm9pZCogb2Zmc2NyZWVuKTsKKy0JCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgT2Zmc2NyZWVuLnRvX3Rl eHR1cmUgKENvZ2wuVGV4dHVyZSB0ZXh0dXJlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCB1 bnJlZiAodm9pZCogb2Zmc2NyZWVuKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlKV0KKy0JCXB1YmxpYyBPZmZzY3JlZW4ud2l0aF90ZXh0dXJlIChDb2dsLlRleHR1 cmUgdGV4dHVyZSk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIiwgdHlwZV9pZCA9ICJjb2dsX29uc2NyZWVuX2dldF9ndHlwZSAoKSIpXQorLQlwdWJsaWMg Y2xhc3MgT25zY3JlZW4gOiBDb2dsLk9iamVjdCwgQ29nbC5GcmFtZWJ1ZmZlciB7CistCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgT25zY3Jl ZW4gKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIENvZ2wuT25z Y3JlZW5EaXJ0eUNsb3N1cmUgYWRkX2RpcnR5X2NhbGxiYWNrIChbQ0NvZGUgKGRlbGVnYXRlX3Rh cmdldF9wb3MgPSAxLjUpXSBDb2dsLk9uc2NyZWVuRGlydHlDYWxsYmFjayBjYWxsYmFjaywgQ29n bC5Vc2VyRGF0YURlc3Ryb3lDYWxsYmFjaz8gZGVzdHJveSk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5PbnNjcmVlblJlc2l6ZUNsb3N1cmUgYWRkX3Jlc2l6 ZV9jYWxsYmFjayAoW0NDb2RlIChkZWxlZ2F0ZV90YXJnZXRfcG9zID0gMS41KV0gQ29nbC5PbnNj cmVlblJlc2l6ZUNhbGxiYWNrIGNhbGxiYWNrLCBDb2dsLlVzZXJEYXRhRGVzdHJveUNhbGxiYWNr PyBkZXN0cm95KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE0Iiwgc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHVpbnQgYWRkX3N3YXBf YnVmZmVyc19jYWxsYmFjayAoQ29nbC5Td2FwQnVmZmVyc05vdGlmeSBjYWxsYmFjayk7CistCQlw dWJsaWMgc3RhdGljIHZvaWQgY2x1dHRlcl9iYWNrZW5kX3NldF9zaXplX0NMVVRURVIgKGludCB3 aWR0aCwgaW50IGhlaWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQkJcHVi bGljIGludCBnZXRfYnVmZmVyX2FnZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0Iild CistCQlwdWJsaWMgaW50NjQgZ2V0X2ZyYW1lX2NvdW50ZXIgKCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9yZXNpemFibGUgKCk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBoaWRlICgpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9kaXJ0eV9jYWxs YmFjayAoQ29nbC5PbnNjcmVlbkRpcnR5Q2xvc3VyZSBjbG9zdXJlKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfZnJhbWVfY2FsbGJhY2sgKENv Z2wuRnJhbWVDbG9zdXJlIGNsb3N1cmUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQor LQkJcHVibGljIHZvaWQgcmVtb3ZlX3Jlc2l6ZV9jYWxsYmFjayAoQ29nbC5PbnNjcmVlblJlc2l6 ZUNsb3N1cmUgY2xvc3VyZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNCIsIHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHJl bW92ZV9zd2FwX2J1ZmZlcnNfY2FsbGJhY2sgKHVpbnQgaWQpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3Jlc2l6YWJsZSAoQ29nbC5Cb29sIHJlc2l6 YWJsZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzaG93 ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHN3YXBf YnVmZmVycyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgdm9p ZCBzd2FwX2J1ZmZlcnNfd2l0aF9kYW1hZ2UgKGludCByZWN0YW5nbGVzLCBpbnQgbl9yZWN0YW5n bGVzKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzd2Fw X3JlZ2lvbiAoaW50IHJlY3RhbmdsZXMsIGludCBuX3JlY3RhbmdsZXMpOworLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19i b3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNv Z2xfb25zY3JlZW5fZGlydHlfY2xvc3VyZV9nZXRfZ3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCist CVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBjbGFzcyBPbnNjcmVlbkRpcnR5 Q2xvc3VyZSB7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94 ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY29nbF9vbnNjcmVlbl9yZXNpemVfY2xvc3VyZV9nZXRfZ3R5 cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JcHVi bGljIGNsYXNzIE9uc2NyZWVuUmVzaXplQ2xvc3VyZSB7CistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX3BpcGVsaW5lX2dldF9n dHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgUGlwZWxpbmUgOiBDb2dsLk9iamVjdCB7CistCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgUGlw ZWxpbmUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5Q aXBlbGluZSBjb3B5ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGlj IHZvaWQgZm9yZWFjaF9sYXllciAoQ29nbC5QaXBlbGluZUxheWVyQ2FsbGJhY2sgY2FsbGJhY2sp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuUGlwZWxpbmVB bHBoYUZ1bmMgZ2V0X2FscGhhX3Rlc3RfZnVuY3Rpb24gKCk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCQlwdWJsaWMgZmxvYXQgZ2V0X2FscGhhX3Rlc3RfcmVmZXJlbmNlICgpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FtYmllbnQg KENvZ2wuQ29sb3IgYW1iaWVudCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlw dWJsaWMgQ29nbC5Db2xvciBnZXRfY29sb3IgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44 IildCistCQlwdWJsaWMgQ29nbC5Db2xvck1hc2sgZ2V0X2NvbG9yX21hc2sgKCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5QaXBlbGluZUN1bGxGYWNlTW9k ZSBnZXRfY3VsbF9mYWNlX21vZGUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCist CQlwdWJsaWMgdm9pZCBnZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNlKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9lbWlzc2lvbiAoQ29nbC5D b2xvciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMg Q29nbC5XaW5kaW5nIGdldF9mcm9udF9mYWNlX3dpbmRpbmcgKCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENvZ2wuUGlwZWxpbmVGaWx0ZXIgZ2V0X2xheWVyX21h Z19maWx0ZXIgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorLQkJcHVibGljIENvZ2wuUGlwZWxpbmVGaWx0ZXIgZ2V0X2xheWVyX21pbl9maWx0ZXIgKGlu dCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMg Q29nbC5Cb29sIGdldF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGludCBsYXll cl9pbmRleCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHVub3du ZWQgQ29nbC5UZXh0dXJlIGdldF9sYXllcl90ZXh0dXJlIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENvZ2wuUGlwZWxpbmVXcmFwTW9k ZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS42IildCistCQlwdWJsaWMgQ29nbC5QaXBlbGluZVdyYXBNb2RlIGdldF9sYXll cl93cmFwX21vZGVfcyAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjYiKV0KKy0JCXB1YmxpYyBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9k ZV90IChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJ cHVibGljIGludCBnZXRfbl9sYXllcnMgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9wZXJfdmVydGV4X3BvaW50X3NpemUgKCk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3BvaW50X3NpemUg KCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3No aW5pbmVzcyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lk IGdldF9zcGVjdWxhciAoQ29nbC5Db2xvciBzcGVjdWxhcik7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCQlwdWJsaWMgaW50IGdldF91bmlmb3JtX2xvY2F0aW9uIChzdHJpbmcgdW5p Zm9ybV9uYW1lKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2ds LkhhbmRsZSBnZXRfdXNlcl9wcm9ncmFtICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9sYXllciAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbHBoYV90ZXN0X2Z1 bmN0aW9uIChDb2dsLlBpcGVsaW5lQWxwaGFGdW5jIGFscGhhX2Z1bmMsIGZsb2F0IGFscGhhX3Jl ZmVyZW5jZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBz ZXRfYW1iaWVudCAoQ29nbC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbWJpZW50X2FuZF9kaWZmdXNlIChDb2dsLkNvbG9y IGNvbG9yKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJv b2wgc2V0X2JsZW5kIChzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ibGVuZF9jb25z dGFudCAoQ29nbC5Db2xvciBjb25zdGFudF9jb2xvcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3IgKENvZ2wuQ29sb3IgY29sb3IpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yNGYgKGZs b2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2xvcjR1YiAodWludDgg cmVkLCB1aW50OCBncmVlbiwgdWludDggYmx1ZSwgdWludDggYWxwaGEpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yX21hc2sgKENvZ2wuQ29s b3JNYXNrIGNvbG9yX21hc2spOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVi bGljIHZvaWQgc2V0X2N1bGxfZmFjZV9tb2RlIChDb2dsLlBpcGVsaW5lQ3VsbEZhY2VNb2RlIGN1 bGxfZmFjZV9tb2RlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9kaWZmdXNlIChDb2dsLkNvbG9yIGRpZmZ1c2UpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2VtaXNzaW9uIChDb2dsLkNvbG9yIGVtaXNz aW9uKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9m cm9udF9mYWNlX3dpbmRpbmcgKENvZ2wuV2luZGluZyBmcm9udF93aW5kaW5nKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2xheWVyX2NvbWJp bmUgKGludCBsYXllcl9pbmRleCwgc3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJy b3I7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5 ZXJfY29tYmluZV9jb25zdGFudCAoaW50IGxheWVyX2luZGV4LCBDb2dsLkNvbG9yIGNvbnN0YW50 KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5 ZXJfZmlsdGVycyAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lRmlsdGVyIG1pbl9maWx0 ZXIsIENvZ2wuUGlwZWxpbmVGaWx0ZXIgbWFnX2ZpbHRlcik7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX21hdHJpeCAoaW50IGxheWVyX2lu ZGV4LCBDb2dsLk1hdHJpeCBtYXRyaXgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl9udWxsX3RleHR1cmUgKGludCBsYXllcl9pbmRleCwg Q29nbC5UZXh0dXJlVHlwZSB0ZXh0dXJlX3R5cGUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIu MCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19l bmFibGVkIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuQm9vbCBlbmFibGUpIHRocm93cyBHTGliLkVy cm9yOworLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3RleHR1cmUgKGludCBsYXllcl9pbmRleCwg Q29nbC5UZXh0dXJlIHRleHR1cmUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZSAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBp cGVsaW5lV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlw dWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCwgQ29nbC5Q aXBlbGluZVdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wu UGlwZWxpbmVXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfdCAoaW50IGxheWVyX2luZGV4LCBDb2ds LlBpcGVsaW5lV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCist CQlwdWJsaWMgQ29nbC5Cb29sIHNldF9wZXJfdmVydGV4X3BvaW50X3NpemUgKENvZ2wuQm9vbCBl bmFibGUpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQor LQkJcHVibGljIHZvaWQgc2V0X3BvaW50X3NpemUgKGZsb2F0IHBvaW50X3NpemUpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NoaW5pbmVzcyAoZmxv YXQgc2hpbmluZXNzKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9zcGVjdWxhciAoQ29nbC5Db2xvciBzcGVjdWxhcik7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfdW5pZm9ybV8xZiAoaW50IHVuaWZvcm1f bG9jYXRpb24sIGZsb2F0IHZhbHVlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF91bmlmb3JtXzFpIChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgaW50IHZh bHVlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91 bmlmb3JtX2Zsb2F0IChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgaW50IG5fY29tcG9uZW50cywgaW50 IGNvdW50LCBmbG9hdCB2YWx1ZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlw dWJsaWMgdm9pZCBzZXRfdW5pZm9ybV9pbnQgKGludCB1bmlmb3JtX2xvY2F0aW9uLCBpbnQgbl9j b21wb25lbnRzLCBpbnQgY291bnQsIGludCB2YWx1ZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfdW5pZm9ybV9tYXRyaXggKGludCB1bmlmb3JtX2xv Y2F0aW9uLCBpbnQgZGltZW5zaW9ucywgaW50IGNvdW50LCBDb2dsLkJvb2wgdHJhbnNwb3NlLCBm bG9hdCB2YWx1ZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9p ZCBzZXRfdXNlcl9wcm9ncmFtIChDb2dsLkhhbmRsZSBwcm9ncmFtKTsKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K Ky0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBRdWF0ZXJuaW9uIHsKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfZnJhbWVi dWZmZXJfZ2V0X2d0eXBlICgpIildCistCXB1YmxpYyBpbnRlcmZhY2UgRnJhbWVidWZmZXIgOiBD b2dsLk9iamVjdCB7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgQ29n bC5Cb29sIGFsbG9jYXRlICgpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgY2xlYXIgKHVsb25nIGJ1ZmZlcnMsIENvZ2wuQ29s b3IgY29sb3IpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQg Y2xlYXI0ZiAodWxvbmcgYnVmZmVycywgZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1 ZSwgZmxvYXQgYWxwaGEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGlj IHZvaWQgZGlzY2FyZF9idWZmZXJzICh1bG9uZyBidWZmZXJzKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBkcmF3X211bHRpdGV4dHVyZWRfcmVjdGFuZ2xl IChDb2dsLlBpcGVsaW5lIHBpcGVsaW5lLCBmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8y LCBmbG9hdCB5XzIsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIHRleF9j b29yZHMsIGludCB0ZXhfY29vcmRzX2xlbik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorLQkJcHVibGljIHZvaWQgZHJhd19yZWN0YW5nbGUgKENvZ2wuUGlwZWxpbmUgcGlwZWxpbmUs IGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMik7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgZHJhd19yZWN0YW5nbGVzIChDb2ds LlBpcGVsaW5lIHBpcGVsaW5lLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXRb XSBjb29yZGluYXRlcywgdWludCBuX3JlY3RhbmdsZXMpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIGRyYXdfdGV4dHVyZWRfcmVjdGFuZ2xlIChDb2dsLlBp cGVsaW5lIHBpcGVsaW5lLCBmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5 XzIsIGZsb2F0IHNfMSwgZmxvYXQgdF8xLCBmbG9hdCBzXzIsIGZsb2F0IHRfMik7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgZHJhd190ZXh0dXJlZF9yZWN0 YW5nbGVzIChDb2dsLlBpcGVsaW5lIHBpcGVsaW5lLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZh bHNlKV0gZmxvYXRbXSBjb29yZGluYXRlcywgdWludCBuX3JlY3RhbmdsZXMpOworLQkJcHVibGlj IHN0YXRpYyB1aW50MzIgZXJyb3JfcXVhcmsgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorLQkJcHVibGljIHZvaWQgZmluaXNoICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKy0JCXB1YmxpYyB2b2lkIGZydXN0dW0gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBm bG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgaW50IGdldF9hbHBoYV9iaXRzICgp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIGludCBnZXRfYmx1ZV9i aXRzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIENvZ2wuQ29s b3JNYXNrIGdldF9jb2xvcl9tYXNrICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQor LQkJcHVibGljIGludCBnZXRfZGVwdGhfYml0cyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjE0IildCistCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X2RlcHRoX3RleHR1cmUg KCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBn ZXRfZGVwdGhfdGV4dHVyZV9lbmFibGVkICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgi KV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2RlcHRoX3dyaXRlX2VuYWJsZWQgKCk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9kaXRoZXJf ZW5hYmxlZCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBpbnQg Z2V0X2dyZWVuX2JpdHMgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJs aWMgaW50IGdldF9oZWlnaHQgKCk7CistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9pc19zdGVyZW8g KCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENvZ2wuTWF0cml4 IGdldF9tb2RlbHZpZXdfbWF0cml4ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K Ky0JCXB1YmxpYyBDb2dsLk1hdHJpeCBnZXRfcHJvamVjdGlvbl9tYXRyaXggKCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgaW50IGdldF9yZWRfYml0cyAoKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgaW50IGdldF9zYW1wbGVzX3Bl cl9waXhlbCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIwIildCistCQlwdWJsaWMgQ29n bC5TdGVyZW9Nb2RlIGdldF9zdGVyZW9fbW9kZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjgiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF92aWV3cG9ydDRmdiAoW0NDb2RlIChhcnJheV9sZW5n dGggPSBmYWxzZSldIG91dCB1bm93bmVkIGZsb2F0IHZpZXdwb3J0WzRdKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfdmlld3BvcnRfaGVpZ2h0ICgp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIGZsb2F0IGdldF92aWV3 cG9ydF93aWR0aCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBm bG9hdCBnZXRfdmlld3BvcnRfeCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0J CXB1YmxpYyBmbG9hdCBnZXRfdmlld3BvcnRfeSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjgiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X3dpZHRoICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIGlkZW50aXR5X21hdHJpeCAoKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBvcnRob2dyYXBoaWMgKGZsb2F0IHhf MSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMiwgZmxvYXQgbmVhciwgZmxvYXQgZmFy KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBwZXJzcGVj dGl2ZSAoZmxvYXQgZm92X3ksIGZsb2F0IGFzcGVjdCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zh cik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcG9wX2Ns aXAgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcG9w X21hdHJpeCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9p ZCBwdXNoX21hdHJpeCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJs aWMgdm9pZCBwdXNoX3JlY3RhbmdsZV9jbGlwIChmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQg eF8yLCBmbG9hdCB5XzIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1Ymxp YyB2b2lkIHB1c2hfc2Npc3Nvcl9jbGlwIChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhl aWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENvZ2wuQm9v bCByZWFkX3BpeGVscyAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIENvZ2wu UGl4ZWxGb3JtYXQgZm9ybWF0LCB1aW50OCBwaXhlbHMpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgcmVhZF9waXhlbHNfaW50b19iaXRtYXAgKGlu dCB4LCBpbnQgeSwgQ29nbC5SZWFkUGl4ZWxzRmxhZ3Mgc291cmNlLCBDb2dsLkJpdG1hcCBiaXRt YXApOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgcmVzb2x2 ZV9zYW1wbGVzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZv aWQgcmVzb2x2ZV9zYW1wbGVzX3JlZ2lvbiAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBo ZWlnaHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHJv dGF0ZSAoZmxvYXQgYW5nbGUsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgcm90YXRlX2V1bGVyIChDb2dsLkV1 bGVyIGV1bGVyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lk IHJvdGF0ZV9xdWF0ZXJuaW9uIChDb2dsLlF1YXRlcm5pb24gcXVhdGVybmlvbik7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IHgsIGZs b2F0IHksIGZsb2F0IHopOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2NvbG9yX21hc2sgKENvZ2wuQ29sb3JNYXNrIGNvbG9yX21hc2spOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kZXB0aF90ZXh0dXJl X2VuYWJsZWQgKENvZ2wuQm9vbCBlbmFibGVkKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4 IildCistCQlwdWJsaWMgdm9pZCBzZXRfZGVwdGhfd3JpdGVfZW5hYmxlZCAoQ29nbC5Cb29sIGRl cHRoX3dyaXRlX2VuYWJsZWQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVi bGljIHZvaWQgc2V0X2RpdGhlcl9lbmFibGVkIChDb2dsLkJvb2wgZGl0aGVyX2VuYWJsZWQpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9tb2RlbHZp ZXdfbWF0cml4IChDb2dsLk1hdHJpeCBtYXRyaXgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9wcm9qZWN0aW9uX21hdHJpeCAoQ29nbC5NYXRyaXgg bWF0cml4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9zYW1wbGVzX3Blcl9waXhlbCAoaW50IHNhbXBsZXNfcGVyX3BpeGVsKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjIwIildCistCQlwdWJsaWMgdm9pZCBzZXRfc3RlcmVvX21vZGUgKENvZ2wu U3RlcmVvTW9kZSBzdGVyZW9fbW9kZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCist CQlwdWJsaWMgdm9pZCBzZXRfdmlld3BvcnQgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRo LCBmbG9hdCBoZWlnaHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1Ymxp YyB2b2lkIHRyYW5zZm9ybSAoQ29nbC5NYXRyaXggbWF0cml4KTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCB0cmFuc2xhdGUgKGZsb2F0IHgsIGZsb2F0IHks IGZsb2F0IHopOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIsIHR5cGVfaWQgPSAiY29nbF90ZXh0dXJlX2dldF9ndHlwZSAoKSIpXQorLQlwdWJsaWMgaW50 ZXJmYWNlIFRleHR1cmUgOiBDb2dsLk9iamVjdCB7CistCQlwdWJsaWMgQ29nbC5Cb29sIGFsbG9j YXRlICgpIHRocm93cyBHTGliLkVycm9yOworLQkJcHVibGljIHN0YXRpYyB1aW50MzIgZXJyb3Jf cXVhcmsgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQkJcHVibGljIENvZ2wu VGV4dHVyZUNvbXBvbmVudHMgZ2V0X2NvbXBvbmVudHMgKCk7CistCQlwdWJsaWMgaW50IGdldF9k YXRhIChDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgdWludCByb3dzdHJpZGUsIHVpbnQ4IGRhdGEp OworLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfZ2xfdGV4dHVyZSAob3V0IHVpbnQgb3V0X2dsX2hh bmRsZSwgb3V0IHVpbnQgb3V0X2dsX3RhcmdldCk7CistCQlwdWJsaWMgdWludCBnZXRfaGVpZ2h0 ICgpOworLQkJcHVibGljIGludCBnZXRfbWF4X3dhc3RlICgpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X3ByZW11bHRpcGxpZWQgKCk7Cist CQlwdWJsaWMgdWludCBnZXRfd2lkdGggKCk7CistCQlwdWJsaWMgQ29nbC5Cb29sIGlzX3NsaWNl ZCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE4Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBu ZXdfZnJvbV9iaXRtYXAgKENvZ2wuQml0bWFwIGJpdG1hcCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxh Z3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44Iild CistCQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9kYXRhIChpbnQgd2lkdGgs IGludCBoZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGZv cm1hdCwgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQsIGludCByb3dzdHJpZGUsIHVp bnQ4IGRhdGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0 dXJlIG5ld19mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxh Z3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KSB0aHJvd3MgR0xpYi5FcnJvcjsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4 Iiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfZnJv bV9mb3JlaWduICh1aW50IGdsX2hhbmRsZSwgdWludCBnbF90YXJnZXQsIHVpbnQgd2lkdGgsIHVp bnQgaGVpZ2h0LCB1aW50IHhfcG90X3dhc3RlLCB1aW50IHlfcG90X3dhc3RlLCBDb2dsLlBpeGVs Rm9ybWF0IGZvcm1hdCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIENvZ2wuVGV4dHVy ZSBuZXdfZnJvbV9zdWJfdGV4dHVyZSAoaW50IHN1Yl94LCBpbnQgc3ViX3ksIGludCBzdWJfd2lk dGgsIGludCBzdWJfaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgc3RhdGlj IENvZ2wuVGV4dHVyZSBuZXdfd2l0aF9zaXplICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCwgQ29n bC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCQlwdWJsaWMgdm9pZCBzZXRfY29tcG9u ZW50cyAoQ29nbC5UZXh0dXJlQ29tcG9uZW50cyBjb21wb25lbnRzKTsKKy0JCXB1YmxpYyBDb2ds LkJvb2wgc2V0X2RhdGEgKENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCBpbnQgcm93c3RyaWRlLCB1 aW50OCBkYXRhLCBpbnQgbGV2ZWwpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9wcmVtdWx0aXBsaWVkIChDb2dsLkJv b2wgcHJlbXVsdGlwbGllZCk7CistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9yZWdpb24gKGludCBz cmNfeCwgaW50IHNyY195LCBpbnQgZHN0X3gsIGludCBkc3RfeSwgdWludCBkc3Rfd2lkdGgsIHVp bnQgZHN0X2hlaWdodCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBDb2dsLlBpeGVsRm9ybWF0IGZv cm1hdCwgdWludCByb3dzdHJpZGUsIHVpbnQ4IGRhdGEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuOCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfcmVnaW9uX2Zyb21fYml0bWFwIChpbnQg c3JjX3gsIGludCBzcmNfeSwgaW50IGRzdF94LCBpbnQgZHN0X3ksIHVpbnQgZHN0X3dpZHRoLCB1 aW50IGRzdF9oZWlnaHQsIENvZ2wuQml0bWFwIGJpdG1hcCk7CistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtTaW1wbGVUeXBlXQorLQlwdWJsaWMg c3RydWN0IEFuZ2xlIDogaW50MzIgeworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbU2ltcGxlVHlwZV0KKy0JcHVibGljIHN0cnVjdCBCb29sIDog aW50IHsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0 eXBlX2lkID0gImNvZ2xfY29sb3JfZ2V0X2d0eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKy0JcHVibGljIHN0cnVjdCBDb2xvciB7CistCQlwdWJsaWMgQ29nbC5Db2xvcj8g Y29weSAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGVxdWFsICh2b2lkKiB2MSwgdm9p ZCogdjIpOworLQkJcHVibGljIGZsb2F0IGdldF9hbHBoYSAoKTsKKy0JCXB1YmxpYyB1aW50OCBn ZXRfYWxwaGFfYnl0ZSAoKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfYWxwaGFfZmxvYXQgKCk7Cist CQlwdWJsaWMgZmxvYXQgZ2V0X2JsdWUgKCk7CistCQlwdWJsaWMgdWludDggZ2V0X2JsdWVfYnl0 ZSAoKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfYmx1ZV9mbG9hdCAoKTsKKy0JCXB1YmxpYyBmbG9h dCBnZXRfZ3JlZW4gKCk7CistCQlwdWJsaWMgdWludDggZ2V0X2dyZWVuX2J5dGUgKCk7CistCQlw dWJsaWMgZmxvYXQgZ2V0X2dyZWVuX2Zsb2F0ICgpOworLQkJcHVibGljIGZsb2F0IGdldF9yZWQg KCk7CistCQlwdWJsaWMgdWludDggZ2V0X3JlZF9ieXRlICgpOworLQkJcHVibGljIGZsb2F0IGdl dF9yZWRfZmxvYXQgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMg dm9pZCBpbml0X2Zyb21fNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZs b2F0IGFscGhhKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lk IGluaXRfZnJvbV80ZnYgKGZsb2F0IGNvbG9yX2FycmF5KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGluaXRfZnJvbV80dWIgKHVpbnQ4IHJlZCwgdWludDgg Z3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjE2IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgaW5pdF9mcm9tX2hzbCAob3V0IENvZ2wuQ29s b3IgY29sb3IsIGZsb2F0IGh1ZSwgZmxvYXQgc2F0dXJhdGlvbiwgZmxvYXQgbHVtaW5hbmNlKTsK Ky0JCXB1YmxpYyB2b2lkIHByZW11bHRpcGx5ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FscGhhIChmbG9hdCBhbHBoYSk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGFfYnl0ZSAodWludDgg YWxwaGEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X2FscGhhX2Zsb2F0IChmbG9hdCBhbHBoYSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40Iild CistCQlwdWJsaWMgdm9pZCBzZXRfYmx1ZSAoZmxvYXQgYmx1ZSk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfYmx1ZV9ieXRlICh1aW50OCBibHVlKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ibHVlX2Zs b2F0IChmbG9hdCBibHVlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjQiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9m cm9tXzRmIChmbG9hdCByZWQsIGZsb2F0IGdyZWVuLCBmbG9hdCBibHVlLCBmbG9hdCBhbHBoYSk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS40 Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZnJvbV80dWIgKHVpbnQ4IHJl ZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ncmVlbiAoZmxvYXQgZ3JlZW4pOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2dyZWVuX2J5 dGUgKHVpbnQ4IGdyZWVuKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9ncmVlbl9mbG9hdCAoZmxvYXQgZ3JlZW4pOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3JlZCAoZmxvYXQgcmVkKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9yZWRfYnl0ZSAodWludDgg cmVkKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9y ZWRfZmxvYXQgKGZsb2F0IHJlZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorLQkJ cHVibGljIHZvaWQgdG9faHNsIChvdXQgZmxvYXQgaHVlLCBvdXQgZmxvYXQgc2F0dXJhdGlvbiwg b3V0IGZsb2F0IGx1bWluYW5jZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgdm9pZCB1bnByZW11bHRpcGx5ICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAo c2luY2UgPSAiMS44IildCistCXB1YmxpYyBzdHJ1Y3QgRGVidWdPYmplY3RUeXBlSW5mbyB7Cist CQlwdWJsaWMgd2VhayBzdHJpbmcgbmFtZTsKKy0JCXB1YmxpYyB1bG9uZyBpbnN0YW5jZV9jb3Vu dDsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1NpbXBsZVR5cGVdCistCXB1YmxpYyBzdHJ1Y3QgSGFuZGxlIHsKKy0JCXB1YmxpYyBzdGF0aWMg R0xpYi5UeXBlIGdldF90eXBlICgpOworLQkJcHVibGljIENvZ2wuSGFuZGxlIEByZWYgKCk7Cist CQlwdWJsaWMgdm9pZCB1bnJlZiAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfbWF0cml4X2dldF9ndHlwZSAoKSIpXQor LQlwdWJsaWMgc3RydWN0IE1hdHJpeCB7CistCQlwdWJsaWMgZmxvYXQgeHg7CistCQlwdWJsaWMg ZmxvYXQgeXg7CistCQlwdWJsaWMgZmxvYXQgeng7CistCQlwdWJsaWMgZmxvYXQgd3g7CistCQlw dWJsaWMgZmxvYXQgeHk7CistCQlwdWJsaWMgZmxvYXQgeXk7CistCQlwdWJsaWMgZmxvYXQgenk7 CistCQlwdWJsaWMgZmxvYXQgd3k7CistCQlwdWJsaWMgZmxvYXQgeHo7CistCQlwdWJsaWMgZmxv YXQgeXo7CistCQlwdWJsaWMgZmxvYXQgeno7CistCQlwdWJsaWMgZmxvYXQgd3o7CistCQlwdWJs aWMgZmxvYXQgeHc7CistCQlwdWJsaWMgZmxvYXQgeXc7CistCQlwdWJsaWMgZmxvYXQgenc7Cist CQlwdWJsaWMgZmxvYXQgd3c7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJs aWMgQ29nbC5NYXRyaXg/IGNvcHkgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCist CQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBlcXVhbCAodm9pZCogdjEsIHZvaWQqIHYyKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlw dWJsaWMgdm9pZCBmcnVzdHVtIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9t LCBmbG9hdCB0b3AsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworLQkJcHVibGljIHVub3du ZWQgZmxvYXRbXSBnZXRfYXJyYXkgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCist CQlwdWJsaWMgQ29nbC5Cb29sIGdldF9pbnZlcnNlIChvdXQgQ29nbC5NYXRyaXggaW52ZXJzZSk7 CistCQlwdWJsaWMgdm9pZCBpbml0X2Zyb21fZXVsZXIgKENvZ2wuRXVsZXIgZXVsZXIpOworLQkJ cHVibGljIHZvaWQgaW5pdF9mcm9tX3F1YXRlcm5pb24gKENvZ2wuUXVhdGVybmlvbiBxdWF0ZXJu aW9uKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGluaXRf dHJhbnNsYXRpb24gKGZsb2F0IHR4LCBmbG9hdCB0eSwgZmxvYXQgdHopOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBpc19pZGVudGl0eSAoKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIGxvb2tfYXQgKGZsb2F0 IGV5ZV9wb3NpdGlvbl94LCBmbG9hdCBleWVfcG9zaXRpb25feSwgZmxvYXQgZXllX3Bvc2l0aW9u X3osIGZsb2F0IG9iamVjdF94LCBmbG9hdCBvYmplY3RfeSwgZmxvYXQgb2JqZWN0X3osIGZsb2F0 IHdvcmxkX3VwX3gsIGZsb2F0IHdvcmxkX3VwX3ksIGZsb2F0IHdvcmxkX3VwX3opOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0J CXB1YmxpYyB2b2lkIG9ydGhvIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9t LCBmbG9hdCB0b3AsIGZsb2F0IG5lYXIsIGZsb2F0IGZhcik7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgb3J0aG9ncmFwaGljIChmbG9hdCB4XzEsIGZsb2F0 IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIsIGZsb2F0IG5lYXIsIGZsb2F0IGZhcik7CistCQlw dWJsaWMgdm9pZCBwZXJzcGVjdGl2ZSAoZmxvYXQgZm92X3ksIGZsb2F0IGFzcGVjdCwgZmxvYXQg el9uZWFyLCBmbG9hdCB6X2Zhcik7CistCQlwdWJsaWMgdm9pZCBwcm9qZWN0X3BvaW50cyAoaW50 IG5fY29tcG9uZW50cywgc2l6ZV90IHN0cmlkZV9pbiwgdm9pZCogcG9pbnRzX2luLCBzaXplX3Qg c3RyaWRlX291dCwgdm9pZCogcG9pbnRzX291dCwgaW50IG5fcG9pbnRzKTsKKy0JCXB1YmxpYyB2 b2lkIHJvdGF0ZSAoZmxvYXQgYW5nbGUsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgcm90YXRlX2V1bGVyIChD b2dsLkV1bGVyIGV1bGVyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1Ymxp YyB2b2lkIHJvdGF0ZV9xdWF0ZXJuaW9uIChDb2dsLlF1YXRlcm5pb24gcXVhdGVybmlvbik7Cist CQlwdWJsaWMgdm9pZCBzY2FsZSAoZmxvYXQgc3gsIGZsb2F0IHN5LCBmbG9hdCBzeik7CistCQlw dWJsaWMgdm9pZCB0cmFuc2Zvcm1fcG9pbnQgKHJlZiBmbG9hdCB4LCByZWYgZmxvYXQgeSwgcmVm IGZsb2F0IHosIHJlZiBmbG9hdCB3KTsKKy0JCXB1YmxpYyB2b2lkIHRyYW5zZm9ybV9wb2ludHMg KGludCBuX2NvbXBvbmVudHMsIHNpemVfdCBzdHJpZGVfaW4sIHZvaWQqIHBvaW50c19pbiwgc2l6 ZV90IHN0cmlkZV9vdXQsIHZvaWQqIHBvaW50c19vdXQsIGludCBuX3BvaW50cyk7CistCQlwdWJs aWMgdm9pZCB0cmFuc2xhdGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHRyYW5zcG9zZSAoKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHZpZXdfMmRfaW5fZnJ1c3R1 bSAoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9h dCB6X25lYXIsIGZsb2F0IHpfMmQsIGZsb2F0IHdpZHRoXzJkLCBmbG9hdCBoZWlnaHRfMmQpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgdmlld18yZF9pbl9w ZXJzcGVjdGl2ZSAoZmxvYXQgZm92X3ksIGZsb2F0IGFzcGVjdCwgZmxvYXQgel9uZWFyLCBmbG9h dCB6XzJkLCBmbG9hdCB3aWR0aF8yZCwgZmxvYXQgaGVpZ2h0XzJkKTsKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K Ky0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0cnVjdCBPbnNjcmVlbkRp cnR5SW5mbyB7CistCQlwdWJsaWMgaW50IHg7CistCQlwdWJsaWMgaW50IHk7CistCQlwdWJsaWMg aW50IHdpZHRoOworLQkJcHVibGljIGludCBoZWlnaHQ7CistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1Ymxp YyBzdHJ1Y3QgVGV4dHVyZVZlcnRleCB7CistCQlwdWJsaWMgZmxvYXQgeDsKKy0JCXB1YmxpYyBm bG9hdCB5OworLQkJcHVibGljIGZsb2F0IHo7CistCQlwdWJsaWMgZmxvYXQgdHg7CistCQlwdWJs aWMgZmxvYXQgdHk7CistCQlwdWJsaWMgQ29nbC5Db2xvciBjb2xvcjsKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K Ky0JW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgc3RydWN0IFVzZXJEYXRhS2V5 IHsKKy0JCXB1YmxpYyBpbnQgdW51c2VkOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIl9Db2dsQ29sb3JTaXplQ2hlY2siLCBoYXNfdHlw ZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBfQ29sb3JTaXplQ2hlY2sgeworLQkJW0ND b2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBjaGFyW10gY29tcGls ZV90aW1lX2Fzc2VydF9Db2dsQ29sb3Jfc2l6ZTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJfQ29nbE1hdHJpeFNpemVDaGVjayIsIGhh c190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IF9NYXRyaXhTaXplQ2hlY2sgewor LQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBjaGFyW10g Y29tcGlsZV90aW1lX2Fzc2VydF9Db2dsTWF0cml4X3NpemU7CistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiX0NvZ2xUZXh0dXJlVmVydGV4 U2l6ZUNoZWNrIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgX1RleHR1 cmVWZXJ0ZXhTaXplQ2hlY2sgeworLQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCist CQlwdWJsaWMgd2VhayBjaGFyW10gY29tcGlsZV90aW1lX2Fzc2VydF9Db2dsVGV4dHVyZVZlcnRl eF9zaXplOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIs IGNwcmVmaXggPSAiQ09HTF9BVFRSSUJVVEVfVFlQRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K Ky0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBBdHRyaWJ1dGVUeXBl IHsKKy0JCUJZVEUsCistCQlVTlNJR05FRF9CWVRFLAorLQkJU0hPUlQsCistCQlVTlNJR05FRF9T SE9SVCwKKy0JCUZMT0FUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0JJVE1BUF9FUlJPUl8iLCBoYXNfdHlwZV9pZCA9IGZh bHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgZW51bSBCaXRtYXBF cnJvciB7CistCQlGQUlMRUQsCistCQlVTktOT1dOX1RZUEUsCistCQlDT1JSVVBUX0lNQUdFCist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9 ICJDT0dMX0JMRU5EX1NUUklOR19FUlJPUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBCbGVuZFN0cmluZ0Vycm9yIHsK Ky0JCVBBUlNFX0VSUk9SLAorLQkJQVJHVU1FTlRfUEFSU0VfRVJST1IsCistCQlJTlZBTElEX0VS Uk9SLAorLQkJR1BVX1VOU1VQUE9SVEVEX0VSUk9SOworLQkJcHVibGljIHN0YXRpYyB1aW50MzIg cXVhcmsgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IiwgY3ByZWZpeCA9ICJDT0dMX0JVRkZFUl9CSVRfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCist CVtGbGFnc10KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBCdWZm ZXJCaXQgeworLQkJQ09MT1IsCistCQlERVBUSCwKKy0JCVNURU5DSUwKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfIiwgaGFz X3R5cGVfaWQgPSBmYWxzZSldCistCVtGbGFnc10KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIp XQorLQlwdWJsaWMgZW51bSBCdWZmZXJUYXJnZXQgeworLQkJV0lORE9XX0JVRkZFUiwKKy0JCU9G RlNDUkVFTl9CVUZGRVIKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfQ09MT1JfTUFTS18iLCBoYXNfdHlwZV9pZCA9IGZhbHNl KV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBDb2xvck1hc2sgeworLQkJTk9ORSwKKy0JCVJF RCwKKy0JCUdSRUVOLAorLQkJQkxVRSwKKy0JCUFMUEhBLAorLQkJQUxMCistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0RFUFRI X1RFU1RfRlVOQ1RJT05fIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIERl cHRoVGVzdEZ1bmN0aW9uIHsKKy0JCU5FVkVSLAorLQkJTEVTUywKKy0JCUVRVUFMLAorLQkJTEVR VUFMLAorLQkJR1JFQVRFUiwKKy0JCU5PVEVRVUFMLAorLQkJR0VRVUFMLAorLQkJQUxXQVlTCist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9 ICJDT0dMX0ZFQVRVUkVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtGbGFnc10KKy0JW1Zl cnNpb24gKHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgZW51bSBGZWF0dXJlRmxhZ3MgeworLQkJ VEVYVFVSRV9SRUNUQU5HTEUsCistCQlURVhUVVJFX05QT1QsCistCQlURVhUVVJFX1lVViwKKy0J CVRFWFRVUkVfUkVBRF9QSVhFTFMsCistCQlTSEFERVJTX0dMU0wsCistCQlPRkZTQ1JFRU4sCist CQlPRkZTQ1JFRU5fTVVMVElTQU1QTEUsCistCQlPRkZTQ1JFRU5fQkxJVCwKKy0JCUZPVVJfQ0xJ UF9QTEFORVMsCistCQlTVEVOQ0lMX0JVRkZFUiwKKy0JCVZCT1MsCistCQlQQk9TLAorLQkJVU5T SUdORURfSU5UX0lORElDRVMsCistCQlERVBUSF9SQU5HRSwKKy0JCVRFWFRVUkVfTlBPVF9CQVNJ QywKKy0JCVRFWFRVUkVfTlBPVF9NSVBNQVAsCistCQlURVhUVVJFX05QT1RfUkVQRUFULAorLQkJ UE9JTlRfU1BSSVRFLAorLQkJVEVYVFVSRV8zRCwKKy0JCU1BUF9CVUZGRVJfRk9SX1JFQUQsCist CQlNQVBfQlVGRkVSX0ZPUl9XUklURSwKKy0JCU9OU0NSRUVOX01VTFRJUExFLAorLQkJREVQVEhf VEVYVFVSRQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIs IGNwcmVmaXggPSAiQ09HTF9GSUxURVJfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1Ymxp YyBlbnVtIEZpbHRlclJldHVybiB7CistCQlDT05USU5VRSwKKy0JCVJFTU9WRQorLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9G T0dfTU9ERV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorLQlwdWJsaWMgZW51bSBGb2dNb2RlIHsKKy0JCUxJTkVBUiwKKy0JCUVYUE9ORU5USUFM LAorLQkJRVhQT05FTlRJQUxfU1FVQVJFRAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GUkFNRV9FVkVOVF8iLCBoYXNfdHlw ZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0JcHVibGljIGVu dW0gRnJhbWVFdmVudCB7CistCQlTWU5DLAorLQkJQ09NUExFVEUKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRlJBTUVCVUZG RVJfRVJST1JfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIEZyYW1lYnVm ZmVyRXJyb3IgeworLQkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZSQU1FQlVGRkVSX0VSUk9SX0FM TE9DQVRFIildCistCQlGUkFNRUJVRkZFUl9FUlJPUl9BTExPQ0FURTsKKy0JCXB1YmxpYyBzdGF0 aWMgdWludDMyIHF1YXJrICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9JTkRJQ0VTX1RZUEVfVU5TSUdORURfIiwgaGFz X3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIEluZGljZXNUeXBlIHsKKy0JCUJZVEUs CistCQlTSE9SVCwKKy0JCUlOVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9NQVRFUklBTF9BTFBIQV9GVU5DXyIsIGhhc190 eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgZW51bSBNYXRlcmlhbEFscGhhRnVuYyB7CistCQlO RVZFUiwKKy0JCUxFU1MsCistCQlFUVVBTCwKKy0JCUxFUVVBTCwKKy0JCUdSRUFURVIsCistCQlO T1RFUVVBTCwKKy0JCUdFUVVBTCwKKy0JCUFMV0FZUworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9NQVRFUklBTF9GSUxURVJf IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIE1hdGVyaWFsRmlsdGVyIHsK Ky0JCU5FQVJFU1QsCistCQlMSU5FQVIsCistCQlORUFSRVNUX01JUE1BUF9ORUFSRVNULAorLQkJ TElORUFSX01JUE1BUF9ORUFSRVNULAorLQkJTkVBUkVTVF9NSVBNQVBfTElORUFSLAorLQkJTElO RUFSX01JUE1BUF9MSU5FQVIKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfTUFURVJJQUxfTEFZRVJfVFlQRV8iLCBoYXNfdHlw ZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51 bSBNYXRlcmlhbExheWVyVHlwZSB7CistCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfTUFURVJJQUxf TEFZRVJfVFlQRV9URVhUVVJFIildCistCQlNQVRFUklBTF9MQVlFUl9UWVBFX1RFWFRVUkUKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0g IkNPR0xfTUFURVJJQUxfV1JBUF9NT0RFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVy c2lvbiAoc2luY2UgPSAiMS40IildCistCXB1YmxpYyBlbnVtIE1hdGVyaWFsV3JhcE1vZGUgewor LQkJUkVQRUFULAorLQkJQ0xBTVBfVE9fRURHRSwKKy0JCUFVVE9NQVRJQworLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9QSVBF TElORV9BTFBIQV9GVU5DXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgZW51bSBQ aXBlbGluZUFscGhhRnVuYyB7CistCQlORVZFUiwKKy0JCUxFU1MsCistCQlFUVVBTCwKKy0JCUxF UVVBTCwKKy0JCUdSRUFURVIsCistCQlOT1RFUVVBTCwKKy0JCUdFUVVBTCwKKy0JCUFMV0FZUwor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXgg PSAiQ09HTF9QSVBFTElORV9DVUxMX0ZBQ0VfTU9ERV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K Ky0JcHVibGljIGVudW0gUGlwZWxpbmVDdWxsRmFjZU1vZGUgeworLQkJTk9ORSwKKy0JCUZST05U LAorLQkJQkFDSywKKy0JCUJPVEgKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfUElQRUxJTkVfRklMVEVSXyIsIGhhc190eXBl X2lkID0gZmFsc2UpXQorLQlwdWJsaWMgZW51bSBQaXBlbGluZUZpbHRlciB7CistCQlORUFSRVNU LAorLQkJTElORUFSLAorLQkJTkVBUkVTVF9NSVBNQVBfTkVBUkVTVCwKKy0JCUxJTkVBUl9NSVBN QVBfTkVBUkVTVCwKKy0JCU5FQVJFU1RfTUlQTUFQX0xJTkVBUiwKKy0JCUxJTkVBUl9NSVBNQVBf TElORUFSCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg Y3ByZWZpeCA9ICJDT0dMX1BJUEVMSU5FX1dSQVBfTU9ERV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNl KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQlwdWJsaWMgZW51bSBQaXBlbGluZVdy YXBNb2RlIHsKKy0JCVJFUEVBVCwKKy0JCU1JUlJPUkVEX1JFUEVBVCwKKy0JCUNMQU1QX1RPX0VE R0UsCistCQlBVVRPTUFUSUMKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfUElYRUxfRk9STUFUXyIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorLQlbRmxhZ3NdCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGlj IGVudW0gUGl4ZWxGb3JtYXQgeworLQkJQU5ZLAorLQkJQV84LAorLQkJUkdCXzU2NSwKKy0JCVJH QkFfNDQ0NCwKKy0JCVJHQkFfNTU1MSwKKy0JCVlVViwKKy0JCUdfOCwKKy0JCVJHXzg4LAorLQkJ UkdCXzg4OCwKKy0JCUJHUl84ODgsCistCQlSR0JBXzg4ODgsCistCQlCR1JBXzg4ODgsCistCQlB UkdCXzg4ODgsCistCQlBQkdSXzg4ODgsCistCQlSR0JBXzEwMTAxMDIsCistCQlCR1JBXzEwMTAx MDIsCistCQlBUkdCXzIxMDEwMTAsCistCQlBQkdSXzIxMDEwMTAsCistCQlSR0JBXzg4ODhfUFJF LAorLQkJQkdSQV84ODg4X1BSRSwKKy0JCUFSR0JfODg4OF9QUkUsCistCQlBQkdSXzg4ODhfUFJF LAorLQkJUkdCQV80NDQ0X1BSRSwKKy0JCVJHQkFfNTU1MV9QUkUsCistCQlSR0JBXzEwMTAxMDJf UFJFLAorLQkJQkdSQV8xMDEwMTAyX1BSRSwKKy0JCUFSR0JfMjEwMTAxMF9QUkUsCistCQlBQkdS XzIxMDEwMTBfUFJFLAorLQkJREVQVEhfMTYsCistCQlERVBUSF8zMiwKKy0JCURFUFRIXzI0X1NU RU5DSUxfOAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIs IGNwcmVmaXggPSAiQ09HTF9SRUFEX1BJWEVMU19DT0xPUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNl KV0KKy0JW0ZsYWdzXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVt IFJlYWRQaXhlbHNGbGFncyB7CistCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfUkVBRF9QSVhFTFNf Q09MT1JfQlVGRkVSIildCistCQlSRUFEX1BJWEVMU19DT0xPUl9CVUZGRVIKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfUkVO REVSRVJfRVJST1JfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIFJlbmRl cmVyRXJyb3IgeworLQkJWExJQl9ESVNQTEFZX09QRU4sCistCQlCQURfQ09OU1RSQUlOVAorLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAi Q09HTF9TSEFERVJfVFlQRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBTaGFkZXJUeXBlIHsKKy0JCVZFUlRFWCwKKy0J CUZSQUdNRU5UCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IiwgY3ByZWZpeCA9ICJDT0dMX1NURVJFT18iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVi bGljIGVudW0gU3RlcmVvTW9kZSB7CistCQlCT1RILAorLQkJTEVGVCwKKy0JCVJJR0hUCistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJD T0dMX1NZU1RFTV9FUlJPUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNp bmNlID0gIjEuNCIpXQorLQlwdWJsaWMgZW51bSBTeXN0ZW1FcnJvciB7CistCQlVTlNVUFBPUlRF RCwKKy0JCU5PX01FTU9SWQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9URVhUVVJFX0NPTVBPTkVOVFNfIiwgaGFzX3R5cGVf aWQgPSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBlbnVt IFRleHR1cmVDb21wb25lbnRzIHsKKy0JCUEsCistCQlSRywKKy0JCVJHQiwKKy0JCVJHQkEsCist CQlERVBUSAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIs IGNwcmVmaXggPSAiQ09HTF9URVhUVVJFX0VSUk9SXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor LQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCXB1YmxpYyBlbnVtIFRleHR1cmVFcnJvciB7 CistCQlTSVpFLAorLQkJRk9STUFULAorLQkJQkFEX1BBUkFNRVRFUiwKKy0JCVRZUEU7CistCQlw dWJsaWMgc3RhdGljIHVpbnQzMiBxdWFyayAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfVEVYVFVSRV8iLCBoYXNfdHlw ZV9pZCA9IGZhbHNlKV0KKy0JW0ZsYWdzXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCist CXB1YmxpYyBlbnVtIFRleHR1cmVGbGFncyB7CistCQlOT05FLAorLQkJTk9fQVVUT19NSVBNQVAs CistCQlOT19TTElDSU5HLAorLQkJTk9fQVRMQVMKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfVEVYVFVSRV9UWVBFXyIsIGhh c190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQlwdWJs aWMgZW51bSBUZXh0dXJlVHlwZSB7CistCQlAMkQsCistCQlAM0QsCistCQlSRUNUQU5HTEUKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0g IkNPR0xfVkVSVElDRVNfTU9ERV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBWZXJ0aWNlc01vZGUgeworLQkJUE9JTlRT LAorLQkJTElORVMsCistCQlMSU5FX0xPT1AsCistCQlMSU5FX1NUUklQLAorLQkJVFJJQU5HTEVT LAorLQkJVFJJQU5HTEVfU1RSSVAsCistCQlUUklBTkdMRV9GQU4KKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfV0lORElOR18i LCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVudW0gV2luZGluZyB7CistCQlDTE9D S1dJU0UsCistCQlDT1VOVEVSX0NMT0NLV0lTRQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9XSU5TWVNfRkVBVFVSRV8iLCBo YXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVudW0gV2luc3lzRmVhdHVyZSB7CistCQlN VUxUSVBMRV9PTlNDUkVFTiwKKy0JCVNXQVBfVEhST1RUTEUsCistCQlWQkxBTktfQ09VTlRFUiwK Ky0JCVZCTEFOS19XQUlULAorLQkJVEVYVFVSRV9GUk9NX1BJWE1BUCwKKy0JCVNXQVBfQlVGRkVS U19FVkVOVCwKKy0JCVNXQVBfUkVHSU9OLAorLQkJU1dBUF9SRUdJT05fVEhST1RUTEUsCistCQlT V0FQX1JFR0lPTl9TWU5DSFJPTklaRUQsCistCQlCVUZGRVJfQUdFLAorLQkJU1lOQ19BTkRfQ09N UExFVEVfRVZFTlQsCistCQlOX0ZFQVRVUkVTCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKy0JW1ZlcnNpb24gKHNp bmNlID0gIjEuOCIpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBEZWJ1Z09iamVjdEZvcmVhY2hU eXBlQ2FsbGJhY2sgKENvZ2wuRGVidWdPYmplY3RUeXBlSW5mbyBpbmZvKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBz aW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGRlbGVnYXRlIENvZ2wuQm9vbCBNYXRlcmlhbExheWVy Q2FsbGJhY2sgKENvZ2wuTWF0ZXJpYWwgbWF0ZXJpYWwsIGludCBsYXllcl9pbmRleCk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIu OSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lk IE9uc2NyZWVuRGlydHlDYWxsYmFjayAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbiwgQ29nbC5PbnNj cmVlbkRpcnR5SW5mbyBpbmZvKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMy45KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBPbnNjcmVlblJlc2l6ZUNhbGxiYWNrIChDb2dsLk9u c2NyZWVuIG9uc2NyZWVuLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorLQlwdWJs aWMgZGVsZWdhdGUgdm9pZCBPbnNjcmVlblgxMU1hc2tDYWxsYmFjayAoQ29nbC5PbnNjcmVlbiBv bnNjcmVlbiwgdWludDMyIGV2ZW50X21hc2spOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorLQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCXB1YmxpYyBkZWxlZ2F0ZSBDb2dsLkJvb2wgUGlwZWxpbmVMYXllckNhbGxi YWNrIChDb2dsLlBpcGVsaW5lIHBpcGVsaW5lLCBpbnQgbGF5ZXJfaW5kZXgpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQor LQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBTd2FwQnVmZmVyc05vdGlmeSAoQ29nbC5GcmFtZWJ1ZmZl ciBmcmFtZWJ1ZmZlcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIsIGhhc190YXJnZXQgPSBmYWxzZSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIFVzZXJEYXRh RGVzdHJveUNhbGxiYWNrICh2b2lkKiBkYXRhKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9BRklSU1RfQklUIildCistCXB1YmxpYyBj b25zdCBpbnQgQUZJUlNUX0JJVDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIiwgY25hbWUgPSAiQ09HTF9BX0JJVCIpXQorLQlwdWJsaWMgY29uc3QgaW50IEFfQklU OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJD T0dMX0JHUl9CSVQiKV0KKy0JcHVibGljIGNvbnN0IGludCBCR1JfQklUOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX0RFUFRIX0JJVCIp XQorLQlwdWJsaWMgY29uc3QgaW50IERFUFRIX0JJVDsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9QUkVNVUxUX0JJVCIpXQorLQlwdWJs aWMgY29uc3QgaW50IFBSRU1VTFRfQklUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX1NURU5DSUxfQklUIildCistCXB1YmxpYyBjb25z dCBpbnQgU1RFTkNJTF9CSVQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIGNuYW1lID0gIkNPR0xfVEVYVFVSRV9NQVhfV0FTVEUiKV0KKy0JcHVibGljIGNvbnN0 IGludCBURVhUVVJFX01BWF9XQVNURTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBiZWdp bl9nbCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiKV0K Ky0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgY2hlY2tfZXh0ZW5zaW9uIChzdHJpbmcgbmFtZSwg c3RyaW5nIGV4dCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgY2xlYXIgKENvZ2wuQ29sb3IgY29sb3IsIHVsb25n IGJ1ZmZlcnMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgY2x1dHRlcl9jaGVja19leHRlbnNpb25fQ0xVVFRF UiAoc3RyaW5nIG5hbWUsIHN0cmluZyBleHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgY2x1dHRlcl93aW5z eXNfaGFzX2ZlYXR1cmVfQ0xVVFRFUiAoQ29nbC5XaW5zeXNGZWF0dXJlIGZlYXR1cmUpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZGVidWdfbWF0cml4X3ByaW50IChD b2dsLk1hdHJpeCBtYXRyaXgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgZGVidWdfb2JqZWN0X2ZvcmVhY2hfdHlwZSAoQ29nbC5EZWJ1Z09iamVjdEZvcmVhY2hUeXBl Q2FsbGJhY2sgZnVuYyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBk ZWJ1Z19vYmplY3RfcHJpbnRfaW5zdGFuY2VzICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGRpc2FibGVfZm9n ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGVuZF9nbCAoKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgQ29n bC5Cb29sIGZlYXR1cmVzX2F2YWlsYWJsZSAoQ29nbC5GZWF0dXJlRmxhZ3MgZmVhdHVyZXMpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZmx1c2ggKCk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuOC4yIild CistCXB1YmxpYyBzdGF0aWMgdm9pZCBmcnVzdHVtIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwg ZmxvYXQgYm90dG9tLCBmbG9hdCB0b3AsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0 YXRpYyBDb2dsLkJvb2wgZ2V0X2JhY2tmYWNlX2N1bGxpbmdfZW5hYmxlZCAoKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIGdldF9iaXRtYXNrcyAob3V0IGludCByZWQsIG91dCBpbnQgZ3JlZW4sIG91dCBpbnQgYmx1 ZSwgb3V0IGludCBhbHBoYSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBnZXRfZGVwdGhfdGVzdF9lbmFi bGVkICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ29nbC5G cmFtZWJ1ZmZlciBnZXRfZHJhd19mcmFtZWJ1ZmZlciAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44IildCistCXB1YmxpYyBzdGF0 aWMgQ29nbC5GZWF0dXJlRmxhZ3MgZ2V0X2ZlYXR1cmVzICgpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLk1hdHJp eCBnZXRfbW9kZWx2aWV3X21hdHJpeCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgR0xpYi5P cHRpb25Hcm91cCBnZXRfb3B0aW9uX2dyb3VwICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLk1hdHJpeCBnZXRf cHJvamVjdGlvbl9tYXRyaXggKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQqIGdldF9z b3VyY2UgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZ2V0X3ZpZXdwb3J0IChbQ0NvZGUgKGFycmF5X2xlbmd0 aCA9IGZhbHNlKV0gb3V0IGZsb2F0IHZbNF0pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyBHTGliLlR5cGUgZ3R5cGVfbWF0 cml4X2dldF90eXBlICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2ds LkJvb2wgaXNfZnJhbWVidWZmZXIgKHZvaWQqIG9iamVjdCk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor LQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBpc19vbnNjcmVlbiAodm9pZCogb2JqZWN0KTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgaXNfcGlwZWxpbmUgKHZv aWQqIG9iamVjdCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIsIHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBpc192ZXJ0ZXhf YnVmZmVyX2luZGljZXMgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3Rh dGljIHZvaWQgb3J0aG8gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZs b2F0IHRvcCwgZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwZXJzcGVjdGl2 ZSAoZmxvYXQgZm92eSwgZmxvYXQgYXNwZWN0LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHBvbHlnb24gKENvZ2wuVGV4 dHVyZVZlcnRleCB2ZXJ0aWNlcywgdWludCBuX3ZlcnRpY2VzLCBDb2dsLkJvb2wgdXNlX2NvbG9y KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCBwb3BfbWF0cml4ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIHBvcF9zb3VyY2UgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcHVzaF9tYXRyaXggKCk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgcHVzaF9zb3VyY2UgKHZvaWQqIG1hdGVyaWFsKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCXB1YmxpYyBzdGF0aWMg dm9pZCByZWN0YW5nbGUgKGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlf Mik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGVfd2l0 aF9tdWx0aXRleHR1cmVfY29vcmRzIChmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHgyLCBmbG9h dCB5MiwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0W10gdGV4X2Nvb3Jkcywg aW50IHRleF9jb29yZHNfbGVuKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIHJlY3RhbmdsZV93aXRoX3RleHR1cmVfY29vcmRzIChmbG9hdCB4MSwgZmxvYXQgeTEsIGZs b2F0IHgyLCBmbG9hdCB5MiwgZmxvYXQgdHgxLCBmbG9hdCB0eTEsIGZsb2F0IHR4MiwgZmxvYXQg dHkyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlY3RhbmdsZXMg KFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIHZlcnRzLCB1aW50IG5fcmVj dHMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKHNpbmNlID0gIjAuOC42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGVz X3dpdGhfdGV4dHVyZV9jb29yZHMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9h dFtdIHZlcnRzLCB1aW50IG5fcmVjdHMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJvdGF0ZSAoZmxvYXQgYW5n bGUsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNjYWxlIChmbG9h dCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfYmFja2ZhY2VfY3VsbGlu Z19lbmFibGVkIChDb2dsLkJvb2wgc2V0dGluZyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2RlcHRoX3Rl c3RfZW5hYmxlZCAoQ29nbC5Cb29sIHNldHRpbmcpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9mb2cgKENv Z2wuQ29sb3IgZm9nX2NvbG9yLCBDb2dsLkZvZ01vZGUgbW9kZSwgZmxvYXQgZGVuc2l0eSwgZmxv YXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X21vZGVsdmlld19tYXRy aXggKENvZ2wuTWF0cml4IG1hdHJpeCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3Byb2plY3Rpb25fbWF0 cml4IChDb2dsLk1hdHJpeCBtYXRyaXgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNl dF9zb3VyY2UgKHZvaWQqIG1hdGVyaWFsKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBz ZXRfc291cmNlX2NvbG9yIChDb2dsLkNvbG9yIGNvbG9yKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCBzZXRfc291cmNlX2NvbG9yNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0 IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291 cmNlX2NvbG9yNHViICh1aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVlLCB1aW50OCBh bHBoYSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNp bmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3NvdXJjZV90ZXh0dXJlIChD b2dsLlRleHR1cmUgdGV4dHVyZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS44Iiwgc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfdmll d3BvcnQgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCBzaGFkZXJfY29tcGlsZSAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgc3RyaW5nIHNo YWRlcl9nZXRfaW5mb19sb2cgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuU2hh ZGVyVHlwZSBzaGFkZXJfZ2V0X3R5cGUgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENv Z2wuQm9vbCBzaGFkZXJfaXNfY29tcGlsZWQgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGlj IENvZ2wuSGFuZGxlIHNoYWRlcl9yZWYgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgc2hhZGVyX3NvdXJjZSAoQ29nbC5IYW5kbGUgc2hhZGVyLCBzdHJpbmcgc291cmNlKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBz dGF0aWMgdm9pZCBzaGFkZXJfdW5yZWYgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjEuMCIpXQorLQlw dWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJlX25ld19mcm9tX2JpdG1hcCAoQ29nbC5C aXRtYXAgYml0bWFwLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBp bnRlcm5hbF9mb3JtYXQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgdGV4 dHVyZV9uZXdfZnJvbV9kYXRhIChpbnQgd2lkdGgsIGludCBoZWlnaHQsIENvZ2wuVGV4dHVyZUZs YWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgQ29nbC5QaXhlbEZvcm1hdCBpbnRl cm5hbF9mb3JtYXQsIGludCByb3dzdHJpZGUsIHVpbnQ4IGRhdGEpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGlj IHN0YXRpYyBDb2dsLlRleHR1cmUgdGV4dHVyZV9uZXdfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5h bWUsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zv cm1hdCkgdGhyb3dzIEdMaWIuRXJyb3I7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4 dHVyZSB0ZXh0dXJlX25ld19mcm9tX2ZvcmVpZ24gKHVpbnQgZ2xfaGFuZGxlLCB1aW50IGdsX3Rh cmdldCwgdWludCB3aWR0aCwgdWludCBoZWlnaHQsIHVpbnQgeF9wb3Rfd2FzdGUsIHVpbnQgeV9w b3Rfd2FzdGUsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCXB1YmxpYyBzdGF0 aWMgQ29nbC5UZXh0dXJlIHRleHR1cmVfbmV3X3dpdGhfc2l6ZSAodWludCB3aWR0aCwgdWludCBo ZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFs X2Zvcm1hdCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIs IHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdHJhbnNmb3JtIChDb2dsLk1h dHJpeCBtYXRyaXgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHRyYW5zbGF0ZSAoZmxvYXQgeCwgZmxvYXQgeSwg ZmxvYXQgeik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9hZGQgKENvZ2wuSGFuZGxlIGhh bmRsZSwgc3RyaW5nIGF0dHJpYnV0ZV9uYW1lLCB1aW50OCBuX2NvbXBvbmVudHMsIENvZ2wuQXR0 cmlidXRlVHlwZSB0eXBlLCBDb2dsLkJvb2wgbm9ybWFsaXplZCwgdWludDE2IHN0cmlkZSwgdm9p ZCogcG9pbnRlcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9kZWxldGUgKENvZ2wuSGFu ZGxlIGhhbmRsZSwgc3RyaW5nIGF0dHJpYnV0ZV9uYW1lKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhf YnVmZmVyX2Rpc2FibGUgKENvZ2wuSGFuZGxlIGhhbmRsZSwgc3RyaW5nIGF0dHJpYnV0ZV9uYW1l KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2RyYXcgKENvZ2wuSGFuZGxlIGhhbmRsZSwg Q29nbC5WZXJ0aWNlc01vZGUgbW9kZSwgaW50IGZpcnN0LCBpbnQgY291bnQpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIHZlcnRleF9idWZmZXJfZHJhd19lbGVtZW50cyAoQ29nbC5IYW5kbGUgaGFuZGxlLCBDb2ds LlZlcnRpY2VzTW9kZSBtb2RlLCBDb2dsLkhhbmRsZSBpbmRpY2VzLCBpbnQgbWluX2luZGV4LCBp bnQgbWF4X2luZGV4LCBpbnQgaW5kaWNlc19vZmZzZXQsIGludCBjb3VudCk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgdmVydGV4X2J1ZmZlcl9lbmFibGUgKENvZ2wuSGFuZGxlIGhhbmRsZSwgc3RyaW5nIGF0dHJp YnV0ZV9uYW1lKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 IildCistCXB1YmxpYyBzdGF0aWMgdWludCB2ZXJ0ZXhfYnVmZmVyX2dldF9uX3ZlcnRpY2VzIChD b2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkhhbmRsZSB2ZXJ0ZXhfYnVmZmVyX2lu ZGljZXNfZ2V0X2Zvcl9xdWFkcyAodWludCBuX2luZGljZXMpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkluZGlj ZXNUeXBlIHZlcnRleF9idWZmZXJfaW5kaWNlc19nZXRfdHlwZSAoQ29nbC5IYW5kbGUgaW5kaWNl cyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlw dWJsaWMgc3RhdGljIENvZ2wuSGFuZGxlIHZlcnRleF9idWZmZXJfbmV3ICh1aW50IG5fdmVydGlj ZXMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQlw dWJsaWMgc3RhdGljIENvZ2wuSGFuZGxlIHZlcnRleF9idWZmZXJfcmVmIChDb2dsLkhhbmRsZSBo YW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0K Ky0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfc3VibWl0IChDb2dsLkhhbmRsZSBo YW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQor LQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl91bnJlZiAoQ29nbC5IYW5kbGUgaGFu ZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5j ZSA9ICIwLjguMiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmlld3BvcnQgKHVpbnQgd2lkdGgs IHVpbnQgaGVpZ2h0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCXB1YmxpYyBzdGF0aWMgdWludDMyIHgxMV9vbnNjcmVlbl9nZXRfdmlzdWFsX3hpZCAo Q29nbC5PbnNjcmVlbiBvbnNjcmVlbik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3Rh dGljIHVpbnQzMiB4MTFfb25zY3JlZW5fZ2V0X3dpbmRvd194aWQgKENvZ2wuT25zY3JlZW4gb25z Y3JlZW4pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgeDExX29uc2Ny ZWVuX3NldF9mb3JlaWduX3dpbmRvd194aWQgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4sIHVpbnQz MiB4aWQsIFtDQ29kZSAoc2NvcGUgPSAiYXN5bmMiKV0gQ29nbC5PbnNjcmVlblgxMU1hc2tDYWxs YmFjayB1cGRhdGUpOworLX0KK2RpZmYgLS1naXQgdmFwaS9tdXR0ZXItY2x1dHRlci01LWN1c3Rv bS52YWxhIHZhcGkvbXV0dGVyLWNsdXR0ZXItNS1jdXN0b20udmFsYQorZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CitpbmRleCBiOGQ4MzhkMC4uMDAwMDAwMDAKKy0tLSB2YXBpL211dHRlci1jbHV0 dGVyLTUtY3VzdG9tLnZhbGEKKysrKyAvZGV2L251bGwKK0BAIC0xLDE1OCArMCwwIEBACistbmFt ZXNwYWNlIENsdXR0ZXIgeworLSAgW0NDb2RlICh0eXBlX2lkID0gIkNMVVRURVJfVFlQRV9BQ1RP Ul9CT1giLCBjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistICBwdWJs aWMgc3RydWN0IEFjdG9yQm94IHsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2FjdG9y X2JveF9mcm9tX3ZlcnRpY2VzIildCistICAgIHB1YmxpYyBBY3RvckJveC5mcm9tX3ZlcnRpY2Vz IChDbHV0dGVyLlZlcnRleFtdIHZlcnRzKTsKKy0gIH0KKy0KKy0gIHB1YmxpYyBzdHJ1Y3QgTWF0 cml4IDogQ29nbC5NYXRyaXggeworLSAgfQorLQorLSAgcHVibGljIGNsYXNzIEJhY2tlbmQgOiBH TGliLk9iamVjdCB7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyB2aXJ0dWFsIHZvaWQg YWRkX29wdGlvbnMgKEdMaWIuT3B0aW9uR3JvdXAgZ3JvdXApOworLSAgICBbTm9XcmFwcGVyXQor LSAgICBwdWJsaWMgdmlydHVhbCBib29sIGNyZWF0ZV9jb250ZXh0ICgpIHRocm93cyBHTGliLkVy cm9yOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0 ZXIuU3RhZ2VXaW5kb3cgY3JlYXRlX3N0YWdlIChDbHV0dGVyLlN0YWdlIHdyYXBwZXIpIHRocm93 cyBHTGliLkVycm9yOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgdmlydHVhbCB2b2lk IGVuc3VyZV9jb250ZXh0IChDbHV0dGVyLlN0YWdlIHN0YWdlKTsKKy0gICAgW05vV3JhcHBlcl0K Ky0gICAgcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLkRldmljZU1hbmFnZXIgZ2V0X2Rl dmljZV9tYW5hZ2VyICgpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgdmlydHVhbCBD bHV0dGVyLkZlYXR1cmVGbGFncyBnZXRfZmVhdHVyZXMgKCk7CistICAgIFtOb1dyYXBwZXJdCist ICAgIHB1YmxpYyB2aXJ0dWFsIHZvaWQgaW5pdF9ldmVudHMgKCk7CistICAgIFtOb1dyYXBwZXJd CistICAgIHB1YmxpYyB2aXJ0dWFsIHZvaWQgaW5pdF9mZWF0dXJlcyAoKTsKKy0gICAgW05vV3Jh cHBlcl0KKy0gICAgcHVibGljIHZpcnR1YWwgYm9vbCBwb3N0X3BhcnNlICgpIHRocm93cyBHTGli LkVycm9yOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgdmlydHVhbCBib29sIHByZV9w YXJzZSAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGlj IHZpcnR1YWwgdm9pZCByZWRyYXcgKENsdXR0ZXIuU3RhZ2Ugc3RhZ2UpOworLSAgfQorLQorLSAg W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9 ICJjbHV0dGVyX2JveF9nZXRfdHlwZSAoKSIpXQorLSAgcHVibGljIGNsYXNzIEJveCA6IENsdXR0 ZXIuQWN0b3IgeworLSAgICBwdWJsaWMgQ2x1dHRlci5MYXlvdXRNYW5hZ2VyIGxheW91dF9tYW5h Z2VyIHsgZ2V0OyBzZXQ7IH0KKy0gIH0KKy0KKy0gIFtDQ29kZSAodHlwZV9pZCA9ICJDTFVUVEVS X1RZUEVfQ09MT1IiLCBjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCist ICBwdWJsaWMgc3RydWN0IENvbG9yIHsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2Nv bG9yX2Zyb21faGxzIildCistICAgIHB1YmxpYyBDb2xvci5mcm9tX2hscyAoZmxvYXQgaHVlLCBm bG9hdCBsdW1pbmFuY2UsIGZsb2F0IHNhdHVyYXRpb24pOworLSAgICBbQ0NvZGUgKGNuYW1lID0g ImNsdXR0ZXJfY29sb3JfZnJvbV9waXhlbCIpXQorLSAgICBwdWJsaWMgQ29sb3IuZnJvbV9waXhl bCAodWludDMyIHBpeGVsKTsKKy0gICAgW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbG9yX2Zy b21fc3RyaW5nIildCistICAgIHB1YmxpYyBDb2xvci5mcm9tX3N0cmluZyAoc3RyaW5nIHN0cik7 CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9jb2xvcl9mcm9tX3N0cmluZyIpXQorLSAg ICBwdWJsaWMgYm9vbCBwYXJzZV9zdHJpbmcgKHN0cmluZyBzdHIpOworLSAgICBwdWJsaWMgc3Rh dGljIHVub3duZWQgQ2x1dHRlci5Db2xvcj8gZ2V0X3N0YXRpYyAoQ2x1dHRlci5TdGF0aWNDb2xv ciBjb2xvcik7CistICB9CistCistICBbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfY29udGFpbmVyX2dldF90eXBlICgpIild CistICBwdWJsaWMgaW50ZXJmYWNlIENvbnRhaW5lciA6IEdMaWIuT2JqZWN0IHsKKy0gICAgcHVi bGljIHZvaWQgYWRkIChwYXJhbXMgQ2x1dHRlci5BY3RvcltdIGFjdG9ycyk7CistICAgIFtDQ29k ZSAoY25hbWUgPSAiY2x1dHRlcl9jb250YWluZXJfY2xhc3NfZmluZF9jaGlsZF9wcm9wZXJ0eSIp XQorLSAgICBwdWJsaWMgY2xhc3MgdW5vd25lZCBHTGliLlBhcmFtU3BlYyBmaW5kX2NoaWxkX3By b3BlcnR5IChzdHJpbmcgcHJvcGVydHlfbmFtZSk7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1 dHRlcl9jb250YWluZXJfY2xhc3NfbGlzdF9jaGlsZF9wcm9wZXJ0aWVzIildCistICAgIHB1Ymxp YyBjbGFzcyB1bm93bmVkIEdMaWIuUGFyYW1TcGVjW10gbGlzdF9jaGlsZF9wcm9wZXJ0aWVzICgp OworLSAgfQorLQorLSAgW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdf Ym94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9ldmVudF9nZXRfdHlwZSAoKSIpXQorLSAg W0NvbXBhY3RdCistICBwdWJsaWMgY2xhc3MgRXZlbnQgeworLSAgICBwdWJsaWMgQ2x1dHRlci5B bnlFdmVudCBhbnkgeyBbQ0NvZGUgKGNuYW1lID0gIihDbHV0dGVyQW55RXZlbnQgKikiKV0gZ2V0 OyB9CistICAgIHB1YmxpYyBDbHV0dGVyLkJ1dHRvbkV2ZW50IGJ1dHRvbiB7IFtDQ29kZSAoY25h bWUgPSAiKENsdXR0ZXJCdXR0b25FdmVudCAqKSIpXSBnZXQ7IH0KKy0gICAgcHVibGljIENsdXR0 ZXIuQ3Jvc3NpbmdFdmVudCBjcm9zc2luZyB7IFtDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJDcm9z c2luZ0V2ZW50ICopIildIGdldDsgfQorLSAgICBwdWJsaWMgQ2x1dHRlci5LZXlFdmVudCBrZXkg eyBbQ0NvZGUgKGNuYW1lID0gIihDbHV0dGVyS2V5RXZlbnQgKikiKV0gZ2V0OyB9CistICAgIHB1 YmxpYyBDbHV0dGVyLk1vdGlvbkV2ZW50IG1vdGlvbiB7IFtDQ29kZSAoY25hbWUgPSAiKENsdXR0 ZXJNb3Rpb25FdmVudCAqKSIpXSBnZXQ7IH0KKy0gICAgcHVibGljIENsdXR0ZXIuU2Nyb2xsRXZl bnQgc2Nyb2xsIHsgW0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlclNjcm9sbEV2ZW50ICopIildIGdl dDsgfQorLSAgICBwdWJsaWMgQ2x1dHRlci5TdGFnZVN0YXRlRXZlbnQgc3RhZ2Vfc3RhdGUgeyBb Q0NvZGUgKGNuYW1lID0gIihDbHV0dGVyU3RhZ2VTdGF0ZUV2ZW50ICopIildIGdldDsgfQorLSAg ICBwdWJsaWMgQ2x1dHRlci5Ub3VjaEV2ZW50IHRvdWNoIHsgW0NDb2RlIChjbmFtZSA9ICIoQ2x1 dHRlclRvdWNoRXZlbnQgKikiKV0gZ2V0OyB9CistICAgIHB1YmxpYyBDbHV0dGVyLlRvdWNocGFk UGluY2hFdmVudCB0b3VjaHBhZF9waW5jaCB7IFtDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJUb3Vj aHBhZFBpbmNoRXZlbnQgKikiKV0gZ2V0OyB9CistICAgIHB1YmxpYyBDbHV0dGVyLlRvdWNocGFk U3dpcGVFdmVudCB0b3VjaHBhZF9zd2lwZSB7IFtDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJUb3Vj aHBhZFN3aXBlRXZlbnQgKikiKV0gZ2V0OyB9CistICB9CistCistICBbQ0NvZGUgKHR5cGVfaWQg PSAiY2x1dHRlcl9zdGFnZV9nZXRfdHlwZSAoKSIsIGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiKV0KKy0gIHB1YmxpYyBjbGFzcyBTdGFnZSA6IENsdXR0ZXIuR3JvdXAgewor LSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfcmVkcmF3IildCistICAgIHB1YmxpYyB2b2lk IHJlZHJhdyAoKTsKKy0gIH0KKy0KKy0gIFtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIpXQorLSAgcHVibGljIGludGVyZmFjZSBTdGFnZVdpbmRvdyA6IEdMaWIu T2JqZWN0IHsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgYWRk X3JlZHJhd19jbGlwIChDbHV0dGVyLkdlb21ldHJ5IHN0YWdlX3JlY3RhbmdsZSk7CistICAgIFtO b1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGdldF9nZW9tZXRyeSAoQ2x1dHRl ci5HZW9tZXRyeSBnZW9tZXRyeSk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0 cmFjdCBpbnQgZ2V0X3BlbmRpbmdfc3dhcHMgKCk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1 YmxpYyBhYnN0cmFjdCB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3dyYXBwZXIgKCk7CistICAg IFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCBib29sIGhhc19yZWRyYXdfY2xpcHMg KCk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGhpZGUgKCk7 CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCBib29sIGlnbm9yaW5nX3Jl ZHJhd19jbGlwcyAoKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IGJv b2wgcmVhbGl6ZSAoKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZv aWQgcmVzaXplIChpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLSAgICBbTm9XcmFwcGVyXQorLSAg ICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfY3Vyc29yX3Zpc2libGUgKGJvb2wgY3Vyc29yX3Zp c2libGUpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRf ZnVsbHNjcmVlbiAoYm9vbCBpc19mdWxsc2NyZWVuKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAg cHVibGljIGFic3RyYWN0IHZvaWQgc2V0X3RpdGxlIChzdHJpbmcgdGl0bGUpOworLSAgICBbTm9X cmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfdXNlcl9yZXNpemFibGUgKGJv b2wgaXNfcmVzaXphYmxlKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0 IHZvaWQgc2hvdyAoYm9vbCBkb19yYWlzZSk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1Ymxp YyBhYnN0cmFjdCB2b2lkIHVucmVhbGl6ZSAoKTsKKy0gIH0KKy0KKy0gIFtDQ29kZSAodHlwZV9p ZCA9ICJjbHV0dGVyX3RleHR1cmVfZ2V0X3R5cGUgKCkiLCBjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIildCistICBwdWJsaWMgY2xhc3MgVGV4dHVyZSA6IENsdXR0ZXIuQWN0 b3IgeworLSAgICBwdWJsaWMgQ29nbC5NYXRlcmlhbCBjb2dsX21hdGVyaWFsIHsgZ2V0OyBzZXQ7 IH0KKy0gICAgcHVibGljIENvZ2wuVGV4dHVyZSBjb2dsX3RleHR1cmUgeyBnZXQ7IHNldDsgfQor LSAgfQorLQorLSAgW0NvbXBhY3RdCistICBbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiKV0KKy0gIHB1YmxpYyBjbGFzcyBUaW1lb3V0UG9vbCB7CistICAgIFtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0gICAgcHVibGljIFRpbWVv dXRQb29sIChpbnQgcHJpb3JpdHkpOworLSAgfQorLQorLSAgW0NDb2RlIChjcHJlZml4ID0gIkNM VVRURVJfRkVBVFVSRV8iLCBjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIild CistICBbRmxhZ3NdCistICBwdWJsaWMgZW51bSBGZWF0dXJlRmxhZ3MgeworLSAgICBURVhUVVJF X05QT1Q7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9mZWF0dXJlX2F2YWlsYWJsZSIp XQorLSAgICBwdWJsaWMgYm9vbCBpc19hdmFpbGFibGUgKCk7CistICAgIFtDQ29kZSAoY25hbWUg PSAiY2x1dHRlcl9mZWF0dXJlX2dldF9hbGwiKV0KKy0gICAgcHVibGljIHN0YXRpYyBDbHV0dGVy LkZlYXR1cmVGbGFncyBAZ2V0ICgpOworLSAgfQorLQorLSAgW0NDb2RlICh0eXBlX2lkID0gIkNM VVRURVJfVFlQRV9VTklUUyIsIGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi KV0KKy0gIHB1YmxpYyBzdHJ1Y3QgVW5pdHMgeworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0 ZXJfdW5pdHNfZnJvbV9jbSIpXQorLSAgICBwdWJsaWMgVW5pdHMuZnJvbV9jbSAoZmxvYXQgY20p OworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9lbSIpXQorLSAgICBw dWJsaWMgVW5pdHMuZnJvbV9lbSAoZmxvYXQgZW0pOworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNs dXR0ZXJfdW5pdHNfZnJvbV9lbV9mb3JfZm9udCIpXQorLSAgICBwdWJsaWMgVW5pdHMuZnJvbV9l bV9mb3JfZm9udCAoc3RyaW5nIGZvbnRfbmFtZSwgZmxvYXQgZW0pOworLSAgICBbQ0NvZGUgKGNu YW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9tbSIpXQorLSAgICBwdWJsaWMgVW5pdHMuZnJvbV9t bSAoZmxvYXQgbW0pOworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9w aXhlbHMiKV0KKy0gICAgcHVibGljIFVuaXRzLmZyb21fcGl4ZWxzIChpbnQgcHgpOworLSAgICBb Q0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9wdCIpXQorLSAgICBwdWJsaWMgVW5p dHMuZnJvbV9wdCAoZmxvYXQgcHQpOworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5p dHNfZnJvbV9zdHJpbmciKV0KKy0gICAgcHVibGljIFVuaXRzLmZyb21fc3RyaW5nIChzdHJpbmcg c3RyKTsKKy0gIH0KKy19CitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNsdXR0ZXItNC1jdXN0b20u dmFsYSB2YXBpL211dHRlci1jbHV0dGVyLTYtY3VzdG9tLnZhbGEKK3NpbWlsYXJpdHkgaW5kZXgg OTIlCityZW5hbWUgZnJvbSB2YXBpL211dHRlci1jbHV0dGVyLTQtY3VzdG9tLnZhbGEKK3JlbmFt ZSB0byB2YXBpL211dHRlci1jbHV0dGVyLTYtY3VzdG9tLnZhbGEKK2luZGV4IGI4ZDgzOGQwLi44 OTIyNGJlNiAxMDA2NDQKKy0tLSB2YXBpL211dHRlci1jbHV0dGVyLTQtY3VzdG9tLnZhbGEKKysr KyB2YXBpL211dHRlci1jbHV0dGVyLTYtY3VzdG9tLnZhbGEKK0BAIC0xLDkgKzEsNCBAQAorIG5h bWVzcGFjZSBDbHV0dGVyIHsKKy0gIFtDQ29kZSAodHlwZV9pZCA9ICJDTFVUVEVSX1RZUEVfQUNU T1JfQk9YIiwgY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLSAgcHVi bGljIHN0cnVjdCBBY3RvckJveCB7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9hY3Rv cl9ib3hfZnJvbV92ZXJ0aWNlcyIpXQorLSAgICBwdWJsaWMgQWN0b3JCb3guZnJvbV92ZXJ0aWNl cyAoQ2x1dHRlci5WZXJ0ZXhbXSB2ZXJ0cyk7CistICB9CisgCisgICBwdWJsaWMgc3RydWN0IE1h dHJpeCA6IENvZ2wuTWF0cml4IHsKKyAgIH0KK0BAIC0xOCw4ICsxMyw2IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAgICAgW05vV3JhcHBlcl0KKyAgICAgcHVibGljIHZpcnR1YWwgdm9pZCBlbnN1 cmVfY29udGV4dCAoQ2x1dHRlci5TdGFnZSBzdGFnZSk7CisgICAgIFtOb1dyYXBwZXJdCistICAg IHB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGdldF9kZXZpY2Vf bWFuYWdlciAoKTsKKy0gICAgW05vV3JhcHBlcl0KKyAgICAgcHVibGljIHZpcnR1YWwgQ2x1dHRl ci5GZWF0dXJlRmxhZ3MgZ2V0X2ZlYXR1cmVzICgpOworICAgICBbTm9XcmFwcGVyXQorICAgICBw dWJsaWMgdmlydHVhbCB2b2lkIGluaXRfZXZlbnRzICgpOworQEAgLTgzLDEwICs3Niw2IEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAKKyAgIFtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIpXQorICAgcHVibGljIGludGVyZmFjZSBTdGFnZVdpbmRvdyA6IEdMaWIu T2JqZWN0IHsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgYWRk X3JlZHJhd19jbGlwIChDbHV0dGVyLkdlb21ldHJ5IHN0YWdlX3JlY3RhbmdsZSk7CistICAgIFtO b1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIGdldF9nZW9tZXRyeSAoQ2x1dHRl ci5HZW9tZXRyeSBnZW9tZXRyeSk7CisgICAgIFtOb1dyYXBwZXJdCisgICAgIHB1YmxpYyBhYnN0 cmFjdCBpbnQgZ2V0X3BlbmRpbmdfc3dhcHMgKCk7CisgICAgIFtOb1dyYXBwZXJdCitkaWZmIC0t Z2l0IHZhcGkvbXV0dGVyLWNsdXR0ZXItNS5kZXBzIHZhcGkvbXV0dGVyLWNsdXR0ZXItNi5kZXBz CitzaW1pbGFyaXR5IGluZGV4IDYzJQorcmVuYW1lIGZyb20gdmFwaS9tdXR0ZXItY2x1dHRlci01 LmRlcHMKK3JlbmFtZSB0byB2YXBpL211dHRlci1jbHV0dGVyLTYuZGVwcworaW5kZXggM2Y1YTky YTYuLjdhNzBkNmRmIDEwMDY0NAorLS0tIHZhcGkvbXV0dGVyLWNsdXR0ZXItNS5kZXBzCisrKysg dmFwaS9tdXR0ZXItY2x1dHRlci02LmRlcHMKK0BAIC0xLDQgKzEsNCBAQAorIGF0aworIGNhaXJv CisganNvbi1nbGliLTEuMAorLW11dHRlci1jb2dsLTUKKyttdXR0ZXItY29nbC02CitkaWZmIC0t Z2l0IHZhcGkvbXV0dGVyLWNsdXR0ZXItNS52YXBpIHZhcGkvbXV0dGVyLWNsdXR0ZXItNi52YXBp CitzaW1pbGFyaXR5IGluZGV4IDkzJQorcmVuYW1lIGZyb20gdmFwaS9tdXR0ZXItY2x1dHRlci01 LnZhcGkKK3JlbmFtZSB0byB2YXBpL211dHRlci1jbHV0dGVyLTYudmFwaQoraW5kZXggMjRmN2Y2 YjEuLjAxMzBhOTNjIDEwMDY0NAorLS0tIHZhcGkvbXV0dGVyLWNsdXR0ZXItNS52YXBpCisrKysg dmFwaS9tdXR0ZXItY2x1dHRlci02LnZhcGkKK0BAIC0xLDYgKzEsNiBAQAorLS8qIG11dHRlci1j bHV0dGVyLTUudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKysv KiBtdXR0ZXItY2x1dHRlci02LnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2Rp ZnkuICovCisgCistW0NDb2RlIChjcHJlZml4ID0gIkNsdXR0ZXIiLCBnaXJfbmFtZXNwYWNlID0g IkNsdXR0ZXIiLCBnaXJfdmVyc2lvbiA9ICI1IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gImNsdXR0 ZXJfIildCisrW0NDb2RlIChjcHJlZml4ID0gIkNsdXR0ZXIiLCBnaXJfbmFtZXNwYWNlID0gIkNs dXR0ZXIiLCBnaXJfdmVyc2lvbiA9ICI2IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gImNsdXR0ZXJf IildCisgbmFtZXNwYWNlIENsdXR0ZXIgeworIAluYW1lc3BhY2UgS2V5IHsKKyAJCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNuYW1lID0gIkNMVVRURVJf S0VZXzAiKV0KK0BAIC00NjYxLDIyICs0NjYxLDE0IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CXB1YmxpYyB2b2lkIGFsbG9jYXRlX3ByZWZlcnJlZF9zaXplIChDbHV0dGVyLkFsbG9jYXRpb25G bGFncyBmbGFncyk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRl ci5BbmltYXRpb24gYW5pbWF0ZSAodWxvbmcgbW9kZSwgdWludCBkdXJhdGlvbiwgLi4uKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBhbmlt YXRlX3dpdGhfYWxwaGEgKENsdXR0ZXIuQWxwaGEgYWxwaGEsIC4uLik7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEu MCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0ZV93aXRoX2Fs cGhhdiAoQ2x1dHRlci5BbHBoYSBhbHBoYSwgW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAi bl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDEuNSldIHN0cmluZ1tdIHByb3BlcnRp ZXMsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xl bmd0aF9wb3MgPSAxLjUpXSBHTGliLlZhbHVlW10gdmFsdWVzKTsKKyAJCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIild CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBhbmltYXRlX3dpdGhfdGltZWxp bmUgKHVsb25nIG1vZGUsIENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUsIC4uLik7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0ZV93 aXRoX3RpbWVsaW5ldiAodWxvbmcgbW9kZSwgQ2x1dHRlci5UaW1lbGluZSB0aW1lbGluZSwgW0ND b2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3Bv cyA9IDIuNSldIHN0cmluZ1tdIHByb3BlcnRpZXMsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1l ID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAyLjUpXSBHTGliLlZhbHVlW10g dmFsdWVzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFu aW1hdGlvbiBhbmltYXRldiAodWxvbmcgbW9kZSwgdWludCBkdXJhdGlvbiwgW0NDb2RlIChhcnJh eV9sZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDIuNSld IHN0cmluZ1tdIHByb3BlcnRpZXMsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJv cGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAyLjUpXSBHTGliLlZhbHVlW10gdmFsdWVzKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCBh cHBseV9yZWxhdGl2ZV90cmFuc2Zvcm1fdG9fcG9pbnQgKENsdXR0ZXIuQWN0b3I/IGFuY2VzdG9y LCBDbHV0dGVyLlZlcnRleCBwb2ludCk7CisrCQlwdWJsaWMgdm9pZCBhcHBseV9yZWxhdGl2ZV90 cmFuc2Zvcm1fdG9fcG9pbnQgKENsdXR0ZXIuQWN0b3I/IGFuY2VzdG9yLCBHcmFwaGVuZS5Qb2lu dDNEIHBvaW50LCBvdXQgdW5vd25lZCBHcmFwaGVuZS5Qb2ludDNEIHZlcnRleCk7CisgCQlbTm9X cmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBhcHBseV90cmFuc2Zvcm0gKHJlZiBDbHV0 dGVyLk1hdHJpeCBtYXRyaXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVi bGljIENsdXR0ZXIuVmVydGV4IGFwcGx5X3RyYW5zZm9ybV90b19wb2ludCAoQ2x1dHRlci5WZXJ0 ZXggcG9pbnQpOworKwkJcHVibGljIHZvaWQgYXBwbHlfdHJhbnNmb3JtX3RvX3BvaW50IChHcmFw aGVuZS5Qb2ludDNEIHBvaW50LCBvdXQgdW5vd25lZCBHcmFwaGVuZS5Qb2ludDNEIHZlcnRleCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yNCIpXQorIAkJcHVibGljIHZvaWQgYmluZF9tb2Rl bCAoR0xpYi5MaXN0TW9kZWw/IG1vZGVsLCBvd25lZCBDbHV0dGVyLkFjdG9yQ3JlYXRlQ2hpbGRG dW5jIGNyZWF0ZV9jaGlsZF9mdW5jKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KK0BA IC00Njg4LDIwICs0NjgwLDE5IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBib29sIGNvbnRhaW5zIChDbHV0dGVyLkFjdG9yIGRl c2NlbmRhbnQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQg Y29udGludWVfcGFpbnQgKCk7CisrCQlwdWJsaWMgdm9pZCBjb250aW51ZV9wYWludCAoQ2x1dHRl ci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7CisrCQlwdWJsaWMgdm9pZCBjb250aW51ZV9w aWNrIChDbHV0dGVyLlBpY2tDb250ZXh0IHBpY2tfY29udGV4dCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisgCQlwdWJsaWMgUGFuZ28uQ29udGV4dCBjcmVhdGVfcGFuZ29fY29udGV4 dCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBQYW5nby5MYXlv dXQgY3JlYXRlX3BhbmdvX2xheW91dCAoc3RyaW5nPyB0ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBkZXN0cm95X2FsbF9jaGlsZHJlbiAoKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBkZXRhY2hfYW5pbWF0aW9uICgpOworIAkJ W0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2FjdG9yX2V2ZW50IildCisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC42IildCisgCQlwdWJsaWMgYm9vbCBlbWl0X2V2ZW50IChDbHV0dGVyLkV2ZW50IGV2 ZW50LCBib29sIGNhcHR1cmUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVi bGljIHZvaWQgZ2V0X2Fic19hbGxvY2F0aW9uX3ZlcnRpY2VzIChbQ0NvZGUgKGFycmF5X2xlbmd0 aCA9IGZhbHNlKV0gQ2x1dHRlci5WZXJ0ZXggdmVydHNbNF0pOworKwkJcHVibGljIHZvaWQgZ2V0 X2Fic19hbGxvY2F0aW9uX3ZlcnRpY2VzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0g R3JhcGhlbmUuUG9pbnQzRCB2ZXJ0c1s0XSk7CisgCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIEF0 ay5PYmplY3QgZ2V0X2FjY2Vzc2libGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40Iild CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdGlvbiBnZXRfYWN0aW9uIChzdHJpbmcgbmFt ZSk7CitAQCAtNDcwOSwxNiArNDcwMCwxMCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJs aWMgR0xpYi5MaXN0PHdlYWsgQ2x1dHRlci5BY3Rpb24+IGdldF9hY3Rpb25zICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIENsdXR0ZXIuQWN0b3JCb3ggZ2V0X2Fs bG9jYXRpb25fYm94ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkdl b21ldHJ5IGdldF9hbGxvY2F0aW9uX2dlb21ldHJ5ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjAuNiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FsbG9jYXRpb25fdmVydGljZXMgKENsdXR0ZXIu QWN0b3I/IGFuY2VzdG9yLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gQ2x1dHRlci5W ZXJ0ZXggdmVydHNbNF0pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9h bmNob3JfcG9pbnQgKG91dCBmbG9hdCBhbmNob3JfeCwgb3V0IGZsb2F0IGFuY2hvcl95KTsKKysJ CXB1YmxpYyB2b2lkIGdldF9hbGxvY2F0aW9uX3ZlcnRpY2VzIChDbHV0dGVyLkFjdG9yPyBhbmNl c3RvciwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIEdyYXBoZW5lLlBvaW50M0QgdmVy dHNbNF0pOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkdyYXZpdHkgZ2V0 X2FuY2hvcl9wb2ludF9ncmF2aXR5ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1 bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGdldF9hbmltYXRpb24gKCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIENsdXR0ZXIuQ29sb3IgZ2V0X2JhY2tncm91bmRf Y29sb3IgKCk7CisgCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfZ2V0X2FjdG9yX2J5X2dpZCIp XQorQEAgLTQ3NjgsOCArNDc1Myw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBi b29sIGdldF9maXhlZF9wb3NpdGlvbl9zZXQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisgCQlwdWJsaWMgQ2x1dHRlci5BY3RvckZsYWdzIGdldF9mbGFncyAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9 ICIwLjYiKV0KKy0JCXB1YmxpYyB1aW50MzIgZ2V0X2dpZCAoKTsKKyAJCVtDQ29kZSAoY25hbWUg PSAiY2x1dHRlcl9hY3Rvcl9oYXNfcG9pbnRlciIpXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MiIpXQorIAkJcHVibGljIGJvb2wgZ2V0X2hhc19wb2ludGVyICgpOworQEAgLTQ4NDgsOCArNDgz MSw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLlRleHREaXJlY3Rp b24gZ2V0X3RleHRfZGlyZWN0aW9uICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0K KyAJCXB1YmxpYyBDbHV0dGVyLk1hdHJpeCBnZXRfdHJhbnNmb3JtICgpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjAiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLk1hdHJpeCBnZXRfdHJhbnNmb3JtYXRpb25fbWF0cml4 ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1 dHRlci5QYWludFZvbHVtZSBnZXRfdHJhbnNmb3JtZWRfcGFpbnRfdm9sdW1lIChDbHV0dGVyLkFj dG9yIHJlbGF0aXZlX3RvX2FuY2VzdG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0K K0BAIC00ODkyLDcgKzQ4NzMsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9v bCBoYXNfbWFwcGVkX2Nsb25lcyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJ CXB1YmxpYyB2aXJ0dWFsIGJvb2wgaGFzX292ZXJsYXBzICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0K KysJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGhpZGVfYWxsICgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIGluc2VydF9jaGlsZF9h Ym92ZSAoQ2x1dHRlci5BY3RvciBjaGlsZCwgQ2x1dHRlci5BY3Rvcj8gc2libGluZyk7CitAQCAt NDkxMiwxMCArNDg5Myw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIGlz X3NjYWxlZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjI0IildCisgCQlwdWJsaWMgYm9v bCBpc192aXNpYmxlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIGxvd2VyIChDbHV0dGVyLkFjdG9y PyBhYm92ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgbG93ZXJfYm90dG9tICgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBtYXAgKCk7CisgCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjAuNiIpXQorQEAgLTQ5MjgsMTcgKzQ5MDUsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJcHVibGljIGJvb2wgbmVlZHNfZXhwYW5kIChDbHV0dGVyLk9yaWVudGF0aW9uIG9yaWVu dGF0aW9uKTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBhaW50X25v ZGUgKENsdXR0ZXIuUGFpbnROb2RlIHJvb3QpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKysJCXB1Ymxp YyB2b2lkIHBpY2tfYm94IChDbHV0dGVyLlBpY2tDb250ZXh0IHBpY2tfY29udGV4dCwgQ2x1dHRl ci5BY3RvckJveCBib3gpOworIAkJcHVibGljIHZvaWQgcG9wX2ludGVybmFsICgpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5j ZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB2b2lkIHB1c2hfaW50ZXJuYWwgKCk7CisgCQlwdWJsaWMg dm9pZCBxdWV1ZV9yZWRyYXcgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJ cHVibGljIHZvaWQgcXVldWVfcmVkcmF3X3dpdGhfY2xpcCAoQ2Fpcm8uUmVjdGFuZ2xlSW50PyBj bGlwKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCByYWlzZSAoQ2x1dHRlci5BY3Rvcj8gYmVsb3cpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi KV0KKy0JCXB1YmxpYyB2b2lkIHJhaXNlX3RvcCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjQiKV0KKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV9hY3Rpb24gKENsdXR0ZXIuQWN0aW9uIGFjdGlv bik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCitAQCAtNDk2MCw4ICs0OTMyLDYgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgcmVtb3ZlX2VmZmVjdF9ieV9uYW1l IChzdHJpbmcgbmFtZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGlj IHZvaWQgcmVtb3ZlX3RyYW5zaXRpb24gKHN0cmluZyBuYW1lKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC4yIild CistCQlwdWJsaWMgdm9pZCByZXBhcmVudCAoQ2x1dHRlci5BY3RvciBuZXdfcGFyZW50KTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCByZXBsYWNlX2NoaWxk IChDbHV0dGVyLkFjdG9yIG9sZF9jaGlsZCwgQ2x1dHRlci5BY3RvciBuZXdfY2hpbGQpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC01MDQ2LDggKzUwMTYsNiBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBzZXRfc2NhbGUgKGRvdWJsZSBzY2FsZV94LCBk b3VibGUgc2NhbGVfeSk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3Nj YWxlX2Z1bGwgKGRvdWJsZSBzY2FsZV94LCBkb3VibGUgc2NhbGVfeSwgZmxvYXQgY2VudGVyX3gs IGZsb2F0IGNlbnRlcl95KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRf c2NhbGVfd2l0aF9ncmF2aXR5IChkb3VibGUgc2NhbGVfeCwgZG91YmxlIHNjYWxlX3ksIENsdXR0 ZXIuR3Jhdml0eSBncmF2aXR5KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlw dWJsaWMgdm9pZCBzZXRfc2NhbGVfeiAoZG91YmxlIHNjYWxlX3opOworIAkJcHVibGljIHZvaWQg c2V0X3NpemUgKGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpOworQEAgLTUxMTAsMTEgKzUwNzgs OCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQor IAkJcHVibGljIGJvb2wgY2hpbGRfdHJhbnNmb3JtX3NldCB7IGdldDsgfQorIAkJW05vQWNjZXNz b3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIpXQorLQkJcHVibGljIENsdXR0ZXIuR2VvbWV0cnkgY2xpcCB7IG93bmVkIGdl dDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5SZWN0IGNsaXBfcmVjdCB7IG93bmVkIGdldDsgc2V0 OyB9CisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBjbGlwX3JlY3QgeyBvd25lZCBnZXQ7IHNldDsg fQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIGJvb2wgY2xpcF90b19h bGxvY2F0aW9uIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAgLTUxOTks MTIgKzUxNjQsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHVpbnQgb3BhY2l0 eSB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5Qb2ludCBwaXZvdF9wb2ludCB7IG93bmVk IGdldDsgc2V0OyB9CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQgcGl2b3RfcG9pbnQgeyBvd25l ZCBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBm bG9hdCBwaXZvdF9wb2ludF96IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlBvaW50IHBv c2l0aW9uIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBwb3Np dGlvbiB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisg CQlwdWJsaWMgYm9vbCByZWFjdGl2ZSB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KK0BAIC01MjI1LDEzICs1MTkwLDEzIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1Ymxp YyBkb3VibGUgcm90YXRpb25fYW5nbGVfeiB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgQ2x1dHRlci5WZXJ0ZXggcm90YXRp b25fY2VudGVyX3ggeyBvd25lZCBnZXQ7IHNldDsgfQorKwkJcHVibGljIEdyYXBoZW5lLlBvaW50 M0Qgcm90YXRpb25fY2VudGVyX3ggeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JN ZXRob2RdCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIENsdXR0ZXIuVmVydGV4IHJvdGF0 aW9uX2NlbnRlcl95IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2lu dDNEIHJvdGF0aW9uX2NlbnRlcl95IHsgb3duZWQgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29y TWV0aG9kXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCByb3Rh dGlvbl9jZW50ZXJfeiB7IG93bmVkIGdldDsgc2V0OyB9CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9p bnQzRCByb3RhdGlvbl9jZW50ZXJfeiB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgQ2x1dHRlci5HcmF2aXR5IHJv dGF0aW9uX2NlbnRlcl96X2dyYXZpdHkgeyBnZXQ7IHNldDsgfQorQEAgLTUyNTcsNyArNTIyMiw3 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIHNob3dfb25fc2V0X3BhcmVu dCB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5TaXplIHNpemUgeyBvd25lZCBnZXQ7IHNl dDsgfQorKwkJcHVibGljIEdyYXBoZW5lLlNpemUgc2l6ZSB7IG93bmVkIGdldDsgc2V0OyB9Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgQ2x1dHRlci5UZXh0RGlyZWN0 aW9uIHRleHRfZGlyZWN0aW9uIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQor QEAgLTUzMTksMTEgKzUyODQsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZp cnR1YWwgc2lnbmFsIGJvb2wgbW90aW9uX2V2ZW50IChDbHV0dGVyLk1vdGlvbkV2ZW50IGV2ZW50 KTsKKyAJCVtIYXNFbWl0dGVyXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2aXJ0dWFs IHNpZ25hbCB2b2lkIHBhaW50ICgpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGFp bnQgKENsdXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjAuMiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGFyZW50X3NldCAo Q2x1dHRlci5BY3Rvcj8gb2xkX3BhcmVudCk7CisrCQlbSGFzRW1pdHRlcl0KKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHBpY2sgKENs dXR0ZXIuQ29sb3IgY29sb3IpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGljayAo Q2x1dHRlci5QaWNrQ29udGV4dCBwaWNrX2NvbnRleHQpOworIAkJW0hhc0VtaXR0ZXJdCisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBx dWV1ZV9yZWxheW91dCAoKTsKK0BAIC01MzYxLDYgKzUzMjcsMTEgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJcHVibGljIGJvb2wgZW5hYmxlZCB7IGdldDsgc2V0OyB9CisgCQlwdWJsaWMgc3Ry aW5nIG5hbWUgeyBnZXQ7IHNldDsgfQorIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hY3Rvcl9ub2RlX2dldF90 eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBBY3Rvck5vZGUgOiBDbHV0dGVyLlBhaW50Tm9kZSB7 CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0 dGVyUGFpbnROb2RlKiIpXQorKwkJcHVibGljIEFjdG9yTm9kZSAoQ2x1dHRlci5BY3RvciBhY3Rv cik7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FsaWduX2NvbnN0cmFpbnRfZ2V0X3R5cGUgKCkiKV0KKyAJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAlwdWJsaWMgY2xhc3MgQWxpZ25Db25zdHJhaW50 IDogQ2x1dHRlci5Db25zdHJhaW50IHsKK0BAIC01Mzg4LDE5ICs1MzU5LDEyIEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB1bG9u ZyBnZXRfbW9kZSAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuVGltZWxpbmUgZ2V0X3Rp bWVsaW5lICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRp YyB1bG9uZyByZWdpc3Rlcl9jbG9zdXJlIChHTGliLkNsb3N1cmUgY2xvc3VyZSk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIHVsb25nIHJlZ2lzdGVyX2Z1 bmMgKENsdXR0ZXIuQWxwaGFGdW5jIGZ1bmMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIp XQorIAkJcHVibGljIHZvaWQgc2V0X2Nsb3N1cmUgKEdMaWIuQ2xvc3VyZSBjbG9zdXJlKTsKKyAJ CXB1YmxpYyB2b2lkIHNldF9mdW5jIChvd25lZCBDbHV0dGVyLkFscGhhRnVuYyBmdW5jKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9tb2RlICh1bG9u ZyBtb2RlKTsKKyAJCXB1YmxpYyB2b2lkIHNldF90aW1lbGluZSAoQ2x1dHRlci5UaW1lbGluZSB0 aW1lbGluZSk7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQWxwaGEud2l0aF9mdW5jIChD bHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lLCBvd25lZCBDbHV0dGVyLkFscGhhRnVuYyBmdW5jKTsK KyAJCXB1YmxpYyBkb3VibGUgYWxwaGEgeyBnZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKyAJCXB1YmxpYyB1bG9uZyBtb2RlIHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CitAQCAt NTQxMSwzNSArNTM3NSwyNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCXB1YmxpYyBjbGFzcyBB bmltYXRpb24gOiBHTGliLk9iamVjdCwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKyAJCVtDQ29kZSAo aGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXB1YmxpYyBBbmltYXRpb24gKCk7 CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBiaW5kIChzdHJpbmcgcHJvcGVy dHlfbmFtZSwgR0xpYi5WYWx1ZSBmaW5hbCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFu aW1hdGlvbiBiaW5kX2ludGVydmFsIChzdHJpbmcgcHJvcGVydHlfbmFtZSwgb3duZWQgQ2x1dHRl ci5JbnRlcnZhbCBpbnRlcnZhbCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3du ZWQgQ2x1dHRlci5BbHBoYSBnZXRfYWxwaGEgKCk7CisgCQlwdWJsaWMgdWludCBnZXRfZHVyYXRp b24gKCk7CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkludGVydmFsIGdldF9pbnRlcnZhbCAo c3RyaW5nIHByb3BlcnR5X25hbWUpOworIAkJcHVibGljIGJvb2wgZ2V0X2xvb3AgKCk7CisgCQlw dWJsaWMgdWxvbmcgZ2V0X21vZGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBHTGliLk9iamVjdCBn ZXRfb2JqZWN0ICgpOworIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5UaW1lbGluZSBnZXRfdGlt ZWxpbmUgKCk7CisgCQlwdWJsaWMgYm9vbCBoYXNfcHJvcGVydHkgKHN0cmluZyBwcm9wZXJ0eV9u YW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGEgKENsdXR0 ZXIuQWxwaGEgYWxwaGEpOworIAkJcHVibGljIHZvaWQgc2V0X2R1cmF0aW9uICh1aW50IG1zZWNz KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9sb29wIChib29sIGxvb3ApOworIAkJcHVibGljIHZvaWQg c2V0X21vZGUgKHVsb25nIG1vZGUpOworIAkJcHVibGljIHZvaWQgc2V0X29iamVjdCAoR0xpYi5P YmplY3Qgb2JqZWN0KTsKKyAJCXB1YmxpYyB2b2lkIHNldF90aW1lbGluZSAoQ2x1dHRlci5UaW1l bGluZT8gdGltZWxpbmUpOworLQkJcHVibGljIHZvaWQgdW5iaW5kX3Byb3BlcnR5IChzdHJpbmcg cHJvcGVydHlfbmFtZSk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiB1cGRh dGUgKHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVlIGZpbmFsKTsKKy0JCXB1YmxpYyB2 b2lkIHVwZGF0ZV9pbnRlcnZhbCAoc3RyaW5nIHByb3BlcnR5X25hbWUsIENsdXR0ZXIuSW50ZXJ2 YWwgaW50ZXJ2YWwpOworKwkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIENsdXR0ZXIuQWxwaGEgYWxwaGEgeyBnZXQ7IHNldDsgfQorKwkJcHVibGljIENs dXR0ZXIuQWxwaGEgYWxwaGEgeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJcHVibGljIHVpbnQgZHVy YXRpb24geyBnZXQ7IHNldDsgfQorIAkJcHVibGljIGJvb2wgbG9vcCB7IGdldDsgc2V0OyB9Cisg CQlwdWJsaWMgdWxvbmcgbW9kZSB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgR0xpYi5PYmplY3Qg b2JqZWN0IHsgZ2V0OyBzZXQ7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIEdM aWIuT2JqZWN0IG9iamVjdCB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlwdWJsaWMgQ2x1dHRlci5U aW1lbGluZSB0aW1lbGluZSB7IGdldDsgc2V0OyB9CistCQlbSGFzRW1pdHRlcl0KKyAJCXB1Ymxp YyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGNvbXBsZXRlZCAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHNp Z25hbCB2b2lkIHN0YXJ0ZWQgKCk7CisgCX0KK0BAIC01NDYwLDIxICs1NDE1LDE4IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCXByb3RlY3RlZCBCYWNrZW5kICgpOworIAkJW05vV3JhcHBlcl0K KyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYWRkX29wdGlvbnMgKEdMaWIuT3B0aW9uR3JvdXAgZ3Jv dXApOworLQkJcHVibGljIHZvaWQgYmVsbF9ub3RpZnkgKCk7CisgCQlbTm9XcmFwcGVyXQorIAkJ cHVibGljIHZpcnR1YWwgYm9vbCBjcmVhdGVfY29udGV4dCAoKSB0aHJvd3MgR0xpYi5FcnJvcjsK KyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuU3RhZ2VX aW5kb3cgY3JlYXRlX3N0YWdlIChDbHV0dGVyLlN0YWdlIHdyYXBwZXIpIHRocm93cyBHTGliLkVy cm9yOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZW5zdXJlX2NvbnRl eHQgKENsdXR0ZXIuU3RhZ2Ugc3RhZ2UpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0 dWFsIHVub3duZWQgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGdldF9kZXZpY2VfbWFuYWdlciAoKTsK KysJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuU2VhdCBnZXRfZGVmYXVsdF9zZWF0ICgpOworIAkJ W05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIENsdXR0ZXIuRmVhdHVyZUZsYWdzIGdldF9m ZWF0dXJlcyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyB1bm93 bmVkIENhaXJvLkZvbnRPcHRpb25zIGdldF9mb250X29wdGlvbnMgKCk7CisgCQlwdWJsaWMgdW5v d25lZCBDbHV0dGVyLklucHV0TWV0aG9kIGdldF9pbnB1dF9tZXRob2QgKCk7CistCQlwdWJsaWMg dW5vd25lZCBDbHV0dGVyLktleW1hcCBnZXRfa2V5bWFwICgpOworIAkJcHVibGljIGRvdWJsZSBn ZXRfcmVzb2x1dGlvbiAoKTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lk IGluaXRfZXZlbnRzICgpOworQEAgLTU0OTYsOTUgKzU0NDgsMTEgQEAgbmFtZXNwYWNlIENsdXR0 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 eF9hbGlnbiB7IGdldDsgc2V0OyB9CitAQCAtNTc1OCwzNyArNTYyNiw2IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCXB1YmxpYyBmbG9hdCB4OworIAkJcHVibGljIGZsb2F0IHk7CisgCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9 ICJjbHV0dGVyX2NhaXJvX3RleHR1cmVfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JcHVibGljIGNsYXNzIENhaXJvVGV4dHVyZSA6IENsdXR0ZXIuVGV4dHVyZSwgQXRrLkltcGxl bWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNj cmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5 cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJcHVibGljIENhaXJvVGV4dHVyZSAodWludCB3aWR0 aCwgdWludCBoZWlnaHQpOworLQkJcHVibGljIHZvaWQgY2xlYXIgKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMS4w IildCistCQlwdWJsaWMgQ2Fpcm8uQ29udGV4dCBjcmVhdGUgKCk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgQ2Fpcm8uQ29udGV4dCBjcmVhdGVfcmVnaW9uIChpbnQgeF9vZmZzZXQsIGlu dCB5X29mZnNldCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjgiKV0KKy0JCXB1YmxpYyBib29sIGdldF9hdXRvX3Jlc2l6ZSAoKTsKKy0JCXB1YmxpYyB2 b2lkIGdldF9zdXJmYWNlX3NpemUgKG91dCB1aW50IHdpZHRoLCBvdXQgdWludCBoZWlnaHQpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgaW52YWxpZGF0ZSAo KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIGludmFsaWRh dGVfcmVjdGFuZ2xlIChDYWlyby5SZWN0YW5nbGVJbnQ/IHJlY3QpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2F1dG9fcmVzaXplIChib29sIHZhbHVl KTsKKy0JCXB1YmxpYyB2b2lkIHNldF9zdXJmYWNlX3NpemUgKHVpbnQgd2lkdGgsIHVpbnQgaGVp Z2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBib29sIGF1dG9f cmVzaXplIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVp bnQgc3VyZmFjZV9oZWlnaHQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCist CQlwdWJsaWMgdWludCBzdXJmYWNlX3dpZHRoIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBDYWlyby5TdXJmYWNlIGNy ZWF0ZV9zdXJmYWNlICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS44IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCBkcmF3IChDYWlyby5D b250ZXh0IGNyKTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfY2FudmFzX2dldF90eXBlICgpIildCisgCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBjbGFzcyBDYW52YXMgOiBHTGliLk9i amVjdCwgQ2x1dHRlci5Db250ZW50IHsKK0BAIC01OTIwLDYyICs1NzU3LDI0IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9mYWN0b3IgKGRvdWJsZSBmYWN0b3IpOwor IAkJcHVibGljIGRvdWJsZSBmYWN0b3IgeyBnZXQ7IHNldDsgfQorIAl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9k ZXZpY2VfbWFuYWdlcl9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIild CistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBEZXZpY2VNYW5hZ2VyIDogR0xpYi5PYmplY3Qgewor LQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVk IERldmljZU1hbmFnZXIgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9p ZCBhZGRfZGV2aWNlIChDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSk7CistCQlbTm9XcmFwcGVy XQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBhcHBseV9rYmRfYTExeV9zZXR0aW5ncyAoQ2x1dHRl ci5LYmRBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2 aXJ0dWFsIHZvaWQgY29tcHJlc3NfbW90aW9uIChDbHV0dGVyLkV2ZW50IGV2ZW50LCBDbHV0dGVy LkV2ZW50IHRvX2Rpc2NhcmQpOworLQkJcHVibGljIHZpcnR1YWwgQ2x1dHRlci5WaXJ0dWFsSW5w dXREZXZpY2UgY3JlYXRlX3ZpcnR1YWxfZGV2aWNlIChDbHV0dGVyLklucHV0RGV2aWNlVHlwZSBk ZXZpY2VfdHlwZSk7CistCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuSW5wdXREZXZp Y2UgZ2V0X2NvcmVfZGV2aWNlIChDbHV0dGVyLklucHV0RGV2aWNlVHlwZSBkZXZpY2VfdHlwZSk7 CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGdldF9kZWZh dWx0ICgpOworLQkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLklucHV0RGV2aWNlIGdl dF9kZXZpY2UgKGludCBkZXZpY2VfaWQpOworLQkJcHVibGljIHZvaWQgZ2V0X2tiZF9hMTF5X3Nl dHRpbmdzIChDbHV0dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CistCQlwdWJsaWMgdm9p ZCBnZXRfcG9pbnRlcl9hMTF5X3NldHRpbmdzIChDbHV0dGVyLlBvaW50ZXJBMTF5U2V0dGluZ3Mg c2V0dGluZ3MpOworLQkJcHVibGljIHZpcnR1YWwgQ2x1dHRlci5WaXJ0dWFsRGV2aWNlVHlwZSBn ZXRfc3VwcG9ydGVkX3ZpcnR1YWxfZGV2aWNlX3R5cGVzICgpOworLQkJcHVibGljIEdMaWIuU0xp c3Q8d2VhayBDbHV0dGVyLklucHV0RGV2aWNlPiBsaXN0X2RldmljZXMgKCk7CistCQlwdWJsaWMg dW5vd25lZCBHTGliLlNMaXN0PENsdXR0ZXIuSW5wdXREZXZpY2U+IHBlZWtfZGV2aWNlcyAoKTsK Ky0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHJlbW92ZV9kZXZpY2UgKENs dXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmly dHVhbCB2b2lkIHNlbGVjdF9zdGFnZV9ldmVudHMgKENsdXR0ZXIuU3RhZ2Ugc3RhZ2UpOworLQkJ cHVibGljIHZvaWQgc2V0X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVyLktiZEExMXlTZXR0aW5n cyBzZXR0aW5ncyk7CistCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRlcl9hMTF5X2R3ZWxsX2NsaWNr X3R5cGUgKENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbENsaWNrVHlwZSBjbGlja190eXBlKTsKKy0J CXB1YmxpYyB2b2lkIHNldF9wb2ludGVyX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuUG9pbnRlckEx MXlTZXR0aW5ncyBzZXR0aW5ncyk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBD bHV0dGVyLkJhY2tlbmQgYmFja2VuZCB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlwdWJs aWMgc2lnbmFsIHZvaWQgZGV2aWNlX2FkZGVkIChDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSk7 CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGV2aWNlX3JlbW92ZWQgKENsdXR0ZXIuSW5wdXREZXZp Y2UgZGV2aWNlKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBrYmRfYTExeV9mbGFnc19jaGFuZ2Vk ICh1aW50IHNldHRpbmdzX2ZsYWdzLCB1aW50IGNoYW5nZWRfbWFzayk7CistCQlwdWJsaWMgc2ln bmFsIHZvaWQga2JkX2ExMXlfbW9kc19zdGF0ZV9jaGFuZ2VkICh1aW50IGxhdGNoZWRfbWFzaywg dWludCBsb2NrZWRfbWFzayk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcHRyX2ExMXlfZHdlbGxf Y2xpY2tfdHlwZV9jaGFuZ2VkIChDbHV0dGVyLlBvaW50ZXJBMTF5RHdlbGxDbGlja1R5cGUgY2xp Y2tfdHlwZSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcHRyX2ExMXlfdGltZW91dF9zdGFydGVk IChDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSwgQ2x1dHRlci5Qb2ludGVyQTExeVRpbWVvdXRU eXBlIHRpbWVvdXRfdHlwZSwgdWludCBkZWxheSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcHRy X2ExMXlfdGltZW91dF9zdG9wcGVkIChDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSwgQ2x1dHRl ci5Qb2ludGVyQTExeVRpbWVvdXRUeXBlIHRpbWVvdXRfdHlwZSk7CistCQlwdWJsaWMgc2lnbmFs IHZvaWQgdG9vbF9jaGFuZ2VkIChDbHV0dGVyLklucHV0RGV2aWNlIG9iamVjdCwgQ2x1dHRlci5J bnB1dERldmljZVRvb2wgcDApOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9kcmFnX2FjdGlvbl9nZXRfdHlw ZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBjbGFzcyBEcmFn QWN0aW9uIDogQ2x1dHRlci5BY3Rpb24geworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdGlvbioiKV0KKyAJCXB1YmxpYyBEcmFnQWN0 aW9uICgpOworLQkJcHVibGljIGJvb2wgZ2V0X2RyYWdfYXJlYSAoQ2x1dHRlci5SZWN0IGRyYWdf YXJlYSk7CisrCQlwdWJsaWMgYm9vbCBnZXRfZHJhZ19hcmVhIChHcmFwaGVuZS5SZWN0IGRyYWdf YXJlYSk7CisgCQlwdWJsaWMgQ2x1dHRlci5EcmFnQXhpcyBnZXRfZHJhZ19heGlzICgpOworIAkJ cHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfZHJhZ19oYW5kbGUgKCk7CisgCQlwdWJs aWMgdm9pZCBnZXRfZHJhZ190aHJlc2hvbGQgKG91dCB1aW50IHhfdGhyZXNob2xkLCBvdXQgdWlu dCB5X3RocmVzaG9sZCk7CisgCQlwdWJsaWMgdm9pZCBnZXRfbW90aW9uX2Nvb3JkcyAob3V0IGZs b2F0IG1vdGlvbl94LCBvdXQgZmxvYXQgbW90aW9uX3kpOworIAkJcHVibGljIHZvaWQgZ2V0X3By ZXNzX2Nvb3JkcyAob3V0IGZsb2F0IHByZXNzX3gsIG91dCBmbG9hdCBwcmVzc195KTsKKy0JCXB1 YmxpYyB2b2lkIHNldF9kcmFnX2FyZWEgKENsdXR0ZXIuUmVjdD8gZHJhZ19hcmVhKTsKKysJCXB1 YmxpYyB2b2lkIHNldF9kcmFnX2FyZWEgKEdyYXBoZW5lLlJlY3Q/IGRyYWdfYXJlYSk7CisgCQlw dWJsaWMgdm9pZCBzZXRfZHJhZ19heGlzIChDbHV0dGVyLkRyYWdBeGlzIGF4aXMpOworIAkJcHVi bGljIHZvaWQgc2V0X2RyYWdfaGFuZGxlIChDbHV0dGVyLkFjdG9yPyBoYW5kbGUpOworIAkJcHVi bGljIHZvaWQgc2V0X2RyYWdfdGhyZXNob2xkIChpbnQgeF90aHJlc2hvbGQsIGludCB5X3RocmVz aG9sZCk7CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEy IildCistCQlwdWJsaWMgQ2x1dHRlci5SZWN0IGRyYWdfYXJlYSB7IG93bmVkIGdldDsgc2V0OyB9 CisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBkcmFnX2FyZWEgeyBvd25lZCBnZXQ7IHNldDsgfQor IAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJ cHVibGljIGJvb2wgZHJhZ19hcmVhX3NldCB7IGdldDsgfQorQEAgLTYwMTEsMTMgKzU4MTAsMTMg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFs IGJvb2wgbW9kaWZ5X3BhaW50X3ZvbHVtZSAoQ2x1dHRlci5QYWludFZvbHVtZSB2b2x1bWUpOwor IAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGFpbnQgKENsdXR0ZXIuRWZm ZWN0UGFpbnRGbGFncyBmbGFncyk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBhaW50IChDbHV0 dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0LCBDbHV0dGVyLkVmZmVjdFBhaW50RmxhZ3Mg ZmxhZ3MpOworIAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGljayAoQ2x1 dHRlci5FZmZlY3RQYWludEZsYWdzIGZsYWdzKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGlj ayAoQ2x1dHRlci5QaWNrQ29udGV4dCBwaWNrX2NvbnRleHQpOworIAkJW05vV3JhcHBlcl0KKy0J CXB1YmxpYyB2aXJ0dWFsIHZvaWQgcG9zdF9wYWludCAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZv aWQgcG9zdF9wYWludCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7CisgCQlb Tm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgYm9vbCBwcmVfcGFpbnQgKCk7CisrCQlwdWJs aWMgdmlydHVhbCBib29sIHByZV9wYWludCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29u dGV4dCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCBxdWV1 ZV9yZXBhaW50ICgpOworIAl9CitAQCAtNjA2OCw3ICs1ODY3LDcgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJcHVibGljIHVpbnQgZ2V0X21vZGVfZ3JvdXAgKCk7CisgCQlwdWJsaWMgYm9vbCBn ZXRfcGFkX2V2ZW50X2RldGFpbHMgKG91dCB1aW50IG51bWJlciwgb3V0IHVpbnQgbW9kZSwgb3V0 IGRvdWJsZSB2YWx1ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGlj IHZvaWQgZ2V0X3Bvc2l0aW9uIChDbHV0dGVyLlBvaW50IHBvc2l0aW9uKTsKKysJCXB1YmxpYyB2 b2lkIGdldF9wb3NpdGlvbiAoR3JhcGhlbmUuUG9pbnQgcG9zaXRpb24pOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfcmVs YXRlZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNjMwOCw3ICs2MTA3 LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQor IAkJcHVibGljIGJvb2wgZ2V0X2F4aXNfdmFsdWUgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFs c2UpXSBkb3VibGVbXSBheGVzLCBDbHV0dGVyLklucHV0QXhpcyBheGlzLCBvdXQgZG91YmxlIHZh bHVlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgYm9vbCBnZXRf Y29vcmRzIChDbHV0dGVyLkV2ZW50U2VxdWVuY2U/IHNlcXVlbmNlLCBDbHV0dGVyLlBvaW50IHBv aW50KTsKKysJCXB1YmxpYyBib29sIGdldF9jb29yZHMgKENsdXR0ZXIuRXZlbnRTZXF1ZW5jZT8g c2VxdWVuY2UsIEdyYXBoZW5lLlBvaW50IHBvaW50KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2RldmljZV9pZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjYiKV0KK0BAIC02MzIyLDcgKzYxMjEsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlwdWJsaWMgYm9vbCBnZXRfZW5hYmxlZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9ncmFiYmVkX2FjdG9yICgp OworLQkJcHVibGljIGludCBnZXRfZ3JvdXBfbl9tb2RlcyAoaW50IGdyb3VwKTsKKysJCXB1Ymxp YyB2aXJ0dWFsIGludCBnZXRfZ3JvdXBfbl9tb2RlcyAoaW50IGdyb3VwKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBib29sIGdldF9oYXNfY3Vyc29yICgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTYzNDQsMTYgKzYxNDMsMTcgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5TdGFnZSBnZXRfcG9pbnRl cl9zdGFnZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIyIildCisgCQlwdWJsaWMgdW5v d25lZCBzdHJpbmcgZ2V0X3Byb2R1Y3RfaWQgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVy LlNlYXQgZ2V0X3NlYXQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJs aWMgR0xpYi5MaXN0PHdlYWsgQ2x1dHRlci5JbnB1dERldmljZT4gZ2V0X3NsYXZlX2RldmljZXMg KCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yMiIpXQorIAkJcHVibGljIHVub3duZWQgc3Ry aW5nIGdldF92ZW5kb3JfaWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJ cHVibGljIHZvaWQgZ3JhYiAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlwdWJsaWMgYm9vbCBp c19ncm91cGVkIChDbHV0dGVyLklucHV0RGV2aWNlIG90aGVyX2RldmljZSk7CistCQlwdWJsaWMg Ym9vbCBpc19tb2RlX3N3aXRjaF9idXR0b24gKHVpbnQgZ3JvdXAsIHVpbnQgYnV0dG9uKTsKKysJ CXB1YmxpYyB2aXJ0dWFsIGJvb2wgaXNfZ3JvdXBlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvdGhl cl9kZXZpY2UpOworKwkJcHVibGljIHZpcnR1YWwgYm9vbCBpc19tb2RlX3N3aXRjaF9idXR0b24g KHVpbnQgZ3JvdXAsIHVpbnQgYnV0dG9uKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CistCQlwdWJsaWMgYm9vbCBrZXljb2RlX3RvX2V2ZGV2ICh1aW50IGhhcmR3YXJlX2tleWNvZGUs IHVpbnQgZXZkZXZfa2V5Y29kZSk7CisrCQlwdWJsaWMgdmlydHVhbCBib29sIGtleWNvZGVfdG9f ZXZkZXYgKHVpbnQgaGFyZHdhcmVfa2V5Y29kZSwgdWludCBldmRldl9rZXljb2RlKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9y IHNlcXVlbmNlX2dldF9ncmFiYmVkX2FjdG9yIChDbHV0dGVyLkV2ZW50U2VxdWVuY2Ugc2VxdWVu Y2UpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KK0BAIC02MzY5LDEyICs2MTY5LDEx IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHVuZ3JhYiAoKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB2b2lkIHVwZGF0ZV9mcm9tX2V2ZW50 IChDbHV0dGVyLkV2ZW50IGV2ZW50LCBib29sIHVwZGF0ZV9zdGFnZSk7CisrCQlbTm9XcmFwcGVy XQorKwkJcHVibGljIHZpcnR1YWwgdm9pZCB1cGRhdGVfZnJvbV90b29sIChDbHV0dGVyLklucHV0 RGV2aWNlVG9vbCB0b29sKTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNiIpXQorIAkJcHVibGljIENsdXR0ZXIuQmFja2VuZCBiYWNrZW5kIHsgb3duZWQg Z2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNiIpXQorLQkJcHVibGljIENsdXR0ZXIuRGV2aWNlTWFuYWdlciBkZXZpY2VfbWFu YWdlciB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisgCQlwdWJsaWMgQ2x1dHRlci5JbnB1dE1v ZGUgZGV2aWNlX21vZGUgeyBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJcHVibGljIHN0cmluZyBkZXZp Y2Vfbm9kZSB7IGdldDsgY29uc3RydWN0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIild CitAQCAtNjM5Nyw2ICs2MTk2LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHN0 cmluZyBuYW1lIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjIyIildCisgCQlwdWJsaWMgc3RyaW5nIHByb2R1Y3RfaWQgeyBnZXQ7IGNvbnN0cnVjdDsg fQorKwkJcHVibGljIENsdXR0ZXIuU2VhdCBzZWF0IHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjIyIildCisgCQlwdWJsaWMgc3RyaW5nIHZlbmRvcl9pZCB7IGdl dDsgY29uc3RydWN0OyB9CisgCX0KK0BAIC02NDM0LDcgKzYyMzQsNyBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlwdWJsaWMgdm9pZCBzZXRfY2FuX3Nob3dfcHJlZWRpdCAoYm9vbCBjYW5fc2hv d19wcmVlZGl0KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9jb250ZW50X2hpbnRzIChDbHV0dGVyLklu cHV0Q29udGVudEhpbnRGbGFncyBoaW50KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9jb250ZW50X3B1 cnBvc2UgKENsdXR0ZXIuSW5wdXRDb250ZW50UHVycG9zZSBwdXJwb3NlKTsKKy0JCXB1YmxpYyB2 b2lkIHNldF9jdXJzb3JfbG9jYXRpb24gKENsdXR0ZXIuUmVjdCByZWN0KTsKKysJCXB1YmxpYyB2 b2lkIHNldF9jdXJzb3JfbG9jYXRpb24gKEdyYXBoZW5lLlJlY3QgcmVjdCk7CisgCQlwdWJsaWMg dm9pZCBzZXRfaW5wdXRfcGFuZWxfc3RhdGUgKENsdXR0ZXIuSW5wdXRQYW5lbFN0YXRlIHN0YXRl KTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNldF9wcmVlZGl0X3Rl eHQgKHN0cmluZyBwcmVlZGl0LCB1aW50IGN1cnNvcik7CitAQCAtNjQ1Myw3ICs2MjUzLDcgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZv aWQgcmVzZXQgKCk7CisgCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzZXRf Y3Vyc29yX2xvY2F0aW9uIChDbHV0dGVyLlJlY3QgcmVjdCk7CisrCQlwdWJsaWMgdmlydHVhbCB2 b2lkIHNldF9jdXJzb3JfbG9jYXRpb24gKEdyYXBoZW5lLlJlY3QgcmVjdCk7CisgCQlwdWJsaWMg dm9pZCBzZXRfaW5wdXRfcGFuZWxfc3RhdGUgKENsdXR0ZXIuSW5wdXRQYW5lbFN0YXRlIHN0YXRl KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9wcmVlZGl0X3RleHQgKHN0cmluZz8gcHJlZWRpdCwgdWlu dCBjdXJzb3IpOworIAkJW05vV3JhcHBlcl0KK0BAIC02NDcwLDcgKzYyNzAsNyBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5JbnB1dENvbnRlbnRQdXJwb3NlIGNvbnRl bnRfcHVycG9zZSB7IGdldDsgc2V0OyB9CisgCQlbSGFzRW1pdHRlcl0KKyAJCXB1YmxpYyBzaWdu YWwgdm9pZCBjb21taXQgKHN0cmluZyB0ZXh0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJz b3JfbG9jYXRpb25fY2hhbmdlZCAoQ2x1dHRlci5SZWN0IG9iamVjdCk7CisrCQlwdWJsaWMgc2ln bmFsIHZvaWQgY3Vyc29yX2xvY2F0aW9uX2NoYW5nZWQgKEdyYXBoZW5lLlJlY3Qgb2JqZWN0KTsK KyAJCVtIYXNFbWl0dGVyXQorIAkJcHVibGljIHNpZ25hbCB2b2lkIGRlbGV0ZV9zdXJyb3VuZGlu ZyAodWludCBvZmZzZXQsIHVpbnQgbGVuKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBpbnB1dF9w YW5lbF9zdGF0ZSAoQ2x1dHRlci5JbnB1dFBhbmVsU3RhdGUgb2JqZWN0KTsKK0BAIC02NTQ2LDI3 ICs2MzQ2LDMxIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBLZXltYXAgKCk7CisgCQlwdWJsaWMg dmlydHVhbCBib29sIGdldF9jYXBzX2xvY2tfc3RhdGUgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBQ YW5nby5EaXJlY3Rpb24gZ2V0X2RpcmVjdGlvbiAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIGJvb2wg Z2V0X251bV9sb2NrX3N0YXRlICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHN0YXRlX2NoYW5n ZWQgKCk7CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2xheWVyX25vZGVfZ2V0X3R5cGUgKCkiKV0KKysJcHVi bGljIGNsYXNzIExheWVyTm9kZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsKKysJCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJQYWludE5vZGUqIild CisrCQlwdWJsaWMgTGF5ZXJOb2RlIChDb2dsLk1hdHJpeCBwcm9qZWN0aW9uLCBDYWlyby5SZWN0 YW5nbGUgdmlld3BvcnQsIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIHVpbnQ4IG9wYWNpdHkp OworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIs IHR5cGVfaWQgPSAiY2x1dHRlcl9sYXlvdXRfbWFuYWdlcl9nZXRfdHlwZSAoKSIpXQorIAlbVmVy c2lvbiAoc2luY2UgPSAiMS4yIildCisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBMYXlvdXRNYW5h Z2VyIDogR0xpYi5Jbml0aWFsbHlVbm93bmVkIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9m dW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBMYXlvdXRNYW5hZ2VyICgpOworIAkJcHVi bGljIHZpcnR1YWwgdm9pZCBhbGxvY2F0ZSAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBD bHV0dGVyLkFjdG9yQm94IGFsbG9jYXRpb24sIENsdXR0ZXIuQWxsb2NhdGlvbkZsYWdzIGZsYWdz KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIu QWxwaGEgYmVnaW5fYW5pbWF0aW9uICh1aW50IGR1cmF0aW9uLCB1bG9uZyBtb2RlKTsKKyAJCXB1 YmxpYyB2b2lkIGNoaWxkX2dldCAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVy LkFjdG9yIGFjdG9yLCAuLi4pOworIAkJcHVibGljIHZvaWQgY2hpbGRfZ2V0X3Byb3BlcnR5IChD bHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IsIHN0cmluZyBw cm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVlIHZhbHVlKTsKKyAJCXB1YmxpYyB2b2lkIGNoaWxkX3Nl dCAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yLCAuLi4p OworIAkJcHVibGljIHZvaWQgY2hpbGRfc2V0X3Byb3BlcnR5IChDbHV0dGVyLkNvbnRhaW5lciBj b250YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IsIHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGli LlZhbHVlIHZhbHVlKTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB1bm93bmVk IENsdXR0ZXIuTGF5b3V0TWV0YSBjcmVhdGVfY2hpbGRfbWV0YSAoQ2x1dHRlci5Db250YWluZXIg Y29udGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCisrCQlb Tm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBlbmRfYW5pbWF0aW9uICgpOworIAkJ cHVibGljIHVub3duZWQgR0xpYi5QYXJhbVNwZWMgZmluZF9jaGlsZF9wcm9wZXJ0eSAoc3RyaW5n IG5hbWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKysJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmly dHVhbCBkb3VibGUgZ2V0X2FuaW1hdGlvbl9wcm9ncmVzcyAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuTGF5b3V0TWV0YSBnZXRfY2hp bGRfbWV0YSAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9y KTsKK0BAIC02NjIzLDEyICs2NDI3LDEyIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXByb3Rl Y3RlZCBPZmZzY3JlZW5FZmZlY3QgKCk7CisgCQlwdWJsaWMgdmlydHVhbCBDb2dsLkhhbmRsZSBj cmVhdGVfdGV4dHVyZSAoZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xNCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3RhcmdldF9yZWN0IChvdXQgdW5v d25lZCBDbHV0dGVyLlJlY3QgcmVjdCk7CisrCQlwdWJsaWMgYm9vbCBnZXRfdGFyZ2V0X3JlY3Qg KG91dCB1bm93bmVkIEdyYXBoZW5lLlJlY3QgcmVjdCk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNCIsIHNpbmNlID0gIjEuOCIpXQorIAkJ cHVibGljIGJvb2wgZ2V0X3RhcmdldF9zaXplIChvdXQgZmxvYXQgd2lkdGgsIG91dCBmbG9hdCBo ZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB1bm93bmVk IENvZ2wuSGFuZGxlIGdldF90ZXh0dXJlICgpOworLQkJcHVibGljIHZpcnR1YWwgdm9pZCBwYWlu dF90YXJnZXQgKCk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBhaW50X3RhcmdldCAoQ2x1dHRl ci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BhZ2VfdHVy bl9lZmZlY3RfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorQEAg LTY2NDUsNiArNjQ0OSwxNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZG91Ymxl IHBlcmlvZCB7IGdldDsgc2V0OyB9CisgCQlwdWJsaWMgZmxvYXQgcmFkaXVzIHsgZ2V0OyBzZXQ7 IH0KKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCByZWZfZnVuY3Rpb24gPSAiY2x1dHRlcl9wYWludF9jb250ZXh0X3JlZiIsIHR5cGVfaWQgPSAi Y2x1dHRlcl9wYWludF9jb250ZXh0X2dldF90eXBlICgpIiwgdW5yZWZfZnVuY3Rpb24gPSAiY2x1 dHRlcl9wYWludF9jb250ZXh0X3VucmVmIildCisrCVtDb21wYWN0XQorKwlwdWJsaWMgY2xhc3Mg UGFpbnRDb250ZXh0IHsKKysJCXB1YmxpYyB2b2lkIGRlc3Ryb3kgKCk7CisrCQlwdWJsaWMgdW5v d25lZCBDb2dsLkZyYW1lYnVmZmVyIGdldF9mcmFtZWJ1ZmZlciAoKTsKKysJCXB1YmxpYyB2b2lk IHBvcF9mcmFtZWJ1ZmZlciAoKTsKKysJCXB1YmxpYyB2b2lkIHB1c2hfZnJhbWVidWZmZXIgKENv Z2wuRnJhbWVidWZmZXIgZnJhbWVidWZmZXIpOworKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5Q YWludENvbnRleHQgQHJlZiAoKTsKKysJCXB1YmxpYyB2b2lkIHVucmVmICgpOworKwl9CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAi Y2x1dHRlcl9wYWludF9ub2RlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBQYWludE5vZGUgeworQEAgLTY2NTQsNyAr NjQ2OCw4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIGFkZF9tdWx0aXRl eHR1cmVfcmVjdGFuZ2xlIChDbHV0dGVyLkFjdG9yQm94IHJlY3QsIGZsb2F0IHRleHRfY29vcmRz LCB1aW50IHRleHRfY29vcmRzX2xlbik7CisgCQlwdWJsaWMgdm9pZCBhZGRfcmVjdGFuZ2xlIChD bHV0dGVyLkFjdG9yQm94IHJlY3QpOworIAkJcHVibGljIHZvaWQgYWRkX3RleHR1cmVfcmVjdGFu Z2xlIChDbHV0dGVyLkFjdG9yQm94IHJlY3QsIGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4 XzIsIGZsb2F0IHlfMik7CistCQlwdWJsaWMgdm9pZCBwYWludCAoKTsKKysJCXB1YmxpYyB1bm93 bmVkIENvZ2wuRnJhbWVidWZmZXIgZ2V0X2ZyYW1lYnVmZmVyICgpOworKwkJcHVibGljIHZvaWQg cGFpbnQgKENsdXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworIAkJcHVibGljIHVu b3duZWQgQ2x1dHRlci5QYWludE5vZGUgQHJlZiAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9uYW1l IChzdHJpbmcgbmFtZSk7CisgCQlwdWJsaWMgdm9pZCB1bnJlZiAoKTsKK0BAIC02NjcyLDcgKzY0 ODcsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42Iild CisgCQlwdWJsaWMgZmxvYXQgZ2V0X2hlaWdodCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCBnZXRfb3JpZ2luICgpOworKwkJcHVibGlj IHZvaWQgZ2V0X29yaWdpbiAob3V0IHVub3duZWQgR3JhcGhlbmUuUG9pbnQzRCB2ZXJ0ZXgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIGZsb2F0IGdldF93aWR0aCAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KK0BAIC02NjgyLDcgKzY0OTcsNyBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJs aWMgdm9pZCBzZXRfaGVpZ2h0IChmbG9hdCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X29yaWdpbiAoQ2x1dHRlci5WZXJ0ZXggb3JpZ2lu KTsKKysJCXB1YmxpYyB2b2lkIHNldF9vcmlnaW4gKEdyYXBoZW5lLlBvaW50M0Qgb3JpZ2luKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF93aWR0aCAo ZmxvYXQgd2lkdGgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTY3NjksMjYg KzY1ODQsMTkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIENsdXR0ZXIuUGF0aCBw YXRoIHsgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBub2RlX3JlYWNoZWQgKENs dXR0ZXIuQWN0b3IgYWN0b3IsIHVpbnQgaW5kZXgpOworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHJlZl9mdW5jdGlvbiA9ICJjbHV0dGVyX3Bp Y2tfY29udGV4dF9yZWYiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGlja19jb250ZXh0X2dldF90eXBl ICgpIiwgdW5yZWZfZnVuY3Rpb24gPSAiY2x1dHRlcl9waWNrX2NvbnRleHRfdW5yZWYiKV0KKysJ W0NvbXBhY3RdCisrCXB1YmxpYyBjbGFzcyBQaWNrQ29udGV4dCB7CisrCQlwdWJsaWMgdm9pZCBk ZXN0cm95ICgpOworKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5QaWNrQ29udGV4dCBAcmVmICgp OworKwkJcHVibGljIHZvaWQgdW5yZWYgKCk7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BpcGVsaW5lX25v ZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGlj IGNsYXNzIFBpcGVsaW5lTm9kZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsKKyAJCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBQaXBlbGluZU5vZGUg KCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94 ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wb2ludF9nZXRfdHlwZSAoKSIpXQorLQlbQ29t cGFjdF0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JcHVibGljIGNsYXNzIFBvaW50 IHsKKy0JCXB1YmxpYyBmbG9hdCB4OworLQkJcHVibGljIGZsb2F0IHk7CistCQlwdWJsaWMgc3Rh dGljIENsdXR0ZXIuUG9pbnQgYWxsb2MgKCk7CistCQlwdWJsaWMgQ2x1dHRlci5Qb2ludCBjb3B5 ICgpOworLQkJcHVibGljIGZsb2F0IGRpc3RhbmNlIChDbHV0dGVyLlBvaW50IGIsIG91dCBmbG9h dCB4X2Rpc3RhbmNlLCBvdXQgZmxvYXQgeV9kaXN0YW5jZSk7CistCQlwdWJsaWMgYm9vbCBlcXVh bHMgKENsdXR0ZXIuUG9pbnQgYik7CistCQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJcHVibGlj IHVub3duZWQgQ2x1dHRlci5Qb2ludCBpbml0IChmbG9hdCB4LCBmbG9hdCB5KTsKKy0JCXB1Ymxp YyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLlBvaW50IHplcm8gKCk7CistCX0KKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVy X3Byb3BlcnR5X3RyYW5zaXRpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKyAJcHVibGljIGNsYXNzIFByb3BlcnR5VHJhbnNpdGlvbiA6IENsdXR0ZXIuVHJh bnNpdGlvbiwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKK0BAIC02Nzk4LDMzICs2NjA2LDYgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgc2V0X3Byb3BlcnR5X25hbWUgKHN0cmlu Zz8gcHJvcGVydHlfbmFtZSk7CisgCQlwdWJsaWMgc3RyaW5nIHByb3BlcnR5X25hbWUgeyBnZXQ7 IHNldDsgfQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJn X2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfcmVjdF9nZXRfdHlwZSAoKSIpXQorLQlb Q29tcGFjdF0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JcHVibGljIGNsYXNzIFJl Y3QgeworLQkJcHVibGljIHdlYWsgQ2x1dHRlci5Qb2ludCBvcmlnaW47CistCQlwdWJsaWMgd2Vh ayBDbHV0dGVyLlNpemUgc2l6ZTsKKy0JCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5SZWN0IGFsbG9j ICgpOworLQkJcHVibGljIHZvaWQgY2xhbXBfdG9fcGl4ZWwgKCk7CistCQlwdWJsaWMgYm9vbCBj b250YWluc19wb2ludCAoQ2x1dHRlci5Qb2ludCBwb2ludCk7CistCQlwdWJsaWMgYm9vbCBjb250 YWluc19yZWN0IChDbHV0dGVyLlJlY3QgYik7CistCQlwdWJsaWMgQ2x1dHRlci5SZWN0IGNvcHkg KCk7CistCQlwdWJsaWMgYm9vbCBlcXVhbHMgKENsdXR0ZXIuUmVjdCBiKTsKKy0JCXB1YmxpYyB2 b2lkIGZyZWUgKCk7CistCQlwdWJsaWMgdm9pZCBnZXRfY2VudGVyIChDbHV0dGVyLlBvaW50IGNl bnRlcik7CistCQlwdWJsaWMgZmxvYXQgZ2V0X2hlaWdodCAoKTsKKy0JCXB1YmxpYyBmbG9hdCBn ZXRfd2lkdGggKCk7CistCQlwdWJsaWMgZmxvYXQgZ2V0X3ggKCk7CistCQlwdWJsaWMgZmxvYXQg Z2V0X3kgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlJlY3QgaW5pdCAoZmxvYXQgeCwg ZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7CistCQlwdWJsaWMgdm9pZCBpbnNl dCAoZmxvYXQgZF94LCBmbG9hdCBkX3kpOworLQkJcHVibGljIGJvb2wgaW50ZXJzZWN0aW9uIChD bHV0dGVyLlJlY3QgYiwgQ2x1dHRlci5SZWN0PyByZXMpOworLQkJcHVibGljIENsdXR0ZXIuUmVj dCBub3JtYWxpemUgKCk7CistCQlwdWJsaWMgdm9pZCBvZmZzZXQgKGZsb2F0IGRfeCwgZmxvYXQg ZF95KTsKKy0JCXB1YmxpYyB2b2lkIHNjYWxlIChmbG9hdCBzX3gsIGZsb2F0IHNfeSk7CistCQlw dWJsaWMgdm9pZCB1bmlvbiAoQ2x1dHRlci5SZWN0IGIsIENsdXR0ZXIuUmVjdCByZXMpOworLQkJ cHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuUmVjdCB6ZXJvICgpOworLQl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9yZWN0YW5nbGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIp XQorIAlwdWJsaWMgY2xhc3MgUmVjdGFuZ2xlIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVu dG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlw dGFibGUgeworQEAgLTY5MDcsOCArNjY4OCw4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3Rv cioiKV0KKyAJCXB1YmxpYyBTY3JvbGxBY3RvciAoKTsKKyAJCXB1YmxpYyBDbHV0dGVyLlNjcm9s bE1vZGUgZ2V0X3Njcm9sbF9tb2RlICgpOworLQkJcHVibGljIHZvaWQgc2Nyb2xsX3RvX3BvaW50 IChDbHV0dGVyLlBvaW50IHBvaW50KTsKKy0JCXB1YmxpYyB2b2lkIHNjcm9sbF90b19yZWN0IChD bHV0dGVyLlJlY3QgcmVjdCk7CisrCQlwdWJsaWMgdm9pZCBzY3JvbGxfdG9fcG9pbnQgKEdyYXBo ZW5lLlBvaW50IHBvaW50KTsKKysJCXB1YmxpYyB2b2lkIHNjcm9sbF90b19yZWN0IChHcmFwaGVu ZS5SZWN0IHJlY3QpOworIAkJcHVibGljIHZvaWQgc2V0X3Njcm9sbF9tb2RlIChDbHV0dGVyLlNj cm9sbE1vZGUgbW9kZSk7CisgCQlwdWJsaWMgQ2x1dHRlci5TY3JvbGxNb2RlIHNjcm9sbF9tb2Rl IHsgZ2V0OyBzZXQ7IH0KKyAJfQorQEAgLTY5MzAsNiArNjcxMSw0NCBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlwdWJsaWMgZmxvYXQgeDsKKyAJCXB1YmxpYyBmbG9hdCB5OworIAl9CisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAi Y2x1dHRlcl9zZWF0X2dldF90eXBlICgpIildCisrCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBTZWF0 IDogR0xpYi5PYmplY3QgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorKwkJcHJvdGVjdGVkIFNlYXQgKCk7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZp cnR1YWwgdm9pZCBhcHBseV9rYmRfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5LYmRBMTF5U2V0dGlu Z3Mgc2V0dGluZ3MpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBiZWxsX25vdGlmeSAoKTsKKysJ CXB1YmxpYyB2aXJ0dWFsIHZvaWQgY29tcHJlc3NfbW90aW9uIChDbHV0dGVyLkV2ZW50IGV2ZW50 LCBDbHV0dGVyLkV2ZW50IHRvX2Rpc2NhcmQpOworKwkJW05vV3JhcHBlcl0KKysJCXB1YmxpYyB2 aXJ0dWFsIHZvaWQgY29weV9ldmVudF9kYXRhIChDbHV0dGVyLkV2ZW50IHNyYywgQ2x1dHRlci5F dmVudCBkZXN0KTsKKysJCXB1YmxpYyB2aXJ0dWFsIENsdXR0ZXIuVmlydHVhbElucHV0RGV2aWNl IGNyZWF0ZV92aXJ0dWFsX2RldmljZSAoQ2x1dHRlci5JbnB1dERldmljZVR5cGUgZGV2aWNlX3R5 cGUpOworKwkJcHVibGljIHZvaWQgZW5zdXJlX2ExMXlfc3RhdGUgKCk7CisrCQlbTm9XcmFwcGVy XQorKwkJcHVibGljIHZpcnR1YWwgdm9pZCBmcmVlX2V2ZW50X2RhdGEgKENsdXR0ZXIuRXZlbnQg ZXZlbnQpOworKwkJcHVibGljIHZvaWQgZ2V0X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVyLkti ZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CisrCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0 ZXIuSW5wdXREZXZpY2UgZ2V0X2tleWJvYXJkICgpOworKwkJcHVibGljIHZpcnR1YWwgdW5vd25l ZCBDbHV0dGVyLktleW1hcCBnZXRfa2V5bWFwICgpOworKwkJcHVibGljIHZpcnR1YWwgdW5vd25l ZCBDbHV0dGVyLklucHV0RGV2aWNlIGdldF9wb2ludGVyICgpOworKwkJcHVibGljIHZvaWQgZ2V0 X3BvaW50ZXJfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5Qb2ludGVyQTExeVNldHRpbmdzIHNldHRp bmdzKTsKKysJCXB1YmxpYyB2aXJ0dWFsIENsdXR0ZXIuVmlydHVhbERldmljZVR5cGUgZ2V0X3N1 cHBvcnRlZF92aXJ0dWFsX2RldmljZV90eXBlcyAoKTsKKysJCXB1YmxpYyBib29sIGdldF90b3Vj aF9tb2RlICgpOworKwkJcHVibGljIHZpcnR1YWwgR0xpYi5MaXN0PHdlYWsgQ2x1dHRlci5JbnB1 dERldmljZT4gbGlzdF9kZXZpY2VzICgpOworKwkJcHVibGljIHZvaWQgc2V0X2tiZF9hMTF5X3Nl dHRpbmdzIChDbHV0dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CisrCQlwdWJsaWMgdm9p ZCBzZXRfcG9pbnRlcl9hMTF5X2R3ZWxsX2NsaWNrX3R5cGUgKENsdXR0ZXIuUG9pbnRlckExMXlE d2VsbENsaWNrVHlwZSBjbGlja190eXBlKTsKKysJCXB1YmxpYyB2b2lkIHNldF9wb2ludGVyX2Ex MXlfc2V0dGluZ3MgKENsdXR0ZXIuUG9pbnRlckExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CisrCQlw dWJsaWMgdmlydHVhbCB2b2lkIHdhcnBfcG9pbnRlciAoaW50IHgsIGludCB5KTsKKysJCVtOb0Fj Y2Vzc29yTWV0aG9kXQorKwkJcHVibGljIENsdXR0ZXIuQmFja2VuZCBiYWNrZW5kIHsgb3duZWQg Z2V0OyBjb25zdHJ1Y3Q7IH0KKysJCXB1YmxpYyBib29sIHRvdWNoX21vZGUgeyBnZXQ7IH0KKysJ CXB1YmxpYyBzaWduYWwgdm9pZCBkZXZpY2VfYWRkZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2Jq ZWN0KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBkZXZpY2VfcmVtb3ZlZCAoQ2x1dHRlci5JbnB1 dERldmljZSBvYmplY3QpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGtiZF9hMTF5X2ZsYWdzX2No YW5nZWQgKHVpbnQgc2V0dGluZ3NfZmxhZ3MsIHVpbnQgY2hhbmdlZF9tYXNrKTsKKysJCXB1Ymxp YyBzaWduYWwgdm9pZCBrYmRfYTExeV9tb2RzX3N0YXRlX2NoYW5nZWQgKHVpbnQgbGF0Y2hlZF9t YXNrLCB1aW50IGxvY2tlZF9tYXNrKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBwdHJfYTExeV9k d2VsbF9jbGlja190eXBlX2NoYW5nZWQgKENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbENsaWNrVHlw ZSBjbGlja190eXBlKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBwdHJfYTExeV90aW1lb3V0X3N0 YXJ0ZWQgKENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlLCBDbHV0dGVyLlBvaW50ZXJBMTF5VGlt ZW91dFR5cGUgdGltZW91dF90eXBlLCB1aW50IGRlbGF5KTsKKysJCXB1YmxpYyBzaWduYWwgdm9p ZCBwdHJfYTExeV90aW1lb3V0X3N0b3BwZWQgKENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlLCBD bHV0dGVyLlBvaW50ZXJBMTF5VGltZW91dFR5cGUgdGltZW91dF90eXBlLCBib29sIGNsaWNrZWQp OworKwkJcHVibGljIHNpZ25hbCB2b2lkIHRvb2xfY2hhbmdlZCAoQ2x1dHRlci5JbnB1dERldmlj ZSBvYmplY3QsIENsdXR0ZXIuSW5wdXREZXZpY2VUb29sIHAwKTsKKysJfQorIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJf c2V0dGluZ3NfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAlw dWJsaWMgY2xhc3MgU2V0dGluZ3MgOiBHTGliLk9iamVjdCB7CitAQCAtNzAwMiwxOCArNjgyMSw2 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBTaGFkZXJNYXRyaXggKCk7CisgCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9 ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQg PSAiY2x1dHRlcl9zaXplX2dldF90eXBlICgpIildCistCVtDb21wYWN0XQorLQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMiIpXQorLQlwdWJsaWMgY2xhc3MgU2l6ZSB7CistCQlwdWJsaWMgZmxvYXQg aGVpZ2h0OworLQkJcHVibGljIGZsb2F0IHdpZHRoOworLQkJcHVibGljIHN0YXRpYyBDbHV0dGVy LlNpemUgYWxsb2MgKCk7CistCQlwdWJsaWMgQ2x1dHRlci5TaXplIGNvcHkgKCk7CistCQlwdWJs aWMgYm9vbCBlcXVhbHMgKENsdXR0ZXIuU2l6ZSBiKTsKKy0JCXB1YmxpYyB2b2lkIGZyZWUgKCk7 CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlNpemUgaW5pdCAoZmxvYXQgd2lkdGgsIGZsb2F0 IGhlaWdodCk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3NuYXBfY29uc3RyYWludF9nZXRfdHlwZSAoKSIp XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCXB1YmxpYyBjbGFzcyBTbmFwQ29uc3Ry YWludCA6IENsdXR0ZXIuQ29uc3RyYWludCB7CitAQCAtNzA1MiwxNCArNjg1OSwxMiBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBmcmVlemVfdXBkYXRlcyAoKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBib29sIGdldF9hY2NlcHRfZm9jdXMg KCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9hY3Rvcl9hdF9wb3MgKENs dXR0ZXIuUGlja01vZGUgcGlja19tb2RlLCBpbnQgeCwgaW50IHkpOworKwkJcHVibGljIHVub3du ZWQgQ2x1dHRlci5BY3RvciBnZXRfYWN0b3JfYXRfcG9zIChDbHV0dGVyLlBpY2tNb2RlIHBpY2tf bW9kZSwgZmxvYXQgeCwgZmxvYXQgeSk7CisgCQlwdWJsaWMgYm9vbCBnZXRfY2FwdHVyZV9maW5h bF9zaXplIChDYWlyby5SZWN0YW5nbGVJbnQgcmVjdCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBm bG9hdCBzY2FsZSk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIENsdXR0ZXIuQ29sb3IgZ2V0X2NvbG9yICgpOwor IAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi KV0KKyAJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLlN0YWdlIGdldF9kZWZhdWx0ICgp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkZvZyBnZXRfZm9nICgpOwor IAkJcHVibGljIGludDY0IGdldF9mcmFtZV9jb3VudGVyICgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjAuNiIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfa2V5X2ZvY3Vz ICgpOworQEAgLTcwNjcsMTkgKzY4NzIsMTQgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVi bGljIHZvaWQgZ2V0X21pbmltdW1fc2l6ZSAob3V0IHVpbnQgd2lkdGgsIG91dCB1aW50IGhlaWdo dCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgYm9vbCBnZXRfbW90 aW9uX2V2ZW50c19lbmFibGVkICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJ cHVibGljIGJvb2wgZ2V0X25vX2NsZWFyX2hpbnQgKCk7CisgCQlwdWJsaWMgQ2x1dHRlci5QZXJz cGVjdGl2ZSBnZXRfcGVyc3BlY3RpdmUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44Iild CistCQlwdWJsaWMgQ2Fpcm8uUmVjdGFuZ2xlSW50IGdldF9yZWRyYXdfY2xpcF9ib3VuZHMgKCk7 CisrCQlwdWJsaWMgQ2Fpcm8uUmVnaW9uIGdldF9yZWRyYXdfY2xpcCAoKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBib29sIGdldF90aHJvdHRsZV9tb3Rpb25fZXZl bnRzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAkJcHVibGljIHVub3duZWQg c3RyaW5nIGdldF90aXRsZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1 YmxpYyBib29sIGdldF91c2VfYWxwaGEgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGlj IGJvb2wgZ2V0X3VzZV9mb2cgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisgCQlw dWJsaWMgdm9pZCBoaWRlX2N1cnNvciAoKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44IildCitAQCAtNzA5NCwx NiArNjg5NCwxMiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBzZXRfYWNj ZXB0X2ZvY3VzIChib29sIGFjY2VwdF9mb2N1cyk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2Nv bG9yIChDbHV0dGVyLkNvbG9yIGNvbG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMg dm9pZCBzZXRfZm9nIChDbHV0dGVyLkZvZyBmb2cpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAu NiIpXQorIAkJcHVibGljIHZvaWQgc2V0X2tleV9mb2N1cyAoQ2x1dHRlci5BY3Rvcj8gYWN0b3Ip OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIHZvaWQgc2V0X21pbmlt dW1fc2l6ZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuOCIpXQorIAkJcHVibGljIHZvaWQgc2V0X21vdGlvbl9ldmVudHNfZW5hYmxlZCAoYm9vbCBl bmFibGVkKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9ub19jbGVhcl9oaW50IChib29sIG5vX2NsZWFyKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9wZXJz cGVjdGl2ZSAoQ2x1dHRlci5QZXJzcGVjdGl2ZSBwZXJzcGVjdGl2ZSk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfdGhyb3R0bGVfbW90aW9uX2V2ZW50 cyAoYm9vbCB0aHJvdHRsZSk7CitAQCAtNzExMSw4ICs2OTA3LDYgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJcHVibGljIHZvaWQgc2V0X3RpdGxlIChzdHJpbmcgdGl0bGUpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIHZvaWQgc2V0X3VzZV9hbHBoYSAoYm9vbCB1 c2VfYWxwaGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91c2VfZm9n IChib29sIGZvZyk7CisgCQlwdWJsaWMgdm9pZCBzaG93X2N1cnNvciAoKTsKKyAJCXB1YmxpYyB2 b2lkIHRoYXdfdXBkYXRlcyAoKTsKKyAJCXB1YmxpYyB2b2lkIHVwZGF0ZV9yZXNvdXJjZV9zY2Fs ZXMgKCk7CitAQCAtNzEyMiwyMCArNjkxNiwxNCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlw dWJsaWMgQ2x1dHRlci5Db2xvciBjb2xvciB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKyAJCXB1YmxpYyBib29sIGN1cnNvcl92aXNpYmxlIHsgZ2V0OyBzZXQ7IH0KKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2x1dHRlci5Gb2cgZm9nIHsgZ2V0OyBzZXQ7IH0KKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkFjdG9yIGtleV9m b2N1cyB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJs aWMgYm9vbCBub19jbGVhcl9oaW50IHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjgiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLlBlcnNwZWN0aXZlIHBlcnNwZWN0aXZlIHsgZ2V0 OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyBzdHJpbmcg dGl0bGUgeyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVi bGljIGJvb2wgdXNlX2FscGhhIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCistCQlw dWJsaWMgYm9vbCB1c2VfZm9nIHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIw LjYiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGFjdGl2YXRlICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMjAiKV0KK0BAIC03MTU4LDggKzY5NDYsNiBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgR0xpYi5T TGlzdDx3ZWFrIENsdXR0ZXIuU3RhZ2U+IGxpc3Rfc3RhZ2VzICgpOworIAkJcHVibGljIHVub3du ZWQgR0xpYi5TTGlzdDxDbHV0dGVyLlN0YWdlPiBwZWVrX3N0YWdlcyAoKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiLCBzaW5jZSA9ICIw LjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kZWZhdWx0X3N0YWdlIChDbHV0dGVyLlN0YWdlIHN0 YWdlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLlN0 YWdlIGRlZmF1bHRfc3RhZ2UgeyBnZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0K K0BAIC03MjA2LDE2ICs2OTkyLDEwIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS40IildCisgCQlwdWJsaWMgdWludCBnZXRfZHVyYXRpb24gKHN0cmluZz8gc291cmNlX3N0YXRl X25hbWUsIHN0cmluZz8gdGFyZ2V0X3N0YXRlX25hbWUpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0J CXB1YmxpYyBHTGliLkxpc3Q8d2VhayBDbHV0dGVyLlN0YXRlS2V5PiBnZXRfa2V5cyAoc3RyaW5n PyBzb3VyY2Vfc3RhdGVfbmFtZSwgc3RyaW5nPyB0YXJnZXRfc3RhdGVfbmFtZSwgR0xpYi5PYmpl Y3Q/IG9iamVjdCwgc3RyaW5nPyBwcm9wZXJ0eV9uYW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCisg CQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3N0YXRlICgpOworIAkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0K KyAJCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBzdHJpbmc+IGdldF9zdGF0ZXMgKCk7CisgCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5UaW1lbGluZSBnZXRfdGltZWxp bmUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX2tleSAoc3Ry aW5nPyBzb3VyY2Vfc3RhdGVfbmFtZSwgc3RyaW5nPyB0YXJnZXRfc3RhdGVfbmFtZSwgR0xpYi5P YmplY3Q/IG9iamVjdCwgc3RyaW5nPyBwcm9wZXJ0eV9uYW1lKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40Iild CisgCQlwdWJsaWMgdm9pZCBzZXRfZHVyYXRpb24gKHN0cmluZz8gc291cmNlX3N0YXRlX25hbWUs IHN0cmluZz8gdGFyZ2V0X3N0YXRlX25hbWUsIHVpbnQgZHVyYXRpb24pOworIAkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjQiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuU3RhdGUgc2V0X2tleSAoc3RyaW5nPyBz b3VyY2Vfc3RhdGVfbmFtZSwgc3RyaW5nIHRhcmdldF9zdGF0ZV9uYW1lLCBHTGliLk9iamVjdCBv YmplY3QsIHN0cmluZyBwcm9wZXJ0eV9uYW1lLCB1aW50IG1vZGUsIEdMaWIuVmFsdWUgdmFsdWUs IGRvdWJsZSBwcmVfZGVsYXksIGRvdWJsZSBwb3N0X2RlbGF5KTsKK0BAIC03MjM2LDI0ICs3MDE2 LDggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlbQ29tcGFjdF0KKyAJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNCIpXQorIAlwdWJsaWMgY2xhc3MgU3RhdGVLZXkgeworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0K Ky0JCXB1YmxpYyB1bG9uZyBnZXRfbW9kZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJs aWMgdW5vd25lZCBHTGliLk9iamVjdCBnZXRfb2JqZWN0ICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0K Ky0JCXB1YmxpYyBkb3VibGUgZ2V0X3Bvc3RfZGVsYXkgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQor LQkJcHVibGljIGRvdWJsZSBnZXRfcHJlX2RlbGF5ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0J CXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfcHJvcGVydHlfbmFtZSAoKTsKKyAJCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS40IildCisgCQlwdWJsaWMgR0xpYi5UeXBlIGdldF9wcm9wZXJ0eV90eXBlICgpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfc291cmNlX3N0YXRlX25h bWUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF90 YXJnZXRfc3RhdGVfbmFtZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCBn ZXRfdmFsdWUgKEdMaWIuVmFsdWUgdmFsdWUpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zd2lwZV9hY3Rp b25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorQEAgLTcyNjUs NTMgKzcwMjksNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xNCIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgc3dpcGUgKENsdXR0ZXIuQWN0 b3IgYWN0b3IsIENsdXR0ZXIuU3dpcGVEaXJlY3Rpb24gZGlyZWN0aW9uKTsKKyAJfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNs dXR0ZXJfdGFibGVfbGF5b3V0X2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMS40IildCistCXB1 YmxpYyBjbGFzcyBUYWJsZUxheW91dCA6IENsdXR0ZXIuTGF5b3V0TWFuYWdlciB7CistCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyTGF5b3V0 TWFuYWdlcioiKV0KKy0JCXB1YmxpYyBUYWJsZUxheW91dCAoKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40Iild CistCQlwdWJsaWMgdm9pZCBnZXRfYWxpZ25tZW50IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQg Q2x1dHRlci5UYWJsZUFsaWdubWVudCB4X2FsaWduLCBvdXQgQ2x1dHRlci5UYWJsZUFsaWdubWVu dCB5X2FsaWduKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2NvbHVtbl9jb3VudCAoKTsKKy0JCXB1Ymxp YyB1aW50IGdldF9jb2x1bW5fc3BhY2luZyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJs aWMgdWludCBnZXRfZWFzaW5nX2R1cmF0aW9uICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1 YmxpYyB1bG9uZyBnZXRfZWFzaW5nX21vZGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVi bGljIHZvaWQgZ2V0X2V4cGFuZCAoQ2x1dHRlci5BY3RvciBhY3Rvciwgb3V0IGJvb2wgeF9leHBh bmQsIG91dCBib29sIHlfZXhwYW5kKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9p ZCBnZXRfZmlsbCAoQ2x1dHRlci5BY3RvciBhY3Rvciwgb3V0IGJvb2wgeF9maWxsLCBvdXQgYm9v bCB5X2ZpbGwpOworLQkJcHVibGljIGludCBnZXRfcm93X2NvdW50ICgpOworLQkJcHVibGljIHVp bnQgZ2V0X3Jvd19zcGFjaW5nICgpOworLQkJcHVibGljIHZvaWQgZ2V0X3NwYW4gKENsdXR0ZXIu QWN0b3IgYWN0b3IsIG91dCBpbnQgY29sdW1uX3NwYW4sIG91dCBpbnQgcm93X3NwYW4pOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIGdldF91c2VfYW5pbWF0aW9ucyAoKTsKKy0J CXB1YmxpYyB2b2lkIHBhY2sgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGludCBjb2x1bW4sIGludCBy b3cpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbGlnbm1lbnQgKENs dXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuVGFibGVBbGlnbm1lbnQgeF9hbGlnbiwgQ2x1dHRl ci5UYWJsZUFsaWdubWVudCB5X2FsaWduKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9jb2x1bW5fc3Bh Y2luZyAodWludCBzcGFjaW5nKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBz ZXRfZWFzaW5nX2R1cmF0aW9uICh1aW50IG1zZWNzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgdm9pZCBzZXRfZWFzaW5nX21vZGUgKHVsb25nIG1vZGUpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9leHBhbmQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGJvb2wg eF9leHBhbmQsIGJvb2wgeV9leHBhbmQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9maWxsIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBib29sIHhfZmlsbCwgYm9vbCB5X2Zp bGwpOworLQkJcHVibGljIHZvaWQgc2V0X3Jvd19zcGFjaW5nICh1aW50IHNwYWNpbmcpOworLQkJ cHVibGljIHZvaWQgc2V0X3NwYW4gKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGludCBjb2x1bW5fc3Bh biwgaW50IHJvd19zcGFuKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRf dXNlX2FuaW1hdGlvbnMgKGJvb2wgYW5pbWF0ZSk7CistCQlwdWJsaWMgdWludCBjb2x1bW5fc3Bh Y2luZyB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVpbnQgZWFz aW5nX2R1cmF0aW9uIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMg dWxvbmcgZWFzaW5nX21vZGUgeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIHVpbnQgcm93X3NwYWNp bmcgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIHVzZV9h bmltYXRpb25zIHsgZ2V0OyBzZXQ7IH0KKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdGFwX2FjdGlvbl9nZXRf dHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorIAlwdWJsaWMgY2xhc3Mg VGFwQWN0aW9uIDogQ2x1dHRlci5HZXN0dXJlQWN0aW9uIHsKK0BAIC03MzM5LDcgKzcwNTYsNyBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBnZXRfY3Vyc29y X2NvbG9yICgpOworIAkJcHVibGljIGludCBnZXRfY3Vyc29yX3Bvc2l0aW9uICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9jdXJzb3JfcmVjdCAo b3V0IHVub3duZWQgQ2x1dHRlci5SZWN0IHJlY3QpOworKwkJcHVibGljIHZvaWQgZ2V0X2N1cnNv cl9yZWN0IChvdXQgdW5vd25lZCBHcmFwaGVuZS5SZWN0IHJlY3QpOworIAkJcHVibGljIHVpbnQg Z2V0X2N1cnNvcl9zaXplICgpOworIAkJcHVibGljIGJvb2wgZ2V0X2N1cnNvcl92aXNpYmxlICgp OworIAkJcHVibGljIGJvb2wgZ2V0X2VkaXRhYmxlICgpOworQEAgLTc0NTgsNyArNzE3NSw3IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCisgCQlw dWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBjdXJzb3JfY2hhbmdlZCAoKTsKKyAJCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBjdXJzb3JfZXZlbnQgKENsdXR0 ZXIuR2VvbWV0cnkgZ2VvbWV0cnkpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgY3Vy c29yX2V2ZW50IChHcmFwaGVuZS5SZWN0IHJlY3QpOworIAkJW0hhc0VtaXR0ZXJdCisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGVsZXRlX3RleHQg KGludCBzdGFydF9wb3MsIGludCBlbmRfcG9zKTsKK0BAIC03NDk3LDkyICs3MjE0LDkgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIFRleHROb2RlIChQYW5nby5MYXlvdXQ/IGxheW91 dCwgQ2x1dHRlci5Db2xvcj8gY29sb3IpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl90ZXh0dXJlX2dldF90 eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGNsYXNzIFRl eHR1cmUgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJs ZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIp XQorLQkJcHVibGljIFRleHR1cmUgKCk7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMC42IildCist CQlwdWJsaWMgVGV4dHVyZS5mcm9tX2FjdG9yIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3Rv cioiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgVGV4dHVyZS5mcm9tX2ZpbGUgKHN0 cmluZyBmaWxlbmFtZSkgdGhyb3dzIENsdXR0ZXIuVGV4dHVyZUVycm9yOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1Ymxp YyB2b2lkIGdldF9iYXNlX3NpemUgKG91dCBpbnQgd2lkdGgsIG91dCBpbnQgaGVpZ2h0KTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25lZCBDb2dsLkhhbmRsZSBnZXRfY29nbF9t YXRlcmlhbCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdW5vd25lZCBDb2dsLkhh bmRsZSBnZXRfY29nbF90ZXh0dXJlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBD bHV0dGVyLlRleHR1cmVRdWFsaXR5IGdldF9maWx0ZXJfcXVhbGl0eSAoKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgYm9vbCBnZXRfa2VlcF9hc3BlY3RfcmF0aW8gKCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2xvYWRfYXN5bmMgKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2xvYWRfZGF0YV9hc3luYyAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMC44IildCistCQlwdWJsaWMgaW50IGdldF9tYXhfdGlsZV93YXN0ZSAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS40IildCistCQlwdWJsaWMgYm9vbCBnZXRfcGlja193aXRoX2FscGhhICgpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9yZXBlYXQgKG91dCBib29sIHJlcGVhdF94 LCBvdXQgYm9vbCByZXBlYXRfeSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wg Z2V0X3N5bmNfc2l6ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgYm9vbCBzZXRf YXJlYV9mcm9tX3JnYl9kYXRhIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gdWludDhb XSBkYXRhLCBib29sIGhhc19hbHBoYSwgaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWln aHQsIGludCByb3dzdHJpZGUsIGludCBicHAsIENsdXR0ZXIuVGV4dHVyZUZsYWdzIGZsYWdzKSB0 aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdm9pZCBzZXRf Y29nbF9tYXRlcmlhbCAoQ29nbC5IYW5kbGUgY29nbF9tYXRlcmlhbCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAu OCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvZ2xfdGV4dHVyZSAoQ29nbC5IYW5kbGUgY29nbF90 ZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9maWx0ZXJfcXVhbGl0 eSAoQ2x1dHRlci5UZXh0dXJlUXVhbGl0eSBmaWx0ZXJfcXVhbGl0eSk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAu OCIpXQorLQkJcHVibGljIGJvb2wgc2V0X2Zyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lKSB0aHJv d3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgYm9vbCBzZXRfZnJv bV9yZ2JfZGF0YSAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHVpbnQ4W10gZGF0YSwg Ym9vbCBoYXNfYWxwaGEsIGludCB3aWR0aCwgaW50IGhlaWdodCwgaW50IHJvd3N0cmlkZSwgaW50 IGJwcCwgQ2x1dHRlci5UZXh0dXJlRmxhZ3MgZmxhZ3MpIHRocm93cyBHTGliLkVycm9yOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBz aW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBib29sIHNldF9mcm9tX3l1dl9kYXRhIChbQ0NvZGUg KGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gdWludDhbXSBkYXRhLCBpbnQgd2lkdGgsIGludCBoZWln aHQsIENsdXR0ZXIuVGV4dHVyZUZsYWdzIGZsYWdzKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfa2VlcF9hc3BlY3RfcmF0aW8gKGJvb2wg a2VlcF9hc3BlY3QpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sb2Fk X2FzeW5jIChib29sIGxvYWRfYXN5bmMpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9sb2FkX2RhdGFfYXN5bmMgKGJvb2wgbG9hZF9hc3luYyk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3BpY2tfd2l0aF9hbHBoYSAoYm9vbCBwaWNrX3dpdGhf YWxwaGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9yZXBlYXQgKGJv b2wgcmVwZWF0X3gsIGJvb2wgcmVwZWF0X3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9zeW5jX3NpemUgKGJvb2wgc3luY19zaXplKTsKKysJcHVibGljIGNsYXNzIFRl eHR1cmUgOiBDbHV0dGVyLkFjdG9yIHsKKyAJCXB1YmxpYyBDb2dsLk1hdGVyaWFsIGNvZ2xfbWF0 ZXJpYWwgeyBnZXQ7IHNldDsgfQorIAkJcHVibGljIENvZ2wuVGV4dHVyZSBjb2dsX3RleHR1cmUg eyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBkaXNh YmxlX3NsaWNpbmcgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIp XQorLQkJcHVibGljIHN0cmluZyBmaWxlbmFtZSB7IG93bmVkIGdldDsgc2V0OyB9CistCQlwdWJs aWMgQ2x1dHRlci5UZXh0dXJlUXVhbGl0eSBmaWx0ZXJfcXVhbGl0eSB7IGdldDsgc2V0IGNvbnN0 cnVjdDsgfQorLQkJcHVibGljIGJvb2wga2VlcF9hc3BlY3RfcmF0aW8geyBnZXQ7IHNldDsgfQor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGxvYWRfYXN5bmMgeyBzZXQ7IH0KKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBsb2FkX2RhdGFfYXN5bmMgeyBzZXQ7IH0K Ky0JCXB1YmxpYyBib29sIHBpY2tfd2l0aF9hbHBoYSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIHJlcGVhdF94IHsgZ2V0OyBzZXQ7IH0KKy0JCVtO b0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgcmVwZWF0X3kgeyBnZXQ7IHNldDsgfQor LQkJcHVibGljIGJvb2wgc3luY19zaXplIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0 aG9kXQorLQkJcHVibGljIGludCB0aWxlX3dhc3RlIHsgZ2V0OyB9CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgbG9hZF9maW5pc2hlZCAoR0xpYi5FcnJv ciBlcnJvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGl4YnVmX2NoYW5n ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBzaXplX2NoYW5nZSAoaW50 IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdGV4dHVyZV9ub2RlX2dldF90 eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNzYwOCw3ICs3MjQy LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQor IAkJcHVibGljIGJvb2wgZ2V0X2F1dG9fcmV2ZXJzZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEyIildCistCQlwdWJsaWMgYm9vbCBnZXRfY3ViaWNfYmV6aWVyX3Byb2dyZXNzIChDbHV0 dGVyLlBvaW50IGNfMSwgQ2x1dHRlci5Qb2ludCBjXzIpOworKwkJcHVibGljIGJvb2wgZ2V0X2N1 YmljX2Jlemllcl9wcm9ncmVzcyAoR3JhcGhlbmUuUG9pbnQgY18xLCBHcmFwaGVuZS5Qb2ludCBj XzIpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2N1 cnJlbnRfcmVwZWF0ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorQEAgLTc2NDUs NyArNzI3OSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjYiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9hdXRvX3JldmVyc2UgKGJvb2wgcmV2ZXJzZSk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2N1YmljX2Jl emllcl9wcm9ncmVzcyAoQ2x1dHRlci5Qb2ludCBjXzEsIENsdXR0ZXIuUG9pbnQgY18yKTsKKysJ CXB1YmxpYyB2b2lkIHNldF9jdWJpY19iZXppZXJfcHJvZ3Jlc3MgKEdyYXBoZW5lLlBvaW50IGNf MSwgR3JhcGhlbmUuUG9pbnQgY18yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJ CXB1YmxpYyB2b2lkIHNldF9kZWxheSAodWludCBtc2Vjcyk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMC42IildCitAQCAtNzc0NCw2ICs3Mzc4LDExIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CXB1YmxpYyBmbG9hdCB4OworIAkJcHVibGljIGZsb2F0IHk7CisgCX0KKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3Ry YW5zZm9ybV9ub2RlX2dldF90eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBUcmFuc2Zvcm1Ob2Rl IDogQ2x1dHRlci5QYWludE5vZGUgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlclBhaW50Tm9kZSoiKV0KKysJCXB1YmxpYyBUcmFuc2Zv cm1Ob2RlIChDb2dsLk1hdHJpeCBwcm9qZWN0aW9uKTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdHJhbnNp dGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJs aWMgYWJzdHJhY3QgY2xhc3MgVHJhbnNpdGlvbiA6IENsdXR0ZXIuVGltZWxpbmUsIENsdXR0ZXIu U2NyaXB0YWJsZSB7CitAQCAtNzc4Myw3ICs3NDIyLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVk IFZpcnR1YWxJbnB1dERldmljZSAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X2RldmljZV90eXBlICgp OworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGdldF9tYW5hZ2VyICgp OworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBub3RpZnlfYWJzb2x1dGVfbW90aW9uICh1aW50NjQg dGltZV91cywgZG91YmxlIHgsIGRvdWJsZSB5KTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90 aWZ5X2J1dHRvbiAodWludDY0IHRpbWVfdXMsIHVpbnQzMiBidXR0b24sIENsdXR0ZXIuQnV0dG9u U3RhdGUgYnV0dG9uX3N0YXRlKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90aWZ5X2Rpc2Ny ZXRlX3Njcm9sbCAodWludDY0IHRpbWVfdXMsIENsdXR0ZXIuU2Nyb2xsRGlyZWN0aW9uIGRpcmVj dGlvbiwgQ2x1dHRlci5TY3JvbGxTb3VyY2Ugc2Nyb2xsX3NvdXJjZSk7CitAQCAtNzc5NCwyNSAr NzQzMiwyNSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIG5v dGlmeV90b3VjaF9kb3duICh1aW50NjQgdGltZV91cywgaW50IHNsb3QsIGRvdWJsZSB4LCBkb3Vi bGUgeSk7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIG5vdGlmeV90b3VjaF9tb3Rpb24gKHVpbnQ2 NCB0aW1lX3VzLCBpbnQgc2xvdCwgZG91YmxlIHgsIGRvdWJsZSB5KTsKKyAJCXB1YmxpYyB2aXJ0 dWFsIHZvaWQgbm90aWZ5X3RvdWNoX3VwICh1aW50NjQgdGltZV91cywgaW50IHNsb3QpOworLQkJ W05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGRldmlj ZV9tYW5hZ2VyIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCXB1YmxpYyBDbHV0dGVyLklu cHV0RGV2aWNlVHlwZSBkZXZpY2VfdHlwZSB7IGdldDsgY29uc3RydWN0OyB9CisrCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKysJCXB1YmxpYyBDbHV0dGVyLlNlYXQgc2VhdCB7IG93bmVkIGdldDsgY29u c3RydWN0OyB9CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3pvb21fYWN0aW9uX2dldF90eXBlICgpIildCisg CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCXB1YmxpYyBjbGFzcyBab29tQWN0aW9uIDog Q2x1dHRlci5HZXN0dXJlQWN0aW9uIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3Rpb24qIildCisgCQlwdWJsaWMgWm9vbUFjdGlv biAoKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9mb2NhbF9wb2ludCAoQ2x1dHRlci5Qb2ludCBwb2lu dCk7CistCQlwdWJsaWMgdm9pZCBnZXRfdHJhbnNmb3JtZWRfZm9jYWxfcG9pbnQgKENsdXR0ZXIu UG9pbnQgcG9pbnQpOworKwkJcHVibGljIHZvaWQgZ2V0X2ZvY2FsX3BvaW50IChHcmFwaGVuZS5Q b2ludCBwb2ludCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfdHJhbnNmb3JtZWRfZm9jYWxfcG9pbnQg KEdyYXBoZW5lLlBvaW50IHBvaW50KTsKKyAJCXB1YmxpYyBDbHV0dGVyLlpvb21BeGlzIGdldF96 b29tX2F4aXMgKCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfem9vbV9heGlzIChDbHV0dGVyLlpvb21B eGlzIGF4aXMpOworIAkJcHVibGljIENsdXR0ZXIuWm9vbUF4aXMgem9vbV9heGlzIHsgZ2V0OyBz ZXQ7IH0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIHpvb20gKENsdXR0ZXIuQWN0b3Ig YWN0b3IsIENsdXR0ZXIuUG9pbnQgZm9jYWxfcG9pbnQsIGRvdWJsZSBmYWN0b3IpOworKwkJcHVi bGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgem9vbSAoQ2x1dHRlci5BY3RvciBhY3RvciwgR3JhcGhl bmUuUG9pbnQgZm9jYWxfcG9pbnQsIGRvdWJsZSBmYWN0b3IpOworIAl9CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfY25hbWUgPSAiQ2x1dHRl ckFuaW1hdGFibGVJbnRlcmZhY2UiLCB0eXBlX2lkID0gImNsdXR0ZXJfYW5pbWF0YWJsZV9nZXRf dHlwZSAoKSIpXQorIAlwdWJsaWMgaW50ZXJmYWNlIEFuaW1hdGFibGUgOiBHTGliLk9iamVjdCB7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44 Iiwgc2luY2UgPSAiMS4wIildCisrCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIGFic3RyYWN0IGJv b2wgYW5pbWF0ZV9wcm9wZXJ0eSAoQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0aW9uLCBzdHJpbmcg cHJvcGVydHlfbmFtZSwgR0xpYi5WYWx1ZSBpbml0aWFsX3ZhbHVlLCBHTGliLlZhbHVlIGZpbmFs X3ZhbHVlLCBkb3VibGUgcHJvZ3Jlc3MsIEdMaWIuVmFsdWUgdmFsdWUpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIGFic3RyYWN0IHVub3duZWQgR0xpYi5QYXJhbVNw ZWMgZmluZF9wcm9wZXJ0eSAoc3RyaW5nIHByb3BlcnR5X25hbWUpOworQEAgLTc4MzAsOCArNzQ2 OCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAodmZ1bmNfbmFtZSA9ICJhZGQi KV0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIiwgc2luY2UgPSAiMC40IildCisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBhZGRfYWN0b3Ig KENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2b2lk IGFkZF92YWxpc3QgKENsdXR0ZXIuQWN0b3IgZmlyc3RfYWN0b3IsIHZhX2xpc3QgdmFyX2FyZ3Mp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIHZvaWQgY2hpbGRfZ2V0 IChDbHV0dGVyLkFjdG9yIGFjdG9yLCAuLi4pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIp XQorQEAgLTc4NTMsMTAgKzc0ODksNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMg dW5vd25lZCBDbHV0dGVyLkFjdG9yIGZpbmRfY2hpbGRfYnlfbmFtZSAoc3RyaW5nIGNoaWxkX25h bWUpOworIAkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbnRhaW5lcl9jbGFzc19maW5kX2No aWxkX3Byb3BlcnR5IildCisgCQlwdWJsaWMgY2xhc3MgdW5vd25lZCBHTGliLlBhcmFtU3BlYyBm aW5kX2NoaWxkX3Byb3BlcnR5IChzdHJpbmcgcHJvcGVydHlfbmFtZSk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAu NCIpXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgQGZvcmVhY2ggKENsdXR0ZXIuQ2FsbGJhY2sg Y2FsbGJhY2spOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZm9y ZWFjaF93aXRoX2ludGVybmFscyAoQ2x1dHRlci5DYWxsYmFjayBjYWxsYmFjayk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIu Q2hpbGRNZXRhIGdldF9jaGlsZF9tZXRhIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKyAJCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2Ug PSAiMC40IildCitAQCAtNzg3NCw4ICs3NTA2LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ W0NDb2RlICh2ZnVuY19uYW1lID0gInJlbW92ZSIpXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKyAJCXB1 YmxpYyBhYnN0cmFjdCB2b2lkIHJlbW92ZV9hY3RvciAoQ2x1dHRlci5BY3RvciBhY3Rvcik7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIs IHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX3ZhbGlzdCAoQ2x1dHRlci5B Y3RvciBmaXJzdF9hY3RvciwgdmFfbGlzdCB2YXJfYXJncyk7CisgCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQor IAkJcHVibGljIGFic3RyYWN0IHZvaWQgc29ydF9kZXB0aF9vcmRlciAoKTsKKyAJCXB1YmxpYyB2 aXJ0dWFsIHNpZ25hbCB2b2lkIGFjdG9yX2FkZGVkIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKK0BA IC03ODkyLDcgKzc1MjIsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYWJzdHJh Y3Qgdm9pZCBpbnZhbGlkYXRlICgpOworIAkJcHVibGljIGFic3RyYWN0IHZvaWQgaW52YWxpZGF0 ZV9zaXplICgpOworIAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHBhaW50 X2NvbnRlbnQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuUGFpbnROb2RlIG5vZGUpOwor KwkJcHVibGljIGFic3RyYWN0IHZvaWQgcGFpbnRfY29udGVudCAoQ2x1dHRlci5BY3RvciBhY3Rv ciwgQ2x1dHRlci5QYWludE5vZGUgbm9kZSwgQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29u dGV4dCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZpcnR1YWwg c2lnbmFsIHZvaWQgYXR0YWNoZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KK0BAIC03OTA4LDEwICs3NTM4LDYgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIpXQorIAlwdWJsaWMgaW50ZXJmYWNlIFN0YWdlV2luZG93IDogR0xpYi5PYmplY3QgeworLQkJ W05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGFkZF9yZWRyYXdfY2xpcCAoQ2x1 dHRlci5HZW9tZXRyeSBzdGFnZV9yZWN0YW5nbGUpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1Ymxp YyBhYnN0cmFjdCB2b2lkIGdldF9nZW9tZXRyeSAoQ2x1dHRlci5HZW9tZXRyeSBnZW9tZXRyeSk7 CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIGFic3RyYWN0IGludCBnZXRfcGVuZGluZ19zd2Fw cyAoKTsKKyAJCVtOb1dyYXBwZXJdCitAQCAtNzkzOSwxNCArNzU2NSwxNiBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIGFic3RyYWN0IHZvaWQgdW5yZWFs aXplICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIHR5cGVfaWQgPSAiQ0xVVFRFUl9UWVBFX0FDVE9SX0JPWCIpXQorKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdf Ym94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJj bHV0dGVyX2FjdG9yX2JveF9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgc3RydWN0IEFjdG9yQm94 IHsKKyAJCXB1YmxpYyBmbG9hdCB4MTsKKyAJCXB1YmxpYyBmbG9hdCB5MTsKKyAJCXB1YmxpYyBm bG9hdCB4MjsKKyAJCXB1YmxpYyBmbG9hdCB5MjsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEy IildCisrCQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuQWN0b3JCb3g/IGFsbG9jICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgY2xhbXBfdG9fcGl4ZWwgKCk7 CisrCQlwdWJsaWMgc3RhdGljIHZvaWQgY2xhbXBfdG9fcGl4ZWwgKHJlZiBDbHV0dGVyLkFjdG9y Qm94IGJveCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgYm9vbCBj b250YWlucyAoZmxvYXQgeCwgZmxvYXQgeSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CitAQCAtNzk1NSw4ICs3NTgzLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJv b2wgZXF1YWwgKENsdXR0ZXIuQWN0b3JCb3ggYm94X2IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorIAkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1 dHRlcl9hY3Rvcl9ib3hfZnJvbV92ZXJ0aWNlcyIpXQorLQkJcHVibGljIEFjdG9yQm94LmZyb21f dmVydGljZXMgKENsdXR0ZXIuVmVydGV4W10gdmVydHMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorIAkJcHVibGljIGZsb2F0IGdldF9hcmVhICgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorQEAgLTgwMDIsNyArNzYyOCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CXB1YmxpYyB3ZWFrIENhaXJvLlN1cmZhY2UgaW1hZ2U7CisgCQlwdWJsaWMgQ2Fpcm8uUmVjdGFu Z2xlSW50IHJlY3Q7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIiwgdHlwZV9pZCA9ICJDTFVUVEVSX1RZUEVfQ09MT1IiKV0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJn X2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAi Q0xVVFRFUl9UWVBFX0NPTE9SIildCisgCXB1YmxpYyBzdHJ1Y3QgQ29sb3IgeworIAkJcHVibGlj IHVpbnQ4IHJlZDsKKyAJCXB1YmxpYyB1aW50OCBncmVlbjsKK0BAIC04MDQxLDI0ICs3NjY3LDYg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAkJ cHVibGljIHN0cmluZyB0b19zdHJpbmcgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2ZvZ19nZXRfdHlw ZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3RydWN0IEZvZyB7CistCQlwdWJs aWMgZmxvYXQgel9uZWFyOworLQkJcHVibGljIGZsb2F0IHpfZmFyOworLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRl cl9nZW9tZXRyeV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RydWN0IEdlb21ldHJ5IHsK Ky0JCXB1YmxpYyBpbnQgeDsKKy0JCXB1YmxpYyBpbnQgeTsKKy0JCXB1YmxpYyB1aW50IHdpZHRo OworLQkJcHVibGljIHVpbnQgaGVpZ2h0OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQor LQkJcHVibGljIGJvb2wgaW50ZXJzZWN0cyAoQ2x1dHRlci5HZW9tZXRyeSBnZW9tZXRyeTEpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENsdXR0ZXIuR2VvbWV0cnkg dW5pb24gKENsdXR0ZXIuR2VvbWV0cnkgZ2VvbWV0cnlfYik7CistCX0KKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSld CisgCXB1YmxpYyBzdHJ1Y3QgS2JkQTExeVNldHRpbmdzIHsKKyAJCXB1YmxpYyBDbHV0dGVyLktl eWJvYXJkQTExeUZsYWdzIGNvbnRyb2xzOworQEAgLTgwNjksNyArNzY3Nyw3IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBpbnQgbW91c2VrZXlzX21heF9zcGVlZDsKKyAJCXB1Ymxp YyBpbnQgbW91c2VrZXlzX2FjY2VsX3RpbWU7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2tub3RfZ2V0X3R5 cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94 ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9rbm90X2dldF90eXBlICgpIildCisgCVtWZXJz aW9uIChzaW5jZSA9ICIwLjIiKV0KKyAJcHVibGljIHN0cnVjdCBLbm90IHsKKyAJCXB1YmxpYyBp bnQgeDsKK0BAIC04MTIxLDcgKzc3MjksNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJs aWMgZG91YmxlIHZhbHVlOworIAkJcHVibGljIHVpbnQzMiBtb2RlOworIAl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRl cl9wYXRoX25vZGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVl X2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYXRoX25vZGVf Z2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3Ry dWN0IFBhdGhOb2RlIHsKKyAJCXB1YmxpYyBDbHV0dGVyLlBhdGhOb2RlVHlwZSB0eXBlOworQEAg LTgxMzEsNyArNzczOSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIGVx dWFsIChDbHV0dGVyLlBhdGhOb2RlIG5vZGVfYik7CisgCQlwdWJsaWMgdm9pZCBmcmVlICgpOwor IAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5 cGVfaWQgPSAiY2x1dHRlcl9wZXJzcGVjdGl2ZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdf Ym94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJj bHV0dGVyX3BlcnNwZWN0aXZlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIw LjQiKV0KKyAJcHVibGljIHN0cnVjdCBQZXJzcGVjdGl2ZSB7CisgCQlwdWJsaWMgZmxvYXQgZm92 eTsKK0BAIC04MTYyLDcgKzc3NzAsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMg d2VhayBDbHV0dGVyLkFjdG9yIHNvdXJjZTsKKyAJCXB1YmxpYyB3ZWFrIENsdXR0ZXIuSW5wdXRE ZXZpY2UgZGV2aWNlOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiQ0xVVFRFUl9UWVBFX1VOSVRTIildCisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAi Z19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0g IkNMVVRURVJfVFlQRV9VTklUUyIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1 YmxpYyBzdHJ1Y3QgVW5pdHMgeworIAkJcHVibGljIENsdXR0ZXIuVW5pdHM/IGNvcHkgKCk7CitA QCAtODE4NiwyMyArNzc5NCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBmbG9h dCB0b19waXhlbHMgKCk7CisgCQlwdWJsaWMgc3RyaW5nIHRvX3N0cmluZyAoKTsKKyAJfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0g ImNsdXR0ZXJfdmVydGV4X2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQi KV0KKy0JcHVibGljIHN0cnVjdCBWZXJ0ZXggeworLQkJcHVibGljIGZsb2F0IHg7CistCQlwdWJs aWMgZmxvYXQgeTsKKy0JCXB1YmxpYyBmbG9hdCB6OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTIiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5WZXJ0ZXg/IGFsbG9jICgpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIuVmVydGV4PyBjb3B5ICgp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wgZXF1YWwgKENs dXR0ZXIuVmVydGV4IHZlcnRleF9iKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0J CXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJ cHVibGljIHVub3duZWQgQ2x1dHRlci5WZXJ0ZXg/IGluaXQgKGZsb2F0IHgsIGZsb2F0IHksIGZs b2F0IHopOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9BQ1RPUl9BTElHTl8iLCB0eXBlX2lkID0gImNsdXR0 ZXJfYWN0b3JfYWxpZ25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKyAJcHVibGljIGVudW0gQWN0b3JBbGlnbiB7CitAQCAtODM0MCw2ICs3OTMxLDI3IEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJCVlfQVhJUywKKyAJCUJPVEgKKyAJfQorKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJf REVCVUdfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2RlYnVnX2ZsYWdfZ2V0X3R5cGUgKCkiKV0KKysJ W0ZsYWdzXQorKwlwdWJsaWMgZW51bSBEZWJ1Z0ZsYWcgeworKwkJTUlTQywKKysJCUFDVE9SLAor KwkJVEVYVFVSRSwKKysJCUVWRU5ULAorKwkJUEFJTlQsCisrCQlQQU5HTywKKysJCUJBQ0tFTkQs CisrCQlTQ0hFRFVMRVIsCisrCQlTQ1JJUFQsCisrCQlTSEFERVIsCisrCQlNVUxUSVNUQUdFLAor KwkJQU5JTUFUSU9OLAorKwkJTEFZT1VULAorKwkJUElDSywKKysJCUVWRU5UTE9PUCwKKysJCUNM SVBQSU5HLAorKwkJT09CX1RSQU5TRk9STVMKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfRFJBR18iLCB0eXBl X2lkID0gImNsdXR0ZXJfZHJhZ19heGlzX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjQiKV0KKyAJcHVibGljIGVudW0gRHJhZ0F4aXMgeworQEAgLTgzNDcsNiArNzk1OSwx OSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlYX0FYSVMsCisgCQlZX0FYSVMKKyAJfQorKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0g IkNMVVRURVJfREVCVUdfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2RyYXdfZGVidWdfZmxhZ19nZXRf dHlwZSAoKSIpXQorKwlbRmxhZ3NdCisrCXB1YmxpYyBlbnVtIERyYXdEZWJ1Z0ZsYWcgeworKwkJ RElTQUJMRV9TV0FQX0VWRU5UUywKKysJCURJU0FCTEVfQ0xJUFBFRF9SRURSQVdTLAorKwkJUkVE UkFXUywKKysJCVBBSU5UX1ZPTFVNRVMsCisrCQlESVNBQkxFX0NVTExJTkcsCisrCQlESVNBQkxF X09GRlNDUkVFTl9SRURJUkVDVCwKKysJCUNPTlRJTlVPVVNfUkVEUkFXLAorKwkJUEFJTlRfREVG T1JNX1RJTEVTLAorKwkJUEFJTlRfREFNQUdFX1JFR0lPTgorKwl9CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9FRkZF Q1RfUEFJTlRfQUNUT1JfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2VmZmVjdF9wYWludF9mbGFnc19n ZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCisgCXB1YmxpYyBlbnVtIEVmZmVjdFBhaW50RmxhZ3Mg eworQEAgLTgzOTgsOCArODAyMyw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJcHVibGljIGVu dW0gRmVhdHVyZUZsYWdzIHsKKyAJCVRFWFRVUkVfTlBPVCwKKyAJCVNXQVBfVEhST1RUTEUsCist CQlURVhUVVJFX1lVViwKKy0JCVRFWFRVUkVfUkVBRF9QSVhFTFMsCisgCQlTVEFHRV9TVEFUSUMs CisgCQlTVEFHRV9DVVJTT1IsCisgCQlTSEFERVJTX0dMU0wsCitAQCAtODY1Nyw2ICs4MjgwLDEx IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVJFTF9MSU5FX1RPLAorIAkJUkVMX0NVUlZFX1RP CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg Y3ByZWZpeCA9ICJDTFVUVEVSX0RFQlVHX05PUF8iLCB0eXBlX2lkID0gImNsdXR0ZXJfcGlja19k ZWJ1Z19mbGFnX2dldF90eXBlICgpIildCisrCVtGbGFnc10KKysJcHVibGljIGVudW0gUGlja0Rl YnVnRmxhZyB7CisrCQlQSUNLSU5HCisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX1BJQ0tfIiwgdHlwZV9pZCA9 ICJjbHV0dGVyX3BpY2tfbW9kZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisgCXB1YmxpYyBlbnVtIFBpY2tNb2RlIHsKK0BAIC04ODUxLDEzICs4NDc5LDYgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJTEVGVCwKKyAJCVJJR0hUCisgCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVS X1RBQkxFX0FMSUdOTUVOVF8iLCB0eXBlX2lkID0gImNsdXR0ZXJfdGFibGVfYWxpZ25tZW50X2dl dF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjIyIiwgc2luY2UgPSAiMS40IildCistCXB1YmxpYyBlbnVtIFRhYmxlQWxpZ25t ZW50IHsKKy0JCVNUQVJULAorLQkJQ0VOVEVSLAorLQkJRU5ECistCX0KKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX1RF WFRfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl90ZXh0X2RpcmVjdGlvbl9nZXRfdHlw ZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCXB1YmxpYyBlbnVtIFRleHRE aXJlY3Rpb24geworQEAgLTg5MzMsMjggKzg1NTQsMTkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJVkFMVUU7CisgCQlwdWJsaWMgc3RhdGljIEdMaWIuUXVhcmsgcXVhcmsgKCk7CisgCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9 ICJDTFVUVEVSX1RFWFRVUkVfRVJST1JfIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0K Ky0JcHVibGljIGVycm9yZG9tYWluIFRleHR1cmVFcnJvciB7CistCQlPVVRfT0ZfTUVNT1JZLAor LQkJTk9fWVVWLAorLQkJQkFEX0ZPUk1BVDsKKy0JCXB1YmxpYyBzdGF0aWMgR0xpYi5RdWFyayBx dWFyayAoKTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4yNCIp XQorIAlwdWJsaWMgZGVsZWdhdGUgQ2x1dHRlci5BY3RvciBBY3RvckNyZWF0ZUNoaWxkRnVuYyAo R0xpYi5PYmplY3QgaXRlbSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisgCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC4yIildCisgCXB1 YmxpYyBkZWxlZ2F0ZSBkb3VibGUgQWxwaGFGdW5jIChDbHV0dGVyLkFscGhhIGFscGhhKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaW5zdGFuY2Vf cG9zID0gMi45KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuNiIsIHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBCZWhh dmlvdXJGb3JlYWNoRnVuYyAoQ2x1dHRlci5CZWhhdmlvdXIgYmVoYXZpb3VyLCBDbHV0dGVyLkFj dG9yIGFjdG9yKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgaW5zdGFuY2VfcG9zID0gNC45KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor IAlwdWJsaWMgZGVsZWdhdGUgYm9vbCBCaW5kaW5nQWN0aW9uRnVuYyAoR0xpYi5PYmplY3QgZ29i amVjdCwgc3RyaW5nIGFjdGlvbl9uYW1lLCB1aW50IGtleV92YWwsIENsdXR0ZXIuTW9kaWZpZXJU eXBlIG1vZGlmaWVycyk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIENh bGxiYWNrIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaGFzX3RhcmdldCA9IGZhbHNlKV0KKysJcHVibGljIGRl bGVnYXRlIHZvaWQgRW1pdElucHV0RGV2aWNlRXZlbnQgKENsdXR0ZXIuRXZlbnQgZXZlbnQsIENs dXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTgiKV0KKyAJcHVibGljIGRlbGVnYXRlIGJvb2wgRXZlbnRGaWx0ZXJGdW5jIChD bHV0dGVyLkV2ZW50IGV2ZW50KTsKK0BAIC04OTg1LDkgKzg1OTcsNiBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJcHVibGljIGNvbnN0IGludCBQ UklPUklUWV9SRURSQVc7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQlwdWJsaWMgc3RhdGlj IENsdXR0ZXIuQWN0b3JCb3g/IGFjdG9yX2JveF9hbGxvYyAoKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBi YXNlX2luaXQgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorQEAgLTkwNTEsOSArODY2MCw2 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAlw dWJsaWMgc3RhdGljIHVub3duZWQgUGFuZ28uRm9udE1hcCBnZXRfZm9udF9tYXAgKCk7CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lv biAoc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9y IGdldF9rZXlib2FyZF9ncmFiICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAlwdWJsaWMg c3RhdGljIEdMaWIuT3B0aW9uR3JvdXAgZ2V0X29wdGlvbl9ncm91cCAoKTsKKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCitAQCAtOTA2MSwxNyArODY2 Nyw4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJcHVibGljIHN0YXRpYyBHTGliLk9wdGlvbkdy b3VwIGdldF9vcHRpb25fZ3JvdXBfd2l0aG91dF9pbml0ICgpOworIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAu NiIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfcG9pbnRlcl9n cmFiICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAlwdWJsaWMgc3RhdGljIHVub3duZWQg c3RyaW5nIGdldF9zY3JpcHRfaWQgKEdMaWIuT2JqZWN0IGdvYmplY3QpOworIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjAuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZ3JhYl9rZXlib2FyZCAoQ2x1dHRlci5B Y3RvciBhY3Rvcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCBncmFiX3BvaW50ZXIgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJcHVibGljIHN0YXRpYyBDbHV0dGVy LkluaXRFcnJvciBpbml0IChbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJhcmdjIiwgYXJy YXlfbGVuZ3RoX3BvcyA9IDAuNSldIHJlZiB1bm93bmVkIHN0cmluZ1tdPyBhcmd2KTsKKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtWZXJzaW9u IChzaW5jZSA9ICIwLjIiKV0KK0BAIC05MDg3LDI5ICs4Njg0LDYgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0K KyAJcHVibGljIHN0YXRpYyB2b2lkIHNldF9jdXN0b21fYmFja2VuZF9mdW5jICh2b2lkKiBmdW5j KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCist CVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB0ZXN0X2Fk ZF9kYXRhX2Z1bGwgKHN0cmluZyB0ZXN0X3BhdGgsIG93bmVkIEdMaWIuVGVzdERhdGFGdW5jIHRl c3RfZnVuYyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wg dGVzdF9jaGVja19hY3Rvcl9hdF9wb2ludCAoQ2x1dHRlci5BY3RvciBzdGFnZSwgQ2x1dHRlci5Q b2ludCBwb2ludCwgQ2x1dHRlci5BY3RvciBhY3Rvciwgb3V0IENsdXR0ZXIuQWN0b3I/IHJlc3Vs dCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQor LQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgdGVzdF9j aGVja19jb2xvcl9hdF9wb2ludCAoQ2x1dHRlci5BY3RvciBzdGFnZSwgQ2x1dHRlci5Qb2ludCBw b2ludCwgQ2x1dHRlci5Db2xvciBjb2xvciwgb3V0IENsdXR0ZXIuQ29sb3IgcmVzdWx0KTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJz aW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFj dG9yIHRlc3RfZ2V0X3N0YWdlICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHRlc3RfaW5pdCAoaW50IGFy Z2MsIHN0cmluZyBhcmd2KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0 aWMgaW50IHRlc3RfcnVuICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3Rh dGljIHZvaWQgdW5ncmFiX2tleWJvYXJkICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgdW5ncmFiX3BvaW50ZXIgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorIAlwdWJsaWMgc3RhdGljIHVpbnQgdW5pY29kZV90b19rZXlzeW0gKHVpbnQzMiB3Yyk7 CisgfQorZGlmZiAtLWdpdCB2YXBpL211dHRlci1jbHV0dGVyLTQuZGVwcyB2YXBpL211dHRlci1j bHV0dGVyLTcuZGVwcworc2ltaWxhcml0eSBpbmRleCA1NCUKK3JlbmFtZSBmcm9tIHZhcGkvbXV0 dGVyLWNsdXR0ZXItNC5kZXBzCityZW5hbWUgdG8gdmFwaS9tdXR0ZXItY2x1dHRlci03LmRlcHMK K2luZGV4IDk1MDk0MDI2Li42YmQxY2NmNyAxMDA2NDQKKy0tLSB2YXBpL211dHRlci1jbHV0dGVy LTQuZGVwcworKysrIHZhcGkvbXV0dGVyLWNsdXR0ZXItNy5kZXBzCitAQCAtMSw1ICsxLDQgQEAK KyBhdGsKKyBjYWlybworIGpzb24tZ2xpYi0xLjAKKy1tdXR0ZXItY29nbC00CistcGFuZ28KKytt dXR0ZXItY29nbC03CitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNsdXR0ZXItNC52YXBpIHZhcGkv bXV0dGVyLWNsdXR0ZXItNy52YXBpCitzaW1pbGFyaXR5IGluZGV4IDg2JQorcmVuYW1lIGZyb20g dmFwaS9tdXR0ZXItY2x1dHRlci00LnZhcGkKK3JlbmFtZSB0byB2YXBpL211dHRlci1jbHV0dGVy LTcudmFwaQoraW5kZXggYzhhMWQyM2IuLmFlYTZhMzFhIDEwMDY0NAorLS0tIHZhcGkvbXV0dGVy LWNsdXR0ZXItNC52YXBpCisrKysgdmFwaS9tdXR0ZXItY2x1dHRlci03LnZhcGkKK0BAIC0xLDYg KzEsNiBAQAorLS8qIG11dHRlci1jbHV0dGVyLTQudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwg ZG8gbm90IG1vZGlmeS4gKi8KKysvKiBtdXR0ZXItY2x1dHRlci03LnZhcGkgZ2VuZXJhdGVkIGJ5 IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnkuICovCisgCistW0NDb2RlIChjcHJlZml4ID0gIkNsdXR0 ZXIiLCBnaXJfbmFtZXNwYWNlID0gIkNsdXR0ZXIiLCBnaXJfdmVyc2lvbiA9ICI0IiwgbG93ZXJf Y2FzZV9jcHJlZml4ID0gImNsdXR0ZXJfIildCisrW0NDb2RlIChjcHJlZml4ID0gIkNsdXR0ZXIi LCBnaXJfbmFtZXNwYWNlID0gIkNsdXR0ZXIiLCBnaXJfdmVyc2lvbiA9ICI3IiwgbG93ZXJfY2Fz ZV9jcHJlZml4ID0gImNsdXR0ZXJfIildCisgbmFtZXNwYWNlIENsdXR0ZXIgeworIAluYW1lc3Bh Y2UgS2V5IHsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIGNuYW1lID0gIkNMVVRURVJfS0VZXzAiKV0KK0BAIC00NTc2LDIwICs0NTc2LDggQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1Ymxp YyBzdGF0aWMgdWludCBhZGRfcmVwYWludF9mdW5jX2Z1bGwgKENsdXR0ZXIuUmVwYWludEZsYWdz IGZsYWdzLCBvd25lZCBHTGliLlNvdXJjZUZ1bmMgZnVuYyk7CisgCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC40IildCistCQlw dWJsaWMgc3RhdGljIHZvaWQgZW50ZXIgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgc3Rh dGljIHZvaWQgaW5pdCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBs ZWF2ZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIpXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHN0YXRpYyB2b2lk IHJlbW92ZV9yZXBhaW50X2Z1bmMgKHVpbnQgaGFuZGxlX2lkKTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQkJW1ZlcnNpb24gKHNpbmNlID0g IjAuNCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHNldF9sb2NrX2Z1bmN0aW9ucyAoR0xpYi5D YWxsYmFjayBlbnRlcl9mbiwgR0xpYi5DYWxsYmFjayBsZWF2ZV9mbik7CisgCX0KKyAJbmFtZXNw YWNlIFZhbHVlIHsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIpXQorQEAgLTQ2MzYsNyArNDYyNCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1 YmxpYyBzdGF0aWMgdm9pZCB0YWtlX3BhaW50X25vZGUgKEdMaWIuVmFsdWUgdmFsdWUsIENsdXR0 ZXIuUGFpbnROb2RlPyBub2RlKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYWN0aW9uX2dldF90eXBlICgp IildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNz IEFjdGlvbiA6IENsdXR0ZXIuQWN0b3JNZXRhIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9m dW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBBY3Rpb24gKCk7CitAQCAtNDY2NCwzMyAr NDY1MSwyMyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorIAkJcHVibGljIHZvaWQgYWRkX3RyYW5zaXRpb24gKHN0cmluZyBuYW1lLCBDbHV0dGVy LlRyYW5zaXRpb24gdHJhbnNpdGlvbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCist CQlwdWJsaWMgdmlydHVhbCB2b2lkIGFsbG9jYXRlIChDbHV0dGVyLkFjdG9yQm94IGJveCwgQ2x1 dHRlci5BbGxvY2F0aW9uRmxhZ3MgZmxhZ3MpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBhbGxv Y2F0ZSAoQ2x1dHRlci5BY3RvckJveCBib3gpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIp XQorLQkJcHVibGljIHZvaWQgYWxsb2NhdGVfYWxpZ25fZmlsbCAoQ2x1dHRlci5BY3RvckJveCBi b3gsIGRvdWJsZSB4X2FsaWduLCBkb3VibGUgeV9hbGlnbiwgYm9vbCB4X2ZpbGwsIGJvb2wgeV9m aWxsLCBDbHV0dGVyLkFsbG9jYXRpb25GbGFncyBmbGFncyk7CisrCQlwdWJsaWMgdm9pZCBhbGxv Y2F0ZV9hbGlnbl9maWxsIChDbHV0dGVyLkFjdG9yQm94IGJveCwgZG91YmxlIHhfYWxpZ24sIGRv dWJsZSB5X2FsaWduLCBib29sIHhfZmlsbCwgYm9vbCB5X2ZpbGwpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgYWxsb2NhdGVfYXZhaWxhYmxlX3NpemUgKGZs b2F0IHgsIGZsb2F0IHksIGZsb2F0IGF2YWlsYWJsZV93aWR0aCwgZmxvYXQgYXZhaWxhYmxlX2hl aWdodCwgQ2x1dHRlci5BbGxvY2F0aW9uRmxhZ3MgZmxhZ3MpOworKwkJcHVibGljIHZvaWQgYWxs b2NhdGVfYXZhaWxhYmxlX3NpemUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGF2YWlsYWJsZV93 aWR0aCwgZmxvYXQgYXZhaWxhYmxlX2hlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44 IildCistCQlwdWJsaWMgdm9pZCBhbGxvY2F0ZV9wcmVmZXJyZWRfc2l6ZSAoQ2x1dHRlci5BbGxv Y2F0aW9uRmxhZ3MgZmxhZ3MpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVk IENsdXR0ZXIuQW5pbWF0aW9uIGFuaW1hdGUgKHVsb25nIG1vZGUsIHVpbnQgZHVyYXRpb24sIC4u Lik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRp b24gYW5pbWF0ZV93aXRoX2FscGhhIChDbHV0dGVyLkFscGhhIGFscGhhLCAuLi4pOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGFuaW1hdGVf d2l0aF9hbHBoYXYgKENsdXR0ZXIuQWxwaGEgYWxwaGEsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2Nu YW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAxLjUpXSBzdHJpbmdbXSBw cm9wZXJ0aWVzLCBbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3Byb3BlcnRpZXMiLCBh cnJheV9sZW5ndGhfcG9zID0gMS41KV0gR0xpYi5WYWx1ZVtdIHZhbHVlcyk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0ZV93aXRo X3RpbWVsaW5lICh1bG9uZyBtb2RlLCBDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lLCAuLi4pOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGFu aW1hdGVfd2l0aF90aW1lbGluZXYgKHVsb25nIG1vZGUsIENsdXR0ZXIuVGltZWxpbmUgdGltZWxp bmUsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xl bmd0aF9wb3MgPSAyLjUpXSBzdHJpbmdbXSBwcm9wZXJ0aWVzLCBbQ0NvZGUgKGFycmF5X2xlbmd0 aF9jbmFtZSA9ICJuX3Byb3BlcnRpZXMiLCBhcnJheV9sZW5ndGhfcG9zID0gMi41KV0gR0xpYi5W YWx1ZVtdIHZhbHVlcyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1 dHRlci5BbmltYXRpb24gYW5pbWF0ZXYgKHVsb25nIG1vZGUsIHVpbnQgZHVyYXRpb24sIFtDQ29k ZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3Mg PSAyLjUpXSBzdHJpbmdbXSBwcm9wZXJ0aWVzLCBbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9 ICJuX3Byb3BlcnRpZXMiLCBhcnJheV9sZW5ndGhfcG9zID0gMi41KV0gR0xpYi5WYWx1ZVtdIHZh bHVlcyk7CisrCQlwdWJsaWMgdm9pZCBhbGxvY2F0ZV9wcmVmZXJyZWRfc2l6ZSAoZmxvYXQgeCwg ZmxvYXQgeSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgQ2x1dHRl ci5WZXJ0ZXggYXBwbHlfcmVsYXRpdmVfdHJhbnNmb3JtX3RvX3BvaW50IChDbHV0dGVyLkFjdG9y PyBhbmNlc3RvciwgQ2x1dHRlci5WZXJ0ZXggcG9pbnQpOworKwkJcHVibGljIHZvaWQgYXBwbHlf cmVsYXRpdmVfdHJhbnNmb3JtX3RvX3BvaW50IChDbHV0dGVyLkFjdG9yPyBhbmNlc3RvciwgR3Jh cGhlbmUuUG9pbnQzRCBwb2ludCwgb3V0IHVub3duZWQgR3JhcGhlbmUuUG9pbnQzRCB2ZXJ0ZXgp OworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYXBwbHlfdHJhbnNmb3Jt IChyZWYgQ2x1dHRlci5NYXRyaXggbWF0cml4KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQi KV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCBhcHBseV90cmFuc2Zvcm1fdG9fcG9pbnQgKENs dXR0ZXIuVmVydGV4IHBvaW50KTsKKysJCXB1YmxpYyB2b2lkIGFwcGx5X3RyYW5zZm9ybV90b19w b2ludCAoR3JhcGhlbmUuUG9pbnQzRCBwb2ludCwgb3V0IHVub3duZWQgR3JhcGhlbmUuUG9pbnQz RCB2ZXJ0ZXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjQiKV0KKyAJCXB1YmxpYyB2b2lk IGJpbmRfbW9kZWwgKEdMaWIuTGlzdE1vZGVsPyBtb2RlbCwgb3duZWQgQ2x1dHRlci5BY3RvckNy ZWF0ZUNoaWxkRnVuYyBjcmVhdGVfY2hpbGRfZnVuYyk7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVi bGljIHZpcnR1YWwgZmxvYXQgY2FsY3VsYXRlX3Jlc291cmNlX3NjYWxlIChpbnQgcGhhc2UpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHZvaWQgY2xlYXJfYWN0aW9u cyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KK0BAIC00NzAwLDIwICs0Njc3LDE5 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJ CXB1YmxpYyBib29sIGNvbnRhaW5zIChDbHV0dGVyLkFjdG9yIGRlc2NlbmRhbnQpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgY29udGludWVfcGFpbnQgKCk7 CisrCQlwdWJsaWMgdm9pZCBjb250aW51ZV9wYWludCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFp bnRfY29udGV4dCk7CisrCQlwdWJsaWMgdm9pZCBjb250aW51ZV9waWNrIChDbHV0dGVyLlBpY2tD b250ZXh0IHBpY2tfY29udGV4dCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlw dWJsaWMgUGFuZ28uQ29udGV4dCBjcmVhdGVfcGFuZ29fY29udGV4dCAoKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBQYW5nby5MYXlvdXQgY3JlYXRlX3BhbmdvX2xh eW91dCAoc3RyaW5nPyB0ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlw dWJsaWMgdm9pZCBkZXN0cm95X2FsbF9jaGlsZHJlbiAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCist CQlwdWJsaWMgdm9pZCBkZXRhY2hfYW5pbWF0aW9uICgpOworIAkJW0NDb2RlIChjbmFtZSA9ICJj bHV0dGVyX2FjdG9yX2V2ZW50IildCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlw dWJsaWMgYm9vbCBlbWl0X2V2ZW50IChDbHV0dGVyLkV2ZW50IGV2ZW50LCBib29sIGNhcHR1cmUp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2Fic19h bGxvY2F0aW9uX3ZlcnRpY2VzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gQ2x1dHRl ci5WZXJ0ZXggdmVydHNbNF0pOworKwkJcHVibGljIHZvaWQgZ2V0X2Fic19hbGxvY2F0aW9uX3Zl cnRpY2VzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gR3JhcGhlbmUuUG9pbnQzRCB2 ZXJ0c1s0XSk7CisgCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIEF0ay5PYmplY3QgZ2V0X2FjY2Vz c2libGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdW5vd25l ZCBDbHV0dGVyLkFjdGlvbiBnZXRfYWN0aW9uIChzdHJpbmcgbmFtZSk7CitAQCAtNDcyMSwyMSAr NDY5Nyw4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBD bHV0dGVyLkFjdGlvbj4gZ2V0X2FjdGlvbnMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44 IildCisgCQlwdWJsaWMgQ2x1dHRlci5BY3RvckJveCBnZXRfYWxsb2NhdGlvbl9ib3ggKCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIENsdXR0ZXIuR2VvbWV0cnkgZ2V0X2FsbG9jYXRp b25fZ2VvbWV0cnkgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMg dm9pZCBnZXRfYWxsb2NhdGlvbl92ZXJ0aWNlcyAoQ2x1dHRlci5BY3Rvcj8gYW5jZXN0b3IsIFtD Q29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBDbHV0dGVyLlZlcnRleCB2ZXJ0c1s0XSk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FuY2hvcl9wb2ludCAob3V0IGZs b2F0IGFuY2hvcl94LCBvdXQgZmxvYXQgYW5jaG9yX3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0J CXB1YmxpYyBDbHV0dGVyLkdyYXZpdHkgZ2V0X2FuY2hvcl9wb2ludF9ncmF2aXR5ICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGdldF9h bmltYXRpb24gKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIENs dXR0ZXIuQ29sb3IgZ2V0X2JhY2tncm91bmRfY29sb3IgKCk7CistCQlbQ0NvZGUgKGNuYW1lID0g ImNsdXR0ZXJfZ2V0X2FjdG9yX2J5X2dpZCIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGlj IHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2J5X2dpZCAodWludDMyIGlkXyk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5B Y3RvciBnZXRfY2hpbGRfYXRfaW5kZXggKGludCBpbmRleF8pOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTIiKV0KK0BAIC00NzYyLDggKzQ3MjUsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlwdWJsaWMgdm9pZCBnZXRfY29udGVudF9zY2FsaW5nX2ZpbHRlcnMgKG91dCBDbHV0dGVyLlNj YWxpbmdGaWx0ZXIgbWluX2ZpbHRlciwgb3V0IENsdXR0ZXIuU2NhbGluZ0ZpbHRlciBtYWdfZmls dGVyKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdW5vd25lZCBD bHV0dGVyLlBhaW50Vm9sdW1lIGdldF9kZWZhdWx0X3BhaW50X3ZvbHVtZSAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCistCQlw dWJsaWMgZmxvYXQgZ2V0X2RlcHRoICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K KyAJCXB1YmxpYyB1aW50IGdldF9lYXNpbmdfZGVsYXkgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorQEAgLTQ3NzYsMTIgKzQ3MzcsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIENsdXR0ZXIuRWZmZWN0PiBnZXRfZWZmZWN0cyAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVy LkFjdG9yIGdldF9maXJzdF9jaGlsZCAoKTsKKysJCXB1YmxpYyBib29sIGdldF9maXhlZF9wb3Np dGlvbiAob3V0IGZsb2F0IHgsIG91dCBmbG9hdCB5KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIw LjgiKV0KKyAJCXB1YmxpYyBib29sIGdldF9maXhlZF9wb3NpdGlvbl9zZXQgKCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgQ2x1dHRlci5BY3RvckZsYWdzIGdldF9m bGFncyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjgiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB1aW50MzIgZ2V0X2dpZCAoKTsK KyAJCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9hY3Rvcl9oYXNfcG9pbnRlciIpXQorIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIGJvb2wgZ2V0X2hhc19wb2ludGVyICgp OworQEAgLTQ4MzksMTcgKzQ3OTksMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGlj IGJvb2wgZ2V0X3JlYWN0aXZlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJ cHVibGljIENsdXR0ZXIuUmVxdWVzdE1vZGUgZ2V0X3JlcXVlc3RfbW9kZSAoKTsKKy0JCXB1Ymxp YyBib29sIGdldF9yZXNvdXJjZV9zY2FsZSAob3V0IGZsb2F0IHJlc291cmNlX3NjYWxlKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMC44IildCistCQlwdWJsaWMgZG91YmxlIGdldF9yb3RhdGlvbiAoQ2x1dHRlci5S b3RhdGVBeGlzIGF4aXMsIG91dCBmbG9hdCB4LCBvdXQgZmxvYXQgeSwgb3V0IGZsb2F0IHopOwor KwkJcHVibGljIGZsb2F0IGdldF9yZXNvdXJjZV9zY2FsZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEyIildCisgCQlwdWJsaWMgZG91YmxlIGdldF9yb3RhdGlvbl9hbmdsZSAoQ2x1dHRl ci5Sb3RhdGVBeGlzIGF4aXMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAkJcHVi bGljIHZvaWQgZ2V0X3NjYWxlIChvdXQgZG91YmxlIHNjYWxlX3gsIG91dCBkb3VibGUgc2NhbGVf eSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3NjYWxlX2NlbnRlciAo b3V0IGZsb2F0IGNlbnRlcl94LCBvdXQgZmxvYXQgY2VudGVyX3kpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAi KV0KKy0JCXB1YmxpYyBDbHV0dGVyLkdyYXZpdHkgZ2V0X3NjYWxlX2dyYXZpdHkgKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGRvdWJsZSBnZXRfc2NhbGVfeiAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KK0BAIC00ODYwLDggKzQ4MTQsNyBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5UZXh0RGlyZWN0aW9uIGdldF90 ZXh0X2RpcmVjdGlvbiAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJs aWMgQ2x1dHRlci5NYXRyaXggZ2V0X3RyYW5zZm9ybSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgQ2x1dHRlci5NYXRyaXggZ2V0X3RyYW5zZm9ybWF0aW9uX21hdHJpeCAoKTsKKysJ CXB1YmxpYyB2b2lkIGdldF90cmFuc2Zvcm1lZF9leHRlbnRzIChvdXQgdW5vd25lZCBHcmFwaGVu ZS5SZWN0IHJlY3QpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIHVu b3duZWQgQ2x1dHRlci5QYWludFZvbHVtZSBnZXRfdHJhbnNmb3JtZWRfcGFpbnRfdm9sdW1lIChD bHV0dGVyLkFjdG9yIHJlbGF0aXZlX3RvX2FuY2VzdG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjgiKV0KK0BAIC00ODg1LDEwICs0ODM4LDkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ cHVibGljIGJvb2wgZ2V0X3lfZXhwYW5kICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIi KV0KKyAJCXB1YmxpYyBmbG9hdCBnZXRfel9wb3NpdGlvbiAoKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgQ2x1dHRlci5HcmF2aXR5IGdldF96X3JvdGF0aW9uX2dyYXZpdHkgKCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBncmFiX2tleV9mb2N1 cyAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgaGFzX2FjY2Vzc2libGUgKCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIGJvb2wgaGFzX2FjdGlvbnMgKCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCitAQCAtNDkwMCwxOCArNDg1MiwyMCBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBoYXNfZWZmZWN0cyAoKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBib29sIGhhc19rZXlfZm9jdXMgKCk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorIAkJcHVibGljIGJvb2wgaGFzX21hcHBlZF9j bG9uZXMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdmlydHVh bCBib29sIGhhc19vdmVybGFwcyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC4yIildCisrCQlbTm9XcmFwcGVy XQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBoaWRlX2FsbCAoKTsKKysJCXB1YmxpYyB2b2lkIGlu aGliaXRfY3VsbGluZyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJs aWMgdm9pZCBpbnNlcnRfY2hpbGRfYWJvdmUgKENsdXR0ZXIuQWN0b3IgY2hpbGQsIENsdXR0ZXIu QWN0b3I/IHNpYmxpbmcpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1Ymxp YyB2b2lkIGluc2VydF9jaGlsZF9hdF9pbmRleCAoQ2x1dHRlci5BY3RvciBjaGlsZCwgaW50IGlu ZGV4Xyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgaW5z ZXJ0X2NoaWxkX2JlbG93IChDbHV0dGVyLkFjdG9yIGNoaWxkLCBDbHV0dGVyLkFjdG9yPyBzaWJs aW5nKTsKKysJCXB1YmxpYyB2b2lkIGludmFsaWRhdGVfdHJhbnNmb3JtICgpOworKwkJcHVibGlj IGJvb2wgaXNfZWZmZWN0aXZlbHlfb25fc3RhZ2VfdmlldyAoQ2x1dHRlci5TdGFnZVZpZXcgdmll dyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgYm9vbCBpc19pbl9j bG9uZV9wYWludCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjI0IildCitAQCAtNDkyNCwz MyArNDg3OCwyMCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBpc19zY2Fs ZWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yNCIpXQorIAkJcHVibGljIGJvb2wgaXNf dmlzaWJsZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBsb3dlciAoQ2x1dHRlci5BY3Rvcj8gYWJv dmUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIGxvd2VyX2JvdHRvbSAoKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbWFwICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIG1vdmVfYW5jaG9yX3BvaW50IChmbG9hdCBhbmNob3Jf eCwgZmxvYXQgYW5jaG9yX3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIG1v dmVfYW5jaG9yX3BvaW50X2Zyb21fZ3Jhdml0eSAoQ2x1dHRlci5HcmF2aXR5IGdyYXZpdHkpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAkJcHVibGljIHZvaWQgbW92ZV9ieSAoZmxv YXQgZHgsIGZsb2F0IGR5KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJs aWMgYm9vbCBuZWVkc19leHBhbmQgKENsdXR0ZXIuT3JpZW50YXRpb24gb3JpZW50YXRpb24pOwor IAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGFpbnRfbm9kZSAoQ2x1dHRl ci5QYWludE5vZGUgcm9vdCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgcG9w X2ludGVybmFsICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHB1c2hfaW50 ZXJuYWwgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBHTGliLkxpc3Q8Q2x1dHRlci5TdGFnZVZpZXc+ IHBlZWtfc3RhZ2Vfdmlld3MgKCk7CisrCQlwdWJsaWMgdm9pZCBwaWNrX2JveCAoQ2x1dHRlci5Q aWNrQ29udGV4dCBwaWNrX2NvbnRleHQsIENsdXR0ZXIuQWN0b3JCb3ggYm94KTsKKysJCXB1Ymxp YyB1bm93bmVkIENsdXR0ZXIuRnJhbWVDbG9jayBwaWNrX2ZyYW1lX2Nsb2NrICgpOworIAkJcHVi bGljIHZvaWQgcXVldWVfcmVkcmF3ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K KyAJCXB1YmxpYyB2b2lkIHF1ZXVlX3JlZHJhd193aXRoX2NsaXAgKENhaXJvLlJlY3RhbmdsZUlu dD8gY2xpcCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcmFpc2UgKENsdXR0ZXIuQWN0b3I/IGJlbG93 KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIildCistCQlwdWJsaWMgdm9pZCByYWlzZV90b3AgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS40IildCisgCQlwdWJsaWMgdm9pZCByZW1vdmVfYWN0aW9uIChDbHV0dGVyLkFjdGlvbiBh Y3Rpb24pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorQEAgLTQ5NzIsOCArNDkxMyw2 IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV9lZmZlY3RfYnlf bmFtZSAoc3RyaW5nIG5hbWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1 YmxpYyB2b2lkIHJlbW92ZV90cmFuc2l0aW9uIChzdHJpbmcgbmFtZSk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAu MiIpXQorLQkJcHVibGljIHZvaWQgcmVwYXJlbnQgKENsdXR0ZXIuQWN0b3IgbmV3X3BhcmVudCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgcmVwbGFjZV9j aGlsZCAoQ2x1dHRlci5BY3RvciBvbGRfY2hpbGQsIENsdXR0ZXIuQWN0b3IgbmV3X2NoaWxkKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNDk4MSwxMSArNDkyMCw3IEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJs aWMgdm9pZCBzYXZlX2Vhc2luZ19zdGF0ZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxsb2NhdGlvbiAoQ2x1dHRlci5BY3RvckJveCBib3gs IENsdXR0ZXIuQWxsb2NhdGlvbkZsYWdzIGZsYWdzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42IildCistCQlw dWJsaWMgdm9pZCBzZXRfYW5jaG9yX3BvaW50IChmbG9hdCBhbmNob3JfeCwgZmxvYXQgYW5jaG9y X3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbmNob3JfcG9pbnRf ZnJvbV9ncmF2aXR5IChDbHV0dGVyLkdyYXZpdHkgZ3Jhdml0eSk7CisrCQlwdWJsaWMgdm9pZCBz ZXRfYWxsb2NhdGlvbiAoQ2x1dHRlci5BY3RvckJveCBib3gpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9iYWNrZ3JvdW5kX2NvbG9yIChDbHV0dGVy LkNvbG9yPyBjb2xvcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTUwMDgs OCArNDk0Myw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9jb250 ZW50X3JlcGVhdCAoQ2x1dHRlci5Db250ZW50UmVwZWF0IHJlcGVhdCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2NvbnRlbnRfc2NhbGluZ19maWx0 ZXJzIChDbHV0dGVyLlNjYWxpbmdGaWx0ZXIgbWluX2ZpbHRlciwgQ2x1dHRlci5TY2FsaW5nRmls dGVyIG1hZ19maWx0ZXIpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kZXB0aCAoZmxvYXQgZGVw dGgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9l YXNpbmdfZGVsYXkgKHVpbnQgbXNlY3MpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K K0BAIC01MDM5LDggKzQ5NzIsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9p ZCBzZXRfb2Zmc2NyZWVuX3JlZGlyZWN0IChDbHV0dGVyLk9mZnNjcmVlblJlZGlyZWN0IHJlZGly ZWN0KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9vcGFjaXR5ICh1aW50OCBvcGFjaXR5KTsKKyAJCXB1 YmxpYyB2b2lkIHNldF9vcGFjaXR5X292ZXJyaWRlIChpbnQgb3BhY2l0eSk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVi bGljIHZvaWQgc2V0X3BhcmVudCAoQ2x1dHRlci5BY3RvciBwYXJlbnQpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9waXZvdF9wb2ludCAoZmxvYXQg cGl2b3RfeCwgZmxvYXQgcGl2b3RfeSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQor QEAgLTUwNTAsMTYgKzQ5ODEsMTAgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZv aWQgc2V0X3JlYWN0aXZlIChib29sIHJlYWN0aXZlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjIiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9yZXF1ZXN0X21vZGUgKENsdXR0ZXIuUmVxdWVzdE1v ZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3JvdGF0aW9u IChDbHV0dGVyLlJvdGF0ZUF4aXMgYXhpcywgZG91YmxlIGFuZ2xlLCBmbG9hdCB4LCBmbG9hdCB5 LCBmbG9hdCB6KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdm9p ZCBzZXRfcm90YXRpb25fYW5nbGUgKENsdXR0ZXIuUm90YXRlQXhpcyBheGlzLCBkb3VibGUgYW5n bGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAkJcHVibGljIHZvaWQgc2V0X3Nj YWxlIChkb3VibGUgc2NhbGVfeCwgZG91YmxlIHNjYWxlX3kpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9zY2FsZV9mdWxsIChkb3VibGUgc2NhbGVfeCwgZG91YmxlIHNj YWxlX3ksIGZsb2F0IGNlbnRlcl94LCBmbG9hdCBjZW50ZXJfeSk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIHZvaWQgc2V0X3NjYWxlX3dpdGhfZ3Jhdml0eSAoZG91YmxlIHNjYWxlX3gs IGRvdWJsZSBzY2FsZV95LCBDbHV0dGVyLkdyYXZpdHkgZ3Jhdml0eSk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIHZvaWQgc2V0X3NjYWxlX3ogKGRvdWJsZSBzY2Fs ZV96KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9zaXplIChmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0 KTsKK0BAIC01MDg1LDE3ICs1MDEwLDEyIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1Ymxp YyB2b2lkIHNldF95X2V4cGFuZCAoYm9vbCBleHBhbmQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTIiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF96X3Bvc2l0aW9uIChmbG9hdCB6X3Bvc2l0aW9u KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfel9yb3RhdGlvbl9mcm9t X2dyYXZpdHkgKGRvdWJsZSBhbmdsZSwgQ2x1dHRlci5HcmF2aXR5IGdyYXZpdHkpOworIAkJcHVi bGljIGJvb2wgc2hvdWxkX3BpY2tfcGFpbnQgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuMiIpXQorLQkJcHVi bGljIHZpcnR1YWwgdm9pZCBzaG93X2FsbCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYi KV0KKyAJCXB1YmxpYyBib29sIHRyYW5zZm9ybV9zdGFnZV9wb2ludCAoZmxvYXQgeCwgZmxvYXQg eSwgb3V0IGZsb2F0IHhfb3V0LCBvdXQgZmxvYXQgeV9vdXQpOworKwkJcHVibGljIHZvaWQgdW5p bmhpYml0X2N1bGxpbmcgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJs aWMgdmlydHVhbCB2b2lkIHVubWFwICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0KKy0JCXB1YmxpYyB2 b2lkIHVucGFyZW50ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGlj IHZvaWQgdW5zZXRfZmxhZ3MgKENsdXR0ZXIuQWN0b3JGbGFncyBmbGFncyk7CisgCQlbTm9BY2Nl c3Nvck1ldGhvZF0KK0BAIC01MTAzLDE2ICs1MDIzLDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHVibGljIENsdXR0ZXIuQWN0aW9uIGFjdGlvbnMgeyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29y TWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIENsdXR0ZXIu QWN0b3JCb3ggYWxsb2NhdGlvbiB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIuR3Jhdml0eSBhbmNob3JfZ3Jhdml0eSB7 IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCist CQlwdWJsaWMgZmxvYXQgYW5jaG9yX3ggeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIGZsb2F0IGFuY2hvcl95IHsgZ2V0OyBz ZXQ7IH0KKysJCXB1YmxpYyBDbHV0dGVyLkFjdG9yQm94IGFsbG9jYXRpb24geyBvd25lZCBnZXQ7 IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgQ2x1dHRlci5Db2xv ciBiYWNrZ3JvdW5kX2NvbG9yIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQor QEAgLTUxMjIsMTEgKzUwMzMsOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGJvb2wgY2hpbGRfdHJhbnNmb3JtX3NldCB7IGdl dDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIENsdXR0ZXIuR2VvbWV0 cnkgY2xpcCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5SZWN0IGNsaXBfcmVjdCB7IG93 bmVkIGdldDsgc2V0OyB9CisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBjbGlwX3JlY3QgeyBvd25l ZCBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIGJv b2wgY2xpcF90b19hbGxvY2F0aW9uIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9k XQorQEAgLTUxNDAsOCArNTA0OCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBD bHV0dGVyLkNvbnRlbnRHcmF2aXR5IGNvbnRlbnRfZ3Jhdml0eSB7IGdldDsgc2V0OyB9CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIENsdXR0ZXIuQ29udGVudFJlcGVh dCBjb250ZW50X3JlcGVhdCB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVi bGljIGZsb2F0IGRlcHRoIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIENsdXR0ZXIuRWZmZWN0IGVmZmVj dCB7IHNldDsgfQorQEAgLTUyMTEsMTIgKzUxMTcsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHVibGljIHVpbnQgb3BhY2l0eSB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5Qb2lu dCBwaXZvdF9wb2ludCB7IG93bmVkIGdldDsgc2V0OyB9CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9p bnQgcGl2b3RfcG9pbnQgeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTIiKV0KKyAJCXB1YmxpYyBmbG9hdCBwaXZvdF9wb2ludF96IHsgZ2V0OyBzZXQ7IH0KKyAJ CVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1 YmxpYyBDbHV0dGVyLlBvaW50IHBvc2l0aW9uIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1Ymxp YyBHcmFwaGVuZS5Qb2ludCBwb3NpdGlvbiB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgYm9vbCByZWFjdGl2ZSB7IGdldDsgc2V0OyB9 CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KK0BAIC01MjI1LDggKzUxMzEsNiBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgQ2x1dHRl ci5SZXF1ZXN0TW9kZSByZXF1ZXN0X21vZGUgeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JN ZXRob2RdCistCQlwdWJsaWMgZmxvYXQgcmVzb3VyY2Vfc2NhbGUgeyBnZXQ7IH0KKy0JCVtOb0Fj Y2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIGRv dWJsZSByb3RhdGlvbl9hbmdsZV94IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9k XQorQEAgLTUyMzYsMjcgKzUxNDAsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgZG91YmxlIHJvdGF0aW9uX2FuZ2xlX3ogeyBn ZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJ cHVibGljIENsdXR0ZXIuVmVydGV4IHJvdGF0aW9uX2NlbnRlcl94IHsgZ2V0OyBzZXQ7IH0KKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVy LlZlcnRleCByb3RhdGlvbl9jZW50ZXJfeSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgQ2x1dHRlci5WZXJ0ZXggcm90YXRp b25fY2VudGVyX3ogeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIuR3Jhdml0eSByb3RhdGlvbl9jZW50ZXJfel9n cmF2aXR5IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjAiKV0KKy0JCXB1YmxpYyBmbG9hdCBzY2FsZV9jZW50ZXJfeCB7IGdldDsgc2V0OyB9CistCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgZmxvYXQgc2Nh bGVfY2VudGVyX3kgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIuR3Jhdml0eSBzY2FsZV9ncmF2aXR5IHsgZ2V0 OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAu NiIpXQorIAkJcHVibGljIGRvdWJsZSBzY2FsZV94IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vz c29yTWV0aG9kXQorQEAgLTUyNjksNyArNTE1Miw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CXB1YmxpYyBib29sIHNob3dfb25fc2V0X3BhcmVudCB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgQ2x1 dHRlci5TaXplIHNpemUgeyBvd25lZCBnZXQ7IHNldDsgfQorKwkJcHVibGljIEdyYXBoZW5lLlNp emUgc2l6ZSB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisgCQlwdWJsaWMgQ2x1dHRlci5UZXh0RGlyZWN0aW9uIHRleHRfZGlyZWN0aW9uIHsgZ2V0OyBz ZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAgLTUyOTksOCArNTE4Miw2IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIHlfZXhwYW5kIHsgZ2V0OyBzZXQ7IH0KKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgZmxvYXQgel9wb3NpdGlvbiB7 IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc2ln bmFsIHZvaWQgYWxsb2NhdGlvbl9jaGFuZ2VkIChDbHV0dGVyLkFjdG9yQm94IGJveCwgQ2x1dHRl ci5BbGxvY2F0aW9uRmxhZ3MgZmxhZ3MpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQor IAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgYnV0dG9uX3ByZXNzX2V2ZW50IChDbHV0dGVy LkJ1dHRvbkV2ZW50IGV2ZW50KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KK0BAIC01 MzMxLDIyICs1MjEyLDI1IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2aXJ0dWFs IHNpZ25hbCBib29sIG1vdGlvbl9ldmVudCAoQ2x1dHRlci5Nb3Rpb25FdmVudCBldmVudCk7Cisg CQlbSGFzRW1pdHRlcl0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdmlydHVhbCBzaWdu YWwgdm9pZCBwYWludCAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHBhaW50IChD bHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjIiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHBhcmVudF9zZXQgKENsdXR0 ZXIuQWN0b3I/IG9sZF9wYXJlbnQpOworKwkJW0hhc0VtaXR0ZXJdCisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBwaWNrIChDbHV0dGVy LkNvbG9yIGNvbG9yKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHBpY2sgKENsdXR0 ZXIuUGlja0NvbnRleHQgcGlja19jb250ZXh0KTsKKyAJCVtIYXNFbWl0dGVyXQorIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcXVldWVf cmVsYXlvdXQgKCk7CisgCQlbSGFzRW1pdHRlcl0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMC44IildCisgCQlwdWJs aWMgdmlydHVhbCBzaWduYWwgdm9pZCByZWFsaXplICgpOworKwkJcHVibGljIHZpcnR1YWwgc2ln bmFsIHZvaWQgcmVzb3VyY2Vfc2NhbGVfY2hhbmdlZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjYiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIHNjcm9sbF9ldmVudCAoQ2x1 dHRlci5TY3JvbGxFdmVudCBldmVudCk7CisgCQlbSGFzRW1pdHRlcl0KKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIwLjIiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHNob3cgKCk7Cisr CQlwdWJsaWMgc2lnbmFsIHZvaWQgc3RhZ2Vfdmlld3NfY2hhbmdlZCAoKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCB0b3VjaF9l dmVudCAoQ2x1dHRlci5FdmVudCBldmVudCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIp XQorQEAgLTUzNTgsMjEgKzUyNDIsMzMgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGlj IHZpcnR1YWwgc2lnbmFsIHZvaWQgdW5yZWFsaXplICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hY3Rv cl9tZXRhX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVi bGljIGFic3RyYWN0IGNsYXNzIEFjdG9yTWV0YSA6IEdMaWIuSW5pdGlhbGx5VW5vd25lZCB7Cisg CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQg QWN0b3JNZXRhICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHVu b3duZWQgQ2x1dHRlci5BY3RvciBnZXRfYWN0b3IgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS40IildCisgCQlwdWJsaWMgYm9vbCBnZXRfZW5hYmxlZCAoKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfbmFtZSAoKTsKKyAJCVtO b1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNldF9hY3RvciAoQ2x1dHRlci5BY3Rv cj8gYWN0b3IpOworLQkJcHVibGljIHZvaWQgc2V0X2VuYWJsZWQgKGJvb2wgaXNfZW5hYmxlZCk7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNl dF9lbmFibGVkIChib29sIGlzX2VuYWJsZWQpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIp XQorIAkJcHVibGljIHZvaWQgc2V0X25hbWUgKHN0cmluZyBuYW1lKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkFjdG9yIGFjdG9yIHsgZ2V0OyB9Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgYm9vbCBlbmFibGVkIHsgZ2V0 OyBzZXQ7IH0KKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBzdHJpbmcg bmFtZSB7IGdldDsgc2V0OyB9CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FjdG9yX25vZGVfZ2V0X3R5cGUg KCkiKV0KKysJcHVibGljIGNsYXNzIEFjdG9yTm9kZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsKKysJ CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJQ YWludE5vZGUqIildCisrCQlwdWJsaWMgQWN0b3JOb2RlIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsK KysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0 eXBlX2lkID0gImNsdXR0ZXJfYWxpZ25fY29uc3RyYWludF9nZXRfdHlwZSAoKSIpXQorIAlbVmVy c2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBjbGFzcyBBbGlnbkNvbnN0cmFpbnQgOiBD bHV0dGVyLkNvbnN0cmFpbnQgeworQEAgLTUzODAsODEgKzUyNzYsMTggQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJcHVibGljIEFsaWduQ29uc3RyYWludCAoQ2x1dHRlci5BY3Rvcj8gc291cmNl LCBDbHV0dGVyLkFsaWduQXhpcyBheGlzLCBmbG9hdCBmYWN0b3IpOworIAkJcHVibGljIENsdXR0 ZXIuQWxpZ25BeGlzIGdldF9hbGlnbl9heGlzICgpOworIAkJcHVibGljIGZsb2F0IGdldF9mYWN0 b3IgKCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfcGl2b3RfcG9pbnQgKG91dCB1bm93bmVkIEdyYXBo ZW5lLlBvaW50IHBpdm90X3BvaW50KTsKKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3Ig Z2V0X3NvdXJjZSAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9hbGlnbl9heGlzIChDbHV0dGVyLkFs aWduQXhpcyBheGlzKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9mYWN0b3IgKGZsb2F0IGZhY3Rvcik7 CisrCQlwdWJsaWMgdm9pZCBzZXRfcGl2b3RfcG9pbnQgKEdyYXBoZW5lLlBvaW50IHBpdm90X3Bv aW50KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9zb3VyY2UgKENsdXR0ZXIuQWN0b3I/IHNvdXJjZSk7 CisgCQlwdWJsaWMgQ2x1dHRlci5BbGlnbkF4aXMgYWxpZ25fYXhpcyB7IGdldDsgc2V0IGNvbnN0 cnVjdDsgfQorIAkJcHVibGljIGZsb2F0IGZhY3RvciB7IGdldDsgc2V0IGNvbnN0cnVjdDsgfQor KwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQgcGl2b3RfcG9p bnQgeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJcHVibGljIENsdXR0ZXIuQWN0b3Igc291cmNlIHsg Z2V0OyBzZXQgY29uc3RydWN0OyB9CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FscGhhX2dldF90eXBlICgp IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBjbGFzcyBBbHBoYSA6IEdMaWIuSW5pdGlh bGx5VW5vd25lZCwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXB1YmxpYyBBbHBoYSAoKTsKKy0JCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKy0JCXB1YmxpYyBBbHBoYS5mdWxsIChDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lLCB1bG9u ZyBtb2RlKTsKKy0JCXB1YmxpYyBkb3VibGUgZ2V0X2FscGhhICgpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVsb25nIGdldF9tb2RlICgpOworLQkJcHVibGljIHVu b3duZWQgQ2x1dHRlci5UaW1lbGluZSBnZXRfdGltZWxpbmUgKCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIHVsb25nIHJlZ2lzdGVyX2Nsb3N1cmUgKEdM aWIuQ2xvc3VyZSBjbG9zdXJlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgdWxvbmcgcmVnaXN0ZXJfZnVuYyAoQ2x1dHRlci5BbHBoYUZ1bmMgZnVuYyk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdm9pZCBzZXRfY2xvc3Vy ZSAoR0xpYi5DbG9zdXJlIGNsb3N1cmUpOworLQkJcHVibGljIHZvaWQgc2V0X2Z1bmMgKG93bmVk IENsdXR0ZXIuQWxwaGFGdW5jIGZ1bmMpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIHZvaWQgc2V0X21vZGUgKHVsb25nIG1vZGUpOworLQkJcHVibGljIHZvaWQgc2V0 X3RpbWVsaW5lIChDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lKTsKKy0JCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyBBbHBoYS53aXRoX2Z1bmMgKENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUsIG93 bmVkIENsdXR0ZXIuQWxwaGFGdW5jIGZ1bmMpOworLQkJcHVibGljIGRvdWJsZSBhbHBoYSB7IGdl dDsgfQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVsb25nIG1vZGUg eyBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLlRpbWVsaW5lIHRpbWVs aW5lIHsgZ2V0OyBzZXQ7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYW5pbWF0aW9uX2dldF90eXBlICgp IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBjbGFzcyBBbmltYXRpb24gOiBHTGliLk9i amVjdCwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlKV0KKy0JCXB1YmxpYyBBbmltYXRpb24gKCk7CistCQlwdWJsaWMgdW5vd25l ZCBDbHV0dGVyLkFuaW1hdGlvbiBiaW5kIChzdHJpbmcgcHJvcGVydHlfbmFtZSwgR0xpYi5WYWx1 ZSBmaW5hbCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBiaW5kX2ludGVy dmFsIChzdHJpbmcgcHJvcGVydHlfbmFtZSwgb3duZWQgQ2x1dHRlci5JbnRlcnZhbCBpbnRlcnZh bCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbHBoYSBn ZXRfYWxwaGEgKCk7CistCQlwdWJsaWMgdWludCBnZXRfZHVyYXRpb24gKCk7CistCQlwdWJsaWMg dW5vd25lZCBDbHV0dGVyLkludGVydmFsIGdldF9pbnRlcnZhbCAoc3RyaW5nIHByb3BlcnR5X25h bWUpOworLQkJcHVibGljIGJvb2wgZ2V0X2xvb3AgKCk7CistCQlwdWJsaWMgdWxvbmcgZ2V0X21v ZGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBHTGliLk9iamVjdCBnZXRfb2JqZWN0ICgpOworLQkJ cHVibGljIHVub3duZWQgQ2x1dHRlci5UaW1lbGluZSBnZXRfdGltZWxpbmUgKCk7CistCQlwdWJs aWMgYm9vbCBoYXNfcHJvcGVydHkgKHN0cmluZyBwcm9wZXJ0eV9uYW1lKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGEgKENsdXR0ZXIuQWxwaGEgYWxwaGEpOwor LQkJcHVibGljIHZvaWQgc2V0X2R1cmF0aW9uICh1aW50IG1zZWNzKTsKKy0JCXB1YmxpYyB2b2lk IHNldF9sb29wIChib29sIGxvb3ApOworLQkJcHVibGljIHZvaWQgc2V0X21vZGUgKHVsb25nIG1v ZGUpOworLQkJcHVibGljIHZvaWQgc2V0X29iamVjdCAoR0xpYi5PYmplY3Qgb2JqZWN0KTsKKy0J CXB1YmxpYyB2b2lkIHNldF90aW1lbGluZSAoQ2x1dHRlci5UaW1lbGluZT8gdGltZWxpbmUpOwor LQkJcHVibGljIHZvaWQgdW5iaW5kX3Byb3BlcnR5IChzdHJpbmcgcHJvcGVydHlfbmFtZSk7Cist CQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiB1cGRhdGUgKHN0cmluZyBwcm9wZXJ0 eV9uYW1lLCBHTGliLlZhbHVlIGZpbmFsKTsKKy0JCXB1YmxpYyB2b2lkIHVwZGF0ZV9pbnRlcnZh bCAoc3RyaW5nIHByb3BlcnR5X25hbWUsIENsdXR0ZXIuSW50ZXJ2YWwgaW50ZXJ2YWwpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBz aW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkFscGhhIGFscGhhIHsgZ2V0OyBzZXQ7 IH0KKy0JCXB1YmxpYyB1aW50IGR1cmF0aW9uIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBib29s IGxvb3AgeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIHVsb25nIG1vZGUgeyBnZXQ7IHNldDsgfQor LQkJcHVibGljIEdMaWIuT2JqZWN0IG9iamVjdCB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgQ2x1 dHRlci5UaW1lbGluZSB0aW1lbGluZSB7IGdldDsgc2V0OyB9CistCQlbSGFzRW1pdHRlcl0KKy0J CXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGNvbXBsZXRlZCAoKTsKKy0JCXB1YmxpYyB2aXJ0 dWFsIHNpZ25hbCB2b2lkIHN0YXJ0ZWQgKCk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtDb21w YWN0XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCitAQCAtNTQ2NywzNyArNTMwMCwxNCBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JhY2tlbmRfZ2V0X3R5cGUg KCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQlwdWJsaWMgY2xhc3MgQmFja2Vu ZCA6IEdMaWIuT2JqZWN0IHsKKysJcHVibGljIGFic3RyYWN0IGNsYXNzIEJhY2tlbmQgOiBHTGli Lk9iamVjdCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisg CQlwcm90ZWN0ZWQgQmFja2VuZCAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVh bCB2b2lkIGFkZF9vcHRpb25zIChHTGliLk9wdGlvbkdyb3VwIGdyb3VwKTsKKy0JCXB1YmxpYyB2 b2lkIGJlbGxfbm90aWZ5ICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIGJv b2wgY3JlYXRlX2NvbnRleHQgKCkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbTm9XcmFwcGVyXQor LQkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLlN0YWdlV2luZG93IGNyZWF0ZV9zdGFn ZSAoQ2x1dHRlci5TdGFnZSB3cmFwcGVyKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtOb1dyYXBw ZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGVuc3VyZV9jb250ZXh0IChDbHV0dGVyLlN0YWdl IHN0YWdlKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0 ZXIuRGV2aWNlTWFuYWdlciBnZXRfZGV2aWNlX21hbmFnZXIgKCk7CistCQlbTm9XcmFwcGVyXQor LQkJcHVibGljIHZpcnR1YWwgQ2x1dHRlci5GZWF0dXJlRmxhZ3MgZ2V0X2ZlYXR1cmVzICgpOwor KwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5TZWF0IGdldF9kZWZhdWx0X3NlYXQgKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgdW5vd25lZCBDYWlyby5Gb250T3B0 aW9ucyBnZXRfZm9udF9vcHRpb25zICgpOworIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5JbnB1 dE1ldGhvZCBnZXRfaW5wdXRfbWV0aG9kICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5L ZXltYXAgZ2V0X2tleW1hcCAoKTsKKyAJCXB1YmxpYyBkb3VibGUgZ2V0X3Jlc29sdXRpb24gKCk7 CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBpbml0X2V2ZW50cyAoKTsK Ky0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGluaXRfZmVhdHVyZXMgKCk7 CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgYm9vbCBwb3N0X3BhcnNlICgpIHRo cm93cyBHTGliLkVycm9yOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIGJvb2wg cHJlX3BhcnNlICgpIHRocm93cyBHTGliLkVycm9yOworLQkJW05vV3JhcHBlcl0KKy0JCXB1Ymxp YyB2aXJ0dWFsIHZvaWQgcmVkcmF3IChDbHV0dGVyLlN0YWdlIHN0YWdlKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9mb250X29wdGlvbnMgKENhaXJv LkZvbnRPcHRpb25zIG9wdGlvbnMpOworIAkJcHVibGljIHZvaWQgc2V0X2lucHV0X21ldGhvZCAo Q2x1dHRlci5JbnB1dE1ldGhvZCBtZXRob2QpOworQEAgLTU1MDgsOTUgKzUzMTgsMTEgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGlj IHNpZ25hbCB2b2lkIHNldHRpbmdzX2NoYW5nZWQgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JlaGF2 aW91cl9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS42Iiwgc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBhYnN0cmFjdCBj bGFzcyBCZWhhdmlvdXIgOiBHTGliLk9iamVjdCwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBCZWhh dmlvdXIgKCk7CistCQlwdWJsaWMgdm9pZCBhY3RvcnNfZm9yZWFjaCAoQ2x1dHRlci5CZWhhdmlv dXJGb3JlYWNoRnVuYyBmdW5jKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2 b2lkIGFscGhhX25vdGlmeSAoZG91YmxlIGFscGhhX3ZhbHVlKTsKKy0JCXB1YmxpYyB2b2lkIGFw cGx5IChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyBHTGliLlNMaXN0PHdlYWsgQ2x1 dHRlci5BY3Rvcj4gZ2V0X2FjdG9ycyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWxw aGEgZ2V0X2FscGhhICgpOworLQkJcHVibGljIGludCBnZXRfbl9hY3RvcnMgKCk7CistCQlwdWJs aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9udGhfYWN0b3IgKGludCBpbmRleF8pOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIGJvb2wgaXNfYXBwbGllZCAoQ2x1 dHRlci5BY3RvciBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCByZW1vdmUgKENsdXR0ZXIuQWN0b3Ig YWN0b3IpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQgcmVt b3ZlX2FsbCAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9hbHBoYSAoQ2x1dHRlci5BbHBoYSBhbHBo YSk7CistCQlwdWJsaWMgQ2x1dHRlci5BbHBoYSBhbHBoYSB7IGdldDsgc2V0OyB9CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBhcHBs aWVkIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0K Ky0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHJlbW92ZWQgKENsdXR0ZXIuQWN0b3IgYWN0 b3IpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9iZWhhdmlvdXJfZGVwdGhfZ2V0X3R5cGUgKCkiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNiIsIHNp bmNlID0gIjAuMiIpXQorLQlwdWJsaWMgY2xhc3MgQmVoYXZpb3VyRGVwdGggOiBDbHV0dGVyLkJl aGF2aW91ciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9m dW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJCZWhhdmlvdXIqIildCistCQlbVmVyc2lv biAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgQmVoYXZpb3VyRGVwdGggKENsdXR0ZXIuQWxw aGE/IGFscGhhLCBpbnQgZGVwdGhfc3RhcnQsIGludCBkZXB0aF9lbmQpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2JvdW5kcyAob3V0IGludCBkZXB0 aF9zdGFydCwgb3V0IGludCBkZXB0aF9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIp XQorLQkJcHVibGljIHZvaWQgc2V0X2JvdW5kcyAoaW50IGRlcHRoX3N0YXJ0LCBpbnQgZGVwdGhf ZW5kKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIp XQorLQkJcHVibGljIGludCBkZXB0aF9lbmQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JN ZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgaW50IGRlcHRo X3N0YXJ0IHsgZ2V0OyBzZXQ7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYmVoYXZpb3VyX29wYWNpdHlf Z2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuNiIsIHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgY2xhc3MgQmVoYXZpb3Vy T3BhY2l0eSA6IENsdXR0ZXIuQmVoYXZpb3VyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckJlaGF2 aW91cioiKV0KKy0JCXB1YmxpYyBCZWhhdmlvdXJPcGFjaXR5IChDbHV0dGVyLkFscGhhPyBhbHBo YSwgdWludDggb3BhY2l0eV9zdGFydCwgdWludDggb3BhY2l0eV9lbmQpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2JvdW5kcyAob3V0IHVpbnQ4IG9w YWNpdHlfc3RhcnQsIG91dCB1aW50OCBvcGFjaXR5X2VuZCk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMC42IildCistCQlwdWJsaWMgdm9pZCBzZXRfYm91bmRzICh1aW50OCBvcGFjaXR5X3N0YXJ0 LCB1aW50OCBvcGFjaXR5X2VuZCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB1 aW50IG9wYWNpdHlfZW5kIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJ cHVibGljIHVpbnQgb3BhY2l0eV9zdGFydCB7IGdldDsgc2V0OyB9CistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVy X2JlaGF2aW91cl9zY2FsZV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS42Iiwgc2luY2UgPSAiMC4yIildCistCXB1Ymxp YyBjbGFzcyBCZWhhdmlvdXJTY2FsZSA6IENsdXR0ZXIuQmVoYXZpb3VyLCBDbHV0dGVyLlNjcmlw dGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUg PSAiQ2x1dHRlckJlaGF2aW91cioiKV0KKy0JCXB1YmxpYyBCZWhhdmlvdXJTY2FsZSAoQ2x1dHRl ci5BbHBoYT8gYWxwaGEsIGRvdWJsZSB4X3NjYWxlX3N0YXJ0LCBkb3VibGUgeV9zY2FsZV9zdGFy dCwgZG91YmxlIHhfc2NhbGVfZW5kLCBkb3VibGUgeV9zY2FsZV9lbmQpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2JvdW5kcyAob3V0IGRvdWJsZSB4 X3NjYWxlX3N0YXJ0LCBvdXQgZG91YmxlIHlfc2NhbGVfc3RhcnQsIG91dCBkb3VibGUgeF9zY2Fs ZV9lbmQsIG91dCBkb3VibGUgeV9zY2FsZV9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAu NiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2JvdW5kcyAoZG91YmxlIHhfc2NhbGVfc3RhcnQsIGRv dWJsZSB5X3NjYWxlX3N0YXJ0LCBkb3VibGUgeF9zY2FsZV9lbmQsIGRvdWJsZSB5X3NjYWxlX2Vu ZCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0K Ky0JCXB1YmxpYyBkb3VibGUgeF9zY2FsZV9lbmQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNz b3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgZG91Ymxl IHhfc2NhbGVfc3RhcnQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlb VmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgZG91YmxlIHlfc2NhbGVfZW5kIHsg Z2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0g IjAuNiIpXQorLQkJcHVibGljIGRvdWJsZSB5X3NjYWxlX3N0YXJ0IHsgZ2V0OyBzZXQ7IH0KKy0J fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBl X2lkID0gImNsdXR0ZXJfYmluX2xheW91dF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4yIildCisgCXB1YmxpYyBjbGFzcyBCaW5MYXlvdXQgOiBDbHV0dGVyLkxheW91dE1h bmFnZXIgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUg PSAiQ2x1dHRlckxheW91dE1hbmFnZXIqIildCisgCQlwdWJsaWMgQmluTGF5b3V0IChDbHV0dGVy LkJpbkFsaWdubWVudCB4X2FsaWduID0gQ2x1dHRlci5CaW5BbGlnbm1lbnQuU1RBUlQsIENsdXR0 ZXIuQmluQWxpZ25tZW50IHlfYWxpZ24gPSBDbHV0dGVyLkJpbkFsaWdubWVudC5TVEFSVCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgYWRkIChDbHV0dGVyLkFjdG9yIGNoaWxk LCBDbHV0dGVyLkJpbkFsaWdubWVudCB4X2FsaWduLCBDbHV0dGVyLkJpbkFsaWdubWVudCB5X2Fs aWduKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBnZXRfYWxpZ25tZW50IChD bHV0dGVyLkFjdG9yPyBjaGlsZCwgb3V0IENsdXR0ZXIuQmluQWxpZ25tZW50IHhfYWxpZ24sIG91 dCBDbHV0dGVyLkJpbkFsaWdubWVudCB5X2FsaWduKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlw dWJsaWMgdm9pZCBzZXRfYWxpZ25tZW50IChDbHV0dGVyLkFjdG9yPyBjaGlsZCwgQ2x1dHRlci5C aW5BbGlnbm1lbnQgeF9hbGlnbiwgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeV9hbGlnbik7CisgCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgQ2x1dHRlci5C aW5BbGlnbm1lbnQgeF9hbGlnbiB7IGdldDsgc2V0OyB9CitAQCAtNTY0NCw5OCArNTM3MCwyOSBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24g PSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyRWZmZWN0KiIpXQorIAkJcHVibGljIEJsdXJFZmZlY3Qg KCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JveF9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4yIildCistCXB1YmxpYyBjbGFzcyBCb3ggOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1w bGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIu U2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwg dHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIEJv eCAoQ2x1dHRlci5MYXlvdXRNYW5hZ2VyIG1hbmFnZXIpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0J CXB1YmxpYyBDbHV0dGVyLkNvbG9yIGdldF9jb2xvciAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4yIildCist CQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkxheW91dE1hbmFnZXIgZ2V0X2xheW91dF9tYW5hZ2Vy ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHBhY2sgKENsdXR0ZXIuQWN0 b3IgYWN0b3IsIC4uLik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgcGFja19h ZnRlciAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5BY3Rvcj8gc2libGluZywgLi4uKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEw Iiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBwYWNrX2F0IChDbHV0dGVyLkFjdG9y IGFjdG9yLCBpbnQgcG9zaXRpb24sIC4uLik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGlj IHZvaWQgcGFja19iZWZvcmUgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuQWN0b3I/IHNp YmxpbmcsIC4uLik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgcGFja3YgKENs dXR0ZXIuQWN0b3IgYWN0b3IsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVy dGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAxLjUsIGFycmF5X2xlbmd0aF90eXBlID0gImd1aW50 IildIHN0cmluZ1tdIHByb3BlcnRpZXMsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5f cHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAxLjUsIGFycmF5X2xlbmd0aF90eXBlID0g Imd1aW50IildIEdMaWIuVmFsdWVbXSB2YWx1ZXMpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9jb2xvciAoQ2x1dHRlci5Db2xvcj8gY29sb3IpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIx LjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXlvdXRfbWFuYWdlciAoQ2x1dHRlci5MYXlvdXRN YW5hZ2VyIG1hbmFnZXIpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkNv bG9yIGNvbG9yIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9 ICIxLjIiKV0KKy0JCXB1YmxpYyBib29sIGNvbG9yX3NldCB7IGdldDsgc2V0OyB9CistCQlwdWJs aWMgQ2x1dHRlci5MYXlvdXRNYW5hZ2VyIGxheW91dF9tYW5hZ2VyIHsgZ2V0OyBzZXQ7IH0KKy0J fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBl X2lkID0gImNsdXR0ZXJfYm94X2xheW91dF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4yIildCisgCXB1YmxpYyBjbGFzcyBCb3hMYXlvdXQgOiBDbHV0dGVyLkxheW91dE1h bmFnZXIgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUg PSAiQ2x1dHRlckxheW91dE1hbmFnZXIqIildCisgCQlwdWJsaWMgQm94TGF5b3V0ICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9hbGlnbm1lbnQgKENsdXR0ZXIuQWN0 b3IgYWN0b3IsIG91dCBDbHV0dGVyLkJveEFsaWdubWVudCB4X2FsaWduLCBvdXQgQ2x1dHRlci5C b3hBbGlnbm1lbnQgeV9hbGlnbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHVpbnQg Z2V0X2Vhc2luZ19kdXJhdGlvbiAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdWxv bmcgZ2V0X2Vhc2luZ19tb2RlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBib29s IGdldF9leHBhbmQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0J CXB1YmxpYyB2b2lkIGdldF9maWxsIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQgYm9vbCB4X2Zp bGwsIG91dCBib29sIHlfZmlsbCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlw dWJsaWMgYm9vbCBnZXRfaG9tb2dlbmVvdXMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MiIpXQorIAkJcHVibGljIENsdXR0ZXIuT3JpZW50YXRpb24gZ2V0X29yaWVudGF0aW9uICgpOwor IAkJcHVibGljIGJvb2wgZ2V0X3BhY2tfc3RhcnQgKCk7CisgCQlwdWJsaWMgdWludCBnZXRfc3Bh Y2luZyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgYm9vbCBnZXRfdXNlX2FuaW1h dGlvbnMgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3ZlcnRpY2Fs ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHBhY2sgKENsdXR0ZXIuQWN0 b3IgYWN0b3IsIGJvb2wgZXhwYW5kLCBib29sIHhfZmlsbCwgYm9vbCB5X2ZpbGwsIENsdXR0ZXIu Qm94QWxpZ25tZW50IHhfYWxpZ24sIENsdXR0ZXIuQm94QWxpZ25tZW50IHlfYWxpZ24pOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbGlnbm1lbnQgKENsdXR0ZXIuQWN0 b3IgYWN0b3IsIENsdXR0ZXIuQm94QWxpZ25tZW50IHhfYWxpZ24sIENsdXR0ZXIuQm94QWxpZ25t ZW50IHlfYWxpZ24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9lYXNp bmdfZHVyYXRpb24gKHVpbnQgbXNlY3MpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9lYXNpbmdfbW9kZSAodWxvbmcgbW9kZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJ cHVibGljIHZvaWQgc2V0X2V4cGFuZCAoQ2x1dHRlci5BY3RvciBhY3RvciwgYm9vbCBleHBhbmQp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9maWxsIChDbHV0dGVyLkFj dG9yIGFjdG9yLCBib29sIHhfZmlsbCwgYm9vbCB5X2ZpbGwpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2hvbW9nZW5lb3VzIChib29sIGhvbW9nZW5l b3VzKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdm9pZCBzZXRf b3JpZW50YXRpb24gKENsdXR0ZXIuT3JpZW50YXRpb24gb3JpZW50YXRpb24pOworIAkJcHVibGlj IHZvaWQgc2V0X3BhY2tfc3RhcnQgKGJvb2wgcGFja19zdGFydCk7CisgCQlwdWJsaWMgdm9pZCBz ZXRfc3BhY2luZyAodWludCBzcGFjaW5nKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMg dm9pZCBzZXRfdXNlX2FuaW1hdGlvbnMgKGJvb2wgYW5pbWF0ZSk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIp XQorLQkJcHVibGljIHZvaWQgc2V0X3ZlcnRpY2FsIChib29sIHZlcnRpY2FsKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS4yIildCistCQlwdWJsaWMgdWludCBlYXNpbmdfZHVyYXRpb24geyBnZXQ7IHNldDsgfQor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB1bG9uZyBlYXNpbmdfbW9kZSB7IGdldDsgc2V0 OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgYm9vbCBob21vZ2Vu ZW91cyB7IGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVi bGljIENsdXR0ZXIuT3JpZW50YXRpb24gb3JpZW50YXRpb24geyBnZXQ7IHNldDsgfQorIAkJcHVi bGljIGJvb2wgcGFja19zdGFydCB7IGdldDsgc2V0OyB9CisgCQlwdWJsaWMgdWludCBzcGFjaW5n IHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgYm9vbCB1c2VfYW5p bWF0aW9ucyB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIGJvb2wg dmVydGljYWwgeyBnZXQ7IHNldDsgfQorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9icmlnaHRuZXNzX2NvbnRy YXN0X2VmZmVjdF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor QEAgLTU3NDksOSArNTQwNiw5IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lk IHNldF9jb250cmFzdCAoZmxvYXQgY29udHJhc3QpOworIAkJcHVibGljIHZvaWQgc2V0X2NvbnRy YXN0X2Z1bGwgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUpOworIAkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBicmlnaHRuZXNzIHsgZ2V0OyBz ZXQ7IH0KKysJCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGJyaWdodG5lc3MgeyBvd25lZCBnZXQ7IHNl dDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBjb250 cmFzdCB7IGdldDsgc2V0OyB9CisrCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBjb250cmFzdCB7IG93 bmVkIGdldDsgc2V0OyB9CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtDb21wYWN0XQorQEAgLTU3 NzAsMzcgKzU0MjcsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZmxvYXQgeDsK KyAJCXB1YmxpYyBmbG9hdCB5OworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9jYWlyb190ZXh0dXJlX2dldF90 eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBjbGFzcyBDYWlyb1RleHR1cmUg OiBDbHV0dGVyLlRleHR1cmUsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBD bHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCXB1 YmxpYyBDYWlyb1RleHR1cmUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0KTsKKy0JCXB1YmxpYyB2 b2lkIGNsZWFyICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENhaXJvLkNvbnRleHQg Y3JlYXRlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuOCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENhaXJvLkNvbnRleHQgY3Jl YXRlX3JlZ2lvbiAoaW50IHhfb2Zmc2V0LCBpbnQgeV9vZmZzZXQsIGludCB3aWR0aCwgaW50IGhl aWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgYm9vbCBnZXRf YXV0b19yZXNpemUgKCk7CistCQlwdWJsaWMgdm9pZCBnZXRfc3VyZmFjZV9zaXplIChvdXQgdWlu dCB3aWR0aCwgb3V0IHVpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0K Ky0JCXB1YmxpYyB2b2lkIGludmFsaWRhdGUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44 IildCistCQlwdWJsaWMgdm9pZCBpbnZhbGlkYXRlX3JlY3RhbmdsZSAoQ2Fpcm8uUmVjdGFuZ2xl SW50PyByZWN0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9hdXRvX3Jlc2l6ZSAoYm9vbCB2YWx1ZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfc3VyZmFj ZV9zaXplICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS44IildCistCQlwdWJsaWMgYm9vbCBhdXRvX3Jlc2l6ZSB7IGdldDsgc2V0OyB9CistCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB1aW50IHN1cmZhY2VfaGVpZ2h0IHsgZ2V0OyBzZXQ7 IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQgc3VyZmFjZV93aWR0aCB7 IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgdmly dHVhbCBzaWduYWwgQ2Fpcm8uU3VyZmFjZSBjcmVhdGVfc3VyZmFjZSAodWludCB3aWR0aCwgdWlu dCBoZWlnaHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZpcnR1 YWwgc2lnbmFsIGJvb2wgZHJhdyAoQ2Fpcm8uQ29udGV4dCBjcik7CistCX0KKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVy X2NhbnZhc19nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlw dWJsaWMgY2xhc3MgQ2FudmFzIDogR0xpYi5PYmplY3QsIENsdXR0ZXIuQ29udGVudCB7CitAQCAt NTgyNywxNyArNTQ1MywyMCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRl ci5Db250YWluZXIgY29udGFpbmVyIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJfQorIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0 ZXJfY2xpY2tfYWN0aW9uX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQi KV0KKyAJcHVibGljIGNsYXNzIENsaWNrQWN0aW9uIDogQ2x1dHRlci5BY3Rpb24geworIAkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdGlv bioiKV0KKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBDbGlja0FjdGlv biAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB1aW50IGdldF9i dXR0b24gKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCBn ZXRfY29vcmRzIChvdXQgZmxvYXQgcHJlc3NfeCwgb3V0IGZsb2F0IHByZXNzX3kpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIENsdXR0ZXIuTW9kaWZpZXJUeXBlIGdl dF9zdGF0ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lk IHJlbGVhc2UgKCk7CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjQiKV0KKyAJCXB1YmxpYyBib29sIGhlbGQgeyBnZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0 aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorQEAgLTU4NDYsNyArNTQ3NSw5IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1 YmxpYyBpbnQgbG9uZ19wcmVzc190aHJlc2hvbGQgeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNz b3JNZXRob2RdCisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgYm9vbCBw cmVzc2VkIHsgZ2V0OyB9CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMg dmlydHVhbCBzaWduYWwgdm9pZCBjbGlja2VkIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIGxv bmdfcHJlc3MgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuTG9uZ1ByZXNzU3RhdGUgc3Rh dGUpOworQEAgLTU4ODgsOCArNTUxOSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXByb3Rl Y3RlZCBDb25zdHJhaW50ICgpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZv aWQgdXBkYXRlX2FsbG9jYXRpb24gKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuQWN0b3JC b3ggYWxsb2NhdGlvbik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCB1 cGRhdGVfcHJlZmVycmVkX3NpemUgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuT3JpZW50 YXRpb24gZGlyZWN0aW9uLCBmbG9hdCBmb3Jfc2l6ZSwgZmxvYXQgbWluaW11bV9zaXplLCBmbG9h dCBuYXR1cmFsX3NpemUpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCB1cGRhdGVfcHJlZmVycmVk X3NpemUgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuT3JpZW50YXRpb24gZGlyZWN0aW9u LCBmbG9hdCBmb3Jfc2l6ZSwgcmVmIGZsb2F0IG1pbmltdW1fc2l6ZSwgcmVmIGZsb2F0IG5hdHVy YWxfc2l6ZSk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtDb21wYWN0XQorQEAgLTU4OTgsNiAr NTUyOCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB3ZWFrIENsdXR0ZXIuSW5w dXREZXZpY2UgZGV2aWNlOworIAkJcHVibGljIENsdXR0ZXIuRXZlbnRGbGFncyBmbGFnczsKKyAJ CXB1YmxpYyB3ZWFrIENsdXR0ZXIuQWN0b3IgcmVsYXRlZDsKKysJCXB1YmxpYyB3ZWFrIENsdXR0 ZXIuRXZlbnRTZXF1ZW5jZSBzZXF1ZW5jZTsKKyAJCXB1YmxpYyB3ZWFrIENsdXR0ZXIuQWN0b3Ig c291cmNlOworIAkJcHVibGljIHdlYWsgQ2x1dHRlci5TdGFnZSBzdGFnZTsKKyAJCXB1YmxpYyB1 aW50MzIgdGltZTsKK0BAIC01OTMxLDk4ICs1NTYyLDIxIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJCXB1YmxpYyB2b2lkIHNldF9mYWN0b3IgKGRvdWJsZSBmYWN0b3IpOworIAkJcHVibGljIGRv dWJsZSBmYWN0b3IgeyBnZXQ7IHNldDsgfQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9kZXZpY2VfbWFuYWdl cl9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBh YnN0cmFjdCBjbGFzcyBEZXZpY2VNYW5hZ2VyIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIERldmljZU1hbmFn ZXIgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBhZGRfZGV2aWNl IChDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGlj IHZpcnR1YWwgdm9pZCBhcHBseV9rYmRfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5LYmRBMTF5U2V0 dGluZ3Mgc2V0dGluZ3MpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQg Y29tcHJlc3NfbW90aW9uIChDbHV0dGVyLkV2ZW50IGV2ZW50LCBDbHV0dGVyLkV2ZW50IHRvX2Rp c2NhcmQpOworLQkJcHVibGljIHZpcnR1YWwgQ2x1dHRlci5WaXJ0dWFsSW5wdXREZXZpY2UgY3Jl YXRlX3ZpcnR1YWxfZGV2aWNlIChDbHV0dGVyLklucHV0RGV2aWNlVHlwZSBkZXZpY2VfdHlwZSk7 CistCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuSW5wdXREZXZpY2UgZ2V0X2NvcmVf ZGV2aWNlIChDbHV0dGVyLklucHV0RGV2aWNlVHlwZSBkZXZpY2VfdHlwZSk7CistCQlwdWJsaWMg c3RhdGljIHVub3duZWQgQ2x1dHRlci5EZXZpY2VNYW5hZ2VyIGdldF9kZWZhdWx0ICgpOworLQkJ cHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLklucHV0RGV2aWNlIGdldF9kZXZpY2UgKGlu dCBkZXZpY2VfaWQpOworLQkJcHVibGljIHZvaWQgZ2V0X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0 dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CistCQlwdWJsaWMgdmlydHVhbCBDbHV0dGVy LlZpcnR1YWxEZXZpY2VUeXBlIGdldF9zdXBwb3J0ZWRfdmlydHVhbF9kZXZpY2VfdHlwZXMgKCk7 CistCQlwdWJsaWMgR0xpYi5TTGlzdDx3ZWFrIENsdXR0ZXIuSW5wdXREZXZpY2U+IGxpc3RfZGV2 aWNlcyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIEdMaWIuU0xpc3Q8Q2x1dHRlci5JbnB1dERldmlj ZT4gcGVla19kZXZpY2VzICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZv aWQgcmVtb3ZlX2RldmljZSAoQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UpOworLQkJW05vV3Jh cHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2VsZWN0X3N0YWdlX2V2ZW50cyAoQ2x1dHRl ci5TdGFnZSBzdGFnZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfa2JkX2ExMXlfc2V0dGluZ3MgKENs dXR0ZXIuS2JkQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQor LQkJcHVibGljIENsdXR0ZXIuQmFja2VuZCBiYWNrZW5kIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7 IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBkZXZpY2VfYWRkZWQgKENsdXR0ZXIuSW5wdXREZXZp Y2UgZGV2aWNlKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBkZXZpY2VfcmVtb3ZlZCAoQ2x1dHRl ci5JbnB1dERldmljZSBkZXZpY2UpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGtiZF9hMTF5X2Zs YWdzX2NoYW5nZWQgKHVpbnQgc2V0dGluZ3NfZmxhZ3MsIHVpbnQgY2hhbmdlZF9tYXNrKTsKKy0J CXB1YmxpYyBzaWduYWwgdm9pZCBrYmRfYTExeV9tb2RzX3N0YXRlX2NoYW5nZWQgKHVpbnQgbGF0 Y2hlZF9tYXNrLCB1aW50IGxvY2tlZF9tYXNrKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB0b29s X2NoYW5nZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0LCBDbHV0dGVyLklucHV0RGV2aWNl VG9vbCBwMCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2RyYWdfYWN0aW9uX2dldF90eXBlICgpIildCist CVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGNsYXNzIERyYWdBY3Rpb24gOiBD bHV0dGVyLkFjdGlvbiB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSwgdHlwZSA9ICJDbHV0dGVyQWN0aW9uKiIpXQorLQkJcHVibGljIERyYWdBY3Rpb24gKCk7Cist CQlwdWJsaWMgYm9vbCBnZXRfZHJhZ19hcmVhIChDbHV0dGVyLlJlY3QgZHJhZ19hcmVhKTsKKy0J CXB1YmxpYyBDbHV0dGVyLkRyYWdBeGlzIGdldF9kcmFnX2F4aXMgKCk7CistCQlwdWJsaWMgdW5v d25lZCBDbHV0dGVyLkFjdG9yIGdldF9kcmFnX2hhbmRsZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGdl dF9kcmFnX3RocmVzaG9sZCAob3V0IHVpbnQgeF90aHJlc2hvbGQsIG91dCB1aW50IHlfdGhyZXNo b2xkKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9tb3Rpb25fY29vcmRzIChvdXQgZmxvYXQgbW90aW9u X3gsIG91dCBmbG9hdCBtb3Rpb25feSk7CistCQlwdWJsaWMgdm9pZCBnZXRfcHJlc3NfY29vcmRz IChvdXQgZmxvYXQgcHJlc3NfeCwgb3V0IGZsb2F0IHByZXNzX3kpOworLQkJcHVibGljIHZvaWQg c2V0X2RyYWdfYXJlYSAoQ2x1dHRlci5SZWN0PyBkcmFnX2FyZWEpOworLQkJcHVibGljIHZvaWQg c2V0X2RyYWdfYXhpcyAoQ2x1dHRlci5EcmFnQXhpcyBheGlzKTsKKy0JCXB1YmxpYyB2b2lkIHNl dF9kcmFnX2hhbmRsZSAoQ2x1dHRlci5BY3Rvcj8gaGFuZGxlKTsKKy0JCXB1YmxpYyB2b2lkIHNl dF9kcmFnX3RocmVzaG9sZCAoaW50IHhfdGhyZXNob2xkLCBpbnQgeV90aHJlc2hvbGQpOworLQkJ W05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVi bGljIENsdXR0ZXIuUmVjdCBkcmFnX2FyZWEgeyBvd25lZCBnZXQ7IHNldDsgfQorLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIGJv b2wgZHJhZ19hcmVhX3NldCB7IGdldDsgfQorLQkJcHVibGljIENsdXR0ZXIuRHJhZ0F4aXMgZHJh Z19heGlzIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLkFjdG9yIGRyYWdfaGFuZGxl IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCB4X2Ry YWdfdGhyZXNob2xkIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVi bGljIGludCB5X2RyYWdfdGhyZXNob2xkIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyB2aXJ0dWFs IHNpZ25hbCB2b2lkIGRyYWdfYmVnaW4gKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGZsb2F0IGV2ZW50 X3gsIGZsb2F0IGV2ZW50X3ksIENsdXR0ZXIuTW9kaWZpZXJUeXBlIG1vZGlmaWVycyk7CistCQlw dWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBkcmFnX2VuZCAoQ2x1dHRlci5BY3RvciBhY3Rvciwg ZmxvYXQgZXZlbnRfeCwgZmxvYXQgZXZlbnRfeSwgQ2x1dHRlci5Nb2RpZmllclR5cGUgbW9kaWZp ZXJzKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGRyYWdfbW90aW9uIChDbHV0dGVy LkFjdG9yIGFjdG9yLCBmbG9hdCBkZWx0YV94LCBmbG9hdCBkZWx0YV95KTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCBkcmFnX3By b2dyZXNzIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBmbG9hdCBkZWx0YV94LCBmbG9hdCBkZWx0YV95 KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCB0eXBlX2lkID0gImNsdXR0ZXJfZHJvcF9hY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNp b24gKHNpbmNlID0gIjEuOCIpXQorLQlwdWJsaWMgY2xhc3MgRHJvcEFjdGlvbiA6IENsdXR0ZXIu QWN0aW9uIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBl ID0gIkNsdXR0ZXJBY3Rpb24qIildCistCQlwdWJsaWMgRHJvcEFjdGlvbiAoKTsKKy0JCXB1Ymxp YyB2aXJ0dWFsIHNpZ25hbCBib29sIGNhbl9kcm9wIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBmbG9h dCBldmVudF94LCBmbG9hdCBldmVudF95KTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lk IGRyb3AgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGZsb2F0IGV2ZW50X3gsIGZsb2F0IGV2ZW50X3kp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBk cm9wX2NhbmNlbCAoQ2x1dHRlci5BY3RvciBhY3RvciwgZmxvYXQgZXZlbnRfeCwgZmxvYXQgZXZl bnRfeSk7CistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBvdmVyX2luIChDbHV0dGVyLkFj dG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIG92ZXJfb3V0IChDbHV0 dGVyLkFjdG9yIGFjdG9yKTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfZWZmZWN0X2dldF90eXBlICgpIild CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIEVm ZmVjdCA6IENsdXR0ZXIuQWN0b3JNZXRhIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBFZmZlY3QgKCk7CisgCQlbTm9XcmFwcGVyXQor LQkJcHVibGljIHZpcnR1YWwgYm9vbCBnZXRfcGFpbnRfdm9sdW1lIChDbHV0dGVyLlBhaW50Vm9s dW1lIHZvbHVtZSk7CisrCQlwdWJsaWMgdmlydHVhbCBib29sIG1vZGlmeV9wYWludF92b2x1bWUg KENsdXR0ZXIuUGFpbnRWb2x1bWUgdm9sdW1lKTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMg dmlydHVhbCB2b2lkIHBhaW50IChDbHV0dGVyLkVmZmVjdFBhaW50RmxhZ3MgZmxhZ3MpOworKwkJ cHVibGljIHZpcnR1YWwgdm9pZCBwYWludCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29u dGV4dCwgQ2x1dHRlci5FZmZlY3RQYWludEZsYWdzIGZsYWdzKTsKKyAJCVtOb1dyYXBwZXJdCist CQlwdWJsaWMgdmlydHVhbCB2b2lkIHBpY2sgKENsdXR0ZXIuRWZmZWN0UGFpbnRGbGFncyBmbGFn cyk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBpY2sgKENsdXR0ZXIuUGlja0NvbnRleHQgcGlj a19jb250ZXh0KTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBvc3Rf cGFpbnQgKCk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBvc3RfcGFpbnQgKENsdXR0ZXIuUGFp bnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworIAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0 dWFsIGJvb2wgcHJlX3BhaW50ICgpOworKwkJcHVibGljIHZpcnR1YWwgYm9vbCBwcmVfcGFpbnQg KENsdXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuOCIpXQorIAkJcHVibGljIHZvaWQgcXVldWVfcmVwYWludCAoKTsKKyAJfQorQEAgLTYw MzMsOCArNTU4NywxMiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5F dmVudFR5cGUgdHlwZTsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl KV0KKyAJCXB1YmxpYyBFdmVudCAoQ2x1dHRlci5FdmVudFR5cGUgdHlwZSk7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xOCIpXQorKwkJcHVibGljIHN0YXRpYyB1aW50IGFkZF9maWx0ZXIgKENs dXR0ZXIuU3RhZ2U/IHN0YWdlLCBbQ0NvZGUgKGRlbGVnYXRlX3RhcmdldF9wb3MgPSAyLjIsIGRl c3Ryb3lfbm90aWZ5X3BvcyA9IDIuMSldIG93bmVkIENsdXR0ZXIuRXZlbnRGaWx0ZXJGdW5jIGZ1 bmMpOworIAkJcHVibGljIENsdXR0ZXIuRXZlbnQgY29weSAoKTsKKyAJCXB1YmxpYyB2b2lkIGZy ZWUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisrCQlwdWJsaWMgc3RhdGljIENs dXR0ZXIuRXZlbnQgQGdldCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlw dWJsaWMgZG91YmxlIGdldF9hbmdsZSAoQ2x1dHRlci5FdmVudCB0YXJnZXQpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTYwNzMsNyArNTYzMSw3IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCXB1YmxpYyB1aW50IGdldF9tb2RlX2dyb3VwICgpOworIAkJcHVibGljIGJvb2wg Z2V0X3BhZF9ldmVudF9kZXRhaWxzIChvdXQgdWludCBudW1iZXIsIG91dCB1aW50IG1vZGUsIG91 dCBkb3VibGUgdmFsdWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1Ymxp YyB2b2lkIGdldF9wb3NpdGlvbiAoQ2x1dHRlci5Qb2ludCBwb3NpdGlvbik7CisrCQlwdWJsaWMg dm9pZCBnZXRfcG9zaXRpb24gKEdyYXBoZW5lLlBvaW50IHBvc2l0aW9uKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3Jl bGF0ZWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTYxMDYsOCArNTY2 NCwxMiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBoYXNfc2hpZnRfbW9k aWZpZXIgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGJvb2wg aXNfcG9pbnRlcl9lbXVsYXRlZCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKysJ CXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkV2ZW50IHBlZWsgKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgdm9pZCBwdXQgKCk7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xOCIpXQorKwkJcHVibGljIHN0YXRpYyB2b2lkIHJlbW92ZV9maWx0ZXIgKHVp bnQgaWQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZvaWQgc2V0 X2J1dHRvbiAodWludDMyIGJ1dHRvbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCitA QCAtNjE0MCwxNiArNTcwMiw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lk IHNldF9zdGF0ZSAoQ2x1dHRlci5Nb2RpZmllclR5cGUgc3RhdGUpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3RpbWUgKHVpbnQzMiB0aW1lXyk7Cist CQlwdWJsaWMgQ2x1dHRlci5BbnlFdmVudCBhbnkge1tDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJB bnlFdmVudCAqKSIpXSAgZ2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5CdXR0b25FdmVudCBidXR0 b24ge1tDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJCdXR0b25FdmVudCAqKSIpXSAgZ2V0OyB9Cist CQlwdWJsaWMgQ2x1dHRlci5Dcm9zc2luZ0V2ZW50IGNyb3NzaW5nIHtbQ0NvZGUgKGNuYW1lID0g IihDbHV0dGVyQ3Jvc3NpbmdFdmVudCAqKSIpXSAgZ2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5L ZXlFdmVudCBrZXkge1tDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJLZXlFdmVudCAqKSIpXSAgZ2V0 OyB9CistCQlwdWJsaWMgQ2x1dHRlci5Nb3Rpb25FdmVudCBtb3Rpb24ge1tDQ29kZSAoY25hbWUg PSAiKENsdXR0ZXJNb3Rpb25FdmVudCAqKSIpXSAgZ2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5T Y3JvbGxFdmVudCBzY3JvbGwge1tDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJTY3JvbGxFdmVudCAq KSIpXSAgZ2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5TdGFnZVN0YXRlRXZlbnQgc3RhZ2Vfc3Rh dGUge1tDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJTdGFnZVN0YXRlRXZlbnQgKikiKV0gIGdldDsg fQorLQkJcHVibGljIENsdXR0ZXIuVG91Y2hFdmVudCB0b3VjaCB7W0NDb2RlIChjbmFtZSA9ICIo Q2x1dHRlclRvdWNoRXZlbnQgKikiKV0gIGdldDsgfQorLQkJcHVibGljIENsdXR0ZXIuVG91Y2hw YWRQaW5jaEV2ZW50IHRvdWNocGFkX3BpbmNoIHtbQ0NvZGUgKGNuYW1lID0gIihDbHV0dGVyVG91 Y2hwYWRQaW5jaEV2ZW50ICopIildICBnZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLlRvdWNocGFk U3dpcGVFdmVudCB0b3VjaHBhZF9zd2lwZSB7W0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlclRvdWNo cGFkU3dpcGVFdmVudCAqKSIpXSAgZ2V0OyB9CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHki LCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9ldmVu dF9zZXF1ZW5jZV9nZXRfdHlwZSAoKSIpXQorIAlbQ29tcGFjdF0KK0BAIC02MTk4LDEwICs1NzUw LDI0IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2Iild CisgCQlwdWJsaWMgYm9vbCBzbmFwX3RvX2dyaWQgeyBnZXQ7IHNldDsgfQorIAl9CisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9mcmFtZV9jbG9ja19nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgRnJhbWVDbG9j ayA6IEdMaWIuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlKV0KKysJCXB1YmxpYyBGcmFtZUNsb2NrIChmbG9hdCByZWZyZXNoX3JhdGUsIENsdXR0ZXIu RnJhbWVMaXN0ZW5lcklmYWNlIGlmYWNlLCB2b2lkKiB1c2VyX2RhdGEpOworKwkJcHVibGljIHZv aWQgYWRkX3RpbWVsaW5lIChDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lKTsKKysJCXB1YmxpYyBm bG9hdCBnZXRfcmVmcmVzaF9yYXRlICgpOworKwkJcHVibGljIHZvaWQgaW5oaWJpdCAoKTsKKysJ CXB1YmxpYyB2b2lkIHJlbW92ZV90aW1lbGluZSAoQ2x1dHRlci5UaW1lbGluZSB0aW1lbGluZSk7 CisrCQlwdWJsaWMgdm9pZCBzY2hlZHVsZV91cGRhdGUgKCk7CisrCQlwdWJsaWMgdm9pZCBzY2hl ZHVsZV91cGRhdGVfbm93ICgpOworKwkJcHVibGljIHZvaWQgdW5pbmhpYml0ICgpOworKwkJW0hh c0VtaXR0ZXJdCisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGVzdHJveSAoKTsKKysJfQorIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNs dXR0ZXJfZ2VzdHVyZV9hY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0g IjEuOCIpXQorIAlwdWJsaWMgY2xhc3MgR2VzdHVyZUFjdGlvbiA6IENsdXR0ZXIuQWN0aW9uIHsK KyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0 ZXJBY3Rpb24qIildCisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgR2Vz dHVyZUFjdGlvbiAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMg dm9pZCBjYW5jZWwgKCk7CitAQCAtNjIxMSw2ICs1Nzc3LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5JbnB1dERldmljZSBnZXRfZGV2aWNlICh1aW50 IHBvaW50KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisgCQlwdWJsaWMgdW5vd25l ZCBDbHV0dGVyLkV2ZW50IGdldF9sYXN0X2V2ZW50ICh1aW50IHBvaW50KTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2b2lkIGdldF9tb3Rpb25fY29vcmRzICh1aW50 IHBvaW50LCBvdXQgZmxvYXQgbW90aW9uX3gsIG91dCBmbG9hdCBtb3Rpb25feSk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGZsb2F0IGdldF9tb3Rpb25fZGVsdGEg KHVpbnQgcG9pbnQsIG91dCBmbG9hdCBkZWx0YV94LCBvdXQgZmxvYXQgZGVsdGFfeSk7CitAQCAt NjIxOCw3ICs1Nzg1LDkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHVpbnQgZ2V0 X25fY3VycmVudF9wb2ludHMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJ cHVibGljIGludCBnZXRfbl90b3VjaF9wb2ludHMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS44IildCisgCQlwdWJsaWMgdm9pZCBnZXRfcHJlc3NfY29vcmRzICh1aW50IHBvaW50LCBvdXQg ZmxvYXQgcHJlc3NfeCwgb3V0IGZsb2F0IHByZXNzX3kpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuOCIpXQorIAkJcHVibGljIHZvaWQgZ2V0X3JlbGVhc2VfY29vcmRzICh1aW50IHBvaW50LCBv dXQgZmxvYXQgcmVsZWFzZV94LCBvdXQgZmxvYXQgcmVsZWFzZV95KTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkV2ZW50U2VxdWVuY2Ug Z2V0X3NlcXVlbmNlICh1aW50IHBvaW50KTsKK0BAIC02MjQ2LDkgKzU4MTUsMTMgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJcHVibGljIGZsb2F0IHRocmVzaG9sZF90cmlnZ2VyX2Rpc3RhbmNl X3kgeyBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKyAJ CXB1YmxpYyBDbHV0dGVyLkdlc3R1cmVUcmlnZ2VyRWRnZSB0aHJlc2hvbGRfdHJpZ2dlcl9lZGdl IHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1 YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIGdlc3R1cmVfYmVnaW4gKENsdXR0ZXIuQWN0b3IgYWN0 b3IpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZpcnR1YWwgc2ln bmFsIHZvaWQgZ2VzdHVyZV9jYW5jZWwgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgZ2VzdHVy ZV9lbmQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIp XQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgZ2VzdHVyZV9wcm9ncmVzcyAoQ2x1dHRl ci5BY3RvciBhY3Rvcik7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2dyaWRfbGF5b3V0X2dldF90eXBlICgp IildCitAQCAtNjI3OCwxOSArNTg1MSw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1Ymxp YyBib29sIHJvd19ob21vZ2VuZW91cyB7IGdldDsgc2V0OyB9CisgCQlwdWJsaWMgdWludCByb3df c3BhY2luZyB7IGdldDsgc2V0OyB9CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2dyb3VwX2dldF90eXBlICgp IildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGNsYXNzIEdyb3VwIDog Q2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0 ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1 YmxpYyBHcm91cCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC4yIildCistCQlwdWJsaWMgaW50IGdldF9uX2No aWxkcmVuICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIu QWN0b3IgZ2V0X250aF9jaGlsZCAoaW50IGluZGV4Xyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcmVt b3ZlX2FsbCAoKTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfaW1hZ2VfZ2V0X3R5cGUgKCkiKV0KKyAJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGNsYXNzIEltYWdlIDogR0xpYi5PYmpl Y3QsIENsdXR0ZXIuQ29udGVudCB7CitAQCAtNjMwNiw2ICs1ODY2LDggQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAlwdWJsaWMgY2xhc3MgSW5wdXREZXZpY2UgOiBHTGliLk9iamVjdCB7CisgCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgSW5w dXREZXZpY2UgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgdW5v d25lZCBDbHV0dGVyLkFjdG9yIGdldF9hY3RvciAoQ2x1dHRlci5FdmVudFNlcXVlbmNlPyBzZXF1 ZW5jZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgdW5vd25lZCBD bHV0dGVyLklucHV0RGV2aWNlIGdldF9hc3NvY2lhdGVkX2RldmljZSAoKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjYiKV0KK0BAIC02MzEzLDcgKzU4NzUsNyBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgYm9vbCBnZXRfYXhp c192YWx1ZSAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGRvdWJsZVtdIGF4ZXMsIENs dXR0ZXIuSW5wdXRBeGlzIGF4aXMsIG91dCBkb3VibGUgdmFsdWUpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBib29sIGdldF9jb29yZHMgKENsdXR0ZXIuRXZlbnRT ZXF1ZW5jZT8gc2VxdWVuY2UsIENsdXR0ZXIuUG9pbnQgcG9pbnQpOworKwkJcHVibGljIGJvb2wg Z2V0X2Nvb3JkcyAoQ2x1dHRlci5FdmVudFNlcXVlbmNlPyBzZXF1ZW5jZSwgR3JhcGhlbmUuUG9p bnQgcG9pbnQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIGludCBn ZXRfZGV2aWNlX2lkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTYzMjUs MTIgKzU4ODcsOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5JbnB1 dERldmljZVR5cGUgZ2V0X2RldmljZV90eXBlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NiIpXQorIAkJcHVibGljIGJvb2wgZ2V0X2VuYWJsZWQgKCk7CistCQlbQ0NvZGUgKGNuYW1lID0g ImNsdXR0ZXJfZ2V0X2lucHV0X2RldmljZV9mb3JfaWQiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44IildCist CQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5JbnB1dERldmljZSBnZXRfZm9yX2lkIChp bnQgaWRfKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdW5vd25l ZCBDbHV0dGVyLkFjdG9yIGdldF9ncmFiYmVkX2FjdG9yICgpOworLQkJcHVibGljIGludCBnZXRf Z3JvdXBfbl9tb2RlcyAoaW50IGdyb3VwKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGludCBnZXRfZ3Jv dXBfbl9tb2RlcyAoaW50IGdyb3VwKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJ CXB1YmxpYyBib29sIGdldF9oYXNfY3Vyc29yICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NiIpXQorQEAgLTYzNDYsMjMgKzU5MDUsMjEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVi bGljIGludCBnZXRfbl9tb2RlX2dyb3VwcyAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X25fcmluZ3Mg KCk7CisgCQlwdWJsaWMgaW50IGdldF9uX3N0cmlwcyAoKTsKKy0JCXB1YmxpYyBib29sIGdldF9w aHlzaWNhbF9zaXplIChkb3VibGUgd2lkdGgsIGRvdWJsZSBoZWlnaHQpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfcG9p bnRlcl9hY3RvciAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB1 bm93bmVkIENsdXR0ZXIuU3RhZ2UgZ2V0X3BvaW50ZXJfc3RhZ2UgKCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4yMiIpXQorIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9wcm9kdWN0X2lk ICgpOworKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5TZWF0IGdldF9zZWF0ICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIENsdXR0ZXIu SW5wdXREZXZpY2U+IGdldF9zbGF2ZV9kZXZpY2VzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMjIiKV0KKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfdmVuZG9yX2lkICgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIGdyYWIgKENsdXR0ZXIu QWN0b3IgYWN0b3IpOworLQkJcHVibGljIGJvb2wgaXNfZ3JvdXBlZCAoQ2x1dHRlci5JbnB1dERl dmljZSBvdGhlcl9kZXZpY2UpOworLQkJcHVibGljIGJvb2wgaXNfbW9kZV9zd2l0Y2hfYnV0dG9u ICh1aW50IGdyb3VwLCB1aW50IGJ1dHRvbik7CisrCQlwdWJsaWMgdmlydHVhbCBib29sIGlzX2dy b3VwZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb3RoZXJfZGV2aWNlKTsKKysJCXB1YmxpYyB2aXJ0 dWFsIGJvb2wgaXNfbW9kZV9zd2l0Y2hfYnV0dG9uICh1aW50IGdyb3VwLCB1aW50IGJ1dHRvbik7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIGJvb2wga2V5Y29kZV90 b19ldmRldiAodWludCBoYXJkd2FyZV9rZXljb2RlLCB1aW50IGV2ZGV2X2tleWNvZGUpOworKwkJ cHVibGljIHZpcnR1YWwgYm9vbCBrZXljb2RlX3RvX2V2ZGV2ICh1aW50IGhhcmR3YXJlX2tleWNv ZGUsIHVpbnQgZXZkZXZfa2V5Y29kZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQor IAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBzZXF1ZW5jZV9nZXRfZ3JhYmJlZF9hY3Rv ciAoQ2x1dHRlci5FdmVudFNlcXVlbmNlIHNlcXVlbmNlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEyIildCitAQCAtNjM3OCwxMiArNTkzNSwxMSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlwdWJsaWMgdm9pZCB1bmdyYWIgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisg CQlwdWJsaWMgdm9pZCB1cGRhdGVfZnJvbV9ldmVudCAoQ2x1dHRlci5FdmVudCBldmVudCwgYm9v bCB1cGRhdGVfc3RhZ2UpOworKwkJW05vV3JhcHBlcl0KKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQg dXBkYXRlX2Zyb21fdG9vbCAoQ2x1dHRlci5JbnB1dERldmljZVRvb2wgdG9vbCk7CisgCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBD bHV0dGVyLkJhY2tlbmQgYmFja2VuZCB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBD bHV0dGVyLkRldmljZU1hbmFnZXIgZGV2aWNlX21hbmFnZXIgeyBvd25lZCBnZXQ7IGNvbnN0cnVj dDsgfQorIAkJcHVibGljIENsdXR0ZXIuSW5wdXRNb2RlIGRldmljZV9tb2RlIHsgZ2V0OyBjb25z dHJ1Y3Q7IH0KKyAJCXB1YmxpYyBzdHJpbmcgZGV2aWNlX25vZGUgeyBnZXQ7IGNvbnN0cnVjdDsg fQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorQEAgLTY0MDYsNiArNTk2Miw3IEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBzdHJpbmcgbmFtZSB7IG93bmVkIGdldDsgY29u c3RydWN0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yMiIpXQorIAkJcHVibGljIHN0cmlu ZyBwcm9kdWN0X2lkIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCXB1YmxpYyBDbHV0dGVyLlNlYXQg c2VhdCB7IGdldDsgY29uc3RydWN0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yMiIpXQor IAkJcHVibGljIHN0cmluZyB2ZW5kb3JfaWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorIAl9CitAQCAt NjQzMCw3ICs1OTg3LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW05vV3JhcHBlcl0KKyAJ CXB1YmxpYyB2aXJ0dWFsIHZvaWQgY29tbWl0X3RleHQgKHN0cmluZyB0ZXh0KTsKKyAJCVtOb1dy YXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGRlbGV0ZV9zdXJyb3VuZGluZyAodWludCBv ZmZzZXQsIHVpbnQgbGVuKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZGVsZXRlX3N1cnJvdW5k aW5nIChpbnQgb2Zmc2V0LCB1aW50IGxlbik7CisgCQlwdWJsaWMgYm9vbCBmaWx0ZXJfa2V5X2V2 ZW50IChDbHV0dGVyLktleUV2ZW50IGtleSk7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZp cnR1YWwgdm9pZCBmb2N1c19pbiAoQ2x1dHRlci5JbnB1dE1ldGhvZCBpbnB1dF9tZXRob2QpOwor QEAgLTY0NDMsNyArNjAwMCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lk IHNldF9jYW5fc2hvd19wcmVlZGl0IChib29sIGNhbl9zaG93X3ByZWVkaXQpOworIAkJcHVibGlj IHZvaWQgc2V0X2NvbnRlbnRfaGludHMgKENsdXR0ZXIuSW5wdXRDb250ZW50SGludEZsYWdzIGhp bnQpOworIAkJcHVibGljIHZvaWQgc2V0X2NvbnRlbnRfcHVycG9zZSAoQ2x1dHRlci5JbnB1dENv bnRlbnRQdXJwb3NlIHB1cnBvc2UpOworLQkJcHVibGljIHZvaWQgc2V0X2N1cnNvcl9sb2NhdGlv biAoQ2x1dHRlci5SZWN0IHJlY3QpOworKwkJcHVibGljIHZvaWQgc2V0X2N1cnNvcl9sb2NhdGlv biAoR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9pbnB1dF9wYW5lbF9z dGF0ZSAoQ2x1dHRlci5JbnB1dFBhbmVsU3RhdGUgc3RhdGUpOworIAkJW05vV3JhcHBlcl0KKyAJ CXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2V0X3ByZWVkaXRfdGV4dCAoc3RyaW5nIHByZWVkaXQsIHVp bnQgY3Vyc29yKTsKK0BAIC02NDYyLDcgKzYwMTksNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCByZXNldCAoKTsKKyAJCVtOb1dy YXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNldF9jdXJzb3JfbG9jYXRpb24gKENsdXR0 ZXIuUmVjdCByZWN0KTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2V0X2N1cnNvcl9sb2NhdGlv biAoR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9pbnB1dF9wYW5lbF9z dGF0ZSAoQ2x1dHRlci5JbnB1dFBhbmVsU3RhdGUgc3RhdGUpOworIAkJcHVibGljIHZvaWQgc2V0 X3ByZWVkaXRfdGV4dCAoc3RyaW5nPyBwcmVlZGl0LCB1aW50IGN1cnNvcik7CisgCQlbTm9XcmFw cGVyXQorQEAgLTY0NzksOSArNjAzNiw5IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1Ymxp YyBDbHV0dGVyLklucHV0Q29udGVudFB1cnBvc2UgY29udGVudF9wdXJwb3NlIHsgZ2V0OyBzZXQ7 IH0KKyAJCVtIYXNFbWl0dGVyXQorIAkJcHVibGljIHNpZ25hbCB2b2lkIGNvbW1pdCAoc3RyaW5n IHRleHQpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGN1cnNvcl9sb2NhdGlvbl9jaGFuZ2VkIChD bHV0dGVyLlJlY3Qgb2JqZWN0KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfbG9jYXRp b25fY2hhbmdlZCAoR3JhcGhlbmUuUmVjdCBvYmplY3QpOworIAkJW0hhc0VtaXR0ZXJdCistCQlw dWJsaWMgc2lnbmFsIHZvaWQgZGVsZXRlX3N1cnJvdW5kaW5nICh1aW50IG9mZnNldCwgdWludCBs ZW4pOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGRlbGV0ZV9zdXJyb3VuZGluZyAoaW50IG9mZnNl dCwgdWludCBsZW4pOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGlucHV0X3BhbmVsX3N0YXRlIChD bHV0dGVyLklucHV0UGFuZWxTdGF0ZSBvYmplY3QpOworIAkJW0hhc0VtaXR0ZXJdCisgCQlwdWJs aWMgc2lnbmFsIHZvaWQgcmVxdWVzdF9zdXJyb3VuZGluZyAoKTsKK0BAIC02NTU1LDI4ICs2MTEy LDI4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBLZXltYXAgKCk7CisgCQlwdWJsaWMgdmlydHVh bCBib29sIGdldF9jYXBzX2xvY2tfc3RhdGUgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBQYW5nby5E aXJlY3Rpb24gZ2V0X2RpcmVjdGlvbiAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgZ2V0X251 bV9sb2NrX3N0YXRlICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHN0YXRlX2NoYW5nZWQgKCk7 CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg dHlwZV9pZCA9ICJjbHV0dGVyX2xheWVyX25vZGVfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNs YXNzIExheWVyTm9kZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJQYWludE5vZGUqIildCisrCQlw dWJsaWMgTGF5ZXJOb2RlIChDb2dsLk1hdHJpeCBwcm9qZWN0aW9uLCBDYWlyby5SZWN0YW5nbGUg dmlld3BvcnQsIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIHVpbnQ4IG9wYWNpdHkpOworKwl9 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVf aWQgPSAiY2x1dHRlcl9sYXlvdXRfbWFuYWdlcl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAo c2luY2UgPSAiMS4yIildCisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBMYXlvdXRNYW5hZ2VyIDog R0xpYi5Jbml0aWFsbHlVbm93bmVkIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBMYXlvdXRNYW5hZ2VyICgpOworLQkJcHVibGljIHZp cnR1YWwgdm9pZCBhbGxvY2F0ZSAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVy LkFjdG9yQm94IGFsbG9jYXRpb24sIENsdXR0ZXIuQWxsb2NhdGlvbkZsYWdzIGZsYWdzKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuQWxwaGEg YmVnaW5fYW5pbWF0aW9uICh1aW50IGR1cmF0aW9uLCB1bG9uZyBtb2RlKTsKKysJCXB1YmxpYyB2 aXJ0dWFsIHZvaWQgYWxsb2NhdGUgKENsdXR0ZXIuQ29udGFpbmVyIGNvbnRhaW5lciwgQ2x1dHRl ci5BY3RvckJveCBhbGxvY2F0aW9uKTsKKyAJCXB1YmxpYyB2b2lkIGNoaWxkX2dldCAoQ2x1dHRl ci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yLCAuLi4pOworIAkJcHVi bGljIHZvaWQgY2hpbGRfZ2V0X3Byb3BlcnR5IChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIs IENsdXR0ZXIuQWN0b3IgYWN0b3IsIHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVlIHZh bHVlKTsKKyAJCXB1YmxpYyB2b2lkIGNoaWxkX3NldCAoQ2x1dHRlci5Db250YWluZXIgY29udGFp bmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yLCAuLi4pOworIAkJcHVibGljIHZvaWQgY2hpbGRfc2V0 X3Byb3BlcnR5IChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0 b3IsIHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVlIHZhbHVlKTsKKyAJCVtOb1dyYXBw ZXJdCisgCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuTGF5b3V0TWV0YSBjcmVhdGVf Y2hpbGRfbWV0YSAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFj dG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGVuZF9hbmlt YXRpb24gKCk7CisgCQlwdWJsaWMgdW5vd25lZCBHTGliLlBhcmFtU3BlYyBmaW5kX2NoaWxkX3By b3BlcnR5IChzdHJpbmcgbmFtZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZpcnR1 YWwgZG91YmxlIGdldF9hbmltYXRpb25fcHJvZ3Jlc3MgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkxheW91dE1ldGEgZ2V0X2NoaWxk X21ldGEgKENsdXR0ZXIuQ29udGFpbmVyIGNvbnRhaW5lciwgQ2x1dHRlci5BY3RvciBhY3Rvcik7 CisgCQlbTm9XcmFwcGVyXQorQEAgLTY2MzIsMTIgKzYxODksMTIgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJcHJvdGVjdGVkIE9mZnNjcmVlbkVmZmVjdCAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFs IENvZ2wuSGFuZGxlIGNyZWF0ZV90ZXh0dXJlIChmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMgYm9vbCBnZXRfdGFyZ2V0 X3JlY3QgKG91dCB1bm93bmVkIENsdXR0ZXIuUmVjdCByZWN0KTsKKysJCXB1YmxpYyBib29sIGdl dF90YXJnZXRfcmVjdCAob3V0IHVub3duZWQgR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE0Iiwgc2luY2Ug PSAiMS44IildCisgCQlwdWJsaWMgYm9vbCBnZXRfdGFyZ2V0X3NpemUgKG91dCBmbG9hdCB3aWR0 aCwgb3V0IGZsb2F0IGhlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJ cHVibGljIHVub3duZWQgQ29nbC5IYW5kbGUgZ2V0X3RleHR1cmUgKCk7CistCQlwdWJsaWMgdmly dHVhbCB2b2lkIHBhaW50X3RhcmdldCAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGFpbnRf dGFyZ2V0IChDbHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0KTsKKyAJfQorIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNs dXR0ZXJfcGFnZV90dXJuX2VmZmVjdF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2Ug PSAiMS40IildCitAQCAtNjY1NCw2ICs2MjExLDE3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CXB1YmxpYyBkb3VibGUgcGVyaW9kIHsgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyBmbG9hdCByYWRp dXMgeyBnZXQ7IHNldDsgfQorIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIsIHJlZl9mdW5jdGlvbiA9ICJjbHV0dGVyX3BhaW50X2NvbnRleHRfcmVm IiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BhaW50X2NvbnRleHRfZ2V0X3R5cGUgKCkiLCB1bnJlZl9m dW5jdGlvbiA9ICJjbHV0dGVyX3BhaW50X2NvbnRleHRfdW5yZWYiKV0KKysJW0NvbXBhY3RdCisr CXB1YmxpYyBjbGFzcyBQYWludENvbnRleHQgeworKwkJcHVibGljIHZvaWQgZGVzdHJveSAoKTsK KysJCXB1YmxpYyB1bm93bmVkIENvZ2wuRnJhbWVidWZmZXIgZ2V0X2ZyYW1lYnVmZmVyICgpOwor KwkJcHVibGljIHVub3duZWQgQ2Fpcm8uUmVnaW9uIGdldF9yZWRyYXdfY2xpcCAoKTsKKysJCXB1 YmxpYyB2b2lkIHBvcF9mcmFtZWJ1ZmZlciAoKTsKKysJCXB1YmxpYyB2b2lkIHB1c2hfZnJhbWVi dWZmZXIgKENvZ2wuRnJhbWVidWZmZXIgZnJhbWVidWZmZXIpOworKwkJcHVibGljIHVub3duZWQg Q2x1dHRlci5QYWludENvbnRleHQgQHJlZiAoKTsKKysJCXB1YmxpYyB2b2lkIHVucmVmICgpOwor Kwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5 cGVfaWQgPSAiY2x1dHRlcl9wYWludF9ub2RlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBQYWludE5vZGUgeworQEAg LTY2NjMsNyArNjIzMSw4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIGFk ZF9tdWx0aXRleHR1cmVfcmVjdGFuZ2xlIChDbHV0dGVyLkFjdG9yQm94IHJlY3QsIGZsb2F0IHRl eHRfY29vcmRzLCB1aW50IHRleHRfY29vcmRzX2xlbik7CisgCQlwdWJsaWMgdm9pZCBhZGRfcmVj dGFuZ2xlIChDbHV0dGVyLkFjdG9yQm94IHJlY3QpOworIAkJcHVibGljIHZvaWQgYWRkX3RleHR1 cmVfcmVjdGFuZ2xlIChDbHV0dGVyLkFjdG9yQm94IHJlY3QsIGZsb2F0IHhfMSwgZmxvYXQgeV8x LCBmbG9hdCB4XzIsIGZsb2F0IHlfMik7CistCQlwdWJsaWMgdm9pZCBwYWludCAoKTsKKysJCXB1 YmxpYyB1bm93bmVkIENvZ2wuRnJhbWVidWZmZXIgZ2V0X2ZyYW1lYnVmZmVyICgpOworKwkJcHVi bGljIHZvaWQgcGFpbnQgKENsdXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworIAkJ cHVibGljIHVub3duZWQgQ2x1dHRlci5QYWludE5vZGUgQHJlZiAoKTsKKyAJCXB1YmxpYyB2b2lk IHNldF9uYW1lIChzdHJpbmcgbmFtZSk7CisgCQlwdWJsaWMgdm9pZCB1bnJlZiAoKTsKK0BAIC02 NjgxLDcgKzYyNTAsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS42IildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X2hlaWdodCAoKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCBnZXRfb3JpZ2luICgpOwor KwkJcHVibGljIHZvaWQgZ2V0X29yaWdpbiAob3V0IHVub3duZWQgR3JhcGhlbmUuUG9pbnQzRCB2 ZXJ0ZXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIGZsb2F0IGdl dF93aWR0aCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KK0BAIC02NjkxLDcgKzYy NjAsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42Iild CisgCQlwdWJsaWMgdm9pZCBzZXRfaGVpZ2h0IChmbG9hdCBoZWlnaHQpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X29yaWdpbiAoQ2x1dHRlci5WZXJ0 ZXggb3JpZ2luKTsKKysJCXB1YmxpYyB2b2lkIHNldF9vcmlnaW4gKEdyYXBoZW5lLlBvaW50M0Qg b3JpZ2luKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyB2b2lkIHNl dF93aWR0aCAoZmxvYXQgd2lkdGgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorQEAg LTY3NzgsODggKzYzNDcsMjkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIENsdXR0 ZXIuUGF0aCBwYXRoIHsgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBub2RlX3Jl YWNoZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIHVpbnQgaW5kZXgpOworIAl9CisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHJlZl9mdW5jdGlvbiA9ICJj bHV0dGVyX3BpY2tfY29udGV4dF9yZWYiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGlja19jb250ZXh0 X2dldF90eXBlICgpIiwgdW5yZWZfZnVuY3Rpb24gPSAiY2x1dHRlcl9waWNrX2NvbnRleHRfdW5y ZWYiKV0KKysJW0NvbXBhY3RdCisrCXB1YmxpYyBjbGFzcyBQaWNrQ29udGV4dCB7CisrCQlwdWJs aWMgdm9pZCBkZXN0cm95ICgpOworKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5QaWNrQ29udGV4 dCBAcmVmICgpOworKwkJcHVibGljIHZvaWQgdW5yZWYgKCk7CisrCX0KKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3Bp cGVsaW5lX25vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K KyAJcHVibGljIGNsYXNzIFBpcGVsaW5lTm9kZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsKKyAJCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBQaXBl bGluZU5vZGUgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9u ID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wb2ludF9nZXRfdHlwZSAoKSIp XQorLQlbQ29tcGFjdF0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JcHVibGljIGNs YXNzIFBvaW50IHsKKy0JCXB1YmxpYyBmbG9hdCB4OworLQkJcHVibGljIGZsb2F0IHk7CistCQlw dWJsaWMgc3RhdGljIENsdXR0ZXIuUG9pbnQgYWxsb2MgKCk7CistCQlwdWJsaWMgQ2x1dHRlci5Q b2ludCBjb3B5ICgpOworLQkJcHVibGljIGZsb2F0IGRpc3RhbmNlIChDbHV0dGVyLlBvaW50IGIs IG91dCBmbG9hdCB4X2Rpc3RhbmNlLCBvdXQgZmxvYXQgeV9kaXN0YW5jZSk7CistCQlwdWJsaWMg Ym9vbCBlcXVhbHMgKENsdXR0ZXIuUG9pbnQgYik7CistCQlwdWJsaWMgdm9pZCBmcmVlICgpOwor LQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5Qb2ludCBpbml0IChmbG9hdCB4LCBmbG9hdCB5KTsK Ky0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLlBvaW50IHplcm8gKCk7CistCX0KKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9 ICJjbHV0dGVyX3Byb3BlcnR5X3RyYW5zaXRpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGNsYXNzIFByb3BlcnR5VHJhbnNpdGlvbiA6IENs dXR0ZXIuVHJhbnNpdGlvbiwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKyAJCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJUcmFuc2l0aW9uKiIpXQor IAkJcHVibGljIFByb3BlcnR5VHJhbnNpdGlvbiAoc3RyaW5nPyBwcm9wZXJ0eV9uYW1lKTsKKysJ CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJU cmFuc2l0aW9uKiIpXQorKwkJcHVibGljIFByb3BlcnR5VHJhbnNpdGlvbi5mb3JfYWN0b3IgKENs dXR0ZXIuQWN0b3IgYWN0b3IsIHN0cmluZz8gcHJvcGVydHlfbmFtZSk7CisgCQlwdWJsaWMgdW5v d25lZCBzdHJpbmcgZ2V0X3Byb3BlcnR5X25hbWUgKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfcHJv cGVydHlfbmFtZSAoc3RyaW5nPyBwcm9wZXJ0eV9uYW1lKTsKKy0JCXB1YmxpYyBzdHJpbmcgcHJv cGVydHlfbmFtZSB7IGdldDsgc2V0OyB9CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBm cmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9yZWN0X2dl dF90eXBlICgpIildCistCVtDb21wYWN0XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQor LQlwdWJsaWMgY2xhc3MgUmVjdCB7CistCQlwdWJsaWMgd2VhayBDbHV0dGVyLlBvaW50IG9yaWdp bjsKKy0JCXB1YmxpYyB3ZWFrIENsdXR0ZXIuU2l6ZSBzaXplOworLQkJcHVibGljIHN0YXRpYyBD bHV0dGVyLlJlY3QgYWxsb2MgKCk7CistCQlwdWJsaWMgdm9pZCBjbGFtcF90b19waXhlbCAoKTsK Ky0JCXB1YmxpYyBib29sIGNvbnRhaW5zX3BvaW50IChDbHV0dGVyLlBvaW50IHBvaW50KTsKKy0J CXB1YmxpYyBib29sIGNvbnRhaW5zX3JlY3QgKENsdXR0ZXIuUmVjdCBiKTsKKy0JCXB1YmxpYyBD bHV0dGVyLlJlY3QgY29weSAoKTsKKy0JCXB1YmxpYyBib29sIGVxdWFscyAoQ2x1dHRlci5SZWN0 IGIpOworLQkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9jZW50ZXIg KENsdXR0ZXIuUG9pbnQgY2VudGVyKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfaGVpZ2h0ICgpOwor LQkJcHVibGljIGZsb2F0IGdldF93aWR0aCAoKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfeCAoKTsK Ky0JCXB1YmxpYyBmbG9hdCBnZXRfeSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuUmVj dCBpbml0IChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKy0J CXB1YmxpYyB2b2lkIGluc2V0IChmbG9hdCBkX3gsIGZsb2F0IGRfeSk7CistCQlwdWJsaWMgYm9v bCBpbnRlcnNlY3Rpb24gKENsdXR0ZXIuUmVjdCBiLCBDbHV0dGVyLlJlY3Q/IHJlcyk7CistCQlw dWJsaWMgQ2x1dHRlci5SZWN0IG5vcm1hbGl6ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIG9mZnNldCAo ZmxvYXQgZF94LCBmbG9hdCBkX3kpOworLQkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IHNfeCwg ZmxvYXQgc195KTsKKy0JCXB1YmxpYyB2b2lkIHVuaW9uIChDbHV0dGVyLlJlY3QgYiwgQ2x1dHRl ci5SZWN0IHJlcyk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5SZWN0IHplcm8g KCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgdHlwZV9pZCA9ICJjbHV0dGVyX3JlY3RhbmdsZV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lv biAoc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBjbGFzcyBSZWN0YW5nbGUgOiBDbHV0dGVyLkFj dG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWlu ZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIFJlY3Rh bmdsZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEwIiwgc2luY2UgPSAiMC4yIildCistCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBnZXRf Ym9yZGVyX2NvbG9yICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0KKy0JCXB1YmxpYyB1aW50IGdldF9i b3JkZXJfd2lkdGggKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENsdXR0ZXIuQ29sb3IgZ2V0X2NvbG9yICgp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ib3JkZXJfY29sb3IgKENsdXR0ZXIuQ29sb3IgY29s b3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ib3JkZXJfd2lkdGgg KHVpbnQgd2lkdGgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2xvciAoQ2x1dHRlci5Db2xv ciBjb2xvcik7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlw ZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIFJlY3RhbmdsZS53aXRoX2NvbG9y IChDbHV0dGVyLkNvbG9yIGNvbG9yKTsKKy0JCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGJvcmRlcl9j b2xvciB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgdWludCBib3JkZXJfd2lkdGggeyBnZXQ7IHNl dDsgfQorLQkJcHVibGljIENsdXR0ZXIuQ29sb3IgY29sb3IgeyBnZXQ7IHNldDsgfQorLQkJW05v QWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBoYXNfYm9yZGVyIHsgZ2V0OyBzZXQ7IH0K KysJCXB1YmxpYyB2b2lkIHNldF9wcm9wZXJ0eV9uYW1lIChzdHJpbmc/IHByb3BlcnR5X25hbWUp OworKwkJcHVibGljIHN0cmluZyBwcm9wZXJ0eV9uYW1lIHsgZ2V0OyBzZXQ7IH0KKyAJfQorIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0g ImNsdXR0ZXJfcm9vdF9ub2RlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBjbGFzcyBSb290Tm9k ZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsKK0BAIC02ODgwLDE1ICs2MzkwLDExIEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBTY3JpcHQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MC44IildCisgCQlwdWJsaWMgdm9pZCBhZGRfc2VhcmNoX3BhdGhzIChbQ0NvZGUgKGFycmF5X2xl bmd0aF9jbmFtZSA9ICJuX3BhdGhzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDEuMSwgYXJyYXlfbGVu Z3RoX3R5cGUgPSAiZ3NpemUiKV0gc3RyaW5nW10gcGF0aHMpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjgiKV0K Ky0JCXB1YmxpYyB2b2lkIGFkZF9zdGF0ZXMgKHN0cmluZz8gbmFtZSwgQ2x1dHRlci5TdGF0ZSBz dGF0ZSk7CisgCQlwdWJsaWMgdm9pZCBjb25uZWN0X3NpZ25hbHMgKHZvaWQqIHVzZXJfZGF0YSk7 CisgCQlwdWJsaWMgdm9pZCBjb25uZWN0X3NpZ25hbHNfZnVsbCAoQ2x1dHRlci5TY3JpcHRDb25u ZWN0RnVuYyBmdW5jKTsKKyAJCXB1YmxpYyB2b2lkIGVuc3VyZV9vYmplY3RzICgpOworIAkJcHVi bGljIHVub3duZWQgR0xpYi5PYmplY3QgZ2V0X29iamVjdCAoc3RyaW5nIG5hbWUpOworIAkJcHVi bGljIGludCBnZXRfb2JqZWN0cyAoLi4uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS44IildCistCQlwdWJsaWMg dW5vd25lZCBDbHV0dGVyLlN0YXRlIGdldF9zdGF0ZXMgKHN0cmluZz8gbmFtZSk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF90cmFu c2xhdGlvbl9kb21haW4gKCk7CisgCQlwdWJsaWMgdmlydHVhbCBHTGliLlR5cGUgZ2V0X3R5cGVf ZnJvbV9uYW1lIChzdHJpbmcgdHlwZV9uYW1lKTsKK0BAIC02OTE2LDggKzY0MjIsOCBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCisgCQlwdWJsaWMgU2Nyb2xsQWN0b3IgKCk7Cisg CQlwdWJsaWMgQ2x1dHRlci5TY3JvbGxNb2RlIGdldF9zY3JvbGxfbW9kZSAoKTsKKy0JCXB1Ymxp YyB2b2lkIHNjcm9sbF90b19wb2ludCAoQ2x1dHRlci5Qb2ludCBwb2ludCk7CistCQlwdWJsaWMg dm9pZCBzY3JvbGxfdG9fcmVjdCAoQ2x1dHRlci5SZWN0IHJlY3QpOworKwkJcHVibGljIHZvaWQg c2Nyb2xsX3RvX3BvaW50IChHcmFwaGVuZS5Qb2ludCBwb2ludCk7CisrCQlwdWJsaWMgdm9pZCBz Y3JvbGxfdG9fcmVjdCAoR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9z Y3JvbGxfbW9kZSAoQ2x1dHRlci5TY3JvbGxNb2RlIG1vZGUpOworIAkJcHVibGljIENsdXR0ZXIu U2Nyb2xsTW9kZSBzY3JvbGxfbW9kZSB7IGdldDsgc2V0OyB9CisgCX0KK0BAIC02OTM5LDYgKzY0 NDUsNDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGZsb2F0IHg7CisgCQlwdWJs aWMgZmxvYXQgeTsKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfc2VhdF9nZXRfdHlwZSAoKSIpXQorKwlwdWJs aWMgYWJzdHJhY3QgY2xhc3MgU2VhdCA6IEdMaWIuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBTZWF0ICgpOworKwkJW05v V3JhcHBlcl0KKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYXBwbHlfa2JkX2ExMXlfc2V0dGluZ3Mg KENsdXR0ZXIuS2JkQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZv aWQgYmVsbF9ub3RpZnkgKCk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIGNvbXByZXNzX21vdGlv biAoQ2x1dHRlci5FdmVudCBldmVudCwgQ2x1dHRlci5FdmVudCB0b19kaXNjYXJkKTsKKysJCVtO b1dyYXBwZXJdCisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIGNvcHlfZXZlbnRfZGF0YSAoQ2x1dHRl ci5FdmVudCBzcmMsIENsdXR0ZXIuRXZlbnQgZGVzdCk7CisrCQlwdWJsaWMgdmlydHVhbCBDbHV0 dGVyLlZpcnR1YWxJbnB1dERldmljZSBjcmVhdGVfdmlydHVhbF9kZXZpY2UgKENsdXR0ZXIuSW5w dXREZXZpY2VUeXBlIGRldmljZV90eXBlKTsKKysJCXB1YmxpYyB2b2lkIGVuc3VyZV9hMTF5X3N0 YXRlICgpOworKwkJW05vV3JhcHBlcl0KKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZnJlZV9ldmVu dF9kYXRhIChDbHV0dGVyLkV2ZW50IGV2ZW50KTsKKysJCXB1YmxpYyB2b2lkIGdldF9rYmRfYTEx eV9zZXR0aW5ncyAoQ2x1dHRlci5LYmRBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworKwkJcHVibGlj IHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLklucHV0RGV2aWNlIGdldF9rZXlib2FyZCAoKTsKKysJ CXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5LZXltYXAgZ2V0X2tleW1hcCAoKTsKKysJ CXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5JbnB1dERldmljZSBnZXRfcG9pbnRlciAo KTsKKysJCXB1YmxpYyB2b2lkIGdldF9wb2ludGVyX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuUG9p bnRlckExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CisrCQlwdWJsaWMgYm9vbCBnZXRfdG91Y2hfbW9k ZSAoKTsKKysJCXB1YmxpYyB2b2lkIGluaGliaXRfdW5mb2N1cyAoKTsKKysJCXB1YmxpYyBib29s IGlzX3VuZm9jdXNfaW5oaWJpdGVkICgpOworKwkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIENsdXR0 ZXIuSW5wdXREZXZpY2U+IGxpc3RfZGV2aWNlcyAoKTsKKysJCXB1YmxpYyB2b2lkIHNldF9rYmRf YTExeV9zZXR0aW5ncyAoQ2x1dHRlci5LYmRBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworKwkJcHVi bGljIHZvaWQgc2V0X3BvaW50ZXJfYTExeV9kd2VsbF9jbGlja190eXBlIChDbHV0dGVyLlBvaW50 ZXJBMTF5RHdlbGxDbGlja1R5cGUgY2xpY2tfdHlwZSk7CisrCQlwdWJsaWMgdm9pZCBzZXRfcG9p bnRlcl9hMTF5X3NldHRpbmdzIChDbHV0dGVyLlBvaW50ZXJBMTF5U2V0dGluZ3Mgc2V0dGluZ3Mp OworKwkJcHVibGljIHZvaWQgdW5pbmhpYml0X3VuZm9jdXMgKCk7CisrCQlwdWJsaWMgdmlydHVh bCB2b2lkIHdhcnBfcG9pbnRlciAoaW50IHgsIGludCB5KTsKKysJCVtOb0FjY2Vzc29yTWV0aG9k XQorKwkJcHVibGljIENsdXR0ZXIuQmFja2VuZCBiYWNrZW5kIHsgb3duZWQgZ2V0OyBjb25zdHJ1 Y3Q7IH0KKysJCXB1YmxpYyBib29sIHRvdWNoX21vZGUgeyBnZXQ7IH0KKysJCXB1YmxpYyBzaWdu YWwgdm9pZCBkZXZpY2VfYWRkZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0KTsKKysJCXB1 YmxpYyBzaWduYWwgdm9pZCBkZXZpY2VfcmVtb3ZlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvYmpl Y3QpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGlzX3VuZm9jdXNfaW5oaWJpdGVkX2NoYW5nZWQg KCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQga2JkX2ExMXlfZmxhZ3NfY2hhbmdlZCAodWludCBz ZXR0aW5nc19mbGFncywgdWludCBjaGFuZ2VkX21hc2spOworKwkJcHVibGljIHNpZ25hbCB2b2lk IGtiZF9hMTF5X21vZHNfc3RhdGVfY2hhbmdlZCAodWludCBsYXRjaGVkX21hc2ssIHVpbnQgbG9j a2VkX21hc2spOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHB0cl9hMTF5X2R3ZWxsX2NsaWNrX3R5 cGVfY2hhbmdlZCAoQ2x1dHRlci5Qb2ludGVyQTExeUR3ZWxsQ2xpY2tUeXBlIGNsaWNrX3R5cGUp OworKwkJcHVibGljIHNpZ25hbCB2b2lkIHB0cl9hMTF5X3RpbWVvdXRfc3RhcnRlZCAoQ2x1dHRl ci5JbnB1dERldmljZSBkZXZpY2UsIENsdXR0ZXIuUG9pbnRlckExMXlUaW1lb3V0VHlwZSB0aW1l b3V0X3R5cGUsIHVpbnQgZGVsYXkpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHB0cl9hMTF5X3Rp bWVvdXRfc3RvcHBlZCAoQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UsIENsdXR0ZXIuUG9pbnRl ckExMXlUaW1lb3V0VHlwZSB0aW1lb3V0X3R5cGUsIGJvb2wgY2xpY2tlZCk7CisrCQlwdWJsaWMg c2lnbmFsIHZvaWQgdG9vbF9jaGFuZ2VkIChDbHV0dGVyLklucHV0RGV2aWNlIG9iamVjdCwgQ2x1 dHRlci5JbnB1dERldmljZVRvb2wgcDApOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zZXR0aW5nc19nZXRf dHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBjbGFzcyBT ZXR0aW5ncyA6IEdMaWIuT2JqZWN0IHsKK0BAIC03MDExLDE4ICs2NTU4LDYgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQor IAkJcHJvdGVjdGVkIFNoYWRlck1hdHJpeCAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29w eSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3Np emVfZ2V0X3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEy IildCistCXB1YmxpYyBjbGFzcyBTaXplIHsKKy0JCXB1YmxpYyBmbG9hdCBoZWlnaHQ7CistCQlw dWJsaWMgZmxvYXQgd2lkdGg7CistCQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuU2l6ZSBhbGxvYyAo KTsKKy0JCXB1YmxpYyBDbHV0dGVyLlNpemUgY29weSAoKTsKKy0JCXB1YmxpYyBib29sIGVxdWFs cyAoQ2x1dHRlci5TaXplIGIpOworLQkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCXB1YmxpYyB1 bm93bmVkIENsdXR0ZXIuU2l6ZSBpbml0IChmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKy0J fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBl X2lkID0gImNsdXR0ZXJfc25hcF9jb25zdHJhaW50X2dldF90eXBlICgpIildCisgCVtWZXJzaW9u IChzaW5jZSA9ICIxLjYiKV0KKyAJcHVibGljIGNsYXNzIFNuYXBDb25zdHJhaW50IDogQ2x1dHRl ci5Db25zdHJhaW50IHsKK0BAIC03MDQzLDEzNSArNjU3OCw2NiBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgdHlwZV9pZCA9ICJjbHV0dGVyX3N0YWdlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChz aW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGNsYXNzIFN0YWdlIDogQ2x1dHRlci5Hcm91cCwgQXRr LkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0 dGVyLlNjcmlwdGFibGUgeworKwlwdWJsaWMgY2xhc3MgU3RhZ2UgOiBDbHV0dGVyLkFjdG9yLCBB dGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENs dXR0ZXIuU2NyaXB0YWJsZSB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44 IildCisgCQlwdWJsaWMgU3RhZ2UgKCk7CistCQlwdWJsaWMgYm9vbCBjYXB0dXJlIChib29sIHBh aW50LCBDYWlyby5SZWN0YW5nbGVJbnQgcmVjdCwgQ2x1dHRlci5DYXB0dXJlIGNhcHR1cmVzLCBp bnQgbl9jYXB0dXJlcyk7CisgCQlwdWJsaWMgdm9pZCBjYXB0dXJlX2ludG8gKGJvb2wgcGFpbnQs IENhaXJvLlJlY3RhbmdsZUludCByZWN0LCB1aW50OCBkYXRhKTsKKysJCXB1YmxpYyB2b2lkIGNs ZWFyX3N0YWdlX3ZpZXdzICgpOworIAkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX3N0YWdlX2V2 ZW50IildCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisgCQlwdWJsaWMgYm9vbCBlbWl0 X2V2ZW50IChDbHV0dGVyLkV2ZW50IGV2ZW50KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdm9pZCBlbnN1cmVfY3VycmVudCAoKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGVuc3VyZV9yZWRy YXcgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBlbnN1 cmVfdmlld3BvcnQgKCk7CistCQlwdWJsaWMgdm9pZCBmcmVlemVfdXBkYXRlcyAoKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBib29sIGdldF9hY2NlcHRfZm9jdXMg KCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9hY3Rvcl9hdF9wb3MgKENs dXR0ZXIuUGlja01vZGUgcGlja19tb2RlLCBpbnQgeCwgaW50IHkpOworKwkJcHVibGljIHVub3du ZWQgQ2x1dHRlci5BY3RvciBnZXRfYWN0b3JfYXRfcG9zIChDbHV0dGVyLlBpY2tNb2RlIHBpY2tf bW9kZSwgZmxvYXQgeCwgZmxvYXQgeSk7CisgCQlwdWJsaWMgYm9vbCBnZXRfY2FwdHVyZV9maW5h bF9zaXplIChDYWlyby5SZWN0YW5nbGVJbnQgcmVjdCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBm bG9hdCBzY2FsZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENsdXR0ZXIuQ29sb3IgZ2V0X2NvbG9yICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi KV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLlN0YWdlIGdldF9kZWZhdWx0ICgp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkZvZyBnZXRfZm9nICgpOwor IAkJcHVibGljIGludDY0IGdldF9mcmFtZV9jb3VudGVyICgpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2Z1bGxzY3JlZW4gKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9r ZXlfZm9jdXMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgdm9p ZCBnZXRfbWluaW11bV9zaXplIChvdXQgdWludCB3aWR0aCwgb3V0IHVpbnQgaGVpZ2h0KTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyBib29sIGdldF9tb3Rpb25fZXZl bnRzX2VuYWJsZWQgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMg Ym9vbCBnZXRfbm9fY2xlYXJfaGludCAoKTsKKyAJCXB1YmxpYyBDbHV0dGVyLlBlcnNwZWN0aXZl IGdldF9wZXJzcGVjdGl2ZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1 YmxpYyBDYWlyby5SZWN0YW5nbGVJbnQgZ2V0X3JlZHJhd19jbGlwX2JvdW5kcyAoKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBib29sIGdldF90aHJvdHRsZV9tb3Rp b25fZXZlbnRzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAkJcHVibGljIHVu b3duZWQgc3RyaW5nIGdldF90aXRsZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0K KyAJCXB1YmxpYyBib29sIGdldF91c2VfYWxwaGEgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorLQkJ cHVibGljIGJvb2wgZ2V0X3VzZV9mb2cgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40Iild CistCQlwdWJsaWMgYm9vbCBnZXRfdXNlcl9yZXNpemFibGUgKCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC40IildCistCQlwdWJsaWMgdm9pZCBoaWRlX2N1cnNvciAoKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAi MC44IildCistCQlwdWJsaWMgYm9vbCBpc19kZWZhdWx0ICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjgiKV0K Ky0JCXB1YmxpYyB2b2lkIHF1ZXVlX3JlZHJhdyAoKTsKKysJCXB1YmxpYyBib29sIHBhaW50X3Rv X2J1ZmZlciAoQ2Fpcm8uUmVjdGFuZ2xlSW50IHJlY3QsIGZsb2F0IHNjYWxlLCB1aW50OCBkYXRh LCBpbnQgc3RyaWRlLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgQ2x1dHRlci5QYWludEZsYWcg cGFpbnRfZmxhZ3MpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIHZvaWQgcGFpbnRfdG9f ZnJhbWVidWZmZXIgKENvZ2wuRnJhbWVidWZmZXIgZnJhbWVidWZmZXIsIENhaXJvLlJlY3Rhbmds ZUludCByZWN0LCBmbG9hdCBzY2FsZSwgQ2x1dHRlci5QYWludEZsYWcgcGFpbnRfZmxhZ3MpOwor IAkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCisgCQlwdWJsaWMgdWludDhbXSByZWFk X3BpeGVscyAoaW50IHgsIGludCB5LCBpbnQgd2lkdGggPSAtMSwgaW50IGhlaWdodCA9IC0xKTsK Ky0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9yZWRyYXciKV0KKy0JCXB1YmxpYyB2b2lkIHJl ZHJhdyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9hY2NlcHRfZm9jdXMgKGJvb2wgYWNjZXB0X2ZvY3VzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBz ZXRfY29sb3IgKENsdXR0ZXIuQ29sb3IgY29sb3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9mb2cgKENsdXR0ZXIuRm9nIGZvZyk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZnVsbHNjcmVlbiAoYm9vbCBmdWxsc2NyZWVu KTsKKysJCXB1YmxpYyB2b2lkIHNjaGVkdWxlX3VwZGF0ZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9rZXlfZm9jdXMgKENsdXR0ZXIuQWN0b3I/ IGFjdG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB2b2lkIHNl dF9taW5pbXVtX3NpemUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9tb3Rpb25fZXZlbnRzX2VuYWJsZWQg KGJvb2wgZW5hYmxlZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMg dm9pZCBzZXRfbm9fY2xlYXJfaGludCAoYm9vbCBub19jbGVhcik7CistCQlwdWJsaWMgdm9pZCBz ZXRfcGVyc3BlY3RpdmUgKENsdXR0ZXIuUGVyc3BlY3RpdmUgcGVyc3BlY3RpdmUpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3Rocm90dGxlX21vdGlv bl9ldmVudHMgKGJvb2wgdGhyb3R0bGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQor IAkJcHVibGljIHZvaWQgc2V0X3RpdGxlIChzdHJpbmcgdGl0bGUpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMiIpXQorIAkJcHVibGljIHZvaWQgc2V0X3VzZV9hbHBoYSAoYm9vbCB1c2VfYWxw aGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91c2VfZm9nIChib29s IGZvZyk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdm9pZCBzZXRf dXNlcl9yZXNpemFibGUgKGJvb2wgcmVzaXphYmxlKTsKKy0JCXB1YmxpYyB2b2lkIHNob3dfY3Vy c29yICgpOworLQkJcHVibGljIHZvaWQgdGhhd191cGRhdGVzICgpOworLQkJcHVibGljIHZvaWQg dXBkYXRlX3Jlc291cmNlX3NjYWxlcyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0K Ky0JCXB1YmxpYyBib29sIGFjY2VwdF9mb2N1cyB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGlj IENsdXR0ZXIuQ29sb3IgY29sb3IgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlwdWJsaWMgYm9vbCBjdXJzb3JfdmlzaWJsZSB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIuRm9nIGZvZyB7IGdldDsgc2V0OyB9CistCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGZ1bGxzY3JlZW5fc2V0IHsgZ2V0OyB9Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgQ2x1dHRlci5BY3RvciBrZXlf Zm9jdXMgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVi bGljIGJvb2wgbm9fY2xlYXJfaGludCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIildCistCQlwdWJsaWMgYm9vbCBvZmZzY3JlZW4geyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNp b24gKHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIENsdXR0ZXIuUGVyc3BlY3RpdmUgcGVyc3Bl Y3RpdmUgeyBnZXQ7IHNldDsgfQorKwkJcHVibGljIENsdXR0ZXIuUGVyc3BlY3RpdmUgcGVyc3Bl Y3RpdmUgeyBnZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyBz dHJpbmcgdGl0bGUgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQor LQkJcHVibGljIGJvb2wgdXNlX2FscGhhIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42Iild CistCQlwdWJsaWMgYm9vbCB1c2VfZm9nIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBib29sIHVzZXJfcmVzaXphYmxlIHsgZ2V0OyBzZXQ7IH0K KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2 b2lkIGFjdGl2YXRlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjAiKV0KKy0JCXB1Ymxp YyBzaWduYWwgdm9pZCBhZnRlcl9wYWludCAoKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBhZnRl cl9wYWludCAoQ2x1dHRlci5TdGFnZVZpZXcgdmlldyk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQg YWZ0ZXJfdXBkYXRlIChDbHV0dGVyLlN0YWdlVmlldyB2aWV3KTsKKysJCXB1YmxpYyBzaWduYWwg dm9pZCBiZWZvcmVfcGFpbnQgKENsdXR0ZXIuU3RhZ2VWaWV3IHZpZXcpOworKwkJcHVibGljIHNp Z25hbCB2b2lkIGJlZm9yZV91cGRhdGUgKENsdXR0ZXIuU3RhZ2VWaWV3IHZpZXcpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgZGVh Y3RpdmF0ZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB2aXJ0 dWFsIHNpZ25hbCBib29sIGRlbGV0ZV9ldmVudCAoQ2x1dHRlci5FdmVudCBldmVudCk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBm dWxsc2NyZWVuICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZp cnR1YWwgc2lnbmFsIHZvaWQgdW5mdWxsc2NyZWVuICgpOworKwkJcHVibGljIHZpcnR1YWwgc2ln bmFsIHZvaWQgcGFpbnRfdmlldyAoQ2x1dHRlci5TdGFnZVZpZXcgdmlldywgQ2Fpcm8uUmVnaW9u IHJlZHJhd19jbGlwKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfc3RhZ2VfbWFuYWdlcl9nZXRfdHlwZSAo KSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCitAQCAtNzE4NSw4ICs2NjUxLDYgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVi bGljIEdMaWIuU0xpc3Q8d2VhayBDbHV0dGVyLlN0YWdlPiBsaXN0X3N0YWdlcyAoKTsKKyAJCXB1 YmxpYyB1bm93bmVkIEdMaWIuU0xpc3Q8Q2x1dHRlci5TdGFnZT4gcGVla19zdGFnZXMgKCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIiwg c2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdm9pZCBzZXRfZGVmYXVsdF9zdGFnZSAoQ2x1dHRl ci5TdGFnZSBzdGFnZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMg Q2x1dHRlci5TdGFnZSBkZWZhdWx0X3N0YWdlIHsgZ2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMC44IildCitAQCAtNzIwNiw2MyArNjY3MCwzMyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlwdWJsaWMgdWludDMyIHRpbWU7CisgCQlwdWJsaWMgQ2x1dHRlci5FdmVudFR5cGUgdHlwZTsK KyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0 eXBlX2lkID0gImNsdXR0ZXJfc3RhdGVfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjEuNCIpXQorLQlwdWJsaWMgY2xhc3MgU3RhdGUgOiBHTGliLk9iamVjdCwgQ2x1dHRlci5T Y3JpcHRhYmxlIHsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3N0YWdlX3ZpZXdfZ2V0X3R5cGUgKCkiKV0KKysJcHVi bGljIGNsYXNzIFN0YWdlVmlldyA6IEdMaWIuT2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgU3Rh dGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVpbnQgZ2V0X2R1cmF0aW9uIChz dHJpbmc/IHNvdXJjZV9zdGF0ZV9uYW1lLCBzdHJpbmc/IHRhcmdldF9zdGF0ZV9uYW1lKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS40IildCistCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgQ2x1dHRlci5TdGF0ZUtl eT4gZ2V0X2tleXMgKHN0cmluZz8gc291cmNlX3N0YXRlX25hbWUsIHN0cmluZz8gdGFyZ2V0X3N0 YXRlX25hbWUsIEdMaWIuT2JqZWN0PyBvYmplY3QsIHN0cmluZz8gcHJvcGVydHlfbmFtZSk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9zdGF0ZSAoKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgc3RyaW5nPiBnZXRf c3RhdGVzICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIu VGltZWxpbmUgZ2V0X3RpbWVsaW5lICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2 b2lkIHJlbW92ZV9rZXkgKHN0cmluZz8gc291cmNlX3N0YXRlX25hbWUsIHN0cmluZz8gdGFyZ2V0 X3N0YXRlX25hbWUsIEdMaWIuT2JqZWN0PyBvYmplY3QsIHN0cmluZz8gcHJvcGVydHlfbmFtZSk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2R1cmF0aW9uIChzdHJpbmc/ IHNvdXJjZV9zdGF0ZV9uYW1lLCBzdHJpbmc/IHRhcmdldF9zdGF0ZV9uYW1lLCB1aW50IGR1cmF0 aW9uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlN0YXRl IHNldF9rZXkgKHN0cmluZz8gc291cmNlX3N0YXRlX25hbWUsIHN0cmluZyB0YXJnZXRfc3RhdGVf bmFtZSwgR0xpYi5PYmplY3Qgb2JqZWN0LCBzdHJpbmcgcHJvcGVydHlfbmFtZSwgdWludCBtb2Rl LCBHTGliLlZhbHVlIHZhbHVlLCBkb3VibGUgcHJlX2RlbGF5LCBkb3VibGUgcG9zdF9kZWxheSk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5UaW1lbGluZSBz ZXRfc3RhdGUgKHN0cmluZyB0YXJnZXRfc3RhdGVfbmFtZSk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQor LQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5UaW1lbGluZSB3YXJwX3RvX3N0YXRlIChzdHJpbmcg dGFyZ2V0X3N0YXRlX25hbWUpOworKwkJcHJvdGVjdGVkIFN0YWdlVmlldyAoKTsKKysJCXB1Ymxp YyB2b2lkIGFzc2lnbl9uZXh0X3NjYW5vdXQgKENvZ2wuU2Nhbm91dCBzY2Fub3V0KTsKKysJCXB1 YmxpYyB1bm93bmVkIENvZ2wuRnJhbWVidWZmZXIgZ2V0X2ZyYW1lYnVmZmVyICgpOworKwkJcHVi bGljIHZvaWQgZ2V0X2xheW91dCAoQ2Fpcm8uUmVjdGFuZ2xlSW50IHJlY3QpOworKwkJcHVibGlj IHZpcnR1YWwgdm9pZCBnZXRfb2Zmc2NyZWVuX3RyYW5zZm9ybWF0aW9uX21hdHJpeCAoQ29nbC5N YXRyaXggbWF0cml4KTsKKysJCXB1YmxpYyB1bm93bmVkIENvZ2wuRnJhbWVidWZmZXIgZ2V0X29u c2NyZWVuICgpOworKwkJcHVibGljIGZsb2F0IGdldF9zY2FsZSAoKTsKKysJCXB1YmxpYyB2b2lk IGludmFsaWRhdGVfb2Zmc2NyZWVuX2JsaXRfcGlwZWxpbmUgKCk7CisrCQlbTm9XcmFwcGVyXQor KwkJcHVibGljIHZpcnR1YWwgdm9pZCBzZXR1cF9vZmZzY3JlZW5fYmxpdF9waXBlbGluZSAoQ29n bC5QaXBlbGluZSBwaXBlbGluZSk7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZpcnR1YWwg dm9pZCB0cmFuc2Zvcm1fcmVjdF90b19vbnNjcmVlbiAoQ2Fpcm8uUmVjdGFuZ2xlSW50IHNyY19y ZWN0LCBpbnQgZHN0X3dpZHRoLCBpbnQgZHN0X2hlaWdodCwgQ2Fpcm8uUmVjdGFuZ2xlSW50IGRz dF9yZWN0KTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1 YmxpYyB1aW50IGR1cmF0aW9uIHsgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBDYWlyby5SZWN0YW5n bGVJbnQgbGF5b3V0IHsgb3duZWQgZ2V0OyBzZXQgY29uc3RydWN0OyB9CisgCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgc3RyaW5nIHN0YXRlIHsgb3du ZWQgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdmlydHVhbCBzaWdu YWwgdm9pZCBjb21wbGV0ZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVl X2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zdGF0ZV9rZXlf Z2V0X3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0K Ky0JcHVibGljIGNsYXNzIFN0YXRlS2V5IHsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMg dWxvbmcgZ2V0X21vZGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQg R0xpYi5PYmplY3QgZ2V0X29iamVjdCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMg ZG91YmxlIGdldF9wb3N0X2RlbGF5ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBk b3VibGUgZ2V0X3ByZV9kZWxheSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5v d25lZCBzdHJpbmcgZ2V0X3Byb3BlcnR5X25hbWUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJ cHVibGljIEdMaWIuVHlwZSBnZXRfcHJvcGVydHlfdHlwZSAoKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40Iild CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3NvdXJjZV9zdGF0ZV9uYW1lICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfdGFyZ2V0X3N0YXRl X25hbWUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3ZhbHVlIChH TGliLlZhbHVlIHZhbHVlKTsKKysJCXB1YmxpYyBzdHJpbmcgbmFtZSB7IG93bmVkIGdldDsgY29u c3RydWN0OyB9CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBmbG9hdCByZWZyZXNo X3JhdGUgeyBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJ cHVibGljIGZsb2F0IHNjYWxlIHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CisrCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKysJCXB1YmxpYyBDbHV0dGVyLlN0YWdlIHN0YWdlIHsgb3duZWQgZ2V0OyBjb25z dHJ1Y3Q7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIGJvb2wgdXNlX3NoYWRv d2ZiIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfc3dpcGVfYWN0aW9uX2dl dF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KK0BAIC03Mjc0LDUzICs2 NzA4LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQi KV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIHN3aXBlIChDbHV0dGVyLkFjdG9yIGFj dG9yLCBDbHV0dGVyLlN3aXBlRGlyZWN0aW9uIGRpcmVjdGlvbik7CisgCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVy X3RhYmxlX2xheW91dF9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMg Y2xhc3MgVGFibGVMYXlvdXQgOiBDbHV0dGVyLkxheW91dE1hbmFnZXIgeworLQkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckxheW91dE1hbmFn ZXIqIildCistCQlwdWJsaWMgVGFibGVMYXlvdXQgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJ cHVibGljIHZvaWQgZ2V0X2FsaWdubWVudCAoQ2x1dHRlci5BY3RvciBhY3Rvciwgb3V0IENsdXR0 ZXIuVGFibGVBbGlnbm1lbnQgeF9hbGlnbiwgb3V0IENsdXR0ZXIuVGFibGVBbGlnbm1lbnQgeV9h bGlnbik7CistCQlwdWJsaWMgaW50IGdldF9jb2x1bW5fY291bnQgKCk7CistCQlwdWJsaWMgdWlu dCBnZXRfY29sdW1uX3NwYWNpbmcgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVp bnQgZ2V0X2Vhc2luZ19kdXJhdGlvbiAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMg dWxvbmcgZ2V0X2Vhc2luZ19tb2RlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2 b2lkIGdldF9leHBhbmQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIG91dCBib29sIHhfZXhwYW5kLCBv dXQgYm9vbCB5X2V4cGFuZCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgZ2V0 X2ZpbGwgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIG91dCBib29sIHhfZmlsbCwgb3V0IGJvb2wgeV9m aWxsKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3Jvd19jb3VudCAoKTsKKy0JCXB1YmxpYyB1aW50IGdl dF9yb3dfc3BhY2luZyAoKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9zcGFuIChDbHV0dGVyLkFjdG9y IGFjdG9yLCBvdXQgaW50IGNvbHVtbl9zcGFuLCBvdXQgaW50IHJvd19zcGFuKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS40IildCistCQlwdWJsaWMgYm9vbCBnZXRfdXNlX2FuaW1hdGlvbnMgKCk7CistCQlwdWJs aWMgdm9pZCBwYWNrIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBpbnQgY29sdW1uLCBpbnQgcm93KTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxpZ25tZW50IChDbHV0dGVy LkFjdG9yIGFjdG9yLCBDbHV0dGVyLlRhYmxlQWxpZ25tZW50IHhfYWxpZ24sIENsdXR0ZXIuVGFi bGVBbGlnbm1lbnQgeV9hbGlnbik7CistCQlwdWJsaWMgdm9pZCBzZXRfY29sdW1uX3NwYWNpbmcg KHVpbnQgc3BhY2luZyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Vh c2luZ19kdXJhdGlvbiAodWludCBtc2Vjcyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2Vhc2luZ19tb2RlICh1bG9uZyBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCist CQlwdWJsaWMgdm9pZCBzZXRfZXhwYW5kIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBib29sIHhfZXhw YW5kLCBib29sIHlfZXhwYW5kKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBz ZXRfZmlsbCAoQ2x1dHRlci5BY3RvciBhY3RvciwgYm9vbCB4X2ZpbGwsIGJvb2wgeV9maWxsKTsK Ky0JCXB1YmxpYyB2b2lkIHNldF9yb3dfc3BhY2luZyAodWludCBzcGFjaW5nKTsKKy0JCXB1Ymxp YyB2b2lkIHNldF9zcGFuIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBpbnQgY29sdW1uX3NwYW4sIGlu dCByb3dfc3Bhbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3VzZV9h bmltYXRpb25zIChib29sIGFuaW1hdGUpOworLQkJcHVibGljIHVpbnQgY29sdW1uX3NwYWNpbmcg eyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1aW50IGVhc2luZ19k dXJhdGlvbiB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVsb25n IGVhc2luZ19tb2RlIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyB1aW50IHJvd19zcGFjaW5nIHsg Z2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCB1c2VfYW5pbWF0 aW9ucyB7IGdldDsgc2V0OyB9CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RhcF9hY3Rpb25fZ2V0X3R5cGUg KCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKyAJcHVibGljIGNsYXNzIFRhcEFj dGlvbiA6IENsdXR0ZXIuR2VzdHVyZUFjdGlvbiB7CitAQCAtNzM0OCw3ICs2NzM1LDcgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIENsdXR0ZXIuQ29sb3IgZ2V0X2N1cnNvcl9jb2xv ciAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X2N1cnNvcl9wb3NpdGlvbiAoKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgdm9pZCBnZXRfY3Vyc29yX3JlY3QgKG91dCB1 bm93bmVkIENsdXR0ZXIuUmVjdCByZWN0KTsKKysJCXB1YmxpYyB2b2lkIGdldF9jdXJzb3JfcmVj dCAob3V0IHVub3duZWQgR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCXB1YmxpYyB1aW50IGdldF9j dXJzb3Jfc2l6ZSAoKTsKKyAJCXB1YmxpYyBib29sIGdldF9jdXJzb3JfdmlzaWJsZSAoKTsKKyAJ CXB1YmxpYyBib29sIGdldF9lZGl0YWJsZSAoKTsKK0BAIC03NDY3LDcgKzY4NTQsNyBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorIAkJcHVibGlj IHZpcnR1YWwgc2lnbmFsIHZvaWQgY3Vyc29yX2NoYW5nZWQgKCk7CisgCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgY3Vyc29yX2V2ZW50IChDbHV0dGVyLkdl b21ldHJ5IGdlb21ldHJ5KTsKKysJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGN1cnNvcl9l dmVudCAoR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCVtIYXNFbWl0dGVyXQorIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIHNpZ25hbCB2b2lkIGRlbGV0ZV90ZXh0IChpbnQg c3RhcnRfcG9zLCBpbnQgZW5kX3Bvcyk7CitAQCAtNzUwNSw5NCArNjg5Miw2IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0 eXBlID0gIkNsdXR0ZXJQYWludE5vZGUqIildCisgCQlwdWJsaWMgVGV4dE5vZGUgKFBhbmdvLkxh eW91dD8gbGF5b3V0LCBDbHV0dGVyLkNvbG9yPyBjb2xvcik7CisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3Rl eHR1cmVfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorLQlwdWJs aWMgY2xhc3MgVGV4dHVyZSA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRl ci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0J CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJB Y3RvcioiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIildCistCQlwdWJsaWMgVGV4dHVyZSAoKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9 ICIwLjYiKV0KKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21fYWN0b3IgKENsdXR0ZXIuQWN0b3IgYWN0 b3IpOworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAi Q2x1dHRlckFjdG9yKiIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBUZXh0dXJlLmZy b21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lKSB0aHJvd3MgQ2x1dHRlci5UZXh0dXJlRXJyb3I7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIp XQorLQkJcHVibGljIHZvaWQgZ2V0X2Jhc2Vfc2l6ZSAob3V0IGludCB3aWR0aCwgb3V0IGludCBo ZWlnaHQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxl IGdldF9jb2dsX21hdGVyaWFsICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB1bm93 bmVkIENvZ2wuSGFuZGxlIGdldF9jb2dsX3RleHR1cmUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQor LQkJcHVibGljIENsdXR0ZXIuVGV4dHVyZVF1YWxpdHkgZ2V0X2ZpbHRlcl9xdWFsaXR5ICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGdldF9rZWVwX2FzcGVjdF9yYXRpbyAo KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBnZXRfbG9hZF9hc3luYyAoKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBnZXRfbG9hZF9kYXRhX2FzeW5jICgp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X21heF90aWxlX3dhc3RlICgp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIGdldF9waWNrX3dpdGhfYWxwaGEg KCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3JlcGVhdCAob3V0IGJv b2wgcmVwZWF0X3gsIG91dCBib29sIHJlcGVhdF95KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgYm9vbCBnZXRfc3luY19zaXplICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1Ymxp YyBib29sIHNldF9hcmVhX2Zyb21fcmdiX2RhdGEgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFs c2UpXSB1aW50OFtdIGRhdGEsIGJvb2wgaGFzX2FscGhhLCBpbnQgeCwgaW50IHksIGludCB3aWR0 aCwgaW50IGhlaWdodCwgaW50IHJvd3N0cmlkZSwgaW50IGJwcCwgQ2x1dHRlci5UZXh0dXJlRmxh Z3MgZmxhZ3MpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9jb2dsX21hdGVyaWFsIChDb2dsLkhhbmRsZSBjb2dsX21hdGVyaWFsKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdm9pZCBzZXRfY29nbF90ZXh0dXJlIChDb2dsLkhh bmRsZSBjb2dsX3RleCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Zp bHRlcl9xdWFsaXR5IChDbHV0dGVyLlRleHR1cmVRdWFsaXR5IGZpbHRlcl9xdWFsaXR5KTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMC44IildCistCQlwdWJsaWMgYm9vbCBzZXRfZnJvbV9maWxlIChzdHJpbmcgZmls ZW5hbWUpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBi b29sIHNldF9mcm9tX3JnYl9kYXRhIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gdWlu dDhbXSBkYXRhLCBib29sIGhhc19hbHBoYSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBpbnQgcm93 c3RyaWRlLCBpbnQgYnBwLCBDbHV0dGVyLlRleHR1cmVGbGFncyBmbGFncykgdGhyb3dzIEdMaWIu RXJyb3I7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIGJvb2wgc2V0X2Zyb21feXV2X2Rh dGEgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1aW50OFtdIGRhdGEsIGludCB3aWR0 aCwgaW50IGhlaWdodCwgQ2x1dHRlci5UZXh0dXJlRmxhZ3MgZmxhZ3MpIHRocm93cyBHTGliLkVy cm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9rZWVwX2FzcGVjdF9y YXRpbyAoYm9vbCBrZWVwX2FzcGVjdCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZv aWQgc2V0X2xvYWRfYXN5bmMgKGJvb2wgbG9hZF9hc3luYyk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIHZvaWQgc2V0X2xvYWRfZGF0YV9hc3luYyAoYm9vbCBsb2FkX2FzeW5jKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfcGlja193aXRoX2FscGhhIChib29s IHBpY2tfd2l0aF9hbHBoYSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X3JlcGVhdCAoYm9vbCByZXBlYXRfeCwgYm9vbCByZXBlYXRfeSk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIHZvaWQgc2V0X3N5bmNfc2l6ZSAoYm9vbCBzeW5jX3NpemUpOworLQkJcHVi bGljIENvZ2wuTWF0ZXJpYWwgY29nbF9tYXRlcmlhbCB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMg Q29nbC5UZXh0dXJlIGNvZ2xfdGV4dHVyZSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKy0JCXB1YmxpYyBib29sIGRpc2FibGVfc2xpY2luZyB7IGdldDsgY29uc3RydWN0OyB9 CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgc3RyaW5nIGZpbGVuYW1lIHsg b3duZWQgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBDbHV0dGVyLlRleHR1cmVRdWFsaXR5IGZpbHRl cl9xdWFsaXR5IHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CistCQlwdWJsaWMgYm9vbCBrZWVwX2Fz cGVjdF9yYXRpbyB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJv b2wgbG9hZF9hc3luYyB7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29s IGxvYWRfZGF0YV9hc3luYyB7IHNldDsgfQorLQkJcHVibGljIGJvb2wgcGlja193aXRoX2FscGhh IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgcmVw ZWF0X3ggeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9v bCByZXBlYXRfeSB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgYm9vbCBzeW5jX3NpemUgeyBnZXQ7 IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IHRpbGVfd2FzdGUg eyBnZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9p ZCBsb2FkX2ZpbmlzaGVkIChHTGliLkVycm9yIGVycm9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgdmlydHVh bCBzaWduYWwgdm9pZCBwaXhidWZfY2hhbmdlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNp Z25hbCB2b2lkIHNpemVfY2hhbmdlIChpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQl9CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAi Y2x1dHRlcl90ZXh0dXJlX25vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKyAJcHVibGljIGNsYXNzIFRleHR1cmVOb2RlIDogQ2x1dHRlci5QaXBlbGluZU5v ZGUgeworQEAgLTc2MDQsNyArNjkwMyw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJcHVibGlj IGNsYXNzIFRpbWVsaW5lIDogR0xpYi5PYmplY3QsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CisgCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC42IildCistCQlwdWJsaWMgVGltZWxpbmUgKHVpbnQgbXNlY3MpOworKwkJcHVibGlj IFRpbWVsaW5lICh1aW50IGR1cmF0aW9uX21zKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0 IildCisgCQlwdWJsaWMgdm9pZCBhZGRfbWFya2VyIChzdHJpbmcgbWFya2VyX25hbWUsIGRvdWJs ZSBwcm9ncmVzcyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCitAQCAtNzYxMiwxMiAr NjkxMSwxNSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBhZHZhbmNlICh1 aW50IG1zZWNzKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyB2b2lk IGFkdmFuY2VfdG9fbWFya2VyIChzdHJpbmcgbWFya2VyX25hbWUpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQi KV0KKy0JCXB1YmxpYyBDbHV0dGVyLlRpbWVsaW5lIGNsb25lICgpOworKwkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHVibGljIFRpbWVsaW5lLmZvcl9hY3Rv ciAoQ2x1dHRlci5BY3RvciBhY3RvciwgdWludCBkdXJhdGlvbl9tcyk7CisrCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwdWJsaWMgVGltZWxpbmUuZm9yX2Zy YW1lX2Nsb2NrIChDbHV0dGVyLkZyYW1lQ2xvY2sgZnJhbWVfY2xvY2ssIHVpbnQgZHVyYXRpb25f bXMpOworKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfYWN0b3IgKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgYm9vbCBnZXRfYXV0b19yZXZlcnNl ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBib29sIGdldF9j dWJpY19iZXppZXJfcHJvZ3Jlc3MgKENsdXR0ZXIuUG9pbnQgY18xLCBDbHV0dGVyLlBvaW50IGNf Mik7CisrCQlwdWJsaWMgYm9vbCBnZXRfY3ViaWNfYmV6aWVyX3Byb2dyZXNzIChHcmFwaGVuZS5Q b2ludCBjXzEsIEdyYXBoZW5lLlBvaW50IGNfMik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorIAkJcHVibGljIGludCBnZXRfY3VycmVudF9yZXBlYXQgKCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMC40IildCitAQCAtNzYzMSw4ICs2OTMzLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBpbnQ2NCBnZXRfZHVy YXRpb25faGludCAoKTsKKyAJCXB1YmxpYyB1aW50IGdldF9lbGFwc2VkX3RpbWUgKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQor LQkJcHVibGljIGJvb2wgZ2V0X2xvb3AgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42Iild CisgCQlwdWJsaWMgZG91YmxlIGdldF9wcm9ncmVzcyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCitAQCAtNzY1MSwxOCArNjk1MSwxOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgdm9pZCByZW1vdmVfbWFya2Vy IChzdHJpbmcgbWFya2VyX25hbWUpOworIAkJcHVibGljIHZvaWQgcmV3aW5kICgpOworKwkJcHVi bGljIHZvaWQgc2V0X2FjdG9yIChDbHV0dGVyLkFjdG9yPyBhY3Rvcik7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgdm9pZCBzZXRfYXV0b19yZXZlcnNlIChib29sIHJl dmVyc2UpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9jdWJpY19iZXppZXJfcHJvZ3Jlc3MgKENsdXR0ZXIuUG9pbnQgY18xLCBDbHV0dGVyLlBvaW50 IGNfMik7CisrCQlwdWJsaWMgdm9pZCBzZXRfY3ViaWNfYmV6aWVyX3Byb2dyZXNzIChHcmFwaGVu ZS5Qb2ludCBjXzEsIEdyYXBoZW5lLlBvaW50IGNfMik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MC40IildCisgCQlwdWJsaWMgdm9pZCBzZXRfZGVsYXkgKHVpbnQgbXNlY3MpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHZvaWQgc2V0X2RpcmVjdGlvbiAoQ2x1dHRl ci5UaW1lbGluZURpcmVjdGlvbiBkaXJlY3Rpb24pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAu NiIpXQorIAkJcHVibGljIHZvaWQgc2V0X2R1cmF0aW9uICh1aW50IG1zZWNzKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlw dWJsaWMgdm9pZCBzZXRfbG9vcCAoYm9vbCBsb29wKTsKKysJCXB1YmxpYyB2b2lkIHNldF9mcmFt ZV9jbG9jayAoQ2x1dHRlci5GcmFtZUNsb2NrIGZyYW1lX2Nsb2NrKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBzZXRfcHJvZ3Jlc3NfZnVuYyAob3duZWQg Q2x1dHRlci5UaW1lbGluZVByb2dyZXNzRnVuYz8gZnVuYyk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorQEAgLTc2NzQsNiArNjk3NCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CXB1YmxpYyB2b2lkIHNraXAgKHVpbnQgbXNlY3MpOworIAkJcHVibGljIHZvaWQgc3RhcnQgKCk7 CisgCQlwdWJsaWMgdm9pZCBzdG9wICgpOworKwkJcHVibGljIENsdXR0ZXIuQWN0b3IgYWN0b3Ig eyBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJ CXB1YmxpYyBib29sIGF1dG9fcmV2ZXJzZSB7IGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC40IildCitAQCAtNzY4Miw4ICs2OTgzLDggQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHVibGljIENsdXR0ZXIuVGltZWxpbmVEaXJlY3Rpb24gZGlyZWN0aW9uIHsgZ2V0OyBzZXQ7 IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB1aW50IGR1cmF0aW9u IHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgYm9vbCBsb29wIHsgZ2V0OyBzZXQ7IH0KKysJ CVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIENsdXR0ZXIuRnJhbWVDbG9jayBmcmFtZV9j bG9jayB7IG93bmVkIGdldDsgc2V0IGNvbnN0cnVjdDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkFuaW1hdGlvbk1vZGUgcHJvZ3Jlc3NfbW9kZSB7 IGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTc2OTcsMTIg KzY5OTgsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgc3RvcHBlZCAoYm9vbCBpc19maW5p c2hlZCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgVGltZW91dFBvb2wgeworLQkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHVibGljIFRpbWVvdXRQ b29sIChpbnQgcHJpb3JpdHkpOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbQ29tcGFjdF0KKyAJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC03NzUzLDYgKzcwNDgsMTEgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJcHVibGljIGZsb2F0IHg7CisgCQlwdWJsaWMgZmxvYXQgeTsKKyAJ fQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBl X2lkID0gImNsdXR0ZXJfdHJhbnNmb3JtX25vZGVfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNs YXNzIFRyYW5zZm9ybU5vZGUgOiBDbHV0dGVyLlBhaW50Tm9kZSB7CisrCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyUGFpbnROb2RlKiIpXQor KwkJcHVibGljIFRyYW5zZm9ybU5vZGUgKENvZ2wuTWF0cml4IHByb2plY3Rpb24pOworKwl9Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQg PSAiY2x1dHRlcl90cmFuc2l0aW9uX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBUcmFuc2l0aW9uIDogQ2x1dHRlci5U aW1lbGluZSwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKK0BAIC03NzkyLDcgKzcwOTIsNiBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSldCisgCQlwcm90ZWN0ZWQgVmlydHVhbElucHV0RGV2aWNlICgpOworIAkJcHVibGljIGludCBn ZXRfZGV2aWNlX3R5cGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkRldmljZU1hbmFn ZXIgZ2V0X21hbmFnZXIgKCk7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIG5vdGlmeV9hYnNvbHV0 ZV9tb3Rpb24gKHVpbnQ2NCB0aW1lX3VzLCBkb3VibGUgeCwgZG91YmxlIHkpOworIAkJcHVibGlj IHZpcnR1YWwgdm9pZCBub3RpZnlfYnV0dG9uICh1aW50NjQgdGltZV91cywgdWludDMyIGJ1dHRv biwgQ2x1dHRlci5CdXR0b25TdGF0ZSBidXR0b25fc3RhdGUpOworIAkJcHVibGljIHZpcnR1YWwg dm9pZCBub3RpZnlfZGlzY3JldGVfc2Nyb2xsICh1aW50NjQgdGltZV91cywgQ2x1dHRlci5TY3Jv bGxEaXJlY3Rpb24gZGlyZWN0aW9uLCBDbHV0dGVyLlNjcm9sbFNvdXJjZSBzY3JvbGxfc291cmNl KTsKK0BAIC03ODAzLDI4ICs3MTAyLDI3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1Ymxp YyB2aXJ0dWFsIHZvaWQgbm90aWZ5X3RvdWNoX2Rvd24gKHVpbnQ2NCB0aW1lX3VzLCBpbnQgc2xv dCwgZG91YmxlIHgsIGRvdWJsZSB5KTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90aWZ5X3Rv dWNoX21vdGlvbiAodWludDY0IHRpbWVfdXMsIGludCBzbG90LCBkb3VibGUgeCwgZG91YmxlIHkp OworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBub3RpZnlfdG91Y2hfdXAgKHVpbnQ2NCB0aW1lX3Vz LCBpbnQgc2xvdCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBDbHV0dGVyLkRl dmljZU1hbmFnZXIgZGV2aWNlX21hbmFnZXIgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJ cHVibGljIENsdXR0ZXIuSW5wdXREZXZpY2VUeXBlIGRldmljZV90eXBlIHsgZ2V0OyBjb25zdHJ1 Y3Q7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIENsdXR0ZXIuU2VhdCBzZWF0 IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfem9vbV9hY3Rpb25f Z2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJcHVibGljIGNs YXNzIFpvb21BY3Rpb24gOiBDbHV0dGVyLkdlc3R1cmVBY3Rpb24geworIAkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdGlvbioiKV0KKyAJ CXB1YmxpYyBab29tQWN0aW9uICgpOworLQkJcHVibGljIHZvaWQgZ2V0X2ZvY2FsX3BvaW50IChD bHV0dGVyLlBvaW50IHBvaW50KTsKKy0JCXB1YmxpYyB2b2lkIGdldF90cmFuc2Zvcm1lZF9mb2Nh bF9wb2ludCAoQ2x1dHRlci5Qb2ludCBwb2ludCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfZm9jYWxf cG9pbnQgKEdyYXBoZW5lLlBvaW50IHBvaW50KTsKKysJCXB1YmxpYyB2b2lkIGdldF90cmFuc2Zv cm1lZF9mb2NhbF9wb2ludCAoR3JhcGhlbmUuUG9pbnQgcG9pbnQpOworIAkJcHVibGljIENsdXR0 ZXIuWm9vbUF4aXMgZ2V0X3pvb21fYXhpcyAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF96b29tX2F4 aXMgKENsdXR0ZXIuWm9vbUF4aXMgYXhpcyk7CisgCQlwdWJsaWMgQ2x1dHRlci5ab29tQXhpcyB6 b29tX2F4aXMgeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgem9v bSAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5Qb2ludCBmb2NhbF9wb2ludCwgZG91Ymxl IGZhY3Rvcik7CisrCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgYm9vbCB6b29tIChDbHV0dGVyLkFj dG9yIGFjdG9yLCBHcmFwaGVuZS5Qb2ludCBmb2NhbF9wb2ludCwgZG91YmxlIGZhY3Rvcik7Cisg CX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlw ZV9jbmFtZSA9ICJDbHV0dGVyQW5pbWF0YWJsZUludGVyZmFjZSIsIHR5cGVfaWQgPSAiY2x1dHRl cl9hbmltYXRhYmxlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBpbnRlcmZhY2UgQW5pbWF0YWJs ZSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBhYnN0cmFjdCBi b29sIGFuaW1hdGVfcHJvcGVydHkgKENsdXR0ZXIuQW5pbWF0aW9uIGFuaW1hdGlvbiwgc3RyaW5n IHByb3BlcnR5X25hbWUsIEdMaWIuVmFsdWUgaW5pdGlhbF92YWx1ZSwgR0xpYi5WYWx1ZSBmaW5h bF92YWx1ZSwgZG91YmxlIHByb2dyZXNzLCBHTGliLlZhbHVlIHZhbHVlKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBhYnN0cmFjdCB1bm93bmVkIEdMaWIuUGFyYW1T cGVjIGZpbmRfcHJvcGVydHkgKHN0cmluZyBwcm9wZXJ0eV9uYW1lKTsKKysJCXB1YmxpYyBhYnN0 cmFjdCB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2FjdG9yICgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNCIpXQorIAkJcHVibGljIGFic3RyYWN0IHZvaWQgZ2V0X2luaXRpYWxfc3RhdGUg KHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVlIHZhbHVlKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjgiKV0KK0BAIC03ODM1LDEyICs3MTMzLDkgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBl X2lkID0gImNsdXR0ZXJfY29udGFpbmVyX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjQiKV0KKyAJcHVibGljIGludGVyZmFjZSBDb250YWluZXIgOiBHTGliLk9iamVjdCB7 CistCQlwdWJsaWMgdm9pZCBhZGQgKHBhcmFtcyBDbHV0dGVyLkFjdG9yW10gYWN0b3JzKTsKKyAJ CVtDQ29kZSAodmZ1bmNfbmFtZSA9ICJhZGQiKV0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40IildCisgCQlwdWJs aWMgYWJzdHJhY3Qgdm9pZCBhZGRfYWN0b3IgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5j ZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGFkZF92YWxpc3QgKENsdXR0ZXIuQWN0b3IgZmly c3RfYWN0b3IsIHZhX2xpc3QgdmFyX2FyZ3MpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIp XQorIAkJcHVibGljIHZvaWQgY2hpbGRfZ2V0IChDbHV0dGVyLkFjdG9yIGFjdG9yLCAuLi4pOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorQEAgLTc4NjAsMTggKzcxNTUsMTAgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBkZXN0cm95X2NoaWxkX21l dGEgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQor IAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBmaW5kX2NoaWxkX2J5X25hbWUgKHN0cmlu ZyBjaGlsZF9uYW1lKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9jb250YWluZXJfY2xh c3NfZmluZF9jaGlsZF9wcm9wZXJ0eSIpXQorLQkJcHVibGljIGNsYXNzIHVub3duZWQgR0xpYi5Q YXJhbVNwZWMgZmluZF9jaGlsZF9wcm9wZXJ0eSAoc3RyaW5nIHByb3BlcnR5X25hbWUpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBz aW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIEBmb3JlYWNoIChDbHV0dGVy LkNhbGxiYWNrIGNhbGxiYWNrKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdmlydHVh bCB2b2lkIGZvcmVhY2hfd2l0aF9pbnRlcm5hbHMgKENsdXR0ZXIuQ2FsbGJhY2sgY2FsbGJhY2sp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIHZpcnR1YWwgdW5vd25l ZCBDbHV0dGVyLkNoaWxkTWV0YSBnZXRfY2hpbGRfbWV0YSAoQ2x1dHRlci5BY3RvciBhY3Rvcik7 CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIsIHNpbmNlID0gIjAuNCIpXQorIAkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIENsdXR0ZXIuQWN0 b3I+IGdldF9jaGlsZHJlbiAoKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9jb250YWlu ZXJfY2xhc3NfbGlzdF9jaGlsZF9wcm9wZXJ0aWVzIildCistCQlwdWJsaWMgY2xhc3MgdW5vd25l ZCBHTGliLlBhcmFtU3BlY1tdIGxpc3RfY2hpbGRfcHJvcGVydGllcyAoKTsKKyAJCVtDQ29kZSAo dmZ1bmNfbmFtZSA9ICJsb3dlciIpXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB2aXJ0 dWFsIHZvaWQgbG93ZXJfY2hpbGQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuQWN0b3I/ IHNpYmxpbmcgPSBudWxsKTsKK0BAIC03ODgzLDggKzcxNzAsNiBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlbQ0NvZGUgKHZmdW5jX25hbWUgPSAicmVtb3ZlIildCisgCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIp XQorIAkJcHVibGljIGFic3RyYWN0IHZvaWQgcmVtb3ZlX2FjdG9yIChDbHV0dGVyLkFjdG9yIGFj dG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIiwgc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfdmFsaXN0IChD bHV0dGVyLkFjdG9yIGZpcnN0X2FjdG9yLCB2YV9saXN0IHZhcl9hcmdzKTsKKyAJCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAi MC42IildCisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzb3J0X2RlcHRoX29yZGVyICgpOworIAkJ cHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgYWN0b3JfYWRkZWQgKENsdXR0ZXIuQWN0b3IgYWN0 b3IpOworQEAgLTc5MDEsNyArNzE4Niw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1Ymxp YyBhYnN0cmFjdCB2b2lkIGludmFsaWRhdGUgKCk7CisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBp bnZhbGlkYXRlX3NpemUgKCk7CisgCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZv aWQgcGFpbnRfY29udGVudCAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5QYWludE5vZGUg bm9kZSk7CisrCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBwYWludF9jb250ZW50IChDbHV0dGVyLkFj dG9yIGFjdG9yLCBDbHV0dGVyLlBhaW50Tm9kZSBub2RlLCBDbHV0dGVyLlBhaW50Q29udGV4dCBw YWludF9jb250ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMg dmlydHVhbCBzaWduYWwgdm9pZCBhdHRhY2hlZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTc5MTUsNDcgKzcyMDAsMTYgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJcHVibGljIGFic3RyYWN0IHZvaWQgc2V0X2N1c3RvbV9wcm9wZXJ0 eSAoQ2x1dHRlci5TY3JpcHQgc2NyaXB0LCBzdHJpbmcgbmFtZSwgR0xpYi5WYWx1ZSB2YWx1ZSk7 CisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfaWQgKHN0cmluZyBpZF8pOworIAl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlwdWJsaWMg aW50ZXJmYWNlIFN0YWdlV2luZG93IDogR0xpYi5PYmplY3QgeworLQkJW05vV3JhcHBlcl0KKy0J CXB1YmxpYyBhYnN0cmFjdCB2b2lkIGFkZF9yZWRyYXdfY2xpcCAoQ2x1dHRlci5HZW9tZXRyeSBz dGFnZV9yZWN0YW5nbGUpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lk IGdldF9nZW9tZXRyeSAoQ2x1dHRlci5HZW9tZXRyeSBnZW9tZXRyeSk7CistCQlbTm9XcmFwcGVy XQorLQkJcHVibGljIGFic3RyYWN0IGludCBnZXRfcGVuZGluZ19zd2FwcyAoKTsKKy0JCVtOb1dy YXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3QgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF93cmFw cGVyICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCBib29sIGhhc19yZWRy YXdfY2xpcHMgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgaGlk ZSAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3QgYm9vbCBpZ25vcmluZ19y ZWRyYXdfY2xpcHMgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IGJvb2wg cmVhbGl6ZSAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCByZXNp emUgKGludCB3aWR0aCwgaW50IGhlaWdodCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFi c3RyYWN0IHZvaWQgc2V0X2N1cnNvcl92aXNpYmxlIChib29sIGN1cnNvcl92aXNpYmxlKTsKKy0J CVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfZnVsbHNjcmVlbiAoYm9v bCBpc19mdWxsc2NyZWVuKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qgdm9p ZCBzZXRfdGl0bGUgKHN0cmluZyB0aXRsZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFi c3RyYWN0IHZvaWQgc2V0X3VzZXJfcmVzaXphYmxlIChib29sIGlzX3Jlc2l6YWJsZSk7CistCQlb Tm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgc2hvdyAoYm9vbCBkb19yYWlzZSk7 CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgdW5yZWFsaXplICgpOwor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5 cGVfaWQgPSAiQ0xVVFRFUl9UWVBFX0FDVE9SX0JPWCIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29w eSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2Fj dG9yX2JveF9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgc3RydWN0IEFjdG9yQm94IHsKKyAJCXB1 YmxpYyBmbG9hdCB4MTsKKyAJCXB1YmxpYyBmbG9hdCB5MTsKKyAJCXB1YmxpYyBmbG9hdCB4MjsK KyAJCXB1YmxpYyBmbG9hdCB5MjsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisrCQlw dWJsaWMgc3RhdGljIENsdXR0ZXIuQWN0b3JCb3g/IGFsbG9jICgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgY2xhbXBfdG9fcGl4ZWwgKCk7CisrCQlwdWJs aWMgc3RhdGljIHZvaWQgY2xhbXBfdG9fcGl4ZWwgKHJlZiBDbHV0dGVyLkFjdG9yQm94IGJveCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgYm9vbCBjb250YWlucyAo ZmxvYXQgeCwgZmxvYXQgeSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCitAQCAtNzk2 NCw4ICs3MjE4LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgZXF1YWwg KENsdXR0ZXIuQWN0b3JCb3ggYm94X2IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor IAkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9hY3Rv cl9ib3hfZnJvbV92ZXJ0aWNlcyIpXQorLQkJcHVibGljIEFjdG9yQm94LmZyb21fdmVydGljZXMg KENsdXR0ZXIuVmVydGV4W10gdmVydHMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor IAkJcHVibGljIGZsb2F0IGdldF9hcmVhICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorQEAgLTc5ODYsNiArNzIzOCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2 b2lkIGluaXRfcmVjdCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdo dCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgQ2x1dHRlci5BY3Rv ckJveCBpbnRlcnBvbGF0ZSAoQ2x1dHRlci5BY3RvckJveCBmaW5hbCwgZG91YmxlIHByb2dyZXNz KTsKKysJCXB1YmxpYyBib29sIGlzX2luaXRpYWxpemVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNiIpXQorIAkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IHNjYWxlKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjYiKV0KK0BAIC04MDExLDcgKzcyNjQsNyBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlwdWJsaWMgd2VhayBDYWlyby5TdXJmYWNlIGltYWdlOworIAkJcHVibGljIENh aXJvLlJlY3RhbmdsZUludCByZWN0OworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiQ0xVVFRFUl9UWVBFX0NPTE9SIildCisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVu Y3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0 eXBlX2lkID0gImNsdXR0ZXJfY29sb3JfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIHN0cnVjdCBD b2xvciB7CisgCQlwdWJsaWMgdWludDggcmVkOworIAkJcHVibGljIHVpbnQ4IGdyZWVuOworQEAg LTgwMjcsMTIgKzcyODAsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wg ZXF1YWwgKENsdXR0ZXIuQ29sb3IgdjIpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQor IAkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9jb2xv cl9mcm9tX2hscyIpXQorLQkJcHVibGljIENvbG9yLmZyb21faGxzIChmbG9hdCBodWUsIGZsb2F0 IGx1bWluYW5jZSwgZmxvYXQgc2F0dXJhdGlvbik7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0 ZXJfY29sb3JfZnJvbV9waXhlbCIpXQorLQkJcHVibGljIENvbG9yLmZyb21fcGl4ZWwgKHVpbnQz MiBwaXhlbCk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfY29sb3JfZnJvbV9zdHJpbmci KV0KKy0JCXB1YmxpYyBDb2xvci5mcm9tX3N0cmluZyAoc3RyaW5nIHN0cik7CisrCQlwdWJsaWMg c3RhdGljIHZvaWQgZnJvbV9obHMgKG91dCBDbHV0dGVyLkNvbG9yIGNvbG9yLCBmbG9hdCBodWUs IGZsb2F0IGx1bWluYW5jZSwgZmxvYXQgc2F0dXJhdGlvbik7CisrCQlwdWJsaWMgc3RhdGljIHZv aWQgZnJvbV9waXhlbCAob3V0IENsdXR0ZXIuQ29sb3IgY29sb3IsIHVpbnQzMiBwaXhlbCk7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIGJvb2wgZnJvbV9z dHJpbmcgKG91dCBDbHV0dGVyLkNvbG9yIGNvbG9yLCBzdHJpbmcgc3RyKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkNvbG9y PyBnZXRfc3RhdGljIChDbHV0dGVyLlN0YXRpY0NvbG9yIGNvbG9yKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB1aW50IGhhc2ggKCk7CitAQCAtODA0MSw4ICs3Mjkz LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQor IAkJcHVibGljIENsdXR0ZXIuQ29sb3IgaW50ZXJwb2xhdGUgKENsdXR0ZXIuQ29sb3IgZmluYWws IGRvdWJsZSBwcm9ncmVzcyk7CisgCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBsaWdodGVuICgpOwor LQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbG9yX2Zyb21fc3RyaW5nIildCistCQlwdWJs aWMgYm9vbCBwYXJzZV9zdHJpbmcgKHN0cmluZyBzdHIpOworIAkJcHVibGljIENsdXR0ZXIuQ29s b3Igc2hhZGUgKGRvdWJsZSBmYWN0b3IpOworIAkJcHVibGljIENsdXR0ZXIuQ29sb3Igc3VidHJh Y3QgKENsdXR0ZXIuQ29sb3IgYik7CisgCQlwdWJsaWMgdm9pZCB0b19obHMgKG91dCBmbG9hdCBo dWUsIG91dCBmbG9hdCBsdW1pbmFuY2UsIG91dCBmbG9hdCBzYXR1cmF0aW9uKTsKK0BAIC04MDUw LDIzICs3MzAwLDEwIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjIiKV0KKyAJCXB1YmxpYyBzdHJpbmcgdG9fc3RyaW5nICgpOworIAl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRl cl9mb2dfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0cnVjdCBG b2cgeworLQkJcHVibGljIGZsb2F0IHpfbmVhcjsKKy0JCXB1YmxpYyBmbG9hdCB6X2ZhcjsKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBl X2lkID0gImNsdXR0ZXJfZ2VvbWV0cnlfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0cnVj dCBHZW9tZXRyeSB7CistCQlwdWJsaWMgaW50IHg7CistCQlwdWJsaWMgaW50IHk7CistCQlwdWJs aWMgdWludCB3aWR0aDsKKy0JCXB1YmxpYyB1aW50IGhlaWdodDsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIGludGVyc2VjdHMgKENsdXR0ZXIuR2VvbWV0cnkg Z2VvbWV0cnkxKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDbHV0 dGVyLkdlb21ldHJ5IHVuaW9uIChDbHV0dGVyLkdlb21ldHJ5IGdlb21ldHJ5X2IpOworKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKysJcHVibGljIHN0cnVjdCBGcmFtZUxpc3RlbmVySWZhY2UgeworKwkJcHVibGlj IHdlYWsgZ2xvYmFsOjpiZWZvcmVfZnJhbWUgYmVmb3JlX2ZyYW1lOworKwkJcHVibGljIHdlYWsg Z2xvYmFsOjpmcmFtZSBmcmFtZTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIHN0cnVj dCBLYmRBMTF5U2V0dGluZ3MgeworQEAgLTgwNzgsNyArNzMxNSw3IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCXB1YmxpYyBpbnQgbW91c2VrZXlzX21heF9zcGVlZDsKKyAJCXB1YmxpYyBpbnQg bW91c2VrZXlzX2FjY2VsX3RpbWU7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2tub3RfZ2V0X3R5cGUgKCki KV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29w eV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJl ZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9rbm90X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChz aW5jZSA9ICIwLjIiKV0KKyAJcHVibGljIHN0cnVjdCBLbm90IHsKKyAJCXB1YmxpYyBpbnQgeDsK K0BAIC04MDg3LDggKzczMjQsMTkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJv b2wgZXF1YWwgKENsdXR0ZXIuS25vdCBrbm90X2IpOworIAkJcHVibGljIHZvaWQgZnJlZSAoKTsK KyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0K KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9p ZCA9ICJDT0dMX1RZUEVfTUFUUklYIildCisgCXB1YmxpYyBzdHJ1Y3QgTWF0cml4IDogQ29nbC5N YXRyaXggeworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKysJCXB1YmxpYyBzdGF0aWMg Q2x1dHRlci5NYXRyaXg/IGFsbG9jICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0K KysJCXB1YmxpYyB2b2lkIGZyZWUgKCk7CisrCQlwdWJsaWMgc3RhdGljIEdMaWIuVHlwZSBnZXRf dHlwZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisrCQlwdWJsaWMgdW5vd25l ZCBDbHV0dGVyLk1hdHJpeD8gaW5pdF9mcm9tX2FycmF5IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9 IGZhbHNlKV0gZmxvYXQgdmFsdWVzWzE2XSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIp XQorKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5NYXRyaXg/IGluaXRfZnJvbV9tYXRyaXggKENs dXR0ZXIuTWF0cml4IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKysJCXB1Ymxp YyB1bm93bmVkIENsdXR0ZXIuTWF0cml4PyBpbml0X2lkZW50aXR5ICgpOworIAl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorIAlwdWJsaWMgc3RydWN0IFBhZEJ1dHRvbkV2ZW50IHsKK0BAIC04MTMwLDcgKzcz NzgsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZG91YmxlIHZhbHVlOworIAkJ cHVibGljIHVpbnQzMiBtb2RlOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYXRoX25vZGVfZ2V0X3R5cGUg KCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg Y29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRf ZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYXRoX25vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3RydWN0IFBhdGhOb2RlIHsKKyAJCXB1 YmxpYyBDbHV0dGVyLlBhdGhOb2RlVHlwZSB0eXBlOworQEAgLTgxNDAsNyArNzM4OCw3IEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIGVxdWFsIChDbHV0dGVyLlBhdGhOb2Rl IG5vZGVfYik7CisgCQlwdWJsaWMgdm9pZCBmcmVlICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wZXJz cGVjdGl2ZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVu Y3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BlcnNwZWN0aXZlX2dl dF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJcHVibGljIHN0cnVj dCBQZXJzcGVjdGl2ZSB7CisgCQlwdWJsaWMgZmxvYXQgZm92eTsKK0BAIC04MTQ5LDYgKzczOTcs MTkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGZsb2F0IHpfZmFyOworIAl9Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGhhc190eXBl X2lkID0gZmFsc2UpXQorKwlwdWJsaWMgc3RydWN0IFBvaW50ZXJBMTF5U2V0dGluZ3MgeworKwkJ cHVibGljIENsdXR0ZXIuUG9pbnRlckExMXlGbGFncyBjb250cm9sczsKKysJCXB1YmxpYyBDbHV0 dGVyLlBvaW50ZXJBMTF5RHdlbGxDbGlja1R5cGUgZHdlbGxfY2xpY2tfdHlwZTsKKysJCXB1Ymxp YyBDbHV0dGVyLlBvaW50ZXJBMTF5RHdlbGxNb2RlIGR3ZWxsX21vZGU7CisrCQlwdWJsaWMgQ2x1 dHRlci5Qb2ludGVyQTExeUR3ZWxsRGlyZWN0aW9uIGR3ZWxsX2dlc3R1cmVfc2luZ2xlOworKwkJ cHVibGljIENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbERpcmVjdGlvbiBkd2VsbF9nZXN0dXJlX2Rv dWJsZTsKKysJCXB1YmxpYyBDbHV0dGVyLlBvaW50ZXJBMTF5RHdlbGxEaXJlY3Rpb24gZHdlbGxf Z2VzdHVyZV9kcmFnOworKwkJcHVibGljIENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbERpcmVjdGlv biBkd2VsbF9nZXN0dXJlX3NlY29uZGFyeTsKKysJCXB1YmxpYyBpbnQgc2Vjb25kYXJ5X2NsaWNr X2RlbGF5OworKwkJcHVibGljIGludCBkd2VsbF9kZWxheTsKKysJCXB1YmxpYyBpbnQgZHdlbGxf dGhyZXNob2xkOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4y OCIpXQorIAlwdWJsaWMgc3RydWN0IFByb3hpbWl0eUV2ZW50IHsKKyAJCXB1YmxpYyBDbHV0dGVy LkV2ZW50VHlwZSB0eXBlOworQEAgLTgxNTgsNDcgKzc0MTksMTYgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJcHVibGljIHdlYWsgQ2x1dHRlci5BY3RvciBzb3VyY2U7CisgCQlwdWJsaWMgd2Vh ayBDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gIkNMVVRURVJfVFlQRV9VTklU UyIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBj b3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9m cmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3VuaXRzX2dldF90eXBlICgpIildCisgCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIHN0cnVjdCBVbml0cyB7CisgCQlwdWJsaWMgQ2x1 dHRlci5Vbml0cz8gY29weSAoKTsKKyAJCXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlbQ0NvZGUg KGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9jbSIpXQorLQkJcHVibGljIFVuaXRzLmZyb21f Y20gKGZsb2F0IGNtKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX2Vt IildCistCQlwdWJsaWMgVW5pdHMuZnJvbV9lbSAoZmxvYXQgZW0pOworLQkJW0NDb2RlIChjbmFt ZSA9ICJjbHV0dGVyX3VuaXRzX2Zyb21fZW1fZm9yX2ZvbnQiKV0KKy0JCXB1YmxpYyBVbml0cy5m cm9tX2VtX2Zvcl9mb250IChzdHJpbmcgZm9udF9uYW1lLCBmbG9hdCBlbSk7CistCQlbQ0NvZGUg KGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9tbSIpXQorLQkJcHVibGljIFVuaXRzLmZyb21f bW0gKGZsb2F0IG1tKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl91bml0c19mcm9tX3Bp eGVscyIpXQorLQkJcHVibGljIFVuaXRzLmZyb21fcGl4ZWxzIChpbnQgcHgpOworLQkJW0NDb2Rl IChjbmFtZSA9ICJjbHV0dGVyX3VuaXRzX2Zyb21fcHQiKV0KKy0JCXB1YmxpYyBVbml0cy5mcm9t X3B0IChmbG9hdCBwdCk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9z dHJpbmciKV0KKy0JCXB1YmxpYyBVbml0cy5mcm9tX3N0cmluZyAoc3RyaW5nIHN0cik7CisgCQlw dWJsaWMgQ2x1dHRlci5Vbml0VHlwZSBnZXRfdW5pdF90eXBlICgpOworIAkJcHVibGljIGZsb2F0 IGdldF91bml0X3ZhbHVlICgpOworIAkJcHVibGljIGZsb2F0IHRvX3BpeGVscyAoKTsKKyAJCXB1 YmxpYyBzdHJpbmcgdG9fc3RyaW5nICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl92ZXJ0ZXhfZ2V0X3R5 cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQlwdWJsaWMgc3RydWN0IFZl cnRleCB7CistCQlwdWJsaWMgZmxvYXQgeDsKKy0JCXB1YmxpYyBmbG9hdCB5OworLQkJcHVibGlj IGZsb2F0IHo7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHN0YXRp YyBDbHV0dGVyLlZlcnRleD8gYWxsb2MgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgQ2x1dHRlci5WZXJ0ZXg/IGNvcHkgKCk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBlcXVhbCAoQ2x1dHRlci5WZXJ0ZXggdmVydGV4X2Ip OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZnJlZSAoKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVy LlZlcnRleD8gaW5pdCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCX0KKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVU VEVSX0FDVE9SX0FMSUdOXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hY3Rvcl9hbGlnbl9nZXRfdHlw ZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgZW51bSBBY3Rv ckFsaWduIHsKK0BAIC04MjIzLDE0ICs3NDUzLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ WV9BWElTLAorIAkJQk9USAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl8iLCB0eXBlX2lkID0gImNsdXR0ZXJf YWxsb2NhdGlvbl9mbGFnc19nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGVudW0gQWxsb2NhdGlvbkZsYWdzIHsKKy0JCUFMTE9D QVRJT05fTk9ORSwKKy0JCUFCU09MVVRFX09SSUdJTl9DSEFOR0VELAorLQkJREVMRUdBVEVfTEFZ T1VUCistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgY3ByZWZpeCA9ICJDTFVUVEVSXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hbmltYXRpb25fbW9k ZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBl bnVtIEFuaW1hdGlvbk1vZGUgeworQEAgLTgzMzYsNiArNzU1OCwyNyBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlZX0FYSVMsCisgCQlCT1RICisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0RFQlVHXyIsIHR5 cGVfaWQgPSAiY2x1dHRlcl9kZWJ1Z19mbGFnX2dldF90eXBlICgpIildCisrCVtGbGFnc10KKysJ cHVibGljIGVudW0gRGVidWdGbGFnIHsKKysJCU1JU0MsCisrCQlBQ1RPUiwKKysJCVRFWFRVUkUs CisrCQlFVkVOVCwKKysJCVBBSU5ULAorKwkJUEFOR08sCisrCQlCQUNLRU5ELAorKwkJU0NIRURV TEVSLAorKwkJU0NSSVBULAorKwkJU0hBREVSLAorKwkJTVVMVElTVEFHRSwKKysJCUFOSU1BVElP TiwKKysJCUxBWU9VVCwKKysJCVBJQ0ssCisrCQlFVkVOVExPT1AsCisrCQlDTElQUElORywKKysJ CU9PQl9UUkFOU0ZPUk1TCisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0RSQUdfIiwgdHlwZV9pZCA9ICJjbHV0 dGVyX2RyYWdfYXhpc19nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40Iild CisgCXB1YmxpYyBlbnVtIERyYWdBeGlzIHsKK0BAIC04MzQzLDExICs3NTg2LDI0IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCVhfQVhJUywKKyAJCVlfQVhJUworIAl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9F RkZFQ1RfUEFJTlRfQUNUT1JfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2VmZmVjdF9wYWludF9mbGFn c19nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfREVCVUdfIiwgdHlwZV9pZCA9ICJjbHV0dGVy X2RyYXdfZGVidWdfZmxhZ19nZXRfdHlwZSAoKSIpXQorKwlbRmxhZ3NdCisrCXB1YmxpYyBlbnVt IERyYXdEZWJ1Z0ZsYWcgeworKwkJRElTQUJMRV9TV0FQX0VWRU5UUywKKysJCURJU0FCTEVfQ0xJ UFBFRF9SRURSQVdTLAorKwkJUkVEUkFXUywKKysJCVBBSU5UX1ZPTFVNRVMsCisrCQlESVNBQkxF X0NVTExJTkcsCisrCQlESVNBQkxFX09GRlNDUkVFTl9SRURJUkVDVCwKKysJCUNPTlRJTlVPVVNf UkVEUkFXLAorKwkJUEFJTlRfREVGT1JNX1RJTEVTLAorKwkJUEFJTlRfREFNQUdFX1JFR0lPTgor Kwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNw cmVmaXggPSAiQ0xVVFRFUl9FRkZFQ1RfUEFJTlRfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2VmZmVj dF9wYWludF9mbGFnc19nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCisgCXB1YmxpYyBlbnVtIEVm ZmVjdFBhaW50RmxhZ3MgeworLQkJW0NDb2RlIChjbmFtZSA9ICJDTFVUVEVSX0VGRkVDVF9QQUlO VF9BQ1RPUl9ESVJUWSIpXQorLQkJQUNUT1JfRElSVFkKKysJCUFDVE9SX0RJUlRZLAorKwkJQllQ QVNTX0VGRkVDVAorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9FVkVOVF8iLCB0eXBlX2lkID0gImNsdXR0ZXJf ZXZlbnRfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKyAJW0ZsYWdzXQorQEAgLTgzOTIsMjEgKzc2NDgs MTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlbRmxhZ3NdCisgCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjQiKV0KKyAJcHVibGljIGVudW0gRmVhdHVyZUZsYWdzIHsKKy0JCVRFWFRVUkVfTlBPVCwK Ky0JCVNXQVBfVEhST1RUTEUsCistCQlURVhUVVJFX1lVViwKKy0JCVRFWFRVUkVfUkVBRF9QSVhF TFMsCisgCQlTVEFHRV9TVEFUSUMsCistCQlTVEFHRV9VU0VSX1JFU0laRSwKKyAJCVNUQUdFX0NV UlNPUiwKKyAJCVNIQURFUlNfR0xTTCwKKyAJCU9GRlNDUkVFTiwKKyAJCVNUQUdFX01VTFRJUExF LAorLQkJU1dBUF9FVkVOVFM7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfZmVhdHVyZV9h dmFpbGFibGUiKV0KKy0JCXB1YmxpYyBib29sIGlzX2F2YWlsYWJsZSAoKTsKKy0JCVtDQ29kZSAo Y25hbWUgPSAiY2x1dHRlcl9mZWF0dXJlX2dldF9hbGwiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ2x1 dHRlci5GZWF0dXJlRmxhZ3MgQGdldCAoKTsKKysJCVNXQVBfRVZFTlRTCisgCX0KKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVU VEVSX0ZMT1dfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2Zsb3dfb3JpZW50YXRpb25fZ2V0X3R5cGUg KCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorQEAgLTg0MTQsMTIgKzc2NjEsMTAg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJSE9SSVpPTlRBTCwKKyAJCVZFUlRJQ0FMCisgCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZp eCA9ICJDTFVUVEVSX0ZPTlRfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2ZvbnRfZmxhZ3NfZ2V0X3R5 cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4yMiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBGb250 RmxhZ3MgeworLQkJTUlQTUFQUElORywKKy0JCUhJTlRJTkcKKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0ZSQU1FX1JF U1VMVF8iLCB0eXBlX2lkID0gImNsdXR0ZXJfZnJhbWVfcmVzdWx0X2dldF90eXBlICgpIildCisr CXB1YmxpYyBlbnVtIEZyYW1lUmVzdWx0IHsKKysJCVBFTkRJTkdfUFJFU0VOVEVELAorKwkJSURM RQorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIs IGNwcmVmaXggPSAiQ0xVVFRFUl9HRVNUVVJFX1RSSUdHRVJfRURHRV8iLCB0eXBlX2lkID0gImNs dXR0ZXJfZ2VzdHVyZV90cmlnZ2VyX2VkZ2VfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTgiKV0KK0BAIC04NjM0LDcgKzc4NzksOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJcHVibGljIGVudW0gT2Zmc2NyZWVuUmVk aXJlY3QgeworIAkJQVVUT01BVElDX0ZPUl9PUEFDSVRZLAorLQkJQUxXQVlTCisrCQlBTFdBWVMs CisrCQlPTl9JRExFCisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX09SSUVOVEFUSU9OXyIsIHR5cGVfaWQgPSAi Y2x1dHRlcl9vcmllbnRhdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMiIpXQorQEAgLTg2NDIsNiArNzg4OCwxMyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlI T1JJWk9OVEFMLAorIAkJVkVSVElDQUwKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfUEFJTlRfRkxBR18iLCB0 eXBlX2lkID0gImNsdXR0ZXJfcGFpbnRfZmxhZ19nZXRfdHlwZSAoKSIpXQorKwlbRmxhZ3NdCisr CXB1YmxpYyBlbnVtIFBhaW50RmxhZyB7CisrCQlOT05FLAorKwkJTk9fQ1VSU09SUywKKysJCUZP UkNFX0NVUlNPUlMKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfUEFOXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9w YW5fYXhpc19nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAlw dWJsaWMgZW51bSBQYW5BeGlzIHsKK0BAIC04NjYxLDYgKzc5MTQsMTEgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJUkVMX0xJTkVfVE8sCisgCQlSRUxfQ1VSVkVfVE8KKyAJfQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRU RVJfREVCVUdfTk9QXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9waWNrX2RlYnVnX2ZsYWdfZ2V0X3R5 cGUgKCkiKV0KKysJW0ZsYWdzXQorKwlwdWJsaWMgZW51bSBQaWNrRGVidWdGbGFnIHsKKysJCVBJ Q0tJTkcKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCBjcHJlZml4ID0gIkNMVVRURVJfUElDS18iLCB0eXBlX2lkID0gImNsdXR0ZXJfcGlja19t b2RlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGlj IGVudW0gUGlja01vZGUgeworQEAgLTg2NjgsMTMgKzc5MjYsNDYgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJUkVBQ1RJVkUsCisgCQlBTEwKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfQTExWV9EV0VMTF9D TElDS19UWVBFXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wb2ludGVyX2ExMXlfZHdlbGxfY2xpY2tf dHlwZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgZW51bSBQb2ludGVyQTExeUR3ZWxsQ2xpY2tU eXBlIHsKKysJCU5PTkUsCisrCQlQUklNQVJZLAorKwkJU0VDT05EQVJZLAorKwkJTUlERExFLAor KwkJRE9VQkxFLAorKwkJRFJBRworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9BMTFZX0RXRUxMX0RJUkVDVElP Tl8iLCB0eXBlX2lkID0gImNsdXR0ZXJfcG9pbnRlcl9hMTF5X2R3ZWxsX2RpcmVjdGlvbl9nZXRf dHlwZSAoKSIpXQorKwlwdWJsaWMgZW51bSBQb2ludGVyQTExeUR3ZWxsRGlyZWN0aW9uIHsKKysJ CU5PTkUsCisrCQlMRUZULAorKwkJUklHSFQsCisrCQlVUCwKKysJCURPV04KKysJfQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNM VVRURVJfQTExWV9EV0VMTF9NT0RFXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wb2ludGVyX2ExMXlf ZHdlbGxfbW9kZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgZW51bSBQb2ludGVyQTExeUR3ZWxs TW9kZSB7CisrCQlXSU5ET1csCisrCQlHRVNUVVJFCisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0ExMVlfIiwg dHlwZV9pZCA9ICJjbHV0dGVyX3BvaW50ZXJfYTExeV9mbGFnc19nZXRfdHlwZSAoKSIpXQorKwlb RmxhZ3NdCisrCXB1YmxpYyBlbnVtIFBvaW50ZXJBMTF5RmxhZ3MgeworKwkJU0VDT05EQVJZX0NM SUNLX0VOQUJMRUQsCisrCQlEV0VMTF9FTkFCTEVECisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0ExMVlfVElN RU9VVF9UWVBFXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wb2ludGVyX2ExMXlfdGltZW91dF90eXBl X2dldF90eXBlICgpIildCisrCXB1YmxpYyBlbnVtIFBvaW50ZXJBMTF5VGltZW91dFR5cGUgewor KwkJU0VDT05EQVJZX0NMSUNLLAorKwkJRFdFTEwsCisrCQlHRVNUVVJFCisrCX0KKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVU VEVSX1JFUEFJTlRfRkxBR1NfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3JlcGFpbnRfZmxhZ3NfZ2V0 X3R5cGUgKCkiKV0KKyAJW0ZsYWdzXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlw dWJsaWMgZW51bSBSZXBhaW50RmxhZ3MgeworIAkJUFJFX1BBSU5ULAorLQkJUE9TVF9QQUlOVCwK Ky0JCVFVRVVFX1JFRFJBV19PTl9BREQKKysJCVBPU1RfUEFJTlQKKyAJfQorIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJf UkVRVUVTVF8iLCB0eXBlX2lkID0gImNsdXR0ZXJfcmVxdWVzdF9tb2RlX2dldF90eXBlICgpIild CisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KK0BAIC04NzU1LDggKzgwNDYsNiBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCVtGbGFnc10KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQor IAlwdWJsaWMgZW51bSBTdGFnZVN0YXRlIHsKKy0JCUZVTExTQ1JFRU4sCistCQlPRkZTQ1JFRU4s CisgCQlBQ1RJVkFURUQKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfQ09MT1JfIiwgdHlwZV9pZCA9ICJjbHV0 dGVyX3N0YXRpY19jb2xvcl9nZXRfdHlwZSAoKSIpXQorQEAgLTg4MjMsMTMgKzgxMTIsNiBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlMRUZULAorIAkJUklHSFQKKyAJfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJf VEFCTEVfQUxJR05NRU5UXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl90YWJsZV9hbGlnbm1lbnRfZ2V0 X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMjIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGVudW0gVGFibGVBbGlnbm1l bnQgeworLQkJU1RBUlQsCistCQlDRU5URVIsCistCQlFTkQKKy0JfQorIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfVEVY VF9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RleHRfZGlyZWN0aW9uX2dldF90eXBl ICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJcHVibGljIGVudW0gVGV4dERp cmVjdGlvbiB7CitAQCAtODkwNSwyOCArODE4NywxNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlWQUxVRTsKKyAJCXB1YmxpYyBzdGF0aWMgR0xpYi5RdWFyayBxdWFyayAoKTsKKyAJfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0g IkNMVVRURVJfVEVYVFVSRV9FUlJPUl8iKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQor LQlwdWJsaWMgZXJyb3Jkb21haW4gVGV4dHVyZUVycm9yIHsKKy0JCU9VVF9PRl9NRU1PUlksCist CQlOT19ZVVYsCistCQlCQURfRk9STUFUOworLQkJcHVibGljIHN0YXRpYyBHTGliLlF1YXJrIHF1 YXJrICgpOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjI0Iild CisgCXB1YmxpYyBkZWxlZ2F0ZSBDbHV0dGVyLkFjdG9yIEFjdG9yQ3JlYXRlQ2hpbGRGdW5jIChH TGliLk9iamVjdCBpdGVtKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjIiKV0KKy0JcHVi bGljIGRlbGVnYXRlIGRvdWJsZSBBbHBoYUZ1bmMgKENsdXR0ZXIuQWxwaGEgYWxwaGEpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBpbnN0YW5jZV9w b3MgPSAyLjkpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS42Iiwgc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIEJlaGF2 aW91ckZvcmVhY2hGdW5jIChDbHV0dGVyLkJlaGF2aW91ciBiZWhhdmlvdXIsIENsdXR0ZXIuQWN0 b3IgYWN0b3IpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCBpbnN0YW5jZV9wb3MgPSA0LjkpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisg CXB1YmxpYyBkZWxlZ2F0ZSBib29sIEJpbmRpbmdBY3Rpb25GdW5jIChHTGliLk9iamVjdCBnb2Jq ZWN0LCBzdHJpbmcgYWN0aW9uX25hbWUsIHVpbnQga2V5X3ZhbCwgQ2x1dHRlci5Nb2RpZmllclR5 cGUgbW9kaWZpZXJzKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJcHVibGljIGRlbGVnYXRlIHZvaWQgQ2Fs bGJhY2sgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCBoYXNfdGFyZ2V0ID0gZmFsc2UpXQorKwlwdWJsaWMgZGVs ZWdhdGUgdm9pZCBFbWl0SW5wdXREZXZpY2VFdmVudCAoQ2x1dHRlci5FdmVudCBldmVudCwgQ2x1 dHRlci5JbnB1dERldmljZSBkZXZpY2UpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorIAlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xOCIpXQorIAlwdWJsaWMgZGVsZWdhdGUgYm9vbCBFdmVudEZpbHRlckZ1bmMgKENs dXR0ZXIuRXZlbnQgZXZlbnQpOworQEAgLTg5NTcsOSArODIyNyw2IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAlwdWJsaWMgY29uc3QgaW50IFBS SU9SSVRZX1JFRFJBVzsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCXB1YmxpYyBzdGF0aWMg Q2x1dHRlci5BY3RvckJveD8gYWN0b3JfYm94X2FsbG9jICgpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIGJh c2VfaW5pdCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCitAQCAtODk3MSwzNyArODIzOCwx MiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisg CXB1YmxpYyBzdGF0aWMgYm9vbCBjaGVja193aW5kb3dpbmdfYmFja2VuZCAoc3RyaW5nIGJhY2tl bmRfdHlwZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIsIHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgY2xlYXJfZ2x5cGhf Y2FjaGUgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgY29sb3JfZnJvbV9obHMgKG91dCBDbHV0dGVyLkNv bG9yIGNvbG9yLCBmbG9hdCBodWUsIGZsb2F0IGx1bWluYW5jZSwgZmxvYXQgc2F0dXJhdGlvbik7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgY29sb3JfZnJvbV9waXhlbCAob3V0IENsdXR0ZXIuQ29sb3IgY29s b3IsIHVpbnQzMiBwaXhlbCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0 aWMgYm9vbCBjb2xvcl9mcm9tX3N0cmluZyAob3V0IENsdXR0ZXIuQ29sb3IgY29sb3IsIHN0cmlu ZyBzdHIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQg Q2x1dHRlci5Db2xvcj8gY29sb3JfZ2V0X3N0YXRpYyAoQ2x1dHRlci5TdGF0aWNDb2xvciBjb2xv cik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQor IAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgZGlzYWJs ZV9hY2Nlc3NpYmlsaXR5ICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAlwdWJsaWMgc3Rh dGljIHZvaWQgZG9fZXZlbnQgKENsdXR0ZXIuRXZlbnQgZXZlbnQpOworIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0g IjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyB1aW50IGV2ZW50X2FkZF9maWx0ZXIgKENsdXR0ZXIu U3RhZ2U/IHN0YWdlLCBbQ0NvZGUgKGRlbGVnYXRlX3RhcmdldF9wb3MgPSAyLjIsIGRlc3Ryb3lf bm90aWZ5X3BvcyA9IDIuMSldIG93bmVkIENsdXR0ZXIuRXZlbnRGaWx0ZXJGdW5jIGZ1bmMpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1Zl cnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuRXZlbnQgZXZl bnRfZ2V0ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQlwdWJsaWMgc3RhdGljIHVub3du ZWQgQ2x1dHRlci5FdmVudCBldmVudF9wZWVrICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0K Ky0JcHVibGljIHN0YXRpYyB2b2lkIGV2ZW50X3JlbW92ZV9maWx0ZXIgKHVpbnQgaWQpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNp b24gKHNpbmNlID0gIjAuNCIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgZXZlbnRzX3BlbmRpbmcg KCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQor QEAgLTkwMTQsOSArODI1Niw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3RhdGljIHVpbnQzMiBnZXRfY3VycmVudF9ldmVudF90 aW1lICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGdldF9kZWJ1Z19lbmFibGVkICgpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24g KHNpbmNlID0gIjAuNCIpXQorIAlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5CYWNrZW5k IGdldF9kZWZhdWx0X2JhY2tlbmQgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIpXQorQEAgLTkwMjYsMTggKzgyNjUsOSBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJcHVibGljIHN0YXRpYyBDbHV0 dGVyLlRleHREaXJlY3Rpb24gZ2V0X2RlZmF1bHRfdGV4dF9kaXJlY3Rpb24gKCk7CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEu MCIpXQorLQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuRm9udEZsYWdzIGdldF9mb250X2ZsYWdzICgp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3RhdGljIHVub3duZWQgUGFuZ28u Rm9udE1hcCBnZXRfZm9udF9tYXAgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCXB1Ymxp YyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9rZXlib2FyZF9ncmFiICgpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0g IjAuNiIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X21vdGlvbl9ldmVudHNfZW5hYmxlZCAo KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisg CVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KKyAJcHVibGljIHN0YXRpYyBHTGliLk9wdGlvbkdy b3VwIGdldF9vcHRpb25fZ3JvdXAgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIpXQorQEAgLTkwNDUsMjYgKzgyNzUsOCBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCXB1YmxpYyBzdGF0aWMgR0xpYi5PcHRpb25Hcm91cCBnZXRfb3B0aW9uX2dyb3Vw X3dpdGhvdXRfaW5pdCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0YXRp YyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3BvaW50ZXJfZ3JhYiAoKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjYiKV0KKyAJcHVibGljIHN0YXRpYyB1bm93bmVkIHN0cmluZyBnZXRfc2NyaXB0X2lk IChHTGliLk9iamVjdCBnb2JqZWN0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40IildCistCXB1YmxpYyBzdGF0aWMgYm9v bCBnZXRfc2hvd19mcHMgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHVsb25nIGdldF90aW1lc3RhbXAgKCk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlb VmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBncmFiX2tleWJv YXJkIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIGdyYWJfcG9pbnRlciAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0g IjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZ3JhYl9wb2ludGVyX2Zvcl9kZXZpY2UgKENs dXR0ZXIuQWN0b3IgYWN0b3IsIGludCBpZF8pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJcHVibGljIHN0YXRpYyBDbHV0dGVyLkluaXRFcnJv ciBpbml0IChbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJhcmdjIiwgYXJyYXlfbGVuZ3Ro X3BvcyA9IDAuNSldIHJlZiB1bm93bmVkIHN0cmluZ1tdPyBhcmd2KTsKKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjIiKV0KK0BAIC05MDgwLDQxICs4MjkyLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJcHVibGlj IHN0YXRpYyB2b2lkIHNldF9jdXN0b21fYmFja2VuZF9mdW5jICh2b2lkKiBmdW5jKTsKKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAi MC42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfZGVmYXVsdF9mcmFtZV9yYXRlICh1aW50 IGZyYW1lc19wZXJfc2VjKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRf Zm9udF9mbGFncyAoQ2x1dHRlci5Gb250RmxhZ3MgZmxhZ3MpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjAuNiIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgc2V0X21vdGlvbl9ldmVudHNfZW5hYmxlZCAoYm9vbCBlbmFibGUpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1Zl cnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHRlc3RfYWRkX2Rh dGFfZnVsbCAoc3RyaW5nIHRlc3RfcGF0aCwgb3duZWQgR0xpYi5UZXN0RGF0YUZ1bmMgdGVzdF9m dW5jKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIild CistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMgYm9vbCB0ZXN0 X2NoZWNrX2FjdG9yX2F0X3BvaW50IChDbHV0dGVyLkFjdG9yIHN0YWdlLCBDbHV0dGVyLlBvaW50 IHBvaW50LCBDbHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQgQ2x1dHRlci5BY3Rvcj8gcmVzdWx0KTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMgYm9vbCB0ZXN0X2NoZWNr X2NvbG9yX2F0X3BvaW50IChDbHV0dGVyLkFjdG9yIHN0YWdlLCBDbHV0dGVyLlBvaW50IHBvaW50 LCBDbHV0dGVyLkNvbG9yIGNvbG9yLCBvdXQgQ2x1dHRlci5Db2xvciByZXN1bHQpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24g KHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3Ig dGVzdF9nZXRfc3RhZ2UgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdGVzdF9pbml0IChpbnQgYXJnYywg c3RyaW5nIGFyZ3YpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyBp bnQgdGVzdF9ydW4gKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMg dm9pZCB1bmdyYWJfa2V5Ym9hcmQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCXB1Ymxp YyBzdGF0aWMgdm9pZCB1bmdyYWJfcG9pbnRlciAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44IildCistCXB1YmxpYyBz dGF0aWMgdm9pZCB1bmdyYWJfcG9pbnRlcl9mb3JfZGV2aWNlIChpbnQgaWRfKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBzdGF0aWMgdWludCB1bmljb2RlX3RvX2tleXN5bSAo dWludDMyIHdjKTsKKyB9CitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNvZ2wtNS1jdXN0b20udmFs YSB2YXBpL211dHRlci1jb2dsLTYtY3VzdG9tLnZhbGEKK3NpbWlsYXJpdHkgaW5kZXggMTAwJQor cmVuYW1lIGZyb20gdmFwaS9tdXR0ZXItY29nbC01LWN1c3RvbS52YWxhCityZW5hbWUgdG8gdmFw aS9tdXR0ZXItY29nbC02LWN1c3RvbS52YWxhCitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNvZ2wt NC5kZXBzIHZhcGkvbXV0dGVyLWNvZ2wtNi5kZXBzCitzaW1pbGFyaXR5IGluZGV4IDEwMCUKK3Jl bmFtZSBmcm9tIHZhcGkvbXV0dGVyLWNvZ2wtNC5kZXBzCityZW5hbWUgdG8gdmFwaS9tdXR0ZXIt Y29nbC02LmRlcHMKK2RpZmYgLS1naXQgdmFwaS9tdXR0ZXItY29nbC01LnZhcGkgdmFwaS9tdXR0 ZXItY29nbC02LnZhcGkKK3NpbWlsYXJpdHkgaW5kZXggNjglCityZW5hbWUgZnJvbSB2YXBpL211 dHRlci1jb2dsLTUudmFwaQorcmVuYW1lIHRvIHZhcGkvbXV0dGVyLWNvZ2wtNi52YXBpCitpbmRl eCBhODk2MTIyNC4uMTk1ZTNiMTcgMTAwNjQ0CistLS0gdmFwaS9tdXR0ZXItY29nbC01LnZhcGkK KysrKyB2YXBpL211dHRlci1jb2dsLTYudmFwaQorQEAgLTEsNiArMSw2IEBACistLyogbXV0dGVy LWNvZ2wtNS52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLworKy8q IG11dHRlci1jb2dsLTYudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4g Ki8KKyAKKy1bQ0NvZGUgKGNwcmVmaXggPSAiQ29nbCIsIGdpcl9uYW1lc3BhY2UgPSAiQ29nbCIs IGdpcl92ZXJzaW9uID0gIjUiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAiY29nbF8iKV0KKytbQ0Nv ZGUgKGNwcmVmaXggPSAiQ29nbCIsIGdpcl9uYW1lc3BhY2UgPSAiQ29nbCIsIGdpcl92ZXJzaW9u ID0gIjYiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAiY29nbF8iKV0KKyBuYW1lc3BhY2UgQ29nbCB7 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNv Z2xIYW5kbGUiLCB0eXBlX2lkID0gImNvZ2xfYml0bWFwX2dldF9ndHlwZSAoKSIpXQorIAlbQ29t cGFjdF0KK0BAIC0yOCw5ICsyOCwxMCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgYm9v bCBzZXRfZGF0YSAoc2l6ZV90IG9mZnNldCwgW0NDb2RlIChhcnJheV9sZW5ndGhfdHlwZSA9ICJz aXplX3QiKV0gdWludDhbXSBkYXRhKTsKKyAJCXB1YmxpYyB2b2lkIHVubWFwICgpOworIAl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIEV1bGVyIHsKKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX2NvbnRleHRf Z2V0X2d0eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBDb250ZXh0IDogQ29nbC5PYmplY3Qgewor KwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVk IENvbnRleHQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdf Ym94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY29nbF9mcmFtZV9jbG9zdXJlX2dldF9ndHlwZSAoKSIp XQorIAlbQ29tcGFjdF0KK0BAIC02NSw2MiArNjYsMTcgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKyAJCXB1YmxpYyBN YXRlcmlhbCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgQ29nbC5NYXRlcmlhbCBj b3B5ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGZvcmVhY2hfbGF5ZXIg KENvZ2wuTWF0ZXJpYWxMYXllckNhbGxiYWNrIGNhbGxiYWNrKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgdm9pZCBnZXRfYW1iaWVudCAoQ29nbC5Db2xvciBhbWJpZW50KTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgQ29nbC5Db2xvciBnZXRfY29sb3IgKCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2RpZmZ1c2UgKENvZ2wuQ29sb3IgZGlmZnVz ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2VtaXNzaW9uIChDb2ds LkNvbG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCBnZXRf bGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBz aW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X2xheWVy X3dyYXBfbW9kZV9wIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JCXB1 YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5 ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3Jh cE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJfaW5kZXgpOworLQkJcHVibGlj IHVub3duZWQgR0xpYi5MaXN0PENvZ2wuTWF0ZXJpYWxMYXllcj4gZ2V0X2xheWVycyAoKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgaW50IGdldF9uX2xheWVycyAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS40IildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3BvaW50X3NpemUgKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIGZsb2F0IGdldF9zaGluaW5lc3MgKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEu MCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBDb2dsLkhhbmRsZSBnZXRfdXNl cl9wcm9ncmFtICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVk IENvZ2wuSGFuZGxlIEByZWYgKENvZ2wuSGFuZGxlIG1hdGVyaWFsKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMg dm9pZCByZW1vdmVfbGF5ZXIgKGludCBsYXllcl9pbmRleCk7CisgCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQor IAkJcHVibGljIHZvaWQgc2V0X2FscGhhX3Rlc3RfZnVuY3Rpb24gKENvZ2wuTWF0ZXJpYWxBbHBo YUZ1bmMgYWxwaGFfZnVuYywgZmxvYXQgYWxwaGFfcmVmZXJlbmNlKTsKKyAJCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4w IildCistCQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVudCAoQ29nbC5Db2xvciBhbWJpZW50KTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVudF9hbmRfZGlmZnVzZSAo Q29nbC5Db2xvciBjb2xvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIGJvb2wgc2V0 X2JsZW5kIChzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfYmxlbmRfY29uc3RhbnQgKENvZ2wuQ29sb3Ig Y29uc3RhbnRfY29sb3IpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9j b2xvciAoQ29nbC5Db2xvciBjb2xvcik7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZv aWQgc2V0X2NvbG9yNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0 IGFscGhhKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfY29sb3I0dWIg KHVpbnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsKKyAJCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZm dXNlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZW1pc3Npb24gKENv Z2wuQ29sb3IgZW1pc3Npb24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNl dF9sYXllciAoaW50IGxheWVyX2luZGV4LCBDb2dsLkhhbmRsZSB0ZXh0dXJlKTsKKyAJCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS4wIildCisgCQlwdWJsaWMgYm9vbCBzZXRfbGF5ZXJfY29tYmluZSAoaW50IGxheWVyX2lu ZGV4LCBzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKK0BAIC0xMzMsNDEg Kzg5LDEzIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMg Ym9vbCBzZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5ZXJfaW5k ZXgsIGJvb2wgZW5hYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCist CQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wu TWF0ZXJpYWxXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9p ZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRlcmlhbFdy YXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXll cl93cmFwX21vZGVfcyAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgbW9k ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9k ZV90IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBtb2RlKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2lu Y2UgPSAiMS40IildCisgCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRfc2l6ZSAoZmxvYXQgcG9pbnRf c2l6ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NoaW5pbmVzcyAo ZmxvYXQgc2hpbmluZXNzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRf c3BlY3VsYXIgKENvZ2wuQ29sb3Igc3BlY3VsYXIpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKyAJCXB1 YmxpYyB2b2lkIHNldF91c2VyX3Byb2dyYW0gKENvZ2wuSGFuZGxlIHByb2dyYW0pOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIsIHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHVucmVmIChDb2dsLkhhbmRsZSBtYXRl cmlhbCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg aGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtDb21wYWN0XQorIAlwdWJsaWMgY2xhc3MgTWF0ZXJp YWxMYXllciB7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgZ2V0X21hZ19maWx0 ZXIgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgZ2V0X21pbl9maWx0ZXIg KCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIpXQorLQkJcHVibGljIHVub3duZWQgQ29nbC5IYW5kbGUgZ2V0X3RleHR1cmUgKCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIp XQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxMYXllclR5cGUgZ2V0X3R5cGUgKCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNl ID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfd3JhcF9tb2Rl X3AgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9k ZSBnZXRfd3JhcF9tb2RlX3MgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wu TWF0ZXJpYWxXcmFwTW9kZSBnZXRfd3JhcF9tb2RlX3QgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX29iamVjdF9nZXRf Z3R5cGUgKCkiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIE9iamVjdCB7CitAQCAtMTc4LDEz ICsxMDYsOSBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCXB1YmxpYyBjbGFzcyBPZmZzY3JlZW4gOiBD b2dsLk9iamVjdCwgQ29nbC5GcmFtZWJ1ZmZlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3Rf ZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgT2Zmc2NyZWVuICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQkJcHVi bGljIHN0YXRpYyB2b2lkKiBAcmVmICh2b2lkKiBvZmZzY3JlZW4pOworIAkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKyAJCXB1YmxpYyBPZmZzY3JlZW4udG9f dGV4dHVyZSAoQ29nbC5UZXh0dXJlIHRleHR1cmUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lk IHVucmVmICh2b2lkKiBvZmZzY3JlZW4pOworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UpXQorIAkJcHVibGljIE9mZnNjcmVlbi53aXRoX3RleHR1cmUgKENvZ2wuVGV4 dHVyZSB0ZXh0dXJlKTsKKyAJfQorQEAgLTE5Niw5ICsxMjAsNiBAQCBuYW1lc3BhY2UgQ29nbCB7 CisgCQlwdWJsaWMgQ29nbC5PbnNjcmVlbkRpcnR5Q2xvc3VyZSBhZGRfZGlydHlfY2FsbGJhY2sg KFtDQ29kZSAoZGVsZWdhdGVfdGFyZ2V0X3BvcyA9IDEuNSldIENvZ2wuT25zY3JlZW5EaXJ0eUNh bGxiYWNrIGNhbGxiYWNrLCBDb2dsLlVzZXJEYXRhRGVzdHJveUNhbGxiYWNrPyBkZXN0cm95KTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBDb2dsLk9uc2NyZWVuUmVz aXplQ2xvc3VyZSBhZGRfcmVzaXplX2NhbGxiYWNrIChbQ0NvZGUgKGRlbGVnYXRlX3RhcmdldF9w b3MgPSAxLjUpXSBDb2dsLk9uc2NyZWVuUmVzaXplQ2FsbGJhY2sgY2FsbGJhY2ssIENvZ2wuVXNl ckRhdGFEZXN0cm95Q2FsbGJhY2s/IGRlc3Ryb3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTQiLCBzaW5jZSA9ICIxLjEwIildCistCQlw dWJsaWMgdWludCBhZGRfc3dhcF9idWZmZXJzX2NhbGxiYWNrIChDb2dsLlN3YXBCdWZmZXJzTm90 aWZ5IGNhbGxiYWNrKTsKKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBjbHV0dGVyX2JhY2tlbmRfc2V0 X3NpemVfQ0xVVFRFUiAoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjE0IildCisgCQlwdWJsaWMgaW50IGdldF9idWZmZXJfYWdlICgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTQiKV0KK0BAIC0yMTMsOCArMTM0LDYgQEAgbmFtZXNwYWNlIENvZ2wg eworIAkJcHVibGljIHZvaWQgcmVtb3ZlX2ZyYW1lX2NhbGxiYWNrIChDb2dsLkZyYW1lQ2xvc3Vy ZSBjbG9zdXJlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lk IHJlbW92ZV9yZXNpemVfY2FsbGJhY2sgKENvZ2wuT25zY3JlZW5SZXNpemVDbG9zdXJlIGNsb3N1 cmUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTQiLCBzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfc3dhcF9idWZm ZXJzX2NhbGxiYWNrICh1aW50IGlkKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJ CXB1YmxpYyB2b2lkIHNldF9yZXNpemFibGUgKGJvb2wgcmVzaXphYmxlKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KK0BAIC0yNDQsNyArMTYzLDggQEAgbmFtZXNwYWNlIENvZ2wgewor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNv Z2xfcGlwZWxpbmVfZ2V0X2d0eXBlICgpIildCisgCXB1YmxpYyBjbGFzcyBQaXBlbGluZSA6IENv Z2wuT2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0K Ky0JCXByb3RlY3RlZCBQaXBlbGluZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K KysJCXB1YmxpYyBQaXBlbGluZSAoQ29nbC5Db250ZXh0IGNvbnRleHQpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmUgY29weSAoKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KK0BAIC0yNTQsMTYgKzE3NCwxMCBAQCBuYW1lc3BhY2Ug Q29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgZmxvYXQgZ2V0 X2FscGhhX3Rlc3RfcmVmZXJlbmNlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQor LQkJcHVibGljIHZvaWQgZ2V0X2FtYmllbnQgKENvZ2wuQ29sb3IgYW1iaWVudCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgQ29nbC5Db2xvciBnZXRfY29sb3IgKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgQ29nbC5QaXBlbGluZUN1 bGxGYWNlTW9kZSBnZXRfY3VsbF9mYWNlX21vZGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNlKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9lbWlzc2lv biAoQ29nbC5Db2xvciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisg CQlwdWJsaWMgQ29nbC5XaW5kaW5nIGdldF9mcm9udF9mYWNlX3dpbmRpbmcgKCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmVGaWx0ZXIgZ2V0 X2xheWVyX21hZ19maWx0ZXIgKGludCBsYXllcl9pbmRleCk7CitAQCAtMjc0LDggKzE4OCw2IEBA IG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJs aWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X2xheWVyX3RleHR1cmUgKGludCBsYXllcl9pbmRl eCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgQ29nbC5QaXBlbGlu ZVdyYXBNb2RlIGdldF9sYXllcl93cmFwX21vZGVfcCAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBDb2dsLlBpcGVsaW5lV3JhcE1vZGUg Z2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNiIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBnZXRfbGF5ZXJf d3JhcF9tb2RlX3QgKGludCBsYXllcl9pbmRleCk7CitAQCAtMjg2LDEwICsxOTgsNiBAQCBuYW1l c3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgZmxv YXQgZ2V0X3BvaW50X3NpemUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlw dWJsaWMgZmxvYXQgZ2V0X3NoaW5pbmVzcyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAi KV0KKy0JCXB1YmxpYyB2b2lkIGdldF9zcGVjdWxhciAoQ29nbC5Db2xvciBzcGVjdWxhcik7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgaW50IGdldF91bmlmb3JtX2xv Y2F0aW9uIChzdHJpbmcgdW5pZm9ybV9uYW1lKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAi KV0KKyAJCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxlIGdldF91c2VyX3Byb2dyYW0gKCk7CitA QCAtMjk4LDEwICsyMDYsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGFfdGVzdF9mdW5jdGlvbiAoQ29nbC5Q aXBlbGluZUFscGhhRnVuYyBhbHBoYV9mdW5jLCBmbG9hdCBhbHBoYV9yZWZlcmVuY2UpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FtYmllbnQgKENv Z2wuQ29sb3IgYW1iaWVudCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJs aWMgdm9pZCBzZXRfYW1iaWVudF9hbmRfZGlmZnVzZSAoQ29nbC5Db2xvciBjb2xvcik7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgYm9vbCBzZXRfYmxlbmQgKHN0cmlu ZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2JsZW5kX2NvbnN0YW50IChDb2dsLkNvbG9yIGNv bnN0YW50X2NvbG9yKTsKK0BAIC0zMTQsMTAgKzIxOCw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9jdWxsX2ZhY2Vf bW9kZSAoQ29nbC5QaXBlbGluZUN1bGxGYWNlTW9kZSBjdWxsX2ZhY2VfbW9kZSk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZGlmZnVzZSAoQ29nbC5D b2xvciBkaWZmdXNlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9lbWlzc2lvbiAoQ29nbC5Db2xvciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfZnJvbnRfZmFjZV93aW5kaW5nIChDb2ds LldpbmRpbmcgZnJvbnRfd2luZGluZyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisg CQlwdWJsaWMgYm9vbCBzZXRfbGF5ZXJfY29tYmluZSAoaW50IGxheWVyX2luZGV4LCBzdHJpbmcg YmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKK0BAIC0zMzUsOCArMjM1LDYgQEAgbmFt ZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZv aWQgc2V0X2xheWVyX3dyYXBfbW9kZSAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lV3Jh cE1vZGUgbW9kZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9p ZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCwgQ29nbC5QaXBlbGluZVdy YXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZv aWQgc2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVX cmFwTW9kZSBtb2RlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2 b2lkIHNldF9sYXllcl93cmFwX21vZGVfdCAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5l V3JhcE1vZGUgbW9kZSk7CitAQCAtMzQ1LDEwICsyNDMsNiBAQCBuYW1lc3BhY2UgQ29nbCB7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRfc2l6 ZSAoZmxvYXQgcG9pbnRfc2l6ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlw dWJsaWMgdm9pZCBzZXRfc2hpbmluZXNzIChmbG9hdCBzaGluaW5lc3MpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NwZWN1bGFyIChDb2dsLkNvbG9y IHNwZWN1bGFyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lk IHNldF91bmlmb3JtXzFmIChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgZmxvYXQgdmFsdWUpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3VuaWZvcm1fMWkg KGludCB1bmlmb3JtX2xvY2F0aW9uLCBpbnQgdmFsdWUpOworQEAgLTM4MiwxMCArMjc2LDYgQEAg bmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIHN0YXRpYyB2b2lkIHVuaWZvcm1fbWF0cml4IChp bnQgdW5pZm9ybV9ubywgaW50IHNpemUsIGJvb2wgdHJhbnNwb3NlLCBbQ0NvZGUgKGFycmF5X2xl bmd0aF9wb3MgPSAyLjkpXSBmbG9hdFtdIHZhbHVlKTsKKyAJCXB1YmxpYyB2b2lkIHVzZSAoKTsK KyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlw ZV9pZCA9IGZhbHNlKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBRdWF0ZXJuaW9uIHsK Ky0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9 ICJDb2dsSGFuZGxlIiwgcmVmX2Z1bmN0aW9uID0gImNvZ2xfc2hhZGVyX3JlZiIsIHVucmVmX2Z1 bmN0aW9uID0gImNvZ2xfc2hhZGVyX3VucmVmIildCisgCVtDb21wYWN0XQorIAlwdWJsaWMgY2xh c3MgU2hhZGVyIDogQ29nbC5IYW5kbGUgeworQEAgLTQ2NSwxMiArMzU1LDEwIEBAIG5hbWVzcGFj ZSBDb2dsIHsKKyAJCXB1YmxpYyBpbnQgZ2V0X2FscGhhX2JpdHMgKCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgaW50IGdldF9ibHVlX2JpdHMgKCk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS44IildCisrCQlwdWJsaWMgdW5vd25lZCBDb2dsLkNvbnRleHQgZ2V0 X2NvbnRleHQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgaW50 IGdldF9kZXB0aF9iaXRzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1 YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfZGVwdGhfdGV4dHVyZSAoKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMgYm9vbCBnZXRfZGVwdGhfdGV4dHVyZV9l bmFibGVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKyAJCXB1YmxpYyBib29s IGdldF9kZXB0aF93cml0ZV9lbmFibGVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIp XQorQEAgLTUxNiw2ICs0MDQsNyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgdm9pZCBw dXNoX21hdHJpeCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMg dm9pZCBwdXNoX3JlY3RhbmdsZV9jbGlwIChmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8y LCBmbG9hdCB5XzIpOworKwkJcHVibGljIHZvaWQgcHVzaF9yZWdpb25fY2xpcCAoQ2Fpcm8uUmVn aW9uIHJlZ2lvbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZv aWQgcHVzaF9zY2lzc29yX2NsaXAgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0 KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNTI5LDEzICs0MTgsOSBAQCBu YW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGlj IHZvaWQgcm90YXRlIChmbG9hdCBhbmdsZSwgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCByb3RhdGVfZXVsZXIg KENvZ2wuRXVsZXIgZXVsZXIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVi bGljIHZvaWQgcm90YXRlX3F1YXRlcm5pb24gKENvZ2wuUXVhdGVybmlvbiBxdWF0ZXJuaW9uKTsK KysJCXB1YmxpYyB2b2lkIHJvdGF0ZV9ldWxlciAoR3JhcGhlbmUuRXVsZXIgZXVsZXIpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHNjYWxlIChmbG9hdCB4 LCBmbG9hdCB5LCBmbG9hdCB6KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCQlw dWJsaWMgdm9pZCBzZXRfZGVwdGhfdGV4dHVyZV9lbmFibGVkIChib29sIGVuYWJsZWQpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9kZXB0aF93cml0 ZV9lbmFibGVkIChib29sIGRlcHRoX3dyaXRlX2VuYWJsZWQpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuOCIpXQorQEAgLTYzNSwxMCArNTIwLDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVi bGljIHZvaWQgc2V0X2JsdWVfYnl0ZSAodWludDggYmx1ZSk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS40IildCisgCQlwdWJsaWMgdm9pZCBzZXRfYmx1ZV9mbG9hdCAoZmxvYXQgYmx1ZSk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS40Iiwg c2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZnJvbV80ZiAoZmxvYXQgcmVkLCBm bG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNCIsIHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIHZvaWQgc2V0X2Zyb21fNHViICh1aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50 OCBibHVlLCB1aW50OCBhbHBoYSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlw dWJsaWMgdm9pZCBzZXRfZ3JlZW4gKGZsb2F0IGdyZWVuKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjQiKV0KK0BAIC02NjIsNyArNTQzLDcgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGlj IHdlYWsgc3RyaW5nIG5hbWU7CisgCQlwdWJsaWMgdWxvbmcgaW5zdGFuY2VfY291bnQ7CisgCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJD T0dMX1RZUEVfTUFUUklYIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJn X2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gIkNPR0xfVFlQRV9NQVRSSVgiKV0KKyAJcHVibGljIHN0 cnVjdCBNYXRyaXggeworIAkJcHVibGljIGZsb2F0IHh4OworIAkJcHVibGljIGZsb2F0IHl4Owor QEAgLTY5Miw4ICs1NzMsNyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgYm9vbCBnZXRf aW52ZXJzZSAob3V0IENvZ2wuTWF0cml4IGludmVyc2UpOworIAkJW0NDb2RlIChjbmFtZSA9ICJj b2dsX21hdHJpeF9pbml0X2lkZW50aXR5IildCisgCQlwdWJsaWMgTWF0cml4LmlkZW50aXR5ICgp OworLQkJcHVibGljIHZvaWQgaW5pdF9mcm9tX2V1bGVyIChDb2dsLkV1bGVyIGV1bGVyKTsKKy0J CXB1YmxpYyB2b2lkIGluaXRfZnJvbV9xdWF0ZXJuaW9uIChDb2dsLlF1YXRlcm5pb24gcXVhdGVy bmlvbik7CisrCQlwdWJsaWMgdm9pZCBpbml0X2Zyb21fZXVsZXIgKEdyYXBoZW5lLkV1bGVyIGV1 bGVyKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIGluaXRf dHJhbnNsYXRpb24gKGZsb2F0IHR4LCBmbG9hdCB0eSwgZmxvYXQgdHopOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuOCIpXQorQEAgLTcwMiwxOSArNTgyLDE1IEBAIG5hbWVzcGFjZSBDb2dsIHsK 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 bG9hdCB6KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtODE4LDM4ICs2OTQs MzMgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJTk9ORSwKKyAJCU5PX0dFVF9EQVRBCisgCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dM X0ZFQVRVUkVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtGbGFnc10KKy0JW1ZlcnNpb24g KHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgZW51bSBGZWF0dXJlRmxhZ3MgeworLQkJVEVYVFVS RV9ZVVYsCistCQlURVhUVVJFX1JFQURfUElYRUxTLAorLQkJT0ZGU0NSRUVOLAorLQkJT0ZGU0NS RUVOX01VTFRJU0FNUExFLAorLQkJRk9VUl9DTElQX1BMQU5FUywKKy0JCVNURU5DSUxfQlVGRkVS LAorLQkJVkJPUywKKy0JCVBCT1MsCistCQlVTlNJR05FRF9JTlRfSU5ESUNFUywKKy0JCURFUFRI X1JBTkdFLAorLQkJUE9JTlRfU1BSSVRFLAorLQkJTUFQX0JVRkZFUl9GT1JfUkVBRCwKKy0JCU1B UF9CVUZGRVJfRk9SX1dSSVRFLAorLQkJT05TQ1JFRU5fTVVMVElQTEUsCistCQlERVBUSF9URVhU VVJFCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXgg PSAiQ09HTF9GRUFUVVJFX0lEXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorKwlwdWJsaWMgZW51bSBGZWF0dXJlSUQgeworKwkJW0NDb2RlIChj bmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfVU5TSUdORURfSU5UX0lORElDRVMiKV0KKysJCU9HTF9G RUFUVVJFX0lEX1VOU0lHTkVEX0lOVF9JTkRJQ0VTLAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dM X0ZFQVRVUkVfSURfTUFQX0JVRkZFUl9GT1JfUkVBRCIpXQorKwkJT0dMX0ZFQVRVUkVfSURfTUFQ X0JVRkZFUl9GT1JfUkVBRCwKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX01B UF9CVUZGRVJfRk9SX1dSSVRFIildCisrCQlPR0xfRkVBVFVSRV9JRF9NQVBfQlVGRkVSX0ZPUl9X UklURSwKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX1NXQVBfQlVGRkVSU19F VkVOVCIpXQorKwkJT0dMX0ZFQVRVUkVfSURfU1dBUF9CVUZGRVJTX0VWRU5ULAorKwkJW0NDb2Rl IChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfUFJFU0VOVEFUSU9OX1RJTUUiKV0KKysJCU9HTF9G RUFUVVJFX0lEX1BSRVNFTlRBVElPTl9USU1FLAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZF QVRVUkVfSURfRkVOQ0UiKV0KKysJCU9HTF9GRUFUVVJFX0lEX0ZFTkNFLAorKwkJW0NDb2RlIChj bmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfVEVYVFVSRV9SRyIpXQorKwkJT0dMX0ZFQVRVUkVfSURf VEVYVFVSRV9SRywKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX0JVRkZFUl9B R0UiKV0KKysJCU9HTF9GRUFUVVJFX0lEX0JVRkZFUl9BR0UsCisrCQlbQ0NvZGUgKGNuYW1lID0g IkNPR0xfRkVBVFVSRV9JRF9URVhUVVJFX0VHTF9JTUFHRV9FWFRFUk5BTCIpXQorKwkJT0dMX0ZF QVRVUkVfSURfVEVYVFVSRV9FR0xfSU1BR0VfRVhURVJOQUwKKyAJfQorIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRklMVEVSXyIsIGhh c190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgZW51bSBGaWx0ZXJSZXR1cm4geworIAkJQ09O VElOVUUsCisgCQlSRU1PVkUKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRk9HX01PREVfIiwgaGFzX3R5cGVfaWQgPSBmYWxz ZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGVudW0gRm9nTW9kZSB7 CistCQlMSU5FQVIsCistCQlFWFBPTkVOVElBTCwKKy0JCUVYUE9ORU5USUFMX1NRVUFSRUQKKy0J fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0g IkNPR0xfRlJBTUVfRVZFTlRfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtWZXJzaW9uIChz aW5jZSA9ICIxLjE0IildCisgCXB1YmxpYyBlbnVtIEZyYW1lRXZlbnQgeworQEAgLTg2Miw2ICs3 MzMsMTQgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJRlJBTUVCVUZGRVJfRVJST1JfQUxMT0NBVEU7 CisgCQlwdWJsaWMgc3RhdGljIHVpbnQzMiBxdWFyayAoKTsKKyAJfQorKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfR1JBUEhJQ1NfUkVT RVRfU1RBVFVTXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlwdWJsaWMgZW51bSBHcmFwaGlj c1Jlc2V0U3RhdHVzIHsKKysJCU5PX0VSUk9SLAorKwkJR1VJTFRZX0NPTlRFWFRfUkVTRVQsCisr CQlJTk5PQ0VOVF9DT05URVhUX1JFU0VULAorKwkJVU5LTk9XTl9DT05URVhUX1JFU0VULAorKwkJ UFVSR0VEX0NPTlRFWFRfUkVTRVQKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfSU5ESUNFU19UWVBFX1VOU0lHTkVEXyIsIGhh c190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgZW51bSBJbmRpY2VzVHlwZSB7CisgCQlCWVRF LAorQEAgLTg4OCwxMiArNzY3LDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJTkVBUkVTVF9NSVBN QVBfTElORUFSLAorIAkJTElORUFSX01JUE1BUF9MSU5FQVIKKyAJfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfTUFURVJJQUxfTEFZ RVJfVFlQRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorLQlwdWJsaWMgZW51bSBNYXRlcmlhbExheWVyVHlwZSB7CistCQlbQ0NvZGUgKGNuYW1l ID0gIkNPR0xfTUFURVJJQUxfTEFZRVJfVFlQRV9URVhUVVJFIildCistCQlNQVRFUklBTF9MQVlF Ul9UWVBFX1RFWFRVUkUKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfTUFURVJJQUxfV1JBUF9NT0RFXyIsIGhhc190eXBlX2lk ID0gZmFsc2UpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBlbnVtIE1h dGVyaWFsV3JhcE1vZGUgeworQEAgLTk3MSw2ICs4NDQsOCBAQCBuYW1lc3BhY2UgQ29nbCB7Cisg CQlERVBUSF8xNiwKKyAJCURFUFRIXzMyLAorIAkJREVQVEhfMjRfU1RFTkNJTF84OworKwkJcHVi bGljIGludCBnZXRfYnl0ZXNfcGVyX3BpeGVsIChpbnQgcGxhbmUpOworKwkJcHVibGljIGludCBn ZXRfbl9wbGFuZXMgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgdG9fc3RyaW5nICgpOwor IAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXgg PSAiQ09HTF9SRUFEX1BJWEVMU19DT0xPUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KK0BAIC0x MDY0LDkgKzkzOSw5IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJW1ZlcnNpb24gKHNp bmNlID0gIjEuOCIpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBEZWJ1Z09iamVjdEZvcmVhY2hU eXBlQ2FsbGJhY2sgKENvZ2wuRGVidWdPYmplY3RUeXBlSW5mbyBpbmZvKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBz aW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGRlbGVnYXRlIGJvb2wgTWF0ZXJpYWxMYXllckNhbGxi YWNrIChDb2dsLk1hdGVyaWFsIG1hdGVyaWFsLCBpbnQgbGF5ZXJfaW5kZXgpOworKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQor KwlbVmVyc2lvbiAoc2luY2UgPSAiMC4xMCIpXQorKwlwdWJsaWMgZGVsZWdhdGUgdm9pZCBGZWF0 dXJlQ2FsbGJhY2sgKENvZ2wuRmVhdHVyZUlEIGZlYXR1cmUpOworIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorIAlbVmVyc2lv biAoc2luY2UgPSAiMS4xNiIpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBPbnNjcmVlbkRpcnR5 Q2FsbGJhY2sgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4sIENvZ2wuT25zY3JlZW5EaXJ0eUluZm8g aW5mbyk7CitAQCAtMTA3NCwxMyArOTQ5LDkgQEAgbmFtZXNwYWNlIENvZ2wgeworIAlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIE9uc2NyZWVuUmVzaXpl Q2FsbGJhY2sgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4sIGludCB3aWR0aCwgaW50IGhlaWdodCk7 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3Bv cyA9IDIuOSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIE9uc2NyZWVuWDExTWFza0NhbGxiYWNr IChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuLCB1aW50MzIgZXZlbnRfbWFzayk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCisg CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJcHVibGljIGRlbGVnYXRlIGJvb2wgUGlwZWxp bmVMYXllckNhbGxiYWNrIChDb2dsLlBpcGVsaW5lIHBpcGVsaW5lLCBpbnQgbGF5ZXJfaW5kZXgp OworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9w b3MgPSAxLjkpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBTd2FwQnVmZmVyc05vdGlmeSAoQ29n bC5GcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisgCXB1YmxpYyBkZWxlZ2F0ZSBi b29sIFRleHR1cmUyREVHTEltYWdlRXh0ZXJuYWxBbGxvYyAoQ29nbC5UZXh0dXJlMkQgdGV4XzJk KSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIiwgaGFzX3RhcmdldCA9IGZhbHNlKV0KKyAJcHVibGljIGRlbGVnYXRlIHZvaWQgVXNl ckRhdGFEZXN0cm95Q2FsbGJhY2sgKHZvaWQqIGRhdGEpOworQEAgLTEwOTIsNiArOTYzLDggQEAg bmFtZXNwYWNlIENvZ2wgeworIAlwdWJsaWMgY29uc3QgaW50IEJHUl9CSVQ7CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfREVQVEhfQklU IildCisgCXB1YmxpYyBjb25zdCBpbnQgREVQVEhfQklUOworKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX1BJWEVMX0ZPUk1BVF9NQVhfUExB TkVTIildCisrCXB1YmxpYyBjb25zdCBpbnQgUElYRUxfRk9STUFUX01BWF9QTEFORVM7CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfUFJF TVVMVF9CSVQiKV0KKyAJcHVibGljIGNvbnN0IGludCBQUkVNVUxUX0JJVDsKKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9TVEVOQ0lMX0JJ VCIpXQorQEAgLTEwOTksMTkgKzk3Miw4IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9URVhUVVJFX01B WF9XQVNURSIpXQorIAlwdWJsaWMgY29uc3QgaW50IFRFWFRVUkVfTUFYX1dBU1RFOworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JcHVibGljIHN0YXRpYyB2b2lkIGJlZ2luX2dsICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJcHVibGljIHN0YXRpYyBib29sIGJsaXRfZnJhbWVi dWZmZXIgKENvZ2wuRnJhbWVidWZmZXIgc3JjLCBDb2dsLkZyYW1lYnVmZmVyIGRlc3QsIGludCBz cmNfeCwgaW50IHNyY195LCBpbnQgZHN0X3gsIGludCBkc3RfeSwgaW50IHdpZHRoLCBpbnQgaGVp Z2h0KSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjIiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGNoZWNrX2V4dGVuc2lvbiAoc3Ry aW5nIG5hbWUsIHN0cmluZyBleHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGNsZWFyIChDb2dsLkNvbG9yIGNv bG9yLCB1bG9uZyBidWZmZXJzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBjbHV0dGVyX2NoZWNrX2V4dGVuc2lvbl9D TFVUVEVSIChzdHJpbmcgbmFtZSwgc3RyaW5nIGV4dCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgY2x1dHRlcl93aW5z eXNfaGFzX2ZlYXR1cmVfQ0xVVFRFUiAoQ29nbC5XaW5zeXNGZWF0dXJlIGZlYXR1cmUpOworIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorQEAgLTExMjksNTcgKzk5MSwzOCBAQCBuYW1lc3BhY2UgQ29nbCB7Cisg CVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIGRlYnVnX29i amVjdF9wcmludF9pbnN0YW5jZXMgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZGlzYWJsZV9mb2cgKCk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEu MCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZW5kX2dsICgpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGZlYXR1 cmVzX2F2YWlsYWJsZSAoQ29nbC5GZWF0dXJlRmxhZ3MgZmVhdHVyZXMpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgZmx1c2ggKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuOC4yIildCistCXB1YmxpYyBz dGF0aWMgdm9pZCBmcnVzdHVtIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9t LCBmbG9hdCB0b3AsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIpOworKwlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorKwlwdWJsaWMgc3RhdGljIHZvaWQgZm9yZWFjaF9mZWF0dXJlIChDb2ds LkNvbnRleHQgY29udGV4dCwgQ29nbC5GZWF0dXJlQ2FsbGJhY2sgY2FsbGJhY2spOworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKyAJcHVibGljIHN0YXRp YyBib29sIGdldF9iYWNrZmFjZV9jdWxsaW5nX2VuYWJsZWQgKCk7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBnZXRf Yml0bWFza3MgKG91dCBpbnQgcmVkLCBvdXQgaW50IGdyZWVuLCBvdXQgaW50IGJsdWUsIG91dCBp bnQgYWxwaGEpOworKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorKwlwdWJsaWMgc3RhdGlj IGludDY0IGdldF9jbG9ja190aW1lIChDb2dsLkNvbnRleHQgY29udGV4dCk7CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAlwdWJsaWMgc3RhdGljIGJv b2wgZ2V0X2RlcHRoX3Rlc3RfZW5hYmxlZCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JcHVibGlj IHN0YXRpYyB1bm93bmVkIENvZ2wuRnJhbWVidWZmZXIgZ2V0X2RyYXdfZnJhbWVidWZmZXIgKCk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0g IjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuRmVhdHVyZUZsYWdzIGdldF9mZWF0dXJlcyAo KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1 YmxpYyBzdGF0aWMgQ29nbC5NYXRyaXggZ2V0X21vZGVsdmlld19tYXRyaXggKCk7CisrCXB1Ymxp YyBzdGF0aWMgQ29nbC5HcmFwaGljc1Jlc2V0U3RhdHVzIGdldF9ncmFwaGljc19yZXNldF9zdGF0 dXMgKENvZ2wuQ29udGV4dCBjb250ZXh0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBzdGF0aWMgR0xpYi5P cHRpb25Hcm91cCBnZXRfb3B0aW9uX2dyb3VwICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJcHVibGljIHN0YXRpYyBHTGliLkNhbGxiYWNrIGdldF9w cm9jX2FkZHJlc3MgKHN0cmluZyBzKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5NYXRyaXggZ2V0X3Byb2plY3Rp b25fbWF0cml4ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkKiBnZXRfc291cmNlICgp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIGdldF92aWV3cG9ydCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxz ZSldIG91dCBmbG9hdCB2WzRdKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE4IildCisgCXB1YmxpYyBzdGF0aWMgR0xpYi5UeXBlIGd0eXBlX21hdHJpeF9nZXRf dHlwZSAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisg CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCXB1YmxpYyBzdGF0aWMgYm9vbCBoYXNfZmVh dHVyZSAoQ29nbC5Db250ZXh0IGNvbnRleHQsIENvZ2wuRmVhdHVyZUlEIGZlYXR1cmUpOworKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKysJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKysJcHVibGljIHN0YXRpYyBib29sIGlzX2NvbnRleHQgKHZvaWQqIG9i amVjdCk7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorKwlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgaXNfZnJhbWVi dWZmZXIgKHZvaWQqIG9iamVjdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTExOTMsNTMgKzEw MzYsOSBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisg CXB1YmxpYyBzdGF0aWMgYm9vbCBpc190ZXh0dXJlXzJkX3NsaWNlZCAodm9pZCogb2JqZWN0KTsK KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS40IildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBpc192ZXJ0ZXhfYnVmZmVyX2luZGljZXMgKENv Z2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBzdGF0aWMgYm9v bCBtYXRyaXhfZXF1YWwgKHZvaWQqIHYxLCB2b2lkKiB2Mik7CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3Rh dGljIHZvaWQgb3J0aG8gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZs b2F0IHRvcCwgZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwZXJzcGVjdGl2 ZSAoZmxvYXQgZm92eSwgZmxvYXQgYXNwZWN0LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHBvbHlnb24gKENvZ2wuVGV4 dHVyZVZlcnRleCB2ZXJ0aWNlcywgdWludCBuX3ZlcnRpY2VzLCBib29sIHVzZV9jb2xvcik7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgcG9wX21hdHJpeCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBw b3Bfc291cmNlICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHB1c2hfbWF0cml4ICgpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIHB1c2hfc291cmNlICh2b2lkKiBtYXRlcmlhbCk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg cmVjdGFuZ2xlIChmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xlX3dpdGhfbXVs dGl0ZXh0dXJlX2Nvb3JkcyAoZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB4MiwgZmxvYXQgeTIs IFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIHRleF9jb29yZHMsIGludCB0 ZXhfY29vcmRzX2xlbik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBy ZWN0YW5nbGVfd2l0aF90ZXh0dXJlX2Nvb3JkcyAoZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB4 MiwgZmxvYXQgeTIsIGZsb2F0IHR4MSwgZmxvYXQgdHkxLCBmbG9hdCB0eDIsIGZsb2F0IHR5Mik7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGVzIChbQ0Nv ZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXRbXSB2ZXJ0cywgdWludCBuX3JlY3RzKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChzaW5jZSA9ICIwLjguNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xlc193aXRo X3RleHR1cmVfY29vcmRzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXRbXSB2 ZXJ0cywgdWludCBuX3JlY3RzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByb3RhdGUgKGZsb2F0IGFuZ2xlLCBm bG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzY2FsZSAoZmxvYXQgeCwg ZmxvYXQgeSwgZmxvYXQgeik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2JhY2tmYWNlX2N1bGxpbmdfZW5h YmxlZCAoYm9vbCBzZXR0aW5nKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCitAQCAtMTI0Nyw1MyArMTA0NiwxMSBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCXB1 YmxpYyBzdGF0aWMgdm9pZCBzZXRfZGVwdGhfdGVzdF9lbmFibGVkIChib29sIHNldHRpbmcpOwor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIHNldF9mb2cgKENvZ2wuQ29sb3IgZm9nX2NvbG9yLCBDb2dsLkZvZ01vZGUg bW9kZSwgZmxvYXQgZGVuc2l0eSwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgc2V0X21vZGVsdmlld19tYXRyaXggKENvZ2wuTWF0cml4IG1hdHJpeCk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgc2V0X3Byb2plY3Rpb25fbWF0cml4IChDb2dsLk1hdHJpeCBtYXRyaXgpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9zb3VyY2UgKHZvaWQqIG1hdGVyaWFsKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIild CistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlX2NvbG9yIChDb2dsLkNvbG9yIGNvbG9y KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlX2NvbG9yNGYgKGZsb2F0 IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlX2NvbG9yNHViICh1aW50OCByZWQsIHVpbnQ4IGdy ZWVuLCB1aW50OCBibHVlLCB1aW50OCBhbHBoYSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgc2V0X3NvdXJjZV90ZXh0dXJlIChDb2dsLlRleHR1cmUgdGV4dHVyZSk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMS4yIildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCBzZXRfdmlld3BvcnQgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBp bnQgaGVpZ2h0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzaGFkZXJfY29tcGlsZSAoQ29nbC5IYW5kbGUgaGFu ZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCist CXB1YmxpYyBzdGF0aWMgc3RyaW5nIHNoYWRlcl9nZXRfaW5mb19sb2cgKENvZ2wuSGFuZGxlIGhh bmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQor IAlwdWJsaWMgc3RhdGljIENvZ2wuU2hhZGVyVHlwZSBzaGFkZXJfZ2V0X3R5cGUgKENvZ2wuSGFu ZGxlIGhhbmRsZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgc2hhZGVyX2lzX2NvbXBpbGVkIChDb2dsLkhhbmRs ZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi KV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENvZ2wuSGFuZGxlIHNoYWRlcl9yZWYgKENvZ2wu SGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgc2hhZGVyX3NvdXJjZSAoQ29nbC5IYW5kbGUg c2hhZGVyLCBzdHJpbmcgc291cmNlKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzaGFkZXJfdW5yZWYgKENvZ2wu SGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xOCIsIHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0 dXJlX25ld19mcm9tX2JpdG1hcCAoQ29nbC5CaXRtYXAgYml0bWFwLCBDb2dsLlRleHR1cmVGbGFn cyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOworIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KK0BAIC0xMzA2LDU5ICsxMDYzLDYgQEAg bmFtZXNwYWNlIENvZ2wgeworIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorIAlwdWJsaWMgc3RhdGljIENvZ2wu VGV4dHVyZSB0ZXh0dXJlX25ld193aXRoX3NpemUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCBD b2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQp OworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9 ICIxLjQiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHRyYW5zZm9ybSAoQ29nbC5NYXRyaXggbWF0 cml4KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCist CXB1YmxpYyBzdGF0aWMgdm9pZCB0cmFuc2xhdGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHop OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfYWRkIChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0 cmluZyBhdHRyaWJ1dGVfbmFtZSwgdWludDggbl9jb21wb25lbnRzLCBDb2dsLkF0dHJpYnV0ZVR5 cGUgdHlwZSwgYm9vbCBub3JtYWxpemVkLCB1aW50MTYgc3RyaWRlLCB2b2lkKiBwb2ludGVyKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1Ymxp YyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2RlbGV0ZSAoQ29nbC5IYW5kbGUgaGFuZGxlLCBz dHJpbmcgYXR0cmlidXRlX25hbWUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfZGlzYWJs ZSAoQ29nbC5IYW5kbGUgaGFuZGxlLCBzdHJpbmcgYXR0cmlidXRlX25hbWUpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIHZlcnRleF9idWZmZXJfZHJhdyAoQ29nbC5IYW5kbGUgaGFuZGxlLCBDb2dsLlZlcnRpY2Vz TW9kZSBtb2RlLCBpbnQgZmlyc3QsIGludCBjb3VudCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1 ZmZlcl9kcmF3X2VsZW1lbnRzIChDb2dsLkhhbmRsZSBoYW5kbGUsIENvZ2wuVmVydGljZXNNb2Rl IG1vZGUsIENvZ2wuSGFuZGxlIGluZGljZXMsIGludCBtaW5faW5kZXgsIGludCBtYXhfaW5kZXgs IGludCBpbmRpY2VzX29mZnNldCwgaW50IGNvdW50KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVm ZmVyX2VuYWJsZSAoQ29nbC5IYW5kbGUgaGFuZGxlLCBzdHJpbmcgYXR0cmlidXRlX25hbWUpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGlj IHN0YXRpYyB1aW50IHZlcnRleF9idWZmZXJfZ2V0X25fdmVydGljZXMgKENvZ2wuSGFuZGxlIGhh bmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQor LQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ29nbC5IYW5kbGUgdmVydGV4X2J1ZmZlcl9pbmRpY2Vz X2dldF9mb3JfcXVhZHMgKHVpbnQgbl9pbmRpY2VzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5JbmRpY2VzVHlw ZSB2ZXJ0ZXhfYnVmZmVyX2luZGljZXNfZ2V0X3R5cGUgKENvZ2wuSGFuZGxlIGluZGljZXMpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGlj IHN0YXRpYyB1bm93bmVkIENvZ2wuSGFuZGxlIHZlcnRleF9idWZmZXJfbmV3ICh1aW50IG5fdmVy dGljZXMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQor LQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ29nbC5IYW5kbGUgdmVydGV4X2J1ZmZlcl9yZWYgKENv Z2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9zdWJtaXQgKENv Z2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4yIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX3VucmVmIChDb2ds LkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuOCIsIHNpbmNlID0gIjAuOC4yIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2aWV3cG9ydCAo dWludCB3aWR0aCwgdWludCBoZWlnaHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JcHVibGljIHN0YXRpYyB1aW50MzIgeDExX29uc2NyZWVuX2dldF92 aXN1YWxfeGlkIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisg CXB1YmxpYyBzdGF0aWMgdWludDMyIHgxMV9vbnNjcmVlbl9nZXRfd2luZG93X3hpZCAoQ29nbC5P bnNjcmVlbiBvbnNjcmVlbik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCB4MTFfb25zY3JlZW5fc2V0X2ZvcmVpZ25fd2luZG93X3hpZCAoQ29nbC5PbnNjcmVlbiBvbnNj cmVlbiwgdWludDMyIHhpZCwgW0NDb2RlIChzY29wZSA9ICJhc3luYyIpXSBDb2dsLk9uc2NyZWVu WDExTWFza0NhbGxiYWNrIHVwZGF0ZSk7CisgfQorZGlmZiAtLWdpdCB2YXBpL211dHRlci1jb2ds LTQtY3VzdG9tLnZhbGEgdmFwaS9tdXR0ZXItY29nbC03LWN1c3RvbS52YWxhCitzaW1pbGFyaXR5 IGluZGV4IDgxJQorcmVuYW1lIGZyb20gdmFwaS9tdXR0ZXItY29nbC00LWN1c3RvbS52YWxhCity ZW5hbWUgdG8gdmFwaS9tdXR0ZXItY29nbC03LWN1c3RvbS52YWxhCitpbmRleCAyNTUxODg1YS4u YzRkNGI5M2EgMTAwNjQ0CistLS0gdmFwaS9tdXR0ZXItY29nbC00LWN1c3RvbS52YWxhCisrKysg dmFwaS9tdXR0ZXItY29nbC03LWN1c3RvbS52YWxhCitAQCAtMSwxMCArMSw0IEBACisgbmFtZXNw YWNlIENvZ2wgeworLQlbQ29tcGFjdF0KKy0JW0NDb2RlIChjbmFtZSA9ICJDb2dsSGFuZGxlIild CistCXB1YmxpYyBjbGFzcyBCaXRtYXA6IEhhbmRsZSB7CistCQlwdWJsaWMgc3RhdGljIEJpdG1h cCBuZXdfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUpIHRocm93cyBHTGliLkVycm9yOworLQl9 CistCisgCVtDb21wYWN0XQorIAlbQ0NvZGUgKGNuYW1lID0gIkNvZ2xIYW5kbGUiKV0KKyAJcHVi bGljIGNsYXNzIEJ1ZmZlcjogSGFuZGxlIHsKK0BAIC00Miw3ICszNiw3IEBAIG5hbWVzcGFjZSBD b2dsIHsKKyAJCXB1YmxpYyBib29sIGlzX3ZlcnRleF9idWZmZXIgKCk7CisgCX0KKyAKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlvbiA9ICJj b2dsX3BhdGhfY29weSIpXSAKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIiwgY29weV9mdW5jdGlvbiA9ICJjb2dsX3BhdGhfY29weSIpXQorIAlbQ29tcGFjdF0KKyAJ cHVibGljIGNsYXNzIFBhdGggeworIAkJcHVibGljIHN0YXRpYyB2b2lkIEBuZXcgKCk7CitAQCAt ODIsMTggKzc2LDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIHZvaWQgc291cmNlIChz dHJpbmcgc291cmNlKTsKKyAJfQorIAorLQlbQ29tcGFjdF0KKy0JW0NDb2RlIChjbmFtZSA9ICJD b2dsSGFuZGxlIiwgcmVmX2Z1bmN0aW9uID0gImNvZ2xfdGV4dHVyZV9yZWYiLCB1bnJlZl9mdW5j dGlvbiA9ICJjb2dsX3RleHR1cmVfdW5yZWYiKV0KKy0JcHVibGljIGNsYXNzIFRleHR1cmU6IEhh bmRsZSB7CistCQlwdWJsaWMgQ29nbC5QaXhlbEZvcm1hdCBnZXRfZm9ybWF0ICgpOworLQkJcHVi bGljIHVpbnQgZ2V0X3Jvd3N0cmlkZSAoKTsKKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21fYml0bWFw IChDb2dsLkJpdG1hcCBibXBfaGFuZGxlLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5Q aXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOworLQkJcHVibGljIFRleHR1cmUuZnJvbV9kYXRh ICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wu UGl4ZWxGb3JtYXQgZm9ybWF0LCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCwgdWlu dCByb3dzdHJpZGUsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1Y2hhcltdIGRhdGEp OworLQkJcHVibGljIFRleHR1cmUuZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUsIENvZ2wuVGV4 dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCkgdGhyb3dz IEdMaWIuRXJyb3I7CistCQlwdWJsaWMgVGV4dHVyZS5mcm9tX3N1Yl90ZXh0dXJlIChDb2dsLlRl eHR1cmUgZnVsbF90ZXh0dXJlLCBpbnQgc3ViX3gsIGludCBzdWJfeSwgaW50IHN1Yl93aWR0aCwg aW50IHN1Yl9oZWlnaHQpOworLQkJcHVibGljIFRleHR1cmUud2l0aF9zaXplICh1aW50IHdpZHRo LCB1aW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQg aW50ZXJuYWxfZm9ybWF0KTsKKy0JfQorLQorIAlbQ29tcGFjdF0KKyAJW0NDb2RlIChjbmFtZSA9 ICJDb2dsSGFuZGxlIiwgcmVmX2Z1bmN0aW9uID0gImNvZ2xfdmVydGV4X2J1ZmZlcl9yZWYiLCB1 bnJlZl9mdW5jdGlvbiA9ICJjb2dsX3ZlcnRleF9idWZmZXJfdW5yZWYiKV0KKyAJcHVibGljIGNs YXNzIFZlcnRleEJ1ZmZlcjogSGFuZGxlIHsKK2RpZmYgLS1naXQgdmFwaS9tdXR0ZXItY29nbC01 LmRlcHMgdmFwaS9tdXR0ZXItY29nbC03LmRlcHMKK3NpbWlsYXJpdHkgaW5kZXggMTAwJQorcmVu YW1lIGZyb20gdmFwaS9tdXR0ZXItY29nbC01LmRlcHMKK3JlbmFtZSB0byB2YXBpL211dHRlci1j b2dsLTcuZGVwcworZGlmZiAtLWdpdCB2YXBpL211dHRlci1jb2dsLTQudmFwaSB2YXBpL211dHRl ci1jb2dsLTcudmFwaQorc2ltaWxhcml0eSBpbmRleCA1OSUKK3JlbmFtZSBmcm9tIHZhcGkvbXV0 dGVyLWNvZ2wtNC52YXBpCityZW5hbWUgdG8gdmFwaS9tdXR0ZXItY29nbC03LnZhcGkKK2luZGV4 IDVkZThmNDQ3Li42MjBjMjMxNyAxMDA2NDQKKy0tLSB2YXBpL211dHRlci1jb2dsLTQudmFwaQor KysrIHZhcGkvbXV0dGVyLWNvZ2wtNy52YXBpCitAQCAtMSwxMiArMSwxMyBAQAorLS8qIG11dHRl ci1jb2dsLTQudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKysv KiBtdXR0ZXItY29nbC03LnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnku ICovCisgCistW0NDb2RlIChjcHJlZml4ID0gIkNvZ2wiLCBnaXJfbmFtZXNwYWNlID0gIkNvZ2wi LCBnaXJfdmVyc2lvbiA9ICI0IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gImNvZ2xfIildCisrW0ND b2RlIChjcHJlZml4ID0gIkNvZ2wiLCBnaXJfbmFtZXNwYWNlID0gIkNvZ2wiLCBnaXJfdmVyc2lv biA9ICI3IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gImNvZ2xfIildCisgbmFtZXNwYWNlIENvZ2wg eworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJD b2dsSGFuZGxlIiwgdHlwZV9pZCA9ICJjb2dsX2JpdG1hcF9nZXRfZ3R5cGUgKCkiKV0KKy0JW0Nv bXBhY3RdCistCXB1YmxpYyBjbGFzcyBCaXRtYXAgOiBDb2dsLkhhbmRsZSB7CisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF9iaXRtYXBf Z2V0X2d0eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBCaXRtYXAgOiBDb2dsLk9iamVjdCB7Cisr CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQg Qml0bWFwICgpOworIAkJcHVibGljIHN0YXRpYyB1aW50MzIgZXJyb3JfcXVhcmsgKCk7CistCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDb2dsQml0bWFw KiIpXQorKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIEJpdG1hcC5mcm9tX2ZpbGUgKHN0cmlu ZyBmaWxlbmFtZSkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorQEAgLTE2LDEwICsxNyw5IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgaW50IGdldF9yb3dzdHJpZGUgKCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBnZXRfc2l6 ZV9mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSwgb3V0IGludCB3aWR0aCwgb3V0IGludCBoZWln aHQpOworKwkJcHVibGljIHN0YXRpYyBib29sIGdldF9zaXplX2Zyb21fZmlsZSAoc3RyaW5nIGZp bGVuYW1lLCBvdXQgaW50IHdpZHRoLCBvdXQgaW50IGhlaWdodCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorIAkJcHVibGljIGludCBnZXRfd2lkdGggKCk7CistCQlwdWJsaWMgc3Rh dGljIENvZ2wuQml0bWFwIG5ld19mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSkgdGhyb3dzIEdM aWIuRXJyb3I7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IiwgY25hbWUgPSAiQ29nbEhhbmRsZSIpXQorIAlbQ29tcGFjdF0KK0BAIC0yOCwxNSArMjgsMjgg QEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIGJvb2wgc2V0X2RhdGEgKHNpemVfdCBvZmZz ZXQsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX3R5cGUgPSAic2l6ZV90IildIHVpbnQ4W10gZGF0YSk7 CisgCQlwdWJsaWMgdm9pZCB1bm1hcCAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0NvbXBhY3RdCist CXB1YmxpYyBjbGFzcyBFdWxlciB7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF9jb250ZXh0X2dldF9ndHlwZSAoKSIpXQorKwlwdWJs aWMgY2xhc3MgQ29udGV4dCA6IENvZ2wuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBDb250ZXh0ICgpOworKwkJcHVibGlj IGJvb2wgaXNfaGFyZHdhcmVfYWNjZWxlcmF0ZWQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHki LCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY29nbF9mcmFtZV9j bG9zdXJlX2dldF9ndHlwZSAoKSIpXQorIAlbQ29tcGFjdF0KKyAJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTQiKV0KKyAJcHVibGljIGNsYXNzIEZyYW1lQ2xvc3VyZSB7CisgCX0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX2ZyYW1lX2lu Zm9fZ2V0X2d0eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBGcmFtZUluZm8gOiBDb2dsLk9iamVj dCB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90 ZWN0ZWQgRnJhbWVJbmZvICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKysJCXB1 YmxpYyBpbnQ2NCBnZXRfZnJhbWVfY291bnRlciAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjE0IildCisrCQlwdWJsaWMgaW50NjQgZ2V0X3ByZXNlbnRhdGlvbl90aW1lICgpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfcmVmcmVzaF9yYXRl ICgpOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHJl Zl9mdW5jdGlvbiA9ICJjb2dsX2hhbmRsZV9yZWYiLCB1bnJlZl9mdW5jdGlvbiA9ICJjb2dsX2hh bmRsZV91bnJlZiIpXQorIAlbQ29tcGFjdF0KKyAJcHVibGljIGNsYXNzIEhhbmRsZSB7CitAQCAt NjUsNjUgKzc4LDIwIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCisgCQlwdWJsaWMgTWF0ZXJpYWwgKCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNl ID0gIjEuMiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWwgY29weSAoKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS40IildCistCQlwdWJsaWMgdm9pZCBmb3JlYWNoX2xheWVyIChDb2dsLk1hdGVyaWFsTGF5ZXJD YWxsYmFjayBjYWxsYmFjayk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0 X2FtYmllbnQgKENvZ2wuQ29sb3IgYW1iaWVudCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVi bGljIENvZ2wuQ29sb3IgZ2V0X2NvbG9yICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1Ymxp YyB2b2lkIGdldF9kaWZmdXNlIChDb2dsLkNvbG9yIGRpZmZ1c2UpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAi KV0KKy0JCXB1YmxpYyB2b2lkIGdldF9lbWlzc2lvbiAoQ29nbC5Db2xvciBlbWlzc2lvbik7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfbGF5ZXJfcG9pbnRfc3By aXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0K Ky0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9wIChp bnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVy aWFsV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBz aW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X2xheWVy X3dyYXBfbW9kZV90IChpbnQgbGF5ZXJfaW5kZXgpOworLQkJcHVibGljIHVub3duZWQgR0xpYi5M aXN0PENvZ2wuTWF0ZXJpYWxMYXllcj4gZ2V0X2xheWVycyAoKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgaW50IGdldF9uX2xheWVycyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgZmxvYXQgZ2V0X3BvaW50X3NpemUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVi bGljIGZsb2F0IGdldF9zaGluaW5lc3MgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IHZvaWQgZ2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40 IildCistCQlwdWJsaWMgdW5vd25lZCBDb2dsLkhhbmRsZSBnZXRfdXNlcl9wcm9ncmFtICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIs IHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENvZ2wuSGFuZGxlIEBy ZWYgKENvZ2wuSGFuZGxlIG1hdGVyaWFsKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfbGF5 ZXIgKGludCBsYXllcl9pbmRleCk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQg c2V0X2FscGhhX3Rlc3RfZnVuY3Rpb24gKENvZ2wuTWF0ZXJpYWxBbHBoYUZ1bmMgYWxwaGFfZnVu YywgZmxvYXQgYWxwaGFfcmVmZXJlbmNlKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMg dm9pZCBzZXRfYW1iaWVudCAoQ29nbC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVudF9hbmRfZGlmZnVzZSAoQ29nbC5Db2xvciBjb2xv cik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfYmxlbmQgKHN0 cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIGJvb2wgc2V0 X2JsZW5kIChzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfYmxlbmRfY29uc3RhbnQgKENvZ2wuQ29sb3Ig Y29uc3RhbnRfY29sb3IpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9j b2xvciAoQ29nbC5Db2xvciBjb2xvcik7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZv aWQgc2V0X2NvbG9yNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0 IGFscGhhKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfY29sb3I0dWIg KHVpbnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsKKyAJCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZm dXNlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZW1pc3Npb24gKENv Z2wuQ29sb3IgZW1pc3Npb24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNl dF9sYXllciAoaW50IGxheWVyX2luZGV4LCBDb2dsLkhhbmRsZSB0ZXh0dXJlKTsKKyAJCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9sYXllcl9jb21iaW5lIChpbnQgbGF5 ZXJfaW5kZXgsIHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVi bGljIGJvb2wgc2V0X2xheWVyX2NvbWJpbmUgKGludCBsYXllcl9pbmRleCwgc3RyaW5nIGJsZW5k X3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGlj IHZvaWQgc2V0X2xheWVyX2NvbWJpbmVfY29uc3RhbnQgKGludCBsYXllcl9pbmRleCwgQ29nbC5D b2xvciBjb25zdGFudCk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIpXQorQEAgLTEzMSw0MyArOTksMTUgQEAgbmFtZXNwYWNlIENvZ2wg eworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9sYXllcl9tYXRyaXggKGludCBsYXllcl9pbmRleCwg Q29nbC5NYXRyaXggbWF0cml4KTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgQ29nbC5C b29sIHNldF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGludCBsYXllcl9pbmRl eCwgQ29nbC5Cb29sIGVuYWJsZSkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIp XQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZSAoaW50IGxheWVyX2luZGV4LCBD b2dsLk1hdGVyaWFsV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV9wIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJp YWxXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRf bGF5ZXJfd3JhcF9tb2RlX3MgKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRlcmlhbFdyYXBNb2Rl IG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFw X21vZGVfdCAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgbW9kZSk7Cisr CQlwdWJsaWMgYm9vbCBzZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQg bGF5ZXJfaW5kZXgsIGJvb2wgZW5hYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS40IildCisgCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRfc2l6ZSAoZmxvYXQgcG9pbnRfc2l6ZSk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NoaW5pbmVzcyAoZmxvYXQg c2hpbmluZXNzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc3BlY3Vs YXIgKENvZ2wuQ29sb3Igc3BlY3VsYXIpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2 b2lkIHNldF91c2VyX3Byb2dyYW0gKENvZ2wuSGFuZGxlIHByb2dyYW0pOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIsIHNpbmNlID0gIjEu MCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHVucmVmIChDb2dsLkhhbmRsZSBtYXRlcmlhbCk7 CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCisgCVtDb21wYWN0XQorIAlwdWJsaWMgY2xhc3MgTWF0ZXJpYWxMYXll ciB7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgZ2V0X21hZ19maWx0ZXIgKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxGaWx0ZXIgZ2V0X21pbl9maWx0ZXIgKCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIp XQorLQkJcHVibGljIHVub3duZWQgQ29nbC5IYW5kbGUgZ2V0X3RleHR1cmUgKCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJ cHVibGljIENvZ2wuTWF0ZXJpYWxMYXllclR5cGUgZ2V0X3R5cGUgKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfd3JhcF9tb2RlX3AgKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRf d3JhcF9tb2RlX3MgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJp YWxXcmFwTW9kZSBnZXRfd3JhcF9tb2RlX3QgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX29iamVjdF9nZXRfZ3R5cGUg KCkiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIE9iamVjdCB7CitAQCAtMTc4LDEzICsxMTgs OSBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCXB1YmxpYyBjbGFzcyBPZmZzY3JlZW4gOiBDb2dsLk9i amVjdCwgQ29nbC5GcmFtZWJ1ZmZlciB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgT2Zmc2NyZWVuICgpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHN0 YXRpYyB2b2lkKiBAcmVmICh2b2lkKiBvZmZzY3JlZW4pOworIAkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKyAJCXB1YmxpYyBPZmZzY3JlZW4udG9fdGV4dHVy ZSAoQ29nbC5UZXh0dXJlIHRleHR1cmUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHVucmVm ICh2b2lkKiBvZmZzY3JlZW4pOworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UpXQorIAkJcHVibGljIE9mZnNjcmVlbi53aXRoX3RleHR1cmUgKENvZ2wuVGV4dHVyZSB0 ZXh0dXJlKTsKKyAJfQorQEAgLTE5NCwxNyArMTMwLDE2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJ CXByb3RlY3RlZCBPbnNjcmVlbiAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCisg CQlwdWJsaWMgQ29nbC5PbnNjcmVlbkRpcnR5Q2xvc3VyZSBhZGRfZGlydHlfY2FsbGJhY2sgKFtD Q29kZSAoZGVsZWdhdGVfdGFyZ2V0X3BvcyA9IDEuNSldIENvZ2wuT25zY3JlZW5EaXJ0eUNhbGxi YWNrIGNhbGxiYWNrLCBDb2dsLlVzZXJEYXRhRGVzdHJveUNhbGxiYWNrPyBkZXN0cm95KTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisrCQlwdWJsaWMgQ29nbC5GcmFtZUNsb3N1cmUg YWRkX2ZyYW1lX2NhbGxiYWNrIChbQ0NvZGUgKGRlbGVnYXRlX3RhcmdldF9wb3MgPSAxLjUpXSBD b2dsLkZyYW1lQ2FsbGJhY2sgY2FsbGJhY2ssIENvZ2wuVXNlckRhdGFEZXN0cm95Q2FsbGJhY2s/ IGRlc3Ryb3kpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIENvZ2wu T25zY3JlZW5SZXNpemVDbG9zdXJlIGFkZF9yZXNpemVfY2FsbGJhY2sgKFtDQ29kZSAoZGVsZWdh dGVfdGFyZ2V0X3BvcyA9IDEuNSldIENvZ2wuT25zY3JlZW5SZXNpemVDYWxsYmFjayBjYWxsYmFj aywgQ29nbC5Vc2VyRGF0YURlc3Ryb3lDYWxsYmFjaz8gZGVzdHJveSk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNCIsIHNpbmNlID0gIjEu MTAiKV0KKy0JCXB1YmxpYyB1aW50IGFkZF9zd2FwX2J1ZmZlcnNfY2FsbGJhY2sgKENvZ2wuU3dh cEJ1ZmZlcnNOb3RpZnkgY2FsbGJhY2spOworLQkJcHVibGljIHN0YXRpYyB2b2lkIGNsdXR0ZXJf YmFja2VuZF9zZXRfc2l6ZV9DTFVUVEVSIChpbnQgd2lkdGgsIGludCBoZWlnaHQpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2J1ZmZlcl9hZ2UgKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorIAkJcHVibGljIGludDY0IGdldF9mcmFt ZV9jb3VudGVyICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENv Z2wuQm9vbCBnZXRfcmVzaXphYmxlICgpOworKwkJcHVibGljIGJvb2wgZ2V0X3Jlc2l6YWJsZSAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIGhpZGUgKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorQEAgLTIxMywxOCArMTQ4LDE2IEBAIG5h bWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV9mcmFtZV9jYWxsYmFjayAoQ29n bC5GcmFtZUNsb3N1cmUgY2xvc3VyZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisg CQlwdWJsaWMgdm9pZCByZW1vdmVfcmVzaXplX2NhbGxiYWNrIChDb2dsLk9uc2NyZWVuUmVzaXpl Q2xvc3VyZSBjbG9zdXJlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE0Iiwgc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcmVt b3ZlX3N3YXBfYnVmZmVyc19jYWxsYmFjayAodWludCBpZCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfcmVzaXphYmxlIChDb2dsLkJvb2wgcmVzaXph YmxlKTsKKysJCXB1YmxpYyB2b2lkIHNldF9yZXNpemFibGUgKGJvb2wgcmVzaXphYmxlKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNob3cgKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc3dhcF9idWZmZXJzICgp OworKwkJcHVibGljIHZvaWQgc3dhcF9idWZmZXJzIChDb2dsLkZyYW1lSW5mbyBmcmFtZV9pbmZv KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgdm9pZCBzd2FwX2J1 ZmZlcnNfd2l0aF9kYW1hZ2UgKGludCByZWN0YW5nbGVzLCBpbnQgbl9yZWN0YW5nbGVzKTsKKysJ CXB1YmxpYyB2b2lkIHN3YXBfYnVmZmVyc193aXRoX2RhbWFnZSAoaW50IHJlY3RhbmdsZXMsIGlu dCBuX3JlY3RhbmdsZXMsIENvZ2wuRnJhbWVJbmZvIGluZm8pOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHN3YXBfcmVnaW9uIChpbnQgcmVjdGFuZ2xlcywg aW50IG5fcmVjdGFuZ2xlcyk7CisrCQlwdWJsaWMgdm9pZCBzd2FwX3JlZ2lvbiAoaW50IHJlY3Rh bmdsZXMsIGludCBuX3JlY3RhbmdsZXMsIENvZ2wuRnJhbWVJbmZvIGluZm8pOworIAl9CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNvcHlfZnVuY3Rpb24gPSAi Z19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0g ImNvZ2xfb25zY3JlZW5fZGlydHlfY2xvc3VyZV9nZXRfZ3R5cGUgKCkiKV0KKyAJW0NvbXBhY3Rd CitAQCAtMjQ0LDcgKzE3Nyw4IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX3BpcGVsaW5lX2dldF9n dHlwZSAoKSIpXQorIAlwdWJsaWMgY2xhc3MgUGlwZWxpbmUgOiBDb2dsLk9iamVjdCB7CisgCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgUGlw ZWxpbmUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisrCQlwdWJsaWMgUGlwZWxp bmUgKENvZ2wuQ29udGV4dCBjb250ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K KyAJCXB1YmxpYyBDb2dsLlBpcGVsaW5lIGNvcHkgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCitAQCAtMjU0LDQ0ICsxODgsMzAgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIGZsb2F0IGdldF9hbHBoYV90ZXN0X3JlZmVy ZW5jZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdl dF9hbWJpZW50IChDb2dsLkNvbG9yIGFtYmllbnQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIu MCIpXQorIAkJcHVibGljIENvZ2wuQ29sb3IgZ2V0X2NvbG9yICgpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuOCIpXQorLQkJcHVibGljIENvZ2wuQ29sb3JNYXNrIGdldF9jb2xvcl9tYXNrICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmVD dWxsRmFjZU1vZGUgZ2V0X2N1bGxfZmFjZV9tb2RlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2RpZmZ1c2UgKENvZ2wuQ29sb3IgZGlmZnVzZSk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfZW1pc3Np b24gKENvZ2wuQ29sb3IgZW1pc3Npb24pOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQor IAkJcHVibGljIENvZ2wuV2luZGluZyBnZXRfZnJvbnRfZmFjZV93aW5kaW5nICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBDb2dsLlBpcGVsaW5lRmlsdGVyIGdl dF9sYXllcl9tYWdfZmlsdGVyIChpbnQgbGF5ZXJfaW5kZXgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBDb2dsLlBpcGVsaW5lRmlsdGVyIGdldF9sYXllcl9taW5f ZmlsdGVyIChpbnQgbGF5ZXJfaW5kZXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQor LQkJcHVibGljIENvZ2wuQm9vbCBnZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVk IChpbnQgbGF5ZXJfaW5kZXgpOworKwkJcHVibGljIGJvb2wgZ2V0X2xheWVyX3BvaW50X3Nwcml0 ZV9jb29yZHNfZW5hYmxlZCAoaW50IGxheWVyX2luZGV4KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCisgCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X2xheWVyX3RleHR1 cmUgKGludCBsYXllcl9pbmRleCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlw dWJsaWMgQ29nbC5QaXBlbGluZVdyYXBNb2RlIGdldF9sYXllcl93cmFwX21vZGVfcCAoaW50IGxh eWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBDb2ds LlBpcGVsaW5lV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIENvZ2wuUGlwZWxpbmVX cmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3QgKGludCBsYXllcl9pbmRleCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgaW50IGdldF9uX2xheWVycyAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X3Blcl92 ZXJ0ZXhfcG9pbnRfc2l6ZSAoKTsKKysJCXB1YmxpYyBib29sIGdldF9wZXJfdmVydGV4X3BvaW50 X3NpemUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgZmxvYXQg Z2V0X3BvaW50X3NpemUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJs aWMgZmxvYXQgZ2V0X3NoaW5pbmVzcyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K Ky0JCXB1YmxpYyB2b2lkIGdldF9zcGVjdWxhciAoQ29nbC5Db2xvciBzcGVjdWxhcik7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgaW50IGdldF91bmlmb3JtX2xvY2F0 aW9uIChzdHJpbmcgdW5pZm9ybV9uYW1lKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K KyAJCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxlIGdldF91c2VyX3Byb2dyYW0gKCk7CitAQCAt MzAwLDExICsyMjAsNyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGFfdGVzdF9mdW5jdGlvbiAoQ29nbC5QaXBl bGluZUFscGhhRnVuYyBhbHBoYV9mdW5jLCBmbG9hdCBhbHBoYV9yZWZlcmVuY2UpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FtYmllbnQgKENvZ2wu Q29sb3IgYW1iaWVudCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMg dm9pZCBzZXRfYW1iaWVudF9hbmRfZGlmZnVzZSAoQ29nbC5Db2xvciBjb2xvcik7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9ibGVuZCAoc3Ry aW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgYm9vbCBzZXRf YmxlbmQgKHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2JsZW5kX2NvbnN0YW50IChD b2dsLkNvbG9yIGNvbnN0YW50X2NvbG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K K0BAIC0zMTMsNDYgKzIyOSwzNSBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgdm9pZCBz ZXRfY29sb3I0ZiAoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxw aGEpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2Nv bG9yNHViICh1aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVlLCB1aW50OCBhbHBoYSk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3Jf bWFzayAoQ29nbC5Db2xvck1hc2sgY29sb3JfbWFzayk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfY3VsbF9mYWNlX21vZGUgKENvZ2wuUGlwZWxpbmVD dWxsRmFjZU1vZGUgY3VsbF9mYWNlX21vZGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorLQkJcHVibGljIHZvaWQgc2V0X2RpZmZ1c2UgKENvZ2wuQ29sb3IgZGlmZnVzZSk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZW1pc3Npb24gKENv Z2wuQ29sb3IgZW1pc3Npb24pOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVi bGljIHZvaWQgc2V0X2Zyb250X2ZhY2Vfd2luZGluZyAoQ29nbC5XaW5kaW5nIGZyb250X3dpbmRp bmcpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBz ZXRfbGF5ZXJfY29tYmluZSAoaW50IGxheWVyX2luZGV4LCBzdHJpbmcgYmxlbmRfc3RyaW5nKSB0 aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyBib29sIHNldF9sYXllcl9jb21iaW5lIChpbnQg bGF5ZXJfaW5kZXgsIHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9yOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVyX2NvbWJp bmVfY29uc3RhbnQgKGludCBsYXllcl9pbmRleCwgQ29nbC5Db2xvciBjb25zdGFudCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVyX2ZpbHRl cnMgKGludCBsYXllcl9pbmRleCwgQ29nbC5QaXBlbGluZUZpbHRlciBtaW5fZmlsdGVyLCBDb2ds LlBpcGVsaW5lRmlsdGVyIG1hZ19maWx0ZXIpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKyAJCXB1YmxpYyB2b2lkIHNldF9sYXllcl9tYXRyaXggKGludCBsYXllcl9pbmRleCwgQ29n bC5NYXRyaXggbWF0cml4KTsKKysJCXB1YmxpYyB2b2lkIHNldF9sYXllcl9tYXhfbWlwbWFwX2xl dmVsIChpbnQgbGF5ZXIsIGludCBtYXhfbGV2ZWwpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl9udWxsX3RleHR1cmUgKGludCBsYXllcl9p bmRleCwgQ29nbC5UZXh0dXJlVHlwZSB0ZXh0dXJlX3R5cGUpOworKwkJcHVibGljIHZvaWQgc2V0 X2xheWVyX251bGxfdGV4dHVyZSAoaW50IGxheWVyX2luZGV4KTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2xheWVyX3BvaW50X3Nwcml0ZV9j b29yZHNfZW5hYmxlZCAoaW50IGxheWVyX2luZGV4LCBDb2dsLkJvb2wgZW5hYmxlKSB0aHJvd3Mg R0xpYi5FcnJvcjsKKysJCXB1YmxpYyBib29sIHNldF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRz X2VuYWJsZWQgKGludCBsYXllcl9pbmRleCwgYm9vbCBlbmFibGUpIHRocm93cyBHTGliLkVycm9y OworIAkJcHVibGljIHZvaWQgc2V0X2xheWVyX3RleHR1cmUgKGludCBsYXllcl9pbmRleCwgQ29n bC5UZXh0dXJlIHRleHR1cmUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVi bGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZSAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVs aW5lV3JhcE1vZGUgbW9kZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJs aWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9pbmRleCwgQ29nbC5QaXBl bGluZVdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVi bGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlw ZWxpbmVXcmFwTW9kZSBtb2RlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1 YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfdCAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBp cGVsaW5lV3JhcE1vZGUgbW9kZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlw dWJsaWMgQ29nbC5Cb29sIHNldF9wZXJfdmVydGV4X3BvaW50X3NpemUgKENvZ2wuQm9vbCBlbmFi bGUpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIGJvb2wgc2V0X3Blcl92ZXJ0ZXhfcG9p bnRfc2l6ZSAoYm9vbCBlbmFibGUpIHRocm93cyBHTGliLkVycm9yOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3BvaW50X3NpemUgKGZsb2F0IHBvaW50 X3NpemUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X3NoaW5pbmVzcyAoZmxvYXQgc2hpbmluZXNzKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zcGVjdWxhciAoQ29nbC5Db2xvciBzcGVjdWxhcik7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfdW5pZm9ybV8x ZiAoaW50IHVuaWZvcm1fbG9jYXRpb24sIGZsb2F0IHZhbHVlKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF91bmlmb3JtXzFpIChpbnQgdW5pZm9ybV9s b2NhdGlvbiwgaW50IHZhbHVlKTsKK0BAIC0zNjEsNyArMjY2LDcgQEAgbmFtZXNwYWNlIENvZ2wg eworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3VuaWZv cm1faW50IChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgaW50IG5fY29tcG9uZW50cywgaW50IGNvdW50 LCBpbnQgdmFsdWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZv aWQgc2V0X3VuaWZvcm1fbWF0cml4IChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgaW50IGRpbWVuc2lv bnMsIGludCBjb3VudCwgQ29nbC5Cb29sIHRyYW5zcG9zZSwgZmxvYXQgdmFsdWUpOworKwkJcHVi bGljIHZvaWQgc2V0X3VuaWZvcm1fbWF0cml4IChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgaW50IGRp bWVuc2lvbnMsIGludCBjb3VudCwgYm9vbCB0cmFuc3Bvc2UsIGZsb2F0IHZhbHVlKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF91c2VyX3Byb2dyYW0g KENvZ2wuSGFuZGxlIHByb2dyYW0pOworIAl9CitAQCAtMzg4LDcgKzI5Myw3IEBAIG5hbWVzcGFj ZSBDb2dsIHsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi LCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBRdWF0 ZXJuaW9uIHsKKysJcHVibGljIGNsYXNzIFNjYW5vdXQgeworIAl9CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNvZ2xIYW5kbGUiLCByZWZfZnVu Y3Rpb24gPSAiY29nbF9zaGFkZXJfcmVmIiwgdW5yZWZfZnVuY3Rpb24gPSAiY29nbF9zaGFkZXJf dW5yZWYiKV0KKyAJW0NvbXBhY3RdCitAQCAtNDAxLDQ4ICszMDYsMjMgQEAgbmFtZXNwYWNlIENv Z2wgeworIAkJcHVibGljIGJvb2wgaXNfY29tcGlsZWQgKCk7CisgCQlwdWJsaWMgdm9pZCBzb3Vy Y2UgKHN0cmluZyBzb3VyY2UpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNvZ2xIYW5kbGUiLCByZWZfZnVuY3Rpb24gPSAiY29nbF90 ZXh0dXJlX3JlZiIsIHR5cGVfaWQgPSAiY29nbF90ZXh0dXJlX2dldF9ndHlwZSAoKSIsIHVucmVm X2Z1bmN0aW9uID0gImNvZ2xfdGV4dHVyZV91bnJlZiIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGlj IGNsYXNzIFRleHR1cmUgOiBDb2dsLkhhbmRsZSB7CistCQlwdWJsaWMgQ29nbC5Cb29sIGFsbG9j YXRlICgpIHRocm93cyBHTGliLkVycm9yOworLQkJcHVibGljIHN0YXRpYyB1aW50MzIgZXJyb3Jf cXVhcmsgKCk7CistCQlwdWJsaWMgVGV4dHVyZS5mcm9tX2JpdG1hcCAoQ29nbC5CaXRtYXAgYm1w X2hhbmRsZSwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJu YWxfZm9ybWF0KTsKKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21fZGF0YSAodWludCB3aWR0aCwgdWlu dCBoZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1h dCwgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQsIHVpbnQgcm93c3RyaWRlLCBbQ0Nv ZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gdWNoYXJbXSBkYXRhKTsKKy0JCXB1YmxpYyBUZXh0 dXJlLmZyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywg Q29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpIHRocm93cyBHTGliLkVycm9yOworLQkJ cHVibGljIFRleHR1cmUuZnJvbV9zdWJfdGV4dHVyZSAoQ29nbC5UZXh0dXJlIGZ1bGxfdGV4dHVy ZSwgaW50IHN1Yl94LCBpbnQgc3ViX3ksIGludCBzdWJfd2lkdGgsIGludCBzdWJfaGVpZ2h0KTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCQlwdWJsaWMgQ29nbC5UZXh0dXJlQ29t cG9uZW50cyBnZXRfY29tcG9uZW50cyAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2RhdGEgKENvZ2wu UGl4ZWxGb3JtYXQgZm9ybWF0LCB1aW50IHJvd3N0cmlkZSwgdWludDggZGF0YSk7CistCQlwdWJs aWMgQ29nbC5QaXhlbEZvcm1hdCBnZXRfZm9ybWF0ICgpOworLQkJcHVibGljIENvZ2wuQm9vbCBn ZXRfZ2xfdGV4dHVyZSAob3V0IHVpbnQgb3V0X2dsX2hhbmRsZSwgb3V0IHVpbnQgb3V0X2dsX3Rh cmdldCk7CistCQlwdWJsaWMgdWludCBnZXRfaGVpZ2h0ICgpOworLQkJcHVibGljIGludCBnZXRf bWF4X3dhc3RlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JCXB1YmxpYyBD b2dsLkJvb2wgZ2V0X3ByZW11bHRpcGxpZWQgKCk7CistCQlwdWJsaWMgdWludCBnZXRfcm93c3Ry aWRlICgpOworLQkJcHVibGljIHVpbnQgZ2V0X3dpZHRoICgpOworLQkJcHVibGljIENvZ2wuQm9v bCBpc19zbGljZWQgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRpYyBDb2ds LlRleHR1cmUgbmV3X2Zyb21fYml0bWFwIChDb2dsLkJpdG1hcCBiaXRtYXAsIENvZ2wuVGV4dHVy ZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNl ID0gIjAuOCIpXQorLQkJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgbmV3X2Zyb21fZGF0YSAo aW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhl bEZvcm1hdCBmb3JtYXQsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0LCBpbnQgcm93 c3RyaWRlLCB1aW50OCBkYXRhKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgc3RhdGlj IENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUsIENvZ2wuVGV4dHVy ZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCkgdGhyb3dzIEdM aWIuRXJyb3I7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1 cmUgbmV3X2Zyb21fZm9yZWlnbiAodWludCBnbF9oYW5kbGUsIHVpbnQgZ2xfdGFyZ2V0LCB1aW50 IHdpZHRoLCB1aW50IGhlaWdodCwgdWludCB4X3BvdF93YXN0ZSwgdWludCB5X3BvdF93YXN0ZSwg Q29nbC5QaXhlbEZvcm1hdCBmb3JtYXQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBD b2dsLlRleHR1cmUgbmV3X2Zyb21fc3ViX3RleHR1cmUgKGludCBzdWJfeCwgaW50IHN1Yl95LCBp bnQgc3ViX3dpZHRoLCBpbnQgc3ViX2hlaWdodCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVi bGljIHN0YXRpYyBDb2dsLlRleHR1cmUgbmV3X3dpdGhfc2l6ZSAodWludCB3aWR0aCwgdWludCBo ZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFs X2Zvcm1hdCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQkJcHVibGljIHZvaWQg c2V0X2NvbXBvbmVudHMgKENvZ2wuVGV4dHVyZUNvbXBvbmVudHMgY29tcG9uZW50cyk7CistCQlw dWJsaWMgQ29nbC5Cb29sIHNldF9kYXRhIChDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgaW50IHJv d3N0cmlkZSwgdWludDggZGF0YSwgaW50IGxldmVsKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCQlwdWJsaWMgdm9pZCBzZXRfcHJlbXVsdGlwbGll ZCAoQ29nbC5Cb29sIHByZW11bHRpcGxpZWQpOworLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfcmVn aW9uIChpbnQgc3JjX3gsIGludCBzcmNfeSwgaW50IGRzdF94LCBpbnQgZHN0X3ksIHVpbnQgZHN0 X3dpZHRoLCB1aW50IGRzdF9oZWlnaHQsIGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29nbC5QaXhl bEZvcm1hdCBmb3JtYXQsIHVpbnQgcm93c3RyaWRlLCB1aW50OCBkYXRhKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X3JlZ2lvbl9mcm9tX2Jp dG1hcCAoaW50IHNyY194LCBpbnQgc3JjX3ksIGludCBkc3RfeCwgaW50IGRzdF95LCB1aW50IGRz dF93aWR0aCwgdWludCBkc3RfaGVpZ2h0LCBDb2dsLkJpdG1hcCBiaXRtYXApOworLQkJcHVibGlj IFRleHR1cmUud2l0aF9zaXplICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCwgQ29nbC5UZXh0dXJl RmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKysJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgbG93ZXJfY2FzZV9jc3VmZml4ID0g InRleHR1cmVfMmQiLCB0eXBlX2lkID0gImNvZ2xfdGV4dHVyZV8yZF9nZXRfZ3R5cGUgKCkiKV0K KysJcHVibGljIGNsYXNzIFRleHR1cmUyRCA6IENvZ2wuT2JqZWN0LCBDb2dsLlRleHR1cmUgewor KwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVk IFRleHR1cmUyRCAoKTsKKysJCXB1YmxpYyB2b2lkIGVnbF9pbWFnZV9leHRlcm5hbF9hbGxvY19m aW5pc2ggKHZvaWQqIHVzZXJfZGF0YSwgR0xpYi5EZXN0cm95Tm90aWZ5IGRlc3Ryb3kpOworKwkJ cHVibGljIHZvaWQgZWdsX2ltYWdlX2V4dGVybmFsX2JpbmQgKCk7CisrCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CisrCQlwdWJsaWMgVGV4dHVyZTJELmZyb21fYml0bWFwIChDb2dsLkJpdG1hcCBiaXRtYXApOwor Kwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGxvd2VyX2Nh c2VfY3N1ZmZpeCA9ICJ0ZXh0dXJlXzJkX3NsaWNlZCIsIHR5cGVfaWQgPSAiY29nbF90ZXh0dXJl XzJkX3NsaWNlZF9nZXRfZ3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIFRleHR1cmUyRFNsaWNl ZCA6IENvZ2wuT2JqZWN0LCBDb2dsLlRleHR1cmUgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIFRleHR1cmUyRFNsaWNlZCAoKTsKKysJ CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjE2IildCisrCQlwdWJsaWMgVGV4dHVyZTJEU2xpY2VkLmZyb21fYml0bWFwIChD b2dsLkJpdG1hcCBibXAsIGludCBtYXhfd2FzdGUpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNvZ2xIYW5kbGUiLCByZWZfZnVuY3Rp b24gPSAiY29nbF92ZXJ0ZXhfYnVmZmVyX3JlZiIsIHVucmVmX2Z1bmN0aW9uID0gImNvZ2xfdmVy dGV4X2J1ZmZlcl91bnJlZiIpXQorIAlbQ29tcGFjdF0KK0BAIC00NjgsNyArMzQ4LDcgQEAgbmFt ZXNwYWNlIENvZ2wgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi LCB0eXBlX2lkID0gImNvZ2xfZnJhbWVidWZmZXJfZ2V0X2d0eXBlICgpIildCisgCXB1YmxpYyBp bnRlcmZhY2UgRnJhbWVidWZmZXIgOiBDb2dsLk9iamVjdCB7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS44IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGFsbG9jYXRlICgpIHRocm93cyBHTGliLkVy cm9yOworKwkJcHVibGljIGJvb2wgYWxsb2NhdGUgKCkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCBjbGVhciAodWxvbmcgYnVm ZmVycywgQ29nbC5Db2xvciBjb2xvcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCitA QCAtNDg4LDYgKzM2OCw3IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyBzdGF0aWMgdWlu dDMyIGVycm9yX3F1YXJrICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1 YmxpYyB2b2lkIGZpbmlzaCAoKTsKKysJCXB1YmxpYyB2b2lkIGZsdXNoICgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIGZydXN0dW0gKGZsb2F0IGxlZnQs IGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgel9uZWFyLCBmbG9h dCB6X2Zhcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCitAQCAtNDk1LDIyICszNzYs MTggQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJ cHVibGljIGludCBnZXRfYmx1ZV9iaXRzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIp XQorLQkJcHVibGljIENvZ2wuQ29sb3JNYXNrIGdldF9jb2xvcl9tYXNrICgpOworKwkJcHVibGlj IHVub3duZWQgQ29nbC5Db250ZXh0IGdldF9jb250ZXh0ICgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorIAkJcHVibGljIGludCBnZXRfZGVwdGhfYml0cyAoKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X2Rl cHRoX3RleHR1cmUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQkJcHVibGlj IENvZ2wuQm9vbCBnZXRfZGVwdGhfdGV4dHVyZV9lbmFibGVkICgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2RlcHRoX3dyaXRlX2VuYWJs ZWQgKCk7CisrCQlwdWJsaWMgYm9vbCBnZXRfZGVwdGhfd3JpdGVfZW5hYmxlZCAoKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2RpdGhlcl9l bmFibGVkICgpOworKwkJcHVibGljIGJvb2wgZ2V0X2RpdGhlcl9lbmFibGVkICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIGludCBnZXRfZ3JlZW5fYml0cyAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2hlaWdodCAo KTsKKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2lzX3N0ZXJlbyAoKTsKKysJCXB1YmxpYyBib29s IGdldF9pc19zdGVyZW8gKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVi bGljIENvZ2wuTWF0cml4IGdldF9tb2RlbHZpZXdfbWF0cml4ICgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KK0BAIC01NDcsMTIgKzQyNCwxMyBAQCBuYW1lc3BhY2UgQ29nbCB7Cisg CQlwdWJsaWMgdm9pZCBwdXNoX21hdHJpeCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCisgCQlwdWJsaWMgdm9pZCBwdXNoX3JlY3RhbmdsZV9jbGlwIChmbG9hdCB4XzEsIGZsb2F0 IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIpOworKwkJcHVibGljIHZvaWQgcHVzaF9yZWdpb25f Y2xpcCAoQ2Fpcm8uUmVnaW9uIHJlZ2lvbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorIAkJcHVibGljIHZvaWQgcHVzaF9zY2lzc29yX2NsaXAgKGludCB4LCBpbnQgeSwgaW50IHdp ZHRoLCBpbnQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJs aWMgQ29nbC5Cb29sIHJlYWRfcGl4ZWxzIChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhl aWdodCwgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIHVpbnQ4IHBpeGVscyk7CisrCQlwdWJsaWMg Ym9vbCByZWFkX3BpeGVscyAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIENv Z2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCB1aW50OCBwaXhlbHMpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgcmVhZF9waXhlbHNfaW50b19iaXRtYXAg KGludCB4LCBpbnQgeSwgQ29nbC5SZWFkUGl4ZWxzRmxhZ3Mgc291cmNlLCBDb2dsLkJpdG1hcCBi aXRtYXApOworKwkJcHVibGljIGJvb2wgcmVhZF9waXhlbHNfaW50b19iaXRtYXAgKGludCB4LCBp bnQgeSwgQ29nbC5SZWFkUGl4ZWxzRmxhZ3Mgc291cmNlLCBDb2dsLkJpdG1hcCBiaXRtYXApOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZvaWQgcmVzb2x2ZV9zYW1w bGVzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorQEAgLTU2MCwxOSArNDM4LDEz IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlw dWJsaWMgdm9pZCByb3RhdGUgKGZsb2F0IGFuZ2xlLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6 KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHJvdGF0ZV9l dWxlciAoQ29nbC5FdWxlciBldWxlcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCist CQlwdWJsaWMgdm9pZCByb3RhdGVfcXVhdGVybmlvbiAoQ29nbC5RdWF0ZXJuaW9uIHF1YXRlcm5p b24pOworKwkJcHVibGljIHZvaWQgcm90YXRlX2V1bGVyIChHcmFwaGVuZS5FdWxlciBldWxlcik7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgc2NhbGUgKGZs b2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQor LQkJcHVibGljIHZvaWQgc2V0X2NvbG9yX21hc2sgKENvZ2wuQ29sb3JNYXNrIGNvbG9yX21hc2sp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kZXB0 aF90ZXh0dXJlX2VuYWJsZWQgKENvZ2wuQm9vbCBlbmFibGVkKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjE4IildCistCQlwdWJsaWMgdm9pZCBzZXRfZGVwdGhfd3JpdGVfZW5hYmxlZCAoQ29n bC5Cb29sIGRlcHRoX3dyaXRlX2VuYWJsZWQpOworKwkJcHVibGljIHZvaWQgc2V0X2RlcHRoX3dy aXRlX2VuYWJsZWQgKGJvb2wgZGVwdGhfd3JpdGVfZW5hYmxlZCk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBzZXRfZGl0aGVyX2VuYWJsZWQgKENvZ2wuQm9v bCBkaXRoZXJfZW5hYmxlZCk7CisrCQlwdWJsaWMgdm9pZCBzZXRfZGl0aGVyX2VuYWJsZWQgKGJv b2wgZGl0aGVyX2VuYWJsZWQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1 YmxpYyB2b2lkIHNldF9tb2RlbHZpZXdfbWF0cml4IChDb2dsLk1hdHJpeCBtYXRyaXgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC01ODgsNiArNDYwLDM5IEBAIG5hbWVzcGFj ZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCB0 cmFuc2xhdGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworIAl9CisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF90ZXh0dXJlX2dl dF9ndHlwZSAoKSIpXQorKwlwdWJsaWMgaW50ZXJmYWNlIFRleHR1cmUgOiBDb2dsLk9iamVjdCB7 CisrCQlwdWJsaWMgYm9vbCBhbGxvY2F0ZSAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1Ymxp YyBzdGF0aWMgdWludDMyIGVycm9yX3F1YXJrICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTgiKV0KKysJCXB1YmxpYyBDb2dsLlRleHR1cmVDb21wb25lbnRzIGdldF9jb21wb25lbnRzICgp OworKwkJcHVibGljIGludCBnZXRfZGF0YSAoQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIHVpbnQg cm93c3RyaWRlLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gdWludDhbXT8gZGF0YSk7 CisrCQlwdWJsaWMgYm9vbCBnZXRfZ2xfdGV4dHVyZSAob3V0IHVpbnQgb3V0X2dsX2hhbmRsZSwg b3V0IHVpbnQgb3V0X2dsX3RhcmdldCk7CisrCQlwdWJsaWMgdWludCBnZXRfaGVpZ2h0ICgpOwor KwkJcHVibGljIGludCBnZXRfbWF4X3dhc3RlICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTgiKV0KKysJCXB1YmxpYyBib29sIGdldF9wcmVtdWx0aXBsaWVkICgpOworKwkJcHVibGljIHVp bnQgZ2V0X3dpZHRoICgpOworKwkJcHVibGljIGJvb2wgaXNfc2xpY2VkICgpOworKwkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9 ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIG5ld19mcm9tX2JpdG1hcCAo Q29nbC5CaXRtYXAgYml0bWFwLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZv cm1hdCBpbnRlcm5hbF9mb3JtYXQpOworKwkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKysJCXB1YmxpYyBzdGF0 aWMgQ29nbC5UZXh0dXJlIG5ld19mcm9tX2RhdGEgKGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29n bC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCBDb2dsLlBpeGVs Rm9ybWF0IGludGVybmFsX2Zvcm1hdCwgaW50IHJvd3N0cmlkZSwgW0NDb2RlIChhcnJheV9sZW5n dGggPSBmYWxzZSldIHVpbnQ4W10gZGF0YSk7CisrCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorKwkJcHVibGlj IHN0YXRpYyBDb2dsLlRleHR1cmUgbmV3X2Zyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lLCBDb2ds LlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpIHRo cm93cyBHTGliLkVycm9yOworKwkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBDb2dsLlRleHR1 cmUgbmV3X2Zyb21fc3ViX3RleHR1cmUgKGludCBzdWJfeCwgaW50IHN1Yl95LCBpbnQgc3ViX3dp ZHRoLCBpbnQgc3ViX2hlaWdodCk7CisrCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorKwkJcHVibGljIHN0YXRp YyBDb2dsLlRleHR1cmUgbmV3X3dpdGhfc2l6ZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQsIENv Z2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorKwkJcHVibGljIHZvaWQgc2V0X2NvbXBv bmVudHMgKENvZ2wuVGV4dHVyZUNvbXBvbmVudHMgY29tcG9uZW50cyk7CisrCQlwdWJsaWMgYm9v bCBzZXRfZGF0YSAoQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIGludCByb3dzdHJpZGUsIFtDQ29k ZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1aW50OFtdIGRhdGEsIGludCBsZXZlbCkgdGhyb3dz IEdMaWIuRXJyb3I7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorKwkJcHVibGljIHZv aWQgc2V0X3ByZW11bHRpcGxpZWQgKGJvb2wgcHJlbXVsdGlwbGllZCk7CisrCQlwdWJsaWMgYm9v bCBzZXRfcmVnaW9uIChpbnQgc3JjX3gsIGludCBzcmNfeSwgaW50IGRzdF94LCBpbnQgZHN0X3ks IHVpbnQgZHN0X3dpZHRoLCB1aW50IGRzdF9oZWlnaHQsIGludCB3aWR0aCwgaW50IGhlaWdodCwg Q29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIHVpbnQgcm93c3RyaWRlLCBbQ0NvZGUgKGFycmF5X2xl bmd0aCA9IGZhbHNlKV0gdWludDhbXSBkYXRhKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgi KV0KKysJCXB1YmxpYyBib29sIHNldF9yZWdpb25fZnJvbV9iaXRtYXAgKGludCBzcmNfeCwgaW50 IHNyY195LCBpbnQgZHN0X3gsIGludCBkc3RfeSwgdWludCBkc3Rfd2lkdGgsIHVpbnQgZHN0X2hl aWdodCwgQ29nbC5CaXRtYXAgYml0bWFwKTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1NpbXBsZVR5cGVdCisgCXB1YmxpYyBzdHJ1Y3QgQW5n bGUgOiBpbnQzMiB7CitAQCAtNjM1LDEwICs1NDAsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlw dWJsaWMgdm9pZCBzZXRfYmx1ZV9ieXRlICh1aW50OCBibHVlKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9ibHVlX2Zsb2F0IChmbG9hdCBibHVlKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjQi LCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9mcm9tXzRmIChmbG9hdCByZWQs IGZsb2F0IGdyZWVuLCBmbG9hdCBibHVlLCBmbG9hdCBhbHBoYSk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS40Iiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgdm9pZCBzZXRfZnJvbV80dWIgKHVpbnQ4IHJlZCwgdWludDggZ3JlZW4sIHVp bnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJ CXB1YmxpYyB2b2lkIHNldF9ncmVlbiAoZmxvYXQgZ3JlZW4pOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNCIpXQorQEAgLTY2Miw3ICs1NjMsNyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJs aWMgd2VhayBzdHJpbmcgbmFtZTsKKyAJCXB1YmxpYyB1bG9uZyBpbnN0YW5jZV9jb3VudDsKKyAJ fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0g IkNPR0xfVFlQRV9NQVRSSVgiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0g ImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiQ09HTF9UWVBFX01BVFJJWCIpXQorIAlwdWJsaWMg c3RydWN0IE1hdHJpeCB7CisgCQlwdWJsaWMgZmxvYXQgeHg7CisgCQlwdWJsaWMgZmxvYXQgeXg7 CitAQCAtNjg5LDMyICs1OTAsMjcgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIHZvaWQg ZnJ1c3R1bSAoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9w LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKyAJCXB1YmxpYyB1bm93bmVkIGZsb2F0W10g Z2V0X2FycmF5ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIENv Z2wuQm9vbCBnZXRfaW52ZXJzZSAob3V0IENvZ2wuTWF0cml4IGludmVyc2UpOworKwkJcHVibGlj IGJvb2wgZ2V0X2ludmVyc2UgKG91dCBDb2dsLk1hdHJpeCBpbnZlcnNlKTsKKyAJCVtDQ29kZSAo Y25hbWUgPSAiY29nbF9tYXRyaXhfaW5pdF9pZGVudGl0eSIpXQorIAkJcHVibGljIE1hdHJpeC5p ZGVudGl0eSAoKTsKKy0JCXB1YmxpYyB2b2lkIGluaXRfZnJvbV9ldWxlciAoQ29nbC5FdWxlciBl dWxlcik7CistCQlwdWJsaWMgdm9pZCBpbml0X2Zyb21fcXVhdGVybmlvbiAoQ29nbC5RdWF0ZXJu aW9uIHF1YXRlcm5pb24pOworKwkJcHVibGljIHZvaWQgaW5pdF9mcm9tX2V1bGVyIChHcmFwaGVu ZS5FdWxlciBldWxlcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMg dm9pZCBpbml0X3RyYW5zbGF0aW9uIChmbG9hdCB0eCwgZmxvYXQgdHksIGZsb2F0IHR6KTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgaXNfaWRlbnRp dHkgKCk7CisrCQlwdWJsaWMgYm9vbCBpc19pZGVudGl0eSAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2b2lkIGxvb2tfYXQgKGZsb2F0IGV5ZV9wb3NpdGlvbl94 LCBmbG9hdCBleWVfcG9zaXRpb25feSwgZmxvYXQgZXllX3Bvc2l0aW9uX3osIGZsb2F0IG9iamVj dF94LCBmbG9hdCBvYmplY3RfeSwgZmxvYXQgb2JqZWN0X3osIGZsb2F0IHdvcmxkX3VwX3gsIGZs b2F0IHdvcmxkX3VwX3ksIGZsb2F0IHdvcmxkX3VwX3opOworIAkJW0NDb2RlIChjbmFtZSA9ICJj b2dsX21hdHJpeF9tdWx0aXBseSIpXQorIAkJcHVibGljIE1hdHJpeC5tdWx0aXBseSAoQ29nbC5N YXRyaXggYSwgQ29nbC5NYXRyaXggYik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgb3J0aG8gKGZsb2F0 IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgbmVhciwg ZmxvYXQgZmFyKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9p ZCBvcnRob2dyYXBoaWMgKGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlf MiwgZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsKKyAJCXB1YmxpYyB2b2lkIHBlcnNwZWN0aXZlIChm bG9hdCBmb3ZfeSwgZmxvYXQgYXNwZWN0LCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKyAJ CXB1YmxpYyB2b2lkIHByb2plY3RfcG9pbnRzIChpbnQgbl9jb21wb25lbnRzLCBzaXplX3Qgc3Ry aWRlX2luLCB2b2lkKiBwb2ludHNfaW4sIHNpemVfdCBzdHJpZGVfb3V0LCB2b2lkKiBwb2ludHNf b3V0LCBpbnQgbl9wb2ludHMpOworIAkJcHVibGljIHZvaWQgcm90YXRlIChmbG9hdCBhbmdsZSwg ZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CistCQlwdWJsaWMgdm9pZCByb3RhdGVfZXVsZXIgKENvZ2wuRXVsZXIgZXVsZXIpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgcm90YXRlX3F1YXRlcm5pb24g KENvZ2wuUXVhdGVybmlvbiBxdWF0ZXJuaW9uKTsKKysJCXB1YmxpYyB2b2lkIHJvdGF0ZV9ldWxl ciAoR3JhcGhlbmUuRXVsZXIgZXVsZXIpOworIAkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IHN4 LCBmbG9hdCBzeSwgZmxvYXQgc3opOworLQkJcHVibGljIHZvaWQgdHJhbnNmb3JtX3BvaW50IChy ZWYgZmxvYXQgeCwgcmVmIGZsb2F0IHksIHJlZiBmbG9hdCB6LCByZWYgZmxvYXQgdyk7CisrCQlw dWJsaWMgc3RhdGljIHZvaWQgdHJhbnNmb3JtX3BvaW50IChyZWYgQ29nbC5NYXRyaXggbWF0cml4 LCByZWYgZmxvYXQgeCwgcmVmIGZsb2F0IHksIHJlZiBmbG9hdCB6LCByZWYgZmxvYXQgdyk7Cisg CQlwdWJsaWMgdm9pZCB0cmFuc2Zvcm1fcG9pbnRzIChpbnQgbl9jb21wb25lbnRzLCBzaXplX3Qg c3RyaWRlX2luLCB2b2lkKiBwb2ludHNfaW4sIHNpemVfdCBzdHJpZGVfb3V0LCB2b2lkKiBwb2lu dHNfb3V0LCBpbnQgbl9wb2ludHMpOworIAkJcHVibGljIHZvaWQgdHJhbnNsYXRlIChmbG9hdCB4 LCBmbG9hdCB5LCBmbG9hdCB6KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAt ODAxLDE2ICs2OTcsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlXSU5ET1dfQlVGRkVSLAorIAkJ T0ZGU0NSRUVOX0JVRkZFUgorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9DT0xPUl9NQVNLXyIsIGhhc190eXBlX2lkID0gZmFs c2UpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIENvbG9yTWFzayB7CistCQlOT05FLAorLQkJ UkVELAorLQkJR1JFRU4sCistCQlCTFVFLAorLQkJQUxQSEEsCistCQlBTEwKKy0JfQorIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfREVQ VEhfVEVTVF9GVU5DVElPTl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIGVudW0g RGVwdGhUZXN0RnVuY3Rpb24geworIAkJTkVWRVIsCitAQCAtODIyLDQ2ICs3MDgsNDEgQEAgbmFt ZXNwYWNlIENvZ2wgeworIAkJR0VRVUFMLAorIAkJQUxXQVlTCisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZFQVRVUkVfIiwg aGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9FR0xfSU1BR0VfRkxBR18iLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKyAJW0ZsYWdzXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCistCXB1Ymxp YyBlbnVtIEZlYXR1cmVGbGFncyB7CistCQlURVhUVVJFX1JFQ1RBTkdMRSwKKy0JCVRFWFRVUkVf TlBPVCwKKy0JCVRFWFRVUkVfWVVWLAorLQkJVEVYVFVSRV9SRUFEX1BJWEVMUywKKy0JCVNIQURF UlNfR0xTTCwKKy0JCU9GRlNDUkVFTiwKKy0JCU9GRlNDUkVFTl9NVUxUSVNBTVBMRSwKKy0JCU9G RlNDUkVFTl9CTElULAorLQkJRk9VUl9DTElQX1BMQU5FUywKKy0JCVNURU5DSUxfQlVGRkVSLAor LQkJVkJPUywKKy0JCVBCT1MsCistCQlVTlNJR05FRF9JTlRfSU5ESUNFUywKKy0JCURFUFRIX1JB TkdFLAorLQkJVEVYVFVSRV9OUE9UX0JBU0lDLAorLQkJVEVYVFVSRV9OUE9UX01JUE1BUCwKKy0J CVRFWFRVUkVfTlBPVF9SRVBFQVQsCistCQlQT0lOVF9TUFJJVEUsCistCQlURVhUVVJFXzNELAor LQkJTUFQX0JVRkZFUl9GT1JfUkVBRCwKKy0JCU1BUF9CVUZGRVJfRk9SX1dSSVRFLAorLQkJT05T Q1JFRU5fTVVMVElQTEUsCistCQlERVBUSF9URVhUVVJFCisrCXB1YmxpYyBlbnVtIEVnbEltYWdl RmxhZ3MgeworKwkJTk9ORSwKKysJCU5PX0dFVF9EQVRBCisrCX0KKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZFQVRVUkVfSURfIiwg aGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCXB1 YmxpYyBlbnVtIEZlYXR1cmVJRCB7CisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9J RF9VTlNJR05FRF9JTlRfSU5ESUNFUyIpXQorKwkJT0dMX0ZFQVRVUkVfSURfVU5TSUdORURfSU5U X0lORElDRVMsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9NQVBfQlVGRkVS X0ZPUl9SRUFEIildCisrCQlPR0xfRkVBVFVSRV9JRF9NQVBfQlVGRkVSX0ZPUl9SRUFELAorKwkJ W0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfTUFQX0JVRkZFUl9GT1JfV1JJVEUiKV0K KysJCU9HTF9GRUFUVVJFX0lEX01BUF9CVUZGRVJfRk9SX1dSSVRFLAorKwkJW0NDb2RlIChjbmFt ZSA9ICJDT0dMX0ZFQVRVUkVfSURfU1dBUF9CVUZGRVJTX0VWRU5UIildCisrCQlPR0xfRkVBVFVS RV9JRF9TV0FQX0JVRkZFUlNfRVZFTlQsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVS RV9JRF9QUkVTRU5UQVRJT05fVElNRSIpXQorKwkJT0dMX0ZFQVRVUkVfSURfUFJFU0VOVEFUSU9O X1RJTUUsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9GRU5DRSIpXQorKwkJ T0dMX0ZFQVRVUkVfSURfRkVOQ0UsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9J RF9URVhUVVJFX1JHIildCisrCQlPR0xfRkVBVFVSRV9JRF9URVhUVVJFX1JHLAorKwkJW0NDb2Rl IChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfQlVGRkVSX0FHRSIpXQorKwkJT0dMX0ZFQVRVUkVf SURfQlVGRkVSX0FHRSwKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX1RFWFRV UkVfRUdMX0lNQUdFX0VYVEVSTkFMIildCisrCQlPR0xfRkVBVFVSRV9JRF9URVhUVVJFX0VHTF9J TUFHRV9FWFRFUk5BTCwKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9GRUFUVVJFX0lEX0JMSVRf RlJBTUVCVUZGRVIiKV0KKysJCU9HTF9GRUFUVVJFX0lEX0JMSVRfRlJBTUVCVUZGRVIKKyAJfQor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNP R0xfRklMVEVSXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgZW51bSBGaWx0ZXJS ZXR1cm4geworIAkJQ09OVElOVUUsCisgCQlSRU1PVkUKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRk9HX01PREVfIiwgaGFz X3R5cGVfaWQgPSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGlj IGVudW0gRm9nTW9kZSB7CistCQlMSU5FQVIsCistCQlFWFBPTkVOVElBTCwKKy0JCUVYUE9ORU5U SUFMX1NRVUFSRUQKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiLCBjcHJlZml4ID0gIkNPR0xfRlJBTUVfRVZFTlRfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSld CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisgCXB1YmxpYyBlbnVtIEZyYW1lRXZlbnQg eworQEAgLTg3NCw2ICs3NTUsMTQgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJRlJBTUVCVUZGRVJf RVJST1JfQUxMT0NBVEU7CisgCQlwdWJsaWMgc3RhdGljIHVpbnQzMiBxdWFyayAoKTsKKyAJfQor KwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNP R0xfR1JBUEhJQ1NfUkVTRVRfU1RBVFVTXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlwdWJs aWMgZW51bSBHcmFwaGljc1Jlc2V0U3RhdHVzIHsKKysJCU5PX0VSUk9SLAorKwkJR1VJTFRZX0NP TlRFWFRfUkVTRVQsCisrCQlJTk5PQ0VOVF9DT05URVhUX1JFU0VULAorKwkJVU5LTk9XTl9DT05U RVhUX1JFU0VULAorKwkJUFVSR0VEX0NPTlRFWFRfUkVTRVQKKysJfQorIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfSU5ESUNFU19UWVBF X1VOU0lHTkVEXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgZW51bSBJbmRpY2Vz VHlwZSB7CisgCQlCWVRFLAorQEAgLTkwMCwxMiArNzg5LDYgQEAgbmFtZXNwYWNlIENvZ2wgewor IAkJTkVBUkVTVF9NSVBNQVBfTElORUFSLAorIAkJTElORUFSX01JUE1BUF9MSU5FQVIKKyAJfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNP R0xfTUFURVJJQUxfTEFZRVJfVFlQRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBNYXRlcmlhbExheWVyVHlwZSB7Cist CQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfTUFURVJJQUxfTEFZRVJfVFlQRV9URVhUVVJFIildCist CQlNQVRFUklBTF9MQVlFUl9UWVBFX1RFWFRVUkUKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfTUFURVJJQUxfV1JBUF9NT0RF XyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisg CXB1YmxpYyBlbnVtIE1hdGVyaWFsV3JhcE1vZGUgeworQEAgLTk3MCw2ICs4NTMsMTAgQEAgbmFt ZXNwYWNlIENvZ2wgeworIAkJQkdSQV8xMDEwMTAyLAorIAkJQVJHQl8yMTAxMDEwLAorIAkJQUJH Ul8yMTAxMDEwLAorKwkJUkdCQV9GUF8xNjE2MTYxNiwKKysJCUJHUkFfRlBfMTYxNjE2MTYsCisr CQlBUkdCX0ZQXzE2MTYxNjE2LAorKwkJQUJHUl9GUF8xNjE2MTYxNiwKKyAJCVJHQkFfODg4OF9Q UkUsCisgCQlCR1JBXzg4ODhfUFJFLAorIAkJQVJHQl84ODg4X1BSRSwKK0BAIC05ODAsOSArODY3 LDE2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCUJHUkFfMTAxMDEwMl9QUkUsCisgCQlBUkdCXzIx MDEwMTBfUFJFLAorIAkJQUJHUl8yMTAxMDEwX1BSRSwKKysJCVJHQkFfRlBfMTYxNjE2MTZfUFJF LAorKwkJQkdSQV9GUF8xNjE2MTYxNl9QUkUsCisrCQlBUkdCX0ZQXzE2MTYxNjE2X1BSRSwKKysJ CUFCR1JfRlBfMTYxNjE2MTZfUFJFLAorIAkJREVQVEhfMTYsCisgCQlERVBUSF8zMiwKKy0JCURF UFRIXzI0X1NURU5DSUxfOAorKwkJREVQVEhfMjRfU1RFTkNJTF84OworKwkJcHVibGljIGludCBn ZXRfYnl0ZXNfcGVyX3BpeGVsIChpbnQgcGxhbmUpOworKwkJcHVibGljIGludCBnZXRfbl9wbGFu ZXMgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgdG9fc3RyaW5nICgpOworIAl9CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9S RUFEX1BJWEVMU19DT0xPUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW0ZsYWdzXQorQEAg LTEwNDEsMTMgKzkzNSw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCU5PX1NMSUNJTkcsCisgCQlO T19BVExBUworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIs IGNwcmVmaXggPSAiQ09HTF9URVhUVVJFX1RZUEVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCist CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBlbnVtIFRleHR1cmVUeXBlIHsK Ky0JCUAyRCwKKy0JCUAzRCwKKy0JCVJFQ1RBTkdMRQorLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9WRVJUSUNFU19NT0RFXyIs IGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1 YmxpYyBlbnVtIFZlcnRpY2VzTW9kZSB7CitAQCAtMTA2Nyw3ICs5NTQsNiBAQCBuYW1lc3BhY2Ug Q29nbCB7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVm aXggPSAiQ09HTF9XSU5TWVNfRkVBVFVSRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVi bGljIGVudW0gV2luc3lzRmVhdHVyZSB7CisgCQlNVUxUSVBMRV9PTlNDUkVFTiwKKy0JCVNXQVBf VEhST1RUTEUsCisgCQlWQkxBTktfQ09VTlRFUiwKKyAJCVZCTEFOS19XQUlULAorIAkJVEVYVFVS RV9GUk9NX1BJWE1BUCwKK0BAIC0xMDgyLDkgKzk2OCwxMiBAQCBuYW1lc3BhY2UgQ29nbCB7Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9 IDEuOSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJcHVibGljIGRlbGVnYXRlIHZv aWQgRGVidWdPYmplY3RGb3JlYWNoVHlwZUNhbGxiYWNrIChDb2dsLkRlYnVnT2JqZWN0VHlwZUlu Zm8gaW5mbyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGlu c3RhbmNlX3BvcyA9IDIuOSldCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCXB1YmxpYyBkZWxlZ2F0ZSBD b2dsLkJvb2wgTWF0ZXJpYWxMYXllckNhbGxiYWNrIChDb2dsLk1hdGVyaWFsIG1hdGVyaWFsLCBp bnQgbGF5ZXJfaW5kZXgpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMC4xMCIpXQor KwlwdWJsaWMgZGVsZWdhdGUgdm9pZCBGZWF0dXJlQ2FsbGJhY2sgKENvZ2wuRmVhdHVyZUlEIGZl YXR1cmUpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0 YW5jZV9wb3MgPSAzLjkpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorKwlwdWJsaWMg ZGVsZWdhdGUgdm9pZCBGcmFtZUNhbGxiYWNrIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuLCBDb2ds LkZyYW1lRXZlbnQgZXZlbnQsIENvZ2wuRnJhbWVJbmZvIGluZm8pOworIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorIAlbVmVy c2lvbiAoc2luY2UgPSAiMS4xNiIpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBPbnNjcmVlbkRp cnR5Q2FsbGJhY2sgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4sIENvZ2wuT25zY3JlZW5EaXJ0eUlu Zm8gaW5mbyk7CitAQCAtMTA5MiwxMiArOTgxLDEwIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJW1Zl cnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBPbnNjcmVlblJl c2l6ZUNhbGxiYWNrIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuLCBpbnQgd2lkdGgsIGludCBoZWln aHQpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5j ZV9wb3MgPSAyLjkpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBPbnNjcmVlblgxMU1hc2tDYWxs YmFjayAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbiwgdWludDMyIGV2ZW50X21hc2spOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkp XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCXB1YmxpYyBkZWxlZ2F0ZSBDb2dsLkJv b2wgUGlwZWxpbmVMYXllckNhbGxiYWNrIChDb2dsLlBpcGVsaW5lIHBpcGVsaW5lLCBpbnQgbGF5 ZXJfaW5kZXgpOworKwlwdWJsaWMgZGVsZWdhdGUgYm9vbCBQaXBlbGluZUxheWVyQ2FsbGJhY2sg KENvZ2wuUGlwZWxpbmUgcGlwZWxpbmUsIGludCBsYXllcl9pbmRleCk7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCistCXB1 YmxpYyBkZWxlZ2F0ZSB2b2lkIFN3YXBCdWZmZXJzTm90aWZ5IChDb2dsLkZyYW1lYnVmZmVyIGZy YW1lYnVmZmVyKTsKKysJcHVibGljIGRlbGVnYXRlIGJvb2wgVGV4dHVyZTJERUdMSW1hZ2VFeHRl cm5hbEFsbG9jIChDb2dsLlRleHR1cmUyRCB0ZXhfMmQpIHRocm93cyBHTGliLkVycm9yOworIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdGFyZ2V0ID0gZmFs c2UpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBVc2VyRGF0YURlc3Ryb3lDYWxsYmFjayAodm9p ZCogZGF0YSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNu YW1lID0gIkNPR0xfQUZJUlNUX0JJVCIpXQorQEAgLTExMDgsNiArOTk1LDggQEAgbmFtZXNwYWNl IENvZ2wgeworIAlwdWJsaWMgY29uc3QgaW50IEJHUl9CSVQ7CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfREVQVEhfQklUIildCisgCXB1 YmxpYyBjb25zdCBpbnQgREVQVEhfQklUOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX1BJWEVMX0ZPUk1BVF9NQVhfUExBTkVTIildCisr CXB1YmxpYyBjb25zdCBpbnQgUElYRUxfRk9STUFUX01BWF9QTEFORVM7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfUFJFTVVMVF9CSVQi KV0KKyAJcHVibGljIGNvbnN0IGludCBQUkVNVUxUX0JJVDsKKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9TVEVOQ0lMX0JJVCIpXQorQEAg LTExMTUsMjEgKzEwMDQsMTIgQEAgbmFtZXNwYWNlIENvZ2wgeworIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX1RFWFRVUkVfTUFYX1dBU1RF IildCisgCXB1YmxpYyBjb25zdCBpbnQgVEVYVFVSRV9NQVhfV0FTVEU7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgYmVnaW5fZ2wgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGNoZWNrX2V4dGVu c2lvbiAoc3RyaW5nIG5hbWUsIHN0cmluZyBleHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGNsZWFyIChDb2ds LkNvbG9yIGNvbG9yLCB1bG9uZyBidWZmZXJzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGNsdXR0ZXJfY2hl Y2tfZXh0ZW5zaW9uX0NMVVRURVIgKHN0cmluZyBuYW1lLCBzdHJpbmcgZXh0KTsKKysJcHVibGlj IHN0YXRpYyBib29sIGJsaXRfZnJhbWVidWZmZXIgKENvZ2wuRnJhbWVidWZmZXIgc3JjLCBDb2ds LkZyYW1lYnVmZmVyIGRlc3QsIGludCBzcmNfeCwgaW50IHNyY195LCBpbnQgZHN0X3gsIGludCBk c3RfeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCXB1YmxpYyBzdGF0aWMgQ29n bC5Cb29sIGNsdXR0ZXJfd2luc3lzX2hhc19mZWF0dXJlX0NMVVRURVIgKENvZ2wuV2luc3lzRmVh dHVyZSBmZWF0dXJlKTsKKysJcHVibGljIHN0YXRpYyBib29sIGNsdXR0ZXJfd2luc3lzX2hhc19m ZWF0dXJlX0NMVVRURVIgKENvZ2wuV2luc3lzRmVhdHVyZSBmZWF0dXJlKTsKKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgY29sb3JfZXF1YWwgKHZvaWQqIHYxLCB2 b2lkKiB2Mik7CisrCXB1YmxpYyBzdGF0aWMgYm9vbCBjb2xvcl9lcXVhbCAodm9pZCogdjEsIHZv aWQqIHYyKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisg CVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBjb2xvcl9p bml0X2Zyb21faHNsIChvdXQgQ29nbC5Db2xvciBjb2xvciwgZmxvYXQgaHVlLCBmbG9hdCBzYXR1 cmF0aW9uLCBmbG9hdCBsdW1pbmFuY2UpOworQEAgLTExNDMsMjM0ICsxMDIzLDg3IEBAIG5hbWVz cGFjZSBDb2dsIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAlwdWJsaWMgc3RhdGlj IHZvaWQgZGVidWdfb2JqZWN0X3ByaW50X2luc3RhbmNlcyAoKTsKKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBkaXNh YmxlX2ZvZyAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBlbmRfZ2wgKCk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3Rh dGljIENvZ2wuQm9vbCBmZWF0dXJlc19hdmFpbGFibGUgKENvZ2wuRmVhdHVyZUZsYWdzIGZlYXR1 cmVzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIGZsdXNoICgpOwor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIw LjguMiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZnJ1c3R1bSAoZmxvYXQgbGVmdCwgZmxvYXQg cmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFy KTsKKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJcHVibGljIHN0YXRpYyB2b2lkIGZv cmVhY2hfZmVhdHVyZSAoQ29nbC5Db250ZXh0IGNvbnRleHQsIENvZ2wuRmVhdHVyZUNhbGxiYWNr IGNhbGxiYWNrKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGdldF9iYWNrZmFjZV9jdWxsaW5nX2VuYWJs ZWQgKCk7CisrCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfYmFja2ZhY2VfY3VsbGluZ19lbmFibGVk ICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgZ2V0X2JpdG1hc2tzIChvdXQgaW50IHJlZCwgb3V0IGludCBncmVl biwgb3V0IGludCBibHVlLCBvdXQgaW50IGFscGhhKTsKKysJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTQiKV0KKysJcHVibGljIHN0YXRpYyBpbnQ2NCBnZXRfY2xvY2tfdGltZSAoQ29nbC5Db250ZXh0 IGNvbnRleHQpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K KyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi KV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgZ2V0X2RlcHRoX3Rlc3RfZW5hYmxlZCAoKTsK KysJcHVibGljIHN0YXRpYyBib29sIGdldF9kZXB0aF90ZXN0X2VuYWJsZWQgKCk7CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2Ug PSAiMS44IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDb2dsLkZyYW1lYnVmZmVyIGdldF9k cmF3X2ZyYW1lYnVmZmVyICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiLCBzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkZlYXR1cmVG bGFncyBnZXRfZmVhdHVyZXMgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuTWF0cml4IGdldF9tb2RlbHZpZXdf bWF0cml4ICgpOworKwlwdWJsaWMgc3RhdGljIENvZ2wuR3JhcGhpY3NSZXNldFN0YXR1cyBnZXRf Z3JhcGhpY3NfcmVzZXRfc3RhdHVzIChDb2dsLkNvbnRleHQgY29udGV4dCk7CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAlw dWJsaWMgc3RhdGljIEdMaWIuT3B0aW9uR3JvdXAgZ2V0X29wdGlvbl9ncm91cCAoKTsKKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCXB1YmxpYyBzdGF0aWMg R0xpYi5DYWxsYmFjayBnZXRfcHJvY19hZGRyZXNzIChzdHJpbmcgcyk7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wu TWF0cml4IGdldF9wcm9qZWN0aW9uX21hdHJpeCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS42IildCistCXB1YmxpYyBzdGF0aWMg dm9pZCogZ2V0X3NvdXJjZSAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBnZXRfdmlld3BvcnQgKFtDQ29kZSAo YXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBvdXQgZmxvYXQgdls0XSk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIpXQorIAlwdWJsaWMgc3RhdGljIEdMaWIuVHlw ZSBndHlwZV9tYXRyaXhfZ2V0X3R5cGUgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMg c3RhdGljIENvZ2wuQm9vbCBpc19mcmFtZWJ1ZmZlciAodm9pZCogb2JqZWN0KTsKKysJcHVibGlj IHN0YXRpYyBib29sIGhhc19mZWF0dXJlIChDb2dsLkNvbnRleHQgY29udGV4dCwgQ29nbC5GZWF0 dXJlSUQgZmVhdHVyZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wu Qm9vbCBpc19vbnNjcmVlbiAodm9pZCogb2JqZWN0KTsKKysJcHVibGljIHN0YXRpYyBib29sIGlz X2NvbnRleHQgKHZvaWQqIG9iamVjdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCXB1YmxpYyBzdGF0 aWMgQ29nbC5Cb29sIGlzX3BpcGVsaW5lICh2b2lkKiBvYmplY3QpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGlj IHN0YXRpYyBDb2dsLkJvb2wgaXNfdmVydGV4X2J1ZmZlcl9pbmRpY2VzIChDb2dsLkhhbmRsZSBo YW5kbGUpOworKwlwdWJsaWMgc3RhdGljIGJvb2wgaXNfZnJhbWVfaW5mbyAodm9pZCogb2JqZWN0 KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgbWF0cml4X2Vx dWFsICh2b2lkKiB2MSwgdm9pZCogdjIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIG9y dGhvIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3AsIGZs b2F0IG5lYXIsIGZsb2F0IGZhcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcGVyc3BlY3RpdmUgKGZsb2F0IGZv dnksIGZsb2F0IGFzcGVjdCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwb2x5Z29uIChDb2dsLlRleHR1cmVWZXJ0ZXgg dmVydGljZXMsIHVpbnQgbl92ZXJ0aWNlcywgQ29nbC5Cb29sIHVzZV9jb2xvcik7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgcG9wX21hdHJpeCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwb3Bfc291 cmNlICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0K Ky0JcHVibGljIHN0YXRpYyB2b2lkIHB1c2hfbWF0cml4ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHB1c2hfc291cmNlICh2b2lkKiBtYXRlcmlhbCk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFu Z2xlIChmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xlX3dpdGhfbXVsdGl0ZXh0 dXJlX2Nvb3JkcyAoZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB4MiwgZmxvYXQgeTIsIFtDQ29k ZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIHRleF9jb29yZHMsIGludCB0ZXhfY29v cmRzX2xlbik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5n bGVfd2l0aF90ZXh0dXJlX2Nvb3JkcyAoZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB4MiwgZmxv YXQgeTIsIGZsb2F0IHR4MSwgZmxvYXQgdHkxLCBmbG9hdCB0eDIsIGZsb2F0IHR5Mik7CisrCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCXB1YmxpYyBzdGF0aWMgYm9vbCBpc19mcmFtZWJ1 ZmZlciAodm9pZCogb2JqZWN0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIHJlY3RhbmdsZXMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIHZl cnRzLCB1aW50IG5fcmVjdHMpOworKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwlwdWJs aWMgc3RhdGljIGJvb2wgaXNfb25zY3JlZW4gKHZvaWQqIG9iamVjdCk7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC44 LjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlY3RhbmdsZXNfd2l0aF90ZXh0dXJlX2Nvb3Jk cyAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0W10gdmVydHMsIHVpbnQgbl9y ZWN0cyk7CisrCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKysJcHVibGljIHN0YXRpYyBib29s IGlzX3BpcGVsaW5lICh2b2lkKiBvYmplY3QpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJvdGF0ZSAoZmxvYXQg YW5nbGUsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworKwlwdWJsaWMgc3RhdGljIGJvb2wg aXNfdGV4dHVyZV8yZCAodm9pZCogb2JqZWN0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzY2FsZSAoZmxvYXQg eCwgZmxvYXQgeSwgZmxvYXQgeik7CisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCXB1 YmxpYyBzdGF0aWMgYm9vbCBpc190ZXh0dXJlXzJkX3NsaWNlZCAodm9pZCogb2JqZWN0KTsKKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBz dGF0aWMgdm9pZCBzZXRfYmFja2ZhY2VfY3VsbGluZ19lbmFibGVkIChDb2dsLkJvb2wgc2V0dGlu Zyk7CisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJcHVibGljIHN0YXRpYyBib29sIG1h dHJpeF9lcXVhbCAodm9pZCogdjEsIHZvaWQqIHYyKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfZGVwdGhf dGVzdF9lbmFibGVkIChDb2dsLkJvb2wgc2V0dGluZyk7CisrCXB1YmxpYyBzdGF0aWMgdm9pZCBz ZXRfYmFja2ZhY2VfY3VsbGluZ19lbmFibGVkIChib29sIHNldHRpbmcpOworIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IHNldF9mb2cgKENvZ2wuQ29sb3IgZm9nX2NvbG9yLCBDb2dsLkZvZ01vZGUgbW9kZSwgZmxvYXQg ZGVuc2l0eSwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CisrCXB1YmxpYyBzdGF0aWMgdm9p ZCBzZXRfZGVwdGhfdGVzdF9lbmFibGVkIChib29sIHNldHRpbmcpOworIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNl dF9tb2RlbHZpZXdfbWF0cml4IChDb2dsLk1hdHJpeCBtYXRyaXgpOworKwlwdWJsaWMgc3RhdGlj IHZvaWQgc2V0X3RyYWNpbmdfZGlzYWJsZWRfb25fdGhyZWFkICh2b2lkKiBkYXRhKTsKKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCBzZXRfcHJvamVjdGlvbl9tYXRyaXggKENvZ2wuTWF0cml4IG1hdHJpeCk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3NvdXJjZSAodm9pZCogbWF0ZXJpYWwpOworKwlw dWJsaWMgc3RhdGljIHZvaWQgc2V0X3RyYWNpbmdfZW5hYmxlZF9vbl90aHJlYWQgKHZvaWQqIGRh dGEsIHN0cmluZyBncm91cCwgc3RyaW5nIGZpbGVuYW1lKTsKKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCBzZXRfc291cmNlX2NvbG9yIChDb2dsLkNvbG9yIGNvbG9yKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlX2NvbG9yNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3Jl ZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCBzZXRfc291cmNlX2NvbG9yNHViICh1aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVl LCB1aW50OCBhbHBoYSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3NvdXJjZV90 ZXh0dXJlIChDb2dsLlRleHR1cmUgdGV4dHVyZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCBzZXRfdmlld3BvcnQgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBz dGF0aWMgdm9pZCBzaGFkZXJfY29tcGlsZSAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMg c3RyaW5nIHNoYWRlcl9nZXRfaW5mb19sb2cgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CisrCXB1Ymxp YyBzdGF0aWMgdm9pZCBzZXRfdHJhY2luZ19lbmFibGVkX29uX3RocmVhZF93aXRoX2ZkICh2b2lk KiBkYXRhLCBzdHJpbmcgZ3JvdXAsIGludCBmZCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAlwdWJsaWMgc3RhdGljIENvZ2wuU2hhZGVyVHlwZSBz aGFkZXJfZ2V0X3R5cGUgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBz aGFkZXJfaXNfY29tcGlsZWQgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQg Q29nbC5IYW5kbGUgc2hhZGVyX3JlZiAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCisgCXB1YmxpYyBzdGF0aWMgdm9p ZCBzaGFkZXJfc291cmNlIChDb2dsLkhhbmRsZSBzaGFkZXIsIHN0cmluZyBzb3VyY2UpOworIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHNoYWRlcl91bnJlZiAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMS4wIildCisgCXB1 YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIHRleHR1cmVfbmV3X2Zyb21fYml0bWFwIChDb2dsLkJp dG1hcCBiaXRtYXAsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGlu dGVybmFsX2Zvcm1hdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xOCIsIHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0 dXJlX25ld19mcm9tX2RhdGEgKGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxh Z3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCBDb2dsLlBpeGVsRm9ybWF0IGludGVy bmFsX2Zvcm1hdCwgaW50IHJvd3N0cmlkZSwgdWludDggZGF0YSk7CisrCXB1YmxpYyBzdGF0aWMg Q29nbC5UZXh0dXJlIHRleHR1cmVfbmV3X2Zyb21fZGF0YSAoaW50IHdpZHRoLCBpbnQgaGVpZ2h0 LCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIENvZ2wu UGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0LCBpbnQgcm93c3RyaWRlLCBbQ0NvZGUgKGFycmF5 X2xlbmd0aCA9IGZhbHNlKV0gdWludDhbXSBkYXRhKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCisgCXB1YmxpYyBzdGF0aWMg Q29nbC5UZXh0dXJlIHRleHR1cmVfbmV3X2Zyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lLCBDb2ds LlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpIHRo cm93cyBHTGliLkVycm9yOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgdGV4 dHVyZV9uZXdfZnJvbV9mb3JlaWduICh1aW50IGdsX2hhbmRsZSwgdWludCBnbF90YXJnZXQsIHVp bnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCB1aW50IHhfcG90X3dhc3RlLCB1aW50IHlfcG90X3dhc3Rl LCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorIAlwdWJsaWMgc3RhdGljIENvZ2wu VGV4dHVyZSB0ZXh0dXJlX25ld193aXRoX3NpemUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCBD b2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQp OworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9 ICIxLjQiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHRyYW5zZm9ybSAoQ29nbC5NYXRyaXggbWF0 cml4KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCist CXB1YmxpYyBzdGF0aWMgdm9pZCB0cmFuc2xhdGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHop OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVi bGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfYWRkIChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0 cmluZyBhdHRyaWJ1dGVfbmFtZSwgdWludDggbl9jb21wb25lbnRzLCBDb2dsLkF0dHJpYnV0ZVR5 cGUgdHlwZSwgQ29nbC5Cb29sIG5vcm1hbGl6ZWQsIHVpbnQxNiBzdHJpZGUsIHZvaWQqIHBvaW50 ZXIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0J cHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfZGVsZXRlIChDb2dsLkhhbmRsZSBoYW5k bGUsIHN0cmluZyBhdHRyaWJ1dGVfbmFtZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9k aXNhYmxlIChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0cmluZyBhdHRyaWJ1dGVfbmFtZSk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3Rh dGljIHZvaWQgdmVydGV4X2J1ZmZlcl9kcmF3IChDb2dsLkhhbmRsZSBoYW5kbGUsIENvZ2wuVmVy dGljZXNNb2RlIG1vZGUsIGludCBmaXJzdCwgaW50IGNvdW50KTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0 ZXhfYnVmZmVyX2RyYXdfZWxlbWVudHMgKENvZ2wuSGFuZGxlIGhhbmRsZSwgQ29nbC5WZXJ0aWNl c01vZGUgbW9kZSwgQ29nbC5IYW5kbGUgaW5kaWNlcywgaW50IG1pbl9pbmRleCwgaW50IG1heF9p bmRleCwgaW50IGluZGljZXNfb2Zmc2V0LCBpbnQgY291bnQpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRl eF9idWZmZXJfZW5hYmxlIChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0cmluZyBhdHRyaWJ1dGVfbmFt ZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlw dWJsaWMgc3RhdGljIHVpbnQgdmVydGV4X2J1ZmZlcl9nZXRfbl92ZXJ0aWNlcyAoQ29nbC5IYW5k bGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDb2dsLkhhbmRsZSB2ZXJ0ZXhfYnVmZmVyX2lu ZGljZXNfZ2V0X2Zvcl9xdWFkcyAodWludCBuX2luZGljZXMpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkluZGlj ZXNUeXBlIHZlcnRleF9idWZmZXJfaW5kaWNlc19nZXRfdHlwZSAoQ29nbC5IYW5kbGUgaW5kaWNl cyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlw dWJsaWMgc3RhdGljIHVub3duZWQgQ29nbC5IYW5kbGUgdmVydGV4X2J1ZmZlcl9uZXcgKHVpbnQg bl92ZXJ0aWNlcyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4y IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDb2dsLkhhbmRsZSB2ZXJ0ZXhfYnVmZmVyX3Jl ZiAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX3N1Ym1p dCAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjIiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfdW5yZWYg KENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS44Iiwgc2luY2UgPSAiMC44LjIiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZpZXdw b3J0ICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlwdWJsaWMgc3RhdGljIHVpbnQzMiB4MTFfb25zY3JlZW5f Z2V0X3Zpc3VhbF94aWQgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4pOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKyAJcHVibGljIHN0YXRpYyB1aW50MzIgeDExX29uc2NyZWVuX2dldF93aW5kb3dfeGlkIChD b2dsLk9uc2NyZWVuIG9uc2NyZWVuKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIHgxMV9vbnNjcmVlbl9zZXRfZm9yZWlnbl93aW5kb3dfeGlkIChDb2dsLk9uc2NyZWVu IG9uc2NyZWVuLCB1aW50MzIgeGlkLCBbQ0NvZGUgKHNjb3BlID0gImFzeW5jIildIENvZ2wuT25z Y3JlZW5YMTFNYXNrQ2FsbGJhY2sgdXBkYXRlKTsKKyB9CitkaWZmIC0tZ2l0IHZhcGkvcG9sa2l0 LWdvYmplY3QtMS52YXBpIHZhcGkvcG9sa2l0LWdvYmplY3QtMS52YXBpCitpbmRleCA5M2VmZjhh NS4uZmVkYzZhNGEgMTAwNjQ0CistLS0gdmFwaS9wb2xraXQtZ29iamVjdC0xLnZhcGkKKysrKyB2 YXBpL3BvbGtpdC1nb2JqZWN0LTEudmFwaQorQEAgLTcsNyArNyw3IEBAIG5hbWVzcGFjZSBQb2xr aXQgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJv dGVjdGVkIEFjdGlvbkRlc2NyaXB0aW9uICgpOworIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdl dF9hY3Rpb25faWQgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2Fubm90YXRpb24g KHN0cmluZyBrZXkpOworKwkJcHVibGljIHVub3duZWQgc3RyaW5nPyBnZXRfYW5ub3RhdGlvbiAo c3RyaW5nIGtleSk7CisgCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlLCBhcnJheV9udWxs X3Rlcm1pbmF0ZWQgPSB0cnVlKV0KKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZ1tdIGdldF9hbm5v dGF0aW9uX2tleXMgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2Rlc2NyaXB0aW9u ICgpOworQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFBvbGtpdCB7CisgCQlwdWJsaWMgUG9s a2l0LkF1dGhvcml0eUZlYXR1cmVzIGdldF9iYWNrZW5kX2ZlYXR1cmVzICgpOworIAkJcHVibGlj IHVub3duZWQgc3RyaW5nIGdldF9iYWNrZW5kX25hbWUgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBz dHJpbmcgZ2V0X2JhY2tlbmRfdmVyc2lvbiAoKTsKKy0JCXB1YmxpYyBzdHJpbmcgZ2V0X293bmVy ICgpOworKwkJcHVibGljIHN0cmluZz8gZ2V0X293bmVyICgpOworIAkJcHVibGljIHN0YXRpYyBQ b2xraXQuQXV0aG9yaXR5IGdldF9zeW5jIChHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSA9 IG51bGwpIHRocm93cyBHTGliLkVycm9yOworIAkJcHVibGljIGFzeW5jIGJvb2wgcmVnaXN0ZXJf YXV0aGVudGljYXRpb25fYWdlbnQgKFBvbGtpdC5TdWJqZWN0IHN1YmplY3QsIHN0cmluZyBsb2Nh bGUsIHN0cmluZyBvYmplY3RfcGF0aCwgR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUpIHRo cm93cyBHTGliLkVycm9yOworIAkJcHVibGljIGJvb2wgcmVnaXN0ZXJfYXV0aGVudGljYXRpb25f YWdlbnRfc3luYyAoUG9sa2l0LlN1YmplY3Qgc3ViamVjdCwgc3RyaW5nIGxvY2FsZSwgc3RyaW5n IG9iamVjdF9wYXRoLCBHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSA9IG51bGwpIHRocm93 cyBHTGliLkVycm9yOworQEAgLTU2LDIxICs1NiwyMiBAQCBuYW1lc3BhY2UgUG9sa2l0IHsKKyAJ cHVibGljIGNsYXNzIEF1dGhvcml6YXRpb25SZXN1bHQgOiBHTGliLk9iamVjdCB7CisgCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwdWJsaWMgQXV0aG9yaXph dGlvblJlc3VsdCAoYm9vbCBpc19hdXRob3JpemVkLCBib29sIGlzX2NoYWxsZW5nZSwgUG9sa2l0 LkRldGFpbHM/IGRldGFpbHMpOworLQkJcHVibGljIHVub3duZWQgUG9sa2l0LkRldGFpbHMgZ2V0 X2RldGFpbHMgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBQb2xraXQuRGV0YWlscz8gZ2V0X2RldGFp bHMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMC4xMDEiKV0KKyAJCXB1YmxpYyBib29sIGdl dF9kaXNtaXNzZWQgKCk7CisgCQlwdWJsaWMgYm9vbCBnZXRfaXNfYXV0aG9yaXplZCAoKTsKKyAJ CXB1YmxpYyBib29sIGdldF9pc19jaGFsbGVuZ2UgKCk7CisgCQlwdWJsaWMgYm9vbCBnZXRfcmV0 YWluc19hdXRob3JpemF0aW9uICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF90ZW1w b3JhcnlfYXV0aG9yaXphdGlvbl9pZCAoKTsKKysJCXB1YmxpYyB1bm93bmVkIHN0cmluZz8gZ2V0 X3RlbXBvcmFyeV9hdXRob3JpemF0aW9uX2lkICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJwb2xraXQvcG9sa2l0LmgiLCB0eXBlX2lkID0gInBvbGtpdF9kZXRhaWxzX2dl dF90eXBlICgpIildCisgCXB1YmxpYyBjbGFzcyBEZXRhaWxzIDogR0xpYi5PYmplY3QgeworIAkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHVibGljIERldGFp bHMgKCk7CisgCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlLCBhcnJheV9udWxsX3Rlcm1p bmF0ZWQgPSB0cnVlKV0KKy0JCXB1YmxpYyBzdHJpbmdbXSBnZXRfa2V5cyAoKTsKKysJCXB1Ymxp YyBzdHJpbmdbXT8gZ2V0X2tleXMgKCk7CisgCQlwdWJsaWMgdm9pZCBpbnNlcnQgKHN0cmluZyBr ZXksIHN0cmluZz8gdmFsdWUpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGxvb2t1cCAoc3Ry aW5nIGtleSk7CisrCQlwdWJsaWMgdW5vd25lZCBzdHJpbmc/IGxvb2t1cCAoc3RyaW5nIGtleSk7 CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gInBvbGtpdC9wb2xraXQuaCIsIHR5 cGVfaWQgPSAicG9sa2l0X3Blcm1pc3Npb25fZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNz IFBlcm1pc3Npb24gOiBHTGliLlBlcm1pc3Npb24sIEdMaWIuQXN5bmNJbml0YWJsZSwgR0xpYi5J bml0YWJsZSB7CitAQCAtODgsNyArODksOCBAQCBuYW1lc3BhY2UgUG9sa2l0IHsKKyAJCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBTeXN0ZW1C dXNOYW1lICgpOworIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9uYW1lICgpOworLQkJcHVi bGljIFBvbGtpdC5TdWJqZWN0IGdldF9wcm9jZXNzX3N5bmMgKEdMaWIuQ2FuY2VsbGFibGU/IGNh bmNlbGxhYmxlID0gbnVsbCkgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgUG9sa2l0LlN1 YmplY3Q/IGdldF9wcm9jZXNzX3N5bmMgKEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlID0g bnVsbCkgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgUG9sa2l0LlVuaXhVc2VyPyBnZXRf dXNlcl9zeW5jIChHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSA9IG51bGwpIHRocm93cyBH TGliLkVycm9yOworIAkJcHVibGljIHN0YXRpYyBQb2xraXQuU3ViamVjdCBAbmV3IChzdHJpbmcg bmFtZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfbmFtZSAoc3RyaW5nIG5hbWUpOworIAkJcHVibGlj IHN0cmluZyBuYW1lIHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CitAQCAtMTQ2LDkgKzE0OCwxMCBA QCBuYW1lc3BhY2UgUG9sa2l0IHsKKyAJCXByb3RlY3RlZCBVbml4U2Vzc2lvbiAoKTsKKyAJCXB1 YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfc2Vzc2lvbl9pZCAoKTsKKyAJCXB1YmxpYyBzdGF0aWMg UG9sa2l0LlN1YmplY3QgQG5ldyAoc3RyaW5nIHNlc3Npb25faWQpOworLQkJcHVibGljIHN0YXRp YyBhc3luYyBQb2xraXQuU3ViamVjdCBuZXdfZm9yX3Byb2Nlc3MgKGludCBwaWQsIEdMaWIuQ2Fu Y2VsbGFibGU/IGNhbmNlbGxhYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCXB1YmxpYyBzdGF0 aWMgUG9sa2l0LlN1YmplY3QgbmV3X2Zvcl9wcm9jZXNzX3N5bmMgKGludCBwaWQsIEdMaWIuQ2Fu Y2VsbGFibGU/IGNhbmNlbGxhYmxlID0gbnVsbCkgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJs aWMgc3RhdGljIGFzeW5jIFBvbGtpdC5TdWJqZWN0PyBuZXdfZm9yX3Byb2Nlc3MgKGludCBwaWQs IEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1 YmxpYyBzdGF0aWMgUG9sa2l0LlN1YmplY3Q/IG5ld19mb3JfcHJvY2Vzc19zeW5jIChpbnQgcGlk LCBHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSA9IG51bGwpIHRocm93cyBHTGliLkVycm9y OworIAkJcHVibGljIHZvaWQgc2V0X3Nlc3Npb25faWQgKHN0cmluZyBzZXNzaW9uX2lkKTsKKysJ CVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJcHVibGljIGludCBwaWQgeyBjb25zdHJ1Y3Q7IH0KKyAJ CXB1YmxpYyBzdHJpbmcgc2Vzc2lvbl9pZCB7IGdldDsgc2V0IGNvbnN0cnVjdDsgfQorIAl9CitA QCAtMTU2LDE3ICsxNTksMTcgQEAgbmFtZXNwYWNlIFBvbGtpdCB7CisgCXB1YmxpYyBjbGFzcyBV bml4VXNlciA6IEdMaWIuT2JqZWN0LCBQb2xraXQuSWRlbnRpdHkgeworIAkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFVuaXhVc2VyICgpOwor LQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9uYW1lICgpOworKwkJcHVibGljIHVub3duZWQg c3RyaW5nPyBnZXRfbmFtZSAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X3VpZCAoKTsKKyAJCXB1Ymxp YyBzdGF0aWMgUG9sa2l0LklkZW50aXR5IEBuZXcgKGludCB1aWQpOworLQkJcHVibGljIHN0YXRp YyBQb2xraXQuSWRlbnRpdHkgbmV3X2Zvcl9uYW1lIChzdHJpbmcgbmFtZSkgdGhyb3dzIEdMaWIu RXJyb3I7CisrCQlwdWJsaWMgc3RhdGljIFBvbGtpdC5JZGVudGl0eT8gbmV3X2Zvcl9uYW1lIChz dHJpbmcgbmFtZSkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlwdWJsaWMgdm9pZCBzZXRfdWlkIChp bnQgdWlkKTsKKyAJCXB1YmxpYyBpbnQgdWlkIHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CisgCX0K KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gInBvbGtpdC9wb2xraXQuaCIsIHR5cGVfaWQg PSAicG9sa2l0X2lkZW50aXR5X2dldF90eXBlICgpIildCisgCXB1YmxpYyBpbnRlcmZhY2UgSWRl bnRpdHkgOiBHTGliLk9iamVjdCB7CisgCQlwdWJsaWMgYWJzdHJhY3QgYm9vbCBlcXVhbCAoUG9s a2l0LklkZW50aXR5IGIpOworLQkJcHVibGljIHN0YXRpYyBQb2xraXQuSWRlbnRpdHkgZnJvbV9z dHJpbmcgKHN0cmluZyBzdHIpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIHN0YXRpYyBQ b2xraXQuSWRlbnRpdHk/IGZyb21fc3RyaW5nIChzdHJpbmcgc3RyKSB0aHJvd3MgR0xpYi5FcnJv cjsKKyAJCXB1YmxpYyBhYnN0cmFjdCB1aW50IGhhc2ggKCk7CisgCQlwdWJsaWMgYWJzdHJhY3Qg c3RyaW5nIHRvX3N0cmluZyAoKTsKKyAJfQorQEAgLTIwMSw3ICsyMDQsNyBAQCBuYW1lc3BhY2Ug UG9sa2l0IHsKKyAJCUFETUlOSVNUUkFUT1JfQVVUSEVOVElDQVRJT05fUkVRVUlSRURfUkVUQUlO RUQsCisgCQlBVVRIT1JJWkVEOworIAkJcHVibGljIHN0YXRpYyBib29sIGZyb21fc3RyaW5nIChz dHJpbmcgc3RyaW5nLCBQb2xraXQuSW1wbGljaXRBdXRob3JpemF0aW9uIG91dF9pbXBsaWNpdF9h dXRob3JpemF0aW9uKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgdG9fc3RyaW5n IChQb2xraXQuSW1wbGljaXRBdXRob3JpemF0aW9uIGltcGxpY2l0X2F1dGhvcml6YXRpb24pOwor KwkJcHVibGljIHVub3duZWQgc3RyaW5nIHRvX3N0cmluZyAoKTsKKyAJfQorIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAicG9sa2l0L3BvbGtpdC5oIiwgY3ByZWZpeCA9ICJQT0xLSVRfRVJS T1JfIildCisgCXB1YmxpYyBlcnJvcmRvbWFpbiBFcnJvciB7CitAQCAtMjEyLDcgKzIxNSw3IEBA IG5hbWVzcGFjZSBQb2xraXQgeworIAkJcHVibGljIHN0YXRpYyBHTGliLlF1YXJrIHF1YXJrICgp OworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJwb2xraXQvcG9sa2l0LmgiKV0K Ky0JcHVibGljIHN0YXRpYyBQb2xraXQuSWRlbnRpdHkgaWRlbnRpdHlfZnJvbV9zdHJpbmcgKHN0 cmluZyBzdHIpIHRocm93cyBHTGliLkVycm9yOworKwlwdWJsaWMgc3RhdGljIFBvbGtpdC5JZGVu dGl0eT8gaWRlbnRpdHlfZnJvbV9zdHJpbmcgKHN0cmluZyBzdHIpIHRocm93cyBHTGliLkVycm9y OworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAicG9sa2l0L3BvbGtpdC5oIildCisgCXB1 YmxpYyBzdGF0aWMgUG9sa2l0LlN1YmplY3Qgc3ViamVjdF9mcm9tX3N0cmluZyAoc3RyaW5nIHN0 cikgdGhyb3dzIEdMaWIuRXJyb3I7CisgfQorLS0gCisyLjI4LjAKKwpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9idWRnaWUtZGVza3RvcC90ZW1wbGF0ZSBiL3NyY3BrZ3MvYnVkZ2llLWRlc2t0b3AvdGVt cGxhdGUKaW5kZXggYjMyZTc3MzRkM2IuLmFlNWE5ZDVmNzY5IDEwMDY0NAotLS0gYS9zcmNwa2dz L2J1ZGdpZS1kZXNrdG9wL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvYnVkZ2llLWRlc2t0b3AvdGVt cGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdidWRnaWUtZGVza3Rv cCcKIHBrZ25hbWU9YnVkZ2llLWRlc2t0b3AKIHZlcnNpb249MTAuNS4xCi1yZXZpc2lvbj0zCity ZXZpc2lvbj00CiBidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPWdpcgogY29uZmlndXJl X2FyZ3M9Ii1Ed2l0aC1ndGstZG9jPWZhbHNlIC1Ed2l0aC1kZXNrdG9wLWljb25zPW5vbmUiCgpG cm9tIDM2OGNkMjQwNGIwNmUzOGVhNzM1Mjc1YzU1YzQxZTVjNjE2NjhmOTcgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpE YXRlOiBUaHUsIDE3IFNlcCAyMDIwIDA2OjIzOjU5ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMDEv MTAyXSBOZXcgcGFja2FnZTogZ25vbWUtY29yZS0zLjM2LjAKCi0tLQogc3JjcGtncy9nbm9tZS1j b3JlL3RlbXBsYXRlIHwgNTQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog MSBmaWxlIGNoYW5nZWQsIDU0IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2dub21lLWNvcmUvdGVtcGxhdGUKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWNvcmUv dGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWNvcmUvdGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLjAzNzQ5N2NjYjU1Ci0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9nbm9tZS1jb3JlL3RlbXBsYXRlCkBAIC0wLDAgKzEsNTQgQEAKKyMgVGVtcGxhdGUgZmls ZSBmb3IgJ2dub21lLWNvcmUnCitwa2duYW1lPWdub21lLWNvcmUKK3ZlcnNpb249My4zOC4wCity ZXZpc2lvbj0xCitidWlsZF9zdHlsZT1tZXRhCitzaG9ydF9kZXNjPSJHTk9NRSBtZXRhLXBhY2th Z2UgZm9yIFZvaWQgTGludXggLSBjb3JlIGNvbXBvbmVudHMiCittYWludGFpbmVyPSJxNjYgPGRh bmllbEBvY3RhZm9yZ2Uub3JnPiIKK2xpY2Vuc2U9IkdQTC0yLjAtb25seSwgTEdQTC0yLjAtb25s eSIKK2hvbWVwYWdlPSJodHRwczovL3d3dy5nbm9tZS5vcmciCisKK2RlcGVuZHM9IgorIGFkd2Fp dGEtaWNvbi10aGVtZT49My4zOC4wCisgYXQtc3BpMi1jb3JlPj0yLjM4LjAKKyBhdC1zcGkyLWF0 az49Mi4zOC4wCisgY2FudGFyZWxsLWZvbnRzPj0wLjIwMQorIGNhcmlib3U+PTAuNC4yMQorIGRj b25mPj0wLjM2LjAKKyBldm9sdXRpb24tZGF0YS1zZXJ2ZXI+PTMuMzguMAorIGZvbGtzPj0wLjE0 LjAKKyBmb250LWFkb2JlLXNvdXJjZS1jb2RlLXBybz49Mi4wMzBSCisgZ2NyPj0zLjM2LjAKKyBn ZG0+PTMuMzguMAorIGdlb2NvZGUtZ2xpYj49My4yNi4wCisgZ2ZiZ3JhcGg+PTAuMi40CisgZ2pz Pj0xLjY2LjAKKyBnbGliPj0yLjY2LjAKKyBnbGliLW5ldHdvcmtpbmc+PTIuNjYuMAorIGdtaW1l Mz49My4yLjcKKyBnbm9tZS1iYWNrZ3JvdW5kcz49My4zOC4wCisgZ25vbWUtYmx1ZXRvb3RoPj0z LjM0LjEKKyBnbm9tZS1jb2xvci1tYW5hZ2VyPj0zLjM2LjAKKyBnbm9tZS1jb250cm9sLWNlbnRl cj49My4zOC4wCisgZ25vbWUtZGVza3RvcD49My4zOC4wCisgZ25vbWUtZ2V0dGluZy1zdGFydGVk LWRvY3M+PTMuMzYuMgorIGdub21lLWluaXRpYWwtc2V0dXA+PTMuMzguMAorIGdub21lLWtleXJp bmc+PTMuMzYuMAorIGdub21lLW9ubGluZS1hY2NvdW50cz49My4zNy45MAorIGdub21lLW9ubGlu ZS1taW5lcnM+PTMuMzQuMAorIGdub21lLXNlc3Npb24+PTMuMzguMAorIGdub21lLXNldHRpbmdz LWRhZW1vbj49My4zOC4wCisgZ25vbWUtc2hlbGw+PTMuMzguMAorIGdub21lLXNoZWxsLWV4dGVu c2lvbnM+PTMuMzguMAorIGdub21lLXRoZW1lcy1zdGFuZGFyZD49My4yOAorIGdub21lLXVzZXIt ZG9jcz49My4zOC4wCisgZ25vbWUtdmlkZW8tZWZmZWN0cz49MC41LjAKKyBnc2V0dGluZ3MtZGVz a3RvcC1zY2hlbWFzPj0zLjM4LjAKKyBndmZzPj0xLjQ2LjAKKyBtdXR0ZXI+PTMuMzguMAorIG5h dXRpbHVzPj0zLjM4LjAKKyBzdXNoaT49My4zNC4wCisgdHJhY2tlcjM+PTMuMC4wCisgeWVscD49 My4zOC4wCisgeGRnLWRlc2t0b3AtcG9ydGFsLWd0az49MS44LjAKKyB6ZW5pdHk+PTMuMzIuMCIK CkZyb20gMTA1Mjk3MmJhZGU4ZTY4NzVhNWY1NGRmZDRlYTlkNDExY2ZmYzUwZiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+ CkRhdGU6IFRodSwgMTcgU2VwIDIwMjAgMDY6MjQ6MDYgKzAyMDAKU3ViamVjdDogW1BBVENIIDEw Mi8xMDJdIGdub21lOiB1cGRhdGUgdG8gMy4zOC4wCgpbY2kgc2tpcF0KLS0tCiBzcmNwa2dzL2du b21lL3RlbXBsYXRlIHwgMjQxICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgNzkgaW5zZXJ0aW9ucygrKSwgMTYyIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lL3RlbXBs YXRlCmluZGV4IDllN2I2YzIxMzM2Li5hZTExMjQ0MWYzMSAxMDA2NDQKLS0tIGEvc3JjcGtncy9n bm9tZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lL3RlbXBsYXRlCkBAIC0xLDE4MSArMSw5 OCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUnCiBwa2duYW1lPWdub21lCi12ZXJzaW9u PTMuMzIuMAotcmV2aXNpb249MwordmVyc2lvbj0zLjM4LjAKK3JldmlzaW9uPTEKIGJ1aWxkX3N0 eWxlPW1ldGEKIHNob3J0X2Rlc2M9IkdOT01FIG1ldGEtcGFja2FnZSBmb3IgVm9pZCBMaW51eCIK IG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNl PSJHUEwtMi4wLW9ubHksIExHUEwtMi4wLW9ubHkiCiBob21lcGFnZT0iaHR0cHM6Ly93d3cuZ25v bWUub3JnIgogCi1kZXBlbmRzPSJOZXR3b3JrTWFuYWdlcj49MS4xNC4wXzEKLSBhZHdhaXRhLWlj b24tdGhlbWU+PTMuMzIuMAotIGF0LXNwaTItYXRrPj0yLjMyLjAKLSBhdC1zcGkyLWNvcmU+PTIu MzIuMAotIGF0az49Mi4zMi4wCi0gYXRrbW0+PTIuMjQuMgotIGNhaXJvbW0+PTEuMTIuMl8yCi0g Y2FudGFyZWxsLWZvbnRzPj0wLjAuMjUKLSBjYXJpYm91Pj0wLjQuMjEKLSBjaHJvbWUtZ25vbWUt c2hlbGw+PTEwLjAuMAotIGNsdXR0ZXI+PTEuMjYuMgotIGNsdXR0ZXItZ3N0Mz49My4wLjI0Ci0g Y2x1dHRlci1ndGs+PTEuOC40Ci0gY29nbD49MS4yMi4yCi0gZGNvbmY+PTAuMzAuMAotIGVvZz49 My4zMi4wCi0gZXZpbmNlPj0zLjMyLjAKLSBldm9sdXRpb24tZGF0YS1zZXJ2ZXI+PTMuMzIuMAot IGZpbGUtcm9sbGVyPj0zLjMyLjAKLSBmb2xrcz49MC4xMS40Ci0gZm9udC1hZG9iZS1zb3VyY2Ut Y29kZS1wcm8+PTIuMDMwUgotIGdjYWI+PTAuNwotIGdjcj49My4yOC4wCi0gZ2RrLXBpeGJ1Zj49 Mi4zOC4wCi0gZ2RtPj0zLjMyLjAKLSBnZW9jb2RlLWdsaWI+PTMuMjYuMF8xCi0gZ2ZiZ3JhcGg+ PTAuMi4zCi0gZ2pzPj0xLjU2LjAKLSBnbGliPj0yLjYwLjAKLSBnbGliLW5ldHdvcmtpbmc+PTIu NjAuMAotIGdsaWJtbT49Mi42MC4wCi0gZ21pbWU+PTIuNi4yMwotIGdub21lLWJhY2tncm91bmRz Pj0zLjMyLjAKLSBnbm9tZS1ibHVldG9vdGg+PTMuMzIuMAotIGdub21lLWNvbG9yLW1hbmFnZXI+ PTMuMzIuMAotIGdub21lLWNvbnRyb2wtY2VudGVyPj0zLjMyLjAKLSBnbm9tZS1kZXNrdG9wPj0z LjMyLjAKLSBnbm9tZS1nZXR0aW5nLXN0YXJ0ZWQtZG9jcz49My4zMi4wCi0gZ25vbWUtaW5pdGlh bC1zZXR1cD49My4zMi4wCi0gZ25vbWUta2V5cmluZz49My4yOC4xCi0gZ25vbWUtb25saW5lLWFj Y291bnRzPj0zLjMyLjAKLSBnbm9tZS1vbmxpbmUtbWluZXJzPj0zLjMwLjAKLSBnbm9tZS1zZXNz aW9uPj0zLjMyLjAKLSBnbm9tZS1zZXR0aW5ncy1kYWVtb24+PTMuMzIuMAotIGdub21lLXNoZWxs Pj0zLjMyLjAKLSBnbm9tZS1zaGVsbC1leHRlbnNpb25zPj0zLjMyLjAKLSBnbm9tZS10aGVtZXMt c3RhbmRhcmQ+PTMuMjIuMwotIGdub21lLXR3ZWFrcz49My4zMi4wCi0gZ25vbWUtdXNlci1kb2Nz Pj0zLjMyLjAKLSBnbm9tZS12aWRlby1lZmZlY3RzPj0wLjQuMwotIGdvYmplY3QtaW50cm9zcGVj dGlvbj49MS42MC4wCi0gZ29tPj0wLjMuMl8xCi0gZ3JpbG8+PTAuMy40Ci0gZ3JpbG8tcGx1Z2lu cz49MC4zLjUKLSBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzPj0zLjMyLjAKK2RlcGVuZHM9Igor IGdub21lLWNvcmU+PSR7dmVyc2lvbn0KKyBiYW9iYWI+PTMuMzguMAorIGNoZWVzZT49My4zOC4w CisgZW9nPj0zLjM4LjAKKyBldmluY2U+PTMuMzguMAorIGZpbGUtcm9sbGVyPj0zLjM4LjAKKyBn ZWRpdD49My4zOC4wCisgZ25vbWUtY2FsY3VsYXRvcj49My4zOC4wCisgZ25vbWUtY2FsZW5kYXI+ PTMuMzguMAorIGdub21lLWNoYXJhY3RlcnM+PTMuMzQuMAorIGdub21lLWNsb2Nrcz49My4zOC4w CisgZ25vbWUtY29udGFjdHM+PTMuMzcuMgorIGdub21lLWRpc2stdXRpbGl0eT49My4zOC4wCisg Z25vbWUtZm9udC12aWV3ZXI+PTMuMzQuMAorIGdub21lLW1hcHM+PTMuMzguMAorIGdub21lLW11 c2ljPj0zLjM4LjAKKyBnbm9tZS1zY3JlZW5zaG90Pj0zLjM4LjAKKyBnbm9tZS1zeXN0ZW0tbW9u aXRvcj49My4zOC4wCisgZ25vbWUtdGVybWluYWw+PTMuMzguMAorIGdub21lLXR3ZWFrcz49My4z NC4wCisgZ25vbWUtd2VhdGhlcj49My4zNi4xCiAgZ3NvdW5kPj0xLjAuMgotIGdzcGVsbD49MS44 LjAKLSBnc3NkcD49MS4wLjIKLSBndGsrMz49My4yNC4wCi0gZ3RrbW0+PTMuMjIuMQotIGd0a3Nv dXJjZXZpZXc+PTMuMjQuNAotIGd1cG5wPj0xLjAuMgotIGd1cG5wLWF2Pj0wLjEyLjEwCi0gZ3Vw bnAtZGxuYT49MC4xMC41Ci0gZ3VwbnAtaWdkPj0wLjIuNAotIGd2ZnM+PTEuNDAuMAotIGpzb24t Z2xpYj49MS40LjIKLSBsaWJjcm9jbz49MC42LjEyCi0gbGliZ2RhdGE+PTAuMTYuMV8yCi0gbGli Z2VlMDg+PTAuMjAuMAotIGxpYmdlcHViPj0wLjRfMQotIGxpYmdub21la2JkPj0zLjI2LjAKLSBs aWJnc2Y+PTEuMTQuNDEKLSBsaWJndG9wPj0yLjQwLjAKLSBsaWJnd2VhdGhlcj49My4zMi4wCi0g bGliZ3hwcz49MC4yLjVfMQotIGxpYm1lZGlhYXJ0Pj0xLjkuNAotIGxpYm5vdGlmeT49MC43LjZf NAotIGxpYnBlYXM+PTEuMjIuMAotIGxpYnJzdmc+PTIuNDQuMAotIGxpYnNlY3JldD49MC4xOC41 Ci0gbGlic2lnYysrPj0yLjEwLjAKLSBsaWJzb3VwPj0yLjYwLjAKLSBsaWJ4bWwyPj0yLjYuMzAK LSBsaWJ4c2x0Pj0xLjEuMjIKLSBsaWJ6YXBvaml0Pj0wLjAuMwotIG1tLWNvbW1vbj49MC45LjEw XzIKLSBtb3VzZXR3ZWFrcz49My4xMi4wCi0gbXV0dGVyPj0zLjMyLjAKLSBuYXV0aWx1cz49My4z Mi4wCisgZ3NwZWxsPj0xLjguMworIG1vdXNldHdlYWtzPj0zLjMyLjAKICBuZXR3b3JrLW1hbmFn ZXItYXBwbGV0Pj0xLjguMgotIG9yY2E+PTMuMzIuMAotIHBhbmdvPj0xLjQyLjAKLSBwYW5nb21t Pj0yLjQwLjEKLSBwaG9kYXY+PTIuMgotIHB5dGhvbi1hdHNwaT49Mi4yNi4wCi0gcHl0aG9uLWdv YmplY3Q+PTMuMjYuMAotIHJlc3Q+PTAuOC4wCi0gdHJhY2tlcj49Mi4wLjAKLSB2YWxhPj0wLjQ0 LjAKLSB2dGUzPj0wLjU0LjAKLSB5ZWxwPj0zLjMyLjAKLSB5ZWxwLXRvb2xzPj0zLjMyLjAKLSB5 ZWxwLXhzbD49My4zMi4wCi0gemVuaXR5Pj0zLjMyLjAiCisgb3JjYT49My4zOC4wCisgcGhvZGF2 Pj0yLjUKKyBzaW1wbGUtc2Nhbj49My4zOC4wCisgdG90ZW0+PTMuMzguMAorIHllbHAtdG9vbHM+ PTMuMzguMCIKIAotX2FwcHNfZGVwZW5kcz0iYmFvYmFiPj0zLjMyLjAKLSBjaGVlc2U+PTMuMzIu MAotIGRjb25mLWVkaXRvcj49My4zMi4wCi0gZGV2aGVscD49My4zMi4wCi0gZXBpcGhhbnk+PTMu MzIuMAotIGV2b2x1dGlvbj49My4zMi4wCi0gZ2hleD49My4xOC4zCi0gZ2l0Zz49My4yNi4wCi0g Z2VkaXQ+PTMuMzIuMAotIGdlZGl0LXBsdWdpbnM+PTMuMzIuMAotIGdub21lLWJveGVzPj0zLjMy LjAKLSBnbm9tZS1idWlsZGVyPj0zLjMyLjAKLSBnbm9tZS1jYWxjdWxhdG9yPj0zLjMyLjAKLSBn bm9tZS1jYWxlbmRhcj49My4zMi4wCi0gZ25vbWUtY2hhcmFjdGVycz49My4zMi4wCi0gZ25vbWUt Y2xvY2tzPj0zLjMyLjAKLSBnbm9tZS1kaWN0aW9uYXJ5Pj0zLjI2LjAKLSBnbm9tZS1kaXNrLXV0 aWxpdHk+PTMuMzIuMAotIGdub21lLWRvY3VtZW50cz49My4zMi4wCi0gZ25vbWUtZm9udC12aWV3 ZXI+PTMuMzIuMAotIGdub21lLW1hcHM+PTMuMzIuMAotIGdub21lLW11c2ljPj0zLjMyLjAKK19h cHBzX2RlcGVuZHM9IgorIGRjb25mLWVkaXRvcj49My4zOC4wCisgZGV2aGVscD49My4zOC4wCisg ZXBpcGhhbnk+PTMuMzguMAorIGV2b2x1dGlvbj49My4zOC4wCisgZ2hleD49My4xOC40CisgZ2l0 Zz49My4zMi4xCisgZ2VkaXQtcGx1Z2lucz49My4zOC4wCisgZ25vbWUtYm94ZXM+PTMuMzguMAor IGdub21lLWJ1aWxkZXI+PTMuMzguMAorIGdub21lLWNhbGN1bGF0b3I+PTMuMzguMAorIGdub21l LWNhbGVuZGFyPj0zLjM4LjAKKyBnbm9tZS1jaGFyYWN0ZXJzPj0zLjM0LjAKKyBnbm9tZS1jbG9j a3M+PTMuMzguMAorIGdub21lLWRpY3Rpb25hcnk+PTMuMjYuMQorIGdub21lLWRpc2stdXRpbGl0 eT49My4zOC4wCisgZ25vbWUtZG9jdW1lbnRzPj0zLjM0LjAKKyBnbm9tZS1mb250LXZpZXdlcj49 My4zNC4wCisgZ25vbWUtbWFwcz49My4zOC4wCisgZ25vbWUtbXVzaWM+PTMuMzguMAogIGdub21l LW5ldHRvb2w+PTMuOC4xCi0gZ25vbWUtcGhvdG9zPj0zLjMyLjAKLSBnbm9tZS1yZWNpcGVzPj0y LjAuMAotIGdub21lLXNjcmVlbnNob3Q+PTMuMzIuMAotIGdub21lLXNvdW5kLXJlY29yZGVyPj0z LjMyLjAKLSBnbm9tZS1zeXN0ZW0tbW9uaXRvcj49My4zMi4wCi0gZ25vbWUtdGVybWluYWw+PTMu MzIuMAotIGdub21lLXR3ZWFrcz49My4zMi4wCi0gZ3RrLXZuYz49MC42LjBfMgotIGxpYmNoYW1w bGFpbj49MC4xMi4xNgotIG5hdXRpbHVzLXNlbmR0bz49My44LjAKKyBnbm9tZS1waG90b3M+PTMu MzcuOTEuMQorIGdub21lLXJlY2lwZXM+PTIuMC4yCisgZ25vbWUtc2NyZWVuc2hvdD49My4zOC4w CisgZ25vbWUtc291bmQtcmVjb3JkZXI+PTMuMzQuMAorIGdub21lLXN5c3RlbS1tb25pdG9yPj0z LjM4LjAKKyBnbm9tZS10ZXJtaW5hbD49My4zOC4wCiAgbmVtaXZlcj49MC45LjYKLSBwb2xhcmk+ PTMuMzIuMAotIHJ5Z2VsPj0wLjM2LjAKLSBzaW1wbGUtc2Nhbj49My4zMi4wCi0gc3VzaGk+PTMu MzIuMAotIHRvdGVtPj0zLjMyLjAKLSB0b3RlbS1wbC1wYXJzZXI+PTMuMjYuMAorIHBvbGFyaT49 My4zNi4zCisgcnlnZWw+PTAuNDAuMAorIHNpbXBsZS1zY2FuPj0zLjM4LjAKKyB0b3RlbT49My4z OC4wCiAgdmlubz49My4yMi4wIgogCiBfZ2FtZXNfY29sbGVjdGlvbl9kZXBlbmRzPSIKLSBhaXNs ZXJpb3Q+PTMuMjIuMwotIGZpdmUtb3ItbW9yZT49My4zMi4wCi0gZm91ci1pbi1hLXJvdz49My4z Mi4wCi0gZ25vbWUtMjA0OD49My4zMi4wCi0gZ25vbWUtY2hlc3M+PTMuMzIuMAotIGdub21lLWts b3Rza2k+PTMuMzIuMAotIGdub21lLW1haGpvbmdnPj0zLjMyLjAKLSBnbm9tZS1taW5lcz49My4z Mi4wCi0gZ25vbWUtbmliYmxlcz49My4yNC4wCi0gZ25vbWUtcm9ib3RzPj0zLjMyLjAKLSBnbm9t ZS1zdWRva3U+PTMuMzIuMAotIGdub21lLXRldHJhdmV4Pj0zLjMyLjAKLSBoaXRvcmk+PTMuMjIu NAotIGlhZ25vPj0zLjMyLjAKLSBsaWdodHNvZmY+PTMuMjYuMAotIHF1YWRyYXBhc3NlbD49My4z Mi4wCi0gc3dlbGwtZm9vcD49My4yNi4wCi0gdGFsaT49My4zMi4wCi0iCisgYWlzbGVyaW90Pj0z LjIyLjEyCisgZml2ZS1vci1tb3JlPj0zLjMyLjIKKyBmb3VyLWluLWEtcm93Pj0zLjM2LjQKKyBn bm9tZS0yMDQ4Pj0zLjM2LjQKKyBnbm9tZS1jaGVzcz49My4zNi4xCisgZ25vbWUta2xvdHNraT49 My4zNi4zCisgZ25vbWUtbWFoam9uZ2c+PTMuMzYuMgorIGdub21lLW1pbmVzPj0zLjM2LjEKKyBn bm9tZS1uaWJibGVzPj0zLjI2LjEKKyBnbm9tZS1yb2JvdHM+PTMuMzYuMQorIGdub21lLXN1ZG9r dT49My4zNi4wCisgZ25vbWUtdGV0cmF2ZXg+PTMuMzYuNAorIGhpdG9yaT49My4zOC4wCisgaWFn bm8+PTMuMzYuNAorIGxpZ2h0c29mZj49My4zNi4wCisgcXVhZHJhcGFzc2VsPj0zLjM2LjA1Cisg c3dlbGwtZm9vcD49My4zNC4xCisgdGFsaT49My4zNi40IgogCiBnbm9tZS1hcHBzX3BhY2thZ2Uo KSB7CiAJZGVwZW5kcz0iJF9hcHBzX2RlcGVuZHMiCg== --===============2863029092095253798==--