From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (qmail 23662 invoked from network); 31 Aug 2020 22:49:46 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 31 Aug 2020 22:49:46 -0000 Content-Type: multipart/mixed; boundary="===============9193411903900136790==" 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: Tue, 01 Sep 2020 00:49:45 +0200 List-Id: Message-ID: <20200831224945.VF0R22Gu-Iqdeur00vr4v53VAZCqOT47myWwoPv52DY@z> GitHub notification mails are now in MIME to allow UTF8. --===============9193411903900136790== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgcTY2IGFnYWluc3QgbWFzdGVyIG9u IHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9xNjYvdm9p ZC1wYWNrYWdlcyBnbm9tZTMzOApodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBh Y2thZ2VzL3B1bGwvMjQyNjAKCmdub21lIDMuMzgKU2luY2UgaHR0cHM6Ly9naXRodWIuY29tL3Zv aWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzIxMzgyIGlzIHRha2luZyBhIHdoaWxlIGFuZCBn bm9tZSAzLjM4IGlzIGp1c3QgYXJvdW5kIHRoZSBjb3JuZXIsIEkgcHJlcGFyZWQgYSBwcmVsaW1p bmFyeSBQUiBmb3Igbm93IGNvbnRhaW5pbmcgdGhlIDMuMzcgcHJlcmVsZWFzZSBzdHVmZiAtIEkg ZGlkIHRoaXMgbWFpbmx5IGJlY2F1c2UgSSBuZWVkZWQgbW9yZSAicmVhZHkiIHdheWxhbmQgc3Vw cG9ydC4gVGVzdGVkIG9uIGFhcmNoNjQuDQoNCiMgVE9ETw0KDQotIFt4XSBjbGVhbiBpdCB1cA0K LSBbeF0gYmV0dGVyIHRlc3RpbmcsIG1ha2Ugc3VyZSB0ZXN0c3VpdGUgcGFzc2VzDQotIFt4XSBp bXBvcnQgdGhlIHVzZWZ1bCBiaXRzIGZyb20gIzIxMzgyLCBvciByZWJhc2UgaWYgaXQgZ2V0cyBt ZXJnZWQNCi0gWyBdIG1ha2Ugc3VyZSBjcm9zc2J1aWxkcyB3b3JrDQotIFsgXSB0ZXN0IG9uIG1v cmUgcGxhdGZvcm1zDQotIFsgXSBmaXggdGhlIG1ldGFwYWNrYWdlcyAodGhleSBoYXZlbid0IGJl ZW4gdG91Y2hlZCwgcG9zc2libHkgaW4gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9p ZC1wYWNrYWdlcy9wdWxsLzIyOTM2KQ0KLSBbIF0gZHJvcCB0aGUgYHZhbGFgIG9wdGlvbiBpbiB0 aGUgcmVzdCBvZiB0aGUgcGFja2FnZXMNCg0KIyBVcGRhdGVkDQoNCi0gW3hdIGdsaWIgLT4gMi42 NS4yICp1bnN0YWJsZSogKGBndGtfZG9jYCBvcHRpb24gZG9lcyBub3Qgd29yazogbmVlZHMgdW5y ZWxlYXNlZCBgZ3RrLWRvY2ApDQotIFt4XSBnbGliLW5ldHdvcmtpbmcgLT4gMi42NS45MCAqKipi ZXRhKioqDQotIFt4XSBhdC1zcGkyLWNvcmUgLT4gMi4zNy45MCAqKipiZXRhKioqDQotIFt4XSBh dC1zcGkyLWF0ayAtPiAyLjM3LjkwICoqKmJldGEqKioNCi0gW3hdIHdlYmtpdDJndGsgLT4gMi4y OS45MSAqKipiZXRhKioqDQotIFt4XSBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzIC0+IDMuMzcu MiAqdW5zdGFibGUqDQotIFt4XSBnbm9tZS1kZXNrdG9wIC0+IDMuMzcuOTEgKioqYmV0YSoqKg0K LSBbeF0gbGliZ3dlYXRoZXIgLT4gMy4zNi4xICoqc3RhYmxlKioNCi0gW3hdIGdub21lLXNldHRp bmdzLWRhZW1vbiAtPiAzLjM3LjAgKnVuc3RhYmxlKg0KLSBbeF0gbXV0dGVyIC0+IDMuMzcuOTEg KioqYmV0YSoqKg0KLSBbeF0gZ25vbWUtbWVudXMgLT4gMy4zNi4wICoqc3RhYmxlKioNCi0gW3hd IGNoZWVzZSAtPiAocmV2YnVtcCkgKipzdGFibGUqKg0KLSBbeF0gZXZvbHV0aW9uLWRhdGEtc2Vy dmVyIC0+IDMuMzcuOTAgKioqYmV0YSoqKg0KLSBbeF0gZ25vbWUtY29udHJvbC1jZW50ZXIgLT4g My4zNy45MCAqKipiZXRhKioqDQotIFt4XSB0cmFja2VyIC0+IDIuMy40ICoqc3RhYmxlKioNCi0g W3hdIGZvbGtzIC0+IDAuMTQuMCAqKnN0YWJsZSoqDQotIFt4XSBkY29uZi1lZGl0b3IgLT4gMy4z Ni40ICoqc3RhYmxlKioNCi0gW3hdIGRldmhlbHAgLT4gMy4zNy4xICp1bnN0YWJsZSoNCi0gW3hd IGdub21lLXNoZWxsIC0+IDMuMzcuOTEgKioqYmV0YSoqKg0KLSBbeF0gZ25vbWUtc2hlbGwtZXh0 ZW5zaW9ucyAtPiAzLjM3LjkxICoqKmJldGEqKioNCi0gW3hdIGdkbSAtPiAzLjM3LjkwICoqKmJl dGEqKioNCi0gW3hdIGdub21lLXNlc3Npb24gLT4gMy4zNy4wICp1bnN0YWJsZSoNCi0gW3hdIGdu b21lLW9ubGluZS1hY2NvdW50cyAtPiAzLjM3LjkwICoqKmJldGEqKioNCi0gW3hdIGdub21lLWlu aXRpYWwtc2V0dXAgLT4gMy4zNy45MS4xICoqKmJldGEqKioNCi0gW3hdIHhkZy1kZXNrdG9wLXBv cnRhbC1ndGsgLT4gKHJldmJ1bXApICoqc3RhYmxlKioNCi0gW3hdIG5hdXRpbHVzIC0+IDMuMzcu OTEgKioqYmV0YSoqKg0KLSBbeF0gZ25vbWUtbWFwcyAtPiAzLjM3LjkxICoqKmJldGEqKioNCi0g W3hdIGV2b2x1dGlvbiAtPiAzLjM3LjkwICoqKmJldGEqKioNCi0gW3hdIGV2b2x1dGlvbi1ld3Mg LT4gMy4zNy45MCAqKipiZXRhKioqDQotIFt4XSBweXRob24zLWF0c3BpIC0+IDIuMzcuOTAgKioq YmV0YSoqKg0KLSBbeF0gcHl0aG9uLWF0c3BpIC0+IDIuMzcuOTAgKioqYmV0YSoqKg0KLSBbeF0g b3JjYSAtPiAzLjM3LjkwICoqKmJldGEqKioNCi0gW3hdIGdub21lLXdlYXRoZXIgLT4gKHJldmJ1 bXApICoqc3RhYmxlKioNCi0gW3hdIHZ0ZTMgLT4gMC42MS45MCAqKipiZXRhKioqDQotIFt4XSBn bm9tZS10ZXJtaW5hbCAtPiAzLjM3LjkwICoqKmJldGEqKioNCi0gW3hdIGdub21lLWdldHRpbmct c3RhcnRlZC1kb2NzIC0+IDMuMzYuMiAqKnN0YWJsZSoqDQotIFt4XSBnbm9tZS11c2VyLWRvY3Mg LT4gMy4zNi4yICoqc3RhYmxlKioNCi0gW3hdIGdub21lLWVwdWItdGh1bWJuYWlsZXIgLT4gMS42 ICoqc3RhYmxlKioNCi0gW3hdIGdub21lLWJvb2tzIC0+IChyZXZidW1wKSAqKnN0YWJsZSoqDQot IFt4XSBnbm9tZS1jaGFyYWN0ZXJzIC0+IChyZXZidW1wKSAqKnN0YWJsZSoqDQotIFt4XSBnbm9t ZS1kb2N1bWVudHMgLT4gKHJldmJ1bXApICoqc3RhYmxlKioNCi0gW3hdIGdub21lLWZvbnQtdmll d2VyIC0+IChyZXZidW1wKSAqKnN0YWJsZSoqDQotIFt4XSBnbm9tZS1zY3JlZW5zYXZlciAtPiAo cmV2YnVtcCArIGJ1aWxkIGZpeCkgKipzdGFibGUqKg0KLSBbeF0gdG90ZW0gLT4gKHJldmJ1bXAp ICoqc3RhYmxlKioNCi0gW3hdIGdub21lLWNsb2NrcyAtPiAzLjM3LjkxICoqKmJldGEqKioNCi0g W3hdIGxpYmRhenpsZSAtPiAzLjM3LjEgKnVuc3RhYmxlKg0KLSBbeF0gZXBpcGhhbnkgLT4gMy4z Ny45MSAqKipiZXRhKioqDQotIFt4XSBnbm9tZS1jb250YWN0cyAtPiAzLjM3LjIgKnVuc3RhYmxl Kg0KLSBbeF0gZW9nIC0+IDMuMzcuOTAgKioqYmV0YSoqKg0KLSBbeF0gZ25vbWUtcGhvdG9zIC0+ IDMuMzcuOTEuMSAqKipiZXRhKioqDQotIFt4XSBldmluY2UgLT4gMy4zNy45MCAqKipiZXRhKioq DQotIFt4XSBmaWxlLXJvbGxlciAtPiAzLjM3LjkwICoqKmJldGEqKioNCi0gW3hdIGdub21lLWNh bGVuZGFyIC0+IChyZXZidW1wKSAqKnN0YWJsZSoqDQotIFt4XSBnbm9tZS1tdXNpYyAtPiAzLjM3 LjMgKnVuc3RhYmxlKg0KLSBbeF0gZ25vbWUtcGFuZWwgLT4gMy4zNy4xICp1bnN0YWJsZSoNCi0g W3hdIG1ldGFjaXR5IC0+IDMuMzcuMSAqdW5zdGFibGUqDQotIFt4XSBnbm9tZS1mbGFzaGJhY2sg LT4gMy4zNy4yICp1bnN0YWJsZSoNCi0gW3hdIHRlcGwgLT4gNC40OS4zICp1bnN0YWJsZSoNCi0g W3hdIGdlZGl0IC0+IDMuMzcuMyAqdW5zdGFibGUqDQotIFt4XSBnZWRpdC1wbHVnaW5zIC0+IChy ZXZidW1wKSAqKnN0YWJsZSoqDQotIFt4XSBnbm9tZS1sYXRleCAtPiAzLjM3LjIgKnVuc3RhYmxl Kg0KLSBbeF0gYmFvYmFiIC0+IDMuMzcuOTAgKioqYmV0YSoqKg0KLSBbeF0gZ25vbWUtYm94ZXMg LT4gMy4zNy45MCAqKipiZXRhKioqDQotIFt4XSBnbm9tZS1jYWxjdWxhdG9yIC0+IDMuMzcuOTAg KioqYmV0YSoqKg0KLSBbeF0gZ25vbWUtZGlzay11dGlsaXR5IC0+IDMuMzcuMiAqdW5zdGFibGUq DQotIFt4XSBnbm9tZS1zY3JlZW5zaG90IC0+IDMuMzcuOTAgKioqYmV0YSoqKg0KLSBbeF0gZ25v bWUtc3lzdGVtLW1vbml0b3IgLT4gMy4zNy45MSAqKipiZXRhKioqDQotIFt4XSBndGtzb3VyY2V2 aWV3NCAtPiA0LjcuOTAgKioqYmV0YSoqKg0KLSBbeF0gc3lzcHJvZiAtPiAzLjM3LjkwICoqKmJl dGEqKioNCi0gW3hdIG1vempzNzggLT4gKG5ldykgKipzdGFibGUqKg0KLSBbeF0gZ2pzIC0+IDEu NjUuOTEgKioqYmV0YSoqKg0KLSBbeF0gZ25vbWUtYnVpbGRlciAtPiAzLjM3LjkwICoqKmJldGEq KiogKG5lZWRzIHVuc3RhYmxlIGBnbGliYCkNCi0gW3hdIGFkd2FpdGEtaWNvbi10aGVtZSAtPiAz LjM3LjIgKnVuc3RhYmxlKg0KLSBbeF0gZ25vbWUtYmFja2dyb3VuZHMgLT4gMy4zNy4yICp1bnN0 YWJsZSoNCi0gW3hdIHBvbGFyaSAtPiAzLjM3LjMgKnVuc3RhYmxlKg0KLSBbeF0gZ3ZmcyAtPiAx LjQ1LjkwICoqKmJldGEqKioNCi0gW3hdIGxpYnNvdXAgLT4gMi43MS4wICp1bnN0YWJsZSoNCi0g W3hdIHJ5Z2VsIC0+IDAuMzkuMiAqdW5zdGFibGUqDQotIFt4XSBzaW1wbGUtc2NhbiAtPiAzLjM3 LjMgKnVuc3RhYmxlKg0KLSBbeF0geWVscC14c2wgLT4gMy4zNy45MCAqKipiZXRhKioqDQotIFt4 XSB5ZWxwIC0+IDMuMzcuOTAgKioqYmV0YSoqKg0KLSBbeF0geWVscC10b29scyAtPiAzLjM3Ljkw ICoqKmJldGEqKioNCi0gW3hdIGJ1ZGdpZS1kZXNrdG9wIC0+IChyZWJ1aWxkKSAqKnN0YWJsZSoq DQoNCiMjIE1lcmdlZA0KDQotIFt4XSBsaWJzaWdjKyszIC0+IDMuMC4zIChuZXcpDQotIFt4XSBt bS1jb21tb24gLT4gMS4wLjENCi0gW3hdIGdsaWJtbSAtPiAyLjY0LjINCi0gW3hdIHBhbmdvbW0g LT4gMi40Mi4xDQotIFt4XSBsaWJub3RpZnkgLT4gMC43LjkNCi0gW3hdIGF0ayAtPiAyLjM2LjAN Ci0gW3hdIGd0ayszIC0+IDMuMjQuMjINCi0gW3hdIGdyYXBoZW5lIC0+IDEuMTAuMA0KLSBbeF0g YW10ayAtPiA1LjEuMQ0KLSBbeF0gbGliaGFuZHkxIC0+IDAuOTAuMCAobmV3KQ0KLSBbeF0gbGli cG9ydGFsIC0+IDAuMyAobmV3KQ0KLSBbeF0gY29nbCAtPiAxLjIyLjI4DQotIFt4XSBnZW9jb2Rl LWdsaWIgLT4gMy4yNi4yDQotIFt4XSBnZmJncmFwaCAtPiAwLjIuNA0KLSBbeF0gbGliZ3NmIC0+ IDEuMTQuNDcNCi0gW3hdIGxpYnNlY3JldCAtPiAwLjIwLjMNCi0gW3hdIGxpYmNoYW1wbGFpbiAt PiAwLjEyLjIwDQotIFt4XSB2YWxhIC0+IDAuNDguOQ0KLSBbeF0gdmFsYWRvYyAtPiAwLjQ4LjkN Ci0gW3hdIGdvbSAtPiAwLjQNCi0gW3hdIGdzc2RwIC0+IDEuMi4zDQotIFt4XSBndGstdm5jIC0+ IDEuMC4wIChkcm9wcyB1bnVzZWQgZ3RrMiBzdXBwb3J0KQ0KLSBbeF0gcGhvZGF2IC0+IDIuNA0K LSBbeF0gZ3VwbnAgLT4gMS4yLjQNCi0gW3hdIGdub21lLXZpZGVvLWVmZmVjdHMgLT4gMC41LjAN Cg0KIyMgVE9ETw0KDQotIFsgXSByZXRyby1ndGsgKHVucmVsZWFzZWQpDQotIFsgXSBnbm9tZS1n YW1lcyAoYmxvY2tlZCBvbiBgcmV0cm8tZ3RrYCkNCg0KIyBXb24ndCB1cGRhdGUNCg0KLSBndGs0 IC0+IDMuOTkuMCAobm90IGEgZGVwZW5kZW5jeSBvZiBhbnl0aGluZyBhbmQgcmVxdWlyZXMgY3Vy cmVudCBgcGFuZ29gIGFuZCBpdCdzIGltcHJhY3RpY2FsIHRvIGJhY2twb3J0OyB3ZSdsbCBwcm9i YWJseSBuZWVkIHRvIGZpbmFsbHkgdXBkYXRlIGBwYW5nb2ApCgpBIHBhdGNoIGZpbGUgZnJvbSBo dHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMjQyNjAucGF0 Y2ggaXMgYXR0YWNoZWQ= --===============9193411903900136790== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-gnome338-24260.patch" RnJvbSA0YjhlMGMyYjE3OWMzNzVmZDEwOTEzZGU4Y2I0ZDA1M2VhMmM5NTg5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4K RGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAwNToxODo0OSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDEv ODNdIGdsaWI6IHVwZGF0ZSB0byAyLjY1LjIKCmNhdmVhdDogZG9jcyBkb24ndCB3b3JrIHlldAot LS0KIC4uLi9nbGliL3BhdGNoZXMvZGlzYWJsZS1icm9rZW4tdGVzdHMucGF0Y2ggICB8IDU4ICsr KysrKysrKysrKysrKysrKysKIHNyY3BrZ3MvZ2xpYi90ZW1wbGF0ZSAgICAgICAgICAgICAgICAg ICAgICAgICB8IDE0ICsrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDY3IGluc2VydGlvbnMoKyksIDUg ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbGliL3BhdGNoZXMvZGlz YWJsZS1icm9rZW4tdGVzdHMucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dsaWIvcGF0Y2hl cy9kaXNhYmxlLWJyb2tlbi10ZXN0cy5wYXRjaCBiL3NyY3BrZ3MvZ2xpYi9wYXRjaGVzL2Rpc2Fi bGUtYnJva2VuLXRlc3RzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi40YTM2OTEyMGI3YgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZ2xpYi9wYXRjaGVz L2Rpc2FibGUtYnJva2VuLXRlc3RzLnBhdGNoCkBAIC0wLDAgKzEsNTggQEAKK0Zyb20gODAyMGMy ZjY2OWQ0NWRkNzFiN2U3OWJiMDg4Zjg3OTcwYjE5MTAwMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKK0Zyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgorRGF0ZTogU3Vu LCAxNiBBdWcgMjAyMCAwNToxMzoxOCArMDIwMAorU3ViamVjdDogW1BBVENIXSBkaXNhYmxlIGJy b2tlbiB0ZXN0cworCistLS0KKyBnaW8vdGVzdHMvbWVzb24uYnVpbGQgIHwgNiAtLS0tLS0KKyBn bGliL3Rlc3RzL21lc29uLmJ1aWxkIHwgMyAtLS0KKyAyIGZpbGVzIGNoYW5nZWQsIDkgZGVsZXRp b25zKC0pCisKK2RpZmYgLS1naXQgZ2lvL3Rlc3RzL21lc29uLmJ1aWxkIGdpby90ZXN0cy9tZXNv bi5idWlsZAoraW5kZXggZDhlYmQ1Ni4uZWYwNjE1OCAxMDA2NDQKKy0tLSBnaW8vdGVzdHMvbWVz b24uYnVpbGQKKysrKyBnaW8vdGVzdHMvbWVzb24uYnVpbGQKK0BAIC0zOSw3ICszOSw2IEBAIGdp b190ZXN0cyA9IHsKKyAgICdjcmVkZW50aWFscycgOiB7fSwKKyAgICdkYXRhLWlucHV0LXN0cmVh bScgOiB7fSwKKyAgICdkYXRhLW91dHB1dC1zdHJlYW0nIDoge30sCistICAnZGVmYXVsdHZhbHVl JyA6IHsnZXh0cmFfc291cmNlcycgOiBbZ2lvdHlwZWZ1bmNzX2luY119LAorICAgJ2ZpbGVhdHRy aWJ1dGVtYXRjaGVyJyA6IHt9LAorICAgJ2ZpbHRlci1zdHJlYW1zJyA6IHt9LAorICAgJ2dpb21v ZHVsZScgOiB7fSwKK0BAIC03OSw3ICs3OCw2IEBAIGdpb190ZXN0cyA9IHsKKyAgICd0bHMtaW50 ZXJhY3Rpb24nIDogeydleHRyYV9zb3VyY2VzJyA6IFsnZ3Rlc3R0bHNiYWNrZW5kLmMnXX0sCisg ICAndGxzLWRhdGFiYXNlJyA6IHsnZXh0cmFfc291cmNlcycgOiBbJ2d0ZXN0dGxzYmFja2VuZC5j J119LAorICAgJ3Rscy1iaW5kaW5ncycgOiB7J2V4dHJhX3NvdXJjZXMnIDogWydndGVzdHRsc2Jh Y2tlbmQuYyddfSwKKy0gICdnZGJ1cy1hZGRyZXNzLWdldC1zZXNzaW9uJyA6IHt9LAorICAgJ3dp bjMyLWFwcGluZm8nIDoge30sCisgfQorIAorQEAgLTEzNiwxMCArMTM0LDYgQEAgZW5kaWYKKyBp ZiBob3N0X21hY2hpbmUuc3lzdGVtKCkgIT0gJ3dpbmRvd3MnCisgICBnaW9fdGVzdHMgKz0gewor ICAgICAnZmlsZScgOiB7fSwKKy0gICAgJ2dkYnVzLXBlZXInIDogeworLSAgICAgICdkZXBlbmRl bmNpZXMnIDogW2xpYmdkYnVzX2V4YW1wbGVfb2JqZWN0bWFuYWdlcl9kZXBdLAorLSAgICAgICdp bnN0YWxsX3JwYXRoJyA6IGluc3RhbGxlZF90ZXN0c19leGVjZGlyCistICAgIH0sCisgICAgICdn ZGJ1cy1wZWVyLW9iamVjdC1tYW5hZ2VyJyA6IHt9LAorICAgICAnbGl2ZS1nLWZpbGUnIDoge30s CisgICAgICdzb2NrZXQtYWRkcmVzcycgOiB7fSwKK2RpZmYgLS1naXQgZ2xpYi90ZXN0cy9tZXNv bi5idWlsZCBnbGliL3Rlc3RzL21lc29uLmJ1aWxkCitpbmRleCA2ZWIyM2U4Li4xZjhjZDVjIDEw MDY0NAorLS0tIGdsaWIvdGVzdHMvbWVzb24uYnVpbGQKKysrKyBnbGliL3Rlc3RzL21lc29uLmJ1 aWxkCitAQCAtMjAsOSArMjAsNiBAQCBnbGliX3Rlc3RzID0geworICAgJ2Vudmlyb25tZW50JyA6 IHt9LAorICAgJ2Vycm9yJyA6IHt9LAorICAgJ2ZpbGV1dGlscycgOiB7fSwKKy0gICdnZGF0ZXRp bWUnIDogeworLSAgICAnc3VpdGUnIDogWydzbG93J10sCistICB9LAorICAgJ2d1dWlkJyA6IHt9 LAorICAgJ2d2YXJpYW50JyA6IHsKKyAgICAgJ3N1aXRlJyA6IFsnc2xvdyddLAorLS0gCisyLjI4 LjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbGliL3RlbXBsYXRlIGIvc3JjcGtncy9nbGliL3Rl bXBsYXRlCmluZGV4IDViYmY1OWU2NzYwLi5kMzZjMGExOGE4YiAxMDA2NDQKLS0tIGEvc3JjcGtn cy9nbGliL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ2xpYi90ZW1wbGF0ZQpAQCAtMSwxMCArMSwx MCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ2xpYicKIHBrZ25hbWU9Z2xpYgotdmVyc2lvbj0y LjY0LjMKK3ZlcnNpb249Mi42NS4yCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogY29u ZmlndXJlX2FyZ3M9Ii1EZmFtPWZhbHNlIC1EbWFuPXRydWUgLURzZWxpbnV4PWRpc2FibGVkCi0g LURndGtfZG9jPSQodm9wdF9pZiBndGtfZG9jIHRydWUgZmFsc2UpIgorICQodm9wdF9ib29sIGd0 a19kb2MgZ3RrX2RvYykiCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgcGtnLWNvbmZpZyBsaWJ4 c2x0IGRvY2Jvb2steHNsICQodm9wdF9pZiBndGtfZG9jIGd0ay1kb2MpIgogbWFrZWRlcGVuZHM9 InpsaWItZGV2ZWwgcGNyZS1kZXZlbCBsaWJmZmktZGV2ZWwgZGJ1cy1kZXZlbCBlbGZ1dGlscy1k ZXZlbCBsaWJtb3VudC1kZXZlbCIKIGNoZWNrZGVwZW5kcz0iZGVza3RvcC1maWxlLXV0aWxzIHNo YXJlZC1taW1lLWluZm8gdHpkYXRhIgpAQCAtMTQsMTMgKzE0LDE3IEBAIGxpY2Vuc2U9IkxHUEwt Mi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMv R0xpYiIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dsaWIvcmF3 L21hc3Rlci9ORVdTIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L2dsaWIvJHt2ZXJzaW9uJS4q fS9nbGliLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZmU5Y2JjOTc5MjVkMTRjODA0OTM1 ZjA2N2EzYWQ3N2VmNTVjMGJiZTliZWZlNjg5NjIzMThmNWE3NjdjZWIyMgorY2hlY2tzdW09NDQ1 YjE5NTFlYWE4MmQ3YThhZjQ2YmRmZjVkY2M4MDMwNDA2ZGIxY2VlYjBmMGMzYTg4OTgzZjcwMTUy YzU1NQogCiBidWlsZF9vcHRpb25zPSJndGtfZG9jIgogZGVzY19vcHRpb25fZ3RrX2RvYz0iQnVp bGQgR1RLIEFQSSBkb2NzIgogCi1pZiBbIC16ICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KLQlidWls ZF9vcHRpb25zX2RlZmF1bHQrPSIgZ3RrX2RvYyIKKyNpZiBbIC16ICIkQ1JPU1NfQlVJTEQiIF07 IHRoZW4KKyMJYnVpbGRfb3B0aW9uc19kZWZhdWx0Kz0iIGd0a19kb2MiCisjZmkKKworaWYgWyAi JGJ1aWxkX29wdGlvbl9ndGtfZG9jIiBdOyB0aGVuCisJYnJva2VuPSJuZWVkcyBndGstZG9jIDEu MzIuMSwgbm90IHJlbGVhc2VkIHlldCIKIGZpCiAKIGxpYmdsaWItZGV2ZWxfcGFja2FnZSgpIHsK CkZyb20gMjc3N2ZmZDM1OTY2MGMyNmEyZTBlMTRhNDEyMDViZTljZTBiMDE4NyBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+ CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDU6MjA6MjYgKzAyMDAKU3ViamVjdDogW1BBVENIIDAy LzgzXSBnbGliLW5ldHdvcmtpbmc6IHVwZGF0ZSB0byAyLjY1LjkwCgotLS0KIHNyY3BrZ3MvZ2xp Yi1uZXR3b3JraW5nL3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2Vy dGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbGliLW5ldHdv cmtpbmcvdGVtcGxhdGUgYi9zcmNwa2dzL2dsaWItbmV0d29ya2luZy90ZW1wbGF0ZQppbmRleCA1 ZWFmZmE4MmU2NC4uMWQ2MWE2MTY5YmEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ2xpYi1uZXR3b3Jr aW5nL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ2xpYi1uZXR3b3JraW5nL3RlbXBsYXRlCkBAIC0x LDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ2xpYi1uZXR3b3JraW5nJwogcGtnbmFt ZT1nbGliLW5ldHdvcmtpbmcKLXZlcnNpb249Mi42NC4xCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTIu NjUuOTAKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBjb25maWd1cmVfYXJncz0iLURp bnN0YWxsZWRfdGVzdHM9ZmFsc2UgLURnbnV0bHM9ZW5hYmxlZCAtRGxpYnByb3h5PWVuYWJsZWQK ICAtRGdub21lX3Byb3h5PWVuYWJsZWQiCkBAIC0xNCw3ICsxNCw3IEBAIG1haW50YWluZXI9IkVu bm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMS1vci1s YXRlciIKIGhvbWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ2xpYi1uZXR3 b3JraW5nLyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUu Kn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWE0YzM0NmRlZjdkODE3 NDY3ZDc5YTk1YzIzYjNjY2YyMmU0ZGYxNTQ4ODcwNzI2YjYzMzk2NDAwODUyZGFmNzIKK2NoZWNr c3VtPTBiNGRmNWY2NDNiN2UwODIyMzY5MGExMjQ5Y2UzMDIzMjliNjE1NmYyNjQwZDdiMDIxN2Yx OTJiMzMwYWY1NjYKIGxpYjMyZGlzYWJsZWQ9eWVzCiAKIHBvc3RfaW5zdGFsbCgpIHsKCkZyb20g MmRmYjQzZDY0NGIwMDI3MWU3N2FiNWYxZmFjNGU0ZDE3YmFmYWNiZiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6 IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDAzLzgzXSBh dC1zcGkyLWNvcmU6IHVwZGF0ZSB0byAyLjM3LjkwCgotLS0KIHNyY3BrZ3MvYXQtc3BpMi1jb3Jl L3RlbXBsYXRlIHwgMTQgKysrKysrKysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlv bnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9hdC1zcGkyLWNvcmUv dGVtcGxhdGUgYi9zcmNwa2dzL2F0LXNwaTItY29yZS90ZW1wbGF0ZQppbmRleCBiMzgzZmU5OWJl ZC4uNDljYjNmYTFiZjcgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvYXQtc3BpMi1jb3JlL3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvYXQtc3BpMi1jb3JlL3RlbXBsYXRlCkBAIC0xLDIzICsxLDI3IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdhdC1zcGkyLWNvcmUnCiBwa2duYW1lPWF0LXNwaTItY29yZQot dmVyc2lvbj0yLjM0LjAKK3ZlcnNpb249Mi4zNy45MAogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9 bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgotaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGRi dXMgZ2xpYi1kZXZlbCIKLW1ha2VkZXBlbmRzPSJsaWJnbGliLWRldmVsIGxpYlhleHQtZGV2ZWwg bGliU00tZGV2ZWwgbGliWHRzdC1kZXZlbAotIGxpYlhldmllLWRldmVsIGRidXMtZGV2ZWwiCito b3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgZGJ1cyBnbGliLWRldmVsIGdldHRleHQiCittYWtl ZGVwZW5kcz0ibGliZ2xpYi1kZXZlbCBsaWJYZXh0LWRldmVsIGxpYlNNLWRldmVsIGxpYlh0c3Qt ZGV2ZWwgZGJ1cy1kZXZlbCIKIHNob3J0X2Rlc2M9IkFzc2lzdGl2ZSBUZWNobm9sb2d5IFNlcnZp Y2UgUHJvdmlkZXIgSW50ZXJmYWNlIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2 b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0 cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2F0LXNwaTItY29yZSIKIGRpc3RmaWxlcz0iJHtH Tk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259 LnRhci54eiIKLWNoZWNrc3VtPWQ2MjljZGJkNjc0ZTUzOWY4OTEyMDI4NTEyYWY1ODM5OTA5Mzhj N2I0OWUyNTE4NGMxMjZiMDAxMjFlZjExYzYKK2NoZWNrc3VtPWNhYTcyMjk5ZDVlN2YyYWE0Yjgx OThlMzc0MDU3NTFiZGE1YTIyYTViYTk3N2I5YzdiZjM0MTk5NTkzYmI2YmIKIAogIyBQYWNrYWdl IGJ1aWxkIG9wdGlvbnMKIGJ1aWxkX29wdGlvbnM9ImdpciIKIGJ1aWxkX29wdGlvbnNfZGVmYXVs dD0iZ2lyIgogCisjIG5vbi10cml2aWFsIGRidXMgc2V0dXAKK2RvX2NoZWNrKCkgeworCToKK30K KwogcG9zdF9pbnN0YWxsKCkgewogCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9saWIvc3lzdGVtZAog fQoKRnJvbSAyMDMyOWE3MmNjOGYwYjlhOTRmMDEyN2Q2NjJmNDc3NTc0NzY5NTRjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9y Zz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0gg MDQvODNdIGF0LXNwaTItYXRrOiB1cGRhdGUgdG8gMi4zNy45MAoKLS0tCiBzcmNwa2dzL2F0LXNw aTItYXRrL3RlbXBsYXRlIHwgOSArKysrKysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlv bnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9hdC1zcGkyLWF0ay90 ZW1wbGF0ZSBiL3NyY3BrZ3MvYXQtc3BpMi1hdGsvdGVtcGxhdGUKaW5kZXggNDM1MWI3OTk2ZjMu LjM5OTFmMTkyZjBhIDEwMDY0NAotLS0gYS9zcmNwa2dzL2F0LXNwaTItYXRrL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvYXQtc3BpMi1hdGsvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICdhdC1zcGkyLWF0aycKIHBrZ25hbWU9YXQtc3BpMi1hdGsKLXZlcnNpb249 Mi4zNC4xCit2ZXJzaW9uPTIuMzcuOTAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBo b3N0bWFrZWRlcGVuZHM9ImxpYnRvb2wgcGtnLWNvbmZpZyBpbnRsdG9vbCBnbGliLWRldmVsIgpA QCAtMTAsNyArMTAsMTIgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGlu dXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHA6Ly93 d3cuZ25vbWUub3JnIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJz aW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09Nzc2ZGY5MzA3 NDhmZGU3MWMxMjhiZTZjMzY2YTk4N2I5OGI2ZWU2NmQ1MDhlZDljOGRiMjM1NWJmNGI5Y2MxNgor Y2hlY2tzdW09OTk4NDdhM2I2MWJmMmFjOThhNDdlNDdlZGI0ZGU0ZWE1YzRmMzI2YzgyMzhhZDEw NjYxYmQ2ZDljNDZiNDhmMAorCisjIG5vbi10cml2aWFsIGRidXMgc2V0dXAKK2RvX2NoZWNrKCkg eworCToKK30KIAogYXQtc3BpMi1hdGstZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSIke21h a2VkZXBlbmRzfSAke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCgpGcm9tIGU1 NTE1NzdmNWJkNDQ4MTZmZGI1NTU0YzY3ZDkyN2QzOWUyYjRhNTcgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBT dW4sIDE2IEF1ZyAyMDIwIDIxOjI5OjQ1ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNS84M10gd2Vi a2l0Mmd0azogdXBkYXRlIHRvIDIuMjkuOTEKCi0tLQogLi4uL3BhdGNoZXMvZG9udC1kaXNhYmxl LWdpci1kdXJpbmctY3Jvc3MucGF0Y2ggICAgfCAxMCAtLS0tLS0tLS0tCiBzcmNwa2dzL3dlYmtp dDJndGsvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgICB8IDE0ICsrKysrKysrLS0tLS0t CiAyIGZpbGVzIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCiBkZWxl dGUgbW9kZSAxMDA2NDQgc3JjcGtncy93ZWJraXQyZ3RrL3BhdGNoZXMvZG9udC1kaXNhYmxlLWdp ci1kdXJpbmctY3Jvc3MucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3dlYmtpdDJndGsvcGF0 Y2hlcy9kb250LWRpc2FibGUtZ2lyLWR1cmluZy1jcm9zcy5wYXRjaCBiL3NyY3BrZ3Mvd2Via2l0 Mmd0ay9wYXRjaGVzL2RvbnQtZGlzYWJsZS1naXItZHVyaW5nLWNyb3NzLnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOTliN2UzMjM4YS4uMDAwMDAwMDAwMDAKLS0tIGEvc3Jj cGtncy93ZWJraXQyZ3RrL3BhdGNoZXMvZG9udC1kaXNhYmxlLWdpci1kdXJpbmctY3Jvc3MucGF0 Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi0tLS0gU291cmNlL2NtYWtlL09wdGlv bnNHVEsuY21ha2Uub3JpZwkyMDE5LTAyLTEwIDE4OjA0OjA3Ljg5ODQxNzc3OCArMDEwMAotKysr IFNvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCTIwMTktMDItMTAgMTg6MDQ6MzYuNjczNDE1 NTY5ICswMTAwCi1AQCAtMzU3LDcgKzM1Nyw2IEBACi0gIyBPdmVycmlkZSB0aGUgY2FjaGVkIHZh cmlhYmxlcywgZ3RrLWRvYyBhbmQgZ29iamVjdC1pbnRyb3NwZWN0aW9uIGRvIG5vdCByZWFsbHkg d29yayB3aGVuIGNyb3NzLWJ1aWxkaW5nLgotIGlmIChDTUFLRV9DUk9TU0NPTVBJTElORykKLSAg ICAgc2V0KEVOQUJMRV9HVEtET0MgT0ZGKQotLSAgICBzZXQoRU5BQkxFX0lOVFJPU1BFQ1RJT04g T0ZGKQotIGVuZGlmICgpCi0gCi0gIyBPdmVycmlkZSB0aGUgY2FjaGVkIHZhcmlhYmxlLCBndGst ZG9jIGRvZXMgbm90IHJlYWxseSB3b3JrIHdoZW4gYnVpbGRpbmcgb24gTWFjLgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy93ZWJraXQyZ3RrL3RlbXBsYXRlIGIvc3JjcGtncy93ZWJraXQyZ3RrL3RlbXBs YXRlCmluZGV4IGY0ZmZlZmEyMzdiLi40ZGJiYjczYjkwMSAxMDA2NDQKLS0tIGEvc3JjcGtncy93 ZWJraXQyZ3RrL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvd2Via2l0Mmd0ay90ZW1wbGF0ZQpAQCAt MSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3dlYmtpdDJndGsnCiBwa2duYW1lPXdl YmtpdDJndGsKLXZlcnNpb249Mi4yOC4zCit2ZXJzaW9uPTIuMjkuOTEKIHJldmlzaW9uPTEKIHdy a3NyYz0id2Via2l0Z3RrLSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1jbWFrZQpAQCAtMTQsNiAr MTQsNyBAQCBjb25maWd1cmVfYXJncz0iLURQT1JUPUdUSyAtRFVTRV9MRF9HT0xEPU9GRgogIC1E Q01BS0VfQ19GTEFHU19SRUxXSVRIREVCSU5GTz0tRE5ERUJVRwogIC1EQ01BS0VfTElOS0VSPSR7 WEJQU19DUk9TU19UUklQTEVUfS1nY2MKICAtRFJVQllfVkVSU0lPTj0yLjcKKyAtRFVTRV9TWVNU RU1EPU9GRgogIC1ERU5BQkxFX0dUS0RPQz1PRkYgLURVU0VfR1NUUkVBTUVSX0dMPU9GRiAtRFVT RV9XUEVfUkVOREVSRVI9T0ZGCiAgLURFTkFCTEVfTUlOSUJST1dTRVI9JCh2b3B0X2lmIG1pbmli cm93c2VyIE9OIE9GRikKICAtREVOQUJMRV9KSVQ9JCh2b3B0X2lmIGppdCBPTiBPRkYpCkBAIC0y Myw4ICsyNCw4IEBAIGNvbmZpZ3VyZV9hcmdzPSItRFBPUlQ9R1RLIC1EVVNFX0xEX0dPTEQ9T0ZG CiAgLURFTkFCTEVfWDExX1RBUkdFVD0kKHZvcHRfaWYgeDExIE9OIE9GRikKICAtREVOQUJMRV9T QU1QTElOR19QUk9GSUxFUj0kKHZvcHRfaWYgc2FtcGxpbmdfcHJvZmlsZXIgT04gT0ZGKQogIC1E RU5BQkxFX0JVQkJMRVdSQVBfU0FOREJPWD0kKHZvcHRfaWYgYnViYmxld3JhcCBPTiBPRkYpIgot aG9zdG1ha2VkZXBlbmRzPSJwZXJsIHB5dGhvbiBwa2ctY29uZmlnIGdwZXJmIGZsZXggcnVieSBn ZXR0ZXh0IGdsaWItZGV2ZWwgZ2VvY2x1ZTIKLSAkKHZvcHRfaWYgd2F5bGFuZCB3YXlsYW5kLWRl dmVsKSIKK2hvc3RtYWtlZGVwZW5kcz0icGVybCBweXRob24gcGtnLWNvbmZpZyBncGVyZiBmbGV4 IHJ1YnkgZ2V0dGV4dCBnbGliLWRldmVsCisgZ2VvY2x1ZTIgbGliaGFyZmJ1enogJCh2b3B0X2lm IHdheWxhbmQgd2F5bGFuZC1kZXZlbCkiCiBtYWtlZGVwZW5kcz0iYXQtc3BpMi1jb3JlLWRldmVs IGxpYmpwZWctdHVyYm8tZGV2ZWwgbGlicG5nLWRldmVsCiAgaGFyZmJ1enotZGV2ZWwgZ3N0LXBs dWdpbnMtYmFzZTEtZGV2ZWwgZ3N0LXBsdWdpbnMtYmFkMS1kZXZlbCBzcWxpdGUtZGV2ZWwKICBs aWJzb3VwLWRldmVsIGxpYnhzbHQtZGV2ZWwgZ251dGxzLWRldmVsIGljdS1kZXZlbCBlbmNoYW50 LWRldmVsCkBAIC0zOCw3ICszOSw3IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hA dm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciwgQlNELTItQ2xhdXNl IgogaG9tZXBhZ2U9Imh0dHBzOi8vd2Via2l0Z3RrLm9yZy8iCiBkaXN0ZmlsZXM9IiR7aG9tZXBh Z2V9L3JlbGVhc2VzL3dlYmtpdGd0ay0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWYwODk4 YWMwNzJjMjIwZTEzYTRhZWU4MTk0MDg0MjFhNmNiNTZhNmViODkxNzBjZWFmZTUyNDY4YjA5MDM1 MjIKK2NoZWNrc3VtPWNiYmFkYjVlNTAyMWYwMDNkYzIxZjhhZTkzMDhjZjhhY2FmZjkwZTIxZGRi MDY5YWI1NTllYTUxMDgxOWNkMDEKIAogYnVpbGRfb3B0aW9ucz0iZ2lyIHdheWxhbmQgeDExIGJ1 YmJsZXdyYXAgaml0IHNhbXBsaW5nX3Byb2ZpbGVyIG1pbmlicm93c2VyIgogYnVpbGRfb3B0aW9u c19kZWZhdWx0PSJnaXIgd2F5bGFuZCB4MTEgYnViYmxld3JhcCBtaW5pYnJvd3NlciIKQEAgLTQ4 LDggKzQ5LDkgQEAgZGVzY19vcHRpb25faml0PSJKYXZhU2NyaXB0IEpJVCAoT25seSBzb21lIGFy Y2hpdGVjdHVyZXMpIgogZGVzY19vcHRpb25fc2FtcGxpbmdfcHJvZmlsZXI9IlNhbXBsaW5nIHBy b2ZpbGVyIHN1cHBvcnQgKEpJVCArIGdsaWJjIG9ubHkpIgogZGVzY19vcHRpb25fbWluaWJyb3dz ZXI9IkJ1aWxkIHRoZSBtaW5pYnJvd3NlciIKIAotbWFrZWRlcGVuZHMrPSIgbGliaGFyZmJ1enoi Ci1ob3N0bWFrZWRlcGVuZHMrPSIgbGliaGFyZmJ1enoiCitkb19jaGVjaygpIHsKKwk6Cit9CiAK ICMgZGV0ZWN0aW9uICsgcnVudGltZQogaWYgWyAiJGJ1aWxkX29wdGlvbl9idWJibGV3cmFwIiBd OyB0aGVuCgpGcm9tIGZiMDY5NTI3OTdhY2ZkM2FlMDA0NWI1NWMyMzA4OGFhOWEyNTFkNTIgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9y Z2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQ QVRDSCAwNi84M10gZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hczogdXBkYXRlIHRvIDMuMzcuMgoK LS0tCiAuLi4vcGF0Y2hlcy9maXgtY3Jvc3MtZ2lyLnBhdGNoICAgICAgICAgICAgICAgICAgICAg fCAxMyAtLS0tLS0tLS0tLS0tCiBzcmNwa2dzL2dzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMvdGVt cGxhdGUgICAgICAgICAgfCAgNiArKystLS0KIDIgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25z KCspLCAxNiBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2dzZXR0aW5n cy1kZXNrdG9wLXNjaGVtYXMvcGF0Y2hlcy9maXgtY3Jvc3MtZ2lyLnBhdGNoCgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9nc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzL3BhdGNoZXMvZml4LWNyb3NzLWdp ci5wYXRjaCBiL3NyY3BrZ3MvZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy9wYXRjaGVzL2ZpeC1j cm9zcy1naXIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIyOTlkNWM5Y2Qw Li4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2dzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMvcGF0 Y2hlcy9maXgtY3Jvc3MtZ2lyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAot ZGlmZiAtLWdpdCBhL2hlYWRlcnMvbWVzb24uYnVpbGQgYi9oZWFkZXJzL21lc29uLmJ1aWxkCi1p bmRleCAzY2U4YjYxLi4xMTMyNjk1IDEwMDY0NAotLS0tIGhlYWRlcnMvbWVzb24uYnVpbGQKLSsr KyBoZWFkZXJzL21lc29uLmJ1aWxkCi1AQCAtMTksNyArMTksNyBAQCBlbnVtc194bWwgPSBjdXN0 b21fdGFyZ2V0KAotICAgaW5zdGFsbDogdHJ1ZSwKLSAgIGluc3RhbGxfZGlyOiBzY2hlbWFzZGly KQotIAotLWlmIG5vdCBtZXNvbi5pc19jcm9zc19idWlsZCgpIGFuZCBnZXRfb3B0aW9uKCdpbnRy b3NwZWN0aW9uJykKLStpZiBnZXRfb3B0aW9uKCdpbnRyb3NwZWN0aW9uJykKLSAgIG5vaW5zdF9s aWIgPSBzaGFyZWRfbGlicmFyeSgnbm9pbnN0JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBoZWFkZXJzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc3RhbGw6IGZh bHNlKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzL3RlbXBs YXRlIGIvc3JjcGtncy9nc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzL3RlbXBsYXRlCmluZGV4IDQ5 YzY0Y2NhNzM4Li41NWYwOTc3ZDFjMiAxMDA2NDQKLS0tIGEvc3JjcGtncy9nc2V0dGluZ3MtZGVz a3RvcC1zY2hlbWFzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ3NldHRpbmdzLWRlc2t0b3Atc2No ZW1hcy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dzZXR0 aW5ncy1kZXNrdG9wLXNjaGVtYXMnCiBwa2duYW1lPWdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMK LXZlcnNpb249My4zNi4wCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTMuMzcuMgorcmV2aXNpb249MQog YnVpbGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1E aW50cm9zcGVjdGlvbj0kKHZvcHRfaWYgZ2lyIHRydWUgZmFsc2UpIgpAQCAtMTIsNyArMTIsNyBA QCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5z ZT0iTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3Jn L0dOT01FL2dzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lU RX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoi Ci1jaGVja3N1bT03NjRhYjY4MzI4NjUzNjMyNDUzM2E1OGQ0ZTk1ZmM1N2Y4MWFkYWJhN2Q4ODBk ZDBlYmJiY2VkNjNlOTYwZWE2CitjaGVja3N1bT1lMzM4ZThjYmNlMTY4NGI3ZGYyZTUwYjJkNzBh MGIwZmU0NzE3NmZiMGIzNzNlNmJjNjdiMjY5NjBiNDBkOGVmCiAKICMgUGFja2FnZSBidWlsZCBv cHRpb25zCiBidWlsZF9vcHRpb25zPSJnaXIiCgpGcm9tIDAyYjIwOGNiODAzNjhmZTE4ZDY2NDMz ZTVmOTM2ZWEwNDAzNzE0MmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBL b2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4 OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNy84M10gZ25vbWUtZGVza3RvcDogdXBkYXRlIHRv IDMuMzcuOTEKCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgMiArLQogc3JjcGtncy9nbm9tZS1kZXNrdG9wL3BhdGNoZXMvYnVpbGQucGF0Y2ggfCAxOCAr KysrKysrKysrKysrKysrKysKIHNyY3BrZ3MvZ25vbWUtZGVza3RvcC90ZW1wbGF0ZSAgICAgICAg ICAgIHwgMTEgKysrKysrKystLS0KIDMgZmlsZXMgY2hhbmdlZCwgMjcgaW5zZXJ0aW9ucygrKSwg NCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2dub21lLWRlc2t0b3Av cGF0Y2hlcy9idWlsZC5wYXRjaAoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24v c2hsaWJzCmluZGV4IDFjODZmN2Y3Nzc0Li45M2Y1N2E2ODQyNyAxMDA2NDQKLS0tIGEvY29tbW9u L3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC0xMTc3LDcgKzExNzcsNyBAQCBsaWJnc3Ri YXNlY2FtZXJhYmluc3JjLTEuMC5zby4wIGdzdC1wbHVnaW5zLWJhZDEtMS4wLjBfMQogbGliZ3N0 Y29kZWNwYXJzZXJzLTEuMC5zby4wIGdzdC1wbHVnaW5zLWJhZDEtMS4wLjBfMQogbGliZ3N0cGxh eWVyLTEuMC5zby4wIGdzdC1wbHVnaW5zLWJhZDEtMS4wLjBfMQogbGliZ3N0Z2wtMS4wLnNvLjAg Z3N0LXBsdWdpbnMtYmFzZTEtMS4xNC4wXzEKLWxpYmdub21lLWRlc2t0b3AtMy5zby4xOCBnbm9t ZS1kZXNrdG9wLTMuMzQuMF8xCitsaWJnbm9tZS1kZXNrdG9wLTMuc28uMTkgZ25vbWUtZGVza3Rv cC0zLjM3LjkwLjFfMQogbGlic2VjcmV0LTEuc28uMCBsaWJzZWNyZXQtMC4xMF8xCiBsaWJnd2Vh dGhlci0zLnNvLjE2IGxpYmd3ZWF0aGVyLTMuMzQuMF8xCiBsaWJnbm9tZWtiZC5zby44IGxpYmdu b21la2JkLTMuNi4wXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtZGVza3RvcC9wYXRjaGVz L2J1aWxkLnBhdGNoIGIvc3JjcGtncy9nbm9tZS1kZXNrdG9wL3BhdGNoZXMvYnVpbGQucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmVmZWQwMGEyNWRkCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9nbm9tZS1kZXNrdG9wL3BhdGNoZXMvYnVpbGQucGF0Y2gK QEAgLTAsMCArMSwxOCBAQAorY29tbWl0IDRmNTVmZjA3ODQxMTk5M2I3ODJlNzRlYTE4YzVjNmFi MzVhZGY2ODUKK0F1dGhvcjogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CitE YXRlOiAgIFdlZCBBdWcgMTIgMDU6MjY6MDAgMjAyMCArMDIwMAorCisgICAgYmxhCisKK2RpZmYg LS1naXQgbGliZ25vbWUtZGVza3RvcC9nbm9tZS1yci5oIGxpYmdub21lLWRlc2t0b3AvZ25vbWUt cnIuaAoraW5kZXggMTExYmFiMy4uNzY5ODY3MiAxMDA2NDQKKy0tLSBsaWJnbm9tZS1kZXNrdG9w L2dub21lLXJyLmgKKysrKyBsaWJnbm9tZS1kZXNrdG9wL2dub21lLXJyLmgKK0BAIC0yOCw2ICsy OCw3IEBACisgI2Vycm9yICAgIEdub21lUlIgaXMgdW5zdGFibGUgQVBJLiBZb3UgbXVzdCBkZWZp bmUgR05PTUVfREVTS1RPUF9VU0VfVU5TVEFCTEVfQVBJIGJlZm9yZSBpbmNsdWRpbmcgZ25vbWVy ci5oCisgI2VuZGlmCisgCisrI2luY2x1ZGUgPHN0ZGludC5oPgorICNpbmNsdWRlIDxnbGliLmg+ CisgI2luY2x1ZGUgPGdkay9nZGsuaD4KKyAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtZGVz a3RvcC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtZGVza3RvcC90ZW1wbGF0ZQppbmRleCA5OTJj YjFmZjE2YS4uYjA1OGFlYmZmZjkgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtZGVza3RvcC90 ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWRlc2t0b3AvdGVtcGxhdGUKQEAgLTEsMTAgKzEs MTAgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWRlc2t0b3AnCiBwa2duYW1lPWdub21l LWRlc2t0b3AKLXZlcnNpb249My4zNC4xCit2ZXJzaW9uPTMuMzcuOTEKIHJldmlzaW9uPTEKIGJ1 aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKLWNvbmZpZ3VyZV9hcmdzPSItRGdu b21lLWRpc3RyaWJ1dG9yPVZvaWRMaW51eCAtRHVkZXY9ZW5hYmxlZAorY29uZmlndXJlX2FyZ3M9 Ii1EZ25vbWVfZGlzdHJpYnV0b3I9Vm9pZExpbnV4IC1EdWRldj1lbmFibGVkIC1Ec3lzdGVtZD1k aXNhYmxlZAogIC1EaW50cm9zcGVjdGlvbj0kKHZvcHRfaWYgZ2lyIHRydWUgZmFsc2UpIgogaG9z dG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGl0c3Rvb2wgcGtnLWNvbmZpZyBnbGliLWRldmVsIgogbWFr ZWRlcGVuZHM9ImV1ZGV2LWxpYnVkZXYtZGV2ZWwgZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy1k ZXZlbCBndGsrMy1kZXZlbApAQCAtMTYsMTEgKzE2LDE2IEBAIG1haW50YWluZXI9IkVubm8gQm9s YW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBM R1BMLTIuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05P TUUvZ25vbWUtZGVza3RvcCIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7 dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWMxZGJl YjU2NjZkYWQyNzE2NmM3NjllNDhlMmFiNDFkZDVlZDc0NzE4ZWEzNWViNTdjODQ4ODc5MDY2MmRj NWEKK2NoZWNrc3VtPTMyMmY2YTFkMjMzZGE3NmY5NWI3ZWVlMWVlOTNkOTg1NDU4OTkzN2MyMThl M2I2NjUyYzkyZDliNWUxYjNiMTkKIAogYnVpbGRfb3B0aW9ucz0iZ2lyIgogYnVpbGRfb3B0aW9u c19kZWZhdWx0PSJnaXIiCiAKKyMgbmVlZHMgWAorZG9fY2hlY2soKSB7CisJOgorfQorCiBnbm9t ZS1kZXNrdG9wLWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0iZ3RrKzMtZGV2ZWwgZ3NldHRp bmdzLWRlc2t0b3Atc2NoZW1hcy1kZXZlbD49My4xMgogCSBnZGstcGl4YnVmLWRldmVsIGlzby1j b2RlcyBsaWJYMTEtZGV2ZWwgbGliZ2xpYi1kZXZlbCBsaWJzZWNjb21wLWRldmVsCgpGcm9tIDIw ZmI3ZDdkNzM4NzZkNGU0OTE4ZTNkOWYzM2U4ZGUwMjE4ZjI5OTkgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBU aHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAwOC84M10gbGli Z3dlYXRoZXI6IHVwZGF0ZSB0byAzLjM2LjEKCi0tLQogc3JjcGtncy9saWJnd2VhdGhlci90ZW1w bGF0ZSB8IDE1ICsrKysrKy0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygr KSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYmd3ZWF0aGVyL3RlbXBs YXRlIGIvc3JjcGtncy9saWJnd2VhdGhlci90ZW1wbGF0ZQppbmRleCAzNGM2NGQ2ZTNhMS4uZmNk YjU4Nzk1MDEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvbGliZ3dlYXRoZXIvdGVtcGxhdGUKKysrIGIv c3JjcGtncy9saWJnd2VhdGhlci90ZW1wbGF0ZQpAQCAtMSwxMyArMSwxMiBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnbGliZ3dlYXRoZXInCiBwa2duYW1lPWxpYmd3ZWF0aGVyCi12ZXJzaW9uPTMu MzYuMAordmVyc2lvbj0zLjM2LjEKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWls ZF9oZWxwZXI9ImdpciIKLWNvbmZpZ3VyZV9hcmdzPSItRGVuYWJsZV92YWxhPSQodm9wdF9pZiB2 YWxhIHRydWUgZmFsc2UpCi0gLURpbnRyb3NwZWN0aW9uPSQodm9wdF9pZiBnaXIgdHJ1ZSBmYWxz ZSkKK2NvbmZpZ3VyZV9hcmdzPSIkKHZvcHRfYm9vbCBnaXIgZW5hYmxlX3ZhbGEpICQodm9wdF9i b29sIGdpciBpbnRyb3NwZWN0aW9uKQogIC1Eem9uZWluZm9fZGlyPS91c3Ivc2hhcmUvem9uZWlu Zm8iCi1ob3N0bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgaW50bHRvb2wgcGtnLWNvbmZpZyAkKHZv cHRfaWYgdmFsYSB2YWxhKSIKK2hvc3RtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBpbnRsdG9vbCBw a2ctY29uZmlnICQodm9wdF9pZiBnaXIgdmFsYSkiCiBtYWtlZGVwZW5kcz0iZ2VvY29kZS1nbGli LWRldmVsIGd0ayszLWRldmVsIGxpYnNvdXAtZ25vbWUtZGV2ZWwiCiBjaGVja2RlcGVuZHM9InR6 ZGF0YSIKIHNob3J0X2Rlc2M9IkdOT01FIFdlYXRoZXIgaW5mb3JtYXRpb24gYWNjZXNzIGxpYnJh cnkiCkBAIC0xNSwxMCArMTQsMTAgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2 b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0 dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvTGliR1dlYXRoZXIiCiBkaXN0ZmlsZXM9IiR7 R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9u fS50YXIueHoiCi1jaGVja3N1bT1kMmZmZWVjMDE3ODhkMDNkMWJiZjM1MTEzZmMyZjA1NGM2YzM2 MDA3MjEwODhmODI3YmNjMzFlNWM2MDNhMzJkCitjaGVja3N1bT1kZTI3MDlmMGVlMjMzYjIwMTE2 ZDVmYTk4NjFkNDA2MDcxNzk4YzRhYTM3ODMwY2EyNWY1ZWYyYzAwODNlNDUwCiAKLWJ1aWxkX29w dGlvbnM9ImdpciB2YWxhIgotYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIgdmFsYSIKK2J1aWxk X29wdGlvbnM9ImdpciIKK2J1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgogCiBwb3N0X3BhdGNo KCkgewogCSMgVGhpcyB0ZXN0IHJlcXVpcmVzIExDX0lERU5USUZJQ0FUSU9OLCB3aGljaCBpcyBh IEdMSUJDJ3MgZXh0ZW5zaW9uCkBAIC0zNSw4ICszNCw2IEBAIGxpYmd3ZWF0aGVyLWRldmVsX3Bh Y2thZ2UoKSB7CiAJCXZtb3ZlICJ1c3IvbGliLyouc28iCiAJCWlmIFsgIiRidWlsZF9vcHRpb25f Z2lyIiBdOyB0aGVuCiAJCQl2bW92ZSB1c3Ivc2hhcmUvZ2lyLTEuMAotCQlmaQotCQlpZiBbICIk YnVpbGRfb3B0aW9uX3ZhbGEiIF07IHRoZW4KIAkJCXZtb3ZlIHVzci9zaGFyZS92YWxhCiAJCWZp CiAJfQoKRnJvbSBhYWYwMDcxMjRiNTg3NGYwNjM4M2YyZWRiNmUyNWUzMWM5NGNkNWZhIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdl Lm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFU Q0ggMDkvODNdIGdub21lLXNldHRpbmdzLWRhZW1vbjogdXBkYXRlIHRvIDMuMzcuMAoKLS0tCiAu Li4vcGF0Y2hlcy9sb2dpbmQtYmFja2xpZ2h0LnBhdGNoICAgICAgICAgICAgfCAxMzYgKysrKysr KysrKysrKysrKysrCiBzcmNwa2dzL2dub21lLXNldHRpbmdzLWRhZW1vbi90ZW1wbGF0ZSAgICAg ICAgfCAgMTEgKy0KIDIgZmlsZXMgY2hhbmdlZCwgMTQyIGluc2VydGlvbnMoKyksIDUgZGVsZXRp b25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbm9tZS1zZXR0aW5ncy1kYWVtb24v cGF0Y2hlcy9sb2dpbmQtYmFja2xpZ2h0LnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9t ZS1zZXR0aW5ncy1kYWVtb24vcGF0Y2hlcy9sb2dpbmQtYmFja2xpZ2h0LnBhdGNoIGIvc3JjcGtn cy9nbm9tZS1zZXR0aW5ncy1kYWVtb24vcGF0Y2hlcy9sb2dpbmQtYmFja2xpZ2h0LnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lNWNhNmJkNDNkZAotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvZ25vbWUtc2V0dGluZ3MtZGFlbW9uL3BhdGNoZXMvbG9naW5k LWJhY2tsaWdodC5wYXRjaApAQCAtMCwwICsxLDEzNiBAQAorRnJvbSAzODQ1YjNhN2I1OGYyNmVj NjhkYmMxYzQ1N2VhZDA2ZjQ4ODExODBiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTog RGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CitEYXRlOiBGcmksIDE0IEF1ZyAy MDIwIDE3OjQ4OjIxICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIFRoZSBuZXcgbG9naW5kIGJyaWdo dG5lc3MgY29kZSBkb2Vzbid0IHdvcmsgd2l0aCBlbG9naW5kLgorCitodHRwczovL2dpdGxhYi5n bm9tZS5vcmcvR05PTUUvZ25vbWUtc2V0dGluZ3MtZGFlbW9uLy0vY29tbWl0L2NkMDUxZTZjN2Nj ZmI3ZTdiMGVjNDQwNDA5YzU1OWIyZTUxMjg0ZTgKKy0tLQorIHBsdWdpbnMvcG93ZXIvZ3NkLWJh Y2tsaWdodC5jIHwgNzcgKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAxIGZp bGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCA3MCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdp dCBwbHVnaW5zL3Bvd2VyL2dzZC1iYWNrbGlnaHQuYyBwbHVnaW5zL3Bvd2VyL2dzZC1iYWNrbGln aHQuYworaW5kZXggY2E1ZjI3Mi4uNGFjYzJlNSAxMDA2NDQKKy0tLSBwbHVnaW5zL3Bvd2VyL2dz ZC1iYWNrbGlnaHQuYworKysrIHBsdWdpbnMvcG93ZXIvZ3NkLWJhY2tsaWdodC5jCitAQCAtNDAs OCArNDAsNiBAQCBzdHJ1Y3QgX0dzZEJhY2tsaWdodAorICAgICAgICAgZ2ludCBicmlnaHRuZXNz X3N0ZXA7CisgCisgI2lmZGVmIF9fbGludXhfXworLSAgICAgICAgR0RCdXNQcm94eSAqbG9naW5k X3Byb3h5OworLQorICAgICAgICAgR1VkZXZDbGllbnQgKnVkZXY7CisgICAgICAgICBHVWRldkRl dmljZSAqdWRldl9kZXZpY2U7CisgCitAQCAtNjEsMTAgKzU5LDYgQEAgZW51bSB7CisgICAgICAg ICBQUk9QX0xBU1QsCisgfTsKKyAKKy0jZGVmaW5lIFNZU1RFTURfREJVU19OQU1FICAgICAgICAg ICAgICAgICAgICAgICAib3JnLmZyZWVkZXNrdG9wLmxvZ2luMSIKKy0jZGVmaW5lIFNZU1RFTURf REJVU19QQVRIICAgICAgICAgICAgICAgICAgICAgICAiL29yZy9mcmVlZGVza3RvcC9sb2dpbjEv c2Vzc2lvbi9hdXRvIgorLSNkZWZpbmUgU1lTVEVNRF9EQlVTX0lOVEVSRkFDRSAgICAgICAgICAg ICAgICAgICJvcmcuZnJlZWRlc2t0b3AubG9naW4xLlNlc3Npb24iCistCisgc3RhdGljIEdQYXJh bVNwZWMgKnByb3BzW1BST1BfTEFTVF07CisgCisgc3RhdGljIHZvaWQgICAgIGdzZF9iYWNrbGln aHRfaW5pdGFibGVfaWZhY2VfaW5pdCAoR0luaXRhYmxlSWZhY2UgICppZmFjZSk7CitAQCAtNDgy LDMwICs0NzYsMTMgQEAgZ3NkX2JhY2tsaWdodF9zZXRfYnJpZ2h0bmVzc192YWxfYXN5bmMgKEdz ZEJhY2tsaWdodCAqYmFja2xpZ2h0LAorICAgICAgICAgaWYgKGJhY2tsaWdodC0+dWRldl9kZXZp Y2UgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICBCYWNrbGlnaHRIZWxwZXJEYXRhICp0YXNr X2RhdGE7CisgCistICAgICAgICAgICAgICAgIGlmIChiYWNrbGlnaHQtPmxvZ2luZF9wcm94eSkg eworLSAgICAgICAgICAgICAgICAgICAgICAgIGdfZGJ1c19wcm94eV9jYWxsIChiYWNrbGlnaHQt PmxvZ2luZF9wcm94eSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIlNldEJyaWdodG5lc3MiLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBnX3ZhcmlhbnRfbmV3ICgiKHNzdSkiLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYmFja2xpZ2h0IiwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ191ZGV2 X2RldmljZV9nZXRfbmFtZSAoYmFja2xpZ2h0LT51ZGV2X2RldmljZSksCistICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tsaWdodC0+ YnJpZ2h0bmVzc190YXJnZXQpLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBHX0RCVVNfQ0FMTF9GTEFHU19OT05FLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAtMSwgTlVMTCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTlVMTCwgTlVMTCk7CistCistICAgICAgICAgICAgICAgICAgICAg ICAgcGVyY2VudCA9IEFCU19UT19QRVJDRU5UQUdFIChiYWNrbGlnaHQtPmJyaWdodG5lc3NfbWlu LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YmFja2xpZ2h0LT5icmlnaHRuZXNzX21heCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tsaWdodC0+YnJpZ2h0bmVzc190YXJnZXQpOwor LSAgICAgICAgICAgICAgICAgICAgICAgIGdfdGFza19yZXR1cm5faW50ICh0YXNrLCBwZXJjZW50 KTsKKy0gICAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgICAgICB0 YXNrX2RhdGEgPSBnX25ldzAgKEJhY2tsaWdodEhlbHBlckRhdGEsIDEpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIHRhc2tfZGF0YS0+dmFsdWUgPSBiYWNrbGlnaHQtPmJyaWdodG5lc3NfdGFy Z2V0OworLSAgICAgICAgICAgICAgICAgICAgICAgIGdfdGFza19zZXRfdGFza19kYXRhICh0YXNr LCB0YXNrX2RhdGEsIGJhY2tsaWdodF90YXNrX2RhdGFfZGVzdHJveSk7CistCistICAgICAgICAg ICAgICAgICAgICAgICAgLyogVGFzayBpcyBzZXQgdXAgbm93LiBRdWV1ZSBpdCBhbmQgZW5zdXJl IHdlIGFyZSB3b3JraW5nIHNvbWV0aGluZy4gKi8KKy0gICAgICAgICAgICAgICAgICAgICAgICBn X3F1ZXVlX3B1c2hfdGFpbCAoJmJhY2tsaWdodC0+dGFza3MsIHRhc2spOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGdzZF9iYWNrbGlnaHRfcHJvY2Vzc190YXNrcXVldWUgKGJhY2tsaWdodCk7 CistICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAgdGFza19kYXRhID0gZ19uZXcw IChCYWNrbGlnaHRIZWxwZXJEYXRhLCAxKTsKKysgICAgICAgICAgICAgICAgdGFza19kYXRhLT52 YWx1ZSA9IGJhY2tsaWdodC0+YnJpZ2h0bmVzc190YXJnZXQ7CisrICAgICAgICAgICAgICAgIGdf dGFza19zZXRfdGFza19kYXRhICh0YXNrLCB0YXNrX2RhdGEsIGJhY2tsaWdodF90YXNrX2RhdGFf ZGVzdHJveSk7CisrCisrICAgICAgICAgICAgICAgIC8qIFRhc2sgaXMgc2V0IHVwIG5vdy4gUXVl dWUgaXQgYW5kIGVuc3VyZSB3ZSBhcmUgd29ya2luZyBzb21ldGhpbmcuICovCisrICAgICAgICAg ICAgICAgIGdfcXVldWVfcHVzaF90YWlsICgmYmFja2xpZ2h0LT50YXNrcywgdGFzayk7CisrICAg ICAgICAgICAgICAgIGdzZF9iYWNrbGlnaHRfcHJvY2Vzc190YXNrcXVldWUgKGJhY2tsaWdodCk7 CisgCisgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgIH0KK0BAIC04MjMsNyArODAw LDYgQEAgZ3NkX2JhY2tsaWdodF9pbml0YWJsZV9pbml0IChHSW5pdGFibGUgICAgICAgKmluaXRh YmxlLAorIHsKKyAgICAgICAgIEdzZEJhY2tsaWdodCAqYmFja2xpZ2h0ID0gR1NEX0JBQ0tMSUdI VCAoaW5pdGFibGUpOworICAgICAgICAgR25vbWVSUk91dHB1dCogb3V0cHV0ID0gTlVMTDsKKy0g ICAgICAgIEdFcnJvciAqbG9naW5kX2Vycm9yID0gTlVMTDsKKyAKKyAgICAgICAgIGlmIChjYW5j ZWxsYWJsZSAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwg KGVycm9yLCBHX0lPX0VSUk9SLCBHX0lPX0VSUk9SX05PVF9TVVBQT1JURUQsCitAQCAtODMyLDQ0 ICs4MDgsNiBAQCBnc2RfYmFja2xpZ2h0X2luaXRhYmxlX2luaXQgKEdJbml0YWJsZSAgICAgICAq aW5pdGFibGUsCisgICAgICAgICB9CisgCisgI2lmZGVmIF9fbGludXhfXworLSAgICAgICAgYmFj a2xpZ2h0LT5sb2dpbmRfcHJveHkgPQorLSAgICAgICAgICAgICAgICBnX2RidXNfcHJveHlfbmV3 X2Zvcl9idXNfc3luYyAoR19CVVNfVFlQRV9TWVNURU0sCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFNZU1RFTURfREJVU19OQU1FLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1lTVEVNRF9EQlVTX1BBVEgsCistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTWVNURU1EX0RCVVNfSU5U RVJGQUNFLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TlVMTCwgJmxvZ2luZF9lcnJvcik7CistICAgICAgICBpZiAoYmFja2xpZ2h0LT5sb2dpbmRfcHJv eHkpIHsKKy0gICAgICAgICAgICAgICAgLyogQ2hlY2sgdGhhdCB0aGUgU2V0QnJpZ2h0bmVzcyBt ZXRob2QgZG9lcyBleGlzdCAqLworLSAgICAgICAgICAgICAgICBnX2RidXNfcHJveHlfY2FsbF9z eW5jIChiYWNrbGlnaHQtPmxvZ2luZF9wcm94eSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIlNldEJyaWdodG5lc3MiLCBOVUxMLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBHX0RCVVNfQ0FMTF9GTEFHU19OT05FLCAtMSwKKy0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgJmxvZ2luZF9lcnJvcik7 CistCistICAgICAgICAgICAgICAgIGlmIChnX2Vycm9yX21hdGNoZXMgKGxvZ2luZF9lcnJvciwg R19EQlVTX0VSUk9SLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX0RC VVNfRVJST1JfSU5WQUxJRF9BUkdTKSkgeworLSAgICAgICAgICAgICAgICAgICAgICAgIC8qIFdl IGFyZSBjYWxsaW5nIHRoZSBtZXRob2Qgd2l0aCBubyBhcmd1bWVudHMsIHNvCistICAgICAgICAg ICAgICAgICAgICAgICAgICogdGhpcyBpcyBleHBlY3RlZC4KKy0gICAgICAgICAgICAgICAgICAg ICAgICAgKi8KKy0gICAgICAgICAgICAgICAgICAgICAgICBnX2NsZWFyX2Vycm9yICgmbG9naW5k X2Vycm9yKTsKKy0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChnX2Vycm9yX21hdGNoZXMgKGxv Z2luZF9lcnJvciwgR19EQlVTX0VSUk9SLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgR19EQlVTX0VSUk9SX1VOS05PV05fTUVUSE9EKSkgeworLSAgICAgICAg ICAgICAgICAgICAgICAgIC8qIHN5c3RlbWQgdmVyc2lvbiBpcyB0b28gb2xkLCBzbyBpZ25vcmUu CistICAgICAgICAgICAgICAgICAgICAgICAgICovCistICAgICAgICAgICAgICAgICAgICAgICAg Z19jbGVhcl9lcnJvciAoJmxvZ2luZF9lcnJvcik7CistICAgICAgICAgICAgICAgICAgICAgICAg Z19jbGVhcl9vYmplY3QgKCZiYWNrbGlnaHQtPmxvZ2luZF9wcm94eSk7CistICAgICAgICAgICAg ICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgLyogRmFpbCBvbiBhbnl0aGlu ZyBlbHNlICovCistICAgICAgICAgICAgICAgICAgICAgICAgZ19jbGVhcl9vYmplY3QgKCZiYWNr bGlnaHQtPmxvZ2luZF9wcm94eSk7CistICAgICAgICAgICAgICAgIH0KKy0gICAgICAgIH0KKy0K Ky0gICAgICAgIGlmIChsb2dpbmRfZXJyb3IpIHsKKy0gICAgICAgICAgICAgICAgZ193YXJuaW5n ICgiTm8gbG9naW5kIGZvdW5kOiAlcyIsIGxvZ2luZF9lcnJvci0+bWVzc2FnZSk7CistICAgICAg ICAgICAgICAgIGdfZXJyb3JfZnJlZSAobG9naW5kX2Vycm9yKTsKKy0gICAgICAgIH0KKy0KKyAg ICAgICAgIC8qIFRyeSBmaW5kaW5nIGEgdWRldiBkZXZpY2UuICovCisgICAgICAgICBpZiAoZ3Nk X2JhY2tsaWdodF91ZGV2X2luaXQgKGJhY2tsaWdodCkpCisgICAgICAgICAgICAgICAgIGdvdG8g Zm91bmQ7CitAQCAtOTExLDcgKzg0OSw2IEBAIGdzZF9iYWNrbGlnaHRfZmluYWxpemUgKEdPYmpl Y3QgKm9iamVjdCkKKyAjaWZkZWYgX19saW51eF9fCisgICAgICAgICBnX2Fzc2VydCAoYmFja2xp Z2h0LT5hY3RpdmVfdGFzayA9PSBOVUxMKTsKKyAgICAgICAgIGdfYXNzZXJ0IChnX3F1ZXVlX2lz X2VtcHR5ICgmYmFja2xpZ2h0LT50YXNrcykpOworLSAgICAgICAgZ19jbGVhcl9vYmplY3QgKCZi YWNrbGlnaHQtPmxvZ2luZF9wcm94eSk7CisgICAgICAgICBnX2NsZWFyX29iamVjdCAoJmJhY2ts aWdodC0+dWRldik7CisgICAgICAgICBnX2NsZWFyX29iamVjdCAoJmJhY2tsaWdodC0+dWRldl9k ZXZpY2UpOworICAgICAgICAgaWYgKGJhY2tsaWdodC0+aWRsZV91cGRhdGUpIHsKKy0tIAorMi4y OC4wCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtc2V0dGluZ3MtZGFlbW9uL3RlbXBsYXRl IGIvc3JjcGtncy9nbm9tZS1zZXR0aW5ncy1kYWVtb24vdGVtcGxhdGUKaW5kZXggYTcwZTI4YmU1 ZmEuLmYyNTQ1OWVjZTgyIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXNldHRpbmdzLWRhZW1v bi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLXNldHRpbmdzLWRhZW1vbi90ZW1wbGF0ZQpA QCAtMSwxMCArMSwxMSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtc2V0dGluZ3MtZGFl bW9uJwogcGtnbmFtZT1nbm9tZS1zZXR0aW5ncy1kYWVtb24KLXZlcnNpb249My4zNC4xCi1yZXZp c2lvbj0yCit2ZXJzaW9uPTMuMzcuMAorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGNv bmZpZ3VyZV9hcmdzKz0iLURzeXN0ZW1kPWZhbHNlIgotaG9zdG1ha2VkZXBlbmRzPSJjbWFrZSBk b2Nib29rLXhzbCBnbGliLWRldmVsIGxpYmdsaWItZGV2ZWwgbGlieHNsdCBwZXJsIHBrZy1jb25m aWciCitob3N0bWFrZWRlcGVuZHM9ImNtYWtlIGRvY2Jvb2steHNsIGdldHRleHQgZ2xpYi1kZXZl bCBsaWJnbGliLWRldmVsIGxpYnhzbHQKKyBwZXJsIHBrZy1jb25maWciCiBtYWtlZGVwZW5kcz0i TmV0d29ya01hbmFnZXItZGV2ZWwgYWxzYS1saWItZGV2ZWwgY29sb3JkLWRldmVsIGN1cHMtZGV2 ZWwgZ2NyLWRldmVsCiAgZ2VvY2x1ZTItZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbCBpYnVzLWRl dmVsIGxpYmNhbmJlcnJhLWRldmVsIGxpYmdub21la2JkLWRldmVsCiAgbGliZ3dlYXRoZXItZGV2 ZWwgbGlibm90aWZ5LWRldmVsIGxpYnJzdmctZGV2ZWwgbGlid2Fjb20tZGV2ZWwgbnNzLWRldmVs CkBAIC0xMiwxMyArMTMsMTMgQEAgbWFrZWRlcGVuZHM9Ik5ldHdvcmtNYW5hZ2VyLWRldmVsIGFs c2EtbGliLWRldmVsIGNvbG9yZC1kZXZlbCBjdXBzLWRldmVsIGdjci1kZXYKICB4Zjg2LWlucHV0 LXdhY29tLWRldmVsIgogZGVwZW5kcz0iaGljb2xvci1pY29uLXRoZW1lIHB1bHNlYXVkaW8iCiBj aGVja2RlcGVuZHM9ImVsb2dpbmQgbGlibm90aWZ5IHB5dGhvbjMtZGJ1c21vY2sgcHl0aG9uMy1n b2JqZWN0Ci0gcHl0aG9uMy1weWNvZGVzdHlsZSIKKyBweXRob24zLXB5Y29kZXN0eWxlIHdoaWNo IGh3aWRzIGV1ZGV2Igogc2hvcnRfZGVzYz0iR05PTUUgc2V0dGluZ3MgZGFlbW9uIgogbWFpbnRh aW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0z LjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2du b21lLXNldHRpbmdzLWRhZW1vbiIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9 LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTk5 ODFhMjBiYWJmOGRhNzc0NGI3ZmJlMTc1YjllMzYwNzhiZjA4ZjNiZjY1ZmU1YWVkZWI4MmNmZTI3 YWMxMWYKK2NoZWNrc3VtPWRmNzA5MzEzYjgwOTY4MDE2NTcwZjM0MWViYzMxZWVlODMyOWYzMTJj MDY4ZjY4MWMwYTE5NGFkOTRiMDBkZjAKIAogaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJ aG9zdG1ha2VkZXBlbmRzKz0iIHBvbGtpdCIKCkZyb20gYTExYWJkYzhhODFhYzg2ZjRhMGEyNTEz MzQ5MTk4MDU0NWYxOWUyMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtv bGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6 MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDEwLzgzXSBtdXR0ZXI6IHVwZGF0ZSB0byAzLjM3Ljkx CgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAx OCArLQogLi4uL3BhdGNoZXMvZml4LWNvZ2wtZWdsLWluY2x1ZGVzLnBhdGNoICAgICAgIHwgIDEx IC0KIHNyY3BrZ3MvbXV0dGVyL3BhdGNoZXMvcGlwZXdpcmUtMC4zLnBhdGNoICAgICB8IDUyMSAt LS0tLS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3MvbXV0dGVyL3RlbXBsYXRlICAgICAgICAgICAgICAg ICAgICAgICB8ICAzNCArLQogNCBmaWxlcyBjaGFuZ2VkLCAyOSBpbnNlcnRpb25zKCspLCA1NTUg ZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tdXR0ZXIvcGF0Y2hlcy9m aXgtY29nbC1lZ2wtaW5jbHVkZXMucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL211 dHRlci9wYXRjaGVzL3BpcGV3aXJlLTAuMy5wYXRjaAoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxp YnMgYi9jb21tb24vc2hsaWJzCmluZGV4IDkzZjU3YTY4NDI3Li40N2I2ODBjZTgzYSAxMDA2NDQK LS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC0zMDAzLDE1ICszMDAz LDE1IEBAIGxpYmRlY29yYXRpb24uc28uMCBjb21waXotY29yZS0wLjguMTRfMQogbGliY29tcGl6 Y29uZmlnLnNvLjAgbGliY29tcGl6Y29uZmlnLTAuOC4xNF8xCiBsaWJlbWVyYWxkZW5naW5lLnNv LjAgZW1lcmFsZC0wLjguMTRfMQogbGliaGFuZ3VsLnNvLjEgbGliaGFuZ3VsLTAuMS4wXzEKLWxp Ym11dHRlci01LnNvLjAgbXV0dGVyLTMuMzQuMV8xCi1saWJtdXR0ZXItY2x1dHRlci01LnNvIG11 dHRlci0zLjM0LjFfMQotbGlibXV0dGVyLWNsdXR0ZXItNS5zby4wIG11dHRlci0zLjM0LjFfMQot bGlibXV0dGVyLWNvZ2wtcGF0aC01LnNvIG11dHRlci0zLjM0LjFfMQotbGlibXV0dGVyLWNvZ2wt cGF0aC01LnNvLjAgbXV0dGVyLTMuMzQuMV8xCi1saWJtdXR0ZXItY29nbC01LnNvIG11dHRlci0z LjM0LjFfMQotbGlibXV0dGVyLWNvZ2wtNS5zby4wIG11dHRlci0zLjM0LjFfMQotbGlibXV0dGVy LWNvZ2wtcGFuZ28tNS5zbyBtdXR0ZXItMy4zNC4xXzEKLWxpYm11dHRlci1jb2dsLXBhbmdvLTUu c28uMCBtdXR0ZXItMy4zNC4xXzEKK2xpYm11dHRlci03LnNvLjAgbXV0dGVyLTMuMzcuOTBfMQor bGlibXV0dGVyLWNsdXR0ZXItNy5zbyBtdXR0ZXItMy4zNy45MF8xCitsaWJtdXR0ZXItY2x1dHRl ci03LnNvLjAgbXV0dGVyLTMuMzcuOTBfMQorbGlibXV0dGVyLWNvZ2wtcGF0aC03LnNvIG11dHRl ci0zLjM3LjkwXzEKK2xpYm11dHRlci1jb2dsLXBhdGgtNy5zby4wIG11dHRlci0zLjM3LjkwXzEK K2xpYm11dHRlci1jb2dsLTcuc28gbXV0dGVyLTMuMzcuOTBfMQorbGlibXV0dGVyLWNvZ2wtNy5z by4wIG11dHRlci0zLjM3LjkwXzEKK2xpYm11dHRlci1jb2dsLXBhbmdvLTcuc28gbXV0dGVyLTMu MzcuOTBfMQorbGlibXV0dGVyLWNvZ2wtcGFuZ28tNy5zby4wIG11dHRlci0zLjM3LjkwXzEKIGxp Ymdlb2NsdWUtMi5zby4wIGdlb2NsdWUyLTIuNC40XzEKIGxpYmdlcHViLnNvLjAgbGliZ2VwdWIt MC40XzEKIGxpYnNsb3B5LnNvLjcuNSBzbG9wLTcuNV8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL211 dHRlci9wYXRjaGVzL2ZpeC1jb2dsLWVnbC1pbmNsdWRlcy5wYXRjaCBiL3NyY3BrZ3MvbXV0dGVy L3BhdGNoZXMvZml4LWNvZ2wtZWdsLWluY2x1ZGVzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCBkOTA5ODg4ODdjMy4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9tdXR0ZXIv cGF0Y2hlcy9maXgtY29nbC1lZ2wtaW5jbHVkZXMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwx MSArMCwwIEBACi0tLS0gY29nbC9jb2dsL21lc29uLmJ1aWxkCTIwMTktMTAtMDggMTk6MTU6MTAu MDAwMDAwMDAwICswMjAwCi0rKysgY29nbC9jb2dsL21lc29uLmJ1aWxkCTIwMTktMTItMTYgMTU6 NDU6NDQuMDM3NjQwNTQ4ICswMTAwCi1AQCAtNDgsNyArNDgsNyBAQAotIGJ1aWx0X2hlYWRlcnMg Kz0gW2NvZ2xfZ2xfaGVhZGVyX2hdCi0gCi0gaWYgaGF2ZV9lZ2wKLS0gIGNvZ2xfZWdsX2luY2x1 ZGVzX3N0cmluZyA9ICcjaW5jbHVkZSA8RUdML2VnbC5oPlxuI2luY2x1ZGUgPEVHTC9lZ2xleHQu aD4nCi0rICBjb2dsX2VnbF9pbmNsdWRlc19zdHJpbmcgPSAnI2luY2x1ZGUgPEVHTC9lZ2wuaD5c biNpbmNsdWRlIDxFR0wvZWdsZXh0Lmg+XG4jaW5jbHVkZSA8RUdML2VnbG1lc2FleHQuaD4nCi0g ZWxzZQotICAgY29nbF9lZ2xfaW5jbHVkZXNfc3RyaW5nID0gJycKLSBlbmRpZgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9tdXR0ZXIvcGF0Y2hlcy9waXBld2lyZS0wLjMucGF0Y2ggYi9zcmNwa2dzL211 dHRlci9wYXRjaGVzL3BpcGV3aXJlLTAuMy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggZWJmZjY1ZmJhODUuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvbXV0dGVyL3BhdGNo ZXMvcGlwZXdpcmUtMC4zLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTIxICswLDAgQEAKLUJ1 aWxkIG11dHRlciBhZ2FpbnN0IHBpcGV3aXJlLTAuMywgYmFzZWQgb24gYSBwYXRjaCBhdDoKLWh0 dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9tdXR0ZXIvLS9tZXJnZV9yZXF1ZXN0cy8xMDYy Ci0tLS0gbWVzb24uYnVpbGQKLSsrKyBtZXNvbi5idWlsZAotQEAgLTUwLDcgKzUwLDcgQEAgbGli aW5wdXRfcmVxID0gJz49IDEuNycKLSBnYm1fcmVxID0gJz49IDEwLjMnCi0KLSAjIHNjcmVlbiBj YXN0IHZlcnNpb24gcmVxdWlyZW1lbnRzCi0tbGlicGlwZXdpcmVfcmVxID0gJz49IDAuMi41Jwot K2xpYnBpcGV3aXJlX3JlcSA9ICc+PSAwLjMuMCcKLQotIGdub21lID0gaW1wb3J0KCdnbm9tZScp Ci0gcGtnID0gaW1wb3J0KCdwa2djb25maWcnKQotQEAgLTI0MSw3ICsyNDEsNyBAQCBlbmRpZgot Ci0gaGF2ZV9yZW1vdGVfZGVza3RvcCA9IGdldF9vcHRpb24oJ3JlbW90ZV9kZXNrdG9wJykKLSBp ZiBoYXZlX3JlbW90ZV9kZXNrdG9wCi0tICBsaWJwaXBld2lyZV9kZXAgPSBkZXBlbmRlbmN5KCds aWJwaXBld2lyZS0wLjInLCB2ZXJzaW9uOiBsaWJwaXBld2lyZV9yZXEpCi0rICBsaWJwaXBld2ly ZV9kZXAgPSBkZXBlbmRlbmN5KCdsaWJwaXBld2lyZS0wLjMnLCB2ZXJzaW9uOiBsaWJwaXBld2ly ZV9yZXEpCi0gZW5kaWYKLQotIGhhdmVfaW50cm9zcGVjdGlvbiA9IGdldF9vcHRpb24oJ2ludHJv c3BlY3Rpb24nKQotZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kcy9tZXRhLXNjcmVlbi1jYXN0LXN0 cmVhbS1zcmMuYyBiL3NyYy9iYWNrZW5kcy9tZXRhLXNjcmVlbi1jYXN0LXN0cmVhbS1zcmMuYwot aW5kZXggODJjNWNiYTQzNi4uYmExY2U5NGE3ZSAxMDA2NDQKLS0tLSBzcmMvYmFja2VuZHMvbWV0 YS1zY3JlZW4tY2FzdC1zdHJlYW0tc3JjLmMKLSsrKyBzcmMvYmFja2VuZHMvbWV0YS1zY3JlZW4t Y2FzdC1zdHJlYW0tc3JjLmMKLUBAIC0yOSw2ICsyOSw3IEBACi0gI2luY2x1ZGUgPHNwYS9wYXJh bS9wcm9wcy5oPgotICNpbmNsdWRlIDxzcGEvcGFyYW0vZm9ybWF0LXV0aWxzLmg+Ci0gI2luY2x1 ZGUgPHNwYS9wYXJhbS92aWRlby9mb3JtYXQtdXRpbHMuaD4KLSsjaW5jbHVkZSA8c3BhL3V0aWxz L3Jlc3VsdC5oPgotICNpbmNsdWRlIDxzdGRpbnQuaD4KLSAjaW5jbHVkZSA8c3lzL21tYW4uaD4K LQotQEAgLTYyLDE1ICs2Myw2IEBAIGVudW0KLQotIHN0YXRpYyBndWludCBzaWduYWxzW05fU0lH TkFMU107Ci0KLS10eXBlZGVmIHN0cnVjdCBfTWV0YVNwYVR5cGUKLS17Ci0tICBzdHJ1Y3Qgc3Bh X3R5cGVfbWVkaWFfdHlwZSBtZWRpYV90eXBlOwotLSAgc3RydWN0IHNwYV90eXBlX21lZGlhX3N1 YnR5cGUgbWVkaWFfc3VidHlwZTsKLS0gIHN0cnVjdCBzcGFfdHlwZV9mb3JtYXRfdmlkZW8gZm9y bWF0X3ZpZGVvOwotLSAgc3RydWN0IHNwYV90eXBlX3ZpZGVvX2Zvcm1hdCB2aWRlb19mb3JtYXQ7 Ci0tICB1aW50MzJfdCBtZXRhX2N1cnNvcjsKLS19IE1ldGFTcGFUeXBlOwotLQotIHR5cGVkZWYg c3RydWN0IF9NZXRhUGlwZVdpcmVTb3VyY2UKLSB7Ci0gICBHU291cmNlIGJhc2U7Ci1AQCAtODIs MTkgKzc0LDE5IEBAIHR5cGVkZWYgc3RydWN0IF9NZXRhU2NyZWVuQ2FzdFN0cmVhbVNyY1ByaXZh dGUKLSB7Ci0gICBNZXRhU2NyZWVuQ2FzdFN0cmVhbSAqc3RyZWFtOwotCi0rICBzdHJ1Y3QgcHdf Y29udGV4dCAqcGlwZXdpcmVfY29udGV4dDsKLSAgIHN0cnVjdCBwd19jb3JlICpwaXBld2lyZV9j b3JlOwotLSAgc3RydWN0IHB3X3JlbW90ZSAqcGlwZXdpcmVfcmVtb3RlOwotLSAgc3RydWN0IHB3 X3R5cGUgKnBpcGV3aXJlX3R5cGU7Ci0gICBNZXRhUGlwZVdpcmVTb3VyY2UgKnBpcGV3aXJlX3Nv dXJjZTsKLS0gIHN0cnVjdCBzcGFfaG9vayBwaXBld2lyZV9yZW1vdGVfbGlzdGVuZXI7Ci0rICBz dHJ1Y3Qgc3BhX2hvb2sgcGlwZXdpcmVfY29yZV9saXN0ZW5lcjsKLQotICAgZ2Jvb2xlYW4gaXNf ZW5hYmxlZDsKLQotICAgc3RydWN0IHB3X3N0cmVhbSAqcGlwZXdpcmVfc3RyZWFtOwotICAgc3Ry dWN0IHNwYV9ob29rIHBpcGV3aXJlX3N0cmVhbV9saXN0ZW5lcjsKLSsgIHVpbnQzMl90IG5vZGVf aWQ7Ci0KLS0gIE1ldGFTcGFUeXBlIHNwYV90eXBlOwotICAgc3RydWN0IHNwYV92aWRlb19pbmZv X3JhdyB2aWRlb19mb3JtYXQ7Ci0rICBpbnQgdmlkZW9fc3RyaWRlOwotCi0gICB1aW50NjRfdCBs YXN0X2ZyYW1lX3RpbWVzdGFtcF91czsKLQotQEAgLTExMiw4ICsxMDQsNiBAQCBHX0RFRklORV9U WVBFX1dJVEhfQ09ERSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1f c3JjX2luaXRfaW5pdGFibGVfaWZhY2UpCi0gICAgICAgICAgICAgICAgICAgICAgICAgIEdfQURE X1BSSVZBVEUgKE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjKSkKLQotLSNkZWZpbmUgUFJPUF9SQU5H RShtaW4sIG1heCkgMiwgKG1pbiksIChtYXgpCi0tCi0gc3RhdGljIHZvaWQKLSBtZXRhX3NjcmVl bl9jYXN0X3N0cmVhbV9zcmNfZ2V0X3NwZWNzIChNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyYyAqc3Jj LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAgICAgICAgICAg ICAgICAgICAgICp3aWR0aCwKLUBAIC0yODYsOSArMjc2LDYgQEAgbWV0YV9zY3JlZW5fY2FzdF9z dHJlYW1fc3JjX3NldF9lbXB0eV9jdXJzb3Jfc3ByaXRlX21ldGFkYXRhIChNZXRhU2NyZWVuQ2Fz dFN0cmUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGludCAgICAgICAgICAgICAgICAgICAgICB4LAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICAgICAg ICAgICAgICAgICAgICAgIHkpCi0gewotLSAgTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmNQcml2YXRl ICpwcml2ID0KLS0gICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2dldF9pbnN0YW5jZV9w cml2YXRlIChzcmMpOwotLSAgTWV0YVNwYVR5cGUgKnNwYV90eXBlID0gJnByaXYtPnNwYV90eXBl OwotICAgc3RydWN0IHNwYV9tZXRhX2JpdG1hcCAqc3BhX21ldGFfYml0bWFwOwotCi0gICBzcGFf bWV0YV9jdXJzb3ItPmlkID0gMTsKLUBAIC0zMDAsNyArMjg3LDcgQEAgbWV0YV9zY3JlZW5fY2Fz dF9zdHJlYW1fc3JjX3NldF9lbXB0eV9jdXJzb3Jfc3ByaXRlX21ldGFkYXRhIChNZXRhU2NyZWVu Q2FzdFN0cmUKLSAgIHNwYV9tZXRhX2JpdG1hcCA9IFNQQV9NRU1CRVIgKHNwYV9tZXRhX2N1cnNv ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYV9tZXRhX2N1cnNvci0+Yml0 bWFwX29mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzcGFf bWV0YV9iaXRtYXApOwotLSAgc3BhX21ldGFfYml0bWFwLT5mb3JtYXQgPSBzcGFfdHlwZS0+dmlk ZW9fZm9ybWF0LlJHQkE7Ci0rICBzcGFfbWV0YV9iaXRtYXAtPmZvcm1hdCA9IFNQQV9WSURFT19G T1JNQVRfUkdCQTsKLSAgIHNwYV9tZXRhX2JpdG1hcC0+b2Zmc2V0ID0gc2l6ZW9mIChzdHJ1Y3Qg c3BhX21ldGFfYml0bWFwKTsKLQotICAgc3BhX21ldGFfY3Vyc29yLT5ob3RzcG90LnggPSAwOwot QEAgLTMxNyw5ICszMDQsNiBAQCBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfc2V0X2N1cnNv cl9zcHJpdGVfbWV0YWRhdGEgKE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgICAgICAgICAg ICAgICAgICAgICAgeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGZsb2F0ICAgICAgICAgICAgICAgICAgICBzY2FsZSkKLSB7Ci0tICBN ZXRhU2NyZWVuQ2FzdFN0cmVhbVNyY1ByaXZhdGUgKnByaXYgPQotLSAgICBtZXRhX3NjcmVlbl9j YXN0X3N0cmVhbV9zcmNfZ2V0X2luc3RhbmNlX3ByaXZhdGUgKHNyYyk7Ci0tICBNZXRhU3BhVHlw ZSAqc3BhX3R5cGUgPSAmcHJpdi0+c3BhX3R5cGU7Ci0gICBDb2dsVGV4dHVyZSAqY3Vyc29yX3Rl eHR1cmU7Ci0gICBzdHJ1Y3Qgc3BhX21ldGFfYml0bWFwICpzcGFfbWV0YV9iaXRtYXA7Ci0gICBp bnQgaG90c3BvdF94LCBob3RzcG90X3k7Ci1AQCAtMzQ2LDcgKzMzMCw3IEBAIG1ldGFfc2NyZWVu X2Nhc3Rfc3RyZWFtX3NyY19zZXRfY3Vyc29yX3Nwcml0ZV9tZXRhZGF0YSAoTWV0YVNjcmVlbkNh c3RTdHJlYW1TcmMKLSAgIHNwYV9tZXRhX2JpdG1hcCA9IFNQQV9NRU1CRVIgKHNwYV9tZXRhX2N1 cnNvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYV9tZXRhX2N1cnNvci0+ Yml0bWFwX29mZnNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBz cGFfbWV0YV9iaXRtYXApOwotLSAgc3BhX21ldGFfYml0bWFwLT5mb3JtYXQgPSBzcGFfdHlwZS0+ dmlkZW9fZm9ybWF0LlJHQkE7Ci0rICBzcGFfbWV0YV9iaXRtYXAtPmZvcm1hdCA9IFNQQV9WSURF T19GT1JNQVRfUkdCQTsKLSAgIHNwYV9tZXRhX2JpdG1hcC0+b2Zmc2V0ID0gc2l6ZW9mIChzdHJ1 Y3Qgc3BhX21ldGFfYml0bWFwKTsKLQotICAgbWV0YV9jdXJzb3Jfc3ByaXRlX2dldF9ob3RzcG90 IChjdXJzb3Jfc3ByaXRlLCAmaG90c3BvdF94LCAmaG90c3BvdF95KTsKLUBAIC0zODIsMTIgKzM2 NiwxMCBAQCBzdGF0aWMgdm9pZAotIGFkZF9jdXJzb3JfbWV0YWRhdGEgKE1ldGFTY3JlZW5DYXN0 U3RyZWFtU3JjICpzcmMsCi0gICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNwYV9idWZmZXIg ICAgICAgKnNwYV9idWZmZXIpCi0gewotLSAgTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmNQcml2YXRl ICpwcml2ID0KLS0gICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2dldF9pbnN0YW5jZV9w cml2YXRlIChzcmMpOwotLSAgTWV0YVNwYVR5cGUgKnNwYV90eXBlID0gJnByaXYtPnNwYV90eXBl OwotICAgc3RydWN0IHNwYV9tZXRhX2N1cnNvciAqc3BhX21ldGFfY3Vyc29yOwotCi0tICBzcGFf bWV0YV9jdXJzb3IgPSBzcGFfYnVmZmVyX2ZpbmRfbWV0YSAoc3BhX2J1ZmZlciwgc3BhX3R5cGUt Pm1ldGFfY3Vyc29yKTsKLSsgIHNwYV9tZXRhX2N1cnNvciA9IHNwYV9idWZmZXJfZmluZF9tZXRh X2RhdGEgKHNwYV9idWZmZXIsIFNQQV9NRVRBX0N1cnNvciwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZiAoKnNwYV9tZXRhX2N1cnNvcikpOwot ICAgaWYgKHNwYV9tZXRhX2N1cnNvcikKLSAgICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3Jj X3NldF9jdXJzb3JfbWV0YWRhdGEgKHNyYywgc3BhX21ldGFfY3Vyc29yKTsKLSB9Ci1AQCAtNDQ3 LDE0ICs0MjksMTQgQEAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX21heWJlX3JlY29yZF9m cmFtZSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgKnNyYykKLSAgICAgewotICAgICAgIGRhdGEg PSBzcGFfYnVmZmVyLT5kYXRhc1swXS5kYXRhOwotICAgICB9Ci0tICBlbHNlIGlmIChzcGFfYnVm ZmVyLT5kYXRhc1swXS50eXBlID09IHByaXYtPnBpcGV3aXJlX3R5cGUtPmRhdGEuTWVtRmQpCi0r ICBlbHNlIGlmIChzcGFfYnVmZmVyLT5kYXRhc1swXS50eXBlID09IFNQQV9EQVRBX01lbUZkKQot ICAgICB7Ci0gICAgICAgbWFwID0gbW1hcCAoTlVMTCwgc3BhX2J1ZmZlci0+ZGF0YXNbMF0ubWF4 c2l6ZSArIHNwYV9idWZmZXItPmRhdGFzWzBdLm1hcG9mZnNldCwKLSAgICAgICAgICAgICAgICAg ICBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLCBNQVBfU0hBUkVELAotICAgICAgICAgICAgICAgICAg IHNwYV9idWZmZXItPmRhdGFzWzBdLmZkLCAwKTsKLSAgICAgICBpZiAobWFwID09IE1BUF9GQUlM RUQpCi0gICAgICAgICB7Ci0tICAgICAgICAgIGdfd2FybmluZyAoIkZhaWxlZCB0byBtbWFwIHBp cGV3aXJlIHN0cmVhbSBidWZmZXI6ICVzXG4iLAotKyAgICAgICAgICBnX3dhcm5pbmcgKCJGYWls ZWQgdG8gbW1hcCBwaXBld2lyZSBzdHJlYW0gYnVmZmVyOiAlcyIsCi0gICAgICAgICAgICAgICAg ICAgICAgc3RyZXJyb3IgKGVycm5vKSk7Ci0gICAgICAgICAgIHJldHVybjsKLSAgICAgICAgIH0K LUBAIC00NjksMjggKzQ1MSwzMCBAQCBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfbWF5YmVf cmVjb3JkX2ZyYW1lIChNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyYyAqc3JjKQotCi0gICBpZiAobWV0 YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX3JlY29yZF9mcmFtZSAoc3JjLCBkYXRhKSkKLSAgICAg ewotLSAgICAgIHN0cnVjdCBzcGFfbWV0YV92aWRlb19jcm9wICpzcGFfbWV0YV92aWRlb19jcm9w OwotKyAgICAgIHN0cnVjdCBzcGFfbWV0YV9yZWdpb24gKnNwYV9tZXRhX3ZpZGVvX2Nyb3A7Ci0K LSAgICAgICBzcGFfYnVmZmVyLT5kYXRhc1swXS5jaHVuay0+c2l6ZSA9IHNwYV9idWZmZXItPmRh dGFzWzBdLm1heHNpemU7Ci0rICAgICAgc3BhX2J1ZmZlci0+ZGF0YXNbMF0uY2h1bmstPnN0cmlk ZSA9IHByaXYtPnZpZGVvX3N0cmlkZTsKLQotICAgICAgIC8qIFVwZGF0ZSBWaWRlb0Nyb3AgaWYg bmVlZGVkICovCi0gICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcCA9Ci0tICAgICAgICBzcGFfYnVm ZmVyX2ZpbmRfbWV0YSAoc3BhX2J1ZmZlciwgcHJpdi0+cGlwZXdpcmVfdHlwZS0+bWV0YS5WaWRl b0Nyb3ApOwotKyAgICAgICAgc3BhX2J1ZmZlcl9maW5kX21ldGFfZGF0YSAoc3BhX2J1ZmZlciwg U1BBX01FVEFfVmlkZW9Dcm9wLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2l6ZW9mICgqc3BhX21ldGFfdmlkZW9fY3JvcCkpOwotICAgICAgIGlmIChzcGFfbWV0YV92aWRl b19jcm9wKQotICAgICAgICAgewotICAgICAgICAgICBpZiAobWV0YV9zY3JlZW5fY2FzdF9zdHJl YW1fc3JjX2dldF92aWRlb2Nyb3AgKHNyYywgJmNyb3BfcmVjdCkpCi0gICAgICAgICAgICAgewot LSAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+eCA9IGNyb3BfcmVjdC54OwotLSAg ICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+eSA9IGNyb3BfcmVjdC55OwotLSAgICAg ICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+d2lkdGggPSBjcm9wX3JlY3Qud2lkdGg7Ci0t ICAgICAgICAgICAgICBzcGFfbWV0YV92aWRlb19jcm9wLT5oZWlnaHQgPSBjcm9wX3JlY3QuaGVp Z2h0OwotKyAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+cmVnaW9uLnBvc2l0aW9u LnggPSBjcm9wX3JlY3QueDsKLSsgICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnJl Z2lvbi5wb3NpdGlvbi55ID0gY3JvcF9yZWN0Lnk7Ci0rICAgICAgICAgICAgICBzcGFfbWV0YV92 aWRlb19jcm9wLT5yZWdpb24uc2l6ZS53aWR0aCA9IGNyb3BfcmVjdC53aWR0aDsKLSsgICAgICAg ICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnJlZ2lvbi5zaXplLmhlaWdodCA9IGNyb3BfcmVj dC5oZWlnaHQ7Ci0gICAgICAgICAgICAgfQotICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAg ewotLSAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+eCA9IDA7Ci0tICAgICAgICAg ICAgICBzcGFfbWV0YV92aWRlb19jcm9wLT55ID0gMDsKLS0gICAgICAgICAgICAgIHNwYV9tZXRh X3ZpZGVvX2Nyb3AtPndpZHRoID0gcHJpdi0+c3RyZWFtX3dpZHRoOwotLSAgICAgICAgICAgICAg c3BhX21ldGFfdmlkZW9fY3JvcC0+aGVpZ2h0ID0gcHJpdi0+c3RyZWFtX2hlaWdodDsKLSsgICAg ICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnJlZ2lvbi5wb3NpdGlvbi54ID0gMDsKLSsg ICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnJlZ2lvbi5wb3NpdGlvbi55ID0gMDsK LSsgICAgICAgICAgICAgIHNwYV9tZXRhX3ZpZGVvX2Nyb3AtPnJlZ2lvbi5zaXplLndpZHRoID0g cHJpdi0+c3RyZWFtX3dpZHRoOwotKyAgICAgICAgICAgICAgc3BhX21ldGFfdmlkZW9fY3JvcC0+ cmVnaW9uLnNpemUuaGVpZ2h0ID0gcHJpdi0+c3RyZWFtX2hlaWdodDsKLSAgICAgICAgICAgICB9 Ci0gICAgICAgICB9Ci0gICAgIH0KLUBAIC01NTUsNyArNTM5LDYgQEAgb25fc3RyZWFtX3N0YXRl X2NoYW5nZWQgKHZvaWQgICAgICAgICAgICAgICAgICpkYXRhLAotICAgTWV0YVNjcmVlbkNhc3RT dHJlYW1TcmMgKnNyYyA9IGRhdGE7Ci0gICBNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyY1ByaXZhdGUg KnByaXYgPQotICAgICBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZ2V0X2luc3RhbmNlX3By aXZhdGUgKHNyYyk7Ci0tICB1aW50MzJfdCBub2RlX2lkOwotCi0gICBzd2l0Y2ggKHN0YXRlKQot ICAgICB7Ci1AQCAtNTYzLDE0ICs1NDYsMTIgQEAgb25fc3RyZWFtX3N0YXRlX2NoYW5nZWQgKHZv aWQgICAgICAgICAgICAgICAgICpkYXRhLAotICAgICAgIGdfd2FybmluZyAoInBpcGV3aXJlIHN0 cmVhbSBlcnJvcjogJXMiLCBlcnJvcl9tZXNzYWdlKTsKLSAgICAgICBtZXRhX3NjcmVlbl9jYXN0 X3N0cmVhbV9zcmNfbm90aWZ5X2Nsb3NlZCAoc3JjKTsKLSAgICAgICBicmVhazsKLS0gICAgY2Fz ZSBQV19TVFJFQU1fU1RBVEVfQ09ORklHVVJFOgotLSAgICAgIG5vZGVfaWQgPSBwd19zdHJlYW1f Z2V0X25vZGVfaWQgKHByaXYtPnBpcGV3aXJlX3N0cmVhbSk7Ci0tICAgICAgZ19zaWduYWxfZW1p dCAoc3JjLCBzaWduYWxzW1JFQURZXSwgMCwgKHVuc2lnbmVkIGludCkgbm9kZV9pZCk7Ci0tICAg ICAgYnJlYWs7Ci0tICAgIGNhc2UgUFdfU1RSRUFNX1NUQVRFX1VOQ09OTkVDVEVEOgotLSAgICBj YXNlIFBXX1NUUkVBTV9TVEFURV9DT05ORUNUSU5HOgotLSAgICBjYXNlIFBXX1NUUkVBTV9TVEFU RV9SRUFEWToKLSAgICAgY2FzZSBQV19TVFJFQU1fU1RBVEVfUEFVU0VEOgotKyAgICAgIGlmIChw cml2LT5ub2RlX2lkID09IFNQQV9JRF9JTlZBTElEICYmIHByaXYtPnBpcGV3aXJlX3N0cmVhbSkK LSsgICAgICAgIHsKLSsgICAgICAgICAgcHJpdi0+bm9kZV9pZCA9IHB3X3N0cmVhbV9nZXRfbm9k ZV9pZCAocHJpdi0+cGlwZXdpcmVfc3RyZWFtKTsKLSsgICAgICAgICAgZ19zaWduYWxfZW1pdCAo c3JjLCBzaWduYWxzW1JFQURZXSwgMCwgKHVuc2lnbmVkIGludCkgcHJpdi0+bm9kZV9pZCk7Ci0r ICAgICAgICB9Ci0gICAgICAgaWYgKG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19pc19lbmFi bGVkIChzcmMpKQotICAgICAgICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2Rpc2FibGUg KHNyYyk7Ci0gICAgICAgYnJlYWs7Ci1AQCAtNTc4LDY4ICs1NTksNjkgQEAgb25fc3RyZWFtX3N0 YXRlX2NoYW5nZWQgKHZvaWQgICAgICAgICAgICAgICAgICpkYXRhLAotICAgICAgIGlmICghbWV0 YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2lzX2VuYWJsZWQgKHNyYykpCi0gICAgICAgICBtZXRh X3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZW5hYmxlIChzcmMpOwotICAgICAgIGJyZWFrOwotKyAg ICBjYXNlIFBXX1NUUkVBTV9TVEFURV9VTkNPTk5FQ1RFRDoKLSsgICAgY2FzZSBQV19TVFJFQU1f U1RBVEVfQ09OTkVDVElORzoKLSsgICAgICBicmVhazsKLSAgICAgfQotIH0KLQotIHN0YXRpYyB2 b2lkCi0tb25fc3RyZWFtX2Zvcm1hdF9jaGFuZ2VkICh2b2lkICAgICAgICAgICAgICAgICAqZGF0 YSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBzcGFfcG9kICpmb3Jt YXQpCi0rb25fc3RyZWFtX3BhcmFtX2NoYW5nZWQgKHZvaWQgICAgICAgICAgICAgICAgICpkYXRh LAotKyAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAgICAgICAgICAgICAgaWQsCi0r ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBzcGFfcG9kICpmb3JtYXQpCi0g ewotICAgTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgKnNyYyA9IGRhdGE7Ci0gICBNZXRhU2NyZWVu Q2FzdFN0cmVhbVNyY1ByaXZhdGUgKnByaXYgPQotICAgICBtZXRhX3NjcmVlbl9jYXN0X3N0cmVh bV9zcmNfZ2V0X2luc3RhbmNlX3ByaXZhdGUgKHNyYyk7Ci0tICBzdHJ1Y3QgcHdfdHlwZSAqcGlw ZXdpcmVfdHlwZSA9IHByaXYtPnBpcGV3aXJlX3R5cGU7Ci0gICB1aW50OF90IHBhcmFtc19idWZm ZXJbMTAyNF07Ci0gICBpbnQzMl90IHdpZHRoLCBoZWlnaHQsIHN0cmlkZSwgc2l6ZTsKLSAgIHN0 cnVjdCBzcGFfcG9kX2J1aWxkZXIgcG9kX2J1aWxkZXI7Ci0gICBjb25zdCBzdHJ1Y3Qgc3BhX3Bv ZCAqcGFyYW1zWzNdOwotICAgY29uc3QgaW50IGJwcCA9IDQ7Ci0KLS0gIGlmICghZm9ybWF0KQot LSAgICB7Ci0tICAgICAgcHdfc3RyZWFtX2ZpbmlzaF9mb3JtYXQgKHByaXYtPnBpcGV3aXJlX3N0 cmVhbSwgMCwgTlVMTCwgMCk7Ci0tICAgICAgcmV0dXJuOwotLSAgICB9Ci0rICBpZiAoIWZvcm1h dCB8fCBpZCAhPSBTUEFfUEFSQU1fRm9ybWF0KQotKyAgICByZXR1cm47Ci0KLSAgIHNwYV9mb3Jt YXRfdmlkZW9fcmF3X3BhcnNlIChmb3JtYXQsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJnByaXYtPnZpZGVvX2Zvcm1hdCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm cHJpdi0+c3BhX3R5cGUuZm9ybWF0X3ZpZGVvKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmcHJpdi0+dmlkZW9fZm9ybWF0KTsKLQotICAgd2lkdGggPSBwcml2LT52aWRlb19mb3Jt YXQuc2l6ZS53aWR0aDsKLSAgIGhlaWdodCA9IHByaXYtPnZpZGVvX2Zvcm1hdC5zaXplLmhlaWdo dDsKLSAgIHN0cmlkZSA9IFNQQV9ST1VORF9VUF9OICh3aWR0aCAqIGJwcCwgNCk7Ci0gICBzaXpl ID0gaGVpZ2h0ICogc3RyaWRlOwotCi0rICBwcml2LT52aWRlb19zdHJpZGUgPSBzdHJpZGU7Ci0r Ci0gICBwb2RfYnVpbGRlciA9IFNQQV9QT0RfQlVJTERFUl9JTklUIChwYXJhbXNfYnVmZmVyLCBz aXplb2YgKHBhcmFtc19idWZmZXIpKTsKLQotLSAgcGFyYW1zWzBdID0gc3BhX3BvZF9idWlsZGVy X29iamVjdCAoCi0rICBwYXJhbXNbMF0gPSBzcGFfcG9kX2J1aWxkZXJfYWRkX29iamVjdCAoCi0g ICAgICZwb2RfYnVpbGRlciwKLS0gICAgcGlwZXdpcmVfdHlwZS0+cGFyYW0uaWRCdWZmZXJzLCBw aXBld2lyZV90eXBlLT5wYXJhbV9idWZmZXJzLkJ1ZmZlcnMsCi0tICAgICI6IiwgcGlwZXdpcmVf dHlwZS0+cGFyYW1fYnVmZmVycy5zaXplLCAiaSIsIHNpemUsCi0tICAgICI6IiwgcGlwZXdpcmVf dHlwZS0+cGFyYW1fYnVmZmVycy5zdHJpZGUsICJpIiwgc3RyaWRlLAotLSAgICAiOiIsIHBpcGV3 aXJlX3R5cGUtPnBhcmFtX2J1ZmZlcnMuYnVmZmVycywgImlydSIsIDE2LCBQUk9QX1JBTkdFICgy LCAxNiksCi0tICAgICI6IiwgcGlwZXdpcmVfdHlwZS0+cGFyYW1fYnVmZmVycy5hbGlnbiwgImki LCAxNik7Ci0tCi0tICBwYXJhbXNbMV0gPSBzcGFfcG9kX2J1aWxkZXJfb2JqZWN0ICgKLSsgICAg U1BBX1RZUEVfT0JKRUNUX1BhcmFtQnVmZmVycywgU1BBX1BBUkFNX0J1ZmZlcnMsCi0rICAgIFNQ QV9QQVJBTV9CVUZGRVJTX2J1ZmZlcnMsIFNQQV9QT0RfQ0hPSUNFX1JBTkdFX0ludCAoMTYsIDIs IDE2KSwKLSsgICAgU1BBX1BBUkFNX0JVRkZFUlNfYmxvY2tzLCBTUEFfUE9EX0ludCAoMSksCi0r ICAgIFNQQV9QQVJBTV9CVUZGRVJTX3NpemUsIFNQQV9QT0RfSW50IChzaXplKSwKLSsgICAgU1BB X1BBUkFNX0JVRkZFUlNfc3RyaWRlLCBTUEFfUE9EX0ludCAoc3RyaWRlKSwKLSsgICAgU1BBX1BB UkFNX0JVRkZFUlNfYWxpZ24sIFNQQV9QT0RfSW50ICgxNikpOwotKwotKyAgcGFyYW1zWzFdID0g c3BhX3BvZF9idWlsZGVyX2FkZF9vYmplY3QgKAotICAgICAmcG9kX2J1aWxkZXIsCi0tICAgIHBp cGV3aXJlX3R5cGUtPnBhcmFtLmlkTWV0YSwgcGlwZXdpcmVfdHlwZS0+cGFyYW1fbWV0YS5NZXRh LAotLSAgICAiOiIsIHBpcGV3aXJlX3R5cGUtPnBhcmFtX21ldGEudHlwZSwgIkkiLCBwaXBld2ly ZV90eXBlLT5tZXRhLlZpZGVvQ3JvcCwKLS0gICAgIjoiLCBwaXBld2lyZV90eXBlLT5wYXJhbV9t ZXRhLnNpemUsICJpIiwgc2l6ZW9mIChzdHJ1Y3Qgc3BhX21ldGFfdmlkZW9fY3JvcCkpOwotKyAg ICBTUEFfVFlQRV9PQkpFQ1RfUGFyYW1NZXRhLCBTUEFfUEFSQU1fTWV0YSwKLSsgICAgU1BBX1BB UkFNX01FVEFfdHlwZSwgU1BBX1BPRF9JZCAoU1BBX01FVEFfVmlkZW9Dcm9wKSwKLSsgICAgU1BB X1BBUkFNX01FVEFfc2l6ZSwgU1BBX1BPRF9JbnQgKHNpemVvZiAoc3RydWN0IHNwYV9tZXRhX3Jl Z2lvbikpKTsKLQotLSAgcGFyYW1zWzJdID0gc3BhX3BvZF9idWlsZGVyX29iamVjdCAoCi0rICBw YXJhbXNbMl0gPSBzcGFfcG9kX2J1aWxkZXJfYWRkX29iamVjdCAoCi0gICAgICZwb2RfYnVpbGRl ciwKLS0gICAgcGlwZXdpcmVfdHlwZS0+cGFyYW0uaWRNZXRhLCBwaXBld2lyZV90eXBlLT5wYXJh bV9tZXRhLk1ldGEsCi0tICAgICI6IiwgcGlwZXdpcmVfdHlwZS0+cGFyYW1fbWV0YS50eXBlLCAi SSIsIHByaXYtPnNwYV90eXBlLm1ldGFfY3Vyc29yLAotLSAgICAiOiIsIHBpcGV3aXJlX3R5cGUt PnBhcmFtX21ldGEuc2l6ZSwgImkiLCBDVVJTT1JfTUVUQV9TSVpFICg2NCwgNjQpKTsKLSsgICAg U1BBX1RZUEVfT0JKRUNUX1BhcmFtTWV0YSwgU1BBX1BBUkFNX01ldGEsCi0rICAgIFNQQV9QQVJB TV9NRVRBX3R5cGUsIFNQQV9QT0RfSWQgKFNQQV9NRVRBX0N1cnNvciksCi0rICAgIFNQQV9QQVJB TV9NRVRBX3NpemUsIFNQQV9QT0RfSW50IChDVVJTT1JfTUVUQV9TSVpFICg2NCwgNjQpKSk7Ci0K LS0gIHB3X3N0cmVhbV9maW5pc2hfZm9ybWF0IChwcml2LT5waXBld2lyZV9zdHJlYW0sIDAsCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLCBHX05fRUxFTUVOVFMgKHBhcmFtcykp OwotKyAgcHdfc3RyZWFtX3VwZGF0ZV9wYXJhbXMgKHByaXYtPnBpcGV3aXJlX3N0cmVhbSwgcGFy YW1zLCBHX05fRUxFTUVOVFMgKHBhcmFtcykpOwotIH0KLQotIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg cHdfc3RyZWFtX2V2ZW50cyBzdHJlYW1fZXZlbnRzID0gewotICAgUFdfVkVSU0lPTl9TVFJFQU1f RVZFTlRTLAotICAgLnN0YXRlX2NoYW5nZWQgPSBvbl9zdHJlYW1fc3RhdGVfY2hhbmdlZCwKLS0g IC5mb3JtYXRfY2hhbmdlZCA9IG9uX3N0cmVhbV9mb3JtYXRfY2hhbmdlZCwKLSsgIC5wYXJhbV9j aGFuZ2VkID0gb25fc3RyZWFtX3BhcmFtX2NoYW5nZWQsCi0gfTsKLQotIHN0YXRpYyBzdHJ1Y3Qg cHdfc3RyZWFtICoKLUBAIC02NTIsOCArNjM0LDYgQEAgY3JlYXRlX3BpcGV3aXJlX3N0cmVhbSAo TWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgICpzcmMsCi0gICB1aW50OF90IGJ1ZmZlclsxMDI0XTsK LSAgIHN0cnVjdCBzcGFfcG9kX2J1aWxkZXIgcG9kX2J1aWxkZXIgPQotICAgICBTUEFfUE9EX0JV SUxERVJfSU5JVCAoYnVmZmVyLCBzaXplb2YgKGJ1ZmZlcikpOwotLSAgTWV0YVNwYVR5cGUgKnNw YV90eXBlID0gJnByaXYtPnNwYV90eXBlOwotLSAgc3RydWN0IHB3X3R5cGUgKnBpcGV3aXJlX3R5 cGUgPSBwcml2LT5waXBld2lyZV90eXBlOwotICAgZmxvYXQgZnJhbWVfcmF0ZTsKLSAgIE1ldGFG cmFjdGlvbiBmcmFtZV9yYXRlX2ZyYWN0aW9uOwotICAgc3RydWN0IHNwYV9mcmFjdGlvbiBtYXhf ZnJhbWVyYXRlOwotQEAgLTY2MSw3ICs2NDEsOSBAQCBjcmVhdGVfcGlwZXdpcmVfc3RyZWFtIChN ZXRhU2NyZWVuQ2FzdFN0cmVhbVNyYyAgKnNyYywKLSAgIGNvbnN0IHN0cnVjdCBzcGFfcG9kICpw YXJhbXNbMV07Ci0gICBpbnQgcmVzdWx0OwotCi0tICBwaXBld2lyZV9zdHJlYW0gPSBwd19zdHJl YW1fbmV3IChwcml2LT5waXBld2lyZV9yZW1vdGUsCi0rICBwcml2LT5ub2RlX2lkID0gU1BBX0lE X0lOVkFMSUQ7Ci0rCi0rICBwaXBld2lyZV9zdHJlYW0gPSBwd19zdHJlYW1fbmV3IChwcml2LT5w aXBld2lyZV9jb3JlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1ldGEt c2NyZWVuLWNhc3Qtc3JjIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5V TEwpOwotICAgaWYgKCFwaXBld2lyZV9zdHJlYW0pCi1AQCAtNjgyLDE3ICs2NjQsMTcgQEAgY3Jl YXRlX3BpcGV3aXJlX3N0cmVhbSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgICpzcmMsCi0gICBt YXhfZnJhbWVyYXRlID0gU1BBX0ZSQUNUSU9OIChmcmFtZV9yYXRlX2ZyYWN0aW9uLm51bSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lX3JhdGVfZnJhY3Rpb24uZGVub20p OwotCi0tICBwYXJhbXNbMF0gPSBzcGFfcG9kX2J1aWxkZXJfb2JqZWN0ICgKLSsgIHBhcmFtc1sw XSA9IHNwYV9wb2RfYnVpbGRlcl9hZGRfb2JqZWN0ICgKLSAgICAgJnBvZF9idWlsZGVyLAotLSAg ICBwaXBld2lyZV90eXBlLT5wYXJhbS5pZEVudW1Gb3JtYXQsIHBpcGV3aXJlX3R5cGUtPnNwYV9m b3JtYXQsCi0tICAgICJJIiwgc3BhX3R5cGUtPm1lZGlhX3R5cGUudmlkZW8sCi0tICAgICJJIiwg c3BhX3R5cGUtPm1lZGlhX3N1YnR5cGUucmF3LAotLSAgICAiOiIsIHNwYV90eXBlLT5mb3JtYXRf dmlkZW8uZm9ybWF0LCAiSSIsIHNwYV90eXBlLT52aWRlb19mb3JtYXQuQkdSeCwKLS0gICAgIjoi LCBzcGFfdHlwZS0+Zm9ybWF0X3ZpZGVvLnNpemUsICJSIiwgJlNQQV9SRUNUQU5HTEUgKHByaXYt PnN0cmVhbV93aWR0aCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHByaXYtPnN0cmVhbV9oZWlnaHQpLAotLSAgICAiOiIsIHNwYV90 eXBlLT5mb3JtYXRfdmlkZW8uZnJhbWVyYXRlLCAiRiIsICZTUEFfRlJBQ1RJT04gKDAsIDEpLAot LSAgICAiOiIsIHNwYV90eXBlLT5mb3JtYXRfdmlkZW8ubWF4X2ZyYW1lcmF0ZSwgIkZydSIsICZt YXhfZnJhbWVyYXRlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBST1BfUkFOR0UgKCZtaW5fZnJhbWVyYXRlLAotKyAgICBTUEFfVFlQRV9P QkpFQ1RfRm9ybWF0LCBTUEFfUEFSQU1fRW51bUZvcm1hdCwKLSsgICAgU1BBX0ZPUk1BVF9tZWRp YVR5cGUsIFNQQV9QT0RfSWQgKFNQQV9NRURJQV9UWVBFX3ZpZGVvKSwKLSsgICAgU1BBX0ZPUk1B VF9tZWRpYVN1YnR5cGUsIFNQQV9QT0RfSWQgKFNQQV9NRURJQV9TVUJUWVBFX3JhdyksCi0rICAg IFNQQV9GT1JNQVRfVklERU9fZm9ybWF0LCBTUEFfUE9EX0lkIChTUEFfVklERU9fRk9STUFUX0JH UngpLAotKyAgICBTUEFfRk9STUFUX1ZJREVPX3NpemUsIFNQQV9QT0RfUmVjdGFuZ2xlICgmU1BB X1JFQ1RBTkdMRSAocHJpdi0+c3RyZWFtX3dpZHRoLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpdi0+c3RyZWFtX2hlaWdo dCkpLAotKyAgICBTUEFfRk9STUFUX1ZJREVPX2ZyYW1lcmF0ZSwgU1BBX1BPRF9GcmFjdGlvbiAo JlNQQV9GUkFDVElPTiAoMCwgMSkpLAotKyAgICBTUEFfRk9STUFUX1ZJREVPX21heEZyYW1lcmF0 ZSwgU1BBX1BPRF9DSE9JQ0VfUkFOR0VfRnJhY3Rpb24gKCZtYXhfZnJhbWVyYXRlLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICZtaW5fZnJhbWVyYXRlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtYXhfZnJhbWVyYXRlKSk7Ci0KLSAgIHB3 X3N0cmVhbV9hZGRfbGlzdGVuZXIgKHBpcGV3aXJlX3N0cmVhbSwKLUBAIC03MDIsNyArNjg0LDcg QEAgY3JlYXRlX3BpcGV3aXJlX3N0cmVhbSAoTWV0YVNjcmVlbkNhc3RTdHJlYW1TcmMgICpzcmMs Ci0KLSAgIHJlc3VsdCA9IHB3X3N0cmVhbV9jb25uZWN0IChwaXBld2lyZV9zdHJlYW0sCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUFdfRElSRUNUSU9OX09VVFBVVCwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFNQQV9JRF9JTlZBTElELAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQV19T VFJFQU1fRkxBR19EUklWRVIgfAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQV19T VFJFQU1fRkxBR19NQVBfQlVGRkVSUyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cGFyYW1zLCBHX05fRUxFTUVOVFMgKHBhcmFtcykpOwotQEAgLTcxNyw0MCArNjk5LDE4IEBAIGNy ZWF0ZV9waXBld2lyZV9zdHJlYW0gKE1ldGFTY3JlZW5DYXN0U3RyZWFtU3JjICAqc3JjLAotIH0K LQotIHN0YXRpYyB2b2lkCi0tb25fc3RhdGVfY2hhbmdlZCAodm9pZCAgICAgICAgICAgICAgICAg KmRhdGEsCi0tICAgICAgICAgICAgICAgICAgZW51bSBwd19yZW1vdGVfc3RhdGUgIG9sZCwKLS0g ICAgICAgICAgICAgICAgICBlbnVtIHB3X3JlbW90ZV9zdGF0ZSAgc3RhdGUsCi0tICAgICAgICAg ICAgICAgICAgY29uc3QgY2hhciAgICAgICAgICAgKmVycm9yX21lc3NhZ2UpCi0rb25fY29yZV9l cnJvciAodm9pZCAgICAgICAqZGF0YSwKLSsgICAgICAgICAgICAgICB1aW50MzJfdCAgICBpZCwK LSsJICAgICAgIGludCAgICAgICAgIHNlcSwKLSsJICAgICAgIGludCAgICAgICAgIHJlcywKLSsJ ICAgICAgIGNvbnN0IGNoYXIgKm1lc3NhZ2UpCi0gewotICAgTWV0YVNjcmVlbkNhc3RTdHJlYW1T cmMgKnNyYyA9IGRhdGE7Ci0tICBNZXRhU2NyZWVuQ2FzdFN0cmVhbVNyY1ByaXZhdGUgKnByaXYg PQotLSAgICBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZ2V0X2luc3RhbmNlX3ByaXZhdGUg KHNyYyk7Ci0tICBzdHJ1Y3QgcHdfc3RyZWFtICpwaXBld2lyZV9zdHJlYW07Ci0tICBHRXJyb3Ig KmVycm9yID0gTlVMTDsKLQotLSAgc3dpdGNoIChzdGF0ZSkKLS0gICAgewotLSAgICBjYXNlIFBX X1JFTU9URV9TVEFURV9FUlJPUjoKLS0gICAgICBnX3dhcm5pbmcgKCJwaXBld2lyZSByZW1vdGUg ZXJyb3I6ICVzXG4iLCBlcnJvcl9tZXNzYWdlKTsKLS0gICAgICBtZXRhX3NjcmVlbl9jYXN0X3N0 cmVhbV9zcmNfbm90aWZ5X2Nsb3NlZCAoc3JjKTsKLS0gICAgICBicmVhazsKLS0gICAgY2FzZSBQ V19SRU1PVEVfU1RBVEVfQ09OTkVDVEVEOgotLSAgICAgIHBpcGV3aXJlX3N0cmVhbSA9IGNyZWF0 ZV9waXBld2lyZV9zdHJlYW0gKHNyYywgJmVycm9yKTsKLS0gICAgICBpZiAoIXBpcGV3aXJlX3N0 cmVhbSkKLS0gICAgICAgIHsKLS0gICAgICAgICAgZ193YXJuaW5nICgiQ291bGQgbm90IGNyZWF0 ZSBwaXBld2lyZSBzdHJlYW06ICVzIiwgZXJyb3ItPm1lc3NhZ2UpOwotLSAgICAgICAgICBnX2Vy cm9yX2ZyZWUgKGVycm9yKTsKLS0gICAgICAgICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3Jj X25vdGlmeV9jbG9zZWQgKHNyYyk7Ci0tICAgICAgICB9Ci0tICAgICAgZWxzZQotLSAgICAgICAg ewotLSAgICAgICAgICBwcml2LT5waXBld2lyZV9zdHJlYW0gPSBwaXBld2lyZV9zdHJlYW07Ci0t ICAgICAgICB9Ci0tICAgICAgYnJlYWs7Ci0tICAgIGNhc2UgUFdfUkVNT1RFX1NUQVRFX1VOQ09O TkVDVEVEOgotLSAgICBjYXNlIFBXX1JFTU9URV9TVEFURV9DT05ORUNUSU5HOgotLSAgICAgIGJy ZWFrOwotLSAgICB9Ci0rICBnX3dhcm5pbmcgKCJwaXBld2lyZSByZW1vdGUgZXJyb3I6IGlkOiV1 ICVzIiwgaWQsIG1lc3NhZ2UpOwotKwotKyAgaWYgKGlkID09IFBXX0lEX0NPUkUgJiYgcmVzID09 IC1FUElQRSkKLSsgICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX25vdGlmeV9jbG9zZWQg KHNyYyk7Ci0gfQotCi0gc3RhdGljIGdib29sZWFuCi1AQCAtNzkzLDE3ICs3NTMsNiBAQCBzdGF0 aWMgR1NvdXJjZUZ1bmNzIHBpcGV3aXJlX3NvdXJjZV9mdW5jcyA9Ci0gICBwaXBld2lyZV9sb29w X3NvdXJjZV9maW5hbGl6ZQotIH07Ci0KLS1zdGF0aWMgdm9pZAotLWluaXRfc3BhX3R5cGUgKE1l dGFTcGFUeXBlICAgICAgICAgKnR5cGUsCi0tICAgICAgICAgICAgICAgc3RydWN0IHNwYV90eXBl X21hcCAqbWFwKQotLXsKLS0gIHNwYV90eXBlX21lZGlhX3R5cGVfbWFwIChtYXAsICZ0eXBlLT5t ZWRpYV90eXBlKTsKLS0gIHNwYV90eXBlX21lZGlhX3N1YnR5cGVfbWFwIChtYXAsICZ0eXBlLT5t ZWRpYV9zdWJ0eXBlKTsKLS0gIHNwYV90eXBlX2Zvcm1hdF92aWRlb19tYXAgKG1hcCwgJnR5cGUt PmZvcm1hdF92aWRlbyk7Ci0tICBzcGFfdHlwZV92aWRlb19mb3JtYXRfbWFwIChtYXAsICZ0eXBl LT52aWRlb19mb3JtYXQpOwotLSAgdHlwZS0+bWV0YV9jdXJzb3IgPSBzcGFfdHlwZV9tYXBfZ2V0 X2lkKG1hcCwgU1BBX1RZUEVfTUVUQV9fQ3Vyc29yKTsKLS19Ci0tCi0gc3RhdGljIE1ldGFQaXBl V2lyZVNvdXJjZSAqCi0gY3JlYXRlX3BpcGV3aXJlX3NvdXJjZSAodm9pZCkKLSB7Ci1AQCAtODI5 LDkgKzc3OCw5IEBAIGNyZWF0ZV9waXBld2lyZV9zb3VyY2UgKHZvaWQpCi0gICByZXR1cm4gcGlw ZXdpcmVfc291cmNlOwotIH0KLQotLXN0YXRpYyBjb25zdCBzdHJ1Y3QgcHdfcmVtb3RlX2V2ZW50 cyByZW1vdGVfZXZlbnRzID0gewotLSAgUFdfVkVSU0lPTl9SRU1PVEVfRVZFTlRTLAotLSAgLnN0 YXRlX2NoYW5nZWQgPSBvbl9zdGF0ZV9jaGFuZ2VkLAotK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcHdf Y29yZV9ldmVudHMgY29yZV9ldmVudHMgPSB7Ci0rICBQV19WRVJTSU9OX0NPUkVfRVZFTlRTLAot KyAgLmVycm9yID0gb25fY29yZV9lcnJvciwKLSB9OwotCi0gc3RhdGljIGdib29sZWFuCi1AQCAt ODUxLDM3ICs4MDAsMzEgQEAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2luaXRhYmxlX2lu aXQgKEdJbml0YWJsZSAgICAgKmluaXRhYmxlLAotICAgICAgIHJldHVybiBGQUxTRTsKLSAgICAg fQotCi0tICBwcml2LT5waXBld2lyZV9jb3JlID0gcHdfY29yZV9uZXcgKHByaXYtPnBpcGV3aXJl X3NvdXJjZS0+cGlwZXdpcmVfbG9vcCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTlVMTCk7Ci0tICBpZiAoIXByaXYtPnBpcGV3aXJlX2NvcmUpCi0rICBwcml2LT5waXBl d2lyZV9jb250ZXh0ID0gcHdfY29udGV4dF9uZXcgKHByaXYtPnBpcGV3aXJlX3NvdXJjZS0+cGlw ZXdpcmVfbG9vcCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TlVMTCwgMCk7Ci0rICBpZiAoIXByaXYtPnBpcGV3aXJlX2NvbnRleHQpCi0gICAgIHsKLSAgICAg ICBnX3NldF9lcnJvciAoZXJyb3IsIEdfSU9fRVJST1IsIEdfSU9fRVJST1JfRkFJTEVELAotLSAg ICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIGNyZWF0ZSBwaXBld2lyZSBjb3JlIik7Ci0rICAg ICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gY3JlYXRlIHBpcGV3aXJlIGNvbnRleHQiKTsKLSAg ICAgICByZXR1cm4gRkFMU0U7Ci0gICAgIH0KLQotLSAgcHJpdi0+cGlwZXdpcmVfcmVtb3RlID0g cHdfcmVtb3RlX25ldyAocHJpdi0+cGlwZXdpcmVfY29yZSwgTlVMTCwgMCk7Ci0tICBpZiAoIXBy aXYtPnBpcGV3aXJlX3JlbW90ZSkKLSsgIHByaXYtPnBpcGV3aXJlX2NvcmUgPSBwd19jb250ZXh0 X2Nvbm5lY3QgKHByaXYtPnBpcGV3aXJlX2NvbnRleHQsIE5VTEwsIDApOwotKyAgaWYgKCFwcml2 LT5waXBld2lyZV9jb3JlKQotICAgICB7Ci0gICAgICAgZ19zZXRfZXJyb3IgKGVycm9yLCBHX0lP X0VSUk9SLCBHX0lPX0VSUk9SX0ZBSUxFRCwKLS0gICAgICAgICAgICAgICAgICAgIkNvdWxkbid0 IGNyZWF0IHBpcGV3aXJlIHJlbW90ZSIpOwotKyAgICAgICAgICAgICAgICAgICAiQ291bGRuJ3Qg Y29ubmVjdCBwaXBld2lyZSBjb250ZXh0Iik7Ci0gICAgICAgcmV0dXJuIEZBTFNFOwotICAgICB9 Ci0KLS0gIHB3X3JlbW90ZV9hZGRfbGlzdGVuZXIgKHByaXYtPnBpcGV3aXJlX3JlbW90ZSwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICZwcml2LT5waXBld2lyZV9yZW1vdGVfbGlzdGVuZXIs Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAmcmVtb3RlX2V2ZW50cywKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgIHNyYyk7Ci0rICBwd19jb3JlX2FkZF9saXN0ZW5lciAocHJpdi0+cGlw ZXdpcmVfY29yZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAmcHJpdi0+cGlwZXdpcmVfY29y ZV9saXN0ZW5lciwKLSsgICAgICAgICAgICAgICAgICAgICAgICAmY29yZV9ldmVudHMsCi0rICAg ICAgICAgICAgICAgICAgICAgICAgc3JjKTsKLQotLSAgcHJpdi0+cGlwZXdpcmVfdHlwZSA9IHB3 X2NvcmVfZ2V0X3R5cGUgKHByaXYtPnBpcGV3aXJlX2NvcmUpOwotLSAgaW5pdF9zcGFfdHlwZSAo JnByaXYtPnNwYV90eXBlLCBwcml2LT5waXBld2lyZV90eXBlLT5tYXApOwotLQotLSAgaWYgKHB3 X3JlbW90ZV9jb25uZWN0IChwcml2LT5waXBld2lyZV9yZW1vdGUpICE9IDApCi0tICAgIHsKLS0g ICAgICBnX3NldF9lcnJvciAoZXJyb3IsIEdfSU9fRVJST1IsIEdfSU9fRVJST1JfRkFJTEVELAot LSAgICAgICAgICAgICAgICAgICAiQ291bGRuJ3QgY29ubmVjdCBwaXBld2lyZSByZW1vdGUiKTsK LS0gICAgICByZXR1cm4gRkFMU0U7Ci0tICAgIH0KLSsgIHByaXYtPnBpcGV3aXJlX3N0cmVhbSA9 IGNyZWF0ZV9waXBld2lyZV9zdHJlYW0gKHNyYywgZXJyb3IpOwotKyAgaWYgKCFwcml2LT5waXBl d2lyZV9zdHJlYW0pCi0rICAgIHJldHVybiBGQUxTRTsKLQotICAgcmV0dXJuIFRSVUU7Ci0gfQot QEAgLTkxMiw4ICs4NTUsOCBAQCBtZXRhX3NjcmVlbl9jYXN0X3N0cmVhbV9zcmNfZmluYWxpemUg KEdPYmplY3QgKm9iamVjdCkKLSAgICAgbWV0YV9zY3JlZW5fY2FzdF9zdHJlYW1fc3JjX2Rpc2Fi bGUgKHNyYyk7Ci0KLSAgIGdfY2xlYXJfcG9pbnRlciAoJnByaXYtPnBpcGV3aXJlX3N0cmVhbSwg cHdfc3RyZWFtX2Rlc3Ryb3kpOwotLSAgZ19jbGVhcl9wb2ludGVyICgmcHJpdi0+cGlwZXdpcmVf cmVtb3RlLCBwd19yZW1vdGVfZGVzdHJveSk7Ci0tICBnX2NsZWFyX3BvaW50ZXIgKCZwcml2LT5w aXBld2lyZV9jb3JlLCBwd19jb3JlX2Rlc3Ryb3kpOwotKyAgZ19jbGVhcl9wb2ludGVyICgmcHJp di0+cGlwZXdpcmVfY29yZSwgcHdfY29yZV9kaXNjb25uZWN0KTsKLSsgIGdfY2xlYXJfcG9pbnRl ciAoJnByaXYtPnBpcGV3aXJlX2NvbnRleHQsIHB3X2NvbnRleHRfZGVzdHJveSk7Ci0gICBnX3Nv dXJjZV9kZXN0cm95ICgmcHJpdi0+cGlwZXdpcmVfc291cmNlLT5iYXNlKTsKLQotICAgR19PQkpF Q1RfQ0xBU1MgKG1ldGFfc2NyZWVuX2Nhc3Rfc3RyZWFtX3NyY19wYXJlbnRfY2xhc3MpLT5maW5h bGl6ZSAob2JqZWN0KTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbXV0dGVyL3RlbXBsYXRlIGIvc3Jj cGtncy9tdXR0ZXIvdGVtcGxhdGUKaW5kZXggODA2YTNiZWY5ZjAuLjM3ZWM5NjNhYTVlIDEwMDY0 NAotLS0gYS9zcmNwa2dzL211dHRlci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL211dHRlci90ZW1w bGF0ZQpAQCAtMSwzNCArMSw0MCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnbXV0dGVyJwogcGtn bmFtZT1tdXR0ZXIKLXZlcnNpb249My4zNC4xCi1yZXZpc2lvbj0zCit2ZXJzaW9uPTMuMzcuOTEK K3JldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24KIGNvbmZp Z3VyZV9hcmdzPSItRGVnbF9kZXZpY2U9dHJ1ZSAtRHVkZXY9dHJ1ZSAtRG5hdGl2ZV9iYWNrZW5k PXRydWUKLSAtRHByb2ZpbGVyPWZhbHNlIC1EaW50cm9zcGVjdGlvbj10cnVlIC1EeHdheWxhbmRf cGF0aD0vdXNyL2Jpbi9Yd2F5bGFuZCIKKyAtRHByb2ZpbGVyPWZhbHNlIC1EaW50cm9zcGVjdGlv bj10cnVlIC1EeHdheWxhbmRfcGF0aD0vdXNyL2Jpbi9Yd2F5bGFuZAorIC1EeHdheWxhbmRfaW5p dGZkPWRpc2FibGVkIgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGdsaWItZGV2ZWwgcGtnLWNv bmZpZyB6ZW5pdHkgd2F5bGFuZC1kZXZlbCB4b3JnLXNlcnZlciIKLW1ha2VkZXBlbmRzPSJlbG9n aW5kLWRldmVsIGdsaWItZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbCBqc29uLWdsaWItZGV2ZWwK LSBsaWJnbGliLWRldmVsIGxpYlNNLWRldmVsIGxpYlh0c3QtZGV2ZWwgbGliY2FuYmVycmEtZGV2 ZWwgbGliaW5wdXQtZGV2ZWwKLSBNZXNhTGliLWRldmVsIHBpcGV3aXJlLWRldmVsIHN0YXJ0dXAt bm90aWZpY2F0aW9uLWRldmVsIHdheWxhbmQtcHJvdG9jb2xzCi0gZ25vbWUtc2V0dGluZ3MtZGFl bW9uLWRldmVsIgotZGVwZW5kcz0iZGVza3RvcC1maWxlLXV0aWxzIHplbml0eSIKK21ha2VkZXBl bmRzPSJlbG9naW5kLWRldmVsIGdsaWItZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbCBncmFwaGVu ZS1kZXZlbAorIGpzb24tZ2xpYi1kZXZlbCBsaWJnbGliLWRldmVsIGxpYlNNLWRldmVsIGxpYlh0 c3QtZGV2ZWwgbGliY2FuYmVycmEtZGV2ZWwKKyBsaWJpbnB1dC1kZXZlbCBNZXNhTGliLWRldmVs IHBpcGV3aXJlLWRldmVsIHN0YXJ0dXAtbm90aWZpY2F0aW9uLWRldmVsCisgd2F5bGFuZC1wcm90 b2NvbHMgZ25vbWUtc2V0dGluZ3MtZGFlbW9uLWRldmVsIgorZGVwZW5kcz0iZ3NldHRpbmdzLWRl c2t0b3Atc2NoZW1hcyBkZXNrdG9wLWZpbGUtdXRpbHMgemVuaXR5Igogc2hvcnRfZGVzYz0iTGln aHR3ZWlnaHQgR1RLKzMgd2luZG93IG1hbmFnZXIiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8 Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVw YWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL011dHRlci8iCiBkaXN0ZmlsZXM9 IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJz aW9ufS50YXIueHoiCi1jaGVja3N1bT1iYTE4MjZjZjg4YmRiODFlNjM5NDNjYWMwMTRhOGU4YmNm MzVlYzE3OGM1MzI2NDQwMWY5YzcyZmRlYWI3NThlCi1zaGxpYl9wcm92aWRlcz0ibGlibXV0dGVy LWNsdXR0ZXItNS5zbyBsaWJtdXR0ZXItY29nbC01LnNvCi0gbGlibXV0dGVyLWNvZ2wtcGFuZ28t NS5zbyBsaWJtdXR0ZXItY29nbC1wYXRoLTUuc28iCitjaGVja3N1bT04YjA4N2IyMmViZDBiZDk5 OTVlNjBlYTRmZDVlZjRlZTFhNjU0MmU1NzgzOWRjNDIzMzNlNGQxOWQ0MzNhNTVkCitzaGxpYl9w cm92aWRlcz0ibGlibXV0dGVyLWNsdXR0ZXItNy5zbyBsaWJtdXR0ZXItY29nbC03LnNvCisgbGli bXV0dGVyLWNvZ2wtcGFuZ28tNy5zbyBsaWJtdXR0ZXItY29nbC1wYXRoLTcuc28iCisKKyMgbmVl ZHMgWAorZG9fY2hlY2soKSB7CisJOgorfQogCiBtdXR0ZXItZGV2ZWxfcGFja2FnZSgpIHsKLQlk ZXBlbmRzPSJnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzIGd0ayszLWRldmVsIGNsdXR0ZXItZGV2 ZWwgbGliWDExLWRldmVsCi0JIGxpYlh0c3QtZGV2ZWwgbXV0dGVyLSR7dmVyc2lvbn1fJHtyZXZp c2lvbn0iCisJZGVwZW5kcz0iZ3RrKzMtZGV2ZWwgZ3JhcGhlbmUtZGV2ZWwgY2x1dHRlci1kZXZl bAorCSBsaWJYMTEtZGV2ZWwgbGliWHRzdC1kZXZlbCBtdXR0ZXItJHt2ZXJzaW9ufV8ke3Jldmlz aW9ufSIKIAlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCiAJcGtnX2luc3RhbGwo KSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRlCiAJCXZtb3ZlIHVzci9saWIvcGtnY29uZmlnCi0JCXZt b3ZlICJ1c3IvbGliL211dHRlci01LyouZ2lyIgorCQl2bW92ZSAidXNyL2xpYi9tdXR0ZXItNy8q LmdpciIKIAkJdm1vdmUgInVzci9saWIvKi5zbyIKIAl9CiB9CgpGcm9tIGQ4YmQ4OTkzYmRmZGMx ODUyZjdkZDE4N2QyMjI2OTIwMTNjYWU1ZTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAy MDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMS84M10gZ25vbWUtbWVudXM6IHVw ZGF0ZSB0byAzLjM2LjAKCi0tLQogc3JjcGtncy9nbm9tZS1tZW51cy90ZW1wbGF0ZSB8IDYgKysr LS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtbWVudXMvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLW1l bnVzL3RlbXBsYXRlCmluZGV4IDI5MTAyMTI5YzM4Li5lNzg3ZmI4ZGU2YiAxMDA2NDQKLS0tIGEv c3JjcGtncy9nbm9tZS1tZW51cy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLW1lbnVzL3Rl bXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtbWVudXMn CiBwa2duYW1lPWdub21lLW1lbnVzCi12ZXJzaW9uPTMuMzIuMAotcmV2aXNpb249MgordmVyc2lv bj0zLjM2LjAKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGJ1aWxkX2hl bHBlcj0iZ2lyIgogY29uZmlndXJlX2FyZ3M9Ii0tZGlzYWJsZS1zdGF0aWMiCkBAIC0xMiw3ICsx Miw3IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBs aWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBMR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJo dHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtbWVudXMiCiBkaXN0ZmlsZXM9IiR7 R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9u fS50YXIueHoiCi1jaGVja3N1bT1jODUwYzY0YjIwNzQyNjVmZTU5ZTA5OWEzNDBiODY4OWNmM2Rk NDY1OGRjOWZlZGRkMmFiNWU5NWYxYTc0Yjc0CitjaGVja3N1bT1kOTM0OGYzOGJkZTk1NmZjMzI3 NTNiMjhjMWNkZTE5YzE3NWJmZGJmMWY0ZDViMDYwMDNiM2FhMDkxNTNiYjFmCiAKIGJ1aWxkX29w dGlvbnM9ImdpciIKIGJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgoKRnJvbSBjNWMyYWRmMGU2 ZGNlZjU4ZmU3YTM0NmM5ZTAzNTIzNTc4YjA3OGRkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBB dWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTIvODNdIGNoZWVzZTogYnVt cAoKLS0tCiBzcmNwa2dzL2NoZWVzZS90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAx IGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hlZXNl L3RlbXBsYXRlIGIvc3JjcGtncy9jaGVlc2UvdGVtcGxhdGUKaW5kZXggN2E1NmJhMDM5ZmIuLjAz N2NkYTQ5Yzk4IDEwMDY0NAotLS0gYS9zcmNwa2dzL2NoZWVzZS90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL2NoZWVzZS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J2NoZWVzZScKIHBrZ25hbWU9Y2hlZXNlCiB2ZXJzaW9uPTMuMzQuMAotcmV2aXNpb249MQorcmV2 aXNpb249MgogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgogY29uZmlndXJl X2FyZ3M9Ii1EZ3RrX2RvYz0kKHZvcHRfaWYgZ3RrX2RvYyAndHJ1ZScgJ2ZhbHNlJykKCkZyb20g YTUxZjNhMDhiYzRlNGQ4YTcyYjQ2NTg3YjhmOGQ1OThjODhmYjIzNyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6 IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDEzLzgzXSBl dm9sdXRpb24tZGF0YS1zZXJ2ZXI6IHVwZGF0ZSB0byAzLjM3LjkwCgotLS0KIGNvbW1vbi9zaGxp YnMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyY3BrZ3MvZXZvbHV0aW9uLWRh dGEtc2VydmVyL3RlbXBsYXRlIHwgMjUgKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogMiBmaWxl cyBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCA0N2I2ODBjZTgzYS4uNjQyNGJl NDBmOGYgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAt NjI3LDcgKzYyNyw3IEBAIGxpYmljYWxzc19jeHguc28uMyBsaWJpY2FsLTMuMC40XzEKIGxpYmlj YWx2Y2FsLnNvLjMgbGliaWNhbC0zLjAuNF8xCiBsaWJpY2FsLWdsaWIuc28uMyBsaWJpY2FsLTMu MC40XzEKIGxpYmNhbWVsLTEuMi5zby42MiBldm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4zMC4wXzEK LWxpYmVkYXRhc2VydmVyLTEuMi5zby4yNCBldm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4zMi4wXzEK K2xpYmVkYXRhc2VydmVyLTEuMi5zby4yNSBldm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4zNy45MF8x CiBsaWJlYmFja2VuZC0xLjIuc28uMTAgZXZvbHV0aW9uLWRhdGEtc2VydmVyLTMuMTcuOTBfMQog bGliZWRhdGFzZXJ2ZXJ1aS0xLjIuc28uMiBldm9sdXRpb24tZGF0YS1zZXJ2ZXItMy4yOC4wXzEK IGxpYmVib29rLWNvbnRhY3RzLTEuMi5zby4zIGV2b2x1dGlvbi1kYXRhLXNlcnZlci0zLjM0LjBf MQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9ldm9sdXRpb24tZGF0YS1zZXJ2ZXIvdGVtcGxhdGUgYi9z cmNwa2dzL2V2b2x1dGlvbi1kYXRhLXNlcnZlci90ZW1wbGF0ZQppbmRleCA0YWU4MjBiZTA2OC4u NTIwNjlhZDk5M2IgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZXZvbHV0aW9uLWRhdGEtc2VydmVyL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvZXZvbHV0aW9uLWRhdGEtc2VydmVyL3RlbXBsYXRlCkBAIC0x LDI5ICsxLDM0IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdldm9sdXRpb24tZGF0YS1zZXJ2ZXIn CiBwa2duYW1lPWV2b2x1dGlvbi1kYXRhLXNlcnZlcgotdmVyc2lvbj0zLjM2LjEKLXJldmlzaW9u PTIKK3ZlcnNpb249My4zNy45MAorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Y21ha2UKLWJ1aWxk X2hlbHBlcj1naXIKK2J1aWxkX2hlbHBlcj0iZ2lyIHFlbXUiCiBjb25maWd1cmVfYXJncz0iLURF TkFCTEVfVU9BPU9GRgotICQodm9wdF9pZiBnaXIgJy1ERU5BQkxFX0lOVFJPU1BFQ1RJT049T04g LURFTkFCTEVfVkFMQV9CSU5ESU5HUz1PTicgJy1ERU5BQkxFX1dFQVRIRVI9T0ZGJykiCi1ob3N0 bWFrZWRlcGVuZHM9ImZsZXggZ2xpYi1kZXZlbCBncGVyZiBpbnRsdG9vbCBwa2ctY29uZmlnIGxp YmdsaWItZGV2ZWwKLSAkKHZvcHRfaWYgZ2lyICdnb2JqZWN0LWludHJvc3BlY3Rpb24nKSIKLW1h a2VkZXBlbmRzPSJib29zdC1kZXZlbCBsaWJjYW5iZXJyYS1kZXZlbCBsaWJnZGF0YS1kZXZlbCAk KHZvcHRfaWYgZ2lyIGxpYmd3ZWF0aGVyLWRldmVsKQotIGxpYmljYWwtZGV2ZWwgbGlic2VjcmV0 LWRldmVsIG1pdC1rcmI1LWRldmVsICQodm9wdF9pZiBnaXIgJ3ZhbGEtZGV2ZWwnKSB3ZWJraXQy Z3RrLWRldmVsIgotZGVwZW5kcz0iJCh2b3B0X2lmIGdpciBsaWJnd2VhdGhlcikgbGlic291cC1n bm9tZSIKKyAkKHZvcHRfaWYgZ2lyICctREVOQUJMRV9JTlRST1NQRUNUSU9OPU9OIC1ERU5BQkxF X1ZBTEFfQklORElOR1M9T04nKSIKK2hvc3RtYWtlZGVwZW5kcz0iZmxleCBnbGliLWRldmVsIGdw ZXJmIGludGx0b29sIHBrZy1jb25maWcgbGliZ2xpYi1kZXZlbCIKK21ha2VkZXBlbmRzPSJib29z dC1kZXZlbCBsaWJjYW5iZXJyYS1kZXZlbCBsaWJnZGF0YS1kZXZlbCBsaWJpY2FsLWRldmVsCisg bGlic2VjcmV0LWRldmVsIG1pdC1rcmI1LWRldmVsIHdlYmtpdDJndGstZGV2ZWwgbGliZ3dlYXRo ZXItZGV2ZWwKKyAkKHZvcHRfaWYgZ2lyIHZhbGEtZGV2ZWwpIgorZGVwZW5kcz0ibGliZ3dlYXRo ZXIgbGlic291cC1nbm9tZSIKIHNob3J0X2Rlc2M9IkNlbnRyYWxpemVkIGFjY2VzcyB0byBhcHBv aW50bWVudHMgYW5kIGNvbnRhY3RzIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2 b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMi4xLW9ubHkiCiBob21lcGFnZT0iaHR0cHM6 Ly93aWtpLmdub21lLm9yZy9BcHBzL0V2b2x1dGlvbiIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9yYXcu Z2l0aHVidXNlcmNvbnRlbnQuY29tL0dOT01FL2V2b2x1dGlvbi1kYXRhLXNlcnZlci9nbm9tZS0z LTM2L05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24l Lip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0xMzEyMmIyZWRkZGI5 ODMwNjIwN2QyYTM1ZDVjY2FlMjVhOTA3MDI3NjljYTBhMGI1MTY1M2I1OTg0OTg2Nzk2CitjaGVj a3N1bT02Y2Q3MWVkZjQyZTY5OWFiOGU4YmQ0OTA4YWViMTMxMjEwYjU5NGNlOTYxYmRlNjhmZDI3 MzMzYjJhZWQ0NDMwCiAKIGJ1aWxkX29wdGlvbnM9ImdpciIKIGlmIFsgLXogIiRDUk9TU19CVUlM RCIgXTsgdGhlbgogCWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgogZmkKIAorIyBwcm9ibGVt YXRpYworZG9fY2hlY2soKSB7CisJOgorfQorCiAjIGNtYWtlIHBlcmZvbXJtcyAyIGNoZWNrcyB1 c2luZyBiaW5hcnkgcnVudGltZSwgYWJvdXQgaWNvbnYgYW5kIHNmcnRpbWUuCiAjIG11c2wgKDEu MS4xNikgZG9lcyBub3Qgc3VwcG9ydCAiSVNPLTIwMjItSlAiIGVuY29kaW5nIChzZWUgaXRzIHJv YWRtYXApLAogIyBhbHRob3VnaCBldm9sdXRpb24tZGF0YS1zZXJ2ZXIgaXMgZmluZSB3aXRoIG11 c2wuCgpGcm9tIDczZWFiN2JjMjgyNGMzOWUyZWNjOTk4MzhlZmQ1MjMzMGM1MTdjYTcgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uu b3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRD SCAxNC84M10gZ25vbWUtY29udHJvbC1jZW50ZXI6IHVwZGF0ZSB0byAzLjM3LjkwCgotLS0KIHNy Y3BrZ3MvZ25vbWUtY29udHJvbC1jZW50ZXIvdGVtcGxhdGUgfCAyMiArKysrKysrKysrKysrLS0t LS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWNvbnRyb2wtY2VudGVyL3RlbXBsYXRlIGIvc3Jj cGtncy9nbm9tZS1jb250cm9sLWNlbnRlci90ZW1wbGF0ZQppbmRleCBiZTU4NTJmM2IyMS4uMWUx NmU3YWJiNmIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtY29udHJvbC1jZW50ZXIvdGVtcGxh dGUKKysrIGIvc3JjcGtncy9nbm9tZS1jb250cm9sLWNlbnRlci90ZW1wbGF0ZQpAQCAtMSwyMiAr MSwyMiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtY29udHJvbC1jZW50ZXInCiBwa2du YW1lPWdub21lLWNvbnRyb2wtY2VudGVyCi12ZXJzaW9uPTMuMzQuMQordmVyc2lvbj0zLjM3Ljkw CiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCiBjb25m aWd1cmVfYXJncz0iLURjaGVlc2U9JCh2b3B0X2lmIGNoZWVzZSB0cnVlIGZhbHNlKSIKLWhvc3Rt YWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzLWRldmVsIGlu dGx0b29sIHBrZy1jb25maWcgcG9sa2l0Ci0gcHl0aG9uMyIKK2hvc3RtYWtlZGVwZW5kcz0iZ2xp Yi1kZXZlbCBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzLWRldmVsIGludGx0b29sIHBrZy1jb25m aWcKKyBwb2xraXQgcHl0aG9uMyIKIG1ha2VkZXBlbmRzPSJNb2RlbU1hbmFnZXItZGV2ZWwgYWNj b3VudHNzZXJ2aWNlLWRldmVsIGFsc2EtcGx1Z2lucwogIGNvbG9yZC1ndGstZGV2ZWwgZ25vbWUt Ymx1ZXRvb3RoLWRldmVsIGdub21lLWRlc2t0b3AtZGV2ZWwgZ25vbWUtbWVudXMtZGV2ZWwKICBn bm9tZS1vbmxpbmUtYWNjb3VudHMtZGV2ZWwgZ25vbWUtc2V0dGluZ3MtZGFlbW9uLWRldmVsIGdy aWxvLWRldmVsIGlidXMtZGV2ZWwKLSBsaWJTTS1kZXZlbCBsaWJYeGY4Nm1pc2MtZGV2ZWwgbGli Z25vbWVrYmQtZGV2ZWwgbGliZ3RvcC1kZXZlbAorIGxpYlNNLWRldmVsIGxpYlh4Zjg2bWlzYy1k ZXZlbCBsaWJnbm9tZWtiZC1kZXZlbCBsaWJndG9wLWRldmVsIGxpYmhhbmR5MS1kZXZlbAogIGxp YnB3cXVhbGl0eS1kZXZlbCBtaXQta3JiNS1kZXZlbCBuZXR3b3JrLW1hbmFnZXItYXBwbGV0LWRl dmVsIHBvbGtpdC1kZXZlbAogIHB1bHNlYXVkaW8tZGV2ZWwgc2FtYmEtZGV2ZWwgdHpkYXRhIHVw b3dlci1kZXZlbCB2YWxhLWRldmVsIGNsdXR0ZXItZ3RrLWRldmVsCiAgbGlieG1sMi1kZXZlbCBs aWJYMTEtZGV2ZWwgZ3RrKzMtZGV2ZWwgY3Vwcy1kZXZlbCBsaWJndWRldi1kZXZlbCBsaWJ3YWNv bS1kZXZlbAogIGNsdXR0ZXItZGV2ZWwgbGlic2VjcmV0LWRldmVsIGxpYmNhbmJlcnJhLWRldmVs IHVkaXNrczItZGV2ZWwgZ3NvdW5kLWRldmVsCiAgJCh2b3B0X2lmIGNoZWVzZSBjaGVlc2UtZGV2 ZWwpIgotZGVwZW5kcz0iYWxzYS1wbHVnaW5zLXB1bHNlYXVkaW8gZGVza3RvcC1maWxlLXV0aWxz CitkZXBlbmRzPSJhbHNhLXBsdWdpbnMtcHVsc2VhdWRpbyBkZXNrdG9wLWZpbGUtdXRpbHMgdXBv d2VyIGNvbG9yZCBjdXBzLXBrLWhlbHBlcgogIGdzZXR0aW5ncy1kZXNrdG9wLXNjaGVtYXMgaGlj b2xvci1pY29uLXRoZW1lIGlzby1jb2RlcyBzb3VuZC10aGVtZS1mcmVlZGVza3RvcAogIGNyYWNr bGliIgogc2hvcnRfZGVzYz0iR05PTUUgY29udHJvbCBjZW50ZXIiCkBAIC0yNCwxMyArMjQsMTcg QEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vu c2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3Jn L0dOT01FL2dub21lLWNvbnRyb2wtY2VudGVyIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7 cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hl Y2tzdW09NWY4MmVjZDU1NTQxMzZjNDYyMjQ4ZWM1MzYzYjgyZDk1MzU4YjM5ZGZkNjc4NzAwNmQ4 MzA3YjQ1MDRlNTE1ZQorY2hlY2tzdW09YjBiYjFkYzM2NGYyYWU3YTQ5NmY5MDIyM2E2Zjg3NDgw ZWU2NDRjNzU5YTc2NDczOTY1OWViNDM3NTQ2ZjVkNQogCiBidWlsZF9vcHRpb25zPSJjaGVlc2Ui CitidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImNoZWVzZSIKKwogZGVzY19vcHRpb25fY2hlZXNlPSJB ZGQgc3VwcG9ydCBmb3IgYWRkaW5nIHVzZXIgYWNjb3VudCBpbWFnZXMgd2l0aCB5b3VyIHdlYmNh bSIKLWlmIFsgLXogIiRDUk9TU19CVUlMRCIgXTsgdGhlbgotCWJ1aWxkX29wdGlvbnNfZGVmYXVs dCs9IiBjaGVlc2UiCi1maQorCisjIG5lZWRzIFgxMSBhbmQgcmVxdWlyZXMgYWx0ZXJlZCBmaWxl c3lzdGVtCitkb19jaGVjaygpIHsKKwk6Cit9CiAKIENGTEFHUz0iLWZjb21tb24iCiAKCkZyb20g ZTVkMzY3ZmNkMDNhNzc3NjI2MzE4MGZlNmRhODJiN2E2ZWU0YWRmMiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6 IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDE1LzgzXSB0 cmFja2VyOiB1cGRhdGUgdG8gMi4zLjQKCi0tLQogc3JjcGtncy90cmFja2VyL3RlbXBsYXRlIHwg OSArKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy90cmFja2VyL3RlbXBsYXRlIGIvc3JjcGtncy90cmFj a2VyL3RlbXBsYXRlCmluZGV4IDM3MDc0Y2IzNDhkLi4xOTMzOGRiNDVlMSAxMDA2NDQKLS0tIGEv c3JjcGtncy90cmFja2VyL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvdHJhY2tlci90ZW1wbGF0ZQpA QCAtMSwyMiArMSwyMyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAndHJhY2tlcicKIHBrZ25hbWU9 dHJhY2tlcgotdmVyc2lvbj0yLjMuMQotcmV2aXNpb249MgordmVyc2lvbj0yLjMuNAorcmV2aXNp b249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgogY29uZmlndXJlX2Fy Z3M9Ii1EZG9jcz1mYWxzZSAtRGZ0cz10cnVlIC1EZnVuY3Rpb25hbF90ZXN0cz1mYWxzZQogIC1E am91cm5hbD10cnVlIC1EbWFuPXRydWUgLURuZXR3b3JrX21hbmFnZXI9ZW5hYmxlZCAtRHN0ZW1t ZXI9ZGlzYWJsZWQKICAtRHN5c3RlbWRfdXNlcl9zZXJ2aWNlcz1ubyIKLWhvc3RtYWtlZGVwZW5k cz0icGtnLWNvbmZpZyBnbGliLWRldmVsIHZhbGEiCitob3N0bWFrZWRlcGVuZHM9ImdldHRleHQg cGtnLWNvbmZpZyBnbGliLWRldmVsIHZhbGEiCiBtYWtlZGVwZW5kcz0iZGJ1cy1kZXZlbCBsaWJn bGliLWRldmVsIGljdS1kZXZlbCBqc29uLWdsaWItZGV2ZWwKICBsaWJzb3VwLWRldmVsIGxpYnht bDItZGV2ZWwgc3FsaXRlLWRldmVsIE5ldHdvcmtNYW5hZ2VyLWRldmVsCiAgYmFzaC1jb21wbGV0 aW9uIgorY2hlY2tkZXBlbmRzPSJ0YXIiCiBzaG9ydF9kZXNjPSJQZXJzb25hbCBzZWFyY2ggdG9v bCBhbmQgc3RvcmFnZSBzeXN0ZW0iCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRs aW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczov L2xpdmUuZ25vbWUub3JnL1RyYWNrZXIiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vdHJhY2tl ci8ke3ZlcnNpb24lLip9L3RyYWNrZXItJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1iNjc0 ODcyNmU0NjVhZDJmNGQ5OTE1NjA2MzRiMWZkMGRmODg0MWYzZDk4MWIzYjgzN2M0MTYyYWJlZGYw OGExCitjaGVja3N1bT01Nzc5NTIyNDRhYjk3N2M3OGIwYjg4ZTJmNjNjNDE5N2VhYmExNmU0ZDY2 YmZmNjkyYjdmNTg5OTNlMDY1MTZkCiAKIGlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgogCWhv c3RtYWtlZGVwZW5kcys9IiBkYnVzIgoKRnJvbSA1MjNhZWY4ZmQxMTI4MDU3NjIwOGU0NDM5NDlk ZGI2NDBlZDNmMjIwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNh IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggMTYvODNdIGZvbGtzOiB1cGRhdGUgdG8gMC4xNC4wCgotLS0K IGNvbW1vbi9zaGxpYnMgICAgICAgICAgfCAgNyArKysrLS0tCiBzcmNwa2dzL2ZvbGtzL3RlbXBs YXRlIHwgMjggKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAy MiBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb21tb24vc2hs aWJzIGIvY29tbW9uL3NobGlicwppbmRleCA2NDI0YmU0MGY4Zi4uMDQ4NzI0MDk1NDcgMTAwNjQ0 Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtODMyLDkgKzgzMiwx MCBAQCBsaWJkbXIuc28uMC4xIGRlZXBpbi1tb3ZpZS1yZWJvcm4tMy4yLjVfMQogbGliZ2pzLnNv LjAgZ2pzLTEuNjUuMl8xCiBsaWJ0ZWxlcGF0aHktZ2xpYi5zby4wIHRlbGVwYXRoeS1nbGliLTAu MTUuNV8xCiBsaWJhY2NvdW50c3NlcnZpY2Uuc28uMCBhY2NvdW50c3NlcnZpY2UtMC42LjRfMQot bGliZm9sa3Muc28uMjUgZm9sa3MtMC45LjVfMQotbGliZm9sa3MtdGVsZXBhdGh5LnNvLjI1IGZv bGtzLTAuOS41XzEKLWxpYmZvbGtzLWVkcy5zby4yNSBmb2xrcy0wLjkuNV8xCitsaWJmb2xrcy5z by4yNSBmb2xrcy0wLjE0LjBfMQorbGliZm9sa3MtZHVtbXkuc28uMjUgZm9sa3MtMC4xNC4wXzEK K2xpYmZvbGtzLXRlbGVwYXRoeS5zby4yNSBmb2xrcy0wLjE0LjBfMQorbGliZm9sa3MtZWRzLnNv LjI1IGZvbGtzLTAuMTQuMF8xCiBsaWJuaWNlLnNvLjEwIGxpYm5pY2UtMC4xLjBfMQogbGliZ3Vw bnAtaWdkLTEuMC5zby40IGd1cG5wLWlnZC0wLjIuMF8xCiBsaWJ0ZWxlcGF0aHktbG9nZ2VyLnNv LjMgdGVsZXBhdGh5LWxvZ2dlci0wLjYuMF8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL2ZvbGtzL3Rl bXBsYXRlIGIvc3JjcGtncy9mb2xrcy90ZW1wbGF0ZQppbmRleCAzMzEwYzU0ZmFkZC4uYjA3NmI5 NGJlYTIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZm9sa3MvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9m b2xrcy90ZW1wbGF0ZQpAQCAtMSwyMSArMSwyNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZm9s a3MnCiBwa2duYW1lPWZvbGtzCi12ZXJzaW9uPTAuMTMuMQotcmV2aXNpb249MgordmVyc2lvbj0w LjE0LjAKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCi1idWlsZF9oZWxwZXI9Z2lyCi1j b25maWd1cmVfYXJncz0iLURiX2x0bz1mYWxzZSAtRGxpYnNvY2lhbHdlYi1iYWNrZW5kPWZhbHNl IgotaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGludGx0b29sIGdsaWItZGV2ZWwgdmFsYSBw eXRob24gZ29iamVjdC1pbnRyb3NwZWN0aW9uCi0gZXZvbHV0aW9uLWRhdGEtc2VydmVyLWRldmVs IgorYnVpbGRfaGVscGVyPSJnaXIgcWVtdSIKK2NvbmZpZ3VyZV9hcmdzPSItRGJfbHRvPWZhbHNl IgoraG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGludGx0b29sIGdsaWItZGV2ZWwgcHl0aG9u MyBweXRob24zLWRidXNtb2NrCisgZXZvbHV0aW9uLWRhdGEtc2VydmVyLWRldmVsICQodm9wdF9p ZiBnaXIgdmFsYSkiCiBtYWtlZGVwZW5kcz0icmVhZGxpbmUtZGV2ZWwgdGVsZXBhdGh5LWdsaWIt ZGV2ZWwgemVpdGdlaXN0LWRldmVsCi0gbGliZ2VlMDgtZGV2ZWwgZXZvbHV0aW9uLWRhdGEtc2Vy dmVyLWRldmVsIHRyYWNrZXItZGV2ZWwiCisgbGliZ2VlMDgtZGV2ZWwgZXZvbHV0aW9uLWRhdGEt c2VydmVyLWRldmVsIHRyYWNrZXItZGV2ZWwKKyAkKHZvcHRfaWYgZ2lyIHZhbGEtZGV2ZWwpIgog ZGVwZW5kcz0iemVpdGdlaXN0Igogc2hvcnRfZGVzYz0iR09iamVjdCBMaWJyYXJ5IHRvIGFnZ3Jl Z2F0ZSBwZW9wbGUgaW50byBtZXRhY29udGFjdHMiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8 Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21l cGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9Gb2xrcyIKIGRpc3RmaWxlcz0i JHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNp b259LnRhci54eiIKLWNoZWNrc3VtPTNkZjFjNjYzYjgyZmUyMTFhZWFkMmIzMWNhZTFmYzQxZDEy NGU4NTQzNjM3NTc2MmY2NzQ1YzQ1YmE0NmFhNWQKK2NoZWNrc3VtPWQ2ZTc3OGRhNjM3ZDNiMzNm ZDlhNmI0NTExNWU4MTU3ZDg4NjgyMTFkYzA4Yjk0M2QxMDc1YjVlYjcyODJiYjkKKworYnVpbGRf b3B0aW9ucz0iZ2lyIgoraWYgWyAteiAiJENST1NTX0JVSUxEIiBdOyB0aGVuCisJYnVpbGRfb3B0 aW9uc19kZWZhdWx0PSJnaXIiCitmaQogCiBmb2xrcy1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVu ZHM9IiR7bWFrZWRlcGVuZHN9ICR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIK QEAgLTI0LDcgKzMwLDkgQEAgZm9sa3MtZGV2ZWxfcGFja2FnZSgpIHsKIAkJdm1vdmUgdXNyL2lu Y2x1ZGUKIAkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKIAkJdm1vdmUgInVzci9saWIvKi5zbyIK LQkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKLQkJdm1vdmUgdXNyL3NoYXJlL2dpci0xLjAKKwkJaWYg WyAiJGJ1aWxkX29wdGlvbl9naXIiIF07IHRoZW4KKwkJCXZtb3ZlIHVzci9zaGFyZS9naXItMS4w CisJCQl2bW92ZSB1c3Ivc2hhcmUvdmFsYQorCQlmaQogCX0KIH0KCkZyb20gMjE3ZTZhNjBkMGI4 ZWZjZWNjYWIwN2Q3NjRkZTVhZWNjODc5ZTIzMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVn IDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDE3LzgzXSBkY29uZi1lZGl0b3I6 IHVwZGF0ZSB0byAzLjM2LjQKCi0tLQogc3JjcGtncy9kY29uZi1lZGl0b3IvdGVtcGxhdGUgfCA2 ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmNwa2dzL2Rjb25mLWVkaXRvci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZGNv bmYtZWRpdG9yL3RlbXBsYXRlCmluZGV4IGRlMjUwYmJjOGE5Li44ODllNzk0ZTZiMiAxMDA2NDQK LS0tIGEvc3JjcGtncy9kY29uZi1lZGl0b3IvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9kY29uZi1l ZGl0b3IvdGVtcGxhdGUKQEAgLTEsMTMgKzEsMTMgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Rj b25mLWVkaXRvcicKIHBrZ25hbWU9ZGNvbmYtZWRpdG9yCi12ZXJzaW9uPTMuMzYuMAordmVyc2lv bj0zLjM2LjQKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCi1ob3N0bWFrZWRlcGVuZHM9 ImRvY2Jvb2steHNsIGdsaWItZGV2ZWwgbGlieHNsdCBwa2ctY29uZmlnIHZhbGEiCitob3N0bWFr ZWRlcGVuZHM9ImRvY2Jvb2steHNsIGdsaWItZGV2ZWwgbGlieHNsdCBwa2ctY29uZmlnIHZhbGEg Z2V0dGV4dCIKIG1ha2VkZXBlbmRzPSJkY29uZi1kZXZlbCBndGsrMy1kZXZlbCIKIHNob3J0X2Rl c2M9Ikxvdy1sZXZlbCBjb25maWd1cmF0aW9uIHN5c3RlbSAtIEdUSysgZWRpdG9yIgogbWFpbnRh aW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0z LjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9k Y29uZiIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0v JHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTcyZWVkMDU2NzA5MTdmOGU0 MzIwMGU0MGNjYzZiZTYwMjExZjBhODdiMDE3NTM0ZWFjMWZkNmM3MTczYTA2OTMKK2NoZWNrc3Vt PTNlYzMwOWJiYzkyMGIxNWMyYTU2ODNlMWE0OTYyYWJmNjkxMWE4NzYyYzhhMTEzYzRkNzk0Zjdl MGVhNTNlNzkKCkZyb20gZmUxZjQ1MjlmMDNjMThhOGIwMmUxYjg3NTg4Mzk3MmRiY2NiZDM4OCBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFm b3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDog W1BBVENIIDE4LzgzXSBkZXZoZWxwOiB1cGRhdGUgdG8gMy4zNy4xCgotLS0KIHNyY3BrZ3MvZGV2 aGVscC90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2RldmhlbHAvdGVtcGxhdGUgYi9z cmNwa2dzL2RldmhlbHAvdGVtcGxhdGUKaW5kZXggYTFjMmRjYmI3NjIuLjljNWM0MDc2M2M5IDEw MDY0NAotLS0gYS9zcmNwa2dzL2RldmhlbHAvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9kZXZoZWxw L3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZGV2aGVscCcK IHBrZ25hbWU9ZGV2aGVscAotdmVyc2lvbj0zLjM2LjEKK3ZlcnNpb249My4zNy4xCiByZXZpc2lv bj0xCiBidWlsZF9oZWxwZXI9ImdpciIKIGJ1aWxkX3N0eWxlPW1lc29uCkBAIC0xMSw3ICsxMSw3 IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNl bnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcv QXBwcy9EZXZoZWxwIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJz aW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NGNmOGVjOTMw MmJjNGE3OWUwMWFjNTNiZDljOGI5NWE1OTZmNzFmMzUzNTFmNDhiNjMyNjMyMjdmMDlhOGEzZAor Y2hlY2tzdW09ODFmZmJiOWUxMzdjZDAwMzFhNGY0MzA0YTEyNDRkMGI0MzI4ZTRhN2MwMGQ3NDlh OGZjMGUyYmJhYTMwMDVmOQogCiBkZXZoZWxwLWRldmVsX3BhY2thZ2UoKSB7CiAJc2hvcnRfZGVz Yys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgoKRnJvbSA2MzA3MmUxZDMxZDIxZTI3YzQ3NDgxYjQy MjMwNWNiNTBmMzVhNGViIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29s ZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODow OCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTkvODNdIGdub21lLXNoZWxsOiB1cGRhdGUgdG8gMy4z Ny45MQoKLS0tCiBzcmNwa2dzL2dub21lLXNoZWxsL3RlbXBsYXRlIHwgMTEgKysrKysrKystLS0K IDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9nbm9tZS1zaGVsbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtc2hlbGwv dGVtcGxhdGUKaW5kZXggOTZjNWI4MGExOTQuLjViMTg2ODVlN2IyIDEwMDY0NAotLS0gYS9zcmNw a2dzL2dub21lLXNoZWxsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtc2hlbGwvdGVtcGxh dGUKQEAgLTEsMTIgKzEsMTIgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLXNoZWxsJwog cGtnbmFtZT1nbm9tZS1zaGVsbAotdmVyc2lvbj0zLjM0LjEKK3ZlcnNpb249My4zNy45MQogcmV2 aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj1naXIKIGNvbmZpZ3VyZV9h cmdzPSItRHN5c3RlbWQ9ZmFsc2UiCiBob3N0bWFrZWRlcGVuZHM9ImdvYmplY3QtaW50cm9zcGVj dGlvbiBndGstZG9jIGxpYnhzbHQgcGtnLWNvbmZpZyBweXRob24zIHNhc3NjCi0gYXNjaWlkb2Mg cGVybCBnbGliLWRldmVsIG11dHRlci1kZXZlbCIKKyBhc2NpaWRvYyBwZXJsIGdsaWItZGV2ZWwg bXV0dGVyLWRldmVsIGdldHRleHQgZ2pzLWRldmVsIgogbWFrZWRlcGVuZHM9ImF0LXNwaTItYXRr IGNhcmlib3UtZGV2ZWwgZXZvbHV0aW9uLWRhdGEtc2VydmVyLWRldmVsIGZvbGtzLWRldmVsCiAg Z2NyLWRldmVsIGdqcy1kZXZlbCBnbm9tZS1ibHVldG9vdGgtZGV2ZWwgZ25vbWUtY29udHJvbC1j ZW50ZXItZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbAogIGdub21lLW1lbnVzLWRldmVsIGdzZXR0 aW5ncy1kZXNrdG9wLXNjaGVtYXMtZGV2ZWwgZ3N0cmVhbWVyMS1kZXZlbCBndGsrMy1kZXZlbApA QCAtMjEsNCArMjEsOSBAQCBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0 dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvR25vbWVTaGVsbCIKIGNoYW5nZWxvZz0iaHR0 cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0dOT01FL2dub21lLXNoZWxsL2dub21lLTMt MzAvTkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUu Kn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWNjZDg2NTU5YjljODk3 YzIxOWQyZDJlYmZkYjg0MTNlZmE0YzFiZWU4NDY0MjdjNzUwY2I4YTMwMWIzZjZkMWUKK2NoZWNr c3VtPTdhMjhiOWY4NDczNTk0NWNhNzFiY2ViZDlmZjU1YTAxY2MxNDdmZTE3MjIxOGFhODM1ZDU4 N2RjOGQ0NmNhMDcKKworIyBuZWVkcyBYCitkb19jaGVjaygpIHsKKwk6Cit9CgpGcm9tIDc1ZDc3 NGY3YzAxNGU3MjFkNWI4ZDAyZWRkYzUxOGMyNzhmNDczYmMgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUs IDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAyMC84M10gZ2RtOiB1 cGRhdGUgdG8gMy4zNy45MAoKLS0tCiBzcmNwa2dzL2dkbS90ZW1wbGF0ZSB8IDMxICsrKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCsp LCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dkbS90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvZ2RtL3RlbXBsYXRlCmluZGV4IGJiNWI0ODY5MmQ0Li5kOTQ5OWIzMzYxNyAxMDA2NDQK LS0tIGEvc3JjcGtncy9nZG0vdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nZG0vdGVtcGxhdGUKQEAg LTEsMjcgKzEsMjggQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dkbScKIHBrZ25hbWU9Z2RtCi12 ZXJzaW9uPTMuMzQuMQordmVyc2lvbj0zLjM3LjkwCiByZXZpc2lvbj0xCiBidWlsZF9oZWxwZXI9 ImdpciIKLWJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKLWNvbmZpZ3VyZV9hcmdzPSIkKHZvcHRf ZW5hYmxlIGdpciBpbnRyb3NwZWN0aW9uKQotIC0tZGlzYWJsZS1zY2hlbWFzLWNvbXBpbGUgLS1k aXNhYmxlLXN0YXRpYyAtLXdpdGgtZGVmYXVsdC1wYW0tY29uZmlnPWFyY2gKLSAtLXdpdGgtYXQt c3BpLXJlZ2lzdHJ5ZC1kaXJlY3Rvcnk9L3Vzci9saWJleGVjIC0td2l0aG91dC10Y3Atd3JhcHBl cnMKLSAtLXdpdGgtc2NyZWVuc2hvdC1kaXI9L3Zhci9saWIvZ2RtL2dyZWV0ZXIgLS1zYmluZGly PS91c3IvYmluIC0td2l0aG91dC1wbHltb3V0aAotIC0td2l0aC14YXV0aC1kaXI9L3J1bi9nZG0g LS13aXRoLXBpZC1maWxlPS9ydW4vZ2RtL2dkbS5waWQKLSAtLWRpc2FibGUtc3lzdGVtZC1qb3Vy bmFsIC0td2l0aC1pbml0aWFsLXZ0PTcgLS1lbmFibGUtd2F5bGFuZC1zdXBwb3J0IgorYnVpbGRf c3R5bGU9bWVzb24KK2NvbmZpZ3VyZV9hcmdzPSIKKyAtRGRlZmF1bHQtcGFtLWNvbmZpZz1hcmNo IC1EYXQtc3BpLXJlZ2lzdHJ5ZC1kaXI9L3Vzci9saWJleGVjCisgLUR0Y3Atd3JhcHBlcnM9ZmFs c2UgLURzY3JlZW5zaG90LWRpcj0vdmFyL2xpYi9nZG0vZ3JlZXRlcgorIC1EcGx5bW91dGg9ZGlz YWJsZWQgLUR4YXV0aC1kaXI9L3J1bi9nZG0gLURwaWQtZmlsZT0vcnVuL2dkbS9nZG0ucGlkCisg LURzeXN0ZW1kLWpvdXJuYWw9ZmFsc2UgLURpbml0aWFsLXZ0PTcgLUR3YXlsYW5kLXN1cHBvcnQ9 dHJ1ZQorIC1Ec2VsaW51eD1kaXNhYmxlZCAtRGxpYmF1ZGl0PWRpc2FibGVkCisgLURzeXN0ZW1k c3lzdGVtdW5pdGRpcj0vdG1wIC1Ec3lzdGVtZHVzZXJ1bml0ZGlyPS90bXAiCiBob3N0bWFrZWRl cGVuZHM9ImRjb25mIGdldHRleHQgaXRzdG9vbCBwa2ctY29uZmlnIgogbWFrZWRlcGVuZHM9ImFj Y291bnRzc2VydmljZS1kZXZlbCBlbG9naW5kLWRldmVsIGdldHRleHQtZGV2ZWwgZ2xpYi1kZXZl bAogIGlzby1jb2RlcyBsaWJTTS1kZXZlbCBsaWJjYW5iZXJyYS1kZXZlbCBuc3MtZGV2ZWwgcGFt LWRldmVsIHVwb3dlci1kZXZlbCIKLWRlcGVuZHM9Imdub21lLXNldHRpbmdzLWRhZW1vbiBnbm9t ZS1zaGVsbCB4b3JnLXNlcnZlciB4b3JnLXNlcnZlci14d2F5bGFuZAotIHhyZGIiCitkZXBlbmRz PSJnbm9tZS1zZXR0aW5ncy1kYWVtb24gZ25vbWUtc2hlbGwgZ25vbWUtc2Vzc2lvbiBnbm9tZS10 aGVtZXMtZXh0cmEKKyBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzIHhvcmctc2VydmVyIHhvcmct c2VydmVyLXh3YXlsYW5kIHhyZGIiCiBjaGVja2RlcGVuZHM9ImNoZWNrLWRldmVsIgogc2hvcnRf ZGVzYz0iR05PTUUgRGlzcGxheSBNYW5hZ2VyIgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdv dHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFn ZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9HRE0iCiBkaXN0ZmlsZXM9IiR7R05P TUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50 YXIueHoiCi1jaGVja3N1bT1lODVkZjY1N2FhOGQ5MzYxYWY0ZmIxMjIwMTRkOGYxMjNhOTNiZmU0 NWE3NjYyZmJhMmIzNzNkODM5ZGJkOGQzCitjaGVja3N1bT01M2MyOTExZThiNzI5ODY0MmY0MWJi ZDU3MTlmMzg1ZTRmZjczNDQwNjEyN2EwMDJiM2YxNTczMjE2YTg0ZTEyCiAKIGNvbmZfZmlsZXM9 IgogCS9ldGMvZ2RtL2N1c3RvbS5jb25mCkBAIC00MywxMCArNDQsMTYgQEAgaWYgWyAiJENST1NT X0JVSUxEIiBdOyB0aGVuCiAJaG9zdG1ha2VkZXBlbmRzKz0iIGdsaWItZGV2ZWwgcGFtLWRldmVs IgogZmkKIAorcHJlX2NvbmZpZ3VyZSgpIHsKKwkjIG9ubHkgdXNlZCB0byBndWVzcyB1bml0IGZp bGUgaW5zdGFsbGF0aW9uIHBhdGgKKwl2c2VkIC1pICdzLF5zeXN0ZW1kX2RlcCwjc3lzdGVtZF9k ZXAsJyBtZXNvbi5idWlsZAorfQorCiBwb3N0X2luc3RhbGwoKSB7CiAJdmluc3RhbGwgJEZJTEVT RElSL1hzZXNzaW9uIDc1NSBldGMvZ2RtCiAKIAl2c2VkIC1pICJzL3BhbV9zeXN0ZW1kXC5zby9w YW1fZWxvZ2luZC5zby8iICRERVNURElSL2V0Yy9wYW0uZC8qCisJcm0gLXJmICR7REVTVERJUn0v dG1wCiAKIAkjIHJ1bml0IHNlcnZpY2UKIAl2c3YgZ2RtCkBAIC02MCw3ICs2Nyw3IEBAIGxpYmdk bV9wYWNrYWdlKCkgewogfQogCiBnZG0tZGV2ZWxfcGFja2FnZSgpIHsKLQlkZXBlbmRzPSJsaWJn ZG0+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCisJZGVwZW5kcz0ibGliZ2RtPj0ke3ZlcnNpb259 XyR7cmV2aXNpb259IGVsb2dpbmQtZGV2ZWwiCiAJc2hvcnRfZGVzYys9IiAtIGRldmVsb3BtZW50 IGZpbGVzIgogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSB1c3IvaW5jbHVkZQoKRnJvbSA4MTk3 M2EwNDI2ZmVjMjIzZDllYjc5YzllNTA0YzM2NjQ5YmQ2ZWQ4IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1 LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjEvODNdIGdub21l LXNlc3Npb246IHVwZGF0ZSB0byAzLjM3LjAKCi0tLQogc3JjcGtncy9nbm9tZS1zZXNzaW9uL3Bh dGNoZXMvbm8tc3lzdGVtZC1kZXAucGF0Y2ggfCAxNCArKysrKysrKysrKysrKwogc3JjcGtncy9n bm9tZS1zZXNzaW9uL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgfCAxMCArKysrKysrLS0t CiAyIGZpbGVzIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbm9tZS1zZXNzaW9uL3BhdGNoZXMvbm8tc3lzdGVtZC1k ZXAucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXNlc3Npb24vcGF0Y2hlcy9uby1z eXN0ZW1kLWRlcC5wYXRjaCBiL3NyY3BrZ3MvZ25vbWUtc2Vzc2lvbi9wYXRjaGVzL25vLXN5c3Rl bWQtZGVwLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44ZTU1 YTBmNzk4NwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZ25vbWUtc2Vzc2lvbi9wYXRjaGVz L25vLXN5c3RlbWQtZGVwLnBhdGNoCkBAIC0wLDAgKzEsMTQgQEAKKy0tLSBtZXNvbi5idWlsZAor KysrIG1lc29uLmJ1aWxkCitAQCAtMTMwLDEwICsxMzAsNyBAQCBpZiBlbmFibGVfc3lzdGVtZCBv ciBlbmFibGVfY29uc29sZWtpdAorIAorICAgIyBDaGVjayBmb3Igc3lzdGVtZAorICAgaWYgZW5h YmxlX3N5c3RlbWQKKy0gICAgc3lzdGVtZF9kZXAgPSBkZXBlbmRlbmN5KCdzeXN0ZW1kJywgdmVy c2lvbjogJz49IDI0MicsIHJlcXVpcmVkOiB0cnVlKQorLSAgICBzeXN0ZW1kX3VzZXJ1bml0ZGly ID0gc3lzdGVtZF9kZXAuZ2V0X3BrZ2NvbmZpZ192YXJpYWJsZSgnc3lzdGVtZHVzZXJ1bml0ZGly JywKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGVmaW5lX3ZhcmlhYmxlOiBbJ3ByZWZpeCcsIHByZWZpeF0pCistCisrICAgIHN5 c3RlbWRfdXNlcnVuaXRkaXIgPSAnL3RtcCcKKyAgICAgbGlic3lzdGVtZF9kZXAgPSBkZXBlbmRl bmN5KCdsaWJzeXN0ZW1kJywgdmVyc2lvbjogJz49IDIwOScsIHJlcXVpcmVkOiBmYWxzZSkKKyAg ICAgc2Vzc2lvbl9iaW5fZGVwcyArPSBsaWJzeXN0ZW1kX2RlcAorIApkaWZmIC0tZ2l0IGEvc3Jj cGtncy9nbm9tZS1zZXNzaW9uL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1zZXNzaW9uL3RlbXBs YXRlCmluZGV4IDQ0NDRmMTYyYmYxLi4wN2NhNzYyNjIyOCAxMDA2NDQKLS0tIGEvc3JjcGtncy9n bm9tZS1zZXNzaW9uL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtc2Vzc2lvbi90ZW1wbGF0 ZQpAQCAtMSw5ICsxLDkgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLXNlc3Npb24nCiBw a2duYW1lPWdub21lLXNlc3Npb24KLXZlcnNpb249My4zNC4xCit2ZXJzaW9uPTMuMzcuMAogcmV2 aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24KLWNvbmZpZ3VyZV9hcmdzPSItRHN5c3RlbWRfam91 cm5hbD1mYWxzZSIKK2NvbmZpZ3VyZV9hcmdzPSItRHN5c3RlbWRfam91cm5hbD1mYWxzZSAtRHN5 c3RlbWRfc2Vzc2lvbj1kaXNhYmxlIgogaG9zdG1ha2VkZXBlbmRzPSJnbGliLWRldmVsIGludGx0 b29sIHBrZy1jb25maWcgeG1sdG8iCiBtYWtlZGVwZW5kcz0iZWxvZ2luZC1kZXZlbCBnbm9tZS1k ZXNrdG9wLWRldmVsIGd0ayszLWRldmVsIGpzb24tZ2xpYi1kZXZlbAogIGxpYmdsaWItZGV2ZWwg bGliSUNFLWRldmVsIGxpYlNNLWRldmVsIGxpYlh0c3QtZGV2ZWwgc3RhcnR1cC1ub3RpZmljYXRp b24tZGV2ZWwKQEAgLTE1LDQgKzE1LDggQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRv eEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIExHUEwtMi4xLW9y LWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1z ZXNzaW9uIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4q fS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZDc4MDFmZTJkNWE3NTFi MTljYjU4MDgxNzcxMzE2YTc2YWFiZDVjNTUwY2Q1OGQ0ZTRjNmE1YTRlZDM1NjY2MAorY2hlY2tz dW09Y2IxNDBmMmI4ZWU3NjhmZjhiM2RjZTNkZGI0NzllNzFlOTUxMzhlOTA0YzgzNDNhMzhjNjBh MmQxZTg1Zjk4ZgorCitwb3N0X2luc3RhbGwoKSB7CisJcm0gLXJmICR7REVTVERJUn0vdG1wCit9 CgpGcm9tIDljYWRlYjFkN2I5MWJmMDE2YjYxNDM5ZmIwOTc4MjZlNWI5YWU0ODYgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3Jn PgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAy Mi84M10gZ25vbWUtb25saW5lLWFjY291bnRzOiB1cGRhdGUgdG8gMy4zNy45MAoKLS0tCiBzcmNw a2dzL2dub21lLW9ubGluZS1hY2NvdW50cy90ZW1wbGF0ZSB8IDEyICsrKysrLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmNwa2dzL2dub21lLW9ubGluZS1hY2NvdW50cy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUt b25saW5lLWFjY291bnRzL3RlbXBsYXRlCmluZGV4IGQ2YTIyZDlkYTcyLi4yOTk4MGQ0MzQyNCAx MDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1vbmxpbmUtYWNjb3VudHMvdGVtcGxhdGUKKysrIGIv c3JjcGtncy9nbm9tZS1vbmxpbmUtYWNjb3VudHMvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1vbmxpbmUtYWNjb3VudHMnCiBwa2duYW1lPWdub21l LW9ubGluZS1hY2NvdW50cwotdmVyc2lvbj0zLjM2LjAKK3ZlcnNpb249My4zNy45MAogcmV2aXNp b249MQogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogYnVpbGRfaGVscGVyPSJnaXIiCkBAIC0x MSw3ICsxMSw3IEBAIGNvbmZpZ3VyZV9hcmdzPSIkKHZvcHRfZW5hYmxlIGdpciBpbnRyb3NwZWN0 aW9uKQogIC0tZW5hYmxlLW93bmNsb3VkIC0tZW5hYmxlLXdpbmRvd3MtbGl2ZSAtLWVuYWJsZS1w b2NrZXQKICAtLWVuYWJsZS1sYXN0Zm0gLS1lbmFibGUtbWVkaWEtc2VydmVyIgogaG9zdG1ha2Vk ZXBlbmRzPSJkb2Nib29rLXhzbCBnZXR0ZXh0LWRldmVsIGdsaWItZGV2ZWwgZ25vbWUtY29tbW9u Ci0gbGlieHNsdCBwa2ctY29uZmlnICQodm9wdF9pZiB2YWxhIHZhbGEpIgorIGxpYnhzbHQgcGtn LWNvbmZpZyAkKHZvcHRfaWYgZ2lyIHZhbGEpIgogbWFrZWRlcGVuZHM9Imdjci1kZXZlbCBndGsr My1kZXZlbCBqc29uLWdsaWItZGV2ZWwgbGlibm90aWZ5LWRldmVsIGxpYnNlY3JldC1kZXZlbAog IGxpYnNvdXAtZGV2ZWwgbWl0LWtyYjUtZGV2ZWwgcmVzdC1kZXZlbCB0ZWxlcGF0aHktZ2xpYi1k ZXZlbCB3ZWJraXQyZ3RrLWRldmVsIgogZGVwZW5kcz0iaGljb2xvci1pY29uLXRoZW1lIgpAQCAt MjAsMTAgKzIwLDEwIEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4 Lm9yZz4iCiBsaWNlbnNlPSJMR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dp a2kuZ25vbWUub3JnL1Byb2plY3RzL0dub21lT25saW5lQWNjb3VudHMiCiBkaXN0ZmlsZXM9IiR7 R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9u fS50YXIueHoiCi1jaGVja3N1bT0xYzhmNjI5OTA4MzNjYTQxMTg4ZGJiODBjNWU5OWQ5OWI1N2E2 MjYwOGNhNjc1YmJjZDM3YmMyMjQ0NzQyZjJlCitjaGVja3N1bT05ZjY5ODJjODk2ZTYyMzVhMmU4 NWI4YTQ5N2M3YmY2M2E0YTI4OGI1Njc4ZGI0MGRjMzczNTE1ZWZiZWRiMWJiCiAKLWJ1aWxkX29w dGlvbnM9ImdpciB2YWxhIgotYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIgdmFsYSIKK2J1aWxk X29wdGlvbnM9ImdpciIKK2J1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgogCiBnbm9tZS1vbmxp bmUtYWNjb3VudHMtZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSJndGsrMy1kZXZlbCAke3Nv dXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCkBAIC0zNSw4ICszNSw2IEBAIGdub21l LW9ubGluZS1hY2NvdW50cy1kZXZlbF9wYWNrYWdlKCkgewogCQl2bW92ZSB1c3IvbGliL2dvYS0x LjAKIAkJaWYgWyAiJGJ1aWxkX29wdGlvbl9naXIiIF07IHRoZW4KIAkJCXZtb3ZlIHVzci9zaGFy ZS9naXItMS4wCi0JCWZpCi0JCWlmIFsgIiRidWlsZF9vcHRpb25fdmFsYSIgXTsgdGhlbgogCQkJ dm1vdmUgdXNyL3NoYXJlL3ZhbGEKIAkJZmkKIAl9CgpGcm9tIGUwYTAzMjFhOTlkYmY1OGM5MmMx N2Q3ODY1NTY2YjgyYzczOWY3NWYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmll bCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4 OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAyMy84M10gZ25vbWUtaW5pdGlhbC1zZXR1cDog dXBkYXRlIHRvIDMuMzcuOTEuMQoKLS0tCiBzcmNwa2dzL2dub21lLWluaXRpYWwtc2V0dXAvdGVt cGxhdGUgfCAxMyArKysrKysrLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCsp LCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtaW5pdGlhbC1zZXR1 cC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtaW5pdGlhbC1zZXR1cC90ZW1wbGF0ZQppbmRleCBh YmE1YTA5NGMyOC4uOTc0YzlmZGE3ZTkgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtaW5pdGlh bC1zZXR1cC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWluaXRpYWwtc2V0dXAvdGVtcGxh dGUKQEAgLTEsMTAgKzEsMTEgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWluaXRpYWwt c2V0dXAnCiBwa2duYW1lPWdub21lLWluaXRpYWwtc2V0dXAKLXZlcnNpb249My4zNC4xCi1yZXZp c2lvbj0yCit2ZXJzaW9uPTMuMzcuOTEuMQorcmV2aXNpb249MQogYnVpbGRfc3R5bGU9bWVzb24K LWNvbmZpZ3VyZV9hcmdzPSItRHNvZnR3YXJlLXNvdXJjZXM9ZGlzYWJsZWQgLURzeXN0ZW1kPWZh bHNlIgotaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGdsaWItZGV2ZWwiCitjb25maWd1cmVf YXJncz0iLURzb2Z0d2FyZS1zb3VyY2VzPWRpc2FibGVkIC1EcGFyZW50YWxfY29udHJvbHM9ZGlz YWJsZWQKKyAtRHN5c3RlbWQ9ZmFsc2UiCitob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgZ2xp Yi1kZXZlbCBnZXR0ZXh0IgogbWFrZWRlcGVuZHM9Ik5ldHdvcmtNYW5hZ2VyLWRldmVsIGFjY291 bnRzc2VydmljZS1kZXZlbCBsaWJnbGliLWRldmVsCiAgZ25vbWUtZGVza3RvcC1kZXZlbCBjaGVl c2UtZGV2ZWwgbGliZ3dlYXRoZXItZGV2ZWwgd2Via2l0Mmd0ay1kZXZlbAogIGdub21lLW9ubGlu ZS1hY2NvdW50cy1kZXZlbCBnZG0tZGV2ZWwgbGlicHdxdWFsaXR5LWRldmVsCkBAIC0xNiw1ICsx Nyw1IEBAIHNob3J0X2Rlc2M9IkdOT01FIGluaXRpYWwgc2V0dXAiCiBtYWludGFpbmVyPSJFbm5v IEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRl ciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0Rlc2lnbi9PUy9Jbml0aWFsU2V0 dXAiCi1kaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7 cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1lNzFmMTBlZjZiNjMxY2Q5MmZm ZGU3NzRlNDEzMGIzMmIyNDk0YjRkZjVlZjI4ODM3NWQ4YjE5NTdlZWFiZmExCitkaXN0ZmlsZXM9 IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLiouKn0vJHtwa2duYW1lfS0ke3Zl cnNpb259LnRhci54eiIKK2NoZWNrc3VtPWVlNmUwNGE0OWNhM2FkNWY1Mzg1OGVmNjZjYjY5NDlm NjhjYTkyMDUwOWExNjdhOTdhOWZhY2NkZTI3ZWFhZWYKCkZyb20gNGIxYzhmZWU2MDM0ZTg1YmQy MDQzMDMyNDk3NTY2ZWQ3OGRhY2FlMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFu aWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAg MTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDI0LzgzXSB4ZGctZGVza3RvcC1wb3J0YWwt Z3RrOiBidW1wCgotLS0KIHNyY3BrZ3MveGRnLWRlc2t0b3AtcG9ydGFsLWd0ay90ZW1wbGF0ZSB8 IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MveGRnLWRlc2t0b3AtcG9ydGFsLWd0ay90ZW1wbGF0ZSBiL3NyY3Br Z3MveGRnLWRlc2t0b3AtcG9ydGFsLWd0ay90ZW1wbGF0ZQppbmRleCBkZWUwZTQ2MzM4Ni4uNTU4 Yzc1ZjUzOWQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MveGRnLWRlc2t0b3AtcG9ydGFsLWd0ay90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL3hkZy1kZXNrdG9wLXBvcnRhbC1ndGsvdGVtcGxhdGUKQEAgLTEs NyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICd4ZGctZGVza3RvcC1wb3J0YWwtZ3RrJwog cGtnbmFtZT14ZGctZGVza3RvcC1wb3J0YWwtZ3RrCiB2ZXJzaW9uPTEuNi4wCi1yZXZpc2lvbj0x CityZXZpc2lvbj0yCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBob3N0bWFrZWRlcGVuZHM9 InBrZy1jb25maWcgbGlieHNsdCBnbGliLWRldmVsIHhkZy1kZXNrdG9wLXBvcnRhbCBnZXR0ZXh0 IgogbWFrZWRlcGVuZHM9ImZsYXRwYWstZGV2ZWwgZ3RrKzMtZGV2ZWwgbGlieHNsdC1kZXZlbCBs aWJnbGliLWRldmVsCgpGcm9tIGFiZjc1ZjBhY2RiZTI2NGRhODUwMzE3MGE0ZTJjZmIyYzhmN2U5 NzggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBv Y3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1Ympl Y3Q6IFtQQVRDSCAyNS84M10gZ25vbWUtc2hlbGwtZXh0ZW5zaW9uczogdXBkYXRlIHRvIDMuMzcu OTEKCi0tLQogc3JjcGtncy9nbm9tZS1zaGVsbC1leHRlbnNpb25zL3RlbXBsYXRlIHwgNiArKyst LS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1zaGVsbC1leHRlbnNpb25zL3RlbXBsYXRlIGIvc3JjcGtn cy9nbm9tZS1zaGVsbC1leHRlbnNpb25zL3RlbXBsYXRlCmluZGV4IDk3MTY4YjQwZjY2Li5kYjg4 OTgwY2Q0YyAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1zaGVsbC1leHRlbnNpb25zL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy90ZW1wbGF0ZQpAQCAtMSwx NSArMSwxNSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucycK IHBrZ25hbWU9Z25vbWUtc2hlbGwtZXh0ZW5zaW9ucwotdmVyc2lvbj0zLjM0LjEKK3ZlcnNpb249 My4zNy45MQogcmV2aXNpb249MQogYXJjaHM9bm9hcmNoCiBidWlsZF9zdHlsZT1tZXNvbgogY29u ZmlndXJlX2FyZ3M9Ii1EZXh0ZW5zaW9uX3NldD1hbGwiCi1ob3N0bWFrZWRlcGVuZHM9InBrZy1j b25maWciCitob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgZ2V0dGV4dCIKIGRlcGVuZHM9Imdu b21lLXNoZWxsPj0ke3ZlcnNpb259IG5hdXRpbHVzIHVuemlwIgogc2hvcnRfZGVzYz0iRXh0ZW5z aW9ucyBmb3IgR05PTUUgc2hlbGwsIGluY2x1ZGluZyBjbGFzc2ljIG1vZGUiCiBtYWludGFpbmVy PSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1v ci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL1Byb2plY3RzL0dub21l U2hlbGwvRXh0ZW5zaW9ucyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7 dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWIwYWQ1 MTE0M2IxYmY0MGRlZjRhMTBmOGZkMGFiMGZmYjQ3MjE4MzA0ODAwNzk0ZTYyY2FkZDI5ZDBhY2M3 NWIKK2NoZWNrc3VtPThkNjJjNjdhMzk1Y2E1NjNmYzMzYzNhMjEwZGVjNDZhNmM4MTE1MTAzOTUy Y2MwZDkyMDdmM2QyZWZkYjk0NTEKCkZyb20gNzVmNjJkM2ZkMWVmZWU1MGI0YjY3MTAwZTMwZDg5 MzY1NWRkZTI0OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8 ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAy MDAKU3ViamVjdDogW1BBVENIIDI2LzgzXSBuYXV0aWx1czogdXBkYXRlIHRvIDMuMzcuOTEKCi0t LQogc3JjcGtncy9uYXV0aWx1cy90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwg MyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbmF1 dGlsdXMvdGVtcGxhdGUgYi9zcmNwa2dzL25hdXRpbHVzL3RlbXBsYXRlCmluZGV4IDUzN2E4NTE5 NzNmLi5kOWVlYmM1ZjU3YyAxMDA2NDQKLS0tIGEvc3JjcGtncy9uYXV0aWx1cy90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL25hdXRpbHVzL3RlbXBsYXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnbmF1dGlsdXMnCiBwa2duYW1lPW5hdXRpbHVzCi12ZXJzaW9uPTMuMzYuMS4x Cit2ZXJzaW9uPTMuMzcuOTEKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9o ZWxwZXI9ImdpciIKQEAgLTExLDEzICsxMSwxMyBAQCBtYWtlZGVwZW5kcz0iZXhlbXBpLWRldmVs IGdub21lLWF1dG9hci1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsIGd0ayszLWRldmVsCiAgbGli WDExLWRldmVsIGxpYnhtbDItZGV2ZWwgdHJhY2tlci1kZXZlbCBnc3QtcGx1Z2lucy1iYXNlMS1k ZXZlbCIKIGRlcGVuZHM9ImRlc2t0b3AtZmlsZS11dGlscyBnc2V0dGluZ3MtZGVza3RvcC1zY2hl bWFzIGhpY29sb3ItaWNvbi10aGVtZQogIHRyYWNrZXItbWluZXJzIHRyYWNrZXIiCi1jaGVja2Rl cGVuZHM9InRyYWNrZXIiCitjaGVja2RlcGVuZHM9InRyYWNrZXIgdHJhY2tlci1taW5lcnMiCiBz aG9ydF9kZXNjPSJHTk9NRSBmaWxlIG1hbmFnZXIiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8 Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciwgTEdQTC0y LjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9OYXV0aWx1cyIK IGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbjo6NH0vJHtwa2du YW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWY5MjUyZjUwODIxMWQ5ZjM2OGE0OWRi Njk3ODkwZjg5NWQwODBmMDk1OTBhZWNhZjMzODAzYTUxOWRlZjdiZGUKK2NoZWNrc3VtPWY3OTM4 YmE3MDMwMWZiOTNlNGI4NGZjOWQwMGY3YjkxNzg0ZDI5NTcyOWU0MjQyYzIyYzg5YTdlYWM4Njdj NmYKIAogYnVpbGRfb3B0aW9ucz0iZ2lyIgogYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCgpG cm9tIDgwMzA0ZGZkYzJhYTdkNjg3MGFjZmVhN2VjMzY1MzNhZDhmZTg5ODQgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpE YXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAyNy84 M10gZ25vbWUtbWFwczogdXBkYXRlIHRvIDMuMzcuOTEKCi0tLQogc3JjcGtncy9nbm9tZS1tYXBz L3RlbXBsYXRlIHwgMTAgKysrKystLS0tLQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygr KSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLW1hcHMvdGVtcGxh dGUgYi9zcmNwa2dzL2dub21lLW1hcHMvdGVtcGxhdGUKaW5kZXggMDMwMGJlNjA1OTkuLjI2MjBk MjZlZjM1IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLW1hcHMvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9nbm9tZS1tYXBzL3RlbXBsYXRlCkBAIC0xLDE2ICsxLDE2IEBACiAjIFRlbXBsYXRlIGZp bGUgZm9yICdnbm9tZS1tYXBzJwogcGtnbmFtZT1nbm9tZS1tYXBzCi12ZXJzaW9uPTMuMzYuMQor dmVyc2lvbj0zLjM3LjkxCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgotaG9zdG1ha2Vk ZXBlbmRzPSJnbGliLWRldmVsIGdvYmplY3QtaW50cm9zcGVjdGlvbiBpbnRsdG9vbCBwa2ctY29u ZmlnIEFwcFN0cmVhbSIKK2J1aWxkX2hlbHBlcj0iZ2lyIgoraG9zdG1ha2VkZXBlbmRzPSJnbGli LWRldmVsIGludGx0b29sIHBrZy1jb25maWcgQXBwU3RyZWFtIgogbWFrZWRlcGVuZHM9ImZvbGtz LWRldmVsIGdlb2NsdWUyLWRldmVsIGdlb2NvZGUtZ2xpYi1kZXZlbCBnanMtZGV2ZWwKLSBnbm9t ZS1kZXNrdG9wLWRldmVsIGxpYmNoYW1wbGFpbi1kZXZlbCByZXN0LWRldmVsIgorIGdub21lLWRl c2t0b3AtZGV2ZWwgbGliY2hhbXBsYWluLWRldmVsIHJlc3QtZGV2ZWwgbGliaGFuZHkxLWRldmVs IgogZGVwZW5kcz0iZ2VvY2x1ZTIgZ2ZiZ3JhcGggZ2pzIgogc2hvcnRfZGVzYz0iR05PTUUgbWFw cyBhcHBsaWNhdGlvbiIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4 Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lr aS5nbm9tZS5vcmcvQXBwcy9NYXBzIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFt ZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09 MWEzMmVmZDk2YWQ4OThmNzdhNjM2ZDJkMDQ2M2Q3NTcwMDliNGI4MTIyNTljODlmZmRjYjkxZDZh ZmMwNTJmOQotbm9jcm9zcz0iZXZvbHV0aW9uLWRhdGFzZXJ2ZXIgY3Jvc3MgZ2lyIGRvZXNuJ3Qg d29yayIKK2NoZWNrc3VtPTc0Yjc4MjVkMDZlNjk0YTNlYzBmM2ExZmFhYTQ1OTJlNmY3YWM1YTVi MTQ1ZDgzNTU3NDg0MmNkNmJiMzAzNGIKCkZyb20gMzczNzM3ZTYzNTQwOGM5MzNjNzY0ZTNmNjQx NmNlODlmMTIwNjhmYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVz YSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDgg KzAyMDAKU3ViamVjdDogW1BBVENIIDI4LzgzXSBldm9sdXRpb246IHVwZGF0ZSB0byAzLjM3Ljkw CgotLS0KIC4uLi9ldm9sdXRpb24vZmlsZXMvZGlzYWJsZVJ1bnRpbWVUZXN0cy5jbWFrZSB8IDQ1 IC0tLS0tLS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3MvZXZvbHV0aW9uL2ZpbGVzL2ljb252LWRldGVj dC5oICAgICAgICB8ICA1IC0tLQogc3JjcGtncy9ldm9sdXRpb24vdGVtcGxhdGUgICAgICAgICAg ICAgICAgICAgIHwgMzMgKysrLS0tLS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgNiBpbnNlcnRp b25zKCspLCA3NyBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2V2b2x1 dGlvbi9maWxlcy9kaXNhYmxlUnVudGltZVRlc3RzLmNtYWtlCiBkZWxldGUgbW9kZSAxMDA2NDQg c3JjcGtncy9ldm9sdXRpb24vZmlsZXMvaWNvbnYtZGV0ZWN0LmgKCmRpZmYgLS1naXQgYS9zcmNw a2dzL2V2b2x1dGlvbi9maWxlcy9kaXNhYmxlUnVudGltZVRlc3RzLmNtYWtlIGIvc3JjcGtncy9l dm9sdXRpb24vZmlsZXMvZGlzYWJsZVJ1bnRpbWVUZXN0cy5jbWFrZQpkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggOGJlNTViNDIwNzAuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZXZv bHV0aW9uL2ZpbGVzL2Rpc2FibGVSdW50aW1lVGVzdHMuY21ha2UKKysrIC9kZXYvbnVsbApAQCAt MSw0NSArMCwwIEBACi0jIFRoaXMgZmlsZSB3YXMgZ2VuZXJhdGVkIGJ5IENNYWtlIGJlY2F1c2Ug aXQgZGV0ZWN0ZWQgVFJZX1JVTigpIGNvbW1hbmRzCi0jIGluIGNyb3NzY29tcGlsaW5nIG1vZGUu IEl0IHdpbGwgYmUgb3ZlcndyaXR0ZW4gYnkgdGhlIG5leHQgQ01ha2UgcnVuLgotIyBDb3B5IGl0 IHRvIGEgc2FmZSBsb2NhdGlvbiwgc2V0IHRoZSB2YXJpYWJsZXMgdG8gYXBwcm9wcmlhdGUgdmFs dWVzCi0jIGFuZCB1c2UgaXQgdGhlbiB0byBwcmVzZXQgdGhlIENNYWtlIGNhY2hlICh1c2luZyAt QykuCi0KLQotIyBfY29ycmVjdF9pY29udl9FWElUQ09ERQotIyAgICBpbmRpY2F0ZXMgd2hldGhl ciB0aGUgZXhlY3V0YWJsZSB3b3VsZCBoYXZlIGJlZW4gYWJsZSB0byBydW4gb24gaXRzCi0jICAg IHRhcmdldCBwbGF0Zm9ybS4gSWYgc28sIHNldCBfY29ycmVjdF9pY29udl9FWElUQ09ERSB0bwot IyAgICB0aGUgZXhpdCBjb2RlIChpbiBtYW55IGNhc2VzIDAgZm9yIHN1Y2Nlc3MpLCBvdGhlcndp c2UgZW50ZXIgIkZBSUxFRF9UT19SVU4iLgotIyBUaGUgX2NvcnJlY3RfaWNvbnZfQ09NUElMRUQg dmFyaWFibGUgaG9sZHMgdGhlIGJ1aWxkIHJlc3VsdCBmb3IgdGhpcyBUUllfUlVOKCkuCi0jIAot IyBTb3VyY2UgZmlsZSAgIDogL2J1aWxkZGlyL2V2b2x1dGlvbi1kYXRhLXNlcnZlci0zLjI2LjAv YnVpbGQvQ01ha2VGaWxlcy9DTWFrZVRtcC9zcmMuYwotIyBFeGVjdXRhYmxlICAgIDogL2J1aWxk ZGlyL2V2b2x1dGlvbi1kYXRhLXNlcnZlci0zLjI2LjAvYnVpbGQvQ01ha2VGaWxlcy9jbVRDXzMx NWVlLV9jb3JyZWN0X2ljb252X0VYSVRDT0RFCi0jIFJ1biBhcmd1bWVudHMgOiAKLSMgICAgQ2Fs bGVkIGZyb206IFsyXQkvdXNyL3NoYXJlL2NtYWtlLTMuOS9Nb2R1bGVzL0NoZWNrQ1NvdXJjZVJ1 bnMuY21ha2UKLSMgICAgICAgICAgICAgICAgIFsxXQkvYnVpbGRkaXIvZXZvbHV0aW9uLWRhdGEt c2VydmVyLTMuMjYuMC9DTWFrZUxpc3RzLnR4dAotCi1zZXQoIF9jb3JyZWN0X2ljb252X0VYSVRD T0RFIAotICAgICAwCi0gICAgIENBQ0hFIElOVEVSTkFMICJSZXN1bHQgZnJvbSBUUllfUlVOIiBG T1JDRSkKLXNldChfY29ycmVjdF9pY29udl9FWElUQ09ERV9fVFJZUlVOX09VVFBVVAotICAgICAw Ci0gICAgIENBQ0hFIElOVEVSTkFMICJSZXN1bHQgZnJvbSBUUllfUlVOIiBGT1JDRSkKLQotCi0j IEhBVkVfTEtTVFJGVElNRV9FWElUQ09ERQotIyAgICBpbmRpY2F0ZXMgd2hldGhlciB0aGUgZXhl Y3V0YWJsZSB3b3VsZCBoYXZlIGJlZW4gYWJsZSB0byBydW4gb24gaXRzCi0jICAgIHRhcmdldCBw bGF0Zm9ybS4gSWYgc28sIHNldCBIQVZFX0xLU1RSRlRJTUVfRVhJVENPREUgdG8KLSMgICAgdGhl IGV4aXQgY29kZSAoaW4gbWFueSBjYXNlcyAwIGZvciBzdWNjZXNzKSwgb3RoZXJ3aXNlIGVudGVy ICJGQUlMRURfVE9fUlVOIi4KLSMgVGhlIEhBVkVfTEtTVFJGVElNRV9DT01QSUxFRCB2YXJpYWJs ZSBob2xkcyB0aGUgYnVpbGQgcmVzdWx0IGZvciB0aGlzIFRSWV9SVU4oKS4KLSMgCi0jIFNvdXJj ZSBmaWxlICAgOiAvYnVpbGRkaXIvZXZvbHV0aW9uLWRhdGEtc2VydmVyLTMuMjYuMC9idWlsZC9D TWFrZUZpbGVzL0NNYWtlVG1wL3NyYy5jCi0jIEV4ZWN1dGFibGUgICAgOiAvYnVpbGRkaXIvZXZv bHV0aW9uLWRhdGEtc2VydmVyLTMuMjYuMC9idWlsZC9DTWFrZUZpbGVzL2NtVENfZDI4OTctSEFW RV9MS1NUUkZUSU1FX0VYSVRDT0RFCi0jIFJ1biBhcmd1bWVudHMgOiAKLSMgICAgQ2FsbGVkIGZy b206IFsyXQkvdXNyL3NoYXJlL2NtYWtlLTMuOS9Nb2R1bGVzL0NoZWNrQ1NvdXJjZVJ1bnMuY21h a2UKLSMgICAgICAgICAgICAgICAgIFsxXQkvYnVpbGRkaXIvZXZvbHV0aW9uLWRhdGEtc2VydmVy LTMuMjYuMC9DTWFrZUxpc3RzLnR4dAotCi1zZXQoIEhBVkVfTEtTVFJGVElNRV9FWElUQ09ERSAK LSAgICAgMAotICAgICBDQUNIRSBJTlRFUk5BTCAiUmVzdWx0IGZyb20gVFJZX1JVTiIgRk9SQ0Up Ci1zZXQoIEhBVkVfTEtTVFJGVElNRV9FWElUQ09ERV9fVFJZUlVOX09VVFBVVAotICAgICAwCi0g ICAgIENBQ0hFIElOVEVSTkFMICJSZXN1bHQgZnJvbSBUUllfUlVOIiBGT1JDRSkKLQpkaWZmIC0t Z2l0IGEvc3JjcGtncy9ldm9sdXRpb24vZmlsZXMvaWNvbnYtZGV0ZWN0LmggYi9zcmNwa2dzL2V2 b2x1dGlvbi9maWxlcy9pY29udi1kZXRlY3QuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggNDZmNDc2ZDViYzkuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvZXZvbHV0aW9uL2ZpbGVz L2ljb252LWRldGVjdC5oCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0vKiBUaGlzIGlz IGFuIGF1dG8tZ2VuZXJhdGVkIGhlYWRlciwgRE8gTk9UIEVESVQhICovCi0KLSNkZWZpbmUgSUNP TlZfSVNPX0RfRk9STUFUICJpc28tJWQtJWQiCi0jZGVmaW5lIElDT05WX0lTT19TX0ZPUk1BVCAi aXNvLSVkLSVzIgotI2RlZmluZSBJQ09OVl8xMDY0NiAiaXNvLTEwNjQ2IgpkaWZmIC0tZ2l0IGEv c3JjcGtncy9ldm9sdXRpb24vdGVtcGxhdGUgYi9zcmNwa2dzL2V2b2x1dGlvbi90ZW1wbGF0ZQpp bmRleCA1NjBlZDkzZGEwMi4uY2M3MzU1OTk0M2IgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZXZvbHV0 aW9uL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZXZvbHV0aW9uL3RlbXBsYXRlCkBAIC0xLDE2ICsx LDE2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdldm9sdXRpb24nCiBwa2duYW1lPWV2b2x1dGlv bgotdmVyc2lvbj0zLjM2LjEKK3ZlcnNpb249My4zNy45MAogcmV2aXNpb249MQogYnVpbGRfc3R5 bGU9Y21ha2UKK2J1aWxkX2hlbHBlcj0iZ2lyIHFlbXUiCiBjb25maWd1cmVfYXJncz0iLURFTkFC TEVfQVVUT0FSPU9GRiAtREVOQUJMRV9MSUJDUllQVFVJPU9GRiAtREVOQUJMRV9HVEtTUEVMTD1P RkYKLSAtREVOQUJMRV9URVhUX0hJR0hMSUdIVD1PRkYgLURFTkFCTEVfUFNUX0lNUE9SVD1PRkYK LSAtREVOQUJMRV9XRUFUSEVSPSQodm9wdF9pZiBnaXIgT04gT0ZGKSIKKyAtREVOQUJMRV9URVhU X0hJR0hMSUdIVD1PRkYgLURFTkFCTEVfUFNUX0lNUE9SVD1PRkYgLURFTkFCTEVfV0VBVEhFUj1P TiIKIGhvc3RtYWtlZGVwZW5kcz0iZ25vbWUtZG9jLXV0aWxzIGdvYmplY3QtaW50cm9zcGVjdGlv biBpbnRsdG9vbCBpdHN0b29sCi0gcGtnLWNvbmZpZyIKKyBwa2ctY29uZmlnIGdsaWItZGV2ZWwi CiBtYWtlZGVwZW5kcz0iTmV0d29ya01hbmFnZXItZGV2ZWwgY2x1dHRlci1ndGstZGV2ZWwgZW5j aGFudDItZGV2ZWwKICBldm9sdXRpb24tZGF0YS1zZXJ2ZXItZGV2ZWwgZ3NwZWxsLWRldmVsIGd0 a2h0bWwtZGV2ZWwgbGliY2FuYmVycmEtZGV2ZWwKLSAkKHZvcHRfaWYgZ2lyIGxpYmd3ZWF0aGVy LWRldmVsKSBsaWJub3RpZnktZGV2ZWwgd2Via2l0Mmd0ay1kZXZlbCB5dG5lZi1kZXZlbAorIGxp Ymd3ZWF0aGVyLWRldmVsIGxpYm5vdGlmeS1kZXZlbCB3ZWJraXQyZ3RrLWRldmVsIHl0bmVmLWRl dmVsCiAgZ25vbWUtZGVza3RvcC1kZXZlbCIKIGRlcGVuZHM9Imdub21lLWtleXJpbmciCiBzaG9y dF9kZXNjPSJJbnRlZ3JhdGVkIG1haWwsIGFkZHJlc3Nib29rIGFuZCBjYWxlbmRhcmluZyBmb3Ig R05PTUUiCkBAIC0xOSwzNiArMTksMTUgQEAgbGljZW5zZT0iTEdQTC0yLjEtb3ItbGF0ZXIsIExH UEwtMy4wLW9yLWxhdGVyLCBHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lr aS5nbm9tZS5vcmcvQXBwcy9Fdm9sdXRpb24iCiBjaGFuZ2Vsb2c9Imh0dHBzOi8vcmF3LmdpdGh1 YnVzZXJjb250ZW50LmNvbS9HTk9NRS9ldm9sdXRpb24vZ25vbWUtMy0zNi9ORVdTIgogZGlzdGZp bGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7 dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ODczYWNmMWRiZWMzOGU2N2UxNjkwNjQ2NDVhYzNh OWI5YTk0NGJkMmI2MzMxNjFkZjZlNWYwNTcwMGUzNmNiOAorY2hlY2tzdW09MGEzNWE2NjE0YTEz MGE1MTc2ODExNDBkMzc4YjE1YzYyOTAwYjg0YTE4YzM5ZGJmMjZkOWY5NmY0MjhiZDRlYgogc2hs aWJfcHJvdmlkZXM9ImxpYmV2b2x1dGlvbi1jYWxlbmRhci5zbyBsaWJldm9sdXRpb24tdXRpbC5z byBsaWJlbWFpbC1lbmdpbmUuc28KICBsaWJldm9sdXRpb24tbWFpbC5zbyBsaWJldm9sdXRpb24t c2hlbGwuc28iCiAKIGJ1aWxkX29wdGlvbnM9ImdpciIKIGlmIFsgLXogIiRDUk9TU19CVUlMRCIg XTsgdGhlbgogCWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgotZWxzZQotCWhvc3RtYWtlZGVw ZW5kcys9IiBnbGliLWRldmVsIgogZmkKIAotIyBjbWFrZSBwZXJmb21ybXMgMiBjaGVja3MgdXNp bmcgYmluYXJ5IHJ1bnRpbWUsIGFib3V0IGljb252IGFuZCBzZnJ0aW1lLgotIyBtdXNsICgxLjEu MTYpIGRvZXMgbm90IHN1cHBvcnQgIklTTy0yMDIyLUpQIiBlbmNvZGluZyAoc2VlIGl0cyByb2Fk bWFwKSwKLSMgYWx0aG91Z2ggZXZvbHV0aW9uLWRhdGEtc2VydmVyIGlzIGZpbmUgd2l0aCBtdXNs LgotIyBJZiBjcm9zc2J1aWxkLCBjbWFrZSBsZXQgZGlzYWJsaW5nIHJ1bnRpbWUgY2hlY2tzIHZp YSBzcGVjaWZpYyBkaXJlY3RpdmVzLgotIyB0ZXN0IGljb252LWRldGVjdC5jIGFsc28gZ2VuZXJh dGVzIGljb252LWRldGVjdC5oIHRoYXQgaXMgcmVxdWlyZWQgZm9yIGJ1aWxkLgotIyBTbyBjb21w bGV0bHkgZGlzYWJsZSB0ZXN0IGZyb20gaWNvbnYtZGV0ZWN0LmMgKGNtYWtlLnBhdGNoIGZpbGUp IGFuZAotIyB1c2UgYSBjbWFrZSBjYWNoZSBmaWxlIG9uIGNyb3NzYnVpbGQgdG8gZGlzYWJsZSBz ZnJ0aW1lIHJ1bm5pbmcgdGVzdC4KLWlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgotCWNvbmZp Z3VyZV9hcmdzKz0iIC1DIGRpc2FibGVSdW50aW1lVGVzdHMuY21ha2UiCi1maQotCi1wcmVfY29u ZmlndXJlKCkgewotCW1rZGlyIC1wIGJ1aWxkCi0JY3AgJHtGSUxFU0RJUn0vaWNvbnYtZGV0ZWN0 LmggJHt3cmtzcmN9L2J1aWxkLy4KLQlpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KLQkJY3Ag JHtGSUxFU0RJUn0vZGlzYWJsZVJ1bnRpbWVUZXN0cy5jbWFrZSAke3dya3NyY30vYnVpbGQvLgot CWZpCi19Ci0KIGV2b2x1dGlvbi1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVuZHM9IndlYmtpdDJn dGstZGV2ZWwgZ3RrKzMtZGV2ZWwgbGliZ2xpYi1kZXZlbCBldm9sdXRpb24tZGF0YS1zZXJ2ZXIt ZGV2ZWwKIAkgZ3RraHRtbC1kZXZlbCAke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lv bn0iCgpGcm9tIDhhM2QwOTliYzE2ZDRhOTZmMDU2OTEzMTA4ZDBlZTU0NGVlYTc5ZDggTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uu b3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRD SCAyOS84M10gZXZvbHV0aW9uLWV3czogdXBkYXRlIHRvIDMuMzcuOTAKCi0tLQogc3JjcGtncy9l dm9sdXRpb24tZXdzL3RlbXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRp b25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZXZvbHV0aW9uLWV3 cy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZXZvbHV0aW9uLWV3cy90ZW1wbGF0ZQppbmRleCA0ZmY4MTE2 NDY2Yy4uNzJjZWQ1MjAwMTQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZXZvbHV0aW9uLWV3cy90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL2V2b2x1dGlvbi1ld3MvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICdldm9sdXRpb24tZXdzJwogcGtnbmFtZT1ldm9sdXRpb24t ZXdzCi12ZXJzaW9uPTMuMzYuMQordmVyc2lvbj0zLjM3LjkwCiByZXZpc2lvbj0xCiBidWlsZF9z dHlsZT1jbWFrZQogY29uZmlndXJlX2FyZ3M9Ii1ETElCRVhFQ19JTlNUQUxMX0RJUj0vdXNyL2xp Yi9ldm9sdXRpb24iCkBAIC0xMiw0ICsxMiw0IEBAIGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVy IgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9Fdm9sdXRpb24iCiBjaGFu Z2Vsb2c9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9HTk9NRS9ldm9sdXRpb24t ZXdzL2dub21lLTMtMzYvTkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9 LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWQw ODgzYzdkMjI3ODI3Y2M1YzQ0NjhiN2UzMWEzZWUzNzBiY2Q3ZDQxYTRkYmI5NTBhYjVkYjM2Yzk1 NTFhYzEKK2NoZWNrc3VtPWJlOTE2MDVkZmY1ZTI3NDg3ZmNiY2NlZmM5MTNjMDI3ZDJkNjYxMDQw ZTA5NGZiZDgxZjk1MWRjOWE4NjE4MTUKCkZyb20gY2UzY2ZkZjE5YTVhYWQ4OTA2OTk2NGFkNjI5 NjhkZTY5ZDAyNmIyMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVz YSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDgg KzAyMDAKU3ViamVjdDogW1BBVENIIDMwLzgzXSBweXRob24zLWF0c3BpOiB1cGRhdGUgdG8gMi4z Ny45MAoKLS0tCiBzcmNwa2dzL3B5dGhvbjMtYXRzcGkvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBm aWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmNwa2dzL3B5dGhvbjMtYXRzcGkvdGVtcGxhdGUgYi9zcmNwa2dzL3B5dGhvbjMtYXRzcGkv dGVtcGxhdGUKaW5kZXggYTMzYTM3NGZlMTguLjI5OTA3N2Q0NzFlIDEwMDY0NAotLS0gYS9zcmNw a2dzL3B5dGhvbjMtYXRzcGkvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9weXRob24zLWF0c3BpL3Rl bXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncHl0aG9uMy1hdHNw aScKIHBrZ25hbWU9cHl0aG9uMy1hdHNwaQotdmVyc2lvbj0yLjMyLjEKLXJldmlzaW9uPTQKK3Zl cnNpb249Mi4zNy45MAorcmV2aXNpb249MQogYXJjaHM9bm9hcmNoCiB3cmtzcmM9InB5YXRzcGkt JHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKQEAgLTEzLDQgKzEzLDQgQEAg bWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9 IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dO T01FL3B5YXRzcGkyIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L3B5YXRzcGkvJHt2ZXJzaW9u JS4qfS9weWF0c3BpLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ODQ5NTRhNWJiZWFjYzgz NjQzZjA1Nzc4ZDhiZWFmY2FiODIwOGUxMWIzOWIyNDYzN2I0YzRkZDFmODYyMDM4OQorY2hlY2tz dW09NGUxN2FjZTU5YzZjODNhYzk0MWQ3NGY3NmFjYjk0YzAwZmIyMmI1NmJhYTZlYWFiMzEzZjVl MWFhYjcyZmMzOAoKRnJvbSAyMDYwYjgyNmVkOTVkZTA5ZTk3YzFmYmIyNDRiZjA4NjNhNjFkMmZi IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0 YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggMzEvODNdIHB5dGhvbi1hdHNwaTogdXBkYXRlIHRvIDIuMzcuOTAKCi0tLQogc3Jj cGtncy9weXRob24tYXRzcGkvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMg aW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3B5dGhv bi1hdHNwaS90ZW1wbGF0ZSBiL3NyY3BrZ3MvcHl0aG9uLWF0c3BpL3RlbXBsYXRlCmluZGV4IDAx NDFkOTdmODVkLi5jNTQ0NTIzZjlkNCAxMDA2NDQKLS0tIGEvc3JjcGtncy9weXRob24tYXRzcGkv dGVtcGxhdGUKKysrIGIvc3JjcGtncy9weXRob24tYXRzcGkvdGVtcGxhdGUKQEAgLTEsOCArMSw4 IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdweXRob24tYXRzcGknCiAjIEtlZXAgcHl0aG9uMy1h dHNwaSBpbiBzeW5jCiBwa2duYW1lPXB5dGhvbi1hdHNwaQotdmVyc2lvbj0yLjMyLjEKLXJldmlz aW9uPTQKK3ZlcnNpb249Mi4zNy45MAorcmV2aXNpb249MQogYXJjaHM9bm9hcmNoCiB3cmtzcmM9 InB5YXRzcGktJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKQEAgLTE0LDQg KzE0LDQgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIK IGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25v bWUub3JnL0dOT01FL3B5YXRzcGkyIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L3B5YXRzcGkv JHt2ZXJzaW9uJS4qfS9weWF0c3BpLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ODQ5NTRh NWJiZWFjYzgzNjQzZjA1Nzc4ZDhiZWFmY2FiODIwOGUxMWIzOWIyNDYzN2I0YzRkZDFmODYyMDM4 OQorY2hlY2tzdW09NGUxN2FjZTU5YzZjODNhYzk0MWQ3NGY3NmFjYjk0YzAwZmIyMmI1NmJhYTZl YWFiMzEzZjVlMWFhYjcyZmMzOAoKRnJvbSBmYTlkNzhmYWQ4YTM3OWY0ZTc1NmU2ZjBjMzRlZDE2 NjVkNDE2NTI1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxk YW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIw MApTdWJqZWN0OiBbUEFUQ0ggMzIvODNdIG9yY2E6IHVwZGF0ZSB0byAzLjM3LjkwCgotLS0KIHNy Y3BrZ3Mvb3JjYS90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL29yY2EvdGVtcGxhdGUg Yi9zcmNwa2dzL29yY2EvdGVtcGxhdGUKaW5kZXggZjcwMjAyZTZkNzYuLjJiMjk2NWJmYmFjIDEw MDY0NAotLS0gYS9zcmNwa2dzL29yY2EvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9vcmNhL3RlbXBs YXRlCkBAIC0xLDYgKzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnb3JjYScKIHBrZ25hbWU9 b3JjYQotdmVyc2lvbj0zLjM2LjEKK3ZlcnNpb249My4zNy45MAogcmV2aXNpb249MQogYXJjaHM9 bm9hcmNoCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCkBAIC0xMyw3ICsxMyw3IEBAIG1haW50 YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwt Mi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMv T3JjYSIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0v JHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWMxYWM2NDhiNmJlMzE0ODhj MjZmZjk1OTExNDI4Nzg2OWRmOWNlM2NhMjE5OTllNDBkZWQ4Nzc0MWM5ODgzMWYKK2NoZWNrc3Vt PTFhYjJlYjViZThjMzYzM2EyYjYxYzI2YzVlM2M5ZTFhNWIxMTE0YmFmMTQ4ZmFlODljZWMzNWRm YmE0Y2I2NGIKIAogaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCiAJaG9zdG1ha2VkZXBlbmRz Kz0iIHB5dGhvbjMtZ29iamVjdC1kZXZlbCIKCkZyb20gM2UwNjE4OTE0ZmU5MGRiZmYxODQ3YjU5 ODhhZTBkNDdjYTAxOGFhYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtv bGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6 MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDMzLzgzXSBnbm9tZS13ZWF0aGVyOiBidW1wCgotLS0K IHNyY3BrZ3MvZ25vbWUtd2VhdGhlci90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAx IGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUt d2VhdGhlci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtd2VhdGhlci90ZW1wbGF0ZQppbmRleCBk MzBiZTliZjE5Mi4uYzAyOGU0NmJhNjUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtd2VhdGhl ci90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLXdlYXRoZXIvdGVtcGxhdGUKQEAgLTEsNyAr MSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS13ZWF0aGVyJwogcGtnbmFtZT1nbm9t ZS13ZWF0aGVyCiB2ZXJzaW9uPTMuMzYuMQotcmV2aXNpb249MQorcmV2aXNpb249MgogYnVpbGRf aGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0 IHBrZy1jb25maWcgaXRzdG9vbCBnbGliLWRldmVsIGdqcyIKCkZyb20gZDkyZTYzMWJlNDVjODc2 MWY0OTBjYzYxMGZkNTNiOWE1OGNiMDUxYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog RGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIw MjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDM0LzgzXSB2dGUzOiB1cGRhdGUgdG8g MC42MS45MAoKLS0tCiBzcmNwa2dzL3Z0ZTMvdGVtcGxhdGUgfCAxOSArKysrKysrKy0tLS0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgOCBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL3Z0ZTMvdGVtcGxhdGUgYi9zcmNwa2dzL3Z0ZTMvdGVtcGxhdGUK aW5kZXggNjExNmIzY2M2MjEuLmYxYmExYzZmMWEyIDEwMDY0NAotLS0gYS9zcmNwa2dzL3Z0ZTMv dGVtcGxhdGUKKysrIGIvc3JjcGtncy92dGUzL3RlbXBsYXRlCkBAIC0xLDI5ICsxLDI4IEBACiAj IFRlbXBsYXRlIGZpbGUgZm9yICd2dGUzJwogcGtnbmFtZT12dGUzCi12ZXJzaW9uPTAuNjAuMwor dmVyc2lvbj0wLjYxLjkwCiByZXZpc2lvbj0xCiB3cmtzcmM9InZ0ZS0ke3ZlcnNpb259IgogYnVp bGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgotY29uZmlndXJlX2FyZ3M9Ii1EYl9u ZGVidWc9ZmFsc2UgLURnaXI9JCh2b3B0X2lmIGdpciB0cnVlIGZhbHNlKQotIC1EdmFwaT0kKHZv cHRfaWYgdmFsYSB0cnVlIGZhbHNlKSAtRGJfbHRvPWZhbHNlIC1EX3N5c3RlbWQ9ZmFsc2UiCitj b25maWd1cmVfYXJncz0iLURiX25kZWJ1Zz1mYWxzZSAtRGJfbHRvPWZhbHNlIC1EX3N5c3RlbWQ9 ZmFsc2UKKyAkKHZvcHRfYm9vbCBnaXIgZ2lyKSAkKHZvcHRfYm9vbCBnaXIgdmFwaSkiCiBob3N0 bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgZ25vbWUtZG9jLXV0aWxzIGdwZXJmIGludGx0b29sIHBr Zy1jb25maWcKLSAkKHZvcHRfaWYgdmFsYSB2YWxhKSIKLW1ha2VkZXBlbmRzPSJnbnV0bHMtZGV2 ZWwgZ3RrKzMtZGV2ZWwgcGNyZTItZGV2ZWwgJCh2b3B0X2lmIHZhbGEgdmFsYS1kZXZlbCkiCi1k ZXBlbmRzPSJ2dGUiCisgJCh2b3B0X2lmIGdpciB2YWxhKSIKK21ha2VkZXBlbmRzPSJnbnV0bHMt ZGV2ZWwgZ3RrKzMtZGV2ZWwgcGNyZTItZGV2ZWwgJCh2b3B0X2lmIGdpciB2YWxhLWRldmVsKSIK IHNob3J0X2Rlc2M9IlRlcm1pbmFsIHdpZGdldCB3aXRoIGltcHJvdmVkIGFjY2Vzc2liaWxpdHkg YW5kIEkxOE4gc3VwcG9ydCIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxp bnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVyLCBMR1BMLTIuMS1vci1sYXRlciwg TEdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBz L1Rlcm1pbmFsL1ZURSIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS92dGUvJHt2ZXJzaW9uJS4q fS92dGUtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1mZWI3NmUxMTgxYTM1N2Q4NjExMmQ0 NDdhMDhkMTI3ZTIwODE0MzhkZjc2ZWNlODMyNDNiMTg2MDlkZDk4MjJhCitjaGVja3N1bT1kOTlk NzBjYTEzZTFhMTNjNzI5ZGUyMTk4NDM0YjcxYTgzOWExODA4ZDgxYTBiMWVhOGNlYjAyMmQ2MTll NDg3CiAKICMgU3VwcHJlc3Mgd2FybmluZ3MgYXMgZXJyb3JzIGZvciBOVUxMIGZvcm1hdCBzdHJp bmdzIChtdXNsIGxpYmMpCiBDWFhGTEFHUz0iLVduby1lcnJvcj1mb3JtYXQ9IgogCiAjIFBhY2th Z2UgYnVpbGQgb3B0aW9ucwotYnVpbGRfb3B0aW9ucz0iZ2lyIHZhbGEiCi1idWlsZF9vcHRpb25z X2RlZmF1bHQ9ImdpciB2YWxhIgorYnVpbGRfb3B0aW9ucz0iZ2lyIgorYnVpbGRfb3B0aW9uc19k ZWZhdWx0PSJnaXIiCiAKIHByZV9idWlsZCgpIHsKIAlleHBvcnQgR0lSX0VYVFJBX0xJQlNfUEFU SD0iJHt3cmtzcmN9L3NyYy8ubGlicyIKQEAgLTM4LDggKzM3LDYgQEAgdnRlMy1kZXZlbF9wYWNr YWdlKCkgewogCQl2bW92ZSAidXNyL2xpYi8qLnNvIgogCQlpZiBbICIkYnVpbGRfb3B0aW9uX2dp ciIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL2dpci0xLjAKLQkJZmkKLQkJaWYgWyAiJGJ1 aWxkX29wdGlvbl92YWxhIiBdOyB0aGVuCiAJCQl2bW92ZSB1c3Ivc2hhcmUvdmFsYQogCQlmaQog CX0KCkZyb20gOWU2MzQ2OTQ5NWYyMGIwNDk4NmE4MzM3NTdhN2ZlMDE0NmE2N2E2MCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5v cmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENI IDM1LzgzXSBnbm9tZS10ZXJtaW5hbDogdXBkYXRlIHRvIDMuMzcuOTAKCi0tLQogc3JjcGtncy9n bm9tZS10ZXJtaW5hbC90ZW1wbGF0ZSB8IDggKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGlu c2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS10 ZXJtaW5hbC90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtdGVybWluYWwvdGVtcGxhdGUKaW5kZXgg YmYzZDViY2RkNDIuLjkyNjZmNDNhNjFlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXRlcm1p bmFsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtdGVybWluYWwvdGVtcGxhdGUKQEAgLTEs MTEgKzEsMTEgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLXRlcm1pbmFsJwogcGtnbmFt ZT1nbm9tZS10ZXJtaW5hbAotdmVyc2lvbj0zLjM2LjEuMQordmVyc2lvbj0zLjM3LjkwCiByZXZp c2lvbj0xCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBjb25maWd1cmVfYXJncz0iLS1kaXNh YmxlLXN0YXRpYyAtLXdpdGgtbmF1dGlsdXMtZXh0ZW5zaW9uIgogaG9zdG1ha2VkZXBlbmRzPSJh cHBkYXRhLXRvb2xzIGdsaWItZGV2ZWwgaW50bHRvb2wgaXRzdG9vbAotIHBrZy1jb25maWciCisg cGtnLWNvbmZpZyBkb2Nib29rLXhzbCIKIG1ha2VkZXBlbmRzPSJkY29uZi1kZXZlbCBnbm9tZS1z aGVsbCBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzLWRldmVsCiAgbmF1dGlsdXMtZGV2ZWwgdnRl My1kZXZlbCIKIGRlcGVuZHM9ImRlc2t0b3AtZmlsZS11dGlscyIKQEAgLTEzLDggKzEzLDggQEAg c2hvcnRfZGVzYz0iR05PTUUgdGVybWluYWwgZW11bGF0b3IgYXBwbGljYXRpb24iCiBtYWludGFp bmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIu MC1vci1sYXRlciwgR0ZETC0xLjMtb25seSIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUu b3JnL0FwcHMvVGVybWluYWwiCi1kaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8k e3ZlcnNpb246MDo0fS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZjNk NzA4YTFlNzZkNzdjMWM4NWIxMjZmNmUwMDMyMjBhMTVkNGE0NmE1MGZkODA3MGUxYTNhYWJlNjc4 YTM3NgorZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8k e3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgorY2hlY2tzdW09ZDZkYTBmNDk5MTM0NWQ0N2Q3 MzBmOWNhYWRmNDZlOGU0MTA1OTcwMTdlNmM2MTQ3NWU5MmY3YzIzYWQ5YzJhNAogbGliMzJkaXNh YmxlZD15ZXMKIAogaWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCgpGcm9tIDViYTI1ODAyM2My Yzk4ODUzY2VjNWEzZjU5NGJkNjgwNjlmYTMyZDYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1 ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAzNi84M10gZ25vbWUtZ2V0dGlu Zy1zdGFydGVkLWRvY3M6IHVwZGF0ZSB0byAzLjM2LjIKCi0tLQogc3JjcGtncy9nbm9tZS1nZXR0 aW5nLXN0YXJ0ZWQtZG9jcy90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5z ZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWdl dHRpbmctc3RhcnRlZC1kb2NzL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1nZXR0aW5nLXN0YXJ0 ZWQtZG9jcy90ZW1wbGF0ZQppbmRleCA1YmVjOTM0OTBiYS4uYmVkOWI2OTYxNjIgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3MvZ25vbWUtZ2V0dGluZy1zdGFydGVkLWRvY3MvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9nbm9tZS1nZXR0aW5nLXN0YXJ0ZWQtZG9jcy90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAK ICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWdldHRpbmctc3RhcnRlZC1kb2NzJwogcGtnbmFt ZT1nbm9tZS1nZXR0aW5nLXN0YXJ0ZWQtZG9jcwotdmVyc2lvbj0zLjM0LjAKK3ZlcnNpb249My4z Ni4yCiByZXZpc2lvbj0xCiBhcmNocz1ub2FyY2gKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUK QEAgLTExLDQgKzExLDQgQEAgbGljZW5zZT0iQ0MtQlktU0EtMy4wIgogaG9tZXBhZ2U9Imh0dHBz Oi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1nZXR0aW5nLXN0YXJ0ZWQtZG9jcyIKICNj aGFuZ2Vsb2c9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1nZXR0aW5nLXN0 YXJ0ZWQtZG9jcy9yYXcvbWFzdGVyL05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtw a2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVj a3N1bT1mNzBjZTJjYTIzYWQ3ODYyMTVmM2M5MmVjODU3ODNlM2FhYmVkMDdlNGY3ODcwMGZhMjdm OWIyY2Y3NmUwM2RiCitjaGVja3N1bT0wNDk0Yjg5MTNhOTQ2YjY0NTA1MzZlMTIwYzE1NGFiZDI5 MjM4ZWJiYTJmNTI3MzQ1OTJiMWY2NDVlNTIxZGM2CgpGcm9tIGU3ZGNkOTkwZjcxNzJlZWM5Yzhl MjA4MGNhMThjMWM4NWYzNzgzZjUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmll bCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4 OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAzNy84M10gZ25vbWUtdXNlci1kb2NzOiB1cGRh dGUgdG8gMy4zNi4yCgotLS0KIHNyY3BrZ3MvZ25vbWUtdXNlci1kb2NzL3RlbXBsYXRlIHwgNCAr Ky0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtdXNlci1kb2NzL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9t ZS11c2VyLWRvY3MvdGVtcGxhdGUKaW5kZXggNGNiNTUzOTZlMzcuLjJlOGFmZTlmOTNkIDEwMDY0 NAotLS0gYS9zcmNwa2dzL2dub21lLXVzZXItZG9jcy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2du b21lLXVzZXItZG9jcy90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBm b3IgJ2dub21lLXVzZXItZG9jcycKIHBrZ25hbWU9Z25vbWUtdXNlci1kb2NzCi12ZXJzaW9uPTMu MzQuMAordmVyc2lvbj0zLjM2LjIKIHJldmlzaW9uPTEKIGFyY2hzPW5vYXJjaAogYnVpbGRfc3R5 bGU9Z251LWNvbmZpZ3VyZQpAQCAtMTMsNCArMTMsNCBAQCBsaWNlbnNlPSJDQy1CWS0zLjAiCiBo b21lcGFnZT0iaHR0cHM6Ly9naXRodWIuY29tL0dOT01FL2dub21lLXVzZXItZG9jcyIKICNjaGFu Z2Vsb2c9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9HTk9NRS9nbm9tZS11c2Vy LWRvY3MvbWFzdGVyL05FV1MiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8k e3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT04Zjk5 MDdmZjE1ZmZmOTdkYTc1ZWNlNjQ1Y2M4Njc2NjcwM2FjNTRkNzE2ZDI1NTYzYmE2N2ZmZWQxYWYy NGVkCitjaGVja3N1bT0xOThmZTRjODM2Nzc1YTVkYzI1NDNhNmE1MjBkZmIwYWM1YmYyOTJjZGNi MzU4YTU3Yzg2ZjM1ZjcwNWU5OTU4CgpGcm9tIGU3MDYwODZjMTFjYTIxNzIwOTBmMGJjYTcyNTZi YmUwMjJmMTU4MTYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2Eg PGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICsw MjAwClN1YmplY3Q6IFtQQVRDSCAzOC84M10gZ25vbWUtZXB1Yi10aHVtYm5haWxlcjogdXBkYXRl IHRvIDEuNgoKLS0tCiBzcmNwa2dzL2dub21lLWVwdWItdGh1bWJuYWlsZXIvdGVtcGxhdGUgfCA0 ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1lcHViLXRodW1ibmFpbGVyL3RlbXBsYXRlIGIvc3Jj cGtncy9nbm9tZS1lcHViLXRodW1ibmFpbGVyL3RlbXBsYXRlCmluZGV4IGIxNmU3MDU0NzVmLi5j NmUxYzAyYjlkMyAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1lcHViLXRodW1ibmFpbGVyL3Rl bXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtZXB1Yi10aHVtYm5haWxlci90ZW1wbGF0ZQpAQCAt MSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWVwdWItdGh1bWJuYWlsZXIn CiBwa2duYW1lPWdub21lLWVwdWItdGh1bWJuYWlsZXIKLXZlcnNpb249MS41Cit2ZXJzaW9uPTEu NgogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogaG9zdG1ha2VkZXBlbmRz PSJwa2ctY29uZmlnIgpAQCAtMTAsNCArMTAsNCBAQCBtYWludGFpbmVyPSJBbGlmIFJhY2htYXdh ZGkgPGFyY2hAc3Vib3NpdG8uY29tPiIKIGxpY2Vuc2U9IkdQTC0zIgogaG9tZXBhZ2U9Imh0dHBz Oi8vZ2l0Lmdub21lLm9yZy9icm93c2UvZ25vbWUtZXB1Yi10aHVtYm5haWxlciIKIGRpc3RmaWxl cz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbn0vJHtwa2duYW1lfS0ke3ZlcnNp b259LnRhci54eiIKLWNoZWNrc3VtPTMwODIxMGY1ODAwMjE5ZjY0Y2FlNDgyOGU1OWJiOGU2ZTRj NTNiODg4MDQ4Y2Y0ODcyMjFhZWI0MzM3ZDc5MWEKK2NoZWNrc3VtPWI1MDI0MjBkOWIwMmVhMGIw ZmM3OTg2ZWY1YTA5MWExMmIyMjg2YmUxNGZlZDllNDc1OTRmZTlmYTBjNTg5OGUKCkZyb20gZWQ4 NzJiYzY5NjliY2JjZGRmY2UxNmI5Nzk5MWM2OTE0YTIxYmFkMSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRo dSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDM5LzgzXSBnbm9t ZS1ib29rczogYnVtcAoKLS0tCiBzcmNwa2dzL2dub21lLWJvb2tzL3RlbXBsYXRlIHwgMiArLQog MSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9nbm9tZS1ib29rcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtYm9va3MvdGVt cGxhdGUKaW5kZXggMTE0YjllMDM0YzIuLjFkNDk3NGZlMTgzIDEwMDY0NAotLS0gYS9zcmNwa2dz L2dub21lLWJvb2tzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtYm9va3MvdGVtcGxhdGUK QEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1ib29rcycKIHBrZ25h bWU9Z25vbWUtYm9va3MKIHZlcnNpb249My4zNC4wCi1yZXZpc2lvbj0xCityZXZpc2lvbj0yCiBi dWlsZF9oZWxwZXI9ImdpciIKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9InBr Zy1jb25maWcgdmFsYSBnbGliLWRldmVsIGxpYnJzdmcgZG9jYm9vay14c2wgbGlieHNsdAoKRnJv bSBjYWEzYzg0YjQ0YWJmZjU1ZTNhNjY1NWVkZmRiZDZlYTgyNDUwYzg2IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0 ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNDAvODNd IGdub21lLWNoYXJhY3RlcnM6IGJ1bXAKCi0tLQogc3JjcGtncy9nbm9tZS1jaGFyYWN0ZXJzL3Rl bXBsYXRlIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9u KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1jaGFyYWN0ZXJzL3RlbXBsYXRlIGIvc3Jj cGtncy9nbm9tZS1jaGFyYWN0ZXJzL3RlbXBsYXRlCmluZGV4IDg5ODY4ZjRiYzA0Li5hYzI2NGU1 MWE2YSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1jaGFyYWN0ZXJzL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvZ25vbWUtY2hhcmFjdGVycy90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVt cGxhdGUgZmlsZSBmb3IgJ2dub21lLWNoYXJhY3RlcnMnCiBwa2duYW1lPWdub21lLWNoYXJhY3Rl cnMKIHZlcnNpb249My4zNC4wCi1yZXZpc2lvbj0yCityZXZpc2lvbj0zCiBidWlsZF9zdHlsZT1t ZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgZ2pzIGds aWItZGV2ZWwgaXRzdG9vbCBwa2ctY29uZmlnIgoKRnJvbSAzZjA1YjU4YWE0YTEwOGJlOTEwNmFj NjU1NTBjYzVhZjhhOTlkMDE3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwg S29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0 ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNDEvODNdIGdub21lLWRvY3VtZW50czogYnVtcAoK LS0tCiBzcmNwa2dzL2dub21lLWRvY3VtZW50cy90ZW1wbGF0ZSB8IDIgKy0KIDEgZmlsZSBjaGFu Z2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Z25vbWUtZG9jdW1lbnRzL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1kb2N1bWVudHMvdGVtcGxh dGUKaW5kZXggOTdiNTNkNjM1ZDcuLjdlNDViODI1ZTcxIDEwMDY0NAotLS0gYS9zcmNwa2dzL2du b21lLWRvY3VtZW50cy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWRvY3VtZW50cy90ZW1w bGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWRvY3VtZW50 cycKIHBrZ25hbWU9Z25vbWUtZG9jdW1lbnRzCiB2ZXJzaW9uPTMuMzQuMAotcmV2aXNpb249MQor cmV2aXNpb249MgogYnVpbGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1h a2VkZXBlbmRzPSJkb2Nib29rLXhzbCBnZXR0ZXh0IGl0c3Rvb2wgcGtnLWNvbmZpZyBnbGliLWRl dmVsIGxpYnhzbHQgZ2RrLXBpeGJ1ZgoKRnJvbSA0MTFhZjcyZGYxNmI1MjVkMTg2NmNjMDhkY2Mz MmU5OWI4OTE2ZmNhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNh IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggNDIvODNdIGdub21lLWZvbnQtdmlld2VyOiBidW1wCgotLS0K IHNyY3BrZ3MvZ25vbWUtZm9udC12aWV3ZXIvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdl ZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2du b21lLWZvbnQtdmlld2VyL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1mb250LXZpZXdlci90ZW1w bGF0ZQppbmRleCA2ZDAzNTM2NmQ0NC4uZjc0ZmNiY2IwMDAgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv Z25vbWUtZm9udC12aWV3ZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1mb250LXZpZXdl ci90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWZv bnQtdmlld2VyJwogcGtnbmFtZT1nbm9tZS1mb250LXZpZXdlcgogdmVyc2lvbj0zLjM0LjAKLXJl dmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9 InBrZy1jb25maWcgZ2xpYi1kZXZlbCIKIG1ha2VkZXBlbmRzPSJmb250Y29uZmlnLWRldmVsIGZy ZWV0eXBlLWRldmVsIGdsaWItZGV2ZWwgZ3RrKzMtZGV2ZWwKCkZyb20gNjEwYjllMGIyNTBiZWUy YmYzOWFhMDQ5N2Q0MTBmYmU0ZjEwYjcxYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog RGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIw MjAgMTg6NDg6MDggKzAyMDAKU3ViamVjdDogW1BBVENIIDQzLzgzXSB0b3RlbTogYnVtcCwgZHJv cCB2YWxhIG9wdGlvbgoKLS0tCiBzcmNwa2dzL3RvdGVtL3RlbXBsYXRlIHwgMTQgKysrKysrKysr LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy90b3RlbS90ZW1wbGF0ZSBiL3NyY3BrZ3MvdG90ZW0vdGVtcGxh dGUKaW5kZXggODE1MjJiMzE0ODguLmE4Y2ZiMDAwMWE0IDEwMDY0NAotLS0gYS9zcmNwa2dzL3Rv dGVtL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvdG90ZW0vdGVtcGxhdGUKQEAgLTEsMTQgKzEsMTQg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3RvdGVtJwogcGtnbmFtZT10b3RlbQogdmVyc2lvbj0z LjM0LjEKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9o ZWxwZXI9ImdpciIKIGNvbmZpZ3VyZV9hcmdzPSItRGVuYWJsZS1weXRob249bm8gLURlbmFibGUt bmF1dGlsdXM9eWVzCiAgLURlbmFibGUtaW50cm9zcGVjdGlvbj0kKHZvcHRfaWYgZ2lyIHllcyBu bykKLSAtRGVuYWJsZS12YWxhPSQodm9wdF9pZiB2YWxhIHllcyBubykiCisgLURlbmFibGUtdmFs YT0kKHZvcHRfaWYgZ2lyIHllcyBubykiCiBob3N0bWFrZWRlcGVuZHM9Imdub21lLWRvYy11dGls cyBpbnRsdG9vbCBpdHN0b29sIHBrZy1jb25maWcKLSAkKHZvcHRfaWYgdmFsYSB2YWxhKSBnc3Ry ZWFtZXIxIGdzdC1wbHVnaW5zLWJhc2UxIGdzdC1wbHVnaW5zLWdvb2QxCisgJCh2b3B0X2lmIGdp ciB2YWxhKSBnc3RyZWFtZXIxIGdzdC1wbHVnaW5zLWJhc2UxIGdzdC1wbHVnaW5zLWdvb2QxCiAg Z2xpYi1kZXZlbCIKICMgWFhYIG1pc3NpbmcgbGlyYyBwbHVnaW4uCiBtYWtlZGVwZW5kcz0iY2x1 dHRlci1nc3QzLWRldmVsIGNsdXR0ZXItZ3RrLWRldmVsIGRidXMtZ2xpYi1kZXZlbApAQCAtMjcs MTAgKzI3LDE0IEBAIGNoZWNrc3VtPTZiZjg5YWIwOTZkZmM1NjRmMjYwOTc2ZTQ4NDE2NWYwOWJk ODg2NDM0ZDE4NDQxMGQyZjk0NGJmYmE2MTFhMDkKICMgWFhYIHJlZW5hYmxlIHB5dGhvbiBwbHVn aW4gaWYgcHlsaW50IHBrZyBleGlzdHMuCiAjcHljb21waWxlX2RpcnM9InVzci9saWIvdG90ZW0v cGx1Z2lucyIKIAorZG9fY2hlY2soKSB7CisJOgorfQorCiBkaXNhYmxlX3BhcmFsbGVsX2J1aWxk PXllcwogCi1idWlsZF9vcHRpb25zPSJnaXIgdmFsYSIKLWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0i Z2lyIHZhbGEiCitidWlsZF9vcHRpb25zPSJnaXIiCitidWlsZF9vcHRpb25zX2RlZmF1bHQ9Imdp ciIKIAogbGlidG90ZW1fcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNjKz0iIC0gcnVudGltZSBsaWJy YXJ5IgoKRnJvbSA3YWUxN2E4YmUzNDY0ZTM4MDEwMTQyYTk0MjU1NjA3ZjY5ZDliMTkxIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdl Lm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFU Q0ggNDQvODNdIGdub21lLXNjcmVlbnNhdmVyOiBidW1wICsgZml4IGJ1aWxkCgotLS0KIHNyY3Br Z3MvZ25vbWUtc2NyZWVuc2F2ZXIvcGF0Y2hlcy9idWlsZC5wYXRjaCB8IDEyICsrKysrKysrKysr Kwogc3JjcGtncy9nbm9tZS1zY3JlZW5zYXZlci90ZW1wbGF0ZSAgICAgICAgICAgIHwgIDIgKy0K IDIgZmlsZXMgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ25vbWUtc2NyZWVuc2F2ZXIvcGF0Y2hlcy9idWlsZC5wYXRj aAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtc2NyZWVuc2F2ZXIvcGF0Y2hlcy9idWlsZC5w YXRjaCBiL3NyY3BrZ3MvZ25vbWUtc2NyZWVuc2F2ZXIvcGF0Y2hlcy9idWlsZC5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNmRjZGJlN2RkN2UKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL2dub21lLXNjcmVlbnNhdmVyL3BhdGNoZXMvYnVpbGQucGF0Y2gK QEAgLTAsMCArMSwxMiBAQAorLS0tIHNyYy9ncy1tYW5hZ2VyLmMKKysrKyBzcmMvZ3MtbWFuYWdl ci5jCitAQCAtODIwLDggKzgyMCw3IEBAIGFwcGx5X2JhY2tncm91bmRfdG9fd2luZG93IChHU01h bmFnZXIgKm1hbmFnZXIsCisgICAgICAgICBzdXJmYWNlID0gZ25vbWVfYmdfY3JlYXRlX3N1cmZh Y2UgKG1hbmFnZXItPnByaXYtPmJnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBnZGtfd2luZG93LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB3aWR0aCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaGVpZ2h0LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBGQUxTRSk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhl aWdodCk7CisgICAgICAgICBnc193aW5kb3dfc2V0X2JhY2tncm91bmRfc3VyZmFjZSAod2luZG93 LCBzdXJmYWNlKTsKKyAgICAgICAgIGNhaXJvX3N1cmZhY2VfZGVzdHJveSAoc3VyZmFjZSk7Cisg fQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1zY3JlZW5zYXZlci90ZW1wbGF0ZSBiL3NyY3Br Z3MvZ25vbWUtc2NyZWVuc2F2ZXIvdGVtcGxhdGUKaW5kZXggMzYzZmNmMTJlMTAuLmMzYTcwY2Zl ZjdjIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXNjcmVlbnNhdmVyL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvZ25vbWUtc2NyZWVuc2F2ZXIvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdnbm9tZS1zY3JlZW5zYXZlcicKIHBrZ25hbWU9Z25vbWUtc2NyZWVu c2F2ZXIKIHZlcnNpb249My42LjEKLXJldmlzaW9uPTIKK3JldmlzaW9uPTMKIGJ1aWxkX3N0eWxl PWdudS1jb25maWd1cmUKIGNvbmZpZ3VyZV9hcmdzPSItLWVuYWJsZS1jb21waWxlLXdhcm5pbmdz PW1pbmltdW0iCiBob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgYXV0b21ha2UgaW50bHRvb2wg Z2xpYi1kZXZlbCIKCkZyb20gZGU0YThmMWQ4Njg1MDk5OWNmMzg2NzY4MjUzNzc0MGFjYzYzYjQ3 YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9j dGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDggKzAyMDAKU3ViamVj dDogW1BBVENIIDQ1LzgzXSBnbm9tZS1jbG9ja3M6IHVwZGF0ZSB0byAzLjM3LjkxCgotLS0KIHNy Y3BrZ3MvZ25vbWUtY2xvY2tzL3RlbXBsYXRlIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAz IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9t ZS1jbG9ja3MvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLWNsb2Nrcy90ZW1wbGF0ZQppbmRleCAz ZTA0OWI0MmZiMS4uMGU0N2RiYWRmZTEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtY2xvY2tz L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtY2xvY2tzL3RlbXBsYXRlCkBAIC0xLDEyICsx LDEyIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1jbG9ja3MnCiBwa2duYW1lPWdub21l LWNsb2NrcwotdmVyc2lvbj0zLjM2LjAKK3ZlcnNpb249My4zNy45MQogcmV2aXNpb249MQogYnVp bGRfaGVscGVyPSJnaXIiCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJwa2ct Y29uZmlnIGludGx0b29sIGl0c3Rvb2wgZ2xpYi1kZXZlbCB2YWxhIgogbWFrZWRlcGVuZHM9Imds aWItZGV2ZWwgdmFsYS1kZXZlbCBnbm9tZS1kZXNrdG9wLWRldmVsCi0gbGliZ3dlYXRoZXItZGV2 ZWwgbGliaGFuZHktZGV2ZWwgbGlibm90aWZ5LWRldmVsIGdzb3VuZC1kZXZlbAorIGxpYmd3ZWF0 aGVyLWRldmVsIGxpYmhhbmR5MS1kZXZlbCBsaWJub3RpZnktZGV2ZWwgZ3NvdW5kLWRldmVsCiAg Z2VvY29kZS1nbGliLWRldmVsIGRlc2t0b3AtZmlsZS11dGlscyBoaWNvbG9yLWljb24tdGhlbWUK ICBnZW9jbHVlMi1kZXZlbCIKIGRlcGVuZHM9ImRlc2t0b3AtZmlsZS11dGlscyBoaWNvbG9yLWlj b24tdGhlbWUiCkBAIC0xNSw0ICsxNSw0IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0 b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9 Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9DbG9ja3MiCiBkaXN0ZmlsZXM9IiR7R05PTUVf U0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIu eHoiCi1jaGVja3N1bT00Yzk3OGIwYzdmN2I5ZGFlYmQyNzJkMDE3NWY4YTU0NDE1ZTIwNzhmMTM0 ZjQ4YWRkNWNmMjQzNjJlZWY0OWM2CitjaGVja3N1bT0zNGRlODI0YjNmZWU2OGM1NTU0YjY5MDRi MDJiY2RjN2U0YjkyMWY5YThlOTFhNzgwZjQzZTI4OThkYmZiMzZjCgpGcm9tIDU2NjhlODZiZjc4 YWViMmY4Y2U0NzFhOGFiNmNkMmFlNTc1NjMzYWYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1 ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCA0Ni84M10gZ25vbWUtY29udGFj dHM6IHVwZGF0ZSB0byAzLjM3LjIKCi0tLQogc3JjcGtncy9nbm9tZS1jb250YWN0cy90ZW1wbGF0 ZSB8IDEzICsrKysrKy0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDcg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1jb250YWN0cy90ZW1wbGF0 ZSBiL3NyY3BrZ3MvZ25vbWUtY29udGFjdHMvdGVtcGxhdGUKaW5kZXggMmE4MjEzYTcyNDAuLmFh NGVmOTQwMTM2IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWNvbnRhY3RzL3RlbXBsYXRlCisr KyBiL3NyY3BrZ3MvZ25vbWUtY29udGFjdHMvdGVtcGxhdGUKQEAgLTEsMTYgKzEsMTUgQEAKICMg VGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWNvbnRhY3RzJwogcGtnbmFtZT1nbm9tZS1jb250YWN0 cwotdmVyc2lvbj0zLjM0LjAKLXJldmlzaW9uPTIKLXdya3NyYz0iZ25vbWUtY29udGFjdHMtJHt2 ZXJzaW9uJS4qfSIKK3ZlcnNpb249My4zNy4yCityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNv bgotaG9zdG1ha2VkZXBlbmRzPSJkb2Nib29rLXhzbCBnZXR0ZXh0IGdsaWItZGV2ZWwgbGlieHNs dCBwa2ctY29uZmlnIHZhbGEiCitob3N0bWFrZWRlcGVuZHM9ImRvY2Jvb2steHNsIGZvbGtzLWRl dmVsIGdldHRleHQgZ2xpYi1kZXZlbCBsaWJ4c2x0IHBrZy1jb25maWcgdmFsYSIKIG1ha2VkZXBl bmRzPSJjaGVlc2UtZGV2ZWwgZm9sa3MtZGV2ZWwgZ2VvY29kZS1nbGliLWRldmVsIGdub21lLWRl c2t0b3AtZGV2ZWwKLSBsaWJjaGFtcGxhaW4tZGV2ZWwgbGlibm90aWZ5LWRldmVsIHZhbGEtZGV2 ZWwgbGliaGFuZHktZGV2ZWwiCisgbGliY2hhbXBsYWluLWRldmVsIGxpYm5vdGlmeS1kZXZlbCB2 YWxhLWRldmVsIGxpYmhhbmR5MS1kZXZlbCIKIGRlcGVuZHM9ImRlc2t0b3AtZmlsZS11dGlscyIK IHNob3J0X2Rlc2M9IkdOT01FIGNvbnRhY3RzIG1hbmFnZXIiCiBtYWludGFpbmVyPSJFbm5vIEJv bGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIK IGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvQ29udGFjdHMiCi1kaXN0Zmls ZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2 ZXJzaW9uJS4qfS50YXIueHoiCi1jaGVja3N1bT05OTYwMmVjOGQ2NjBjMWYzYzkyY2FlNjM1NmY2 NGY3MmZiNmRiNThlNTViY2UyN2E1OTkzMzBiZjdiNjIyZjEyCitkaXN0ZmlsZXM9IiR7R05PTUVf U0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIu eHoiCitjaGVja3N1bT0xZDM0NjlkNWU5MGYyM2QxMjlkMTI3NmIyZjliODg1NDU5ZjNkN2I0MzA1 NGNkMDk3NTliODVhYzc2YzkxOGI0CgpGcm9tIDVlOGE4ZTkwZmRjM2MwMDU3ZmRkYzQ2MmIxMmE3 MTRjYmRkOGJlOTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2Eg PGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICsw MjAwClN1YmplY3Q6IFtQQVRDSCA0Ny84M10gbGliZGF6emxlOiB1cGRhdGUgdG8gMy4zNy4xCgot LS0KIHNyY3BrZ3MvbGliZGF6emxlL3RlbXBsYXRlIHwgMjIgKysrKysrKysrKysrKy0tLS0tLS0t LQogMSBmaWxlIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9saWJkYXp6bGUvdGVtcGxhdGUgYi9zcmNwa2dzL2xpYmRhenpsZS90 ZW1wbGF0ZQppbmRleCA1YWMwOWZlZWZjOS4uZmJhYTQxMTRiZGMgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvbGliZGF6emxlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvbGliZGF6emxlL3RlbXBsYXRlCkBA IC0xLDEyICsxLDEzIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdsaWJkYXp6bGUnCiBwa2duYW1l PWxpYmRhenpsZQotdmVyc2lvbj0zLjM2LjAKK3ZlcnNpb249My4zNy4xCiByZXZpc2lvbj0xCiBi dWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCi1jb25maWd1cmVfYXJncz0iLURl bmFibGVfZ3RrX2RvYz1mYWxzZSAtRHdpdGhfdmFwaT0kKHZvcHRfaWYgdmFsYSB0cnVlIGZhbHNl KQotIC1Ed2l0aF9pbnRyb3NwZWN0aW9uPSQodm9wdF9pZiBnaXIgdHJ1ZSBmYWxzZSkiCi1ob3N0 bWFrZWRlcGVuZHM9ImdsaWItZGV2ZWwgcGtnLWNvbmZpZyAkKHZvcHRfaWYgdmFsYSAndmFsYScp IgorY29uZmlndXJlX2FyZ3M9Ii1EZW5hYmxlX2d0a19kb2M9ZmFsc2UKKyAkKHZvcHRfYm9vbCBn aXIgd2l0aF92YXBpKQorICQodm9wdF9ib29sIGdpciB3aXRoX2ludHJvc3BlY3Rpb24pIgoraG9z dG1ha2VkZXBlbmRzPSJnbGliLWRldmVsIHBrZy1jb25maWcgJCh2b3B0X2lmIGdpciB2YWxhKSIK IG1ha2VkZXBlbmRzPSJndGsrMy1kZXZlbCBsaWJnbGliLWRldmVsIgogc2hvcnRfZGVzYz0iTGli cmFyeSB0byBkZWxpZ2h0IHlvdXIgdXNlcnMgd2l0aCBmYW5jeSBmZWF0dXJlcyIKIG1haW50YWlu ZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCkBAIC0xNCwxMCArMTUsMTUg QEAgbGljZW5zZT0iR1BMLTMuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL2dpdGxhYi5n bm9tZS5vcmcvR05PTUUvbGliZGF6emxlIgogY2hhbmdlbG9nPSJodHRwczovL3Jhdy5naXRodWJ1 c2VyY29udGVudC5jb20vR05PTUUvbGliZGF6emxlL2xpYmRhenpsZS0zLTMyL05FV1MiCiBkaXN0 ZmlsZXM9IiR7R05PTUVfU0lURX0vbGliZGF6emxlLyR7dmVyc2lvbiUuKn0vbGliZGF6emxlLSR7 dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ODJiMzFiYmY1NTBmYzYyOTcwYzc4YmY3ZjlkNTVl NWZhZTViOGVhMTNiMjRmZTJkMTNjOGM2MDM5NDA5ZDk1OAorY2hlY2tzdW09ZmRmMGUzOTgwNjk4 NDhiOTBmZGRmMzE4NGI2Mzg0NTkyYTNhZWFiYjhiMjQzMzE0MGUwM2IwMTY0MjY2MjUwZgogCi1i dWlsZF9vcHRpb25zPSJnaXIgdmFsYSIKLWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIHZhbGEi CitidWlsZF9vcHRpb25zPSJnaXIiCitidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKKworIyBu ZWVkcyBYCitkb19jaGVjaygpIHsKKwk6Cit9CiAKIGxpYmRhenpsZS1kZXZlbF9wYWNrYWdlKCkg ewogCWRlcGVuZHM9IiR7c291cmNlcGtnfS0ke3ZlcnNpb259XyR7cmV2aXNpb259IGd0ayszLWRl dmVsIgpAQCAtMjgsOCArMzQsNiBAQCBsaWJkYXp6bGUtZGV2ZWxfcGFja2FnZSgpIHsKIAkJdm1v dmUgInVzci9saWIvKi5zbyIKIAkJaWYgWyAiJGJ1aWxkX29wdGlvbl9naXIiIF07IHRoZW4KIAkJ CXZtb3ZlIHVzci9zaGFyZS9naXItMS4wCi0JCWZpCi0JCWlmIFsgIiRidWlsZF9vcHRpb25fdmFs YSIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL3ZhbGEKIAkJZmkKIAl9CgpGcm9tIGZmZWY3 MDIzNjU2YjRhMzE3Y2Q3YThmNzRiNWJkMTU0ZDlhOGI1MzEgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUs IDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSCA0OC84M10gZXBpcGhh bnk6IHVwZGF0ZSB0byAzLjM3LjkxCgotLS0KIHNyY3BrZ3MvZXBpcGhhbnkvdGVtcGxhdGUgfCA4 ICsrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZXBpcGhhbnkvdGVtcGxhdGUgYi9zcmNwa2dzL2VwaXBo YW55L3RlbXBsYXRlCmluZGV4IDVkNmFjNmE2MzdkLi4xMTIzZTU4YTU2ZCAxMDA2NDQKLS0tIGEv c3JjcGtncy9lcGlwaGFueS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2VwaXBoYW55L3RlbXBsYXRl CkBAIC0xLDE5ICsxLDE5IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdlcGlwaGFueScKIHBrZ25h bWU9ZXBpcGhhbnkKLXZlcnNpb249My4zNi4yCit2ZXJzaW9uPTMuMzcuOTEKIHJldmlzaW9uPTEK IGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24KIGNvbmZpZ3VyZV9hcmdzPSIt RGRpc3RyaWJ1dG9yX25hbWU9Vm9pZExpbnV4IC1EdW5pdF90ZXN0cz1kaXNhYmxlZCIKIGhvc3Rt YWtlZGVwZW5kcz0iZ2V0dGV4dCBnbGliLWRldmVsIGl0c3Rvb2wgcGtnLWNvbmZpZyIKIG1ha2Vk ZXBlbmRzPSJOZXR3b3JrTWFuYWdlci1kZXZlbCBhdmFoaS1nbGliLWxpYnMtZGV2ZWwgZ2NyLWRl dmVsCi0gZ25vbWUtZGVza3RvcC1kZXZlbCBqc29uLWdsaWItZGV2ZWwgbGliZGF6emxlLWRldmVs IGxpYmhhbmR5LWRldmVsCisgZ25vbWUtZGVza3RvcC1kZXZlbCBqc29uLWdsaWItZGV2ZWwgbGli ZGF6emxlLWRldmVsIGxpYmhhbmR5MS1kZXZlbAogIGxpYm5vdGlmeS1kZXZlbCBsaWJzZWNyZXQt ZGV2ZWwgbGlic291cC1nbm9tZS1kZXZlbCBsaWJ3bmNrLWRldmVsIGxpYnhzbHQtZGV2ZWwKLSBu ZXR0bGUtZGV2ZWwgbnNzLWRldmVsIHdlYmtpdDJndGstZGV2ZWwiCisgbmV0dGxlLWRldmVsIG5z cy1kZXZlbCB3ZWJraXQyZ3RrLWRldmVsIGxpYnBvcnRhbC1kZXZlbCIKIGRlcGVuZHM9ImRlc2t0 b3AtZmlsZS11dGlscyBoaWNvbG9yLWljb24tdGhlbWUgaXNvLWNvZGVzIHdlYmtpdDJndGsiCiBz aG9ydF9kZXNjPSJJbnR1aXRpdmUgR05PTUUgd2ViIGJyb3dzZXIiCiBtYWludGFpbmVyPSJFbm5v IEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRl ciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvV2ViIgogZGlzdGZpbGVz PSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVy c2lvbn0udGFyLnh6IgotY2hlY2tzdW09YzJlNjc2YWEwZmUyMTE4MDlhNWU3ZThhN2U0NjFkMTgy ODkwZjI1M2M1M2Y0NjEwZjI2MTAwOTRiNmZiZmI1ZQorY2hlY2tzdW09ZGZjNWRiOTgxY2IzOTJk OGYwOTZkNTRkMjhiYzFiMWMxODlhNGI4Yjc1MzRkODcwNTRmMjAyODQzZjAwYmQ4MwoKRnJvbSAw N2NhZWQ3NjkzNWYwMWMyMWUxNmU4MmYyZjRiM2EwZjA3MGIwMWQxIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTog VGh1LCAxMyBBdWcgMjAyMCAxODo0ODowOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNDkvODNdIGdu b21lLXBob3RvczogdXBkYXRlIHRvIDMuMzcuOTEuMQoKLS0tCiBzcmNwa2dzL2dub21lLXBob3Rv cy90ZW1wbGF0ZSB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAz IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtcGhvdG9zL3RlbXBsYXRl IGIvc3JjcGtncy9nbm9tZS1waG90b3MvdGVtcGxhdGUKaW5kZXggMWVkOGI5ODYxZWMuLjNhNzJk OWE1M2JlIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXBob3Rvcy90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL2dub21lLXBob3Rvcy90ZW1wbGF0ZQpAQCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUg ZmlsZSBmb3IgJ2dub21lLXBob3RvcycKIHBrZ25hbWU9Z25vbWUtcGhvdG9zCi12ZXJzaW9uPTMu MzQuMgordmVyc2lvbj0zLjM3LjkxLjEKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgog YnVpbGRfc3R5bGU9bWVzb24KQEAgLTE1LDggKzE1LDggQEAgc2hvcnRfZGVzYz0iQWNjZXNzLCBv cmdhbml6ZSwgYW5kIHNoYXJlIHlvdXIgcGhvdG9zIG9uIEdOT01FIgogbWFpbnRhaW5lcj0iRW5u byBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0 ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL1Bob3RvcyIKLWRpc3Rm aWxlcz0iJHtHTk9NRV9TSVRFfS9nbm9tZS1waG90b3MvJHt2ZXJzaW9uJS4qfS9nbm9tZS1waG90 b3MtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0zYzU5Yzc2ZWYyODYxOGVjMDU1YTE3OTlk MTA0MDI4N2I5MGEwYjAyMWZlYjBhMDJiMWVhYzI4ZTljMmViNDFhCitkaXN0ZmlsZXM9IiR7R05P TUVfU0lURX0vZ25vbWUtcGhvdG9zLyR7dmVyc2lvbiUuKi4qfS9nbm9tZS1waG90b3MtJHt2ZXJz aW9ufS50YXIueHoiCitjaGVja3N1bT0yNzhkYTIzMjM0ZTI3YzU0MzAyMGRhZTk0M2FkNTIwODZi OWVjYWE1ZWUzYWFkMGIwMzFiODZlZTA0ZDM5NGFhCiAKIGJ1aWxkX29wdGlvbnM9ImdpciIKIGJ1 aWxkX29wdGlvbnNfZGVmYXVsdD0iZ2lyIgoKRnJvbSAwMjIxMWU4OGZjNjAwN2YyODBhNDEwZTkw N2U3ZmEzMjk5ODZlN2FlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29s ZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAxODo0ODow OCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNTAvODNdIGVvZzogdXBkYXRlIHRvIDMuMzcuOTAKCi0t LQogc3JjcGtncy9lb2cvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5z ZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2VvZy90ZW1w bGF0ZSBiL3NyY3BrZ3MvZW9nL3RlbXBsYXRlCmluZGV4IGU0Y2FjYjcwNzllLi45MWVlNTRlZGM0 MSAxMDA2NDQKLS0tIGEvc3JjcGtncy9lb2cvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9lb2cvdGVt cGxhdGUKQEAgLTEsMjAgKzEsMjAgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2VvZycKIHBrZ25h bWU9ZW9nCi12ZXJzaW9uPTMuMzYuMQordmVyc2lvbj0zLjM3LjkwCiByZXZpc2lvbj0xCiBidWls ZF9oZWxwZXI9ImdpciIKIGJ1aWxkX3N0eWxlPW1lc29uCiBjb25maWd1cmVfYXJncz0iLURpbnRy b3NwZWN0aW9uPSQodm9wdF9pZiBnaXIgdHJ1ZSBmYWxzZSkiCiBob3N0bWFrZWRlcGVuZHM9Imdl dHRleHQgZ2xpYi1kZXZlbCBpdHN0b29sIHBrZy1jb25maWciCiBtYWtlZGVwZW5kcz0iZXhlbXBp LWRldmVsIGdub21lLWRlc2t0b3AtZGV2ZWwgbGliZXhpZi1kZXZlbCBsaWJwZWFzLWRldmVsCi0g bGlicnN2Zy1kZXZlbCBsY21zMi1kZXZlbCIKKyBsaWJyc3ZnLWRldmVsIGxjbXMyLWRldmVsIGxp YnBvcnRhbC1kZXZlbCIKIGRlcGVuZHM9ImRlc2t0b3AtZmlsZS11dGlscyBoaWNvbG9yLWljb24t dGhlbWUgc2hhcmVkLW1pbWUtaW5mbyIKIHNob3J0X2Rlc2M9IkV5ZSBvZiBHTk9NRSBncmFwaGlj cyB2aWV3ZXIgcHJvZ3JhbSIKIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxp bnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8v d2lraS5nbm9tZS5vcmcvQXBwcy9FeWVPZkdub21lIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9 L2VvZy8ke3ZlcnNpb24lLip9L2VvZy0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWU0NTRh MWE3YWE1ZTNhMzMyMWVhYjAxMTY3NzgxMTBlNWE3YTdiNjNiY2YyMTY3NmVkYTFhN2JlMTg3Yzlj OTUKK2NoZWNrc3VtPTRhOGE2NzYzMzgwNTI5MmFkMWFmNTQ5ZTMxOWFhM2Y3YjZkNzc2ZjMzZGFj MjBmZDE5NWNlNDZiYmRkMDI2NmEKIHNobGliX3Byb3ZpZGVzPSJsaWJlb2cuc28iCiBsaWIzMmRp c2FibGVkPXllcwogCgpGcm9tIDdjMDJjZmU5NWM3MzZkNjlhNzYxZGU4ZWFhNWMyYjljZTI1ZmIx ZjAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBv Y3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1Ympl Y3Q6IFtQQVRDSCA1MS84M10gZXZpbmNlOiB1cGRhdGUgdG8gMy4zNy45MAoKLS0tCiBzcmNwa2dz L2V2aW5jZS90ZW1wbGF0ZSB8IDE0ICsrKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNyBp bnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZXZpbmNl L3RlbXBsYXRlIGIvc3JjcGtncy9ldmluY2UvdGVtcGxhdGUKaW5kZXggNDAzNWYxNWM2OTAuLmUx N2YyZDg5MGY2IDEwMDY0NAotLS0gYS9zcmNwa2dzL2V2aW5jZS90ZW1wbGF0ZQorKysgYi9zcmNw a2dzL2V2aW5jZS90ZW1wbGF0ZQpAQCAtMSwxMyArMSwxMyBAQAogIyBUZW1wbGF0ZSBmaWxlIGZv ciAnZXZpbmNlJwogcGtnbmFtZT1ldmluY2UKLXZlcnNpb249My4zNi43Cit2ZXJzaW9uPTMuMzcu OTAKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgotYnVpbGRfc3R5bGU9Z251LWNvbmZp Z3VyZQotY29uZmlndXJlX2FyZ3M9IiQodm9wdF9lbmFibGUgZ2lyIGludHJvc3BlY3Rpb24pIC0t ZGlzYWJsZS1zY2hlbWFzLWNvbXBpbGUKLSAtLWVuYWJsZS1jb21pY3MgLS1kaXNhYmxlLXN0YXRp YyAtLWVuYWJsZS14cHMgLS1kaXNhYmxlLXQxbGliCi0gLS1kaXNhYmxlLWJyb3dzZXItcGx1Z2lu IC0tZW5hYmxlLXBzIgotaG9zdG1ha2VkZXBlbmRzPSJhZHdhaXRhLWljb24tdGhlbWUgZ2V0dGV4 dCBnbGliLWRldmVsIGdub21lLWRvYy11dGlscworYnVpbGRfc3R5bGU9bWVzb24KK2NvbmZpZ3Vy ZV9hcmdzPSIkKHZvcHRfYm9vbCBnaXIgaW50cm9zcGVjdGlvbikKKyAtRGNvbWljcz1lbmFibGVk IC1EcHM9ZW5hYmxlZCAtRHhwcz1lbmFibGVkIC1EZHZpPWRpc2FibGVkCisgLUR0MWxpYj1kaXNh YmxlZCAtRGJyb3dzZXJfcGx1Z2luPWZhbHNlIgoraG9zdG1ha2VkZXBlbmRzPSJhZHdhaXRhLWlj b24tdGhlbWUgZ2V0dGV4dCBndGstZG9jIGdsaWItZGV2ZWwgZ25vbWUtZG9jLXV0aWxzCiAgaXRz dG9vbCBwa2ctY29uZmlnIHBlcmwtWE1MLVBhcnNlciBhcHBzdHJlYW0tZ2xpYiIKICMgWFhYIG1p c3NpbmcgcGFja2FnZXMgZm9yIERWSSBiYWNrZW5kLgogbWFrZWRlcGVuZHM9ImFkd2FpdGEtaWNv bi10aGVtZSBkanZ1bGlicmUtZGV2ZWwgZ25vbWUtZGVza3RvcC1kZXZlbCBsaWJTTS1kZXZlbApA QCAtMTksNyArMTksNyBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51 eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dp a2kuZ25vbWUub3JnL0FwcHMvRXZpbmNlIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtn bmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tz dW09NjVkNjFhNDIzZTNmYmJlMDcwMDFmNjVlODc0MjJkZmI3ZDJlNDJiOWVkZjBjYTZhMWQ0Mjdh ZjlhMDRiOGYzMgorY2hlY2tzdW09MmE4NzgwNDNiOTIxMGFkN2FiNzA4MDVmODNlNDAwNjU0ZTIx NGUxZjVlZjk2MDEwMGFkZjkzODgzMmQwMmVhZgogCiBidWlsZF9vcHRpb25zPSJnaXIiCiBidWls ZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKCkZyb20gNzkxMjg3ZGU1ZTUyYjMxZTNkOWY4MzkxZjU3 NjRlYmQ3NDdlNDNjNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVz YSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFRodSwgMTMgQXVnIDIwMjAgMTg6NDg6MDgg KzAyMDAKU3ViamVjdDogW1BBVENIIDUyLzgzXSBmaWxlLXJvbGxlcjogdXBkYXRlIHRvIDMuMzcu OTAKCi0tLQogc3JjcGtncy9maWxlLXJvbGxlci90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNo YW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNw a2dzL2ZpbGUtcm9sbGVyL3RlbXBsYXRlIGIvc3JjcGtncy9maWxlLXJvbGxlci90ZW1wbGF0ZQpp bmRleCAwMzYyMmEyMjMxMy4uMTZlZTVlYWRlMWUgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZmlsZS1y b2xsZXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9maWxlLXJvbGxlci90ZW1wbGF0ZQpAQCAtMSw2 ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2ZpbGUtcm9sbGVyJwogcGtnbmFtZT1maWxl LXJvbGxlcgotdmVyc2lvbj0zLjM2LjAKK3ZlcnNpb249My4zNy45MAogcmV2aXNpb249MQogYnVp bGRfc3R5bGU9bWVzb24KIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBnbGliLWRldmVsIGl0c3Rv b2wgcGtnLWNvbmZpZyIKQEAgLTEyLDYgKzEyLDYgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQg PGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21l cGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0ZpbGVSb2xsZXIiCiBkaXN0ZmlsZXM9 IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJz aW9ufS50YXIueHoiCi1jaGVja3N1bT1iOTE0NGRlOGY1MzZmNTgzZWMyOWQ3MDNjMmMxNzBiZjJk MDBjNmMxNjZjZDVlM2Y3ZWZhYmRhNTUxZjEwNDc4CitjaGVja3N1bT1kNzg0YjliMzE1YmE5Mzg2 MjM1ZTZkZTZlMjYyYWVkMTRhYzg5YmMwZTZlZjNhODQ4ZGQzYjBmMjkzNzNjM2ExCiAKIENGTEFH Uz0iLWZjb21tb24iCgpGcm9tIGMzMmQwOGM4NGYxOTI3ZTc5YjBmYzE4YmM5NmVlMjUxODM2MzU4 ODEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBv Y3RhZm9yZ2Uub3JnPgpEYXRlOiBUaHUsIDEzIEF1ZyAyMDIwIDE4OjQ4OjA4ICswMjAwClN1Ympl Y3Q6IFtQQVRDSCA1My84M10gZ25vbWUtY2FsZW5kYXI6IGJ1bXAKCltjaSBza2lwXQotLS0KIHNy Y3BrZ3MvZ25vbWUtY2FsZW5kYXIvdGVtcGxhdGUgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBp bnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWNh bGVuZGFyL3RlbXBsYXRlIGIvc3JjcGtncy9nbm9tZS1jYWxlbmRhci90ZW1wbGF0ZQppbmRleCA5 YzkxYzhiNWY0ZC4uMzc0ZjQ1NTZmZjggMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ25vbWUtY2FsZW5k YXIvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1jYWxlbmRhci90ZW1wbGF0ZQpAQCAtMSw3 ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2dub21lLWNhbGVuZGFyJwogcGtnbmFtZT1n bm9tZS1jYWxlbmRhcgogdmVyc2lvbj0zLjM2LjIKLXJldmlzaW9uPTEKK3JldmlzaW9uPTIKIGJ1 aWxkX3N0eWxlPW1lc29uCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgZ2xpYi1kZXZlbCBwa2ct Y29uZmlnICQodm9wdF9pZiBnaXIgJ2dvYmplY3QtaW50cm9zcGVjdGlvbicpIgogbWFrZWRlcGVu ZHM9ImV2b2x1dGlvbi1kYXRhLXNlcnZlci1kZXZlbCBnZW9jbHVlMi1kZXZlbCBnZW9jb2RlLWds aWItZGV2ZWwKCkZyb20gNGQ3NzM4MTg2MWFlOWJiYTk2NWM5Y2YxZjk2MDJmMjBmNzYyZjJjOSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFm b3JnZS5vcmc+CkRhdGU6IEZyaSwgMTQgQXVnIDIwMjAgMTY6NTE6NTUgKzAyMDAKU3ViamVjdDog W1BBVENIIDU0LzgzXSBnbm9tZS1tdXNpYzogdXBkYXRlIHRvIDMuMzcuMwoKW2NpIHNraXBdCi0t LQogc3JjcGtncy9nbm9tZS1tdXNpYy9wYXRjaGVzL3BhbmdvMTQyLnBhdGNoIHwgMjggKysrKysr KysrKysrKysrKysrKysrKwogc3JjcGtncy9nbm9tZS1tdXNpYy90ZW1wbGF0ZSAgICAgICAgICAg ICAgIHwgIDcgKysrLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDMyIGluc2VydGlvbnMoKyksIDMgZGVs ZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9nbm9tZS1tdXNpYy9wYXRjaGVz L3BhbmdvMTQyLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1tdXNpYy9wYXRjaGVz L3BhbmdvMTQyLnBhdGNoIGIvc3JjcGtncy9nbm9tZS1tdXNpYy9wYXRjaGVzL3BhbmdvMTQyLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hYTk4Y2Q5MGIyYgot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvZ25vbWUtbXVzaWMvcGF0Y2hlcy9wYW5nbzE0Mi5w YXRjaApAQCAtMCwwICsxLDI4IEBACitGcm9tIGRjMGY1MWI2M2U0YTdiMDhlMTFlOGVkMDE2NDg0 ZWE2ZjViMjA1NzUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBEYW5pZWwgS29sZXNh IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KK0RhdGU6IEZyaSwgMTQgQXVnIDIwMjAgMTY6NTA6Mjgg KzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gbWVzb246IHJlbW92ZSBwYW5nbyBkZXBlbmRlbmN5CisK K1RoaXMgd2FzIGFkZGVkIGJlY2F1c2Ugb2YgYSBmZWF0dXJlIG1pc3NpbmcgaW4gcGFuZ28gb2xk ZXIgdGhhbgorMS40NCwgYnV0IHdlIGhhdmUgdGhpcyBiYWNrcG9ydGVkLCBzbyB3ZSdyZSBva2F5 LgorCitodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvcHlnb2JqZWN0Ly0vaXNzdWVzLzMx MgorLS0tCisgbWVzb24uYnVpbGQgfCAxIC0KKyAxIGZpbGUgY2hhbmdlZCwgMSBkZWxldGlvbigt KQorCitkaWZmIC0tZ2l0IG1lc29uLmJ1aWxkIG1lc29uLmJ1aWxkCitpbmRleCAwZWY1YjliLi41 MmI4N2E2IDEwMDY0NAorLS0tIG1lc29uLmJ1aWxkCisrKysgbWVzb24uYnVpbGQKK0BAIC00Myw3 ICs0Myw2IEBAIGRlcGVuZGVuY3koJ2xpYmRhenpsZS0xLjAnLCB2ZXJzaW9uOiAnPj0gMy4yOC4w JykKKyBkZXBlbmRlbmN5KCdsaWJtZWRpYWFydC0yLjAnLCB2ZXJzaW9uOiAnPj0gMS45LjEnKQor IGRlcGVuZGVuY3koJ2xpYnNvdXAtMi40JykKKyBkZXBlbmRlbmN5KCd0cmFja2VyLXNwYXJxbC0y LjAnLCB2ZXJzaW9uOiAnPj0gMi4zLjAnKQorLWRlcGVuZGVuY3koJ3BhbmdvJywgdmVyc2lvbjog Jz49IDEuNDQuMCcpCisgZGVwZW5kZW5jeSgncHlnb2JqZWN0LTMuMCcsIHZlcnNpb246ICc+PSAz LjM2LjEnKQorIGRlcGVuZGVuY3koJ3B5M2NhaXJvJywgdmVyc2lvbjogJz49IDEuMTQuMCcpCisg ZGVwZW5kZW5jeSgnZ3JpbG8tMC4zJywgdmVyc2lvbjogJz49IDAuMy4xMicsIGZhbGxiYWNrOiBb J2dyaWxvJywgJ2xpYmdybF9kZXAnXSkKKy0tIAorMi4yOC4wCisKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvZ25vbWUtbXVzaWMvdGVtcGxhdGUgYi9zcmNwa2dzL2dub21lLW11c2ljL3RlbXBsYXRlCmlu ZGV4IDEyNTExNzM2NDA3Li41YjcyMzkyNzM4MSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1t dXNpYy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dub21lLW11c2ljL3RlbXBsYXRlCkBAIC0xLDYg KzEsNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtbXVzaWMnCiBwa2duYW1lPWdub21l LW11c2ljCi12ZXJzaW9uPTMuMzYuMQordmVyc2lvbj0zLjM3LjMKIHJldmlzaW9uPTEKIGJ1aWxk X2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24KQEAgLTksMTEgKzksMTIgQEAgbWFrZWRl cGVuZHM9Imdub21lLWRlc2t0b3AtZGV2ZWwgZ3JpbG8tZGV2ZWwgbGlibWVkaWFhcnQtZGV2ZWwK ICBweXRob24zLWdvYmplY3QtZGV2ZWwgcHl0aG9uMy1kYnVzIHRyYWNrZXItZGV2ZWwgZ25vbWUt b25saW5lLWFjY291bnRzLWRldmVsCiAgbGliZGF6emxlLWRldmVsIGdyaWxvLXBsdWdpbnMgcHl0 aG9uMy1jYWlyby1kZXZlbCIKIGRlcGVuZHM9ImRlc2t0b3AtZmlsZS11dGlscyBweXRob24zLWRi dXMgcHl0aG9uMy1nb2JqZWN0IHB5dGhvbjMtcmVxdWVzdHMKLSB0cmFja2VyIHRyYWNrZXItbWlu ZXJzIGdzdC1wbHVnaW5zLWdvb2QxIGdyaWxvLXBsdWdpbnMgbGliZGF6emxlIgorIHRyYWNrZXIg dHJhY2tlci1taW5lcnMgZ3N0LXBsdWdpbnMtZ29vZDEgZ3JpbG8tcGx1Z2lucyBsaWJkYXp6bGUK KyBsaWJtZWRpYWFydCIKIHNob3J0X2Rlc2M9IkdOT01FIG11c2ljIHBsYXlpbmcgYXBwbGljYXRp b24iCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGlj ZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3Jn L0FwcHMvTXVzaWMiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNp b24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT03YjgwZjYzMGQx NTgzMzQ5MzVhODc2MDI5NjU1MGNjOTFiNTBkNjA0ZmE2OGI0MDJmZTUxNjViMTUzMWVjMzMyCitj aGVja3N1bT0yNDhiYzg1ODU5NjMyNzFhNGQyZmY3ZjI0OWM5Zjc5MmFhZjBiNGRmZGUxZTk0YWJi NjhjOTE1MDEwMTVjZWJlCiBsaWIzMmRpc2FibGVkPXllcwoKRnJvbSA1ZGQyODdmZGVlYmVlNTRl N2IxMDc5YjVjZDc5NjU2Mzg2NDEwODU1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBE YW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogRnJpLCAxNCBBdWcgMjAy MCAyMzoyMjozNCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNTUvODNdIGdub21lLXBhbmVsOiB1cGRh dGUgdG8gMy4zNy4xCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgfCAyICstCiBz cmNwa2dzL2dub21lLXBhbmVsL3RlbXBsYXRlIHwgNiArKystLS0KIDIgZmlsZXMgY2hhbmdlZCwg NCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxp YnMgYi9jb21tb24vc2hsaWJzCmluZGV4IDA0ODcyNDA5NTQ3Li43ZWE5ZjY4M2YyMiAxMDA2NDQK LS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC01NjMsNyArNTYzLDcg QEAgbGlicGFja2FnZWtpdC1nbGliMi5zby4xOCBQYWNrYWdlS2l0LTEuMS4xMl8xCiBsaWJwc2wu c28uNSBsaWJwc2wtMC4yMC4yXzEKIGxpYnNvdXAtMi40LnNvLjEgbGlic291cC0yLjM0LjBfMQog bGlic291cC1nbm9tZS0yLjQuc28uMSBsaWJzb3VwLWdub21lLTIuMzQuMF8xCi1saWJwYW5lbC1h cHBsZXQuc28uMyBnbm9tZS1wYW5lbC0zLjMwLjBfMQorbGliZ25vbWUtcGFuZWwuc28uMCBnbm9t ZS1wYW5lbC0zLjM3LjFfMQogbGlidW5pbnVtLnNvLjUgbGlidW5pbnVtLTIuN18xCiBsaWJ1bmlx dWUtMy4wLnNvLjAgbGlidW5pcXVlLTIuOTEuNF8xCiBsaWJ3ZWJraXQyZ3RrLTQuMC5zby4zNyB3 ZWJraXQyZ3RrLTIuNi4yXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtcGFuZWwvdGVtcGxh dGUgYi9zcmNwa2dzL2dub21lLXBhbmVsL3RlbXBsYXRlCmluZGV4IDcwZjIzYjhiNTUxLi4yNGQ5 ZDJiOWViNSAxMDA2NDQKLS0tIGEvc3JjcGtncy9nbm9tZS1wYW5lbC90ZW1wbGF0ZQorKysgYi9z cmNwa2dzL2dub21lLXBhbmVsL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0ZSBm aWxlIGZvciAnZ25vbWUtcGFuZWwnCiBwa2duYW1lPWdub21lLXBhbmVsCi12ZXJzaW9uPTMuMzQu MQotcmV2aXNpb249MwordmVyc2lvbj0zLjM3LjEKK3JldmlzaW9uPTEKIGJ1aWxkX3N0eWxlPWdu dS1jb25maWd1cmUKIGNvbmZpZ3VyZV9hcmdzPSJheF9jdl96b25laW5mb190emRpcj0vdXNyL3No YXJlL3pvbmVpbmZvIgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0LWRldmVsIGdsaWItZGV2ZWwg aXRzdG9vbCBwa2ctY29uZmlnIHR6ZGF0YSBnZXR0ZXh0IgpAQCAtMTQsNyArMTQsNyBAQCBtYWlu dGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BM LTIuMC1vci1sYXRlciwgR0ZETC0xLjEtb3ItbGF0ZXIsIExHUEwtMi4xLW9yLWxhdGVyIgogaG9t ZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvR25vbWVQYW5lbCIKIGRpc3Rm aWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0k e3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWE2YmMwMjU1MjUyZWViNGI5NjRiY2JlNTVmZDc5 MDhiNjlmOTE0YzA2MmM1ZWM4ZGZmNWFjMDI2MmQyOWI5MGQKK2NoZWNrc3VtPTFkNTk4ZmQ2ODkz M2U3NjAxOGYyZmIxMTZhNzg3MWNiYzAwMzNjMWYxMDliZmJmZTA4YTFlY2I1NjA2N2QxNTIKIHBh dGNoX2FyZ3M9Ii1OcDEiCiAKIGdub21lLXBhbmVsLWRldmVsX3BhY2thZ2UoKSB7CgpGcm9tIDY3 NmY0ZTNhMmU3N2RhNTg4Y2VkNjdiMjNmMzMyZDYyNjA5NDFjZTEgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBG cmksIDE0IEF1ZyAyMDIwIDIzOjI0OjUxICswMjAwClN1YmplY3Q6IFtQQVRDSCA1Ni84M10gbWV0 YWNpdHk6IHVwZGF0ZSB0byAzLjM3LjEKCi0tLQogLi4uL3BhdGNoZXMvY29tcG9zaXRvci12dWxr YW4tZml4LWJ1aWxkLnBhdGNoIHwgMjkgKysrKysrKysrKysrKysrKysrKwogc3JjcGtncy9tZXRh Y2l0eS90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgIHwgIDggKystLS0KIDIgZmlsZXMgY2hh bmdlZCwgMzMgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL21ldGFjaXR5L3BhdGNoZXMvY29tcG9zaXRvci12dWxrYW4tZml4LWJ1aWxkLnBh dGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tZXRhY2l0eS9wYXRjaGVzL2NvbXBvc2l0b3ItdnVs a2FuLWZpeC1idWlsZC5wYXRjaCBiL3NyY3BrZ3MvbWV0YWNpdHkvcGF0Y2hlcy9jb21wb3NpdG9y LXZ1bGthbi1maXgtYnVpbGQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLjk2MDU4MmRlZDdkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9tZXRhY2l0eS9w YXRjaGVzL2NvbXBvc2l0b3ItdnVsa2FuLWZpeC1idWlsZC5wYXRjaApAQCAtMCwwICsxLDI5IEBA CitGcm9tIDk5MzYxZjI4Yzg3NjNlYTQ1NjliNWFlOTg3NjAyOGQ1M2FjOWEyMzQgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiBBbGJlcnRzIE11a3R1cMSBdmVscyA8YWxiZXJ0cy5tdWt0 dXBhdmVsc0BnbWFpbC5jb20+CitEYXRlOiBTdW4sIDI0IE1heSAyMDIwIDEzOjU4OjUxICswMzAw CitTdWJqZWN0OiBbUEFUQ0hdIGNvbXBvc2l0b3ItdnVsa2FuOiBmaXggYnVpbGQKKworVktfUEhZ U0lDQUxfREVWSUNFX1RZUEVfUkFOR0VfU0laRSBlbnVtIHdhcyByZW1vdmVkIGluIDEuMi4xNDAu CisKK2h0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9tZXRhY2l0eS8tL2lzc3Vlcy8xMAor LS0tCisgc3JjL2NvbXBvc2l0b3IvbWV0YS1jb21wb3NpdG9yLXZ1bGthbi5jIHwgMiArKworIDEg ZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBzcmMvY29tcG9zaXRv ci9tZXRhLWNvbXBvc2l0b3ItdnVsa2FuLmMgc3JjL2NvbXBvc2l0b3IvbWV0YS1jb21wb3NpdG9y LXZ1bGthbi5jCitpbmRleCBiODdiNTE5NC4uNTNiN2IzZmYgMTAwNjQ0CistLS0gc3JjL2NvbXBv c2l0b3IvbWV0YS1jb21wb3NpdG9yLXZ1bGthbi5jCisrKysgc3JjL2NvbXBvc2l0b3IvbWV0YS1j b21wb3NpdG9yLXZ1bGthbi5jCitAQCAtODEwLDcgKzgxMCw5IEBAIGRldmljZV90eXBlX3RvX3N0 cmluZyAoVmtQaHlzaWNhbERldmljZVR5cGUgdHlwZSkKKyAgICAgICAgIHJldHVybiAiY3B1IjsK KyAgICAgICAgIGJyZWFrOworIAorKyNpZiBWS19IRUFERVJfVkVSU0lPTiA8IDE0MAorICAgICAg IGNhc2UgVktfUEhZU0lDQUxfREVWSUNFX1RZUEVfUkFOR0VfU0laRToKKysjZW5kaWYKKyAgICAg ICBjYXNlIFZLX1BIWVNJQ0FMX0RFVklDRV9UWVBFX01BWF9FTlVNOgorICAgICAgIGRlZmF1bHQ6 CisgICAgICAgICBicmVhazsKKy0tIAorR2l0TGFiCisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbWV0 YWNpdHkvdGVtcGxhdGUgYi9zcmNwa2dzL21ldGFjaXR5L3RlbXBsYXRlCmluZGV4IDdmYjg2ZmQ5 NjRjLi40MzA5Nzc2YmQ1NCAxMDA2NDQKLS0tIGEvc3JjcGtncy9tZXRhY2l0eS90ZW1wbGF0ZQor KysgYi9zcmNwa2dzL21ldGFjaXR5L3RlbXBsYXRlCkBAIC0xLDE3ICsxLDE3IEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICdtZXRhY2l0eScKIHBrZ25hbWU9bWV0YWNpdHkKLXZlcnNpb249My4zMC4x Cit2ZXJzaW9uPTMuMzcuMQogcmV2aXNpb249MQogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQog aG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGdldHRleHQtZGV2ZWwgZ2xpYi1kZXZlbCBpdHN0b29s IHBrZy1jb25maWcgeWVscC10b29scyB6ZW5pdHkiCiBtYWtlZGVwZW5kcz0iZ3NldHRpbmdzLWRl c2t0b3Atc2NoZW1hcy1kZXZlbCBndGsrMy1kZXZlbCBsaWJjYW5iZXJyYS1kZXZlbAogIGxpYmds aWItZGV2ZWwgbGliZ3RvcC1kZXZlbCBsaWJTTS1kZXZlbCBsaWJYY29tcG9zaXRlLWRldmVsIGxp YlhkYW1hZ2UtZGV2ZWwKLSBsaWJYZml4ZXMtZGV2ZWwgbGliWGluZXJhbWEtZGV2ZWwgbGliWHJl bmRlci1kZXZlbCBsaWJYMTEtZGV2ZWwgcGFuZ28tZGV2ZWwKLSBzdGFydHVwLW5vdGlmaWNhdGlv bi1kZXZlbCBWdWxrYW4tSGVhZGVycyB2dWxrYW4tbG9hZGVyIgorIGxpYlhmaXhlcy1kZXZlbCBs aWJYaW5lcmFtYS1kZXZlbCBsaWJYcmVuZGVyLWRldmVsIGxpYlgxMS1kZXZlbCBsaWJYcmVzLWRl dmVsCisgcGFuZ28tZGV2ZWwgc3RhcnR1cC1ub3RpZmljYXRpb24tZGV2ZWwgVnVsa2FuLUhlYWRl cnMgdnVsa2FuLWxvYWRlciIKIGRlcGVuZHM9Inplbml0eSIKIHNob3J0X2Rlc2M9IldpbmRvdyBN YW5hZ2VyIGZvciB0aGUgR05PTUUgZW52aXJvbm1lbnQiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFu ZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhv bWVwYWdlPSJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvbWV0YWNpdHkiCiBkaXN0Zmls ZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2 ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0wZjEzMTFiN2FhMzhkZTcxYzY2MDgwYmQyYjc0NGRl MmNkOTU4MGFmY2FlZTljNjA5N2E3ZDNmNWM0MjE3OThhCitjaGVja3N1bT04MGQ2ZjNkOTVhNDMy OGZiMjZkMGE2NDcxZjU3NWI3NDJiMzZiOGYyNzIxZjhmM2MxODA3MTk3ZmE5MDBhMTI2CgpGcm9t IGM4ZTBlY2EzMmVlMjEzZjM1ZGNiNTcwMjE3ZjQ4NjlmMmI5MGIwNDcgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRl OiBGcmksIDE0IEF1ZyAyMDIwIDIzOjQwOjM0ICswMjAwClN1YmplY3Q6IFtQQVRDSCA1Ny84M10g Z25vbWUtZmxhc2hiYWNrOiB1cGRhdGUgdG8gMy4zNy4yCgpBZGRlZCBQQU0gY29uZmlnIGFzIHN1 Z2dlc3RlZCBieSBtbmFiaWQuCi0tLQogLi4uL2dub21lLWZsYXNoYmFjay9maWxlcy9nbm9tZS1m bGFzaGJhY2sucGFtIHwgIDYgKysrKwogc3JjcGtncy9nbm9tZS1mbGFzaGJhY2svdGVtcGxhdGUg ICAgICAgICAgICAgIHwgMzQgKysrKysrKysrKysrKystLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAz MSBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvZ25vbWUtZmxhc2hiYWNrL2ZpbGVzL2dub21lLWZsYXNoYmFjay5wYW0KCmRpZmYgLS1naXQg YS9zcmNwa2dzL2dub21lLWZsYXNoYmFjay9maWxlcy9nbm9tZS1mbGFzaGJhY2sucGFtIGIvc3Jj cGtncy9nbm9tZS1mbGFzaGJhY2svZmlsZXMvZ25vbWUtZmxhc2hiYWNrLnBhbQpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjc3NmYwYjM2MzIKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL2dub21lLWZsYXNoYmFjay9maWxlcy9nbm9tZS1mbGFzaGJhY2sucGFtCkBA IC0wLDAgKzEsNiBAQAorIyVQQU0tMS4wCithdXRoICAgICBpbmNsdWRlICBzeXN0ZW0tYXV0aAor YXV0aCAgICAgb3B0aW9uYWwgcGFtX2dub21lX2tleXJpbmcuc28KK2FjY291bnQgIGluY2x1ZGUg IHN5c3RlbS1hdXRoCitwYXNzd29yZCBpbmNsdWRlICBzeXN0ZW0tYXV0aAorc2Vzc2lvbiAgaW5j bHVkZSAgc3lzdGVtLWF1dGgKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvZ25vbWUtZmxhc2hiYWNrL3Rl bXBsYXRlIGIvc3JjcGtncy9nbm9tZS1mbGFzaGJhY2svdGVtcGxhdGUKaW5kZXggZDMyMTIwY2Fi NmYuLjY4YTFhNjc0YWNmIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWZsYXNoYmFjay90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL2dub21lLWZsYXNoYmFjay90ZW1wbGF0ZQpAQCAtMSwyMCArMSwz NiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtZmxhc2hiYWNrJwogcGtnbmFtZT1nbm9t ZS1mbGFzaGJhY2sKLXZlcnNpb249My4zNC4yCit2ZXJzaW9uPTMuMzcuMgogcmV2aXNpb249MQog YnVpbGRfaGVscGVyPWdpcgogYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQotY29uZmlndXJlX2Fy Z3M9Ii0tZW5hYmxlLWNvbXBpbGUtd2FybmluZ3M9bWluaW11bSIKLWhvc3RtYWtlZGVwZW5kcz0i cGtnLWNvbmZpZyBhdXRvbWFrZSBnbGliLWRldmVsIGdldHRleHQiCi1tYWtlZGVwZW5kcz0iZ3Rr KzMtZGV2ZWwgZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy1kZXZlbAotIGxpYmdsaWItZGV2ZWwg Z2RrLXBpeGJ1Zi1kZXZlbCB1cG93ZXItZGV2ZWwgaWJ1cy1kZXZlbCBwb2xraXQtZGV2ZWwKLSBw dWxzZWF1ZGlvLWRldmVsIGxpYmNhbmJlcnJhLWRldmVsIGxpYnhjYi1kZXZlbCBsaWJYMTEtZGV2 ZWwgcGFuZ28tZGV2ZWwKLSBsaWJ4a2JmaWxlLWRldmVsIGdub21lLWJsdWV0b290aC1kZXZlbCBn bm9tZS1kZXNrdG9wLWRldmVsIgorY29uZmlndXJlX2FyZ3M9Ii0td2l0aC1jb21waXotc2Vzc2lv biAtLWVuYWJsZS1jb21waWxlLXdhcm5pbmdzPW1pbmltdW0iCitob3N0bWFrZWRlcGVuZHM9InBr Zy1jb25maWcgZ2V0dGV4dCBnZXR0ZXh0LWRldmVsIGF1dG9tYWtlIGxpYnRvb2wgZ2xpYi1kZXZl bCIKK21ha2VkZXBlbmRzPSJwYW0tZGV2ZWwgZWxvZ2luZC1kZXZlbCB1cG93ZXItZGV2ZWwgaWJ1 cy1kZXZlbCBwb2xraXQtZGV2ZWwKKyBwdWxzZWF1ZGlvLWRldmVsIGxpYmNhbmJlcnJhLWRldmVs IGxpYnhjYi1kZXZlbCBsaWJYMTEtZGV2ZWwgbGlieGtiZmlsZS1kZXZlbAorIGxpYmNvbXBpemNv bmZpZy1kZXZlbCBsaWJnbGliLWRldmVsIHBhbmdvLWRldmVsIGd0ayszLWRldmVsIGdkay1waXhi dWYtZGV2ZWwKKyBnZG0tZGV2ZWwgZ25vbWUtYmx1ZXRvb3RoLWRldmVsIGdub21lLWRlc2t0b3At ZGV2ZWwgZ25vbWUtcGFuZWwtZGV2ZWwKKyBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFzLWRldmVs IgogZGVwZW5kcz0iZ25vbWUtYmx1ZXRvb3RoIGdub21lLXNlc3Npb24gZ25vbWUtc2V0dGluZ3Mt ZGFlbW9uCi0gZ25vbWUtcGFuZWwgZ25vbWUtdGhlbWVzLXN0YW5kYXJkIG1ldGFjaXR5IgorIGdu b21lLXBhbmVsIGdub21lLXRoZW1lcy1leHRyYSBtZXRhY2l0eSIKIHNob3J0X2Rlc2M9IkdOT01F IDMgc2Vzc2lvbiB3aXRoIHNpbWlsYXIgdXNlciBleHBlcmllbmNlIHRvIHRoZSBHTk9NRSAyLngg c2VyaWVzIgogbWFpbnRhaW5lcj0ic2hpem9uaWMgPHJlYWx0aWF6QGdtYWlsLmNvbT4iCiBsaWNl bnNlPSJHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcv UHJvamVjdHMvR25vbWVGbGFzaGJhY2siCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2du YW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1 bT0zYmU2NTM4OGNkMmM4ZjM5NzQxYmNjMDVkYTg3ZWY0MDAzNTE4M2E5YTM5NTAyZDY3Njk2MjQy YzJhZWI0NjljCitjaGVja3N1bT1hYjBkZTAwYjBmNmM5YmYzMGMxOTY1MTU2NGJkOWE3NGJiZGZi N2Q3NmRkMjExOWIyNjMxYTM2NzFmOGJlNjUzCisKK3Bvc3RfZXh0cmFjdCgpIHsKKwl2c2VkIC1p ICdzL2xpYmNvbXBpemNvbmZpZyA+PSAwXC45XC4xNFwuMC9saWJjb21waXpjb25maWcgPj0gMC44 LjE2LjAvJyBcCisJCWNvbmZpZ3VyZS5hYworfQorCitwcmVfY29uZmlndXJlKCkgeworCWF1dG9y ZWNvbmYgLWlmCit9CisKK3Bvc3RfaW5zdGFsbCgpIHsKKwl2aW5zdGFsbCAke0ZJTEVTRElSfS9n bm9tZS1mbGFzaGJhY2sucGFtIDY0NCAvZXRjL3BhbS5kIGdub21lLWZsYXNoYmFjaworCXZzZWQg LWkgLWUgInMvIC0tc3lzdGVtZC8vZyIgXAorCQkke0RFU1RESVJ9L3Vzci9saWJleGVjL2dub21l LWZsYXNoYmFjay17Y29tcGl6LG1ldGFjaXR5fQorfQoKRnJvbSBjNDFkYjAxZWEyYjAzMTk0Yzhm NTY0NTQwODE3NWU2MTI4YmUzODJlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5p ZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU2F0LCAxNSBBdWcgMjAyMCAw MDoxMjoxNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNTgvODNdIHRlcGw6IHVwZGF0ZSB0byA0Ljk5 LjMKCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyY3Br Z3MvdGVwbC9wYXRjaGVzL25vLWdpci5wYXRjaCB8IDQ1ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKIHNyY3BrZ3MvdGVwbC90ZW1wbGF0ZSAgICAgICAgICAgICB8IDEwICsrKy0tLS0K IDMgZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3RlcGwvcGF0Y2hlcy9uby1naXIucGF0Y2gKCmRpZmYgLS1n aXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCA3ZWE5ZjY4M2YyMi4uZmIw YWYzZjY5ZDggMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpA QCAtMzU1NSw3ICszNTU1LDcgQEAgbGlid3hfZ3RrM3VfbWVkaWEtMy4wLnNvLjAgd3hXaWRnZXRz LWd0azMtMy4wLjRfMQogbGlid3hfZ3RrM3VfcmliYm9uLTMuMC5zby4wIHd4V2lkZ2V0cy1ndGsz LTMuMC40XzEKIGxpYnd4X2d0azN1X2dsLTMuMC5zby4wIHd4V2lkZ2V0cy1ndGszLTMuMC40XzEK IGxpYnd4X2d0azN1X3N0Yy0zLjAuc28uMCB3eFdpZGdldHMtZ3RrMy0zLjAuNF8xCi1saWJ0ZXBs LTQuc28uMCB0ZXBsLTQuMi4wXzEKK2xpYnRlcGwtNS5zby4wIHRlcGwtNC4yLjBfMQogbGlibm9t YWNzQ29yZS5zby4zIG5vbWFjcy0zLjEwLjJfNAogbGliYXVkaXQuc28uMSBsaWJhdWRpdC0yLjgu NF8xCiBsaWJhdXBhcnNlLnNvLjAgbGliYXVwYXJzZS0yLjguNF8xCmRpZmYgLS1naXQgYS9zcmNw a2dzL3RlcGwvcGF0Y2hlcy9uby1naXIucGF0Y2ggYi9zcmNwa2dzL3RlcGwvcGF0Y2hlcy9uby1n aXIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmUzNDAwMjdi N2YxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy90ZXBsL3BhdGNoZXMvbm8tZ2lyLnBhdGNo CkBAIC0wLDAgKzEsNDUgQEAKK0Zyb20gMTdlNTdlZDE1NjQ1MGZlNTkwMDFjYjBhMTRmOGQ4N2M0 MGQ2YmY3NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IERhbmllbCBLb2xlc2EgPGRh bmllbEBvY3RhZm9yZ2Uub3JnPgorRGF0ZTogU2F0LCAxNSBBdWcgMjAyMCAwMDowOToxNSArMDIw MAorU3ViamVjdDogW1BBVENIXSBBbGxvdyBkaXNhYmxpbmcgZ2lyCisKKy0tLQorIG1lc29uX29w dGlvbnMudHh0IHwgNSArKysrKworIHRlcGwvbWVzb24uYnVpbGQgIHwgNCArKysrCisgMiBmaWxl cyBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKykKKworZGlmZiAtLWdpdCBtZXNvbl9vcHRpb25zLnR4 dCBtZXNvbl9vcHRpb25zLnR4dAoraW5kZXggY2FkOTdkZC4uNWU5OTA4NCAxMDA2NDQKKy0tLSBt ZXNvbl9vcHRpb25zLnR4dAorKysrIG1lc29uX29wdGlvbnMudHh0CitAQCAtMywzICszLDggQEAg b3B0aW9uKAorICAgdHlwZTogJ2Jvb2xlYW4nLCB2YWx1ZTogZmFsc2UsCisgICBkZXNjcmlwdGlv bjogJ0J1aWxkIEFQSSByZWZlcmVuY2UgKHJlcXVpcmVzIGd0ay1kb2MpJworICkKKytvcHRpb24o CisrICAnZ2lyJywKKysgIHR5cGU6ICdib29sZWFuJywgdmFsdWU6IHRydWUsCisrICBkZXNjcmlw dGlvbjogJ0J1aWxkIGdvYmplY3QtaW50cm9zcGVjdGlvbicKKyspCitkaWZmIC0tZ2l0IHRlcGwv bWVzb24uYnVpbGQgdGVwbC9tZXNvbi5idWlsZAoraW5kZXggMjI2ZDkxMy4uYjM1ZGQzYSAxMDA2 NDQKKy0tLSB0ZXBsL21lc29uLmJ1aWxkCisrKysgdGVwbC9tZXNvbi5idWlsZAorQEAgLTE2NCw2 ICsxNjQsOCBAQCBQS0dfQ09ORklHLmdlbmVyYXRlKHRlcGxfbGliLAorICAgbGlicmFyaWVzOiBU RVBMX1BVQkxJQ19ERVBTLAorICkKKyAKKytpZiBnZXRfb3B0aW9uKCdnaXInKQorKworIEdOT01F LmdlbmVyYXRlX2dpcigKKyAgIHRlcGxfbGliLAorICAgZXhwb3J0X3BhY2thZ2VzOiAndGVwbC1A MEAnLmZvcm1hdChURVBMX0FQSV9WRVJTSU9OKSwKK0BAIC0xODIsMyArMTg0LDUgQEAgR05PTUUu Z2VuZXJhdGVfZ2lyKAorICAgIyBTdXBwb3J0IGZvciBkZXBzIGJlaW5nIGJ1aWx0IGFzIHN1YnBy b2plY3RzOgorICAgZGVwZW5kZW5jaWVzOiBURVBMX0RFUFMsCisgKQorKworK2VuZGlmCistLSAK KzIuMjguMAorCmRpZmYgLS1naXQgYS9zcmNwa2dzL3RlcGwvdGVtcGxhdGUgYi9zcmNwa2dzL3Rl cGwvdGVtcGxhdGUKaW5kZXggZjRkMzcxZDYwM2QuLjg5MzMzYzc3YTE5IDEwMDY0NAotLS0gYS9z cmNwa2dzL3RlcGwvdGVtcGxhdGUKKysrIGIvc3JjcGtncy90ZXBsL3RlbXBsYXRlCkBAIC0xLDEw ICsxLDEwIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICd0ZXBsJwogcGtnbmFtZT10ZXBsCi12ZXJz aW9uPTQuNC4wCit2ZXJzaW9uPTQuOTkuMwogcmV2aXNpb249MQotYnVpbGRfc3R5bGU9Z251LWNv bmZpZ3VyZQotYnVpbGRfaGVscGVyPSJnaXIiCi1jb25maWd1cmVfYXJncz0iJCh2b3B0X2VuYWJs ZSBnaXIgaW50cm9zcGVjdGlvbikiCitidWlsZF9zdHlsZT1tZXNvbgorYnVpbGRfaGVscGVyPWdp cgorY29uZmlndXJlX2FyZ3M9IiQodm9wdF9ib29sIGdpciBnaXIpIgogaG9zdG1ha2VkZXBlbmRz PSJnbGliLWRldmVsIHBrZy1jb25maWciCiBtYWtlZGVwZW5kcz0iYW10ay1kZXZlbCBsaWJnbGli LWRldmVsIGd0a3NvdXJjZXZpZXc0LWRldmVsIGd0ayszLWRldmVsCiAgbGlieG1sMi1kZXZlbCB1 Y2hhcmRldC1kZXZlbCIKQEAgLTEzLDcgKzEzLDcgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQg PGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21l cGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9UZXBsIgogZGlzdGZpbGVzPSIk e0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lv bn0udGFyLnh6IgotY2hlY2tzdW09ZTZmNjY3M2E4YTI3ZThmMjgwNzI1ZGI4ZmJhY2VjNzliMjA2 NzZhZTA1NTg3NTUyMzlkMTVhOTgwOGZhYTI1NgorY2hlY2tzdW09ZTRhZmU2MzRmMDBjNTUzMGFl NTJkNzA2ZDljM2E5YmRmMmRiYzc0YjA0NTlhMzYzNzAzYTBhOWI0YTVlMzE1NwogCiBidWlsZF9v cHRpb25zPSJnaXIiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciIKCkZyb20gMDMyZWYzZjU1 YzBhMGMwMzU3NzNkNzcxZjY2MGNiMzIyNDZmYjU4NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFNhdCwgMTUg QXVnIDIwMjAgMDA6MTU6NTAgKzAyMDAKU3ViamVjdDogW1BBVENIIDU5LzgzXSBnZWRpdDogdXBk YXRlIHRvIDMuMzcuMwoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgIHwgIDIgKy0KIHNyY3Br Z3MvZ2VkaXQvdGVtcGxhdGUgfCAyMSArKysrKysrKysrLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hh bmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29t bW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggZmIwYWYzZjY5ZDguLmVkMGMzYzgzYmE2 IDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTM2ODIs NyArMzY4Miw3IEBAIGxpYnFodHRwZW5naW5lLnNvLjEgcWh0dHBlbmdpbmUtMS4wLjFfMQogbGli cW1kbnNlbmdpbmUuc28uMCBxbWRuc2VuZ2luZS0wLjEuMF8xCiBsaWJ5YW5nLnNvLjEgbGlieWFu Zy0xLjByNV8xCiBsaWJodHAuc28uMiBsaWJodHAtMC41LjMwXzEKLWxpYmdlZGl0LTMuMzYuc28g Z2VkaXQtMy4zNi4xXzEKK2xpYmdlZGl0LTMuMzguc28gZ2VkaXQtMy4zNy4zXzEKIGxpYmNoZXdp bmcuc28uMyBsaWJjaGV3aW5nLTAuNS4xXzEKIGxpYmR3YXJ2ZXMuc28uMSBwYWhvbGUtMS4xMl8x CiBsaWJkd2FydmVzX2VtaXQuc28uMSBwYWhvbGUtMS4xMl8xCmRpZmYgLS1naXQgYS9zcmNwa2dz L2dlZGl0L3RlbXBsYXRlIGIvc3JjcGtncy9nZWRpdC90ZW1wbGF0ZQppbmRleCA0ZTI3M2FhZjE4 Mi4uYTEzZTkxZjVmYzAgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ2VkaXQvdGVtcGxhdGUKKysrIGIv c3JjcGtncy9nZWRpdC90ZW1wbGF0ZQpAQCAtMSwxNCArMSwxNCBAQAogIyBUZW1wbGF0ZSBmaWxl IGZvciAnZ2VkaXQnCiBwa2duYW1lPWdlZGl0Ci12ZXJzaW9uPTMuMzYuMQordmVyc2lvbj0zLjM3 LjMKIHJldmlzaW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24KIHB5 Y29tcGlsZV9kaXJzPSJ1c3IvbGliL2dlZGl0L3BsdWdpbnMiCi1jb25maWd1cmVfYXJncz0iLURw bHVnaW5zPXRydWUgLUR2YXBpPSQodm9wdF9pZiB2YWxhIHRydWUgZmFsc2UpCi0gLURpbnRyb3Nw ZWN0aW9uPSQodm9wdF9pZiBnaXIgdHJ1ZSBmYWxzZSkiCitjb25maWd1cmVfYXJncz0iLURwbHVn aW5zPXRydWUKKyAkKHZvcHRfYm9vbCBnaXIgdmFwaSkgJCh2b3B0X2Jvb2wgZ2lyIGludHJvc3Bl Y3Rpb24pIgogaG9zdG1ha2VkZXBlbmRzPSJpdHN0b29sIHBrZy1jb25maWcgZ2xpYi1kZXZlbCBn ZGstcGl4YnVmIHBlcmwgZ2V0dGV4dAotICQodm9wdF9pZiB2YWxhIHZhbGEpIgorICQodm9wdF9p ZiBnaXIgdmFsYSkiCiBtYWtlZGVwZW5kcz0iZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcy1kZXZl bCBnc3BlbGwtZGV2ZWwgZ3Rrc291cmNldmlldzQtZGV2ZWwKICBsaWJwZWFzLWRldmVsIGxpYnNv dXAtZGV2ZWwgdGVwbC1kZXZlbCAkKHZvcHRfaWYgZ2lyICdweXRob24zLWdvYmplY3QtZGV2ZWwn KSIKIGRlcGVuZHM9ImRlc2t0b3AtZmlsZS11dGlscyBnc2V0dGluZ3MtZGVza3RvcC1zY2hlbWFz IGlzby1jb2RlcyIKQEAgLTE3LDIzICsxNywyMiBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8 Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVw YWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvR2VkaXQiCiBkaXN0ZmlsZXM9IiR7R05P TUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50 YXIueHoiCi1jaGVja3N1bT02ZGMzOGVkYTIyN2QxYzM2OGUwMzllOWJmZjQ4NWQwYmVlOWE0OWQ1 Zjk1NjBjMzg3ZWUwOGY1ODE4YTRlMzg3Ci1zaGxpYl9wcm92aWRlcz0ibGliZ2VkaXQtMy4zNi5z byIKK2NoZWNrc3VtPTgxMzdjN2Q5NmExOTQ1MmVlMDRjOTE1Y2IyNWJhNGRhMTM0NmFmOGZlMDQ5 NzQ1NjQxN2NjZmE2MjhmMTA2ZDMKK3NobGliX3Byb3ZpZGVzPSJsaWJnZWRpdC0zLjM4LnNvIgog cHl0aG9uX3ZlcnNpb249MwogCi1idWlsZF9vcHRpb25zPSJnaXIgdmFsYSIKLWJ1aWxkX29wdGlv bnNfZGVmYXVsdD0iZ2lyIHZhbGEiCitidWlsZF9vcHRpb25zPSJnaXIiCitidWlsZF9vcHRpb25z X2RlZmF1bHQ9ImdpciIKIAogZ2VkaXQtZGV2ZWxfcGFja2FnZSgpIHsKLQlkZXBlbmRzPSIke3Nv dXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gZ3Rrc291cmNldmlldy1kZXZlbCBsaWJw ZWFzLWRldmVsIgorCWRlcGVuZHM9IiR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9u fSBndGtzb3VyY2V2aWV3NC1kZXZlbAorCSBsaWJwZWFzLWRldmVsIHRlcGwtZGV2ZWwiCiAJc2hv cnRfZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92 ZSB1c3IvaW5jbHVkZQogCQl2bW92ZSB1c3IvbGliL3BrZ2NvbmZpZwogCQlpZiBbICIkYnVpbGRf b3B0aW9uX2dpciIgXTsgdGhlbgogCQkJdm1vdmUgdXNyL3NoYXJlL2dlZGl0L2dpci0xLjAKLQkJ ZmkKLQkJaWYgWyAiJGJ1aWxkX29wdGlvbl92YWxhIiBdOyB0aGVuCiAJCQl2bW92ZSB1c3Ivc2hh cmUvdmFsYQogCQlmaQogCX0KCkZyb20gNmUzMDRmOGI5NDRjY2I4NWJmNWY3MjJjM2RmZjJjNzkx NzA0YjBmZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFu aWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFNhdCwgMTUgQXVnIDIwMjAgMDA6MTg6NDkgKzAyMDAK U3ViamVjdDogW1BBVENIIDYwLzgzXSBnZWRpdC1wbHVnaW5zOiByZWJ1aWxkIGFnYWluc3QgZ2Vk aXQtMy4zNy4zCgotLS0KIHNyY3BrZ3MvZ2VkaXQtcGx1Z2lucy90ZW1wbGF0ZSB8IDIgKy0KIDEg ZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvZ2VkaXQtcGx1Z2lucy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ2VkaXQtcGx1Z2lucy90 ZW1wbGF0ZQppbmRleCBmMmY5NGU2M2Y1OS4uZjE2YzMwN2UwNTkgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvZ2VkaXQtcGx1Z2lucy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2dlZGl0LXBsdWdpbnMvdGVt cGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnZWRpdC1wbHVnaW5z JwogcGtnbmFtZT1nZWRpdC1wbHVnaW5zCiB2ZXJzaW9uPTMuMzYuMgotcmV2aXNpb249MQorcmV2 aXNpb249MgogYnVpbGRfc3R5bGU9bWVzb24KIHB5Y29tcGlsZV9kaXJzPSJ1c3IvbGliL2dlZGl0 L3BsdWdpbnMiCiBob3N0bWFrZWRlcGVuZHM9ImdldHRleHQgZ2xpYi1kZXZlbCBpdHN0b29sIHBr Zy1jb25maWcgdmFsYSBhcHBzdHJlYW0tZ2xpYiBweXRob24zLWdvYmplY3QKCkZyb20gM2MwZTlj ZjkzYjhmOGM2YmEwZmYxYmI3YTk5OWZmODlmYTFjNmZjMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFNhdCwg MTUgQXVnIDIwMjAgMDA6MzM6NDkgKzAyMDAKU3ViamVjdDogW1BBVENIIDYxLzgzXSBnbm9tZS1s YXRleDogdXBkYXRlIHRvIDMuMzcuMgoKLS0tCiBzcmNwa2dzL2dub21lLWxhdGV4L3RlbXBsYXRl IHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1sYXRleC90ZW1wbGF0ZSBiL3NyY3BrZ3Mv Z25vbWUtbGF0ZXgvdGVtcGxhdGUKaW5kZXggOTBkNjBiZTg2MGEuLmU0ZTJmNjI2Mjk2IDEwMDY0 NAotLS0gYS9zcmNwa2dzL2dub21lLWxhdGV4L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUt bGF0ZXgvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9t ZS1sYXRleCcKIHBrZ25hbWU9Z25vbWUtbGF0ZXgKLXZlcnNpb249My4zMi4wCi1yZXZpc2lvbj0y Cit2ZXJzaW9uPTMuMzcuMgorcmV2aXNpb249MQogYnVpbGRfaGVscGVyPSJnaXIiCiBidWlsZF9z dHlsZT1nbnUtY29uZmlndXJlCiBjb25maWd1cmVfYXJncz0iLS1kaXNhYmxlLWFwcHN0cmVhbS11 dGlsIC0tZGlzYWJsZS1kY29uZi1taWdyYXRpb24KQEAgLTE1LDcgKzE1LDcgQEAgbWFpbnRhaW5l cj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0zLjAt b3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21lLm9yZy9BcHBzL0dOT01FLUxh VGVYIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8k e3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09MGYwNjljN2I0YzY3NTQyNTVh MWM3ZTNlM2IwNTA5MjVkODA3NmY1NTQ1ODUyNmEzMGFiNTllMGE3ZDUyYWNjOQorY2hlY2tzdW09 YTM1MjFlMjFkNGNjNWJjNjBmZjY5NGY1MjA5ZjQ5OWNhYTgwZjM5NWNlNWQ2MmNiNjMyZTQyNDNh ZDI3YmFkMAogCiBidWlsZF9vcHRpb25zPSJnaXIiCiBidWlsZF9vcHRpb25zX2RlZmF1bHQ9Imdp ciIKCkZyb20gNTY3NGUxYjlhMDRjNjcyNzZkZDk2MWU3ZmU2NzBkMzJjM2QwZWFmYiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5v cmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDQ6MjM6MzMgKzAyMDAKU3ViamVjdDogW1BBVENI IDYyLzgzXSBiYW9iYWI6IHVwZGF0ZSB0byAzLjM3LjkwCgotLS0KIHNyY3BrZ3MvYmFvYmFiL3Rl bXBsYXRlIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYmFvYmFiL3RlbXBsYXRlIGIvc3JjcGtncy9i YW9iYWIvdGVtcGxhdGUKaW5kZXggYTAyOGJlNGNkNWIuLjYwODNhNzhmNTRmIDEwMDY0NAotLS0g YS9zcmNwa2dzL2Jhb2JhYi90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Jhb2JhYi90ZW1wbGF0ZQpA QCAtMSw2ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ2Jhb2JhYicKIHBrZ25hbWU9YmFv YmFiCi12ZXJzaW9uPTMuMzQuMQordmVyc2lvbj0zLjM3LjkwCiByZXZpc2lvbj0xCiBidWlsZF9z dHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IHBrZy1jb25maWcgaXRzdG9vbCBn bGliLWRldmVsIHZhbGEiCkBAIC0xMSw0ICsxMSw0IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5k IDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyLCBHRkRM LTEuMS1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL2FjdGlvbi9z aG93L0FwcHMvRGlza1VzYWdlQW5hbHl6ZXIiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtw a2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVj a3N1bT03Zjk4MWQ0ZjEzNWU0ZjgwZmJhM2Y2NmU4NmIwZWVlZGM5NGEyNDM0NjQ5MjYyZmYwMWE1 ZjBjYjAyN2IyMGM1CitjaGVja3N1bT00MWJlMzhlNDNmYWFmYjM5Mjc2OWM4NzllMWU3NjJjYTM4 ZTJkNzUxYzE3MWJlYTFmOTA0NzI5MGE4ODNmZWZlCgpGcm9tIDE0Y2Y0NGYyOGEzYWUyM2ZmNjg5 ZDY0YTE3MjUyMGQyMjA1NDZkZGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmll bCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDA0 OjMxOjUzICswMjAwClN1YmplY3Q6IFtQQVRDSCA2My84M10gZ25vbWUtYm94ZXM6IHVwZGF0ZSB0 byAzLjM3LjkwCgotLS0KIHNyY3BrZ3MvZ25vbWUtYm94ZXMvdGVtcGxhdGUgfCA3ICsrKystLS0K IDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9nbm9tZS1ib3hlcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtYm94ZXMv dGVtcGxhdGUKaW5kZXggMGZhMmFlNzZjNzIuLmZkOGZlYmNiY2Q4IDEwMDY0NAotLS0gYS9zcmNw a2dzL2dub21lLWJveGVzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25vbWUtYm94ZXMvdGVtcGxh dGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1ib3hlcycKIHBr Z25hbWU9Z25vbWUtYm94ZXMKLXZlcnNpb249My4zNi41Cit2ZXJzaW9uPTMuMzcuOTAKIHJldmlz aW9uPTEKIGJ1aWxkX2hlbHBlcj0iZ2lyIgogYnVpbGRfc3R5bGU9bWVzb24KQEAgLTgsNyArOCw4 IEBAIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dCBpdHN0b29sIHBrZy1jb25maWcgdmFsYSBnbGli LWRldmVsIgogbWFrZWRlcGVuZHM9ImNsdXR0ZXItZ3RrLWRldmVsIGZyZWVyZHAtZGV2ZWwgZ3Rr LXZuYy1kZXZlbCBsaWJhcmNoaXZlLWRldmVsCiAgbGliZ2xpYi1kZXZlbCBsaWJndWRldi1kZXZl bCBsaWJvc2luZm8tZGV2ZWwgbGlic2VjcmV0LWRldmVsIGxpYnNvdXAtZGV2ZWwKICBsaWJ1c2It ZGV2ZWwgbGlidmlydC1nbGliLWRldmVsIGxpYnhtbDItZGV2ZWwgc3BpY2UtZ3RrLWRldmVsIHNw aWNlLXByb3RvY29sCi0gdHJhY2tlci1kZXZlbCB2YWxhLWRldmVsIHdlYmtpdDJndGstZGV2ZWwg dnRlMy1kZXZlbCIKKyB0cmFja2VyLWRldmVsIHZhbGEtZGV2ZWwgd2Via2l0Mmd0ay1kZXZlbCB2 dGUzLWRldmVsIGd0a3NvdXJjZXZpZXc0LWRldmVsCisgbGliaGFuZHktZGV2ZWwiCiBkZXBlbmRz PSJkZXNrdG9wLWZpbGUtdXRpbHMgaGljb2xvci1pY29uLXRoZW1lIGxpYm9zaW5mbyBsaWJ2aXJ0 LWdsaWIgcWVtdSB0cmFja2VyIgogc2hvcnRfZGVzYz0iR05PTUUgMyBhcHBsaWNhdGlvbiB0byBh Y2Nlc3MgcmVtb3RlIG9yIHZpcnR1YWwgc3lzdGVtcyIKIG1haW50YWluZXI9IkVubm8gQm9sYW5k IDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCkBAIC0xNiw0ICsxNyw0IEBAIGxpY2Vuc2U9IkxHUEwt Mi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9Cb3hl cyIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0dOT01FL2du b21lLWJveGVzL2dub21lLTMtMzYvTkVXUyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3Br Z25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNr c3VtPTRjNTRjYWJlMzU1ZTg3OGQwNDU3NTE3MzQ2ZTQyNDdhODYwYjY4ODM0MTNkM2JmNzc2ODFk Y2QxMWVmNDFiY2UKK2NoZWNrc3VtPTEyMmRhMzkxMzFhY2I5NzFiM2U3NjQwMDZjNWMzNjk4NDQ3 YTVkOTIyMGFhYjMzODNkYjYzYzA5MjlkZTkxNWQKCkZyb20gNDA0MTEwYmYxZGY1MjcxM2Q5YWY4 MWEwZTBhOThmODM0NTFiZjQ1NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVs IEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDQ6 MzU6MjQgKzAyMDAKU3ViamVjdDogW1BBVENIIDY0LzgzXSBnbm9tZS1jYWxjdWxhdG9yOiB1cGRh dGUgdG8gMy4zNy45MAoKLS0tCiBzcmNwa2dzL2dub21lLWNhbGN1bGF0b3IvdGVtcGxhdGUgfCA2 ICsrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWNhbGN1bGF0b3IvdGVtcGxhdGUgYi9zcmNwa2dz L2dub21lLWNhbGN1bGF0b3IvdGVtcGxhdGUKaW5kZXggMDYyMTRiMDhkOWIuLjgxMTEyODQ0YTRl IDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWNhbGN1bGF0b3IvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9nbm9tZS1jYWxjdWxhdG9yL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBUZW1wbGF0 ZSBmaWxlIGZvciAnZ25vbWUtY2FsY3VsYXRvcicKIHBrZ25hbWU9Z25vbWUtY2FsY3VsYXRvcgot dmVyc2lvbj0zLjM2LjAKLXJldmlzaW9uPTIKK3ZlcnNpb249My4zNy45MAorcmV2aXNpb249MQog YnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgogaG9zdG1ha2VkZXBlbmRzPSJj bWFrZSBnZXR0ZXh0IGdsaWItZGV2ZWwgaXRzdG9vbCBwa2ctY29uZmlnIHZhbGEiCkBAIC0xNCw0 ICsxNCw0IEBAIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93 aWtpLmdub21lLm9yZy9BcHBzL0NhbGN1bGF0b3IiCiBjaGFuZ2Vsb2c9Imh0dHBzOi8vcmF3Lmdp dGh1YnVzZXJjb250ZW50LmNvbS9HTk9NRS9nbm9tZS1jYWxjdWxhdG9yL2dub21lLTMtMzIvTkVX UyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtw a2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWEyZTgzMGY5Yzk4NTZmYWQ2NWRh ZDFkNmMwYWU2YWJhZDBmMGI0OTZjOTk4NGFjMDA1MzE1YzVjYzQyMjBkYjMKK2NoZWNrc3VtPWI4 OTViNWVjNjJiOTQ5NTgxMGIwYTZjYjkwMTU4ZTZkMTYwNzA5NmQxNTBiNGFjNWNkY2Y4YWVmY2Vk ZWQ0YzEKCkZyb20gYmUyYjk1NzVlOWI1YWYzZjc0NDhlMDdiMzU2ZmY5YmU1ODU3YWRmNyBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3Jn ZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDQ6NDQ6NTggKzAyMDAKU3ViamVjdDogW1BB VENIIDY1LzgzXSBnbm9tZS1kaXNrLXV0aWxpdHk6IHVwZGF0ZSB0byAzLjM3LjIKCi0tLQogc3Jj cGtncy9nbm9tZS1kaXNrLXV0aWxpdHkvdGVtcGxhdGUgfCA2ICsrKy0tLQogMSBmaWxlIGNoYW5n ZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dz L2dub21lLWRpc2stdXRpbGl0eS90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtZGlzay11dGlsaXR5 L3RlbXBsYXRlCmluZGV4IGRjNjdiYmJhNzg1Li4xOTU1NjExODUwYiAxMDA2NDQKLS0tIGEvc3Jj cGtncy9nbm9tZS1kaXNrLXV0aWxpdHkvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9nbm9tZS1kaXNr LXV0aWxpdHkvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdn bm9tZS1kaXNrLXV0aWxpdHknCiBwa2duYW1lPWdub21lLWRpc2stdXRpbGl0eQotdmVyc2lvbj0z LjM2LjEKLXJldmlzaW9uPTIKK3ZlcnNpb249My4zNy4yCityZXZpc2lvbj0xCiBidWlsZF9zdHls ZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1EbG9naW5kPW5vbmUiCiBob3N0bWFrZWRlcGVuZHM9 ImdsaWItZGV2ZWwgZ3RrLWRvYyBpbnRsdG9vbCBwa2ctY29uZmlnIGxpYnhzbHQiCkBAIC0xMyw1 ICsxMyw1IEBAIG1haW50YWluZXI9IkVubm8gQm9sYW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4i CiBsaWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9t ZS5vcmcvQXBwcy9EaXNrcyIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7 dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTc5MWIx OGYyMzFiY2JjNmQ5NDFhZjM4MzdjYTViZTE0ZjIxNTdlNWNlM2QzMmJkYzViOWViODk0N2UxMmI0 MTQKK2NoZWNrc3VtPTFjOTk4ZjU1NGRmZWM4YjQyM2M2ODU4NzIzNTNhNWRiY2Y2NThjOWY3YmE0 NzdjYWM3NjhhOTI1NjM2NDMzMDgKIGxpYjMyZGlzYWJsZWQ9eWVzCgpGcm9tIGQzMGMwOTk1OGQ4 MzE5MjM5YmQ3MDNjNDc4YzRlM2ZmOWY3ZmZkZDkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1 ZyAyMDIwIDA0OjQ5OjI2ICswMjAwClN1YmplY3Q6IFtQQVRDSCA2Ni84M10gZ25vbWUtc2NyZWVu c2hvdDogdXBkYXRlIHRvIDMuMzcuOTAKCi0tLQogc3JjcGtncy9nbm9tZS1zY3JlZW5zaG90L3Rl bXBsYXRlIHwgOCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLXNjcmVlbnNob3QvdGVtcGxh dGUgYi9zcmNwa2dzL2dub21lLXNjcmVlbnNob3QvdGVtcGxhdGUKaW5kZXggOTljYWI2MmVlZTEu LjU0MTE2YWE4MWVjIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLXNjcmVlbnNob3QvdGVtcGxh dGUKKysrIGIvc3JjcGtncy9nbm9tZS1zY3JlZW5zaG90L3RlbXBsYXRlCkBAIC0xLDE0ICsxLDE0 IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnbm9tZS1zY3JlZW5zaG90JwogcGtnbmFtZT1nbm9t ZS1zY3JlZW5zaG90Ci12ZXJzaW9uPTMuMzYuMAotcmV2aXNpb249MgordmVyc2lvbj0zLjM3Ljkw CityZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJhcHBkYXRh LXRvb2xzIGdldHRleHQgZ2xpYi1kZXZlbCBpdHN0b29sIHBrZy1jb25maWciCi1tYWtlZGVwZW5k cz0ibGliY2FuYmVycmEtZGV2ZWwiCittYWtlZGVwZW5kcz0ibGliY2FuYmVycmEtZGV2ZWwgbGli aGFuZHkxLWRldmVsIgogZGVwZW5kcz0iZGVza3RvcC1maWxlLXV0aWxzIgogc2hvcnRfZGVzYz0i U2NyZWVuc2hvdCBjYXB0dXJlIHV0aWxpdHkgZm9yIEdOT01FIgogbWFpbnRhaW5lcj0iRW5ubyBC b2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIi CiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNjcmVlbnNo b3QiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7 cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0zMzQ5NWQ4OTI3MDcxNzkyNTRi NzQzZjhmNzBjOWE4MmNkZTVjNWYyYzdlYTNkYjYzNGEyYmE3ZWE3MzMxMjY2CitjaGVja3N1bT03 YTM5Y2M3ODQ3YTQ4MmZhOWFhZDk4OWNlNjVkZjBlZjVlZTllZjc5YWNlZDc1ZDE5MzFiN2U5ZTg2 YzEwZjEzCgpGcm9tIGM1MGM5NGY3OTBhMjJmNDIwNWM3YzVkZTk2NGIyNzRmYTQ0OTE4ZTcgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9y Z2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDA0OjUxOjAwICswMjAwClN1YmplY3Q6IFtQ QVRDSCA2Ny84M10gZ25vbWUtc3lzdGVtLW1vbml0b3I6IHVwZGF0ZSB0byAzLjM3LjkxCgotLS0K IHNyY3BrZ3MvZ25vbWUtc3lzdGVtLW1vbml0b3IvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBj aGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9nbm9tZS1zeXN0ZW0tbW9uaXRvci90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtc3lzdGVt LW1vbml0b3IvdGVtcGxhdGUKaW5kZXggZmYxMWIzNTkwYTQuLmNhMDE4N2M3ZWFjIDEwMDY0NAot LS0gYS9zcmNwa2dzL2dub21lLXN5c3RlbS1tb25pdG9yL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv Z25vbWUtc3lzdGVtLW1vbml0b3IvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdnbm9tZS1zeXN0ZW0tbW9uaXRvcicKIHBrZ25hbWU9Z25vbWUtc3lzdGVtLW1v bml0b3IKLXZlcnNpb249My4zNi4xCit2ZXJzaW9uPTMuMzcuOTEKIHJldmlzaW9uPTEKIGJ1aWxk X3N0eWxlPW1lc29uCiBjb25maWd1cmVfYXJncz0iLURzeXN0ZW1kPWZhbHNlIgpAQCAtMTEsNCAr MTEsNCBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+Igog bGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUu b3JnL0FwcHMvU3lzdGVtTW9uaXRvciIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25h bWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3Vt PTg2NmI0N2FiMGY0Yzc1YjBlYzU3ZDYzMDAzMzdhNzM3MzQ2M2FhYWQ1ZGY5NWVkZGZlNTM1NGMy MmJlN2JjYTEKK2NoZWNrc3VtPTBkNzlhMThkZTVlOGNmNGJjNDk0NmNlZDVmZjc4ZmE2NWZjYzJl MmRkNjMzODJiMDhlMzE0YzZmOTRkZjFlOTUKCkZyb20gN2UyZjA3MDU2YTBmZTQ3Y2RhNmI2YTE4 MmJlNDQ4ZDVjODZkZDc2OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtv bGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMDQ6NTY6 MzQgKzAyMDAKU3ViamVjdDogW1BBVENIIDY4LzgzXSBndGtzb3VyY2V2aWV3NDogdXBkYXRlIHRv IDQuNy45MAoKLS0tCiBzcmNwa2dzL2d0a3NvdXJjZXZpZXc0L3RlbXBsYXRlIHwgMjkgKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCsp LCAxMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2d0a3NvdXJjZXZpZXc0L3Rl bXBsYXRlIGIvc3JjcGtncy9ndGtzb3VyY2V2aWV3NC90ZW1wbGF0ZQppbmRleCA2ODQ4NzE2Nzcz Yy4uOTI2YTM5ZmQyMzkgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ3Rrc291cmNldmlldzQvdGVtcGxh dGUKKysrIGIvc3JjcGtncy9ndGtzb3VyY2V2aWV3NC90ZW1wbGF0ZQpAQCAtMSwzMiArMSwzNyBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnZ3Rrc291cmNldmlldzQnCiBwa2duYW1lPWd0a3NvdXJj ZXZpZXc0Ci12ZXJzaW9uPTQuMi4wCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTQuNy45MAorcmV2aXNp b249MQogd3Jrc3JjPSJndGtzb3VyY2V2aWV3LSR7dmVyc2lvbn0iCi1idWlsZF9zdHlsZT1nbnUt Y29uZmlndXJlCitidWlsZF9zdHlsZT1tZXNvbgogYnVpbGRfaGVscGVyPSJnaXIiCi1jb25maWd1 cmVfYXJncz0iLS1lbmFibGUtZ2xhZGUtY2F0YWxvZyAkKHZvcHRfZW5hYmxlIGdpciBpbnRyb3Nw ZWN0aW9uKQotICQodm9wdF9lbmFibGUgdmFsYSkgJCh2b3B0X2VuYWJsZSBndGtfZG9jIGd0ay1k b2MpIgorY29uZmlndXJlX2FyZ3M9Ii1EZ2xhZGVfY2F0YWxvZz10cnVlICQodm9wdF9ib29sIGdp ciBnaXIpCisgJCh2b3B0X2Jvb2wgZ2lyIHZhcGkpICQodm9wdF9ib29sIGd0a19kb2MgZ3RrX2Rv YykiCiBob3N0bWFrZWRlcGVuZHM9Imd0ayszLWRldmVsIGdsaWItZGV2ZWwgaXRzdG9vbCBsaWJ4 c2x0IHBrZy1jb25maWcKLSAkKHZvcHRfaWYgdmFsYSB2YWxhKSAkKHZvcHRfaWYgZ3RrX2RvYyBn dGstZG9jKSIKKyAkKHZvcHRfaWYgZ2lyIHZhbGEpICQodm9wdF9pZiBndGtfZG9jIGd0ay1kb2Mp IgogbWFrZWRlcGVuZHM9ImdsYWRlMy1kZXZlbCBndGsrMy1kZXZlbCBsaWJnbGliLWRldmVsIGxp YnhtbDItZGV2ZWwKLSAkKHZvcHRfaWYgdmFsYSB2YWxhKSIKKyAkKHZvcHRfaWYgZ2lyIHZhbGEp Igogc2hvcnRfZGVzYz0iVGV4dCB3aWRnZXQgdGhhdCBleHRlbmRzIEdUSysgR3RrVGV4dFZpZXcg d2lkZ2V0IgogbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIK IGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93aWtpLmdub21l Lm9yZy9Qcm9qZWN0cy9HdGtTb3VyY2VWaWV3IgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9L2d0 a3NvdXJjZXZpZXcvJHt2ZXJzaW9uJS4qfS9ndGtzb3VyY2V2aWV3LSR7dmVyc2lvbn0udGFyLnh6 IgotY2hlY2tzdW09YzQzMWViMjM0ZGM4M2M3ODE5ZTU4Zjc3ZGQyYWY5NzMyNTJjNzc1MGRhMWM5 ZDEyNWRkYzk0MjY4Zjk0ZjY3NQorY2hlY2tzdW09OTgzYmRjYjg4Zjk4Mjg1YjNiOTk3YzkzMzUw NTdjOGZiYzQ1YWFkMGE3YzEzY2I2NWViMzY1NTY3ZTI2YmFhZgogCiAjIFBhY2thZ2UgYnVpbGQg b3B0aW9ucwotYnVpbGRfb3B0aW9ucz0iZ2lyIHZhbGEgZ3RrX2RvYyIKK2J1aWxkX29wdGlvbnM9 ImdpciBndGtfZG9jIgogZGVzY19vcHRpb25fZ3RrX2RvYz0iQnVpbGQgQVBJIGRvY3MgdmlhIGd0 ay1kb2MiCi1idWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciB2YWxhIgorYnVpbGRfb3B0aW9uc19k ZWZhdWx0PSJnaXIiCiAKIGlmIFsgLXogIiRDUk9TU19CVUlMRCIgXTsgdGhlbgogCWJ1aWxkX29w dGlvbnNfZGVmYXVsdCs9IiBndGtfZG9jIgogZmkKIAorIyBOZWVkcyBYCitkb19jaGVjaygpIHsK Kwk6Cit9CisKIGd0a3NvdXJjZXZpZXc0LWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0iZ3Rr KzMtZGV2ZWwgbGliZ2xpYi1kZXZlbCBsaWJ4bWwyLWRldmVsICR7c291cmNlcGtnfT49JHt2ZXJz aW9ufV8ke3JldmlzaW9ufSIKIAlzaG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCkBA IC0zNiwxMSArNDEsOSBAQCBndGtzb3VyY2V2aWV3NC1kZXZlbF9wYWNrYWdlKCkgewogCQl2bW92 ZSAidXNyL2xpYi8qLnNvIgogCQl2bW92ZSB1c3Ivc2hhcmUvZ2xhZGUKIAkJdm1vdmUgdXNyL3No YXJlL2d0ay1kb2MKLQkJaWYgWyAiJGJ1aWxkX29wdGlvbl92YWxhIiBdOyB0aGVuCi0JCQl2bW92 ZSB1c3Ivc2hhcmUvdmFsYQotCQlmaQogCQlpZiBbICIkYnVpbGRfb3B0aW9uX2dpciIgXTsgdGhl bgogCQkJdm1vdmUgdXNyL3NoYXJlL2dpci0xLjAKKwkJCXZtb3ZlIHVzci9zaGFyZS92YWxhCiAJ CWZpCiAJfQogfQoKRnJvbSAyNzg3YjY1MjhmZGJmODA2MTcwMzc2Njg2NDJlNmQyYTViODFhYWU4 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0 YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAwNToyODoxNCArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggNjkvODNdIHN5c3Byb2Y6IHVwZGF0ZSB0byAzLjM3LjkwCgotLS0KIGNvbW1vbi9z aGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArKy0tCiAu Li4vcGF0Y2hlcy9hbGxvY3MtYnktc2l6ZS1nc2l6ZS1mb3JtYXQucGF0Y2ggICAgICAgIHwgMTIg LS0tLS0tLS0tLS0tCiBzcmNwa2dzL3N5c3Byb2YvcGF0Y2hlcy9idWlsZC5wYXRjaCAgICAgICAg ICAgICAgICAgIHwgMTAgKysrKysrKysrKwogc3JjcGtncy9zeXNwcm9mL3RlbXBsYXRlICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICsrLS0KIDQgZmlsZXMgY2hhbmdlZCwgMTQgaW5z ZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9z eXNwcm9mL3BhdGNoZXMvYWxsb2NzLWJ5LXNpemUtZ3NpemUtZm9ybWF0LnBhdGNoCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9zeXNwcm9mL3BhdGNoZXMvYnVpbGQucGF0Y2gKCmRpZmYgLS1n aXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCBlZDBjM2M4M2JhNi4uZTIw OGU3MDVjNjEgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpA QCAtMzE1NSw4ICszMTU1LDggQEAgbGlibWlyYWdlLnNvLjExIGxpYm1pcmFnZS0zLjEuMF8xCiBs aWJ3a2h0bWx0b3guc28uMCBsaWJ3a2h0bWx0b3BkZi0wLjEyLjVfMQogbGliaXhtbC5zby4xMCBs aWJ1cG5wMS44LTEuOC4yXzEKIGxpYnVwbnAuc28uMTMgbGlidXBucDEuOC0xLjguNF8xCi1saWJz eXNwcm9mLTMuc28gc3lzcHJvZi0zLjM0LjBfMQotbGlic3lzcHJvZi11aS0zLnNvIHN5c3Byb2Yt My4zNC4wXzEKK2xpYnN5c3Byb2YtNC5zbyBzeXNwcm9mLTMuMzcuOTBfMQorbGlic3lzcHJvZi11 aS00LnNvIHN5c3Byb2YtMy4zNy45MF8xCiBsaWJtb3pqcy01Mi5zbyBtb3pqczUyLTUyLjMuMF8x CiBsaWJtb3pqcy01Mi5zby4wIG1vempzNTItNTIuMy4wXzEKIGxpYnZhbGEtMC40OC5zby4wIGxp YnZhbGEtMC40OC4wXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvc3lzcHJvZi9wYXRjaGVzL2FsbG9j cy1ieS1zaXplLWdzaXplLWZvcm1hdC5wYXRjaCBiL3NyY3BrZ3Mvc3lzcHJvZi9wYXRjaGVzL2Fs bG9jcy1ieS1zaXplLWdzaXplLWZvcm1hdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggYWZlZTA3ZWJiYzIuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mvc3lzcHJvZi9wYXRj aGVzL2FsbG9jcy1ieS1zaXplLWdzaXplLWZvcm1hdC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDEyICswLDAgQEAKLWRpZmYgLXJhdU4gc3JjL3Rlc3RzL2FsbG9jcy1ieS1zaXplLmMgc3JjL3Rl c3RzL2FsbG9jcy1ieS1zaXplLmMKLS0tLSBzcmMvdGVzdHMvYWxsb2NzLWJ5LXNpemUuYwkyMDIw LTAzLTIyIDIwOjAwOjEyLjY3NzA0ODgyMiArMDEwMAotKysrIHNyYy90ZXN0cy9hbGxvY3MtYnkt c2l6ZS5jCTIwMjAtMDMtMjIgMjA6MDE6MDcuMDAwNDE4MzYxICswMTAwCi1AQCAtMTA5LDcgKzEw OSw3IEBACi0gICAgIHsKLSAgICAgICBjb25zdCBJdGVtICppdGVtID0gJmdfYXJyYXlfaW5kZXgg KGFyLCBJdGVtLCBpKTsKLSAKLS0gICAgICBnX3ByaW50ICgiJSJHX0dVSU5UNjRfRk9STUFUIiwl IkdfR1VJTlQ2NF9GT1JNQVQiLCUiR19HVUlOVDY0X0ZPUk1BVCJcbiIsCi0rICAgICAgZ19wcmlu dCAoIiUiR19HU0laRV9GT1JNQVQiLCUiR19HU0laRV9GT1JNQVQiLCUiR19HU0laRV9GT1JNQVQi XG4iLAotICAgICAgICAgICAgICAgIGl0ZW0tPnNpemUsIGl0ZW0tPmNtcCwgaXRlbS0+Y291bnQp OwotICAgICB9Ci0gfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9zeXNwcm9mL3BhdGNoZXMvYnVpbGQu cGF0Y2ggYi9zcmNwa2dzL3N5c3Byb2YvcGF0Y2hlcy9idWlsZC5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYWI3YzJjMWMxNjQKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL3N5c3Byb2YvcGF0Y2hlcy9idWlsZC5wYXRjaApAQCAtMCwwICsxLDEwIEBACist LS0gc3JjL2xpYnN5c3Byb2YtY2FwdHVyZS9zeXNwcm9mLWNhcHR1cmUtY29uZGl0aW9uLmMKKysr KyBzcmMvbGlic3lzcHJvZi1jYXB0dXJlL3N5c3Byb2YtY2FwdHVyZS1jb25kaXRpb24uYworQEAg LTI2OSw2ICsyNjksNyBAQCBzeXNwcm9mX2NhcHR1cmVfY29uZGl0aW9uX2NvcHkgKGNvbnN0IFN5 c3Byb2ZDYXB0dXJlQ29uZGl0aW9uICpzZWxmKQorICAgICB9CisgCisgICBzeXNwcm9mX2Fzc2Vy dF9ub3RfcmVhY2hlZCAoKTsKKysgIHJldHVybiBOVUxMOworIH0KKyAKKyBzdGF0aWMgdm9pZApk aWZmIC0tZ2l0IGEvc3JjcGtncy9zeXNwcm9mL3RlbXBsYXRlIGIvc3JjcGtncy9zeXNwcm9mL3Rl bXBsYXRlCmluZGV4IDY4YmNhNjAyNTUzLi4xNTE2NmUyOGUxYSAxMDA2NDQKLS0tIGEvc3JjcGtn cy9zeXNwcm9mL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvc3lzcHJvZi90ZW1wbGF0ZQpAQCAtMSw2 ICsxLDYgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3N5c3Byb2YnCiBwa2duYW1lPXN5c3Byb2YK LXZlcnNpb249My4zNi4wCit2ZXJzaW9uPTMuMzcuOTAKIHJldmlzaW9uPTEKIGJ1aWxkX3N0eWxl PW1lc29uCiBjb25maWd1cmVfYXJncz0iLURlbmFibGVfZ3RrPXRydWUgLURzeXN0ZW1kdW5pdGRp cj1kZWxldGVtZSIKQEAgLTExLDcgKzExLDcgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdv dHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIEdQTC0zLjAt b3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cDovL3N5c3Byb2YuY29tLyIKIGRpc3RmaWxlcz0iJHtH Tk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259 LnRhci54eiIKLWNoZWNrc3VtPTg2NzBkYjRkYWNmN2IyMTlkMzBjNTc1YzQ2NWIxN2M4ZWQ2NzI0 ZGJhZGUzNDdmMmNkZTk1NDhiZmYwMzkxMDgKK2NoZWNrc3VtPTYxODEwYzM2YmMwYmZiNWNlODgw OGU2YjJmYmVmYzNjZTBjNTEwYzU3YjFkMjZiYmE2NmNjNjM2Zjc1YjgwNDEKIAogIyBmb3IgSVRT IHJ1bGVzCiBpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KCkZyb20gZWYyZDU3ZDE4YmNhNjI1 YWE0Yzc0MDJjNjNmOWM0YzBkMGYzYjJhNCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog RGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIw MjAgMDY6MjM6MDQgKzAyMDAKU3ViamVjdDogW1BBVENIIDcwLzgzXSBOZXcgcGFja2FnZTogbW96 anM3OC03OC4xLjAKCi0tLQogY29tbW9uL3NobGlicyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAxICsKIHNyY3BrZ3MvbW96anM3OC1kZXZlbCAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgMSArCiAuLi4vMDAxLXNpbGVuY2Utc2FuZGJveC12aW9sYXRpb25zLnBhdGNoICAg ICAgfCAgMjcgKysrKysKIHNyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwMi1maXgtc29uYW1lLnBh dGNoICB8ICAyMiArKysrCiAuLi4vbW96anM3OC9wYXRjaGVzLzAwMy1maXgtd2FzbS1hcm0ucGF0 Y2ggICAgfCAgMTYgKysrCiAuLi4vbW96anM3OC9wYXRjaGVzLzAwNC1maXgtbXVzbC1idWlsZC5w YXRjaCAgfCAgMTcgKysrCiAuLi4vMDA1LXNwaWRlcm1vbmtleS1jaGVja3MtZGlzYWJsZS5wYXRj aCAgICAgfCAgMTIgKysKIC4uLi8wMDYtbW96anM3OC5wYy1ob25vci1zeXNyb290LnBhdGNoICAg ICAgICB8ICAxMCArKwogLi4uL3BhdGNoZXMvMDA3LWZpeC1taXBzLXNnaWRlZnNfaC5wYXRjaCAg ICAgIHwgIDExICsrCiBzcmNwa2dzL21vempzNzgvcGF0Y2hlcy9jb3ZlcmFnZS1hcGkucGF0Y2gg ICAgfCAxMDcgKysrKysrKysrKysrKysrKysrCiBzcmNwa2dzL21vempzNzgvdGVtcGxhdGUgICAg ICAgICAgICAgICAgICAgICAgfCAgNzMgKysrKysrKysrKysrCiBzcmNwa2dzL21vempzNzgvdXBk YXRlICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogMTIgZmlsZXMgY2hhbmdlZCwgMjk4 IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL21vempzNzgtZGV2ZWwK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDEtc2lsZW5jZS1z YW5kYm94LXZpb2xhdGlvbnMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL21vempz NzgvcGF0Y2hlcy8wMDItZml4LXNvbmFtZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvbW96anM3OC9wYXRjaGVzLzAwMy1maXgtd2FzbS1hcm0ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDQtZml4LW11c2wtYnVpbGQucGF0Y2gKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDUtc3BpZGVybW9ua2V5 LWNoZWNrcy1kaXNhYmxlLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9tb3pqczc4 L3BhdGNoZXMvMDA2LW1vempzNzgucGMtaG9ub3Itc3lzcm9vdC5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwNy1maXgtbWlwcy1zZ2lkZWZzX2gucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL21vempzNzgvcGF0Y2hlcy9jb3ZlcmFnZS1h cGkucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL21vempzNzgvdGVtcGxhdGUKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL21vempzNzgvdXBkYXRlCgpkaWZmIC0tZ2l0IGEvY29t bW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMKaW5kZXggZTIwOGU3MDVjNjEuLjBjNjVlODljMGUz IDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisrKyBiL2NvbW1vbi9zaGxpYnMKQEAgLTM1NDAs NiArMzU0MCw3IEBAIGxpYktGNVN5bmRpY2F0aW9uLnNvLjUgc3luZGljYXRpb24tNS41MC4wXzEK IGxpYmxxci0xLnNvLjAgbGlibHFyLTAuNC4yXzEKIGxpYm1vempzLTYwLnNvLjAgbW96anM2MC02 MC4wLjJfMQogbGlibW96anMtNjguc28uMCBtb3pqczY4LTY4LjguMF8xCitsaWJtb3pqcy03OC5z by4wIG1vempzNzgtNzguMS4wXzEKIGxpYmVidXIxMjguc28uMSBsaWJlYnVyMTI4LTEuMi40XzEK IGxpYmd0a3NvdXJjZXZpZXctNC5zby4wIGd0a3NvdXJjZXZpZXc0LTQuMC4yXzEKIGxpYnd4X2d0 azN1X3Byb3BncmlkLTMuMC5zby4wIHd4V2lkZ2V0cy1ndGszLTMuMC40XzEKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvbW96anM3OC1kZXZlbCBiL3NyY3BrZ3MvbW96anM3OC1kZXZlbApuZXcgZmlsZSBt b2RlIDEyMDAwMAppbmRleCAwMDAwMDAwMDAwMC4uNzcxMzU5OTM1NmYKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL21vempzNzgtZGV2ZWwKQEAgLTAsMCArMSBAQAorbW96anM3OApcIE5vIG5l d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVz LzAwMS1zaWxlbmNlLXNhbmRib3gtdmlvbGF0aW9ucy5wYXRjaCBiL3NyY3BrZ3MvbW96anM3OC9w YXRjaGVzLzAwMS1zaWxlbmNlLXNhbmRib3gtdmlvbGF0aW9ucy5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZGMwMTE5NGI2NDYKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDEtc2lsZW5jZS1zYW5kYm94LXZpb2xhdGlvbnMu cGF0Y2gKQEAgLTAsMCArMSwyNyBAQAorIkNhcnJpZWQgb3ZlciArIHVwZGF0ZWQgZnJvbSBtb3pq czY4IgorVXBzdHJlYW06IG5vCitGcm9tIDlhZDEwNTY5ZTExYTJmYjk2Mzc3MTg4Zjg5NWJjNjZh YmNjOTUxMWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBNYXJjLUFudG9pbmUgUGVy ZW5ub3UgPE1hcmMtQW50b2luZUBQZXJlbm5vdS5jb20+CitEYXRlOiBXZWQsIDUgU2VwIDIwMTgg MTU6MDU6MjQgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gc2lsZW5jZSBzYW5kYm94IHZpb2xhdGlv bnMKKworU2lnbmVkLW9mZi1ieTogTWFyYy1BbnRvaW5lIFBlcmVubm91IDxNYXJjLUFudG9pbmVA UGVyZW5ub3UuY29tPgorLS0tCisgcHl0aG9uL21vemJ1aWxkL21vemJ1aWxkL2Zyb250ZW5kL2Vt aXR0ZXIucHkgfCA1IC0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDUgZGVsZXRpb25zKC0pCisKKy0t LSBhL3B5dGhvbi9tb3pidWlsZC9tb3pidWlsZC9mcm9udGVuZC9lbWl0dGVyLnB5CisrKysgYi9w eXRob24vbW96YnVpbGQvbW96YnVpbGQvZnJvbnRlbmQvZW1pdHRlci5weQorQEAgLTEyMzksMTIg KzEyMzksNiBAQCBjbGFzcyBUcmVlTWV0YWRhdGFFbWl0dGVyKExvZ2dpbmdNaXhpbik6CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpcyBhIGZpbGVu YW1lLCBidXQgYSBkaXJlY3RvcnkgaXMgcmVxdWlyZWQ6ICVzICcKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyhyZXNvbHZlZCB0byAlcyknICUgKGxv Y2FsX2luY2x1ZGUsIGZ1bGxfcGF0aCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnRleHQpCistICAgICAgICAgICAgaWYgKGZ1bGxfcGF0aCA9 PSBjb250ZXh0LmNvbmZpZy50b3BzcmNkaXIgb3IKKy0gICAgICAgICAgICAgICAgICAgIGZ1bGxf cGF0aCA9PSBjb250ZXh0LmNvbmZpZy50b3BvYmpkaXIpOgorLSAgICAgICAgICAgICAgICByYWlz ZSBTYW5kYm94VmFsaWRhdGlvbkVycm9yKAorLSAgICAgICAgICAgICAgICAgICAgJ1BhdGggc3Bl Y2lmaWVkIGluIExPQ0FMX0lOQ0xVREVTICcKKy0gICAgICAgICAgICAgICAgICAgICcoJXMpIHJl c29sdmVzIHRvIHRoZSB0b3BzcmNkaXIgb3IgdG9wb2JqZGlyICglcyksIHdoaWNoIGlzICcKKy0g ICAgICAgICAgICAgICAgICAgICdub3QgYWxsb3dlZCcgJSAobG9jYWxfaW5jbHVkZSwgZnVsbF9w YXRoKSwgY29udGV4dCkKKyAgICAgICAgICAgICBpbmNsdWRlX29iaiA9IExvY2FsSW5jbHVkZShj b250ZXh0LCBsb2NhbF9pbmNsdWRlKQorICAgICAgICAgICAgIGxvY2FsX2luY2x1ZGVzLmFwcGVu ZChpbmNsdWRlX29iai5wYXRoLmZ1bGxfcGF0aCkKKyAgICAgICAgICAgICB5aWVsZCBpbmNsdWRl X29iagpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDAyLWZpeC1zb25hbWUu cGF0Y2ggYi9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDItZml4LXNvbmFtZS5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uY2M1NDMxMDkzOTgKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDItZml4LXNvbmFtZS5wYXRjaApA QCAtMCwwICsxLDIyIEBACisiQ2FycmllZCBvdmVyIGZyb20gbW96anM2OCIKKy0tLSBhL2pzL3Ny Yy9idWlsZC9NYWtlZmlsZS5pbgorKysrIGIvanMvc3JjL2J1aWxkL01ha2VmaWxlLmluCitAQCAt NzgsNiArNzgsOCBAQAorIGVuZGlmCisgaWZuZXEgKCwkKFNIQVJFRF9MSUJSQVJZKSkKKyAJJChT WVNJTlNUQUxMKSAkKFNIQVJFRF9MSUJSQVJZKSAkKERFU1RESVIpJChsaWJkaXIpCisrCW12IC1m ICQoREVTVERJUikkKGxpYmRpcikvJChTSEFSRURfTElCUkFSWSkgJChERVNURElSKSQobGliZGly KS8kKFNIQVJFRF9MSUJSQVJZKS4wCisrCWxuIC1zICQoU0hBUkVEX0xJQlJBUlkpLjAgJChERVNU RElSKSQobGliZGlyKS8kKFNIQVJFRF9MSUJSQVJZKQorIGlmZXEgKCQoT1NfQVJDSCksRGFyd2lu KQorIAlpbnN0YWxsX25hbWVfdG9vbCAtaWQgJChhYnNwYXRoICQobGliZGlyKS8kKFNIQVJFRF9M SUJSQVJZKSkgJChERVNURElSKSQobGliZGlyKS8kKFNIQVJFRF9MSUJSQVJZKQorIGVuZGlmCist LS0gYS9qcy9zcmMvYnVpbGQvbW96LmJ1aWxkCisrKysgYi9qcy9zcmMvYnVpbGQvbW96LmJ1aWxk CitAQCAtMjUsNiArMjUsNyBAQAorIGlmIENPTkZJR1snSlNfU0hBUkVEX0xJQlJBUlknXToKKyAg ICAgR2Vja29TaGFyZWRMaWJyYXJ5KCdqcycsIGxpbmthZ2U9Tm9uZSkKKyAgICAgU0hBUkVEX0xJ QlJBUllfTkFNRSA9IENPTkZJR1snSlNfTElCUkFSWV9OQU1FJ10KKysgICAgTERGTEFHUyArPSBb Jy1XbCwtc29uYW1lLGxpYnt9LnNvLjAnLmZvcm1hdChTSEFSRURfTElCUkFSWV9OQU1FKV0KKyAK KyAgICAgIyBFbnN1cmUgc3ltYm9sIHZlcnNpb25zIG9mIHNoYXJlZCBsaWJyYXJ5IG9uIExpbnV4 IGRvIG5vdCBjb25mbGljdAorICAgICAjIHdpdGggdGhvc2UgaW4gbGlieHVsLgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDAzLWZpeC13YXNtLWFybS5wYXRjaCBiL3NyY3Br Z3MvbW96anM3OC9wYXRjaGVzLzAwMy1maXgtd2FzbS1hcm0ucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjg5MWE3NjUyMDU2Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDAzLWZpeC13YXNtLWFybS5wYXRjaApAQCAtMCwwICsx LDE2IEBACisiVGFrZW4gZnJvbSBmaXJlZm94LWVzciIKKy0tLSBhL2pzL3NyYy93YXNtL1dhc21T aWduYWxIYW5kbGVycy5jcHAKKysrKyBiL2pzL3NyYy93YXNtL1dhc21TaWduYWxIYW5kbGVycy5j cHAKK0BAIC0yNDMsOSArMjQzLDkgQEAKKyAvLyBJZiB5b3UgcnVuIGludG8gY29tcGlsZSBwcm9i bGVtcyBvbiBhIHRpZXItMyBwbGF0Zm9ybSwgeW91IGNhbiBkaXNhYmxlIHRoZQorIC8vIGVtdWxh dGlvbiBoZXJlLgorIAorLSNpZiBkZWZpbmVkKF9fbGludXhfXykgJiYgZGVmaW5lZChfX2FybV9f KQorLSMgIGRlZmluZSBXQVNNX0VNVUxBVEVfQVJNX1VOQUxJR05FRF9GUF9BQ0NFU1MKKy0jZW5k aWYKKysvLyAjaWYgZGVmaW5lZChfX2xpbnV4X18pICYmIGRlZmluZWQoX19hcm1fXykKKysvLyAj ICBkZWZpbmUgV0FTTV9FTVVMQVRFX0FSTV9VTkFMSUdORURfRlBfQUNDRVNTCisrLy8gI2VuZGlm CisgCisgI2lmZGVmIFdBU01fRU1VTEFURV9BUk1fVU5BTElHTkVEX0ZQX0FDQ0VTUworICMgIGlu Y2x1ZGUgPHN5cy91c2VyLmg+CmRpZmYgLS1naXQgYS9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy8w MDQtZml4LW11c2wtYnVpbGQucGF0Y2ggYi9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDQtZml4 LW11c2wtYnVpbGQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LmY2MjlmYTJhYzM1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMv MDA0LWZpeC1tdXNsLWJ1aWxkLnBhdGNoCkBAIC0wLDAgKzEsMTcgQEAKKyJDYXJyaWVkIG92ZXIg ZnJvbSBtb3pqczYwIgorVXBzdHJlYW06IE5vCitSZWFzb246IG1vempzNjggbWlzY29tcGlsZXMg b24gbXVzbCBpZiBidWlsdCB3aXRoIEhBVkVfVEhSRUFEX1RMU19LRVlXT1JEOgoraHR0cHM6Ly9n aXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9pc3N1ZXMvMjU5OAorZGlmZiAtLWdp dCBhL2pzL3NyYy9vbGQtY29uZmlndXJlLmluIGIvanMvc3JjL29sZC1jb25maWd1cmUuaW4KKy0t LSBhL2pzL3NyYy9vbGQtY29uZmlndXJlLmluCisrKysgYi9qcy9zcmMvb2xkLWNvbmZpZ3VyZS5p bgorQEAgLTEyNzIsNiArMTI3Miw5IEBACisgICAgICotYW5kcm9pZCp8Ki1saW51eGFuZHJvaWQq KQorICAgICAgIDoKKyAgICAgICA7OworKyAgICAqLW11c2wqKQorKyAgICAgIDoKKysgICAgICA7 OworICAgICAqKQorICAgICAgIEFDX0RFRklORShIQVZFX1RIUkVBRF9UTFNfS0VZV09SRCkKKyAg ICAgICA7OwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDA1LXNwaWRlcm1v bmtleS1jaGVja3MtZGlzYWJsZS5wYXRjaCBiL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwNS1z cGlkZXJtb25rZXktY2hlY2tzLWRpc2FibGUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAuLmY2ZWFiYWJkMWYyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9t b3pqczc4L3BhdGNoZXMvMDA1LXNwaWRlcm1vbmtleS1jaGVja3MtZGlzYWJsZS5wYXRjaApAQCAt MCwwICsxLDEyIEBACitTb3VyY2U6RmVkb3JhCitSZWFzb246IENoZWNrcyBmYWlsZWQoVG9kbzog RmlndXJlIG91dCB3aHkpCisrKysgYS9jb25maWcvcnVuX3NwaWRlcm1vbmtleV9jaGVja3MucHkK KysrKyBiL2NvbmZpZy9ydW5fc3BpZGVybW9ua2V5X2NoZWNrcy5weQorQEAgLTExLDUgKzExLDUg QEAKKyAgICAgZm9yIHNjcmlwdCBpbiBzY3JpcHRzOgorICAgICAgICAgcmV0Y29kZSA9IHN1YnBy b2Nlc3MuY2FsbCgKKyAgICAgICAgICAgICBbc3lzLmV4ZWN1dGFibGUsIHNjcmlwdF0sIGN3ZD1i dWlsZGNvbmZpZy50b3BzcmNkaXIpCistICAgICAgICBpZiByZXRjb2RlICE9IDA6CistICAgICAg ICAgICAgcmFpc2UgRXhjZXB0aW9uKHNjcmlwdCArICIgZmFpbGVkIikKKysgICAgICAgICNpZiBy ZXRjb2RlICE9IDA6CisrICAgICAgICAjICAgIHJhaXNlIEV4Y2VwdGlvbihzY3JpcHQgKyAiIGZh aWxlZCIpCmRpZmYgLS1naXQgYS9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy8wMDYtbW96anM3OC5w Yy1ob25vci1zeXNyb290LnBhdGNoIGIvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDA2LW1vempz NzgucGMtaG9ub3Itc3lzcm9vdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uNzEyMTRiOGVjY2YKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL21vempzNzgv cGF0Y2hlcy8wMDYtbW96anM3OC5wYy1ob25vci1zeXNyb290LnBhdGNoCkBAIC0wLDAgKzEsMTAg QEAKKyJDYXJyaWVkIG92ZXIgZnJvbSBtb3pqczYwIgorUmVhc29uOiBGaXggdGhlICctaW5jbHVk ZScgZGlyZWN0aXZlLCBvdGhlcndpc2UgaXQgdHJpZXMgdG8gdXNlIHRoZSBob3N0J3MgaGVhZGVy CistLS0gYS9qcy9zcmMvYnVpbGQvanMucGMuaW4KKysrKyBiL2pzL3NyYy9idWlsZC9qcy5wYy5p bgorQEAgLTExLDQgKzExLDQgQEAKKyAjIFVzZSAtaXN5c3RlbSBmb3IgaW5jbHVkZXMgcmF0aGVy IHRoYW4gLUksIHRvIG1hcmsgdGhlbSBhcyAic3lzdGVtIGhlYWRlcnMiCisgIyB0aGF0IGRvbid0 IGdlbmVyYXRlIHdhcm5pbmcgZGlhZ25vc3RpY3MuIEZvciBqdXN0aWZpY2F0aW9uLCBzZWUKKyAj IGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzkwMzYKKy1D ZmxhZ3M6IC1pbmNsdWRlICR7aW5jbHVkZWRpcn0vQEpTX0xJQlJBUllfTkFNRUAvanMvUmVxdWly ZWREZWZpbmVzLmggLWlzeXN0ZW0gJHtpbmNsdWRlZGlyfS9ASlNfTElCUkFSWV9OQU1FQAorK0Nm bGFnczogLWluY2x1ZGUgJHtwY19zeXNyb290ZGlyfSR7aW5jbHVkZWRpcn0vQEpTX0xJQlJBUllf TkFNRUAvanMvUmVxdWlyZWREZWZpbmVzLmggLWlzeXN0ZW0gJHtpbmNsdWRlZGlyfS9ASlNfTElC UkFSWV9OQU1FQApkaWZmIC0tZ2l0IGEvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMvMDA3LWZpeC1t aXBzLXNnaWRlZnNfaC5wYXRjaCBiL3NyY3BrZ3MvbW96anM3OC9wYXRjaGVzLzAwNy1maXgtbWlw cy1zZ2lkZWZzX2gucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LmFiYjE0MDIzM2EwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9tb3pqczc4L3BhdGNoZXMv MDA3LWZpeC1taXBzLXNnaWRlZnNfaC5wYXRjaApAQCAtMCwwICsxLDExIEBACistLS0gYS9tZmJ0 L1JhbmRvbU51bS5jcHAJMjAyMC0wNC0yOSAyMzo0OTo0MC4wMDAwMDAwMDAgKzAyMDAKKysrKyBi L21mYnQvUmFuZG9tTnVtLmNwcAkyMDIwLTA4LTA0IDE5OjI5OjM2LjEyNzQ3MTMwMSArMDIwMAor QEAgLTUyLDcgKzUyLDcgQEAKKyAjICBlbGlmIGRlZmluZWQoX19zMzkwX18pCisgIyAgICBkZWZp bmUgR0VUUkFORE9NX05SIDM0OQorICMgIGVsaWYgZGVmaW5lZChfX21pcHNfXykKKy0jICAgIGlu Y2x1ZGUgPHNnaWRlZnMuaD4KKysjICAgIGluY2x1ZGUgPGFzbS9zZ2lkZWZzLmg+CisgIyAgICBp ZiBfTUlQU19TSU0gPT0gX01JUFNfU0lNX0FCSTMyCisgIyAgICAgIGRlZmluZSBHRVRSQU5ET01f TlIgNDM1MworICMgICAgZWxpZiBfTUlQU19TSU0gPT0gX01JUFNfU0lNX0FCSTY0CmRpZmYgLS1n aXQgYS9zcmNwa2dzL21vempzNzgvcGF0Y2hlcy9jb3ZlcmFnZS1hcGkucGF0Y2ggYi9zcmNwa2dz L21vempzNzgvcGF0Y2hlcy9jb3ZlcmFnZS1hcGkucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLjUzZTk0NzU2MWNmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9tb3pqczc4L3BhdGNoZXMvY292ZXJhZ2UtYXBpLnBhdGNoCkBAIC0wLDAgKzEsMTA3IEBACitG cm9tIGU1YTJlYjk5ZjY1M2FlMDNjNjdlNTM2ZGYxZDU1ZDI2NWEwYTE2MDUgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCitGcm9tOiBFdmFuIFdlbHNoIDxjb250YWN0QGV2YW53ZWxzaC5jb20+CitE YXRlOiBNb24sIDEwIEF1ZyAyMDIwIDEzOjE3OjM2IC0wNTAwCitTdWJqZWN0OiBbUEFUQ0hdIEJ1 ZyAxNjU0Njk2IC0gSW1wbGVtZW50IGNvZGUgY292ZXJhZ2UgSlNBUEkuCisgcj1uYnAscHRvbWF0 byxqd2FsZGVuCisKKy0tLQorIGpzL3B1YmxpYy9leHBlcmltZW50YWwvQ29kZUNvdmVyYWdlLmgg fCAyNSArKysrKysrKysrKysrKysrKysrKysrKysrCisganMvc3JjL2pzZnJpZW5kYXBpLmNwcCAg ICAgICAgICAgICAgICB8ICAzICsrKworIGpzL3NyYy9tb3ouYnVpbGQgICAgICAgICAgICAgICAg ICAgICAgfCAgMSArCisganMvc3JjL3NoZWxsL2pzLmNwcCAgICAgICAgICAgICAgICAgICB8IDEx ICsrKysrKy0tLS0tCisgNCBmaWxlcyBjaGFuZ2VkLCAzNSBpbnNlcnRpb25zKCspLCA1IGRlbGV0 aW9ucygtKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBqcy9wdWJsaWMvZXhwZXJpbWVudGFsL0NvZGVD b3ZlcmFnZS5oCisKK2RpZmYgLS1naXQgYS9qcy9wdWJsaWMvZXhwZXJpbWVudGFsL0NvZGVDb3Zl cmFnZS5oIGIvanMvcHVibGljL2V4cGVyaW1lbnRhbC9Db2RlQ292ZXJhZ2UuaAorbmV3IGZpbGUg bW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwMC4uMDZjYzBjOWNhCistLS0gL2Rldi9udWxsCisr KysgYi9qcy9wdWJsaWMvZXhwZXJpbWVudGFsL0NvZGVDb3ZlcmFnZS5oCitAQCAtMCwwICsxLDI1 IEBACisrLyogLSotIE1vZGU6IEMrKzsgdGFiLXdpZHRoOiA4OyBpbmRlbnQtdGFicy1tb2RlOiBu aWw7IGMtYmFzaWMtb2Zmc2V0OiAyIC0qLQorKyAqIHZpbTogc2V0IHRzPTggc3RzPTIgZXQgc3c9 MiB0dz04MDoKKysgKiBUaGlzIFNvdXJjZSBDb2RlIEZvcm0gaXMgc3ViamVjdCB0byB0aGUgdGVy bXMgb2YgdGhlIE1vemlsbGEgUHVibGljCisrICogTGljZW5zZSwgdi4gMi4wLiBJZiBhIGNvcHkg b2YgdGhlIE1QTCB3YXMgbm90IGRpc3RyaWJ1dGVkIHdpdGggdGhpcworKyAqIGZpbGUsIFlvdSBj YW4gb2J0YWluIG9uZSBhdCBodHRwOi8vbW96aWxsYS5vcmcvTVBMLzIuMC8uICovCisrCisrI2lm bmRlZiBqc19leHBlcmltZW50YWxfQ29kZUNvdmVyYWdlX2gKKysjZGVmaW5lIGpzX2V4cGVyaW1l bnRhbF9Db2RlQ292ZXJhZ2VfaAorKworKyNpbmNsdWRlICJqc3R5cGVzLmgiICAgICAvLyBKU19G UklFTkRfQVBJCisrCisrc3RydWN0IEpTX1BVQkxJQ19BUEkgSlNDb250ZXh0OworKworK25hbWVz cGFjZSBqcyB7CisrCisrLyoqCisrICogRW5hYmxlIHRoZSBjb2xsZWN0aW9uIG9mIGxjb3YgY29k ZSBjb3ZlcmFnZSBtZXRyaWNzLgorKyAqIE11c3QgYmUgY2FsbGVkIGJlZm9yZSBhIHJ1bnRpbWUg aXMgY3JlYXRlZCBhbmQgYmVmb3JlIGFueSBjYWxscyB0bworKyAqIEdldENvZGVDb3ZlcmFnZVN1 bW1hcnkuCisrICovCisrZXh0ZXJuIEpTX0ZSSUVORF9BUEkgdm9pZCBFbmFibGVDb2RlQ292ZXJh Z2UoKTsKKysKKyt9ICAvLyBuYW1lc3BhY2UganMKKysKKysjZW5kaWYgIC8vIGpzX2V4cGVyaW1l bnRhbF9Db2RlQ292ZXJhZ2VfaAorZGlmZiAtLWdpdCBhL2pzL3NyYy9qc2ZyaWVuZGFwaS5jcHAg Yi9qcy9zcmMvanNmcmllbmRhcGkuY3BwCitpbmRleCBhZjdhMDNiZDQuLjVmMjBjNjU3NiAxMDA2 NDQKKy0tLSBhL2pzL3NyYy9qc2ZyaWVuZGFwaS5jcHAKKysrKyBiL2pzL3NyYy9qc2ZyaWVuZGFw aS5jcHAKK0BAIC0yMCw2ICsyMCw3IEBACisgI2luY2x1ZGUgImdjL1B1YmxpY0l0ZXJhdG9ycy5o IgorICNpbmNsdWRlICJnYy9XZWFrTWFwLmgiCisgI2luY2x1ZGUgImpzL0NoYXJhY3RlckVuY29k aW5nLmgiCisrI2luY2x1ZGUgImpzL2V4cGVyaW1lbnRhbC9Db2RlQ292ZXJhZ2UuaCIgIC8vIGpz OjpFbmFibGVDb2RlQ292ZXJhZ2UKKyAjaW5jbHVkZSAianMvUHJpbnRmLmgiCisgI2luY2x1ZGUg ImpzL1Byb3h5LmgiCisgI2luY2x1ZGUgImpzL1dyYXBwZXIuaCIKK0BAIC0xNDY1LDYgKzE0NjYs OCBAQCBKU19GUklFTkRfQVBJIHZvaWQganM6OkVuYWJsZUFjY2Vzc1ZhbGlkYXRpb24oSlNDb250 ZXh0KiBjeCwgYm9vbCBlbmFibGVkKSB7CisgICBjeC0+ZW5hYmxlQWNjZXNzVmFsaWRhdGlvbiA9 IGVuYWJsZWQ7CisgfQorIAorK0pTX0ZSSUVORF9BUEkgdm9pZCBqczo6RW5hYmxlQ29kZUNvdmVy YWdlKCkgeyBqczo6Y292ZXJhZ2U6OkVuYWJsZUxDb3YoKTsgfQorKworIEpTX0ZSSUVORF9BUEkg dm9pZCBqczo6U2V0UmVhbG1WYWxpZEFjY2Vzc1B0cihKU0NvbnRleHQqIGN4LAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBKUzo6SGFuZGxlT2JqZWN0IGds b2JhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9v bCogYWNjZXNzcCkgeworZGlmZiAtLWdpdCBhL2pzL3NyYy9tb3ouYnVpbGQgYi9qcy9zcmMvbW96 LmJ1aWxkCitpbmRleCBkZWIxNWQ4M2EuLmI0ZTllMmIwMiAxMDA3NTUKKy0tLSBhL2pzL3NyYy9t b3ouYnVpbGQKKysrKyBiL2pzL3NyYy9tb3ouYnVpbGQKK0BAIC0yMTAsNiArMjEwLDcgQEAgRVhQ T1JUUy5qcyArPSBbCisgXQorIAorIEVYUE9SVFMuanMuZXhwZXJpbWVudGFsICs9IFsKKysgICAg Jy4uL3B1YmxpYy9leHBlcmltZW50YWwvQ29kZUNvdmVyYWdlLmgnLAorICAgICAnLi4vcHVibGlj L2V4cGVyaW1lbnRhbC9Tb3VyY2VIb29rLmgnLAorIF0KKyAKK2RpZmYgLS1naXQgYS9qcy9zcmMv c2hlbGwvanMuY3BwIGIvanMvc3JjL3NoZWxsL2pzLmNwcAoraW5kZXggNGIzZjU0NWU2Li4yNTJk ZDI0ZjAgMTAwNjQ0CistLS0gYS9qcy9zcmMvc2hlbGwvanMuY3BwCisrKysgYi9qcy9zcmMvc2hl bGwvanMuY3BwCitAQCAtMTA0LDEwICsxMDQsMTEgQEAKKyAjaW5jbHVkZSAianMvQ29tcGlsZU9w dGlvbnMuaCIKKyAjaW5jbHVkZSAianMvQ29udGV4dE9wdGlvbnMuaCIgIC8vIEpTOjpDb250ZXh0 T3B0aW9uc3ssUmVmfQorICNpbmNsdWRlICJqcy9EZWJ1Zy5oIgorLSNpbmNsdWRlICJqcy9FcXVh bGl0eS5oIiAgICAgICAgICAgICAgICAgLy8gSlM6OlNhbWVWYWx1ZQorLSNpbmNsdWRlICJqcy9F cnJvclJlcG9ydC5oIiAgICAgICAgICAgICAgLy8gSlM6OlByaW50RXJyb3IKKy0jaW5jbHVkZSAi anMvRXhjZXB0aW9uLmgiICAgICAgICAgICAgICAgIC8vIEpTOjpTdGVhbFBlbmRpbmdFeGNlcHRp b25TdGFjaworLSNpbmNsdWRlICJqcy9leHBlcmltZW50YWwvU291cmNlSG9vay5oIiAgLy8ganM6 OntTZXQsRm9yZ2V0LH1Tb3VyY2VIb29rCisrI2luY2x1ZGUgImpzL0VxdWFsaXR5LmgiICAgICAg ICAgICAgICAgICAgIC8vIEpTOjpTYW1lVmFsdWUKKysjaW5jbHVkZSAianMvRXJyb3JSZXBvcnQu aCIgICAgICAgICAgICAgICAgLy8gSlM6OlByaW50RXJyb3IKKysjaW5jbHVkZSAianMvRXhjZXB0 aW9uLmgiICAgICAgICAgICAgICAgICAgLy8gSlM6OlN0ZWFsUGVuZGluZ0V4Y2VwdGlvblN0YWNr CisrI2luY2x1ZGUgImpzL2V4cGVyaW1lbnRhbC9Db2RlQ292ZXJhZ2UuaCIgIC8vIGpzOjpFbmFi bGVDb2RlQ292ZXJhZ2UKKysjaW5jbHVkZSAianMvZXhwZXJpbWVudGFsL1NvdXJjZUhvb2suaCIg ICAgLy8ganM6OntTZXQsRm9yZ2V0LH1Tb3VyY2VIb29rCisgI2luY2x1ZGUgImpzL0dDVmVjdG9y LmgiCisgI2luY2x1ZGUgImpzL0luaXRpYWxpemF0aW9uLmgiCisgI2luY2x1ZGUgImpzL0pTT04u aCIKK0BAIC0xMTQxNiw3ICsxMTQxNyw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJn diwgY2hhcioqIGVudnApIHsKKyAKKyAgIGVuYWJsZUNvZGVDb3ZlcmFnZSA9IG9wLmdldEJvb2xP cHRpb24oImNvZGUtY292ZXJhZ2UiKTsKKyAgIGlmIChlbmFibGVDb2RlQ292ZXJhZ2UpIHsKKy0g ICAgY292ZXJhZ2U6OkVuYWJsZUxDb3YoKTsKKysgICAganM6OkVuYWJsZUNvZGVDb3ZlcmFnZSgp OworICAgfQorIAorICNpZmRlZiBKU19XSVRIT1VUX05TUFIKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv bW96anM3OC90ZW1wbGF0ZSBiL3NyY3BrZ3MvbW96anM3OC90ZW1wbGF0ZQpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNWFhZjA3YmQ3ZGMKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL21vempzNzgvdGVtcGxhdGUKQEAgLTAsMCArMSw3MyBAQAorIyBUZW1wbGF0ZSBm aWxlIGZvciAnbW96anM3OCcKK3BrZ25hbWU9bW96anM3OAordmVyc2lvbj03OC4xLjAKK3Jldmlz aW9uPTEKK3dya3NyYz0iZmlyZWZveC0ke3ZlcnNpb259IgorYnVpbGRfd3Jrc3JjPWpzL3NyYwor YnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQoraG9zdG1ha2VkZXBlbmRzPSJwZXJsIHB5dGhvbiBw a2ctY29uZmlnIGF1dG9tYWtlIGF1dG9jb25mMjEzIGF1dG9jb25mLWFyY2hpdmUKKyBjYXJnbyBy dXN0IGxsdm0gY2xhbmcgd2hpY2ggcHl0aG9uMyIKK21ha2VkZXBlbmRzPSJpY3UtZGV2ZWwgbGli ZmZpLWRldmVsIG5zcHItZGV2ZWwgcHl0aG9uLWRldmVsIHJlYWRsaW5lLWRldmVsCisgemxpYi1k ZXZlbCBweXRob24zLWRldmVsIHJ1c3Qtc3RkIgorZGVwZW5kcz0ibnNwcj49NC4xOSIKK3Nob3J0 X2Rlc2M9Ik1vemlsbGEgSmF2YVNjcmlwdCBpbnRlcnByZXRlciBhbmQgbGlicmFyeSAoNzgueCBz ZXJpZXMpIgorbWFpbnRhaW5lcj0icTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4iCitsaWNlbnNl PSJNUEwtMi4wIgoraG9tZXBhZ2U9Imh0dHBzOi8vd3d3Lm1vemlsbGEub3JnL2pzLyIKK2Rpc3Rm aWxlcz0iJHtNT1pJTExBX1NJVEV9L2ZpcmVmb3gvcmVsZWFzZXMvJHt2ZXJzaW9ufWVzci9zb3Vy Y2UvZmlyZWZveC0ke3ZlcnNpb259ZXNyLnNvdXJjZS50YXIueHoiCitjaGVja3N1bT0zNjAwYTM5 NmQ5MzEyYzVlOWY2MzdiMjY3OTI2Y2E0NzcxZDg0YTU2YjI2Yjk2MGNjN2Q3MmU5ODY4M2I2NGEy CitwYXRjaF9hcmdzPSItTnAxIgorCitDWFhGTEFHUys9IiAtV25vLWNsYXNzLW1lbWFjY2VzcyIK K0xERkxBR1MrPSIgLVdsLC16LHN0YWNrLXNpemU9MTA0ODU3NiIKKworaWYgWyAiJFhCUFNfVEFS R0VUX05PX0FUT01JQzgiIF07IHRoZW4KKwltYWtlZGVwZW5kcys9IiBsaWJhdG9taWMtZGV2ZWwi CisJTERGTEFHUys9IiAtbGF0b21pYyIKK2ZpCisKK2RvX2NvbmZpZ3VyZSgpIHsKKwlsb2NhbCBf YXJncworCSMgdXNlIGdjYyBhcyBhc3NlbWJsZXIgdG8gYXZvaWQgZXJyb3JzCisJdW5zZXQgQVMK KworCWlmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhlbgorCQlleHBvcnQgSE9TVF9DQz1jYworCQll eHBvcnQgVEFSR0VUX0NDPSIke0NDfSIKKwkJZXhwb3J0IEhPU1RfQ0ZMQUdTPSItT3MiCisJCWV4 cG9ydCBIT1NUX0NYWEZMQUdTPSItT3MiCisJCV9hcmdzKz0iIC0tdGFyZ2V0PSRYQlBTX0NST1NT X1RSSVBMRVQgLS1lbmFibGUtbGlua2VyPWJmZCIKKwlmaQorCisJYXV0b2NvbmYtMi4xMyBvbGQt Y29uZmlndXJlLmluID4gb2xkLWNvbmZpZ3VyZQorCisJdG91Y2ggJHt3cmtzcmN9L2pzL3NyYy9j b25maWd1cmUKKwl0b3VjaCAke3dya3NyY30vanMvc3JjL29sZC1jb25maWd1cmUKKwlTSEVMTD0v YmluL2Jhc2ggUFlUSE9OPS91c3IvYmluL3B5dGhvbjIgLi9jb25maWd1cmUgLS1wcmVmaXg9L3Vz ciBcCisJCS0tZGlzYWJsZS1qZW1hbGxvYyAtLWRpc2FibGUtb3B0aW1pemUgLS1lbmFibGUtY3R5 cGVzIFwKKwkJLS1lbmFibGUtcmVhZGxpbmUgLS1lbmFibGUtc2hhcmVkLWpzIC0tZW5hYmxlLXN5 c3RlbS1mZmkgXAorCQktLWVuYWJsZS10ZXN0cyAtLXdpdGgtaW50bC1hcGkgLS13aXRoLXN5c3Rl bS1pY3UgLS13aXRoLXN5c3RlbS1uc3ByIFwKKwkJLS1lbmFibGUtaGFyZGVuaW5nIC0tZW5hYmxl LXJlbGVhc2UgLS13aXRoLXN5c3RlbS16bGliIFwKKwkJLS10YXJnZXQ9JHtYQlBTX1RSSVBMRVR9 IC0taG9zdD0ke1hCUFNfVFJJUExFVH0gXAorCQkke19hcmdzfQorfQorCitkb19jaGVjaygpIHsK KwlkaXN0L2Jpbi9qc2FwaS10ZXN0cyAtLWZvcm1hdD1ub25lIC0tZXhjbHVkZS1yYW5kb20gYmFz aWMKK30KKworcG9zdF9pbnN0YWxsKCkgeworCSMgUmVtb3ZlIHVubmVlZGVkIHN0YXRpYyBsaWJy YXJ5CisJcm0gLWYgIiR7REVTVERJUn0iL3Vzci9saWIvKi5hanMKK30KKworbW96anM3OC1kZXZl bF9wYWNrYWdlKCkgeworCWRlcGVuZHM9Im5zcHItZGV2ZWwgJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNp b259XyR7cmV2aXNpb259IgorCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlw a2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2Jpbi9qczc4LWNvbmZpZworCQl2bW92ZSB1c3Iv aW5jbHVkZQorCQl2bW92ZSAidXNyL2xpYi8qLnNvIgorCQl2bW92ZSB1c3IvbGliL3BrZ2NvbmZp ZworCX0KK30KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvbW96anM3OC91cGRhdGUgYi9zcmNwa2dzL21v empzNzgvdXBkYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xOTQ3 ZTE5MjE3ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvbW96anM3OC91cGRhdGUKQEAgLTAs MCArMSBAQAorcGtnbmFtZT0nbW96anMnCgpGcm9tIGMxMjQ5MGYwN2ZhMTRiYjM3NWI2NjA5OWEz MWJkODg0ZjcxMzM1ZGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xl c2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDA2OjQyOjAy ICswMjAwClN1YmplY3Q6IFtQQVRDSCA3MS84M10gZ2pzOiB1cGRhdGUgdG8gMS42NS45MQoKLS0t CiBzcmNwa2dzL2dqcy90ZW1wbGF0ZSB8IDEzICsrKysrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2Vk LCA5IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9n anMvdGVtcGxhdGUgYi9zcmNwa2dzL2dqcy90ZW1wbGF0ZQppbmRleCBlYzQ4YmFkZGYxMS4uZTRl MWZhZmVkYzIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ2pzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mv Z2pzL3RlbXBsYXRlCkBAIC0xLDI3ICsxLDMyIEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdnanMn CiBwa2duYW1lPWdqcwotdmVyc2lvbj0xLjY1LjIKK3ZlcnNpb249MS42NS45MQogcmV2aXNpb249 MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIHFlbXUiCiBjb25maWd1cmVf YXJncz0iLURza2lwX2RidXNfdGVzdHM9dHJ1ZSAtRHNraXBfZ3RrX3Rlc3RzPXRydWUKICAtRHBy b2ZpbGVyPWRpc2FibGVkIC1EaW5zdGFsbGVkX3Rlc3RzPWZhbHNlIiAjIERpc2FibGUgdGVzdHMg YmVjYXVzZSB0aGV5IG5lZWQgZGJ1cywgWCBhbmQgR1RLLgogaG9zdG1ha2VkZXBlbmRzPSJnbGli LWRldmVsIHBrZy1jb25maWciCi1tYWtlZGVwZW5kcz0iZGJ1cy1nbGliLWRldmVsIG1vempzNjgt ZGV2ZWwgcmVhZGxpbmUtZGV2ZWwgc3lzcHJvZi1kZXZlbCIKK21ha2VkZXBlbmRzPSJkYnVzLWds aWItZGV2ZWwgbW96anM3OC1kZXZlbCByZWFkbGluZS1kZXZlbCBzeXNwcm9mLWRldmVsIgogc2hv cnRfZGVzYz0iTW96aWxsYS1iYXNlZCBqYXZhc2NyaXB0IGJpbmRpbmdzIGZvciB0aGUgR05PTUUg cGxhdGZvcm0iCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+ IgogbGljZW5zZT0iTUlULCBMR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dp a2kuZ25vbWUub3JnL2FjdGlvbi9zaG93L1Byb2plY3RzL0dqcyIKIGNoYW5nZWxvZz0iaHR0cHM6 Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dqcy9ibG9iL2dub21lLTMtMzAvTkVXUyIKIGRpc3Rm aWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0k e3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWE2NmVkYWQ4YTVmMTAwMjdmOWIxODJkODhhZjg0 YjgxZjEzZTVhZDU4NDAzMTljZmE3NDdkNjZlNzdlMDIxNGYKK2NoZWNrc3VtPTYzZjM1ZjZhNTdk MDEzZDQyZDRlNDRiYTVlZmE4YTM2ODJkOGZlZTZlYWQ2NWNlZGE4MmNhNTdmZDYyYTY1MDMKKwor IyBBIGZldyB0ZXN0cyBteXN0ZXJpb3VzbHkgZmFpbCBmb3Igbm93Citkb19jaGVjaygpIHsKKwk6 Cit9CiAKIHBvc3RfaW5zdGFsbCgpIHsKIAl2bGljZW5zZSBDT1BZSU5HCiB9CiAKIGdqcy1kZXZl bF9wYWNrYWdlKCkgewotCWRlcGVuZHM9ImxpYmdpcmVwb3NpdG9yeS1kZXZlbCBtb3pqczY4LWRl dmVsICR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKKwlkZXBlbmRzPSJsaWJn aXJlcG9zaXRvcnktZGV2ZWwgbW96anM3OC1kZXZlbCAke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1f JHtyZXZpc2lvbn0iCiAJc2hvcnRfZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgogCXBrZ19p bnN0YWxsKCkgewogCQl2bW92ZSB1c3IvaW5jbHVkZQoKRnJvbSA2NDU5MmRlMmZjMDY3OGYxNDI1 NDdjODBjOWQzNmJhNDkwNWE2MGQxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5p ZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAw NToyMzozOCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNzIvODNdIGdub21lLWJ1aWxkZXI6IHVwZGF0 ZSB0byAzLjM3LjkwCgpbY2kgc2tpcF0KLS0tCiAuLi4vZ25vbWUtYnVpbGRlci9wYXRjaGVzL2xp YmdpdDItMS4wLjAucGF0Y2ggfCAgMjIgLS0KIHNyY3BrZ3MvZ25vbWUtYnVpbGRlci9wYXRjaGVz L21lc29uMDUyLnBhdGNoICB8IDMzNCAtLS0tLS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3MvZ25vbWUt YnVpbGRlci90ZW1wbGF0ZSAgICAgICAgICAgICAgICB8ICAxNSArLQogMyBmaWxlcyBjaGFuZ2Vk LCAxMCBpbnNlcnRpb25zKCspLCAzNjEgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQg c3JjcGtncy9nbm9tZS1idWlsZGVyL3BhdGNoZXMvbGliZ2l0Mi0xLjAuMC5wYXRjaAogZGVsZXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvZ25vbWUtYnVpbGRlci9wYXRjaGVzL21lc29uMDUyLnBhdGNo CgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9nbm9tZS1idWlsZGVyL3BhdGNoZXMvbGliZ2l0Mi0xLjAu MC5wYXRjaCBiL3NyY3BrZ3MvZ25vbWUtYnVpbGRlci9wYXRjaGVzL2xpYmdpdDItMS4wLjAucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdiOWI0YTJiZjFhLi4wMDAwMDAwMDAw MAotLS0gYS9zcmNwa2dzL2dub21lLWJ1aWxkZXIvcGF0Y2hlcy9saWJnaXQyLTEuMC4wLnBhdGNo CisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotY29tbWl0IDQ0MTM2YTJlNWM1MjYyM2Iw ZTYyYzM4ODQ2ZjUxMWYzMDc2MTVjZTIKLUF1dGhvcjogcTY2IDxkYW5pZWxAb2N0YWZvcmdlLm9y Zz4KLURhdGU6ICAgU3VuIE1heSAzIDE5OjUyOjA5IDIwMjAgKzAyMDAKLQotICAgIGZpeCBidWls ZCB3aXRoIGxpYmdpdDItMS4wLjAKLQotZGlmZiAtLWdpdCBhL3NyYy9wbHVnaW5zL2dpdC9kYWVt b24vaXBjLWdpdC1yZXBvc2l0b3J5LWltcGwuYyBiL3NyYy9wbHVnaW5zL2dpdC9kYWVtb24vaXBj LWdpdC1yZXBvc2l0b3J5LWltcGwuYwotaW5kZXggN2YwMTA0Mi4uMmNjYzRkZiAxMDA2NDQKLS0t LSBhL3NyYy9wbHVnaW5zL2dpdC9kYWVtb24vaXBjLWdpdC1yZXBvc2l0b3J5LWltcGwuYwotKysr IGIvc3JjL3BsdWdpbnMvZ2l0L2RhZW1vbi9pcGMtZ2l0LXJlcG9zaXRvcnktaW1wbC5jCi1AQCAt MzMsMTEgKzMzLDcgQEAKLSAjaW5jbHVkZSAiaXBjLWdpdC10eXBlcy5oIgotICNpbmNsdWRlICJp cGMtZ2l0LXV0aWwuaCIKLSAKLS0jaWYgTElCR0lUMl9TT1ZFUlNJT04gPj0gMjgKLSBHX0RFRklO RV9BVVRPX0NMRUFOVVBfQ0xFQVJfRlVOQyAoZ2l0X2J1ZiwgZ2l0X2J1Zl9kaXNwb3NlKQotLSNl bHNlCi0tR19ERUZJTkVfQVVUT19DTEVBTlVQX0NMRUFSX0ZVTkMgKGdpdF9idWYsIGdpdF9idWZf ZnJlZSkKLS0jZW5kaWYKLSAKLSB0eXBlZGVmIGVudW0KLSB7CmRpZmYgLS1naXQgYS9zcmNwa2dz L2dub21lLWJ1aWxkZXIvcGF0Y2hlcy9tZXNvbjA1Mi5wYXRjaCBiL3NyY3BrZ3MvZ25vbWUtYnVp bGRlci9wYXRjaGVzL21lc29uMDUyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCA2OGMyOGU4MmMxZS4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9nbm9tZS1idWlsZGVyL3Bh dGNoZXMvbWVzb24wNTIucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMzQgKzAsMCBAQAotRnJv bSBjOGI4NjJiNDkxY2ZiYmI0Zjc5YjI0ZDdjZDkwZTRmYjFmMzdjYjlmIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQotRnJvbTogRGllZ28gRXNjYWxhbnRlIFVycmVsbyA8ZGllZ29lQGdub21lLm9y Zz4KLURhdGU6IEZyaSwgMjUgT2N0IDIwMTkgMDQ6NDk6MTUgLTA1MDAKLVN1YmplY3Q6IFtQQVRD SF0gV0lQOiBidWlsZDogRml4IGxpbmtfd2hvbGUgdXNhZ2UgZm9yIG1lc29uIDAuNTIuMAotCi1N ZXNvbiAwLjUyLjAgY2hhbmdlZCBob3cgbGlua193aG9sZSBiZWhhdmVzIGFuZCBpbiBkb2luZyBz byBicm9rZSBvdXIKLXVzYWdlIG9mIGxpbmtfd2hvbGUgaW50ZXJuYWxseS4KLQotQSBxdWljayBn bGFuY2Ugb3ZlciBtZXNvbmJ1aWxkL2JhY2tlbmQvbmluamFiYWNrZW5kLnB5IHNlZW1zIHRvIGNv bmZpcm0KLUNocmlzdGlhbidzIHN1c3BpY2lvbiB0aGF0IGxpbmtfd2l0aCBpcyB3aGF0IHdlIHdh bnQgZm9yIGludGVybmFsIHVzZSwKLWFuZCBsaW5rX3dob2xlIGZvciB0aGUgZmluYWwgYmluYXJ5 LgotCi1Zb3UgY2FuIHNlZSBzb21lIG1vcmUgcmVmZXJlbmNlcyB0byB0aGlzIGFuZCBzaW1pbGFy IGlzc3VlcyBpbiB0aGUKLWZvbGxvd2luZyBqaGJ1aWxkIGNvbW1pdDoKLWh0dHBzOi8vZ2l0bGFi Lmdub21lLm9yZy9HTk9NRS9qaGJ1aWxkL2NvbW1pdC9kYmU2NzkwNDVmZjU5ODI1NzdmMjJlN2Fm OGRjOGZkZmJkMWM2MzExCi0KLUZpeGVzOiBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUv Z25vbWUtYnVpbGRlci9pc3N1ZXMvMTA1NwotLS0tCi0gc3JjL2xpYmlkZS9jb2RlL21lc29uLmJ1 aWxkICAgICAgIHwgIDIgKy0KLSBzcmMvbGliaWRlL2NvcmUvbWVzb24uYnVpbGQgICAgICAgfCAg MiArLQotIHNyYy9saWJpZGUvZGVidWdnZXIvbWVzb24uYnVpbGQgICB8ICAyICstCi0gc3JjL2xp YmlkZS9lZGl0b3IvbWVzb24uYnVpbGQgICAgIHwgIDIgKy0KLSBzcmMvbGliaWRlL2ZvdW5kcnkv bWVzb24uYnVpbGQgICAgfCAgMiArLQotIHNyYy9saWJpZGUvZ3JlZXRlci9tZXNvbi5idWlsZCAg ICB8ICAyICstCi0gc3JjL2xpYmlkZS9ndWkvbWVzb24uYnVpbGQgICAgICAgIHwgIDIgKy0KLSBz cmMvbGliaWRlL2lvL21lc29uLmJ1aWxkICAgICAgICAgfCAgMiArLQotIHNyYy9saWJpZGUvbHNw L21lc29uLmJ1aWxkICAgICAgICB8ICAyICstCi0gc3JjL2xpYmlkZS9wbHVnaW5zL21lc29uLmJ1 aWxkICAgIHwgIDIgKy0KLSBzcmMvbGliaWRlL3Byb2plY3RzL21lc29uLmJ1aWxkICAgfCAgMiAr LQotIHNyYy9saWJpZGUvc2VhcmNoL21lc29uLmJ1aWxkICAgICB8ICAyICstCi0gc3JjL2xpYmlk ZS9zb3VyY2V2aWV3L21lc29uLmJ1aWxkIHwgIDIgKy0KLSBzcmMvbGliaWRlL3Rlcm1pbmFsL21l c29uLmJ1aWxkICAgfCAgMiArLQotIHNyYy9saWJpZGUvdGhlbWVzL21lc29uLmJ1aWxkICAgICB8 ICAyICstCi0gc3JjL2xpYmlkZS90aHJlYWRpbmcvbWVzb24uYnVpbGQgIHwgIDIgKy0KLSBzcmMv bGliaWRlL3RyZWUvbWVzb24uYnVpbGQgICAgICAgfCAgMiArLQotIHNyYy9saWJpZGUvdmNzL21l c29uLmJ1aWxkICAgICAgICB8ICAyICstCi0gc3JjL2xpYmlkZS93ZWJraXQvbWVzb24uYnVpbGQg ICAgIHwgIDIgKy0KLSBzcmMvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgICAgfCAyNiArKysr KysrKysrKysrKysrKysrKysrKysrLQotIDIwIGZpbGVzIGNoYW5nZWQsIDQ0IGluc2VydGlvbnMo KyksIDIwIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9jb2RlL21lc29u LmJ1aWxkIGIvc3JjL2xpYmlkZS9jb2RlL21lc29uLmJ1aWxkCi1pbmRleCBkZGFjZGMxNjIuLjFh NGZjNWQyNiAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvY29kZS9tZXNvbi5idWlsZAotKysrIGIv c3JjL2xpYmlkZS9jb2RlL21lc29uLmJ1aWxkCi1AQCAtMTc1LDcgKzE3NSw3IEBAIGxpYmlkZV9j b2RlID0gc3RhdGljX2xpYnJhcnkoJ2lkZS1jb2RlLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sCi0g bGliaWRlX2NvZGVfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAgICAgICAgICAgICAgc291 cmNlczogbGliaWRlX2NvZGVfcHJpdmF0ZV9oZWFkZXJzICsgbGliaWRlX2NvZGVfZ2VuZXJhdGVk X2hlYWRlcnMsCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfY29kZV9kZXBzLAotLSAg ICAgICAgICAgbGlua193aG9sZTogbGliaWRlX2NvZGUsCi0rICAgICAgICAgICAgbGlua193aXRo OiBsaWJpZGVfY29kZSwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3Jp ZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9jb3JlL21lc29uLmJ1aWxk IGIvc3JjL2xpYmlkZS9jb3JlL21lc29uLmJ1aWxkCi1pbmRleCAxZmE4MmZhZDkuLmJiNzVjYmYy NiAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvY29yZS9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xp YmlkZS9jb3JlL21lc29uLmJ1aWxkCi1AQCAtMTE3LDcgKzExNyw3IEBAIGxpYmlkZV9jb3JlID0g c3RhdGljX2xpYnJhcnkoJ2lkZS1jb3JlLScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sIGxpYmlkZV9j b3JlX3NvdXJjCi0gbGliaWRlX2NvcmVfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAgICAg ICAgICAgICAgc291cmNlczogbGliaWRlX2NvcmVfcHJpdmF0ZV9oZWFkZXJzICsgbGliaWRlX2Nv cmVfZ2VuZXJhdGVkX2hlYWRlcnMsCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfY29y ZV9kZXBzLAotLSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRlX2NvcmUsCi0rICAgICAgICAg ICAgbGlua193aXRoOiBsaWJpZGVfY29yZSwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1 ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9kZWJ1 Z2dlci9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvZGVidWdnZXIvbWVzb24uYnVpbGQKLWluZGV4 IGRmZmNhMjBjYS4uYjVlNzJkNWMwIDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS9kZWJ1Z2dlci9t ZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS9kZWJ1Z2dlci9tZXNvbi5idWlsZAotQEAgLTg0 LDcgKzg0LDcgQEAgbGliaWRlX2RlYnVnZ2VyID0gc3RhdGljX2xpYnJhcnkoJ2lkZS1kZWJ1Z2dl ci0nICsgbGliaWRlX2FwaV92ZXJzaW9uLAotIGxpYmlkZV9kZWJ1Z2dlcl9kZXAgPSBkZWNsYXJl X2RlcGVuZGVuY3koCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfZGVidWdnZXJfcHJp dmF0ZV9oZWFkZXJzICsgbGliaWRlX2RlYnVnZ2VyX2dlbmVyYXRlZF9oZWFkZXJzLAotICAgICAg ICAgIGRlcGVuZGVuY2llczogbGliaWRlX2RlYnVnZ2VyX2RlcHMsCi0tICAgICAgICAgICBsaW5r X3dob2xlOiBsaWJpZGVfZGVidWdnZXIsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVf ZGVidWdnZXIsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcu JyksCi0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvZWRpdG9yL21lc29uLmJ1aWxkIGIv c3JjL2xpYmlkZS9lZGl0b3IvbWVzb24uYnVpbGQKLWluZGV4IDI4Mzg0MjViNy4uODA4ZWQ3ODRm IDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS9lZGl0b3IvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9s aWJpZGUvZWRpdG9yL21lc29uLmJ1aWxkCi1AQCAtMTA3LDcgKzEwNyw3IEBAIGxpYmlkZV9lZGl0 b3IgPSBzdGF0aWNfbGlicmFyeSgnaWRlLWVkaXRvci0nICsgbGliaWRlX2FwaV92ZXJzaW9uLCBs aWJpZGVfZWRpdG9yCi0gCi0gbGliaWRlX2VkaXRvcl9kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3ko Ci0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfZWRpdG9yX2RlcHMsCi0tICAgICAgICAg ICBsaW5rX3dob2xlOiBsaWJpZGVfZWRpdG9yLAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGli aWRlX2VkaXRvciwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMo Jy4nKSwKLSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV9lZGl0b3JfZ2VuZXJhdGVkX2hl YWRlcnMsCi0gKQotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvZm91bmRyeS9tZXNvbi5idWlsZCBi L3NyYy9saWJpZGUvZm91bmRyeS9tZXNvbi5idWlsZAotaW5kZXggMjI2Mzk3YzE1Li5kNDg3OGFh MTEgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL2ZvdW5kcnkvbWVzb24uYnVpbGQKLSsrKyBiL3Ny Yy9saWJpZGUvZm91bmRyeS9tZXNvbi5idWlsZAotQEAgLTE3OCw3ICsxNzgsNyBAQCBsaWJpZGVf Zm91bmRyeSA9IHN0YXRpY19saWJyYXJ5KCdpZGUtZm91bmRyeS0nICsgbGliaWRlX2FwaV92ZXJz aW9uLAotIAotIGxpYmlkZV9mb3VuZHJ5X2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5jeSgKLSAgICAg ICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV9mb3VuZHJ5X2RlcHMsCi0tICAgICAgICAgICBsaW5r X3dob2xlOiBsaWJpZGVfZm91bmRyeSwKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV9m b3VuZHJ5LAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicp LAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX2ZvdW5kcnlfZ2VuZXJhdGVkX2hlYWRl cnMsCi0gKQotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvZ3JlZXRlci9tZXNvbi5idWlsZCBiL3Ny Yy9saWJpZGUvZ3JlZXRlci9tZXNvbi5idWlsZAotaW5kZXggMzk2OGNhNDFlLi4xMjFkNDk4ZDAg MTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL2dyZWV0ZXIvbWVzb24uYnVpbGQKLSsrKyBiL3NyYy9s aWJpZGUvZ3JlZXRlci9tZXNvbi5idWlsZAotQEAgLTgzLDcgKzgzLDcgQEAgbGliaWRlX2dyZWV0 ZXIgPSBzdGF0aWNfbGlicmFyeSgnaWRlLWdyZWV0ZXItJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwK LSBsaWJpZGVfZ3JlZXRlcl9kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAgICAg ICBzb3VyY2VzOiBsaWJpZGVfZ3JlZXRlcl9wcml2YXRlX2hlYWRlcnMgKyBsaWJpZGVfZ3JlZXRl cl9nZW5lcmF0ZWRfaGVhZGVycywKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV9ncmVl dGVyX2RlcHMsCi0tICAgICAgICAgICBsaW5rX3dob2xlOiBsaWJpZGVfZ3JlZXRlciwKLSsgICAg ICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV9ncmVldGVyLAotICAgaW5jbHVkZV9kaXJlY3Rvcmll czogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGli aWRlL2d1aS9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvZ3VpL21lc29uLmJ1aWxkCi1pbmRleCA5 ZjQ2OWQyZmEuLjk0MzExMjgyZiAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvZ3VpL21lc29uLmJ1 aWxkCi0rKysgYi9zcmMvbGliaWRlL2d1aS9tZXNvbi5idWlsZAotQEAgLTIwNCw3ICsyMDQsNyBA QCBsaWJpZGVfZ3VpID0gc3RhdGljX2xpYnJhcnkoJ2lkZS1ndWktJyArIGxpYmlkZV9hcGlfdmVy c2lvbiwgbGliaWRlX2d1aV9zb3VyY2VzLAotIGxpYmlkZV9ndWlfZGVwID0gZGVjbGFyZV9kZXBl bmRlbmN5KAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX2d1aV9wcml2YXRlX2hlYWRl cnMgKyBsaWJpZGVfZ3VpX2dlbmVyYXRlZF9oZWFkZXJzLAotICAgICAgICAgIGRlcGVuZGVuY2ll czogbGliaWRlX2d1aV9kZXBzLAotLSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRlX2d1aSwK LSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxpYmlkZV9ndWksCi0gICBpbmNsdWRlX2RpcmVjdG9y aWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuJyksCi0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9s aWJpZGUvaW8vbWVzb24uYnVpbGQgYi9zcmMvbGliaWRlL2lvL21lc29uLmJ1aWxkCi1pbmRleCBi NWI2ZjRjNjguLmY0OGIzYmQ4ZCAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvaW8vbWVzb24uYnVp bGQKLSsrKyBiL3NyYy9saWJpZGUvaW8vbWVzb24uYnVpbGQKLUBAIC02Myw3ICs2Myw3IEBAIGxp YmlkZV9pbyA9IHN0YXRpY19saWJyYXJ5KCdpZGUtaW8tJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwg bGliaWRlX2lvX3NvdXJjZXMsCi0gCi0gbGliaWRlX2lvX2RlcCA9IGRlY2xhcmVfZGVwZW5kZW5j eSgKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IFsgbGliZ2lvX2RlcCwgbGliaWRlX2NvcmVfZGVw LCBsaWJpZGVfdGhyZWFkaW5nX2RlcCBdLAotLSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRl X2lvLAotKyAgICAgICAgICAgIGxpbmtfd2l0aDogbGliaWRlX2lvLAotICAgaW5jbHVkZV9kaXJl Y3RvcmllczogaW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9z cmMvbGliaWRlL2xzcC9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvbHNwL21lc29uLmJ1aWxkCi1p bmRleCAyM2FiYTc0ZmEuLmM4MTQwY2EwMyAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvbHNwL21l c29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRlL2xzcC9tZXNvbi5idWlsZAotQEAgLTg0LDcgKzg0 LDcgQEAgbGliaWRlX2xzcCA9IHN0YXRpY19saWJyYXJ5KCdpZGUtbHNwLScgKyBsaWJpZGVfYXBp X3ZlcnNpb24sIGxpYmlkZV9sc3Bfc291cmNlcywKLSBsaWJpZGVfbHNwX2RlcCA9IGRlY2xhcmVf ZGVwZW5kZW5jeSgKLSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV9sc3BfcHJpdmF0ZV9o ZWFkZXJzLAotICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX2xzcF9kZXBzLAotLSAgICAg ICAgICAgbGlua193aG9sZTogbGliaWRlX2xzcCwKLSsgICAgICAgICAgICBsaW5rX3dpdGg6IGxp YmlkZV9sc3AsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcu JyksCi0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJpZGUvcGx1Z2lucy9tZXNvbi5idWlsZCBi L3NyYy9saWJpZGUvcGx1Z2lucy9tZXNvbi5idWlsZAotaW5kZXggYTMzYzUyOGM5Li5mZmY1OTlk YjMgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL3BsdWdpbnMvbWVzb24uYnVpbGQKLSsrKyBiL3Ny Yy9saWJpZGUvcGx1Z2lucy9tZXNvbi5idWlsZAotQEAgLTUxLDcgKzUxLDcgQEAgbGliaWRlX3Bs dWdpbnMgPSBzdGF0aWNfbGlicmFyeSgnaWRlLXBsdWdpbnMtJyArIGxpYmlkZV9hcGlfdmVyc2lv biwKLSBsaWJpZGVfcGx1Z2luc19kZXAgPSBkZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAg ICAgICBzb3VyY2VzOiBsaWJpZGVfcGx1Z2luc19wcml2YXRlX2hlYWRlcnMsCi0gICAgICAgICAg ZGVwZW5kZW5jaWVzOiBsaWJpZGVfcGx1Z2luc19kZXBzLAotLSAgICAgICAgICAgbGlua193aG9s ZTogbGliaWRlX3BsdWdpbnMsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJpZGVfcGx1Z2lu cywKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMoJy4nKSwKLSAp Ci0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS9wcm9qZWN0cy9tZXNvbi5idWlsZCBiL3NyYy9s aWJpZGUvcHJvamVjdHMvbWVzb24uYnVpbGQKLWluZGV4IDQ2M2ZmMDZiYy4uM2NjOTcyNWM2IDEw MDY0NAotLS0tIGEvc3JjL2xpYmlkZS9wcm9qZWN0cy9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xp YmlkZS9wcm9qZWN0cy9tZXNvbi5idWlsZAotQEAgLTc5LDcgKzc5LDcgQEAgbGliaWRlX3Byb2pl Y3RzID0gc3RhdGljX2xpYnJhcnkoJ2lkZS1wcm9qZWN0cy0nICsgbGliaWRlX2FwaV92ZXJzaW9u LCBsaWJpZGVfcHIKLSBsaWJpZGVfcHJvamVjdHNfZGVwID0gZGVjbGFyZV9kZXBlbmRlbmN5KAot ICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX3Byb2plY3RzX3ByaXZhdGVfaGVhZGVycywK LSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV9wcm9qZWN0c19kZXBzLAotLSAgICAgICAg ICAgbGlua193aG9sZTogbGliaWRlX3Byb2plY3RzLAotKyAgICAgICAgICAgIGxpbmtfd2l0aDog bGliaWRlX3Byb2plY3RzLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3Rv cmllcygnLicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL3NlYXJjaC9tZXNvbi5i dWlsZCBiL3NyYy9saWJpZGUvc2VhcmNoL21lc29uLmJ1aWxkCi1pbmRleCBlNWIzYjQzYWIuLmNm NzNhYTkxZCAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvc2VhcmNoL21lc29uLmJ1aWxkCi0rKysg Yi9zcmMvbGliaWRlL3NlYXJjaC9tZXNvbi5idWlsZAotQEAgLTUxLDcgKzUxLDcgQEAgbGliaWRl X3NlYXJjaCA9IHN0YXRpY19saWJyYXJ5KCdpZGUtc2VhcmNoLScgKyBsaWJpZGVfYXBpX3ZlcnNp b24sIGxpYmlkZV9zZWFyY2gKLSAKLSBsaWJpZGVfc2VhcmNoX2RlcCA9IGRlY2xhcmVfZGVwZW5k ZW5jeSgKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV9zZWFyY2hfZGVwcywKLS0gICAg ICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV9zZWFyY2gsCi0rICAgICAgICAgICAgbGlua193aXRo OiBsaWJpZGVfc2VhcmNoLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3Rv cmllcygnLicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL3NvdXJjZXZpZXcvbWVz b24uYnVpbGQgYi9zcmMvbGliaWRlL3NvdXJjZXZpZXcvbWVzb24uYnVpbGQKLWluZGV4IGM0YmEx MmQxZi4uOTk2NDEyOThiIDEwMDY0NAotLS0tIGEvc3JjL2xpYmlkZS9zb3VyY2V2aWV3L21lc29u LmJ1aWxkCi0rKysgYi9zcmMvbGliaWRlL3NvdXJjZXZpZXcvbWVzb24uYnVpbGQKLUBAIC0xNTgs NyArMTU4LDcgQEAgbGliaWRlX3NvdXJjZXZpZXcgPSBzdGF0aWNfbGlicmFyeSgnaWRlLXNvdXJj ZXZpZXctJyArIGxpYmlkZV9hcGlfdmVyc2lvbiwKLSBsaWJpZGVfc291cmNldmlld19kZXAgPSBk ZWNsYXJlX2RlcGVuZGVuY3koCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfc291cmNl dmlld19wcml2YXRlX2hlYWRlcnMgKyBsaWJpZGVfc291cmNldmlld19nZW5lcmF0ZWRfaGVhZGVy cywKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV9zb3VyY2V2aWV3X2RlcHMsCi0tICAg ICAgICAgICBsaW5rX3dob2xlOiBsaWJpZGVfc291cmNldmlldywKLSsgICAgICAgICAgICBsaW5r X3dpdGg6IGxpYmlkZV9zb3VyY2V2aWV3LAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVk ZV9kaXJlY3RvcmllcygnLicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL3Rlcm1p bmFsL21lc29uLmJ1aWxkIGIvc3JjL2xpYmlkZS90ZXJtaW5hbC9tZXNvbi5idWlsZAotaW5kZXgg MWQ3YzlmNzI3Li42YWZmY2FlMTQgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL3Rlcm1pbmFsL21l c29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRlL3Rlcm1pbmFsL21lc29uLmJ1aWxkCi1AQCAtOTMs NyArOTMsNyBAQCBsaWJpZGVfdGVybWluYWwgPSBzdGF0aWNfbGlicmFyeSgnaWRlLXRlcm1pbmFs LScgKyBsaWJpZGVfYXBpX3ZlcnNpb24sCi0gbGliaWRlX3Rlcm1pbmFsX2RlcCA9IGRlY2xhcmVf ZGVwZW5kZW5jeSgKLSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV90ZXJtaW5hbF9nZW5l cmF0ZWRfaGVhZGVycywKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV90ZXJtaW5hbF9k ZXBzLAotLSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRlX3Rlcm1pbmFsLAotKyAgICAgICAg ICAgIGxpbmtfd2l0aDogbGliaWRlX3Rlcm1pbmFsLAotICAgaW5jbHVkZV9kaXJlY3Rvcmllczog aW5jbHVkZV9kaXJlY3RvcmllcygnLicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRl L3RoZW1lcy9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvdGhlbWVzL21lc29uLmJ1aWxkCi1pbmRl eCA5ZDZjOGUyNDcuLmQ4ODNhNGI4NiAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvdGhlbWVzL21l c29uLmJ1aWxkCi0rKysgYi9zcmMvbGliaWRlL3RoZW1lcy9tZXNvbi5idWlsZAotQEAgLTQ2LDcg KzQ2LDcgQEAgbGliaWRlX3RoZW1lcyA9IHN0YXRpY19saWJyYXJ5KCdpZGUtdGhlbWVzLScgKyBs aWJpZGVfYXBpX3ZlcnNpb24sCi0gbGliaWRlX3RoZW1lc19kZXAgPSBkZWNsYXJlX2RlcGVuZGVu Y3koCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfdGhlbWVzX3Jlc291cmNlc1sxXSwK LSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV90aGVtZXNfZGVwcywKLS0gICAgICAgICAg IGxpbmtfd2hvbGU6IGxpYmlkZV90aGVtZXMsCi0rICAgICAgICAgICAgbGlua193aXRoOiBsaWJp ZGVfdGhlbWVzLAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJlY3Rvcmllcygn LicpLAotICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL3RocmVhZGluZy9tZXNvbi5idWls ZCBiL3NyYy9saWJpZGUvdGhyZWFkaW5nL21lc29uLmJ1aWxkCi1pbmRleCBkMzhkZGZiNjQuLmQ2 MjhiZTJmZiAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvdGhyZWFkaW5nL21lc29uLmJ1aWxkCi0r KysgYi9zcmMvbGliaWRlL3RocmVhZGluZy9tZXNvbi5idWlsZAotQEAgLTY2LDcgKzY2LDcgQEAg bGliaWRlX3RocmVhZGluZyA9IHN0YXRpY19saWJyYXJ5KCdpZGUtdGhyZWFkaW5nLScgKyBsaWJp ZGVfYXBpX3ZlcnNpb24sIGxpYmlkZV8KLSBsaWJpZGVfdGhyZWFkaW5nX2RlcCA9IGRlY2xhcmVf ZGVwZW5kZW5jeSgKLSAgICAgICAgICAgICAgIHNvdXJjZXM6IGxpYmlkZV90aHJlYWRpbmdfcHJp dmF0ZV9oZWFkZXJzLAotICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX3RocmVhZGluZ19k ZXBzLAotLSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRlX3RocmVhZGluZywKLSsgICAgICAg ICAgICBsaW5rX3dpdGg6IGxpYmlkZV90aHJlYWRpbmcsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVz OiBpbmNsdWRlX2RpcmVjdG9yaWVzKCcuJyksCi0gKQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWJp ZGUvdHJlZS9tZXNvbi5idWlsZCBiL3NyYy9saWJpZGUvdHJlZS9tZXNvbi5idWlsZAotaW5kZXgg N2I5OTIyODI4Li41YTU5MTEwNmMgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliaWRlL3RyZWUvbWVzb24u YnVpbGQKLSsrKyBiL3NyYy9saWJpZGUvdHJlZS9tZXNvbi5idWlsZAotQEAgLTYxLDcgKzYxLDcg QEAgbGliaWRlX3RyZWUgPSBzdGF0aWNfbGlicmFyeSgnaWRlLXRyZWUtJyArIGxpYmlkZV9hcGlf dmVyc2lvbiwgbGliaWRlX3RyZWVfc291cmMKLSBsaWJpZGVfdHJlZV9kZXAgPSBkZWNsYXJlX2Rl cGVuZGVuY3koCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfdHJlZV9wcml2YXRlX2hl YWRlcnMsCi0gICAgICAgICAgZGVwZW5kZW5jaWVzOiBsaWJpZGVfdHJlZV9kZXBzLAotLSAgICAg ICAgICAgbGlua193aG9sZTogbGliaWRlX3RyZWUsCi0rICAgICAgICAgICAgbGlua193aXRoOiBs aWJpZGVfdHJlZSwKLSAgIGluY2x1ZGVfZGlyZWN0b3JpZXM6IGluY2x1ZGVfZGlyZWN0b3JpZXMo Jy4nKSwKLSApCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYmlkZS92Y3MvbWVzb24uYnVpbGQgYi9z cmMvbGliaWRlL3Zjcy9tZXNvbi5idWlsZAotaW5kZXggNmIwZTE1N2M0Li5jNzYyYWZiNjQgMTAw NjQ0Ci0tLS0gYS9zcmMvbGliaWRlL3Zjcy9tZXNvbi5idWlsZAotKysrIGIvc3JjL2xpYmlkZS92 Y3MvbWVzb24uYnVpbGQKLUBAIC04NCw3ICs4NCw3IEBAIGxpYmlkZV92Y3MgPSBzdGF0aWNfbGli cmFyeSgnaWRlLXZjcy0nICsgbGliaWRlX2FwaV92ZXJzaW9uLAotIAotIGxpYmlkZV92Y3NfZGVw ID0gZGVjbGFyZV9kZXBlbmRlbmN5KAotICAgICAgICAgIGRlcGVuZGVuY2llczogbGliaWRlX3Zj c19kZXBzLAotLSAgICAgICAgICAgbGlua193aG9sZTogbGliaWRlX3ZjcywKLSsgICAgICAgICAg ICBsaW5rX3dpdGg6IGxpYmlkZV92Y3MsCi0gICBpbmNsdWRlX2RpcmVjdG9yaWVzOiBpbmNsdWRl X2RpcmVjdG9yaWVzKCcuJyksCi0gICAgICAgICAgICAgICBzb3VyY2VzOiBsaWJpZGVfdmNzX2dl bmVyYXRlZF9oZWFkZXJzLAotICkKLWRpZmYgLS1naXQgYS9zcmMvbGliaWRlL3dlYmtpdC9tZXNv bi5idWlsZCBiL3NyYy9saWJpZGUvd2Via2l0L21lc29uLmJ1aWxkCi1pbmRleCBlMTc2N2FlNDYu LmZjZTQ3N2IzNiAxMDA2NDQKLS0tLSBhL3NyYy9saWJpZGUvd2Via2l0L21lc29uLmJ1aWxkCi0r KysgYi9zcmMvbGliaWRlL3dlYmtpdC9tZXNvbi5idWlsZAotQEAgLTM5LDcgKzM5LDcgQEAgbGli aWRlX3dlYmtpdCA9IHN0YXRpY19saWJyYXJ5KCdpZGUtd2Via2l0LScgKyBsaWJpZGVfYXBpX3Zl cnNpb24sIGxpYmlkZV93ZWJraXQKLSAKLSBsaWJpZGVfd2Via2l0X2RlcCA9IGRlY2xhcmVfZGVw ZW5kZW5jeSgKLSAgICAgICAgICBkZXBlbmRlbmNpZXM6IGxpYmlkZV93ZWJraXRfZGVwcywKLS0g ICAgICAgICAgIGxpbmtfd2hvbGU6IGxpYmlkZV93ZWJraXQsCi0rICAgICAgICAgICAgbGlua193 aXRoOiBsaWJpZGVfd2Via2l0LAotICAgaW5jbHVkZV9kaXJlY3RvcmllczogaW5jbHVkZV9kaXJl Y3RvcmllcygnLicpLAotICAgICAgICAgICAgICAgc291cmNlczogbGliaWRlX3dlYmtpdF9nZW5l cmF0ZWRfaGVhZGVycywKLSApCi1kaWZmIC0tZ2l0IGEvc3JjL21lc29uLmJ1aWxkIGIvc3JjL21l c29uLmJ1aWxkCi1pbmRleCAzZWI5YmE1MzUuLjExM2ExNDJhZCAxMDA2NDQKLS0tLSBhL3NyYy9t ZXNvbi5idWlsZAotKysrIGIvc3JjL21lc29uLmJ1aWxkCi1AQCAtNDgsNiArNDgsMzAgQEAgZ25v bWVfYnVpbGRlcl9kZXBzID0gWwotICAgbGliaWRlX3RyZWVfZGVwLAotIF0KLSAKLStnbm9tZV9i dWlsZGVyX3N0YXRpYyA9IFsKLSsgIGxpYmlkZV9jb2RlLAotKyAgbGliaWRlX2NvcmUsCi0rICBs aWJpZGVfZGVidWdnZXIsCi0rICBsaWJpZGVfZWRpdG9yLAotKyAgbGliaWRlX2ZvdW5kcnksCi0r ICBsaWJpZGVfZ3JlZXRlciwKLSsgIGxpYmlkZV9ndWksCi0rICBsaWJpZGVfaW8sCi0rICBsaWJp ZGVfbHNwLAotKyAgbGliaWRlX3BsdWdpbnMsCi0rICBsaWJpZGVfcHJvamVjdHMsCi0rICBsaWJp ZGVfc2VhcmNoLAotKyAgbGliaWRlX3NvdXJjZXZpZXcsCi0rICBsaWJpZGVfdGVybWluYWwsCi0r ICBsaWJpZGVfdGhlbWVzLAotKyAgbGliaWRlX3RocmVhZGluZywKLSsgIGxpYmlkZV90cmVlLAot KyAgbGliaWRlX3ZjcywKLSsgIGxpYmlkZV93ZWJraXQsCi0rCi0rICBwbHVnaW5zLAotK10KLSsK LSBpZiBsaWJzeXNwcm9mX2NhcHR1cmUuZm91bmQoKQotICAgZ25vbWVfYnVpbGRlcl9kZXBzICs9 IGxpYnN5c3Byb2ZfY2FwdHVyZQotIGVuZGlmCi1AQCAtNzcsNyArMTAxLDcgQEAgZ25vbWVfYnVp bGRlciA9IGV4ZWN1dGFibGUoJ2dub21lLWJ1aWxkZXInLCAnbWFpbi5jJywgJ2J1Zy1idWRkeS5j JywKLSAgICAgICAgICAgICBjX2FyZ3M6IGxpYmlkZV9hcmdzICsgZXhlX2NfYXJncyArIHJlbGVh c2VfYXJncywKLSAgICAgICAgICBsaW5rX2FyZ3M6IGV4ZV9saW5rX2FyZ3MsCi0gICAgICAgICAg ICAgICAgcGllOiB0cnVlLAotLSAgICAgICAgbGlua193aG9sZTogcGx1Z2lucywKLSsgICAgICAg IGxpbmtfd2hvbGU6IGdub21lX2J1aWxkZXJfc3RhdGljLAotICAgICAgaW5zdGFsbF9ycGF0aDog cGtnbGliZGlyX2FicywKLSAgICAgICBkZXBlbmRlbmNpZXM6IGdub21lX2J1aWxkZXJfZGVwcywK LSApCi0tLSAKLTIuMjQuMQotCmRpZmYgLS1naXQgYS9zcmNwa2dzL2dub21lLWJ1aWxkZXIvdGVt cGxhdGUgYi9zcmNwa2dzL2dub21lLWJ1aWxkZXIvdGVtcGxhdGUKaW5kZXggOGM4YzAxNWQ4YTMu LjA5NjgwMjdhNjdiIDEwMDY0NAotLS0gYS9zcmNwa2dzL2dub21lLWJ1aWxkZXIvdGVtcGxhdGUK KysrIGIvc3JjcGtncy9nbm9tZS1idWlsZGVyL3RlbXBsYXRlCkBAIC0xLDcgKzEsNyBAQAogIyBU ZW1wbGF0ZSBmaWxlIGZvciAnZ25vbWUtYnVpbGRlcicKIHBrZ25hbWU9Z25vbWUtYnVpbGRlcgot dmVyc2lvbj0zLjM0LjEKLXJldmlzaW9uPTYKK3ZlcnNpb249My4zNy45MAorcmV2aXNpb249MQog YnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj1xZW11CiBjb25maWd1cmVfYXJncz0iLUR3 aXRoX3dlYmtpdD10cnVlIC1Ed2l0aF9zeXNwcm9mPXRydWUgLURoZWxwPXRydWUiCkBAIC0xMSwx NSArMTEsMTUgQEAgbWFrZWRlcGVuZHM9ImNhaXJvLWRldmVsIGNsYW5nIGRldmhlbHAtZGV2ZWwg ZW5jaGFudDItZGV2ZWwgZmxhdHBhay1kZXZlbAogIGdzcGVsbC1kZXZlbCBndGtzb3VyY2V2aWV3 NC1kZXZlbCBndGsrMy1kZXZlbCBqc29uLWdsaWItZGV2ZWwganNvbnJwYy1nbGliLWRldmVsCiAg bGliZGF6emxlLWRldmVsIGxpYmdpdDItZ2xpYi1kZXZlbCBsaWJnbGliLWRldmVsIGxpYm9zdHJl ZS1kZXZlbCBsaWJwZWFzLWRldmVsCiAgbGlieG1sMi1kZXZlbCB0ZW1wbGF0ZS1nbGliLWRldmVs IHZhbGEtZGV2ZWwgdnRlMy1kZXZlbCB3ZWJraXQyZ3RrLWRldmVsCi0gcHl0aG9uMy1nb2JqZWN0 LWRldmVsIHN5c3Byb2YtZGV2ZWwgZ2xhZGUzLWRldmVsIgorIHB5dGhvbjMtZ29iamVjdC1kZXZl bCBzeXNwcm9mLWRldmVsIGdsYWRlMy1kZXZlbCBsaWJwb3J0YWwtZGV2ZWwiCiBkZXBlbmRzPSJk ZXNrdG9wLWZpbGUtdXRpbHMgZmxhdHBhay1idWlsZGVyIHB5dGhvbjMtbHhtbCBkZXZoZWxwIHB5 dGhvbjMtZ29iamVjdCIKIHNob3J0X2Rlc2M9IklERSBmb3IgR05PTUUiCiBtYWludGFpbmVyPSJF bm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1s YXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvQnVpbGRlciIKLWNo YW5nZWxvZz0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLWJ1aWxkZXIvcmF3 L2dub21lLWJ1aWxkZXItMy0zNC9ORVdTIgorY2hhbmdlbG9nPSJodHRwczovL2dpdGxhYi5nbm9t ZS5vcmcvR05PTUUvZ25vbWUtYnVpbGRlci9yYXcvZ25vbWUtYnVpbGRlci0zLTM2L05FV1MiCiBk aXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFt ZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0wYjZlNDYxMDU3ZWE4MTUxZTgwNTI0YzBl YTdlZjFjYjk0OGU5MmFmZGE5ZGM2YmQzM2FlMzM5MmYwNDUwMWE0CitjaGVja3N1bT03ODA4OWNm MzlkZGU0ZWNmMWI1MTI3MzBiZGY0Yzc2OTEwNDc2NDk1YzRkYWI3MGMxNDA4NmJhZjdhYjhlZmMy CiBwYXRjaF9hcmdzPSItTnAxIgogCiBjYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KQEAg LTI4LDMgKzI4LDggQEAgY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCiAJCUxJQlMrPSIg LWxleGVjaW5mbyIKIAkJOzsKIGVzYWMKKworcHJlX2NvbmZpZ3VyZSgpIHsKKwkjIHRoaXMgdGVz dCBuZWVkcyBYCisJdnNlZCAtaSAicy90ZXN0KCd0ZXN0LXRleHQtaXRlcicvIyYvIiBzcmMvdGVz dHMvbWVzb24uYnVpbGQKK30KCkZyb20gZTdkMGZkZmE4YmY5MzcyNGUxMGU4MDRkMjlmNDk0YWFj NDhlZmU5MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFu aWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMTg6MjQ6MDIgKzAyMDAK U3ViamVjdDogW1BBVENIIDczLzgzXSBhZHdhaXRhLWljb24tdGhlbWU6IHVwZGF0ZSB0byAzLjM3 LjIKCi0tLQogc3JjcGtncy9hZHdhaXRhLWljb24tdGhlbWUvdGVtcGxhdGUgfCA2ICsrKy0tLQog MSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2Fkd2FpdGEtaWNvbi10aGVtZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvYWR3YWl0 YS1pY29uLXRoZW1lL3RlbXBsYXRlCmluZGV4IGZlYmQyOTE1YmU2Li42Y2QyYmRiZTcwZiAxMDA2 NDQKLS0tIGEvc3JjcGtncy9hZHdhaXRhLWljb24tdGhlbWUvdGVtcGxhdGUKKysrIGIvc3JjcGtn cy9hZHdhaXRhLWljb24tdGhlbWUvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdhZHdhaXRhLWljb24tdGhlbWUnCiBwa2duYW1lPWFkd2FpdGEtaWNvbi10aGVt ZQotdmVyc2lvbj0zLjM2LjEKLXJldmlzaW9uPTIKK3ZlcnNpb249My4zNy4yCityZXZpc2lvbj0x CiBhcmNocz1ub2FyY2gKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKIGhvc3RtYWtlZGVwZW5k cz0icGtnLWNvbmZpZyIKQEAgLTExLDQgKzExLDQgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQg PGdvdHRveEB2b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkxHUEwtMy4wLW9yLWxhdGVyLCBDQy1C WS1TQS0zLjAiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2Fkd2Fp dGEtaWNvbi10aGVtZSIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7dmVy c2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWU0OTg1MTg2 MjcwNDRkZmQ3ZGI3ZDc5YTViM2Q0Mzc4NDhjYWYxOTkxZWY0ZWYwMzZhMmQzYTJhYzJjMWYxNGQK K2NoZWNrc3VtPWE1OTRlNzQ0MDk3MWY4NjBjYzYxYjFiODI5MWJlMTVmZmMxYjhkZDA2YTlmMTE0 ODVhNWE3ZmFmMTg5YmNmNmIKCkZyb20gOTY1NjdhN2MyZWNkNjdkNzUxOTQ3OGEzNTQyN2Q0YjE5 Y2FlMTRmMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFuaWVsIEtvbGVzYSA8ZGFu aWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAgMTk6NTc6NDMgKzAyMDAK U3ViamVjdDogW1BBVENIIDc0LzgzXSBnbm9tZS1iYWNrZ3JvdW5kczogdXBkYXRlIHRvIDMuMzcu MgoKLS0tCiBzcmNwa2dzL2dub21lLWJhY2tncm91bmRzL3RlbXBsYXRlIHwgNiArKystLS0KIDEg ZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjcGtncy9nbm9tZS1iYWNrZ3JvdW5kcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ25vbWUtYmFj a2dyb3VuZHMvdGVtcGxhdGUKaW5kZXggMGIxZWU0MjczNTMuLmYxZjQ5ZGE5MzhlIDEwMDY0NAot LS0gYS9zcmNwa2dzL2dub21lLWJhY2tncm91bmRzL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvZ25v bWUtYmFja2dyb3VuZHMvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUg Zm9yICdnbm9tZS1iYWNrZ3JvdW5kcycKIHBrZ25hbWU9Z25vbWUtYmFja2dyb3VuZHMKLXZlcnNp b249My4zNi4wCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTMuMzcuMgorcmV2aXNpb249MQogYXJjaHM9 bm9hcmNoCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPWdldHRleHQKQEAgLTEw LDQgKzEwLDQgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3Jn PiIKIGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIsIENDLUJZLTIuMCwgQ0MtQlktU0EtMi4wLCBD Qy1CWS1TQS0zLjAiCiBob21lcGFnZT0iaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2du b21lLWJhY2tncm91bmRzIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2 ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09YjhjYjgx ZTRjZjlkMDg1ZmJiMjM1NDA2MzViNDkyZDVjMTI0YTFmODYxMWMyYWE5YWM2Mzg0MTExZDc3YmIw YgorY2hlY2tzdW09NGEyY2I4NmZmOTZhNjUwZWIwNDEwMWMyYTFiYjBhZWZjMDNiMzU4NzdmNDIz MTMxMzc4ZjRjMGZkZjAzZGI2OAoKRnJvbSBjZWQ3MzI2YzMzYmE4ZmQ2NzYyYWQ1YjAwZDIzMzk4 YmQ1OWU0YmY2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgS29sZXNhIDxk YW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcgMjAyMCAyMTowNToxMSArMDIw MApTdWJqZWN0OiBbUEFUQ0ggNzUvODNdIHBvbGFyaTogdXBkYXRlIHRvIDMuMzcuMwoKLS0tCiBz cmNwa2dzL3BvbGFyaS90ZW1wbGF0ZSB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0 aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3BvbGFyaS90ZW1w bGF0ZSBiL3NyY3BrZ3MvcG9sYXJpL3RlbXBsYXRlCmluZGV4IDA3NjdiYWM5N2I4Li40MWQwOGVl ODFiNSAxMDA2NDQKLS0tIGEvc3JjcGtncy9wb2xhcmkvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9w b2xhcmkvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdwb2xh cmknCiBwa2duYW1lPXBvbGFyaQotdmVyc2lvbj0zLjM2LjMKK3ZlcnNpb249My4zNy4zCiByZXZp c2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGl0 c3Rvb2wgZ29iamVjdC1pbnRyb3NwZWN0aW9uIGdldHRleHQiCkBAIC0xMyw3ICsxMyw3IEBAIG1h aW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwt Mi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvQXBwcy9Qb2xh cmkiCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7 cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT00ZjI2NjQ3ZTk4MWM1ZDBiZjQy ZGY1ODJhZGFjMjBiYmZkYWNkZmU4YzRmZTE1MGFmMGNhMDNkMmUwY2VmNTNhCitjaGVja3N1bT03 OTA1YjlkZGIzZjgxMWRjYzIzYjMwNzUwMTE4N2VhZDRkZGM3OGVkMGE2NTI5YWZjZGRjYjk0NDNi YTEyOTA4CiAKIGlmIFsgIiRDUk9TU19CVUlMRCIgXSA7IHRoZW4KIAlob3N0bWFrZWRlcGVuZHMr PSIgZ2xpYi1kZXZlbCBwcmVsaW5rLWNyb3NzIHFlbXUtdXNlci1zdGF0aWMiCgpGcm9tIDllZTE3 OTQ4NDQxMGFjODQ3NmJkMzg1MDkwYWUyMmQxZWUzNWNmNjAgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4s IDE2IEF1ZyAyMDIwIDIxOjEwOjQ0ICswMjAwClN1YmplY3Q6IFtQQVRDSCA3Ni84M10gZ3Zmczog dXBkYXRlIHRvIDEuNDUuOTAKCi0tLQogc3JjcGtncy9ndmZzL3RlbXBsYXRlIHwgNCArKy0tCiAx IGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvZ3Zmcy90ZW1wbGF0ZSBiL3NyY3BrZ3MvZ3Zmcy90ZW1wbGF0ZQppbmRleCAx MjdhMDU3NzkwMS4uMTY5MWQ1MzZkMWEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvZ3Zmcy90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL2d2ZnMvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdndmZzJwogcGtnbmFtZT1ndmZzCi12ZXJzaW9uPTEuNDQuMQordmVyc2lvbj0x LjQ1LjkwCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogY29uZmlndXJlX2FyZ3M9Ii1E c3lzdGVtZHVzZXJ1bml0ZGlyPW5vIC1EdG1wZmlsZXNkaXI9bm8gLURsb2dpbmQ9ZmFsc2UKQEAg LTIwLDcgKzIwLDcgQEAgbGljZW5zZT0iTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0 cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9ndmZzIgogY2hhbmdlbG9nPSJodHRwczovL2dp dGxhYi5nbm9tZS5vcmcvR05PTUUvZ3Zmcy9yYXcvZ25vbWUtMy0zNC9ORVdTIgogZGlzdGZpbGVz PSIke0dOT01FX1NJVEV9LyR7cGtnbmFtZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVy c2lvbn0udGFyLnh6IgotY2hlY2tzdW09NTBlZjMyNDVkMWIwMzY2NmE0MDQ1NTEwOTE2OWEyYTFi ZDUxNDE5ZmQyZDUxZjlmYTZjZmQ0Zjg5ZjA0ZmI0NgorY2hlY2tzdW09ZGUxZjU2YWM0YmNiY2Vi Nzc3YWE3MmY2N2VlNWY1NzRhZjYzNjIxODJhYjFjODA5N2RhNjU3ZTNkZGVhZGU4NwogCiAjIE1h bnVhbGx5IGRlY2xhcmUgc2hsaWJzIHVzZWQgYnkgdGhlIHN1YnBrZ3MuCiBzaGxpYl9wcm92aWRl cz0ibGliZ3Zmc2NvbW1vbi5zbyBsaWJndmZzZGFlbW9uLnNvIgoKRnJvbSAxZDQ4NzhiZDU3ZDg0 NDQwYTUyNGQ3YTI3NDhlYmJlMTk5ZjdmMmM1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBEYW5pZWwgS29sZXNhIDxkYW5pZWxAb2N0YWZvcmdlLm9yZz4KRGF0ZTogU3VuLCAxNiBBdWcg MjAyMCAyMToxNjo0NSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggNzcvODNdIGxpYnNvdXA6IHVwZGF0 ZSB0byAyLjcxLjAKCi0tLQogc3JjcGtncy9saWJzb3VwL3RlbXBsYXRlIHwgMjMgKysrKysrKysr KysrKy0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCAxMCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL2xpYnNvdXAvdGVtcGxhdGUgYi9zcmNwa2dz L2xpYnNvdXAvdGVtcGxhdGUKaW5kZXggZjdhOTgzNzNhYzguLmZkY2UxZGIzMTZlIDEwMDY0NAot LS0gYS9zcmNwa2dzL2xpYnNvdXAvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9saWJzb3VwL3RlbXBs YXRlCkBAIC0xLDE2ICsxLDE2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdsaWJzb3VwJwogcGtn bmFtZT1saWJzb3VwCi12ZXJzaW9uPTIuNzAuMAordmVyc2lvbj0yLjcxLjAKIHJldmlzaW9uPTEK IGJ1aWxkX3N0eWxlPW1lc29uCiBidWlsZF9oZWxwZXI9ImdpciIKLWNvbmZpZ3VyZV9hcmdzPSIt RGdzc2FwaT1kaXNhYmxlZCAtRG50bG09ZGlzYWJsZWQKK2NvbmZpZ3VyZV9hcmdzPSItRGdzc2Fw aT1kaXNhYmxlZCAtRG50bG09ZGlzYWJsZWQgLUR0bHNfY2hlY2s9ZmFsc2UKICAtRGludHJvc3Bl Y3Rpb249JCh2b3B0X2lmIGdpciBlbmFibGVkIGRpc2FibGVkKQotIC1EdmFwaT0kKHZvcHRfaWYg dmFsYSBlbmFibGVkIGRpc2FibGVkKSAtRHRsc19jaGVjaz1mYWxzZSIKKyAtRHZhcGk9JCh2b3B0 X2lmIGdpciBlbmFibGVkIGRpc2FibGVkKSIKIGhvc3RtYWtlZGVwZW5kcz0iZ2V0dGV4dC1kZXZl bCBnbGliLWRldmVsIHBrZy1jb25maWcgZ2V0dGV4dAotICQodm9wdF9pZiB2YWxhICd2YWxhJyki CisgJCh2b3B0X2lmIGdpciB2YWxhKSIKIG1ha2VkZXBlbmRzPSJsaWJnbGliLWRldmVsIGxpYnht bDItZGV2ZWwgc3FsaXRlLWRldmVsIGxpYnBzbC1kZXZlbAotIGJyb3RsaS1kZXZlbCAkKHZvcHRf aWYgdmFsYSAndmFsYS1kZXZlbCcpIgorIGJyb3RsaS1kZXZlbCAkKHZvcHRfaWYgZ2lyIHZhbGEt ZGV2ZWwpIgogZGVwZW5kcz0iZ2xpYi1uZXR3b3JraW5nIgogc2hvcnRfZGVzYz0iSFRUUCBsaWJy YXJ5IGltcGxlbWVudGF0aW9uIGluIEMiCiBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94 QHZvaWRsaW51eC5vcmc+IgpAQCAtMTgsMTEgKzE4LDE2IEBAIGxpY2Vuc2U9IkxHUEwtMi4xLW9y LWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd2lraS5nbm9tZS5vcmcvUHJvamVjdHMvbGlic291 cCIKIGNoYW5nZWxvZz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0dOT01FL2xp YnNvdXAvZ25vbWUtMy0zNi9ORVdTIgogZGlzdGZpbGVzPSIke0dOT01FX1NJVEV9LyR7cGtnbmFt ZX0vJHt2ZXJzaW9uJS4qfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09 NTRiMDIwZjc0YWVmYTQzODkxOGQ4ZTUzY2ZmNjJlMmIxZTU5ZWZlMmRlNTNlMDZiMTlhNGIwN2Ix ZjRkNTM0MgorY2hlY2tzdW09ODhlMjRmYWQ3MmQxNmUxY2I2OTJjODc4MjY4OGRiZWU0YmY0NDE1 MWVmYjBkOWVkMjViMTRmMzg0OWQ5ODk2ZQogCiAjIFBhY2thZ2UgYnVpbGQgb3B0aW9ucwotYnVp bGRfb3B0aW9ucz0iZ2lyIHZhbGEiCi1idWlsZF9vcHRpb25zX2RlZmF1bHQ9ImdpciB2YWxhIgor YnVpbGRfb3B0aW9ucz0iZ2lyIgorYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJnaXIiCisKKyMgZ2lv IHRlc3RzIGNhbid0IHJ1biBpbiBjaHJvb3QKK2RvX2NoZWNrKCkgeworCToKK30KIAogbGlic291 cC1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVuZHM9IiR7bWFrZWRlcGVuZHN9IGxpYnNvdXA+PSR7 dmVyc2lvbn1fJHtyZXZpc2lvbn0iCkBAIC0zMSw4ICszNiw2IEBAIGxpYnNvdXAtZGV2ZWxfcGFj a2FnZSgpIHsKIAkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcvbGlic291cC0yLjQucGMKIAkJaWYg WyAiJGJ1aWxkX29wdGlvbl9naXIiIF07IHRoZW4KIAkJCXZtb3ZlIHVzci9zaGFyZS9naXItMS4w L1NvdXAtMi40LmdpcgotCQlmaQotCQlpZiBbICIkYnVpbGRfb3B0aW9uX3ZhbGEiIF07IHRoZW4K IAkJCXZtb3ZlIHVzci9zaGFyZS92YWxhCiAJCWZpCiAJCXZtb3ZlIHVzci9pbmNsdWRlL2xpYnNv dXAtMi40CgpGcm9tIDE2ZmE5NThjNTc5ZWI3MTkyZTlhNTM2M2Q4YjM1NTE5YzkzNzFmNmEgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9y Z2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDIxOjIwOjU4ICswMjAwClN1YmplY3Q6IFtQ QVRDSCA3OC84M10gcnlnZWw6IHVwZGF0ZSB0byAwLjM5LjIKCi0tLQogc3JjcGtncy9yeWdlbC90 ZW1wbGF0ZSB8IDggKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9yeWdlbC90ZW1wbGF0ZSBiL3NyY3Br Z3MvcnlnZWwvdGVtcGxhdGUKaW5kZXggZDI4ZGJjMmNlMDguLmJkZWRkM2M2Yzg3IDEwMDY0NAot LS0gYS9zcmNwa2dzL3J5Z2VsL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcnlnZWwvdGVtcGxhdGUK QEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdyeWdlbCcKIHBrZ25hbWU9cnln ZWwKLXZlcnNpb249MC4zOC4zCi1yZXZpc2lvbj0yCit2ZXJzaW9uPTAuMzkuMgorcmV2aXNpb249 MQogYnVpbGRfc3R5bGU9bWVzb24KIGJ1aWxkX2hlbHBlcj0iZ2lyIgogY29uZmlndXJlX2FyZ3M9 Ii1EZXhhbXBsZXM9ZmFsc2UgLUR0ZXN0cz1mYWxzZQpAQCAtOSwxNCArOSwxNCBAQCBjb25maWd1 cmVfYXJncz0iLURleGFtcGxlcz1mYWxzZSAtRHRlc3RzPWZhbHNlCiBob3N0bWFrZWRlcGVuZHM9 InBrZy1jb25maWcgZ2xpYi1kZXZlbCB2YWxhIgogbWFrZWRlcGVuZHM9InNxbGl0ZS1kZXZlbCBn dGsrMy1kZXZlbCBsaWJzb3VwLWRldmVsIGxpYmdlZTA4LWRldmVsCiAgZ3VwbnAtYXYtZGV2ZWwg Z3VwbnAtZGxuYS1kZXZlbCB0cmFja2VyLWRldmVsIGxpYm1lZGlhYXJ0LWRldmVsCi0gZ3NzZHAt ZGV2ZWwiCisgZ3NzZHAtZGV2ZWwgZ3N0MS1lZGl0aW5nLXNlcnZpY2VzLWRldmVsIgogZGVwZW5k cz0iaGljb2xvci1pY29uLXRoZW1lIGRlc2t0b3AtZmlsZS11dGlscyIKIHNob3J0X2Rlc2M9IkdO T01FIGhvbWUgbWVkaWEgc29sdXRpb24iCiBtYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZv aWRsaW51eC5vcmc+IgogbGljZW5zZT0iTEdQTC0yLjEtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0 cHM6Ly93aWtpLmdub21lLm9yZy9Qcm9qZWN0cy9SeWdlbCIKIGRpc3RmaWxlcz0iJHtHTk9NRV9T SVRFfS8ke3BrZ25hbWV9LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54 eiIKLWNoZWNrc3VtPTA4YzIxYTU3N2Y3YmRhZDI2NDQ2YTc1ZmZhMzI3NzhiMjY4NDJjM2IxMTg4 MTY1ZjBiMTk4MTg1NTk3NDdkMDAKK2NoZWNrc3VtPTQ1M2YxY2U3ODJhNTFiYWU4Zjc3NmE5MmY3 MGQyMzM2MjVjOThhMWM0Y2QyZWMzYjQ1NDVjYjdlNzc3MzM2NjQKIAogY29uZl9maWxlcz0iL2V0 Yy9yeWdlbC5jb25mIgogCgpGcm9tIDI1YThkMjEzMDEyOWEzYzVmOTFkMTg3YzhlZjJjYzE4Nzcw Y2E3NjEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmll bEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDIxOjIzOjI0ICswMjAwClN1 YmplY3Q6IFtQQVRDSCA3OS84M10gc2ltcGxlLXNjYW46IHVwZGF0ZSB0byAzLjM3LjMKCi0tLQog c3JjcGtncy9zaW1wbGUtc2Nhbi90ZW1wbGF0ZSB8IDcgKysrLS0tLQogMSBmaWxlIGNoYW5nZWQs IDMgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3Np bXBsZS1zY2FuL3RlbXBsYXRlIGIvc3JjcGtncy9zaW1wbGUtc2Nhbi90ZW1wbGF0ZQppbmRleCA0 YWUzYjg2NDNmZC4uNmUxN2E2ZWZiNGEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mvc2ltcGxlLXNjYW4v dGVtcGxhdGUKKysrIGIvc3JjcGtncy9zaW1wbGUtc2Nhbi90ZW1wbGF0ZQpAQCAtMSw3ICsxLDYg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3NpbXBsZS1zY2FuJwogcGtnbmFtZT1zaW1wbGUtc2Nh bgotX2dub21lX3ZlcnNpb249My4zNgotdmVyc2lvbj0zLjM2LjQKK3ZlcnNpb249My4zNy4zCiBy ZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1tZXNvbgogaG9zdG1ha2VkZXBlbmRzPSJnZXR0ZXh0IGds aWItZGV2ZWwgaXRzdG9vbCBwa2ctY29uZmlnIHZhbGEiCkBAIC0xMSw1ICsxMCw1IEBAIHNob3J0 X2Rlc2M9IkdUSyBTaW1wbGUgc2Nhbm5pbmcgdXRpbGl0eSIKIG1haW50YWluZXI9IkVubm8gQm9s YW5kIDxnb3R0b3hAdm9pZGxpbnV4Lm9yZz4iCiBsaWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVyIgog aG9tZXBhZ2U9Imh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9zaW1wbGUtc2NhbiIKLWRp c3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9LyR7X2dub21lX3ZlcnNpb259LyR7cGtn bmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT01NmFmMTgyOTFhNzc2M2Y3NjNkYTVm MGVkZWQyNDdkMmY4ZWJmOTExMmMyODZlZjg5MDEzMzc0OTY5ZmVmNTI1CitkaXN0ZmlsZXM9IiR7 R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJzaW9u fS50YXIueHoiCitjaGVja3N1bT1mNWQ4OTczYzZiNDgzZDUwZDlhYzA4YWU2YzA4MDJhN2E2YmIy NTg1MzhhODE0NzI2NmU3M2FhNDUxZWVkOTUyCgpGcm9tIGQ0NWI4MmE2ODIwZGNiMDQwMzc1MDQ4 ZTI5NDBmMTg0ZGEwYzliYTIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBL b2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBTdW4sIDE2IEF1ZyAyMDIwIDIxOjI1 OjE1ICswMjAwClN1YmplY3Q6IFtQQVRDSCA4MC84M10geWVscC14c2w6IHVwZGF0ZSB0byAzLjM3 LjkwCgotLS0KIHNyY3BrZ3MveWVscC14c2wvdGVtcGxhdGUgfCA0ICsrLS0KIDEgZmlsZSBjaGFu Z2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy95ZWxwLXhzbC90ZW1wbGF0ZSBiL3NyY3BrZ3MveWVscC14c2wvdGVtcGxhdGUKaW5kZXggZjc0 YTdmYmE2N2MuLjEwNzRlNmMzMTkwIDEwMDY0NAotLS0gYS9zcmNwa2dzL3llbHAteHNsL3RlbXBs YXRlCisrKyBiL3NyY3BrZ3MveWVscC14c2wvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICd5ZWxwLXhzbCcKIHBrZ25hbWU9eWVscC14c2wKLXZlcnNpb249My4z Ni4wCit2ZXJzaW9uPTMuMzcuOTAKIHJldmlzaW9uPTEKIGFyY2hzPW5vYXJjaAogYnVpbGRfc3R5 bGU9Z251LWNvbmZpZ3VyZQpAQCAtMTEsNCArMTEsNCBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFu ZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhv bWVwYWdlPSJodHRwczovL3dpa2kuZ25vbWUub3JnL0FwcHMvWWVscC9Yc2wiCiBkaXN0ZmlsZXM9 IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7cGtnbmFtZX0tJHt2ZXJz aW9ufS50YXIueHoiCi1jaGVja3N1bT00ZmU1MWMwMjMzYjc5YTRjMjA0YzY4NDk4ZDQ1ZjA5YjM0 MmMzMGVkMDJjNGU0MTg1MDZjMGUzNWYwOTA0ZWMzCitjaGVja3N1bT1lOGNhOWNhZjU3MjlmOGRl NTAzNDlmZWZhMmYyYTY2ODBlMDQ5Mjk4YjdhYjg0OWQ0ZWZlNDk4M2M0M2E5NGY0CgpGcm9tIDI5 NzlhMGQ2MDBmZDk5ZWRiOThjMzU1YjgwYWQxNTAwMDkyN2EzNWEgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9yZ2Uub3JnPgpEYXRlOiBT dW4sIDE2IEF1ZyAyMDIwIDIxOjI1OjMzICswMjAwClN1YmplY3Q6IFtQQVRDSCA4MS84M10geWVs cDogdXBkYXRlIHRvIDMuMzcuOTAKCi0tLQogc3JjcGtncy95ZWxwL3RlbXBsYXRlIHwgNCArKy0t CiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyY3BrZ3MveWVscC90ZW1wbGF0ZSBiL3NyY3BrZ3MveWVscC90ZW1wbGF0ZQppbmRl eCA2M2NhN2MyMjVjOC4uNWE0N2E4ZTJiZGIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MveWVscC90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL3llbHAvdGVtcGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBs YXRlIGZpbGUgZm9yICd5ZWxwJwogcGtnbmFtZT15ZWxwCi12ZXJzaW9uPTMuMzYuMAordmVyc2lv bj0zLjM3LjkwCiByZXZpc2lvbj0xCiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBjb25maWd1 cmVfYXJncz0iLS1kaXNhYmxlLXNjaGVtYXMtY29tcGlsZSAtLWRpc2FibGUtc3RhdGljIgpAQCAt MTMsNyArMTMsNyBAQCBtYWludGFpbmVyPSJFbm5vIEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5v cmc+IgogbGljZW5zZT0iR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3dpa2ku Z25vbWUub3JnL0FwcHMvWWVscCIKIGRpc3RmaWxlcz0iJHtHTk9NRV9TSVRFfS8ke3BrZ25hbWV9 LyR7dmVyc2lvbiUuKn0vJHtwa2duYW1lfS0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPWZk NGIzZTIzZDMxYWQyYmViZTQyYWM4ZjgwMjQyYjJkOWJlZjUxNDE4YmY2MmI1OWFjZGYyNDQwYmQ5 NGVkMjQKK2NoZWNrc3VtPWRhYzNkMmIxNGZiZmNlZTQ3MzJkNGU4YTdmOGExMDhhODhlODUzY2Ew NWYwNzFkOTg4YTVhOGUxODVlNWFiZDIKIAogeWVscC1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVu ZHM9InllbHAtJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKCkZyb20gODY4NTk4Yjc0ZTMxNzBjOWEy ZDZkN2I0NWExY2M5ZGI4ZTY4NDlkZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGFu aWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFmb3JnZS5vcmc+CkRhdGU6IFN1biwgMTYgQXVnIDIwMjAg MjE6MjY6NDcgKzAyMDAKU3ViamVjdDogW1BBVENIIDgyLzgzXSB5ZWxwLXRvb2xzOiB1cGRhdGUg dG8gMy4zNy45MAoKW2NpIHNraXBdCi0tLQogc3JjcGtncy95ZWxwLXRvb2xzL3RlbXBsYXRlIHwg NCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MveWVscC10b29scy90ZW1wbGF0ZSBiL3NyY3BrZ3MveWVscC10 b29scy90ZW1wbGF0ZQppbmRleCA5ZThhNjcwZTZiMC4uYTFlYzlmN2U2ZWQgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3MveWVscC10b29scy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3llbHAtdG9vbHMvdGVt cGxhdGUKQEAgLTEsNiArMSw2IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICd5ZWxwLXRvb2xzJwog cGtnbmFtZT15ZWxwLXRvb2xzCi12ZXJzaW9uPTMuMzIuMgordmVyc2lvbj0zLjM3LjkwCiByZXZp c2lvbj0xCiBhcmNocz1ub2FyY2gKIGJ1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKQEAgLTEyLDQg KzEyLDQgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2b2lkbGludXgub3JnPiIK IGxpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cDovL3d3dy5nbm9tZS5v cmciCiBkaXN0ZmlsZXM9IiR7R05PTUVfU0lURX0vJHtwa2duYW1lfS8ke3ZlcnNpb24lLip9LyR7 cGtnbmFtZX0tJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0xODM4NTZiNWVkMGIwYmIyYzA1 ZGQxMjA0YWYwMjM5NDZlZDQzNjk0M2UzNWU3ODlhZmIwMjk1ZTVlNzFlOGY5CitjaGVja3N1bT1k MDcwMjU4OWM4MjM4YTIxNTk1NGNhY2E5NGE5NjRiM2EwZDE2NDY2Nzk4YThjMWQ2NDRkZDY2YzI0 OTJmMmJiCgpGcm9tIDBjNzgyMGFmY2QwM2VmY2QyNTI5OWU1Yjc2Y2UyYWE4NGRhZDcyNmIgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhbmllbCBLb2xlc2EgPGRhbmllbEBvY3RhZm9y Z2Uub3JnPgpEYXRlOiBUdWUsIDE4IEF1ZyAyMDIwIDA1OjM1OjA2ICswMjAwClN1YmplY3Q6IFtQ QVRDSCA4My84M10gYnVkZ2llLWRlc2t0b3A6IHJlYnVpbGQgZm9yIG11dHRlci03CgpbY2kgc2tp cF0KLS0tCiAuLi4vYnVkZ2llLWRlc2t0b3AvcGF0Y2hlcy9nbm9tZS0zMzgucGF0Y2ggICAgfCAx MzQ3MiArKysrKysrKysrKysrKysrCiBzcmNwa2dzL2J1ZGdpZS1kZXNrdG9wL3RlbXBsYXRlICAg ICAgICAgICAgICAgfCAgICAgMiArLQogMiBmaWxlcyBjaGFuZ2VkLCAxMzQ3MyBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9idWRnaWUtZGVz a3RvcC9wYXRjaGVzL2dub21lLTMzOC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvYnVkZ2ll LWRlc2t0b3AvcGF0Y2hlcy9nbm9tZS0zMzgucGF0Y2ggYi9zcmNwa2dzL2J1ZGdpZS1kZXNrdG9w L3BhdGNoZXMvZ25vbWUtMzM4LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi45MmZhNzZhMTdiMAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvYnVkZ2llLWRl c2t0b3AvcGF0Y2hlcy9nbm9tZS0zMzgucGF0Y2gKQEAgLTAsMCArMSwxMzQ3MiBAQAorRnJvbSAz MGJhMGI1YTQ5ODZkNmJlMzY4N2ExZDdmYjQ4MjkwNjE4NWVhOGM5IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQorRnJvbTogRGF2aWQgTW9oYW1tZWQgPGZvc3NmcmVlZG9tQHVzZXJzLm5vcmVwbHku Z2l0aHViLmNvbT4KK0RhdGU6IFR1ZSwgMTggRmViIDIwMjAgMDY6NDA6MTIgKzAwMDAKK1N1Ympl Y3Q6IFtQQVRDSF0gZ25vbWUgMy4zOCBjb21wYXRpYmlsaXR5CisKK1NxdWFzaGVkIGJ5IEBxNjYg ZnJvbToKKworaHR0cHM6Ly9naXRodWIuY29tL3NvbHVzLXByb2plY3QvYnVkZ2llLWRlc2t0b3Av cHVsbC8xOTg3CisKK3BsdXMgYW4gYXNzb3J0bWVudCBvZiBvbGRlciBtdXR0ZXIgdXBkYXRlcyBm cm9tIGdpdCBtYXN0ZXIKKy0tLQorIG1lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgMTYgKy0KKyBtZXNvbl9vcHRpb25zLnR4dCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAxIC0KKyBzcmMvYXBwbGV0cy9zdGF0dXMvU3RhdHVzQXBwbGV0LnZh bGEgICAgICAgICAgfCAgICA2IC0KKyBzcmMvYXBwbGV0cy9zdGF0dXMvbWVzb24uYnVpbGQgICAg ICAgICAgICAgICAgfCAgIDEzICstCisgc3JjL3dtL2JhY2tncm91bmQudmFsYSAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAxNSArLQorIHNyYy93bS9tZXNvbi5idWlsZCAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgMzAgKy0KKyBzcmMvd20vc2hpbS52YWxhICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgIDEwICstCisgc3JjL3dtL3dtLnZhbGEgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAxMCArLQorIC4uLntDbHV0dGVyLTUubWV0YWRhdGEgPT4gQ2x1 dHRlci02Lm1ldGFkYXRhfSB8ICAgIDAKKyAuLi57Q2x1dHRlci00Lm1ldGFkYXRhID0+IENsdXR0 ZXItNy5tZXRhZGF0YX0gfCAgIDQzIC0KKyB2YXBpL3tDb2dsLTQubWV0YWRhdGEgPT4gQ29nbC02 Lm1ldGFkYXRhfSAgICAgfCAgICAwCisgdmFwaS97Q29nbC01Lm1ldGFkYXRhID0+IENvZ2wtNy5t ZXRhZGF0YX0gICAgIHwgICAgMiAtCisgdmFwaS9NZXRhLTMubWV0YWRhdGEgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICA2NiAtCisgdmFwaS97TWV0YS01Lm1ldGFkYXRhID0+IE1ldGEtNi5t ZXRhZGF0YX0gICAgIHwgICAgMAorIHZhcGkve01ldGEtNC5tZXRhZGF0YSA9PiBNZXRhLTcubWV0 YWRhdGF9ICAgICB8ICAgMjUgKy0KKyB2YXBpL2dlbmVyYXRlLW11dHRlci12YXBpLnNoICAgICAg ICAgICAgICAgICAgfCAgICAyICstCisgdmFwaS9ncmFwaGVuZS1nb2JqZWN0LTEuMC52YXBpICAg ICAgICAgICAgICAgIHwgIDY5MSArKysrKysrCisgdmFwaS9saWJtdXR0ZXItMi5kZXBzICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgOSAtCisgdmFwaS9saWJtdXR0ZXItMi52YXBpICAgICAg ICAgICAgICAgICAgICAgICAgIHwgMTMyNSAtLS0tLS0tLS0tLS0tLQorIHZhcGkvbGlibXV0dGVy LTMtY3VzdG9tLnZhbGEgICAgICAgICAgICAgICAgICB8ICAgIDYgLQorIHZhcGkvbGlibXV0dGVy LTMuZGVwcyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDkgLQorIHZhcGkvbGlibXV0dGVy LTQuZGVwcyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDggLQorIHZhcGkvbGlibXV0dGVy LTQudmFwaSAgICAgICAgICAgICAgICAgICAgICAgICB8IDE0MjUgLS0tLS0tLS0tLS0tLS0tCisg dmFwaS97bGlibXV0dGVyLTUuZGVwcyA9PiBsaWJtdXR0ZXItNi5kZXBzfSAgIHwgICAgMyArLQor IHZhcGkve2xpYm11dHRlci01LnZhcGkgPT4gbGlibXV0dGVyLTYudmFwaX0gICB8ICAgNDUgKy0K KyB2YXBpL2xpYm11dHRlci03LWN1c3RvbS52YWxhICAgICAgICAgICAgICAgICAgfCAgICA3ICsK KyB2YXBpL2xpYm11dHRlci03LmRlcHMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA2ICsK KyB2YXBpL3tsaWJtdXR0ZXItMy52YXBpID0+IGxpYm11dHRlci03LnZhcGl9ICAgfCAgMzkwICsr LS0KKyB2YXBpL2xpYm11dHRlci1jb2dsLTQudmFwaSAgICAgICAgICAgICAgICAgICAgfCAxMjcy IC0tLS0tLS0tLS0tLS0KKyB2YXBpL211dHRlci1jbHV0dGVyLTUtY3VzdG9tLnZhbGEgICAgICAg ICAgICAgfCAgMTU4IC0tCisgLi4uc3RvbS52YWxhID0+IG11dHRlci1jbHV0dGVyLTYtY3VzdG9t LnZhbGF9IHwgICAxMSAtCisgLi4uci1jbHV0dGVyLTUuZGVwcyA9PiBtdXR0ZXItY2x1dHRlci02 LmRlcHN9IHwgICAgMiArLQorIC4uLnItY2x1dHRlci01LnZhcGkgPT4gbXV0dGVyLWNsdXR0ZXIt Ni52YXBpfSB8ICA4MDYgKystLS0tLS0KKyAuLi5yLWNsdXR0ZXItNC5kZXBzID0+IG11dHRlci1j bHV0dGVyLTcuZGVwc30gfCAgICAzICstCisgLi4uci1jbHV0dGVyLTQudmFwaSA9PiBtdXR0ZXIt Y2x1dHRlci03LnZhcGl9IHwgMTYxNSArKysrLS0tLS0tLS0tLS0tLQorIC4uLi1jdXN0b20udmFs YSA9PiBtdXR0ZXItY29nbC02LWN1c3RvbS52YWxhfSB8ICAgIDAKKyAuLi57bXV0dGVyLWNvZ2wt NC5kZXBzID0+IG11dHRlci1jb2dsLTYuZGVwc30gfCAgICAwCisgLi4ue211dHRlci1jb2dsLTUu dmFwaSA9PiBtdXR0ZXItY29nbC02LnZhcGl9IHwgIDQyMiArLS0tLQorIC4uLi1jdXN0b20udmFs YSA9PiBtdXR0ZXItY29nbC03LWN1c3RvbS52YWxhfSB8ICAgMjAgKy0KKyAuLi57bXV0dGVyLWNv Z2wtNS5kZXBzID0+IG11dHRlci1jb2dsLTcuZGVwc30gfCAgICAwCisgLi4ue211dHRlci1jb2ds LTQudmFwaSA9PiBtdXR0ZXItY29nbC03LnZhcGl9IHwgIDY3MSArKystLS0tCisgdmFwaS9wb2xr aXQtZ29iamVjdC0xLnZhcGkgICAgICAgICAgICAgICAgICAgIHwgICAzMSArLQorIDQyIGZpbGVz IGNoYW5nZWQsIDE5MjAgaW5zZXJ0aW9ucygrKSwgNzI1NCBkZWxldGlvbnMoLSkKKyByZW5hbWUg dmFwaS97Q2x1dHRlci01Lm1ldGFkYXRhID0+IENsdXR0ZXItNi5tZXRhZGF0YX0gKDEwMCUpCisg cmVuYW1lIHZhcGkve0NsdXR0ZXItNC5tZXRhZGF0YSA9PiBDbHV0dGVyLTcubWV0YWRhdGF9ICg3 OCUpCisgcmVuYW1lIHZhcGkve0NvZ2wtNC5tZXRhZGF0YSA9PiBDb2dsLTYubWV0YWRhdGF9ICgx MDAlKQorIHJlbmFtZSB2YXBpL3tDb2dsLTUubWV0YWRhdGEgPT4gQ29nbC03Lm1ldGFkYXRhfSAo OTElKQorIGRlbGV0ZSBtb2RlIDEwMDY0NCB2YXBpL01ldGEtMy5tZXRhZGF0YQorIHJlbmFtZSB2 YXBpL3tNZXRhLTUubWV0YWRhdGEgPT4gTWV0YS02Lm1ldGFkYXRhfSAoMTAwJSkKKyByZW5hbWUg dmFwaS97TWV0YS00Lm1ldGFkYXRhID0+IE1ldGEtNy5tZXRhZGF0YX0gKDc2JSkKKyBjcmVhdGUg bW9kZSAxMDA2NDQgdmFwaS9ncmFwaGVuZS1nb2JqZWN0LTEuMC52YXBpCisgZGVsZXRlIG1vZGUg MTAwNjQ0IHZhcGkvbGlibXV0dGVyLTIuZGVwcworIGRlbGV0ZSBtb2RlIDEwMDY0NCB2YXBpL2xp Ym11dHRlci0yLnZhcGkKKyBkZWxldGUgbW9kZSAxMDA2NDQgdmFwaS9saWJtdXR0ZXItMy1jdXN0 b20udmFsYQorIGRlbGV0ZSBtb2RlIDEwMDY0NCB2YXBpL2xpYm11dHRlci0zLmRlcHMKKyBkZWxl dGUgbW9kZSAxMDA2NDQgdmFwaS9saWJtdXR0ZXItNC5kZXBzCisgZGVsZXRlIG1vZGUgMTAwNjQ0 IHZhcGkvbGlibXV0dGVyLTQudmFwaQorIHJlbmFtZSB2YXBpL3tsaWJtdXR0ZXItNS5kZXBzID0+ IGxpYm11dHRlci02LmRlcHN9ICg1MCUpCisgcmVuYW1lIHZhcGkve2xpYm11dHRlci01LnZhcGkg PT4gbGlibXV0dGVyLTYudmFwaX0gKDk3JSkKKyBjcmVhdGUgbW9kZSAxMDA2NDQgdmFwaS9saWJt dXR0ZXItNy1jdXN0b20udmFsYQorIGNyZWF0ZSBtb2RlIDEwMDY0NCB2YXBpL2xpYm11dHRlci03 LmRlcHMKKyByZW5hbWUgdmFwaS97bGlibXV0dGVyLTMudmFwaSA9PiBsaWJtdXR0ZXItNy52YXBp fSAoNzUlKQorIGRlbGV0ZSBtb2RlIDEwMDY0NCB2YXBpL2xpYm11dHRlci1jb2dsLTQudmFwaQor IGRlbGV0ZSBtb2RlIDEwMDY0NCB2YXBpL211dHRlci1jbHV0dGVyLTUtY3VzdG9tLnZhbGEKKyBy ZW5hbWUgdmFwaS97bXV0dGVyLWNsdXR0ZXItNC1jdXN0b20udmFsYSA9PiBtdXR0ZXItY2x1dHRl ci02LWN1c3RvbS52YWxhfSAoOTIlKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY2x1dHRlci01LmRl cHMgPT4gbXV0dGVyLWNsdXR0ZXItNi5kZXBzfSAoNjMlKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXIt Y2x1dHRlci01LnZhcGkgPT4gbXV0dGVyLWNsdXR0ZXItNi52YXBpfSAoOTMlKQorIHJlbmFtZSB2 YXBpL3ttdXR0ZXItY2x1dHRlci00LmRlcHMgPT4gbXV0dGVyLWNsdXR0ZXItNy5kZXBzfSAoNTQl KQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY2x1dHRlci00LnZhcGkgPT4gbXV0dGVyLWNsdXR0ZXIt Ny52YXBpfSAoODYlKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY29nbC01LWN1c3RvbS52YWxhID0+ IG11dHRlci1jb2dsLTYtY3VzdG9tLnZhbGF9ICgxMDAlKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXIt Y29nbC00LmRlcHMgPT4gbXV0dGVyLWNvZ2wtNi5kZXBzfSAoMTAwJSkKKyByZW5hbWUgdmFwaS97 bXV0dGVyLWNvZ2wtNS52YXBpID0+IG11dHRlci1jb2dsLTYudmFwaX0gKDY4JSkKKyByZW5hbWUg dmFwaS97bXV0dGVyLWNvZ2wtNC1jdXN0b20udmFsYSA9PiBtdXR0ZXItY29nbC03LWN1c3RvbS52 YWxhfSAoODElKQorIHJlbmFtZSB2YXBpL3ttdXR0ZXItY29nbC01LmRlcHMgPT4gbXV0dGVyLWNv Z2wtNy5kZXBzfSAoMTAwJSkKKyByZW5hbWUgdmFwaS97bXV0dGVyLWNvZ2wtNC52YXBpID0+IG11 dHRlci1jb2dsLTcudmFwaX0gKDU5JSkKKworZGlmZiAtLWdpdCBtZXNvbi5idWlsZCBtZXNvbi5i dWlsZAoraW5kZXggMmEwZTAzMTYuLjNjNGM2YWMxIDEwMDY0NAorLS0tIG1lc29uLmJ1aWxkCisr KysgbWVzb24uYnVpbGQKK0BAIC0zMiwxNiArMzIsMTYgQEAgYW1fY2ZsYWdzID0gWworIGFkZF9n bG9iYWxfYXJndW1lbnRzKGFtX2NmbGFncywgbGFuZ3VhZ2U6ICdjJykKKyBtZXNvbi5hZGRfaW5z dGFsbF9zY3JpcHQoJ21lc29uX3Bvc3RfaW5zdGFsbC5zaCcpCisgCistIyBCdWRnaWUgbmVlZHMg YSBtaW5pbXVtIDMuMjIgR05PTUUgc3RhY2sKKy1nbm9tZV9taW5pbXVtX3ZlcnNpb24gPSAnPj0g My4yMi4wJworKyMgQnVkZ2llIG5lZWRzIGEgbWluaW11bSAzLjI0IEdOT01FIHN0YWNrCisrZ25v bWVfbWluaW11bV92ZXJzaW9uID0gJz49IDMuMjQuMCcKKyAKKyBkZXBfZ3RrMyA9IGRlcGVuZGVu Y3koJ2d0aystMy4wJywgdmVyc2lvbjogZ25vbWVfbWluaW11bV92ZXJzaW9uKQorLWRlcF9nbGli ID0gZGVwZW5kZW5jeSgnZ2xpYi0yLjAnLCB2ZXJzaW9uOiAnPj0gMi40Ni4wJykKKy1kZXBfZ2lv dW5peCA9IGRlcGVuZGVuY3koJ2dpby11bml4LTIuMCcsIHZlcnNpb246ICc+PSAyLjQ2LjAnKQor LWRlcF9wZWFzID0gZGVwZW5kZW5jeSgnbGlicGVhcy0xLjAnLCB2ZXJzaW9uOiAnPj0gMS44LjAn KQorK2RlcF9nbGliID0gZGVwZW5kZW5jeSgnZ2xpYi0yLjAnLCB2ZXJzaW9uOiAnPj0gMi42Mi4w JykKKytkZXBfZ2lvdW5peCA9IGRlcGVuZGVuY3koJ2dpby11bml4LTIuMCcsIHZlcnNpb246ICc+ PSAyLjYyLjAnKQorK2RlcF9wZWFzID0gZGVwZW5kZW5jeSgnbGlicGVhcy0xLjAnLCB2ZXJzaW9u OiAnPj0gMS4yNC4wJykKKyBkZXBfZ2RreDExID0gZGVwZW5kZW5jeSgnZ2RrLXgxMS0zLjAnLCB2 ZXJzaW9uOiBnbm9tZV9taW5pbXVtX3ZlcnNpb24pCisgZGVwX2xpYnV1aWQgPSBkZXBlbmRlbmN5 KCd1dWlkJykKKy1kZXBfdmFsYSA9IGRlcGVuZGVuY3koJ3ZhcGlnZW4nLCB2ZXJzaW9uOiAnPj0g MC40MC4wJykKKytkZXBfdmFsYSA9IGRlcGVuZGVuY3koJ3ZhcGlnZW4nLCB2ZXJzaW9uOiAnPj0g MC40Ni4wJykKKyAKKyAjIE5lZWRlZCBmb3Iga2V5Ym9hcmR5IGJpdHMKKyBkZXBfaWJ1cyA9IGRl cGVuZGVuY3koJ2lidXMtMS4wJywgdmVyc2lvbjogJz49IDEuNS4xMCcpCitAQCAtNTEsMTAgKzUx LDEwIEBAIGRlcF9nc2V0dGluZ3MgPSBkZXBlbmRlbmN5KCdnc2V0dGluZ3MtZGVza3RvcC1zY2hl bWFzJywgdmVyc2lvbjogZ25vbWVfbWluaW11bV92CisgZGVwX2dzZCA9IGRlcGVuZGVuY3koJ2du b21lLXNldHRpbmdzLWRhZW1vbicsIHZlcnNpb246ICc+PTMuMjguMCcpCisgCisgIyB3bmNrIHVz ZWQgYWxsIG92ZXIgdGhlIHBsYWNlLi4KKy1kZXBfd25jayA9IGRlcGVuZGVuY3koJ2xpYnduY2st My4wJywgdmVyc2lvbjogJz49IDMuMTQuMCcpCisrZGVwX3duY2sgPSBkZXBlbmRlbmN5KCdsaWJ3 bmNrLTMuMCcsIHZlcnNpb246ICc+PSAzLjMyLjAnKQorIAorICMgYWNjb3VudHNzZXJ2aWNlIGlu IG11bHRpcGxlIGFwcGxldHMKKy1kZXBfYWNjb3VudHNzZXJ2aWNlID0gZGVwZW5kZW5jeSgnYWNj b3VudHNzZXJ2aWNlJywgdmVyc2lvbjogJz49IDAuNi40MCcpCisrZGVwX2FjY291bnRzc2Vydmlj ZSA9IGRlcGVuZGVuY3koJ2FjY291bnRzc2VydmljZScsIHZlcnNpb246ICc+PSAwLjYuNTUnKQor IAorICMgQ3JlYXRlIGNvbmZpZy5oCisgY2RhdGEgPSBjb25maWd1cmF0aW9uX2RhdGEoKQorZGlm ZiAtLWdpdCBtZXNvbl9vcHRpb25zLnR4dCBtZXNvbl9vcHRpb25zLnR4dAoraW5kZXggZDcxYjA5 YjUuLmRjYTkxMjk2IDEwMDY0NAorLS0tIG1lc29uX29wdGlvbnMudHh0CisrKysgbWVzb25fb3B0 aW9ucy50eHQKK0BAIC0xLDUgKzEsNCBAQAorIG9wdGlvbignd2l0aC1zdGF0ZWxlc3MnLCB0eXBl OiAnYm9vbGVhbicsIHZhbHVlOiBmYWxzZSwgZGVzY3JpcHRpb246ICdFbmFibGUgc3RhdGVsZXNz IFhERyBwYXRocycpCisgb3B0aW9uKCd3aXRoLXBvbGtpdCcsIHR5cGU6ICdib29sZWFuJywgdmFs dWU6IHRydWUsIGRlc2NyaXB0aW9uOiAnRW5hYmxlIFBvbEtpdCBzdXBwb3J0JykKKy1vcHRpb24o J3dpdGgtYmx1ZXRvb3RoJywgdHlwZTogJ2Jvb2xlYW4nLCB2YWx1ZTogdHJ1ZSwgZGVzY3JpcHRp b246ICdFbmFibGUgZ25vbWUtYmx1ZXRvb3RoIHN1cHBvcnQnKQorIG9wdGlvbignd2l0aC1ndGst ZG9jJywgdHlwZTogJ2Jvb2xlYW4nLCB2YWx1ZTogdHJ1ZSwgZGVzY3JpcHRpb246ICdCdWlsZCBn dGstZG9jIGRvY3VtZW50YXRpb24nKQorIG9wdGlvbignd2l0aC1kZXNrdG9wLWljb25zJywgdHlw ZTogJ2NvbWJvJywgY2hvaWNlczogWyduYXV0aWx1cycsICdub25lJ10sIHZhbHVlOiAnbmF1dGls dXMnLCBkZXNjcmlwdGlvbjogJ0Rlc2t0b3AgaWNvbiBoYW5kbGluZycpCitkaWZmIC0tZ2l0IHNy Yy9hcHBsZXRzL3N0YXR1cy9TdGF0dXNBcHBsZXQudmFsYSBzcmMvYXBwbGV0cy9zdGF0dXMvU3Rh dHVzQXBwbGV0LnZhbGEKK2luZGV4IGI5ODI2Mzk0Li43MWYyODdjOSAxMDA2NDQKKy0tLSBzcmMv YXBwbGV0cy9zdGF0dXMvU3RhdHVzQXBwbGV0LnZhbGEKKysrKyBzcmMvYXBwbGV0cy9zdGF0dXMv U3RhdHVzQXBwbGV0LnZhbGEKK0BAIC0yMCw5ICsyMCw3IEBAIHB1YmxpYyBjbGFzcyBTdGF0dXNB cHBsZXQgOiBCdWRnaWUuQXBwbGV0CisgeworIAorICAgICBwcm90ZWN0ZWQgR3RrLkJveCB3aWRn ZXQ7CistI2lmIFdJVEhfQkxVRVRPT1RICisgICAgIHByb3RlY3RlZCBCbHVldG9vdGhJbmRpY2F0 b3IgYmx1ZTsKKy0jZW5kaWYKKyAgICAgcHJvdGVjdGVkIFNvdW5kSW5kaWNhdG9yIHNvdW5kOwor ICAgICBwcm90ZWN0ZWQgUG93ZXJJbmRpY2F0b3IgcG93ZXI7CisgICAgIHByb3RlY3RlZCBHdGsu RXZlbnRCb3g/IHdyYXA7CitAQCAtNjgsMTIgKzY2LDEwIEBAIHB1YmxpYyBjbGFzcyBTdGF0dXNB cHBsZXQgOiBCdWRnaWUuQXBwbGV0CisgICAgICAgICB0aGlzLnNldHVwX3BvcG92ZXIocG93ZXIu ZWJveCwgcG93ZXIucG9wb3Zlcik7CisgICAgICAgICB0aGlzLnNldHVwX3BvcG92ZXIoc291bmQu ZWJveCwgc291bmQucG9wb3Zlcik7CisgCistI2lmIFdJVEhfQkxVRVRPT1RICisgICAgICAgICBi bHVlID0gbmV3IEJsdWV0b290aEluZGljYXRvcigpOworICAgICAgICAgd2lkZ2V0LnBhY2tfc3Rh cnQoYmx1ZSwgZmFsc2UsIGZhbHNlLCAyKTsKKyAgICAgICAgIGJsdWUuc2hvd19hbGwoKTsKKyAg ICAgICAgIHRoaXMuc2V0dXBfcG9wb3ZlcihibHVlLmVib3gsIGJsdWUucG9wb3Zlcik7CistI2Vu ZGlmCisgICAgIH0KKyAKKyAgICAgcHVibGljIG92ZXJyaWRlIHZvaWQgcGFuZWxfcG9zaXRpb25f Y2hhbmdlZChCdWRnaWUuUGFuZWxQb3NpdGlvbiBwb3NpdGlvbikKK0BAIC05MSw5ICs4Nyw3IEBA IHB1YmxpYyBjbGFzcyBTdGF0dXNBcHBsZXQgOiBCdWRnaWUuQXBwbGV0CisgICAgICAgICB0aGlz Lm1hbmFnZXIgPSBtYW5hZ2VyOworICAgICAgICAgbWFuYWdlci5yZWdpc3Rlcl9wb3BvdmVyKHBv d2VyLmVib3gsIHBvd2VyLnBvcG92ZXIpOworICAgICAgICAgbWFuYWdlci5yZWdpc3Rlcl9wb3Bv dmVyKHNvdW5kLmVib3gsIHNvdW5kLnBvcG92ZXIpOworLSNpZiBXSVRIX0JMVUVUT09USAorICAg ICAgICAgbWFuYWdlci5yZWdpc3Rlcl9wb3BvdmVyKGJsdWUuZWJveCwgYmx1ZS5wb3BvdmVyKTsK Ky0jZW5kaWYKKyAgICAgfQorIH0gLy8gRW5kIGNsYXNzCisgCitkaWZmIC0tZ2l0IHNyYy9hcHBs ZXRzL3N0YXR1cy9tZXNvbi5idWlsZCBzcmMvYXBwbGV0cy9zdGF0dXMvbWVzb24uYnVpbGQKK2lu ZGV4IDY5OWZiOGY0Li5iNGQyNzA2YyAxMDA2NDQKKy0tLSBzcmMvYXBwbGV0cy9zdGF0dXMvbWVz b24uYnVpbGQKKysrKyBzcmMvYXBwbGV0cy9zdGF0dXMvbWVzb24uYnVpbGQKK0BAIC0xMCw2ICsx MCw3IEBAIGN1c3RvbV90YXJnZXQoJ3BsdWdpbi1maWxlLXN0YXR1cycsCisgICAgIGluc3RhbGxf ZGlyIDogYXBwbGV0X3N0YXR1c19kaXIpCisgCisgYXBwbGV0X3N0YXR1c19zb3VyY2VzID0gWwor KyAgICAnQmx1ZXRvb3RoSW5kaWNhdG9yLnZhbGEnLAorICAgICAnU3RhdHVzQXBwbGV0LnZhbGEn LAorICAgICAnUG93ZXJJbmRpY2F0b3IudmFsYScsCisgICAgICdTb3VuZEluZGljYXRvci52YWxh JywKK0BAIC0yMCwyMiArMjEsMTMgQEAgYXBwbGV0X3N0YXR1c19kZXBzID0gWworICAgICBkZXBf Z3RrMywKKyAgICAgZGVwX3BlYXMsCisgICAgIGRlcF9hY2NvdW50c3NlcnZpY2UsCisrICAgIGRl cGVuZGVuY3koJ2dub21lLWJsdWV0b290aC0xLjAnLCB2ZXJzaW9uOiBnbm9tZV9taW5pbXVtX3Zl cnNpb24pLAorICAgICBkZXBlbmRlbmN5KCd1cG93ZXItZ2xpYicsIHZlcnNpb246ICc+PSAwLjk5 LjAnKSwKKyAgICAgbGlua19saWJwbHVnaW4sCisgICAgIGd2Yy5nZXRfdmFyaWFibGUoJ2xpYmd2 Y19kZXAnKSwKKyAgICAgbWVzb24uZ2V0X2NvbXBpbGVyKCdjJykuZmluZF9saWJyYXJ5KCdtJywg cmVxdWlyZWQ6IGZhbHNlKSwKKyBdCisgCistIyBCbHVldG9vdGggaXMgb3B0aW9uYWwgdG8gYWxs b3cgc21hbGxlciBidWlsZHMKKy13aXRoX2JsdWV0b290aCA9IGdldF9vcHRpb24oJ3dpdGgtYmx1 ZXRvb3RoJykKKy1hcHBsZXRfc3RhdHVzX3ZhbGFfYXJncyA9IFtdCistCistaWYgd2l0aF9ibHVl dG9vdGggPT0gdHJ1ZQorLSAgICBhcHBsZXRfc3RhdHVzX2RlcHMgKz0gZGVwZW5kZW5jeSgnZ25v bWUtYmx1ZXRvb3RoLTEuMCcsIHZlcnNpb246IGdub21lX21pbmltdW1fdmVyc2lvbikKKy0gICAg YXBwbGV0X3N0YXR1c19zb3VyY2VzICs9ICdCbHVldG9vdGhJbmRpY2F0b3IudmFsYScKKy0gICAg YXBwbGV0X3N0YXR1c192YWxhX2FyZ3MgKz0gWyctRCcsICdXSVRIX0JMVUVUT09USCddCistZW5k aWYKKy0KKyBzaGFyZWRfbGlicmFyeSgKKyAgICAgJ3N0YXR1c2FwcGxldCcsCisgICAgIGFwcGxl dF9zdGF0dXNfc291cmNlcywKK0BAIC01MCw3ICs0Miw2IEBAIHNoYXJlZF9saWJyYXJ5KAorICAg ICAgICAgJy0tcGtnJywgJ2d2Yy0xLjAnLAorICAgICAgICAgJy0tcGtnJywgJ2dpby11bml4LTIu MCcsCisgICAgICAgICAnLS12YXBpZGlyJywgam9pbl9wYXRocyhtZXNvbi5zb3VyY2Vfcm9vdCgp LCAndmFwaScpLAorLSAgICAgICAgYXBwbGV0X3N0YXR1c192YWxhX2FyZ3MsCisgICAgIF0sCisg ICAgIGluc3RhbGw6IHRydWUsCisgICAgIGluc3RhbGxfZGlyOiBhcHBsZXRfc3RhdHVzX2RpciwK K2RpZmYgLS1naXQgc3JjL3dtL2JhY2tncm91bmQudmFsYSBzcmMvd20vYmFja2dyb3VuZC52YWxh CitpbmRleCAwODRhYTlhYi4uYjMzMWUwYzQgMTAwNjQ0CistLS0gc3JjL3dtL2JhY2tncm91bmQu dmFsYQorKysrIHNyYy93bS9iYWNrZ3JvdW5kLnZhbGEKK0BAIC0yMDQsOCArMjA0LDEzIEBAIHB1 YmxpYyBjbGFzcyBCdWRnaWVCYWNrZ3JvdW5kIDogQ2x1dHRlci5BY3RvcgorIAorICAgICAgICAg dmFyIGFjdG9yID0gbmV3IE1ldGEuQmFja2dyb3VuZEFjdG9yKGRpc3BsYXksIGluZGV4KTsKKyAg ICAgICAgIHZhciBiYWNrZ3JvdW5kID0gbmV3IE1ldGEuQmFja2dyb3VuZChkaXNwbGF5KTsKKysj aWYgSEFWRV9NVVRURVJfNgorICAgICAgICAgYWN0b3Iuc2V0X2JhY2tncm91bmQoYmFja2dyb3Vu ZCk7CistCisrI2Vsc2UKKysgICAgICAgIHZhciBjb250ZW50ID0gYWN0b3IuZ2V0X2NvbnRlbnQo KTsKKysgICAgICAgIHVub3duZWQgTWV0YS5CYWNrZ3JvdW5kQ29udGVudCBiYWNrZ3JvdW5kX2Nv bnRlbnQgPSAoTWV0YS5CYWNrZ3JvdW5kQ29udGVudCkgY29udGVudDsKKysgICAgICAgIGJhY2tn cm91bmRfY29udGVudC5zZXRfYmFja2dyb3VuZChiYWNrZ3JvdW5kKTsKKysjZW5kaWYKKyAgICAg ICAgIHJlY3QgPSBkaXNwbGF5LmdldF9tb25pdG9yX2dlb21ldHJ5KGluZGV4KTsKKyAgICAgICAg IGFjdG9yLnNldF9zaXplKHJlY3Qud2lkdGgsIHJlY3QuaGVpZ2h0KTsKKyAgICAgICAgIGFjdG9y LnNldCgib3BhY2l0eSIsIDApOworQEAgLTIyMSwxMyArMjI2LDIxIEBAIHB1YmxpYyBjbGFzcyBC dWRnaWVCYWNrZ3JvdW5kIDogQ2x1dHRlci5BY3RvcgorICAgICAgICAgc2hhZGluZ19kaXJlY3Rp b24gPSAoR0Rlc2t0b3AuQmFja2dyb3VuZFNoYWRpbmcpc2V0dGluZ3MuZ2V0X2VudW0oQ09MT1Jf U0hBRElOR19UWVBFX0tFWSk7CisgICAgICAgICB2YXIgY29sb3Jfc3RyID0gc2V0dGluZ3MuZ2V0 X3N0cmluZyhQUklNQVJZX0NPTE9SX0tFWSk7CisgICAgICAgICBpZiAoY29sb3Jfc3RyICE9IG51 bGwgJiYgY29sb3Jfc3RyICE9ICIiKSB7CisrI2lmIEhBVkVfTVVUVEVSXzYKKyAgICAgICAgICAg ICBwcmltYXJ5X2NvbG9yID0gQ2x1dHRlci5Db2xvci5mcm9tX3N0cmluZyhjb2xvcl9zdHIpOwor KyNlbHNlCisrICAgICAgICAgICAgQ2x1dHRlci5Db2xvci5mcm9tX3N0cmluZyhvdXQgcHJpbWFy eV9jb2xvciwgY29sb3Jfc3RyKTsKKysjZW5kaWYKKyAgICAgICAgICAgICBjb2xvcl9zdHIgPSBu dWxsOworICAgICAgICAgfQorIAorICAgICAgICAgY29sb3Jfc3RyID0gc2V0dGluZ3MuZ2V0X3N0 cmluZyhTRUNPTkRBUllfQ09MT1JfS0VZKTsKKyAgICAgICAgIGlmIChjb2xvcl9zdHIgIT0gbnVs bCAmJiBjb2xvcl9zdHIgIT0gIiIpIHsKKysjaWYgSEFWRV9NVVRURVJfNgorICAgICAgICAgICAg IHNlY29uZGFyeV9jb2xvciA9IENsdXR0ZXIuQ29sb3IuZnJvbV9zdHJpbmcoY29sb3Jfc3RyKTsK KysjZWxzZQorKyAgICAgICAgICAgIENsdXR0ZXIuQ29sb3IuZnJvbV9zdHJpbmcob3V0IHNlY29u ZGFyeV9jb2xvciwgY29sb3Jfc3RyKTsKKysjZW5kaWYKKyAgICAgICAgICAgICBjb2xvcl9zdHIg PSBudWxsOworICAgICAgICAgfQorIAorZGlmZiAtLWdpdCBzcmMvd20vbWVzb24uYnVpbGQgc3Jj L3dtL21lc29uLmJ1aWxkCitpbmRleCBlMzliODY3OC4uNTgzY2U3OTAgMTAwNjQ0CistLS0gc3Jj L3dtL21lc29uLmJ1aWxkCisrKysgc3JjL3dtL21lc29uLmJ1aWxkCitAQCAtMTcsMjAgKzE3LDE4 IEBAIGJ1ZGdpZV93bV9zb3VyY2VzID0gWworIAorIGJ1ZGdpZV93bV9zdGF0dXNfdmFsYV9hcmdz ID0gW10KKyAKKy12YXBpX211dHRlciA9ICdsaWJtdXR0ZXItMycKKy1kZXBfbXV0dGVyID0gZGVw ZW5kZW5jeSgnbGlibXV0dGVyLTMnLCB2ZXJzaW9uOiBnbm9tZV9taW5pbXVtX3ZlcnNpb24sIHJl cXVpcmVkOiBmYWxzZSkKKy1pZiBub3QgZGVwX211dHRlci5mb3VuZCgpCistICAgIGRlcF9tdXR0 ZXIgPSBkZXBlbmRlbmN5KCdsaWJtdXR0ZXItNCcsIHZlcnNpb246IGdub21lX21pbmltdW1fdmVy c2lvbiwgcmVxdWlyZWQ6IGZhbHNlKQorK2RlcF9ncmFwaGVuZSA9IGRlcGVuZGVuY3koJ2dyYXBo ZW5lLWdvYmplY3QtMS4wJywgdmVyc2lvbjogJz49IDEuMTAnKQorK2RlcF9tdXR0ZXIgPSBkZXBl bmRlbmN5KCdsaWJtdXR0ZXItNycsIHZlcnNpb246IGdub21lX21pbmltdW1fdmVyc2lvbiwgcmVx dWlyZWQ6IGZhbHNlKQorK2lmIGRlcF9tdXR0ZXIuZm91bmQoKQorKyAgICBidWRnaWVfd21fc3Rh dHVzX3ZhbGFfYXJncyArPSBbJy1EJywgJ0hBVkVfTVVUVEVSXzcnXQorKyAgICBtZXNzYWdlKCdV c2luZyBuZXcgbGlibXV0dGVyLTcgQUJJIGZyb20gR05PTUUgMy4zOCcpCisrICAgIHZhcGlfbXV0 dGVyID0gJ2xpYm11dHRlci03JworK2Vsc2UKKysgICAgZGVwX211dHRlciA9IGRlcGVuZGVuY3ko J2xpYm11dHRlci02JywgdmVyc2lvbjogZ25vbWVfbWluaW11bV92ZXJzaW9uKQorKyAgICBidWRn aWVfd21fc3RhdHVzX3ZhbGFfYXJncyArPSBbJy1EJywgJ0hBVkVfTVVUVEVSXzYnXQorICAgICBp ZiBkZXBfbXV0dGVyLmZvdW5kKCkKKy0gICAgICAgIG1lc3NhZ2UoJ1VzaW5nIG5ldyBsaWJtdXR0 ZXItNCBBQkkgZnJvbSBHTk9NRSAzLjMyJykKKy0gICAgICAgIHZhcGlfbXV0dGVyID0gJ2xpYm11 dHRlci00JworLSAgICBlbHNlCistICAgICAgICBkZXBfbXV0dGVyID0gZGVwZW5kZW5jeSgnbGli bXV0dGVyLTUnLCB2ZXJzaW9uOiBnbm9tZV9taW5pbXVtX3ZlcnNpb24pCistICAgICAgICBpZiBk ZXBfbXV0dGVyLmZvdW5kKCkKKy0gICAgICAgICAgICBtZXNzYWdlKCdVc2luZyBuZXcgbGlibXV0 dGVyLTUgQUJJIGZyb20gR05PTUUgMy4zNCcpCistICAgICAgICAgICAgdmFwaV9tdXR0ZXIgPSAn bGlibXV0dGVyLTUnCistICAgICAgICAgICAgYnVkZ2llX3dtX3N0YXR1c192YWxhX2FyZ3MgKz0g WyctRCcsICdIQVZFX01VVFRFUl81J10KKy0gICAgICAgIGVuZGlmCisrICAgICAgICBtZXNzYWdl KCdVc2luZyBuZXcgbGlibXV0dGVyLTYgQUJJIGZyb20gR05PTUUgMy4zNicpCisrICAgICAgICB2 YXBpX211dHRlciA9ICdsaWJtdXR0ZXItNicKKyAgICAgZW5kaWYKKyBlbmRpZgorIAorQEAgLTQy LDggKzQwLDggQEAgYnVkZ2llX3dtX2RlcHMgPSBbCisgICAgIGRlcF9pYnVzLAorIF0KKyAKKy1p ZiBkZXBfZ3NkLnZlcnNpb24oKS52ZXJzaW9uX2NvbXBhcmUoJz49My4zMS45MScpCistICAgIGJ1 ZGdpZV93bV9zdGF0dXNfdmFsYV9hcmdzICs9IFsnLUQnLCAnSEFWRV9HU0RfMzMyJ10KKytpZiBk ZXBfZ3NkLnZlcnNpb24oKS52ZXJzaW9uX2NvbXBhcmUoJz49My4zNi4wJykKKysgICAgYnVkZ2ll X3dtX3N0YXR1c192YWxhX2FyZ3MgKz0gWyctRCcsICdIQVZFX0dTRF9TVVBQT1JURUQnXQorIGVu ZGlmCisgCisgYnVkZ2llX3dtX3ZhbGFfYXJncyA9ICBbCitAQCAtNjAsNyArNTgsNyBAQCBidWRn aWVfd21fdmFsYV9hcmdzID0gIFsKKyAKKyBycGF0aCA9ICcnCisgCistaWYgZGVwX211dHRlci52 ZXJzaW9uKCkudmVyc2lvbl9jb21wYXJlKCc+PTMuMjguMCcpCisraWYgZGVwX211dHRlci52ZXJz aW9uKCkudmVyc2lvbl9jb21wYXJlKCc+PTMuMzYuMCcpCisgICAgIHJwYXRoID0gZGVwX211dHRl ci5nZXRfcGtnY29uZmlnX3ZhcmlhYmxlKCd0eXBlbGliZGlyJykKKyAgICAgYnVkZ2llX3dtX3Zh bGFfYXJncyArPSBbJy0tZ2lyZGlyJywgcnBhdGhdCisgZW5kaWYKK2RpZmYgLS1naXQgc3JjL3dt L3NoaW0udmFsYSBzcmMvd20vc2hpbS52YWxhCitpbmRleCA0Y2RmYTBiMC4uZmMyNGIyODkgMTAw NjQ0CistLS0gc3JjL3dtL3NoaW0udmFsYQorKysrIHNyYy93bS9zaGltLnZhbGEKK0BAIC0xNCw3 ICsxNCw3IEBAIG5hbWVzcGFjZSBCdWRnaWUgeworIHB1YmxpYyBzdHJ1Y3QgR3NkQWNjZWwgewor ICAgICBzdHJpbmcgYWNjZWxlcmF0b3I7CisgICAgIHVpbnQgZmxhZ3M7CistI2lmIEhBVkVfR1NE XzMzMgorKyNpZiBIQVZFX0dTRF9TVVBQT1JURUQKKyAgICAgTWV0YS5LZXlCaW5kaW5nRmxhZ3Mg Z3JhYl9mbGFnczsKKyAjZW5kaWYKKyB9CitAQCAtMTkzLDExICsxOTMsNyBAQCBwdWJsaWMgY2xh c3MgU2hlbGxTaGltIDogR0xpYi5PYmplY3QKKyAgICAgICAgIG9zZF9wcm94eSA9IG51bGw7Cisg ICAgIH0KKyAKKy0jaWYgSEFWRV9NVVRURVJfNQorICAgICBwcml2YXRlIHZvaWQgb25fYWNjZWxl cmF0b3JfYWN0aXZhdGVkKHVpbnQgYWN0aW9uLCBDbHV0dGVyLklucHV0RGV2aWNlIGRldiwgdWlu dCBkZXZpY2VfaWQpCistI2Vsc2UKKy0gICAgcHJpdmF0ZSB2b2lkIG9uX2FjY2VsZXJhdG9yX2Fj dGl2YXRlZCh1aW50IGFjdGlvbiwgdWludCBkZXZpY2VfaWQpCistI2VuZGlmCisgICAgIHsKKyAg ICAgICAgIEhhc2hUYWJsZTxzdHJpbmcsVmFyaWFudD4gcGFyYW1zID0gbmV3IEhhc2hUYWJsZTxz dHJpbmcsVmFyaWFudD4oc3RyX2hhc2gsIHN0cl9lcXVhbCk7CisgCitAQCAtMjMwLDcgKzIyNiw3 IEBAIHB1YmxpYyBjbGFzcyBTaGVsbFNoaW0gOiBHTGliLk9iamVjdAorICAgICAgICAgfQorICAg ICB9CisgCistI2lmIEhBVkVfR1NEXzMzMgorKyNpZiBIQVZFX0dTRF9TVVBQT1JURUQKKyAgICAg cHJpdmF0ZSB1aW50IF9ncmFiKHN0cmluZyBzZW5kZXIsIHN0cmluZyBzZXEsIHVpbnQgZmxhZywg TWV0YS5LZXlCaW5kaW5nRmxhZ3MgZ3JhYl9mbGFncykKKyAgICAgeworICAgICAgICAgdmFyIHJl dCA9IGRpc3BsYXkuZ3JhYl9hY2NlbGVyYXRvcihzZXEsIGdyYWJfZmxhZ3MpOworQEAgLTI3Myw3 ICsyNjksNyBAQCBwdWJsaWMgY2xhc3MgU2hlbGxTaGltIDogR0xpYi5PYmplY3QKKyAgICAgICAg ICAgICBvbl9idXNfYWNxdWlyZWQsIG51bGwsIG51bGwpOworICAgICB9CisgCistI2lmIEhBVkVf R1NEXzMzMgorKyNpZiBIQVZFX0dTRF9TVVBQT1JURUQKKyAgICAgcHVibGljIHVpbnQgR3JhYkFj Y2VsZXJhdG9yKEJ1c05hbWUgc2VuZGVyLCBzdHJpbmcgYWNjZWxlcmF0b3IsIHVpbnQgZmxhZ3Ms IE1ldGEuS2V5QmluZGluZ0ZsYWdzIGdyYWJfZmxhZ3MpCisgICAgIHsKKyAgICAgICAgIHJldHVy biBfZ3JhYihzZW5kZXIsIGFjY2VsZXJhdG9yLCBmbGFncywgZ3JhYl9mbGFncyk7CitkaWZmIC0t Z2l0IHNyYy93bS93bS52YWxhIHNyYy93bS93bS52YWxhCitpbmRleCBmZWU4OTQ0My4uYmNjZjNi OTUgMTAwNjQ0CistLS0gc3JjL3dtL3dtLnZhbGEKKysrKyBzcmMvd20vd20udmFsYQorQEAgLTEz Nyw4ICsxMzcsOCBAQCBwdWJsaWMgY2xhc3MgQnVkZ2llV00gOiBNZXRhLlBsdWdpbgorICAgICBw dWJsaWMgc3RhdGljIHN0cmluZ1tdPyBvbGRfYXJnczsKKyAgICAgcHVibGljIHN0YXRpYyBib29s IHdheWxhbmQgPSBmYWxzZTsKKyAKKy0gICAgc3RhdGljIENsdXR0ZXIuUG9pbnQgUFZfQ0VOVEVS OworLSAgICBzdGF0aWMgQ2x1dHRlci5Qb2ludCBQVl9OT1JNOworKyAgICBzdGF0aWMgR3JhcGhl bmUuUG9pbnQgUFZfQ0VOVEVSOworKyAgICBzdGF0aWMgR3JhcGhlbmUuUG9pbnQgUFZfTk9STTsK KyAKKyAgICAgcHJpdmF0ZSBNZXRhLkJhY2tncm91bmRHcm91cD8gYmFja2dyb3VuZF9ncm91cDsK KyAKK0BAIC0xNzEsMTAgKzE3MSwxMCBAQCBwdWJsaWMgY2xhc3MgQnVkZ2llV00gOiBNZXRhLlBs dWdpbgorICAgICAgICAgICAgIGxpY2Vuc2UgPSAiR1BMLTIuMCIsCisgICAgICAgICAgICAgZGVz Y3JpcHRpb24gPSAiQnVkZ2llIFdpbmRvdyBNYW5hZ2VyIgorICAgICAgICAgfTsKKy0gICAgICAg IFBWX0NFTlRFUiA9IENsdXR0ZXIuUG9pbnQuYWxsb2MoKTsKKysgICAgICAgIFBWX0NFTlRFUiA9 IEdyYXBoZW5lLlBvaW50KCk7CisrICAgICAgICBQVl9OT1JNID0gR3JhcGhlbmUuUG9pbnQoKTsK KyAgICAgICAgIFBWX0NFTlRFUi54ID0gMC41ZjsKKyAgICAgICAgIFBWX0NFTlRFUi55ID0gMC41 ZjsKKy0gICAgICAgIFBWX05PUk0gPSBDbHV0dGVyLlBvaW50LmFsbG9jKCk7CisgICAgICAgICBQ Vl9OT1JNLnggPSAwLjBmOworICAgICAgICAgUFZfTk9STS55ID0gMC4wZjsKKyAgICAgfQorQEAg LTEwMDEsNyArMTAwMSw3IEBAIHB1YmxpYyBjbGFzcyBCdWRnaWVXTSA6IE1ldGEuUGx1Z2luCisg ICAgICAgICB0aWxlX3ByZXZpZXcuc2V0KCJzY2FsZS14IiwgTk9USUZJQ0FUSU9OX01BUF9TQ0FM RV9YLCAic2NhbGUteSIsIE5PVElGSUNBVElPTl9NQVBfU0NBTEVfWSwKKyAgICAgICAgICAgICAi cGl2b3QtcG9pbnQiLCBQVl9DRU5URVIpOworIAorLSAgICAgICAgdGlsZV9wcmV2aWV3Lmxvd2Vy KHdpbl9hY3Rvcik7CisrICAgICAgICAvL3RpbGVfcHJldmlldy5sb3dlcih3aW5fYWN0b3IpOwor ICAgICAgICAgdGlsZV9wcmV2aWV3LnRpbGVfcmVjdCA9IHRpbGVfcmVjdDsKKyAKKyAgICAgICAg IHRpbGVfcHJldmlldy5zaG93KCk7CitkaWZmIC0tZ2l0IHZhcGkvQ2x1dHRlci01Lm1ldGFkYXRh IHZhcGkvQ2x1dHRlci02Lm1ldGFkYXRhCitzaW1pbGFyaXR5IGluZGV4IDEwMCUKK3JlbmFtZSBm cm9tIHZhcGkvQ2x1dHRlci01Lm1ldGFkYXRhCityZW5hbWUgdG8gdmFwaS9DbHV0dGVyLTYubWV0 YWRhdGEKK2RpZmYgLS1naXQgdmFwaS9DbHV0dGVyLTQubWV0YWRhdGEgdmFwaS9DbHV0dGVyLTcu bWV0YWRhdGEKK3NpbWlsYXJpdHkgaW5kZXggNzglCityZW5hbWUgZnJvbSB2YXBpL0NsdXR0ZXIt NC5tZXRhZGF0YQorcmVuYW1lIHRvIHZhcGkvQ2x1dHRlci03Lm1ldGFkYXRhCitpbmRleCA1YzIx MmU4NS4uMTg1NTI3NGQgMTAwNjQ0CistLS0gdmFwaS9DbHV0dGVyLTQubWV0YWRhdGEKKysrKyB2 YXBpL0NsdXR0ZXItNy5tZXRhZGF0YQorQEAgLTEsMTMgKzEsMTAgQEAKKyAvLyBOb24gbWluaS1v YmplY3QKKyBBY3RvckJveCBzdHJ1Y3QKKyBDb2xvciBzdHJ1Y3QKKy1Gb2cgc3RydWN0CistR2Vv bWV0cnkgc3RydWN0CisgS25vdCBzdHJ1Y3QKKyBQYXRoTm9kZSBzdHJ1Y3QKKyBQZXJzcGVjdGl2 ZSBzdHJ1Y3QKKyBVbml0cyBzdHJ1Y3QKKy1WZXJ0ZXggc3RydWN0CisgCisgKi5yZWYgdW5vd25l ZAorIAorQEAgLTE3LDcgKzE0LDYgQEAgaW5pdF93aXRoX2FyZ3MKKyBBY3RvcgorIAkuYXBwbHlf dHJhbnNmb3JtLm1hdHJpeCByZWYKKyAJLmdldF9hYnNfYWxsb2NhdGlvbl92ZXJ0aWNlcy52ZXJ0 cyBvdXQ9ZmFsc2UKKy0JLmdldF9hbGxvY2F0aW9uX3ZlcnRpY2VzLnZlcnRzIG91dD1mYWxzZQor IENhbnZhcworIAkubmV3IHN5bWJvbF90eXBlPSJjb25zdHJ1Y3RvciIKKyBFdmVudC50eXBlI21l dGhvZCBuYW1lPSJnZXRfdHlwZSIKK0BAIC0yNyw3ICsyMyw2IEBAIEltYWdlCisgLy8gPz8/Cisg QWN0b3IuaGFzX3BvaW50ZXIjbWV0aG9kIG5hbWU9ImdldF9oYXNfcG9pbnRlciIKKyBJbml0RXJy b3IgZXJyb3Jkb21haW49ZmFsc2UKKy1yZWRyYXcgc2tpcAorIAorIC8vIE5vdCBhbGwgYmFja2lu ZyBzeW1ib2xzIGFyZSBkZXByZWNhdGVkCisgQWN0b3IucGljayBkZXByZWNhdGVkPWZhbHNlCitA QCAtNTUsNyArNTAsNiBAQCBDb250YWluZXIKKyAJLmxvd2VyIHZpcnR1YWwKKyAJLnJhaXNlIHZp cnR1YWwKKyAJLipfY2hpbGRfbWV0YSN2aXJ0dWFsX21ldGhvZCB2aXJ0dWFsCistCS5mb3JlYWNo X3dpdGhfaW50ZXJuYWxzI3ZpcnR1YWxfbWV0aG9kIHZpcnR1YWwKKyAKKyAvLyBEZWZhdWx0IHZh bHVlcworIENvbnRhaW5lcgorQEAgLTcwLDMyICs2NCwyMSBAQCBUZXh0CisgLy8gUmVwYXJlbnRl ZCBmdW5jcyBtZXRob2RzIGNhbid0IGJlIGluc3RhbmNlIG1ldGhvZHMKKyBmZWF0dXJlX2F2YWls YWJsZSBza2lwCisgZmVhdHVyZV9nZXRfYWxsIHNraXAKKy1GZWF0dXJlRmxhZ3MudGV4dHVyZV9u cG90IHNraXAKKyAKKyAvLyBTa2lwcGVkIGJ5IGctaSBmb3IgdW5rbm93biByZWFzb25zCisgTGF5 b3V0TWFuYWdlcgorIAkuY3JlYXRlX2NoaWxkX21ldGEgc2tpcD1mYWxzZQorLU1vZGVsCistCS5p bnNlcnRfcm93IHNraXA9ZmFsc2UKKyAKKyAvLyBWYXJpYWRpYyBhcmd1bWVudHMKKy1BY3Rvcgor LQkuYW5pbWF0ZSBza2lwPWZhbHNlCistCS5hbmltYXRlX3dpdGhfYWxwaGEgc2tpcD1mYWxzZQor LQkuYW5pbWF0ZV93aXRoX3RpbWVsaW5lIHNraXA9ZmFsc2UKKy1BbmltYXRvcgorLQkuc2V0IHNr aXA9ZmFsc2UKKyBCb3gKKyAJLnBhY2sgc2tpcD1mYWxzZQorIAkucGFja19hZnRlciBza2lwPWZh bHNlCisgCS5wYWNrX2F0IHNraXA9ZmFsc2UKKyAJLnBhY2tfYmVmb3JlIHNraXA9ZmFsc2UKKyBD b250YWluZXIKKy0JLmFkZF92YWxpc3Qgc2tpcD1mYWxzZQorIAkuY2hpbGRfZ2V0IHNraXA9ZmFs c2UKKyAJLmNoaWxkX3NldCBza2lwPWZhbHNlCisgCS5yZW1vdmUgc2tpcD1mYWxzZQorLQkucmVt b3ZlX3ZhbGlzdCBza2lwPWZhbHNlCisgSW50ZXJ2YWwKKyAJLm5ldyBza2lwPWZhbHNlCisgCS5n ZXRfaW50ZXJ2YWwgc2tpcD1mYWxzZQorQEAgLTEwNSwxNSArODgsNiBAQCBJbnRlcnZhbAorIExh eW91dE1hbmFnZXIKKyAJLmNoaWxkX2dldCBza2lwPWZhbHNlCisgCS5jaGlsZF9zZXQgc2tpcD1m YWxzZQorLUxpc3RNb2RlbAorLQkubmV3IHNraXA9ZmFsc2UKKy1Nb2RlbAorLQkuYXBwZW5kIHNr aXA9ZmFsc2UKKy0JLmluc2VydCBza2lwPWZhbHNlCistCS5wcmVwZW5kIHNraXA9ZmFsc2UKKy1N b2RlbEl0ZXIKKy0JLmdldCBza2lwPWZhbHNlCistCS5zZXQgc2tpcD1mYWxzZQorIFNjcmlwdAor IAkuZ2V0X29iamVjdHMgc2tpcD1mYWxzZQorIAorQEAgLTEyMiwxNyArOTYsMTEgQEAgVGV4dHVy ZQorIAkubmV3X2Zyb21fZmlsZSB0aHJvd3M9IkNsdXR0ZXIuVGV4dHVyZUVycm9yIgorIAorIC8v IFNraXBwZWQgdXBzdHJlYW0gZm9yIHVua25vd24gcmVhc29ucworLUFscGhhLnJlZ2lzdGVyX2Z1 bmMgc2tpcD1mYWxzZQorLVRpbWVvdXRQb29sIHNraXA9ZmFsc2UKKyBJbnRlcnZhbC5yZWdpc3Rl cl9wcm9ncmVzc19mdW5jIHNraXA9ZmFsc2UKKy1mcmFtZV9zb3VyY2VfKiBza2lwPWZhbHNlCisg Z2V0X29wdGlvbl9ncm91cCBza2lwPWZhbHNlCisgZ2V0X29wdGlvbl9ncm91cF93aXRob3V0X2lu aXQgc2tpcD1mYWxzZQorLXRocmVhZHNfYWRkX2ZyYW1lX3NvdXJjZSBza2lwPWZhbHNlCistdGhy ZWFkc19hZGRfZnJhbWVfc291cmNlX2Z1bGwgc2tpcD1mYWxzZQorIHRocmVhZHNfYWRkX2lkbGUg c2tpcD1mYWxzZQorIHRocmVhZHNfYWRkX2lkbGVfZnVsbCBza2lwPWZhbHNlCistdGhyZWFkc19z ZXRfbG9ja19mdW5jdGlvbnMgc2tpcD1mYWxzZQorIHRocmVhZHNfYWRkX3RpbWVvdXQgc2tpcD1m YWxzZQorIHRocmVhZHNfYWRkX3RpbWVvdXRfZnVsbCBza2lwPWZhbHNlCisgCitAQCAtMTQzLDE1 ICsxMTEsMTIgQEAgQWN0b3JCb3gKKyBVbml0cy5mcm9tXyogc2tpcAorIENvbG9yCisgCS5uZXcg c2tpcAorLVZlcnRleC5uZXcgc2tpcAorIAorIC8vIENsYXNzIG1ldGhvZHMKKyBjb250YWluZXJf Y2xhc3NfZmluZF9jaGlsZF9wcm9wZXJ0eSBza2lwCisgY29udGFpbmVyX2NsYXNzX2xpc3RfY2hp bGRfcHJvcGVydGllcyBza2lwCisgCisgLy8gTW92ZSBzeW1ib2xzCistZ2V0X2FjdG9yX2J5X2dp ZCBwYXJlbnQ9IkNsdXR0ZXIuQWN0b3IiIG5hbWU9ImdldF9ieV9naWQiCistZ2V0X2lucHV0X2Rl dmljZV9mb3JfaWQgcGFyZW50PSJDbHV0dGVyLklucHV0RGV2aWNlIiBuYW1lPSJnZXRfZm9yX2lk IgorIHVuaXRzX2Zyb21fKiBza2lwCisgCisgLy8gQ2xhc3NlcyBtYXJrZWQgYXMgb3V0IGJ1dCBu b3QgZG91YmxlIHB0cgorQEAgLTIwMiwyMyArMTY3LDE1IEBAIFBBVEhfUkVMQVRJVkUgc2tpcD1m YWxzZQorIFBSSU9SSVRZX1JFRFJBVyBza2lwPWZhbHNlCisgCisgLy8gQ2x1dHRlciBkZXZzIGRv bid0IGxpa2UgdXMgY3JlYXRpbmcgbmVzdGVkIG5hbWVzcGFjZXMKKy1mcmFtZV9zb3VyY2VfKiBu YW1lPSJmcmFtZV9zb3VyY2VfKC4rKSIgcGFyZW50PSJDbHV0dGVyLkZyYW1lU291cmNlIgorIHZh bHVlXyogbmFtZT0idmFsdWVfKC4rKSIgcGFyZW50PSJDbHV0dGVyLlZhbHVlIgorIHRocmVhZHNf KiBuYW1lPSJ0aHJlYWRzXyguKykiIHBhcmVudD0iQ2x1dHRlci5UaHJlYWRzIgorLXRocmVhZHNf YWRkX2ZyYW1lX3NvdXJjZSBuYW1lPSJhZGQiIHBhcmVudD0iQ2x1dHRlci5UaHJlYWRzLkZyYW1l U291cmNlIgorLXRocmVhZHNfYWRkX2ZyYW1lX3NvdXJjZV9mdWxsIG5hbWU9ImFkZF9mdWxsIiBw YXJlbnQ9IkNsdXR0ZXIuVGhyZWFkcy5GcmFtZVNvdXJjZSIKKyB0aHJlYWRzX2FkZF9pZGxlIG5h bWU9ImFkZCIgcGFyZW50PSJDbHV0dGVyLlRocmVhZHMuSWRsZSIKKyB0aHJlYWRzX2FkZF9pZGxl X2Z1bGwgbmFtZT0iYWRkX2Z1bGwiIHBhcmVudD0iQ2x1dHRlci5UaHJlYWRzLklkbGUiCisgdGhy ZWFkc19hZGRfdGltZW91dCBuYW1lPSJhZGQiIHBhcmVudD0iQ2x1dHRlci5UaHJlYWRzLlRpbWVv dXQiCisgdGhyZWFkc19hZGRfdGltZW91dF9mdWxsIG5hbWU9ImFkZF9mdWxsIiBwYXJlbnQ9IkNs dXR0ZXIuVGhyZWFkcy5UaW1lb3V0IgorLXV0aWxfbmV4dF9wMiBuYW1lPSJuZXh0X3Bvd2VyX29m XzIiIHBhcmVudD0iQ2x1dHRlci5VdGlsIgorIAorIC8vIEJhY2t3YXJkcyBjb21wYXRpYmlsaXR5 CisgQ29sb3IuYWxsb2Mgc3ltYm9sX3R5cGU9ImZ1bmN0aW9uIgorLVBvaW50LmFsbG9jIHN5bWJv bF90eXBlPSJmdW5jdGlvbiIKKy1SZWN0LmFsbG9jIHN5bWJvbF90eXBlPSJmdW5jdGlvbiIKKy1T aXplLmFsbG9jIHN5bWJvbF90eXBlPSJmdW5jdGlvbiIKKy1WZXJ0ZXguYWxsb2Mgc3ltYm9sX3R5 cGU9ImZ1bmN0aW9uIgorIAorIEJpbkFsaWdubWVudCBkZXByZWNhdGVkPWZhbHNlIGRlcHJlY2F0 ZWRfc2luY2U9bnVsbAorIEJpbkFsaWdubWVudC4qIGRlcHJlY2F0ZWQKK2RpZmYgLS1naXQgdmFw aS9Db2dsLTQubWV0YWRhdGEgdmFwaS9Db2dsLTYubWV0YWRhdGEKK3NpbWlsYXJpdHkgaW5kZXgg MTAwJQorcmVuYW1lIGZyb20gdmFwaS9Db2dsLTQubWV0YWRhdGEKK3JlbmFtZSB0byB2YXBpL0Nv Z2wtNi5tZXRhZGF0YQorZGlmZiAtLWdpdCB2YXBpL0NvZ2wtNS5tZXRhZGF0YSB2YXBpL0NvZ2wt Ny5tZXRhZGF0YQorc2ltaWxhcml0eSBpbmRleCA5MSUKK3JlbmFtZSBmcm9tIHZhcGkvQ29nbC01 Lm1ldGFkYXRhCityZW5hbWUgdG8gdmFwaS9Db2dsLTcubWV0YWRhdGEKK2luZGV4IDA5MmI1ZTI5 Li5lNTJiZmEzNSAxMDA2NDQKKy0tLSB2YXBpL0NvZ2wtNS5tZXRhZGF0YQorKysrIHZhcGkvQ29n bC03Lm1ldGFkYXRhCitAQCAtOSwxMiArOSwxMCBAQCBjcmVhdGVfc2hhZGVyIHNraXAKKyAKKyAK KyBpc19iaXRtYXAgc2tpcAorLWlzX21hdGVyaWFsIHNraXAKKyBpc19vZmZzY3JlZW4gc2tpcAor IGlzX3Byb2dyYW0gc2tpcAorIGlzX3NoYWRlciBza2lwCisgaXNfdGV4dHVyZSBza2lwCistaXNf dmVydGV4X2J1ZmZlciBza2lwCisgCisgTWF0cml4IHN0cnVjdAorICAgLmdldF9hcnJheSBhcnJh eT10cnVlIGFycmF5X2xlbmd0aF9pZHg9LTEKK2RpZmYgLS1naXQgdmFwaS9NZXRhLTMubWV0YWRh dGEgdmFwaS9NZXRhLTMubWV0YWRhdGEKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXgg MzcwZDQ5OTYuLjAwMDAwMDAwCistLS0gdmFwaS9NZXRhLTMubWV0YWRhdGEKKysrKyAvZGV2L251 bGwKK0BAIC0xLDY2ICswLDAgQEAKKy1CYWNrZW5kIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0 YS1iYWNrZW5kLmgiCistQmFja2dyb3VuZCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFj a2dyb3VuZC5oIgorLUJhY2tncm91bmRBY3RvciBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEt YmFja2dyb3VuZC1hY3Rvci5oIgorLUJhY2tncm91bmRHcm91cCBjaGVhZGVyX2ZpbGVuYW1lPSJt ZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oIgorLUJhY2tncm91bmRJbWFnZUNhY2hlIGNoZWFk ZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgiCistRGlzcGxheSBjaGVh ZGVyX2ZpbGVuYW1lPSJtZXRhL2Rpc3BsYXkuaCIKKy1NZXRhIGNoZWFkZXJfZmlsZW5hbWU9Im1l dGEvbWFpbi5oIgorLU1vbml0b3JNYW5hZ2VyIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1t b25pdG9yLW1hbmFnZXIuaCIKKy1SZWN0YW5nbGUgc3RydWN0CistUGx1Z2luIGNoZWFkZXJfZmls ZW5hbWU9Im1ldGEvbWV0YS1wbHVnaW4uaCIKKy1QbHVnaW5JbmZvIGNoZWFkZXJfZmlsZW5hbWU9 Im1ldGEvbWV0YS1wbHVnaW4uaCIKKy1wcmVmc18qIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvcHJl ZnMuaCIgcGFyZW50PSJNZXRhLlByZWZzIgorLWFkZF92ZXJib3NlX3RvcGljIHBhcmVudD0iTWV0 YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1idWcgcGFyZW50PSJNZXRh LlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWRlYnVnX3NwZXdfcmVhbCBw YXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistZW1wdHlf c3RhZ2VfaW5wdXRfcmVnaW9uIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJt ZXRhL3V0aWwuaCIKKy14MTFfZXJyb3JfdHJhcF9wb3AgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFk ZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXgxMV9lcnJvcl90cmFwX3B1c2ggcGFyZW50PSJN ZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXgxMV9lcnJvcl90cmFw X3BvcF93aXRoX3JldHVybiBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0 YS91dGlsLmgiCistZXh0ZXJuYWxfYmluZGluZ19uYW1lX2Zvcl9hY3Rpb24gcGFyZW50PSJNZXRh LlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWZyZWVfZ3NsaXN0X2FuZF9l bGVtZW50cyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgi CistZ191dGY4X3N0cm5kdXAgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1l dGEvdXRpbC5oIgorLWdldF9sb2NhbGVfZGlyZWN0aW9uIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVh ZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1nZXRfb3ZlcmxheV93aW5kb3cgcGFyZW50PSJN ZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWdyYXZpdHlfdG9fc3Ry aW5nIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1p c19kZWJ1Z2dpbmcgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRp bC5oIgorLWlzX3N5bmNpbmcgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1l dGEvdXRpbC5oIgorLWlzX3ZlcmJvc2UgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5h bWU9Im1ldGEvdXRpbC5oIgorLWlzX3dheWxhbmRfY29tcG9zaXRvciBwYXJlbnQ9Ik1ldGEuVXRp bCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistbGF0ZXJfYWRkIHBhcmVudD0iTWV0 YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1sYXRlcl9yZW1vdmUgcGFy ZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXBvcF9ub19t c2dfcHJlZml4IHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwu aCIKKy1wdXNoX25vX21zZ19wcmVmaXggcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5h bWU9Im1ldGEvdXRpbC5oIgorLXJlY3QgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5h bWU9Im1ldGEvdXRpbC5oIgorLXJlbW92ZV92ZXJib3NlX3RvcGljIHBhcmVudD0iTWV0YS5VdGls IiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1zZXRfc3RhZ2VfaW5wdXRfcmVnaW9u IHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1zaG93 X2RpYWxvZyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgi CistdG9waWNfcmVhbCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91 dGlsLmgiCistdW5zaWduZWRfbG9uZ19lcXVhbCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9m aWxlbmFtZT0ibWV0YS91dGlsLmgiCistdW5zaWduZWRfbG9uZ19oYXNoIHBhcmVudD0iTWV0YS5V dGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy12ZXJib3NlX3JlYWwgcGFyZW50 PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXdhcm5pbmcgcGFy ZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXNob3dfZGlh bG9nIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1n ZXRfc3RhZ2VfZm9yX2Rpc3BsYXkgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmls ZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKy1nZXRfd2luZG93X2FjdG9ycyBwYXJl bnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11 dHRlci5oIgorLWdldF93aW5kb3dfZ3JvdXBfZm9yX2Rpc3BsYXkgcGFyZW50PSJNZXRhLkNvbXBv c2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKy1nZXRf dG9wX3dpbmRvd19ncm91cF9mb3JfZGlzcGxheSBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hl YWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLWdldF9mZWVkYmFja19n cm91cF9mb3JfZGlzcGxheSBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFt ZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLWRpc2FibGVfdW5yZWRpcmVjdF9mb3JfZGlz cGxheSBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21w b3NpdG9yLW11dHRlci5oIgorLWVuYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IHBhcmVudD0i TWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgiCistc2V0X3N0YWdlX2lucHV0X3JlZ2lvbiBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hl YWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorLWVtcHR5X3N0YWdlX2lu cHV0X3JlZ2lvbiBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0 YS9jb21wb3NpdG9yLW11dHRlci5oIgorLWZvY3VzX3N0YWdlX3dpbmRvdyBwYXJlbnQ9Ik1ldGEu Q29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgor LXN0YWdlX2lzX2ZvY3VzZWQgcGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5h bWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKy1rZXliaW5kaW5nc19zZXRfY3VzdG9tX2hh bmRsZXIgcGFyZW50PSJNZXRhLktleUJpbmRpbmciIG5hbWU9InNldF9jdXN0b21faGFuZGxlciIK Ky1LZXlIYW5kbGVyRnVuYy5ldmVudCB0eXBlPSJDbHV0dGVyLktleUV2ZW50PyIKKy1nZXRfYmFj a2VuZCBwYXJlbnQ9Ik1ldGEuQmFja2VuZCIKKy1XaW5kb3cuZm9jdXMjc2lnbmFsIHNraXA9dHJ1 ZQorLVdpbmRvdy5nZXRfeHdpbmRvdyBza2lwPWZhbHNlCistZ2V0X29wdGlvbl9jb250ZXh0IHNr aXA9ZmFsc2UKKy1zZXRfZ25vbWVfd21fa2V5YmluZGluZ3Mgc2tpcD1mYWxzZQorLXNldF93bV9u YW1lIHNraXA9ZmFsc2UKKy1pbml0IHNraXA9ZmFsc2UKKy1ydW4gc2tpcD1mYWxzZQorLXNob3df ZGlhbG9nIHNraXA9ZmFsc2UKKy1nZXRfYmFja2VuZCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21l dGEtYmFja2VuZC5oIgorZGlmZiAtLWdpdCB2YXBpL01ldGEtNS5tZXRhZGF0YSB2YXBpL01ldGEt Ni5tZXRhZGF0YQorc2ltaWxhcml0eSBpbmRleCAxMDAlCityZW5hbWUgZnJvbSB2YXBpL01ldGEt NS5tZXRhZGF0YQorcmVuYW1lIHRvIHZhcGkvTWV0YS02Lm1ldGFkYXRhCitkaWZmIC0tZ2l0IHZh cGkvTWV0YS00Lm1ldGFkYXRhIHZhcGkvTWV0YS03Lm1ldGFkYXRhCitzaW1pbGFyaXR5IGluZGV4 IDc2JQorcmVuYW1lIGZyb20gdmFwaS9NZXRhLTQubWV0YWRhdGEKK3JlbmFtZSB0byB2YXBpL01l dGEtNy5tZXRhZGF0YQoraW5kZXggYWUyYTc4MTcuLjcyNjI5ZmJhIDEwMDY0NAorLS0tIHZhcGkv TWV0YS00Lm1ldGFkYXRhCisrKysgdmFwaS9NZXRhLTcubWV0YWRhdGEKK0BAIC0xLDI2ICsxLDIx IEBACisgQmFja2VuZCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFja2VuZC5oIgorIEJh Y2tncm91bmQgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWJhY2tncm91bmQuaCIKKyBCYWNr Z3JvdW5kQWN0b3IgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3Iu aCIKKytCYWNrZ3JvdW5kQ29udGVudCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtYmFja2dy b3VuZC1jb250ZW50LmgiCisgQmFja2dyb3VuZEdyb3VwIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEv bWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgiCisgQmFja2dyb3VuZEltYWdlIGNoZWFkZXJfZmlsZW5h bWU9Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgiCisgQmFja2dyb3VuZEltYWdlQ2FjaGUg Y2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCIKKyBCYXJyaWVy IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvYmFycmllci5oIgorIEJhcnJpZXJFdmVudCBjaGVhZGVy X2ZpbGVuYW1lPSJtZXRhL2JhcnJpZXIuaCIKKy1Cb3hlcyBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh L2JveGVzLmgiCisgQ2xvc2VEaWFsb2cgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLWNsb3Nl LWRpYWxvZy5oIgorLUNvbXBvc2l0b3IgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9y LmgiCistQ29tcG9zaXRvck11dHRlciBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgiCisgQ3Vyc29yVHJhY2tlciBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtY3Vy c29yLXRyYWNrZXIuaCIKKyBEaXNwbGF5IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvZGlzcGxheS5o IgorIERuZCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtZG5kLmgiCistR3JvdXAgY2hlYWRl cl9maWxlbmFtZT0ibWV0YS9ncm91cC5oIgorIElkbGVNb25pdG9yIGNoZWFkZXJfZmlsZW5hbWU9 Im1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCIKKyBJbmhpYml0U2hvcnRjdXRzRGlhbG9nIGNoZWFk ZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCIKKy1LZXli aW5kaW5ncyBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2tleWJpbmRpbmdzLmgiCisgTGF1bmNoQ29u dGV4dCBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCIKKyBNZXRh IGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWFpbi5oIgorIE1vbml0b3JNYW5hZ2VyIGNoZWFkZXJf ZmlsZW5hbWU9Im1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCIKKy1QbHVnaW4gY2hlYWRlcl9m aWxlbmFtZT0ibWV0YS9tZXRhLXBsdWdpbi5oIgorIFByZWZlcmVuY2UgY2hlYWRlcl9maWxlbmFt ZT0ibWV0YS9wcmVmcy5oIgorIFJlbW90ZUFjY2Vzc0NvbnRyb2xsZXIgY2hlYWRlcl9maWxlbmFt ZT0ibWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oIgorIFJlbW90ZUFjY2Vzc0hh bmRsZSBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVy LmgiCitAQCAtMzEsOSArMjYsNyBAQCBTb3VuZFBsYXllciBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh L21ldGEtc291bmQtcGxheWVyLmgiCisgU3RhZ2UgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRh LXN0YWdlLmgiCisgU3RhcnR1cE5vdGlmaWNhdGlvbiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL21l dGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCIKKyBUaGVtZSBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh L3RoZW1lLmgiCistVHlwZXMgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS90eXBlcy5oIgorLVV0aWwg Y2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistVmVyc2lvbiBjaGVhZGVyX2ZpbGVuYW1l PSJtZXRhL21ldGEtdmVyc2lvbi5oIgorK1dheWxhbmRDbGllbnQgY2hlYWRlcl9maWxlbmFtZT0i bWV0YS9tZXRhLXdheWxhbmQtY2xpZW50LmgiCisgV2luZG93IGNoZWFkZXJfZmlsZW5hbWU9Im1l dGEvd2luZG93LmgiCisgV2luZG93QWN0b3IgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9tZXRhLXdp bmRvdy1hY3Rvci5oIgorIFdpbmRvd0dyb3VwIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvbWV0YS13 aW5kb3ctZ3JvdXAuaCIKK0BAIC00NiwxNyArMzksMTEgQEAgUGx1Z2luIGNoZWFkZXJfZmlsZW5h bWU9Im1ldGEvbWV0YS1wbHVnaW4uaCIKKyBQbHVnaW5JbmZvIGNoZWFkZXJfZmlsZW5hbWU9Im1l dGEvbWV0YS1wbHVnaW4uaCIKKyBwcmVmc18qIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvcHJlZnMu aCIgcGFyZW50PSJNZXRhLlByZWZzIgorIGFkZF92ZXJib3NlX3RvcGljIHBhcmVudD0iTWV0YS5V dGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1idWcgcGFyZW50PSJNZXRhLlV0 aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWRlYnVnX3NwZXdfcmVhbCBwYXJl bnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistZW1wdHlfc3Rh Z2VfaW5wdXRfcmVnaW9uIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRh L3V0aWwuaCIKKyB4MTFfZXJyb3JfdHJhcF9wb3AgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJf ZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIHgxMV9lcnJvcl90cmFwX3B1c2ggcGFyZW50PSJNZXRh LlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIHgxMV9lcnJvcl90cmFwX3Bv cF93aXRoX3JldHVybiBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91 dGlsLmgiCisgZXh0ZXJuYWxfYmluZGluZ19uYW1lX2Zvcl9hY3Rpb24gcGFyZW50PSJNZXRhLlV0 aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLWZyZWVfZ3NsaXN0X2FuZF9lbGVt ZW50cyBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCist Z191dGY4X3N0cm5kdXAgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEv dXRpbC5oIgorIGdldF9sb2NhbGVfZGlyZWN0aW9uIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVy X2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1nZXRfb3ZlcmxheV93aW5kb3cgcGFyZW50PSJNZXRh LlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIGdyYXZpdHlfdG9fc3RyaW5n IHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKyBpc19k ZWJ1Z2dpbmcgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5o IgorIGlzX3N5bmNpbmcgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEv dXRpbC5oIgorQEAgLTY4LDEzICs1NSw4IEBAIHBvcF9ub19tc2dfcHJlZml4IHBhcmVudD0iTWV0 YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKyBwdXNoX25vX21zZ19wcmVm aXggcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIHJl Y3QgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIHJl bW92ZV92ZXJib3NlX3RvcGljIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1lPSJt ZXRhL3V0aWwuaCIKKy1zZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIHBhcmVudD0iTWV0YS5VdGlsIiBj aGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKy1zaG93X2RpYWxvZyBwYXJlbnQ9Ik1ldGEu VXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCistdG9waWNfcmVhbCBwYXJlbnQ9 Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgiCisgdW5zaWduZWRfbG9u Z19lcXVhbCBwYXJlbnQ9Ik1ldGEuVXRpbCIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS91dGlsLmgi CisgdW5zaWduZWRfbG9uZ19oYXNoIHBhcmVudD0iTWV0YS5VdGlsIiBjaGVhZGVyX2ZpbGVuYW1l PSJtZXRhL3V0aWwuaCIKKy12ZXJib3NlX3JlYWwgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFkZXJf ZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorLXdhcm5pbmcgcGFyZW50PSJNZXRhLlV0aWwiIGNoZWFk ZXJfZmlsZW5hbWU9Im1ldGEvdXRpbC5oIgorIHNob3dfZGlhbG9nIHBhcmVudD0iTWV0YS5VdGls IiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL3V0aWwuaCIKKyBnZXRfc3RhZ2VfZm9yX2Rpc3BsYXkg cGFyZW50PSJNZXRhLkNvbXBvc2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRv ci1tdXR0ZXIuaCIKKyBnZXRfd2luZG93X2FjdG9ycyBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIg Y2hlYWRlcl9maWxlbmFtZT0ibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIgorQEAgLTgzLDEwICs2 NSw3IEBAIGdldF90b3Bfd2luZG93X2dyb3VwX2Zvcl9kaXNwbGF5IHBhcmVudD0iTWV0YS5Db21w b3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhCisgZ2V0X2ZlZWRiYWNrX2dyb3VwX2Zvcl9k aXNwbGF5IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2Nv bXBvc2l0b3ItbXV0dGVyLmgiCisgZGlzYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IHBhcmVu dD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0 dGVyLmgiCisgZW5hYmxlX3VucmVkaXJlY3RfZm9yX2Rpc3BsYXkgcGFyZW50PSJNZXRhLkNvbXBv c2l0b3IiIGNoZWFkZXJfZmlsZW5hbWU9Im1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIKKy1zZXRf c3RhZ2VfaW5wdXRfcmVnaW9uIHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVu YW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCistZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9u IHBhcmVudD0iTWV0YS5Db21wb3NpdG9yIiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgiCisgZm9jdXNfc3RhZ2Vfd2luZG93IHBhcmVudD0iTWV0YS5Db21wb3NpdG9y IiBjaGVhZGVyX2ZpbGVuYW1lPSJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiCistc3RhZ2VfaXNf Zm9jdXNlZCBwYXJlbnQ9Ik1ldGEuQ29tcG9zaXRvciIgY2hlYWRlcl9maWxlbmFtZT0ibWV0YS9j b21wb3NpdG9yLW11dHRlci5oIgorIGtleWJpbmRpbmdzX3NldF9jdXN0b21faGFuZGxlciBwYXJl bnQ9Ik1ldGEuS2V5QmluZGluZyIgbmFtZT0ic2V0X2N1c3RvbV9oYW5kbGVyIgorIEtleUhhbmRs ZXJGdW5jLmV2ZW50IHR5cGU9IkNsdXR0ZXIuS2V5RXZlbnQ/IgorIGdldF9iYWNrZW5kIHBhcmVu dD0iTWV0YS5CYWNrZW5kIgorZGlmZiAtLWdpdCB2YXBpL2dlbmVyYXRlLW11dHRlci12YXBpLnNo IHZhcGkvZ2VuZXJhdGUtbXV0dGVyLXZhcGkuc2gKK2luZGV4IDZiMDcwMjQwLi5iMjMzZTU4NiAx MDA3NTUKKy0tLSB2YXBpL2dlbmVyYXRlLW11dHRlci12YXBpLnNoCisrKysgdmFwaS9nZW5lcmF0 ZS1tdXR0ZXItdmFwaS5zaAorQEAgLTEsNyArMSw3IEBACisgIyEvYmluL2Jhc2gKKyBzZXQgLXhl CisgCistdmVyc2lvbj0kezEtNH0KKyt2ZXJzaW9uPSR7Ni03fQorIGdpcmRpcj0kKHBrZy1jb25m aWcgbGlibXV0dGVyLSR2ZXJzaW9uIC0tdmFyaWFibGU9Z2lyZGlyKQorIAorIGNkICQoZGlybmFt ZSAkMCkKK2RpZmYgLS1naXQgdmFwaS9ncmFwaGVuZS1nb2JqZWN0LTEuMC52YXBpIHZhcGkvZ3Jh cGhlbmUtZ29iamVjdC0xLjAudmFwaQorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAw MDAwLi42OTgwMTUzNQorLS0tIC9kZXYvbnVsbAorKysrIHZhcGkvZ3JhcGhlbmUtZ29iamVjdC0x LjAudmFwaQorQEAgLTAsMCArMSw2OTEgQEAKKysvKiBncmFwaGVuZS1nb2JqZWN0LTEuMC52YXBp IGdlbmVyYXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLworKworK1tDQ29kZSAoY3By ZWZpeCA9ICJHcmFwaGVuZSIsIGdpcl9uYW1lc3BhY2UgPSAiR3JhcGhlbmUiLCBnaXJfdmVyc2lv biA9ICIxLjAiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAiZ3JhcGhlbmVfIildCisrbmFtZXNwYWNl IEdyYXBoZW5lIHsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmpl Y3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX2JveF90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV9ib3hf Z2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwlwdWJsaWMgc3Ry dWN0IEJveCB7CisrCQlwdWJsaWMgYm9vbCBjb250YWluc19ib3ggKEdyYXBoZW5lLkJveCBiKTsK KysJCXB1YmxpYyBib29sIGNvbnRhaW5zX3BvaW50IChHcmFwaGVuZS5Qb2ludDNEIHBvaW50KTsK KysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5Cb3g/IGVtcHR5ICgpOworKwkJcHVi bGljIGJvb2wgZXF1YWwgKEdyYXBoZW5lLkJveCBiKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Cb3gg ZXhwYW5kIChHcmFwaGVuZS5Qb2ludDNEIHBvaW50KTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Cb3gg ZXhwYW5kX3NjYWxhciAoZmxvYXQgc2NhbGFyKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Cb3ggZXhw YW5kX3ZlYzMgKEdyYXBoZW5lLlZlYzMgdmVjKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5TcGhlcmUg Z2V0X2JvdW5kaW5nX3NwaGVyZSAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIGdldF9j ZW50ZXIgKCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X2RlcHRoICgpOworKwkJcHVibGljIGZsb2F0 IGdldF9oZWlnaHQgKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBnZXRfbWF4ICgpOwor KwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0QgZ2V0X21pbiAoKTsKKysJCXB1YmxpYyBHcmFwaGVu ZS5WZWMzIGdldF9zaXplICgpOworKwkJcHVibGljIHZvaWQgZ2V0X3ZlcnRpY2VzIChbQ0NvZGUg KGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gcmVmIEdyYXBoZW5lLlZlYzMgdmVydGljZXNbOF0pOwor KwkJcHVibGljIGZsb2F0IGdldF93aWR0aCAoKTsKKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBH cmFwaGVuZS5Cb3g/IGluZmluaXRlICgpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuQm94 PyBpbml0IChHcmFwaGVuZS5Qb2ludDNEPyBtaW4sIEdyYXBoZW5lLlBvaW50M0Q/IG1heCk7Cisr CQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Cb3g/IGluaXRfZnJvbV9ib3ggKEdyYXBoZW5lLkJv eCBzcmMpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuQm94PyBpbml0X2Zyb21fcG9pbnRz IChbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3BvaW50cyIsIGFycmF5X2xlbmd0aF9w b3MgPSAwLjUsIGFycmF5X2xlbmd0aF90eXBlID0gImd1aW50IildIEdyYXBoZW5lLlBvaW50M0Rb XSBwb2ludHMpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuQm94PyBpbml0X2Zyb21fdmVj MyAoR3JhcGhlbmUuVmVjMz8gbWluLCBHcmFwaGVuZS5WZWMzPyBtYXgpOworKwkJcHVibGljIHVu b3duZWQgR3JhcGhlbmUuQm94PyBpbml0X2Zyb21fdmVjdG9ycyAoW0NDb2RlIChhcnJheV9sZW5n dGhfY25hbWUgPSAibl92ZWN0b3JzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDAuNSwgYXJyYXlfbGVu Z3RoX3R5cGUgPSAiZ3VpbnQiKV0gR3JhcGhlbmUuVmVjM1tdIHZlY3RvcnMpOworKwkJcHVibGlj IGJvb2wgaW50ZXJzZWN0aW9uIChHcmFwaGVuZS5Cb3ggYiwgb3V0IEdyYXBoZW5lLkJveCByZXMp OworKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLkJveD8gbWludXNfb25lICgpOwor KwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLkJveD8gb25lICgpOworKwkJcHVibGlj IHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLkJveD8gb25lX21pbnVzX29uZSAoKTsKKysJCXB1Ymxp YyBHcmFwaGVuZS5Cb3ggdW5pb24gKEdyYXBoZW5lLkJveCBiKTsKKysJCXB1YmxpYyBzdGF0aWMg dW5vd25lZCBHcmFwaGVuZS5Cb3g/IHplcm8gKCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX2V1bGVyX3Qi LCB0eXBlX2lkID0gImdyYXBoZW5lX2V1bGVyX2dldF90eXBlICgpIildCisrCVtWZXJzaW9uIChz aW5jZSA9ICIxLjIiKV0KKysJcHVibGljIHN0cnVjdCBFdWxlciB7CisrCQlwdWJsaWMgYm9vbCBl cXVhbCAoR3JhcGhlbmUuRXVsZXIgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor KwkJcHVibGljIGZsb2F0IGdldF9hbHBoYSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X2JldGEgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF9nYW1tYSAoKTsKKysJCXB1YmxpYyBHcmFwaGVu ZS5FdWxlck9yZGVyIGdldF9vcmRlciAoKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfeCAoKTsKKysJ CXB1YmxpYyBmbG9hdCBnZXRfeSAoKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfeiAoKTsKKysJCXB1 YmxpYyB1bm93bmVkIEdyYXBoZW5lLkV1bGVyPyBpbml0IChmbG9hdCB4LCBmbG9hdCB5LCBmbG9h dCB6KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLkV1bGVyPyBpbml0X2Zyb21fZXVsZXIg KEdyYXBoZW5lLkV1bGVyPyBzcmMpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuRXVsZXI/ IGluaXRfZnJvbV9tYXRyaXggKEdyYXBoZW5lLk1hdHJpeD8gbSwgR3JhcGhlbmUuRXVsZXJPcmRl ciBvcmRlcik7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5FdWxlcj8gaW5pdF9mcm9tX3F1 YXRlcm5pb24gKEdyYXBoZW5lLlF1YXRlcm5pb24/IHEsIEdyYXBoZW5lLkV1bGVyT3JkZXIgb3Jk ZXIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdy YXBoZW5lLkV1bGVyPyBpbml0X2Zyb21fcmFkaWFucyAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQg eiwgR3JhcGhlbmUuRXVsZXJPcmRlciBvcmRlcik7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVu ZS5FdWxlcj8gaW5pdF9mcm9tX3ZlYzMgKEdyYXBoZW5lLlZlYzM/IHYsIEdyYXBoZW5lLkV1bGVy T3JkZXIgb3JkZXIpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuRXVsZXI/IGluaXRfd2l0 aF9vcmRlciAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeiwgR3JhcGhlbmUuRXVsZXJPcmRlciBv cmRlcik7CisrCQlwdWJsaWMgR3JhcGhlbmUuRXVsZXIgcmVvcmRlciAoR3JhcGhlbmUuRXVsZXJP cmRlciBvcmRlcik7CisrCQlwdWJsaWMgR3JhcGhlbmUuTWF0cml4IHRvX21hdHJpeCAoKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgR3JhcGhlbmUuUXVhdGVybmlv biB0b19xdWF0ZXJuaW9uICgpOworKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgdG9fdmVjMyAoKTsK KysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwg Y25hbWUgPSAiZ3JhcGhlbmVfZnJ1c3R1bV90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV9mcnVzdHVt X2dldF90eXBlICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJcHVibGljIHN0 cnVjdCBGcnVzdHVtIHsKKysJCXB1YmxpYyBib29sIGNvbnRhaW5zX3BvaW50IChHcmFwaGVuZS5Q b2ludDNEIHBvaW50KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKysJCXB1YmxpYyBi b29sIGVxdWFsIChHcmFwaGVuZS5GcnVzdHVtIGIpOworKwkJcHVibGljIHZvaWQgZ2V0X3BsYW5l cyAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHJlZiBHcmFwaGVuZS5QbGFuZSBwbGFu ZXNbNl0pOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuRnJ1c3R1bT8gaW5pdCAoR3JhcGhl bmUuUGxhbmUgcDAsIEdyYXBoZW5lLlBsYW5lIHAxLCBHcmFwaGVuZS5QbGFuZSBwMiwgR3JhcGhl bmUuUGxhbmUgcDMsIEdyYXBoZW5lLlBsYW5lIHA0LCBHcmFwaGVuZS5QbGFuZSBwNSk7CisrCQlw dWJsaWMgdW5vd25lZCBHcmFwaGVuZS5GcnVzdHVtPyBpbml0X2Zyb21fZnJ1c3R1bSAoR3JhcGhl bmUuRnJ1c3R1bSBzcmMpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuRnJ1c3R1bT8gaW5p dF9mcm9tX21hdHJpeCAoR3JhcGhlbmUuTWF0cml4IG1hdHJpeCk7CisrCQlwdWJsaWMgYm9vbCBp bnRlcnNlY3RzX2JveCAoR3JhcGhlbmUuQm94IGJveCk7CisrCQlwdWJsaWMgYm9vbCBpbnRlcnNl Y3RzX3NwaGVyZSAoR3JhcGhlbmUuU3BoZXJlIHNwaGVyZSk7CisrCX0KKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX21h dHJpeF90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV9tYXRyaXhfZ2V0X3R5cGUgKCkiKV0KKysJcHVi bGljIHN0cnVjdCBNYXRyaXggeworKwkJcHVibGljIGJvb2wgZGVjb21wb3NlIChvdXQgR3JhcGhl bmUuVmVjMyB0cmFuc2xhdGUsIG91dCBHcmFwaGVuZS5WZWMzIHNjYWxlLCBvdXQgR3JhcGhlbmUu UXVhdGVybmlvbiByb3RhdGUsIG91dCBHcmFwaGVuZS5WZWMzIHNoZWFyLCBvdXQgR3JhcGhlbmUu VmVjNCBwZXJzcGVjdGl2ZSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJs aWMgZmxvYXQgZGV0ZXJtaW5hbnQgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor KwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5lLk1hdHJpeCBiKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgYm9vbCBlcXVhbF9mYXN0IChHcmFwaGVuZS5NYXRy aXggYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUu VmVjNCBnZXRfcm93ICh1aW50IGluZGV4Xyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisrCQlwdWJsaWMgZmxvYXQgZ2V0X3ZhbHVlICh1aW50IHJvdywgdWludCBjb2wpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF94X3NjYWxlICgpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfeF90cmFu c2xhdGlvbiAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9h dCBnZXRfeV9zY2FsZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJs aWMgZmxvYXQgZ2V0X3lfdHJhbnNsYXRpb24gKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisrCQlwdWJsaWMgZmxvYXQgZ2V0X3pfc2NhbGUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF96X3RyYW5zbGF0aW9uICgpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuTWF0cml4 PyBpbml0X2Zyb21fMmQgKGRvdWJsZSB4eCwgZG91YmxlIHl4LCBkb3VibGUgeHksIGRvdWJsZSB5 eSwgZG91YmxlIHhfMCwgZG91YmxlIHlfMCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfZnJvbV9mbG9hdCAoW0ND b2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIGZsb2F0IHZbMTZdKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8gaW5pdF9m cm9tX21hdHJpeCAoR3JhcGhlbmUuTWF0cml4IHNyYyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfZnJvbV92ZWM0 IChHcmFwaGVuZS5WZWM0IHYwLCBHcmFwaGVuZS5WZWM0IHYxLCBHcmFwaGVuZS5WZWM0IHYyLCBH cmFwaGVuZS5WZWM0IHYzKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1Ymxp YyB1bm93bmVkIEdyYXBoZW5lLk1hdHJpeD8gaW5pdF9mcnVzdHVtIChmbG9hdCBsZWZ0LCBmbG9h dCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3AsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9m YXIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3Jh cGhlbmUuTWF0cml4PyBpbml0X2lkZW50aXR5ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuTWF0cml4PyBpbml0X2xvb2tfYXQgKEdy YXBoZW5lLlZlYzMgZXllLCBHcmFwaGVuZS5WZWMzIGNlbnRlciwgR3JhcGhlbmUuVmVjMyB1cCk7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVu ZS5NYXRyaXg/IGluaXRfb3J0aG8gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCB0b3As IGZsb2F0IGJvdHRvbSwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRf cGVyc3BlY3RpdmUgKGZsb2F0IGZvdnksIGZsb2F0IGFzcGVjdCwgZmxvYXQgel9uZWFyLCBmbG9h dCB6X2Zhcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25l ZCBHcmFwaGVuZS5NYXRyaXg/IGluaXRfcm90YXRlIChmbG9hdCBhbmdsZSwgR3JhcGhlbmUuVmVj MyBheGlzKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB1bm93bmVk IEdyYXBoZW5lLk1hdHJpeD8gaW5pdF9zY2FsZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVu ZS5NYXRyaXg/IGluaXRfc2tldyAoZmxvYXQgeF9za2V3LCBmbG9hdCB5X3NrZXcpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuTWF0cml4 PyBpbml0X3RyYW5zbGF0ZSAoR3JhcGhlbmUuUG9pbnQzRCBwKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5NYXRyaXggaW50ZXJwb2xhdGUgKEdyYXBo ZW5lLk1hdHJpeCBiLCBkb3VibGUgZmFjdG9yKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyBib29sIGludmVyc2UgKG91dCBHcmFwaGVuZS5NYXRyaXggcmVzKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBib29sIGlzXzJkICgpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGJvb2wgaXNfYmFja2ZhY2Vfdmlz aWJsZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBib29sIGlz X2lkZW50aXR5ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGJv b2wgaXNfc2luZ3VsYXIgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJs aWMgR3JhcGhlbmUuTWF0cml4IG11bHRpcGx5IChHcmFwaGVuZS5NYXRyaXggYik7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGJvb2wgbmVhciAoR3JhcGhlbmUuTWF0 cml4IGIsIGZsb2F0IGVwc2lsb24pOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJ cHVibGljIEdyYXBoZW5lLk1hdHJpeCBub3JtYWxpemUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuTWF0cml4IHBlcnNwZWN0aXZlIChmbG9hdCBk ZXB0aCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCBwcmlu dCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5Q b2ludCBwcm9qZWN0X3BvaW50IChHcmFwaGVuZS5Qb2ludCBwKTsKKysJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5RdWFkIHByb2plY3RfcmVjdCAoR3JhcGhl bmUuUmVjdCByKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFw aGVuZS5SZWN0IHByb2plY3RfcmVjdF9ib3VuZHMgKEdyYXBoZW5lLlJlY3Qgcik7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCByb3RhdGUgKGZsb2F0IGFuZ2xl LCBHcmFwaGVuZS5WZWMzIGF4aXMpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJ cHVibGljIHZvaWQgcm90YXRlX2V1bGVyIChHcmFwaGVuZS5FdWxlciBlKTsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyB2b2lkIHJvdGF0ZV9xdWF0ZXJuaW9uIChHcmFw aGVuZS5RdWF0ZXJuaW9uIHEpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVi bGljIHZvaWQgcm90YXRlX3ggKGZsb2F0IGFuZ2xlKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyB2b2lkIHJvdGF0ZV95IChmbG9hdCBhbmdsZSk7CisrCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCByb3RhdGVfeiAoZmxvYXQgYW5nbGUp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgc2NhbGUgKGZs b2F0IGZhY3Rvcl94LCBmbG9hdCBmYWN0b3JfeSwgZmxvYXQgZmFjdG9yX3opOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgc2tld194eSAoZmxvYXQgZmFjdG9y KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB2b2lkIHNrZXdfeHog KGZsb2F0IGZhY3Rvcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMg dm9pZCBza2V3X3l6IChmbG9hdCBmYWN0b3IpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorKwkJcHVibGljIGJvb2wgdG9fMmQgKG91dCBkb3VibGUgeHgsIG91dCBkb3VibGUgeXgsIG91 dCBkb3VibGUgeHksIG91dCBkb3VibGUgeXksIG91dCBkb3VibGUgeF8wLCBvdXQgZG91YmxlIHlf MCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgdm9pZCB0b19mbG9h dCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHJlZiBmbG9hdCB2WzE2XSk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCB0cmFuc2Zv cm1fYm91bmRzIChHcmFwaGVuZS5SZWN0IHIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIp XQorKwkJcHVibGljIEdyYXBoZW5lLkJveCB0cmFuc2Zvcm1fYm94IChHcmFwaGVuZS5Cb3ggYik7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQg dHJhbnNmb3JtX3BvaW50IChHcmFwaGVuZS5Qb2ludCBwKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIHRyYW5zZm9ybV9wb2ludDNkIChH cmFwaGVuZS5Qb2ludDNEIHApOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorKwkJcHVi bGljIEdyYXBoZW5lLlJheSB0cmFuc2Zvcm1fcmF5IChHcmFwaGVuZS5SYXkgcik7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuUXVhZCB0cmFuc2Zvcm1f cmVjdCAoR3JhcGhlbmUuUmVjdCByKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJ CXB1YmxpYyBHcmFwaGVuZS5TcGhlcmUgdHJhbnNmb3JtX3NwaGVyZSAoR3JhcGhlbmUuU3BoZXJl IHMpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZl YzMgdHJhbnNmb3JtX3ZlYzMgKEdyYXBoZW5lLlZlYzMgdik7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCB0cmFuc2Zvcm1fdmVjNCAoR3JhcGhl bmUuVmVjNCB2KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyB2b2lk IHRyYW5zbGF0ZSAoR3JhcGhlbmUuUG9pbnQzRCBwb3MpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLk1hdHJpeCB0cmFuc3Bvc2UgKCk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCB1bnByb2pl Y3RfcG9pbnQzZCAoR3JhcGhlbmUuTWF0cml4IG1vZGVsdmlldywgR3JhcGhlbmUuUG9pbnQzRCBw b2ludCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUu UmVjdCB1bnRyYW5zZm9ybV9ib3VuZHMgKEdyYXBoZW5lLlJlY3QgciwgR3JhcGhlbmUuUmVjdCBi b3VuZHMpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGJvb2wgdW50 cmFuc2Zvcm1fcG9pbnQgKEdyYXBoZW5lLlBvaW50IHAsIEdyYXBoZW5lLlJlY3QgYm91bmRzLCBv dXQgR3JhcGhlbmUuUG9pbnQgcmVzKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfcGxhbmVfdCIsIHR5cGVf aWQgPSAiZ3JhcGhlbmVfcGxhbmVfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0g IjEuMiIpXQorKwlwdWJsaWMgc3RydWN0IFBsYW5lIHsKKysJCXB1YmxpYyBmbG9hdCBkaXN0YW5j ZSAoR3JhcGhlbmUuUG9pbnQzRCBwb2ludCk7CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3JhcGhl bmUuUGxhbmUgYik7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X2NvbnN0YW50ICgpOworKwkJcHVibGlj IEdyYXBoZW5lLlZlYzMgZ2V0X25vcm1hbCAoKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5l LlBsYW5lPyBpbml0IChHcmFwaGVuZS5WZWMzPyBub3JtYWwsIGZsb2F0IGNvbnN0YW50KTsKKysJ CXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBsYW5lPyBpbml0X2Zyb21fcGxhbmUgKEdyYXBoZW5l LlBsYW5lIHNyYyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5QbGFuZT8gaW5pdF9mcm9t X3BvaW50IChHcmFwaGVuZS5WZWMzIG5vcm1hbCwgR3JhcGhlbmUuUG9pbnQzRCBwb2ludCk7Cisr CQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5QbGFuZT8gaW5pdF9mcm9tX3BvaW50cyAoR3JhcGhl bmUuUG9pbnQzRCBhLCBHcmFwaGVuZS5Qb2ludDNEIGIsIEdyYXBoZW5lLlBvaW50M0QgYyk7Cisr CQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5QbGFuZT8gaW5pdF9mcm9tX3ZlYzQgKEdyYXBoZW5l LlZlYzQgc3JjKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5QbGFuZSBuZWdhdGUgKCk7CisrCQlwdWJs aWMgR3JhcGhlbmUuUGxhbmUgbm9ybWFsaXplICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5QbGFuZSB0cmFuc2Zvcm0gKEdyYXBoZW5lLk1hdHJp eCBtYXRyaXgsIEdyYXBoZW5lLk1hdHJpeD8gbm9ybWFsX21hdHJpeCk7CisrCX0KKysJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBo ZW5lX3BvaW50X3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX3BvaW50X2dldF90eXBlICgpIildCisr CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJcHVibGljIHN0cnVjdCBQb2ludCB7CisrCQlw dWJsaWMgZmxvYXQgeDsKKysJCXB1YmxpYyBmbG9hdCB5OworKwkJcHVibGljIGZsb2F0IGRpc3Rh bmNlIChHcmFwaGVuZS5Qb2ludCBiLCBvdXQgZmxvYXQgZF94LCBvdXQgZmxvYXQgZF95KTsKKysJ CXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5Qb2ludCBiKTsKKysJCXB1YmxpYyB1bm93bmVk IEdyYXBoZW5lLlBvaW50PyBpbml0IChmbG9hdCB4LCBmbG9hdCB5KTsKKysJCXB1YmxpYyB1bm93 bmVkIEdyYXBoZW5lLlBvaW50PyBpbml0X2Zyb21fcG9pbnQgKEdyYXBoZW5lLlBvaW50IHNyYyk7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVu ZS5Qb2ludD8gaW5pdF9mcm9tX3ZlYzIgKEdyYXBoZW5lLlZlYzIgc3JjKTsKKysJCXB1YmxpYyBH cmFwaGVuZS5Qb2ludCBpbnRlcnBvbGF0ZSAoR3JhcGhlbmUuUG9pbnQgYiwgZG91YmxlIGZhY3Rv cik7CisrCQlwdWJsaWMgYm9vbCBuZWFyIChHcmFwaGVuZS5Qb2ludCBiLCBmbG9hdCBlcHNpbG9u KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMy IHRvX3ZlYzIgKCk7CisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuUG9pbnQ/IHpl cm8gKCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmpl Y3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3BvaW50M2RfdCIsIGxvd2VyX2Nhc2VfY3N1ZmZpeCA9 ICJwb2ludDNkIiwgdHlwZV9pZCA9ICJncmFwaGVuZV9wb2ludDNkX2dldF90eXBlICgpIildCisr CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJcHVibGljIHN0cnVjdCBQb2ludDNEIHsKKysJ CXB1YmxpYyBmbG9hdCB4OworKwkJcHVibGljIGZsb2F0IHk7CisrCQlwdWJsaWMgZmxvYXQgejsK KysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIGNyb3NzIChHcmFwaGVuZS5Qb2ludDNEIGIpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorKwkJcHVibGljIGZsb2F0IGRpc3RhbmNlIChH cmFwaGVuZS5Qb2ludDNEIGIsIG91dCBHcmFwaGVuZS5WZWMzIGRlbHRhKTsKKysJCXB1YmxpYyBm bG9hdCBkb3QgKEdyYXBoZW5lLlBvaW50M0QgYik7CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAoR3Jh cGhlbmUuUG9pbnQzRCBiKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlBvaW50M0Q/IGlu aXQgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworKwkJcHVibGljIHVub3duZWQgR3JhcGhl bmUuUG9pbnQzRD8gaW5pdF9mcm9tX3BvaW50IChHcmFwaGVuZS5Qb2ludDNEIHNyYyk7CisrCQlw dWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Qb2ludDNEPyBpbml0X2Zyb21fdmVjMyAoR3JhcGhlbmUu VmVjMyB2KTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIGludGVycG9sYXRlIChHcmFwaGVu ZS5Qb2ludDNEIGIsIGRvdWJsZSBmYWN0b3IpOworKwkJcHVibGljIGZsb2F0IGxlbmd0aCAoKTsK KysJCXB1YmxpYyBib29sIG5lYXIgKEdyYXBoZW5lLlBvaW50M0QgYiwgZmxvYXQgZXBzaWxvbik7 CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBub3JtYWxpemUgKCk7CisrCQlbVmVyc2lvbiAo c2luY2UgPSAiMS40IildCisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBub3JtYWxpemVfdmll d3BvcnQgKEdyYXBoZW5lLlJlY3Qgdmlld3BvcnQsIGZsb2F0IHpfbmVhciwgZmxvYXQgel9mYXIp OworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0Qgc2NhbGUgKGZsb2F0IGZhY3Rvcik7CisrCQlw dWJsaWMgR3JhcGhlbmUuVmVjMyB0b192ZWMzICgpOworKwkJcHVibGljIHN0YXRpYyB1bm93bmVk IEdyYXBoZW5lLlBvaW50M0Q/IHplcm8gKCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3F1YWRfdCIsIHR5 cGVfaWQgPSAiZ3JhcGhlbmVfcXVhZF9nZXRfdHlwZSAoKSIpXQorKwlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCXB1YmxpYyBzdHJ1Y3QgUXVhZCB7CisrCQlwdWJsaWMgR3JhcGhlbmUuUmVj dCBib3VuZHMgKCk7CisrCQlwdWJsaWMgYm9vbCBjb250YWlucyAoR3JhcGhlbmUuUG9pbnQgcCk7 CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5Qb2ludD8gZ2V0X3BvaW50ICh1aW50IGluZGV4 Xyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5RdWFkPyBpbml0IChHcmFwaGVuZS5Qb2lu dCBwMSwgR3JhcGhlbmUuUG9pbnQgcDIsIEdyYXBoZW5lLlBvaW50IHAzLCBHcmFwaGVuZS5Qb2lu dCBwNCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgdW5vd25lZCBH cmFwaGVuZS5RdWFkPyBpbml0X2Zyb21fcG9pbnRzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZh bHNlKV0gR3JhcGhlbmUuUG9pbnQgcG9pbnRzWzRdKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBo ZW5lLlF1YWQ/IGluaXRfZnJvbV9yZWN0IChHcmFwaGVuZS5SZWN0IHIpOworKwl9CisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFw aGVuZV9xdWF0ZXJuaW9uX3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX3F1YXRlcm5pb25fZ2V0X3R5 cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwlwdWJsaWMgc3RydWN0IFF1 YXRlcm5pb24geworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFw aGVuZS5RdWF0ZXJuaW9uIGFkZCAoR3JhcGhlbmUuUXVhdGVybmlvbiBiKTsKKysJCXB1YmxpYyBm bG9hdCBkb3QgKEdyYXBoZW5lLlF1YXRlcm5pb24gYik7CisrCQlwdWJsaWMgYm9vbCBlcXVhbCAo R3JhcGhlbmUuUXVhdGVybmlvbiBiKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlF1YXRl cm5pb24/IGluaXQgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHosIGZsb2F0IHcpOworKwkJcHVi bGljIHVub3duZWQgR3JhcGhlbmUuUXVhdGVybmlvbj8gaW5pdF9mcm9tX2FuZ2xlX3ZlYzMgKGZs b2F0IGFuZ2xlLCBHcmFwaGVuZS5WZWMzIGF4aXMpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhl bmUuUXVhdGVybmlvbj8gaW5pdF9mcm9tX2FuZ2xlcyAoZmxvYXQgZGVnX3gsIGZsb2F0IGRlZ195 LCBmbG9hdCBkZWdfeik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMg dW5vd25lZCBHcmFwaGVuZS5RdWF0ZXJuaW9uPyBpbml0X2Zyb21fZXVsZXIgKEdyYXBoZW5lLkV1 bGVyIGUpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUXVhdGVybmlvbj8gaW5pdF9mcm9t X21hdHJpeCAoR3JhcGhlbmUuTWF0cml4IG0pOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUu UXVhdGVybmlvbj8gaW5pdF9mcm9tX3F1YXRlcm5pb24gKEdyYXBoZW5lLlF1YXRlcm5pb24gc3Jj KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlF1YXRlcm5pb24/IGluaXRfZnJvbV9yYWRp YW5zIChmbG9hdCByYWRfeCwgZmxvYXQgcmFkX3ksIGZsb2F0IHJhZF96KTsKKysJCXB1YmxpYyB1 bm93bmVkIEdyYXBoZW5lLlF1YXRlcm5pb24/IGluaXRfZnJvbV92ZWM0IChHcmFwaGVuZS5WZWM0 IHNyYyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5RdWF0ZXJuaW9uPyBpbml0X2lkZW50 aXR5ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlF1YXRlcm5pb24gaW52ZXJ0ICgpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5RdWF0ZXJuaW9uIG11 bHRpcGx5IChHcmFwaGVuZS5RdWF0ZXJuaW9uIGIpOworKwkJcHVibGljIEdyYXBoZW5lLlF1YXRl cm5pb24gbm9ybWFsaXplICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJCXB1 YmxpYyBHcmFwaGVuZS5RdWF0ZXJuaW9uIHNjYWxlIChmbG9hdCBmYWN0b3IpOworKwkJcHVibGlj IEdyYXBoZW5lLlF1YXRlcm5pb24gc2xlcnAgKEdyYXBoZW5lLlF1YXRlcm5pb24gYiwgZmxvYXQg ZmFjdG9yKTsKKysJCXB1YmxpYyB2b2lkIHRvX2FuZ2xlX3ZlYzMgKG91dCBmbG9hdCBhbmdsZSwg b3V0IEdyYXBoZW5lLlZlYzMgYXhpcyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisr CQlwdWJsaWMgdm9pZCB0b19hbmdsZXMgKG91dCBmbG9hdCBkZWdfeCwgb3V0IGZsb2F0IGRlZ195 LCBvdXQgZmxvYXQgZGVnX3opOworKwkJcHVibGljIEdyYXBoZW5lLk1hdHJpeCB0b19tYXRyaXgg KCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgdm9pZCB0b19yYWRp YW5zIChvdXQgZmxvYXQgcmFkX3gsIG91dCBmbG9hdCByYWRfeSwgb3V0IGZsb2F0IHJhZF96KTsK KysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IHRvX3ZlYzQgKCk7CisrCX0KKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX3Jh eV90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV9yYXlfZ2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24g KHNpbmNlID0gIjEuNCIpXQorKwlwdWJsaWMgc3RydWN0IFJheSB7CisrCQlwdWJsaWMgYm9vbCBl cXVhbCAoR3JhcGhlbmUuUmF5IGIpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0QgZ2V0X2Ns b3Nlc3RfcG9pbnRfdG9fcG9pbnQgKEdyYXBoZW5lLlBvaW50M0QgcCk7CisrCQlwdWJsaWMgR3Jh cGhlbmUuVmVjMyBnZXRfZGlyZWN0aW9uICgpOworKwkJcHVibGljIGZsb2F0IGdldF9kaXN0YW5j ZV90b19wbGFuZSAoR3JhcGhlbmUuUGxhbmUgcCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X2Rpc3Rh bmNlX3RvX3BvaW50IChHcmFwaGVuZS5Qb2ludDNEIHApOworKwkJcHVibGljIEdyYXBoZW5lLlBv aW50M0QgZ2V0X29yaWdpbiAoKTsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIGdldF9wb3Np dGlvbl9hdCAoZmxvYXQgdCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5SYXk/IGluaXQg KEdyYXBoZW5lLlBvaW50M0Q/IG9yaWdpbiwgR3JhcGhlbmUuVmVjMz8gZGlyZWN0aW9uKTsKKysJ CXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlJheT8gaW5pdF9mcm9tX3JheSAoR3JhcGhlbmUuUmF5 IHNyYyk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5SYXk/IGluaXRfZnJvbV92ZWMzIChH cmFwaGVuZS5WZWMzPyBvcmlnaW4sIEdyYXBoZW5lLlZlYzM/IGRpcmVjdGlvbik7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlJheUludGVyc2VjdGlv bktpbmQgaW50ZXJzZWN0X2JveCAoR3JhcGhlbmUuQm94IGIsIG91dCBmbG9hdCB0X291dCk7Cisr CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlJheUludGVy c2VjdGlvbktpbmQgaW50ZXJzZWN0X3NwaGVyZSAoR3JhcGhlbmUuU3BoZXJlIHMsIG91dCBmbG9h dCB0X291dCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIEdyYXBo ZW5lLlJheUludGVyc2VjdGlvbktpbmQgaW50ZXJzZWN0X3RyaWFuZ2xlIChHcmFwaGVuZS5Ucmlh bmdsZSB0LCBvdXQgZmxvYXQgdF9vdXQpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K KysJCXB1YmxpYyBib29sIGludGVyc2VjdHNfYm94IChHcmFwaGVuZS5Cb3ggYik7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGJvb2wgaW50ZXJzZWN0c19zcGhlcmUg KEdyYXBoZW5lLlNwaGVyZSBzKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlw dWJsaWMgYm9vbCBpbnRlcnNlY3RzX3RyaWFuZ2xlIChHcmFwaGVuZS5UcmlhbmdsZSB0KTsKKysJ fQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25h bWUgPSAiZ3JhcGhlbmVfcmVjdF90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV9yZWN0X2dldF90eXBl ICgpIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJcHVibGljIHN0cnVjdCBSZWN0 IHsKKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBvcmlnaW47CisrCQlwdWJsaWMgR3JhcGhlbmUu U2l6ZSBzaXplOworKwkJcHVibGljIHN0YXRpYyBHcmFwaGVuZS5SZWN0PyBhbGxvYyAoKTsKKysJ CXB1YmxpYyBib29sIGNvbnRhaW5zX3BvaW50IChHcmFwaGVuZS5Qb2ludCBwKTsKKysJCXB1Ymxp YyBib29sIGNvbnRhaW5zX3JlY3QgKEdyYXBoZW5lLlJlY3QgYik7CisrCQlwdWJsaWMgYm9vbCBl cXVhbCAoR3JhcGhlbmUuUmVjdCBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJ CXB1YmxpYyBHcmFwaGVuZS5SZWN0IGV4cGFuZCAoR3JhcGhlbmUuUG9pbnQgcCk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF9hcmVhICgpOworKwkJ cHVibGljIEdyYXBoZW5lLlBvaW50IGdldF9ib3R0b21fbGVmdCAoKTsKKysJCXB1YmxpYyBHcmFw aGVuZS5Qb2ludCBnZXRfYm90dG9tX3JpZ2h0ICgpOworKwkJcHVibGljIEdyYXBoZW5lLlBvaW50 IGdldF9jZW50ZXIgKCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X2hlaWdodCAoKTsKKysJCXB1Ymxp YyBHcmFwaGVuZS5Qb2ludCBnZXRfdG9wX2xlZnQgKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9p bnQgZ2V0X3RvcF9yaWdodCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKysJCXB1 YmxpYyB2b2lkIGdldF92ZXJ0aWNlcyAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHJl ZiBHcmFwaGVuZS5WZWMyIHZlcnRpY2VzWzRdKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfd2lkdGgg KCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X3ggKCk7CisrCQlwdWJsaWMgZmxvYXQgZ2V0X3kgKCk7 CisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5SZWN0PyBpbml0IChmbG9hdCB4LCBmbG9hdCB5 LCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5l LlJlY3Q/IGluaXRfZnJvbV9yZWN0IChHcmFwaGVuZS5SZWN0IHNyYyk7CisrCQlwdWJsaWMgdW5v d25lZCBHcmFwaGVuZS5SZWN0PyBpbnNldCAoZmxvYXQgZF94LCBmbG9hdCBkX3kpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlJlY3QgaW5zZXRfciAo ZmxvYXQgZF94LCBmbG9hdCBkX3kpOworKwkJcHVibGljIEdyYXBoZW5lLlJlY3QgaW50ZXJwb2xh dGUgKEdyYXBoZW5lLlJlY3QgYiwgZG91YmxlIGZhY3Rvcik7CisrCQlwdWJsaWMgYm9vbCBpbnRl cnNlY3Rpb24gKEdyYXBoZW5lLlJlY3QgYiwgb3V0IEdyYXBoZW5lLlJlY3QgcmVzKTsKKysJCXB1 YmxpYyB1bm93bmVkIEdyYXBoZW5lLlJlY3Q/IG5vcm1hbGl6ZSAoKTsKKysJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjQiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IG5vcm1hbGl6ZV9yICgpOwor KwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuUmVjdD8gb2Zmc2V0IChmbG9hdCBkX3gsIGZsb2F0 IGRfeSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisrCQlwdWJsaWMgR3JhcGhlbmUu UmVjdCBvZmZzZXRfciAoZmxvYXQgZF94LCBmbG9hdCBkX3kpOworKwkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjQiKV0K KysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IHJvdW5kICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5SZWN0IHJvdW5kX2V4dGVudHMgKCk7CisrCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS40Iiwgc2lu Y2UgPSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5SZWN0PyByb3VuZF90b19w aXhlbCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJsaWMgR3JhcGhl bmUuUmVjdCBzY2FsZSAoZmxvYXQgc19oLCBmbG9hdCBzX3YpOworKwkJcHVibGljIEdyYXBoZW5l LlJlY3QgdW5pb24gKEdyYXBoZW5lLlJlY3QgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40 IildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuUmVjdD8gemVybyAoKTsKKysJ fQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25h bWUgPSAiZ3JhcGhlbmVfc2ltZDRmX3QiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJcHVibGlj IHN0cnVjdCBTaW1kNEYgeworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFw aGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9zaW1kNHg0Zl90IiwgaGFzX3R5cGVf aWQgPSBmYWxzZSldCisrCXB1YmxpYyBzdHJ1Y3QgU2ltZDRYNEYgeworKwl9CisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVu ZV9zaXplX3QiLCB0eXBlX2lkID0gImdyYXBoZW5lX3NpemVfZ2V0X3R5cGUgKCkiKV0KKysJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwlwdWJsaWMgc3RydWN0IFNpemUgeworKwkJcHVibGlj IGZsb2F0IHdpZHRoOworKwkJcHVibGljIGZsb2F0IGhlaWdodDsKKysJCXB1YmxpYyBib29sIGVx dWFsIChHcmFwaGVuZS5TaXplIGIpOworKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuU2l6ZT8g aW5pdCAoZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7CisrCQlwdWJsaWMgdW5vd25lZCBHcmFw aGVuZS5TaXplPyBpbml0X2Zyb21fc2l6ZSAoR3JhcGhlbmUuU2l6ZSBzcmMpOworKwkJcHVibGlj IEdyYXBoZW5lLlNpemUgaW50ZXJwb2xhdGUgKEdyYXBoZW5lLlNpemUgYiwgZG91YmxlIGZhY3Rv cik7CisrCQlwdWJsaWMgR3JhcGhlbmUuU2l6ZSBzY2FsZSAoZmxvYXQgZmFjdG9yKTsKKysJCXB1 YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5TaXplPyB6ZXJvICgpOworKwl9CisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFw aGVuZV9zcGhlcmVfdCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfc3BoZXJlX2dldF90eXBlICgpIild CisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJcHVibGljIHN0cnVjdCBTcGhlcmUgewor KwkJcHVibGljIGJvb2wgY29udGFpbnNfcG9pbnQgKEdyYXBoZW5lLlBvaW50M0QgcG9pbnQpOwor KwkJcHVibGljIGZsb2F0IGRpc3RhbmNlIChHcmFwaGVuZS5Qb2ludDNEIHBvaW50KTsKKysJCXB1 YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5TcGhlcmUgYik7CisrCQlwdWJsaWMgR3JhcGhlbmUu Qm94IGdldF9ib3VuZGluZ19ib3ggKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCBnZXRf Y2VudGVyICgpOworKwkJcHVibGljIGZsb2F0IGdldF9yYWRpdXMgKCk7CisrCQlwdWJsaWMgdW5v d25lZCBHcmFwaGVuZS5TcGhlcmU/IGluaXQgKEdyYXBoZW5lLlBvaW50M0Q/IGNlbnRlciwgZmxv YXQgcmFkaXVzKTsKKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlNwaGVyZT8gaW5pdF9mcm9t X3BvaW50cyAoW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wb2ludHMiLCBhcnJheV9s ZW5ndGhfcG9zID0gMC41LCBhcnJheV9sZW5ndGhfdHlwZSA9ICJndWludCIpXSBHcmFwaGVuZS5Q b2ludDNEW10gcG9pbnRzLCBHcmFwaGVuZS5Qb2ludDNEPyBjZW50ZXIpOworKwkJcHVibGljIHVu b3duZWQgR3JhcGhlbmUuU3BoZXJlPyBpbml0X2Zyb21fdmVjdG9ycyAoW0NDb2RlIChhcnJheV9s ZW5ndGhfY25hbWUgPSAibl92ZWN0b3JzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDAuNSwgYXJyYXlf bGVuZ3RoX3R5cGUgPSAiZ3VpbnQiKV0gR3JhcGhlbmUuVmVjM1tdIHZlY3RvcnMsIEdyYXBoZW5l LlBvaW50M0Q/IGNlbnRlcik7CisrCQlwdWJsaWMgYm9vbCBpc19lbXB0eSAoKTsKKysJCXB1Ymxp YyBHcmFwaGVuZS5TcGhlcmUgdHJhbnNsYXRlIChHcmFwaGVuZS5Qb2ludDNEIHBvaW50KTsKKysJ fQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25h bWUgPSAiZ3JhcGhlbmVfdHJpYW5nbGVfdCIsIHR5cGVfaWQgPSAiZ3JhcGhlbmVfdHJpYW5nbGVf Z2V0X3R5cGUgKCkiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwlwdWJsaWMgc3Ry dWN0IFRyaWFuZ2xlIHsKKysJCXB1YmxpYyBib29sIGNvbnRhaW5zX3BvaW50IChHcmFwaGVuZS5Q b2ludDNEIHApOworKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5lLlRyaWFuZ2xlIGIpOwor KwkJcHVibGljIGZsb2F0IGdldF9hcmVhICgpOworKwkJcHVibGljIGJvb2wgZ2V0X2Jhcnljb29y ZHMgKEdyYXBoZW5lLlBvaW50M0Q/IHAsIG91dCBHcmFwaGVuZS5WZWMyIHJlcyk7CisrCQlwdWJs aWMgR3JhcGhlbmUuQm94IGdldF9ib3VuZGluZ19ib3ggKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUu UG9pbnQzRCBnZXRfbWlkcG9pbnQgKCk7CisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBnZXRfbm9y bWFsICgpOworKwkJcHVibGljIEdyYXBoZW5lLlBsYW5lIGdldF9wbGFuZSAoKTsKKysJCXB1Ymxp YyB2b2lkIGdldF9wb2ludHMgKG91dCBHcmFwaGVuZS5Qb2ludDNEIGEsIG91dCBHcmFwaGVuZS5Q b2ludDNEIGIsIG91dCBHcmFwaGVuZS5Qb2ludDNEIGMpOworKwkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTAiKV0KKysJCXB1YmxpYyBib29sIGdldF91diAoR3JhcGhlbmUuUG9pbnQzRD8gcCwgR3Jh cGhlbmUuVmVjMiB1dl9hLCBHcmFwaGVuZS5WZWMyIHV2X2IsIEdyYXBoZW5lLlZlYzIgdXZfYywg b3V0IEdyYXBoZW5lLlZlYzIgcmVzKTsKKysJCXB1YmxpYyB2b2lkIGdldF92ZXJ0aWNlcyAob3V0 IEdyYXBoZW5lLlZlYzMgYSwgb3V0IEdyYXBoZW5lLlZlYzMgYiwgb3V0IEdyYXBoZW5lLlZlYzMg Yyk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwkJcHVibGljIHVub3duZWQgR3Jh cGhlbmUuVHJpYW5nbGU/IGluaXRfZnJvbV9mbG9hdCAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBm YWxzZSldIGZsb2F0IGFbM10sIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdCBi WzNdLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXQgY1szXSk7CisrCQlwdWJs aWMgdW5vd25lZCBHcmFwaGVuZS5UcmlhbmdsZT8gaW5pdF9mcm9tX3BvaW50M2QgKEdyYXBoZW5l LlBvaW50M0Q/IGEsIEdyYXBoZW5lLlBvaW50M0Q/IGIsIEdyYXBoZW5lLlBvaW50M0Q/IGMpOwor KwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuVHJpYW5nbGU/IGluaXRfZnJvbV92ZWMzIChHcmFw aGVuZS5WZWMzPyBhLCBHcmFwaGVuZS5WZWMzPyBiLCBHcmFwaGVuZS5WZWMzPyBjKTsKKysJfQor KwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUg PSAiZ3JhcGhlbmVfdmVjMl90IiwgdHlwZV9pZCA9ICJncmFwaGVuZV92ZWMyX2dldF90eXBlICgp IildCisrCXB1YmxpYyBzdHJ1Y3QgVmVjMiB7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBhZGQgKEdyYXBoZW5lLlZlYzIgYik7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBkaXZpZGUgKEdy YXBoZW5lLlZlYzIgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMg ZmxvYXQgZG90IChHcmFwaGVuZS5WZWMyIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIp XQorKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5lLlZlYzIgdjIpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF94ICgpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF95ICgpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuVmVjMj8gaW5pdCAo ZmxvYXQgeCwgZmxvYXQgeSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJs aWMgdW5vd25lZCBHcmFwaGVuZS5WZWMyPyBpbml0X2Zyb21fZmxvYXQgKFtDQ29kZSAoYXJyYXlf bGVuZ3RoID0gZmFsc2UpXSBmbG9hdCBzcmNbMl0pOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuVmVjMj8gaW5pdF9mcm9tX3ZlYzIgKEdy YXBoZW5lLlZlYzIgc3JjKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJs aWMgR3JhcGhlbmUuVmVjMiBpbnRlcnBvbGF0ZSAoR3JhcGhlbmUuVmVjMiB2MiwgZG91YmxlIGZh Y3Rvcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgbGVu Z3RoICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5l LlZlYzIgbWF4IChHcmFwaGVuZS5WZWMyIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzIgbWluIChHcmFwaGVuZS5WZWMyIGIpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzIgbXVsdGlwbHkg KEdyYXBoZW5lLlZlYzIgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJs aWMgYm9vbCBuZWFyIChHcmFwaGVuZS5WZWMyIHYyLCBmbG9hdCBlcHNpbG9uKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMyIG5lZ2F0ZSAoKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMyIG5v cm1hbGl6ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0 aWMgdW5vd25lZCBHcmFwaGVuZS5WZWMyPyBvbmUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4yIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMiBzY2FsZSAoZmxvYXQgZmFjdG9yKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMyIHN1YnRy YWN0IChHcmFwaGVuZS5WZWMyIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJ cHVibGljIHZvaWQgdG9fZmxvYXQgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSByZWYg ZmxvYXQgZGVzdFsyXSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMg c3RhdGljIHVub3duZWQgR3JhcGhlbmUuVmVjMj8geF9heGlzICgpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzI/IHlf YXhpcyAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMg dW5vd25lZCBHcmFwaGVuZS5WZWMyPyB6ZXJvICgpOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV92ZWMzX3Qi LCB0eXBlX2lkID0gImdyYXBoZW5lX3ZlYzNfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIHN0cnVj dCBWZWMzIHsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVu ZS5WZWMzIGFkZCAoR3JhcGhlbmUuVmVjMyBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIGNyb3NzIChHcmFwaGVuZS5WZWMzIGIpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgZGl2aWRl IChHcmFwaGVuZS5WZWMzIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVi bGljIGZsb2F0IGRvdCAoR3JhcGhlbmUuVmVjMyBiKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjIiKV0KKysJCXB1YmxpYyBib29sIGVxdWFsIChHcmFwaGVuZS5WZWMzIHYyKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBmbG9hdCBnZXRfeCAoKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMyIGdldF94eSAoKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWMzIGdl dF94eTAgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhl bmUuVmVjNCBnZXRfeHl6MCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1 YmxpYyBHcmFwaGVuZS5WZWM0IGdldF94eXoxICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzQgZ2V0X3h5encgKGZsb2F0IHcpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF95ICgpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGdldF96ICgpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuVmVjMz8g aW5pdCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5WZWMzPyBpbml0X2Zyb21fZmxvYXQg KFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdCBzcmNbM10pOworKwkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuVmVjMz8gaW5p dF9mcm9tX3ZlYzMgKEdyYXBoZW5lLlZlYzMgc3JjKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBpbnRlcnBvbGF0ZSAoR3JhcGhlbmUuVmVj MyB2MiwgZG91YmxlIGZhY3Rvcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlw dWJsaWMgZmxvYXQgbGVuZ3RoICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJ cHVibGljIEdyYXBoZW5lLlZlYzMgbWF4IChHcmFwaGVuZS5WZWMzIGIpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzMgbWluIChHcmFwaGVuZS5W ZWMzIGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5l LlZlYzMgbXVsdGlwbHkgKEdyYXBoZW5lLlZlYzMgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4yIildCisrCQlwdWJsaWMgYm9vbCBuZWFyIChHcmFwaGVuZS5WZWMzIHYyLCBmbG9hdCBlcHNp bG9uKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5W ZWMzIG5lZ2F0ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBH cmFwaGVuZS5WZWMzIG5vcm1hbGl6ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWMzPyBvbmUgKCk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjMyBzY2FsZSAoZmxv YXQgZmFjdG9yKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFw aGVuZS5WZWMzIHN1YnRyYWN0IChHcmFwaGVuZS5WZWMzIGIpOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorKwkJcHVibGljIHZvaWQgdG9fZmxvYXQgKFtDQ29kZSAoYXJyYXlfbGVuZ3Ro ID0gZmFsc2UpXSByZWYgZmxvYXQgZGVzdFszXSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuVmVjMz8geF9heGlzICgpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdy YXBoZW5lLlZlYzM/IHlfYXhpcyAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJ CXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHcmFwaGVuZS5WZWMzPyB6X2F4aXMgKCk7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUu VmVjMz8gemVybyAoKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhl bmUtZ29iamVjdC5oIiwgY25hbWUgPSAiZ3JhcGhlbmVfdmVjNF90IiwgdHlwZV9pZCA9ICJncmFw aGVuZV92ZWM0X2dldF90eXBlICgpIildCisrCXB1YmxpYyBzdHJ1Y3QgVmVjNCB7CisrCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBhZGQgKEdyYXBo ZW5lLlZlYzQgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgR3Jh cGhlbmUuVmVjNCBkaXZpZGUgKEdyYXBoZW5lLlZlYzQgYik7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgZG90IChHcmFwaGVuZS5WZWM0IGIpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMiIpXQorKwkJcHVibGljIGJvb2wgZXF1YWwgKEdyYXBoZW5lLlZl YzQgdjIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGdl dF93ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIGZsb2F0IGdl dF94ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5l LlZlYzIgZ2V0X3h5ICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGlj IEdyYXBoZW5lLlZlYzMgZ2V0X3h5eiAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KysJCXB1YmxpYyBmbG9hdCBnZXRfeSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KysJCXB1YmxpYyBmbG9hdCBnZXRfeiAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K KysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzQ/IGluaXQgKGZsb2F0IHgsIGZsb2F0IHks IGZsb2F0IHosIGZsb2F0IHcpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVi bGljIHVub3duZWQgR3JhcGhlbmUuVmVjND8gaW5pdF9mcm9tX2Zsb2F0IChbQ0NvZGUgKGFycmF5 X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXQgc3JjWzRdKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJCXB1YmxpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzQ/IGluaXRfZnJvbV92ZWMyIChH cmFwaGVuZS5WZWMyIHNyYywgZmxvYXQgeiwgZmxvYXQgdyk7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCisrCQlwdWJsaWMgdW5vd25lZCBHcmFwaGVuZS5WZWM0PyBpbml0X2Zyb21fdmVj MyAoR3JhcGhlbmUuVmVjMyBzcmMsIGZsb2F0IHcpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorKwkJcHVibGljIHVub3duZWQgR3JhcGhlbmUuVmVjND8gaW5pdF9mcm9tX3ZlYzQgKEdy YXBoZW5lLlZlYzQgc3JjKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCQlwdWJs aWMgR3JhcGhlbmUuVmVjNCBpbnRlcnBvbGF0ZSAoR3JhcGhlbmUuVmVjNCB2MiwgZG91YmxlIGZh Y3Rvcik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMgZmxvYXQgbGVu Z3RoICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5l LlZlYzQgbWF4IChHcmFwaGVuZS5WZWM0IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzQgbWluIChHcmFwaGVuZS5WZWM0IGIpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIEdyYXBoZW5lLlZlYzQgbXVsdGlwbHkg KEdyYXBoZW5lLlZlYzQgYik7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCQlwdWJs aWMgYm9vbCBuZWFyIChHcmFwaGVuZS5WZWM0IHYyLCBmbG9hdCBlcHNpbG9uKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IG5lZ2F0ZSAoKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IG5v cm1hbGl6ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0 aWMgdW5vd25lZCBHcmFwaGVuZS5WZWM0PyBvbmUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4yIildCisrCQlwdWJsaWMgR3JhcGhlbmUuVmVjNCBzY2FsZSAoZmxvYXQgZmFjdG9yKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBHcmFwaGVuZS5WZWM0IHN1YnRy YWN0IChHcmFwaGVuZS5WZWM0IGIpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJ cHVibGljIHZvaWQgdG9fZmxvYXQgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSByZWYg ZmxvYXQgZGVzdFs0XSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlwdWJsaWMg c3RhdGljIHVub3duZWQgR3JhcGhlbmUuVmVjND8gd19heGlzICgpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdyYXBoZW5lLlZlYzQ/IHhf YXhpcyAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMg dW5vd25lZCBHcmFwaGVuZS5WZWM0PyB5X2F4aXMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisrCQlwdWJsaWMgc3RhdGljIHVub3duZWQgR3JhcGhlbmUuVmVjND8gel9heGlzICgp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorKwkJcHVibGljIHN0YXRpYyB1bm93bmVk IEdyYXBoZW5lLlZlYzQ/IHplcm8gKCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gImdyYXBoZW5lX2V1bGVyX29yZGVyX3Qi LCBjcHJlZml4ID0gIkdSQVBIRU5FX0VVTEVSX09SREVSXyIsIGhhc190eXBlX2lkID0gZmFsc2Up XQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisrCXB1YmxpYyBlbnVtIEV1bGVyT3JkZXIg eworKwkJREVGQVVMVCwKKysJCVhZWiwKKysJCVlaWCwKKysJCVpYWSwKKysJCVhaWSwKKysJCVlY WiwKKysJCVpZWCwKKysJCVNYWVosCisrCQlTWFlYLAorKwkJU1haWSwKKysJCVNYWlgsCisrCQlT WVpYLAorKwkJU1laWSwKKysJCVNZWFosCisrCQlTWVhZLAorKwkJU1pYWSwKKysJCVNaWFosCisr CQlTWllYLAorKwkJU1pZWiwKKysJCVJaWVgsCisrCQlSWFlYLAorKwkJUllaWCwKKysJCVJYWlgs CisrCQlSWFpZLAorKwkJUllaWSwKKysJCVJaWFksCisrCQlSWVhZLAorKwkJUllYWiwKKysJCVJa WFosCisrCQlSWFlaLAorKwkJUlpZWgorKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJncmFwaGVuZV9yYXlfaW50ZXJzZWN0aW9u X2tpbmRfdCIsIGNwcmVmaXggPSAiR1JBUEhFTkVfUkFZX0lOVEVSU0VDVElPTl9LSU5EXyIsIGhh c190eXBlX2lkID0gZmFsc2UpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwlwdWJs aWMgZW51bSBSYXlJbnRlcnNlY3Rpb25LaW5kIHsKKysJCU5PTkUsCisrCQlFTlRFUiwKKysJCUxF QVZFCisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3Qu aCIsIGNuYW1lID0gIkdSQVBIRU5FX0hBU19HQ0MiKV0KKysJcHVibGljIGNvbnN0IGludCBIQVNf R0NDOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwg Y25hbWUgPSAiR1JBUEhFTkVfSEFTX1NDQUxBUiIpXQorKwlwdWJsaWMgY29uc3QgaW50IEhBU19T Q0FMQVI7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0Lmgi LCBjbmFtZSA9ICJHUkFQSEVORV9IQVNfU1NFIildCisrCXB1YmxpYyBjb25zdCBpbnQgSEFTX1NT RTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNu YW1lID0gIkdSQVBIRU5FX1BJIildCisrCXB1YmxpYyBjb25zdCBkb3VibGUgUEk7CisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJncmFwaGVuZS1nb2JqZWN0LmgiLCBjbmFtZSA9ICJHUkFQ SEVORV9QSV8yIildCisrCXB1YmxpYyBjb25zdCBkb3VibGUgUElfMjsKKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gIkdSQVBIRU5FX1NJ TURfUyIpXQorKwlwdWJsaWMgY29uc3Qgc3RyaW5nIFNJTURfUzsKKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gIkdSQVBIRU5FX1ZFQzJf TEVOIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJcHVibGljIGNvbnN0IGludCBW RUMyX0xFTjsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3Qu aCIsIGNuYW1lID0gIkdSQVBIRU5FX1ZFQzNfTEVOIildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKysJcHVibGljIGNvbnN0IGludCBWRUMzX0xFTjsKKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIsIGNuYW1lID0gIkdSQVBIRU5FX1ZFQzRfTEVO IildCisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKysJcHVibGljIGNvbnN0IGludCBWRUM0 X0xFTjsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImdyYXBoZW5lLWdvYmplY3QuaCIs IGNuYW1lID0gImZhbHNlIildCisrCXB1YmxpYyBjb25zdCBpbnQgQGZhbHNlOworKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiZ3JhcGhlbmUtZ29iamVjdC5oIiwgY25hbWUgPSAidHJ1ZSIp XQorKwlwdWJsaWMgY29uc3QgaW50IEB0cnVlOworK30KK2RpZmYgLS1naXQgdmFwaS9saWJtdXR0 ZXItMi5kZXBzIHZhcGkvbGlibXV0dGVyLTIuZGVwcworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CitpbmRleCAxZjNjOTA3OS4uMDAwMDAwMDAKKy0tLSB2YXBpL2xpYm11dHRlci0yLmRlcHMKKysr KyAvZGV2L251bGwKK0BAIC0xLDkgKzAsMCBAQAorLWNhaXJvCistZ3NldHRpbmdzLWRlc2t0b3At c2NoZW1hcworLWdkay0zLjAKKy1nZGstcGl4YnVmLTIuMAorLWd0aystMy4wCisteDExCisteGZp eGVzLTQuMAorLWNsdXR0ZXItMS4wCistY29nbC0xLjAKK2RpZmYgLS1naXQgdmFwaS9saWJtdXR0 ZXItMi52YXBpIHZhcGkvbGlibXV0dGVyLTIudmFwaQorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CitpbmRleCAwYTZjNDM1Ny4uMDAwMDAwMDAKKy0tLSB2YXBpL2xpYm11dHRlci0yLnZhcGkKKysr KyAvZGV2L251bGwKK0BAIC0xLDEzMjUgKzAsMCBAQAorLS8qIGxpYm11dHRlci52YXBpIGdlbmVy YXRlZCBieSB2YXBpZ2VuLCBkbyBub3QgbW9kaWZ5LiAqLworLQorLVtDQ29kZSAoY3ByZWZpeCA9 ICJNZXRhIiwgZ2lyX25hbWVzcGFjZSA9ICJNZXRhIiwgZ2lyX3ZlcnNpb24gPSAiMy4wIiwgbG93 ZXJfY2FzZV9jcHJlZml4ID0gIm1ldGFfIildCistbmFtZXNwYWNlIE1ldGEgeworLQluYW1lc3Bh Y2UgUHJlZnMgeworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIp XQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGFkZF9saXN0ZW5lciAoTWV0YS5QcmVmc0NoYW5nZWRG dW5jIGZ1bmMpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIp XQorLQkJcHVibGljIHN0YXRpYyBib29sIGJlbGxfaXNfYXVkaWJsZSAoKTsKKy0JCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9p ZCBjaGFuZ2Vfd29ya3NwYWNlX25hbWUgKGludCBpLCBzdHJpbmcgbmFtZSk7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIEdE ZXNrdG9wLlRpdGxlYmFyQWN0aW9uIGdldF9hY3Rpb25fZG91YmxlX2NsaWNrX3RpdGxlYmFyICgp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVi bGljIHN0YXRpYyBHRGVza3RvcC5UaXRsZWJhckFjdGlvbiBnZXRfYWN0aW9uX21pZGRsZV9jbGlj a190aXRsZWJhciAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZz LmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgR0Rlc2t0b3AuVGl0bGViYXJBY3Rpb24gZ2V0X2FjdGlv bl9yaWdodF9jbGlja190aXRsZWJhciAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfYXR0YWNoX21vZGFs X2RpYWxvZ3MgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5o IildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2F1dG9fbWF4aW1pemUgKCk7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGlj IGJvb2wgZ2V0X2F1dG9fcmFpc2UgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGludCBnZXRfYXV0b19yYWlzZV9kZWxh eSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0J CXB1YmxpYyBzdGF0aWMgTWV0YS5CdXR0b25MYXlvdXQgZ2V0X2J1dHRvbl9sYXlvdXQgKCk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMg c3RhdGljIGJvb2wgZ2V0X2NlbnRlcl9uZXdfd2luZG93cyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRf Y29tcG9zaXRpbmdfbWFuYWdlciAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IGdldF9jdXJzb3Jfc2l6ZSAoKTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgZ2V0X2N1cnNvcl90aGVtZSAoKTsKKy0JCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9v bCBnZXRfZGlzYWJsZV93b3JrYXJvdW5kcyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IGdldF9kcmFnX3RocmVz aG9sZCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgaW50IGdldF9kcmFnZ2FibGVfYm9yZGVyX3dpZHRoICgpOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0 YXRpYyBib29sIGdldF9keW5hbWljX3dvcmtzcGFjZXMgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2Vk Z2VfdGlsaW5nICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMu aCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIGdldF9mb2N1c19jaGFuZ2Vfb25fcG9pbnRlcl9y ZXN0ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQor LQkJcHVibGljIHN0YXRpYyBHRGVza3RvcC5Gb2N1c01vZGUgZ2V0X2ZvY3VzX21vZGUgKCk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMg c3RhdGljIEdEZXNrdG9wLkZvY3VzTmV3V2luZG93cyBnZXRfZm9jdXNfbmV3X3dpbmRvd3MgKCk7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJs aWMgc3RhdGljIGJvb2wgZ2V0X2ZvcmNlX2Z1bGxzY3JlZW4gKCk7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0 X2dub21lX2FjY2Vzc2liaWxpdHkgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2dub21lX2FuaW1hdGlv bnMgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCist CQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2lnbm9yZV9yZXF1ZXN0X2hpZGVfdGl0bGViYXIgKCk7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJs aWMgc3RhdGljIE1ldGEuS2V5QmluZGluZ0FjdGlvbiBnZXRfa2V5YmluZGluZ19hY3Rpb24gKHN0 cmluZyBuYW1lKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgi KV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IGdldF9tb3VzZV9idXR0b25fbWVudSAoKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0 aWMgTWV0YS5WaXJ0dWFsTW9kaWZpZXIgZ2V0X21vdXNlX2J1dHRvbl9tb2RzICgpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRp YyBpbnQgZ2V0X21vdXNlX2J1dHRvbl9yZXNpemUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIGludCBnZXRfbnVtX3dv cmtzcGFjZXMgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5o IildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X3JhaXNlX29uX2NsaWNrICgpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRp YyBib29sIGdldF9zaG93X2ZhbGxiYWNrX2FwcF9tZW51ICgpOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIFBh bmdvLkZvbnREZXNjcmlwdGlvbiBnZXRfdGl0bGViYXJfZm9udCAoKTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBn ZXRfdmlzdWFsX2JlbGwgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9w cmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIEdEZXNrdG9wLlZpc3VhbEJlbGxUeXBlIGdldF92 aXN1YWxfYmVsbF90eXBlICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv cHJlZnMuaCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIHN0cmluZyBnZXRfd29ya3NwYWNl X25hbWUgKGludCBpKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZz LmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfd29ya3NwYWNlc19vbmx5X29uX3ByaW1h cnkgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCist CQlwdWJsaWMgc3RhdGljIHZvaWQgaW5pdCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3ByZWZzLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBvdmVycmlkZV9wcmVm ZXJlbmNlX3NjaGVtYSAoc3RyaW5nIGtleSwgc3RyaW5nIHNjaGVtYSk7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQg cmVtb3ZlX2xpc3RlbmVyIChNZXRhLlByZWZzQ2hhbmdlZEZ1bmMgZnVuYyk7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIHZv aWQgc2V0X2ZvcmNlX2Z1bGxzY3JlZW4gKGJvb2wgd2hldGhlcik7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0 X2lnbm9yZV9yZXF1ZXN0X2hpZGVfdGl0bGViYXIgKGJvb2wgd2hldGhlcik7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIildCistCQlwdWJsaWMgc3RhdGljIHZv aWQgc2V0X251bV93b3Jrc3BhY2VzIChpbnQgbl93b3Jrc3BhY2VzKTsKKy0JfQorLQluYW1lc3Bh Y2UgVXRpbCB7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBj bmFtZSA9ICJtZXRhX2FkZF92ZXJib3NlX3RvcGljIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQg YWRkX3ZlcmJvc2VfdG9waWMgKE1ldGEuRGVidWdUb3BpYyB0b3BpYyk7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2J1ZyIpXQorLQkJ cHVibGljIHN0YXRpYyB2b2lkIGJ1ZyAoc3RyaW5nIGZvcm1hdCwgLi4uKTsKKy0JCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfZGVidWdfc3Bl d19yZWFsIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZGVidWdfc3Bld19yZWFsIChzdHJpbmcg Zm9ybWF0LCAuLi4pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IiwgY25hbWUgPSAibWV0YV9kaXNhYmxlX3VucmVkaXJlY3RfZm9yX3NjcmVlbiIpXQorLQkJcHVi bGljIHN0YXRpYyB2b2lkIGRpc2FibGVfdW5yZWRpcmVjdF9mb3Jfc2NyZWVuIChNZXRhLlNjcmVl biBzY3JlZW4pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRv ci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIildCist CQlwdWJsaWMgc3RhdGljIHZvaWQgZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIChNZXRhLlNjcmVl biBzY3JlZW4pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwg Y25hbWUgPSAibWV0YV9lbmFibGVfdW5yZWRpcmVjdF9mb3Jfc2NyZWVuIildCistCQlwdWJsaWMg c3RhdGljIHZvaWQgZW5hYmxlX3VucmVkaXJlY3RfZm9yX3NjcmVlbiAoTWV0YS5TY3JlZW4gc2Ny ZWVuKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1l ID0gIm1ldGFfZXJyb3JfdHJhcF9wb3AiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBlcnJvcl90 cmFwX3BvcCAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9lcnJvcl90cmFwX3B1c2giKV0KKy0J CXB1YmxpYyBzdGF0aWMgdm9pZCBlcnJvcl90cmFwX3B1c2ggKE1ldGEuRGlzcGxheSBkaXNwbGF5 KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0g Im1ldGFfZXJyb3JfdHJhcF9wdXNoX3dpdGhfcmV0dXJuIildCistCQlwdWJsaWMgc3RhdGljIHZv aWQgZXJyb3JfdHJhcF9wdXNoX3dpdGhfcmV0dXJuIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRh X2V4dGVybmFsX2JpbmRpbmdfbmFtZV9mb3JfYWN0aW9uIildCistCQlwdWJsaWMgc3RhdGljIHN0 cmluZyBleHRlcm5hbF9iaW5kaW5nX25hbWVfZm9yX2FjdGlvbiAodWludCBrZXliaW5kaW5nX2Fj dGlvbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFt ZSA9ICJtZXRhX2ZhdGFsIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZmF0YWwgKHN0cmluZyBm b3JtYXQsIC4uLik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi LCBjbmFtZSA9ICJtZXRhX2ZyZWVfZ3NsaXN0X2FuZF9lbGVtZW50cyIpXQorLQkJcHVibGljIHN0 YXRpYyB2b2lkIGZyZWVfZ3NsaXN0X2FuZF9lbGVtZW50cyAoR0xpYi5TTGlzdDx2b2lkKj4gbGlz dF90b19kZWVwX2ZyZWUpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFp bi5oIiwgY25hbWUgPSAibWV0YV9nX3V0Zjhfc3RybmR1cCIpXQorLQkJcHVibGljIHN0YXRpYyBz dHJpbmcgZ191dGY4X3N0cm5kdXAgKHN0cmluZyBzcmMsIHNpemVfdCBuKTsKKy0JCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfZ2V0X2xvY2Fs ZV9kaXJlY3Rpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0YS5Mb2NhbGVEaXJlY3Rpb24gZ2V0 X2xvY2FsZV9kaXJlY3Rpb24gKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2dldF9vdmVybGF5X3dpbmRvdyIpXQorLQkJcHVibGlj IHN0YXRpYyBYLldpbmRvdyBnZXRfb3ZlcmxheV93aW5kb3cgKE1ldGEuU2NyZWVuIHNjcmVlbik7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJt ZXRhX2dyYXZpdHlfdG9fc3RyaW5nIildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgc3RyaW5n IGdyYXZpdHlfdG9fc3RyaW5nIChpbnQgZ3Jhdml0eSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2lzX2RlYnVnZ2luZyIpXQorLQkJ cHVibGljIHN0YXRpYyBib29sIGlzX2RlYnVnZ2luZyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFfaXNfc3luY2luZyIpXQorLQkJ cHVibGljIHN0YXRpYyBib29sIGlzX3N5bmNpbmcgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2lzX3ZlcmJvc2UiKV0KKy0JCXB1 YmxpYyBzdGF0aWMgYm9vbCBpc192ZXJib3NlICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9pc193YXlsYW5kX2NvbXBvc2l0b3Ii KV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBpc193YXlsYW5kX2NvbXBvc2l0b3IgKCk7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX2xh dGVyX2FkZCIpXQorLQkJcHVibGljIHN0YXRpYyB1aW50IGxhdGVyX2FkZCAoTWV0YS5MYXRlclR5 cGUgd2hlbiwgb3duZWQgR0xpYi5Tb3VyY2VGdW5jIGZ1bmMpOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9sYXRlcl9yZW1vdmUiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgdm9pZCBsYXRlcl9yZW1vdmUgKHVpbnQgbGF0ZXJfaWQpOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV9w b3Bfbm9fbXNnX3ByZWZpeCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHBvcF9ub19tc2dfcHJl Zml4ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25h bWUgPSAibWV0YV9wdXNoX25vX21zZ19wcmVmaXgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBw dXNoX25vX21zZ19wcmVmaXggKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX3JlY3QiKV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0YS5S ZWN0YW5nbGU/IHJlY3QgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0J CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIm1ldGFf cmVtb3ZlX3ZlcmJvc2VfdG9waWMiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCByZW1vdmVfdmVy Ym9zZV90b3BpYyAoTWV0YS5EZWJ1Z1RvcGljIHRvcGljKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX3NldF9z dGFnZV9pbnB1dF9yZWdpb24iKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc3RhZ2VfaW5w dXRfcmVnaW9uIChNZXRhLlNjcmVlbiBzY3JlZW4sIFguWHNlcnZlclJlZ2lvbiByZWdpb24pOwor LQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0 YV9zaG93X2RpYWxvZyIpXQorLQkJcHVibGljIHN0YXRpYyBHTGliLlBpZCBzaG93X2RpYWxvZyAo c3RyaW5nIHR5cGUsIHN0cmluZyBtZXNzYWdlLCBzdHJpbmc/IHRpbWVvdXQgPSBudWxsLCBzdHJp bmc/IGRpc3BsYXkgPSBudWxsLCBzdHJpbmc/IG9rX3RleHQgPSBudWxsLCBzdHJpbmc/IGNhbmNl bF90ZXh0ID0gbnVsbCwgc3RyaW5nPyBpY29uX25hbWUgPSBudWxsLCBpbnQgdHJhbnNpZW50X2Zv ciA9IDAsIEdMaWIuU0xpc3Q8c3RyaW5nPj8gY29sdW1ucyA9IG51bGwsIEdMaWIuU0xpc3Q8c3Ry aW5nPj8gZW50cmllcyA9IG51bGwpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV90b3BpY19yZWFsIildCistCQlwdWJsaWMgc3RhdGlj IHZvaWQgdG9waWNfcmVhbCAoTWV0YS5EZWJ1Z1RvcGljIHRvcGljLCBzdHJpbmcgZm9ybWF0LCAu Li4pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUg PSAibWV0YV91bnNpZ25lZF9sb25nX2VxdWFsIildCistCQlwdWJsaWMgc3RhdGljIGludCB1bnNp Z25lZF9sb25nX2VxdWFsICh2b2lkKiB2MSwgdm9pZCogdjIpOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAibWV0YV91bnNpZ25lZF9sb25nX2hh c2giKV0KKy0JCXB1YmxpYyBzdGF0aWMgdWludCB1bnNpZ25lZF9sb25nX2hhc2ggKHZvaWQqIHYp OworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAi bWV0YV92ZXJib3NlX3JlYWwiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJib3NlX3JlYWwg KHN0cmluZyBmb3JtYXQsIC4uLik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiLCBjbmFtZSA9ICJtZXRhX3dhcm5pbmciKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9p ZCB3YXJuaW5nIChzdHJpbmcgZm9ybWF0LCAuLi4pOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZW5kX2dldF90eXBl ICgpIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBCYWNrZW5kIDogR0xpYi5PYmplY3Qgewor LQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVk IEJhY2tlbmQgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJh Y2tlbmQuaCIsIGNuYW1lID0gIm1ldGFfZ2V0X2JhY2tlbmQiKV0KKy0JCXB1YmxpYyBzdGF0aWMg dW5vd25lZCBNZXRhLkJhY2tlbmQgZ2V0X2JhY2tlbmQgKCk7CistCQlwdWJsaWMgdW5vd25lZCBD bHV0dGVyLkFjdG9yIGdldF9zdGFnZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGxvY2tfbGF5b3V0X2dy b3VwICh1aW50IGlkeCk7CistCQlwdWJsaWMgdm9pZCBzZXRfa2V5bWFwIChzdHJpbmcgbGF5b3V0 cywgc3RyaW5nIHZhcmlhbnRzLCBzdHJpbmcgb3B0aW9ucyk7CistCQlwdWJsaWMgc2lnbmFsIHZv aWQga2V5bWFwX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQga2V5bWFwX2xheW91 dF9ncm91cF9jaGFuZ2VkICh1aW50IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbGFz dF9kZXZpY2VfY2hhbmdlZCAoaW50IG9iamVjdCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dy b3VuZF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgQmFja2dyb3VuZCA6IEdMaWIuT2Jq ZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXB1 YmxpYyBCYWNrZ3JvdW5kIChNZXRhLlNjcmVlbiBzY3JlZW4pOworLQkJcHVibGljIHN0YXRpYyB2 b2lkIHJlZnJlc2hfYWxsICgpOworLQkJcHVibGljIHZvaWQgc2V0X2JsZW5kIChHTGliLkZpbGUg ZmlsZTEsIEdMaWIuRmlsZSBmaWxlMiwgZG91YmxlIGJsZW5kX2ZhY3RvciwgR0Rlc2t0b3AuQmFj a2dyb3VuZFN0eWxlIHN0eWxlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9jb2xvciAoQ2x1dHRlci5D b2xvciBjb2xvcik7CistCQlwdWJsaWMgdm9pZCBzZXRfZmlsZSAoR0xpYi5GaWxlIGZpbGUsIEdE ZXNrdG9wLkJhY2tncm91bmRTdHlsZSBzdHlsZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfZ3JhZGll bnQgKEdEZXNrdG9wLkJhY2tncm91bmRTaGFkaW5nIHNoYWRpbmdfZGlyZWN0aW9uLCBDbHV0dGVy LkNvbG9yIGNvbG9yLCBDbHV0dGVyLkNvbG9yIHNlY29uZF9jb2xvcik7CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLlNjcmVlbiBtZXRhX3NjcmVlbiB7IG93bmVkIGdldDsg Y29uc3RydWN0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgY2hhbmdlZCAoKTsKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCIs IHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2FjdG9yX2dldF90eXBlICgpIildCistCXB1Ymxp YyBjbGFzcyBCYWNrZ3JvdW5kQWN0b3IgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3Is IENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJs ZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJD bHV0dGVyQWN0b3IqIildCistCQlwdWJsaWMgQmFja2dyb3VuZEFjdG9yIChNZXRhLlNjcmVlbiBz Y3JlZW4sIGludCBtb25pdG9yKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9iYWNrZ3JvdW5kIChNZXRh LkJhY2tncm91bmQgYmFja2dyb3VuZCk7CistCQlwdWJsaWMgdm9pZCBzZXRfdmlnbmV0dGUgKGJv b2wgZW5hYmxlZCwgZG91YmxlIGJyaWdodG5lc3MsIGRvdWJsZSBzaGFycG5lc3MpOworLQkJW05v QWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5CYWNrZ3JvdW5kIGJhY2tncm91bmQgeyBv d25lZCBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgZG91Ymxl IGJyaWdodG5lc3MgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJs aWMgTWV0YS5TY3JlZW4gbWV0YV9zY3JlZW4geyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJ W05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IG1vbml0b3IgeyBnZXQ7IGNvbnN0cnVj dDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCB2aWduZXR0ZSB7IGdl dDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBkb3VibGUgdmlnbmV0 dGVfc2hhcnBuZXNzIHsgZ2V0OyBzZXQ7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNr Z3JvdW5kX2dyb3VwX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kR3Jv dXAgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwg Q2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlw dWJsaWMgQmFja2dyb3VuZEdyb3VwICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhY2tn cm91bmRfaW1hZ2VfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIEJhY2tncm91bmRJbWFn ZSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlKV0KKy0JCXByb3RlY3RlZCBCYWNrZ3JvdW5kSW1hZ2UgKCk7CistCQlwdWJsaWMgYm9vbCBn ZXRfc3VjY2VzcyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfdGV4dHVy ZSAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2xvYWRlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9p ZCBsb2FkZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWltYWdlLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9pbWFnZV9j YWNoZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgQmFja2dyb3VuZEltYWdlQ2FjaGUg OiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSldCistCQlwcm90ZWN0ZWQgQmFja2dyb3VuZEltYWdlQ2FjaGUgKCk7CistCQlwdWJsaWMgc3Rh dGljIHVub3duZWQgTWV0YS5CYWNrZ3JvdW5kSW1hZ2VDYWNoZSBnZXRfZGVmYXVsdCAoKTsKKy0J CXB1YmxpYyBNZXRhLkJhY2tncm91bmRJbWFnZSBsb2FkIChHTGliLkZpbGUgZmlsZSk7CistCQlw dWJsaWMgdm9pZCBwdXJnZSAoR0xpYi5GaWxlIGZpbGUpOworLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCIsIHR5cGVfaWQgPSAibWV0YV9iYXJyaWVyX2dl dF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBCYXJyaWVyIDogR0xpYi5PYmplY3QgeworLQkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIEJh cnJpZXIgKCk7CistCQlwdWJsaWMgdm9pZCBkZXN0cm95ICgpOworLQkJcHVibGljIGJvb2wgaXNf YWN0aXZlICgpOworLQkJcHVibGljIHZvaWQgcmVsZWFzZSAoTWV0YS5CYXJyaWVyRXZlbnQgZXZl bnQpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgTWV0YS5CYXJyaWVyRGlyZWN0 aW9uIGRpcmVjdGlvbnMgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlwdWJsaWMgTWV0YS5EaXNwbGF5IGRpc3BsYXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsg fQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IHgxIHsgZ2V0OyBjb25zdHJ1 Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCB4MiB7IGdldDsgY29u c3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgeTEgeyBnZXQ7 IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IHkyIHsg Z2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBoaXQgKE1ldGEuQmFycmll ckV2ZW50IGV2ZW50KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBsZWZ0IChNZXRhLkJhcnJpZXJF dmVudCBldmVudCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFp bi5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdf Ym94ZWRfZnJlZSIsIHR5cGVfaWQgPSAibWV0YV9iYXJyaWVyX2V2ZW50X2dldF90eXBlICgpIild CistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgQmFycmllckV2ZW50IHsKKy0JCXB1YmxpYyBp bnQgZHQ7CistCQlwdWJsaWMgZG91YmxlIGR4OworLQkJcHVibGljIGRvdWJsZSBkeTsKKy0JCXB1 YmxpYyBpbnQgZXZlbnRfaWQ7CistCQlwdWJsaWMgYm9vbCBncmFiYmVkOworLQkJcHVibGljIGJv b2wgcmVsZWFzZWQ7CistCQlwdWJsaWMgdWludDMyIHRpbWU7CistCQlwdWJsaWMgZG91YmxlIHg7 CistCQlwdWJsaWMgZG91YmxlIHk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvY29tcG9zaXRvci5oIildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgQ29tcG9z aXRvciB7CistCQlwdWJsaWMgdm9pZCBhZGRfd2luZG93IChNZXRhLldpbmRvdyB3aW5kb3cpOwor LQkJcHVibGljIHZvaWQgZGVzdHJveSAoKTsKKy0JCXB1YmxpYyBib29sIGZpbHRlcl9rZXliaW5k aW5nIChNZXRhLktleUJpbmRpbmcgYmluZGluZyk7CistCQlwdWJsaWMgdm9pZCBmbGFzaF9zY3Jl ZW4gKE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9mb2N1c19zdGFnZV93aW5k b3ciKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBmb2N1c19zdGFnZV93aW5kb3cgKE1ldGEuU2Ny ZWVuIHNjcmVlbiwgdWludDMyIHRpbWVzdGFtcCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9nZXRfZmVlZGJh Y2tfZ3JvdXBfZm9yX3NjcmVlbiIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIu QWN0b3IgZ2V0X2ZlZWRiYWNrX2dyb3VwX2Zvcl9zY3JlZW4gKE1ldGEuU2NyZWVuIHNjcmVlbik7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5o IiwgY25hbWUgPSAibWV0YV9nZXRfc3RhZ2VfZm9yX3NjcmVlbiIpXQorLQkJcHVibGljIHN0YXRp YyB1bm93bmVkIENsdXR0ZXIuQWN0b3I/IGdldF9zdGFnZV9mb3Jfc2NyZWVuIChNZXRhLlNjcmVl biBzY3JlZW4pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRv ci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZ2V0X3RvcF93aW5kb3dfZ3JvdXBfZm9yX3NjcmVl biIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3I/IGdldF90b3Bfd2lu ZG93X2dyb3VwX2Zvcl9zY3JlZW4gKE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0 YV9nZXRfd2luZG93X2FjdG9ycyIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIEdMaWIuTGlz dDx3ZWFrIE1ldGEuV2luZG93QWN0b3I+PyBnZXRfd2luZG93X2FjdG9ycyAoTWV0YS5TY3JlZW4g c2NyZWVuKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dldF93aW5kb3dfZ3JvdXBfZm9yX3NjcmVlbiIpXQor LQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3I/IGdldF93aW5kb3dfZ3JvdXBf Zm9yX3NjcmVlbiAoTWV0YS5TY3JlZW4gc2NyZWVuKTsKKy0JCXB1YmxpYyB2b2lkIGhpZGVfdGls ZV9wcmV2aWV3ICgpOworLQkJcHVibGljIHZvaWQgaGlkZV93aW5kb3cgKE1ldGEuV2luZG93IHdp bmRvdywgTWV0YS5Db21wRWZmZWN0IGVmZmVjdCk7CistCQlwdWJsaWMgdm9pZCBtYW5hZ2UgKCk7 CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JCXB1Ymxp YyBzdGF0aWMgdW5vd25lZCBNZXRhLkNvbXBvc2l0b3IgQG5ldyAoTWV0YS5EaXNwbGF5IGRpc3Bs YXkpOworLQkJcHVibGljIHZvaWQgcXVldWVfZnJhbWVfZHJhd24gKE1ldGEuV2luZG93IHdpbmRv dywgYm9vbCBub19kZWxheV9mcmFtZSk7CistCQlwdWJsaWMgdm9pZCByZW1vdmVfd2luZG93IChN ZXRhLldpbmRvdyB3aW5kb3cpOworLQkJcHVibGljIHZvaWQgc2hvd190aWxlX3ByZXZpZXcgKE1l dGEuV2luZG93IHdpbmRvdywgTWV0YS5SZWN0YW5nbGUgdGlsZV9yZWN0LCBpbnQgdGlsZV9tb25p dG9yX251bWJlcik7CistCQlwdWJsaWMgdm9pZCBzaG93X3dpbmRvdyAoTWV0YS5XaW5kb3cgd2lu ZG93LCBNZXRhLkNvbXBFZmZlY3QgZWZmZWN0KTsKKy0JCXB1YmxpYyB2b2lkIHNob3dfd2luZG93 X21lbnUgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5XaW5kb3dNZW51VHlwZSBtZW51LCBpbnQg eCwgaW50IHkpOworLQkJcHVibGljIHZvaWQgc2hvd193aW5kb3dfbWVudV9mb3JfcmVjdCAoTWV0 YS5XaW5kb3cgd2luZG93LCBNZXRhLldpbmRvd01lbnVUeXBlIG1lbnUsIE1ldGEuUmVjdGFuZ2xl IHJlY3QpOworLQkJcHVibGljIHZvaWQgc2l6ZV9jaGFuZ2Vfd2luZG93IChNZXRhLldpbmRvdyB3 aW5kb3csIE1ldGEuU2l6ZUNoYW5nZSB3aGljaF9jaGFuZ2UsIE1ldGEuUmVjdGFuZ2xlIG9sZF9m cmFtZV9yZWN0LCBNZXRhLlJlY3RhbmdsZSBvbGRfYnVmZmVyX3JlY3QpOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1l dGFfc3RhZ2VfaXNfZm9jdXNlZCIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHN0YWdlX2lzX2Zv Y3VzZWQgKE1ldGEuU2NyZWVuIHNjcmVlbik7CistCQlwdWJsaWMgdm9pZCBzd2l0Y2hfd29ya3Nw YWNlIChNZXRhLldvcmtzcGFjZSBmcm9tLCBNZXRhLldvcmtzcGFjZSB0bywgTWV0YS5Nb3Rpb25E aXJlY3Rpb24gZGlyZWN0aW9uKTsKKy0JCXB1YmxpYyB2b2lkIHN5bmNfc3RhY2sgKEdMaWIuTGlz dDxNZXRhLldpbmRvd0FjdG9yPiBzdGFjayk7CistCQlwdWJsaWMgdm9pZCBzeW5jX3VwZGF0ZXNf ZnJvemVuIChNZXRhLldpbmRvdyB3aW5kb3cpOworLQkJcHVibGljIHZvaWQgc3luY193aW5kb3df Z2VvbWV0cnkgKE1ldGEuV2luZG93IHdpbmRvdywgYm9vbCBkaWRfcGxhY2VtZW50KTsKKy0JCXB1 YmxpYyB2b2lkIHVubWFuYWdlICgpOworLQkJcHVibGljIHZvaWQgd2luZG93X29wYWNpdHlfY2hh bmdlZCAoTWV0YS5XaW5kb3cgd2luZG93KTsKKy0JCXB1YmxpYyB2b2lkIHdpbmRvd19zaGFwZV9j aGFuZ2VkIChNZXRhLldpbmRvdyB3aW5kb3cpOworLQkJcHVibGljIHZvaWQgd2luZG93X3N1cmZh Y2VfY2hhbmdlZCAoTWV0YS5XaW5kb3cgd2luZG93KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgiLCB0eXBlX2lkID0gIm1ldGFf Y3Vyc29yX3RyYWNrZXJfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIEN1cnNvclRyYWNr ZXIgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSldCistCQlwcm90ZWN0ZWQgQ3Vyc29yVHJhY2tlciAoKTsKKy0JCXB1YmxpYyBzdGF0aWMg dW5vd25lZCBNZXRhLkN1cnNvclRyYWNrZXIgZ2V0X2Zvcl9zY3JlZW4gKE1ldGEuU2NyZWVuIHNj cmVlbik7CistCQlwdWJsaWMgdm9pZCBnZXRfaG90IChvdXQgaW50IHgsIG91dCBpbnQgeSk7Cist CQlwdWJsaWMgdm9pZCBnZXRfcG9pbnRlciAoaW50IHgsIGludCB5LCBDbHV0dGVyLk1vZGlmaWVy VHlwZSBtb2RzKTsKKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfc3ByaXRlICgp OworLQkJcHVibGljIHZvaWQgc2V0X3BvaW50ZXJfdmlzaWJsZSAoYm9vbCB2aXNpYmxlKTsKKy0J CXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfY2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9kaXNwbGF5LmgiLCB0eXBlX2lkID0gIm1ldGFfZGlzcGxh eV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgRGlzcGxheSA6IEdMaWIuT2JqZWN0IHsK Ky0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3Rl ZCBEaXNwbGF5ICgpOworLQkJcHVibGljIHZvaWQgYWRkX2lnbm9yZWRfY3Jvc3Npbmdfc2VyaWFs ICh1bG9uZyBzZXJpYWwpOworLQkJcHVibGljIHVpbnQgYWRkX2tleWJpbmRpbmcgKHN0cmluZyBu YW1lLCBHTGliLlNldHRpbmdzIHNldHRpbmdzLCBNZXRhLktleUJpbmRpbmdGbGFncyBmbGFncywg b3duZWQgTWV0YS5LZXlIYW5kbGVyRnVuYyBoYW5kbGVyKTsKKy0JCXB1YmxpYyBib29sIGJlZ2lu X2dyYWJfb3AgKE1ldGEuU2NyZWVuIHNjcmVlbiwgTWV0YS5XaW5kb3cgd2luZG93LCBNZXRhLkdy YWJPcCBvcCwgYm9vbCBwb2ludGVyX2FscmVhZHlfZ3JhYmJlZCwgYm9vbCBmcmFtZV9hY3Rpb24s IGludCBidXR0b24sIHVsb25nIG1vZG1hc2ssIHVpbnQzMiB0aW1lc3RhbXAsIGludCByb290X3gs IGludCByb290X3kpOworLQkJcHVibGljIHZvaWQgY2xlYXJfbW91c2VfbW9kZSAoKTsKKy0JCXB1 YmxpYyB2b2lkIGVuZF9ncmFiX29wICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lk IGZvY3VzX3RoZV9ub19mb2N1c193aW5kb3cgKE1ldGEuU2NyZWVuIHNjcmVlbiwgdWludDMyIHRp bWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBmcmVlemVfa2V5Ym9hcmQgKHVpbnQzMiB0aW1lc3Rh bXApOworLQkJcHVibGljIHVub3duZWQgTWV0YS5Db21wb3NpdG9yIGdldF9jb21wb3NpdG9yICgp OworLQkJcHVibGljIHVpbnQzMiBnZXRfY3VycmVudF90aW1lICgpOworLQkJcHVibGljIHVpbnQz MiBnZXRfY3VycmVudF90aW1lX3JvdW5kdHJpcCAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2RhbWFn ZV9ldmVudF9iYXNlICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X2ZvY3Vz X3dpbmRvdyAoKTsKKy0JCXB1YmxpYyBNZXRhLkdyYWJPcCBnZXRfZ3JhYl9vcCAoKTsKKy0JCXB1 YmxpYyB1aW50IGdldF9rZXliaW5kaW5nX2FjdGlvbiAodWludCBrZXljb2RlLCB1bG9uZyBtYXNr KTsKKy0JCXB1YmxpYyB1aW50MzIgZ2V0X2xhc3RfdXNlcl90aW1lICgpOworLQkJcHVibGljIGlu dCBnZXRfc2hhcGVfZXZlbnRfYmFzZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93 IGdldF90YWJfY3VycmVudCAoTWV0YS5UYWJMaXN0IHR5cGUsIE1ldGEuV29ya3NwYWNlIHdvcmtz cGFjZSk7CistCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgTWV0YS5XaW5kb3c+IGdldF90YWJfbGlz dCAoTWV0YS5UYWJMaXN0IHR5cGUsIE1ldGEuV29ya3NwYWNlPyB3b3Jrc3BhY2UpOworLQkJcHVi bGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X3RhYl9uZXh0IChNZXRhLlRhYkxpc3QgdHlwZSwg TWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlLCBNZXRhLldpbmRvdz8gd2luZG93LCBib29sIGJhY2t3 YXJkKTsKKy0JCXB1YmxpYyB1bm93bmVkIFguRGlzcGxheSBnZXRfeGRpc3BsYXkgKCk7CistCQlw dWJsaWMgaW50IGdldF94aW5wdXRfb3Bjb2RlICgpOworLQkJcHVibGljIHVpbnQgZ3JhYl9hY2Nl bGVyYXRvciAoc3RyaW5nIGFjY2VsZXJhdG9yKTsKKy0JCXB1YmxpYyBib29sIGhhc19zaGFwZSAo KTsKKy0JCXB1YmxpYyBib29sIGlzX3BvaW50ZXJfZW11bGF0aW5nX3NlcXVlbmNlIChDbHV0dGVy LkV2ZW50U2VxdWVuY2U/IHNlcXVlbmNlKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuR3JvdXAg bG9va3VwX2dyb3VwIChYLldpbmRvdyBncm91cF9sZWFkZXIpOworLQkJcHVibGljIGJvb2wgcmVt b3ZlX2tleWJpbmRpbmcgKHN0cmluZyBuYW1lKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9pbnB1dF9m b2N1c193aW5kb3cgKE1ldGEuV2luZG93IHdpbmRvdywgYm9vbCBmb2N1c19mcmFtZSwgdWludDMy IHRpbWVzdGFtcCk7CistCQlwdWJsaWMgR0xpYi5TTGlzdDx3ZWFrIE1ldGEuV2luZG93PiBzb3J0 X3dpbmRvd3NfYnlfc3RhY2tpbmcgKEdMaWIuU0xpc3Q8TWV0YS5XaW5kb3c+IHdpbmRvd3MpOwor LQkJcHVibGljIGJvb2wgc3VwcG9ydHNfZXh0ZW5kZWRfYmFycmllcnMgKCk7CistCQlwdWJsaWMg dm9pZCB1bmZyZWV6ZV9rZXlib2FyZCAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgYm9v bCB1bmdyYWJfYWNjZWxlcmF0b3IgKHVpbnQgYWN0aW9uX2lkKTsKKy0JCXB1YmxpYyB2b2lkIHVu Z3JhYl9rZXlib2FyZCAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCB1bm1hbmFn ZV9zY3JlZW4gKE1ldGEuU2NyZWVuIHNjcmVlbiwgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJs aWMgYm9vbCB4c2VydmVyX3RpbWVfaXNfYmVmb3JlICh1aW50MzIgdGltZTEsIHVpbnQzMiB0aW1l Mik7CistCQlwdWJsaWMgYm9vbCB4d2luZG93X2lzX2Ffbm9fZm9jdXNfd2luZG93IChYLldpbmRv dyB4d2luZG93KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBhY2NlbGVyYXRvcl9hY3RpdmF0ZWQg KHVpbnQgb2JqZWN0LCB1aW50IHAwLCB1aW50IHAxKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBn cmFiX29wX2JlZ2luIChNZXRhLlNjcmVlbiBvYmplY3QsIE1ldGEuV2luZG93IHAwLCBNZXRhLkdy YWJPcCBwMSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZ3JhYl9vcF9lbmQgKE1ldGEuU2NyZWVu IG9iamVjdCwgTWV0YS5XaW5kb3cgcDAsIE1ldGEuR3JhYk9wIHAxKTsKKy0JCXB1YmxpYyBzaWdu YWwgYm9vbCBtb2RpZmllcnNfYWNjZWxlcmF0b3JfYWN0aXZhdGVkICgpOworLQkJcHVibGljIHNp Z25hbCB2b2lkIG92ZXJsYXlfa2V5ICgpOworLQkJcHVibGljIHNpZ25hbCBib29sIHJlc3RhcnQg KCk7CistCQlwdWJsaWMgc2lnbmFsIGJvb2wgc2hvd19yZXNpemVfcG9wdXAgKGJvb2wgb2JqZWN0 LCBNZXRhLlJlY3RhbmdsZSBwMCwgaW50IHAxLCBpbnQgcDIpOworLQkJcHVibGljIHNpZ25hbCBi b29sIHNob3dfcmVzdGFydF9tZXNzYWdlIChzdHJpbmc/IG1lc3NhZ2UpOworLQkJcHVibGljIHNp Z25hbCB2b2lkIHdpbmRvd19jcmVhdGVkIChNZXRhLldpbmRvdyBvYmplY3QpOworLQkJcHVibGlj IHNpZ25hbCB2b2lkIHdpbmRvd19kZW1hbmRzX2F0dGVudGlvbiAoTWV0YS5XaW5kb3cgb2JqZWN0 KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfbWFya2VkX3VyZ2VudCAoTWV0YS5XaW5k b3cgb2JqZWN0KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21t b24uaCIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIEZyYW1lIHsKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9ncm91cC5oIildCistCVtDb21wYWN0XQorLQlw dWJsaWMgY2xhc3MgR3JvdXAgeworLQkJcHVibGljIGludCBnZXRfc2l6ZSAoKTsKKy0JCXB1Ymxp YyB1bm93bmVkIHN0cmluZyBnZXRfc3RhcnR1cF9pZCAoKTsKKy0JCXB1YmxpYyBHTGliLlNMaXN0 PHdlYWsgTWV0YS5XaW5kb3c+IGxpc3Rfd2luZG93cyAoKTsKKy0JCXB1YmxpYyBib29sIHByb3Bl cnR5X25vdGlmeSAoWC5FdmVudCBldmVudCk7CistCQlwdWJsaWMgdm9pZCB1cGRhdGVfbGF5ZXJz ICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtaWRsZS1t b25pdG9yLmgiLCB0eXBlX2lkID0gIm1ldGFfaWRsZV9tb25pdG9yX2dldF90eXBlICgpIildCist CXB1YmxpYyBjbGFzcyBJZGxlTW9uaXRvciA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBJZGxlTW9uaXRvciAo KTsKKy0JCXB1YmxpYyB1aW50IGFkZF9pZGxlX3dhdGNoICh1aW50NjQgaW50ZXJ2YWxfbXNlYywg b3duZWQgTWV0YS5JZGxlTW9uaXRvcldhdGNoRnVuYz8gY2FsbGJhY2spOworLQkJcHVibGljIHVp bnQgYWRkX3VzZXJfYWN0aXZlX3dhdGNoIChvd25lZCBNZXRhLklkbGVNb25pdG9yV2F0Y2hGdW5j PyBjYWxsYmFjayk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5JZGxlTW9uaXRvciBn ZXRfY29yZSAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLklkbGVNb25pdG9yIGdl dF9mb3JfZGV2aWNlIChpbnQgZGV2aWNlX2lkKTsKKy0JCXB1YmxpYyBpbnQ2NCBnZXRfaWRsZXRp bWUgKCk7CistCQlwdWJsaWMgdm9pZCByZW1vdmVfd2F0Y2ggKHVpbnQgaWQpOworLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlwdWJsaWMgaW50IGRldmljZV9pZCB7IGdldDsgY29uc3RydWN0OyB9 CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEva2V5YmluZGluZ3MuaCIs IGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVk X2ZyZWUiLCB0eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdfZ2V0X3R5cGUgKCkiKV0KKy0JW0Nv bXBhY3RdCistCXB1YmxpYyBjbGFzcyBLZXlCaW5kaW5nIHsKKy0JCXB1YmxpYyB1aW50IGdldF9t YXNrICgpOworLQkJcHVibGljIE1ldGEuVmlydHVhbE1vZGlmaWVyIGdldF9tb2RpZmllcnMgKCk7 CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X25hbWUgKCk7CistCQlwdWJsaWMgYm9vbCBp c19idWlsdGluICgpOworLQkJcHVibGljIGJvb2wgaXNfcmV2ZXJzZWQgKCk7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9rZXliaW5kaW5ncy5oIiwgY25hbWUgPSAibWV0YV9r ZXliaW5kaW5nc19zZXRfY3VzdG9tX2hhbmRsZXIiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBz ZXRfY3VzdG9tX2hhbmRsZXIgKHN0cmluZyBuYW1lLCBvd25lZCBNZXRhLktleUhhbmRsZXJGdW5j PyBoYW5kbGVyKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRh LW1vbml0b3ItbWFuYWdlci5oIiwgdHlwZV9pZCA9ICJtZXRhX21vbml0b3JfbWFuYWdlcl9nZXRf dHlwZSAoKSIpXQorLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgTW9uaXRvck1hbmFnZXIgOiBHTGli LkRCdXNJbnRlcmZhY2VTa2VsZXRvbiwgR0xpYi5EQnVzSW50ZXJmYWNlIHsKKy0JCVtDQ29kZSAo aGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBNb25pdG9yTWFu YWdlciAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLk1vbml0b3JNYW5hZ2VyIEBn ZXQgKCk7CistCQlwdWJsaWMgaW50IGdldF9tb25pdG9yX2Zvcl9vdXRwdXQgKHVpbnQgaWQpOwor LQkJcHVibGljIHNpZ25hbCB2b2lkIGNvbmZpcm1fZGlzcGxheV9jaGFuZ2UgKCk7CistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1wbHVnaW4uaCIsIHR5cGVfaWQg PSAibWV0YV9wbHVnaW5fZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGFic3RyYWN0IGNsYXNzIFBs dWdpbiA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBQbHVnaW4gKCk7CistCQlwdWJsaWMgYm9vbCBiZWdpbl9t b2RhbCAoTWV0YS5Nb2RhbE9wdGlvbnMgb3B0aW9ucywgdWludDMyIHRpbWVzdGFtcCk7CistCQlw dWJsaWMgdm9pZCBjb21wbGV0ZV9kaXNwbGF5X2NoYW5nZSAoYm9vbCBvayk7CistCQlbTm9XcmFw cGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBjb25maXJtX2Rpc3BsYXlfY2hhbmdlICgpOwor LQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgZGVzdHJveSAoTWV0YS5XaW5k b3dBY3RvciBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCBkZXN0cm95X2NvbXBsZXRlZCAoTWV0YS5X aW5kb3dBY3RvciBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCBlbmRfbW9kYWwgKHVpbnQzMiB0aW1l c3RhbXApOworLQkJcHVibGljIHVub3duZWQgTWV0YS5QbHVnaW5JbmZvPyBnZXRfaW5mbyAoKTsK Ky0JCXB1YmxpYyB1bm93bmVkIE1ldGEuU2NyZWVuIGdldF9zY3JlZW4gKCk7CistCQlbTm9XcmFw cGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBoaWRlX3RpbGVfcHJldmlldyAoKTsKKy0JCVtO b1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCBib29sIGtleWJpbmRpbmdfZmlsdGVyIChNZXRh LktleUJpbmRpbmcgYmluZGluZyk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwg dm9pZCBraWxsX3N3aXRjaF93b3Jrc3BhY2UgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGlj IHZpcnR1YWwgdm9pZCBraWxsX3dpbmRvd19lZmZlY3RzIChNZXRhLldpbmRvd0FjdG9yIGFjdG9y KTsKKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBtYW5hZ2VyX3NldF9wbHVnaW5fdHlwZSAoR0xpYi5U eXBlIGd0eXBlKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIG1hcCAo TWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCBtYXBfY29tcGxldGVkIChN ZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVh bCB2b2lkIG1pbmltaXplIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lk IG1pbmltaXplX2NvbXBsZXRlZCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlbTm9XcmFw cGVyXQorLQkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBNZXRhLlBsdWdpbkluZm8/IHBsdWdpbl9p bmZvICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2hvd190aWxl X3ByZXZpZXcgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5SZWN0YW5nbGUgdGlsZV9yZWN0LCBp bnQgdGlsZV9tb25pdG9yX251bWJlcik7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1 YWwgdm9pZCBzaG93X3dpbmRvd19tZW51IChNZXRhLldpbmRvdyB3aW5kb3csIE1ldGEuV2luZG93 TWVudVR5cGUgbWVudSwgaW50IHgsIGludCB5KTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMg dmlydHVhbCB2b2lkIHNob3dfd2luZG93X21lbnVfZm9yX3JlY3QgKE1ldGEuV2luZG93IHdpbmRv dywgTWV0YS5XaW5kb3dNZW51VHlwZSBtZW51LCBNZXRhLlJlY3RhbmdsZSByZWN0KTsKKy0JCVtO b1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNpemVfY2hhbmdlIChNZXRhLldpbmRv d0FjdG9yIGFjdG9yLCBNZXRhLlNpemVDaGFuZ2Ugd2hpY2hfY2hhbmdlLCBNZXRhLlJlY3Rhbmds ZSBvbGRfZnJhbWVfcmVjdCwgTWV0YS5SZWN0YW5nbGUgb2xkX2J1ZmZlcl9yZWN0KTsKKy0JCXB1 YmxpYyB2b2lkIHNpemVfY2hhbmdlX2NvbXBsZXRlZCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7 CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzdGFydCAoKTsKKy0JCVtO b1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHN3aXRjaF93b3Jrc3BhY2UgKGludCBm cm9tLCBpbnQgdG8sIE1ldGEuTW90aW9uRGlyZWN0aW9uIGRpcmVjdGlvbik7CistCQlwdWJsaWMg dm9pZCBzd2l0Y2hfd29ya3NwYWNlX2NvbXBsZXRlZCAoKTsKKy0gCQlbTm9XcmFwcGVyXQorLQkJ cHVibGljIHZpcnR1YWwgdm9pZCB1bm1pbmltaXplIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsK Ky0JCXB1YmxpYyB2b2lkIHVubWluaW1pemVfY29tcGxldGVkIChNZXRhLldpbmRvd0FjdG9yIGFj dG9yKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCBib29sIHhldmVudF9maWx0 ZXIgKFguRXZlbnQgZXZlbnQpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL3NjcmVlbi5oIiwgdHlwZV9pZCA9ICJtZXRhX3NjcmVlbl9nZXRfdHlwZSAoKSIpXQorLQlw dWJsaWMgY2xhc3MgU2NyZWVuIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFNjcmVlbiAoKTsKKy0JCXB1Ymxp YyB1bm93bmVkIE1ldGEuV29ya3NwYWNlPyBhcHBlbmRfbmV3X3dvcmtzcGFjZSAoYm9vbCBhY3Rp dmF0ZSwgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBmb2N1c19kZWZhdWx0X3dp bmRvdyAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFj ZSBnZXRfYWN0aXZlX3dvcmtzcGFjZSAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2FjdGl2ZV93b3Jr c3BhY2VfaW5kZXggKCk7CistCQlwdWJsaWMgaW50IGdldF9jdXJyZW50X21vbml0b3IgKCk7Cist CQlwdWJsaWMgaW50IGdldF9jdXJyZW50X21vbml0b3JfZm9yX3BvcyAoaW50IHgsIGludCB5KTsK Ky0JCXB1YmxpYyB1bm93bmVkIE1ldGEuRGlzcGxheSBnZXRfZGlzcGxheSAoKTsKKy0JCXB1Ymxp YyBNZXRhLlJlY3RhbmdsZSBnZXRfbW9uaXRvcl9nZW9tZXRyeSAoaW50IG1vbml0b3IpOworLQkJ cHVibGljIGJvb2wgZ2V0X21vbml0b3JfaW5fZnVsbHNjcmVlbiAoaW50IG1vbml0b3IpOworLQkJ cHVibGljIGludCBnZXRfbW9uaXRvcl9pbmRleF9mb3JfcmVjdCAoTWV0YS5SZWN0YW5nbGUgcmVj dCk7CistCQlwdWJsaWMgaW50IGdldF9tb25pdG9yX25laWdoYm9yX2luZGV4IChpbnQgd2hpY2hf bW9uaXRvciwgTWV0YS5TY3JlZW5EaXJlY3Rpb24gZGlyKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X25f bW9uaXRvcnMgKCk7CistCQlwdWJsaWMgaW50IGdldF9uX3dvcmtzcGFjZXMgKCk7CistCQlwdWJs aWMgaW50IGdldF9wcmltYXJ5X21vbml0b3IgKCk7CistCQlwdWJsaWMgaW50IGdldF9zY3JlZW5f bnVtYmVyICgpOworLQkJcHVibGljIHZvaWQgZ2V0X3NpemUgKG91dCBpbnQgd2lkdGgsIG91dCBp bnQgaGVpZ2h0KTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlPyBnZXRfd29ya3Nw YWNlX2J5X2luZGV4IChpbnQgaW5kZXgpOworLQkJcHVibGljIHVub3duZWQgR0xpYi5MaXN0PE1l dGEuV29ya3NwYWNlPiBnZXRfd29ya3NwYWNlcyAoKTsKKy0JCXB1YmxpYyBYLldpbmRvdyBnZXRf eHJvb3QgKCk7CistCQlwdWJsaWMgdm9pZCBvdmVycmlkZV93b3Jrc3BhY2VfbGF5b3V0IChNZXRh LlNjcmVlbkNvcm5lciBzdGFydGluZ19jb3JuZXIsIGJvb2wgdmVydGljYWxfbGF5b3V0LCBpbnQg bl9yb3dzLCBpbnQgbl9jb2x1bW5zKTsKKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV93b3Jrc3BhY2Ug KE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSwgdWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMg dm9pZCBzZXRfY21fc2VsZWN0aW9uICgpOworLQkJcHVibGljIHZvaWQgc2V0X2N1cnNvciAoTWV0 YS5DdXJzb3IgY3Vyc29yKTsKKy0JCXB1YmxpYyBpbnQgbl93b3Jrc3BhY2VzIHsgZ2V0OyB9Cist CQlwdWJsaWMgc2lnbmFsIHZvaWQgaW5fZnVsbHNjcmVlbl9jaGFuZ2VkICgpOworLQkJcHVibGlj IHNpZ25hbCB2b2lkIG1vbml0b3JzX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQg cmVzdGFja2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHN0YXJ0dXBfc2VxdWVuY2VfY2hh bmdlZCAodm9pZCogb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3dfZW50ZXJl ZF9tb25pdG9yIChpbnQgb2JqZWN0LCBNZXRhLldpbmRvdyBwMCk7CistCQlwdWJsaWMgc2lnbmFs IHZvaWQgd2luZG93X2xlZnRfbW9uaXRvciAoaW50IG9iamVjdCwgTWV0YS5XaW5kb3cgcDApOwor LQkJcHVibGljIHNpZ25hbCB2b2lkIHdvcmthcmVhc19jaGFuZ2VkICgpOworLQkJcHVibGljIHNp Z25hbCB2b2lkIHdvcmtzcGFjZV9hZGRlZCAoaW50IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFs IHZvaWQgd29ya3NwYWNlX3JlbW92ZWQgKGludCBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2 b2lkIHdvcmtzcGFjZV9zd2l0Y2hlZCAoaW50IG9iamVjdCwgaW50IHAwLCBNZXRhLk1vdGlvbkRp cmVjdGlvbiBwMSk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0 YS1zaGFkb3ctZmFjdG9yeS5oIiwgcmVmX2Z1bmN0aW9uID0gIm1ldGFfc2hhZG93X3JlZiIsIHR5 cGVfaWQgPSAibWV0YV9zaGFkb3dfZ2V0X3R5cGUgKCkiLCB1bnJlZl9mdW5jdGlvbiA9ICJtZXRh X3NoYWRvd191bnJlZiIpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIFNoYWRvdyB7Cist CQlwdWJsaWMgdm9pZCBnZXRfYm91bmRzIChpbnQgd2luZG93X3gsIGludCB3aW5kb3dfeSwgaW50 IHdpbmRvd193aWR0aCwgaW50IHdpbmRvd19oZWlnaHQsIENhaXJvLlJlY3RhbmdsZUludCBib3Vu ZHMpOworLQkJcHVibGljIHZvaWQgcGFpbnQgKGludCB3aW5kb3dfeCwgaW50IHdpbmRvd195LCBp bnQgd2luZG93X3dpZHRoLCBpbnQgd2luZG93X2hlaWdodCwgdWludDggb3BhY2l0eSwgQ2Fpcm8u UmVnaW9uPyBjbGlwLCBib29sIGNsaXBfc3RyaWN0bHkpOworLQkJcHVibGljIE1ldGEuU2hhZG93 IEByZWYgKCk7CistCQlwdWJsaWMgdm9pZCB1bnJlZiAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgiLCB0eXBlX2lkID0gIm1l dGFfc2hhZG93X2ZhY3RvcnlfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFNoYWRvd0Zh Y3RvcnkgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24g PSBmYWxzZSldCistCQlwdWJsaWMgU2hhZG93RmFjdG9yeSAoKTsKKy0JCXB1YmxpYyBzdGF0aWMg dW5vd25lZCBNZXRhLlNoYWRvd0ZhY3RvcnkgZ2V0X2RlZmF1bHQgKCk7CistCQlwdWJsaWMgTWV0 YS5TaGFkb3dQYXJhbXMgZ2V0X3BhcmFtcyAoc3RyaW5nIGNsYXNzX25hbWUsIGJvb2wgZm9jdXNl ZCk7CistCQlwdWJsaWMgTWV0YS5TaGFkb3cgZ2V0X3NoYWRvdyAoTWV0YS5XaW5kb3dTaGFwZSBz aGFwZSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBzdHJpbmcgY2xhc3NfbmFtZSwgYm9vbCBmb2N1 c2VkKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9wYXJhbXMgKHN0cmluZyBjbGFzc19uYW1lLCBib29s IGZvY3VzZWQsIE1ldGEuU2hhZG93UGFyYW1zIEBwYXJhbXMpOworLQkJcHVibGljIHNpZ25hbCB2 b2lkIGNoYW5nZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWV0YS1zaGFwZWQtdGV4dHVyZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3NoYXBlZF90ZXh0dXJlX2dl dF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBTaGFwZWRUZXh0dXJlIDogQ2x1dHRlci5BY3Rv ciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVy LCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFNoYXBlZFRleHR1cmUgKCk7CistCQlwdWJsaWMgQ2Fp cm8uU3VyZmFjZSBnZXRfaW1hZ2UgKENhaXJvLlJlY3RhbmdsZUludCBjbGlwKTsKKy0JCXB1Ymxp YyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfdGV4dHVyZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHNl dF9jcmVhdGVfbWlwbWFwcyAoYm9vbCBjcmVhdGVfbWlwbWFwcyk7CistCQlwdWJsaWMgdm9pZCBz ZXRfbWFza190ZXh0dXJlIChDb2dsLlRleHR1cmUgbWFza190ZXh0dXJlKTsKKy0JCXB1YmxpYyB2 b2lkIHNldF9vcGFxdWVfcmVnaW9uIChvd25lZCBDYWlyby5SZWdpb24gb3BhcXVlX3JlZ2lvbik7 CistCQlwdWJsaWMgYm9vbCB1cGRhdGVfYXJlYSAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGlu dCBoZWlnaHQpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHNpemVfY2hhbmdlZCAoKTsKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS90aGVtZS5oIildCistCVtDb21wYWN0 XQorLQlwdWJsaWMgY2xhc3MgVGhlbWUgeworLQkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQkJcHVibGljIHN0YXRp YyB1bm93bmVkIE1ldGEuVGhlbWUgZ2V0X2RlZmF1bHQgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRh LlRoZW1lIEBuZXcgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv d2luZG93LmgiLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X2dldF90eXBlICgpIildCistCXB1Ymxp YyBhYnN0cmFjdCBjbGFzcyBXaW5kb3cgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgV2luZG93ICgpOworLQkJ cHVibGljIHZvaWQgYWN0aXZhdGUgKHVpbnQzMiBjdXJyZW50X3RpbWUpOworLQkJcHVibGljIHZv aWQgYWN0aXZhdGVfd2l0aF93b3Jrc3BhY2UgKHVpbnQzMiBjdXJyZW50X3RpbWUsIE1ldGEuV29y a3NwYWNlIHdvcmtzcGFjZSk7CistCQlwdWJsaWMgYm9vbCBhbGxvd3NfbW92ZSAoKTsKKy0JCXB1 YmxpYyBib29sIGFsbG93c19yZXNpemUgKCk7CistCQlwdWJsaWMgdm9pZCBiZWdpbl9ncmFiX29w IChNZXRhLkdyYWJPcCBvcCwgYm9vbCBmcmFtZV9hY3Rpb24sIHVpbnQzMiB0aW1lc3RhbXApOwor LQkJcHVibGljIGJvb2wgY2FuX2Nsb3NlICgpOworLQkJcHVibGljIGJvb2wgY2FuX21heGltaXpl ICgpOworLQkJcHVibGljIGJvb2wgY2FuX21pbmltaXplICgpOworLQkJcHVibGljIGJvb2wgY2Fu X3NoYWRlICgpOworLQkJcHVibGljIHZvaWQgY2hhbmdlX3dvcmtzcGFjZSAoTWV0YS5Xb3Jrc3Bh Y2Ugd29ya3NwYWNlKTsKKy0JCXB1YmxpYyB2b2lkIGNoYW5nZV93b3Jrc3BhY2VfYnlfaW5kZXgg KGludCBzcGFjZV9pbmRleCwgYm9vbCBhcHBlbmQpOworLQkJcHVibGljIHZvaWQgY2hlY2tfYWxp dmUgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGNsaWVudF9y ZWN0X3RvX2ZyYW1lX3JlY3QgKE1ldGEuUmVjdGFuZ2xlIGNsaWVudF9yZWN0KTsKKy0JCXB1Ymxp YyB2b2lkIGNvbXB1dGVfZ3JvdXAgKCk7CistCQlwdWJsaWMgdm9pZCBAZGVsZXRlICh1aW50MzIg dGltZXN0YW1wKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93IGZpbmRfcm9vdF9hbmNl c3RvciAoKTsKKy0JCXB1YmxpYyB2b2lkIGZvY3VzICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1 YmxpYyB2b2lkIGZvcmVhY2hfYW5jZXN0b3IgKE1ldGEuV2luZG93Rm9yZWFjaEZ1bmMgZnVuYyk7 CistCQlwdWJsaWMgdm9pZCBmb3JlYWNoX3RyYW5zaWVudCAoTWV0YS5XaW5kb3dGb3JlYWNoRnVu YyBmdW5jKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBmcmFtZV9yZWN0X3RvX2NsaWVudF9y ZWN0IChNZXRhLlJlY3RhbmdsZSBmcmFtZV9yZWN0KTsKKy0JCVtDQ29kZSAoYXJyYXlfbGVuZ3Ro X3BvcyA9IDAuMSwgYXJyYXlfbGVuZ3RoX3R5cGUgPSAiZ3NpemUiKV0KKy0JCXB1YmxpYyBpbnRb XSBnZXRfYWxsX21vbml0b3JzICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF9idWZm ZXJfcmVjdCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfY2xpZW50X21hY2hpbmUg KCk7CistCQlwdWJsaWMgdW5vd25lZCBHTGliLk9iamVjdCBnZXRfY29tcG9zaXRvcl9wcml2YXRl ICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9kZXNjcmlwdGlvbiAoKTsKKy0JCXB1 YmxpYyB1bm93bmVkIE1ldGEuRGlzcGxheSBnZXRfZGlzcGxheSAoKTsKKy0JCXB1YmxpYyB1bm93 bmVkIE1ldGEuRnJhbWUgZ2V0X2ZyYW1lICgpOworLQkJcHVibGljIHVub3duZWQgQ2Fpcm8uUmVn aW9uPyBnZXRfZnJhbWVfYm91bmRzICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGdldF9m cmFtZV9yZWN0ICgpOworLQkJcHVibGljIE1ldGEuRnJhbWVUeXBlIGdldF9mcmFtZV90eXBlICgp OworLQkJcHVibGljIHVub3duZWQgTWV0YS5Hcm91cCBnZXRfZ3JvdXAgKCk7CistCQlwdWJsaWMg dW5vd25lZCBzdHJpbmcgZ2V0X2d0a19hcHBfbWVudV9vYmplY3RfcGF0aCAoKTsKKy0JCXB1Ymxp YyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX2FwcGxpY2F0aW9uX2lkICgpOworLQkJcHVibGljIHVu b3duZWQgc3RyaW5nIGdldF9ndGtfYXBwbGljYXRpb25fb2JqZWN0X3BhdGggKCk7CistCQlwdWJs aWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a19tZW51YmFyX29iamVjdF9wYXRoICgpOworLQkJcHVi bGljIHVub3duZWQgc3RyaW5nIGdldF9ndGtfdGhlbWVfdmFyaWFudCAoKTsKKy0JCXB1YmxpYyB1 bm93bmVkIHN0cmluZyBnZXRfZ3RrX3VuaXF1ZV9idXNfbmFtZSAoKTsKKy0JCXB1YmxpYyB1bm93 bmVkIHN0cmluZyBnZXRfZ3RrX3dpbmRvd19vYmplY3RfcGF0aCAoKTsKKy0JCXB1YmxpYyBib29s IGdldF9pY29uX2dlb21ldHJ5IChvdXQgTWV0YS5SZWN0YW5nbGUgcmVjdCk7CistCQlwdWJsaWMg TWV0YS5TdGFja0xheWVyIGdldF9sYXllciAoKTsKKy0JCXB1YmxpYyBNZXRhLk1heGltaXplRmxh Z3MgZ2V0X21heGltaXplZCAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X21vbml0b3IgKCk7CistCQlw dWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X211dHRlcl9oaW50cyAoKTsKKy0JCXB1YmxpYyBpbnQg Z2V0X3BpZCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfcm9sZSAoKTsKKy0JCXB1 YmxpYyB1bm93bmVkIE1ldGEuU2NyZWVuIGdldF9zY3JlZW4gKCk7CistCQlwdWJsaWMgdWludCBn ZXRfc3RhYmxlX3NlcXVlbmNlICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9zdGFy dHVwX2lkICgpOworLQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3c/IGdldF90aWxlX21hdGNo ICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF90aXRsZSAoKTsKKy0JCXB1YmxpYyB1 bm93bmVkIE1ldGEuV2luZG93IGdldF90cmFuc2llbnRfZm9yICgpOworLQkJcHVibGljIHVpbnQz MiBnZXRfdXNlcl90aW1lICgpOworLQkJcHVibGljIE1ldGEuV2luZG93VHlwZSBnZXRfd2luZG93 X3R5cGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3dtX2NsYXNzICgpOworLQkJ cHVibGljIHVub3duZWQgc3RyaW5nIGdldF93bV9jbGFzc19pbnN0YW5jZSAoKTsKKy0JCXB1Ymxp YyBNZXRhLlJlY3RhbmdsZSBnZXRfd29ya19hcmVhX2FsbF9tb25pdG9ycyAoKTsKKy0JCXB1Ymxp YyBNZXRhLlJlY3RhbmdsZSBnZXRfd29ya19hcmVhX2N1cnJlbnRfbW9uaXRvciAoKTsKKy0JCXB1 YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfd29ya19hcmVhX2Zvcl9tb25pdG9yIChpbnQgd2hpY2hf bW9uaXRvcik7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZSBnZXRfd29ya3NwYWNl ICgpOworLQkJcHVibGljIFguV2luZG93IGdldF94d2luZG93ICgpOworLQkJcHVibGljIHZvaWQg Z3JvdXBfbGVhZGVyX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgYm9vbCBoYXNfZm9jdXMgKCk7Cist CQlwdWJsaWMgYm9vbCBpc19hYm92ZSAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2Fsd2F5c19vbl9h bGxfd29ya3NwYWNlcyAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2FuY2VzdG9yX29mX3RyYW5zaWVu dCAoTWV0YS5XaW5kb3cgdHJhbnNpZW50KTsKKy0JCXB1YmxpYyBib29sIGlzX2F0dGFjaGVkX2Rp YWxvZyAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2Z1bGxzY3JlZW4gKCk7CistCQlwdWJsaWMgYm9v bCBpc19oaWRkZW4gKCk7CistCQlwdWJsaWMgYm9vbCBpc19tb25pdG9yX3NpemVkICgpOworLQkJ cHVibGljIGJvb2wgaXNfb25fYWxsX3dvcmtzcGFjZXMgKCk7CistCQlwdWJsaWMgYm9vbCBpc19v bl9wcmltYXJ5X21vbml0b3IgKCk7CistCQlwdWJsaWMgYm9vbCBpc19vdmVycmlkZV9yZWRpcmVj dCAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3JlbW90ZSAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3Nj cmVlbl9zaXplZCAoKTsKKy0JCXB1YmxpYyBib29sIGlzX3NoYWRlZCAoKTsKKy0JCXB1YmxpYyBi b29sIGlzX3NraXBfdGFza2JhciAoKTsKKy0JCXB1YmxpYyB2b2lkIGtpbGwgKCk7CistCQlwdWJs aWMgYm9vbCBsb2NhdGVkX29uX3dvcmtzcGFjZSAoTWV0YS5Xb3Jrc3BhY2Ugd29ya3NwYWNlKTsK Ky0JCXB1YmxpYyB2b2lkIGxvd2VyICgpOworLQkJcHVibGljIHZvaWQgbWFrZV9hYm92ZSAoKTsK Ky0JCXB1YmxpYyB2b2lkIG1ha2VfZnVsbHNjcmVlbiAoKTsKKy0JCXB1YmxpYyB2b2lkIG1heGlt aXplIChNZXRhLk1heGltaXplRmxhZ3MgZGlyZWN0aW9ucyk7CistCQlwdWJsaWMgdm9pZCBtaW5p bWl6ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIG1vdmVfZnJhbWUgKGJvb2wgdXNlcl9vcCwgaW50IHJv b3RfeF9udywgaW50IHJvb3RfeV9udyk7CistCQlwdWJsaWMgdm9pZCBtb3ZlX3Jlc2l6ZV9mcmFt ZSAoYm9vbCB1c2VyX29wLCBpbnQgcm9vdF94X253LCBpbnQgcm9vdF95X253LCBpbnQgdywgaW50 IGgpOworLQkJcHVibGljIHZvaWQgbW92ZV90b19tb25pdG9yIChpbnQgbW9uaXRvcik7CistCQlw dWJsaWMgdm9pZCByYWlzZSAoKTsKKy0JCXB1YmxpYyBib29sIHJlcXVlc3RlZF9ieXBhc3NfY29t cG9zaXRvciAoKTsKKy0JCXB1YmxpYyBib29sIHJlcXVlc3RlZF9kb250X2J5cGFzc19jb21wb3Np dG9yICgpOworLQkJcHVibGljIHZvaWQgc2V0X2NvbXBvc2l0b3JfcHJpdmF0ZSAoR0xpYi5PYmpl Y3QgcHJpdik7CistCQlwdWJsaWMgdm9pZCBzZXRfZGVtYW5kc19hdHRlbnRpb24gKCk7CistCQlw dWJsaWMgdm9pZCBzZXRfaWNvbl9nZW9tZXRyeSAoTWV0YS5SZWN0YW5nbGU/IHJlY3QpOworLQkJ cHVibGljIHZvaWQgc2hhZGUgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgc2hv dmVfdGl0bGViYXJfb25zY3JlZW4gKCk7CistCQlwdWJsaWMgYm9vbCBzaG93aW5nX29uX2l0c193 b3Jrc3BhY2UgKCk7CistCQlwdWJsaWMgdm9pZCBzaHV0ZG93bl9ncm91cCAoKTsKKy0JCXB1Ymxp YyB2b2lkIHN0aWNrICgpOworLQkJcHVibGljIGJvb2wgdGl0bGViYXJfaXNfb25zY3JlZW4gKCk7 CistCQlwdWJsaWMgdm9pZCB1bm1ha2VfYWJvdmUgKCk7CistCQlwdWJsaWMgdm9pZCB1bm1ha2Vf ZnVsbHNjcmVlbiAoKTsKKy0JCXB1YmxpYyB2b2lkIHVubWF4aW1pemUgKE1ldGEuTWF4aW1pemVG bGFncyBkaXJlY3Rpb25zKTsKKy0JCXB1YmxpYyB2b2lkIHVubWluaW1pemUgKCk7CistCQlwdWJs aWMgdm9pZCB1bnNldF9kZW1hbmRzX2F0dGVudGlvbiAoKTsKKy0JCXB1YmxpYyB2b2lkIHVuc2hh ZGUgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHZvaWQgdW5zdGljayAoKTsKKy0JCVtO b0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgYWJvdmUgeyBnZXQ7IH0KKy0JCVtOb0Fj Y2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgYXBwZWFyc19mb2N1c2VkIHsgZ2V0OyB9Cist CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGRlY29yYXRlZCB7IGdldDsgfQor LQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBkZW1hbmRzX2F0dGVudGlvbiB7 IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBmdWxsc2NyZWVu IHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIGd0a19hcHBfbWVudV9vYmplY3RfcGF0aCB7IGdl dDsgfQorLQkJcHVibGljIHN0cmluZyBndGtfYXBwbGljYXRpb25faWQgeyBnZXQ7IH0KKy0JCXB1 YmxpYyBzdHJpbmcgZ3RrX2FwcGxpY2F0aW9uX29iamVjdF9wYXRoIHsgZ2V0OyB9CistCQlwdWJs aWMgc3RyaW5nIGd0a19tZW51YmFyX29iamVjdF9wYXRoIHsgZ2V0OyB9CistCQlwdWJsaWMgc3Ry aW5nIGd0a191bmlxdWVfYnVzX25hbWUgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3RrX3dp bmRvd19vYmplY3RfcGF0aCB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJs aWMgQ2Fpcm8uU3VyZmFjZSBpY29uIHsgb3duZWQgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCXB1YmxpYyBib29sIG1heGltaXplZF9ob3Jpem9udGFsbHkgeyBnZXQ7IH0KKy0JCVtO b0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgbWF4aW1pemVkX3ZlcnRpY2FsbHkgeyBn ZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIENhaXJvLlN1cmZhY2UgbWlu aV9pY29uIHsgb3duZWQgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBi b29sIG1pbmltaXplZCB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyBtdXR0ZXJfaGludHMgeyBn ZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgb25fYWxsX3dvcmtz cGFjZXMgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgcmVz aXplYWJsZSB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBz a2lwX3Rhc2tiYXIgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgdGl0bGUgeyBnZXQ7IH0KKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgdXJnZW50IHsgZ2V0OyB9CistCQlw dWJsaWMgdWludCB1c2VyX3RpbWUgeyBnZXQ7IH0KKy0JCXB1YmxpYyBNZXRhLldpbmRvd1R5cGUg d2luZG93X3R5cGUgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgd21fY2xhc3MgeyBnZXQ7IH0K Ky0JCVtDQ29kZSAoY25hbWUgPSAiZm9jdXMiKV0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBmb2N1 c2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHBvc2l0aW9uX2NoYW5nZWQgKCk7CistCQlw dWJsaWMgc2lnbmFsIHZvaWQgcmFpc2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHNpemVf Y2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB1bm1hbmFnZWQgKCk7CistCQlwdWJs aWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlX2NoYW5nZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCIsIHR5cGVfaWQgPSAibWV0 YV93aW5kb3dfYWN0b3JfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFdpbmRvd0FjdG9y IDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENs dXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29u c3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFdpbmRvd0FjdG9yICgpOwor LQkJcHVibGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X21ldGFfd2luZG93ICgpOworLQkJcHVi bGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfdGV4dHVyZSAoKTsKKy0JCXB1YmxpYyBYLldp bmRvdyBnZXRfeF93aW5kb3cgKCk7CistCQlwdWJsaWMgYm9vbCBpc19kZXN0cm95ZWQgKCk7Cist CQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBzdHJpbmcgc2hhZG93X2NsYXNzIHsgb3du ZWQgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuU2hh ZG93TW9kZSBzaGFkb3dfbW9kZSB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQg Zmlyc3RfZnJhbWUgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWV0YV93aW5kb3dfc2hhcGUuaCIsIHJlZl9mdW5jdGlvbiA9ICJtZXRhX3dpbmRvd19zaGFwZV9y ZWYiLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X3NoYXBlX2dldF90eXBlICgpIiwgdW5yZWZfZnVu Y3Rpb24gPSAibWV0YV93aW5kb3dfc2hhcGVfdW5yZWYiKV0KKy0JW0NvbXBhY3RdCistCXB1Ymxp YyBjbGFzcyBXaW5kb3dTaGFwZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24g PSBmYWxzZSldCistCQlwdWJsaWMgV2luZG93U2hhcGUgKENhaXJvLlJlZ2lvbiByZWdpb24pOwor LQkJcHVibGljIGJvb2wgZXF1YWwgKE1ldGEuV2luZG93U2hhcGUgc2hhcGVfYik7CistCQlwdWJs aWMgdm9pZCBnZXRfYm9yZGVycyAoaW50IGJvcmRlcl90b3AsIGludCBib3JkZXJfcmlnaHQsIGlu dCBib3JkZXJfYm90dG9tLCBpbnQgYm9yZGVyX2xlZnQpOworLQkJcHVibGljIHVpbnQgaGFzaCAo KTsKKy0JCXB1YmxpYyBNZXRhLldpbmRvd1NoYXBlIEByZWYgKCk7CistCQlwdWJsaWMgQ2Fpcm8u UmVnaW9uIHRvX3JlZ2lvbiAoaW50IGNlbnRlcl93aWR0aCwgaW50IGNlbnRlcl9oZWlnaHQpOwor LQkJcHVibGljIHZvaWQgdW5yZWYgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfd29ya3NwYWNlX2dldF90eXBl ICgpIildCistCXB1YmxpYyBjbGFzcyBXb3Jrc3BhY2UgOiBHTGliLk9iamVjdCB7CistCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgV29ya3Nw YWNlICgpOworLQkJcHVibGljIHZvaWQgYWN0aXZhdGUgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJ cHVibGljIHZvaWQgYWN0aXZhdGVfd2l0aF9mb2N1cyAoTWV0YS5XaW5kb3cgZm9jdXNfdGhpcywg dWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZSBnZXRf bmVpZ2hib3IgKE1ldGEuTW90aW9uRGlyZWN0aW9uIGRpcmVjdGlvbik7CistCQlwdWJsaWMgdW5v d25lZCBNZXRhLlNjcmVlbiBnZXRfc2NyZWVuICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xl IGdldF93b3JrX2FyZWFfYWxsX21vbml0b3JzICgpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xl IGdldF93b3JrX2FyZWFfZm9yX21vbml0b3IgKGludCB3aGljaF9tb25pdG9yKTsKKy0JCXB1Ymxp YyBpbnQgaW5kZXggKCk7CistCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgTWV0YS5XaW5kb3c+IGxp c3Rfd2luZG93cyAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9idWlsdGluX3N0cnV0cyAoR0xpYi5T TGlzdDxNZXRhLlN0cnV0PiBzdHJ1dHMpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJs aWMgdWludCBuX3dpbmRvd3MgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVi bGljIHVpbnQgd29ya3NwYWNlX2luZGV4IHsgZ2V0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQg d2luZG93X2FkZGVkIChNZXRhLldpbmRvdyBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lk IHdpbmRvd19yZW1vdmVkIChNZXRhLldpbmRvdyBvYmplY3QpOworLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCist CXB1YmxpYyBzdHJ1Y3QgQnV0dG9uTGF5b3V0IHsKKy0JCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0g ZmFsc2UsIGFycmF5X251bGxfdGVybWluYXRlZCA9IHRydWUpXQorLQkJcHVibGljIHdlYWsgTWV0 YS5CdXR0b25GdW5jdGlvbltdIGxlZnRfYnV0dG9uczsKKy0JCVtDQ29kZSAoYXJyYXlfbGVuZ3Ro ID0gZmFsc2UsIGFycmF5X251bGxfdGVybWluYXRlZCA9IHRydWUpXQorLQkJcHVibGljIHdlYWsg Ym9vbFtdIGxlZnRfYnV0dG9uc19oYXNfc3BhY2VyOworLQkJW0NDb2RlIChhcnJheV9sZW5ndGgg PSBmYWxzZSwgYXJyYXlfbnVsbF90ZXJtaW5hdGVkID0gdHJ1ZSldCistCQlwdWJsaWMgd2VhayBN ZXRhLkJ1dHRvbkZ1bmN0aW9uW10gcmlnaHRfYnV0dG9uczsKKy0JCVtDQ29kZSAoYXJyYXlfbGVu Z3RoID0gZmFsc2UsIGFycmF5X251bGxfdGVybWluYXRlZCA9IHRydWUpXQorLQkJcHVibGljIHdl YWsgYm9vbFtdIHJpZ2h0X2J1dHRvbnNfaGFzX3NwYWNlcjsKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9ib3hlcy5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1 YmxpYyBzdHJ1Y3QgRWRnZSB7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgcmVjdDsKKy0JCXB1 YmxpYyBNZXRhLlNpZGUgc2lkZV90eXBlOworLQkJcHVibGljIE1ldGEuRWRnZVR5cGUgZWRnZV90 eXBlOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwg aGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgRnJhbWVCb3JkZXJzIHsKKy0J CXB1YmxpYyBHdGsuQm9yZGVyIHZpc2libGU7CistCQlwdWJsaWMgR3RrLkJvcmRlciBpbnZpc2li bGU7CistCQlwdWJsaWMgR3RrLkJvcmRlciB0b3RhbDsKKy0JCXB1YmxpYyB2b2lkIGNsZWFyICgp OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtcGx1Z2luLmgi LCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBQbHVnaW5JbmZvIHsKKy0J CXB1YmxpYyB3ZWFrIHN0cmluZyBuYW1lOworLQkJcHVibGljIHdlYWsgc3RyaW5nIHZlcnNpb247 CistCQlwdWJsaWMgd2VhayBzdHJpbmcgYXV0aG9yOworLQkJcHVibGljIHdlYWsgc3RyaW5nIGxp Y2Vuc2U7CistCQlwdWJsaWMgd2VhayBzdHJpbmcgZGVzY3JpcHRpb247CistCX0KKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1wbHVnaW4uaCIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IFBsdWdpblZlcnNpb24geworLQkJcHVibGljIHVpbnQg dmVyc2lvbl9tYWpvcjsKKy0JCXB1YmxpYyB1aW50IHZlcnNpb25fbWlub3I7CistCQlwdWJsaWMg dWludCB2ZXJzaW9uX21pY3JvOworLQkJcHVibGljIHVpbnQgdmVyc2lvbl9hcGk7CistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYm94ZXMuaCIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IFJlY3RhbmdsZSB7CistCQlwdWJsaWMgaW50IHg7Cist CQlwdWJsaWMgaW50IHk7CistCQlwdWJsaWMgaW50IHdpZHRoOworLQkJcHVibGljIGludCBoZWln aHQ7CistCQlwdWJsaWMgaW50IGFyZWEgKCk7CistCQlwdWJsaWMgYm9vbCBjb250YWluc19yZWN0 IChNZXRhLlJlY3RhbmdsZSBpbm5lcl9yZWN0KTsKKy0JCXB1YmxpYyBib29sIGNvdWxkX2ZpdF9y ZWN0IChNZXRhLlJlY3RhbmdsZSBpbm5lcl9yZWN0KTsKKy0JCXB1YmxpYyBib29sIGVxdWFsIChN ZXRhLlJlY3RhbmdsZSBzcmMyKTsKKy0JCXB1YmxpYyBib29sIGhvcml6X292ZXJsYXAgKE1ldGEu UmVjdGFuZ2xlIHJlY3QyKTsKKy0JCXB1YmxpYyBib29sIGludGVyc2VjdCAoTWV0YS5SZWN0YW5n bGUgc3JjMiwgb3V0IE1ldGEuUmVjdGFuZ2xlIGRlc3QpOworLQkJcHVibGljIGJvb2wgb3Zlcmxh cCAoTWV0YS5SZWN0YW5nbGUgcmVjdDIpOworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIHVuaW9u IChNZXRhLlJlY3RhbmdsZSByZWN0Mik7CistCQlwdWJsaWMgYm9vbCB2ZXJ0X292ZXJsYXAgKE1l dGEuUmVjdGFuZ2xlIHJlY3QyKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVi bGljIHN0cnVjdCBTaGFkb3dQYXJhbXMgeworLQkJcHVibGljIGludCByYWRpdXM7CistCQlwdWJs aWMgaW50IHRvcF9mYWRlOworLQkJcHVibGljIGludCB4X29mZnNldDsKKy0JCXB1YmxpYyBpbnQg eV9vZmZzZXQ7CistCQlwdWJsaWMgdWludDggb3BhY2l0eTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9ib3hlcy5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1 YmxpYyBzdHJ1Y3QgU3RydXQgeworLQkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIHJlY3Q7CistCQlw dWJsaWMgTWV0YS5TaWRlIHNpZGU7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvYmFycmllci5oIiwgY3ByZWZpeCA9ICJNRVRBX0JBUlJJRVJfRElSRUNUSU9OXyIsIHR5 cGVfaWQgPSAibWV0YV9iYXJyaWVyX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3Nd CistCXB1YmxpYyBlbnVtIEJhcnJpZXJEaXJlY3Rpb24geworLQkJUE9TSVRJVkVfWCwKKy0JCVBP U0lUSVZFX1ksCistCQlORUdBVElWRV9YLAorLQkJTkVHQVRJVkVfWQorLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0JVVFRP Tl9GVU5DVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfYnV0dG9uX2Z1bmN0aW9uX2dldF90eXBlICgp IildCistCXB1YmxpYyBlbnVtIEJ1dHRvbkZ1bmN0aW9uIHsKKy0JCU1FTlUsCistCQlNSU5JTUla RSwKKy0JCU1BWElNSVpFLAorLQkJQ0xPU0UsCistCQlTSEFERSwKKy0JCUFCT1ZFLAorLQkJU1RJ Q0ssCistCQlVTlNIQURFLAorLQkJVU5BQk9WRSwKKy0JCVVOU1RJQ0ssCistCQlBUFBNRU5VLAor LQkJTEFTVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0 b3IuaCIsIGNwcmVmaXggPSAiTUVUQV9DT01QX0VGRkVDVF8iLCB0eXBlX2lkID0gIm1ldGFfY29t cF9lZmZlY3RfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gQ29tcEVmZmVjdCB7CistCQlD UkVBVEUsCistCQlVTk1JTklNSVpFLAorLQkJREVTVFJPWSwKKy0JCU1JTklNSVpFLAorLQkJTk9O RQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3By ZWZpeCA9ICJNRVRBX0NVUlNPUl8iLCB0eXBlX2lkID0gIm1ldGFfY3Vyc29yX2dldF90eXBlICgp IildCistCXB1YmxpYyBlbnVtIEN1cnNvciB7CistCQlOT05FLAorLQkJREVGQVVMVCwKKy0JCU5P UlRIX1JFU0laRSwKKy0JCVNPVVRIX1JFU0laRSwKKy0JCVdFU1RfUkVTSVpFLAorLQkJRUFTVF9S RVNJWkUsCistCQlTRV9SRVNJWkUsCistCQlTV19SRVNJWkUsCistCQlORV9SRVNJWkUsCistCQlO V19SRVNJWkUsCistCQlNT1ZFX09SX1JFU0laRV9XSU5ET1csCistCQlCVVNZLAorLQkJRE5EX0lO X0RSQUcsCistCQlETkRfTU9WRSwKKy0JCURORF9DT1BZLAorLQkJRE5EX1VOU1VQUE9SVEVEX1RB UkdFVCwKKy0JCVBPSU5USU5HX0hBTkQsCistCQlDUk9TU0hBSVIsCistCQlJQkVBTSwKKy0JCUxB U1QKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjcHJl Zml4ID0gIk1FVEFfREVCVUdfIiwgdHlwZV9pZCA9ICJtZXRhX2RlYnVnX3RvcGljX2dldF90eXBl ICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gRGVidWdUb3BpYyB7CistCQlWRVJCT1NF LAorLQkJRk9DVVMsCistCQlXT1JLQVJFQSwKKy0JCVNUQUNLLAorLQkJVEhFTUVTLAorLQkJU00s CistCQlFVkVOVFMsCistCQlXSU5ET1dfU1RBVEUsCistCQlXSU5ET1dfT1BTLAorLQkJR0VPTUVU UlksCistCQlQTEFDRU1FTlQsCistCQlQSU5HLAorLQkJWElORVJBTUEsCistCQlLRVlCSU5ESU5H UywKKy0JCVNZTkMsCistCQlFUlJPUlMsCistCQlTVEFSVFVQLAorLQkJUFJFRlMsCistCQlHUk9V UFMsCistCQlSRVNJWklORywKKy0JCVNIQVBFUywKKy0JCUNPTVBPU0lUT1IsCistCQlFREdFX1JF U0lTVEFOQ0UsCistCQlEQlVTCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0 YV9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBEaXJl Y3Rpb24geworLQkJTEVGVCwKKy0JCVJJR0hULAorLQkJVE9QLAorLQkJQk9UVE9NLAorLQkJVVAs CistCQlET1dOLAorLQkJSE9SSVpPTlRBTCwKKy0JCVZFUlRJQ0FMCistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYm94ZXMuaCIsIGNwcmVmaXggPSAiTUVUQV9FREdFXyIs IHR5cGVfaWQgPSAibWV0YV9lZGdlX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0g RWRnZVR5cGUgeworLQkJV0lORE9XLAorLQkJTU9OSVRPUiwKKy0JCVNDUkVFTgorLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9F WElUXyIsIHR5cGVfaWQgPSAibWV0YV9leGl0X2NvZGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGlj IGVudW0gRXhpdENvZGUgeworLQkJU1VDQ0VTUywKKy0JCUVSUk9SCistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfRlJBTUVf IiwgdHlwZV9pZCA9ICJtZXRhX2ZyYW1lX2ZsYWdzX2dldF90eXBlICgpIildCistCVtGbGFnc10K Ky0JcHVibGljIGVudW0gRnJhbWVGbGFncyB7CistCQlBTExPV1NfREVMRVRFLAorLQkJQUxMT1dT X01FTlUsCistCQlBTExPV1NfQVBQTUVOVSwKKy0JCUFMTE9XU19NSU5JTUlaRSwKKy0JCUFMTE9X U19NQVhJTUlaRSwKKy0JCUFMTE9XU19WRVJUSUNBTF9SRVNJWkUsCistCQlBTExPV1NfSE9SSVpP TlRBTF9SRVNJWkUsCistCQlIQVNfRk9DVVMsCistCQlTSEFERUQsCistCQlTVFVDSywKKy0JCU1B WElNSVpFRCwKKy0JCUFMTE9XU19TSEFERSwKKy0JCUFMTE9XU19NT1ZFLAorLQkJRlVMTFNDUkVF TiwKKy0JCUlTX0ZMQVNISU5HLAorLQkJQUJPVkUsCistCQlUSUxFRF9MRUZULAorLQkJVElMRURf UklHSFQKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIs IGNwcmVmaXggPSAiTUVUQV9GUkFNRV9UWVBFXyIsIHR5cGVfaWQgPSAibWV0YV9mcmFtZV90eXBl X2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEZyYW1lVHlwZSB7CistCQlOT1JNQUwsCist CQlESUFMT0csCistCQlNT0RBTF9ESUFMT0csCistCQlVVElMSVRZLAorLQkJTUVOVSwKKy0JCUJP UkRFUiwKKy0JCUFUVEFDSEVELAorLQkJTEFTVDsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIHN0cmluZyB0b19z dHJpbmcgKE1ldGEuRnJhbWVUeXBlIHR5cGUpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0dSQUJfT1BfIiwgdHlwZV9p ZCA9ICJtZXRhX2dyYWJfb3BfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gR3JhYk9wIHsK Ky0JCU5PTkUsCistCQlDT01QT1NJVE9SLAorLQkJV0FZTEFORF9QT1BVUCwKKy0JCVdJTkRPV19C QVNFLAorLQkJRlJBTUVfQlVUVE9OLAorLQkJTU9WSU5HLAorLQkJUkVTSVpJTkdfTlcsCistCQlS RVNJWklOR19OLAorLQkJUkVTSVpJTkdfTkUsCistCQlSRVNJWklOR19FLAorLQkJUkVTSVpJTkdf U1csCistCQlSRVNJWklOR19TLAorLQkJUkVTSVpJTkdfU0UsCistCQlSRVNJWklOR19XLAorLQkJ S0VZQk9BUkRfTU9WSU5HLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfVU5LTk9XTiwKKy0JCUtFWUJP QVJEX1JFU0laSU5HX05XLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfTiwKKy0JCUtFWUJPQVJEX1JF U0laSU5HX05FLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfRSwKKy0JCUtFWUJPQVJEX1JFU0laSU5H X1NXLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfUywKKy0JCUtFWUJPQVJEX1JFU0laSU5HX1NFLAor LQkJS0VZQk9BUkRfUkVTSVpJTkdfVworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3ByZWZzLmgiLCBjcHJlZml4ID0gIk1FVEFfS0VZQklORElOR19BQ1RJT05fIiwgdHlw ZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5nX2FjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMg ZW51bSBLZXlCaW5kaW5nQWN0aW9uIHsKKy0JCU5PTkUsCistCQlXT1JLU1BBQ0VfMSwKKy0JCVdP UktTUEFDRV8yLAorLQkJV09SS1NQQUNFXzMsCistCQlXT1JLU1BBQ0VfNCwKKy0JCVdPUktTUEFD RV81LAorLQkJV09SS1NQQUNFXzYsCistCQlXT1JLU1BBQ0VfNywKKy0JCVdPUktTUEFDRV84LAor LQkJV09SS1NQQUNFXzksCistCQlXT1JLU1BBQ0VfMTAsCistCQlXT1JLU1BBQ0VfMTEsCistCQlX T1JLU1BBQ0VfMTIsCistCQlXT1JLU1BBQ0VfTEVGVCwKKy0JCVdPUktTUEFDRV9SSUdIVCwKKy0J CVdPUktTUEFDRV9VUCwKKy0JCVdPUktTUEFDRV9ET1dOLAorLQkJV09SS1NQQUNFX0xBU1QsCist CQlTV0lUQ0hfQVBQTElDQVRJT05TLAorLQkJU1dJVENIX0FQUExJQ0FUSU9OU19CQUNLV0FSRCwK Ky0JCVNXSVRDSF9HUk9VUCwKKy0JCVNXSVRDSF9HUk9VUF9CQUNLV0FSRCwKKy0JCVNXSVRDSF9X SU5ET1dTLAorLQkJU1dJVENIX1dJTkRPV1NfQkFDS1dBUkQsCistCQlTV0lUQ0hfUEFORUxTLAor LQkJU1dJVENIX1BBTkVMU19CQUNLV0FSRCwKKy0JCUNZQ0xFX0dST1VQLAorLQkJQ1lDTEVfR1JP VVBfQkFDS1dBUkQsCistCQlDWUNMRV9XSU5ET1dTLAorLQkJQ1lDTEVfV0lORE9XU19CQUNLV0FS RCwKKy0JCUNZQ0xFX1BBTkVMUywKKy0JCUNZQ0xFX1BBTkVMU19CQUNLV0FSRCwKKy0JCVNIT1df REVTS1RPUCwKKy0JCVBBTkVMX01BSU5fTUVOVSwKKy0JCVBBTkVMX1JVTl9ESUFMT0csCistCQlU T0dHTEVfUkVDT1JESU5HLAorLQkJU0VUX1NQRVdfTUFSSywKKy0JCUFDVElWQVRFX1dJTkRPV19N RU5VLAorLQkJVE9HR0xFX0ZVTExTQ1JFRU4sCistCQlUT0dHTEVfTUFYSU1JWkVELAorLQkJVE9H R0xFX1RJTEVEX0xFRlQsCistCQlUT0dHTEVfVElMRURfUklHSFQsCistCQlUT0dHTEVfQUJPVkUs CistCQlNQVhJTUlaRSwKKy0JCVVOTUFYSU1JWkUsCistCQlUT0dHTEVfU0hBREVELAorLQkJTUlO SU1JWkUsCistCQlDTE9TRSwKKy0JCUJFR0lOX01PVkUsCistCQlCRUdJTl9SRVNJWkUsCistCQlU T0dHTEVfT05fQUxMX1dPUktTUEFDRVMsCistCQlNT1ZFX1RPX1dPUktTUEFDRV8xLAorLQkJTU9W RV9UT19XT1JLU1BBQ0VfMiwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzMsCistCQlNT1ZFX1RPX1dP UktTUEFDRV80LAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfNSwKKy0JCU1PVkVfVE9fV09SS1NQQUNF XzYsCistCQlNT1ZFX1RPX1dPUktTUEFDRV83LAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfOCwKKy0J CU1PVkVfVE9fV09SS1NQQUNFXzksCistCQlNT1ZFX1RPX1dPUktTUEFDRV8xMCwKKy0JCU1PVkVf VE9fV09SS1NQQUNFXzExLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfMTIsCistCQlNT1ZFX1RPX1dP UktTUEFDRV9MRUZULAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfUklHSFQsCistCQlNT1ZFX1RPX1dP UktTUEFDRV9VUCwKKy0JCU1PVkVfVE9fV09SS1NQQUNFX0RPV04sCistCQlNT1ZFX1RPX1dPUktT UEFDRV9MQVNULAorLQkJTU9WRV9UT19NT05JVE9SX0xFRlQsCistCQlNT1ZFX1RPX01PTklUT1Jf UklHSFQsCistCQlNT1ZFX1RPX01PTklUT1JfVVAsCistCQlNT1ZFX1RPX01PTklUT1JfRE9XTiwK Ky0JCVJBSVNFX09SX0xPV0VSLAorLQkJUkFJU0UsCistCQlMT1dFUiwKKy0JCU1BWElNSVpFX1ZF UlRJQ0FMTFksCistCQlNQVhJTUlaRV9IT1JJWk9OVEFMTFksCistCQlNT1ZFX1RPX0NPUk5FUl9O VywKKy0JCU1PVkVfVE9fQ09STkVSX05FLAorLQkJTU9WRV9UT19DT1JORVJfU1csCistCQlNT1ZF X1RPX0NPUk5FUl9TRSwKKy0JCU1PVkVfVE9fU0lERV9OLAorLQkJTU9WRV9UT19TSURFX1MsCist CQlNT1ZFX1RPX1NJREVfRSwKKy0JCU1PVkVfVE9fU0lERV9XLAorLQkJTU9WRV9UT19DRU5URVIs CistCQlPVkVSTEFZX0tFWSwKKy0JCUlTT19ORVhUX0dST1VQLAorLQkJQUxXQVlTX09OX1RPUCwK Ky0JCUxBU1QKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5o IiwgY3ByZWZpeCA9ICJNRVRBX0tFWV9CSU5ESU5HXyIsIHR5cGVfaWQgPSAibWV0YV9rZXlfYmlu ZGluZ19mbGFnc19nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIEtleUJp bmRpbmdGbGFncyB7CistCQlOT05FLAorLQkJUEVSX1dJTkRPVywKKy0JCUJVSUxUSU4sCistCQlJ U19SRVZFUlNFRAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwu aCIsIGNwcmVmaXggPSAiTUVUQV9MQVRFUl8iLCB0eXBlX2lkID0gIm1ldGFfbGF0ZXJfdHlwZV9n ZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBMYXRlclR5cGUgeworLQkJUkVTSVpFLAorLQkJ Q0FMQ19TSE9XSU5HLAorLQkJQ0hFQ0tfRlVMTFNDUkVFTiwKKy0JCVNZTkNfU1RBQ0ssCistCQlC RUZPUkVfUkVEUkFXLAorLQkJSURMRQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3V0aWwuaCIsIGNwcmVmaXggPSAiTUVUQV9MT0NBTEVfRElSRUNUSU9OXyIsIHR5cGVf aWQgPSAibWV0YV9sb2NhbGVfZGlyZWN0aW9uX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVt IExvY2FsZURpcmVjdGlvbiB7CistCQlMVFIsCistCQlSVEwKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cuaCIsIGNwcmVmaXggPSAiTUVUQV9NQVhJTUlaRV8i LCB0eXBlX2lkID0gIm1ldGFfbWF4aW1pemVfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdz XQorLQlwdWJsaWMgZW51bSBNYXhpbWl6ZUZsYWdzIHsKKy0JCUhPUklaT05UQUwsCistCQlWRVJU SUNBTCwKKy0JCUJPVEgKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t ZXRhLXBsdWdpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX01PREFMXyIsIHR5cGVfaWQgPSAibWV0YV9t b2RhbF9vcHRpb25zX2dldF90eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gTW9k YWxPcHRpb25zIHsKKy0JCVBPSU5URVJfQUxSRUFEWV9HUkFCQkVELAorLQkJS0VZQk9BUkRfQUxS RUFEWV9HUkFCQkVECistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29t bW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfTU9USU9OXyIsIHR5cGVfaWQgPSAibWV0YV9tb3Rpb25f ZGlyZWN0aW9uX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIE1vdGlvbkRpcmVjdGlvbiB7 CistCQlVUCwKKy0JCURPV04sCistCQlMRUZULAorLQkJUklHSFQsCistCQlVUF9MRUZULAorLQkJ VVBfUklHSFQsCistCQlET1dOX0xFRlQsCistCQlET1dOX1JJR0hUCistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNwcmVmaXggPSAiTUVUQV9QUkVGXyIs IHR5cGVfaWQgPSAibWV0YV9wcmVmZXJlbmNlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVt IFByZWZlcmVuY2UgeworLQkJTU9VU0VfQlVUVE9OX01PRFMsCistCQlGT0NVU19NT0RFLAorLQkJ Rk9DVVNfTkVXX1dJTkRPV1MsCistCQlBVFRBQ0hfTU9EQUxfRElBTE9HUywKKy0JCVJBSVNFX09O X0NMSUNLLAorLQkJQUNUSU9OX0RPVUJMRV9DTElDS19USVRMRUJBUiwKKy0JCUFDVElPTl9NSURE TEVfQ0xJQ0tfVElUTEVCQVIsCistCQlBQ1RJT05fUklHSFRfQ0xJQ0tfVElUTEVCQVIsCistCQlB VVRPX1JBSVNFLAorLQkJQVVUT19SQUlTRV9ERUxBWSwKKy0JCUZPQ1VTX0NIQU5HRV9PTl9QT0lO VEVSX1JFU1QsCistCQlUSVRMRUJBUl9GT05ULAorLQkJTlVNX1dPUktTUEFDRVMsCistCQlEWU5B TUlDX1dPUktTUEFDRVMsCistCQlLRVlCSU5ESU5HUywKKy0JCURJU0FCTEVfV09SS0FST1VORFMs CistCQlCVVRUT05fTEFZT1VULAorLQkJV09SS1NQQUNFX05BTUVTLAorLQkJVklTVUFMX0JFTEws CistCQlBVURJQkxFX0JFTEwsCistCQlWSVNVQUxfQkVMTF9UWVBFLAorLQkJR05PTUVfQUNDRVNT SUJJTElUWSwKKy0JCUdOT01FX0FOSU1BVElPTlMsCistCQlDVVJTT1JfVEhFTUUsCistCQlDVVJT T1JfU0laRSwKKy0JCVJFU0laRV9XSVRIX1JJR0hUX0JVVFRPTiwKKy0JCUVER0VfVElMSU5HLAor LQkJRk9SQ0VfRlVMTFNDUkVFTiwKKy0JCVdPUktTUEFDRVNfT05MWV9PTl9QUklNQVJZLAorLQkJ RFJBR0dBQkxFX0JPUkRFUl9XSURUSCwKKy0JCUFVVE9fTUFYSU1JWkUsCistCQlDRU5URVJfTkVX X1dJTkRPV1MsCistCQlEUkFHX1RIUkVTSE9MRDsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIHN0cmluZyB0b19z dHJpbmcgKE1ldGEuUHJlZmVyZW5jZSBwcmVmKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9zY3JlZW4uaCIsIGNwcmVmaXggPSAiTUVUQV9TQ1JFRU5fIiwgdHlwZV9p ZCA9ICJtZXRhX3NjcmVlbl9jb3JuZXJfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gU2Ny ZWVuQ29ybmVyIHsKKy0JCVRPUExFRlQsCistCQlUT1BSSUdIVCwKKy0JCUJPVFRPTUxFRlQsCist CQlCT1RUT01SSUdIVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21l dGEtZW51bS10eXBlcy5oIiwgY3ByZWZpeCA9ICJNRVRBX1NDUkVFTl8iLCB0eXBlX2lkID0gIm1l dGFfc2NyZWVuX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBTY3JlZW5E aXJlY3Rpb24geworLQkJVVAsCistCQlET1dOLAorLQkJTEVGVCwKKy0JCVJJR0hUCistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1lbnVtLXR5cGVzLmgiLCBjcHJl Zml4ID0gIk1FVEFfU0hBRE9XX01PREVfIiwgdHlwZV9pZCA9ICJtZXRhX3NoYWRvd19tb2RlX2dl dF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFNoYWRvd01vZGUgeworLQkJQVVUTywKKy0JCUZP UkNFRF9PRkYsCistCQlGT1JDRURfT04KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9TSURFXyIsIHR5cGVfaWQgPSAibWV0 YV9zaWRlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFNpZGUgeworLQkJTEVGVCwKKy0J CVJJR0hULAorLQkJVE9QLAorLQkJQk9UVE9NCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWV0YS1lbnVtLXR5cGVzLmgiLCBjcHJlZml4ID0gIk1FVEFfU0laRV9DSEFO R0VfIiwgdHlwZV9pZCA9ICJtZXRhX3NpemVfY2hhbmdlX2dldF90eXBlICgpIildCistCXB1Ymxp YyBlbnVtIFNpemVDaGFuZ2UgeworLQkJTUFYSU1JWkUsCistCQlVTk1BWElNSVpFLAorLQkJRlVM TFNDUkVFTiwKKy0JCVVORlVMTFNDUkVFTgorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0xBWUVSXyIsIHR5cGVfaWQgPSAi bWV0YV9zdGFja19sYXllcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBTdGFja0xheWVy IHsKKy0JCURFU0tUT1AsCistCQlCT1RUT00sCistCQlOT1JNQUwsCistCQlUT1AsCistCQlET0NL LAorLQkJRlVMTFNDUkVFTiwKKy0JCUZPQ1VTRURfV0lORE9XLAorLQkJT1ZFUlJJREVfUkVESVJF Q1QsCistCQlMQVNUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvZGlz cGxheS5oIiwgY3ByZWZpeCA9ICJNRVRBX1RBQl9MSVNUXyIsIHR5cGVfaWQgPSAibWV0YV90YWJf bGlzdF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBUYWJMaXN0IHsKKy0JCU5PUk1BTCwK Ky0JCURPQ0tTLAorLQkJR1JPVVAsCistCQlOT1JNQUxfQUxMCistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvZGlzcGxheS5oIiwgY3ByZWZpeCA9ICJNRVRBX1RBQl9TSE9X XyIsIHR5cGVfaWQgPSAibWV0YV90YWJfc2hvd190eXBlX2dldF90eXBlICgpIildCistCXB1Ymxp YyBlbnVtIFRhYlNob3dUeXBlIHsKKy0JCUlDT04sCistCQlJTlNUQU5UTFkKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9W SVJUVUFMXyIsIHR5cGVfaWQgPSAibWV0YV92aXJ0dWFsX21vZGlmaWVyX2dldF90eXBlICgpIild CistCVtGbGFnc10KKy0JcHVibGljIGVudW0gVmlydHVhbE1vZGlmaWVyIHsKKy0JCVNISUZUX01B U0ssCistCQlDT05UUk9MX01BU0ssCistCQlBTFRfTUFTSywKKy0JCU1FVEFfTUFTSywKKy0JCVNV UEVSX01BU0ssCistCQlIWVBFUl9NQVNLLAorLQkJTU9EMl9NQVNLLAorLQkJTU9EM19NQVNLLAor LQkJTU9ENF9NQVNLLAorLQkJTU9ENV9NQVNLCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvd2luZG93LmgiLCBjcHJlZml4ID0gIk1FVEFfV0lORE9XX0NMSUVOVF9UWVBF XyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfY2xpZW50X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0J cHVibGljIGVudW0gV2luZG93Q2xpZW50VHlwZSB7CistCQlXQVlMQU5ELAorLQkJWDExCistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0g Ik1FVEFfV0lORE9XX01FTlVfIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19tZW51X3R5cGVfZ2V0 X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gV2luZG93TWVudVR5cGUgeworLQkJV00sCistCQlB UFAKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cuaCIsIGNw cmVmaXggPSAiTUVUQV9XSU5ET1dfIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd190eXBlX2dldF90 eXBlICgpIildCistCXB1YmxpYyBlbnVtIFdpbmRvd1R5cGUgeworLQkJTk9STUFMLAorLQkJREVT S1RPUCwKKy0JCURPQ0ssCistCQlESUFMT0csCistCQlNT0RBTF9ESUFMT0csCistCQlUT09MQkFS LAorLQkJTUVOVSwKKy0JCVVUSUxJVFksCistCQlTUExBU0hTQ1JFRU4sCistCQlEUk9QRE9XTl9N RU5VLAorLQkJUE9QVVBfTUVOVSwKKy0JCVRPT0xUSVAsCistCQlOT1RJRklDQVRJT04sCistCQlD T01CTywKKy0JCURORCwKKy0JCU9WRVJSSURFX09USEVSCistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCIsIGluc3RhbmNlX3BvcyA9IDIu OSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIElkbGVNb25pdG9yV2F0Y2hGdW5jIChNZXRhLklk bGVNb25pdG9yIG1vbml0b3IsIHVpbnQgd2F0Y2hfaWQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgaW5zdGFuY2VfcG9zID0gNS45KV0KKy0JcHVibGljIGRl bGVnYXRlIHZvaWQgS2V5SGFuZGxlckZ1bmMgKE1ldGEuRGlzcGxheSBkaXNwbGF5LCBNZXRhLlNj cmVlbiBzY3JlZW4sIE1ldGEuV2luZG93PyB3aW5kb3csIENsdXR0ZXIuS2V5RXZlbnQ/IGV2ZW50 LCBNZXRhLktleUJpbmRpbmcgYmluZGluZyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3ByZWZzLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorLQlwdWJsaWMgZGVsZWdhdGUg dm9pZCBQcmVmc0NoYW5nZWRGdW5jIChNZXRhLlByZWZlcmVuY2UgcHJlZik7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3dpbmRvdy5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0K Ky0JcHVibGljIGRlbGVnYXRlIGJvb2wgV2luZG93Rm9yZWFjaEZ1bmMgKE1ldGEuV2luZG93IHdp bmRvdyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1l ID0gIk1FVEFfREVGQVVMVF9JQ09OX05BTUUiKV0KKy0JcHVibGljIGNvbnN0IHN0cmluZyBERUZB VUxUX0lDT05fTkFNRTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IiwgY25hbWUgPSAiTUVUQV9JQ09OX0hFSUdIVCIpXQorLQlwdWJsaWMgY29uc3QgaW50IElDT05f SEVJR0hUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFt ZSA9ICJNRVRBX0lDT05fV0lEVEgiKV0KKy0JcHVibGljIGNvbnN0IGludCBJQ09OX1dJRFRIOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRB X01BSk9SX1ZFUlNJT04iKV0KKy0JcHVibGljIGNvbnN0IGludCBNQUpPUl9WRVJTSU9OOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01J Q1JPX1ZFUlNJT04iKV0KKy0JcHVibGljIGNvbnN0IGludCBNSUNST19WRVJTSU9OOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01JTklf SUNPTl9IRUlHSFQiKV0KKy0JcHVibGljIGNvbnN0IGludCBNSU5JX0lDT05fSEVJR0hUOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01J TklfSUNPTl9XSURUSCIpXQorLQlwdWJsaWMgY29uc3QgaW50IE1JTklfSUNPTl9XSURUSDsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9N SU5PUl9WRVJTSU9OIildCistCXB1YmxpYyBjb25zdCBpbnQgTUlOT1JfVkVSU0lPTjsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9QTFVH SU5fQVBJX1ZFUlNJT04iKV0KKy0JcHVibGljIGNvbnN0IGludCBQTFVHSU5fQVBJX1ZFUlNJT047 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1F VEFfUFJJT1JJVFlfQkVGT1JFX1JFRFJBVyIpXQorLQlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZ X0JFRk9SRV9SRURSQVc7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4u aCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUFJFRlNfTk9USUZZIildCistCXB1YmxpYyBjb25z dCBpbnQgUFJJT1JJVFlfUFJFRlNfTk9USUZZOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZX1JFRFJBVyIpXQorLQlwdWJs aWMgY29uc3QgaW50IFBSSU9SSVRZX1JFRFJBVzsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9QUklPUklUWV9SRVNJWkUiKV0KKy0JcHVi bGljIGNvbnN0IGludCBQUklPUklUWV9SRVNJWkU7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfVklSVFVBTF9DT1JFX0tFWUJPQVJEX0lE IildCistCXB1YmxpYyBjb25zdCBpbnQgVklSVFVBTF9DT1JFX0tFWUJPQVJEX0lEOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX1ZJUlRV QUxfQ09SRV9QT0lOVEVSX0lEIildCistCXB1YmxpYyBjb25zdCBpbnQgVklSVFVBTF9DT1JFX1BP SU5URVJfSUQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQor LQlwdWJsaWMgc3RhdGljIGJvb2wgYWN0aXZhdGVfc2Vzc2lvbiAoKTsKKy0gCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgY2x1 dHRlcl9pbml0ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi KV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGV4aXQgKE1ldGEuRXhpdENvZGUgY29kZSk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQlwdWJsaWMgc3RhdGlj IHVub3duZWQgR0xpYi5PcHRpb25Db250ZXh0IGdldF9vcHRpb25fY29udGV4dCAoKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCistCXB1YmxpYyBzdGF0aWMg Ym9vbCBnZXRfcmVwbGFjZV9jdXJyZW50X3dtICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGluaXQgKCk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQlwdWJsaWMgc3RhdGlj IGJvb2wgaXNfcmVzdGFydCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWFpbi5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBxdWl0IChNZXRhLkV4aXRDb2RlIGNvZGUp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIHJlZ2lzdGVyX3dpdGhfc2Vzc2lvbiAoKTsKKy0gCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVzdGFy dCAoc3RyaW5nIG1lc3NhZ2UpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiKV0KKy0JcHVibGljIHN0YXRpYyBpbnQgcnVuICgpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9nbm9t ZV93bV9rZXliaW5kaW5ncyAoc3RyaW5nIHdtX2tleWJpbmRpbmdzKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRf d21fbmFtZSAoc3RyaW5nIHdtX25hbWUpOworLX0KK2RpZmYgLS1naXQgdmFwaS9saWJtdXR0ZXIt My1jdXN0b20udmFsYSB2YXBpL2xpYm11dHRlci0zLWN1c3RvbS52YWxhCitkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKK2luZGV4IDI5ZTU5NzdkLi4wMDAwMDAwMAorLS0tIHZhcGkvbGlibXV0dGVy LTMtY3VzdG9tLnZhbGEKKysrKyAvZGV2L251bGwKK0BAIC0xLDYgKzAsMCBAQAorLW5hbWVzcGFj ZSBNZXRhIHsKKy0JcHVibGljIGFic3RyYWN0IGNsYXNzIE1vbml0b3JNYW5hZ2VyIDogTWV0YS5E QnVzRGlzcGxheUNvbmZpZ1NrZWxldG9uLCBHTGliLkRCdXNJbnRlcmZhY2UgeworLQkJLyogbm90 IGV4cG9ydGVkICovCistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbW9uaXRvcnNfY2hhbmdlZCAoKTsK Ky0JfQorLX0KK2RpZmYgLS1naXQgdmFwaS9saWJtdXR0ZXItMy5kZXBzIHZhcGkvbGlibXV0dGVy LTMuZGVwcworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAxZjNjOTA3OS4uMDAwMDAw MDAKKy0tLSB2YXBpL2xpYm11dHRlci0zLmRlcHMKKysrKyAvZGV2L251bGwKK0BAIC0xLDkgKzAs MCBAQAorLWNhaXJvCistZ3NldHRpbmdzLWRlc2t0b3Atc2NoZW1hcworLWdkay0zLjAKKy1nZGst cGl4YnVmLTIuMAorLWd0aystMy4wCisteDExCisteGZpeGVzLTQuMAorLWNsdXR0ZXItMS4wCist Y29nbC0xLjAKK2RpZmYgLS1naXQgdmFwaS9saWJtdXR0ZXItNC5kZXBzIHZhcGkvbGlibXV0dGVy LTQuZGVwcworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAzNjdjMzViOS4uMDAwMDAw MDAKKy0tLSB2YXBpL2xpYm11dHRlci00LmRlcHMKKysrKyAvZGV2L251bGwKK0BAIC0xLDggKzAs MCBAQAorLWdkay0zLjAKKy1nZGstcGl4YnVmLTIuMAorLWdzZXR0aW5ncy1kZXNrdG9wLXNjaGVt YXMKKy1ndGsrLTMuMAorLW11dHRlci1jbHV0dGVyLTQKKy1tdXR0ZXItY29nbC00CisteDExCist eGZpeGVzLTQuMAorZGlmZiAtLWdpdCB2YXBpL2xpYm11dHRlci00LnZhcGkgdmFwaS9saWJtdXR0 ZXItNC52YXBpCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IGUwZDM1NmEwLi4wMDAw MDAwMAorLS0tIHZhcGkvbGlibXV0dGVyLTQudmFwaQorKysrIC9kZXYvbnVsbAorQEAgLTEsMTQy NSArMCwwIEBACistLyogbGlibXV0dGVyLTQudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8g bm90IG1vZGlmeS4gKi8KKy0KKy1bQ0NvZGUgKGNwcmVmaXggPSAiTWV0YSIsIGdpcl9uYW1lc3Bh Y2UgPSAiTWV0YSIsIGdpcl92ZXJzaW9uID0gIjQiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAibWV0 YV8iKV0KKy1uYW1lc3BhY2UgTWV0YSB7CistCW5hbWVzcGFjZSBDb21wb3NpdG9yIHsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFt ZSA9ICJtZXRhX2Rpc2FibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSIpXQorLQkJcHVibGljIHN0 YXRpYyB2b2lkIGRpc2FibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRp c3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1t dXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIildCistCQlw dWJsaWMgc3RhdGljIHZvaWQgZW1wdHlfc3RhZ2VfaW5wdXRfcmVnaW9uIChNZXRhLkRpc3BsYXkg ZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9y LW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9lbmFibGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSIp XQorLQkJcHVibGljIHN0YXRpYyB2b2lkIGVuYWJsZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IChN ZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9mb2N1c19zdGFnZV93aW5kb3ci KV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBmb2N1c19zdGFnZV93aW5kb3cgKE1ldGEuRGlzcGxh eSBkaXNwbGF5LCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dldF9mZWVkYmFj a19ncm91cF9mb3JfZGlzcGxheSIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIu QWN0b3IgZ2V0X2ZlZWRiYWNrX2dyb3VwX2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxh eSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRl ci5oIiwgY25hbWUgPSAibWV0YV9nZXRfc3RhZ2VfZm9yX2Rpc3BsYXkiKV0KKy0JCXB1YmxpYyBz dGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9zdGFnZV9mb3JfZGlzcGxheSAoTWV0YS5E aXNwbGF5IGRpc3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29t cG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZ2V0X3RvcF93aW5kb3dfZ3JvdXBfZm9y X2Rpc3BsYXkiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF90 b3Bfd2luZG93X2dyb3VwX2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25h bWUgPSAibWV0YV9nZXRfd2luZG93X2FjdG9ycyIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVk IEdMaWIuTGlzdDxDbHV0dGVyLkFjdG9yPiBnZXRfd2luZG93X2FjdG9ycyAoTWV0YS5EaXNwbGF5 IGRpc3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRv ci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZ2V0X3dpbmRvd19ncm91cF9mb3JfZGlzcGxheSIp XQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3dpbmRvd19ncm91 cF9mb3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfc2V0 X3N0YWdlX2lucHV0X3JlZ2lvbiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHNldF9zdGFnZV9p bnB1dF9yZWdpb24gKE1ldGEuRGlzcGxheSBkaXNwbGF5LCBYLlhzZXJ2ZXJSZWdpb24gcmVnaW9u KTsKKy0JfQorLQluYW1lc3BhY2UgUHJlZnMgeworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfYmVsbF9pc19hdWRpYmxlIild CistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfYmVsbF9pc19hdWRpYmxlICgpOworLQkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJl ZnNfY2hhbmdlX3dvcmtzcGFjZV9uYW1lIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgcHJlZnNf Y2hhbmdlX3dvcmtzcGFjZV9uYW1lIChpbnQgaSwgc3RyaW5nIG5hbWUpOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0 X2FjdGlvbl9kb3VibGVfY2xpY2tfdGl0bGViYXIiKV0KKy0JCXB1YmxpYyBzdGF0aWMgR0Rlc2t0 b3AuVGl0bGViYXJBY3Rpb24gcHJlZnNfZ2V0X2FjdGlvbl9kb3VibGVfY2xpY2tfdGl0bGViYXIg KCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUg PSAibWV0YV9wcmVmc19nZXRfYWN0aW9uX21pZGRsZV9jbGlja190aXRsZWJhciIpXQorLQkJcHVi bGljIHN0YXRpYyBHRGVza3RvcC5UaXRsZWJhckFjdGlvbiBwcmVmc19nZXRfYWN0aW9uX21pZGRs ZV9jbGlja190aXRsZWJhciAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9hY3Rpb25fcmlnaHRfY2xpY2tfdGl0 bGViYXIiKV0KKy0JCXB1YmxpYyBzdGF0aWMgR0Rlc2t0b3AuVGl0bGViYXJBY3Rpb24gcHJlZnNf Z2V0X2FjdGlvbl9yaWdodF9jbGlja190aXRsZWJhciAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9hdHRhY2hf bW9kYWxfZGlhbG9ncyIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHByZWZzX2dldF9hdHRhY2hf bW9kYWxfZGlhbG9ncyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3By ZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9hdXRvX21heGltaXplIildCistCQlwdWJs aWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2F1dG9fbWF4aW1pemUgKCk7CistCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRf YXV0b19yYWlzZSIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHByZWZzX2dldF9hdXRvX3JhaXNl ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1l ID0gIm1ldGFfcHJlZnNfZ2V0X2F1dG9fcmFpc2VfZGVsYXkiKV0KKy0JCXB1YmxpYyBzdGF0aWMg aW50IHByZWZzX2dldF9hdXRvX3JhaXNlX2RlbGF5ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2J1dHRvbl9s YXlvdXQiKV0KKy0JCXB1YmxpYyBzdGF0aWMgTWV0YS5CdXR0b25MYXlvdXQgcHJlZnNfZ2V0X2J1 dHRvbl9sYXlvdXQgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVm cy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfY2VudGVyX25ld193aW5kb3dzIildCistCQlw dWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2NlbnRlcl9uZXdfd2luZG93cyAoKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3By ZWZzX2dldF9jb21wb3NpdGluZ19tYW5hZ2VyIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJl ZnNfZ2V0X2NvbXBvc2l0aW5nX21hbmFnZXIgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfY3Vyc29yX3NpemUi KV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IHByZWZzX2dldF9jdXJzb3Jfc2l6ZSAoKTsKKy0JCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3By ZWZzX2dldF9jdXJzb3JfdGhlbWUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJpbmcg cHJlZnNfZ2V0X2N1cnNvcl90aGVtZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9kaXNhYmxlX3dvcmthcm91 bmRzIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2Rpc2FibGVfd29ya2Fyb3Vu ZHMgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25h bWUgPSAibWV0YV9wcmVmc19nZXRfZHJhZ190aHJlc2hvbGQiKV0KKy0JCXB1YmxpYyBzdGF0aWMg aW50IHByZWZzX2dldF9kcmFnX3RocmVzaG9sZCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9kcmFnZ2FibGVf Ym9yZGVyX3dpZHRoIildCistCQlwdWJsaWMgc3RhdGljIGludCBwcmVmc19nZXRfZHJhZ2dhYmxl X2JvcmRlcl93aWR0aCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3By ZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9keW5hbWljX3dvcmtzcGFjZXMiKV0KKy0J CXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfZHluYW1pY193b3Jrc3BhY2VzICgpOworLQkJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFf cHJlZnNfZ2V0X2VkZ2VfdGlsaW5nIildCistCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0 X2VkZ2VfdGlsaW5nICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJl ZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2ZvY3VzX2NoYW5nZV9vbl9wb2ludGVyX3Jl c3QiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfZm9jdXNfY2hhbmdlX29uX3Bv aW50ZXJfcmVzdCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZz LmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9mb2N1c19tb2RlIildCistCQlwdWJsaWMgc3Rh dGljIEdEZXNrdG9wLkZvY3VzTW9kZSBwcmVmc19nZXRfZm9jdXNfbW9kZSAoKTsKKy0JCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZz X2dldF9mb2N1c19uZXdfd2luZG93cyIpXQorLQkJcHVibGljIHN0YXRpYyBHRGVza3RvcC5Gb2N1 c05ld1dpbmRvd3MgcHJlZnNfZ2V0X2ZvY3VzX25ld193aW5kb3dzICgpOworLQkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0 X2ZvcmNlX2Z1bGxzY3JlZW4iKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfZm9y Y2VfZnVsbHNjcmVlbiAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3By ZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9nbm9tZV9hY2Nlc3NpYmlsaXR5IildCist CQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2dub21lX2FjY2Vzc2liaWxpdHkgKCk7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0 YV9wcmVmc19nZXRfZ25vbWVfYW5pbWF0aW9ucyIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHBy ZWZzX2dldF9nbm9tZV9hbmltYXRpb25zICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X2tleWJpbmRpbmdfYWN0 aW9uIildCistCQlwdWJsaWMgc3RhdGljIE1ldGEuS2V5QmluZGluZ0FjdGlvbiBwcmVmc19nZXRf a2V5YmluZGluZ19hY3Rpb24gKHN0cmluZyBuYW1lKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9tb3VzZV9idXR0 b25fbWVudSIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgcHJlZnNfZ2V0X21vdXNlX2J1dHRvbl9t ZW51ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNu YW1lID0gIm1ldGFfcHJlZnNfZ2V0X21vdXNlX2J1dHRvbl9tb2RzIildCistCQlwdWJsaWMgc3Rh dGljIE1ldGEuVmlydHVhbE1vZGlmaWVyIHByZWZzX2dldF9tb3VzZV9idXR0b25fbW9kcyAoKTsK Ky0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJt ZXRhX3ByZWZzX2dldF9tb3VzZV9idXR0b25fcmVzaXplIildCistCQlwdWJsaWMgc3RhdGljIGlu dCBwcmVmc19nZXRfbW91c2VfYnV0dG9uX3Jlc2l6ZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9udW1fd29y a3NwYWNlcyIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgcHJlZnNfZ2V0X251bV93b3Jrc3BhY2Vz ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1l ID0gIm1ldGFfcHJlZnNfZ2V0X3JhaXNlX29uX2NsaWNrIildCistCQlwdWJsaWMgc3RhdGljIGJv b2wgcHJlZnNfZ2V0X3JhaXNlX29uX2NsaWNrICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X3Nob3dfZmFsbGJh Y2tfYXBwX21lbnUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfc2hvd19mYWxs YmFja19hcHBfbWVudSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3By ZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF90aXRsZWJhcl9mb250IildCistCQlwdWJs aWMgc3RhdGljIHVub3duZWQgUGFuZ28uRm9udERlc2NyaXB0aW9uIHByZWZzX2dldF90aXRsZWJh cl9mb250ICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIs IGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X3Zpc3VhbF9iZWxsIildCistCQlwdWJsaWMgc3RhdGlj IGJvb2wgcHJlZnNfZ2V0X3Zpc3VhbF9iZWxsICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfZ2V0X3Zpc3VhbF9iZWxs X3R5cGUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgR0Rlc2t0b3AuVmlzdWFsQmVsbFR5cGUgcHJlZnNf Z2V0X3Zpc3VhbF9iZWxsX3R5cGUgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19nZXRfd29ya3NwYWNlX25hbWUiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgcHJlZnNfZ2V0X3dvcmtzcGFjZV9uYW1l IChpbnQgaSk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwg Y25hbWUgPSAibWV0YV9wcmVmc19nZXRfd29ya3NwYWNlc19vbmx5X29uX3ByaW1hcnkiKV0KKy0J CXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfd29ya3NwYWNlc19vbmx5X29uX3ByaW1hcnkg KCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUg PSAibWV0YV9wcmVmc19pbml0IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgcHJlZnNfaW5pdCAo KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9 ICJtZXRhX3ByZWZzX3NldF9mb3JjZV9mdWxsc2NyZWVuIildCistCQlwdWJsaWMgc3RhdGljIHZv aWQgcHJlZnNfc2V0X2ZvcmNlX2Z1bGxzY3JlZW4gKGJvb2wgd2hldGhlcik7CistCQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19z ZXRfbnVtX3dvcmtzcGFjZXMiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBwcmVmc19zZXRfbnVt X3dvcmtzcGFjZXMgKGludCBuX3dvcmtzcGFjZXMpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfc2V0X3Nob3dfZmFsbGJh Y2tfYXBwX21lbnUiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCBwcmVmc19zZXRfc2hvd19mYWxs YmFja19hcHBfbWVudSAoYm9vbCB3aGV0aGVyKTsKKy0JfQorLQluYW1lc3BhY2UgVXRpbCB7Cist CQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRh X2FkZF92ZXJib3NlX3RvcGljIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgYWRkX3ZlcmJvc2Vf dG9waWMgKE1ldGEuRGVidWdUb3BpYyB0b3BpYyk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2V4dGVybmFsX2JpbmRpbmdfbmFtZV9m b3JfYWN0aW9uIildCistCQlwdWJsaWMgc3RhdGljIHN0cmluZyBleHRlcm5hbF9iaW5kaW5nX25h bWVfZm9yX2FjdGlvbiAodWludCBrZXliaW5kaW5nX2FjdGlvbik7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2dfdXRmOF9zdHJuZHVw IildCistCQlwdWJsaWMgc3RhdGljIHN0cmluZyBnX3V0Zjhfc3RybmR1cCAoc3RyaW5nIHNyYywg c2l6ZV90IG4pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwg Y25hbWUgPSAibWV0YV9nZXRfbG9jYWxlX2RpcmVjdGlvbiIpXQorLQkJcHVibGljIHN0YXRpYyBN ZXRhLkxvY2FsZURpcmVjdGlvbiBnZXRfbG9jYWxlX2RpcmVjdGlvbiAoKTsKKy0JCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfZ3Jhdml0eV90 b19zdHJpbmciKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBzdHJpbmcgZ3Jhdml0eV90b19z dHJpbmcgKGludCBncmF2aXR5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfaXNfZGVidWdnaW5nIildCistCQlwdWJsaWMgc3RhdGlj IGJvb2wgaXNfZGVidWdnaW5nICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9pc19zeW5jaW5nIildCistCQlwdWJsaWMgc3RhdGlj IGJvb2wgaXNfc3luY2luZyAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfaXNfdmVyYm9zZSIpXQorLQkJcHVibGljIHN0YXRpYyBi b29sIGlzX3ZlcmJvc2UgKCk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91 dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2lzX3dheWxhbmRfY29tcG9zaXRvciIpXQorLQkJcHVibGlj IHN0YXRpYyBib29sIGlzX3dheWxhbmRfY29tcG9zaXRvciAoKTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfbGF0ZXJfYWRkIildCist CQlwdWJsaWMgc3RhdGljIHVpbnQgbGF0ZXJfYWRkIChNZXRhLkxhdGVyVHlwZSB3aGVuLCBvd25l ZCBHTGliLlNvdXJjZUZ1bmMgZnVuYyk7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2xhdGVyX3JlbW92ZSIpXQorLQkJcHVibGljIHN0 YXRpYyB2b2lkIGxhdGVyX3JlbW92ZSAodWludCBsYXRlcl9pZCk7CistCQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX3BvcF9ub19tc2dfcHJl Zml4IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgcG9wX25vX21zZ19wcmVmaXggKCk7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjbmFtZSA9ICJtZXRhX3B1 c2hfbm9fbXNnX3ByZWZpeCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHB1c2hfbm9fbXNnX3By ZWZpeCAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNu YW1lID0gIm1ldGFfcmVjdCIpXQorLQkJcHVibGljIHN0YXRpYyBNZXRhLlJlY3RhbmdsZT8gcmVj dCAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQkJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9yZW1vdmVfdmVyYm9z ZV90b3BpYyIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHJlbW92ZV92ZXJib3NlX3RvcGljIChN ZXRhLkRlYnVnVG9waWMgdG9waWMpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV9zaG93X2RpYWxvZyIpXQorLQkJcHVibGljIHN0YXRp YyBHTGliLlBpZCBzaG93X2RpYWxvZyAoc3RyaW5nIHR5cGUsIHN0cmluZyBtZXNzYWdlLCBzdHJp bmcgdGltZW91dCwgc3RyaW5nIGRpc3BsYXksIHN0cmluZyBva190ZXh0LCBzdHJpbmcgY2FuY2Vs X3RleHQsIHN0cmluZyBpY29uX25hbWUsIGludCB0cmFuc2llbnRfZm9yLCBHTGliLlNMaXN0PHZv aWQqPiBjb2x1bW5zLCBHTGliLlNMaXN0PHZvaWQqPiBlbnRyaWVzKTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfdW5zaWduZWRfbG9u Z19lcXVhbCIpXQorLQkJcHVibGljIHN0YXRpYyBpbnQgdW5zaWduZWRfbG9uZ19lcXVhbCAodm9p ZCogdjEsIHZvaWQqIHYyKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0 aWwuaCIsIGNuYW1lID0gIm1ldGFfdW5zaWduZWRfbG9uZ19oYXNoIildCistCQlwdWJsaWMgc3Rh dGljIHVpbnQgdW5zaWduZWRfbG9uZ19oYXNoICh2b2lkKiB2KTsKKy0JCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfeDExX2Vycm9yX3RyYXBf cG9wIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgeDExX2Vycm9yX3RyYXBfcG9wIChNZXRhLlgx MURpc3BsYXkgeDExX2Rpc3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvdXRpbC5oIiwgY25hbWUgPSAibWV0YV94MTFfZXJyb3JfdHJhcF9wb3Bfd2l0aF9yZXR1cm4i KV0KKy0JCXB1YmxpYyBzdGF0aWMgaW50IHgxMV9lcnJvcl90cmFwX3BvcF93aXRoX3JldHVybiAo TWV0YS5YMTFEaXNwbGF5IHgxMV9kaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfeDExX2Vycm9yX3RyYXBfcHVzaCIpXQor LQkJcHVibGljIHN0YXRpYyB2b2lkIHgxMV9lcnJvcl90cmFwX3B1c2ggKE1ldGEuWDExRGlzcGxh eSB4MTFfZGlzcGxheSk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWV0YS1iYWNrZW5kLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2VuZF9nZXRfdHlwZSAoKSIpXQor LQlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgQmFja2VuZCA6IEdMaWIuT2JqZWN0LCBHTGliLkluaXRh YmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXBy b3RlY3RlZCBCYWNrZW5kICgpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWV0YS1iYWNrZW5kLmgiLCBjbmFtZSA9ICJtZXRhX2dldF9iYWNrZW5kIildCistCQlwdWJsaWMg c3RhdGljIHVub3duZWQgTWV0YS5CYWNrZW5kIGdldF9iYWNrZW5kICgpOworLQkJcHVibGljIHVu b3duZWQgTWV0YS5EbmQgZ2V0X2RuZCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuUmVtb3Rl QWNjZXNzQ29udHJvbGxlciBnZXRfcmVtb3RlX2FjY2Vzc19jb250cm9sbGVyICgpOworLQkJcHVi bGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfc3RhZ2UgKCk7CistCQlwdWJsaWMgdm9pZCBs b2NrX2xheW91dF9ncm91cCAodWludCBpZHgpOworLQkJcHVibGljIHZvaWQgc2V0X2tleW1hcCAo c3RyaW5nIGxheW91dHMsIHN0cmluZyB2YXJpYW50cywgc3RyaW5nIG9wdGlvbnMpOworLQkJcHVi bGljIHZvaWQgc2V0X251bWxvY2sgKGJvb2wgbnVtbG9ja19zdGF0ZSk7CistCQlwdWJsaWMgc2ln bmFsIHZvaWQga2V5bWFwX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQga2V5bWFw X2xheW91dF9ncm91cF9jaGFuZ2VkICh1aW50IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZv aWQgbGFzdF9kZXZpY2VfY2hhbmdlZCAoaW50IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZv aWQgbGlkX2lzX2Nsb3NlZF9jaGFuZ2VkIChib29sIG9iamVjdCk7CistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgiLCB0eXBlX2lkID0gIm1l dGFfYmFja2dyb3VuZF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgQmFja2dyb3VuZCA6 IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl KV0KKy0JCXB1YmxpYyBCYWNrZ3JvdW5kIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CistCQlwdWJs aWMgc3RhdGljIHZvaWQgcmVmcmVzaF9hbGwgKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfYmxlbmQg KEdMaWIuRmlsZSBmaWxlMSwgR0xpYi5GaWxlIGZpbGUyLCBkb3VibGUgYmxlbmRfZmFjdG9yLCBH RGVza3RvcC5CYWNrZ3JvdW5kU3R5bGUgc3R5bGUpOworLQkJcHVibGljIHZvaWQgc2V0X2NvbG9y IChDbHV0dGVyLkNvbG9yIGNvbG9yKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9maWxlIChHTGliLkZp bGUgZmlsZSwgR0Rlc2t0b3AuQmFja2dyb3VuZFN0eWxlIHN0eWxlKTsKKy0JCXB1YmxpYyB2b2lk IHNldF9ncmFkaWVudCAoR0Rlc2t0b3AuQmFja2dyb3VuZFNoYWRpbmcgc2hhZGluZ19kaXJlY3Rp b24sIENsdXR0ZXIuQ29sb3IgY29sb3IsIENsdXR0ZXIuQ29sb3Igc2Vjb25kX2NvbG9yKTsKKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuRGlzcGxheSBtZXRhX2Rpc3BsYXkg eyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGNoYW5nZWQg KCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWFjdG9yLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9hY3Rvcl9nZXRfdHlwZSAo KSIpXQorLQlwdWJsaWMgY2xhc3MgQmFja2dyb3VuZEFjdG9yIDogQ2x1dHRlci5BY3RvciwgQXRr LkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0 dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJcHVibGljIEJhY2tncm91bmRBY3RvciAo TWV0YS5EaXNwbGF5IGRpc3BsYXksIGludCBtb25pdG9yKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9i YWNrZ3JvdW5kIChNZXRhLkJhY2tncm91bmQgYmFja2dyb3VuZCk7CistCQlwdWJsaWMgdm9pZCBz ZXRfZ3JhZGllbnQgKGJvb2wgZW5hYmxlZCwgaW50IGhlaWdodCwgZG91YmxlIHRvbmVfc3RhcnQp OworLQkJcHVibGljIHZvaWQgc2V0X21vbml0b3IgKGludCBtb25pdG9yKTsKKy0JCXB1YmxpYyB2 b2lkIHNldF92aWduZXR0ZSAoYm9vbCBlbmFibGVkLCBkb3VibGUgYnJpZ2h0bmVzcywgZG91Ymxl IHNoYXJwbmVzcyk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLkJhY2tn cm91bmQgYmFja2dyb3VuZCB7IG93bmVkIGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCXB1YmxpYyBkb3VibGUgYnJpZ2h0bmVzcyB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGdyYWRpZW50IHsgZ2V0OyBzZXQ7IH0KKy0JCVtO b0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCBncmFkaWVudF9oZWlnaHQgeyBnZXQ7IHNl dDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgZG91YmxlIGdyYWRpZW50X21h eF9kYXJrbmVzcyB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1Ymxp YyBNZXRhLkRpc3BsYXkgbWV0YV9kaXNwbGF5IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCBtb25pdG9yIHsgZ2V0OyBjb25zdHJ1 Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgdmlnbmV0dGUgeyBn ZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgZG91YmxlIHZpZ25l dHRlX3NoYXJwbmVzcyB7IGdldDsgc2V0OyB9CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFj a2dyb3VuZF9ncm91cF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgQmFja2dyb3VuZEdy b3VwIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUs IENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJ cHVibGljIEJhY2tncm91bmRHcm91cCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNr Z3JvdW5kX2ltYWdlX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBCYWNrZ3JvdW5kSW1h Z2UgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSldCistCQlwcm90ZWN0ZWQgQmFja2dyb3VuZEltYWdlICgpOworLQkJcHVibGljIGJvb2wg Z2V0X3N1Y2Nlc3MgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X3RleHR1 cmUgKCk7CistCQlwdWJsaWMgYm9vbCBpc19sb2FkZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZv aWQgbG9hZGVkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21l dGEtYmFja2dyb3VuZC1pbWFnZS5oIiwgdHlwZV9pZCA9ICJtZXRhX2JhY2tncm91bmRfaW1hZ2Vf Y2FjaGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIEJhY2tncm91bmRJbWFnZUNhY2hl IDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorLQkJcHJvdGVjdGVkIEJhY2tncm91bmRJbWFnZUNhY2hlICgpOworLQkJcHVibGljIHN0 YXRpYyB1bm93bmVkIE1ldGEuQmFja2dyb3VuZEltYWdlQ2FjaGUgZ2V0X2RlZmF1bHQgKCk7Cist CQlwdWJsaWMgTWV0YS5CYWNrZ3JvdW5kSW1hZ2UgbG9hZCAoR0xpYi5GaWxlIGZpbGUpOworLQkJ cHVibGljIHZvaWQgcHVyZ2UgKEdMaWIuRmlsZSBmaWxlKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgs bWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5o LG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJh Y2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFn ZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxt ZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25p dG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVu Y2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2lu LmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5n cy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5o LG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3Rh cnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ct YWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5o LG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1l dGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVz LmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9 ICJtZXRhX2JhcnJpZXJfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIEJhcnJpZXIgOiBH TGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSld CistCQlwcm90ZWN0ZWQgQmFycmllciAoKTsKKy0JCXB1YmxpYyB2b2lkIGRlc3Ryb3kgKCk7Cist CQlwdWJsaWMgYm9vbCBpc19hY3RpdmUgKCk7CistCQlwdWJsaWMgdm9pZCByZWxlYXNlIChNZXRh LkJhcnJpZXJFdmVudCBldmVudCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBN ZXRhLkJhcnJpZXJEaXJlY3Rpb24gZGlyZWN0aW9ucyB7IGdldDsgY29uc3RydWN0OyB9CistCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLkRpc3BsYXkgZGlzcGxheSB7IG93bmVk IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQg eDEgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMg aW50IHgyIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVi bGljIGludCB5MSB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0J CXB1YmxpYyBpbnQgeTIgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIHNpZ25hbCB2b2lk IGhpdCAoTWV0YS5CYXJyaWVyRXZlbnQgZXZlbnQpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGxl ZnQgKE1ldGEuQmFycmllckV2ZW50IGV2ZW50KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIs IGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJtZXRhX2JhcnJpZXJf ZXZlbnRfZ2V0X3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBCYXJyaWVy RXZlbnQgeworLQkJcHVibGljIGludCBkdDsKKy0JCXB1YmxpYyBkb3VibGUgZHg7CistCQlwdWJs aWMgZG91YmxlIGR5OworLQkJcHVibGljIGludCBldmVudF9pZDsKKy0JCXB1YmxpYyBib29sIGdy YWJiZWQ7CistCQlwdWJsaWMgYm9vbCByZWxlYXNlZDsKKy0JCXB1YmxpYyB1aW50MzIgdGltZTsK Ky0JCXB1YmxpYyBkb3VibGUgeDsKKy0JCXB1YmxpYyBkb3VibGUgeTsKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29t bW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlz cGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9t ZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNr ZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRs ZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0 YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEt cGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1z ZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4 dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21l dGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13 aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1z aGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxh eS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRh L3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlw ZV9pZCA9ICJtZXRhX2N1cnNvcl90cmFja2VyX2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFz cyBDdXJzb3JUcmFja2VyIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIEN1cnNvclRyYWNrZXIgKCk7CistCQlw dWJsaWMgc3RhdGljIHVub3duZWQgTWV0YS5DdXJzb3JUcmFja2VyIGdldF9mb3JfZGlzcGxheSAo TWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJcHVibGljIHZvaWQgZ2V0X2hvdCAob3V0IGludCB4 LCBvdXQgaW50IHkpOworLQkJcHVibGljIHZvaWQgZ2V0X3BvaW50ZXIgKGludCB4LCBpbnQgeSwg Q2x1dHRlci5Nb2RpZmllclR5cGUgbW9kcyk7CistCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1 cmUgZ2V0X3Nwcml0ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9wb2ludGVyX3Zpc2libGUgKGJv b2wgdmlzaWJsZSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29yX2NoYW5nZWQgKCk7Cist CQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29yX21vdmVkIChmbG9hdCBvYmplY3QsIGZsb2F0IHAw KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9kaXNwbGF5LmgiLCB0 eXBlX2lkID0gIm1ldGFfZGlzcGxheV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgRGlz cGxheSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBEaXNwbGF5ICgpOworLQkJcHVibGljIHZvaWQgYWRkX2ln bm9yZWRfY3Jvc3Npbmdfc2VyaWFsICh1bG9uZyBzZXJpYWwpOworLQkJcHVibGljIHVpbnQgYWRk X2tleWJpbmRpbmcgKHN0cmluZyBuYW1lLCBHTGliLlNldHRpbmdzIHNldHRpbmdzLCBNZXRhLktl eUJpbmRpbmdGbGFncyBmbGFncywgb3duZWQgTWV0YS5LZXlIYW5kbGVyRnVuYyBoYW5kbGVyKTsK Ky0JCXB1YmxpYyBib29sIGJlZ2luX2dyYWJfb3AgKE1ldGEuV2luZG93IHdpbmRvdywgTWV0YS5H cmFiT3Agb3AsIGJvb2wgcG9pbnRlcl9hbHJlYWR5X2dyYWJiZWQsIGJvb2wgZnJhbWVfYWN0aW9u LCBpbnQgYnV0dG9uLCB1bG9uZyBtb2RtYXNrLCB1aW50MzIgdGltZXN0YW1wLCBpbnQgcm9vdF94 LCBpbnQgcm9vdF95KTsKKy0JCXB1YmxpYyB2b2lkIGNsZWFyX21vdXNlX21vZGUgKCk7CistCQlw dWJsaWMgdm9pZCBjbG9zZSAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBlbmRf Z3JhYl9vcCAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBmb2N1c19kZWZhdWx0 X3dpbmRvdyAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBmcmVlemVfa2V5Ym9h cmQgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIGludCBnZXRfY3VycmVudF9tb25pdG9y ICgpOworLQkJcHVibGljIHVpbnQzMiBnZXRfY3VycmVudF90aW1lICgpOworLQkJcHVibGljIHVp bnQzMiBnZXRfY3VycmVudF90aW1lX3JvdW5kdHJpcCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1l dGEuV2luZG93IGdldF9mb2N1c193aW5kb3cgKCk7CistCQlwdWJsaWMgTWV0YS5HcmFiT3AgZ2V0 X2dyYWJfb3AgKCk7CistCQlwdWJsaWMgdWludCBnZXRfa2V5YmluZGluZ19hY3Rpb24gKHVpbnQg a2V5Y29kZSwgdWxvbmcgbWFzayk7CistCQlwdWJsaWMgdWludDMyIGdldF9sYXN0X3VzZXJfdGlt ZSAoKTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBnZXRfbW9uaXRvcl9nZW9tZXRyeSAoaW50 IG1vbml0b3IpOworLQkJcHVibGljIGJvb2wgZ2V0X21vbml0b3JfaW5fZnVsbHNjcmVlbiAoaW50 IG1vbml0b3IpOworLQkJcHVibGljIGludCBnZXRfbW9uaXRvcl9pbmRleF9mb3JfcmVjdCAoTWV0 YS5SZWN0YW5nbGUgcmVjdCk7CistCQlwdWJsaWMgaW50IGdldF9tb25pdG9yX25laWdoYm9yX2lu ZGV4IChpbnQgd2hpY2hfbW9uaXRvciwgTWV0YS5EaXNwbGF5RGlyZWN0aW9uIGRpcik7CistCQlw dWJsaWMgaW50IGdldF9uX21vbml0b3JzICgpOworLQkJcHVibGljIHN0cmluZyBnZXRfcGFkX2Fj dGlvbl9sYWJlbCAoQ2x1dHRlci5JbnB1dERldmljZSBwYWQsIE1ldGEuUGFkQWN0aW9uVHlwZSBh Y3Rpb25fdHlwZSwgdWludCBhY3Rpb25fbnVtYmVyKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3ByaW1h cnlfbW9uaXRvciAoKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9zaXplIChvdXQgaW50IHdpZHRoLCBv dXQgaW50IGhlaWdodCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLlNvdW5kUGxheWVyIGdldF9z b3VuZF9wbGF5ZXIgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBnZXRfdGFiX2N1 cnJlbnQgKE1ldGEuVGFiTGlzdCB0eXBlLCBNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UpOworLQkJ cHVibGljIEdMaWIuTGlzdDx3ZWFrIE1ldGEuV2luZG93PiBnZXRfdGFiX2xpc3QgKE1ldGEuVGFi TGlzdCB0eXBlLCBNZXRhLldvcmtzcGFjZT8gd29ya3NwYWNlKTsKKy0JCXB1YmxpYyB1bm93bmVk IE1ldGEuV2luZG93IGdldF90YWJfbmV4dCAoTWV0YS5UYWJMaXN0IHR5cGUsIE1ldGEuV29ya3Nw YWNlIHdvcmtzcGFjZSwgTWV0YS5XaW5kb3c/IHdpbmRvdywgYm9vbCBiYWNrd2FyZCk7CistCQlw dWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZU1hbmFnZXIgZ2V0X3dvcmtzcGFjZV9tYW5hZ2Vy ICgpOworLQkJcHVibGljIHVpbnQgZ3JhYl9hY2NlbGVyYXRvciAoc3RyaW5nIGFjY2VsZXJhdG9y LCBNZXRhLktleUJpbmRpbmdGbGFncyBmbGFncyk7CistCQlwdWJsaWMgYm9vbCBpc19wb2ludGVy X2VtdWxhdGluZ19zZXF1ZW5jZSAoQ2x1dHRlci5FdmVudFNlcXVlbmNlPyBzZXF1ZW5jZSk7Cist CQlwdWJsaWMgYm9vbCByZW1vdmVfa2V5YmluZGluZyAoc3RyaW5nIG5hbWUpOworLQkJcHVibGlj IHZvaWQgcmVxdWVzdF9wYWRfb3NkIChDbHV0dGVyLklucHV0RGV2aWNlIHBhZCwgYm9vbCBlZGl0 aW9uX21vZGUpOworLQkJcHVibGljIHZvaWQgc2V0X2N1cnNvciAoTWV0YS5DdXJzb3IgY3Vyc29y KTsKKy0JCXB1YmxpYyBHTGliLlNMaXN0PHdlYWsgTWV0YS5XaW5kb3c+IHNvcnRfd2luZG93c19i eV9zdGFja2luZyAoR0xpYi5TTGlzdDxNZXRhLldpbmRvdz4gd2luZG93cyk7CistCQlwdWJsaWMg Ym9vbCBzdXBwb3J0c19leHRlbmRlZF9iYXJyaWVycyAoKTsKKy0JCXB1YmxpYyB2b2lkIHVuZnJl ZXplX2tleWJvYXJkICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyBib29sIHVuZ3JhYl9h Y2NlbGVyYXRvciAodWludCBhY3Rpb25faWQpOworLQkJcHVibGljIHZvaWQgdW5ncmFiX2tleWJv YXJkICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyBib29sIHhzZXJ2ZXJfdGltZV9pc19i ZWZvcmUgKHVpbnQzMiB0aW1lMSwgdWludDMyIHRpbWUyKTsKKy0JCXB1YmxpYyBNZXRhLldpbmRv dyBmb2N1c193aW5kb3cgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBhY2NlbGVyYXRv cl9hY3RpdmF0ZWQgKHVpbnQgb2JqZWN0LCB1aW50IHAwLCB1aW50IHAxKTsKKy0JCXB1YmxpYyBz aWduYWwgdm9pZCBjdXJzb3JfdXBkYXRlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBnbF92 aWRlb19tZW1vcnlfcHVyZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGdyYWJfb3BfYmVn aW4gKE1ldGEuRGlzcGxheSBvYmplY3QsIE1ldGEuV2luZG93IHAwLCBNZXRhLkdyYWJPcCBwMSk7 CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZ3JhYl9vcF9lbmQgKE1ldGEuRGlzcGxheSBvYmplY3Qs IE1ldGEuV2luZG93IHAwLCBNZXRhLkdyYWJPcCBwMSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQg aW5fZnVsbHNjcmVlbl9jaGFuZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCBib29sIG1vZGlmaWVy c19hY2NlbGVyYXRvcl9hY3RpdmF0ZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgb3Zlcmxh eV9rZXkgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgcGFkX21vZGVfc3dpdGNoIChDbHV0dGVy LklucHV0RGV2aWNlIG9iamVjdCwgdWludCBwMCwgdWludCBwMSk7CistCQlwdWJsaWMgc2lnbmFs IHZvaWQgcmVzdGFja2VkICgpOworLQkJcHVibGljIHNpZ25hbCBib29sIHJlc3RhcnQgKCk7Cist CQlwdWJsaWMgc2lnbmFsIHZvaWQgc2hvd19vc2QgKGludCBvYmplY3QsIHN0cmluZyBwMCwgc3Ry aW5nIHAxKTsKKy0JCXB1YmxpYyBzaWduYWwgdW5vd25lZCBDbHV0dGVyLkFjdG9yPyBzaG93X3Bh ZF9vc2QgKENsdXR0ZXIuSW5wdXREZXZpY2UgcGFkLCBHTGliLlNldHRpbmdzIHNldHRpbmdzLCBz dHJpbmcgbGF5b3V0X3BhdGgsIGJvb2wgZWRpdGlvbl9tb2RlLCBpbnQgbW9uaXRvcl9pZHgpOwor LQkJcHVibGljIHNpZ25hbCBib29sIHNob3dfcmVzaXplX3BvcHVwIChib29sIG9iamVjdCwgTWV0 YS5SZWN0YW5nbGUgcDAsIGludCBwMSwgaW50IHAyKTsKKy0JCXB1YmxpYyBzaWduYWwgYm9vbCBz aG93X3Jlc3RhcnRfbWVzc2FnZSAoc3RyaW5nPyBtZXNzYWdlKTsKKy0JCXB1YmxpYyBzaWduYWwg dm9pZCBzaG93aW5nX2Rlc2t0b3BfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3 aW5kb3dfY3JlYXRlZCAoTWV0YS5XaW5kb3cgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9p ZCB3aW5kb3dfZGVtYW5kc19hdHRlbnRpb24gKE1ldGEuV2luZG93IG9iamVjdCk7CistCQlwdWJs aWMgc2lnbmFsIHZvaWQgd2luZG93X2VudGVyZWRfbW9uaXRvciAoaW50IG9iamVjdCwgTWV0YS5X aW5kb3cgcDApOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19sZWZ0X21vbml0b3IgKGlu dCBvYmplY3QsIE1ldGEuV2luZG93IHAwKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5kb3df bWFya2VkX3VyZ2VudCAoTWV0YS5XaW5kb3cgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9p ZCB3b3JrYXJlYXNfY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB4MTFfZGlzcGxh eV9jbG9zaW5nICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHgxMV9kaXNwbGF5X29wZW5lZCAo KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0 YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9y LW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgs bWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rv ci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRh L21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlw ZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRz LWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1h bmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJv bGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1l dGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21l dGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVy c2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgs bWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1l dGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5o LG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRh L3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX2RuZF9nZXRfdHlwZSAoKSIpXQorLQlwdWJs aWMgY2xhc3MgRG5kIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIERuZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwg dm9pZCBkbmRfZW50ZXIgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZG5kX2xlYXZlICgpOwor LQkJcHVibGljIHNpZ25hbCB2b2lkIGRuZF9wb3NpdGlvbl9jaGFuZ2UgKGludCBvYmplY3QsIGlu dCBwMCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5o LG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9z aXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5n cy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt YWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgs bWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVt LXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0 Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRv ci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNv bnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rvcnku aCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0 YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRh LXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91 cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIu aCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJl ZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93Lmgs bWV0YS93b3Jrc3BhY2UuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbQ29tcGFjdF0KKy0J cHVibGljIGNsYXNzIEZyYW1lIHsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9y LmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxt ZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1j bG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgs bWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRh LWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1l dGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJl bW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1z aGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3Vu ZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRp b24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21l dGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jr c3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJy b3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgs bWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX2lkbGVfbW9u aXRvcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgSWRsZU1vbml0b3IgOiBHTGliLk9i amVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlw cm90ZWN0ZWQgSWRsZU1vbml0b3IgKCk7CistCQlwdWJsaWMgdWludCBhZGRfaWRsZV93YXRjaCAo dWludDY0IGludGVydmFsX21zZWMsIG93bmVkIE1ldGEuSWRsZU1vbml0b3JXYXRjaEZ1bmM/IGNh bGxiYWNrKTsKKy0JCXB1YmxpYyB1aW50IGFkZF91c2VyX2FjdGl2ZV93YXRjaCAob3duZWQgTWV0 YS5JZGxlTW9uaXRvcldhdGNoRnVuYz8gY2FsbGJhY2spOworLQkJcHVibGljIHN0YXRpYyB1bm93 bmVkIE1ldGEuSWRsZU1vbml0b3IgZ2V0X2NvcmUgKCk7CistCQlwdWJsaWMgc3RhdGljIHVub3du ZWQgTWV0YS5JZGxlTW9uaXRvciBnZXRfZm9yX2RldmljZSAoaW50IGRldmljZV9pZCk7CistCQlw dWJsaWMgaW50NjQgZ2V0X2lkbGV0aW1lICgpOworLQkJcHVibGljIHZvaWQgcmVtb3ZlX3dhdGNo ICh1aW50IGlkKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCBkZXZpY2Vf aWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0 b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5o LG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRh L21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRh LWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQu aCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21l dGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0Lmgs bWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEt cmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRh LXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNv dW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNh dGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEv bWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdv cmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1l cnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwu aCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94 ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJtZXRh X2tleV9iaW5kaW5nX2dldF90eXBlICgpIildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3Mg S2V5QmluZGluZyB7CistCQlwdWJsaWMgdWludCBnZXRfbWFzayAoKTsKKy0JCXB1YmxpYyBNZXRh LlZpcnR1YWxNb2RpZmllciBnZXRfbW9kaWZpZXJzICgpOworLQkJcHVibGljIHVub3duZWQgc3Ry aW5nIGdldF9uYW1lICgpOworLQkJcHVibGljIGJvb2wgaXNfYnVpbHRpbiAoKTsKKy0JCXB1Ymxp YyBib29sIGlzX3JldmVyc2VkICgpOworLQkJW0NDb2RlIChjbmFtZSA9ICJtZXRhX2tleWJpbmRp bmdzX3NldF9jdXN0b21faGFuZGxlciIpXQorLQkJcHVibGljIHN0YXRpYyBib29sIHNldF9jdXN0 b21faGFuZGxlciAoc3RyaW5nIG5hbWUsIG93bmVkIE1ldGEuS2V5SGFuZGxlckZ1bmM/IGhhbmRs ZXIpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxt ZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3Mu aCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFj dG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1l dGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10 eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1 dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3It bWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250 cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5Lmgs bWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEv bWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12 ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAu aCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgs bWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZz LmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1l dGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfbGF1bmNoX2NvbnRleHRfZ2V0X3R5cGUg KCkiKV0KKy0JcHVibGljIGNsYXNzIExhdW5jaENvbnRleHQgOiBHTGliLkFwcExhdW5jaENvbnRl eHQgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJv dGVjdGVkIExhdW5jaENvbnRleHQgKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfdGltZXN0YW1wICh1 aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIHNldF93b3Jrc3BhY2UgKE1ldGEuV29y a3NwYWNlIHdvcmtzcGFjZSk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRh LkRpc3BsYXkgZGlzcGxheSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCXB1YmxpYyB1aW50IHRpbWVzdGFtcCB7IGdldDsgc2V0OyB9CistCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UgeyBvd25l ZCBnZXQ7IHNldDsgfQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21l dGEtbW9uaXRvci1tYW5hZ2VyLmgiLCB0eXBlX2lkID0gIm1ldGFfbW9uaXRvcl9tYW5hZ2VyX2dl dF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBNb25pdG9yTWFuYWdlciA6IEdMaWIuT2JqZWN0 IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3Rl Y3RlZCBNb25pdG9yTWFuYWdlciAoKTsKKy0JCXB1YmxpYyBib29sIGNhbl9zd2l0Y2hfY29uZmln ICgpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEuTW9uaXRvck1hbmFnZXIgQGdldCAo KTsKKy0JCXB1YmxpYyBzdGF0aWMgaW50IGdldF9kaXNwbGF5X2NvbmZpZ3VyYXRpb25fdGltZW91 dCAoKTsKKy0JCXB1YmxpYyBib29sIGdldF9pc19idWlsdGluX2Rpc3BsYXlfb24gKCk7CistCQlw dWJsaWMgaW50IGdldF9tb25pdG9yX2Zvcl9jb25uZWN0b3IgKHN0cmluZyBjb25uZWN0b3IpOwor LQkJcHVibGljIE1ldGEuTW9uaXRvclN3aXRjaENvbmZpZ1R5cGUgZ2V0X3N3aXRjaF9jb25maWcg KCk7CistCQlwdWJsaWMgdm9pZCBzd2l0Y2hfY29uZmlnIChNZXRhLk1vbml0b3JTd2l0Y2hDb25m aWdUeXBlIGNvbmZpZ190eXBlKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1l dGEuQmFja2VuZCBiYWNrZW5kIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBz aWduYWwgdm9pZCBjb25maXJtX2Rpc3BsYXlfY2hhbmdlICgpOworLQkJcHVibGljIHNpZ25hbCB2 b2lkIG1vbml0b3JzX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgbW9uaXRvcnNf Y2hhbmdlZF9pbnRlcm5hbCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBwb3dlcl9zYXZlX21v ZGVfY2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t ZXRhLXBsdWdpbi5oIiwgdHlwZV9pZCA9ICJtZXRhX3BsdWdpbl9nZXRfdHlwZSAoKSIpXQorLQlw dWJsaWMgYWJzdHJhY3QgY2xhc3MgUGx1Z2luIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFBsdWdpbiAoKTsK Ky0JCXB1YmxpYyBib29sIGJlZ2luX21vZGFsIChNZXRhLk1vZGFsT3B0aW9ucyBvcHRpb25zLCB1 aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB2b2lkIGNvbXBsZXRlX2Rpc3BsYXlfY2hhbmdl IChib29sIG9rKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGNvbmZp cm1fZGlzcGxheV9jaGFuZ2UgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwg dm9pZCBkZXN0cm95IChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lkIGRl c3Ryb3lfY29tcGxldGVkIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2b2lk IGVuZF9tb2RhbCAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLkRp c3BsYXkgZ2V0X2Rpc3BsYXkgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLlBsdWdpbkluZm8/ IGdldF9pbmZvICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgaGlk ZV90aWxlX3ByZXZpZXcgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgYm9v bCBrZXliaW5kaW5nX2ZpbHRlciAoTWV0YS5LZXlCaW5kaW5nIGJpbmRpbmcpOworLQkJW05vV3Jh cHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQga2lsbF9zd2l0Y2hfd29ya3NwYWNlICgpOwor LQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQga2lsbF93aW5kb3dfZWZmZWN0 cyAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlwdWJsaWMgc3RhdGljIHZvaWQgbWFuYWdl cl9zZXRfcGx1Z2luX3R5cGUgKEdMaWIuVHlwZSBndHlwZSk7CistCQlbTm9XcmFwcGVyXQorLQkJ cHVibGljIHZpcnR1YWwgdm9pZCBtYXAgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJcHVi bGljIHZvaWQgbWFwX2NvbXBsZXRlZCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlbTm9X cmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBtaW5pbWl6ZSAoTWV0YS5XaW5kb3dBY3Rv ciBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCBtaW5pbWl6ZV9jb21wbGV0ZWQgKE1ldGEuV2luZG93 QWN0b3IgYWN0b3IpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQg TWV0YS5QbHVnaW5JbmZvPyBwbHVnaW5faW5mbyAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJs aWMgdmlydHVhbCB2b2lkIHNob3dfdGlsZV9wcmV2aWV3IChNZXRhLldpbmRvdyB3aW5kb3csIE1l dGEuUmVjdGFuZ2xlIHRpbGVfcmVjdCwgaW50IHRpbGVfbW9uaXRvcl9udW1iZXIpOworLQkJW05v V3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2hvd193aW5kb3dfbWVudSAoTWV0YS5X aW5kb3cgd2luZG93LCBNZXRhLldpbmRvd01lbnVUeXBlIG1lbnUsIGludCB4LCBpbnQgeSk7Cist CQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzaG93X3dpbmRvd19tZW51X2Zv cl9yZWN0IChNZXRhLldpbmRvdyB3aW5kb3csIE1ldGEuV2luZG93TWVudVR5cGUgbWVudSwgTWV0 YS5SZWN0YW5nbGUgcmVjdCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9p ZCBzaXplX2NoYW5nZSAoTWV0YS5XaW5kb3dBY3RvciBhY3RvciwgTWV0YS5TaXplQ2hhbmdlIHdo aWNoX2NoYW5nZSwgTWV0YS5SZWN0YW5nbGUgb2xkX2ZyYW1lX3JlY3QsIE1ldGEuUmVjdGFuZ2xl IG9sZF9idWZmZXJfcmVjdCk7CistCQlwdWJsaWMgdm9pZCBzaXplX2NoYW5nZV9jb21wbGV0ZWQg KE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0 dWFsIHZvaWQgc2l6ZV9jaGFuZ2VkIChNZXRhLldpbmRvd0FjdG9yIGFjdG9yKTsKKy0JCVtOb1dy YXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHN0YXJ0ICgpOworLQkJW05vV3JhcHBlcl0K Ky0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc3dpdGNoX3dvcmtzcGFjZSAoaW50IGZyb20sIGludCB0 bywgTWV0YS5Nb3Rpb25EaXJlY3Rpb24gZGlyZWN0aW9uKTsKKy0JCXB1YmxpYyB2b2lkIHN3aXRj aF93b3Jrc3BhY2VfY29tcGxldGVkICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0 dWFsIHZvaWQgdW5taW5pbWl6ZSAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlwdWJsaWMg dm9pZCB1bm1pbmltaXplX2NvbXBsZXRlZCAoTWV0YS5XaW5kb3dBY3RvciBhY3Rvcik7CistCQlb Tm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgYm9vbCB4ZXZlbnRfZmlsdGVyIChYLkV2ZW50 IGV2ZW50KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVy LmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21w b3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRp bmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cu aCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVu dW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hv cnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25p dG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3Mt Y29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9y eS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxt ZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21l dGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdy b3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdl ci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9w cmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cu aCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3JlbW90ZV9hY2Nlc3NfY29udHJv bGxlcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgUmVtb3RlQWNjZXNzQ29udHJvbGxl ciA6IEdMaWIuT2JqZWN0IHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlKV0KKy0JCXByb3RlY3RlZCBSZW1vdGVBY2Nlc3NDb250cm9sbGVyICgpOworLQkJcHVibGlj IHNpZ25hbCB2b2lkIG5ld19oYW5kbGUgKE1ldGEuUmVtb3RlQWNjZXNzSGFuZGxlIG9iamVjdCk7 CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEv Ym94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1t dXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1l dGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3Iu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9t ZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVz LmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1k aWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5h Z2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xs ZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRh L21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRh LXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNp b24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1l dGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRh L21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxt ZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93 b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV9yZW1vdGVfYWNjZXNzX2hhbmRsZV9nZXRfdHlw ZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgUmVtb3RlQWNjZXNzSGFuZGxlIDogR0xpYi5PYmplY3Qg eworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVj dGVkIFJlbW90ZUFjY2Vzc0hhbmRsZSAoKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc3RvcCAo KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBzdG9wcGVkICgpOworLQl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24u aCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5 LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEt YmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWlt YWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5o LG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1v bml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxh dW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVn aW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRp bmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJl LmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1z dGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRv dy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBl LmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5Lmgs bWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlw ZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBoYXNfdHlw ZV9pZCA9IGZhbHNlKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBTZXR0aW5ncyB7Cist CQlwdWJsaWMgaW50IGdldF9mb250X2RwaSAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3VpX3NjYWxp bmdfZmFjdG9yICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Jh cnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5 YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRp YWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21l dGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJp dC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRh LW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFj Y2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1m YWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXll ci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1l dGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5k b3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1t YW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxt ZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dp bmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCByZWZfZnVuY3Rpb24gPSAibWV0YV9zaGFkb3dfcmVm IiwgdHlwZV9pZCA9ICJtZXRhX3NoYWRvd19nZXRfdHlwZSAoKSIsIHVucmVmX2Z1bmN0aW9uID0g Im1ldGFfc2hhZG93X3VucmVmIildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgU2hhZG93 IHsKKy0JCXB1YmxpYyB2b2lkIGdldF9ib3VuZHMgKGludCB3aW5kb3dfeCwgaW50IHdpbmRvd195 LCBpbnQgd2luZG93X3dpZHRoLCBpbnQgd2luZG93X2hlaWdodCwgQ2Fpcm8uUmVjdGFuZ2xlSW50 IGJvdW5kcyk7CistCQlwdWJsaWMgdm9pZCBwYWludCAoQ29nbC5GcmFtZWJ1ZmZlciBmcmFtZWJ1 ZmZlciwgaW50IHdpbmRvd194LCBpbnQgd2luZG93X3ksIGludCB3aW5kb3dfd2lkdGgsIGludCB3 aW5kb3dfaGVpZ2h0LCB1aW50OCBvcGFjaXR5LCBDYWlyby5SZWdpb24/IGNsaXAsIGJvb2wgY2xp cF9zdHJpY3RseSk7CistCQlwdWJsaWMgTWV0YS5TaGFkb3cgQHJlZiAoKTsKKy0JCXB1YmxpYyB2 b2lkIHVucmVmICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Jh cnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5 YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRp YWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21l dGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJp dC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRh LW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFj Y2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1m YWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXll ci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1l dGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5k b3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1t YW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxt ZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dp bmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfc2hhZG93X2ZhY3Rvcnlf Z2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFNoYWRvd0ZhY3RvcnkgOiBHTGliLk9iamVj dCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwdWJs aWMgU2hhZG93RmFjdG9yeSAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRhLlNoYWRv d0ZhY3RvcnkgZ2V0X2RlZmF1bHQgKCk7CistCQlwdWJsaWMgTWV0YS5TaGFkb3dQYXJhbXMgZ2V0 X3BhcmFtcyAoc3RyaW5nIGNsYXNzX25hbWUsIGJvb2wgZm9jdXNlZCk7CistCQlwdWJsaWMgTWV0 YS5TaGFkb3cgZ2V0X3NoYWRvdyAoTWV0YS5XaW5kb3dTaGFwZSBzaGFwZSwgaW50IHdpZHRoLCBp bnQgaGVpZ2h0LCBzdHJpbmcgY2xhc3NfbmFtZSwgYm9vbCBmb2N1c2VkKTsKKy0JCXB1YmxpYyB2 b2lkIHNldF9wYXJhbXMgKHN0cmluZyBjbGFzc19uYW1lLCBib29sIGZvY3VzZWQsIE1ldGEuU2hh ZG93UGFyYW1zIEBwYXJhbXMpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGNoYW5nZWQgKCk7Cist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94 ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEv bWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRh LWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgs bWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFs b2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIu aCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21l dGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0 YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24u aCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEv bWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21l dGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRh L3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jr c3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV9zaGFwZWRfdGV4dHVyZV9nZXRfdHlwZSAoKSIpXQor LQlwdWJsaWMgY2xhc3MgU2hhcGVkVGV4dHVyZSA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1l bnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3Jp cHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0J CXByb3RlY3RlZCBTaGFwZWRUZXh0dXJlICgpOworLQkJcHVibGljIENhaXJvLlN1cmZhY2UgZ2V0 X2ltYWdlIChDYWlyby5SZWN0YW5nbGVJbnQgY2xpcCk7CistCQlwdWJsaWMgdW5vd25lZCBDb2ds LlRleHR1cmUgZ2V0X3RleHR1cmUgKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfY3JlYXRlX21pcG1h cHMgKGJvb2wgY3JlYXRlX21pcG1hcHMpOworLQkJcHVibGljIHZvaWQgc2V0X21hc2tfdGV4dHVy ZSAoQ29nbC5UZXh0dXJlIG1hc2tfdGV4dHVyZSk7CistCQlwdWJsaWMgdm9pZCBzZXRfb3BhcXVl X3JlZ2lvbiAob3duZWQgQ2Fpcm8uUmVnaW9uIG9wYXF1ZV9yZWdpb24pOworLQkJcHVibGljIGJv b2wgdXBkYXRlX2FyZWEgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0J CXB1YmxpYyBzaWduYWwgdm9pZCBzaXplX2NoYW5nZWQgKCk7CistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5o LG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXku aCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1i YWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1h Z2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgs bWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9u aXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1 bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdp bi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGlu Z3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUu aCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0 YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93 LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUu aCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxt ZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBl cy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQg PSAibWV0YV9zb3VuZF9wbGF5ZXJfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFNvdW5k UGxheWVyIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFNvdW5kUGxheWVyICgpOworLQkJcHVibGljIHZvaWQg cGxheV9mcm9tX2ZpbGUgKEdMaWIuRmlsZSBmaWxlLCBzdHJpbmcgZGVzY3JpcHRpb24sIEdMaWIu Q2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlID0gbnVsbCk7CistCQlwdWJsaWMgdm9pZCBwbGF5X2Zy b21fdGhlbWUgKHN0cmluZyBuYW1lLCBzdHJpbmcgZGVzY3JpcHRpb24sIEdMaWIuQ2FuY2VsbGFi bGU/IGNhbmNlbGxhYmxlID0gbnVsbCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9z aXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3Vw LmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21l dGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRu ZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEv bWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQu aCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0 YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21l dGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEt c291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZp Y2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0 YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEt d29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDEx LWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRp bC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV9zdGFn ZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgU3RhZ2UgOiBDbHV0dGVyLlN0YWdlLCBB dGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENs dXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSldCistCQlwcm90ZWN0ZWQgU3RhZ2UgKCk7CistCQlwdWJsaWMgc3RhdGljIGJvb2wgaXNf Zm9jdXNlZCAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGFj dG9yc19wYWludGVkICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEv a2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEt YmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3Nl LWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRh L21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5o aWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9t ZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3Rl LWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRv dy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBs YXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5o LG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13 aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFj ZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMu aCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRh L3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfc3RhcnR1cF9ub3Rp ZmljYXRpb25fZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFN0YXJ0dXBOb3RpZmljYXRp b24gOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSldCistCQlwcm90ZWN0ZWQgU3RhcnR1cE5vdGlmaWNhdGlvbiAoKTsKKy0JCXB1YmxpYyBN ZXRhLkxhdW5jaENvbnRleHQgY3JlYXRlX2xhdW5jaGVyICgpOworLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlwdWJsaWMgTWV0YS5EaXNwbGF5IGRpc3BsYXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVj dDsgfQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGNoYW5nZWQgKHZvaWQqIG9iamVjdCk7CistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMu aCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIu aCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFp bi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1 cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0 YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cu aCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgs bWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxt ZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEt c2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdl LmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxt ZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0 YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEt eDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3Ro ZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3Bh Y2UuaCIsIHR5cGVfaWQgPSAibWV0YV9zdGFydHVwX3NlcXVlbmNlX2dldF90eXBlICgpIildCist CXB1YmxpYyBjbGFzcyBTdGFydHVwU2VxdWVuY2UgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgU3RhcnR1cFNl cXVlbmNlICgpOworLQkJcHVibGljIHZvaWQgY29tcGxldGUgKCk7CistCQlwdWJsaWMgdW5vd25l ZCBzdHJpbmcgZ2V0X2FwcGxpY2F0aW9uX2lkICgpOworLQkJcHVibGljIGJvb2wgZ2V0X2NvbXBs ZXRlZCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfaWNvbl9uYW1lICgpOworLQkJ cHVibGljIHVub3duZWQgc3RyaW5nIGdldF9pZCAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmlu ZyBnZXRfbmFtZSAoKTsKKy0JCXB1YmxpYyB1aW50NjQgZ2V0X3RpbWVzdGFtcCAoKTsKKy0JCXB1 YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfd21jbGFzcyAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3dv cmtzcGFjZSAoKTsKKy0JCXB1YmxpYyBzdHJpbmcgYXBwbGljYXRpb25faWQgeyBnZXQ7IGNvbnN0 cnVjdDsgfQorLQkJcHVibGljIHN0cmluZyBpY29uX25hbWUgeyBnZXQ7IGNvbnN0cnVjdDsgfQor LQkJcHVibGljIHN0cmluZyBpZCB7IGdldDsgY29uc3RydWN0OyB9CistCQlwdWJsaWMgc3RyaW5n IG5hbWUgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIHVpbnQ2NCB0aW1lc3RhbXAgeyBn ZXQ7IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIHN0cmluZyB3bWNsYXNzIHsgZ2V0OyBjb25zdHJ1 Y3Q7IH0KKy0JCXB1YmxpYyBpbnQgd29ya3NwYWNlIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5o LG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5o LG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWlu LmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vy c29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRh L21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5o LG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxt ZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1l dGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1z aGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2Uu aCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1l dGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRh LXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14 MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhl bWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFj ZS5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3Mg VGhlbWUgeworLQkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0 YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1l dGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tl bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdy b3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5o LG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRh L21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9y LmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gt Y29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgs bWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5o LG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1l dGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1 cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0 b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1l dGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEv bWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgs bWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJt ZXRhX3dpbmRvd19nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgV2luZG93 IDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorLQkJcHJvdGVjdGVkIFdpbmRvdyAoKTsKKy0JCXB1YmxpYyB2b2lkIGFjdGl2YXRlICh1 aW50MzIgY3VycmVudF90aW1lKTsKKy0JCXB1YmxpYyB2b2lkIGFjdGl2YXRlX3dpdGhfd29ya3Nw YWNlICh1aW50MzIgY3VycmVudF90aW1lLCBNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UpOworLQkJ cHVibGljIGJvb2wgYWxsb3dzX21vdmUgKCk7CistCQlwdWJsaWMgYm9vbCBhbGxvd3NfcmVzaXpl ICgpOworLQkJcHVibGljIHZvaWQgYmVnaW5fZ3JhYl9vcCAoTWV0YS5HcmFiT3Agb3AsIGJvb2wg ZnJhbWVfYWN0aW9uLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyBib29sIGNhbl9jbG9z ZSAoKTsKKy0JCXB1YmxpYyBib29sIGNhbl9tYXhpbWl6ZSAoKTsKKy0JCXB1YmxpYyBib29sIGNh bl9taW5pbWl6ZSAoKTsKKy0JCXB1YmxpYyBib29sIGNhbl9zaGFkZSAoKTsKKy0JCXB1YmxpYyB2 b2lkIGNoYW5nZV93b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSk7CistCQlwdWJs aWMgdm9pZCBjaGFuZ2Vfd29ya3NwYWNlX2J5X2luZGV4IChpbnQgc3BhY2VfaW5kZXgsIGJvb2wg YXBwZW5kKTsKKy0JCXB1YmxpYyB2b2lkIGNoZWNrX2FsaXZlICh1aW50MzIgdGltZXN0YW1wKTsK Ky0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSBjbGllbnRfcmVjdF90b19mcmFtZV9yZWN0IChNZXRh LlJlY3RhbmdsZSBjbGllbnRfcmVjdCk7CistCQlwdWJsaWMgdm9pZCBjb21wdXRlX2dyb3VwICgp OworLQkJcHVibGljIHZvaWQgQGRlbGV0ZSAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMg dW5vd25lZCBNZXRhLldpbmRvdyBmaW5kX3Jvb3RfYW5jZXN0b3IgKCk7CistCQlwdWJsaWMgdm9p ZCBmb2N1cyAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJsaWMgdm9pZCBmb3JlYWNoX2FuY2Vz dG9yIChNZXRhLldpbmRvd0ZvcmVhY2hGdW5jIGZ1bmMpOworLQkJcHVibGljIHZvaWQgZm9yZWFj aF90cmFuc2llbnQgKE1ldGEuV2luZG93Rm9yZWFjaEZ1bmMgZnVuYyk7CistCQlwdWJsaWMgTWV0 YS5SZWN0YW5nbGUgZnJhbWVfcmVjdF90b19jbGllbnRfcmVjdCAoTWV0YS5SZWN0YW5nbGUgZnJh bWVfcmVjdCk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X2J1ZmZlcl9yZWN0ICgpOwor LQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9jbGllbnRfbWFjaGluZSAoKTsKKy0JCXB1Ymxp YyBNZXRhLldpbmRvd0NsaWVudFR5cGUgZ2V0X2NsaWVudF90eXBlICgpOworLQkJcHVibGljIHVu b3duZWQgR0xpYi5PYmplY3QgZ2V0X2NvbXBvc2l0b3JfcHJpdmF0ZSAoKTsKKy0JCXB1YmxpYyB1 bm93bmVkIHN0cmluZyBnZXRfZGVzY3JpcHRpb24gKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRh LkRpc3BsYXkgZ2V0X2Rpc3BsYXkgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDYWlyby5SZWdpb24/ IGdldF9mcmFtZV9ib3VuZHMgKCk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X2ZyYW1l X3JlY3QgKCk7CistCQlwdWJsaWMgTWV0YS5GcmFtZVR5cGUgZ2V0X2ZyYW1lX3R5cGUgKCk7Cist CQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a19hcHBfbWVudV9vYmplY3RfcGF0aCAoKTsK Ky0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX2FwcGxpY2F0aW9uX2lkICgpOworLQkJ cHVibGljIHVub3duZWQgc3RyaW5nIGdldF9ndGtfYXBwbGljYXRpb25fb2JqZWN0X3BhdGggKCk7 CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2d0a19tZW51YmFyX29iamVjdF9wYXRoICgp OworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9ndGtfdGhlbWVfdmFyaWFudCAoKTsKKy0J CXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX3VuaXF1ZV9idXNfbmFtZSAoKTsKKy0JCXB1 YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfZ3RrX3dpbmRvd19vYmplY3RfcGF0aCAoKTsKKy0JCXB1 YmxpYyBib29sIGdldF9pY29uX2dlb21ldHJ5IChvdXQgTWV0YS5SZWN0YW5nbGUgcmVjdCk7Cist CQlwdWJsaWMgdWludDY0IGdldF9pZCAoKTsKKy0JCXB1YmxpYyBNZXRhLlN0YWNrTGF5ZXIgZ2V0 X2xheWVyICgpOworLQkJcHVibGljIE1ldGEuTWF4aW1pemVGbGFncyBnZXRfbWF4aW1pemVkICgp OworLQkJcHVibGljIGludCBnZXRfbW9uaXRvciAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmlu ZyBnZXRfbXV0dGVyX2hpbnRzICgpOworLQkJcHVibGljIGludCBnZXRfcGlkICgpOworLQkJcHVi bGljIHVub3duZWQgc3RyaW5nIGdldF9yb2xlICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5n IGdldF9zYW5kYm94ZWRfYXBwX2lkICgpOworLQkJcHVibGljIHVpbnQgZ2V0X3N0YWJsZV9zZXF1 ZW5jZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfc3RhcnR1cF9pZCAoKTsKKy0J CXB1YmxpYyB1bm93bmVkIE1ldGEuV2luZG93PyBnZXRfdGlsZV9tYXRjaCAoKTsKKy0JCXB1Ymxp YyB1bm93bmVkIHN0cmluZyBnZXRfdGl0bGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldp bmRvdyBnZXRfdHJhbnNpZW50X2ZvciAoKTsKKy0JCXB1YmxpYyB1aW50MzIgZ2V0X3VzZXJfdGlt ZSAoKTsKKy0JCXB1YmxpYyBNZXRhLldpbmRvd1R5cGUgZ2V0X3dpbmRvd190eXBlICgpOworLQkJ cHVibGljIHVub3duZWQgc3RyaW5nIGdldF93bV9jbGFzcyAoKTsKKy0JCXB1YmxpYyB1bm93bmVk IHN0cmluZyBnZXRfd21fY2xhc3NfaW5zdGFuY2UgKCk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5n bGUgZ2V0X3dvcmtfYXJlYV9hbGxfbW9uaXRvcnMgKCk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5n bGUgZ2V0X3dvcmtfYXJlYV9jdXJyZW50X21vbml0b3IgKCk7CistCQlwdWJsaWMgTWV0YS5SZWN0 YW5nbGUgZ2V0X3dvcmtfYXJlYV9mb3JfbW9uaXRvciAoaW50IHdoaWNoX21vbml0b3IpOworLQkJ cHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2UgZ2V0X3dvcmtzcGFjZSAoKTsKKy0JCXB1Ymxp YyBYLldpbmRvdyBnZXRfeHdpbmRvdyAoKTsKKy0JCXB1YmxpYyB2b2lkIGdyb3VwX2xlYWRlcl9j aGFuZ2VkICgpOworLQkJcHVibGljIGJvb2wgaGFzX2ZvY3VzICgpOworLQkJcHVibGljIGJvb2wg aXNfYWJvdmUgKCk7CistCQlwdWJsaWMgYm9vbCBpc19hbHdheXNfb25fYWxsX3dvcmtzcGFjZXMg KCk7CistCQlwdWJsaWMgYm9vbCBpc19hbmNlc3Rvcl9vZl90cmFuc2llbnQgKE1ldGEuV2luZG93 IHRyYW5zaWVudCk7CistCQlwdWJsaWMgYm9vbCBpc19hdHRhY2hlZF9kaWFsb2cgKCk7CistCQlw dWJsaWMgYm9vbCBpc19jbGllbnRfZGVjb3JhdGVkICgpOworLQkJcHVibGljIGJvb2wgaXNfZnVs bHNjcmVlbiAoKTsKKy0JCXB1YmxpYyBib29sIGlzX2hpZGRlbiAoKTsKKy0JCXB1YmxpYyBib29s IGlzX21vbml0b3Jfc2l6ZWQgKCk7CistCQlwdWJsaWMgYm9vbCBpc19vbl9hbGxfd29ya3NwYWNl cyAoKTsKKy0JCXB1YmxpYyBib29sIGlzX29uX3ByaW1hcnlfbW9uaXRvciAoKTsKKy0JCXB1Ymxp YyBib29sIGlzX292ZXJyaWRlX3JlZGlyZWN0ICgpOworLQkJcHVibGljIGJvb2wgaXNfcmVtb3Rl ICgpOworLQkJcHVibGljIGJvb2wgaXNfc2NyZWVuX3NpemVkICgpOworLQkJcHVibGljIGJvb2wg aXNfc2hhZGVkICgpOworLQkJcHVibGljIGJvb2wgaXNfc2tpcF90YXNrYmFyICgpOworLQkJcHVi bGljIHZvaWQga2lsbCAoKTsKKy0JCXB1YmxpYyBib29sIGxvY2F0ZWRfb25fd29ya3NwYWNlIChN ZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UpOworLQkJcHVibGljIHZvaWQgbG93ZXIgKCk7CistCQlw dWJsaWMgdm9pZCBtYWtlX2Fib3ZlICgpOworLQkJcHVibGljIHZvaWQgbWFrZV9mdWxsc2NyZWVu ICgpOworLQkJcHVibGljIHZvaWQgbWF4aW1pemUgKE1ldGEuTWF4aW1pemVGbGFncyBkaXJlY3Rp b25zKTsKKy0JCXB1YmxpYyB2b2lkIG1pbmltaXplICgpOworLQkJcHVibGljIHZvaWQgbW92ZV9m cmFtZSAoYm9vbCB1c2VyX29wLCBpbnQgcm9vdF94X253LCBpbnQgcm9vdF95X253KTsKKy0JCXB1 YmxpYyB2b2lkIG1vdmVfcmVzaXplX2ZyYW1lIChib29sIHVzZXJfb3AsIGludCByb290X3hfbncs IGludCByb290X3lfbncsIGludCB3LCBpbnQgaCk7CistCQlwdWJsaWMgdm9pZCBtb3ZlX3RvX21v bml0b3IgKGludCBtb25pdG9yKTsKKy0JCXB1YmxpYyB2b2lkIHJhaXNlICgpOworLQkJcHVibGlj IGJvb2wgcmVxdWVzdGVkX2J5cGFzc19jb21wb3NpdG9yICgpOworLQkJcHVibGljIGJvb2wgcmVx dWVzdGVkX2RvbnRfYnlwYXNzX2NvbXBvc2l0b3IgKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfY29t cG9zaXRvcl9wcml2YXRlIChHTGliLk9iamVjdCBwcml2KTsKKy0JCXB1YmxpYyB2b2lkIHNldF9k ZW1hbmRzX2F0dGVudGlvbiAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9pY29uX2dlb21ldHJ5IChN ZXRhLlJlY3RhbmdsZT8gcmVjdCk7CistCQlwdWJsaWMgdm9pZCBzaGFkZSAodWludDMyIHRpbWVz dGFtcCk7CistCQlwdWJsaWMgdm9pZCBzaG92ZV90aXRsZWJhcl9vbnNjcmVlbiAoKTsKKy0JCXB1 YmxpYyBib29sIHNob3dpbmdfb25faXRzX3dvcmtzcGFjZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHNo dXRkb3duX2dyb3VwICgpOworLQkJcHVibGljIHZvaWQgc3RpY2sgKCk7CistCQlwdWJsaWMgYm9v bCB0aXRsZWJhcl9pc19vbnNjcmVlbiAoKTsKKy0JCXB1YmxpYyB2b2lkIHVubWFrZV9hYm92ZSAo KTsKKy0JCXB1YmxpYyB2b2lkIHVubWFrZV9mdWxsc2NyZWVuICgpOworLQkJcHVibGljIHZvaWQg dW5tYXhpbWl6ZSAoTWV0YS5NYXhpbWl6ZUZsYWdzIGRpcmVjdGlvbnMpOworLQkJcHVibGljIHZv aWQgdW5taW5pbWl6ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHVuc2V0X2RlbWFuZHNfYXR0ZW50aW9u ICgpOworLQkJcHVibGljIHZvaWQgdW5zaGFkZSAodWludDMyIHRpbWVzdGFtcCk7CistCQlwdWJs aWMgdm9pZCB1bnN0aWNrICgpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9v bCBhYm92ZSB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBh cHBlYXJzX2ZvY3VzZWQgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGlj IGJvb2wgZGVjb3JhdGVkIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1Ymxp YyBib29sIGRlbWFuZHNfYXR0ZW50aW9uIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0K Ky0JCXB1YmxpYyBib29sIGZ1bGxzY3JlZW4geyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3Rr X2FwcF9tZW51X29iamVjdF9wYXRoIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIGd0a19hcHBs aWNhdGlvbl9pZCB7IGdldDsgfQorLQkJcHVibGljIHN0cmluZyBndGtfYXBwbGljYXRpb25fb2Jq ZWN0X3BhdGggeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3RrX21lbnViYXJfb2JqZWN0X3Bh dGggeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgZ3RrX3VuaXF1ZV9idXNfbmFtZSB7IGdldDsg fQorLQkJcHVibGljIHN0cmluZyBndGtfd2luZG93X29iamVjdF9wYXRoIHsgZ2V0OyB9CistCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB2b2lkKiBpY29uIHsgZ2V0OyB9CistCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIG1heGltaXplZF9ob3Jpem9udGFsbHkgeyBn ZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgbWF4aW1pemVkX3Zl cnRpY2FsbHkgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHZvaWQq IG1pbmlfaWNvbiB7IGdldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9v bCBtaW5pbWl6ZWQgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzdHJpbmcgbXV0dGVyX2hpbnRzIHsgZ2V0 OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIG9uX2FsbF93b3Jrc3Bh Y2VzIHsgZ2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIHJlc2l6 ZWFibGUgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wgc2tp cF90YXNrYmFyIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIHRpdGxlIHsgZ2V0OyB9CistCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIHVyZ2VudCB7IGdldDsgfQorLQkJcHVi bGljIHVpbnQgdXNlcl90aW1lIHsgZ2V0OyB9CistCQlwdWJsaWMgTWV0YS5XaW5kb3dUeXBlIHdp bmRvd190eXBlIHsgZ2V0OyB9CistCQlwdWJsaWMgc3RyaW5nIHdtX2NsYXNzIHsgZ2V0OyB9Cist CQlwdWJsaWMgc2lnbmFsIHZvaWQgcG9zaXRpb25fY2hhbmdlZCAoKTsKKy0JCXB1YmxpYyBzaWdu YWwgdm9pZCByYWlzZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2hvd24gKCk7CistCQlw dWJsaWMgc2lnbmFsIHZvaWQgc2l6ZV9jaGFuZ2VkICgpOworLQkJcHVibGljIHNpZ25hbCB2b2lk IHVubWFuYWdlZCAoKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3BhY2VfY2hhbmdlZCAo KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0 YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9y LW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgs bWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rv ci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRh L21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlw ZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRz LWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1h bmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJv bGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1l dGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21l dGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVy c2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgs bWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1l dGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5o LG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRh L3dvcmtzcGFjZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19hY3Rvcl9nZXRfdHlwZSAoKSIp XQorLQlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgV2luZG93QWN0b3IgOiBDbHV0dGVyLkFjdG9yLCBB dGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENs dXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSldCistCQlwcm90ZWN0ZWQgV2luZG93QWN0b3IgKCk7CistCQlwdWJsaWMgdW5vd25lZCBN ZXRhLldpbmRvdyBnZXRfbWV0YV93aW5kb3cgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVy LkFjdG9yIGdldF90ZXh0dXJlICgpOworLQkJcHVibGljIFguV2luZG93IGdldF94X3dpbmRvdyAo KTsKKy0JCXB1YmxpYyBib29sIGlzX2Rlc3Ryb3llZCAoKTsKKy0JCXB1YmxpYyB2b2lkIHN5bmNf dmlzaWJpbGl0eSAoKTsKKy0JCXB1YmxpYyBNZXRhLldpbmRvdyBtZXRhX3dpbmRvdyB7IGdldDsg Y29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBzdHJpbmcgc2hh ZG93X2NsYXNzIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJ cHVibGljIE1ldGEuU2hhZG93TW9kZSBzaGFkb3dfbW9kZSB7IGdldDsgc2V0OyB9CistCQlwdWJs aWMgc2lnbmFsIHZvaWQgZWZmZWN0c19jb21wbGV0ZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZv aWQgZmlyc3RfZnJhbWUgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5o LG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0 YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xv c2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1l dGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1p bmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRh L21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1v dGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hh ZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQt cGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9u LmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRh LXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3Nw YWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9y cy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1l dGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfZ3Jv dXBfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFdpbmRvd0dyb3VwIDogQ2x1dHRlci5B Y3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFp bmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFdpbmRvd0dyb3VwICgpOworLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9j b21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9k aXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRh L21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJh Y2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1p ZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9t ZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0 YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRh LXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10 ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEv bWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRh LXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93 LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNw bGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1l dGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBy ZWZfZnVuY3Rpb24gPSAibWV0YV93aW5kb3dfc2hhcGVfcmVmIiwgdHlwZV9pZCA9ICJtZXRhX3dp bmRvd19zaGFwZV9nZXRfdHlwZSAoKSIsIHVucmVmX2Z1bmN0aW9uID0gIm1ldGFfd2luZG93X3No YXBlX3VucmVmIildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xhc3MgV2luZG93U2hhcGUgewor LQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHVibGljIFdp bmRvd1NoYXBlIChDYWlyby5SZWdpb24gcmVnaW9uKTsKKy0JCXB1YmxpYyBib29sIGVxdWFsIChN ZXRhLldpbmRvd1NoYXBlIHNoYXBlX2IpOworLQkJcHVibGljIHZvaWQgZ2V0X2JvcmRlcnMgKGlu dCBib3JkZXJfdG9wLCBpbnQgYm9yZGVyX3JpZ2h0LCBpbnQgYm9yZGVyX2JvdHRvbSwgaW50IGJv cmRlcl9sZWZ0KTsKKy0JCXB1YmxpYyB1aW50IGhhc2ggKCk7CistCQlwdWJsaWMgTWV0YS5XaW5k b3dTaGFwZSBAcmVmICgpOworLQkJcHVibGljIENhaXJvLlJlZ2lvbiB0b19yZWdpb24gKGludCBj ZW50ZXJfd2lkdGgsIGludCBjZW50ZXJfaGVpZ2h0KTsKKy0JCXB1YmxpYyB2b2lkIHVucmVmICgp OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRh L2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxt ZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9y LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEv bWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBl cy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMt ZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFu YWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9s bGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0 YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0 YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJz aW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxt ZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgs bWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEv d29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1ldGFfd29ya3NwYWNlX2dldF90eXBlICgpIildCist CXB1YmxpYyBjbGFzcyBXb3Jrc3BhY2UgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgV29ya3NwYWNlICgpOwor LQkJcHVibGljIHZvaWQgYWN0aXZhdGUgKHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGljIHZv aWQgYWN0aXZhdGVfd2l0aF9mb2N1cyAoTWV0YS5XaW5kb3cgZm9jdXNfdGhpcywgdWludDMyIHRp bWVzdGFtcCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLkRpc3BsYXkgZ2V0X2Rpc3BsYXkgKCk7 CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZSBnZXRfbmVpZ2hib3IgKE1ldGEuTW90 aW9uRGlyZWN0aW9uIGRpcmVjdGlvbik7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dv cmtfYXJlYV9hbGxfbW9uaXRvcnMgKCk7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgZ2V0X3dv cmtfYXJlYV9mb3JfbW9uaXRvciAoaW50IHdoaWNoX21vbml0b3IpOworLQkJcHVibGljIGludCBp bmRleCAoKTsKKy0JCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBNZXRhLldpbmRvdz4gbGlzdF93aW5k b3dzICgpOworLQkJcHVibGljIHZvaWQgc2V0X2J1aWx0aW5fc3RydXRzIChHTGliLlNMaXN0PE1l dGEuU3RydXQ/PiBzdHJ1dHMpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdWlu dCBuX3dpbmRvd3MgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVp bnQgd29ya3NwYWNlX2luZGV4IHsgZ2V0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd2luZG93 X2FkZGVkIChNZXRhLldpbmRvdyBvYmplY3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRv d19yZW1vdmVkIChNZXRhLldpbmRvdyBvYmplY3QpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRh L2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0 YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3Jv dXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgs bWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEv bWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3Iu aCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1j b250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxt ZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgs bWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0 YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVw LW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rv ci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0 YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9t ZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxt ZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCB0eXBlX2lkID0gIm1l dGFfd29ya3NwYWNlX21hbmFnZXJfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGNsYXNzIFdvcmtz cGFjZU1hbmFnZXIgOiBHTGliLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVu Y3Rpb24gPSBmYWxzZSldCistCQlwcm90ZWN0ZWQgV29ya3NwYWNlTWFuYWdlciAoKTsKKy0JCXB1 YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlIGFwcGVuZF9uZXdfd29ya3NwYWNlIChib29sIGFj dGl2YXRlLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3Nw YWNlIGdldF9hY3RpdmVfd29ya3NwYWNlICgpOworLQkJcHVibGljIGludCBnZXRfYWN0aXZlX3dv cmtzcGFjZV9pbmRleCAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X25fd29ya3NwYWNlcyAoKTsKKy0J CXB1YmxpYyB1bm93bmVkIE1ldGEuV29ya3NwYWNlIGdldF93b3Jrc3BhY2VfYnlfaW5kZXggKGlu dCBpbmRleCk7CistCQlwdWJsaWMgdm9pZCBvdmVycmlkZV93b3Jrc3BhY2VfbGF5b3V0IChNZXRh LkRpc3BsYXlDb3JuZXIgc3RhcnRpbmdfY29ybmVyLCBib29sIHZlcnRpY2FsX2xheW91dCwgaW50 IG5fcm93cywgaW50IG5fY29sdW1ucyk7CistCQlwdWJsaWMgdm9pZCByZW1vdmVfd29ya3NwYWNl IChNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UsIHVpbnQzMiB0aW1lc3RhbXApOworLQkJcHVibGlj IGludCBuX3dvcmtzcGFjZXMgeyBnZXQ7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBhY3RpdmVf d29ya3NwYWNlX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2hvd2luZ19kZXNr dG9wX2NoYW5nZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlX2FkZGVkIChp bnQgb2JqZWN0KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3BhY2VfcmVtb3ZlZCAoaW50 IG9iamVjdCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlX3N3aXRjaGVkIChpbnQg b2JqZWN0LCBpbnQgcDAsIE1ldGEuTW90aW9uRGlyZWN0aW9uIHAxKTsKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29t bW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlz cGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9t ZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNr ZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRs ZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0 YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEt cGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1z ZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4 dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21l dGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13 aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1z aGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxh eS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRh L3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlw ZV9pZCA9ICJtZXRhX3gxMV9kaXNwbGF5X2dldF90eXBlICgpIildCistCXB1YmxpYyBjbGFzcyBY MTFEaXNwbGF5IDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIFgxMURpc3BsYXkgKCk7CistCQlwdWJsaWMgdm9p ZCBmb2N1c190aGVfbm9fZm9jdXNfd2luZG93ICh1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1Ymxp YyBpbnQgZ2V0X2RhbWFnZV9ldmVudF9iYXNlICgpOworLQkJcHVibGljIGludCBnZXRfc2NyZWVu X251bWJlciAoKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3NoYXBlX2V2ZW50X2Jhc2UgKCk7CistCQlw dWJsaWMgYm9vbCBoYXNfc2hhcGUgKCk7CistCQlwdWJsaWMgdm9pZCBzZXRfY21fc2VsZWN0aW9u ICgpOworLQkJcHVibGljIHZvaWQgc2V0X2lucHV0X2ZvY3VzX3dpbmRvdyAoTWV0YS5XaW5kb3cg d2luZG93LCBib29sIGZvY3VzX2ZyYW1lLCB1aW50MzIgdGltZXN0YW1wKTsKKy0JCXB1YmxpYyBi b29sIHh3aW5kb3dfaXNfYV9ub19mb2N1c193aW5kb3cgKFguV2luZG93IHh3aW5kb3cpOworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVz LmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVy LmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21h aW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1j dXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1l dGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9n LmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5o LG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgs bWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRh LXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFn ZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgs bWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21l dGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRh LXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90 aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3Nw YWNlLmgiLCB0eXBlX2NuYW1lID0gIk1ldGFDbG9zZURpYWxvZ0ludGVyZmFjZSIsIHR5cGVfaWQg PSAibWV0YV9jbG9zZV9kaWFsb2dfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGludGVyZmFjZSBD bG9zZURpYWxvZyA6IEdMaWIuT2JqZWN0IHsKKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGZvY3Vz ICgpOworLQkJcHVibGljIGFic3RyYWN0IHZvaWQgaGlkZSAoKTsKKy0JCXB1YmxpYyBib29sIGlz X3Zpc2libGUgKCk7CistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzaG93ICgpOworLQkJW05vQWNj ZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYWJzdHJhY3QgTWV0YS5XaW5kb3cgd2luZG93IHsgb3du ZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtIYXNFbWl0dGVyXQorLQkJcHVibGljIHNpZ25hbCB2 b2lkIHJlc3BvbnNlIChNZXRhLkNsb3NlRGlhbG9nUmVzcG9uc2UgcmVzcG9uc2UpOworLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgs bWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgs bWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4u aCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJz b3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEv bWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgs bWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1l dGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0 YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNo YXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5o LG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0 YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEt d2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgx MS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVt ZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNl LmgiLCB0eXBlX2NuYW1lID0gIk1ldGFJbmhpYml0U2hvcnRjdXRzRGlhbG9nSW50ZXJmYWNlIiwg dHlwZV9pZCA9ICJtZXRhX2luaGliaXRfc2hvcnRjdXRzX2RpYWxvZ19nZXRfdHlwZSAoKSIpXQor LQlwdWJsaWMgaW50ZXJmYWNlIEluaGliaXRTaG9ydGN1dHNEaWFsb2cgOiBHTGliLk9iamVjdCB7 CistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBoaWRlICgpOworLQkJcHVibGljIGFic3RyYWN0IHZv aWQgc2hvdyAoKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGFic3RyYWN0IE1l dGEuV2luZG93IHdpbmRvdyB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CistCQlbSGFzRW1pdHRl cl0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCByZXNwb25zZSAoTWV0YS5JbmhpYml0U2hvcnRjdXRz RGlhbG9nUmVzcG9uc2UgcmVzcG9uc2UpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBv c2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91 cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9t ZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1k bmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRh L21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0 LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21l dGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9t ZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRh LXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlm aWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1l dGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRh LXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgx MS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0 aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNl KV0KKy0JcHVibGljIHN0cnVjdCBCdXR0b25MYXlvdXQgeworLQkJW0NDb2RlIChhcnJheV9sZW5n dGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBNZXRhLkJ1dHRvbkZ1bmN0aW9uIGxlZnRfYnV0 dG9uc1s0XTsKKy0JCVtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXQorLQkJcHVibGljIHdl YWsgYm9vbCBsZWZ0X2J1dHRvbnNfaGFzX3NwYWNlcls0XTsKKy0JCVtDQ29kZSAoYXJyYXlfbGVu Z3RoID0gZmFsc2UpXQorLQkJcHVibGljIHdlYWsgTWV0YS5CdXR0b25GdW5jdGlvbiByaWdodF9i dXR0b25zWzRdOworLQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMg d2VhayBib29sIHJpZ2h0X2J1dHRvbnNfaGFzX3NwYWNlcls0XTsKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9u LmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxh eS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRh LWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1p bWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIu aCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1t b25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1s YXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1 Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0 aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVy ZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEt c3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5k b3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFw ZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5o LG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5 cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgRWRnZSB7CistCQlwdWJsaWMgTWV0YS5S ZWN0YW5nbGUgcmVjdDsKKy0JCXB1YmxpYyBNZXRhLlNpZGUgc2lkZV90eXBlOworLQkJcHVibGlj IE1ldGEuRWRnZVR5cGUgZWRnZV90eXBlOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBv c2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91 cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1l dGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9t ZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1k bmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRh L21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0 LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21l dGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9t ZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRh LXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlm aWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1l dGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRh LXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgx MS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0 aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNl KV0KKy0JcHVibGljIHN0cnVjdCBGcmFtZUJvcmRlcnMgeworLQkJcHVibGljIEd0ay5Cb3JkZXIg dmlzaWJsZTsKKy0JCXB1YmxpYyBHdGsuQm9yZGVyIGludmlzaWJsZTsKKy0JCXB1YmxpYyBHdGsu Qm9yZGVyIHRvdGFsOworLQkJcHVibGljIHZvaWQgY2xlYXIgKCk7CistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1wbHVnaW4uaCIsIGhhc190eXBlX2lkID0gZmFs c2UpXQorLQlwdWJsaWMgc3RydWN0IFBsdWdpbkluZm8geworLQkJcHVibGljIHdlYWsgc3RyaW5n IG5hbWU7CistCQlwdWJsaWMgd2VhayBzdHJpbmcgdmVyc2lvbjsKKy0JCXB1YmxpYyB3ZWFrIHN0 cmluZyBhdXRob3I7CistCQlwdWJsaWMgd2VhayBzdHJpbmcgbGljZW5zZTsKKy0JCXB1YmxpYyB3 ZWFrIHN0cmluZyBkZXNjcmlwdGlvbjsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3Np dG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAu aCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0 YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5k LmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9t ZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5o LG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRh LXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0 YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1z b3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmlj YXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRh L21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13 b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEt ZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGls LmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSld CistCXB1YmxpYyBzdHJ1Y3QgUGx1Z2luVmVyc2lvbiB7CistCQlwdWJsaWMgdWludCB2ZXJzaW9u X21ham9yOworLQkJcHVibGljIHVpbnQgdmVyc2lvbl9taW5vcjsKKy0JCXB1YmxpYyB1aW50IHZl cnNpb25fbWljcm87CistCQlwdWJsaWMgdWludCB2ZXJzaW9uX2FwaTsKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29t bW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlz cGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9t ZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNr ZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRs ZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0 YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEt cGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1z ZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4 dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21l dGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13 aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1z aGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxh eS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRh L3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgdHlw ZV9pZCA9ICJtZXRhX3JlY3RhbmdsZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgc3RydWN0IFJl Y3RhbmdsZSB7CistCQlwdWJsaWMgaW50IHg7CistCQlwdWJsaWMgaW50IHk7CistCQlwdWJsaWMg aW50IHdpZHRoOworLQkJcHVibGljIGludCBoZWlnaHQ7CistCQlwdWJsaWMgaW50IGFyZWEgKCk7 CistCQlwdWJsaWMgYm9vbCBjb250YWluc19yZWN0IChNZXRhLlJlY3RhbmdsZSBpbm5lcl9yZWN0 KTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZT8gY29weSAoKTsKKy0JCXB1YmxpYyBib29sIGNv dWxkX2ZpdF9yZWN0IChNZXRhLlJlY3RhbmdsZSBpbm5lcl9yZWN0KTsKKy0JCXB1YmxpYyBib29s IGVxdWFsIChNZXRhLlJlY3RhbmdsZSBzcmMyKTsKKy0JCXB1YmxpYyB2b2lkIGZyZWUgKCk7Cist CQlwdWJsaWMgYm9vbCBob3Jpel9vdmVybGFwIChNZXRhLlJlY3RhbmdsZSByZWN0Mik7CistCQlw dWJsaWMgYm9vbCBpbnRlcnNlY3QgKE1ldGEuUmVjdGFuZ2xlIHNyYzIsIG91dCBNZXRhLlJlY3Rh bmdsZSBkZXN0KTsKKy0JCXB1YmxpYyBib29sIG92ZXJsYXAgKE1ldGEuUmVjdGFuZ2xlIHJlY3Qy KTsKKy0JCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSB1bmlvbiAoTWV0YS5SZWN0YW5nbGUgcmVjdDIp OworLQkJcHVibGljIGJvb2wgdmVydF9vdmVybGFwIChNZXRhLlJlY3RhbmdsZSByZWN0Mik7Cist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94 ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEv bWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRh LWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgs bWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFs b2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIu aCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21l dGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0 YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24u aCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEv bWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21l dGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRh L3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jr c3BhY2UuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3RydWN0IFNoYWRvd1Bh cmFtcyB7CistCQlwdWJsaWMgaW50IHJhZGl1czsKKy0JCXB1YmxpYyBpbnQgdG9wX2ZhZGU7Cist CQlwdWJsaWMgaW50IHhfb2Zmc2V0OworLQkJcHVibGljIGludCB5X29mZnNldDsKKy0JCXB1Ymxp YyB1aW50OCBvcGFjaXR5OworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEv a2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEt YmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3Nl LWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRh L21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5o aWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9t ZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3Rl LWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRv dy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBs YXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5o LG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13 aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFj ZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMu aCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRh L3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVi bGljIHN0cnVjdCBTdHJ1dCB7CistCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgcmVjdDsKKy0JCXB1 YmxpYyBNZXRhLlNpZGUgc2lkZTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9y LmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxt ZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1j bG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgs bWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRh LWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1l dGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJl bW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1z aGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3Vu ZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRp b24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21l dGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jr c3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJy b3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgs bWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0JBUlJJRVJf RElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9iYXJyaWVyX2RpcmVjdGlvbl9nZXRfdHlwZSAo KSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIEJhcnJpZXJEaXJlY3Rpb24geworLQkJUE9T SVRJVkVfWCwKKy0JCVBPU0lUSVZFX1ksCistCQlORUdBVElWRV9YLAorLQkJTkVHQVRJVkVfWQor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2Jv eGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0 dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRh L21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0 YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5o LG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlh bG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdl ci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVy LmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9t ZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1z dGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9u LmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRh L21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0 YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29y a3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfQlVUVE9OX0ZVTkNUSU9OXyIsIHR5cGVfaWQgPSAi bWV0YV9idXR0b25fZnVuY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gQnV0dG9u RnVuY3Rpb24geworLQkJTUVOVSwKKy0JCU1JTklNSVpFLAorLQkJTUFYSU1JWkUsCistCQlDTE9T RSwKKy0JCUxBU1QKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJy aWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9j b21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJp bmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFs b2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRh LWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQt c2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1t b25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nl c3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFj dG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIu aCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRh L21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93 LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFu YWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0 YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5k b3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0NMT1NFX0RJQUxPR19SRVNQ T05TRV8iLCB0eXBlX2lkID0gIm1ldGFfY2xvc2VfZGlhbG9nX3Jlc3BvbnNlX2dldF90eXBlICgp IildCistCXB1YmxpYyBlbnVtIENsb3NlRGlhbG9nUmVzcG9uc2UgeworLQkJV0FJVCwKKy0JCUZP UkNFX0NMT1NFCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmll ci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29t cG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5k aW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9n LmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1l bnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNo b3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9u aXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNz LWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rv cnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgs bWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9t ZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1n cm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFn ZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEv cHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93 LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9DT01QX0VGRkVDVF8iLCB0eXBl X2lkID0gIm1ldGFfY29tcF9lZmZlY3RfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gQ29t cEVmZmVjdCB7CistCQlDUkVBVEUsCistCQlVTk1JTklNSVpFLAorLQkJREVTVFJPWSwKKy0JCU1J TklNSVpFLAorLQkJTk9ORQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEv a2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEt YmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3Nl LWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRh L21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5o aWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9t ZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3Rl LWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRv dy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBs YXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5o LG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13 aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFj ZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMu aCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRh L3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfQ1VSU09SXyIsIHR5 cGVfaWQgPSAibWV0YV9jdXJzb3JfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gQ3Vyc29y IHsKKy0JCU5PTkUsCistCQlERUZBVUxULAorLQkJTk9SVEhfUkVTSVpFLAorLQkJU09VVEhfUkVT SVpFLAorLQkJV0VTVF9SRVNJWkUsCistCQlFQVNUX1JFU0laRSwKKy0JCVNFX1JFU0laRSwKKy0J CVNXX1JFU0laRSwKKy0JCU5FX1JFU0laRSwKKy0JCU5XX1JFU0laRSwKKy0JCU1PVkVfT1JfUkVT SVpFX1dJTkRPVywKKy0JCUJVU1ksCistCQlETkRfSU5fRFJBRywKKy0JCURORF9NT1ZFLAorLQkJ RE5EX0NPUFksCistCQlETkRfVU5TVVBQT1JURURfVEFSR0VULAorLQkJUE9JTlRJTkdfSEFORCwK Ky0JCUNST1NTSEFJUiwKKy0JCUlCRUFNLAorLQkJTEFTVAorLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxt ZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5Lmgs bWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFj a2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt Z3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdl LmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1l dGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0 b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5j aC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4u aCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdz LmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgs bWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFy dHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1h Y3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgs bWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0 YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMu aCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0g Ik1FVEFfREVCVUdfIiwgdHlwZV9pZCA9ICJtZXRhX2RlYnVnX3RvcGljX2dldF90eXBlICgpIild CistCVtGbGFnc10KKy0JcHVibGljIGVudW0gRGVidWdUb3BpYyB7CistCQlWRVJCT1NFLAorLQkJ Rk9DVVMsCistCQlXT1JLQVJFQSwKKy0JCVNUQUNLLAorLQkJVEhFTUVTLAorLQkJU00sCistCQlF VkVOVFMsCistCQlXSU5ET1dfU1RBVEUsCistCQlXSU5ET1dfT1BTLAorLQkJR0VPTUVUUlksCist CQlQTEFDRU1FTlQsCistCQlQSU5HLAorLQkJWElORVJBTUEsCistCQlLRVlCSU5ESU5HUywKKy0J CVNZTkMsCistCQlFUlJPUlMsCistCQlTVEFSVFVQLAorLQkJUFJFRlMsCistCQlHUk9VUFMsCist CQlSRVNJWklORywKKy0JCVNIQVBFUywKKy0JCUNPTVBPU0lUT1IsCistCQlFREdFX1JFU0lTVEFO Q0UsCistCQlEQlVTCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFy cmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEv Y29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXli aW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlh bG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0 YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0 LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEt bW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNj ZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZh Y3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVy LmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0 YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRv dy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1h bmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1l dGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2lu ZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9ESVJFQ1RJT05fIiwgdHlw ZV9pZCA9ICJtZXRhX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1Ymxp YyBlbnVtIERpcmVjdGlvbiB7CistCQlMRUZULAorLQkJUklHSFQsCistCQlUT1AsCistCQlCT1RU T00sCistCQlVUCwKKy0JCURPV04sCistCQlIT1JJWk9OVEFMLAorLQkJVkVSVElDQUwKKy0JfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5o LG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5o LG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWlu LmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vy c29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRh L21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5o LG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxt ZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1l dGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1z aGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2Uu aCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1l dGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRh LXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14 MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhl bWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFj ZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0RJU1BMQVlfIiwgdHlwZV9pZCA9ICJtZXRhX2Rpc3BsYXlf Y29ybmVyX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIERpc3BsYXlDb3JuZXIgeworLQkJ VE9QTEVGVCwKKy0JCVRPUFJJR0hULAorLQkJQk9UVE9NTEVGVCwKKy0JCUJPVFRPTVJJR0hUCist CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94 ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEv bWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRh LWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgs bWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFs b2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIu aCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21l dGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0 YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24u aCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEv bWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21l dGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRh L3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jr c3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9ESVNQTEFZXyIsIHR5cGVfaWQgPSAibWV0YV9kaXNw bGF5X2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBEaXNwbGF5RGlyZWN0 aW9uIHsKKy0JCVVQLAorLQkJRE9XTiwKKy0JCUxFRlQsCistCQlSSUdIVAorLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9j b21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9k aXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRh L21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJh Y2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1p ZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9t ZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0 YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRh LXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10 ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEv bWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRh LXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93 LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNw bGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1l dGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBj cHJlZml4ID0gIk1FVEFfRURHRV8iLCB0eXBlX2lkID0gIm1ldGFfZWRnZV90eXBlX2dldF90eXBl ICgpIildCistCXB1YmxpYyBlbnVtIEVkZ2VUeXBlIHsKKy0JCVdJTkRPVywKKy0JCU1PTklUT1Is CistCQlTQ1JFRU4KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJy aWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9j b21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJp bmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFs b2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRh LWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQt c2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1t b25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nl c3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFj dG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIu aCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRh L21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93 LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFu YWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0 YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5k b3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0VYSVRfIiwgdHlwZV9pZCA9 ICJtZXRhX2V4aXRfY29kZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBFeGl0Q29kZSB7 CistCQlTVUNDRVNTLAorLQkJRVJST1IKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3Np dG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAu aCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0 YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5k LmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9t ZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5o LG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRh LXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0 YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1z b3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmlj YXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRh L21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13 b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEt ZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGls LmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX0ZSQU1F XyIsIHR5cGVfaWQgPSAibWV0YV9mcmFtZV9mbGFnc19nZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3Nd CistCXB1YmxpYyBlbnVtIEZyYW1lRmxhZ3MgeworLQkJQUxMT1dTX0RFTEVURSwKKy0JCUFMTE9X U19NRU5VLAorLQkJQUxMT1dTX01JTklNSVpFLAorLQkJQUxMT1dTX01BWElNSVpFLAorLQkJQUxM T1dTX1ZFUlRJQ0FMX1JFU0laRSwKKy0JCUFMTE9XU19IT1JJWk9OVEFMX1JFU0laRSwKKy0JCUhB U19GT0NVUywKKy0JCVNIQURFRCwKKy0JCVNUVUNLLAorLQkJTUFYSU1JWkVELAorLQkJQUxMT1dT X1NIQURFLAorLQkJQUxMT1dTX01PVkUsCistCQlGVUxMU0NSRUVOLAorLQkJSVNfRkxBU0hJTkcs CistCQlBQk9WRSwKKy0JCVRJTEVEX0xFRlQsCistCQlUSUxFRF9SSUdIVAorLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9j b21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9k aXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRh L21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJh Y2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1p ZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9t ZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0 YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRh LXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10 ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEv bWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRh LXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93 LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNw bGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1l dGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBj cHJlZml4ID0gIk1FVEFfRlJBTUVfVFlQRV8iLCB0eXBlX2lkID0gIm1ldGFfZnJhbWVfdHlwZV9n ZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBGcmFtZVR5cGUgeworLQkJTk9STUFMLAorLQkJ RElBTE9HLAorLQkJTU9EQUxfRElBTE9HLAorLQkJVVRJTElUWSwKKy0JCU1FTlUsCistCQlCT1JE RVIsCistCQlBVFRBQ0hFRCwKKy0JCUxBU1Q7CistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgdG9f c3RyaW5nICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJp ZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2Nv bXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5Ymlu ZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dy b3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxv Zy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEt ZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1z aG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1v bml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vz cy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0 b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5o LG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEv bWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ct Z3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5h Z2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRh L3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRv dy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfR1JBQl9PUF8iLCB0eXBlX2lk ID0gIm1ldGFfZ3JhYl9vcF9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBHcmFiT3Agewor LQkJTk9ORSwKKy0JCVdJTkRPV19CQVNFLAorLQkJQ09NUE9TSVRPUiwKKy0JCVdBWUxBTkRfUE9Q VVAsCistCQlGUkFNRV9CVVRUT04sCistCQlNT1ZJTkcsCistCQlSRVNJWklOR19OVywKKy0JCVJF U0laSU5HX04sCistCQlSRVNJWklOR19ORSwKKy0JCVJFU0laSU5HX0UsCistCQlSRVNJWklOR19T VywKKy0JCVJFU0laSU5HX1MsCistCQlSRVNJWklOR19TRSwKKy0JCVJFU0laSU5HX1csCistCQlL RVlCT0FSRF9NT1ZJTkcsCistCQlLRVlCT0FSRF9SRVNJWklOR19VTktOT1dOLAorLQkJS0VZQk9B UkRfUkVTSVpJTkdfTlcsCistCQlLRVlCT0FSRF9SRVNJWklOR19OLAorLQkJS0VZQk9BUkRfUkVT SVpJTkdfTkUsCistCQlLRVlCT0FSRF9SRVNJWklOR19FLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdf U1csCistCQlLRVlCT0FSRF9SRVNJWklOR19TLAorLQkJS0VZQk9BUkRfUkVTSVpJTkdfU0UsCist CQlLRVlCT0FSRF9SRVNJWklOR19XCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRv ci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgs bWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEt Y2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5o LG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0 YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxt ZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1y ZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEt c2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291 bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0 aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9t ZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29y a3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVy cm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5o LG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9JTkhJQklU X1NIT1JUQ1VUU19ESUFMT0dfUkVTUE9OU0VfIiwgdHlwZV9pZCA9ICJtZXRhX2luaGliaXRfc2hv cnRjdXRzX2RpYWxvZ19yZXNwb25zZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBJbmhp Yml0U2hvcnRjdXRzRGlhbG9nUmVzcG9uc2UgeworLQkJQUxMT1csCistCQlERU5ZCistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxt ZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxt ZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5o LG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21l dGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNv ci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9t ZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxt ZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0 YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRh L21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hh cGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgs bWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRh L21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13 aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDEx LWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1l LmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2Uu aCIsIGNwcmVmaXggPSAiTUVUQV9LRVlCSU5ESU5HX0FDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFf a2V5X2JpbmRpbmdfYWN0aW9uX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIEtleUJpbmRp bmdBY3Rpb24geworLQkJTk9ORSwKKy0JCVdPUktTUEFDRV8xLAorLQkJV09SS1NQQUNFXzIsCist CQlXT1JLU1BBQ0VfMywKKy0JCVdPUktTUEFDRV80LAorLQkJV09SS1NQQUNFXzUsCistCQlXT1JL U1BBQ0VfNiwKKy0JCVdPUktTUEFDRV83LAorLQkJV09SS1NQQUNFXzgsCistCQlXT1JLU1BBQ0Vf OSwKKy0JCVdPUktTUEFDRV8xMCwKKy0JCVdPUktTUEFDRV8xMSwKKy0JCVdPUktTUEFDRV8xMiwK Ky0JCVdPUktTUEFDRV9MRUZULAorLQkJV09SS1NQQUNFX1JJR0hULAorLQkJV09SS1NQQUNFX1VQ LAorLQkJV09SS1NQQUNFX0RPV04sCistCQlXT1JLU1BBQ0VfTEFTVCwKKy0JCVNXSVRDSF9BUFBM SUNBVElPTlMsCistCQlTV0lUQ0hfQVBQTElDQVRJT05TX0JBQ0tXQVJELAorLQkJU1dJVENIX0dS T1VQLAorLQkJU1dJVENIX0dST1VQX0JBQ0tXQVJELAorLQkJU1dJVENIX1dJTkRPV1MsCistCQlT V0lUQ0hfV0lORE9XU19CQUNLV0FSRCwKKy0JCVNXSVRDSF9QQU5FTFMsCistCQlTV0lUQ0hfUEFO RUxTX0JBQ0tXQVJELAorLQkJQ1lDTEVfR1JPVVAsCistCQlDWUNMRV9HUk9VUF9CQUNLV0FSRCwK Ky0JCUNZQ0xFX1dJTkRPV1MsCistCQlDWUNMRV9XSU5ET1dTX0JBQ0tXQVJELAorLQkJQ1lDTEVf UEFORUxTLAorLQkJQ1lDTEVfUEFORUxTX0JBQ0tXQVJELAorLQkJU0hPV19ERVNLVE9QLAorLQkJ UEFORUxfTUFJTl9NRU5VLAorLQkJUEFORUxfUlVOX0RJQUxPRywKKy0JCVRPR0dMRV9SRUNPUkRJ TkcsCistCQlTRVRfU1BFV19NQVJLLAorLQkJQUNUSVZBVEVfV0lORE9XX01FTlUsCistCQlUT0dH TEVfRlVMTFNDUkVFTiwKKy0JCVRPR0dMRV9NQVhJTUlaRUQsCistCQlUT0dHTEVfVElMRURfTEVG VCwKKy0JCVRPR0dMRV9USUxFRF9SSUdIVCwKKy0JCVRPR0dMRV9BQk9WRSwKKy0JCU1BWElNSVpF LAorLQkJVU5NQVhJTUlaRSwKKy0JCVRPR0dMRV9TSEFERUQsCistCQlNSU5JTUlaRSwKKy0JCUNM T1NFLAorLQkJQkVHSU5fTU9WRSwKKy0JCUJFR0lOX1JFU0laRSwKKy0JCVRPR0dMRV9PTl9BTExf V09SS1NQQUNFUywKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzEsCistCQlNT1ZFX1RPX1dPUktTUEFD RV8yLAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfMywKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzQsCist CQlNT1ZFX1RPX1dPUktTUEFDRV81LAorLQkJTU9WRV9UT19XT1JLU1BBQ0VfNiwKKy0JCU1PVkVf VE9fV09SS1NQQUNFXzcsCistCQlNT1ZFX1RPX1dPUktTUEFDRV84LAorLQkJTU9WRV9UT19XT1JL U1BBQ0VfOSwKKy0JCU1PVkVfVE9fV09SS1NQQUNFXzEwLAorLQkJTU9WRV9UT19XT1JLU1BBQ0Vf MTEsCistCQlNT1ZFX1RPX1dPUktTUEFDRV8xMiwKKy0JCU1PVkVfVE9fV09SS1NQQUNFX0xFRlQs CistCQlNT1ZFX1RPX1dPUktTUEFDRV9SSUdIVCwKKy0JCU1PVkVfVE9fV09SS1NQQUNFX1VQLAor LQkJTU9WRV9UT19XT1JLU1BBQ0VfRE9XTiwKKy0JCU1PVkVfVE9fV09SS1NQQUNFX0xBU1QsCist CQlNT1ZFX1RPX01PTklUT1JfTEVGVCwKKy0JCU1PVkVfVE9fTU9OSVRPUl9SSUdIVCwKKy0JCU1P VkVfVE9fTU9OSVRPUl9VUCwKKy0JCU1PVkVfVE9fTU9OSVRPUl9ET1dOLAorLQkJUkFJU0VfT1Jf TE9XRVIsCistCQlSQUlTRSwKKy0JCUxPV0VSLAorLQkJTUFYSU1JWkVfVkVSVElDQUxMWSwKKy0J CU1BWElNSVpFX0hPUklaT05UQUxMWSwKKy0JCU1PVkVfVE9fQ09STkVSX05XLAorLQkJTU9WRV9U T19DT1JORVJfTkUsCistCQlNT1ZFX1RPX0NPUk5FUl9TVywKKy0JCU1PVkVfVE9fQ09STkVSX1NF LAorLQkJTU9WRV9UT19TSURFX04sCistCQlNT1ZFX1RPX1NJREVfUywKKy0JCU1PVkVfVE9fU0lE RV9FLAorLQkJTU9WRV9UT19TSURFX1csCistCQlNT1ZFX1RPX0NFTlRFUiwKKy0JCU9WRVJMQVlf S0VZLAorLQkJSVNPX05FWFRfR1JPVVAsCistCQlBTFdBWVNfT05fVE9QLAorLQkJU1dJVENIX01P TklUT1IsCistCQlST1RBVEVfTU9OSVRPUiwKKy0JCUxBU1QKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgs bWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5o LG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJh Y2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFn ZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxt ZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25p dG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVu Y2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2lu LmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5n cy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5o LG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3Rh cnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ct YWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5o LG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1l dGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVz LmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9 ICJNRVRBX0tFWV9CSU5ESU5HXyIsIHR5cGVfaWQgPSAibWV0YV9rZXlfYmluZGluZ19mbGFnc19n ZXRfdHlwZSAoKSIpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIEtleUJpbmRpbmdGbGFncyB7 CistCQlOT05FLAorLQkJUEVSX1dJTkRPVywKKy0JCUJVSUxUSU4sCistCQlJU19SRVZFUlNFRCwK Ky0JCU5PTl9NQVNLQUJMRSwKKy0JCUlHTk9SRV9BVVRPUkVQRUFUCistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1v bi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3Bs YXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0 YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dy b3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQt aW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2Vy LmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUt bW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEt bGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBs dWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0 dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1 cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRh LXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2lu ZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hh cGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXku aCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90 eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVm aXggPSAiTUVUQV9MQVRFUl8iLCB0eXBlX2lkID0gIm1ldGFfbGF0ZXJfdHlwZV9nZXRfdHlwZSAo KSIpXQorLQlwdWJsaWMgZW51bSBMYXRlclR5cGUgeworLQkJUkVTSVpFLAorLQkJQ0FMQ19TSE9X SU5HLAorLQkJQ0hFQ0tfRlVMTFNDUkVFTiwKKy0JCVNZTkNfU1RBQ0ssCistCQlCRUZPUkVfUkVE UkFXLAorLQkJSURMRQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Jh cnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5 YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRp YWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21l dGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJp dC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRh LW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFj Y2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1m YWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXll ci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1l dGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5k b3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1t YW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxt ZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dp bmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1FVEFfTE9DQUxFX0RJUkVDVElP Tl8iLCB0eXBlX2lkID0gIm1ldGFfbG9jYWxlX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorLQlw dWJsaWMgZW51bSBMb2NhbGVEaXJlY3Rpb24geworLQkJTFRSLAorLQkJUlRMCistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRh L2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRh L2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1l dGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10 cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRh LWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRh L21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21l dGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVk LXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0 YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21l dGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5k b3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRp c3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgs bWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIs IGNwcmVmaXggPSAiTUVUQV9NQVhJTUlaRV8iLCB0eXBlX2lkID0gIm1ldGFfbWF4aW1pemVfZmxh Z3NfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBNYXhpbWl6ZUZsYWdz IHsKKy0JCUhPUklaT05UQUwsCistCQlWRVJUSUNBTCwKKy0JCUJPVEgKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29t bW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlz cGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9t ZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNr ZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRs ZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0 YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEt cGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1z ZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4 dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21l dGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13 aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1z aGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxh eS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRh L3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3By ZWZpeCA9ICJNRVRBX01PREFMXyIsIHR5cGVfaWQgPSAibWV0YV9tb2RhbF9vcHRpb25zX2dldF90 eXBlICgpIildCistCVtGbGFnc10KKy0JcHVibGljIGVudW0gTW9kYWxPcHRpb25zIHsKKy0JCVBP SU5URVJfQUxSRUFEWV9HUkFCQkVELAorLQkJS0VZQk9BUkRfQUxSRUFEWV9HUkFCQkVECistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMu aCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIu aCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFp bi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1 cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0 YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cu aCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgs bWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxt ZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEt c2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdl LmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxt ZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0 YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEt eDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3Ro ZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3Bh Y2UuaCIsIGNwcmVmaXggPSAiTUVUQV9NT05JVE9SX1NXSVRDSF9DT05GSUdfIiwgdHlwZV9pZCA9 ICJtZXRhX21vbml0b3Jfc3dpdGNoX2NvbmZpZ190eXBlX2dldF90eXBlICgpIildCistCXB1Ymxp YyBlbnVtIE1vbml0b3JTd2l0Y2hDb25maWdUeXBlIHsKKy0JCUFMTF9NSVJST1IsCistCQlBTExf TElORUFSLAorLQkJRVhURVJOQUwsCistCQlCVUlMVElOLAorLQkJVU5LTk9XTgorLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0 YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0 YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxt ZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3It dHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0 YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0 YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEv bWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9t ZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBl ZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1l dGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9t ZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2lu ZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1k aXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5o LG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgi LCBjcHJlZml4ID0gIk1FVEFfTU9USU9OXyIsIHR5cGVfaWQgPSAibWV0YV9tb3Rpb25fZGlyZWN0 aW9uX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIE1vdGlvbkRpcmVjdGlvbiB7CistCQlV UCwKKy0JCURPV04sCistCQlMRUZULAorLQkJUklHSFQsCistCQlVUF9MRUZULAorLQkJVVBfUklH SFQsCistCQlET1dOX0xFRlQsCistCQlET1dOX1JJR0hUCistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1l dGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxt ZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNr ZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1n cm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2Uu aCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0 YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRv ci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNo LWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5o LG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3Mu aCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxt ZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0 dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFj dG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxt ZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRh L21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5o LG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAi TUVUQV9QQURfQUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9wYWRfYWN0aW9uX3R5cGVfZ2V0X3R5 cGUgKCkiKV0KKy0JcHVibGljIGVudW0gUGFkQWN0aW9uVHlwZSB7CistCQlCVVRUT04sCistCQlS SU5HLAorLQkJU1RSSVAKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9i YXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0 YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tl eWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1k aWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9t ZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGli aXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0 YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1h Y2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ct ZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5 ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxt ZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2lu ZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2Ut bWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgs bWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93 aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX1BSRUZfIiwgdHlwZV9p ZCA9ICJtZXRhX3ByZWZlcmVuY2VfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gUHJlZmVy ZW5jZSB7CistCQlNT1VTRV9CVVRUT05fTU9EUywKKy0JCUZPQ1VTX01PREUsCistCQlGT0NVU19O RVdfV0lORE9XUywKKy0JCUFUVEFDSF9NT0RBTF9ESUFMT0dTLAorLQkJUkFJU0VfT05fQ0xJQ0ss CistCQlBQ1RJT05fRE9VQkxFX0NMSUNLX1RJVExFQkFSLAorLQkJQUNUSU9OX01JRERMRV9DTElD S19USVRMRUJBUiwKKy0JCUFDVElPTl9SSUdIVF9DTElDS19USVRMRUJBUiwKKy0JCUFVVE9fUkFJ U0UsCistCQlBVVRPX1JBSVNFX0RFTEFZLAorLQkJRk9DVVNfQ0hBTkdFX09OX1BPSU5URVJfUkVT VCwKKy0JCVRJVExFQkFSX0ZPTlQsCistCQlOVU1fV09SS1NQQUNFUywKKy0JCURZTkFNSUNfV09S S1NQQUNFUywKKy0JCUtFWUJJTkRJTkdTLAorLQkJRElTQUJMRV9XT1JLQVJPVU5EUywKKy0JCUJV VFRPTl9MQVlPVVQsCistCQlXT1JLU1BBQ0VfTkFNRVMsCistCQlWSVNVQUxfQkVMTCwKKy0JCUFV RElCTEVfQkVMTCwKKy0JCVZJU1VBTF9CRUxMX1RZUEUsCistCQlHTk9NRV9BQ0NFU1NJQklMSVRZ LAorLQkJR05PTUVfQU5JTUFUSU9OUywKKy0JCUNVUlNPUl9USEVNRSwKKy0JCUNVUlNPUl9TSVpF LAorLQkJUkVTSVpFX1dJVEhfUklHSFRfQlVUVE9OLAorLQkJRURHRV9USUxJTkcsCistCQlGT1JD RV9GVUxMU0NSRUVOLAorLQkJV09SS1NQQUNFU19PTkxZX09OX1BSSU1BUlksCistCQlEUkFHR0FC TEVfQk9SREVSX1dJRFRILAorLQkJQVVUT19NQVhJTUlaRSwKKy0JCUNFTlRFUl9ORVdfV0lORE9X UywKKy0JCURSQUdfVEhSRVNIT0xEOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIHRvX3N0cmlu ZyAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgs bWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3Np dG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdz LmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1h Y3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQu aCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxt ZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0t dHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRj dXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9y LW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29u dHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5o LG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRh L21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEt dmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3Vw LmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5o LG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVm cy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxt ZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX1NIQURPV19NT0RFXyIsIHR5cGVfaWQg PSAibWV0YV9zaGFkb3dfbW9kZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgZW51bSBTaGFkb3dN b2RlIHsKKy0JCUFVVE8sCistCQlGT1JDRURfT0ZGLAorLQkJRk9SQ0VEX09OCistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRh L2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRh L2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1l dGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10 cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRh LWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRh L21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21l dGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVk LXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0 YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21l dGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5k b3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRp c3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgs bWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIs IGNwcmVmaXggPSAiTUVUQV9TSURFXyIsIHR5cGVfaWQgPSAibWV0YV9zaWRlX2dldF90eXBlICgp IildCistCXB1YmxpYyBlbnVtIFNpZGUgeworLQkJTEVGVCwKKy0JCVJJR0hULAorLQkJVE9QLAor LQkJQk9UVE9NCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmll ci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29t cG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5k aW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91 bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9n LmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1l bnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNo b3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9u aXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNz LWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3Rv cnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgs bWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9t ZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1n cm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFn ZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEv cHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93 LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9TSVpFX0NIQU5HRV8iLCB0eXBl X2lkID0gIm1ldGFfc2l6ZV9jaGFuZ2VfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gU2l6 ZUNoYW5nZSB7CistCQlNQVhJTUlaRSwKKy0JCVVOTUFYSU1JWkUsCistCQlGVUxMU0NSRUVOLAor LQkJVU5GVUxMU0NSRUVOCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv YmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1l dGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9r ZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2Ut ZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEv bWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhp Yml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21l dGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUt YWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93 LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxh eWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgs bWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdp bmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNl LW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5o LG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEv d2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNwcmVmaXggPSAiTUVUQV9MQVlFUl8iLCB0eXBl X2lkID0gIm1ldGFfc3RhY2tfbGF5ZXJfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gU3Rh Y2tMYXllciB7CistCQlERVNLVE9QLAorLQkJQk9UVE9NLAorLQkJTk9STUFMLAorLQkJVE9QLAor LQkJRE9DSywKKy0JCU9WRVJSSURFX1JFRElSRUNULAorLQkJTEFTVAorLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21t b24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNw bGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21l dGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tl ci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxl LW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRh LWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1w bHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNl dHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0 dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0 YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdp bmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNo YXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5 LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEv dHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJl Zml4ID0gIk1FVEFfVEFCX0xJU1RfIiwgdHlwZV9pZCA9ICJtZXRhX3RhYl9saXN0X2dldF90eXBl ICgpIildCistCXB1YmxpYyBlbnVtIFRhYkxpc3QgeworLQkJTk9STUFMLAorLQkJRE9DS1MsCist CQlHUk9VUCwKKy0JCU5PUk1BTF9BTEwKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3Np dG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAu aCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0 YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0 YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5k LmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9t ZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5o LG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRh LXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0 YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1z b3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmlj YXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRh L21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13 b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEt ZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGls LmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX1RBQl9T SE9XXyIsIHR5cGVfaWQgPSAibWV0YV90YWJfc2hvd190eXBlX2dldF90eXBlICgpIildCistCXB1 YmxpYyBlbnVtIFRhYlNob3dUeXBlIHsKKy0JCUlDT04sCistCQlJTlNUQU5UTFkKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1l dGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1l dGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgs bWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29y LXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21l dGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1l dGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRh L21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEv bWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFw ZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxt ZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEv bWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdp bmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEt ZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUu aCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5o IiwgY3ByZWZpeCA9ICJNRVRBX1ZJUlRVQUxfIiwgdHlwZV9pZCA9ICJtZXRhX3ZpcnR1YWxfbW9k aWZpZXJfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBWaXJ0dWFsTW9k aWZpZXIgeworLQkJU0hJRlRfTUFTSywKKy0JCUNPTlRST0xfTUFTSywKKy0JCUFMVF9NQVNLLAor LQkJTUVUQV9NQVNLLAorLQkJU1VQRVJfTUFTSywKKy0JCUhZUEVSX01BU0ssCistCQlNT0QyX01B U0ssCistCQlNT0QzX01BU0ssCistCQlNT0Q0X01BU0ssCistCQlNT0Q1X01BU0sKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1l dGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1l dGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgs bWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29y LXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21l dGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1l dGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRh L21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEv bWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFw ZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxt ZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEv bWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdp bmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEt ZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUu aCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5o IiwgY3ByZWZpeCA9ICJNRVRBX1dJTkRPV19DTElFTlRfVFlQRV8iLCB0eXBlX2lkID0gIm1ldGFf d2luZG93X2NsaWVudF90eXBlX2dldF90eXBlICgpIildCistCXB1YmxpYyBlbnVtIFdpbmRvd0Ns aWVudFR5cGUgeworLQkJV0FZTEFORCwKKy0JCVgxMQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRh L2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0 YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3Jv dXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgs bWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEv bWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3Iu aCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1j b250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxt ZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgs bWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0 YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVw LW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rv ci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0 YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9t ZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxt ZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjcHJlZml4ID0gIk1F VEFfV0lORE9XX01FTlVfIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19tZW51X3R5cGVfZ2V0X3R5 cGUgKCkiKV0KKy0JcHVibGljIGVudW0gV2luZG93TWVudVR5cGUgeworLQkJV00sCistCQlBUFAK Ky0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9i b3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11 dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0 YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRh L21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21l dGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMu aCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRp YWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFn ZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxl ci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEv bWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEt c3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lv bi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0 YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEv bWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1l dGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dv cmtzcGFjZS5oIiwgY3ByZWZpeCA9ICJNRVRBX1dJTkRPV18iLCB0eXBlX2lkID0gIm1ldGFfd2lu ZG93X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGljIGVudW0gV2luZG93VHlwZSB7CistCQlO T1JNQUwsCistCQlERVNLVE9QLAorLQkJRE9DSywKKy0JCURJQUxPRywKKy0JCU1PREFMX0RJQUxP RywKKy0JCVRPT0xCQVIsCistCQlNRU5VLAorLQkJVVRJTElUWSwKKy0JCVNQTEFTSFNDUkVFTiwK Ky0JCURST1BET1dOX01FTlUsCistCQlQT1BVUF9NRU5VLAorLQkJVE9PTFRJUCwKKy0JCU5PVElG SUNBVElPTiwKKy0JCUNPTUJPLAorLQkJRE5ELAorLQkJT1ZFUlJJREVfT1RIRVIKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1l dGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1l dGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgs bWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29y LXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21l dGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1l dGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRh L21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEv bWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFw ZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxt ZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEv bWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdp bmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEt ZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUu aCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5o IiwgaW5zdGFuY2VfcG9zID0gMi45KV0KKy0JcHVibGljIGRlbGVnYXRlIHZvaWQgSWRsZU1vbml0 b3JXYXRjaEZ1bmMgKE1ldGEuSWRsZU1vbml0b3IgbW9uaXRvciwgdWludCB3YXRjaF9pZCk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgs bWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgs bWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4u aCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJz b3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEv bWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgs bWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1l dGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0 YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNo YXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5o LG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0 YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEt d2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgx MS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVt ZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNl LmgiLCBpbnN0YW5jZV9wb3MgPSA0LjkpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBLZXlIYW5k bGVyRnVuYyAoTWV0YS5EaXNwbGF5IGRpc3BsYXksIE1ldGEuV2luZG93IHdpbmRvdywgW0NDb2Rl ICh0eXBlID0gIkNsdXR0ZXJLZXlFdmVudCoiKV0gQ2x1dHRlci5LZXlFdmVudD8gZXZlbnQsIE1l dGEuS2V5QmluZGluZyBiaW5kaW5nKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5o LG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0 YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0 YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xv c2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1l dGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1p bmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRh L21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1v dGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hh ZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQt cGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9u LmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRh LXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3Nw YWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9y cy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1l dGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCistCXB1 YmxpYyBkZWxlZ2F0ZSB2b2lkIFByZWZzQ2hhbmdlZEZ1bmMgKE1ldGEuUHJlZmVyZW5jZSBwcmVm KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94 ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEv bWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRh LWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgs bWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFs b2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIu aCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21l dGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0 YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24u aCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEv bWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21l dGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRh L3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jr c3BhY2UuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCistCXB1YmxpYyBkZWxlZ2F0ZSBib29sIFdp bmRvd0ZvcmVhY2hGdW5jIChNZXRhLldpbmRvdyB3aW5kb3cpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0 YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1l dGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tl bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdy b3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5o LG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRh L21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9y LmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gt Y29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgs bWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5o LG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1l dGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1 cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0 b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1l dGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEv bWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgs bWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUgPSAiTUVU QV9DVVJSRU5UX1RJTUUiKV0KKy0JcHVibGljIGNvbnN0IGludCBDVVJSRU5UX1RJTUU7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0 YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0 YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxt ZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRh LWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3It dHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0 YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0 YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEv bWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9t ZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBl ZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1l dGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9t ZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2lu ZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1k aXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5o LG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgi LCBjbmFtZSA9ICJNRVRBX0RFRkFVTFRfSUNPTl9OQU1FIildCistCXB1YmxpYyBjb25zdCBzdHJp bmcgREVGQVVMVF9JQ09OX05BTUU7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxt ZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEv a2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEt YmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3Nl LWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRh L21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5o aWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9t ZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3Rl LWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRv dy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBs YXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5o LG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13 aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFj ZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMu aCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRh L3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX0lDT05fSEVJR0hUIild CistCXB1YmxpYyBjb25zdCBpbnQgSUNPTl9IRUlHSFQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2Nv bXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9n cm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAu aCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0 YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0 YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxt ZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250 ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRh L21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0 YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9t ZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5v dGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5o LG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9t ZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRh LXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRh L3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX0lD T05fV0lEVEgiKV0KKy0JcHVibGljIGNvbnN0IGludCBJQ09OX1dJRFRIOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9u LmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxh eS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRh LWJhY2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1p bWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIu aCxtZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1t b25pdG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1s YXVuY2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1 Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0 aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVy ZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEt c3RhcnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5k b3ctYWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFw ZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5o LG1ldGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5 cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUg PSAiTUVUQV9NQUpPUl9WRVJTSU9OIildCistCXB1YmxpYyBjb25zdCBpbnQgTUFKT1JfVkVSU0lP TjsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94 ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0 ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEv bWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxt ZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRh LWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgs bWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFs b2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2Vy LmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIu aCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21l dGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0 YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24u aCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEv bWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21l dGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRh L3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jr c3BhY2UuaCIsIGNuYW1lID0gIk1FVEFfTUlDUk9fVkVSU0lPTiIpXQorLQlwdWJsaWMgY29uc3Qg aW50IE1JQ1JPX1ZFUlNJT047CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Jh cnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5 YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRp YWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21l dGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJp dC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRh LW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFj Y2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1m YWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXll ci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1l dGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5k b3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1t YW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxt ZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dp bmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX01JTklfSUNPTl9IRUlHSFQi KV0KKy0JcHVibGljIGNvbnN0IGludCBNSU5JX0lDT05fSEVJR0hUOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgs bWV0YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5o LG1ldGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJh Y2tlbmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWdyb3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFn ZS5oLG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxt ZXRhL21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25p dG9yLmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVu Y2gtY29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2lu LmgsbWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5n cy5oLG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5o LG1ldGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3Rh cnR1cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ct YWN0b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5o LG1ldGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1l dGEvbWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVz LmgsbWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUgPSAi TUVUQV9NSU5JX0lDT05fV0lEVEgiKV0KKy0JcHVibGljIGNvbnN0IGludCBNSU5JX0lDT05fV0lE VEg7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2Jv eGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0 dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRh L21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgs bWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEv bWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0 YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5o LG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlh bG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdl ci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVy LmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9t ZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1z dGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9u LmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRh L21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9t ZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0 YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29y a3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX01JTk9SX1ZFUlNJT04iKV0KKy0JcHVibGljIGNvbnN0 IGludCBNSU5PUl9WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9i YXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgsbWV0 YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRhL2tl eWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9zZS1k aWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0YS9t ZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWluaGli aXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEvbWV0 YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90ZS1h Y2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFkb3ct ZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1wbGF5 ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24uaCxt ZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEtd2lu ZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3BhY2Ut bWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3JzLmgs bWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0YS93 aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUgPSAiTUVUQV9QTFVHSU5fQVBJX1ZFUlNJ T04iKV0KKy0JcHVibGljIGNvbnN0IGludCBQTFVHSU5fQVBJX1ZFUlNJT047CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21t b24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNw bGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21l dGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5k LWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tl ci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxl LW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRh LWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1w bHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNl dHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0 dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0 YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdp bmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNo YXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5 LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEv dHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFt ZSA9ICJNRVRBX1BSSU9SSVRZX0JFRk9SRV9SRURSQVciKV0KKy0JcHVibGljIGNvbnN0IGludCBQ UklPUklUWV9CRUZPUkVfUkVEUkFXOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0YS9jb21wb3NpdG9yLmgs bWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1ldGEvZ3JvdXAuaCxtZXRh L2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tlbmQuaCxtZXRhL21ldGEt YmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdyb3VwLmgsbWV0YS9tZXRh LWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5oLG1ldGEvbWV0YS1jbG9z ZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRhL21ldGEtZG5kLmgsbWV0 YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgsbWV0YS9tZXRhLWlu aGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oLG1ldGEv bWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgsbWV0YS9tZXRhLXJlbW90 ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5oLG1ldGEvbWV0YS1zaGFk b3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1ldGEvbWV0YS1zb3VuZC1w bGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1cC1ub3RpZmljYXRpb24u aCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0b3IuaCxtZXRhL21ldGEt d2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1ldGEvbWV0YS13b3Jrc3Bh Y2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEvbWV0YS14MTEtZXJyb3Jz LmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgsbWV0YS91dGlsLmgsbWV0 YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUgPSAiTUVUQV9QUklPUklUWV9QUkVG U19OT1RJRlkiKV0KKy0JcHVibGljIGNvbnN0IGludCBQUklPUklUWV9QUkVGU19OT1RJRlk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgs bWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgs bWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4u aCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJz b3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEv bWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgs bWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1l dGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0 YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNo YXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5o LG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0 YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEt d2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgx MS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVt ZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNl LmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZX1JFRFJBVyIpXQorLQlwdWJsaWMgY29uc3QgaW50 IFBSSU9SSVRZX1JFRFJBVzsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFy cmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEvY29tcG9zaXRvci5oLG1ldGEv Y29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRhL2dyb3VwLmgsbWV0YS9rZXli aW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tn cm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxtZXRhL21ldGEtY2xvc2UtZGlh bG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0 YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5oLG1ldGEvbWV0YS1pbmhpYml0 LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNvbnRleHQuaCxtZXRhL21ldGEt bW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNj ZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxtZXRhL21ldGEtc2hhZG93LWZh Y3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRhL21ldGEtc291bmQtcGxheWVy LmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0 YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRv dy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRhL21ldGEtd29ya3NwYWNlLW1h bmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21ldGEteDExLWVycm9ycy5oLG1l dGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1ldGEvdXRpbC5oLG1ldGEvd2lu ZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUkVTSVpFIild CistCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfUkVTSVpFOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9iYXJyaWVyLmgsbWV0YS9ib3hlcy5oLG1ldGEvY29tbW9uLmgsbWV0 YS9jb21wb3NpdG9yLmgsbWV0YS9jb21wb3NpdG9yLW11dHRlci5oLG1ldGEvZGlzcGxheS5oLG1l dGEvZ3JvdXAuaCxtZXRhL2tleWJpbmRpbmdzLmgsbWV0YS9tYWluLmgsbWV0YS9tZXRhLWJhY2tl bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1hY3Rvci5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWdy b3VwLmgsbWV0YS9tZXRhLWJhY2tncm91bmQuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1pbWFnZS5o LG1ldGEvbWV0YS1jbG9zZS1kaWFsb2cuaCxtZXRhL21ldGEtY3Vyc29yLXRyYWNrZXIuaCxtZXRh L21ldGEtZG5kLmgsbWV0YS9tZXRhLWVudW0tdHlwZXMuaCxtZXRhL21ldGEtaWRsZS1tb25pdG9y LmgsbWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oLG1ldGEvbWV0YS1sYXVuY2gt Y29udGV4dC5oLG1ldGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCxtZXRhL21ldGEtcGx1Z2luLmgs bWV0YS9tZXRhLXJlbW90ZS1hY2Nlc3MtY29udHJvbGxlci5oLG1ldGEvbWV0YS1zZXR0aW5ncy5o LG1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oLG1ldGEvbWV0YS1zaGFwZWQtdGV4dHVyZS5oLG1l dGEvbWV0YS1zb3VuZC1wbGF5ZXIuaCxtZXRhL21ldGEtc3RhZ2UuaCxtZXRhL21ldGEtc3RhcnR1 cC1ub3RpZmljYXRpb24uaCxtZXRhL21ldGEtdmVyc2lvbi5oLG1ldGEvbWV0YS13aW5kb3ctYWN0 b3IuaCxtZXRhL21ldGEtd2luZG93LWdyb3VwLmgsbWV0YS9tZXRhLXdpbmRvdy1zaGFwZS5oLG1l dGEvbWV0YS13b3Jrc3BhY2UtbWFuYWdlci5oLG1ldGEvbWV0YS14MTEtZGlzcGxheS5oLG1ldGEv bWV0YS14MTEtZXJyb3JzLmgsbWV0YS9wcmVmcy5oLG1ldGEvdGhlbWUuaCxtZXRhL3R5cGVzLmgs bWV0YS91dGlsLmgsbWV0YS93aW5kb3cuaCxtZXRhL3dvcmtzcGFjZS5oIiwgY25hbWUgPSAiTUVU QV9WSVJUVUFMX0NPUkVfS0VZQk9BUkRfSUQiKV0KKy0JcHVibGljIGNvbnN0IGludCBWSVJUVUFM X0NPUkVfS0VZQk9BUkRfSUQ7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Jh cnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5 YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNr Z3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFj a2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRp YWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21l dGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJp dC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRh LW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFj Y2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1m YWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXll ci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1l dGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5k b3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1t YW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxt ZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dp bmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiLCBjbmFtZSA9ICJNRVRBX1ZJUlRVQUxfQ09SRV9QT0lO VEVSX0lEIildCistCXB1YmxpYyBjb25zdCBpbnQgVklSVFVBTF9DT1JFX1BPSU5URVJfSUQ7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgs bWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgs bWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4u aCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9t ZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1i YWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJz b3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEv bWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgs bWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1l dGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0 YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNo YXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5o LG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0 YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEt d2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgx MS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVt ZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNl LmgiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGFjdGl2YXRlX3Nlc3Npb24gKCk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9j b21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9k aXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRh L21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJh Y2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1p ZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9t ZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0 YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRh LXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10 ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEv bWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRh LXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93 LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNw bGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1l dGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0K Ky0JcHVibGljIHN0YXRpYyB2b2lkIGV4aXQgKE1ldGEuRXhpdENvZGUgY29kZSk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9j b21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9k aXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRh L21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJh Y2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1p ZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9t ZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0 YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRh LXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10 ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEv bWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRh LXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93 LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNw bGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1l dGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0K Ky0JcHVibGljIHN0YXRpYyB1bm93bmVkIEdMaWIuT3B0aW9uQ29udGV4dCBnZXRfb3B0aW9uX2Nv bnRleHQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxt ZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3Mu aCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFj dG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1l dGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10 eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1 dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3It bWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250 cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5Lmgs bWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEv bWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12 ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAu aCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgs bWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZz LmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1l dGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGdldF9yZXBsYWNlX2N1cnJl bnRfd20gKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxt ZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0 b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3Mu aCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFj dG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5o LG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1l dGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10 eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1 dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3It bWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250 cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5Lmgs bWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEv bWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12 ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAu aCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgs bWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZz LmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1l dGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGluaXQgKCk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9j b21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9k aXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRh L21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJh Y2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJh Y2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1p ZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9t ZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0 YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRh LXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10 ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEv bWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRh LXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93 LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNw bGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1l dGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0K Ky0JcHVibGljIHN0YXRpYyBib29sIGlzX3Jlc3RhcnQgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRh L2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0 YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3Jv dXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgs bWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEv bWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3Iu aCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1j b250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxt ZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgs bWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0 YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVw LW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rv ci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0 YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9t ZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxt ZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHF1aXQgKE1ldGEuRXhpdENvZGUgY29kZSk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL2JhcnJpZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRh L2NvbXBvc2l0b3IuaCxtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0 YS9ncm91cC5oLG1ldGEva2V5YmluZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2Vu ZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3Jv dXAuaCxtZXRhL21ldGEtYmFja2dyb3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgs bWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEv bWV0YS1kbmQuaCxtZXRhL21ldGEtZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3Iu aCxtZXRhL21ldGEtaW5oaWJpdC1zaG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1j b250ZXh0LmgsbWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxt ZXRhL21ldGEtcmVtb3RlLWFjY2Vzcy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgs bWV0YS9tZXRhLXNoYWRvdy1mYWN0b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0 YS9tZXRhLXNvdW5kLXBsYXllci5oLG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVw LW5vdGlmaWNhdGlvbi5oLG1ldGEvbWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rv ci5oLG1ldGEvbWV0YS13aW5kb3ctZ3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0 YS9tZXRhLXdvcmtzcGFjZS1tYW5hZ2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9t ZXRhLXgxMS1lcnJvcnMuaCxtZXRhL3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxt ZXRhL3V0aWwuaCxtZXRhL3dpbmRvdy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHJlZ2lzdGVyX3dpdGhfc2Vzc2lvbiAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEv Y29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRh L2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91 cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxt ZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9t ZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5o LG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNv bnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1l dGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxt ZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRh L21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAt bm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9y LmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRh L21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21l dGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1l dGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3Rh dGljIHZvaWQgcmVzdGFydCAoc3RyaW5nPyBtZXNzYWdlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1ldGEv Y29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxtZXRh L2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNrZW5k LmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1ncm91 cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2UuaCxt ZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0YS9t ZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRvci5o LG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNoLWNv bnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5oLG1l dGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3MuaCxt ZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxtZXRh L21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0dXAt bm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFjdG9y LmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxtZXRh L21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRhL21l dGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5oLG1l dGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMgc3Rh dGljIGludCBydW4gKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JhcnJp ZXIuaCxtZXRhL2JveGVzLmgsbWV0YS9jb21tb24uaCxtZXRhL2NvbXBvc2l0b3IuaCxtZXRhL2Nv bXBvc2l0b3ItbXV0dGVyLmgsbWV0YS9kaXNwbGF5LmgsbWV0YS9ncm91cC5oLG1ldGEva2V5Ymlu ZGluZ3MuaCxtZXRhL21haW4uaCxtZXRhL21ldGEtYmFja2VuZC5oLG1ldGEvbWV0YS1iYWNrZ3Jv dW5kLWFjdG9yLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtZ3JvdXAuaCxtZXRhL21ldGEtYmFja2dy b3VuZC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLWltYWdlLmgsbWV0YS9tZXRhLWNsb3NlLWRpYWxv Zy5oLG1ldGEvbWV0YS1jdXJzb3ItdHJhY2tlci5oLG1ldGEvbWV0YS1kbmQuaCxtZXRhL21ldGEt ZW51bS10eXBlcy5oLG1ldGEvbWV0YS1pZGxlLW1vbml0b3IuaCxtZXRhL21ldGEtaW5oaWJpdC1z aG9ydGN1dHMtZGlhbG9nLmgsbWV0YS9tZXRhLWxhdW5jaC1jb250ZXh0LmgsbWV0YS9tZXRhLW1v bml0b3ItbWFuYWdlci5oLG1ldGEvbWV0YS1wbHVnaW4uaCxtZXRhL21ldGEtcmVtb3RlLWFjY2Vz cy1jb250cm9sbGVyLmgsbWV0YS9tZXRhLXNldHRpbmdzLmgsbWV0YS9tZXRhLXNoYWRvdy1mYWN0 b3J5LmgsbWV0YS9tZXRhLXNoYXBlZC10ZXh0dXJlLmgsbWV0YS9tZXRhLXNvdW5kLXBsYXllci5o LG1ldGEvbWV0YS1zdGFnZS5oLG1ldGEvbWV0YS1zdGFydHVwLW5vdGlmaWNhdGlvbi5oLG1ldGEv bWV0YS12ZXJzaW9uLmgsbWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oLG1ldGEvbWV0YS13aW5kb3ct Z3JvdXAuaCxtZXRhL21ldGEtd2luZG93LXNoYXBlLmgsbWV0YS9tZXRhLXdvcmtzcGFjZS1tYW5h Z2VyLmgsbWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgsbWV0YS9tZXRhLXgxMS1lcnJvcnMuaCxtZXRh L3ByZWZzLmgsbWV0YS90aGVtZS5oLG1ldGEvdHlwZXMuaCxtZXRhL3V0aWwuaCxtZXRhL3dpbmRv dy5oLG1ldGEvd29ya3NwYWNlLmgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9nbm9tZV93 bV9rZXliaW5kaW5ncyAoc3RyaW5nIHdtX2tleWJpbmRpbmdzKTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5oLG1l dGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXkuaCxt ZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1iYWNr ZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3VuZC1n cm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1hZ2Uu aCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgsbWV0 YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9uaXRv ci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1bmNo LWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdpbi5o LG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGluZ3Mu aCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCxt ZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0YXJ0 dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93LWFj dG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUuaCxt ZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxtZXRh L21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBlcy5o LG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgc2V0X3dtX25hbWUgKHN0cmluZyB3bV9uYW1lKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oLG1ldGEvYm94ZXMuaCxtZXRhL2NvbW1vbi5o LG1ldGEvY29tcG9zaXRvci5oLG1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCxtZXRhL2Rpc3BsYXku aCxtZXRhL2dyb3VwLmgsbWV0YS9rZXliaW5kaW5ncy5oLG1ldGEvbWFpbi5oLG1ldGEvbWV0YS1i YWNrZW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtYWN0b3IuaCxtZXRhL21ldGEtYmFja2dyb3Vu ZC1ncm91cC5oLG1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgsbWV0YS9tZXRhLWJhY2tncm91bmQtaW1h Z2UuaCxtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgsbWV0YS9tZXRhLWN1cnNvci10cmFja2VyLmgs bWV0YS9tZXRhLWRuZC5oLG1ldGEvbWV0YS1lbnVtLXR5cGVzLmgsbWV0YS9tZXRhLWlkbGUtbW9u aXRvci5oLG1ldGEvbWV0YS1pbmhpYml0LXNob3J0Y3V0cy1kaWFsb2cuaCxtZXRhL21ldGEtbGF1 bmNoLWNvbnRleHQuaCxtZXRhL21ldGEtbW9uaXRvci1tYW5hZ2VyLmgsbWV0YS9tZXRhLXBsdWdp bi5oLG1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCxtZXRhL21ldGEtc2V0dGlu Z3MuaCxtZXRhL21ldGEtc2hhZG93LWZhY3RvcnkuaCxtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUu aCxtZXRhL21ldGEtc291bmQtcGxheWVyLmgsbWV0YS9tZXRhLXN0YWdlLmgsbWV0YS9tZXRhLXN0 YXJ0dXAtbm90aWZpY2F0aW9uLmgsbWV0YS9tZXRhLXZlcnNpb24uaCxtZXRhL21ldGEtd2luZG93 LWFjdG9yLmgsbWV0YS9tZXRhLXdpbmRvdy1ncm91cC5oLG1ldGEvbWV0YS13aW5kb3ctc2hhcGUu aCxtZXRhL21ldGEtd29ya3NwYWNlLW1hbmFnZXIuaCxtZXRhL21ldGEteDExLWRpc3BsYXkuaCxt ZXRhL21ldGEteDExLWVycm9ycy5oLG1ldGEvcHJlZnMuaCxtZXRhL3RoZW1lLmgsbWV0YS90eXBl cy5oLG1ldGEvdXRpbC5oLG1ldGEvd2luZG93LmgsbWV0YS93b3Jrc3BhY2UuaCIpXQorLQlwdWJs aWMgc3RhdGljIGJvb2wgeDExX2luaXRfZ2RrX2Rpc3BsYXkgKCkgdGhyb3dzIEdMaWIuRXJyb3I7 CistfQorZGlmZiAtLWdpdCB2YXBpL2xpYm11dHRlci01LmRlcHMgdmFwaS9saWJtdXR0ZXItNi5k ZXBzCitzaW1pbGFyaXR5IGluZGV4IDUwJQorcmVuYW1lIGZyb20gdmFwaS9saWJtdXR0ZXItNS5k ZXBzCityZW5hbWUgdG8gdmFwaS9saWJtdXR0ZXItNi5kZXBzCitpbmRleCA0OGFhNzU2My4uMjIz NTI1ZTQgMTAwNjQ0CistLS0gdmFwaS9saWJtdXR0ZXItNS5kZXBzCisrKysgdmFwaS9saWJtdXR0 ZXItNi5kZXBzCitAQCAtMSw1ICsxLDYgQEAKKyBndGsrLTMuMAorIGpzb24tZ2xpYi0xLjAKKy1t dXR0ZXItY2x1dHRlci01CisrbXV0dGVyLWNsdXR0ZXItNgorIHgxMQorIHhmaXhlcy00LjAKKytn cmFwaGVuZS1nb2JqZWN0LTEuMAorZGlmZiAtLWdpdCB2YXBpL2xpYm11dHRlci01LnZhcGkgdmFw aS9saWJtdXR0ZXItNi52YXBpCitzaW1pbGFyaXR5IGluZGV4IDk3JQorcmVuYW1lIGZyb20gdmFw aS9saWJtdXR0ZXItNS52YXBpCityZW5hbWUgdG8gdmFwaS9saWJtdXR0ZXItNi52YXBpCitpbmRl eCBiOTVhMjhlNi4uYjM2YmUxYjcgMTAwNjQ0CistLS0gdmFwaS9saWJtdXR0ZXItNS52YXBpCisr KysgdmFwaS9saWJtdXR0ZXItNi52YXBpCitAQCAtMSwxMiArMSwxMCBAQAorLS8qIGxpYm11dHRl ci01LnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnkuICovCisrLyogbGli bXV0dGVyLTYudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKyAK Ky1bQ0NvZGUgKGNwcmVmaXggPSAiTWV0YSIsIGdpcl9uYW1lc3BhY2UgPSAiTWV0YSIsIGdpcl92 ZXJzaW9uID0gIjUiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAibWV0YV8iKV0KKytbQ0NvZGUgKGNw cmVmaXggPSAiTWV0YSIsIGdpcl9uYW1lc3BhY2UgPSAiTWV0YSIsIGdpcl92ZXJzaW9uID0gIjYi LCBsb3dlcl9jYXNlX2NwcmVmaXggPSAibWV0YV8iKV0KKyBuYW1lc3BhY2UgTWV0YSB7CisgCW5h bWVzcGFjZSBDb21wb3NpdG9yIHsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2Rpc2FibGVfdW5yZWRpcmVjdF9m b3JfZGlzcGxheSIpXQorIAkJcHVibGljIHN0YXRpYyB2b2lkIGRpc2FibGVfdW5yZWRpcmVjdF9m b3JfZGlzcGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZW1wdHlf c3RhZ2VfaW5wdXRfcmVnaW9uIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZW1wdHlfc3RhZ2Vf aW5wdXRfcmVnaW9uIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CisgCQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9lbmFi bGVfdW5yZWRpcmVjdF9mb3JfZGlzcGxheSIpXQorIAkJcHVibGljIHN0YXRpYyB2b2lkIGVuYWJs ZV91bnJlZGlyZWN0X2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CisgCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUg PSAibWV0YV9mb2N1c19zdGFnZV93aW5kb3ciKV0KK0BAIC0yMSw4ICsxOSw2IEBAIG5hbWVzcGFj ZSBNZXRhIHsKKyAJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHTGliLkxpc3Q8Q2x1dHRlci5BY3Rv cj4gZ2V0X3dpbmRvd19hY3RvcnMgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKyAJCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJt ZXRhX2dldF93aW5kb3dfZ3JvdXBfZm9yX2Rpc3BsYXkiKV0KKyAJCXB1YmxpYyBzdGF0aWMgdW5v d25lZCBDbHV0dGVyLkFjdG9yIGdldF93aW5kb3dfZ3JvdXBfZm9yX2Rpc3BsYXkgKE1ldGEuRGlz cGxheSBkaXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX3NldF9zdGFnZV9pbnB1dF9yZWdpb24iKV0K Ky0JCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIChNZXRhLkRpc3Bs YXkgZGlzcGxheSwgWC5Yc2VydmVyUmVnaW9uIHJlZ2lvbik7CisgCX0KKyAJbmFtZXNwYWNlIFBy ZWZzIHsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFt ZSA9ICJtZXRhX3ByZWZzX2JlbGxfaXNfYXVkaWJsZSIpXQorQEAgLTE2NCw3ICsxNjAsNyBAQCBu YW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgdm9pZCBzZXRfbnVtbG9jayAoYm9vbCBudW1sb2Nr X3N0YXRlKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBrZXltYXBfY2hhbmdlZCAoKTsKKyAJCXB1 YmxpYyBzaWduYWwgdm9pZCBrZXltYXBfbGF5b3V0X2dyb3VwX2NoYW5nZWQgKHVpbnQgb2JqZWN0 KTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBsYXN0X2RldmljZV9jaGFuZ2VkIChpbnQgb2JqZWN0 KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBsYXN0X2RldmljZV9jaGFuZ2VkIChDbHV0dGVyLklu cHV0RGV2aWNlIG9iamVjdCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgbGlkX2lzX2Nsb3NlZF9j aGFuZ2VkIChib29sIG9iamVjdCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWV0YS1iYWNrZ3JvdW5kLmgiLCB0eXBlX2lkID0gIm1ldGFfYmFja2dyb3VuZF9nZXRf dHlwZSAoKSIpXQorQEAgLTE3NCw3ICsxNzAsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJs aWMgc3RhdGljIHZvaWQgcmVmcmVzaF9hbGwgKCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfYmxlbmQg KEdMaWIuRmlsZSBmaWxlMSwgR0xpYi5GaWxlIGZpbGUyLCBkb3VibGUgYmxlbmRfZmFjdG9yLCBH RGVza3RvcC5CYWNrZ3JvdW5kU3R5bGUgc3R5bGUpOworIAkJcHVibGljIHZvaWQgc2V0X2NvbG9y IChDbHV0dGVyLkNvbG9yIGNvbG9yKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9maWxlIChHTGliLkZp bGUgZmlsZSwgR0Rlc2t0b3AuQmFja2dyb3VuZFN0eWxlIHN0eWxlKTsKKysJCXB1YmxpYyB2b2lk IHNldF9maWxlIChHTGliLkZpbGU/IGZpbGUsIEdEZXNrdG9wLkJhY2tncm91bmRTdHlsZSBzdHls ZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfZ3JhZGllbnQgKEdEZXNrdG9wLkJhY2tncm91bmRTaGFk aW5nIHNoYWRpbmdfZGlyZWN0aW9uLCBDbHV0dGVyLkNvbG9yIGNvbG9yLCBDbHV0dGVyLkNvbG9y IHNlY29uZF9jb2xvcik7CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCXB1YmxpYyBNZXRhLkRp c3BsYXkgbWV0YV9kaXNwbGF5IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KK0BAIC0yNzUsNyAr MjcxLDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHVub3duZWQgQ29nbC5UZXh0dXJl IGdldF9zcHJpdGUgKCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRlcl92aXNpYmxlIChib29s IHZpc2libGUpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGN1cnNvcl9jaGFuZ2VkICgpOworLQkJ cHVibGljIHNpZ25hbCB2b2lkIGN1cnNvcl9tb3ZlZCAoZmxvYXQgb2JqZWN0LCBmbG9hdCBwMCk7 CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29yX21vdmVkIChmbG9hdCB4LCBmbG9hdCB5KTsK KyAJCXB1YmxpYyBzaWduYWwgdm9pZCB2aXNpYmlsaXR5X2NoYW5nZWQgKCk7CisgCX0KKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvZGlzcGxheS5oIiwgdHlwZV9pZCA9ICJtZXRh X2Rpc3BsYXlfZ2V0X3R5cGUgKCkiKV0KK0BAIC0zMjcsNiArMzIzLDcgQEAgbmFtZXNwYWNlIE1l dGEgeworIAkJcHVibGljIGJvb2wgeHNlcnZlcl90aW1lX2lzX2JlZm9yZSAodWludDMyIHRpbWUx LCB1aW50MzIgdGltZTIpOworIAkJcHVibGljIE1ldGEuV2luZG93IGZvY3VzX3dpbmRvdyB7IGdl dDsgfQorIAkJcHVibGljIHNpZ25hbCB2b2lkIGFjY2VsZXJhdG9yX2FjdGl2YXRlZCAodWludCBv YmplY3QsIENsdXR0ZXIuSW5wdXREZXZpY2UgcDAsIHVpbnQgcDEpOworKwkJcHVibGljIHNpZ25h bCB2b2lkIGNsb3NpbmcgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29yX3VwZGF0ZWQg KCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZ2xfdmlkZW9fbWVtb3J5X3B1cmdlZCAoKTsKKyAJ CXB1YmxpYyBzaWduYWwgdm9pZCBncmFiX29wX2JlZ2luIChNZXRhLkRpc3BsYXkgb2JqZWN0LCBN ZXRhLldpbmRvdyBwMCwgTWV0YS5HcmFiT3AgcDEpOworQEAgLTM1MCw2ICszNDcsNyBAQCBuYW1l c3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya2FyZWFzX2NoYW5nZWQgKCk7 CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgeDExX2Rpc3BsYXlfY2xvc2luZyAoKTsKKyAJCXB1Ymxp YyBzaWduYWwgdm9pZCB4MTFfZGlzcGxheV9vcGVuZWQgKCk7CisrCQlwdWJsaWMgc2lnbmFsIHZv aWQgeDExX2Rpc3BsYXlfc2V0dXAgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWV0YS1kbmQuaCIsIHR5cGVfaWQgPSAibWV0YV9kbmRfZ2V0X3R5cGUgKCkiKV0K KyAJcHVibGljIGNsYXNzIERuZCA6IEdMaWIuT2JqZWN0IHsKK0BAIC0zNzAsMTEgKzM2OCwxMCBA QCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgdWludCBhZGRfaWRsZV93YXRjaCAodWludDY0 IGludGVydmFsX21zZWMsIG93bmVkIE1ldGEuSWRsZU1vbml0b3JXYXRjaEZ1bmM/IGNhbGxiYWNr KTsKKyAJCXB1YmxpYyB1aW50IGFkZF91c2VyX2FjdGl2ZV93YXRjaCAob3duZWQgTWV0YS5JZGxl TW9uaXRvcldhdGNoRnVuYz8gY2FsbGJhY2spOworIAkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1l dGEuSWRsZU1vbml0b3IgZ2V0X2NvcmUgKCk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgTWV0 YS5JZGxlTW9uaXRvciBnZXRfZm9yX2RldmljZSAoaW50IGRldmljZV9pZCk7CisgCQlwdWJsaWMg aW50NjQgZ2V0X2lkbGV0aW1lICgpOworIAkJcHVibGljIHZvaWQgcmVtb3ZlX3dhdGNoICh1aW50 IGlkKTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCBkZXZpY2VfaWQgeyBn ZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlIHsg b3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tYWluLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVu Y3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5nX2dldF90 eXBlICgpIildCisgCVtDb21wYWN0XQorQEAgLTUzNiwxNSArNTMzLDE0IEBAIG5hbWVzcGFjZSBN ZXRhIHsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBjaGFuZ2VkICgpOworIAl9CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtc2hhcGVkLXRleHR1cmUuaCIsIHR5cGVfaWQg PSAibWV0YV9zaGFwZWRfdGV4dHVyZV9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgU2hh cGVkVGV4dHVyZSA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5Bbmlt YXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKysJcHVibGlj IGNsYXNzIFNoYXBlZFRleHR1cmUgOiBHTGliLk9iamVjdCwgQ2x1dHRlci5Db250ZW50IHsKKyAJ CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBT aGFwZWRUZXh0dXJlICgpOworLQkJcHVibGljIENhaXJvLlN1cmZhY2UgZ2V0X2ltYWdlIChDYWly by5SZWN0YW5nbGVJbnQgY2xpcCk7CisrCQlwdWJsaWMgQ2Fpcm8uU3VyZmFjZT8gZ2V0X2ltYWdl IChDYWlyby5SZWN0YW5nbGVJbnQ/IGNsaXApOworIAkJcHVibGljIHVub3duZWQgQ29nbC5UZXh0 dXJlIGdldF90ZXh0dXJlICgpOworIAkJcHVibGljIHZvaWQgc2V0X2NyZWF0ZV9taXBtYXBzIChi b29sIGNyZWF0ZV9taXBtYXBzKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9tYXNrX3RleHR1cmUgKENv Z2wuVGV4dHVyZSBtYXNrX3RleHR1cmUpOworIAkJcHVibGljIHZvaWQgc2V0X29wYXF1ZV9yZWdp b24gKG93bmVkIENhaXJvLlJlZ2lvbiBvcGFxdWVfcmVnaW9uKTsKKy0JCXB1YmxpYyBib29sIHVw ZGF0ZV9hcmVhIChpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCk7CisgCQlwdWJs aWMgc2lnbmFsIHZvaWQgc2l6ZV9jaGFuZ2VkICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21ldGEtc291bmQtcGxheWVyLmgiLCB0eXBlX2lkID0gIm1ldGFfc291 bmRfcGxheWVyX2dldF90eXBlICgpIildCitAQCAtNzU2LDE3ICs3NTIsMTYgQEAgbmFtZXNwYWNl IE1ldGEgeworIAlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgV2luZG93QWN0b3IgOiBDbHV0dGVyLkFj dG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWlu ZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgV2luZG93QWN0b3IgKCk7CisrCQlwdWJsaWMgQ2Fp cm8uU3VyZmFjZT8gZ2V0X2ltYWdlIChDYWlyby5SZWN0YW5nbGVJbnQ/IGNsaXApOworIAkJcHVi bGljIHVub3duZWQgTWV0YS5XaW5kb3cgZ2V0X21ldGFfd2luZG93ICgpOworLQkJcHVibGljIHVu b3duZWQgQ2x1dHRlci5BY3RvciBnZXRfdGV4dHVyZSAoKTsKKysJCXB1YmxpYyB1bm93bmVkIE1l dGEuU2hhcGVkVGV4dHVyZSBnZXRfdGV4dHVyZSAoKTsKKyAJCXB1YmxpYyBib29sIGlzX2Rlc3Ry b3llZCAoKTsKKyAJCXB1YmxpYyB2b2lkIHN5bmNfdmlzaWJpbGl0eSAoKTsKKyAJCXB1YmxpYyBN ZXRhLldpbmRvdyBtZXRhX3dpbmRvdyB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nv ck1ldGhvZF0KKy0JCXB1YmxpYyBzdHJpbmcgc2hhZG93X2NsYXNzIHsgb3duZWQgZ2V0OyBzZXQ7 IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIE1ldGEuU2hhZG93TW9kZSBzaGFk b3dfbW9kZSB7IGdldDsgc2V0OyB9CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGFtYWdlZCAoKTsK KyAJCXB1YmxpYyBzaWduYWwgdm9pZCBlZmZlY3RzX2NvbXBsZXRlZCAoKTsKKyAJCXB1YmxpYyBz aWduYWwgdm9pZCBmaXJzdF9mcmFtZSAoKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCB0aGF3ZWQg KCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS13aW5kb3ct Z3JvdXAuaCIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfZ3JvdXBfZ2V0X3R5cGUgKCkiKV0KKyAJ cHVibGljIGNsYXNzIFdpbmRvd0dyb3VwIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9y LCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFi bGUgeworQEAgLTgxMyw3ICs4MDgsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgdW5v d25lZCBNZXRhLldvcmtzcGFjZSBnZXRfYWN0aXZlX3dvcmtzcGFjZSAoKTsKKyAJCXB1YmxpYyBp bnQgZ2V0X2FjdGl2ZV93b3Jrc3BhY2VfaW5kZXggKCk7CisgCQlwdWJsaWMgaW50IGdldF9uX3dv cmtzcGFjZXMgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZSBnZXRfd29ya3Nw YWNlX2J5X2luZGV4IChpbnQgaW5kZXgpOworKwkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3Bh Y2U/IGdldF93b3Jrc3BhY2VfYnlfaW5kZXggKGludCBpbmRleCk7CisgCQlwdWJsaWMgdm9pZCBv dmVycmlkZV93b3Jrc3BhY2VfbGF5b3V0IChNZXRhLkRpc3BsYXlDb3JuZXIgc3RhcnRpbmdfY29y bmVyLCBib29sIHZlcnRpY2FsX2xheW91dCwgaW50IG5fcm93cywgaW50IG5fY29sdW1ucyk7Cisg CQlwdWJsaWMgdm9pZCByZW1vdmVfd29ya3NwYWNlIChNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2Us IHVpbnQzMiB0aW1lc3RhbXApOworIAkJcHVibGljIHZvaWQgcmVvcmRlcl93b3Jrc3BhY2UgKE1l dGEuV29ya3NwYWNlIHdvcmtzcGFjZSwgaW50IG5ld19pbmRleCk7CitAQCAtODMzLDExICs4Mjgs MTMgQEAgbmFtZXNwYWNlIE1ldGEgeworIAlwdWJsaWMgY2xhc3MgWDExRGlzcGxheSA6IEdMaWIu T2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJ CXByb3RlY3RlZCBYMTFEaXNwbGF5ICgpOworKwkJcHVibGljIHZvaWQgY2xlYXJfc3RhZ2VfaW5w dXRfcmVnaW9uICgpOworIAkJcHVibGljIGludCBnZXRfZGFtYWdlX2V2ZW50X2Jhc2UgKCk7Cisg CQlwdWJsaWMgaW50IGdldF9zY3JlZW5fbnVtYmVyICgpOworIAkJcHVibGljIGludCBnZXRfc2hh cGVfZXZlbnRfYmFzZSAoKTsKKyAJCXB1YmxpYyBib29sIGhhc19zaGFwZSAoKTsKKyAJCXB1Ymxp YyB2b2lkIHNldF9jbV9zZWxlY3Rpb24gKCk7CisrCQlwdWJsaWMgdm9pZCBzZXRfc3RhZ2VfaW5w dXRfcmVnaW9uIChYLlhzZXJ2ZXJSZWdpb24gcmVnaW9uKTsKKyAJCXB1YmxpYyBib29sIHh3aW5k b3dfaXNfYV9ub19mb2N1c193aW5kb3cgKFguV2luZG93IHh3aW5kb3cpOworIAl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgiLCB0eXBlX2Nu YW1lID0gIk1ldGFDbG9zZURpYWxvZ0ludGVyZmFjZSIsIHR5cGVfaWQgPSAibWV0YV9jbG9zZV9k aWFsb2dfZ2V0X3R5cGUgKCkiKV0KK0BAIC04OTksNyArODk2LDcgQEAgbmFtZXNwYWNlIE1ldGEg eworIAkJcHVibGljIHVpbnQgdmVyc2lvbl9taWNybzsKKyAJCXB1YmxpYyB1aW50IHZlcnNpb25f YXBpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIHR5 cGVfaWQgPSAibWV0YV9yZWN0YW5nbGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHki LCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAibWV0YV9yZWN0YW5n bGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIHN0cnVjdCBSZWN0YW5nbGUgeworIAkJcHVibGlj IGludCB4OworIAkJcHVibGljIGludCB5OworQEAgLTE0NDMsNiArMTQ0MCw4IEBAIG5hbWVzcGFj ZSBNZXRhIHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisg CXB1YmxpYyBzdGF0aWMgYm9vbCBhY3RpdmF0ZV9zZXNzaW9uICgpOworIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKysJcHVibGljIHN0YXRpYyB2b2lkIGFkZF9j bHV0dGVyX2RlYnVnX2ZsYWdzIChDbHV0dGVyLkRlYnVnRmxhZyBkZWJ1Z19mbGFncywgQ2x1dHRl ci5EcmF3RGVidWdGbGFnIGRyYXdfZmxhZ3MsIENsdXR0ZXIuUGlja0RlYnVnRmxhZyBwaWNrX2Zs YWdzKTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1 YmxpYyBzdGF0aWMgdm9pZCBleGl0IChNZXRhLkV4aXRDb2RlIGNvZGUpOworIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyBzdHJpbmcg Z191dGY4X3N0cm5kdXAgKHN0cmluZyBzcmMsIHNpemVfdCBuKTsKK0BAIC0xNDU5LDYgKzE0NTgs OCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgcmVnaXN0ZXJfd2l0aF9zZXNzaW9uICgp OworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKysJcHVibGlj IHN0YXRpYyB2b2lkIHJlbW92ZV9jbHV0dGVyX2RlYnVnX2ZsYWdzIChDbHV0dGVyLkRlYnVnRmxh ZyBkZWJ1Z19mbGFncywgQ2x1dHRlci5EcmF3RGVidWdGbGFnIGRyYXdfZmxhZ3MsIENsdXR0ZXIu UGlja0RlYnVnRmxhZyBwaWNrX2ZsYWdzKTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCByZXN0YXJ0IChzdHJpbmc/IG1l c3NhZ2UpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJ cHVibGljIHN0YXRpYyBpbnQgcnVuICgpOworQEAgLTE0NjcsNSArMTQ2OCw3IEBAIG5hbWVzcGFj ZSBNZXRhIHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisg CXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfd21fbmFtZSAoc3RyaW5nIHdtX25hbWUpOworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKysJcHVibGljIHN0YXRpYyB2 b2lkIHRlc3RfaW5pdCAoKTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFp bi5oIildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCB4MTFfaW5pdF9nZGtfZGlzcGxheSAoKSB0aHJv d3MgR0xpYi5FcnJvcjsKKyB9CitkaWZmIC0tZ2l0IHZhcGkvbGlibXV0dGVyLTctY3VzdG9tLnZh bGEgdmFwaS9saWJtdXR0ZXItNy1jdXN0b20udmFsYQorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2lu ZGV4IDAwMDAwMDAwLi4xZTBiOTE3YworLS0tIC9kZXYvbnVsbAorKysrIHZhcGkvbGlibXV0dGVy LTctY3VzdG9tLnZhbGEKK0BAIC0wLDAgKzEsNyBAQAorK1tDQ29kZSAoaGFzX3R5cGVfaWQgPSBm YWxzZSldCisrcHVibGljIHN0cnVjdCBiZWZvcmVfZnJhbWUgeworK30KKysKKytbQ0NvZGUgKGhh c190eXBlX2lkID0gZmFsc2UpXQorK3B1YmxpYyBzdHJ1Y3QgZnJhbWUgeworK30KK2RpZmYgLS1n aXQgdmFwaS9saWJtdXR0ZXItNy5kZXBzIHZhcGkvbGlibXV0dGVyLTcuZGVwcworbmV3IGZpbGUg bW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAwLi4yZWY5MTllZQorLS0tIC9kZXYvbnVsbAorKysr IHZhcGkvbGlibXV0dGVyLTcuZGVwcworQEAgLTAsMCArMSw2IEBACisrZ3RrKy0zLjAKKytqc29u LWdsaWItMS4wCisrbXV0dGVyLWNsdXR0ZXItNworK3gxMQorK3hmaXhlcy00LjAKKytncmFwaGVu ZS1nb2JqZWN0LTEuMAorZGlmZiAtLWdpdCB2YXBpL2xpYm11dHRlci0zLnZhcGkgdmFwaS9saWJt dXR0ZXItNy52YXBpCitzaW1pbGFyaXR5IGluZGV4IDc1JQorcmVuYW1lIGZyb20gdmFwaS9saWJt dXR0ZXItMy52YXBpCityZW5hbWUgdG8gdmFwaS9saWJtdXR0ZXItNy52YXBpCitpbmRleCAxNzE1 YWE4Zi4uOTBjNDE1OTAgMTAwNjQ0CistLS0gdmFwaS9saWJtdXR0ZXItMy52YXBpCisrKysgdmFw aS9saWJtdXR0ZXItNy52YXBpCitAQCAtMSwxMiArMSwxMCBAQAorLS8qIGxpYm11dHRlci0zLnZh cGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnkuICovCisrLyogbGlibXV0dGVy LTcudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKyAKKy1bQ0Nv ZGUgKGNwcmVmaXggPSAiTWV0YSIsIGdpcl9uYW1lc3BhY2UgPSAiTWV0YSIsIGdpcl92ZXJzaW9u ID0gIjMiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAibWV0YV8iKV0KKytbQ0NvZGUgKGNwcmVmaXgg PSAiTWV0YSIsIGdpcl9uYW1lc3BhY2UgPSAiTWV0YSIsIGdpcl92ZXJzaW9uID0gIjciLCBsb3dl cl9jYXNlX2NwcmVmaXggPSAibWV0YV8iKV0KKyBuYW1lc3BhY2UgTWV0YSB7CisgCW5hbWVzcGFj ZSBDb21wb3NpdG9yIHsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBv c2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2Rpc2FibGVfdW5yZWRpcmVjdF9mb3JfZGlz cGxheSIpXQorIAkJcHVibGljIHN0YXRpYyB2b2lkIGRpc2FibGVfdW5yZWRpcmVjdF9mb3JfZGlz cGxheSAoTWV0YS5EaXNwbGF5IGRpc3BsYXkpOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIGNuYW1lID0gIm1ldGFfZW1wdHlfc3RhZ2Vf aW5wdXRfcmVnaW9uIildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZW1wdHlfc3RhZ2VfaW5wdXRf cmVnaW9uIChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0YV9lbmFibGVfdW5y ZWRpcmVjdF9mb3JfZGlzcGxheSIpXQorIAkJcHVibGljIHN0YXRpYyB2b2lkIGVuYWJsZV91bnJl ZGlyZWN0X2Zvcl9kaXNwbGF5IChNZXRhLkRpc3BsYXkgZGlzcGxheSk7CisgCQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLW11dHRlci5oIiwgY25hbWUgPSAibWV0 YV9mb2N1c19zdGFnZV93aW5kb3ciKV0KK0BAIC0yMSw4ICsxOSw2IEBAIG5hbWVzcGFjZSBNZXRh IHsKKyAJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBHTGliLkxpc3Q8Q2x1dHRlci5BY3Rvcj4gZ2V0 X3dpbmRvd19hY3RvcnMgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKyAJCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3ItbXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX2dl dF93aW5kb3dfZ3JvdXBfZm9yX2Rpc3BsYXkiKV0KKyAJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBD bHV0dGVyLkFjdG9yIGdldF93aW5kb3dfZ3JvdXBfZm9yX2Rpc3BsYXkgKE1ldGEuRGlzcGxheSBk aXNwbGF5KTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbXBvc2l0b3It bXV0dGVyLmgiLCBjbmFtZSA9ICJtZXRhX3NldF9zdGFnZV9pbnB1dF9yZWdpb24iKV0KKy0JCXB1 YmxpYyBzdGF0aWMgdm9pZCBzZXRfc3RhZ2VfaW5wdXRfcmVnaW9uIChNZXRhLkRpc3BsYXkgZGlz cGxheSwgWC5Yc2VydmVyUmVnaW9uIHJlZ2lvbik7CisgCX0KKyAJbmFtZXNwYWNlIFByZWZzIHsK KyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJt ZXRhX3ByZWZzX2JlbGxfaXNfYXVkaWJsZSIpXQorQEAgLTQ3LDYgKzQzLDggQEAgbmFtZXNwYWNl IE1ldGEgeworIAkJcHVibGljIHN0YXRpYyBNZXRhLkJ1dHRvbkxheW91dCBwcmVmc19nZXRfYnV0 dG9uX2xheW91dCAoKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZz LmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9jZW50ZXJfbmV3X3dpbmRvd3MiKV0KKyAJCXB1 YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfY2VudGVyX25ld193aW5kb3dzICgpOworKwkJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJl ZnNfZ2V0X2NoZWNrX2FsaXZlX3RpbWVvdXQiKV0KKysJCXB1YmxpYyBzdGF0aWMgdWludCBwcmVm c19nZXRfY2hlY2tfYWxpdmVfdGltZW91dCAoKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9jb21wb3NpdGluZ19t YW5hZ2VyIildCisgCQlwdWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2NvbXBvc2l0aW5nX21h bmFnZXIgKCk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwg Y25hbWUgPSAibWV0YV9wcmVmc19nZXRfY3Vyc29yX3NpemUiKV0KK0BAIC03NSw4ICs3Myw2IEBA IG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzdGF0aWMgYm9vbCBwcmVmc19nZXRfZ25vbWVf YWNjZXNzaWJpbGl0eSAoKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3By ZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX2dldF9nbm9tZV9hbmltYXRpb25zIildCisgCQlw dWJsaWMgc3RhdGljIGJvb2wgcHJlZnNfZ2V0X2dub21lX2FuaW1hdGlvbnMgKCk7CistCQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVm c19nZXRfaWdub3JlX3JlcXVlc3RfaGlkZV90aXRsZWJhciIpXQorLQkJcHVibGljIHN0YXRpYyBi b29sIHByZWZzX2dldF9pZ25vcmVfcmVxdWVzdF9oaWRlX3RpdGxlYmFyICgpOworIAkJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNf Z2V0X2tleWJpbmRpbmdfYWN0aW9uIildCisgCQlwdWJsaWMgc3RhdGljIE1ldGEuS2V5QmluZGlu Z0FjdGlvbiBwcmVmc19nZXRfa2V5YmluZGluZ19hY3Rpb24gKHN0cmluZyBuYW1lKTsKKyAJCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3By ZWZzX2dldF9tb3VzZV9idXR0b25fbWVudSIpXQorQEAgLTEwNSw4ICsxMDEsNiBAQCBuYW1lc3Bh Y2UgTWV0YSB7CisgCQlwdWJsaWMgc3RhdGljIHZvaWQgcHJlZnNfaW5pdCAoKTsKKyAJCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZz X3NldF9mb3JjZV9mdWxsc2NyZWVuIildCisgCQlwdWJsaWMgc3RhdGljIHZvaWQgcHJlZnNfc2V0 X2ZvcmNlX2Z1bGxzY3JlZW4gKGJvb2wgd2hldGhlcik7CistCQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwgY25hbWUgPSAibWV0YV9wcmVmc19zZXRfaWdub3JlX3Jl cXVlc3RfaGlkZV90aXRsZWJhciIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHByZWZzX3NldF9p Z25vcmVfcmVxdWVzdF9oaWRlX3RpdGxlYmFyIChib29sIHdoZXRoZXIpOworIAkJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGNuYW1lID0gIm1ldGFfcHJlZnNfc2V0 X251bV93b3Jrc3BhY2VzIildCisgCQlwdWJsaWMgc3RhdGljIHZvaWQgcHJlZnNfc2V0X251bV93 b3Jrc3BhY2VzIChpbnQgbl93b3Jrc3BhY2VzKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJtZXRhL3ByZWZzLmgiLCBjbmFtZSA9ICJtZXRhX3ByZWZzX3NldF9zaG93X2ZhbGxiYWNr X2FwcF9tZW51IildCitAQCAtMTE3LDEyICsxMTEsMTAgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJ cHVibGljIHN0YXRpYyB2b2lkIGFkZF92ZXJib3NlX3RvcGljIChNZXRhLkRlYnVnVG9waWMgdG9w aWMpOworIAkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5oIiwgY25hbWUg PSAibWV0YV9leHRlcm5hbF9iaW5kaW5nX25hbWVfZm9yX2FjdGlvbiIpXQorIAkJcHVibGljIHN0 YXRpYyBzdHJpbmcgZXh0ZXJuYWxfYmluZGluZ19uYW1lX2Zvcl9hY3Rpb24gKHVpbnQga2V5Ymlu ZGluZ19hY3Rpb24pOworLQkJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvdXRpbC5o IiwgY25hbWUgPSAibWV0YV9nX3V0Zjhfc3RybmR1cCIpXQorLQkJcHVibGljIHN0YXRpYyBzdHJp bmcgZ191dGY4X3N0cm5kdXAgKHN0cmluZyBzcmMsIHNpemVfdCBuKTsKKyAJCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIsIGNuYW1lID0gIm1ldGFfZ2V0X2xvY2FsZV9k aXJlY3Rpb24iKV0KKyAJCXB1YmxpYyBzdGF0aWMgTWV0YS5Mb2NhbGVEaXJlY3Rpb24gZ2V0X2xv Y2FsZV9kaXJlY3Rpb24gKCk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91 dGlsLmgiLCBjbmFtZSA9ICJtZXRhX2dyYXZpdHlfdG9fc3RyaW5nIildCistCQlwdWJsaWMgc3Rh dGljIHVub3duZWQgc3RyaW5nIGdyYXZpdHlfdG9fc3RyaW5nIChpbnQgZ3Jhdml0eSk7CisrCQlw dWJsaWMgc3RhdGljIHVub3duZWQgc3RyaW5nIGdyYXZpdHlfdG9fc3RyaW5nIChNZXRhLkdyYXZp dHkgZ3Jhdml0eSk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgi LCBjbmFtZSA9ICJtZXRhX2lzX2RlYnVnZ2luZyIpXQorIAkJcHVibGljIHN0YXRpYyBib29sIGlz X2RlYnVnZ2luZyAoKTsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwu aCIsIGNuYW1lID0gIm1ldGFfaXNfc3luY2luZyIpXQorQEAgLTE2NSwxMiArMTU3LDEzIEBAIG5h bWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyB1bm93bmVkIE1ldGEuRG5kIGdldF9kbmQgKCk7Cisg CQlwdWJsaWMgdW5vd25lZCBNZXRhLlJlbW90ZUFjY2Vzc0NvbnRyb2xsZXIgZ2V0X3JlbW90ZV9h Y2Nlc3NfY29udHJvbGxlciAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0 X3N0YWdlICgpOworKwkJcHVibGljIGJvb2wgaXNfcmVuZGVyaW5nX2hhcmR3YXJlX2FjY2VsZXJh dGVkICgpOworIAkJcHVibGljIHZvaWQgbG9ja19sYXlvdXRfZ3JvdXAgKHVpbnQgaWR4KTsKKyAJ CXB1YmxpYyB2b2lkIHNldF9rZXltYXAgKHN0cmluZyBsYXlvdXRzLCBzdHJpbmcgdmFyaWFudHMs IHN0cmluZyBvcHRpb25zKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9udW1sb2NrIChib29sIG51bWxv Y2tfc3RhdGUpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGtleW1hcF9jaGFuZ2VkICgpOworIAkJ cHVibGljIHNpZ25hbCB2b2lkIGtleW1hcF9sYXlvdXRfZ3JvdXBfY2hhbmdlZCAodWludCBvYmpl Y3QpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGxhc3RfZGV2aWNlX2NoYW5nZWQgKGludCBvYmpl Y3QpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGxhc3RfZGV2aWNlX2NoYW5nZWQgKENsdXR0ZXIu SW5wdXREZXZpY2Ugb2JqZWN0KTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBsaWRfaXNfY2xvc2Vk X2NoYW5nZWQgKGJvb2wgb2JqZWN0KTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tZXRhLWJhY2tncm91bmQuaCIsIHR5cGVfaWQgPSAibWV0YV9iYWNrZ3JvdW5kX2dl dF90eXBlICgpIildCitAQCAtMTgwLDcgKzE3Myw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1 YmxpYyBzdGF0aWMgdm9pZCByZWZyZXNoX2FsbCAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9ibGVu ZCAoR0xpYi5GaWxlIGZpbGUxLCBHTGliLkZpbGUgZmlsZTIsIGRvdWJsZSBibGVuZF9mYWN0b3Is IEdEZXNrdG9wLkJhY2tncm91bmRTdHlsZSBzdHlsZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfY29s b3IgKENsdXR0ZXIuQ29sb3IgY29sb3IpOworLQkJcHVibGljIHZvaWQgc2V0X2ZpbGUgKEdMaWIu RmlsZSBmaWxlLCBHRGVza3RvcC5CYWNrZ3JvdW5kU3R5bGUgc3R5bGUpOworKwkJcHVibGljIHZv aWQgc2V0X2ZpbGUgKEdMaWIuRmlsZT8gZmlsZSwgR0Rlc2t0b3AuQmFja2dyb3VuZFN0eWxlIHN0 eWxlKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9ncmFkaWVudCAoR0Rlc2t0b3AuQmFja2dyb3VuZFNo YWRpbmcgc2hhZGluZ19kaXJlY3Rpb24sIENsdXR0ZXIuQ29sb3IgY29sb3IsIENsdXR0ZXIuQ29s b3Igc2Vjb25kX2NvbG9yKTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJcHVibGljIE1ldGEu RGlzcGxheSBtZXRhX2Rpc3BsYXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorQEAgLTE5MCw5 ICsxODMsMTggQEAgbmFtZXNwYWNlIE1ldGEgeworIAlwdWJsaWMgY2xhc3MgQmFja2dyb3VuZEFj dG9yIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUs IENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworIAkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorIAkJ cHVibGljIEJhY2tncm91bmRBY3RvciAoTWV0YS5EaXNwbGF5IGRpc3BsYXksIGludCBtb25pdG9y KTsKKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIE1ldGEuRGlzcGxheSBtZXRhX2Rp c3BsYXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJW05vQWNjZXNzb3JNZXRob2RdCisr CQlwdWJsaWMgaW50IG1vbml0b3IgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwl9CisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtYmFja2dyb3VuZC1jb250ZW50LmgiLCB0eXBl X2lkID0gIm1ldGFfYmFja2dyb3VuZF9jb250ZW50X2dldF90eXBlICgpIildCisrCXB1YmxpYyBj bGFzcyBCYWNrZ3JvdW5kQ29udGVudCA6IEdMaWIuT2JqZWN0LCBDbHV0dGVyLkNvbnRlbnQgewor KwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVk IEJhY2tncm91bmRDb250ZW50ICgpOworKwkJcHVibGljIHN0YXRpYyBDbHV0dGVyLkNvbnRlbnQg QG5ldyAoTWV0YS5EaXNwbGF5IGRpc3BsYXksIGludCBtb25pdG9yKTsKKyAJCXB1YmxpYyB2b2lk IHNldF9iYWNrZ3JvdW5kIChNZXRhLkJhY2tncm91bmQgYmFja2dyb3VuZCk7CisgCQlwdWJsaWMg dm9pZCBzZXRfZ3JhZGllbnQgKGJvb2wgZW5hYmxlZCwgaW50IGhlaWdodCwgZG91YmxlIHRvbmVf c3RhcnQpOworLQkJcHVibGljIHZvaWQgc2V0X21vbml0b3IgKGludCBtb25pdG9yKTsKKyAJCXB1 YmxpYyB2b2lkIHNldF92aWduZXR0ZSAoYm9vbCBlbmFibGVkLCBkb3VibGUgYnJpZ2h0bmVzcywg ZG91YmxlIHNoYXJwbmVzcyk7CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCXB1YmxpYyBNZXRh LkJhY2tncm91bmQgYmFja2dyb3VuZCB7IG93bmVkIGdldDsgc2V0OyB9CitAQCAtMjc3LDE0ICsy NzksMTQgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEu Q3Vyc29yVHJhY2tlciBnZXRfZm9yX2Rpc3BsYXkgKE1ldGEuRGlzcGxheSBkaXNwbGF5KTsKKyAJ CXB1YmxpYyB2b2lkIGdldF9ob3QgKG91dCBpbnQgeCwgb3V0IGludCB5KTsKKyAJCXB1YmxpYyB2 b2lkIGdldF9wb2ludGVyIChpbnQgeCwgaW50IHksIENsdXR0ZXIuTW9kaWZpZXJUeXBlIG1vZHMp OworKwkJcHVibGljIGJvb2wgZ2V0X3BvaW50ZXJfdmlzaWJsZSAoKTsKKyAJCXB1YmxpYyB1bm93 bmVkIENvZ2wuVGV4dHVyZSBnZXRfc3ByaXRlICgpOworIAkJcHVibGljIHZvaWQgc2V0X3BvaW50 ZXJfdmlzaWJsZSAoYm9vbCB2aXNpYmxlKTsKKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVi bGljIE1ldGEuQmFja2VuZCBiYWNrZW5kIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCXB1 YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfY2hhbmdlZCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oIiwgdHlwZV9pZCA9ICJt ZXRhX2RidXNfZGlzcGxheV9jb25maWdfc2tlbGV0b25fZ2V0X3R5cGUgKCkiKV0KKy0JcHVibGlj IGNsYXNzIERCdXNEaXNwbGF5Q29uZmlnU2tlbGV0b24gOiBHTGliLkRCdXNJbnRlcmZhY2VTa2Vs ZXRvbiwgR0xpYi5EQnVzSW50ZXJmYWNlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBEQnVzRGlzcGxheUNvbmZpZ1NrZWxldG9uICgp OworKwkJcHVibGljIHNpZ25hbCB2b2lkIGN1cnNvcl9tb3ZlZCAoZmxvYXQgeCwgZmxvYXQgeSk7 CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgdmlzaWJpbGl0eV9jaGFuZ2VkICgpOworIAl9CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Rpc3BsYXkuaCIsIHR5cGVfaWQgPSAibWV0 YV9kaXNwbGF5X2dldF90eXBlICgpIildCisgCXB1YmxpYyBjbGFzcyBEaXNwbGF5IDogR0xpYi5P YmplY3QgeworQEAgLTMwOSwzMiArMzExLDM5IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1Ymxp YyBib29sIGdldF9tb25pdG9yX2luX2Z1bGxzY3JlZW4gKGludCBtb25pdG9yKTsKKyAJCXB1Ymxp YyBpbnQgZ2V0X21vbml0b3JfaW5kZXhfZm9yX3JlY3QgKE1ldGEuUmVjdGFuZ2xlIHJlY3QpOwor IAkJcHVibGljIGludCBnZXRfbW9uaXRvcl9uZWlnaGJvcl9pbmRleCAoaW50IHdoaWNoX21vbml0 b3IsIE1ldGEuRGlzcGxheURpcmVjdGlvbiBkaXIpOworKwkJcHVibGljIGZsb2F0IGdldF9tb25p dG9yX3NjYWxlIChpbnQgbW9uaXRvcik7CisgCQlwdWJsaWMgaW50IGdldF9uX21vbml0b3JzICgp OworIAkJcHVibGljIHN0cmluZyBnZXRfcGFkX2FjdGlvbl9sYWJlbCAoQ2x1dHRlci5JbnB1dERl dmljZSBwYWQsIE1ldGEuUGFkQWN0aW9uVHlwZSBhY3Rpb25fdHlwZSwgdWludCBhY3Rpb25fbnVt YmVyKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X3ByaW1hcnlfbW9uaXRvciAoKTsKKysJCXB1YmxpYyB1 bm93bmVkIE1ldGEuU2VsZWN0aW9uIGdldF9zZWxlY3Rpb24gKCk7CisgCQlwdWJsaWMgdm9pZCBn ZXRfc2l6ZSAob3V0IGludCB3aWR0aCwgb3V0IGludCBoZWlnaHQpOworKwkJcHVibGljIHVub3du ZWQgTWV0YS5Tb3VuZFBsYXllciBnZXRfc291bmRfcGxheWVyICgpOworIAkJcHVibGljIHVub3du ZWQgTWV0YS5XaW5kb3cgZ2V0X3RhYl9jdXJyZW50IChNZXRhLlRhYkxpc3QgdHlwZSwgTWV0YS5X b3Jrc3BhY2Ugd29ya3NwYWNlKTsKKyAJCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBNZXRhLldpbmRv dz4gZ2V0X3RhYl9saXN0IChNZXRhLlRhYkxpc3QgdHlwZSwgTWV0YS5Xb3Jrc3BhY2U/IHdvcmtz cGFjZSk7CisgCQlwdWJsaWMgdW5vd25lZCBNZXRhLldpbmRvdyBnZXRfdGFiX25leHQgKE1ldGEu VGFiTGlzdCB0eXBlLCBNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UsIE1ldGEuV2luZG93PyB3aW5k b3csIGJvb2wgYmFja3dhcmQpOworIAkJcHVibGljIHVub3duZWQgTWV0YS5Xb3Jrc3BhY2VNYW5h Z2VyIGdldF93b3Jrc3BhY2VfbWFuYWdlciAoKTsKKy0JCXB1YmxpYyB1aW50IGdyYWJfYWNjZWxl cmF0b3IgKHN0cmluZyBhY2NlbGVyYXRvcik7CisrCQlwdWJsaWMgdWludCBncmFiX2FjY2VsZXJh dG9yIChzdHJpbmcgYWNjZWxlcmF0b3IsIE1ldGEuS2V5QmluZGluZ0ZsYWdzIGZsYWdzKTsKKyAJ CXB1YmxpYyBib29sIGlzX3BvaW50ZXJfZW11bGF0aW5nX3NlcXVlbmNlIChDbHV0dGVyLkV2ZW50 U2VxdWVuY2U/IHNlcXVlbmNlKTsKKyAJCXB1YmxpYyBib29sIHJlbW92ZV9rZXliaW5kaW5nIChz dHJpbmcgbmFtZSk7CisgCQlwdWJsaWMgdm9pZCByZXF1ZXN0X3BhZF9vc2QgKENsdXR0ZXIuSW5w dXREZXZpY2UgcGFkLCBib29sIGVkaXRpb25fbW9kZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfY3Vy c29yIChNZXRhLkN1cnNvciBjdXJzb3IpOworKwkJcHVibGljIHZvaWQgc2V0X2lucHV0X2ZvY3Vz IChNZXRhLldpbmRvdyB3aW5kb3csIGJvb2wgZm9jdXNfZnJhbWUsIHVpbnQzMiB0aW1lc3RhbXAp OworIAkJcHVibGljIEdMaWIuU0xpc3Q8d2VhayBNZXRhLldpbmRvdz4gc29ydF93aW5kb3dzX2J5 X3N0YWNraW5nIChHTGliLlNMaXN0PE1ldGEuV2luZG93PiB3aW5kb3dzKTsKKyAJCXB1YmxpYyBi b29sIHN1cHBvcnRzX2V4dGVuZGVkX2JhcnJpZXJzICgpOworIAkJcHVibGljIHZvaWQgdW5mcmVl emVfa2V5Ym9hcmQgKHVpbnQzMiB0aW1lc3RhbXApOworIAkJcHVibGljIGJvb2wgdW5ncmFiX2Fj Y2VsZXJhdG9yICh1aW50IGFjdGlvbl9pZCk7CisgCQlwdWJsaWMgdm9pZCB1bmdyYWJfa2V5Ym9h cmQgKHVpbnQzMiB0aW1lc3RhbXApOworKwkJcHVibGljIHZvaWQgdW5zZXRfaW5wdXRfZm9jdXMg KHVpbnQzMiB0aW1lc3RhbXApOworIAkJcHVibGljIGJvb2wgeHNlcnZlcl90aW1lX2lzX2JlZm9y ZSAodWludDMyIHRpbWUxLCB1aW50MzIgdGltZTIpOworIAkJcHVibGljIE1ldGEuV2luZG93IGZv Y3VzX3dpbmRvdyB7IGdldDsgfQorLQkJcHVibGljIHNpZ25hbCB2b2lkIGFjY2VsZXJhdG9yX2Fj dGl2YXRlZCAodWludCBvYmplY3QsIHVpbnQgcDAsIHVpbnQgcDEpOworKwkJcHVibGljIHNpZ25h bCB2b2lkIGFjY2VsZXJhdG9yX2FjdGl2YXRlZCAodWludCBvYmplY3QsIENsdXR0ZXIuSW5wdXRE ZXZpY2UgcDAsIHVpbnQgcDEpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGNsb3NpbmcgKCk7Cisg CQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29yX3VwZGF0ZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFs IHZvaWQgZ2xfdmlkZW9fbWVtb3J5X3B1cmdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBn cmFiX29wX2JlZ2luIChNZXRhLkRpc3BsYXkgb2JqZWN0LCBNZXRhLldpbmRvdyBwMCwgTWV0YS5H cmFiT3AgcDEpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGdyYWJfb3BfZW5kIChNZXRhLkRpc3Bs YXkgb2JqZWN0LCBNZXRhLldpbmRvdyBwMCwgTWV0YS5HcmFiT3AgcDEpOworIAkJcHVibGljIHNp Z25hbCB2b2lkIGluX2Z1bGxzY3JlZW5fY2hhbmdlZCAoKTsKKysJCXB1YmxpYyBzaWduYWwgYm9v bCBpbml0X3hzZXJ2ZXIgKEdMaWIuVGFzayBvYmplY3QpOworIAkJcHVibGljIHNpZ25hbCBib29s IG1vZGlmaWVyc19hY2NlbGVyYXRvcl9hY3RpdmF0ZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZv aWQgb3ZlcmxheV9rZXkgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgcGFkX21vZGVfc3dpdGNo IChDbHV0dGVyLklucHV0RGV2aWNlIG9iamVjdCwgdWludCBwMCwgdWludCBwMSk7CitAQCAtMzQ1 LDcgKzM1NCw2IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzaWduYWwgYm9vbCBzaG93 X3Jlc2l6ZV9wb3B1cCAoYm9vbCBvYmplY3QsIE1ldGEuUmVjdGFuZ2xlIHAwLCBpbnQgcDEsIGlu dCBwMik7CisgCQlwdWJsaWMgc2lnbmFsIGJvb2wgc2hvd19yZXN0YXJ0X21lc3NhZ2UgKHN0cmlu Zz8gbWVzc2FnZSk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgc2hvd2luZ19kZXNrdG9wX2NoYW5n ZWQgKCk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgc3RhcnR1cF9zZXF1ZW5jZV9jaGFuZ2VkICh2 b2lkKiBvYmplY3QpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19jcmVhdGVkIChNZXRh LldpbmRvdyBvYmplY3QpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHdpbmRvd19kZW1hbmRzX2F0 dGVudGlvbiAoTWV0YS5XaW5kb3cgb2JqZWN0KTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB3aW5k b3dfZW50ZXJlZF9tb25pdG9yIChpbnQgb2JqZWN0LCBNZXRhLldpbmRvdyBwMCk7CitAQCAtMzU0 LDYgKzM2Miw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jr YXJlYXNfY2hhbmdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB4MTFfZGlzcGxheV9jbG9z aW5nICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIHgxMV9kaXNwbGF5X29wZW5lZCAoKTsKKysJ CXB1YmxpYyBzaWduYWwgdm9pZCB4MTFfZGlzcGxheV9zZXR1cCAoKTsKKyAJfQorIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWRuZC5oIiwgdHlwZV9pZCA9ICJtZXRhX2Ru ZF9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgY2xhc3MgRG5kIDogR0xpYi5PYmplY3QgeworQEAg LTM2Myw3ICszNzIsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQg ZG5kX2xlYXZlICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIGRuZF9wb3NpdGlvbl9jaGFuZ2Ug KGludCBvYmplY3QsIGludCBwMCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvY29tbW9uLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtDb21w YWN0XQorIAlwdWJsaWMgY2xhc3MgRnJhbWUgeworIAl9CitAQCAtMzc0LDEzICszODMsMTIgQEAg bmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHVpbnQgYWRkX2lkbGVfd2F0Y2ggKHVpbnQ2NCBp bnRlcnZhbF9tc2VjLCBvd25lZCBNZXRhLklkbGVNb25pdG9yV2F0Y2hGdW5jPyBjYWxsYmFjayk7 CisgCQlwdWJsaWMgdWludCBhZGRfdXNlcl9hY3RpdmVfd2F0Y2ggKG93bmVkIE1ldGEuSWRsZU1v bml0b3JXYXRjaEZ1bmM/IGNhbGxiYWNrKTsKKyAJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBNZXRh LklkbGVNb25pdG9yIGdldF9jb3JlICgpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIE1ldGEu SWRsZU1vbml0b3IgZ2V0X2Zvcl9kZXZpY2UgKGludCBkZXZpY2VfaWQpOworIAkJcHVibGljIGlu dDY0IGdldF9pZGxldGltZSAoKTsKKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV93YXRjaCAodWludCBp ZCk7CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBpbnQgZGV2aWNlX2lkIHsgZ2V0 OyBjb25zdHJ1Y3Q7IH0KKysJCXB1YmxpYyBDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSB7IG93 bmVkIGdldDsgY29uc3RydWN0OyB9CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEva2V5YmluZGluZ3MuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJl ZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gIm1ldGFfa2V5X2JpbmRpbmdf Z2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94 ZWRfZnJlZSIsIHR5cGVfaWQgPSAibWV0YV9rZXlfYmluZGluZ19nZXRfdHlwZSAoKSIpXQorIAlb Q29tcGFjdF0KKyAJcHVibGljIGNsYXNzIEtleUJpbmRpbmcgeworIAkJcHVibGljIHVpbnQgZ2V0 X21hc2sgKCk7CitAQCAtMzkxLDggKzM5OSwyMSBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlbQ0Nv ZGUgKGNuYW1lID0gIm1ldGFfa2V5YmluZGluZ3Nfc2V0X2N1c3RvbV9oYW5kbGVyIildCisgCQlw dWJsaWMgc3RhdGljIGJvb2wgc2V0X2N1c3RvbV9oYW5kbGVyIChzdHJpbmcgbmFtZSwgb3duZWQg TWV0YS5LZXlIYW5kbGVyRnVuYz8gaGFuZGxlcik7CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWV0YS1sYXVuY2gtY29udGV4dC5oIiwgdHlwZV9pZCA9ICJtZXRhX2xh dW5jaF9jb250ZXh0X2dldF90eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBMYXVuY2hDb250ZXh0 IDogR0xpYi5BcHBMYXVuY2hDb250ZXh0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5j dGlvbiA9IGZhbHNlKV0KKysJCXByb3RlY3RlZCBMYXVuY2hDb250ZXh0ICgpOworKwkJcHVibGlj IHZvaWQgc2V0X3RpbWVzdGFtcCAodWludDMyIHRpbWVzdGFtcCk7CisrCQlwdWJsaWMgdm9pZCBz ZXRfd29ya3NwYWNlIChNZXRhLldvcmtzcGFjZSB3b3Jrc3BhY2UpOworKwkJW05vQWNjZXNzb3JN ZXRob2RdCisrCQlwdWJsaWMgTWV0YS5EaXNwbGF5IGRpc3BsYXkgeyBvd25lZCBnZXQ7IGNvbnN0 cnVjdDsgfQorKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgdWludCB0aW1lc3RhbXAg eyBnZXQ7IHNldDsgfQorKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgTWV0YS5Xb3Jr c3BhY2Ugd29ya3NwYWNlIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJfQorIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLW1vbml0b3ItbWFuYWdlci5oIiwgdHlwZV9pZCA9ICJt ZXRhX21vbml0b3JfbWFuYWdlcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgYWJzdHJhY3QgY2xh c3MgTW9uaXRvck1hbmFnZXIgOiBNZXRhLkRCdXNEaXNwbGF5Q29uZmlnU2tlbGV0b24sIEdMaWIu REJ1c0ludGVyZmFjZSwgR0xpYi5EQnVzSW50ZXJmYWNlIHsKKysJcHVibGljIGNsYXNzIE1vbml0 b3JNYW5hZ2VyIDogR0xpYi5PYmplY3QgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0 aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIE1vbml0b3JNYW5hZ2VyICgpOworIAkJcHVibGlj IGJvb2wgY2FuX3N3aXRjaF9jb25maWcgKCk7CitAQCAtNDA3LDYgKzQyOCw3IEBAIG5hbWVzcGFj ZSBNZXRhIHsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBjb25maXJtX2Rpc3BsYXlfY2hhbmdlICgp OworIAkJcHVibGljIHNpZ25hbCB2b2lkIG1vbml0b3JzX2NoYW5nZWQgKCk7CisgCQlwdWJsaWMg c2lnbmFsIHZvaWQgbW9uaXRvcnNfY2hhbmdlZF9pbnRlcm5hbCAoKTsKKysJCXB1YmxpYyBzaWdu YWwgdm9pZCBwb3dlcl9zYXZlX21vZGVfY2hhbmdlZCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXBsdWdpbi5oIiwgdHlwZV9pZCA9ICJtZXRhX3BsdWdp bl9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgUGx1Z2luIDogR0xpYi5P YmplY3QgeworQEAgLTQzMCw2ICs0NTIsOCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMg dmlydHVhbCB2b2lkIGtpbGxfc3dpdGNoX3dvcmtzcGFjZSAoKTsKKyAJCVtOb1dyYXBwZXJdCisg CQlwdWJsaWMgdmlydHVhbCB2b2lkIGtpbGxfd2luZG93X2VmZmVjdHMgKE1ldGEuV2luZG93QWN0 b3IgYWN0b3IpOworKwkJW05vV3JhcHBlcl0KKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbG9jYXRl X3BvaW50ZXIgKCk7CisgCQlwdWJsaWMgc3RhdGljIHZvaWQgbWFuYWdlcl9zZXRfcGx1Z2luX3R5 cGUgKEdMaWIuVHlwZSBndHlwZSk7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwg dm9pZCBtYXAgKE1ldGEuV2luZG93QWN0b3IgYWN0b3IpOworQEAgLTQ2NSwyNiArNDg5LDU2IEBA IG5hbWVzcGFjZSBNZXRhIHsKKyAJcHVibGljIGNsYXNzIFJlbW90ZUFjY2Vzc0NvbnRyb2xsZXIg OiBHTGliLk9iamVjdCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSldCisgCQlwcm90ZWN0ZWQgUmVtb3RlQWNjZXNzQ29udHJvbGxlciAoKTsKKysJCXB1YmxpYyB2 b2lkIGluaGliaXRfcmVtb3RlX2FjY2VzcyAoKTsKKysJCXB1YmxpYyB2b2lkIHVuaW5oaWJpdF9y ZW1vdGVfYWNjZXNzICgpOworIAkJcHVibGljIHNpZ25hbCB2b2lkIG5ld19oYW5kbGUgKE1ldGEu UmVtb3RlQWNjZXNzSGFuZGxlIG9iamVjdCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWV0YS1yZW1vdGUtYWNjZXNzLWNvbnRyb2xsZXIuaCIsIHR5cGVfaWQgPSAi bWV0YV9yZW1vdGVfYWNjZXNzX2hhbmRsZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgY2xhc3Mg UmVtb3RlQWNjZXNzSGFuZGxlIDogR0xpYi5PYmplY3QgeworIAkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFJlbW90ZUFjY2Vzc0hhbmRsZSAo KTsKKysJCXB1YmxpYyBib29sIGdldF9kaXNhYmxlX2FuaW1hdGlvbnMgKCk7CisgCQlwdWJsaWMg dmlydHVhbCB2b2lkIHN0b3AgKCk7CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBi b29sIGlzX3JlY29yZGluZyB7IGdldDsgY29uc3RydWN0OyB9CisgCQlwdWJsaWMgc2lnbmFsIHZv aWQgc3RvcHBlZCAoKTsKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9t YWluLmgiLCB0eXBlX2lkID0gIm1ldGFfc2VsZWN0aW9uX2dldF90eXBlICgpIildCisrCXB1Ymxp YyBjbGFzcyBTZWxlY3Rpb24gOiBHTGliLk9iamVjdCB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwdWJsaWMgU2VsZWN0aW9uIChNZXRhLkRpc3BsYXkg ZGlzcGxheSk7CisrCQlwdWJsaWMgR0xpYi5MaXN0PHN0cmluZz4gZ2V0X21pbWV0eXBlcyAoTWV0 YS5TZWxlY3Rpb25UeXBlIHNlbGVjdGlvbl90eXBlKTsKKysJCXB1YmxpYyB2b2lkIHNldF9vd25l ciAoTWV0YS5TZWxlY3Rpb25UeXBlIHNlbGVjdGlvbl90eXBlLCBNZXRhLlNlbGVjdGlvblNvdXJj ZSBvd25lcik7CisrCQlwdWJsaWMgYXN5bmMgYm9vbCB0cmFuc2Zlcl9hc3luYyAoTWV0YS5TZWxl Y3Rpb25UeXBlIHNlbGVjdGlvbl90eXBlLCBzdHJpbmcgbWltZXR5cGUsIHNzaXplX3Qgc2l6ZSwg R0xpYi5PdXRwdXRTdHJlYW0gb3V0cHV0LCBHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSkg dGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgdm9pZCB1bnNldF9vd25lciAoTWV0YS5TZWxl Y3Rpb25UeXBlIHNlbGVjdGlvbl90eXBlLCBNZXRhLlNlbGVjdGlvblNvdXJjZSBvd25lcik7Cisr CQlwdWJsaWMgc2lnbmFsIHZvaWQgb3duZXJfY2hhbmdlZCAodWludCBvYmplY3QsIE1ldGEuU2Vs ZWN0aW9uU291cmNlIHAwKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiLCB0eXBlX2lkID0gIm1ldGFfc2VsZWN0aW9uX3NvdXJjZV9nZXRfdHlwZSAoKSIp XQorKwlwdWJsaWMgY2xhc3MgU2VsZWN0aW9uU291cmNlIDogR0xpYi5PYmplY3QgeworKwkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIFNlbGVj dGlvblNvdXJjZSAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIEdMaWIuTGlzdDxzdHJpbmc+IGdldF9t aW1ldHlwZXMgKCk7CisrCQlwdWJsaWMgYm9vbCBpc19hY3RpdmUgKCk7CisrCQlwdWJsaWMgdmly dHVhbCBhc3luYyBHTGliLklucHV0U3RyZWFtIHJlYWRfYXN5bmMgKHN0cmluZyBtaW1ldHlwZSwg R0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFibGUpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVi bGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgYWN0aXZhdGVkICgpOworKwkJcHVibGljIHZpcnR1YWwg c2lnbmFsIHZvaWQgZGVhY3RpdmF0ZWQgKCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIiwgdHlwZV9pZCA9ICJtZXRhX3NlbGVjdGlvbl9zb3VyY2VfbWVt b3J5X2dldF90eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBTZWxlY3Rpb25Tb3VyY2VNZW1vcnkg OiBNZXRhLlNlbGVjdGlvblNvdXJjZSB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSwgdHlwZSA9ICJNZXRhU2VsZWN0aW9uU291cmNlKiIpXQorKwkJcHVibGljIFNl bGVjdGlvblNvdXJjZU1lbW9yeSAoc3RyaW5nIG1pbWV0eXBlLCBHTGliLkJ5dGVzIGNvbnRlbnQp OworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtc2V0dGluZ3Mu aCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbQ29tcGFjdF0KKyAJcHVibGljIGNsYXNzIFNl dHRpbmdzIHsKKyAJCXB1YmxpYyBpbnQgZ2V0X2ZvbnRfZHBpICgpOworIAkJcHVibGljIGludCBn ZXRfdWlfc2NhbGluZ19mYWN0b3IgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oIiwgcmVmX2Z1bmN0aW9uID0gIm1ldGFfc2hh ZG93X3JlZiIsIHR5cGVfaWQgPSAibWV0YV9zaGFkb3dfZ2V0X3R5cGUgKCkiLCB1bnJlZl9mdW5j dGlvbiA9ICJtZXRhX3NoYWRvd191bnJlZiIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tYWluLmgiLCByZWZfZnVuY3Rpb24gPSAibWV0YV9zaGFkb3dfcmVmIiwgdHlwZV9p ZCA9ICJtZXRhX3NoYWRvd19nZXRfdHlwZSAoKSIsIHVucmVmX2Z1bmN0aW9uID0gIm1ldGFfc2hh ZG93X3VucmVmIildCisgCVtDb21wYWN0XQorIAlwdWJsaWMgY2xhc3MgU2hhZG93IHsKKyAJCXB1 YmxpYyB2b2lkIGdldF9ib3VuZHMgKGludCB3aW5kb3dfeCwgaW50IHdpbmRvd195LCBpbnQgd2lu ZG93X3dpZHRoLCBpbnQgd2luZG93X2hlaWdodCwgQ2Fpcm8uUmVjdGFuZ2xlSW50IGJvdW5kcyk7 CistCQlwdWJsaWMgdm9pZCBwYWludCAoaW50IHdpbmRvd194LCBpbnQgd2luZG93X3ksIGludCB3 aW5kb3dfd2lkdGgsIGludCB3aW5kb3dfaGVpZ2h0LCB1aW50OCBvcGFjaXR5LCBDYWlyby5SZWdp b24/IGNsaXAsIGJvb2wgY2xpcF9zdHJpY3RseSk7CisrCQlwdWJsaWMgdm9pZCBwYWludCAoQ29n bC5GcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlciwgaW50IHdpbmRvd194LCBpbnQgd2luZG93X3ksIGlu dCB3aW5kb3dfd2lkdGgsIGludCB3aW5kb3dfaGVpZ2h0LCB1aW50OCBvcGFjaXR5LCBDYWlyby5S ZWdpb24/IGNsaXAsIGJvb2wgY2xpcF9zdHJpY3RseSk7CisgCQlwdWJsaWMgTWV0YS5TaGFkb3cg QHJlZiAoKTsKKyAJCXB1YmxpYyB2b2lkIHVucmVmICgpOworIAl9CitAQCAtNDk5LDI4ICs1NTMs NzQgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIHNpZ25hbCB2b2lkIGNoYW5nZWQgKCk7 CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS1zaGFwZWQtdGV4 dHVyZS5oIiwgdHlwZV9pZCA9ICJtZXRhX3NoYXBlZF90ZXh0dXJlX2dldF90eXBlICgpIildCist CXB1YmxpYyBjbGFzcyBTaGFwZWRUZXh0dXJlIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVu dG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlw dGFibGUgeworKwlwdWJsaWMgY2xhc3MgU2hhcGVkVGV4dHVyZSA6IEdMaWIuT2JqZWN0LCBDbHV0 dGVyLkNvbnRlbnQgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2Up XQorIAkJcHJvdGVjdGVkIFNoYXBlZFRleHR1cmUgKCk7CistCQlwdWJsaWMgQ2Fpcm8uU3VyZmFj ZSBnZXRfaW1hZ2UgKENhaXJvLlJlY3RhbmdsZUludCBjbGlwKTsKKysJCXB1YmxpYyBDYWlyby5T dXJmYWNlPyBnZXRfaW1hZ2UgKENhaXJvLlJlY3RhbmdsZUludD8gY2xpcCk7CisgCQlwdWJsaWMg dW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X3RleHR1cmUgKCk7CisgCQlwdWJsaWMgdm9pZCBzZXRf Y3JlYXRlX21pcG1hcHMgKGJvb2wgY3JlYXRlX21pcG1hcHMpOworIAkJcHVibGljIHZvaWQgc2V0 X21hc2tfdGV4dHVyZSAoQ29nbC5UZXh0dXJlIG1hc2tfdGV4dHVyZSk7CistCQlwdWJsaWMgdm9p ZCBzZXRfb3BhcXVlX3JlZ2lvbiAob3duZWQgQ2Fpcm8uUmVnaW9uIG9wYXF1ZV9yZWdpb24pOwor LQkJcHVibGljIGJvb2wgdXBkYXRlX2FyZWEgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQg aGVpZ2h0KTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBzaXplX2NoYW5nZWQgKCk7CisgCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci1tdXR0ZXIuaCIsIHR5 cGVfaWQgPSAibWV0YV9zdGFnZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9tZXRhLXNvdW5kLXBsYXllci5oIiwgdHlwZV9pZCA9ICJtZXRhX3NvdW5k X3BsYXllcl9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgU291bmRQbGF5ZXIgOiBHTGli Lk9iamVjdCB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisr CQlwcm90ZWN0ZWQgU291bmRQbGF5ZXIgKCk7CisrCQlwdWJsaWMgdm9pZCBwbGF5X2Zyb21fZmls ZSAoR0xpYi5GaWxlIGZpbGUsIHN0cmluZyBkZXNjcmlwdGlvbiwgR0xpYi5DYW5jZWxsYWJsZT8g Y2FuY2VsbGFibGUgPSBudWxsKTsKKysJCXB1YmxpYyB2b2lkIHBsYXlfZnJvbV90aGVtZSAoc3Ry aW5nIG5hbWUsIHN0cmluZyBkZXNjcmlwdGlvbiwgR0xpYi5DYW5jZWxsYWJsZT8gY2FuY2VsbGFi bGUgPSBudWxsKTsKKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRh LXN0YWdlLmgiLCB0eXBlX2lkID0gIm1ldGFfc3RhZ2VfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGlj IGNsYXNzIFN0YWdlIDogQ2x1dHRlci5TdGFnZSwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFu aW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworIAkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFN0YWdl ICgpOworIAkJcHVibGljIHN0YXRpYyBib29sIGlzX2ZvY3VzZWQgKE1ldGEuRGlzcGxheSBkaXNw bGF5KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBhY3RvcnNfcGFpbnRlZCAoKTsKKysJfQorKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXN0YXJ0dXAtbm90aWZpY2F0aW9u LmgiLCB0eXBlX2lkID0gIm1ldGFfc3RhcnR1cF9ub3RpZmljYXRpb25fZ2V0X3R5cGUgKCkiKV0K KysJcHVibGljIGNsYXNzIFN0YXJ0dXBOb3RpZmljYXRpb24gOiBHTGliLk9iamVjdCB7CisrCQlb Q0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgU3Rh cnR1cE5vdGlmaWNhdGlvbiAoKTsKKysJCXB1YmxpYyBNZXRhLkxhdW5jaENvbnRleHQgY3JlYXRl X2xhdW5jaGVyICgpOworKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgTWV0YS5EaXNw bGF5IGRpc3BsYXkgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIHNpZ25hbCB2 b2lkIGNoYW5nZWQgKHZvaWQqIG9iamVjdCk7CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIiwgdHlwZV9pZCA9ICJtZXRhX3N0YXJ0dXBfc2VxdWVuY2VfZ2V0 X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIFN0YXJ0dXBTZXF1ZW5jZSA6IEdMaWIuT2JqZWN0 IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXByb3Rl Y3RlZCBTdGFydHVwU2VxdWVuY2UgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2Fw cGxpY2F0aW9uX2lkICgpOworKwkJcHVibGljIGJvb2wgZ2V0X2NvbXBsZXRlZCAoKTsKKysJCXB1 YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfaWNvbl9uYW1lICgpOworKwkJcHVibGljIHVub3duZWQg c3RyaW5nIGdldF9pZCAoKTsKKysJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfbmFtZSAoKTsK KysJCXB1YmxpYyB1aW50NjQgZ2V0X3RpbWVzdGFtcCAoKTsKKysJCXB1YmxpYyB1bm93bmVkIHN0 cmluZyBnZXRfd21jbGFzcyAoKTsKKysJCXB1YmxpYyBpbnQgZ2V0X3dvcmtzcGFjZSAoKTsKKysJ CXB1YmxpYyBzdHJpbmcgYXBwbGljYXRpb25faWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVi bGljIHN0cmluZyBpY29uX25hbWUgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIHN0cmlu ZyBpZCB7IGdldDsgY29uc3RydWN0OyB9CisrCQlwdWJsaWMgc3RyaW5nIG5hbWUgeyBnZXQ7IGNv bnN0cnVjdDsgfQorKwkJcHVibGljIHVpbnQ2NCB0aW1lc3RhbXAgeyBnZXQ7IGNvbnN0cnVjdDsg fQorKwkJcHVibGljIHN0cmluZyB3bWNsYXNzIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCXB1Ymxp YyBpbnQgd29ya3NwYWNlIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCVtIYXNFbWl0dGVyXQorKwkJ cHVibGljIHNpZ25hbCB2b2lkIGNvbXBsZXRlICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL3RoZW1lLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW0NvbXBh Y3RdCisgCXB1YmxpYyBjbGFzcyBUaGVtZSB7CisgCQlwdWJsaWMgdm9pZCBmcmVlICgpOworIAl9 CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtd2F5bGFuZC1jbGllbnQu aCIsIHR5cGVfaWQgPSAibWV0YV93YXlsYW5kX2NsaWVudF9nZXRfdHlwZSAoKSIpXQorKwlwdWJs aWMgY2xhc3MgV2F5bGFuZENsaWVudCA6IEdMaWIuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXB1YmxpYyBXYXlsYW5kQ2xpZW50IChHTGli LlN1YnByb2Nlc3NMYXVuY2hlciBsYXVuY2hlcikgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJs aWMgdm9pZCBoaWRlX2Zyb21fd2luZG93X2xpc3QgKE1ldGEuV2luZG93IHdpbmRvdyk7CisrCQlw dWJsaWMgYm9vbCBvd25zX3dpbmRvdyAoTWV0YS5XaW5kb3cgd2luZG93KTsKKysJCXB1YmxpYyB2 b2lkIHNob3dfaW5fd2luZG93X2xpc3QgKE1ldGEuV2luZG93IHdpbmRvdyk7CisrCQlwdWJsaWMg R0xpYi5TdWJwcm9jZXNzIHNwYXdudiAoTWV0YS5EaXNwbGF5IGRpc3BsYXksIFtDQ29kZSAoYXJy YXlfbGVuZ3RoID0gZmFsc2UsIGFycmF5X251bGxfdGVybWluYXRlZCA9IHRydWUpXSBzdHJpbmdb XSBhcmd2KSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS93aW5kb3cuaCIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfZ2V0X3R5cGUgKCki KV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIFdpbmRvdyA6IEdMaWIuT2JqZWN0IHsKKyAJCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KK0BAIC01NDcsNiArNjQ3LDcg QEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIGZyYW1lX3JlY3Rf dG9fY2xpZW50X3JlY3QgKE1ldGEuUmVjdGFuZ2xlIGZyYW1lX3JlY3QpOworIAkJcHVibGljIE1l dGEuUmVjdGFuZ2xlIGdldF9idWZmZXJfcmVjdCAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIHN0cmlu ZyBnZXRfY2xpZW50X21hY2hpbmUgKCk7CisrCQlwdWJsaWMgTWV0YS5XaW5kb3dDbGllbnRUeXBl IGdldF9jbGllbnRfdHlwZSAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIEdMaWIuT2JqZWN0IGdldF9j b21wb3NpdG9yX3ByaXZhdGUgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2Rlc2Ny aXB0aW9uICgpOworIAkJcHVibGljIHVub3duZWQgTWV0YS5EaXNwbGF5IGdldF9kaXNwbGF5ICgp OworQEAgLTU2MSw2ICs2NjIsNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlwdWJsaWMgdW5vd25l ZCBzdHJpbmcgZ2V0X2d0a191bmlxdWVfYnVzX25hbWUgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBz dHJpbmcgZ2V0X2d0a193aW5kb3dfb2JqZWN0X3BhdGggKCk7CisgCQlwdWJsaWMgYm9vbCBnZXRf aWNvbl9nZW9tZXRyeSAob3V0IE1ldGEuUmVjdGFuZ2xlIHJlY3QpOworKwkJcHVibGljIHVpbnQ2 NCBnZXRfaWQgKCk7CisgCQlwdWJsaWMgTWV0YS5TdGFja0xheWVyIGdldF9sYXllciAoKTsKKyAJ CXB1YmxpYyBNZXRhLk1heGltaXplRmxhZ3MgZ2V0X21heGltaXplZCAoKTsKKyAJCXB1YmxpYyBp bnQgZ2V0X21vbml0b3IgKCk7CitAQCAtNjEwLDggKzcxMiw2IEBAIG5hbWVzcGFjZSBNZXRhIHsK KyAJCXB1YmxpYyB2b2lkIG1vdmVfcmVzaXplX2ZyYW1lIChib29sIHVzZXJfb3AsIGludCByb290 X3hfbncsIGludCByb290X3lfbncsIGludCB3LCBpbnQgaCk7CisgCQlwdWJsaWMgdm9pZCBtb3Zl X3RvX21vbml0b3IgKGludCBtb25pdG9yKTsKKyAJCXB1YmxpYyB2b2lkIHJhaXNlICgpOworLQkJ cHVibGljIGJvb2wgcmVxdWVzdGVkX2J5cGFzc19jb21wb3NpdG9yICgpOworLQkJcHVibGljIGJv b2wgcmVxdWVzdGVkX2RvbnRfYnlwYXNzX2NvbXBvc2l0b3IgKCk7CisgCQlwdWJsaWMgdm9pZCBz ZXRfY29tcG9zaXRvcl9wcml2YXRlIChHTGliLk9iamVjdCBwcml2KTsKKyAJCXB1YmxpYyB2b2lk IHNldF9kZW1hbmRzX2F0dGVudGlvbiAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9pY29uX2dlb21l dHJ5IChNZXRhLlJlY3RhbmdsZT8gcmVjdCk7CitAQCAtNjcyLDI0ICs3NzIsMjUgQEAgbmFtZXNw YWNlIE1ldGEgeworIAkJcHVibGljIHNpZ25hbCB2b2lkIHNob3duICgpOworIAkJcHVibGljIHNp Z25hbCB2b2lkIHNpemVfY2hhbmdlZCAoKTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB1bm1hbmFn ZWQgKCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgdW5tYW5hZ2luZyAoKTsKKyAJCXB1YmxpYyBz aWduYWwgdm9pZCB3b3Jrc3BhY2VfY2hhbmdlZCAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9tZXRhLXdpbmRvdy1hY3Rvci5oIiwgdHlwZV9pZCA9ICJtZXRhX3dp bmRvd19hY3Rvcl9nZXRfdHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgV2luZG93QWN0b3IgOiBD bHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRl ci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CisrCXB1YmxpYyBhYnN0cmFjdCBjbGFz cyBXaW5kb3dBY3RvciA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5B bmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKyAJCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBXaW5k b3dBY3RvciAoKTsKKysJCXB1YmxpYyB2b2lkIGZyZWV6ZSAoKTsKKysJCXB1YmxpYyBDYWlyby5T dXJmYWNlPyBnZXRfaW1hZ2UgKENhaXJvLlJlY3RhbmdsZUludD8gY2xpcCk7CisgCQlwdWJsaWMg dW5vd25lZCBNZXRhLldpbmRvdyBnZXRfbWV0YV93aW5kb3cgKCk7CistCQlwdWJsaWMgdW5vd25l ZCBDbHV0dGVyLkFjdG9yIGdldF90ZXh0dXJlICgpOworLQkJcHVibGljIFguV2luZG93IGdldF94 X3dpbmRvdyAoKTsKKysJCXB1YmxpYyB1bm93bmVkIE1ldGEuU2hhcGVkVGV4dHVyZSBnZXRfdGV4 dHVyZSAoKTsKKyAJCXB1YmxpYyBib29sIGlzX2Rlc3Ryb3llZCAoKTsKKyAJCXB1YmxpYyB2b2lk IHN5bmNfdmlzaWJpbGl0eSAoKTsKKysJCXB1YmxpYyB2b2lkIHRoYXcgKCk7CisgCQlwdWJsaWMg TWV0YS5XaW5kb3cgbWV0YV93aW5kb3cgeyBnZXQ7IGNvbnN0cnVjdDsgfQorLQkJW05vQWNjZXNz b3JNZXRob2RdCistCQlwdWJsaWMgc3RyaW5nIHNoYWRvd19jbGFzcyB7IG93bmVkIGdldDsgc2V0 OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBNZXRhLlNoYWRvd01vZGUgc2hh ZG93X21vZGUgeyBnZXQ7IHNldDsgfQorKwkJcHVibGljIHNpZ25hbCB2b2lkIGRhbWFnZWQgKCk7 CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgZWZmZWN0c19jb21wbGV0ZWQgKCk7CisgCQlwdWJsaWMg c2lnbmFsIHZvaWQgZmlyc3RfZnJhbWUgKCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgdGhhd2Vk ICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtd2luZG93 LWdyb3VwLmgiLCB0eXBlX2lkID0gIm1ldGFfd2luZG93X2dyb3VwX2dldF90eXBlICgpIildCisg CXB1YmxpYyBjbGFzcyBXaW5kb3dHcm91cCA6IENsdXR0ZXIuQWN0b3IsIEF0ay5JbXBsZW1lbnRv ciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRh YmxlIHsKK0BAIC03MjAsNyArODIxLDkgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJcHVibGljIE1l dGEuUmVjdGFuZ2xlIGdldF93b3JrX2FyZWFfZm9yX21vbml0b3IgKGludCB3aGljaF9tb25pdG9y KTsKKyAJCXB1YmxpYyBpbnQgaW5kZXggKCk7CisgCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgTWV0 YS5XaW5kb3c+IGxpc3Rfd2luZG93cyAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9idWlsdGluX3N0 cnV0cyAoR0xpYi5TTGlzdDxNZXRhLlN0cnV0PiBzdHJ1dHMpOworKwkJcHVibGljIHZvaWQgc2V0 X2J1aWx0aW5fc3RydXRzIChHTGliLlNMaXN0PE1ldGEuU3RydXQ/PiBzdHJ1dHMpOworKwkJW05v QWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMgYm9vbCBhY3RpdmUgeyBnZXQ7IH0KKyAJCVtOb0Fj Y2Vzc29yTWV0aG9kXQorIAkJcHVibGljIHVpbnQgbl93aW5kb3dzIHsgZ2V0OyB9CisgCQlbTm9B Y2Nlc3Nvck1ldGhvZF0KK0BAIC03MzYsMjcgKzgzOSwzMyBAQCBuYW1lc3BhY2UgTWV0YSB7Cisg CQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFjZSBnZXRfYWN0aXZlX3dvcmtzcGFjZSAoKTsK KyAJCXB1YmxpYyBpbnQgZ2V0X2FjdGl2ZV93b3Jrc3BhY2VfaW5kZXggKCk7CisgCQlwdWJsaWMg aW50IGdldF9uX3dvcmtzcGFjZXMgKCk7CistCQlwdWJsaWMgdW5vd25lZCBNZXRhLldvcmtzcGFj ZSBnZXRfd29ya3NwYWNlX2J5X2luZGV4IChpbnQgaW5kZXgpOworKwkJcHVibGljIHVub3duZWQg TWV0YS5Xb3Jrc3BhY2U/IGdldF93b3Jrc3BhY2VfYnlfaW5kZXggKGludCBpbmRleCk7CisgCQlw dWJsaWMgdm9pZCBvdmVycmlkZV93b3Jrc3BhY2VfbGF5b3V0IChNZXRhLkRpc3BsYXlDb3JuZXIg c3RhcnRpbmdfY29ybmVyLCBib29sIHZlcnRpY2FsX2xheW91dCwgaW50IG5fcm93cywgaW50IG5f Y29sdW1ucyk7CisgCQlwdWJsaWMgdm9pZCByZW1vdmVfd29ya3NwYWNlIChNZXRhLldvcmtzcGFj ZSB3b3Jrc3BhY2UsIHVpbnQzMiB0aW1lc3RhbXApOworKwkJcHVibGljIHZvaWQgcmVvcmRlcl93 b3Jrc3BhY2UgKE1ldGEuV29ya3NwYWNlIHdvcmtzcGFjZSwgaW50IG5ld19pbmRleCk7CisrCQlb Tm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBpbnQgbGF5b3V0X2NvbHVtbnMgeyBnZXQ7IH0K KysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIGludCBsYXlvdXRfcm93cyB7IGdldDsg fQorIAkJcHVibGljIGludCBuX3dvcmtzcGFjZXMgeyBnZXQ7IH0KKyAJCXB1YmxpYyBzaWduYWwg dm9pZCBhY3RpdmVfd29ya3NwYWNlX2NoYW5nZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQg c2hvd2luZ19kZXNrdG9wX2NoYW5nZWQgKCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya3Nw YWNlX2FkZGVkIChpbnQgb2JqZWN0KTsKKyAJCXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3BhY2Vf cmVtb3ZlZCAoaW50IG9iamVjdCk7CisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgd29ya3NwYWNlX3N3 aXRjaGVkIChpbnQgb2JqZWN0LCBpbnQgcDAsIE1ldGEuTW90aW9uRGlyZWN0aW9uIHAxKTsKKysJ CXB1YmxpYyBzaWduYWwgdm9pZCB3b3Jrc3BhY2VzX3Jlb3JkZXJlZCAoKTsKKyAJfQorIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLXgxMS1kaXNwbGF5LmgiLCB0eXBlX2lk ID0gIm1ldGFfeDExX2Rpc3BsYXlfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIFgxMURp c3BsYXkgOiBHTGliLk9iamVjdCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24g PSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgWDExRGlzcGxheSAoKTsKKy0JCXB1YmxpYyB2b2lkIGZv Y3VzX3RoZV9ub19mb2N1c193aW5kb3cgKHVpbnQzMiB0aW1lc3RhbXApOworKwkJcHVibGljIHZv aWQgY2xlYXJfc3RhZ2VfaW5wdXRfcmVnaW9uICgpOworIAkJcHVibGljIGludCBnZXRfZGFtYWdl X2V2ZW50X2Jhc2UgKCk7CisgCQlwdWJsaWMgaW50IGdldF9zY3JlZW5fbnVtYmVyICgpOworIAkJ cHVibGljIGludCBnZXRfc2hhcGVfZXZlbnRfYmFzZSAoKTsKKyAJCXB1YmxpYyBib29sIGhhc19z aGFwZSAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9jbV9zZWxlY3Rpb24gKCk7CistCQlwdWJsaWMg dm9pZCBzZXRfaW5wdXRfZm9jdXNfd2luZG93IChNZXRhLldpbmRvdyB3aW5kb3csIGJvb2wgZm9j dXNfZnJhbWUsIHVpbnQzMiB0aW1lc3RhbXApOworKwkJcHVibGljIHZvaWQgc2V0X3N0YWdlX2lu cHV0X3JlZ2lvbiAoWC5Yc2VydmVyUmVnaW9uIHJlZ2lvbik7CisgCQlwdWJsaWMgYm9vbCB4d2lu ZG93X2lzX2Ffbm9fZm9jdXNfd2luZG93IChYLldpbmRvdyB4d2luZG93KTsKKyAJfQorIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tZXRhLWNsb3NlLWRpYWxvZy5oIiwgdHlwZV9j bmFtZSA9ICJNZXRhQ2xvc2VEaWFsb2dJbnRlcmZhY2UiLCB0eXBlX2lkID0gIm1ldGFfY2xvc2Vf ZGlhbG9nX2dldF90eXBlICgpIildCitAQCAtNzc5LDI0ICs4ODgsMjQgQEAgbmFtZXNwYWNlIE1l dGEgeworIAkJW0hhc0VtaXR0ZXJdCisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgcmVzcG9uc2UgKE1l dGEuSW5oaWJpdFNob3J0Y3V0c0RpYWxvZ1Jlc3BvbnNlIHJlc3BvbnNlKTsKKyAJfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGhhc190eXBlX2lkID0gZmFs c2UpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBoYXNfdHlw ZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIHN0cnVjdCBCdXR0b25MYXlvdXQgeworIAkJW0NDb2Rl IChhcnJheV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBNZXRhLkJ1dHRvbkZ1bmN0 aW9uIGxlZnRfYnV0dG9uc1s1XTsKKysJCXB1YmxpYyB3ZWFrIE1ldGEuQnV0dG9uRnVuY3Rpb24g bGVmdF9idXR0b25zWzRdOworIAkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCistCQlw dWJsaWMgd2VhayBib29sIGxlZnRfYnV0dG9uc19oYXNfc3BhY2VyWzVdOworKwkJcHVibGljIHdl YWsgYm9vbCBsZWZ0X2J1dHRvbnNfaGFzX3NwYWNlcls0XTsKKyAJCVtDQ29kZSAoYXJyYXlfbGVu Z3RoID0gZmFsc2UpXQorLQkJcHVibGljIHdlYWsgTWV0YS5CdXR0b25GdW5jdGlvbiByaWdodF9i dXR0b25zWzVdOworKwkJcHVibGljIHdlYWsgTWV0YS5CdXR0b25GdW5jdGlvbiByaWdodF9idXR0 b25zWzRdOworIAkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2Vh ayBib29sIHJpZ2h0X2J1dHRvbnNfaGFzX3NwYWNlcls1XTsKKysJCXB1YmxpYyB3ZWFrIGJvb2wg cmlnaHRfYnV0dG9uc19oYXNfc3BhY2VyWzRdOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL2JveGVzLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisg CXB1YmxpYyBzdHJ1Y3QgRWRnZSB7CisgCQlwdWJsaWMgTWV0YS5SZWN0YW5nbGUgcmVjdDsKKyAJ CXB1YmxpYyBNZXRhLlNpZGUgc2lkZV90eXBlOworIAkJcHVibGljIE1ldGEuRWRnZVR5cGUgZWRn ZV90eXBlOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5o IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgc3RydWN0IEZyYW1l Qm9yZGVycyB7CisgCQlwdWJsaWMgR3RrLkJvcmRlciB2aXNpYmxlOworIAkJcHVibGljIEd0ay5C b3JkZXIgaW52aXNpYmxlOworQEAgLTgxMSwxNCArOTIwLDE0IEBAIG5hbWVzcGFjZSBNZXRhIHsK KyAJCXB1YmxpYyB3ZWFrIHN0cmluZyBsaWNlbnNlOworIAkJcHVibGljIHdlYWsgc3RyaW5nIGRl c2NyaXB0aW9uOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEt cGx1Z2luLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCXB1YmxpYyBzdHJ1 Y3QgUGx1Z2luVmVyc2lvbiB7CisgCQlwdWJsaWMgdWludCB2ZXJzaW9uX21ham9yOworIAkJcHVi bGljIHVpbnQgdmVyc2lvbl9taW5vcjsKKyAJCXB1YmxpYyB1aW50IHZlcnNpb25fbWljcm87Cisg CQlwdWJsaWMgdWludCB2ZXJzaW9uX2FwaTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9ib3hlcy5oIiwgdHlwZV9pZCA9ICJtZXRhX3JlY3RhbmdsZV9nZXRfdHlwZSAo KSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjb3B5X2Z1 bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwg dHlwZV9pZCA9ICJtZXRhX3JlY3RhbmdsZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgc3RydWN0 IFJlY3RhbmdsZSB7CisgCQlwdWJsaWMgaW50IHg7CisgCQlwdWJsaWMgaW50IHk7CitAQCAtODM2 LDcgKzk0NSw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCXB1YmxpYyBNZXRhLlJlY3RhbmdsZSB1 bmlvbiAoTWV0YS5SZWN0YW5nbGUgcmVjdDIpOworIAkJcHVibGljIGJvb2wgdmVydF9vdmVybGFw IChNZXRhLlJlY3RhbmdsZSByZWN0Mik7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWV0YS1zaGFkb3ctZmFjdG9yeS5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorIAlwdWJsaWMgc3RydWN0IFNoYWRvd1BhcmFtcyB7CisgCQlwdWJsaWMgaW50IHJh ZGl1czsKKyAJCXB1YmxpYyBpbnQgdG9wX2ZhZGU7CitAQCAtODQ0LDEyICs5NTMsMTIgQEAgbmFt ZXNwYWNlIE1ldGEgeworIAkJcHVibGljIGludCB5X29mZnNldDsKKyAJCXB1YmxpYyB1aW50OCBv cGFjaXR5OworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2JveGVzLmgi LCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCXB1YmxpYyBzdHJ1Y3QgU3RydXQg eworIAkJcHVibGljIE1ldGEuUmVjdGFuZ2xlIHJlY3Q7CisgCQlwdWJsaWMgTWV0YS5TaWRlIHNp ZGU7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvYmFycmllci5oIiwg Y3ByZWZpeCA9ICJNRVRBX0JBUlJJRVJfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9iYXJy aWVyX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfQkFSUklFUl9ESVJFQ1RJT05fIiwgdHlw ZV9pZCA9ICJtZXRhX2JhcnJpZXJfZGlyZWN0aW9uX2dldF90eXBlICgpIildCisgCVtGbGFnc10K KyAJcHVibGljIGVudW0gQmFycmllckRpcmVjdGlvbiB7CisgCQlQT1NJVElWRV9YLAorQEAgLTg1 NywyMSArOTY2LDIwIEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCU5FR0FUSVZFX1gsCisgCQlORUdB VElWRV9ZCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgi LCBjcHJlZml4ID0gIk1FVEFfQlVUVE9OX0ZVTkNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9idXR0 b25fZnVuY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0JVVFRPTl9GVU5DVElPTl8iLCB0eXBlX2lk ID0gIm1ldGFfYnV0dG9uX2Z1bmN0aW9uX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIEJ1 dHRvbkZ1bmN0aW9uIHsKKyAJCU1FTlUsCisgCQlNSU5JTUlaRSwKKyAJCU1BWElNSVpFLAorIAkJ Q0xPU0UsCistCQlBUFBNRU5VLAorIAkJTEFTVAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJtZXRhL21ldGEtY2xvc2UtZGlhbG9nLmgiLCBjcHJlZml4ID0gIk1FVEFfQ0xPU0Vf RElBTE9HX1JFU1BPTlNFXyIsIHR5cGVfaWQgPSAibWV0YV9jbG9zZV9kaWFsb2dfcmVzcG9uc2Vf Z2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IiwgY3ByZWZpeCA9ICJNRVRBX0NMT1NFX0RJQUxPR19SRVNQT05TRV8iLCB0eXBlX2lkID0gIm1l dGFfY2xvc2VfZGlhbG9nX3Jlc3BvbnNlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIENs b3NlRGlhbG9nUmVzcG9uc2UgeworIAkJV0FJVCwKKyAJCUZPUkNFX0NMT1NFCisgCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tcG9zaXRvci5oIiwgY3ByZWZpeCA9ICJN RVRBX0NPTVBfRUZGRUNUXyIsIHR5cGVfaWQgPSAibWV0YV9jb21wX2VmZmVjdF9nZXRfdHlwZSAo KSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4 ID0gIk1FVEFfQ09NUF9FRkZFQ1RfIiwgdHlwZV9pZCA9ICJtZXRhX2NvbXBfZWZmZWN0X2dldF90 eXBlICgpIildCisgCXB1YmxpYyBlbnVtIENvbXBFZmZlY3QgeworIAkJQ1JFQVRFLAorIAkJVU5N SU5JTUlaRSwKK0BAIC04NzksNyArOTg3LDcgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJTUlOSU1J WkUsCisgCQlOT05FCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29t bW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfQ1VSU09SXyIsIHR5cGVfaWQgPSAibWV0YV9jdXJzb3Jf Z2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5o IiwgY3ByZWZpeCA9ICJNRVRBX0NVUlNPUl8iLCB0eXBlX2lkID0gIm1ldGFfY3Vyc29yX2dldF90 eXBlICgpIildCisgCXB1YmxpYyBlbnVtIEN1cnNvciB7CisgCQlOT05FLAorIAkJREVGQVVMVCwK K0BAIC05MDAsOSArMTAwOCwxMCBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlQT0lOVElOR19IQU5E LAorIAkJQ1JPU1NIQUlSLAorIAkJSUJFQU0sCisrCQlCTEFOSywKKyAJCUxBU1QKKyAJfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjcHJlZml4ID0gIk1FVEFf REVCVUdfIiwgdHlwZV9pZCA9ICJtZXRhX2RlYnVnX3RvcGljX2dldF90eXBlICgpIildCisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9E RUJVR18iLCB0eXBlX2lkID0gIm1ldGFfZGVidWdfdG9waWNfZ2V0X3R5cGUgKCkiKV0KKyAJW0Zs YWdzXQorIAlwdWJsaWMgZW51bSBEZWJ1Z1RvcGljIHsKKyAJCVZFUkJPU0UsCitAQCAtOTI4LDkg KzEwMzcsMTAgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJU0hBUEVTLAorIAkJQ09NUE9TSVRPUiwK KyAJCUVER0VfUkVTSVNUQU5DRSwKKy0JCURCVVMKKysJCURCVVMsCisrCQlJTlBVVAorIAl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9ICJN RVRBX0RJUkVDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfZGlyZWN0aW9uX2dldF90eXBlICgpIild CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAi TUVUQV9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIp XQorIAlbRmxhZ3NdCisgCXB1YmxpYyBlbnVtIERpcmVjdGlvbiB7CisgCQlMRUZULAorQEAgLTk0 MiwyMSArMTA1MiwyMSBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlIT1JJWk9OVEFMLAorIAkJVkVS VElDQUwKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9kaXNwbGF5Lmgi LCBjcHJlZml4ID0gIk1FVEFfRElTUExBWV8iLCB0eXBlX2lkID0gIm1ldGFfZGlzcGxheV9jb3Ju ZXJfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFp bi5oIiwgY3ByZWZpeCA9ICJNRVRBX0RJU1BMQVlfIiwgdHlwZV9pZCA9ICJtZXRhX2Rpc3BsYXlf Y29ybmVyX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIERpc3BsYXlDb3JuZXIgeworIAkJ VE9QTEVGVCwKKyAJCVRPUFJJR0hULAorIAkJQk9UVE9NTEVGVCwKKyAJCUJPVFRPTVJJR0hUCisg CX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvZGlzcGxheS5oIiwgY3ByZWZp eCA9ICJNRVRBX0RJU1BMQVlfIiwgdHlwZV9pZCA9ICJtZXRhX2Rpc3BsYXlfZGlyZWN0aW9uX2dl dF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIs IGNwcmVmaXggPSAiTUVUQV9ESVNQTEFZXyIsIHR5cGVfaWQgPSAibWV0YV9kaXNwbGF5X2RpcmVj dGlvbl9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBEaXNwbGF5RGlyZWN0aW9uIHsKKyAJ CVVQLAorIAkJRE9XTiwKKyAJCUxFRlQsCisgCQlSSUdIVAorIAl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL2JveGVzLmgiLCBjcHJlZml4ID0gIk1FVEFfRURHRV8iLCB0eXBl X2lkID0gIm1ldGFfZWRnZV90eXBlX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9FREdFXyIsIHR5cGVfaWQg PSAibWV0YV9lZGdlX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gRWRnZVR5cGUg eworIAkJV0lORE9XLAorIAkJTU9OSVRPUiwKK0BAIC05NjcsMTIgKzEwNzcsMTEgQEAgbmFtZXNw YWNlIE1ldGEgeworIAkJU1VDQ0VTUywKKyAJCUVSUk9SCisgCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFfRlJBTUVfIiwgdHlw ZV9pZCA9ICJtZXRhX2ZyYW1lX2ZsYWdzX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9GUkFNRV8iLCB0eXBl X2lkID0gIm1ldGFfZnJhbWVfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKyAJW0ZsYWdzXQorIAlwdWJs aWMgZW51bSBGcmFtZUZsYWdzIHsKKyAJCUFMTE9XU19ERUxFVEUsCisgCQlBTExPV1NfTUVOVSwK Ky0JCUFMTE9XU19BUFBNRU5VLAorIAkJQUxMT1dTX01JTklNSVpFLAorIAkJQUxMT1dTX01BWElN SVpFLAorIAkJQUxMT1dTX1ZFUlRJQ0FMX1JFU0laRSwKK0BAIC05ODQsMTIgKzEwOTMsMTEgQEAg bmFtZXNwYWNlIE1ldGEgeworIAkJQUxMT1dTX1NIQURFLAorIAkJQUxMT1dTX01PVkUsCisgCQlG VUxMU0NSRUVOLAorLQkJSVNfRkxBU0hJTkcsCisgCQlBQk9WRSwKKyAJCVRJTEVEX0xFRlQsCisg CQlUSUxFRF9SSUdIVAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2Nv bW1vbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0ZSQU1FX1RZUEVfIiwgdHlwZV9pZCA9ICJtZXRhX2Zy YW1lX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0ZSQU1FX1RZUEVfIiwgdHlwZV9pZCA9ICJtZXRh X2ZyYW1lX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gRnJhbWVUeXBlIHsKKyAJ CU5PUk1BTCwKKyAJCURJQUxPRywKK0BAIC0xMDAxLDcgKzExMDksNyBAQCBuYW1lc3BhY2UgTWV0 YSB7CisgCQlMQVNUOworIAkJcHVibGljIHVub3duZWQgc3RyaW5nIHRvX3N0cmluZyAoKTsKKyAJ fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXgg PSAiTUVUQV9HUkFCX09QXyIsIHR5cGVfaWQgPSAibWV0YV9ncmFiX29wX2dldF90eXBlICgpIild CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAi TUVUQV9HUkFCX09QXyIsIHR5cGVfaWQgPSAibWV0YV9ncmFiX29wX2dldF90eXBlICgpIildCisg CXB1YmxpYyBlbnVtIEdyYWJPcCB7CisgCQlOT05FLAorIAkJV0lORE9XX0JBU0UsCitAQCAtMTAy OCwxMiArMTEzNiwyNiBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlLRVlCT0FSRF9SRVNJWklOR19T RSwKKyAJCUtFWUJPQVJEX1JFU0laSU5HX1cKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tZXRhLWluaGliaXQtc2hvcnRjdXRzLWRpYWxvZy5oIiwgY3ByZWZpeCA9ICJN RVRBX0lOSElCSVRfU0hPUlRDVVRTX0RJQUxPR19SRVNQT05TRV8iLCB0eXBlX2lkID0gIm1ldGFf aW5oaWJpdF9zaG9ydGN1dHNfZGlhbG9nX3Jlc3BvbnNlX2dldF90eXBlICgpIildCisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9HUkFW SVRZXyIsIHR5cGVfaWQgPSAibWV0YV9ncmF2aXR5X2dldF90eXBlICgpIildCisrCXB1YmxpYyBl bnVtIEdyYXZpdHkgeworKwkJTk9ORSwKKysJCU5PUlRIX1dFU1QsCisrCQlOT1JUSCwKKysJCU5P UlRIX0VBU1QsCisrCQlXRVNULAorKwkJQ0VOVEVSLAorKwkJRUFTVCwKKysJCVNPVVRIX1dFU1Qs CisrCQlTT1VUSCwKKysJCVNPVVRIX0VBU1QsCisrCQlTVEFUSUMKKysJfQorKwlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfSU5ISUJJVF9T SE9SVENVVFNfRElBTE9HX1JFU1BPTlNFXyIsIHR5cGVfaWQgPSAibWV0YV9pbmhpYml0X3Nob3J0 Y3V0c19kaWFsb2dfcmVzcG9uc2VfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gSW5oaWJp dFNob3J0Y3V0c0RpYWxvZ1Jlc3BvbnNlIHsKKyAJCUFMTE9XLAorIAkJREVOWQorIAl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3ByZWZzLmgiLCBjcHJlZml4ID0gIk1FVEFf S0VZQklORElOR19BQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2tleV9iaW5kaW5nX2FjdGlvbl9n ZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi LCBjcHJlZml4ID0gIk1FVEFfS0VZQklORElOR19BQ1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX2tl eV9iaW5kaW5nX2FjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBLZXlCaW5kaW5n QWN0aW9uIHsKKyAJCU5PTkUsCisgCQlXT1JLU1BBQ0VfMSwKK0BAIC0xMTIyLDIyICsxMjQ0LDI1 IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCU1PVkVfVE9fU0lERV9XLAorIAkJTU9WRV9UT19DRU5U RVIsCisgCQlPVkVSTEFZX0tFWSwKKysJCUxPQ0FURV9QT0lOVEVSX0tFWSwKKyAJCUlTT19ORVhU X0dST1VQLAorIAkJQUxXQVlTX09OX1RPUCwKKyAJCVNXSVRDSF9NT05JVE9SLAorIAkJUk9UQVRF X01PTklUT1IsCisgCQlMQVNUCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvcHJlZnMuaCIsIGNwcmVmaXggPSAiTUVUQV9LRVlfQklORElOR18iLCB0eXBlX2lkID0gIm1l dGFfa2V5X2JpbmRpbmdfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX0tFWV9CSU5ESU5HXyIsIHR5 cGVfaWQgPSAibWV0YV9rZXlfYmluZGluZ19mbGFnc19nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3Nd CisgCXB1YmxpYyBlbnVtIEtleUJpbmRpbmdGbGFncyB7CisgCQlOT05FLAorIAkJUEVSX1dJTkRP VywKKyAJCUJVSUxUSU4sCisgCQlJU19SRVZFUlNFRCwKKy0JCU5PTl9NQVNLQUJMRQorKwkJTk9O X01BU0tBQkxFLAorKwkJSUdOT1JFX0FVVE9SRVBFQVQsCisrCQlOT19BVVRPX0dSQUIKKyAJfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS91dGlsLmgiLCBjcHJlZml4ID0gIk1F VEFfTEFURVJfIiwgdHlwZV9pZCA9ICJtZXRhX2xhdGVyX3R5cGVfZ2V0X3R5cGUgKCkiKV0KKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRB X0xBVEVSXyIsIHR5cGVfaWQgPSAibWV0YV9sYXRlcl90eXBlX2dldF90eXBlICgpIildCisgCXB1 YmxpYyBlbnVtIExhdGVyVHlwZSB7CisgCQlSRVNJWkUsCisgCQlDQUxDX1NIT1dJTkcsCitAQCAt MTE0NiwyNSArMTI3MSwyNSBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlCRUZPUkVfUkVEUkFXLAor IAkJSURMRQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL3V0aWwuaCIs IGNwcmVmaXggPSAiTUVUQV9MT0NBTEVfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAibWV0YV9sb2Nh bGVfZGlyZWN0aW9uX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9MT0NBTEVfRElSRUNUSU9OXyIsIHR5cGVf aWQgPSAibWV0YV9sb2NhbGVfZGlyZWN0aW9uX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVt IExvY2FsZURpcmVjdGlvbiB7CisgCQlMVFIsCisgCQlSVEwKKyAJfQorLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS93aW5kb3cuaCIsIGNwcmVmaXggPSAiTUVUQV9NQVhJTUlaRV8i LCB0eXBlX2lkID0gIm1ldGFfbWF4aW1pemVfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX01BWElN SVpFXyIsIHR5cGVfaWQgPSAibWV0YV9tYXhpbWl6ZV9mbGFnc19nZXRfdHlwZSAoKSIpXQorIAlb RmxhZ3NdCisgCXB1YmxpYyBlbnVtIE1heGltaXplRmxhZ3MgeworIAkJSE9SSVpPTlRBTCwKKyAJ CVZFUlRJQ0FMLAorIAkJQk9USAorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21ldGEtcGx1Z2luLmgiLCBjcHJlZml4ID0gIk1FVEFfTU9EQUxfIiwgdHlwZV9pZCA9ICJt ZXRhX21vZGFsX29wdGlvbnNfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX01PREFMXyIsIHR5cGVfaWQgPSAi bWV0YV9tb2RhbF9vcHRpb25zX2dldF90eXBlICgpIildCisgCVtGbGFnc10KKyAJcHVibGljIGVu dW0gTW9kYWxPcHRpb25zIHsKKyAJCVBPSU5URVJfQUxSRUFEWV9HUkFCQkVELAorIAkJS0VZQk9B UkRfQUxSRUFEWV9HUkFCQkVECisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWV0YS1tb25pdG9yLW1hbmFnZXIuaCIsIGNwcmVmaXggPSAiTUVUQV9NT05JVE9SX1NXSVRD SF9DT05GSUdfIiwgdHlwZV9pZCA9ICJtZXRhX21vbml0b3Jfc3dpdGNoX2NvbmZpZ190eXBlX2dl dF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIs IGNwcmVmaXggPSAiTUVUQV9NT05JVE9SX1NXSVRDSF9DT05GSUdfIiwgdHlwZV9pZCA9ICJtZXRh X21vbml0b3Jfc3dpdGNoX2NvbmZpZ190eXBlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVt IE1vbml0b3JTd2l0Y2hDb25maWdUeXBlIHsKKyAJCUFMTF9NSVJST1IsCisgCQlBTExfTElORUFS LAorQEAgLTExNzIsNyArMTI5Nyw3IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCUJVSUxUSU4sCisg CQlVTktOT1dOCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9u LmgiLCBjcHJlZml4ID0gIk1FVEFfTU9USU9OXyIsIHR5cGVfaWQgPSAibWV0YV9tb3Rpb25fZGly ZWN0aW9uX2dldF90eXBlICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRh L21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9NT1RJT05fIiwgdHlwZV9pZCA9ICJtZXRhX21vdGlv bl9kaXJlY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gTW90aW9uRGlyZWN0aW9u IHsKKyAJCVVQLAorIAkJRE9XTiwKK0BAIC0xMTgzLDcgKzEzMDgsNyBAQCBuYW1lc3BhY2UgTWV0 YSB7CisgCQlET1dOX0xFRlQsCisgCQlET1dOX1JJR0hUCisgCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gIm1ldGEvZGlzcGxheS5oIiwgY3ByZWZpeCA9ICJNRVRBX1BBRF9BQ1RJT05f IiwgdHlwZV9pZCA9ICJtZXRhX3BhZF9hY3Rpb25fdHlwZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfUEFE X0FDVElPTl8iLCB0eXBlX2lkID0gIm1ldGFfcGFkX2FjdGlvbl90eXBlX2dldF90eXBlICgpIild CisgCXB1YmxpYyBlbnVtIFBhZEFjdGlvblR5cGUgeworIAkJQlVUVE9OLAorIAkJUklORywKK0BA IC0xMjIzLDMwICsxMzQ4LDM5IEBAIG5hbWVzcGFjZSBNZXRhIHsKKyAJCURSQUdHQUJMRV9CT1JE RVJfV0lEVEgsCisgCQlBVVRPX01BWElNSVpFLAorIAkJQ0VOVEVSX05FV19XSU5ET1dTLAorLQkJ RFJBR19USFJFU0hPTEQ7CisrCQlEUkFHX1RIUkVTSE9MRCwKKysJCUxPQ0FURV9QT0lOVEVSLAor KwkJQ0hFQ0tfQUxJVkVfVElNRU9VVDsKKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyB0b19zdHJp bmcgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWV0YS13aW5k b3ctYWN0b3IuaCIsIGNwcmVmaXggPSAiTUVUQV9TSEFET1dfTU9ERV8iLCB0eXBlX2lkID0gIm1l dGFfc2hhZG93X21vZGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBXyIsIHR5cGVfaWQgPSAibWV0YV9zZWxl Y3Rpb25fdHlwZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgZW51bSBTZWxlY3Rpb25UeXBlIHsK KysJCVNFTEVDVElPTl9QUklNQVJZLAorKwkJU0VMRUNUSU9OX0NMSVBCT0FSRCwKKysJCVNFTEVD VElPTl9ETkQsCisrCQlOX1NFTEVDVElPTl9UWVBFUworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9TSEFET1dfTU9ERV8iLCB0 eXBlX2lkID0gIm1ldGFfc2hhZG93X21vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0g U2hhZG93TW9kZSB7CisgCQlBVVRPLAorIAkJRk9SQ0VEX09GRiwKKyAJCUZPUkNFRF9PTgorIAl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL2NvbW1vbi5oIiwgY3ByZWZpeCA9 ICJNRVRBX1NJREVfIiwgdHlwZV9pZCA9ICJtZXRhX3NpZGVfZ2V0X3R5cGUgKCkiKV0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1NJ REVfIiwgdHlwZV9pZCA9ICJtZXRhX3NpZGVfZ2V0X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0g U2lkZSB7CisgCQlMRUZULAorIAkJUklHSFQsCisgCQlUT1AsCisgCQlCT1RUT00KKyAJfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21wb3NpdG9yLmgiLCBjcHJlZml4ID0g Ik1FVEFfU0laRV9DSEFOR0VfIiwgdHlwZV9pZCA9ICJtZXRhX3NpemVfY2hhbmdlX2dldF90eXBl ICgpIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVm aXggPSAiTUVUQV9TSVpFX0NIQU5HRV8iLCB0eXBlX2lkID0gIm1ldGFfc2l6ZV9jaGFuZ2VfZ2V0 X3R5cGUgKCkiKV0KKyAJcHVibGljIGVudW0gU2l6ZUNoYW5nZSB7CisgCQlNQVhJTUlaRSwKKyAJ CVVOTUFYSU1JWkUsCisgCQlGVUxMU0NSRUVOLAorIAkJVU5GVUxMU0NSRUVOCisgCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgiLCBjcHJlZml4ID0gIk1FVEFf TEFZRVJfIiwgdHlwZV9pZCA9ICJtZXRhX3N0YWNrX2xheWVyX2dldF90eXBlICgpIildCisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVUQV9M QVlFUl8iLCB0eXBlX2lkID0gIm1ldGFfc3RhY2tfbGF5ZXJfZ2V0X3R5cGUgKCkiKV0KKyAJcHVi bGljIGVudW0gU3RhY2tMYXllciB7CisgCQlERVNLVE9QLAorIAkJQk9UVE9NLAorQEAgLTEyNTYs MTkgKzEzOTAsMTkgQEAgbmFtZXNwYWNlIE1ldGEgeworIAkJT1ZFUlJJREVfUkVESVJFQ1QsCisg CQlMQVNUCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvZGlzcGxheS5o IiwgY3ByZWZpeCA9ICJNRVRBX1RBQl9MSVNUXyIsIHR5cGVfaWQgPSAibWV0YV90YWJfbGlzdF9n ZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi LCBjcHJlZml4ID0gIk1FVEFfVEFCX0xJU1RfIiwgdHlwZV9pZCA9ICJtZXRhX3RhYl9saXN0X2dl dF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIFRhYkxpc3QgeworIAkJTk9STUFMLAorIAkJRE9D S1MsCisgCQlHUk9VUCwKKyAJCU5PUk1BTF9BTEwKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAibWV0YS9kaXNwbGF5LmgiLCBjcHJlZml4ID0gIk1FVEFfVEFCX1NIT1dfIiwgdHlw ZV9pZCA9ICJtZXRhX3RhYl9zaG93X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1RBQl9TSE9XXyIs IHR5cGVfaWQgPSAibWV0YV90YWJfc2hvd190eXBlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBl bnVtIFRhYlNob3dUeXBlIHsKKyAJCUlDT04sCisgCQlJTlNUQU5UTFkKKyAJfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNwcmVmaXggPSAiTUVUQV9WSVJU VUFMXyIsIHR5cGVfaWQgPSAibWV0YV92aXJ0dWFsX21vZGlmaWVyX2dldF90eXBlICgpIildCisr CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNwcmVmaXggPSAiTUVU QV9WSVJUVUFMXyIsIHR5cGVfaWQgPSAibWV0YV92aXJ0dWFsX21vZGlmaWVyX2dldF90eXBlICgp IildCisgCVtGbGFnc10KKyAJcHVibGljIGVudW0gVmlydHVhbE1vZGlmaWVyIHsKKyAJCVNISUZU X01BU0ssCitAQCAtMTI4MiwxNyArMTQxNiwxNyBAQCBuYW1lc3BhY2UgTWV0YSB7CisgCQlNT0Q0 X01BU0ssCisgCQlNT0Q1X01BU0sKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS93aW5kb3cuaCIsIGNwcmVmaXggPSAiTUVUQV9XSU5ET1dfQ0xJRU5UX1RZUEVfIiwgdHlw ZV9pZCA9ICJtZXRhX3dpbmRvd19jbGllbnRfdHlwZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfV0lORE9X X0NMSUVOVF9UWVBFXyIsIHR5cGVfaWQgPSAibWV0YV93aW5kb3dfY2xpZW50X3R5cGVfZ2V0X3R5 cGUgKCkiKV0KKyAJcHVibGljIGVudW0gV2luZG93Q2xpZW50VHlwZSB7CisgCQlXQVlMQU5ELAor IAkJWDExCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvY29tbW9uLmgi LCBjcHJlZml4ID0gIk1FVEFfV0lORE9XX01FTlVfIiwgdHlwZV9pZCA9ICJtZXRhX3dpbmRvd19t ZW51X3R5cGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1l dGEvbWFpbi5oIiwgY3ByZWZpeCA9ICJNRVRBX1dJTkRPV19NRU5VXyIsIHR5cGVfaWQgPSAibWV0 YV93aW5kb3dfbWVudV90eXBlX2dldF90eXBlICgpIildCisgCXB1YmxpYyBlbnVtIFdpbmRvd01l bnVUeXBlIHsKKyAJCVdNLAorIAkJQVBQCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gIm1ldGEvd2luZG93LmgiLCBjcHJlZml4ID0gIk1FVEFfV0lORE9XXyIsIHR5cGVfaWQgPSAi bWV0YV93aW5kb3dfdHlwZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9tYWluLmgiLCBjcHJlZml4ID0gIk1FVEFfV0lORE9XXyIsIHR5cGVfaWQgPSAi bWV0YV93aW5kb3dfdHlwZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgZW51bSBXaW5kb3dUeXBl IHsKKyAJCU5PUk1BTCwKKyAJCURFU0tUT1AsCitAQCAtMTMxMSw1MSArMTQ0NSw1NyBAQCBuYW1l c3BhY2UgTWV0YSB7CisgCQlETkQsCisgCQlPVkVSUklERV9PVEhFUgorIAl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEtaWRsZS1tb25pdG9yLmgiLCBpbnN0YW5jZV9w b3MgPSAyLjkpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBp bnN0YW5jZV9wb3MgPSAyLjkpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBJZGxlTW9uaXRvcldh dGNoRnVuYyAoTWV0YS5JZGxlTW9uaXRvciBtb25pdG9yLCB1aW50IHdhdGNoX2lkKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvcHJlZnMuaCIsIGluc3RhbmNlX3BvcyA9IDQu OSldCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGluc3RhbmNl X3BvcyA9IDQuOSldCisgCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIEtleUhhbmRsZXJGdW5jIChNZXRh LkRpc3BsYXkgZGlzcGxheSwgTWV0YS5XaW5kb3cgd2luZG93LCBbQ0NvZGUgKHR5cGUgPSAiQ2x1 dHRlcktleUV2ZW50KiIpXSBDbHV0dGVyLktleUV2ZW50PyBldmVudCwgTWV0YS5LZXlCaW5kaW5n IGJpbmRpbmcpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9wcmVmcy5oIiwg aW5zdGFuY2VfcG9zID0gMS45KV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEv bWFpbi5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJcHVibGljIGRlbGVnYXRlIHZvaWQgUHJl ZnNDaGFuZ2VkRnVuYyAoTWV0YS5QcmVmZXJlbmNlIHByZWYpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS93aW5kb3cuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGluc3RhbmNlX3BvcyA9IDEuOSld CisgCXB1YmxpYyBkZWxlZ2F0ZSBib29sIFdpbmRvd0ZvcmVhY2hGdW5jIChNZXRhLldpbmRvdyB3 aW5kb3cpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNu YW1lID0gIk1FVEFfQ1VSUkVOVF9USU1FIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfQ1VSUkVOVF9USU1FIildCisgCXB1YmxpYyBj b25zdCBpbnQgQ1VSUkVOVF9USU1FOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfREVGQVVMVF9JQ09OX05BTUUiKV0KKysJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9ERUZBVUxU X0lDT05fTkFNRSIpXQorIAlwdWJsaWMgY29uc3Qgc3RyaW5nIERFRkFVTFRfSUNPTl9OQU1FOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1F VEFfSUNPTl9IRUlHSFQiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFp bi5oIiwgY25hbWUgPSAiTUVUQV9JQ09OX0hFSUdIVCIpXQorIAlwdWJsaWMgY29uc3QgaW50IElD T05fSEVJR0hUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIs IGNuYW1lID0gIk1FVEFfSUNPTl9XSURUSCIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX0lDT05fV0lEVEgiKV0KKyAJcHVibGljIGNv bnN0IGludCBJQ09OX1dJRFRIOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9j b21tb24uaCIsIGNuYW1lID0gIk1FVEFfTUFKT1JfVkVSU0lPTiIpXQorKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01BSk9SX1ZFUlNJT04i KV0KKyAJcHVibGljIGNvbnN0IGludCBNQUpPUl9WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfTUlDUk9fVkVSU0lPTiIp XQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiLCBjbmFtZSA9ICJN RVRBX01JQ1JPX1ZFUlNJT04iKV0KKyAJcHVibGljIGNvbnN0IGludCBNSUNST19WRVJTSU9OOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1F VEFfTUlOSV9JQ09OX0hFSUdIVCIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0 YS9tYWluLmgiLCBjbmFtZSA9ICJNRVRBX01JTklfSUNPTl9IRUlHSFQiKV0KKyAJcHVibGljIGNv bnN0IGludCBNSU5JX0lDT05fSEVJR0hUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi bWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfTUlOSV9JQ09OX1dJRFRIIildCisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfTUlOSV9J Q09OX1dJRFRIIildCisgCXB1YmxpYyBjb25zdCBpbnQgTUlOSV9JQ09OX1dJRFRIOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfTUlO T1JfVkVSU0lPTiIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi LCBjbmFtZSA9ICJNRVRBX01JTk9SX1ZFUlNJT04iKV0KKyAJcHVibGljIGNvbnN0IGludCBNSU5P Ul9WRVJTSU9OOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIs IGNuYW1lID0gIk1FVEFfUExVR0lOX0FQSV9WRVJTSU9OIildCisrCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfUExVR0lOX0FQSV9WRVJTSU9O IildCisgCXB1YmxpYyBjb25zdCBpbnQgUExVR0lOX0FQSV9WRVJTSU9OOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlf QkVGT1JFX1JFRFJBVyIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWlu LmgiLCBjbmFtZSA9ICJNRVRBX1BSSU9SSVRZX0JFRk9SRV9SRURSQVciKV0KKyAJcHVibGljIGNv bnN0IGludCBQUklPUklUWV9CRUZPUkVfUkVEUkFXOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUFJFRlNfTk9USUZZ IildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0g Ik1FVEFfUFJJT1JJVFlfUFJFRlNfTk9USUZZIildCisgCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJ VFlfUFJFRlNfTk9USUZZOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21t b24uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUkVEUkFXIildCisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUkVEUkFX IildCisgCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlfUkVEUkFXOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0gIk1FVEFfUFJJT1JJVFlfUkVT SVpFIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1l ID0gIk1FVEFfUFJJT1JJVFlfUkVTSVpFIildCisgCXB1YmxpYyBjb25zdCBpbnQgUFJJT1JJVFlf UkVTSVpFOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNu YW1lID0gIk1FVEFfVklSVFVBTF9DT1JFX0tFWUJPQVJEX0lEIildCisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJtZXRhL21haW4uaCIsIGNuYW1lID0gIk1FVEFfVklSVFVBTF9DT1JFX0tF WUJPQVJEX0lEIildCisgCXB1YmxpYyBjb25zdCBpbnQgVklSVFVBTF9DT1JFX0tFWUJPQVJEX0lE OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9jb21tb24uaCIsIGNuYW1lID0g Ik1FVEFfVklSVFVBTF9DT1JFX1BPSU5URVJfSUQiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gIm1ldGEvbWFpbi5oIiwgY25hbWUgPSAiTUVUQV9WSVJUVUFMX0NPUkVfUE9JTlRFUl9J RCIpXQorIAlwdWJsaWMgY29uc3QgaW50IFZJUlRVQUxfQ09SRV9QT0lOVEVSX0lEOworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyBi b29sIGFjdGl2YXRlX3Nlc3Npb24gKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJt ZXRhL21haW4uaCIpXQorKwlwdWJsaWMgc3RhdGljIHZvaWQgYWRkX2NsdXR0ZXJfZGVidWdfZmxh Z3MgKENsdXR0ZXIuRGVidWdGbGFnIGRlYnVnX2ZsYWdzLCBDbHV0dGVyLkRyYXdEZWJ1Z0ZsYWcg ZHJhd19mbGFncywgQ2x1dHRlci5QaWNrRGVidWdGbGFnIHBpY2tfZmxhZ3MpOworKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKysJcHVibGljIHN0YXRpYyB2b2lk IGNsdXR0ZXJfaW5pdCAoKTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFp bi5oIildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBleGl0IChNZXRhLkV4aXRDb2RlIGNvZGUpOwor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKysJcHVibGljIHN0 YXRpYyBzdHJpbmcgZ191dGY4X3N0cm5kdXAgKHN0cmluZyBzcmMsIHNpemVfdCBuKTsKKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMg dW5vd25lZCBHTGliLk9wdGlvbkNvbnRleHQgZ2V0X29wdGlvbl9jb250ZXh0ICgpOworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKyAJcHVibGljIHN0YXRpYyBi b29sIGdldF9yZXBsYWNlX2N1cnJlbnRfd20gKCk7CitAQCAtMTM2OCw2ICsxNTA4LDggQEAgbmFt ZXNwYWNlIE1ldGEgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgi KV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIHJlZ2lzdGVyX3dpdGhfc2Vzc2lvbiAoKTsKKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisrCXB1YmxpYyBzdGF0aWMg dm9pZCByZW1vdmVfY2x1dHRlcl9kZWJ1Z19mbGFncyAoQ2x1dHRlci5EZWJ1Z0ZsYWcgZGVidWdf ZmxhZ3MsIENsdXR0ZXIuRHJhd0RlYnVnRmxhZyBkcmF3X2ZsYWdzLCBDbHV0dGVyLlBpY2tEZWJ1 Z0ZsYWcgcGlja19mbGFncyk7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21h aW4uaCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgcmVzdGFydCAoc3RyaW5nPyBtZXNzYWdlKTsK KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gIm1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBz dGF0aWMgaW50IHJ1biAoKTsKK0BAIC0xMzc1LDYgKzE1MTcsMTQgQEAgbmFtZXNwYWNlIE1ldGEg eworIAlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X2dub21lX3dtX2tleWJpbmRpbmdzIChzdHJpbmcg d21fa2V5YmluZGluZ3MpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWlu LmgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIHNldF93bV9uYW1lIChzdHJpbmcgd21fbmFtZSk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJtZXRhL21ldGEteDExLWRpc3BsYXkuaCIp XQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibWV0YS9tYWluLmgiKV0KKysJcHVibGlj IHN0YXRpYyB2b2lkIHRlc3RfaW5pdCAoKTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g Im1ldGEvbWFpbi5oIildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCB4MTFfaW5pdF9nZGtfZGlzcGxh eSAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyB9CisrW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImxpYm11dHRlci03LWN1c3RvbS5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrcHVibGljIHN0 cnVjdCBiZWZvcmVfZnJhbWUgeworK30KKytbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAibGli bXV0dGVyLTctY3VzdG9tLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKytwdWJsaWMgc3RydWN0 IGZyYW1lIHsKKyt9CitkaWZmIC0tZ2l0IHZhcGkvbGlibXV0dGVyLWNvZ2wtNC52YXBpIHZhcGkv bGlibXV0dGVyLWNvZ2wtNC52YXBpCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDdk YzE4NDc2Li4wMDAwMDAwMAorLS0tIHZhcGkvbGlibXV0dGVyLWNvZ2wtNC52YXBpCisrKysgL2Rl di9udWxsCitAQCAtMSwxMjcyICswLDAgQEAKKy0vKiBsaWJtdXR0ZXItY29nbC00LnZhcGkgZ2Vu ZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnkuICovCistCistW0NDb2RlIChjcHJlZml4 ID0gIkNvZ2wiLCBnaXJfbmFtZXNwYWNlID0gIkNvZ2wiLCBnaXJfdmVyc2lvbiA9ICI0IiwgbG93 ZXJfY2FzZV9jcHJlZml4ID0gImNvZ2xfIildCistbmFtZXNwYWNlIENvZ2wgeworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfYml0bWFw X2dldF9ndHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgQml0bWFwIDogQ29nbC5PYmplY3Qgewor LQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVk IEJpdG1hcCAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgdWludDMyIGVycm9yX3F1YXJrICgpOworLQkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorLQkJcHVibGljIEJpdG1hcC5mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFt ZSkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJ cHVibGljIENvZ2wuUGl4ZWxGb3JtYXQgZ2V0X2Zvcm1hdCAoKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCistCQlwdWJsaWMgaW50IGdldF9oZWlnaHQgKCk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIGludCBnZXRfcm93c3RyaWRlICgpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgZ2V0X3Np emVfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUsIG91dCBpbnQgd2lkdGgsIG91dCBpbnQgaGVp Z2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgaW50IGdldF93 aWR0aCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi LCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBFdWxl ciB7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29w eV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJl ZSIsIHR5cGVfaWQgPSAiY29nbF9mcmFtZV9jbG9zdXJlX2dldF9ndHlwZSAoKSIpXQorLQlbQ29t cGFjdF0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0JcHVibGljIGNsYXNzIEZyYW1l Q2xvc3VyZSB7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94 ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY29nbF9tYXRlcmlhbF9nZXRfdHlwZSAoKSIpXQorLQlbQ29t cGFjdF0KKy0JcHVibGljIGNsYXNzIE1hdGVyaWFsIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgTWF0ZXJpYWwgKCk7CistCQlbVmVy 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 IildCistCQlwdWJsaWMgQ29nbC5IYW5kbGUgZ2V0X3VzZXJfcHJvZ3JhbSAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5IYW5kbGUgQHJlZiAoQ29nbC5IYW5kbGUg bWF0ZXJpYWwpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9sYXllciAoaW50IGxheWVyX2lu ZGV4KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGFfdGVzdF9m dW5jdGlvbiAoQ29nbC5NYXRlcmlhbEFscGhhRnVuYyBhbHBoYV9mdW5jLCBmbG9hdCBhbHBoYV9y ZWZlcmVuY2UpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbWJpZW50 IChDb2dsLkNvbG9yIGFtYmllbnQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9hbWJpZW50X2FuZF9kaWZmdXNlIChDb2dsLkNvbG9yIGNvbG9yKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9ibGVuZCAoc3RyaW5nIGJsZW5kX3N0cmlu ZykgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQg c2V0X2JsZW5kX2NvbnN0YW50IChDb2dsLkNvbG9yIGNvbnN0YW50X2NvbG9yKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3IgKENvZ2wuQ29sb3IgY29sb3IpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2xvcjRmIChmbG9hdCByZWQs IGZsb2F0IGdyZWVuLCBmbG9hdCBibHVlLCBmbG9hdCBhbHBoYSk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yNHViICh1aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1 aW50OCBibHVlLCB1aW50OCBhbHBoYSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZv aWQgc2V0X2RpZmZ1c2UgKENvZ2wuQ29sb3IgZGlmZnVzZSk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIHZvaWQgc2V0X2VtaXNzaW9uIChDb2dsLkNvbG9yIGVtaXNzaW9uKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXIgKGludCBsYXllcl9pbmRleCwg Q29nbC5IYW5kbGUgdGV4dHVyZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENvZ2wu Qm9vbCBzZXRfbGF5ZXJfY29tYmluZSAoaW50IGxheWVyX2luZGV4LCBzdHJpbmcgYmxlbmRfc3Ry aW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9p ZCBzZXRfbGF5ZXJfY29tYmluZV9jb25zdGFudCAoaW50IGxheWVyX2luZGV4LCBDb2dsLkNvbG9y IGNvbnN0YW50KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfZmlsdGVycyAoaW50IGxh eWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsRmlsdGVyIG1pbl9maWx0ZXIsIENvZ2wuTWF0ZXJpYWxG aWx0ZXIgbWFnX2ZpbHRlcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX21hdHJpeCAo aW50IGxheWVyX2luZGV4LCBDb2dsLk1hdHJpeCBtYXRyaXgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0K Ky0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2xheWVyX3BvaW50X3Nwcml0ZV9jb29yZHNfZW5hYmxl ZCAoaW50IGxheWVyX2luZGV4LCBDb2dsLkJvb2wgZW5hYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlIChp bnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXllcl9p bmRleCwgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfcyAoaW50IGxheWVyX2luZGV4LCBDb2ds Lk1hdGVyaWFsV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZv aWQgc2V0X2xheWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxX cmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfcG9p bnRfc2l6ZSAoZmxvYXQgcG9pbnRfc2l6ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X3NoaW5pbmVzcyAoZmxvYXQgc2hpbmluZXNzKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIild CistCQlwdWJsaWMgdm9pZCBzZXRfc3BlY3VsYXIgKENvZ2wuQ29sb3Igc3BlY3VsYXIpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBz aW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91c2VyX3Byb2dyYW0gKENvZ2wuSGFu ZGxlIHByb2dyYW0pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHVu cmVmIChDb2dsLkhhbmRsZSBtYXRlcmlhbCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtDb21wYWN0XQor LQlwdWJsaWMgY2xhc3MgTWF0ZXJpYWxMYXllciB7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJp YWxGaWx0ZXIgZ2V0X21hZ19maWx0ZXIgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxG aWx0ZXIgZ2V0X21pbl9maWx0ZXIgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIENvZ2wuSGFuZGxlIGdldF90 ZXh0dXJlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsTGF5ZXJUeXBlIGdldF90eXBl ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUg Z2V0X3dyYXBfbW9kZV9wICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBDb2dsLk1h dGVyaWFsV3JhcE1vZGUgZ2V0X3dyYXBfbW9kZV9zICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0J CXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X3dyYXBfbW9kZV90ICgpOworLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29n bF9vYmplY3RfZ2V0X2d0eXBlICgpIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBPYmplY3Qg eworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVj dGVkIE9iamVjdCAoKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfb2Zmc2NyZWVuX2dldF9ndHlwZSAoKSIpXQorLQlwdWJs aWMgY2xhc3MgT2Zmc2NyZWVuIDogQ29nbC5PYmplY3QsIENvZ2wuRnJhbWVidWZmZXIgeworLQkJ W0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIE9m ZnNjcmVlbiAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdm9pZCogQHJlZiAodm9pZCogb2Zmc2Ny ZWVuKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCist CQlwdWJsaWMgT2Zmc2NyZWVuLnRvX3RleHR1cmUgKENvZ2wuVGV4dHVyZSB0ZXh0dXJlKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgdm9pZCB1bnJlZiAodm9pZCogb2Zmc2NyZWVuKTsKKy0JCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXB1YmxpYyBPZmZzY3JlZW4u d2l0aF90ZXh0dXJlIChDb2dsLlRleHR1cmUgdGV4dHVyZSk7CistCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9ICJjb2dsX29uc2NyZWVuX2dl dF9ndHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgT25zY3JlZW4gOiBDb2dsLk9iamVjdCwgQ29n bC5GcmFtZWJ1ZmZlciB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSldCistCQlwcm90ZWN0ZWQgT25zY3JlZW4gKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x NiIpXQorLQkJcHVibGljIENvZ2wuT25zY3JlZW5EaXJ0eUNsb3N1cmUgYWRkX2RpcnR5X2NhbGxi YWNrIChbQ0NvZGUgKGRlbGVnYXRlX3RhcmdldF9wb3MgPSAxLjUpXSBDb2dsLk9uc2NyZWVuRGly dHlDYWxsYmFjayBjYWxsYmFjaywgQ29nbC5Vc2VyRGF0YURlc3Ryb3lDYWxsYmFjaz8gZGVzdHJv eSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5PbnNjcmVl blJlc2l6ZUNsb3N1cmUgYWRkX3Jlc2l6ZV9jYWxsYmFjayAoW0NDb2RlIChkZWxlZ2F0ZV90YXJn ZXRfcG9zID0gMS41KV0gQ29nbC5PbnNjcmVlblJlc2l6ZUNhbGxiYWNrIGNhbGxiYWNrLCBDb2ds LlVzZXJEYXRhRGVzdHJveUNhbGxiYWNrPyBkZXN0cm95KTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE0Iiwgc2luY2UgPSAiMS4xMCIpXQor LQkJcHVibGljIHVpbnQgYWRkX3N3YXBfYnVmZmVyc19jYWxsYmFjayAoQ29nbC5Td2FwQnVmZmVy c05vdGlmeSBjYWxsYmFjayk7CistCQlwdWJsaWMgc3RhdGljIHZvaWQgY2x1dHRlcl9iYWNrZW5k X3NldF9zaXplX0NMVVRURVIgKGludCB3aWR0aCwgaW50IGhlaWdodCk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xNCIpXQorLQkJcHVibGljIGludCBnZXRfYnVmZmVyX2FnZSAoKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMgaW50NjQgZ2V0X2ZyYW1lX2NvdW50 ZXIgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5Cb29s IGdldF9yZXNpemFibGUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJs aWMgdm9pZCBoaWRlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKy0JCXB1Ymxp YyB2b2lkIHJlbW92ZV9kaXJ0eV9jYWxsYmFjayAoQ29nbC5PbnNjcmVlbkRpcnR5Q2xvc3VyZSBj bG9zdXJlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMgdm9pZCBy ZW1vdmVfZnJhbWVfY2FsbGJhY2sgKENvZ2wuRnJhbWVDbG9zdXJlIGNsb3N1cmUpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX3Jlc2l6ZV9jYWxs YmFjayAoQ29nbC5PbnNjcmVlblJlc2l6ZUNsb3N1cmUgY2xvc3VyZSk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNCIsIHNpbmNlID0gIjEu MTAiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9zd2FwX2J1ZmZlcnNfY2FsbGJhY2sgKHVpbnQg aWQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3Jl c2l6YWJsZSAoQ29nbC5Cb29sIHJlc2l6YWJsZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCistCQlwdWJsaWMgdm9pZCBzaG93ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKy0JCXB1YmxpYyB2b2lkIHN3YXBfYnVmZmVycyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjE2IildCistCQlwdWJsaWMgdm9pZCBzd2FwX2J1ZmZlcnNfd2l0aF9kYW1hZ2UgKGludCBy ZWN0YW5nbGVzLCBpbnQgbl9yZWN0YW5nbGVzKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCistCQlwdWJsaWMgdm9pZCBzd2FwX3JlZ2lvbiAoaW50IHJlY3RhbmdsZXMsIGludCBuX3Jl Y3RhbmdsZXMpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2Jv eGVkX2ZyZWUiLCB0eXBlX2lkID0gImNvZ2xfb25zY3JlZW5fZGlydHlfY2xvc3VyZV9nZXRfZ3R5 cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCistCXB1 YmxpYyBjbGFzcyBPbnNjcmVlbkRpcnR5Q2xvc3VyZSB7CistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHki LCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY29nbF9vbnNjcmVl bl9yZXNpemVfY2xvc3VyZV9nZXRfZ3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KKy0JcHVibGljIGNsYXNzIE9uc2NyZWVuUmVzaXplQ2xvc3VyZSB7 CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9p ZCA9ICJjb2dsX3BpcGVsaW5lX2dldF9ndHlwZSAoKSIpXQorLQlwdWJsaWMgY2xhc3MgUGlwZWxp bmUgOiBDb2dsLk9iamVjdCB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSldCistCQlwcm90ZWN0ZWQgUGlwZWxpbmUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCistCQlwdWJsaWMgQ29nbC5QaXBlbGluZSBjb3B5ICgpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgZm9yZWFjaF9sYXllciAoQ29nbC5QaXBlbGlu ZUxheWVyQ2FsbGJhY2sgY2FsbGJhY2spOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQor LQkJcHVibGljIENvZ2wuUGlwZWxpbmVBbHBoYUZ1bmMgZ2V0X2FscGhhX3Rlc3RfZnVuY3Rpb24g KCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgZmxvYXQgZ2V0X2Fs cGhhX3Rlc3RfcmVmZXJlbmNlICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJ cHVibGljIHZvaWQgZ2V0X2FtYmllbnQgKENvZ2wuQ29sb3IgYW1iaWVudCk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5Db2xvciBnZXRfY29sb3IgKCk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgQ29nbC5Db2xvck1hc2sgZ2V0 X2NvbG9yX21hc2sgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMg Q29nbC5QaXBlbGluZUN1bGxGYWNlTW9kZSBnZXRfY3VsbF9mYWNlX21vZGUgKCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfZGlmZnVzZSAoQ29nbC5D b2xvciBkaWZmdXNlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIGdldF9lbWlzc2lvbiAoQ29nbC5Db2xvciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5XaW5kaW5nIGdldF9mcm9udF9mYWNlX3dpbmRp bmcgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENvZ2wuUGlw ZWxpbmVGaWx0ZXIgZ2V0X2xheWVyX21hZ19maWx0ZXIgKGludCBsYXllcl9pbmRleCk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENvZ2wuUGlwZWxpbmVGaWx0ZXIg Z2V0X2xheWVyX21pbl9maWx0ZXIgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9sYXllcl9wb2ludF9zcHJpdGVf Y29vcmRzX2VuYWJsZWQgKGludCBsYXllcl9pbmRleCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorLQkJcHVibGljIHVub3duZWQgQ29nbC5UZXh0dXJlIGdldF9sYXllcl90ZXh0dXJl IChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVi bGljIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXll cl9pbmRleCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgQ29nbC5Q aXBlbGluZVdyYXBNb2RlIGdldF9sYXllcl93cmFwX21vZGVfcyAoaW50IGxheWVyX2luZGV4KTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLlBpcGVsaW5lV3Jh cE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIGludCBnZXRfbl9sYXllcnMgKCk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9wZXJfdmVy dGV4X3BvaW50X3NpemUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJs aWMgZmxvYXQgZ2V0X3BvaW50X3NpemUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CistCQlwdWJsaWMgZmxvYXQgZ2V0X3NoaW5pbmVzcyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9zcGVjdWxhciAoQ29nbC5Db2xvciBzcGVjdWxh cik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgaW50IGdldF91bmlm b3JtX2xvY2F0aW9uIChzdHJpbmcgdW5pZm9ybV9uYW1lKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkhhbmRsZSBnZXRfdXNlcl9wcm9ncmFtICgpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9sYXllciAo aW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9hbHBoYV90ZXN0X2Z1bmN0aW9uIChDb2dsLlBpcGVsaW5lQWxwaGFGdW5jIGFs cGhhX2Z1bmMsIGZsb2F0IGFscGhhX3JlZmVyZW5jZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVudCAoQ29nbC5Db2xvciBhbWJpZW50KTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hbWJpZW50 X2FuZF9kaWZmdXNlIChDb2dsLkNvbG9yIGNvbG9yKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2JsZW5kIChzdHJpbmcgYmxlbmRfc3RyaW5n KSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9ibGVuZF9jb25zdGFudCAoQ29nbC5Db2xvciBjb25zdGFudF9jb2xvcik7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3Ig KENvZ2wuQ29sb3IgY29sb3IpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVi bGljIHZvaWQgc2V0X2NvbG9yNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUs IGZsb2F0IGFscGhhKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9jb2xvcjR1YiAodWludDggcmVkLCB1aW50OCBncmVlbiwgdWludDggYmx1ZSwgdWlu dDggYWxwaGEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQg c2V0X2NvbG9yX21hc2sgKENvZ2wuQ29sb3JNYXNrIGNvbG9yX21hc2spOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2N1bGxfZmFjZV9tb2RlIChDb2ds LlBpcGVsaW5lQ3VsbEZhY2VNb2RlIGN1bGxfZmFjZV9tb2RlKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kaWZmdXNlIChDb2dsLkNvbG9yIGRpZmZ1 c2UpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Vt aXNzaW9uIChDb2dsLkNvbG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9mcm9udF9mYWNlX3dpbmRpbmcgKENvZ2wuV2luZGluZyBm cm9udF93aW5kaW5nKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBD b2dsLkJvb2wgc2V0X2xheWVyX2NvbWJpbmUgKGludCBsYXllcl9pbmRleCwgc3RyaW5nIGJsZW5k X3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIild CistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfY29tYmluZV9jb25zdGFudCAoaW50IGxheWVyX2lu ZGV4LCBDb2dsLkNvbG9yIGNvbnN0YW50KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfZmlsdGVycyAoaW50IGxheWVyX2luZGV4LCBDb2ds LlBpcGVsaW5lRmlsdGVyIG1pbl9maWx0ZXIsIENvZ2wuUGlwZWxpbmVGaWx0ZXIgbWFnX2ZpbHRl cik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xh eWVyX21hdHJpeCAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdHJpeCBtYXRyaXgpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl9udWxsX3Rl eHR1cmUgKGludCBsYXllcl9pbmRleCwgQ29nbC5UZXh0dXJlVHlwZSB0ZXh0dXJlX3R5cGUpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfbGF5 ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuQm9v bCBlbmFibGUpIHRocm93cyBHTGliLkVycm9yOworLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3Rl eHR1cmUgKGludCBsYXllcl9pbmRleCwgQ29nbC5UZXh0dXJlIHRleHR1cmUpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZSAo aW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3Ag KGludCBsYXllcl9pbmRleCwgQ29nbC5QaXBlbGluZVdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV9z IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVf dCAoaW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgbW9kZSk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9wZXJfdmVydGV4 X3BvaW50X3NpemUgKENvZ2wuQm9vbCBlbmFibGUpIHRocm93cyBHTGliLkVycm9yOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3BvaW50X3NpemUgKGZs b2F0IHBvaW50X3NpemUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X3NoaW5pbmVzcyAoZmxvYXQgc2hpbmluZXNzKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zcGVjdWxhciAoQ29nbC5Db2xvciBzcGVj dWxhcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRf dW5pZm9ybV8xZiAoaW50IHVuaWZvcm1fbG9jYXRpb24sIGZsb2F0IHZhbHVlKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF91bmlmb3JtXzFpIChpbnQg dW5pZm9ybV9sb2NhdGlvbiwgaW50IHZhbHVlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF91bmlmb3JtX2Zsb2F0IChpbnQgdW5pZm9ybV9sb2NhdGlv biwgaW50IG5fY29tcG9uZW50cywgaW50IGNvdW50LCBmbG9hdCB2YWx1ZSk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfdW5pZm9ybV9pbnQgKGludCB1 bmlmb3JtX2xvY2F0aW9uLCBpbnQgbl9jb21wb25lbnRzLCBpbnQgY291bnQsIGludCB2YWx1ZSk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfdW5pZm9y bV9tYXRyaXggKGludCB1bmlmb3JtX2xvY2F0aW9uLCBpbnQgZGltZW5zaW9ucywgaW50IGNvdW50 LCBDb2dsLkJvb2wgdHJhbnNwb3NlLCBmbG9hdCB2YWx1ZSk7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfdXNlcl9wcm9ncmFtIChDb2dsLkhhbmRsZSBw cm9ncmFtKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi LCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBRdWF0 ZXJuaW9uIHsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi LCB0eXBlX2lkID0gImNvZ2xfZnJhbWVidWZmZXJfZ2V0X2d0eXBlICgpIildCistCXB1YmxpYyBp bnRlcmZhY2UgRnJhbWVidWZmZXIgOiBDb2dsLk9iamVjdCB7CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS44IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGFsbG9jYXRlICgpIHRocm93cyBHTGliLkVy cm9yOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgY2xlYXIg KHVsb25nIGJ1ZmZlcnMsIENvZ2wuQ29sb3IgY29sb3IpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuOCIpXQorLQkJcHVibGljIHZvaWQgY2xlYXI0ZiAodWxvbmcgYnVmZmVycywgZmxvYXQgcmVk LCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgZGlzY2FyZF9idWZmZXJzICh1bG9uZyBidWZm ZXJzKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBkcmF3 X211bHRpdGV4dHVyZWRfcmVjdGFuZ2xlIChDb2dsLlBpcGVsaW5lIHBpcGVsaW5lLCBmbG9hdCB4 XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIsIFtDQ29kZSAoYXJyYXlfbGVuZ3Ro ID0gZmFsc2UpXSBmbG9hdFtdIHRleF9jb29yZHMsIGludCB0ZXhfY29vcmRzX2xlbik7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgZHJhd19yZWN0YW5nbGUg KENvZ2wuUGlwZWxpbmUgcGlwZWxpbmUsIGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIs IGZsb2F0IHlfMik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZv aWQgZHJhd19yZWN0YW5nbGVzIChDb2dsLlBpcGVsaW5lIHBpcGVsaW5lLCBbQ0NvZGUgKGFycmF5 X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXRbXSBjb29yZGluYXRlcywgdWludCBuX3JlY3RhbmdsZXMp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIGRyYXdfdGV4 dHVyZWRfcmVjdGFuZ2xlIChDb2dsLlBpcGVsaW5lIHBpcGVsaW5lLCBmbG9hdCB4XzEsIGZsb2F0 IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIsIGZsb2F0IHNfMSwgZmxvYXQgdF8xLCBmbG9hdCBz XzIsIGZsb2F0IHRfMik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGlj IHZvaWQgZHJhd190ZXh0dXJlZF9yZWN0YW5nbGVzIChDb2dsLlBpcGVsaW5lIHBpcGVsaW5lLCBb Q0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXRbXSBjb29yZGluYXRlcywgdWludCBu X3JlY3RhbmdsZXMpOworLQkJcHVibGljIHN0YXRpYyB1aW50MzIgZXJyb3JfcXVhcmsgKCk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgZmluaXNoICgpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIGZydXN0dW0gKGZs b2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgel9u ZWFyLCBmbG9hdCB6X2Zhcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJs aWMgaW50IGdldF9hbHBoYV9iaXRzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQor LQkJcHVibGljIGludCBnZXRfYmx1ZV9iaXRzICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu OCIpXQorLQkJcHVibGljIENvZ2wuQ29sb3JNYXNrIGdldF9jb2xvcl9tYXNrICgpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIGludCBnZXRfZGVwdGhfYml0cyAoKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRl eHR1cmUgZ2V0X2RlcHRoX3RleHR1cmUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIp XQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfZGVwdGhfdGV4dHVyZV9lbmFibGVkICgpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2RlcHRo X3dyaXRlX2VuYWJsZWQgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJs aWMgQ29nbC5Cb29sIGdldF9kaXRoZXJfZW5hYmxlZCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjgiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X2dyZWVuX2JpdHMgKCk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS44IildCistCQlwdWJsaWMgaW50IGdldF9oZWlnaHQgKCk7CistCQlwdWJsaWMg Q29nbC5Cb29sIGdldF9pc19zdGVyZW8gKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorLQkJcHVibGljIENvZ2wuTWF0cml4IGdldF9tb2RlbHZpZXdfbWF0cml4ICgpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdHJpeCBnZXRfcHJvamVj dGlvbl9tYXRyaXggKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMg aW50IGdldF9yZWRfYml0cyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlw dWJsaWMgaW50IGdldF9zYW1wbGVzX3Blcl9waXhlbCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjIwIildCistCQlwdWJsaWMgQ29nbC5TdGVyZW9Nb2RlIGdldF9zdGVyZW9fbW9kZSAoKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF92aWV3cG9y dDRmdiAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIG91dCB1bm93bmVkIGZsb2F0IHZp ZXdwb3J0WzRdKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBmbG9h dCBnZXRfdmlld3BvcnRfaGVpZ2h0ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQor LQkJcHVibGljIGZsb2F0IGdldF92aWV3cG9ydF93aWR0aCAoKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfdmlld3BvcnRfeCAoKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBmbG9hdCBnZXRfdmlld3BvcnRfeSAoKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBpbnQgZ2V0X3dpZHRoICgp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIGlkZW50aXR5 X21hdHJpeCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9p ZCBvcnRob2dyYXBoaWMgKGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlf MiwgZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CistCQlwdWJsaWMgdm9pZCBwZXJzcGVjdGl2ZSAoZmxvYXQgZm92X3ksIGZsb2F0IGFzcGVjdCwg ZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorLQkJcHVibGljIHZvaWQgcG9wX2NsaXAgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorLQkJcHVibGljIHZvaWQgcG9wX21hdHJpeCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBwdXNoX21hdHJpeCAoKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBwdXNoX3JlY3RhbmdsZV9jbGlwIChmbG9h dCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHB1c2hfc2Npc3Nvcl9jbGlwIChpbnQgeCwg aW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCByZWFkX3BpeGVscyAoaW50IHgsIGludCB5LCBpbnQg d2lkdGgsIGludCBoZWlnaHQsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCB1aW50OCBwaXhlbHMp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgcmVh ZF9waXhlbHNfaW50b19iaXRtYXAgKGludCB4LCBpbnQgeSwgQ29nbC5SZWFkUGl4ZWxzRmxhZ3Mg c291cmNlLCBDb2dsLkJpdG1hcCBiaXRtYXApOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIp XQorLQkJcHVibGljIHZvaWQgcmVzb2x2ZV9zYW1wbGVzICgpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgcmVzb2x2ZV9zYW1wbGVzX3JlZ2lvbiAoaW50IHgs IGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKy0JCXB1YmxpYyB2b2lkIHJvdGF0ZSAoZmxvYXQgYW5nbGUsIGZsb2F0IHgsIGZsb2F0 IHksIGZsb2F0IHopOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZv aWQgcm90YXRlX2V1bGVyIChDb2dsLkV1bGVyIGV1bGVyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHJvdGF0ZV9xdWF0ZXJuaW9uIChDb2dsLlF1YXRlcm5p b24gcXVhdGVybmlvbik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGlj IHZvaWQgc2NhbGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yX21hc2sgKENvZ2wuQ29sb3JN YXNrIGNvbG9yX21hc2spOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9kZXB0aF90ZXh0dXJlX2VuYWJsZWQgKENvZ2wuQm9vbCBlbmFibGVkKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCQlwdWJsaWMgdm9pZCBzZXRfZGVwdGhfd3Jp dGVfZW5hYmxlZCAoQ29nbC5Cb29sIGRlcHRoX3dyaXRlX2VuYWJsZWQpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2RpdGhlcl9lbmFibGVkIChDb2ds LkJvb2wgZGl0aGVyX2VuYWJsZWQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF9tb2RlbHZpZXdfbWF0cml4IChDb2dsLk1hdHJpeCBtYXRyaXgpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9wcm9qZWN0 aW9uX21hdHJpeCAoQ29nbC5NYXRyaXggbWF0cml4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zYW1wbGVzX3Blcl9waXhlbCAoaW50IHNhbXBsZXNf cGVyX3BpeGVsKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIwIildCistCQlwdWJsaWMgdm9p ZCBzZXRfc3RlcmVvX21vZGUgKENvZ2wuU3RlcmVvTW9kZSBzdGVyZW9fbW9kZSk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBzZXRfdmlld3BvcnQgKGZsb2F0 IHgsIGZsb2F0IHksIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHRyYW5zZm9ybSAoQ29nbC5NYXRyaXggbWF0 cml4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCB0cmFu c2xhdGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQl9CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF90ZXh0dXJlX2dldF9n dHlwZSAoKSIpXQorLQlwdWJsaWMgaW50ZXJmYWNlIFRleHR1cmUgOiBDb2dsLk9iamVjdCB7Cist CQlwdWJsaWMgQ29nbC5Cb29sIGFsbG9jYXRlICgpIHRocm93cyBHTGliLkVycm9yOworLQkJcHVi bGljIHN0YXRpYyB1aW50MzIgZXJyb3JfcXVhcmsgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xOCIpXQorLQkJcHVibGljIENvZ2wuVGV4dHVyZUNvbXBvbmVudHMgZ2V0X2NvbXBvbmVudHMg KCk7CistCQlwdWJsaWMgaW50IGdldF9kYXRhIChDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgdWlu dCByb3dzdHJpZGUsIHVpbnQ4IGRhdGEpOworLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfZ2xfdGV4 dHVyZSAob3V0IHVpbnQgb3V0X2dsX2hhbmRsZSwgb3V0IHVpbnQgb3V0X2dsX3RhcmdldCk7Cist CQlwdWJsaWMgdWludCBnZXRfaGVpZ2h0ICgpOworLQkJcHVibGljIGludCBnZXRfbWF4X3dhc3Rl ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wg Z2V0X3ByZW11bHRpcGxpZWQgKCk7CistCQlwdWJsaWMgdWludCBnZXRfd2lkdGggKCk7CistCQlw dWJsaWMgQ29nbC5Cb29sIGlzX3NsaWNlZCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJs aWMgc3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9iaXRtYXAgKENvZ2wuQml0bWFwIGJpdG1h cCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9y bWF0KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBu ZXdfZnJvbV9kYXRhIChpbnQgd2lkdGgsIGludCBoZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZs YWdzLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9m b3JtYXQsIGludCByb3dzdHJpZGUsIHVpbnQ4IGRhdGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0J CXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIG5ld19mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFt ZSwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9y bWF0KSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgc3Rh dGljIENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9mb3JlaWduICh1aW50IGdsX2hhbmRsZSwgdWludCBn bF90YXJnZXQsIHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCB1aW50IHhfcG90X3dhc3RlLCB1aW50 IHlfcG90X3dhc3RlLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjEuMiIp XQorLQkJcHVibGljIENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9zdWJfdGV4dHVyZSAoaW50IHN1Yl94 LCBpbnQgc3ViX3ksIGludCBzdWJfd2lkdGgsIGludCBzdWJfaGVpZ2h0KTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAi MC44IildCistCQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfd2l0aF9zaXplICh1aW50 IHdpZHRoLCB1aW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxG b3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCist CQlwdWJsaWMgdm9pZCBzZXRfY29tcG9uZW50cyAoQ29nbC5UZXh0dXJlQ29tcG9uZW50cyBjb21w b25lbnRzKTsKKy0JCXB1YmxpYyBDb2dsLkJvb2wgc2V0X2RhdGEgKENvZ2wuUGl4ZWxGb3JtYXQg Zm9ybWF0LCBpbnQgcm93c3RyaWRlLCB1aW50OCBkYXRhLCBpbnQgbGV2ZWwpIHRocm93cyBHTGli LkVycm9yOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9wcmVtdWx0aXBsaWVkIChDb2dsLkJvb2wgcHJlbXVsdGlwbGllZCk7CistCQlwdWJsaWMgQ29n bC5Cb29sIHNldF9yZWdpb24gKGludCBzcmNfeCwgaW50IHNyY195LCBpbnQgZHN0X3gsIGludCBk c3RfeSwgdWludCBkc3Rfd2lkdGgsIHVpbnQgZHN0X2hlaWdodCwgaW50IHdpZHRoLCBpbnQgaGVp Z2h0LCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgdWludCByb3dzdHJpZGUsIHVpbnQ4IGRhdGEp OworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRf cmVnaW9uX2Zyb21fYml0bWFwIChpbnQgc3JjX3gsIGludCBzcmNfeSwgaW50IGRzdF94LCBpbnQg ZHN0X3ksIHVpbnQgZHN0X3dpZHRoLCB1aW50IGRzdF9oZWlnaHQsIENvZ2wuQml0bWFwIGJpdG1h cCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCist CVtTaW1wbGVUeXBlXQorLQlwdWJsaWMgc3RydWN0IEFuZ2xlIDogaW50MzIgeworLQl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbU2ltcGxlVHlwZV0K Ky0JcHVibGljIHN0cnVjdCBCb29sIDogaW50IHsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfY29sb3JfZ2V0X2d0eXBlICgp IildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0cnVjdCBDb2xvciB7 CistCQlwdWJsaWMgQ29nbC5Db2xvcj8gY29weSAoKTsKKy0JCXB1YmxpYyBzdGF0aWMgQ29nbC5C b29sIGVxdWFsICh2b2lkKiB2MSwgdm9pZCogdjIpOworLQkJcHVibGljIGZsb2F0IGdldF9hbHBo YSAoKTsKKy0JCXB1YmxpYyB1aW50OCBnZXRfYWxwaGFfYnl0ZSAoKTsKKy0JCXB1YmxpYyBmbG9h dCBnZXRfYWxwaGFfZmxvYXQgKCk7CistCQlwdWJsaWMgZmxvYXQgZ2V0X2JsdWUgKCk7CistCQlw dWJsaWMgdWludDggZ2V0X2JsdWVfYnl0ZSAoKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfYmx1ZV9m bG9hdCAoKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfZ3JlZW4gKCk7CistCQlwdWJsaWMgdWludDgg Z2V0X2dyZWVuX2J5dGUgKCk7CistCQlwdWJsaWMgZmxvYXQgZ2V0X2dyZWVuX2Zsb2F0ICgpOwor LQkJcHVibGljIGZsb2F0IGdldF9yZWQgKCk7CistCQlwdWJsaWMgdWludDggZ2V0X3JlZF9ieXRl ICgpOworLQkJcHVibGljIGZsb2F0IGdldF9yZWRfZmxvYXQgKCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBpbml0X2Zyb21fNGYgKGZsb2F0IHJlZCwgZmxv YXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGluaXRfZnJvbV80ZnYgKGZsb2F0IGNvbG9yX2FycmF5 KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGluaXRfZnJv bV80dWIgKHVpbnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsK Ky0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgaW5p dF9mcm9tX2hzbCAob3V0IENvZ2wuQ29sb3IgY29sb3IsIGZsb2F0IGh1ZSwgZmxvYXQgc2F0dXJh dGlvbiwgZmxvYXQgbHVtaW5hbmNlKTsKKy0JCXB1YmxpYyB2b2lkIHByZW11bHRpcGx5ICgpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FscGhhIChm bG9hdCBhbHBoYSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9p ZCBzZXRfYWxwaGFfYnl0ZSAodWludDggYWxwaGEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2FscGhhX2Zsb2F0IChmbG9hdCBhbHBoYSk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfYmx1ZSAoZmxvYXQg Ymx1ZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRf Ymx1ZV9ieXRlICh1aW50OCBibHVlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF9ibHVlX2Zsb2F0IChmbG9hdCBibHVlKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjQiLCBzaW5jZSA9ICIxLjAi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9mcm9tXzRmIChmbG9hdCByZWQsIGZsb2F0IGdyZWVuLCBm bG9hdCBibHVlLCBmbG9hdCBhbHBoYSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS40Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9p ZCBzZXRfZnJvbV80dWIgKHVpbnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4 IGFscGhhKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9ncmVlbiAoZmxvYXQgZ3JlZW4pOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X2dyZWVuX2J5dGUgKHVpbnQ4IGdyZWVuKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ncmVlbl9mbG9hdCAoZmxvYXQgZ3Jl ZW4pOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3Jl ZCAoZmxvYXQgcmVkKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9yZWRfYnl0ZSAodWludDggcmVkKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQi KV0KKy0JCXB1YmxpYyB2b2lkIHNldF9yZWRfZmxvYXQgKGZsb2F0IHJlZCk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIHZvaWQgdG9faHNsIChvdXQgZmxvYXQgaHVl LCBvdXQgZmxvYXQgc2F0dXJhdGlvbiwgb3V0IGZsb2F0IGx1bWluYW5jZSk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCB1bnByZW11bHRpcGx5ICgpOworLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190eXBlX2lk ID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCXB1YmxpYyBzdHJ1Y3Qg RGVidWdPYmplY3RUeXBlSW5mbyB7CistCQlwdWJsaWMgd2VhayBzdHJpbmcgbmFtZTsKKy0JCXB1 YmxpYyB1bG9uZyBpbnN0YW5jZV9jb3VudDsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1NpbXBsZVR5cGVdCistCXB1YmxpYyBzdHJ1Y3QgSGFu ZGxlIHsKKy0JCXB1YmxpYyBzdGF0aWMgR0xpYi5UeXBlIGdldF90eXBlICgpOworLQkJcHVibGlj IENvZ2wuSGFuZGxlIEByZWYgKCk7CistCQlwdWJsaWMgdm9pZCB1bnJlZiAoKTsKKy0JfQorLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xf bWF0cml4X2dldF9ndHlwZSAoKSIpXQorLQlwdWJsaWMgc3RydWN0IE1hdHJpeCB7CistCQlwdWJs aWMgZmxvYXQgeHg7CistCQlwdWJsaWMgZmxvYXQgeXg7CistCQlwdWJsaWMgZmxvYXQgeng7Cist CQlwdWJsaWMgZmxvYXQgd3g7CistCQlwdWJsaWMgZmxvYXQgeHk7CistCQlwdWJsaWMgZmxvYXQg eXk7CistCQlwdWJsaWMgZmxvYXQgenk7CistCQlwdWJsaWMgZmxvYXQgd3k7CistCQlwdWJsaWMg ZmxvYXQgeHo7CistCQlwdWJsaWMgZmxvYXQgeXo7CistCQlwdWJsaWMgZmxvYXQgeno7CistCQlw dWJsaWMgZmxvYXQgd3o7CistCQlwdWJsaWMgZmxvYXQgeHc7CistCQlwdWJsaWMgZmxvYXQgeXc7 CistCQlwdWJsaWMgZmxvYXQgenc7CistCQlwdWJsaWMgZmxvYXQgd3c7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS42IildCistCQlwdWJsaWMgQ29nbC5NYXRyaXg/IGNvcHkgKCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBlcXVhbCAo dm9pZCogdjEsIHZvaWQqIHYyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1 YmxpYyB2b2lkIGZyZWUgKCk7CistCQlwdWJsaWMgdm9pZCBmcnVzdHVtIChmbG9hdCBsZWZ0LCBm bG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3AsIGZsb2F0IHpfbmVhciwgZmxvYXQg el9mYXIpOworLQkJcHVibGljIHVub3duZWQgZmxvYXRbXSBnZXRfYXJyYXkgKCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgQ29nbC5Cb29sIGdldF9pbnZlcnNlIChv dXQgQ29nbC5NYXRyaXggaW52ZXJzZSk7CistCQlwdWJsaWMgdm9pZCBpbml0X2Zyb21fZXVsZXIg KENvZ2wuRXVsZXIgZXVsZXIpOworLQkJcHVibGljIHZvaWQgaW5pdF9mcm9tX3F1YXRlcm5pb24g KENvZ2wuUXVhdGVybmlvbiBxdWF0ZXJuaW9uKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAi KV0KKy0JCXB1YmxpYyB2b2lkIGluaXRfdHJhbnNsYXRpb24gKGZsb2F0IHR4LCBmbG9hdCB0eSwg ZmxvYXQgdHopOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIENvZ2wu Qm9vbCBpc19pZGVudGl0eSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1 YmxpYyB2b2lkIGxvb2tfYXQgKGZsb2F0IGV5ZV9wb3NpdGlvbl94LCBmbG9hdCBleWVfcG9zaXRp b25feSwgZmxvYXQgZXllX3Bvc2l0aW9uX3osIGZsb2F0IG9iamVjdF94LCBmbG9hdCBvYmplY3Rf eSwgZmxvYXQgb2JqZWN0X3osIGZsb2F0IHdvcmxkX3VwX3gsIGZsb2F0IHdvcmxkX3VwX3ksIGZs b2F0IHdvcmxkX3VwX3opOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIG9ydGhvIChmbG9hdCBsZWZ0LCBm bG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3AsIGZsb2F0IG5lYXIsIGZsb2F0IGZh cik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgb3J0aG9n cmFwaGljIChmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIsIGZsb2F0 IG5lYXIsIGZsb2F0IGZhcik7CistCQlwdWJsaWMgdm9pZCBwZXJzcGVjdGl2ZSAoZmxvYXQgZm92 X3ksIGZsb2F0IGFzcGVjdCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CistCQlwdWJsaWMg dm9pZCBwcm9qZWN0X3BvaW50cyAoaW50IG5fY29tcG9uZW50cywgc2l6ZV90IHN0cmlkZV9pbiwg dm9pZCogcG9pbnRzX2luLCBzaXplX3Qgc3RyaWRlX291dCwgdm9pZCogcG9pbnRzX291dCwgaW50 IG5fcG9pbnRzKTsKKy0JCXB1YmxpYyB2b2lkIHJvdGF0ZSAoZmxvYXQgYW5nbGUsIGZsb2F0IHgs IGZsb2F0IHksIGZsb2F0IHopOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVi bGljIHZvaWQgcm90YXRlX2V1bGVyIChDb2dsLkV1bGVyIGV1bGVyKTsKKy0JCVtWZXJzaW9uIChz aW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHJvdGF0ZV9xdWF0ZXJuaW9uIChDb2dsLlF1 YXRlcm5pb24gcXVhdGVybmlvbik7CistCQlwdWJsaWMgdm9pZCBzY2FsZSAoZmxvYXQgc3gsIGZs b2F0IHN5LCBmbG9hdCBzeik7CistCQlwdWJsaWMgdm9pZCB0cmFuc2Zvcm1fcG9pbnQgKHJlZiBm bG9hdCB4LCByZWYgZmxvYXQgeSwgcmVmIGZsb2F0IHosIHJlZiBmbG9hdCB3KTsKKy0JCXB1Ymxp YyB2b2lkIHRyYW5zZm9ybV9wb2ludHMgKGludCBuX2NvbXBvbmVudHMsIHNpemVfdCBzdHJpZGVf aW4sIHZvaWQqIHBvaW50c19pbiwgc2l6ZV90IHN0cmlkZV9vdXQsIHZvaWQqIHBvaW50c19vdXQs IGludCBuX3BvaW50cyk7CistCQlwdWJsaWMgdm9pZCB0cmFuc2xhdGUgKGZsb2F0IHgsIGZsb2F0 IHksIGZsb2F0IHopOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2 b2lkIHRyYW5zcG9zZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1Ymxp YyB2b2lkIHZpZXdfMmRfaW5fZnJ1c3R1bSAoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0 IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfMmQsIGZsb2F0IHdpZHRo XzJkLCBmbG9hdCBoZWlnaHRfMmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJ cHVibGljIHZvaWQgdmlld18yZF9pbl9wZXJzcGVjdGl2ZSAoZmxvYXQgZm92X3ksIGZsb2F0IGFz cGVjdCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6XzJkLCBmbG9hdCB3aWR0aF8yZCwgZmxvYXQgaGVp Z2h0XzJkKTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi LCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKy0J cHVibGljIHN0cnVjdCBPbnNjcmVlbkRpcnR5SW5mbyB7CistCQlwdWJsaWMgaW50IHg7CistCQlw dWJsaWMgaW50IHk7CistCQlwdWJsaWMgaW50IHdpZHRoOworLQkJcHVibGljIGludCBoZWlnaHQ7 CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBzdHJ1Y3QgVGV4dHVyZVZlcnRleCB7CistCQlwdWJs aWMgZmxvYXQgeDsKKy0JCXB1YmxpYyBmbG9hdCB5OworLQkJcHVibGljIGZsb2F0IHo7CistCQlw dWJsaWMgZmxvYXQgdHg7CistCQlwdWJsaWMgZmxvYXQgdHk7CistCQlwdWJsaWMgQ29nbC5Db2xv ciBjb2xvcjsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi LCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQlw dWJsaWMgc3RydWN0IFVzZXJEYXRhS2V5IHsKKy0JCXB1YmxpYyBpbnQgdW51c2VkOworLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIl9Db2ds Q29sb3JTaXplQ2hlY2siLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIHN0cnVjdCBf Q29sb3JTaXplQ2hlY2sgeworLQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldCistCQlw dWJsaWMgd2VhayBjaGFyW10gY29tcGlsZV90aW1lX2Fzc2VydF9Db2dsQ29sb3Jfc2l6ZTsKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJf Q29nbE1hdHJpeFNpemVDaGVjayIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgc3Ry dWN0IF9NYXRyaXhTaXplQ2hlY2sgeworLQkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSld CistCQlwdWJsaWMgd2VhayBjaGFyW10gY29tcGlsZV90aW1lX2Fzc2VydF9Db2dsTWF0cml4X3Np emU7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25h bWUgPSAiX0NvZ2xUZXh0dXJlVmVydGV4U2l6ZUNoZWNrIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSld CistCXB1YmxpYyBzdHJ1Y3QgX1RleHR1cmVWZXJ0ZXhTaXplQ2hlY2sgeworLQkJW0NDb2RlIChh cnJheV9sZW5ndGggPSBmYWxzZSldCistCQlwdWJsaWMgd2VhayBjaGFyW10gY29tcGlsZV90aW1l X2Fzc2VydF9Db2dsVGV4dHVyZVZlcnRleF9zaXplOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9BVFRSSUJVVEVfVFlQRV8i LCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlw dWJsaWMgZW51bSBBdHRyaWJ1dGVUeXBlIHsKKy0JCUJZVEUsCistCQlVTlNJR05FRF9CWVRFLAor LQkJU0hPUlQsCistCQlVTlNJR05FRF9TSE9SVCwKKy0JCUZMT0FUCistCX0KKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0JJVE1BUF9F UlJPUl8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIp XQorLQlwdWJsaWMgZW51bSBCaXRtYXBFcnJvciB7CistCQlGQUlMRUQsCistCQlVTktOT1dOX1RZ UEUsCistCQlDT1JSVVBUX0lNQUdFCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0JMRU5EX1NUUklOR19FUlJPUl8iLCBoYXNf dHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMg ZW51bSBCbGVuZFN0cmluZ0Vycm9yIHsKKy0JCVBBUlNFX0VSUk9SLAorLQkJQVJHVU1FTlRfUEFS U0VfRVJST1IsCistCQlJTlZBTElEX0VSUk9SLAorLQkJR1BVX1VOU1VQUE9SVEVEX0VSUk9SOwor LQkJcHVibGljIHN0YXRpYyB1aW50MzIgcXVhcmsgKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0JVRkZFUl9CSVRfIiwg aGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtGbGFnc10KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEu MCIpXQorLQlwdWJsaWMgZW51bSBCdWZmZXJCaXQgeworLQkJQ09MT1IsCistCQlERVBUSCwKKy0J CVNURU5DSUwKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi LCBjcHJlZml4ID0gIkNPR0xfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtGbGFnc10KKy0J W1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgZW51bSBCdWZmZXJUYXJnZXQgewor LQkJV0lORE9XX0JVRkZFUiwKKy0JCU9GRlNDUkVFTl9CVUZGRVIKKy0JfQorLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfQ09MT1JfTUFT S18iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0ZsYWdzXQorLQlwdWJsaWMgZW51bSBDb2xv ck1hc2sgeworLQkJTk9ORSwKKy0JCVJFRCwKKy0JCUdSRUVOLAorLQkJQkxVRSwKKy0JCUFMUEhB LAorLQkJQUxMCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IiwgY3ByZWZpeCA9ICJDT0dMX0RFUFRIX1RFU1RfRlVOQ1RJT05fIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCistCXB1YmxpYyBlbnVtIERlcHRoVGVzdEZ1bmN0aW9uIHsKKy0JCU5FVkVSLAorLQkJ TEVTUywKKy0JCUVRVUFMLAorLQkJTEVRVUFMLAorLQkJR1JFQVRFUiwKKy0JCU5PVEVRVUFMLAor LQkJR0VRVUFMLAorLQkJQUxXQVlTCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZFQVRVUkVfIiwgaGFzX3R5cGVfaWQgPSBm YWxzZSldCistCVtGbGFnc10KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMg ZW51bSBGZWF0dXJlRmxhZ3MgeworLQkJVEVYVFVSRV9SRUNUQU5HTEUsCistCQlURVhUVVJFX05Q T1QsCistCQlURVhUVVJFX1lVViwKKy0JCVRFWFRVUkVfUkVBRF9QSVhFTFMsCistCQlTSEFERVJT X0dMU0wsCistCQlPRkZTQ1JFRU4sCistCQlPRkZTQ1JFRU5fTVVMVElTQU1QTEUsCistCQlPRkZT Q1JFRU5fQkxJVCwKKy0JCUZPVVJfQ0xJUF9QTEFORVMsCistCQlTVEVOQ0lMX0JVRkZFUiwKKy0J CVZCT1MsCistCQlQQk9TLAorLQkJVU5TSUdORURfSU5UX0lORElDRVMsCistCQlERVBUSF9SQU5H RSwKKy0JCVRFWFRVUkVfTlBPVF9CQVNJQywKKy0JCVRFWFRVUkVfTlBPVF9NSVBNQVAsCistCQlU RVhUVVJFX05QT1RfUkVQRUFULAorLQkJUE9JTlRfU1BSSVRFLAorLQkJVEVYVFVSRV8zRCwKKy0J CU1BUF9CVUZGRVJfRk9SX1JFQUQsCistCQlNQVBfQlVGRkVSX0ZPUl9XUklURSwKKy0JCU9OU0NS RUVOX01VTFRJUExFLAorLQkJREVQVEhfVEVYVFVSRQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GSUxURVJfIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVtIEZpbHRlclJldHVybiB7CistCQlDT05USU5V RSwKKy0JCVJFTU9WRQorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GT0dfTU9ERV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K Ky0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBGb2dNb2RlIHsKKy0J CUxJTkVBUiwKKy0JCUVYUE9ORU5USUFMLAorLQkJRVhQT05FTlRJQUxfU1FVQVJFRAorLQl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09H TF9GUkFNRV9FVkVOVF8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTQiKV0KKy0JcHVibGljIGVudW0gRnJhbWVFdmVudCB7CistCQlTWU5DLAorLQkJQ09N UExFVEUKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBj cHJlZml4ID0gIkNPR0xfRlJBTUVCVUZGRVJfRVJST1JfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSld CistCXB1YmxpYyBlbnVtIEZyYW1lYnVmZmVyRXJyb3IgeworLQkJW0NDb2RlIChjbmFtZSA9ICJD T0dMX0ZSQU1FQlVGRkVSX0VSUk9SX0FMTE9DQVRFIildCistCQlGUkFNRUJVRkZFUl9FUlJPUl9B TExPQ0FURTsKKy0JCXB1YmxpYyBzdGF0aWMgdWludDMyIHF1YXJrICgpOworLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9JTkRJ Q0VTX1RZUEVfVU5TSUdORURfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1YmxpYyBlbnVt IEluZGljZXNUeXBlIHsKKy0JCUJZVEUsCistCQlTSE9SVCwKKy0JCUlOVAorLQl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9NQVRF UklBTF9BTFBIQV9GVU5DXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgZW51bSBN YXRlcmlhbEFscGhhRnVuYyB7CistCQlORVZFUiwKKy0JCUxFU1MsCistCQlFUVVBTCwKKy0JCUxF UVVBTCwKKy0JCUdSRUFURVIsCistCQlOT1RFUVVBTCwKKy0JCUdFUVVBTCwKKy0JCUFMV0FZUwor LQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXgg PSAiQ09HTF9NQVRFUklBTF9GSUxURVJfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCXB1Ymxp YyBlbnVtIE1hdGVyaWFsRmlsdGVyIHsKKy0JCU5FQVJFU1QsCistCQlMSU5FQVIsCistCQlORUFS RVNUX01JUE1BUF9ORUFSRVNULAorLQkJTElORUFSX01JUE1BUF9ORUFSRVNULAorLQkJTkVBUkVT VF9NSVBNQVBfTElORUFSLAorLQkJTElORUFSX01JUE1BUF9MSU5FQVIKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfTUFURVJJ QUxfTEFZRVJfVFlQRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBNYXRlcmlhbExheWVyVHlwZSB7CistCQlbQ0NvZGUg KGNuYW1lID0gIkNPR0xfTUFURVJJQUxfTEFZRVJfVFlQRV9URVhUVVJFIildCistCQlNQVRFUklB TF9MQVlFUl9UWVBFX1RFWFRVUkUKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfTUFURVJJQUxfV1JBUF9NT0RFXyIsIGhhc190 eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCistCXB1YmxpYyBl bnVtIE1hdGVyaWFsV3JhcE1vZGUgeworLQkJUkVQRUFULAorLQkJQ0xBTVBfVE9fRURHRSwKKy0J CUFVVE9NQVRJQworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIsIGNwcmVmaXggPSAiQ09HTF9QSVBFTElORV9BTFBIQV9GVU5DXyIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorLQlwdWJsaWMgZW51bSBQaXBlbGluZUFscGhhRnVuYyB7CistCQlORVZFUiwKKy0J CUxFU1MsCistCQlFUVVBTCwKKy0JCUxFUVVBTCwKKy0JCUdSRUFURVIsCistCQlOT1RFUVVBTCwK Ky0JCUdFUVVBTCwKKy0JCUFMV0FZUworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9QSVBFTElORV9DVUxMX0ZBQ0VfTU9ERV8i LCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVudW0gUGlwZWxpbmVDdWxsRmFjZU1v ZGUgeworLQkJTk9ORSwKKy0JCUZST05ULAorLQkJQkFDSywKKy0JCUJPVEgKKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfUElQ RUxJTkVfRklMVEVSXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlwdWJsaWMgZW51bSBQaXBl bGluZUZpbHRlciB7CistCQlORUFSRVNULAorLQkJTElORUFSLAorLQkJTkVBUkVTVF9NSVBNQVBf TkVBUkVTVCwKKy0JCUxJTkVBUl9NSVBNQVBfTkVBUkVTVCwKKy0JCU5FQVJFU1RfTUlQTUFQX0xJ TkVBUiwKKy0JCUxJTkVBUl9NSVBNQVBfTElORUFSCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1BJUEVMSU5FX1dSQVBfTU9E RV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQor LQlwdWJsaWMgZW51bSBQaXBlbGluZVdyYXBNb2RlIHsKKy0JCVJFUEVBVCwKKy0JCU1JUlJPUkVE X1JFUEVBVCwKKy0JCUNMQU1QX1RPX0VER0UsCistCQlBVVRPTUFUSUMKKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfUElYRUxf Rk9STUFUXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbRmxhZ3NdCistCVtWZXJzaW9uIChz aW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIGVudW0gUGl4ZWxGb3JtYXQgeworLQkJQU5ZLAorLQkJ QV84LAorLQkJUkdCXzU2NSwKKy0JCVJHQkFfNDQ0NCwKKy0JCVJHQkFfNTU1MSwKKy0JCVlVViwK Ky0JCUdfOCwKKy0JCVJHXzg4LAorLQkJUkdCXzg4OCwKKy0JCUJHUl84ODgsCistCQlSR0JBXzg4 ODgsCistCQlCR1JBXzg4ODgsCistCQlBUkdCXzg4ODgsCistCQlBQkdSXzg4ODgsCistCQlSR0JB XzEwMTAxMDIsCistCQlCR1JBXzEwMTAxMDIsCistCQlBUkdCXzIxMDEwMTAsCistCQlBQkdSXzIx MDEwMTAsCistCQlSR0JBXzg4ODhfUFJFLAorLQkJQkdSQV84ODg4X1BSRSwKKy0JCUFSR0JfODg4 OF9QUkUsCistCQlBQkdSXzg4ODhfUFJFLAorLQkJUkdCQV80NDQ0X1BSRSwKKy0JCVJHQkFfNTU1 MV9QUkUsCistCQlSR0JBXzEwMTAxMDJfUFJFLAorLQkJQkdSQV8xMDEwMTAyX1BSRSwKKy0JCUFS R0JfMjEwMTAxMF9QUkUsCistCQlBQkdSXzIxMDEwMTBfUFJFLAorLQkJREVQVEhfMTYsCistCQlE RVBUSF8zMiwKKy0JCURFUFRIXzI0X1NURU5DSUxfOAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9SRUFEX1BJWEVMU19DT0xP Ul8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0ZsYWdzXQorLQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCistCXB1YmxpYyBlbnVtIFJlYWRQaXhlbHNGbGFncyB7CistCQlbQ0NvZGUgKGNu YW1lID0gIkNPR0xfUkVBRF9QSVhFTFNfQ09MT1JfQlVGRkVSIildCistCQlSRUFEX1BJWEVMU19D T0xPUl9CVUZGRVIKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiLCBjcHJlZml4ID0gIkNPR0xfUkVOREVSRVJfRVJST1JfIiwgaGFzX3R5cGVfaWQgPSBmYWxz ZSldCistCXB1YmxpYyBlbnVtIFJlbmRlcmVyRXJyb3IgeworLQkJWExJQl9ESVNQTEFZX09QRU4s CistCQlCQURfQ09OU1RSQUlOVAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9TSEFERVJfVFlQRV8iLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBTaGFk ZXJUeXBlIHsKKy0JCVZFUlRFWCwKKy0JCUZSQUdNRU5UCistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1NURVJFT18iLCBoYXNf dHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVudW0gU3RlcmVvTW9kZSB7CistCQlCT1RILAor LQkJTEVGVCwKKy0JCVJJR0hUCistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX1NZU1RFTV9FUlJPUl8iLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgZW51bSBTeXN0 ZW1FcnJvciB7CistCQlVTlNVUFBPUlRFRCwKKy0JCU5PX01FTU9SWQorLQl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9URVhUVVJF X0NPTVBPTkVOVFNfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjE4IildCistCXB1YmxpYyBlbnVtIFRleHR1cmVDb21wb25lbnRzIHsKKy0JCUEsCistCQlS RywKKy0JCVJHQiwKKy0JCVJHQkEsCistCQlERVBUSAorLQl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9URVhUVVJFX0VSUk9SXyIs IGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCXB1 YmxpYyBlbnVtIFRleHR1cmVFcnJvciB7CistCQlTSVpFLAorLQkJRk9STUFULAorLQkJQkFEX1BB UkFNRVRFUiwKKy0JCVRZUEU7CistCQlwdWJsaWMgc3RhdGljIHVpbnQzMiBxdWFyayAoKTsKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0g IkNPR0xfVEVYVFVSRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0ZsYWdzXQorLQlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBlbnVtIFRleHR1cmVGbGFncyB7CistCQlO T05FLAorLQkJTk9fQVVUT19NSVBNQVAsCistCQlOT19TTElDSU5HLAorLQkJTk9fQVRMQVMKKy0J fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0g IkNPR0xfVEVYVFVSRV9UWVBFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgZW51bSBUZXh0dXJlVHlwZSB7CistCQlAMkQsCist CQlAM0QsCistCQlSRUNUQU5HTEUKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfVkVSVElDRVNfTU9ERV8iLCBoYXNfdHlwZV9p ZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBW ZXJ0aWNlc01vZGUgeworLQkJUE9JTlRTLAorLQkJTElORVMsCistCQlMSU5FX0xPT1AsCistCQlM SU5FX1NUUklQLAorLQkJVFJJQU5HTEVTLAorLQkJVFJJQU5HTEVfU1RSSVAsCistCQlUUklBTkdM RV9GQU4KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBj cHJlZml4ID0gIkNPR0xfV0lORElOR18iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGlj IGVudW0gV2luZGluZyB7CistCQlDTE9DS1dJU0UsCistCQlDT1VOVEVSX0NMT0NLV0lTRQorLQl9 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAi Q09HTF9XSU5TWVNfRkVBVFVSRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JcHVibGljIGVu dW0gV2luc3lzRmVhdHVyZSB7CistCQlNVUxUSVBMRV9PTlNDUkVFTiwKKy0JCVNXQVBfVEhST1RU TEUsCistCQlWQkxBTktfQ09VTlRFUiwKKy0JCVZCTEFOS19XQUlULAorLQkJVEVYVFVSRV9GUk9N X1BJWE1BUCwKKy0JCVNXQVBfQlVGRkVSU19FVkVOVCwKKy0JCVNXQVBfUkVHSU9OLAorLQkJU1dB UF9SRUdJT05fVEhST1RUTEUsCistCQlTV0FQX1JFR0lPTl9TWU5DSFJPTklaRUQsCistCQlCVUZG RVJfQUdFLAorLQkJU1lOQ19BTkRfQ09NUExFVEVfRVZFTlQsCistCQlOX0ZFQVRVUkVTCistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9z ID0gMS45KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQlwdWJsaWMgZGVsZWdhdGUg dm9pZCBEZWJ1Z09iamVjdEZvcmVhY2hUeXBlQ2FsbGJhY2sgKENvZ2wuRGVidWdPYmplY3RUeXBl SW5mbyBpbmZvKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg aW5zdGFuY2VfcG9zID0gMi45KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGRlbGVnYXRl IENvZ2wuQm9vbCBNYXRlcmlhbExheWVyQ2FsbGJhY2sgKENvZ2wuTWF0ZXJpYWwgbWF0ZXJpYWws IGludCBsYXllcl9pbmRleCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2Iild CistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIE9uc2NyZWVuRGlydHlDYWxsYmFjayAoQ29nbC5PbnNj cmVlbiBvbnNjcmVlbiwgQ29nbC5PbnNjcmVlbkRpcnR5SW5mbyBpbmZvKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9zID0gMy45KV0KKy0J W1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBPbnNjcmVl blJlc2l6ZUNhbGxiYWNrIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuLCBpbnQgd2lkdGgsIGludCBo ZWlnaHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0 YW5jZV9wb3MgPSAyLjkpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBPbnNjcmVlblgxMU1hc2tD YWxsYmFjayAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbiwgdWludDMyIGV2ZW50X21hc2spOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAy LjkpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCXB1YmxpYyBkZWxlZ2F0ZSBDb2ds LkJvb2wgUGlwZWxpbmVMYXllckNhbGxiYWNrIChDb2dsLlBpcGVsaW5lIHBpcGVsaW5lLCBpbnQg bGF5ZXJfaW5kZXgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi LCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9pZCBTd2FwQnVmZmVy c05vdGlmeSAoQ29nbC5GcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlcik7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGhhc190YXJnZXQgPSBmYWxzZSldCistCXB1Ymxp YyBkZWxlZ2F0ZSB2b2lkIFVzZXJEYXRhRGVzdHJveUNhbGxiYWNrICh2b2lkKiBkYXRhKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9B RklSU1RfQklUIildCistCXB1YmxpYyBjb25zdCBpbnQgQUZJUlNUX0JJVDsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09HTF9BX0JJVCIpXQor LQlwdWJsaWMgY29uc3QgaW50IEFfQklUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX0JHUl9CSVQiKV0KKy0JcHVibGljIGNvbnN0IGlu dCBCR1JfQklUOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBj bmFtZSA9ICJDT0dMX0RFUFRIX0JJVCIpXQorLQlwdWJsaWMgY29uc3QgaW50IERFUFRIX0JJVDsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ09H TF9QUkVNVUxUX0JJVCIpXQorLQlwdWJsaWMgY29uc3QgaW50IFBSRU1VTFRfQklUOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX1NURU5D SUxfQklUIildCistCXB1YmxpYyBjb25zdCBpbnQgU1RFTkNJTF9CSVQ7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfVEVYVFVSRV9NQVhf V0FTVEUiKV0KKy0JcHVibGljIGNvbnN0IGludCBURVhUVVJFX01BWF9XQVNURTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCist CXB1YmxpYyBzdGF0aWMgdm9pZCBiZWdpbl9nbCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjIiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgY2hlY2tf ZXh0ZW5zaW9uIChzdHJpbmcgbmFtZSwgc3RyaW5nIGV4dCk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgY2xlYXIg KENvZ2wuQ29sb3IgY29sb3IsIHVsb25nIGJ1ZmZlcnMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgY2x1dHRl cl9jaGVja19leHRlbnNpb25fQ0xVVFRFUiAoc3RyaW5nIG5hbWUsIHN0cmluZyBleHQpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JcHVibGljIHN0YXRp YyBDb2dsLkJvb2wgY2x1dHRlcl93aW5zeXNfaGFzX2ZlYXR1cmVfQ0xVVFRFUiAoQ29nbC5XaW5z eXNGZWF0dXJlIGZlYXR1cmUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgZGVidWdfbWF0cml4X3ByaW50IChDb2dsLk1hdHJpeCBtYXRyaXgpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEu OCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZGVidWdfb2JqZWN0X2ZvcmVhY2hfdHlwZSAoQ29n bC5EZWJ1Z09iamVjdEZvcmVhY2hUeXBlQ2FsbGJhY2sgZnVuYyk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS44Iild CistCXB1YmxpYyBzdGF0aWMgdm9pZCBkZWJ1Z19vYmplY3RfcHJpbnRfaW5zdGFuY2VzICgpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIGRpc2FibGVfZm9nICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lk IGVuZF9nbCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEw IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGZlYXR1cmVzX2F2YWlsYWJsZSAoQ29nbC5G ZWF0dXJlRmxhZ3MgZmVhdHVyZXMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgZmx1c2ggKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIsIHNpbmNlID0gIjAuOC4yIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBmcnVzdHVtIChm bG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3AsIGZsb2F0IHpf bmVhciwgZmxvYXQgel9mYXIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgZ2V0X2JhY2tmYWNlX2N1bGxp bmdfZW5hYmxlZCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGdldF9iaXRtYXNrcyAob3V0IGludCByZWQsIG91 dCBpbnQgZ3JlZW4sIG91dCBpbnQgYmx1ZSwgb3V0IGludCBhbHBoYSk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wu Qm9vbCBnZXRfZGVwdGhfdGVzdF9lbmFibGVkICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQlwdWJs aWMgc3RhdGljIHVub3duZWQgQ29nbC5GcmFtZWJ1ZmZlciBnZXRfZHJhd19mcmFtZWJ1ZmZlciAo KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2Ug PSAiMC44IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5GZWF0dXJlRmxhZ3MgZ2V0X2ZlYXR1cmVz ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0J cHVibGljIHN0YXRpYyBDb2dsLk1hdHJpeCBnZXRfbW9kZWx2aWV3X21hdHJpeCAoKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIild CistCXB1YmxpYyBzdGF0aWMgR0xpYi5PcHRpb25Hcm91cCBnZXRfb3B0aW9uX2dyb3VwICgpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGlj IHN0YXRpYyBDb2dsLk1hdHJpeCBnZXRfcHJvamVjdGlvbl9tYXRyaXggKCk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQqIGdldF9zb3VyY2UgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZ2V0X3ZpZXdw b3J0IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gb3V0IGZsb2F0IHZbNF0pOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0 YXRpYyBHTGliLlR5cGUgZ3R5cGVfbWF0cml4X2dldF90eXBlICgpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgaXNfZnJhbWVidWZmZXIgKHZvaWQqIG9iamVj dCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBpc19vbnNj cmVlbiAodm9pZCogb2JqZWN0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JcHVibGljIHN0YXRpYyBD b2dsLkJvb2wgaXNfcGlwZWxpbmUgKHZvaWQqIG9iamVjdCk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgc3Rh dGljIENvZ2wuQm9vbCBpc192ZXJ0ZXhfYnVmZmVyX2luZGljZXMgKENvZ2wuSGFuZGxlIGhhbmRs ZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNl ID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgb3J0aG8gKGZsb2F0IGxlZnQsIGZsb2F0 IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1Ymxp YyBzdGF0aWMgdm9pZCBwZXJzcGVjdGl2ZSAoZmxvYXQgZm92eSwgZmxvYXQgYXNwZWN0LCBmbG9h dCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIHBvbHlnb24gKENvZ2wuVGV4dHVyZVZlcnRleCB2ZXJ0aWNlcywgdWludCBuX3ZlcnRp Y2VzLCBDb2dsLkJvb2wgdXNlX2NvbG9yKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwb3BfbWF0cml4ICgpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIx LjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHBvcF9zb3VyY2UgKCk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg cHVzaF9tYXRyaXggKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcHVzaF9zb3VyY2Ug KHZvaWQqIG1hdGVyaWFsKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGUgKGZsb2F0IHhfMSwgZmxvYXQg eV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBz dGF0aWMgdm9pZCByZWN0YW5nbGVfd2l0aF9tdWx0aXRleHR1cmVfY29vcmRzIChmbG9hdCB4MSwg ZmxvYXQgeTEsIGZsb2F0IHgyLCBmbG9hdCB5MiwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxz ZSldIGZsb2F0W10gdGV4X2Nvb3JkcywgaW50IHRleF9jb29yZHNfbGVuKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlY3RhbmdsZV93aXRoX3RleHR1cmVfY29vcmRz IChmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHgyLCBmbG9hdCB5MiwgZmxvYXQgdHgxLCBmbG9h dCB0eTEsIGZsb2F0IHR4MiwgZmxvYXQgdHkyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIHJlY3RhbmdsZXMgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBm bG9hdFtdIHZlcnRzLCB1aW50IG5fcmVjdHMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuOC42IildCistCXB1Ymxp YyBzdGF0aWMgdm9pZCByZWN0YW5nbGVzX3dpdGhfdGV4dHVyZV9jb29yZHMgKFtDQ29kZSAoYXJy YXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtdIHZlcnRzLCB1aW50IG5fcmVjdHMpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIHJvdGF0ZSAoZmxvYXQgYW5nbGUsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIHNjYWxlIChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMg dm9pZCBzZXRfYmFja2ZhY2VfY3VsbGluZ19lbmFibGVkIChDb2dsLkJvb2wgc2V0dGluZyk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgc2V0X2RlcHRoX3Rlc3RfZW5hYmxlZCAoQ29nbC5Cb29sIHNldHRpbmcpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g 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 LQlwdWJsaWMgc3RhdGljIENvZ2wuU2hhZGVyVHlwZSBzaGFkZXJfZ2V0X3R5cGUgKENvZ2wuSGFu ZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBzaGFkZXJfaXNfY29tcGlsZWQgKENvZ2wu SGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuSGFuZGxlIHNoYWRlcl9yZWYgKENvZ2wuSGFu ZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2hhZGVyX3NvdXJjZSAoQ29nbC5IYW5kbGUgc2hh ZGVyLCBzdHJpbmcgc291cmNlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzaGFkZXJfdW5yZWYgKENvZ2wuSGFu ZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x OCIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJl X25ld19mcm9tX2JpdG1hcCAoQ29nbC5CaXRtYXAgYml0bWFwLCBDb2dsLlRleHR1cmVGbGFncyBm bGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGlj IHN0YXRpYyBDb2dsLlRleHR1cmUgdGV4dHVyZV9uZXdfZnJvbV9kYXRhIChpbnQgd2lkdGgsIGlu dCBoZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1h dCwgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQsIGludCByb3dzdHJpZGUsIHVpbnQ4 IGRhdGEpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBz aW5jZSA9ICIwLjgiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgdGV4dHVyZV9uZXdf ZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2ds LlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCkgdGhyb3dzIEdMaWIuRXJyb3I7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQor LQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJlX25ld19mcm9tX2ZvcmVpZ24gKHVp bnQgZ2xfaGFuZGxlLCB1aW50IGdsX3RhcmdldCwgdWludCB3aWR0aCwgdWludCBoZWlnaHQsIHVp bnQgeF9wb3Rfd2FzdGUsIHVpbnQgeV9wb3Rfd2FzdGUsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0 KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2Ug PSAiMC44IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIHRleHR1cmVfbmV3X3dpdGhf c2l6ZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBD b2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgdHJhbnNmb3JtIChDb2dsLk1hdHJpeCBtYXRyaXgpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHRyYW5z bGF0ZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1 ZmZlcl9hZGQgKENvZ2wuSGFuZGxlIGhhbmRsZSwgc3RyaW5nIGF0dHJpYnV0ZV9uYW1lLCB1aW50 OCBuX2NvbXBvbmVudHMsIENvZ2wuQXR0cmlidXRlVHlwZSB0eXBlLCBDb2dsLkJvb2wgbm9ybWFs aXplZCwgdWludDE2IHN0cmlkZSwgdm9pZCogcG9pbnRlcik7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4 X2J1ZmZlcl9kZWxldGUgKENvZ2wuSGFuZGxlIGhhbmRsZSwgc3RyaW5nIGF0dHJpYnV0ZV9uYW1l KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2Rpc2FibGUgKENvZ2wuSGFuZGxlIGhhbmRs ZSwgc3RyaW5nIGF0dHJpYnV0ZV9uYW1lKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2Ry YXcgKENvZ2wuSGFuZGxlIGhhbmRsZSwgQ29nbC5WZXJ0aWNlc01vZGUgbW9kZSwgaW50IGZpcnN0 LCBpbnQgY291bnQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfZHJhd19lbGVtZW50cyAo Q29nbC5IYW5kbGUgaGFuZGxlLCBDb2dsLlZlcnRpY2VzTW9kZSBtb2RlLCBDb2dsLkhhbmRsZSBp bmRpY2VzLCBpbnQgbWluX2luZGV4LCBpbnQgbWF4X2luZGV4LCBpbnQgaW5kaWNlc19vZmZzZXQs IGludCBjb3VudCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9lbmFibGUgKENvZ2wuSGFu ZGxlIGhhbmRsZSwgc3RyaW5nIGF0dHJpYnV0ZV9uYW1lKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdWludCB2ZXJ0ZXhf YnVmZmVyX2dldF9uX3ZlcnRpY2VzIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBDb2ds LkhhbmRsZSB2ZXJ0ZXhfYnVmZmVyX2luZGljZXNfZ2V0X2Zvcl9xdWFkcyAodWludCBuX2luZGlj ZXMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0J cHVibGljIHN0YXRpYyBDb2dsLkluZGljZXNUeXBlIHZlcnRleF9idWZmZXJfaW5kaWNlc19nZXRf dHlwZSAoQ29nbC5IYW5kbGUgaW5kaWNlcyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuSGFuZGxlIHZlcnRleF9i dWZmZXJfbmV3ICh1aW50IG5fdmVydGljZXMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMiIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuSGFuZGxlIHZlcnRleF9i dWZmZXJfcmVmIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZm ZXJfc3VibWl0IChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZl cl91bnJlZiAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIwLjguMiIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgdmlld3BvcnQgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0KTsKKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCXB1YmxpYyBzdGF0aWMgdWludDMyIHgxMV9v bnNjcmVlbl9nZXRfdmlzdWFsX3hpZCAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbik7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHVpbnQzMiB4MTFfb25zY3JlZW5fZ2V0X3dpbmRv d194aWQgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgeDExX29uc2NyZWVuX3NldF9mb3JlaWduX3dpbmRvd194aWQgKENvZ2wu T25zY3JlZW4gb25zY3JlZW4sIHVpbnQzMiB4aWQsIFtDQ29kZSAoc2NvcGUgPSAiYXN5bmMiKV0g Q29nbC5PbnNjcmVlblgxMU1hc2tDYWxsYmFjayB1cGRhdGUpOworLX0KK2RpZmYgLS1naXQgdmFw aS9tdXR0ZXItY2x1dHRlci01LWN1c3RvbS52YWxhIHZhcGkvbXV0dGVyLWNsdXR0ZXItNS1jdXN0 b20udmFsYQorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCBiOGQ4MzhkMC4uMDAwMDAw MDAKKy0tLSB2YXBpL211dHRlci1jbHV0dGVyLTUtY3VzdG9tLnZhbGEKKysrKyAvZGV2L251bGwK K0BAIC0xLDE1OCArMCwwIEBACistbmFtZXNwYWNlIENsdXR0ZXIgeworLSAgW0NDb2RlICh0eXBl X2lkID0gIkNMVVRURVJfVFlQRV9BQ1RPUl9CT1giLCBjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIildCistICBwdWJsaWMgc3RydWN0IEFjdG9yQm94IHsKKy0gICAgW0NDb2Rl IChjbmFtZSA9ICJjbHV0dGVyX2FjdG9yX2JveF9mcm9tX3ZlcnRpY2VzIildCistICAgIHB1Ymxp YyBBY3RvckJveC5mcm9tX3ZlcnRpY2VzIChDbHV0dGVyLlZlcnRleFtdIHZlcnRzKTsKKy0gIH0K Ky0KKy0gIHB1YmxpYyBzdHJ1Y3QgTWF0cml4IDogQ29nbC5NYXRyaXggeworLSAgfQorLQorLSAg cHVibGljIGNsYXNzIEJhY2tlbmQgOiBHTGliLk9iamVjdCB7CistICAgIFtOb1dyYXBwZXJdCist ICAgIHB1YmxpYyB2aXJ0dWFsIHZvaWQgYWRkX29wdGlvbnMgKEdMaWIuT3B0aW9uR3JvdXAgZ3Jv dXApOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgdmlydHVhbCBib29sIGNyZWF0ZV9j b250ZXh0ICgpIHRocm93cyBHTGliLkVycm9yOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJs aWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuU3RhZ2VXaW5kb3cgY3JlYXRlX3N0YWdlIChDbHV0 dGVyLlN0YWdlIHdyYXBwZXIpIHRocm93cyBHTGliLkVycm9yOworLSAgICBbTm9XcmFwcGVyXQor LSAgICBwdWJsaWMgdmlydHVhbCB2b2lkIGVuc3VyZV9jb250ZXh0IChDbHV0dGVyLlN0YWdlIHN0 YWdlKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0 dGVyLkRldmljZU1hbmFnZXIgZ2V0X2RldmljZV9tYW5hZ2VyICgpOworLSAgICBbTm9XcmFwcGVy XQorLSAgICBwdWJsaWMgdmlydHVhbCBDbHV0dGVyLkZlYXR1cmVGbGFncyBnZXRfZmVhdHVyZXMg KCk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyB2aXJ0dWFsIHZvaWQgaW5pdF9ldmVu dHMgKCk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyB2aXJ0dWFsIHZvaWQgaW5pdF9m ZWF0dXJlcyAoKTsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIHZpcnR1YWwgYm9vbCBw b3N0X3BhcnNlICgpIHRocm93cyBHTGliLkVycm9yOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBw dWJsaWMgdmlydHVhbCBib29sIHByZV9wYXJzZSAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0gICAg W05vV3JhcHBlcl0KKy0gICAgcHVibGljIHZpcnR1YWwgdm9pZCByZWRyYXcgKENsdXR0ZXIuU3Rh Z2Ugc3RhZ2UpOworLSAgfQorLQorLSAgW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JveF9nZXRfdHlwZSAoKSIpXQorLSAg cHVibGljIGNsYXNzIEJveCA6IENsdXR0ZXIuQWN0b3IgeworLSAgICBwdWJsaWMgQ2x1dHRlci5M YXlvdXRNYW5hZ2VyIGxheW91dF9tYW5hZ2VyIHsgZ2V0OyBzZXQ7IH0KKy0gIH0KKy0KKy0gIFtD Q29kZSAodHlwZV9pZCA9ICJDTFVUVEVSX1RZUEVfQ09MT1IiLCBjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIildCistICBwdWJsaWMgc3RydWN0IENvbG9yIHsKKy0gICAgW0ND b2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbG9yX2Zyb21faGxzIildCistICAgIHB1YmxpYyBDb2xv ci5mcm9tX2hscyAoZmxvYXQgaHVlLCBmbG9hdCBsdW1pbmFuY2UsIGZsb2F0IHNhdHVyYXRpb24p OworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfY29sb3JfZnJvbV9waXhlbCIpXQorLSAg ICBwdWJsaWMgQ29sb3IuZnJvbV9waXhlbCAodWludDMyIHBpeGVsKTsKKy0gICAgW0NDb2RlIChj bmFtZSA9ICJjbHV0dGVyX2NvbG9yX2Zyb21fc3RyaW5nIildCistICAgIHB1YmxpYyBDb2xvci5m cm9tX3N0cmluZyAoc3RyaW5nIHN0cik7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9j b2xvcl9mcm9tX3N0cmluZyIpXQorLSAgICBwdWJsaWMgYm9vbCBwYXJzZV9zdHJpbmcgKHN0cmlu ZyBzdHIpOworLSAgICBwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5Db2xvcj8gZ2V0X3N0 YXRpYyAoQ2x1dHRlci5TdGF0aWNDb2xvciBjb2xvcik7CistICB9CistCistICBbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJf Y29udGFpbmVyX2dldF90eXBlICgpIildCistICBwdWJsaWMgaW50ZXJmYWNlIENvbnRhaW5lciA6 IEdMaWIuT2JqZWN0IHsKKy0gICAgcHVibGljIHZvaWQgYWRkIChwYXJhbXMgQ2x1dHRlci5BY3Rv cltdIGFjdG9ycyk7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9jb250YWluZXJfY2xh c3NfZmluZF9jaGlsZF9wcm9wZXJ0eSIpXQorLSAgICBwdWJsaWMgY2xhc3MgdW5vd25lZCBHTGli LlBhcmFtU3BlYyBmaW5kX2NoaWxkX3Byb3BlcnR5IChzdHJpbmcgcHJvcGVydHlfbmFtZSk7Cist ICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9jb250YWluZXJfY2xhc3NfbGlzdF9jaGlsZF9w cm9wZXJ0aWVzIildCistICAgIHB1YmxpYyBjbGFzcyB1bm93bmVkIEdMaWIuUGFyYW1TcGVjW10g bGlzdF9jaGlsZF9wcm9wZXJ0aWVzICgpOworLSAgfQorLQorLSAgW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2Nv cHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9l dmVudF9nZXRfdHlwZSAoKSIpXQorLSAgW0NvbXBhY3RdCistICBwdWJsaWMgY2xhc3MgRXZlbnQg eworLSAgICBwdWJsaWMgQ2x1dHRlci5BbnlFdmVudCBhbnkgeyBbQ0NvZGUgKGNuYW1lID0gIihD bHV0dGVyQW55RXZlbnQgKikiKV0gZ2V0OyB9CistICAgIHB1YmxpYyBDbHV0dGVyLkJ1dHRvbkV2 ZW50IGJ1dHRvbiB7IFtDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJCdXR0b25FdmVudCAqKSIpXSBn ZXQ7IH0KKy0gICAgcHVibGljIENsdXR0ZXIuQ3Jvc3NpbmdFdmVudCBjcm9zc2luZyB7IFtDQ29k ZSAoY25hbWUgPSAiKENsdXR0ZXJDcm9zc2luZ0V2ZW50ICopIildIGdldDsgfQorLSAgICBwdWJs aWMgQ2x1dHRlci5LZXlFdmVudCBrZXkgeyBbQ0NvZGUgKGNuYW1lID0gIihDbHV0dGVyS2V5RXZl bnQgKikiKV0gZ2V0OyB9CistICAgIHB1YmxpYyBDbHV0dGVyLk1vdGlvbkV2ZW50IG1vdGlvbiB7 IFtDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJNb3Rpb25FdmVudCAqKSIpXSBnZXQ7IH0KKy0gICAg cHVibGljIENsdXR0ZXIuU2Nyb2xsRXZlbnQgc2Nyb2xsIHsgW0NDb2RlIChjbmFtZSA9ICIoQ2x1 dHRlclNjcm9sbEV2ZW50ICopIildIGdldDsgfQorLSAgICBwdWJsaWMgQ2x1dHRlci5TdGFnZVN0 YXRlRXZlbnQgc3RhZ2Vfc3RhdGUgeyBbQ0NvZGUgKGNuYW1lID0gIihDbHV0dGVyU3RhZ2VTdGF0 ZUV2ZW50ICopIildIGdldDsgfQorLSAgICBwdWJsaWMgQ2x1dHRlci5Ub3VjaEV2ZW50IHRvdWNo IHsgW0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlclRvdWNoRXZlbnQgKikiKV0gZ2V0OyB9CistICAg IHB1YmxpYyBDbHV0dGVyLlRvdWNocGFkUGluY2hFdmVudCB0b3VjaHBhZF9waW5jaCB7IFtDQ29k ZSAoY25hbWUgPSAiKENsdXR0ZXJUb3VjaHBhZFBpbmNoRXZlbnQgKikiKV0gZ2V0OyB9CistICAg IHB1YmxpYyBDbHV0dGVyLlRvdWNocGFkU3dpcGVFdmVudCB0b3VjaHBhZF9zd2lwZSB7IFtDQ29k ZSAoY25hbWUgPSAiKENsdXR0ZXJUb3VjaHBhZFN3aXBlRXZlbnQgKikiKV0gZ2V0OyB9CistICB9 CistCistICBbQ0NvZGUgKHR5cGVfaWQgPSAiY2x1dHRlcl9zdGFnZV9nZXRfdHlwZSAoKSIsIGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0gIHB1YmxpYyBjbGFzcyBT dGFnZSA6IENsdXR0ZXIuR3JvdXAgeworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfcmVk cmF3IildCistICAgIHB1YmxpYyB2b2lkIHJlZHJhdyAoKTsKKy0gIH0KKy0KKy0gIFtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLSAgcHVibGljIGludGVy ZmFjZSBTdGFnZVdpbmRvdyA6IEdMaWIuT2JqZWN0IHsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAg cHVibGljIGFic3RyYWN0IHZvaWQgYWRkX3JlZHJhd19jbGlwIChDbHV0dGVyLkdlb21ldHJ5IHN0 YWdlX3JlY3RhbmdsZSk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCB2 b2lkIGdldF9nZW9tZXRyeSAoQ2x1dHRlci5HZW9tZXRyeSBnZW9tZXRyeSk7CistICAgIFtOb1dy YXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgZ2V0X3BlbmRpbmdfc3dhcHMgKCk7Cist ICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCB1bm93bmVkIENsdXR0ZXIuQWN0 b3IgZ2V0X3dyYXBwZXIgKCk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFj dCBib29sIGhhc19yZWRyYXdfY2xpcHMgKCk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1Ymxp YyBhYnN0cmFjdCB2b2lkIGhpZGUgKCk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBh YnN0cmFjdCBib29sIGlnbm9yaW5nX3JlZHJhd19jbGlwcyAoKTsKKy0gICAgW05vV3JhcHBlcl0K Ky0gICAgcHVibGljIGFic3RyYWN0IGJvb2wgcmVhbGl6ZSAoKTsKKy0gICAgW05vV3JhcHBlcl0K Ky0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgcmVzaXplIChpbnQgd2lkdGgsIGludCBoZWlnaHQp OworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfY3Vyc29y X3Zpc2libGUgKGJvb2wgY3Vyc29yX3Zpc2libGUpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBw dWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfZnVsbHNjcmVlbiAoYm9vbCBpc19mdWxsc2NyZWVuKTsK Ky0gICAgW05vV3JhcHBlcl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgc2V0X3RpdGxlIChz dHJpbmcgdGl0bGUpOworLSAgICBbTm9XcmFwcGVyXQorLSAgICBwdWJsaWMgYWJzdHJhY3Qgdm9p ZCBzZXRfdXNlcl9yZXNpemFibGUgKGJvb2wgaXNfcmVzaXphYmxlKTsKKy0gICAgW05vV3JhcHBl cl0KKy0gICAgcHVibGljIGFic3RyYWN0IHZvaWQgc2hvdyAoYm9vbCBkb19yYWlzZSk7CistICAg IFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCB2b2lkIHVucmVhbGl6ZSAoKTsKKy0g IH0KKy0KKy0gIFtDQ29kZSAodHlwZV9pZCA9ICJjbHV0dGVyX3RleHR1cmVfZ2V0X3R5cGUgKCki LCBjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistICBwdWJsaWMgY2xh c3MgVGV4dHVyZSA6IENsdXR0ZXIuQWN0b3IgeworLSAgICBwdWJsaWMgQ29nbC5NYXRlcmlhbCBj b2dsX21hdGVyaWFsIHsgZ2V0OyBzZXQ7IH0KKy0gICAgcHVibGljIENvZ2wuVGV4dHVyZSBjb2ds X3RleHR1cmUgeyBnZXQ7IHNldDsgfQorLSAgfQorLQorLSAgW0NvbXBhY3RdCistICBbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0gIHB1YmxpYyBjbGFz cyBUaW1lb3V0UG9vbCB7CistICAgIFtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlKV0KKy0gICAgcHVibGljIFRpbWVvdXRQb29sIChpbnQgcHJpb3JpdHkpOworLSAgfQorLQor LSAgW0NDb2RlIChjcHJlZml4ID0gIkNMVVRURVJfRkVBVFVSRV8iLCBjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistICBbRmxhZ3NdCistICBwdWJsaWMgZW51bSBGZWF0 dXJlRmxhZ3MgeworLSAgICBURVhUVVJFX05QT1Q7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1 dHRlcl9mZWF0dXJlX2F2YWlsYWJsZSIpXQorLSAgICBwdWJsaWMgYm9vbCBpc19hdmFpbGFibGUg KCk7CistICAgIFtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9mZWF0dXJlX2dldF9hbGwiKV0KKy0g ICAgcHVibGljIHN0YXRpYyBDbHV0dGVyLkZlYXR1cmVGbGFncyBAZ2V0ICgpOworLSAgfQorLQor LSAgW0NDb2RlICh0eXBlX2lkID0gIkNMVVRURVJfVFlQRV9VTklUUyIsIGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0gIHB1YmxpYyBzdHJ1Y3QgVW5pdHMgeworLSAg ICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9jbSIpXQorLSAgICBwdWJsaWMg VW5pdHMuZnJvbV9jbSAoZmxvYXQgY20pOworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJf dW5pdHNfZnJvbV9lbSIpXQorLSAgICBwdWJsaWMgVW5pdHMuZnJvbV9lbSAoZmxvYXQgZW0pOwor LSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9lbV9mb3JfZm9udCIpXQor LSAgICBwdWJsaWMgVW5pdHMuZnJvbV9lbV9mb3JfZm9udCAoc3RyaW5nIGZvbnRfbmFtZSwgZmxv YXQgZW0pOworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9tbSIpXQor LSAgICBwdWJsaWMgVW5pdHMuZnJvbV9tbSAoZmxvYXQgbW0pOworLSAgICBbQ0NvZGUgKGNuYW1l ID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9waXhlbHMiKV0KKy0gICAgcHVibGljIFVuaXRzLmZyb21f cGl4ZWxzIChpbnQgcHgpOworLSAgICBbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJv bV9wdCIpXQorLSAgICBwdWJsaWMgVW5pdHMuZnJvbV9wdCAoZmxvYXQgcHQpOworLSAgICBbQ0Nv ZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9zdHJpbmciKV0KKy0gICAgcHVibGljIFVu aXRzLmZyb21fc3RyaW5nIChzdHJpbmcgc3RyKTsKKy0gIH0KKy19CitkaWZmIC0tZ2l0IHZhcGkv bXV0dGVyLWNsdXR0ZXItNC1jdXN0b20udmFsYSB2YXBpL211dHRlci1jbHV0dGVyLTYtY3VzdG9t LnZhbGEKK3NpbWlsYXJpdHkgaW5kZXggOTIlCityZW5hbWUgZnJvbSB2YXBpL211dHRlci1jbHV0 dGVyLTQtY3VzdG9tLnZhbGEKK3JlbmFtZSB0byB2YXBpL211dHRlci1jbHV0dGVyLTYtY3VzdG9t LnZhbGEKK2luZGV4IGI4ZDgzOGQwLi44OTIyNGJlNiAxMDA2NDQKKy0tLSB2YXBpL211dHRlci1j bHV0dGVyLTQtY3VzdG9tLnZhbGEKKysrKyB2YXBpL211dHRlci1jbHV0dGVyLTYtY3VzdG9tLnZh bGEKK0BAIC0xLDkgKzEsNCBAQAorIG5hbWVzcGFjZSBDbHV0dGVyIHsKKy0gIFtDQ29kZSAodHlw ZV9pZCA9ICJDTFVUVEVSX1RZUEVfQUNUT1JfQk9YIiwgY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIpXQorLSAgcHVibGljIHN0cnVjdCBBY3RvckJveCB7CistICAgIFtDQ29k ZSAoY25hbWUgPSAiY2x1dHRlcl9hY3Rvcl9ib3hfZnJvbV92ZXJ0aWNlcyIpXQorLSAgICBwdWJs aWMgQWN0b3JCb3guZnJvbV92ZXJ0aWNlcyAoQ2x1dHRlci5WZXJ0ZXhbXSB2ZXJ0cyk7CistICB9 CisgCisgICBwdWJsaWMgc3RydWN0IE1hdHJpeCA6IENvZ2wuTWF0cml4IHsKKyAgIH0KK0BAIC0x OCw4ICsxMyw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAgICAgW05vV3JhcHBlcl0KKyAgICAg cHVibGljIHZpcnR1YWwgdm9pZCBlbnN1cmVfY29udGV4dCAoQ2x1dHRlci5TdGFnZSBzdGFnZSk7 CisgICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5E ZXZpY2VNYW5hZ2VyIGdldF9kZXZpY2VfbWFuYWdlciAoKTsKKy0gICAgW05vV3JhcHBlcl0KKyAg ICAgcHVibGljIHZpcnR1YWwgQ2x1dHRlci5GZWF0dXJlRmxhZ3MgZ2V0X2ZlYXR1cmVzICgpOwor ICAgICBbTm9XcmFwcGVyXQorICAgICBwdWJsaWMgdmlydHVhbCB2b2lkIGluaXRfZXZlbnRzICgp OworQEAgLTgzLDEwICs3Niw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAKKyAgIFtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorICAgcHVibGljIGludGVy ZmFjZSBTdGFnZVdpbmRvdyA6IEdMaWIuT2JqZWN0IHsKKy0gICAgW05vV3JhcHBlcl0KKy0gICAg cHVibGljIGFic3RyYWN0IHZvaWQgYWRkX3JlZHJhd19jbGlwIChDbHV0dGVyLkdlb21ldHJ5IHN0 YWdlX3JlY3RhbmdsZSk7CistICAgIFtOb1dyYXBwZXJdCistICAgIHB1YmxpYyBhYnN0cmFjdCB2 b2lkIGdldF9nZW9tZXRyeSAoQ2x1dHRlci5HZW9tZXRyeSBnZW9tZXRyeSk7CisgICAgIFtOb1dy YXBwZXJdCisgICAgIHB1YmxpYyBhYnN0cmFjdCBpbnQgZ2V0X3BlbmRpbmdfc3dhcHMgKCk7Cisg ICAgIFtOb1dyYXBwZXJdCitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNsdXR0ZXItNS5kZXBzIHZh cGkvbXV0dGVyLWNsdXR0ZXItNi5kZXBzCitzaW1pbGFyaXR5IGluZGV4IDYzJQorcmVuYW1lIGZy b20gdmFwaS9tdXR0ZXItY2x1dHRlci01LmRlcHMKK3JlbmFtZSB0byB2YXBpL211dHRlci1jbHV0 dGVyLTYuZGVwcworaW5kZXggM2Y1YTkyYTYuLjdhNzBkNmRmIDEwMDY0NAorLS0tIHZhcGkvbXV0 dGVyLWNsdXR0ZXItNS5kZXBzCisrKysgdmFwaS9tdXR0ZXItY2x1dHRlci02LmRlcHMKK0BAIC0x LDQgKzEsNCBAQAorIGF0aworIGNhaXJvCisganNvbi1nbGliLTEuMAorLW11dHRlci1jb2dsLTUK KyttdXR0ZXItY29nbC02CitkaWZmIC0tZ2l0IHZhcGkvbXV0dGVyLWNsdXR0ZXItNS52YXBpIHZh cGkvbXV0dGVyLWNsdXR0ZXItNi52YXBpCitzaW1pbGFyaXR5IGluZGV4IDkzJQorcmVuYW1lIGZy b20gdmFwaS9tdXR0ZXItY2x1dHRlci01LnZhcGkKK3JlbmFtZSB0byB2YXBpL211dHRlci1jbHV0 dGVyLTYudmFwaQoraW5kZXggMjRmN2Y2YjEuLjAxMzBhOTNjIDEwMDY0NAorLS0tIHZhcGkvbXV0 dGVyLWNsdXR0ZXItNS52YXBpCisrKysgdmFwaS9tdXR0ZXItY2x1dHRlci02LnZhcGkKK0BAIC0x LDYgKzEsNiBAQAorLS8qIG11dHRlci1jbHV0dGVyLTUudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdl biwgZG8gbm90IG1vZGlmeS4gKi8KKysvKiBtdXR0ZXItY2x1dHRlci02LnZhcGkgZ2VuZXJhdGVk IGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnkuICovCisgCistW0NDb2RlIChjcHJlZml4ID0gIkNs dXR0ZXIiLCBnaXJfbmFtZXNwYWNlID0gIkNsdXR0ZXIiLCBnaXJfdmVyc2lvbiA9ICI1IiwgbG93 ZXJfY2FzZV9jcHJlZml4ID0gImNsdXR0ZXJfIildCisrW0NDb2RlIChjcHJlZml4ID0gIkNsdXR0 ZXIiLCBnaXJfbmFtZXNwYWNlID0gIkNsdXR0ZXIiLCBnaXJfdmVyc2lvbiA9ICI2IiwgbG93ZXJf Y2FzZV9jcHJlZml4ID0gImNsdXR0ZXJfIildCisgbmFtZXNwYWNlIENsdXR0ZXIgeworIAluYW1l c3BhY2UgS2V5IHsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIGNuYW1lID0gIkNMVVRURVJfS0VZXzAiKV0KK0BAIC00NjYxLDIyICs0NjYxLDE0IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIGFsbG9jYXRlX3ByZWZlcnJlZF9z aXplIChDbHV0dGVyLkFsbG9jYXRpb25GbGFncyBmbGFncyk7CisgCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQor IAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0ZSAodWxvbmcgbW9kZSwg dWludCBkdXJhdGlvbiwgLi4uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25l ZCBDbHV0dGVyLkFuaW1hdGlvbiBhbmltYXRlX3dpdGhfYWxwaGEgKENsdXR0ZXIuQWxwaGEgYWxw aGEsIC4uLik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5B bmltYXRpb24gYW5pbWF0ZV93aXRoX2FscGhhdiAoQ2x1dHRlci5BbHBoYSBhbHBoYSwgW0NDb2Rl IChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9 IDEuNSldIHN0cmluZ1tdIHByb3BlcnRpZXMsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0g Im5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAxLjUpXSBHTGliLlZhbHVlW10gdmFs dWVzKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1h dGlvbiBhbmltYXRlX3dpdGhfdGltZWxpbmUgKHVsb25nIG1vZGUsIENsdXR0ZXIuVGltZWxpbmUg dGltZWxpbmUsIC4uLik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1 dHRlci5BbmltYXRpb24gYW5pbWF0ZV93aXRoX3RpbWVsaW5ldiAodWxvbmcgbW9kZSwgQ2x1dHRl ci5UaW1lbGluZSB0aW1lbGluZSwgW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wcm9w ZXJ0aWVzIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDIuNSldIHN0cmluZ1tdIHByb3BlcnRpZXMsIFtD Q29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9w b3MgPSAyLjUpXSBHTGliLlZhbHVlW10gdmFsdWVzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBhbmltYXRldiAodWxvbmcgbW9kZSwgdWlu dCBkdXJhdGlvbiwgW0NDb2RlIChhcnJheV9sZW5ndGhfY25hbWUgPSAibl9wcm9wZXJ0aWVzIiwg YXJyYXlfbGVuZ3RoX3BvcyA9IDIuNSldIHN0cmluZ1tdIHByb3BlcnRpZXMsIFtDQ29kZSAoYXJy YXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAyLjUp XSBHTGliLlZhbHVlW10gdmFsdWVzKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0J CXB1YmxpYyBDbHV0dGVyLlZlcnRleCBhcHBseV9yZWxhdGl2ZV90cmFuc2Zvcm1fdG9fcG9pbnQg KENsdXR0ZXIuQWN0b3I/IGFuY2VzdG9yLCBDbHV0dGVyLlZlcnRleCBwb2ludCk7CisrCQlwdWJs aWMgdm9pZCBhcHBseV9yZWxhdGl2ZV90cmFuc2Zvcm1fdG9fcG9pbnQgKENsdXR0ZXIuQWN0b3I/ IGFuY2VzdG9yLCBHcmFwaGVuZS5Qb2ludDNEIHBvaW50LCBvdXQgdW5vd25lZCBHcmFwaGVuZS5Q b2ludDNEIHZlcnRleCk7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBh cHBseV90cmFuc2Zvcm0gKHJlZiBDbHV0dGVyLk1hdHJpeCBtYXRyaXgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIENsdXR0ZXIuVmVydGV4IGFwcGx5X3RyYW5zZm9y bV90b19wb2ludCAoQ2x1dHRlci5WZXJ0ZXggcG9pbnQpOworKwkJcHVibGljIHZvaWQgYXBwbHlf dHJhbnNmb3JtX3RvX3BvaW50IChHcmFwaGVuZS5Qb2ludDNEIHBvaW50LCBvdXQgdW5vd25lZCBH cmFwaGVuZS5Qb2ludDNEIHZlcnRleCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yNCIpXQor IAkJcHVibGljIHZvaWQgYmluZF9tb2RlbCAoR0xpYi5MaXN0TW9kZWw/IG1vZGVsLCBvd25lZCBD bHV0dGVyLkFjdG9yQ3JlYXRlQ2hpbGRGdW5jIGNyZWF0ZV9jaGlsZF9mdW5jKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjQiKV0KK0BAIC00Njg4LDIwICs0NjgwLDE5IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBib29sIGNv bnRhaW5zIChDbHV0dGVyLkFjdG9yIGRlc2NlbmRhbnQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuOCIpXQorLQkJcHVibGljIHZvaWQgY29udGludWVfcGFpbnQgKCk7CisrCQlwdWJsaWMgdm9p ZCBjb250aW51ZV9wYWludCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7Cisr CQlwdWJsaWMgdm9pZCBjb250aW51ZV9waWNrIChDbHV0dGVyLlBpY2tDb250ZXh0IHBpY2tfY29u dGV4dCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgUGFuZ28uQ29u dGV4dCBjcmVhdGVfcGFuZ29fY29udGV4dCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAi KV0KKyAJCXB1YmxpYyBQYW5nby5MYXlvdXQgY3JlYXRlX3BhbmdvX2xheW91dCAoc3RyaW5nPyB0 ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBkZXN0 cm95X2FsbF9jaGlsZHJlbiAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBk ZXRhY2hfYW5pbWF0aW9uICgpOworIAkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2FjdG9yX2V2 ZW50IildCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgYm9vbCBlbWl0 X2V2ZW50IChDbHV0dGVyLkV2ZW50IGV2ZW50LCBib29sIGNhcHR1cmUpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2Fic19hbGxvY2F0aW9uX3ZlcnRp Y2VzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gQ2x1dHRlci5WZXJ0ZXggdmVydHNb NF0pOworKwkJcHVibGljIHZvaWQgZ2V0X2Fic19hbGxvY2F0aW9uX3ZlcnRpY2VzIChbQ0NvZGUg KGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gR3JhcGhlbmUuUG9pbnQzRCB2ZXJ0c1s0XSk7CisgCQlw dWJsaWMgdmlydHVhbCB1bm93bmVkIEF0ay5PYmplY3QgZ2V0X2FjY2Vzc2libGUgKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdGlv biBnZXRfYWN0aW9uIChzdHJpbmcgbmFtZSk7CitAQCAtNDcwOSwxNiArNDcwMCwxMCBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgQ2x1dHRlci5BY3Rpb24+ IGdldF9hY3Rpb25zICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGlj IENsdXR0ZXIuQWN0b3JCb3ggZ2V0X2FsbG9jYXRpb25fYm94ICgpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgi KV0KKy0JCXB1YmxpYyBDbHV0dGVyLkdlb21ldHJ5IGdldF9hbGxvY2F0aW9uX2dlb21ldHJ5ICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FsbG9j YXRpb25fdmVydGljZXMgKENsdXR0ZXIuQWN0b3I/IGFuY2VzdG9yLCBbQ0NvZGUgKGFycmF5X2xl bmd0aCA9IGZhbHNlKV0gQ2x1dHRlci5WZXJ0ZXggdmVydHNbNF0pOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYi KV0KKy0JCXB1YmxpYyB2b2lkIGdldF9hbmNob3JfcG9pbnQgKG91dCBmbG9hdCBhbmNob3JfeCwg b3V0IGZsb2F0IGFuY2hvcl95KTsKKysJCXB1YmxpYyB2b2lkIGdldF9hbGxvY2F0aW9uX3ZlcnRp Y2VzIChDbHV0dGVyLkFjdG9yPyBhbmNlc3RvciwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxz ZSldIEdyYXBoZW5lLlBvaW50M0QgdmVydHNbNF0pOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKyAJCXB1 YmxpYyBDbHV0dGVyLkdyYXZpdHkgZ2V0X2FuY2hvcl9wb2ludF9ncmF2aXR5ICgpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGdldF9hbmlt YXRpb24gKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIENsdXR0 ZXIuQ29sb3IgZ2V0X2JhY2tncm91bmRfY29sb3IgKCk7CisgCQlbQ0NvZGUgKGNuYW1lID0gImNs dXR0ZXJfZ2V0X2FjdG9yX2J5X2dpZCIpXQorQEAgLTQ3NjgsOCArNDc1Myw2IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIGdldF9maXhlZF9wb3NpdGlvbl9zZXQgKCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgQ2x1dHRlci5BY3RvckZsYWdz IGdldF9mbGFncyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB1aW50MzIgZ2V0X2dp ZCAoKTsKKyAJCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9hY3Rvcl9oYXNfcG9pbnRlciIpXQor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIGJvb2wgZ2V0X2hhc19wb2lu dGVyICgpOworQEAgLTQ4NDgsOCArNDgzMSw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1 YmxpYyBDbHV0dGVyLlRleHREaXJlY3Rpb24gZ2V0X3RleHRfZGlyZWN0aW9uICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLk1hdHJpeCBnZXRfdHJh bnNmb3JtICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLk1hdHJpeCBn ZXRfdHJhbnNmb3JtYXRpb25fbWF0cml4ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIp XQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5QYWludFZvbHVtZSBnZXRfdHJhbnNmb3JtZWRf cGFpbnRfdm9sdW1lIChDbHV0dGVyLkFjdG9yIHJlbGF0aXZlX3RvX2FuY2VzdG9yKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KK0BAIC00ODkyLDcgKzQ4NzMsNyBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBoYXNfbWFwcGVkX2Nsb25lcyAoKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgaGFzX292ZXJsYXBz ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0KKysJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVh bCB2b2lkIGhpZGVfYWxsICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1 YmxpYyB2b2lkIGluc2VydF9jaGlsZF9hYm92ZSAoQ2x1dHRlci5BY3RvciBjaGlsZCwgQ2x1dHRl ci5BY3Rvcj8gc2libGluZyk7CitAQCAtNDkxMiwxMCArNDg5Myw2IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCXB1YmxpYyBib29sIGlzX3NjYWxlZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjI0IildCisgCQlwdWJsaWMgYm9vbCBpc192aXNpYmxlICgpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2 b2lkIGxvd2VyIChDbHV0dGVyLkFjdG9yPyBhYm92ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgbG93 ZXJfYm90dG9tICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZp cnR1YWwgdm9pZCBtYXAgKCk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorQEAgLTQ5MjgsMTcgKzQ5MDUs MTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgbmVlZHNfZXhwYW5kIChD bHV0dGVyLk9yaWVudGF0aW9uIG9yaWVudGF0aW9uKTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJs aWMgdmlydHVhbCB2b2lkIHBhaW50X25vZGUgKENsdXR0ZXIuUGFpbnROb2RlIHJvb3QpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBz aW5jZSA9ICIxLjIiKV0KKysJCXB1YmxpYyB2b2lkIHBpY2tfYm94IChDbHV0dGVyLlBpY2tDb250 ZXh0IHBpY2tfY29udGV4dCwgQ2x1dHRlci5BY3RvckJveCBib3gpOworIAkJcHVibGljIHZvaWQg cG9wX2ludGVybmFsICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB2b2lkIHB1c2hf aW50ZXJuYWwgKCk7CisgCQlwdWJsaWMgdm9pZCBxdWV1ZV9yZWRyYXcgKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgcXVldWVfcmVkcmF3X3dpdGhfY2xp cCAoQ2Fpcm8uUmVjdGFuZ2xlSW50PyBjbGlwKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCByYWlzZSAo Q2x1dHRlci5BY3Rvcj8gYmVsb3cpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHJhaXNlX3RvcCAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV9hY3Rp b24gKENsdXR0ZXIuQWN0aW9uIGFjdGlvbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40Iild CitAQCAtNDk2MCw4ICs0OTMyLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZv aWQgcmVtb3ZlX2VmZmVjdF9ieV9uYW1lIChzdHJpbmcgbmFtZSk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgcmVtb3ZlX3RyYW5zaXRpb24gKHN0cmluZyBu YW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIiwgc2luY2UgPSAiMC4yIildCistCQlwdWJsaWMgdm9pZCByZXBhcmVudCAoQ2x1dHRl ci5BY3RvciBuZXdfcGFyZW50KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlw dWJsaWMgdm9pZCByZXBsYWNlX2NoaWxkIChDbHV0dGVyLkFjdG9yIG9sZF9jaGlsZCwgQ2x1dHRl ci5BY3RvciBuZXdfY2hpbGQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC01 MDQ2LDggKzUwMTYsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBzZXRf c2NhbGUgKGRvdWJsZSBzY2FsZV94LCBkb3VibGUgc2NhbGVfeSk7CisgCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIp XQorIAkJcHVibGljIHZvaWQgc2V0X3NjYWxlX2Z1bGwgKGRvdWJsZSBzY2FsZV94LCBkb3VibGUg c2NhbGVfeSwgZmxvYXQgY2VudGVyX3gsIGZsb2F0IGNlbnRlcl95KTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4w IildCistCQlwdWJsaWMgdm9pZCBzZXRfc2NhbGVfd2l0aF9ncmF2aXR5IChkb3VibGUgc2NhbGVf eCwgZG91YmxlIHNjYWxlX3ksIENsdXR0ZXIuR3Jhdml0eSBncmF2aXR5KTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdm9pZCBzZXRfc2NhbGVfeiAoZG91YmxlIHNj YWxlX3opOworIAkJcHVibGljIHZvaWQgc2V0X3NpemUgKGZsb2F0IHdpZHRoLCBmbG9hdCBoZWln aHQpOworQEAgLTUxMTAsMTEgKzUwNzgsOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGJvb2wgY2hpbGRfdHJhbnNmb3JtX3Nl dCB7IGdldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIENsdXR0ZXIu R2VvbWV0cnkgY2xpcCB7IG93bmVkIGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0K KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5SZWN0IGNs aXBfcmVjdCB7IG93bmVkIGdldDsgc2V0OyB9CisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBjbGlw X3JlY3QgeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor IAkJcHVibGljIGJvb2wgY2xpcF90b19hbGxvY2F0aW9uIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0Fj Y2Vzc29yTWV0aG9kXQorQEAgLTUxOTksMTIgKzUxNjQsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJcHVibGljIHVpbnQgb3BhY2l0eSB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5Q b2ludCBwaXZvdF9wb2ludCB7IG93bmVkIGdldDsgc2V0OyB9CisrCQlwdWJsaWMgR3JhcGhlbmUu UG9pbnQgcGl2b3RfcG9pbnQgeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBmbG9hdCBwaXZvdF9wb2ludF96IHsgZ2V0OyBzZXQ7IH0K KyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0J CXB1YmxpYyBDbHV0dGVyLlBvaW50IHBvc2l0aW9uIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKysJCXB1 YmxpYyBHcmFwaGVuZS5Qb2ludCBwb3NpdGlvbiB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgYm9vbCByZWFjdGl2ZSB7IGdldDsgc2V0 OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KK0BAIC01MjI1LDEzICs1MTkwLDEzIEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBkb3VibGUgcm90YXRpb25fYW5nbGVfeiB7IGdldDsg c2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42IildCistCQlwdWJs aWMgQ2x1dHRlci5WZXJ0ZXggcm90YXRpb25fY2VudGVyX3ggeyBvd25lZCBnZXQ7IHNldDsgfQor KwkJcHVibGljIEdyYXBoZW5lLlBvaW50M0Qgcm90YXRpb25fY2VudGVyX3ggeyBvd25lZCBnZXQ7 IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVi bGljIENsdXR0ZXIuVmVydGV4IHJvdGF0aW9uX2NlbnRlcl95IHsgb3duZWQgZ2V0OyBzZXQ7IH0K KysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludDNEIHJvdGF0aW9uX2NlbnRlcl95IHsgb3duZWQgZ2V0 OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1 YmxpYyBDbHV0dGVyLlZlcnRleCByb3RhdGlvbl9jZW50ZXJfeiB7IG93bmVkIGdldDsgc2V0OyB9 CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQzRCByb3RhdGlvbl9jZW50ZXJfeiB7IG93bmVkIGdl dDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCisgCQlw dWJsaWMgQ2x1dHRlci5HcmF2aXR5IHJvdGF0aW9uX2NlbnRlcl96X2dyYXZpdHkgeyBnZXQ7IHNl dDsgfQorQEAgLTUyNTcsNyArNTIyMiw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1Ymxp YyBib29sIHNob3dfb25fc2V0X3BhcmVudCB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1l dGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5T aXplIHNpemUgeyBvd25lZCBnZXQ7IHNldDsgfQorKwkJcHVibGljIEdyYXBoZW5lLlNpemUgc2l6 ZSB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlw dWJsaWMgQ2x1dHRlci5UZXh0RGlyZWN0aW9uIHRleHRfZGlyZWN0aW9uIHsgZ2V0OyBzZXQ7IH0K KyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAgLTUzMTksMTEgKzUyODQsMTIgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgbW90aW9uX2V2ZW50IChD bHV0dGVyLk1vdGlvbkV2ZW50IGV2ZW50KTsKKyAJCVtIYXNFbWl0dGVyXQorIAkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIw LjgiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHBhaW50ICgpOworKwkJcHVibGlj IHZpcnR1YWwgc2lnbmFsIHZvaWQgcGFpbnQgKENsdXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50X2Nv bnRleHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAkJcHVibGljIHZpcnR1YWwg c2lnbmFsIHZvaWQgcGFyZW50X3NldCAoQ2x1dHRlci5BY3Rvcj8gb2xkX3BhcmVudCk7CisrCQlb SGFzRW1pdHRlcl0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2aXJ0 dWFsIHNpZ25hbCB2b2lkIHBpY2sgKENsdXR0ZXIuQ29sb3IgY29sb3IpOworKwkJcHVibGljIHZp cnR1YWwgc2lnbmFsIHZvaWQgcGljayAoQ2x1dHRlci5QaWNrQ29udGV4dCBwaWNrX2NvbnRleHQp OworIAkJW0hhc0VtaXR0ZXJdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJs aWMgdmlydHVhbCBzaWduYWwgdm9pZCBxdWV1ZV9yZWxheW91dCAoKTsKK0BAIC01MzYxLDYgKzUz MjcsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgZW5hYmxlZCB7IGdl dDsgc2V0OyB9CisgCQlwdWJsaWMgc3RyaW5nIG5hbWUgeyBnZXQ7IHNldDsgfQorIAl9CisrCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAi Y2x1dHRlcl9hY3Rvcl9ub2RlX2dldF90eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBBY3Rvck5v ZGUgOiBDbHV0dGVyLlBhaW50Tm9kZSB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rp b24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyUGFpbnROb2RlKiIpXQorKwkJcHVibGljIEFjdG9y Tm9kZSAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FsaWduX2NvbnN0 cmFpbnRfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAlwdWJs aWMgY2xhc3MgQWxpZ25Db25zdHJhaW50IDogQ2x1dHRlci5Db25zdHJhaW50IHsKK0BAIC01Mzg4 LDE5ICs1MzU5LDEyIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjAiKV0KKyAJCXB1YmxpYyB1bG9uZyBnZXRfbW9kZSAoKTsKKyAJCXB1YmxpYyB1bm93bmVk IENsdXR0ZXIuVGltZWxpbmUgZ2V0X3RpbWVsaW5lICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIHN0YXRpYyB1bG9uZyByZWdpc3Rlcl9jbG9zdXJlIChHTGliLkNs b3N1cmUgY2xvc3VyZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMg c3RhdGljIHVsb25nIHJlZ2lzdGVyX2Z1bmMgKENsdXR0ZXIuQWxwaGFGdW5jIGZ1bmMpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2Nsb3N1cmUgKEdM aWIuQ2xvc3VyZSBjbG9zdXJlKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9mdW5jIChvd25lZCBDbHV0 dGVyLkFscGhhRnVuYyBmdW5jKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1 YmxpYyB2b2lkIHNldF9tb2RlICh1bG9uZyBtb2RlKTsKKyAJCXB1YmxpYyB2b2lkIHNldF90aW1l bGluZSAoQ2x1dHRlci5UaW1lbGluZSB0aW1lbGluZSk7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSldCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgQWxwaGEud2l0aF9mdW5jIChDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lLCBvd25lZCBD bHV0dGVyLkFscGhhRnVuYyBmdW5jKTsKKyAJCXB1YmxpYyBkb3VibGUgYWxwaGEgeyBnZXQ7IH0K KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB1bG9uZyBtb2RlIHsgZ2V0 OyBzZXQgY29uc3RydWN0OyB9CitAQCAtNTQxMSwzNSArNTM3NSwyNiBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCXB1YmxpYyBjbGFzcyBBbmltYXRpb24gOiBHTGliLk9iamVjdCwgQ2x1dHRlci5T Y3JpcHRhYmxlIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0K KyAJCXB1YmxpYyBBbmltYXRpb24gKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1h dGlvbiBiaW5kIChzdHJpbmcgcHJvcGVydHlfbmFtZSwgR0xpYi5WYWx1ZSBmaW5hbCk7CistCQlw dWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBiaW5kX2ludGVydmFsIChzdHJpbmcgcHJv cGVydHlfbmFtZSwgb3duZWQgQ2x1dHRlci5JbnRlcnZhbCBpbnRlcnZhbCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbHBoYSBnZXRfYWxwaGEgKCk7Cisg CQlwdWJsaWMgdWludCBnZXRfZHVyYXRpb24gKCk7CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVy LkludGVydmFsIGdldF9pbnRlcnZhbCAoc3RyaW5nIHByb3BlcnR5X25hbWUpOworIAkJcHVibGlj IGJvb2wgZ2V0X2xvb3AgKCk7CisgCQlwdWJsaWMgdWxvbmcgZ2V0X21vZGUgKCk7CistCQlwdWJs aWMgdW5vd25lZCBHTGliLk9iamVjdCBnZXRfb2JqZWN0ICgpOworIAkJcHVibGljIHVub3duZWQg Q2x1dHRlci5UaW1lbGluZSBnZXRfdGltZWxpbmUgKCk7CisgCQlwdWJsaWMgYm9vbCBoYXNfcHJv cGVydHkgKHN0cmluZyBwcm9wZXJ0eV9uYW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJs aWMgdm9pZCBzZXRfYWxwaGEgKENsdXR0ZXIuQWxwaGEgYWxwaGEpOworIAkJcHVibGljIHZvaWQg c2V0X2R1cmF0aW9uICh1aW50IG1zZWNzKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9sb29wIChib29s IGxvb3ApOworIAkJcHVibGljIHZvaWQgc2V0X21vZGUgKHVsb25nIG1vZGUpOworIAkJcHVibGlj IHZvaWQgc2V0X29iamVjdCAoR0xpYi5PYmplY3Qgb2JqZWN0KTsKKyAJCXB1YmxpYyB2b2lkIHNl dF90aW1lbGluZSAoQ2x1dHRlci5UaW1lbGluZT8gdGltZWxpbmUpOworLQkJcHVibGljIHZvaWQg dW5iaW5kX3Byb3BlcnR5IChzdHJpbmcgcHJvcGVydHlfbmFtZSk7CistCQlwdWJsaWMgdW5vd25l ZCBDbHV0dGVyLkFuaW1hdGlvbiB1cGRhdGUgKHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZh bHVlIGZpbmFsKTsKKy0JCXB1YmxpYyB2b2lkIHVwZGF0ZV9pbnRlcnZhbCAoc3RyaW5nIHByb3Bl cnR5X25hbWUsIENsdXR0ZXIuSW50ZXJ2YWwgaW50ZXJ2YWwpOworKwkJW05vQWNjZXNzb3JNZXRo b2RdCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIuQWxwaGEgYWxwaGEgeyBn ZXQ7IHNldDsgfQorKwkJcHVibGljIENsdXR0ZXIuQWxwaGEgYWxwaGEgeyBvd25lZCBnZXQ7IHNl dDsgfQorIAkJcHVibGljIHVpbnQgZHVyYXRpb24geyBnZXQ7IHNldDsgfQorIAkJcHVibGljIGJv b2wgbG9vcCB7IGdldDsgc2V0OyB9CisgCQlwdWJsaWMgdWxvbmcgbW9kZSB7IGdldDsgc2V0OyB9 CistCQlwdWJsaWMgR0xpYi5PYmplY3Qgb2JqZWN0IHsgZ2V0OyBzZXQ7IH0KKysJCVtOb0FjY2Vz c29yTWV0aG9kXQorKwkJcHVibGljIEdMaWIuT2JqZWN0IG9iamVjdCB7IG93bmVkIGdldDsgc2V0 OyB9CisgCQlwdWJsaWMgQ2x1dHRlci5UaW1lbGluZSB0aW1lbGluZSB7IGdldDsgc2V0OyB9Cist CQlbSGFzRW1pdHRlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGNvbXBsZXRlZCAo KTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHN0YXJ0ZWQgKCk7CisgCX0KK0BAIC01 NDYwLDIxICs1NDE1LDE4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXByb3RlY3RlZCBCYWNr ZW5kICgpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYWRkX29wdGlv bnMgKEdMaWIuT3B0aW9uR3JvdXAgZ3JvdXApOworLQkJcHVibGljIHZvaWQgYmVsbF9ub3RpZnkg KCk7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgYm9vbCBjcmVhdGVfY29udGV4 dCAoKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVh bCB1bm93bmVkIENsdXR0ZXIuU3RhZ2VXaW5kb3cgY3JlYXRlX3N0YWdlIChDbHV0dGVyLlN0YWdl IHdyYXBwZXIpIHRocm93cyBHTGliLkVycm9yOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2 aXJ0dWFsIHZvaWQgZW5zdXJlX2NvbnRleHQgKENsdXR0ZXIuU3RhZ2Ugc3RhZ2UpOworLQkJW05v V3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5EZXZpY2VNYW5hZ2Vy IGdldF9kZXZpY2VfbWFuYWdlciAoKTsKKysJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuU2VhdCBn ZXRfZGVmYXVsdF9zZWF0ICgpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIENs dXR0ZXIuRmVhdHVyZUZsYWdzIGdldF9mZWF0dXJlcyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjgiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENhaXJvLkZvbnRPcHRpb25zIGdldF9mb250X29w dGlvbnMgKCk7CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLklucHV0TWV0aG9kIGdldF9pbnB1 dF9tZXRob2QgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLktleW1hcCBnZXRfa2V5bWFw ICgpOworIAkJcHVibGljIGRvdWJsZSBnZXRfcmVzb2x1dGlvbiAoKTsKKyAJCVtOb1dyYXBwZXJd CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIGluaXRfZXZlbnRzICgpOworQEAgLTU0OTYsOTUgKzU0 NDgsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIp XQorIAkJcHVibGljIHNpZ25hbCB2b2lkIHNldHRpbmdzX2NoYW5nZWQgKCk7CisgCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJj bHV0dGVyX2JlaGF2aW91cl9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS42Iiwgc2luY2UgPSAiMC4yIildCistCXB1Ymxp YyBhYnN0cmFjdCBjbGFzcyBCZWhhdmlvdXIgOiBHTGliLk9iamVjdCwgQ2x1dHRlci5TY3JpcHRh YmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXBy b3RlY3RlZCBCZWhhdmlvdXIgKCk7CistCQlwdWJsaWMgdm9pZCBhY3RvcnNfZm9yZWFjaCAoQ2x1 dHRlci5CZWhhdmlvdXJGb3JlYWNoRnVuYyBmdW5jKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJs aWMgdmlydHVhbCB2b2lkIGFscGhhX25vdGlmeSAoZG91YmxlIGFscGhhX3ZhbHVlKTsKKy0JCXB1 YmxpYyB2b2lkIGFwcGx5IChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyBHTGliLlNM aXN0PHdlYWsgQ2x1dHRlci5BY3Rvcj4gZ2V0X2FjdG9ycyAoKTsKKy0JCXB1YmxpYyB1bm93bmVk IENsdXR0ZXIuQWxwaGEgZ2V0X2FscGhhICgpOworLQkJcHVibGljIGludCBnZXRfbl9hY3RvcnMg KCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9udGhfYWN0b3IgKGludCBp bmRleF8pOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIGJvb2wgaXNf YXBwbGllZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlwdWJsaWMgdm9pZCByZW1vdmUgKENs dXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVi bGljIHZvaWQgcmVtb3ZlX2FsbCAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9hbHBoYSAoQ2x1dHRl ci5BbHBoYSBhbHBoYSk7CistCQlwdWJsaWMgQ2x1dHRlci5BbHBoYSBhbHBoYSB7IGdldDsgc2V0 OyB9CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdmlydHVhbCBzaWdu YWwgdm9pZCBhcHBsaWVkIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHJlbW92ZWQgKENsdXR0 ZXIuQWN0b3IgYWN0b3IpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9iZWhhdmlvdXJfZGVwdGhfZ2V0X3R5 cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuNiIsIHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgY2xhc3MgQmVoYXZpb3VyRGVwdGgg OiBDbHV0dGVyLkJlaGF2aW91ciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJCZWhhdmlvdXIqIild CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgQmVoYXZpb3VyRGVwdGgg KENsdXR0ZXIuQWxwaGE/IGFscGhhLCBpbnQgZGVwdGhfc3RhcnQsIGludCBkZXB0aF9lbmQpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2JvdW5kcyAo b3V0IGludCBkZXB0aF9zdGFydCwgb3V0IGludCBkZXB0aF9lbmQpOworLQkJW1ZlcnNpb24gKHNp bmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2JvdW5kcyAoaW50IGRlcHRoX3N0YXJ0 LCBpbnQgZGVwdGhfZW5kKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKHNp bmNlID0gIjAuNCIpXQorLQkJcHVibGljIGludCBkZXB0aF9lbmQgeyBnZXQ7IHNldDsgfQorLQkJ W05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJs aWMgaW50IGRlcHRoX3N0YXJ0IHsgZ2V0OyBzZXQ7IH0KKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYmVoYXZp b3VyX29wYWNpdHlfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNiIsIHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgY2xh c3MgQmVoYXZpb3VyT3BhY2l0eSA6IENsdXR0ZXIuQmVoYXZpb3VyLCBDbHV0dGVyLlNjcmlwdGFi bGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAi Q2x1dHRlckJlaGF2aW91cioiKV0KKy0JCXB1YmxpYyBCZWhhdmlvdXJPcGFjaXR5IChDbHV0dGVy LkFscGhhPyBhbHBoYSwgdWludDggb3BhY2l0eV9zdGFydCwgdWludDggb3BhY2l0eV9lbmQpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2JvdW5kcyAo b3V0IHVpbnQ4IG9wYWNpdHlfc3RhcnQsIG91dCB1aW50OCBvcGFjaXR5X2VuZCk7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBzZXRfYm91bmRzICh1aW50OCBv cGFjaXR5X3N0YXJ0LCB1aW50OCBvcGFjaXR5X2VuZCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0K Ky0JCXB1YmxpYyB1aW50IG9wYWNpdHlfZW5kIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29y TWV0aG9kXQorLQkJcHVibGljIHVpbnQgb3BhY2l0eV9zdGFydCB7IGdldDsgc2V0OyB9CistCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9p ZCA9ICJjbHV0dGVyX2JlaGF2aW91cl9zY2FsZV9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS42Iiwgc2luY2UgPSAiMC4y IildCistCXB1YmxpYyBjbGFzcyBCZWhhdmlvdXJTY2FsZSA6IENsdXR0ZXIuQmVoYXZpb3VyLCBD bHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckJlaGF2aW91cioiKV0KKy0JCXB1YmxpYyBCZWhhdmlvdXJT Y2FsZSAoQ2x1dHRlci5BbHBoYT8gYWxwaGEsIGRvdWJsZSB4X3NjYWxlX3N0YXJ0LCBkb3VibGUg eV9zY2FsZV9zdGFydCwgZG91YmxlIHhfc2NhbGVfZW5kLCBkb3VibGUgeV9zY2FsZV9lbmQpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2JvdW5kcyAo b3V0IGRvdWJsZSB4X3NjYWxlX3N0YXJ0LCBvdXQgZG91YmxlIHlfc2NhbGVfc3RhcnQsIG91dCBk b3VibGUgeF9zY2FsZV9lbmQsIG91dCBkb3VibGUgeV9zY2FsZV9lbmQpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2JvdW5kcyAoZG91YmxlIHhfc2Nh bGVfc3RhcnQsIGRvdWJsZSB5X3NjYWxlX3N0YXJ0LCBkb3VibGUgeF9zY2FsZV9lbmQsIGRvdWJs ZSB5X3NjYWxlX2VuZCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBkb3VibGUgeF9zY2FsZV9lbmQgeyBnZXQ7IHNldDsgfQor LQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlw dWJsaWMgZG91YmxlIHhfc2NhbGVfc3RhcnQgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JN ZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgZG91YmxlIHlf c2NhbGVfZW5kIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNp b24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIGRvdWJsZSB5X3NjYWxlX3N0YXJ0IHsgZ2V0 OyBzZXQ7IH0KKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYmluX2xheW91dF9nZXRfdHlwZSAoKSIpXQorIAlb VmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCXB1YmxpYyBjbGFzcyBCaW5MYXlvdXQgOiBDbHV0 dGVyLkxheW91dE1hbmFnZXIgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckxheW91dE1hbmFnZXIqIildCisgCQlwdWJsaWMgQmluTGF5 b3V0IChDbHV0dGVyLkJpbkFsaWdubWVudCB4X2FsaWduID0gQ2x1dHRlci5CaW5BbGlnbm1lbnQu U1RBUlQsIENsdXR0ZXIuQmluQWxpZ25tZW50IHlfYWxpZ24gPSBDbHV0dGVyLkJpbkFsaWdubWVu dC5TVEFSVCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgYWRkIChDbHV0dGVy LkFjdG9yIGNoaWxkLCBDbHV0dGVyLkJpbkFsaWdubWVudCB4X2FsaWduLCBDbHV0dGVyLkJpbkFs aWdubWVudCB5X2FsaWduKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBnZXRf YWxpZ25tZW50IChDbHV0dGVyLkFjdG9yPyBjaGlsZCwgb3V0IENsdXR0ZXIuQmluQWxpZ25tZW50 IHhfYWxpZ24sIG91dCBDbHV0dGVyLkJpbkFsaWdubWVudCB5X2FsaWduKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS4yIildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxpZ25tZW50IChDbHV0dGVyLkFjdG9yPyBjaGls ZCwgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeF9hbGlnbiwgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeV9h bGlnbik7CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCisgCQlwdWJs aWMgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeF9hbGlnbiB7IGdldDsgc2V0OyB9CitAQCAtNTc1OCwz NyArNTYyNiw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBmbG9hdCB4OworIAkJ cHVibGljIGZsb2F0IHk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2NhaXJvX3RleHR1cmVfZ2V0X3R5cGUg KCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGNsYXNzIENhaXJvVGV4dHVyZSA6IENs dXR0ZXIuVGV4dHVyZSwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0 ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJcHVibGlj IENhaXJvVGV4dHVyZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQpOworLQkJcHVibGljIHZvaWQg Y2xlYXIgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS44Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2Fpcm8uQ29udGV4dCBjcmVh dGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS44Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2Fpcm8uQ29udGV4dCBjcmVhdGVf cmVnaW9uIChpbnQgeF9vZmZzZXQsIGludCB5X29mZnNldCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0 KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBib29sIGdldF9hdXRv X3Jlc2l6ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9zdXJmYWNlX3NpemUgKG91dCB1aW50IHdp ZHRoLCBvdXQgdWludCBoZWlnaHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJ cHVibGljIHZvaWQgaW52YWxpZGF0ZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0K Ky0JCXB1YmxpYyB2b2lkIGludmFsaWRhdGVfcmVjdGFuZ2xlIChDYWlyby5SZWN0YW5nbGVJbnQ/ IHJlY3QpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0 X2F1dG9fcmVzaXplIChib29sIHZhbHVlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9zdXJmYWNlX3Np emUgKHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgi KV0KKy0JCXB1YmxpYyBib29sIGF1dG9fcmVzaXplIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQgc3VyZmFjZV9oZWlnaHQgeyBnZXQ7IHNldDsgfQor LQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgdWludCBzdXJmYWNlX3dpZHRoIHsgZ2V0 OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyB2aXJ0dWFs IHNpZ25hbCBDYWlyby5TdXJmYWNlIGNyZWF0ZV9zdXJmYWNlICh1aW50IHdpZHRoLCB1aW50IGhl aWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdmlydHVhbCBz aWduYWwgYm9vbCBkcmF3IChDYWlyby5Db250ZXh0IGNyKTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfY2Fu dmFzX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1Ymxp YyBjbGFzcyBDYW52YXMgOiBHTGliLk9iamVjdCwgQ2x1dHRlci5Db250ZW50IHsKK0BAIC01OTIw LDYyICs1NzU3LDI0IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9m YWN0b3IgKGRvdWJsZSBmYWN0b3IpOworIAkJcHVibGljIGRvdWJsZSBmYWN0b3IgeyBnZXQ7IHNl dDsgfQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9kZXZpY2VfbWFuYWdlcl9nZXRfdHlwZSAoKSIpXQorLQlb VmVyc2lvbiAoc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBEZXZpY2VN YW5hZ2VyIDogR0xpYi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UpXQorLQkJcHJvdGVjdGVkIERldmljZU1hbmFnZXIgKCk7CistCQlbTm9XcmFwcGVy XQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBhZGRfZGV2aWNlIChDbHV0dGVyLklucHV0RGV2aWNl IGRldmljZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBhcHBseV9r YmRfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5LYmRBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworLQkJ W05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgY29tcHJlc3NfbW90aW9uIChDbHV0 dGVyLkV2ZW50IGV2ZW50LCBDbHV0dGVyLkV2ZW50IHRvX2Rpc2NhcmQpOworLQkJcHVibGljIHZp cnR1YWwgQ2x1dHRlci5WaXJ0dWFsSW5wdXREZXZpY2UgY3JlYXRlX3ZpcnR1YWxfZGV2aWNlIChD bHV0dGVyLklucHV0RGV2aWNlVHlwZSBkZXZpY2VfdHlwZSk7CistCQlwdWJsaWMgdmlydHVhbCB1 bm93bmVkIENsdXR0ZXIuSW5wdXREZXZpY2UgZ2V0X2NvcmVfZGV2aWNlIChDbHV0dGVyLklucHV0 RGV2aWNlVHlwZSBkZXZpY2VfdHlwZSk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRl ci5EZXZpY2VNYW5hZ2VyIGdldF9kZWZhdWx0ICgpOworLQkJcHVibGljIHZpcnR1YWwgdW5vd25l ZCBDbHV0dGVyLklucHV0RGV2aWNlIGdldF9kZXZpY2UgKGludCBkZXZpY2VfaWQpOworLQkJcHVi bGljIHZvaWQgZ2V0X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVyLktiZEExMXlTZXR0aW5ncyBz ZXR0aW5ncyk7CistCQlwdWJsaWMgdm9pZCBnZXRfcG9pbnRlcl9hMTF5X3NldHRpbmdzIChDbHV0 dGVyLlBvaW50ZXJBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworLQkJcHVibGljIHZpcnR1YWwgQ2x1 dHRlci5WaXJ0dWFsRGV2aWNlVHlwZSBnZXRfc3VwcG9ydGVkX3ZpcnR1YWxfZGV2aWNlX3R5cGVz ICgpOworLQkJcHVibGljIEdMaWIuU0xpc3Q8d2VhayBDbHV0dGVyLklucHV0RGV2aWNlPiBsaXN0 X2RldmljZXMgKCk7CistCQlwdWJsaWMgdW5vd25lZCBHTGliLlNMaXN0PENsdXR0ZXIuSW5wdXRE ZXZpY2U+IHBlZWtfZGV2aWNlcyAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVh bCB2b2lkIHJlbW92ZV9kZXZpY2UgKENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlKTsKKy0JCVtO b1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNlbGVjdF9zdGFnZV9ldmVudHMgKENs dXR0ZXIuU3RhZ2Ugc3RhZ2UpOworLQkJcHVibGljIHZvaWQgc2V0X2tiZF9hMTF5X3NldHRpbmdz IChDbHV0dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CistCQlwdWJsaWMgdm9pZCBzZXRf cG9pbnRlcl9hMTF5X2R3ZWxsX2NsaWNrX3R5cGUgKENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbENs aWNrVHlwZSBjbGlja190eXBlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9wb2ludGVyX2ExMXlfc2V0 dGluZ3MgKENsdXR0ZXIuUG9pbnRlckExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBDbHV0dGVyLkJhY2tlbmQgYmFja2VuZCB7IG93bmVkIGdl dDsgY29uc3RydWN0OyB9CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGV2aWNlX2FkZGVkIChDbHV0 dGVyLklucHV0RGV2aWNlIGRldmljZSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGV2aWNlX3Jl bW92ZWQgKENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9p ZCBrYmRfYTExeV9mbGFnc19jaGFuZ2VkICh1aW50IHNldHRpbmdzX2ZsYWdzLCB1aW50IGNoYW5n ZWRfbWFzayk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQga2JkX2ExMXlfbW9kc19zdGF0ZV9jaGFu Z2VkICh1aW50IGxhdGNoZWRfbWFzaywgdWludCBsb2NrZWRfbWFzayk7CistCQlwdWJsaWMgc2ln bmFsIHZvaWQgcHRyX2ExMXlfZHdlbGxfY2xpY2tfdHlwZV9jaGFuZ2VkIChDbHV0dGVyLlBvaW50 ZXJBMTF5RHdlbGxDbGlja1R5cGUgY2xpY2tfdHlwZSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQg cHRyX2ExMXlfdGltZW91dF9zdGFydGVkIChDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSwgQ2x1 dHRlci5Qb2ludGVyQTExeVRpbWVvdXRUeXBlIHRpbWVvdXRfdHlwZSwgdWludCBkZWxheSk7Cist CQlwdWJsaWMgc2lnbmFsIHZvaWQgcHRyX2ExMXlfdGltZW91dF9zdG9wcGVkIChDbHV0dGVyLklu cHV0RGV2aWNlIGRldmljZSwgQ2x1dHRlci5Qb2ludGVyQTExeVRpbWVvdXRUeXBlIHRpbWVvdXRf dHlwZSk7CistCQlwdWJsaWMgc2lnbmFsIHZvaWQgdG9vbF9jaGFuZ2VkIChDbHV0dGVyLklucHV0 RGV2aWNlIG9iamVjdCwgQ2x1dHRlci5JbnB1dERldmljZVRvb2wgcDApOworLQl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9kcmFnX2FjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40 IildCisgCXB1YmxpYyBjbGFzcyBEcmFnQWN0aW9uIDogQ2x1dHRlci5BY3Rpb24geworIAkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdGlv bioiKV0KKyAJCXB1YmxpYyBEcmFnQWN0aW9uICgpOworLQkJcHVibGljIGJvb2wgZ2V0X2RyYWdf YXJlYSAoQ2x1dHRlci5SZWN0IGRyYWdfYXJlYSk7CisrCQlwdWJsaWMgYm9vbCBnZXRfZHJhZ19h cmVhIChHcmFwaGVuZS5SZWN0IGRyYWdfYXJlYSk7CisgCQlwdWJsaWMgQ2x1dHRlci5EcmFnQXhp cyBnZXRfZHJhZ19heGlzICgpOworIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRf ZHJhZ19oYW5kbGUgKCk7CisgCQlwdWJsaWMgdm9pZCBnZXRfZHJhZ190aHJlc2hvbGQgKG91dCB1 aW50IHhfdGhyZXNob2xkLCBvdXQgdWludCB5X3RocmVzaG9sZCk7CisgCQlwdWJsaWMgdm9pZCBn ZXRfbW90aW9uX2Nvb3JkcyAob3V0IGZsb2F0IG1vdGlvbl94LCBvdXQgZmxvYXQgbW90aW9uX3kp OworIAkJcHVibGljIHZvaWQgZ2V0X3ByZXNzX2Nvb3JkcyAob3V0IGZsb2F0IHByZXNzX3gsIG91 dCBmbG9hdCBwcmVzc195KTsKKy0JCXB1YmxpYyB2b2lkIHNldF9kcmFnX2FyZWEgKENsdXR0ZXIu UmVjdD8gZHJhZ19hcmVhKTsKKysJCXB1YmxpYyB2b2lkIHNldF9kcmFnX2FyZWEgKEdyYXBoZW5l LlJlY3Q/IGRyYWdfYXJlYSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfZHJhZ19heGlzIChDbHV0dGVy LkRyYWdBeGlzIGF4aXMpOworIAkJcHVibGljIHZvaWQgc2V0X2RyYWdfaGFuZGxlIChDbHV0dGVy LkFjdG9yPyBoYW5kbGUpOworIAkJcHVibGljIHZvaWQgc2V0X2RyYWdfdGhyZXNob2xkIChpbnQg eF90aHJlc2hvbGQsIGludCB5X3RocmVzaG9sZCk7CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5SZWN0IGRyYWdf YXJlYSB7IG93bmVkIGdldDsgc2V0OyB9CisrCQlwdWJsaWMgR3JhcGhlbmUuUmVjdCBkcmFnX2Fy ZWEgeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGJvb2wgZHJhZ19hcmVhX3NldCB7IGdldDsg fQorQEAgLTYwMTEsMTMgKzU4MTAsMTMgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW05vV3Jh cHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgbW9kaWZ5X3BhaW50X3ZvbHVtZSAoQ2x1dHRl ci5QYWludFZvbHVtZSB2b2x1bWUpOworIAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFs IHZvaWQgcGFpbnQgKENsdXR0ZXIuRWZmZWN0UGFpbnRGbGFncyBmbGFncyk7CisrCQlwdWJsaWMg dmlydHVhbCB2b2lkIHBhaW50IChDbHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0LCBD bHV0dGVyLkVmZmVjdFBhaW50RmxhZ3MgZmxhZ3MpOworIAkJW05vV3JhcHBlcl0KKy0JCXB1Ymxp YyB2aXJ0dWFsIHZvaWQgcGljayAoQ2x1dHRlci5FZmZlY3RQYWludEZsYWdzIGZsYWdzKTsKKysJ CXB1YmxpYyB2aXJ0dWFsIHZvaWQgcGljayAoQ2x1dHRlci5QaWNrQ29udGV4dCBwaWNrX2NvbnRl eHQpOworIAkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcG9zdF9wYWludCAo KTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcG9zdF9wYWludCAoQ2x1dHRlci5QYWludENvbnRl eHQgcGFpbnRfY29udGV4dCk7CisgCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgYm9v bCBwcmVfcGFpbnQgKCk7CisrCQlwdWJsaWMgdmlydHVhbCBib29sIHByZV9wYWludCAoQ2x1dHRl ci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44 IildCisgCQlwdWJsaWMgdm9pZCBxdWV1ZV9yZXBhaW50ICgpOworIAl9CitAQCAtNjA2OCw3ICs1 ODY3LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHVpbnQgZ2V0X21vZGVfZ3Jv dXAgKCk7CisgCQlwdWJsaWMgYm9vbCBnZXRfcGFkX2V2ZW50X2RldGFpbHMgKG91dCB1aW50IG51 bWJlciwgb3V0IHVpbnQgbW9kZSwgb3V0IGRvdWJsZSB2YWx1ZSk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3Bvc2l0aW9uIChDbHV0dGVyLlBvaW50 IHBvc2l0aW9uKTsKKysJCXB1YmxpYyB2b2lkIGdldF9wb3NpdGlvbiAoR3JhcGhlbmUuUG9pbnQg cG9zaXRpb24pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHVub3du ZWQgQ2x1dHRlci5BY3RvciBnZXRfcmVsYXRlZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCitAQCAtNjMwOCw3ICs2MTA3LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIGJvb2wgZ2V0X2F4aXNfdmFsdWUgKFtD Q29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBkb3VibGVbXSBheGVzLCBDbHV0dGVyLklucHV0 QXhpcyBheGlzLCBvdXQgZG91YmxlIHZhbHVlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEy IildCistCQlwdWJsaWMgYm9vbCBnZXRfY29vcmRzIChDbHV0dGVyLkV2ZW50U2VxdWVuY2U/IHNl cXVlbmNlLCBDbHV0dGVyLlBvaW50IHBvaW50KTsKKysJCXB1YmxpYyBib29sIGdldF9jb29yZHMg KENsdXR0ZXIuRXZlbnRTZXF1ZW5jZT8gc2VxdWVuY2UsIEdyYXBoZW5lLlBvaW50IHBvaW50KTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2RldmljZV9p ZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KK0BAIC02MzIyLDcgKzYxMjEsNyBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBnZXRfZW5hYmxlZCAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFj dG9yIGdldF9ncmFiYmVkX2FjdG9yICgpOworLQkJcHVibGljIGludCBnZXRfZ3JvdXBfbl9tb2Rl cyAoaW50IGdyb3VwKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGludCBnZXRfZ3JvdXBfbl9tb2RlcyAo aW50IGdyb3VwKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBib29s IGdldF9oYXNfY3Vyc29yICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTYz NDQsMTYgKzYxNDMsMTcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHVub3duZWQg Q2x1dHRlci5TdGFnZSBnZXRfcG9pbnRlcl9zdGFnZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjIyIildCisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3Byb2R1Y3RfaWQgKCk7Cisr CQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlNlYXQgZ2V0X3NlYXQgKCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgR0xpYi5MaXN0PHdlYWsgQ2x1dHRlci5JbnB1dERl dmljZT4gZ2V0X3NsYXZlX2RldmljZXMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yMiIp XQorIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF92ZW5kb3JfaWQgKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgZ3JhYiAoQ2x1dHRlci5BY3RvciBh Y3Rvcik7CistCQlwdWJsaWMgYm9vbCBpc19ncm91cGVkIChDbHV0dGVyLklucHV0RGV2aWNlIG90 aGVyX2RldmljZSk7CistCQlwdWJsaWMgYm9vbCBpc19tb2RlX3N3aXRjaF9idXR0b24gKHVpbnQg Z3JvdXAsIHVpbnQgYnV0dG9uKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgaXNfZ3JvdXBlZCAo Q2x1dHRlci5JbnB1dERldmljZSBvdGhlcl9kZXZpY2UpOworKwkJcHVibGljIHZpcnR1YWwgYm9v bCBpc19tb2RlX3N3aXRjaF9idXR0b24gKHVpbnQgZ3JvdXAsIHVpbnQgYnV0dG9uKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgYm9vbCBrZXljb2RlX3RvX2V2ZGV2 ICh1aW50IGhhcmR3YXJlX2tleWNvZGUsIHVpbnQgZXZkZXZfa2V5Y29kZSk7CisrCQlwdWJsaWMg dmlydHVhbCBib29sIGtleWNvZGVfdG9fZXZkZXYgKHVpbnQgaGFyZHdhcmVfa2V5Y29kZSwgdWlu dCBldmRldl9rZXljb2RlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJs aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIHNlcXVlbmNlX2dldF9ncmFiYmVkX2FjdG9yIChDbHV0 dGVyLkV2ZW50U2VxdWVuY2Ugc2VxdWVuY2UpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIi KV0KK0BAIC02MzY5LDEyICs2MTY5LDExIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1Ymxp YyB2b2lkIHVuZ3JhYiAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1Ymxp YyB2b2lkIHVwZGF0ZV9mcm9tX2V2ZW50IChDbHV0dGVyLkV2ZW50IGV2ZW50LCBib29sIHVwZGF0 ZV9zdGFnZSk7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZpcnR1YWwgdm9pZCB1cGRhdGVf ZnJvbV90b29sIChDbHV0dGVyLklucHV0RGV2aWNlVG9vbCB0b29sKTsKKyAJCVtOb0FjY2Vzc29y TWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIENsdXR0ZXIu QmFja2VuZCBiYWNrZW5kIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCVtOb0FjY2Vzc29y TWV0aG9kXQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIENsdXR0ZXIu RGV2aWNlTWFuYWdlciBkZXZpY2VfbWFuYWdlciB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9Cisg CQlwdWJsaWMgQ2x1dHRlci5JbnB1dE1vZGUgZGV2aWNlX21vZGUgeyBnZXQ7IGNvbnN0cnVjdDsg fQorIAkJcHVibGljIHN0cmluZyBkZXZpY2Vfbm9kZSB7IGdldDsgY29uc3RydWN0OyB9CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4yIildCitAQCAtNjM5Nyw2ICs2MTk2LDcgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJcHVibGljIHN0cmluZyBuYW1lIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7 IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIyIildCisgCQlwdWJsaWMgc3RyaW5nIHByb2R1 Y3RfaWQgeyBnZXQ7IGNvbnN0cnVjdDsgfQorKwkJcHVibGljIENsdXR0ZXIuU2VhdCBzZWF0IHsg Z2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIyIildCisgCQlwdWJs aWMgc3RyaW5nIHZlbmRvcl9pZCB7IGdldDsgY29uc3RydWN0OyB9CisgCX0KK0BAIC02NDM0LDcg KzYyMzQsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBzZXRfY2FuX3No b3dfcHJlZWRpdCAoYm9vbCBjYW5fc2hvd19wcmVlZGl0KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9j b250ZW50X2hpbnRzIChDbHV0dGVyLklucHV0Q29udGVudEhpbnRGbGFncyBoaW50KTsKKyAJCXB1 YmxpYyB2b2lkIHNldF9jb250ZW50X3B1cnBvc2UgKENsdXR0ZXIuSW5wdXRDb250ZW50UHVycG9z ZSBwdXJwb3NlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9jdXJzb3JfbG9jYXRpb24gKENsdXR0ZXIu UmVjdCByZWN0KTsKKysJCXB1YmxpYyB2b2lkIHNldF9jdXJzb3JfbG9jYXRpb24gKEdyYXBoZW5l LlJlY3QgcmVjdCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfaW5wdXRfcGFuZWxfc3RhdGUgKENsdXR0 ZXIuSW5wdXRQYW5lbFN0YXRlIHN0YXRlKTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmly dHVhbCB2b2lkIHNldF9wcmVlZGl0X3RleHQgKHN0cmluZyBwcmVlZGl0LCB1aW50IGN1cnNvcik7 CitAQCAtNjQ1Myw3ICs2MjUzLDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW05vV3JhcHBl cl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcmVzZXQgKCk7CisgCQlbTm9XcmFwcGVyXQorLQkJ cHVibGljIHZpcnR1YWwgdm9pZCBzZXRfY3Vyc29yX2xvY2F0aW9uIChDbHV0dGVyLlJlY3QgcmVj dCk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNldF9jdXJzb3JfbG9jYXRpb24gKEdyYXBoZW5l LlJlY3QgcmVjdCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfaW5wdXRfcGFuZWxfc3RhdGUgKENsdXR0 ZXIuSW5wdXRQYW5lbFN0YXRlIHN0YXRlKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9wcmVlZGl0X3Rl eHQgKHN0cmluZz8gcHJlZWRpdCwgdWludCBjdXJzb3IpOworIAkJW05vV3JhcHBlcl0KK0BAIC02 NDcwLDcgKzYyNzAsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5J bnB1dENvbnRlbnRQdXJwb3NlIGNvbnRlbnRfcHVycG9zZSB7IGdldDsgc2V0OyB9CisgCQlbSGFz RW1pdHRlcl0KKyAJCXB1YmxpYyBzaWduYWwgdm9pZCBjb21taXQgKHN0cmluZyB0ZXh0KTsKKy0J CXB1YmxpYyBzaWduYWwgdm9pZCBjdXJzb3JfbG9jYXRpb25fY2hhbmdlZCAoQ2x1dHRlci5SZWN0 IG9iamVjdCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgY3Vyc29yX2xvY2F0aW9uX2NoYW5nZWQg KEdyYXBoZW5lLlJlY3Qgb2JqZWN0KTsKKyAJCVtIYXNFbWl0dGVyXQorIAkJcHVibGljIHNpZ25h bCB2b2lkIGRlbGV0ZV9zdXJyb3VuZGluZyAodWludCBvZmZzZXQsIHVpbnQgbGVuKTsKKyAJCXB1 YmxpYyBzaWduYWwgdm9pZCBpbnB1dF9wYW5lbF9zdGF0ZSAoQ2x1dHRlci5JbnB1dFBhbmVsU3Rh dGUgb2JqZWN0KTsKK0BAIC02NTQ2LDI3ICs2MzQ2LDMxIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3Rl ZCBLZXltYXAgKCk7CisgCQlwdWJsaWMgdmlydHVhbCBib29sIGdldF9jYXBzX2xvY2tfc3RhdGUg KCk7CisrCQlwdWJsaWMgdmlydHVhbCBQYW5nby5EaXJlY3Rpb24gZ2V0X2RpcmVjdGlvbiAoKTsK KyAJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgZ2V0X251bV9sb2NrX3N0YXRlICgpOworIAkJcHVibGlj IHNpZ25hbCB2b2lkIHN0YXRlX2NoYW5nZWQgKCk7CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2xheWVyX25v ZGVfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIExheWVyTm9kZSA6IENsdXR0ZXIuUGFp bnROb2RlIHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBl ID0gIkNsdXR0ZXJQYWludE5vZGUqIildCisrCQlwdWJsaWMgTGF5ZXJOb2RlIChDb2dsLk1hdHJp eCBwcm9qZWN0aW9uLCBDYWlyby5SZWN0YW5nbGUgdmlld3BvcnQsIGZsb2F0IHdpZHRoLCBmbG9h dCBoZWlnaHQsIHVpbnQ4IG9wYWNpdHkpOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9sYXlvdXRfbWFuYWdl cl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCXB1YmxpYyBh YnN0cmFjdCBjbGFzcyBMYXlvdXRNYW5hZ2VyIDogR0xpYi5Jbml0aWFsbHlVbm93bmVkIHsKKyAJ CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBM YXlvdXRNYW5hZ2VyICgpOworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBhbGxvY2F0ZSAoQ2x1dHRl ci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yQm94IGFsbG9jYXRpb24sIENsdXR0 ZXIuQWxsb2NhdGlvbkZsYWdzIGZsYWdzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMg dmlydHVhbCB1bm93bmVkIENsdXR0ZXIuQWxwaGEgYmVnaW5fYW5pbWF0aW9uICh1aW50IGR1cmF0 aW9uLCB1bG9uZyBtb2RlKTsKKyAJCXB1YmxpYyB2b2lkIGNoaWxkX2dldCAoQ2x1dHRlci5Db250 YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yLCAuLi4pOworIAkJcHVibGljIHZv aWQgY2hpbGRfZ2V0X3Byb3BlcnR5IChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0 ZXIuQWN0b3IgYWN0b3IsIHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVlIHZhbHVlKTsK KyAJCXB1YmxpYyB2b2lkIGNoaWxkX3NldCAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBD bHV0dGVyLkFjdG9yIGFjdG9yLCAuLi4pOworIAkJcHVibGljIHZvaWQgY2hpbGRfc2V0X3Byb3Bl cnR5IChDbHV0dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IsIHN0 cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVlIHZhbHVlKTsKKyAJCVtOb1dyYXBwZXJdCisg CQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuTGF5b3V0TWV0YSBjcmVhdGVfY2hpbGRf bWV0YSAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS4yIildCisrCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9p ZCBlbmRfYW5pbWF0aW9uICgpOworIAkJcHVibGljIHVub3duZWQgR0xpYi5QYXJhbVNwZWMgZmlu ZF9jaGlsZF9wcm9wZXJ0eSAoc3RyaW5nIG5hbWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKysJCVtO b1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCBkb3VibGUgZ2V0X2FuaW1hdGlvbl9wcm9ncmVz cyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENs dXR0ZXIuTGF5b3V0TWV0YSBnZXRfY2hpbGRfbWV0YSAoQ2x1dHRlci5Db250YWluZXIgY29udGFp bmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yKTsKK0BAIC02NjIzLDEyICs2NDI3LDEyIEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCXByb3RlY3RlZCBPZmZzY3JlZW5FZmZlY3QgKCk7CisgCQlwdWJs aWMgdmlydHVhbCBDb2dsLkhhbmRsZSBjcmVhdGVfdGV4dHVyZSAoZmxvYXQgd2lkdGgsIGZsb2F0 IGhlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorLQkJcHVibGljIGJvb2wg Z2V0X3RhcmdldF9yZWN0IChvdXQgdW5vd25lZCBDbHV0dGVyLlJlY3QgcmVjdCk7CisrCQlwdWJs aWMgYm9vbCBnZXRfdGFyZ2V0X3JlY3QgKG91dCB1bm93bmVkIEdyYXBoZW5lLlJlY3QgcmVjdCk7 CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NCIsIHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIGJvb2wgZ2V0X3RhcmdldF9zaXplIChvdXQg ZmxvYXQgd2lkdGgsIG91dCBmbG9hdCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxlIGdldF90ZXh0dXJlICgpOworLQkJ cHVibGljIHZpcnR1YWwgdm9pZCBwYWludF90YXJnZXQgKCk7CisrCQlwdWJsaWMgdmlydHVhbCB2 b2lkIHBhaW50X3RhcmdldCAoQ2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7Cisg CX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlw ZV9pZCA9ICJjbHV0dGVyX3BhZ2VfdHVybl9lZmZlY3RfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNp b24gKHNpbmNlID0gIjEuNCIpXQorQEAgLTY2NDUsNiArNjQ0OSwxNiBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlwdWJsaWMgZG91YmxlIHBlcmlvZCB7IGdldDsgc2V0OyB9CisgCQlwdWJsaWMg ZmxvYXQgcmFkaXVzIHsgZ2V0OyBzZXQ7IH0KKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCByZWZfZnVuY3Rpb24gPSAiY2x1dHRlcl9wYWludF9j b250ZXh0X3JlZiIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYWludF9jb250ZXh0X2dldF90eXBlICgp IiwgdW5yZWZfZnVuY3Rpb24gPSAiY2x1dHRlcl9wYWludF9jb250ZXh0X3VucmVmIildCisrCVtD b21wYWN0XQorKwlwdWJsaWMgY2xhc3MgUGFpbnRDb250ZXh0IHsKKysJCXB1YmxpYyB2b2lkIGRl c3Ryb3kgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBDb2dsLkZyYW1lYnVmZmVyIGdldF9mcmFtZWJ1 ZmZlciAoKTsKKysJCXB1YmxpYyB2b2lkIHBvcF9mcmFtZWJ1ZmZlciAoKTsKKysJCXB1YmxpYyB2 b2lkIHB1c2hfZnJhbWVidWZmZXIgKENvZ2wuRnJhbWVidWZmZXIgZnJhbWVidWZmZXIpOworKwkJ cHVibGljIHVub3duZWQgQ2x1dHRlci5QYWludENvbnRleHQgQHJlZiAoKTsKKysJCXB1YmxpYyB2 b2lkIHVucmVmICgpOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYWludF9ub2RlX2dldF90eXBlICgpIild CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBQ YWludE5vZGUgeworQEAgLTY2NTQsNyArNjQ2OCw4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CXB1YmxpYyB2b2lkIGFkZF9tdWx0aXRleHR1cmVfcmVjdGFuZ2xlIChDbHV0dGVyLkFjdG9yQm94 IHJlY3QsIGZsb2F0IHRleHRfY29vcmRzLCB1aW50IHRleHRfY29vcmRzX2xlbik7CisgCQlwdWJs aWMgdm9pZCBhZGRfcmVjdGFuZ2xlIChDbHV0dGVyLkFjdG9yQm94IHJlY3QpOworIAkJcHVibGlj IHZvaWQgYWRkX3RleHR1cmVfcmVjdGFuZ2xlIChDbHV0dGVyLkFjdG9yQm94IHJlY3QsIGZsb2F0 IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMik7CistCQlwdWJsaWMgdm9pZCBw YWludCAoKTsKKysJCXB1YmxpYyB1bm93bmVkIENvZ2wuRnJhbWVidWZmZXIgZ2V0X2ZyYW1lYnVm ZmVyICgpOworKwkJcHVibGljIHZvaWQgcGFpbnQgKENsdXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50 X2NvbnRleHQpOworIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5QYWludE5vZGUgQHJlZiAoKTsK KyAJCXB1YmxpYyB2b2lkIHNldF9uYW1lIChzdHJpbmcgbmFtZSk7CisgCQlwdWJsaWMgdm9pZCB1 bnJlZiAoKTsKK0BAIC02NjcyLDcgKzY0ODcsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X2hlaWdodCAoKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCBn ZXRfb3JpZ2luICgpOworKwkJcHVibGljIHZvaWQgZ2V0X29yaWdpbiAob3V0IHVub3duZWQgR3Jh cGhlbmUuUG9pbnQzRCB2ZXJ0ZXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJ cHVibGljIGZsb2F0IGdldF93aWR0aCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0K K0BAIC02NjgyLDcgKzY0OTcsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgdm9pZCBzZXRfaGVpZ2h0IChmbG9hdCBoZWlnaHQp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X29yaWdp biAoQ2x1dHRlci5WZXJ0ZXggb3JpZ2luKTsKKysJCXB1YmxpYyB2b2lkIHNldF9vcmlnaW4gKEdy YXBoZW5lLlBvaW50M0Qgb3JpZ2luKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJ CXB1YmxpYyB2b2lkIHNldF93aWR0aCAoZmxvYXQgd2lkdGgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNiIpXQorQEAgLTY3NjksMjYgKzY1ODQsMTkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgewor IAkJcHVibGljIENsdXR0ZXIuUGF0aCBwYXRoIHsgZ2V0OyBzZXQ7IH0KKyAJCXB1YmxpYyBzaWdu YWwgdm9pZCBub2RlX3JlYWNoZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIHVpbnQgaW5kZXgpOwor IAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHJl Zl9mdW5jdGlvbiA9ICJjbHV0dGVyX3BpY2tfY29udGV4dF9yZWYiLCB0eXBlX2lkID0gImNsdXR0 ZXJfcGlja19jb250ZXh0X2dldF90eXBlICgpIiwgdW5yZWZfZnVuY3Rpb24gPSAiY2x1dHRlcl9w aWNrX2NvbnRleHRfdW5yZWYiKV0KKysJW0NvbXBhY3RdCisrCXB1YmxpYyBjbGFzcyBQaWNrQ29u dGV4dCB7CisrCQlwdWJsaWMgdm9pZCBkZXN0cm95ICgpOworKwkJcHVibGljIHVub3duZWQgQ2x1 dHRlci5QaWNrQ29udGV4dCBAcmVmICgpOworKwkJcHVibGljIHZvaWQgdW5yZWYgKCk7CisrCX0K KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9p ZCA9ICJjbHV0dGVyX3BpcGVsaW5lX25vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGNsYXNzIFBpcGVsaW5lTm9kZSA6IENsdXR0ZXIuUGFp bnROb2RlIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJ CXByb3RlY3RlZCBQaXBlbGluZU5vZGUgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHki LCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wb2lu dF9nZXRfdHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIi KV0KKy0JcHVibGljIGNsYXNzIFBvaW50IHsKKy0JCXB1YmxpYyBmbG9hdCB4OworLQkJcHVibGlj IGZsb2F0IHk7CistCQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuUG9pbnQgYWxsb2MgKCk7CistCQlw dWJsaWMgQ2x1dHRlci5Qb2ludCBjb3B5ICgpOworLQkJcHVibGljIGZsb2F0IGRpc3RhbmNlIChD bHV0dGVyLlBvaW50IGIsIG91dCBmbG9hdCB4X2Rpc3RhbmNlLCBvdXQgZmxvYXQgeV9kaXN0YW5j ZSk7CistCQlwdWJsaWMgYm9vbCBlcXVhbHMgKENsdXR0ZXIuUG9pbnQgYik7CistCQlwdWJsaWMg dm9pZCBmcmVlICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5Qb2ludCBpbml0IChmbG9h dCB4LCBmbG9hdCB5KTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLlBvaW50IHpl cm8gKCk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3Byb3BlcnR5X3RyYW5zaXRpb25fZ2V0X3R5cGUgKCki KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGNsYXNzIFByb3BlcnR5 VHJhbnNpdGlvbiA6IENsdXR0ZXIuVHJhbnNpdGlvbiwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKK0BA IC02Nzk4LDMzICs2NjA2LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQg c2V0X3Byb3BlcnR5X25hbWUgKHN0cmluZz8gcHJvcGVydHlfbmFtZSk7CisgCQlwdWJsaWMgc3Ry aW5nIHByb3BlcnR5X25hbWUgeyBnZXQ7IHNldDsgfQorIAl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9j b3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJf cmVjdF9nZXRfdHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEu MTIiKV0KKy0JcHVibGljIGNsYXNzIFJlY3QgeworLQkJcHVibGljIHdlYWsgQ2x1dHRlci5Qb2lu dCBvcmlnaW47CistCQlwdWJsaWMgd2VhayBDbHV0dGVyLlNpemUgc2l6ZTsKKy0JCXB1YmxpYyBz dGF0aWMgQ2x1dHRlci5SZWN0IGFsbG9jICgpOworLQkJcHVibGljIHZvaWQgY2xhbXBfdG9fcGl4 ZWwgKCk7CistCQlwdWJsaWMgYm9vbCBjb250YWluc19wb2ludCAoQ2x1dHRlci5Qb2ludCBwb2lu dCk7CistCQlwdWJsaWMgYm9vbCBjb250YWluc19yZWN0IChDbHV0dGVyLlJlY3QgYik7CistCQlw dWJsaWMgQ2x1dHRlci5SZWN0IGNvcHkgKCk7CistCQlwdWJsaWMgYm9vbCBlcXVhbHMgKENsdXR0 ZXIuUmVjdCBiKTsKKy0JCXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlwdWJsaWMgdm9pZCBnZXRf Y2VudGVyIChDbHV0dGVyLlBvaW50IGNlbnRlcik7CistCQlwdWJsaWMgZmxvYXQgZ2V0X2hlaWdo dCAoKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfd2lkdGggKCk7CistCQlwdWJsaWMgZmxvYXQgZ2V0 X3ggKCk7CistCQlwdWJsaWMgZmxvYXQgZ2V0X3kgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0 dGVyLlJlY3QgaW5pdCAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdo dCk7CistCQlwdWJsaWMgdm9pZCBpbnNldCAoZmxvYXQgZF94LCBmbG9hdCBkX3kpOworLQkJcHVi bGljIGJvb2wgaW50ZXJzZWN0aW9uIChDbHV0dGVyLlJlY3QgYiwgQ2x1dHRlci5SZWN0PyByZXMp OworLQkJcHVibGljIENsdXR0ZXIuUmVjdCBub3JtYWxpemUgKCk7CistCQlwdWJsaWMgdm9pZCBv ZmZzZXQgKGZsb2F0IGRfeCwgZmxvYXQgZF95KTsKKy0JCXB1YmxpYyB2b2lkIHNjYWxlIChmbG9h dCBzX3gsIGZsb2F0IHNfeSk7CistCQlwdWJsaWMgdm9pZCB1bmlvbiAoQ2x1dHRlci5SZWN0IGIs IENsdXR0ZXIuUmVjdCByZXMpOworLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuUmVj dCB6ZXJvICgpOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9yZWN0YW5nbGVfZ2V0X3R5cGUgKCkiKV0KKyAJ W1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAlwdWJsaWMgY2xhc3MgUmVjdGFuZ2xlIDogQ2x1 dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIu Q29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworQEAgLTY5MDcsOCArNjY4OCw4IEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKyAJCXB1YmxpYyBTY3JvbGxBY3RvciAoKTsK KyAJCXB1YmxpYyBDbHV0dGVyLlNjcm9sbE1vZGUgZ2V0X3Njcm9sbF9tb2RlICgpOworLQkJcHVi bGljIHZvaWQgc2Nyb2xsX3RvX3BvaW50IChDbHV0dGVyLlBvaW50IHBvaW50KTsKKy0JCXB1Ymxp YyB2b2lkIHNjcm9sbF90b19yZWN0IChDbHV0dGVyLlJlY3QgcmVjdCk7CisrCQlwdWJsaWMgdm9p ZCBzY3JvbGxfdG9fcG9pbnQgKEdyYXBoZW5lLlBvaW50IHBvaW50KTsKKysJCXB1YmxpYyB2b2lk IHNjcm9sbF90b19yZWN0IChHcmFwaGVuZS5SZWN0IHJlY3QpOworIAkJcHVibGljIHZvaWQgc2V0 X3Njcm9sbF9tb2RlIChDbHV0dGVyLlNjcm9sbE1vZGUgbW9kZSk7CisgCQlwdWJsaWMgQ2x1dHRl ci5TY3JvbGxNb2RlIHNjcm9sbF9tb2RlIHsgZ2V0OyBzZXQ7IH0KKyAJfQorQEAgLTY5MzAsNiAr NjcxMSw0NCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZmxvYXQgeDsKKyAJCXB1 YmxpYyBmbG9hdCB5OworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zZWF0X2dldF90eXBlICgpIildCisrCXB1 YmxpYyBhYnN0cmFjdCBjbGFzcyBTZWF0IDogR0xpYi5PYmplY3QgeworKwkJW0NDb2RlIChoYXNf Y29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIFNlYXQgKCk7CisrCQlb Tm9XcmFwcGVyXQorKwkJcHVibGljIHZpcnR1YWwgdm9pZCBhcHBseV9rYmRfYTExeV9zZXR0aW5n cyAoQ2x1dHRlci5LYmRBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworKwkJcHVibGljIHZpcnR1YWwg dm9pZCBiZWxsX25vdGlmeSAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgY29tcHJlc3NfbW90 aW9uIChDbHV0dGVyLkV2ZW50IGV2ZW50LCBDbHV0dGVyLkV2ZW50IHRvX2Rpc2NhcmQpOworKwkJ W05vV3JhcHBlcl0KKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgY29weV9ldmVudF9kYXRhIChDbHV0 dGVyLkV2ZW50IHNyYywgQ2x1dHRlci5FdmVudCBkZXN0KTsKKysJCXB1YmxpYyB2aXJ0dWFsIENs dXR0ZXIuVmlydHVhbElucHV0RGV2aWNlIGNyZWF0ZV92aXJ0dWFsX2RldmljZSAoQ2x1dHRlci5J bnB1dERldmljZVR5cGUgZGV2aWNlX3R5cGUpOworKwkJcHVibGljIHZvaWQgZW5zdXJlX2ExMXlf c3RhdGUgKCk7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZpcnR1YWwgdm9pZCBmcmVlX2V2 ZW50X2RhdGEgKENsdXR0ZXIuRXZlbnQgZXZlbnQpOworKwkJcHVibGljIHZvaWQgZ2V0X2tiZF9h MTF5X3NldHRpbmdzIChDbHV0dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CisrCQlwdWJs aWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuSW5wdXREZXZpY2UgZ2V0X2tleWJvYXJkICgpOwor KwkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLktleW1hcCBnZXRfa2V5bWFwICgpOwor KwkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLklucHV0RGV2aWNlIGdldF9wb2ludGVy ICgpOworKwkJcHVibGljIHZvaWQgZ2V0X3BvaW50ZXJfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5Q b2ludGVyQTExeVNldHRpbmdzIHNldHRpbmdzKTsKKysJCXB1YmxpYyB2aXJ0dWFsIENsdXR0ZXIu VmlydHVhbERldmljZVR5cGUgZ2V0X3N1cHBvcnRlZF92aXJ0dWFsX2RldmljZV90eXBlcyAoKTsK KysJCXB1YmxpYyBib29sIGdldF90b3VjaF9tb2RlICgpOworKwkJcHVibGljIHZpcnR1YWwgR0xp Yi5MaXN0PHdlYWsgQ2x1dHRlci5JbnB1dERldmljZT4gbGlzdF9kZXZpY2VzICgpOworKwkJcHVi bGljIHZvaWQgc2V0X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVyLktiZEExMXlTZXR0aW5ncyBz ZXR0aW5ncyk7CisrCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRlcl9hMTF5X2R3ZWxsX2NsaWNrX3R5 cGUgKENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbENsaWNrVHlwZSBjbGlja190eXBlKTsKKysJCXB1 YmxpYyB2b2lkIHNldF9wb2ludGVyX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuUG9pbnRlckExMXlT ZXR0aW5ncyBzZXR0aW5ncyk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHdhcnBfcG9pbnRlciAo aW50IHgsIGludCB5KTsKKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIENsdXR0ZXIu QmFja2VuZCBiYWNrZW5kIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCXB1YmxpYyBib29s IHRvdWNoX21vZGUgeyBnZXQ7IH0KKysJCXB1YmxpYyBzaWduYWwgdm9pZCBkZXZpY2VfYWRkZWQg KENsdXR0ZXIuSW5wdXREZXZpY2Ugb2JqZWN0KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBkZXZp Y2VfcmVtb3ZlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvYmplY3QpOworKwkJcHVibGljIHNpZ25h bCB2b2lkIGtiZF9hMTF5X2ZsYWdzX2NoYW5nZWQgKHVpbnQgc2V0dGluZ3NfZmxhZ3MsIHVpbnQg Y2hhbmdlZF9tYXNrKTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBrYmRfYTExeV9tb2RzX3N0YXRl X2NoYW5nZWQgKHVpbnQgbGF0Y2hlZF9tYXNrLCB1aW50IGxvY2tlZF9tYXNrKTsKKysJCXB1Ymxp YyBzaWduYWwgdm9pZCBwdHJfYTExeV9kd2VsbF9jbGlja190eXBlX2NoYW5nZWQgKENsdXR0ZXIu UG9pbnRlckExMXlEd2VsbENsaWNrVHlwZSBjbGlja190eXBlKTsKKysJCXB1YmxpYyBzaWduYWwg dm9pZCBwdHJfYTExeV90aW1lb3V0X3N0YXJ0ZWQgKENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNl LCBDbHV0dGVyLlBvaW50ZXJBMTF5VGltZW91dFR5cGUgdGltZW91dF90eXBlLCB1aW50IGRlbGF5 KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBwdHJfYTExeV90aW1lb3V0X3N0b3BwZWQgKENsdXR0 ZXIuSW5wdXREZXZpY2UgZGV2aWNlLCBDbHV0dGVyLlBvaW50ZXJBMTF5VGltZW91dFR5cGUgdGlt ZW91dF90eXBlLCBib29sIGNsaWNrZWQpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHRvb2xfY2hh bmdlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvYmplY3QsIENsdXR0ZXIuSW5wdXREZXZpY2VUb29s IHAwKTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfc2V0dGluZ3NfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNp b24gKHNpbmNlID0gIjEuNCIpXQorIAlwdWJsaWMgY2xhc3MgU2V0dGluZ3MgOiBHTGliLk9iamVj dCB7CitAQCAtNzAwMiwxOCArNjgyMSw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBTaGFkZXJN YXRyaXggKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0g ImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9zaXplX2dldF90eXBlICgpIildCist CVtDb21wYWN0XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQlwdWJsaWMgY2xhc3Mg U2l6ZSB7CistCQlwdWJsaWMgZmxvYXQgaGVpZ2h0OworLQkJcHVibGljIGZsb2F0IHdpZHRoOwor LQkJcHVibGljIHN0YXRpYyBDbHV0dGVyLlNpemUgYWxsb2MgKCk7CistCQlwdWJsaWMgQ2x1dHRl ci5TaXplIGNvcHkgKCk7CistCQlwdWJsaWMgYm9vbCBlcXVhbHMgKENsdXR0ZXIuU2l6ZSBiKTsK Ky0JCXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlNpemUg aW5pdCAoZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3NuYXBf Y29uc3RyYWludF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisg CXB1YmxpYyBjbGFzcyBTbmFwQ29uc3RyYWludCA6IENsdXR0ZXIuQ29uc3RyYWludCB7CitAQCAt NzA1MiwxNCArNjg1OSwxMiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBm cmVlemVfdXBkYXRlcyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1Ymxp YyBib29sIGdldF9hY2NlcHRfZm9jdXMgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFj dG9yIGdldF9hY3Rvcl9hdF9wb3MgKENsdXR0ZXIuUGlja01vZGUgcGlja19tb2RlLCBpbnQgeCwg aW50IHkpOworKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfYWN0b3JfYXRfcG9z IChDbHV0dGVyLlBpY2tNb2RlIHBpY2tfbW9kZSwgZmxvYXQgeCwgZmxvYXQgeSk7CisgCQlwdWJs aWMgYm9vbCBnZXRfY2FwdHVyZV9maW5hbF9zaXplIChDYWlyby5SZWN0YW5nbGVJbnQgcmVjdCwg aW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBmbG9hdCBzY2FsZSk7CisgCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIENsdXR0 ZXIuQ29sb3IgZ2V0X2NvbG9yICgpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0 dGVyLlN0YWdlIGdldF9kZWZhdWx0ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBD bHV0dGVyLkZvZyBnZXRfZm9nICgpOworIAkJcHVibGljIGludDY0IGdldF9mcmFtZV9jb3VudGVy ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1 dHRlci5BY3RvciBnZXRfa2V5X2ZvY3VzICgpOworQEAgLTcwNjcsMTkgKzY4NzIsMTQgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgZ2V0X21pbmltdW1fc2l6ZSAob3V0IHVp bnQgd2lkdGgsIG91dCB1aW50IGhlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44Iild CisgCQlwdWJsaWMgYm9vbCBnZXRfbW90aW9uX2V2ZW50c19lbmFibGVkICgpOworLQkJW1ZlcnNp b24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X25vX2NsZWFyX2hpbnQgKCk7 CisgCQlwdWJsaWMgQ2x1dHRlci5QZXJzcGVjdGl2ZSBnZXRfcGVyc3BlY3RpdmUgKCk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgQ2Fpcm8uUmVjdGFuZ2xlSW50IGdl dF9yZWRyYXdfY2xpcF9ib3VuZHMgKCk7CisrCQlwdWJsaWMgQ2Fpcm8uUmVnaW9uIGdldF9yZWRy YXdfY2xpcCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBib29s IGdldF90aHJvdHRsZV9tb3Rpb25fZXZlbnRzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAu NCIpXQorIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF90aXRsZSAoKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBib29sIGdldF91c2VfYWxwaGEgKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNp bmNlID0gIjAuNiIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3VzZV9mb2cgKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMC40IildCisgCQlwdWJsaWMgdm9pZCBoaWRlX2N1cnNvciAoKTsKKyAJCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2lu Y2UgPSAiMC44IildCitAQCAtNzA5NCwxNiArNjg5NCwxMiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCQlwdWJsaWMgdm9pZCBzZXRfYWNjZXB0X2ZvY3VzIChib29sIGFjY2VwdF9mb2N1cyk7Cisg CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIp XQorIAkJcHVibGljIHZvaWQgc2V0X2NvbG9yIChDbHV0dGVyLkNvbG9yIGNvbG9yKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2lu Y2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBzZXRfZm9nIChDbHV0dGVyLkZvZyBmb2cpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHZvaWQgc2V0X2tleV9mb2N1 cyAoQ2x1dHRlci5BY3Rvcj8gYWN0b3IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQor IAkJcHVibGljIHZvaWQgc2V0X21pbmltdW1fc2l6ZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZvaWQgc2V0X21vdGlv bl9ldmVudHNfZW5hYmxlZCAoYm9vbCBlbmFibGVkKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ub19jbGVhcl9oaW50IChib29sIG5vX2NsZWFyKTsK KyAJCXB1YmxpYyB2b2lkIHNldF9wZXJzcGVjdGl2ZSAoQ2x1dHRlci5QZXJzcGVjdGl2ZSBwZXJz cGVjdGl2ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBz ZXRfdGhyb3R0bGVfbW90aW9uX2V2ZW50cyAoYm9vbCB0aHJvdHRsZSk7CitAQCAtNzExMSw4ICs2 OTA3LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgc2V0X3RpdGxlIChz dHJpbmcgdGl0bGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIHZv aWQgc2V0X3VzZV9hbHBoYSAoYm9vbCB1c2VfYWxwaGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0J CXB1YmxpYyB2b2lkIHNldF91c2VfZm9nIChib29sIGZvZyk7CisgCQlwdWJsaWMgdm9pZCBzaG93 X2N1cnNvciAoKTsKKyAJCXB1YmxpYyB2b2lkIHRoYXdfdXBkYXRlcyAoKTsKKyAJCXB1YmxpYyB2 b2lkIHVwZGF0ZV9yZXNvdXJjZV9zY2FsZXMgKCk7CitAQCAtNzEyMiwyMCArNjkxNiwxNCBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBjb2xvciB7IGdldDsg c2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCXB1YmxpYyBib29sIGN1cnNvcl92aXNp YmxlIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2x1dHRlci5G b2cgZm9nIHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1 YmxpYyBDbHV0dGVyLkFjdG9yIGtleV9mb2N1cyB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCBub19jbGVhcl9oaW50IHsgZ2V0OyBzZXQ7 IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLlBlcnNw ZWN0aXZlIHBlcnNwZWN0aXZlIHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIw LjQiKV0KKyAJCXB1YmxpYyBzdHJpbmcgdGl0bGUgeyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIGJvb2wgdXNlX2FscGhhIHsgZ2V0OyBzZXQ7IH0K Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEw Iiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgYm9vbCB1c2VfZm9nIHsgZ2V0OyBzZXQ7IH0K KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2 b2lkIGFjdGl2YXRlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjAiKV0KK0BAIC03MTU4 LDggKzY5NDYsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MC44IildCisgCQlwdWJsaWMgR0xpYi5TTGlzdDx3ZWFrIENsdXR0ZXIuU3RhZ2U+IGxpc3Rfc3Rh Z2VzICgpOworIAkJcHVibGljIHVub3duZWQgR0xpYi5TTGlzdDxDbHV0dGVyLlN0YWdlPiBwZWVr X3N0YWdlcyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9kZWZhdWx0 X3N0YWdlIChDbHV0dGVyLlN0YWdlIHN0YWdlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgi KV0KKyAJCXB1YmxpYyBDbHV0dGVyLlN0YWdlIGRlZmF1bHRfc3RhZ2UgeyBnZXQ7IH0KKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KK0BAIC03MjA2LDE2ICs2OTkyLDEwIEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdWludCBnZXRfZHVyYXRp b24gKHN0cmluZz8gc291cmNlX3N0YXRlX25hbWUsIHN0cmluZz8gdGFyZ2V0X3N0YXRlX25hbWUp OworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBDbHV0dGVyLlN0 YXRlS2V5PiBnZXRfa2V5cyAoc3RyaW5nPyBzb3VyY2Vfc3RhdGVfbmFtZSwgc3RyaW5nPyB0YXJn ZXRfc3RhdGVfbmFtZSwgR0xpYi5PYmplY3Q/IG9iamVjdCwgc3RyaW5nPyBwcm9wZXJ0eV9uYW1l KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3N0YXRl ICgpOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBHTGliLkxpc3Q8d2VhayBzdHJpbmc+ IGdldF9zdGF0ZXMgKCk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1 dHRlci5UaW1lbGluZSBnZXRfdGltZWxpbmUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVi bGljIHZvaWQgcmVtb3ZlX2tleSAoc3RyaW5nPyBzb3VyY2Vfc3RhdGVfbmFtZSwgc3RyaW5nPyB0 YXJnZXRfc3RhdGVfbmFtZSwgR0xpYi5PYmplY3Q/IG9iamVjdCwgc3RyaW5nPyBwcm9wZXJ0eV9u YW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdm9pZCBzZXRfZHVyYXRpb24gKHN0 cmluZz8gc291cmNlX3N0YXRlX25hbWUsIHN0cmluZz8gdGFyZ2V0X3N0YXRlX25hbWUsIHVpbnQg ZHVyYXRpb24pOworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIu U3RhdGUgc2V0X2tleSAoc3RyaW5nPyBzb3VyY2Vfc3RhdGVfbmFtZSwgc3RyaW5nIHRhcmdldF9z dGF0ZV9uYW1lLCBHTGliLk9iamVjdCBvYmplY3QsIHN0cmluZyBwcm9wZXJ0eV9uYW1lLCB1aW50 IG1vZGUsIEdMaWIuVmFsdWUgdmFsdWUsIGRvdWJsZSBwcmVfZGVsYXksIGRvdWJsZSBwb3N0X2Rl bGF5KTsKK0BAIC03MjM2LDI0ICs3MDE2LDggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlbQ29t cGFjdF0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAlwdWJsaWMgY2xhc3MgU3RhdGVL ZXkgeworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bG9uZyBnZXRfbW9kZSAoKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBHTGliLk9iamVjdCBnZXRfb2JqZWN0 ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBkb3VibGUgZ2V0X3Bvc3RfZGVsYXkg KCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGRvdWJsZSBnZXRfcHJlX2RlbGF5ICgp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfcHJvcGVy dHlfbmFtZSAoKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgR0xpYi5UeXBlIGdldF9w cm9wZXJ0eV90eXBlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIHN0 cmluZyBnZXRfc291cmNlX3N0YXRlX25hbWUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVi bGljIHVub3duZWQgc3RyaW5nIGdldF90YXJnZXRfc3RhdGVfbmFtZSAoKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS40IildCistCQlwdWJsaWMgYm9vbCBnZXRfdmFsdWUgKEdMaWIuVmFsdWUgdmFsdWUpOworIAl9 CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVf aWQgPSAiY2x1dHRlcl9zd2lwZV9hY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNp bmNlID0gIjEuOCIpXQorQEAgLTcyNjUsNTMgKzcwMjksNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFs IGJvb2wgc3dpcGUgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuU3dpcGVEaXJlY3Rpb24g ZGlyZWN0aW9uKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdGFibGVfbGF5b3V0X2dldF90eXBlICgpIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4 Iiwgc2luY2UgPSAiMS40IildCistCXB1YmxpYyBjbGFzcyBUYWJsZUxheW91dCA6IENsdXR0ZXIu TGF5b3V0TWFuYWdlciB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSwgdHlwZSA9ICJDbHV0dGVyTGF5b3V0TWFuYWdlcioiKV0KKy0JCXB1YmxpYyBUYWJsZUxheW91 dCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBnZXRfYWxpZ25tZW50IChD bHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQgQ2x1dHRlci5UYWJsZUFsaWdubWVudCB4X2FsaWduLCBv dXQgQ2x1dHRlci5UYWJsZUFsaWdubWVudCB5X2FsaWduKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X2Nv bHVtbl9jb3VudCAoKTsKKy0JCXB1YmxpYyB1aW50IGdldF9jb2x1bW5fc3BhY2luZyAoKTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwg c2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdWludCBnZXRfZWFzaW5nX2R1cmF0aW9uICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bG9uZyBnZXRfZWFzaW5nX21vZGUgKCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2V4cGFuZCAoQ2x1dHRlci5BY3Rv ciBhY3Rvciwgb3V0IGJvb2wgeF9leHBhbmQsIG91dCBib29sIHlfZXhwYW5kKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS40IildCistCQlwdWJsaWMgdm9pZCBnZXRfZmlsbCAoQ2x1dHRlci5BY3RvciBhY3Rvciwg b3V0IGJvb2wgeF9maWxsLCBvdXQgYm9vbCB5X2ZpbGwpOworLQkJcHVibGljIGludCBnZXRfcm93 X2NvdW50ICgpOworLQkJcHVibGljIHVpbnQgZ2V0X3Jvd19zcGFjaW5nICgpOworLQkJcHVibGlj IHZvaWQgZ2V0X3NwYW4gKENsdXR0ZXIuQWN0b3IgYWN0b3IsIG91dCBpbnQgY29sdW1uX3NwYW4s IG91dCBpbnQgcm93X3NwYW4pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIGdl dF91c2VfYW5pbWF0aW9ucyAoKTsKKy0JCXB1YmxpYyB2b2lkIHBhY2sgKENsdXR0ZXIuQWN0b3Ig YWN0b3IsIGludCBjb2x1bW4sIGludCByb3cpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9hbGlnbm1lbnQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuVGFibGVB bGlnbm1lbnQgeF9hbGlnbiwgQ2x1dHRlci5UYWJsZUFsaWdubWVudCB5X2FsaWduKTsKKy0JCXB1 YmxpYyB2b2lkIHNldF9jb2x1bW5fc3BhY2luZyAodWludCBzcGFjaW5nKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfZWFzaW5nX2R1cmF0aW9uICh1aW50IG1zZWNzKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfZWFzaW5nX21vZGUgKHVsb25n IG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9leHBhbmQgKENs dXR0ZXIuQWN0b3IgYWN0b3IsIGJvb2wgeF9leHBhbmQsIGJvb2wgeV9leHBhbmQpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9maWxsIChDbHV0dGVyLkFjdG9yIGFjdG9y LCBib29sIHhfZmlsbCwgYm9vbCB5X2ZpbGwpOworLQkJcHVibGljIHZvaWQgc2V0X3Jvd19zcGFj aW5nICh1aW50IHNwYWNpbmcpOworLQkJcHVibGljIHZvaWQgc2V0X3NwYW4gKENsdXR0ZXIuQWN0 b3IgYWN0b3IsIGludCBjb2x1bW5fc3BhbiwgaW50IHJvd19zcGFuKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40 IildCistCQlwdWJsaWMgdm9pZCBzZXRfdXNlX2FuaW1hdGlvbnMgKGJvb2wgYW5pbWF0ZSk7Cist CQlwdWJsaWMgdWludCBjb2x1bW5fc3BhY2luZyB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIHVpbnQgZWFzaW5nX2R1cmF0aW9uIHsgZ2V0OyBzZXQ7IH0KKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS40IildCistCQlwdWJsaWMgdWxvbmcgZWFzaW5nX21vZGUgeyBnZXQ7IHNldDsgfQor LQkJcHVibGljIHVpbnQgcm93X3NwYWNpbmcgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQi KV0KKy0JCXB1YmxpYyBib29sIHVzZV9hbmltYXRpb25zIHsgZ2V0OyBzZXQ7IH0KKy0JfQorIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0g ImNsdXR0ZXJfdGFwX2FjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAi MS4xNCIpXQorIAlwdWJsaWMgY2xhc3MgVGFwQWN0aW9uIDogQ2x1dHRlci5HZXN0dXJlQWN0aW9u IHsKK0BAIC03MzM5LDcgKzcwNTYsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMg Q2x1dHRlci5Db2xvciBnZXRfY3Vyc29yX2NvbG9yICgpOworIAkJcHVibGljIGludCBnZXRfY3Vy c29yX3Bvc2l0aW9uICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTYiKV0KKy0JCXB1Ymxp YyB2b2lkIGdldF9jdXJzb3JfcmVjdCAob3V0IHVub3duZWQgQ2x1dHRlci5SZWN0IHJlY3QpOwor KwkJcHVibGljIHZvaWQgZ2V0X2N1cnNvcl9yZWN0IChvdXQgdW5vd25lZCBHcmFwaGVuZS5SZWN0 IHJlY3QpOworIAkJcHVibGljIHVpbnQgZ2V0X2N1cnNvcl9zaXplICgpOworIAkJcHVibGljIGJv b2wgZ2V0X2N1cnNvcl92aXNpYmxlICgpOworIAkJcHVibGljIGJvb2wgZ2V0X2VkaXRhYmxlICgp OworQEAgLTc0NTgsNyArNzE3NSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjE2IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBjdXJzb3Jf Y2hhbmdlZCAoKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwg dm9pZCBjdXJzb3JfZXZlbnQgKENsdXR0ZXIuR2VvbWV0cnkgZ2VvbWV0cnkpOworKwkJcHVibGlj IHZpcnR1YWwgc2lnbmFsIHZvaWQgY3Vyc29yX2V2ZW50IChHcmFwaGVuZS5SZWN0IHJlY3QpOwor IAkJW0hhc0VtaXR0ZXJdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMg c2lnbmFsIHZvaWQgZGVsZXRlX3RleHQgKGludCBzdGFydF9wb3MsIGludCBlbmRfcG9zKTsKK0BA IC03NDk3LDkyICs3MjE0LDkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIFRleHRO b2RlIChQYW5nby5MYXlvdXQ/IGxheW91dCwgQ2x1dHRlci5Db2xvcj8gY29sb3IpOworIAl9Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQg PSAiY2x1dHRlcl90ZXh0dXJlX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIw LjIiKV0KKy0JcHVibGljIGNsYXNzIFRleHR1cmUgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVt ZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2Ny aXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlw ZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIFRleHR1cmUgKCk7CistCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3Iq IildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS44Iiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgVGV4dHVyZS5mcm9tX2FjdG9yIChDbHV0 dGVyLkFjdG9yIGFjdG9yKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJs aWMgVGV4dHVyZS5mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSkgdGhyb3dzIENsdXR0ZXIuVGV4 dHVyZUVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9iYXNlX3NpemUgKG91dCBpbnQgd2lk dGgsIG91dCBpbnQgaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdW5vd25l ZCBDb2dsLkhhbmRsZSBnZXRfY29nbF9tYXRlcmlhbCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCist CQlwdWJsaWMgdW5vd25lZCBDb2dsLkhhbmRsZSBnZXRfY29nbF90ZXh0dXJlICgpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlRleHR1cmVRdWFsaXR5IGdldF9maWx0ZXJf cXVhbGl0eSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBnZXRfa2VlcF9h c3BlY3RfcmF0aW8gKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2xv YWRfYXN5bmMgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2xvYWRf ZGF0YV9hc3luYyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgaW50IGdldF9tYXhf dGlsZV93YXN0ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCBnZXRfcGlj a193aXRoX2FscGhhICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9y ZXBlYXQgKG91dCBib29sIHJlcGVhdF94LCBvdXQgYm9vbCByZXBlYXRfeSk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuMCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3N5bmNfc2l6ZSAoKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42 IildCistCQlwdWJsaWMgYm9vbCBzZXRfYXJlYV9mcm9tX3JnYl9kYXRhIChbQ0NvZGUgKGFycmF5 X2xlbmd0aCA9IGZhbHNlKV0gdWludDhbXSBkYXRhLCBib29sIGhhc19hbHBoYSwgaW50IHgsIGlu dCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIGludCByb3dzdHJpZGUsIGludCBicHAsIENsdXR0 ZXIuVGV4dHVyZUZsYWdzIGZsYWdzKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44 IildCistCQlwdWJsaWMgdm9pZCBzZXRfY29nbF9tYXRlcmlhbCAoQ29nbC5IYW5kbGUgY29nbF9t YXRlcmlhbCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvZ2xfdGV4 dHVyZSAoQ29nbC5IYW5kbGUgY29nbF90ZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9maWx0ZXJfcXVhbGl0eSAoQ2x1dHRlci5UZXh0dXJlUXVhbGl0eSBmaWx0ZXJf cXVhbGl0eSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIGJvb2wgc2V0X2Zyb21fZmls ZSAoc3RyaW5nIGZpbGVuYW1lKSB0aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC40Iild CistCQlwdWJsaWMgYm9vbCBzZXRfZnJvbV9yZ2JfZGF0YSAoW0NDb2RlIChhcnJheV9sZW5ndGgg PSBmYWxzZSldIHVpbnQ4W10gZGF0YSwgYm9vbCBoYXNfYWxwaGEsIGludCB3aWR0aCwgaW50IGhl aWdodCwgaW50IHJvd3N0cmlkZSwgaW50IGJwcCwgQ2x1dHRlci5UZXh0dXJlRmxhZ3MgZmxhZ3Mp IHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBib29sIHNl dF9mcm9tX3l1dl9kYXRhIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gdWludDhbXSBk YXRhLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIENsdXR0ZXIuVGV4dHVyZUZsYWdzIGZsYWdzKSB0 aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRf a2VlcF9hc3BlY3RfcmF0aW8gKGJvb2wga2VlcF9hc3BlY3QpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9sb2FkX2FzeW5jIChib29sIGxvYWRfYXN5bmMpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sb2FkX2RhdGFfYXN5bmMgKGJvb2wgbG9h ZF9hc3luYyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3BpY2tfd2l0 aF9hbHBoYSAoYm9vbCBwaWNrX3dpdGhfYWxwaGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9yZXBlYXQgKGJvb2wgcmVwZWF0X3gsIGJvb2wgcmVwZWF0X3kpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zeW5jX3NpemUgKGJvb2wgc3luY19z aXplKTsKKysJcHVibGljIGNsYXNzIFRleHR1cmUgOiBDbHV0dGVyLkFjdG9yIHsKKyAJCXB1Ymxp YyBDb2dsLk1hdGVyaWFsIGNvZ2xfbWF0ZXJpYWwgeyBnZXQ7IHNldDsgfQorIAkJcHVibGljIENv Z2wuVGV4dHVyZSBjb2dsX3RleHR1cmUgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRo b2RdCistCQlwdWJsaWMgYm9vbCBkaXNhYmxlX3NsaWNpbmcgeyBnZXQ7IGNvbnN0cnVjdDsgfQor LQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHN0cmluZyBmaWxlbmFtZSB7IG93 bmVkIGdldDsgc2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5UZXh0dXJlUXVhbGl0eSBmaWx0ZXJf cXVhbGl0eSB7IGdldDsgc2V0IGNvbnN0cnVjdDsgfQorLQkJcHVibGljIGJvb2wga2VlcF9hc3Bl Y3RfcmF0aW8geyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29s IGxvYWRfYXN5bmMgeyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBs b2FkX2RhdGFfYXN5bmMgeyBzZXQ7IH0KKy0JCXB1YmxpYyBib29sIHBpY2tfd2l0aF9hbHBoYSB7 IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIHJlcGVh dF94IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGJvb2wg cmVwZWF0X3kgeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIGJvb2wgc3luY19zaXplIHsgZ2V0OyBz ZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCB0aWxlX3dhc3RlIHsg Z2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQg bG9hZF9maW5pc2hlZCAoR0xpYi5FcnJvciBlcnJvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHZpcnR1YWwg c2lnbmFsIHZvaWQgcGl4YnVmX2NoYW5nZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgdmlydHVhbCBzaWdu YWwgdm9pZCBzaXplX2NoYW5nZSAoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyAJfQorIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNs dXR0ZXJfdGV4dHVyZV9ub2RlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCitAQCAtNzYwOCw3ICs3MjQyLDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIGJvb2wgZ2V0X2F1dG9fcmV2ZXJzZSAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgYm9vbCBnZXRfY3Vi aWNfYmV6aWVyX3Byb2dyZXNzIChDbHV0dGVyLlBvaW50IGNfMSwgQ2x1dHRlci5Qb2ludCBjXzIp OworKwkJcHVibGljIGJvb2wgZ2V0X2N1YmljX2Jlemllcl9wcm9ncmVzcyAoR3JhcGhlbmUuUG9p bnQgY18xLCBHcmFwaGVuZS5Qb2ludCBjXzIpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKyAJCXB1YmxpYyBpbnQgZ2V0X2N1cnJlbnRfcmVwZWF0ICgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjAuNCIpXQorQEAgLTc2NDUsNyArNzI3OSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9hdXRvX3Jl dmVyc2UgKGJvb2wgcmV2ZXJzZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQkJ cHVibGljIHZvaWQgc2V0X2N1YmljX2Jlemllcl9wcm9ncmVzcyAoQ2x1dHRlci5Qb2ludCBjXzEs IENsdXR0ZXIuUG9pbnQgY18yKTsKKysJCXB1YmxpYyB2b2lkIHNldF9jdWJpY19iZXppZXJfcHJv Z3Jlc3MgKEdyYXBoZW5lLlBvaW50IGNfMSwgR3JhcGhlbmUuUG9pbnQgY18yKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9kZWxheSAodWludCBtc2Vj cyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCitAQCAtNzc0NCw2ICs3Mzc4LDExIEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBmbG9hdCB4OworIAkJcHVibGljIGZsb2F0 IHk7CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RyYW5zZm9ybV9ub2RlX2dldF90eXBlICgpIildCisrCXB1 YmxpYyBjbGFzcyBUcmFuc2Zvcm1Ob2RlIDogQ2x1dHRlci5QYWludE5vZGUgeworKwkJW0NDb2Rl IChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlclBhaW50Tm9k ZSoiKV0KKysJCXB1YmxpYyBUcmFuc2Zvcm1Ob2RlIChDb2dsLk1hdHJpeCBwcm9qZWN0aW9uKTsK KysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0 eXBlX2lkID0gImNsdXR0ZXJfdHJhbnNpdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgVHJhbnNpdGlvbiA6IENs dXR0ZXIuVGltZWxpbmUsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CitAQCAtNzc4Myw3ICs3NDIyLDYg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFZpcnR1YWxJbnB1dERldmljZSAoKTsKKyAJCXB1Ymxp YyBpbnQgZ2V0X2RldmljZV90eXBlICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5EZXZp Y2VNYW5hZ2VyIGdldF9tYW5hZ2VyICgpOworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBub3RpZnlf YWJzb2x1dGVfbW90aW9uICh1aW50NjQgdGltZV91cywgZG91YmxlIHgsIGRvdWJsZSB5KTsKKyAJ CXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90aWZ5X2J1dHRvbiAodWludDY0IHRpbWVfdXMsIHVpbnQz MiBidXR0b24sIENsdXR0ZXIuQnV0dG9uU3RhdGUgYnV0dG9uX3N0YXRlKTsKKyAJCXB1YmxpYyB2 aXJ0dWFsIHZvaWQgbm90aWZ5X2Rpc2NyZXRlX3Njcm9sbCAodWludDY0IHRpbWVfdXMsIENsdXR0 ZXIuU2Nyb2xsRGlyZWN0aW9uIGRpcmVjdGlvbiwgQ2x1dHRlci5TY3JvbGxTb3VyY2Ugc2Nyb2xs X3NvdXJjZSk7CitAQCAtNzc5NCwyNSArNzQzMiwyNSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlwdWJsaWMgdmlydHVhbCB2b2lkIG5vdGlmeV90b3VjaF9kb3duICh1aW50NjQgdGltZV91cywg aW50IHNsb3QsIGRvdWJsZSB4LCBkb3VibGUgeSk7CisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIG5v dGlmeV90b3VjaF9tb3Rpb24gKHVpbnQ2NCB0aW1lX3VzLCBpbnQgc2xvdCwgZG91YmxlIHgsIGRv dWJsZSB5KTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90aWZ5X3RvdWNoX3VwICh1aW50NjQg dGltZV91cywgaW50IHNsb3QpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgQ2x1 dHRlci5EZXZpY2VNYW5hZ2VyIGRldmljZV9tYW5hZ2VyIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7 IH0KKyAJCXB1YmxpYyBDbHV0dGVyLklucHV0RGV2aWNlVHlwZSBkZXZpY2VfdHlwZSB7IGdldDsg Y29uc3RydWN0OyB9CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBDbHV0dGVyLlNl YXQgc2VhdCB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisgCX0KKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3pvb21f YWN0aW9uX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCXB1 YmxpYyBjbGFzcyBab29tQWN0aW9uIDogQ2x1dHRlci5HZXN0dXJlQWN0aW9uIHsKKyAJCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3Rpb24q IildCisgCQlwdWJsaWMgWm9vbUFjdGlvbiAoKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9mb2NhbF9w b2ludCAoQ2x1dHRlci5Qb2ludCBwb2ludCk7CistCQlwdWJsaWMgdm9pZCBnZXRfdHJhbnNmb3Jt ZWRfZm9jYWxfcG9pbnQgKENsdXR0ZXIuUG9pbnQgcG9pbnQpOworKwkJcHVibGljIHZvaWQgZ2V0 X2ZvY2FsX3BvaW50IChHcmFwaGVuZS5Qb2ludCBwb2ludCk7CisrCQlwdWJsaWMgdm9pZCBnZXRf dHJhbnNmb3JtZWRfZm9jYWxfcG9pbnQgKEdyYXBoZW5lLlBvaW50IHBvaW50KTsKKyAJCXB1Ymxp YyBDbHV0dGVyLlpvb21BeGlzIGdldF96b29tX2F4aXMgKCk7CisgCQlwdWJsaWMgdm9pZCBzZXRf em9vbV9heGlzIChDbHV0dGVyLlpvb21BeGlzIGF4aXMpOworIAkJcHVibGljIENsdXR0ZXIuWm9v bUF4aXMgem9vbV9heGlzIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBi b29sIHpvb20gKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuUG9pbnQgZm9jYWxfcG9pbnQs IGRvdWJsZSBmYWN0b3IpOworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgem9vbSAoQ2x1 dHRlci5BY3RvciBhY3RvciwgR3JhcGhlbmUuUG9pbnQgZm9jYWxfcG9pbnQsIGRvdWJsZSBmYWN0 b3IpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIHR5cGVfY25hbWUgPSAiQ2x1dHRlckFuaW1hdGFibGVJbnRlcmZhY2UiLCB0eXBlX2lkID0g ImNsdXR0ZXJfYW5pbWF0YWJsZV9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMgaW50ZXJmYWNlIEFu aW1hdGFibGUgOiBHTGliLk9iamVjdCB7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMS4wIildCisrCQlbTm9XcmFwcGVy XQorIAkJcHVibGljIGFic3RyYWN0IGJvb2wgYW5pbWF0ZV9wcm9wZXJ0eSAoQ2x1dHRlci5Bbmlt YXRpb24gYW5pbWF0aW9uLCBzdHJpbmcgcHJvcGVydHlfbmFtZSwgR0xpYi5WYWx1ZSBpbml0aWFs X3ZhbHVlLCBHTGliLlZhbHVlIGZpbmFsX3ZhbHVlLCBkb3VibGUgcHJvZ3Jlc3MsIEdMaWIuVmFs dWUgdmFsdWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIGFic3Ry YWN0IHVub3duZWQgR0xpYi5QYXJhbVNwZWMgZmluZF9wcm9wZXJ0eSAoc3RyaW5nIHByb3BlcnR5 X25hbWUpOworQEAgLTc4MzAsOCArNzQ2OCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtD Q29kZSAodmZ1bmNfbmFtZSA9ICJhZGQiKV0KKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40IildCisgCQlwdWJsaWMg YWJzdHJhY3Qgdm9pZCBhZGRfYWN0b3IgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9 ICIwLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGFkZF92YWxpc3QgKENsdXR0ZXIuQWN0b3IgZmlyc3Rf YWN0b3IsIHZhX2xpc3QgdmFyX2FyZ3MpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQor IAkJcHVibGljIHZvaWQgY2hpbGRfZ2V0IChDbHV0dGVyLkFjdG9yIGFjdG9yLCAuLi4pOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorQEAgLTc4NTMsMTAgKzc0ODksNiBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGZpbmRfY2hpbGRf YnlfbmFtZSAoc3RyaW5nIGNoaWxkX25hbWUpOworIAkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVy X2NvbnRhaW5lcl9jbGFzc19maW5kX2NoaWxkX3Byb3BlcnR5IildCisgCQlwdWJsaWMgY2xhc3Mg dW5vd25lZCBHTGliLlBhcmFtU3BlYyBmaW5kX2NoaWxkX3Byb3BlcnR5IChzdHJpbmcgcHJvcGVy dHlfbmFtZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgQGZv cmVhY2ggKENsdXR0ZXIuQ2FsbGJhY2sgY2FsbGJhY2spOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0J CXB1YmxpYyB2aXJ0dWFsIHZvaWQgZm9yZWFjaF93aXRoX2ludGVybmFscyAoQ2x1dHRlci5DYWxs YmFjayBjYWxsYmFjayk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMg dmlydHVhbCB1bm93bmVkIENsdXR0ZXIuQ2hpbGRNZXRhIGdldF9jaGlsZF9tZXRhIChDbHV0dGVy LkFjdG9yIGFjdG9yKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40IildCitAQCAtNzg3NCw4ICs3NTA2LDYgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW0NDb2RlICh2ZnVuY19uYW1lID0gInJlbW92ZSIpXQor IAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi LCBzaW5jZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyBhYnN0cmFjdCB2b2lkIHJlbW92ZV9hY3RvciAo Q2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQg cmVtb3ZlX3ZhbGlzdCAoQ2x1dHRlci5BY3RvciBmaXJzdF9hY3RvciwgdmFfbGlzdCB2YXJfYXJn cyk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIsIHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIGFic3RyYWN0IHZvaWQgc29ydF9kZXB0 aF9vcmRlciAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGFjdG9yX2FkZGVkIChD bHV0dGVyLkFjdG9yIGFjdG9yKTsKK0BAIC03ODkyLDcgKzc1MjIsNyBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBpbnZhbGlkYXRlICgpOworIAkJcHVibGlj IGFic3RyYWN0IHZvaWQgaW52YWxpZGF0ZV9zaXplICgpOworIAkJW05vV3JhcHBlcl0KKy0JCXB1 YmxpYyBhYnN0cmFjdCB2b2lkIHBhaW50X2NvbnRlbnQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENs dXR0ZXIuUGFpbnROb2RlIG5vZGUpOworKwkJcHVibGljIGFic3RyYWN0IHZvaWQgcGFpbnRfY29u dGVudCAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5QYWludE5vZGUgbm9kZSwgQ2x1dHRl ci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgYXR0YWNoZWQgKENsdXR0ZXIuQWN0 b3IgYWN0b3IpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC03OTA4LDEwICs3 NTM4LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlwdWJsaWMgaW50ZXJmYWNlIFN0YWdlV2lu ZG93IDogR0xpYi5PYmplY3QgeworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2 b2lkIGFkZF9yZWRyYXdfY2xpcCAoQ2x1dHRlci5HZW9tZXRyeSBzdGFnZV9yZWN0YW5nbGUpOwor LQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGdldF9nZW9tZXRyeSAoQ2x1 dHRlci5HZW9tZXRyeSBnZW9tZXRyeSk7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIGFic3Ry YWN0IGludCBnZXRfcGVuZGluZ19zd2FwcyAoKTsKKyAJCVtOb1dyYXBwZXJdCitAQCAtNzkzOSwx NCArNzU2NSwxNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVi bGljIGFic3RyYWN0IHZvaWQgdW5yZWFsaXplICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiQ0xVVFRFUl9UWVBFX0FD VE9SX0JPWCIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19i b3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FjdG9yX2JveF9nZXRfdHlwZSAoKSIpXQor IAlwdWJsaWMgc3RydWN0IEFjdG9yQm94IHsKKyAJCXB1YmxpYyBmbG9hdCB4MTsKKyAJCXB1Ymxp YyBmbG9hdCB5MTsKKyAJCXB1YmxpYyBmbG9hdCB4MjsKKyAJCXB1YmxpYyBmbG9hdCB5MjsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisrCQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuQWN0 b3JCb3g/IGFsbG9jICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGlj IHZvaWQgY2xhbXBfdG9fcGl4ZWwgKCk7CisrCQlwdWJsaWMgc3RhdGljIHZvaWQgY2xhbXBfdG9f cGl4ZWwgKHJlZiBDbHV0dGVyLkFjdG9yQm94IGJveCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4wIildCisgCQlwdWJsaWMgYm9vbCBjb250YWlucyAoZmxvYXQgeCwgZmxvYXQgeSk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCitAQCAtNzk1NSw4ICs3NTgzLDYgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgZXF1YWwgKENsdXR0ZXIuQWN0b3JCb3ggYm94X2Ip OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgZnJlZSAoKTsK Ky0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9hY3Rvcl9ib3hfZnJvbV92ZXJ0aWNlcyIpXQor LQkJcHVibGljIEFjdG9yQm94LmZyb21fdmVydGljZXMgKENsdXR0ZXIuVmVydGV4W10gdmVydHMp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIGZsb2F0IGdldF9hcmVh ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorQEAgLTgwMDIsNyArNzYyOCw3IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB3ZWFrIENhaXJvLlN1cmZhY2UgaW1hZ2U7 CisgCQlwdWJsaWMgQ2Fpcm8uUmVjdGFuZ2xlSW50IHJlY3Q7CisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJDTFVUVEVSX1RZ UEVfQ09MT1IiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdf Ym94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiQ0xVVFRFUl9UWVBFX0NPTE9SIildCisgCXB1YmxpYyBz dHJ1Y3QgQ29sb3IgeworIAkJcHVibGljIHVpbnQ4IHJlZDsKKyAJCXB1YmxpYyB1aW50OCBncmVl bjsKK0BAIC04MDQxLDI0ICs3NjY3LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjAuMiIpXQorIAkJcHVibGljIHN0cmluZyB0b19zdHJpbmcgKCk7CisgCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9p ZCA9ICJjbHV0dGVyX2ZvZ19nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNiIpXQorLQlwdWJs aWMgc3RydWN0IEZvZyB7CistCQlwdWJsaWMgZmxvYXQgel9uZWFyOworLQkJcHVibGljIGZsb2F0 IHpfZmFyOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9nZW9tZXRyeV9nZXRfdHlwZSAoKSIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlw dWJsaWMgc3RydWN0IEdlb21ldHJ5IHsKKy0JCXB1YmxpYyBpbnQgeDsKKy0JCXB1YmxpYyBpbnQg eTsKKy0JCXB1YmxpYyB1aW50IHdpZHRoOworLQkJcHVibGljIHVpbnQgaGVpZ2h0OworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGJvb2wgaW50ZXJzZWN0cyAoQ2x1dHRl ci5HZW9tZXRyeSBnZW9tZXRyeTEpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJ cHVibGljIENsdXR0ZXIuR2VvbWV0cnkgdW5pb24gKENsdXR0ZXIuR2VvbWV0cnkgZ2VvbWV0cnlf Yik7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCXB1YmxpYyBzdHJ1Y3QgS2JkQTExeVNldHRpbmdz IHsKKyAJCXB1YmxpYyBDbHV0dGVyLktleWJvYXJkQTExeUZsYWdzIGNvbnRyb2xzOworQEAgLTgw NjksNyArNzY3Nyw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBpbnQgbW91c2Vr ZXlzX21heF9zcGVlZDsKKyAJCXB1YmxpYyBpbnQgbW91c2VrZXlzX2FjY2VsX3RpbWU7CisgCX0K Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9p ZCA9ICJjbHV0dGVyX2tub3RfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHki LCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9rbm90 X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KKyAJcHVibGljIHN0 cnVjdCBLbm90IHsKKyAJCXB1YmxpYyBpbnQgeDsKK0BAIC04MTIxLDcgKzc3MjksNyBAQCBuYW1l c3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgZG91YmxlIHZhbHVlOworIAkJcHVibGljIHVpbnQz MiBtb2RlOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYXRoX25vZGVfZ2V0X3R5cGUgKCkiKV0KKysJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlv biA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVf aWQgPSAiY2x1dHRlcl9wYXRoX25vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorIAlwdWJsaWMgc3RydWN0IFBhdGhOb2RlIHsKKyAJCXB1YmxpYyBDbHV0dGVy LlBhdGhOb2RlVHlwZSB0eXBlOworQEAgLTgxMzEsNyArNzczOSw3IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCXB1YmxpYyBib29sIGVxdWFsIChDbHV0dGVyLlBhdGhOb2RlIG5vZGVfYik7Cisg CQlwdWJsaWMgdm9pZCBmcmVlICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wZXJzcGVjdGl2ZV9nZXRf dHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19i b3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BlcnNwZWN0aXZlX2dldF90eXBlICgpIild CisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJcHVibGljIHN0cnVjdCBQZXJzcGVjdGl2 ZSB7CisgCQlwdWJsaWMgZmxvYXQgZm92eTsKK0BAIC04MTYyLDcgKzc3NzAsNyBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgd2VhayBDbHV0dGVyLkFjdG9yIHNvdXJjZTsKKyAJCXB1 YmxpYyB3ZWFrIENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlOworIAl9CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiQ0xVVFRFUl9U WVBFX1VOSVRTIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJn X2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gIkNMVVRURVJfVFlQRV9VTklUUyIpXQorIAlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBzdHJ1Y3QgVW5pdHMgeworIAkJcHVibGljIENs dXR0ZXIuVW5pdHM/IGNvcHkgKCk7CitAQCAtODE4NiwyMyArNzc5NCw2IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCXB1YmxpYyBmbG9hdCB0b19waXhlbHMgKCk7CisgCQlwdWJsaWMgc3RyaW5n IHRvX3N0cmluZyAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdmVydGV4X2dldF90eXBlICgpIildCist CVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JcHVibGljIHN0cnVjdCBWZXJ0ZXggeworLQkJ cHVibGljIGZsb2F0IHg7CistCQlwdWJsaWMgZmxvYXQgeTsKKy0JCXB1YmxpYyBmbG9hdCB6Owor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5W ZXJ0ZXg/IGFsbG9jICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IENsdXR0ZXIuVmVydGV4PyBjb3B5ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIGJvb2wgZXF1YWwgKENsdXR0ZXIuVmVydGV4IHZlcnRleF9iKTsKKy0JCVtWZXJz aW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGZyZWUgKCk7CistCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5WZXJ0ZXg/IGlu aXQgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9BQ1RPUl9B TElHTl8iLCB0eXBlX2lkID0gImNsdXR0ZXJfYWN0b3JfYWxpZ25fZ2V0X3R5cGUgKCkiKV0KKyAJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGVudW0gQWN0b3JBbGlnbiB7CitA QCAtODM0MCw2ICs3OTMxLDI3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVlfQVhJUywKKyAJ CUJPVEgKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCBjcHJlZml4ID0gIkNMVVRURVJfREVCVUdfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2RlYnVn X2ZsYWdfZ2V0X3R5cGUgKCkiKV0KKysJW0ZsYWdzXQorKwlwdWJsaWMgZW51bSBEZWJ1Z0ZsYWcg eworKwkJTUlTQywKKysJCUFDVE9SLAorKwkJVEVYVFVSRSwKKysJCUVWRU5ULAorKwkJUEFJTlQs CisrCQlQQU5HTywKKysJCUJBQ0tFTkQsCisrCQlTQ0hFRFVMRVIsCisrCQlTQ1JJUFQsCisrCQlT SEFERVIsCisrCQlNVUxUSVNUQUdFLAorKwkJQU5JTUFUSU9OLAorKwkJTEFZT1VULAorKwkJUElD SywKKysJCUVWRU5UTE9PUCwKKysJCUNMSVBQSU5HLAorKwkJT09CX1RSQU5TRk9STVMKKysJfQor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4 ID0gIkNMVVRURVJfRFJBR18iLCB0eXBlX2lkID0gImNsdXR0ZXJfZHJhZ19heGlzX2dldF90eXBl ICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGVudW0gRHJhZ0F4 aXMgeworQEAgLTgzNDcsNiArNzk1OSwxOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlYX0FY SVMsCisgCQlZX0FYSVMKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfREVCVUdfIiwgdHlwZV9pZCA9ICJjbHV0 dGVyX2RyYXdfZGVidWdfZmxhZ19nZXRfdHlwZSAoKSIpXQorKwlbRmxhZ3NdCisrCXB1YmxpYyBl bnVtIERyYXdEZWJ1Z0ZsYWcgeworKwkJRElTQUJMRV9TV0FQX0VWRU5UUywKKysJCURJU0FCTEVf Q0xJUFBFRF9SRURSQVdTLAorKwkJUkVEUkFXUywKKysJCVBBSU5UX1ZPTFVNRVMsCisrCQlESVNB QkxFX0NVTExJTkcsCisrCQlESVNBQkxFX09GRlNDUkVFTl9SRURJUkVDVCwKKysJCUNPTlRJTlVP VVNfUkVEUkFXLAorKwkJUEFJTlRfREVGT1JNX1RJTEVTLAorKwkJUEFJTlRfREFNQUdFX1JFR0lP TgorKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIs IGNwcmVmaXggPSAiQ0xVVFRFUl9FRkZFQ1RfUEFJTlRfQUNUT1JfIiwgdHlwZV9pZCA9ICJjbHV0 dGVyX2VmZmVjdF9wYWludF9mbGFnc19nZXRfdHlwZSAoKSIpXQorIAlbRmxhZ3NdCisgCXB1Ymxp YyBlbnVtIEVmZmVjdFBhaW50RmxhZ3MgeworQEAgLTgzOTgsOCArODAyMyw2IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJcHVibGljIGVudW0gRmVhdHVyZUZsYWdzIHsKKyAJCVRFWFRVUkVfTlBP VCwKKyAJCVNXQVBfVEhST1RUTEUsCistCQlURVhUVVJFX1lVViwKKy0JCVRFWFRVUkVfUkVBRF9Q SVhFTFMsCisgCQlTVEFHRV9TVEFUSUMsCisgCQlTVEFHRV9DVVJTT1IsCisgCQlTSEFERVJTX0dM U0wsCitAQCAtODY1Nyw2ICs4MjgwLDExIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVJFTF9M SU5FX1RPLAorIAkJUkVMX0NVUlZFX1RPCisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0RFQlVHX05PUF8iLCB0 eXBlX2lkID0gImNsdXR0ZXJfcGlja19kZWJ1Z19mbGFnX2dldF90eXBlICgpIildCisrCVtGbGFn c10KKysJcHVibGljIGVudW0gUGlja0RlYnVnRmxhZyB7CisrCQlQSUNLSU5HCisrCX0KKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJD TFVUVEVSX1BJQ0tfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BpY2tfbW9kZV9nZXRfdHlwZSAoKSIp XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBlbnVtIFBpY2tNb2RlIHsK K0BAIC04ODUxLDEzICs4NDc5LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJTEVGVCwKKyAJ CVJJR0hUCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX1RBQkxFX0FMSUdOTUVOVF8iLCB0eXBlX2lkID0gImNs dXR0ZXJfdGFibGVfYWxpZ25tZW50X2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIyIiwgc2luY2UgPSAiMS40IildCist CXB1YmxpYyBlbnVtIFRhYmxlQWxpZ25tZW50IHsKKy0JCVNUQVJULAorLQkJQ0VOVEVSLAorLQkJ RU5ECistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgY3ByZWZpeCA9ICJDTFVUVEVSX1RFWFRfRElSRUNUSU9OXyIsIHR5cGVfaWQgPSAiY2x1dHRl cl90ZXh0X2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4y IildCisgCXB1YmxpYyBlbnVtIFRleHREaXJlY3Rpb24geworQEAgLTg5MzMsMjggKzg1NTQsMTkg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJVkFMVUU7CisgCQlwdWJsaWMgc3RhdGljIEdMaWIu UXVhcmsgcXVhcmsgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX1RFWFRVUkVfRVJST1JfIildCistCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JcHVibGljIGVycm9yZG9tYWluIFRleHR1cmVFcnJv ciB7CistCQlPVVRfT0ZfTUVNT1JZLAorLQkJTk9fWVVWLAorLQkJQkFEX0ZPUk1BVDsKKy0JCXB1 YmxpYyBzdGF0aWMgR0xpYi5RdWFyayBxdWFyayAoKTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorIAlb VmVyc2lvbiAoc2luY2UgPSAiMS4yNCIpXQorIAlwdWJsaWMgZGVsZWdhdGUgQ2x1dHRlci5BY3Rv ciBBY3RvckNyZWF0ZUNoaWxkRnVuYyAoR0xpYi5PYmplY3QgaXRlbSk7CisgCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSld CisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMC4yIildCisgCXB1YmxpYyBkZWxlZ2F0ZSBkb3VibGUgQWxwaGFGdW5jIChD bHV0dGVyLkFscGhhIGFscGhhKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgaW5zdGFuY2VfcG9zID0gMi45KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNiIsIHNpbmNlID0gIjAuMiIpXQorLQlw dWJsaWMgZGVsZWdhdGUgdm9pZCBCZWhhdmlvdXJGb3JlYWNoRnVuYyAoQ2x1dHRlci5CZWhhdmlv dXIgYmVoYXZpb3VyLCBDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaW5zdGFuY2VfcG9zID0gNC45KV0KKyAJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgZGVsZWdhdGUgYm9vbCBCaW5kaW5nQWN0 aW9uRnVuYyAoR0xpYi5PYmplY3QgZ29iamVjdCwgc3RyaW5nIGFjdGlvbl9uYW1lLCB1aW50IGtl eV92YWwsIENsdXR0ZXIuTW9kaWZpZXJUeXBlIG1vZGlmaWVycyk7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisg CXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIENhbGxiYWNrIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKysJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaGFzX3Rhcmdl dCA9IGZhbHNlKV0KKysJcHVibGljIGRlbGVnYXRlIHZvaWQgRW1pdElucHV0RGV2aWNlRXZlbnQg KENsdXR0ZXIuRXZlbnQgZXZlbnQsIENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlKTsKKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaW5zdGFuY2VfcG9z ID0gMS45KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKyAJcHVibGljIGRlbGVnYXRl IGJvb2wgRXZlbnRGaWx0ZXJGdW5jIChDbHV0dGVyLkV2ZW50IGV2ZW50KTsKK0BAIC04OTg1LDkg Kzg1OTcsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgi KV0KKyAJcHVibGljIGNvbnN0IGludCBQUklPUklUWV9SRURSQVc7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMiIpXQorLQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuQWN0b3JCb3g/IGFjdG9yX2JveF9hbGxv YyAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIild CisgCXB1YmxpYyBzdGF0aWMgdm9pZCBiYXNlX2luaXQgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MiIpXQorQEAgLTkwNTEsOSArODY2MCw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJW1ZlcnNp b24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3RhdGljIHVub3duZWQgUGFuZ28uRm9udE1h cCBnZXRfZm9udF9tYXAgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0 aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9rZXlib2FyZF9ncmFiICgpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNp bmNlID0gIjAuMiIpXQorIAlwdWJsaWMgc3RhdGljIEdMaWIuT3B0aW9uR3JvdXAgZ2V0X29wdGlv bl9ncm91cCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIildCitAQCAtOTA2MSwxNyArODY2Nyw4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJcHVi bGljIHN0YXRpYyBHTGliLk9wdGlvbkdyb3VwIGdldF9vcHRpb25fZ3JvdXBfd2l0aG91dF9pbml0 ICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0K KyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1 dHRlci5BY3RvciBnZXRfcG9pbnRlcl9ncmFiICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQor IAlwdWJsaWMgc3RhdGljIHVub3duZWQgc3RyaW5nIGdldF9zY3JpcHRfaWQgKEdMaWIuT2JqZWN0 IGdvYmplY3QpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg Z3JhYl9rZXlib2FyZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42 IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBncmFiX3BvaW50ZXIgKENsdXR0ZXIuQWN0b3IgYWN0 b3IpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0K KyAJcHVibGljIHN0YXRpYyBDbHV0dGVyLkluaXRFcnJvciBpbml0IChbQ0NvZGUgKGFycmF5X2xl bmd0aF9jbmFtZSA9ICJhcmdjIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDAuNSldIHJlZiB1bm93bmVk IHN0cmluZ1tdPyBhcmd2KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KK0BAIC05MDg3LDI5ICs4 Njg0LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIHNldF9jdXN0b21f YmFja2VuZF9mdW5jICh2b2lkKiBmdW5jKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCB0ZXN0X2FkZF9kYXRhX2Z1bGwgKHN0cmluZyB0ZXN0X3BhdGgsIG93 bmVkIEdMaWIuVGVzdERhdGFGdW5jIHRlc3RfZnVuYyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIp XQorLQlwdWJsaWMgc3RhdGljIGJvb2wgdGVzdF9jaGVja19hY3Rvcl9hdF9wb2ludCAoQ2x1dHRl ci5BY3RvciBzdGFnZSwgQ2x1dHRlci5Qb2ludCBwb2ludCwgQ2x1dHRlci5BY3RvciBhY3Rvciwg b3V0IENsdXR0ZXIuQWN0b3I/IHJlc3VsdCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorLQlw dWJsaWMgc3RhdGljIGJvb2wgdGVzdF9jaGVja19jb2xvcl9hdF9wb2ludCAoQ2x1dHRlci5BY3Rv ciBzdGFnZSwgQ2x1dHRlci5Qb2ludCBwb2ludCwgQ2x1dHRlci5Db2xvciBjb2xvciwgb3V0IENs dXR0ZXIuQ29sb3IgcmVzdWx0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1YmxpYyBz dGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIHRlc3RfZ2V0X3N0YWdlICgpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIHRlc3RfaW5pdCAoaW50IGFyZ2MsIHN0cmluZyBhcmd2KTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjE4IildCistCXB1YmxpYyBzdGF0aWMgaW50IHRlc3RfcnVuICgpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjAuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdW5ncmFiX2tleWJvYXJkICgpOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNp b24gKHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdW5ncmFiX3BvaW50ZXIg KCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQor IAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgc3RhdGljIHVpbnQgdW5pY29k ZV90b19rZXlzeW0gKHVpbnQzMiB3Yyk7CisgfQorZGlmZiAtLWdpdCB2YXBpL211dHRlci1jbHV0 dGVyLTQuZGVwcyB2YXBpL211dHRlci1jbHV0dGVyLTcuZGVwcworc2ltaWxhcml0eSBpbmRleCA1 NCUKK3JlbmFtZSBmcm9tIHZhcGkvbXV0dGVyLWNsdXR0ZXItNC5kZXBzCityZW5hbWUgdG8gdmFw aS9tdXR0ZXItY2x1dHRlci03LmRlcHMKK2luZGV4IDk1MDk0MDI2Li42YmQxY2NmNyAxMDA2NDQK Ky0tLSB2YXBpL211dHRlci1jbHV0dGVyLTQuZGVwcworKysrIHZhcGkvbXV0dGVyLWNsdXR0ZXIt Ny5kZXBzCitAQCAtMSw1ICsxLDQgQEAKKyBhdGsKKyBjYWlybworIGpzb24tZ2xpYi0xLjAKKy1t dXR0ZXItY29nbC00CistcGFuZ28KKyttdXR0ZXItY29nbC03CitkaWZmIC0tZ2l0IHZhcGkvbXV0 dGVyLWNsdXR0ZXItNC52YXBpIHZhcGkvbXV0dGVyLWNsdXR0ZXItNy52YXBpCitzaW1pbGFyaXR5 IGluZGV4IDg2JQorcmVuYW1lIGZyb20gdmFwaS9tdXR0ZXItY2x1dHRlci00LnZhcGkKK3JlbmFt ZSB0byB2YXBpL211dHRlci1jbHV0dGVyLTcudmFwaQoraW5kZXggYzhhMWQyM2IuLmFlYTZhMzFh IDEwMDY0NAorLS0tIHZhcGkvbXV0dGVyLWNsdXR0ZXItNC52YXBpCisrKysgdmFwaS9tdXR0ZXIt Y2x1dHRlci03LnZhcGkKK0BAIC0xLDYgKzEsNiBAQAorLS8qIG11dHRlci1jbHV0dGVyLTQudmFw aSBnZW5lcmF0ZWQgYnkgdmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKysvKiBtdXR0ZXItY2x1 dHRlci03LnZhcGkgZ2VuZXJhdGVkIGJ5IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnkuICovCisgCist W0NDb2RlIChjcHJlZml4ID0gIkNsdXR0ZXIiLCBnaXJfbmFtZXNwYWNlID0gIkNsdXR0ZXIiLCBn aXJfdmVyc2lvbiA9ICI0IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gImNsdXR0ZXJfIildCisrW0ND b2RlIChjcHJlZml4ID0gIkNsdXR0ZXIiLCBnaXJfbmFtZXNwYWNlID0gIkNsdXR0ZXIiLCBnaXJf dmVyc2lvbiA9ICI3IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gImNsdXR0ZXJfIildCisgbmFtZXNw YWNlIENsdXR0ZXIgeworIAluYW1lc3BhY2UgS2V5IHsKKyAJCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNuYW1lID0gIkNMVVRURVJfS0VZXzAiKV0KK0BA IC00NTc2LDIwICs0NTc2LDggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBzdGF0aWMgdWludCBhZGRfcmVwYWludF9mdW5jX2Z1 bGwgKENsdXR0ZXIuUmVwYWludEZsYWdzIGZsYWdzLCBvd25lZCBHTGliLlNvdXJjZUZ1bmMgZnVu Yyk7CisgCQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0K Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgZW50ZXIgKCk7CistCQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2Ug PSAiMC40IildCistCQlwdWJsaWMgc3RhdGljIHZvaWQgaW5pdCAoKTsKKy0JCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjQiKV0K Ky0JCXB1YmxpYyBzdGF0aWMgdm9pZCBsZWF2ZSAoKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorIAkJcHVibGljIHN0YXRpYyB2b2lkIHJlbW92ZV9yZXBhaW50X2Z1bmMgKHVpbnQgaGFuZGxl X2lkKTsKKy0JCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIp XQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHNl dF9sb2NrX2Z1bmN0aW9ucyAoR0xpYi5DYWxsYmFjayBlbnRlcl9mbiwgR0xpYi5DYWxsYmFjayBs ZWF2ZV9mbik7CisgCX0KKyAJbmFtZXNwYWNlIFZhbHVlIHsKKyAJCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorQEAgLTQ2MzYsNyArNDYyNCw2IEBAIG5h bWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBzdGF0aWMgdm9pZCB0YWtlX3BhaW50X25vZGUg KEdMaWIuVmFsdWUgdmFsdWUsIENsdXR0ZXIuUGFpbnROb2RlPyBub2RlKTsKKyAJfQorIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNs dXR0ZXJfYWN0aW9uX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0K KyAJcHVibGljIGFic3RyYWN0IGNsYXNzIEFjdGlvbiA6IENsdXR0ZXIuQWN0b3JNZXRhIHsKKyAJ CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBB Y3Rpb24gKCk7CitAQCAtNDY2NCwzMyArNDY1MSwyMyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgYWRkX3RyYW5zaXRp b24gKHN0cmluZyBuYW1lLCBDbHV0dGVyLlRyYW5zaXRpb24gdHJhbnNpdGlvbik7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFsbG9jYXRlIChD bHV0dGVyLkFjdG9yQm94IGJveCwgQ2x1dHRlci5BbGxvY2F0aW9uRmxhZ3MgZmxhZ3MpOworKwkJ cHVibGljIHZpcnR1YWwgdm9pZCBhbGxvY2F0ZSAoQ2x1dHRlci5BY3RvckJveCBib3gpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgYWxsb2NhdGVfYWxpZ25f ZmlsbCAoQ2x1dHRlci5BY3RvckJveCBib3gsIGRvdWJsZSB4X2FsaWduLCBkb3VibGUgeV9hbGln biwgYm9vbCB4X2ZpbGwsIGJvb2wgeV9maWxsLCBDbHV0dGVyLkFsbG9jYXRpb25GbGFncyBmbGFn cyk7CisrCQlwdWJsaWMgdm9pZCBhbGxvY2F0ZV9hbGlnbl9maWxsIChDbHV0dGVyLkFjdG9yQm94 IGJveCwgZG91YmxlIHhfYWxpZ24sIGRvdWJsZSB5X2FsaWduLCBib29sIHhfZmlsbCwgYm9vbCB5 X2ZpbGwpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgYWxs b2NhdGVfYXZhaWxhYmxlX3NpemUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGF2YWlsYWJsZV93 aWR0aCwgZmxvYXQgYXZhaWxhYmxlX2hlaWdodCwgQ2x1dHRlci5BbGxvY2F0aW9uRmxhZ3MgZmxh Z3MpOworKwkJcHVibGljIHZvaWQgYWxsb2NhdGVfYXZhaWxhYmxlX3NpemUgKGZsb2F0IHgsIGZs b2F0IHksIGZsb2F0IGF2YWlsYWJsZV93aWR0aCwgZmxvYXQgYXZhaWxhYmxlX2hlaWdodCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdm9pZCBhbGxvY2F0ZV9wcmVm ZXJyZWRfc2l6ZSAoQ2x1dHRlci5BbGxvY2F0aW9uRmxhZ3MgZmxhZ3MpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIx LjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGFuaW1hdGUgKHVsb25n IG1vZGUsIHVpbnQgZHVyYXRpb24sIC4uLik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0ZV93aXRoX2FscGhhIChDbHV0dGVyLkFs cGhhIGFscGhhLCAuLi4pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENs dXR0ZXIuQW5pbWF0aW9uIGFuaW1hdGVfd2l0aF9hbHBoYXYgKENsdXR0ZXIuQWxwaGEgYWxwaGEs IFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0 aF9wb3MgPSAxLjUpXSBzdHJpbmdbXSBwcm9wZXJ0aWVzLCBbQ0NvZGUgKGFycmF5X2xlbmd0aF9j bmFtZSA9ICJuX3Byb3BlcnRpZXMiLCBhcnJheV9sZW5ndGhfcG9zID0gMS41KV0gR0xpYi5WYWx1 ZVtdIHZhbHVlcyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRl ci5BbmltYXRpb24gYW5pbWF0ZV93aXRoX3RpbWVsaW5lICh1bG9uZyBtb2RlLCBDbHV0dGVyLlRp bWVsaW5lIHRpbWVsaW5lLCAuLi4pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93 bmVkIENsdXR0ZXIuQW5pbWF0aW9uIGFuaW1hdGVfd2l0aF90aW1lbGluZXYgKHVsb25nIG1vZGUs IENsdXR0ZXIuVGltZWxpbmUgdGltZWxpbmUsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0g Im5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAyLjUpXSBzdHJpbmdbXSBwcm9wZXJ0 aWVzLCBbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3Byb3BlcnRpZXMiLCBhcnJheV9s ZW5ndGhfcG9zID0gMi41KV0gR0xpYi5WYWx1ZVtdIHZhbHVlcyk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BbmltYXRpb24gYW5pbWF0ZXYgKHVsb25nIG1v ZGUsIHVpbnQgZHVyYXRpb24sIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVy dGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAyLjUpXSBzdHJpbmdbXSBwcm9wZXJ0aWVzLCBbQ0Nv ZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3Byb3BlcnRpZXMiLCBhcnJheV9sZW5ndGhfcG9z ID0gMi41KV0gR0xpYi5WYWx1ZVtdIHZhbHVlcyk7CisrCQlwdWJsaWMgdm9pZCBhbGxvY2F0ZV9w cmVmZXJyZWRfc2l6ZSAoZmxvYXQgeCwgZmxvYXQgeSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MC42IildCistCQlwdWJsaWMgQ2x1dHRlci5WZXJ0ZXggYXBwbHlfcmVsYXRpdmVfdHJhbnNmb3Jt X3RvX3BvaW50IChDbHV0dGVyLkFjdG9yPyBhbmNlc3RvciwgQ2x1dHRlci5WZXJ0ZXggcG9pbnQp OworKwkJcHVibGljIHZvaWQgYXBwbHlfcmVsYXRpdmVfdHJhbnNmb3JtX3RvX3BvaW50IChDbHV0 dGVyLkFjdG9yPyBhbmNlc3RvciwgR3JhcGhlbmUuUG9pbnQzRCBwb2ludCwgb3V0IHVub3duZWQg R3JhcGhlbmUuUG9pbnQzRCB2ZXJ0ZXgpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0 dWFsIHZvaWQgYXBwbHlfdHJhbnNmb3JtIChyZWYgQ2x1dHRlci5NYXRyaXggbWF0cml4KTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCBhcHBs eV90cmFuc2Zvcm1fdG9fcG9pbnQgKENsdXR0ZXIuVmVydGV4IHBvaW50KTsKKysJCXB1YmxpYyB2 b2lkIGFwcGx5X3RyYW5zZm9ybV90b19wb2ludCAoR3JhcGhlbmUuUG9pbnQzRCBwb2ludCwgb3V0 IHVub3duZWQgR3JhcGhlbmUuUG9pbnQzRCB2ZXJ0ZXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMjQiKV0KKyAJCXB1YmxpYyB2b2lkIGJpbmRfbW9kZWwgKEdMaWIuTGlzdE1vZGVsPyBtb2Rl bCwgb3duZWQgQ2x1dHRlci5BY3RvckNyZWF0ZUNoaWxkRnVuYyBjcmVhdGVfY2hpbGRfZnVuYyk7 CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZpcnR1YWwgZmxvYXQgY2FsY3VsYXRlX3Jlc291 cmNlX3NjYWxlIChpbnQgcGhhc2UpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJ cHVibGljIHZvaWQgY2xlYXJfYWN0aW9ucyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQi KV0KK0BAIC00NzAwLDIwICs0Njc3LDE5IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBib29sIGNvbnRhaW5zIChDbHV0dGVyLkFj dG9yIGRlc2NlbmRhbnQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGlj IHZvaWQgY29udGludWVfcGFpbnQgKCk7CisrCQlwdWJsaWMgdm9pZCBjb250aW51ZV9wYWludCAo Q2x1dHRlci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCk7CisrCQlwdWJsaWMgdm9pZCBjb250 aW51ZV9waWNrIChDbHV0dGVyLlBpY2tDb250ZXh0IHBpY2tfY29udGV4dCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgUGFuZ28uQ29udGV4dCBjcmVhdGVfcGFuZ29f Y29udGV4dCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyBQYW5n by5MYXlvdXQgY3JlYXRlX3BhbmdvX2xheW91dCAoc3RyaW5nPyB0ZXh0KTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBkZXN0cm95X2FsbF9jaGlsZHJlbiAo KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBkZXRhY2hfYW5pbWF0aW9uICgp OworIAkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2FjdG9yX2V2ZW50IildCisgCQlbVmVyc2lv biAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgYm9vbCBlbWl0X2V2ZW50IChDbHV0dGVyLkV2 ZW50IGV2ZW50LCBib29sIGNhcHR1cmUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQor LQkJcHVibGljIHZvaWQgZ2V0X2Fic19hbGxvY2F0aW9uX3ZlcnRpY2VzIChbQ0NvZGUgKGFycmF5 X2xlbmd0aCA9IGZhbHNlKV0gQ2x1dHRlci5WZXJ0ZXggdmVydHNbNF0pOworKwkJcHVibGljIHZv aWQgZ2V0X2Fic19hbGxvY2F0aW9uX3ZlcnRpY2VzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZh bHNlKV0gR3JhcGhlbmUuUG9pbnQzRCB2ZXJ0c1s0XSk7CisgCQlwdWJsaWMgdmlydHVhbCB1bm93 bmVkIEF0ay5PYmplY3QgZ2V0X2FjY2Vzc2libGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS40IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdGlvbiBnZXRfYWN0aW9uIChzdHJp bmcgbmFtZSk7CitAQCAtNDcyMSwyMSArNDY5Nyw4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CXB1YmxpYyBHTGliLkxpc3Q8d2VhayBDbHV0dGVyLkFjdGlvbj4gZ2V0X2FjdGlvbnMgKCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgQ2x1dHRlci5BY3RvckJveCBn ZXRfYWxsb2NhdGlvbl9ib3ggKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIENsdXR0 ZXIuR2VvbWV0cnkgZ2V0X2FsbG9jYXRpb25fZ2VvbWV0cnkgKCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBnZXRfYWxsb2NhdGlvbl92ZXJ0aWNlcyAoQ2x1 dHRlci5BY3Rvcj8gYW5jZXN0b3IsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBDbHV0 dGVyLlZlcnRleCB2ZXJ0c1s0XSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQg Z2V0X2FuY2hvcl9wb2ludCAob3V0IGZsb2F0IGFuY2hvcl94LCBvdXQgZmxvYXQgYW5jaG9yX3kp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkdyYXZpdHkgZ2V0X2FuY2hv cl9wb2ludF9ncmF2aXR5ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB1bm93bmVk IENsdXR0ZXIuQW5pbWF0aW9uIGdldF9hbmltYXRpb24gKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorIAkJcHVibGljIENsdXR0ZXIuQ29sb3IgZ2V0X2JhY2tncm91bmRfY29sb3Ig KCk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfZ2V0X2FjdG9yX2J5X2dpZCIpXQorLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNp bmNlID0gIjAuNiIpXQorLQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0 X2J5X2dpZCAodWludDMyIGlkXyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJ cHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfY2hpbGRfYXRfaW5kZXggKGludCBpbmRl eF8pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KK0BAIC00NzYyLDggKzQ3MjUsNiBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBnZXRfY29udGVudF9zY2FsaW5n X2ZpbHRlcnMgKG91dCBDbHV0dGVyLlNjYWxpbmdGaWx0ZXIgbWluX2ZpbHRlciwgb3V0IENsdXR0 ZXIuU2NhbGluZ0ZpbHRlciBtYWdfZmlsdGVyKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEw IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlBhaW50Vm9sdW1lIGdldF9kZWZhdWx0X3Bh aW50X3ZvbHVtZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgZmxvYXQgZ2V0X2RlcHRoICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB1aW50IGdldF9lYXNpbmdfZGVsYXkg KCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTQ3NzYsMTIgKzQ3MzcsMTEg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIEdMaWIuTGlzdDx3ZWFrIENsdXR0ZXIu RWZmZWN0PiBnZXRfZWZmZWN0cyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisg CQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9maXJzdF9jaGlsZCAoKTsKKysJCXB1 YmxpYyBib29sIGdldF9maXhlZF9wb3NpdGlvbiAob3V0IGZsb2F0IHgsIG91dCBmbG9hdCB5KTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyBib29sIGdldF9maXhlZF9w b3NpdGlvbl9zZXQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMg Q2x1dHRlci5BY3RvckZsYWdzIGdldF9mbGFncyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1 YmxpYyB1aW50MzIgZ2V0X2dpZCAoKTsKKyAJCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9hY3Rv cl9oYXNfcG9pbnRlciIpXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGlj IGJvb2wgZ2V0X2hhc19wb2ludGVyICgpOworQEAgLTQ4MzksMTcgKzQ3OTksMTEgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgZ2V0X3JlYWN0aXZlICgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIENsdXR0ZXIuUmVxdWVzdE1vZGUgZ2V0X3Jl cXVlc3RfbW9kZSAoKTsKKy0JCXB1YmxpYyBib29sIGdldF9yZXNvdXJjZV9zY2FsZSAob3V0IGZs b2F0IHJlc291cmNlX3NjYWxlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgZG91Ymxl IGdldF9yb3RhdGlvbiAoQ2x1dHRlci5Sb3RhdGVBeGlzIGF4aXMsIG91dCBmbG9hdCB4LCBvdXQg ZmxvYXQgeSwgb3V0IGZsb2F0IHopOworKwkJcHVibGljIGZsb2F0IGdldF9yZXNvdXJjZV9zY2Fs ZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgZG91YmxlIGdl dF9yb3RhdGlvbl9hbmdsZSAoQ2x1dHRlci5Sb3RhdGVBeGlzIGF4aXMpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjAuMiIpXQorIAkJcHVibGljIHZvaWQgZ2V0X3NjYWxlIChvdXQgZG91YmxlIHNj YWxlX3gsIG91dCBkb3VibGUgc2NhbGVfeSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IHZvaWQgZ2V0X3NjYWxlX2NlbnRlciAob3V0IGZsb2F0IGNlbnRlcl94LCBvdXQgZmxvYXQgY2Vu dGVyX3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkdyYXZpdHkgZ2V0 X3NjYWxlX2dyYXZpdHkgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVi bGljIGRvdWJsZSBnZXRfc2NhbGVfeiAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0K K0BAIC00ODYwLDggKzQ4MTQsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgQ2x1 dHRlci5UZXh0RGlyZWN0aW9uIGdldF90ZXh0X2RpcmVjdGlvbiAoKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgQ2x1dHRlci5NYXRyaXggZ2V0X3RyYW5zZm9ybSAo KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2x1dHRlci5NYXRyaXggZ2V0X3RyYW5z Zm9ybWF0aW9uX21hdHJpeCAoKTsKKysJCXB1YmxpYyB2b2lkIGdldF90cmFuc2Zvcm1lZF9leHRl bnRzIChvdXQgdW5vd25lZCBHcmFwaGVuZS5SZWN0IHJlY3QpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNiIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5QYWludFZvbHVtZSBnZXRfdHJh bnNmb3JtZWRfcGFpbnRfdm9sdW1lIChDbHV0dGVyLkFjdG9yIHJlbGF0aXZlX3RvX2FuY2VzdG9y KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KK0BAIC00ODg1LDEwICs0ODM4LDkgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgZ2V0X3lfZXhwYW5kICgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBmbG9hdCBnZXRfel9wb3NpdGlv biAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2x1dHRlci5HcmF2aXR5IGdldF96 X3JvdGF0aW9uX2dyYXZpdHkgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlw dWJsaWMgdm9pZCBncmFiX2tleV9mb2N1cyAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgaGFz X2FjY2Vzc2libGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGlj IGJvb2wgaGFzX2FjdGlvbnMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCitAQCAt NDkwMCwxOCArNDg1MiwyMCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgYm9vbCBo YXNfZWZmZWN0cyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBi b29sIGhhc19rZXlfZm9jdXMgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorIAkJ cHVibGljIGJvb2wgaGFzX21hcHBlZF9jbG9uZXMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS44IildCisgCQlwdWJsaWMgdmlydHVhbCBib29sIGhhc19vdmVybGFwcyAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2Ug PSAiMC4yIildCisrCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBoaWRlX2Fs bCAoKTsKKysJCXB1YmxpYyB2b2lkIGluaGliaXRfY3VsbGluZyAoKTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBpbnNlcnRfY2hpbGRfYWJvdmUgKENsdXR0 ZXIuQWN0b3IgY2hpbGQsIENsdXR0ZXIuQWN0b3I/IHNpYmxpbmcpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIGluc2VydF9jaGlsZF9hdF9pbmRleCAoQ2x1 dHRlci5BY3RvciBjaGlsZCwgaW50IGluZGV4Xyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorIAkJcHVibGljIHZvaWQgaW5zZXJ0X2NoaWxkX2JlbG93IChDbHV0dGVyLkFjdG9yIGNo aWxkLCBDbHV0dGVyLkFjdG9yPyBzaWJsaW5nKTsKKysJCXB1YmxpYyB2b2lkIGludmFsaWRhdGVf dHJhbnNmb3JtICgpOworKwkJcHVibGljIGJvb2wgaXNfZWZmZWN0aXZlbHlfb25fc3RhZ2Vfdmll dyAoQ2x1dHRlci5TdGFnZVZpZXcgdmlldyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CisgCQlwdWJsaWMgYm9vbCBpc19pbl9jbG9uZV9wYWludCAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjI0IildCitAQCAtNDkyNCwzMyArNDg3OCwyMCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCQlwdWJsaWMgYm9vbCBpc19zY2FsZWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4y NCIpXQorIAkJcHVibGljIGJvb2wgaXNfdmlzaWJsZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBs b3dlciAoQ2x1dHRlci5BY3Rvcj8gYWJvdmUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIGxvd2VyX2Jv dHRvbSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB2aXJ0dWFs IHZvaWQgbWFwICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIG1vdmVfYW5j aG9yX3BvaW50IChmbG9hdCBhbmNob3JfeCwgZmxvYXQgYW5jaG9yX3kpOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIw LjYiKV0KKy0JCXB1YmxpYyB2b2lkIG1vdmVfYW5jaG9yX3BvaW50X2Zyb21fZ3Jhdml0eSAoQ2x1 dHRlci5HcmF2aXR5IGdyYXZpdHkpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAkJ cHVibGljIHZvaWQgbW92ZV9ieSAoZmxvYXQgZHgsIGZsb2F0IGR5KTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgYm9vbCBuZWVkc19leHBhbmQgKENsdXR0ZXIuT3Jp ZW50YXRpb24gb3JpZW50YXRpb24pOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFs IHZvaWQgcGFpbnRfbm9kZSAoQ2x1dHRlci5QYWludE5vZGUgcm9vdCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEu MiIpXQorLQkJcHVibGljIHZvaWQgcG9wX2ludGVybmFsICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0K Ky0JCXB1YmxpYyB2b2lkIHB1c2hfaW50ZXJuYWwgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBHTGli Lkxpc3Q8Q2x1dHRlci5TdGFnZVZpZXc+IHBlZWtfc3RhZ2Vfdmlld3MgKCk7CisrCQlwdWJsaWMg dm9pZCBwaWNrX2JveCAoQ2x1dHRlci5QaWNrQ29udGV4dCBwaWNrX2NvbnRleHQsIENsdXR0ZXIu QWN0b3JCb3ggYm94KTsKKysJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuRnJhbWVDbG9jayBwaWNr X2ZyYW1lX2Nsb2NrICgpOworIAkJcHVibGljIHZvaWQgcXVldWVfcmVkcmF3ICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHF1ZXVlX3JlZHJhd193aXRo X2NsaXAgKENhaXJvLlJlY3RhbmdsZUludD8gY2xpcCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgcmFp c2UgKENsdXR0ZXIuQWN0b3I/IGJlbG93KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCByYWlzZV90b3Ag KCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdm9pZCByZW1vdmVf YWN0aW9uIChDbHV0dGVyLkFjdGlvbiBhY3Rpb24pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NCIpXQorQEAgLTQ5NzIsOCArNDkxMyw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1Ymxp YyB2b2lkIHJlbW92ZV9lZmZlY3RfYnlfbmFtZSAoc3RyaW5nIG5hbWUpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV90cmFuc2l0aW9uIChzdHJp bmcgbmFtZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuMiIpXQorLQkJcHVibGljIHZvaWQgcmVwYXJlbnQgKENs dXR0ZXIuQWN0b3IgbmV3X3BhcmVudCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor IAkJcHVibGljIHZvaWQgcmVwbGFjZV9jaGlsZCAoQ2x1dHRlci5BY3RvciBvbGRfY2hpbGQsIENs dXR0ZXIuQWN0b3IgbmV3X2NoaWxkKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitA QCAtNDk4MSwxMSArNDkyMCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBzYXZlX2Vhc2luZ19zdGF0ZSAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxsb2NhdGlv biAoQ2x1dHRlci5BY3RvckJveCBib3gsIENsdXR0ZXIuQWxsb2NhdGlvbkZsYWdzIGZsYWdzKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBzZXRfYW5jaG9yX3BvaW50IChmbG9h dCBhbmNob3JfeCwgZmxvYXQgYW5jaG9yX3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9hbmNob3JfcG9pbnRfZnJvbV9ncmF2aXR5IChDbHV0dGVyLkdyYXZpdHkgZ3Jh dml0eSk7CisrCQlwdWJsaWMgdm9pZCBzZXRfYWxsb2NhdGlvbiAoQ2x1dHRlci5BY3RvckJveCBi b3gpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9i YWNrZ3JvdW5kX2NvbG9yIChDbHV0dGVyLkNvbG9yPyBjb2xvcik7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorQEAgLTUwMDgsOCArNDk0Myw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsK KyAJCXB1YmxpYyB2b2lkIHNldF9jb250ZW50X3JlcGVhdCAoQ2x1dHRlci5Db250ZW50UmVwZWF0 IHJlcGVhdCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQg c2V0X2NvbnRlbnRfc2NhbGluZ19maWx0ZXJzIChDbHV0dGVyLlNjYWxpbmdGaWx0ZXIgbWluX2Zp bHRlciwgQ2x1dHRlci5TY2FsaW5nRmlsdGVyIG1hZ19maWx0ZXIpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9kZXB0aCAoZmxvYXQgZGVwdGgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAi KV0KKyAJCXB1YmxpYyB2b2lkIHNldF9lYXNpbmdfZGVsYXkgKHVpbnQgbXNlY3MpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC01MDM5LDggKzQ5NzIsNiBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCBzZXRfb2Zmc2NyZWVuX3JlZGlyZWN0IChDbHV0dGVy Lk9mZnNjcmVlblJlZGlyZWN0IHJlZGlyZWN0KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9vcGFjaXR5 ICh1aW50OCBvcGFjaXR5KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9vcGFjaXR5X292ZXJyaWRlIChp bnQgb3BhY2l0eSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3BhcmVudCAoQ2x1dHRlci5BY3Rv ciBwYXJlbnQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyB2b2lk IHNldF9waXZvdF9wb2ludCAoZmxvYXQgcGl2b3RfeCwgZmxvYXQgcGl2b3RfeSk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMiIpXQorQEAgLTUwNTAsMTYgKzQ5ODEsMTAgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJcHVibGljIHZvaWQgc2V0X3JlYWN0aXZlIChib29sIHJlYWN0aXZlKTsK KyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9yZXF1ZXN0 X21vZGUgKENsdXR0ZXIuUmVxdWVzdE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJ cHVibGljIHZvaWQgc2V0X3JvdGF0aW9uIChDbHV0dGVyLlJvdGF0ZUF4aXMgYXhpcywgZG91Ymxl IGFuZ2xlLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEyIildCisgCQlwdWJsaWMgdm9pZCBzZXRfcm90YXRpb25fYW5nbGUgKENsdXR0ZXIuUm90 YXRlQXhpcyBheGlzLCBkb3VibGUgYW5nbGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuMiIp XQorIAkJcHVibGljIHZvaWQgc2V0X3NjYWxlIChkb3VibGUgc2NhbGVfeCwgZG91YmxlIHNjYWxl X3kpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zY2FsZV9mdWxsIChk b3VibGUgc2NhbGVfeCwgZG91YmxlIHNjYWxlX3ksIGZsb2F0IGNlbnRlcl94LCBmbG9hdCBjZW50 ZXJfeSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NjYWxlX3dpdGhf Z3Jhdml0eSAoZG91YmxlIHNjYWxlX3gsIGRvdWJsZSBzY2FsZV95LCBDbHV0dGVyLkdyYXZpdHkg Z3Jhdml0eSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIHZvaWQg c2V0X3NjYWxlX3ogKGRvdWJsZSBzY2FsZV96KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9zaXplIChm bG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKK0BAIC01MDg1LDE3ICs1MDEwLDEyIEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF95X2V4cGFuZCAoYm9vbCBleHBhbmQp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF96X3Bv c2l0aW9uIChmbG9hdCB6X3Bvc2l0aW9uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMg dm9pZCBzZXRfel9yb3RhdGlvbl9mcm9tX2dyYXZpdHkgKGRvdWJsZSBhbmdsZSwgQ2x1dHRlci5H cmF2aXR5IGdyYXZpdHkpOworIAkJcHVibGljIGJvb2wgc2hvdWxkX3BpY2tfcGFpbnQgKCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIs IHNpbmNlID0gIjAuMiIpXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBzaG93X2FsbCAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyBib29sIHRyYW5zZm9ybV9zdGFn ZV9wb2ludCAoZmxvYXQgeCwgZmxvYXQgeSwgb3V0IGZsb2F0IHhfb3V0LCBvdXQgZmxvYXQgeV9v dXQpOworKwkJcHVibGljIHZvaWQgdW5pbmhpYml0X2N1bGxpbmcgKCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdmlydHVhbCB2b2lkIHVubWFwICgpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5j ZSA9ICIwLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHVucGFyZW50ICgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgdW5zZXRfZmxhZ3MgKENsdXR0ZXIuQWN0b3JG bGFncyBmbGFncyk7CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KK0BAIC01MTAzLDE2ICs1MDIzLDcg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIENsdXR0ZXIuQWN0aW9uIGFjdGlvbnMg eyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAu OCIpXQorLQkJcHVibGljIENsdXR0ZXIuQWN0b3JCb3ggYWxsb2NhdGlvbiB7IGdldDsgfQorLQkJ W05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIu R3Jhdml0eSBhbmNob3JfZ3Jhdml0eSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgZmxvYXQgYW5jaG9yX3ggeyBnZXQ7IHNl dDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGlj IGZsb2F0IGFuY2hvcl95IHsgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBDbHV0dGVyLkFjdG9yQm94 IGFsbG9jYXRpb24geyBvd25lZCBnZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CisgCQlwdWJsaWMgQ2x1dHRlci5Db2xvciBiYWNrZ3JvdW5kX2NvbG9yIHsgZ2V0OyBzZXQ7IH0K KyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAgLTUxMjIsMTEgKzUwMzMsOCBAQCBuYW1lc3BhY2Ug Q2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGJvb2wg Y2hpbGRfdHJhbnNmb3JtX3NldCB7IGdldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQor LQkJcHVibGljIENsdXR0ZXIuR2VvbWV0cnkgY2xpcCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgQ2x1 dHRlci5SZWN0IGNsaXBfcmVjdCB7IG93bmVkIGdldDsgc2V0OyB9CisrCQlwdWJsaWMgR3JhcGhl bmUuUmVjdCBjbGlwX3JlY3QgeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMCIpXQorIAkJcHVibGljIGJvb2wgY2xpcF90b19hbGxvY2F0aW9uIHsgZ2V0OyBzZXQ7 IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAgLTUxNDAsOCArNTA0OCw2IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLkNvbnRlbnRHcmF2aXR5IGNvbnRlbnRfZ3Jh dml0eSB7IGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVi bGljIENsdXR0ZXIuQ29udGVudFJlcGVhdCBjb250ZW50X3JlcGVhdCB7IGdldDsgc2V0OyB9Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIs IHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIGZsb2F0IGRlcHRoIHsgZ2V0OyBzZXQ7IH0KKyAJ CVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVi bGljIENsdXR0ZXIuRWZmZWN0IGVmZmVjdCB7IHNldDsgfQorQEAgLTUyMTEsMTIgKzUxMTcsMTIg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHVpbnQgb3BhY2l0eSB7IGdldDsgc2V0 OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIild CistCQlwdWJsaWMgQ2x1dHRlci5Qb2ludCBwaXZvdF9wb2ludCB7IG93bmVkIGdldDsgc2V0OyB9 CisrCQlwdWJsaWMgR3JhcGhlbmUuUG9pbnQgcGl2b3RfcG9pbnQgeyBvd25lZCBnZXQ7IHNldDsg fQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKyAJCXB1YmxpYyBmbG9hdCBwaXZvdF9w b2ludF96IHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlBvaW50IHBvc2l0aW9uIHsgb3du ZWQgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBHcmFwaGVuZS5Qb2ludCBwb3NpdGlvbiB7IG93bmVk IGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgYm9v bCByZWFjdGl2ZSB7IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KK0BAIC01MjI1 LDggKzUxMzEsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MC44IildCisgCQlwdWJsaWMgQ2x1dHRlci5SZXF1ZXN0TW9kZSByZXF1ZXN0X21vZGUgeyBnZXQ7 IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgZmxvYXQgcmVzb3VyY2Vf c2NhbGUgeyBnZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjAuNiIpXQorIAkJcHVibGljIGRvdWJsZSByb3RhdGlvbl9hbmdsZV94IHsgZ2V0OyBzZXQ7 IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAgLTUyMzYsMjcgKzUxNDAsNiBAQCBuYW1lc3Bh Y2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgZG91 YmxlIHJvdGF0aW9uX2FuZ2xlX3ogeyBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2Rd CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIENsdXR0ZXIuVmVydGV4IHJvdGF0aW9uX2Nl bnRlcl94IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIw LjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlZlcnRleCByb3RhdGlvbl9jZW50ZXJfeSB7IGdldDsg c2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC42IildCistCQlwdWJs aWMgQ2x1dHRlci5WZXJ0ZXggcm90YXRpb25fY2VudGVyX3ogeyBnZXQ7IHNldDsgfQorLQkJW05v QWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIuR3Jh dml0eSByb3RhdGlvbl9jZW50ZXJfel9ncmF2aXR5IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vz c29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBmbG9hdCBzY2FsZV9jZW50 ZXJfeCB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4w IildCistCQlwdWJsaWMgZmxvYXQgc2NhbGVfY2VudGVyX3kgeyBnZXQ7IHNldDsgfQorLQkJW05v QWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIuR3Jh dml0eSBzY2FsZV9ncmF2aXR5IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIGRvdWJsZSBzY2FsZV94IHsg Z2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAgLTUyNjksNyArNTE1Miw3IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIHNob3dfb25fc2V0X3BhcmVudCB7 IGdldDsgc2V0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEyIildCistCQlwdWJsaWMgQ2x1dHRlci5TaXplIHNpemUgeyBvd25lZCBnZXQ7IHNldDsg fQorKwkJcHVibGljIEdyYXBoZW5lLlNpemUgc2l6ZSB7IG93bmVkIGdldDsgc2V0OyB9CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgQ2x1dHRlci5UZXh0RGlyZWN0aW9u IHRleHRfZGlyZWN0aW9uIHsgZ2V0OyBzZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorQEAg LTUyOTksOCArNTE4Miw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIHlf ZXhwYW5kIHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlw dWJsaWMgZmxvYXQgel9wb3NpdGlvbiB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCistCQlwdWJsaWMgc2lnbmFsIHZvaWQgYWxsb2NhdGlvbl9jaGFuZ2VkIChDbHV0 dGVyLkFjdG9yQm94IGJveCwgQ2x1dHRlci5BbGxvY2F0aW9uRmxhZ3MgZmxhZ3MpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgYnV0 dG9uX3ByZXNzX2V2ZW50IChDbHV0dGVyLkJ1dHRvbkV2ZW50IGV2ZW50KTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIwLjYiKV0KK0BAIC01MzMxLDIyICs1MjEyLDI1IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIG1vdGlvbl9ldmVudCAoQ2x1dHRl ci5Nb3Rpb25FdmVudCBldmVudCk7CisgCQlbSGFzRW1pdHRlcl0KKyAJCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44Iild CistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBwYWludCAoKTsKKysJCXB1YmxpYyB2aXJ0 dWFsIHNpZ25hbCB2b2lkIHBhaW50IChDbHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0 KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25h bCB2b2lkIHBhcmVudF9zZXQgKENsdXR0ZXIuQWN0b3I/IG9sZF9wYXJlbnQpOworKwkJW0hhc0Vt aXR0ZXJdCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdmlydHVhbCBz aWduYWwgdm9pZCBwaWNrIChDbHV0dGVyLkNvbG9yIGNvbG9yKTsKKysJCXB1YmxpYyB2aXJ0dWFs IHNpZ25hbCB2b2lkIHBpY2sgKENsdXR0ZXIuUGlja0NvbnRleHQgcGlja19jb250ZXh0KTsKKyAJ CVtIYXNFbWl0dGVyXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIHZp cnR1YWwgc2lnbmFsIHZvaWQgcXVldWVfcmVsYXlvdXQgKCk7CisgCQlbSGFzRW1pdHRlcl0KKyAJ CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwg c2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCByZWFsaXplICgp OworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcmVzb3VyY2Vfc2NhbGVfY2hhbmdlZCAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25h bCBib29sIHNjcm9sbF9ldmVudCAoQ2x1dHRlci5TY3JvbGxFdmVudCBldmVudCk7CisgCQlbSGFz RW1pdHRlcl0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KKyAJCXB1YmxpYyB2aXJ0dWFs IHNpZ25hbCB2b2lkIHNob3cgKCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgc3RhZ2Vfdmlld3Nf Y2hhbmdlZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdmly dHVhbCBzaWduYWwgYm9vbCB0b3VjaF9ldmVudCAoQ2x1dHRlci5FdmVudCBldmVudCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorQEAgLTUzNTgsMjEgKzUyNDIsMzMgQEAgbmFtZXNw YWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgdW5yZWFsaXplICgp OworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIs IHR5cGVfaWQgPSAiY2x1dHRlcl9hY3Rvcl9tZXRhX2dldF90eXBlICgpIildCistCVtWZXJzaW9u IChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIEFjdG9yTWV0YSA6IEdM aWIuSW5pdGlhbGx5VW5vd25lZCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24g PSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgQWN0b3JNZXRhICgpOworKwkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuNCIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfYWN0b3IgKCk7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgYm9vbCBnZXRfZW5hYmxl ZCAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB1bm93bmVkIHN0 cmluZyBnZXRfbmFtZSAoKTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB2b2lk IHNldF9hY3RvciAoQ2x1dHRlci5BY3Rvcj8gYWN0b3IpOworLQkJcHVibGljIHZvaWQgc2V0X2Vu YWJsZWQgKGJvb2wgaXNfZW5hYmxlZCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisr CQlwdWJsaWMgdmlydHVhbCB2b2lkIHNldF9lbmFibGVkIChib29sIGlzX2VuYWJsZWQpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHZvaWQgc2V0X25hbWUgKHN0cmlu ZyBuYW1lKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBDbHV0dGVy LkFjdG9yIGFjdG9yIHsgZ2V0OyB9CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlw dWJsaWMgYm9vbCBlbmFibGVkIHsgZ2V0OyBzZXQ7IH0KKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjQiKV0KKyAJCXB1YmxpYyBzdHJpbmcgbmFtZSB7IGdldDsgc2V0OyB9CisgCX0KKysJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0 dGVyX2FjdG9yX25vZGVfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIEFjdG9yTm9kZSA6 IENsdXR0ZXIuUGFpbnROb2RlIHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJQYWludE5vZGUqIildCisrCQlwdWJsaWMgQWN0b3JOb2Rl IChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYWxpZ25fY29uc3RyYWlu dF9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBj bGFzcyBBbGlnbkNvbnN0cmFpbnQgOiBDbHV0dGVyLkNvbnN0cmFpbnQgeworQEAgLTUzODAsODEg KzUyNzYsMTggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIEFsaWduQ29uc3RyYWlu dCAoQ2x1dHRlci5BY3Rvcj8gc291cmNlLCBDbHV0dGVyLkFsaWduQXhpcyBheGlzLCBmbG9hdCBm YWN0b3IpOworIAkJcHVibGljIENsdXR0ZXIuQWxpZ25BeGlzIGdldF9hbGlnbl9heGlzICgpOwor IAkJcHVibGljIGZsb2F0IGdldF9mYWN0b3IgKCk7CisrCQlwdWJsaWMgdm9pZCBnZXRfcGl2b3Rf cG9pbnQgKG91dCB1bm93bmVkIEdyYXBoZW5lLlBvaW50IHBpdm90X3BvaW50KTsKKyAJCXB1Ymxp YyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3NvdXJjZSAoKTsKKyAJCXB1YmxpYyB2b2lkIHNl dF9hbGlnbl9heGlzIChDbHV0dGVyLkFsaWduQXhpcyBheGlzKTsKKyAJCXB1YmxpYyB2b2lkIHNl dF9mYWN0b3IgKGZsb2F0IGZhY3Rvcik7CisrCQlwdWJsaWMgdm9pZCBzZXRfcGl2b3RfcG9pbnQg KEdyYXBoZW5lLlBvaW50IHBpdm90X3BvaW50KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9zb3VyY2Ug KENsdXR0ZXIuQWN0b3I/IHNvdXJjZSk7CisgCQlwdWJsaWMgQ2x1dHRlci5BbGlnbkF4aXMgYWxp Z25fYXhpcyB7IGdldDsgc2V0IGNvbnN0cnVjdDsgfQorIAkJcHVibGljIGZsb2F0IGZhY3RvciB7 IGdldDsgc2V0IGNvbnN0cnVjdDsgfQorKwkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlwdWJsaWMg R3JhcGhlbmUuUG9pbnQgcGl2b3RfcG9pbnQgeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJcHVibGlj IENsdXR0ZXIuQWN0b3Igc291cmNlIHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9CisgCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJj bHV0dGVyX2FscGhhX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBj bGFzcyBBbHBoYSA6IEdMaWIuSW5pdGlhbGx5VW5vd25lZCwgQ2x1dHRlci5TY3JpcHRhYmxlIHsK Ky0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXB1YmxpYyBB bHBoYSAoKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBBbHBoYS5mdWxsIChDbHV0dGVy LlRpbWVsaW5lIHRpbWVsaW5lLCB1bG9uZyBtb2RlKTsKKy0JCXB1YmxpYyBkb3VibGUgZ2V0X2Fs cGhhICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHVsb25nIGdl dF9tb2RlICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5UaW1lbGluZSBnZXRfdGltZWxp bmUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgc3RhdGljIHVs b25nIHJlZ2lzdGVyX2Nsb3N1cmUgKEdMaWIuQ2xvc3VyZSBjbG9zdXJlKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdWxvbmcgcmVnaXN0ZXJfZnVuYyAo Q2x1dHRlci5BbHBoYUZ1bmMgZnVuYyk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCist CQlwdWJsaWMgdm9pZCBzZXRfY2xvc3VyZSAoR0xpYi5DbG9zdXJlIGNsb3N1cmUpOworLQkJcHVi bGljIHZvaWQgc2V0X2Z1bmMgKG93bmVkIENsdXR0ZXIuQWxwaGFGdW5jIGZ1bmMpOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X21vZGUgKHVsb25nIG1v ZGUpOworLQkJcHVibGljIHZvaWQgc2V0X3RpbWVsaW5lIChDbHV0dGVyLlRpbWVsaW5lIHRpbWVs aW5lKTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBBbHBoYS53aXRoX2Z1bmMgKENsdXR0 ZXIuVGltZWxpbmUgdGltZWxpbmUsIG93bmVkIENsdXR0ZXIuQWxwaGFGdW5jIGZ1bmMpOworLQkJ cHVibGljIGRvdWJsZSBhbHBoYSB7IGdldDsgfQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIHVsb25nIG1vZGUgeyBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KKy0JCXB1Ymxp YyBDbHV0dGVyLlRpbWVsaW5lIHRpbWVsaW5lIHsgZ2V0OyBzZXQ7IH0KKy0JfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0 ZXJfYW5pbWF0aW9uX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBj bGFzcyBBbmltYXRpb24gOiBHTGliLk9iamVjdCwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXB1YmxpYyBBbmltYXRp b24gKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlvbiBiaW5kIChzdHJpbmcg cHJvcGVydHlfbmFtZSwgR0xpYi5WYWx1ZSBmaW5hbCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0 dGVyLkFuaW1hdGlvbiBiaW5kX2ludGVydmFsIChzdHJpbmcgcHJvcGVydHlfbmFtZSwgb3duZWQg Q2x1dHRlci5JbnRlcnZhbCBpbnRlcnZhbCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IHVub3duZWQgQ2x1dHRlci5BbHBoYSBnZXRfYWxwaGEgKCk7CistCQlwdWJsaWMgdWludCBnZXRf ZHVyYXRpb24gKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkludGVydmFsIGdldF9pbnRl cnZhbCAoc3RyaW5nIHByb3BlcnR5X25hbWUpOworLQkJcHVibGljIGJvb2wgZ2V0X2xvb3AgKCk7 CistCQlwdWJsaWMgdWxvbmcgZ2V0X21vZGUgKCk7CistCQlwdWJsaWMgdW5vd25lZCBHTGliLk9i amVjdCBnZXRfb2JqZWN0ICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5UaW1lbGluZSBn ZXRfdGltZWxpbmUgKCk7CistCQlwdWJsaWMgYm9vbCBoYXNfcHJvcGVydHkgKHN0cmluZyBwcm9w ZXJ0eV9uYW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGEg KENsdXR0ZXIuQWxwaGEgYWxwaGEpOworLQkJcHVibGljIHZvaWQgc2V0X2R1cmF0aW9uICh1aW50 IG1zZWNzKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9sb29wIChib29sIGxvb3ApOworLQkJcHVibGlj IHZvaWQgc2V0X21vZGUgKHVsb25nIG1vZGUpOworLQkJcHVibGljIHZvaWQgc2V0X29iamVjdCAo R0xpYi5PYmplY3Qgb2JqZWN0KTsKKy0JCXB1YmxpYyB2b2lkIHNldF90aW1lbGluZSAoQ2x1dHRl ci5UaW1lbGluZT8gdGltZWxpbmUpOworLQkJcHVibGljIHZvaWQgdW5iaW5kX3Byb3BlcnR5IChz dHJpbmcgcHJvcGVydHlfbmFtZSk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFuaW1hdGlv biB1cGRhdGUgKHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVlIGZpbmFsKTsKKy0JCXB1 YmxpYyB2b2lkIHVwZGF0ZV9pbnRlcnZhbCAoc3RyaW5nIHByb3BlcnR5X25hbWUsIENsdXR0ZXIu SW50ZXJ2YWwgaW50ZXJ2YWwpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBDbHV0dGVy LkFscGhhIGFscGhhIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyB1aW50IGR1cmF0aW9uIHsgZ2V0 OyBzZXQ7IH0KKy0JCXB1YmxpYyBib29sIGxvb3AgeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIHVs b25nIG1vZGUgeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIEdMaWIuT2JqZWN0IG9iamVjdCB7IGdl dDsgc2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5UaW1lbGluZSB0aW1lbGluZSB7IGdldDsgc2V0 OyB9CistCQlbSGFzRW1pdHRlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGNvbXBs ZXRlZCAoKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHN0YXJ0ZWQgKCk7CistCX0K KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaGFzX3R5 cGVfaWQgPSBmYWxzZSldCisgCVtDb21wYWN0XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIild CitAQCAtNTQ2NywzNyArNTMwMCwxNCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCX0KKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJj bHV0dGVyX2JhY2tlbmRfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIp XQorLQlwdWJsaWMgY2xhc3MgQmFja2VuZCA6IEdMaWIuT2JqZWN0IHsKKysJcHVibGljIGFic3Ry YWN0IGNsYXNzIEJhY2tlbmQgOiBHTGliLk9iamVjdCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgQmFja2VuZCAoKTsKKy0JCVtOb1dy YXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFkZF9vcHRpb25zIChHTGliLk9wdGlvbkdy b3VwIGdyb3VwKTsKKy0JCXB1YmxpYyB2b2lkIGJlbGxfbm90aWZ5ICgpOworLQkJW05vV3JhcHBl cl0KKy0JCXB1YmxpYyB2aXJ0dWFsIGJvb2wgY3JlYXRlX2NvbnRleHQgKCkgdGhyb3dzIEdMaWIu RXJyb3I7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVy LlN0YWdlV2luZG93IGNyZWF0ZV9zdGFnZSAoQ2x1dHRlci5TdGFnZSB3cmFwcGVyKSB0aHJvd3Mg R0xpYi5FcnJvcjsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGVuc3Vy ZV9jb250ZXh0IChDbHV0dGVyLlN0YWdlIHN0YWdlKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJs aWMgdmlydHVhbCB1bm93bmVkIENsdXR0ZXIuRGV2aWNlTWFuYWdlciBnZXRfZGV2aWNlX21hbmFn ZXIgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgQ2x1dHRlci5GZWF0dXJl RmxhZ3MgZ2V0X2ZlYXR1cmVzICgpOworKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5TZWF0IGdl dF9kZWZhdWx0X3NlYXQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJs aWMgdW5vd25lZCBDYWlyby5Gb250T3B0aW9ucyBnZXRfZm9udF9vcHRpb25zICgpOworIAkJcHVi bGljIHVub3duZWQgQ2x1dHRlci5JbnB1dE1ldGhvZCBnZXRfaW5wdXRfbWV0aG9kICgpOworLQkJ cHVibGljIHVub3duZWQgQ2x1dHRlci5LZXltYXAgZ2V0X2tleW1hcCAoKTsKKyAJCXB1YmxpYyBk b3VibGUgZ2V0X3Jlc29sdXRpb24gKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1 YWwgdm9pZCBpbml0X2V2ZW50cyAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVh bCB2b2lkIGluaXRfZmVhdHVyZXMgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1 YWwgYm9vbCBwb3N0X3BhcnNlICgpIHRocm93cyBHTGliLkVycm9yOworLQkJW05vV3JhcHBlcl0K Ky0JCXB1YmxpYyB2aXJ0dWFsIGJvb2wgcHJlX3BhcnNlICgpIHRocm93cyBHTGliLkVycm9yOwor LQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcmVkcmF3IChDbHV0dGVyLlN0 YWdlIHN0YWdlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KKyAJCXB1YmxpYyB2b2lk IHNldF9mb250X29wdGlvbnMgKENhaXJvLkZvbnRPcHRpb25zIG9wdGlvbnMpOworIAkJcHVibGlj IHZvaWQgc2V0X2lucHV0X21ldGhvZCAoQ2x1dHRlci5JbnB1dE1ldGhvZCBtZXRob2QpOworQEAg LTU1MDgsOTUgKzUzMTgsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNCIpXQorIAkJcHVibGljIHNpZ25hbCB2b2lkIHNldHRpbmdzX2NoYW5nZWQgKCk7 CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwg dHlwZV9pZCA9ICJjbHV0dGVyX2JlaGF2aW91cl9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS42Iiwgc2luY2UgPSAiMC4y IildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBCZWhhdmlvdXIgOiBHTGliLk9iamVjdCwgQ2x1 dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlKV0KKy0JCXByb3RlY3RlZCBCZWhhdmlvdXIgKCk7CistCQlwdWJsaWMgdm9pZCBhY3RvcnNf Zm9yZWFjaCAoQ2x1dHRlci5CZWhhdmlvdXJGb3JlYWNoRnVuYyBmdW5jKTsKKy0JCVtOb1dyYXBw ZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGFscGhhX25vdGlmeSAoZG91YmxlIGFscGhhX3Zh bHVlKTsKKy0JCXB1YmxpYyB2b2lkIGFwcGx5IChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCXB1 YmxpYyBHTGliLlNMaXN0PHdlYWsgQ2x1dHRlci5BY3Rvcj4gZ2V0X2FjdG9ycyAoKTsKKy0JCXB1 YmxpYyB1bm93bmVkIENsdXR0ZXIuQWxwaGEgZ2V0X2FscGhhICgpOworLQkJcHVibGljIGludCBn ZXRfbl9hY3RvcnMgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9udGhf YWN0b3IgKGludCBpbmRleF8pOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVi bGljIGJvb2wgaXNfYXBwbGllZCAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CistCQlwdWJsaWMgdm9p ZCByZW1vdmUgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAu NCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX2FsbCAoKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9h bHBoYSAoQ2x1dHRlci5BbHBoYSBhbHBoYSk7CistCQlwdWJsaWMgQ2x1dHRlci5BbHBoYSBhbHBo YSB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMg dmlydHVhbCBzaWduYWwgdm9pZCBhcHBsaWVkIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHJl bW92ZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9iZWhhdmlvdXJf ZGVwdGhfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuNiIsIHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgY2xhc3MgQmVo YXZpb3VyRGVwdGggOiBDbHV0dGVyLkJlaGF2aW91ciwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKy0J CVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJC ZWhhdmlvdXIqIildCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgQmVo YXZpb3VyRGVwdGggKENsdXR0ZXIuQWxwaGE/IGFscGhhLCBpbnQgZGVwdGhfc3RhcnQsIGludCBk ZXB0aF9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQg Z2V0X2JvdW5kcyAob3V0IGludCBkZXB0aF9zdGFydCwgb3V0IGludCBkZXB0aF9lbmQpOworLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2JvdW5kcyAoaW50 IGRlcHRoX3N0YXJ0LCBpbnQgZGVwdGhfZW5kKTsKKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJ W1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIGludCBkZXB0aF9lbmQgeyBnZXQ7 IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40 IildCistCQlwdWJsaWMgaW50IGRlcHRoX3N0YXJ0IHsgZ2V0OyBzZXQ7IH0KKy0JfQorLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNs dXR0ZXJfYmVoYXZpb3VyX29wYWNpdHlfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuNiIsIHNpbmNlID0gIjAuMiIpXQor LQlwdWJsaWMgY2xhc3MgQmVoYXZpb3VyT3BhY2l0eSA6IENsdXR0ZXIuQmVoYXZpb3VyLCBDbHV0 dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UsIHR5cGUgPSAiQ2x1dHRlckJlaGF2aW91cioiKV0KKy0JCXB1YmxpYyBCZWhhdmlvdXJPcGFj aXR5IChDbHV0dGVyLkFscGhhPyBhbHBoYSwgdWludDggb3BhY2l0eV9zdGFydCwgdWludDggb3Bh Y2l0eV9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQg Z2V0X2JvdW5kcyAob3V0IHVpbnQ4IG9wYWNpdHlfc3RhcnQsIG91dCB1aW50OCBvcGFjaXR5X2Vu ZCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgdm9pZCBzZXRfYm91 bmRzICh1aW50OCBvcGFjaXR5X3N0YXJ0LCB1aW50OCBvcGFjaXR5X2VuZCk7CistCQlbTm9BY2Nl c3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB1aW50IG9wYWNpdHlfZW5kIHsgZ2V0OyBzZXQ7IH0KKy0J CVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIHVpbnQgb3BhY2l0eV9zdGFydCB7IGdldDsg c2V0OyB9CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JlaGF2aW91cl9zY2FsZV9nZXRfdHlwZSAoKSIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS42Iiwg c2luY2UgPSAiMC4yIildCistCXB1YmxpYyBjbGFzcyBCZWhhdmlvdXJTY2FsZSA6IENsdXR0ZXIu QmVoYXZpb3VyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckJlaGF2aW91cioiKV0KKy0JCXB1Ymxp YyBCZWhhdmlvdXJTY2FsZSAoQ2x1dHRlci5BbHBoYT8gYWxwaGEsIGRvdWJsZSB4X3NjYWxlX3N0 YXJ0LCBkb3VibGUgeV9zY2FsZV9zdGFydCwgZG91YmxlIHhfc2NhbGVfZW5kLCBkb3VibGUgeV9z Y2FsZV9lbmQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQkJcHVibGljIHZvaWQg Z2V0X2JvdW5kcyAob3V0IGRvdWJsZSB4X3NjYWxlX3N0YXJ0LCBvdXQgZG91YmxlIHlfc2NhbGVf c3RhcnQsIG91dCBkb3VibGUgeF9zY2FsZV9lbmQsIG91dCBkb3VibGUgeV9zY2FsZV9lbmQpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2JvdW5kcyAo ZG91YmxlIHhfc2NhbGVfc3RhcnQsIGRvdWJsZSB5X3NjYWxlX3N0YXJ0LCBkb3VibGUgeF9zY2Fs ZV9lbmQsIGRvdWJsZSB5X3NjYWxlX2VuZCk7CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBkb3VibGUgeF9zY2FsZV9lbmQgeyBn ZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAi MC42IildCistCQlwdWJsaWMgZG91YmxlIHhfc2NhbGVfc3RhcnQgeyBnZXQ7IHNldDsgfQorLQkJ W05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJs aWMgZG91YmxlIHlfc2NhbGVfZW5kIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9k XQorLQkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIGRvdWJsZSB5X3NjYWxl X3N0YXJ0IHsgZ2V0OyBzZXQ7IH0KKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYmluX2xheW91dF9nZXRfdHlw ZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCXB1YmxpYyBjbGFzcyBCaW5M YXlvdXQgOiBDbHV0dGVyLkxheW91dE1hbmFnZXIgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckxheW91dE1hbmFnZXIqIildCisgCQlw dWJsaWMgQmluTGF5b3V0IChDbHV0dGVyLkJpbkFsaWdubWVudCB4X2FsaWduID0gQ2x1dHRlci5C aW5BbGlnbm1lbnQuU1RBUlQsIENsdXR0ZXIuQmluQWxpZ25tZW50IHlfYWxpZ24gPSBDbHV0dGVy LkJpbkFsaWdubWVudC5TVEFSVCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQg YWRkIChDbHV0dGVyLkFjdG9yIGNoaWxkLCBDbHV0dGVyLkJpbkFsaWdubWVudCB4X2FsaWduLCBD bHV0dGVyLkJpbkFsaWdubWVudCB5X2FsaWduKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJs aWMgdm9pZCBnZXRfYWxpZ25tZW50IChDbHV0dGVyLkFjdG9yPyBjaGlsZCwgb3V0IENsdXR0ZXIu QmluQWxpZ25tZW50IHhfYWxpZ24sIG91dCBDbHV0dGVyLkJpbkFsaWdubWVudCB5X2FsaWduKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBzZXRfYWxpZ25tZW50IChDbHV0dGVy LkFjdG9yPyBjaGlsZCwgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeF9hbGlnbiwgQ2x1dHRlci5CaW5B bGlnbm1lbnQgeV9hbGlnbik7CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4y IildCisgCQlwdWJsaWMgQ2x1dHRlci5CaW5BbGlnbm1lbnQgeF9hbGlnbiB7IGdldDsgc2V0OyB9 CitAQCAtNTY0NCw5OCArNTM3MCwyOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbQ0NvZGUg KGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyRWZmZWN0KiIp XQorIAkJcHVibGljIEJsdXJFZmZlY3QgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2JveF9nZXRfdHlw ZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBjbGFzcyBCb3gg OiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJsZSwgQ2x1 dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0NvZGUgKGhhc19jb25z dHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNl ID0gIjEuMiIpXQorLQkJcHVibGljIEJveCAoQ2x1dHRlci5MYXlvdXRNYW5hZ2VyIG1hbmFnZXIp OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGdldF9jb2xvciAo KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkxheW91dE1h bmFnZXIgZ2V0X2xheW91dF9tYW5hZ2VyICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1Ymxp YyB2b2lkIHBhY2sgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIC4uLik7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIp XQorLQkJcHVibGljIHZvaWQgcGFja19hZnRlciAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRl ci5BY3Rvcj8gc2libGluZywgLi4uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9p ZCBwYWNrX2F0IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBpbnQgcG9zaXRpb24sIC4uLik7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNp bmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgcGFja19iZWZvcmUgKENsdXR0ZXIuQWN0b3Ig YWN0b3IsIENsdXR0ZXIuQWN0b3I/IHNpYmxpbmcsIC4uLik7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMiIpXQor LQkJcHVibGljIHZvaWQgcGFja3YgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIFtDQ29kZSAoYXJyYXlf bGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAxLjUsIGFy cmF5X2xlbmd0aF90eXBlID0gImd1aW50IildIHN0cmluZ1tdIHByb3BlcnRpZXMsIFtDQ29kZSAo YXJyYXlfbGVuZ3RoX2NuYW1lID0gIm5fcHJvcGVydGllcyIsIGFycmF5X2xlbmd0aF9wb3MgPSAx LjUsIGFycmF5X2xlbmd0aF90eXBlID0gImd1aW50IildIEdMaWIuVmFsdWVbXSB2YWx1ZXMpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi LCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2xvciAoQ2x1dHRlci5Db2xv cj8gY29sb3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXlvdXRf bWFuYWdlciAoQ2x1dHRlci5MYXlvdXRNYW5hZ2VyIG1hbmFnZXIpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIi KV0KKy0JCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGNvbG9yIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0Fj Y2Vzc29yTWV0aG9kXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBib29sIGNvbG9yX3Nl dCB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5MYXlvdXRNYW5hZ2VyIGxheW91dF9t YW5hZ2VyIHsgZ2V0OyBzZXQ7IH0KKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfYm94X2xheW91dF9nZXRfdHlw ZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCXB1YmxpYyBjbGFzcyBCb3hM YXlvdXQgOiBDbHV0dGVyLkxheW91dE1hbmFnZXIgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0 X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckxheW91dE1hbmFnZXIqIildCisgCQlw dWJsaWMgQm94TGF5b3V0ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIGdl dF9hbGlnbm1lbnQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIG91dCBDbHV0dGVyLkJveEFsaWdubWVu dCB4X2FsaWduLCBvdXQgQ2x1dHRlci5Cb3hBbGlnbm1lbnQgeV9hbGlnbik7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuMiIpXQorLQkJcHVibGljIHVpbnQgZ2V0X2Vhc2luZ19kdXJhdGlvbiAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS4yIildCistCQlwdWJsaWMgdWxvbmcgZ2V0X2Vhc2luZ19tb2RlICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjIiKV0KKy0JCXB1YmxpYyBib29sIGdldF9leHBhbmQgKENsdXR0ZXIuQWN0b3IgYWN0b3Ip OworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9maWxsIChDbHV0dGVyLkFj dG9yIGFjdG9yLCBvdXQgYm9vbCB4X2ZpbGwsIG91dCBib29sIHlfZmlsbCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgYm9vbCBnZXRfaG9tb2dlbmVvdXMgKCk7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIENsdXR0ZXIuT3JpZW50YXRp b24gZ2V0X29yaWVudGF0aW9uICgpOworIAkJcHVibGljIGJvb2wgZ2V0X3BhY2tfc3RhcnQgKCk7 CisgCQlwdWJsaWMgdWludCBnZXRfc3BhY2luZyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlw dWJsaWMgYm9vbCBnZXRfdXNlX2FuaW1hdGlvbnMgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJ cHVibGljIGJvb2wgZ2V0X3ZlcnRpY2FsICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1Ymxp YyB2b2lkIHBhY2sgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGJvb2wgZXhwYW5kLCBib29sIHhfZmls bCwgYm9vbCB5X2ZpbGwsIENsdXR0ZXIuQm94QWxpZ25tZW50IHhfYWxpZ24sIENsdXR0ZXIuQm94 QWxpZ25tZW50IHlfYWxpZ24pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNl dF9hbGlnbm1lbnQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0ZXIuQm94QWxpZ25tZW50IHhf YWxpZ24sIENsdXR0ZXIuQm94QWxpZ25tZW50IHlfYWxpZ24pOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9lYXNpbmdfZHVyYXRpb24gKHVpbnQgbXNlY3MpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9lYXNpbmdfbW9kZSAodWxvbmcgbW9kZSk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgc2V0X2V4cGFuZCAoQ2x1dHRlci5B Y3RvciBhY3RvciwgYm9vbCBleHBhbmQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB2 b2lkIHNldF9maWxsIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBib29sIHhfZmlsbCwgYm9vbCB5X2Zp bGwpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2hv bW9nZW5lb3VzIChib29sIGhvbW9nZW5lb3VzKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEy IildCisgCQlwdWJsaWMgdm9pZCBzZXRfb3JpZW50YXRpb24gKENsdXR0ZXIuT3JpZW50YXRpb24g b3JpZW50YXRpb24pOworIAkJcHVibGljIHZvaWQgc2V0X3BhY2tfc3RhcnQgKGJvb2wgcGFja19z dGFydCk7CisgCQlwdWJsaWMgdm9pZCBzZXRfc3BhY2luZyAodWludCBzcGFjaW5nKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS4yIildCistCQlwdWJsaWMgdm9pZCBzZXRfdXNlX2FuaW1hdGlvbnMgKGJvb2wgYW5p bWF0ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgc2V0X3ZlcnRpY2FsIChi b29sIHZlcnRpY2FsKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdWludCBlYXNpbmdf ZHVyYXRpb24geyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyB1bG9u ZyBlYXNpbmdfbW9kZSB7IGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40Iild CisgCQlwdWJsaWMgYm9vbCBob21vZ2VuZW91cyB7IGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIENsdXR0ZXIuT3JpZW50YXRpb24gb3JpZW50YXRp b24geyBnZXQ7IHNldDsgfQorIAkJcHVibGljIGJvb2wgcGFja19zdGFydCB7IGdldDsgc2V0OyB9 CisgCQlwdWJsaWMgdWludCBzcGFjaW5nIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIild CistCQlwdWJsaWMgYm9vbCB1c2VfYW5pbWF0aW9ucyB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuMiIpXQorLQkJcHVibGljIGJvb2wgdmVydGljYWwgeyBnZXQ7IHNldDsgfQorIAl9CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAi Y2x1dHRlcl9icmlnaHRuZXNzX2NvbnRyYXN0X2VmZmVjdF9nZXRfdHlwZSAoKSIpXQorIAlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTU3NDksOSArNTQwNiw5IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9jb250cmFzdCAoZmxvYXQgY29udHJhc3QpOwor IAkJcHVibGljIHZvaWQgc2V0X2NvbnRyYXN0X2Z1bGwgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4s IGZsb2F0IGJsdWUpOworIAkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgQ2x1dHRlci5D b2xvciBicmlnaHRuZXNzIHsgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyBDbHV0dGVyLkNvbG9yIGJy aWdodG5lc3MgeyBvd25lZCBnZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCistCQlw dWJsaWMgQ2x1dHRlci5Db2xvciBjb250cmFzdCB7IGdldDsgc2V0OyB9CisrCQlwdWJsaWMgQ2x1 dHRlci5Db2xvciBjb250cmFzdCB7IG93bmVkIGdldDsgc2V0OyB9CisgCX0KKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaGFzX3R5cGVfaWQgPSBmYWxz ZSldCisgCVtDb21wYWN0XQorQEAgLTU3NzAsMzcgKzU0MjcsNiBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlwdWJsaWMgZmxvYXQgeDsKKyAJCXB1YmxpYyBmbG9hdCB5OworIAl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9jYWlyb190ZXh0dXJlX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCXB1 YmxpYyBjbGFzcyBDYWlyb1RleHR1cmUgOiBDbHV0dGVyLlRleHR1cmUsIEF0ay5JbXBsZW1lbnRv ciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwgQ2x1dHRlci5TY3JpcHRh YmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0g IkNsdXR0ZXJBY3RvcioiKV0KKy0JCXB1YmxpYyBDYWlyb1RleHR1cmUgKHVpbnQgd2lkdGgsIHVp bnQgaGVpZ2h0KTsKKy0JCXB1YmxpYyB2b2lkIGNsZWFyICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIENhaXJvLkNvbnRleHQgY3JlYXRlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjEuMCIpXQorLQkJ cHVibGljIENhaXJvLkNvbnRleHQgY3JlYXRlX3JlZ2lvbiAoaW50IHhfb2Zmc2V0LCBpbnQgeV9v ZmZzZXQsIGludCB3aWR0aCwgaW50IGhlaWdodCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44 IildCistCQlwdWJsaWMgYm9vbCBnZXRfYXV0b19yZXNpemUgKCk7CistCQlwdWJsaWMgdm9pZCBn ZXRfc3VyZmFjZV9zaXplIChvdXQgdWludCB3aWR0aCwgb3V0IHVpbnQgaGVpZ2h0KTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIGludmFsaWRhdGUgKCk7Cist CQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBpbnZhbGlkYXRlX3Jl Y3RhbmdsZSAoQ2Fpcm8uUmVjdGFuZ2xlSW50PyByZWN0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hdXRvX3Jlc2l6ZSAoYm9vbCB2YWx1ZSk7Cist CQlwdWJsaWMgdm9pZCBzZXRfc3VyZmFjZV9zaXplICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCk7 CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgYm9vbCBhdXRvX3Jlc2l6 ZSB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyB1aW50IHN1 cmZhY2VfaGVpZ2h0IHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVi bGljIHVpbnQgc3VyZmFjZV93aWR0aCB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS42IildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgQ2Fpcm8uU3VyZmFjZSBjcmVhdGVf c3VyZmFjZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0g IjEuOCIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wgZHJhdyAoQ2Fpcm8uQ29udGV4 dCBjcik7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2NhbnZhc19nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgY2xhc3MgQ2FudmFzIDogR0xpYi5PYmplY3Qs IENsdXR0ZXIuQ29udGVudCB7CitAQCAtNTgyNywxNyArNTQ1MywyMCBAQCBuYW1lc3BhY2UgQ2x1 dHRlciB7CisgCQlwdWJsaWMgQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyIHsgZ2V0OyBjb25z dHJ1Y3Q7IH0KKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfY2xpY2tfYWN0aW9uX2dldF90eXBlICgpIildCist CVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJcHVibGljIGNsYXNzIENsaWNrQWN0aW9uIDog Q2x1dHRlci5BY3Rpb24geworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UsIHR5cGUgPSAiQ2x1dHRlckFjdGlvbioiKV0KKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQi KV0KKyAJCXB1YmxpYyBDbGlja0FjdGlvbiAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQi KV0KKyAJCXB1YmxpYyB1aW50IGdldF9idXR0b24gKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS44IildCisgCQlwdWJsaWMgdm9pZCBnZXRfY29vcmRzIChvdXQgZmxvYXQgcHJlc3NfeCwgb3V0 IGZsb2F0IHByZXNzX3kpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGlj IENsdXR0ZXIuTW9kaWZpZXJUeXBlIGdldF9zdGF0ZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHJlbGVhc2UgKCk7CisgCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBib29sIGhlbGQgeyBn ZXQ7IH0KKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIp XQorQEAgLTU4NDYsNyArNTQ3NSw5IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyBpbnQgbG9uZ19wcmVzc190aHJlc2hvbGQgeyBn ZXQ7IHNldDsgfQorIAkJW05vQWNjZXNzb3JNZXRob2RdCisrCQlbVmVyc2lvbiAoc2luY2UgPSAi MS40IildCisgCQlwdWJsaWMgYm9vbCBwcmVzc2VkIHsgZ2V0OyB9CisrCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS40IildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBjbGlja2VkIChDbHV0 dGVyLkFjdG9yIGFjdG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1Ymxp YyB2aXJ0dWFsIHNpZ25hbCBib29sIGxvbmdfcHJlc3MgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENs dXR0ZXIuTG9uZ1ByZXNzU3RhdGUgc3RhdGUpOworQEAgLTU4ODgsOCArNTUxOSw3IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCXByb3RlY3RlZCBDb25zdHJhaW50ICgpOworIAkJW05vV3JhcHBl cl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgdXBkYXRlX2FsbG9jYXRpb24gKENsdXR0ZXIuQWN0 b3IgYWN0b3IsIENsdXR0ZXIuQWN0b3JCb3ggYWxsb2NhdGlvbik7CistCQlbTm9XcmFwcGVyXQor LQkJcHVibGljIHZpcnR1YWwgdm9pZCB1cGRhdGVfcHJlZmVycmVkX3NpemUgKENsdXR0ZXIuQWN0 b3IgYWN0b3IsIENsdXR0ZXIuT3JpZW50YXRpb24gZGlyZWN0aW9uLCBmbG9hdCBmb3Jfc2l6ZSwg ZmxvYXQgbWluaW11bV9zaXplLCBmbG9hdCBuYXR1cmFsX3NpemUpOworKwkJcHVibGljIHZpcnR1 YWwgdm9pZCB1cGRhdGVfcHJlZmVycmVkX3NpemUgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIENsdXR0 ZXIuT3JpZW50YXRpb24gZGlyZWN0aW9uLCBmbG9hdCBmb3Jfc2l6ZSwgcmVmIGZsb2F0IG1pbmlt dW1fc2l6ZSwgcmVmIGZsb2F0IG5hdHVyYWxfc2l6ZSk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisg CVtDb21wYWN0XQorQEAgLTU4OTgsNiArNTUyOCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJ CXB1YmxpYyB3ZWFrIENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlOworIAkJcHVibGljIENsdXR0 ZXIuRXZlbnRGbGFncyBmbGFnczsKKyAJCXB1YmxpYyB3ZWFrIENsdXR0ZXIuQWN0b3IgcmVsYXRl ZDsKKysJCXB1YmxpYyB3ZWFrIENsdXR0ZXIuRXZlbnRTZXF1ZW5jZSBzZXF1ZW5jZTsKKyAJCXB1 YmxpYyB3ZWFrIENsdXR0ZXIuQWN0b3Igc291cmNlOworIAkJcHVibGljIHdlYWsgQ2x1dHRlci5T dGFnZSBzdGFnZTsKKyAJCXB1YmxpYyB1aW50MzIgdGltZTsKK0BAIC01OTMxLDk4ICs1NTYyLDIx IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9mYWN0b3IgKGRvdWJs ZSBmYWN0b3IpOworIAkJcHVibGljIGRvdWJsZSBmYWN0b3IgeyBnZXQ7IHNldDsgfQorIAl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQg PSAiY2x1dHRlcl9kZXZpY2VfbWFuYWdlcl9nZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4yIildCistCXB1YmxpYyBhYnN0cmFjdCBjbGFzcyBEZXZpY2VNYW5hZ2VyIDogR0xp Yi5PYmplY3QgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQor LQkJcHJvdGVjdGVkIERldmljZU1hbmFnZXIgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGlj IHZpcnR1YWwgdm9pZCBhZGRfZGV2aWNlIChDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZSk7Cist CQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgdm9pZCBhcHBseV9rYmRfYTExeV9zZXR0 aW5ncyAoQ2x1dHRlci5LYmRBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworLQkJW05vV3JhcHBlcl0K Ky0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgY29tcHJlc3NfbW90aW9uIChDbHV0dGVyLkV2ZW50IGV2 ZW50LCBDbHV0dGVyLkV2ZW50IHRvX2Rpc2NhcmQpOworLQkJcHVibGljIHZpcnR1YWwgQ2x1dHRl ci5WaXJ0dWFsSW5wdXREZXZpY2UgY3JlYXRlX3ZpcnR1YWxfZGV2aWNlIChDbHV0dGVyLklucHV0 RGV2aWNlVHlwZSBkZXZpY2VfdHlwZSk7CistCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENsdXR0 ZXIuSW5wdXREZXZpY2UgZ2V0X2NvcmVfZGV2aWNlIChDbHV0dGVyLklucHV0RGV2aWNlVHlwZSBk ZXZpY2VfdHlwZSk7CistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5EZXZpY2VNYW5h Z2VyIGdldF9kZWZhdWx0ICgpOworLQkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLklu cHV0RGV2aWNlIGdldF9kZXZpY2UgKGludCBkZXZpY2VfaWQpOworLQkJcHVibGljIHZvaWQgZ2V0 X2tiZF9hMTF5X3NldHRpbmdzIChDbHV0dGVyLktiZEExMXlTZXR0aW5ncyBzZXR0aW5ncyk7Cist CQlwdWJsaWMgdmlydHVhbCBDbHV0dGVyLlZpcnR1YWxEZXZpY2VUeXBlIGdldF9zdXBwb3J0ZWRf dmlydHVhbF9kZXZpY2VfdHlwZXMgKCk7CistCQlwdWJsaWMgR0xpYi5TTGlzdDx3ZWFrIENsdXR0 ZXIuSW5wdXREZXZpY2U+IGxpc3RfZGV2aWNlcyAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIEdMaWIu U0xpc3Q8Q2x1dHRlci5JbnB1dERldmljZT4gcGVla19kZXZpY2VzICgpOworLQkJW05vV3JhcHBl cl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgcmVtb3ZlX2RldmljZSAoQ2x1dHRlci5JbnB1dERl dmljZSBkZXZpY2UpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2Vs ZWN0X3N0YWdlX2V2ZW50cyAoQ2x1dHRlci5TdGFnZSBzdGFnZSk7CistCQlwdWJsaWMgdm9pZCBz ZXRfa2JkX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuS2JkQTExeVNldHRpbmdzIHNldHRpbmdzKTsK Ky0JCVtOb0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIENsdXR0ZXIuQmFja2VuZCBiYWNrZW5k IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBkZXZpY2Vf YWRkZWQgKENsdXR0ZXIuSW5wdXREZXZpY2UgZGV2aWNlKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9p ZCBkZXZpY2VfcmVtb3ZlZCAoQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UpOworLQkJcHVibGlj IHNpZ25hbCB2b2lkIGtiZF9hMTF5X2ZsYWdzX2NoYW5nZWQgKHVpbnQgc2V0dGluZ3NfZmxhZ3Ms IHVpbnQgY2hhbmdlZF9tYXNrKTsKKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBrYmRfYTExeV9tb2Rz X3N0YXRlX2NoYW5nZWQgKHVpbnQgbGF0Y2hlZF9tYXNrLCB1aW50IGxvY2tlZF9tYXNrKTsKKy0J CXB1YmxpYyBzaWduYWwgdm9pZCB0b29sX2NoYW5nZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb2Jq ZWN0LCBDbHV0dGVyLklucHV0RGV2aWNlVG9vbCBwMCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2RyYWdf YWN0aW9uX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JcHVi bGljIGNsYXNzIERyYWdBY3Rpb24gOiBDbHV0dGVyLkFjdGlvbiB7CistCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0aW9uKiIpXQorLQkJ cHVibGljIERyYWdBY3Rpb24gKCk7CistCQlwdWJsaWMgYm9vbCBnZXRfZHJhZ19hcmVhIChDbHV0 dGVyLlJlY3QgZHJhZ19hcmVhKTsKKy0JCXB1YmxpYyBDbHV0dGVyLkRyYWdBeGlzIGdldF9kcmFn X2F4aXMgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9kcmFnX2hhbmRs ZSAoKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9kcmFnX3RocmVzaG9sZCAob3V0IHVpbnQgeF90aHJl c2hvbGQsIG91dCB1aW50IHlfdGhyZXNob2xkKTsKKy0JCXB1YmxpYyB2b2lkIGdldF9tb3Rpb25f Y29vcmRzIChvdXQgZmxvYXQgbW90aW9uX3gsIG91dCBmbG9hdCBtb3Rpb25feSk7CistCQlwdWJs aWMgdm9pZCBnZXRfcHJlc3NfY29vcmRzIChvdXQgZmxvYXQgcHJlc3NfeCwgb3V0IGZsb2F0IHBy ZXNzX3kpOworLQkJcHVibGljIHZvaWQgc2V0X2RyYWdfYXJlYSAoQ2x1dHRlci5SZWN0PyBkcmFn X2FyZWEpOworLQkJcHVibGljIHZvaWQgc2V0X2RyYWdfYXhpcyAoQ2x1dHRlci5EcmFnQXhpcyBh eGlzKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9kcmFnX2hhbmRsZSAoQ2x1dHRlci5BY3Rvcj8gaGFu ZGxlKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9kcmFnX3RocmVzaG9sZCAoaW50IHhfdGhyZXNob2xk LCBpbnQgeV90aHJlc2hvbGQpOworLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIENsdXR0ZXIuUmVjdCBkcmFnX2FyZWEgeyBvd25l ZCBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMiIpXQorLQkJcHVibGljIGJvb2wgZHJhZ19hcmVhX3NldCB7IGdldDsgfQorLQkJcHVi bGljIENsdXR0ZXIuRHJhZ0F4aXMgZHJhZ19heGlzIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBD bHV0dGVyLkFjdG9yIGRyYWdfaGFuZGxlIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0 aG9kXQorLQkJcHVibGljIGludCB4X2RyYWdfdGhyZXNob2xkIHsgZ2V0OyBzZXQ7IH0KKy0JCVtO b0FjY2Vzc29yTWV0aG9kXQorLQkJcHVibGljIGludCB5X2RyYWdfdGhyZXNob2xkIHsgZ2V0OyBz ZXQ7IH0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGRyYWdfYmVnaW4gKENsdXR0ZXIu QWN0b3IgYWN0b3IsIGZsb2F0IGV2ZW50X3gsIGZsb2F0IGV2ZW50X3ksIENsdXR0ZXIuTW9kaWZp ZXJUeXBlIG1vZGlmaWVycyk7CistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBkcmFnX2Vu ZCAoQ2x1dHRlci5BY3RvciBhY3RvciwgZmxvYXQgZXZlbnRfeCwgZmxvYXQgZXZlbnRfeSwgQ2x1 dHRlci5Nb2RpZmllclR5cGUgbW9kaWZpZXJzKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2 b2lkIGRyYWdfbW90aW9uIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBmbG9hdCBkZWx0YV94LCBmbG9h dCBkZWx0YV95KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgdmly dHVhbCBzaWduYWwgYm9vbCBkcmFnX3Byb2dyZXNzIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBmbG9h dCBkZWx0YV94LCBmbG9hdCBkZWx0YV95KTsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfZHJvcF9hY3Rpb25f Z2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQlwdWJsaWMgY2xh c3MgRHJvcEFjdGlvbiA6IENsdXR0ZXIuQWN0aW9uIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVj dF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3Rpb24qIildCistCQlwdWJsaWMg RHJvcEFjdGlvbiAoKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIGNhbl9kcm9wIChD bHV0dGVyLkFjdG9yIGFjdG9yLCBmbG9hdCBldmVudF94LCBmbG9hdCBldmVudF95KTsKKy0JCXB1 YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGRyb3AgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGZsb2F0 IGV2ZW50X3gsIGZsb2F0IGV2ZW50X3kpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0K Ky0JCXB1YmxpYyBzaWduYWwgdm9pZCBkcm9wX2NhbmNlbCAoQ2x1dHRlci5BY3RvciBhY3Rvciwg ZmxvYXQgZXZlbnRfeCwgZmxvYXQgZXZlbnRfeSk7CistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwg dm9pZCBvdmVyX2luIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCXB1YmxpYyB2aXJ0dWFsIHNp Z25hbCB2b2lkIG92ZXJfb3V0IChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JfQorIAlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0 ZXJfZWZmZWN0X2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJ cHVibGljIGFic3RyYWN0IGNsYXNzIEVmZmVjdCA6IENsdXR0ZXIuQWN0b3JNZXRhIHsKKyAJCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBFZmZl Y3QgKCk7CisgCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIHZpcnR1YWwgYm9vbCBnZXRfcGFpbnRf dm9sdW1lIChDbHV0dGVyLlBhaW50Vm9sdW1lIHZvbHVtZSk7CisrCQlwdWJsaWMgdmlydHVhbCBi b29sIG1vZGlmeV9wYWludF92b2x1bWUgKENsdXR0ZXIuUGFpbnRWb2x1bWUgdm9sdW1lKTsKKyAJ CVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBhaW50IChDbHV0dGVyLkVmZmVj dFBhaW50RmxhZ3MgZmxhZ3MpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBwYWludCAoQ2x1dHRl ci5QYWludENvbnRleHQgcGFpbnRfY29udGV4dCwgQ2x1dHRlci5FZmZlY3RQYWludEZsYWdzIGZs YWdzKTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBpY2sgKENsdXR0 ZXIuRWZmZWN0UGFpbnRGbGFncyBmbGFncyk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBpY2sg KENsdXR0ZXIuUGlja0NvbnRleHQgcGlja19jb250ZXh0KTsKKyAJCVtOb1dyYXBwZXJdCistCQlw dWJsaWMgdmlydHVhbCB2b2lkIHBvc3RfcGFpbnQgKCk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lk IHBvc3RfcGFpbnQgKENsdXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRleHQpOworIAkJW05v V3JhcHBlcl0KKy0JCXB1YmxpYyB2aXJ0dWFsIGJvb2wgcHJlX3BhaW50ICgpOworKwkJcHVibGlj IHZpcnR1YWwgYm9vbCBwcmVfcGFpbnQgKENsdXR0ZXIuUGFpbnRDb250ZXh0IHBhaW50X2NvbnRl eHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZvaWQgcXVldWVf cmVwYWludCAoKTsKKyAJfQorQEAgLTYwMzMsOCArNTU4NywxMiBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlwdWJsaWMgQ2x1dHRlci5FdmVudFR5cGUgdHlwZTsKKyAJCVtDQ29kZSAoaGFzX2Nv bnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXB1YmxpYyBFdmVudCAoQ2x1dHRlci5FdmVu dFR5cGUgdHlwZSk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorKwkJcHVibGljIHN0 YXRpYyB1aW50IGFkZF9maWx0ZXIgKENsdXR0ZXIuU3RhZ2U/IHN0YWdlLCBbQ0NvZGUgKGRlbGVn YXRlX3RhcmdldF9wb3MgPSAyLjIsIGRlc3Ryb3lfbm90aWZ5X3BvcyA9IDIuMSldIG93bmVkIENs dXR0ZXIuRXZlbnRGaWx0ZXJGdW5jIGZ1bmMpOworIAkJcHVibGljIENsdXR0ZXIuRXZlbnQgY29w eSAoKTsKKyAJCXB1YmxpYyB2b2lkIGZyZWUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40 IildCisrCQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuRXZlbnQgQGdldCAoKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgZG91YmxlIGdldF9hbmdsZSAoQ2x1dHRlci5F dmVudCB0YXJnZXQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTYwNzMsNyAr NTYzMSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB1aW50IGdldF9tb2RlX2dy b3VwICgpOworIAkJcHVibGljIGJvb2wgZ2V0X3BhZF9ldmVudF9kZXRhaWxzIChvdXQgdWludCBu dW1iZXIsIG91dCB1aW50IG1vZGUsIG91dCBkb3VibGUgdmFsdWUpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9wb3NpdGlvbiAoQ2x1dHRlci5Qb2lu dCBwb3NpdGlvbik7CisrCQlwdWJsaWMgdm9pZCBnZXRfcG9zaXRpb24gKEdyYXBoZW5lLlBvaW50 IHBvc2l0aW9uKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB1bm93 bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3JlbGF0ZWQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorQEAgLTYxMDYsOCArNTY2NCwxMiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlw dWJsaWMgYm9vbCBoYXNfc2hpZnRfbW9kaWZpZXIgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMiIpXQorIAkJcHVibGljIGJvb2wgaXNfcG9pbnRlcl9lbXVsYXRlZCAoKTsKKysJCVtWZXJz aW9uIChzaW5jZSA9ICIwLjQiKV0KKysJCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkV2 ZW50IHBlZWsgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgdm9p ZCBwdXQgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorKwkJcHVibGljIHN0YXRp YyB2b2lkIHJlbW92ZV9maWx0ZXIgKHVpbnQgaWQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu OCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2J1dHRvbiAodWludDMyIGJ1dHRvbik7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS44IildCitAQCAtNjE0MCwxNiArNTcwMiw2IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9zdGF0ZSAoQ2x1dHRlci5Nb2RpZmllclR5cGUg c3RhdGUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZvaWQgc2V0 X3RpbWUgKHVpbnQzMiB0aW1lXyk7CistCQlwdWJsaWMgQ2x1dHRlci5BbnlFdmVudCBhbnkge1tD Q29kZSAoY25hbWUgPSAiKENsdXR0ZXJBbnlFdmVudCAqKSIpXSAgZ2V0OyB9CistCQlwdWJsaWMg Q2x1dHRlci5CdXR0b25FdmVudCBidXR0b24ge1tDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJCdXR0 b25FdmVudCAqKSIpXSAgZ2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5Dcm9zc2luZ0V2ZW50IGNy b3NzaW5nIHtbQ0NvZGUgKGNuYW1lID0gIihDbHV0dGVyQ3Jvc3NpbmdFdmVudCAqKSIpXSAgZ2V0 OyB9CistCQlwdWJsaWMgQ2x1dHRlci5LZXlFdmVudCBrZXkge1tDQ29kZSAoY25hbWUgPSAiKENs dXR0ZXJLZXlFdmVudCAqKSIpXSAgZ2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5Nb3Rpb25FdmVu dCBtb3Rpb24ge1tDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJNb3Rpb25FdmVudCAqKSIpXSAgZ2V0 OyB9CistCQlwdWJsaWMgQ2x1dHRlci5TY3JvbGxFdmVudCBzY3JvbGwge1tDQ29kZSAoY25hbWUg PSAiKENsdXR0ZXJTY3JvbGxFdmVudCAqKSIpXSAgZ2V0OyB9CistCQlwdWJsaWMgQ2x1dHRlci5T dGFnZVN0YXRlRXZlbnQgc3RhZ2Vfc3RhdGUge1tDQ29kZSAoY25hbWUgPSAiKENsdXR0ZXJTdGFn ZVN0YXRlRXZlbnQgKikiKV0gIGdldDsgfQorLQkJcHVibGljIENsdXR0ZXIuVG91Y2hFdmVudCB0 b3VjaCB7W0NDb2RlIChjbmFtZSA9ICIoQ2x1dHRlclRvdWNoRXZlbnQgKikiKV0gIGdldDsgfQor LQkJcHVibGljIENsdXR0ZXIuVG91Y2hwYWRQaW5jaEV2ZW50IHRvdWNocGFkX3BpbmNoIHtbQ0Nv ZGUgKGNuYW1lID0gIihDbHV0dGVyVG91Y2hwYWRQaW5jaEV2ZW50ICopIildICBnZXQ7IH0KKy0J CXB1YmxpYyBDbHV0dGVyLlRvdWNocGFkU3dpcGVFdmVudCB0b3VjaHBhZF9zd2lwZSB7W0NDb2Rl IChjbmFtZSA9ICIoQ2x1dHRlclRvdWNocGFkU3dpcGVFdmVudCAqKSIpXSAgZ2V0OyB9CisgCX0K KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9m dW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIs IHR5cGVfaWQgPSAiY2x1dHRlcl9ldmVudF9zZXF1ZW5jZV9nZXRfdHlwZSAoKSIpXQorIAlbQ29t cGFjdF0KK0BAIC02MTk4LDEwICs1NzUwLDI0IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCisgCQlwdWJsaWMgYm9vbCBzbmFwX3RvX2dyaWQgeyBn ZXQ7IHNldDsgfQorIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9mcmFtZV9jbG9ja19nZXRfdHlwZSAoKSIpXQor KwlwdWJsaWMgY2xhc3MgRnJhbWVDbG9jayA6IEdMaWIuT2JqZWN0IHsKKysJCVtDQ29kZSAoaGFz X2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXB1YmxpYyBGcmFtZUNsb2NrIChmbG9h dCByZWZyZXNoX3JhdGUsIENsdXR0ZXIuRnJhbWVMaXN0ZW5lcklmYWNlIGlmYWNlLCB2b2lkKiB1 c2VyX2RhdGEpOworKwkJcHVibGljIHZvaWQgYWRkX3RpbWVsaW5lIChDbHV0dGVyLlRpbWVsaW5l IHRpbWVsaW5lKTsKKysJCXB1YmxpYyBmbG9hdCBnZXRfcmVmcmVzaF9yYXRlICgpOworKwkJcHVi bGljIHZvaWQgaW5oaWJpdCAoKTsKKysJCXB1YmxpYyB2b2lkIHJlbW92ZV90aW1lbGluZSAoQ2x1 dHRlci5UaW1lbGluZSB0aW1lbGluZSk7CisrCQlwdWJsaWMgdm9pZCBzY2hlZHVsZV91cGRhdGUg KCk7CisrCQlwdWJsaWMgdm9pZCBzY2hlZHVsZV91cGRhdGVfbm93ICgpOworKwkJcHVibGljIHZv aWQgdW5pbmhpYml0ICgpOworKwkJW0hhc0VtaXR0ZXJdCisrCQlwdWJsaWMgc2lnbmFsIHZvaWQg ZGVzdHJveSAoKTsKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfZ2VzdHVyZV9hY3Rpb25fZ2V0X3R5cGUgKCki KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAlwdWJsaWMgY2xhc3MgR2VzdHVyZUFj dGlvbiA6IENsdXR0ZXIuQWN0aW9uIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlv biA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3Rpb24qIildCisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS44IildCisgCQlwdWJsaWMgR2VzdHVyZUFjdGlvbiAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdm9pZCBjYW5jZWwgKCk7CitAQCAtNjIxMSw2ICs1Nzc3 LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5JbnB1 dERldmljZSBnZXRfZGV2aWNlICh1aW50IHBvaW50KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjE0IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkV2ZW50IGdldF9sYXN0X2V2ZW50ICh1 aW50IHBvaW50KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2b2lk IGdldF9tb3Rpb25fY29vcmRzICh1aW50IHBvaW50LCBvdXQgZmxvYXQgbW90aW9uX3gsIG91dCBm bG9hdCBtb3Rpb25feSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGlj IGZsb2F0IGdldF9tb3Rpb25fZGVsdGEgKHVpbnQgcG9pbnQsIG91dCBmbG9hdCBkZWx0YV94LCBv dXQgZmxvYXQgZGVsdGFfeSk7CitAQCAtNjIxOCw3ICs1Nzg1LDkgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJcHVibGljIHVpbnQgZ2V0X25fY3VycmVudF9wb2ludHMgKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIGludCBnZXRfbl90b3VjaF9wb2ludHMgKCk7 CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgdm9pZCBnZXRfcHJlc3Nf Y29vcmRzICh1aW50IHBvaW50LCBvdXQgZmxvYXQgcHJlc3NfeCwgb3V0IGZsb2F0IHByZXNzX3kp OworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZvaWQgZ2V0X3JlbGVh c2VfY29vcmRzICh1aW50IHBvaW50LCBvdXQgZmxvYXQgcmVsZWFzZV94LCBvdXQgZmxvYXQgcmVs ZWFzZV95KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCisgCQlwdWJsaWMgdW5vd25l ZCBDbHV0dGVyLkV2ZW50U2VxdWVuY2UgZ2V0X3NlcXVlbmNlICh1aW50IHBvaW50KTsKK0BAIC02 MjQ2LDkgKzU4MTUsMTMgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGZsb2F0IHRo cmVzaG9sZF90cmlnZ2VyX2Rpc3RhbmNlX3kgeyBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuMTgiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkdlc3R1cmVUcmlnZ2VyRWRn ZSB0aHJlc2hvbGRfdHJpZ2dlcl9lZGdlIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIGdlc3R1cmVf YmVnaW4gKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIp XQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgZ2VzdHVyZV9jYW5jZWwgKENsdXR0ZXIu QWN0b3IgYWN0b3IpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZp cnR1YWwgc2lnbmFsIHZvaWQgZ2VzdHVyZV9lbmQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworKwkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIGJvb2wg Z2VzdHVyZV9wcm9ncmVzcyAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CisgCX0KKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVy X2dyaWRfbGF5b3V0X2dldF90eXBlICgpIildCitAQCAtNjI3OCwxOSArNTg1MSw2IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29sIHJvd19ob21vZ2VuZW91cyB7IGdldDsgc2V0 OyB9CisgCQlwdWJsaWMgdWludCByb3dfc3BhY2luZyB7IGdldDsgc2V0OyB9CisgCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJj bHV0dGVyX2dyb3VwX2dldF90eXBlICgpIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0K Ky0JcHVibGljIGNsYXNzIEdyb3VwIDogQ2x1dHRlci5BY3RvciwgQXRrLkltcGxlbWVudG9yLCBD bHV0dGVyLkFuaW1hdGFibGUsIENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUg eworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1 dHRlckFjdG9yKiIpXQorLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBHcm91cCAoKTsKKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC4yIild CistCQlwdWJsaWMgaW50IGdldF9uX2NoaWxkcmVuICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0KKy0J CXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X250aF9jaGlsZCAoaW50IGluZGV4Xyk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX2FsbCAoKTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfaW1h Z2VfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGlj IGNsYXNzIEltYWdlIDogR0xpYi5PYmplY3QsIENsdXR0ZXIuQ29udGVudCB7CitAQCAtNjMwNiw2 ICs1ODY2LDggQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlwdWJsaWMgY2xhc3MgSW5wdXREZXZp Y2UgOiBHTGliLk9iamVjdCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSldCisgCQlwcm90ZWN0ZWQgSW5wdXREZXZpY2UgKCk7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4yIildCisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9hY3RvciAoQ2x1 dHRlci5FdmVudFNlcXVlbmNlPyBzZXF1ZW5jZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42 IildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLklucHV0RGV2aWNlIGdldF9hc3NvY2lhdGVk X2RldmljZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KK0BAIC02MzEzLDcgKzU4 NzUsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42Iild CisgCQlwdWJsaWMgYm9vbCBnZXRfYXhpc192YWx1ZSAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBm YWxzZSldIGRvdWJsZVtdIGF4ZXMsIENsdXR0ZXIuSW5wdXRBeGlzIGF4aXMsIG91dCBkb3VibGUg dmFsdWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKy0JCXB1YmxpYyBib29sIGdl dF9jb29yZHMgKENsdXR0ZXIuRXZlbnRTZXF1ZW5jZT8gc2VxdWVuY2UsIENsdXR0ZXIuUG9pbnQg cG9pbnQpOworKwkJcHVibGljIGJvb2wgZ2V0X2Nvb3JkcyAoQ2x1dHRlci5FdmVudFNlcXVlbmNl PyBzZXF1ZW5jZSwgR3JhcGhlbmUuUG9pbnQgcG9pbnQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMCIpXQorIAkJcHVibGljIGludCBnZXRfZGV2aWNlX2lkICgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuNiIpXQorQEAgLTYzMjUsMTIgKzU4ODcsOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7 CisgCQlwdWJsaWMgQ2x1dHRlci5JbnB1dERldmljZVR5cGUgZ2V0X2RldmljZV90eXBlICgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIGJvb2wgZ2V0X2VuYWJsZWQg KCk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfZ2V0X2lucHV0X2RldmljZV9mb3JfaWQi KV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5J bnB1dERldmljZSBnZXRfZm9yX2lkIChpbnQgaWRfKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdldF9ncmFiYmVkX2FjdG9y ICgpOworLQkJcHVibGljIGludCBnZXRfZ3JvdXBfbl9tb2RlcyAoaW50IGdyb3VwKTsKKysJCXB1 YmxpYyB2aXJ0dWFsIGludCBnZXRfZ3JvdXBfbl9tb2RlcyAoaW50IGdyb3VwKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBib29sIGdldF9oYXNfY3Vyc29yICgpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTYzNDYsMjMgKzU5MDUsMjEgQEAgbmFt ZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGludCBnZXRfbl9tb2RlX2dyb3VwcyAoKTsKKyAJ CXB1YmxpYyBpbnQgZ2V0X25fcmluZ3MgKCk7CisgCQlwdWJsaWMgaW50IGdldF9uX3N0cmlwcyAo KTsKKy0JCXB1YmxpYyBib29sIGdldF9waHlzaWNhbF9zaXplIChkb3VibGUgd2lkdGgsIGRvdWJs ZSBoZWlnaHQpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHVub3du ZWQgQ2x1dHRlci5BY3RvciBnZXRfcG9pbnRlcl9hY3RvciAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuU3RhZ2UgZ2V0X3BvaW50ZXJf c3RhZ2UgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yMiIpXQorIAkJcHVibGljIHVub3du ZWQgc3RyaW5nIGdldF9wcm9kdWN0X2lkICgpOworKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5T ZWF0IGdldF9zZWF0ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGlj IEdMaWIuTGlzdDx3ZWFrIENsdXR0ZXIuSW5wdXREZXZpY2U+IGdldF9zbGF2ZV9kZXZpY2VzICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMjIiKV0KKyAJCXB1YmxpYyB1bm93bmVkIHN0cmlu ZyBnZXRfdmVuZG9yX2lkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1 YmxpYyB2b2lkIGdyYWIgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJcHVibGljIGJvb2wgaXNf Z3JvdXBlZCAoQ2x1dHRlci5JbnB1dERldmljZSBvdGhlcl9kZXZpY2UpOworLQkJcHVibGljIGJv b2wgaXNfbW9kZV9zd2l0Y2hfYnV0dG9uICh1aW50IGdyb3VwLCB1aW50IGJ1dHRvbik7CisrCQlw dWJsaWMgdmlydHVhbCBib29sIGlzX2dyb3VwZWQgKENsdXR0ZXIuSW5wdXREZXZpY2Ugb3RoZXJf ZGV2aWNlKTsKKysJCXB1YmxpYyB2aXJ0dWFsIGJvb2wgaXNfbW9kZV9zd2l0Y2hfYnV0dG9uICh1 aW50IGdyb3VwLCB1aW50IGJ1dHRvbik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor LQkJcHVibGljIGJvb2wga2V5Y29kZV90b19ldmRldiAodWludCBoYXJkd2FyZV9rZXljb2RlLCB1 aW50IGV2ZGV2X2tleWNvZGUpOworKwkJcHVibGljIHZpcnR1YWwgYm9vbCBrZXljb2RlX3RvX2V2 ZGV2ICh1aW50IGhhcmR3YXJlX2tleWNvZGUsIHVpbnQgZXZkZXZfa2V5Y29kZSk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBz ZXF1ZW5jZV9nZXRfZ3JhYmJlZF9hY3RvciAoQ2x1dHRlci5FdmVudFNlcXVlbmNlIHNlcXVlbmNl KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCitAQCAtNjM3OCwxMiArNTkzNSwxMSBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdm9pZCB1bmdyYWIgKCk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlwdWJsaWMgdm9pZCB1cGRhdGVfZnJvbV9ldmVudCAo Q2x1dHRlci5FdmVudCBldmVudCwgYm9vbCB1cGRhdGVfc3RhZ2UpOworKwkJW05vV3JhcHBlcl0K KysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgdXBkYXRlX2Zyb21fdG9vbCAoQ2x1dHRlci5JbnB1dERl dmljZVRvb2wgdG9vbCk7CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkJhY2tlbmQgYmFja2VuZCB7IG93bmVkIGdl dDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkRldmljZU1hbmFnZXIgZGV2aWNlX21hbmFn ZXIgeyBvd25lZCBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJcHVibGljIENsdXR0ZXIuSW5wdXRNb2Rl IGRldmljZV9tb2RlIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJCXB1YmxpYyBzdHJpbmcgZGV2aWNl X25vZGUgeyBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQor QEAgLTY0MDYsNiArNTk2Miw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBzdHJp bmcgbmFtZSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4yMiIpXQorIAkJcHVibGljIHN0cmluZyBwcm9kdWN0X2lkIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0K KysJCXB1YmxpYyBDbHV0dGVyLlNlYXQgc2VhdCB7IGdldDsgY29uc3RydWN0OyB9CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS4yMiIpXQorIAkJcHVibGljIHN0cmluZyB2ZW5kb3JfaWQgeyBnZXQ7 IGNvbnN0cnVjdDsgfQorIAl9CitAQCAtNjQzMCw3ICs1OTg3LDcgQEAgbmFtZXNwYWNlIENsdXR0 ZXIgeworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgY29tbWl0X3RleHQg KHN0cmluZyB0ZXh0KTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGRl bGV0ZV9zdXJyb3VuZGluZyAodWludCBvZmZzZXQsIHVpbnQgbGVuKTsKKysJCXB1YmxpYyB2aXJ0 dWFsIHZvaWQgZGVsZXRlX3N1cnJvdW5kaW5nIChpbnQgb2Zmc2V0LCB1aW50IGxlbik7CisgCQlw dWJsaWMgYm9vbCBmaWx0ZXJfa2V5X2V2ZW50IChDbHV0dGVyLktleUV2ZW50IGtleSk7CisgCQlb Tm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwgdm9pZCBmb2N1c19pbiAoQ2x1dHRlci5JbnB1 dE1ldGhvZCBpbnB1dF9tZXRob2QpOworQEAgLTY0NDMsNyArNjAwMCw3IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNldF9jYW5fc2hvd19wcmVlZGl0IChib29sIGNhbl9z aG93X3ByZWVkaXQpOworIAkJcHVibGljIHZvaWQgc2V0X2NvbnRlbnRfaGludHMgKENsdXR0ZXIu SW5wdXRDb250ZW50SGludEZsYWdzIGhpbnQpOworIAkJcHVibGljIHZvaWQgc2V0X2NvbnRlbnRf cHVycG9zZSAoQ2x1dHRlci5JbnB1dENvbnRlbnRQdXJwb3NlIHB1cnBvc2UpOworLQkJcHVibGlj IHZvaWQgc2V0X2N1cnNvcl9sb2NhdGlvbiAoQ2x1dHRlci5SZWN0IHJlY3QpOworKwkJcHVibGlj IHZvaWQgc2V0X2N1cnNvcl9sb2NhdGlvbiAoR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCXB1Ymxp YyB2b2lkIHNldF9pbnB1dF9wYW5lbF9zdGF0ZSAoQ2x1dHRlci5JbnB1dFBhbmVsU3RhdGUgc3Rh dGUpOworIAkJW05vV3JhcHBlcl0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgc2V0X3ByZWVkaXRf dGV4dCAoc3RyaW5nIHByZWVkaXQsIHVpbnQgY3Vyc29yKTsKK0BAIC02NDYyLDcgKzYwMTksNyBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbTm9XcmFwcGVyXQorIAkJcHVibGljIHZpcnR1YWwg dm9pZCByZXNldCAoKTsKKyAJCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHNl dF9jdXJzb3JfbG9jYXRpb24gKENsdXR0ZXIuUmVjdCByZWN0KTsKKysJCXB1YmxpYyB2aXJ0dWFs IHZvaWQgc2V0X2N1cnNvcl9sb2NhdGlvbiAoR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCXB1Ymxp YyB2b2lkIHNldF9pbnB1dF9wYW5lbF9zdGF0ZSAoQ2x1dHRlci5JbnB1dFBhbmVsU3RhdGUgc3Rh dGUpOworIAkJcHVibGljIHZvaWQgc2V0X3ByZWVkaXRfdGV4dCAoc3RyaW5nPyBwcmVlZGl0LCB1 aW50IGN1cnNvcik7CisgCQlbTm9XcmFwcGVyXQorQEAgLTY0NzksOSArNjAzNiw5IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBDbHV0dGVyLklucHV0Q29udGVudFB1cnBvc2UgY29u dGVudF9wdXJwb3NlIHsgZ2V0OyBzZXQ7IH0KKyAJCVtIYXNFbWl0dGVyXQorIAkJcHVibGljIHNp Z25hbCB2b2lkIGNvbW1pdCAoc3RyaW5nIHRleHQpOworLQkJcHVibGljIHNpZ25hbCB2b2lkIGN1 cnNvcl9sb2NhdGlvbl9jaGFuZ2VkIChDbHV0dGVyLlJlY3Qgb2JqZWN0KTsKKysJCXB1YmxpYyBz aWduYWwgdm9pZCBjdXJzb3JfbG9jYXRpb25fY2hhbmdlZCAoR3JhcGhlbmUuUmVjdCBvYmplY3Qp OworIAkJW0hhc0VtaXR0ZXJdCistCQlwdWJsaWMgc2lnbmFsIHZvaWQgZGVsZXRlX3N1cnJvdW5k aW5nICh1aW50IG9mZnNldCwgdWludCBsZW4pOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGRlbGV0 ZV9zdXJyb3VuZGluZyAoaW50IG9mZnNldCwgdWludCBsZW4pOworIAkJcHVibGljIHNpZ25hbCB2 b2lkIGlucHV0X3BhbmVsX3N0YXRlIChDbHV0dGVyLklucHV0UGFuZWxTdGF0ZSBvYmplY3QpOwor IAkJW0hhc0VtaXR0ZXJdCisgCQlwdWJsaWMgc2lnbmFsIHZvaWQgcmVxdWVzdF9zdXJyb3VuZGlu ZyAoKTsKK0BAIC02NTU1LDI4ICs2MTEyLDI4IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtD Q29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBLZXlt YXAgKCk7CisgCQlwdWJsaWMgdmlydHVhbCBib29sIGdldF9jYXBzX2xvY2tfc3RhdGUgKCk7Cisr CQlwdWJsaWMgdmlydHVhbCBQYW5nby5EaXJlY3Rpb24gZ2V0X2RpcmVjdGlvbiAoKTsKKyAJCXB1 YmxpYyB2aXJ0dWFsIGJvb2wgZ2V0X251bV9sb2NrX3N0YXRlICgpOworIAkJcHVibGljIHNpZ25h bCB2b2lkIHN0YXRlX2NoYW5nZWQgKCk7CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2xheWVyX25vZGVfZ2V0 X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIExheWVyTm9kZSA6IENsdXR0ZXIuUGFpbnROb2Rl IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNs dXR0ZXJQYWludE5vZGUqIildCisrCQlwdWJsaWMgTGF5ZXJOb2RlIChDb2dsLk1hdHJpeCBwcm9q ZWN0aW9uLCBDYWlyby5SZWN0YW5nbGUgdmlld3BvcnQsIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWln aHQsIHVpbnQ4IG9wYWNpdHkpOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9sYXlvdXRfbWFuYWdlcl9nZXRf dHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCXB1YmxpYyBhYnN0cmFj dCBjbGFzcyBMYXlvdXRNYW5hZ2VyIDogR0xpYi5Jbml0aWFsbHlVbm93bmVkIHsKKyAJCVtDQ29k ZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCXByb3RlY3RlZCBMYXlvdXRN YW5hZ2VyICgpOworLQkJcHVibGljIHZpcnR1YWwgdm9pZCBhbGxvY2F0ZSAoQ2x1dHRlci5Db250 YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yQm94IGFsbG9jYXRpb24sIENsdXR0ZXIuQWxs b2NhdGlvbkZsYWdzIGZsYWdzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJsaWMgdmlydHVh bCB1bm93bmVkIENsdXR0ZXIuQWxwaGEgYmVnaW5fYW5pbWF0aW9uICh1aW50IGR1cmF0aW9uLCB1 bG9uZyBtb2RlKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYWxsb2NhdGUgKENsdXR0ZXIuQ29u dGFpbmVyIGNvbnRhaW5lciwgQ2x1dHRlci5BY3RvckJveCBhbGxvY2F0aW9uKTsKKyAJCXB1Ymxp YyB2b2lkIGNoaWxkX2dldCAoQ2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFj dG9yIGFjdG9yLCAuLi4pOworIAkJcHVibGljIHZvaWQgY2hpbGRfZ2V0X3Byb3BlcnR5IChDbHV0 dGVyLkNvbnRhaW5lciBjb250YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IsIHN0cmluZyBwcm9w ZXJ0eV9uYW1lLCBHTGliLlZhbHVlIHZhbHVlKTsKKyAJCXB1YmxpYyB2b2lkIGNoaWxkX3NldCAo Q2x1dHRlci5Db250YWluZXIgY29udGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yLCAuLi4pOwor IAkJcHVibGljIHZvaWQgY2hpbGRfc2V0X3Byb3BlcnR5IChDbHV0dGVyLkNvbnRhaW5lciBjb250 YWluZXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IsIHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZh bHVlIHZhbHVlKTsKKyAJCVtOb1dyYXBwZXJdCisgCQlwdWJsaWMgdmlydHVhbCB1bm93bmVkIENs dXR0ZXIuTGF5b3V0TWV0YSBjcmVhdGVfY2hpbGRfbWV0YSAoQ2x1dHRlci5Db250YWluZXIgY29u dGFpbmVyLCBDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4yIildCistCQlwdWJs aWMgdmlydHVhbCB2b2lkIGVuZF9hbmltYXRpb24gKCk7CisgCQlwdWJsaWMgdW5vd25lZCBHTGli LlBhcmFtU3BlYyBmaW5kX2NoaWxkX3Byb3BlcnR5IChzdHJpbmcgbmFtZSk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuMiIpXQorLQkJcHVibGljIHZpcnR1YWwgZG91YmxlIGdldF9hbmltYXRpb25fcHJvZ3Jlc3Mg KCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdW5vd25lZCBDbHV0 dGVyLkxheW91dE1ldGEgZ2V0X2NoaWxkX21ldGEgKENsdXR0ZXIuQ29udGFpbmVyIGNvbnRhaW5l ciwgQ2x1dHRlci5BY3RvciBhY3Rvcik7CisgCQlbTm9XcmFwcGVyXQorQEAgLTY2MzIsMTIgKzYx ODksMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHJvdGVjdGVkIE9mZnNjcmVlbkVmZmVj dCAoKTsKKyAJCXB1YmxpYyB2aXJ0dWFsIENvZ2wuSGFuZGxlIGNyZWF0ZV90ZXh0dXJlIChmbG9h dCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCist CQlwdWJsaWMgYm9vbCBnZXRfdGFyZ2V0X3JlY3QgKG91dCB1bm93bmVkIENsdXR0ZXIuUmVjdCBy ZWN0KTsKKysJCXB1YmxpYyBib29sIGdldF90YXJnZXRfcmVjdCAob3V0IHVub3duZWQgR3JhcGhl bmUuUmVjdCByZWN0KTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE0Iiwgc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgYm9vbCBnZXRfdGFy Z2V0X3NpemUgKG91dCBmbG9hdCB3aWR0aCwgb3V0IGZsb2F0IGhlaWdodCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHVub3duZWQgQ29nbC5IYW5kbGUgZ2V0X3Rl eHR1cmUgKCk7CistCQlwdWJsaWMgdmlydHVhbCB2b2lkIHBhaW50X3RhcmdldCAoKTsKKysJCXB1 YmxpYyB2aXJ0dWFsIHZvaWQgcGFpbnRfdGFyZ2V0IChDbHV0dGVyLlBhaW50Q29udGV4dCBwYWlu dF9jb250ZXh0KTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfcGFnZV90dXJuX2VmZmVjdF9nZXRfdHlwZSAo KSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCitAQCAtNjY1NCw2ICs2MjExLDE3IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBkb3VibGUgcGVyaW9kIHsgZ2V0OyBzZXQ7 IH0KKyAJCXB1YmxpYyBmbG9hdCByYWRpdXMgeyBnZXQ7IHNldDsgfQorIAl9CisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHJlZl9mdW5jdGlvbiA9ICJj bHV0dGVyX3BhaW50X2NvbnRleHRfcmVmIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BhaW50X2NvbnRl eHRfZ2V0X3R5cGUgKCkiLCB1bnJlZl9mdW5jdGlvbiA9ICJjbHV0dGVyX3BhaW50X2NvbnRleHRf dW5yZWYiKV0KKysJW0NvbXBhY3RdCisrCXB1YmxpYyBjbGFzcyBQYWludENvbnRleHQgeworKwkJ cHVibGljIHZvaWQgZGVzdHJveSAoKTsKKysJCXB1YmxpYyB1bm93bmVkIENvZ2wuRnJhbWVidWZm ZXIgZ2V0X2ZyYW1lYnVmZmVyICgpOworKwkJcHVibGljIHVub3duZWQgQ2Fpcm8uUmVnaW9uIGdl dF9yZWRyYXdfY2xpcCAoKTsKKysJCXB1YmxpYyB2b2lkIHBvcF9mcmFtZWJ1ZmZlciAoKTsKKysJ CXB1YmxpYyB2b2lkIHB1c2hfZnJhbWVidWZmZXIgKENvZ2wuRnJhbWVidWZmZXIgZnJhbWVidWZm ZXIpOworKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5QYWludENvbnRleHQgQHJlZiAoKTsKKysJ CXB1YmxpYyB2b2lkIHVucmVmICgpOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYWludF9ub2RlX2dldF90 eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBhYnN0cmFj dCBjbGFzcyBQYWludE5vZGUgeworQEAgLTY2NjMsNyArNjIzMSw4IEBAIG5hbWVzcGFjZSBDbHV0 dGVyIHsKKyAJCXB1YmxpYyB2b2lkIGFkZF9tdWx0aXRleHR1cmVfcmVjdGFuZ2xlIChDbHV0dGVy LkFjdG9yQm94IHJlY3QsIGZsb2F0IHRleHRfY29vcmRzLCB1aW50IHRleHRfY29vcmRzX2xlbik7 CisgCQlwdWJsaWMgdm9pZCBhZGRfcmVjdGFuZ2xlIChDbHV0dGVyLkFjdG9yQm94IHJlY3QpOwor IAkJcHVibGljIHZvaWQgYWRkX3RleHR1cmVfcmVjdGFuZ2xlIChDbHV0dGVyLkFjdG9yQm94IHJl Y3QsIGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMik7CistCQlwdWJs aWMgdm9pZCBwYWludCAoKTsKKysJCXB1YmxpYyB1bm93bmVkIENvZ2wuRnJhbWVidWZmZXIgZ2V0 X2ZyYW1lYnVmZmVyICgpOworKwkJcHVibGljIHZvaWQgcGFpbnQgKENsdXR0ZXIuUGFpbnRDb250 ZXh0IHBhaW50X2NvbnRleHQpOworIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5QYWludE5vZGUg QHJlZiAoKTsKKyAJCXB1YmxpYyB2b2lkIHNldF9uYW1lIChzdHJpbmcgbmFtZSk7CisgCQlwdWJs aWMgdm9pZCB1bnJlZiAoKTsKK0BAIC02NjgxLDcgKzYyNTAsNyBAQCBuYW1lc3BhY2UgQ2x1dHRl ciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X2hl aWdodCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDbHV0dGVy LlZlcnRleCBnZXRfb3JpZ2luICgpOworKwkJcHVibGljIHZvaWQgZ2V0X29yaWdpbiAob3V0IHVu b3duZWQgR3JhcGhlbmUuUG9pbnQzRCB2ZXJ0ZXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu NiIpXQorIAkJcHVibGljIGZsb2F0IGdldF93aWR0aCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjYiKV0KK0BAIC02NjkxLDcgKzYyNjAsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgdm9pZCBzZXRfaGVpZ2h0IChmbG9h dCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorLQkJcHVibGljIHZvaWQg c2V0X29yaWdpbiAoQ2x1dHRlci5WZXJ0ZXggb3JpZ2luKTsKKysJCXB1YmxpYyB2b2lkIHNldF9v cmlnaW4gKEdyYXBoZW5lLlBvaW50M0Qgb3JpZ2luKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjYiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF93aWR0aCAoZmxvYXQgd2lkdGgpOworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuNiIpXQorQEAgLTY3NzgsODggKzYzNDcsMjkgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJcHVibGljIENsdXR0ZXIuUGF0aCBwYXRoIHsgZ2V0OyBzZXQ7IH0KKyAJCXB1 YmxpYyBzaWduYWwgdm9pZCBub2RlX3JlYWNoZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIHVpbnQg aW5kZXgpOworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIHJlZl9mdW5jdGlvbiA9ICJjbHV0dGVyX3BpY2tfY29udGV4dF9yZWYiLCB0eXBlX2lk ID0gImNsdXR0ZXJfcGlja19jb250ZXh0X2dldF90eXBlICgpIiwgdW5yZWZfZnVuY3Rpb24gPSAi Y2x1dHRlcl9waWNrX2NvbnRleHRfdW5yZWYiKV0KKysJW0NvbXBhY3RdCisrCXB1YmxpYyBjbGFz cyBQaWNrQ29udGV4dCB7CisrCQlwdWJsaWMgdm9pZCBkZXN0cm95ICgpOworKwkJcHVibGljIHVu b3duZWQgQ2x1dHRlci5QaWNrQ29udGV4dCBAcmVmICgpOworKwkJcHVibGljIHZvaWQgdW5yZWYg KCk7CisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BpcGVsaW5lX25vZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGNsYXNzIFBpcGVsaW5lTm9kZSA6IENs dXR0ZXIuUGFpbnROb2RlIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZh bHNlKV0KKyAJCXByb3RlY3RlZCBQaXBlbGluZU5vZGUgKCk7CisgCX0KKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2Jv eGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9wb2ludF9nZXRfdHlwZSAoKSIpXQorLQlbQ29tcGFjdF0KKy0JW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTIiKV0KKy0JcHVibGljIGNsYXNzIFBvaW50IHsKKy0JCXB1YmxpYyBmbG9hdCB4Owor LQkJcHVibGljIGZsb2F0IHk7CistCQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuUG9pbnQgYWxsb2Mg KCk7CistCQlwdWJsaWMgQ2x1dHRlci5Qb2ludCBjb3B5ICgpOworLQkJcHVibGljIGZsb2F0IGRp c3RhbmNlIChDbHV0dGVyLlBvaW50IGIsIG91dCBmbG9hdCB4X2Rpc3RhbmNlLCBvdXQgZmxvYXQg eV9kaXN0YW5jZSk7CistCQlwdWJsaWMgYm9vbCBlcXVhbHMgKENsdXR0ZXIuUG9pbnQgYik7Cist CQlwdWJsaWMgdm9pZCBmcmVlICgpOworLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5Qb2ludCBp bml0IChmbG9hdCB4LCBmbG9hdCB5KTsKKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVy LlBvaW50IHplcm8gKCk7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0 ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3Byb3BlcnR5X3RyYW5zaXRpb25fZ2V0 X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGNsYXNz IFByb3BlcnR5VHJhbnNpdGlvbiA6IENsdXR0ZXIuVHJhbnNpdGlvbiwgQ2x1dHRlci5TY3JpcHRh YmxlIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0g IkNsdXR0ZXJUcmFuc2l0aW9uKiIpXQorIAkJcHVibGljIFByb3BlcnR5VHJhbnNpdGlvbiAoc3Ry aW5nPyBwcm9wZXJ0eV9uYW1lKTsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJUcmFuc2l0aW9uKiIpXQorKwkJcHVibGljIFByb3BlcnR5 VHJhbnNpdGlvbi5mb3JfYWN0b3IgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIHN0cmluZz8gcHJvcGVy dHlfbmFtZSk7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3Byb3BlcnR5X25hbWUgKCk7 CistCQlwdWJsaWMgdm9pZCBzZXRfcHJvcGVydHlfbmFtZSAoc3RyaW5nPyBwcm9wZXJ0eV9uYW1l KTsKKy0JCXB1YmxpYyBzdHJpbmcgcHJvcGVydHlfbmFtZSB7IGdldDsgc2V0OyB9CistCX0KKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5j dGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5 cGVfaWQgPSAiY2x1dHRlcl9yZWN0X2dldF90eXBlICgpIildCistCVtDb21wYWN0XQorLQlbVmVy c2lvbiAoc2luY2UgPSAiMS4xMiIpXQorLQlwdWJsaWMgY2xhc3MgUmVjdCB7CistCQlwdWJsaWMg d2VhayBDbHV0dGVyLlBvaW50IG9yaWdpbjsKKy0JCXB1YmxpYyB3ZWFrIENsdXR0ZXIuU2l6ZSBz aXplOworLQkJcHVibGljIHN0YXRpYyBDbHV0dGVyLlJlY3QgYWxsb2MgKCk7CistCQlwdWJsaWMg dm9pZCBjbGFtcF90b19waXhlbCAoKTsKKy0JCXB1YmxpYyBib29sIGNvbnRhaW5zX3BvaW50IChD bHV0dGVyLlBvaW50IHBvaW50KTsKKy0JCXB1YmxpYyBib29sIGNvbnRhaW5zX3JlY3QgKENsdXR0 ZXIuUmVjdCBiKTsKKy0JCXB1YmxpYyBDbHV0dGVyLlJlY3QgY29weSAoKTsKKy0JCXB1YmxpYyBi b29sIGVxdWFscyAoQ2x1dHRlci5SZWN0IGIpOworLQkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0J CXB1YmxpYyB2b2lkIGdldF9jZW50ZXIgKENsdXR0ZXIuUG9pbnQgY2VudGVyKTsKKy0JCXB1Ymxp YyBmbG9hdCBnZXRfaGVpZ2h0ICgpOworLQkJcHVibGljIGZsb2F0IGdldF93aWR0aCAoKTsKKy0J CXB1YmxpYyBmbG9hdCBnZXRfeCAoKTsKKy0JCXB1YmxpYyBmbG9hdCBnZXRfeSAoKTsKKy0JCXB1 YmxpYyB1bm93bmVkIENsdXR0ZXIuUmVjdCBpbml0IChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB3 aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKy0JCXB1YmxpYyB2b2lkIGluc2V0IChmbG9hdCBkX3gsIGZs b2F0IGRfeSk7CistCQlwdWJsaWMgYm9vbCBpbnRlcnNlY3Rpb24gKENsdXR0ZXIuUmVjdCBiLCBD bHV0dGVyLlJlY3Q/IHJlcyk7CistCQlwdWJsaWMgQ2x1dHRlci5SZWN0IG5vcm1hbGl6ZSAoKTsK Ky0JCXB1YmxpYyB2b2lkIG9mZnNldCAoZmxvYXQgZF94LCBmbG9hdCBkX3kpOworLQkJcHVibGlj IHZvaWQgc2NhbGUgKGZsb2F0IHNfeCwgZmxvYXQgc195KTsKKy0JCXB1YmxpYyB2b2lkIHVuaW9u IChDbHV0dGVyLlJlY3QgYiwgQ2x1dHRlci5SZWN0IHJlcyk7CistCQlwdWJsaWMgc3RhdGljIHVu b3duZWQgQ2x1dHRlci5SZWN0IHplcm8gKCk7CistCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3JlY3RhbmdsZV9n ZXRfdHlwZSAoKSIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC4yIildCistCXB1YmxpYyBjbGFz cyBSZWN0YW5nbGUgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5p bWF0YWJsZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CistCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3Iq IildCistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIpXQorLQkJcHVibGljIFJlY3RhbmdsZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC4yIildCistCQlw dWJsaWMgQ2x1dHRlci5Db2xvciBnZXRfYm9yZGVyX2NvbG9yICgpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjIi KV0KKy0JCXB1YmxpYyB1aW50IGdldF9ib3JkZXJfd2lkdGggKCk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENs dXR0ZXIuQ29sb3IgZ2V0X2NvbG9yICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9ib3JkZXJf Y29sb3IgKENsdXR0ZXIuQ29sb3IgY29sb3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjIiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9ib3JkZXJfd2lkdGggKHVpbnQgd2lkdGgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9jb2xvciAoQ2x1dHRlci5Db2xvciBjb2xvcik7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1 Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVi bGljIFJlY3RhbmdsZS53aXRoX2NvbG9yIChDbHV0dGVyLkNvbG9yIGNvbG9yKTsKKy0JCXB1Ymxp YyBDbHV0dGVyLkNvbG9yIGJvcmRlcl9jb2xvciB7IGdldDsgc2V0OyB9CistCQlwdWJsaWMgdWlu dCBib3JkZXJfd2lkdGggeyBnZXQ7IHNldDsgfQorLQkJcHVibGljIENsdXR0ZXIuQ29sb3IgY29s b3IgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBo YXNfYm9yZGVyIHsgZ2V0OyBzZXQ7IH0KKysJCXB1YmxpYyB2b2lkIHNldF9wcm9wZXJ0eV9uYW1l IChzdHJpbmc/IHByb3BlcnR5X25hbWUpOworKwkJcHVibGljIHN0cmluZyBwcm9wZXJ0eV9uYW1l IHsgZ2V0OyBzZXQ7IH0KKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfcm9vdF9ub2RlX2dldF90eXBlICgpIild CisgCXB1YmxpYyBjbGFzcyBSb290Tm9kZSA6IENsdXR0ZXIuUGFpbnROb2RlIHsKK0BAIC02ODgw LDE1ICs2MzkwLDExIEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBTY3JpcHQgKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgdm9pZCBhZGRfc2VhcmNo X3BhdGhzIChbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFtZSA9ICJuX3BhdGhzIiwgYXJyYXlfbGVu Z3RoX3BvcyA9IDEuMSwgYXJyYXlfbGVuZ3RoX3R5cGUgPSAiZ3NpemUiKV0gc3RyaW5nW10gcGF0 aHMpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTIiLCBzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyB2b2lkIGFkZF9zdGF0ZXMgKHN0cmlu Zz8gbmFtZSwgQ2x1dHRlci5TdGF0ZSBzdGF0ZSk7CisgCQlwdWJsaWMgdm9pZCBjb25uZWN0X3Np Z25hbHMgKHZvaWQqIHVzZXJfZGF0YSk7CisgCQlwdWJsaWMgdm9pZCBjb25uZWN0X3NpZ25hbHNf ZnVsbCAoQ2x1dHRlci5TY3JpcHRDb25uZWN0RnVuYyBmdW5jKTsKKyAJCXB1YmxpYyB2b2lkIGVu c3VyZV9vYmplY3RzICgpOworIAkJcHVibGljIHVub3duZWQgR0xpYi5PYmplY3QgZ2V0X29iamVj dCAoc3RyaW5nIG5hbWUpOworIAkJcHVibGljIGludCBnZXRfb2JqZWN0cyAoLi4uKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS44IildCistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlN0YXRlIGdldF9zdGF0ZXMg KHN0cmluZz8gbmFtZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGlj IHVub3duZWQgc3RyaW5nIGdldF90cmFuc2xhdGlvbl9kb21haW4gKCk7CisgCQlwdWJsaWMgdmly dHVhbCBHTGliLlR5cGUgZ2V0X3R5cGVfZnJvbV9uYW1lIChzdHJpbmcgdHlwZV9uYW1lKTsKK0BA IC02OTE2LDggKzY0MjIsOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCisgCQlw dWJsaWMgU2Nyb2xsQWN0b3IgKCk7CisgCQlwdWJsaWMgQ2x1dHRlci5TY3JvbGxNb2RlIGdldF9z Y3JvbGxfbW9kZSAoKTsKKy0JCXB1YmxpYyB2b2lkIHNjcm9sbF90b19wb2ludCAoQ2x1dHRlci5Q b2ludCBwb2ludCk7CistCQlwdWJsaWMgdm9pZCBzY3JvbGxfdG9fcmVjdCAoQ2x1dHRlci5SZWN0 IHJlY3QpOworKwkJcHVibGljIHZvaWQgc2Nyb2xsX3RvX3BvaW50IChHcmFwaGVuZS5Qb2ludCBw b2ludCk7CisrCQlwdWJsaWMgdm9pZCBzY3JvbGxfdG9fcmVjdCAoR3JhcGhlbmUuUmVjdCByZWN0 KTsKKyAJCXB1YmxpYyB2b2lkIHNldF9zY3JvbGxfbW9kZSAoQ2x1dHRlci5TY3JvbGxNb2RlIG1v ZGUpOworIAkJcHVibGljIENsdXR0ZXIuU2Nyb2xsTW9kZSBzY3JvbGxfbW9kZSB7IGdldDsgc2V0 OyB9CisgCX0KK0BAIC02OTM5LDYgKzY0NDUsNDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ cHVibGljIGZsb2F0IHg7CisgCQlwdWJsaWMgZmxvYXQgeTsKKyAJfQorKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfc2Vh dF9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgYWJzdHJhY3QgY2xhc3MgU2VhdCA6IEdMaWIuT2Jq ZWN0IHsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXBy b3RlY3RlZCBTZWF0ICgpOworKwkJW05vV3JhcHBlcl0KKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQg YXBwbHlfa2JkX2ExMXlfc2V0dGluZ3MgKENsdXR0ZXIuS2JkQTExeVNldHRpbmdzIHNldHRpbmdz KTsKKysJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgYmVsbF9ub3RpZnkgKCk7CisrCQlwdWJsaWMgdmly dHVhbCB2b2lkIGNvbXByZXNzX21vdGlvbiAoQ2x1dHRlci5FdmVudCBldmVudCwgQ2x1dHRlci5F dmVudCB0b19kaXNjYXJkKTsKKysJCVtOb1dyYXBwZXJdCisrCQlwdWJsaWMgdmlydHVhbCB2b2lk IGNvcHlfZXZlbnRfZGF0YSAoQ2x1dHRlci5FdmVudCBzcmMsIENsdXR0ZXIuRXZlbnQgZGVzdCk7 CisrCQlwdWJsaWMgdmlydHVhbCBDbHV0dGVyLlZpcnR1YWxJbnB1dERldmljZSBjcmVhdGVfdmly dHVhbF9kZXZpY2UgKENsdXR0ZXIuSW5wdXREZXZpY2VUeXBlIGRldmljZV90eXBlKTsKKysJCXB1 YmxpYyB2b2lkIGVuc3VyZV9hMTF5X3N0YXRlICgpOworKwkJW05vV3JhcHBlcl0KKysJCXB1Ymxp YyB2aXJ0dWFsIHZvaWQgZnJlZV9ldmVudF9kYXRhIChDbHV0dGVyLkV2ZW50IGV2ZW50KTsKKysJ CXB1YmxpYyB2b2lkIGdldF9rYmRfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5LYmRBMTF5U2V0dGlu Z3Mgc2V0dGluZ3MpOworKwkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLklucHV0RGV2 aWNlIGdldF9rZXlib2FyZCAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5L ZXltYXAgZ2V0X2tleW1hcCAoKTsKKysJCXB1YmxpYyB2aXJ0dWFsIHVub3duZWQgQ2x1dHRlci5J bnB1dERldmljZSBnZXRfcG9pbnRlciAoKTsKKysJCXB1YmxpYyB2b2lkIGdldF9wb2ludGVyX2Ex MXlfc2V0dGluZ3MgKENsdXR0ZXIuUG9pbnRlckExMXlTZXR0aW5ncyBzZXR0aW5ncyk7CisrCQlw dWJsaWMgYm9vbCBnZXRfdG91Y2hfbW9kZSAoKTsKKysJCXB1YmxpYyB2b2lkIGluaGliaXRfdW5m b2N1cyAoKTsKKysJCXB1YmxpYyBib29sIGlzX3VuZm9jdXNfaW5oaWJpdGVkICgpOworKwkJcHVi bGljIEdMaWIuTGlzdDx3ZWFrIENsdXR0ZXIuSW5wdXREZXZpY2U+IGxpc3RfZGV2aWNlcyAoKTsK KysJCXB1YmxpYyB2b2lkIHNldF9rYmRfYTExeV9zZXR0aW5ncyAoQ2x1dHRlci5LYmRBMTF5U2V0 dGluZ3Mgc2V0dGluZ3MpOworKwkJcHVibGljIHZvaWQgc2V0X3BvaW50ZXJfYTExeV9kd2VsbF9j bGlja190eXBlIChDbHV0dGVyLlBvaW50ZXJBMTF5RHdlbGxDbGlja1R5cGUgY2xpY2tfdHlwZSk7 CisrCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRlcl9hMTF5X3NldHRpbmdzIChDbHV0dGVyLlBvaW50 ZXJBMTF5U2V0dGluZ3Mgc2V0dGluZ3MpOworKwkJcHVibGljIHZvaWQgdW5pbmhpYml0X3VuZm9j dXMgKCk7CisrCQlwdWJsaWMgdmlydHVhbCB2b2lkIHdhcnBfcG9pbnRlciAoaW50IHgsIGludCB5 KTsKKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIENsdXR0ZXIuQmFja2VuZCBiYWNr ZW5kIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCXB1YmxpYyBib29sIHRvdWNoX21vZGUg eyBnZXQ7IH0KKysJCXB1YmxpYyBzaWduYWwgdm9pZCBkZXZpY2VfYWRkZWQgKENsdXR0ZXIuSW5w dXREZXZpY2Ugb2JqZWN0KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBkZXZpY2VfcmVtb3ZlZCAo Q2x1dHRlci5JbnB1dERldmljZSBvYmplY3QpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGlzX3Vu Zm9jdXNfaW5oaWJpdGVkX2NoYW5nZWQgKCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQga2JkX2Ex MXlfZmxhZ3NfY2hhbmdlZCAodWludCBzZXR0aW5nc19mbGFncywgdWludCBjaGFuZ2VkX21hc2sp OworKwkJcHVibGljIHNpZ25hbCB2b2lkIGtiZF9hMTF5X21vZHNfc3RhdGVfY2hhbmdlZCAodWlu dCBsYXRjaGVkX21hc2ssIHVpbnQgbG9ja2VkX21hc2spOworKwkJcHVibGljIHNpZ25hbCB2b2lk IHB0cl9hMTF5X2R3ZWxsX2NsaWNrX3R5cGVfY2hhbmdlZCAoQ2x1dHRlci5Qb2ludGVyQTExeUR3 ZWxsQ2xpY2tUeXBlIGNsaWNrX3R5cGUpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIHB0cl9hMTF5 X3RpbWVvdXRfc3RhcnRlZCAoQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UsIENsdXR0ZXIuUG9p bnRlckExMXlUaW1lb3V0VHlwZSB0aW1lb3V0X3R5cGUsIHVpbnQgZGVsYXkpOworKwkJcHVibGlj IHNpZ25hbCB2b2lkIHB0cl9hMTF5X3RpbWVvdXRfc3RvcHBlZCAoQ2x1dHRlci5JbnB1dERldmlj ZSBkZXZpY2UsIENsdXR0ZXIuUG9pbnRlckExMXlUaW1lb3V0VHlwZSB0aW1lb3V0X3R5cGUsIGJv b2wgY2xpY2tlZCk7CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgdG9vbF9jaGFuZ2VkIChDbHV0dGVy LklucHV0RGV2aWNlIG9iamVjdCwgQ2x1dHRlci5JbnB1dERldmljZVRvb2wgcDApOworKwl9Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQg PSAiY2x1dHRlcl9zZXR0aW5nc19nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAi MS40IildCisgCXB1YmxpYyBjbGFzcyBTZXR0aW5ncyA6IEdMaWIuT2JqZWN0IHsKK0BAIC03MDEx LDE4ICs2NTU4LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW0NDb2RlIChoYXNfY29uc3Ry dWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIFNoYWRlck1hdHJpeCAoKTsKKyAJ fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5 X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVl IiwgdHlwZV9pZCA9ICJjbHV0dGVyX3NpemVfZ2V0X3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCist CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEyIildCistCXB1YmxpYyBjbGFzcyBTaXplIHsKKy0JCXB1 YmxpYyBmbG9hdCBoZWlnaHQ7CistCQlwdWJsaWMgZmxvYXQgd2lkdGg7CistCQlwdWJsaWMgc3Rh dGljIENsdXR0ZXIuU2l6ZSBhbGxvYyAoKTsKKy0JCXB1YmxpYyBDbHV0dGVyLlNpemUgY29weSAo KTsKKy0JCXB1YmxpYyBib29sIGVxdWFscyAoQ2x1dHRlci5TaXplIGIpOworLQkJcHVibGljIHZv aWQgZnJlZSAoKTsKKy0JCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuU2l6ZSBpbml0IChmbG9hdCB3 aWR0aCwgZmxvYXQgaGVpZ2h0KTsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfc25hcF9jb25zdHJhaW50X2dl dF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJcHVibGljIGNsYXNz IFNuYXBDb25zdHJhaW50IDogQ2x1dHRlci5Db25zdHJhaW50IHsKK0BAIC03MDQzLDEzNSArNjU3 OCw2NiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3N0YWdlX2dldF90 eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGNsYXNzIFN0 YWdlIDogQ2x1dHRlci5Hcm91cCwgQXRrLkltcGxlbWVudG9yLCBDbHV0dGVyLkFuaW1hdGFibGUs IENsdXR0ZXIuQ29udGFpbmVyLCBDbHV0dGVyLlNjcmlwdGFibGUgeworKwlwdWJsaWMgY2xhc3Mg U3RhZ2UgOiBDbHV0dGVyLkFjdG9yLCBBdGsuSW1wbGVtZW50b3IsIENsdXR0ZXIuQW5pbWF0YWJs ZSwgQ2x1dHRlci5Db250YWluZXIsIENsdXR0ZXIuU2NyaXB0YWJsZSB7CisgCQlbQ0NvZGUgKGhh c19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9ICJDbHV0dGVyQWN0b3IqIildCisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlwdWJsaWMgU3RhZ2UgKCk7CistCQlwdWJs aWMgYm9vbCBjYXB0dXJlIChib29sIHBhaW50LCBDYWlyby5SZWN0YW5nbGVJbnQgcmVjdCwgQ2x1 dHRlci5DYXB0dXJlIGNhcHR1cmVzLCBpbnQgbl9jYXB0dXJlcyk7CisgCQlwdWJsaWMgdm9pZCBj YXB0dXJlX2ludG8gKGJvb2wgcGFpbnQsIENhaXJvLlJlY3RhbmdsZUludCByZWN0LCB1aW50OCBk YXRhKTsKKysJCXB1YmxpYyB2b2lkIGNsZWFyX3N0YWdlX3ZpZXdzICgpOworIAkJW0NDb2RlIChj bmFtZSA9ICJjbHV0dGVyX3N0YWdlX2V2ZW50IildCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40 IildCisgCQlwdWJsaWMgYm9vbCBlbWl0X2V2ZW50IChDbHV0dGVyLkV2ZW50IGV2ZW50KTsKKy0J CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMg dm9pZCBlbnN1cmVfY3VycmVudCAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0J CXB1YmxpYyB2b2lkIGVuc3VyZV9yZWRyYXcgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4w IildCisgCQlwdWJsaWMgdm9pZCBlbnN1cmVfdmlld3BvcnQgKCk7CistCQlwdWJsaWMgdm9pZCBm cmVlemVfdXBkYXRlcyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1Ymxp YyBib29sIGdldF9hY2NlcHRfZm9jdXMgKCk7CistCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLkFj dG9yIGdldF9hY3Rvcl9hdF9wb3MgKENsdXR0ZXIuUGlja01vZGUgcGlja19tb2RlLCBpbnQgeCwg aW50IHkpOworKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBnZXRfYWN0b3JfYXRfcG9z IChDbHV0dGVyLlBpY2tNb2RlIHBpY2tfbW9kZSwgZmxvYXQgeCwgZmxvYXQgeSk7CisgCQlwdWJs aWMgYm9vbCBnZXRfY2FwdHVyZV9maW5hbF9zaXplIChDYWlyby5SZWN0YW5nbGVJbnQgcmVjdCwg aW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBmbG9hdCBzY2FsZSk7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENsdXR0 ZXIuQ29sb3IgZ2V0X2NvbG9yICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0 dGVyLlN0YWdlIGdldF9kZWZhdWx0ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBD bHV0dGVyLkZvZyBnZXRfZm9nICgpOworIAkJcHVibGljIGludDY0IGdldF9mcmFtZV9jb3VudGVy ICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2Z1 bGxzY3JlZW4gKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgdW5v d25lZCBDbHV0dGVyLkFjdG9yIGdldF9rZXlfZm9jdXMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4yIildCisgCQlwdWJsaWMgdm9pZCBnZXRfbWluaW11bV9zaXplIChvdXQgdWludCB3aWR0 aCwgb3V0IHVpbnQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1 YmxpYyBib29sIGdldF9tb3Rpb25fZXZlbnRzX2VuYWJsZWQgKCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCBnZXRfbm9fY2xlYXJfaGludCAoKTsKKyAJCXB1 YmxpYyBDbHV0dGVyLlBlcnNwZWN0aXZlIGdldF9wZXJzcGVjdGl2ZSAoKTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBDYWlyby5SZWN0YW5nbGVJbnQgZ2V0X3JlZHJh d19jbGlwX2JvdW5kcyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1Ymxp YyBib29sIGdldF90aHJvdHRsZV9tb3Rpb25fZXZlbnRzICgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjAuNCIpXQorIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF90aXRsZSAoKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjIiKV0KKyAJCXB1YmxpYyBib29sIGdldF91c2VfYWxwaGEgKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MCIsIHNpbmNlID0gIjAuNiIpXQorLQkJcHVibGljIGJvb2wgZ2V0X3VzZV9mb2cgKCk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgYm9vbCBnZXRfdXNlcl9yZXNpemFi bGUgKCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCistCQlwdWJsaWMgdm9pZCBoaWRl X2N1cnNvciAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgYm9vbCBpc19kZWZhdWx0 ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTAiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHF1ZXVlX3JlZHJhdyAoKTsK KysJCXB1YmxpYyBib29sIHBhaW50X3RvX2J1ZmZlciAoQ2Fpcm8uUmVjdGFuZ2xlSW50IHJlY3Qs IGZsb2F0IHNjYWxlLCB1aW50OCBkYXRhLCBpbnQgc3RyaWRlLCBDb2dsLlBpeGVsRm9ybWF0IGZv cm1hdCwgQ2x1dHRlci5QYWludEZsYWcgcGFpbnRfZmxhZ3MpIHRocm93cyBHTGliLkVycm9yOwor KwkJcHVibGljIHZvaWQgcGFpbnRfdG9fZnJhbWVidWZmZXIgKENvZ2wuRnJhbWVidWZmZXIgZnJh bWVidWZmZXIsIENhaXJvLlJlY3RhbmdsZUludCByZWN0LCBmbG9hdCBzY2FsZSwgQ2x1dHRlci5Q YWludEZsYWcgcGFpbnRfZmxhZ3MpOworIAkJW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSld CisgCQlwdWJsaWMgdWludDhbXSByZWFkX3BpeGVscyAoaW50IHgsIGludCB5LCBpbnQgd2lkdGgg PSAtMSwgaW50IGhlaWdodCA9IC0xKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9yZWRy YXciKV0KKy0JCXB1YmxpYyB2b2lkIHJlZHJhdyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIx LjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9hY2NlcHRfZm9jdXMgKGJvb2wgYWNjZXB0X2ZvY3Vz KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEwIildCistCQlwdWJsaWMgdm9pZCBzZXRfY29sb3IgKENsdXR0ZXIuQ29sb3IgY29sb3IpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAi LCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9mb2cgKENsdXR0ZXIuRm9nIGZv Zyk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZnVs bHNjcmVlbiAoYm9vbCBmdWxsc2NyZWVuKTsKKysJCXB1YmxpYyB2b2lkIHNjaGVkdWxlX3VwZGF0 ZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9r ZXlfZm9jdXMgKENsdXR0ZXIuQWN0b3I/IGFjdG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjIiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9taW5pbXVtX3NpemUgKHVpbnQgd2lkdGgsIHVpbnQg aGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2b2lkIHNl dF9tb3Rpb25fZXZlbnRzX2VuYWJsZWQgKGJvb2wgZW5hYmxlZCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfbm9fY2xlYXJfaGludCAoYm9vbCBub19j bGVhcik7CistCQlwdWJsaWMgdm9pZCBzZXRfcGVyc3BlY3RpdmUgKENsdXR0ZXIuUGVyc3BlY3Rp dmUgcGVyc3BlY3RpdmUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGlj IHZvaWQgc2V0X3Rocm90dGxlX21vdGlvbl9ldmVudHMgKGJvb2wgdGhyb3R0bGUpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAkJcHVibGljIHZvaWQgc2V0X3RpdGxlIChzdHJpbmcg dGl0bGUpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIHZvaWQgc2V0 X3VzZV9hbHBoYSAoYm9vbCB1c2VfYWxwaGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF91c2VfZm9nIChib29sIGZvZyk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40 IildCistCQlwdWJsaWMgdm9pZCBzZXRfdXNlcl9yZXNpemFibGUgKGJvb2wgcmVzaXphYmxlKTsK Ky0JCXB1YmxpYyB2b2lkIHNob3dfY3Vyc29yICgpOworLQkJcHVibGljIHZvaWQgdGhhd191cGRh dGVzICgpOworLQkJcHVibGljIHZvaWQgdXBkYXRlX3Jlc291cmNlX3NjYWxlcyAoKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBib29sIGFjY2VwdF9mb2N1cyB7IGdl dDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIpXQorLQkJcHVibGljIENsdXR0ZXIuQ29sb3IgY29sb3IgeyBnZXQ7IHNldDsg fQorLQkJW05vQWNjZXNzb3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCBjdXJzb3JfdmlzaWJsZSB7 IGdldDsgc2V0OyB9CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENsdXR0ZXIuRm9nIGZv ZyB7IGdldDsgc2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGZ1 bGxzY3JlZW5fc2V0IHsgZ2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIildCisgCQlw dWJsaWMgQ2x1dHRlci5BY3RvciBrZXlfZm9jdXMgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIGJvb2wgbm9fY2xlYXJfaGludCB7IGdldDsgc2V0 OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgYm9vbCBvZmZzY3JlZW4g eyBnZXQ7IHNldDsgfQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIENs dXR0ZXIuUGVyc3BlY3RpdmUgcGVyc3BlY3RpdmUgeyBnZXQ7IHNldDsgfQorKwkJcHVibGljIENs dXR0ZXIuUGVyc3BlY3RpdmUgcGVyc3BlY3RpdmUgeyBnZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIwLjQiKV0KKyAJCXB1YmxpYyBzdHJpbmcgdGl0bGUgeyBnZXQ7IHNldDsgfQorLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIGJvb2wgdXNlX2FscGhhIHsgZ2V0OyBz ZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIiwgc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgYm9vbCB1c2VfZm9nIHsgZ2V0OyBz ZXQ7IH0KKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBib29sIHVzZXJf cmVzaXphYmxlIHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJ CXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIGFjdGl2YXRlICgpOworIAkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMjAiKV0KKy0JCXB1YmxpYyBzaWduYWwgdm9pZCBhZnRlcl9wYWludCAoKTsKKysJ CXB1YmxpYyBzaWduYWwgdm9pZCBhZnRlcl9wYWludCAoQ2x1dHRlci5TdGFnZVZpZXcgdmlldyk7 CisrCQlwdWJsaWMgc2lnbmFsIHZvaWQgYWZ0ZXJfdXBkYXRlIChDbHV0dGVyLlN0YWdlVmlldyB2 aWV3KTsKKysJCXB1YmxpYyBzaWduYWwgdm9pZCBiZWZvcmVfcGFpbnQgKENsdXR0ZXIuU3RhZ2VW aWV3IHZpZXcpOworKwkJcHVibGljIHNpZ25hbCB2b2lkIGJlZm9yZV91cGRhdGUgKENsdXR0ZXIu U3RhZ2VWaWV3IHZpZXcpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGlj IHZpcnR1YWwgc2lnbmFsIHZvaWQgZGVhY3RpdmF0ZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjIiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29sIGRlbGV0ZV9ldmVudCAoQ2x1 dHRlci5FdmVudCBldmVudCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJs aWMgdmlydHVhbCBzaWduYWwgdm9pZCBmdWxsc2NyZWVuICgpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjAuNiIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgdW5mdWxsc2NyZWVuICgp OworKwkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgcGFpbnRfdmlldyAoQ2x1dHRlci5TdGFn ZVZpZXcgdmlldywgQ2Fpcm8uUmVnaW9uIHJlZHJhd19jbGlwKTsKKyAJfQorIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJf c3RhZ2VfbWFuYWdlcl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CitAQCAtNzE4NSw4ICs2NjUxLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIEdMaWIuU0xpc3Q8d2VhayBDbHV0dGVyLlN0YWdl PiBsaXN0X3N0YWdlcyAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIEdMaWIuU0xpc3Q8Q2x1dHRlci5T dGFnZT4gcGVla19zdGFnZXMgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4yIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdm9pZCBz ZXRfZGVmYXVsdF9zdGFnZSAoQ2x1dHRlci5TdGFnZSBzdGFnZSk7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMC44IildCisgCQlwdWJsaWMgQ2x1dHRlci5TdGFnZSBkZWZhdWx0X3N0YWdlIHsgZ2V0 OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCitAQCAtNzIwNiw2MyArNjY3MCwzMyBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgdWludDMyIHRpbWU7CisgCQlwdWJsaWMg Q2x1dHRlci5FdmVudFR5cGUgdHlwZTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfc3RhdGVfZ2V0X3R5cGUg KCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorLQlwdWJsaWMgY2xhc3MgU3RhdGUg OiBHTGliLk9iamVjdCwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKKysJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3N0YWdlX3Zp ZXdfZ2V0X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIFN0YWdlVmlldyA6IEdMaWIuT2JqZWN0 IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS40IildCistCQlwdWJsaWMgU3RhdGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVi bGljIHVpbnQgZ2V0X2R1cmF0aW9uIChzdHJpbmc/IHNvdXJjZV9zdGF0ZV9uYW1lLCBzdHJpbmc/ IHRhcmdldF9zdGF0ZV9uYW1lKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgR0xpYi5M aXN0PHdlYWsgQ2x1dHRlci5TdGF0ZUtleT4gZ2V0X2tleXMgKHN0cmluZz8gc291cmNlX3N0YXRl X25hbWUsIHN0cmluZz8gdGFyZ2V0X3N0YXRlX25hbWUsIEdMaWIuT2JqZWN0PyBvYmplY3QsIHN0 cmluZz8gcHJvcGVydHlfbmFtZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3du ZWQgc3RyaW5nIGdldF9zdGF0ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgR0xp Yi5MaXN0PHdlYWsgc3RyaW5nPiBnZXRfc3RhdGVzICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0J CXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuVGltZWxpbmUgZ2V0X3RpbWVsaW5lICgpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIHJlbW92ZV9rZXkgKHN0cmluZz8gc291cmNlX3N0 YXRlX25hbWUsIHN0cmluZz8gdGFyZ2V0X3N0YXRlX25hbWUsIEdMaWIuT2JqZWN0PyBvYmplY3Qs IHN0cmluZz8gcHJvcGVydHlfbmFtZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZv aWQgc2V0X2R1cmF0aW9uIChzdHJpbmc/IHNvdXJjZV9zdGF0ZV9uYW1lLCBzdHJpbmc/IHRhcmdl dF9zdGF0ZV9uYW1lLCB1aW50IGR1cmF0aW9uKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJs aWMgdW5vd25lZCBDbHV0dGVyLlN0YXRlIHNldF9rZXkgKHN0cmluZz8gc291cmNlX3N0YXRlX25h bWUsIHN0cmluZyB0YXJnZXRfc3RhdGVfbmFtZSwgR0xpYi5PYmplY3Qgb2JqZWN0LCBzdHJpbmcg cHJvcGVydHlfbmFtZSwgdWludCBtb2RlLCBHTGliLlZhbHVlIHZhbHVlLCBkb3VibGUgcHJlX2Rl bGF5LCBkb3VibGUgcG9zdF9kZWxheSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVu b3duZWQgQ2x1dHRlci5UaW1lbGluZSBzZXRfc3RhdGUgKHN0cmluZyB0YXJnZXRfc3RhdGVfbmFt ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHVub3duZWQgQ2x1dHRlci5UaW1lbGlu ZSB3YXJwX3RvX3N0YXRlIChzdHJpbmcgdGFyZ2V0X3N0YXRlX25hbWUpOworKwkJcHJvdGVjdGVk IFN0YWdlVmlldyAoKTsKKysJCXB1YmxpYyB2b2lkIGFzc2lnbl9uZXh0X3NjYW5vdXQgKENvZ2wu U2Nhbm91dCBzY2Fub3V0KTsKKysJCXB1YmxpYyB1bm93bmVkIENvZ2wuRnJhbWVidWZmZXIgZ2V0 X2ZyYW1lYnVmZmVyICgpOworKwkJcHVibGljIHZvaWQgZ2V0X2xheW91dCAoQ2Fpcm8uUmVjdGFu Z2xlSW50IHJlY3QpOworKwkJcHVibGljIHZpcnR1YWwgdm9pZCBnZXRfb2Zmc2NyZWVuX3RyYW5z Zm9ybWF0aW9uX21hdHJpeCAoQ29nbC5NYXRyaXggbWF0cml4KTsKKysJCXB1YmxpYyB1bm93bmVk IENvZ2wuRnJhbWVidWZmZXIgZ2V0X29uc2NyZWVuICgpOworKwkJcHVibGljIGZsb2F0IGdldF9z Y2FsZSAoKTsKKysJCXB1YmxpYyB2b2lkIGludmFsaWRhdGVfb2Zmc2NyZWVuX2JsaXRfcGlwZWxp bmUgKCk7CisrCQlbTm9XcmFwcGVyXQorKwkJcHVibGljIHZpcnR1YWwgdm9pZCBzZXR1cF9vZmZz Y3JlZW5fYmxpdF9waXBlbGluZSAoQ29nbC5QaXBlbGluZSBwaXBlbGluZSk7CisrCQlbTm9XcmFw cGVyXQorKwkJcHVibGljIHZpcnR1YWwgdm9pZCB0cmFuc2Zvcm1fcmVjdF90b19vbnNjcmVlbiAo Q2Fpcm8uUmVjdGFuZ2xlSW50IHNyY19yZWN0LCBpbnQgZHN0X3dpZHRoLCBpbnQgZHN0X2hlaWdo dCwgQ2Fpcm8uUmVjdGFuZ2xlSW50IGRzdF9yZWN0KTsKKyAJCVtOb0FjY2Vzc29yTWV0aG9kXQor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1aW50IGR1cmF0aW9uIHsgZ2V0OyBzZXQ7IH0K KysJCXB1YmxpYyBDYWlyby5SZWN0YW5nbGVJbnQgbGF5b3V0IHsgb3duZWQgZ2V0OyBzZXQgY29u c3RydWN0OyB9CisgCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlw dWJsaWMgc3RyaW5nIHN0YXRlIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40Iild CistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBjb21wbGV0ZWQgKCk7CistCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlv biA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVf aWQgPSAiY2x1dHRlcl9zdGF0ZV9rZXlfZ2V0X3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGNsYXNzIFN0YXRlS2V5IHsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS40IildCistCQlwdWJsaWMgdWxvbmcgZ2V0X21vZGUgKCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIHVub3duZWQgR0xpYi5PYmplY3QgZ2V0X29iamVjdCAoKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS40IildCistCQlwdWJsaWMgZG91YmxlIGdldF9wb3N0X2RlbGF5ICgpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBkb3VibGUgZ2V0X3ByZV9kZWxheSAoKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2Ug PSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3Byb3BlcnR5X25hbWUgKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIEdMaWIuVHlwZSBnZXRfcHJvcGVydHlfdHlw ZSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X3Nv dXJjZV9zdGF0ZV9uYW1lICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB1bm93bmVk IHN0cmluZyBnZXRfdGFyZ2V0X3N0YXRlX25hbWUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQorLQkJ cHVibGljIGJvb2wgZ2V0X3ZhbHVlIChHTGliLlZhbHVlIHZhbHVlKTsKKysJCXB1YmxpYyBzdHJp bmcgbmFtZSB7IG93bmVkIGdldDsgY29uc3RydWN0OyB9CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0K KysJCXB1YmxpYyBmbG9hdCByZWZyZXNoX3JhdGUgeyBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KKysJ CVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIGZsb2F0IHNjYWxlIHsgZ2V0OyBzZXQgY29u c3RydWN0OyB9CisrCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKysJCXB1YmxpYyBDbHV0dGVyLlN0YWdl IHN0YWdlIHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQor KwkJcHVibGljIGJvb2wgdXNlX3NoYWRvd2ZiIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJfQorIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0g ImNsdXR0ZXJfc3dpcGVfYWN0aW9uX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjgiKV0KK0BAIC03Mjc0LDUzICs2NzA4LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCBib29s IHN3aXBlIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBDbHV0dGVyLlN3aXBlRGlyZWN0aW9uIGRpcmVj dGlvbik7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RhYmxlX2xheW91dF9nZXRfdHlwZSAoKSIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNp bmNlID0gIjEuNCIpXQorLQlwdWJsaWMgY2xhc3MgVGFibGVMYXlvdXQgOiBDbHV0dGVyLkxheW91 dE1hbmFnZXIgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5 cGUgPSAiQ2x1dHRlckxheW91dE1hbmFnZXIqIildCistCQlwdWJsaWMgVGFibGVMYXlvdXQgKCk7 CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x MiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FsaWdubWVudCAoQ2x1dHRl ci5BY3RvciBhY3Rvciwgb3V0IENsdXR0ZXIuVGFibGVBbGlnbm1lbnQgeF9hbGlnbiwgb3V0IENs dXR0ZXIuVGFibGVBbGlnbm1lbnQgeV9hbGlnbik7CistCQlwdWJsaWMgaW50IGdldF9jb2x1bW5f Y291bnQgKCk7CistCQlwdWJsaWMgdWludCBnZXRfY29sdW1uX3NwYWNpbmcgKCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjEuNCIpXQorLQkJcHVibGljIHVpbnQgZ2V0X2Vhc2luZ19kdXJhdGlvbiAoKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2lu Y2UgPSAiMS40IildCistCQlwdWJsaWMgdWxvbmcgZ2V0X2Vhc2luZ19tb2RlICgpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9leHBhbmQgKENsdXR0ZXIuQWN0b3IgYWN0 b3IsIG91dCBib29sIHhfZXhwYW5kLCBvdXQgYm9vbCB5X2V4cGFuZCk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu NCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2ZpbGwgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIG91dCBi b29sIHhfZmlsbCwgb3V0IGJvb2wgeV9maWxsKTsKKy0JCXB1YmxpYyBpbnQgZ2V0X3Jvd19jb3Vu dCAoKTsKKy0JCXB1YmxpYyB1aW50IGdldF9yb3dfc3BhY2luZyAoKTsKKy0JCXB1YmxpYyB2b2lk IGdldF9zcGFuIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQgaW50IGNvbHVtbl9zcGFuLCBvdXQg aW50IHJvd19zcGFuKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgYm9vbCBnZXRfdXNl X2FuaW1hdGlvbnMgKCk7CistCQlwdWJsaWMgdm9pZCBwYWNrIChDbHV0dGVyLkFjdG9yIGFjdG9y LCBpbnQgY29sdW1uLCBpbnQgcm93KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9p ZCBzZXRfYWxpZ25tZW50IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBDbHV0dGVyLlRhYmxlQWxpZ25t ZW50IHhfYWxpZ24sIENsdXR0ZXIuVGFibGVBbGlnbm1lbnQgeV9hbGlnbik7CistCQlwdWJsaWMg dm9pZCBzZXRfY29sdW1uX3NwYWNpbmcgKHVpbnQgc3BhY2luZyk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIp XQorLQkJcHVibGljIHZvaWQgc2V0X2Vhc2luZ19kdXJhdGlvbiAodWludCBtc2Vjcyk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNp bmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Vhc2luZ19tb2RlICh1bG9uZyBtb2Rl KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfZXhwYW5kIChDbHV0dGVy LkFjdG9yIGFjdG9yLCBib29sIHhfZXhwYW5kLCBib29sIHlfZXhwYW5kKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAi MS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfZmlsbCAoQ2x1dHRlci5BY3RvciBhY3RvciwgYm9v bCB4X2ZpbGwsIGJvb2wgeV9maWxsKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9yb3dfc3BhY2luZyAo dWludCBzcGFjaW5nKTsKKy0JCXB1YmxpYyB2b2lkIHNldF9zcGFuIChDbHV0dGVyLkFjdG9yIGFj dG9yLCBpbnQgY29sdW1uX3NwYW4sIGludCByb3dfc3Bhbik7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuNCIpXQor LQkJcHVibGljIHZvaWQgc2V0X3VzZV9hbmltYXRpb25zIChib29sIGFuaW1hdGUpOworLQkJcHVi bGljIHVpbnQgY29sdW1uX3NwYWNpbmcgeyBnZXQ7IHNldDsgfQorLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0K Ky0JCXB1YmxpYyB1aW50IGVhc2luZ19kdXJhdGlvbiB7IGdldDsgc2V0OyB9CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0g IjEuNCIpXQorLQkJcHVibGljIHVsb25nIGVhc2luZ19tb2RlIHsgZ2V0OyBzZXQ7IH0KKy0JCXB1 YmxpYyB1aW50IHJvd19zcGFjaW5nIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCist CQlwdWJsaWMgYm9vbCB1c2VfYW5pbWF0aW9ucyB7IGdldDsgc2V0OyB9CistCX0KKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJjbHV0 dGVyX3RhcF9hY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQi KV0KKyAJcHVibGljIGNsYXNzIFRhcEFjdGlvbiA6IENsdXR0ZXIuR2VzdHVyZUFjdGlvbiB7CitA QCAtNzM0OCw3ICs2NzM1LDcgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIENsdXR0 ZXIuQ29sb3IgZ2V0X2N1cnNvcl9jb2xvciAoKTsKKyAJCXB1YmxpYyBpbnQgZ2V0X2N1cnNvcl9w b3NpdGlvbiAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCistCQlwdWJsaWMgdm9p ZCBnZXRfY3Vyc29yX3JlY3QgKG91dCB1bm93bmVkIENsdXR0ZXIuUmVjdCByZWN0KTsKKysJCXB1 YmxpYyB2b2lkIGdldF9jdXJzb3JfcmVjdCAob3V0IHVub3duZWQgR3JhcGhlbmUuUmVjdCByZWN0 KTsKKyAJCXB1YmxpYyB1aW50IGdldF9jdXJzb3Jfc2l6ZSAoKTsKKyAJCXB1YmxpYyBib29sIGdl dF9jdXJzb3JfdmlzaWJsZSAoKTsKKyAJCXB1YmxpYyBib29sIGdldF9lZGl0YWJsZSAoKTsKK0BA IC03NDY3LDcgKzY4NTQsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xNiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgY3Vyc29yX2NoYW5n ZWQgKCk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQg Y3Vyc29yX2V2ZW50IChDbHV0dGVyLkdlb21ldHJ5IGdlb21ldHJ5KTsKKysJCXB1YmxpYyB2aXJ0 dWFsIHNpZ25hbCB2b2lkIGN1cnNvcl9ldmVudCAoR3JhcGhlbmUuUmVjdCByZWN0KTsKKyAJCVtI YXNFbWl0dGVyXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorIAkJcHVibGljIHNpZ25h bCB2b2lkIGRlbGV0ZV90ZXh0IChpbnQgc3RhcnRfcG9zLCBpbnQgZW5kX3Bvcyk7CitAQCAtNzUw NSw5NCArNjg5Miw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJQYWludE5vZGUqIildCisgCQlw dWJsaWMgVGV4dE5vZGUgKFBhbmdvLkxheW91dD8gbGF5b3V0LCBDbHV0dGVyLkNvbG9yPyBjb2xv cik7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IiwgdHlwZV9pZCA9ICJjbHV0dGVyX3RleHR1cmVfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24g KHNpbmNlID0gIjAuMiIpXQorLQlwdWJsaWMgY2xhc3MgVGV4dHVyZSA6IENsdXR0ZXIuQWN0b3Is IEF0ay5JbXBsZW1lbnRvciwgQ2x1dHRlci5BbmltYXRhYmxlLCBDbHV0dGVyLkNvbnRhaW5lciwg Q2x1dHRlci5TY3JpcHRhYmxlIHsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlLCB0eXBlID0gIkNsdXR0ZXJBY3RvcioiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCistCQlwdWJsaWMgVGV4dHVyZSAo KTsKKy0JCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlLCB0eXBlID0gIkNs dXR0ZXJBY3RvcioiKV0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21f YWN0b3IgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UsIHR5cGUgPSAiQ2x1dHRlckFjdG9yKiIpXQorLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgi KV0KKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lKSB0aHJvd3Mg Q2x1dHRlci5UZXh0dXJlRXJyb3I7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2Jhc2Vfc2l6ZSAo b3V0IGludCB3aWR0aCwgb3V0IGludCBoZWlnaHQpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1 YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxlIGdldF9jb2dsX21hdGVyaWFsICgpOworLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIwLjgiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxlIGdldF9jb2dsX3RleHR1cmUg KCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIENsdXR0ZXIuVGV4dHVyZVF1YWxpdHkg Z2V0X2ZpbHRlcl9xdWFsaXR5ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyBib29s IGdldF9rZWVwX2FzcGVjdF9yYXRpbyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1 ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMg Ym9vbCBnZXRfbG9hZF9hc3luYyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9v bCBnZXRfbG9hZF9kYXRhX2FzeW5jICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyBp bnQgZ2V0X21heF90aWxlX3dhc3RlICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBi b29sIGdldF9waWNrX3dpdGhfYWxwaGEgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IHZvaWQgZ2V0X3JlcGVhdCAob3V0IGJvb2wgcmVwZWF0X3gsIG91dCBib29sIHJlcGVhdF95KTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEy Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBnZXRfc3luY19zaXplICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIwLjYiKV0KKy0JCXB1YmxpYyBib29sIHNldF9hcmVhX2Zyb21fcmdiX2RhdGEgKFtD Q29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1aW50OFtdIGRhdGEsIGJvb2wgaGFzX2FscGhh LCBpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCwgaW50IHJvd3N0cmlkZSwgaW50 IGJwcCwgQ2x1dHRlci5UZXh0dXJlRmxhZ3MgZmxhZ3MpIHRocm93cyBHTGliLkVycm9yOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBz aW5jZSA9ICIwLjgiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jb2dsX21hdGVyaWFsIChDb2dsLkhh bmRsZSBjb2dsX21hdGVyaWFsKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgdm9pZCBz ZXRfY29nbF90ZXh0dXJlIChDb2dsLkhhbmRsZSBjb2dsX3RleCk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjAuOCIp XQorLQkJcHVibGljIHZvaWQgc2V0X2ZpbHRlcl9xdWFsaXR5IChDbHV0dGVyLlRleHR1cmVRdWFs aXR5IGZpbHRlcl9xdWFsaXR5KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMC44IildCistCQlwdWJsaWMgYm9vbCBz ZXRfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUpIHRocm93cyBHTGliLkVycm9yOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5j ZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBib29sIHNldF9mcm9tX3JnYl9kYXRhIChbQ0NvZGUgKGFy cmF5X2xlbmd0aCA9IGZhbHNlKV0gdWludDhbXSBkYXRhLCBib29sIGhhc19hbHBoYSwgaW50IHdp ZHRoLCBpbnQgaGVpZ2h0LCBpbnQgcm93c3RyaWRlLCBpbnQgYnBwLCBDbHV0dGVyLlRleHR1cmVG bGFncyBmbGFncykgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQorLQkJcHVi bGljIGJvb2wgc2V0X2Zyb21feXV2X2RhdGEgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2Up XSB1aW50OFtdIGRhdGEsIGludCB3aWR0aCwgaW50IGhlaWdodCwgQ2x1dHRlci5UZXh0dXJlRmxh Z3MgZmxhZ3MpIHRocm93cyBHTGliLkVycm9yOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1Ymxp YyB2b2lkIHNldF9rZWVwX2FzcGVjdF9yYXRpbyAoYm9vbCBrZWVwX2FzcGVjdCk7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xvYWRfYXN5bmMgKGJvb2wgbG9hZF9hc3lu Yyk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xvYWRfZGF0YV9hc3lu YyAoYm9vbCBsb2FkX2FzeW5jKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBz ZXRfcGlja193aXRoX2FscGhhIChib29sIHBpY2tfd2l0aF9hbHBoYSk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNlID0gIjEu MCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3JlcGVhdCAoYm9vbCByZXBlYXRfeCwgYm9vbCByZXBl YXRfeSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3N5bmNfc2l6ZSAo Ym9vbCBzeW5jX3NpemUpOworLQkJcHVibGljIENvZ2wuTWF0ZXJpYWwgY29nbF9tYXRlcmlhbCB7 IGdldDsgc2V0OyB9CistCQlwdWJsaWMgQ29nbC5UZXh0dXJlIGNvZ2xfdGV4dHVyZSB7IGdldDsg c2V0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCXB1YmxpYyBib29sIGRpc2FibGVfc2xp Y2luZyB7IGdldDsgY29uc3RydWN0OyB9CistCQlbTm9BY2Nlc3Nvck1ldGhvZF0KKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIildCistCQlw dWJsaWMgc3RyaW5nIGZpbGVuYW1lIHsgb3duZWQgZ2V0OyBzZXQ7IH0KKy0JCXB1YmxpYyBDbHV0 dGVyLlRleHR1cmVRdWFsaXR5IGZpbHRlcl9xdWFsaXR5IHsgZ2V0OyBzZXQgY29uc3RydWN0OyB9 CistCQlwdWJsaWMgYm9vbCBrZWVwX2FzcGVjdF9yYXRpbyB7IGdldDsgc2V0OyB9CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMiIsIHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIGJvb2wgbG9hZF9hc3luYyB7IHNldDsgfQorLQkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIiLCBzaW5jZSA9 ICIxLjAiKV0KKy0JCXB1YmxpYyBib29sIGxvYWRfZGF0YV9hc3luYyB7IHNldDsgfQorLQkJcHVi bGljIGJvb2wgcGlja193aXRoX2FscGhhIHsgZ2V0OyBzZXQ7IH0KKy0JCVtOb0FjY2Vzc29yTWV0 aG9kXQorLQkJcHVibGljIGJvb2wgcmVwZWF0X3ggeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNz b3JNZXRob2RdCistCQlwdWJsaWMgYm9vbCByZXBlYXRfeSB7IGdldDsgc2V0OyB9CistCQlwdWJs aWMgYm9vbCBzeW5jX3NpemUgeyBnZXQ7IHNldDsgfQorLQkJW05vQWNjZXNzb3JNZXRob2RdCist CQlwdWJsaWMgaW50IHRpbGVfd2FzdGUgeyBnZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEyIiwgc2luY2UgPSAiMS4wIildCistCQlw dWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBsb2FkX2ZpbmlzaGVkIChHTGliLkVycm9yIGVycm9y KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjEyIildCistCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBwaXhidWZfY2hhbmdlICgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi KV0KKy0JCXB1YmxpYyB2aXJ0dWFsIHNpZ25hbCB2b2lkIHNpemVfY2hhbmdlIChpbnQgd2lkdGgs IGludCBoZWlnaHQpOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl90ZXh0dXJlX25vZGVfZ2V0X3R5cGUgKCki KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIGNsYXNzIFRleHR1cmVO b2RlIDogQ2x1dHRlci5QaXBlbGluZU5vZGUgeworQEAgLTc2MDQsNyArNjkwMyw3IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJcHVibGljIGNsYXNzIFRpbWVsaW5lIDogR0xpYi5PYmplY3QsIENs dXR0ZXIuU2NyaXB0YWJsZSB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSldCisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCQlwdWJsaWMgVGltZWxpbmUg KHVpbnQgbXNlY3MpOworKwkJcHVibGljIFRpbWVsaW5lICh1aW50IGR1cmF0aW9uX21zKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisgCQlwdWJsaWMgdm9pZCBhZGRfbWFya2VyIChz dHJpbmcgbWFya2VyX25hbWUsIGRvdWJsZSBwcm9ncmVzcyk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMC44IildCitAQCAtNzYxMiwxMiArNjkxMSwxNSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlwdWJsaWMgdm9pZCBhZHZhbmNlICh1aW50IG1zZWNzKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjgiKV0KKyAJCXB1YmxpYyB2b2lkIGFkdmFuY2VfdG9fbWFya2VyIChzdHJpbmcgbWFya2Vy X25hbWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLlRpbWVsaW5lIGNs b25lICgpOworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJ cHVibGljIFRpbWVsaW5lLmZvcl9hY3RvciAoQ2x1dHRlci5BY3RvciBhY3RvciwgdWludCBkdXJh dGlvbl9tcyk7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisr CQlwdWJsaWMgVGltZWxpbmUuZm9yX2ZyYW1lX2Nsb2NrIChDbHV0dGVyLkZyYW1lQ2xvY2sgZnJh bWVfY2xvY2ssIHVpbnQgZHVyYXRpb25fbXMpOworKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5B Y3RvciBnZXRfYWN0b3IgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJs aWMgYm9vbCBnZXRfYXV0b19yZXZlcnNlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTIi KV0KKy0JCXB1YmxpYyBib29sIGdldF9jdWJpY19iZXppZXJfcHJvZ3Jlc3MgKENsdXR0ZXIuUG9p bnQgY18xLCBDbHV0dGVyLlBvaW50IGNfMik7CisrCQlwdWJsaWMgYm9vbCBnZXRfY3ViaWNfYmV6 aWVyX3Byb2dyZXNzIChHcmFwaGVuZS5Qb2ludCBjXzEsIEdyYXBoZW5lLlBvaW50IGNfMik7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIGludCBnZXRfY3VycmVudF9y ZXBlYXQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCitAQCAtNzYzMSw4ICs2OTMz LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K KyAJCXB1YmxpYyBpbnQ2NCBnZXRfZHVyYXRpb25faGludCAoKTsKKyAJCXB1YmxpYyB1aW50IGdl dF9lbGFwc2VkX3RpbWUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIGJvb2wgZ2V0X2xvb3AgKCk7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgZG91YmxlIGdldF9wcm9ncmVzcyAo KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCitAQCAtNzY1MSwxOCArNjk1MSwxOCBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC44IildCisgCQlw dWJsaWMgdm9pZCByZW1vdmVfbWFya2VyIChzdHJpbmcgbWFya2VyX25hbWUpOworIAkJcHVibGlj IHZvaWQgcmV3aW5kICgpOworKwkJcHVibGljIHZvaWQgc2V0X2FjdG9yIChDbHV0dGVyLkFjdG9y PyBhY3Rvcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42IildCisgCQlwdWJsaWMgdm9pZCBz ZXRfYXV0b19yZXZlcnNlIChib29sIHJldmVyc2UpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTIiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9jdWJpY19iZXppZXJfcHJvZ3Jlc3MgKENsdXR0ZXIu UG9pbnQgY18xLCBDbHV0dGVyLlBvaW50IGNfMik7CisrCQlwdWJsaWMgdm9pZCBzZXRfY3ViaWNf YmV6aWVyX3Byb2dyZXNzIChHcmFwaGVuZS5Qb2ludCBjXzEsIEdyYXBoZW5lLlBvaW50IGNfMik7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCisgCQlwdWJsaWMgdm9pZCBzZXRfZGVsYXkg KHVpbnQgbXNlY3MpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHZv aWQgc2V0X2RpcmVjdGlvbiAoQ2x1dHRlci5UaW1lbGluZURpcmVjdGlvbiBkaXJlY3Rpb24pOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHZvaWQgc2V0X2R1cmF0aW9u ICh1aW50IG1zZWNzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdm9pZCBzZXRfbG9vcCAoYm9vbCBsb29wKTsK KysJCXB1YmxpYyB2b2lkIHNldF9mcmFtZV9jbG9jayAoQ2x1dHRlci5GcmFtZUNsb2NrIGZyYW1l X2Nsb2NrKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBz ZXRfcHJvZ3Jlc3NfZnVuYyAob3duZWQgQ2x1dHRlci5UaW1lbGluZVByb2dyZXNzRnVuYz8gZnVu Yyk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTc2NzQsNiArNjk3NCw3IEBA IG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIHNraXAgKHVpbnQgbXNlY3MpOwor IAkJcHVibGljIHZvaWQgc3RhcnQgKCk7CisgCQlwdWJsaWMgdm9pZCBzdG9wICgpOworKwkJcHVi bGljIENsdXR0ZXIuQWN0b3IgYWN0b3IgeyBnZXQ7IHNldCBjb25zdHJ1Y3Q7IH0KKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBib29sIGF1dG9fcmV2ZXJzZSB7IGdldDsg c2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMC40IildCitAQCAtNzY4Miw4ICs2OTgzLDgg QEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIENsdXR0ZXIuVGltZWxpbmVEaXJlY3Rp b24gZGlyZWN0aW9uIHsgZ2V0OyBzZXQ7IH0KKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0K KyAJCXB1YmxpYyB1aW50IGR1cmF0aW9uIHsgZ2V0OyBzZXQ7IH0KKy0JCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgYm9v bCBsb29wIHsgZ2V0OyBzZXQ7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJcHVibGljIENs dXR0ZXIuRnJhbWVDbG9jayBmcmFtZV9jbG9jayB7IG93bmVkIGdldDsgc2V0IGNvbnN0cnVjdDsg fQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBDbHV0dGVyLkFuaW1h dGlvbk1vZGUgcHJvZ3Jlc3NfbW9kZSB7IGdldDsgc2V0OyB9CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorQEAgLTc2OTcsMTIgKzY5OTgsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZv aWQgc3RvcHBlZCAoYm9vbCBpc19maW5pc2hlZCk7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtDb21wYWN0XQorLQlwdWJsaWMgY2xh c3MgVGltZW91dFBvb2wgeworLQkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFs c2UpXQorLQkJcHVibGljIFRpbWVvdXRQb29sIChpbnQgcHJpb3JpdHkpOworLQl9CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGhhc190eXBlX2lkID0g ZmFsc2UpXQorIAlbQ29tcGFjdF0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC03 NzUzLDYgKzcwNDgsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGZsb2F0IHg7 CisgCQlwdWJsaWMgZmxvYXQgeTsKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfdHJhbnNmb3JtX25vZGVfZ2V0 X3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIFRyYW5zZm9ybU5vZGUgOiBDbHV0dGVyLlBhaW50 Tm9kZSB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSwgdHlwZSA9 ICJDbHV0dGVyUGFpbnROb2RlKiIpXQorKwkJcHVibGljIFRyYW5zZm9ybU5vZGUgKENvZ2wuTWF0 cml4IHByb2plY3Rpb24pOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl90cmFuc2l0aW9uX2dldF90eXBlICgp IildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBhYnN0cmFjdCBjbGFz cyBUcmFuc2l0aW9uIDogQ2x1dHRlci5UaW1lbGluZSwgQ2x1dHRlci5TY3JpcHRhYmxlIHsKK0BA IC03NzkyLDcgKzcwOTIsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbQ0NvZGUgKGhhc19j b25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgVmlydHVhbElucHV0RGV2 aWNlICgpOworIAkJcHVibGljIGludCBnZXRfZGV2aWNlX3R5cGUgKCk7CistCQlwdWJsaWMgdW5v d25lZCBDbHV0dGVyLkRldmljZU1hbmFnZXIgZ2V0X21hbmFnZXIgKCk7CisgCQlwdWJsaWMgdmly dHVhbCB2b2lkIG5vdGlmeV9hYnNvbHV0ZV9tb3Rpb24gKHVpbnQ2NCB0aW1lX3VzLCBkb3VibGUg eCwgZG91YmxlIHkpOworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBub3RpZnlfYnV0dG9uICh1aW50 NjQgdGltZV91cywgdWludDMyIGJ1dHRvbiwgQ2x1dHRlci5CdXR0b25TdGF0ZSBidXR0b25fc3Rh dGUpOworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBub3RpZnlfZGlzY3JldGVfc2Nyb2xsICh1aW50 NjQgdGltZV91cywgQ2x1dHRlci5TY3JvbGxEaXJlY3Rpb24gZGlyZWN0aW9uLCBDbHV0dGVyLlNj cm9sbFNvdXJjZSBzY3JvbGxfc291cmNlKTsKK0BAIC03ODAzLDI4ICs3MTAyLDI3IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbm90aWZ5X3RvdWNoX2Rvd24g KHVpbnQ2NCB0aW1lX3VzLCBpbnQgc2xvdCwgZG91YmxlIHgsIGRvdWJsZSB5KTsKKyAJCXB1Ymxp YyB2aXJ0dWFsIHZvaWQgbm90aWZ5X3RvdWNoX21vdGlvbiAodWludDY0IHRpbWVfdXMsIGludCBz bG90LCBkb3VibGUgeCwgZG91YmxlIHkpOworIAkJcHVibGljIHZpcnR1YWwgdm9pZCBub3RpZnlf dG91Y2hfdXAgKHVpbnQ2NCB0aW1lX3VzLCBpbnQgc2xvdCk7CistCQlbTm9BY2Nlc3Nvck1ldGhv ZF0KKy0JCXB1YmxpYyBDbHV0dGVyLkRldmljZU1hbmFnZXIgZGV2aWNlX21hbmFnZXIgeyBvd25l ZCBnZXQ7IGNvbnN0cnVjdDsgfQorIAkJcHVibGljIENsdXR0ZXIuSW5wdXREZXZpY2VUeXBlIGRl dmljZV90eXBlIHsgZ2V0OyBjb25zdHJ1Y3Q7IH0KKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorKwkJ cHVibGljIENsdXR0ZXIuU2VhdCBzZWF0IHsgb3duZWQgZ2V0OyBjb25zdHJ1Y3Q7IH0KKyAJfQor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lk ID0gImNsdXR0ZXJfem9vbV9hY3Rpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTIiKV0KKyAJcHVibGljIGNsYXNzIFpvb21BY3Rpb24gOiBDbHV0dGVyLkdlc3R1cmVB Y3Rpb24geworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UsIHR5cGUg PSAiQ2x1dHRlckFjdGlvbioiKV0KKyAJCXB1YmxpYyBab29tQWN0aW9uICgpOworLQkJcHVibGlj IHZvaWQgZ2V0X2ZvY2FsX3BvaW50IChDbHV0dGVyLlBvaW50IHBvaW50KTsKKy0JCXB1YmxpYyB2 b2lkIGdldF90cmFuc2Zvcm1lZF9mb2NhbF9wb2ludCAoQ2x1dHRlci5Qb2ludCBwb2ludCk7Cisr CQlwdWJsaWMgdm9pZCBnZXRfZm9jYWxfcG9pbnQgKEdyYXBoZW5lLlBvaW50IHBvaW50KTsKKysJ CXB1YmxpYyB2b2lkIGdldF90cmFuc2Zvcm1lZF9mb2NhbF9wb2ludCAoR3JhcGhlbmUuUG9pbnQg cG9pbnQpOworIAkJcHVibGljIENsdXR0ZXIuWm9vbUF4aXMgZ2V0X3pvb21fYXhpcyAoKTsKKyAJ CXB1YmxpYyB2b2lkIHNldF96b29tX2F4aXMgKENsdXR0ZXIuWm9vbUF4aXMgYXhpcyk7CisgCQlw dWJsaWMgQ2x1dHRlci5ab29tQXhpcyB6b29tX2F4aXMgeyBnZXQ7IHNldDsgfQorLQkJcHVibGlj IHZpcnR1YWwgc2lnbmFsIGJvb2wgem9vbSAoQ2x1dHRlci5BY3RvciBhY3RvciwgQ2x1dHRlci5Q b2ludCBmb2NhbF9wb2ludCwgZG91YmxlIGZhY3Rvcik7CisrCQlwdWJsaWMgdmlydHVhbCBzaWdu YWwgYm9vbCB6b29tIChDbHV0dGVyLkFjdG9yIGFjdG9yLCBHcmFwaGVuZS5Qb2ludCBmb2NhbF9w b2ludCwgZG91YmxlIGZhY3Rvcik7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9jbmFtZSA9ICJDbHV0dGVyQW5pbWF0YWJsZUludGVy ZmFjZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9hbmltYXRhYmxlX2dldF90eXBlICgpIildCisgCXB1 YmxpYyBpbnRlcmZhY2UgQW5pbWF0YWJsZSA6IEdMaWIuT2JqZWN0IHsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjgiLCBzaW5jZSA9ICIxLjAi KV0KKy0JCXB1YmxpYyBhYnN0cmFjdCBib29sIGFuaW1hdGVfcHJvcGVydHkgKENsdXR0ZXIuQW5p bWF0aW9uIGFuaW1hdGlvbiwgc3RyaW5nIHByb3BlcnR5X25hbWUsIEdMaWIuVmFsdWUgaW5pdGlh bF92YWx1ZSwgR0xpYi5WYWx1ZSBmaW5hbF92YWx1ZSwgZG91YmxlIHByb2dyZXNzLCBHTGliLlZh bHVlIHZhbHVlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyBhYnN0 cmFjdCB1bm93bmVkIEdMaWIuUGFyYW1TcGVjIGZpbmRfcHJvcGVydHkgKHN0cmluZyBwcm9wZXJ0 eV9uYW1lKTsKKysJCXB1YmxpYyBhYnN0cmFjdCB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X2Fj dG9yICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorIAkJcHVibGljIGFic3RyYWN0 IHZvaWQgZ2V0X2luaXRpYWxfc3RhdGUgKHN0cmluZyBwcm9wZXJ0eV9uYW1lLCBHTGliLlZhbHVl IHZhbHVlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KK0BAIC03ODM1LDEyICs3MTMz LDkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfY29udGFpbmVyX2dldF90eXBl ICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJcHVibGljIGludGVyZmFjZSBD b250YWluZXIgOiBHTGliLk9iamVjdCB7CistCQlwdWJsaWMgdm9pZCBhZGQgKHBhcmFtcyBDbHV0 dGVyLkFjdG9yW10gYWN0b3JzKTsKKyAJCVtDQ29kZSAodmZ1bmNfbmFtZSA9ICJhZGQiKV0KKyAJ CVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwg c2luY2UgPSAiMC40IildCisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBhZGRfYWN0b3IgKENsdXR0 ZXIuQWN0b3IgYWN0b3IpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyB2b2lkIGFkZF92 YWxpc3QgKENsdXR0ZXIuQWN0b3IgZmlyc3RfYWN0b3IsIHZhX2xpc3QgdmFyX2FyZ3MpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorIAkJcHVibGljIHZvaWQgY2hpbGRfZ2V0IChDbHV0 dGVyLkFjdG9yIGFjdG9yLCAuLi4pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorQEAg LTc4NjAsMTggKzcxNTUsMTAgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHZpcnR1 YWwgdm9pZCBkZXN0cm95X2NoaWxkX21ldGEgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjAuNiIpXQorIAkJcHVibGljIHVub3duZWQgQ2x1dHRlci5BY3RvciBm aW5kX2NoaWxkX2J5X25hbWUgKHN0cmluZyBjaGlsZF9uYW1lKTsKKy0JCVtDQ29kZSAoY25hbWUg PSAiY2x1dHRlcl9jb250YWluZXJfY2xhc3NfZmluZF9jaGlsZF9wcm9wZXJ0eSIpXQorLQkJcHVi bGljIGNsYXNzIHVub3duZWQgR0xpYi5QYXJhbVNwZWMgZmluZF9jaGlsZF9wcm9wZXJ0eSAoc3Ry aW5nIHByb3BlcnR5X25hbWUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjQiKV0KKy0JCXB1YmxpYyBhYnN0cmFj dCB2b2lkIEBmb3JlYWNoIChDbHV0dGVyLkNhbGxiYWNrIGNhbGxiYWNrKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAi MS4wIildCistCQlwdWJsaWMgdmlydHVhbCB2b2lkIGZvcmVhY2hfd2l0aF9pbnRlcm5hbHMgKENs dXR0ZXIuQ2FsbGJhY2sgY2FsbGJhY2spOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQor IAkJcHVibGljIHZpcnR1YWwgdW5vd25lZCBDbHV0dGVyLkNoaWxkTWV0YSBnZXRfY2hpbGRfbWV0 YSAoQ2x1dHRlci5BY3RvciBhY3Rvcik7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQorIAkJcHVibGljIEdM aWIuTGlzdDx3ZWFrIENsdXR0ZXIuQWN0b3I+IGdldF9jaGlsZHJlbiAoKTsKKy0JCVtDQ29kZSAo Y25hbWUgPSAiY2x1dHRlcl9jb250YWluZXJfY2xhc3NfbGlzdF9jaGlsZF9wcm9wZXJ0aWVzIild CistCQlwdWJsaWMgY2xhc3MgdW5vd25lZCBHTGliLlBhcmFtU3BlY1tdIGxpc3RfY2hpbGRfcHJv cGVydGllcyAoKTsKKyAJCVtDQ29kZSAodmZ1bmNfbmFtZSA9ICJsb3dlciIpXQorIAkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9 ICIwLjYiKV0KKyAJCXB1YmxpYyB2aXJ0dWFsIHZvaWQgbG93ZXJfY2hpbGQgKENsdXR0ZXIuQWN0 b3IgYWN0b3IsIENsdXR0ZXIuQWN0b3I/IHNpYmxpbmcgPSBudWxsKTsKK0BAIC03ODgzLDggKzcx NzAsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlbQ0NvZGUgKHZmdW5jX25hbWUgPSAicmVt b3ZlIildCisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMCIsIHNpbmNlID0gIjAuNCIpXQorIAkJcHVibGljIGFic3RyYWN0IHZvaWQgcmVtb3Zl X2FjdG9yIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40IildCistCQlwdWJs aWMgdm9pZCByZW1vdmVfdmFsaXN0IChDbHV0dGVyLkFjdG9yIGZpcnN0X2FjdG9yLCB2YV9saXN0 IHZhcl9hcmdzKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBz b3J0X2RlcHRoX29yZGVyICgpOworIAkJcHVibGljIHZpcnR1YWwgc2lnbmFsIHZvaWQgYWN0b3Jf YWRkZWQgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworQEAgLTc5MDEsNyArNzE4Niw3IEBAIG5hbWVz cGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGludmFsaWRhdGUgKCk7Cisg CQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBpbnZhbGlkYXRlX3NpemUgKCk7CisgCQlbTm9XcmFwcGVy XQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgcGFpbnRfY29udGVudCAoQ2x1dHRlci5BY3RvciBh Y3RvciwgQ2x1dHRlci5QYWludE5vZGUgbm9kZSk7CisrCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBw YWludF9jb250ZW50IChDbHV0dGVyLkFjdG9yIGFjdG9yLCBDbHV0dGVyLlBhaW50Tm9kZSBub2Rl LCBDbHV0dGVyLlBhaW50Q29udGV4dCBwYWludF9jb250ZXh0KTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdmlydHVhbCBzaWduYWwgdm9pZCBhdHRhY2hlZCAoQ2x1 dHRlci5BY3RvciBhY3Rvcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTc5 MTUsNDcgKzcyMDAsMTYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIGFic3RyYWN0 IHZvaWQgc2V0X2N1c3RvbV9wcm9wZXJ0eSAoQ2x1dHRlci5TY3JpcHQgc2NyaXB0LCBzdHJpbmcg bmFtZSwgR0xpYi5WYWx1ZSB2YWx1ZSk7CisgCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfaWQg KHN0cmluZyBpZF8pOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIpXQorLQlwdWJsaWMgaW50ZXJmYWNlIFN0YWdlV2luZG93IDogR0xpYi5PYmpl Y3QgeworLQkJW05vV3JhcHBlcl0KKy0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGFkZF9yZWRyYXdf Y2xpcCAoQ2x1dHRlci5HZW9tZXRyeSBzdGFnZV9yZWN0YW5nbGUpOworLQkJW05vV3JhcHBlcl0K Ky0JCXB1YmxpYyBhYnN0cmFjdCB2b2lkIGdldF9nZW9tZXRyeSAoQ2x1dHRlci5HZW9tZXRyeSBn ZW9tZXRyeSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IGludCBnZXRfcGVu ZGluZ19zd2FwcyAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3QgdW5vd25l ZCBDbHV0dGVyLkFjdG9yIGdldF93cmFwcGVyICgpOworLQkJW05vV3JhcHBlcl0KKy0JCXB1Ymxp YyBhYnN0cmFjdCBib29sIGhhc19yZWRyYXdfY2xpcHMgKCk7CistCQlbTm9XcmFwcGVyXQorLQkJ cHVibGljIGFic3RyYWN0IHZvaWQgaGlkZSAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMg YWJzdHJhY3QgYm9vbCBpZ25vcmluZ19yZWRyYXdfY2xpcHMgKCk7CistCQlbTm9XcmFwcGVyXQor LQkJcHVibGljIGFic3RyYWN0IGJvb2wgcmVhbGl6ZSAoKTsKKy0JCVtOb1dyYXBwZXJdCistCQlw dWJsaWMgYWJzdHJhY3Qgdm9pZCByZXNpemUgKGludCB3aWR0aCwgaW50IGhlaWdodCk7CistCQlb Tm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgc2V0X2N1cnNvcl92aXNpYmxlIChi b29sIGN1cnNvcl92aXNpYmxlKTsKKy0JCVtOb1dyYXBwZXJdCistCQlwdWJsaWMgYWJzdHJhY3Qg dm9pZCBzZXRfZnVsbHNjcmVlbiAoYm9vbCBpc19mdWxsc2NyZWVuKTsKKy0JCVtOb1dyYXBwZXJd CistCQlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzZXRfdGl0bGUgKHN0cmluZyB0aXRsZSk7CistCQlb Tm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZvaWQgc2V0X3VzZXJfcmVzaXphYmxlIChi b29sIGlzX3Jlc2l6YWJsZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3RyYWN0IHZv aWQgc2hvdyAoYm9vbCBkb19yYWlzZSk7CistCQlbTm9XcmFwcGVyXQorLQkJcHVibGljIGFic3Ry YWN0IHZvaWQgdW5yZWFsaXplICgpOworLQl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiQ0xVVFRFUl9UWVBFX0FDVE9SX0JPWCIp XQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5 X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVl IiwgdHlwZV9pZCA9ICJjbHV0dGVyX2FjdG9yX2JveF9nZXRfdHlwZSAoKSIpXQorIAlwdWJsaWMg c3RydWN0IEFjdG9yQm94IHsKKyAJCXB1YmxpYyBmbG9hdCB4MTsKKyAJCXB1YmxpYyBmbG9hdCB5 MTsKKyAJCXB1YmxpYyBmbG9hdCB4MjsKKyAJCXB1YmxpYyBmbG9hdCB5MjsKKysJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEyIildCisrCQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuQWN0b3JCb3g/IGFs bG9jICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHZvaWQgY2xh bXBfdG9fcGl4ZWwgKCk7CisrCQlwdWJsaWMgc3RhdGljIHZvaWQgY2xhbXBfdG9fcGl4ZWwgKHJl ZiBDbHV0dGVyLkFjdG9yQm94IGJveCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisg CQlwdWJsaWMgYm9vbCBjb250YWlucyAoZmxvYXQgeCwgZmxvYXQgeSk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4wIildCitAQCAtNzk2NCw4ICs3MjE4LDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIg eworIAkJcHVibGljIGJvb2wgZXF1YWwgKENsdXR0ZXIuQWN0b3JCb3ggYm94X2IpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCVtDQ29k ZSAoY25hbWUgPSAiY2x1dHRlcl9hY3Rvcl9ib3hfZnJvbV92ZXJ0aWNlcyIpXQorLQkJcHVibGlj IEFjdG9yQm94LmZyb21fdmVydGljZXMgKENsdXR0ZXIuVmVydGV4W10gdmVydHMpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIGZsb2F0IGdldF9hcmVhICgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorQEAgLTc5ODYsNiArNzIzOCw3IEBAIG5hbWVzcGFj ZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyB2b2lkIGluaXRfcmVjdCAoZmxvYXQgeCwgZmxvYXQgeSwg ZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4yIild CisgCQlwdWJsaWMgQ2x1dHRlci5BY3RvckJveCBpbnRlcnBvbGF0ZSAoQ2x1dHRlci5BY3RvckJv eCBmaW5hbCwgZG91YmxlIHByb2dyZXNzKTsKKysJCXB1YmxpYyBib29sIGlzX2luaXRpYWxpemVk ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIHZvaWQgc2NhbGUg KGZsb2F0IHNjYWxlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KK0BAIC04MDExLDcg KzcyNjQsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlwdWJsaWMgd2VhayBDYWlyby5TdXJm YWNlIGltYWdlOworIAkJcHVibGljIENhaXJvLlJlY3RhbmdsZUludCByZWN0OworIAl9CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAi Q0xVVFRFUl9UWVBFX0NPTE9SIildCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5j dGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNsdXR0ZXJfY29sb3JfZ2V0X3R5cGUg KCkiKV0KKyAJcHVibGljIHN0cnVjdCBDb2xvciB7CisgCQlwdWJsaWMgdWludDggcmVkOworIAkJ cHVibGljIHVpbnQ4IGdyZWVuOworQEAgLTgwMjcsMTIgKzcyODAsMTEgQEAgbmFtZXNwYWNlIENs dXR0ZXIgeworIAkJcHVibGljIGJvb2wgZXF1YWwgKENsdXR0ZXIuQ29sb3IgdjIpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjAuMiIpXQorIAkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCVtDQ29k ZSAoY25hbWUgPSAiY2x1dHRlcl9jb2xvcl9mcm9tX2hscyIpXQorLQkJcHVibGljIENvbG9yLmZy b21faGxzIChmbG9hdCBodWUsIGZsb2F0IGx1bWluYW5jZSwgZmxvYXQgc2F0dXJhdGlvbik7Cist CQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfY29sb3JfZnJvbV9waXhlbCIpXQorLQkJcHVibGlj IENvbG9yLmZyb21fcGl4ZWwgKHVpbnQzMiBwaXhlbCk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNs dXR0ZXJfY29sb3JfZnJvbV9zdHJpbmciKV0KKy0JCXB1YmxpYyBDb2xvci5mcm9tX3N0cmluZyAo c3RyaW5nIHN0cik7CisrCQlwdWJsaWMgc3RhdGljIHZvaWQgZnJvbV9obHMgKG91dCBDbHV0dGVy LkNvbG9yIGNvbG9yLCBmbG9hdCBodWUsIGZsb2F0IGx1bWluYW5jZSwgZmxvYXQgc2F0dXJhdGlv bik7CisrCQlwdWJsaWMgc3RhdGljIHZvaWQgZnJvbV9waXhlbCAob3V0IENsdXR0ZXIuQ29sb3Ig Y29sb3IsIHVpbnQzMiBwaXhlbCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCisrCQlw dWJsaWMgc3RhdGljIGJvb2wgZnJvbV9zdHJpbmcgKG91dCBDbHV0dGVyLkNvbG9yIGNvbG9yLCBz dHJpbmcgc3RyKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1YmxpYyBzdGF0 aWMgdW5vd25lZCBDbHV0dGVyLkNvbG9yPyBnZXRfc3RhdGljIChDbHV0dGVyLlN0YXRpY0NvbG9y IGNvbG9yKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJCXB1YmxpYyB1aW50IGhh c2ggKCk7CitAQCAtODA0MSw4ICs3MjkzLDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIENsdXR0ZXIuQ29sb3IgaW50ZXJwb2xh dGUgKENsdXR0ZXIuQ29sb3IgZmluYWwsIGRvdWJsZSBwcm9ncmVzcyk7CisgCQlwdWJsaWMgQ2x1 dHRlci5Db2xvciBsaWdodGVuICgpOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX2NvbG9y X2Zyb21fc3RyaW5nIildCistCQlwdWJsaWMgYm9vbCBwYXJzZV9zdHJpbmcgKHN0cmluZyBzdHIp OworIAkJcHVibGljIENsdXR0ZXIuQ29sb3Igc2hhZGUgKGRvdWJsZSBmYWN0b3IpOworIAkJcHVi bGljIENsdXR0ZXIuQ29sb3Igc3VidHJhY3QgKENsdXR0ZXIuQ29sb3IgYik7CisgCQlwdWJsaWMg dm9pZCB0b19obHMgKG91dCBmbG9hdCBodWUsIG91dCBmbG9hdCBsdW1pbmFuY2UsIG91dCBmbG9h dCBzYXR1cmF0aW9uKTsKK0BAIC04MDUwLDIzICs3MzAwLDEwIEBAIG5hbWVzcGFjZSBDbHV0dGVy IHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KKyAJCXB1YmxpYyBzdHJpbmcgdG9fc3Ry aW5nICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0 ZXIuaCIsIHR5cGVfaWQgPSAiY2x1dHRlcl9mb2dfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIw LjYiKV0KKy0JcHVibGljIHN0cnVjdCBGb2cgeworLQkJcHVibGljIGZsb2F0IHpfbmVhcjsKKy0J CXB1YmxpYyBmbG9hdCB6X2ZhcjsKKy0JfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiLCB0eXBlX2lkID0gImNsdXR0ZXJfZ2VvbWV0cnlfZ2V0X3R5cGUg KCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiKV0KKy0JcHVibGljIHN0cnVjdCBHZW9tZXRyeSB7CistCQlwdWJsaWMgaW50IHg7Cist CQlwdWJsaWMgaW50IHk7CistCQlwdWJsaWMgdWludCB3aWR0aDsKKy0JCXB1YmxpYyB1aW50IGhl aWdodDsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JCXB1YmxpYyBib29sIGludGVy c2VjdHMgKENsdXR0ZXIuR2VvbWV0cnkgZ2VvbWV0cnkxKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjQiKV0KKy0JCXB1YmxpYyBDbHV0dGVyLkdlb21ldHJ5IHVuaW9uIChDbHV0dGVyLkdlb21l dHJ5IGdlb21ldHJ5X2IpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKysJcHVibGljIHN0cnVjdCBGcmFtZUxp c3RlbmVySWZhY2UgeworKwkJcHVibGljIHdlYWsgZ2xvYmFsOjpiZWZvcmVfZnJhbWUgYmVmb3Jl X2ZyYW1lOworKwkJcHVibGljIHdlYWsgZ2xvYmFsOjpmcmFtZSBmcmFtZTsKKyAJfQorIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKyAJcHVibGljIHN0cnVjdCBLYmRBMTF5U2V0dGluZ3MgeworQEAgLTgwNzgsNyAr NzMxNSw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBpbnQgbW91c2VrZXlzX21h eF9zcGVlZDsKKyAJCXB1YmxpYyBpbnQgbW91c2VrZXlzX2FjY2VsX3RpbWU7CisgCX0KKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJj bHV0dGVyX2tub3RfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVl X2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9rbm90X2dldF90 eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KKyAJcHVibGljIHN0cnVjdCBL bm90IHsKKyAJCXB1YmxpYyBpbnQgeDsKK0BAIC04MDg3LDggKzczMjQsMTkgQEAgbmFtZXNwYWNl IENsdXR0ZXIgeworIAkJcHVibGljIGJvb2wgZXF1YWwgKENsdXR0ZXIuS25vdCBrbm90X2IpOwor IAkJcHVibGljIHZvaWQgZnJlZSAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgdHlwZV9pZCA9ICJDT0dMX1RZUEVfTUFUUklYIildCisgCXB1Ymxp YyBzdHJ1Y3QgTWF0cml4IDogQ29nbC5NYXRyaXggeworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEu MTIiKV0KKysJCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5NYXRyaXg/IGFsbG9jICgpOworKwkJW1Zl cnNpb24gKHNpbmNlID0gIjEuMTIiKV0KKysJCXB1YmxpYyB2b2lkIGZyZWUgKCk7CisrCQlwdWJs aWMgc3RhdGljIEdMaWIuVHlwZSBnZXRfdHlwZSAoKTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEyIildCisrCQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLk1hdHJpeD8gaW5pdF9mcm9tX2FycmF5 IChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXQgdmFsdWVzWzE2XSk7CisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorKwkJcHVibGljIHVub3duZWQgQ2x1dHRlci5NYXRy aXg/IGluaXRfZnJvbV9tYXRyaXggKENsdXR0ZXIuTWF0cml4IGIpOworKwkJW1ZlcnNpb24gKHNp bmNlID0gIjEuMTIiKV0KKysJCXB1YmxpYyB1bm93bmVkIENsdXR0ZXIuTWF0cml4PyBpbml0X2lk ZW50aXR5ICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgc3RydWN0IFBhZEJ1dHRv bkV2ZW50IHsKK0BAIC04MTMwLDcgKzczNzgsNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlw dWJsaWMgZG91YmxlIHZhbHVlOworIAkJcHVibGljIHVpbnQzMiBtb2RlOworIAl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9wYXRoX25vZGVfZ2V0X3R5cGUgKCkiKV0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBm cmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYXRoX25v ZGVfZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMg c3RydWN0IFBhdGhOb2RlIHsKKyAJCXB1YmxpYyBDbHV0dGVyLlBhdGhOb2RlVHlwZSB0eXBlOwor QEAgLTgxNDAsNyArNzM4OCw3IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCXB1YmxpYyBib29s IGVxdWFsIChDbHV0dGVyLlBhdGhOb2RlIG5vZGVfYik7CisgCQlwdWJsaWMgdm9pZCBmcmVlICgp OworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIs IHR5cGVfaWQgPSAiY2x1dHRlcl9wZXJzcGVjdGl2ZV9nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0g ImdfYm94ZWRfY29weSIsIGZyZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9 ICJjbHV0dGVyX3BlcnNwZWN0aXZlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjQiKV0KKyAJcHVibGljIHN0cnVjdCBQZXJzcGVjdGl2ZSB7CisgCQlwdWJsaWMgZmxvYXQg Zm92eTsKK0BAIC04MTQ5LDYgKzczOTcsMTkgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVi bGljIGZsb2F0IHpfZmFyOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0 dGVyL2NsdXR0ZXIuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorKwlwdWJsaWMgc3RydWN0IFBv aW50ZXJBMTF5U2V0dGluZ3MgeworKwkJcHVibGljIENsdXR0ZXIuUG9pbnRlckExMXlGbGFncyBj b250cm9sczsKKysJCXB1YmxpYyBDbHV0dGVyLlBvaW50ZXJBMTF5RHdlbGxDbGlja1R5cGUgZHdl bGxfY2xpY2tfdHlwZTsKKysJCXB1YmxpYyBDbHV0dGVyLlBvaW50ZXJBMTF5RHdlbGxNb2RlIGR3 ZWxsX21vZGU7CisrCQlwdWJsaWMgQ2x1dHRlci5Qb2ludGVyQTExeUR3ZWxsRGlyZWN0aW9uIGR3 ZWxsX2dlc3R1cmVfc2luZ2xlOworKwkJcHVibGljIENsdXR0ZXIuUG9pbnRlckExMXlEd2VsbERp cmVjdGlvbiBkd2VsbF9nZXN0dXJlX2RvdWJsZTsKKysJCXB1YmxpYyBDbHV0dGVyLlBvaW50ZXJB MTF5RHdlbGxEaXJlY3Rpb24gZHdlbGxfZ2VzdHVyZV9kcmFnOworKwkJcHVibGljIENsdXR0ZXIu UG9pbnRlckExMXlEd2VsbERpcmVjdGlvbiBkd2VsbF9nZXN0dXJlX3NlY29uZGFyeTsKKysJCXB1 YmxpYyBpbnQgc2Vjb25kYXJ5X2NsaWNrX2RlbGF5OworKwkJcHVibGljIGludCBkd2VsbF9kZWxh eTsKKysJCXB1YmxpYyBpbnQgZHdlbGxfdGhyZXNob2xkOworKwl9CisrCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQor IAlbVmVyc2lvbiAoc2luY2UgPSAiMS4yOCIpXQorIAlwdWJsaWMgc3RydWN0IFByb3hpbWl0eUV2 ZW50IHsKKyAJCXB1YmxpYyBDbHV0dGVyLkV2ZW50VHlwZSB0eXBlOworQEAgLTgxNTgsNDcgKzc0 MTksMTYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJcHVibGljIHdlYWsgQ2x1dHRlci5BY3Rv ciBzb3VyY2U7CisgCQlwdWJsaWMgd2VhayBDbHV0dGVyLklucHV0RGV2aWNlIGRldmljZTsKKyAJ fQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCB0eXBl X2lkID0gIkNMVVRURVJfVFlQRV9VTklUUyIpXQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjb3B5X2Z1bmN0aW9uID0gImdfYm94ZWRfY29weSIsIGZy ZWVfZnVuY3Rpb24gPSAiZ19ib3hlZF9mcmVlIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3VuaXRzX2dl dF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIHN0cnVj dCBVbml0cyB7CisgCQlwdWJsaWMgQ2x1dHRlci5Vbml0cz8gY29weSAoKTsKKyAJCXB1YmxpYyB2 b2lkIGZyZWUgKCk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9jbSIp XQorLQkJcHVibGljIFVuaXRzLmZyb21fY20gKGZsb2F0IGNtKTsKKy0JCVtDQ29kZSAoY25hbWUg PSAiY2x1dHRlcl91bml0c19mcm9tX2VtIildCistCQlwdWJsaWMgVW5pdHMuZnJvbV9lbSAoZmxv YXQgZW0pOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX3VuaXRzX2Zyb21fZW1fZm9yX2Zv bnQiKV0KKy0JCXB1YmxpYyBVbml0cy5mcm9tX2VtX2Zvcl9mb250IChzdHJpbmcgZm9udF9uYW1l LCBmbG9hdCBlbSk7CistCQlbQ0NvZGUgKGNuYW1lID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9tbSIp XQorLQkJcHVibGljIFVuaXRzLmZyb21fbW0gKGZsb2F0IG1tKTsKKy0JCVtDQ29kZSAoY25hbWUg PSAiY2x1dHRlcl91bml0c19mcm9tX3BpeGVscyIpXQorLQkJcHVibGljIFVuaXRzLmZyb21fcGl4 ZWxzIChpbnQgcHgpOworLQkJW0NDb2RlIChjbmFtZSA9ICJjbHV0dGVyX3VuaXRzX2Zyb21fcHQi KV0KKy0JCXB1YmxpYyBVbml0cy5mcm9tX3B0IChmbG9hdCBwdCk7CistCQlbQ0NvZGUgKGNuYW1l ID0gImNsdXR0ZXJfdW5pdHNfZnJvbV9zdHJpbmciKV0KKy0JCXB1YmxpYyBVbml0cy5mcm9tX3N0 cmluZyAoc3RyaW5nIHN0cik7CisgCQlwdWJsaWMgQ2x1dHRlci5Vbml0VHlwZSBnZXRfdW5pdF90 eXBlICgpOworIAkJcHVibGljIGZsb2F0IGdldF91bml0X3ZhbHVlICgpOworIAkJcHVibGljIGZs b2F0IHRvX3BpeGVscyAoKTsKKyAJCXB1YmxpYyBzdHJpbmcgdG9fc3RyaW5nICgpOworIAl9Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIHR5cGVfaWQg PSAiY2x1dHRlcl92ZXJ0ZXhfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAu NCIpXQorLQlwdWJsaWMgc3RydWN0IFZlcnRleCB7CistCQlwdWJsaWMgZmxvYXQgeDsKKy0JCXB1 YmxpYyBmbG9hdCB5OworLQkJcHVibGljIGZsb2F0IHo7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMiIpXQorLQkJcHVibGljIHN0YXRpYyBDbHV0dGVyLlZlcnRleD8gYWxsb2MgKCk7CistCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ2x1dHRlci5WZXJ0ZXg/IGNvcHkg KCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgYm9vbCBlcXVhbCAo Q2x1dHRlci5WZXJ0ZXggdmVydGV4X2IpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIHZvaWQgZnJlZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCist CQlwdWJsaWMgdW5vd25lZCBDbHV0dGVyLlZlcnRleD8gaW5pdCAoZmxvYXQgeCwgZmxvYXQgeSwg ZmxvYXQgeik7CistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0FDVE9SX0FMSUdOXyIsIHR5cGVfaWQgPSAiY2x1 dHRlcl9hY3Rvcl9hbGlnbl9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4x MCIpXQorIAlwdWJsaWMgZW51bSBBY3RvckFsaWduIHsKK0BAIC04MjIzLDE0ICs3NDUzLDYgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAkJWV9BWElTLAorIAkJQk9USAorIAl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRF Ul8iLCB0eXBlX2lkID0gImNsdXR0ZXJfYWxsb2NhdGlvbl9mbGFnc19nZXRfdHlwZSAoKSIpXQor LQlbRmxhZ3NdCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGVudW0gQWxs b2NhdGlvbkZsYWdzIHsKKy0JCUFMTE9DQVRJT05fTk9ORSwKKy0JCUFCU09MVVRFX09SSUdJTl9D SEFOR0VELAorLQkJREVMRUdBVEVfTEFZT1VUCistCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSXyIsIHR5cGVfaWQg PSAiY2x1dHRlcl9hbmltYXRpb25fbW9kZV9nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4wIildCisgCXB1YmxpYyBlbnVtIEFuaW1hdGlvbk1vZGUgeworQEAgLTgzMzYsNiAr NzU1OCwyNyBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlZX0FYSVMsCisgCQlCT1RICisgCX0K KysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZp eCA9ICJDTFVUVEVSX0RFQlVHXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9kZWJ1Z19mbGFnX2dldF90 eXBlICgpIildCisrCVtGbGFnc10KKysJcHVibGljIGVudW0gRGVidWdGbGFnIHsKKysJCU1JU0Ms CisrCQlBQ1RPUiwKKysJCVRFWFRVUkUsCisrCQlFVkVOVCwKKysJCVBBSU5ULAorKwkJUEFOR08s CisrCQlCQUNLRU5ELAorKwkJU0NIRURVTEVSLAorKwkJU0NSSVBULAorKwkJU0hBREVSLAorKwkJ TVVMVElTVEFHRSwKKysJCUFOSU1BVElPTiwKKysJCUxBWU9VVCwKKysJCVBJQ0ssCisrCQlFVkVO VExPT1AsCisrCQlDTElQUElORywKKysJCU9PQl9UUkFOU0ZPUk1TCisrCX0KKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVS X0RSQUdfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2RyYWdfYXhpc19nZXRfdHlwZSAoKSIpXQorIAlb VmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBlbnVtIERyYWdBeGlzIHsKK0BAIC04 MzQzLDExICs3NTg2LDI0IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJCVhfQVhJUywKKyAJCVlf QVhJUworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIu aCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9FRkZFQ1RfUEFJTlRfQUNUT1JfIiwgdHlwZV9pZCA9ICJj bHV0dGVyX2VmZmVjdF9wYWludF9mbGFnc19nZXRfdHlwZSAoKSIpXQorKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfREVC VUdfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2RyYXdfZGVidWdfZmxhZ19nZXRfdHlwZSAoKSIpXQor KwlbRmxhZ3NdCisrCXB1YmxpYyBlbnVtIERyYXdEZWJ1Z0ZsYWcgeworKwkJRElTQUJMRV9TV0FQ X0VWRU5UUywKKysJCURJU0FCTEVfQ0xJUFBFRF9SRURSQVdTLAorKwkJUkVEUkFXUywKKysJCVBB SU5UX1ZPTFVNRVMsCisrCQlESVNBQkxFX0NVTExJTkcsCisrCQlESVNBQkxFX09GRlNDUkVFTl9S RURJUkVDVCwKKysJCUNPTlRJTlVPVVNfUkVEUkFXLAorKwkJUEFJTlRfREVGT1JNX1RJTEVTLAor KwkJUEFJTlRfREFNQUdFX1JFR0lPTgorKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9FRkZFQ1RfUEFJTlRfIiwg dHlwZV9pZCA9ICJjbHV0dGVyX2VmZmVjdF9wYWludF9mbGFnc19nZXRfdHlwZSAoKSIpXQorIAlb RmxhZ3NdCisgCXB1YmxpYyBlbnVtIEVmZmVjdFBhaW50RmxhZ3MgeworLQkJW0NDb2RlIChjbmFt ZSA9ICJDTFVUVEVSX0VGRkVDVF9QQUlOVF9BQ1RPUl9ESVJUWSIpXQorLQkJQUNUT1JfRElSVFkK KysJCUFDVE9SX0RJUlRZLAorKwkJQllQQVNTX0VGRkVDVAorIAl9CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9FVkVO VF8iLCB0eXBlX2lkID0gImNsdXR0ZXJfZXZlbnRfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKyAJW0Zs YWdzXQorQEAgLTgzOTIsMjEgKzc2NDgsMTIgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAlbRmxh Z3NdCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjQiKV0KKyAJcHVibGljIGVudW0gRmVhdHVyZUZs YWdzIHsKKy0JCVRFWFRVUkVfTlBPVCwKKy0JCVNXQVBfVEhST1RUTEUsCistCQlURVhUVVJFX1lV ViwKKy0JCVRFWFRVUkVfUkVBRF9QSVhFTFMsCisgCQlTVEFHRV9TVEFUSUMsCistCQlTVEFHRV9V U0VSX1JFU0laRSwKKyAJCVNUQUdFX0NVUlNPUiwKKyAJCVNIQURFUlNfR0xTTCwKKyAJCU9GRlND UkVFTiwKKyAJCVNUQUdFX01VTFRJUExFLAorLQkJU1dBUF9FVkVOVFM7CistCQlbQ0NvZGUgKGNu YW1lID0gImNsdXR0ZXJfZmVhdHVyZV9hdmFpbGFibGUiKV0KKy0JCXB1YmxpYyBib29sIGlzX2F2 YWlsYWJsZSAoKTsKKy0JCVtDQ29kZSAoY25hbWUgPSAiY2x1dHRlcl9mZWF0dXJlX2dldF9hbGwi KV0KKy0JCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5GZWF0dXJlRmxhZ3MgQGdldCAoKTsKKysJCVNX QVBfRVZFTlRTCisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0ZMT1dfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX2Zs b3dfb3JpZW50YXRpb25fZ2V0X3R5cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMiIp XQorQEAgLTg0MTQsMTIgKzc2NjEsMTAgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJSE9SSVpP TlRBTCwKKyAJCVZFUlRJQ0FMCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX0ZPTlRfIiwgdHlwZV9pZCA9ICJj bHV0dGVyX2ZvbnRfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKy0JW0ZsYWdzXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yMiIsIHNpbmNlID0gIjEu MCIpXQorLQlwdWJsaWMgZW51bSBGb250RmxhZ3MgeworLQkJTUlQTUFQUElORywKKy0JCUhJTlRJ TkcKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3By ZWZpeCA9ICJDTFVUVEVSX0ZSQU1FX1JFU1VMVF8iLCB0eXBlX2lkID0gImNsdXR0ZXJfZnJhbWVf cmVzdWx0X2dldF90eXBlICgpIildCisrCXB1YmxpYyBlbnVtIEZyYW1lUmVzdWx0IHsKKysJCVBF TkRJTkdfUFJFU0VOVEVELAorKwkJSURMRQorIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xVVFRFUl9HRVNUVVJFX1RSSUdH RVJfRURHRV8iLCB0eXBlX2lkID0gImNsdXR0ZXJfZ2VzdHVyZV90cmlnZ2VyX2VkZ2VfZ2V0X3R5 cGUgKCkiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KK0BAIC04NjM0LDcgKzc4Nzks OCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJ cHVibGljIGVudW0gT2Zmc2NyZWVuUmVkaXJlY3QgeworIAkJQVVUT01BVElDX0ZPUl9PUEFDSVRZ LAorLQkJQUxXQVlTCisrCQlBTFdBWVMsCisrCQlPTl9JRExFCisgCX0KKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX09S SUVOVEFUSU9OXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9vcmllbnRhdGlvbl9nZXRfdHlwZSAoKSIp XQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMiIpXQorQEAgLTg2NDIsNiArNzg4OCwxMyBAQCBu YW1lc3BhY2UgQ2x1dHRlciB7CisgCQlIT1JJWk9OVEFMLAorIAkJVkVSVElDQUwKKyAJfQorKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0g IkNMVVRURVJfUEFJTlRfRkxBR18iLCB0eXBlX2lkID0gImNsdXR0ZXJfcGFpbnRfZmxhZ19nZXRf dHlwZSAoKSIpXQorKwlbRmxhZ3NdCisrCXB1YmxpYyBlbnVtIFBhaW50RmxhZyB7CisrCQlOT05F LAorKwkJTk9fQ1VSU09SUywKKysJCUZPUkNFX0NVUlNPUlMKKysJfQorIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfUEFO XyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9wYW5fYXhpc19nZXRfdHlwZSAoKSIpXQorIAlbVmVyc2lv biAoc2luY2UgPSAiMS4xMiIpXQorIAlwdWJsaWMgZW51bSBQYW5BeGlzIHsKK0BAIC04NjYxLDYg Kzc5MTQsMTEgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJUkVMX0xJTkVfVE8sCisgCQlSRUxf Q1VSVkVfVE8KKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0 dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfREVCVUdfTk9QXyIsIHR5cGVfaWQgPSAiY2x1dHRl cl9waWNrX2RlYnVnX2ZsYWdfZ2V0X3R5cGUgKCkiKV0KKysJW0ZsYWdzXQorKwlwdWJsaWMgZW51 bSBQaWNrRGVidWdGbGFnIHsKKysJCVBJQ0tJTkcKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfUElDS18iLCB0 eXBlX2lkID0gImNsdXR0ZXJfcGlja19tb2RlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKyAJcHVibGljIGVudW0gUGlja01vZGUgeworQEAgLTg2NjgsMTMgKzc5 MjYsNDYgQEAgbmFtZXNwYWNlIENsdXR0ZXIgeworIAkJUkVBQ1RJVkUsCisgCQlBTEwKKyAJfQor KwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4 ID0gIkNMVVRURVJfQTExWV9EV0VMTF9DTElDS19UWVBFXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9w b2ludGVyX2ExMXlfZHdlbGxfY2xpY2tfdHlwZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgZW51 bSBQb2ludGVyQTExeUR3ZWxsQ2xpY2tUeXBlIHsKKysJCU5PTkUsCisrCQlQUklNQVJZLAorKwkJ U0VDT05EQVJZLAorKwkJTUlERExFLAorKwkJRE9VQkxFLAorKwkJRFJBRworKwl9CisrCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGNwcmVmaXggPSAiQ0xV VFRFUl9BMTFZX0RXRUxMX0RJUkVDVElPTl8iLCB0eXBlX2lkID0gImNsdXR0ZXJfcG9pbnRlcl9h MTF5X2R3ZWxsX2RpcmVjdGlvbl9nZXRfdHlwZSAoKSIpXQorKwlwdWJsaWMgZW51bSBQb2ludGVy QTExeUR3ZWxsRGlyZWN0aW9uIHsKKysJCU5PTkUsCisrCQlMRUZULAorKwkJUklHSFQsCisrCQlV UCwKKysJCURPV04KKysJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfQTExWV9EV0VMTF9NT0RFXyIsIHR5cGVfaWQg PSAiY2x1dHRlcl9wb2ludGVyX2ExMXlfZHdlbGxfbW9kZV9nZXRfdHlwZSAoKSIpXQorKwlwdWJs aWMgZW51bSBQb2ludGVyQTExeUR3ZWxsTW9kZSB7CisrCQlXSU5ET1csCisrCQlHRVNUVVJFCisr CX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3By ZWZpeCA9ICJDTFVUVEVSX0ExMVlfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3BvaW50ZXJfYTExeV9m bGFnc19nZXRfdHlwZSAoKSIpXQorKwlbRmxhZ3NdCisrCXB1YmxpYyBlbnVtIFBvaW50ZXJBMTF5 RmxhZ3MgeworKwkJU0VDT05EQVJZX0NMSUNLX0VOQUJMRUQsCisrCQlEV0VMTF9FTkFCTEVECisr CX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgY3By ZWZpeCA9ICJDTFVUVEVSX0ExMVlfVElNRU9VVF9UWVBFXyIsIHR5cGVfaWQgPSAiY2x1dHRlcl9w b2ludGVyX2ExMXlfdGltZW91dF90eXBlX2dldF90eXBlICgpIildCisrCXB1YmxpYyBlbnVtIFBv aW50ZXJBMTF5VGltZW91dFR5cGUgeworKwkJU0VDT05EQVJZX0NMSUNLLAorKwkJRFdFTEwsCisr CQlHRVNUVVJFCisrCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIiwgY3ByZWZpeCA9ICJDTFVUVEVSX1JFUEFJTlRfRkxBR1NfIiwgdHlwZV9pZCA9ICJj bHV0dGVyX3JlcGFpbnRfZmxhZ3NfZ2V0X3R5cGUgKCkiKV0KKyAJW0ZsYWdzXQorIAlbVmVyc2lv biAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJsaWMgZW51bSBSZXBhaW50RmxhZ3MgeworIAkJUFJF X1BBSU5ULAorLQkJUE9TVF9QQUlOVCwKKy0JCVFVRVVFX1JFRFJBV19PTl9BREQKKysJCVBPU1Rf UEFJTlQKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCBjcHJlZml4ID0gIkNMVVRURVJfUkVRVUVTVF8iLCB0eXBlX2lkID0gImNsdXR0ZXJfcmVx dWVzdF9tb2RlX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjgiKV0KK0BA IC04NzU1LDggKzgwNDYsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCVtGbGFnc10KKyAJW1Zl cnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAlwdWJsaWMgZW51bSBTdGFnZVN0YXRlIHsKKy0JCUZV TExTQ1JFRU4sCistCQlPRkZTQ1JFRU4sCisgCQlBQ1RJVkFURUQKKyAJfQorIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJf Q09MT1JfIiwgdHlwZV9pZCA9ICJjbHV0dGVyX3N0YXRpY19jb2xvcl9nZXRfdHlwZSAoKSIpXQor QEAgLTg4MjMsMTMgKzgxMTIsNiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlMRUZULAorIAkJ UklHSFQKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVy LmgiLCBjcHJlZml4ID0gIkNMVVRURVJfVEFCTEVfQUxJR05NRU5UXyIsIHR5cGVfaWQgPSAiY2x1 dHRlcl90YWJsZV9hbGlnbm1lbnRfZ2V0X3R5cGUgKCkiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMjIiLCBzaW5jZSA9ICIxLjQiKV0KKy0J cHVibGljIGVudW0gVGFibGVBbGlnbm1lbnQgeworLQkJU1RBUlQsCistCQlDRU5URVIsCistCQlF TkQKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi LCBjcHJlZml4ID0gIkNMVVRURVJfVEVYVF9ESVJFQ1RJT05fIiwgdHlwZV9pZCA9ICJjbHV0dGVy X3RleHRfZGlyZWN0aW9uX2dldF90eXBlICgpIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIi KV0KKyAJcHVibGljIGVudW0gVGV4dERpcmVjdGlvbiB7CitAQCAtODkwNSwyOCArODE4NywxNiBA QCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCQlWQUxVRTsKKyAJCXB1YmxpYyBzdGF0aWMgR0xpYi5R dWFyayBxdWFyayAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCBjcHJlZml4ID0gIkNMVVRURVJfVEVYVFVSRV9FUlJPUl8iKV0KKy0JW1Zl cnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQlwdWJsaWMgZXJyb3Jkb21haW4gVGV4dHVyZUVycm9y IHsKKy0JCU9VVF9PRl9NRU1PUlksCistCQlOT19ZVVYsCistCQlCQURfRk9STUFUOworLQkJcHVi bGljIHN0YXRpYyBHTGliLlF1YXJrIHF1YXJrICgpOworLQl9CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisgCVtW ZXJzaW9uIChzaW5jZSA9ICIxLjI0IildCisgCXB1YmxpYyBkZWxlZ2F0ZSBDbHV0dGVyLkFjdG9y IEFjdG9yQ3JlYXRlQ2hpbGRGdW5jIChHTGliLk9iamVjdCBpdGVtKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTIi LCBzaW5jZSA9ICIwLjIiKV0KKy0JcHVibGljIGRlbGVnYXRlIGRvdWJsZSBBbHBoYUZ1bmMgKENs dXR0ZXIuQWxwaGEgYWxwaGEpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS42Iiwgc2luY2UgPSAiMC4yIildCistCXB1 YmxpYyBkZWxlZ2F0ZSB2b2lkIEJlaGF2aW91ckZvcmVhY2hGdW5jIChDbHV0dGVyLkJlaGF2aW91 ciBiZWhhdmlvdXIsIENsdXR0ZXIuQWN0b3IgYWN0b3IpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBpbnN0YW5jZV9wb3MgPSA0LjkpXQorIAlbVmVy c2lvbiAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBkZWxlZ2F0ZSBib29sIEJpbmRpbmdBY3Rp b25GdW5jIChHTGliLk9iamVjdCBnb2JqZWN0LCBzdHJpbmcgYWN0aW9uX25hbWUsIHVpbnQga2V5 X3ZhbCwgQ2x1dHRlci5Nb2RpZmllclR5cGUgbW9kaWZpZXJzKTsKKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIiwgaW5zdGFuY2VfcG9zID0gMS45KV0KKyAJ cHVibGljIGRlbGVnYXRlIHZvaWQgQ2FsbGJhY2sgKENsdXR0ZXIuQWN0b3IgYWN0b3IpOworKwlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBoYXNfdGFyZ2V0 ID0gZmFsc2UpXQorKwlwdWJsaWMgZGVsZWdhdGUgdm9pZCBFbWl0SW5wdXREZXZpY2VFdmVudCAo Q2x1dHRlci5FdmVudCBldmVudCwgQ2x1dHRlci5JbnB1dERldmljZSBkZXZpY2UpOworIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiLCBpbnN0YW5jZV9wb3Mg PSAxLjkpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQorIAlwdWJsaWMgZGVsZWdhdGUg Ym9vbCBFdmVudEZpbHRlckZ1bmMgKENsdXR0ZXIuRXZlbnQgZXZlbnQpOworQEAgLTg5NTcsOSAr ODIyNyw2IEBAIG5hbWVzcGFjZSBDbHV0dGVyIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIp XQorIAlwdWJsaWMgY29uc3QgaW50IFBSSU9SSVRZX1JFRFJBVzsKKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEyIildCistCXB1YmxpYyBzdGF0aWMgQ2x1dHRlci5BY3RvckJveD8gYWN0b3JfYm94X2FsbG9j ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0K KyAJcHVibGljIHN0YXRpYyB2b2lkIGJhc2VfaW5pdCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEy IildCitAQCAtODk3MSwzNyArODIzOCwxMiBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCBjaGVja193aW5kb3dp bmdfYmFja2VuZCAoc3RyaW5nIGJhY2tlbmRfdHlwZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgY2xlYXJfZ2x5cGhfY2FjaGUgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgY29sb3Jf ZnJvbV9obHMgKG91dCBDbHV0dGVyLkNvbG9yIGNvbG9yLCBmbG9hdCBodWUsIGZsb2F0IGx1bWlu YW5jZSwgZmxvYXQgc2F0dXJhdGlvbik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgY29sb3JfZnJvbV9waXhl bCAob3V0IENsdXR0ZXIuQ29sb3IgY29sb3IsIHVpbnQzMiBwaXhlbCk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBjb2xvcl9mcm9tX3N0cmluZyAob3V0IENs dXR0ZXIuQ29sb3IgY29sb3IsIHN0cmluZyBzdHIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQor LQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5Db2xvcj8gY29sb3JfZ2V0X3N0YXRpYyAo Q2x1dHRlci5TdGF0aWNDb2xvciBjb2xvcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQorIAlw dWJsaWMgc3RhdGljIHZvaWQgZGlzYWJsZV9hY2Nlc3NpYmlsaXR5ICgpOworIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNl ID0gIjAuNCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgZG9fZXZlbnQgKENsdXR0ZXIuRXZlbnQg ZXZlbnQpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgi KV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyB1aW50IGV2 ZW50X2FkZF9maWx0ZXIgKENsdXR0ZXIuU3RhZ2U/IHN0YWdlLCBbQ0NvZGUgKGRlbGVnYXRlX3Rh cmdldF9wb3MgPSAyLjIsIGRlc3Ryb3lfbm90aWZ5X3BvcyA9IDIuMSldIG93bmVkIENsdXR0ZXIu RXZlbnRGaWx0ZXJGdW5jIGZ1bmMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorLQlwdWJsaWMg c3RhdGljIENsdXR0ZXIuRXZlbnQgZXZlbnRfZ2V0ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIp XQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ2x1dHRlci5FdmVudCBldmVudF9wZWVrICgpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1Zl cnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGV2ZW50X3JlbW92 ZV9maWx0ZXIgKHVpbnQgaWQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAlwdWJsaWMgc3Rh dGljIGJvb2wgZXZlbnRzX3BlbmRpbmcgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorQEAgLTkwMTQsOSArODI1Niw2IEBAIG5hbWVzcGFjZSBD bHV0dGVyIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3RhdGljIHVp bnQzMiBnZXRfY3VycmVudF9ldmVudF90aW1lICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyBib29sIGdldF9k ZWJ1Z19lbmFibGVkICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjAuNCIpXQorIAlwdWJsaWMgc3RhdGlj IHVub3duZWQgQ2x1dHRlci5CYWNrZW5kIGdldF9kZWZhdWx0X2JhY2tlbmQgKCk7CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorQEAgLTkwMjYsMTgg KzgyNjUsOSBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjIi KV0KKyAJcHVibGljIHN0YXRpYyBDbHV0dGVyLlRleHREaXJlY3Rpb24gZ2V0X2RlZmF1bHRfdGV4 dF9kaXJlY3Rpb24gKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2Ns dXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIENsdXR0ZXIuRm9u dEZsYWdzIGdldF9mb250X2ZsYWdzICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJs aWMgc3RhdGljIHVub3duZWQgUGFuZ28uRm9udE1hcCBnZXRfZm9udF9tYXAgKCk7CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAo c2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDbHV0dGVyLkFjdG9yIGdl dF9rZXlib2FyZF9ncmFiICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0 X21vdGlvbl9ldmVudHNfZW5hYmxlZCAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KKyAJcHVi bGljIHN0YXRpYyBHTGliLk9wdGlvbkdyb3VwIGdldF9vcHRpb25fZ3JvdXAgKCk7CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorQEAgLTkwNDUsMjYg KzgyNzUsOCBAQCBuYW1lc3BhY2UgQ2x1dHRlciB7CisgCXB1YmxpYyBzdGF0aWMgR0xpYi5PcHRp b25Hcm91cCBnZXRfb3B0aW9uX2dyb3VwX3dpdGhvdXRfaW5pdCAoKTsKKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9 ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgZ2V0X3BvaW50 ZXJfZ3JhYiAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRl ci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjYiKV0KKyAJcHVibGljIHN0YXRpYyB1bm93 bmVkIHN0cmluZyBnZXRfc2NyaXB0X2lkIChHTGliLk9iamVjdCBnb2JqZWN0KTsKKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC40 IildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRfc2hvd19mcHMgKCk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGlj IHVsb25nIGdldF90aW1lc3RhbXAgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj bHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMC42IildCistCXB1Ymxp YyBzdGF0aWMgdm9pZCBncmFiX2tleWJvYXJkIChDbHV0dGVyLkFjdG9yIGFjdG9yKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9u IChzaW5jZSA9ICIwLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGdyYWJfcG9pbnRlciAoQ2x1 dHRlci5BY3RvciBhY3Rvcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVy L2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZ3Jh Yl9wb2ludGVyX2Zvcl9kZXZpY2UgKENsdXR0ZXIuQWN0b3IgYWN0b3IsIGludCBpZF8pOworLQlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKyAJcHVibGlj IHN0YXRpYyBDbHV0dGVyLkluaXRFcnJvciBpbml0IChbQ0NvZGUgKGFycmF5X2xlbmd0aF9jbmFt ZSA9ICJhcmdjIiwgYXJyYXlfbGVuZ3RoX3BvcyA9IDAuNSldIHJlZiB1bm93bmVkIHN0cmluZ1td PyBhcmd2KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5o IildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIwLjIiKV0KK0BAIC05MDgwLDQxICs4MjkyLDYgQEAg bmFtZXNwYWNlIENsdXR0ZXIgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRl ci9jbHV0dGVyLmgiKV0KKyAJcHVibGljIHN0YXRpYyB2b2lkIHNldF9jdXN0b21fYmFja2VuZF9m dW5jICh2b2lkKiBmdW5jKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIv Y2x1dHRlci5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRf ZGVmYXVsdF9mcmFtZV9yYXRlICh1aW50IGZyYW1lc19wZXJfc2VjKTsKKy0JW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2luY2UgPSAiMS4wIildCist CXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfZm9udF9mbGFncyAoQ2x1dHRlci5Gb250RmxhZ3MgZmxh Z3MpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIs IHNpbmNlID0gIjAuNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X21vdGlvbl9ldmVudHNf ZW5hYmxlZCAoYm9vbCBlbmFibGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1 dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIHRlc3RfYWRkX2RhdGFfZnVsbCAoc3RyaW5nIHRlc3RfcGF0aCwgb3duZWQg R0xpYi5UZXN0RGF0YUZ1bmMgdGVzdF9mdW5jKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCist CXB1YmxpYyBzdGF0aWMgYm9vbCB0ZXN0X2NoZWNrX2FjdG9yX2F0X3BvaW50IChDbHV0dGVyLkFj dG9yIHN0YWdlLCBDbHV0dGVyLlBvaW50IHBvaW50LCBDbHV0dGVyLkFjdG9yIGFjdG9yLCBvdXQg Q2x1dHRlci5BY3Rvcj8gcmVzdWx0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNs dXR0ZXIvY2x1dHRlci5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCXB1Ymxp YyBzdGF0aWMgYm9vbCB0ZXN0X2NoZWNrX2NvbG9yX2F0X3BvaW50IChDbHV0dGVyLkFjdG9yIHN0 YWdlLCBDbHV0dGVyLlBvaW50IHBvaW50LCBDbHV0dGVyLkNvbG9yIGNvbG9yLCBvdXQgQ2x1dHRl ci5Db2xvciByZXN1bHQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY2x1dHRlci9j bHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JcHVibGljIHN0YXRp YyB1bm93bmVkIENsdXR0ZXIuQWN0b3IgdGVzdF9nZXRfc3RhZ2UgKCk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgdGVzdF9pbml0IChpbnQgYXJnYywgc3RyaW5nIGFyZ3YpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY2x1dHRlci9jbHV0dGVyLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEu MTgiKV0KKy0JcHVibGljIHN0YXRpYyBpbnQgdGVzdF9ydW4gKCk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAi MC42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB1bmdyYWJfa2V5Ym9hcmQgKCk7CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjbHV0dGVyL2NsdXR0ZXIuaCIpXQorLQlbVmVyc2lvbiAo c2luY2UgPSAiMC42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB1bmdyYWJfcG9pbnRlciAoKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1dHRlci5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIiwgc2lu Y2UgPSAiMC44IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB1bmdyYWJfcG9pbnRlcl9mb3JfZGV2 aWNlIChpbnQgaWRfKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNsdXR0ZXIvY2x1 dHRlci5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBzdGF0aWMg dWludCB1bmljb2RlX3RvX2tleXN5bSAodWludDMyIHdjKTsKKyB9CitkaWZmIC0tZ2l0IHZhcGkv bXV0dGVyLWNvZ2wtNS1jdXN0b20udmFsYSB2YXBpL211dHRlci1jb2dsLTYtY3VzdG9tLnZhbGEK K3NpbWlsYXJpdHkgaW5kZXggMTAwJQorcmVuYW1lIGZyb20gdmFwaS9tdXR0ZXItY29nbC01LWN1 c3RvbS52YWxhCityZW5hbWUgdG8gdmFwaS9tdXR0ZXItY29nbC02LWN1c3RvbS52YWxhCitkaWZm IC0tZ2l0IHZhcGkvbXV0dGVyLWNvZ2wtNC5kZXBzIHZhcGkvbXV0dGVyLWNvZ2wtNi5kZXBzCitz aW1pbGFyaXR5IGluZGV4IDEwMCUKK3JlbmFtZSBmcm9tIHZhcGkvbXV0dGVyLWNvZ2wtNC5kZXBz CityZW5hbWUgdG8gdmFwaS9tdXR0ZXItY29nbC02LmRlcHMKK2RpZmYgLS1naXQgdmFwaS9tdXR0 ZXItY29nbC01LnZhcGkgdmFwaS9tdXR0ZXItY29nbC02LnZhcGkKK3NpbWlsYXJpdHkgaW5kZXgg NjglCityZW5hbWUgZnJvbSB2YXBpL211dHRlci1jb2dsLTUudmFwaQorcmVuYW1lIHRvIHZhcGkv bXV0dGVyLWNvZ2wtNi52YXBpCitpbmRleCBhODk2MTIyNC4uMTk1ZTNiMTcgMTAwNjQ0CistLS0g dmFwaS9tdXR0ZXItY29nbC01LnZhcGkKKysrKyB2YXBpL211dHRlci1jb2dsLTYudmFwaQorQEAg LTEsNiArMSw2IEBACistLyogbXV0dGVyLWNvZ2wtNS52YXBpIGdlbmVyYXRlZCBieSB2YXBpZ2Vu LCBkbyBub3QgbW9kaWZ5LiAqLworKy8qIG11dHRlci1jb2dsLTYudmFwaSBnZW5lcmF0ZWQgYnkg dmFwaWdlbiwgZG8gbm90IG1vZGlmeS4gKi8KKyAKKy1bQ0NvZGUgKGNwcmVmaXggPSAiQ29nbCIs IGdpcl9uYW1lc3BhY2UgPSAiQ29nbCIsIGdpcl92ZXJzaW9uID0gIjUiLCBsb3dlcl9jYXNlX2Nw cmVmaXggPSAiY29nbF8iKV0KKytbQ0NvZGUgKGNwcmVmaXggPSAiQ29nbCIsIGdpcl9uYW1lc3Bh Y2UgPSAiQ29nbCIsIGdpcl92ZXJzaW9uID0gIjYiLCBsb3dlcl9jYXNlX2NwcmVmaXggPSAiY29n bF8iKV0KKyBuYW1lc3BhY2UgQ29nbCB7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNvZ2xIYW5kbGUiLCB0eXBlX2lkID0gImNvZ2xfYml0bWFw X2dldF9ndHlwZSAoKSIpXQorIAlbQ29tcGFjdF0KK0BAIC0yOCw5ICsyOCwxMCBAQCBuYW1lc3Bh Y2UgQ29nbCB7CisgCQlwdWJsaWMgYm9vbCBzZXRfZGF0YSAoc2l6ZV90IG9mZnNldCwgW0NDb2Rl IChhcnJheV9sZW5ndGhfdHlwZSA9ICJzaXplX3QiKV0gdWludDhbXSBkYXRhKTsKKyAJCXB1Ymxp YyB2b2lkIHVubWFwICgpOworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNs YXNzIEV1bGVyIHsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg dHlwZV9pZCA9ICJjb2dsX2NvbnRleHRfZ2V0X2d0eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBD b250ZXh0IDogQ29nbC5PYmplY3QgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIENvbnRleHQgKCk7CisgCX0KKyAJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVkX2Nv cHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiY29nbF9mcmFt ZV9jbG9zdXJlX2dldF9ndHlwZSAoKSIpXQorIAlbQ29tcGFjdF0KK0BAIC02NSw2MiArNjYsMTcg QEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UpXQorIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiKV0KKyAJCXB1YmxpYyBNYXRlcmlhbCAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4yIildCist CQlwdWJsaWMgQ29nbC5NYXRlcmlhbCBjb3B5ICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1 YmxpYyB2b2lkIGZvcmVhY2hfbGF5ZXIgKENvZ2wuTWF0ZXJpYWxMYXllckNhbGxiYWNrIGNhbGxi YWNrKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfYW1iaWVudCAoQ29n bC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ29nbC5Db2xv ciBnZXRfY29sb3IgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2Rp ZmZ1c2UgKENvZ2wuQ29sb3IgZGlmZnVzZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IHZvaWQgZ2V0X2VtaXNzaW9uIChDb2dsLkNvbG9yIGVtaXNzaW9uKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40 IildCistCQlwdWJsaWMgYm9vbCBnZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVk IChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1h dGVyaWFsV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9wIChpbnQgbGF5ZXJfaW5kZXgpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X2xh eWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0J CXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV90IChpbnQg bGF5ZXJfaW5kZXgpOworLQkJcHVibGljIHVub3duZWQgR0xpYi5MaXN0PENvZ2wuTWF0ZXJpYWxM YXllcj4gZ2V0X2xheWVycyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgaW50IGdl dF9uX2xheWVycyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3Bv aW50X3NpemUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGZsb2F0IGdldF9zaGlu aW5lc3MgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3NwZWN1bGFy IChDb2dsLkNvbG9yIHNwZWN1bGFyKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5v d25lZCBDb2dsLkhhbmRsZSBnZXRfdXNlcl9wcm9ncmFtICgpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIsIHNpbmNlID0gIjEuMCIpXQor LQkJcHVibGljIHN0YXRpYyB1bm93bmVkIENvZ2wuSGFuZGxlIEByZWYgKENvZ2wuSGFuZGxlIG1h dGVyaWFsKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2IildCistCQlwdWJsaWMgdm9pZCByZW1vdmVfbGF5ZXIgKGludCBsYXllcl9pbmRl eCk7CisgCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xNiIsIHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2FscGhhX3Rlc3RfZnVu Y3Rpb24gKENvZ2wuTWF0ZXJpYWxBbHBoYUZ1bmMgYWxwaGFfZnVuYywgZmxvYXQgYWxwaGFfcmVm ZXJlbmNlKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVudCAo Q29nbC5Db2xvciBhbWJpZW50KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVw cmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBz ZXRfYW1iaWVudF9hbmRfZGlmZnVzZSAoQ29nbC5Db2xvciBjb2xvcik7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEu MCIpXQorIAkJcHVibGljIGJvb2wgc2V0X2JsZW5kIChzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJv d3MgR0xpYi5FcnJvcjsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfYmxl bmRfY29uc3RhbnQgKENvZ2wuQ29sb3IgY29uc3RhbnRfY29sb3IpOworIAkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAi KV0KKyAJCXB1YmxpYyB2b2lkIHNldF9jb2xvciAoQ29nbC5Db2xvciBjb2xvcik7CisgCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yNGYgKGZsb2F0IHJlZCwgZmxvYXQg Z3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCQlw dWJsaWMgdm9pZCBzZXRfY29sb3I0dWIgKHVpbnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJs dWUsIHVpbnQ4IGFscGhhKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRf ZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJs aWMgdm9pZCBzZXRfZW1pc3Npb24gKENvZ2wuQ29sb3IgZW1pc3Npb24pOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIx LjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9sYXllciAoaW50IGxheWVyX2luZGV4LCBDb2dsLkhh bmRsZSB0ZXh0dXJlKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgYm9vbCBzZXRfbGF5 ZXJfY29tYmluZSAoaW50IGxheWVyX2luZGV4LCBzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3Mg R0xpYi5FcnJvcjsKK0BAIC0xMzMsNDEgKzg5LDEzIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2lu Y2UgPSAiMS40IildCisgCQlwdWJsaWMgYm9vbCBzZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jk c19lbmFibGVkIChpbnQgbGF5ZXJfaW5kZXgsIGJvb2wgZW5hYmxlKSB0aHJvd3MgR0xpYi5FcnJv cjsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2Rl IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS40IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXll cl9pbmRleCwgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfcyAoaW50IGxheWVyX2luZGV4LCBD b2dsLk1hdGVyaWFsV3JhcE1vZGUgbW9kZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJp YWxXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdm9pZCBzZXRf cG9pbnRfc2l6ZSAoZmxvYXQgcG9pbnRfc2l6ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVi bGljIHZvaWQgc2V0X3NoaW5pbmVzcyAoZmxvYXQgc2hpbmluZXNzKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4w IildCistCQlwdWJsaWMgdm9pZCBzZXRfc3BlY3VsYXIgKENvZ2wuQ29sb3Igc3BlY3VsYXIpOwor IAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF91c2VyX3Byb2dyYW0gKENvZ2wu SGFuZGxlIHByb2dyYW0pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lk IHVucmVmIChDb2dsLkhhbmRsZSBtYXRlcmlhbCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtDb21wYWN0 XQorIAlwdWJsaWMgY2xhc3MgTWF0ZXJpYWxMYXllciB7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIENvZ2wuTWF0 ZXJpYWxGaWx0ZXIgZ2V0X21hZ19maWx0ZXIgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJp YWxGaWx0ZXIgZ2V0X21pbl9maWx0ZXIgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIHVub3duZWQgQ29nbC5I YW5kbGUgZ2V0X3RleHR1cmUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxMYXllclR5 cGUgZ2V0X3R5cGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJp YWxXcmFwTW9kZSBnZXRfd3JhcF9tb2RlX3AgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVi bGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfd3JhcF9tb2RlX3MgKCk7CistCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuNCIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfd3JhcF9tb2RlX3Qg KCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlw ZV9pZCA9ICJjb2dsX29iamVjdF9nZXRfZ3R5cGUgKCkiKV0KKyAJcHVibGljIGFic3RyYWN0IGNs YXNzIE9iamVjdCB7CitAQCAtMTc4LDEzICsxMDYsOSBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCXB1 YmxpYyBjbGFzcyBPZmZzY3JlZW4gOiBDb2dsLk9iamVjdCwgQ29nbC5GcmFtZWJ1ZmZlciB7Cisg CQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQg T2Zmc2NyZWVuICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkKiBAcmVmICh2b2lkKiBvZmZz Y3JlZW4pOworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0K KyAJCXB1YmxpYyBPZmZzY3JlZW4udG9fdGV4dHVyZSAoQ29nbC5UZXh0dXJlIHRleHR1cmUpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIp XQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHVucmVmICh2b2lkKiBvZmZzY3JlZW4pOworIAkJW0ND b2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHVibGljIE9mZnNjcmVl bi53aXRoX3RleHR1cmUgKENvZ2wuVGV4dHVyZSB0ZXh0dXJlKTsKKyAJfQorQEAgLTE5Niw5ICsx MjAsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgQ29nbC5PbnNjcmVlbkRpcnR5Q2xv c3VyZSBhZGRfZGlydHlfY2FsbGJhY2sgKFtDQ29kZSAoZGVsZWdhdGVfdGFyZ2V0X3BvcyA9IDEu NSldIENvZ2wuT25zY3JlZW5EaXJ0eUNhbGxiYWNrIGNhbGxiYWNrLCBDb2dsLlVzZXJEYXRhRGVz dHJveUNhbGxiYWNrPyBkZXN0cm95KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJ CXB1YmxpYyBDb2dsLk9uc2NyZWVuUmVzaXplQ2xvc3VyZSBhZGRfcmVzaXplX2NhbGxiYWNrIChb Q0NvZGUgKGRlbGVnYXRlX3RhcmdldF9wb3MgPSAxLjUpXSBDb2dsLk9uc2NyZWVuUmVzaXplQ2Fs bGJhY2sgY2FsbGJhY2ssIENvZ2wuVXNlckRhdGFEZXN0cm95Q2FsbGJhY2s/IGRlc3Ryb3kpOwor LQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTQi LCBzaW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgdWludCBhZGRfc3dhcF9idWZmZXJzX2NhbGxi YWNrIChDb2dsLlN3YXBCdWZmZXJzTm90aWZ5IGNhbGxiYWNrKTsKKy0JCXB1YmxpYyBzdGF0aWMg dm9pZCBjbHV0dGVyX2JhY2tlbmRfc2V0X3NpemVfQ0xVVFRFUiAoaW50IHdpZHRoLCBpbnQgaGVp Z2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisgCQlwdWJsaWMgaW50IGdldF9i dWZmZXJfYWdlICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KK0BAIC0yMTMsOCAr MTM0LDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIHZvaWQgcmVtb3ZlX2ZyYW1lX2Nh bGxiYWNrIChDb2dsLkZyYW1lQ2xvc3VyZSBjbG9zdXJlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHJlbW92ZV9yZXNpemVfY2FsbGJhY2sgKENvZ2wuT25z Y3JlZW5SZXNpemVDbG9zdXJlIGNsb3N1cmUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTQiLCBzaW5jZSA9ICIxLjEwIildCistCQlwdWJs aWMgdm9pZCByZW1vdmVfc3dhcF9idWZmZXJzX2NhbGxiYWNrICh1aW50IGlkKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9yZXNpemFibGUgKGJvb2wg cmVzaXphYmxlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KK0BAIC0yNDQsNyArMTYz LDggQEAgbmFtZXNwYWNlIENvZ2wgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfcGlwZWxpbmVfZ2V0X2d0eXBlICgpIildCisgCXB1 YmxpYyBjbGFzcyBQaXBlbGluZSA6IENvZ2wuT2JqZWN0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0 cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKy0JCXByb3RlY3RlZCBQaXBlbGluZSAoKTsKKysJCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKysJCXB1YmxpYyBQaXBlbGluZSAoQ29nbC5Db250ZXh0 IGNvbnRleHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIENvZ2wu UGlwZWxpbmUgY29weSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KK0BAIC0yNTQs MTYgKzE3NCwxMCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X2FscGhhX3Rlc3RfcmVmZXJlbmNlICgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FtYmllbnQgKENvZ2wu Q29sb3IgYW1iaWVudCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMg Q29nbC5Db2xvciBnZXRfY29sb3IgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisg CQlwdWJsaWMgQ29nbC5QaXBlbGluZUN1bGxGYWNlTW9kZSBnZXRfY3VsbF9mYWNlX21vZGUgKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBnZXRfZGlmZnVz ZSAoQ29nbC5Db2xvciBkaWZmdXNlKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0J CXB1YmxpYyB2b2lkIGdldF9lbWlzc2lvbiAoQ29nbC5Db2xvciBlbWlzc2lvbik7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgQ29nbC5XaW5kaW5nIGdldF9mcm9udF9m YWNlX3dpbmRpbmcgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGlj IENvZ2wuUGlwZWxpbmVGaWx0ZXIgZ2V0X2xheWVyX21hZ19maWx0ZXIgKGludCBsYXllcl9pbmRl eCk7CitAQCAtMjc0LDggKzE4OCw2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdW5vd25lZCBDb2dsLlRleHR1cmUgZ2V0X2xheWVy X3RleHR1cmUgKGludCBsYXllcl9pbmRleCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS42Iild CistCQlwdWJsaWMgQ29nbC5QaXBlbGluZVdyYXBNb2RlIGdldF9sYXllcl93cmFwX21vZGVfcCAo aW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjYiKV0KKyAJCXB1Ymxp YyBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5ZXJf aW5kZXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQorIAkJcHVibGljIENvZ2wuUGlw ZWxpbmVXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3QgKGludCBsYXllcl9pbmRleCk7CitA QCAtMjg2LDEwICsxOTgsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X3BvaW50X3NpemUgKCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3NoaW5pbmVzcyAoKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9zcGVjdWxhciAo Q29nbC5Db2xvciBzcGVjdWxhcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlw dWJsaWMgaW50IGdldF91bmlmb3JtX2xvY2F0aW9uIChzdHJpbmcgdW5pZm9ybV9uYW1lKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxl IGdldF91c2VyX3Byb2dyYW0gKCk7CitAQCAtMjk4LDEwICsyMDYsNiBAQCBuYW1lc3BhY2UgQ29n bCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfYWxw aGFfdGVzdF9mdW5jdGlvbiAoQ29nbC5QaXBlbGluZUFscGhhRnVuYyBhbHBoYV9mdW5jLCBmbG9h dCBhbHBoYV9yZWZlcmVuY2UpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVi bGljIHZvaWQgc2V0X2FtYmllbnQgKENvZ2wuQ29sb3IgYW1iaWVudCk7CistCQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVudF9hbmRfZGlmZnVzZSAo Q29nbC5Db2xvciBjb2xvcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJs aWMgYm9vbCBzZXRfYmxlbmQgKHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVycm9y OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2JsZW5k X2NvbnN0YW50IChDb2dsLkNvbG9yIGNvbnN0YW50X2NvbG9yKTsKK0BAIC0zMTQsMTAgKzIxOCw2 IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1 YmxpYyB2b2lkIHNldF9jdWxsX2ZhY2VfbW9kZSAoQ29nbC5QaXBlbGluZUN1bGxGYWNlTW9kZSBj dWxsX2ZhY2VfbW9kZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMg dm9pZCBzZXRfZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNlKTsKKy0JCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9lbWlzc2lvbiAoQ29nbC5Db2xvciBlbWlz c2lvbik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRf ZnJvbnRfZmFjZV93aW5kaW5nIChDb2dsLldpbmRpbmcgZnJvbnRfd2luZGluZyk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgYm9vbCBzZXRfbGF5ZXJfY29tYmluZSAo aW50IGxheWVyX2luZGV4LCBzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsK K0BAIC0zMzUsOCArMjM1LDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZSAoaW50IGxheWVy X2luZGV4LCBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgbW9kZSk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGludCBsYXll cl9pbmRleCwgQ29nbC5QaXBlbGluZVdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV9zIChpbnQgbGF5 ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBtb2RlKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfdCAoaW50IGxh eWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgbW9kZSk7CitAQCAtMzQ1LDEwICsyNDMs NiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlw dWJsaWMgdm9pZCBzZXRfcG9pbnRfc2l6ZSAoZmxvYXQgcG9pbnRfc2l6ZSk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfc2hpbmluZXNzIChmbG9hdCBz aGluaW5lc3MpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQg c2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNwZWN1bGFyKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF91bmlmb3JtXzFmIChpbnQgdW5pZm9ybV9sb2Nh dGlvbiwgZmxvYXQgdmFsdWUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVi bGljIHZvaWQgc2V0X3VuaWZvcm1fMWkgKGludCB1bmlmb3JtX2xvY2F0aW9uLCBpbnQgdmFsdWUp OworQEAgLTM4MiwxMCArMjc2LDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIHN0YXRp YyB2b2lkIHVuaWZvcm1fbWF0cml4IChpbnQgdW5pZm9ybV9ubywgaW50IHNpemUsIGJvb2wgdHJh bnNwb3NlLCBbQ0NvZGUgKGFycmF5X2xlbmd0aF9wb3MgPSAyLjkpXSBmbG9hdFtdIHZhbHVlKTsK KyAJCXB1YmxpYyB2b2lkIHVzZSAoKTsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKy0JW0NvbXBhY3RdCistCXB1 YmxpYyBjbGFzcyBRdWF0ZXJuaW9uIHsKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDb2dsSGFuZGxlIiwgcmVmX2Z1bmN0aW9uID0gImNv Z2xfc2hhZGVyX3JlZiIsIHVucmVmX2Z1bmN0aW9uID0gImNvZ2xfc2hhZGVyX3VucmVmIildCisg CVtDb21wYWN0XQorIAlwdWJsaWMgY2xhc3MgU2hhZGVyIDogQ29nbC5IYW5kbGUgeworQEAgLTQ2 NSwxMiArMzU1LDEwIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyBpbnQgZ2V0X2FscGhh X2JpdHMgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJsaWMgaW50IGdl dF9ibHVlX2JpdHMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisrCQlwdWJsaWMg dW5vd25lZCBDb2dsLkNvbnRleHQgZ2V0X2NvbnRleHQgKCk7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCisgCQlwdWJsaWMgaW50IGdldF9kZXB0aF9iaXRzICgpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTQiKV0KKy0JCXB1YmxpYyB1bm93bmVkIENvZ2wuVGV4dHVyZSBnZXRfZGVw dGhfdGV4dHVyZSAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMg Ym9vbCBnZXRfZGVwdGhfdGV4dHVyZV9lbmFibGVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjEuMTgiKV0KKyAJCXB1YmxpYyBib29sIGdldF9kZXB0aF93cml0ZV9lbmFibGVkICgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorQEAgLTUxNiw2ICs0MDQsNyBAQCBuYW1lc3BhY2Ug Q29nbCB7CisgCQlwdWJsaWMgdm9pZCBwdXNoX21hdHJpeCAoKTsKKyAJCVtWZXJzaW9uIChzaW5j ZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBwdXNoX3JlY3RhbmdsZV9jbGlwIChmbG9hdCB4 XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIpOworKwkJcHVibGljIHZvaWQgcHVz aF9yZWdpb25fY2xpcCAoQ2Fpcm8uUmVnaW9uIHJlZ2lvbik7CisgCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgcHVzaF9zY2lzc29yX2NsaXAgKGludCB4LCBpbnQg eSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIild CitAQCAtNTI5LDEzICs0MTgsOSBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgcm90YXRlIChmbG9hdCBhbmdsZSwgZmxvYXQg eCwgZmxvYXQgeSwgZmxvYXQgeik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlw dWJsaWMgdm9pZCByb3RhdGVfZXVsZXIgKENvZ2wuRXVsZXIgZXVsZXIpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgcm90YXRlX3F1YXRlcm5pb24gKENvZ2wu UXVhdGVybmlvbiBxdWF0ZXJuaW9uKTsKKysJCXB1YmxpYyB2b2lkIHJvdGF0ZV9ldWxlciAoR3Jh cGhlbmUuRXVsZXIgZXVsZXIpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1 YmxpYyB2b2lkIHNjYWxlIChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKy0JCVtWZXJzaW9u IChzaW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMgdm9pZCBzZXRfZGVwdGhfdGV4dHVyZV9lbmFi bGVkIChib29sIGVuYWJsZWQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKyAJCXB1 YmxpYyB2b2lkIHNldF9kZXB0aF93cml0ZV9lbmFibGVkIChib29sIGRlcHRoX3dyaXRlX2VuYWJs ZWQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorQEAgLTYzNSwxMCArNTIwLDYgQEAg bmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIHZvaWQgc2V0X2JsdWVfYnl0ZSAodWludDggYmx1 ZSk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdm9pZCBzZXRfYmx1 ZV9mbG9hdCAoZmxvYXQgYmx1ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS40Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBz ZXRfZnJvbV80ZiAoZmxvYXQgcmVkLCBmbG9hdCBncmVlbiwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxw aGEpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuNCIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2Zyb21fNHViICh1aW50 OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVlLCB1aW50OCBhbHBoYSk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdm9pZCBzZXRfZ3JlZW4gKGZsb2F0IGdyZWVu KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KK0BAIC02NjIsNyArNTQzLDcgQEAgbmFt ZXNwYWNlIENvZ2wgeworIAkJcHVibGljIHdlYWsgc3RyaW5nIG5hbWU7CisgCQlwdWJsaWMgdWxv bmcgaW5zdGFuY2VfY291bnQ7CisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIiwgdHlwZV9pZCA9ICJDT0dMX1RZUEVfTUFUUklYIildCisrCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9j b3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJnX2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gIkNPR0xfVFlQ RV9NQVRSSVgiKV0KKyAJcHVibGljIHN0cnVjdCBNYXRyaXggeworIAkJcHVibGljIGZsb2F0IHh4 OworIAkJcHVibGljIGZsb2F0IHl4OworQEAgLTY5Miw4ICs1NzMsNyBAQCBuYW1lc3BhY2UgQ29n bCB7CisgCQlwdWJsaWMgYm9vbCBnZXRfaW52ZXJzZSAob3V0IENvZ2wuTWF0cml4IGludmVyc2Up OworIAkJW0NDb2RlIChjbmFtZSA9ICJjb2dsX21hdHJpeF9pbml0X2lkZW50aXR5IildCisgCQlw dWJsaWMgTWF0cml4LmlkZW50aXR5ICgpOworLQkJcHVibGljIHZvaWQgaW5pdF9mcm9tX2V1bGVy IChDb2dsLkV1bGVyIGV1bGVyKTsKKy0JCXB1YmxpYyB2b2lkIGluaXRfZnJvbV9xdWF0ZXJuaW9u IChDb2dsLlF1YXRlcm5pb24gcXVhdGVybmlvbik7CisrCQlwdWJsaWMgdm9pZCBpbml0X2Zyb21f ZXVsZXIgKEdyYXBoZW5lLkV1bGVyIGV1bGVyKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAi KV0KKyAJCXB1YmxpYyB2b2lkIGluaXRfdHJhbnNsYXRpb24gKGZsb2F0IHR4LCBmbG9hdCB0eSwg ZmxvYXQgdHopOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorQEAgLTcwMiwxOSArNTgy LDE1IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyB2b2lkIGxvb2tfYXQgKGZsb2F0IGV5 ZV9wb3NpdGlvbl94LCBmbG9hdCBleWVfcG9zaXRpb25feSwgZmxvYXQgZXllX3Bvc2l0aW9uX3os IGZsb2F0IG9iamVjdF94LCBmbG9hdCBvYmplY3RfeSwgZmxvYXQgb2JqZWN0X3osIGZsb2F0IHdv cmxkX3VwX3gsIGZsb2F0IHdvcmxkX3VwX3ksIGZsb2F0IHdvcmxkX3VwX3opOworIAkJW0NDb2Rl IChjbmFtZSA9ICJjb2dsX21hdHJpeF9tdWx0aXBseSIpXQorIAkJcHVibGljIE1hdHJpeC5tdWx0 aXBseSAoQ29nbC5NYXRyaXggYSwgQ29nbC5NYXRyaXggYik7CistCQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJcHVibGljIHZvaWQg b3J0aG8gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCwg ZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisg CQlwdWJsaWMgdm9pZCBvcnRob2dyYXBoaWMgKGZsb2F0IHhfMSwgZmxvYXQgeV8xLCBmbG9hdCB4 XzIsIGZsb2F0IHlfMiwgZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsKKyAJCXB1YmxpYyB2b2lkIHBl cnNwZWN0aXZlIChmbG9hdCBmb3ZfeSwgZmxvYXQgYXNwZWN0LCBmbG9hdCB6X25lYXIsIGZsb2F0 IHpfZmFyKTsKKyAJCXB1YmxpYyB2b2lkIHByb2plY3RfcG9pbnRzIChpbnQgbl9jb21wb25lbnRz LCBzaXplX3Qgc3RyaWRlX2luLCB2b2lkKiBwb2ludHNfaW4sIHNpemVfdCBzdHJpZGVfb3V0LCB2 b2lkKiBwb2ludHNfb3V0LCBpbnQgbl9wb2ludHMpOworIAkJcHVibGljIHZvaWQgcm90YXRlIChm bG9hdCBhbmdsZSwgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCByb3RhdGVfZXVsZXIgKENvZ2wuRXVsZXIgZXVs ZXIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgcm90YXRl X3F1YXRlcm5pb24gKENvZ2wuUXVhdGVybmlvbiBxdWF0ZXJuaW9uKTsKKysJCXB1YmxpYyB2b2lk IHJvdGF0ZV9ldWxlciAoR3JhcGhlbmUuRXVsZXIgZXVsZXIpOworIAkJcHVibGljIHZvaWQgc2Nh bGUgKGZsb2F0IHN4LCBmbG9hdCBzeSwgZmxvYXQgc3opOworLQkJcHVibGljIHZvaWQgdHJhbnNm b3JtX3BvaW50IChyZWYgZmxvYXQgeCwgcmVmIGZsb2F0IHksIHJlZiBmbG9hdCB6LCByZWYgZmxv YXQgdyk7CisrCQlwdWJsaWMgc3RhdGljIHZvaWQgdHJhbnNmb3JtX3BvaW50IChyZWYgQ29nbC5N YXRyaXggbWF0cml4LCByZWYgZmxvYXQgeCwgcmVmIGZsb2F0IHksIHJlZiBmbG9hdCB6LCByZWYg ZmxvYXQgdyk7CisgCQlwdWJsaWMgdm9pZCB0cmFuc2Zvcm1fcG9pbnRzIChpbnQgbl9jb21wb25l bnRzLCBzaXplX3Qgc3RyaWRlX2luLCB2b2lkKiBwb2ludHNfaW4sIHNpemVfdCBzdHJpZGVfb3V0 LCB2b2lkKiBwb2ludHNfb3V0LCBpbnQgbl9wb2ludHMpOworIAkJcHVibGljIHZvaWQgdHJhbnNs YXRlIChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCitAQCAtODE4LDM4ICs2OTQsMzMgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJTk9ORSwK KyAJCU5PX0dFVF9EQVRBCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIiwgY3ByZWZpeCA9ICJDT0dMX0ZFQVRVUkVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSld CistCVtGbGFnc10KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgZW51bSBG ZWF0dXJlRmxhZ3MgeworLQkJVEVYVFVSRV9ZVVYsCistCQlURVhUVVJFX1JFQURfUElYRUxTLAor LQkJT0ZGU0NSRUVOLAorLQkJT0ZGU0NSRUVOX01VTFRJU0FNUExFLAorLQkJRk9VUl9DTElQX1BM QU5FUywKKy0JCVNURU5DSUxfQlVGRkVSLAorLQkJVkJPUywKKy0JCVBCT1MsCistCQlVTlNJR05F RF9JTlRfSU5ESUNFUywKKy0JCURFUFRIX1JBTkdFLAorLQkJUE9JTlRfU1BSSVRFLAorLQkJTUFQ X0JVRkZFUl9GT1JfUkVBRCwKKy0JCU1BUF9CVUZGRVJfRk9SX1dSSVRFLAorLQkJT05TQ1JFRU5f TVVMVElQTEUsCistCQlERVBUSF9URVhUVVJFCisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9GRUFUVVJFX0lEXyIsIGhhc190eXBlX2lk ID0gZmFsc2UpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwlwdWJsaWMgZW51bSBG ZWF0dXJlSUQgeworKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfVU5TSUdORURf SU5UX0lORElDRVMiKV0KKysJCU9HTF9GRUFUVVJFX0lEX1VOU0lHTkVEX0lOVF9JTkRJQ0VTLAor KwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfTUFQX0JVRkZFUl9GT1JfUkVBRCIp XQorKwkJT0dMX0ZFQVRVUkVfSURfTUFQX0JVRkZFUl9GT1JfUkVBRCwKKysJCVtDQ29kZSAoY25h bWUgPSAiQ09HTF9GRUFUVVJFX0lEX01BUF9CVUZGRVJfRk9SX1dSSVRFIildCisrCQlPR0xfRkVB VFVSRV9JRF9NQVBfQlVGRkVSX0ZPUl9XUklURSwKKysJCVtDQ29kZSAoY25hbWUgPSAiQ09HTF9G RUFUVVJFX0lEX1NXQVBfQlVGRkVSU19FVkVOVCIpXQorKwkJT0dMX0ZFQVRVUkVfSURfU1dBUF9C VUZGRVJTX0VWRU5ULAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfUFJFU0VO VEFUSU9OX1RJTUUiKV0KKysJCU9HTF9GRUFUVVJFX0lEX1BSRVNFTlRBVElPTl9USU1FLAorKwkJ W0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfRkVOQ0UiKV0KKysJCU9HTF9GRUFUVVJF X0lEX0ZFTkNFLAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfVEVYVFVSRV9S RyIpXQorKwkJT0dMX0ZFQVRVUkVfSURfVEVYVFVSRV9SRywKKysJCVtDQ29kZSAoY25hbWUgPSAi Q09HTF9GRUFUVVJFX0lEX0JVRkZFUl9BR0UiKV0KKysJCU9HTF9GRUFUVVJFX0lEX0JVRkZFUl9B R0UsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9URVhUVVJFX0VHTF9JTUFH RV9FWFRFUk5BTCIpXQorKwkJT0dMX0ZFQVRVUkVfSURfVEVYVFVSRV9FR0xfSU1BR0VfRVhURVJO QUwKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJl Zml4ID0gIkNPR0xfRklMVEVSXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgZW51 bSBGaWx0ZXJSZXR1cm4geworIAkJQ09OVElOVUUsCisgCQlSRU1PVkUKKyAJfQorLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRk9HX01P REVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0K Ky0JcHVibGljIGVudW0gRm9nTW9kZSB7CistCQlMSU5FQVIsCistCQlFWFBPTkVOVElBTCwKKy0J CUVYUE9ORU5USUFMX1NRVUFSRUQKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRlJBTUVfRVZFTlRfIiwgaGFzX3R5cGVfaWQg PSBmYWxzZSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisgCXB1YmxpYyBlbnVtIEZy YW1lRXZlbnQgeworQEAgLTg2Miw2ICs3MzMsMTQgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJRlJB TUVCVUZGRVJfRVJST1JfQUxMT0NBVEU7CisgCQlwdWJsaWMgc3RhdGljIHVpbnQzMiBxdWFyayAo KTsKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJl Zml4ID0gIkNPR0xfR1JBUEhJQ1NfUkVTRVRfU1RBVFVTXyIsIGhhc190eXBlX2lkID0gZmFsc2Up XQorKwlwdWJsaWMgZW51bSBHcmFwaGljc1Jlc2V0U3RhdHVzIHsKKysJCU5PX0VSUk9SLAorKwkJ R1VJTFRZX0NPTlRFWFRfUkVTRVQsCisrCQlJTk5PQ0VOVF9DT05URVhUX1JFU0VULAorKwkJVU5L Tk9XTl9DT05URVhUX1JFU0VULAorKwkJUFVSR0VEX0NPTlRFWFRfUkVTRVQKKysJfQorIAlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfSU5E SUNFU19UWVBFX1VOU0lHTkVEXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlwdWJsaWMgZW51 bSBJbmRpY2VzVHlwZSB7CisgCQlCWVRFLAorQEAgLTg4OCwxMiArNzY3LDYgQEAgbmFtZXNwYWNl IENvZ2wgeworIAkJTkVBUkVTVF9NSVBNQVBfTElORUFSLAorIAkJTElORUFSX01JUE1BUF9MSU5F QVIKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJl Zml4ID0gIkNPR0xfTUFURVJJQUxfTEFZRVJfVFlQRV8iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0K Ky0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51bSBNYXRlcmlhbExheWVy VHlwZSB7CistCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfTUFURVJJQUxfTEFZRVJfVFlQRV9URVhU VVJFIildCistCQlNQVRFUklBTF9MQVlFUl9UWVBFX1RFWFRVUkUKKy0JfQorIAlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfTUFURVJJQUxf V1JBUF9NT0RFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAi MS40IildCisgCXB1YmxpYyBlbnVtIE1hdGVyaWFsV3JhcE1vZGUgeworQEAgLTk3MSw2ICs4NDQs OCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlERVBUSF8xNiwKKyAJCURFUFRIXzMyLAorIAkJREVQ VEhfMjRfU1RFTkNJTF84OworKwkJcHVibGljIGludCBnZXRfYnl0ZXNfcGVyX3BpeGVsIChpbnQg cGxhbmUpOworKwkJcHVibGljIGludCBnZXRfbl9wbGFuZXMgKCk7CisgCQlwdWJsaWMgdW5vd25l ZCBzdHJpbmcgdG9fc3RyaW5nICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9SRUFEX1BJWEVMU19DT0xPUl8iLCBoYXNf dHlwZV9pZCA9IGZhbHNlKV0KK0BAIC0xMDY0LDkgKzkzOSw5IEBAIG5hbWVzcGFjZSBDb2dsIHsK KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaW5zdGFuY2VfcG9z ID0gMS45KV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAlwdWJsaWMgZGVsZWdhdGUg dm9pZCBEZWJ1Z09iamVjdEZvcmVhY2hUeXBlQ2FsbGJhY2sgKENvZ2wuRGVidWdPYmplY3RUeXBl SW5mbyBpbmZvKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg aW5zdGFuY2VfcG9zID0gMi45KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIGRlbGVnYXRl IGJvb2wgTWF0ZXJpYWxMYXllckNhbGxiYWNrIChDb2dsLk1hdGVyaWFsIG1hdGVyaWFsLCBpbnQg bGF5ZXJfaW5kZXgpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi LCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMC4xMCIpXQorKwlw dWJsaWMgZGVsZWdhdGUgdm9pZCBGZWF0dXJlQ2FsbGJhY2sgKENvZ2wuRmVhdHVyZUlEIGZlYXR1 cmUpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5j ZV9wb3MgPSAyLjkpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorIAlwdWJsaWMgZGVs ZWdhdGUgdm9pZCBPbnNjcmVlbkRpcnR5Q2FsbGJhY2sgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4s IENvZ2wuT25zY3JlZW5EaXJ0eUluZm8gaW5mbyk7CitAQCAtMTA3NCwxMyArOTQ5LDkgQEAgbmFt ZXNwYWNlIENvZ2wgeworIAlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCXB1YmxpYyBkZWxl Z2F0ZSB2b2lkIE9uc2NyZWVuUmVzaXplQ2FsbGJhY2sgKENvZ2wuT25zY3JlZW4gb25zY3JlZW4s IGludCB3aWR0aCwgaW50IGhlaWdodCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lk IE9uc2NyZWVuWDExTWFza0NhbGxiYWNrIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuLCB1aW50MzIg ZXZlbnRfbWFzayk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIs IGluc3RhbmNlX3BvcyA9IDIuOSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJcHVi bGljIGRlbGVnYXRlIGJvb2wgUGlwZWxpbmVMYXllckNhbGxiYWNrIChDb2dsLlBpcGVsaW5lIHBp cGVsaW5lLCBpbnQgbGF5ZXJfaW5kZXgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorLQlwdWJsaWMgZGVsZWdhdGUgdm9p ZCBTd2FwQnVmZmVyc05vdGlmeSAoQ29nbC5GcmFtZWJ1ZmZlciBmcmFtZWJ1ZmZlcik7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDEu OSldCisgCXB1YmxpYyBkZWxlZ2F0ZSBib29sIFRleHR1cmUyREVHTEltYWdlRXh0ZXJuYWxBbGxv YyAoQ29nbC5UZXh0dXJlMkQgdGV4XzJkKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgaGFzX3RhcmdldCA9IGZhbHNlKV0KKyAJ cHVibGljIGRlbGVnYXRlIHZvaWQgVXNlckRhdGFEZXN0cm95Q2FsbGJhY2sgKHZvaWQqIGRhdGEp OworQEAgLTEwOTIsNiArOTYzLDggQEAgbmFtZXNwYWNlIENvZ2wgeworIAlwdWJsaWMgY29uc3Qg aW50IEJHUl9CSVQ7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIs IGNuYW1lID0gIkNPR0xfREVQVEhfQklUIildCisgCXB1YmxpYyBjb25zdCBpbnQgREVQVEhfQklU OworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJD T0dMX1BJWEVMX0ZPUk1BVF9NQVhfUExBTkVTIildCisrCXB1YmxpYyBjb25zdCBpbnQgUElYRUxf Rk9STUFUX01BWF9QTEFORVM7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIGNuYW1lID0gIkNPR0xfUFJFTVVMVF9CSVQiKV0KKyAJcHVibGljIGNvbnN0IGludCBQ UkVNVUxUX0JJVDsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg Y25hbWUgPSAiQ09HTF9TVEVOQ0lMX0JJVCIpXQorQEAgLTEwOTksMTkgKzk3Miw4IEBAIG5hbWVz cGFjZSBDb2dsIHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg Y25hbWUgPSAiQ09HTF9URVhUVVJFX01BWF9XQVNURSIpXQorIAlwdWJsaWMgY29uc3QgaW50IFRF WFRVUkVfTUFYX1dBU1RFOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGJlZ2luX2dsICgp OworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJcHVibGlj IHN0YXRpYyBib29sIGJsaXRfZnJhbWVidWZmZXIgKENvZ2wuRnJhbWVidWZmZXIgc3JjLCBDb2ds LkZyYW1lYnVmZmVyIGRlc3QsIGludCBzcmNfeCwgaW50IHNyY195LCBpbnQgZHN0X3gsIGludCBk c3RfeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiKV0KKy0JcHVibGljIHN0YXRpYyBi b29sIGNoZWNrX2V4dGVuc2lvbiAoc3RyaW5nIG5hbWUsIHN0cmluZyBleHQpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIGNsZWFyIChDb2dsLkNvbG9yIGNvbG9yLCB1bG9uZyBidWZmZXJzKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBj bHV0dGVyX2NoZWNrX2V4dGVuc2lvbl9DTFVUVEVSIChzdHJpbmcgbmFtZSwgc3RyaW5nIGV4dCk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlwdWJsaWMg c3RhdGljIGJvb2wgY2x1dHRlcl93aW5zeXNfaGFzX2ZlYXR1cmVfQ0xVVFRFUiAoQ29nbC5XaW5z eXNGZWF0dXJlIGZlYXR1cmUpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorQEAgLTExMjksNTcgKzk5MSwz OCBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJcHVi bGljIHN0YXRpYyB2b2lkIGRlYnVnX29iamVjdF9wcmludF9pbnN0YW5jZXMgKCk7CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVj YXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgZGlzYWJsZV9mb2cgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZW5kX2ds ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0J cHVibGljIHN0YXRpYyBib29sIGZlYXR1cmVzX2F2YWlsYWJsZSAoQ29nbC5GZWF0dXJlRmxhZ3Mg ZmVhdHVyZXMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K KyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgZmx1c2gg KCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNl ID0gIjAuOC4yIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBmcnVzdHVtIChmbG9hdCBsZWZ0LCBm bG9hdCByaWdodCwgZmxvYXQgYm90dG9tLCBmbG9hdCB0b3AsIGZsb2F0IHpfbmVhciwgZmxvYXQg el9mYXIpOworKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorKwlwdWJsaWMgc3RhdGljIHZv aWQgZm9yZWFjaF9mZWF0dXJlIChDb2dsLkNvbnRleHQgY29udGV4dCwgQ29nbC5GZWF0dXJlQ2Fs bGJhY2sgY2FsbGJhY2spOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiKV0KKyAJcHVibGljIHN0YXRpYyBib29sIGdldF9iYWNrZmFjZV9jdWxsaW5nX2VuYWJs ZWQgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44IildCist CXB1YmxpYyBzdGF0aWMgdm9pZCBnZXRfYml0bWFza3MgKG91dCBpbnQgcmVkLCBvdXQgaW50IGdy ZWVuLCBvdXQgaW50IGJsdWUsIG91dCBpbnQgYWxwaGEpOworKwlbVmVyc2lvbiAoc2luY2UgPSAi MS4xNCIpXQorKwlwdWJsaWMgc3RhdGljIGludDY0IGdldF9jbG9ja190aW1lIChDb2dsLkNvbnRl eHQgY29udGV4dCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIpXQorIAlwdWJsaWMgc3RhdGljIGJvb2wgZ2V0X2RlcHRoX3Rlc3RfZW5hYmxlZCAoKTsKKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChz aW5jZSA9ICIxLjgiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENvZ2wuRnJhbWVidWZmZXIg Z2V0X2RyYXdfZnJhbWVidWZmZXIgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRf c2luY2UgPSAiMS4xMCIsIHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuRmVh dHVyZUZsYWdzIGdldF9mZWF0dXJlcyAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5NYXRyaXggZ2V0X21vZGVs dmlld19tYXRyaXggKCk7CisrCXB1YmxpYyBzdGF0aWMgQ29nbC5HcmFwaGljc1Jlc2V0U3RhdHVz IGdldF9ncmFwaGljc19yZXNldF9zdGF0dXMgKENvZ2wuQ29udGV4dCBjb250ZXh0KTsKKyAJW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIild CisgCXB1YmxpYyBzdGF0aWMgR0xpYi5PcHRpb25Hcm91cCBnZXRfb3B0aW9uX2dyb3VwICgpOwor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJcHVibGljIHN0 YXRpYyBHTGliLkNhbGxiYWNrIGdldF9wcm9jX2FkZHJlc3MgKHN0cmluZyBzKTsKKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMg Q29nbC5NYXRyaXggZ2V0X3Byb2plY3Rpb25fbWF0cml4ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkKiBnZXRfc291cmNlICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIGdldF92aWV3cG9ydCAoW0ND b2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIG91dCBmbG9hdCB2WzRdKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4IildCisgCXB1YmxpYyBzdGF0aWMgR0xp Yi5UeXBlIGd0eXBlX21hdHJpeF9nZXRfdHlwZSAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCXB1 YmxpYyBzdGF0aWMgYm9vbCBoYXNfZmVhdHVyZSAoQ29nbC5Db250ZXh0IGNvbnRleHQsIENvZ2wu RmVhdHVyZUlEIGZlYXR1cmUpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKysJcHVibGljIHN0YXRpYyBi b29sIGlzX2NvbnRleHQgKHZvaWQqIG9iamVjdCk7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorKwlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAlwdWJs aWMgc3RhdGljIGJvb2wgaXNfZnJhbWVidWZmZXIgKHZvaWQqIG9iamVjdCk7CisgCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAi MS4xMCIpXQorQEAgLTExOTMsNTMgKzEwMzYsOSBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCBpc190ZXh0dXJlXzJk X3NsaWNlZCAodm9pZCogb2JqZWN0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCXB1YmxpYyBzdGF0aWMgYm9vbCBpc192 ZXJ0ZXhfYnVmZmVyX2luZGljZXMgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS40 IildCisgCXB1YmxpYyBzdGF0aWMgYm9vbCBtYXRyaXhfZXF1YWwgKHZvaWQqIHYxLCB2b2lkKiB2 Mik7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIsIHNpbmNl ID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgb3J0aG8gKGZsb2F0IGxlZnQsIGZsb2F0 IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IHRvcCwgZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1Ymxp YyBzdGF0aWMgdm9pZCBwZXJzcGVjdGl2ZSAoZmxvYXQgZm92eSwgZmxvYXQgYXNwZWN0LCBmbG9h dCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRp YyB2b2lkIHBvbHlnb24gKENvZ2wuVGV4dHVyZVZlcnRleCB2ZXJ0aWNlcywgdWludCBuX3ZlcnRp Y2VzLCBib29sIHVzZV9jb2xvcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcG9wX21hdHJpeCAoKTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS42Iild CistCXB1YmxpYyBzdGF0aWMgdm9pZCBwb3Bfc291cmNlICgpOworLQlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHB1c2hf bWF0cml4ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K Ky0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi LCBzaW5jZSA9ICIxLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHB1c2hfc291cmNlICh2b2lk KiBtYXRlcmlhbCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xlIChmbG9hdCB4XzEsIGZsb2F0IHlfMSwg ZmxvYXQgeF8yLCBmbG9hdCB5XzIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGlj IHZvaWQgcmVjdGFuZ2xlX3dpdGhfbXVsdGl0ZXh0dXJlX2Nvb3JkcyAoZmxvYXQgeDEsIGZsb2F0 IHkxLCBmbG9hdCB4MiwgZmxvYXQgeTIsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBm bG9hdFtdIHRleF9jb29yZHMsIGludCB0ZXhfY29vcmRzX2xlbik7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIild CistCXB1YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGVfd2l0aF90ZXh0dXJlX2Nvb3JkcyAoZmxv YXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB4MiwgZmxvYXQgeTIsIGZsb2F0IHR4MSwgZmxvYXQgdHkx LCBmbG9hdCB0eDIsIGZsb2F0IHR5Mik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJj b2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCByZWN0YW5nbGVzIChbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gZmxvYXRb XSB2ZXJ0cywgdWludCBuX3JlY3RzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIwLjguNiIpXQorLQlwdWJsaWMgc3Rh dGljIHZvaWQgcmVjdGFuZ2xlc193aXRoX3RleHR1cmVfY29vcmRzIChbQ0NvZGUgKGFycmF5X2xl bmd0aCA9IGZhbHNlKV0gZmxvYXRbXSB2ZXJ0cywgdWludCBuX3JlY3RzKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCByb3RhdGUgKGZsb2F0IGFuZ2xlLCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKy0JW0ND b2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXBy ZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCBzY2FsZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQg c2V0X2JhY2tmYWNlX2N1bGxpbmdfZW5hYmxlZCAoYm9vbCBzZXR0aW5nKTsKKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCitAQCAtMTI0Nyw1MyArMTA0NiwxMSBA QCBuYW1lc3BhY2UgQ29nbCB7CisgCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfZGVwdGhfdGVzdF9l bmFibGVkIChib29sIHNldHRpbmcpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9mb2cgKENvZ2wuQ29sb3Ig Zm9nX2NvbG9yLCBDb2dsLkZvZ01vZGUgbW9kZSwgZmxvYXQgZGVuc2l0eSwgZmxvYXQgel9uZWFy LCBmbG9hdCB6X2Zhcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X21vZGVsdmlld19tYXRyaXggKENvZ2wu TWF0cml4IG1hdHJpeCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3Byb2plY3Rpb25fbWF0cml4IChDb2ds Lk1hdHJpeCBtYXRyaXgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9zb3VyY2Ug KHZvaWQqIG1hdGVyaWFsKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNl X2NvbG9yIChDb2dsLkNvbG9yIGNvbG9yKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBz ZXRfc291cmNlX2NvbG9yNGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZs b2F0IGFscGhhKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlX2NvbG9y NHViICh1aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1aW50OCBibHVlLCB1aW50OCBhbHBoYSk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEu MCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3NvdXJjZV90ZXh0dXJlIChDb2dsLlRleHR1 cmUgdGV4dHVyZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44 Iiwgc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfdmlld3BvcnQgKGlu dCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzaGFkZXJf Y29tcGlsZSAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgc3RyaW5nIHNoYWRlcl9nZXRf aW5mb19sb2cgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAlwdWJsaWMgc3RhdGljIENvZ2wuU2hhZGVyVHlwZSBz aGFkZXJfZ2V0X3R5cGUgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIGJvb2wgc2hhZGVy X2lzX2NvbXBpbGVkIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENvZ2wu SGFuZGxlIHNoYWRlcl9yZWYgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgc2hh ZGVyX3NvdXJjZSAoQ29nbC5IYW5kbGUgc2hhZGVyLCBzdHJpbmcgc291cmNlKTsKKyAJW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMg dm9pZCBzaGFkZXJfdW5yZWYgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMg c3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJlX25ld19mcm9tX2JpdG1hcCAoQ29nbC5CaXRtYXAg Yml0bWFwLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5h bF9mb3JtYXQpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K K0BAIC0xMzA2LDU5ICsxMDYzLDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIp XQorIAlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJlX25ld193aXRoX3NpemUgKHVp bnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhl bEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHRy YW5zZm9ybSAoQ29nbC5NYXRyaXggbWF0cml4KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB0cmFuc2xhdGUgKGZs b2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfYWRk IChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0cmluZyBhdHRyaWJ1dGVfbmFtZSwgdWludDggbl9jb21w b25lbnRzLCBDb2dsLkF0dHJpYnV0ZVR5cGUgdHlwZSwgYm9vbCBub3JtYWxpemVkLCB1aW50MTYg c3RyaWRlLCB2b2lkKiBwb2ludGVyKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNv Z2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2RlbGV0 ZSAoQ29nbC5IYW5kbGUgaGFuZGxlLCBzdHJpbmcgYXR0cmlidXRlX25hbWUpOworLQlbQ0NvZGUg KGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0 ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIHZlcnRleF9idWZmZXJfZGlzYWJsZSAoQ29nbC5IYW5kbGUgaGFuZGxlLCBzdHJpbmcgYXR0 cmlidXRlX25hbWUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgi KV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEu MTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfZHJhdyAoQ29nbC5IYW5k bGUgaGFuZGxlLCBDb2dsLlZlcnRpY2VzTW9kZSBtb2RlLCBpbnQgZmlyc3QsIGludCBjb3VudCk7 CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJs aWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9kcmF3X2VsZW1lbnRzIChDb2dsLkhhbmRsZSBo YW5kbGUsIENvZ2wuVmVydGljZXNNb2RlIG1vZGUsIENvZ2wuSGFuZGxlIGluZGljZXMsIGludCBt aW5faW5kZXgsIGludCBtYXhfaW5kZXgsIGludCBpbmRpY2VzX29mZnNldCwgaW50IGNvdW50KTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1Ymxp YyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2VuYWJsZSAoQ29nbC5IYW5kbGUgaGFuZGxlLCBz dHJpbmcgYXR0cmlidXRlX25hbWUpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB1aW50IHZlcnRleF9idWZmZXJfZ2V0X25f dmVydGljZXMgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJl Y2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ29nbC5IYW5k bGUgdmVydGV4X2J1ZmZlcl9pbmRpY2VzX2dldF9mb3JfcXVhZHMgKHVpbnQgbl9pbmRpY2VzKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1Ymxp YyBzdGF0aWMgQ29nbC5JbmRpY2VzVHlwZSB2ZXJ0ZXhfYnVmZmVyX2luZGljZXNfZ2V0X3R5cGUg KENvZ2wuSGFuZGxlIGluZGljZXMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB1bm93bmVkIENvZ2wuSGFuZGxlIHZlcnRl eF9idWZmZXJfbmV3ICh1aW50IG5fdmVydGljZXMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ29nbC5IYW5k bGUgdmVydGV4X2J1ZmZlcl9yZWYgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg dmVydGV4X2J1ZmZlcl9zdWJtaXQgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9 IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB2 ZXJ0ZXhfYnVmZmVyX3VucmVmIChDb2dsLkhhbmRsZSBoYW5kbGUpOworLQlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuOCIsIHNpbmNlID0gIjAuOC4yIildCistCXB1Ymxp YyBzdGF0aWMgdm9pZCB2aWV3cG9ydCAodWludCB3aWR0aCwgdWludCBoZWlnaHQpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JcHVibGljIHN0YXRpYyB1 aW50MzIgeDExX29uc2NyZWVuX2dldF92aXN1YWxfeGlkIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVu KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJz aW9uIChzaW5jZSA9ICIxLjEwIildCisgCXB1YmxpYyBzdGF0aWMgdWludDMyIHgxMV9vbnNjcmVl bl9nZXRfd2luZG93X3hpZCAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbik7CistCVtDQ29kZSAoY2hl YWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMi4w IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB4MTFfb25zY3JlZW5fc2V0X2ZvcmVpZ25fd2luZG93 X3hpZCAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbiwgdWludDMyIHhpZCwgW0NDb2RlIChzY29wZSA9 ICJhc3luYyIpXSBDb2dsLk9uc2NyZWVuWDExTWFza0NhbGxiYWNrIHVwZGF0ZSk7CisgfQorZGlm ZiAtLWdpdCB2YXBpL211dHRlci1jb2dsLTQtY3VzdG9tLnZhbGEgdmFwaS9tdXR0ZXItY29nbC03 LWN1c3RvbS52YWxhCitzaW1pbGFyaXR5IGluZGV4IDgxJQorcmVuYW1lIGZyb20gdmFwaS9tdXR0 ZXItY29nbC00LWN1c3RvbS52YWxhCityZW5hbWUgdG8gdmFwaS9tdXR0ZXItY29nbC03LWN1c3Rv bS52YWxhCitpbmRleCAyNTUxODg1YS4uYzRkNGI5M2EgMTAwNjQ0CistLS0gdmFwaS9tdXR0ZXIt Y29nbC00LWN1c3RvbS52YWxhCisrKysgdmFwaS9tdXR0ZXItY29nbC03LWN1c3RvbS52YWxhCitA QCAtMSwxMCArMSw0IEBACisgbmFtZXNwYWNlIENvZ2wgeworLQlbQ29tcGFjdF0KKy0JW0NDb2Rl IChjbmFtZSA9ICJDb2dsSGFuZGxlIildCistCXB1YmxpYyBjbGFzcyBCaXRtYXA6IEhhbmRsZSB7 CistCQlwdWJsaWMgc3RhdGljIEJpdG1hcCBuZXdfZnJvbV9maWxlIChzdHJpbmcgZmlsZW5hbWUp IHRocm93cyBHTGliLkVycm9yOworLQl9CistCisgCVtDb21wYWN0XQorIAlbQ0NvZGUgKGNuYW1l ID0gIkNvZ2xIYW5kbGUiKV0KKyAJcHVibGljIGNsYXNzIEJ1ZmZlcjogSGFuZGxlIHsKK0BAIC00 Miw3ICszNiw3IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyBib29sIGlzX3ZlcnRleF9i dWZmZXIgKCk7CisgCX0KKyAKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIiwgY29weV9mdW5jdGlvbiA9ICJjb2dsX3BhdGhfY29weSIpXSAKKysJW0NDb2RlIChjaGVh ZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlvbiA9ICJjb2dsX3BhdGhf Y29weSIpXQorIAlbQ29tcGFjdF0KKyAJcHVibGljIGNsYXNzIFBhdGggeworIAkJcHVibGljIHN0 YXRpYyB2b2lkIEBuZXcgKCk7CitAQCAtODIsMTggKzc2LDYgQEAgbmFtZXNwYWNlIENvZ2wgewor IAkJcHVibGljIHZvaWQgc291cmNlIChzdHJpbmcgc291cmNlKTsKKyAJfQorIAorLQlbQ29tcGFj dF0KKy0JW0NDb2RlIChjbmFtZSA9ICJDb2dsSGFuZGxlIiwgcmVmX2Z1bmN0aW9uID0gImNvZ2xf dGV4dHVyZV9yZWYiLCB1bnJlZl9mdW5jdGlvbiA9ICJjb2dsX3RleHR1cmVfdW5yZWYiKV0KKy0J cHVibGljIGNsYXNzIFRleHR1cmU6IEhhbmRsZSB7CistCQlwdWJsaWMgQ29nbC5QaXhlbEZvcm1h dCBnZXRfZm9ybWF0ICgpOworLQkJcHVibGljIHVpbnQgZ2V0X3Jvd3N0cmlkZSAoKTsKKy0JCXB1 YmxpYyBUZXh0dXJlLmZyb21fYml0bWFwIChDb2dsLkJpdG1hcCBibXBfaGFuZGxlLCBDb2dsLlRl eHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOworLQkJ cHVibGljIFRleHR1cmUuZnJvbV9kYXRhICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCwgQ29nbC5U ZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCBDb2dsLlBpeGVsRm9y bWF0IGludGVybmFsX2Zvcm1hdCwgdWludCByb3dzdHJpZGUsIFtDQ29kZSAoYXJyYXlfbGVuZ3Ro ID0gZmFsc2UpXSB1Y2hhcltdIGRhdGEpOworLQkJcHVibGljIFRleHR1cmUuZnJvbV9maWxlIChz dHJpbmcgZmlsZW5hbWUsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0 IGludGVybmFsX2Zvcm1hdCkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlwdWJsaWMgVGV4dHVyZS5m cm9tX3N1Yl90ZXh0dXJlIChDb2dsLlRleHR1cmUgZnVsbF90ZXh0dXJlLCBpbnQgc3ViX3gsIGlu dCBzdWJfeSwgaW50IHN1Yl93aWR0aCwgaW50IHN1Yl9oZWlnaHQpOworLQkJcHVibGljIFRleHR1 cmUud2l0aF9zaXplICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3Mg ZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKy0JfQorLQorIAlbQ29t cGFjdF0KKyAJW0NDb2RlIChjbmFtZSA9ICJDb2dsSGFuZGxlIiwgcmVmX2Z1bmN0aW9uID0gImNv Z2xfdmVydGV4X2J1ZmZlcl9yZWYiLCB1bnJlZl9mdW5jdGlvbiA9ICJjb2dsX3ZlcnRleF9idWZm ZXJfdW5yZWYiKV0KKyAJcHVibGljIGNsYXNzIFZlcnRleEJ1ZmZlcjogSGFuZGxlIHsKK2RpZmYg LS1naXQgdmFwaS9tdXR0ZXItY29nbC01LmRlcHMgdmFwaS9tdXR0ZXItY29nbC03LmRlcHMKK3Np bWlsYXJpdHkgaW5kZXggMTAwJQorcmVuYW1lIGZyb20gdmFwaS9tdXR0ZXItY29nbC01LmRlcHMK K3JlbmFtZSB0byB2YXBpL211dHRlci1jb2dsLTcuZGVwcworZGlmZiAtLWdpdCB2YXBpL211dHRl ci1jb2dsLTQudmFwaSB2YXBpL211dHRlci1jb2dsLTcudmFwaQorc2ltaWxhcml0eSBpbmRleCA1 OSUKK3JlbmFtZSBmcm9tIHZhcGkvbXV0dGVyLWNvZ2wtNC52YXBpCityZW5hbWUgdG8gdmFwaS9t dXR0ZXItY29nbC03LnZhcGkKK2luZGV4IDVkZThmNDQ3Li42MjBjMjMxNyAxMDA2NDQKKy0tLSB2 YXBpL211dHRlci1jb2dsLTQudmFwaQorKysrIHZhcGkvbXV0dGVyLWNvZ2wtNy52YXBpCitAQCAt MSwxMiArMSwxMyBAQAorLS8qIG11dHRlci1jb2dsLTQudmFwaSBnZW5lcmF0ZWQgYnkgdmFwaWdl biwgZG8gbm90IG1vZGlmeS4gKi8KKysvKiBtdXR0ZXItY29nbC03LnZhcGkgZ2VuZXJhdGVkIGJ5 IHZhcGlnZW4sIGRvIG5vdCBtb2RpZnkuICovCisgCistW0NDb2RlIChjcHJlZml4ID0gIkNvZ2wi LCBnaXJfbmFtZXNwYWNlID0gIkNvZ2wiLCBnaXJfdmVyc2lvbiA9ICI0IiwgbG93ZXJfY2FzZV9j cHJlZml4ID0gImNvZ2xfIildCisrW0NDb2RlIChjcHJlZml4ID0gIkNvZ2wiLCBnaXJfbmFtZXNw YWNlID0gIkNvZ2wiLCBnaXJfdmVyc2lvbiA9ICI3IiwgbG93ZXJfY2FzZV9jcHJlZml4ID0gImNv Z2xfIildCisgbmFtZXNwYWNlIENvZ2wgeworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDb2dsSGFuZGxlIiwgdHlwZV9pZCA9ICJjb2dsX2JpdG1h cF9nZXRfZ3R5cGUgKCkiKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBCaXRtYXAgOiBD b2dsLkhhbmRsZSB7CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIs IHR5cGVfaWQgPSAiY29nbF9iaXRtYXBfZ2V0X2d0eXBlICgpIildCisrCXB1YmxpYyBjbGFzcyBC aXRtYXAgOiBDb2dsLk9iamVjdCB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24g PSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgQml0bWFwICgpOworIAkJcHVibGljIHN0YXRpYyB1aW50 MzIgZXJyb3JfcXVhcmsgKCk7CistCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSwgdHlwZSA9ICJDb2dsQml0bWFwKiIpXQorKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UpXQorIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorIAkJcHVibGlj IEJpdG1hcC5mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSkgdGhyb3dzIEdMaWIuRXJyb3I7Cisg CQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorQEAgLTE2LDEwICsxNyw5IEBAIG5hbWVzcGFj ZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgaW50IGdl dF9yb3dzdHJpZGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMg c3RhdGljIENvZ2wuQm9vbCBnZXRfc2l6ZV9mcm9tX2ZpbGUgKHN0cmluZyBmaWxlbmFtZSwgb3V0 IGludCB3aWR0aCwgb3V0IGludCBoZWlnaHQpOworKwkJcHVibGljIHN0YXRpYyBib29sIGdldF9z aXplX2Zyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lLCBvdXQgaW50IHdpZHRoLCBvdXQgaW50IGhl aWdodCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIGludCBnZXRf d2lkdGggKCk7CistCQlwdWJsaWMgc3RhdGljIENvZ2wuQml0bWFwIG5ld19mcm9tX2ZpbGUgKHN0 cmluZyBmaWxlbmFtZSkgdGhyb3dzIEdMaWIuRXJyb3I7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVy X2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAiQ29nbEhhbmRsZSIpXQorIAlbQ29t cGFjdF0KK0BAIC0yOCwxNSArMjgsMjggQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIGJv b2wgc2V0X2RhdGEgKHNpemVfdCBvZmZzZXQsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoX3R5cGUgPSAi c2l6ZV90IildIHVpbnQ4W10gZGF0YSk7CisgCQlwdWJsaWMgdm9pZCB1bm1hcCAoKTsKKyAJfQor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKy0JW0NvbXBhY3RdCistCXB1YmxpYyBjbGFzcyBFdWxlciB7CisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5cGVfaWQgPSAiY29nbF9jb250ZXh0 X2dldF9ndHlwZSAoKSIpXQorKwlwdWJsaWMgY2xhc3MgQ29udGV4dCA6IENvZ2wuT2JqZWN0IHsK KysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKysJCXByb3RlY3Rl ZCBDb250ZXh0ICgpOworKwkJcHVibGljIGJvb2wgaXNfaGFyZHdhcmVfYWNjZWxlcmF0ZWQgKCk7 CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9m dW5jdGlvbiA9ICJnX2JveGVkX2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIs IHR5cGVfaWQgPSAiY29nbF9mcmFtZV9jbG9zdXJlX2dldF9ndHlwZSAoKSIpXQorIAlbQ29tcGFj dF0KKyAJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKyAJcHVibGljIGNsYXNzIEZyYW1lQ2xv c3VyZSB7CisgCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwg dHlwZV9pZCA9ICJjb2dsX2ZyYW1lX2luZm9fZ2V0X2d0eXBlICgpIildCisrCXB1YmxpYyBjbGFz cyBGcmFtZUluZm8gOiBDb2dsLk9iamVjdCB7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVu Y3Rpb24gPSBmYWxzZSldCisrCQlwcm90ZWN0ZWQgRnJhbWVJbmZvICgpOworKwkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTQiKV0KKysJCXB1YmxpYyBpbnQ2NCBnZXRfZnJhbWVfY291bnRlciAoKTsK KysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisrCQlwdWJsaWMgaW50NjQgZ2V0X3ByZXNl bnRhdGlvbl90aW1lICgpOworKwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKysJCXB1Ymxp YyBmbG9hdCBnZXRfcmVmcmVzaF9yYXRlICgpOworKwl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHJlZl9mdW5jdGlvbiA9ICJjb2dsX2hhbmRsZV9yZWYiLCB1 bnJlZl9mdW5jdGlvbiA9ICJjb2dsX2hhbmRsZV91bnJlZiIpXQorIAlbQ29tcGFjdF0KKyAJcHVi bGljIGNsYXNzIEhhbmRsZSB7CitAQCAtNjUsNjUgKzc4LDIwIEBAIG5hbWVzcGFjZSBDb2dsIHsK KyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNlKV0KKyAJCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCisgCQlwdWJs aWMgTWF0ZXJpYWwgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJp YWwgY29weSAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdm9pZCBmb3JlYWNoX2xh eWVyIChDb2dsLk1hdGVyaWFsTGF5ZXJDYWxsYmFjayBjYWxsYmFjayk7CistCQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEu MCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2FtYmllbnQgKENvZ2wuQ29sb3IgYW1iaWVudCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIENvZ2wuQ29sb3IgZ2V0X2NvbG9yICgpOworLQkJ W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBz aW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9kaWZmdXNlIChDb2dsLkNvbG9yIGRp ZmZ1c2UpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9lbWlzc2lvbiAo Q29nbC5Db2xvciBlbWlzc2lvbik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wu Qm9vbCBnZXRfbGF5ZXJfcG9pbnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5ZXJfaW5k ZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0g IjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUg Z2V0X2xheWVyX3dyYXBfbW9kZV9wIChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYi KV0KKy0JCXB1YmxpYyBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV9z IChpbnQgbGF5ZXJfaW5kZXgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjYiKV0KKy0JCXB1YmxpYyBDb2dsLk1h dGVyaWFsV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBfbW9kZV90IChpbnQgbGF5ZXJfaW5kZXgpOwor LQkJcHVibGljIHVub3duZWQgR0xpYi5MaXN0PENvZ2wuTWF0ZXJpYWxMYXllcj4gZ2V0X2xheWVy cyAoKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgaW50IGdldF9uX2xheWVycyAoKTsK Ky0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3BvaW50X3NpemUgKCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIGZsb2F0IGdldF9zaGluaW5lc3MgKCk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNp bmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X3NwZWN1bGFyIChDb2dsLkNvbG9yIHNw ZWN1bGFyKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCistCQlwdWJsaWMgdW5vd25lZCBDb2dsLkhhbmRs ZSBnZXRfdXNlcl9wcm9ncmFtICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRp YyB1bm93bmVkIENvZ2wuSGFuZGxlIEByZWYgKENvZ2wuSGFuZGxlIG1hdGVyaWFsKTsKKy0JCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCist CQlwdWJsaWMgdm9pZCByZW1vdmVfbGF5ZXIgKGludCBsYXllcl9pbmRleCk7CisgCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0g IjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2FscGhhX3Rlc3RfZnVuY3Rpb24gKENvZ2wuTWF0 ZXJpYWxBbHBoYUZ1bmMgYWxwaGFfZnVuYywgZmxvYXQgYWxwaGFfcmVmZXJlbmNlKTsKKyAJCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2lu Y2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVudCAoQ29nbC5Db2xvciBhbWJp ZW50KTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVudF9hbmRf ZGlmZnVzZSAoQ29nbC5Db2xvciBjb2xvcik7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGlj IENvZ2wuQm9vbCBzZXRfYmxlbmQgKHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93cyBHTGliLkVy cm9yOworKwkJcHVibGljIGJvb2wgc2V0X2JsZW5kIChzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJv d3MgR0xpYi5FcnJvcjsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfYmxl bmRfY29uc3RhbnQgKENvZ2wuQ29sb3IgY29uc3RhbnRfY29sb3IpOworIAkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjAi KV0KKyAJCXB1YmxpYyB2b2lkIHNldF9jb2xvciAoQ29nbC5Db2xvciBjb2xvcik7CisgCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNl ID0gIjEuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yNGYgKGZsb2F0IHJlZCwgZmxvYXQg Z3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCisgCQlw dWJsaWMgdm9pZCBzZXRfY29sb3I0dWIgKHVpbnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJs dWUsIHVpbnQ4IGFscGhhKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRf ZGlmZnVzZSAoQ29nbC5Db2xvciBkaWZmdXNlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0g dHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJs aWMgdm9pZCBzZXRfZW1pc3Npb24gKENvZ2wuQ29sb3IgZW1pc3Npb24pOworLQkJW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIx LjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9sYXllciAoaW50IGxheWVyX2luZGV4LCBDb2dsLkhh bmRsZSB0ZXh0dXJlKTsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRl ZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNl dF9sYXllcl9jb21iaW5lIChpbnQgbGF5ZXJfaW5kZXgsIHN0cmluZyBibGVuZF9zdHJpbmcpIHRo cm93cyBHTGliLkVycm9yOworKwkJcHVibGljIGJvb2wgc2V0X2xheWVyX2NvbWJpbmUgKGludCBs YXllcl9pbmRleCwgc3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJyb3I7CisgCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNp bmNlID0gIjEuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVyX2NvbWJpbmVfY29uc3RhbnQg KGludCBsYXllcl9pbmRleCwgQ29nbC5Db2xvciBjb25zdGFudCk7CisgCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorQEAgLTEzMSw0MyAr OTksMTUgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVl LCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9sYXllcl9t YXRyaXggKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRyaXggbWF0cml4KTsKKyAJCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS40IildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9sYXllcl9wb2ludF9zcHJpdGVfY29vcmRz X2VuYWJsZWQgKGludCBsYXllcl9pbmRleCwgQ29nbC5Cb29sIGVuYWJsZSkgdGhyb3dzIEdMaWIu RXJyb3I7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBf bW9kZSAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1hdGVyaWFsV3JhcE1vZGUgbW9kZSk7CistCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNp bmNlID0gIjEuNCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV9wIChpbnQg bGF5ZXJfaW5kZXgsIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBtb2RlKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40 IildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3MgKGludCBsYXllcl9pbmRl eCwgQ29nbC5NYXRlcmlhbFdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5jZSA9ICIxLjQiKV0KKy0JCXB1 YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfdCAoaW50IGxheWVyX2luZGV4LCBDb2dsLk1h dGVyaWFsV3JhcE1vZGUgbW9kZSk7CisrCQlwdWJsaWMgYm9vbCBzZXRfbGF5ZXJfcG9pbnRfc3By aXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5ZXJfaW5kZXgsIGJvb2wgZW5hYmxlKSB0aHJvd3Mg R0xpYi5FcnJvcjsKKyAJCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9z aW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40IildCisgCQlwdWJsaWMgdm9pZCBzZXRfcG9pbnRf c2l6ZSAoZmxvYXQgcG9pbnRfc2l6ZSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHZv aWQgc2V0X3NoaW5pbmVzcyAoZmxvYXQgc2hpbmluZXNzKTsKKy0JCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCist CQlwdWJsaWMgdm9pZCBzZXRfc3BlY3VsYXIgKENvZ2wuQ29sb3Igc3BlY3VsYXIpOworIAkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5j ZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF91c2VyX3Byb2dyYW0gKENvZ2wuSGFuZGxl IHByb2dyYW0pOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMiIsIHNpbmNlID0gIjEuMCIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkIHVucmVm IChDb2dsLkhhbmRsZSBtYXRlcmlhbCk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtDb21wYWN0XQorIAlw dWJsaWMgY2xhc3MgTWF0ZXJpYWxMYXllciB7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxG aWx0ZXIgZ2V0X21hZ19maWx0ZXIgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxGaWx0 ZXIgZ2V0X21pbl9maWx0ZXIgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRl cHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIHVub3duZWQgQ29nbC5IYW5kbGUg Z2V0X3RleHR1cmUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxMYXllclR5cGUgZ2V0 X3R5cGUgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFw TW9kZSBnZXRfd3JhcF9tb2RlX3AgKCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIpXQorLQkJcHVibGljIENv Z2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfd3JhcF9tb2RlX3MgKCk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuNCIp XQorLQkJcHVibGljIENvZ2wuTWF0ZXJpYWxXcmFwTW9kZSBnZXRfd3JhcF9tb2RlX3QgKCk7Cisg CX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9pZCA9 ICJjb2dsX29iamVjdF9nZXRfZ3R5cGUgKCkiKV0KKyAJcHVibGljIGFic3RyYWN0IGNsYXNzIE9i amVjdCB7CitAQCAtMTc4LDEzICsxMTgsOSBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCXB1YmxpYyBj bGFzcyBPZmZzY3JlZW4gOiBDb2dsLk9iamVjdCwgQ29nbC5GcmFtZWJ1ZmZlciB7CisgCQlbQ0Nv ZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisgCQlwcm90ZWN0ZWQgT2Zmc2Ny ZWVuICgpOworLQkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMiIpXQorLQkJcHVibGljIHN0YXRpYyB2b2lkKiBAcmVmICh2b2lkKiBvZmZzY3JlZW4p OworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKyAJCXB1 YmxpYyBPZmZzY3JlZW4udG9fdGV4dHVyZSAoQ29nbC5UZXh0dXJlIHRleHR1cmUpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMiIpXQorLQkJ cHVibGljIHN0YXRpYyB2b2lkIHVucmVmICh2b2lkKiBvZmZzY3JlZW4pOworIAkJW0NDb2RlICho YXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJcHVibGljIE9mZnNjcmVlbi53aXRo X3RleHR1cmUgKENvZ2wuVGV4dHVyZSB0ZXh0dXJlKTsKKyAJfQorQEAgLTE5NCwxNyArMTMwLDE2 IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXByb3RlY3RlZCBPbnNjcmVlbiAoKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjE2IildCisgCQlwdWJsaWMgQ29nbC5PbnNjcmVlbkRpcnR5Q2xvc3Vy ZSBhZGRfZGlydHlfY2FsbGJhY2sgKFtDQ29kZSAoZGVsZWdhdGVfdGFyZ2V0X3BvcyA9IDEuNSld IENvZ2wuT25zY3JlZW5EaXJ0eUNhbGxiYWNrIGNhbGxiYWNrLCBDb2dsLlVzZXJEYXRhRGVzdHJv eUNhbGxiYWNrPyBkZXN0cm95KTsKKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisrCQlw dWJsaWMgQ29nbC5GcmFtZUNsb3N1cmUgYWRkX2ZyYW1lX2NhbGxiYWNrIChbQ0NvZGUgKGRlbGVn YXRlX3RhcmdldF9wb3MgPSAxLjUpXSBDb2dsLkZyYW1lQ2FsbGJhY2sgY2FsbGJhY2ssIENvZ2wu VXNlckRhdGFEZXN0cm95Q2FsbGJhY2s/IGRlc3Ryb3kpOworIAkJW1ZlcnNpb24gKHNpbmNlID0g IjIuMCIpXQorIAkJcHVibGljIENvZ2wuT25zY3JlZW5SZXNpemVDbG9zdXJlIGFkZF9yZXNpemVf Y2FsbGJhY2sgKFtDQ29kZSAoZGVsZWdhdGVfdGFyZ2V0X3BvcyA9IDEuNSldIENvZ2wuT25zY3Jl ZW5SZXNpemVDYWxsYmFjayBjYWxsYmFjaywgQ29nbC5Vc2VyRGF0YURlc3Ryb3lDYWxsYmFjaz8g ZGVzdHJveSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2lu Y2UgPSAiMS4xNCIsIHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB1aW50IGFkZF9zd2FwX2J1 ZmZlcnNfY2FsbGJhY2sgKENvZ2wuU3dhcEJ1ZmZlcnNOb3RpZnkgY2FsbGJhY2spOworLQkJcHVi bGljIHN0YXRpYyB2b2lkIGNsdXR0ZXJfYmFja2VuZF9zZXRfc2l6ZV9DTFVUVEVSIChpbnQgd2lk dGgsIGludCBoZWlnaHQpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKyAJCXB1Ymxp YyBpbnQgZ2V0X2J1ZmZlcl9hZ2UgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNCIpXQor IAkJcHVibGljIGludDY0IGdldF9mcmFtZV9jb3VudGVyICgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfcmVzaXphYmxlICgpOworKwkJcHVi bGljIGJvb2wgZ2V0X3Jlc2l6YWJsZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K KyAJCXB1YmxpYyB2b2lkIGhpZGUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQor QEAgLTIxMywxOCArMTQ4LDE2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCXB1YmxpYyB2b2lkIHJl bW92ZV9mcmFtZV9jYWxsYmFjayAoQ29nbC5GcmFtZUNsb3N1cmUgY2xvc3VyZSk7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCByZW1vdmVfcmVzaXplX2NhbGxi YWNrIChDb2dsLk9uc2NyZWVuUmVzaXplQ2xvc3VyZSBjbG9zdXJlKTsKKy0JCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE0Iiwgc2luY2UgPSAiMS4x MCIpXQorLQkJcHVibGljIHZvaWQgcmVtb3ZlX3N3YXBfYnVmZmVyc19jYWxsYmFjayAodWludCBp ZCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfcmVz aXphYmxlIChDb2dsLkJvb2wgcmVzaXphYmxlKTsKKysJCXB1YmxpYyB2b2lkIHNldF9yZXNpemFi bGUgKGJvb2wgcmVzaXphYmxlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1 YmxpYyB2b2lkIHNob3cgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorLQkJcHVi bGljIHZvaWQgc3dhcF9idWZmZXJzICgpOworKwkJcHVibGljIHZvaWQgc3dhcF9idWZmZXJzIChD b2dsLkZyYW1lSW5mbyBmcmFtZV9pbmZvKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2Iild CistCQlwdWJsaWMgdm9pZCBzd2FwX2J1ZmZlcnNfd2l0aF9kYW1hZ2UgKGludCByZWN0YW5nbGVz LCBpbnQgbl9yZWN0YW5nbGVzKTsKKysJCXB1YmxpYyB2b2lkIHN3YXBfYnVmZmVyc193aXRoX2Rh bWFnZSAoaW50IHJlY3RhbmdsZXMsIGludCBuX3JlY3RhbmdsZXMsIENvZ2wuRnJhbWVJbmZvIGlu Zm8pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHN3YXBf cmVnaW9uIChpbnQgcmVjdGFuZ2xlcywgaW50IG5fcmVjdGFuZ2xlcyk7CisrCQlwdWJsaWMgdm9p ZCBzd2FwX3JlZ2lvbiAoaW50IHJlY3RhbmdsZXMsIGludCBuX3JlY3RhbmdsZXMsIENvZ2wuRnJh bWVJbmZvIGluZm8pOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIGNvcHlfZnVuY3Rpb24gPSAiZ19ib3hlZF9jb3B5IiwgZnJlZV9mdW5jdGlvbiA9ICJn X2JveGVkX2ZyZWUiLCB0eXBlX2lkID0gImNvZ2xfb25zY3JlZW5fZGlydHlfY2xvc3VyZV9nZXRf Z3R5cGUgKCkiKV0KKyAJW0NvbXBhY3RdCitAQCAtMjQ0LDcgKzE3Nyw4IEBAIG5hbWVzcGFjZSBD b2dsIHsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgdHlwZV9p ZCA9ICJjb2dsX3BpcGVsaW5lX2dldF9ndHlwZSAoKSIpXQorIAlwdWJsaWMgY2xhc3MgUGlwZWxp bmUgOiBDb2dsLk9iamVjdCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBm YWxzZSldCistCQlwcm90ZWN0ZWQgUGlwZWxpbmUgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCisrCQlwdWJsaWMgUGlwZWxpbmUgKENvZ2wuQ29udGV4dCBjb250ZXh0KTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyBDb2dsLlBpcGVsaW5lIGNvcHkgKCk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCitAQCAtMjU0LDQ0ICsxODgsMzAgQEAgbmFt ZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIGZs b2F0IGdldF9hbHBoYV90ZXN0X3JlZmVyZW5jZSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIy LjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9hbWJpZW50IChDb2dsLkNvbG9yIGFtYmllbnQpOwor LQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIENvZ2wuQ29sb3IgZ2V0X2Nv bG9yICgpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIENvZ2wuQ29s b3JNYXNrIGdldF9jb2xvcl9tYXNrICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQor IAkJcHVibGljIENvZ2wuUGlwZWxpbmVDdWxsRmFjZU1vZGUgZ2V0X2N1bGxfZmFjZV9tb2RlICgp OworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgZ2V0X2RpZmZ1 c2UgKENvZ2wuQ29sb3IgZGlmZnVzZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCist CQlwdWJsaWMgdm9pZCBnZXRfZW1pc3Npb24gKENvZ2wuQ29sb3IgZW1pc3Npb24pOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIENvZ2wuV2luZGluZyBnZXRfZnJvbnRf ZmFjZV93aW5kaW5nICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1Ymxp YyBDb2dsLlBpcGVsaW5lRmlsdGVyIGdldF9sYXllcl9tYWdfZmlsdGVyIChpbnQgbGF5ZXJfaW5k ZXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyBDb2dsLlBpcGVs aW5lRmlsdGVyIGdldF9sYXllcl9taW5fZmlsdGVyIChpbnQgbGF5ZXJfaW5kZXgpOworIAkJW1Zl cnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfbGF5ZXJfcG9p bnRfc3ByaXRlX2Nvb3Jkc19lbmFibGVkIChpbnQgbGF5ZXJfaW5kZXgpOworKwkJcHVibGljIGJv b2wgZ2V0X2xheWVyX3BvaW50X3Nwcml0ZV9jb29yZHNfZW5hYmxlZCAoaW50IGxheWVyX2luZGV4 KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdW5vd25lZCBDb2ds LlRleHR1cmUgZ2V0X2xheWVyX3RleHR1cmUgKGludCBsYXllcl9pbmRleCk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMS42IildCistCQlwdWJsaWMgQ29nbC5QaXBlbGluZVdyYXBNb2RlIGdldF9s YXllcl93cmFwX21vZGVfcCAoaW50IGxheWVyX2luZGV4KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjYiKV0KKyAJCXB1YmxpYyBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgZ2V0X2xheWVyX3dyYXBf bW9kZV9zIChpbnQgbGF5ZXJfaW5kZXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNiIpXQor IAkJcHVibGljIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBnZXRfbGF5ZXJfd3JhcF9tb2RlX3QgKGlu dCBsYXllcl9pbmRleCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMg aW50IGdldF9uX2xheWVycyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1 YmxpYyBDb2dsLkJvb2wgZ2V0X3Blcl92ZXJ0ZXhfcG9pbnRfc2l6ZSAoKTsKKysJCXB1YmxpYyBi b29sIGdldF9wZXJfdmVydGV4X3BvaW50X3NpemUgKCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi Mi4wIildCisgCQlwdWJsaWMgZmxvYXQgZ2V0X3BvaW50X3NpemUgKCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgZmxvYXQgZ2V0X3NoaW5pbmVzcyAoKTsKKy0JCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIGdldF9zcGVjdWxhciAoQ29n bC5Db2xvciBzcGVjdWxhcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJs aWMgaW50IGdldF91bmlmb3JtX2xvY2F0aW9uIChzdHJpbmcgdW5pZm9ybV9uYW1lKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB1bm93bmVkIENvZ2wuSGFuZGxlIGdl dF91c2VyX3Byb2dyYW0gKCk7CitAQCAtMzAwLDExICsyMjAsNyBAQCBuYW1lc3BhY2UgQ29nbCB7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfYWxwaGFf dGVzdF9mdW5jdGlvbiAoQ29nbC5QaXBlbGluZUFscGhhRnVuYyBhbHBoYV9mdW5jLCBmbG9hdCBh bHBoYV9yZWZlcmVuY2UpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGlj IHZvaWQgc2V0X2FtYmllbnQgKENvZ2wuQ29sb3IgYW1iaWVudCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfYW1iaWVudF9hbmRfZGlmZnVzZSAoQ29n bC5Db2xvciBjb2xvcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMg Q29nbC5Cb29sIHNldF9ibGVuZCAoc3RyaW5nIGJsZW5kX3N0cmluZykgdGhyb3dzIEdMaWIuRXJy b3I7CisrCQlwdWJsaWMgYm9vbCBzZXRfYmxlbmQgKHN0cmluZyBibGVuZF9zdHJpbmcpIHRocm93 cyBHTGliLkVycm9yOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZv aWQgc2V0X2JsZW5kX2NvbnN0YW50IChDb2dsLkNvbG9yIGNvbnN0YW50X2NvbG9yKTsKKyAJCVtW ZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KK0BAIC0zMTMsNDYgKzIyOSwzNSBAQCBuYW1lc3BhY2Ug Q29nbCB7CisgCQlwdWJsaWMgdm9pZCBzZXRfY29sb3I0ZiAoZmxvYXQgcmVkLCBmbG9hdCBncmVl biwgZmxvYXQgYmx1ZSwgZmxvYXQgYWxwaGEpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorIAkJcHVibGljIHZvaWQgc2V0X2NvbG9yNHViICh1aW50OCByZWQsIHVpbnQ4IGdyZWVuLCB1 aW50OCBibHVlLCB1aW50OCBhbHBoYSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCist CQlwdWJsaWMgdm9pZCBzZXRfY29sb3JfbWFzayAoQ29nbC5Db2xvck1hc2sgY29sb3JfbWFzayk7 CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBzZXRfY3VsbF9m YWNlX21vZGUgKENvZ2wuUGlwZWxpbmVDdWxsRmFjZU1vZGUgY3VsbF9mYWNlX21vZGUpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2RpZmZ1c2UgKENv Z2wuQ29sb3IgZGlmZnVzZSk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJs aWMgdm9pZCBzZXRfZW1pc3Npb24gKENvZ2wuQ29sb3IgZW1pc3Npb24pOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2Zyb250X2ZhY2Vfd2luZGluZyAo Q29nbC5XaW5kaW5nIGZyb250X3dpbmRpbmcpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIp XQorLQkJcHVibGljIENvZ2wuQm9vbCBzZXRfbGF5ZXJfY29tYmluZSAoaW50IGxheWVyX2luZGV4 LCBzdHJpbmcgYmxlbmRfc3RyaW5nKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyBib29s IHNldF9sYXllcl9jb21iaW5lIChpbnQgbGF5ZXJfaW5kZXgsIHN0cmluZyBibGVuZF9zdHJpbmcp IHRocm93cyBHTGliLkVycm9yOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVi bGljIHZvaWQgc2V0X2xheWVyX2NvbWJpbmVfY29uc3RhbnQgKGludCBsYXllcl9pbmRleCwgQ29n bC5Db2xvciBjb25zdGFudCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVi bGljIHZvaWQgc2V0X2xheWVyX2ZpbHRlcnMgKGludCBsYXllcl9pbmRleCwgQ29nbC5QaXBlbGlu ZUZpbHRlciBtaW5fZmlsdGVyLCBDb2dsLlBpcGVsaW5lRmlsdGVyIG1hZ19maWx0ZXIpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9sYXllcl9tYXRy aXggKGludCBsYXllcl9pbmRleCwgQ29nbC5NYXRyaXggbWF0cml4KTsKKysJCXB1YmxpYyB2b2lk IHNldF9sYXllcl9tYXhfbWlwbWFwX2xldmVsIChpbnQgbGF5ZXIsIGludCBtYXhfbGV2ZWwpOwor IAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9sYXllcl9u dWxsX3RleHR1cmUgKGludCBsYXllcl9pbmRleCwgQ29nbC5UZXh0dXJlVHlwZSB0ZXh0dXJlX3R5 cGUpOworKwkJcHVibGljIHZvaWQgc2V0X2xheWVyX251bGxfdGV4dHVyZSAoaW50IGxheWVyX2lu ZGV4KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wg c2V0X2xheWVyX3BvaW50X3Nwcml0ZV9jb29yZHNfZW5hYmxlZCAoaW50IGxheWVyX2luZGV4LCBD b2dsLkJvb2wgZW5hYmxlKSB0aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyBib29sIHNldF9s YXllcl9wb2ludF9zcHJpdGVfY29vcmRzX2VuYWJsZWQgKGludCBsYXllcl9pbmRleCwgYm9vbCBl bmFibGUpIHRocm93cyBHTGliLkVycm9yOworIAkJcHVibGljIHZvaWQgc2V0X2xheWVyX3RleHR1 cmUgKGludCBsYXllcl9pbmRleCwgQ29nbC5UZXh0dXJlIHRleHR1cmUpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZSAoaW50 IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgbW9kZSk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfbGF5ZXJfd3JhcF9tb2RlX3AgKGlu dCBsYXllcl9pbmRleCwgQ29nbC5QaXBlbGluZVdyYXBNb2RlIG1vZGUpOworLQkJW1ZlcnNpb24g KHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0X2xheWVyX3dyYXBfbW9kZV9zIChp bnQgbGF5ZXJfaW5kZXgsIENvZ2wuUGlwZWxpbmVXcmFwTW9kZSBtb2RlKTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9sYXllcl93cmFwX21vZGVfdCAo aW50IGxheWVyX2luZGV4LCBDb2dsLlBpcGVsaW5lV3JhcE1vZGUgbW9kZSk7CisgCQlbVmVyc2lv biAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9wZXJfdmVydGV4X3Bv aW50X3NpemUgKENvZ2wuQm9vbCBlbmFibGUpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGlj IGJvb2wgc2V0X3Blcl92ZXJ0ZXhfcG9pbnRfc2l6ZSAoYm9vbCBlbmFibGUpIHRocm93cyBHTGli LkVycm9yOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIHZvaWQgc2V0 X3BvaW50X3NpemUgKGZsb2F0IHBvaW50X3NpemUpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIu MCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3NoaW5pbmVzcyAoZmxvYXQgc2hpbmluZXNzKTsKKy0J CVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKy0JCXB1YmxpYyB2b2lkIHNldF9zcGVjdWxhciAo Q29nbC5Db2xvciBzcGVjdWxhcik7CistCQlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisgCQlw dWJsaWMgdm9pZCBzZXRfdW5pZm9ybV8xZiAoaW50IHVuaWZvcm1fbG9jYXRpb24sIGZsb2F0IHZh bHVlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF91 bmlmb3JtXzFpIChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgaW50IHZhbHVlKTsKK0BAIC0zNjEsNyAr MjY2LDcgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQor IAkJcHVibGljIHZvaWQgc2V0X3VuaWZvcm1faW50IChpbnQgdW5pZm9ybV9sb2NhdGlvbiwgaW50 IG5fY29tcG9uZW50cywgaW50IGNvdW50LCBpbnQgdmFsdWUpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjIuMCIpXQorLQkJcHVibGljIHZvaWQgc2V0X3VuaWZvcm1fbWF0cml4IChpbnQgdW5pZm9y bV9sb2NhdGlvbiwgaW50IGRpbWVuc2lvbnMsIGludCBjb3VudCwgQ29nbC5Cb29sIHRyYW5zcG9z ZSwgZmxvYXQgdmFsdWUpOworKwkJcHVibGljIHZvaWQgc2V0X3VuaWZvcm1fbWF0cml4IChpbnQg dW5pZm9ybV9sb2NhdGlvbiwgaW50IGRpbWVuc2lvbnMsIGludCBjb3VudCwgYm9vbCB0cmFuc3Bv c2UsIGZsb2F0IHZhbHVlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0KKyAJCXB1Ymxp YyB2b2lkIHNldF91c2VyX3Byb2dyYW0gKENvZ2wuSGFuZGxlIHByb2dyYW0pOworIAl9CitAQCAt Mzg4LDcgKzI5Myw3IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW0NvbXBh Y3RdCistCXB1YmxpYyBjbGFzcyBRdWF0ZXJuaW9uIHsKKysJcHVibGljIGNsYXNzIFNjYW5vdXQg eworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1l ID0gIkNvZ2xIYW5kbGUiLCByZWZfZnVuY3Rpb24gPSAiY29nbF9zaGFkZXJfcmVmIiwgdW5yZWZf ZnVuY3Rpb24gPSAiY29nbF9zaGFkZXJfdW5yZWYiKV0KKyAJW0NvbXBhY3RdCitAQCAtNDAxLDQ4 ICszMDYsMjMgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJcHVibGljIGJvb2wgaXNfY29tcGlsZWQg KCk7CisgCQlwdWJsaWMgdm9pZCBzb3VyY2UgKHN0cmluZyBzb3VyY2UpOworIAl9CistCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNvZ2xIYW5kbGUi LCByZWZfZnVuY3Rpb24gPSAiY29nbF90ZXh0dXJlX3JlZiIsIHR5cGVfaWQgPSAiY29nbF90ZXh0 dXJlX2dldF9ndHlwZSAoKSIsIHVucmVmX2Z1bmN0aW9uID0gImNvZ2xfdGV4dHVyZV91bnJlZiIp XQorLQlbQ29tcGFjdF0KKy0JcHVibGljIGNsYXNzIFRleHR1cmUgOiBDb2dsLkhhbmRsZSB7Cist CQlwdWJsaWMgQ29nbC5Cb29sIGFsbG9jYXRlICgpIHRocm93cyBHTGliLkVycm9yOworLQkJcHVi bGljIHN0YXRpYyB1aW50MzIgZXJyb3JfcXVhcmsgKCk7CistCQlwdWJsaWMgVGV4dHVyZS5mcm9t X2JpdG1hcCAoQ29nbC5CaXRtYXAgYm1wX2hhbmRsZSwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3Ms IENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0KTsKKy0JCXB1YmxpYyBUZXh0dXJlLmZy b21fZGF0YSAodWludCB3aWR0aCwgdWludCBoZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdz LCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCwgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3Jt YXQsIHVpbnQgcm93c3RyaWRlLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gdWNoYXJb XSBkYXRhKTsKKy0JCXB1YmxpYyBUZXh0dXJlLmZyb21fZmlsZSAoc3RyaW5nIGZpbGVuYW1lLCBD b2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQp IHRocm93cyBHTGliLkVycm9yOworLQkJcHVibGljIFRleHR1cmUuZnJvbV9zdWJfdGV4dHVyZSAo Q29nbC5UZXh0dXJlIGZ1bGxfdGV4dHVyZSwgaW50IHN1Yl94LCBpbnQgc3ViX3ksIGludCBzdWJf d2lkdGgsIGludCBzdWJfaGVpZ2h0KTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCist CQlwdWJsaWMgQ29nbC5UZXh0dXJlQ29tcG9uZW50cyBnZXRfY29tcG9uZW50cyAoKTsKKy0JCXB1 YmxpYyBpbnQgZ2V0X2RhdGEgKENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCB1aW50IHJvd3N0cmlk ZSwgdWludDggZGF0YSk7CistCQlwdWJsaWMgQ29nbC5QaXhlbEZvcm1hdCBnZXRfZm9ybWF0ICgp OworLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfZ2xfdGV4dHVyZSAob3V0IHVpbnQgb3V0X2dsX2hh bmRsZSwgb3V0IHVpbnQgb3V0X2dsX3RhcmdldCk7CistCQlwdWJsaWMgdWludCBnZXRfaGVpZ2h0 ICgpOworLQkJcHVibGljIGludCBnZXRfbWF4X3dhc3RlICgpOworLQkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMTgiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X3ByZW11bHRpcGxpZWQgKCk7Cist CQlwdWJsaWMgdWludCBnZXRfcm93c3RyaWRlICgpOworLQkJcHVibGljIHVpbnQgZ2V0X3dpZHRo ICgpOworLQkJcHVibGljIENvZ2wuQm9vbCBpc19zbGljZWQgKCk7CistCQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjEuMCIp XQorLQkJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgbmV3X2Zyb21fYml0bWFwIChDb2dsLkJp dG1hcCBiaXRtYXAsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGlu dGVybmFsX2Zvcm1hdCk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHN0YXRpYyBDb2ds LlRleHR1cmUgbmV3X2Zyb21fZGF0YSAoaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBDb2dsLlRleHR1 cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIENvZ2wuUGl4ZWxGb3JtYXQg aW50ZXJuYWxfZm9ybWF0LCBpbnQgcm93c3RyaWRlLCB1aW50OCBkYXRhKTsKKy0JCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAi MC44IildCistCQlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSBuZXdfZnJvbV9maWxlIChzdHJp bmcgZmlsZW5hbWUsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVsRm9ybWF0IGlu dGVybmFsX2Zvcm1hdCkgdGhyb3dzIEdMaWIuRXJyb3I7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorLQkJ cHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgbmV3X2Zyb21fZm9yZWlnbiAodWludCBnbF9oYW5k bGUsIHVpbnQgZ2xfdGFyZ2V0LCB1aW50IHdpZHRoLCB1aW50IGhlaWdodCwgdWludCB4X3BvdF93 YXN0ZSwgdWludCB5X3BvdF93YXN0ZSwgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQpOworLQkJW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5j ZSA9ICIxLjIiKV0KKy0JCXB1YmxpYyBDb2dsLlRleHR1cmUgbmV3X2Zyb21fc3ViX3RleHR1cmUg KGludCBzdWJfeCwgaW50IHN1Yl95LCBpbnQgc3ViX3dpZHRoLCBpbnQgc3ViX2hlaWdodCk7Cist CQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIs IHNpbmNlID0gIjAuOCIpXQorLQkJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgbmV3X3dpdGhf c2l6ZSAodWludCB3aWR0aCwgdWludCBoZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBD b2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7CistCQlbVmVyc2lvbiAoc2luY2UgPSAi MS4xOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbXBvbmVudHMgKENvZ2wuVGV4dHVyZUNvbXBv bmVudHMgY29tcG9uZW50cyk7CistCQlwdWJsaWMgQ29nbC5Cb29sIHNldF9kYXRhIChDb2dsLlBp eGVsRm9ybWF0IGZvcm1hdCwgaW50IHJvd3N0cmlkZSwgdWludDggZGF0YSwgaW50IGxldmVsKSB0 aHJvd3MgR0xpYi5FcnJvcjsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCQlwdWJs aWMgdm9pZCBzZXRfcHJlbXVsdGlwbGllZCAoQ29nbC5Cb29sIHByZW11bHRpcGxpZWQpOworLQkJ cHVibGljIENvZ2wuQm9vbCBzZXRfcmVnaW9uIChpbnQgc3JjX3gsIGludCBzcmNfeSwgaW50IGRz dF94LCBpbnQgZHN0X3ksIHVpbnQgZHN0X3dpZHRoLCB1aW50IGRzdF9oZWlnaHQsIGludCB3aWR0 aCwgaW50IGhlaWdodCwgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIHVpbnQgcm93c3RyaWRlLCB1 aW50OCBkYXRhKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1YmxpYyBDb2ds LkJvb2wgc2V0X3JlZ2lvbl9mcm9tX2JpdG1hcCAoaW50IHNyY194LCBpbnQgc3JjX3ksIGludCBk c3RfeCwgaW50IGRzdF95LCB1aW50IGRzdF93aWR0aCwgdWludCBkc3RfaGVpZ2h0LCBDb2dsLkJp dG1hcCBiaXRtYXApOworLQkJcHVibGljIFRleHR1cmUud2l0aF9zaXplICh1aW50IHdpZHRoLCB1 aW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgaW50 ZXJuYWxfZm9ybWF0KTsKKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IiwgbG93ZXJfY2FzZV9jc3VmZml4ID0gInRleHR1cmVfMmQiLCB0eXBlX2lkID0gImNvZ2xfdGV4 dHVyZV8yZF9nZXRfZ3R5cGUgKCkiKV0KKysJcHVibGljIGNsYXNzIFRleHR1cmUyRCA6IENvZ2wu T2JqZWN0LCBDb2dsLlRleHR1cmUgeworKwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9u ID0gZmFsc2UpXQorKwkJcHJvdGVjdGVkIFRleHR1cmUyRCAoKTsKKysJCXB1YmxpYyB2b2lkIGVn bF9pbWFnZV9leHRlcm5hbF9hbGxvY19maW5pc2ggKHZvaWQqIHVzZXJfZGF0YSwgR0xpYi5EZXN0 cm95Tm90aWZ5IGRlc3Ryb3kpOworKwkJcHVibGljIHZvaWQgZWdsX2ltYWdlX2V4dGVybmFsX2Jp bmQgKCk7CisrCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxzZSldCisrCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCisrCQlwdWJsaWMgVGV4dHVyZTJELmZyb21fYml0bWFw IChDb2dsLkJpdG1hcCBiaXRtYXApOworKwl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIsIGxvd2VyX2Nhc2VfY3N1ZmZpeCA9ICJ0ZXh0dXJlXzJkX3NsaWNlZCIs IHR5cGVfaWQgPSAiY29nbF90ZXh0dXJlXzJkX3NsaWNlZF9nZXRfZ3R5cGUgKCkiKV0KKysJcHVi bGljIGNsYXNzIFRleHR1cmUyRFNsaWNlZCA6IENvZ2wuT2JqZWN0LCBDb2dsLlRleHR1cmUgewor KwkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorKwkJcHJvdGVjdGVk IFRleHR1cmUyRFNsaWNlZCAoKTsKKysJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9 IGZhbHNlKV0KKysJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCisrCQlwdWJsaWMgVGV4dHVy ZTJEU2xpY2VkLmZyb21fYml0bWFwIChDb2dsLkJpdG1hcCBibXAsIGludCBtYXhfd2FzdGUpOwor IAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0g IkNvZ2xIYW5kbGUiLCByZWZfZnVuY3Rpb24gPSAiY29nbF92ZXJ0ZXhfYnVmZmVyX3JlZiIsIHVu cmVmX2Z1bmN0aW9uID0gImNvZ2xfdmVydGV4X2J1ZmZlcl91bnJlZiIpXQorIAlbQ29tcGFjdF0K K0BAIC00NjgsNyArMzQ4LDcgQEAgbmFtZXNwYWNlIENvZ2wgeworIAlbQ0NvZGUgKGNoZWFkZXJf ZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCB0eXBlX2lkID0gImNvZ2xfZnJhbWVidWZmZXJfZ2V0 X2d0eXBlICgpIildCisgCXB1YmxpYyBpbnRlcmZhY2UgRnJhbWVidWZmZXIgOiBDb2dsLk9iamVj dCB7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgQ29nbC5Cb29sIGFs bG9jYXRlICgpIHRocm93cyBHTGliLkVycm9yOworKwkJcHVibGljIGJvb2wgYWxsb2NhdGUgKCkg dGhyb3dzIEdMaWIuRXJyb3I7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCisgCQlwdWJs aWMgdm9pZCBjbGVhciAodWxvbmcgYnVmZmVycywgQ29nbC5Db2xvciBjb2xvcik7CisgCQlbVmVy c2lvbiAoc2luY2UgPSAiMS44IildCitAQCAtNDg4LDYgKzM2OCw3IEBAIG5hbWVzcGFjZSBDb2ds IHsKKyAJCXB1YmxpYyBzdGF0aWMgdWludDMyIGVycm9yX3F1YXJrICgpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIGZpbmlzaCAoKTsKKysJCXB1YmxpYyB2 b2lkIGZsdXNoICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2 b2lkIGZydXN0dW0gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0 IHRvcCwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zhcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAi MS44IildCitAQCAtNDk1LDIyICszNzYsMTggQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJW1ZlcnNp b24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGljIGludCBnZXRfYmx1ZV9iaXRzICgpOworIAkJ W1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIENvZ2wuQ29sb3JNYXNrIGdldF9j b2xvcl9tYXNrICgpOworKwkJcHVibGljIHVub3duZWQgQ29nbC5Db250ZXh0IGdldF9jb250ZXh0 ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAkJcHVibGljIGludCBnZXRfZGVw dGhfYml0cyAoKTsKKy0JCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCistCQlwdWJsaWMgdW5v d25lZCBDb2dsLlRleHR1cmUgZ2V0X2RlcHRoX3RleHR1cmUgKCk7CistCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xNCIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfZGVwdGhfdGV4dHVyZV9lbmFi bGVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKy0JCXB1YmxpYyBDb2dsLkJv b2wgZ2V0X2RlcHRoX3dyaXRlX2VuYWJsZWQgKCk7CisrCQlwdWJsaWMgYm9vbCBnZXRfZGVwdGhf d3JpdGVfZW5hYmxlZCAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1Ymxp YyBDb2dsLkJvb2wgZ2V0X2RpdGhlcl9lbmFibGVkICgpOworKwkJcHVibGljIGJvb2wgZ2V0X2Rp dGhlcl9lbmFibGVkICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJcHVibGlj IGludCBnZXRfZ3JlZW5fYml0cyAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJ CXB1YmxpYyBpbnQgZ2V0X2hlaWdodCAoKTsKKy0JCXB1YmxpYyBDb2dsLkJvb2wgZ2V0X2lzX3N0 ZXJlbyAoKTsKKysJCXB1YmxpYyBib29sIGdldF9pc19zdGVyZW8gKCk7CisgCQlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIENvZ2wuTWF0cml4IGdldF9tb2RlbHZpZXdfbWF0 cml4ICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC01NDcsMTIgKzQyNCwx MyBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgdm9pZCBwdXNoX21hdHJpeCAoKTsKKyAJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBwdXNoX3JlY3Rhbmds ZV9jbGlwIChmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQgeF8yLCBmbG9hdCB5XzIpOworKwkJ cHVibGljIHZvaWQgcHVzaF9yZWdpb25fY2xpcCAoQ2Fpcm8uUmVnaW9uIHJlZ2lvbik7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQorIAkJcHVibGljIHZvaWQgcHVzaF9zY2lzc29yX2Ns aXAgKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyAJCVtWZXJzaW9uIChz aW5jZSA9ICIxLjEwIildCistCQlwdWJsaWMgQ29nbC5Cb29sIHJlYWRfcGl4ZWxzIChpbnQgeCwg aW50IHksIGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIHVp bnQ4IHBpeGVscyk7CisrCQlwdWJsaWMgYm9vbCByZWFkX3BpeGVscyAoaW50IHgsIGludCB5LCBp bnQgd2lkdGgsIGludCBoZWlnaHQsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0LCB1aW50OCBwaXhl bHMpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKy0JCXB1YmxpYyBDb2dsLkJvb2wg cmVhZF9waXhlbHNfaW50b19iaXRtYXAgKGludCB4LCBpbnQgeSwgQ29nbC5SZWFkUGl4ZWxzRmxh Z3Mgc291cmNlLCBDb2dsLkJpdG1hcCBiaXRtYXApOworKwkJcHVibGljIGJvb2wgcmVhZF9waXhl bHNfaW50b19iaXRtYXAgKGludCB4LCBpbnQgeSwgQ29nbC5SZWFkUGl4ZWxzRmxhZ3Mgc291cmNl LCBDb2dsLkJpdG1hcCBiaXRtYXApOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuOCIpXQorIAkJ cHVibGljIHZvaWQgcmVzb2x2ZV9zYW1wbGVzICgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEu OCIpXQorQEAgLTU2MCwxOSArNDM4LDEzIEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCByb3RhdGUgKGZsb2F0IGFuZ2xlLCBm bG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAiKV0K Ky0JCXB1YmxpYyB2b2lkIHJvdGF0ZV9ldWxlciAoQ29nbC5FdWxlciBldWxlcik7CistCQlbVmVy c2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCByb3RhdGVfcXVhdGVybmlvbiAo Q29nbC5RdWF0ZXJuaW9uIHF1YXRlcm5pb24pOworKwkJcHVibGljIHZvaWQgcm90YXRlX2V1bGVy IChHcmFwaGVuZS5FdWxlciBldWxlcik7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIpXQor IAkJcHVibGljIHZvaWQgc2NhbGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQkJW1Zl cnNpb24gKHNpbmNlID0gIjEuOCIpXQorLQkJcHVibGljIHZvaWQgc2V0X2NvbG9yX21hc2sgKENv Z2wuQ29sb3JNYXNrIGNvbG9yX21hc2spOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0K Ky0JCXB1YmxpYyB2b2lkIHNldF9kZXB0aF90ZXh0dXJlX2VuYWJsZWQgKENvZ2wuQm9vbCBlbmFi bGVkKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE4IildCistCQlwdWJsaWMgdm9pZCBzZXRf ZGVwdGhfd3JpdGVfZW5hYmxlZCAoQ29nbC5Cb29sIGRlcHRoX3dyaXRlX2VuYWJsZWQpOworKwkJ cHVibGljIHZvaWQgc2V0X2RlcHRoX3dyaXRlX2VuYWJsZWQgKGJvb2wgZGVwdGhfd3JpdGVfZW5h YmxlZCk7CisgCQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCQlwdWJsaWMgdm9pZCBzZXRf ZGl0aGVyX2VuYWJsZWQgKENvZ2wuQm9vbCBkaXRoZXJfZW5hYmxlZCk7CisrCQlwdWJsaWMgdm9p ZCBzZXRfZGl0aGVyX2VuYWJsZWQgKGJvb2wgZGl0aGVyX2VuYWJsZWQpOworIAkJW1ZlcnNpb24g KHNpbmNlID0gIjEuMTAiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9tb2RlbHZpZXdfbWF0cml4IChD b2dsLk1hdHJpeCBtYXRyaXgpOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KK0BAIC01 ODgsNiArNDYwLDM5IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIx LjEwIildCisgCQlwdWJsaWMgdm9pZCB0cmFuc2xhdGUgKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0 IHopOworIAl9CisrCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIHR5 cGVfaWQgPSAiY29nbF90ZXh0dXJlX2dldF9ndHlwZSAoKSIpXQorKwlwdWJsaWMgaW50ZXJmYWNl IFRleHR1cmUgOiBDb2dsLk9iamVjdCB7CisrCQlwdWJsaWMgYm9vbCBhbGxvY2F0ZSAoKSB0aHJv d3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyBzdGF0aWMgdWludDMyIGVycm9yX3F1YXJrICgpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKysJCXB1YmxpYyBDb2dsLlRleHR1cmVDb21w b25lbnRzIGdldF9jb21wb25lbnRzICgpOworKwkJcHVibGljIGludCBnZXRfZGF0YSAoQ29nbC5Q aXhlbEZvcm1hdCBmb3JtYXQsIHVpbnQgcm93c3RyaWRlLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9 IGZhbHNlKV0gdWludDhbXT8gZGF0YSk7CisrCQlwdWJsaWMgYm9vbCBnZXRfZ2xfdGV4dHVyZSAo b3V0IHVpbnQgb3V0X2dsX2hhbmRsZSwgb3V0IHVpbnQgb3V0X2dsX3RhcmdldCk7CisrCQlwdWJs aWMgdWludCBnZXRfaGVpZ2h0ICgpOworKwkJcHVibGljIGludCBnZXRfbWF4X3dhc3RlICgpOwor KwkJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTgiKV0KKysJCXB1YmxpYyBib29sIGdldF9wcmVtdWx0 aXBsaWVkICgpOworKwkJcHVibGljIHVpbnQgZ2V0X3dpZHRoICgpOworKwkJcHVibGljIGJvb2wg aXNfc2xpY2VkICgpOworKwkJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIxLjAiKV0KKysJCXB1YmxpYyBzdGF0aWMgQ29nbC5U ZXh0dXJlIG5ld19mcm9tX2JpdG1hcCAoQ29nbC5CaXRtYXAgYml0bWFwLCBDb2dsLlRleHR1cmVG bGFncyBmbGFncywgQ29nbC5QaXhlbEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOworKwkJW1ZlcnNp b24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9 ICIwLjgiKV0KKysJCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIG5ld19mcm9tX2RhdGEgKGlu dCB3aWR0aCwgaW50IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxG b3JtYXQgZm9ybWF0LCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCwgaW50IHJvd3N0 cmlkZSwgW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSldIHVpbnQ4W10gZGF0YSk7CisrCQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNp bmNlID0gIjAuOCIpXQorKwkJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgbmV3X2Zyb21fZmls ZSAoc3RyaW5nIGZpbGVuYW1lLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZv cm1hdCBpbnRlcm5hbF9mb3JtYXQpIHRocm93cyBHTGliLkVycm9yOworKwkJW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIxLjIi KV0KKysJCXB1YmxpYyBDb2dsLlRleHR1cmUgbmV3X2Zyb21fc3ViX3RleHR1cmUgKGludCBzdWJf eCwgaW50IHN1Yl95LCBpbnQgc3ViX3dpZHRoLCBpbnQgc3ViX2hlaWdodCk7CisrCQlbVmVyc2lv biAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0g IjAuOCIpXQorKwkJcHVibGljIHN0YXRpYyBDb2dsLlRleHR1cmUgbmV3X3dpdGhfc2l6ZSAodWlu dCB3aWR0aCwgdWludCBoZWlnaHQsIENvZ2wuVGV4dHVyZUZsYWdzIGZsYWdzLCBDb2dsLlBpeGVs Rm9ybWF0IGludGVybmFsX2Zvcm1hdCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMS4xOCIpXQor KwkJcHVibGljIHZvaWQgc2V0X2NvbXBvbmVudHMgKENvZ2wuVGV4dHVyZUNvbXBvbmVudHMgY29t cG9uZW50cyk7CisrCQlwdWJsaWMgYm9vbCBzZXRfZGF0YSAoQ29nbC5QaXhlbEZvcm1hdCBmb3Jt YXQsIGludCByb3dzdHJpZGUsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSB1aW50OFtd IGRhdGEsIGludCBsZXZlbCkgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlbVmVyc2lvbiAoc2luY2Ug PSAiMS4xOCIpXQorKwkJcHVibGljIHZvaWQgc2V0X3ByZW11bHRpcGxpZWQgKGJvb2wgcHJlbXVs dGlwbGllZCk7CisrCQlwdWJsaWMgYm9vbCBzZXRfcmVnaW9uIChpbnQgc3JjX3gsIGludCBzcmNf eSwgaW50IGRzdF94LCBpbnQgZHN0X3ksIHVpbnQgZHN0X3dpZHRoLCB1aW50IGRzdF9oZWlnaHQs IGludCB3aWR0aCwgaW50IGhlaWdodCwgQ29nbC5QaXhlbEZvcm1hdCBmb3JtYXQsIHVpbnQgcm93 c3RyaWRlLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gdWludDhbXSBkYXRhKTsKKysJ CVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKysJCXB1YmxpYyBib29sIHNldF9yZWdpb25fZnJv bV9iaXRtYXAgKGludCBzcmNfeCwgaW50IHNyY195LCBpbnQgZHN0X3gsIGludCBkc3RfeSwgdWlu dCBkc3Rfd2lkdGgsIHVpbnQgZHN0X2hlaWdodCwgQ29nbC5CaXRtYXAgYml0bWFwKTsKKysJfQor IAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1NpbXBsZVR5 cGVdCisgCXB1YmxpYyBzdHJ1Y3QgQW5nbGUgOiBpbnQzMiB7CitAQCAtNjM1LDEwICs1NDAsNiBA QCBuYW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgdm9pZCBzZXRfYmx1ZV9ieXRlICh1aW50OCBi bHVlKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9i bHVlX2Zsb2F0IChmbG9hdCBibHVlKTsKKy0JCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjQiLCBzaW5jZSA9ICIxLjAiKV0KKy0JCXB1YmxpYyB2b2lk IHNldF9mcm9tXzRmIChmbG9hdCByZWQsIGZsb2F0IGdyZWVuLCBmbG9hdCBibHVlLCBmbG9hdCBh bHBoYSk7CistCQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS40Iiwgc2luY2UgPSAiMS4wIildCistCQlwdWJsaWMgdm9pZCBzZXRfZnJvbV80dWIgKHVp bnQ4IHJlZCwgdWludDggZ3JlZW4sIHVpbnQ4IGJsdWUsIHVpbnQ4IGFscGhhKTsKKyAJCVtWZXJz aW9uIChzaW5jZSA9ICIxLjQiKV0KKyAJCXB1YmxpYyB2b2lkIHNldF9ncmVlbiAoZmxvYXQgZ3Jl ZW4pOworIAkJW1ZlcnNpb24gKHNpbmNlID0gIjEuNCIpXQorQEAgLTY2Miw3ICs1NjMsNyBAQCBu YW1lc3BhY2UgQ29nbCB7CisgCQlwdWJsaWMgd2VhayBzdHJpbmcgbmFtZTsKKyAJCXB1YmxpYyB1 bG9uZyBpbnN0YW5jZV9jb3VudDsKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiLCB0eXBlX2lkID0gIkNPR0xfVFlQRV9NQVRSSVgiKV0KKysJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY29weV9mdW5jdGlvbiA9ICJnX2JveGVk X2NvcHkiLCBmcmVlX2Z1bmN0aW9uID0gImdfYm94ZWRfZnJlZSIsIHR5cGVfaWQgPSAiQ09HTF9U WVBFX01BVFJJWCIpXQorIAlwdWJsaWMgc3RydWN0IE1hdHJpeCB7CisgCQlwdWJsaWMgZmxvYXQg eHg7CisgCQlwdWJsaWMgZmxvYXQgeXg7CitAQCAtNjg5LDMyICs1OTAsMjcgQEAgbmFtZXNwYWNl IENvZ2wgeworIAkJcHVibGljIHZvaWQgZnJ1c3R1bSAoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQs IGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBmbG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKyAJ CXB1YmxpYyB1bm93bmVkIGZsb2F0W10gZ2V0X2FycmF5ICgpOworIAkJW1ZlcnNpb24gKHNpbmNl ID0gIjEuMiIpXQorLQkJcHVibGljIENvZ2wuQm9vbCBnZXRfaW52ZXJzZSAob3V0IENvZ2wuTWF0 cml4IGludmVyc2UpOworKwkJcHVibGljIGJvb2wgZ2V0X2ludmVyc2UgKG91dCBDb2dsLk1hdHJp eCBpbnZlcnNlKTsKKyAJCVtDQ29kZSAoY25hbWUgPSAiY29nbF9tYXRyaXhfaW5pdF9pZGVudGl0 eSIpXQorIAkJcHVibGljIE1hdHJpeC5pZGVudGl0eSAoKTsKKy0JCXB1YmxpYyB2b2lkIGluaXRf ZnJvbV9ldWxlciAoQ29nbC5FdWxlciBldWxlcik7CistCQlwdWJsaWMgdm9pZCBpbml0X2Zyb21f cXVhdGVybmlvbiAoQ29nbC5RdWF0ZXJuaW9uIHF1YXRlcm5pb24pOworKwkJcHVibGljIHZvaWQg aW5pdF9mcm9tX2V1bGVyIChHcmFwaGVuZS5FdWxlciBldWxlcik7CisgCQlbVmVyc2lvbiAoc2lu Y2UgPSAiMi4wIildCisgCQlwdWJsaWMgdm9pZCBpbml0X3RyYW5zbGF0aW9uIChmbG9hdCB0eCwg ZmxvYXQgdHksIGZsb2F0IHR6KTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKy0JCXB1 YmxpYyBDb2dsLkJvb2wgaXNfaWRlbnRpdHkgKCk7CisrCQlwdWJsaWMgYm9vbCBpc19pZGVudGl0 eSAoKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgiKV0KKyAJCXB1YmxpYyB2b2lkIGxvb2tf YXQgKGZsb2F0IGV5ZV9wb3NpdGlvbl94LCBmbG9hdCBleWVfcG9zaXRpb25feSwgZmxvYXQgZXll X3Bvc2l0aW9uX3osIGZsb2F0IG9iamVjdF94LCBmbG9hdCBvYmplY3RfeSwgZmxvYXQgb2JqZWN0 X3osIGZsb2F0IHdvcmxkX3VwX3gsIGZsb2F0IHdvcmxkX3VwX3ksIGZsb2F0IHdvcmxkX3VwX3op OworIAkJW0NDb2RlIChjbmFtZSA9ICJjb2dsX21hdHJpeF9tdWx0aXBseSIpXQorIAkJcHVibGlj IE1hdHJpeC5tdWx0aXBseSAoQ29nbC5NYXRyaXggYSwgQ29nbC5NYXRyaXggYik7CistCQlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQkJ cHVibGljIHZvaWQgb3J0aG8gKGZsb2F0IGxlZnQsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20s IGZsb2F0IHRvcCwgZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsKKyAJCVtWZXJzaW9uIChzaW5jZSA9 ICIxLjEwIildCisgCQlwdWJsaWMgdm9pZCBvcnRob2dyYXBoaWMgKGZsb2F0IHhfMSwgZmxvYXQg eV8xLCBmbG9hdCB4XzIsIGZsb2F0IHlfMiwgZmxvYXQgbmVhciwgZmxvYXQgZmFyKTsKKyAJCXB1 YmxpYyB2b2lkIHBlcnNwZWN0aXZlIChmbG9hdCBmb3ZfeSwgZmxvYXQgYXNwZWN0LCBmbG9hdCB6 X25lYXIsIGZsb2F0IHpfZmFyKTsKKyAJCXB1YmxpYyB2b2lkIHByb2plY3RfcG9pbnRzIChpbnQg bl9jb21wb25lbnRzLCBzaXplX3Qgc3RyaWRlX2luLCB2b2lkKiBwb2ludHNfaW4sIHNpemVfdCBz dHJpZGVfb3V0LCB2b2lkKiBwb2ludHNfb3V0LCBpbnQgbl9wb2ludHMpOworIAkJcHVibGljIHZv aWQgcm90YXRlIChmbG9hdCBhbmdsZSwgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CisgCQlb VmVyc2lvbiAoc2luY2UgPSAiMi4wIildCistCQlwdWJsaWMgdm9pZCByb3RhdGVfZXVsZXIgKENv Z2wuRXVsZXIgZXVsZXIpOworLQkJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorLQkJcHVibGlj IHZvaWQgcm90YXRlX3F1YXRlcm5pb24gKENvZ2wuUXVhdGVybmlvbiBxdWF0ZXJuaW9uKTsKKysJ CXB1YmxpYyB2b2lkIHJvdGF0ZV9ldWxlciAoR3JhcGhlbmUuRXVsZXIgZXVsZXIpOworIAkJcHVi bGljIHZvaWQgc2NhbGUgKGZsb2F0IHN4LCBmbG9hdCBzeSwgZmxvYXQgc3opOworLQkJcHVibGlj IHZvaWQgdHJhbnNmb3JtX3BvaW50IChyZWYgZmxvYXQgeCwgcmVmIGZsb2F0IHksIHJlZiBmbG9h dCB6LCByZWYgZmxvYXQgdyk7CisrCQlwdWJsaWMgc3RhdGljIHZvaWQgdHJhbnNmb3JtX3BvaW50 IChyZWYgQ29nbC5NYXRyaXggbWF0cml4LCByZWYgZmxvYXQgeCwgcmVmIGZsb2F0IHksIHJlZiBm bG9hdCB6LCByZWYgZmxvYXQgdyk7CisgCQlwdWJsaWMgdm9pZCB0cmFuc2Zvcm1fcG9pbnRzIChp bnQgbl9jb21wb25lbnRzLCBzaXplX3Qgc3RyaWRlX2luLCB2b2lkKiBwb2ludHNfaW4sIHNpemVf dCBzdHJpZGVfb3V0LCB2b2lkKiBwb2ludHNfb3V0LCBpbnQgbl9wb2ludHMpOworIAkJcHVibGlj IHZvaWQgdHJhbnNsYXRlIChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdCB6KTsKKyAJCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCitAQCAtODAxLDE2ICs2OTcsNiBAQCBuYW1lc3BhY2UgQ29nbCB7 CisgCQlXSU5ET1dfQlVGRkVSLAorIAkJT0ZGU0NSRUVOX0JVRkZFUgorIAl9CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9DT0xPUl9N QVNLXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorLQlbRmxhZ3NdCistCXB1YmxpYyBlbnVtIENv bG9yTWFzayB7CistCQlOT05FLAorLQkJUkVELAorLQkJR1JFRU4sCistCQlCTFVFLAorLQkJQUxQ SEEsCistCQlBTEwKKy0JfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiLCBjcHJlZml4ID0gIkNPR0xfREVQVEhfVEVTVF9GVU5DVElPTl8iLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKyAJcHVibGljIGVudW0gRGVwdGhUZXN0RnVuY3Rpb24geworIAkJTkVWRVIsCitA QCAtODIyLDQ2ICs3MDgsNDEgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJR0VRVUFMLAorIAkJQUxX QVlTCisgCX0KKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3By ZWZpeCA9ICJDT0dMX0ZFQVRVUkVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9FR0xfSU1B R0VfRkxBR18iLCBoYXNfdHlwZV9pZCA9IGZhbHNlKV0KKyAJW0ZsYWdzXQorLQlbVmVyc2lvbiAo c2luY2UgPSAiMC44IildCistCXB1YmxpYyBlbnVtIEZlYXR1cmVGbGFncyB7CistCQlURVhUVVJF X1JFQ1RBTkdMRSwKKy0JCVRFWFRVUkVfTlBPVCwKKy0JCVRFWFRVUkVfWVVWLAorLQkJVEVYVFVS RV9SRUFEX1BJWEVMUywKKy0JCVNIQURFUlNfR0xTTCwKKy0JCU9GRlNDUkVFTiwKKy0JCU9GRlND UkVFTl9NVUxUSVNBTVBMRSwKKy0JCU9GRlNDUkVFTl9CTElULAorLQkJRk9VUl9DTElQX1BMQU5F UywKKy0JCVNURU5DSUxfQlVGRkVSLAorLQkJVkJPUywKKy0JCVBCT1MsCistCQlVTlNJR05FRF9J TlRfSU5ESUNFUywKKy0JCURFUFRIX1JBTkdFLAorLQkJVEVYVFVSRV9OUE9UX0JBU0lDLAorLQkJ VEVYVFVSRV9OUE9UX01JUE1BUCwKKy0JCVRFWFRVUkVfTlBPVF9SRVBFQVQsCistCQlQT0lOVF9T UFJJVEUsCistCQlURVhUVVJFXzNELAorLQkJTUFQX0JVRkZFUl9GT1JfUkVBRCwKKy0JCU1BUF9C VUZGRVJfRk9SX1dSSVRFLAorLQkJT05TQ1JFRU5fTVVMVElQTEUsCistCQlERVBUSF9URVhUVVJF CisrCXB1YmxpYyBlbnVtIEVnbEltYWdlRmxhZ3MgeworKwkJTk9ORSwKKysJCU5PX0dFVF9EQVRB CisrCX0KKysJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY3ByZWZp eCA9ICJDT0dMX0ZFQVRVUkVfSURfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisrCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCisrCXB1YmxpYyBlbnVtIEZlYXR1cmVJRCB7CisrCQlbQ0NvZGUg KGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9VTlNJR05FRF9JTlRfSU5ESUNFUyIpXQorKwkJT0dM X0ZFQVRVUkVfSURfVU5TSUdORURfSU5UX0lORElDRVMsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNP R0xfRkVBVFVSRV9JRF9NQVBfQlVGRkVSX0ZPUl9SRUFEIildCisrCQlPR0xfRkVBVFVSRV9JRF9N QVBfQlVGRkVSX0ZPUl9SRUFELAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURf TUFQX0JVRkZFUl9GT1JfV1JJVEUiKV0KKysJCU9HTF9GRUFUVVJFX0lEX01BUF9CVUZGRVJfRk9S X1dSSVRFLAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfU1dBUF9CVUZGRVJT X0VWRU5UIildCisrCQlPR0xfRkVBVFVSRV9JRF9TV0FQX0JVRkZFUlNfRVZFTlQsCisrCQlbQ0Nv ZGUgKGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9QUkVTRU5UQVRJT05fVElNRSIpXQorKwkJT0dM X0ZFQVRVUkVfSURfUFJFU0VOVEFUSU9OX1RJTUUsCisrCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xf RkVBVFVSRV9JRF9GRU5DRSIpXQorKwkJT0dMX0ZFQVRVUkVfSURfRkVOQ0UsCisrCQlbQ0NvZGUg KGNuYW1lID0gIkNPR0xfRkVBVFVSRV9JRF9URVhUVVJFX1JHIildCisrCQlPR0xfRkVBVFVSRV9J RF9URVhUVVJFX1JHLAorKwkJW0NDb2RlIChjbmFtZSA9ICJDT0dMX0ZFQVRVUkVfSURfQlVGRkVS X0FHRSIpXQorKwkJT0dMX0ZFQVRVUkVfSURfQlVGRkVSX0FHRSwKKysJCVtDQ29kZSAoY25hbWUg PSAiQ09HTF9GRUFUVVJFX0lEX1RFWFRVUkVfRUdMX0lNQUdFX0VYVEVSTkFMIildCisrCQlPR0xf RkVBVFVSRV9JRF9URVhUVVJFX0VHTF9JTUFHRV9FWFRFUk5BTCwKKysJCVtDQ29kZSAoY25hbWUg PSAiQ09HTF9GRUFUVVJFX0lEX0JMSVRfRlJBTUVCVUZGRVIiKV0KKysJCU9HTF9GRUFUVVJFX0lE X0JMSVRfRlJBTUVCVUZGRVIKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRklMVEVSXyIsIGhhc190eXBlX2lkID0gZmFsc2Up XQorIAlwdWJsaWMgZW51bSBGaWx0ZXJSZXR1cm4geworIAkJQ09OVElOVUUsCisgCQlSRU1PVkUK KyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4 ID0gIkNPR0xfRk9HX01PREVfIiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtWZXJzaW9uIChz aW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIGVudW0gRm9nTW9kZSB7CistCQlMSU5FQVIsCistCQlF WFBPTkVOVElBTCwKKy0JCUVYUE9ORU5USUFMX1NRVUFSRUQKKy0JfQorIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfRlJBTUVfRVZFTlRf IiwgaGFzX3R5cGVfaWQgPSBmYWxzZSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE0IildCisg CXB1YmxpYyBlbnVtIEZyYW1lRXZlbnQgeworQEAgLTg3NCw2ICs3NTUsMTQgQEAgbmFtZXNwYWNl IENvZ2wgeworIAkJRlJBTUVCVUZGRVJfRVJST1JfQUxMT0NBVEU7CisgCQlwdWJsaWMgc3RhdGlj IHVpbnQzMiBxdWFyayAoKTsKKyAJfQorKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfR1JBUEhJQ1NfUkVTRVRfU1RBVFVTXyIsIGhhc190 eXBlX2lkID0gZmFsc2UpXQorKwlwdWJsaWMgZW51bSBHcmFwaGljc1Jlc2V0U3RhdHVzIHsKKysJ CU5PX0VSUk9SLAorKwkJR1VJTFRZX0NPTlRFWFRfUkVTRVQsCisrCQlJTk5PQ0VOVF9DT05URVhU X1JFU0VULAorKwkJVU5LTk9XTl9DT05URVhUX1JFU0VULAorKwkJUFVSR0VEX0NPTlRFWFRfUkVT RVQKKysJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJl Zml4ID0gIkNPR0xfSU5ESUNFU19UWVBFX1VOU0lHTkVEXyIsIGhhc190eXBlX2lkID0gZmFsc2Up XQorIAlwdWJsaWMgZW51bSBJbmRpY2VzVHlwZSB7CisgCQlCWVRFLAorQEAgLTkwMCwxMiArNzg5 LDYgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJTkVBUkVTVF9NSVBNQVBfTElORUFSLAorIAkJTElO RUFSX01JUE1BUF9MSU5FQVIKKyAJfQorLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiLCBjcHJlZml4ID0gIkNPR0xfTUFURVJJQUxfTEFZRVJfVFlQRV8iLCBoYXNfdHlw ZV9pZCA9IGZhbHNlKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgZW51 bSBNYXRlcmlhbExheWVyVHlwZSB7CistCQlbQ0NvZGUgKGNuYW1lID0gIkNPR0xfTUFURVJJQUxf TEFZRVJfVFlQRV9URVhUVVJFIildCistCQlNQVRFUklBTF9MQVlFUl9UWVBFX1RFWFRVUkUKKy0J fQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjcHJlZml4ID0g IkNPR0xfTUFURVJJQUxfV1JBUF9NT0RFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbVmVy c2lvbiAoc2luY2UgPSAiMS40IildCisgCXB1YmxpYyBlbnVtIE1hdGVyaWFsV3JhcE1vZGUgewor QEAgLTk3MCw2ICs4NTMsMTAgQEAgbmFtZXNwYWNlIENvZ2wgeworIAkJQkdSQV8xMDEwMTAyLAor IAkJQVJHQl8yMTAxMDEwLAorIAkJQUJHUl8yMTAxMDEwLAorKwkJUkdCQV9GUF8xNjE2MTYxNiwK KysJCUJHUkFfRlBfMTYxNjE2MTYsCisrCQlBUkdCX0ZQXzE2MTYxNjE2LAorKwkJQUJHUl9GUF8x NjE2MTYxNiwKKyAJCVJHQkFfODg4OF9QUkUsCisgCQlCR1JBXzg4ODhfUFJFLAorIAkJQVJHQl84 ODg4X1BSRSwKK0BAIC05ODAsOSArODY3LDE2IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJCUJHUkFf MTAxMDEwMl9QUkUsCisgCQlBUkdCXzIxMDEwMTBfUFJFLAorIAkJQUJHUl8yMTAxMDEwX1BSRSwK KysJCVJHQkFfRlBfMTYxNjE2MTZfUFJFLAorKwkJQkdSQV9GUF8xNjE2MTYxNl9QUkUsCisrCQlB UkdCX0ZQXzE2MTYxNjE2X1BSRSwKKysJCUFCR1JfRlBfMTYxNjE2MTZfUFJFLAorIAkJREVQVEhf MTYsCisgCQlERVBUSF8zMiwKKy0JCURFUFRIXzI0X1NURU5DSUxfOAorKwkJREVQVEhfMjRfU1RF TkNJTF84OworKwkJcHVibGljIGludCBnZXRfYnl0ZXNfcGVyX3BpeGVsIChpbnQgcGxhbmUpOwor KwkJcHVibGljIGludCBnZXRfbl9wbGFuZXMgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcg dG9fc3RyaW5nICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIsIGNwcmVmaXggPSAiQ09HTF9SRUFEX1BJWEVMU19DT0xPUl8iLCBoYXNfdHlwZV9pZCA9 IGZhbHNlKV0KKyAJW0ZsYWdzXQorQEAgLTEwNDEsMTMgKzkzNSw2IEBAIG5hbWVzcGFjZSBDb2ds IHsKKyAJCU5PX1NMSUNJTkcsCisgCQlOT19BVExBUworIAl9CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9URVhUVVJFX1RZUEVfIiwg aGFzX3R5cGVfaWQgPSBmYWxzZSldCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCistCXB1 YmxpYyBlbnVtIFRleHR1cmVUeXBlIHsKKy0JCUAyRCwKKy0JCUAzRCwKKy0JCVJFQ1RBTkdMRQor LQl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXgg PSAiQ09HTF9WRVJUSUNFU19NT0RFXyIsIGhhc190eXBlX2lkID0gZmFsc2UpXQorIAlbVmVyc2lv biAoc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBlbnVtIFZlcnRpY2VzTW9kZSB7CitAQCAtMTA2 Nyw3ICs5NTQsNiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJjb2dsL2NvZ2wuaCIsIGNwcmVmaXggPSAiQ09HTF9XSU5TWVNfRkVBVFVSRV8iLCBoYXNf dHlwZV9pZCA9IGZhbHNlKV0KKyAJcHVibGljIGVudW0gV2luc3lzRmVhdHVyZSB7CisgCQlNVUxU SVBMRV9PTlNDUkVFTiwKKy0JCVNXQVBfVEhST1RUTEUsCisgCQlWQkxBTktfQ09VTlRFUiwKKyAJ CVZCTEFOS19XQUlULAorIAkJVEVYVFVSRV9GUk9NX1BJWE1BUCwKK0BAIC0xMDgyLDkgKzk2OCwx MiBAQCBuYW1lc3BhY2UgQ29nbCB7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2ds L2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDEuOSldCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjgi KV0KKyAJcHVibGljIGRlbGVnYXRlIHZvaWQgRGVidWdPYmplY3RGb3JlYWNoVHlwZUNhbGxiYWNr IChDb2dsLkRlYnVnT2JqZWN0VHlwZUluZm8gaW5mbyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGluc3RhbmNlX3BvcyA9IDIuOSldCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS40 IildCistCXB1YmxpYyBkZWxlZ2F0ZSBDb2dsLkJvb2wgTWF0ZXJpYWxMYXllckNhbGxiYWNrIChD b2dsLk1hdGVyaWFsIG1hdGVyaWFsLCBpbnQgbGF5ZXJfaW5kZXgpOworKwlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAxLjkpXQorKwlbVmVy c2lvbiAoc2luY2UgPSAiMC4xMCIpXQorKwlwdWJsaWMgZGVsZWdhdGUgdm9pZCBGZWF0dXJlQ2Fs bGJhY2sgKENvZ2wuRmVhdHVyZUlEIGZlYXR1cmUpOworKwlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAzLjkpXQorKwlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xNCIpXQorKwlwdWJsaWMgZGVsZWdhdGUgdm9pZCBGcmFtZUNhbGxiYWNrIChDb2ds Lk9uc2NyZWVuIG9uc2NyZWVuLCBDb2dsLkZyYW1lRXZlbnQgZXZlbnQsIENvZ2wuRnJhbWVJbmZv IGluZm8pOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBpbnN0 YW5jZV9wb3MgPSAyLjkpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xNiIpXQorIAlwdWJsaWMg ZGVsZWdhdGUgdm9pZCBPbnNjcmVlbkRpcnR5Q2FsbGJhY2sgKENvZ2wuT25zY3JlZW4gb25zY3Jl ZW4sIENvZ2wuT25zY3JlZW5EaXJ0eUluZm8gaW5mbyk7CitAQCAtMTA5MiwxMiArOTgxLDEwIEBA IG5hbWVzcGFjZSBDb2dsIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0gIjIuMCIpXQorIAlwdWJsaWMg ZGVsZWdhdGUgdm9pZCBPbnNjcmVlblJlc2l6ZUNhbGxiYWNrIChDb2dsLk9uc2NyZWVuIG9uc2Ny ZWVuLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorLQlwdWJsaWMgZGVsZWdhdGUg dm9pZCBPbnNjcmVlblgxMU1hc2tDYWxsYmFjayAoQ29nbC5PbnNjcmVlbiBvbnNjcmVlbiwgdWlu dDMyIGV2ZW50X21hc2spOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiLCBpbnN0YW5jZV9wb3MgPSAyLjkpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMi4wIildCist CXB1YmxpYyBkZWxlZ2F0ZSBDb2dsLkJvb2wgUGlwZWxpbmVMYXllckNhbGxiYWNrIChDb2dsLlBp cGVsaW5lIHBpcGVsaW5lLCBpbnQgbGF5ZXJfaW5kZXgpOworKwlwdWJsaWMgZGVsZWdhdGUgYm9v bCBQaXBlbGluZUxheWVyQ2FsbGJhY2sgKENvZ2wuUGlwZWxpbmUgcGlwZWxpbmUsIGludCBsYXll cl9pbmRleCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGlu c3RhbmNlX3BvcyA9IDEuOSldCistCXB1YmxpYyBkZWxlZ2F0ZSB2b2lkIFN3YXBCdWZmZXJzTm90 aWZ5IChDb2dsLkZyYW1lYnVmZmVyIGZyYW1lYnVmZmVyKTsKKysJcHVibGljIGRlbGVnYXRlIGJv b2wgVGV4dHVyZTJERUdMSW1hZ2VFeHRlcm5hbEFsbG9jIChDb2dsLlRleHR1cmUyRCB0ZXhfMmQp IHRocm93cyBHTGliLkVycm9yOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiLCBoYXNfdGFyZ2V0ID0gZmFsc2UpXQorIAlwdWJsaWMgZGVsZWdhdGUgdm9pZCBVc2Vy RGF0YURlc3Ryb3lDYWxsYmFjayAodm9pZCogZGF0YSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0gIkNPR0xfQUZJUlNUX0JJVCIpXQorQEAgLTEx MDgsNiArOTk1LDggQEAgbmFtZXNwYWNlIENvZ2wgeworIAlwdWJsaWMgY29uc3QgaW50IEJHUl9C SVQ7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNuYW1lID0g IkNPR0xfREVQVEhfQklUIildCisgCXB1YmxpYyBjb25zdCBpbnQgREVQVEhfQklUOworKwlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9ICJDT0dMX1BJWEVM X0ZPUk1BVF9NQVhfUExBTkVTIildCisrCXB1YmxpYyBjb25zdCBpbnQgUElYRUxfRk9STUFUX01B WF9QTEFORVM7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIsIGNu YW1lID0gIkNPR0xfUFJFTVVMVF9CSVQiKV0KKyAJcHVibGljIGNvbnN0IGludCBQUkVNVUxUX0JJ VDsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIiwgY25hbWUgPSAi Q09HTF9TVEVOQ0lMX0JJVCIpXQorQEAgLTExMTUsMjEgKzEwMDQsMTIgQEAgbmFtZXNwYWNlIENv Z2wgeworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiLCBjbmFtZSA9 ICJDT0dMX1RFWFRVUkVfTUFYX1dBU1RFIildCisgCXB1YmxpYyBjb25zdCBpbnQgVEVYVFVSRV9N QVhfV0FTVEU7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIs IHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgYmVnaW5fZ2wgKCk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBzdGF0 aWMgQ29nbC5Cb29sIGNoZWNrX2V4dGVuc2lvbiAoc3RyaW5nIG5hbWUsIHN0cmluZyBleHQpOwor LQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24g KGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGlj IHN0YXRpYyB2b2lkIGNsZWFyIChDb2dsLkNvbG9yIGNvbG9yLCB1bG9uZyBidWZmZXJzKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCXB1YmxpYyBzdGF0 aWMgQ29nbC5Cb29sIGNsdXR0ZXJfY2hlY2tfZXh0ZW5zaW9uX0NMVVRURVIgKHN0cmluZyBuYW1l LCBzdHJpbmcgZXh0KTsKKysJcHVibGljIHN0YXRpYyBib29sIGJsaXRfZnJhbWVidWZmZXIgKENv Z2wuRnJhbWVidWZmZXIgc3JjLCBDb2dsLkZyYW1lYnVmZmVyIGRlc3QsIGludCBzcmNfeCwgaW50 IHNyY195LCBpbnQgZHN0X3gsIGludCBkc3RfeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KSB0aHJv d3MgR0xpYi5FcnJvcjsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGNsdXR0ZXJfd2luc3lzX2hhc19mZWF0dXJl X0NMVVRURVIgKENvZ2wuV2luc3lzRmVhdHVyZSBmZWF0dXJlKTsKKysJcHVibGljIHN0YXRpYyBi b29sIGNsdXR0ZXJfd2luc3lzX2hhc19mZWF0dXJlX0NMVVRURVIgKENvZ2wuV2luc3lzRmVhdHVy ZSBmZWF0dXJlKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wg Y29sb3JfZXF1YWwgKHZvaWQqIHYxLCB2b2lkKiB2Mik7CisrCXB1YmxpYyBzdGF0aWMgYm9vbCBj b2xvcl9lcXVhbCAodm9pZCogdjEsIHZvaWQqIHYyKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVu YW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjE2IildCisgCXB1 YmxpYyBzdGF0aWMgdm9pZCBjb2xvcl9pbml0X2Zyb21faHNsIChvdXQgQ29nbC5Db2xvciBjb2xv ciwgZmxvYXQgaHVlLCBmbG9hdCBzYXR1cmF0aW9uLCBmbG9hdCBsdW1pbmFuY2UpOworQEAgLTEx NDMsMjM0ICsxMDIzLDg3IEBAIG5hbWVzcGFjZSBDb2dsIHsKKyAJW1ZlcnNpb24gKHNpbmNlID0g IjEuOCIpXQorIAlwdWJsaWMgc3RhdGljIHZvaWQgZGVidWdfb2JqZWN0X3ByaW50X2luc3RhbmNl cyAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCist CXB1YmxpYyBzdGF0aWMgdm9pZCBkaXNhYmxlX2ZvZyAoKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0 aWMgdm9pZCBlbmRfZ2wgKCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBmZWF0dXJlc19hdmFpbGFibGUg KENvZ2wuRmVhdHVyZUZsYWdzIGZlYXR1cmVzKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChzaW5jZSA9ICIxLjAiKV0KKyAJcHVibGlj IHN0YXRpYyB2b2lkIGZsdXNoICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29n bC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3Np bmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjguMiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZnJ1 c3R1bSAoZmxvYXQgbGVmdCwgZmxvYXQgcmlnaHQsIGZsb2F0IGJvdHRvbSwgZmxvYXQgdG9wLCBm bG9hdCB6X25lYXIsIGZsb2F0IHpfZmFyKTsKKysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0K KysJcHVibGljIHN0YXRpYyB2b2lkIGZvcmVhY2hfZmVhdHVyZSAoQ29nbC5Db250ZXh0IGNvbnRl eHQsIENvZ2wuRmVhdHVyZUNhbGxiYWNrIGNhbGxiYWNrKTsKKyAJW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGdl dF9iYWNrZmFjZV9jdWxsaW5nX2VuYWJsZWQgKCk7CisrCXB1YmxpYyBzdGF0aWMgYm9vbCBnZXRf YmFja2ZhY2VfY3VsbGluZ19lbmFibGVkICgpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuOCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgZ2V0X2JpdG1hc2tzIChv dXQgaW50IHJlZCwgb3V0IGludCBncmVlbiwgb3V0IGludCBibHVlLCBvdXQgaW50IGFscGhhKTsK KysJW1ZlcnNpb24gKHNpbmNlID0gIjEuMTQiKV0KKysJcHVibGljIHN0YXRpYyBpbnQ2NCBnZXRf Y2xvY2tfdGltZSAoQ29nbC5Db250ZXh0IGNvbnRleHQpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmls ZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBk ZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgZ2V0 X2RlcHRoX3Rlc3RfZW5hYmxlZCAoKTsKKysJcHVibGljIHN0YXRpYyBib29sIGdldF9kZXB0aF90 ZXN0X2VuYWJsZWQgKCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS44IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25l ZCBDb2dsLkZyYW1lYnVmZmVyIGdldF9kcmF3X2ZyYW1lYnVmZmVyICgpOworLQlbQ0NvZGUgKGNo ZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQg PSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIwLjgiKV0KKy0JcHVi bGljIHN0YXRpYyBDb2dsLkZlYXR1cmVGbGFncyBnZXRfZmVhdHVyZXMgKCk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIENv Z2wuTWF0cml4IGdldF9tb2RlbHZpZXdfbWF0cml4ICgpOworKwlwdWJsaWMgc3RhdGljIENvZ2wu R3JhcGhpY3NSZXNldFN0YXR1cyBnZXRfZ3JhcGhpY3NfcmVzZXRfc3RhdHVzIChDb2dsLkNvbnRl eHQgY29udGV4dCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4x NiIsIHNpbmNlID0gIjEuMCIpXQorIAlwdWJsaWMgc3RhdGljIEdMaWIuT3B0aW9uR3JvdXAgZ2V0 X29wdGlvbl9ncm91cCAoKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCisgCXB1YmxpYyBzdGF0aWMgR0xpYi5DYWxsYmFjayBnZXRfcHJvY19hZGRyZXNzIChz dHJpbmcgcyk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIp XQorLQlwdWJsaWMgc3RhdGljIENvZ2wuTWF0cml4IGdldF9wcm9qZWN0aW9uX21hdHJpeCAoKTsK Ky0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAi MS42IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCogZ2V0X3NvdXJjZSAoKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9p ZCBnZXRfdmlld3BvcnQgKFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBvdXQgZmxvYXQg dls0XSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIpXQor IAlwdWJsaWMgc3RhdGljIEdMaWIuVHlwZSBndHlwZV9tYXRyaXhfZ2V0X3R5cGUgKCk7CisgCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoc2lu Y2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBpc19mcmFtZWJ1ZmZlciAo dm9pZCogb2JqZWN0KTsKKysJcHVibGljIHN0YXRpYyBib29sIGhhc19mZWF0dXJlIChDb2dsLkNv bnRleHQgY29udGV4dCwgQ29nbC5GZWF0dXJlSUQgZmVhdHVyZSk7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoc2luY2UgPSAiMS4xMCIp XQorLQlwdWJsaWMgc3RhdGljIENvZ2wuQm9vbCBpc19vbnNjcmVlbiAodm9pZCogb2JqZWN0KTsK KysJcHVibGljIHN0YXRpYyBib29sIGlzX2NvbnRleHQgKHZvaWQqIG9iamVjdCk7CisgCVtDQ29k ZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoc2luY2Ug PSAiMi4wIildCistCXB1YmxpYyBzdGF0aWMgQ29nbC5Cb29sIGlzX3BpcGVsaW5lICh2b2lkKiBv YmplY3QpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBz aW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIHN0YXRpYyBDb2dsLkJvb2wgaXNfdmVydGV4X2J1ZmZl cl9pbmRpY2VzIChDb2dsLkhhbmRsZSBoYW5kbGUpOworKwlwdWJsaWMgc3RhdGljIGJvb2wgaXNf ZnJhbWVfaW5mbyAodm9pZCogb2JqZWN0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0g ImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIHN0 YXRpYyBDb2dsLkJvb2wgbWF0cml4X2VxdWFsICh2b2lkKiB2MSwgdm9pZCogdjIpOworLQlbQ0Nv ZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJl Y2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjAiKV0K Ky0JcHVibGljIHN0YXRpYyB2b2lkIG9ydGhvIChmbG9hdCBsZWZ0LCBmbG9hdCByaWdodCwgZmxv YXQgYm90dG9tLCBmbG9hdCB0b3AsIGZsb2F0IG5lYXIsIGZsb2F0IGZhcik7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZv aWQgcGVyc3BlY3RpdmUgKGZsb2F0IGZvdnksIGZsb2F0IGFzcGVjdCwgZmxvYXQgel9uZWFyLCBm bG9hdCB6X2Zhcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIp XQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBwb2x5 Z29uIChDb2dsLlRleHR1cmVWZXJ0ZXggdmVydGljZXMsIHVpbnQgbl92ZXJ0aWNlcywgQ29nbC5C b29sIHVzZV9jb2xvcik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wu aCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAi MS4xMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgcG9wX21hdHJpeCAoKTsKKy0JW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVk ID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS42IildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCBwb3Bfc291cmNlICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5h bWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXBy ZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHB1c2hfbWF0cml4 ICgpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiLCBzaW5j ZSA9ICIxLjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHB1c2hfc291cmNlICh2b2lkKiBtYXRl cmlhbCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlw dWJsaWMgc3RhdGljIHZvaWQgcmVjdGFuZ2xlIChmbG9hdCB4XzEsIGZsb2F0IHlfMSwgZmxvYXQg eF8yLCBmbG9hdCB5XzIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2ds LmgiKV0KKy0JW1ZlcnNpb24gKHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQg cmVjdGFuZ2xlX3dpdGhfbXVsdGl0ZXh0dXJlX2Nvb3JkcyAoZmxvYXQgeDEsIGZsb2F0IHkxLCBm bG9hdCB4MiwgZmxvYXQgeTIsIFtDQ29kZSAoYXJyYXlfbGVuZ3RoID0gZmFsc2UpXSBmbG9hdFtd IHRleF9jb29yZHMsIGludCB0ZXhfY29vcmRzX2xlbik7CistCVtDQ29kZSAoY2hlYWRlcl9maWxl bmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoc2luY2UgPSAiMS4wIildCistCXB1 YmxpYyBzdGF0aWMgdm9pZCByZWN0YW5nbGVfd2l0aF90ZXh0dXJlX2Nvb3JkcyAoZmxvYXQgeDEs IGZsb2F0IHkxLCBmbG9hdCB4MiwgZmxvYXQgeTIsIGZsb2F0IHR4MSwgZmxvYXQgdHkxLCBmbG9h dCB0eDIsIGZsb2F0IHR5Mik7CisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjEwIildCisrCXB1Ymxp YyBzdGF0aWMgYm9vbCBpc19mcmFtZWJ1ZmZlciAodm9pZCogb2JqZWN0KTsKKyAJW0NDb2RlIChj aGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9ICIx LjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlY3RhbmdsZXMgKFtDQ29kZSAoYXJyYXlfbGVu Z3RoID0gZmFsc2UpXSBmbG9hdFtdIHZlcnRzLCB1aW50IG5fcmVjdHMpOworKwlbVmVyc2lvbiAo c2luY2UgPSAiMS4xMCIpXQorKwlwdWJsaWMgc3RhdGljIGJvb2wgaXNfb25zY3JlZW4gKHZvaWQq IG9iamVjdCk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQor LQlbVmVyc2lvbiAoc2luY2UgPSAiMC44LjYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHJlY3Rh bmdsZXNfd2l0aF90ZXh0dXJlX2Nvb3JkcyAoW0NDb2RlIChhcnJheV9sZW5ndGggPSBmYWxzZSld IGZsb2F0W10gdmVydHMsIHVpbnQgbl9yZWN0cyk7CisrCVtWZXJzaW9uIChzaW5jZSA9ICIyLjAi KV0KKysJcHVibGljIHN0YXRpYyBib29sIGlzX3BpcGVsaW5lICh2b2lkKiBvYmplY3QpOworIAlb Q0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRl cHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0KKy0JcHVibGljIHN0 YXRpYyB2b2lkIHJvdGF0ZSAoZmxvYXQgYW5nbGUsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHop OworKwlwdWJsaWMgc3RhdGljIGJvb2wgaXNfdGV4dHVyZV8yZCAodm9pZCogb2JqZWN0KTsKKyAJ W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBz dGF0aWMgdm9pZCBzY2FsZSAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeik7CisrCVtWZXJzaW9u IChzaW5jZSA9ICIxLjEwIildCisrCXB1YmxpYyBzdGF0aWMgYm9vbCBpc190ZXh0dXJlXzJkX3Ns aWNlZCAodm9pZCogb2JqZWN0KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfYmFja2ZhY2VfY3VsbGluZ19l bmFibGVkIChDb2dsLkJvb2wgc2V0dGluZyk7CisrCVtWZXJzaW9uIChzaW5jZSA9ICIxLjQiKV0K KysJcHVibGljIHN0YXRpYyBib29sIG1hdHJpeF9lcXVhbCAodm9pZCogdjEsIHZvaWQqIHYyKTsK KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1Ymxp YyBzdGF0aWMgdm9pZCBzZXRfZGVwdGhfdGVzdF9lbmFibGVkIChDb2dsLkJvb2wgc2V0dGluZyk7 CisrCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfYmFja2ZhY2VfY3VsbGluZ19lbmFibGVkIChib29s IHNldHRpbmcpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0K KyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYi KV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9mb2cgKENvZ2wuQ29sb3IgZm9nX2NvbG9yLCBD b2dsLkZvZ01vZGUgbW9kZSwgZmxvYXQgZGVuc2l0eSwgZmxvYXQgel9uZWFyLCBmbG9hdCB6X2Zh cik7CisrCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfZGVwdGhfdGVzdF9lbmFibGVkIChib29sIHNl dHRpbmcpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0J W1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTAiKV0K Ky0JcHVibGljIHN0YXRpYyB2b2lkIHNldF9tb2RlbHZpZXdfbWF0cml4IChDb2dsLk1hdHJpeCBt YXRyaXgpOworKwlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3RyYWNpbmdfZGlzYWJsZWRfb25fdGhy ZWFkICh2b2lkKiBkYXRhKTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29n bC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9 ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfcHJvamVjdGlvbl9tYXRyaXggKENv Z2wuTWF0cml4IG1hdHJpeCk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3NvdXJj ZSAodm9pZCogbWF0ZXJpYWwpOworKwlwdWJsaWMgc3RhdGljIHZvaWQgc2V0X3RyYWNpbmdfZW5h YmxlZF9vbl90aHJlYWQgKHZvaWQqIGRhdGEsIHN0cmluZyBncm91cCwgc3RyaW5nIGZpbGVuYW1l KTsKKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJz aW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2Ug PSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlX2NvbG9yIChDb2dsLkNv bG9yIGNvbG9yKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 Iiwgc2luY2UgPSAiMS4wIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlX2NvbG9y NGYgKGZsb2F0IHJlZCwgZmxvYXQgZ3JlZW4sIGZsb2F0IGJsdWUsIGZsb2F0IGFscGhhKTsKKy0J W0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChk ZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2Iiwgc2luY2UgPSAiMS4w IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfc291cmNlX2NvbG9yNHViICh1aW50OCByZWQs IHVpbnQ4IGdyZWVuLCB1aW50OCBibHVlLCB1aW50OCBhbHBoYSk7CistCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIsIHNpbmNlID0gIjEuMCIpXQorLQlwdWJsaWMg c3RhdGljIHZvaWQgc2V0X3NvdXJjZV90ZXh0dXJlIChDb2dsLlRleHR1cmUgdGV4dHVyZSk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMS4y IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfdmlld3BvcnQgKGludCB4LCBpbnQgeSwgaW50 IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wv Y29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5j ZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdm9pZCBzaGFkZXJfY29tcGlsZSAoQ29nbC5I YW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5o IildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIx LjE2IildCistCXB1YmxpYyBzdGF0aWMgc3RyaW5nIHNoYWRlcl9nZXRfaW5mb19sb2cgKENvZ2wu SGFuZGxlIGhhbmRsZSk7CisrCXB1YmxpYyBzdGF0aWMgdm9pZCBzZXRfdHJhY2luZ19lbmFibGVk X29uX3RocmVhZF93aXRoX2ZkICh2b2lkKiBkYXRhLCBzdHJpbmcgZ3JvdXAsIGludCBmZCk7Cisg CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAo ZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorIAlwdWJsaWMg c3RhdGljIENvZ2wuU2hhZGVyVHlwZSBzaGFkZXJfZ2V0X3R5cGUgKENvZ2wuSGFuZGxlIGhhbmRs ZSk7CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVy c2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlw dWJsaWMgc3RhdGljIENvZ2wuQm9vbCBzaGFkZXJfaXNfY29tcGlsZWQgKENvZ2wuSGFuZGxlIGhh bmRsZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlb VmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQor LQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ29nbC5IYW5kbGUgc2hhZGVyX3JlZiAoQ29nbC5IYW5k bGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2 IildCisgCXB1YmxpYyBzdGF0aWMgdm9pZCBzaGFkZXJfc291cmNlIChDb2dsLkhhbmRsZSBzaGFk ZXIsIHN0cmluZyBzb3VyY2UpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9j b2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNl ID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHNoYWRlcl91bnJlZiAoQ29nbC5IYW5k bGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIild CisgCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4 Iiwgc2luY2UgPSAiMS4wIildCisgCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIHRleHR1cmVf bmV3X2Zyb21fYml0bWFwIChDb2dsLkJpdG1hcCBiaXRtYXAsIENvZ2wuVGV4dHVyZUZsYWdzIGZs YWdzLCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCk7CisgCVtDQ29kZSAoY2hlYWRl cl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorIAlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRy dWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIpXQorLQlwdWJsaWMg c3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJlX25ld19mcm9tX2RhdGEgKGludCB3aWR0aCwgaW50 IGhlaWdodCwgQ29nbC5UZXh0dXJlRmxhZ3MgZmxhZ3MsIENvZ2wuUGl4ZWxGb3JtYXQgZm9ybWF0 LCBDb2dsLlBpeGVsRm9ybWF0IGludGVybmFsX2Zvcm1hdCwgaW50IHJvd3N0cmlkZSwgdWludDgg ZGF0YSk7CisrCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIHRleHR1cmVfbmV3X2Zyb21fZGF0 YSAoaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5Q aXhlbEZvcm1hdCBmb3JtYXQsIENvZ2wuUGl4ZWxGb3JtYXQgaW50ZXJuYWxfZm9ybWF0LCBpbnQg cm93c3RyaWRlLCBbQ0NvZGUgKGFycmF5X2xlbmd0aCA9IGZhbHNlKV0gdWludDhbXSBkYXRhKTsK KyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCisgCVtWZXJzaW9u IChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE4Iiwgc2luY2UgPSAi MC44IildCisgCXB1YmxpYyBzdGF0aWMgQ29nbC5UZXh0dXJlIHRleHR1cmVfbmV3X2Zyb21fZmls ZSAoc3RyaW5nIGZpbGVuYW1lLCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhlbEZv cm1hdCBpbnRlcm5hbF9mb3JtYXQpIHRocm93cyBHTGliLkVycm9yOworIAlbQ0NvZGUgKGNoZWFk ZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0 cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTgiLCBzaW5jZSA9ICIwLjgiKV0KKy0JcHVibGlj IHN0YXRpYyBDb2dsLlRleHR1cmUgdGV4dHVyZV9uZXdfZnJvbV9mb3JlaWduICh1aW50IGdsX2hh bmRsZSwgdWludCBnbF90YXJnZXQsIHVpbnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCB1aW50IHhfcG90 X3dhc3RlLCB1aW50IHlfcG90X3dhc3RlLCBDb2dsLlBpeGVsRm9ybWF0IGZvcm1hdCk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xOCIsIHNpbmNlID0gIjAuOCIp XQorIAlwdWJsaWMgc3RhdGljIENvZ2wuVGV4dHVyZSB0ZXh0dXJlX25ld193aXRoX3NpemUgKHVp bnQgd2lkdGgsIHVpbnQgaGVpZ2h0LCBDb2dsLlRleHR1cmVGbGFncyBmbGFncywgQ29nbC5QaXhl bEZvcm1hdCBpbnRlcm5hbF9mb3JtYXQpOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTAiLCBzaW5jZSA9ICIxLjQiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHRy YW5zZm9ybSAoQ29nbC5NYXRyaXggbWF0cml4KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVj YXRlZF9zaW5jZSA9ICIxLjEwIildCistCXB1YmxpYyBzdGF0aWMgdm9pZCB0cmFuc2xhdGUgKGZs b2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi Y29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVk X3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfYWRk IChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0cmluZyBhdHRyaWJ1dGVfbmFtZSwgdWludDggbl9jb21w b25lbnRzLCBDb2dsLkF0dHJpYnV0ZVR5cGUgdHlwZSwgQ29nbC5Cb29sIG5vcm1hbGl6ZWQsIHVp bnQxNiBzdHJpZGUsIHZvaWQqIHBvaW50ZXIpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUg PSAiY29nbC9jb2dsLmgiKV0KKy0JW1ZlcnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNh dGVkX3NpbmNlID0gIjEuMTYiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJf ZGVsZXRlIChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0cmluZyBhdHRyaWJ1dGVfbmFtZSk7CistCVtD Q29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVw cmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3Rh dGljIHZvaWQgdmVydGV4X2J1ZmZlcl9kaXNhYmxlIChDb2dsLkhhbmRsZSBoYW5kbGUsIHN0cmlu ZyBhdHRyaWJ1dGVfbmFtZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2Nv Z2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2Ug PSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHZvaWQgdmVydGV4X2J1ZmZlcl9kcmF3IChDb2ds LkhhbmRsZSBoYW5kbGUsIENvZ2wuVmVydGljZXNNb2RlIG1vZGUsIGludCBmaXJzdCwgaW50IGNv dW50KTsKKy0JW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtW ZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCist CXB1YmxpYyBzdGF0aWMgdm9pZCB2ZXJ0ZXhfYnVmZmVyX2RyYXdfZWxlbWVudHMgKENvZ2wuSGFu ZGxlIGhhbmRsZSwgQ29nbC5WZXJ0aWNlc01vZGUgbW9kZSwgQ29nbC5IYW5kbGUgaW5kaWNlcywg aW50IG1pbl9pbmRleCwgaW50IG1heF9pbmRleCwgaW50IGluZGljZXNfb2Zmc2V0LCBpbnQgY291 bnQpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0J cHVibGljIHN0YXRpYyB2b2lkIHZlcnRleF9idWZmZXJfZW5hYmxlIChDb2dsLkhhbmRsZSBoYW5k bGUsIHN0cmluZyBhdHRyaWJ1dGVfbmFtZSk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHVpbnQgdmVydGV4X2J1ZmZlcl9n ZXRfbl92ZXJ0aWNlcyAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2RlIChjaGVhZGVyX2Zp bGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNhdGVkID0gdHJ1ZSwg ZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDb2ds LkhhbmRsZSB2ZXJ0ZXhfYnVmZmVyX2luZGljZXNfZ2V0X2Zvcl9xdWFkcyAodWludCBuX2luZGlj ZXMpOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKy0JW1Zl cnNpb24gKGRlcHJlY2F0ZWQgPSB0cnVlLCBkZXByZWNhdGVkX3NpbmNlID0gIjEuMTYiKV0KKy0J cHVibGljIHN0YXRpYyBDb2dsLkluZGljZXNUeXBlIHZlcnRleF9idWZmZXJfaW5kaWNlc19nZXRf dHlwZSAoQ29nbC5IYW5kbGUgaW5kaWNlcyk7CistCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9 ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUsIGRlcHJlY2F0 ZWRfc2luY2UgPSAiMS4xNiIpXQorLQlwdWJsaWMgc3RhdGljIHVub3duZWQgQ29nbC5IYW5kbGUg dmVydGV4X2J1ZmZlcl9uZXcgKHVpbnQgbl92ZXJ0aWNlcyk7CistCVtDQ29kZSAoY2hlYWRlcl9m aWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRlZCA9IHRydWUs IGRlcHJlY2F0ZWRfc2luY2UgPSAiMS4yIildCistCXB1YmxpYyBzdGF0aWMgdW5vd25lZCBDb2ds LkhhbmRsZSB2ZXJ0ZXhfYnVmZmVyX3JlZiAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjE2IildCistCXB1YmxpYyBzdGF0aWMg dm9pZCB2ZXJ0ZXhfYnVmZmVyX3N1Ym1pdCAoQ29nbC5IYW5kbGUgaGFuZGxlKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChkZXByZWNh dGVkID0gdHJ1ZSwgZGVwcmVjYXRlZF9zaW5jZSA9ICIxLjIiKV0KKy0JcHVibGljIHN0YXRpYyB2 b2lkIHZlcnRleF9idWZmZXJfdW5yZWYgKENvZ2wuSGFuZGxlIGhhbmRsZSk7CistCVtDQ29kZSAo Y2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlbVmVyc2lvbiAoZGVwcmVjYXRl ZCA9IHRydWUsIGRlcHJlY2F0ZWRfc2luY2UgPSAiMS44Iiwgc2luY2UgPSAiMC44LjIiKV0KKy0J cHVibGljIHN0YXRpYyB2b2lkIHZpZXdwb3J0ICh1aW50IHdpZHRoLCB1aW50IGhlaWdodCk7Cist CVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJjb2dsL2NvZ2wuaCIpXQorLQlwdWJsaWMgc3Rh dGljIHVpbnQzMiB4MTFfb25zY3JlZW5fZ2V0X3Zpc3VhbF94aWQgKENvZ2wuT25zY3JlZW4gb25z Y3JlZW4pOworLQlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAiY29nbC9jb2dsLmgiKV0KKyAJ W1ZlcnNpb24gKHNpbmNlID0gIjEuMTAiKV0KKyAJcHVibGljIHN0YXRpYyB1aW50MzIgeDExX29u c2NyZWVuX2dldF93aW5kb3dfeGlkIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuKTsKKy0JW0NDb2Rl IChjaGVhZGVyX2ZpbGVuYW1lID0gImNvZ2wvY29nbC5oIildCistCVtWZXJzaW9uIChzaW5jZSA9 ICIyLjAiKV0KKy0JcHVibGljIHN0YXRpYyB2b2lkIHgxMV9vbnNjcmVlbl9zZXRfZm9yZWlnbl93 aW5kb3dfeGlkIChDb2dsLk9uc2NyZWVuIG9uc2NyZWVuLCB1aW50MzIgeGlkLCBbQ0NvZGUgKHNj b3BlID0gImFzeW5jIildIENvZ2wuT25zY3JlZW5YMTFNYXNrQ2FsbGJhY2sgdXBkYXRlKTsKKyB9 CitkaWZmIC0tZ2l0IHZhcGkvcG9sa2l0LWdvYmplY3QtMS52YXBpIHZhcGkvcG9sa2l0LWdvYmpl Y3QtMS52YXBpCitpbmRleCA5M2VmZjhhNS4uZmVkYzZhNGEgMTAwNjQ0CistLS0gdmFwaS9wb2xr aXQtZ29iamVjdC0xLnZhcGkKKysrKyB2YXBpL3BvbGtpdC1nb2JqZWN0LTEudmFwaQorQEAgLTcs NyArNyw3IEBAIG5hbWVzcGFjZSBQb2xraXQgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1 bmN0aW9uID0gZmFsc2UpXQorIAkJcHJvdGVjdGVkIEFjdGlvbkRlc2NyaXB0aW9uICgpOworIAkJ cHVibGljIHVub3duZWQgc3RyaW5nIGdldF9hY3Rpb25faWQgKCk7CistCQlwdWJsaWMgdW5vd25l ZCBzdHJpbmcgZ2V0X2Fubm90YXRpb24gKHN0cmluZyBrZXkpOworKwkJcHVibGljIHVub3duZWQg c3RyaW5nPyBnZXRfYW5ub3RhdGlvbiAoc3RyaW5nIGtleSk7CisgCQlbQ0NvZGUgKGFycmF5X2xl bmd0aCA9IGZhbHNlLCBhcnJheV9udWxsX3Rlcm1pbmF0ZWQgPSB0cnVlKV0KKyAJCXB1YmxpYyB1 bm93bmVkIHN0cmluZ1tdIGdldF9hbm5vdGF0aW9uX2tleXMgKCk7CisgCQlwdWJsaWMgdW5vd25l ZCBzdHJpbmcgZ2V0X2Rlc2NyaXB0aW9uICgpOworQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNl IFBvbGtpdCB7CisgCQlwdWJsaWMgUG9sa2l0LkF1dGhvcml0eUZlYXR1cmVzIGdldF9iYWNrZW5k X2ZlYXR1cmVzICgpOworIAkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9iYWNrZW5kX25hbWUg KCk7CisgCQlwdWJsaWMgdW5vd25lZCBzdHJpbmcgZ2V0X2JhY2tlbmRfdmVyc2lvbiAoKTsKKy0J CXB1YmxpYyBzdHJpbmcgZ2V0X293bmVyICgpOworKwkJcHVibGljIHN0cmluZz8gZ2V0X293bmVy ICgpOworIAkJcHVibGljIHN0YXRpYyBQb2xraXQuQXV0aG9yaXR5IGdldF9zeW5jIChHTGliLkNh bmNlbGxhYmxlPyBjYW5jZWxsYWJsZSA9IG51bGwpIHRocm93cyBHTGliLkVycm9yOworIAkJcHVi bGljIGFzeW5jIGJvb2wgcmVnaXN0ZXJfYXV0aGVudGljYXRpb25fYWdlbnQgKFBvbGtpdC5TdWJq ZWN0IHN1YmplY3QsIHN0cmluZyBsb2NhbGUsIHN0cmluZyBvYmplY3RfcGF0aCwgR0xpYi5DYW5j ZWxsYWJsZT8gY2FuY2VsbGFibGUpIHRocm93cyBHTGliLkVycm9yOworIAkJcHVibGljIGJvb2wg cmVnaXN0ZXJfYXV0aGVudGljYXRpb25fYWdlbnRfc3luYyAoUG9sa2l0LlN1YmplY3Qgc3ViamVj dCwgc3RyaW5nIGxvY2FsZSwgc3RyaW5nIG9iamVjdF9wYXRoLCBHTGliLkNhbmNlbGxhYmxlPyBj YW5jZWxsYWJsZSA9IG51bGwpIHRocm93cyBHTGliLkVycm9yOworQEAgLTU2LDIxICs1NiwyMiBA QCBuYW1lc3BhY2UgUG9sa2l0IHsKKyAJcHVibGljIGNsYXNzIEF1dGhvcml6YXRpb25SZXN1bHQg OiBHTGliLk9iamVjdCB7CisgCQlbQ0NvZGUgKGhhc19jb25zdHJ1Y3RfZnVuY3Rpb24gPSBmYWxz ZSldCisgCQlwdWJsaWMgQXV0aG9yaXphdGlvblJlc3VsdCAoYm9vbCBpc19hdXRob3JpemVkLCBi b29sIGlzX2NoYWxsZW5nZSwgUG9sa2l0LkRldGFpbHM/IGRldGFpbHMpOworLQkJcHVibGljIHVu b3duZWQgUG9sa2l0LkRldGFpbHMgZ2V0X2RldGFpbHMgKCk7CisrCQlwdWJsaWMgdW5vd25lZCBQ b2xraXQuRGV0YWlscz8gZ2V0X2RldGFpbHMgKCk7CisrCQlbVmVyc2lvbiAoc2luY2UgPSAiMC4x MDEiKV0KKyAJCXB1YmxpYyBib29sIGdldF9kaXNtaXNzZWQgKCk7CisgCQlwdWJsaWMgYm9vbCBn ZXRfaXNfYXV0aG9yaXplZCAoKTsKKyAJCXB1YmxpYyBib29sIGdldF9pc19jaGFsbGVuZ2UgKCk7 CisgCQlwdWJsaWMgYm9vbCBnZXRfcmV0YWluc19hdXRob3JpemF0aW9uICgpOworLQkJcHVibGlj IHVub3duZWQgc3RyaW5nIGdldF90ZW1wb3JhcnlfYXV0aG9yaXphdGlvbl9pZCAoKTsKKysJCXB1 YmxpYyB1bm93bmVkIHN0cmluZz8gZ2V0X3RlbXBvcmFyeV9hdXRob3JpemF0aW9uX2lkICgpOwor IAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFtZSA9ICJwb2xraXQvcG9sa2l0LmgiLCB0eXBl X2lkID0gInBvbGtpdF9kZXRhaWxzX2dldF90eXBlICgpIildCisgCXB1YmxpYyBjbGFzcyBEZXRh aWxzIDogR0xpYi5PYmplY3QgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0g ZmFsc2UpXQorIAkJcHVibGljIERldGFpbHMgKCk7CisgCQlbQ0NvZGUgKGFycmF5X2xlbmd0aCA9 IGZhbHNlLCBhcnJheV9udWxsX3Rlcm1pbmF0ZWQgPSB0cnVlKV0KKy0JCXB1YmxpYyBzdHJpbmdb XSBnZXRfa2V5cyAoKTsKKysJCXB1YmxpYyBzdHJpbmdbXT8gZ2V0X2tleXMgKCk7CisgCQlwdWJs aWMgdm9pZCBpbnNlcnQgKHN0cmluZyBrZXksIHN0cmluZz8gdmFsdWUpOworLQkJcHVibGljIHVu b3duZWQgc3RyaW5nIGxvb2t1cCAoc3RyaW5nIGtleSk7CisrCQlwdWJsaWMgdW5vd25lZCBzdHJp bmc/IGxvb2t1cCAoc3RyaW5nIGtleSk7CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1l ID0gInBvbGtpdC9wb2xraXQuaCIsIHR5cGVfaWQgPSAicG9sa2l0X3Blcm1pc3Npb25fZ2V0X3R5 cGUgKCkiKV0KKyAJcHVibGljIGNsYXNzIFBlcm1pc3Npb24gOiBHTGliLlBlcm1pc3Npb24sIEdM aWIuQXN5bmNJbml0YWJsZSwgR0xpYi5Jbml0YWJsZSB7CitAQCAtODgsNyArODksOCBAQCBuYW1l c3BhY2UgUG9sa2l0IHsKKyAJCVtDQ29kZSAoaGFzX2NvbnN0cnVjdF9mdW5jdGlvbiA9IGZhbHNl KV0KKyAJCXByb3RlY3RlZCBTeXN0ZW1CdXNOYW1lICgpOworIAkJcHVibGljIHVub3duZWQgc3Ry aW5nIGdldF9uYW1lICgpOworLQkJcHVibGljIFBvbGtpdC5TdWJqZWN0IGdldF9wcm9jZXNzX3N5 bmMgKEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlID0gbnVsbCkgdGhyb3dzIEdMaWIuRXJy b3I7CisrCQlwdWJsaWMgUG9sa2l0LlN1YmplY3Q/IGdldF9wcm9jZXNzX3N5bmMgKEdMaWIuQ2Fu Y2VsbGFibGU/IGNhbmNlbGxhYmxlID0gbnVsbCkgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJs aWMgUG9sa2l0LlVuaXhVc2VyPyBnZXRfdXNlcl9zeW5jIChHTGliLkNhbmNlbGxhYmxlPyBjYW5j ZWxsYWJsZSA9IG51bGwpIHRocm93cyBHTGliLkVycm9yOworIAkJcHVibGljIHN0YXRpYyBQb2xr aXQuU3ViamVjdCBAbmV3IChzdHJpbmcgbmFtZSk7CisgCQlwdWJsaWMgdm9pZCBzZXRfbmFtZSAo c3RyaW5nIG5hbWUpOworIAkJcHVibGljIHN0cmluZyBuYW1lIHsgZ2V0OyBzZXQgY29uc3RydWN0 OyB9CitAQCAtMTQ2LDkgKzE0OCwxMCBAQCBuYW1lc3BhY2UgUG9sa2l0IHsKKyAJCXByb3RlY3Rl ZCBVbml4U2Vzc2lvbiAoKTsKKyAJCXB1YmxpYyB1bm93bmVkIHN0cmluZyBnZXRfc2Vzc2lvbl9p ZCAoKTsKKyAJCXB1YmxpYyBzdGF0aWMgUG9sa2l0LlN1YmplY3QgQG5ldyAoc3RyaW5nIHNlc3Np b25faWQpOworLQkJcHVibGljIHN0YXRpYyBhc3luYyBQb2xraXQuU3ViamVjdCBuZXdfZm9yX3By b2Nlc3MgKGludCBwaWQsIEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlKSB0aHJvd3MgR0xp Yi5FcnJvcjsKKy0JCXB1YmxpYyBzdGF0aWMgUG9sa2l0LlN1YmplY3QgbmV3X2Zvcl9wcm9jZXNz X3N5bmMgKGludCBwaWQsIEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlID0gbnVsbCkgdGhy b3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgc3RhdGljIGFzeW5jIFBvbGtpdC5TdWJqZWN0PyBu ZXdfZm9yX3Byb2Nlc3MgKGludCBwaWQsIEdMaWIuQ2FuY2VsbGFibGU/IGNhbmNlbGxhYmxlKSB0 aHJvd3MgR0xpYi5FcnJvcjsKKysJCXB1YmxpYyBzdGF0aWMgUG9sa2l0LlN1YmplY3Q/IG5ld19m b3JfcHJvY2Vzc19zeW5jIChpbnQgcGlkLCBHTGliLkNhbmNlbGxhYmxlPyBjYW5jZWxsYWJsZSA9 IG51bGwpIHRocm93cyBHTGliLkVycm9yOworIAkJcHVibGljIHZvaWQgc2V0X3Nlc3Npb25faWQg KHN0cmluZyBzZXNzaW9uX2lkKTsKKysJCVtOb0FjY2Vzc29yTWV0aG9kXQorIAkJcHVibGljIGlu dCBwaWQgeyBjb25zdHJ1Y3Q7IH0KKyAJCXB1YmxpYyBzdHJpbmcgc2Vzc2lvbl9pZCB7IGdldDsg c2V0IGNvbnN0cnVjdDsgfQorIAl9CitAQCAtMTU2LDE3ICsxNTksMTcgQEAgbmFtZXNwYWNlIFBv bGtpdCB7CisgCXB1YmxpYyBjbGFzcyBVbml4VXNlciA6IEdMaWIuT2JqZWN0LCBQb2xraXQuSWRl bnRpdHkgeworIAkJW0NDb2RlIChoYXNfY29uc3RydWN0X2Z1bmN0aW9uID0gZmFsc2UpXQorIAkJ cHJvdGVjdGVkIFVuaXhVc2VyICgpOworLQkJcHVibGljIHVub3duZWQgc3RyaW5nIGdldF9uYW1l ICgpOworKwkJcHVibGljIHVub3duZWQgc3RyaW5nPyBnZXRfbmFtZSAoKTsKKyAJCXB1YmxpYyBp bnQgZ2V0X3VpZCAoKTsKKyAJCXB1YmxpYyBzdGF0aWMgUG9sa2l0LklkZW50aXR5IEBuZXcgKGlu dCB1aWQpOworLQkJcHVibGljIHN0YXRpYyBQb2xraXQuSWRlbnRpdHkgbmV3X2Zvcl9uYW1lIChz dHJpbmcgbmFtZSkgdGhyb3dzIEdMaWIuRXJyb3I7CisrCQlwdWJsaWMgc3RhdGljIFBvbGtpdC5J ZGVudGl0eT8gbmV3X2Zvcl9uYW1lIChzdHJpbmcgbmFtZSkgdGhyb3dzIEdMaWIuRXJyb3I7Cisg CQlwdWJsaWMgdm9pZCBzZXRfdWlkIChpbnQgdWlkKTsKKyAJCXB1YmxpYyBpbnQgdWlkIHsgZ2V0 OyBzZXQgY29uc3RydWN0OyB9CisgCX0KKyAJW0NDb2RlIChjaGVhZGVyX2ZpbGVuYW1lID0gInBv bGtpdC9wb2xraXQuaCIsIHR5cGVfaWQgPSAicG9sa2l0X2lkZW50aXR5X2dldF90eXBlICgpIild CisgCXB1YmxpYyBpbnRlcmZhY2UgSWRlbnRpdHkgOiBHTGliLk9iamVjdCB7CisgCQlwdWJsaWMg YWJzdHJhY3QgYm9vbCBlcXVhbCAoUG9sa2l0LklkZW50aXR5IGIpOworLQkJcHVibGljIHN0YXRp YyBQb2xraXQuSWRlbnRpdHkgZnJvbV9zdHJpbmcgKHN0cmluZyBzdHIpIHRocm93cyBHTGliLkVy cm9yOworKwkJcHVibGljIHN0YXRpYyBQb2xraXQuSWRlbnRpdHk/IGZyb21fc3RyaW5nIChzdHJp bmcgc3RyKSB0aHJvd3MgR0xpYi5FcnJvcjsKKyAJCXB1YmxpYyBhYnN0cmFjdCB1aW50IGhhc2gg KCk7CisgCQlwdWJsaWMgYWJzdHJhY3Qgc3RyaW5nIHRvX3N0cmluZyAoKTsKKyAJfQorQEAgLTIw MSw3ICsyMDQsNyBAQCBuYW1lc3BhY2UgUG9sa2l0IHsKKyAJCUFETUlOSVNUUkFUT1JfQVVUSEVO VElDQVRJT05fUkVRVUlSRURfUkVUQUlORUQsCisgCQlBVVRIT1JJWkVEOworIAkJcHVibGljIHN0 YXRpYyBib29sIGZyb21fc3RyaW5nIChzdHJpbmcgc3RyaW5nLCBQb2xraXQuSW1wbGljaXRBdXRo b3JpemF0aW9uIG91dF9pbXBsaWNpdF9hdXRob3JpemF0aW9uKTsKKy0JCXB1YmxpYyBzdGF0aWMg dW5vd25lZCBzdHJpbmcgdG9fc3RyaW5nIChQb2xraXQuSW1wbGljaXRBdXRob3JpemF0aW9uIGlt cGxpY2l0X2F1dGhvcml6YXRpb24pOworKwkJcHVibGljIHVub3duZWQgc3RyaW5nIHRvX3N0cmlu ZyAoKTsKKyAJfQorIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAicG9sa2l0L3BvbGtpdC5o IiwgY3ByZWZpeCA9ICJQT0xLSVRfRVJST1JfIildCisgCXB1YmxpYyBlcnJvcmRvbWFpbiBFcnJv ciB7CitAQCAtMjEyLDcgKzIxNSw3IEBAIG5hbWVzcGFjZSBQb2xraXQgeworIAkJcHVibGljIHN0 YXRpYyBHTGliLlF1YXJrIHF1YXJrICgpOworIAl9CisgCVtDQ29kZSAoY2hlYWRlcl9maWxlbmFt ZSA9ICJwb2xraXQvcG9sa2l0LmgiKV0KKy0JcHVibGljIHN0YXRpYyBQb2xraXQuSWRlbnRpdHkg aWRlbnRpdHlfZnJvbV9zdHJpbmcgKHN0cmluZyBzdHIpIHRocm93cyBHTGliLkVycm9yOworKwlw dWJsaWMgc3RhdGljIFBvbGtpdC5JZGVudGl0eT8gaWRlbnRpdHlfZnJvbV9zdHJpbmcgKHN0cmlu ZyBzdHIpIHRocm93cyBHTGliLkVycm9yOworIAlbQ0NvZGUgKGNoZWFkZXJfZmlsZW5hbWUgPSAi cG9sa2l0L3BvbGtpdC5oIildCisgCXB1YmxpYyBzdGF0aWMgUG9sa2l0LlN1YmplY3Qgc3ViamVj dF9mcm9tX3N0cmluZyAoc3RyaW5nIHN0cikgdGhyb3dzIEdMaWIuRXJyb3I7CisgfQorLS0gCisy LjI4LjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9idWRnaWUtZGVza3RvcC90ZW1wbGF0ZSBiL3Ny Y3BrZ3MvYnVkZ2llLWRlc2t0b3AvdGVtcGxhdGUKaW5kZXggYjMyZTc3MzRkM2IuLmFlNWE5ZDVm NzY5IDEwMDY0NAotLS0gYS9zcmNwa2dzL2J1ZGdpZS1kZXNrdG9wL3RlbXBsYXRlCisrKyBiL3Ny Y3BrZ3MvYnVkZ2llLWRlc2t0b3AvdGVtcGxhdGUKQEAgLTEsNyArMSw3IEBACiAjIFRlbXBsYXRl IGZpbGUgZm9yICdidWRnaWUtZGVza3RvcCcKIHBrZ25hbWU9YnVkZ2llLWRlc2t0b3AKIHZlcnNp b249MTAuNS4xCi1yZXZpc2lvbj0zCityZXZpc2lvbj00CiBidWlsZF9zdHlsZT1tZXNvbgogYnVp bGRfaGVscGVyPWdpcgogY29uZmlndXJlX2FyZ3M9Ii1Ed2l0aC1ndGstZG9jPWZhbHNlIC1Ed2l0 aC1kZXNrdG9wLWljb25zPW5vbmUiCg== --===============9193411903900136790==--