From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Viktor Ashirov To: git-commits@fedoraproject.org Subject: [rpms/389-ds-base] f44: Bump version to 3.2.2 Date: Thu, 04 Jun 2026 07:26:23 GMT Message-ID: <178055798319.1.17367790497481392505.rpms-389-ds-base-3de579a31813@fedoraproject.org> List-ID: X-Git-Repo: rpms/389-ds-base X-Git-Branch: f44 X-Git-Rev: 3de579a31813991bfb7fe886ac57e0ee9f23c14c QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvMzg5LWRzLWJhc2UK QnJhbmNoIDogZjQ0CkNvbW1pdCA6IDNkZTU3OWEzMTgxMzk5MWJmYjdmZTg4NmFjNTdlMGVlOWYy M2MxNGMKQXV0aG9yIDogVmlrdG9yIEFzaGlyb3YgPHZhc2hpcm92QHJlZGhhdC5jb20+CkRhdGUg ICA6IDIwMjYtMDYtMDRUMDk6MjU6NTUrMDI6MDAKU3RhdHMgIDogKzEyMC8tMjMxOTQgaW4gNjgg ZmlsZShzKQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zLzM4OS1k cy1iYXNlL2MvM2RlNTc5YTMxODEzOTkxYmZiN2ZlODg2YWM1N2UwZWU5ZjIzYzE0Yz9icmFuY2g9 ZjQ0CgpMb2c6CkJ1bXAgdmVyc2lvbiB0byAzLjIuMgoKLS0tCmRpZmYgLS1naXQgYS8wMDAxLUlz c3VlLTcwOTYtRHVyaW5nLXJlcGxpY2F0aW9uLW9ubGluZS10b3RhbC1pbml0LXRoZS0ucGF0Y2gg Yi8wMDAxLUlzc3VlLTcwOTYtRHVyaW5nLXJlcGxpY2F0aW9uLW9ubGluZS10b3RhbC1pbml0LXRo ZS0ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE1NzkyYjYuLjAwMDAwMDAK LS0tIGEvMDAwMS1Jc3N1ZS03MDk2LUR1cmluZy1yZXBsaWNhdGlvbi1vbmxpbmUtdG90YWwtaW5p dC10aGUtLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzE4ICswLDAgQEAKLUZyb20gMWM5YzUz NTg4OGI5YTg1MDA5NTc5NDc4N2Q2NzkwMGIwNDkyNGE3NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKLUZyb206IHRib3JkYXogPHRib3JkYXpAcmVkaGF0LmNvbT4KLURhdGU6IFdlZCwgNyBKYW4g MjAyNiAxMToyMToxMiArMDEwMAotU3ViamVjdDogW1BBVENIXSBJc3N1ZSA3MDk2IC0gRHVyaW5n IHJlcGxpY2F0aW9uIG9ubGluZSB0b3RhbCBpbml0IHRoZQotIGZ1bmN0aW9uIGlkbF9pZF9pc19p bl9pZGxpc3QgaXMgbm90IHNjYWxpbmcgd2l0aCBsYXJnZSBkYXRhYmFzZSAoIzcxNDUpCi0KLUJ1 ZyBkZXNjcmlwdGlvbjoKLQlEdXJpbmcgYSBvbmxpbmUgdG90YWwgaW5pdGlhbGl6YXRpb24sIHRo ZSBzdXBwbGllciBzb3J0cwotCXRoZSBjYW5kaWRhdGUgbGlzdCBvZiBlbnRyaWVzIHNvIHRoYXQg dGhlIHBhcmVudHMgYXJlIHNlbnQgYmVmb3JlCi0JY2hpbGRyZW4gZW50cmllcy4KLQlXaXRoIGxh cmdlIERCIHRoZSBJRCBhcnJheSB1c2VkIGZvciB0aGUgc29ydGluZyBpcyBub3QKLQlzY2FsaW5n LiBJdCB0YWtlcyBzbyBsb25nIHRvIGJ1aWxkIHRoZSBjYW5kaWRhdGUgbGlzdCB0aGF0Ci0JdGhl IGNvbm5lY3Rpb24gZ2V0cyBjbG9zZWQKLQotRml4IGRlc2NyaXB0aW9uOgotICAgICAgICBJbnN0 ZWFkIG9mIHVzaW5nIGFuIElEIGFycmF5LCB1c2VzIGEgbGlzdCBvZiBJRCByYW5nZXMKLQotZml4 ZXM6ICM3MDk2Ci0KLVJldmlld2VkIGJ5OiBNYXJrIFJleW5vbGRzLCBQaWVycmUgUm9naWVyIChU aGFua3MgISEpCi0tLS0KLSBsZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2JhY2stbGRibS5o ICAgICAgfCAgMTIgKysKLSBsZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2lkbF9jb21tb24u YyAgICAgfCAxNjMgKysrKysrKysrKysrKysrKysrCi0gbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2st bGRibS9pZGxfbmV3LmMgICAgICAgIHwgIDMwICsrLS0KLSAuLi4vc2VydmVycy9zbGFwZC9iYWNr LWxkYm0vcHJvdG8tYmFjay1sZGJtLmggfCAgIDMgKwotIDQgZmlsZXMgY2hhbmdlZCwgMTg5IGlu c2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvbGRhcC9zZXJ2ZXJz L3NsYXBkL2JhY2stbGRibS9iYWNrLWxkYm0uaCBiL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxk Ym0vYmFjay1sZGJtLmgKLWluZGV4IDFiYzM2NzIwZC4uYjE4N2MyNmJjIDEwMDY0NAotLS0tIGEv bGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9iYWNrLWxkYm0uaAotKysrIGIvbGRhcC9zZXJ2 ZXJzL3NsYXBkL2JhY2stbGRibS9iYWNrLWxkYm0uaAotQEAgLTI4Miw2ICsyODIsMTggQEAgdHlw ZWRlZiBzdHJ1Y3QgX2lkbGlzdF9zZXQKLSAjZGVmaW5lIElORElSRUNUX0JMT0NLKGlkbCkgKChp ZGwpLT5iX25pZHMgPT0gSU5EQkxPQ0spCi0gI2RlZmluZSBJRExfTklEUyhpZGwpICAgICAgIChp ZGwgPyAoaWRsKS0+Yl9uaWRzIDogKE5JRFMpMCkKLSAKLSsvKgotKyAqIHVzZWQgYnkgdGhlIHN1 cHBsaWVyIGR1cmluZyBvbmxpbmUgdG90YWwgaW5pdAotKyAqIGl0IHN0b3JlcyB0aGUgcmFuZ2Vz IG9mIElEIHRoYXQgYXJlIGFscmVhZHkgcHJlc2VudAotKyAqIGluIHRoZSBjYW5kaWRhdGUgbGlz dCAoJ3BhcmVudGlkPj0xJykKLSsgKi8KLSt0eXBlZGVmIHN0cnVjdCBJZFJhbmdlIHsKLSsgICAg SUQgZmlyc3Q7Ci0rICAgIElEIGxhc3Q7Ci0rICAgIHN0cnVjdCBJZFJhbmdlICpuZXh0OwotK30g SWRSYW5nZV90OwotKwotKwotIHR5cGVkZWYgc2l6ZV90IGlkbF9pdGVyYXRvcjsKLSAKLSAvKiBz bWFsbCBoYXNodGFibGUgaW1wbGVtZW50YXRpb24gdXNlZCBpbiB0aGUgZW50cnkgY2FjaGUgLS0g dGhlIHRhYmxlCi1kaWZmIC0tZ2l0IGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9pZGxf Y29tbW9uLmMgYi9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2lkbF9jb21tb24uYwotaW5k ZXggZmNiMGVjZTRiLi5mZGM5YjRlNjcgMTAwNjQ0Ci0tLS0gYS9sZGFwL3NlcnZlcnMvc2xhcGQv YmFjay1sZGJtL2lkbF9jb21tb24uYwotKysrIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRi bS9pZGxfY29tbW9uLmMKLUBAIC0xNzIsNiArMTcyLDE2OSBAQCBpZGxfbWluKElETGlzdCAqYSwg SURMaXN0ICpiKQotICAgICByZXR1cm4gKGEtPmJfbmlkcyA+IGItPmJfbmlkcyA/IGIgOiBhKTsK LSB9Ci0gCi0rLyoKLSsgKiBUaGlzIGlzIGEgZmFzdGVyIHZlcnNpb24gb2YgaWRsX2lkX2lzX2lu X2lkbGlzdC4KLSsgKiBpZGxfaWRfaXNfaW5faWRsaXN0IHVzZXMgYW4gYXJyYXkgb2YgSUQgc28g bG9va3VwIGlzIGV4cGVuc2l2ZQotKyAqIGlkbF9pZF9pc19pbl9pZGxpc3RfcmFuZ2VzIHVzZXMg YSBsaXN0IG9mIHJhbmdlcyBvZiBJRCBsb29rdXAgaXMgZmFzdGVyCi0rICogcmV0dXJucwotKyAq ICAgMTogJ2lkJyBpcyBwcmVzZW50IGluIGlkcmFuZ2VfbGlzdAotKyAqICAgMDogJ2lkJyBpcyBu b3QgcHJlc2VudCBpbiBpZHJhbmdlX2xpc3QKLSsgKi8KLStpbnQKLStpZGxfaWRfaXNfaW5faWRs aXN0X3JhbmdlcyhJRExpc3QgKmlkbCwgSWRSYW5nZV90ICppZHJhbmdlX2xpc3QsIElEIGlkKQot K3sKLSsgICAgSWRSYW5nZV90ICpyYW5nZSA9IGlkcmFuZ2VfbGlzdDsKLSsgICAgaW50IGZvdW5k ID0gMDsKLSsKLSsgICAgaWYgKE5VTEwgPT0gaWRsIHx8IE5PSUQgPT0gaWQpIHsKLSsgICAgICAg IHJldHVybiAwOyAvKiBub3QgaW4gdGhlIGxpc3QgKi8KLSsgICAgfQotKyAgICBpZiAoQUxMSURT KGlkbCkpIHsKLSsgICAgICAgIHJldHVybiAxOyAvKiBpbiB0aGUgbGlzdCAqLwotKyAgICB9Ci0r Ci0rICAgIGZvcig7cmFuZ2U7IHJhbmdlID0gcmFuZ2UtPm5leHQpIHsKLSsgICAgICAgIGlmIChp ZCA+IHJhbmdlLT5sYXN0KSB7Ci0rICAgICAgICAgICAgLyogY2hlY2sgaWYgaXQgYmVsb25ncyB0 byB0aGUgbmV4dCByYW5nZSAqLwotKyAgICAgICAgICAgIGNvbnRpbnVlOwotKyAgICAgICAgfQot KyAgICAgICAgaWYgKGlkID49IHJhbmdlLT5maXJzdCkgewotKyAgICAgICAgICAgIC8qIEl0IGJl bG9uZ3MgdG8gdGhhdCByYW5nZSBbZmlyc3QuLmxhc3QgXSAqLwotKyAgICAgICAgICAgIGZvdW5k ID0gMTsKLSsgICAgICAgICAgICBicmVhazsKLSsgICAgICAgIH0gZWxzZSB7Ci0rICAgICAgICAg ICAgLyogdGhpcyByYW5nZSBpcyBhZnRlciBpZCAqLwotKyAgICAgICAgICAgIGJyZWFrOwotKyAg ICAgICAgfQotKyAgICB9Ci0rICAgIHJldHVybiBmb3VuZDsKLSt9Ci0rCi0rLyogVGhpcyBmdW5j dGlvbiBpcyB1c2VkIGR1cmluZyB0aGUgb25saW5lIHRvdGFsIGluaXRpYWxpc2F0aW9uCi0rICog KHNlZSBuZXh0IGZ1bmN0aW9uKQotKyAqIEl0IGZyZWVzIGFsbCByYW5nZXMgb2YgSUQgaW4gdGhl IGxpc3QKLSsgKi8KLSt2b2lkIGlkcmFuZ2VfZnJlZShJZFJhbmdlX3QgKipoZWFkKQotK3sKLSsg ICAgSWRSYW5nZV90ICpjdXJyLCAqc2F2OwotKwotKyAgICBpZiAoKGhlYWQgPT0gTlVMTCkgfHwg KCpoZWFkID09IE5VTEwpKSB7Ci0rICAgICAgICByZXR1cm47Ci0rICAgIH0KLSsgICAgY3VyciA9 ICpoZWFkOwotKyAgICBzYXYgPSBOVUxMOwotKyAgICBmb3IgKDsgY3VycjspIHsKLSsgICAgICAg IHNhdiA9IGN1cnI7Ci0rICAgICAgICBjdXJyID0gY3Vyci0+bmV4dDsKLSsgICAgICAgIHNsYXBp X2NoX2ZyZWUoKHZvaWQgKikgJnNhdik7Ci0rICAgIH0KLSsgICAgaWYgKHNhdikgewotKyAgICAg ICAgc2xhcGlfY2hfZnJlZSgodm9pZCAqKSAmc2F2KTsKLSsgICAgfQotKyAgICAqaGVhZCA9IE5V TEw7Ci0rfQotKwotKy8qIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCBkdXJpbmcgdGhlIG9ubGluZSB0 b3RhbCBpbml0aWFsaXNhdGlvbgotKyAqIEJlY2F1c2UgYSBNT0RSRE4gY2FuIG1vdmUgZW50cmll cyB1bmRlciBhIHBhcmVudCB0aGF0Ci0rICogaGFzIGEgaGlnaGVyIElEIHdlIG5lZWQgdG8gc29y dCB0aGUgSURMaXN0IHNvIHRoYXQgcGFyZW50cwotKyAqIGFyZSBzZW50LCB0byB0aGUgY29uc3Vt ZXIsIGJlZm9yZSB0aGUgY2hpbGRyZW4gYXJlIHNlbnQuCi0rICogVGhlIHNvcnRpbmcgd2l0aCBh IHNpbXBsZSBJRGxpc3QgZG9lcyBub3Qgc2NhbGUgaW5zdGVhZAotKyAqIGEgbGlzdCBvZiBJRHMg cmFuZ2VzIGlzIG11Y2ggZmFzdGVyLgotKyAqIEluIHRoYXQgbGlzdCB3ZSBvbmx5IEFERC9sb29r dXAgSUQuCi0rICovCi0rSWRSYW5nZV90ICppZHJhbmdlX2FkZF9pZChJZFJhbmdlX3QgKipoZWFk LCBJRCBpZCkKLSt7Ci0rICAgIGlmIChoZWFkID09IE5VTEwpIHsKLSsgICAgICAgIHNsYXBpX2xv Z19lcnIoU0xBUElfTE9HX0VSUiwgImlkcmFuZ2VfYWRkX2lkIiwKLSsgICAgICAgICAgICAgICAg ICAgICAgIkNhbiBub3QgYWRkIElEICVkIGluIG5vbiBkZWZpbmVkIGxpc3RcbiIsIGlkKTsKLSsg ICAgICAgIHJldHVybiBOVUxMOwotKyAgICB9Ci0rCi0rICAgIGlmICgqaGVhZCA9PSBOVUxMKSB7 Ci0rICAgICAgICAvKiBUaGlzIGlzIHRoZSBmaXJzdCByYW5nZSAqLwotKyAgICAgICAgSWRSYW5n ZV90ICpuZXdfcmFuZ2UgPSAoSWRSYW5nZV90ICopc2xhcGlfY2hfbWFsbG9jKHNpemVvZihJZFJh bmdlX3QpKTsKLSsgICAgICAgIG5ld19yYW5nZS0+Zmlyc3QgPSBpZDsKLSsgICAgICAgIG5ld19y YW5nZS0+bGFzdCA9IGlkOwotKyAgICAgICAgbmV3X3JhbmdlLT5uZXh0ID0gTlVMTDsKLSsgICAg ICAgICpoZWFkID0gbmV3X3JhbmdlOwotKyAgICAgICAgcmV0dXJuICpoZWFkOwotKyAgICB9Ci0r Ci0rICAgIElkUmFuZ2VfdCAqY3VyciA9ICpoZWFkLCAqcHJldiA9IE5VTEw7Ci0rCi0rICAgIC8q IEZpcnN0LCBmaW5kIGlmIGlkIGFscmVhZHkgZmFsbHMgd2l0aGluIGFueSBleGlzdGluZyByYW5n ZSwgb3IgaXQgaXMgYWRqYWNlbnQgdG8gYW55ICovCi0rICAgIHdoaWxlIChjdXJyKSB7Ci0rICAg ICAgICBpZiAoaWQgPj0gY3Vyci0+Zmlyc3QgJiYgaWQgPD0gY3Vyci0+bGFzdCkgewotKyAgICAg ICAgICAgIC8qIGluc2lkZSBhIHJhbmdlLCBub3RoaW5nIHRvIGRvICovCi0rICAgICAgICAgICAg cmV0dXJuIGN1cnI7Ci0rICAgICAgICB9Ci0rCi0rICAgICAgICBpZiAoaWQgPT0gY3Vyci0+bGFz dCArIDEpIHsKLSsgICAgICAgICAgICAvKiBFeHRlbmQgdGhpcyByYW5nZSB1cHdhcmRzICovCi0r ICAgICAgICAgICAgY3Vyci0+bGFzdCA9IGlkOwotKwotKyAgICAgICAgICAgIC8qIENoZWNrIGZv ciBwb3NzaWJsZSBtZXJnZSB3aXRoIG5leHQgcmFuZ2UgKi8KLSsgICAgICAgICAgICBJZFJhbmdl X3QgKm5leHQgPSBjdXJyLT5uZXh0OwotKyAgICAgICAgICAgIGlmIChuZXh0ICYmIGN1cnItPmxh c3QgKyAxID49IG5leHQtPmZpcnN0KSB7Ci0rICAgICAgICAgICAgICAgIHNsYXBpX2xvZ19lcnIo U0xBUElfTE9HX1JFUEwsICJpZHJhbmdlX2FkZF9pZCIsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgIihpZD0lZCkgbWVyZ2UgY3VycmVudCAgd2l0aCBuZXh0IHJhbmdlIFslZC4uJWRdXG4iLCBp ZCwgY3Vyci0+Zmlyc3QsIGN1cnItPmxhc3QpOwotKyAgICAgICAgICAgICAgICBjdXJyLT5sYXN0 ID0gKG5leHQtPmxhc3QgPiBjdXJyLT5sYXN0KSA/IG5leHQtPmxhc3QgOiBjdXJyLT5sYXN0Owot KyAgICAgICAgICAgICAgICBjdXJyLT5uZXh0ID0gbmV4dC0+bmV4dDsKLSsgICAgICAgICAgICAg ICAgc2xhcGlfY2hfZnJlZSgodm9pZCopICZuZXh0KTsKLSsgICAgICAgICAgICB9IGVsc2Ugewot KyAgICAgICAgICAgICAgICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xPR19SRVBMLCAiaWRyYW5nZV9h ZGRfaWQiLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIoaWQ9JWQpIGV4dGVuZCBm b3J3YXJkIGN1cnJlbnQgcmFuZ2UgWyVkLi4lZF1cbiIsIGlkLCBjdXJyLT5maXJzdCwgY3Vyci0+ bGFzdCk7Ci0rICAgICAgICAgICAgfQotKyAgICAgICAgICAgIHJldHVybiBjdXJyOwotKyAgICAg ICAgfQotKwotKyAgICAgICAgaWYgKGlkICsgMSA9PSBjdXJyLT5maXJzdCkgewotKyAgICAgICAg ICAgIC8qIEV4dGVuZCB0aGlzIHJhbmdlIGRvd253YXJkcyAqLwotKyAgICAgICAgICAgIGN1cnIt PmZpcnN0ID0gaWQ7Ci0rCi0rICAgICAgICAgICAgLyogQ2hlY2sgZm9yIHBvc3NpYmxlIG1lcmdl IHdpdGggcHJldmlvdXMgcmFuZ2UgKi8KLSsgICAgICAgICAgICBpZiAocHJldiAmJiBwcmV2LT5s YXN0ICsgMSA+PSBjdXJyLT5maXJzdCkgewotKyAgICAgICAgICAgICAgICBwcmV2LT5sYXN0ID0g Y3Vyci0+bGFzdDsKLSsgICAgICAgICAgICAgICAgcHJldi0+bmV4dCA9IGN1cnItPm5leHQ7Ci0r ICAgICAgICAgICAgICAgIHNsYXBpX2NoX2ZyZWUoKHZvaWQgKikgJmN1cnIpOwotKyAgICAgICAg ICAgICAgICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xPR19SRVBMLCAiaWRyYW5nZV9hZGRfaWQiLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIoaWQ9JWQpIG1lcmdlIGN1cnJlbnQgd2l0 aCBwcmV2aW91cyByYW5nZSBbJWQuLiVkXVxuIiwgaWQsIHByZXYtPmZpcnN0LCBwcmV2LT5sYXN0 KTsKLSsgICAgICAgICAgICAgICAgcmV0dXJuIHByZXY7Ci0rICAgICAgICAgICAgfSBlbHNlIHsK LSsgICAgICAgICAgICAgICAgc2xhcGlfbG9nX2VycihTTEFQSV9MT0dfUkVQTCwgImlkcmFuZ2Vf YWRkX2lkIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKGlkPSVkKSBleHRlbmQg YmFja3dhcmQgY3VycmVudCByYW5nZSBbJWQuLiVkXVxuIiwgaWQsIGN1cnItPmZpcnN0LCBjdXJy LT5sYXN0KTsKLSsgICAgICAgICAgICAgICAgcmV0dXJuIGN1cnI7Ci0rICAgICAgICAgICAgfQot KyAgICAgICAgfQotKwotKyAgICAgICAgLyogSWYgaWQgaXMgYmVmb3JlIHRoZSBjdXJyZW50IHJh bmdlLCBicmVhayBzbyB3ZSBjYW4gaW5zZXJ0IGJlZm9yZSAqLwotKyAgICAgICAgaWYgKGlkIDwg Y3Vyci0+Zmlyc3QpIHsKLSsgICAgICAgICAgICBicmVhazsKLSsgICAgICAgIH0KLSsKLSsgICAg ICAgIHByZXYgPSBjdXJyOwotKyAgICAgICAgY3VyciA9IGN1cnItPm5leHQ7Ci0rICAgIH0KLSsg ICAgLyogTmVlZCB0byBpbnNlcnQgYSBuZXcgc3RhbmRhbG9uZSBJZFJhbmdlICovCi0rICAgIElk UmFuZ2VfdCAqbmV3X3JhbmdlID0gKElkUmFuZ2VfdCAqKXNsYXBpX2NoX21hbGxvYyhzaXplb2Yo SWRSYW5nZV90KSk7Ci0rICAgIG5ld19yYW5nZS0+Zmlyc3QgPSBpZDsKLSsgICAgbmV3X3Jhbmdl LT5sYXN0ID0gaWQ7Ci0rICAgIG5ld19yYW5nZS0+bmV4dCA9IGN1cnI7Ci0rCi0rICAgIGlmIChw cmV2KSB7Ci0rICAgICAgICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xPR19SRVBMLCAiaWRyYW5nZV9h ZGRfaWQiLAotKyAgICAgICAgICAgICAgICAgICAgICAiKGlkPSVkKSBhZGQgbmV3IHJhbmdlIFsl ZC4uJWRdXG4iLCBpZCwgbmV3X3JhbmdlLT5maXJzdCwgbmV3X3JhbmdlLT5sYXN0KTsKLSsgICAg ICAgIHByZXYtPm5leHQgPSBuZXdfcmFuZ2U7Ci0rICAgIH0gZWxzZSB7Ci0rICAgICAgICAvKiBJ bnNlcnQgYXQgaGVhZCAqLwotKyAgICAgICAgc2xhcGlfbG9nX2VycihTTEFQSV9MT0dfUkVQTCwg ImlkcmFuZ2VfYWRkX2lkIiwKLSsgICAgICAgICAgICAgICAgICAgICAgIihpZD0lZCkgaGVhZCBy YW5nZSBbJWQuLiVkXVxuIiwgaWQsIG5ld19yYW5nZS0+Zmlyc3QsIG5ld19yYW5nZS0+bGFzdCk7 Ci0rICAgICAgICAqaGVhZCA9IG5ld19yYW5nZTsKLSsgICAgfQotKyAgICByZXR1cm4gKmhlYWQ7 Ci0rfQotKwotKwotIGludAotIGlkbF9pZF9pc19pbl9pZGxpc3QoSURMaXN0ICppZGwsIElEIGlk KQotIHsKLWRpZmYgLS1naXQgYS9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2lkbF9uZXcu YyBiL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vaWRsX25ldy5jCi1pbmRleCA1ZmJjYWZm MmUuLjJkOTc4MzUzZiAxMDA2NDQKLS0tLSBhL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0v aWRsX25ldy5jCi0rKysgYi9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2lkbF9uZXcuYwot QEAgLTQxNyw3ICs0MTcsNiBAQCBpZGxfbmV3X3JhbmdlX2ZldGNoKAotIHsKLSAgICAgaW50IHJl dCA9IDA7Ci0gICAgIGludCByZXQyID0gMDsKLS0gICAgaW50IGlkbF9yYyA9IDA7Ci0gICAgIGRi aV9jdXJzb3JfdCBjdXJzb3IgPSB7MH07Ci0gICAgIElETGlzdCAqaWRsID0gTlVMTDsKLSAgICAg ZGJpX3ZhbF90IGN1cl9rZXkgPSB7MH07Ci1AQCAtNDM2LDYgKzQzNSw3IEBAIGlkbF9uZXdfcmFu Z2VfZmV0Y2goCi0gICAgIHNpemVfdCBsZWZ0b3ZlcmxlbiA9IDMyOwotICAgICBzaXplX3QgbGVm dG92ZXJjbnQgPSAwOwotICAgICBjaGFyICppbmRleF9pZCA9IGdldF9pbmRleF9uYW1lKGJlLCBk YiwgYWkpOwotKyAgICBJZFJhbmdlX3QgKmlkcmFuZ2VfbGlzdCA9IE5VTEw7Ci0gCi0gCi0gICAg IGlmIChOVUxMID09IGZsYWdfZXJyKSB7Ci1AQCAtNTc4LDEwICs1NzgsMTIgQEAgaWRsX25ld19y YW5nZV9mZXRjaCgKLSAgICAgICAgICAgICAgICAgICAgICAqIGZvdW5kIGVudHJ5IGlzIHRoZSBv bmUgZnJvbSB0aGUgc3VmZml4Ci0gICAgICAgICAgICAgICAgICAgICAgKi8KLSAgICAgICAgICAg ICAgICAgICAgIHN1ZmZpeCA9IGtleTsKLS0gICAgICAgICAgICAgICAgICAgIGlkbF9yYyA9IGlk bF9hcHBlbmRfZXh0ZW5kKCZpZGwsIGlkKTsKLS0gICAgICAgICAgICAgICAgfSBlbHNlIGlmICgo a2V5ID09IHN1ZmZpeCkgfHwgaWRsX2lkX2lzX2luX2lkbGlzdChpZGwsIGtleSkpIHsKLSsgICAg ICAgICAgICAgICAgICAgIGlkbF9hcHBlbmRfZXh0ZW5kKCZpZGwsIGlkKTsKLSsgICAgICAgICAg ICAgICAgICAgIGlkcmFuZ2VfYWRkX2lkKCZpZHJhbmdlX2xpc3QsIGlkKTsKLSsgICAgICAgICAg ICAgICAgfSBlbHNlIGlmICgoa2V5ID09IHN1ZmZpeCkgfHwgaWRsX2lkX2lzX2luX2lkbGlzdF9y YW5nZXMoaWRsLCBpZHJhbmdlX2xpc3QsIGtleSkpIHsKLSAgICAgICAgICAgICAgICAgICAgIC8q IHRoZSBwYXJlbnQgaXMgdGhlIHN1ZmZpeCBvciBhbHJlYWR5IGluIGlkbC4gKi8KLS0gICAgICAg ICAgICAgICAgICAgIGlkbF9yYyA9IGlkbF9hcHBlbmRfZXh0ZW5kKCZpZGwsIGlkKTsKLSsgICAg ICAgICAgICAgICAgICAgIGlkbF9hcHBlbmRfZXh0ZW5kKCZpZGwsIGlkKTsKLSsgICAgICAgICAg ICAgICAgICAgIGlkcmFuZ2VfYWRkX2lkKCZpZHJhbmdlX2xpc3QsIGlkKTsKLSAgICAgICAgICAg ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgIC8qIE90aGVyd2lzZSwga2VlcCB0 aGUge2tleSxpZH0gaW4gbGVmdG92ZXIgYXJyYXkgKi8KLSAgICAgICAgICAgICAgICAgICAgIGlm ICghbGVmdG92ZXIpIHsKLUBAIC01OTYsMTMgKzU5OCw3IEBAIGlkbF9uZXdfcmFuZ2VfZmV0Y2go Ci0gICAgICAgICAgICAgICAgICAgICBsZWZ0b3ZlcmNudCsrOwotICAgICAgICAgICAgICAgICB9 Ci0gICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgaWRsX3JjID0gaWRsX2Fw cGVuZF9leHRlbmQoJmlkbCwgaWQpOwotLSAgICAgICAgICAgIH0KLS0gICAgICAgICAgICBpZiAo aWRsX3JjKSB7Ci0tICAgICAgICAgICAgICAgIHNsYXBpX2xvZ19lcnIoU0xBUElfTE9HX0VSUiwg ImlkbF9uZXdfcmFuZ2VfZmV0Y2giLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJV bmFibGUgdG8gZXh0ZW5kIGlkIGxpc3QgKGVycj0lZClcbiIsIGlkbF9yYyk7Ci0tICAgICAgICAg ICAgICAgIGlkbF9mcmVlKCZpZGwpOwotLSAgICAgICAgICAgICAgICBnb3RvIGVycm9yOwotKyAg ICAgICAgICAgICAgICBpZGxfYXBwZW5kX2V4dGVuZCgmaWRsLCBpZCk7Ci0gICAgICAgICAgICAg fQotIAotICAgICAgICAgICAgIGNvdW50Kys7Ci1AQCAtNjk1LDIxICs2OTEsMTcgQEAgZXJyb3I6 Ci0gCi0gICAgICAgICB3aGlsZShyZW1haW5pbmcgPiAwKSB7Ci0gICAgICAgICAgICAgZm9yIChz aXplX3QgaSA9IDA7IGkgPCBsZWZ0b3ZlcmNudDsgaSsrKSB7Ci0tICAgICAgICAgICAgICAgIGlm IChsZWZ0b3ZlcltpXS5rZXkgPiAwICYmIGlkbF9pZF9pc19pbl9pZGxpc3QoaWRsLCBsZWZ0b3Zl cltpXS5rZXkpICE9IDApIHsKLSsgICAgICAgICAgICAgICAgaWYgKGxlZnRvdmVyW2ldLmtleSA+ IDAgJiYgaWRsX2lkX2lzX2luX2lkbGlzdF9yYW5nZXMoaWRsLCBpZHJhbmdlX2xpc3QsIGxlZnRv dmVyW2ldLmtleSkgIT0gMCkgewotICAgICAgICAgICAgICAgICAgICAgLyogaWYgdGhlIGxlZnRv dmVyIGtleSBoYXMgaXRzIHBhcmVudCBpbiB0aGUgaWRsICovCi0tICAgICAgICAgICAgICAgICAg ICBpZGxfcmMgPSBpZGxfYXBwZW5kX2V4dGVuZCgmaWRsLCBsZWZ0b3ZlcltpXS5pZCk7Ci0tICAg ICAgICAgICAgICAgICAgICBpZiAoaWRsX3JjKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg c2xhcGlfbG9nX2VycihTTEFQSV9MT0dfRVJSLCAiaWRsX25ld19yYW5nZV9mZXRjaCIsCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5hYmxlIHRvIGV4dGVuZCBpZCBs aXN0IChlcnI9JWQpXG4iLCBpZGxfcmMpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGlkbF9m cmVlKCZpZGwpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwotLSAgICAg ICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAgICAgICAgaWRsX2FwcGVuZF9leHRlbmQo JmlkbCwgbGVmdG92ZXJbaV0uaWQpOwotKyAgICAgICAgICAgICAgICAgICAgaWRyYW5nZV9hZGRf aWQoJmlkcmFuZ2VfbGlzdCwgbGVmdG92ZXJbaV0uaWQpOwotICAgICAgICAgICAgICAgICAgICAg bGVmdG92ZXJbaV0ua2V5ID0gMDsKLSAgICAgICAgICAgICAgICAgICAgIHJlbWFpbmluZy0tOwot ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICAgICAg c2xhcGlfY2hfZnJlZSgodm9pZCAqKikmbGVmdG92ZXIpOwotKyAgICAgICAgaWRyYW5nZV9mcmVl KCZpZHJhbmdlX2xpc3QpOwotICAgICB9Ci0gICAgIHNsYXBpX2xvZ19lcnIoU0xBUElfTE9HX0ZJ TFRFUiwgImlkbF9uZXdfcmFuZ2VfZmV0Y2giLAotICAgICAgICAgICAgICAgICAgICJGb3VuZCAl ZCBjYW5kaWRhdGVzOyBlcnJvciBjb2RlIGlzOiAlZFxuIiwKLWRpZmYgLS1naXQgYS9sZGFwL3Nl cnZlcnMvc2xhcGQvYmFjay1sZGJtL3Byb3RvLWJhY2stbGRibS5oIGIvbGRhcC9zZXJ2ZXJzL3Ns YXBkL2JhY2stbGRibS9wcm90by1iYWNrLWxkYm0uaAotaW5kZXggOTFkNjEwOThhLi4zMGE3YWEx MWYgMTAwNjQ0Ci0tLS0gYS9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL3Byb3RvLWJhY2st bGRibS5oCi0rKysgYi9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL3Byb3RvLWJhY2stbGRi bS5oCi1AQCAtMjE3LDYgKzIxNyw5IEBAIElEIGlkbF9maXJzdGlkKElETGlzdCAqaWRsKTsKLSBJ RCBpZGxfbmV4dGlkKElETGlzdCAqaWRsLCBJRCBpZCk7Ci0gaW50IGlkbF9pbml0X3ByaXZhdGUo YmFja2VuZCAqYmUsIHN0cnVjdCBhdHRyaW5mbyAqYSk7Ci0gaW50IGlkbF9yZWxlYXNlX3ByaXZh dGUoc3RydWN0IGF0dHJpbmZvICphKTsKLStJZFJhbmdlX3QgKmlkcmFuZ2VfYWRkX2lkKElkUmFu Z2VfdCAqKmhlYWQsIElEIGlkKTsKLSt2b2lkIGlkcmFuZ2VfZnJlZShJZFJhbmdlX3QgKipoZWFk KTsKLStpbnQgaWRsX2lkX2lzX2luX2lkbGlzdF9yYW5nZXMoSURMaXN0ICppZGwsIElkUmFuZ2Vf dCAqaWRyYW5nZV9saXN0LCBJRCBpZCk7Ci0gaW50IGlkbF9pZF9pc19pbl9pZGxpc3QoSURMaXN0 ICppZGwsIElEIGlkKTsKLSAKLSBpZGxfaXRlcmF0b3IgaWRsX2l0ZXJhdG9yX2luaXQoY29uc3Qg SURMaXN0ICppZGwpOwotLS0gCi0yLjUyLjAKLQoKZGlmZiAtLWdpdCBhLzAwMDItSXNzdWUtUmV2 aXNlLXBhZ2VkLXJlc3VsdC1zZWFyY2gtbG9ja2luZy5wYXRjaCBiLzAwMDItSXNzdWUtUmV2aXNl LXBhZ2VkLXJlc3VsdC1zZWFyY2gtbG9ja2luZy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggZTI3Y2VkMy4uMDAwMDAwMAotLS0gYS8wMDAyLUlzc3VlLVJldmlzZS1wYWdlZC1y ZXN1bHQtc2VhcmNoLWxvY2tpbmcucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw3NjUgKzAsMCBA QAotRnJvbSA0NDZiYzQyZTdiNjRhODQ5NmMyYzNmZTQ4NmY4NmJiYTMxOGJlZDVlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQotRnJvbTogTWFyayBSZXlub2xkcyA8bXJleW5vbGRzQHJlZGhhdC5j b20+Ci1EYXRlOiBXZWQsIDcgSmFuIDIwMjYgMTY6NTU6MjcgLTA1MDAKLVN1YmplY3Q6IFtQQVRD SF0gSXNzdWUgLSBSZXZpc2UgcGFnZWQgcmVzdWx0IHNlYXJjaCBsb2NraW5nCi0KLURlc2NyaXB0 aW9uOgotCi1Nb3ZlIHRvIGEgc2luZ2xlIGxvY2sgYXBwcm9hY2ggdmVyc2VzIGhhdmluZyB0d28g bG9ja3MuIFRoaXMgd2lsbCBpbXBhY3QKLWNvbmN1cnJlbmN5IHdoZW4gbXVsdGlwbGUgYXN5bmMg cGFnZWQgcmVzdWx0IHNlYXJjaGVzIGFyZSBkb25lIG9uIHRoZSBzYW1lCi1jb25uZWN0aW9uLCBi dXQgaXQgc2ltcGxpZmllcyB0aGUgY29kZSBhbmQgYXZvaWRzIHJhY2UgY29uZGl0aW9ucyBhbmQK LWRlYWRsb2Nrcy4KLQotUmVsYXRlczogaHR0cHM6Ly9naXRodWIuY29tLzM4OWRzLzM4OS1kcy1i YXNlL2lzc3Vlcy83MTE4Ci0KLVJldmlld2VkIGJ5OiBwcm9naWVyICYgdGJvcmRheiAoVGhhbmtz ISEpCi0tLS0KLSBsZGFwL3NlcnZlcnMvc2xhcGQvYWJhbmRvbi5jICAgICAgfCAgIDIgKy0KLSBs ZGFwL3NlcnZlcnMvc2xhcGQvb3BzaGFyZWQuYyAgICAgfCAgNjAgKysrKy0tLS0KLSBsZGFwL3Nl cnZlcnMvc2xhcGQvcGFnZWRyZXN1bHRzLmMgfCAyMjggKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tCi0gbGRhcC9zZXJ2ZXJzL3NsYXBkL3Byb3RvLXNsYXAuaCAgIHwgIDI2ICsrLS0KLSBs ZGFwL3NlcnZlcnMvc2xhcGQvc2xhcC5oICAgICAgICAgfCAgIDUgKy0KLSA1IGZpbGVzIGNoYW5n ZWQsIDE4NyBpbnNlcnRpb25zKCspLCAxMzQgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9s ZGFwL3NlcnZlcnMvc2xhcGQvYWJhbmRvbi5jIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2FiYW5kb24u YwotaW5kZXggNjAyNGZjZDMxLi4xZjQ3YzUzMWMgMTAwNjQ0Ci0tLS0gYS9sZGFwL3NlcnZlcnMv c2xhcGQvYWJhbmRvbi5jCi0rKysgYi9sZGFwL3NlcnZlcnMvc2xhcGQvYWJhbmRvbi5jCi1AQCAt MTc5LDcgKzE3OSw3IEBAIGRvX2FiYW5kb24oU2xhcGlfUEJsb2NrICpwYikKLSAgICAgbG9ncGIu dHZfc2VjID0gLTE7Ci0gICAgIGxvZ3BiLnR2X25zZWMgPSAtMTsKLSAKLS0gICAgaWYgKDAgPT0g cGFnZWRyZXN1bHRzX2ZyZWVfb25lX21zZ2lkKHBiX2Nvbm4sIGlkLCBwYWdlcmVzdWx0X2xvY2tf Z2V0X2FkZHIocGJfY29ubikpKSB7Ci0rICAgIGlmICgwID09IHBhZ2VkcmVzdWx0c19mcmVlX29u ZV9tc2dpZChwYl9jb25uLCBpZCwgUFJfTk9UX0xPQ0tFRCkpIHsKLSAgICAgICAgIGlmIChsb2df Zm9ybWF0ICE9IExPR19GT1JNQVRfREVGQVVMVCkgewotICAgICAgICAgICAgIC8qIEpTT04gbG9n Z2luZyAqLwotICAgICAgICAgICAgIGxvZ3BiLnRhcmdldF9vcCA9ICJTaW1wbGUgUGFnZWQgUmVz dWx0cyI7Ci1kaWZmIC0tZ2l0IGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL29wc2hhcmVkLmMgYi9sZGFw L3NlcnZlcnMvc2xhcGQvb3BzaGFyZWQuYwotaW5kZXggYTVjZGRmZDIzLi5iZjgwMGY3ZGMgMTAw NjQ0Ci0tLS0gYS9sZGFwL3NlcnZlcnMvc2xhcGQvb3BzaGFyZWQuYwotKysrIGIvbGRhcC9zZXJ2 ZXJzL3NsYXBkL29wc2hhcmVkLmMKLUBAIC01NzIsOCArNTcyLDggQEAgb3Bfc2hhcmVkX3NlYXJj aChTbGFwaV9QQmxvY2sgKnBiLCBpbnQgc2VuZF9yZXN1bHQpCi0gICAgICAgICAgICAgICAgICAg ICAgICAgYmUgPSBiZV9saXN0W2luZGV4XTsKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAg ICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICBwcl9zZWFyY2hfcmVzdWx0ID0gcGFnZWRy ZXN1bHRzX2dldF9zZWFyY2hfcmVzdWx0KHBiX2Nvbm4sIG9wZXJhdGlvbiwgMCAvKm5vdCBsb2Nr ZWQqLywgcHJfaWR4KTsKLS0gICAgICAgICAgICAgICAgZXN0aW1hdGUgPSBwYWdlZHJlc3VsdHNf Z2V0X3NlYXJjaF9yZXN1bHRfc2V0X3NpemVfZXN0aW1hdGUocGJfY29ubiwgb3BlcmF0aW9uLCBw cl9pZHgpOwotKyAgICAgICAgICAgICAgICBwcl9zZWFyY2hfcmVzdWx0ID0gcGFnZWRyZXN1bHRz X2dldF9zZWFyY2hfcmVzdWx0KHBiX2Nvbm4sIG9wZXJhdGlvbiwgUFJfTk9UX0xPQ0tFRCwgcHJf aWR4KTsKLSsgICAgICAgICAgICAgICAgZXN0aW1hdGUgPSBwYWdlZHJlc3VsdHNfZ2V0X3NlYXJj aF9yZXN1bHRfc2V0X3NpemVfZXN0aW1hdGUocGJfY29ubiwgb3BlcmF0aW9uLCBQUl9OT1RfTE9D S0VELCBwcl9pZHgpOwotICAgICAgICAgICAgICAgICAvKiBTZXQgb3BlcmF0aW9uIG5vdGUgZmxh Z3MgYXMgcmVxdWlyZWQuICovCi0gICAgICAgICAgICAgICAgIGlmIChwYWdlZHJlc3VsdHNfZ2V0 X3VuaW5kZXhlZChwYl9jb25uLCBvcGVyYXRpb24sIHByX2lkeCkpIHsKLSAgICAgICAgICAgICAg ICAgICAgIHNsYXBpX3BibG9ja19zZXRfZmxhZ19vcGVyYXRpb25fbm90ZXMocGIsIFNMQVBJX09Q X05PVEVfVU5JTkRFWEVEKTsKLUBAIC02MTksMTQgKzYxOSw3IEBAIG9wX3NoYXJlZF9zZWFyY2go U2xhcGlfUEJsb2NrICpwYiwgaW50IHNlbmRfcmVzdWx0KQotICAgICAgICAgICAgIGludDMyX3Qg dGxpbWl0OwotICAgICAgICAgICAgIHNsYXBpX3BibG9ja19nZXQocGIsIFNMQVBJX1NFQVJDSF9U SU1FTElNSVQsICZ0bGltaXQpOwotICAgICAgICAgICAgIHBhZ2VkcmVzdWx0c19zZXRfdGltZWxp bWl0KHBiX2Nvbm4sIG9wZXJhdGlvbiwgKHRpbWVfdCl0bGltaXQsIHByX2lkeCk7Ci0tICAgICAg ICAgICAgLyogV2hlbiB1c2luZyB0aGlzIG11dGV4IGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIG1h aW4gcGFnZWQKLS0gICAgICAgICAgICAgKiByZXN1bHQgbG9jaywgeW91IG11c3QgZG8gc28gaW4g dGhpcyBvcmRlcjoKLS0gICAgICAgICAgICAgKgotLSAgICAgICAgICAgICAqIC0tPiBwYWdlZHJl c3VsdHNfbG9jaygpCi0tICAgICAgICAgICAgICogICAgLS0+IHBhZ2VkcmVzdWx0c19tdXRleAot LSAgICAgICAgICAgICAqICAgIDwtLSBwYWdlZHJlc3VsdHNfbXV0ZXgKLS0gICAgICAgICAgICAg KiA8LS0gcGFnZWRyZXN1bHRzX3VubG9jaygpCi0tICAgICAgICAgICAgICovCi0rICAgICAgICAg ICAgLyogSU1QT1JUQU5UOiBOZXZlciBhY3F1aXJlIHBhZ2VkcmVzdWx0c19tdXRleCB3aGVuIGhv bGRpbmcgY19tdXRleC4gKi8KLSAgICAgICAgICAgICBwYWdlZHJlc3VsdHNfbXV0ZXggPSBwYWdl cmVzdWx0X2xvY2tfZ2V0X2FkZHIocGJfY29ubik7Ci0gICAgICAgICB9Ci0gCi1AQCAtNzQzLDE3 ICs3MzYsMTUgQEAgb3Bfc2hhcmVkX3NlYXJjaChTbGFwaV9QQmxvY2sgKnBiLCBpbnQgc2VuZF9y ZXN1bHQpCi0gICAgICAgICBpZiAob3BfaXNfcGFnZWRyZXN1bHRzKG9wZXJhdGlvbikgJiYgcHJf c2VhcmNoX3Jlc3VsdCkgewotICAgICAgICAgICAgIHZvaWQgKnNyID0gTlVMTDsKLSAgICAgICAg ICAgICAvKiBQQUdFRCBSRVNVTFRTIGFuZCBhbHJlYWR5IGhhdmUgdGhlIHNlYXJjaCByZXN1bHRz IGZyb20gdGhlIHByZXYgb3AgKi8KLS0gICAgICAgICAgICBwYWdlZHJlc3VsdHNfbG9jayhwYl9j b25uLCBwcl9pZHgpOwotICAgICAgICAgICAgIC8qCi0gICAgICAgICAgICAgICogSW4gYXN5bmMg cGFnZWQgcmVzdWx0IGNhc2UsIHRoZSBzZWFyY2ggcmVzdWx0IG1pZ2h0IGJlIHJlbGVhc2VkCi0g ICAgICAgICAgICAgICogYnkgb3RoZXIgdGhlYWRzLiAgV2UgbmVlZCB0byBkb3VibGUgY2hlY2sg aXQgaW4gdGhlIGxvY2tlZCByZWdpb24uCi0gICAgICAgICAgICAgICovCi0gICAgICAgICAgICAg cHRocmVhZF9tdXRleF9sb2NrKHBhZ2VkcmVzdWx0c19tdXRleCk7Ci0tICAgICAgICAgICAgcHJf c2VhcmNoX3Jlc3VsdCA9IHBhZ2VkcmVzdWx0c19nZXRfc2VhcmNoX3Jlc3VsdChwYl9jb25uLCBv cGVyYXRpb24sIDEgLypsb2NrZWQqLywgcHJfaWR4KTsKLSsgICAgICAgICAgICBwcl9zZWFyY2hf cmVzdWx0ID0gcGFnZWRyZXN1bHRzX2dldF9zZWFyY2hfcmVzdWx0KHBiX2Nvbm4sIG9wZXJhdGlv biwgUFJfTE9DS0VELCBwcl9pZHgpOwotICAgICAgICAgICAgIGlmIChwcl9zZWFyY2hfcmVzdWx0 KSB7Ci0tICAgICAgICAgICAgICAgIGlmIChwYWdlZHJlc3VsdHNfaXNfYWJhbmRvbmVkX29yX25v dGF2YWlsYWJsZShwYl9jb25uLCAxIC8qbG9ja2VkKi8sIHByX2lkeCkpIHsKLSsgICAgICAgICAg ICAgICAgaWYgKHBhZ2VkcmVzdWx0c19pc19hYmFuZG9uZWRfb3Jfbm90YXZhaWxhYmxlKHBiX2Nv bm4sIFBSX0xPQ0tFRCwgcHJfaWR4KSkgewotICAgICAgICAgICAgICAgICAgICAgcHRocmVhZF9t dXRleF91bmxvY2socGFnZWRyZXN1bHRzX211dGV4KTsKLS0gICAgICAgICAgICAgICAgICAgIHBh Z2VkcmVzdWx0c191bmxvY2socGJfY29ubiwgcHJfaWR4KTsKLSAgICAgICAgICAgICAgICAgICAg IC8qIFByZXZpb3VzIG9wZXJhdGlvbiB3YXMgYWJhbmRvbmVkIGFuZCB0aGUgc2ltcGxlcGFnZWQg b2JqZWN0IGlzIG5vdCBpbiB1c2UuICovCi0gICAgICAgICAgICAgICAgICAgICBzZW5kX2xkYXBf cmVzdWx0KHBiLCAwLCBOVUxMLCAiU2ltcGxlIFBhZ2VkIFJlc3VsdHMgU2VhcmNoIGFiYW5kb25l ZCIsIDAsIE5VTEwpOwotICAgICAgICAgICAgICAgICAgICAgcmMgPSBMREFQX1NVQ0NFU1M7Ci1A QCAtNzY0LDE0ICs3NTUsMTMgQEAgb3Bfc2hhcmVkX3NlYXJjaChTbGFwaV9QQmxvY2sgKnBiLCBp bnQgc2VuZF9yZXN1bHQpCi0gCi0gICAgICAgICAgICAgICAgICAgICAvKiBzZWFyY2ggcmVzdWx0 IGNvdWxkIGJlIHJlc2V0IGluIHRoZSBiYWNrZW5kL2RzZSAqLwotICAgICAgICAgICAgICAgICAg ICAgc2xhcGlfcGJsb2NrX2dldChwYiwgU0xBUElfU0VBUkNIX1JFU1VMVF9TRVQsICZzcik7Ci0t ICAgICAgICAgICAgICAgICAgICBwYWdlZHJlc3VsdHNfc2V0X3NlYXJjaF9yZXN1bHQocGJfY29u biwgb3BlcmF0aW9uLCBzciwgMSAvKmxvY2tlZCovLCBwcl9pZHgpOwotKyAgICAgICAgICAgICAg ICAgICAgcGFnZWRyZXN1bHRzX3NldF9zZWFyY2hfcmVzdWx0KHBiX2Nvbm4sIG9wZXJhdGlvbiwg c3IsIFBSX0xPQ0tFRCwgcHJfaWR4KTsKLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg IH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgIHByX3N0YXQgPSBQQUdFRFJFU1VMVFNfU0VBUkNI X0VORDsKLSAgICAgICAgICAgICAgICAgcmMgPSBMREFQX1NVQ0NFU1M7Ci0gICAgICAgICAgICAg fQotICAgICAgICAgICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKHBhZ2VkcmVzdWx0c19tdXRleCk7 Ci0tICAgICAgICAgICAgcGFnZWRyZXN1bHRzX3VubG9jayhwYl9jb25uLCBwcl9pZHgpOwotIAot ICAgICAgICAgICAgIGlmICgoUEFHRURSRVNVTFRTX1NFQVJDSF9FTkQgPT0gcHJfc3RhdCkgfHwg KDAgPT0gcG5lbnRyaWVzKSkgewotICAgICAgICAgICAgICAgICAvKiBubyBtb3JlIGVudHJpZXMg dG8gc2VuZCBpbiB0aGUgYmFja2VuZCAqLwotQEAgLTc4OSwyMiArNzc5LDIyIEBAIG9wX3NoYXJl ZF9zZWFyY2goU2xhcGlfUEJsb2NrICpwYiwgaW50IHNlbmRfcmVzdWx0KQotICAgICAgICAgICAg IH0KLSAgICAgICAgICAgICBwYWdlZHJlc3VsdHNfc2V0X3Jlc3BvbnNlX2NvbnRyb2wocGIsIDAs IGVzdGltYXRlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjdXJyX3NlYXJjaF9jb3VudCwgcHJfaWR4KTsKLS0gICAgICAgICAgICBpZiAocGFnZWRyZXN1 bHRzX2dldF93aXRoX3NvcnQocGJfY29ubiwgb3BlcmF0aW9uLCBwcl9pZHgpKSB7Ci0rICAgICAg ICAgICAgaWYgKHBhZ2VkcmVzdWx0c19nZXRfd2l0aF9zb3J0KHBiX2Nvbm4sIG9wZXJhdGlvbiwg UFJfTk9UX0xPQ0tFRCwgcHJfaWR4KSkgewotICAgICAgICAgICAgICAgICBzb3J0X21ha2Vfc29y dF9yZXNwb25zZV9jb250cm9sKHBiLCBDT05OX0dFVF9TT1JUX1JFU1VMVF9DT0RFLCBOVUxMKTsK LSAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgcGFnZWRyZXN1bHRzX3NldF9zZWFyY2hfcmVz dWx0X3NldF9zaXplX2VzdGltYXRlKHBiX2Nvbm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbiwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXN0 aW1hdGUsIHByX2lkeCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGVzdGltYXRlLCBQUl9OT1RfTE9DS0VELCBwcl9pZHgpOwot ICAgICAgICAgICAgIGlmIChQQUdFRFJFU1VMVFNfU0VBUkNIX0VORCA9PSBwcl9zdGF0KSB7Ci0t ICAgICAgICAgICAgICAgIHBhZ2VkcmVzdWx0c19sb2NrKHBiX2Nvbm4sIHByX2lkeCk7Ci0rICAg ICAgICAgICAgICAgIHB0aHJlYWRfbXV0ZXhfbG9jayhwYWdlZHJlc3VsdHNfbXV0ZXgpOwotICAg ICAgICAgICAgICAgICBzbGFwaV9wYmxvY2tfc2V0KHBiLCBTTEFQSV9TRUFSQ0hfUkVTVUxUX1NF VCwgTlVMTCk7Ci0tICAgICAgICAgICAgICAgIGlmICghcGFnZWRyZXN1bHRzX2lzX2FiYW5kb25l ZF9vcl9ub3RhdmFpbGFibGUocGJfY29ubiwgMCAvKm5vdCBsb2NrZWQqLywgcHJfaWR4KSkgewot LSAgICAgICAgICAgICAgICAgICAgcGFnZWRyZXN1bHRzX2ZyZWVfb25lKHBiX2Nvbm4sIG9wZXJh dGlvbiwgcHJfaWR4KTsKLSsgICAgICAgICAgICAgICAgaWYgKCFwYWdlZHJlc3VsdHNfaXNfYWJh bmRvbmVkX29yX25vdGF2YWlsYWJsZShwYl9jb25uLCBQUl9MT0NLRUQsIHByX2lkeCkpIHsKLSsg ICAgICAgICAgICAgICAgICAgIHBhZ2VkcmVzdWx0c19mcmVlX29uZShwYl9jb25uLCBvcGVyYXRp b24sIFBSX0xPQ0tFRCwgcHJfaWR4KTsKLSAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAg ICAgICBwYWdlZHJlc3VsdHNfdW5sb2NrKHBiX2Nvbm4sIHByX2lkeCk7Ci0rICAgICAgICAgICAg ICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKHBhZ2VkcmVzdWx0c19tdXRleCk7Ci0gICAgICAgICAg ICAgICAgIGlmIChuZXh0X2JlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAvKiBubyBtb3JlIGVu dHJpZXMsIGJ1dCBhdCBsZWFzdCBhbm90aGVyIGJhY2tlbmQgKi8KLS0gICAgICAgICAgICAgICAg ICAgIGlmIChwYWdlZHJlc3VsdHNfc2V0X2N1cnJlbnRfYmUocGJfY29ubiwgbmV4dF9iZSwgcHJf aWR4LCAwKSA8IDApIHsKLSsgICAgICAgICAgICAgICAgICAgIGlmIChwYWdlZHJlc3VsdHNfc2V0 X2N1cnJlbnRfYmUocGJfY29ubiwgbmV4dF9iZSwgcHJfaWR4LCBQUl9OT1RfTE9DS0VEKSA8IDAp IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZyZWVfYW5kX3JldHVybjsKLSAgICAg ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgfQotQEAgLTkxNSw3ICs5MDUsNyBA QCBvcF9zaGFyZWRfc2VhcmNoKFNsYXBpX1BCbG9jayAqcGIsIGludCBzZW5kX3Jlc3VsdCkKLSAg ICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg ICAgICAgICAgICAgICBwYWdlZHJlc3VsdHNfc2V0X3NlYXJjaF9yZXN1bHQocGJfY29ubiwgb3Bl cmF0aW9uLCBOVUxMLCAxLCBwcl9pZHgpOwotLSAgICAgICAgICAgICAgICAgICAgcmMgPSBwYWdl ZHJlc3VsdHNfc2V0X2N1cnJlbnRfYmUocGJfY29ubiwgTlVMTCwgcHJfaWR4LCAxKTsKLSsgICAg ICAgICAgICAgICAgICAgIHJjID0gcGFnZWRyZXN1bHRzX3NldF9jdXJyZW50X2JlKHBiX2Nvbm4s IE5VTEwsIHByX2lkeCwgUFJfTE9DS0VEKTsKLSAgICAgICAgICAgICAgICAgICAgIHB0aHJlYWRf bXV0ZXhfdW5sb2NrKHBhZ2VkcmVzdWx0c19tdXRleCk7Ci0gI3ByYWdtYSBHQ0MgZGlhZ25vc3Rp YyBwb3AKLSAgICAgICAgICAgICAgICAgfQotQEAgLTk1NCw3ICs5NDQsNyBAQCBvcF9zaGFyZWRf c2VhcmNoKFNsYXBpX1BCbG9jayAqcGIsIGludCBzZW5kX3Jlc3VsdCkKLSAgICAgICAgICAgICAg ICAgICAgICAgICBwdGhyZWFkX211dGV4X2xvY2socGFnZWRyZXN1bHRzX211dGV4KTsKLSAgICAg ICAgICAgICAgICAgICAgICAgICBwYWdlZHJlc3VsdHNfc2V0X3NlYXJjaF9yZXN1bHQocGJfY29u biwgb3BlcmF0aW9uLCBOVUxMLCAxLCBwcl9pZHgpOwotICAgICAgICAgICAgICAgICAgICAgICAg IGJlLT5iZV9zZWFyY2hfcmVzdWx0c19yZWxlYXNlKCZzcik7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgcmMgPSBwYWdlZHJlc3VsdHNfc2V0X2N1cnJlbnRfYmUocGJfY29ubiwgbmV4dF9iZSwg cHJfaWR4LCAxKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICByYyA9IHBhZ2VkcmVzdWx0c19z ZXRfY3VycmVudF9iZShwYl9jb25uLCBuZXh0X2JlLCBwcl9pZHgsIFBSX0xPQ0tFRCk7Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgcHRocmVhZF9tdXRleF91bmxvY2socGFnZWRyZXN1bHRzX211 dGV4KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICBwcl9zdGF0ID0gUEFHRURSRVNVTFRTX1NF QVJDSF9FTkQ7IC8qIG1ha2Ugc3VyZSBzdGF0IGlzIFNFQVJDSF9FTkQgKi8KLSAgICAgICAgICAg ICAgICAgICAgICAgICBpZiAoTlVMTCA9PSBuZXh0X2JlKSB7Ci1AQCAtOTY3LDIzICs5NTcsMjMg QEAgb3Bfc2hhcmVkX3NlYXJjaChTbGFwaV9QQmxvY2sgKnBiLCBpbnQgc2VuZF9yZXN1bHQpCi0g ICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgIGN1 cnJfc2VhcmNoX2NvdW50ID0gcG5lbnRyaWVzOwotICAgICAgICAgICAgICAgICAgICAgICAgIHNs YXBpX3BibG9ja19nZXQocGIsIFNMQVBJX1NFQVJDSF9SRVNVTFRfU0VUX1NJWkVfRVNUSU1BVEUs ICZlc3RpbWF0ZSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgcGFnZWRyZXN1bHRzX2xvY2so cGJfY29ubiwgcHJfaWR4KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHBhZ2VkcmVz dWx0c19zZXRfY3VycmVudF9iZShwYl9jb25uLCBiZSwgcHJfaWR4LCAwKSA8IDApIHx8Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChwYWdlZHJlc3VsdHNfc2V0X3NlYXJjaF9yZXN1bHQo cGJfY29ubiwgb3BlcmF0aW9uLCBzciwgMCwgcHJfaWR4KSA8IDApIHx8Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChwYWdlZHJlc3VsdHNfc2V0X3NlYXJjaF9yZXN1bHRfY291bnQocGJf Y29ubiwgb3BlcmF0aW9uLCBjdXJyX3NlYXJjaF9jb3VudCwgcHJfaWR4KSA8IDApIHx8Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChwYWdlZHJlc3VsdHNfc2V0X3NlYXJjaF9yZXN1bHRf c2V0X3NpemVfZXN0aW1hdGUocGJfY29ubiwgb3BlcmF0aW9uLCBlc3RpbWF0ZSwgcHJfaWR4KSA8 IDApIHx8Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYWdlZHJlc3VsdHNfc2V0X3dp dGhfc29ydChwYl9jb25uLCBvcGVyYXRpb24sIHdpdGhfc29ydCwgcHJfaWR4KSA8IDApKSB7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VkcmVzdWx0c191bmxvY2socGJfY29ubiwg cHJfaWR4KTsKLSsgICAgICAgICAgICAgICAgICAgICAgICBwdGhyZWFkX211dGV4X2xvY2socGFn ZWRyZXN1bHRzX211dGV4KTsKLSsgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHBhZ2VkcmVz dWx0c19zZXRfY3VycmVudF9iZShwYl9jb25uLCBiZSwgcHJfaWR4LCBQUl9MT0NLRUQpIDwgMCkg fHwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhZ2VkcmVzdWx0c19zZXRfc2VhcmNo X3Jlc3VsdChwYl9jb25uLCBvcGVyYXRpb24sIHNyLCBQUl9MT0NLRUQsIHByX2lkeCkgPCAwKSB8 fAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFnZWRyZXN1bHRzX3NldF9zZWFyY2hf cmVzdWx0X2NvdW50KHBiX2Nvbm4sIG9wZXJhdGlvbiwgY3Vycl9zZWFyY2hfY291bnQsIFBSX0xP Q0tFRCwgcHJfaWR4KSA8IDApIHx8Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYWdl ZHJlc3VsdHNfc2V0X3NlYXJjaF9yZXN1bHRfc2V0X3NpemVfZXN0aW1hdGUocGJfY29ubiwgb3Bl cmF0aW9uLCBlc3RpbWF0ZSwgUFJfTE9DS0VELCBwcl9pZHgpIDwgMCkgfHwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHBhZ2VkcmVzdWx0c19zZXRfd2l0aF9zb3J0KHBiX2Nvbm4sIG9w ZXJhdGlvbiwgd2l0aF9zb3J0LCBQUl9MT0NLRUQsIHByX2lkeCkgPCAwKSkgewotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwdGhyZWFkX211dGV4X3VubG9jayhwYWdlZHJlc3VsdHNfbXV0 ZXgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZV9yZXR1cm5fdGFyZ2V0X2Vu dHJ5KHBiLCBiZSwgb3BlcmF0aW9uKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290 byBmcmVlX2FuZF9yZXR1cm47Ci0gICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAg ICAgICAgICAgICAgICAgIHBhZ2VkcmVzdWx0c191bmxvY2socGJfY29ubiwgcHJfaWR4KTsKLSsg ICAgICAgICAgICAgICAgICAgICAgICBwdGhyZWFkX211dGV4X3VubG9jayhwYWdlZHJlc3VsdHNf bXV0ZXgpOwotICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgc2xh cGlfcGJsb2NrX3NldChwYiwgU0xBUElfU0VBUkNIX1JFU1VMVF9TRVQsIE5VTEwpOwotICAgICAg ICAgICAgICAgICAgICAgbmV4dF9iZSA9IE5VTEw7IC8qIHRvIGJyZWFrIHRoZSBsb29wICovCi0g ICAgICAgICAgICAgICAgICAgICBpZiAob3BlcmF0aW9uLT5vX3N0YXR1cyAmIFNMQVBJX09QX1NU QVRVU19BQkFORE9ORUQpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJdCB0dXJuZWQg b3V0IHRoaXMgc2VhcmNoIHdhcyBhYmFuZG9uZWQuICovCi0tICAgICAgICAgICAgICAgICAgICAg ICAgcGFnZWRyZXN1bHRzX2ZyZWVfb25lX21zZ2lkKHBiX2Nvbm4sIG9wZXJhdGlvbi0+b19tc2dp ZCwgcGFnZWRyZXN1bHRzX211dGV4KTsKLSsgICAgICAgICAgICAgICAgICAgICAgICBwYWdlZHJl c3VsdHNfZnJlZV9vbmVfbXNnaWQocGJfY29ubiwgb3BlcmF0aW9uLT5vX21zZ2lkLCBQUl9OT1Rf TE9DS0VEKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAvKiBwYWdlZC1yZXN1bHRzLXJlcXVl c3Qgd2FzIGFiYW5kb25lZDsgbWFraW5nIGFuIGVtcHR5IGNvb2tpZS4gKi8KLSAgICAgICAgICAg ICAgICAgICAgICAgICBwYWdlZHJlc3VsdHNfc2V0X3Jlc3BvbnNlX2NvbnRyb2wocGIsIDAsIGVz dGltYXRlLCAtMSwgcHJfaWR4KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICBzZW5kX2xkYXBf cmVzdWx0KHBiLCAwLCBOVUxMLCAiU2ltcGxlIFBhZ2VkIFJlc3VsdHMgU2VhcmNoIGFiYW5kb25l ZCIsIDAsIE5VTEwpOwotQEAgLTk5Myw3ICs5ODMsNyBAQCBvcF9zaGFyZWRfc2VhcmNoKFNsYXBp X1BCbG9jayAqcGIsIGludCBzZW5kX3Jlc3VsdCkKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAg ICAgICAgICAgICAgICAgICAgIHBhZ2VkcmVzdWx0c19zZXRfcmVzcG9uc2VfY29udHJvbChwYiwg MCwgZXN0aW1hdGUsIGN1cnJfc2VhcmNoX2NvdW50LCBwcl9pZHgpOwotICAgICAgICAgICAgICAg ICAgICAgaWYgKGN1cnJfc2VhcmNoX2NvdW50ID09IC0xKSB7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgcGFnZWRyZXN1bHRzX2ZyZWVfb25lKHBiX2Nvbm4sIG9wZXJhdGlvbiwgcHJfaWR4KTsK LSsgICAgICAgICAgICAgICAgICAgICAgICBwYWdlZHJlc3VsdHNfZnJlZV9vbmUocGJfY29ubiwg b3BlcmF0aW9uLCBQUl9OT1RfTE9DS0VELCBwcl9pZHgpOwotICAgICAgICAgICAgICAgICAgICAg fQotICAgICAgICAgICAgICAgICB9Ci0gCi1kaWZmIC0tZ2l0IGEvbGRhcC9zZXJ2ZXJzL3NsYXBk L3BhZ2VkcmVzdWx0cy5jIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL3BhZ2VkcmVzdWx0cy5jCi1pbmRl eCA5NDFhYjk3ZTMuLjBkNmM0YTFhYSAxMDA2NDQKLS0tLSBhL2xkYXAvc2VydmVycy9zbGFwZC9w YWdlZHJlc3VsdHMuYwotKysrIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL3BhZ2VkcmVzdWx0cy5jCi1A QCAtMzQsOSArMzQsOSBAQCBwYWdlcmVzdWx0X2xvY2tfY2xlYW51cCgpCi0gICAgIHNsYXBpX2No X2ZyZWUoKHZvaWQqKikmbG9ja19oYXNoKTsKLSB9Ci0gCi0tLyogQmV3YXJlIHRvIHRoZSBsb2Nr IG9yZGVyIHdpdGggY19tdXRleDoKLS0gKiBjX211dGV4IGlzIHNvbWV0aW1lIGxvY2tlZCB3aGls ZSBob2xkaW5nIHBhZ2VyZXN1bHRfbG9jawotLSAqID09PiBEbyBub3QgbG9jayBwYWdlcmVzdWx0 X2xvY2sgd2hlbiBob2xpbmcgY19tdXRleAotKy8qIExvY2sgb3JkZXJpbmcgY29uc3RyYWludCB3 aXRoIGNfbXV0ZXg6Ci0rICogY19tdXRleCBpcyBzb21ldGltZXMgbG9ja2VkIHdoaWxlIGhvbGRp bmcgcGFnZXJlc3VsdF9sb2NrLgotKyAqIFRoZXJlZm9yZTogRE8gTk9UIGFjcXVpcmUgcGFnZXJl c3VsdF9sb2NrIHdoZW4gaG9sZGluZyBjX211dGV4LgotICAqLwotIHB0aHJlYWRfbXV0ZXhfdCAq Ci0gcGFnZXJlc3VsdF9sb2NrX2dldF9hZGRyKENvbm5lY3Rpb24gKmNvbm4pCi1AQCAtNDQsNyAr NDQsMTEgQEAgcGFnZXJlc3VsdF9sb2NrX2dldF9hZGRyKENvbm5lY3Rpb24gKmNvbm4pCi0gICAg IHJldHVybiAmbG9ja19oYXNoWygoKHNpemVfdCljb25uKS9zaXplb2YgKENvbm5lY3Rpb24pKSVM T0NLX0hBU0hfU0laRV07Ci0gfQotIAotLS8qIGhlbHBlciBmdW5jdGlvbiB0byBjbGVhbiB1cCBv bmUgcHJwIHNsb3QgKi8KLSsvKiBoZWxwZXIgZnVuY3Rpb24gdG8gY2xlYW4gdXAgb25lIHBycCBz bG90Ci0rICoKLSsgKiBOT1RFOiBUaGlzIGZ1bmN0aW9uIG11c3QgYmUgY2FsbGVkIHdoaWxlIGhv bGRpbmcgdGhlIHBhZ2VyZXN1bHRfbG9jawotKyAqICh2aWEgcGFnZXJlc3VsdF9sb2NrX2dldF9h ZGRyKGNvbm4pKSB0byBlbnN1cmUgdGhyZWFkLXNhZmUgY2xlYW51cC4KLSsgKi8KLSBzdGF0aWMg dm9pZAotIF9wcl9jbGVhbnVwX29uZV9zbG90KFBhZ2VkUmVzdWx0cyAqcHJwKQotIHsKLUBAIC01 Niw3ICs2MCw3IEBAIF9wcl9jbGVhbnVwX29uZV9zbG90KFBhZ2VkUmVzdWx0cyAqcHJwKQotICAg ICAgICAgcHJwLT5wcl9jdXJyZW50X2JlLT5iZV9zZWFyY2hfcmVzdWx0c19yZWxlYXNlKCYocHJw LT5wcl9zZWFyY2hfcmVzdWx0X3NldCkpOwotICAgICB9Ci0gCi0tICAgIC8qIGNsZWFuIHVwIHRo ZSBzbG90IGV4Y2VwdCB0aGUgbXV0ZXggKi8KLSsgICAgLyogY2xlYW4gdXAgdGhlIHNsb3QgKi8K LSAgICAgcHJwLT5wcl9jdXJyZW50X2JlID0gTlVMTDsKLSAgICAgcHJwLT5wcl9zZWFyY2hfcmVz dWx0X3NldCA9IE5VTEw7Ci0gICAgIHBycC0+cHJfc2VhcmNoX3Jlc3VsdF9jb3VudCA9IDA7Ci1A QCAtMTM2LDYgKzE0MCw4IEBAIHBhZ2VkcmVzdWx0c19wYXJzZV9jb250cm9sX3ZhbHVlKFNsYXBp X1BCbG9jayAqcGIsCi0gICAgICAgICByZXR1cm4gTERBUF9VTldJTExJTkdfVE9fUEVSRk9STTsK LSAgICAgfQotIAotKyAgICAvKiBBY3F1aXJlIGhhc2gtYmFzZWQgbG9jayBmb3IgcGFnZWQgcmVz dWx0cyBsaXN0IGFjY2VzcwotKyAgICAgKiBJTVBPUlRBTlQ6IE5ldmVyIGFjcXVpcmUgdGhpcyBs b2NrIHdoZW4gaG9sZGluZyBjX211dGV4ICovCi0gICAgIHB0aHJlYWRfbXV0ZXhfbG9jayhwYWdl cmVzdWx0X2xvY2tfZ2V0X2FkZHIoY29ubikpOwotICAgICAvKiB0aGUgYmVyIGVuY29kaW5nIGlz IG5vIGxvbmdlciBuZWVkZWQgKi8KLSAgICAgYmVyX2ZyZWUoYmVyLCAxKTsKLUBAIC0xODQsMTAg KzE5MCw2IEBAIHBhZ2VkcmVzdWx0c19wYXJzZV9jb250cm9sX3ZhbHVlKFNsYXBpX1BCbG9jayAq cGIsCi0gICAgICAgICAgICAgZ290byBiYWlsOwotICAgICAgICAgfQotIAotLSAgICAgICAgaWYg KCgqaW5kZXggPiAtMSkgJiYgKCppbmRleCA8IGNvbm4tPmNfcGFnZWRyZXN1bHRzLnBybF9tYXhs ZW4pICYmCi0tICAgICAgICAgICAgIWNvbm4tPmNfcGFnZWRyZXN1bHRzLnBybF9saXN0WyppbmRl eF0ucHJfbXV0ZXgpIHsKLS0gICAgICAgICAgICBjb25uLT5jX3BhZ2VkcmVzdWx0cy5wcmxfbGlz dFsqaW5kZXhdLnByX211dGV4ID0gUFJfTmV3TG9jaygpOwotLSAgICAgICAgfQotICAgICAgICAg Y29ubi0+Y19wYWdlZHJlc3VsdHMucHJsX2NvdW50Kys7Ci0gICAgIH0gZWxzZSB7Ci0gICAgICAg ICAvKiBSZXBlYXRlZCBwYWdlZCByZXN1bHRzIHJlcXVlc3QuCi1AQCAtMzI3LDggKzMyOSwxNCBA QCBiYWlsb3V0OgotICAgICAgICAgICAgICAgICAgICI8PSBpZHg9JWRcbiIsIGluZGV4KTsKLSB9 Ci0gCi0rLyoKLSsgKiBGcmVlIG9uZSBwYWdlZCByZXN1bHQgZW50cnkgYnkgaW5kZXguCi0rICoK LSsgKiBMb2NraW5nOiBJZiBsb2NrZWQ9MCwgYWNxdWlyZXMgcGFnZXJlc3VsdF9sb2NrLiBJZiBs b2NrZWQ9MSwgYXNzdW1lcwotKyAqIGNhbGxlciBhbHJlYWR5IGhvbGRzIHBhZ2VyZXN1bHRfbG9j ay4gTmV2ZXIgY2FsbCB3aGVuIGhvbGRpbmcgY19tdXRleC4KLSsgKi8KLSBpbnQKLS1wYWdlZHJl c3VsdHNfZnJlZV9vbmUoQ29ubmVjdGlvbiAqY29ubiwgT3BlcmF0aW9uICpvcCwgaW50IGluZGV4 KQotK3BhZ2VkcmVzdWx0c19mcmVlX29uZShDb25uZWN0aW9uICpjb25uLCBPcGVyYXRpb24gKm9w LCBib29sIGxvY2tlZCwgaW50IGluZGV4KQotIHsKLSAgICAgaW50IHJjID0gLTE7Ci0gCi1AQCAt MzM4LDcgKzM0Niw5IEBAIHBhZ2VkcmVzdWx0c19mcmVlX29uZShDb25uZWN0aW9uICpjb25uLCBP cGVyYXRpb24gKm9wLCBpbnQgaW5kZXgpCi0gICAgIHNsYXBpX2xvZ19lcnIoU0xBUElfTE9HX1RS QUNFLCAicGFnZWRyZXN1bHRzX2ZyZWVfb25lIiwKLSAgICAgICAgICAgICAgICAgICAiPT4gaWR4 PSVkXG4iLCBpbmRleCk7Ci0gICAgIGlmIChjb25uICYmIChpbmRleCA+IC0xKSkgewotLSAgICAg ICAgcHRocmVhZF9tdXRleF9sb2NrKHBhZ2VyZXN1bHRfbG9ja19nZXRfYWRkcihjb25uKSk7Ci0r ICAgICAgICBpZiAoIWxvY2tlZCkgewotKyAgICAgICAgICAgIHB0aHJlYWRfbXV0ZXhfbG9jayhw YWdlcmVzdWx0X2xvY2tfZ2V0X2FkZHIoY29ubikpOwotKyAgICAgICAgfQotICAgICAgICAgaWYg KGNvbm4tPmNfcGFnZWRyZXN1bHRzLnBybF9jb3VudCA8PSAwKSB7Ci0gICAgICAgICAgICAgc2xh cGlfbG9nX2VycihTTEFQSV9MT0dfVFJBQ0UsICJwYWdlZHJlc3VsdHNfZnJlZV9vbmUiLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgImNvbm49JSIgUFJJdTY0ICIgcGFnZWQgcmVxdWVzdHMg bGlzdCBjb3VudCBpcyAlZFxuIiwKLUBAIC0zNDksNyArMzU5LDkgQEAgcGFnZWRyZXN1bHRzX2Zy ZWVfb25lKENvbm5lY3Rpb24gKmNvbm4sIE9wZXJhdGlvbiAqb3AsIGludCBpbmRleCkKLSAgICAg ICAgICAgICBjb25uLT5jX3BhZ2VkcmVzdWx0cy5wcmxfY291bnQtLTsKLSAgICAgICAgICAgICBy YyA9IDA7Ci0gICAgICAgICB9Ci0tICAgICAgICBwdGhyZWFkX211dGV4X3VubG9jayhwYWdlcmVz dWx0X2xvY2tfZ2V0X2FkZHIoY29ubikpOwotKyAgICAgICAgaWYgKCFsb2NrZWQpIHsKLSsgICAg ICAgICAgICBwdGhyZWFkX211dGV4X3VubG9jayhwYWdlcmVzdWx0X2xvY2tfZ2V0X2FkZHIoY29u bikpOwotKyAgICAgICAgfQotICAgICB9Ci0gCi0gICAgIHNsYXBpX2xvZ19lcnIoU0xBUElfTE9H X1RSQUNFLCAicGFnZWRyZXN1bHRzX2ZyZWVfb25lIiwgIjw9ICVkXG4iLCByYyk7Ci1AQCAtMzU3 LDIxICszNjksMjggQEAgcGFnZWRyZXN1bHRzX2ZyZWVfb25lKENvbm5lY3Rpb24gKmNvbm4sIE9w ZXJhdGlvbiAqb3AsIGludCBpbmRleCkKLSB9Ci0gCi0gLyoKLS0gKiBVc2VkIGZvciBhYmFuZG9u aW5nIC0gcGFnZXJlc3VsdF9sb2NrX2dldF9hZGRyKGNvbm4pIGlzIGFscmVhZHkgbG9ja2VkIGlu IGRvX2FiYW5kb25lLgotKyAqIEZyZWUgb25lIHBhZ2VkIHJlc3VsdCBlbnRyeSBieSBtZXNzYWdl IElELgotKyAqCi0rICogTG9ja2luZzogSWYgbG9ja2VkPTAsIGFjcXVpcmVzIHBhZ2VyZXN1bHRf bG9jay4gSWYgbG9ja2VkPTEsIGFzc3VtZXMKLSsgKiBjYWxsZXIgYWxyZWFkeSBob2xkcyBwYWdl cmVzdWx0X2xvY2suIE5ldmVyIGNhbGwgd2hlbiBob2xkaW5nIGNfbXV0ZXguCi0gICovCi0gaW50 Ci0tcGFnZWRyZXN1bHRzX2ZyZWVfb25lX21zZ2lkKENvbm5lY3Rpb24gKmNvbm4sIGJlcl9pbnRf dCBtc2dpZCwgcHRocmVhZF9tdXRleF90ICptdXRleCkKLStwYWdlZHJlc3VsdHNfZnJlZV9vbmVf bXNnaWQoQ29ubmVjdGlvbiAqY29ubiwgYmVyX2ludF90IG1zZ2lkLCBib29sIGxvY2tlZCkKLSB7 Ci0gICAgIGludCByYyA9IC0xOwotICAgICBpbnQgaTsKLSsgICAgcHRocmVhZF9tdXRleF90ICps b2NrID0gTlVMTDsKLSAKLSAgICAgaWYgKGNvbm4gJiYgKG1zZ2lkID4gLTEpKSB7Ci0gICAgICAg ICBpZiAoY29ubi0+Y19wYWdlZHJlc3VsdHMucHJsX21heGxlbiA8PSAwKSB7Ci0gICAgICAgICAg ICAgOyAvKiBOb3QgYSBwYWdlZCByZXN1bHQuICovCi0gICAgICAgICB9IGVsc2UgewotICAgICAg ICAgICAgIHNsYXBpX2xvZ19lcnIoU0xBUElfTE9HX1RSQUNFLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgInBhZ2VkcmVzdWx0c19mcmVlX29uZV9tc2dpZF9ub2xvY2siLCAiPT4gbXNnaWQ9 JWRcbiIsIG1zZ2lkKTsKLS0gICAgICAgICAgICBwdGhyZWFkX211dGV4X2xvY2sobXV0ZXgpOwot KyAgICAgICAgICAgICAgICAgICAgICAgICAgInBhZ2VkcmVzdWx0c19mcmVlX29uZV9tc2dpZCIs ICI9PiBtc2dpZD0lZFxuIiwgbXNnaWQpOwotKyAgICAgICAgICAgIGxvY2sgPSBwYWdlcmVzdWx0 X2xvY2tfZ2V0X2FkZHIoY29ubik7Ci0rICAgICAgICAgICAgaWYgKCFsb2NrZWQpIHsKLSsgICAg ICAgICAgICAgICAgcHRocmVhZF9tdXRleF9sb2NrKGxvY2spOwotKyAgICAgICAgICAgIH0KLSAg ICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgY29ubi0+Y19wYWdlZHJlc3VsdHMucHJsX21heGxl bjsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgIGlmIChjb25uLT5jX3BhZ2VkcmVzdWx0cy5wcmxf bGlzdFtpXS5wcl9tc2dpZCA9PSBtc2dpZCkgewotICAgICAgICAgICAgICAgICAgICAgUGFnZWRS ZXN1bHRzICpwcnAgPSBjb25uLT5jX3BhZ2VkcmVzdWx0cy5wcmxfbGlzdCArIGk7Ci1AQCAtMzkw LDkgKzQwOSwxMSBAQCBwYWdlZHJlc3VsdHNfZnJlZV9vbmVfbXNnaWQoQ29ubmVjdGlvbiAqY29u biwgYmVyX2ludF90IG1zZ2lkLCBwdGhyZWFkX211dGV4X3QgKgotICAgICAgICAgICAgICAgICAg ICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgcHRocmVhZF9tdXRleF91bmxvY2sobXV0ZXgpOwotKyAgICAgICAgICAgIGlmICghbG9ja2Vk KSB7Ci0rICAgICAgICAgICAgICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKGxvY2spOwotKyAgICAg ICAgICAgIH0KLSAgICAgICAgICAgICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xPR19UUkFDRSwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICJwYWdlZHJlc3VsdHNfZnJlZV9vbmVfbXNnaWRfbm9s b2NrIiwgIjw9ICVkXG4iLCByYyk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAicGFnZWRy ZXN1bHRzX2ZyZWVfb25lX21zZ2lkIiwgIjw9ICVkXG4iLCByYyk7Ci0gICAgICAgICB9Ci0gICAg IH0KLSAKLUBAIC00MTgsMjkgKzQzOSw0MyBAQCBwYWdlZHJlc3VsdHNfZ2V0X2N1cnJlbnRfYmUo Q29ubmVjdGlvbiAqY29ubiwgaW50IGluZGV4KQotICAgICByZXR1cm4gYmU7Ci0gfQotIAotKy8q Ci0rICogU2V0IGN1cnJlbnQgYmFja2VuZCBmb3IgYSBwYWdlZCByZXN1bHQgZW50cnkuCi0rICoK LSsgKiBMb2NraW5nOiBJZiBsb2NrZWQ9ZmFsc2UsIGFjcXVpcmVzIHBhZ2VyZXN1bHRfbG9jay4g SWYgbG9ja2VkPXRydWUsIGFzc3VtZXMKLSsgKiBjYWxsZXIgYWxyZWFkeSBob2xkcyBwYWdlcmVz dWx0X2xvY2suIE5ldmVyIGNhbGwgd2hlbiBob2xkaW5nIGNfbXV0ZXguCi0rICovCi0gaW50Ci0t cGFnZWRyZXN1bHRzX3NldF9jdXJyZW50X2JlKENvbm5lY3Rpb24gKmNvbm4sIFNsYXBpX0JhY2tl bmQgKmJlLCBpbnQgaW5kZXgsIGludCBub2xvY2spCi0rcGFnZWRyZXN1bHRzX3NldF9jdXJyZW50 X2JlKENvbm5lY3Rpb24gKmNvbm4sIFNsYXBpX0JhY2tlbmQgKmJlLCBpbnQgaW5kZXgsIGJvb2wg bG9ja2VkKQotIHsKLSAgICAgaW50IHJjID0gLTE7Ci0gICAgIHNsYXBpX2xvZ19lcnIoU0xBUElf TE9HX1RSQUNFLAotICAgICAgICAgICAgICAgICAgICJwYWdlZHJlc3VsdHNfc2V0X2N1cnJlbnRf YmUiLCAiPT4gaWR4PSVkXG4iLCBpbmRleCk7Ci0gICAgIGlmIChjb25uICYmIChpbmRleCA+IC0x KSkgewotLSAgICAgICAgaWYgKCFub2xvY2spCi0rICAgICAgICBpZiAoIWxvY2tlZCkgewotICAg ICAgICAgICAgIHB0aHJlYWRfbXV0ZXhfbG9jayhwYWdlcmVzdWx0X2xvY2tfZ2V0X2FkZHIoY29u bikpOwotKyAgICAgICAgfQotICAgICAgICAgaWYgKGluZGV4IDwgY29ubi0+Y19wYWdlZHJlc3Vs dHMucHJsX21heGxlbikgewotICAgICAgICAgICAgIGNvbm4tPmNfcGFnZWRyZXN1bHRzLnBybF9s aXN0W2luZGV4XS5wcl9jdXJyZW50X2JlID0gYmU7Ci0gICAgICAgICB9Ci0gICAgICAgICByYyA9 IDA7Ci0tICAgICAgICBpZiAoIW5vbG9jaykKLSsgICAgICAgIGlmICghbG9ja2VkKSB7Ci0gICAg ICAgICAgICAgcHRocmVhZF9tdXRleF91bmxvY2socGFnZXJlc3VsdF9sb2NrX2dldF9hZGRyKGNv bm4pKTsKLSsgICAgICAgIH0KLSAgICAgfQotICAgICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xPR19U UkFDRSwKLSAgICAgICAgICAgICAgICAgICAicGFnZWRyZXN1bHRzX3NldF9jdXJyZW50X2JlIiwg Ijw9ICVkXG4iLCByYyk7Ci0gICAgIHJldHVybiByYzsKLSB9Ci0gCi0rLyoKLSsgKiBHZXQgc2Vh cmNoIHJlc3VsdCBzZXQgZm9yIGEgcGFnZWQgcmVzdWx0IGVudHJ5LgotKyAqCi0rICogTG9ja2lu ZzogSWYgbG9ja2VkPTAsIGFjcXVpcmVzIHBhZ2VyZXN1bHRfbG9jay4gSWYgbG9ja2VkPTEsIGFz c3VtZXMKLSsgKiBjYWxsZXIgYWxyZWFkeSBob2xkcyBwYWdlcmVzdWx0X2xvY2suIE5ldmVyIGNh bGwgd2hlbiBob2xkaW5nIGNfbXV0ZXguCi0rICovCi0gdm9pZCAqCi0tcGFnZWRyZXN1bHRzX2dl dF9zZWFyY2hfcmVzdWx0KENvbm5lY3Rpb24gKmNvbm4sIE9wZXJhdGlvbiAqb3AsIGludCBsb2Nr ZWQsIGludCBpbmRleCkKLStwYWdlZHJlc3VsdHNfZ2V0X3NlYXJjaF9yZXN1bHQoQ29ubmVjdGlv biAqY29ubiwgT3BlcmF0aW9uICpvcCwgYm9vbCBsb2NrZWQsIGludCBpbmRleCkKLSB7Ci0gICAg IHZvaWQgKnNyID0gTlVMTDsKLSAgICAgaWYgKCFvcF9pc19wYWdlZHJlc3VsdHMob3ApKSB7Ci1A QCAtNDY1LDggKzUwMCwxNCBAQCBwYWdlZHJlc3VsdHNfZ2V0X3NlYXJjaF9yZXN1bHQoQ29ubmVj dGlvbiAqY29ubiwgT3BlcmF0aW9uICpvcCwgaW50IGxvY2tlZCwgaW50Ci0gICAgIHJldHVybiBz cjsKLSB9Ci0gCi0rLyoKLSsgKiBTZXQgc2VhcmNoIHJlc3VsdCBzZXQgZm9yIGEgcGFnZWQgcmVz dWx0IGVudHJ5LgotKyAqCi0rICogTG9ja2luZzogSWYgbG9ja2VkPTAsIGFjcXVpcmVzIHBhZ2Vy ZXN1bHRfbG9jay4gSWYgbG9ja2VkPTEsIGFzc3VtZXMKLSsgKiBjYWxsZXIgYWxyZWFkeSBob2xk cyBwYWdlcmVzdWx0X2xvY2suIE5ldmVyIGNhbGwgd2hlbiBob2xkaW5nIGNfbXV0ZXguCi0rICov Ci0gaW50Ci0tcGFnZWRyZXN1bHRzX3NldF9zZWFyY2hfcmVzdWx0KENvbm5lY3Rpb24gKmNvbm4s IE9wZXJhdGlvbiAqb3AsIHZvaWQgKnNyLCBpbnQgbG9ja2VkLCBpbnQgaW5kZXgpCi0rcGFnZWRy ZXN1bHRzX3NldF9zZWFyY2hfcmVzdWx0KENvbm5lY3Rpb24gKmNvbm4sIE9wZXJhdGlvbiAqb3As IHZvaWQgKnNyLCBib29sIGxvY2tlZCwgaW50IGluZGV4KQotIHsKLSAgICAgaW50IHJjID0gLTE7 Ci0gICAgIGlmICghb3BfaXNfcGFnZWRyZXN1bHRzKG9wKSkgewotQEAgLTQ5NCw4ICs1MzUsMTQg QEAgcGFnZWRyZXN1bHRzX3NldF9zZWFyY2hfcmVzdWx0KENvbm5lY3Rpb24gKmNvbm4sIE9wZXJh dGlvbiAqb3AsIHZvaWQgKnNyLCBpbnQgbG8KLSAgICAgcmV0dXJuIHJjOwotIH0KLSAKLSsvKgot KyAqIEdldCBzZWFyY2ggcmVzdWx0IGNvdW50IGZvciBhIHBhZ2VkIHJlc3VsdCBlbnRyeS4KLSsg KgotKyAqIExvY2tpbmc6IElmIGxvY2tlZD0wLCBhY3F1aXJlcyBwYWdlcmVzdWx0X2xvY2suIElm IGxvY2tlZD0xLCBhc3N1bWVzCi0rICogY2FsbGVyIGFscmVhZHkgaG9sZHMgcGFnZXJlc3VsdF9s b2NrLiBOZXZlciBjYWxsIHdoZW4gaG9sZGluZyBjX211dGV4LgotKyAqLwotIGludAotLXBhZ2Vk cmVzdWx0c19nZXRfc2VhcmNoX3Jlc3VsdF9jb3VudChDb25uZWN0aW9uICpjb25uLCBPcGVyYXRp b24gKm9wLCBpbnQgaW5kZXgpCi0rcGFnZWRyZXN1bHRzX2dldF9zZWFyY2hfcmVzdWx0X2NvdW50 KENvbm5lY3Rpb24gKmNvbm4sIE9wZXJhdGlvbiAqb3AsIGJvb2wgbG9ja2VkLCBpbnQgaW5kZXgp Ci0gewotICAgICBpbnQgY291bnQgPSAwOwotICAgICBpZiAoIW9wX2lzX3BhZ2VkcmVzdWx0cyhv cCkpIHsKLUBAIC01MDQsMTkgKzU1MSwyOSBAQCBwYWdlZHJlc3VsdHNfZ2V0X3NlYXJjaF9yZXN1 bHRfY291bnQoQ29ubmVjdGlvbiAqY29ubiwgT3BlcmF0aW9uICpvcCwgaW50IGluZGV4KQotICAg ICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xPR19UUkFDRSwKLSAgICAgICAgICAgICAgICAgICAicGFn ZWRyZXN1bHRzX2dldF9zZWFyY2hfcmVzdWx0X2NvdW50IiwgIj0+IGlkeD0lZFxuIiwgaW5kZXgp OwotICAgICBpZiAoY29ubiAmJiAoaW5kZXggPiAtMSkpIHsKLS0gICAgICAgIHB0aHJlYWRfbXV0 ZXhfbG9jayhwYWdlcmVzdWx0X2xvY2tfZ2V0X2FkZHIoY29ubikpOwotKyAgICAgICAgaWYgKCFs b2NrZWQpIHsKLSsgICAgICAgICAgICBwdGhyZWFkX211dGV4X2xvY2socGFnZXJlc3VsdF9sb2Nr X2dldF9hZGRyKGNvbm4pKTsKLSsgICAgICAgIH0KLSAgICAgICAgIGlmIChpbmRleCA8IGNvbm4t PmNfcGFnZWRyZXN1bHRzLnBybF9tYXhsZW4pIHsKLSAgICAgICAgICAgICBjb3VudCA9IGNvbm4t PmNfcGFnZWRyZXN1bHRzLnBybF9saXN0W2luZGV4XS5wcl9zZWFyY2hfcmVzdWx0X2NvdW50Owot ICAgICAgICAgfQotLSAgICAgICAgcHRocmVhZF9tdXRleF91bmxvY2socGFnZXJlc3VsdF9sb2Nr X2dldF9hZGRyKGNvbm4pKTsKLSsgICAgICAgIGlmICghbG9ja2VkKSB7Ci0rICAgICAgICAgICAg cHRocmVhZF9tdXRleF91bmxvY2socGFnZXJlc3VsdF9sb2NrX2dldF9hZGRyKGNvbm4pKTsKLSsg ICAgICAgIH0KLSAgICAgfQotICAgICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xPR19UUkFDRSwKLSAg ICAgICAgICAgICAgICAgICAicGFnZWRyZXN1bHRzX2dldF9zZWFyY2hfcmVzdWx0X2NvdW50Iiwg Ijw9ICVkXG4iLCBjb3VudCk7Ci0gICAgIHJldHVybiBjb3VudDsKLSB9Ci0gCi0rLyoKLSsgKiBT ZXQgc2VhcmNoIHJlc3VsdCBjb3VudCBmb3IgYSBwYWdlZCByZXN1bHQgZW50cnkuCi0rICoKLSsg KiBMb2NraW5nOiBJZiBsb2NrZWQ9MCwgYWNxdWlyZXMgcGFnZXJlc3VsdF9sb2NrLiBJZiBsb2Nr ZWQ9MSwgYXNzdW1lcwotKyAqIGNhbGxlciBhbHJlYWR5IGhvbGRzIHBhZ2VyZXN1bHRfbG9jay4g TmV2ZXIgY2FsbCB3aGVuIGhvbGRpbmcgY19tdXRleC4KLSsgKi8KLSBpbnQKLS1wYWdlZHJlc3Vs dHNfc2V0X3NlYXJjaF9yZXN1bHRfY291bnQoQ29ubmVjdGlvbiAqY29ubiwgT3BlcmF0aW9uICpv cCwgaW50IGNvdW50LCBpbnQgaW5kZXgpCi0rcGFnZWRyZXN1bHRzX3NldF9zZWFyY2hfcmVzdWx0 X2NvdW50KENvbm5lY3Rpb24gKmNvbm4sIE9wZXJhdGlvbiAqb3AsIGludCBjb3VudCwgYm9vbCBs b2NrZWQsIGludCBpbmRleCkKLSB7Ci0gICAgIGludCByYyA9IC0xOwotICAgICBpZiAoIW9wX2lz X3BhZ2VkcmVzdWx0cyhvcCkpIHsKLUBAIC01MjUsMTEgKzU4MiwxNSBAQCBwYWdlZHJlc3VsdHNf c2V0X3NlYXJjaF9yZXN1bHRfY291bnQoQ29ubmVjdGlvbiAqY29ubiwgT3BlcmF0aW9uICpvcCwg aW50IGNvdW50LAotICAgICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xPR19UUkFDRSwKLSAgICAgICAg ICAgICAgICAgICAicGFnZWRyZXN1bHRzX3NldF9zZWFyY2hfcmVzdWx0X2NvdW50IiwgIj0+IGlk eD0lZFxuIiwgaW5kZXgpOwotICAgICBpZiAoY29ubiAmJiAoaW5kZXggPiAtMSkpIHsKLS0gICAg ICAgIHB0aHJlYWRfbXV0ZXhfbG9jayhwYWdlcmVzdWx0X2xvY2tfZ2V0X2FkZHIoY29ubikpOwot KyAgICAgICAgaWYgKCFsb2NrZWQpIHsKLSsgICAgICAgICAgICBwdGhyZWFkX211dGV4X2xvY2so cGFnZXJlc3VsdF9sb2NrX2dldF9hZGRyKGNvbm4pKTsKLSsgICAgICAgIH0KLSAgICAgICAgIGlm IChpbmRleCA8IGNvbm4tPmNfcGFnZWRyZXN1bHRzLnBybF9tYXhsZW4pIHsKLSAgICAgICAgICAg ICBjb25uLT5jX3BhZ2VkcmVzdWx0cy5wcmxfbGlzdFtpbmRleF0ucHJfc2VhcmNoX3Jlc3VsdF9j b3VudCA9IGNvdW50OwotICAgICAgICAgfQotLSAgICAgICAgcHRocmVhZF9tdXRleF91bmxvY2so cGFnZXJlc3VsdF9sb2NrX2dldF9hZGRyKGNvbm4pKTsKLSsgICAgICAgIGlmICghbG9ja2VkKSB7 Ci0rICAgICAgICAgICAgcHRocmVhZF9tdXRleF91bmxvY2socGFnZXJlc3VsdF9sb2NrX2dldF9h ZGRyKGNvbm4pKTsKLSsgICAgICAgIH0KLSAgICAgICAgIHJjID0gMDsKLSAgICAgfQotICAgICBz bGFwaV9sb2dfZXJyKFNMQVBJX0xPR19UUkFDRSwKLUBAIC01MzcsOSArNTk4LDE2IEBAIHBhZ2Vk cmVzdWx0c19zZXRfc2VhcmNoX3Jlc3VsdF9jb3VudChDb25uZWN0aW9uICpjb25uLCBPcGVyYXRp b24gKm9wLCBpbnQgY291bnQsCi0gICAgIHJldHVybiByYzsKLSB9Ci0gCi0rLyoKLSsgKiBHZXQg c2VhcmNoIHJlc3VsdCBzZXQgc2l6ZSBlc3RpbWF0ZSBmb3IgYSBwYWdlZCByZXN1bHQgZW50cnku Ci0rICoKLSsgKiBMb2NraW5nOiBJZiBsb2NrZWQ9MCwgYWNxdWlyZXMgcGFnZXJlc3VsdF9sb2Nr LiBJZiBsb2NrZWQ9MSwgYXNzdW1lcwotKyAqIGNhbGxlciBhbHJlYWR5IGhvbGRzIHBhZ2VyZXN1 bHRfbG9jay4gTmV2ZXIgY2FsbCB3aGVuIGhvbGRpbmcgY19tdXRleC4KLSsgKi8KLSBpbnQKLSBw YWdlZHJlc3VsdHNfZ2V0X3NlYXJjaF9yZXN1bHRfc2V0X3NpemVfZXN0aW1hdGUoQ29ubmVjdGlv biAqY29ubiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgT3BlcmF0aW9uICpvcCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYm9vbCBsb2NrZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGludCBpbmRleCkKLSB7Ci0gICAgIGludCBjb3VudCA9IDA7Ci1A QCAtNTUwLDExICs2MTgsMTUgQEAgcGFnZWRyZXN1bHRzX2dldF9zZWFyY2hfcmVzdWx0X3NldF9z aXplX2VzdGltYXRlKENvbm5lY3Rpb24gKmNvbm4sCi0gICAgICAgICAgICAgICAgICAgInBhZ2Vk cmVzdWx0c19nZXRfc2VhcmNoX3Jlc3VsdF9zZXRfc2l6ZV9lc3RpbWF0ZSIsCi0gICAgICAgICAg ICAgICAgICAgIj0+IGlkeD0lZFxuIiwgaW5kZXgpOwotICAgICBpZiAoY29ubiAmJiAoaW5kZXgg PiAtMSkpIHsKLS0gICAgICAgIHB0aHJlYWRfbXV0ZXhfbG9jayhwYWdlcmVzdWx0X2xvY2tfZ2V0 X2FkZHIoY29ubikpOwotKyAgICAgICAgaWYgKCFsb2NrZWQpIHsKLSsgICAgICAgICAgICBwdGhy ZWFkX211dGV4X2xvY2socGFnZXJlc3VsdF9sb2NrX2dldF9hZGRyKGNvbm4pKTsKLSsgICAgICAg IH0KLSAgICAgICAgIGlmIChpbmRleCA8IGNvbm4tPmNfcGFnZWRyZXN1bHRzLnBybF9tYXhsZW4p IHsKLSAgICAgICAgICAgICBjb3VudCA9IGNvbm4tPmNfcGFnZWRyZXN1bHRzLnBybF9saXN0W2lu ZGV4XS5wcl9zZWFyY2hfcmVzdWx0X3NldF9zaXplX2VzdGltYXRlOwotICAgICAgICAgfQotLSAg ICAgICAgcHRocmVhZF9tdXRleF91bmxvY2socGFnZXJlc3VsdF9sb2NrX2dldF9hZGRyKGNvbm4p KTsKLSsgICAgICAgIGlmICghbG9ja2VkKSB7Ci0rICAgICAgICAgICAgcHRocmVhZF9tdXRleF91 bmxvY2socGFnZXJlc3VsdF9sb2NrX2dldF9hZGRyKGNvbm4pKTsKLSsgICAgICAgIH0KLSAgICAg fQotICAgICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xPR19UUkFDRSwKLSAgICAgICAgICAgICAgICAg ICAicGFnZWRyZXN1bHRzX2dldF9zZWFyY2hfcmVzdWx0X3NldF9zaXplX2VzdGltYXRlIiwgIjw9 ICVkXG4iLAotQEAgLTU2MiwxMCArNjM0LDE3IEBAIHBhZ2VkcmVzdWx0c19nZXRfc2VhcmNoX3Jl c3VsdF9zZXRfc2l6ZV9lc3RpbWF0ZShDb25uZWN0aW9uICpjb25uLAotICAgICByZXR1cm4gY291 bnQ7Ci0gfQotIAotKy8qCi0rICogU2V0IHNlYXJjaCByZXN1bHQgc2V0IHNpemUgZXN0aW1hdGUg Zm9yIGEgcGFnZWQgcmVzdWx0IGVudHJ5LgotKyAqCi0rICogTG9ja2luZzogSWYgbG9ja2VkPTAs IGFjcXVpcmVzIHBhZ2VyZXN1bHRfbG9jay4gSWYgbG9ja2VkPTEsIGFzc3VtZXMKLSsgKiBjYWxs ZXIgYWxyZWFkeSBob2xkcyBwYWdlcmVzdWx0X2xvY2suIE5ldmVyIGNhbGwgd2hlbiBob2xkaW5n IGNfbXV0ZXguCi0rICovCi0gaW50Ci0gcGFnZWRyZXN1bHRzX3NldF9zZWFyY2hfcmVzdWx0X3Nl dF9zaXplX2VzdGltYXRlKENvbm5lY3Rpb24gKmNvbm4sCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9wZXJhdGlvbiAqb3AsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBjb3VudCwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBsb2NrZWQsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpbmRl eCkKLSB7Ci0gICAgIGludCByYyA9IC0xOwotQEAgLTU3NiwxMSArNjU1LDE1IEBAIHBhZ2VkcmVz dWx0c19zZXRfc2VhcmNoX3Jlc3VsdF9zZXRfc2l6ZV9lc3RpbWF0ZShDb25uZWN0aW9uICpjb25u LAotICAgICAgICAgICAgICAgICAgICJwYWdlZHJlc3VsdHNfc2V0X3NlYXJjaF9yZXN1bHRfc2V0 X3NpemVfZXN0aW1hdGUiLAotICAgICAgICAgICAgICAgICAgICI9PiBpZHg9JWRcbiIsIGluZGV4 KTsKLSAgICAgaWYgKGNvbm4gJiYgKGluZGV4ID4gLTEpKSB7Ci0tICAgICAgICBwdGhyZWFkX211 dGV4X2xvY2socGFnZXJlc3VsdF9sb2NrX2dldF9hZGRyKGNvbm4pKTsKLSsgICAgICAgIGlmICgh bG9ja2VkKSB7Ci0rICAgICAgICAgICAgcHRocmVhZF9tdXRleF9sb2NrKHBhZ2VyZXN1bHRfbG9j a19nZXRfYWRkcihjb25uKSk7Ci0rICAgICAgICB9Ci0gICAgICAgICBpZiAoaW5kZXggPCBjb25u LT5jX3BhZ2VkcmVzdWx0cy5wcmxfbWF4bGVuKSB7Ci0gICAgICAgICAgICAgY29ubi0+Y19wYWdl ZHJlc3VsdHMucHJsX2xpc3RbaW5kZXhdLnByX3NlYXJjaF9yZXN1bHRfc2V0X3NpemVfZXN0aW1h dGUgPSBjb3VudDsKLSAgICAgICAgIH0KLS0gICAgICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKHBh Z2VyZXN1bHRfbG9ja19nZXRfYWRkcihjb25uKSk7Ci0rICAgICAgICBpZiAoIWxvY2tlZCkgewot KyAgICAgICAgICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKHBhZ2VyZXN1bHRfbG9ja19nZXRfYWRk cihjb25uKSk7Ci0rICAgICAgICB9Ci0gICAgICAgICByYyA9IDA7Ci0gICAgIH0KLSAgICAgc2xh cGlfbG9nX2VycihTTEFQSV9MT0dfVFJBQ0UsCi1AQCAtNTg5LDggKzY3MiwxNCBAQCBwYWdlZHJl c3VsdHNfc2V0X3NlYXJjaF9yZXN1bHRfc2V0X3NpemVfZXN0aW1hdGUoQ29ubmVjdGlvbiAqY29u biwKLSAgICAgcmV0dXJuIHJjOwotIH0KLSAKLSsvKgotKyAqIEdldCB3aXRoX3NvcnQgZmxhZyBm b3IgYSBwYWdlZCByZXN1bHQgZW50cnkuCi0rICoKLSsgKiBMb2NraW5nOiBJZiBsb2NrZWQ9MCwg YWNxdWlyZXMgcGFnZXJlc3VsdF9sb2NrLiBJZiBsb2NrZWQ9MSwgYXNzdW1lcwotKyAqIGNhbGxl ciBhbHJlYWR5IGhvbGRzIHBhZ2VyZXN1bHRfbG9jay4gTmV2ZXIgY2FsbCB3aGVuIGhvbGRpbmcg Y19tdXRleC4KLSsgKi8KLSBpbnQKLS1wYWdlZHJlc3VsdHNfZ2V0X3dpdGhfc29ydChDb25uZWN0 aW9uICpjb25uLCBPcGVyYXRpb24gKm9wLCBpbnQgaW5kZXgpCi0rcGFnZWRyZXN1bHRzX2dldF93 aXRoX3NvcnQoQ29ubmVjdGlvbiAqY29ubiwgT3BlcmF0aW9uICpvcCwgYm9vbCBsb2NrZWQsIGlu dCBpbmRleCkKLSB7Ci0gICAgIGludCBmbGFncyA9IDA7Ci0gICAgIGlmICghb3BfaXNfcGFnZWRy ZXN1bHRzKG9wKSkgewotQEAgLTU5OSwxOSArNjg4LDI5IEBAIHBhZ2VkcmVzdWx0c19nZXRfd2l0 aF9zb3J0KENvbm5lY3Rpb24gKmNvbm4sIE9wZXJhdGlvbiAqb3AsIGludCBpbmRleCkKLSAgICAg c2xhcGlfbG9nX2VycihTTEFQSV9MT0dfVFJBQ0UsCi0gICAgICAgICAgICAgICAgICAgInBhZ2Vk cmVzdWx0c19nZXRfd2l0aF9zb3J0IiwgIj0+IGlkeD0lZFxuIiwgaW5kZXgpOwotICAgICBpZiAo Y29ubiAmJiAoaW5kZXggPiAtMSkpIHsKLS0gICAgICAgIHB0aHJlYWRfbXV0ZXhfbG9jayhwYWdl cmVzdWx0X2xvY2tfZ2V0X2FkZHIoY29ubikpOwotKyAgICAgICAgaWYgKCFsb2NrZWQpIHsKLSsg ICAgICAgICAgICBwdGhyZWFkX211dGV4X2xvY2socGFnZXJlc3VsdF9sb2NrX2dldF9hZGRyKGNv bm4pKTsKLSsgICAgICAgIH0KLSAgICAgICAgIGlmIChpbmRleCA8IGNvbm4tPmNfcGFnZWRyZXN1 bHRzLnBybF9tYXhsZW4pIHsKLSAgICAgICAgICAgICBmbGFncyA9IGNvbm4tPmNfcGFnZWRyZXN1 bHRzLnBybF9saXN0W2luZGV4XS5wcl9mbGFncyAmIENPTk5fRkxBR19QQUdFRFJFU1VMVFNfV0lU SF9TT1JUOwotICAgICAgICAgfQotLSAgICAgICAgcHRocmVhZF9tdXRleF91bmxvY2socGFnZXJl c3VsdF9sb2NrX2dldF9hZGRyKGNvbm4pKTsKLSsgICAgICAgIGlmICghbG9ja2VkKSB7Ci0rICAg ICAgICAgICAgcHRocmVhZF9tdXRleF91bmxvY2socGFnZXJlc3VsdF9sb2NrX2dldF9hZGRyKGNv bm4pKTsKLSsgICAgICAgIH0KLSAgICAgfQotICAgICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xPR19U UkFDRSwKLSAgICAgICAgICAgICAgICAgICAicGFnZWRyZXN1bHRzX2dldF93aXRoX3NvcnQiLCAi PD0gJWRcbiIsIGZsYWdzKTsKLSAgICAgcmV0dXJuIGZsYWdzOwotIH0KLSAKLSsvKgotKyAqIFNl dCB3aXRoX3NvcnQgZmxhZyBmb3IgYSBwYWdlZCByZXN1bHQgZW50cnkuCi0rICoKLSsgKiBMb2Nr aW5nOiBJZiBsb2NrZWQ9MCwgYWNxdWlyZXMgcGFnZXJlc3VsdF9sb2NrLiBJZiBsb2NrZWQ9MSwg YXNzdW1lcwotKyAqIGNhbGxlciBhbHJlYWR5IGhvbGRzIHBhZ2VyZXN1bHRfbG9jay4gTmV2ZXIg Y2FsbCB3aGVuIGhvbGRpbmcgY19tdXRleC4KLSsgKi8KLSBpbnQKLS1wYWdlZHJlc3VsdHNfc2V0 X3dpdGhfc29ydChDb25uZWN0aW9uICpjb25uLCBPcGVyYXRpb24gKm9wLCBpbnQgZmxhZ3MsIGlu dCBpbmRleCkKLStwYWdlZHJlc3VsdHNfc2V0X3dpdGhfc29ydChDb25uZWN0aW9uICpjb25uLCBP cGVyYXRpb24gKm9wLCBpbnQgZmxhZ3MsIGJvb2wgbG9ja2VkLCBpbnQgaW5kZXgpCi0gewotICAg ICBpbnQgcmMgPSAtMTsKLSAgICAgaWYgKCFvcF9pc19wYWdlZHJlc3VsdHMob3ApKSB7Ci1AQCAt NjIwLDE0ICs3MTksMTggQEAgcGFnZWRyZXN1bHRzX3NldF93aXRoX3NvcnQoQ29ubmVjdGlvbiAq Y29ubiwgT3BlcmF0aW9uICpvcCwgaW50IGZsYWdzLCBpbnQgaW5kZXgKLSAgICAgc2xhcGlfbG9n X2VycihTTEFQSV9MT0dfVFJBQ0UsCi0gICAgICAgICAgICAgICAgICAgInBhZ2VkcmVzdWx0c19z ZXRfd2l0aF9zb3J0IiwgIj0+IGlkeD0lZFxuIiwgaW5kZXgpOwotICAgICBpZiAoY29ubiAmJiAo aW5kZXggPiAtMSkpIHsKLS0gICAgICAgIHB0aHJlYWRfbXV0ZXhfbG9jayhwYWdlcmVzdWx0X2xv Y2tfZ2V0X2FkZHIoY29ubikpOwotKyAgICAgICAgaWYgKCFsb2NrZWQpIHsKLSsgICAgICAgICAg ICBwdGhyZWFkX211dGV4X2xvY2socGFnZXJlc3VsdF9sb2NrX2dldF9hZGRyKGNvbm4pKTsKLSsg ICAgICAgIH0KLSAgICAgICAgIGlmIChpbmRleCA8IGNvbm4tPmNfcGFnZWRyZXN1bHRzLnBybF9t YXhsZW4pIHsKLSAgICAgICAgICAgICBpZiAoZmxhZ3MgJiBPUF9GTEFHX1NFUlZFUl9TSURFX1NP UlRJTkcpIHsKLSAgICAgICAgICAgICAgICAgY29ubi0+Y19wYWdlZHJlc3VsdHMucHJsX2xpc3Rb aW5kZXhdLnByX2ZsYWdzIHw9Ci0gICAgICAgICAgICAgICAgICAgICBDT05OX0ZMQUdfUEFHRURS RVNVTFRTX1dJVEhfU09SVDsKLSAgICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0tICAgICAgICBw dGhyZWFkX211dGV4X3VubG9jayhwYWdlcmVzdWx0X2xvY2tfZ2V0X2FkZHIoY29ubikpOwotKyAg ICAgICAgaWYgKCFsb2NrZWQpIHsKLSsgICAgICAgICAgICBwdGhyZWFkX211dGV4X3VubG9jayhw YWdlcmVzdWx0X2xvY2tfZ2V0X2FkZHIoY29ubikpOwotKyAgICAgICAgfQotICAgICAgICAgcmMg PSAwOwotICAgICB9Ci0gICAgIHNsYXBpX2xvZ19lcnIoU0xBUElfTE9HX1RSQUNFLCAicGFnZWRy ZXN1bHRzX3NldF93aXRoX3NvcnQiLCAiPD0gJWRcbiIsIHJjKTsKLUBAIC04MDIsMTAgKzkwNSw2 IEBAIHBhZ2VkcmVzdWx0c19jbGVhbnVwKENvbm5lY3Rpb24gKmNvbm4sIGludCBuZWVkbG9jaykK LSAgICAgICAgICAgICByYyA9IDE7Ci0gICAgICAgICB9Ci0gICAgICAgICBwcnAtPnByX2N1cnJl bnRfYmUgPSBOVUxMOwotLSAgICAgICAgaWYgKHBycC0+cHJfbXV0ZXgpIHsKLS0gICAgICAgICAg ICBQUl9EZXN0cm95TG9jayhwcnAtPnByX211dGV4KTsKLS0gICAgICAgICAgICBwcnAtPnByX211 dGV4ID0gTlVMTDsKLS0gICAgICAgIH0KLSAgICAgICAgIG1lbXNldChwcnAsICdcMCcsIHNpemVv ZihQYWdlZFJlc3VsdHMpKTsKLSAgICAgfQotICAgICBjb25uLT5jX3BhZ2VkcmVzdWx0cy5wcmxf Y291bnQgPSAwOwotQEAgLTg0MCwxMCArOTM5LDYgQEAgcGFnZWRyZXN1bHRzX2NsZWFudXBfYWxs KENvbm5lY3Rpb24gKmNvbm4sIGludCBuZWVkbG9jaykKLSAgICAgICAgICAgICAgICAgaSA8IGNv bm4tPmNfcGFnZWRyZXN1bHRzLnBybF9tYXhsZW47Ci0gICAgICAgICAgaSsrKSB7Ci0gICAgICAg ICBwcnAgPSBjb25uLT5jX3BhZ2VkcmVzdWx0cy5wcmxfbGlzdCArIGk7Ci0tICAgICAgICBpZiAo cHJwLT5wcl9tdXRleCkgewotLSAgICAgICAgICAgIFBSX0Rlc3Ryb3lMb2NrKHBycC0+cHJfbXV0 ZXgpOwotLSAgICAgICAgICAgIHBycC0+cHJfbXV0ZXggPSBOVUxMOwotLSAgICAgICAgfQotICAg ICAgICAgaWYgKHBycC0+cHJfY3VycmVudF9iZSAmJiBwcnAtPnByX3NlYXJjaF9yZXN1bHRfc2V0 ICYmCi0gICAgICAgICAgICAgcHJwLT5wcl9jdXJyZW50X2JlLT5iZV9zZWFyY2hfcmVzdWx0c19y ZWxlYXNlKSB7Ci0gICAgICAgICAgICAgcHJwLT5wcl9jdXJyZW50X2JlLT5iZV9zZWFyY2hfcmVz dWx0c19yZWxlYXNlKCYocHJwLT5wcl9zZWFyY2hfcmVzdWx0X3NldCkpOwotQEAgLTEwMTAsNDMg KzExMDUsOCBAQCBvcF9zZXRfcGFnZWRyZXN1bHRzKE9wZXJhdGlvbiAqb3ApCi0gICAgIG9wLT5v X2ZsYWdzIHw9IE9QX0ZMQUdfUEFHRURfUkVTVUxUUzsKLSB9Ci0gCi0tLyoKLS0gKiBwYWdlZHJl c3VsdHNfbG9jay91bmxvY2sgLS0gaW50cm9kdWNlZCB0byBwcm90ZWN0IHNlYXJjaCByZXN1bHRz IGZvciB0aGUKLS0gKiBhc3luY2hyb25vdXMgc2VhcmNoZXMuIERvIG5vdCBjYWxsIHRoZXNlIGZ1 bmN0aW9ucyB3aGlsZSB0aGUgUFIgY29ubiBsb2NrCi0tICogaXMgaGVsZCAoZS5nLiBwYWdlcmVz dWx0X2xvY2tfZ2V0X2FkZHIoY29ubikpCi0tICovCi0tdm9pZAotLXBhZ2VkcmVzdWx0c19sb2Nr KENvbm5lY3Rpb24gKmNvbm4sIGludCBpbmRleCkKLS17Ci0tICAgIFBhZ2VkUmVzdWx0cyAqcHJw OwotLSAgICBpZiAoIWNvbm4gfHwgKGluZGV4IDwgMCkgfHwgKGluZGV4ID49IGNvbm4tPmNfcGFn ZWRyZXN1bHRzLnBybF9tYXhsZW4pKSB7Ci0tICAgICAgICByZXR1cm47Ci0tICAgIH0KLS0gICAg cHRocmVhZF9tdXRleF9sb2NrKHBhZ2VyZXN1bHRfbG9ja19nZXRfYWRkcihjb25uKSk7Ci0tICAg IHBycCA9IGNvbm4tPmNfcGFnZWRyZXN1bHRzLnBybF9saXN0ICsgaW5kZXg7Ci0tICAgIGlmIChw cnAtPnByX211dGV4KSB7Ci0tICAgICAgICBQUl9Mb2NrKHBycC0+cHJfbXV0ZXgpOwotLSAgICB9 Ci0tICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKHBhZ2VyZXN1bHRfbG9ja19nZXRfYWRkcihjb25u KSk7Ci0tfQotLQotLXZvaWQKLS1wYWdlZHJlc3VsdHNfdW5sb2NrKENvbm5lY3Rpb24gKmNvbm4s IGludCBpbmRleCkKLS17Ci0tICAgIFBhZ2VkUmVzdWx0cyAqcHJwOwotLSAgICBpZiAoIWNvbm4g fHwgKGluZGV4IDwgMCkgfHwgKGluZGV4ID49IGNvbm4tPmNfcGFnZWRyZXN1bHRzLnBybF9tYXhs ZW4pKSB7Ci0tICAgICAgICByZXR1cm47Ci0tICAgIH0KLS0gICAgcHRocmVhZF9tdXRleF9sb2Nr KHBhZ2VyZXN1bHRfbG9ja19nZXRfYWRkcihjb25uKSk7Ci0tICAgIHBycCA9IGNvbm4tPmNfcGFn ZWRyZXN1bHRzLnBybF9saXN0ICsgaW5kZXg7Ci0tICAgIGlmIChwcnAtPnByX211dGV4KSB7Ci0t ICAgICAgICBQUl9VbmxvY2socHJwLT5wcl9tdXRleCk7Ci0tICAgIH0KLS0gICAgcHRocmVhZF9t dXRleF91bmxvY2socGFnZXJlc3VsdF9sb2NrX2dldF9hZGRyKGNvbm4pKTsKLS19Ci0tCi0gaW50 Ci0tcGFnZWRyZXN1bHRzX2lzX2FiYW5kb25lZF9vcl9ub3RhdmFpbGFibGUoQ29ubmVjdGlvbiAq Y29ubiwgaW50IGxvY2tlZCwgaW50IGluZGV4KQotK3BhZ2VkcmVzdWx0c19pc19hYmFuZG9uZWRf b3Jfbm90YXZhaWxhYmxlKENvbm5lY3Rpb24gKmNvbm4sIGJvb2wgbG9ja2VkLCBpbnQgaW5kZXgp Ci0gewotICAgICBQYWdlZFJlc3VsdHMgKnBycDsKLSAgICAgaW50MzJfdCByZXN1bHQ7Ci1AQCAt MTA2Niw3ICsxMTI2LDcgQEAgcGFnZWRyZXN1bHRzX2lzX2FiYW5kb25lZF9vcl9ub3RhdmFpbGFi bGUoQ29ubmVjdGlvbiAqY29ubiwgaW50IGxvY2tlZCwgaW50IGluZGUKLSB9Ci0gCi0gaW50Ci0t cGFnZWRyZXN1bHRzX3NldF9zZWFyY2hfcmVzdWx0X3BiKFNsYXBpX1BCbG9jayAqcGIsIHZvaWQg KnNyLCBpbnQgbG9ja2VkKQotK3BhZ2VkcmVzdWx0c19zZXRfc2VhcmNoX3Jlc3VsdF9wYihTbGFw aV9QQmxvY2sgKnBiLCB2b2lkICpzciwgYm9vbCBsb2NrZWQpCi0gewotICAgICBpbnQgcmMgPSAt MTsKLSAgICAgQ29ubmVjdGlvbiAqY29ubiA9IE5VTEw7Ci1kaWZmIC0tZ2l0IGEvbGRhcC9zZXJ2 ZXJzL3NsYXBkL3Byb3RvLXNsYXAuaCBiL2xkYXAvc2VydmVycy9zbGFwZC9wcm90by1zbGFwLmgK LWluZGV4IDc2NWMxMmJmNS4uNDU1ZDZkNzE4IDEwMDY0NAotLS0tIGEvbGRhcC9zZXJ2ZXJzL3Ns YXBkL3Byb3RvLXNsYXAuaAotKysrIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL3Byb3RvLXNsYXAuaAot QEAgLTE2MTQsMjAgKzE2MTQsMjIgQEAgcHRocmVhZF9tdXRleF90ICpwYWdlcmVzdWx0X2xvY2tf Z2V0X2FkZHIoQ29ubmVjdGlvbiAqY29ubik7Ci0gaW50IHBhZ2VkcmVzdWx0c19wYXJzZV9jb250 cm9sX3ZhbHVlKFNsYXBpX1BCbG9jayAqcGIsIHN0cnVjdCBiZXJ2YWwgKnBzYnZwLCBiZXJfaW50 X3QgKnBhZ2VzaXplLCBpbnQgKmluZGV4LCBTbGFwaV9CYWNrZW5kICpiZSk7Ci0gdm9pZCBwYWdl ZHJlc3VsdHNfc2V0X3Jlc3BvbnNlX2NvbnRyb2woU2xhcGlfUEJsb2NrICpwYiwgaW50IGlzY3Jp dGljYWwsIGJlcl9pbnRfdCBlc3RpbWF0ZSwgaW50IGN1cnJfc2VhcmNoX2NvdW50LCBpbnQgaW5k ZXgpOwotIFNsYXBpX0JhY2tlbmQgKnBhZ2VkcmVzdWx0c19nZXRfY3VycmVudF9iZShDb25uZWN0 aW9uICpjb25uLCBpbnQgaW5kZXgpOwotLWludCBwYWdlZHJlc3VsdHNfc2V0X2N1cnJlbnRfYmUo Q29ubmVjdGlvbiAqY29ubiwgU2xhcGlfQmFja2VuZCAqYmUsIGludCBpbmRleCwgaW50IG5vbG9j ayk7Ci0tdm9pZCAqcGFnZWRyZXN1bHRzX2dldF9zZWFyY2hfcmVzdWx0KENvbm5lY3Rpb24gKmNv bm4sIE9wZXJhdGlvbiAqb3AsIGludCBsb2NrZWQsIGludCBpbmRleCk7Ci0taW50IHBhZ2VkcmVz dWx0c19zZXRfc2VhcmNoX3Jlc3VsdChDb25uZWN0aW9uICpjb25uLCBPcGVyYXRpb24gKm9wLCB2 b2lkICpzciwgaW50IGxvY2tlZCwgaW50IGluZGV4KTsKLS1pbnQgcGFnZWRyZXN1bHRzX2dldF9z ZWFyY2hfcmVzdWx0X2NvdW50KENvbm5lY3Rpb24gKmNvbm4sIE9wZXJhdGlvbiAqb3AsIGludCBp bmRleCk7Ci0taW50IHBhZ2VkcmVzdWx0c19zZXRfc2VhcmNoX3Jlc3VsdF9jb3VudChDb25uZWN0 aW9uICpjb25uLCBPcGVyYXRpb24gKm9wLCBpbnQgY250LCBpbnQgaW5kZXgpOwotK2ludCBwYWdl ZHJlc3VsdHNfc2V0X2N1cnJlbnRfYmUoQ29ubmVjdGlvbiAqY29ubiwgU2xhcGlfQmFja2VuZCAq YmUsIGludCBpbmRleCwgYm9vbCBsb2NrZWQpOwotK3ZvaWQgKnBhZ2VkcmVzdWx0c19nZXRfc2Vh cmNoX3Jlc3VsdChDb25uZWN0aW9uICpjb25uLCBPcGVyYXRpb24gKm9wLCBib29sIGxvY2tlZCwg aW50IGluZGV4KTsKLStpbnQgcGFnZWRyZXN1bHRzX3NldF9zZWFyY2hfcmVzdWx0KENvbm5lY3Rp b24gKmNvbm4sIE9wZXJhdGlvbiAqb3AsIHZvaWQgKnNyLCBib29sIGxvY2tlZCwgaW50IGluZGV4 KTsKLStpbnQgcGFnZWRyZXN1bHRzX2dldF9zZWFyY2hfcmVzdWx0X2NvdW50KENvbm5lY3Rpb24g KmNvbm4sIE9wZXJhdGlvbiAqb3AsIGJvb2wgbG9ja2VkLCBpbnQgaW5kZXgpOwotK2ludCBwYWdl ZHJlc3VsdHNfc2V0X3NlYXJjaF9yZXN1bHRfY291bnQoQ29ubmVjdGlvbiAqY29ubiwgT3BlcmF0 aW9uICpvcCwgaW50IGNudCwgYm9vbCBsb2NrZWQsIGludCBpbmRleCk7Ci0gaW50IHBhZ2VkcmVz dWx0c19nZXRfc2VhcmNoX3Jlc3VsdF9zZXRfc2l6ZV9lc3RpbWF0ZShDb25uZWN0aW9uICpjb25u LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg T3BlcmF0aW9uICpvcCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGJvb2wgbG9ja2VkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW50IGluZGV4KTsKLSBpbnQgcGFnZWRyZXN1bHRzX3Nl dF9zZWFyY2hfcmVzdWx0X3NldF9zaXplX2VzdGltYXRlKENvbm5lY3Rpb24gKmNvbm4sCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPcGVyYXRp b24gKm9wLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaW50IGNudCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGJvb2wgbG9ja2VkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW50IGluZGV4KTsKLS1pbnQgcGFnZWRyZXN1bHRzX2dl dF93aXRoX3NvcnQoQ29ubmVjdGlvbiAqY29ubiwgT3BlcmF0aW9uICpvcCwgaW50IGluZGV4KTsK LS1pbnQgcGFnZWRyZXN1bHRzX3NldF93aXRoX3NvcnQoQ29ubmVjdGlvbiAqY29ubiwgT3BlcmF0 aW9uICpvcCwgaW50IGZsYWdzLCBpbnQgaW5kZXgpOwotK2ludCBwYWdlZHJlc3VsdHNfZ2V0X3dp dGhfc29ydChDb25uZWN0aW9uICpjb25uLCBPcGVyYXRpb24gKm9wLCBib29sIGxvY2tlZCwgaW50 IGluZGV4KTsKLStpbnQgcGFnZWRyZXN1bHRzX3NldF93aXRoX3NvcnQoQ29ubmVjdGlvbiAqY29u biwgT3BlcmF0aW9uICpvcCwgaW50IGZsYWdzLCBib29sIGxvY2tlZCwgaW50IGluZGV4KTsKLSBp bnQgcGFnZWRyZXN1bHRzX2dldF91bmluZGV4ZWQoQ29ubmVjdGlvbiAqY29ubiwgT3BlcmF0aW9u ICpvcCwgaW50IGluZGV4KTsKLSBpbnQgcGFnZWRyZXN1bHRzX3NldF91bmluZGV4ZWQoQ29ubmVj dGlvbiAqY29ubiwgT3BlcmF0aW9uICpvcCwgaW50IGluZGV4KTsKLSBpbnQgcGFnZWRyZXN1bHRz X2dldF9zb3J0X3Jlc3VsdF9jb2RlKENvbm5lY3Rpb24gKmNvbm4sIE9wZXJhdGlvbiAqb3AsIGlu dCBpbmRleCk7Ci1AQCAtMTYzOSwxNSArMTY0MSwxMyBAQCBpbnQgcGFnZWRyZXN1bHRzX2NsZWFu dXAoQ29ubmVjdGlvbiAqY29ubiwgaW50IG5lZWRsb2NrKTsKLSBpbnQgcGFnZWRyZXN1bHRzX2lz X3RpbWVkb3V0X25vbG9jayhDb25uZWN0aW9uICpjb25uKTsKLSBpbnQgcGFnZWRyZXN1bHRzX3Jl c2V0X3RpbWVkb3V0X25vbG9jayhDb25uZWN0aW9uICpjb25uKTsKLSBpbnQgcGFnZWRyZXN1bHRz X2luX3VzZV9ub2xvY2soQ29ubmVjdGlvbiAqY29ubik7Ci0taW50IHBhZ2VkcmVzdWx0c19mcmVl X29uZShDb25uZWN0aW9uICpjb25uLCBPcGVyYXRpb24gKm9wLCBpbnQgaW5kZXgpOwotLWludCBw YWdlZHJlc3VsdHNfZnJlZV9vbmVfbXNnaWQoQ29ubmVjdGlvbiAqY29ubiwgYmVyX2ludF90IG1z Z2lkLCBwdGhyZWFkX211dGV4X3QgKm11dGV4KTsKLStpbnQgcGFnZWRyZXN1bHRzX2ZyZWVfb25l KENvbm5lY3Rpb24gKmNvbm4sIE9wZXJhdGlvbiAqb3AsIGJvb2wgbG9ja2VkLCBpbnQgaW5kZXgp OwotK2ludCBwYWdlZHJlc3VsdHNfZnJlZV9vbmVfbXNnaWQoQ29ubmVjdGlvbiAqY29ubiwgYmVy X2ludF90IG1zZ2lkLCBib29sIGxvY2tlZCk7Ci0gaW50IG9wX2lzX3BhZ2VkcmVzdWx0cyhPcGVy YXRpb24gKm9wKTsKLSBpbnQgcGFnZWRyZXN1bHRzX2NsZWFudXBfYWxsKENvbm5lY3Rpb24gKmNv bm4sIGludCBuZWVkbG9jayk7Ci0gdm9pZCBvcF9zZXRfcGFnZWRyZXN1bHRzKE9wZXJhdGlvbiAq b3ApOwotLXZvaWQgcGFnZWRyZXN1bHRzX2xvY2soQ29ubmVjdGlvbiAqY29ubiwgaW50IGluZGV4 KTsKLS12b2lkIHBhZ2VkcmVzdWx0c191bmxvY2soQ29ubmVjdGlvbiAqY29ubiwgaW50IGluZGV4 KTsKLS1pbnQgcGFnZWRyZXN1bHRzX2lzX2FiYW5kb25lZF9vcl9ub3RhdmFpbGFibGUoQ29ubmVj dGlvbiAqY29ubiwgaW50IGxvY2tlZCwgaW50IGluZGV4KTsKLS1pbnQgcGFnZWRyZXN1bHRzX3Nl dF9zZWFyY2hfcmVzdWx0X3BiKFNsYXBpX1BCbG9jayAqcGIsIHZvaWQgKnNyLCBpbnQgbG9ja2Vk KTsKLStpbnQgcGFnZWRyZXN1bHRzX2lzX2FiYW5kb25lZF9vcl9ub3RhdmFpbGFibGUoQ29ubmVj dGlvbiAqY29ubiwgYm9vbCBsb2NrZWQsIGludCBpbmRleCk7Ci0raW50IHBhZ2VkcmVzdWx0c19z ZXRfc2VhcmNoX3Jlc3VsdF9wYihTbGFwaV9QQmxvY2sgKnBiLCB2b2lkICpzciwgYm9vbCBsb2Nr ZWQpOwotIAotIC8qCi0gICogc29ydC5jCi1kaWZmIC0tZ2l0IGEvbGRhcC9zZXJ2ZXJzL3NsYXBk L3NsYXAuaCBiL2xkYXAvc2VydmVycy9zbGFwZC9zbGFwLmgKLWluZGV4IDExYzU2MDJlMy4uZDQ5 NDkzMWMyIDEwMDY0NAotLS0tIGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL3NsYXAuaAotKysrIGIvbGRh cC9zZXJ2ZXJzL3NsYXBkL3NsYXAuaAotQEAgLTg5LDYgKzg5LDEwIEBAIHN0YXRpYyBjaGFyIHB0 b2tQQkVbMzRdID0gIkludGVybmFsIChTb2Z0d2FyZSkgVG9rZW4gICAgICAgICI7Ci0gI2luY2x1 ZGUgPHN0ZGJvb2wuaD4KLSAjaW5jbHVkZSA8dGltZS5oPiAvKiBGb3IgdGltZXNwZWMgZGVmaW5p dGlvbnMgKi8KLSAKLSsvKiBNYWNyb3MgZm9yIHBhZ2VkIHJlc3VsdHMgbG9jayBwYXJhbWV0ZXIg Ki8KLSsjZGVmaW5lIFBSX0xPQ0tFRCB0cnVlCi0rI2RlZmluZSBQUl9OT1RfTE9DS0VEIGZhbHNl Ci0rCi0gLyogUHJvdmlkZXMgb3VyIGludCB0eXBlcyBhbmQgcGxhdGZvcm0gc3BlY2lmaWMgcmVx dWlyZW1lbnRzLiAqLwotICNpbmNsdWRlIDxzbGFwaV9wYWwuaD4KLSAKLUBAIC0xNjY5LDcgKzE2 NzMsNiBAQCB0eXBlZGVmIHN0cnVjdCBfcGFnZWRfcmVzdWx0cwotICAgICBzdHJ1Y3QgdGltZXNw ZWMgcHJfdGltZWxpbWl0X2hyOyAgICAgICAgLyogZXhwaXJ5IHRpbWUgb2YgdGhpcyByZXF1ZXN0 IHJlbCB0byBjbG9jayBtb25vdG9uaWMgKi8KLSAgICAgaW50IHByX2ZsYWdzOwotICAgICBiZXJf aW50X3QgcHJfbXNnaWQ7IC8qIG1zZ2lkIG9mIHRoZSByZXF1ZXN0OyB0byBhYmFuZG9uICovCi0t ICAgIFBSTG9jayAqcHJfbXV0ZXg7ICAgLyogcHJvdGVjdCBlYWNoIGNvbm4gc3RydWN0dXJlICAg ICovCi0gfSBQYWdlZFJlc3VsdHM7Ci0gCi0gLyogYXJyYXkgb2Ygc2ltcGxlIHBhZ2VkIHN0cnVj dHVyZSBzdGFzaGVkIGluIGNvbm5lY3Rpb24gKi8KLS0tIAotMi41Mi4wCi0KCmRpZmYgLS1naXQg YS8wMDAzLUlzc3VlLTcxMDgtRml4LXNodXRkb3duLWNyYXNoLWluLWVudHJ5LWNhY2hlLWRlc3Ry dWMucGF0Y2ggYi8wMDAzLUlzc3VlLTcxMDgtRml4LXNodXRkb3duLWNyYXNoLWluLWVudHJ5LWNh Y2hlLWRlc3RydWMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJiMjEyN2Mu LjAwMDAwMDAKLS0tIGEvMDAwMy1Jc3N1ZS03MTA4LUZpeC1zaHV0ZG93bi1jcmFzaC1pbi1lbnRy eS1jYWNoZS1kZXN0cnVjLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTgzICswLDAgQEAKLUZy b20gNDkzNmY5NTNmYTNiMDcyNmMyYjE3OGYxMzVjZDc4ZGNhYzc0NjNiYSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKLUZyb206IFNpbW9uIFBpY2h1Z2luIDxzcGljaHVnaUByZWRoYXQuY29tPgot RGF0ZTogVGh1LCA4IEphbiAyMDI2IDEwOjAyOjM5IC0wODAwCi1TdWJqZWN0OiBbUEFUQ0hdIElz c3VlIDcxMDggLSBGaXggc2h1dGRvd24gY3Jhc2ggaW4gZW50cnkgY2FjaGUgZGVzdHJ1Y3Rpb24K LSAoIzcxNjMpCi0KLURlc2NyaXB0aW9uOiBUaGUgZW50cnkgY2FjaGUgY291bGQgZXhwZXJpZW5j ZSBMUlUgbGlzdCBjb3JydXB0aW9uIHdoZW4KLXVzaW5nIHBpbm5lZCBlbnRyaWVzLCBsZWFkaW5n IHRvIGNyYXNoZXMgZHVyaW5nIGNhY2hlIGZsdXNoIG9wZXJhdGlvbnMuCi0KLUluIGVudHJ5Y2Fj aGVfYWRkX2ludCgpLCB3aGVuIHJldHVybmluZyBhbiBleGlzdGluZyBjYWNoZWQgZW50cnksIHRo ZQotY29kZSBjaGVja2VkIHRoZSB3cm9uZyBlbnRyeSdzIHN0YXRlIGJlZm9yZSBjYWxsaW5nIGxy dV9kZWxldGUoKS4gSXQKLWNoZWNrZWQgdGhlIG5ldyBlbnRyeSAnZScgYnV0IG9wZXJhdGVkIG9u IHRoZSBleGlzdGluZyBlbnRyeSAnbXlfYWx0JywKLWNhdXNpbmcgbHJ1X2RlbGV0ZSgpIHRvIGJl IGNhbGxlZCBvbiBlbnRyaWVzIG5vdCBpbiB0aGUgTFJVIGxpc3QuIFRoaXMKLWlzIGZpeGVkIGJ5 IGNoZWNraW5nIG15X2FsdCdzIHJlZmNudCBhbmQgcGlubmVkIHN0YXRlIGluc3RlYWQuCi0KLUlu IGZsdXNoX2hhc2goKSwgcGlubmVkX3JlbW92ZSgpIGFuZCBscnVfZGVsZXRlKCkgd2VyZSBib3Ro IGNhbGxlZCBvbgotcGlubmVkIGVudHJpZXMuIFNpbmNlIHBpbm5lZCBlbnRyaWVzIGFyZSBpbiB0 aGUgcGlubmVkIGxpc3QsIGNhbGxpbmcKLWxydV9kZWxldGUoKSBhZnRlcndhcmRzIGNvcnJ1cHRl ZCB0aGUgbGlzdC4gVGhpcyBpcyBmaXhlZCBieSBjYWxsaW5nCi1laXRoZXIgcGlubmVkX3JlbW92 ZSgpIG9yIGxydV9kZWxldGUoKSBiYXNlZCBvbiB0aGUgZW50cnkncyBzdGF0ZS4KLQotQSBOVUxM IGNoZWNrIGlzIGFkZGVkIGluIGVudHJ5Y2FjaGVfZmx1c2goKSBhbmQgZG5jYWNoZV9mbHVzaCgp IHRvCi1ncmFjZWZ1bGx5IGhhbmRsZSBjb3JydXB0ZWQgTFJVIGxpc3RzIGFuZCBwcmV2ZW50IGNy YXNoZXMgd2hlbgotdHJhdmVyc2luZyBiYWNrd2FyZHMgdGhyb3VnaCB0aGUgbGlzdCBlbmNvdW50 ZXJzIGFuIHVuZXhwZWN0ZWQgTlVMTC4KLQotRW50cnkgcG9pbnRlcnMgYXJlIG5vdyBhbHdheXMg Y2xlYXJlZCBhZnRlciBscnVfZGVsZXRlKCkgcmVtb3ZhbCB0bwotcHJldmVudCBzdGFsZSBwb2lu dGVyIGlzc3VlcyBpbiBub24tZGVidWcgYnVpbGRzLgotCi1GaXhlczogaHR0cHM6Ly9naXRodWIu Y29tLzM4OWRzLzM4OS1kcy1iYXNlL2lzc3Vlcy83MTA4Ci0KLVJldmlld2VkIGJ5OiBAcHJvZ2ll cjM4OSwgQHZhc2hpcm92IChUaGFua3MhISkKLS0tLQotIGxkYXAvc2VydmVycy9zbGFwZC9iYWNr LWxkYm0vY2FjaGUuYyB8IDQ4ICsrKysrKysrKysrKysrKysrKysrKysrKystLS0KLSAxIGZpbGUg Y2hhbmdlZCwgNDMgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBh L2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vY2FjaGUuYyBiL2xkYXAvc2VydmVycy9zbGFw ZC9iYWNrLWxkYm0vY2FjaGUuYwotaW5kZXggMmU0MTI2MTM0Li5hODdmMzA2ODcgMTAwNjQ0Ci0t LS0gYS9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2NhY2hlLmMKLSsrKyBiL2xkYXAvc2Vy dmVycy9zbGFwZC9iYWNrLWxkYm0vY2FjaGUuYwotQEAgLTQ1OCwxMSArNDU4LDEzIEBAIHN0YXRp YyB2b2lkCi0gbHJ1X2RlbGV0ZShzdHJ1Y3QgY2FjaGUgKmNhY2hlLCB2b2lkICpwdHIpCi0gewot ICAgICBzdHJ1Y3QgYmFja2NvbW1vbiAqZTsKLSsKLSAgICAgaWYgKE5VTEwgPT0gcHRyKSB7Ci0g ICAgICAgICBMT0coIj0+IGxydV9kZWxldGVcbjw9IGxydV9kZWxldGUgKG51bGwgZW50cnkpXG4i KTsKLSAgICAgICAgIHJldHVybjsKLSAgICAgfQotICAgICBlID0gKHN0cnVjdCBiYWNrY29tbW9u ICopcHRyOwotKwotICNpZmRlZiBMREFQX0NBQ0hFX0RFQlVHX0xSVQotICAgICBwaW5uZWRfdmVy aWZ5KGNhY2hlLCBfX0xJTkVfXyk7Ci0gICAgIGxydV92ZXJpZnkoY2FjaGUsIGUsIDEpOwotQEAg LTQ3NSw4ICs0NzcsOSBAQCBscnVfZGVsZXRlKHN0cnVjdCBjYWNoZSAqY2FjaGUsIHZvaWQgKnB0 cikKLSAgICAgICAgIGUtPmVwX2xydW5leHQtPmVwX2xydXByZXYgPSBlLT5lcF9scnVwcmV2Owot ICAgICBlbHNlCi0gICAgICAgICBjYWNoZS0+Y19scnV0YWlsID0gZS0+ZXBfbHJ1cHJldjsKLS0j aWZkZWYgTERBUF9DQUNIRV9ERUJVR19MUlUKLSsgICAgLyogQWx3YXlzIGNsZWFyIHBvaW50ZXJz IGFmdGVyIHJlbW92YWwgdG8gcHJldmVudCBzdGFsZSBwb2ludGVyIGlzc3VlcyAqLwotICAgICBl LT5lcF9scnVuZXh0ID0gZS0+ZXBfbHJ1cHJldiA9IE5VTEw7Ci0rI2lmZGVmIExEQVBfQ0FDSEVf REVCVUdfTFJVCi0gICAgIGxydV92ZXJpZnkoY2FjaGUsIGUsIDApOwotICNlbmRpZgotIH0KLUBA IC02MzMsOSArNjM2LDE0IEBAIGZsdXNoX2hhc2goc3RydWN0IGNhY2hlICpjYWNoZSwgc3RydWN0 IHRpbWVzcGVjICpzdGFydF90aW1lLCBpbnQzMl90IHR5cGUpCi0gICAgICAgICAgICAgICAgIGlm IChlbnRyeS0+ZXBfcmVmY250ID09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgIGVudHJ5LT5l cF9yZWZjbnQrKzsKLSAgICAgICAgICAgICAgICAgICAgIGlmIChlbnRyeS0+ZXBfc3RhdGUgJiBF TlRSWV9TVEFURV9QSU5ORUQpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAvKiBFbnRyeSBp cyBpbiBwaW5uZWQgbGlzdCwgbm90IExSVSAtIHJlbW92ZSBmcm9tIHBpbm5lZCBvbmx5LgotKyAg ICAgICAgICAgICAgICAgICAgICAgICAqIHBpbm5lZF9yZW1vdmUgY2xlYXJzIGxydSBwb2ludGVy cyBhbmQgd29uJ3QgYWRkIHRvIExSVSBzaW5jZSByZWZjbnQgPiAwLgotKyAgICAgICAgICAgICAg ICAgICAgICAgICAqLwotICAgICAgICAgICAgICAgICAgICAgICAgIHBpbm5lZF9yZW1vdmUoY2Fj aGUsIGxhc3RlKTsKLSsgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgLyogRW50cnkgaXMgaW4gTFJVIGxpc3QgLSByZW1vdmUgZnJvbSBMUlUgKi8K LSsgICAgICAgICAgICAgICAgICAgICAgICBscnVfZGVsZXRlKGNhY2hlLCBsYXN0ZSk7Ci0gICAg ICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICBscnVfZGVsZXRlKGNhY2hl LCBsYXN0ZSk7Ci0gICAgICAgICAgICAgICAgICAgICBpZiAodHlwZSA9PSBFTlRSWV9DQUNIRSkg ewotICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5Y2FjaGVfcmVtb3ZlX2ludChjYWNoZSwg bGFzdGUpOwotICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5Y2FjaGVfcmV0dXJuKGNhY2hl LCAoc3RydWN0IGJhY2tlbnRyeSAqKikmbGFzdGUsIFBSX1RSVUUpOwotQEAgLTY3OSw5ICs2ODcs MTQgQEAgZmx1c2hfaGFzaChzdHJ1Y3QgY2FjaGUgKmNhY2hlLCBzdHJ1Y3QgdGltZXNwZWMgKnN0 YXJ0X3RpbWUsIGludDMyX3QgdHlwZSkKLSAgICAgICAgICAgICAgICAgICAgIGlmIChlbnRyeS0+ ZXBfcmVmY250ID09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeS0+ZXBfcmVm Y250Kys7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVudHJ5LT5lcF9zdGF0ZSAmIEVO VFJZX1NUQVRFX1BJTk5FRCkgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBFbnRy eSBpcyBpbiBwaW5uZWQgbGlzdCwgbm90IExSVSAtIHJlbW92ZSBmcm9tIHBpbm5lZCBvbmx5Lgot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBwaW5uZWRfcmVtb3ZlIGNsZWFycyBscnUg cG9pbnRlcnMgYW5kIHdvbid0IGFkZCB0byBMUlUgc2luY2UgcmVmY250ID4gMC4KLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICovCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBp bm5lZF9yZW1vdmUoY2FjaGUsIGxhc3RlKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICB9IGVs c2UgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBFbnRyeSBpcyBpbiBMUlUgbGlz dCAtIHJlbW92ZSBmcm9tIExSVSAqLwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBscnVf ZGVsZXRlKGNhY2hlLCBsYXN0ZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAg ICAgICAgICAgICAgICAgICAgIGxydV9kZWxldGUoY2FjaGUsIGxhc3RlKTsKLSAgICAgICAgICAg ICAgICAgICAgICAgICBlbnRyeWNhY2hlX3JlbW92ZV9pbnQoY2FjaGUsIGxhc3RlKTsKLSAgICAg ICAgICAgICAgICAgICAgICAgICBlbnRyeWNhY2hlX3JldHVybihjYWNoZSwgKHN0cnVjdCBiYWNr ZW50cnkgKiopJmxhc3RlLCBQUl9UUlVFKTsKLSAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7 Ci1AQCAtNzcyLDYgKzc4NSwxMSBAQCBlbnRyeWNhY2hlX2ZsdXNoKHN0cnVjdCBjYWNoZSAqY2Fj aGUpCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgIGUgPSBCQUNLX0xSVV9QUkVWKGUs IHN0cnVjdCBiYWNrZW50cnkgKik7Ci0gICAgICAgICB9Ci0rICAgICAgICBpZiAoZSA9PSBOVUxM KSB7Ci0rICAgICAgICAgICAgc2xhcGlfbG9nX2VycihTTEFQSV9MT0dfV0FSTklORywgImVudHJ5 Y2FjaGVfZmx1c2giLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlVuZXhwZWN0ZWQgTlVM TCBlbnRyeSB3aGlsZSBmbHVzaGluZyBjYWNoZSAtIExSVSBsaXN0IG1heSBiZSBjb3JydXB0ZWRc biIpOwotKyAgICAgICAgICAgIGJyZWFrOwotKyAgICAgICAgfQotICAgICAgICAgQVNTRVJUKGUt PmVwX3JlZmNudCA9PSAwKTsKLSAgICAgICAgIGUtPmVwX3JlZmNudCsrOwotICAgICAgICAgaWYg KGVudHJ5Y2FjaGVfcmVtb3ZlX2ludChjYWNoZSwgZSkgPCAwKSB7Ci1AQCAtMTE2MCw2ICsxMTc4 LDcgQEAgcGlubmVkX3JlbW92ZShzdHJ1Y3QgY2FjaGUgKmNhY2hlLCB2b2lkICpwdHIpCi0gewot ICAgICBzdHJ1Y3QgYmFja2VudHJ5ICplID0gKHN0cnVjdCBiYWNrZW50cnkgKilwdHI7Ci0gICAg IEFTU0VSVChlLT5lcF9zdGF0ZSAmIEVOVFJZX1NUQVRFX1BJTk5FRCk7Ci0rCi0gICAgIGNhY2hl LT5jX3Bpbm5lZF9jdHgtPm5waW5uZWQtLTsKLSAgICAgY2FjaGUtPmNfcGlubmVkX2N0eC0+c2l6 ZSAtPSBlLT5lcF9zaXplOwotICAgICBlLT5lcF9zdGF0ZSAmPSB+RU5UUllfU1RBVEVfUElOTkVE OwotQEAgLTExNzIsMTMgKzExOTEsMjMgQEAgcGlubmVkX3JlbW92ZShzdHJ1Y3QgY2FjaGUgKmNh Y2hlLCB2b2lkICpwdHIpCi0gICAgICAgICAgICAgY2FjaGUtPmNfcGlubmVkX2N0eC0+aGVhZCA9 IGNhY2hlLT5jX3Bpbm5lZF9jdHgtPnRhaWwgPSBOVUxMOwotICAgICAgICAgfSBlbHNlIHsKLSAg ICAgICAgICAgICBjYWNoZS0+Y19waW5uZWRfY3R4LT5oZWFkID0gQkFDS19MUlVfTkVYVChlLCBz dHJ1Y3QgYmFja2VudHJ5ICopOwotKyAgICAgICAgICAgIC8qIFVwZGF0ZSBuZXcgaGVhZCdzIHBy ZXYgcG9pbnRlciB0byBOVUxMICovCi0rICAgICAgICAgICAgaWYgKGNhY2hlLT5jX3Bpbm5lZF9j dHgtPmhlYWQpIHsKLSsgICAgICAgICAgICAgICAgY2FjaGUtPmNfcGlubmVkX2N0eC0+aGVhZC0+ ZXBfbHJ1cHJldiA9IE5VTEw7Ci0rICAgICAgICAgICAgfQotICAgICAgICAgfQotICAgICB9IGVs c2UgaWYgKGNhY2hlLT5jX3Bpbm5lZF9jdHgtPnRhaWwgPT0gZSkgewotICAgICAgICAgY2FjaGUt PmNfcGlubmVkX2N0eC0+dGFpbCA9IEJBQ0tfTFJVX1BSRVYoZSwgc3RydWN0IGJhY2tlbnRyeSAq KTsKLSsgICAgICAgIC8qIFVwZGF0ZSBuZXcgdGFpbCdzIG5leHQgcG9pbnRlciB0byBOVUxMICov Ci0rICAgICAgICBpZiAoY2FjaGUtPmNfcGlubmVkX2N0eC0+dGFpbCkgewotKyAgICAgICAgICAg IGNhY2hlLT5jX3Bpbm5lZF9jdHgtPnRhaWwtPmVwX2xydW5leHQgPSBOVUxMOwotKyAgICAgICAg fQotICAgICB9IGVsc2UgewotKyAgICAgICAgLyogTWlkZGxlIG9mIGxpc3Q6IHVwZGF0ZSBib3Ro IG5laWdoYm9ycyB0byBwb2ludCB0byBlYWNoIG90aGVyICovCi0gICAgICAgICBCQUNLX0xSVV9Q UkVWKGUsIHN0cnVjdCBiYWNrZW50cnkgKiktPmVwX2xydW5leHQgPSBCQUNLX0xSVV9ORVhUKGUs IHN0cnVjdCBiYWNrY29tbW9uICopOwotICAgICAgICAgQkFDS19MUlVfTkVYVChlLCBzdHJ1Y3Qg YmFja2VudHJ5ICopLT5lcF9scnVwcmV2ID0gQkFDS19MUlVfUFJFVihlLCBzdHJ1Y3QgYmFja2Nv bW1vbiAqKTsKLSAgICAgfQotKyAgICAvKiBDbGVhciB0aGUgcmVtb3ZlZCBlbnRyeSdzIHBvaW50 ZXJzICovCi0gICAgIGUtPmVwX2xydW5leHQgPSBlLT5lcF9scnVwcmV2ID0gTlVMTDsKLSAgICAg aWYgKGUtPmVwX3JlZmNudCA9PSAwKSB7Ci0gICAgICAgICBscnVfYWRkKGNhY2hlLCBwdHIpOwot QEAgLTEyNDUsNiArMTI3NCw3IEBAIHBpbm5lZF9hZGQoc3RydWN0IGNhY2hlICpjYWNoZSwgdm9p ZCAqcHRyKQotICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgfQotICAgICAvKiBOb3cg aXQgaXMgdGltZSB0byBpbnNlcnQgdGhlIGVudHJ5IGluIHRoZSBwaW5uZWQgbGlzdCAqLwotKwot ICAgICBjYWNoZS0+Y19waW5uZWRfY3R4LT5ucGlubmVkKys7Ci0gICAgIGNhY2hlLT5jX3Bpbm5l ZF9jdHgtPnNpemUgKz0gZS0+ZXBfc2l6ZTsKLSAgICAgZS0+ZXBfc3RhdGUgfD0gRU5UUllfU1RB VEVfUElOTkVEOwotQEAgLTE3NTQsNyArMTc4NCw3IEBAIGVudHJ5Y2FjaGVfYWRkX2ludChzdHJ1 Y3QgY2FjaGUgKmNhY2hlLCBzdHJ1Y3QgYmFja2VudHJ5ICplLCBpbnQgc3RhdGUsIHN0cnVjdCBi Ci0gICAgICAgICAgICAgICAgICAqIDMpIGVwX3N0YXRlOiAwICYmIHN0YXRlOiAwCi0gICAgICAg ICAgICAgICAgICAqICAgID09PiBpbmNyZWFzZSB0aGUgcmVmY250Ci0gICAgICAgICAgICAgICAg ICAqLwotLSAgICAgICAgICAgICAgICBpZiAoZS0+ZXBfcmVmY250ID09IDApCi0rICAgICAgICAg ICAgICAgIGlmIChlLT5lcF9yZWZjbnQgPT0gMCAmJiAoZS0+ZXBfc3RhdGUgJiBFTlRSWV9TVEFU RV9QSU5ORUQpID09IDApCi0gICAgICAgICAgICAgICAgICAgICBscnVfZGVsZXRlKGNhY2hlLCAo dm9pZCAqKWUpOwotICAgICAgICAgICAgICAgICBlLT5lcF9yZWZjbnQrKzsKLSAgICAgICAgICAg ICAgICAgZS0+ZXBfc3RhdGUgJj0gfkVOVFJZX1NUQVRFX1VOQVZBSUxBQkxFOwotQEAgLTE3ODEs NyArMTgxMSw3IEBAIGVudHJ5Y2FjaGVfYWRkX2ludChzdHJ1Y3QgY2FjaGUgKmNhY2hlLCBzdHJ1 Y3QgYmFja2VudHJ5ICplLCBpbnQgc3RhdGUsIHN0cnVjdCBiCi0gICAgICAgICAgICAgfSBlbHNl IHsKLSAgICAgICAgICAgICAgICAgaWYgKGFsdCkgewotICAgICAgICAgICAgICAgICAgICAgKmFs dCA9IG15X2FsdDsKLS0gICAgICAgICAgICAgICAgICAgIGlmIChlLT5lcF9yZWZjbnQgPT0gMCAm JiAoZS0+ZXBfc3RhdGUgJiBFTlRSWV9TVEFURV9QSU5ORUQpID09IDApCi0rICAgICAgICAgICAg ICAgICAgICBpZiAobXlfYWx0LT5lcF9yZWZjbnQgPT0gMCAmJiAobXlfYWx0LT5lcF9zdGF0ZSAm IEVOVFJZX1NUQVRFX1BJTk5FRCkgPT0gMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICBscnVf ZGVsZXRlKGNhY2hlLCAodm9pZCAqKSphbHQpOwotICAgICAgICAgICAgICAgICAgICAgKCphbHQp LT5lcF9yZWZjbnQrKzsKLSAgICAgICAgICAgICAgICAgICAgIExPRygidGhlIGVudHJ5ICVzIGFs cmVhZHkgZXhpc3RzLiAgcmV0dXJuaW5nIGV4aXN0aW5nIGVudHJ5ICVzIChzdGF0ZTogMHgleClc biIsCi1AQCAtMjM3OSw2ICsyNDA5LDE0IEBAIGRuY2FjaGVfZmx1c2goc3RydWN0IGNhY2hlICpj YWNoZSkKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgZG4gPSBCQUNLX0xSVV9QUkVW KGRuLCBzdHJ1Y3QgYmFja2RuICopOwotICAgICAgICAgfQotKyAgICAgICAgaWYgKGRuID09IE5V TEwpIHsKLSsgICAgICAgICAgICAvKiBTYWZldHkgY2hlY2s6IHdlIHNob3VsZCBub3JtYWxseSBl eGl0IHZpYSB0aGUgQ0FDSEVfTFJVX0hFQUQgY2hlY2suCi0rICAgICAgICAgICAgICogSWYgd2Ug Z2V0IGhlcmUsIGNfbHJ1aGVhZCBtYXkgYmUgTlVMTCBvciB0aGUgTFJVIGxpc3QgaXMgY29ycnVw dGVkLgotKyAgICAgICAgICAgICAqLwotKyAgICAgICAgICAgIHNsYXBpX2xvZ19lcnIoU0xBUElf TE9HX1dBUk5JTkcsICJkbmNhY2hlX2ZsdXNoIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICJVbmV4cGVjdGVkIE5VTEwgZW50cnkgd2hpbGUgZmx1c2hpbmcgY2FjaGUgLSBMUlUgbGlzdCBt YXkgYmUgY29ycnVwdGVkXG4iKTsKLSsgICAgICAgICAgICBicmVhazsKLSsgICAgICAgIH0KLSAg ICAgICAgIEFTU0VSVChkbi0+ZXBfcmVmY250ID09IDApOwotICAgICAgICAgZG4tPmVwX3JlZmNu dCsrOwotICAgICAgICAgaWYgKGRuY2FjaGVfcmVtb3ZlX2ludChjYWNoZSwgZG4pIDwgMCkgewot LS0gCi0yLjUyLjAKLQoKZGlmZiAtLWdpdCBhLzAwMDQtSXNzdWUtNzE3Mi1JbmRleC1vcmRlcmlu Zy1taXNtYXRjaC1hZnRlci11cGdyYWRlLTcxNy5wYXRjaCBiLzAwMDQtSXNzdWUtNzE3Mi1JbmRl eC1vcmRlcmluZy1taXNtYXRjaC1hZnRlci11cGdyYWRlLTcxNy5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMmVhODAwYi4uMDAwMDAwMAotLS0gYS8wMDA0LUlzc3VlLTcxNzIt SW5kZXgtb3JkZXJpbmctbWlzbWF0Y2gtYWZ0ZXItdXBncmFkZS03MTcucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwyMTUgKzAsMCBAQAotRnJvbSA3NDJjMTJlMDI0N2FiNjRlODdkYTAwMGE0ZGUy ZjNlNWM5OTA0NGFiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogVmlrdG9yIEFzaGly b3YgPHZhc2hpcm92QHJlZGhhdC5jb20+Ci1EYXRlOiBGcmksIDkgSmFuIDIwMjYgMTE6Mzk6NTAg KzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gSXNzdWUgNzE3MiAtIEluZGV4IG9yZGVyaW5nIG1pc21h dGNoIGFmdGVyIHVwZ3JhZGUgKCM3MTczKQotCi1CdWcgRGVzY3JpcHRpb246Ci1Db21taXQgZGFm NzMxZjU1MDcxZDQ1ZWFmNDAzYTUyYjYzZDM1ZjRlNjk5ZmYyOCBpbnRyb2R1Y2VkIGEgcmVncmVz c2lvbi4KLUFmdGVyIHVwZ3JhZGluZyB0byBhIHZlcnNpb24gdGhhdCBhZGRzIGBpbnRlZ2VyT3Jk ZXJpbmdNYXRjaGAgbWF0Y2hpbmcKLXJ1bGUgdG8gYHBhcmVudGlkYCBhbmQgYGFuY2VzdG9yaWRg IGluZGV4ZXMsIHNlYXJjaGVzIG1heSByZXR1cm4gZW1wdHkKLW9yIGluY29ycmVjdCByZXN1bHRz LgotCi1UaGlzIGhhcHBlbnMgYmVjYXVzZSB0aGUgZXhpc3RpbmcgaW5kZXggZGF0YSB3YXMgY3Jl YXRlZCB3aXRoCi1sZXhpY29ncmFwaGljIG9yZGVyaW5nLCBidXQgdGhlIG5ldyBjb21wYXJlIGZ1 bmN0aW9uIGV4cGVjdHMgaW50ZWdlcgotb3JkZXJpbmcuIEluZGV4IGxvb2t1cHMgZmFpbCBiZWNh dXNlIHRoZSBjb21wYXJlIGZ1bmN0aW9uIGRvZXNuJ3QgbWF0Y2gKLXRoZSBkYXRhIG9yZGVyaW5n LgotVGhlIHJvb3QgY2F1c2UgaXMgdGhhdCBgbGRibV9pbnN0YW5jZV9jcmVhdGVfZGVmYXVsdF9p bmRleGVzKClgIGNhbGxzCi1gYXR0cl9pbmRleF9jb25maWcoKWAgdW5jb25kaXRpb25hbGx5IGZv ciBgcGFyZW50aWRgIGFuZCBgYW5jZXN0b3JpZGAKLWluZGV4ZXMsIHdoaWNoIHRyaWdnZXJzIGBh aW5mb19kdXAoKWAgdG8gb3ZlcndyaXRlIGBhaV9rZXlfY21wX2ZuYCBvbgotZXhpc3RpbmcgaW5k ZXhlcy4gVGhpcyBicmVha3MgaW5kZXhlcyB0aGF0IHdlcmUgY3JlYXRlZCB3aXRob3V0IHRoZQot YGludGVnZXJPcmRlcmluZ01hdGNoYCBtYXRjaGluZyBydWxlLgotCi1GaXggRGVzY3JpcHRpb246 Ci0qIENhbGwgYGF0dHJfaW5kZXhfY29uZmlnKClgIGZvciBgcGFyZW50aWRgIGFuZCBgYW5jZXN0 b3JpZGAgaW5kZXhlcwotb25seSBpZiBpbmRleCBjb25maWcgZG9lc24ndCBleGlzdC4KLQotKiBB ZGQgYHVwZ3JhZGVfY2hlY2tfaWRfaW5kZXhfbWF0Y2hpbmdfcnVsZSgpYCB0aGF0IGxvZ3MgYW4g ZXJyb3Igb24KLXNlcnZlciBzdGFydHVwIGlmIGBwYXJlbnRpZGAgb3IgYGFuY2VzdG9yaWRgIGlu ZGV4ZXMgYXJlIG1pc3NpbmcgdGhlCi1pbnRlZ2VyT3JkZXJpbmdNYXRjaCBtYXRjaGluZyBydWxl LCBhZHZpc2luZyBhZG1pbmlzdHJhdG9ycyB0byByZWluZGV4LgotCi1GaXhlczogaHR0cHM6Ly9n aXRodWIuY29tLzM4OWRzLzM4OS1kcy1iYXNlL2lzc3Vlcy83MTcyCi0KLVJldmlld2VkIGJ5OiBA dGJvcmRheiwgQHByb2dpZXIzODksIEBkcm9pZGVjayAoVGhhbmtzISkKLS0tLQotIGxkYXAvc2Vy dmVycy9zbGFwZC9iYWNrLWxkYm0vaW5zdGFuY2UuYyB8ICAyNSArKysrLS0KLSBsZGFwL3NlcnZl cnMvc2xhcGQvdXBncmFkZS5jICAgICAgICAgICAgfCAxMDcgKysrKysrKysrKysrKysrKysrKysr KystCi0gMiBmaWxlcyBjaGFuZ2VkLCAxMjMgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkK LQotZGlmZiAtLWdpdCBhL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vaW5zdGFuY2UuYyBi L2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vaW5zdGFuY2UuYwotaW5kZXggY2IwMDJjMzc5 Li43MWJmMGY2ZmEgMTAwNjQ0Ci0tLS0gYS9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2lu c3RhbmNlLmMKLSsrKyBiL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vaW5zdGFuY2UuYwot QEAgLTE5MCw2ICsxOTAsNyBAQCBsZGJtX2luc3RhbmNlX2NyZWF0ZV9kZWZhdWx0X2luZGV4ZXMo YmFja2VuZCAqYmUpCi0gICAgIGNoYXIgKmFuY2VzdG9yaWRfaW5kZXhlc19saW1pdCA9IE5VTEw7 Ci0gICAgIGNoYXIgKnBhcmVudGlkX2luZGV4ZXNfbGltaXQgPSBOVUxMOwotICAgICBzdHJ1Y3Qg YXR0cmluZm8gKmFpID0gTlVMTDsKLSsgICAgc3RydWN0IGF0dHJpbmZvICppbmRleF9hbHJlYWR5 X2NvbmZpZ3VyZWQgPSBOVUxMOwotICAgICBzdHJ1Y3QgaW5kZXhfaWRsaXN0c2l6ZWluZm8gKml0 ZXI7Ci0gICAgIGludCBjb29raWU7Ci0gICAgIGludCBsaW1pdDsKLUBAIC0yNDgsMTAgKzI0OSwx NCBAQCBsZGJtX2luc3RhbmNlX2NyZWF0ZV9kZWZhdWx0X2luZGV4ZXMoYmFja2VuZCAqYmUpCi0g ICAgIGxkYm1faW5zdGFuY2VfY29uZmlnX2FkZF9pbmRleF9lbnRyeShpbnN0LCBlLCBmbGFncyk7 Ci0gICAgIHNsYXBpX2VudHJ5X2ZyZWUoZSk7Ci0gCi0tICAgIGUgPSBsZGJtX2luc3RhbmNlX2lu aXRfY29uZmlnX2VudHJ5KExEQk1fUEFSRU5USURfU1RSLCAiZXEiLCAwLCAwLCAwLCAiaW50ZWdl ck9yZGVyaW5nTWF0Y2giLCBwYXJlbnRpZF9pbmRleGVzX2xpbWl0KTsKLS0gICAgbGRibV9pbnN0 YW5jZV9jb25maWdfYWRkX2luZGV4X2VudHJ5KGluc3QsIGUsIGZsYWdzKTsKLS0gICAgYXR0cl9p bmRleF9jb25maWcoYmUsICJsZGJtIGluZGV4IGluaXQiLCAwLCBlLCAxLCAwLCBOVUxMKTsKLS0g ICAgc2xhcGlfZW50cnlfZnJlZShlKTsKLSsgICAgYWluZm9fZ2V0KGJlLCAoY2hhciAqKUxEQk1f UEFSRU5USURfU1RSLCAmYWkpOwotKyAgICBpbmRleF9hbHJlYWR5X2NvbmZpZ3VyZWQgPSBhaTsK LSsgICAgaWYgKCFpbmRleF9hbHJlYWR5X2NvbmZpZ3VyZWQpIHsKLSsgICAgICAgIGUgPSBsZGJt X2luc3RhbmNlX2luaXRfY29uZmlnX2VudHJ5KExEQk1fUEFSRU5USURfU1RSLCAiZXEiLCAwLCAw LCAwLCAiaW50ZWdlck9yZGVyaW5nTWF0Y2giLCBwYXJlbnRpZF9pbmRleGVzX2xpbWl0KTsKLSsg ICAgICAgIGxkYm1faW5zdGFuY2VfY29uZmlnX2FkZF9pbmRleF9lbnRyeShpbnN0LCBlLCBmbGFn cyk7Ci0rICAgICAgICBhdHRyX2luZGV4X2NvbmZpZyhiZSwgImxkYm0gaW5kZXggaW5pdCIsIDAs IGUsIDEsIDAsIE5VTEwpOwotKyAgICAgICAgc2xhcGlfZW50cnlfZnJlZShlKTsKLSsgICAgfQot IAotICAgICBlID0gbGRibV9pbnN0YW5jZV9pbml0X2NvbmZpZ19lbnRyeSgib2JqZWN0Y2xhc3Mi LCAiZXEiLCAwLCAwLCAwLCAwLCAwKTsKLSAgICAgbGRibV9pbnN0YW5jZV9jb25maWdfYWRkX2lu ZGV4X2VudHJ5KGluc3QsIGUsIGZsYWdzKTsKLUBAIC0yODgsMTAgKzI5MywxNCBAQCBsZGJtX2lu c3RhbmNlX2NyZWF0ZV9kZWZhdWx0X2luZGV4ZXMoYmFja2VuZCAqYmUpCi0gICAgICAqIGFuY2Vz dG9yaWQgaXMgc3BlY2lhbCwgdGhlcmUgaXMgYWN0dWFsbHkgbm8gc3VjaCBhdHRyIHR5cGUKLSAg ICAgICogYnV0IHdlIHN0aWxsIHdhbnQgdG8gdXNlIHRoZSBhdHRyIGluZGV4IGZpbGUgQVBJcy4K LSAgICAgICovCi0tICAgIGUgPSBsZGJtX2luc3RhbmNlX2luaXRfY29uZmlnX2VudHJ5KExEQk1f QU5DRVNUT1JJRF9TVFIsICJlcSIsIDAsIDAsIDAsICJpbnRlZ2VyT3JkZXJpbmdNYXRjaCIsIGFu Y2VzdG9yaWRfaW5kZXhlc19saW1pdCk7Ci0tICAgIGxkYm1faW5zdGFuY2VfY29uZmlnX2FkZF9p bmRleF9lbnRyeShpbnN0LCBlLCBmbGFncyk7Ci0tICAgIGF0dHJfaW5kZXhfY29uZmlnKGJlLCAi bGRibSBpbmRleCBpbml0IiwgMCwgZSwgMSwgMCwgTlVMTCk7Ci0tICAgIHNsYXBpX2VudHJ5X2Zy ZWUoZSk7Ci0rICAgIGFpbmZvX2dldChiZSwgKGNoYXIgKilMREJNX0FOQ0VTVE9SSURfU1RSLCAm YWkpOwotKyAgICBpbmRleF9hbHJlYWR5X2NvbmZpZ3VyZWQgPSBhaTsKLSsgICAgaWYgKCFpbmRl eF9hbHJlYWR5X2NvbmZpZ3VyZWQpIHsKLSsgICAgICAgIGUgPSBsZGJtX2luc3RhbmNlX2luaXRf Y29uZmlnX2VudHJ5KExEQk1fQU5DRVNUT1JJRF9TVFIsICJlcSIsIDAsIDAsIDAsICJpbnRlZ2Vy T3JkZXJpbmdNYXRjaCIsIGFuY2VzdG9yaWRfaW5kZXhlc19saW1pdCk7Ci0rICAgICAgICBsZGJt X2luc3RhbmNlX2NvbmZpZ19hZGRfaW5kZXhfZW50cnkoaW5zdCwgZSwgZmxhZ3MpOwotKyAgICAg ICAgYXR0cl9pbmRleF9jb25maWcoYmUsICJsZGJtIGluZGV4IGluaXQiLCAwLCBlLCAxLCAwLCBO VUxMKTsKLSsgICAgICAgIHNsYXBpX2VudHJ5X2ZyZWUoZSk7Ci0rICAgIH0KLSAKLSAgICAgc2xh cGlfY2hfZnJlZV9zdHJpbmcoJmFuY2VzdG9yaWRfaW5kZXhlc19saW1pdCk7Ci0gICAgIHNsYXBp X2NoX2ZyZWVfc3RyaW5nKCZwYXJlbnRpZF9pbmRleGVzX2xpbWl0KTsKLWRpZmYgLS1naXQgYS9s ZGFwL3NlcnZlcnMvc2xhcGQvdXBncmFkZS5jIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL3VwZ3JhZGUu YwotaW5kZXggODU4MzkyNTY0Li5iMDJlMzdlZDYgMTAwNjQ0Ci0tLS0gYS9sZGFwL3NlcnZlcnMv c2xhcGQvdXBncmFkZS5jCi0rKysgYi9sZGFwL3NlcnZlcnMvc2xhcGQvdXBncmFkZS5jCi1AQCAt MzMwLDYgKzMzMCwxMDcgQEAgdXBncmFkZV9yZW1vdmVfc3VidHJlZV9yZW5hbWUodm9pZCkKLSAg ICAgcmV0dXJuIFVQR1JBREVfU1VDQ0VTUzsKLSB9Ci0gCi0rLyoKLSsgKiBDaGVjayBpZiBwYXJl bnRpZC9hbmNlc3RvcmlkIGluZGV4ZXMgYXJlIG1pc3NpbmcgdGhlIGludGVnZXJPcmRlcmluZ01h dGNoCi0rICogbWF0Y2hpbmcgcnVsZS4KLSsgKgotKyAqIFRoaXMgZnVuY3Rpb24gbG9ncyBhIHdh cm5pbmcgaWYgd2UgZGV0ZWN0IHRoaXMgY29uZGl0aW9uLCBhZHZpc2luZwotKyAqIHRoZSBhZG1p bmlzdHJhdG9yIHRvIHJlaW5kZXggdGhlIGFmZmVjdGVkIGF0dHJpYnV0ZXMuCi0rICovCi0rc3Rh dGljIHVwZ3JhZGVfc3RhdHVzCi0rdXBncmFkZV9jaGVja19pZF9pbmRleF9tYXRjaGluZ19ydWxl KHZvaWQpCi0rewotKyAgICBzdHJ1Y3Qgc2xhcGlfcGJsb2NrICpwYiA9IHNsYXBpX3BibG9ja19u ZXcoKTsKLSsgICAgU2xhcGlfRW50cnkgKipiYWNrZW5kcyA9IE5VTEw7Ci0rICAgIGNvbnN0IGNo YXIgKmJlX2Jhc2VfZG4gPSAiY249bGRibSBkYXRhYmFzZSxjbj1wbHVnaW5zLGNuPWNvbmZpZyI7 Ci0rICAgIGNvbnN0IGNoYXIgKmJlX2ZpbHRlciA9ICIob2JqZWN0Y2xhc3M9bnNCYWNrZW5kSW5z dGFuY2UpIjsKLSsgICAgY29uc3QgY2hhciAqYXR0cnNfdG9fY2hlY2tbXSA9IHsicGFyZW50aWQi LCAiYW5jZXN0b3JpZCIsIE5VTEx9OwotKyAgICB1cGdyYWRlX3N0YXR1cyB1cmVzdWx0ID0gVVBH UkFERV9TVUNDRVNTOwotKwotKyAgICAvKiBTZWFyY2ggZm9yIGFsbCBiYWNrZW5kIGluc3RhbmNl cyAqLwotKyAgICBzbGFwaV9zZWFyY2hfaW50ZXJuYWxfc2V0X3BiKAotKyAgICAgICAgICAgIHBi LCBiZV9iYXNlX2RuLAotKyAgICAgICAgICAgIExEQVBfU0NPUEVfT05FTEVWRUwsCi0rICAgICAg ICAgICAgYmVfZmlsdGVyLCBOVUxMLCAwLCBOVUxMLCBOVUxMLAotKyAgICAgICAgICAgIHBsdWdp bl9nZXRfZGVmYXVsdF9jb21wb25lbnRfaWQoKSwgMCk7Ci0rICAgIHNsYXBpX3NlYXJjaF9pbnRl cm5hbF9wYihwYik7Ci0rICAgIHNsYXBpX3BibG9ja19nZXQocGIsIFNMQVBJX1BMVUdJTl9JTlRP UF9TRUFSQ0hfRU5UUklFUywgJmJhY2tlbmRzKTsKLSsKLSsgICAgaWYgKGJhY2tlbmRzKSB7Ci0r ICAgICAgICBmb3IgKHNpemVfdCBiZV9pZHggPSAwOyBiYWNrZW5kc1tiZV9pZHhdICE9IE5VTEw7 IGJlX2lkeCsrKSB7Ci0rICAgICAgICAgICAgY29uc3QgY2hhciAqYmVfbmFtZSA9IHNsYXBpX2Vu dHJ5X2F0dHJfZ2V0X3JlZihiYWNrZW5kc1tiZV9pZHhdLCAiY24iKTsKLSsgICAgICAgICAgICBp ZiAoIWJlX25hbWUpIHsKLSsgICAgICAgICAgICAgICAgY29udGludWU7Ci0rICAgICAgICAgICAg fQotKwotKyAgICAgICAgICAgIC8qIENoZWNrIGVhY2ggYXR0cmlidXRlIHRoYXQgc2hvdWxkIGhh dmUgaW50ZWdlck9yZGVyaW5nTWF0Y2ggKi8KLSsgICAgICAgICAgICBmb3IgKHNpemVfdCBhdHRy X2lkeCA9IDA7IGF0dHJzX3RvX2NoZWNrW2F0dHJfaWR4XSAhPSBOVUxMOyBhdHRyX2lkeCsrKSB7 Ci0rICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmF0dHJfbmFtZSA9IGF0dHJzX3RvX2NoZWNr W2F0dHJfaWR4XTsKLSsgICAgICAgICAgICAgICAgc3RydWN0IHNsYXBpX3BibG9jayAqaWR4X3Bi ID0gc2xhcGlfcGJsb2NrX25ldygpOwotKyAgICAgICAgICAgICAgICBTbGFwaV9FbnRyeSAqKmlk eF9lbnRyaWVzID0gTlVMTDsKLSsgICAgICAgICAgICAgICAgY2hhciAqaWR4X2RuID0gc2xhcGlf Y3JlYXRlX2RuX3N0cmluZygiY249JXMsY249aW5kZXgsY249JXMsJXMiLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyX25hbWUsIGJl X25hbWUsIGJlX2Jhc2VfZG4pOwotKyAgICAgICAgICAgICAgICBjaGFyICppZHhfZmlsdGVyID0g IihvYmplY3RjbGFzcz1uc0luZGV4KSI7Ci0rICAgICAgICAgICAgICAgIFBSQm9vbCBoYXNfbWF0 Y2hpbmdfcnVsZSA9IFBSX0ZBTFNFOwotKwotKyAgICAgICAgICAgICAgICBpZiAoIWlkeF9kbikg ewotKyAgICAgICAgICAgICAgICAgICAgc2xhcGlfcGJsb2NrX2Rlc3Ryb3koaWR4X3BiKTsKLSsg ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotKyAgICAgICAgICAgICAgICB9Ci0rCi0rICAg ICAgICAgICAgICAgIHNsYXBpX3NlYXJjaF9pbnRlcm5hbF9zZXRfcGIoCi0rICAgICAgICAgICAg ICAgICAgICAgICAgaWR4X3BiLCBpZHhfZG4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgTERB UF9TQ09QRV9CQVNFLAotKyAgICAgICAgICAgICAgICAgICAgICAgIGlkeF9maWx0ZXIsIE5VTEws IDAsIE5VTEwsIE5VTEwsCi0rICAgICAgICAgICAgICAgICAgICAgICAgcGx1Z2luX2dldF9kZWZh dWx0X2NvbXBvbmVudF9pZCgpLCAwKTsKLSsgICAgICAgICAgICAgICAgc2xhcGlfc2VhcmNoX2lu dGVybmFsX3BiKGlkeF9wYik7Ci0rICAgICAgICAgICAgICAgIHNsYXBpX3BibG9ja19nZXQoaWR4 X3BiLCBTTEFQSV9QTFVHSU5fSU5UT1BfU0VBUkNIX0VOVFJJRVMsICZpZHhfZW50cmllcyk7Ci0r Ci0rICAgICAgICAgICAgICAgIGlmIChpZHhfZW50cmllcyAmJiBpZHhfZW50cmllc1swXSkgewot KyAgICAgICAgICAgICAgICAgICAgLyogSW5kZXggZXhpc3RzLCBjaGVjayBpZiBpdCBoYXMgaW50 ZWdlck9yZGVyaW5nTWF0Y2ggKi8KLSsgICAgICAgICAgICAgICAgICAgIFNsYXBpX0F0dHIgKm1y X2F0dHIgPSBOVUxMOwotKyAgICAgICAgICAgICAgICAgICAgaWYgKHNsYXBpX2VudHJ5X2F0dHJf ZmluZChpZHhfZW50cmllc1swXSwgIm5zTWF0Y2hpbmdSdWxlIiwgJm1yX2F0dHIpID09IDApIHsK LSsgICAgICAgICAgICAgICAgICAgICAgICBTbGFwaV9WYWx1ZSAqc3ZhbCA9IE5VTEw7Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgaW50IGlkeDsKLSsgICAgICAgICAgICAgICAgICAgICAgICBm b3IgKGlkeCA9IHNsYXBpX2F0dHJfZmlyc3RfdmFsdWUobXJfYXR0ciwgJnN2YWwpOwotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWR4ICE9IC0xOwotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWR4ID0gc2xhcGlfYXR0cl9uZXh0X3ZhbHVlKG1yX2F0dHIsIGlkeCwgJnN2YWwp KSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBiZXJ2YWwgKmJ2 YWwgPSBzbGFwaV92YWx1ZV9nZXRfYmVydmFsKHN2YWwpOwotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZiAoYnZhbCAmJiBidmFsLT5idl92YWwgJiYKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cmNhc2VjbXAoYnZhbC0+YnZfdmFsLCAiaW50ZWdlck9yZGVyaW5nTWF0 Y2giKSA9PSAwKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNfbWF0Y2hp bmdfcnVsZSA9IFBSX1RSVUU7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVh azsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAgICAgICAg ICAgIH0KLSsgICAgICAgICAgICAgICAgICAgIH0KLSsKLSsgICAgICAgICAgICAgICAgICAgIGlm ICghaGFzX21hdGNoaW5nX3J1bGUpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbmRl eCBleGlzdHMgYnV0IGRvZXNuJ3QgaGF2ZSBpbnRlZ2VyT3JkZXJpbmdNYXRjaCwgbG9nIGEgd2Fy bmluZyAqLwotKyAgICAgICAgICAgICAgICAgICAgICAgIHNsYXBpX2xvZ19lcnIoU0xBUElfTE9H X0VSUiwgInVwZ3JhZGVfY2hlY2tfaWRfaW5kZXhfbWF0Y2hpbmdfcnVsZSIsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiSW5kZXggJyVzJyBpbiBiYWNrZW5kICclcycgaXMgbWlz c2luZyAnbnNNYXRjaGluZ1J1bGU6IGludGVnZXJPcmRlcmluZ01hdGNoJy4gIgotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIkluY29ycmVjdGx5IGNvbmZpZ3VyZWQgc3lzdGVtIGlu ZGV4ZXMgY2FuIGxlYWQgdG8gcG9vciBzZWFyY2ggcGVyZm9ybWFuY2UsIHJlcGxpY2F0aW9uIGlz c3VlcywgYW5kIG90aGVyIG9wZXJhdGlvbmFsIHByb2JsZW1zLiAiCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiVG8gZml4IHRoaXMsIGFkZCB0aGUgbWF0Y2hpbmcgcnVsZSBhbmQg cmVpbmRleDogIgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRzY29uZiA8aW5z dGFuY2U+IGJhY2tlbmQgaW5kZXggc2V0IC0tYWRkLW1yIGludGVnZXJPcmRlcmluZ01hdGNoIC0t YXR0ciAlcyAlcyAmJiAiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZHNjb25m IDxpbnN0YW5jZT4gYmFja2VuZCBpbmRleCByZWluZGV4IC0tYXR0ciAlcyAlcy4gIgotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIldBUk5JTkc6IFJlaW5kZXhpbmcgY2FuIGJlIHJl c291cmNlLWludGVuc2l2ZSBhbmQgbWF5IGltcGFjdCBzZXJ2ZXIgcGVyZm9ybWFuY2Ugb24gYSBs aXZlIHN5c3RlbS4gIgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNvbnNpZGVy IHNjaGVkdWxpbmcgcmVpbmRleGluZyBkdXJpbmcgbWFpbnRlbmFuY2Ugd2luZG93cyBvciBwZXJp b2RzIG9mIGxvdyBhY3Rpdml0eS5cbiIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhdHRyX25hbWUsIGJlX25hbWUsIGF0dHJfbmFtZSwgYmVfbmFtZSwgYXR0cl9uYW1lLCBiZV9u YW1lKTsKLSsgICAgICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAgfQotKwotKyAg ICAgICAgICAgICAgICBzbGFwaV9jaF9mcmVlX3N0cmluZygmaWR4X2RuKTsKLSsgICAgICAgICAg ICAgICAgc2xhcGlfZnJlZV9zZWFyY2hfcmVzdWx0c19pbnRlcm5hbChpZHhfcGIpOwotKyAgICAg ICAgICAgICAgICBzbGFwaV9wYmxvY2tfZGVzdHJveShpZHhfcGIpOwotKyAgICAgICAgICAgIH0K LSsgICAgICAgIH0KLSsgICAgfQotKwotKyAgICBzbGFwaV9mcmVlX3NlYXJjaF9yZXN1bHRzX2lu dGVybmFsKHBiKTsKLSsgICAgc2xhcGlfcGJsb2NrX2Rlc3Ryb3kocGIpOwotKwotKyAgICByZXR1 cm4gdXJlc3VsdDsKLSt9Ci0rCi0gLyoKLSAgKiBVcGdyYWRlIHRoZSBiYXNlIGNvbmZpZyBvZiB0 aGUgUEFNIFBUQSBwbHVnaW4uCi0gICoKLUBAIC01NDcsNyArNjQ4LDExIEBAIHVwZ3JhZGVfc2Vy dmVyKHZvaWQpCi0gICAgIGlmICh1cGdyYWRlX3BhbV9wdGFfZGVmYXVsdF9jb25maWcoKSAhPSBV UEdSQURFX1NVQ0NFU1MpIHsKLSAgICAgICAgIHJldHVybiBVUEdSQURFX0ZBSUxVUkU7Ci0gICAg IH0KLS0gICAgCi0rCi0rICAgIGlmICh1cGdyYWRlX2NoZWNrX2lkX2luZGV4X21hdGNoaW5nX3J1 bGUoKSAhPSBVUEdSQURFX1NVQ0NFU1MpIHsKLSsgICAgICAgIHJldHVybiBVUEdSQURFX0ZBSUxV UkU7Ci0rICAgIH0KLSsKLSAgICAgcmV0dXJuIFVQR1JBREVfU1VDQ0VTUzsKLSB9Ci0gCi0tLSAK LTIuNTIuMAotCgpkaWZmIC0tZ2l0IGEvMDAwNS1Jc3N1ZS03MTcyLTJuZC1JbmRleC1vcmRlcmlu Zy1taXNtYXRjaC1hZnRlci11cGdyYWRlLnBhdGNoIGIvMDAwNS1Jc3N1ZS03MTcyLTJuZC1JbmRl eC1vcmRlcmluZy1taXNtYXRjaC1hZnRlci11cGdyYWRlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCA2YTgwYTViLi4wMDAwMDAwCi0tLSBhLzAwMDUtSXNzdWUtNzE3Mi0ybmQt SW5kZXgtb3JkZXJpbmctbWlzbWF0Y2gtYWZ0ZXItdXBncmFkZS5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDY3ICswLDAgQEAKLUZyb20gZjVkZTg0ZTMwOWQ1YTQ0MzUxOThjOWNjOWIzMWI1NzIy OTc5ZjFmZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFZpa3RvciBBc2hpcm92IDx2 YXNoaXJvdkByZWRoYXQuY29tPgotRGF0ZTogTW9uLCAxMiBKYW4gMjAyNiAxMDo1ODowMiArMDEw MAotU3ViamVjdDogW1BBVENIXSBJc3N1ZSA3MTcyIC0gKDJuZCkgSW5kZXggb3JkZXJpbmcgbWlz bWF0Y2ggYWZ0ZXIgdXBncmFkZQotICgjNzE4MCkKLQotQ29tbWl0IDc0MmMxMmUwMjQ3YWI2NGU4 N2RhMDAwYTRkZTJmM2U1Yzk5MDQ0YWIgaW50cm9kdWNlZCBhIHJlZ3Jlc3Npb24KLXdoZXJlIHRo ZSBjaGVjayB0byBza2lwIGNyZWF0aW5nIHBhcmVudGlkL2FuY2VzdG9yaWQgaW5kZXhlcyBpZiB0 aGV5Ci1hbHJlYWR5IGV4aXN0IHdhcyBpbmNvcnJlY3QuCi1UaGUgYGFpbmZvX2dldCgpYCBmdW5j dGlvbiBmYWxscyBiYWNrIHRvIHJldHVybmluZwotTERCTV9QU0VVRE9fQVRUUl9ERUZBVUxUIGF0 dHJpbmZvIHdoZW4gdGhlIHJlcXVlc3RlZCBhdHRyaWJ1dGUgaXMgbm90Ci1mb3VuZC4KLVNpbmNl IExEQk1fUFNFVURPX0FUVFJfREVGQVVMVCBpcyBjcmVhdGVkIGJlZm9yZSB0aGUgYW5jZXN0b3Jp ZCBjaGVjaywKLWBhaW5mb19nZXQoKWAgcmV0dXJucyBMREJNX1BTRVVET19BVFRSX0RFRkFVTFQg aW5zdGVhZCBvZiBOVUxMLCBjYXVzaW5nCi10aGUgYW5jZXN0b3JpZCBpbmRleCBjcmVhdGlvbiB0 byBiZSBza2lwcGVkIGVudGlyZWx5LgotCi1XaGVuIG9wZXJhdGlvbnMgbGF0ZXIgdHJ5IHRvIHVz ZSB0aGUgYW5jZXN0b3JpZCBpbmRleCwgdGhleSBmYWxsIGJhY2sgdG8KLUxEQk1fUFNFVURPX0FU VFJfREVGQVVMVCwgYW5kIGF0dGVtcHRpbmcgdG8gb3BlbiB0aGUgLmRlZmF1bHQgZGJpCi1taWQt dHJhbnNhY3Rpb24gZmFpbHMgd2l0aCBNREJfTk9URk9VTkQgKC0zMDc5OCkuCi0KLUZpeCBEZXNj cmlwdGlvbjoKLUluc3RlYWQgb2YganVzdCBjaGVja2luZyBpZiBgYWluZm9fZ2V0KClgIHJldHVy bnMgbm9uLU5VTEwsIHZlcmlmeSB0aGF0Ci10aGUgcmV0dXJuZWQgYXR0cmluZm8gaXMgYWN0dWFs bHkgZm9yIHRoZSByZXF1ZXN0ZWQgYXR0cmlidXRlLgotCi1GaXhlczogaHR0cHM6Ly9naXRodWIu Y29tLzM4OWRzLzM4OS1kcy1iYXNlL2lzc3Vlcy83MTcyCi0KLVJldmlld2VkIGJ5OiBAdGJvcmRh eiAoVGhhbmtzISkKLS0tLQotIGxkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vaW5zdGFuY2Uu YyB8IDggKysrKystLS0KLSAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAzIGRlbGV0 aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9pbnN0 YW5jZS5jIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9pbnN0YW5jZS5jCi1pbmRleCA3 MWJmMGY2ZmEuLjJhNmU4Y2JiOCAxMDA2NDQKLS0tLSBhL2xkYXAvc2VydmVycy9zbGFwZC9iYWNr LWxkYm0vaW5zdGFuY2UuYwotKysrIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9pbnN0 YW5jZS5jCi1AQCAtMTkwLDcgKzE5MCw3IEBAIGxkYm1faW5zdGFuY2VfY3JlYXRlX2RlZmF1bHRf aW5kZXhlcyhiYWNrZW5kICpiZSkKLSAgICAgY2hhciAqYW5jZXN0b3JpZF9pbmRleGVzX2xpbWl0 ID0gTlVMTDsKLSAgICAgY2hhciAqcGFyZW50aWRfaW5kZXhlc19saW1pdCA9IE5VTEw7Ci0gICAg IHN0cnVjdCBhdHRyaW5mbyAqYWkgPSBOVUxMOwotLSAgICBzdHJ1Y3QgYXR0cmluZm8gKmluZGV4 X2FscmVhZHlfY29uZmlndXJlZCA9IE5VTEw7Ci0rICAgIGludCBpbmRleF9hbHJlYWR5X2NvbmZp Z3VyZWQgPSAwOwotICAgICBzdHJ1Y3QgaW5kZXhfaWRsaXN0c2l6ZWluZm8gKml0ZXI7Ci0gICAg IGludCBjb29raWU7Ci0gICAgIGludCBsaW1pdDsKLUBAIC0yNTAsNyArMjUwLDggQEAgbGRibV9p bnN0YW5jZV9jcmVhdGVfZGVmYXVsdF9pbmRleGVzKGJhY2tlbmQgKmJlKQotICAgICBzbGFwaV9l bnRyeV9mcmVlKGUpOwotIAotICAgICBhaW5mb19nZXQoYmUsIChjaGFyICopTERCTV9QQVJFTlRJ RF9TVFIsICZhaSk7Ci0tICAgIGluZGV4X2FscmVhZHlfY29uZmlndXJlZCA9IGFpOwotKyAgICAv KiBDaGVjayBpZiB0aGUgYXR0cmluZm8gaXMgYWN0dWFsbHkgZm9yIHBhcmVudGlkLCBub3QgYSBm YWxsYmFjayB0byAuZGVmYXVsdCAqLwotKyAgICBpbmRleF9hbHJlYWR5X2NvbmZpZ3VyZWQgPSAo YWkgIT0gTlVMTCAmJiBzdHJjbXAoYWktPmFpX3R5cGUsIExEQk1fUEFSRU5USURfU1RSKSA9PSAw KTsKLSAgICAgaWYgKCFpbmRleF9hbHJlYWR5X2NvbmZpZ3VyZWQpIHsKLSAgICAgICAgIGUgPSBs ZGJtX2luc3RhbmNlX2luaXRfY29uZmlnX2VudHJ5KExEQk1fUEFSRU5USURfU1RSLCAiZXEiLCAw LCAwLCAwLCAiaW50ZWdlck9yZGVyaW5nTWF0Y2giLCBwYXJlbnRpZF9pbmRleGVzX2xpbWl0KTsK LSAgICAgICAgIGxkYm1faW5zdGFuY2VfY29uZmlnX2FkZF9pbmRleF9lbnRyeShpbnN0LCBlLCBm bGFncyk7Ci1AQCAtMjk0LDcgKzI5NSw4IEBAIGxkYm1faW5zdGFuY2VfY3JlYXRlX2RlZmF1bHRf aW5kZXhlcyhiYWNrZW5kICpiZSkKLSAgICAgICogYnV0IHdlIHN0aWxsIHdhbnQgdG8gdXNlIHRo ZSBhdHRyIGluZGV4IGZpbGUgQVBJcy4KLSAgICAgICovCi0gICAgIGFpbmZvX2dldChiZSwgKGNo YXIgKilMREJNX0FOQ0VTVE9SSURfU1RSLCAmYWkpOwotLSAgICBpbmRleF9hbHJlYWR5X2NvbmZp Z3VyZWQgPSBhaTsKLSsgICAgLyogQ2hlY2sgaWYgdGhlIGF0dHJpbmZvIGlzIGFjdHVhbGx5IGZv ciBhbmNlc3RvcmlkLCBub3QgYSBmYWxsYmFjayB0byAuZGVmYXVsdCAqLwotKyAgICBpbmRleF9h bHJlYWR5X2NvbmZpZ3VyZWQgPSAoYWkgIT0gTlVMTCAmJiBzdHJjbXAoYWktPmFpX3R5cGUsIExE Qk1fQU5DRVNUT1JJRF9TVFIpID09IDApOwotICAgICBpZiAoIWluZGV4X2FscmVhZHlfY29uZmln dXJlZCkgewotICAgICAgICAgZSA9IGxkYm1faW5zdGFuY2VfaW5pdF9jb25maWdfZW50cnkoTERC TV9BTkNFU1RPUklEX1NUUiwgImVxIiwgMCwgMCwgMCwgImludGVnZXJPcmRlcmluZ01hdGNoIiwg YW5jZXN0b3JpZF9pbmRleGVzX2xpbWl0KTsKLSAgICAgICAgIGxkYm1faW5zdGFuY2VfY29uZmln X2FkZF9pbmRleF9lbnRyeShpbnN0LCBlLCBmbGFncyk7Ci0tLSAKLTIuNTIuMAotCgpkaWZmIC0t Z2l0IGEvMDAwNi1Jc3N1ZS02NzUzLVBvcnQtdGlja2V0LTU0OC10ZXN0LTcxMDEucGF0Y2ggYi8w MDA2LUlzc3VlLTY3NTMtUG9ydC10aWNrZXQtNTQ4LXRlc3QtNzEwMS5wYXRjaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggZTdhNmE2Yy4uMDAwMDAwMAotLS0gYS8wMDA2LUlzc3VlLTY3 NTMtUG9ydC10aWNrZXQtNTQ4LXRlc3QtNzEwMS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDky NCArMCwwIEBACi1Gcm9tIGZiMjNjOWUzNjZmNWVhZmE2YmRiYjhjZDcxYWZkNzhlM2VkZWZkZTIg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBMZW5rYSBEb3Vkb3ZhIDxtaXJpZWxrYUB1 c2Vycy5ub3JlcGx5LmdpdGh1Yi5jb20+Ci1EYXRlOiBUdWUsIDEzIEphbiAyMDI2IDEwOjQ0OjE1 ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIElzc3VlIDY3NTMgLSBQb3J0IHRpY2tldCA1NDggdGVz dCAoIzcxMDEpCi0KLURlc2NyaXB0aW9uOgotUG9ydCB0aWNrZXQgNTQ4IHRlc3QgaW50bwotZGly c3J2dGVzdHMvdGVzdHMvc3VpdGVzL3Bhc3N3b3JkL3B3ZFBvbGljeV9hdHRyaWJ1dGVfdGVzdC5w eQotCi1SZWxhdGVzOiAjNjc1MwotCi1BdXRob3I6IExlbmthIERvdWRvdmEsIGFhZGhpa2FyCi1B c3Npc3RlZCBieTogQ3Vyc29yCi1SZXZpZXdlcjogQGRyb2lkZWNrKFRoYW5rcyEpCi0tLS0KLSAu Li4vcGFzc3dvcmQvcHdkUG9saWN5X2F0dHJpYnV0ZV90ZXN0LnB5ICAgICAgfCA0NjQgKysrKysr KysrKysrKysrKystCi0gZGlyc3J2dGVzdHMvdGVzdHMvdGlja2V0cy90aWNrZXQ1NDhfdGVzdC5w eSAgIHwgNDA4IC0tLS0tLS0tLS0tLS0tLQotIDIgZmlsZXMgY2hhbmdlZCwgNDYzIGluc2VydGlv bnMoKyksIDQwOSBkZWxldGlvbnMoLSkKLSBkZWxldGUgbW9kZSAxMDA2NDQgZGlyc3J2dGVzdHMv dGVzdHMvdGlja2V0cy90aWNrZXQ1NDhfdGVzdC5weQotCi1kaWZmIC0tZ2l0IGEvZGlyc3J2dGVz dHMvdGVzdHMvc3VpdGVzL3Bhc3N3b3JkL3B3ZFBvbGljeV9hdHRyaWJ1dGVfdGVzdC5weSBiL2Rp cnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9wYXNzd29yZC9wd2RQb2xpY3lfYXR0cmlidXRlX3Rlc3Qu cHkKLWluZGV4IGQwYzE3MmY5NC4uZDAyMWY0NzIwIDEwMDY0NAotLS0tIGEvZGlyc3J2dGVzdHMv dGVzdHMvc3VpdGVzL3Bhc3N3b3JkL3B3ZFBvbGljeV9hdHRyaWJ1dGVfdGVzdC5weQotKysrIGIv ZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL3Bhc3N3b3JkL3B3ZFBvbGljeV9hdHRyaWJ1dGVfdGVz dC5weQotQEAgLTksMTIgKzksMTIgQEAKLSBpbXBvcnQgcHl0ZXN0Ci0gZnJvbSBsaWIzODkudGFz a3MgaW1wb3J0ICoKLSBmcm9tIGxpYjM4OS51dGlscyBpbXBvcnQgKgotLWltcG9ydCBwZGIKLSBm cm9tIGxpYjM4OS50b3BvbG9naWVzIGltcG9ydCB0b3BvbG9neV9zdAotIGZyb20gbGliMzg5LnB3 cG9saWN5IGltcG9ydCBQd1BvbGljeU1hbmFnZXIKLSBmcm9tIGxpYjM4OS5pZG0udXNlciBpbXBv cnQgVXNlckFjY291bnQsIFVzZXJBY2NvdW50cywgVEVTVF9VU0VSX1BST1BFUlRJRVMKLSBmcm9t IGxpYjM4OS5pZG0ub3JnYW5pemF0aW9uYWx1bml0IGltcG9ydCBPcmdhbml6YXRpb25hbFVuaXRz Ci0gZnJvbSBsaWIzODkuX2NvbnN0YW50cyBpbXBvcnQgKERFRkFVTFRfU1VGRklYLCBETl9ETSwg UEFTU1dPUkQpCi0rZnJvbSBsaWIzODkuaWRtLmRpcmVjdG9yeW1hbmFnZXIgaW1wb3J0IERpcmVj dG9yeU1hbmFnZXIKLSAKLSBweXRlc3RtYXJrID0gcHl0ZXN0Lm1hcmsudGllcjEKLSAKLUBAIC0z NjEsNiArMzYxLDQ2OCBAQCBkZWYgdGVzdF9wd2Rwb2xpY3lzdWJlbnRyeSh0b3BvbG9neV9zdCwg cGFzc3dvcmRfcG9saWN5KToKLSAgICAgYXNzZXJ0ICduc1B3UG9saWN5RW50cnlfdXNlcicgbm90 IGluIHB3cF9zdWJlbnRyeQotIAotIAotK0BweXRlc3QuZml4dHVyZShzY29wZT0iZnVuY3Rpb24i KQotK2RlZiBzaGFkb3dVc2VyKHJlcXVlc3QsIHRvcG9sb2d5X3N0KToKLSsgICAgIiIiIENyZWF0 ZSBhIHVzZXIgd2l0aCBzaGFkb3dBY2NvdW50IG9iamVjdGNsYXNzICIiIgotKyAgICB1c2VycyA9 IFVzZXJBY2NvdW50cyh0b3BvbG9neV9zdC5zdGFuZGFsb25lLCBERUZBVUxUX1NVRkZJWCkKLSsg ICAgc2hhZG93VXNlciA9IHVzZXJzLmNyZWF0ZShwcm9wZXJ0aWVzPXsKLSsgICAgICAgICdvYmpl Y3RjbGFzcyc6IFsndG9wJywgJ3BlcnNvbicsICdvcmdhbml6YXRpb25hbFBlcnNvbicsCi0rICAg ICAgICAgICAgICAgICAgICAgICAgJ2luZXRPcmdQZXJzb24nLCAnZXh0ZW5zaWJsZU9iamVjdCcs ICdzaGFkb3dBY2NvdW50J10sCi0rICAgICAgICAnc24nOiAnMScsCi0rICAgICAgICAnY24nOiAn c2hhZG93VXNlcicsCi0rICAgICAgICAndWlkJzogJ3NoYWRvd1VzZXInLAotKyAgICAgICAgJ3Vp ZE51bWJlcic6ICcxJywKLSsgICAgICAgICdnaWROdW1iZXInOiAnMTEnLAotKyAgICAgICAgJ2hv bWVEaXJlY3RvcnknOiAnL2hvbWUvc2hhZG93VXNlcicsCi0rICAgICAgICAnZGlzcGxheU5hbWUn OiAnU2hhZG93IFVzZXInLAotKyAgICAgICAgJ2dpdmVubmFtZSc6ICdTaGFkb3cnLAotKyAgICAg ICAgJ21haWwnOmYnc2hhZG93dXNlckB7REVGQVVMVF9TVUZGSVh9JywKLSsgICAgICAgICd1c2Vy cGFzc3dvcmQnOiAncGFzc3dvcmQnCi0rICAgIH0pCi0rCi0rICAgIGRlZiBmaW4oKToKLSsgICAg ICAgIGlmIHNoYWRvd1VzZXIuZXhpc3RzKCk6Ci0rICAgICAgICAgICAgc2hhZG93VXNlci5kZWxl dGUoKQotKwotKyAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihmaW4pCi0rCi0rICAgIHJldHVybiBz aGFkb3dVc2VyCi0rCi0rCi0rZGVmIGRheXNfdG9fc2VjcyhkYXlzKToKLSsgICAgIiIiIENvbnZl cnQgZGF5cyB0byBzZWNvbmRzICIiIgotKyAgICByZXR1cm4gZGF5cyAqIDg2NDAwCi0rCi0rCi0r ZGVmIGNoZWNrX3NoYWRvd19hdHRyX3ZhbHVlKGluc3QsIHVzZXJfZG4sIGF0dHJfdHlwZSwgZXhw ZWN0ZWQpOgotKyAgICAiIiIgQ2hlY2sgdGhhdCBzaGFkb3dBY2NvdW50IGF0dHJpYnV0ZSBoYXMg ZXhwZWN0ZWQgdmFsdWUgIiIiCi0rICAgIGRtID0gRGlyZWN0b3J5TWFuYWdlcihpbnN0KQotKyAg ICBkbS5yZWJpbmQoKQotKyAgICB1c2VyID0gVXNlckFjY291bnQoaW5zdCwgdXNlcl9kbikKLSsg ICAgYXNzZXJ0IHVzZXIucHJlc2VudChhdHRyX3R5cGUpLCBmJ0VudHJ5IHt1c2VyX2RufSBkb2Vz IG5vdCBoYXZlIHthdHRyX3R5cGV9IGF0dHJpYnV0ZScKLSsgICAgYWN0dWFsID0gaW50KHVzZXIu Z2V0X2F0dHJfdmFsX3V0ZjgoYXR0cl90eXBlKSkKLSsgICAgYXNzZXJ0IGFjdHVhbCA9PSBleHBl Y3RlZCwgZid7YXR0cl90eXBlfSBvZiBlbnRyeSB7dXNlcl9kbn0gaXMge2FjdHVhbH0sIGV4cGVj dGVkIHtleHBlY3RlZH0nCi0rICAgIGxvZy5pbmZvKGYne2F0dHJfdHlwZX0gb2YgZW50cnkge3Vz ZXJfZG59IGhhcyBleHBlY3RlZCB2YWx1ZSB7YWN0dWFsfScpCi0rCi0rCi0rZGVmIHNldHVwX3B3 cChpbnN0LCBwd3BfbWdyLCBwb2xpY3ksIGRuPU5vbmUsIHBvbGljeV9wcm9wcz1Ob25lKToKLSsg ICAgIiIiIFNldHVwIHBhc3N3b3JkIHBvbGljeSAiIiIKLSsKLSsgICAgbG9nLmluZm8oZidTZXR0 aW5nIHVwIHtwb2xpY3l9IHBhc3N3b3JkIHBvbGljeSBmb3Ige2RufScpCi0rICAgIGRtID0gRGly ZWN0b3J5TWFuYWdlcihpbnN0KQotKyAgICBkbS5yZWJpbmQoKQotKwotKyAgICBsb2cuaW5mbyhm J0NvbmZpZ3VyaW5nIHtwb2xpY3l9IHBhc3N3b3JkIHBvbGljeScpCi0rCi0rICAgIGFzc2VydCBw b2xpY3kgPT0gJ2dsb2JhbCcgb3IgZG4sICdkbiBpcyByZXF1aXJlZCBmb3Igbm9uLWdsb2JhbCBw b2xpY3knCi0rCi0rICAgIGlmIG5vdCBwb2xpY3lfcHJvcHM6Ci0rICAgICAgICBwb2xpY3lfcHJv cHMgPSB7Ci0rICAgICAgICAgICAgJ3Bhc3N3b3JkTWluQWdlJzogc3RyKGRheXNfdG9fc2Vjcygx KSksCi0rICAgICAgICAgICAgJ3Bhc3N3b3JkRXhwJzogJ29uJywKLSsgICAgICAgICAgICAncGFz c3dvcmRNYXhBZ2UnOiBzdHIoZGF5c190b19zZWNzKDEwKSksCi0rICAgICAgICAgICAgJ3Bhc3N3 b3JkV2FybmluZyc6IHN0cihkYXlzX3RvX3NlY3MoMykpCi0rICAgICAgICB9Ci0rCi0rICAgIGlm IHBvbGljeSA9PSAnZ2xvYmFsJzoKLSsgICAgICAgIHB3cF9tZ3Iuc2V0X2dsb2JhbF9wb2xpY3ko cG9saWN5X3Byb3BzKQotKyAgICBlbGlmIHBvbGljeSA9PSAnc3VidHJlZSc6Ci0rICAgICAgICBw d3BfbWdyLmNyZWF0ZV9zdWJ0cmVlX3BvbGljeShkbiwgcG9saWN5X3Byb3BzKQotKyAgICBlbGlm IHBvbGljeSA9PSAndXNlcic6Ci0rICAgICAgICBwd3BfbWdyLmNyZWF0ZV91c2VyX3BvbGljeShk biwgcG9saWN5X3Byb3BzKQotKyAgICBlbHNlOgotKyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihm J0ludmFsaWQgdHlwZSBvZiBwYXNzd29yZCBwb2xpY3k6IHtwb2xpY3l9JykKLSsKLSsKLStkZWYg bW9kaWZ5X3B3cChpbnN0LCBwd3BfbWdyLCBwb2xpY3ksIGRuPU5vbmUsIHBvbGljeV9wcm9wcz1O b25lKToKLSsgICAgIiIiIE1vZGlmeSBwYXNzd29yZCBwb2xpY3kgIiIiCi0rICAgIGRtID0gRGly ZWN0b3J5TWFuYWdlcihpbnN0KQotKyAgICBkbS5yZWJpbmQoKQotKwotKyAgICBhc3NlcnQgcG9s aWN5ID09ICdnbG9iYWwnIG9yIGRuLCAnZG4gaXMgcmVxdWlyZWQgZm9yIG5vbi1nbG9iYWwgcG9s aWN5JwotKwotKyAgICBpZiBub3QgcG9saWN5X3Byb3BzOgotKyAgICAgICAgcG9saWN5X3Byb3Bz ID0gewotKyAgICAgICAgICAgICdwYXNzd29yZE1pbkFnZSc6IHN0cihkYXlzX3RvX3NlY3MoMykp LAotKyAgICAgICAgICAgICdwYXNzd29yZE1heEFnZSc6IHN0cihkYXlzX3RvX3NlY3MoMzApKSwK LSsgICAgICAgICAgICAncGFzc3dvcmRXYXJuaW5nJzogc3RyKGRheXNfdG9fc2Vjcyg5KSkKLSsg ICAgICAgIH0KLSsKLSsgICAgaWYgcG9saWN5ID09ICdnbG9iYWwnOgotKyAgICAgICAgcHdwX21n ci5zZXRfZ2xvYmFsX3BvbGljeShwcm9wZXJ0aWVzPXBvbGljeV9wcm9wcykKLSsgICAgZWxpZiBw b2xpY3kgaW4gWydzdWJ0cmVlJywgJ3VzZXInXToKLSsgICAgICAgIHBvbGljeV9lbnRyeSA9IHB3 cF9tZ3IuZ2V0X3B3cG9saWN5X2VudHJ5KGRuKQotKyAgICAgICAgcG9saWN5X2VudHJ5LnJlcGxh Y2VfbWFueSgqcG9saWN5X3Byb3BzLml0ZW1zKCkpCi0rICAgIGVsc2U6Ci0rICAgICAgICByYWlz ZSBWYWx1ZUVycm9yKGYnSW52YWxpZCB0eXBlIG9mIHBhc3N3b3JkIHBvbGljeToge3BvbGljeX0n KQotKyAgICBsb2cuaW5mbyhmJ01vZGlmaWVkIHtwb2xpY3l9IHBvbGljeSB3aXRoIHtwb2xpY3lf cHJvcHN9LicpCi0rCi0rQHB5dGVzdC5tYXJrLnNraXBpZihkc19pc19vbGRlcignMS4zLjYnKSwg cmVhc29uPSJOb3QgaW1wbGVtZW50ZWQiKQotK2RlZiB0ZXN0X3NoYWRvd2FjY291bnRfbm9fcG9s aWN5KHRvcG9sb2d5X3N0LCBzaGFkb3dVc2VyKToKLSsgICAgIiIiQ2hlY2sgc2hhZG93QWNjb3Vu dCB1bmRlciBubyBwYXNzd29yZCBwb2xpY3kKLSsKLSsgICAgOmlkOiBhMWIyYzNkNC01ZTZmLTc4 OTAtYWJjZC1lZjEyMzQ1Njc4OTAKLSsgICAgOnNldHVwOiBTdGFuZGFsb25lIGluc3RhbmNlCi0r ICAgIDpzdGVwczoKLSsgICAgICAgIDEuIEFkZCBhIHVzZXIgd2l0aCBzaGFkb3dBY2NvdW50IG9i amVjdGNsYXNzCi0rICAgICAgICAyLiBCaW5kIGFzIHRoZSB1c2VyCi0rICAgICAgICAzLiBDaGVj ayBzaGFkb3dMYXN0Q2hhbmdlIGF0dHJpYnV0ZSBpcyBzZXQgY29ycmVjdGx5Ci0rICAgIDpleHBl Y3RlZHJlc3VsdHM6Ci0rICAgICAgICAxLiBVc2VyIGlzIGFkZGVkIHN1Y2Nlc3NmdWxseQotKyAg ICAgICAgMi4gQmluZCBpcyBzdWNjZXNzZnVsCi0rICAgICAgICAzLiBzaGFkb3dMYXN0Q2hhbmdl IGlzIHNldCBjb3JyZWN0bHkgKGRheXMgc2luY2UgZXBvY2gpCi0rICAgICIiIgotKwotKyAgICBl ZGF0ZSA9IGludCh0aW1lLnRpbWUoKSAvICg2MCAqIDYwICogMjQpKQotKwotKyAgICBsb2cuaW5m byhmIkJpbmQgYXMge3NoYWRvd1VzZXIuZG59IikKLSsgICAgc2hhZG93VXNlci5yZWJpbmQoJ3Bh c3N3b3JkJykKLSsgICAgY2hlY2tfc2hhZG93X2F0dHJfdmFsdWUodG9wb2xvZ3lfc3Quc3RhbmRh bG9uZSwgc2hhZG93VXNlci5kbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NoYWRv d0xhc3RDaGFuZ2UnLCBlZGF0ZSkKLSsKLSsKLStAcHl0ZXN0Lm1hcmsuc2tpcGlmKGRzX2lzX29s ZGVyKCcxLjMuNicpLCByZWFzb249Ik5vdCBpbXBsZW1lbnRlZCIpCi0rZGVmIHRlc3Rfc2hhZG93 YWNjb3VudF9nbG9iYWxfcG9saWN5KHRvcG9sb2d5X3N0LCBzaGFkb3dVc2VyLCByZXF1ZXN0KToK LSsgICAgIiIiQ2hlY2sgc2hhZG93QWNjb3VudCB3aXRoIGdsb2JhbCBwYXNzd29yZCBwb2xpY3kK LSsKLSsgICAgOmlkOiBiMmMzZDRlNS02ZjdhLTg5MDEtYmNkZS1mMjM0NTY3ODkwMTIKLSsgICAg OnNldHVwOiBTdGFuZGFsb25lIGluc3RhbmNlCi0rICAgIDpzdGVwczoKLSsgICAgICAgIDEuIFNl dCBnbG9iYWwgcGFzc3dvcmQgcG9saWN5Ci0rICAgICAgICAyLiBBZGQgYSBzZWNvbmQgc2hhZG93 QWNjb3VudCB1c2VyCi0rICAgICAgICAzLiBCaW5kIGFzIGVhY2ggdXNlciBhbmQgY2hlY2sgc2hh ZG93QWNjb3VudCBhdHRyaWJ1dGVzCi0rICAgICAgICA0LiBNb2RpZnkgZ2xvYmFsIHBhc3N3b3Jk IHBvbGljeQotKyAgICAgICAgNS4gQ2hhbmdlIHVzZXIgcGFzc3dvcmQgKGFzIHRoZSB1c2VyLCBu b3QgRE0pCi0rICAgICAgICA2LiBSZS1iaW5kIHdpdGggbmV3IHBhc3N3b3JkCi0rICAgICAgICA3 LiBDaGVjayBzaGFkb3dBY2NvdW50IGF0dHJpYnV0ZXMgYXJlIHVwZGF0ZWQKLSsgICAgICAgIDgu IENsZWFuIHVwIC0gZGVsZXRlIHNlY29uZCB1c2VyIGFuZCByZXNldCBwb2xpY3kKLSsgICAgOmV4 cGVjdGVkcmVzdWx0czoKLSsgICAgICAgIDEuIEdsb2JhbCBwYXNzd29yZCBwb2xpY3kgaXMgc2V0 IHN1Y2Nlc3NmdWxseQotKyAgICAgICAgMi4gU2Vjb25kIHVzZXIgaXMgYWRkZWQKLSsgICAgICAg IDMuIHNoYWRvd0FjY291bnQgYXR0cmlidXRlcyBtYXRjaCBwb2xpY3kgdmFsdWVzIGZvciBib3Ro IHVzZXJzCi0rICAgICAgICA0LiBQYXNzd29yZCBwb2xpY3kgaXMgbW9kaWZpZWQgc3VjY2Vzc2Z1 bGx5Ci0rICAgICAgICA1LiBQYXNzd29yZCBpcyBjaGFuZ2VkIHN1Y2Nlc3NmdWxseQotKyAgICAg ICAgNi4gUmUtYmluZCB3aXRoIG5ldyBwYXNzd29yZCBpcyBzdWNjZXNzZnVsCi0rICAgICAgICA3 LiBzaGFkb3dBY2NvdW50IGF0dHJpYnV0ZXMgYXJlIHVwZGF0ZWQgdG8gbWF0Y2ggbmV3IHBvbGlj eSB2YWx1ZXMKLSsgICAgICAgIDguIENsZWFudXAgaXMgc3VjY2Vzc2Z1bAotKyAgICAiIiIKLSsg ICAgaW5zdCA9IHRvcG9sb2d5X3N0LnN0YW5kYWxvbmUKLSsKLSsgICAgbG9nLmluZm8oJ0NyZWF0 ZSBzZWNvbmQgc2hhZG93QWNjb3VudCB1c2VyJykKLSsgICAgdXNlcnMgPSBVc2VyQWNjb3VudHMo aW5zdCwgREVGQVVMVF9TVUZGSVgpCi0rICAgIHNoYWRvd1VzZXIyID0gdXNlcnMuY3JlYXRlKHBy b3BlcnRpZXM9ewotKyAgICAgICAgJ29iamVjdGNsYXNzJzogWyd0b3AnLCAncGVyc29uJywgJ29y Z2FuaXphdGlvbmFsUGVyc29uJywKLSsgICAgICAgICAgICAgICAgICAgICAgICAnaW5ldE9yZ1Bl cnNvbicsICdleHRlbnNpYmxlT2JqZWN0JywgJ3NoYWRvd0FjY291bnQnXSwKLSsgICAgICAgICdz bic6ICcyJywKLSsgICAgICAgICdjbic6ICdzaGFkb3dVc2VyMicsCi0rICAgICAgICAndWlkJzog J3NoYWRvd1VzZXIyJywKLSsgICAgICAgICd1aWROdW1iZXInOiAnMicsCi0rICAgICAgICAnZ2lk TnVtYmVyJzogJzIyJywKLSsgICAgICAgICdob21lRGlyZWN0b3J5JzogJy9ob21lL3NoYWRvd1Vz ZXIyJywKLSsgICAgICAgICdkaXNwbGF5TmFtZSc6ICdTaGFkb3cgVXNlciAyJywKLSsgICAgICAg ICdnaXZlbm5hbWUnOiAnU2hhZG93MicsCi0rICAgICAgICAnbWFpbCc6IGYnc2hhZG93dXNlcjJA e0RFRkFVTFRfU1VGRklYfScsCi0rICAgICAgICAndXNlcnBhc3N3b3JkJzogJ3Bhc3N3b3JkJwot KyAgICB9KQotKwotKyAgICBkZWYgZmluKCk6Ci0rICAgICAgICBsb2cuaW5mbygnQ2xlYW4gdXAg LSBkZWxldGUgc2Vjb25kIHVzZXIgYW5kIHJlc2V0IGdsb2JhbCBwb2xpY3knKQotKyAgICAgICAg ZG0gPSBEaXJlY3RvcnlNYW5hZ2VyKGluc3QpCi0rICAgICAgICBkbS5yZWJpbmQoKQotKyAgICAg ICAgdHJ5OgotKyAgICAgICAgICAgIHNoYWRvd1VzZXIyLmRlbGV0ZSgpCi0rICAgICAgICBleGNl cHQgRXhjZXB0aW9uOgotKyAgICAgICAgICAgIHBhc3MKLSsgICAgICAgIGluc3QuY29uZmlnLnJl cGxhY2UoJ3Bhc3N3b3JkTWluQWdlJywgJzAnKQotKyAgICAgICAgaW5zdC5jb25maWcucmVwbGFj ZSgncGFzc3dvcmRNYXhBZ2UnLCAnODY0MDAwMCcpCi0rICAgICAgICBpbnN0LmNvbmZpZy5yZXBs YWNlKCdwYXNzd29yZFdhcm5pbmcnLCAnODY0MDAnKQotKyAgICAgICAgaW5zdC5jb25maWcucmVw bGFjZSgncGFzc3dvcmRFeHAnLCAnb2ZmJykKLSsgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoZmlu KQotKwotKyAgICBsb2cuaW5mbygnQ29uZmlndXJlIGdsb2JhbCBwYXNzd29yZCBwb2xpY3knKQot KyAgICBwd3BfbWdyID0gUHdQb2xpY3lNYW5hZ2VyKGluc3QpCi0rICAgIHNldHVwX3B3cChpbnN0 LCBwd3BfbWdyLCAnZ2xvYmFsJykKLSsKLSsgICAgZWRhdGUgPSBpbnQodGltZS50aW1lKCkgLyAo NjAgKiA2MCAqIDI0KSkKLSsKLSsgICAgbG9nLmluZm8oJ1ZlcmlmeSBhdHRyaWJ1dGVzIG9mIHNo YWRvd1VzZXIgKHVzZXIgMSknKQotKyAgICBzaGFkb3dVc2VyLnJlYmluZCgncGFzc3dvcmQnKQot KyAgICBjaGVja19zaGFkb3dfYXR0cl92YWx1ZShpbnN0LCBzaGFkb3dVc2VyLmRuLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAnc2hhZG93TGFzdENoYW5nZScsIGVkYXRlKQotKyAgICBj aGVja19zaGFkb3dfYXR0cl92YWx1ZShpbnN0LCBzaGFkb3dVc2VyLmRuLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAnc2hhZG93TWluJywgMSkKLSsgICAgY2hlY2tfc2hhZG93X2F0dHJf dmFsdWUoaW5zdCwgc2hhZG93VXNlci5kbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg J3NoYWRvd01heCcsIDEwKQotKyAgICBjaGVja19zaGFkb3dfYXR0cl92YWx1ZShpbnN0LCBzaGFk b3dVc2VyLmRuLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hhZG93V2FybmluZycs IDMpCi0rCi0rICAgIGxvZy5pbmZvKCdWZXJpZnkgYXR0cmlidXRlcyBvZiBzaGFkb3dVc2VyMiAo dXNlciAyKScpCi0rICAgIHNoYWRvd1VzZXIyLnJlYmluZCgncGFzc3dvcmQnKQotKyAgICBjaGVj a19zaGFkb3dfYXR0cl92YWx1ZShpbnN0LCBzaGFkb3dVc2VyMi5kbiwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJ3NoYWRvd0xhc3RDaGFuZ2UnLCBlZGF0ZSkKLSsgICAgY2hlY2tfc2hh ZG93X2F0dHJfdmFsdWUoaW5zdCwgc2hhZG93VXNlcjIuZG4sCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICdzaGFkb3dNaW4nLCAxKQotKyAgICBjaGVja19zaGFkb3dfYXR0cl92YWx1ZShp bnN0LCBzaGFkb3dVc2VyMi5kbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NoYWRv d01heCcsIDEwKQotKyAgICBjaGVja19zaGFkb3dfYXR0cl92YWx1ZShpbnN0LCBzaGFkb3dVc2Vy Mi5kbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NoYWRvd1dhcm5pbmcnLCAzKQot KwotKyAgICBsb2cuaW5mbygnTW9kaWZ5IGdsb2JhbCBwYXNzd29yZCBwb2xpY3knKQotKyAgICBt b2RpZnlfcHdwKGluc3QsIHB3cF9tZ3IsICdnbG9iYWwnKQotKwotKyAgICBsb2cuaW5mbygnQ2hh bmdlIHNoYWRvd1VzZXIyIHBhc3N3b3JkIGFzIHRoZSB1c2VyJykKLSsgICAgc2hhZG93VXNlcjIu cmViaW5kKCdwYXNzd29yZCcpCi0rICAgIHNoYWRvd1VzZXIyLnJlcGxhY2UoJ3VzZXJwYXNzd29y ZCcsICdwYXNzd29yZDInKQotKyAgICB0aW1lLnNsZWVwKDEpCi0rCi0rICAgIGxvZy5pbmZvKCdS ZS1iaW5kIGFzIHNoYWRvd1VzZXIyIHdpdGggbmV3IHBhc3N3b3JkJykKLSsgICAgc2hhZG93VXNl cjIucmViaW5kKCdwYXNzd29yZDInKQotKwotKyAgICBsb2cuaW5mbygnVmVyaWZ5IG1vZGlmaWVk IHNoYWRvd1VzZXIyIGF0dHJpYnV0ZXMnKQotKyAgICBjaGVja19zaGFkb3dfYXR0cl92YWx1ZShp bnN0LCBzaGFkb3dVc2VyMi5kbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NoYWRv d01pbicsIDMpCi0rICAgIGNoZWNrX3NoYWRvd19hdHRyX3ZhbHVlKGluc3QsIHNoYWRvd1VzZXIy LmRuLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hhZG93TWF4JywgMzApCi0rICAg IGNoZWNrX3NoYWRvd19hdHRyX3ZhbHVlKGluc3QsIHNoYWRvd1VzZXIyLmRuLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAnc2hhZG93V2FybmluZycsIDkpCi0rCi0rCi0rQHB5dGVzdC5t YXJrLnNraXBpZihkc19pc19vbGRlcignMS4zLjYnKSwgcmVhc29uPSJOb3QgaW1wbGVtZW50ZWQi KQotK2RlZiB0ZXN0X3NoYWRvd2FjY291bnRfc3VidHJlZV9wb2xpY3kodG9wb2xvZ3lfc3QsIHJl cXVlc3QpOgotKyAgICAiIiJDaGVjayBzaGFkb3dBY2NvdW50IHdpdGggc3VidHJlZSBsZXZlbCBw YXNzd29yZCBwb2xpY3kKLSsKLSsgICAgOmlkOiBjM2Q0ZTVmNi03YThiLTkwMTItY2RlZi0zNDU2 Nzg5MDEyMzQKLSsgICAgOnNldHVwOiBTdGFuZGFsb25lIGluc3RhbmNlCi0rICAgIDpzdGVwczoK LSsgICAgICAgIDEuIENyZWF0ZSBzdWJ0cmVlIHBhc3N3b3JkIHBvbGljeSBmb3IgREVGQVVMVF9T VUZGSVggd2l0aCBwYXNzd29yZE11c3RDaGFuZ2Ugb24KLSsgICAgICAgIDIuIEFkZCBhIG5ldyBz aGFkb3dBY2NvdW50IHVzZXIgdW5kZXIgdGhlIHN1YnRyZWUKLSsgICAgICAgIDMuIENoZWNrIHNo YWRvd0xhc3RDaGFuZ2UgaXMgMCAoc2luY2UgcGFzc3dvcmRNdXN0Q2hhbmdlIGlzIG9uKQotKyAg ICAgICAgNC4gVmVyaWZ5IHNlYXJjaCBhcyB1c2VyIGZhaWxzIHdpdGggVU5XSUxMSU5HX1RPX1BF UkZPUk0KLSsgICAgICAgIDUuIENoYW5nZSB1c2VyIHBhc3N3b3JkIChhcyB1c2VyKQotKyAgICAg ICAgNi4gUmUtYmluZCB3aXRoIG5ldyBwYXNzd29yZAotKyAgICAgICAgNy4gQ2hlY2sgc2hhZG93 QWNjb3VudCBhdHRyaWJ1dGVzIGFyZSB1cGRhdGVkIHdpdGggY29ycmVjdCB2YWx1ZXMKLSsgICAg ICAgIDguIENsZWFuIHVwIHN1YnRyZWUgcGFzc3dvcmQgcG9saWN5Ci0rICAgIDpleHBlY3RlZHJl c3VsdHM6Ci0rICAgICAgICAxLiBTdWJ0cmVlIHBhc3N3b3JkIHBvbGljeSBpcyBjcmVhdGVkIHN1 Y2Nlc3NmdWxseQotKyAgICAgICAgMi4gVXNlciBpcyBhZGRlZCBzdWNjZXNzZnVsbHkKLSsgICAg ICAgIDMuIHNoYWRvd0xhc3RDaGFuZ2UgaXMgMCB1bnRpbCBwYXNzd29yZCBpcyBjaGFuZ2VkCi0r ICAgICAgICA0LiBTZWFyY2ggZmFpbHMgd2l0aCBVTldJTExJTkdfVE9fUEVSRk9STSBhcyBleHBl Y3RlZAotKyAgICAgICAgNS4gUGFzc3dvcmQgaXMgY2hhbmdlZCBzdWNjZXNzZnVsbHkKLSsgICAg ICAgIDYuIFJlLWJpbmQgd2l0aCBuZXcgcGFzc3dvcmQgaXMgc3VjY2Vzc2Z1bAotKyAgICAgICAg Ny4gc2hhZG93QWNjb3VudCBhdHRyaWJ1dGVzIGFyZSB1cGRhdGVkIHRvIG1hdGNoIHBvbGljeSB2 YWx1ZXMKLSsgICAgICAgIDguIFN1YnRyZWUgcGFzc3dvcmQgcG9saWN5IGlzIGRlbGV0ZWQgc3Vj Y2Vzc2Z1bGx5Ci0rICAgICIiIgotKyAgICBpbnN0ID0gdG9wb2xvZ3lfc3Quc3RhbmRhbG9uZQot KyAgICBzdWJ0cmVlX2RuID0gREVGQVVMVF9TVUZGSVgKLSsKLSsgICAgbG9nLmluZm8oJ0NvbmZp Z3VyZSBzdWJ0cmVlIHBhc3N3b3JkIHBvbGljeSB3aXRoIHBhc3N3b3JkTXVzdENoYW5nZSBvbicp Ci0rICAgIHByb3BlcnRpZXMgPSB7Ci0rICAgICAgICAncGFzc3dvcmRNdXN0Q2hhbmdlJzogJ29u JywKLSsgICAgICAgICdwYXNzd29yZEV4cCc6ICdvbicsCi0rICAgICAgICAncGFzc3dvcmRNaW5B Z2UnOiBzdHIoZGF5c190b19zZWNzKDIpKSwKLSsgICAgICAgICdwYXNzd29yZE1heEFnZSc6IHN0 cihkYXlzX3RvX3NlY3MoMjApKSwKLSsgICAgICAgICdwYXNzd29yZFdhcm5pbmcnOiBzdHIoZGF5 c190b19zZWNzKDYpKSwKLSsgICAgICAgICdwYXNzd29yZENoYW5nZSc6ICdvbicsCi0rICAgICAg ICAncGFzc3dvcmRTdG9yYWdlU2NoZW1lJzogJ2NsZWFyJwotKyAgICB9Ci0rCi0rICAgIHB3cF9t Z3IgPSBQd1BvbGljeU1hbmFnZXIoaW5zdCkKLSsgICAgc2V0dXBfcHdwKGluc3QsIHB3cF9tZ3Is ICdzdWJ0cmVlJywgZG49c3VidHJlZV9kbiwgcG9saWN5X3Byb3BzPXByb3BlcnRpZXMpCi0rCi0r ICAgIGRlZiBmaW4oKToKLSsgICAgICAgIGxvZy5pbmZvKCdDbGVhbiB1cDogZGVsZXRlIHN1YnRy ZWUgcGFzc3dvcmQgcG9saWN5JykKLSsgICAgICAgIGRtID0gRGlyZWN0b3J5TWFuYWdlcihpbnN0 KQotKyAgICAgICAgZG0ucmViaW5kKCkKLSsgICAgICAgIHRyeToKLSsgICAgICAgICAgICBwd3Bf bWdyLmRlbGV0ZV9sb2NhbF9wb2xpY3koc3VidHJlZV9kbikKLSsgICAgICAgIGV4Y2VwdCBFeGNl cHRpb246Ci0rICAgICAgICAgICAgcGFzcwotKyAgICAgICAgdHJ5OgotKyAgICAgICAgICAgIHN1 YnRyZWVfdXNlci5kZWxldGUoKQotKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSsgICAgICAg ICAgICBwYXNzCi0rICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKGZpbikKLSsKLSsgICAgbG9nLmlu Zm8oJ0FkZCBhIG5ldyBzaGFkb3dBY2NvdW50IHVzZXIgdW5kZXIgdGhlIHN1YnRyZWUnKQotKyAg ICB1c2VycyA9IFVzZXJBY2NvdW50cyhpbnN0LCBERUZBVUxUX1NVRkZJWCkKLSsgICAgc3VidHJl ZV91c2VyID0gdXNlcnMuY3JlYXRlKHByb3BlcnRpZXM9ewotKyAgICAgICAgJ29iamVjdGNsYXNz JzogWyd0b3AnLCAncGVyc29uJywgJ29yZ2FuaXphdGlvbmFsUGVyc29uJywKLSsgICAgICAgICAg ICAgICAgICAgICAgICAnaW5ldE9yZ1BlcnNvbicsICdleHRlbnNpYmxlT2JqZWN0JywgJ3NoYWRv d0FjY291bnQnXSwKLSsgICAgICAgICdzbic6ICczJywKLSsgICAgICAgICdjbic6ICdzdWJ0cmVl VXNlcicsCi0rICAgICAgICAndWlkJzogJ3N1YnRyZWVVc2VyJywKLSsgICAgICAgICd1aWROdW1i ZXInOiAnMycsCi0rICAgICAgICAnZ2lkTnVtYmVyJzogJzMzJywKLSsgICAgICAgICdob21lRGly ZWN0b3J5JzogJy9ob21lL3N1YnRyZWVVc2VyJywKLSsgICAgICAgICdkaXNwbGF5TmFtZSc6ICdT dWJ0cmVlIFVzZXInLAotKyAgICAgICAgJ2dpdmVubmFtZSc6ICdTdWJ0cmVlJywKLSsgICAgICAg ICdtYWlsJzogZidzdWJ0cmVldXNlckB7REVGQVVMVF9TVUZGSVh9JywKLSsgICAgICAgICd1c2Vy cGFzc3dvcmQnOiAncGFzc3dvcmQnCi0rICAgIH0pCi0rCi0rICAgIGRtID0gRGlyZWN0b3J5TWFu YWdlcihpbnN0KQotKyAgICBkbS5yZWJpbmQoKQotKwotKyAgICBsb2cuaW5mbygnVmVyaWZ5IHNo YWRvd0xhc3RDaGFuZ2UgaXMgMCBzaW5jZSBwYXNzd29yZE11c3RDaGFuZ2UgaXMgb24nKQotKyAg ICBjaGVja19zaGFkb3dfYXR0cl92YWx1ZShpbnN0LCBzdWJ0cmVlX3VzZXIuZG4sCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICdzaGFkb3dMYXN0Q2hhbmdlJywgMCkKLSsgICAgY2hlY2tf c2hhZG93X2F0dHJfdmFsdWUoaW5zdCwgc3VidHJlZV91c2VyLmRuLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAnc2hhZG93TWluJywgMikKLSsgICAgY2hlY2tfc2hhZG93X2F0dHJfdmFs dWUoaW5zdCwgc3VidHJlZV91c2VyLmRuLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAn c2hhZG93TWF4JywgMjApCi0rICAgIGNoZWNrX3NoYWRvd19hdHRyX3ZhbHVlKGluc3QsIHN1YnRy ZWVfdXNlci5kbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NoYWRvd1dhcm5pbmcn LCA2KQotKwotKyAgICBsb2cuaW5mbyhmJ0JpbmQgYXMge3N1YnRyZWVfdXNlci5kbn0gYW5kIHZl cmlmeSBzZWFyY2ggZmFpbHMgd2l0aCBVTldJTExJTkdfVE9fUEVSRk9STScpCi0rICAgIHN1YnRy ZWVfdXNlci5yZWJpbmQoJ3Bhc3N3b3JkJykKLSsgICAgd2l0aCBweXRlc3QucmFpc2VzKGxkYXAu VU5XSUxMSU5HX1RPX1BFUkZPUk0pOgotKyAgICAgICAgc3VidHJlZV91c2VyLmV4aXN0cygpCi0r Ci0rICAgIGxvZy5pbmZvKCdNb2RpZnkgc3VidHJlZSBwYXNzd29yZCBwb2xpY3knKQotKyAgICBk bS5yZWJpbmQoKQotKyAgICBtb2RpZnlfcHJvcGVydGllcyA9IHsKLSsgICAgICAgICdwYXNzd29y ZE1pbkFnZSc6IHN0cihkYXlzX3RvX3NlY3MoNCkpLAotKyAgICAgICAgJ3Bhc3N3b3JkTWF4QWdl Jzogc3RyKGRheXNfdG9fc2Vjcyg0MCkpLAotKyAgICAgICAgJ3Bhc3N3b3JkV2FybmluZyc6IHN0 cihkYXlzX3RvX3NlY3MoMTIpKQotKyAgICB9Ci0rICAgIG1vZGlmeV9wd3AoaW5zdCwgcHdwX21n ciwgJ3N1YnRyZWUnLCBkbj1zdWJ0cmVlX2RuLCBwb2xpY3lfcHJvcHM9bW9kaWZ5X3Byb3BlcnRp ZXMpCi0rCi0rICAgIGxvZy5pbmZvKGYnQ2hhbmdlIHtzdWJ0cmVlX3VzZXIuZG59IHBhc3N3b3Jk IGFzIHRoZSB1c2VyJykKLSsgICAgc3VidHJlZV91c2VyLnJlYmluZCgncGFzc3dvcmQnKQotKyAg ICBzdWJ0cmVlX3VzZXIucmVwbGFjZSgndXNlcnBhc3N3b3JkJywgJ3Bhc3N3b3JkMCcpCi0rICAg IHRpbWUuc2xlZXAoMSkKLSsKLSsgICAgbG9nLmluZm8oZidSZS1iaW5kIGFzIHtzdWJ0cmVlX3Vz ZXIuZG59IHdpdGggbmV3IHBhc3N3b3JkJykKLSsgICAgc3VidHJlZV91c2VyLnJlYmluZCgncGFz c3dvcmQwJykKLSsKLSsgICAgZWRhdGUgPSBpbnQodGltZS50aW1lKCkgLyAoNjAgKiA2MCAqIDI0 KSkKLSsKLSsgICAgbG9nLmluZm8oJ1ZlcmlmeSBzaGFkb3dMYXN0Q2hhbmdlIGlzIG5vdyBzZXQg dG8gdG9kYXkgYWZ0ZXIgcGFzc3dvcmQgY2hhbmdlJykKLSsgICAgY2hlY2tfc2hhZG93X2F0dHJf dmFsdWUoaW5zdCwgc3VidHJlZV91c2VyLmRuLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnc2hhZG93TGFzdENoYW5nZScsIGVkYXRlKQotKyAgICBjaGVja19zaGFkb3dfYXR0cl92YWx1 ZShpbnN0LCBzdWJ0cmVlX3VzZXIuZG4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICdz aGFkb3dNaW4nLCA0KQotKyAgICBjaGVja19zaGFkb3dfYXR0cl92YWx1ZShpbnN0LCBzdWJ0cmVl X3VzZXIuZG4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzaGFkb3dNYXgnLCA0MCkK LSsgICAgY2hlY2tfc2hhZG93X2F0dHJfdmFsdWUoaW5zdCwgc3VidHJlZV91c2VyLmRuLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hhZG93V2FybmluZycsIDEyKQotKwotKwotK0Bw eXRlc3QubWFyay5za2lwaWYoZHNfaXNfb2xkZXIoJzEuMy42JyksIHJlYXNvbj0iTm90IGltcGxl bWVudGVkIikKLStkZWYgdGVzdF9zaGFkb3dhY2NvdW50X3VzZXJfcG9saWN5KHRvcG9sb2d5X3N0 LCByZXF1ZXN0KToKLSsgICAgIiIiQ2hlY2sgc2hhZG93QWNjb3VudCB3aXRoIHVzZXIgbGV2ZWwg cGFzc3dvcmQgcG9saWN5Ci0rCi0rICAgIDppZDogZDRlNWY2YTctOGI5Yy0wMTIzLWRlZjAtNDU2 Nzg5MDEyMzQ1Ci0rICAgIDpzZXR1cDogU3RhbmRhbG9uZSBpbnN0YW5jZQotKyAgICA6c3RlcHM6 Ci0rICAgICAgICAxLiBDcmVhdGUgYSBuZXcgc2hhZG93QWNjb3VudCB1c2VyCi0rICAgICAgICAy LiBDcmVhdGUgdXNlciBwYXNzd29yZCBwb2xpY3kKLSsgICAgICAgIDMuIFZlcmlmeSBzaGFkb3dB Y2NvdW50IGF0dHJpYnV0ZXMgbWF0Y2ggcG9saWN5IHZhbHVlcwotKyAgICAgICAgNC4gTW9kaWZ5 IHVzZXIgcGFzc3dvcmQgcG9saWN5Ci0rICAgICAgICA1LiBDaGFuZ2UgdXNlciBwYXNzd29yZAot KyAgICAgICAgNi4gUmUtYmluZCB3aXRoIG5ldyBwYXNzd29yZAotKyAgICAgICAgNy4gQ2hlY2sg c2hhZG93QWNjb3VudCBhdHRyaWJ1dGVzIGFyZSB1cGRhdGVkCi0rICAgICAgICA4LiBDbGVhbiB1 cCB1c2VyIHBhc3N3b3JkIHBvbGljeQotKyAgICA6ZXhwZWN0ZWRyZXN1bHRzOgotKyAgICAgICAg MS4gVXNlciBpcyBjcmVhdGVkIHN1Y2Nlc3NmdWxseQotKyAgICAgICAgMi4gVXNlciBwYXNzd29y ZCBwb2xpY3kgaXMgY3JlYXRlZCBzdWNjZXNzZnVsbHkKLSsgICAgICAgIDMuIHNoYWRvd0FjY291 bnQgYXR0cmlidXRlcyBtYXRjaCBwb2xpY3kgdmFsdWVzCi0rICAgICAgICA0LiBQYXNzd29yZCBw b2xpY3kgaXMgbW9kaWZpZWQgc3VjY2Vzc2Z1bGx5Ci0rICAgICAgICA1LiBQYXNzd29yZCBpcyBj aGFuZ2VkIHN1Y2Nlc3NmdWxseQotKyAgICAgICAgNi4gUmUtYmluZCB3aXRoIG5ldyBwYXNzd29y ZCBpcyBzdWNjZXNzZnVsCi0rICAgICAgICA3LiBzaGFkb3dBY2NvdW50IGF0dHJpYnV0ZXMgYXJl IHVwZGF0ZWQgdG8gbWF0Y2ggbmV3IHBvbGljeSB2YWx1ZXMKLSsgICAgICAgIDguIFVzZXIgcGFz c3dvcmQgcG9saWN5IGlzIGRlbGV0ZWQgc3VjY2Vzc2Z1bGx5Ci0rICAgICIiIgotKyAgICBpbnN0 ID0gdG9wb2xvZ3lfc3Quc3RhbmRhbG9uZQotKwotKyAgICBsb2cuaW5mbygnQ3JlYXRlIGEgbmV3 IHNoYWRvd0FjY291bnQgdXNlciBmb3IgdXNlciBwb2xpY3kgdGVzdCcpCi0rICAgIHVzZXJzID0g VXNlckFjY291bnRzKGluc3QsIERFRkFVTFRfU1VGRklYKQotKyAgICB1c2VyX3BvbGljeV91c2Vy ID0gdXNlcnMuY3JlYXRlKHByb3BlcnRpZXM9ewotKyAgICAgICAgJ29iamVjdGNsYXNzJzogWyd0 b3AnLCAncGVyc29uJywgJ29yZ2FuaXphdGlvbmFsUGVyc29uJywKLSsgICAgICAgICAgICAgICAg ICAgICAgICAnaW5ldE9yZ1BlcnNvbicsICdleHRlbnNpYmxlT2JqZWN0JywgJ3NoYWRvd0FjY291 bnQnXSwKLSsgICAgICAgICdzbic6ICc0JywKLSsgICAgICAgICdjbic6ICd1c2VyUG9saWN5VXNl cicsCi0rICAgICAgICAndWlkJzogJ3VzZXJQb2xpY3lVc2VyJywKLSsgICAgICAgICd1aWROdW1i ZXInOiAnNCcsCi0rICAgICAgICAnZ2lkTnVtYmVyJzogJzQ0JywKLSsgICAgICAgICdob21lRGly ZWN0b3J5JzogJy9ob21lL3VzZXJQb2xpY3lVc2VyJywKLSsgICAgICAgICdkaXNwbGF5TmFtZSc6 ICdVc2VyIFBvbGljeSBVc2VyJywKLSsgICAgICAgICdnaXZlbm5hbWUnOiAnVXNlclBvbGljeScs Ci0rICAgICAgICAnbWFpbCc6IGYndXNlcnBvbGljeXVzZXJAe0RFRkFVTFRfU1VGRklYfScsCi0r ICAgICAgICAndXNlcnBhc3N3b3JkJzogJ3Bhc3N3b3JkJwotKyAgICB9KQotKwotKyAgICBwd3Bf bWdyID0gUHdQb2xpY3lNYW5hZ2VyKGluc3QpCi0rCi0rICAgIGRlZiBmaW4oKToKLSsgICAgICAg IGxvZy5pbmZvKCdDbGVhbiB1cDogZGVsZXRlIHVzZXIgcGFzc3dvcmQgcG9saWN5IGFuZCB1c2Vy JykKLSsgICAgICAgIGRtID0gRGlyZWN0b3J5TWFuYWdlcihpbnN0KQotKyAgICAgICAgZG0ucmVi aW5kKCkKLSsgICAgICAgIHRyeToKLSsgICAgICAgICAgICBwd3BfbWdyLmRlbGV0ZV9sb2NhbF9w b2xpY3kodXNlcl9wb2xpY3lfdXNlci5kbikKLSsgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0r ICAgICAgICAgICAgcGFzcwotKyAgICAgICAgdHJ5OgotKyAgICAgICAgICAgIHVzZXJfcG9saWN5 X3VzZXIuZGVsZXRlKCkKLSsgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0rICAgICAgICAgICAg cGFzcwotKyAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihmaW4pCi0rCi0rICAgIGxvZy5pbmZvKCdD b25maWd1cmUgdXNlciBwYXNzd29yZCBwb2xpY3knKQotKyAgICBwcm9wZXJ0aWVzID0gewotKyAg ICAgICAgJ3Bhc3N3b3JkRXhwJzogJ29uJywKLSsgICAgICAgICdwYXNzd29yZE1pbkFnZSc6IHN0 cihkYXlzX3RvX3NlY3MoMikpLAotKyAgICAgICAgJ3Bhc3N3b3JkTWF4QWdlJzogc3RyKGRheXNf dG9fc2VjcygyMCkpLAotKyAgICAgICAgJ3Bhc3N3b3JkV2FybmluZyc6IHN0cihkYXlzX3RvX3Nl Y3MoNikpLAotKyAgICAgICAgJ3Bhc3N3b3JkQ2hhbmdlJzogJ29uJywKLSsgICAgICAgICdwYXNz d29yZFN0b3JhZ2VTY2hlbWUnOiAnY2xlYXInCi0rICAgIH0KLSsgICAgc2V0dXBfcHdwKGluc3Qs IHB3cF9tZ3IsICd1c2VyJywgZG49dXNlcl9wb2xpY3lfdXNlci5kbiwgcG9saWN5X3Byb3BzPXBy b3BlcnRpZXMpCi0rCi0rICAgIGVkYXRlID0gaW50KHRpbWUudGltZSgpIC8gKDYwICogNjAgKiAy NCkpCi0rCi0rICAgIGRtID0gRGlyZWN0b3J5TWFuYWdlcihpbnN0KQotKyAgICBkbS5yZWJpbmQo KQotKwotKyAgICBsb2cuaW5mbygnVmVyaWZ5IHNoYWRvd0FjY291bnQgYXR0cmlidXRlcyBtYXRj aCB1c2VyIHBvbGljeScpCi0rICAgIGNoZWNrX3NoYWRvd19hdHRyX3ZhbHVlKGluc3QsIHVzZXJf cG9saWN5X3VzZXIuZG4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzaGFkb3dMYXN0 Q2hhbmdlJywgZWRhdGUpCi0rICAgIGNoZWNrX3NoYWRvd19hdHRyX3ZhbHVlKGluc3QsIHVzZXJf cG9saWN5X3VzZXIuZG4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzaGFkb3dNaW4n LCAyKQotKyAgICBjaGVja19zaGFkb3dfYXR0cl92YWx1ZShpbnN0LCB1c2VyX3BvbGljeV91c2Vy LmRuLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hhZG93TWF4JywgMjApCi0rICAg IGNoZWNrX3NoYWRvd19hdHRyX3ZhbHVlKGluc3QsIHVzZXJfcG9saWN5X3VzZXIuZG4sCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICdzaGFkb3dXYXJuaW5nJywgNikKLSsKLSsgICAgbG9n LmluZm8oJ01vZGlmeSB1c2VyIHBhc3N3b3JkIHBvbGljeScpCi0rICAgIG1vZGlmeV9wcm9wZXJ0 aWVzID0gewotKyAgICAgICAgJ3Bhc3N3b3JkTWluQWdlJzogc3RyKGRheXNfdG9fc2Vjcyg0KSks Ci0rICAgICAgICAncGFzc3dvcmRNYXhBZ2UnOiBzdHIoZGF5c190b19zZWNzKDQwKSksCi0rICAg ICAgICAncGFzc3dvcmRXYXJuaW5nJzogc3RyKGRheXNfdG9fc2VjcygxMikpCi0rICAgIH0KLSsg ICAgbW9kaWZ5X3B3cChpbnN0LCBwd3BfbWdyLCAndXNlcicsIGRuPXVzZXJfcG9saWN5X3VzZXIu ZG4sIHBvbGljeV9wcm9wcz1tb2RpZnlfcHJvcGVydGllcykKLSsKLSsgICAgbG9nLmluZm8oZidD aGFuZ2Uge3VzZXJfcG9saWN5X3VzZXIuZG59IHBhc3N3b3JkIGFzIHRoZSB1c2VyJykKLSsgICAg dXNlcl9wb2xpY3lfdXNlci5yZWJpbmQoJ3Bhc3N3b3JkJykKLSsgICAgdXNlcl9wb2xpY3lfdXNl ci5yZXBsYWNlKCd1c2VycGFzc3dvcmQnLCAncGFzc3dvcmQwJykKLSsgICAgdGltZS5zbGVlcCgx KQotKwotKyAgICBsb2cuaW5mbyhmJ1JlLWJpbmQgYXMge3VzZXJfcG9saWN5X3VzZXIuZG59IHdp dGggbmV3IHBhc3N3b3JkJykKLSsgICAgdXNlcl9wb2xpY3lfdXNlci5yZWJpbmQoJ3Bhc3N3b3Jk MCcpCi0rCi0rICAgIGVkYXRlID0gaW50KHRpbWUudGltZSgpIC8gKDYwICogNjAgKiAyNCkpCi0r Ci0rICAgIGxvZy5pbmZvKCdWZXJpZnkgc2hhZG93QWNjb3VudCBhdHRyaWJ1dGVzIGFyZSB1cGRh dGVkIGFmdGVyIHBhc3N3b3JkIGNoYW5nZScpCi0rICAgIGNoZWNrX3NoYWRvd19hdHRyX3ZhbHVl KGluc3QsIHVzZXJfcG9saWN5X3VzZXIuZG4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICdzaGFkb3dMYXN0Q2hhbmdlJywgZWRhdGUpCi0rICAgIGNoZWNrX3NoYWRvd19hdHRyX3ZhbHVl KGluc3QsIHVzZXJfcG9saWN5X3VzZXIuZG4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICdzaGFkb3dNaW4nLCA0KQotKyAgICBjaGVja19zaGFkb3dfYXR0cl92YWx1ZShpbnN0LCB1c2Vy X3BvbGljeV91c2VyLmRuLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hhZG93TWF4 JywgNDApCi0rICAgIGNoZWNrX3NoYWRvd19hdHRyX3ZhbHVlKGluc3QsIHVzZXJfcG9saWN5X3Vz ZXIuZG4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzaGFkb3dXYXJuaW5nJywgMTIp Ci0rCi0rCi0gaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICAgIyBSdW4gaXNvbGF0ZWQK LSAgICAgIyAtcyBmb3IgREVCVUcgbW9kZQotZGlmZiAtLWdpdCBhL2RpcnNydnRlc3RzL3Rlc3Rz L3RpY2tldHMvdGlja2V0NTQ4X3Rlc3QucHkgYi9kaXJzcnZ0ZXN0cy90ZXN0cy90aWNrZXRzL3Rp Y2tldDU0OF90ZXN0LnB5Ci1kZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IGNhYzNjYzVm OC4uMDAwMDAwMDAwCi0tLS0gYS9kaXJzcnZ0ZXN0cy90ZXN0cy90aWNrZXRzL3RpY2tldDU0OF90 ZXN0LnB5Ci0rKysgL2Rldi9udWxsCi1AQCAtMSw0MDggKzAsMCBAQAotLSMgLS0tIEJFR0lOIENP UFlSSUdIVCBCTE9DSyAtLS0KLS0jIENvcHlyaWdodCAoQykgMjAxNiBSZWQgSGF0LCBJbmMuCi0t IyBBbGwgcmlnaHRzIHJlc2VydmVkLgotLSMKLS0jIExpY2Vuc2U6IEdQTCAodmVyc2lvbiAzIG9y IGFueSBsYXRlciB2ZXJzaW9uKS4KLS0jIFNlZSBMSUNFTlNFIGZvciBkZXRhaWxzLgotLSMgLS0t IEVORCBDT1BZUklHSFQgQkxPQ0sgLS0tCi0tIwotLWltcG9ydCBweXRlc3QKLS1mcm9tIGxpYjM4 OS50YXNrcyBpbXBvcnQgKgotLWZyb20gbGliMzg5LnV0aWxzIGltcG9ydCAqCi0tZnJvbSBsaWIz ODkudG9wb2xvZ2llcyBpbXBvcnQgdG9wb2xvZ3lfc3QKLS0KLS1mcm9tIGxpYjM4OS5fY29uc3Rh bnRzIGltcG9ydCBERUZBVUxUX1NVRkZJWCwgRE5fQ09ORklHLCBETl9ETSwgUEFTU1dPUkQsIERF RkFVTFRfU1VGRklYX0VTQ0FQRUQKLS0KLS0jIFNraXAgb24gb2xkZXIgdmVyc2lvbnMKLS1weXRl c3RtYXJrID0gW3B5dGVzdC5tYXJrLnRpZXIyLAotLSAgICAgICAgICAgICAgcHl0ZXN0Lm1hcmsu c2tpcGlmKGRzX2lzX29sZGVyKCcxLjMuNicpLCByZWFzb249Ik5vdCBpbXBsZW1lbnRlZCIpXQot LQotLWxvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQotLQotLSMgQXNzdW1pbmcgREVG QVVMVF9TVUZGSVggaXMgImRjPWV4YW1wbGUsZGM9Y29tIiwgb3RoZXJ3aXNlIGl0IGRvZXMgbm90 IHdvcmsuLi4gOigKLS1TVUJUUkVFX0NPTlRBSU5FUiA9ICdjbj1uc1B3UG9saWN5Q29udGFpbmVy LCcgKyBERUZBVUxUX1NVRkZJWAotLVNVQlRSRUVfUFdQRE4gPSAnY249bnNQd1BvbGljeUVudHJ5 LCcgKyBERUZBVUxUX1NVRkZJWAotLVNVQlRSRUVfUFdQID0gJ2NuPWNuXDNEbnNQd1BvbGljeUVu dHJ5XDJDJyArIERFRkFVTFRfU1VGRklYX0VTQ0FQRUQgKyAnLCcgKyBTVUJUUkVFX0NPTlRBSU5F UgotLVNVQlRSRUVfQ09TX1RNUExETiA9ICdjbj1uc1B3VGVtcGxhdGVFbnRyeSwnICsgREVGQVVM VF9TVUZGSVgKLS1TVUJUUkVFX0NPU19UTVBMID0gJ2NuPWNuXDNEbnNQd1RlbXBsYXRlRW50cnlc MkMnICsgREVGQVVMVF9TVUZGSVhfRVNDQVBFRCArICcsJyArIFNVQlRSRUVfQ09OVEFJTkVSCi0t U1VCVFJFRV9DT1NfREVGID0gJ2NuPW5zUHdQb2xpY3lfQ29TLCcgKyBERUZBVUxUX1NVRkZJWAot LQotLVVTRVIxX0ROID0gJ3VpZD11c2VyMSwnICsgREVGQVVMVF9TVUZGSVgKLS1VU0VSMl9ETiA9 ICd1aWQ9dXNlcjIsJyArIERFRkFVTFRfU1VGRklYCi0tVVNFUjNfRE4gPSAndWlkPXVzZXIzLCcg KyBERUZBVUxUX1NVRkZJWAotLVVTRVJfUFcgPSAncGFzc3dvcmQnCi0tCi0tCi0tZGVmIGRheXNf dG9fc2VjcyhkYXlzKToKLS0gICAgIyBWYWx1ZSBvZiA2MCAqIDYwICogMjQKLS0gICAgcmV0dXJu IGRheXMgKiA4NjQwMAotLQotLQotLSMgVmFsdWVzIGFyZSBpbiBkYXlzCi0tZGVmIHNldF9nbG9i YWxfcHdwb2xpY3kodG9wb2xvZ3lfc3QsIG1pbl89MSwgbWF4Xz0xMCwgd2Fybj0zKToKLS0gICAg bG9nLmluZm8oIgkrKysrKyBFbmFibGUgZ2xvYmFsIHBhc3N3b3JkIHBvbGljeSArKysrK1xuIikK LS0gICAgIyBFbmFibGUgcGFzc3dvcmQgcG9saWN5Ci0tICAgIHRyeToKLS0gICAgICAgIHRvcG9s b2d5X3N0LnN0YW5kYWxvbmUubW9kaWZ5X3MoRE5fQ09ORklHLCBbKGxkYXAuTU9EX1JFUExBQ0Us ICduc3NsYXBkLXB3cG9saWN5LWxvY2FsJywgYidvbicpXSkKLS0gICAgZXhjZXB0IGxkYXAuTERB UEVycm9yIGFzIGU6Ci0tICAgICAgICBsb2cuZXJyb3IoJ0ZhaWxlZCB0byBzZXQgcHdwb2xpY3kt bG9jYWw6IGVycm9yICcgKyBlLm1lc3NhZ2VbJ2Rlc2MnXSkKLS0gICAgICAgIGFzc2VydCBGYWxz ZQotLQotLSAgICAjIENvbnZlcnQgb3VyIHZhbHVlcyB0byBzZWNvbmRzCi0tICAgIG1pbl9zZWNz ID0gZGF5c190b19zZWNzKG1pbl8pCi0tICAgIG1heF9zZWNzID0gZGF5c190b19zZWNzKG1heF8p Ci0tICAgIHdhcm5fc2VjcyA9IGRheXNfdG9fc2Vjcyh3YXJuKQotLQotLSAgICBsb2cuaW5mbygi CQlTZXQgZ2xvYmFsIHBhc3N3b3JkIE1pbiBBZ2UgLS0gJXMgZGF5XG4iICUgbWluXykKLS0gICAg dHJ5OgotLSAgICAgICAgdG9wb2xvZ3lfc3Quc3RhbmRhbG9uZS5tb2RpZnlfcyhETl9DT05GSUcs IFsobGRhcC5NT0RfUkVQTEFDRSwgJ3Bhc3N3b3JkTWluQWdlJywgKCclcycgJSBtaW5fc2Vjcyku ZW5jb2RlKCkpXSkKLS0gICAgZXhjZXB0IGxkYXAuTERBUEVycm9yIGFzIGU6Ci0tICAgICAgICBs b2cuZXJyb3IoJ0ZhaWxlZCB0byBzZXQgcGFzc3dvcmRNaW5BZ2U6IGVycm9yICcgKyBlLm1lc3Nh Z2VbJ2Rlc2MnXSkKLS0gICAgICAgIGFzc2VydCBGYWxzZQotLQotLSAgICBsb2cuaW5mbygiCQlT ZXQgZ2xvYmFsIHBhc3N3b3JkIEV4cGlyYXRpb24gLS0gb25cbiIpCi0tICAgIHRyeToKLS0gICAg ICAgIHRvcG9sb2d5X3N0LnN0YW5kYWxvbmUubW9kaWZ5X3MoRE5fQ09ORklHLCBbKGxkYXAuTU9E X1JFUExBQ0UsICdwYXNzd29yZEV4cCcsIGInb24nKV0pCi0tICAgIGV4Y2VwdCBsZGFwLkxEQVBF cnJvciBhcyBlOgotLSAgICAgICAgbG9nLmVycm9yKCdGYWlsZWQgdG8gc2V0IHBhc3N3b3JkRXhw OiBlcnJvciAnICsgZS5tZXNzYWdlWydkZXNjJ10pCi0tICAgICAgICBhc3NlcnQgRmFsc2UKLS0K LS0gICAgbG9nLmluZm8oIgkJU2V0IGdsb2JhbCBwYXNzd29yZCBNYXggQWdlIC0tICVzIGRheXNc biIgJSBtYXhfKQotLSAgICB0cnk6Ci0tICAgICAgICB0b3BvbG9neV9zdC5zdGFuZGFsb25lLm1v ZGlmeV9zKEROX0NPTkZJRywgWyhsZGFwLk1PRF9SRVBMQUNFLCAncGFzc3dvcmRNYXhBZ2UnLCAo JyVzJyAlIG1heF9zZWNzKS5lbmNvZGUoKSldKQotLSAgICBleGNlcHQgbGRhcC5MREFQRXJyb3Ig YXMgZToKLS0gICAgICAgIGxvZy5lcnJvcignRmFpbGVkIHRvIHNldCBwYXNzd29yZE1heEFnZTog ZXJyb3IgJyArIGUubWVzc2FnZVsnZGVzYyddKQotLSAgICAgICAgYXNzZXJ0IEZhbHNlCi0tCi0t ICAgIGxvZy5pbmZvKCIJCVNldCBnbG9iYWwgcGFzc3dvcmQgV2FybmluZyAtLSAlcyBkYXlzXG4i ICUgd2FybikKLS0gICAgdHJ5OgotLSAgICAgICAgdG9wb2xvZ3lfc3Quc3RhbmRhbG9uZS5tb2Rp ZnlfcyhETl9DT05GSUcsIFsobGRhcC5NT0RfUkVQTEFDRSwgJ3Bhc3N3b3JkV2FybmluZycsICgn JXMnICUgd2Fybl9zZWNzKS5lbmNvZGUoKSldKQotLSAgICBleGNlcHQgbGRhcC5MREFQRXJyb3Ig YXMgZToKLS0gICAgICAgIGxvZy5lcnJvcignRmFpbGVkIHRvIHNldCBwYXNzd29yZFdhcm5pbmc6 IGVycm9yICcgKyBlLm1lc3NhZ2VbJ2Rlc2MnXSkKLS0gICAgICAgIGFzc2VydCBGYWxzZQotLQot LQotLWRlZiBzZXRfc3VidHJlZV9wd3BvbGljeSh0b3BvbG9neV9zdCwgbWluXz0yLCBtYXhfPTIw LCB3YXJuPTYpOgotLSAgICBsb2cuaW5mbygiCSsrKysrIEVuYWJsZSBzdWJ0cmVlIGxldmVsIHBh c3N3b3JkIHBvbGljeSArKysrK1xuIikKLS0KLS0gICAgIyBDb252ZXJ0IG91ciB2YWx1ZXMgdG8g c2Vjb25kcwotLSAgICBtaW5fc2VjcyA9IGRheXNfdG9fc2VjcyhtaW5fKQotLSAgICBtYXhfc2Vj cyA9IGRheXNfdG9fc2VjcyhtYXhfKQotLSAgICB3YXJuX3NlY3MgPSBkYXlzX3RvX3NlY3Mod2Fy bikKLS0KLS0gICAgbG9nLmluZm8oIgkJQWRkIHRoZSBjb250YWluZXIiKQotLSAgICB0cnk6Ci0t ICAgICAgICB0b3BvbG9neV9zdC5zdGFuZGFsb25lLmFkZF9zKEVudHJ5KChTVUJUUkVFX0NPTlRB SU5FUiwgeydvYmplY3RjbGFzcyc6ICd0b3AgbnNDb250YWluZXInLnNwbGl0KCksCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICdjbic6ICduc1B3UG9saWN5Q29udGFpbmVyJ30pKSkKLS0gICAgZXhjZXB0IGxkYXAuQUxSRUFE WV9FWElTVFM6Ci0tICAgICAgICBwYXNzCi0tICAgIGV4Y2VwdCBsZGFwLkxEQVBFcnJvciBhcyBl OgotLSAgICAgICAgbG9nLmVycm9yKCdGYWlsZWQgdG8gYWRkIHN1YnRyZWUgY29udGFpbmVyOiBl cnJvciAnICsgZS5tZXNzYWdlWydkZXNjJ10pCi0tICAgICAgICAjIGFzc2VydCBGYWxzZQotLQot LSAgICB0cnk6Ci0tICAgICAgICAjIFB1cmdlIHRoZSBvbGQgcG9saWN5Ci0tICAgICAgICB0b3Bv bG9neV9zdC5zdGFuZGFsb25lLmRlbGV0ZV9zKFNVQlRSRUVfUFdQKQotLSAgICBleGNlcHQ6Ci0t ICAgICAgICBwYXNzCi0tCi0tICAgIGxvZy5pbmZvKAotLSAgICAgICAgIgkJQWRkIHRoZSBwYXNz d29yZCBwb2xpY3kgc3ViZW50cnkge3Bhc3N3b3JkTXVzdENoYW5nZTogb24sIHBhc3N3b3JkTWlu QWdlOiAlcywgcGFzc3dvcmRNYXhBZ2U6ICVzLCBwYXNzd29yZFdhcm5pbmc6ICVzfSIgJSAoCi0t ICAgICAgICAgICAgbWluXywgbWF4Xywgd2FybikpCi0tICAgIHRyeToKLS0gICAgICAgIHRvcG9s b2d5X3N0LnN0YW5kYWxvbmUuYWRkX3MoRW50cnkoKFNVQlRSRUVfUFdQLCB7J29iamVjdGNsYXNz JzogJ3RvcCBsZGFwc3ViZW50cnkgcGFzc3dvcmRwb2xpY3knLnNwbGl0KCksCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjbic6IFNV QlRSRUVfUFdQRE4sCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICdwYXNzd29yZE11c3RDaGFuZ2UnOiAnb24nLAotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFzc3dvcmRF eHAnOiAnb24nLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAncGFzc3dvcmRNaW5BZ2UnOiAnJXMnICUgbWluX3NlY3MsCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwYXNz d29yZE1heEFnZSc6ICclcycgJSBtYXhfc2VjcywKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Bhc3N3b3JkV2FybmluZyc6ICclcycg JSB3YXJuX3NlY3MsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICdwYXNzd29yZENoYW5nZSc6ICdvbicsCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwYXNzd29yZFN0b3Jh Z2VTY2hlbWUnOiAnY2xlYXInfSkpKQotLSAgICBleGNlcHQgbGRhcC5MREFQRXJyb3IgYXMgZToK LS0gICAgICAgIGxvZy5lcnJvcignRmFpbGVkIHRvIGFkZCBwYXNzd29yZHBvbGljeTogZXJyb3Ig JyArIGUubWVzc2FnZVsnZGVzYyddKQotLSAgICAgICAgYXNzZXJ0IEZhbHNlCi0tCi0tICAgIGxv Zy5pbmZvKCIJCUFkZCB0aGUgQ09TIHRlbXBsYXRlIikKLS0gICAgdHJ5OgotLSAgICAgICAgdG9w b2xvZ3lfc3Quc3RhbmRhbG9uZS5hZGRfcygKLS0gICAgICAgICAgICBFbnRyeSgoU1VCVFJFRV9D T1NfVE1QTCwgeydvYmplY3RjbGFzcyc6ICd0b3AgbGRhcHN1YmVudHJ5IGNvc3RlbXBsYXRlIGV4 dGVuc2libGVPYmplY3QnLnNwbGl0KCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAnY24nOiBTVUJUUkVFX1BXUEROLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJ2Nvc1ByaW9yaXR5JzogJzEnLAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJ2NuJzogU1VCVFJFRV9DT1NfVE1QTEROLAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJ3B3ZHBvbGljeXN1YmVudHJ5JzogU1VCVFJFRV9QV1B9 KSkpCi0tICAgIGV4Y2VwdCBsZGFwLkFMUkVBRFlfRVhJU1RTOgotLSAgICAgICAgcGFzcwotLSAg ICBleGNlcHQgbGRhcC5MREFQRXJyb3IgYXMgZToKLS0gICAgICAgIGxvZy5lcnJvcignRmFpbGVk IHRvIGFkZCBDT1MgdGVtcGxhdGU6IGVycm9yICcgKyBlLm1lc3NhZ2VbJ2Rlc2MnXSkKLS0gICAg ICAgICMgYXNzZXJ0IEZhbHNlCi0tCi0tICAgIGxvZy5pbmZvKCIJCUFkZCB0aGUgQ09TIGRlZmlu aXRpb24iKQotLSAgICB0cnk6Ci0tICAgICAgICB0b3BvbG9neV9zdC5zdGFuZGFsb25lLmFkZF9z KAotLSAgICAgICAgICAgIEVudHJ5KChTVUJUUkVFX0NPU19ERUYsIHsnb2JqZWN0Y2xhc3MnOiAn dG9wIGxkYXBzdWJlbnRyeSBjb3NTdXBlckRlZmluaXRpb24gY29zUG9pbnRlckRlZmluaXRpb24n LnNwbGl0KCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjbic6IFNV QlRSRUVfUFdQRE4sCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb3N0 ZW1wbGF0ZWRuJzogU1VCVFJFRV9DT1NfVE1QTCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJ2Nvc0F0dHJpYnV0ZSc6ICdwd2Rwb2xpY3lzdWJlbnRyeSBkZWZhdWx0IG9w ZXJhdGlvbmFsLWRlZmF1bHQnfSkpKQotLSAgICBleGNlcHQgbGRhcC5BTFJFQURZX0VYSVNUUzoK LS0gICAgICAgIHBhc3MKLS0gICAgZXhjZXB0IGxkYXAuTERBUEVycm9yIGFzIGU6Ci0tICAgICAg ICBsb2cuZXJyb3IoJ0ZhaWxlZCB0byBhZGQgQ09TIGRlZjogZXJyb3IgJyArIGUubWVzc2FnZVsn ZGVzYyddKQotLSAgICAgICAgIyBhc3NlcnQgRmFsc2UKLS0KLS0gICAgdGltZS5zbGVlcCgxKQot LQotLQotLWRlZiB1cGRhdGVfcGFzc3dkKHRvcG9sb2d5X3N0LCB1c2VyLCBwYXNzd2QsIG5ld3Bh c3N3ZCk6Ci0tICAgIGxvZy5pbmZvKCIJCUJpbmQgYXMgeyVzLCVzfSIgJSAodXNlciwgcGFzc3dk KSkKLS0gICAgdG9wb2xvZ3lfc3Quc3RhbmRhbG9uZS5zaW1wbGVfYmluZF9zKHVzZXIsIHBhc3N3 ZCkKLS0gICAgdHJ5OgotLSAgICAgICAgdG9wb2xvZ3lfc3Quc3RhbmRhbG9uZS5tb2RpZnlfcyh1 c2VyLCBbKGxkYXAuTU9EX1JFUExBQ0UsICd1c2VycGFzc3dvcmQnLCBuZXdwYXNzd2QuZW5jb2Rl KCkpXSkKLS0gICAgZXhjZXB0IGxkYXAuTERBUEVycm9yIGFzIGU6Ci0tICAgICAgICBsb2cuZmF0 YWwoJ3Rlc3RfdGlja2V0NTQ4OiBGYWlsZWQgdG8gdXBkYXRlIHRoZSBwYXNzd29yZCAnICsgY3B3 ICsgJyBvZiB1c2VyICcgKyB1c2VyICsgJzogZXJyb3IgJyArIGUubWVzc2FnZVsKLS0gICAgICAg ICAgICAnZGVzYyddKQotLSAgICAgICAgYXNzZXJ0IEZhbHNlCi0tCi0tICAgIHRpbWUuc2xlZXAo MSkKLS0KLS0KLS1kZWYgY2hlY2tfc2hhZG93X2F0dHJfdmFsdWUoZW50cnksIGF0dHJfdHlwZSwg ZXhwZWN0ZWQsIGRuKToKLS0gICAgaWYgZW50cnkuaGFzQXR0cihhdHRyX3R5cGUpOgotLSAgICAg ICAgYWN0dWFsID0gZW50cnkuZ2V0VmFsdWUoYXR0cl90eXBlKQotLSAgICAgICAgaWYgaW50KGFj dHVhbCkgPT0gZXhwZWN0ZWQ6Ci0tICAgICAgICAgICAgbG9nLmluZm8oJyVzIG9mIGVudHJ5ICVz IGhhcyBleHBlY3RlZCB2YWx1ZSAlcycgJSAoYXR0cl90eXBlLCBkbiwgYWN0dWFsKSkKLS0gICAg ICAgICAgICBhc3NlcnQgVHJ1ZQotLSAgICAgICAgZWxzZToKLS0gICAgICAgICAgICBsb2cuZmF0 YWwoJyVzICVzIG9mIGVudHJ5ICVzIGRvZXMgbm90IGhhdmUgZXhwZWN0ZWQgdmFsdWUgJXMnICUg KGF0dHJfdHlwZSwgYWN0dWFsLCBkbiwgZXhwZWN0ZWQpKQotLSAgICAgICAgICAgIGFzc2VydCBG YWxzZQotLSAgICBlbHNlOgotLSAgICAgICAgbG9nLmZhdGFsKCdlbnRyeSAlcyBkb2VzIG5vdCBo YXZlICVzIGF0dHInICUgKGRuLCBhdHRyX3R5cGUpKQotLSAgICAgICAgYXNzZXJ0IEZhbHNlCi0t Ci0tCi0tZGVmIHRlc3RfdGlja2V0NTQ4X3Rlc3Rfd2l0aF9ub19wb2xpY3kodG9wb2xvZ3lfc3Qp OgotLSAgICAiIiIKLS0gICAgQ2hlY2sgc2hhZG93QWNjb3VudCB1bmRlciBubyBwYXNzd29yZCBw b2xpY3kKLS0gICAgIiIiCi0tICAgIGxvZy5pbmZvKCJDYXNlIDEuIE5vIHBhc3N3b3JkIHBvbGlj eSIpCi0tCi0tICAgIGxvZy5pbmZvKCJCaW5kIGFzICVzIiAlIEROX0RNKQotLSAgICB0b3BvbG9n eV9zdC5zdGFuZGFsb25lLnNpbXBsZV9iaW5kX3MoRE5fRE0sIFBBU1NXT1JEKQotLQotLSAgICBs b2cuaW5mbygnQWRkIGFuIGVudHJ5JyArIFVTRVIxX0ROKQotLSAgICB0cnk6Ci0tICAgICAgICB0 b3BvbG9neV9zdC5zdGFuZGFsb25lLmFkZF9zKAotLSAgICAgICAgICAgIEVudHJ5KChVU0VSMV9E TiwgeydvYmplY3RjbGFzcyc6ICJ0b3AgcGVyc29uIG9yZ2FuaXphdGlvbmFsUGVyc29uIGluZXRP cmdQZXJzb24gc2hhZG93QWNjb3VudCIuc3BsaXQoKSwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAnc24nOiAnMScsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NuJzog J3VzZXIgMScsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3VpZCc6ICd1c2VyMScs Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dpdmVubmFtZSc6ICd1c2VyJywKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWFpbCc6ICd1c2VyMUAnICsgREVGQVVMVF9T VUZGSVgsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZXJwYXNzd29yZCc6IFVT RVJfUFd9KSkpCi0tICAgIGV4Y2VwdCBsZGFwLkxEQVBFcnJvciBhcyBlOgotLSAgICAgICAgbG9n LmZhdGFsKCd0ZXN0X3RpY2tldDU0ODogRmFpbGVkIHRvIGFkZCB1c2VyJyArIFVTRVIxX0ROICsg JzogZXJyb3IgJyArIGUubWVzc2FnZVsnZGVzYyddKQotLSAgICAgICAgYXNzZXJ0IEZhbHNlCi0t Ci0tICAgIGVkYXRlID0gaW50KHRpbWUudGltZSgpIC8gKDYwICogNjAgKiAyNCkpCi0tICAgIGxv Zy5pbmZvKCdTZWFyY2ggZW50cnkgJXMnICUgVVNFUjFfRE4pCi0tCi0tICAgIGxvZy5pbmZvKCJC aW5kIGFzICVzIiAlIFVTRVIxX0ROKQotLSAgICB0b3BvbG9neV9zdC5zdGFuZGFsb25lLnNpbXBs ZV9iaW5kX3MoVVNFUjFfRE4sIFVTRVJfUFcpCi0tICAgIGVudHJ5ID0gdG9wb2xvZ3lfc3Quc3Rh bmRhbG9uZS5nZXRFbnRyeShVU0VSMV9ETiwgbGRhcC5TQ09QRV9CQVNFLCAiKG9iamVjdGNsYXNz PSopIiwgWydzaGFkb3dMYXN0Q2hhbmdlJ10pCi0tICAgIGNoZWNrX3NoYWRvd19hdHRyX3ZhbHVl KGVudHJ5LCAnc2hhZG93TGFzdENoYW5nZScsIGVkYXRlLCBVU0VSMV9ETikKLS0KLS0gICAgbG9n LmluZm8oIkNoZWNrIHNoYWRvd0FjY291bnQgd2l0aCBubyBwb2xpY3kgd2FzIHN1Y2Nlc3NmdWxs eSB2ZXJpZmllZC4iKQotLQotLQotLWRlZiB0ZXN0X3RpY2tldDU0OF90ZXN0X2dsb2JhbF9wb2xp Y3kodG9wb2xvZ3lfc3QpOgotLSAgICAiIiIKLS0gICAgQ2hlY2sgc2hhZG93QWNjb3VudCB3aXRo IGdsb2JhbCBwYXNzd29yZCBwb2xpY3kKLS0gICAgIiIiCi0tCi0tICAgIGxvZy5pbmZvKCJDYXNl IDIuICBDaGVjayBzaGFkb3dBY2NvdW50IHdpdGggZ2xvYmFsIHBhc3N3b3JkIHBvbGljeSIpCi0t Ci0tICAgIGxvZy5pbmZvKCJCaW5kIGFzICVzIiAlIEROX0RNKQotLSAgICB0b3BvbG9neV9zdC5z dGFuZGFsb25lLnNpbXBsZV9iaW5kX3MoRE5fRE0sIFBBU1NXT1JEKQotLQotLSAgICBzZXRfZ2xv YmFsX3B3cG9saWN5KHRvcG9sb2d5X3N0KQotLQotLSAgICBsb2cuaW5mbygnQWRkIGFuIGVudHJ5 JyArIFVTRVIyX0ROKQotLSAgICB0cnk6Ci0tICAgICAgICB0b3BvbG9neV9zdC5zdGFuZGFsb25l LmFkZF9zKAotLSAgICAgICAgICAgIEVudHJ5KChVU0VSMl9ETiwgeydvYmplY3RjbGFzcyc6ICJ0 b3AgcGVyc29uIG9yZ2FuaXphdGlvbmFsUGVyc29uIGluZXRPcmdQZXJzb24gc2hhZG93QWNjb3Vu dCIuc3BsaXQoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc24nOiAnMicsCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NuJzogJ3VzZXIgMicsCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJ3VpZCc6ICd1c2VyMicsCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJ2dpdmVubmFtZSc6ICd1c2VyJywKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAnbWFpbCc6ICd1c2VyMkAnICsgREVGQVVMVF9TVUZGSVgsCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJ3VzZXJwYXNzd29yZCc6IFVTRVJfUFd9KSkpCi0tICAgIGV4Y2Vw dCBsZGFwLkxEQVBFcnJvciBhcyBlOgotLSAgICAgICAgbG9nLmZhdGFsKCd0ZXN0X3RpY2tldDU0 ODogRmFpbGVkIHRvIGFkZCB1c2VyJyArIFVTRVIyX0ROICsgJzogZXJyb3IgJyArIGUubWVzc2Fn ZVsnZGVzYyddKQotLSAgICAgICAgYXNzZXJ0IEZhbHNlCi0tCi0tICAgIGVkYXRlID0gaW50KHRp bWUudGltZSgpIC8gKDYwICogNjAgKiAyNCkpCi0tCi0tICAgIGxvZy5pbmZvKCJCaW5kIGFzICVz IiAlIFVTRVIxX0ROKQotLSAgICB0b3BvbG9neV9zdC5zdGFuZGFsb25lLnNpbXBsZV9iaW5kX3Mo VVNFUjFfRE4sIFVTRVJfUFcpCi0tCi0tICAgIGxvZy5pbmZvKCdTZWFyY2ggZW50cnkgJXMnICUg VVNFUjFfRE4pCi0tICAgIGVudHJ5ID0gdG9wb2xvZ3lfc3Quc3RhbmRhbG9uZS5nZXRFbnRyeShV U0VSMV9ETiwgbGRhcC5TQ09QRV9CQVNFLCAiKG9iamVjdGNsYXNzPSopIikKLS0gICAgY2hlY2tf c2hhZG93X2F0dHJfdmFsdWUoZW50cnksICdzaGFkb3dMYXN0Q2hhbmdlJywgZWRhdGUsIFVTRVIx X0ROKQotLQotLSAgICAjIHBhc3N3b3JkTWluQWdlIC0tIDEgZGF5Ci0tICAgIGNoZWNrX3NoYWRv d19hdHRyX3ZhbHVlKGVudHJ5LCAnc2hhZG93TWluJywgMSwgVVNFUjFfRE4pCi0tCi0tICAgICMg cGFzc3dvcmRNYXhBZ2UgLS0gMTAgZGF5cwotLSAgICBjaGVja19zaGFkb3dfYXR0cl92YWx1ZShl bnRyeSwgJ3NoYWRvd01heCcsIDEwLCBVU0VSMV9ETikKLS0KLS0gICAgIyBwYXNzd29yZFdhcm5p bmcgLS0gMyBkYXlzCi0tICAgIGNoZWNrX3NoYWRvd19hdHRyX3ZhbHVlKGVudHJ5LCAnc2hhZG93 V2FybmluZycsIDMsIFVTRVIxX0ROKQotLQotLSAgICBsb2cuaW5mbygiQmluZCBhcyAlcyIgJSBV U0VSMl9ETikKLS0gICAgdG9wb2xvZ3lfc3Quc3RhbmRhbG9uZS5zaW1wbGVfYmluZF9zKFVTRVIy X0ROLCBVU0VSX1BXKQotLQotLSAgICBsb2cuaW5mbygnU2VhcmNoIGVudHJ5ICVzJyAlIFVTRVIy X0ROKQotLSAgICBlbnRyeSA9IHRvcG9sb2d5X3N0LnN0YW5kYWxvbmUuZ2V0RW50cnkoVVNFUjJf RE4sIGxkYXAuU0NPUEVfQkFTRSwgIihvYmplY3RjbGFzcz0qKSIpCi0tICAgIGNoZWNrX3NoYWRv d19hdHRyX3ZhbHVlKGVudHJ5LCAnc2hhZG93TGFzdENoYW5nZScsIGVkYXRlLCBVU0VSMl9ETikK LS0KLS0gICAgIyBwYXNzd29yZE1pbkFnZSAtLSAxIGRheQotLSAgICBjaGVja19zaGFkb3dfYXR0 cl92YWx1ZShlbnRyeSwgJ3NoYWRvd01pbicsIDEsIFVTRVIyX0ROKQotLQotLSAgICAjIHBhc3N3 b3JkTWF4QWdlIC0tIDEwIGRheXMKLS0gICAgY2hlY2tfc2hhZG93X2F0dHJfdmFsdWUoZW50cnks ICdzaGFkb3dNYXgnLCAxMCwgVVNFUjJfRE4pCi0tCi0tICAgICMgcGFzc3dvcmRXYXJuaW5nIC0t IDMgZGF5cwotLSAgICBjaGVja19zaGFkb3dfYXR0cl92YWx1ZShlbnRyeSwgJ3NoYWRvd1dhcm5p bmcnLCAzLCBVU0VSMl9ETikKLS0KLS0gICAgIyBCaW5kIGFzIERNIGFnYWluLCBjaGFuZ2UgcG9s aWN5Ci0tICAgIGxvZy5pbmZvKCJCaW5kIGFzICVzIiAlIEROX0RNKQotLSAgICB0b3BvbG9neV9z dC5zdGFuZGFsb25lLnNpbXBsZV9iaW5kX3MoRE5fRE0sIFBBU1NXT1JEKQotLSAgICBzZXRfZ2xv YmFsX3B3cG9saWN5KHRvcG9sb2d5X3N0LCAzLCAzMCwgOSkKLS0KLS0gICAgIyBjaGFuZ2UgdGhl IHVzZXIgcGFzc3dvcmQsIHRoZW4gY2hlY2sgYWdhaW4uCi0tICAgIGxvZy5pbmZvKCJCaW5kIGFz ICVzIiAlIFVTRVIyX0ROKQotLSAgICB0b3BvbG9neV9zdC5zdGFuZGFsb25lLnNpbXBsZV9iaW5k X3MoVVNFUjJfRE4sIFVTRVJfUFcpCi0tCi0tICAgIG5ld3Bhc3N3ZCA9IFVTRVJfUFcgKyAnMicK LS0gICAgdXBkYXRlX3Bhc3N3ZCh0b3BvbG9neV9zdCwgVVNFUjJfRE4sIFVTRVJfUFcsIG5ld3Bh c3N3ZCkKLS0KLS0gICAgbG9nLmluZm8oIlJlLWJpbmQgYXMgJXMgd2l0aCBuZXcgcGFzc3dvcmQi ICUgVVNFUjJfRE4pCi0tICAgIHRvcG9sb2d5X3N0LnN0YW5kYWxvbmUuc2ltcGxlX2JpbmRfcyhV U0VSMl9ETiwgbmV3cGFzc3dkKQotLQotLSAgICAjIyBUaGlzIHRlc3RzIGlmIHdlIHVwZGF0ZSB0 aGUgc2hhZG93IHZhbHVlcyBvbiBwYXNzd29yZCBjaGFuZ2UuCi0tICAgIGxvZy5pbmZvKCdTZWFy Y2ggZW50cnkgJXMnICUgVVNFUjJfRE4pCi0tICAgIGVudHJ5ID0gdG9wb2xvZ3lfc3Quc3RhbmRh bG9uZS5nZXRFbnRyeShVU0VSMl9ETiwgbGRhcC5TQ09QRV9CQVNFLCAiKG9iamVjdGNsYXNzPSop IikKLS0KLS0gICAgIyBwYXNzd29yZE1pbkFnZSAtLSAxIGRheQotLSAgICBjaGVja19zaGFkb3df YXR0cl92YWx1ZShlbnRyeSwgJ3NoYWRvd01pbicsIDMsIFVTRVIyX0ROKQotLQotLSAgICAjIHBh c3N3b3JkTWF4QWdlIC0tIDEwIGRheXMKLS0gICAgY2hlY2tfc2hhZG93X2F0dHJfdmFsdWUoZW50 cnksICdzaGFkb3dNYXgnLCAzMCwgVVNFUjJfRE4pCi0tCi0tICAgICMgcGFzc3dvcmRXYXJuaW5n IC0tIDMgZGF5cwotLSAgICBjaGVja19zaGFkb3dfYXR0cl92YWx1ZShlbnRyeSwgJ3NoYWRvd1dh cm5pbmcnLCA5LCBVU0VSMl9ETikKLS0KLS0gICAgbG9nLmluZm8oIkNoZWNrIHNoYWRvd0FjY291 bnQgd2l0aCBnbG9iYWwgcG9saWN5IHdhcyBzdWNjZXNzZnVsbHkgdmVyaWZpZWQuIikKLS0KLS0K LS1kZWYgdGVzdF90aWNrZXQ1NDhfdGVzdF9zdWJ0cmVlX3BvbGljeSh0b3BvbG9neV9zdCk6Ci0t ICAgICIiIgotLSAgICBDaGVjayBzaGFkb3dBY2NvdW50IHdpdGggc3VidHJlZSBsZXZlbCBwYXNz d29yZCBwb2xpY3kKLS0gICAgIiIiCi0tCi0tICAgIGxvZy5pbmZvKCJDYXNlIDMuICBDaGVjayBz aGFkb3dBY2NvdW50IHdpdGggc3VidHJlZSBsZXZlbCBwYXNzd29yZCBwb2xpY3kiKQotLQotLSAg ICBsb2cuaW5mbygiQmluZCBhcyAlcyIgJSBETl9ETSkKLS0gICAgdG9wb2xvZ3lfc3Quc3RhbmRh bG9uZS5zaW1wbGVfYmluZF9zKEROX0RNLCBQQVNTV09SRCkKLS0gICAgIyBDaGVjayB0aGUgZ2xv YmFsIHBvbGljeSB2YWx1ZXMKLS0KLS0gICAgc2V0X3N1YnRyZWVfcHdwb2xpY3kodG9wb2xvZ3lf c3QsIDIsIDIwLCA2KQotLQotLSAgICBsb2cuaW5mbygnQWRkIGFuIGVudHJ5JyArIFVTRVIzX0RO KQotLSAgICB0cnk6Ci0tICAgICAgICB0b3BvbG9neV9zdC5zdGFuZGFsb25lLmFkZF9zKAotLSAg ICAgICAgICAgIEVudHJ5KChVU0VSM19ETiwgeydvYmplY3RjbGFzcyc6ICJ0b3AgcGVyc29uIG9y Z2FuaXphdGlvbmFsUGVyc29uIGluZXRPcmdQZXJzb24gc2hhZG93QWNjb3VudCIuc3BsaXQoKSwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc24nOiAnMycsCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJ2NuJzogJ3VzZXIgMycsCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJ3VpZCc6ICd1c2VyMycsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg J2dpdmVubmFtZSc6ICd1c2VyJywKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWFp bCc6ICd1c2VyM0AnICsgREVGQVVMVF9TVUZGSVgsCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJ3VzZXJwYXNzd29yZCc6IFVTRVJfUFd9KSkpCi0tICAgIGV4Y2VwdCBsZGFwLkxEQVBF cnJvciBhcyBlOgotLSAgICAgICAgbG9nLmZhdGFsKCd0ZXN0X3RpY2tldDU0ODogRmFpbGVkIHRv IGFkZCB1c2VyJyArIFVTRVIzX0ROICsgJzogZXJyb3IgJyArIGUubWVzc2FnZVsnZGVzYyddKQot LSAgICAgICAgYXNzZXJ0IEZhbHNlCi0tCi0tICAgIGxvZy5pbmZvKCdTZWFyY2ggZW50cnkgJXMn ICUgVVNFUjNfRE4pCi0tICAgIGVudHJ5MCA9IHRvcG9sb2d5X3N0LnN0YW5kYWxvbmUuZ2V0RW50 cnkoVVNFUjNfRE4sIGxkYXAuU0NPUEVfQkFTRSwgIihvYmplY3RjbGFzcz0qKSIpCi0tCi0tICAg IGxvZy5pbmZvKCdFeHBlY3Rpbmcgc2hhZG93TGFzdENoYW5nZSAwIHNpbmNlIHBhc3N3b3JkTXVz dENoYW5nZSBpcyBvbicpCi0tICAgIGNoZWNrX3NoYWRvd19hdHRyX3ZhbHVlKGVudHJ5MCwgJ3No YWRvd0xhc3RDaGFuZ2UnLCAwLCBVU0VSM19ETikKLS0KLS0gICAgIyBwYXNzd29yZE1pbkFnZSAt LSAyIGRheQotLSAgICBjaGVja19zaGFkb3dfYXR0cl92YWx1ZShlbnRyeTAsICdzaGFkb3dNaW4n LCAyLCBVU0VSM19ETikKLS0KLS0gICAgIyBwYXNzd29yZE1heEFnZSAtLSAyMCBkYXlzCi0tICAg IGNoZWNrX3NoYWRvd19hdHRyX3ZhbHVlKGVudHJ5MCwgJ3NoYWRvd01heCcsIDIwLCBVU0VSM19E TikKLS0KLS0gICAgIyBwYXNzd29yZFdhcm5pbmcgLS0gNiBkYXlzCi0tICAgIGNoZWNrX3NoYWRv d19hdHRyX3ZhbHVlKGVudHJ5MCwgJ3NoYWRvd1dhcm5pbmcnLCA2LCBVU0VSM19ETikKLS0KLS0g ICAgbG9nLmluZm8oIkJpbmQgYXMgJXMiICUgVVNFUjNfRE4pCi0tICAgIHRvcG9sb2d5X3N0LnN0 YW5kYWxvbmUuc2ltcGxlX2JpbmRfcyhVU0VSM19ETiwgVVNFUl9QVykKLS0KLS0gICAgbG9nLmlu Zm8oJ1NlYXJjaCBlbnRyeSAlcycgJSBVU0VSM19ETikKLS0gICAgdHJ5OgotLSAgICAgICAgZW50 cnkxID0gdG9wb2xvZ3lfc3Quc3RhbmRhbG9uZS5nZXRFbnRyeShVU0VSM19ETiwgbGRhcC5TQ09Q RV9CQVNFLCAiKG9iamVjdGNsYXNzPSopIikKLS0gICAgZXhjZXB0IGxkYXAuVU5XSUxMSU5HX1RP X1BFUkZPUk06Ci0tICAgICAgICBsb2cuaW5mbygndGVzdF90aWNrZXQ1NDg6IFNlYXJjaCBieScg KyBVU0VSM19ETiArICcgZmFpbGVkIGJ5IFVOV0lMTElOR19UT19QRVJGT1JNIGFzIGV4cGVjdGVk JykKLS0gICAgZXhjZXB0IGxkYXAuTERBUEVycm9yIGFzIGU6Ci0tICAgICAgICBsb2cuZmF0YWwo J3Rlc3RfdGlja2V0NTQ4OiBGYWlsZWQgdG8gc2VyY2ggdXNlcicgKyBVU0VSM19ETiArICcgYnkg c2VsZjogZXJyb3IgJyArIGUubWVzc2FnZVsnZGVzYyddKQotLSAgICAgICAgYXNzZXJ0IEZhbHNl Ci0tCi0tICAgIGxvZy5pbmZvKCJCaW5kIGFzICVzIGFuZCB1cGRhdGluZyB0aGUgcGFzc3dvcmQg d2l0aCBhIG5ldyBvbmUiICUgVVNFUjNfRE4pCi0tICAgIHRvcG9sb2d5X3N0LnN0YW5kYWxvbmUu c2ltcGxlX2JpbmRfcyhVU0VSM19ETiwgVVNFUl9QVykKLS0KLS0gICAgIyBCaW5kIGFzIERNIGFn YWluLCBjaGFuZ2UgcG9saWN5Ci0tICAgIGxvZy5pbmZvKCJCaW5kIGFzICVzIiAlIEROX0RNKQot LSAgICB0b3BvbG9neV9zdC5zdGFuZGFsb25lLnNpbXBsZV9iaW5kX3MoRE5fRE0sIFBBU1NXT1JE KQotLQotLSAgICBzZXRfc3VidHJlZV9wd3BvbGljeSh0b3BvbG9neV9zdCwgNCwgNDAsIDEyKQot LQotLSAgICBuZXdwYXNzd2QgPSBVU0VSX1BXICsgJzAnCi0tICAgIHVwZGF0ZV9wYXNzd2QodG9w b2xvZ3lfc3QsIFVTRVIzX0ROLCBVU0VSX1BXLCBuZXdwYXNzd2QpCi0tCi0tICAgIGxvZy5pbmZv KCJSZS1iaW5kIGFzICVzIHdpdGggbmV3IHBhc3N3b3JkIiAlIFVTRVIzX0ROKQotLSAgICB0b3Bv bG9neV9zdC5zdGFuZGFsb25lLnNpbXBsZV9iaW5kX3MoVVNFUjNfRE4sIG5ld3Bhc3N3ZCkKLS0K LS0gICAgdHJ5OgotLSAgICAgICAgZW50cnkyID0gdG9wb2xvZ3lfc3Quc3RhbmRhbG9uZS5nZXRF bnRyeShVU0VSM19ETiwgbGRhcC5TQ09QRV9CQVNFLCAiKG9iamVjdGNsYXNzPSopIikKLS0gICAg ZXhjZXB0IGxkYXAuTERBUEVycm9yIGFzIGU6Ci0tICAgICAgICBsb2cuZmF0YWwoJ3Rlc3RfdGlj a2V0NTQ4OiBGYWlsZWQgdG8gc2VyY2ggdXNlcicgKyBVU0VSM19ETiArICcgYnkgc2VsZjogZXJy b3IgJyArIGUubWVzc2FnZVsnZGVzYyddKQotLSAgICAgICAgYXNzZXJ0IEZhbHNlCi0tCi0tICAg IGVkYXRlID0gaW50KHRpbWUudGltZSgpIC8gKDYwICogNjAgKiAyNCkpCi0tCi0tICAgIGxvZy5p bmZvKCdFeHBlY3Rpbmcgc2hhZG93TGFzdENoYW5nZSAlZCBvbmNlIHVzZXJQYXNzd29yZCBpcyB1 cGRhdGVkJywgZWRhdGUpCi0tICAgIGNoZWNrX3NoYWRvd19hdHRyX3ZhbHVlKGVudHJ5MiwgJ3No YWRvd0xhc3RDaGFuZ2UnLCBlZGF0ZSwgVVNFUjNfRE4pCi0tCi0tICAgIGxvZy5pbmZvKCdTZWFy Y2ggZW50cnkgJXMnICUgVVNFUjNfRE4pCi0tICAgIGVudHJ5ID0gdG9wb2xvZ3lfc3Quc3RhbmRh bG9uZS5nZXRFbnRyeShVU0VSM19ETiwgbGRhcC5TQ09QRV9CQVNFLCAiKG9iamVjdGNsYXNzPSop IikKLS0gICAgY2hlY2tfc2hhZG93X2F0dHJfdmFsdWUoZW50cnksICdzaGFkb3dMYXN0Q2hhbmdl JywgZWRhdGUsIFVTRVIzX0ROKQotLQotLSAgICAjIHBhc3N3b3JkTWluQWdlIC0tIDEgZGF5Ci0t ICAgIGNoZWNrX3NoYWRvd19hdHRyX3ZhbHVlKGVudHJ5LCAnc2hhZG93TWluJywgNCwgVVNFUjNf RE4pCi0tCi0tICAgICMgcGFzc3dvcmRNYXhBZ2UgLS0gMTAgZGF5cwotLSAgICBjaGVja19zaGFk b3dfYXR0cl92YWx1ZShlbnRyeSwgJ3NoYWRvd01heCcsIDQwLCBVU0VSM19ETikKLS0KLS0gICAg IyBwYXNzd29yZFdhcm5pbmcgLS0gMyBkYXlzCi0tICAgIGNoZWNrX3NoYWRvd19hdHRyX3ZhbHVl KGVudHJ5LCAnc2hhZG93V2FybmluZycsIDEyLCBVU0VSM19ETikKLS0KLS0gICAgbG9nLmluZm8o IkNoZWNrIHNoYWRvd0FjY291bnQgd2l0aCBzdWJ0cmVlIGxldmVsIHBvbGljeSB3YXMgc3VjY2Vz c2Z1bGx5IHZlcmlmaWVkLiIpCi0tCi0tCi0taWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLS0g ICAgIyBSdW4gaXNvbGF0ZWQKLS0gICAgIyAtcyBmb3IgREVCVUcgbW9kZQotLSAgICBDVVJSRU5U X0ZJTEUgPSBvcy5wYXRoLnJlYWxwYXRoKF9fZmlsZV9fKQotLSAgICBweXRlc3QubWFpbigiLXMg JXMiICUgQ1VSUkVOVF9GSUxFKQotLS0gCi0yLjUyLjAKLQoKZGlmZiAtLWdpdCBhLzAwMDctSXNz dWUtNzE1Mi1ucy1zbGFwZC1mYWlscy10by1zaHV0ZG93bi13aGVuLWRlZmVycmVkLS5wYXRjaCBi LzAwMDctSXNzdWUtNzE1Mi1ucy1zbGFwZC1mYWlscy10by1zaHV0ZG93bi13aGVuLWRlZmVycmVk LS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGJhZWRlZi4uMDAwMDAwMAot LS0gYS8wMDA3LUlzc3VlLTcxNTItbnMtc2xhcGQtZmFpbHMtdG8tc2h1dGRvd24td2hlbi1kZWZl cnJlZC0ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw4MiArMCwwIEBACi1Gcm9tIDdjOGExNmM2 YmVkNTI0ZmI1NGQxOGE1YjdlOTNkNGJkNWJiMTlkNDkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx Ci1Gcm9tOiBWaWt0b3IgQXNoaXJvdiA8dmFzaGlyb3ZAcmVkaGF0LmNvbT4KLURhdGU6IFdlZCwg MTQgSmFuIDIwMjYgMTc6NTU6MjkgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gSXNzdWUgNzE1MiAt IG5zLXNsYXBkIGZhaWxzIHRvIHNodXRkb3duIHdoZW4gZGVmZXJyZWQKLSBtZW1iZXJvZiB1cGRh dGUgaXMgaW4gcHJvZ3Jlc3MgKCM3MTg3KQotCi1CdWcgRGVzY3JpcHRpb246Ci1XaGVuIGEgZGVm ZXJyZWQgbWVtYmVyb2YgdXBkYXRlIGlzIGluIHByb2dyZXNzIGR1cmluZyBzaHV0ZG93biwgdGhl Ci1iYWNrZW5kIG9wZXJhdGlvbnMgKGFkZCwgbW9kaWZ5LCBkZWxldGUsIG1vZHJkbikgd2FpdCBp biBhIHBvbGxpbmcgbG9vcAotZm9yIHRoZSBkZWZlcnJlZCB0YXNrIHRvIGNvbXBsZXRlLiBIb3dl dmVyLCBpZiB0aGUgZGVmZXJyZWQgdGhyZWFkIGV4aXRzCi1iZWZvcmUgY2xlYXJpbmcgdGhlIFNM QVBJX0RFRkVSUkVEX01FTUJFUk9GIGZsYWcsIHRoZSBsb29wIGJlY29tZXMKLWluZmluaXRlLCBj YXVzaW5nIHRoZSBzZXJ2ZXIgdG8gaGFuZyBkdXJpbmcgc2h1dGRvd24uCi0KLUZpeCBEZXNjcmlw dGlvbjoKLUFkZCBhZGRpdGlvbmFsIGNoZWNrIHRvIHRoZSBwb2xsaW5nIGxvb3BzIHNvIHRoZXkg ZXhpdCBpbW1lZGlhdGVseSB3aGVuCi10aGUgc2VydmVyIGlzIHNodXR0aW5nIGRvd24uCi0KLUZp eGVzOiBodHRwczovL2dpdGh1Yi5jb20vMzg5ZHMvMzg5LWRzLWJhc2UvaXNzdWVzLzcxNTIKLQot UmV2aWV3ZWQgYnk6IEB0Ym9yZGF6IChUaGFua3MhKQotLS0tCi0gbGRhcC9zZXJ2ZXJzL3NsYXBk L2JhY2stbGRibS9sZGJtX2FkZC5jICAgIHwgMiArLQotIGxkYXAvc2VydmVycy9zbGFwZC9iYWNr LWxkYm0vbGRibV9kZWxldGUuYyB8IDIgKy0KLSBsZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJt L2xkYm1fbW9kaWZ5LmMgfCAyICstCi0gbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9sZGJt X21vZHJkbi5jIHwgMiArLQotIDQgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRl bGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9s ZGJtX2FkZC5jIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9sZGJtX2FkZC5jCi1pbmRl eCBkYjYwMjQ2MzYuLjkwZDVhYmMzZCAxMDA2NDQKLS0tLSBhL2xkYXAvc2VydmVycy9zbGFwZC9i YWNrLWxkYm0vbGRibV9hZGQuYwotKysrIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9s ZGJtX2FkZC5jCi1AQCAtMTQ1Miw3ICsxNDUyLDcgQEAgY29tbW9uX3JldHVybjoKLSAgICAgICAg ICAgICAgICAgc2xhcGlfcGJsb2NrX2dldChwYiwgU0xBUElfREVGRVJSRURfTUVNQkVST0YsICZk ZWZlcnJlZCk7Ci0gICAgICAgICAgICAgICAgIGlmIChkZWZlcnJlZCkgewotICAgICAgICAgICAg ICAgICAgICAgUFJJbnRlcnZhbFRpbWUgZGVsYXkgPSBQUl9NaWxsaXNlY29uZHNUb0ludGVydmFs KDEwMCk7Ci0tICAgICAgICAgICAgICAgICAgICB3aGlsZSAoZGVmZXJyZWQpIHsKLSsgICAgICAg ICAgICAgICAgICAgIHdoaWxlIChkZWZlcnJlZCAmJiAhZ19nZXRfc2h1dGRvd24oKSkgewotICAg ICAgICAgICAgICAgICAgICAgICAgIERTX1NsZWVwKGRlbGF5KTsKLSAgICAgICAgICAgICAgICAg ICAgICAgICBzbGFwaV9wYmxvY2tfZ2V0KHBiLCBTTEFQSV9ERUZFUlJFRF9NRU1CRVJPRiwgJmRl ZmVycmVkKTsKLSAgICAgICAgICAgICAgICAgICAgIH0KLWRpZmYgLS1naXQgYS9sZGFwL3NlcnZl cnMvc2xhcGQvYmFjay1sZGJtL2xkYm1fZGVsZXRlLmMgYi9sZGFwL3NlcnZlcnMvc2xhcGQvYmFj ay1sZGJtL2xkYm1fZGVsZXRlLmMKLWluZGV4IDQ5ODM0MmYyZC4uY2JmYjViY2E5IDEwMDY0NAot LS0tIGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9sZGJtX2RlbGV0ZS5jCi0rKysgYi9s ZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2xkYm1fZGVsZXRlLmMKLUBAIC0xNTM2LDcgKzE1 MzYsNyBAQCBkaXNrZnVsbF9yZXR1cm46Ci0gICAgICAgICAgICAgICAgIHNsYXBpX3BibG9ja19n ZXQocGIsIFNMQVBJX0RFRkVSUkVEX01FTUJFUk9GLCAmZGVmZXJyZWQpOwotICAgICAgICAgICAg ICAgICBpZiAoZGVmZXJyZWQpIHsKLSAgICAgICAgICAgICAgICAgICAgIFBSSW50ZXJ2YWxUaW1l IGRlbGF5ID0gUFJfTWlsbGlzZWNvbmRzVG9JbnRlcnZhbCgxMDApOwotLSAgICAgICAgICAgICAg ICAgICAgd2hpbGUgKGRlZmVycmVkKSB7Ci0rICAgICAgICAgICAgICAgICAgICB3aGlsZSAoZGVm ZXJyZWQgJiYgIWdfZ2V0X3NodXRkb3duKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBE U19TbGVlcChkZWxheSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgc2xhcGlfcGJsb2NrX2dl dChwYiwgU0xBUElfREVGRVJSRURfTUVNQkVST0YsICZkZWZlcnJlZCk7Ci0gICAgICAgICAgICAg ICAgICAgICB9Ci1kaWZmIC0tZ2l0IGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9sZGJt X21vZGlmeS5jIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9sZGJtX21vZGlmeS5jCi1p bmRleCBlYTQ5YTRjNTYuLmM1N2JhNDNhZSAxMDA2NDQKLS0tLSBhL2xkYXAvc2VydmVycy9zbGFw ZC9iYWNrLWxkYm0vbGRibV9tb2RpZnkuYwotKysrIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2st bGRibS9sZGJtX21vZGlmeS5jCi1AQCAtMTE3OSw3ICsxMTc5LDcgQEAgY29tbW9uX3JldHVybjoK LSAgICAgICAgICAgICAgICAgc2xhcGlfcGJsb2NrX2dldChwYiwgU0xBUElfREVGRVJSRURfTUVN QkVST0YsICZkZWZlcnJlZCk7Ci0gICAgICAgICAgICAgICAgIGlmIChkZWZlcnJlZCkgewotICAg ICAgICAgICAgICAgICAgICAgUFJJbnRlcnZhbFRpbWUgZGVsYXkgPSBQUl9NaWxsaXNlY29uZHNU b0ludGVydmFsKDEwMCk7Ci0tICAgICAgICAgICAgICAgICAgICB3aGlsZSAoZGVmZXJyZWQpIHsK LSsgICAgICAgICAgICAgICAgICAgIHdoaWxlIChkZWZlcnJlZCAmJiAhZ19nZXRfc2h1dGRvd24o KSkgewotICAgICAgICAgICAgICAgICAgICAgICAgIERTX1NsZWVwKGRlbGF5KTsKLSAgICAgICAg ICAgICAgICAgICAgICAgICBzbGFwaV9wYmxvY2tfZ2V0KHBiLCBTTEFQSV9ERUZFUlJFRF9NRU1C RVJPRiwgJmRlZmVycmVkKTsKLSAgICAgICAgICAgICAgICAgICAgIH0KLWRpZmYgLS1naXQgYS9s ZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2xkYm1fbW9kcmRuLmMgYi9sZGFwL3NlcnZlcnMv c2xhcGQvYmFjay1sZGJtL2xkYm1fbW9kcmRuLmMKLWluZGV4IDAxOGFkOWU0OS4uNzU5ZWRiODBk IDEwMDY0NAotLS0tIGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9sZGJtX21vZHJkbi5j Ci0rKysgYi9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2xkYm1fbW9kcmRuLmMKLUBAIC0x NDY5LDcgKzE0NjksNyBAQCBjb21tb25fcmV0dXJuOgotICAgICAgICAgICAgICAgICBzbGFwaV9w YmxvY2tfZ2V0KHBiLCBTTEFQSV9ERUZFUlJFRF9NRU1CRVJPRiwgJmRlZmVycmVkKTsKLSAgICAg ICAgICAgICAgICAgaWYgKGRlZmVycmVkKSB7Ci0gICAgICAgICAgICAgICAgICAgICBQUkludGVy dmFsVGltZSBkZWxheSA9IFBSX01pbGxpc2Vjb25kc1RvSW50ZXJ2YWwoMTAwKTsKLS0gICAgICAg ICAgICAgICAgICAgIHdoaWxlIChkZWZlcnJlZCkgewotKyAgICAgICAgICAgICAgICAgICAgd2hp bGUgKGRlZmVycmVkICYmICFnX2dldF9zaHV0ZG93bigpKSB7Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgRFNfU2xlZXAoZGVsYXkpOwotICAgICAgICAgICAgICAgICAgICAgICAgIHNsYXBpX3Bi bG9ja19nZXQocGIsIFNMQVBJX0RFRkVSUkVEX01FTUJFUk9GLCAmZGVmZXJyZWQpOwotICAgICAg ICAgICAgICAgICAgICAgfQotLS0gCi0yLjUyLjAKLQoKZGlmZiAtLWdpdCBhLzAwMDgtSXNzdWUt NzE2OS1GaXgtYXV0b21lbWJlcl9wbHVnaW4tQ0ktdGVzdC1mYWlsdXJlcy03MS5wYXRjaCBiLzAw MDgtSXNzdWUtNzE2OS1GaXgtYXV0b21lbWJlcl9wbHVnaW4tQ0ktdGVzdC1mYWlsdXJlcy03MS5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTVjNjkxNi4uMDAwMDAwMAotLS0g YS8wMDA4LUlzc3VlLTcxNjktRml4LWF1dG9tZW1iZXJfcGx1Z2luLUNJLXRlc3QtZmFpbHVyZXMt NzEucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw2MSArMCwwIEBACi1Gcm9tIGE4NGE2YTdkODMy MzMxNmJmYTQwNTU3MjlhMzYwNGEwZmNmZWJhZjkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1G cm9tOiBBa3NoYXkgQWRoaWthcmkgPGFhZGhpa2FyQHJlZGhhdC5jb20+Ci1EYXRlOiBGcmksIDE2 IEphbiAyMDI2IDE5OjM1OjQyICswNTMwCi1TdWJqZWN0OiBbUEFUQ0hdIElzc3VlIDcxNjkgLSBG aXggYXV0b21lbWJlcl9wbHVnaW4gQ0kgdGVzdCBmYWlsdXJlcyAoIzcxODEpCi0KLURlc2NyaXB0 aW9uOiBJc3N1ZSA3MDUzIHJlbW92ZWQgbWVtYmVyIGNsZWFudXAgZnJvbSBNZW1iZXJPZiBwbHVn aW4sCi10cmFuc2ZlcnJpbmcgaXQgdG8gUmVmZXJlbnRpYWwgSW50ZWdyaXR5IHBsdWdpbi4gRW5h YmxlIHRoaXMgcGx1Z2luCi1pbiBhdXRvbWVtYmVyIHRlc3RzIGFuZCBjbGVhbiB1cCBncm91cHMg YmVmb3JlIHJlYnVpbGQgdGFzayB0ZXN0cy4KLQotRml4ZXM6ICM3MTY5Ci0KLVJldmlld2VkIGJ5 OiBAcHJvZ2llcjM4OQotLS0tCi0gLi4uL3Rlc3RzL3N1aXRlcy9hdXRvbWVtYmVyX3BsdWdpbi9i YXNpY190ZXN0LnB5IHwgMTYgKysrKysrKysrKysrKystLQotIDEgZmlsZSBjaGFuZ2VkLCAxNCBp bnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZGlyc3J2dGVzdHMv dGVzdHMvc3VpdGVzL2F1dG9tZW1iZXJfcGx1Z2luL2Jhc2ljX3Rlc3QucHkgYi9kaXJzcnZ0ZXN0 cy90ZXN0cy9zdWl0ZXMvYXV0b21lbWJlcl9wbHVnaW4vYmFzaWNfdGVzdC5weQotaW5kZXggNmYy Y2YzMzI2Li5mMzYyOWM4MTEgMTAwNjQ0Ci0tLS0gYS9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMv YXV0b21lbWJlcl9wbHVnaW4vYmFzaWNfdGVzdC5weQotKysrIGIvZGlyc3J2dGVzdHMvdGVzdHMv c3VpdGVzL2F1dG9tZW1iZXJfcGx1Z2luL2Jhc2ljX3Rlc3QucHkKLUBAIC0xOSw3ICsxOSw4IEBA IGZyb20gbGliMzg5LmlkbS5vcmdhbml6YXRpb25hbHVuaXQgaW1wb3J0IE9yZ2FuaXphdGlvbmFs VW5pdHMKLSBmcm9tIGxpYjM4OS5pZG0uZG9tYWluIGltcG9ydCBEb21haW4KLSBmcm9tIGxpYjM4 OS5pZG0ucG9zaXhncm91cCBpbXBvcnQgUG9zaXhHcm91cHMKLSBmcm9tIGxpYjM4OS5wbHVnaW5z IGltcG9ydCBBdXRvTWVtYmVyc2hpcFBsdWdpbiwgQXV0b01lbWJlcnNoaXBEZWZpbml0aW9ucywg XAotLSAgICBNZW1iZXJPZlBsdWdpbiwgQXV0b01lbWJlcnNoaXBSZWdleFJ1bGVzLCBBdXRvTWVt YmVyc2hpcERlZmluaXRpb24sIFJldHJvQ2hhbmdlbG9nUGx1Z2luCi0rICAgIE1lbWJlck9mUGx1 Z2luLCBBdXRvTWVtYmVyc2hpcFJlZ2V4UnVsZXMsIEF1dG9NZW1iZXJzaGlwRGVmaW5pdGlvbiwg UmV0cm9DaGFuZ2Vsb2dQbHVnaW4sIFwKLSsgICAgUmVmZXJlbnRpYWxJbnRlZ3JpdHlQbHVnaW4K LSBmcm9tIGxpYjM4OS5iYWNrZW5kIGltcG9ydCBCYWNrZW5kcwotIGZyb20gbGliMzg5LmNvbmZp ZyBpbXBvcnQgQ29uZmlnCi0gZnJvbSBsaWIzODkuX2NvbnN0YW50cyBpbXBvcnQgREVGQVVMVF9T VUZGSVgKLUBAIC0xOTYsNiArMTk3LDcgQEAgZGVmIF9jcmVhdGVfYWxsX2VudHJpZXModG9wbyk6 Ci0gICAgIGF1dG8gPSBBdXRvTWVtYmVyc2hpcFBsdWdpbih0b3BvLm1zWyJzdXBwbGllcjEiXSkK LSAgICAgYXV0by5hZGQoIm5zc2xhcGQtcGx1Z2luQ29uZmlnQXJlYSIsICJjbj1hdXRvTWVtYmVy c1BsdWdpbix7fSIuZm9ybWF0KEJBU0VfUkVQTCkpCi0gICAgIE1lbWJlck9mUGx1Z2luKHRvcG8u bXNbInN1cHBsaWVyMSJdKS5lbmFibGUoKQotKyAgICBSZWZlcmVudGlhbEludGVncml0eVBsdWdp bih0b3BvLm1zWyJzdXBwbGllcjEiXSkuZW5hYmxlKCkKLSAgICAgYXV0b21lbWJlcnNfZGVmaW5p dGlvbnMgPSBBdXRvTWVtYmVyc2hpcERlZmluaXRpb25zKHRvcG8ubXNbInN1cHBsaWVyMSJdKQot ICAgICBhdXRvbWVtYmVyc19kZWZpbml0aW9ucy5jcmVhdGUocHJvcGVydGllcz17Ci0gICAgICAg ICAnY24nOiAndXNlckdyb3VwcycsCi1AQCAtOTUwLDggKzk1MiwxOCBAQCBkZWYgX3N0YXJ0dXB0 YXNrKHRvcG8pOgotIAotIEBweXRlc3QuZml4dHVyZShzY29wZT0iZnVuY3Rpb24iKQotIGRlZiBf Zml4dHVyZV9mb3JfYnVpbGRfdGFzayhyZXF1ZXN0LCB0b3BvKToKLSsgICAgc3VwcGxpZXIgPSB0 b3BvLm1zWydzdXBwbGllcjEnXQotKyAgICBtYW5hZ2Vyc19ncnAgPSAiY249TWFuYWdlcnMsb3U9 dXNlckdyb3Vwcyx7fSIuZm9ybWF0KEJBU0VfU1VGRikKLSsgICAgY29udHJhY3RfZ3JwID0gImNu PUNvbnRyYWN0b3JzLG91PXVzZXJHcm91cHMse30iLmZvcm1hdChCQVNFX1NVRkYpCi0rCi0rICAg IGZvciBncnAgaW4gKG1hbmFnZXJzX2dycCwgY29udHJhY3RfZ3JwKToKLSsgICAgICAgIGdyb3Vw ID0gR3JvdXAoc3VwcGxpZXIsIGdycCkKLSsgICAgICAgIHRyeToKLSsgICAgICAgICAgICBncm91 cC5yZW1vdmVfYWxsKCdtZW1iZXInKQotKyAgICAgICAgZXhjZXB0IGxkYXAuTk9fU1VDSF9BVFRS SUJVVEU6Ci0rICAgICAgICAgICAgcGFzcwotKwotICAgICBkZWYgZmlub2YoKToKLS0gICAgICAg IHN1cHBsaWVyID0gdG9wby5tc1snc3VwcGxpZXIxJ10KLSAgICAgICAgIGF1dG9fbWVtX3Njb3Bl ID0gIm91PVRhc2tFbXBsb3llZXMse30iLmZvcm1hdChCQVNFX1NVRkYpCi0gICAgICAgICBmb3Ig dXNlciBpbiBuc0FkbWluR3JvdXBzKHN1cHBsaWVyLCBhdXRvX21lbV9zY29wZSwgcmRuPU5vbmUp Lmxpc3QoKToKLSAgICAgICAgICAgICB1c2VyLmRlbGV0ZSgpCi0tLSAKLTIuNTIuMAotCgpkaWZm IC0tZ2l0IGEvMDAwOS1Jc3N1ZS02NzU4LVVzZS1PVUlBLXNlbGVjdG9ycy1mb3ItV2ViVUktcGx1 Z2luLXRlc3RzLnBhdGNoIGIvMDAwOS1Jc3N1ZS02NzU4LVVzZS1PVUlBLXNlbGVjdG9ycy1mb3It V2ViVUktcGx1Z2luLXRlc3RzLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5 ZmQyZTcxLi4wMDAwMDAwCi0tLSBhLzAwMDktSXNzdWUtNjc1OC1Vc2UtT1VJQS1zZWxlY3RvcnMt Zm9yLVdlYlVJLXBsdWdpbi10ZXN0cy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDExNSArMCww IEBACi1Gcm9tIDViMzI0NzlhYmNkNjhmOGIzN2QyZmIyMDdjNTAyMTEzYTViNGIxNmMgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBBa3NoYXkgQWRoaWthcmkgPGFhZGhpa2FyQHJlZGhh dC5jb20+Ci1EYXRlOiBNb24sIDE5IEphbiAyMDI2IDE5OjQ1OjI5ICswNTMwCi1TdWJqZWN0OiBb UEFUQ0hdIElzc3VlIDY3NTggLSBVc2UgT1VJQSBzZWxlY3RvcnMgZm9yIFdlYlVJIHBsdWdpbiB0 ZXN0cwotICgjNzE4MikKLQotRGVzY3JpcHRpb246Ci1BZGQgb3VpYUlkIHRvIHBsdWdpbiBOYXZJ dGVtcyBhbmQgdXBkYXRlIHRlc3RzIHRvIHVzZSBPVUlBIHNlbGVjdG9ycwotaW5zdGVhZCBvZiB0 ZXh0IG1hdGNoaW5nLgotCi1SZWxhdGVzOiAjNjc1OAotCi1SZXZpZXdlZCBieTogQGRyb2lkZWNr Ci0tLS0KLSAuLi4vc3VpdGVzL3dlYnVpL3BsdWdpbnMvcGx1Z2luc190ZXN0LnB5ICAgICAgfCAy OCArKysrKysrKystLS0tLS0tLS0tCi0gc3JjL2NvY2twaXQvMzg5LWNvbnNvbGUvc3JjL3BsdWdp bnMuanN4ICAgICAgIHwgIDIgKy0KLSAyIGZpbGVzIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyks IDE1IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVz L3dlYnVpL3BsdWdpbnMvcGx1Z2luc190ZXN0LnB5IGIvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVz L3dlYnVpL3BsdWdpbnMvcGx1Z2luc190ZXN0LnB5Ci1pbmRleCBlNGJkN2YwMzkuLmE4NDliZmI5 MSAxMDA2NDQKLS0tLSBhL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy93ZWJ1aS9wbHVnaW5zL3Bs dWdpbnNfdGVzdC5weQotKysrIGIvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL3dlYnVpL3BsdWdp bnMvcGx1Z2luc190ZXN0LnB5Ci1AQCAtMTY4LDggKzE2OCw4IEBAIGRlZiB0ZXN0X2xpbmtlZF9h dHRyaWJ1dGVzX3BsdWdpbl92aXNpYmlsaXR5KHRvcG9sb2d5X3N0LCBwYWdlLCBicm93c2VyX25h bWUpOgotIAotICAgICBsb2cuaW5mbygnQ2xpY2sgb24gUGx1Z2lucyB0YWIsIGNsaWNrIG9uIExp bmtlZCBBdHRyaWJ1dGVzIHBsdWdpbiBhbmQgY2hlY2sgaWYgZWxlbWVudCBpcyBsb2FkZWQuJykK LSAgICAgZnJhbWUuZ2V0X2J5X3JvbGUoJ3RhYicsIG5hbWU9J1BsdWdpbnMnLCBleGFjdD1UcnVl KS5jbGljaygpCi0tICAgIGZyYW1lLmdldF9ieV90ZXh0KCdMaW5rZWQgQXR0cmlidXRlcycpLndh aXRfZm9yKCkKLS0gICAgZnJhbWUuZ2V0X2J5X3RleHQoJ0xpbmtlZCBBdHRyaWJ1dGVzJykuY2xp Y2soKQotKyAgICBmcmFtZS5sb2NhdG9yKCdbZGF0YS1vdWlhLWNvbXBvbmVudC1pZD0ibGlua2Vk QXR0cmlidXRlcyJdJykud2FpdF9mb3IoKQotKyAgICBmcmFtZS5sb2NhdG9yKCdbZGF0YS1vdWlh LWNvbXBvbmVudC1pZD0ibGlua2VkQXR0cmlidXRlcyJdJykuY2xpY2soKQotICAgICBmcmFtZS5n ZXRfYnlfcm9sZSgnYnV0dG9uJywgbmFtZT0nQWRkIENvbmZpZycpLndhaXRfZm9yKCkKLSAgICAg YXNzZXJ0IGZyYW1lLmdldF9ieV9yb2xlKCdidXR0b24nLCBuYW1lPSdBZGQgQ29uZmlnJykuaXNf dmlzaWJsZSgpCi0gCi1AQCAtMjU0LDggKzI1NCw4IEBAIGRlZiB0ZXN0X2xkYXBfcGFzc190aHJv dWdoX2F1dGhfcGx1Z2luX3Zpc2liaWxpdHkodG9wb2xvZ3lfc3QsIHBhZ2UsIGJyb3dzZXJfbmFt Ci0gCi0gICAgIGxvZy5pbmZvKCdDbGljayBvbiBQbHVnaW5zIHRhYiwgY2xpY2sgb24gTERBUCBQ YXNzIFRocm91Z2ggQXV0aCBwbHVnaW4gYW5kIGNoZWNrIGlmIGVsZW1lbnQgaXMgbG9hZGVkLicp Ci0gICAgIGZyYW1lLmdldF9ieV9yb2xlKCd0YWInLCBuYW1lPSdQbHVnaW5zJywgZXhhY3Q9VHJ1 ZSkuY2xpY2soKQotLSAgICBmcmFtZS5nZXRfYnlfdGV4dCgnTERBUCBQYXNzIFRocm91Z2ggQXV0 aCcpLndhaXRfZm9yKCkKLS0gICAgZnJhbWUuZ2V0X2J5X3RleHQoJ0xEQVAgUGFzcyBUaHJvdWdo IEF1dGgnKS5jbGljaygpCi0rICAgIGZyYW1lLmxvY2F0b3IoJ1tkYXRhLW91aWEtY29tcG9uZW50 LWlkPSJwYXNzdGhyb3VnaEF1dGhlbnRpY2F0aW9uIl0nKS53YWl0X2ZvcigpCi0rICAgIGZyYW1l LmxvY2F0b3IoJ1tkYXRhLW91aWEtY29tcG9uZW50LWlkPSJwYXNzdGhyb3VnaEF1dGhlbnRpY2F0 aW9uIl0nKS5jbGljaygpCi0gICAgIGZyYW1lLmdldF9ieV9yb2xlKCdidXR0b24nLCBuYW1lPSdB ZGQgVVJMJykud2FpdF9mb3IoKQotICAgICBhc3NlcnQgZnJhbWUuZ2V0X2J5X3JvbGUoJ2J1dHRv bicsIG5hbWU9J0FkZCBVUkwnKS5pc192aXNpYmxlKCkKLSAKLUBAIC0yODAsOCArMjgwLDggQEAg ZGVmIHRlc3RfcGFtX3Bhc3NfdGhyb3VnaF9hdXRoX3BsdWdpbl92aXNpYmlsaXR5KHRvcG9sb2d5 X3N0LCBwYWdlLCBicm93c2VyX25hbWUKLSAKLSAgICAgbG9nLmluZm8oJ0NsaWNrIG9uIFBsdWdp bnMgdGFiLCBjbGljayBvbiBQQU0gUGFzcyBUaHJvdWdoIEF1dGggcGx1Z2luIGFuZCBjaGVjayBp ZiBlbGVtZW50IGlzIGxvYWRlZC4nKQotICAgICBmcmFtZS5nZXRfYnlfcm9sZSgndGFiJywgbmFt ZT0nUGx1Z2lucycsIGV4YWN0PVRydWUpLmNsaWNrKCkKLS0gICAgZnJhbWUuZ2V0X2J5X3RleHQo J1BBTSBQYXNzIFRocm91Z2ggQXV0aCcpLndhaXRfZm9yKCkKLS0gICAgZnJhbWUuZ2V0X2J5X3Rl eHQoJ1BBTSBQYXNzIFRocm91Z2ggQXV0aCcpLmNsaWNrKCkKLSsgICAgZnJhbWUubG9jYXRvcign W2RhdGEtb3VpYS1jb21wb25lbnQtaWQ9InBhbVBhc3N0aHJvdWdoQXV0aGVudGljYXRpb24iXScp LndhaXRfZm9yKCkKLSsgICAgZnJhbWUubG9jYXRvcignW2RhdGEtb3VpYS1jb21wb25lbnQtaWQ9 InBhbVBhc3N0aHJvdWdoQXV0aGVudGljYXRpb24iXScpLmNsaWNrKCkKLSAgICAgZnJhbWUuZ2V0 X2J5X3JvbGUoJ2J1dHRvbicsIG5hbWU9J0FkZCBDb25maWcnKS53YWl0X2ZvcigpCi0gICAgIGFz c2VydCBmcmFtZS5nZXRfYnlfcm9sZSgnYnV0dG9uJywgbmFtZT0nQWRkIENvbmZpZycpLmlzX3Zp c2libGUoKQotIAotQEAgLTMwNiw4ICszMDYsOCBAQCBkZWYgdGVzdF9wb3NpeF93aW5zeW5jX3Bs dWdpbl92aXNpYmlsaXR5KHRvcG9sb2d5X3N0LCBwYWdlLCBicm93c2VyX25hbWUpOgotIAotICAg ICBsb2cuaW5mbygnQ2xpY2sgb24gUGx1Z2lucyB0YWIsIGNsaWNrIG9uIFBvc2l4IFdpbnN5bmMg cGx1Z2luIGFuZCBjaGVjayBpZiBlbGVtZW50IGlzIGxvYWRlZC4nKQotICAgICBmcmFtZS5nZXRf Ynlfcm9sZSgndGFiJywgbmFtZT0nUGx1Z2lucycsIGV4YWN0PVRydWUpLmNsaWNrKCkKLS0gICAg ZnJhbWUuZ2V0X2J5X3RleHQoJ1Bvc2l4IFdpbnN5bmMnKS53YWl0X2ZvcigpCi0tICAgIGZyYW1l LmdldF9ieV90ZXh0KCdQb3NpeCBXaW5zeW5jJykuY2xpY2soKQotKyAgICBmcmFtZS5sb2NhdG9y KCdbZGF0YS1vdWlhLWNvbXBvbmVudC1pZD0id2luc3luYyJdJykud2FpdF9mb3IoKQotKyAgICBm cmFtZS5sb2NhdG9yKCdbZGF0YS1vdWlhLWNvbXBvbmVudC1pZD0id2luc3luYyJdJykuY2xpY2so KQotICAgICBmcmFtZS5sb2NhdG9yKCcjcG9zaXhXaW5zeW5jQ3JlYXRlTWVtYmVyT2ZUYXNrJyku d2FpdF9mb3IoKQotICAgICBhc3NlcnQgZnJhbWUubG9jYXRvcignI3Bvc2l4V2luc3luY0NyZWF0 ZU1lbWJlck9mVGFzaycpLmlzX3Zpc2libGUoKQotIAotQEAgLTMzMiw4ICszMzIsOCBAQCBkZWYg dGVzdF9yZWZlcmVudGlhbF9pbnRlZ3JpdHlfcGx1Z2luX3Zpc2liaWxpdHkodG9wb2xvZ3lfc3Qs IHBhZ2UsIGJyb3dzZXJfbmFtZQotIAotICAgICBsb2cuaW5mbygnQ2xpY2sgb24gUGx1Z2lucyB0 YWIsIGNsaWNrIG9uIFJlZmVyZW50aWFsIEludGVncml0eSBwbHVnaW4gYW5kIGNoZWNrIGlmIGVs ZW1lbnQgaXMgbG9hZGVkLicpCi0gICAgIGZyYW1lLmdldF9ieV9yb2xlKCd0YWInLCBuYW1lPSdQ bHVnaW5zJywgZXhhY3Q9VHJ1ZSkuY2xpY2soKQotLSAgICBmcmFtZS5nZXRfYnlfdGV4dCgnUmVm ZXJlbnRpYWwgSW50ZWdyaXR5Jykud2FpdF9mb3IoKQotLSAgICBmcmFtZS5nZXRfYnlfdGV4dCgn UmVmZXJlbnRpYWwgSW50ZWdyaXR5JykuY2xpY2soKQotKyAgICBmcmFtZS5sb2NhdG9yKCdbZGF0 YS1vdWlhLWNvbXBvbmVudC1pZD0icmVmZXJlbnRpYWxJbnRlZ3JpdHkiXScpLndhaXRfZm9yKCkK LSsgICAgZnJhbWUubG9jYXRvcignW2RhdGEtb3VpYS1jb21wb25lbnQtaWQ9InJlZmVyZW50aWFs SW50ZWdyaXR5Il0nKS5jbGljaygpCi0gICAgIGZyYW1lLmxvY2F0b3IoJyNlbnRyeVNjb3BlJyku d2FpdF9mb3IoKQotICAgICBhc3NlcnQgZnJhbWUubG9jYXRvcignI2VudHJ5U2NvcGUnKS5pc192 aXNpYmxlKCkKLSAKLUBAIC0zNTgsOCArMzU4LDggQEAgZGVmIHRlc3RfcmV0cm9fY2hhbmdlbG9n X3BsdWdpbl92aXNpYmlsaXR5KHRvcG9sb2d5X3N0LCBwYWdlLCBicm93c2VyX25hbWUpOgotIAot ICAgICBsb2cuaW5mbygnQ2xpY2sgb24gUGx1Z2lucyB0YWIsIGNsaWNrIG9uIFJldHJvIENoYW5n ZWxvZyBwbHVnaW4gYW5kIGNoZWNrIGlmIGVsZW1lbnQgaXMgbG9hZGVkLicpCi0gICAgIGZyYW1l LmdldF9ieV9yb2xlKCd0YWInLCBuYW1lPSdQbHVnaW5zJywgZXhhY3Q9VHJ1ZSkuY2xpY2soKQot LSAgICBmcmFtZS5nZXRfYnlfdGV4dCgnUmV0cm8gQ2hhbmdlbG9nJykud2FpdF9mb3IoKQotLSAg ICBmcmFtZS5nZXRfYnlfdGV4dCgnUmV0cm8gQ2hhbmdlbG9nJykuY2xpY2soKQotKyAgICBmcmFt ZS5sb2NhdG9yKCdbZGF0YS1vdWlhLWNvbXBvbmVudC1pZD0icmV0cm9DaGFuZ2Vsb2ciXScpLndh aXRfZm9yKCkKLSsgICAgZnJhbWUubG9jYXRvcignW2RhdGEtb3VpYS1jb21wb25lbnQtaWQ9InJl dHJvQ2hhbmdlbG9nIl0nKS5jbGljaygpCi0gICAgIGZyYW1lLmxvY2F0b3IoJyNpc1JlcGxpY2F0 ZWQnKS53YWl0X2ZvcigpCi0gICAgIGFzc2VydCBmcmFtZS5sb2NhdG9yKCcjaXNSZXBsaWNhdGVk JykuaXNfdmlzaWJsZSgpCi0gCi1AQCAtMzg0LDggKzM4NCw4IEBAIGRlZiB0ZXN0X3Jvb3Rkbl9h Y2Nlc3NfY29udHJvbF9wbHVnaW5fdmlzaWJpbGl0eSh0b3BvbG9neV9zdCwgcGFnZSwgYnJvd3Nl cl9uYW1lCi0gCi0gICAgIGxvZy5pbmZvKCdDbGljayBvbiBQbHVnaW5zIHRhYiwgY2xpY2sgb24g Um9vdEROIEFjY2VzcyBDb250cm9sIHBsdWdpbiBhbmQgY2hlY2sgaWYgZWxlbWVudCBpcyBsb2Fk ZWQuJykKLSAgICAgZnJhbWUuZ2V0X2J5X3JvbGUoJ3RhYicsIG5hbWU9J1BsdWdpbnMnLCBleGFj dD1UcnVlKS5jbGljaygpCi0tICAgIGZyYW1lLmdldF9ieV90ZXh0KCdSb290RE4gQWNjZXNzIENv bnRyb2wnKS53YWl0X2ZvcigpCi0tICAgIGZyYW1lLmdldF9ieV90ZXh0KCdSb290RE4gQWNjZXNz IENvbnRyb2wnKS5jbGljaygpCi0rICAgIGZyYW1lLmxvY2F0b3IoJ1tkYXRhLW91aWEtY29tcG9u ZW50LWlkPSJyb290RG5hQWNjZXNzQ29udHJvbCJdJykud2FpdF9mb3IoKQotKyAgICBmcmFtZS5s b2NhdG9yKCdbZGF0YS1vdWlhLWNvbXBvbmVudC1pZD0icm9vdERuYUFjY2Vzc0NvbnRyb2wiXScp LmNsaWNrKCkKLSAgICAgZnJhbWUubG9jYXRvcignI2FsbG93TW9uJykud2FpdF9mb3IoKQotICAg ICBhc3NlcnQgZnJhbWUubG9jYXRvcignI2FsbG93TW9uJykuaXNfdmlzaWJsZSgpCi0gCi1kaWZm IC0tZ2l0IGEvc3JjL2NvY2twaXQvMzg5LWNvbnNvbGUvc3JjL3BsdWdpbnMuanN4IGIvc3JjL2Nv Y2twaXQvMzg5LWNvbnNvbGUvc3JjL3BsdWdpbnMuanN4Ci1pbmRleCA0MTI0YTc3ZWYuLmUyNDI1 NWM3NiAxMDA2NDQKLS0tLSBhL3NyYy9jb2NrcGl0LzM4OS1jb25zb2xlL3NyYy9wbHVnaW5zLmpz eAotKysrIGIvc3JjL2NvY2twaXQvMzg5LWNvbnNvbGUvc3JjL3BsdWdpbnMuanN4Ci1AQCAtNjgw LDcgKzY4MCw3IEBAIGV4cG9ydCBjbGFzcyBQbHVnaW5zIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50 IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE5hdiBrZXk9e3RoaXMuc3RhdGUucGx1 Z2luVGFibGVLZXl9IHRoZW1lPSJsaWdodCIgb25TZWxlY3Q9eyhldmVudCwgaXRlbSkgPT4gdGhp cy5oYW5kbGVTZWxlY3QoZXZlbnQsIGl0ZW0pfT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDxOYXZMaXN0PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtP YmplY3QuZW50cmllcyhzZWxlY3RQbHVnaW5zKS5tYXAoKFtpZCwgaXRlbV0pID0+ICgKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE5hdkl0ZW0ga2V5PXtpdGVtLm5h bWV9IGl0ZW1JZD17aXRlbS5uYW1lfSBpc0FjdGl2ZT17dGhpcy5zdGF0ZS5hY3RpdmVQbHVnaW4g PT09IGl0ZW0ubmFtZX0+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDxOYXZJdGVtIGtleT17aXRlbS5uYW1lfSBpdGVtSWQ9e2l0ZW0ubmFtZX0gb3VpYUlkPXtpZH0g aXNBY3RpdmU9e3RoaXMuc3RhdGUuYWN0aXZlUGx1Z2luID09PSBpdGVtLm5hbWV9PgotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2l0ZW0uaWNvbn0KLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9OYXZJdGVtPgotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfQotLS0gCi0yLjUyLjAKLQoKZGlmZiAtLWdp dCBhLzAwMTAtSXNzdWUtNzE5Ni1EeW5hbWljQ2VydGlmaWNhdGVzLXJldHVybnMtZW1wdHktREVS LTcxOS5wYXRjaCBiLzAwMTAtSXNzdWUtNzE5Ni1EeW5hbWljQ2VydGlmaWNhdGVzLXJldHVybnMt ZW1wdHktREVSLTcxOS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWQ4OTA3 Yy4uMDAwMDAwMAotLS0gYS8wMDEwLUlzc3VlLTcxOTYtRHluYW1pY0NlcnRpZmljYXRlcy1yZXR1 cm5zLWVtcHR5LURFUi03MTkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi1G cm9tIDliZDkzZGM2MThjMjYxZDUyMjIyZTcxM2M1NjUwMGFiYmNlNDExM2UgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCi1Gcm9tOiBwcm9naWVyMzg5IDxwcm9naWVyQHJlZGhhdC5jb20+Ci1EYXRl OiBNb24sIDE5IEphbiAyMDI2IDE3OjI0OjQwICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIElzc3Vl IDcxOTYgLSBEeW5hbWljQ2VydGlmaWNhdGVzIHJldHVybnMgZW1wdHkgREVSICgjNzE5NykKLQot Rml4aW5nIGEgbWlzdGFrZSBkb25lIHdoaWxlIGZpeGluZyBtZW1vcnkgbGVha3MuCi1WYWx1ZSB3 YXMgZnJlZWQgYmVmb3JlIGJlaW5nIGFkZGVkIGluIHRoZSBlbnRyeSByYXRoZXIgdGhhbiBhZnRl ciAuLi4KLQotSXNzdWU6ICM3MTk2Ci0KLVJldmlld2VkIGJ5OiBAamNoYXBtYSAodGhhbmtzISkK LS0tLQotIGxkYXAvc2VydmVycy9zbGFwZC9keW5jZXJ0cy5jIHwgMiArLQotIDEgZmlsZSBjaGFu Z2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEvbGRhcC9z ZXJ2ZXJzL3NsYXBkL2R5bmNlcnRzLmMgYi9sZGFwL3NlcnZlcnMvc2xhcGQvZHluY2VydHMuYwot aW5kZXggNTBiOTJhYTVmLi5lZmVhYTZlYjYgMTAwNjQ0Ci0tLS0gYS9sZGFwL3NlcnZlcnMvc2xh cGQvZHluY2VydHMuYwotKysrIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2R5bmNlcnRzLmMKLUBAIC03 ODYsOCArNzg2LDggQEAgZHluY2VydHNfY2VydDJlbnRyeShDRVJUQ2VydGlmaWNhdGUgKmNlcnQp Ci0gICAgIENPTkRfU1RSKGUsIERZQ0FUVFJfVFlQRSwgIk9CSkVDVCBTSUdOSU5HIENBIiwgY2Vy dC0+bnNDZXJ0VHlwZSAmIE5TX0NFUlRfVFlQRV9PQkpFQ1RfU0lHTklOR19DQSk7Ci0gICAgIHNs YXBpX2VudHJ5X2FkZF9zdHJpbmcoZSwgRFlDQVRUUl9UT0tFTiwgUEsxMV9HZXRUb2tlbk5hbWUo Y2VydC0+c2xvdCkpOwotICAgICBzZWNpdGVtdigmY2VydC0+ZGVyQ2VydCwgJnRtcHYpOwotLSAg ICB2YWx1ZV9kb25lKCZ0bXB2KTsKLSAgICAgc2xhcGlfZW50cnlfYWRkX3ZhbHVlKGUsIERZQ0FU VFJfQ0VSVERFUiwgJnRtcHYpOwotKyAgICB2YWx1ZV9kb25lKCZ0bXB2KTsKLSAgICAgdG1wc3Ry ID0gc2VjaXRlbTJoZXgoJmNlcnQtPnNlcmlhbE51bWJlcik7Ci0gICAgIHNsYXBpX2VudHJ5X2Fk ZF9zdHJpbmcoZSwgRFlDQVRUUl9TTiwgdG1wc3RyKTsKLSAgICAgc2xhcGlfY2hfZnJlZV9zdHJp bmcoJnRtcHN0cik7Ci0tLSAKLTIuNTIuMAotCgpkaWZmIC0tZ2l0IGEvMDAxMS1Jc3N1ZS03MTg5 LURTQkxFMDAwNy1nZW5lcmF0ZXMtaW5jb3JyZWN0LXJlbWVkaWF0aW9uLnBhdGNoIGIvMDAxMS1J c3N1ZS03MTg5LURTQkxFMDAwNy1nZW5lcmF0ZXMtaW5jb3JyZWN0LXJlbWVkaWF0aW9uLnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMzdhOTM5Li4wMDAwMDAwCi0tLSBhLzAw MTEtSXNzdWUtNzE4OS1EU0JMRTAwMDctZ2VuZXJhdGVzLWluY29ycmVjdC1yZW1lZGlhdGlvbi5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIzNSArMCwwIEBACi1Gcm9tIGM2ZjQ1OGI0MjE1OThi MThhNTQ1NTgyNDQxNDcyYjkxMGI1YmE1NmUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9t OiBWaWt0b3IgQXNoaXJvdiA8dmFzaGlyb3ZAcmVkaGF0LmNvbT4KLURhdGU6IFR1ZSwgMjAgSmFu IDIwMjYgMDk6NTI6NDcgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gSXNzdWUgNzE4OSAtIERTQkxF MDAwNyBnZW5lcmF0ZXMgaW5jb3JyZWN0IHJlbWVkaWF0aW9uCi0gY29tbWFuZHMgZm9yIHNjYW4g bGltaXRzCi0KLUJ1ZyBEZXNjcmlwdGlvbjoKLQotVGhlIGdlbmVyYXRlZCBkc2NvbmYgY29tbWFu ZHMgZm9yIGZpeGluZyBtaXNzaW5nIHN5c3RlbSBpbmRleGVzIGhhZCB0d28gaXNzdWVzOgotCi0x LiBUaGUgLS1hZGQtc2NhbmxpbWl0IHZhbHVlIHdhcyBub3QgcXVvdGVkLCBjYXVzaW5nIHRoZSBz aGVsbCB0byBpbnRlcnByZXQKLSAgICJsaW1pdD01MDAwIHR5cGU9ZXEgZmxhZ3M9QU5EIiBhcyBt dWx0aXBsZSBhcmd1bWVudHMgaW5zdGVhZCBvZiBhIHNpbmdsZQotICAgdmFsdWUsIHJlc3VsdGlu ZyBpbiAidW5yZWNvZ25pemVkIGFyZ3VtZW50czogdHlwZT1lcSBmbGFncz1BTkQiIGVycm9yLgot Ci0yLiBXaGVuIGJvdGggbWF0Y2hpbmcgcnVsZSBhbmQgc2NhbmxpbWl0IHdlcmUgbWlzc2luZywg dHdvIHNlcGFyYXRlIGNvbW1hbmRzCi0gICB3ZXJlIGdlbmVyYXRlZCB3aGVyZSB0aGUgc2Vjb25k IHdvdWxkIGZhaWwgYmVjYXVzZSB0aGUgbWF0Y2hpbmcgcnVsZSB3YXMKLSAgIGFscmVhZHkgYWRk ZWQgYnkgdGhlIGZpcnN0IGNvbW1hbmQuCi0KLUZpeCBEZXNjcmlwdGlvbjoKLQotMS4gUXVvdGUg dGhlIHNjYW5saW1pdCB2YWx1ZSBpbiBhbGwgcmVtZWRpYXRpb24gY29tbWFuZHMKLQotMi4gQ29t YmluZSBtYXRjaGluZyBydWxlIGFuZCBzY2FubGltaXQgZml4ZXMgaW50byBhIHNpbmdsZSBjb21t YW5kIHdoZW4KLSAgIGJvdGggYXJlIG1pc3NpbmcgZm9yIHRoZSBzYW1lIGluZGV4IGluc3RlYWQg b2YgZXhwZWN0ZWRfc2NhbmxpbWl0KQotCi1GaXhlczogaHR0cHM6Ly9naXRodWIuY29tLzM4OWRz LzM4OS1kcy1iYXNlL2lzc3Vlcy83MTg5Ci0KLVJldmlld2VkIGJ5OiBAcHJvZ2llcjM4OSwgQGRy b2lkZWNrIChUaGFua3MhKQotLS0tCi0gLi4uL2hlYWx0aGNoZWNrL2hlYWx0aF9zeXN0ZW1faW5k ZXhlc190ZXN0LnB5IHwgMTI2ICsrKysrKysrKysrKysrKysrKwotIHNyYy9saWIzODkvbGliMzg5 L2JhY2tlbmQucHkgICAgICAgICAgICAgICAgICB8ICAzOSArKystLS0KLSAyIGZpbGVzIGNoYW5n ZWQsIDE0NyBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2Rp cnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9oZWFsdGhjaGVjay9oZWFsdGhfc3lzdGVtX2luZGV4ZXNf dGVzdC5weSBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9oZWFsdGhjaGVjay9oZWFsdGhfc3lz dGVtX2luZGV4ZXNfdGVzdC5weQotaW5kZXggYTk3N2I3MWQxLi40ODZmYWQ0NGIgMTAwNjQ0Ci0t LS0gYS9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvaGVhbHRoY2hlY2svaGVhbHRoX3N5c3RlbV9p bmRleGVzX3Rlc3QucHkKLSsrKyBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9oZWFsdGhjaGVj ay9oZWFsdGhfc3lzdGVtX2luZGV4ZXNfdGVzdC5weQotQEAgLTQwOCw2ICs0MDgsMTMyIEBAIGRl ZiB0ZXN0X3JldHJvY2xfcGx1Z2luX21pc3NpbmdfbWF0Y2hpbmdfcnVsZSh0b3BvbG9neV9zdCwg cmV0cm9jbF9wbHVnaW5fZW5hYmxlCi0gICAgIHJ1bl9oZWFsdGhjaGVja19hbmRfZmx1c2hfbG9n KHRvcG9sb2d5X3N0LCBzdGFuZGFsb25lLCBqc29uPVRydWUsIHNlYXJjaGVkX2NvZGU9SlNPTl9P VVRQVVQpCi0gCi0gCi0rZGVmIHRlc3RfbWlzc2luZ19zY2FubGltaXQodG9wb2xvZ3lfc3QsIGxv Z19idWZmZXJpbmdfZW5hYmxlZCk6Ci0rICAgICIiIkNoZWNrIGlmIGhlYWx0aGNoZWNrIHJldHVy bnMgRFNCTEUwMDA3IGNvZGUgd2hlbiBwYXJlbnRJZCBpbmRleCBpcyBtaXNzaW5nIHNjYW5saW1p dAotKwotKyAgICA6aWQ6IDQwZTFiZjZhLTIzOTctNDU5Yi1iZGYzLWY3ODdjYTExOGI4NgotKyAg ICA6c2V0dXA6IFN0YW5kYWxvbmUgaW5zdGFuY2UKLSsgICAgOnN0ZXBzOgotKyAgICAgICAgMS4g Q3JlYXRlIERTIGluc3RhbmNlCi0rICAgICAgICAyLiBSZW1vdmUgbnNJbmRleElETGlzdFNjYW5M aW1pdCBmcm9tIHBhcmVudElkIGluZGV4Ci0rICAgICAgICAzLiBVc2UgaGVhbHRoY2hlY2sgd2l0 aG91dCAtLWpzb24gb3B0aW9uCi0rICAgICAgICA0LiBVc2UgaGVhbHRoY2hlY2sgd2l0aCAtLWpz b24gb3B0aW9uCi0rICAgICAgICA1LiBWZXJpZnkgdGhlIHJlbWVkaWF0aW9uIGNvbW1hbmQgaGFz IHByb3Blcmx5IHF1b3RlZCBzY2FubGltaXQKLSsgICAgICAgIDYuIFJlLWFkZCB0aGUgc2Nhbmxp bWl0Ci0rICAgICAgICA3LiBVc2UgaGVhbHRoY2hlY2sgd2l0aG91dCAtLWpzb24gb3B0aW9uCi0r ICAgICAgICA4LiBVc2UgaGVhbHRoY2hlY2sgd2l0aCAtLWpzb24gb3B0aW9uCi0rICAgIDpleHBl Y3RlZHJlc3VsdHM6Ci0rICAgICAgICAxLiBTdWNjZXNzCi0rICAgICAgICAyLiBTdWNjZXNzCi0r ICAgICAgICAzLiBoZWFsdGhjaGVjayByZXBvcnRzIERTQkxFMDAwNyBjb2RlIGFuZCByZWxhdGVk IGRldGFpbHMKLSsgICAgICAgIDQuIGhlYWx0aGNoZWNrIHJlcG9ydHMgRFNCTEUwMDA3IGNvZGUg YW5kIHJlbGF0ZWQgZGV0YWlscwotKyAgICAgICAgNS4gVGhlIHNjYW5saW1pdCB2YWx1ZSBpcyBx dW90ZWQgaW4gdGhlIHJlbWVkaWF0aW9uIGNvbW1hbmQKLSsgICAgICAgIDYuIFN1Y2Nlc3MKLSsg ICAgICAgIDcuIGhlYWx0aGNoZWNrIHJlcG9ydHMgbm8gaXNzdWVzIGZvdW5kCi0rICAgICAgICA4 LiBoZWFsdGhjaGVjayByZXBvcnRzIG5vIGlzc3VlcyBmb3VuZAotKyAgICAiIiIKLSsKLSsgICAg UkVUX0NPREUgPSAiRFNCTEUwMDA3IgotKyAgICBQQVJFTlRJRF9ETiA9ICJjbj1wYXJlbnRpZCxj bj1pbmRleCxjbj11c2Vycm9vdCxjbj1sZGJtIGRhdGFiYXNlLGNuPXBsdWdpbnMsY249Y29uZmln IgotKyAgICBTQ0FOTElNSVRfVkFMVUUgPSAibGltaXQ9NTAwMCB0eXBlPWVxIGZsYWdzPUFORCIK LSsKLSsgICAgc3RhbmRhbG9uZSA9IHRvcG9sb2d5X3N0LnN0YW5kYWxvbmUKLSsKLSsgICAgbG9n LmluZm8oIlJlbW92ZSBuc0luZGV4SURMaXN0U2NhbkxpbWl0IGZyb20gcGFyZW50SWQgaW5kZXgi KQotKyAgICBwYXJlbnRpZF9pbmRleCA9IEluZGV4KHN0YW5kYWxvbmUsIFBBUkVOVElEX0ROKQot KyAgICBwYXJlbnRpZF9pbmRleC5yZW1vdmUoIm5zSW5kZXhJRExpc3RTY2FuTGltaXQiLCBTQ0FO TElNSVRfVkFMVUUpCi0rCi0rICAgIHJ1bl9oZWFsdGhjaGVja19hbmRfZmx1c2hfbG9nKHRvcG9s b2d5X3N0LCBzdGFuZGFsb25lLCBqc29uPUZhbHNlLCBzZWFyY2hlZF9jb2RlPVJFVF9DT0RFKQot KwotKyAgICAjIFZlcmlmeSB0aGUgcmVtZWRpYXRpb24gY29tbWFuZCBoYXMgcHJvcGVybHkgcXVv dGVkIHNjYW5saW1pdAotKyAgICBhcmdzID0gRmFrZUFyZ3MoKQotKyAgICBhcmdzLmluc3RhbmNl ID0gc3RhbmRhbG9uZS5zZXJ2ZXJpZAotKyAgICBhcmdzLnZlcmJvc2UgPSBzdGFuZGFsb25lLnZl cmJvc2UKLSsgICAgYXJncy5saXN0X2Vycm9ycyA9IEZhbHNlCi0rICAgIGFyZ3MubGlzdF9jaGVj a3MgPSBGYWxzZQotKyAgICBhcmdzLmV4Y2x1ZGVfY2hlY2sgPSBbXQotKyAgICBhcmdzLmNoZWNr ID0gWyJiYWNrZW5kcyJdCi0rICAgIGFyZ3MuZHJ5X3J1biA9IEZhbHNlCi0rICAgIGFyZ3MuanNv biA9IEZhbHNlCi0rICAgIGhlYWx0aF9jaGVja19ydW4oc3RhbmRhbG9uZSwgdG9wb2xvZ3lfc3Qu bG9nY2FwLmxvZywgYXJncykKLSsgICAgIyBDaGVjayB0aGF0IHRoZSBzY2FubGltaXQgaXMgcXVv dGVkIGluIHRoZSBvdXRwdXQKLSsgICAgYXNzZXJ0IHRvcG9sb2d5X3N0LmxvZ2NhcC5jb250YWlu cygnLS1hZGQtc2NhbmxpbWl0ICJsaW1pdD01MDAwIHR5cGU9ZXEgZmxhZ3M9QU5EIicpCi0rICAg IGxvZy5pbmZvKCJWZXJpZmllZCBzY2FubGltaXQgaXMgcHJvcGVybHkgcXVvdGVkIGluIHJlbWVk aWF0aW9uIGNvbW1hbmQiKQotKyAgICB0b3BvbG9neV9zdC5sb2djYXAuZmx1c2goKQotKwotKyAg ICBydW5faGVhbHRoY2hlY2tfYW5kX2ZsdXNoX2xvZyh0b3BvbG9neV9zdCwgc3RhbmRhbG9uZSwg anNvbj1UcnVlLCBzZWFyY2hlZF9jb2RlPVJFVF9DT0RFKQotKwotKyAgICBsb2cuaW5mbygiUmUt YWRkIHRoZSBuc0luZGV4SURMaXN0U2NhbkxpbWl0IikKLSsgICAgcGFyZW50aWRfaW5kZXggPSBJ bmRleChzdGFuZGFsb25lLCBQQVJFTlRJRF9ETikKLSsgICAgcGFyZW50aWRfaW5kZXguYWRkKCJu c0luZGV4SURMaXN0U2NhbkxpbWl0IiwgU0NBTkxJTUlUX1ZBTFVFKQotKwotKyAgICBydW5faGVh bHRoY2hlY2tfYW5kX2ZsdXNoX2xvZyh0b3BvbG9neV9zdCwgc3RhbmRhbG9uZSwganNvbj1GYWxz ZSwgc2VhcmNoZWRfY29kZT1DTURfT1VUUFVUKQotKyAgICBydW5faGVhbHRoY2hlY2tfYW5kX2Zs dXNoX2xvZyh0b3BvbG9neV9zdCwgc3RhbmRhbG9uZSwganNvbj1UcnVlLCBzZWFyY2hlZF9jb2Rl PUpTT05fT1VUUFVUKQotKwotKwotK2RlZiB0ZXN0X21pc3NpbmdfbWF0Y2hpbmdfcnVsZV9hbmRf c2NhbmxpbWl0KHRvcG9sb2d5X3N0LCBsb2dfYnVmZmVyaW5nX2VuYWJsZWQpOgotKyAgICAiIiJD aGVjayBpZiBoZWFsdGhjaGVjayBnZW5lcmF0ZXMgYSBzaW5nbGUgY29tYmluZWQgY29tbWFuZCB3 aGVuIGJvdGggbWF0Y2hpbmcgcnVsZSBhbmQgc2NhbmxpbWl0IGFyZSBtaXNzaW5nCi0rCi0rICAg IDppZDogYWY4MjE0YWQtNWU0Yy00MjJhLThmNzQtM2U5OTIyNzU1MWRmCi0rICAgIDpzZXR1cDog U3RhbmRhbG9uZSBpbnN0YW5jZQotKyAgICA6c3RlcHM6Ci0rICAgICAgICAxLiBDcmVhdGUgRFMg aW5zdGFuY2UKLSsgICAgICAgIDIuIFJlbW92ZSBib3RoIGludGVnZXJPcmRlcmluZ01hdGNoIGFu ZCBuc0luZGV4SURMaXN0U2NhbkxpbWl0IGZyb20gcGFyZW50SWQgaW5kZXgKLSsgICAgICAgIDMu IFVzZSBoZWFsdGhjaGVjayBhbmQgdmVyaWZ5IGEgc2luZ2xlIGNvbWJpbmVkIGNvbW1hbmQgaXMg Z2VuZXJhdGVkCi0rICAgICAgICA0LiBSZS1hZGQgdGhlIG1hdGNoaW5nIHJ1bGUgYW5kIHNjYW5s aW1pdAotKyAgICAgICAgNS4gVXNlIGhlYWx0aGNoZWNrIHdpdGhvdXQgLS1qc29uIG9wdGlvbgot KyAgICAgICAgNi4gVXNlIGhlYWx0aGNoZWNrIHdpdGggLS1qc29uIG9wdGlvbgotKyAgICA6ZXhw ZWN0ZWRyZXN1bHRzOgotKyAgICAgICAgMS4gU3VjY2VzcwotKyAgICAgICAgMi4gU3VjY2Vzcwot KyAgICAgICAgMy4gaGVhbHRoY2hlY2sgcmVwb3J0cyBEU0JMRTAwMDcgYW5kIGdlbmVyYXRlcyBh IHNpbmdsZSBjb21tYW5kIHdpdGggYm90aCAtLWFkZC1tciBhbmQgLS1hZGQtc2NhbmxpbWl0Ci0r ICAgICAgICA0LiBTdWNjZXNzCi0rICAgICAgICA1LiBoZWFsdGhjaGVjayByZXBvcnRzIG5vIGlz c3VlcyBmb3VuZAotKyAgICAgICAgNi4gaGVhbHRoY2hlY2sgcmVwb3J0cyBubyBpc3N1ZXMgZm91 bmQKLSsgICAgIiIiCi0rCi0rICAgIFJFVF9DT0RFID0gIkRTQkxFMDAwNyIKLSsgICAgUEFSRU5U SURfRE4gPSAiY249cGFyZW50aWQsY249aW5kZXgsY249dXNlcnJvb3QsY249bGRibSBkYXRhYmFz ZSxjbj1wbHVnaW5zLGNuPWNvbmZpZyIKLSsgICAgU0NBTkxJTUlUX1ZBTFVFID0gImxpbWl0PTUw MDAgdHlwZT1lcSBmbGFncz1BTkQiCi0rCi0rICAgIHN0YW5kYWxvbmUgPSB0b3BvbG9neV9zdC5z dGFuZGFsb25lCi0rCi0rICAgIGxvZy5pbmZvKCJSZW1vdmUgYm90aCBpbnRlZ2VyT3JkZXJpbmdN YXRjaCBhbmQgbnNJbmRleElETGlzdFNjYW5MaW1pdCBmcm9tIHBhcmVudElkIGluZGV4IikKLSsg ICAgcGFyZW50aWRfaW5kZXggPSBJbmRleChzdGFuZGFsb25lLCBQQVJFTlRJRF9ETikKLSsgICAg cGFyZW50aWRfaW5kZXgucmVtb3ZlKCJuc01hdGNoaW5nUnVsZSIsICJpbnRlZ2VyT3JkZXJpbmdN YXRjaCIpCi0rICAgIHBhcmVudGlkX2luZGV4LnJlbW92ZSgibnNJbmRleElETGlzdFNjYW5MaW1p dCIsIFNDQU5MSU1JVF9WQUxVRSkKLSsKLSsgICAgIyBSdW4gaGVhbHRoY2hlY2sgYW5kIHZlcmlm eSBjb21iaW5lZCBjb21tYW5kCi0rICAgIGFyZ3MgPSBGYWtlQXJncygpCi0rICAgIGFyZ3MuaW5z dGFuY2UgPSBzdGFuZGFsb25lLnNlcnZlcmlkCi0rICAgIGFyZ3MudmVyYm9zZSA9IHN0YW5kYWxv bmUudmVyYm9zZQotKyAgICBhcmdzLmxpc3RfZXJyb3JzID0gRmFsc2UKLSsgICAgYXJncy5saXN0 X2NoZWNrcyA9IEZhbHNlCi0rICAgIGFyZ3MuZXhjbHVkZV9jaGVjayA9IFtdCi0rICAgIGFyZ3Mu Y2hlY2sgPSBbImJhY2tlbmRzIl0KLSsgICAgYXJncy5kcnlfcnVuID0gRmFsc2UKLSsgICAgYXJn cy5qc29uID0gRmFsc2UKLSsgICAgaGVhbHRoX2NoZWNrX3J1bihzdGFuZGFsb25lLCB0b3BvbG9n eV9zdC5sb2djYXAubG9nLCBhcmdzKQotKwotKyAgICAjIFZlcmlmeSBEU0JMRTAwMDcgaXMgcmVw b3J0ZWQKLSsgICAgYXNzZXJ0IHRvcG9sb2d5X3N0LmxvZ2NhcC5jb250YWlucyhSRVRfQ09ERSkK LSsgICAgbG9nLmluZm8oImhlYWx0aGNoZWNrIHJldHVybmVkIGNvZGU6ICVzIiAlIFJFVF9DT0RF KQotKwotKyAgICAjIFZlcmlmeSBhIHNpbmdsZSBjb21iaW5lZCBjb21tYW5kIGlzIGdlbmVyYXRl ZCB3aXRoIGJvdGggLS1hZGQtbXIgYW5kIC0tYWRkLXNjYW5saW1pdAotKyAgICBhc3NlcnQgdG9w b2xvZ3lfc3QubG9nY2FwLmNvbnRhaW5zKCctLWFkZC1tciBpbnRlZ2VyT3JkZXJpbmdNYXRjaCAt LWFkZC1zY2FubGltaXQgImxpbWl0PTUwMDAgdHlwZT1lcSBmbGFncz1BTkQiJykKLSsgICAgbG9n LmluZm8oIlZlcmlmaWVkIGNvbWJpbmVkIGNvbW1hbmQgd2l0aCBib3RoIC0tYWRkLW1yIGFuZCAt LWFkZC1zY2FubGltaXQiKQotKwotKyAgICB0b3BvbG9neV9zdC5sb2djYXAuZmx1c2goKQotKwot KyAgICBsb2cuaW5mbygiUmUtYWRkIHRoZSBpbnRlZ2VyT3JkZXJpbmdNYXRjaCBtYXRjaGluZyBy dWxlIGFuZCBzY2FubGltaXQiKQotKyAgICBwYXJlbnRpZF9pbmRleCA9IEluZGV4KHN0YW5kYWxv bmUsIFBBUkVOVElEX0ROKQotKyAgICBwYXJlbnRpZF9pbmRleC5hZGQoIm5zTWF0Y2hpbmdSdWxl IiwgImludGVnZXJPcmRlcmluZ01hdGNoIikKLSsgICAgcGFyZW50aWRfaW5kZXguYWRkKCJuc0lu ZGV4SURMaXN0U2NhbkxpbWl0IiwgU0NBTkxJTUlUX1ZBTFVFKQotKwotKyAgICBydW5faGVhbHRo Y2hlY2tfYW5kX2ZsdXNoX2xvZyh0b3BvbG9neV9zdCwgc3RhbmRhbG9uZSwganNvbj1GYWxzZSwg c2VhcmNoZWRfY29kZT1DTURfT1VUUFVUKQotKyAgICBydW5faGVhbHRoY2hlY2tfYW5kX2ZsdXNo X2xvZyh0b3BvbG9neV9zdCwgc3RhbmRhbG9uZSwganNvbj1UcnVlLCBzZWFyY2hlZF9jb2RlPUpT T05fT1VUUFVUKQotKwotKwotIGRlZiB0ZXN0X211bHRpcGxlX21pc3NpbmdfaW5kZXhlcyh0b3Bv bG9neV9zdCwgbG9nX2J1ZmZlcmluZ19lbmFibGVkKToKLSAgICAgIiIiQ2hlY2sgaWYgaGVhbHRo Y2hlY2sgcmV0dXJucyBEU0JMRTAwMDcgY29kZSB3aGVuIG11bHRpcGxlIHN5c3RlbSBpbmRleGVz IGFyZSBtaXNzaW5nCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYjM4OS9saWIzODkvYmFja2VuZC5w eSBiL3NyYy9saWIzODkvbGliMzg5L2JhY2tlbmQucHkKLWluZGV4IGZiYTk1OTg3Yi4uZGI0NjRi NDNhIDEwMDY0NAotLS0tIGEvc3JjL2xpYjM4OS9saWIzODkvYmFja2VuZC5weQotKysrIGIvc3Jj L2xpYjM4OS9saWIzODkvYmFja2VuZC5weQotQEAgLTY3OCw3ICs2NzgsNyBAQCBjbGFzcyBCYWNr ZW5kKERTTGRhcE9iamVjdCk6Ci0gICAgICAgICAgICAgICAgICAgICBpZiBleHBlY3RlZF9jb25m aWcuZ2V0KCdtYXRjaGluZ19ydWxlJyk6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgY21kICs9 IGYiIC0tbWF0Y2hpbmctcnVsZSB7ZXhwZWN0ZWRfY29uZmlnWydtYXRjaGluZ19ydWxlJ119Igot ICAgICAgICAgICAgICAgICAgICAgaWYgZXhwZWN0ZWRfY29uZmlnLmdldCgnc2NhbmxpbWl0Jyk6 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgY21kICs9IGYiIC0tYWRkLXNjYW5saW1pdCB7ZXhw ZWN0ZWRfY29uZmlnWydzY2FubGltaXQnXX0iCi0rICAgICAgICAgICAgICAgICAgICAgICAgY21k ICs9IGYiIC0tYWRkLXNjYW5saW1pdCBcIntleHBlY3RlZF9jb25maWdbJ3NjYW5saW1pdCddfVwi IgotICAgICAgICAgICAgICAgICAgICAgcmVtZWRpYXRpb25fY29tbWFuZHMuYXBwZW5kKGNtZCkK LSAgICAgICAgICAgICAgICAgICAgIHJlaW5kZXhfYXR0cnMuYWRkKGF0dHJfbmFtZSkgICMgTmV3 IGluZGV4IG5lZWRzIHJlaW5kZXhpbmcKLSAgICAgICAgICAgICAgICAgZWxzZToKLUBAIC03MDAs MjggKzcwMCwzMSBAQCBjbGFzcyBCYWNrZW5kKERTTGRhcE9iamVjdCk6Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgcmVtZWRpYXRpb25fY29tbWFuZHMuYXBwZW5kKGNtZCkKLSAgICAgICAgICAg ICAgICAgICAgICAgICByZWluZGV4X2F0dHJzLmFkZChhdHRyX25hbWUpCi0gCi0tICAgICAgICAg ICAgICAgICAgICAjIENoZWNrIG1hdGNoaW5nIHJ1bGVzCi0rICAgICAgICAgICAgICAgICAgICAj IENoZWNrIG1hdGNoaW5nIHJ1bGVzIGFuZCBzY2FubGltaXQgdG9nZXRoZXIgdG8gZ2VuZXJhdGUg YSBzaW5nbGUgY29tYmluZWQgY29tbWFuZAotICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRf bXIgPSBleHBlY3RlZF9jb25maWcuZ2V0KCdtYXRjaGluZ19ydWxlJykKLSsgICAgICAgICAgICAg ICAgICAgIGV4cGVjdGVkX3NjYW5saW1pdCA9IGV4cGVjdGVkX2NvbmZpZy5nZXQoJ3NjYW5saW1p dCcpCi0rCi0rICAgICAgICAgICAgICAgICAgICBtaXNzaW5nX21yID0gRmFsc2UKLSAgICAgICAg ICAgICAgICAgICAgIGlmIGV4cGVjdGVkX21yOgotICAgICAgICAgICAgICAgICAgICAgICAgIGFj dHVhbF9tcnNfbG93ZXIgPSBbbXIubG93ZXIoKSBmb3IgbXIgaW4gYWN0dWFsX21yc10KLSAgICAg ICAgICAgICAgICAgICAgICAgICBpZiBleHBlY3RlZF9tci5sb3dlcigpIG5vdCBpbiBhY3R1YWxf bXJzX2xvd2VyOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNjcmVwYW5jaWVzLmFw cGVuZChmIkluZGV4IHthdHRyX25hbWV9IG1pc3NpbmcgbWF0Y2hpbmcgcnVsZToge2V4cGVjdGVk X21yfSIpCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgQWRkIHRoZSBtaXNzaW5nIG1h dGNoaW5nIHJ1bGUKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY21kID0gZiJkc2NvbmYg WU9VUl9JTlNUQU5DRSBiYWNrZW5kIGluZGV4IHNldCB7YmVuYW1lfSAtLWF0dHIge2F0dHJfbmFt ZX0gLS1hZGQtbXIge2V4cGVjdGVkX21yfSIKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg cmVtZWRpYXRpb25fY29tbWFuZHMuYXBwZW5kKGNtZCkKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmVpbmRleF9hdHRycy5hZGQoYXR0cl9uYW1lKQotLQotLSAgICAgICAgICAgICAgICAg ICAgIyBDaGVjayBmaW5lIGdyYWluIGRlZmluaXRpb25zIGZvciBwYXJlbnRpZCBPTkxZCi0tICAg ICAgICAgICAgICAgICAgICBleHBlY3RlZF9zY2FubGltaXQgPSBleHBlY3RlZF9jb25maWcuZ2V0 KCdzY2FubGltaXQnKQotLSAgICAgICAgICAgICAgICAgICAgaWYgKGF0dHJfbmFtZS5sb3dlcigp ID09ICJwYXJlbnRpZCIpIGFuZCBleHBlY3RlZF9zY2FubGltaXQgYW5kIChsZW4oYWN0dWFsX3Nj YW5saW1pdCkgPT0gMCk6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2NyZXBhbmNp ZXMuYXBwZW5kKGYiSW5kZXgge2F0dHJfbmFtZX0gbWlzc2luZyBmaW5lIGdyYWluIGRlZmluaXRp b24gb2YgSURzIGxpbWl0OiB7ZXhwZWN0ZWRfbXJ9IikKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgIyBBZGQgdGhlIG1pc3Npbmcgc2NhbmxpbWl0Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlmIGV4cGVjdGVkX21yOgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y21kID0gZiJkc2NvbmYgWU9VUl9JTlNUQU5DRSBiYWNrZW5kIGluZGV4IHNldCB7YmVuYW1lfSAt LWF0dHIge2F0dHJfbmFtZX0gLS1hZGQtbXIge2V4cGVjdGVkX21yfSAtLWFkZC1zY2FubGltaXQg e2V4cGVjdGVkX3NjYW5saW1pdH0iCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbWQgPSBmImRzY29uZiBZT1VSX0lO U1RBTkNFIGJhY2tlbmQgaW5kZXggc2V0IHtiZW5hbWV9IC0tYXR0ciB7YXR0cl9uYW1lfSAtLWFk ZC1zY2FubGltaXQge2V4cGVjdGVkX3NjYW5saW1pdH0iCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJlbWVkaWF0aW9uX2NvbW1hbmRzLmFwcGVuZChjbWQpCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJlaW5kZXhfYXR0cnMuYWRkKGF0dHJfbmFtZSkKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbWlzc2luZ19tciA9IFRydWUKLSsKLSsgICAgICAgICAgICAgICAgICAg IG1pc3Npbmdfc2NhbmxpbWl0ID0gRmFsc2UKLSsgICAgICAgICAgICAgICAgICAgIGlmIGV4cGVj dGVkX3NjYW5saW1pdCBhbmQgKGxlbihhY3R1YWxfc2NhbmxpbWl0KSA9PSAwKToKLSsgICAgICAg ICAgICAgICAgICAgICAgICBkaXNjcmVwYW5jaWVzLmFwcGVuZChmIkluZGV4IHthdHRyX25hbWV9 IG1pc3NpbmcgZmluZSBncmFpbiBkZWZpbml0aW9uIG9mIElEcyBsaW1pdDoge2V4cGVjdGVkX3Nj YW5saW1pdH0iKQotKyAgICAgICAgICAgICAgICAgICAgICAgIG1pc3Npbmdfc2NhbmxpbWl0ID0g VHJ1ZQotKwotKyAgICAgICAgICAgICAgICAgICAgIyBHZW5lcmF0ZSBhIHNpbmdsZSBjb21iaW5l ZCBjb21tYW5kIGZvciBhbGwgbWlzc2luZyBpdGVtcwotKyAgICAgICAgICAgICAgICAgICAgaWYg bWlzc2luZ19tciBvciBtaXNzaW5nX3NjYW5saW1pdDoKLSsgICAgICAgICAgICAgICAgICAgICAg ICBjbWQgPSBmImRzY29uZiBZT1VSX0lOU1RBTkNFIGJhY2tlbmQgaW5kZXggc2V0IHtiZW5hbWV9 IC0tYXR0ciB7YXR0cl9uYW1lfSIKLSsgICAgICAgICAgICAgICAgICAgICAgICBpZiBtaXNzaW5n X21yOgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbWQgKz0gZiIgLS1hZGQtbXIge2V4 cGVjdGVkX21yfSIKLSsgICAgICAgICAgICAgICAgICAgICAgICBpZiBtaXNzaW5nX3NjYW5saW1p dDoKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgY21kICs9IGYiIC0tYWRkLXNjYW5saW1p dCBcIntleHBlY3RlZF9zY2FubGltaXR9XCIiCi0rICAgICAgICAgICAgICAgICAgICAgICAgcmVt ZWRpYXRpb25fY29tbWFuZHMuYXBwZW5kKGNtZCkKLSsgICAgICAgICAgICAgICAgICAgICAgICBy ZWluZGV4X2F0dHJzLmFkZChhdHRyX25hbWUpCi0gCi0gICAgICAgICAgICAgZXhjZXB0IEV4Y2Vw dGlvbiBhcyBlOgotICAgICAgICAgICAgICAgICBzZWxmLl9sb2cuZGVidWcoZiJfbGludF9zeXN0 ZW1faW5kZXhlcyAtIEVycm9yIGNoZWNraW5nIGluZGV4IHthdHRyX25hbWV9OiB7ZX0iKQotLS0g Ci0yLjUyLjAKLQoKZGlmZiAtLWdpdCBhLzAwMTItSXNzdWUtNzE3MC1TdXBwb3J0LW9mLVBRQy1r ZXlzLTcxODgucGF0Y2ggYi8wMDEyLUlzc3VlLTcxNzAtU3VwcG9ydC1vZi1QUUMta2V5cy03MTg4 LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYTljZTI5Li4wMDAwMDAwCi0t LSBhLzAwMTItSXNzdWUtNzE3MC1TdXBwb3J0LW9mLVBRQy1rZXlzLTcxODgucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSw1MDQgKzAsMCBAQAotRnJvbSA2Y2UzM2IxYmVkZDJjZDEzZDdlNjU0NDY5 MjM1NDcxNWY2ZTYxM2I4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogcHJvZ2llcjM4 OSA8cHJvZ2llckByZWRoYXQuY29tPgotRGF0ZTogVHVlLCAyMCBKYW4gMjAyNiAxOTo0MTowNSAr MDEwMAotU3ViamVjdDogW1BBVENIXSBJc3N1ZSA3MTcwIC0gU3VwcG9ydCBvZiBQUUMga2V5cyAo IzcxODgpCi0KLVN1cHBvcnQgb2YgUG9zdCBRdWFudHVtIENyeXB0b2dyYXBoeSBLZXlzIGluIGNl cnRpZmljYXRlczoKLUFkZGVkIHN1cHBvcnQgb2YgYSBuZXcga2V5IHR5cGU6IE1MX0RTQQotRW5h YmxlIHRoZSBmb2xsb3dpbmcgcG9saWNpZXMgKHRoYXQgYXJlIG5vdCBlbmFibGVkIGJ5IGRlZmF1 dCk6IE1MLURTQS00NCwgTUwtRFNBLTY1LSBNTC1EU0EtODcKLVJlcGxhY2VkIGRlcHJlY2F0ZWQg ZnVuY3Rpb24gU1NMX0NvbmZpZ1NlY3VyZVNlcnZlciBieSBTU0xfQ29uZmlnU2VydmVyQ2VydAot QWRkZWQgdGVzdCBjYXNlIGZvciBNTC1EU0EgY2VydGlmaWNhdGUuIFRoYXQgdGVzdCBjYXNlIHJl bHkgb2Ygb3BlbnNzbCBjb21tYW5kIGJlY2F1c2UgcHl0aG9uIGNyeXB0b2dyYXBoeSBtb2R1bGUg ZG9lcyBub3QgeWV0IHN1cHBvcnQgTUwtRFNBIGtleXMKLQotSXNzdWU6ICM3MTcwCi0KLVJldmll d2VkIGJ5OiBAdGJvcmRheiwgQGRyb2lkZWNrIGFuZCBAdmFzaGlyb3YgKFRoYW5rcyEpCi0tLS0K LSBkaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvdGxzL21sZHNhX3Rlc3QucHkgfCAzMjIgKysrKysr KysrKysrKysrKysrKysrCi0gbGRhcC9zZXJ2ZXJzL3NsYXBkL3NzbC5jICAgICAgICAgICAgICAg ICAgIHwgIDk1ICsrKysrLQotIDIgZmlsZXMgY2hhbmdlZCwgNDA3IGluc2VydGlvbnMoKyksIDEw IGRlbGV0aW9ucygtKQotIGNyZWF0ZSBtb2RlIDEwMDY0NCBkaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0 ZXMvdGxzL21sZHNhX3Rlc3QucHkKLQotZGlmZiAtLWdpdCBhL2RpcnNydnRlc3RzL3Rlc3RzL3N1 aXRlcy90bHMvbWxkc2FfdGVzdC5weSBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy90bHMvbWxk c2FfdGVzdC5weQotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAwMC4uMmM4MTUw ODhiCi0tLS0gL2Rldi9udWxsCi0rKysgYi9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvdGxzL21s ZHNhX3Rlc3QucHkKLUBAIC0wLDAgKzEsMzIyIEBACi0rIyAtLS0gQkVHSU4gQ09QWVJJR0hUIEJM T0NLIC0tLQotKyMgQ29weXJpZ2h0IChDKSAyMDI2IFJlZCBIYXQsIEluYy4KLSsjIEFsbCByaWdo dHMgcmVzZXJ2ZWQuCi0rIwotKyMgTGljZW5zZTogR1BMICh2ZXJzaW9uIDMgb3IgYW55IGxhdGVy IHZlcnNpb24pLgotKyMgU2VlIExJQ0VOU0UgZm9yIGRldGFpbHMuCi0rIyAtLS0gRU5EIENPUFlS SUdIVCBCTE9DSyAtLS0KLSsjCi0raW1wb3J0IGxvZ2dpbmcKLStpbXBvcnQgcHl0ZXN0Ci0raW1w b3J0IG9zCi0raW1wb3J0IHN5cwotK2ltcG9ydCBpdGVydG9vbHMKLStpbXBvcnQgcnBtCi0raW1w b3J0IHNvY2tldAotK2ltcG9ydCBzdWJwcm9jZXNzCi0rZnJvbSBsaWIzODkudXRpbHMgaW1wb3J0 IGRzX2lzX29sZGVyCi0rZnJvbSBsaWIzODkuX2NvbnN0YW50cyBpbXBvcnQgRE5fRE0sIFBXX0RN LCBERUZBVUxUX1NVRkZJWAotK2Zyb20gbGliMzg5LmNvbmZpZyBpbXBvcnQgRW5jcnlwdGlvbiwg Q2VydG1hcExlZ2FjeQotK2Zyb20gbGliMzg5LmlkbS51c2VyIGltcG9ydCBVc2VyQWNjb3VudAot K2Zyb20gbGliMzg5LnRvcG9sb2dpZXMgaW1wb3J0IHRvcG9sb2d5X3N0IGFzIHRvcG8KLStmcm9t IHRlbXBmaWxlIGltcG9ydCBUZW1wb3JhcnlEaXJlY3RvcnkKLSsKLStweXRlc3RtYXJrID0gcHl0 ZXN0Lm1hcmsudGllcjEKLSsKLStERUJVR0dJTkcgPSBvcy5nZXRlbnYoIkRFQlVHR0lORyIsIGRl ZmF1bHQ9RmFsc2UpCi0raWYgREVCVUdHSU5HOgotKyAgICBsb2dnaW5nLmdldExvZ2dlcihfX25h bWVfXykuc2V0TGV2ZWwobG9nZ2luZy5ERUJVRykKLStlbHNlOgotKyAgICBsb2dnaW5nLmdldExv Z2dlcihfX25hbWVfXykuc2V0TGV2ZWwobG9nZ2luZy5JTkZPKQotK2xvZyA9IGxvZ2dpbmcuZ2V0 TG9nZ2VyKF9fbmFtZV9fKQotKwotKwotK2RlZiBycG1faXNfb2xkZXIocGtnLCB2ZXJzaW9uKToK LSsgICAgdHMgPSBycG0uVHJhbnNhY3Rpb25TZXQoKQotKyAgICBtaSA9IHRzLmRiTWF0Y2goJ25h bWUnLCBwa2cpCi0rICAgIGZvciBoIGluIG1pOgotKyAgICAgICAgcHJpbnQoZiJ7cGtnfSB7aFsn dmVyc2lvbiddfSB7dmVyc2lvbn0iKQotKyAgICAgICAgZm9yIG4xLG4yIGluIGl0ZXJ0b29scy56 aXBfbG9uZ2VzdChoWyd2ZXJzaW9uJ10uc3BsaXQoJy4nKSwgdmVyc2lvbi5zcGxpdCgnLicpLCBm aWxsdmFsdWU9IiIpOgotKyAgICAgICAgICAgIHRyeToKLSsgICAgICAgICAgICAgICAgaWYgaW50 KG4xKSA8IGludChuMik6Ci0rICAgICAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQotKyAgICAg ICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgotKyAgICAgICAgICAgICAgICBpZiBuMSA8IG4yOgot KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKLSsgICAgcmV0dXJuIEZhbHNlCi0rCi0r Ci0rc2NyaXB0X2NvbnRlbnQ9IiIiCi0rIyEvYmluL2Jhc2gKLStzZXQgLWUgICMgRXhpdCBpZiBh IGNvbW1hbmQgZmFpbHMKLStzZXQgLXggICMgTG9nIHRoZSBjb21tYW5kcwotKwotK2NkIHtkaXJ9 Ci0raW5zdD17aW5zdG5hbWV9Ci0rdXJsPXt1cmx9Ci0rcm9vdGRuPSJ7cm9vdGRufSIKLStyb290 cHc9Intyb290cHd9IgotKwotKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0rIyMj IyMjIEdFTkVSQVRFIENBIENFUlQgIyMjIyMjIyMKLSsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIwotKwotK2VjaG8gIgotK1sgcmVxIF0KLStkaXN0aW5ndWlzaGVkX25hbWUgPSByZXFf ZGlzdGluZ3Vpc2hlZF9uYW1lCi0rcG9saWN5ICAgICAgICAgICAgID0gcG9saWN5X21hdGNoCi0r eDUwOV9leHRlbnNpb25zICAgICA9IHYzX2NhCi0rCi0rIyBGb3IgdGhlIENBIHBvbGljeQotK1sg cG9saWN5X21hdGNoIF0KLStjb3VudHJ5TmFtZSAgICAgICAgICAgICA9IG9wdGlvbmFsCi0rc3Rh dGVPclByb3ZpbmNlTmFtZSAgICAgPSBvcHRpb25hbAotK29yZ2FuaXphdGlvbk5hbWUgICAgICAg ID0gb3B0aW9uYWwKLStvcmdhbml6YXRpb25hbFVuaXROYW1lICA9IG9wdGlvbmFsCi0rY29tbW9u TmFtZSAgICAgICAgICAgICAgPSBzdXBwbGllZAotK2VtYWlsQWRkcmVzcyAgICAgICAgICAgID0g b3B0aW9uYWwKLSsKLStbIHJlcV9kaXN0aW5ndWlzaGVkX25hbWUgXQotK2NvdW50cnlOYW1lCQkJ PSBDb3VudHJ5IE5hbWUgKDIgbGV0dGVyIGNvZGUpCi0rY291bnRyeU5hbWVfZGVmYXVsdAkJPSBG UgotK2NvdW50cnlOYW1lX21pbgkJCT0gMgotK2NvdW50cnlOYW1lX21heAkJCT0gMgotKwotK3N0 YXRlT3JQcm92aW5jZU5hbWUJCT0gU3RhdGUgb3IgUHJvdmluY2UgTmFtZSAoZnVsbCBuYW1lKQot K3N0YXRlT3JQcm92aW5jZU5hbWVfZGVmYXVsdAk9IHRlc3QKLSsKLStsb2NhbGl0eU5hbWUJCQk9 IExvY2FsaXR5IE5hbWUgKGVnLCBjaXR5KQotKwotKzAub3JnYW5pemF0aW9uTmFtZQkJPSBPcmdh bml6YXRpb24gTmFtZSAoZWcsIGNvbXBhbnkpCi0rMC5vcmdhbml6YXRpb25OYW1lX2RlZmF1bHQJ PSB0ZXN0LU1MLURTQS1DQQotKwotK29yZ2FuaXphdGlvbmFsVW5pdE5hbWUJCT0gT3JnYW5pemF0 aW9uYWwgVW5pdCBOYW1lIChlZywgc2VjdGlvbikKLSsjb3JnYW5pemF0aW9uYWxVbml0TmFtZV9k ZWZhdWx0CT0KLSsKLStjb21tb25OYW1lCQkJPSBDb21tb24gTmFtZSAoZS5nLiBzZXJ2ZXIgRlFE TiBvciBZT1VSIG5hbWUpCi0rY29tbW9uTmFtZV9tYXgJCQk9IDY0Ci0rCi0rCi0rWyB2M19jYSBd Ci0rc3ViamVjdEtleUlkZW50aWZpZXIgPSBoYXNoCi0rYXV0aG9yaXR5S2V5SWRlbnRpZmllciA9 IGtleWlkOmFsd2F5cyxpc3N1ZXIKLStiYXNpY0NvbnN0cmFpbnRzID0gY3JpdGljYWwsQ0E6dHJ1 ZQotKyNuc0NvbW1lbnQgPSAiT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUiCi0ra2V5VXNh Z2U9Y3JpdGljYWwsIGtleUNlcnRTaWduCi0rIiA+Y2EuY29uZgotKwotKwotK29wZW5zc2wgZ2Vu cGtleSAtYWxnb3JpdGhtIE1MLURTQS04NyAtb3V0IGNhLmtleQotK29wZW5zc2wgcmVxIC14NTA5 IC1uZXcgLXNoYTI1NiAta2V5IGNhLmtleSAtbm9kZXMgLWRheXMgMzY1MCAtY29uZmlnIGNhLmNv bmYgLXN1YmogIi9DTj1gaG9zdG5hbWVgL089dGVzdC1NTC1EU0EtQ0EvQz1GUiIgIC1vdXQgY2Eu cGVtIC1rZXlvdXQgY2Eua2V5Ci0rb3BlbnNzbCB4NTA5IC1vdXRmb3JtIGRlciAtaW4gY2EucGVt IC1vdXQgY2EuY3J0Ci0rCi0rb3BlbnNzbCB4NTA5IC10ZXh0IC1pbiBjYS5wZW0KLSsKLSsjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSsjIyMjIyMgR0VORVJBVEUgU0VSVkVS IENFUlQgIyMjIyMjIyMKLSsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSsK LStlY2hvICIKLStbIHJlcSBdCi0rZGlzdGluZ3Vpc2hlZF9uYW1lID0gcmVxX2Rpc3Rpbmd1aXNo ZWRfbmFtZQotK3BvbGljeSAgICAgICAgICAgICA9IHBvbGljeV9tYXRjaAotK3g1MDlfZXh0ZW5z aW9ucyAgICAgPSB2M19jZXJ0Ci0rCi0rIyBGb3IgdGhlIGNlcnQgcG9saWN5Ci0rWyBwb2xpY3lf bWF0Y2ggXQotK2NvdW50cnlOYW1lICAgICAgICAgICAgID0gb3B0aW9uYWwKLStzdGF0ZU9yUHJv dmluY2VOYW1lICAgICA9IG9wdGlvbmFsCi0rb3JnYW5pemF0aW9uTmFtZSAgICAgICAgPSBvcHRp b25hbAotK29yZ2FuaXphdGlvbmFsVW5pdE5hbWUgID0gb3B0aW9uYWwKLStjb21tb25OYW1lICAg ICAgICAgICAgICA9IHN1cHBsaWVkCi0rZW1haWxBZGRyZXNzICAgICAgICAgICAgPSBvcHRpb25h bAotKwotK1sgcmVxX2Rpc3Rpbmd1aXNoZWRfbmFtZSBdCi0rY291bnRyeU5hbWUJCQk9IENvdW50 cnkgTmFtZSAoMiBsZXR0ZXIgY29kZSkKLStjb3VudHJ5TmFtZV9kZWZhdWx0CQk9IEZSCi0rY291 bnRyeU5hbWVfbWluCQkJPSAyCi0rY291bnRyeU5hbWVfbWF4CQkJPSAyCi0rCi0rc3RhdGVPclBy b3ZpbmNlTmFtZQkJPSBTdGF0ZSBvciBQcm92aW5jZSBOYW1lIChmdWxsIG5hbWUpCi0rCi0rbG9j YWxpdHlOYW1lCQkJPSBMb2NhbGl0eSBOYW1lIChlZywgY2l0eSkKLSsKLSswLm9yZ2FuaXphdGlv bk5hbWUJCT0gT3JnYW5pemF0aW9uIE5hbWUgKGVnLCBjb21wYW55KQotKzAub3JnYW5pemF0aW9u TmFtZV9kZWZhdWx0CT0gdGVzdC1NTC1EU0EKLSsKLStvcmdhbml6YXRpb25hbFVuaXROYW1lCQk9 IE9yZ2FuaXphdGlvbmFsIFVuaXQgTmFtZSAoZWcsIHNlY3Rpb24pCi0rI29yZ2FuaXphdGlvbmFs VW5pdE5hbWVfZGVmYXVsdAk9Ci0rCi0rY29tbW9uTmFtZQkJCT0gQ29tbW9uIE5hbWUgKGUuZy4g c2VydmVyIEZRRE4gb3IgWU9VUiBuYW1lKQotK2NvbW1vbk5hbWVfbWF4CQkJPSA2NAotKwotKwot K1sgdjNfY2VydCBdCi0rYmFzaWNDb25zdHJhaW50cyA9IGNyaXRpY2FsLENBOmZhbHNlCi0rc3Vi amVjdEFsdE5hbWU9RE5TOmBob3N0bmFtZWAKLStrZXlVc2FnZT1kaWdpdGFsU2lnbmF0dXJlLCBu b25SZXB1ZGlhdGlvbiwga2V5RW5jaXBoZXJtZW50LCBkYXRhRW5jaXBoZXJtZW50Ci0rI25zQ29t bWVudCA9ICJPcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZSIKLStleHRlbmRlZEtleVVzYWdl PWNsaWVudEF1dGgsIHNlcnZlckF1dGgKLStuc0NlcnRUeXBlPWNsaWVudCwgc2VydmVyCi0rIiA+ Y2VydC5jb25mCi0rCi0rb3BlbnNzbCBnZW5wa2V5IC1hbGdvcml0aG0gTUwtRFNBLTY1IC1vdXQg Y2VydC5rZXkKLStvcGVuc3NsIHJlcSAtbmV3IC1zaGEyNTYgLWtleSBjZXJ0LmtleSAtbm9kZXMg IC1jb25maWcgY2VydC5jb25mIC1zdWJqICIvQ049YGhvc3RuYW1lYC9PPXRlc3QtTUwtRFNBL0M9 RlIiIC1vdXQgY2VydC5jc3IKLStvcGVuc3NsIHg1MDkgLXJlcSAtc2hhMjU2IC1kYXlzIDM2NTAg LWV4dGVuc2lvbnMgdjNfY2VydCAtZXh0ZmlsZSBjZXJ0LmNvbmYgLWluIGNlcnQuY3NyIC1DQSBj YS5wZW0gLUNBa2V5IGNhLmtleSAtQ0FjcmVhdGVzZXJpYWwgLW91dCBjZXJ0LnBlbQotK29wZW5z c2wgcGtjczEyIC1leHBvcnQgLWlua2V5IGNlcnQua2V5IC1pbiBjZXJ0LnBlbSAtbmFtZSBtbGRz YWNlcnQgLW91dCBjZXJ0LnAxMiAtcGFzc291dCBwYXNzOnNlY3JldDEyCi0rCi0rb3BlbnNzbCB4 NTA5IC10ZXh0IC1pbiBjZXJ0LnBlbQotKwotKwotKwotKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIwotKyMjIyMjIyBHRU5FUkFURSBDTElFTlQgQ0VSVCAjIyMjIyMjIwotKyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotKwotK2VjaG8gIgotK1sgcmVxIF0K LStkaXN0aW5ndWlzaGVkX25hbWUgPSByZXFfZGlzdGluZ3Vpc2hlZF9uYW1lCi0rcG9saWN5ICAg ICAgICAgICAgID0gcG9saWN5X21hdGNoCi0reDUwOV9leHRlbnNpb25zICAgICA9IHYzX2NlcnQK LSsKLSsjIEZvciB0aGUgY2VydCBwb2xpY3kKLStbIHBvbGljeV9tYXRjaCBdCi0rY291bnRyeU5h bWUgICAgICAgICAgICAgPSBvcHRpb25hbAotK3N0YXRlT3JQcm92aW5jZU5hbWUgICAgID0gb3B0 aW9uYWwKLStvcmdhbml6YXRpb25OYW1lICAgICAgICA9IG9wdGlvbmFsCi0rb3JnYW5pemF0aW9u YWxVbml0TmFtZSAgPSBvcHRpb25hbAotK2NvbW1vbk5hbWUgICAgICAgICAgICAgID0gc3VwcGxp ZWQKLStlbWFpbEFkZHJlc3MgICAgICAgICAgICA9IG9wdGlvbmFsCi0rCi0rWyByZXFfZGlzdGlu Z3Vpc2hlZF9uYW1lIF0KLStjb3VudHJ5TmFtZQkJCT0gQ291bnRyeSBOYW1lICgyIGxldHRlciBj b2RlKQotK2NvdW50cnlOYW1lX2RlZmF1bHQJCT0gRlIKLStjb3VudHJ5TmFtZV9taW4JCQk9IDIK LStjb3VudHJ5TmFtZV9tYXgJCQk9IDIKLSsKLStzdGF0ZU9yUHJvdmluY2VOYW1lCQk9IFN0YXRl IG9yIFByb3ZpbmNlIE5hbWUgKGZ1bGwgbmFtZSkKLSsKLStsb2NhbGl0eU5hbWUJCQk9IExvY2Fs aXR5IE5hbWUgKGVnLCBjaXR5KQotKwotKzAub3JnYW5pemF0aW9uTmFtZQkJPSBPcmdhbml6YXRp b24gTmFtZSAoZWcsIGNvbXBhbnkpCi0rMC5vcmdhbml6YXRpb25OYW1lX2RlZmF1bHQJPSB0ZXN0 LU1MLURTQQotKwotK29yZ2FuaXphdGlvbmFsVW5pdE5hbWUJCT0gT3JnYW5pemF0aW9uYWwgVW5p dCBOYW1lIChlZywgc2VjdGlvbikKLSsjb3JnYW5pemF0aW9uYWxVbml0TmFtZV9kZWZhdWx0CT0K LSsKLStjb21tb25OYW1lCQkJPSBDb21tb24gTmFtZSAoZS5nLiBzZXJ2ZXIgRlFETiBvciBZT1VS IG5hbWUpCi0rY29tbW9uTmFtZV9tYXgJCQk9IDY0Ci0rCi0rCi0rWyB2M19jZXJ0IF0KLStiYXNp Y0NvbnN0cmFpbnRzID0gY3JpdGljYWwsQ0E6ZmFsc2UKLStzdWJqZWN0QWx0TmFtZT1ETlM6YGhv c3RuYW1lYAotK2tleVVzYWdlPWRpZ2l0YWxTaWduYXR1cmUsIG5vblJlcHVkaWF0aW9uLCBrZXlF bmNpcGhlcm1lbnQsIGRhdGFFbmNpcGhlcm1lbnQKLSsjbnNDb21tZW50ID0gIk9wZW5TU0wgR2Vu ZXJhdGVkIENlcnRpZmljYXRlIgotK2V4dGVuZGVkS2V5VXNhZ2U9Y2xpZW50QXV0aAotK25zQ2Vy dFR5cGU9Y2xpZW50LCBzZXJ2ZXIKLSsiID5jbGllbnQuY29uZgotKwotK29wZW5zc2wgZ2VucGtl eSAtYWxnb3JpdGhtIE1MLURTQS02NSAtb3V0IGNsaWVudC5rZXkKLStvcGVuc3NsIHJlcSAtbmV3 IC1zaGEyNTYgLWtleSBjbGllbnQua2V5IC1ub2RlcyAgLWNvbmZpZyBjbGllbnQuY29uZiAtc3Vi aiAiL0NOPWBob3N0bmFtZWAvTz1jbGllbnQtdGVzdC1NTC1EU0EvQz1GUiIgLW91dCBjbGllbnQu Y3NyCi0rb3BlbnNzbCB4NTA5IC1yZXEgLXNoYTI1NiAtZGF5cyAzNjUwIC1leHRlbnNpb25zIHYz X2NlcnQgLWV4dGZpbGUgY2xpZW50LmNvbmYgLWluIGNsaWVudC5jc3IgLUNBIGNhLnBlbSAtQ0Fr ZXkgY2Eua2V5IC1DQWNyZWF0ZXNlcmlhbCAtb3V0IGNsaWVudC5wZW0KLStvcGVuc3NsIHBrY3Mx MiAtZXhwb3J0IC1pbmtleSBjbGllbnQua2V5IC1pbiBjbGllbnQucGVtIC1uYW1lIG1sZHNhY2Vy dDIgLW91dCBjbGllbnQucDEyIC1wYXNzb3V0IHBhc3M6c2VjcmV0MTIKLSsKLStvcGVuc3NsIHg1 MDkgLXRleHQgLWluIGNsaWVudC5wZW0KLSsKLSsKLSsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIwotKyMjIyMjIyBJTlNUQUxMIENFUlRTICMjIyMjIyMjCi0rIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKLSsKLStjZXJ0ZGJkaXI9JFBSRUZJWC9ldGMvZGlyc3J2L3NsYXBkLSRpbnN0 Ci0rcm0gLWYgJGNlcnRkYmRpci9jZXJ0OS5kYiAkY2VydGRiZGlyL2tleTQuZGIKLStjZXJ0dXRp bCAtTiAtZCAkY2VydGRiZGlyIC1mICRjZXJ0ZGJkaXIvcHdkZmlsZS50eHQKLSsKLStjZXJ0dXRp bCAtQSAtbiBTZWxmLVNpZ25lZC1DQSAtdCBDVCwsIC1mICRjZXJ0ZGJkaXIvcHdkZmlsZS50eHQg LWQgJGNlcnRkYmRpciAtYSAtaSBjYS5wZW0KLStjZXJ0dXRpbCAtQSAtbiBDbGllbnQtQ2VydCAt dCB1LCwgLWYgJGNlcnRkYmRpci9wd2RmaWxlLnR4dCAtZCAkY2VydGRiZGlyIC1hIC1pIGNsaWVu dC5wZW0KLSsKLStkc2N0bCAkaW5zdCB0bHMgaW1wb3J0LXNlcnZlci1rZXktY2VydCBjZXJ0LnBl bSBjZXJ0LmtleQotKwotK2RzY3RsICRpbnN0IHJlc3RhcnQKLSsKLSsKLSsjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCi0rIyMjIyMjIFRFU1QgQ0VSVCAjIyMjIyMjIwotKyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKLStleHBvcnQgTERBUFRMU19DQUNFUlQ9JFBXRC9jYS5wZW0KLStleHBvcnQg TERBUFRMU19DRVJUPSRQV0QvY2xpZW50LnBlbQotK2V4cG9ydCBMREFQVExTX0tFWT0kUFdEL2Ns aWVudC5rZXkKLSsKLStsZGFwc2VhcmNoIC14IC1IICR1cmwgLUQgIiRyb290ZG4iIC13ICIkcm9v dHB3IiAtYiAiIiAtcyBiYXNlCi0rbGRhcHNlYXJjaCAtWSBleHRlcm5hbCAtSCAkdXJsIC1iICIi IC1zIGJhc2UKLSsiIiIKLSsKLStAcHl0ZXN0Lm1hcmsuc2tpcGlmKHJwbV9pc19vbGRlcigib3Bl bnNzbCIsICIzLjUiKSwgcmVhc29uPSJPcGVuU1NMIHRvbyBvbGQgdG8gc3VwcG9ydCBQUUMiKQot K0BweXRlc3QubWFyay5za2lwaWYocnBtX2lzX29sZGVyKCJuc3MiLCAiMy4xMTkuMSIpLCByZWFz b249Ik5TUyB0b28gb2xkIHRvIHN1cHBvcnQgUFFDIikKLStkZWYgdGVzdF9tbGRzYSh0b3BvKToK LSsgICAgIiIiVGVzdCB1c2luZyBNTC1EU0EgQ2VydGlmaWNhdGUgLSAoUFFDKQotKwotKyAgICA6 aWQ6IDg3ZmIxOWVmLTY3MmQtNGZhNy05MzRkLWRmYjQzOTdmMjMxMgotKyAgICA6c2V0dXA6IFN0 YW5kYWxvbmUgSW5zdGFuY2UKLSsgICAgOnN0ZXBzOgotKyAgICAgICAgMS4gQ29uZmlndXJlIHRo ZSBjZXJ0bWFwCi0rICAgICAgICAyLiBDcmVhdGUgdXNlciBtYXBwZWQgd2l0aCB0aGVjbGllbnQg Y2VydGlmaWNhdGUKLSsgICAgICAgIDMuIEdlbmVyYXRlIHRoZSB0ZXN0IHNjcmlwdAotKyAgICAg ICAgNC4gUnVuIHRoZSB0ZXN0IHNjcmlwdAotKyAgICAgICAgNS4gQ2hlY2sgdGhhdCBsZGFwc2Vh cmNoIHJldHVybmVkIHRoZSBuYW1pbmdjb250ZXh0Ci0rICAgIDpleHBlY3RlZHJlc3VsdHM6Ci0r ICAgICAgICAxLiBObyBlcnJvcgotKyAgICAgICAgMi4gTm8gZXJyb3IKLSsgICAgICAgIDMuIE5v IGVycm9yCi0rICAgICAgICA0LiBObyBlcnJvciBhbmQgZXhpdCBjb2RlIHNob3VsZCBiZSAwCi0r ICAgICAgICA1LiBuYW1pbmdjb250ZXh0IHNob3VsZCBiZSBpbiB0aGUgc2NyaXB0IG91dHB1dAot KyAgICAiIiIKLSsKLSsgICAgaW5zdCA9IHRvcG8uc3RhbmRhbG9uZQotKyAgICBpbnN0LmVuYWJs ZV90bHMoKQotKwotKyAgICBjbSA9IENlcnRtYXBMZWdhY3koaW5zdCkKLSsgICAgY2VydG1hcHMg PSBjbS5saXN0KCkKLSsgICAgY2VydG1hcHNbJ2RlZmF1bHQnXS51cGRhdGUoeydETkNvbXBzJzog Tm9uZSwgJ0NtYXBMZGFwQXR0cic6ICdkZXNjcmlwdGlvbid9KQotKyAgICBjbS5zZXQoY2VydG1h cHMpCi0rCi0rICAgIGNlcnRfZG4gPSBmJ0M9RlIsTz1jbGllbnQtdGVzdC1NTC1EU0EsQ049e3Nv Y2tldC5nZXRob3N0bmFtZSgpfScKLSsgICAgZG4gPSBmJ3VpZD10ZXN0X3VzZXIsb3U9cGVvcGxl LHtERUZBVUxUX1NVRkZJWH0nCi0rICAgIFVzZXJBY2NvdW50KGluc3QsIGRuPWRuKS5jcmVhdGUo IHByb3BlcnRpZXM9IHsKLSsgICAgICAgICAgICAndWlkJzogJ3Rlc3RfdXNlcicsCi0rICAgICAg ICAgICAgJ2NuJzogJ1Rlc3QgdXNlcicsCi0rICAgICAgICAgICAgJ3NuJzogJ1Rlc3QgdXNlcics Ci0rICAgICAgICAgICAgJ3VpZE51bWJlcic6ICc5OTk5OCcsCi0rICAgICAgICAgICAgJ2dpZE51 bWJlcic6ICc5OTk5OCcsCi0rICAgICAgICAgICAgJ2hvbWVEaXJlY3RvcnknOiAnL3Zhci9lbXB0 eScsCi0rICAgICAgICAgICAgJ2xvZ2luU2hlbGwnOiAnL2Jpbi9mYWxzZScsCi0rICAgICAgICAg ICAgJ2Rlc2NyaXB0aW9uJzogY2VydF9kbiB9KQotKwotKyAgICB0bXBkaXJfa3dhcmdzID0ge30K LSsgICAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMTIpOgotKyAgICAgICAgdG1wZGlyX2t3 YXJnc1snZGVsZXRlJ10gPSBub3QgREVCVUdHSU5HCi0rICAgIHdpdGggVGVtcG9yYXJ5RGlyZWN0 b3J5KCoqdG1wZGlyX2t3YXJncykgYXMgZGlyOgotKyAgICAgICAgc2NyaXB0bmFtZSA9IGYie2Rp cn0vZG9pdCIKLSsgICAgICAgIGQgPSB7Ci0rICAgICAgICAgICAgJ2Rpcic6IGRpciwKLSsgICAg ICAgICAgICAnaW5zdG5hbWUnOiBpbnN0LnNlcnZlcmlkLAotKyAgICAgICAgICAgICd1cmwnOiBm ImxkYXBzOi8vbG9jYWxob3N0OntpbnN0LnNzbHBvcnR9IiwKLSsgICAgICAgICAgICAncm9vdGRu JzogRE5fRE0sCi0rICAgICAgICAgICAgJ3Jvb3Rwdyc6IFBXX0RNLAotKyAgICAgICAgfQotKyAg ICAgICAgd2l0aCBvcGVuKHNjcmlwdG5hbWUsICd3JykgYXMgZjoKLSsgICAgICAgICAgICBmLndy aXRlKHNjcmlwdF9jb250ZW50LmZvcm1hdCgqKmQpKQotKyAgICAgICAgcmVzID0gc3VicHJvY2Vz cy5ydW4oKCcvYmluL2Jhc2gnLCBzY3JpcHRuYW1lKSwgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwg c3RkZXJyPXN1YnByb2Nlc3MuU1RET1VULCBlbmNvZGluZz0ndXRmLTgnKQotKyAgICAgICAgYXNz ZXJ0IHJlcwotKyAgICAgICAgbG9nLmluZm8ocmVzLnN0ZG91dCkKLSsgICAgICAgIHJlcy5jaGVj a19yZXR1cm5jb2RlKCkKLSsgICAgICAgICMgSWYgbGRhcHNlYXJjaCBpcyBzdWNjZXNzZnVsIHRo ZW4gZGVmYXVsdG5hbWluZ2NvbnRleHQgc2hvdWxkIGJlIGluIHJlcy5zdGRvdXQKLSsgICAgICAg IGFzc2VydCAiZGVmYXVsdG5hbWluZ2NvbnRleHQiIGluIHJlcy5zdGRvdXQKLSsKLSsKLStpZiBf X25hbWVfXyA9PSAnX19tYWluX18nOgotKyAgICAjIFJ1biBpc29sYXRlZAotKyAgICAjIC1zIGZv ciBERUJVRyBtb2RlCi0rICAgIENVUlJFTlRfRklMRSA9IG9zLnBhdGgucmVhbHBhdGgoX19maWxl X18pCi0rICAgIHB5dGVzdC5tYWluKFsiLXMiLCBDVVJSRU5UX0ZJTEVdKQotZGlmZiAtLWdpdCBh L2xkYXAvc2VydmVycy9zbGFwZC9zc2wuYyBiL2xkYXAvc2VydmVycy9zbGFwZC9zc2wuYwotaW5k ZXggYTljMTdlZjQyLi4wNTNkYjU0MjQgMTAwNjQ0Ci0tLS0gYS9sZGFwL3NlcnZlcnMvc2xhcGQv c3NsLmMKLSsrKyBiL2xkYXAvc2VydmVycy9zbGFwZC9zc2wuYwotQEAgLTE2OSw2ICsxNjksMjAg QEAgUFJCb29sIGVuYWJsZVRMUzEgPSBQUl9UUlVFOwotIC8qIENBIGNlcnQgcGVtIGZpbGUgKi8K LSBzdGF0aWMgY2hhciAqQ0FDZXJ0UGVtRmlsZSA9IE5VTEw7Ci0gCi0rc3RhdGljIGNvbnN0IHN0 cnVjdCB7Ci0rICAgIEtleVR5cGUga3Q7Ci0rICAgIGNvbnN0IGNoYXIgKnNob3J0bmFtZTsKLSsg ICAgY29uc3QgY2hhciAqZnVsbG5hbWU7Ci0rfSBzdXBwb3J0ZWRfa2V5X3R5cGVzW10gPSB7Ci0r ICAgIHsgcnNhS2V5LCAiUlNBIiwgIlJpdmVzdOKAk1NoYW1pcuKAk0FkbGVtYW4iIH0sCi0rICAg IHsgZWNLZXksICJFQyIsICJFbGxpcHRpYyBDdXJ2ZSIgfSwKLSsjaWZkZWYgTUFYX01MX0RTQV9Q UklWQVRFX0tFWV9MRU4KLSsgICAgeyBtbGRzYUtleSwgIk1MLURTQSIsICJNb2R1bGUtTGF0dGlj ZS1CYXNlZCBEaWdpdGFsIFNpZ25hdHVyZSBBbGdvcml0aG0gKHBvc3QtcXVhbnR1bSkiIH0sCi0r I2VuZGlmCi0rICAgIHsgMCB9Ci0rfTsKLSsKLSsKLSAvKiBoZWxwZXIgZnVuY3Rpb25zIGZvciBv cGVubGRhcCB1cGRhdGUuICovCi0gc3RhdGljIGludCBzbGFwZF9leHRyYWN0X2NlcnQoU2xhcGlf RW50cnkgKmVudHJ5LCBpbnQgaXNDQSk7Ci0gc3RhdGljIGludCBzbGFwZF9leHRyYWN0X2tleShT bGFwaV9FbnRyeSAqZW50cnksIGNoYXIgKnRva2VuLCBQSzExU2xvdEluZm8gKnNsb3QpOwotQEAg LTcxOCw5ICs3MzIsMzEgQEAgU1NMUExDWV9JbnN0YWxsKHZvaWQpCi0gewotIAotICAgICBTRUNT dGF0dXMgcyA9IDA7Ci0rI2lmZGVmIE1BWF9NTF9EU0FfUFJJVkFURV9LRVlfTEVOCi0rICAgIGlu dCBmbGFncyA9IE5TU19VU0VfQUxHX0lOX1NJR05BVFVSRSB8IE5TU19VU0VfQUxHX0lOX1NTTDsK LSsgICAgc3RhdGljIGNvbnN0IFNFQ09pZFRhZyBvaWRzW10gPSB7Ci0rICAgICAgICBTRUNfT0lE X01MX0RTQV80NCwKLSsgICAgICAgIFNFQ19PSURfTUxfRFNBXzY1LAotKyAgICAgICAgU0VDX09J RF9NTF9EU0FfODcsCi0rICAgIH07Ci0rI2VuZGlmCi0gCi0gICAgIHMgPSBOU1NfU2V0RG9tZXN0 aWNQb2xpY3koKTsKLSAKLSsjaWZkZWYgTUFYX01MX0RTQV9QUklWQVRFX0tFWV9MRU4KLSsgICAg LyogU2hvdWxkIHJlbHkgb24gdGhlIGNyeXB0byBtb2R1bGUgcG9saWN5IGluIEZJUFMgbW9kZSAq LwotKyAgICBpZiAoIXNsYXBkX3BrMTFfaXNGSVBTKCkpIHsKLSsgICAgICAgIC8qIFNldCBleHBs aWNpdGx5IFBRQyBhbGdvcml0aG0gcG9saWN5IGlmIGl0IGlzIG5vdCBzZXQgYnkgZGVmYXVsdCAq LwotKyAgICAgICAgZm9yIChzaXplX3QgaT0wOyBzID09IFNFQ1N1Y2Nlc3MgJiYgaSA8IFBSX0FS UkFZX1NJWkUob2lkcyk7IGkrKykgewotKyAgICAgICAgICAgIGludCBvZmxhZ3MgPSAwOwotKyAg ICAgICAgICAgICh2b2lkKSBOU1NfR2V0QWxnb3JpdGhtUG9saWN5KG9pZHNbaV0sICZvZmxhZ3Mp OwotKyAgICAgICAgICAgIGlmICgob2ZsYWdzICYgZmxhZ3MpICE9IGZsYWdzKSB7Ci0rICAgICAg ICAgICAgICAgIHMgPSBOU1NfU2V0QWxnb3JpdGhtUG9saWN5KG9pZHNbaV0sIGZsYWdzLCAwKTsK LSsgICAgICAgICAgICB9Ci0rICAgICAgICB9Ci0rICAgIH0KLSsjZW5kaWYKLSsKLSAgICAgcmV0 dXJuIHMgPyBQUl9GQUlMVVJFIDogUFJfU1VDQ0VTUzsKLSB9Ci0gCi1AQCAtMTY0MCw3ICsxNjc2 LDcgQEAgc2xhcGRfc3NsX2luaXQyKFBSRmlsZURlc2MgKipmZCwgaW50IHN0YXJ0VExTKQotICAg ICAvKgotICAgICAgKiBOb3csIGdldCB0aGUgY29tcGxldGUgbGlzdCBvZiBjaXBoZXIgZmFtaWxp ZXMuIEVhY2ggZmFtaWx5Ci0gICAgICAqIGhhcyBhIHRva2VuIG5hbWUgYW5kIHBlcnNvbmFsaXR5 IG5hbWUgd2hpY2ggd2UnbGwgdXNlIHRvIGZpbmQKLS0gICAgICogYXBwcm9wcmlhdGUga2V5cyBh bmQgY2VydHMsIGFuZCBjYWxsIFNTTF9Db25maWdTZWN1cmVTZXJ2ZXIKLSsgICAgICogYXBwcm9w cmlhdGUga2V5cyBhbmQgY2VydHMsIGFuZCBjYWxsIFNTTF9Db25maWdTZXJ2ZXJDZXJ0Ci0gICAg ICAqIHdpdGguCi0gICAgICAqLwotIAotQEAgLTE3NTksOCArMTc5NSw2IEBAIHNsYXBkX3NzbF9p bml0MihQUkZpbGVEZXNjICoqZmQsIGludCBzdGFydFRMUykKLSAgICAgICAgICAgICAgICAgfQot IAotICAgICAgICAgICAgICAgICBpZiAoU0VDU3VjY2VzcyA9PSBydikgewotLSAgICAgICAgICAg ICAgICAgICAgU1NMS0VBVHlwZSBjZXJ0S0VBOwotLQotICAgICAgICAgICAgICAgICAgICAgLyog SWYgd2Ugd2FudCB3ZWFrIGRoIHBhcmFtcywgZmxhZyBpdCBvbiB0aGUgc29ja2V0IG5vdyEgKi8K LSAgICAgICAgICAgICAgICAgICAgIHJ2ID0gU1NMX09wdGlvblNldCgqZmQsIFNTTF9FTkFCTEVf U0VSVkVSX0RIRSwgUFJfVFJVRSk7Ci0gICAgICAgICAgICAgICAgICAgICBpZiAocnYgIT0gU0VD U3VjY2VzcykgewotQEAgLTE3NzQsMTEgKzE4MDgsMTAgQEAgc2xhcGRfc3NsX2luaXQyKFBSRmls ZURlc2MgKipmZCwgaW50IHN0YXJ0VExTKQotICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAg ICAgICAgICAgICAgICAgICAgIH0KLSAKLS0gICAgICAgICAgICAgICAgICAgIGNlcnRLRUEgPSBO U1NfRmluZENlcnRLRUFUeXBlKGNlcnQpOwotLSAgICAgICAgICAgICAgICAgICAgcnYgPSBTU0xf Q29uZmlnU2VjdXJlU2VydmVyKCpmZCwgY2VydCwga2V5LCBjZXJ0S0VBKTsKLSsgICAgICAgICAg ICAgICAgICAgIHJ2ID0gU1NMX0NvbmZpZ1NlcnZlckNlcnQoKmZkLCBjZXJ0LCBrZXksIE5VTEws IDApOwotICAgICAgICAgICAgICAgICAgICAgaWYgKFNFQ1N1Y2Nlc3MgIT0gcnYpIHsKLSAgICAg ICAgICAgICAgICAgICAgICAgICBlcnJvckNvZGUgPSBQUl9HZXRFcnJvcigpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgIHNsYXBkX1NTTF93YXJuKCJDb25maWdTZWN1cmVTZXJ2ZXI6ICIKLSsg ICAgICAgICAgICAgICAgICAgICAgICBzbGFwZF9TU0xfd2FybigiU1NMX0NvbmZpZ1NlcnZlckNl cnQ6ICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU2VydmVyIGtl eS9jZXJ0aWZpY2F0ZSBpcyAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgImJhZCBmb3IgY2VydCAlcyBvZiBmYW1pbHkgJXMgKCIgU0xBUElfQ09NUE9ORU5UX05BTUVf TlNQUiAiIGVycm9yICVkIC0gJXMpIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjZXJ0X25hbWUsICpmYW1pbHksIGVycm9yQ29kZSwKLUBAIC0yNjYzLDYgKzI2OTYs MzggQEAgYmFpbDoKLSAgICAgcmV0dXJuIHJ2OwotIH0KLSAKLSsvKiBIZWxwZXIgZm9yIGdldF9z dXBwb3J0ZWRfa2V5X3R5cGUgKi8KLStzdGF0aWMgY2hhciAqCi0rYnVmX2FkZF9zdHIoY2hhciAq YnVmLCBjaGFyICpidWZlbmQsIGNvbnN0IGNoYXIgKnN0cikKLSt7Ci0rICAgIC8qIGJ1ZmVuZCBp cyBzaXplb2YoYnVmKS00ICh0byBhdm9pZCBvdmVyZmxvdyB3aXRoIC4uLikgKi8KLSsgICAgY2hh ciAqcmV0ID0gYnVmK3N0cmxlbihzdHIpOwotKyAgICBpZiAocmV0ID4gYnVmZW5kKSB7Ci0rICAg ICAgICByZXQgPSBidWZlbmQ7Ci0rICAgICAgICBzdHJjcHkoYnVmLCAiLi4uIik7Ci0rICAgIH0g ZWxzZSB7Ci0rICAgICAgICBzdHJjcHkoYnVmLCBzdHIpOwotKyAgICB9Ci0rICAgIHJldHVybiBy ZXQ7Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rZ2V0X3N1cHBvcnRlZF9rZXlfdHlwZV9uYW1lcyhj aGFyICpidWYsIHNpemVfdCBidWZzaXplKQotK3sKLSsgICAgY2hhciAqYnVmZW5kID0gYnVmICsg YnVmc2l6ZSAtIDQ7Ci0rICAgIGZvciAoc2l6ZV90IGk9MDsgc3VwcG9ydGVkX2tleV90eXBlc1tp XS5rdDsgaSsrKSB7Ci0rICAgICAgICBpZiAoaT4wKSB7Ci0rICAgICAgICAgICAgaWYgKHN1cHBv cnRlZF9rZXlfdHlwZXNbaSsxXS5rdCA9PSAwKSB7Ci0rICAgICAgICAgICAgICAgIC8qIExhc3Qg c3VwcG9ydGVkIGtleSB0eXBlICovCi0rICAgICAgICAgICAgICAgIGJ1ZiA9IGJ1Zl9hZGRfc3Ry KGJ1ZiwgYnVmZW5kLCAiIG9yICIpOwotKyAgICAgICAgICAgIH0gZWxzZSB7Ci0rICAgICAgICAg ICAgICAgIGJ1ZiA9IGJ1Zl9hZGRfc3RyKGJ1ZiwgYnVmZW5kLCAiLCAiKTsKLSsgICAgICAgICAg ICB9Ci0rICAgICAgICB9Ci0rICAgICAgICBidWYgPSBidWZfYWRkX3N0cihidWYsIGJ1ZmVuZCwg c3VwcG9ydGVkX2tleV90eXBlc1tpXS5zaG9ydG5hbWUpOwotKyAgICB9Ci0rfQotKwotIC8qCi0g ICogQm9ycm93ZWQgZnJvbSBrZXl1dGlsLmMgKGNyeXB0by11dGlsKQotICAqCi1AQCAtMjcyMywx MCArMjc4OCwyMCBAQCBleHRyYWN0S2V5c0FuZFN1YmplY3QoCi0gICAgIH0KLSAKLSAgICAga2V5 dHlwZSA9ICgqcHJpdmtleSktPmtleVR5cGU7Ci0tICAgIGlmICAoa2V5dHlwZSAhPSByc2FLZXkg JiYga2V5dHlwZSAhPSBlY0tleSkgewotLSAgICAgICAgc2xhcGlfbG9nX2VycihTTEFQSV9MT0df RVJSLCAiZXh0cmFjdEtleXNBbmRTdWJqZWN0IiwKLS0gICAgICAgICAgICAgICAgICAgICAgIlVu ZXhwZWN0ZWQga2V5IGFsZ29yeXRobSBpbiBjZXJ0aWZpY2F0ZTogJXMuIE9ubHkgcnNhIGFuZCBl YyBrZXlzIGFyZSBzdXBwb3J0ZWQuXG4iLCBuaWNrbmFtZSk7Ci0tICAgICAgICBnb3RvIGJhaWw7 Ci0rICAgIGZvciAoc2l6ZV90IGk9MDsgO2krKykgewotKyAgICAgICAgS2V5VHlwZSBrdCA9IHN1 cHBvcnRlZF9rZXlfdHlwZXNbaV0ua3Q7Ci0rICAgICAgICBpZiAoa3QgPT0ga2V5dHlwZSAmJiBr ZXl0eXBlICE9IDApIHsKLSsgICAgICAgICAgICAvKiBTdG9wIGxvb3BpbmcgaWYgdGhlIGtleSB0 eXBlIGlzIHN1cHBvcnRlZCAqLwotKyAgICAgICAgICAgIGJyZWFrOwotKyAgICAgICAgfQotKyAg ICAgICAgaWYgKGt0ID09IDApIHsKLSsgICAgICAgICAgICAvKiBObyBzdXBwb3J0ZWQga2V5IHR5 cGUgaGF2ZSBiZWVuIGZvdW5kLiAqLwotKyAgICAgICAgICAgIGNoYXIgc2t0bmFtZXNbMTAwXSA9 ICIiOwotKyAgICAgICAgICAgIGdldF9zdXBwb3J0ZWRfa2V5X3R5cGVfbmFtZXMoc2t0bmFtZXMs IHNpemVvZiBza3RuYW1lcyk7Ci0rICAgICAgICAgICAgc2xhcGlfbG9nX2VycihTTEFQSV9MT0df RVJSLCAiZXh0cmFjdEtleXNBbmRTdWJqZWN0IiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICJVbmV4cGVjdGVkIGtleSBhbGdvcml0aG0gaW4gY2VydGlmaWNhdGU6ICVzLiBPbmx5ICVzIGFy ZSBzdXBwb3J0ZWQuXG4iLCBuaWNrbmFtZSwgc2t0bmFtZXMpOwotKyAgICAgICAgICAgIGdvdG8g YmFpbDsKLSsgICAgICAgIH0KLSAgICAgfQotIAotICAgICAqc3ViamVjdCA9IENFUlRfQXNjaWlU b05hbWUoY2VydC0+c3ViamVjdE5hbWUpOwotLS0gCi0yLjUyLjAKLQoKZGlmZiAtLWdpdCBhLzAw MTMtQnVtcC1sb2Rhc2gtZnJvbS00LjE3LjIxLXRvLTQuMTcuMjMtaW4tc3JjLWNvY2twaXQtMy5w YXRjaCBiLzAwMTMtQnVtcC1sb2Rhc2gtZnJvbS00LjE3LjIxLXRvLTQuMTcuMjMtaW4tc3JjLWNv Y2twaXQtMy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjdkOWM5MC4uMDAw MDAwMAotLS0gYS8wMDEzLUJ1bXAtbG9kYXNoLWZyb20tNC4xNy4yMS10by00LjE3LjIzLWluLXNy Yy1jb2NrcGl0LTMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi1Gcm9tIDQw NjhmNjhiZWE3N2Y0NjZmOWIzZDg3Yzc2NmVhMTRkMmYxNzViMTcgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiAiZGVwZW5kYWJvdFtib3RdIiA8NDk2OTkzMzMrZGVwZW5kYWJvdFtib3Rd QHVzZXJzLm5vcmVwbHkuZ2l0aHViLmNvbT4KLURhdGU6IFdlZCwgMjEgSmFuIDIwMjYgMTk6NTg6 NDYgLTA4MDAKLVN1YmplY3Q6IFtQQVRDSF0gQnVtcCBsb2Rhc2ggZnJvbSA0LjE3LjIxIHRvIDQu MTcuMjMgaW4KLSAvc3JjL2NvY2twaXQvMzg5LWNvbnNvbGUgKCM3MjAzKQotCi1CdW1wcyBbbG9k YXNoXShodHRwczovL2dpdGh1Yi5jb20vbG9kYXNoL2xvZGFzaCkgZnJvbSA0LjE3LjIxIHRvIDQu MTcuMjMuCi0tIFtSZWxlYXNlIG5vdGVzXShodHRwczovL2dpdGh1Yi5jb20vbG9kYXNoL2xvZGFz aC9yZWxlYXNlcykKLS0gW0NvbW1pdHNdKGh0dHBzOi8vZ2l0aHViLmNvbS9sb2Rhc2gvbG9kYXNo L2NvbXBhcmUvNC4xNy4yMS4uLjQuMTcuMjMpCi0KLS0tLQotdXBkYXRlZC1kZXBlbmRlbmNpZXM6 Ci0tIGRlcGVuZGVuY3ktbmFtZTogbG9kYXNoCi0gIGRlcGVuZGVuY3ktdmVyc2lvbjogNC4xNy4y MwotICBkZXBlbmRlbmN5LXR5cGU6IGluZGlyZWN0Ci0uLi4KLQotU2lnbmVkLW9mZi1ieTogZGVw ZW5kYWJvdFtib3RdIDxzdXBwb3J0QGdpdGh1Yi5jb20+Ci1Dby1hdXRob3JlZC1ieTogZGVwZW5k YWJvdFtib3RdIDw0OTY5OTMzMytkZXBlbmRhYm90W2JvdF1AdXNlcnMubm9yZXBseS5naXRodWIu Y29tPgotLS0tCi0gc3JjL2NvY2twaXQvMzg5LWNvbnNvbGUvcGFja2FnZS1sb2NrLmpzb24gfCAx MiArKysrKystLS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA2IGRlbGV0 aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2NvY2twaXQvMzg5LWNvbnNvbGUvcGFja2FnZS1s b2NrLmpzb24gYi9zcmMvY29ja3BpdC8zODktY29uc29sZS9wYWNrYWdlLWxvY2suanNvbgotaW5k ZXggMGFhNWJiYmI5Li4yM2ZhZWY2MmYgMTAwNjQ0Ci0tLS0gYS9zcmMvY29ja3BpdC8zODktY29u c29sZS9wYWNrYWdlLWxvY2suanNvbgotKysrIGIvc3JjL2NvY2twaXQvMzg5LWNvbnNvbGUvcGFj a2FnZS1sb2NrLmpzb24KLUBAIC00ODMzLDkgKzQ4MzMsOSBAQAotICAgICAgIH0KLSAgICAgfSwK LSAgICAgIm5vZGVfbW9kdWxlcy9sb2Rhc2giOiB7Ci0tICAgICAgInZlcnNpb24iOiAiNC4xNy4y MSIsCi0tICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2xvZGFz aC8tL2xvZGFzaC00LjE3LjIxLnRneiIsCi0tICAgICAgImludGVncml0eSI6ICJzaGE1MTItdjJr REVlNTdsZWNUdWxhREl1TlRQeTNSeTRnTEdKNloxTzN2RTFrcmdYWk5yc1ErTEZUR0hWeFZqY1hQ czE3TGhiWlZHZWRBSnY4WFoxdHZqNUZ2U2c9PSIKLSsgICAgICAidmVyc2lvbiI6ICI0LjE3LjIz IiwKLSsgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvbG9kYXNo Ly0vbG9kYXNoLTQuMTcuMjMudGd6IiwKLSsgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1MZ1ZU TXBRdElvcENpNzlTSmVEaVAwVGZXaTVDTkVjL0wvYVJkVGgzeUl2bVpYVG5oZVdwS2pTWmhudk1s OGlYYkMxdEZnOWdkSEhETUxvVjdDbkcrdz09IgotICAgICB9LAotICAgICAibm9kZV9tb2R1bGVz L2xvZGFzaC5tZXJnZSI6IHsKLSAgICAgICAidmVyc2lvbiI6ICI0LjYuMiIsCi1AQCAtMTEwODcs OSArMTEwODcsOSBAQAotICAgICAgIH0KLSAgICAgfSwKLSAgICAgImxvZGFzaCI6IHsKLS0gICAg ICAidmVyc2lvbiI6ICI0LjE3LjIxIiwKLS0gICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdp c3RyeS5ucG1qcy5vcmcvbG9kYXNoLy0vbG9kYXNoLTQuMTcuMjEudGd6IiwKLS0gICAgICAiaW50 ZWdyaXR5IjogInNoYTUxMi12MmtERWU1N2xlY1R1bGFESXVOVFB5M1J5NGdMR0o2WjFPM3ZFMWty Z1haTnJzUStMRlRHSFZ4VmpjWFBzMTdMaGJaVkdlZEFKdjhYWjF0dmo1RnZTZz09IgotKyAgICAg ICJ2ZXJzaW9uIjogIjQuMTcuMjMiLAotKyAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lz dHJ5Lm5wbWpzLm9yZy9sb2Rhc2gvLS9sb2Rhc2gtNC4xNy4yMy50Z3oiLAotKyAgICAgICJpbnRl Z3JpdHkiOiAic2hhNTEyLUxnVlRNcFF0SW9wQ2k3OVNKZURpUDBUZldpNUNORWMvTC9hUmRUaDN5 SXZtWlhUbmhlV3BLalNaaG52TWw4aVhiQzF0Rmc5Z2RISERNTG9WN0NuRyt3PT0iCi0gICAgIH0s Ci0gICAgICJsb2Rhc2gubWVyZ2UiOiB7Ci0gICAgICAgInZlcnNpb24iOiAiNC42LjIiLAotLS0g Ci0yLjUyLjAKLQoKZGlmZiAtLWdpdCBhLzAwMTQtSXNzdWUtNzE5OC1XZWItY29uc29sZS1kb2Vz bi10LXNob3ctc3ViLXN1ZmZpeC13aGVuLS5wYXRjaCBiLzAwMTQtSXNzdWUtNzE5OC1XZWItY29u c29sZS1kb2Vzbi10LXNob3ctc3ViLXN1ZmZpeC13aGVuLS5wYXRjaApkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggYmQyYjYzZS4uMDAwMDAwMAotLS0gYS8wMDE0LUlzc3VlLTcxOTgtV2Vi LWNvbnNvbGUtZG9lc24tdC1zaG93LXN1Yi1zdWZmaXgtd2hlbi0ucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSw1MTcgKzAsMCBAQAotRnJvbSAzZmYyNTNhZjc2ZGYwN2ZlMDUxOTQ4MTc5NWI3ZWQx NTVmZWZhYTllIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU2ltb24gUGljaHVnaW4g PHNwaWNodWdpQHJlZGhhdC5jb20+Ci1EYXRlOiBGcmksIDIzIEphbiAyMDI2IDE3OjM1OjQ1IC0w ODAwCi1TdWJqZWN0OiBbUEFUQ0hdIElzc3VlIDcxOTggLSBXZWIgY29uc29sZSBkb2Vzbid0IHNo b3cgc3ViLXN1ZmZpeCB3aGVuCi0gcGFyZW50LXN1ZmZpeCBwb2ludHMgdG8gYW4gZW50cnkgKCM3 MjAyKQotCi1EZXNjcmlwdGlvbjogVGhlIHdlYiBjb25zb2xlIGRvZXNuJ3Qgc2hvdyBzdWItc3Vm Zml4ZXMgd2hlbiB0aGUKLW5zc2xhcGQtcGFyZW50LXN1ZmZpeCBhdHRyaWJ1dGUgcG9pbnRzIHRv IGFuIGVudHJ5IHJhdGhlciB0aGFuIGEgYmFja2VuZAotc3VmZml4LgotRm9yIGV4YW1wbGUsIGNy ZWF0aW5nIGEgc3ViLXN1ZmZpeCBvdT1mb28sb3U9cGVvcGxlLGRjPWV4YW1wbGUsZGM9Y29tCi13 aXRoIHBhcmVudC1zdWZmaXggb3U9cGVvcGxlLGRjPWV4YW1wbGUsZGM9Y29tICh3aGVyZSBvdT1w ZW9wbGUgaXMganVzdCBhbgotZW50cnksIG5vdCBhIHN1ZmZpeCkgd291bGQgbm90IGFwcGVhciBp biB0aGUgd2ViIGNvbnNvbGUgdHJlZS4KLQotRml4OiBJbiBiYWNrZW5kX2J1aWxkX3RyZWUoKSBh bmQgZ2V0X3N1Yl9zdWZmaXhlcygpLCB0aGUgY29kZSBvbmx5IG1hdGNoZWQKLXdoZW4gbnNzbGFw ZC1wYXJlbnQtc3VmZml4IGV4YWN0bHkgZXF1YWxlZCBhbiBleGlzdGluZyBiYWNrZW5kIHN1ZmZp eC4KLU5vdyBpdCBhbHNvIGNoZWNrcyBpZiB0aGUgcGFyZW50LXN1ZmZpeCBpcyBhbiBlbnRyeSB1 bmRlciB0aGUgY3VycmVudAotc3VmZml4IChlbmRzIHdpdGggLHN1ZmZpeCkgYW5kIGlzIG5vdCBp dHNlbGYgYSBiYWNrZW5kIHN1ZmZpeC4gVGhpcwotY29ycmVjdGx5IGF0dGFjaGVzIHN1Yi1zdWZm aXhlcyB0byB0aGVpciBjb250YWluaW5nIHN1ZmZpeCB3aGVuIHRoZQotcGFyZW50LXN1ZmZpeCBw b2ludHMgdG8gYW4gaW50ZXJtZWRpYXRlIGVudHJ5LgotCi1GaXhlczogaHR0cHM6Ly9naXRodWIu Y29tLzM4OWRzLzM4OS1kcy1iYXNlL2lzc3Vlcy83MTk4Ci0KLVJldmlld2VkIGJ5OiBAcHJvZ2ll cjM4OSAoVGhhbmtzISkKLS0tLQotIC4uLi9zdWl0ZXMvbGliMzg5L3N1YnN1ZmZpeF90cmVlX3Rl c3QucHkgICAgICB8IDMxMyArKysrKysrKysrKysrKysrKysKLSBzcmMvbGliMzg5L2xpYjM4OS9i YWNrZW5kLnB5ICAgICAgICAgICAgICAgICAgfCAgNDcgKystCi0gc3JjL2xpYjM4OS9saWIzODkv Y2xpX2NvbmYvYmFja2VuZC5weSAgICAgICAgIHwgIDM0ICstCi0gMyBmaWxlcyBjaGFuZ2VkLCAz NzAgaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IGRp cnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9saWIzODkvc3Vic3VmZml4X3RyZWVfdGVzdC5weQotCi1k aWZmIC0tZ2l0IGEvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL2xpYjM4OS9zdWJzdWZmaXhfdHJl ZV90ZXN0LnB5IGIvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL2xpYjM4OS9zdWJzdWZmaXhfdHJl ZV90ZXN0LnB5Ci1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMDAwLi5mYTEwYmE1 MzAKLS0tLSAvZGV2L251bGwKLSsrKyBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9saWIzODkv c3Vic3VmZml4X3RyZWVfdGVzdC5weQotQEAgLTAsMCArMSwzMTMgQEAKLSsjIC0tLSBCRUdJTiBD T1BZUklHSFQgQkxPQ0sgLS0tCi0rIyBDb3B5cmlnaHQgKEMpIDIwMjYgUmVkIEhhdCwgSW5jLgot KyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSsjCi0rIyBMaWNlbnNlOiBHUEwgKHZlcnNpb24gMyBv ciBhbnkgbGF0ZXIgdmVyc2lvbikuCi0rIyBTZWUgTElDRU5TRSBmb3IgZGV0YWlscy4KLSsjIC0t LSBFTkQgQ09QWVJJR0hUIEJMT0NLIC0tLQotKyMKLStpbXBvcnQgbG9nZ2luZwotK2ltcG9ydCBv cwotK2ltcG9ydCBweXRlc3QKLStmcm9tIGxpYjM4OS50b3BvbG9naWVzIGltcG9ydCB0b3BvbG9n eV9zdCBhcyB0b3BvCi0rZnJvbSBsaWIzODkuYmFja2VuZCBpbXBvcnQgQmFja2VuZHMKLStmcm9t IGxpYjM4OS5pZG0ub3JnYW5pemF0aW9uYWx1bml0IGltcG9ydCBPcmdhbml6YXRpb25hbFVuaXRz Ci0rZnJvbSBsaWIzODkuX2NvbnN0YW50cyBpbXBvcnQgREVGQVVMVF9TVUZGSVgKLSsKLStweXRl c3RtYXJrID0gcHl0ZXN0Lm1hcmsudGllcjEKLSsKLStsb2dnaW5nLmdldExvZ2dlcihfX25hbWVf Xykuc2V0TGV2ZWwobG9nZ2luZy5JTkZPKQotK2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFt ZV9fKQotKwotKwotK0BweXRlc3QuZml4dHVyZShzY29wZT0iZnVuY3Rpb24iKQotK2RlZiBzZXR1 cF9zdWJzdWZmaXhfd2l0aF9lbnRyeV9wYXJlbnQodG9wbywgcmVxdWVzdCk6Ci0rICAgICIiIlNl dHVwIGEgc3ViLXN1ZmZpeCB3aG9zZSBwYXJlbnQtc3VmZml4IHBvaW50cyB0byBhbiBlbnRyeSwg bm90IGEgc3VmZml4LiIiIgotKyAgICBpbnN0ID0gdG9wby5zdGFuZGFsb25lCi0rCi0rICAgICMg Q3JlYXRlIG91PXBlb3BsZSBlbnRyeSB1bmRlciB0aGUgcm9vdCBzdWZmaXgKLSsgICAgbG9nLmlu Zm8oIkNyZWF0aW5nIG91PXBlb3BsZSxkYz1leGFtcGxlLGRjPWNvbSBlbnRyeSIpCi0rICAgIG91 cyA9IE9yZ2FuaXphdGlvbmFsVW5pdHMoaW5zdCwgREVGQVVMVF9TVUZGSVgpCi0rICAgIG91X3Bl b3BsZSA9IG91cy5nZXQoJ3Blb3BsZScpCi0rCi0rICAgICMgQ3JlYXRlIHN1Yi1zdWZmaXggd2l0 aCBwYXJlbnQtc3VmZml4IHBvaW50aW5nIHRvIHRoZSBlbnRyeQotKyAgICBsb2cuaW5mbygiQ3Jl YXRpbmcgc3ViLXN1ZmZpeCBvdT1mb28sb3U9cGVvcGxlLGRjPWV4YW1wbGUsZGM9Y29tIikKLSsg ICAgYmFja2VuZHMgPSBCYWNrZW5kcyhpbnN0KQotKyAgICBzdWJzdWZmaXhfZG4gPSAnb3U9Zm9v LG91PXBlb3BsZSxkYz1leGFtcGxlLGRjPWNvbScKLSsgICAgcGFyZW50X3N1ZmZpeF9kbiA9ICdv dT1wZW9wbGUsZGM9ZXhhbXBsZSxkYz1jb20nCi0rCi0rICAgIGZvb19iYWNrZW5kID0gYmFja2Vu ZHMuY3JlYXRlKHByb3BlcnRpZXM9ewotKyAgICAgICAgJ2NuJzogJ2ZvbycsCi0rICAgICAgICAn bnNzbGFwZC1zdWZmaXgnOiBzdWJzdWZmaXhfZG4sCi0rICAgICAgICAncGFyZW50JzogcGFyZW50 X3N1ZmZpeF9kbiwKLSsgICAgfSkKLSsKLSsgICAgIyBDcmVhdGUgdGhlIHN1ZmZpeCBlbnRyeQot KyAgICBmb29fb3VzID0gT3JnYW5pemF0aW9uYWxVbml0cyhpbnN0LCBwYXJlbnRfc3VmZml4X2Ru KQotKyAgICBmb29fb3UgPSBmb29fb3VzLmNyZWF0ZShwcm9wZXJ0aWVzPXsnb3UnOiAnZm9vJ30p Ci0rCi0rICAgIGRlZiBjbGVhbnVwKCk6Ci0rICAgICAgICBsb2cuaW5mbygiQ2xlYW5pbmcgdXAg dGVzdCBiYWNrZW5kcyBhbmQgZW50cmllcyIpCi0rICAgICAgICB0cnk6Ci0rICAgICAgICAgICAg Zm9vX291LmRlbGV0ZSgpCi0rICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0rICAgICAg ICAgICAgbG9nLndhcm5pbmcoZiJGYWlsZWQgdG8gZGVsZXRlIGZvb19vdToge2V9IikKLSsgICAg ICAgIHRyeToKLSsgICAgICAgICAgICBmb29fYmFja2VuZC5kZWxldGUoKQotKyAgICAgICAgZXhj ZXB0IEV4Y2VwdGlvbiBhcyBlOgotKyAgICAgICAgICAgIGxvZy53YXJuaW5nKGYiRmFpbGVkIHRv IGRlbGV0ZSBmb29fYmFja2VuZDoge2V9IikKLSsKLSsgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIo Y2xlYW51cCkKLSsKLSsgICAgcmV0dXJuIHsKLSsgICAgICAgICdpbnN0YW5jZSc6IGluc3QsCi0r ICAgICAgICAnYmFja2VuZHMnOiBiYWNrZW5kcywKLSsgICAgICAgICdmb29fYmFja2VuZCc6IGZv b19iYWNrZW5kLAotKyAgICAgICAgJ291X3Blb3BsZSc6IG91X3Blb3BsZSwKLSsgICAgICAgICdz dWJzdWZmaXhfZG4nOiBzdWJzdWZmaXhfZG4sCi0rICAgICAgICAncGFyZW50X3N1ZmZpeF9kbic6 IHBhcmVudF9zdWZmaXhfZG4sCi0rICAgIH0KLSsKLSsKLStkZWYgdGVzdF9zdWJzdWZmaXhfd2l0 aF9lbnRyeV9wYXJlbnRfaW5fdHJlZSh0b3BvLCBzZXR1cF9zdWJzdWZmaXhfd2l0aF9lbnRyeV9w YXJlbnQpOgotKyAgICAiIiJUZXN0IHRoYXQgYSBzdWItc3VmZml4IHdpdGggcGFyZW50IHBvaW50 aW5nIHRvIGFuIGVudHJ5IGlzIHZpc2libGUgaW4gdGhlIHRyZWUuCi0rCi0rICAgIDppZDogMjU2 ZjM2ZjUtNzZhZC00MDQzLWFkOGQtMWY5ZTJhZmM0ZTFkCi0rICAgIDpzZXR1cDogU3RhbmRhbG9u ZSBpbnN0YW5jZSB3aXRoIHN1Yi1zdWZmaXggd2hvc2UgcGFyZW50IGlzIGFuIGVudHJ5Ci0rICAg IDpzdGVwczoKLSsgICAgICAgIDEuIFZlcmlmeSB0aGUgc3ViLXN1ZmZpeCBiYWNrZW5kIGV4aXN0 cwotKyAgICAgICAgMi4gR2V0IHN1Yi1zdWZmaXhlcyBvZiB0aGUgcm9vdCBiYWNrZW5kCi0rICAg ICAgICAzLiBWZXJpZnkgdGhlIHN1Yi1zdWZmaXggYXBwZWFycyBpbiB0aGUgbGlzdAotKyAgICA6 ZXhwZWN0ZWRyZXN1bHRzOgotKyAgICAgICAgMS4gQmFja2VuZCBzaG91bGQgZXhpc3QKLSsgICAg ICAgIDIuIFN1Yi1zdWZmaXhlcyBzaG91bGQgYmUgcmV0cmlldmFibGUKLSsgICAgICAgIDMuIFN1 Yi1zdWZmaXggc2hvdWxkIGJlIHZpc2libGUgKHRoaXMgaXMgd2hlcmUgdGhlIGJ1ZyBtYW5pZmVz dGVkKQotKyAgICAiIiIKLSsgICAgYmFja2VuZHMgPSBzZXR1cF9zdWJzdWZmaXhfd2l0aF9lbnRy eV9wYXJlbnRbJ2JhY2tlbmRzJ10KLSsgICAgZm9vX2JhY2tlbmQgPSBzZXR1cF9zdWJzdWZmaXhf d2l0aF9lbnRyeV9wYXJlbnRbJ2Zvb19iYWNrZW5kJ10KLSsgICAgc3Vic3VmZml4X2RuID0gc2V0 dXBfc3Vic3VmZml4X3dpdGhfZW50cnlfcGFyZW50WydzdWJzdWZmaXhfZG4nXQotKwotKyAgICAj IFN0ZXAgMTogVmVyaWZ5IHRoZSBzdWItc3VmZml4IGJhY2tlbmQgZXhpc3RzCi0rICAgIGFzc2Vy dCBmb29fYmFja2VuZC5leGlzdHMoKSwgIlRoZSBmb28gYmFja2VuZCBzaG91bGQgZXhpc3QiCi0r Ci0rICAgICMgU3RlcCAyOiBHZXQgc3ViLXN1ZmZpeGVzIG9mIHRoZSByb290IGJhY2tlbmQKLSsg ICAgcm9vdF9iYWNrZW5kID0gYmFja2VuZHMuZ2V0KERFRkFVTFRfU1VGRklYKQotKyAgICBzdWJf c3VmZml4ZXMgPSByb290X2JhY2tlbmQuZ2V0X3N1Yl9zdWZmaXhlcygpCi0rICAgIGxvZy5pbmZv KGYiU3ViLXN1ZmZpeGVzIGZvdW5kOiB7W3MuZ2V0X2F0dHJfdmFsX3V0ZjgoJ25zc2xhcGQtc3Vm Zml4JykgZm9yIHMgaW4gc3ViX3N1ZmZpeGVzXX0iKQotKwotKyAgICAjIFN0ZXAgMzogVmVyaWZ5 IHN1Yi1zdWZmaXggaXMgaW4gdGhlIGxpc3QKLSsgICAgc3ViX3N1ZmZpeF9mb3VuZCA9IGFueSgK LSsgICAgICAgIHMuZ2V0X2F0dHJfdmFsX3V0ZjhfbCgnbnNzbGFwZC1zdWZmaXgnKSA9PSBzdWJz dWZmaXhfZG4ubG93ZXIoKQotKyAgICAgICAgZm9yIHMgaW4gc3ViX3N1ZmZpeGVzCi0rICAgICkK LSsKLSsgICAgYXNzZXJ0IHN1Yl9zdWZmaXhfZm91bmQsICgKLSsgICAgICAgIGYiU3ViLXN1ZmZp eCB7c3Vic3VmZml4X2RufSBzaG91bGQgYmUgdmlzaWJsZSBpbiBnZXRfc3ViX3N1ZmZpeGVzKCku ICIKLSsgICAgICAgICJUaGUgcGFyZW50LXN1ZmZpeCBwb2ludHMgdG8gYW4gZW50cnksIG5vdCBh IGJhY2tlbmQgc3VmZml4LiIKLSsgICAgKQotKwotKwotK2RlZiB0ZXN0X3N1YnN1ZmZpeF9pbl9i YWNrZW5kX2xpc3QodG9wbywgc2V0dXBfc3Vic3VmZml4X3dpdGhfZW50cnlfcGFyZW50KToKLSsg ICAgIiIiVGVzdCB0aGF0IHRoZSBzdWItc3VmZml4IGFwcGVhcnMgaW4gdGhlIGJhY2tlbmQgbGlz dC4KLSsKLSsgICAgOmlkOiAwY2NjNDlhZi05MWJiLTRlOGYtYjBlMS0xYmQwYjc1YzA0MWIKLSsg ICAgOnNldHVwOiBTdGFuZGFsb25lIGluc3RhbmNlIHdpdGggc3ViLXN1ZmZpeCBjb25maWd1cmF0 aW9uCi0rICAgIDpzdGVwczoKLSsgICAgICAgIDEuIEdldCBhbGwgYmFja2VuZHMKLSsgICAgICAg IDIuIFZlcmlmeSBib3RoIHJvb3Qgc3VmZml4IGFuZCBzdWItc3VmZml4IGFyZSBwcmVzZW50Ci0r ICAgIDpleHBlY3RlZHJlc3VsdHM6Ci0rICAgICAgICAxLiBTaG91bGQgcmV0cmlldmUgYWxsIGJh Y2tlbmRzCi0rICAgICAgICAyLiBCb3RoIHN1ZmZpeGVzIHNob3VsZCBiZSBsaXN0ZWQKLSsgICAg IiIiCi0rICAgIGJhY2tlbmRzID0gc2V0dXBfc3Vic3VmZml4X3dpdGhfZW50cnlfcGFyZW50Wydi YWNrZW5kcyddCi0rICAgIHN1YnN1ZmZpeF9kbiA9IHNldHVwX3N1YnN1ZmZpeF93aXRoX2VudHJ5 X3BhcmVudFsnc3Vic3VmZml4X2RuJ10KLSsKLSsgICAgYmVfbGlzdCA9IGJhY2tlbmRzLmxpc3Qo KQotKyAgICBzdWZmaXhlcyA9IFtiZS5nZXRfYXR0cl92YWxfdXRmOF9sKCduc3NsYXBkLXN1ZmZp eCcpIGZvciBiZSBpbiBiZV9saXN0XQotKwotKyAgICBhc3NlcnQgREVGQVVMVF9TVUZGSVgubG93 ZXIoKSBpbiBzdWZmaXhlcywgXAotKyAgICAgICAgZiJSb290IHN1ZmZpeCB7REVGQVVMVF9TVUZG SVh9IHNob3VsZCBiZSBpbiB0aGUgbGlzdCIKLSsgICAgYXNzZXJ0IHN1YnN1ZmZpeF9kbi5sb3dl cigpIGluIHN1ZmZpeGVzLCBcCi0rICAgICAgICBmIlN1Yi1zdWZmaXgge3N1YnN1ZmZpeF9kbn0g c2hvdWxkIGJlIGluIHRoZSBsaXN0IgotKwotKwotK2RlZiB0ZXN0X3N1YnN1ZmZpeF9kbl9ib3Vu ZGFyeV9tYXRjaGluZygpOgotKyAgICAiIiJUZXN0IHRoYXQgc3VmZml4IG1hdGNoaW5nIHJlc3Bl Y3RzIEROIGNvbXBvbmVudCBib3VuZGFyaWVzLgotKwotKyAgICA6aWQ6IDBiODU2ZTI2LWMzOTQt NGMzNi1iOWJhLWQ3ODk0YWEyZWQxMQotKyAgICA6c2V0dXA6IE5vbmUgKHVuaXQgdGVzdCkKLSsg ICAgOnN0ZXBzOgotKyAgICAgICAgMS4gVGVzdCBleGFjdCBzdWZmaXggbWF0Y2gKLSsgICAgICAg IDIuIFRlc3QgcHJvcGVyIEROIGFuY2VzdG9yIG1hdGNoIChlbmRzIHdpdGggLHN1ZmZpeCkKLSsg ICAgICAgIDMuIFRlc3QgdGhhdCBwYXJ0aWFsIHN0cmluZyBtYXRjaGVzIGFyZSByZWplY3RlZAot KyAgICA6ZXhwZWN0ZWRyZXN1bHRzOgotKyAgICAgICAgMS4gRXhhY3QgbWF0Y2ggc2hvdWxkIHJl dHVybiBUcnVlCi0rICAgICAgICAyLiBQcm9wZXIgYW5jZXN0b3Igc2hvdWxkIHJldHVybiBUcnVl Ci0rICAgICAgICAzLiBQYXJ0aWFsIHN0cmluZyBtYXRjaCBzaG91bGQgcmV0dXJuIEZhbHNlCi0r ICAgICIiIgotKyAgICBmcm9tIGxpYjM4OS5iYWNrZW5kIGltcG9ydCBpc19zdWJzdWZmaXhfb2YK LSsKLSsgICAgYWxsX3N1ZmZpeGVzID0geydkYz1jb20nLCAnZGM9ZXhhbXBsZSxkYz1jb20nLCAn b3U9ZGVwdCxkYz1leGFtcGxlLGRjPWNvbSd9Ci0rCi0rICAgICMgVGVzdCAxOiBFeGFjdCBtYXRj aAotKyAgICBhc3NlcnQgaXNfc3Vic3VmZml4X29mKCdkYz1leGFtcGxlLGRjPWNvbScsICdkYz1l eGFtcGxlLGRjPWNvbScsIGFsbF9zdWZmaXhlcyksIFwKLSsgICAgICAgICJFeGFjdCBtYXRjaCBz aG91bGQgcmV0dXJuIFRydWUiCi0rCi0rICAgICMgVGVzdCAyOiBQYXJlbnQgaXMgYW4gZW50cnkg dW5kZXIgdGhlIHN1ZmZpeCAobm90IGl0c2VsZiBhIHN1ZmZpeCkKLSsgICAgYXNzZXJ0IGlzX3N1 YnN1ZmZpeF9vZignb3U9cGVvcGxlLGRjPWV4YW1wbGUsZGM9Y29tJywgJ2RjPWV4YW1wbGUsZGM9 Y29tJywgYWxsX3N1ZmZpeGVzKSwgXAotKyAgICAgICAgIlBhcmVudCBlbnRyeSB1bmRlciBzdWZm aXggc2hvdWxkIHJldHVybiBUcnVlIgotKwotKyAgICAjIFRlc3QgMzogUGFyZW50IElTIGEgc3Vm Zml4IC0gc2hvdWxkIHJldHVybiBGYWxzZSAoaGFuZGxlZCBzZXBhcmF0ZWx5KQotKyAgICBhc3Nl cnQgbm90IGlzX3N1YnN1ZmZpeF9vZignb3U9ZGVwdCxkYz1leGFtcGxlLGRjPWNvbScsICdkYz1l eGFtcGxlLGRjPWNvbScsIGFsbF9zdWZmaXhlcyksIFwKLSsgICAgICAgICJQYXJlbnQgdGhhdCBp cyBpdHNlbGYgYSBzdWZmaXggc2hvdWxkIHJldHVybiBGYWxzZSIKLSsKLSsgICAgIyBUZXN0IDQ6 IEVkZ2UgY2FzZSAtIHdyb25nIEROIGJvdW5kYXJ5IChzdHJpbmcgZW5kcyB3aXRoIHN1ZmZpeCBi dXQgd3JvbmcgYm91bmRhcnkpCi0rICAgIGVkZ2Vfc3VmZml4ZXMgPSB7J2RjPWNvbScsICdzdCxk Yz1jb20nfQotKyAgICBhc3NlcnQgaXNfc3Vic3VmZml4X29mKCdkYz10ZXN0LGRjPWNvbScsICdk Yz1jb20nLCBlZGdlX3N1ZmZpeGVzKSwgXAotKyAgICAgICAgImRjPXRlc3QsZGM9Y29tIHNob3Vs ZCBtYXRjaCBkYz1jb20iCi0rICAgIGFzc2VydCBub3QgaXNfc3Vic3VmZml4X29mKCdkYz10ZXN0 LGRjPWNvbScsICdzdCxkYz1jb20nLCBlZGdlX3N1ZmZpeGVzKSwgXAotKyAgICAgICAgImRjPXRl c3QsZGM9Y29tIHNob3VsZCBOT1QgbWF0Y2ggc3QsZGM9Y29tICh3cm9uZyBETiBib3VuZGFyeSki Ci0rCi0rICAgICMgVGVzdCA1OiBOb25lIGlucHV0Ci0rICAgIGFzc2VydCBub3QgaXNfc3Vic3Vm Zml4X29mKE5vbmUsICdkYz1jb20nLCBhbGxfc3VmZml4ZXMpLCBcCi0rICAgICAgICAiTm9uZSBw YXJlbnQgc2hvdWxkIHJldHVybiBGYWxzZSIKLSsKLSsgICAgIyBUZXN0IDY6IENsb3Nlc3QgYW5j ZXN0b3IgLSBzaG91bGQgb25seSBtYXRjaCB0aGUgbmVhcmVzdCBzdWZmaXgKLSsgICAgIyBIaWVy YXJjaHk6IGRjPWNvbSAtPiBkYz1leGFtcGxlLGRjPWNvbSAtPiBvdT1icmFuY2gsZGM9ZXhhbXBs ZSxkYz1jb20gKHN1ZmZpeCkKLSsgICAgIyAgICAgICAgICAgIC0+IG91PWRlcHQsb3U9YnJhbmNo LGRjPWV4YW1wbGUsZGM9Y29tIChlbnRyeSkgLT4gc3Vic3VmZml4Ci0rICAgICMgVGhlIHN1YnN1 ZmZpeCBzaG91bGQgb25seSBhcHBlYXIgdW5kZXIgb3U9YnJhbmNoLCBub3QgdW5kZXIgZGM9ZXhh bXBsZSxkYz1jb20KLSsgICAgbmVzdGVkX3N1ZmZpeGVzID0geydkYz1jb20nLCAnZGM9ZXhhbXBs ZSxkYz1jb20nLCAnb3U9YnJhbmNoLGRjPWV4YW1wbGUsZGM9Y29tJ30KLSsgICAgZW50cnlfcGFy ZW50ID0gJ291PWRlcHQsb3U9YnJhbmNoLGRjPWV4YW1wbGUsZGM9Y29tJwotKyAgICAjIFNob3Vs ZCBtYXRjaCBvdT1icmFuY2ggKGNsb3Nlc3QpCi0rICAgIGFzc2VydCBpc19zdWJzdWZmaXhfb2Yo ZW50cnlfcGFyZW50LCAnb3U9YnJhbmNoLGRjPWV4YW1wbGUsZGM9Y29tJywgbmVzdGVkX3N1ZmZp eGVzKSwgXAotKyAgICAgICAgIlNob3VsZCBtYXRjaCBjbG9zZXN0IGFuY2VzdG9yIHN1ZmZpeCAo b3U9YnJhbmNoKSIKLSsgICAgIyBTaG91bGQgTk9UIG1hdGNoIGRjPWV4YW1wbGUsZGM9Y29tIChu b3QgY2xvc2VzdCkKLSsgICAgYXNzZXJ0IG5vdCBpc19zdWJzdWZmaXhfb2YoZW50cnlfcGFyZW50 LCAnZGM9ZXhhbXBsZSxkYz1jb20nLCBuZXN0ZWRfc3VmZml4ZXMpLCBcCi0rICAgICAgICAiU2hv dWxkIE5PVCBtYXRjaCBkaXN0YW50IGFuY2VzdG9yIChkYz1leGFtcGxlKSAtIG91PWJyYW5jaCBp cyBjbG9zZXIiCi0rICAgICMgU2hvdWxkIE5PVCBtYXRjaCBkYz1jb20gKG5vdCBjbG9zZXN0KQot KyAgICBhc3NlcnQgbm90IGlzX3N1YnN1ZmZpeF9vZihlbnRyeV9wYXJlbnQsICdkYz1jb20nLCBu ZXN0ZWRfc3VmZml4ZXMpLCBcCi0rICAgICAgICAiU2hvdWxkIE5PVCBtYXRjaCBkaXN0YW50IGFu Y2VzdG9yIChkYz1jb20pIC0gb3U9YnJhbmNoIGlzIGNsb3NlciIKLSsKLSsgICAgbG9nLmluZm8o IkFsbCBETiBib3VuZGFyeSBlZGdlIGNhc2VzIHBhc3NlZCIpCi0rCi0rCi0rZGVmIHRlc3RfZGVl cF9zdWZmaXhfaGllcmFyY2h5KHRvcG8sIHJlcXVlc3QpOgotKyAgICAiIiJUZXN0IGNvbXBsZXgg aGllcmFyY2h5OiBzdWZmaXggLT4gc3VmZml4IC0+IGVudHJ5IC0+IHN1ZmZpeCAtPiBzdWZmaXgu Ci0rCi0rICAgIDppZDogZmQwNjQ5MWEtZGVmYS00NzgwLTg0NzItNzhjMDc3ZmViZGZiCi0rICAg IDpzZXR1cDogU3RhbmRhbG9uZSBpbnN0YW5jZQotKyAgICA6c3RlcHM6Ci0rICAgICAgICAxLiBD cmVhdGUgc3ViLXN1ZmZpeCBvdT1icmFuY2ggKHBhcmVudD1kYz1leGFtcGxlLGRjPWNvbSAtIGEg c3VmZml4KQotKyAgICAgICAgMi4gQ3JlYXRlIGVudHJ5IG91PWRlcHQsb3U9YnJhbmNoIChub3Qg YSBzdWZmaXgpCi0rICAgICAgICAzLiBDcmVhdGUgc3ViLXN1ZmZpeCBvdT10ZWFtLG91PWRlcHQs b3U9YnJhbmNoIChwYXJlbnQ9b3U9ZGVwdCAtIGFuIGVudHJ5KQotKyAgICAgICAgNC4gQ3JlYXRl IHN1Yi1zdWZmaXggb3U9c3ViLG91PXRlYW0sb3U9ZGVwdCxvdT1icmFuY2ggKHBhcmVudD1vdT10 ZWFtIC0gYSBzdWZmaXgpCi0rICAgICAgICA1LiBWZXJpZnkgYWxsIHN1Yi1zdWZmaXhlcyBhcmUg Y29ycmVjdGx5IHBsYWNlZCBpbiB0aGUgdHJlZQotKyAgICA6ZXhwZWN0ZWRyZXN1bHRzOgotKyAg ICAgICAgMS4gU3ViLXN1ZmZpeCBjcmVhdGVkIHN1Y2Nlc3NmdWxseQotKyAgICAgICAgMi4gRW50 cnkgY3JlYXRlZCBzdWNjZXNzZnVsbHkKLSsgICAgICAgIDMuIFN1Yi1zdWZmaXggd2l0aCBlbnRy eSBwYXJlbnQgY3JlYXRlZCBzdWNjZXNzZnVsbHkKLSsgICAgICAgIDQuIFN1Yi1zdWZmaXggd2l0 aCBzdWZmaXggcGFyZW50IGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5Ci0rICAgICAgICA1LiBUcmVlIGhp ZXJhcmNoeSBpcyBjb3JyZWN0Ci0rICAgICIiIgotKyAgICBpbnN0ID0gdG9wby5zdGFuZGFsb25l Ci0rICAgIGJhY2tlbmRzID0gQmFja2VuZHMoaW5zdCkKLSsKLSsgICAgIyBEZWZpbmUgdGhlIGhp ZXJhcmNoeQotKyAgICBicmFuY2hfc3VmZml4ID0gZidvdT1icmFuY2gse0RFRkFVTFRfU1VGRklY fScKLSsgICAgZGVwdF9lbnRyeSA9IGYnb3U9ZGVwdCx7YnJhbmNoX3N1ZmZpeH0nICAjIFRoaXMg aXMgYW4gRU5UUlksIG5vdCBhIHN1ZmZpeAotKyAgICB0ZWFtX3N1ZmZpeCA9IGYnb3U9dGVhbSx7 ZGVwdF9lbnRyeX0nCi0rICAgIHN1Yl9zdWZmaXggPSBmJ291PXN1Yix7dGVhbV9zdWZmaXh9Jwot KwotKyAgICBjcmVhdGVkX2JhY2tlbmRzID0gW10KLSsgICAgY3JlYXRlZF9lbnRyaWVzID0gW10K LSsKLSsgICAgZGVmIGNsZWFudXAoKToKLSsgICAgICAgIGxvZy5pbmZvKCJDbGVhbmluZyB1cCBk ZWVwIGhpZXJhcmNoeSB0ZXN0IikKLSsgICAgICAgIGZvciBlbnRyeSBpbiByZXZlcnNlZChjcmVh dGVkX2VudHJpZXMpOgotKyAgICAgICAgICAgIHRyeToKLSsgICAgICAgICAgICAgICAgZW50cnku ZGVsZXRlKCkKLSsgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0rICAgICAgICAg ICAgICAgIGxvZy53YXJuaW5nKGYiRmFpbGVkIHRvIGRlbGV0ZSBlbnRyeToge2V9IikKLSsgICAg ICAgIGZvciBiZSBpbiByZXZlcnNlZChjcmVhdGVkX2JhY2tlbmRzKToKLSsgICAgICAgICAgICB0 cnk6Ci0rICAgICAgICAgICAgICAgIGJlLmRlbGV0ZSgpCi0rICAgICAgICAgICAgZXhjZXB0IEV4 Y2VwdGlvbiBhcyBlOgotKyAgICAgICAgICAgICAgICBsb2cud2FybmluZyhmIkZhaWxlZCB0byBk ZWxldGUgYmFja2VuZDoge2V9IikKLSsKLSsgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoY2xlYW51 cCkKLSsKLSsgICAgIyBTdGVwIDE6IENyZWF0ZSBvdT1icmFuY2ggc3ViLXN1ZmZpeCAocGFyZW50 IGlzIHJvb3Qgc3VmZml4KQotKyAgICBsb2cuaW5mbyhmIkNyZWF0aW5nIHN1Yi1zdWZmaXgge2Jy YW5jaF9zdWZmaXh9IikKLSsgICAgYnJhbmNoX2JlID0gYmFja2VuZHMuY3JlYXRlKHByb3BlcnRp ZXM9ewotKyAgICAgICAgJ2NuJzogJ2JyYW5jaCcsCi0rICAgICAgICAnbnNzbGFwZC1zdWZmaXgn OiBicmFuY2hfc3VmZml4LAotKyAgICAgICAgJ3BhcmVudCc6IERFRkFVTFRfU1VGRklYLAotKyAg ICB9KQotKyAgICBjcmVhdGVkX2JhY2tlbmRzLmFwcGVuZChicmFuY2hfYmUpCi0rICAgIGJyYW5j aF9vdXMgPSBPcmdhbml6YXRpb25hbFVuaXRzKGluc3QsIERFRkFVTFRfU1VGRklYKQotKyAgICBi cmFuY2hfb3UgPSBicmFuY2hfb3VzLmNyZWF0ZShwcm9wZXJ0aWVzPXsnb3UnOiAnYnJhbmNoJ30p Ci0rICAgIGNyZWF0ZWRfZW50cmllcy5hcHBlbmQoYnJhbmNoX291KQotKwotKyAgICAjIFN0ZXAg MjogQ3JlYXRlIG91PWRlcHQgZW50cnkgdW5kZXIgYnJhbmNoIChOT1QgYSBzdWZmaXgpCi0rICAg IGxvZy5pbmZvKGYiQ3JlYXRpbmcgZW50cnkge2RlcHRfZW50cnl9IikKLSsgICAgZGVwdF9vdXMg PSBPcmdhbml6YXRpb25hbFVuaXRzKGluc3QsIGJyYW5jaF9zdWZmaXgpCi0rICAgIGRlcHRfb3Ug PSBkZXB0X291cy5jcmVhdGUocHJvcGVydGllcz17J291JzogJ2RlcHQnfSkKLSsgICAgY3JlYXRl ZF9lbnRyaWVzLmFwcGVuZChkZXB0X291KQotKwotKyAgICAjIFN0ZXAgMzogQ3JlYXRlIG91PXRl YW0gc3ViLXN1ZmZpeCAocGFyZW50IGlzIGRlcHQgRU5UUlksIG5vdCBhIHN1ZmZpeCkKLSsgICAg bG9nLmluZm8oZiJDcmVhdGluZyBzdWItc3VmZml4IHt0ZWFtX3N1ZmZpeH0gd2l0aCBlbnRyeSBw YXJlbnQge2RlcHRfZW50cnl9IikKLSsgICAgdGVhbV9iZSA9IGJhY2tlbmRzLmNyZWF0ZShwcm9w ZXJ0aWVzPXsKLSsgICAgICAgICdjbic6ICd0ZWFtJywKLSsgICAgICAgICduc3NsYXBkLXN1ZmZp eCc6IHRlYW1fc3VmZml4LAotKyAgICAgICAgJ3BhcmVudCc6IGRlcHRfZW50cnksICAjIFBhcmVu dCBpcyBhbiBFTlRSWSEKLSsgICAgfSkKLSsgICAgY3JlYXRlZF9iYWNrZW5kcy5hcHBlbmQodGVh bV9iZSkKLSsgICAgdGVhbV9vdXMgPSBPcmdhbml6YXRpb25hbFVuaXRzKGluc3QsIGRlcHRfZW50 cnkpCi0rICAgIHRlYW1fb3UgPSB0ZWFtX291cy5jcmVhdGUocHJvcGVydGllcz17J291JzogJ3Rl YW0nfSkKLSsgICAgY3JlYXRlZF9lbnRyaWVzLmFwcGVuZCh0ZWFtX291KQotKwotKyAgICAjIFN0 ZXAgNDogQ3JlYXRlIG91PXN1YiBzdWItc3VmZml4IChwYXJlbnQgaXMgdGVhbSBzdWZmaXgpCi0r ICAgIGxvZy5pbmZvKGYiQ3JlYXRpbmcgc3ViLXN1ZmZpeCB7c3ViX3N1ZmZpeH0gd2l0aCBzdWZm aXggcGFyZW50IHt0ZWFtX3N1ZmZpeH0iKQotKyAgICBzdWJfYmUgPSBiYWNrZW5kcy5jcmVhdGUo cHJvcGVydGllcz17Ci0rICAgICAgICAnY24nOiAnc3ViJywKLSsgICAgICAgICduc3NsYXBkLXN1 ZmZpeCc6IHN1Yl9zdWZmaXgsCi0rICAgICAgICAncGFyZW50JzogdGVhbV9zdWZmaXgsICAjIFBh cmVudCBpcyBhIFNVRkZJWAotKyAgICB9KQotKyAgICBjcmVhdGVkX2JhY2tlbmRzLmFwcGVuZChz dWJfYmUpCi0rICAgIHN1Yl9vdXMgPSBPcmdhbml6YXRpb25hbFVuaXRzKGluc3QsIHRlYW1fc3Vm Zml4KQotKyAgICBzdWJfb3UgPSBzdWJfb3VzLmNyZWF0ZShwcm9wZXJ0aWVzPXsnb3UnOiAnc3Vi J30pCi0rICAgIGNyZWF0ZWRfZW50cmllcy5hcHBlbmQoc3ViX291KQotKwotKyAgICAjIFN0ZXAg NTogVmVyaWZ5IHRoZSB0cmVlIGhpZXJhcmNoeQotKyAgICBsb2cuaW5mbygiVmVyaWZ5aW5nIHRy ZWUgaGllcmFyY2h5Li4uIikKLSsKLSsgICAgIyBSb290IHNob3VsZCBoYXZlIGJyYW5jaCBhcyBz dWItc3VmZml4Ci0rICAgIHJvb3RfYmUgPSBiYWNrZW5kcy5nZXQoREVGQVVMVF9TVUZGSVgpCi0r ICAgIHJvb3Rfc3VicyA9IHJvb3RfYmUuZ2V0X3N1Yl9zdWZmaXhlcygpCi0rICAgIHJvb3Rfc3Vi X3N1ZmZpeGVzID0gW3MuZ2V0X2F0dHJfdmFsX3V0ZjhfbCgnbnNzbGFwZC1zdWZmaXgnKSBmb3Ig cyBpbiByb290X3N1YnNdCi0rICAgIGxvZy5pbmZvKGYiUm9vdCBzdWItc3VmZml4ZXM6IHtyb290 X3N1Yl9zdWZmaXhlc30iKQotKyAgICBhc3NlcnQgYnJhbmNoX3N1ZmZpeC5sb3dlcigpIGluIHJv b3Rfc3ViX3N1ZmZpeGVzLCBcCi0rICAgICAgICBmImJyYW5jaCBzaG91bGQgYmUgdW5kZXIgcm9v dCBzdWZmaXgiCi0rCi0rICAgICMgQnJhbmNoIHNob3VsZCBoYXZlIHRlYW0gYXMgc3ViLXN1ZmZp eCAoZXZlbiB0aG91Z2ggdGVhbSdzIHBhcmVudCBpcyBhbiBlbnRyeSkKLSsgICAgYnJhbmNoX2Jl X29iaiA9IGJhY2tlbmRzLmdldChicmFuY2hfc3VmZml4KQotKyAgICBicmFuY2hfc3VicyA9IGJy YW5jaF9iZV9vYmouZ2V0X3N1Yl9zdWZmaXhlcygpCi0rICAgIGJyYW5jaF9zdWJfc3VmZml4ZXMg PSBbcy5nZXRfYXR0cl92YWxfdXRmOF9sKCduc3NsYXBkLXN1ZmZpeCcpIGZvciBzIGluIGJyYW5j aF9zdWJzXQotKyAgICBsb2cuaW5mbyhmIkJyYW5jaCBzdWItc3VmZml4ZXM6IHticmFuY2hfc3Vi X3N1ZmZpeGVzfSIpCi0rICAgIGFzc2VydCB0ZWFtX3N1ZmZpeC5sb3dlcigpIGluIGJyYW5jaF9z dWJfc3VmZml4ZXMsIFwKLSsgICAgICAgIGYidGVhbSBzaG91bGQgYmUgdW5kZXIgYnJhbmNoIHN1 ZmZpeCAocGFyZW50IGlzIGVudHJ5IHVuZGVyIGJyYW5jaCkiCi0rCi0rICAgICMgVGVhbSBzaG91 bGQgaGF2ZSBzdWIgYXMgc3ViLXN1ZmZpeAotKyAgICB0ZWFtX2JlX29iaiA9IGJhY2tlbmRzLmdl dCh0ZWFtX3N1ZmZpeCkKLSsgICAgdGVhbV9zdWJzID0gdGVhbV9iZV9vYmouZ2V0X3N1Yl9zdWZm aXhlcygpCi0rICAgIHRlYW1fc3ViX3N1ZmZpeGVzID0gW3MuZ2V0X2F0dHJfdmFsX3V0ZjhfbCgn bnNzbGFwZC1zdWZmaXgnKSBmb3IgcyBpbiB0ZWFtX3N1YnNdCi0rICAgIGxvZy5pbmZvKGYiVGVh bSBzdWItc3VmZml4ZXM6IHt0ZWFtX3N1Yl9zdWZmaXhlc30iKQotKyAgICBhc3NlcnQgc3ViX3N1 ZmZpeC5sb3dlcigpIGluIHRlYW1fc3ViX3N1ZmZpeGVzLCBcCi0rICAgICAgICBmInN1YiBzaG91 bGQgYmUgdW5kZXIgdGVhbSBzdWZmaXgiCi0rCi0rICAgIGxvZy5pbmZvKCJEZWVwIGhpZXJhcmNo eSB0ZXN0IHBhc3NlZCEiKQotKwotKwotK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0rICAg IENVUlJFTlRfRklMRSA9IG9zLnBhdGgucmVhbHBhdGgoX19maWxlX18pCi0rICAgIHB5dGVzdC5t YWluKFsiLXMiLCBDVVJSRU5UX0ZJTEVdKQotZGlmZiAtLWdpdCBhL3NyYy9saWIzODkvbGliMzg5 L2JhY2tlbmQucHkgYi9zcmMvbGliMzg5L2xpYjM4OS9iYWNrZW5kLnB5Ci1pbmRleCBkYjQ2NGI0 M2EuLjI3NGQ0NWFiZSAxMDA2NDQKLS0tLSBhL3NyYy9saWIzODkvbGliMzg5L2JhY2tlbmQucHkK LSsrKyBiL3NyYy9saWIzODkvbGliMzg5L2JhY2tlbmQucHkKLUBAIC0zOCw2ICszOCwzNiBAQCBm cm9tIGxpYjM4OS5saW50IGltcG9ydCBEU0JMRTAwMDEsIERTQkxFMDAwMiwgRFNCTEUwMDAzLCBE U0JMRTAwMDQsIERTQkxFMDAwNSwgRAotIGZyb20gbGliMzg5LnBsdWdpbnMgaW1wb3J0IFVTTlBs dWdpbgotIAotIAotK2RlZiBpc19zdWJzdWZmaXhfb2Yoc3ViX3BhcmVudCwgYmVfc3VmZml4LCBh bGxfc3VmZml4ZXMpOgotKyAgICAiIiJDaGVjayBpZiBzdWJfcGFyZW50IGluZGljYXRlcyB0aGlz IGlzIGEgc3ViLXN1ZmZpeCBvZiBiZV9zdWZmaXguCi0rCi0rICAgIFJldHVybnMgVHJ1ZSBvbmx5 IGlmIGJlX3N1ZmZpeCBpcyB0aGUgQ0xPU0VTVCBhbmNlc3RvciBzdWZmaXggb2Ygc3ViX3BhcmVu dC4KLSsgICAgVGhpcyBwcmV2ZW50cyBhIHN1Yi1zdWZmaXggZnJvbSBhcHBlYXJpbmcgdW5kZXIg bXVsdGlwbGUgYW5jZXN0b3JzLgotKwotKyAgICA6cGFyYW0gc3ViX3BhcmVudDogVGhlIG5zc2xh cGQtcGFyZW50LXN1ZmZpeCB2YWx1ZSAobG93ZXJjYXNlKQotKyAgICA6cGFyYW0gYmVfc3VmZml4 OiBUaGUgc3VmZml4IHRvIGNoZWNrIGFnYWluc3QgKGxvd2VyY2FzZSkKLSsgICAgOnBhcmFtIGFs bF9zdWZmaXhlczogU2V0IG9mIGFsbCBiYWNrZW5kIHN1ZmZpeGVzIChsb3dlcmNhc2UpCi0rICAg IDpyZXR1cm5zOiBUcnVlIGlmIGJlX3N1ZmZpeCBpcyB0aGUgY2xvc2VzdCBhbmNlc3RvciBzdWZm aXgKLSsgICAgIiIiCi0rICAgIGlmIG5vdCBzdWJfcGFyZW50OgotKyAgICAgICAgcmV0dXJuIEZh bHNlCi0rICAgIGlmIHN1Yl9wYXJlbnQgPT0gYmVfc3VmZml4OgotKyAgICAgICAgcmV0dXJuIFRy dWUKLSsgICAgaWYgc3ViX3BhcmVudCBpbiBhbGxfc3VmZml4ZXM6Ci0rICAgICAgICAjIHN1Yl9w YXJlbnQgaXMgaXRzZWxmIGEgc3VmZml4LCB3aWxsIGJlIGhhbmRsZWQgc2VwYXJhdGVseQotKyAg ICAgICAgcmV0dXJuIEZhbHNlCi0rICAgIGlmIG5vdCBzdWJfcGFyZW50LmVuZHN3aXRoKCcsJyAr IGJlX3N1ZmZpeCk6Ci0rICAgICAgICByZXR1cm4gRmFsc2UKLSsgICAgIyBGaW5kIHRoZSBjbG9z ZXN0IChsb25nZXN0KSBtYXRjaGluZyBzdWZmaXggZm9yIHRoaXMgcGFyZW50Ci0rICAgIGJlc3Rf bWF0Y2ggPSBOb25lCi0rICAgIGZvciBzZnggaW4gYWxsX3N1ZmZpeGVzOgotKyAgICAgICAgaWYg c3ViX3BhcmVudCA9PSBzZnggb3Igc3ViX3BhcmVudC5lbmRzd2l0aCgnLCcgKyBzZngpOgotKyAg ICAgICAgICAgIGlmIGJlc3RfbWF0Y2ggaXMgTm9uZSBvciBsZW4oc2Z4KSA+IGxlbihiZXN0X21h dGNoKToKLSsgICAgICAgICAgICAgICAgYmVzdF9tYXRjaCA9IHNmeAotKyAgICAjIE9ubHkgcmV0 dXJuIFRydWUgaWYgYmVfc3VmZml4IGlzIHRoZSBjbG9zZXN0IG1hdGNoCi0rICAgIHJldHVybiBi ZXN0X21hdGNoID09IGJlX3N1ZmZpeAotKwotKwotIGNsYXNzIEJhY2tlbmRMZWdhY3kob2JqZWN0 KToKLSAgICAgcHJveGllZF9tZXRob2RzID0gJ3NlYXJjaF9zIGdldEVudHJ5Jy5zcGxpdCgpCi0g Ci1AQCAtMTEwNCwyMiArMTEzNCwyNyBAQCBjbGFzcyBCYWNrZW5kKERTTGRhcE9iamVjdCk6Ci0g ICAgICAgICB2bHYuY3JlYXRlKHJkbj0iY249IiArIHZsdm5hbWUsIHByb3BlcnRpZXM9cHJvcHMs IGJhc2Vkbj1iYXNlZG4pCi0gCi0gICAgIGRlZiBnZXRfc3ViX3N1ZmZpeGVzKHNlbGYpOgotLSAg ICAgICAgIiIiUmV0dXJuIGEgbGlzdCBvZiBCYWNrZW5kJ3MKLS0gICAgICAgIHJldHVybnM6IGEg TGlzdCBvZiBzdWJzdWZmaXggZW50cmllcwotKyAgICAgICAgIiIiUmV0dXJuIGEgbGlzdCBvZiBC YWNrZW5kJ3MgdGhhdCBhcmUgc3ViLXN1ZmZpeGVzIG9mIHRoaXMgYmFja2VuZC4KLSsgICAgICAg IDpyZXR1cm5zOiBBIGxpc3Qgb2YgQmFja2VuZCBpbnN0YW5jZXMgdGhhdCBhcmUgc3ViLXN1ZmZp eGVzCi0gICAgICAgICAiIiIKLSAgICAgICAgIHN1YnN1ZmZpeGVzID0gW10KLSAgICAgICAgIHRv cF9iZV9zdWZmaXggPSBzZWxmLmdldF9hdHRyX3ZhbF91dGY4X2woJ25zc2xhcGQtc3VmZml4JykK LSsgICAgICAgIGlmIG5vdCB0b3BfYmVfc3VmZml4OgotKyAgICAgICAgICAgIHJldHVybiBzdWJz dWZmaXhlcwotKwotICAgICAgICAgbXRzID0gc2VsZi5fbXRzLmxpc3QoKQotKyAgICAgICAgYmVf aW5zdHMgPSBCYWNrZW5kcyhzZWxmLl9pbnN0YW5jZSkubGlzdCgpCi0rICAgICAgICBhbGxfc3Vm Zml4ZXMgPSB7YmUuZ2V0X2F0dHJfdmFsX3V0ZjhfbCgnbnNzbGFwZC1zdWZmaXgnKSBmb3IgYmUg aW4gYmVfaW5zdHN9Ci0rCi0gICAgICAgICBmb3IgbXQgaW4gbXRzOgotICAgICAgICAgICAgIHBh cmVudF9zdWZmaXggPSBtdC5nZXRfYXR0cl92YWxfdXRmOF9sKCduc3NsYXBkLXBhcmVudC1zdWZm aXgnKQotICAgICAgICAgICAgIGlmIHBhcmVudF9zdWZmaXggaXMgTm9uZToKLSAgICAgICAgICAg ICAgICAgY29udGludWUKLS0gICAgICAgICAgICBpZiBwYXJlbnRfc3VmZml4ID09IHRvcF9iZV9z dWZmaXg6Ci0rCi0rICAgICAgICAgICAgaWYgaXNfc3Vic3VmZml4X29mKHBhcmVudF9zdWZmaXgs IHRvcF9iZV9zdWZmaXgsIGFsbF9zdWZmaXhlcyk6Ci0gICAgICAgICAgICAgICAgIGNoaWxkX3N1 ZmZpeCA9IG10LmdldF9hdHRyX3ZhbF91dGY4X2woJ2NuJykKLS0gICAgICAgICAgICAgICAgYmVf aW5zdHMgPSBCYWNrZW5kcyhzZWxmLl9pbnN0YW5jZSkubGlzdCgpCi0gICAgICAgICAgICAgICAg IGZvciBiZSBpbiBiZV9pbnN0czoKLS0gICAgICAgICAgICAgICAgICAgIGJlX3N1ZmZpeCA9IGJl LmdldF9hdHRyX3ZhbF91dGY4X2woJ25zc2xhcGQtc3VmZml4JykKLS0gICAgICAgICAgICAgICAg ICAgIGlmIGNoaWxkX3N1ZmZpeCA9PSBiZV9zdWZmaXg6Ci0rICAgICAgICAgICAgICAgICAgICBp ZiBjaGlsZF9zdWZmaXggPT0gYmUuZ2V0X2F0dHJfdmFsX3V0ZjhfbCgnbnNzbGFwZC1zdWZmaXgn KToKLSAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzdWZmaXhlcy5hcHBlbmQoYmUpCi0gICAg ICAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgIHJldHVybiBzdWJzdWZmaXhlcwot ZGlmZiAtLWdpdCBhL3NyYy9saWIzODkvbGliMzg5L2NsaV9jb25mL2JhY2tlbmQucHkgYi9zcmMv bGliMzg5L2xpYjM4OS9jbGlfY29uZi9iYWNrZW5kLnB5Ci1pbmRleCBkMGVjNGJkOWUuLjk3NzJl MzlkNCAxMDA2NDQKLS0tLSBhL3NyYy9saWIzODkvbGliMzg5L2NsaV9jb25mL2JhY2tlbmQucHkK LSsrKyBiL3NyYy9saWIzODkvbGliMzg5L2NsaV9jb25mL2JhY2tlbmQucHkKLUBAIC03LDcgKzcs NyBAQAotICMgU2VlIExJQ0VOU0UgZm9yIGRldGFpbHMuCi0gIyAtLS0gRU5EIENPUFlSSUdIVCBC TE9DSyAtLS0KLSAKLS1mcm9tIGxpYjM4OS5iYWNrZW5kIGltcG9ydCBCYWNrZW5kLCBCYWNrZW5k cywgRGF0YWJhc2VDb25maWcsIEJhY2tlbmRTdWZmaXhWaWV3Ci0rZnJvbSBsaWIzODkuYmFja2Vu ZCBpbXBvcnQgQmFja2VuZCwgQmFja2VuZHMsIERhdGFiYXNlQ29uZmlnLCBCYWNrZW5kU3VmZml4 VmlldywgaXNfc3Vic3VmZml4X29mCi0gZnJvbSBsaWIzODkuY29uZmlndXJhdGlvbnMuc2FtcGxl IGltcG9ydCAoCi0gICAgIGNyZWF0ZV9iYXNlX2RvbWFpbiwKLSAgICAgY3JlYXRlX2Jhc2Vfb3Jn LAotQEAgLTMzOCw2ICszMzgsNyBAQCBkZWYgaXNfZGJfcmVwbGljYXRlZChpbnN0LCBzdWZmaXgp OgotIGRlZiBiYWNrZW5kX2dldF9zdWJzdWZmaXhlcyhpbnN0LCBiYXNlZG4sIGxvZywgYXJncyk6 Ci0gICAgIHN1YnN1ZmZpeGVzID0gW10KLSAgICAgYmVfaW5zdHMgPSBNQU5ZKGluc3QpLmxpc3Qo KQotKyAgICBhbGxfc3VmZml4ZXMgPSB7YmUuZ2V0X2F0dHJfdmFsX3V0ZjhfbCgnbnNzbGFwZC1z dWZmaXgnKSBmb3IgYmUgaW4gYmVfaW5zdHN9Ci0gICAgIGZvciBiZSBpbiBiZV9pbnN0czoKLSAg ICAgICAgIGJlX3N1ZmZpeCA9IGJlLmdldF9hdHRyX3ZhbF91dGY4X2woJ25zc2xhcGQtc3VmZml4 JykKLSAgICAgICAgIGlmIGJlX3N1ZmZpeCA9PSBhcmdzLmJlX25hbWUubG93ZXIoKToKLUBAIC0z NDcsNyArMzQ4LDcgQEAgZGVmIGJhY2tlbmRfZ2V0X3N1YnN1ZmZpeGVzKGluc3QsIGJhc2Vkbiwg bG9nLCBhcmdzKToKLSAgICAgICAgICAgICAgICAgZGJfdHlwZSA9ICJzdWZmaXgiCi0gICAgICAg ICAgICAgICAgIHN1YiA9IG10LmdldF9hdHRyX3ZhbF91dGY4X2woJ25zc2xhcGQtcGFyZW50LXN1 ZmZpeCcpCi0gICAgICAgICAgICAgICAgIHN1Yl9iZSA9IG10LmdldF9hdHRyX3ZhbF91dGY4X2wo J25zc2xhcGQtYmFja2VuZCcpCi0tICAgICAgICAgICAgICAgIGlmIHN1YiA9PSBiZV9zdWZmaXg6 Ci0rICAgICAgICAgICAgICAgIGlmIGlzX3N1YnN1ZmZpeF9vZihzdWIsIGJlX3N1ZmZpeCwgYWxs X3N1ZmZpeGVzKToKLSAgICAgICAgICAgICAgICAgICAgICMgV2UgaGF2ZSBhIHN1YnN1ZmZpeCAo bWF5YmUgYSBkYiBsaW5rPykKLSAgICAgICAgICAgICAgICAgICAgIGlmIGlzX2RiX2xpbmsoaW5z dCwgc3ViX2JlKToKLSAgICAgICAgICAgICAgICAgICAgICAgICBkYl90eXBlID0gImxpbmsiCi1A QCAtMzk5LDM4ICs0MDAsMzQgQEAgZGVmIGJ1aWxkX25vZGUoc3VmZml4LCBiZV9uYW1lLCBzdWJz dWY9RmFsc2UsIGxpbms9RmFsc2UsIHJlcGxpY2F0ZWQ9RmFsc2UpOgotICAgICB9Ci0gCi0gCi0t ZGVmIGJhY2tlbmRfYnVpbGRfdHJlZShpbnN0LCBiZV9pbnN0cywgbm9kZXMpOgotLSAgICAiIiJS ZWN1cnNpdmVseSBidWlsZCB0aGUgdHJlZQotLSAgICAiIiIKLS0gICAgaWYgbGVuKG5vZGVzKSA9 PSAwOgotLSAgICAgICAgIyBEb25lCi0rZGVmIGJhY2tlbmRfYnVpbGRfdHJlZShpbnN0LCBiZV9p bnN0cywgbm9kZXMsIGFsbF9zdWZmaXhlcyk6Ci0rICAgICIiIlJlY3Vyc2l2ZWx5IGJ1aWxkIHRo ZSB0cmVlLiIiIgotKyAgICBpZiBub3Qgbm9kZXM6Ci0gICAgICAgICByZXR1cm4KLSAKLSAgICAg Zm9yIG5vZGUgaW4gbm9kZXM6Ci0tICAgICAgICBub2RlX3N1ZmZpeCA9IG5vZGVbJ2lkJ10KLSsg ICAgICAgIG5vZGVfc3VmZml4ID0gbm9kZVsnaWQnXS5sb3dlcigpCi0gICAgICAgICAjIEdldCBz dWIgc3VmZml4ZXMgYW5kIGNoYWluaW5nIG9mIG5vZGUKLSAgICAgICAgIGZvciBiZSBpbiBiZV9p bnN0czoKLSAgICAgICAgICAgICBiZV9zdWZmaXggPSBiZS5nZXRfYXR0cl92YWxfdXRmOF9sKCdu c3NsYXBkLXN1ZmZpeCcpCi0tICAgICAgICAgICAgaWYgYmVfc3VmZml4ID09IG5vZGVfc3VmZml4 Lmxvd2VyKCk6Ci0rICAgICAgICAgICAgaWYgYmVfc3VmZml4ID09IG5vZGVfc3VmZml4OgotICAg ICAgICAgICAgICAgICAjIFdlIGhhdmUgb3VyIHBhcmVudCwgbm93IGZpbmQgdGhlIGNoaWxkcmVu Ci0gICAgICAgICAgICAgICAgIG10cyA9IGJlLl9tdHMubGlzdCgpCi0tCi0gICAgICAgICAgICAg ICAgIGZvciBtdCBpbiBtdHM6Ci0gICAgICAgICAgICAgICAgICAgICBzdWJfcGFyZW50ID0gbXQu Z2V0X2F0dHJfdmFsX3V0ZjhfbCgnbnNzbGFwZC1wYXJlbnQtc3VmZml4JykKLSAgICAgICAgICAg ICAgICAgICAgIHN1Yl9iZSA9IG10LmdldF9hdHRyX3ZhbF91dGY4X2woJ25zc2xhcGQtYmFja2Vu ZCcpCi0gICAgICAgICAgICAgICAgICAgICBzdWJfc3VmZml4ID0gbXQuZ2V0X2F0dHJfdmFsX3V0 ZjhfbCgnY24nKQotLSAgICAgICAgICAgICAgICAgICAgaWYgc3ViX3BhcmVudCA9PSBiZV9zdWZm aXg6Ci0rICAgICAgICAgICAgICAgICAgICBpZiBpc19zdWJzdWZmaXhfb2Yoc3ViX3BhcmVudCwg YmVfc3VmZml4LCBhbGxfc3VmZml4ZXMpOgotICAgICAgICAgICAgICAgICAgICAgICAgICMgV2Ug aGF2ZSBhIHN1YnN1ZmZpeCAobWF5YmUgYSBkYiBsaW5rPykKLSAgICAgICAgICAgICAgICAgICAg ICAgICBsaW5rID0gaXNfZGJfbGluayhpbnN0LCBzdWJfYmUpCi0gICAgICAgICAgICAgICAgICAg ICAgICAgcmVwbGljYXRlZCA9IGlzX2RiX3JlcGxpY2F0ZWQoaW5zdCwgc3ViX3N1ZmZpeCkKLSAg ICAgICAgICAgICAgICAgICAgICAgICBub2RlWydjaGlsZHJlbiddLmFwcGVuZChidWlsZF9ub2Rl KHN1Yl9zdWZmaXgsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdWJfYmUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdWJzdWY9VHJ1ZSwKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbms9bGluaywKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxpY2F0 ZWQ9cmVwbGljYXRlZCkpCi0tCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdWJfYmUsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzdWY9VHJ1ZSwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbms9 bGluaywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHJlcGxpY2F0ZWQ9cmVwbGljYXRlZCkpCi0gICAgICAgICAgICAgICAgICMgUmVj dXJzZSBvdmVyIHRoZSBuZXcgc3Vic3VmZml4ZXMKLS0gICAgICAgICAgICAgICAgYmFja2VuZF9i dWlsZF90cmVlKGluc3QsIGJlX2luc3RzLCBub2RlWydjaGlsZHJlbiddKQotKyAgICAgICAgICAg ICAgICBiYWNrZW5kX2J1aWxkX3RyZWUoaW5zdCwgYmVfaW5zdHMsIG5vZGVbJ2NoaWxkcmVuJ10s IGFsbF9zdWZmaXhlcykKLSAgICAgICAgICAgICAgICAgYnJlYWsKLSAKLSAKLUBAIC00NzEsNyAr NDY4LDggQEAgZGVmIGJhY2tlbmRfZ2V0X3RyZWUoaW5zdCwgYmFzZWRuLCBsb2csIGFyZ3MpOgot ICAgICBlbHNlOgotICAgICAgICAgIyBCdWlsZCB0aGUgdHJlZQotICAgICAgICAgYmVfaW5zdHMg PSBCYWNrZW5kcyhpbnN0KS5saXN0KCkKLS0gICAgICAgIGJhY2tlbmRfYnVpbGRfdHJlZShpbnN0 LCBiZV9pbnN0cywgbm9kZXMpCi0rICAgICAgICBhbGxfc3VmZml4ZXMgPSB7YmUuZ2V0X2F0dHJf dmFsX3V0ZjhfbCgnbnNzbGFwZC1zdWZmaXgnKSBmb3IgYmUgaW4gYmVfaW5zdHN9Ci0rICAgICAg ICBiYWNrZW5kX2J1aWxkX3RyZWUoaW5zdCwgYmVfaW5zdHMsIG5vZGVzLCBhbGxfc3VmZml4ZXMp Ci0gCi0gICAgICAgICAjIERvbmUKLSAgICAgICAgIGlmIGFyZ3MuanNvbjoKLS0tIAotMi41Mi4w Ci0KCmRpZmYgLS1naXQgYS8wMDE1LUlzc3VlLTcwMTQtbWVtYmVyT2YtaWdub3JlZC1kZWZlcnJl ZC11cGRhdGVzLXdpdGgtTE0ucGF0Y2ggYi8wMDE1LUlzc3VlLTcwMTQtbWVtYmVyT2YtaWdub3Jl ZC1kZWZlcnJlZC11cGRhdGVzLXdpdGgtTE0ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDJlNzBhM2MuLjAwMDAwMDAKLS0tIGEvMDAxNS1Jc3N1ZS03MDE0LW1lbWJlck9mLWln bm9yZWQtZGVmZXJyZWQtdXBkYXRlcy13aXRoLUxNLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs MzggKzAsMCBAQAotRnJvbSBhYTI0YzAwZDllZDFlYTk3MzBjMGU4YzVkY2NjMWJiYjViNjFlMzEy IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogTGVua2EgRG91ZG92YSA8bHJ5em5hcm9A cmVkaGF0LmNvbT4KLURhdGU6IE1vbiwgMjYgSmFuIDIwMjYgMTY6MjE6MjMgKzAxMDAKLVN1Ympl Y3Q6IFtQQVRDSF0gSXNzdWUgNzAxNCAtIG1lbWJlck9mIC0gaWdub3JlZCBkZWZlcnJlZCB1cGRh dGVzIHdpdGggTE1EQgotCi1EZXNjcmlwdGlvbjoKLUZpeCB0eXBvIGluIHB5dGVzdCBtYXJrZXIg cmVhc29uLgotCi1SZWxhdGVzOiAjNzAxNAotCi1BdXRob3I6IExlbmthIERvdWRvdmEKLVJldmll d2VkIGJ5OiA/Pz8KLS0tLQotIC4uLi9zdWl0ZXMvbWVtYmVyb2ZfcGx1Z2luL21lbWJlcm9mX2Rl ZmVycmVkX2xtZGJfdGVzdC5weSAgICAgIHwgMyArKy0KLSAxIGZpbGUgY2hhbmdlZCwgMiBpbnNl cnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9kaXJzcnZ0ZXN0cy90ZXN0 cy9zdWl0ZXMvbWVtYmVyb2ZfcGx1Z2luL21lbWJlcm9mX2RlZmVycmVkX2xtZGJfdGVzdC5weSBi L2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9tZW1iZXJvZl9wbHVnaW4vbWVtYmVyb2ZfZGVmZXJy ZWRfbG1kYl90ZXN0LnB5Ci1pbmRleCAwZDlmNzkzYzEuLjEyZmNmYTNlYyAxMDA2NDQKLS0tLSBh L2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9tZW1iZXJvZl9wbHVnaW4vbWVtYmVyb2ZfZGVmZXJy ZWRfbG1kYl90ZXN0LnB5Ci0rKysgYi9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvbWVtYmVyb2Zf cGx1Z2luL21lbWJlcm9mX2RlZmVycmVkX2xtZGJfdGVzdC5weQotQEAgLTEsNCArMSw1IEBACi0g IyAtLS0gQkVHSU4gQ09QWVJJR0hUIEJMT0NLIC0tLQotKwotICMgQ29weXJpZ2h0IChDKSAyMDI1 IFJlZCBIYXQsIEluYy4KLSAjIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gIwotQEAgLTI4LDcgKzI5 LDcgQEAgZWxzZToKLSAgICAgbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pLnNldExldmVsKGxv Z2dpbmcuSU5GTykKLSAKLSAKLS1AcHl0ZXN0Lm1hcmsuc2tpcGlmKGdldF9kZWZhdWx0X2RiX2xp YigpICE9ICJtZGIiLCByZWFzb249Ik5vdCBzdXBwb3J0ZWQgb3ZlciBtZGIiKQotK0BweXRlc3Qu bWFyay5za2lwaWYoZ2V0X2RlZmF1bHRfZGJfbGliKCkgIT0gIm1kYiIsIHJlYXNvbj0iTm90IHN1 cHBvcnRlZCBvdmVyIGJkYiIpCi0gZGVmIHRlc3RfbWVtYmVyb2ZfZGVmZXJyZWRfdXBkYXRlX2xt ZGJfcmVqZWN0aW9uKHRvcG8pOgotICAgICAiIiJUZXN0IHRoYXQgbWVtYmVyT2YgcGx1Z2luIHJl amVjdHMgZGVmZXJyZWQgdXBkYXRlIGNvbmZpZ3VyYXRpb24gd2l0aCBMTURCIGJhY2tlbmQKLSAK LS0tIAotMi41Mi4wCi0KCmRpZmYgLS1naXQgYS8wMDE2LUlzc3VlLTcxODQtYXJncGFyc2UuSGVs cEZvcm1hdHRlci1fZm9ybWF0X2FjdGlvbnNfdXMucGF0Y2ggYi8wMDE2LUlzc3VlLTcxODQtYXJn cGFyc2UuSGVscEZvcm1hdHRlci1fZm9ybWF0X2FjdGlvbnNfdXMucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDZmZWFlYWIuLjAwMDAwMDAKLS0tIGEvMDAxNi1Jc3N1ZS03MTg0 LWFyZ3BhcnNlLkhlbHBGb3JtYXR0ZXItX2Zvcm1hdF9hY3Rpb25zX3VzLnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsNDggKzAsMCBAQAotRnJvbSA0YTczYTMxZTZjOTFlNTA3ZTVhYTJjYmExZTVi ZDU1ZDFkMDc4OTRkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogTWFyayBSZXlub2xk cyA8bXJleW5vbGRzQHJlZGhhdC5jb20+Ci1EYXRlOiBNb24sIDEyIEphbiAyMDI2IDEzOjUzOjA1 IC0wNTAwCi1TdWJqZWN0OiBbUEFUQ0hdIElzc3VlIDcxODQgLSBhcmdwYXJzZS5IZWxwRm9ybWF0 dGVyIF9mb3JtYXRfYWN0aW9uc191c2FnZSgpCi0gaXMgZGVwcmVjYXRlZAotCi1EZXNjcmlwdGlv bjoKLQotX2Zvcm1hdF9hY3Rpb25zX3VzYWdlKCkgd2FzIHJlbW92ZWQgaW4gcHl0aG9uIDMuMTUu IEluc3RlYWQgd2UgY2FuIHVzZQotX2dldF9hY3Rpb25zX3VzYWdlX3BhcnRzKCkgYnV0IGl0IGFs c28gYmVoYXZlcyBkaWZmZXJlbnRseSBiZXR3ZWVuCi1weXRob24gMy4xNCBhbmQgMy4xNSBzbyB3 ZSBuZWVkIHNwZWNpYWwgaGFuZGxpbmcuCi0KLVJlbGF0ZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS8z ODlkcy8zODktZHMtYmFzZS9pc3N1ZXMvNzE4NAotCi1SZXZpZXdlZCBieTogc3BpY2h1Z2koVGhh bmtzISkKLS0tLQotIHNyYy9saWIzODkvbGliMzg5L2NsaV9iYXNlL19faW5pdF9fLnB5IHwgMTUg KysrKysrKysrKysrKystCi0gMSBmaWxlIGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKyksIDEgZGVs ZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9saWIzODkvbGliMzg5L2NsaV9iYXNlL19faW5p dF9fLnB5IGIvc3JjL2xpYjM4OS9saWIzODkvY2xpX2Jhc2UvX19pbml0X18ucHkKLWluZGV4IDA2 YjhmOTk2NC4uZjEwNTVhYWRjIDEwMDY0NAotLS0tIGEvc3JjL2xpYjM4OS9saWIzODkvY2xpX2Jh c2UvX19pbml0X18ucHkKLSsrKyBiL3NyYy9saWIzODkvbGliMzg5L2NsaV9iYXNlL19faW5pdF9f LnB5Ci1AQCAtNDEzLDcgKzQxMywyMCBAQCBjbGFzcyBDdXN0b21IZWxwRm9ybWF0dGVyKGFyZ3Bh cnNlLkhlbHBGb3JtYXR0ZXIpOgotIAotICAgICBkZWYgX2Zvcm1hdF91c2FnZShzZWxmLCB1c2Fn ZSwgYWN0aW9ucywgZ3JvdXBzLCBwcmVmaXgpOgotICAgICAgICAgdXNhZ2UgPSBzdXBlcihDdXN0 b21IZWxwRm9ybWF0dGVyLCBzZWxmKS5fZm9ybWF0X3VzYWdlKHVzYWdlLCBhY3Rpb25zLCBncm91 cHMsIHByZWZpeCkKLS0gICAgICAgIGZvcm1hdHRlZF9vcHRpb25zID0gc2VsZi5fZm9ybWF0X2Fj dGlvbnNfdXNhZ2UocGFyZW50X2FyZ3VtZW50cywgW10pCi0rCi0rICAgICAgICBpZiBzeXMudmVy c2lvbl9pbmZvIDwgKDMsIDEzKToKLSsgICAgICAgICAgICAjIFVzZSBfZm9ybWF0X2FjdGlvbnNf dXNhZ2UoKSBmb3IgUHl0aG9uIDMuMTIgYW5kIGVhcmxpZXIKLSsgICAgICAgICAgICBmb3JtYXR0 ZWRfb3B0aW9ucyA9IHNlbGYuX2Zvcm1hdF9hY3Rpb25zX3VzYWdlKHBhcmVudF9hcmd1bWVudHMs IFtdKQotKyAgICAgICAgZWxzZToKLSsgICAgICAgICAgICAjIFVzZSBfZ2V0X2FjdGlvbnNfdXNh Z2VfcGFydHMoKSBmb3IgUHl0aG9uIDMuMTMgYW5kIGxhdGVyCi0rICAgICAgICAgICAgYWN0aW9u X3BhcnRzID0gc2VsZi5fZ2V0X2FjdGlvbnNfdXNhZ2VfcGFydHMocGFyZW50X2FyZ3VtZW50cywg W10pCi0rICAgICAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMTUpOgotKyAgICAg ICAgICAgICAgICAjIFB5dGhvbiAzLjE1IHJldHVybnMgYSB0dXBsZSAobGlzdCBvZiBhY3Rpb25z LCBjb3VudCBvZiBhY3Rpb25zKQotKyAgICAgICAgICAgICAgICBmb3JtYXR0ZWRfb3B0aW9ucyA9 ICcgJy5qb2luKGFjdGlvbl9wYXJ0c1swXSkKLSsgICAgICAgICAgICBlbHNlOgotKyAgICAgICAg ICAgICAgICAjIFB5dGhvbiAzLjEzIGFuZCAzLjE0IHJldHVybiBhIGxpc3Qgb2YgYWN0aW9ucwot KyAgICAgICAgICAgICAgICBmb3JtYXR0ZWRfb3B0aW9ucyA9ICcgJy5qb2luKGFjdGlvbl9wYXJ0 cykKLSsKLSAgICAgICAgICMgSWYgZm9ybWF0dGVkX29wdGlvbnMgYWxyZWFkeSBpbiB1c2FnZSAt IHJlbW92ZSB0aGVtCi0gICAgICAgICBpZiBmb3JtYXR0ZWRfb3B0aW9ucyBpbiB1c2FnZToKLSAg ICAgICAgICAgICB1c2FnZSA9IHVzYWdlLnJlcGxhY2UoZicge2Zvcm1hdHRlZF9vcHRpb25zfScs ICcnKQotLS0gCi0yLjUyLjAKLQoKZGlmZiAtLWdpdCBhLzAwMTctSXNzdWUtNjk0Ny1SZXZpc2Ut dGltZS1za2V3LWNoZWNrLWluLWhlYWx0aGNoZWNrLXRvby5wYXRjaCBiLzAwMTctSXNzdWUtNjk0 Ny1SZXZpc2UtdGltZS1za2V3LWNoZWNrLWluLWhlYWx0aGNoZWNrLXRvby5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWJlMGNkYy4uMDAwMDAwMAotLS0gYS8wMDE3LUlzc3Vl LTY5NDctUmV2aXNlLXRpbWUtc2tldy1jaGVjay1pbi1oZWFsdGhjaGVjay10b28ucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSwxNzQgKzAsMCBAQAotRnJvbSBiYzI4NDA2Nzc4NTM0YTc3MDY0YTI2 YjRmMDQ2N2RmZmVjZGUzM2VhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogVmlrdG9y IEFzaGlyb3YgPHZhc2hpcm92QHJlZGhhdC5jb20+Ci1EYXRlOiBUdWUsIDI3IEphbiAyMDI2IDA5 OjQwOjEyICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIElzc3VlIDY5NDcgLSBSZXZpc2UgdGltZSBz a2V3IGNoZWNrIGluIGhlYWx0aGNoZWNrIHRvb2wgLSBhZGQKLSB0ZXN0cyAoIzcyMDgpCi0KLURl c2NyaXB0aW9uOgotQWRkIHRlc3RzIGZvciBEU1NLRVdMRTAwMDMgYW5kIERTU0tFV0xFMDAwNCBj aGVja3MuCi0KLVJlbGF0ZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS8zODlkcy8zODktZHMtYmFzZS9p c3N1ZXMvNjk0NwotCi1SZXZpZXdlZCBieTogQGRyb2lkZWNrIChUaGFua3MhKQotLS0tCi0gLi4u L3N1aXRlcy9oZWFsdGhjaGVjay9oZWFsdGhfc2tld190ZXN0LnB5ICAgIHwgMTQ4ICsrKysrKysr KysrKysrKysrKwotIDEgZmlsZSBjaGFuZ2VkLCAxNDggaW5zZXJ0aW9ucygrKQotIGNyZWF0ZSBt b2RlIDEwMDY0NCBkaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvaGVhbHRoY2hlY2svaGVhbHRoX3Nr ZXdfdGVzdC5weQotCi1kaWZmIC0tZ2l0IGEvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL2hlYWx0 aGNoZWNrL2hlYWx0aF9za2V3X3Rlc3QucHkgYi9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvaGVh bHRoY2hlY2svaGVhbHRoX3NrZXdfdGVzdC5weQotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4 IDAwMDAwMDAwMC4uOWVlMDcwMzY0Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9kaXJzcnZ0ZXN0cy90 ZXN0cy9zdWl0ZXMvaGVhbHRoY2hlY2svaGVhbHRoX3NrZXdfdGVzdC5weQotQEAgLTAsMCArMSwx NDggQEAKLSsjIC0tLSBCRUdJTiBDT1BZUklHSFQgQkxPQ0sgLS0tCi0rIyBDb3B5cmlnaHQgKEMp IDIwMjYgUmVkIEhhdCwgSW5jLgotKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSsjCi0rIyBMaWNl bnNlOiBHUEwgKHZlcnNpb24gMyBvciBhbnkgbGF0ZXIgdmVyc2lvbikuCi0rIyBTZWUgTElDRU5T RSBmb3IgZGV0YWlscy4KLSsjIC0tLSBFTkQgQ09QWVJJR0hUIEJMT0NLIC0tLQotKyMKLSsKLStp bXBvcnQgbG9nZ2luZwotK2ltcG9ydCBvcwotK2ltcG9ydCBweXRlc3QKLStpbXBvcnQgc3VicHJv Y2VzcwotK2Zyb20gbGliMzg5Ll9jb25zdGFudHMgaW1wb3J0IERFRkFVTFRfU1VGRklYCi0rZnJv bSBsaWIzODkuZHNlbGRpZiBpbXBvcnQgRFNFbGRpZgotK2Zyb20gbGliMzg5LnJlcGxpY2EgaW1w b3J0IFJlcGxpY2F0aW9uTWFuYWdlcgotK2Zyb20gbGliMzg5LnRvcG9sb2dpZXMgaW1wb3J0IHRv cG9sb2d5X20yCi0rCi0rcHl0ZXN0bWFyayA9IHB5dGVzdC5tYXJrLnRpZXIxCi0rCi0rQ01EX09V VFBVVCA9ICdObyBpc3N1ZXMgZm91bmQuJwotK0pTT05fT1VUUFVUID0gJ1tdJwotKwotK2xvZyA9 IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQotKwotKwotK2RlZiBydW5faGVhbHRoY2hlY2tf YW5kX2NoZWNrX3Jlc3VsdChpbnN0YW5jZSwgc2VhcmNoZWRfY29kZSwganNvbj1GYWxzZSwgaXNu b3Q9RmFsc2UpOgotKyAgICAiIiJSdW4gaGVhbHRoY2hlY2sgYW5kIHZlcmlmeSB0aGUgZXhwZWN0 ZWQgY29kZSBpcyBpbiB0aGUgb3V0cHV0IiIiCi0rICAgIGNtZCA9IFsnZHNjdGwnXQotKyAgICBp ZiBqc29uOgotKyAgICAgICAgY21kLmFwcGVuZCgnLS1qc29uJykKLSsgICAgICAgIGlmIHNlYXJj aGVkX2NvZGUgPT0gQ01EX09VVFBVVDoKLSsgICAgICAgICAgICBzZWFyY2hlZF9jb2RlID0gSlNP Tl9PVVRQVVQKLSsgICAgY21kLmFwcGVuZChpbnN0YW5jZS5zZXJ2ZXJpZCkKLSsgICAgY21kLmV4 dGVuZChbJ2hlYWx0aGNoZWNrJywgJy0tY2hlY2snLCAnZHNlbGRpZjpuc3N0YXRlJ10pCi0rCi0r ICAgIHJlc3VsdCA9IHN1YnByb2Nlc3MucnVuKGNtZCwgY2FwdHVyZV9vdXRwdXQ9VHJ1ZSwgdW5p dmVyc2FsX25ld2xpbmVzPVRydWUpCi0rICAgIGxvZy5pbmZvKGYnUnVubmluZzoge2NtZH0nKQot KyAgICBsb2cuaW5mbyhmJ1N0ZG91dDoge3Jlc3VsdC5zdGRvdXR9JykKLSsgICAgbG9nLmluZm8o ZidTdGRlcnI6IHtyZXN1bHQuc3RkZXJyfScpCi0rICAgIGxvZy5pbmZvKGYnUmV0dXJuIGNvZGU6 IHtyZXN1bHQucmV0dXJuY29kZX0nKQotKyAgICBzdGRvdXQgPSByZXN1bHQuc3Rkb3V0Ci0rCi0r ICAgICMgc3Rkb3V0IHNob3VsZCBub3QgYmUgZW1wdHkKLSsgICAgYXNzZXJ0IHN0ZG91dCBpcyBu b3QgTm9uZQotKyAgICBhc3NlcnQgbGVuKHN0ZG91dCkgPiAwCi0rCi0rICAgIGlmIGlzbm90Ogot KyAgICAgICAgYXNzZXJ0IHNlYXJjaGVkX2NvZGUgbm90IGluIHN0ZG91dCwgXAotKyAgICAgICAg ICAgIGYne3NlYXJjaGVkX2NvZGV9IHNob3VsZCBOT1QgYmUgaW4gaGVhbHRoY2hlY2sgb3V0cHV0 IGJ1dCB3YXMgZm91bmQnCi0rICAgICAgICBsb2cuaW5mbyhmJ1ZlcmlmaWVkIHtzZWFyY2hlZF9j b2RlfSBpcyBOT1QgaW4gaGVhbHRoY2hlY2sgb3V0cHV0JykKLSsgICAgZWxzZToKLSsgICAgICAg IGFzc2VydCBzZWFyY2hlZF9jb2RlIGluIHN0ZG91dCwgXAotKyAgICAgICAgICAgIGYne3NlYXJj aGVkX2NvZGV9IHNob3VsZCBiZSBpbiBoZWFsdGhjaGVjayBvdXRwdXQgYnV0IHdhcyBub3QgZm91 bmQnCi0rICAgICAgICBsb2cuaW5mbyhmJ1ZlcmlmaWVkIHtzZWFyY2hlZF9jb2RlfSBpcyBpbiBo ZWFsdGhjaGVjayBvdXRwdXQnKQotKwotKwotK2RlZiB0ZXN0X2hlYWx0aGNoZWNrX3RpbWVfc2tl d19leHRlbnNpdmUodG9wb2xvZ3lfbTIpOgotKyAgICAiIiJDaGVjayBpZiBIZWFsdGhDaGVjayBy ZXR1cm5zIERTU0tFV0xFMDAwMyBhbmQgRFNTS0VXTEUwMDA0IGNvZGVzIGZvciBleHRlbnNpdmUg dGltZSBza2V3Ci0rCi0rICAgIDppZDogNzU5MWNkMmItOGQ2Ni00ZDMzLTlmOGQtYmFiZmYwNTcx MDg2Ci0rICAgIDpzZXR1cDogVHdvIHN1cHBsaWVycyByZXBsaWNhdGlvbiB0b3BvbG9neQotKyAg ICA6c3RlcHM6Ci0rICAgICAgICAxLiBDcmVhdGUgYSByZXBsaWNhdGVkIHRvcG9sb2d5Ci0rICAg ICAgICAyLiBTdG9wIHN1cHBsaWVyMQotKyAgICAgICAgMy4gSW5jcmVhc2UgdGltZSBza2V3IG9u IHN1cHBsaWVyMSB0byBvdmVyIDI0IGhvdXJzCi0rICAgICAgICA0LiBTdGFydCBzdXBwbGllcjEK LSsgICAgICAgIDUuIFVzZSBIZWFsdGhDaGVjayBhbmQgdmVyaWZ5IERTU0tFV0xFMDAwMyBpcyBy ZXBvcnRlZAotKyAgICAgICAgNi4gU2V0IG5zc2xhcGQtaWdub3JlLXRpbWUtc2tldyB0byBvbgot KyAgICAgICAgNy4gVXNlIEhlYWx0aENoZWNrIGFuZCB2ZXJpZnkgRFNTS0VXTEUwMDAzIGlzIE5P VCByZXBvcnRlZAotKyAgICAgICAgOC4gU3RvcCBzdXBwbGllcjEKLSsgICAgICAgIDkuIEluY3Jl YXNlIHRpbWUgc2tldyBvbiBzdXBwbGllcjEgdG8gb3ZlciAzNjUgZGF5cwotKyAgICAgICAgMTAu IFN0YXJ0IHN1cHBsaWVyMQotKyAgICAgICAgMTEuIFVzZSBIZWFsdGhDaGVjayBhbmQgdmVyaWZ5 IG9ubHkgRFNTS0VXTEUwMDA0IGlzIHJlcG9ydGVkCi0rICAgIDpleHBlY3RlZHJlc3VsdHM6Ci0r ICAgICAgICAxLiBTdWNjZXNzCi0rICAgICAgICAyLiBTdWNjZXNzCi0rICAgICAgICAzLiBTdWNj ZXNzCi0rICAgICAgICA0LiBTdWNjZXNzCi0rICAgICAgICA1LiBIZWFsdGhjaGVjayByZXBvcnRz IERTU0tFV0xFMDAwMyBjb2RlCi0rICAgICAgICA2LiBTdWNjZXNzCi0rICAgICAgICA3LiBIZWFs dGhjaGVjayBkb2VzIG5vdCByZXBvcnQgRFNTS0VXTEUwMDAzIGNvZGUKLSsgICAgICAgIDguIFN1 Y2Nlc3MKLSsgICAgICAgIDkuIFN1Y2Nlc3MKLSsgICAgICAgIDEwLiBTdWNjZXNzCi0rICAgICAg ICAxMS4gSGVhbHRoY2hlY2sgcmVwb3J0cyBEU1NLRVdMRTAwMDQgY29kZSBhbmQgbm90IERTU0tF V0xFMDAwMwotKyAgICAiIiIKLSsKLSsgICAgTTEgPSB0b3BvbG9neV9tMi5tc1snc3VwcGxpZXIx J10KLSsgICAgTTIgPSB0b3BvbG9neV9tMi5tc1snc3VwcGxpZXIyJ10KLSsKLSsgICAgIyBFbnN1 cmUgcmVwbGljYXRpb24gaXMgd29ya2luZyBmaXJzdAotKyAgICByZXBsID0gUmVwbGljYXRpb25N YW5hZ2VyKERFRkFVTFRfU1VGRklYKQotKyAgICByZXBsLndhaXRfZm9yX3JlcGxpY2F0aW9uKE0x LCBNMikKLSsKLSsgICAgIyBTdGVwIDItNDogU3RvcCBzdXBwbGllcjEsIGluY3JlYXNlIHRpbWUg c2tldyB0byBvdmVyIDI0IGhvdXJzLCBzdGFydCBzdXBwbGllcjEKLSsgICAgbG9nLmluZm8oJ1N0 b3Agc3VwcGxpZXIxIHRvIG1vZGlmeSBkc2UubGRpZicpCi0rICAgIE0xLnN0b3AoKQotKwotKyAg ICAjIFNldCB0aW1lIHNrZXcgdG8gb3ZlciAyNCBob3VycyAoODY0MDAgc2Vjb25kcykKLSsgICAg IyBBZGQgYSBtYXJnaW4gdG8gYmUgc2FmZWx5IG92ZXIgdGhlIHRocmVzaG9sZAotKyAgICB0aW1l X3NrZXdfMjRoID0gODY0MDAgKyAzNjAwICAjIDI1IGhvdXJzCi0rICAgIGxvZy5pbmZvKGYnSW5j cmVhc2UgdGltZSBza2V3IG9uIHN1cHBsaWVyMSBieSB7dGltZV9za2V3XzI0aH0gc2Vjb25kcycp Ci0rICAgIERTRWxkaWYoTTEpLl9pbmNyZWFzZVRpbWVTa2V3KERFRkFVTFRfU1VGRklYLCB0aW1l X3NrZXdfMjRoKQotKwotKyAgICBsb2cuaW5mbygnU3RhcnQgc3VwcGxpZXIxJykKLSsgICAgTTEu c3RhcnQoKQotKwotKyAgICAjIFN0ZXAgNTogVmVyaWZ5IERTU0tFV0xFMDAwMyBpcyByZXBvcnRl ZAotKyAgICBsb2cuaW5mbygnUnVuIGhlYWx0aGNoZWNrIGFuZCB2ZXJpZnkgRFNTS0VXTEUwMDAz IGlzIHJlcG9ydGVkJykKLSsgICAgcnVuX2hlYWx0aGNoZWNrX2FuZF9jaGVja19yZXN1bHQoTTEs ICdEU1NLRVdMRTAwMDMnLCBqc29uPUZhbHNlKQotKyAgICBydW5faGVhbHRoY2hlY2tfYW5kX2No ZWNrX3Jlc3VsdChNMSwgJ0RTU0tFV0xFMDAwMycsIGpzb249VHJ1ZSkKLSsKLSsgICAgIyBTdGVw IDY6IFNldCBuc3NsYXBkLWlnbm9yZS10aW1lLXNrZXcgdG8gb24KLSsgICAgbG9nLmluZm8oJ1Nl dCBuc3NsYXBkLWlnbm9yZS10aW1lLXNrZXcgdG8gb24nKQotKyAgICBNMS5jb25maWcuc2V0KCdu c3NsYXBkLWlnbm9yZS10aW1lLXNrZXcnLCAnb24nKQotKwotKyAgICAjIFN0ZXAgNzogVmVyaWZ5 IERTU0tFV0xFMDAwMyBpcyBOT1QgcmVwb3J0ZWQgd2hlbiBpZ25vcmluZyB0aW1lIHNrZXcKLSsg ICAgbG9nLmluZm8oJ1J1biBoZWFsdGhjaGVjayBhbmQgdmVyaWZ5IERTU0tFV0xFMDAwMyBpcyBO T1QgcmVwb3J0ZWQnKQotKyAgICBydW5faGVhbHRoY2hlY2tfYW5kX2NoZWNrX3Jlc3VsdChNMSwg J0RTU0tFV0xFMDAwMycsIGpzb249RmFsc2UsIGlzbm90PVRydWUpCi0rICAgIHJ1bl9oZWFsdGhj aGVja19hbmRfY2hlY2tfcmVzdWx0KE0xLCAnRFNTS0VXTEUwMDAzJywganNvbj1UcnVlLCBpc25v dD1UcnVlKQotKwotKyAgICAjIFN0ZXAgOC0xMDogU3RvcCBzdXBwbGllcjEsIGluY3JlYXNlIHRp bWUgc2tldyB0byBvdmVyIDM2NSBkYXlzLCBzdGFydCBzdXBwbGllcjEKLSsgICAgbG9nLmluZm8o J1N0b3Agc3VwcGxpZXIxIHRvIG1vZGlmeSBkc2UubGRpZicpCi0rICAgIE0xLnN0b3AoKQotKwot KyAgICAjIEluY3JlYXNlIHRpbWUgc2tldyB0byBvdmVyIDM2NSBkYXlzICgzMTUzNjAwMCBzZWNv bmRzKQotKyAgICAjIFdlIG5lZWQgdG8gYWRkIGVub3VnaCB0byBnbyBmcm9tIGN1cnJlbnQgfjI1 IGhvdXJzIHRvIG92ZXIgMzY1IGRheXMKLSsgICAgdGltZV9za2V3X3llYXIgPSAoODY0MDAgKiAz NjUpICsgODY0MDAgICMgMzY2IGRheXMgdG90YWwgYWRkaXRpb25hbAotKyAgICBsb2cuaW5mbyhm J0luY3JlYXNlIHRpbWUgc2tldyBvbiBzdXBwbGllcjEgYnkge3RpbWVfc2tld195ZWFyfSBzZWNv bmRzJykKLSsgICAgRFNFbGRpZihNMSkuX2luY3JlYXNlVGltZVNrZXcoREVGQVVMVF9TVUZGSVgs IHRpbWVfc2tld195ZWFyKQotKwotKyAgICBsb2cuaW5mbygnU3RhcnQgc3VwcGxpZXIxJykKLSsg ICAgTTEuc3RhcnQoKQotKwotKyAgICAjIFN0ZXAgMTE6IFZlcmlmeSBvbmx5IERTU0tFV0xFMDAw NCBpcyByZXBvcnRlZCAobm90IERTU0tFV0xFMDAwMykKLSsgICAgbG9nLmluZm8oJ1J1biBoZWFs dGhjaGVjayBhbmQgdmVyaWZ5IG9ubHkgRFNTS0VXTEUwMDA0IGlzIHJlcG9ydGVkJykKLSsgICAg cnVuX2hlYWx0aGNoZWNrX2FuZF9jaGVja19yZXN1bHQoTTEsICdEU1NLRVdMRTAwMDQnLCBqc29u PUZhbHNlKQotKyAgICBydW5faGVhbHRoY2hlY2tfYW5kX2NoZWNrX3Jlc3VsdChNMSwgJ0RTU0tF V0xFMDAwNCcsIGpzb249VHJ1ZSkKLSsgICAgcnVuX2hlYWx0aGNoZWNrX2FuZF9jaGVja19yZXN1 bHQoTTEsICdEU1NLRVdMRTAwMDMnLCBqc29uPUZhbHNlLCBpc25vdD1UcnVlKQotKyAgICBydW5f aGVhbHRoY2hlY2tfYW5kX2NoZWNrX3Jlc3VsdChNMSwgJ0RTU0tFV0xFMDAwMycsIGpzb249VHJ1 ZSwgaXNub3Q9VHJ1ZSkKLSsKLSsKLStpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotKyAgICAj IFJ1biBpc29sYXRlZAotKyAgICAjIC1zIGZvciBERUJVRyBtb2RlCi0rICAgIENVUlJFTlRfRklM RSA9IG9zLnBhdGgucmVhbHBhdGgoX19maWxlX18pCi0rICAgIHB5dGVzdC5tYWluKCItcyAlcyIg JSBDVVJSRU5UX0ZJTEUpCi0tLSAKLTIuNTIuMAotCgpkaWZmIC0tZ2l0IGEvMDAxOC1Jc3N1ZS03 MjAxLVN5c2NhbGwtb3ZlcmhlYWQtaW4tTE1EQi1pbXBvcnQtd3JpdGVyLXRoLnBhdGNoIGIvMDAx OC1Jc3N1ZS03MjAxLVN5c2NhbGwtb3ZlcmhlYWQtaW4tTE1EQi1pbXBvcnQtd3JpdGVyLXRoLnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0OTM0YmE3Li4wMDAwMDAwCi0tLSBh LzAwMTgtSXNzdWUtNzIwMS1TeXNjYWxsLW92ZXJoZWFkLWluLUxNREItaW1wb3J0LXdyaXRlci10 aC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIxNSArMCwwIEBACi1Gcm9tIGE1M2MwZTRkZWE1 YzM1ZmVmMTk2NTAwYjJhMzZjOTJiYzhmMDdhNTEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1G cm9tOiBWaWt0b3IgQXNoaXJvdiA8dmFzaGlyb3ZAcmVkaGF0LmNvbT4KLURhdGU6IFR1ZSwgMjcg SmFuIDIwMjYgMDk6NDk6MTYgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gSXNzdWUgNzIwMSAtIFN5 c2NhbGwgb3ZlcmhlYWQgaW4gTE1EQiBpbXBvcnQgd3JpdGVyIHRocmVhZAotICgjNzIwNCkKLQot QnVnIERlc2NyaXB0aW9uOgotbGRpZjJkYiBpbXBvcnQgaXMgc2xvd2VyIHdpdGggTE1EQiB0aGFu IHdpdGggQkRCICh+MzUwMCB2cyB+NDUwMAotZW50cmllcy9zKSBkdWUgdG8gMiBpc3N1ZXM6Ci0x LiBUaGUgTURCX1NUQVRfU1RFUCBtYWNybyBjYWxscyBgY2xvY2tfZ2V0dGltZSgpYCB0byBjb2xs ZWN0Ci1wZXJmb3JtYW5jZSBzdGF0aXN0aWNzLiBUaGlzIHdhcyBjYWxsZWQgb24gZXZlcnkgc2lu Z2xlIG9wZXJhdGlvbiBpbnNpZGUKLXRoZSB3cml0ZXIgbG9vcCwgcmVzdWx0aW5nIGluIH4zIHN5 c2NhbGxzIHBlciB3cml0ZSBvciB+NjAwMCBzeXNjYWxscwotcGVyIHRyYW5zYWN0aW9uICh3aXRo IDIwMDAgYXMgdGhlIGRlZmF1bHQgYmF0Y2ggc2l6ZSkuCi0KLTIuIEluIGBkYm1kYl9pbXBvcnRf d29ya2VycV9wdXNoKClgLCBhZnRlciBjb3B5aW5nIHdvcmsgdG8gYSB3b3JrZXIKLXNsb3QsIHRo ZSBjb25kaXRpb24gdmFyaWFibGUgd2FzIG5ldmVyIHNpZ25hbGVkLiBUaGlzIGNhdXNlZCB3b3Jr ZXJzIHRvCi1zcGVuZCB1cCB0byAxMDBtcyBpbiBgc2FmZV9jb25kX3dhaXQoKWAgYmVmb3JlIGNo ZWNraW5nIGZvciBuZXcgd29yaywKLXNldmVyZWx5IGxpbWl0aW5nIGltcG9ydCB0aHJvdWdocHV0 LgotCi1GaXggRGVzY3JpcHRpb246Ci0xLiBBZGQgYSBuZXcgY29uZmlnIHBhcmFtZXRlciBgbnNz bGFwZC1tZGItaW1wb3J0LXN0YXRzYCAoZGVmYXVsdDogb2ZmKQotICAgdG8gY29udHJvbCB3aGV0 aGVyIHBlcmZvcm1hbmNlIHN0YXRpc3RpY3MgY29sbGVjdGlvbiBpcyBlbmFibGVkLgotMi4gQWRk IGBwdGhyZWFkX2NvbmRfYnJvYWRjYXN0KClgIGltbWVkaWF0ZWx5IGFmdGVyIGNvcHlpbmcgZGF0 YSB0byB3YWtlCi0gICB0aGUgd29ya2Vycy4KLQotQWZ0ZXIgYXBwbHlpbmcgdGhlc2UgZml4ZXMg bGRpZjJkYiBpbXBvcnQgcmF0ZSBpcyBhYm91dCB+MTAwMDAgZW50cmllcy9zLgotCi1GaXhlczog aHR0cHM6Ly9naXRodWIuY29tLzM4OWRzLzM4OS1kcy1iYXNlL2lzc3Vlcy83MjAxCi0KLVJldmll d2VkIGJ5OiBAcHJvZ2llcjM4OSAoVGhhbmtzISkKLS0tLQotIC4uLi9zbGFwZC9iYWNrLWxkYm0v ZGItbWRiL21kYl9jb25maWcuYyAgICAgICB8IDIzICsrKysrKysrKysrCi0gLi4uL2JhY2stbGRi bS9kYi1tZGIvbWRiX2ltcG9ydF90aHJlYWRzLmMgICAgIHwgNDAgKysrKysrKysrKy0tLS0tLS0t LQotIC4uLi9zbGFwZC9iYWNrLWxkYm0vZGItbWRiL21kYl9sYXllci5oICAgICAgICB8ICAyICsK LSAzIGZpbGVzIGNoYW5nZWQsIDQ2IGluc2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQotCi1k aWZmIC0tZ2l0IGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9kYi1tZGIvbWRiX2NvbmZp Zy5jIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9kYi1tZGIvbWRiX2NvbmZpZy5jCi1p bmRleCA5NjI5NWVkNWIuLmFkZTQyYjFkNyAxMDA2NDQKLS0tLSBhL2xkYXAvc2VydmVycy9zbGFw ZC9iYWNrLWxkYm0vZGItbWRiL21kYl9jb25maWcuYwotKysrIGIvbGRhcC9zZXJ2ZXJzL3NsYXBk L2JhY2stbGRibS9kYi1tZGIvbWRiX2NvbmZpZy5jCi1AQCAtNDc3LDYgKzQ3NywyOCBAQCBkYm1k Yl9jdHhfdF9kYl9kdXJhYmxlX3RyYW5zYWN0aW9uc19zZXQodm9pZCAqYXJnLCB2b2lkICp2YWx1 ZSwgY2hhciAqZXJyb3JidWYgXwotICAgICByZXR1cm4gcmV0dmFsOwotIH0KLSAKLStzdGF0aWMg dm9pZCAqCi0rZGJtZGJfY3R4X3RfZGJfaW1wb3J0X3N0YXRzX2dldCh2b2lkICphcmcpCi0rewot KyAgICBzdHJ1Y3QgbGRibWluZm8gKmxpID0gKHN0cnVjdCBsZGJtaW5mbyAqKWFyZzsKLSsKLSsg ICAgcmV0dXJuICh2b2lkICopKCh1aW50cHRyX3QpKE1EQl9DT05GSUcobGkpLT5kc2VjZmcuaW1w b3J0X3N0YXRzKSk7Ci0rfQotKwotK3N0YXRpYyBpbnQKLStkYm1kYl9jdHhfdF9kYl9pbXBvcnRf c3RhdHNfc2V0KHZvaWQgKmFyZywgdm9pZCAqdmFsdWUsIGNoYXIgKmVycm9yYnVmIF9fYXR0cmli dXRlX18oKHVudXNlZCkpLCBpbnQgcGhhc2UgX19hdHRyaWJ1dGVfXygodW51c2VkKSksIGludCBh cHBseSkKLSt7Ci0rICAgIHN0cnVjdCBsZGJtaW5mbyAqbGkgPSAoc3RydWN0IGxkYm1pbmZvICop YXJnOwotKyAgICBpbnQgcmV0dmFsID0gTERBUF9TVUNDRVNTOwotKyAgICBpbnQgdmFsID0gKGlu dCkoKHVpbnRwdHJfdCl2YWx1ZSk7Ci0rCi0rICAgIGlmIChhcHBseSkgewotKyAgICAgICAgTURC X0NPTkZJRyhsaSktPmRzZWNmZy5pbXBvcnRfc3RhdHMgPSB2YWw7Ci0rICAgIH0KLSsKLSsgICAg cmV0dXJuIHJldHZhbDsKLSt9Ci0rCi0gc3RhdGljIGludAotIGRibWRiX2N0eF90X3NldF9ieXBh c3NfZmlsdGVyX3Rlc3Qodm9pZCAqYXJnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdm9pZCAqdmFsdWUsCi1AQCAtNTg5LDYgKzYxMSw3IEBAIHN0YXRpYyBjb25maWdfaW5m byBkYm1kYl9jdHhfdF9wYXJhbVtdID0gewotICAgICB7Q09ORklHX01EQl9NQVhfREJTLCBDT05G SUdfVFlQRV9JTlQsICI1MTIiLCAmZGJtZGJfY3R4X3RfZGJfbWF4X2Ric19nZXQsICZkYm1kYl9j dHhfdF9kYl9tYXhfZGJzX3NldCwgQ09ORklHX0ZMQUdfQUxXQVlTX1NIT1cgfCBDT05GSUdfRkxB R19BTExPV19SVU5OSU5HX0NIQU5HRX0sCi0gICAgIHtDT05GSUdfTUFYUEFTU0JFRk9SRU1FUkdF LCBDT05GSUdfVFlQRV9JTlQsICIxMDAiLCAmZGJtZGJfY3R4X3RfbWF4cGFzc2JlZm9yZW1lcmdl X2dldCwgJmRibWRiX2N0eF90X21heHBhc3NiZWZvcmVtZXJnZV9zZXQsIDB9LAotICAgICB7Q09O RklHX0RCX0RVUkFCTEVfVFJBTlNBQ1RJT05TLCBDT05GSUdfVFlQRV9PTk9GRiwgIm9uIiwgJmRi bWRiX2N0eF90X2RiX2R1cmFibGVfdHJhbnNhY3Rpb25zX2dldCwgJmRibWRiX2N0eF90X2RiX2R1 cmFibGVfdHJhbnNhY3Rpb25zX3NldCwgQ09ORklHX0ZMQUdfQUxXQVlTX1NIT1d9LAotKyAgICB7 Q09ORklHX01EQl9JTVBPUlRfU1RBVFMsIENPTkZJR19UWVBFX09OT0ZGLCAib2ZmIiwgJmRibWRi X2N0eF90X2RiX2ltcG9ydF9zdGF0c19nZXQsICZkYm1kYl9jdHhfdF9kYl9pbXBvcnRfc3RhdHNf c2V0LCBDT05GSUdfRkxBR19BTFdBWVNfU0hPVyB8IENPTkZJR19GTEFHX0FMTE9XX1JVTk5JTkdf Q0hBTkdFfSwKLSAgICAge0NPTkZJR19CWVBBU1NfRklMVEVSX1RFU1QsIENPTkZJR19UWVBFX1NU UklORywgIm9uIiwgJmRibWRiX2N0eF90X2dldF9ieXBhc3NfZmlsdGVyX3Rlc3QsICZkYm1kYl9j dHhfdF9zZXRfYnlwYXNzX2ZpbHRlcl90ZXN0LCBDT05GSUdfRkxBR19BTFdBWVNfU0hPVyB8IENP TkZJR19GTEFHX0FMTE9XX1JVTk5JTkdfQ0hBTkdFfSwKLSAgICAge0NPTkZJR19TRVJJQUxfTE9D SywgQ09ORklHX1RZUEVfT05PRkYsICJvbiIsICZkYm1kYl9jdHhfdF9zZXJpYWxfbG9ja19nZXQs ICZkYm1kYl9jdHhfdF9zZXJpYWxfbG9ja19zZXQsIENPTkZJR19GTEFHX0FMV0FZU19TSE9XIHwg Q09ORklHX0ZMQUdfQUxMT1dfUlVOTklOR19DSEFOR0V9LAotICAgICB7Q09ORklHX0NBQ0hFX0FV VE9TSVpFLCBDT05GSUdfVFlQRV9JTlQsICIyNSIsICZtZGJfY29uZmlnX2NhY2hlX2F1dG9zaXpl X2dldCwgJm1kYl9jb25maWdfY2FjaGVfYXV0b3NpemVfc2V0LCBDT05GSUdfRkxBR19BTFdBWVNf U0hPVyB8IENPTkZJR19GTEFHX0FMTE9XX1JVTk5JTkdfQ0hBTkdFfSwKLWRpZmYgLS1naXQgYS9s ZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2RiLW1kYi9tZGJfaW1wb3J0X3RocmVhZHMuYyBi L2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vZGItbWRiL21kYl9pbXBvcnRfdGhyZWFkcy5j Ci1pbmRleCAyMjcwYWJkNjkuLjY1YjI5MzQzZSAxMDA2NDQKLS0tLSBhL2xkYXAvc2VydmVycy9z bGFwZC9iYWNrLWxkYm0vZGItbWRiL21kYl9pbXBvcnRfdGhyZWFkcy5jCi0rKysgYi9sZGFwL3Nl cnZlcnMvc2xhcGQvYmFjay1sZGJtL2RiLW1kYi9tZGJfaW1wb3J0X3RocmVhZHMuYwotQEAgLTU5 LDkgKzU5LDkgQEAKLSAKLSAKLSAvKiBpbXBvcnQgdGhyZWFkIHVzYWdlIHN0YXRpc3RpY3MgKi8K LS0jZGVmaW5lIE1EQl9TVEFUX0lOSVQoc3RhdHMpICAgIHsgbWRiX3N0YXRfY29sbGVjdCgmc3Rh dHMsIE1EQl9TVEFUX1JVTiwgMSk7IH0KLS0jZGVmaW5lIE1EQl9TVEFUX0VORChzdGF0cykgICAg IHsgbWRiX3N0YXRfY29sbGVjdCgmc3RhdHMsIE1EQl9TVEFUX1JVTiwgMCk7IH0KLS0jZGVmaW5l IE1EQl9TVEFUX1NURVAoc3RhdHMsIHN0ZXApICAgIHsgbWRiX3N0YXRfY29sbGVjdCgmc3RhdHMs IChzdGVwKSwgMCk7IH0KLSsjZGVmaW5lIE1EQl9TVEFUX0lOSVQoc3RhdHMsIGVuYWJsZWQpICAg IHsgaWYgKGVuYWJsZWQpIG1kYl9zdGF0X2NvbGxlY3QoJnN0YXRzLCBNREJfU1RBVF9SVU4sIDEp OyB9Ci0rI2RlZmluZSBNREJfU1RBVF9FTkQoc3RhdHMsIGVuYWJsZWQpICAgICB7IGlmIChlbmFi bGVkKSBtZGJfc3RhdF9jb2xsZWN0KCZzdGF0cywgTURCX1NUQVRfUlVOLCAwKTsgfQotKyNkZWZp bmUgTURCX1NUQVRfU1RFUChzdGF0cywgc3RlcCwgZW5hYmxlZCkgICAgeyBpZiAoZW5hYmxlZCkg bWRiX3N0YXRfY29sbGVjdCgmc3RhdHMsIChzdGVwKSwgMCk7IH0KLSAKLSB0eXBlZGVmIGVudW0g ewotICAgICBNREJfU1RBVF9SVU4sCi1AQCAtNDI0LDYgKzQyNCw3IEBAIGRibWRiX2ltcG9ydF93 b3JrZXJxX3B1c2goSW1wb3J0UXVldWVfdCAqcSwgV29ya2VyUXVldWVEYXRhX3QgKmRhdGEpCi0g ICAgICAgICByZXR1cm4gLTE7Ci0gICAgIH0KLSAgICAgZGJtZGJfZHVwX3dvcmtlcl9zbG90KHEs IGRhdGEsIHNsb3QpOwotKyAgICBwdGhyZWFkX2NvbmRfYnJvYWRjYXN0KCZxLT5jdik7Ci0gICAg IHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZxLT5tdXRleCk7Ci0gICAgIHJldHVybiAwOwotIH0KLUBA IC0zOTE0LDE0ICszOTE1LDE1IEBAIGRibWRiX2ltcG9ydF93cml0ZXIodm9pZCpwYXJhbSkKLSAg ICAgaW50IGNvdW50ID0gMDsKLSAgICAgaW50IHJjID0gMDsKLSAgICAgbWRiX3N0YXRfaW5mb190 IHN0YXRzID0gezB9OwotKyAgICBpbnQgc3RhdHNfZW5hYmxlZCA9IGN0eC0+Y3R4LT5kc2VjZmcu aW1wb3J0X3N0YXRzOwotIAotLSAgICBNREJfU1RBVF9JTklUKHN0YXRzKTsKLSsgICAgTURCX1NU QVRfSU5JVChzdGF0cywgc3RhdHNfZW5hYmxlZCk7Ci0gICAgIHdoaWxlICghcmMgJiYgIWluZm9f aXNfZmluaXNoZWQoaW5mbykpIHsKLS0gICAgICAgIE1EQl9TVEFUX1NURVAoc3RhdHMsIE1EQl9T VEFUX1BBVVNFKTsKLSsgICAgICAgIE1EQl9TVEFUX1NURVAoc3RhdHMsIE1EQl9TVEFUX1BBVVNF LCBzdGF0c19lbmFibGVkKTsKLSAgICAgICAgIHdhaXRfZm9yX3N0YXJ0aW5nKGluZm8pOwotLSAg ICAgICAgTURCX1NUQVRfU1RFUChzdGF0cywgTURCX1NUQVRfUkVBRCk7Ci0rICAgICAgICBNREJf U1RBVF9TVEVQKHN0YXRzLCBNREJfU1RBVF9SRUFELCBzdGF0c19lbmFibGVkKTsKLSAgICAgICAg IHNsb3QgPSBkYm1kYl9pbXBvcnRfcV9nZXRhbGwoJmN0eC0+d3JpdGVycSk7Ci0tICAgICAgICBN REJfU1RBVF9TVEVQKHN0YXRzLCBNREJfU1RBVF9SVU4pOwotKyAgICAgICAgTURCX1NUQVRfU1RF UChzdGF0cywgTURCX1NUQVRfUlVOLCBzdGF0c19lbmFibGVkKTsKLSAgICAgICAgIGlmIChpbmZv X2lzX2ZpbmlzaGVkKGluZm8pKSB7Ci0gICAgICAgICAgICAgZGJtZGJfaW1wb3J0X3FfZmx1c2go JmN0eC0+d3JpdGVycSk7Ci0gICAgICAgICAgICAgYnJlYWs7Ci1AQCAtMzkzMiwxNCArMzkzNCwx NCBAQCBkYm1kYl9pbXBvcnRfd3JpdGVyKHZvaWQqcGFyYW0pCi0gCi0gICAgICAgICBmb3IgKDsg c2xvdDsgc2xvdCA9IG5leHRzbG90KSB7Ci0gICAgICAgICAgICAgaWYgKCF0eG4pIHsKLS0gICAg ICAgICAgICAgICAgTURCX1NUQVRfU1RFUChzdGF0cywgTURCX1NUQVRfVFhOU1RBUlQpOwotKyAg ICAgICAgICAgICAgICBNREJfU1RBVF9TVEVQKHN0YXRzLCBNREJfU1RBVF9UWE5TVEFSVCwgc3Rh dHNfZW5hYmxlZCk7Ci0gICAgICAgICAgICAgICAgIHJjID0gVFhOX0JFR0lOKGN0eC0+Y3R4LT5l bnYsIE5VTEwsIDAsICZ0eG4pOwotICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICBpZiAoIXJj KSB7Ci0tICAgICAgICAgICAgICAgIE1EQl9TVEFUX1NURVAoc3RhdHMsIE1EQl9TVEFUX1dSSVRF KTsKLSsgICAgICAgICAgICAgICAgTURCX1NUQVRfU1RFUChzdGF0cywgTURCX1NUQVRfV1JJVEUs IHN0YXRzX2VuYWJsZWQpOwotICAgICAgICAgICAgICAgICByYyA9IE1EQl9QVVQodHhuLCBzbG90 LT5kYmktPmRiaSwgJnNsb3QtPmtleSwgJnNsb3QtPmRhdGEsIDApOwotICAgICAgICAgICAgIH0K LS0gICAgICAgICAgICBNREJfU1RBVF9TVEVQKHN0YXRzLCBNREJfU1RBVF9SVU4pOwotKyAgICAg ICAgICAgIE1EQl9TVEFUX1NURVAoc3RhdHMsIE1EQl9TVEFUX1JVTiwgc3RhdHNfZW5hYmxlZCk7 Ci0gICAgICAgICAgICAgbmV4dHNsb3QgPSBzbG90LT5uZXh0OwotICAgICAgICAgICAgIHNsYXBp X2NoX2ZyZWUoKHZvaWQqKikmc2xvdCk7Ci0gICAgICAgICB9Ci1AQCAtMzk0Nyw5ICszOTQ5LDkg QEAgZGJtZGJfaW1wb3J0X3dyaXRlcih2b2lkKnBhcmFtKQotICAgICAgICAgICAgIGJyZWFrOwot ICAgICAgICAgfQotICAgICAgICAgaWYgIChjb3VudCsrID49IFdSSVRFUl9NQVhfT1BTX0lOX1RY TikgewotLSAgICAgICAgICAgIE1EQl9TVEFUX1NURVAoc3RhdHMsIE1EQl9TVEFUX1RYTlNUT1Ap OwotKyAgICAgICAgICAgIE1EQl9TVEFUX1NURVAoc3RhdHMsIE1EQl9TVEFUX1RYTlNUT1AsIHN0 YXRzX2VuYWJsZWQpOwotICAgICAgICAgICAgIHJjID0gVFhOX0NPTU1JVCh0eG4pOwotLSAgICAg ICAgICAgIE1EQl9TVEFUX1NURVAoc3RhdHMsIE1EQl9TVEFUX1JVTik7Ci0rICAgICAgICAgICAg TURCX1NUQVRfU1RFUChzdGF0cywgTURCX1NUQVRfUlVOLCBzdGF0c19lbmFibGVkKTsKLSAgICAg ICAgICAgICBpZiAocmMpIHsKLSAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAg fQotQEAgLTM5NTgsMzIgKzM5NjAsMzIgQEAgZGJtZGJfaW1wb3J0X3dyaXRlcih2b2lkKnBhcmFt KQotICAgICAgICAgfQotICAgICB9Ci0gICAgIGlmICh0eG4gJiYgIXJjKSB7Ci0tICAgICAgICBN REJfU1RBVF9TVEVQKHN0YXRzLCBNREJfU1RBVF9UWE5TVE9QKTsKLSsgICAgICAgIE1EQl9TVEFU X1NURVAoc3RhdHMsIE1EQl9TVEFUX1RYTlNUT1AsIHN0YXRzX2VuYWJsZWQpOwotICAgICAgICAg cmMgPSBUWE5fQ09NTUlUKHR4bik7Ci0tICAgICAgICBNREJfU1RBVF9TVEVQKHN0YXRzLCBNREJf U1RBVF9SVU4pOwotKyAgICAgICAgTURCX1NUQVRfU1RFUChzdGF0cywgTURCX1NUQVRfUlVOLCBz dGF0c19lbmFibGVkKTsKLSAgICAgICAgIGlmICghcmMpIHsKLSAgICAgICAgICAgICB0eG4gPSBO VUxMOwotICAgICAgICAgfQotICAgICB9Ci0gICAgIGlmICh0eG4pIHsKLS0gICAgICAgIE1EQl9T VEFUX1NURVAoc3RhdHMsIE1EQl9TVEFUX1RYTlNUT1ApOwotKyAgICAgICAgTURCX1NUQVRfU1RF UChzdGF0cywgTURCX1NUQVRfVFhOU1RPUCwgc3RhdHNfZW5hYmxlZCk7Ci0gICAgICAgICBUWE5f QUJPUlQodHhuKTsKLS0gICAgICAgIE1EQl9TVEFUX1NURVAoc3RhdHMsIE1EQl9TVEFUX1JVTik7 Ci0rICAgICAgICBNREJfU1RBVF9TVEVQKHN0YXRzLCBNREJfU1RBVF9SVU4sIHN0YXRzX2VuYWJs ZWQpOwotICAgICAgICAgdHhuID0gTlVMTDsKLSAgICAgfQotLSAgICBNREJfU1RBVF9TVEVQKHN0 YXRzLCBNREJfU1RBVF9XUklURSk7Ci0rICAgIE1EQl9TVEFUX1NURVAoc3RhdHMsIE1EQl9TVEFU X1dSSVRFLCBzdGF0c19lbmFibGVkKTsKLSAgICAgaWYgKCFyYykgewotICAgICAgICAgLyogRW5z dXJlIHRoYXQgYWxsIGRhdGEgYXJlIHdyaXR0ZW4gb24gZGlzayAqLwotICAgICAgICAgcmMgPSBt ZGJfZW52X3N5bmMoY3R4LT5jdHgtPmVudiwgMSk7Ci0gICAgIH0KLS0gICAgTURCX1NUQVRfRU5E KHN0YXRzKTsKLSsgICAgTURCX1NUQVRfRU5EKHN0YXRzLCBzdGF0c19lbmFibGVkKTsKLSAKLSAg ICAgaWYgKHJjKSB7Ci0gICAgICAgICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xPR19FUlIsICJkYm1k Yl9pbXBvcnRfd3JpdGVyIiwKLSAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byB3cml0ZSBpbiB0 aGUgZGF0YWJhc2UuIEVycm9yIGlzIDB4JXg6ICVzLlxuIiwKLSAgICAgICAgICAgICAgICAgcmMs IG1kYl9zdHJlcnJvcihyYykpOwotICAgICAgICAgdGhyZWFkX2Fib3J0KGluZm8pOwotLSAgICB9 IGVsc2UgewotKyAgICB9IGVsc2UgaWYgKHN0YXRzX2VuYWJsZWQpIHsKLSAgICAgICAgIGNoYXIg YnVmWzIwMF07Ci0gICAgICAgICBjaGFyICpzdW1tYXJ5ID0gbWRiX3N0YXRfc3VtbWFyaXplKCZz dGF0cywgYnVmLCBzaXplb2YgYnVmKTsKLSAgICAgICAgIGlmIChzdW1tYXJ5KSB7Ci1kaWZmIC0t Z2l0IGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9kYi1tZGIvbWRiX2xheWVyLmggYi9s ZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2RiLW1kYi9tZGJfbGF5ZXIuaAotaW5kZXggNjQ3 ZDAwZGI5Li5jZjZkMDBkZDQgMTAwNjQ0Ci0tLS0gYS9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1s ZGJtL2RiLW1kYi9tZGJfbGF5ZXIuaAotKysrIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRi bS9kYi1tZGIvbWRiX2xheWVyLmgKLUBAIC00MSw2ICs0MSw3IEBACi0gI2RlZmluZSBDT05GSUdf TURCX01BWF9TSVpFICAgICAgICJuc3NsYXBkLW1kYi1tYXgtc2l6ZSIKLSAjZGVmaW5lIENPTkZJ R19NREJfTUFYX1JFQURFUlMgICAgIm5zc2xhcGQtbWRiLW1heC1yZWFkZXJzIgotICNkZWZpbmUg Q09ORklHX01EQl9NQVhfREJTICAgICAgICAibnNzbGFwZC1tZGItbWF4LWRicyIKLSsjZGVmaW5l IENPTkZJR19NREJfSU1QT1JUX1NUQVRTICAgIm5zc2xhcGQtbWRiLWltcG9ydC1zdGF0cyIKLSAK LSAjZGVmaW5lIERCTURCX0RCX01JTlNJWkUgICAgICAgICAgICAgKCA0TEwgKiBNRUdBQllURSAp Ci0gI2RlZmluZSBEQk1EQl9ESVNLX1JFU0VSVkUoZGlza3NpemUpICgoZGlza3NpemUpKjJVTEwv MTAwMFVMTCkKLUBAIC03Niw2ICs3Nyw3IEBAIHR5cGVkZWYgc3RydWN0Ci0gICAgIGludCBtYXhf cmVhZGVyczsKLSAgICAgaW50IG1heF9kYnM7Ci0gICAgIHVpbnQ2NF90IG1heF9zaXplOwotKyAg ICBpbnQgaW1wb3J0X3N0YXRzOwotIH0gZGJtZGJfY2ZnX3Q7Ci0gCi0gLyogY29uZmlnIHBhcmFt ZXRlcnMgbGltaXRzICovCi0tLSAKLTIuNTIuMAotCgpkaWZmIC0tZ2l0IGEvMDAxOS1Jc3N1ZS03 MDk2LTJuZC1EdXJpbmctcmVwbGljYXRpb24tb25saW5lLXRvdGFsLWluaXQtLnBhdGNoIGIvMDAx OS1Jc3N1ZS03MDk2LTJuZC1EdXJpbmctcmVwbGljYXRpb24tb25saW5lLXRvdGFsLWluaXQtLnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjY2YxZDM3Li4wMDAwMDAwCi0tLSBh LzAwMTktSXNzdWUtNzA5Ni0ybmQtRHVyaW5nLXJlcGxpY2F0aW9uLW9ubGluZS10b3RhbC1pbml0 LS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEzNSArMCwwIEBACi1Gcm9tIDQwNDg0Y2IwYjUw MzRiYzNjMWUyM2IyYWUxZjJkMzllZWRjZTA3ZTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1G cm9tOiBWaWt0b3IgQXNoaXJvdiA8dmFzaGlyb3ZAcmVkaGF0LmNvbT4KLURhdGU6IFR1ZSwgMjcg SmFuIDIwMjYgMTQ6MjY6MjkgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gSXNzdWUgNzA5NiAtICgy bmQpIER1cmluZyByZXBsaWNhdGlvbiBvbmxpbmUgdG90YWwgaW5pdCB0aGUKLSBmdW5jdGlvbiBp ZGxfaWRfaXNfaW5faWRsaXN0IGlzIG5vdCBzY2FsaW5nIHdpdGggbGFyZ2UgZGF0YWJhc2UgKCM3 MjA1KQotCi1CdWcgRGVzY3JpcHRpb246Ci1UaGUgZml4IGZvciAjNzA5NiBvcHRpbWl6ZWQgdGhl IEJEQiBiYWNrZW5kJ3MgYGlkbF9uZXdfcmFuZ2VfZmV0Y2goKWAKLWZ1bmN0aW9uIHRvIHVzZSBJ RCByYW5nZXMgaW5zdGVhZCBvZiBjaGVja2luZyB0aGUgZnVsbCBJRCBsaXN0IGR1cmluZwotb25s aW5lIHRvdGFsIGluaXRpYWxpemF0aW9uLiBIb3dldmVyLCB0aGUgTE1EQiBiYWNrZW5kJ3MKLWBp ZGxfbG1kYl9yYW5nZV9mZXRjaCgpYCBmdW5jdGlvbiBhbmQgaXRzIGNhbGxiYWNrCi1gaWRsX3Jh bmdlX2FkZF9pZF9jYigpYCB3ZXJlIG5vdCB1cGRhdGVkIGFuZCBzdGlsbCB1c2UgdGhlIG5vbi1z Y2FsaW5nCi1gaWRsX2lkX2lzX2luX2lkbGlzdCgpYCBmdW5jdGlvbi4KLQotRml4IERlc2NyaXB0 aW9uOgotQXBwbHkgdGhlIHNhbWUgb3B0aW1pemF0aW9uIHRvIHRoZSBMTURCIGJhY2tlbmQuCi0K LUZpeGVzOiBodHRwczovL2dpdGh1Yi5jb20vMzg5ZHMvMzg5LWRzLWJhc2UvaXNzdWVzLzcwOTYK LQotUmV2aWV3ZWQgYnk6IEB0Ym9yZGF6LCBAZHJvaWRlY2sgKFRoYW5rcyEpCi0tLS0KLSBsZGFw L3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2lkbF9uZXcuYyB8IDM5ICsrKysrKysrKystLS0tLS0t LS0tLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDE1IGluc2VydGlvbnMoKyksIDI0IGRlbGV0aW9u cygtKQotCi1kaWZmIC0tZ2l0IGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9pZGxfbmV3 LmMgYi9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2lkbF9uZXcuYwotaW5kZXggMmQ5Nzgz NTNmLi42MTNkNTM4MTUgMTAwNjQ0Ci0tLS0gYS9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJt L2lkbF9uZXcuYwotKysrIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9pZGxfbmV3LmMK LUBAIC02Niw2ICs2Niw3IEBAIHR5cGVkZWYgc3RydWN0IHsKLSAgICAgc2l6ZV90IGxlZnRvdmVy bGVuOwotICAgICBzaXplX3QgbGVmdG92ZXJjbnQ7Ci0gICAgIElETGlzdCAqaWRsOwotKyAgICBJ ZFJhbmdlX3QgKmlkcmFuZ2VfbGlzdDsKLSAgICAgaW50IGZsYWdfZXJyOwotICAgICBJRCBsYXN0 aWQ7Ci0gICAgIElEIHN1ZmZpeDsKLUBAIC03MDAsOSArNzAxLDkgQEAgZXJyb3I6Ci0gICAgICAg ICAgICAgICAgIH0KLSAgICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0tICAgICAgICBzbGFwaV9j aF9mcmVlKCh2b2lkICoqKSZsZWZ0b3Zlcik7Ci0tICAgICAgICBpZHJhbmdlX2ZyZWUoJmlkcmFu Z2VfbGlzdCk7Ci0gICAgIH0KLSsgICAgc2xhcGlfY2hfZnJlZSgodm9pZCAqKikmbGVmdG92ZXIp OwotKyAgICBpZHJhbmdlX2ZyZWUoJmlkcmFuZ2VfbGlzdCk7Ci0gICAgIHNsYXBpX2xvZ19lcnIo U0xBUElfTE9HX0ZJTFRFUiwgImlkbF9uZXdfcmFuZ2VfZmV0Y2giLAotICAgICAgICAgICAgICAg ICAgICJGb3VuZCAlZCBjYW5kaWRhdGVzOyBlcnJvciBjb2RlIGlzOiAlZFxuIiwKLSAgICAgICAg ICAgICAgICAgICBpZGwgPyBpZGwtPmJfbmlkcyA6IDAsICpmbGFnX2Vycik7Ci1AQCAtNzE2LDcg KzcxNyw2IEBAIHN0YXRpYyBpbnQKLSBpZGxfcmFuZ2VfYWRkX2lkX2NiKGRiaV92YWxfdCAqa2V5 LCBkYmlfdmFsX3QgKmRhdGEsIHZvaWQgKmN0eCkKLSB7Ci0gICAgIGlkbF9yYW5nZV9jdHhfdCAq cmN0eCA9IGN0eDsKLS0gICAgaW50IGlkbF9yYyA9IDA7Ci0gICAgIElEIGlkID0gMDsKLSAKLSAg ICAgaWYgKGtleS0+ZGF0YSA9PSBOVUxMKSB7Ci1AQCAtNzc5LDEwICs3NzksMTIgQEAgaWRsX3Jh bmdlX2FkZF9pZF9jYihkYmlfdmFsX3QgKmtleSwgZGJpX3ZhbF90ICpkYXRhLCB2b2lkICpjdHgp Ci0gICAgICAgICAgICAgICogZm91bmQgZW50cnkgaXMgdGhlIG9uZSBmcm9tIHRoZSBzdWZmaXgK LSAgICAgICAgICAgICAgKi8KLSAgICAgICAgICAgICByY3R4LT5zdWZmaXggPSBrZXl2YWw7Ci0t ICAgICAgICAgICAgaWRsX3JjID0gaWRsX2FwcGVuZF9leHRlbmQoJnJjdHgtPmlkbCwgaWQpOwot LSAgICAgICAgfSBlbHNlIGlmICgoa2V5dmFsID09IHJjdHgtPnN1ZmZpeCkgfHwgaWRsX2lkX2lz X2luX2lkbGlzdChyY3R4LT5pZGwsIGtleXZhbCkpIHsKLSsgICAgICAgICAgICBpZGxfYXBwZW5k X2V4dGVuZCgmcmN0eC0+aWRsLCBpZCk7Ci0rICAgICAgICAgICAgaWRyYW5nZV9hZGRfaWQoJnJj dHgtPmlkcmFuZ2VfbGlzdCwgaWQpOwotKyAgICAgICAgfSBlbHNlIGlmICgoa2V5dmFsID09IHJj dHgtPnN1ZmZpeCkgfHwgaWRsX2lkX2lzX2luX2lkbGlzdF9yYW5nZXMocmN0eC0+aWRsLCByY3R4 LT5pZHJhbmdlX2xpc3QsIGtleXZhbCkpIHsKLSAgICAgICAgICAgICAvKiB0aGUgcGFyZW50IGlz IHRoZSBzdWZmaXggb3IgYWxyZWFkeSBpbiBpZGwuICovCi0tICAgICAgICAgICAgaWRsX3JjID0g aWRsX2FwcGVuZF9leHRlbmQoJnJjdHgtPmlkbCwgaWQpOwotKyAgICAgICAgICAgIGlkbF9hcHBl bmRfZXh0ZW5kKCZyY3R4LT5pZGwsIGlkKTsKLSsgICAgICAgICAgICBpZHJhbmdlX2FkZF9pZCgm cmN0eC0+aWRyYW5nZV9saXN0LCBpZCk7Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg IC8qIE90aGVyd2lzZSwga2VlcCB0aGUge2tleXZhbCxpZH0gaW4gbGVmdG92ZXIgYXJyYXkgKi8K LSAgICAgICAgICAgICBpZiAoIXJjdHgtPmxlZnRvdmVyKSB7Ci1AQCAtNzk3LDE0ICs3OTksNyBA QCBpZGxfcmFuZ2VfYWRkX2lkX2NiKGRiaV92YWxfdCAqa2V5LCBkYmlfdmFsX3QgKmRhdGEsIHZv aWQgKmN0eCkKLSAgICAgICAgICAgICByY3R4LT5sZWZ0b3ZlcmNudCsrOwotICAgICAgICAgfQot ICAgICB9IGVsc2UgewotLSAgICAgICAgaWRsX3JjID0gaWRsX2FwcGVuZF9leHRlbmQoJnJjdHgt PmlkbCwgaWQpOwotLSAgICB9Ci0tICAgIGlmIChpZGxfcmMpIHsKLS0gICAgICAgIHNsYXBpX2xv Z19lcnIoU0xBUElfTE9HX0VSUiwgImlkbF9sbWRiX3JhbmdlX2ZldGNoIiwKLS0gICAgICAgICAg ICAgICAgICAgICAgIlVuYWJsZSB0byBleHRlbmQgaWQgbGlzdCAoZXJyPSVkKVxuIiwgaWRsX3Jj KTsKLS0gICAgICAgIGlkbF9mcmVlKCZyY3R4LT5pZGwpOwotLSAgICAgICAgcmN0eC0+ZmxhZ19l cnIgPSBMREFQX1VOV0lMTElOR19UT19QRVJGT1JNOwotLSAgICAgICAgcmV0dXJuIERCSV9SQ19O T1RGT1VORDsKLSsgICAgICAgIGlkbF9hcHBlbmRfZXh0ZW5kKCZyY3R4LT5pZGwsIGlkKTsKLSAg ICAgfQotICNpZiBkZWZpbmVkKERCX0FMTElEU19PTl9SRUFEKQotICAgICAvKiBlbmZvcmNlIHRo ZSBhbGxpZHMgcmVhZCBsaW1pdCAqLwotQEAgLTg0MSw3ICs4MzYsNiBAQCBpZGxfbG1kYl9yYW5n ZV9mZXRjaCgKLSB7Ci0gICAgIGludCByZXQgPSAwOwotICAgICBpbnQgcmV0MiA9IDA7Ci0tICAg IGludCBpZGxfcmMgPSAwOwotICAgICBkYmlfY3Vyc29yX3QgY3Vyc29yID0gezB9OwotICAgICBi YWNrX3R4biBzX3R4bjsKLSAgICAgc3RydWN0IGxkYm1pbmZvICpsaSA9IChzdHJ1Y3QgbGRibWlu Zm8gKiliZS0+YmVfZGF0YWJhc2UtPnBsZ19wcml2YXRlOwotQEAgLTg5MSw2ICs4ODUsNyBAQCBp ZGxfbG1kYl9yYW5nZV9mZXRjaCgKLSAgICAgaWRsX3JhbmdlX2N0eC5sYXN0aWQgPSAwOwotICAg ICBpZGxfcmFuZ2VfY3R4LmNvdW50ID0gMDsKLSAgICAgaWRsX3JhbmdlX2N0eC5pbmRleF9pZCA9 IGluZGV4X2lkOwotKyAgICBpZGxfcmFuZ2VfY3R4LmlkcmFuZ2VfbGlzdCA9IE5VTEw7Ci0gICAg IGlmIChvcGVyYXRvciAmIFNMQVBJX09QX1JBTkdFX05PX0lETF9TT1JUKSB7Ci0gICAgICAgICAg ICAgc3RydWN0IF9iYWNrX2luZm9faW5kZXhfa2V5IGJja19pbmZvOwotICAgICAgICAgICAgIC8q IFdlIGFyZSBkb2luZyBhIGJ1bGsgaW1wb3J0Ci1AQCAtOTY2LDIyICs5NjEsMTggQEAgZXJyb3I6 Ci0gICAgICAgICB3aGlsZShyZW1haW5pbmcgPiAwKSB7Ci0gICAgICAgICAgICAgZm9yIChzaXpl X3QgaSA9IDA7IGkgPCBpZGxfcmFuZ2VfY3R4LmxlZnRvdmVyY250OyBpKyspIHsKLSAgICAgICAg ICAgICAgICAgaWYgKGlkbF9yYW5nZV9jdHgubGVmdG92ZXJbaV0ua2V5ID4gMCAmJgotLSAgICAg ICAgICAgICAgICAgICAgaWRsX2lkX2lzX2luX2lkbGlzdChpZGxfcmFuZ2VfY3R4LmlkbCwgaWRs X3JhbmdlX2N0eC5sZWZ0b3ZlcltpXS5rZXkpICE9IDApIHsKLSsgICAgICAgICAgICAgICAgICAg IGlkbF9pZF9pc19pbl9pZGxpc3RfcmFuZ2VzKGlkbF9yYW5nZV9jdHguaWRsLCBpZGxfcmFuZ2Vf Y3R4LmlkcmFuZ2VfbGlzdCwgaWRsX3JhbmdlX2N0eC5sZWZ0b3ZlcltpXS5rZXkpICE9IDApIHsK LSAgICAgICAgICAgICAgICAgICAgIC8qIGlmIHRoZSBsZWZ0b3ZlciBrZXkgaGFzIGl0cyBwYXJl bnQgaW4gdGhlIGlkbCAqLwotLSAgICAgICAgICAgICAgICAgICAgaWRsX3JjID0gaWRsX2FwcGVu ZF9leHRlbmQoJmlkbF9yYW5nZV9jdHguaWRsLCBpZGxfcmFuZ2VfY3R4LmxlZnRvdmVyW2ldLmlk KTsKLS0gICAgICAgICAgICAgICAgICAgIGlmIChpZGxfcmMpIHsKLS0gICAgICAgICAgICAgICAg ICAgICAgICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xPR19FUlIsICJpZGxfbG1kYl9yYW5nZV9mZXRj aCIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5hYmxlIHRvIGV4 dGVuZCBpZCBsaXN0IChlcnI9JWQpXG4iLCBpZGxfcmMpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGlkbF9mcmVlKCZpZGxfcmFuZ2VfY3R4LmlkbCk7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgYnJlYWs7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICAgICAgICBp ZGxfYXBwZW5kX2V4dGVuZCgmaWRsX3JhbmdlX2N0eC5pZGwsIGlkbF9yYW5nZV9jdHgubGVmdG92 ZXJbaV0uaWQpOwotKyAgICAgICAgICAgICAgICAgICAgaWRyYW5nZV9hZGRfaWQoJmlkbF9yYW5n ZV9jdHguaWRyYW5nZV9saXN0LCBpZGxfcmFuZ2VfY3R4LmxlZnRvdmVyW2ldLmlkKTsKLSAgICAg ICAgICAgICAgICAgICAgIGlkbF9yYW5nZV9jdHgubGVmdG92ZXJbaV0ua2V5ID0gMDsKLSAgICAg ICAgICAgICAgICAgICAgIHJlbWFpbmluZy0tOwotICAgICAgICAgICAgICAgICB9Ci0gICAgICAg ICAgICAgfQotICAgICAgICAgfQotLSAgICAgICAgc2xhcGlfY2hfZnJlZSgodm9pZCAqKikmaWRs X3JhbmdlX2N0eC5sZWZ0b3Zlcik7Ci0gICAgIH0KLSsgICAgc2xhcGlfY2hfZnJlZSgodm9pZCAq KikmaWRsX3JhbmdlX2N0eC5sZWZ0b3Zlcik7Ci0rICAgIGlkcmFuZ2VfZnJlZSgmaWRsX3Jhbmdl X2N0eC5pZHJhbmdlX2xpc3QpOwotICAgICAqZmxhZ19lcnIgPSBpZGxfcmFuZ2VfY3R4LmZsYWdf ZXJyOwotICAgICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xPR19GSUxURVIsICJpZGxfbG1kYl9yYW5n ZV9mZXRjaCIsCi0gICAgICAgICAgICAgICAgICAgIkZvdW5kICVkIGNhbmRpZGF0ZXM7IGVycm9y IGNvZGUgaXM6ICVkXG4iLAotLS0gCi0yLjUyLjAKLQoKZGlmZiAtLWdpdCBhLzAwMjAtSXNzdWUt NzIwNi1TaG91bGQtbG9nLXdoZXRoZXItVExTLWtleS1pcy1QUUMtb3Itbm90LS5wYXRjaCBiLzAw MjAtSXNzdWUtNzIwNi1TaG91bGQtbG9nLXdoZXRoZXItVExTLWtleS1pcy1QUUMtb3Itbm90LS5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwNDE1ZS4uMDAwMDAwMAotLS0g YS8wMDIwLUlzc3VlLTcyMDYtU2hvdWxkLWxvZy13aGV0aGVyLVRMUy1rZXktaXMtUFFDLW9yLW5v dC0ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxNDkgKzAsMCBAQAotRnJvbSA4YzZkMWNmY2Ey MmY4N2IyMGI3OWE0MTljZWFiZGIxODI4NDZmZjRhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQot RnJvbTogcHJvZ2llcjM4OSA8cHJvZ2llckByZWRoYXQuY29tPgotRGF0ZTogVHVlLCAyNyBKYW4g MjAyNiAxNTozOTozOSArMDEwMAotU3ViamVjdDogW1BBVENIXSBJc3N1ZSA3MjA2IC0gU2hvdWxk IGxvZyB3aGV0aGVyIFRMUyBrZXkgaXMgUFFDIG9yIG5vdCAoIzcyMDcpCi0KLUFwcGVuZCBbUFFD XSB0byB0aGUgY2lwaGVyIG5hbWUgd2hlbiBsb2dnaW5nIFNTTC9UTFMgaWYgdGhlIEtleSBFeGNo YW5nZSBpcyBvbmUgb2YgdGhlIEtFTSBncm91cAotSWYgY29ubmVjdGlvbiBkZWJ1ZyBsZXZlbCBp cyBlbmFibGVkLCBsb2dzIGluIGVycm9yIGxvZyB0aGUga2VhVHlwZSBhbmQga2VhR3JvdXAgKGFz IGludGVnZXIpCi0KLUlzc3VlOiAjNzIwNgotCi1SZXZpZXdlZCBieTogQHRib3JkYXosIEBkcm9p ZGVjayAoVGhhbmtzISkKLQotKiBJc3N1ZSA3MjA2IC0gU2hvdWxkIGxvZyB3aGV0aGVyIFRMUyBr ZXkgaXMgUFFDIG9yIG5vdAotCi0qIEZpeCBTb3VyY2VyeSBBL0kgY29tbWVudHMKLQotKiBDaGVj ayBQUUMgaW4gdGVzdCBjYXNlCi0KLSogVXBkYXRlIGxkYXAvc2VydmVycy9zbGFwZC9hdXRoLmMK LQotQ28tYXV0aG9yZWQtYnk6IFNpbW9uIFBpY2h1Z2luIDxzcGljaHVnaUByZWRoYXQuY29tPgot Ci0tLS0tLS0tLS0KLQotQ28tYXV0aG9yZWQtYnk6IFNpbW9uIFBpY2h1Z2luIDxzcGljaHVnaUBy ZWRoYXQuY29tPgotLS0tCi0gZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL3Rscy9tbGRzYV90ZXN0 LnB5IHwgIDcgKysrKwotIGxkYXAvc2VydmVycy9zbGFwZC9hdXRoLmMgICAgICAgICAgICAgICAg ICB8IDQ1ICsrKysrKysrKysrKysrKysrKysrKy0KLSBsZGFwL3NlcnZlcnMvc2xhcGQvc3NsLmMg ICAgICAgICAgICAgICAgICAgfCAgMiArLQotIDMgZmlsZXMgY2hhbmdlZCwgNTIgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2RpcnNydnRlc3RzL3Rlc3RzL3N1 aXRlcy90bHMvbWxkc2FfdGVzdC5weSBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy90bHMvbWxk c2FfdGVzdC5weQotaW5kZXggMmM4MTUwODhiLi5kNmNiYWY2NjIgMTAwNjQ0Ci0tLS0gYS9kaXJz cnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvdGxzL21sZHNhX3Rlc3QucHkKLSsrKyBiL2RpcnNydnRlc3Rz L3Rlc3RzL3N1aXRlcy90bHMvbWxkc2FfdGVzdC5weQotQEAgLTI3NCw2ICsyNzQsNyBAQCBkZWYg dGVzdF9tbGRzYSh0b3BvKToKLSAgICAgIiIiCi0gCi0gICAgIGluc3QgPSB0b3BvLnN0YW5kYWxv bmUKLSsgICAgaW5zdC5jb25maWcuc2V0KCduc3NsYXBkLWVycm9ybG9nLWxldmVsJywgc3RyKDE2 Mzg0ICsgOCkpCi0gICAgIGluc3QuZW5hYmxlX3RscygpCi0gCi0gICAgIGNtID0gQ2VydG1hcExl Z2FjeShpbnN0KQotQEAgLTI5Myw2ICsyOTQsOSBAQCBkZWYgdGVzdF9tbGRzYSh0b3BvKToKLSAg ICAgICAgICAgICAnbG9naW5TaGVsbCc6ICcvYmluL2ZhbHNlJywKLSAgICAgICAgICAgICAnZGVz Y3JpcHRpb24nOiBjZXJ0X2RuIH0pCi0gCi0rICAgIGluc3QuY29uZmlnLnNldCgibnNzbGFwZC1h Y2Nlc3Nsb2ctbG9nYnVmZmVyaW5nIiwgIm9mZiIpCi0rICAgIGluc3QuY29uZmlnLnNldCgibnNz bGFwZC1lcnJvcmxvZy1sb2didWZmZXJpbmciLCAib2ZmIikKLSsKLSAgICAgdG1wZGlyX2t3YXJn cyA9IHt9Ci0gICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDEyKToKLSAgICAgICAgIHRt cGRpcl9rd2FyZ3NbJ2RlbGV0ZSddID0gbm90IERFQlVHR0lORwotQEAgLTMxMyw2ICszMTcsOSBA QCBkZWYgdGVzdF9tbGRzYSh0b3BvKToKLSAgICAgICAgIHJlcy5jaGVja19yZXR1cm5jb2RlKCkK LSAgICAgICAgICMgSWYgbGRhcHNlYXJjaCBpcyBzdWNjZXNzZnVsIHRoZW4gZGVmYXVsdG5hbWlu Z2NvbnRleHQgc2hvdWxkIGJlIGluIHJlcy5zdGRvdXQKLSAgICAgICAgIGFzc2VydCAiZGVmYXVs dG5hbWluZ2NvbnRleHQiIGluIHJlcy5zdGRvdXQKLSsgICAgYXNzZXJ0IGluc3QuZHNfYWNjZXNz X2xvZy5tYXRjaCgnLipSRVNVTFQuKmRuPSJ1aWQ9dGVzdF91c2VyLG91PXBlb3BsZSxkYz1leGFt cGxlLGRjPWNvbSIuKicpCi0rICAgIGFzc2VydCBpbnN0LmRzX2FjY2Vzc19sb2cubWF0Y2goJy4q VExTLipbUFFDXS4qJykKLSsgICAgYXNzZXJ0IGluc3QuZHNfZXJyb3JfbG9nLm1hdGNoKCcuKmNo ZWNrX3BxYy4qJykKLSAKLSAKLSBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotZGlmZiAtLWdp dCBhL2xkYXAvc2VydmVycy9zbGFwZC9hdXRoLmMgYi9sZGFwL3NlcnZlcnMvc2xhcGQvYXV0aC5j Ci1pbmRleCA0OGU0YjcxMjkuLjllODM0MDhkNCAxMDA2NDQKLS0tLSBhL2xkYXAvc2VydmVycy9z bGFwZC9hdXRoLmMKLSsrKyBiL2xkYXAvc2VydmVycy9zbGFwZC9hdXRoLmMKLUBAIC0zOTUsNiAr Mzk1LDQzIEBAIGhhbmRsZV9iYWRfY2VydGlmaWNhdGUodm9pZCAqY2xpZW50RGF0YSwgUFJGaWxl RGVzYyAqcHJmZCkKLSB9Ci0gCi0gCi0rLyoKLSsgKiBEZXRlcm1pbmUgaWYgdGhlIGNvbm5lY3Rp b24ga2V5IGV4Y2hhbmdlIGlzIFBvc3QgUXVhbnR1bSBDcnlwdG9ncmFwaHkgYXdhcmUuCi0rICog VGhpcyBmdW5jdGlvbiBtYXkgbmVlZCB0byBldm9sdmUgd2l0aCBOU1MgYXMgbW9yZSBQUUMgbWV0 aG9kcyBnZXQgc3VwcG9ydGVkLgotKyAqLwotK3N0YXRpYyBib29sCi0rY2hlY2tfcHFjKHVpbnQ2 NF90IGNvbm5pZCwgU1NMQ2hhbm5lbEluZm8gKnNjaSkKLSt7Ci0rICAgIC8qCi0rICAgICAqIEZZ STogVG8gaW50ZXJwcmV0IHRoZSB2YWx1ZXM6Ci0rICAgICAqIEtlYVR5cGUgYW5kIEtlYUdyb3Vw IHZhbHVlcyBhcmUgZGVmaW5lZCBpbgotKyAgICAgKiBodHRwczovL2dpdGh1Yi5jb20vbnNzLWRl di9uc3MvYmxvYi9tYXN0ZXIvbGliL3NzbC9zc2x0LmgKLSsgICAgICogUmVzcGVjdGl2ZWx5IGlu IFNTTEtFQVR5cGUgYW5kIFNTTE5hbWVkR3JvdXAgZW51bXMKLSsgICAgICovCi0rICAgIHNsYXBp X2xvZ19lcnIoU0xBUElfTE9HX0NPTk5TLCAiY2hlY2tfcHFjIiwgImNvbm49JSIgUFJJdTY0ICIg VExTIGtlYVR5cGU9JWQga2VhR3JvdXA9JWRcbiIsCi0rICAgICAgICAgICAgICAgICAgY29ubmlk LCBzY2ktPmtlYVR5cGUsIHNjaS0+a2VhR3JvdXApOwotKyNpZmRlZiBNQVhfTUxfRFNBX1BSSVZB VEVfS0VZX0xFTgotKyAgICAvKiBOU1Mgc3VwcG9ydHMgUFFDIChiZWNhdXNlIG9mIHRoZSBpZmRl ZikuIE5vdyBsZXRzIGNoZWNrIGlmIHRoZSBjb25uZWN0aW9uIHVzZXMgaXQgKi8KLSsgICAgLyog Q2hlY2sgdGhhdCBQUUMgS2VhVHlwZSBpcyBoeWJyaWQgKi8KLSsgICAgc3dpdGNoIChzY2ktPmtl YVR5cGUpIHsKLSsgICAgICAgIGNhc2Ugc3NsX2tlYV9lY2RoX2h5YnJpZDoKLSsgICAgICAgIGNh c2Ugc3NsX2tlYV9lY2RoX2h5YnJpZF9wc2s6Ci0rICAgICAgICAgICAgYnJlYWs7Ci0rICAgICAg ICBkZWZhdWx0OgotKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSsgICAgfQotKyAgICAvKiBD aGVjayB0aGF0IFBRQyBrZWFHcm91cCBpcyBLRU0gKi8KLSsgICAgc3dpdGNoIChzY2ktPmtlYUdy b3VwKSB7Ci0rICAgICAgICBjYXNlIHNzbF9ncnBfa2VtX3NlY3AyNTZyMW1sa2VtNzY4OgotKyAg ICAgICAgY2FzZSBzc2xfZ3JwX2tlbV9zZWNwMzg0cjFtbGtlbTEwMjQ6Ci0rICAgICAgICBjYXNl IHNzbF9ncnBfa2VtX21sa2VtNzY4eDI1NTE5OgotKyAgICAgICAgY2FzZSBzc2xfZ3JwX2tlbV94 eWJlcjc2OGQwMDoKLSsgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSsgICAgfQotKyNlbmRpZgot KyAgICByZXR1cm4gZmFsc2U7Ci0rfQotKwotIC8qCi0gICogR2V0IGFuIGlkZW50aXR5IGZyb20g dGhlIGNsaWVudCdzIGNlcnRpZmljYXRlIChpZiBhbnkgd2FzIHNlbnQpLgotICAqCi1AQCAtNDE3 LDYgKzQ1NCw3IEBAIGhhbmRsZV9oYW5kc2hha2VfZG9uZShQUkZpbGVEZXNjICpwcmZkLCB2b2lk ICpjbGllbnREYXRhKQotICAgICBTU0xDaXBoZXJTdWl0ZUluZm8gY2lwaGVySW5mbzsKLSAgICAg Y2hhciAqc3ViamVjdCA9IE5VTEw7Ci0gICAgIGNoYXIgc3NsdmVyc2lvbls2NF07Ci0rICAgIGJv b2wgcHFjID0gZmFsc2U7Ci0gICAgIGludCBlcnIgPSAwOwotIAotICAgICBpZiAoKHNsYXBkX3Nz bF9nZXRDaGFubmVsSW5mbyhwcmZkLCAmY2hhbm5lbEluZm8sIHNpemVvZihjaGFubmVsSW5mbykp KSAhPSBTRUNTdWNjZXNzKSB7Ci1AQCAtNDU0LDcgKzQ5MiwxMiBAQCBoYW5kbGVfaGFuZHNoYWtl X2RvbmUoUFJGaWxlRGVzYyAqcHJmZCwgdm9pZCAqY2xpZW50RGF0YSkKLSAgICAgfQotIAotICAg ICBrZXlTaXplID0gY2lwaGVySW5mby5lZmZlY3RpdmVLZXlCaXRzOwotLSAgICBjaXBoZXIgPSBz bGFwaV9jaF9zdHJkdXAoY2lwaGVySW5mby5zeW1DaXBoZXJOYW1lKTsKLSsgICAgcHFjID0gY2hl Y2tfcHFjKGNvbm4tPmNfY29ubmlkLCAmY2hhbm5lbEluZm8pOwotKyAgICBpZiAocHFjKSB7Ci0r ICAgICAgICBjaXBoZXIgPSBzbGFwaV9jaF9zbXByaW50ZigiJXNbUFFDXSIsIGNpcGhlckluZm8u c3ltQ2lwaGVyTmFtZSk7Ci0rICAgIH0gZWxzZSB7Ci0rICAgICAgICBjaXBoZXIgPSBzbGFwaV9j aF9zdHJkdXAoY2lwaGVySW5mby5zeW1DaXBoZXJOYW1lKTsKLSsgICAgfQotIAotICAgICAvKiBJ ZiBpbnNpZGUgYW4gU3RhcnQgVExTIG9wZXJhdGlvbiwgcGVyZm9ybSB0aGUgcHJpdmFjeSBsZXZl bCBkaXNjb3ZlcnkKLSAgICAgICogYW5kIGlmIHRoZSBzZWN1cml0eSBkZWdyZWUgYWNoaWV2ZWQg YWZ0ZXIgdGhlIGhhbmRzaGFrZSBpcyBub3QgcmVja29uZWQKLWRpZmYgLS1naXQgYS9sZGFwL3Nl cnZlcnMvc2xhcGQvc3NsLmMgYi9sZGFwL3NlcnZlcnMvc2xhcGQvc3NsLmMKLWluZGV4IDA1M2Ri NTQyNC4uN2Q1ZGIyY2RkIDEwMDY0NAotLS0tIGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL3NzbC5jCi0r KysgYi9sZGFwL3NlcnZlcnMvc2xhcGQvc3NsLmMKLUBAIC03NDgsNyArNzQ4LDcgQEAgU1NMUExD WV9JbnN0YWxsKHZvaWQpCi0gICAgIGlmICghc2xhcGRfcGsxMV9pc0ZJUFMoKSkgewotICAgICAg ICAgLyogU2V0IGV4cGxpY2l0bHkgUFFDIGFsZ29yaXRobSBwb2xpY3kgaWYgaXQgaXMgbm90IHNl dCBieSBkZWZhdWx0ICovCi0gICAgICAgICBmb3IgKHNpemVfdCBpPTA7IHMgPT0gU0VDU3VjY2Vz cyAmJiBpIDwgUFJfQVJSQVlfU0laRShvaWRzKTsgaSsrKSB7Ci0tICAgICAgICAgICAgaW50IG9m bGFncyA9IDA7Ci0rICAgICAgICAgICAgUFJVaW50MzIgb2ZsYWdzID0gMDsKLSAgICAgICAgICAg ICAodm9pZCkgTlNTX0dldEFsZ29yaXRobVBvbGljeShvaWRzW2ldLCAmb2ZsYWdzKTsKLSAgICAg ICAgICAgICBpZiAoKG9mbGFncyAmIGZsYWdzKSAhPSBmbGFncykgewotICAgICAgICAgICAgICAg ICBzID0gTlNTX1NldEFsZ29yaXRobVBvbGljeShvaWRzW2ldLCBmbGFncywgMCk7Ci0tLSAKLTIu NTIuMAotCgpkaWZmIC0tZ2l0IGEvMDAyMS1Jc3N1ZS03MDI3LTJuZC0zODktZHMtYmFzZS1PcGVu U2Nhbkh1Yi1MZWFrcy1EZXRlY3RlLnBhdGNoIGIvMDAyMS1Jc3N1ZS03MDI3LTJuZC0zODktZHMt YmFzZS1PcGVuU2Nhbkh1Yi1MZWFrcy1EZXRlY3RlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwODI3N2ZiLi4wMDAwMDAwCi0tLSBhLzAwMjEtSXNzdWUtNzAyNy0ybmQtMzg5 LWRzLWJhc2UtT3BlblNjYW5IdWItTGVha3MtRGV0ZWN0ZS5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDUzICswLDAgQEAKLUZyb20gMjdkM2VhMjExODQ3ZmE3YWU2NzRjNWU0ZGNmNDg1NzA2ZTRh YzU5MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFZpa3RvciBBc2hpcm92IDx2YXNo aXJvdkByZWRoYXQuY29tPgotRGF0ZTogRnJpLCAzMCBKYW4gMjAyNiAxMjowMDoxMyArMDEwMAot U3ViamVjdDogW1BBVENIXSBJc3N1ZSA3MDI3IC0gKDJuZCkgMzg5LWRzLWJhc2UgT3BlblNjYW5I dWIgTGVha3MgRGV0ZWN0ZWQKLSAoIzcyMTEpCi0KLUZpeCBEZXNjcmlwdGlvbjoKLVVwZGF0ZSBj b3Zlcml0eSBhbm5vdGF0aW9ucy4KLQotUmVsYXRlczogaHR0cHM6Ly9naXRodWIuY29tLzM4OWRz LzM4OS1kcy1iYXNlL2lzc3Vlcy83MDI3Ci0KLVJldmlld2VkIGJ5OiBAYWFkaGlrYXIgKFRoYW5r cyEpCi0tLS0KLSBsZGFwL3NlcnZlcnMvc2xhcGQvbG9nLmMgfCA2ICsrKy0tLQotIDEgZmlsZSBj aGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9s ZGFwL3NlcnZlcnMvc2xhcGQvbG9nLmMgYi9sZGFwL3NlcnZlcnMvc2xhcGQvbG9nLmMKLWluZGV4 IGVhNzQ0YWMxZS4uODBjMDczODJhIDEwMDY0NAotLS0tIGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL2xv Zy5jCi0rKysgYi9sZGFwL3NlcnZlcnMvc2xhcGQvbG9nLmMKLUBAIC0yMDYsOCArMjA2LDggQEAg Y29tcHJlc3NfbG9nX2ZpbGUoY2hhciAqbG9nX25hbWUsIGludDMyX3QgbW9kZSkKLSAKLSAgICAg aWYgKChzb3VyY2UgPSBmb3Blbihsb2dfbmFtZSwgInIiKSkgPT0gTlVMTCkgewotICAgICAgICAg LyogRmFpbGVkIHRvIG9wZW4gbG9nIGZpbGUgKi8KLS0gICAgICAgIC8qIGNvdmVyaXR5W2xlYWtl ZF9zdG9yYWdlXSBnemNsb3NlIGRvZXMgY2xvc2UgRkQgKi8KLSAgICAgICAgIGd6Y2xvc2Uob3V0 ZmlsZSk7Ci0rICAgICAgICAvKiBjb3Zlcml0eVtsZWFrZWRfaGFuZGxlXSBnemNsb3NlIGRvZXMg Y2xvc2UgRkQgKi8KLSAgICAgICAgIHJldHVybiAtMTsKLSAgICAgfQotIAotQEAgLTIxNywxNyAr MjE3LDE3IEBAIGNvbXByZXNzX2xvZ19maWxlKGNoYXIgKmxvZ19uYW1lLCBpbnQzMl90IG1vZGUp Ci0gICAgICAgICBpZiAoYnl0ZXNfd3JpdHRlbiA9PSAwKQotICAgICAgICAgewotICAgICAgICAg ICAgIGZjbG9zZShzb3VyY2UpOwotLSAgICAgICAgICAgIC8qIGNvdmVyaXR5W2xlYWtlZF9zdG9y YWdlXSBnemNsb3NlIGRvZXMgY2xvc2UgRkQgKi8KLSAgICAgICAgICAgICBnemNsb3NlKG91dGZp bGUpOwotKyAgICAgICAgICAgIC8qIGNvdmVyaXR5W2xlYWtlZF9oYW5kbGVdIGd6Y2xvc2UgZG9l cyBjbG9zZSBGRCAqLwotICAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICAgIH0KLSAgICAg ICAgIGJ5dGVzX3JlYWQgPSBmcmVhZChidWYsIDEsIExPR19DSFVOSywgc291cmNlKTsKLSAgICAg fQotLSAgICAvKiBjb3Zlcml0eVtsZWFrZWRfc3RvcmFnZV0gZ3pjbG9zZSBkb2VzIGNsb3NlIEZE ICovCi0gICAgIGd6Y2xvc2Uob3V0ZmlsZSk7Ci0gICAgIGZjbG9zZShzb3VyY2UpOwotICAgICBQ Ul9EZWxldGUobG9nX25hbWUpOyAvKiByZW1vdmUgdGhlIG9sZCB1bmNvbXByZXNzZWQgbG9nICov Ci0gCi0rICAgIC8qIGNvdmVyaXR5W2xlYWtlZF9oYW5kbGVdIGd6Y2xvc2UgZG9lcyBjbG9zZSBG RCAqLwotICAgICByZXR1cm4gMDsKLSB9Ci0gCi0tLSAKLTIuNTIuMAotCgpkaWZmIC0tZ2l0IGEv MDAyMi1Jc3N1ZS03MjEzLU1EQl9CQURfVkFMU0laRS1lcnJvci13aGlsZS1oYW5kbGluZy1WTFYt LnBhdGNoIGIvMDAyMi1Jc3N1ZS03MjEzLU1EQl9CQURfVkFMU0laRS1lcnJvci13aGlsZS1oYW5k bGluZy1WTFYtLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZTA2OWIzLi4w MDAwMDAwCi0tLSBhLzAwMjItSXNzdWUtNzIxMy1NREJfQkFEX1ZBTFNJWkUtZXJyb3Itd2hpbGUt aGFuZGxpbmctVkxWLS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE5NSArMCwwIEBACi1Gcm9t IDVlYmNlMjJkNDIxNGJlYzVlZDk0YWQ4NGM0NDQ4MTY0YmU5OTM4OWEgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCi1Gcm9tOiBwcm9naWVyMzg5IDxwcm9naWVyQHJlZGhhdC5jb20+Ci1EYXRlOiBN b24sIDIgRmViIDIwMjYgMTU6Mzk6MTggKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gSXNzdWUgNzIx MyAtIE1EQl9CQURfVkFMU0laRSBlcnJvciB3aGlsZSBoYW5kbGluZyBWTFYgKCM3MjE0KQotCi0q IElzc3VlIDcyMTMgLSBNREJfQkFEX1ZBTFNJWkUgZXJyb3Igd2hpbGUgaGFuZGxpbmcgVkxWCi1B dm9pZCBmYWlsaW5nIGxtZGIgb3BlcmF0aW9uIHdoZW4gaGFuZGxpbmcgVkxWIGluZGV4IGJ5IHRy dW5jYXRpbmcgdGhlIGtleSBzbyB0aGF0IGtleStkYXRhIGlzIHNtYWxsIGVub3VnaC4KLQotSXNz dWU6ICM3MjEzCi0KLVJldmlld2VkIGJ5OiBAbXJleW5vbGRzMzg5ICwgQHZhc2hpcm92IChUaGFu a3MhKQotCi1Bc3Npc3RlZCBieTogQ2xhdWRlIEEvSQotLS0tCi0gLi4uL3Rlc3RzL3N1aXRlcy92 bHYvcmVncmVzc2lvbl90ZXN0LnB5ICAgICAgIHwgMTEwICsrKysrKysrKysrKysrKysrKwotIC4u Li9zbGFwZC9iYWNrLWxkYm0vZGItbWRiL21kYl9sYXllci5jICAgICAgICB8ICAgNSArCi0gbGRh cC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS92bHYuYyAgICAgICAgICAgIHwgICA3ICstCi0gMyBm aWxlcyBjaGFuZ2VkLCAxMjEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0t Z2l0IGEvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL3Zsdi9yZWdyZXNzaW9uX3Rlc3QucHkgYi9k aXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvdmx2L3JlZ3Jlc3Npb25fdGVzdC5weQotaW5kZXggZjc4 NDdhYzc0Li43Y2RmMTZhODQgMTAwNjQ0Ci0tLS0gYS9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMv dmx2L3JlZ3Jlc3Npb25fdGVzdC5weQotKysrIGIvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL3Zs di9yZWdyZXNzaW9uX3Rlc3QucHkKLUBAIC0xMTc1LDYgKzExNzUsMTE2IEBAIGRlZiB0ZXN0X3Zs dl93aXRoX21yKHZsdl9zZXR1cF93aXRoX3VpZF9tcik6Ci0gCi0gCi0gCi0rZGVmIHRlc3Rfdmx2 X2xvbmdfYXR0cmlidXRlX3ZhbHVlKHRvcG9sb2d5X3N0LCByZXF1ZXN0KToKLSsgICAgIiIiCi0r ICAgIFRlc3QgVkxWIHdpdGggYW4gZW50cnkgY29udGFpbmluZyBhIHZlcnkgbG9uZyBhdHRyaWJ1 dGUgdmFsdWUgKDJLKS4KLSsKLSsgICAgOmlkOiA5OTEyNmZhNC0wMDNlLTExZjEtYjdkNi1jODUz MDlkNWMzZTMKLSsgICAgOnNldHVwOiBTdGFuZGFsb25lIGluc3RhbmNlLgotKyAgICA6c3RlcHM6 Ci0rICAgICAgICAxLiBDbGVhbnVwIGxlZnRvdmVyIGZyb20gcHJldmlvdXMgdGVzdHMKLSsgICAg ICAgIDIuIENyZWF0ZSBWTFYgc2VhcmNoIGFuZCBpbmRleCBvbiBjbiBhdHRyaWJ1dGUKLSsgICAg ICAgIDMuIFJlaW5kZXggVkxWCi0rICAgICAgICA0LiBBZGQgYW4gZW50cnkgd2l0aCBhIGNuIGF0 dHJpYnV0ZSBoYXZpbmcgMksgY2hhcmFjdGVyIHZhbHVlCi0rICAgICAgICA1LiBWZXJpZnkgdGhl IGVudHJ5IHdhcyBhZGRlZCBzdWNjZXNzZnVsbHkKLSsgICAgICAgIDYuIFBlcmZvcm0gYSBWTFYg c2VhcmNoIHRvIGVuc3VyZSBpdCBzdGlsbCB3b3JrcwotKyAgICAgICAgNy4gQWRkIGFub3RoZXIg ZW50cnkgd2l0aCBhIGNuIGF0dHJpYnV0ZSBoYXZpbmcgMksgY2hhcmFjdGVyIHZhbHVlCi0rICAg ICAgICA4LiBWZXJpZnkgdGhlIGVudHJ5IHdhcyBhZGRlZCBzdWNjZXNzZnVsbHkKLSsgICAgICAg IDkuIFBlcmZvcm0gYSBWTFYgc2VhcmNoIHRvIGVuc3VyZSBpdCBzdGlsbCB3b3JrcwotKyAgICA6 ZXhwZWN0ZWRyZXN1bHRzOgotKyAgICAgICAgMS4gU2hvdWxkIFN1Y2Nlc3MuCi0rICAgICAgICAy LiBTaG91bGQgU3VjY2Vzcy4KLSsgICAgICAgIDMuIFNob3VsZCBTdWNjZXNzLgotKyAgICAgICAg NC4gU2hvdWxkIFN1Y2Nlc3MuCi0rICAgICAgICA1LiBTaG91bGQgU3VjY2Vzcy4KLSsgICAgICAg IDYuIFNob3VsZCBTdWNjZXNzLgotKyAgICAgICAgNy4gU2hvdWxkIFN1Y2Nlc3MuCi0rICAgICAg ICA4LiBTaG91bGQgU3VjY2Vzcy4KLSsgICAgICAgIDkuIFNob3VsZCBTdWNjZXNzLgotKyAgICAi IiIKLSsgICAgaW5zdCA9IHRvcG9sb2d5X3N0LnN0YW5kYWxvbmUKLSsgICAgcmVpbmRleF90YXNr ID0gVGFza3MoaW5zdCkKLSsKLSsgICAgdXNlcnNfdG9fZGVsZXRlID0gW10KLSsKLSsgICAgZGVm IGZpbigpOgotKyAgICAgICAgY2xlYW51cChpbnN0KQotKyAgICAgICAgIyBDbGVhbiB0aGUgYWRk ZWQgdXNlcnMKLSsgICAgICAgIGZvciB1c2VyIGluIHVzZXJzX3RvX2RlbGV0ZToKLSsgICAgICAg ICAgICB1c2VyLmRlbGV0ZSgpCi0rCi0rICAgIGlmIG5vdCBERUJVR0dJTkc6Ci0rICAgICAgICBy ZXF1ZXN0LmFkZGZpbmFsaXplcihmaW4pCi0rCi0rICAgICMgQ2xlYW4gcHJldmlvdXMgdGVzdHMg bGVmdG92ZXIKLSsgICAgZmluKCkKLSsKLSsgICAgIyBDcmVhdGUgVkxWIHNlYXJjaCBhbmQgaW5k ZXgKLSsgICAgdmx2X3NlYXJjaCwgdmx2X2luZGV4ID0gY3JlYXRlX3Zsdl9zZWFyY2hfYW5kX2lu ZGV4KGluc3QpCi0rICAgIGFzc2VydCByZWluZGV4X3Rhc2sucmVpbmRleCgKLSsgICAgICAgIHN1 ZmZpeD1ERUZBVUxUX1NVRkZJWCwKLSsgICAgICAgIGF0dHJuYW1lPXZsdl9pbmRleC5yZG4sCi0r ICAgICAgICBhcmdzPXtUQVNLX1dBSVQ6IFRydWV9LAotKyAgICAgICAgdmx2PVRydWUKLSsgICAg KSA9PSAwCi0rCi0rICAgICMgQWRkIGEgZmV3IHJlZ3VsYXIgdXNlcnMgZmlyc3QKLSsgICAgYWRk X3VzZXJzKGluc3QsIDEwKQotKwotKyAgICAjIENyZWF0ZSBhIHZlcnkgbG9uZyBjbiB2YWx1ZSAo MksgY2hhcmFjdGVycykKLSsgICAgbG9uZ19jbl92YWx1ZSA9ICdhJyAqIDIwNDggKyAnMScKLSsK LSsgICAgIyBBZGQgYW4gZW50cnkgd2l0aCB0aGUgbG9uZyBjbiBhdHRyaWJ1dGUKLSsgICAgdXNl cnMgPSBVc2VyQWNjb3VudHMoaW5zdCwgREVGQVVMVF9TVUZGSVgpCi0rICAgIHVzZXJfcHJvcGVy dGllcyA9IHsKLSsgICAgICAgICd1aWQnOiAnbG9uZ2NudXNlcjEnLAotKyAgICAgICAgJ2NuJzog bG9uZ19jbl92YWx1ZSwKLSsgICAgICAgICdzbic6ICd1c2VyMScsCi0rICAgICAgICAndWlkTnVt YmVyJzogJzk5OTk5JywKLSsgICAgICAgICdnaWROdW1iZXInOiAnOTk5OTknLAotKyAgICAgICAg J2hvbWVEaXJlY3RvcnknOiAnL2hvbWUvbG9uZ2NudXNlcjEnCi0rICAgIH0KLSsgICAgdXNlciA9 IHVzZXJzLmNyZWF0ZShwcm9wZXJ0aWVzPXVzZXJfcHJvcGVydGllcykKLSsgICAgdXNlcnNfdG9f ZGVsZXRlLmFwcGVuZCh1c2VyKTsKLSsKLSsgICAgIyBWZXJpZnkgdGhlIGVudHJ5IHdhcyBjcmVh dGVkIGFuZCBoYXMgdGhlIGxvbmcgY24gdmFsdWUKLSsgICAgZW50cnkgPSB1c2VyLmdldF9hdHRy X3ZhbHNfdXRmOCgnY24nKQotKyAgICBhc3NlcnQgZW50cnlbMF0gPT0gbG9uZ19jbl92YWx1ZQot KyAgICBsb2cuaW5mbyhmJ1N1Y2Nlc3NmdWxseSBjcmVhdGVkIHVzZXIgd2l0aCBjbiBsZW5ndGg6 IHtsZW4oZW50cnlbMF0pfScpCi0rCi0rICAgICMgUGVyZm9ybSBWTFYgc2VhcmNoIHRvIGVuc3Vy ZSBWTFYgc3RpbGwgd29ya3Mgd2l0aCBsb25nIGF0dHJpYnV0ZSB2YWx1ZXMKLSsgICAgY29ubiA9 IG9wZW5fbmV3X2xkYXBpX2Nvbm4oaW5zdC5zZXJ2ZXJpZCkKLSsgICAgY291bnQgPSBsZW4oY29u bi5zZWFyY2hfcyhERUZBVUxUX1NVRkZJWCwgbGRhcC5TQ09QRV9TVUJUUkVFLCAiKHVpZD0qKSIp KQotKyAgICBhc3NlcnQgY291bnQgPiAwCi0rICAgIGxvZy5pbmZvKGYnVkxWIHNlYXJjaCBzdWNj ZXNzZnVsIHdpdGgge2NvdW50fSBlbnRyaWVzIGluY2x1ZGluZyBlbnRyeSB3aXRoIDJLIGNuIHZh bHVlJykKLSsKLSsgICAgIyBBZGQgYW5vdGhlciBlbnRyeSB3aXRoIHRoZSBsb25nIGNuIGF0dHJp YnV0ZQotKyAgICBsb25nX2NuX3ZhbHVlID0gJ2EnICogMjA0OCArICcyJwotKwotKyAgICB1c2Vy X3Byb3BlcnRpZXMgPSB7Ci0rICAgICAgICAndWlkJzogJ2xvbmdjbnVzZXIyJywKLSsgICAgICAg ICdjbic6IGxvbmdfY25fdmFsdWUsCi0rICAgICAgICAnc24nOiAndXNlcjInLAotKyAgICAgICAg J3VpZE51bWJlcic6ICc5OTk5OCcsCi0rICAgICAgICAnZ2lkTnVtYmVyJzogJzk5OTk4JywKLSsg ICAgICAgICdob21lRGlyZWN0b3J5JzogJy9ob21lL2xvbmdjbnVzZXIyJwotKyAgICB9Ci0rICAg IHVzZXIgPSB1c2Vycy5jcmVhdGUocHJvcGVydGllcz11c2VyX3Byb3BlcnRpZXMpCi0rICAgIHVz ZXJzX3RvX2RlbGV0ZS5hcHBlbmQodXNlcik7Ci0rCi0rICAgICMgVmVyaWZ5IHRoZSBlbnRyeSB3 YXMgY3JlYXRlZCBhbmQgaGFzIHRoZSBsb25nIGNuIHZhbHVlCi0rICAgIGVudHJ5ID0gdXNlci5n ZXRfYXR0cl92YWxzX3V0ZjgoJ2NuJykKLSsgICAgYXNzZXJ0IGVudHJ5WzBdID09IGxvbmdfY25f dmFsdWUKLSsgICAgbG9nLmluZm8oZidTdWNjZXNzZnVsbHkgY3JlYXRlZCB1c2VyIHdpdGggY24g bGVuZ3RoOiB7bGVuKGVudHJ5WzBdKX0nKQotKwotKyAgICAjIFBlcmZvcm0gVkxWIHNlYXJjaCB0 byBlbnN1cmUgVkxWIHN0aWxsIHdvcmtzIHdpdGggbG9uZyBhdHRyaWJ1dGUgdmFsdWVzCi0rICAg IGNvbm4gPSBvcGVuX25ld19sZGFwaV9jb25uKGluc3Quc2VydmVyaWQpCi0rICAgIGNvdW50ID0g bGVuKGNvbm4uc2VhcmNoX3MoREVGQVVMVF9TVUZGSVgsIGxkYXAuU0NPUEVfU1VCVFJFRSwgIih1 aWQ9KikiKSkKLSsgICAgYXNzZXJ0IGNvdW50ID4gMQotKyAgICBsb2cuaW5mbyhmJ1ZMViBzZWFy Y2ggc3VjY2Vzc2Z1bCB3aXRoIHtjb3VudH0gZW50cmllcyBpbmNsdWRpbmcgZW50cnkgd2l0aCAy SyBjbiB2YWx1ZScpCi0rCi0rCi0rCi0gaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKLSAgICAg IyBSdW4gaXNvbGF0ZWQKLSAgICAgIyAtcyBmb3IgREVCVUcgbW9kZQotZGlmZiAtLWdpdCBhL2xk YXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vZGItbWRiL21kYl9sYXllci5jIGIvbGRhcC9zZXJ2 ZXJzL3NsYXBkL2JhY2stbGRibS9kYi1tZGIvbWRiX2xheWVyLmMKLWluZGV4IGQzMjBlY2JlYi4u Y2Q3OTc2MjFkIDEwMDY0NAotLS0tIGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9kYi1t ZGIvbWRiX2xheWVyLmMKLSsrKyBiL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vZGItbWRi L21kYl9sYXllci5jCi1AQCAtMjEzNCwxMCArMjEzNCwxNSBAQCB2b2lkICpkYm1kYl9yZWNub19j YWNoZV9idWlsZCh2b2lkICphcmcpCi0gICAgICAgICByZWNubyA9IDE7Ci0gICAgIH0KLSAgICAg d2hpbGUgKHJjID09IDApIHsKLSsgICAgICAgIHN0cnVjdCBsZGJtaW5mbyAqbGkgPSAoc3RydWN0 IGxkYm1pbmZvICopcmNjdHgtPmN1cnNvci0+YmUtPmJlX2RhdGFiYXNlLT5wbGdfcHJpdmF0ZTsK LSAgICAgICAgIHNsYXBpX2xvZ19lcnIoU0xBUElfTE9HX0RFQlVHLCAiZGJtZGJfcmVjbm9fY2Fj aGVfYnVpbGQiLCAicmVjbm89JWRcbiIsIHJlY25vKTsKLSAgICAgICAgIGlmIChyZWNubyAlIFJF Q05PX0NBQ0hFX0lOVEVSVkFMID09IDEpIHsKLSAgICAgICAgICAgICAvKiBQcmVwYXJlIHRoZSBj YWNoZSBkYXRhICovCi0gICAgICAgICAgICAgbGVuID0gc2l6ZW9mKCpyY2UpICsgZGF0YS5tdl9z aXplICsga2V5Lm12X3NpemU7Ci0rICAgICAgICAgICAgaWYgKGxlbiA+IGxpLT5saV9tYXhfa2V5 X2xlbikgewotKyAgICAgICAgICAgICAgICBrZXkubXZfc2l6ZSA9IGxpLT5saV9tYXhfa2V5X2xl biAtIGRhdGEubXZfc2l6ZSAtIHNpemVvZigqcmNlKTsKLSsgICAgICAgICAgICAgICAgbGVuID0g bGktPmxpX21heF9rZXlfbGVuOwotKyAgICAgICAgICAgIH0KLSAgICAgICAgICAgICByY2UgPSAo ZGJtZGJfcmVjbm9fY2FjaGVfZWxtdF90KilzbGFwaV9jaF9tYWxsb2MobGVuKTsKLSAgICAgICAg ICAgICByY2UtPmxlbiA9IGxlbjsKLSAgICAgICAgICAgICByY2UtPnJlY25vID0gcmVjbm87Ci1k aWZmIC0tZ2l0IGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS92bHYuYyBiL2xkYXAvc2Vy dmVycy9zbGFwZC9iYWNrLWxkYm0vdmx2LmMKLWluZGV4IDhmOTI2M2YyNS4uZjJmODgyYjVhIDEw MDY0NAotLS0tIGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS92bHYuYwotKysrIGIvbGRh cC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS92bHYuYwotQEAgLTg2Niw2ICs4NjYsNyBAQCBkb192 bHZfdXBkYXRlX2luZGV4KGJhY2tfdHhuICp0eG4sIHN0cnVjdCBsZGJtaW5mbyAqbGksIFNsYXBp X1BCbG9jayAqcGIsIHN0cnVjdAotICAgICBzdHJ1Y3Qgdmx2X2tleSAqa2V5ID0gTlVMTDsKLSAg ICAgZGJpX3ZhbF90IGRhdGEgPSB7MH07Ci0gICAgIGRibGF5ZXJfcHJpdmF0ZSAqcHJpdiA9IE5V TEw7Ci0rICAgIHNpemVfdCBrZXlfc2l6ZV9saW1pdCA9IGxpLT5saV9tYXhfa2V5X2xlbiAtIHNp emVvZihlbnRyeS0+ZXBfaWQpOwotIAotICAgICBzbGFwaV9wYmxvY2tfZ2V0KHBiLCBTTEFQSV9C QUNLRU5ELCAmYmUpOwotICAgICBwcml2ID0gKGRibGF5ZXJfcHJpdmF0ZSAqKWxpLT5saV9kYmxh eWVyX3ByaXZhdGU7Ci1AQCAtODg2LDYgKzg4NywxMCBAQCBkb192bHZfdXBkYXRlX2luZGV4KGJh Y2tfdHhuICp0eG4sIHN0cnVjdCBsZGJtaW5mbyAqbGksIFNsYXBpX1BCbG9jayAqcGIsIHN0cnVj dAotICAgICAgICAgcmV0dXJuIHJjOwotICAgICB9Ci0gCi0rICAgIC8qIFRydW5jYXRlIHRoZSBr ZXkgaWYgaXQgaXMgdG9vIGxvbmcgKi8KLSsgICAgaWYgKGtleS0+a2V5LnNpemUgPiBrZXlfc2l6 ZV9saW1pdCkgewotKyAgICAgICAga2V5LT5rZXkuc2l6ZSA9IGtleV9zaXplX2xpbWl0OwotKyAg ICB9Ci0gICAgIGlmIChOVUxMICE9IHR4bikgewotICAgICAgICAgZGJfdHhuID0gdHhuLT5iYWNr X3R4bl90eG47Ci0gICAgIH0gZWxzZSB7Ci1AQCAtOTMwLDcgKzkzNSw3IEBAIGRvX3Zsdl91cGRh dGVfaW5kZXgoYmFja190eG4gKnR4biwgc3RydWN0IGxkYm1pbmZvICpsaSwgU2xhcGlfUEJsb2Nr ICpwYiwgc3RydWN0Ci0gICAgICAgICBpZiAodHhuICYmIHR4bi0+YmFja19zcGVjaWFsX2hhbmRs aW5nX2ZuKSB7Ci0gICAgICAgICAgICAgcmMgPSB0eG4tPmJhY2tfc3BlY2lhbF9oYW5kbGluZ19m bihiZSwgQlRYTkFDVF9WTFZfREVMLCBkYiwgJmtleS0+a2V5LCAmZGF0YSwgdHhuKTsKLSAgICAg ICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgcmMgPSBkYmxheWVyX2RiX29wKGJlLCBkYiwgZGJf dHhuLCBEQklfT1BfREVMLCAma2V5LT5rZXksIE5VTEwpOwotKyAgICAgICAgICAgIHJjID0gZGJs YXllcl9kYl9vcChiZSwgZGIsIGRiX3R4biwgREJJX09QX0RFTCwgJmtleS0+a2V5LCAmZGF0YSk7 Ci0gICAgICAgICB9Ci0gICAgICAgICBpZiAocmMgPT0gMCkgewotICAgICAgICAgICAgIGlmICh0 eG4gJiYgdHhuLT5iYWNrX3NwZWNpYWxfaGFuZGxpbmdfZm4pIHsKLS0tIAotMi41Mi4wCi0KCmRp ZmYgLS1naXQgYS8wMDIzLUlzc3VlLTY3NTMtUG9ydC10aWNrZXQtNDc3ODEtdGVzdC03MjEwLnBh dGNoIGIvMDAyMy1Jc3N1ZS02NzUzLVBvcnQtdGlja2V0LTQ3NzgxLXRlc3QtNzIxMC5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjYwMjQ0NC4uMDAwMDAwMAotLS0gYS8wMDIz LUlzc3VlLTY3NTMtUG9ydC10aWNrZXQtNDc3ODEtdGVzdC03MjEwLnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsMjg1ICswLDAgQEAKLUZyb20gNTZmMTg4MWI1ZmIwMTk4YWY0ODEwZWVjYTllOTg3 MzZjMjk3YTJhNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IExlbmthIERvdWRvdmEg PG1pcmllbGthQHVzZXJzLm5vcmVwbHkuZ2l0aHViLmNvbT4KLURhdGU6IFR1ZSwgMyBGZWIgMjAy NiAxMDoyODowMiArMDEwMAotU3ViamVjdDogW1BBVENIXSBJc3N1ZSA2NzUzIC0gUG9ydCB0aWNr ZXQgNDc3ODEgdGVzdCAoIzcyMTApCi0KLURlc2NyaXB0aW9uOgotUG9ydCB0aWNrZXQgNDc3ODEg dGVzdCBpbnRvIGRpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9yZXBsaWNhdGlvbi9yZXBsaWNhdGlv bl9kZWFkbG9ja190ZXN0LnB5Ci0KLVJlbGF0ZXM6ICM2NzUzCi1BdXRob3I6IExlbmthIERvdWRv dmEKLUFzc2lzdGVkIGJ5OiBDdXJzb3IKLVJldmlld2VyOiBNYXJrIFJleW5vbGRzCi0tLS0KLSAu Li4vcmVwbGljYXRpb24vcmVwbGljYXRpb25fZGVhZGxvY2tfdGVzdC5weSAgfCAxMjkgKysrKysr KysrKysrKysrKystCi0gZGlyc3J2dGVzdHMvdGVzdHMvdGlja2V0cy90aWNrZXQ0Nzc4MV90ZXN0 LnB5IHwgMTA0IC0tLS0tLS0tLS0tLS0tCi0gMiBmaWxlcyBjaGFuZ2VkLCAxMjggaW5zZXJ0aW9u cygrKSwgMTA1IGRlbGV0aW9ucygtKQotIGRlbGV0ZSBtb2RlIDEwMDY0NCBkaXJzcnZ0ZXN0cy90 ZXN0cy90aWNrZXRzL3RpY2tldDQ3NzgxX3Rlc3QucHkKLQotZGlmZiAtLWdpdCBhL2RpcnNydnRl c3RzL3Rlc3RzL3N1aXRlcy9yZXBsaWNhdGlvbi9yZXBsaWNhdGlvbl9kZWFkbG9ja190ZXN0LnB5 IGIvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL3JlcGxpY2F0aW9uL3JlcGxpY2F0aW9uX2RlYWRs b2NrX3Rlc3QucHkKLWluZGV4IDhkZGJiNDNiZC4uOWMxMjJhZGQzIDEwMDY0NAotLS0tIGEvZGly c3J2dGVzdHMvdGVzdHMvc3VpdGVzL3JlcGxpY2F0aW9uL3JlcGxpY2F0aW9uX2RlYWRsb2NrX3Rl c3QucHkKLSsrKyBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9yZXBsaWNhdGlvbi9yZXBsaWNh dGlvbl9kZWFkbG9ja190ZXN0LnB5Ci1AQCAtMTUsMTQgKzE1LDIwIEBAIHdpdGggcmVwbGljYXRp b24gZGF0YSB3aGVuIHJlcGxpY2F0aW9uIGFncmVlbWVudHMgYXJlIHByZXNlbnQuCi0gaW1wb3J0 IGxvZ2dpbmcKLSBpbXBvcnQgb3MKLSBpbXBvcnQgcHl0ZXN0Ci0raW1wb3J0IGxkYXAKLSAKLStm cm9tIGxpYjM4OS5fbWFwcGVkX29iamVjdCBpbXBvcnQgRFNMZGFwT2JqZWN0cwotIGZyb20gbGli Mzg5LnRvcG9sb2dpZXMgaW1wb3J0IHRvcG9sb2d5X20yIGFzIHRvcG8KLStmcm9tIGxpYjM4OS50 b3BvbG9naWVzIGltcG9ydCB0b3BvbG9neV9zdAotIGZyb20gbGliMzg5LnJlcGxpY2EgaW1wb3J0 IFJlcGxpY2FzLCBSZXBsaWNhdGlvbk1hbmFnZXIKLSBmcm9tIGxpYjM4OS5hZ3JlZW1lbnQgaW1w b3J0IEFncmVlbWVudHMKLSBmcm9tIGxpYjM4OS50YXNrcyBpbXBvcnQgSW1wb3J0VGFzaywgRXhw b3J0VGFzawotIGZyb20gbGliMzg5LmlkbS51c2VyIGltcG9ydCBVc2VyQWNjb3VudHMKLSBmcm9t IGxpYjM4OS50b21ic3RvbmUgaW1wb3J0IFRvbWJzdG9uZXMKLS1mcm9tIGxpYjM4OS5fY29uc3Rh bnRzIGltcG9ydCBERUZBVUxUX1NVRkZJWAotK2Zyb20gbGliMzg5LmJhY2tlbmQgaW1wb3J0IEJh Y2tlbmRzCi0rZnJvbSBsaWIzODkuX2NvbnN0YW50cyBpbXBvcnQgKERFRkFVTFRfU1VGRklYLCBE RUZBVUxUX0JFTkFNRSwgZGVmYXVsdFByb3BlcnRpZXMsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFJFUExJQ0FUSU9OX0JJTkRfRE4sIFJFUExJQ0FUSU9OX0JJTkRfUFcsCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFUExJQ0FUSU9OX0JJTkRfTUVUSE9ELCBSRVBM SUNBVElPTl9UUkFOU1BPUlQpCi0gCi0gcHl0ZXN0bWFyayA9IHB5dGVzdC5tYXJrLnRpZXIyCi0g Ci1AQCAtMjAwLDYgKzIwNiwxMjcgQEAgZGVmIHRlc3RfcmVwbGljYXRpb25fZGVhZGxvY2tfdG9t YnN0b25lX3NlYXJjaCh0b3BvKToKLSAgICAgICAgIG9zLnJlbW92ZShleHBvcnRfbGRpZikKLSAK LSAKLStkZWYgdGVzdF9yZXBsaWNhdGlvbl9kZWFkbG9ja190b21ic3RvbmVfaW52YWxpZF9hZ3Jl ZW1lbnQodG9wb2xvZ3lfc3QpOgotKyAgICAiIiJUZXN0IGRlYWRsb2NrIHNjZW5hcmlvIGFmdGVy IGltcG9ydGluZyBMRElGIHdpdGggcmVwbGljYXRpb24gZGF0YSBhbmQgaW52YWxpZCBhZ3JlZW1l bnQKLSsKLSsgICAgVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgYSBkZWFkbG9jayBkb2VzIG5vdCBv Y2N1ciB3aGlsZSBzZWFyY2hpbmcgZm9yIHRvbWJzdG9uZXMgYWZ0ZXIKLSsgICAgc2V0dGluZyB1 cCBhbiBpbnZhbGlkIHJlcGxpY2F0aW9uIGFncmVlbWVudCAocG9pbnRpbmcgdG8gYSBub24tZXhp c3RlbnQgc2VydmVyKQotKwotKyAgICA6aWQ6IGExYjJjM2Q0LWU1ZjYtNDc4MS05YWJjLWRlZjAx MjM0NTY3OAotKyAgICA6c2V0dXA6IFN0YW5kYWxvbmUgaW5zdGFuY2Ugd2l0aCByZXBsaWNhdGlv biBlbmFibGVkCi0rICAgIDpzdGVwczoKLSsgICAgICAgIDEuIENyZWF0ZSBhIHN1cHBsaWVyIHdp dGggYW4gaW52YWxpZCByZXBsaWNhdGlvbiBhZ3JlZW1lbnQgKHBvcnQgNTU1NSwgbm9uLWV4aXN0 ZW50IHNlcnZlcikKLSsgICAgICAgIDIuIEFkZCB0d28gdGVzdCB1c2VyIGVudHJpZXMKLSsgICAg ICAgIDMuIEV4cG9ydCBMRElGIHdpdGggcmVwbGljYXRpb24gZGF0YQotKyAgICAgICAgNC4gUmVz dGFydCB0aGUgc2VydmVyCi0rICAgICAgICA1LiBJbXBvcnQgdGhlIExESUYgYmFjawotKyAgICAg ICAgNi4gU2VhcmNoIGZvciB0b21ic3RvbmUgZW50cmllcyB3aXRoIHRpbWVvdXQgKHNob3VsZCBu b3QgaGFuZy9kZWFkbG9jaykKLSsgICAgICAgIDcuIENsZWFudXA6IHJlc3RvcmUgb3JpZ2luYWwg dGltZW91dCBzZXR0aW5ncywgZGVsZXRlIGludmFsaWQgYWdyZWVtZW50LCB0ZXN0IGVudHJpZXMs IGFuZCBleHBvcnQgZmlsZQotKyAgICA6ZXhwZWN0ZWRyZXN1bHRzOgotKyAgICAgICAgMS4gSW52 YWxpZCByZXBsaWNhdGlvbiBhZ3JlZW1lbnQgaXMgY3JlYXRlZCBzdWNjZXNzZnVsbHkKLSsgICAg ICAgIDIuIFRlc3QgZW50cmllcyBhcmUgY3JlYXRlZCBzdWNjZXNzZnVsbHkKLSsgICAgICAgIDMu IExESUYgZXhwb3J0IGNvbXBsZXRlcyBzdWNjZXNzZnVsbHkKLSsgICAgICAgIDQuIFNlcnZlciBy ZXN0YXJ0cyBzdWNjZXNzZnVsbHkKLSsgICAgICAgIDUuIExESUYgaW1wb3J0IGNvbXBsZXRlcyBz dWNjZXNzZnVsbHkKLSsgICAgICAgIDYuIFRvbWJzdG9uZSBzZWFyY2ggY29tcGxldGVzIHdpdGhv dXQgZGVhZGxvY2sgKHJldHVybnMgYXQgbGVhc3Qgb25lIGVudHJ5OyBubyBoYW5nL3RpbWVvdXQp Ci0rICAgICAgICA3LiBDbGVhbnVwIGNvbXBsZXRlcyBzdWNjZXNzZnVsbHkKLSsgICAgIiIiCi0r Ci0rICAgIHN0YW5kYWxvbmUgPSB0b3BvbG9neV9zdC5zdGFuZGFsb25lCi0rICAgIGV4cG9ydF9s ZGlmID0gb3MucGF0aC5qb2luKHN0YW5kYWxvbmUuZ2V0X2xkaWZfZGlyKCksICdleHBvcnQubGRp ZicpCi0rCi0rICAgICMgU3RlcCAxOiBDcmVhdGUgc3VwcGxpZXIgd2l0aCBpbnZhbGlkIHJlcGxp Y2F0aW9uIGFncmVlbWVudAotKyAgICBsb2cuaW5mbygnQ3JlYXRpbmcgc3VwcGxpZXIgd2l0aCBp bnZhbGlkIHJlcGxpY2F0aW9uIGFncmVlbWVudCAocG9ydCA1NTU1IC0gbm9uLWV4aXN0ZW50IHNl cnZlciknKQotKyAgICByZXBsID0gUmVwbGljYXRpb25NYW5hZ2VyKERFRkFVTFRfU1VGRklYKQot KyAgICByZXBsLmNyZWF0ZV9maXJzdF9zdXBwbGllcihzdGFuZGFsb25lKQotKwotKyAgICByZXBs aWNhcyA9IFJlcGxpY2FzKHN0YW5kYWxvbmUpCi0rICAgIHJlcGxpY2EgPSByZXBsaWNhcy5nZXQo REVGQVVMVF9TVUZGSVgpCi0rICAgIGFncmVlbWVudHMgPSBBZ3JlZW1lbnRzKHN0YW5kYWxvbmUs IGJhc2Vkbj1yZXBsaWNhLmRuKQotKwotKyAgICAjIENyZWF0ZSBhZ3JlZW1lbnQgd2l0aCBpbnZh bGlkIHBvcnQgKG5vbi1leGlzdGVudCBzZXJ2ZXIpCi0rICAgIGludmFsaWRfYWdyZWVtZW50ID0g YWdyZWVtZW50cy5jcmVhdGUocHJvcGVydGllcz17Ci0rICAgICAgICAnY24nOiByJ21lVG9fJGhv c3Q6JHBvcnQnLAotKyAgICAgICAgJ25zRFM1UmVwbGljYVJvb3QnOiBERUZBVUxUX1NVRkZJWCwK LSsgICAgICAgICduc0RTNVJlcGxpY2FIb3N0Jzogc3RhbmRhbG9uZS5ob3N0LAotKyAgICAgICAg J25zRFM1UmVwbGljYVBvcnQnOiAnNTU1NScsICAjIEludmFsaWQgcG9ydCAtIHNlcnZlciBkb2Vz IG5vdCBleGlzdAotKyAgICAgICAgJ25zRFM1UmVwbGljYUJpbmRETic6IGRlZmF1bHRQcm9wZXJ0 aWVzW1JFUExJQ0FUSU9OX0JJTkRfRE5dLAotKyAgICAgICAgJ25zRFM1UmVwbGljYUJpbmRNZXRo b2QnOiBkZWZhdWx0UHJvcGVydGllc1tSRVBMSUNBVElPTl9CSU5EX01FVEhPRF0sCi0rICAgICAg ICAnbnNEUzVSZXBsaWNhVHJhbnNwb3J0SW5mbyc6IGRlZmF1bHRQcm9wZXJ0aWVzW1JFUExJQ0FU SU9OX1RSQU5TUE9SVF0sCi0rICAgICAgICAnbnNEUzVSZXBsaWNhQ3JlZGVudGlhbHMnOiBkZWZh dWx0UHJvcGVydGllc1tSRVBMSUNBVElPTl9CSU5EX1BXXQotKyAgICB9KQotKwotKyAgICAjIFN0 ZXAgMjogQWRkIHR3byB0ZXN0IGVudHJpZXMKLSsgICAgbG9nLmluZm8oJ0FkZGluZyB0d28gdGVz dCBlbnRyaWVzJykKLSsgICAgdXNlcnMgPSBVc2VyQWNjb3VudHMoc3RhbmRhbG9uZSwgREVGQVVM VF9TVUZGSVgpCi0rCi0rICAgIGVudHJ5MSA9IHVzZXJzLmNyZWF0ZShwcm9wZXJ0aWVzPXsKLSsg ICAgICAgICd1aWQnOiAnZW50cnkxJywKLSsgICAgICAgICdjbic6ICdlbnRyeTEnLAotKyAgICAg ICAgJ3NuJzogJ3VzZXInLAotKyAgICAgICAgJ3VzZXJwYXNzd29yZCc6ICdwYXNzd29yZCcsCi0r ICAgICAgICAndWlkTnVtYmVyJzogJzEwMDEnLAotKyAgICAgICAgJ2dpZE51bWJlcic6ICcyMDAx JywKLSsgICAgICAgICdob21lRGlyZWN0b3J5JzogJy9ob21lL2VudHJ5MScKLSsgICAgfSkKLSsK LSsgICAgZW50cnkyID0gdXNlcnMuY3JlYXRlKHByb3BlcnRpZXM9ewotKyAgICAgICAgJ3VpZCc6 ICdlbnRyeTInLAotKyAgICAgICAgJ2NuJzogJ2VudHJ5MicsCi0rICAgICAgICAnc24nOiAndXNl cicsCi0rICAgICAgICAndXNlcnBhc3N3b3JkJzogJ3Bhc3N3b3JkJywKLSsgICAgICAgICd1aWRO dW1iZXInOiAnMTAwMicsCi0rICAgICAgICAnZ2lkTnVtYmVyJzogJzIwMDInLAotKyAgICAgICAg J2hvbWVEaXJlY3RvcnknOiAnL2hvbWUvZW50cnkyJwotKyAgICB9KQotKwotKyAgICAjIFN0ZXAg MzogRXhwb3J0IExESUYgd2l0aCByZXBsaWNhdGlvbiBkYXRhCi0rICAgIGxvZy5pbmZvKCdFeHBv cnRpbmcgTERJRiB3aXRoIHJlcGxpY2F0aW9uIGRhdGEnKQotKyAgICBiYWNrZW5kcyA9IEJhY2tl bmRzKHN0YW5kYWxvbmUpCi0rICAgIGV4cG9ydF90YXNrID0gYmFja2VuZHMuZXhwb3J0X2xkaWYo YmVfbmFtZXM9REVGQVVMVF9CRU5BTUUsIGxkaWY9ZXhwb3J0X2xkaWYsIHJlcGxpY2F0aW9uPVRy dWUpCi0rICAgIGV4cG9ydF90YXNrLndhaXQoKQotKwotKyAgICAjIFN0ZXAgNDogUmVzdGFydCB0 aGUgc2VydmVyCi0rICAgIGxvZy5pbmZvKCdSZXN0YXJ0aW5nIHNlcnZlcicpCi0rICAgIHN0YW5k YWxvbmUucmVzdGFydCgpCi0rCi0rICAgICMgU3RlcCA1OiBJbXBvcnQgdGhlIExESUYKLSsgICAg bG9nLmluZm8oJ0ltcG9ydGluZyByZXBsaWNhdGlvbiBMRElGIGZpbGUnKQotKyAgICBpbXBvcnRf dGFzayA9IEltcG9ydFRhc2soc3RhbmRhbG9uZSkKLSsgICAgaW1wb3J0X3Rhc2suaW1wb3J0X3N1 ZmZpeF9mcm9tX2xkaWYobGRpZmZpbGU9ZXhwb3J0X2xkaWYsIHN1ZmZpeD1ERUZBVUxUX1NVRkZJ WCkKLSsgICAgaW1wb3J0X3Rhc2sud2FpdCgpCi0rCi0rICAgICMgU3RlcCA2OiBTZWFyY2ggZm9y IHRvbWJzdG9uZXMgd2l0aCB0aW1lb3V0IC0gc2hvdWxkIG5vdCBoYW5nL2RlYWRsb2NrCi0rICAg IGxvZy5pbmZvKCdTZWFyY2hpbmcgZm9yIHRvbWJzdG9uZSBlbnRyaWVzIChzaG91bGQgZmluZCBl bnRyaWVzIGFuZCBub3QgaGFuZyknKQotKyAgICAjIFNhdmUgb3JpZ2luYWwgdGltZW91dCBzZXR0 aW5ncyBzbyB3ZSBjYW4gcmVzdG9yZSB0aGVtIGluIGNsZWFudXAKLSsgICAgb3JpZ19uZXR3b3Jr X3RpbWVvdXQgPSBzdGFuZGFsb25lLmdldF9vcHRpb24obGRhcC5PUFRfTkVUV09SS19USU1FT1VU KQotKyAgICBvcmlnX3RpbWVvdXQgPSBzdGFuZGFsb25lLmdldF9vcHRpb24obGRhcC5PUFRfVElN RU9VVCkKLSsgICAgIyBTZXQgZXhwbGljaXQgdGltZW91dHMgdG8gZGV0ZWN0IGRlYWRsb2Nrcwot KyAgICBzdGFuZGFsb25lLnNldF9vcHRpb24obGRhcC5PUFRfTkVUV09SS19USU1FT1VULCA1KQot KyAgICBzdGFuZGFsb25lLnNldF9vcHRpb24obGRhcC5PUFRfVElNRU9VVCwgNSkKLSsKLSsgICAg IyBWZXJpZnkgYXQgbGVhc3Qgb25lIHRvbWJzdG9uZSBleGlzdHMgYW5kIHRoZSBzZWFyY2ggZG9l cyBub3QgaGFuZy90aW1lb3V0Ci0rICAgIHRyeToKLSsgICAgICAgIHJlc3VsdHMgPSBEU0xkYXBP YmplY3RzKHN0YW5kYWxvbmUsIERFRkFVTFRfU1VGRklYKS5maWx0ZXIoJyhvYmplY3RjbGFzcz1u c1RvbWJzdG9uZSknKQotKyAgICAgICAgbG9nLmluZm8oZidGb3VuZCB7bGVuKHJlc3VsdHMpfSB0 b21ic3RvbmUgZW50cmllcycpCi0rICAgICAgICBhc3NlcnQgbGVuKHJlc3VsdHMpID4gMCwgIlRv bWJzdG9uZSBzZWFyY2ggc2hvdWxkIHJldHVybiBhdCBsZWFzdCBvbmUgZW50cnkiCi0rICAgIGV4 Y2VwdCBFeGNlcHRpb24gYXMgZToKLSsgICAgICAgIGxvZy5lcnJvcihmIlRvbWJzdG9uZSBzZWFy Y2ggZmFpbGVkIHdpdGggZXJyb3I6IHtlfSIpCi0rICAgICAgICBweXRlc3QuZmFpbChmIlRvbWJz dG9uZSBzZWFyY2ggZmFpbGVkOiB7ZX0iKQotKyAgICBmaW5hbGx5OgotKyAgICAgICAgIyBSZXN0 b3JlIG9yaWdpbmFsIHRpbWVvdXQgc2V0dGluZ3MKLSsgICAgICAgIHN0YW5kYWxvbmUuc2V0X29w dGlvbihsZGFwLk9QVF9ORVRXT1JLX1RJTUVPVVQsIG9yaWdfbmV0d29ya190aW1lb3V0KQotKyAg ICAgICAgc3RhbmRhbG9uZS5zZXRfb3B0aW9uKGxkYXAuT1BUX1RJTUVPVVQsIG9yaWdfdGltZW91 dCkKLSsgICAgICAgICMgQ2xlYW51cCB0ZXN0IGVudHJpZXMgYW5kIGV4cG9ydCBmaWxlCi0rICAg ICAgICBsb2cuaW5mbygnQ2xlYW5pbmcgdXAgdGVzdCBlbnRyaWVzJykKLSsgICAgICAgIGludmFs aWRfYWdyZWVtZW50LmRlbGV0ZSgpCi0rICAgICAgICBlbnRyeTEuZGVsZXRlKCkKLSsgICAgICAg IGVudHJ5Mi5kZWxldGUoKQotKyAgICAgICAgaWYgb3MucGF0aC5leGlzdHMoZXhwb3J0X2xkaWYp OgotKyAgICAgICAgICAgIG9zLnJlbW92ZShleHBvcnRfbGRpZikKLSsKLSsgICAgbG9nLmluZm8o J1Rlc3QgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSAtIG5vIGRlYWRsb2NrIGRldGVjdGVkJykKLSsK LSBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgICBDVVJSRU5UX0ZJTEUgPSBvcy5wYXRo LnJlYWxwYXRoKF9fZmlsZV9fKQotICAgICBweXRlc3QubWFpbihbIi1zIiwgQ1VSUkVOVF9GSUxF XSkKLWRpZmYgLS1naXQgYS9kaXJzcnZ0ZXN0cy90ZXN0cy90aWNrZXRzL3RpY2tldDQ3NzgxX3Rl c3QucHkgYi9kaXJzcnZ0ZXN0cy90ZXN0cy90aWNrZXRzL3RpY2tldDQ3NzgxX3Rlc3QucHkKLWRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggZmZiOWE1ZTFhLi4wMDAwMDAwMDAKLS0tLSBh L2RpcnNydnRlc3RzL3Rlc3RzL3RpY2tldHMvdGlja2V0NDc3ODFfdGVzdC5weQotKysrIC9kZXYv bnVsbAotQEAgLTEsMTA0ICswLDAgQEAKLS0jIC0tLSBCRUdJTiBDT1BZUklHSFQgQkxPQ0sgLS0t Ci0tIyBDb3B5cmlnaHQgKEMpIDIwMTYgUmVkIEhhdCwgSW5jLgotLSMgQWxsIHJpZ2h0cyByZXNl cnZlZC4KLS0jCi0tIyBMaWNlbnNlOiBHUEwgKHZlcnNpb24gMyBvciBhbnkgbGF0ZXIgdmVyc2lv bikuCi0tIyBTZWUgTElDRU5TRSBmb3IgZGV0YWlscy4KLS0jIC0tLSBFTkQgQ09QWVJJR0hUIEJM T0NLIC0tLQotLSMKLS1pbXBvcnQgbG9nZ2luZwotLQotLWltcG9ydCBweXRlc3QKLS1mcm9tIGxp YjM4OS50YXNrcyBpbXBvcnQgKgotLWZyb20gbGliMzg5LnRvcG9sb2dpZXMgaW1wb3J0IHRvcG9s b2d5X3N0Ci0tZnJvbSBsaWIzODkucmVwbGljYSBpbXBvcnQgUmVwbGljYXRpb25NYW5hZ2VyCi0t Ci0tZnJvbSBsaWIzODkuX2NvbnN0YW50cyBpbXBvcnQgKGRlZmF1bHRQcm9wZXJ0aWVzLCBERUZB VUxUX1NVRkZJWCwgUmVwbGljYVJvbGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFJFUExJQ0FJRF9TVVBQTElFUl8xLCBSRVBMSUNBVElPTl9CSU5EX0ROLCBSRVBMSUNBVElPTl9C SU5EX1BXLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRVBMSUNBVElPTl9CSU5E X01FVEhPRCwgUkVQTElDQVRJT05fVFJBTlNQT1JULCBSQV9OQU1FLAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSQV9CSU5ERE4sIFJBX0JJTkRQVywgUkFfTUVUSE9ELCBSQV9UUkFO U1BPUlRfUFJPVCkKLS0KLS1weXRlc3RtYXJrID0gcHl0ZXN0Lm1hcmsudGllcjIKLS0KLS1sb2cg PSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKLS0KLS0KLS1kZWYgdGVzdF90aWNrZXQ0Nzc4 MSh0b3BvbG9neV9zdCk6Ci0tICAgICIiIgotLSAgICAgICAgVGVzdGluZyBmb3IgYSBkZWFkbG9j ayBhZnRlciBkb2luZyBhbiBvbmxpbmUgaW1wb3J0IG9mIGFuIExESUYgd2l0aAotLSAgICAgICAg cmVwbGljYXRpb24gZGF0YS4gIFRoZSByZXBsaWNhdGlvbiBhZ3JlZW1lbnQgc2hvdWxkIGJlIGlu dmFsaWQuCi0tICAgICIiIgotLQotLSAgICBsb2cuaW5mbygnVGVzdGluZyBUaWNrZXQgNDc3ODEg LSBUZXN0aW5nIGZvciBkZWFkbG9jayBhZnRlciBpbXBvcnRpbmcgTERJRiB3aXRoIHJlcGxpY2F0 aW9uIGRhdGEnKQotLQotLSAgICBzdXBwbGllciA9IHRvcG9sb2d5X3N0LnN0YW5kYWxvbmUKLS0g ICAgcmVwbCA9IFJlcGxpY2F0aW9uTWFuYWdlcihERUZBVUxUX1NVRkZJWCkKLS0gICAgcmVwbC5j cmVhdGVfZmlyc3Rfc3VwcGxpZXIoc3VwcGxpZXIpCi0tCi0tICAgIHByb3BlcnRpZXMgPSB7UkFf TkFNRTogcidtZVRvXyRob3N0OiRwb3J0JywKLS0gICAgICAgICAgICAgICAgICBSQV9CSU5ERE46 IGRlZmF1bHRQcm9wZXJ0aWVzW1JFUExJQ0FUSU9OX0JJTkRfRE5dLAotLSAgICAgICAgICAgICAg ICAgIFJBX0JJTkRQVzogZGVmYXVsdFByb3BlcnRpZXNbUkVQTElDQVRJT05fQklORF9QV10sCi0t ICAgICAgICAgICAgICAgICAgUkFfTUVUSE9EOiBkZWZhdWx0UHJvcGVydGllc1tSRVBMSUNBVElP Tl9CSU5EX01FVEhPRF0sCi0tICAgICAgICAgICAgICAgICAgUkFfVFJBTlNQT1JUX1BST1Q6IGRl ZmF1bHRQcm9wZXJ0aWVzW1JFUExJQ0FUSU9OX1RSQU5TUE9SVF19Ci0tICAgICMgVGhlIGFncmVl bWVudCBzaG91bGQgcG9pbnQgdG8gYSBzZXJ2ZXIgdGhhdCBkb2VzIE5PVCBleGlzdCAoaW52YWxp ZCBwb3J0KQotLSAgICByZXBsX2FncmVlbWVudCA9IHN1cHBsaWVyLmFncmVlbWVudC5jcmVhdGUo c3VmZml4PURFRkFVTFRfU1VGRklYLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGhvc3Q9c3VwcGxpZXIuaG9zdCwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwb3J0PTU1NTUsCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllcz1wcm9wZXJ0aWVzKQotLQotLSAgICAj Ci0tICAgICMgYWRkIHR3byBlbnRyaWVzCi0tICAgICMKLS0gICAgbG9nLmluZm8oJ0FkZGluZyB0 d28gZW50cmllcy4uLicpCi0tCi0tICAgIHN1cHBsaWVyLmFkZF9zKEVudHJ5KCgnY249ZW50cnkx LGRjPWV4YW1wbGUsZGM9Y29tJywgewotLSAgICAgICAgJ29iamVjdGNsYXNzJzogJ3RvcCBwZXJz b24nLnNwbGl0KCksCi0tICAgICAgICAnc24nOiAndXNlcicsCi0tICAgICAgICAnY24nOiAnZW50 cnkxJ30pKSkKLS0KLS0gICAgc3VwcGxpZXIuYWRkX3MoRW50cnkoKCdjbj1lbnRyeTIsZGM9ZXhh bXBsZSxkYz1jb20nLCB7Ci0tICAgICAgICAnb2JqZWN0Y2xhc3MnOiAndG9wIHBlcnNvbicuc3Bs aXQoKSwKLS0gICAgICAgICdzbic6ICd1c2VyJywKLS0gICAgICAgICdjbic6ICdlbnRyeTInfSkp KQotLQotLSAgICAjCi0tICAgICMgZXhwb3J0IHRoZSByZXBsaWNhdGlvbiBsZGlmCi0tICAgICMK LS0gICAgbG9nLmluZm8oJ0V4cG9ydGluZyByZXBsaWNhdGlvbiBsZGlmLi4uJykKLS0gICAgYXJn cyA9IHtFWFBPUlRfUkVQTF9JTkZPOiBUcnVlfQotLSAgICBleHBvcnRUYXNrID0gVGFza3Moc3Vw cGxpZXIpCi0tICAgIGV4cG9ydFRhc2suZXhwb3J0TERJRihERUZBVUxUX1NVRkZJWCwgTm9uZSwg Ii90bXAvZXhwb3J0LmxkaWYiLCBhcmdzKQotLQotLSAgICAjCi0tICAgICMgUmVzdGFydCB0aGUg c2VydmVyCi0tICAgICMKLS0gICAgbG9nLmluZm8oJ1Jlc3RhcnRpbmcgc2VydmVyLi4uJykKLS0g ICAgc3VwcGxpZXIuc3RvcCgpCi0tICAgIHN1cHBsaWVyLnN0YXJ0KCkKLS0KLS0gICAgIwotLSAg ICAjIEltcG9ydCB0aGUgbGRpZgotLSAgICAjCi0tICAgIGxvZy5pbmZvKCdJbXBvcnQgcmVwbGlj YXRpb24gTERJRiBmaWxlLi4uJykKLS0gICAgaW1wb3J0VGFzayA9IFRhc2tzKHN1cHBsaWVyKQot LSAgICBhcmdzID0ge1RBU0tfV0FJVDogVHJ1ZX0KLS0gICAgaW1wb3J0VGFzay5pbXBvcnRMRElG KERFRkFVTFRfU1VGRklYLCBOb25lLCAiL3RtcC9leHBvcnQubGRpZiIsIGFyZ3MpCi0tICAgIG9z LnJlbW92ZSgiL3RtcC9leHBvcnQubGRpZiIpCi0tCi0tICAgICMKLS0gICAgIyBTZWFyY2ggZm9y IHRvbWJzdG9uZXMgLSB3ZSBzaG91bGQgbm90IGhhbmcvdGltZW91dAotLSAgICAjCi0tICAgIGxv Zy5pbmZvKCdTZWFyY2ggZm9yIHRvbWJzdG9uZSBlbnRyaWVzKHNob3VsZCBmaW5kIG9uZSBhbmQg bm90IGhhbmcpLi4uJykKLS0gICAgc3VwcGxpZXIuc2V0X29wdGlvbihsZGFwLk9QVF9ORVRXT1JL X1RJTUVPVVQsIDUpCi0tICAgIHN1cHBsaWVyLnNldF9vcHRpb24obGRhcC5PUFRfVElNRU9VVCwg NSkKLS0gICAgZW50cmllcyA9IHN1cHBsaWVyLnNlYXJjaF9zKERFRkFVTFRfU1VGRklYLCBsZGFw LlNDT1BFX1NVQlRSRUUsICdvYmplY3RjbGFzcz1uc1RvbWJzdG9uZScpCi0tICAgIGlmIG5vdCBl bnRyaWVzOgotLSAgICAgICAgbG9nLmZhdGFsKCdTZWFyY2ggZmFpbGVkIHRvIGZpbmQgYW55IGVu dHJpZXMuJykKLS0gICAgICAgIGFzc2VydCBQUl9GYWxzZQotLQotLQotLWlmIF9fbmFtZV9fID09 ICdfX21haW5fXyc6Ci0tICAgICMgUnVuIGlzb2xhdGVkCi0tICAgICMgLXMgZm9yIERFQlVHIG1v ZGUKLS0gICAgQ1VSUkVOVF9GSUxFID0gb3MucGF0aC5yZWFscGF0aChfX2ZpbGVfXykKLS0gICAg cHl0ZXN0Lm1haW4oIi1zICVzIiAlIENVUlJFTlRfRklMRSkKLS0tIAotMi41Mi4wCi0KCmRpZmYg LS1naXQgYS8wMDI0LUlzc3VlLTcxOTQtUmVwbC1Mb2ctQW5hbHlzaXMtQWRkLUNTTi1wcm9wYWdh dGlvbi1kZXQucGF0Y2ggYi8wMDI0LUlzc3VlLTcxOTQtUmVwbC1Mb2ctQW5hbHlzaXMtQWRkLUNT Ti1wcm9wYWdhdGlvbi1kZXQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUz YzkzNDcuLjAwMDAwMDAKLS0tIGEvMDAyNC1Jc3N1ZS03MTk0LVJlcGwtTG9nLUFuYWx5c2lzLUFk ZC1DU04tcHJvcGFnYXRpb24tZGV0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTY0NSArMCww IEBACi1Gcm9tIGMyOTIxZTg3YmY4ZThmZWU1NjZlZGQwOWNiNTI4YjFjM2FjM2U0MWQgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTaW1vbiBQaWNodWdpbiA8c3BpY2h1Z2lAcmVkaGF0 LmNvbT4KLURhdGU6IFR1ZSwgMyBGZWIgMjAyNiAxNzoxNzowMiAtMDgwMAotU3ViamVjdDogW1BB VENIXSBJc3N1ZSA3MTk0IC0gUmVwbCBMb2cgQW5hbHlzaXMgLSBBZGQgQ1NOIHByb3BhZ2F0aW9u IGRldGFpbHMKLSAoIzcxOTUpCi1NSU1FLVZlcnNpb246IDEuMAotQ29udGVudC1UeXBlOiB0ZXh0 L3BsYWluOyBjaGFyc2V0PVVURi04Ci1Db250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0Ci0K LURlc2NyaXB0aW9uOiBUaGUgcmVwbGljYXRpb24gbG9nIGFuYWx5emVyIG5vdyBzaG93cyBwZXLi gJFDU04gcHJvcGFnYXRpb24KLWRldGFpbHMgYW5kIHRoZSBjb25zb2xlIFVJIGNhbiBkcmlsbCBp bnRvIHRoZW0gZnJvbSBjaGFydCBwb2ludHMuIFRoaXMKLWFkZHMgQ1NOIElEcyB0byBjaGFydCBk YXRhcG9pbnRzLCBidWlsZHMgZGV0YWlsZWQgYXJyaXZhbHMvaG9wcyBkYXRhLCBhbmQKLWxpbmtz IHJlcGxpY2EgSURzIHRvIG9yaWdpbiBzZXJ2ZXJzIGZvciBtb3JlIGFjY3VyYXRlIG9yaWdpbiBk ZXRlY3Rpb24uCi0KLVRoZSByZXBvcnQgSlNPTiBub3cgaW5jbHVkZXMgY3NuRGV0YWlscyBhbmQg c2FtcGxpbmcgbWV0YWRhdGE7IHdoZW4KLXNhbXBsaW5nIGlzIGFjdGl2ZSwgQ1NOIGRldGFpbHMg YXJlIGxpbWl0ZWQgdG8gc2FtcGxlZCBJRHMgdG8gY29udHJvbAotbWVtb3J5IHVzZS4gQSBuZXcg b3JpZ2luSW5jbHVkZWRJbkFycml2YWxzIGZsYWcgaXMgZXhwb3NlZCBhbmQgdGhlIFVJCi1zaG93 cyBhbiBleHBsaWNpdCBub3RlIHdoZW4gb3JpZ2luIHJlY29yZHMgYXJlIG91dHNpZGUgdGhlIHRp bWUgcmFuZ2UuCi1UaGUgY29ja3BpdCByZXBvcnQgbW9kYWwgZ2FpbnMgYW4gaW50ZXJhY3RpdmUg Q1NOIGRldGFpbCB2aWV3IGFuZAotY2xpY2thYmxlIGNoYXJ0IHBvaW50cy4KLQotVGVzdHMgd2Vy ZSBleHBhbmRlZCB0byBjb3ZlciBDU04gZGV0YWlscywgb3JpZ2luIG91dOKAkW9m4oCRc2NvcGUg YmVoYXZpb3IsCi1hbmQgcGFydGlhbCByZXBsaWNhdGlvbiwgYW5kIGluY2x1ZGUgaGVscGVyIGZ1 bmN0aW9ucyB0byByZWR1Y2UgZHVwbGljYXRpb24uCi0KLUZpeGVzOiBodHRwczovL2dpdGh1Yi5j b20vMzg5ZHMvMzg5LWRzLWJhc2UvaXNzdWVzLzcxOTQKLQotUmV2aWV3ZWQgYnk6IEBwcm9naWVy Mzg5LCBAbXJleW5vbGRzMzg5IChUaGFua3MhISkKLS0tLQotIC4uLi9yZXBsaWNhdGlvbi9yZXBs X2xvZ19tb25pdG9yaW5nX3Rlc3QucHkgICB8IDQ4MSArKysrKysrKysrKysrKystLQotIC4uLi9z cmMvbGliL21vbml0b3IvbW9uaXRvck1vZGFscy5qc3ggICAgICAgICB8IDQ4NCArKysrKysrKysr KysrKysrKy0KLSBzcmMvbGliMzg5L2xpYjM4OS9yZXBsdG9vbHMucHkgICAgICAgICAgICAgICAg fCAyNzAgKysrKysrKysrLQotIDMgZmlsZXMgY2hhbmdlZCwgMTE2NiBpbnNlcnRpb25zKCspLCA2 OSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9y ZXBsaWNhdGlvbi9yZXBsX2xvZ19tb25pdG9yaW5nX3Rlc3QucHkgYi9kaXJzcnZ0ZXN0cy90ZXN0 cy9zdWl0ZXMvcmVwbGljYXRpb24vcmVwbF9sb2dfbW9uaXRvcmluZ190ZXN0LnB5Ci1pbmRleCA2 NjVmY2I5NmYuLjg1NTAwNWZmOSAxMDA2NDQKLS0tLSBhL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRl cy9yZXBsaWNhdGlvbi9yZXBsX2xvZ19tb25pdG9yaW5nX3Rlc3QucHkKLSsrKyBiL2RpcnNydnRl c3RzL3Rlc3RzL3N1aXRlcy9yZXBsaWNhdGlvbi9yZXBsX2xvZ19tb25pdG9yaW5nX3Rlc3QucHkK LUBAIC0yMSw3ICsyMSw3IEBAIGZyb20gbGliMzg5LmJhY2tlbmQgaW1wb3J0IEJhY2tlbmRzCi0g ZnJvbSBsaWIzODkudG9wb2xvZ2llcyBpbXBvcnQgdG9wb2xvZ3lfbTQgYXMgdG9wb19tNAotIGZy b20gbGliMzg5LmlkbS51c2VyIGltcG9ydCBVc2VyQWNjb3VudAotIGZyb20gbGliMzg5LnJlcGxp Y2EgaW1wb3J0IFJlcGxpY2F0aW9uTWFuYWdlcgotLWZyb20gbGliMzg5LnJlcGx0b29scyBpbXBv cnQgUmVwbGljYXRpb25Mb2dBbmFseXplcgotK2Zyb20gbGliMzg5LnJlcGx0b29scyBpbXBvcnQg UmVwbGljYXRpb25Mb2dBbmFseXplciwgRFNMb2dQYXJzZXIKLSBmcm9tIGxpYjM4OS5fY29uc3Rh bnRzIGltcG9ydCAqCi0gCi0gcHl0ZXN0bWFyayA9IHB5dGVzdC5tYXJrLnRpZXIwCi1AQCAtMTA1 LDYgKzEwNSwxMDEgQEAgZGVmIF9jbGVhbnVwX211bHRpX3N1ZmZpeF90ZXN0KHRlc3RfdXNlcnNf Ynlfc3VmZml4LCB0bXBfZGlyLCBzdXBwbGllcnMsIGV4dHJhX3MKLSAgICAgICAgIGxvZy5lcnJv cihmIkVycm9yIGNsZWFuaW5nIHVwIHRlbXBvcmFyeSBkaXJlY3Rvcnk6IHtlfSIpCi0gCi0gCi0r ZGVmIF9jbGVhcl9hY2Nlc3NfbG9ncyhzdXBwbGllcnMpOgotKyAgICAiIiJDbGVhciBhY2Nlc3Mg bG9ncyBmb3IgYWxsIHN1cHBsaWVycyBhbmQgcmVzdGFydC4iIiIKLSsgICAgZm9yIHN1cHBsaWVy IGluIHN1cHBsaWVyczoKLSsgICAgICAgIHN1cHBsaWVyLmRlbGV0ZUFjY2Vzc0xvZ3MocmVzdGFy dD1UcnVlKQotKwotKwotK2RlZiBfcmVzdGFydF9zdXBwbGllcnMoc3VwcGxpZXJzKToKLSsgICAg IiIiUmVzdGFydCBhbGwgc3VwcGxpZXJzLiIiIgotKyAgICBmb3Igc3VwcGxpZXIgaW4gc3VwcGxp ZXJzOgotKyAgICAgICAgc3VwcGxpZXIucmVzdGFydCgpCi0rCi0rCi0rZGVmIF9nZXRfbG9nX2Rp cnMoc3VwcGxpZXJzKToKLSsgICAgIiIiUmV0dXJuIGxvZyBkaXJlY3RvcmllcyBmb3IgYWxsIHN1 cHBsaWVycy4iIiIKLSsgICAgcmV0dXJuIFtzLmRzX3BhdGhzLmxvZ19kaXIgZm9yIHMgaW4gc3Vw cGxpZXJzXQotKwotKwotK2RlZiBfbG9hZF9qc29uKHBhdGgpOgotKyAgICAiIiJMb2FkIGFuZCBy ZXR1cm4gSlNPTiBmcm9tIGZpbGUuIiIiCi0rICAgIHdpdGggb3BlbihwYXRoLCAncicpIGFzIGY6 Ci0rICAgICAgICByZXR1cm4ganNvbi5sb2FkKGYpCi0rCi0rCi0rZGVmIF9wYXVzZV9hZ3JlZW1l bnRzKHN1cHBsaWVyLCBzdWZmaXgpOgotKyAgICAiIiJQYXVzZSBvdXRib3VuZCBhZ3JlZW1lbnRz IGFuZCByZXR1cm4gbGlzdCBvZiBwYXVzZWQgdHVwbGVzLiIiIgotKyAgICBwYXVzZWQgPSBbXQot KyAgICBmb3IgYWdtdCBpbiBzdXBwbGllci5hZ3JlZW1lbnQubGlzdChzdWZmaXg9c3VmZml4KToK LSsgICAgICAgIHN1cHBsaWVyLmFncmVlbWVudC5wYXVzZShhZ210LmRuKQotKyAgICAgICAgcGF1 c2VkLmFwcGVuZCgoc3VwcGxpZXIsIGFnbXQuZG4pKQotKyAgICByZXR1cm4gcGF1c2VkCi0rCi0r Ci0rZGVmIF9yZXN1bWVfYWdyZWVtZW50cyhwYXVzZWRfYWdyZWVtZW50cyk6Ci0rICAgICIiIlJl c3VtZSBwYXVzZWQgcmVwbGljYXRpb24gYWdyZWVtZW50cy4iIiIKLSsgICAgZm9yIHN1cHBsaWVy X29iaiwgZG4gaW4gcGF1c2VkX2FncmVlbWVudHM6Ci0rICAgICAgICB0cnk6Ci0rICAgICAgICAg ICAgc3VwcGxpZXJfb2JqLmFncmVlbWVudC5yZXN1bWUoZG4pCi0rICAgICAgICBleGNlcHQgRXhj ZXB0aW9uIGFzIGU6Ci0rICAgICAgICAgICAgbG9nLndhcm5pbmcoZiJGYWlsZWQgdG8gcmVzdW1l IGFncmVlbWVudCB7ZG59OiB7ZX0iKQotKwotKwotK2RlZiBfYXNzZXJ0X2Nzbl9kZXRhaWxzX3Nj aGVtYShqc29uX2RhdGEpOgotKyAgICAiIiJWYWxpZGF0ZSBjc25EZXRhaWxzIHByZXNlbmNlIGFu ZCBiYXNpYyBzdHJ1Y3R1cmUuIiIiCi0rICAgIGFzc2VydCAnY3NuRGV0YWlscycgaW4ganNvbl9k YXRhLCAiRXhwZWN0ZWQgY3NuRGV0YWlscyBpbiBKU09OIG91dHB1dCBmb3IgZHJpbGwtZG93biIK LSsgICAgY3NuX2RldGFpbHMgPSBqc29uX2RhdGFbJ2NzbkRldGFpbHMnXQotKyAgICBpZiBjc25f ZGV0YWlsczoKLSsgICAgICAgICMgQ2hlY2sgc3RydWN0dXJlIG9mIGF0IGxlYXN0IG9uZSBDU04g ZGV0YWlsIGVudHJ5Ci0rICAgICAgICBmaXJzdF9jc24gPSBuZXh0KGl0ZXIoY3NuX2RldGFpbHMu dmFsdWVzKCkpKQotKyAgICAgICAgYXNzZXJ0ICdjc24nIGluIGZpcnN0X2NzbiwgIkNTTiBkZXRh aWwgc2hvdWxkIGNvbnRhaW4gJ2NzbicgZmllbGQiCi0rICAgICAgICBhc3NlcnQgJ3RhcmdldERu JyBpbiBmaXJzdF9jc24sICJDU04gZGV0YWlsIHNob3VsZCBjb250YWluICd0YXJnZXREbicgZmll bGQiCi0rICAgICAgICBhc3NlcnQgJ3N1ZmZpeCcgaW4gZmlyc3RfY3NuLCAiQ1NOIGRldGFpbCBz aG91bGQgY29udGFpbiAnc3VmZml4JyBmaWVsZCIKLSsgICAgICAgIGFzc2VydCAnZ2xvYmFsTGFn JyBpbiBmaXJzdF9jc24sICJDU04gZGV0YWlsIHNob3VsZCBjb250YWluICdnbG9iYWxMYWcnIGZp ZWxkIgotKyAgICAgICAgYXNzZXJ0ICdvcmlnaW5TZXJ2ZXInIGluIGZpcnN0X2NzbiwgIkNTTiBk ZXRhaWwgc2hvdWxkIGNvbnRhaW4gJ29yaWdpblNlcnZlcicgZmllbGQiCi0rICAgICAgICBhc3Nl cnQgJ2Fycml2YWxzJyBpbiBmaXJzdF9jc24sICJDU04gZGV0YWlsIHNob3VsZCBjb250YWluICdh cnJpdmFscycgbGlzdCIKLSsgICAgICAgIGFzc2VydCAnaG9wcycgaW4gZmlyc3RfY3NuLCAiQ1NO IGRldGFpbCBzaG91bGQgY29udGFpbiAnaG9wcycgbGlzdCIKLSsgICAgICAgIGFzc2VydCBpc2lu c3RhbmNlKGZpcnN0X2NzblsnYXJyaXZhbHMnXSwgbGlzdCksICJhcnJpdmFscyBzaG91bGQgYmUg YSBsaXN0IgotKwotKyAgICAgICAgIyBWZXJpZnkgYXJyaXZhbHMgc3RydWN0dXJlCi0rICAgICAg ICBpZiBmaXJzdF9jc25bJ2Fycml2YWxzJ106Ci0rICAgICAgICAgICAgZmlyc3RfYXJyaXZhbCA9 IGZpcnN0X2NzblsnYXJyaXZhbHMnXVswXQotKyAgICAgICAgICAgIGFzc2VydCAnc2VydmVyJyBp biBmaXJzdF9hcnJpdmFsLCAiQXJyaXZhbCBzaG91bGQgY29udGFpbiAnc2VydmVyJyBmaWVsZCIK LSsgICAgICAgICAgICBhc3NlcnQgJ3RpbWVzdGFtcCcgaW4gZmlyc3RfYXJyaXZhbCwgIkFycml2 YWwgc2hvdWxkIGNvbnRhaW4gJ3RpbWVzdGFtcCcgZmllbGQiCi0rICAgICAgICAgICAgYXNzZXJ0 ICdyZWxhdGl2ZURlbGF5JyBpbiBmaXJzdF9hcnJpdmFsLCAiQXJyaXZhbCBzaG91bGQgY29udGFp biAncmVsYXRpdmVEZWxheScgZmllbGQiCi0rCi0rICAgICMgVmVyaWZ5IGNzbklkIGlzIGluY2x1 ZGVkIGluIGRhdGFwb2ludHMgZm9yIGNyb3NzLXJlZmVyZW5jZQotKyAgICBpZiAncmVwbGljYXRp b25MYWdzJyBpbiBqc29uX2RhdGEgYW5kIGpzb25fZGF0YVsncmVwbGljYXRpb25MYWdzJ10uZ2V0 KCdzZXJpZXMnKToKLSsgICAgICAgIGZvciBzZXJpZXMgaW4ganNvbl9kYXRhWydyZXBsaWNhdGlv bkxhZ3MnXVsnc2VyaWVzJ106Ci0rICAgICAgICAgICAgZm9yIGRhdGFwb2ludCBpbiBzZXJpZXNb J2RhdGFwb2ludHMnXToKLSsgICAgICAgICAgICAgICAgYXNzZXJ0ICdjc25JZCcgaW4gZGF0YXBv aW50LCAiRGF0YXBvaW50IHNob3VsZCBjb250YWluICdjc25JZCcgZm9yIGRyaWxsLWRvd24iCi0r Ci0rICAgIHJldHVybiBjc25fZGV0YWlscwotKwotKwotK2RlZiBfZmluZF9sYXRlc3RfbG9ndGlt ZV9mb3JfcHJlZml4KGxvZ19kaXIsIHN1ZmZpeCwgc3RhcnRfdGltZSwgZW5kX3RpbWUsIHVzZXJf cHJlZml4KToKLSsgICAgbGF0ZXN0ID0gTm9uZQotKyAgICBmb3IgZm5hbWUgaW4gb3MubGlzdGRp cihsb2dfZGlyKToKLSsgICAgICAgIGlmIG5vdCBmbmFtZS5zdGFydHN3aXRoKCdhY2Nlc3MnKToK LSsgICAgICAgICAgICBjb250aW51ZQotKyAgICAgICAgZnVsbF9wYXRoID0gb3MucGF0aC5qb2lu KGxvZ19kaXIsIGZuYW1lKQotKyAgICAgICAgcGFyc2VyID0gRFNMb2dQYXJzZXIoCi0rICAgICAg ICAgICAgbG9nbmFtZT1mdWxsX3BhdGgsCi0rICAgICAgICAgICAgc3VmZml4ZXM9W3N1ZmZpeF0s Ci0rICAgICAgICAgICAgdHo9dGltZXpvbmUudXRjLAotKyAgICAgICAgICAgIHN0YXJ0X3RpbWU9 c3RhcnRfdGltZSwKLSsgICAgICAgICAgICBlbmRfdGltZT1lbmRfdGltZQotKyAgICAgICAgKQot KyAgICAgICAgZm9yIHJlY29yZCBpbiBwYXJzZXIucGFyc2VfZmlsZSgpOgotKyAgICAgICAgICAg IHRhcmdldF9kbiA9IHJlY29yZC5nZXQoJ3RhcmdldF9kbicpIG9yICcnCi0rICAgICAgICAgICAg aWYgdXNlcl9wcmVmaXggaW4gdGFyZ2V0X2RuOgotKyAgICAgICAgICAgICAgICB0cyA9IHJlY29y ZC5nZXQoJ3RpbWVzdGFtcCcpCi0rICAgICAgICAgICAgICAgIGlmIHRzIGFuZCAobGF0ZXN0IGlz IE5vbmUgb3IgdHMgPiBsYXRlc3QpOgotKyAgICAgICAgICAgICAgICAgICAgbGF0ZXN0ID0gdHMK LSsgICAgcmV0dXJuIGxhdGVzdAotKwotKwotIGRlZiB0ZXN0X3JlcGxpY2F0aW9uX2xvZ19tb25p dG9yaW5nX2Jhc2ljKHRvcG9fbTQpOgotICAgICAiIiJUZXN0IGJhc2ljIHJlcGxpY2F0aW9uIGxv ZyBtb25pdG9yaW5nIGZ1bmN0aW9uYWxpdHkKLSAKLUBAIC0xMjgsOCArMjIzLDcgQEAgZGVmIHRl c3RfcmVwbGljYXRpb25fbG9nX21vbml0b3JpbmdfYmFzaWModG9wb19tNCk6Ci0gCi0gICAgIHRy eToKLSAgICAgICAgICMgQ2xlYXIgbG9ncyBhbmQgcmVzdGFydCBzZXJ2ZXJzCi0tICAgICAgICBm b3Igc3VwcGxpZXIgaW4gc3VwcGxpZXJzOgotLSAgICAgICAgICAgIHN1cHBsaWVyLmRlbGV0ZUFj Y2Vzc0xvZ3MocmVzdGFydD1UcnVlKQotKyAgICAgICAgX2NsZWFyX2FjY2Vzc19sb2dzKHN1cHBs aWVycykKLSAKLSAgICAgICAgICMgR2VuZXJhdGUgdGVzdCBkYXRhIHdpdGgga25vd24gcGF0dGVy bnMKLSAgICAgICAgIGxvZy5pbmZvKCdDcmVhdGluZyB0ZXN0IGRhdGEuLi4nKQotQEAgLTE0MCwx MSArMjM0LDEwIEBAIGRlZiB0ZXN0X3JlcGxpY2F0aW9uX2xvZ19tb25pdG9yaW5nX2Jhc2ljKHRv cG9fbTQpOgotICAgICAgICAgcmVwbC50ZXN0X3JlcGxpY2F0aW9uX3RvcG9sb2d5KHRvcG9fbTQp Ci0gCi0gICAgICAgICAjIFJlc3RhcnQgdG8gZmx1c2ggbG9ncwotLSAgICAgICAgZm9yIHN1cHBs aWVyIGluIHN1cHBsaWVyczoKLS0gICAgICAgICAgICBzdXBwbGllci5yZXN0YXJ0KCkKLSsgICAg ICAgIF9yZXN0YXJ0X3N1cHBsaWVycyhzdXBwbGllcnMpCi0gCi0gICAgICAgICAjIENvbmZpZ3Vy ZSBtb25pdG9yaW5nCi0tICAgICAgICBsb2dfZGlycyA9IFtzLmRzX3BhdGhzLmxvZ19kaXIgZm9y IHMgaW4gc3VwcGxpZXJzXQotKyAgICAgICAgbG9nX2RpcnMgPSBfZ2V0X2xvZ19kaXJzKHN1cHBs aWVycykKLSAgICAgICAgIHJlcGxfbW9uaXRvciA9IFJlcGxpY2F0aW9uTG9nQW5hbHl6ZXIoCi0g ICAgICAgICAgICAgbG9nX2RpcnM9bG9nX2RpcnMsCi0gICAgICAgICAgICAgc3VmZml4ZXM9W0RF RkFVTFRfU1VGRklYXSwKLUBAIC0xNzcsMjMgKzI3MCwyMyBAQCBkZWYgdGVzdF9yZXBsaWNhdGlv bl9sb2dfbW9uaXRvcmluZ19iYXNpYyh0b3BvX200KToKLSAgICAgICAgICAgICBhc3NlcnQgREVG QVVMVF9TVUZGSVggaW4gY3N2X2NvbnRlbnQKLSAKLSAgICAgICAgICMgVmVyaWZ5IFBhdHRlcm5G bHkgSlNPTiBjb250ZW50Ci0tICAgICAgICB3aXRoIG9wZW4oZ2VuZXJhdGVkX2ZpbGVzWydqc29u J10sICdyJykgYXMgZjoKLS0gICAgICAgICAgICBqc29uX2RhdGEgPSBqc29uLmxvYWQoZikKLS0g ICAgICAgICAgICBhc3NlcnQgJ3JlcGxpY2F0aW9uTGFncycgaW4ganNvbl9kYXRhCi0tICAgICAg ICAgICAgYXNzZXJ0IGpzb25fZGF0YVsncmVwbGljYXRpb25MYWdzJ11bJ3NlcmllcyddLCAiRXhw ZWN0ZWQgcmVwbGljYXRpb24gbGFnIHNlcmllcyBpbiBKU09OIG91dHB1dCIKLSsgICAgICAgIGpz b25fZGF0YSA9IF9sb2FkX2pzb24oZ2VuZXJhdGVkX2ZpbGVzWydqc29uJ10pCi0rICAgICAgICBh c3NlcnQgJ3JlcGxpY2F0aW9uTGFncycgaW4ganNvbl9kYXRhCi0rICAgICAgICBhc3NlcnQganNv bl9kYXRhWydyZXBsaWNhdGlvbkxhZ3MnXVsnc2VyaWVzJ10sICJFeHBlY3RlZCByZXBsaWNhdGlv biBsYWcgc2VyaWVzIGluIEpTT04gb3V0cHV0IgotKwotKyAgICAgICAgX2Fzc2VydF9jc25fZGV0 YWlsc19zY2hlbWEoanNvbl9kYXRhKQotIAotICAgICAgICAgIyBWZXJpZnkgSlNPTiBzdW1tYXJ5 Ci0tICAgICAgICB3aXRoIG9wZW4oZ2VuZXJhdGVkX2ZpbGVzWydzdW1tYXJ5J10sICdyJykgYXMg ZjoKLS0gICAgICAgICAgICBzdW1tYXJ5ID0ganNvbi5sb2FkKGYpCi0tICAgICAgICAgICAgYXNz ZXJ0ICdhbmFseXNpc19zdW1tYXJ5JyBpbiBzdW1tYXJ5Ci0tICAgICAgICAgICAgc3RhdHMgPSBz dW1tYXJ5WydhbmFseXNpc19zdW1tYXJ5J10KLSsgICAgICAgIHN1bW1hcnkgPSBfbG9hZF9qc29u KGdlbmVyYXRlZF9maWxlc1snc3VtbWFyeSddKQotKyAgICAgICAgYXNzZXJ0ICdhbmFseXNpc19z dW1tYXJ5JyBpbiBzdW1tYXJ5Ci0rICAgICAgICBzdGF0cyA9IHN1bW1hcnlbJ2FuYWx5c2lzX3N1 bW1hcnknXQotIAotLSAgICAgICAgICAgICMgVmVyaWZ5IGJhc2ljIHN0YXRzCi0tICAgICAgICAg ICAgYXNzZXJ0IHN0YXRzWyd0b3RhbF9zZXJ2ZXJzJ10gPT0gbGVuKHN1cHBsaWVycykKLS0gICAg ICAgICAgICBhc3NlcnQgc3RhdHNbJ3RvdGFsX3VwZGF0ZXMnXSA+IDAKLS0gICAgICAgICAgICBh c3NlcnQgc3RhdHNbJ3VwZGF0ZXNfYnlfc3VmZml4J11bREVGQVVMVF9TVUZGSVhdID4gMAotLSAg ICAgICAgICAgIGFzc2VydCAnYXZlcmFnZV9sYWcnIGluIHN0YXRzCi0tICAgICAgICAgICAgYXNz ZXJ0ICdtYXhpbXVtX2xhZycgaW4gc3RhdHMKLSsgICAgICAgICMgVmVyaWZ5IGJhc2ljIHN0YXRz Ci0rICAgICAgICBhc3NlcnQgc3RhdHNbJ3RvdGFsX3NlcnZlcnMnXSA9PSBsZW4oc3VwcGxpZXJz KQotKyAgICAgICAgYXNzZXJ0IHN0YXRzWyd0b3RhbF91cGRhdGVzJ10gPiAwCi0rICAgICAgICBh c3NlcnQgc3RhdHNbJ3VwZGF0ZXNfYnlfc3VmZml4J11bREVGQVVMVF9TVUZGSVhdID4gMAotKyAg ICAgICAgYXNzZXJ0ICdhdmVyYWdlX2xhZycgaW4gc3RhdHMKLSsgICAgICAgIGFzc2VydCAnbWF4 aW11bV9sYWcnIGluIHN0YXRzCi0gCi0gICAgIGZpbmFsbHk6Ci0gICAgICAgICBfY2xlYW51cF90 ZXN0X2RhdGEodGVzdF91c2VycywgdG1wX2RpcikKLUBAIC0yMjEsOCArMzE0LDcgQEAgZGVmIHRl c3RfcmVwbGljYXRpb25fbG9nX21vbml0b3JpbmdfYWR2YW5jZWQodG9wb19tNCk6Ci0gCi0gICAg IHRyeToKLSAgICAgICAgICMgQ2xlYXIgbG9ncyBhbmQgcmVzdGFydCBzZXJ2ZXJzCi0tICAgICAg ICBmb3Igc3VwcGxpZXIgaW4gc3VwcGxpZXJzOgotLSAgICAgICAgICAgIHN1cHBsaWVyLmRlbGV0 ZUFjY2Vzc0xvZ3MocmVzdGFydD1UcnVlKQotKyAgICAgICAgX2NsZWFyX2FjY2Vzc19sb2dzKHN1 cHBsaWVycykKLSAKLSAgICAgICAgICMgR2VuZXJhdGUgdGVzdCBkYXRhCi0gICAgICAgICBzdGFy dF90aW1lID0gZGF0ZXRpbWUubm93KHRpbWV6b25lLnV0YykKLUBAIC0yNDAsMTAgKzMzMiw5IEBA IGRlZiB0ZXN0X3JlcGxpY2F0aW9uX2xvZ19tb25pdG9yaW5nX2FkdmFuY2VkKHRvcG9fbTQpOgot ICAgICAgICAgZW5kX3RpbWUgPSBkYXRldGltZS5ub3codGltZXpvbmUudXRjKQotIAotICAgICAg ICAgIyBSZXN0YXJ0IHRvIGZsdXNoIGxvZ3MKLS0gICAgICAgIGZvciBzdXBwbGllciBpbiBzdXBw bGllcnM6Ci0tICAgICAgICAgICAgc3VwcGxpZXIucmVzdGFydCgpCi0rICAgICAgICBfcmVzdGFy dF9zdXBwbGllcnMoc3VwcGxpZXJzKQotIAotLSAgICAgICAgbG9nX2RpcnMgPSBbcy5kc19wYXRo cy5sb2dfZGlyIGZvciBzIGluIHN1cHBsaWVyc10KLSsgICAgICAgIGxvZ19kaXJzID0gX2dldF9s b2dfZGlycyhzdXBwbGllcnMpCi0gCi0gICAgICAgICAjIFRlc3QgMTogTGFnIHRpbWUgZmlsdGVy aW5nCi0gICAgICAgICByZXBsX21vbml0b3IgPSBSZXBsaWNhdGlvbkxvZ0FuYWx5emVyKAotQEAg LTM3NCw4ICs0NjUsNyBAQCBkZWYgdGVzdF9yZXBsaWNhdGlvbl9sb2dfbW9uaXRvcmluZ19tdWx0 aV9zdWZmaXgodG9wb19tNCk6Ci0gICAgICAgICAgICAgcmVwbCA9IFJlcGxpY2F0aW9uTWFuYWdl cihzdWZmaXgpCi0gICAgICAgICAgICAgcmVwbC50ZXN0X3JlcGxpY2F0aW9uX3RvcG9sb2d5KHRv cG9fbTQpCi0gCi0tICAgICAgICBmb3Igc3VwcGxpZXIgaW4gc3VwcGxpZXJzOgotLSAgICAgICAg ICAgIHN1cHBsaWVyLmRlbGV0ZUFjY2Vzc0xvZ3MocmVzdGFydD1UcnVlKQotKyAgICAgICAgX2Ns ZWFyX2FjY2Vzc19sb2dzKHN1cHBsaWVycykKLSAKLSAgICAgICAgIHN0YXJ0X3RpbWUgPSBkYXRl dGltZS5ub3codGltZXpvbmUudXRjKQotIAotQEAgLTQwMCwxMSArNDkwLDEwIEBAIGRlZiB0ZXN0 X3JlcGxpY2F0aW9uX2xvZ19tb25pdG9yaW5nX211bHRpX3N1ZmZpeCh0b3BvX200KToKLSAgICAg ICAgIGVuZF90aW1lID0gZGF0ZXRpbWUubm93KHRpbWV6b25lLnV0YykKLSAKLSAgICAgICAgICMg UmVzdGFydCB0byBmbHVzaCBsb2dzCi0tICAgICAgICBmb3Igc3VwcGxpZXIgaW4gc3VwcGxpZXJz OgotLSAgICAgICAgICAgIHN1cHBsaWVyLnJlc3RhcnQoKQotKyAgICAgICAgX3Jlc3RhcnRfc3Vw cGxpZXJzKHN1cHBsaWVycykKLSAKLSAgICAgICAgICMgTW9uaXRvciBhbGwgc3VmZml4ZXMKLS0g ICAgICAgIGxvZ19kaXJzID0gW3MuZHNfcGF0aHMubG9nX2RpciBmb3IgcyBpbiBzdXBwbGllcnNd Ci0rICAgICAgICBsb2dfZGlycyA9IF9nZXRfbG9nX2RpcnMoc3VwcGxpZXJzKQotICAgICAgICAg cmVwbF9tb25pdG9yID0gUmVwbGljYXRpb25Mb2dBbmFseXplcigKLSAgICAgICAgICAgICBsb2df ZGlycz1sb2dfZGlycywKLSAgICAgICAgICAgICBzdWZmaXhlcz1hbGxfc3VmZml4ZXMsCi1AQCAt NDY2LDggKzU1NSw3IEBAIGRlZiB0ZXN0X3JlcGxpY2F0aW9uX2xvZ19tb25pdG9yaW5nX2ZpbHRl cl9jb21iaW5hdGlvbnModG9wb19tNCk6Ci0gCi0gICAgIHRyeToKLSAgICAgICAgICMgQ2xlYXIg bG9ncyBhbmQgcmVzdGFydCBzZXJ2ZXJzCi0tICAgICAgICBmb3Igc3VwcGxpZXIgaW4gc3VwcGxp ZXJzOgotLSAgICAgICAgICAgIHN1cHBsaWVyLmRlbGV0ZUFjY2Vzc0xvZ3MocmVzdGFydD1UcnVl KQotKyAgICAgICAgX2NsZWFyX2FjY2Vzc19sb2dzKHN1cHBsaWVycykKLSAKLSAgICAgICAgICMg R2VuZXJhdGUgdmFyaWVkIHRlc3QgZGF0YQotICAgICAgICAgc3RhcnRfdGltZSA9IGRhdGV0aW1l Lm5vdyh0aW1lem9uZS51dGMpCi1AQCAtNDc1LDkgKzU2Myw3IEBAIGRlZiB0ZXN0X3JlcGxpY2F0 aW9uX2xvZ19tb25pdG9yaW5nX2ZpbHRlcl9jb21iaW5hdGlvbnModG9wb19tNCk6Ci0gCi0gICAg ICAgICAjIENyZWF0ZSBkaWZmZXJlbnQgbGFnIHBhdHRlcm5zCi0gICAgICAgICAjIFBhdXNlIG91 dGJvdW5kIGFncmVlbWVudHMgZnJvbSBzdXBwbGllcjEgdG8gYnVpbGQgYSByZXBsaWNhdGlvbiBi YWNrbG9nCi0tICAgICAgICBmb3IgYWdtdCBpbiBzdXBwbGllcnNbMF0uYWdyZWVtZW50Lmxpc3Qo c3VmZml4PURFRkFVTFRfU1VGRklYKToKLS0gICAgICAgICAgICBzdXBwbGllcnNbMF0uYWdyZWVt ZW50LnBhdXNlKGFnbXQuZG4pCi0tICAgICAgICAgICAgcGF1c2VkX2FncmVlbWVudHMuYXBwZW5k KChzdXBwbGllcnNbMF0sIGFnbXQuZG4pKQotKyAgICAgICAgcGF1c2VkX2FncmVlbWVudHMgPSBf cGF1c2VfYWdyZWVtZW50cyhzdXBwbGllcnNbMF0sIERFRkFVTFRfU1VGRklYKQotIAotICAgICAg ICAgZm9yIGksIHVzZXIgaW4gZW51bWVyYXRlKHRlc3RfdXNlcnMpOgotICAgICAgICAgICAgIGlm IGkgJSAzID09IDA6Ci1AQCAtNTAyLDEwICs1ODgsOSBAQCBkZWYgdGVzdF9yZXBsaWNhdGlvbl9s b2dfbW9uaXRvcmluZ19maWx0ZXJfY29tYmluYXRpb25zKHRvcG9fbTQpOgotICAgICAgICAgZW5k X3RpbWUgPSBkYXRldGltZS5ub3codGltZXpvbmUudXRjKQotIAotICAgICAgICAgIyBSZXN0YXJ0 IHRvIGZsdXNoIGxvZ3MKLS0gICAgICAgIGZvciBzdXBwbGllciBpbiBzdXBwbGllcnM6Ci0tICAg ICAgICAgICAgc3VwcGxpZXIucmVzdGFydCgpCi0rICAgICAgICBfcmVzdGFydF9zdXBwbGllcnMo c3VwcGxpZXJzKQotIAotLSAgICAgICAgbG9nX2RpcnMgPSBbcy5kc19wYXRocy5sb2dfZGlyIGZv ciBzIGluIHN1cHBsaWVyc10KLSsgICAgICAgIGxvZ19kaXJzID0gX2dldF9sb2dfZGlycyhzdXBw bGllcnMpCi0gCi0gICAgICAgICAjIFRlc3QgY29tYmluZWQgZmlsdGVycwotICAgICAgICAgbGFn X3RocmVzaG9sZCA9IDAuNQotQEAgLTU0MywxMSArNjI4LDMyMSBAQCBkZWYgdGVzdF9yZXBsaWNh dGlvbl9sb2dfbW9uaXRvcmluZ19maWx0ZXJfY29tYmluYXRpb25zKHRvcG9fbTQpOgotICAgICAg ICAgICAgICAgICBkdCA9IGRhdGV0aW1lLmZyb210aW1lc3RhbXAodCwgdGltZXpvbmUudXRjKQot ICAgICAgICAgICAgICAgICBhc3NlcnQgc3RhcnRfdGltZSA8PSBkdCA8PSBlbmRfdGltZSwgIlRp bWUgcmFuZ2UgZmlsdGVyIHZpb2xhdGVkIgotICAgICBmaW5hbGx5OgotLSAgICAgICAgZm9yIHN1 cHBsaWVyX29iaiwgZG4gaW4gcGF1c2VkX2FncmVlbWVudHM6Ci0tICAgICAgICAgICAgdHJ5Ogot LSAgICAgICAgICAgICAgICBzdXBwbGllcl9vYmouYWdyZWVtZW50LnJlc3VtZShkbikKLS0gICAg ICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0tICAgICAgICAgICAgICAgIGxvZy53YXJu aW5nKGYiRmFpbGVkIHRvIHJlc3VtZSBhZ3JlZW1lbnQge2RufToge2V9IikKLSsgICAgICAgIF9y ZXN1bWVfYWdyZWVtZW50cyhwYXVzZWRfYWdyZWVtZW50cykKLSsgICAgICAgIF9jbGVhbnVwX3Rl c3RfZGF0YSh0ZXN0X3VzZXJzLCB0bXBfZGlyKQotKwotKwotK2RlZiB0ZXN0X3JlcGxpY2F0aW9u X2xvZ19tb25pdG9yaW5nX2Nzbl9kZXRhaWxzX2VkZ2VfY2FzZXModG9wb19tNCk6Ci0rICAgICIi IlRlc3QgQ1NOIGRldGFpbHMgZWRnZSBjYXNlcyBhbmQgc3RydWN0dXJlIHZhbGlkYXRpb24KLSsK LSsgICAgOmlkOiBmNDNkYzQ3My00NDI4LTQ5NzEtYmU0Yy0xNjljNGE3ODcyNmUKLSsgICAgOnNl dHVwOiBGb3VyIHN1cHBsaWVycyByZXBsaWNhdGlvbiBzZXR1cAotKyAgICA6c3RlcHM6Ci0rICAg ICAgICAxLiBUZXN0IENTTiBkZXRhaWxzIHN0cnVjdHVyZSB3aXRoIHZhcmlvdXMgcmVwbGljYXRp b24gcGF0dGVybnMKLSsgICAgICAgIDIuIFZlcmlmeSBhcnJpdmFscyBvcmRlcmluZyBhbmQgaG9w IGxhZyBjYWxjdWxhdGlvbnMKLSsgICAgICAgIDMuIFRlc3QgcGFydGlhbCByZXBsaWNhdGlvbiBz Y2VuYXJpb3MKLSsgICAgICAgIDQuIFZlcmlmeSBvcmlnaW4gc2VydmVyIGRldGVjdGlvbgotKyAg ICA6ZXhwZWN0ZWRyZXN1bHRzOgotKyAgICAgICAgMS4gQ1NOIGRldGFpbHMgc2hvdWxkIGhhdmUg Y29ycmVjdCBzdHJ1Y3R1cmUKLSsgICAgICAgIDIuIEFycml2YWxzIHNob3VsZCBiZSBvcmRlcmVk IGJ5IHRpbWVzdGFtcAotKyAgICAgICAgMy4gUGFydGlhbCByZXBsaWNhdGlvbiBzaG91bGQgYmUg ZGV0ZWN0ZWQKLSsgICAgICAgIDQuIE9yaWdpbiBzZXJ2ZXIgc2hvdWxkIGJlIGNvcnJlY3RseSBp ZGVudGlmaWVkCi0rICAgICIiIgotKyAgICB0bXBfZGlyID0gdGVtcGZpbGUubWtkdGVtcChwcmVm aXg9J3JlcGxfY3NuX2VkZ2VfJykKLSsgICAgdGVzdF91c2VycyA9IFtdCi0rICAgIHN1cHBsaWVy cyA9IFt0b3BvX200Lm1zW2Yic3VwcGxpZXJ7aX0iXSBmb3IgaSBpbiByYW5nZSgxLCA1KV0KLSsK LSsgICAgdHJ5OgotKyAgICAgICAgX2NsZWFyX2FjY2Vzc19sb2dzKHN1cHBsaWVycykKLSsKLSsg ICAgICAgIGxvZy5pbmZvKCdDcmVhdGluZyB0ZXN0IGRhdGEgZm9yIENTTiBkZXRhaWxzIGVkZ2Ug Y2FzZSB0ZXN0aW5nLi4uJykKLSsgICAgICAgIHRlc3RfdXNlcnMgPSBfZ2VuZXJhdGVfdGVzdF9k YXRhKHN1cHBsaWVyc1swXSwgREVGQVVMVF9TVUZGSVgsIDUpCi0rCi0rICAgICAgICByZXBsID0g UmVwbGljYXRpb25NYW5hZ2VyKERFRkFVTFRfU1VGRklYKQotKyAgICAgICAgcmVwbC50ZXN0X3Jl cGxpY2F0aW9uX3RvcG9sb2d5KHRvcG9fbTQpCi0rCi0rICAgICAgICBfcmVzdGFydF9zdXBwbGll cnMoc3VwcGxpZXJzKQotKwotKyAgICAgICAgbG9nX2RpcnMgPSBfZ2V0X2xvZ19kaXJzKHN1cHBs aWVycykKLSsgICAgICAgIHJlcGxfbW9uaXRvciA9IFJlcGxpY2F0aW9uTG9nQW5hbHl6ZXIoCi0r ICAgICAgICAgICAgbG9nX2RpcnM9bG9nX2RpcnMsCi0rICAgICAgICAgICAgc3VmZml4ZXM9W0RF RkFVTFRfU1VGRklYXSwKLSsgICAgICAgICAgICBhbm9ueW1vdXM9RmFsc2UsCi0rICAgICAgICAg ICAgb25seV9mdWxseV9yZXBsaWNhdGVkPVRydWUKLSsgICAgICAgICkKLSsKLSsgICAgICAgIHJl cGxfbW9uaXRvci5wYXJzZV9sb2dzKCkKLSsgICAgICAgIGdlbmVyYXRlZF9maWxlcyA9IHJlcGxf bW9uaXRvci5nZW5lcmF0ZV9yZXBvcnQoCi0rICAgICAgICAgICAgb3V0cHV0X2Rpcj10bXBfZGly LAotKyAgICAgICAgICAgIGZvcm1hdHM9Wydqc29uJ10sCi0rICAgICAgICAgICAgcmVwb3J0X25h bWU9J2Nzbl9lZGdlX3Rlc3QnCi0rICAgICAgICApCi0rCi0rICAgICAgICBhc3NlcnQgb3MucGF0 aC5leGlzdHMoZ2VuZXJhdGVkX2ZpbGVzWydqc29uJ10pCi0rCi0rICAgICAgICBqc29uX2RhdGEg PSBfbG9hZF9qc29uKGdlbmVyYXRlZF9maWxlc1snanNvbiddKQotKwotKyAgICAgICAgYXNzZXJ0 ICdjc25EZXRhaWxzJyBpbiBqc29uX2RhdGEsICJjc25EZXRhaWxzIHNob3VsZCBiZSBwcmVzZW50 IgotKyAgICAgICAgY3NuX2RldGFpbHMgPSBqc29uX2RhdGFbJ2NzbkRldGFpbHMnXQotKwotKyAg ICAgICAgaWYgY3NuX2RldGFpbHM6Ci0rICAgICAgICAgICAgZm9yIGNzbiwgZGV0YWlscyBpbiBj c25fZGV0YWlscy5pdGVtcygpOgotKyAgICAgICAgICAgICAgICBhcnJpdmFscyA9IGRldGFpbHMu Z2V0KCdhcnJpdmFscycsIFtdKQotKyAgICAgICAgICAgICAgICBpZiBsZW4oYXJyaXZhbHMpID4g MToKLSsgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcHMgPSBbYVsndGltZXN0YW1wJ10gZm9y IGEgaW4gYXJyaXZhbHNdCi0rICAgICAgICAgICAgICAgICAgICBhc3NlcnQgdGltZXN0YW1wcyA9 PSBzb3J0ZWQodGltZXN0YW1wcyksIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICBmIkFycml2 YWxzIGZvciBDU04ge2Nzbn0gc2hvdWxkIGJlIG9yZGVyZWQgYnkgdGltZXN0YW1wIgotKwotKyAg ICAgICAgICAgICAgICBpZiBhcnJpdmFsczoKLSsgICAgICAgICAgICAgICAgICAgIG9yaWdpbl9h cnJpdmFsID0gbmV4dCgoYSBmb3IgYSBpbiBhcnJpdmFscyBpZiBhLmdldCgnaXNPcmlnaW4nKSks IE5vbmUpCi0rICAgICAgICAgICAgICAgICAgICBhc3NlcnQgb3JpZ2luX2Fycml2YWwgaXMgbm90 IE5vbmUsICJFeHBlY3RlZCBhbiBhcnJpdmFsIG1hcmtlZCBhcyBvcmlnaW4iCi0rICAgICAgICAg ICAgICAgICAgICBhc3NlcnQgb3JpZ2luX2Fycml2YWwuZ2V0KCdzZXJ2ZXInKSA9PSBkZXRhaWxz LmdldCgnb3JpZ2luU2VydmVyJyksIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAiT3JpZ2lu IGFycml2YWwgc2VydmVyIHNob3VsZCBtYXRjaCBvcmlnaW5TZXJ2ZXIgZmllbGQiCi0rCi0rICAg ICAgICAgICAgICAgICAgICBmb3IgaSwgYXJyaXZhbCBpbiBlbnVtZXJhdGUoYXJyaXZhbHNbMTpd LCBzdGFydD0xKToKLSsgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQgJ2hvcExhZycgaW4g YXJyaXZhbCwgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmIkFycml2YWwge2l9IHNo b3VsZCBoYXZlIGhvcExhZyIKLSsgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQgYXJyaXZh bFsnaG9wTGFnJ10gPj0gMCwgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaG9wTGFn IHNob3VsZCBiZSBub24tbmVnYXRpdmUiCi0rCi0rICAgICAgICAgICAgICAgIGlmIGxlbihhcnJp dmFscykgPiAxOgotKyAgICAgICAgICAgICAgICAgICAgZ2xvYmFsX2xhZyA9IGRldGFpbHMuZ2V0 KCdnbG9iYWxMYWcnLCAwKQotKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGdsb2JhbF9sYWcg Pj0gMCwgImdsb2JhbExhZyBzaG91bGQgYmUgbm9uLW5lZ2F0aXZlIgotKwotKyAgICAgICAgICAg ICAgICAgICAgbGFzdF9kZWxheSA9IGFycml2YWxzWy0xXS5nZXQoJ3JlbGF0aXZlRGVsYXknLCAw KQotKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGFicyhsYXN0X2RlbGF5IC0gZ2xvYmFsX2xh ZykgPCAwLjAwMSwgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICJMYXN0IGFycml2YWwncyBy ZWxhdGl2ZURlbGF5IHNob3VsZCBtYXRjaCBnbG9iYWxMYWciCi0rCi0rICAgICAgICAgICAgICAg IHNlcnZlcl9jb3VudCA9IGRldGFpbHMuZ2V0KCdzZXJ2ZXJDb3VudCcsIDApCi0rICAgICAgICAg ICAgICAgIGFzc2VydCBzZXJ2ZXJfY291bnQgPT0gbGVuKGFycml2YWxzKSwgXAotKyAgICAgICAg ICAgICAgICAgICAgInNlcnZlckNvdW50IHNob3VsZCBtYXRjaCBudW1iZXIgb2YgYXJyaXZhbHMi Ci0rCi0rICAgICAgICAgICAgICAgIHRvdGFsX2hvcHMgPSBkZXRhaWxzLmdldCgndG90YWxIb3Bz JywgMCkKLSsgICAgICAgICAgICAgICAgZXhwZWN0ZWRfaG9wcyA9IG1heCgwLCBsZW4oYXJyaXZh bHMpIC0gMSkKLSsgICAgICAgICAgICAgICAgYXNzZXJ0IHRvdGFsX2hvcHMgPT0gZXhwZWN0ZWRf aG9wcywgXAotKyAgICAgICAgICAgICAgICAgICAgZiJ0b3RhbEhvcHMgc2hvdWxkIGJlIHtleHBl Y3RlZF9ob3BzfSwgZ290IHt0b3RhbF9ob3BzfSIKLSsKLSsgICAgICAgICAgICAgICAgaG9wcyA9 IGRldGFpbHMuZ2V0KCdob3BzJywgW10pCi0rICAgICAgICAgICAgICAgIGFzc2VydCBsZW4oaG9w cykgPT0gdG90YWxfaG9wcywgXAotKyAgICAgICAgICAgICAgICAgICAgImhvcHMgbGlzdCBsZW5n dGggc2hvdWxkIG1hdGNoIHRvdGFsSG9wcyIKLSsKLSsgICAgICAgICAgICBpZiAncmVwbGljYXRp b25MYWdzJyBpbiBqc29uX2RhdGEgYW5kIGpzb25fZGF0YVsncmVwbGljYXRpb25MYWdzJ10uZ2V0 KCdzZXJpZXMnKToKLSsgICAgICAgICAgICAgICAgZm9yIHNlcmllcyBpbiBqc29uX2RhdGFbJ3Jl cGxpY2F0aW9uTGFncyddWydzZXJpZXMnXToKLSsgICAgICAgICAgICAgICAgICAgIGZvciBkYXRh cG9pbnQgaW4gc2VyaWVzLmdldCgnZGF0YXBvaW50cycsIFtdKToKLSsgICAgICAgICAgICAgICAg ICAgICAgICBjc25faWQgPSBkYXRhcG9pbnQuZ2V0KCdjc25JZCcpCi0rICAgICAgICAgICAgICAg ICAgICAgICAgaWYgY3NuX2lkOgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQg Y3NuX2lkIGluIGNzbl9kZXRhaWxzLCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBmImNzbklkIHtjc25faWR9IGluIGRhdGFwb2ludCBzaG91bGQgZXhpc3QgaW4gY3NuRGV0YWls cyIKLSsKLSsgICAgZmluYWxseToKLSsgICAgICAgIF9jbGVhbnVwX3Rlc3RfZGF0YSh0ZXN0X3Vz ZXJzLCB0bXBfZGlyKQotKwotKwotK2RlZiB0ZXN0X3JlcGxpY2F0aW9uX2xvZ19tb25pdG9yaW5n X29yaWdpbl9vdXRfb2Zfc2NvcGUodG9wb19tNCk6Ci0rICAgICIiIlRlc3Qgb3JpZ2luIGRldGVj dGlvbiB3aGVuIG9yaWdpbiBzZXJ2ZXIgcmVjb3JkIGlzIG91dHNpZGUgdGltZSByYW5nZQotKwot KyAgICA6aWQ6IGQ3M2ZkOWM1LWY5MzAtNDdkNi1hZGU0LWFkYTFjZjBkMmMyMQotKyAgICA6c2V0 dXA6IEZvdXIgc3VwcGxpZXJzIHJlcGxpY2F0aW9uIHNldHVwCi0rICAgIDpzdGVwczoKLSsgICAg ICAgIDEuIFBhdXNlIG91dGJvdW5kIGFncmVlbWVudHMgZnJvbSB0aGUgb3JpZ2luIHN1cHBsaWVy Ci0rICAgICAgICAyLiBHZW5lcmF0ZSBjaGFuZ2VzLCB0aGVuIHJlc3VtZSBhZ3JlZW1lbnRzIHRv IGRlbGF5IGNvbnN1bWVyIGFycml2YWxzCi0rICAgICAgICAzLiBVc2UgdGltZSByYW5nZSB0aGF0 IGV4Y2x1ZGVzIHRoZSBvcmlnaW4gbG9nIGJ1dCBpbmNsdWRlcyBjb25zdW1lciBsb2dzCi0rICAg IDpleHBlY3RlZHJlc3VsdHM6Ci0rICAgICAgICAxLiBPcmlnaW4gc2VydmVyIHNob3VsZCBiZSBp ZGVudGlmaWVkIGZyb20gcmVwbGljYSBJRCBtYXBwaW5nCi0rICAgICAgICAyLiBBdCBsZWFzdCBv bmUgQ1NOIHNob3VsZCBoYXZlIG9yaWdpbiBvdXRzaWRlIHRoZSBzZWxlY3RlZCB0aW1lIHJhbmdl Ci0rICAgICAgICAzLiBKU09OIHJlcG9ydCBzaG91bGQgaW5jbHVkZSBjc25EZXRhaWxzIGVudHJp ZXMgZm9yIHZhbGlkYXRpb24KLSsgICAgIiIiCi0rICAgIHRtcF9kaXIgPSB0ZW1wZmlsZS5ta2R0 ZW1wKHByZWZpeD0ncmVwbF9vcmlnaW5fc2NvcGVfJykKLSsgICAgdGVzdF91c2VycyA9IFtdCi0r ICAgIHN1cHBsaWVycyA9IFt0b3BvX200Lm1zW2Yic3VwcGxpZXJ7aX0iXSBmb3IgaSBpbiByYW5n ZSgxLCA1KV0KLSsgICAgcGF1c2VkX2FncmVlbWVudHMgPSBbXQotKwotKyAgICB0cnk6Ci0rICAg ICAgICAjIFJlc2V0IGFjY2VzcyBsb2dzIHRvIG1ha2UgdGltZS1yYW5nZSBjdXRzIGVhc2llciB0 byByZWFzb24gYWJvdXQKLSsgICAgICAgIF9jbGVhcl9hY2Nlc3NfbG9ncyhzdXBwbGllcnMpCi0r Ci0rICAgICAgICAjIFBhdXNlIG91dGJvdW5kIGFncmVlbWVudHMgc28gY29uc3VtZXIgbG9ncyB3 b24ndCBzZWUgdGhlIHByZS1yZXN1bWUgQ1NOcwotKyAgICAgICAgcGF1c2VkX2FncmVlbWVudHMg PSBfcGF1c2VfYWdyZWVtZW50cyhzdXBwbGllcnNbMF0sIERFRkFVTFRfU1VGRklYKQotKwotKyAg ICAgICAgbG9nLmluZm8oJ0NyZWF0aW5nIHByZS1yZXN1bWUgY2hhbmdlcyBmb3Igb3JpZ2luIG91 dC1vZi1zY29wZSB0ZXN0Li4uJykKLSsgICAgICAgICMgQ3JlYXRlIENTTnMgdGhhdCBvcmlnaW5h dGUgb24gc3VwcGxpZXIxIGJ1dCB3b24ndCByZWFjaCBjb25zdW1lcnMgeWV0Ci0rICAgICAgICBw cmVfc3RhcnQgPSBkYXRldGltZS5ub3codGltZXpvbmUudXRjKQotKyAgICAgICAgdGVzdF91c2Vy cyA9IF9nZW5lcmF0ZV90ZXN0X2RhdGEoCi0rICAgICAgICAgICAgc3VwcGxpZXJzWzBdLCBERUZB VUxUX1NVRkZJWCwgMiwgdXNlcl9wcmVmaXg9Im9yaWdpbl9zY29wZV9wcmUiCi0rICAgICAgICAp Ci0rICAgICAgICBwcmVfZW5kID0gZGF0ZXRpbWUubm93KHRpbWV6b25lLnV0YykKLSsgICAgICAg ICMgTG9jYXRlIHRoZSBsYXRlc3Qgb3JpZ2luIGxvZyB0aW1lIGZvciB0aGVzZSBDU05zIHRvIHNl dCBhIGRldGVybWluaXN0aWMgY3V0b2ZmCi0rICAgICAgICBvcmlnaW5fbG9nX3RpbWUgPSBfZmlu ZF9sYXRlc3RfbG9ndGltZV9mb3JfcHJlZml4KAotKyAgICAgICAgICAgIHN1cHBsaWVyc1swXS5k c19wYXRocy5sb2dfZGlyLAotKyAgICAgICAgICAgIERFRkFVTFRfU1VGRklYLAotKyAgICAgICAg ICAgIHByZV9zdGFydCwKLSsgICAgICAgICAgICBwcmVfZW5kLAotKyAgICAgICAgICAgICJvcmln aW5fc2NvcGVfcHJlXyIKLSsgICAgICAgICkKLSsgICAgICAgIGFzc2VydCBvcmlnaW5fbG9nX3Rp bWUgaXMgbm90IE5vbmUsICJFeHBlY3RlZCBvcmlnaW4gc2VydmVyIGxvZyBlbnRyaWVzIGZvciBw cmUtcmVzdW1lIGRhdGEiCi0rICAgICAgICAjIEN1dCB0aGUgYW5hbHlzaXMgd2luZG93IGp1c3Qg YWZ0ZXIgb3JpZ2luIGxvZ2dpbmcsIGV4Y2x1ZGluZyBzdXBwbGllcjEgZW50cmllcwotKyAgICAg ICAgc3RhcnRfdGltZSA9IG9yaWdpbl9sb2dfdGltZSArIHRpbWVkZWx0YShzZWNvbmRzPTEpCi0r ICAgICAgICB0aW1lLnNsZWVwKDEpCi0rCi0rICAgICAgICAjIFJlc3VtZSBhZ3JlZW1lbnRzIHNv IHRoZSBwcmUtcmVzdW1lIENTTnMgcmVwbGljYXRlIHRvIGNvbnN1bWVycyBhZnRlciBzdGFydF90 aW1lCi0rICAgICAgICBfcmVzdW1lX2FncmVlbWVudHMocGF1c2VkX2FncmVlbWVudHMpCi0rICAg ICAgICBwYXVzZWRfYWdyZWVtZW50cy5jbGVhcigpCi0rCi0rICAgICAgICBsb2cuaW5mbygnQ3Jl YXRpbmcgcG9zdC1yZXN1bWUgY2hhbmdlcyBmb3Igb3JpZ2luIG1hcHBpbmcuLi4nKQotKyAgICAg ICAgIyBBZGRpdGlvbmFsIENTTnMgYWZ0ZXIgcmVzdW1lIGVuc3VyZSBub3JtYWwgcmVwbGljYXRp b24gY29udGludWVzCi0rICAgICAgICB0ZXN0X3VzZXJzICs9IF9nZW5lcmF0ZV90ZXN0X2RhdGEo Ci0rICAgICAgICAgICAgc3VwcGxpZXJzWzBdLCBERUZBVUxUX1NVRkZJWCwgMiwgdXNlcl9wcmVm aXg9Im9yaWdpbl9zY29wZV9wb3N0IgotKyAgICAgICAgKQotKwotKyAgICAgICAgIyBXYWl0IGZv ciByZXBsaWNhdGlvbiB0byBmaW5pc2ggYW5kIGNhcHR1cmUgdGhlIHVwcGVyIGJvdW5kIG9mIHRo ZSB0aW1lIHdpbmRvdwotKyAgICAgICAgcmVwbCA9IFJlcGxpY2F0aW9uTWFuYWdlcihERUZBVUxU X1NVRkZJWCkKLSsgICAgICAgIHJlcGwudGVzdF9yZXBsaWNhdGlvbl90b3BvbG9neSh0b3BvX200 KQotKyAgICAgICAgZW5kX3RpbWUgPSBkYXRldGltZS5ub3codGltZXpvbmUudXRjKQotKwotKyAg ICAgICAgIyBSZXN0YXJ0IHRvIGZsdXNoIGxvZ3MgYmVmb3JlIGFuYWx5c2lzCi0rICAgICAgICBf cmVzdGFydF9zdXBwbGllcnMoc3VwcGxpZXJzKQotKwotKyAgICAgICAgbG9nX2RpcnMgPSBfZ2V0 X2xvZ19kaXJzKHN1cHBsaWVycykKLSsgICAgICAgIHJlcGxfbW9uaXRvciA9IFJlcGxpY2F0aW9u TG9nQW5hbHl6ZXIoCi0rICAgICAgICAgICAgbG9nX2RpcnM9bG9nX2RpcnMsCi0rICAgICAgICAg ICAgc3VmZml4ZXM9W0RFRkFVTFRfU1VGRklYXSwKLSsgICAgICAgICAgICB0aW1lX3JhbmdlPXsn c3RhcnQnOiBzdGFydF90aW1lLCAnZW5kJzogZW5kX3RpbWV9Ci0rICAgICAgICApCi0rCi0rICAg ICAgICAjIFBhcnNlIGxvZ3Mgd2l0aGluIHRoZSB0aW1lIHdpbmRvdyBhbmQgcHJvZHVjZSBKU09O IGRldGFpbHMKLSsgICAgICAgIHJlcGxfbW9uaXRvci5wYXJzZV9sb2dzKCkKLSsgICAgICAgIGdl bmVyYXRlZF9maWxlcyA9IHJlcGxfbW9uaXRvci5nZW5lcmF0ZV9yZXBvcnQoCi0rICAgICAgICAg ICAgb3V0cHV0X2Rpcj10bXBfZGlyLAotKyAgICAgICAgICAgIGZvcm1hdHM9Wydqc29uJ10sCi0r ICAgICAgICAgICAgcmVwb3J0X25hbWU9J29yaWdpbl9zY29wZV90ZXN0JwotKyAgICAgICAgKQot KwotKyAgICAgICAganNvbl9kYXRhID0gX2xvYWRfanNvbihnZW5lcmF0ZWRfZmlsZXNbJ2pzb24n XSkKLSsKLSsgICAgICAgIGNzbl9kZXRhaWxzID0ganNvbl9kYXRhLmdldCgnY3NuRGV0YWlscycs IHt9KQotKyAgICAgICAgb3JpZ2luX3NlcnZlciA9IHN1cHBsaWVyc1swXS5zZXJ2ZXJpZAotKyAg ICAgICAgZm91bmQgPSBGYWxzZQotKyAgICAgICAgaWYgY3NuX2RldGFpbHM6Ci0rICAgICAgICAg ICAgb3JpZ2luX2NvdW50cyA9IHt9Ci0rICAgICAgICAgICAgZm9yIGRldGFpbHMgaW4gY3NuX2Rl dGFpbHMudmFsdWVzKCk6Ci0rICAgICAgICAgICAgICAgIG9yaWdpbiA9IGRldGFpbHMuZ2V0KCdv cmlnaW5TZXJ2ZXInLCAndW5rbm93bicpCi0rICAgICAgICAgICAgICAgIG9yaWdpbl9jb3VudHNb b3JpZ2luXSA9IG9yaWdpbl9jb3VudHMuZ2V0KG9yaWdpbiwgMCkgKyAxCi0rICAgICAgICAgICAg aWYgb3JpZ2luX3NlcnZlciBub3QgaW4gb3JpZ2luX2NvdW50cyBhbmQgZiJzbGFwZC17b3JpZ2lu X3NlcnZlcn0iIGluIG9yaWdpbl9jb3VudHM6Ci0rICAgICAgICAgICAgICAgIG9yaWdpbl9zZXJ2 ZXIgPSBmInNsYXBkLXtvcmlnaW5fc2VydmVyfSIKLSsKLSsgICAgICAgICMgRm9jdXMgb24gdGhl IHByZS1yZXN1bWUgQ1NOczsgdGhlc2Ugc2hvdWxkIGhhdmUgb3JpZ2luIG91dCBvZiBzY29wZQot KyAgICAgICAgcHJlX2RldGFpbHMgPSBbCi0rICAgICAgICAgICAgZGV0YWlscyBmb3IgZGV0YWls cyBpbiBjc25fZGV0YWlscy52YWx1ZXMoKQotKyAgICAgICAgICAgIGlmICJvcmlnaW5fc2NvcGVf cHJlXyIgaW4gKGRldGFpbHMuZ2V0KCd0YXJnZXREbicpIG9yICcnKQotKyAgICAgICAgXQotKyAg ICAgICAgYXNzZXJ0IHByZV9kZXRhaWxzLCAiRXhwZWN0ZWQgcHJlLXJlc3VtZSBDU05zIGluIGNz bkRldGFpbHMiCi0rICAgICAgICAjIENvbmZpcm0gYXQgbGVhc3Qgb25lIENTTiBzaG93cyBvcmln aW4gc2VydmVyIG1pc3NpbmcgZnJvbSBhcnJpdmFscwotKyAgICAgICAgZm9yIGRldGFpbHMgaW4g cHJlX2RldGFpbHM6Ci0rICAgICAgICAgICAgaWYgZGV0YWlscy5nZXQoJ29yaWdpblNlcnZlcicp ICE9IG9yaWdpbl9zZXJ2ZXI6Ci0rICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0rICAgICAgICAg ICAgYXJyaXZhbHMgPSBkZXRhaWxzLmdldCgnYXJyaXZhbHMnLCBbXSkKLSsgICAgICAgICAgICBh cnJpdmFsX3NlcnZlcnMgPSB7YS5nZXQoJ3NlcnZlcicpIGZvciBhIGluIGFycml2YWxzfQotKyAg ICAgICAgICAgIGlmIGFycml2YWxfc2VydmVycyBhbmQgb3JpZ2luX3NlcnZlciBub3QgaW4gYXJy aXZhbF9zZXJ2ZXJzOgotKyAgICAgICAgICAgICAgICBmb3VuZCA9IFRydWUKLSsgICAgICAgICAg ICAgICAgYnJlYWsKLSsgICAgICAgICAgICBsb2cuaW5mbygKLSsgICAgICAgICAgICAgICAgIk9y aWdpbiBvdXQtb2Ytc2NvcGUgY2FuZGlkYXRlOiBjc249JXMgYXJyaXZhbHM9JXMiLAotKyAgICAg ICAgICAgICAgICBkZXRhaWxzLmdldCgnY3NuJyksCi0rICAgICAgICAgICAgICAgIHNvcnRlZChh cnJpdmFsX3NlcnZlcnMpCi0rICAgICAgICAgICAgKQotKwotKyAgICAgICAgYXNzZXJ0IGZvdW5k LCAoCi0rICAgICAgICAgICAgIkV4cGVjdGVkIGF0IGxlYXN0IG9uZSBDU04gd2hlcmUgdGhlIG9y aWdpbiBzZXJ2ZXIgaXMgb3V0c2lkZSB0aGUgdGltZSByYW5nZSAiCi0rICAgICAgICAgICAgImJ1 dCBzdGlsbCBpZGVudGlmaWVkIHZpYSByZXBsaWNhIElEIG1hcHBpbmciCi0rICAgICAgICApCi0r Ci0rICAgIGZpbmFsbHk6Ci0rICAgICAgICBfcmVzdW1lX2FncmVlbWVudHMocGF1c2VkX2FncmVl bWVudHMpCi0rICAgICAgICBfY2xlYW51cF90ZXN0X2RhdGEodGVzdF91c2VycywgdG1wX2RpcikK LSsKLSsKLStkZWYgdGVzdF9yZXBsaWNhdGlvbl9sb2dfbW9uaXRvcmluZ19wYXJ0aWFsX3JlcGxp Y2F0aW9uKHRvcG9fbTQpOgotKyAgICAiIiJUZXN0IENTTiBkZXRhaWxzIHdpdGggcGFydGlhbCBy ZXBsaWNhdGlvbiAobm90IGFsbCBzZXJ2ZXJzIHJlYWNoZWQpCi0rCi0rICAgIDppZDogZDQwMjZm ZDAtZDgzYi00MDBlLThjMmUtNDRmY2Y2NzYzNjhmCi0rICAgIDpzZXR1cDogRm91ciBzdXBwbGll cnMgcmVwbGljYXRpb24gc2V0dXAKLSsgICAgOnN0ZXBzOgotKyAgICAgICAgMS4gUGF1c2UgcmVw bGljYXRpb24gYWdyZWVtZW50cyB0byBjcmVhdGUgcGFydGlhbCByZXBsaWNhdGlvbgotKyAgICAg ICAgMi4gR2VuZXJhdGUgY2hhbmdlcyBhbmQgdmVyaWZ5IHBhcnRpYWwgcmVwbGljYXRpb24gZGV0 ZWN0aW9uCi0rICAgICAgICAzLiBWZXJpZnkgcmVwbGljYXRlZFRvQWxsIGZsYWcgaXMgY29ycmVj dAotKyAgICA6ZXhwZWN0ZWRyZXN1bHRzOgotKyAgICAgICAgMS4gUGFydGlhbCByZXBsaWNhdGlv biBzaG91bGQgYmUgZGV0ZWN0ZWQKLSsgICAgICAgIDIuIHJlcGxpY2F0ZWRUb0FsbCBzaG91bGQg YmUgRmFsc2UgZm9yIHBhcnRpYWxseSByZXBsaWNhdGVkIENTTnMKLSsgICAgICAgIDMuIHNlcnZl ckNvdW50IHNob3VsZCByZWZsZWN0IGFjdHVhbCBzZXJ2ZXJzIHJlYWNoZWQKLSsgICAgIiIiCi0r ICAgIHRtcF9kaXIgPSB0ZW1wZmlsZS5ta2R0ZW1wKHByZWZpeD0ncmVwbF9wYXJ0aWFsXycpCi0r ICAgIHRlc3RfdXNlcnMgPSBbXQotKyAgICBzdXBwbGllcnMgPSBbdG9wb19tNC5tc1tmInN1cHBs aWVye2l9Il0gZm9yIGkgaW4gcmFuZ2UoMSwgNSldCi0rICAgIHBhdXNlZF9hZ3JlZW1lbnRzID0g W10KLSsKLSsgICAgdHJ5OgotKyAgICAgICAgX2NsZWFyX2FjY2Vzc19sb2dzKHN1cHBsaWVycykK LSsKLSsgICAgICAgIGxvZy5pbmZvKCdDcmVhdGluZyBmdWxseSByZXBsaWNhdGVkIHRlc3QgZGF0 YS4uLicpCi0rICAgICAgICB0ZXN0X3VzZXJzID0gX2dlbmVyYXRlX3Rlc3RfZGF0YShzdXBwbGll cnNbMF0sIERFRkFVTFRfU1VGRklYLCAzKQotKwotKyAgICAgICAgcmVwbCA9IFJlcGxpY2F0aW9u TWFuYWdlcihERUZBVUxUX1NVRkZJWCkKLSsgICAgICAgIHJlcGwudGVzdF9yZXBsaWNhdGlvbl90 b3BvbG9neSh0b3BvX200KQotKwotKyAgICAgICAgX3Jlc3RhcnRfc3VwcGxpZXJzKHN1cHBsaWVy cykKLSsKLSsgICAgICAgICMgUGF1c2Ugb3V0Ym91bmQgYWdyZWVtZW50cyBmcm9tIHN1cHBsaWVy MSB0byBjcmVhdGUgcGFydGlhbCByZXBsaWNhdGlvbgotKyAgICAgICAgcGF1c2VkX2FncmVlbWVu dHMgPSBfcGF1c2VfYWdyZWVtZW50cyhzdXBwbGllcnNbMF0sIERFRkFVTFRfU1VGRklYKQotKwot KyAgICAgICAgbG9nLmluZm8oJ0NyZWF0aW5nIHBhcnRpYWxseSByZXBsaWNhdGVkIHRlc3QgZGF0 YS4uLicpCi0rICAgICAgICB0ZXN0X3VzZXJzICs9IF9nZW5lcmF0ZV90ZXN0X2RhdGEoc3VwcGxp ZXJzWzBdLCBERUZBVUxUX1NVRkZJWCwgMywgdXNlcl9wcmVmaXg9InBhcnRpYWxfdXNlciIpCi0r Ci0rICAgICAgICAjIEFsbG93IHNvbWUgdGltZSBmb3IgbG9jYWwgbG9nZ2luZzsgZG8gbm90IHdh aXQgZm9yIGZ1bGwgcmVwbGljYXRpb24KLSsgICAgICAgIHRpbWUuc2xlZXAoMikKLSsKLSsgICAg ICAgIGxvZ19kaXJzID0gX2dldF9sb2dfZGlycyhzdXBwbGllcnMpCi0rICAgICAgICByZXBsX21v bml0b3IgPSBSZXBsaWNhdGlvbkxvZ0FuYWx5emVyKAotKyAgICAgICAgICAgIGxvZ19kaXJzPWxv Z19kaXJzLAotKyAgICAgICAgICAgIHN1ZmZpeGVzPVtERUZBVUxUX1NVRkZJWF0sCi0rICAgICAg ICAgICAgYW5vbnltb3VzPUZhbHNlLAotKyAgICAgICAgICAgIG9ubHlfZnVsbHlfcmVwbGljYXRl ZD1GYWxzZSwKLSsgICAgICAgICAgICBvbmx5X25vdF9yZXBsaWNhdGVkPUZhbHNlCi0rICAgICAg ICApCi0rCi0rICAgICAgICByZXBsX21vbml0b3IucGFyc2VfbG9ncygpCi0rICAgICAgICBnZW5l cmF0ZWRfZmlsZXMgPSByZXBsX21vbml0b3IuZ2VuZXJhdGVfcmVwb3J0KAotKyAgICAgICAgICAg IG91dHB1dF9kaXI9dG1wX2RpciwKLSsgICAgICAgICAgICBmb3JtYXRzPVsnanNvbiddLAotKyAg ICAgICAgICAgIHJlcG9ydF9uYW1lPSdwYXJ0aWFsX3JlcGxfdGVzdCcKLSsgICAgICAgICkKLSsK LSsgICAgICAgIGpzb25fZGF0YSA9IF9sb2FkX2pzb24oZ2VuZXJhdGVkX2ZpbGVzWydqc29uJ10p Ci0rCi0rICAgICAgICBhc3NlcnQgJ2NzbkRldGFpbHMnIGluIGpzb25fZGF0YQotKyAgICAgICAg Y3NuX2RldGFpbHMgPSBqc29uX2RhdGFbJ2NzbkRldGFpbHMnXQotKwotKyAgICAgICAgaWYgY3Nu X2RldGFpbHM6Ci0rICAgICAgICAgICAgZnVsbHlfcmVwbGljYXRlZF9jb3VudCA9IHN1bSgKLSsg ICAgICAgICAgICAgICAgMSBmb3IgZGV0YWlscyBpbiBjc25fZGV0YWlscy52YWx1ZXMoKQotKyAg ICAgICAgICAgICAgICBpZiBkZXRhaWxzLmdldCgncmVwbGljYXRlZFRvQWxsJywgRmFsc2UpCi0r ICAgICAgICAgICAgKQotKwotKyAgICAgICAgICAgIGFzc2VydCBmdWxseV9yZXBsaWNhdGVkX2Nv dW50ID4gMCwgXAotKyAgICAgICAgICAgICAgICAiU2hvdWxkIGhhdmUgc29tZSBmdWxseSByZXBs aWNhdGVkIENTTnMiCi0rCi0rICAgICAgICAgICAgdG90YWxfc2VydmVycyA9IGxlbihzdXBwbGll cnMpCi0rICAgICAgICAgICAgZm9yIGNzbiwgZGV0YWlscyBpbiBjc25fZGV0YWlscy5pdGVtcygp OgotKyAgICAgICAgICAgICAgICBzZXJ2ZXJfY291bnQgPSBkZXRhaWxzLmdldCgnc2VydmVyQ291 bnQnLCAwKQotKyAgICAgICAgICAgICAgICBhc3NlcnQgc2VydmVyX2NvdW50IDw9IHRvdGFsX3Nl cnZlcnMsIFwKLSsgICAgICAgICAgICAgICAgICAgIGYic2VydmVyQ291bnQgKHtzZXJ2ZXJfY291 bnR9KSBzaG91bGQgbm90IGV4Y2VlZCB0b3RhbCBzZXJ2ZXJzICh7dG90YWxfc2VydmVyc30pIgot KwotKyAgICAgICAgICAgICAgICByZXBsaWNhdGVkX3RvX2FsbCA9IGRldGFpbHMuZ2V0KCdyZXBs aWNhdGVkVG9BbGwnLCBGYWxzZSkKLSsgICAgICAgICAgICAgICAgaWYgcmVwbGljYXRlZF90b19h bGw6Ci0rICAgICAgICAgICAgICAgICAgICBhc3NlcnQgc2VydmVyX2NvdW50ID09IHRvdGFsX3Nl cnZlcnMsIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAicmVwbGljYXRlZFRvQWxsPVRydWUg cmVxdWlyZXMgc2VydmVyQ291bnQgPT0gdG90YWxfc2VydmVycyIKLSsKLSsgICAgZmluYWxseToK LSsgICAgICAgIF9yZXN1bWVfYWdyZWVtZW50cyhwYXVzZWRfYWdyZWVtZW50cykKLSAgICAgICAg IF9jbGVhbnVwX3Rlc3RfZGF0YSh0ZXN0X3VzZXJzLCB0bXBfZGlyKQotIAotIAotZGlmZiAtLWdp dCBhL3NyYy9jb2NrcGl0LzM4OS1jb25zb2xlL3NyYy9saWIvbW9uaXRvci9tb25pdG9yTW9kYWxz LmpzeCBiL3NyYy9jb2NrcGl0LzM4OS1jb25zb2xlL3NyYy9saWIvbW9uaXRvci9tb25pdG9yTW9k YWxzLmpzeAotaW5kZXggZmFjYmQ5ZjVmLi4zYzVhNDZhNWIgMTAwNjQ0Ci0tLS0gYS9zcmMvY29j a3BpdC8zODktY29uc29sZS9zcmMvbGliL21vbml0b3IvbW9uaXRvck1vZGFscy5qc3gKLSsrKyBi L3NyYy9jb2NrcGl0LzM4OS1jb25zb2xlL3NyYy9saWIvbW9uaXRvci9tb25pdG9yTW9kYWxzLmpz eAotQEAgLTMsMTcgKzMsMjIgQEAgaW1wb3J0IFJlYWN0IGZyb20gInJlYWN0IjsKLSBpbXBvcnQg ewotICAgICBCdXR0b24sCi0gICAgIENoZWNrYm94LAotKyAgICBDbGlwYm9hcmRDb3B5LAotKyAg ICBDbGlwYm9hcmRDb3B5VmFyaWFudCwKLSAgICAgRW1wdHlTdGF0ZSwKLSAgICAgRW1wdHlTdGF0 ZUljb24sCi0gICAgIEVtcHR5U3RhdGVCb2R5LAotICAgICBHcmlkLAotICAgICBHcmlkSXRlbSwK LSAgICAgRm9ybSwKLSsgICAgTGFiZWwsCi0gICAgIE1vZGFsLAotICAgICBNb2RhbFZhcmlhbnQs Ci0gICAgIE51bWJlcklucHV0LAotICAgICBSYWRpbywKLSAgICAgU3Bpbm5lciwKLSsgICAgU3Bs aXQsCi0rICAgIFNwbGl0SXRlbSwKLSAgICAgVGFiLAotICAgICBUYWJzLAotICAgICBUYWJUaXRs ZVRleHQsCi1AQCAtMzYsOSArNDEsMTIgQEAgaW1wb3J0IHsKLSAgICAgTGlzdEl0ZW0KLSB9IGZy b20gIkBwYXR0ZXJuZmx5L3JlYWN0LWNvcmUiOwotIGltcG9ydCB7Ci0rICAgIEFycm93UmlnaHRJ Y29uLAotKyAgICBDaGVja0NpcmNsZUljb24sCi0gICAgIENvcHlJY29uLAotICAgICBPdXRsaW5l ZFF1ZXN0aW9uQ2lyY2xlSWNvbiwKLSAgICAgRG93bmxvYWRJY29uLAotKyAgICBTZXJ2ZXJJY29u Ci0gfSBmcm9tICdAcGF0dGVybmZseS9yZWFjdC1pY29ucyc7Ci0gaW1wb3J0IFByb3BUeXBlcyBm cm9tICJwcm9wLXR5cGVzIjsKLSBpbXBvcnQgeyBnZXRfZGF0ZV9zdHJpbmcgfSBmcm9tICIuLi90 b29scy5qc3giOwotQEAgLTcxLDYgKzc5LDE5IEBAIGNvbnN0IE1BWF9SRVBPUlRfSlNPTl9TSVpF ID0gNjQgKiAxMDI0ICogMTAyNDsgLy8gNjQgTWlCCi0gY29uc3QgTUFYX0JJTkFSWV9SRUFEX1NJ WkUgPSA2NCAqIDEwMjQgKiAxMDI0OyAvLyA2NCBNaUIKLSBjb25zdCBDU1ZfUFJFVklFV19MSU5F UyA9IDIwOwotIAotK2NvbnN0IGZvcm1hdExhZ1NlY29uZHMgPSAoc2Vjb25kcywgcHJlY2lzaW9u ID0gMykgPT4gewotKyAgICBpZiAoc2Vjb25kcyA9PT0gdW5kZWZpbmVkIHx8IHNlY29uZHMgPT09 IG51bGwpIHsKLSsgICAgICAgIHJldHVybiBudWxsOwotKyAgICB9Ci0rICAgIGlmIChzZWNvbmRz ID49IDM2MDApIHsKLSsgICAgICAgIHJldHVybiBgJHsoc2Vjb25kcyAvIDM2MDApLnRvRml4ZWQo cHJlY2lzaW9uKX1oYDsKLSsgICAgfQotKyAgICBpZiAoc2Vjb25kcyA+PSA2MCkgewotKyAgICAg ICAgcmV0dXJuIGAkeyhzZWNvbmRzIC8gNjApLnRvRml4ZWQocHJlY2lzaW9uKX1tYDsKLSsgICAg fQotKyAgICByZXR1cm4gYCR7c2Vjb25kcy50b0ZpeGVkKHByZWNpc2lvbil9c2A7Ci0rfTsKLSsK LSBjbGFzcyBUYXNrTG9nTW9kYWwgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICByZW5k ZXIoKSB7Ci0gICAgICAgICBjb25zdCB7Ci1AQCAtMTE2OCw2ICsxMTg5LDEzIEBAIGNsYXNzIFNj YXR0ZXJMaW5lQ2hhcnQgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50IHsKLSAgICAgICAgICAg ICB9LCAyNTApOwotICAgICAgICAgfTsKLSAgICAgICAgIHRoaXMudG9nZ2xlTGVnZW5kSXRlbSA9 IHRoaXMudG9nZ2xlTGVnZW5kSXRlbS5iaW5kKHRoaXMpOwotKyAgICAgICAgdGhpcy5oYW5kbGVQ b2ludENsaWNrID0gdGhpcy5oYW5kbGVQb2ludENsaWNrLmJpbmQodGhpcyk7Ci0rICAgIH0KLSsK LSsgICAgaGFuZGxlUG9pbnRDbGljayhkYXR1bSwgc2VyaWVzSW5kZXgpIHsKLSsgICAgICAgIGlm ICh0aGlzLnByb3BzLm9uUG9pbnRDbGljayAmJiBkYXR1bS5jc25JZCkgewotKyAgICAgICAgICAg IHRoaXMucHJvcHMub25Qb2ludENsaWNrKGRhdHVtKTsKLSsgICAgICAgIH0KLSAgICAgfQotIAot ICAgICBjb21wb25lbnREaWRNb3VudCgpIHsKLUBAIC0xMjY3LDE1ICsxMjk1LDcgQEAgY2xhc3Mg U2NhdHRlckxpbmVDaGFydCBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQgewotICAgICAgICAg Y29uc3QgeyBzZXJpZXMsIHlEb21haW4gfSA9IHRoaXMuX2dldFNlcmllc1NuYXBzaG90KCk7Ci0g Ci0gICAgICAgICAvLyBIZWxwZXIgZnVuY3Rpb24gdG8gZm9ybWF0IHRpbWUgdmFsdWVzCi0tICAg ICAgICBjb25zdCBmb3JtYXRUaW1lVmFsdWUgPSAoc2Vjb25kcykgPT4gewotLSAgICAgICAgICAg IGlmIChzZWNvbmRzID49IDM2MDApIHsKLS0gICAgICAgICAgICAgICAgcmV0dXJuIGAkeyhzZWNv bmRzIC8gMzYwMCkudG9GaXhlZCgzKX1oYDsKLS0gICAgICAgICAgICB9IGVsc2UgaWYgKHNlY29u ZHMgPj0gNjApIHsKLS0gICAgICAgICAgICAgICAgcmV0dXJuIGAkeyhzZWNvbmRzIC8gNjApLnRv Rml4ZWQoMyl9bWA7Ci0tICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgcmV0 dXJuIGAke3NlY29uZHMudG9GaXhlZCgzKX1zYDsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9 OwotKyAgICAgICAgY29uc3QgZm9ybWF0VGltZVZhbHVlID0gKHNlY29uZHMpID0+IGZvcm1hdExh Z1NlY29uZHMoc2Vjb25kcywgMyk7Ci0gCi0gICAgICAgICAvLyBQcm9jZXNzIHRvb2x0aXAgSFRN TCB0YWdzCi0gICAgICAgICBjb25zdCBmb3JtYXRUb29sdGlwID0gKGRhdHVtKSA9PiB7Ci1AQCAt MTMwOCwxMyArMTMyOCwzNSBAQCBjbGFzcyBTY2F0dGVyTGluZUNoYXJ0IGV4dGVuZHMgUmVhY3Qu UHVyZUNvbXBvbmVudCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbHM9 eyh7IGRhdHVtIH0pID0+IGZvcm1hdFRvb2x0aXAoZGF0dW0pfQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3RyYWluVG9WaXNpYmxlQXJlYQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbGFiZWxDb21wb25lbnQ9ewotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDxDaGFydFRvb2x0aXAKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3R5bGU9e3sKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGZvbnRTaXplOiAiMTJweCIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxMCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U6ICJwcmUtbGluZSIgLy8gSW1wb3J0YW50IGZv ciBuZXdsaW5lcwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fQot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA8Q2hhcnRUb29sdGlwCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgb3JpZW50YXRpb249eyh7IGRhdHVtIH0pID0+IHsKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUG9zaXRpb24gdG9vbHRpcCBiZWxvdyBmb3Ig aGlnaCBwb2ludHMsIGFib3ZlIGZvciBsb3cgcG9pbnRzCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgcHJldmVudHMgdGhlIHRvb2x0aXAgZnJvbSBibG9j a2luZyBjbGlja3Mgb24gcG9pbnRzIG5lYXIgdGhlIHRvcAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCB5TWF4ID0geURvbWFpbi5tYXg7Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHlNaW4gPSB5RG9tYWluLm1pbjsK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeVJhbmdlID0g eU1heCAtIHlNaW47Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IHRocmVzaG9sZCA9IHlNaW4gKyAoeVJhbmdlICogMC42KTsKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRhdHVtLnkgPiB0aHJlc2hvbGQgPyAiYm90 dG9tIiA6ICJ0b3AiOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNpemU6ICIxMnB4IiwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTAsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U6ICJwcmUtbGluZSIsIC8v IEltcG9ydGFudCBmb3IgbmV3bGluZXMKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcG9pbnRlckV2ZW50czogIm5vbmUiCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfX0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbHlv dXRTdHlsZT17ewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2lu dGVyRXZlbnRzOiAibm9uZSIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 fQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR4PXswfQotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR5PXsoeyBkYXR1bSB9KSA9PiB7Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFkZCBleHRyYSBvZmZzZXQgdG8g a2VlcCB0b29sdGlwIGF3YXkgZnJvbSB0aGUgcG9pbnQKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgeU1heCA9IHlEb21haW4ubWF4OwotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB5TWluID0geURvbWFpbi5taW47Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHlSYW5nZSA9IHlN YXggLSB5TWluOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCB0aHJlc2hvbGQgPSB5TWluICsgKHlSYW5nZSAqIDAuNik7Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXR1bS55ID4gdGhyZXNob2xkID8gMTAgOiAt MTA7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0KLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgfQotQEAgLTE0MTAsNiArMTQ1Miw3IEBAIGNsYXNzIFNjYXR0ZXJMaW5lQ2hhcnQgZXh0 ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlmICh0aGlzLnN0YXRlLmhpZGRlblNlcmllc1tpZHhdKSB7Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoYXND bGlja0hhbmRsZXIgPSAhIXRoaXMucHJvcHMub25Qb2ludENsaWNrOwotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuICgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA8Q2hhcnRTY2F0dGVyCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGtleT17YHNjYXR0ZXItJHtpZHh9YH0KLUBAIC0xNDE3LDkgKzE0NjAsMzkgQEAgY2xh c3MgU2NhdHRlckxpbmVDaGFydCBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQgewotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhPXtzLmRhdGFwb2ludHN9Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbDogcy5jb2xvcgotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw6IHMuY29s b3IsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Vy c29yOiBoYXNDbGlja0hhbmRsZXIgPyAncG9pbnRlcicgOiAnZGVmYXVsdCcKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfX0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZXZlbnRzPXtoYXNDbGlja0hhbmRsZXIgPyBbewotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0OiAiZGF0YSIsCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudEhhbmRsZXJzOiB7Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljazogKCkgPT4g W3sKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dGFyZ2V0OiAiZGF0YSIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG11dGF0aW9uOiAocHJvcHMpID0+IHsKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlUG9pbnRDbGlj ayhwcm9wcy5kYXR1bSwgaWR4KTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfV0sCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgb25Nb3VzZU92ZXI6ICgpID0+IFt7Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldDogImRhdGEi LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt dXRhdGlvbjogKHByb3BzKSA9PiAoewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IHsKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5wcm9wcy5zdHlsZSwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBmaWxsOiBzLmNvbG9yLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGN1cnNvcjogJ3BvaW50ZXInLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZVdpZHRo OiAyLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cm9rZTogJ3ZhcigtLXBmLXY1LWdsb2JhbC0tYWN0aXZlLWNvbG9yLS0xMDAs ICMwMDY2Y2MpJywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByOiA2Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0pCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfV0sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgb25Nb3VzZU91dDogKCkgPT4gW3sKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0OiAiZGF0YSIsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11dGF0aW9uOiAo KSA9PiBudWxsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfV0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfV0gOiB1bmRlZmluZWR9Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4KLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pfQotQEAg LTE1MDEsMTcgKzE1NzQsMzIwIEBAIGNsYXNzIFNjYXR0ZXJMaW5lQ2hhcnQgZXh0ZW5kcyBSZWFj dC5QdXJlQ29tcG9uZW50IHsKLSAgICAgfQotIH0KLSAKLSsvKioKLSsgKiBDU05EZXRhaWxNb2Rh bCAtIERpc3BsYXlzIGRldGFpbGVkIENTTiBwcm9wYWdhdGlvbiBwYXRoIGluZm9ybWF0aW9uCi0r ICogU2hvd3MgdGhlIGhvcC1ieS1ob3AgdGltaW5nIG9mIGhvdyBhIGNoYW5nZSBwcm9wYWdhdGVk IHRocm91Z2ggdGhlIHJlcGxpY2F0aW9uIHRvcG9sb2d5Ci0rICovCi0rY2xhc3MgQ1NORGV0YWls TW9kYWwgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotKyAgICBjb25zdHJ1Y3Rvcihwcm9wcykg ewotKyAgICAgICAgc3VwZXIocHJvcHMpOwotKyAgICAgICAgdGhpcy5mb3JtYXRUaW1lc3RhbXAg PSB0aGlzLmZvcm1hdFRpbWVzdGFtcC5iaW5kKHRoaXMpOwotKyAgICAgICAgdGhpcy5mb3JtYXRM YWcgPSB0aGlzLmZvcm1hdExhZy5iaW5kKHRoaXMpOwotKyAgICB9Ci0rCi0rICAgIGZvcm1hdFRp bWVzdGFtcChpc29TdHJpbmcpIHsKLSsgICAgICAgIGlmICghaXNvU3RyaW5nKSByZXR1cm4gXygi VW5rbm93biIpOwotKyAgICAgICAgdHJ5IHsKLSsgICAgICAgICAgICBjb25zdCBkYXRlID0gbmV3 IERhdGUoaXNvU3RyaW5nKTsKLSsgICAgICAgICAgICBpZiAoaXNOYU4oZGF0ZS5nZXRUaW1lKCkp KSB7Ci0rICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybigiSW52YWxpZCB0aW1lc3RhbXAgZm9y bWF0OiIsIGlzb1N0cmluZyk7Ci0rICAgICAgICAgICAgICAgIHJldHVybiBjb2NrcGl0LmZvcm1h dChfKCJJbnZhbGlkOiAkMCIpLCBpc29TdHJpbmcpOwotKyAgICAgICAgICAgIH0KLSsgICAgICAg ICAgICByZXR1cm4gZGF0ZS50b0xvY2FsZVN0cmluZyh1bmRlZmluZWQsIHsKLSsgICAgICAgICAg ICAgICAgeWVhcjogJ251bWVyaWMnLAotKyAgICAgICAgICAgICAgICBtb250aDogJzItZGlnaXQn LAotKyAgICAgICAgICAgICAgICBkYXk6ICcyLWRpZ2l0JywKLSsgICAgICAgICAgICAgICAgaG91 cjogJzItZGlnaXQnLAotKyAgICAgICAgICAgICAgICBtaW51dGU6ICcyLWRpZ2l0JywKLSsgICAg ICAgICAgICAgICAgc2Vjb25kOiAnMi1kaWdpdCcsCi0rICAgICAgICAgICAgICAgIGZyYWN0aW9u YWxTZWNvbmREaWdpdHM6IDMsCi0rICAgICAgICAgICAgICAgIGhvdXIxMjogZmFsc2UKLSsgICAg ICAgICAgICB9KTsKLSsgICAgICAgIH0gY2F0Y2ggKGUpIHsKLSsgICAgICAgICAgICBjb25zb2xl Lndhcm4oIkVycm9yIGZvcm1hdHRpbmcgdGltZXN0YW1wOiIsIGlzb1N0cmluZywgZSk7Ci0rICAg ICAgICAgICAgcmV0dXJuIGNvY2twaXQuZm9ybWF0KF8oIkludmFsaWQ6ICQwIiksIGlzb1N0cmlu Zyk7Ci0rICAgICAgICB9Ci0rICAgIH0KLSsKLSsgICAgZm9ybWF0TGFnKHNlY29uZHMpIHsKLSsg ICAgICAgIHJldHVybiBmb3JtYXRMYWdTZWNvbmRzKHNlY29uZHMsIDMpIHx8IF8oIk4vQSIpOwot KyAgICB9Ci0rCi0rICAgIHJlbmRlcigpIHsKLSsgICAgICAgIGNvbnN0IHsgY3NuRGF0YSwgb25D bG9zZSB9ID0gdGhpcy5wcm9wczsKLSsKLSsgICAgICAgIGlmICghY3NuRGF0YSkgewotKyAgICAg ICAgICAgIHJldHVybiBudWxsOwotKyAgICAgICAgfQotKwotKyAgICAgICAgY29uc3QgYXJyaXZh bHMgPSBjc25EYXRhLmFycml2YWxzIHx8IFtdOwotKyAgICAgICAgY29uc3QgcGF0aEpzb24gPSBK U09OLnN0cmluZ2lmeShjc25EYXRhLCBudWxsLCAyKTsKLSsKLSsgICAgICAgIHJldHVybiAoCi0r ICAgICAgICAgICAgPE1vZGFsCi0rICAgICAgICAgICAgICAgIHZhcmlhbnQ9e01vZGFsVmFyaWFu dC5sYXJnZX0KLSsgICAgICAgICAgICAgICAgdGl0bGU9e18oIkNTTiBQcm9wYWdhdGlvbiBEZXRh aWxzIil9Ci0rICAgICAgICAgICAgICAgIGlzT3Blbj17ISFjc25EYXRhfQotKyAgICAgICAgICAg ICAgICBvbkNsb3NlPXtvbkNsb3NlfQotKyAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtfKCJD U04gcHJvcGFnYXRpb24gZGV0YWlscyIpfQotKyAgICAgICAgICAgICAgICBhY3Rpb25zPXtbCi0r ICAgICAgICAgICAgICAgICAgICA8QnV0dG9uIGtleT0iY2xvc2UiIHZhcmlhbnQ9InByaW1hcnki IG9uQ2xpY2s9e29uQ2xvc2V9PgotKyAgICAgICAgICAgICAgICAgICAgICAgIHtfKCJDbG9zZSIp fQotKyAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+Ci0rICAgICAgICAgICAgICAgIF19Ci0r ICAgICAgICAgICAgPgotKyAgICAgICAgICAgICAgICAgICAgICAgIHsvKiBDU04gU3VtbWFyeSBJ bmZvcm1hdGlvbiAqL30KLSsgICAgICAgICAgICAgICAgICAgICAgICA8Q2FyZCBpc0ZsYXQgY2xh c3NOYW1lPSJkcy1tYXJnaW4tYm90dG9tLW1kIj4KLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgPENhcmRCb2R5PgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQgaGFz R3V0dGVyPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkSXRlbSBz cGFuPXs2fT4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPERlc2Ny aXB0aW9uTGlzdCBpc0hvcml6b250YWwgaXNDb21wYWN0PgotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPERlc2NyaXB0aW9uTGlzdEdyb3VwPgotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxEZXNjcmlwdGlvbkxpc3RU ZXJtPntfKCJDU04iKX08L0Rlc2NyaXB0aW9uTGlzdFRlcm0+Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPERlc2NyaXB0aW9uTGlzdERlc2NyaXB0aW9u PgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 Q2xpcGJvYXJkQ29weQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdmFyaWFudD17Q2xpcGJvYXJkQ29weVZhcmlhbnQuaW5saW5lfQotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y3Nu RGF0YS5jc259Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDwvQ2xpcGJvYXJkQ29weT4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA8L0Rlc2NyaXB0aW9uTGlzdERlc2NyaXB0aW9uPgotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9EZXNjcmlwdGlvbkxpc3RHcm91 cD4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxEZXNjcmlw dGlvbkxpc3RHcm91cD4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA8RGVzY3JpcHRpb25MaXN0VGVybT57XygiRW50cnkgRE4iKX08L0Rlc2NyaXB0aW9u TGlzdFRlcm0+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgPERlc2NyaXB0aW9uTGlzdERlc2NyaXB0aW9uPgotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcCBjb250ZW50PXtjc25EYXRhLnRh cmdldERufT4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0icGYtdjUtdS10ZXh0LXRydW5jYXRlIiBzdHlsZT17 eyBtYXhXaWR0aDogJzMwMHB4JywgZGlzcGxheTogJ2lubGluZS1ibG9jaycgfX0+Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2Nz bkRhdGEudGFyZ2V0RG59Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA8L3NwYW4+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD4KLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA8L0Rlc2NyaXB0aW9uTGlzdERlc2NyaXB0aW9uPgot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9EZXNjcmlwdGlv bkxpc3RHcm91cD4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDxEZXNjcmlwdGlvbkxpc3RHcm91cD4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA8RGVzY3JpcHRpb25MaXN0VGVybT57XygiU3VmZml4Iil9PC9EZXNj cmlwdGlvbkxpc3RUZXJtPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDxEZXNjcmlwdGlvbkxpc3REZXNjcmlwdGlvbj57Y3NuRGF0YS5zdWZmaXh9PC9E ZXNjcmlwdGlvbkxpc3REZXNjcmlwdGlvbj4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDwvRGVzY3JpcHRpb25MaXN0R3JvdXA+Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDwvRGVzY3JpcHRpb25MaXN0PgotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZEl0ZW0+Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgPEdyaWRJdGVtIHNwYW49ezZ9PgotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA8RGVzY3JpcHRpb25MaXN0IGlzSG9yaXpvbnRhbCBpc0Nv bXBhY3Q+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RGVz Y3JpcHRpb25MaXN0R3JvdXA+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgPERlc2NyaXB0aW9uTGlzdFRlcm0+e18oIk9yaWdpbiBTZXJ2ZXIiKX08L0Rl c2NyaXB0aW9uTGlzdFRlcm0+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgPERlc2NyaXB0aW9uTGlzdERlc2NyaXB0aW9uPgotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TGFiZWwgY29sb3I9ImJsdWUi IGljb249ezxTZXJ2ZXJJY29uIC8+fT4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHtjc25EYXRhLm9yaWdpblNlcnZlcn0KLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9MYWJlbD4KLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0Rlc2NyaXB0 aW9uTGlzdERlc2NyaXB0aW9uPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPC9EZXNjcmlwdGlvbkxpc3RHcm91cD4KLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHtjc25EYXRhLm9yaWdpbkluY2x1ZGVkSW5BcnJpdmFscyA9 PT0gZmFsc2UgJiYgKAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDxEZXNjcmlwdGlvbkxpc3RHcm91cD4KLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgPERlc2NyaXB0aW9uTGlzdFRlcm0+e18oIk9yaWdp biBOb3RlIil9PC9EZXNjcmlwdGlvbkxpc3RUZXJtPgotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RGVzY3JpcHRpb25MaXN0RGVzY3JpcHRpb24+ Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA8VGV4dCBjb21wb25lbnQ9e1RleHRWYXJpYW50cy5zbWFsbH0gc3R5bGU9e3sgY29sb3I6ICd2 YXIoLS1wZi12NS1nbG9iYWwtLUNvbG9yLS0yMDApJyB9fT4KLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XygiT3JpZ2luIHNlcnZl ciByZWNvcmQgaXMgb3V0c2lkZSB0aGUgc2VsZWN0ZWQgdGltZSByYW5nZTsgZW50cnkgZGV0YWls cyByZWZsZWN0IHRoZSBlYXJsaWVzdCBhcnJpdmFsLiIpfQotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9UZXh0PgotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0Rlc2NyaXB0aW9uTGlz dERlc2NyaXB0aW9uPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDwvRGVzY3JpcHRpb25MaXN0R3JvdXA+Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICApfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgPERlc2NyaXB0aW9uTGlzdEdyb3VwPgotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxEZXNjcmlwdGlvbkxpc3RUZXJtPntfKCJUb3Rh bCBMYWciKX08L0Rlc2NyaXB0aW9uTGlzdFRlcm0+Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPERlc2NyaXB0aW9uTGlzdERlc2NyaXB0aW9uPgotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Ryb25n Pnt0aGlzLmZvcm1hdExhZyhjc25EYXRhLmdsb2JhbExhZyl9PC9zdHJvbmc+Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9EZXNjcmlwdGlvbkxpc3RE ZXNjcmlwdGlvbj4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDwvRGVzY3JpcHRpb25MaXN0R3JvdXA+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA8RGVzY3JpcHRpb25MaXN0R3JvdXA+Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPERlc2NyaXB0aW9uTGlzdFRlcm0+e18oIlNl cnZlcnMgUmVhY2hlZCIpfTwvRGVzY3JpcHRpb25MaXN0VGVybT4KLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RGVzY3JpcHRpb25MaXN0RGVzY3JpcHRp b24+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHtjc25EYXRhLnNlcnZlckNvdW50fQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7Y3NuRGF0YS5yZXBsaWNhdGVkVG9BbGwgJiYgKAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPExhYmVs IGNvbG9yPSJncmVlbiIgaWNvbj17PENoZWNrQ2lyY2xlSWNvbiAvPn0gY2xhc3NOYW1lPSJkcy1s ZWZ0LW1hcmdpbiI+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAge18oIkFsbCIpfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9MYWJlbD4KLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX0KLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0Rlc2NyaXB0aW9uTGlzdERlc2NyaXB0 aW9uPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9EZXNj cmlwdGlvbkxpc3RHcm91cD4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgPC9EZXNjcmlwdGlvbkxpc3Q+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgPC9HcmlkSXRlbT4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD4K LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9DYXJkQm9keT4KLSsgICAgICAgICAgICAg ICAgICAgICAgICA8L0NhcmQ+Ci0rCi0rICAgICAgICAgICAgICAgICAgICAgICAgey8qIEFycml2 YWwgVGltZWxpbmUgVmlzdWFsaXphdGlvbiAqL30KLSsgICAgICAgICAgICAgICAgICAgICAgICA8 Q2FyZCBpc0ZsYXQgY2xhc3NOYW1lPSJkcy1tYXJnaW4tYm90dG9tLW1kIj4KLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgPENhcmRUaXRsZT57XygiQXJyaXZhbCBUaW1lbGluZSIpfTwvQ2Fy ZFRpdGxlPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2FyZEJvZHk+Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA8VGV4dAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbXBvbmVudD17VGV4dFZhcmlhbnRzLnNtYWxsfQotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT0iZHMtbWFyZ2luLWJvdHRvbSIKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBjb2xvcjogJ3Zhcigt LXBmLXY1LWdsb2JhbC0tQ29sb3ItLTIwMCknLCBmb250U3R5bGU6ICdpdGFsaWMnIH19Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAge18oIk5vdGU6IFNob3dzIGFycml2YWwgb3JkZXIgYnkgdGltZS4gQWN0dWFs IHJlcGxpY2F0aW9uIHRvcG9sb2d5IG1heSBkaWZmZXIgaW4gZmFuLW91dCBjb25maWd1cmF0aW9u cy4iKX0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVGV4dD4KLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICByb2xlPSJsaXN0IgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFyaWEtbGFiZWw9e18oIkNTTiBwcm9wYWdhdGlvbiB0aW1lbGluZSIpfQotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JywKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZmxleFdyYXA6ICd3cmFwJywKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdhcDogJ3ZhcigtLXBmLXY1LWdsb2Jh bC0tc3BhY2VyLS1zbSknLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwYWRkaW5nOiAndmFyKC0tcGYtdjUtZ2xvYmFsLS1zcGFjZXItLXNtKScKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9fQotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHthcnJpdmFscy5t YXAoKGFycml2YWwsIGlkeCkgPT4gKAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA8UmVhY3QuRnJhZ21lbnQga2V5PXtpZHh9PgotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgey8qIFNlcnZlciBOb2RlICovfQotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdgotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9Imxpc3RpdGVtIgotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2NvY2tw aXQuZm9ybWF0KAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhcnJpdmFsLmlzT3JpZ2luCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA/IF8oIk9yaWdpbiBzZXJ2ZXI6ICQwIikKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXygi U2VydmVyICQwLCBkZWxheTogJDEiKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXJyaXZhbC5zZXJ2ZXIsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycml2YWwuaXNPcmlnaW4gPyAiIiA6 IHRoaXMuZm9ybWF0TGFnKGFycml2YWwucmVsYXRpdmVEZWxheSkKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfQotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdj b2x1bW4nLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFsaWduSXRlbXM6ICdjZW50ZXInLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHBhZGRpbmc6ICd2YXIoLS1wZi12NS1nbG9iYWwtLXNwYWNlci0tc20p JywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNr Z3JvdW5kQ29sb3I6IGFycml2YWwuaXNPcmlnaW4KLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAndmFyKC0tcGYtdjUtZ2xvYmFsLS1wYWxldHRl LS1ibHVlLTUwLCAjZTdmMWZhKScKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgOiAndmFyKC0tcGYtdjUtZ2xvYmFsLS1CYWNrZ3JvdW5kQ29sb3It LTIwMCwgI2YwZjBmMCknLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJvcmRlclJhZGl1czogJ3ZhcigtLXBmLXY1LWdsb2JhbC0tQm9yZGVyUmFkaXVz LS1zbSknLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGJvcmRlcjogYXJyaXZhbC5pc09yaWdpbgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA/ICcycHggc29saWQgdmFyKC0tcGYtdjUtZ2xvYmFsLS1w cmltYXJ5LWNvbG9yLS0xMDAsICMwMDY2Y2MpJwotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA6ICcxcHggc29saWQgdmFyKC0tcGYtdjUtZ2xvYmFs LS1Cb3JkZXJDb2xvci0tMTAwLCAjZDJkMmQyKScsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbWluV2lkdGg6ICcxMjBweCcKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PgotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUZXh0IGNvbXBvbmVudD17VGV4dFZhcmlhbnRz LnNtYWxsfSBzdHlsZT17eyBmb250V2VpZ2h0OiAnYm9sZCcgfX0+Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHthcnJpdmFsLnNlcnZlcn0KLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1RleHQ+Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRleHQgY29t cG9uZW50PXtUZXh0VmFyaWFudHMuc21hbGx9IHN0eWxlPXt7IGZvbnRTaXplOiAnMC43NXJlbScs IGNvbG9yOiAndmFyKC0tcGYtdjUtZ2xvYmFsLS1Db2xvci0tMjAwKScgfX0+Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0aGlzLmZvcm1hdFRp bWVzdGFtcChhcnJpdmFsLnRpbWVzdGFtcCl9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgPC9UZXh0PgotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHthcnJpdmFsLmlzT3JpZ2luICYmICgKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPExhYmVsIGNvbG9yPSJi bHVlIiBpc0NvbXBhY3Qgc3R5bGU9e3sgbWFyZ2luVG9wOiAnNHB4JyB9fT4KLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtfKCJPcmlnaW4i KX0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg PC9MYWJlbD4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICApfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsh YXJyaXZhbC5pc09yaWdpbiAmJiAoCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDxUZXh0IGNvbXBvbmVudD17VGV4dFZhcmlhbnRzLnNtYWxsfSBz dHlsZT17eyBtYXJnaW5Ub3A6ICc0cHgnLCBjb2xvcjogJ3ZhcigtLXBmLXY1LWdsb2JhbC0tc3Vj Y2Vzcy1jb2xvci0tMTAwKScgfX0+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAre3RoaXMuZm9ybWF0TGFnKGFycml2YWwucmVsYXRpdmVE ZWxheSl9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDwvVGV4dD4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICApfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9k aXY+Ci0rCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Lyog QXJyb3cgYmV0d2VlbiBub2RlcyAqL30KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHtpZHggPCBhcnJpdmFscy5sZW5ndGggLSAxICYmICgKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9InByZXNlbnRhdGlv biIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YXJpYS1oaWRkZW49InRydWUiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0eWxlPXt7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9u OiAnY29sdW1uJywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogJzAgdmFyKC0tcGYt djUtZ2xvYmFsLS1zcGFjZXItLXhzKScKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfX0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDxBcnJvd1JpZ2h0SWNvbiBzdHlsZT17eyBjb2xvcjogJ3ZhcigtLXBm LXY1LWdsb2JhbC0tQ29sb3ItLTIwMCknIH19IC8+Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUZXh0IGNvbXBvbmVudD17VGV4dFZhcmlhbnRz LnNtYWxsfSBzdHlsZT17ewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZm9udFNpemU6ICcwLjdyZW0nLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICd2YXIoLS1wZi12 NS1nbG9iYWwtLUNvbG9yLS0yMDApJywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PgotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2Fycml2YWxz W2lkeCArIDFdLmhvcExhZyAhPT0gdW5kZWZpbmVkCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmZvcm1hdExhZyhhcnJp dmFsc1tpZHggKyAxXS5ob3BMYWcpCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnJ30KLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9UZXh0PgotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKX0KLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgPC9SZWFjdC5GcmFnbWVudD4KLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICApKX0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2 PgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NhcmRCb2R5PgotKyAgICAgICAgICAg ICAgICAgICAgICAgIDwvQ2FyZD4KLSsKLSsgICAgICAgICAgICAgICAgICAgICAgICB7LyogRGV0 YWlsZWQgQXJyaXZhbHMgVGFibGUgKi99Ci0rICAgICAgICAgICAgICAgICAgICAgICAgPENhcmQg aXNGbGF0IGNsYXNzTmFtZT0iZHMtbWFyZ2luLWJvdHRvbS1tZCI+Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDxDYXJkVGl0bGU+e18oIkFycml2YWwgRGV0YWlscyIpfTwvQ2FyZFRpdGxl PgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2FyZEJvZHk+Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3NOYW1lPSJwZi12NS1jLXRhYmxlIHBmLW0t Y29tcGFjdCIgcm9sZT0iZ3JpZCI+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgPHRoZWFkPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+ Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+e18oIlNl cnZlciIpfTwvdGg+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA8dGg+e18oIkFycml2YWwgVGltZSIpfTwvdGg+Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA8dGg+e18oIkhvcCBMYWciKX08L3RoPgotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPntfKCJDdW11bGF0aXZlIERlbGF5 Iil9PC90aD4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0 aD57XygiRHVyYXRpb24iKX08L3RoPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA8L3RyPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhl YWQ+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5PgotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7YXJyaXZhbHMubWFwKChhcnJpdmFs LCBpZHgpID0+ICgKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDx0ciBrZXk9e2lkeH0+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPHRkPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7YXJyaXZhbC5zZXJ2ZXJ9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHthcnJpdmFsLmlzT3JpZ2luICYmICgKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHN0 eWxlPXt7IGNvbG9yOiAndmFyKC0tcGYtdjUtZ2xvYmFsLS1wcmltYXJ5LWNvbG9yLS0xMDApJywg bWFyZ2luTGVmdDogJ3ZhcigtLXBmLXY1LWdsb2JhbC0tc3BhY2VyLS14cyknIH19PgotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh7 XygiT3JpZ2luIil9KQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgPC9zcGFuPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICApfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDwvdGQ+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgPHRkPnt0aGlzLmZvcm1hdFRpbWVzdGFtcChhcnJpdmFsLnRpbWVzdGFt cCl9PC90ZD4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA8dGQ+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHthcnJpdmFsLmlzT3JpZ2luCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA/IDxlbT57XygiT3JpZ2luIil9PC9lbT4KLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5m b3JtYXRMYWcoYXJyaXZhbC5ob3BMYWcpfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDwvdGQ+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgPHRkPnt0aGlzLmZvcm1hdExhZyhhcnJpdmFsLnJlbGF0aXZlRGVs YXkpfTwvdGQ+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgPHRkPnthcnJpdmFsLmR1cmF0aW9uID8gdGhpcy5mb3JtYXRMYWcoYXJyaXZhbC5kdXJhdGlv bikgOiBfKCJOL0EiKX08L3RkPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPC90cj4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KSl9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGFibGU+Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDwvQ2FyZEJvZHk+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgPC9DYXJkPgot KwotKyAgICAgICAgICAgICAgICAgICAgICAgIHsvKiBDb3B5IEFjdGlvbnMgKi99Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgPFNwbGl0IGhhc0d1dHRlcj4KLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPFNwbGl0SXRlbT4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxD bGlwYm9hcmRDb3B5Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFu dD17Q2xpcGJvYXJkQ29weVZhcmlhbnQuZXhwYW5zaW9ufQotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlzRXhwYW5kZWQ9e2ZhbHNlfQotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlzQ29kZQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlzUmVhZE9ubHkKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3Zl clRpcD17XygiQ29weSBmdWxsIHBhdGggSlNPTiIpfQotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNsaWNrVGlwPXtfKCJDb3BpZWQhIil9Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Bh dGhKc29ufQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9DbGlwYm9hcmRDb3B5 PgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1NwbGl0SXRlbT4KLSsgICAgICAgICAg ICAgICAgICAgICAgICA8L1NwbGl0PgotKyAgICAgICAgICAgIDwvTW9kYWw+Ci0rICAgICAgICAp OwotKyAgICB9Ci0rfQotKwotK0NTTkRldGFpbE1vZGFsLnByb3BUeXBlcyA9IHsKLSsgICAgY3Nu RGF0YTogUHJvcFR5cGVzLm9iamVjdCwKLSsgICAgb25DbG9zZTogUHJvcFR5cGVzLmZ1bmMuaXNS ZXF1aXJlZAotK307Ci0rCi0rQ1NORGV0YWlsTW9kYWwuZGVmYXVsdFByb3BzID0gewotKyAgICBj c25EYXRhOiBudWxsCi0rfTsKLSsKLSBjbGFzcyBMYWdSZXBvcnRNb2RhbCBleHRlbmRzIFJlYWN0 LkNvbXBvbmVudCB7Ci0gICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7Ci0gICAgICAgICBzdXBlcihw cm9wcyk7Ci0gCi0gICAgICAgICB0aGlzLnN0YXRlID0gewotLSAgICAgICAgICAgIGFjdGl2ZVRh YktleTogMCwgLy8gMCA9IFN1bW1hcnksIDEgPSBDaGFydHMsIDIgPSBQTkcgUmVwb3J0LCAzID0g Q1NWIFJlcG9ydCwgNCA9IFJlcG9ydCBGaWxlcwotKyAgICAgICAgICAgIGFjdGl2ZVRhYktleTog MCwKLSAgICAgICAgICAgICAuLi50aGlzLl9mcmVzaFJlcG9ydFN0YXRlKCksCi0gICAgICAgICAg ICAgbG9hZGluZ1N1bW1hcnk6IGZhbHNlLAotICAgICAgICAgICAgIGxvYWRpbmdKc29uOiBmYWxz ZSwKLSAgICAgICAgICAgICBsb2FkaW5nQ3N2OiBmYWxzZSwKLS0gICAgICAgICAgICBsb2FkaW5n UG5nOiBmYWxzZQotKyAgICAgICAgICAgIGxvYWRpbmdQbmc6IGZhbHNlLAotKyAgICAgICAgICAg IHNlbGVjdGVkQ3NuSWQ6IG51bGwKLSAgICAgICAgIH07Ci0gCi0gICAgICAgICB0aGlzLmhhbmRs ZVRhYkNsaWNrID0gdGhpcy5oYW5kbGVUYWJDbGljay5iaW5kKHRoaXMpOwotQEAgLTE1MjQsNiAr MTkwMCw4IEBAIGNsYXNzIExhZ1JlcG9ydE1vZGFsIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsK LSAgICAgICAgIHRoaXMucmVuZGVyUG5nVGFiID0gdGhpcy5yZW5kZXJQbmdUYWIuYmluZCh0aGlz KTsKLSAgICAgICAgIHRoaXMucmVuZGVyQ3N2VGFiID0gdGhpcy5yZW5kZXJDc3ZUYWIuYmluZCh0 aGlzKTsKLSAgICAgICAgIHRoaXMucmVuZGVyUmVwb3J0RmlsZXNUYWIgPSB0aGlzLnJlbmRlclJl cG9ydEZpbGVzVGFiLmJpbmQodGhpcyk7Ci0rICAgICAgICB0aGlzLmhhbmRsZUNzblBvaW50Q2xp Y2sgPSB0aGlzLmhhbmRsZUNzblBvaW50Q2xpY2suYmluZCh0aGlzKTsKLSsgICAgICAgIHRoaXMu aGFuZGxlQ2xvc2VDc25EZXRhaWxzID0gdGhpcy5oYW5kbGVDbG9zZUNzbkRldGFpbHMuYmluZCh0 aGlzKTsKLSAKLSAgICAgICAgIHRoaXMuX2FjdGl2ZUxvYWRUb2tlbiA9IDA7Ci0gICAgICAgICB0 aGlzLl9pc01vdW50ZWQgPSBmYWxzZTsKLUBAIC0xNTQzLDEwICsxOTIxLDI2IEBAIGNsYXNzIExh Z1JlcG9ydE1vZGFsIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAgICBzdW1t YXJ5OiBudWxsLAotICAgICAgICAgICAgIHN1ZmZpeFN0YXRzOiB7fSwKLSAgICAgICAgICAgICBj bGllbnRTYW1wbGluZ05vdGljZTogbnVsbCwKLSsgICAgICAgICAgICBzZWxlY3RlZENzbklkOiBu dWxsLAotICAgICAgICAgICAgIC4uLm92ZXJyaWRlcwotICAgICAgICAgfTsKLSAgICAgfQotIAot KyAgICBoYW5kbGVDc25Qb2ludENsaWNrKGRhdHVtKSB7Ci0rICAgICAgICBpZiAoZGF0dW0gJiYg ZGF0dW0uY3NuSWQpIHsKLSsgICAgICAgICAgICBjb25zdCB7IGpzb25EYXRhIH0gPSB0aGlzLnN0 YXRlOwotKyAgICAgICAgICAgIGlmIChqc29uRGF0YSAmJiBqc29uRGF0YS5jc25EZXRhaWxzICYm IGpzb25EYXRhLmNzbkRldGFpbHNbZGF0dW0uY3NuSWRdKSB7Ci0rICAgICAgICAgICAgICAgIHRo aXMuc2V0U3RhdGUoeyBzZWxlY3RlZENzbklkOiBkYXR1bS5jc25JZCB9KTsKLSsgICAgICAgICAg ICB9IGVsc2UgewotKyAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oIkNTTiBkZXRhaWxzIG5v dCBhdmFpbGFibGUgZm9yOiIsIGRhdHVtLmNzbklkKTsKLSsgICAgICAgICAgICB9Ci0rICAgICAg ICB9Ci0rICAgIH0KLSsKLSsgICAgaGFuZGxlQ2xvc2VDc25EZXRhaWxzKCkgewotKyAgICAgICAg dGhpcy5zZXRTdGF0ZSh7IHNlbGVjdGVkQ3NuSWQ6IG51bGwgfSk7Ci0rICAgIH0KLSsKLSAgICAg Y29tcG9uZW50RGlkTW91bnQoKSB7Ci0gICAgICAgICB0aGlzLl9pc01vdW50ZWQgPSB0cnVlOwot ICAgICAgICAgdGhpcy5sb2FkRGF0YSgpOwotQEAgLTIxMTcsNyArMjUxMSw3IEBAIGNsYXNzIExh Z1JlcG9ydE1vZGFsIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAKLSAgICAgcmVuZGVyQ2hh cnRzVGFiKCkgewotICAgICAgICAgY29uc3QgeyByZXBvcnRVcmxzIH0gPSB0aGlzLnByb3BzOwot LSAgICAgICAgY29uc3QgeyBsb2FkaW5nSnNvbiwganNvbkRhdGEsIGVycm9yLCBjbGllbnRTYW1w bGluZ05vdGljZSB9ID0gdGhpcy5zdGF0ZTsKLSsgICAgICAgIGNvbnN0IHsgbG9hZGluZ0pzb24s IGpzb25EYXRhLCBlcnJvciwgY2xpZW50U2FtcGxpbmdOb3RpY2UsIHNlbGVjdGVkQ3NuSWQgfSA9 IHRoaXMuc3RhdGU7Ci0gCi0gICAgICAgICBpZiAobG9hZGluZ0pzb24pIHsKLSAgICAgICAgICAg ICByZXR1cm4gKAotQEAgLTIxNzAsNiArMjU2NCwxMyBAQCBjbGFzcyBMYWdSZXBvcnRNb2RhbCBl eHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBqc29u RGF0YS5ob3BMYWdzLnNlcmllcyAmJgotICAgICAgICAgICAgICAgICAgICAgICAgICAganNvbkRh dGEuaG9wTGFncy5zZXJpZXMubGVuZ3RoID4gMDsKLSAKLSsgICAgICAgIGNvbnN0IGhhc0NzbkRl dGFpbHMgPSBqc29uRGF0YSAmJiBqc29uRGF0YS5jc25EZXRhaWxzICYmCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhqc29uRGF0YS5jc25EZXRhaWxzKS5sZW5ndGgg PiAwOwotKwotKyAgICAgICAgY29uc3Qgc2VsZWN0ZWRDc25EYXRhID0gc2VsZWN0ZWRDc25JZCAm JiBoYXNDc25EZXRhaWxzCi0rICAgICAgICAgICAgPyBqc29uRGF0YS5jc25EZXRhaWxzW3NlbGVj dGVkQ3NuSWRdCi0rICAgICAgICAgICAgOiBudWxsOwotKwotICAgICAgICAgaWYgKCFqc29uRGF0 YSB8fCAoIWhhc1JlcGxpY2F0aW9uTGFncyAmJiAhaGFzSG9wTGFncykpIHsKLSAgICAgICAgICAg ICByZXR1cm4gKAotICAgICAgICAgICAgICAgICA8RW1wdHlTdGF0ZT4KLUBAIC0yMjAxLDYgKzI2 MDIsMTUgQEAgY2xhc3MgTGFnUmVwb3J0TW9kYWwgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2xpZW50U2FtcGxpbmdO b3RpY2V9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BbGVydD4KLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7aGFzQ3NuRGV0YWlscyAmJiAoCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgPFRleHQKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29tcG9uZW50PXtUZXh0VmFyaWFudHMuc21hbGx9Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT0iZHMtbWFyZ2luLWJvdHRvbSIKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgY29sb3I6ICd2YXIoLS1w Zi12NS1nbG9iYWwtLUNvbG9yLS0yMDApJywgZm9udFN0eWxlOiAnaXRhbGljJyB9fQotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4KLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAge18oIlRpcDogQ2xpY2sgb24gYW55IGNoYXJ0IHBvaW50IHRvIHZp ZXcgZGV0YWlsZWQgQ1NOIHByb3BhZ2F0aW9uIHBhdGguIil9Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgPC9UZXh0PgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtoYXNSZXBsaWNhdGlvbkxh Z3MgJiYgKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NO YW1lPSJkcy1tYXJnaW4tYm90dG9tIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPFRpdGxlIGhlYWRpbmdMZXZlbD0iaDMiPgotQEAgLTIyMzEsNiArMjY0MSw3IEBA IGNsYXNzIExhZ1JlcG9ydE1vZGFsIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhBeGlzTGFiZWw9eyhqc29uRGF0 YS5yZXBsaWNhdGlvbkxhZ3MueEF4aXNMYWJlbCB8fCAiIikucmVwbGFjZSgvXHMqVGltZVxzKi9n LCAiIil9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5QXhp c0xhYmVsPXtqc29uRGF0YS5yZXBsaWNhdGlvbkxhZ3MueUF4aXNMYWJlbCB8fCBfKCJMYWcgVGlt ZSAoc2Vjb25kcykiKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRlZmF1bHRTaG93TGVnZW5kPXt0cnVlfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgb25Qb2ludENsaWNrPXtoYXNDc25EZXRhaWxzID8gdGhpcy5oYW5k bGVDc25Qb2ludENsaWNrIDogdW5kZWZpbmVkfQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwv ZGl2PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX0KLUBAIC0yMjUwLDkgKzI2 NjEsMTcgQEAgY2xhc3MgTGFnUmVwb3J0TW9kYWwgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeEF4aXNMYWJlbD17 KGpzb25EYXRhLmhvcExhZ3MueEF4aXNMYWJlbCB8fCAiIikucmVwbGFjZSgvXHMqVGltZVxzKi9n LCAiIil9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5QXhp c0xhYmVsPXtqc29uRGF0YS5ob3BMYWdzLnlBeGlzTGFiZWwgfHwgXygiSG9wIExhZyBUaW1lIChz ZWNvbmRzKSIpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZGVmYXVsdFNob3dMZWdlbmQ9e2ZhbHNlfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgb25Qb2ludENsaWNrPXtoYXNDc25EZXRhaWxzID8gdGhpcy5oYW5kbGVD c25Qb2ludENsaWNrIDogdW5kZWZpbmVkfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2 PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX0KLSsKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsvKiBDU04gRGV0YWlsIFBhbmVsIC0gc2hvd24gd2hlbiBhIHBv aW50IGlzIGNsaWNrZWQgKi99Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q1NO RGV0YWlsTW9kYWwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjc25EYXRh PXtzZWxlY3RlZENzbkRhdGF9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg b25DbG9zZT17dGhpcy5oYW5kbGVDbG9zZUNzbkRldGFpbHN9Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvPgotKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRp diBjbGFzc05hbWU9ImRzLW1hcmdpbi10b3AiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDxCdXR0b24KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdmFyaWFudD0ic2Vjb25kYXJ5IgotQEAgLTI4NzYsNiArMzI5NSwyOCBAQCBjbGFzcyBDaG9v c2VMYWdSZXBvcnRNb2RhbCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gfQotIAotIC8vIFBy b3RvdHlwZXMgYW5kIGRlZmF1bHRQcm9wcwotK1NjYXR0ZXJMaW5lQ2hhcnQucHJvcFR5cGVzID0g ewotKyAgICBjaGFydERhdGE6IFByb3BUeXBlcy5vYmplY3QsCi0rICAgIHRpdGxlOiBQcm9wVHlw ZXMuc3RyaW5nLAotKyAgICB5QXhpc0xhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLAotKyAgICB4QXhp c0xhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLAotKyAgICBtaW5ZOiBQcm9wVHlwZXMubnVtYmVyLAot KyAgICBtYXhZOiBQcm9wVHlwZXMubnVtYmVyLAotKyAgICBkZWZhdWx0U2hvd0xlZ2VuZDogUHJv cFR5cGVzLmJvb2wsCi0rICAgIG9uUG9pbnRDbGljazogUHJvcFR5cGVzLmZ1bmMKLSt9OwotKwot K1NjYXR0ZXJMaW5lQ2hhcnQuZGVmYXVsdFByb3BzID0gewotKyAgICBjaGFydERhdGE6IG51bGws Ci0rICAgIHRpdGxlOiAiIiwKLSsgICAgeUF4aXNMYWJlbDogIlZhbHVlIiwKLSsgICAgeEF4aXNM YWJlbDogIiIsCi0rICAgIG1pblk6IG51bGwsCi0rICAgIG1heFk6IG51bGwsCi0rICAgIGRlZmF1 bHRTaG93TGVnZW5kOiB0cnVlLAotKyAgICBvblBvaW50Q2xpY2s6IG51bGwKLSt9OwotKwotIEFn bXREZXRhaWxzTW9kYWwucHJvcFR5cGVzID0gewotICAgICBzaG93TW9kYWw6IFByb3BUeXBlcy5i b29sLAotICAgICBjbG9zZUhhbmRsZXI6IFByb3BUeXBlcy5mdW5jLAotQEAgLTMwNDQsNiArMzQ4 NSw3IEBAIGV4cG9ydCB7Ci0gICAgIFJlcG9ydExvZ2luTW9kYWwsCi0gICAgIEZ1bGxSZXBvcnRD b250ZW50LAotICAgICBMYWdSZXBvcnRNb2RhbCwKLS0gICAgQ2hvb3NlTGFnUmVwb3J0TW9kYWwK LSsgICAgQ2hvb3NlTGFnUmVwb3J0TW9kYWwsCi0rICAgIENTTkRldGFpbE1vZGFsCi0gfTsKLSAK LWRpZmYgLS1naXQgYS9zcmMvbGliMzg5L2xpYjM4OS9yZXBsdG9vbHMucHkgYi9zcmMvbGliMzg5 L2xpYjM4OS9yZXBsdG9vbHMucHkKLWluZGV4IDlkMWFhNDA1OC4uNWFiOGIzMTg3IDEwMDY0NAot LS0tIGEvc3JjL2xpYjM4OS9saWIzODkvcmVwbHRvb2xzLnB5Ci0rKysgYi9zcmMvbGliMzg5L2xp YjM4OS9yZXBsdG9vbHMucHkKLUBAIC02ODMsNiArNjgzLDcgQEAgY2xhc3MgQ2hhcnREYXRhKE5h bWVkVHVwbGUpOgotICAgICBsYWdzOiBMaXN0W2Zsb2F0XQotICAgICBkdXJhdGlvbnM6IExpc3Rb ZmxvYXRdCi0gICAgIGhvdmVyOiBMaXN0W3N0cl0KLSsgICAgY3NuX2lkczogTGlzdFtzdHJdCi0g Ci0gY2xhc3MgVmlzdWFsaXphdGlvbkhlbHBlcjoKLSAgICAgIiIiSGVscGVyIGNsYXNzIGZvciB2 aXN1YWxpemF0aW9uLXJlbGF0ZWQgZnVuY3Rpb25hbGl0eS4iIiIKLUBAIC03MzAsNyArNzMxLDcg QEAgY2xhc3MgVmlzdWFsaXphdGlvbkhlbHBlcjoKLSAgICAgICAgICAgICAgICAgICAgICAgICAg IHR6OiB0emluZm8gPSB0aW1lem9uZS51dGMpIC0+IERpY3RbVHVwbGVbc3RyLCBzdHJdLCBDaGFy dERhdGFdOgotICAgICAgICAgIiIiUHJlcGFyZSBkYXRhIGZvciB2aXN1YWxpemF0aW9uIHdpdGgg dGltZXpvbmUtYXdhcmUgdGltZXN0YW1wcy4iIiIKLSAgICAgICAgIGNoYXJ0X2RhdGEgPSBkZWZh dWx0ZGljdChsYW1iZGE6IHsKLS0gICAgICAgICAgICAndGltZXMnOiBbXSwgJ2xhZ3MnOiBbXSwg J2R1cmF0aW9ucyc6IFtdLCAnaG92ZXInOiBbXQotKyAgICAgICAgICAgICd0aW1lcyc6IFtdLCAn bGFncyc6IFtdLCAnZHVyYXRpb25zJzogW10sICdob3Zlcic6IFtdLCAnY3NuX2lkcyc6IFtdCi0g ICAgICAgICB9KQotIAotICAgICAgICAgZm9yIGNzbiwgc2VydmVyX21hcCBpbiBjc25zLml0ZW1z KCk6Ci1AQCAtNzY2LDYgKzc2Nyw3IEBAIGNsYXNzIFZpc3VhbGl6YXRpb25IZWxwZXI6Ci0gICAg ICAgICAgICAgICAgIGRhdGFfc2xvdFsndGltZXMnXS5hcHBlbmQodHNfZHQpCi0gICAgICAgICAg ICAgICAgIGRhdGFfc2xvdFsnbGFncyddLmFwcGVuZChsYWdfdmFsKSAgIyBUaGUgc2FtZSBnbG9i YWwtbGFnIGZvciBhbGwgc2VydmVycwotICAgICAgICAgICAgICAgICBkYXRhX3Nsb3RbJ2R1cmF0 aW9ucyddLmFwcGVuZChkdXJhdGlvbl92YWwpCi0rICAgICAgICAgICAgICAgIGRhdGFfc2xvdFsn Y3NuX2lkcyddLmFwcGVuZChjc24pCi0gICAgICAgICAgICAgICAgICMgRm9ybWF0IHRpbWVzdGFt cCBmb3IgaG92ZXIgZGlzcGxheSBpbiB0aGUgc3BlY2lmaWVkIHRpbWV6b25lCi0gICAgICAgICAg ICAgICAgIHRpbWVzdGFtcF9zdHIgPSB0c19kdC5zdHJmdGltZSgnJVktJW0tJWQgJUg6JU06JVMn KQotICAgICAgICAgICAgICAgICBkYXRhX3Nsb3RbJ2hvdmVyJ10uYXBwZW5kKAotQEAgLTc4NCw3 ICs3ODYsOCBAQCBjbGFzcyBWaXN1YWxpemF0aW9uSGVscGVyOgotICAgICAgICAgICAgICAgICB0 aW1lcz12YWx1ZVsndGltZXMnXSwKLSAgICAgICAgICAgICAgICAgbGFncz12YWx1ZVsnbGFncydd LAotICAgICAgICAgICAgICAgICBkdXJhdGlvbnM9dmFsdWVbJ2R1cmF0aW9ucyddLAotLSAgICAg ICAgICAgICAgICBob3Zlcj12YWx1ZVsnaG92ZXInXQotKyAgICAgICAgICAgICAgICBob3Zlcj12 YWx1ZVsnaG92ZXInXSwKLSsgICAgICAgICAgICAgICAgY3NuX2lkcz12YWx1ZVsnY3NuX2lkcydd Ci0gICAgICAgICAgICAgKQotICAgICAgICAgICAgIGZvciBrZXksIHZhbHVlIGluIGNoYXJ0X2Rh dGEuaXRlbXMoKQotICAgICAgICAgfQotQEAgLTgwMyw2ICs4MDYsMTQgQEAgY2xhc3MgUmVwbGlj YXRpb25Mb2dBbmFseXplcjoKLSAgICAgQVVUT19TQU1QTElOR19USFJFU0hPTEQgPSA0MDAwICAj IFRyaWdnZXIgYXV0byBzYW1wbGluZyBhYm92ZSB0aGlzIG1hbnkgQ1NOIHBvaW50cwotICAgICBI T1BfU0VSSUVTX0JVREdFVF9SQVRJTyA9IDAuMjUgICMgQWxsb2NhdGUgbWF4IDI1JSBvZiBjaGFy dCBwb2ludHMgdG8gaG9wIGxhZyBzZXJpZXMKLSAgICAgTUlOX1BPSU5UU19QRVJfU0VSSUVTID0g MiAgICAgICAjIE1pbmltdW0gcG9pbnRzIHRvIHByZXNlcnZlIHNlcmllcyBzaGFwZSBhZnRlciBz YW1wbGluZwotKyAgICBNQVhfQ1NOX0RFVEFJTFMgPSAxMDAwMCAgICAgICAgICMgTWF4aW11bSBD U04gZGV0YWlscyB0byBpbmNsdWRlIChwcmV2ZW50cyBtZW1vcnkgaXNzdWVzKQotKwotKyAgICAj IENTTiBmb3JtYXQ6IFRUVFRUVFRUU1NTU1JSUlJOTk5OICgyMCBoZXggY2hhcnMpCi0rICAgICMg VD10aW1lc3RhbXAoOCksIFM9c2VxdWVuY2UoNCksIFI9cmVwbGljYUlEKDQpLCBOPXN1YnNlcSg0 KQotKyAgICBDU05fVElNRVNUQU1QX1NUQVJUID0gMAotKyAgICBDU05fVElNRVNUQU1QX0VORCA9 IDgKLSsgICAgQ1NOX1JFUExJQ0FfSURfU1RBUlQgPSAxMgotKyAgICBDU05fUkVQTElDQV9JRF9F TkQgPSAxNgotIAotICAgICAjIFByZWNpc2lvbiBwcmVzZXQgY29uZmlndXJhdGlvbnMKLSAgICAg UFJFQ0lTSU9OX1BSRVNFVFMgPSB7Ci1AQCAtODY3LDYgKzg3OCw1NCBAQCBjbGFzcyBSZXBsaWNh dGlvbkxvZ0FuYWx5emVyOgotICAgICAgICAgIyBUaHJlc2hvbGQgdG8gdHJpZ2dlciBhdXRvIHNh bXBsaW5nIGlmIGxvdHMgb2YgQ1NOcwotICAgICAgICAgc2VsZi5fYXV0b19zYW1wbGluZ19jc25f dGhyZXNob2xkID0gc2VsZi5BVVRPX1NBTVBMSU5HX1RIUkVTSE9MRAotIAotKyAgICAgICAgIyBN YXBwaW5nIG9mIChyZXBsaWNhIElELCBzdWZmaXgpIHRvIHNlcnZlciBuYW1lCi0rICAgICAgICAj IEJ1aWx0IGR1cmluZyBsb2cgcGFyc2luZyB0byBjb3JyZWN0bHkgaWRlbnRpZnkgb3JpZ2luIHNl cnZlcnMKLSsgICAgICAgICMgS2V5ZWQgYnkgKHJlcGxpY2FfaWQsIHN1ZmZpeCkgYmVjYXVzZSBy ZXBsaWNhIElEcyBhcmUgcGVyLXN1ZmZpeCBpbiBtdWx0aS1zdWZmaXggZGVwbG95bWVudHMKLSsg ICAgICAgIHNlbGYuX3JlcGxpY2FfaWRfdG9fc2VydmVyOiBEaWN0W1R1cGxlW3N0ciwgc3RyXSwg c3RyXSA9IHt9Ci0rCi0rICAgIEBzdGF0aWNtZXRob2QKLSsgICAgZGVmIF9leHRyYWN0X3JlcGxp Y2FfaWRfZnJvbV9jc24oY3NuOiBzdHIpIC0+IE9wdGlvbmFsW3N0cl06Ci0rICAgICAgICAiIiJF eHRyYWN0IHRoZSByZXBsaWNhIElEIGZyb20gYSBDU04gc3RyaW5nLgotKwotKyAgICAgICAgQ1NO IGZvcm1hdDogVFRUVFRUVFRTU1NTUlJSUk5OTk4gKDIwIGhleCBjaGFyYWN0ZXJzKQotKyAgICAg ICAgLSBUID0gdGltZXN0YW1wICg4IGNoYXJzKQotKyAgICAgICAgLSBTID0gc2VxdWVuY2UgKDQg Y2hhcnMpCi0rICAgICAgICAtIFIgPSByZXBsaWNhIElEICg0IGNoYXJzKQotKyAgICAgICAgLSBO ID0gc3Vic2VxICg0IGNoYXJzKQotKwotKyAgICAgICAgOnBhcmFtIGNzbjogVGhlIENTTiBzdHJp bmcKLSsgICAgICAgIDpyZXR1cm5zOiBUaGUgcmVwbGljYSBJRCBhcyBhIHN0cmluZyAoNCBoZXgg Y2hhcnMpLCBvciBOb25lIGlmIGludmFsaWQKLSsgICAgICAgICIiIgotKyAgICAgICAgaWYgbm90 IGNzbiBvciBub3QgaXNpbnN0YW5jZShjc24sIHN0cikgb3IgbGVuKGNzbikgPCAxNjoKLSsgICAg ICAgICAgICByZXR1cm4gTm9uZQotKyAgICAgICAgdHJ5OgotKyAgICAgICAgICAgICMgRXh0cmFj dCBhbmQgdmFsaWRhdGUgcmVwbGljYSBJRCBpcyB2YWxpZCBoZXgKLSsgICAgICAgICAgICByZXBs aWNhX2lkID0gY3NuW1JlcGxpY2F0aW9uTG9nQW5hbHl6ZXIuQ1NOX1JFUExJQ0FfSURfU1RBUlQ6 Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlcGxpY2F0aW9uTG9nQW5hbHl6ZXIuQ1NO X1JFUExJQ0FfSURfRU5EXQotKyAgICAgICAgICAgIGludChyZXBsaWNhX2lkLCAxNikgICMgVmFs aWRhdGUgaXQncyB2YWxpZCBoZXgKLSsgICAgICAgICAgICByZXR1cm4gcmVwbGljYV9pZAotKyAg ICAgICAgZXhjZXB0IChWYWx1ZUVycm9yLCBJbmRleEVycm9yKToKLSsgICAgICAgICAgICByZXR1 cm4gTm9uZQotKwotKyAgICBAc3RhdGljbWV0aG9kCi0rICAgIGRlZiBfZXh0cmFjdF90aW1lc3Rh bXBfZnJvbV9jc24oY3NuOiBzdHIpIC0+IE9wdGlvbmFsW2Zsb2F0XToKLSsgICAgICAgICIiIkV4 dHJhY3QgdGhlIHRpbWVzdGFtcCAoZXBvY2ggc2Vjb25kcykgZnJvbSBhIENTTiBzdHJpbmcuCi0r Ci0rICAgICAgICBDU04gZm9ybWF0OiBUVFRUVFRUVFNTU1NSUlJSTk5OTiAoMjAgaGV4IGNoYXJh Y3RlcnMpCi0rICAgICAgICAtIFQgPSB0aW1lc3RhbXAgKDggY2hhcnMsIGhleCwgc2Vjb25kcyBz aW5jZSBlcG9jaCkKLSsKLSsgICAgICAgIDpwYXJhbSBjc246IFRoZSBDU04gc3RyaW5nCi0rICAg ICAgICA6cmV0dXJuczogVGltZXN0YW1wIGFzIGZsb2F0IChlcG9jaCBzZWNvbmRzKSwgb3IgTm9u ZSBpZiBpbnZhbGlkCi0rICAgICAgICAiIiIKLSsgICAgICAgIGlmIG5vdCBjc24gb3Igbm90IGlz aW5zdGFuY2UoY3NuLCBzdHIpIG9yIGxlbihjc24pIDwgODoKLSsgICAgICAgICAgICByZXR1cm4g Tm9uZQotKyAgICAgICAgdHJ5OgotKyAgICAgICAgICAgIHRzX2hleCA9IGNzbltSZXBsaWNhdGlv bkxvZ0FuYWx5emVyLkNTTl9USU1FU1RBTVBfU1RBUlQ6Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgIFJlcGxpY2F0aW9uTG9nQW5hbHl6ZXIuQ1NOX1RJTUVTVEFNUF9FTkRdCi0rICAgICAgICAg ICAgcmV0dXJuIGZsb2F0KGludCh0c19oZXgsIDE2KSkKLSsgICAgICAgIGV4Y2VwdCAoVmFsdWVF cnJvciwgSW5kZXhFcnJvcik6Ci0rICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSsKLSAgICAgZGVm IF9zaG91bGRfaW5jbHVkZV9yZWNvcmQoc2VsZiwgY3NuOiBzdHIsIHNlcnZlcl9tYXA6IERpY3Rb VW5pb25baW50LCBzdHJdLCBEaWN0W3N0ciwgQW55XV0pIC0+IGJvb2w6Ci0gICAgICAgICAiIiJE ZXRlcm1pbmUgaWYgYSByZWNvcmQgc2hvdWxkIGJlIGluY2x1ZGVkIGJhc2VkIG9uIGZpbHRlcmlu ZyBjcml0ZXJpYS4iIiIKLSAgICAgICAgIHRvdGFsX3NlcnZlcnMgPSBzZWxmLl9hY3RpdmVfc2Vy dmVyX2NvdW50IG9yIGxlbihzZWxmLmxvZ19kaXJzKQotQEAgLTk5MCw2ICsxMDQ5LDE0OCBAQCBj bGFzcyBSZXBsaWNhdGlvbkxvZ0FuYWx5emVyOgotIAotICAgICAgICAgcmV0dXJuIGhvcHMKLSAK LSsgICAgZGVmIF9idWlsZF9jc25fZGV0YWlscyhzZWxmLCBjc25fd2hpdGVsaXN0OiBPcHRpb25h bFtzZXRdID0gTm9uZSkgLT4gRGljdFtzdHIsIERpY3Rbc3RyLCBBbnldXToKLSsgICAgICAgICIi IkJ1aWxkIGRldGFpbGVkIENTTiBwcm9wYWdhdGlvbiBpbmZvcm1hdGlvbiBmb3IgZHJpbGwtZG93 biBmdW5jdGlvbmFsaXR5LgotKwotKyAgICAgICAgUmV0dXJucyBhIGRpY3Rpb25hcnkga2V5ZWQg YnkgQ1NOIGNvbnRhaW5pbmc6Ci0rICAgICAgICAtIGNzbjogVGhlIENTTiBzdHJpbmcKLSsgICAg ICAgIC0gdGFyZ2V0RG46IFRoZSB0YXJnZXQgZW50cnkgRE4KLSsgICAgICAgIC0gc3VmZml4OiBU aGUgcmVwbGljYXRpb24gc3VmZml4Ci0rICAgICAgICAtIGdsb2JhbExhZzogVG90YWwgcHJvcGFn YXRpb24gdGltZSAoZWFybGllc3QgdG8gbGF0ZXN0IGFycml2YWwpCi0rICAgICAgICAtIG9yaWdp blNlcnZlcjogVGhlIHNlcnZlciB3aGVyZSB0aGUgY2hhbmdlIG9yaWdpbmF0ZWQgKGRldGVybWlu ZWQgYnkgQ1NOIHJlcGxpY2EgSUQpCi0rICAgICAgICAtIG9yaWdpblRpbWU6IElTTyB0aW1lc3Rh bXAgb2Ygb3JpZ2luCi0rICAgICAgICAtIGFycml2YWxzOiBPcmRlcmVkIGxpc3Qgb2Ygc2VydmVy IGFycml2YWxzIHdpdGggdGltaW5nIGRldGFpbHMKLSsgICAgICAgIC0gaG9wczogTGlzdCBvZiBz ZXJ2ZXItdG8tc2VydmVyIGhvcHMgd2l0aCBsYWcgdGltZXMKLSsgICAgICAgIC0gdG90YWxIb3Bz OiBOdW1iZXIgb2YgaG9wcyBpbiB0aGUgcHJvcGFnYXRpb24gcGF0aAotKyAgICAgICAgLSByZXBs aWNhdGVkVG9BbGw6IFdoZXRoZXIgdGhlIGNoYW5nZSByZWFjaGVkIGFsbCBzZXJ2ZXJzCi0rCi0r ICAgICAgICBOb3RlOiBPcmlnaW4gc2VydmVyIGlzIGRldGVybWluZWQgYnkgdGhlIHJlcGxpY2Eg SUQgZW1iZWRkZWQgaW4gdGhlIENTTiwKLSsgICAgICAgIG5vdCBieSBlYXJsaWVzdCBsb2cgdGlt ZXN0YW1wICh3aGljaCBjYW4gYmUgaW5jb3JyZWN0IHVuZGVyIGNsb2NrIHNrZXcpLgotKwotKyAg ICAgICAgOnBhcmFtIGNzbl93aGl0ZWxpc3Q6IE9wdGlvbmFsIHNldCBvZiBDU04gSURzIHRvIGlu Y2x1ZGUuIElmIHByb3ZpZGVkLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ubHkg dGhlc2UgQ1NOcyB3aWxsIGhhdmUgZGV0YWlscyBnZW5lcmF0ZWQuCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgVGhpcyBwcmV2ZW50cyBtZW1vcnkgYmxvYXQgd2hlbiBjaGFydCBkYXRh IGlzIHNhbXBsZWQuCi0rICAgICAgICAiIiIKLSsgICAgICAgIGNzbl9kZXRhaWxzID0ge30KLSsg ICAgICAgIHRvdGFsX3NlcnZlcnMgPSBzZWxmLl9hY3RpdmVfc2VydmVyX2NvdW50IG9yIGxlbihz ZWxmLmxvZ19kaXJzKQotKwotKyAgICAgICAgaWYgY3NuX3doaXRlbGlzdCBpcyBub3QgTm9uZToK LSsgICAgICAgICAgICBjc25faXRlbXMgPSBbKGNzbiwgc20pIGZvciBjc24sIHNtIGluIHNlbGYu Y3Nucy5pdGVtcygpIGlmIGNzbiBpbiBjc25fd2hpdGVsaXN0XQotKyAgICAgICAgZWxzZToKLSsg ICAgICAgICAgICBjc25faXRlbXMgPSBsaXN0KHNlbGYuY3Nucy5pdGVtcygpKQotKwotKyAgICAg ICAgaWYgbGVuKGNzbl9pdGVtcykgPiBzZWxmLk1BWF9DU05fREVUQUlMUzoKLSsgICAgICAgICAg ICBzZWxmLl9sb2dnZXIuaW5mbygKLSsgICAgICAgICAgICAgICAgZiJDU04gZGV0YWlscyBsaW1p dGVkIHRvIHtzZWxmLk1BWF9DU05fREVUQUlMU30gZW50cmllcyAiCi0rICAgICAgICAgICAgICAg IGYiKGRhdGFzZXQgaGFzIHtsZW4oY3NuX2l0ZW1zKX0gQ1NOcykuICIKLSsgICAgICAgICAgICAg ICAgIlNlbGVjdGluZyBDU05zIHdpdGggaGlnaGVzdCBnbG9iYWwgbGFnIGZvciBkcmlsbC1kb3du LiIKLSsgICAgICAgICAgICApCi0rICAgICAgICAgICAgY3NuX2xhZ3MgPSBbXQotKyAgICAgICAg ICAgIGZvciBjc24sIHNlcnZlcl9tYXAgaW4gY3NuX2l0ZW1zOgotKyAgICAgICAgICAgICAgICB0 X2xpc3QgPSBbCi0rICAgICAgICAgICAgICAgICAgICByZWMuZ2V0KCdsb2d0aW1lJywgMCkKLSsg ICAgICAgICAgICAgICAgICAgIGZvciBrZXksIHJlYyBpbiBzZXJ2ZXJfbWFwLml0ZW1zKCkKLSsg ICAgICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UocmVjLCBkaWN0KSBhbmQga2V5ICE9ICdf X2hvcF9sYWdzX18nIGFuZCAnbG9ndGltZScgaW4gcmVjCi0rICAgICAgICAgICAgICAgIF0KLSsg ICAgICAgICAgICAgICAgaWYgdF9saXN0OgotKyAgICAgICAgICAgICAgICAgICAgbGFnID0gbWF4 KHRfbGlzdCkgLSBtaW4odF9saXN0KQotKyAgICAgICAgICAgICAgICAgICAgY3NuX2xhZ3MuYXBw ZW5kKChjc24sIHNlcnZlcl9tYXAsIGxhZykpCi0rICAgICAgICAgICAgY3NuX2xhZ3Muc29ydChr ZXk9bGFtYmRhIHg6IHhbMl0sIHJldmVyc2U9VHJ1ZSkKLSsgICAgICAgICAgICBjc25faXRlbXMg PSBbKGNzbiwgc20pIGZvciBjc24sIHNtLCBfIGluIGNzbl9sYWdzWzpzZWxmLk1BWF9DU05fREVU QUlMU11dCi0rCi0rICAgICAgICBmb3IgY3NuLCBzZXJ2ZXJfbWFwIGluIGNzbl9pdGVtczoKLSsg ICAgICAgICAgICB2YWxpZF9yZWNvcmRzID0gW10KLSsgICAgICAgICAgICBmb3Iga2V5LCBkYXRh IGluIHNlcnZlcl9tYXAuaXRlbXMoKToKLSsgICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShk YXRhLCBkaWN0KSBhbmQga2V5ICE9ICdfX2hvcF9sYWdzX18nIGFuZCAnbG9ndGltZScgaW4gZGF0 YToKLSsgICAgICAgICAgICAgICAgICAgIHZhbGlkX3JlY29yZHMuYXBwZW5kKGRhdGEpCi0rCi0r ICAgICAgICAgICAgaWYgbm90IHZhbGlkX3JlY29yZHM6Ci0rICAgICAgICAgICAgICAgIGNvbnRp bnVlCi0rCi0rICAgICAgICAgICAgdmFsaWRfcmVjb3Jkcy5zb3J0KGtleT1sYW1iZGEgeDogeFsn bG9ndGltZSddKQotKwotKyAgICAgICAgICAgIHN1ZmZpeCA9IE5vbmUKLSsgICAgICAgICAgICBm b3IgcmVjIGluIHZhbGlkX3JlY29yZHM6Ci0rICAgICAgICAgICAgICAgIGlmIHJlYy5nZXQoJ3N1 ZmZpeCcpOgotKyAgICAgICAgICAgICAgICAgICAgc3VmZml4ID0gcmVjWydzdWZmaXgnXQotKyAg ICAgICAgICAgICAgICAgICAgYnJlYWsKLSsKLSsgICAgICAgICAgICByZXBsaWNhX2lkID0gc2Vs Zi5fZXh0cmFjdF9yZXBsaWNhX2lkX2Zyb21fY3NuKGNzbikKLSsgICAgICAgICAgICBvcmlnaW5f c2VydmVyX25hbWUgPSBOb25lCi0rICAgICAgICAgICAgb3JpZ2luX3JlY29yZCA9IE5vbmUKLSsK LSsgICAgICAgICAgICBvcmlnaW5faW5fYXJyaXZhbHMgPSBGYWxzZQotKyAgICAgICAgICAgIGlm IHJlcGxpY2FfaWQgYW5kIHN1ZmZpeDoKLSsgICAgICAgICAgICAgICAgbWFwX2tleSA9IChyZXBs aWNhX2lkLCBzdWZmaXgpCi0rICAgICAgICAgICAgICAgIGlmIG1hcF9rZXkgaW4gc2VsZi5fcmVw bGljYV9pZF90b19zZXJ2ZXI6Ci0rICAgICAgICAgICAgICAgICAgICBvcmlnaW5fc2VydmVyX25h bWUgPSBzZWxmLl9yZXBsaWNhX2lkX3RvX3NlcnZlclttYXBfa2V5XQotKyAgICAgICAgICAgICAg ICAgICAgZm9yIHJlYyBpbiB2YWxpZF9yZWNvcmRzOgotKyAgICAgICAgICAgICAgICAgICAgICAg IGlmIHJlYy5nZXQoJ3NlcnZlcl9uYW1lJykgPT0gb3JpZ2luX3NlcnZlcl9uYW1lOgotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5fcmVjb3JkID0gcmVjCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG9yaWdpbl9pbl9hcnJpdmFscyA9IFRydWUKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYnJlYWsKLSsKLSsgICAgICAgICAgICBpZiBvcmlnaW5fcmVjb3JkIGlz IE5vbmU6Ci0rICAgICAgICAgICAgICAgIG9yaWdpbl9yZWNvcmQgPSB2YWxpZF9yZWNvcmRzWzBd Ci0rICAgICAgICAgICAgICAgIGlmIG5vdCBvcmlnaW5fc2VydmVyX25hbWU6Ci0rICAgICAgICAg ICAgICAgICAgICBvcmlnaW5fc2VydmVyX25hbWUgPSBvcmlnaW5fcmVjb3JkLmdldCgnc2VydmVy X25hbWUnLCAndW5rbm93bicpCi0rCi0rICAgICAgICAgICAgY3NuX3RzID0gc2VsZi5fZXh0cmFj dF90aW1lc3RhbXBfZnJvbV9jc24oY3NuKQotKyAgICAgICAgICAgIG9yaWdpbl90aW1lID0gY3Nu X3RzIGlmIGNzbl90cyBpcyBub3QgTm9uZSBlbHNlIG9yaWdpbl9yZWNvcmRbJ2xvZ3RpbWUnXQot KyAgICAgICAgICAgIGVhcmxpZXN0X3RpbWUgPSB2YWxpZF9yZWNvcmRzWzBdWydsb2d0aW1lJ10K LSsgICAgICAgICAgICBsYXRlc3RfdGltZSA9IHZhbGlkX3JlY29yZHNbLTFdWydsb2d0aW1lJ10K LSsgICAgICAgICAgICBnbG9iYWxfbGFnID0gbGF0ZXN0X3RpbWUgLSBlYXJsaWVzdF90aW1lCi0r Ci0rICAgICAgICAgICAgYXJyaXZhbHMgPSBbXQotKyAgICAgICAgICAgIGZvciBpZHgsIHJlYyBp biBlbnVtZXJhdGUodmFsaWRfcmVjb3Jkcyk6Ci0rICAgICAgICAgICAgICAgIHNlcnZlcl9uYW1l ID0gcmVjLmdldCgnc2VydmVyX25hbWUnLCAndW5rbm93bicpCi0rICAgICAgICAgICAgICAgIGlz X29yaWdpbiA9IChzZXJ2ZXJfbmFtZSA9PSBvcmlnaW5fc2VydmVyX25hbWUpCi0rCi0rICAgICAg ICAgICAgICAgIGFycml2YWxfZW50cnkgPSB7Ci0rICAgICAgICAgICAgICAgICAgICAnc2VydmVy Jzogc2VydmVyX25hbWUsCi0rICAgICAgICAgICAgICAgICAgICAndGltZXN0YW1wJzogZGF0ZXRp bWUuZnJvbXRpbWVzdGFtcChyZWNbJ2xvZ3RpbWUnXSwgdHo9c2VsZi50eikuaXNvZm9ybWF0KCks Ci0rICAgICAgICAgICAgICAgICAgICAncmVsYXRpdmVEZWxheSc6IHJlY1snbG9ndGltZSddIC0g ZWFybGllc3RfdGltZSwKLSsgICAgICAgICAgICAgICAgICAgICdkdXJhdGlvbic6IGZsb2F0KHJl Yy5nZXQoJ2R1cmF0aW9uJywgMC4wKSksCi0rICAgICAgICAgICAgICAgICAgICAnZXRpbWUnOiBy ZWMuZ2V0KCdldGltZScpCi0rICAgICAgICAgICAgICAgIH0KLSsKLSsgICAgICAgICAgICAgICAg aWYgaXNfb3JpZ2luOgotKyAgICAgICAgICAgICAgICAgICAgYXJyaXZhbF9lbnRyeVsnaXNPcmln aW4nXSA9IFRydWUKLSsKLSsgICAgICAgICAgICAgICAgaWYgaWR4ID4gMDoKLSsgICAgICAgICAg ICAgICAgICAgIHByZXZfcmVjID0gdmFsaWRfcmVjb3Jkc1tpZHggLSAxXQotKyAgICAgICAgICAg ICAgICAgICAgYXJyaXZhbF9lbnRyeVsnaG9wRnJvbSddID0gcHJldl9yZWMuZ2V0KCdzZXJ2ZXJf bmFtZScsICd1bmtub3duJykKLSsgICAgICAgICAgICAgICAgICAgIGFycml2YWxfZW50cnlbJ2hv cExhZyddID0gcmVjWydsb2d0aW1lJ10gLSBwcmV2X3JlY1snbG9ndGltZSddCi0rCi0rICAgICAg ICAgICAgICAgIGFycml2YWxzLmFwcGVuZChhcnJpdmFsX2VudHJ5KQotKwotKyAgICAgICAgICAg IGhvcHMgPSBbXQotKyAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKDEsIGxlbih2YWxpZF9yZWNv cmRzKSk6Ci0rICAgICAgICAgICAgICAgIHByZXZfcmVjID0gdmFsaWRfcmVjb3Jkc1tpIC0gMV0K LSsgICAgICAgICAgICAgICAgY3Vycl9yZWMgPSB2YWxpZF9yZWNvcmRzW2ldCi0rICAgICAgICAg ICAgICAgIGhvcHMuYXBwZW5kKHsKLSsgICAgICAgICAgICAgICAgICAgICdmcm9tJzogcHJldl9y ZWMuZ2V0KCdzZXJ2ZXJfbmFtZScsICd1bmtub3duJyksCi0rICAgICAgICAgICAgICAgICAgICAn dG8nOiBjdXJyX3JlYy5nZXQoJ3NlcnZlcl9uYW1lJywgJ3Vua25vd24nKSwKLSsgICAgICAgICAg ICAgICAgICAgICdsYWcnOiBjdXJyX3JlY1snbG9ndGltZSddIC0gcHJldl9yZWNbJ2xvZ3RpbWUn XQotKyAgICAgICAgICAgICAgICB9KQotKwotKyAgICAgICAgICAgIGNzbl9kZXRhaWxzW2Nzbl0g PSB7Ci0rICAgICAgICAgICAgICAgICdjc24nOiBjc24sCi0rICAgICAgICAgICAgICAgICd0YXJn ZXREbic6IG9yaWdpbl9yZWNvcmQuZ2V0KCd0YXJnZXRfZG4nLCAndW5rbm93bicpIG9yICd1bmtu b3duJywKLSsgICAgICAgICAgICAgICAgJ3N1ZmZpeCc6IG9yaWdpbl9yZWNvcmQuZ2V0KCdzdWZm aXgnLCAndW5rbm93bicpIG9yICd1bmtub3duJywKLSsgICAgICAgICAgICAgICAgJ2dsb2JhbExh Zyc6IGdsb2JhbF9sYWcsCi0rICAgICAgICAgICAgICAgICdvcmlnaW5TZXJ2ZXInOiBvcmlnaW5f c2VydmVyX25hbWUsCi0rICAgICAgICAgICAgICAgICdvcmlnaW5JbmNsdWRlZEluQXJyaXZhbHMn OiBvcmlnaW5faW5fYXJyaXZhbHMsCi0rICAgICAgICAgICAgICAgICdvcmlnaW5UaW1lJzogZGF0 ZXRpbWUuZnJvbXRpbWVzdGFtcChvcmlnaW5fdGltZSwgdHo9c2VsZi50eikuaXNvZm9ybWF0KCks Ci0rICAgICAgICAgICAgICAgICdhcnJpdmFscyc6IGFycml2YWxzLAotKyAgICAgICAgICAgICAg ICAnaG9wcyc6IGhvcHMsCi0rICAgICAgICAgICAgICAgICd0b3RhbEhvcHMnOiBsZW4oaG9wcyks Ci0rICAgICAgICAgICAgICAgICdzZXJ2ZXJDb3VudCc6IGxlbih2YWxpZF9yZWNvcmRzKSwKLSsg ICAgICAgICAgICAgICAgJ3JlcGxpY2F0ZWRUb0FsbCc6IGxlbih2YWxpZF9yZWNvcmRzKSA9PSB0 b3RhbF9zZXJ2ZXJzCi0rICAgICAgICAgICAgfQotKwotKyAgICAgICAgcmV0dXJuIGNzbl9kZXRh aWxzCi0rCi0gICAgIGRlZiBwYXJzZV9sb2dzKHNlbGYpIC0+IE5vbmU6Ci0gICAgICAgICAiIiJQ YXJzZSBsb2dzIGZyb20gYWxsIGRpcmVjdG9yaWVzLiBFYWNoIGRpcmVjdG9yeSBpcyB0cmVhdGVk IGFzIG9uZSBzZXJ2ZXIKLSAgICAgICAgIHVubGVzcyBhbm9ueW1pemVkLCBpbiB3aGljaCBjYXNl IHdlIHVzZSAnc2VydmVyX3tpbmRleH0nLgotQEAgLTEwNDQsNiArMTI0NSw0MSBAQCBjbGFzcyBS ZXBsaWNhdGlvbkxvZ0FuYWx5emVyOgotICAgICAgICAgICAgICAgICAgICAgICAgICdkdXJhdGlv bic6IHJlY29yZC5nZXQoJ2R1cmF0aW9uJywgMC4wKSwKLSAgICAgICAgICAgICAgICAgICAgIH0K LSAKLSsgICAgICAgICMgQnVpbGQgKHJlcGxpY2EgSUQsIHN1ZmZpeCkgdG8gc2VydmVyIG1hcHBp bmcgYmFzZWQgb24gY2xvc2VzdCBDU04gdGltZXN0YW1wCi0rICAgICAgICAjIEtleWVkIGJ5IChy ZXBsaWNhX2lkLCBzdWZmaXgpIGJlY2F1c2UgcmVwbGljYSBJRHMgYXJlIHBlci1zdWZmaXggaW4g bXVsdGktc3VmZml4IGRlcGxveW1lbnRzCi0rICAgICAgICAjIEZvciBlYWNoIChyZXBsaWNhIElE LCBzdWZmaXgpIHBhaXIsIHRoZSBzZXJ2ZXIgd2hvc2UgbG9ndGltZSBpcyBjbG9zZXN0IHRvIHRo ZSBDU04KLSsgICAgICAgICMgdGltZXN0YW1wIGlzIHRoZSBiZXN0IG9yaWdpbiBjYW5kaWRhdGUg dW5kZXIgY2xvY2sgc2tldy4KLSsgICAgICAgIHJlcGxpY2FfaWRfYmVzdDogRGljdFtUdXBsZVtz dHIsIHN0cl0sIFR1cGxlW2Jvb2wsIGZsb2F0LCBmbG9hdCwgc3RyXV0gPSB7fQotKyAgICAgICAg Zm9yIGNzbiwgc2VydmVyX21hcCBpbiBzZWxmLmNzbnMuaXRlbXMoKToKLSsgICAgICAgICAgICBy ZXBsaWNhX2lkID0gc2VsZi5fZXh0cmFjdF9yZXBsaWNhX2lkX2Zyb21fY3NuKGNzbikKLSsgICAg ICAgICAgICBpZiBub3QgcmVwbGljYV9pZDoKLSsgICAgICAgICAgICAgICAgY29udGludWUKLSsg ICAgICAgICAgICBjc25fdHMgPSBzZWxmLl9leHRyYWN0X3RpbWVzdGFtcF9mcm9tX2Nzbihjc24p Ci0rICAgICAgICAgICAgZm9yIGtleSwgcmVjb3JkIGluIHNlcnZlcl9tYXAuaXRlbXMoKToKLSsg ICAgICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UocmVjb3JkLCBkaWN0KSBvciBrZXkgPT0g J19faG9wX2xhZ3NfXyc6Ci0rICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotKyAgICAgICAg ICAgICAgICBsb2d0aW1lID0gcmVjb3JkLmdldCgnbG9ndGltZScpCi0rICAgICAgICAgICAgICAg IHNlcnZlcl9uYW1lID0gcmVjb3JkLmdldCgnc2VydmVyX25hbWUnKQotKyAgICAgICAgICAgICAg ICBzdWZmaXggPSByZWNvcmQuZ2V0KCdzdWZmaXgnKQotKyAgICAgICAgICAgICAgICBpZiBsb2d0 aW1lIGlzIE5vbmUgb3Igbm90IHNlcnZlcl9uYW1lIG9yIG5vdCBzdWZmaXg6Ci0rICAgICAgICAg ICAgICAgICAgICBjb250aW51ZQotKyAgICAgICAgICAgICAgICAjIFByZWZlciBjYW5kaWRhdGVz IHdoZXJlIHdlIGNhbiBjb21wYXJlIGFnYWluc3QgQ1NOIHRpbWVzdGFtcAotKyAgICAgICAgICAg ICAgICBoYXNfY3NuX3RzID0gY3NuX3RzIGlzIG5vdCBOb25lCi0rICAgICAgICAgICAgICAgIHNj b3JlID0gYWJzKGxvZ3RpbWUgLSBjc25fdHMpIGlmIGhhc19jc25fdHMgZWxzZSBsb2d0aW1lCi0r ICAgICAgICAgICAgICAgIG1hcF9rZXkgPSAocmVwbGljYV9pZCwgc3VmZml4KQotKyAgICAgICAg ICAgICAgICBpZiBtYXBfa2V5IG5vdCBpbiByZXBsaWNhX2lkX2Jlc3Q6Ci0rICAgICAgICAgICAg ICAgICAgICByZXBsaWNhX2lkX2Jlc3RbbWFwX2tleV0gPSAoaGFzX2Nzbl90cywgc2NvcmUsIGxv Z3RpbWUsIHNlcnZlcl9uYW1lKQotKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKLSsgICAg ICAgICAgICAgICAgcHJldl9oYXNfdHMsIHByZXZfc2NvcmUsIHByZXZfbG9ndGltZSwgXyA9IHJl cGxpY2FfaWRfYmVzdFttYXBfa2V5XQotKyAgICAgICAgICAgICAgICBpZiBoYXNfY3NuX3RzIGFu ZCBub3QgcHJldl9oYXNfdHM6Ci0rICAgICAgICAgICAgICAgICAgICByZXBsaWNhX2lkX2Jlc3Rb bWFwX2tleV0gPSAoaGFzX2Nzbl90cywgc2NvcmUsIGxvZ3RpbWUsIHNlcnZlcl9uYW1lKQotKyAg ICAgICAgICAgICAgICBlbGlmIGhhc19jc25fdHMgPT0gcHJldl9oYXNfdHM6Ci0rICAgICAgICAg ICAgICAgICAgICBpZiBzY29yZSA8IHByZXZfc2NvcmUgb3IgKHNjb3JlID09IHByZXZfc2NvcmUg YW5kIGxvZ3RpbWUgPCBwcmV2X2xvZ3RpbWUpOgotKyAgICAgICAgICAgICAgICAgICAgICAgIHJl cGxpY2FfaWRfYmVzdFttYXBfa2V5XSA9IChoYXNfY3NuX3RzLCBzY29yZSwgbG9ndGltZSwgc2Vy dmVyX25hbWUpCi0rCi0rICAgICAgICAjIFN0b3JlIHRoZSBtYXBwaW5nICgocmVwbGljYSBJRCwg c3VmZml4KSAtPiBzZXJ2ZXIgbmFtZSkKLSsgICAgICAgIHNlbGYuX3JlcGxpY2FfaWRfdG9fc2Vy dmVyID0ge2s6IHNydiBmb3IgaywgKF8sIF8sIF8sIHNydikgaW4gcmVwbGljYV9pZF9iZXN0Lml0 ZW1zKCl9Ci0rCi0gICAgICAgICAjIEFwcGx5IGZpbHRlcnMgYWZ0ZXIgY29sbGVjdGluZyBhbGwg ZGF0YQotICAgICAgICAgZmlsdGVyZWRfY3NucyA9IHt9Ci0gICAgICAgICBlYXJsaWVzdF91ZHQ6 IE9wdGlvbmFsW2Zsb2F0XSA9IE5vbmUKLUBAIC0xNTc3LDYgKzE4MTMsMTcgQEAgY2xhc3MgUmVw bGljYXRpb25Mb2dBbmFseXplcjoKLSAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAg ICAgICAgICAgICByYWlzZSBJT0Vycm9yKGYiRmFpbGVkIHRvIHdyaXRlIEpTT04gc3VtbWFyeSB0 byB7b3V0ZmlsZX06IHtlfSIpCi0gCi0rICAgIEBzdGF0aWNtZXRob2QKLSsgICAgZGVmIF9jb2xs ZWN0X2Nzbl9pZHMoc2VyaWVzX2xpc3Q6IExpc3RbRGljdFtzdHIsIEFueV1dKSAtPiBzZXQ6Ci0r ICAgICAgICAiIiJDb2xsZWN0IENTTiBJRHMgZnJvbSBjaGFydCBzZXJpZXMgZGF0YXBvaW50cy4i IiIKLSsgICAgICAgIGNzbl9pZHMgPSBzZXQoKQotKyAgICAgICAgZm9yIHNlcmllcyBpbiBzZXJp ZXNfbGlzdDoKLSsgICAgICAgICAgICBmb3IgZHAgaW4gc2VyaWVzLmdldCgiZGF0YXBvaW50cyIs IFtdKToKLSsgICAgICAgICAgICAgICAgY3NuX2lkID0gZHAuZ2V0KCJjc25JZCIpCi0rICAgICAg ICAgICAgICAgIGlmIGNzbl9pZDoKLSsgICAgICAgICAgICAgICAgICAgIGNzbl9pZHMuYWRkKGNz bl9pZCkKLSsgICAgICAgIHJldHVybiBjc25faWRzCi0rCi0gICAgIGRlZiBfZ2VuZXJhdGVfcGF0 dGVybmZseV9qc29uKHNlbGYsIHJlc3VsdHM6IERpY3Rbc3RyLCBBbnldLCBvdXRmaWxlOiBzdHIp IC0+IE5vbmU6Ci0gICAgICAgICAiIiJHZW5lcmF0ZSBKU09OIHNwZWNpZmljYWxseSBmb3JtYXR0 ZWQgZm9yIFBhdHRlcm5GbHkgNSBjaGFydHMuIiIiCi0gICAgICAgICBjaGFydF9kYXRhID0gVmlz dWFsaXphdGlvbkhlbHBlci5wcmVwYXJlX2NoYXJ0X2RhdGEoc2VsZi5jc25zLCBzZWxmLnR6KQot QEAgLTE2MzcsNyArMTg4NCw4IEBAIGNsYXNzIFJlcGxpY2F0aW9uTG9nQW5hbHl6ZXI6Ci0gICAg ICAgICAgICAgICAgICJ4IjogZGF0YS50aW1lc1tpXS5pc29mb3JtYXQoKSwKLSAgICAgICAgICAg ICAgICAgInkiOiBkYXRhLmxhZ3NbaV0sCi0gICAgICAgICAgICAgICAgICJkdXJhdGlvbiI6IGRh dGEuZHVyYXRpb25zW2ldLAotLSAgICAgICAgICAgICAgICAiaG92ZXJJbmZvIjogZGF0YS5ob3Zl cltpXQotKyAgICAgICAgICAgICAgICAiaG92ZXJJbmZvIjogZGF0YS5ob3ZlcltpXSwKLSsgICAg ICAgICAgICAgICAgImNzbklkIjogZGF0YS5jc25faWRzW2ldCi0gICAgICAgICAgICAgfSBmb3Ig aSBpbiBpbmRpY2VzXQotICAgICAgICAgICAgIHNlcmllc19kYXRhLmFwcGVuZCh7Ci0gICAgICAg ICAgICAgICAgICJkYXRhcG9pbnRzIjogZGF0YXBvaW50cywKLUBAIC0xNjQ1LDcgKzE4OTMsNyBA QCBjbGFzcyBSZXBsaWNhdGlvbkxvZ0FuYWx5emVyOgotICAgICAgICAgICAgICAgICAiY29sb3Ii OiBjb2xvcl9wYWxldHRlW2lkeCAlIGxlbihjb2xvcl9wYWxldHRlKV0KLSAgICAgICAgICAgICB9 KQotIAotLSAgICAgICAgaG9wX2RhdGE6IERpY3Rbc3RyLCBEaWN0W3N0ciwgTGlzdFtBbnldXV0g PSBkZWZhdWx0ZGljdChsYW1iZGE6IHsidGltZXMiOiBbXSwgImxhZ3MiOiBbXSwgImhvdmVyIjog W119KQotKyAgICAgICAgaG9wX2RhdGE6IERpY3Rbc3RyLCBEaWN0W3N0ciwgTGlzdFtBbnldXV0g PSBkZWZhdWx0ZGljdChsYW1iZGE6IHsidGltZXMiOiBbXSwgImxhZ3MiOiBbXSwgImhvdmVyIjog W10sICJjc25faWRzIjogW119KQotICAgICAgICAgZm9yIGNzbiwgc2VydmVyX21hcCBpbiBzZWxm LmNzbnMuaXRlbXMoKToKLSAgICAgICAgICAgICBmb3IgaG9wIGluIHNlcnZlcl9tYXAuZ2V0KCdf X2hvcF9sYWdzX18nLCBbXSk6Ci0gICAgICAgICAgICAgICAgIHNvdXJjZSA9IGhvcC5nZXQoJ3N1 cHBsaWVyJywgJ3Vua25vd24nKQotQEAgLTE2NTUsNiArMTkwMyw3IEBAIGNsYXNzIFJlcGxpY2F0 aW9uTG9nQW5hbHl6ZXI6Ci0gICAgICAgICAgICAgICAgIHRzID0gZGF0ZXRpbWUuZnJvbXRpbWVz dGFtcChob3AuZ2V0KCdhcnJpdmFsX2NvbnN1bWVyJywgMC4wKSwgdHo9c2VsZi50eikKLSAgICAg ICAgICAgICAgICAgZW50cnlbInRpbWVzIl0uYXBwZW5kKHRzKQotICAgICAgICAgICAgICAgICBl bnRyeVsibGFncyJdLmFwcGVuZChob3AuZ2V0KCdob3BfbGFnJywgMC4wKSkKLSsgICAgICAgICAg ICAgICAgZW50cnlbImNzbl9pZHMiXS5hcHBlbmQoY3NuKQotICAgICAgICAgICAgICAgICB0c19z dHIgPSB0cy5zdHJmdGltZSgnJVktJW0tJWQgJUg6JU06JVMnKQotICAgICAgICAgICAgICAgICBl bnRyeVsiaG92ZXIiXS5hcHBlbmQoCi0gICAgICAgICAgICAgICAgICAgICBmIlRpbWVzdGFtcDog e3RzX3N0cn08YnI+IgotQEAgLTE2ODksNyArMTkzOCwxMCBAQCBjbGFzcyBSZXBsaWNhdGlvbkxv Z0FuYWx5emVyOgotICAgICAgICAgICAgICAgICAibmFtZSI6IGtleSwKLSAgICAgICAgICAgICAg ICAgIngiOiBlbnRyeVsidGltZXMiXVtpXS5pc29mb3JtYXQoKSwKLSAgICAgICAgICAgICAgICAg InkiOiBlbnRyeVsibGFncyJdW2ldLAotLSAgICAgICAgICAgICAgICAiaG92ZXJJbmZvIjogZW50 cnlbImhvdmVyIl1baV0ucmVwbGFjZSgiU3VmZml4OiBOb25lIiwgIlN1ZmZpeDogdW5rbm93biIp LnJlcGxhY2UoIkVudHJ5OiBOb25lIiwgIkVudHJ5OiB1bmtub3duIikKLSsgICAgICAgICAgICAg ICAgImhvdmVySW5mbyI6IChlbnRyeVsiaG92ZXIiXVtpXQotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC5yZXBsYWNlKCJTdWZmaXg6IE5vbmUiLCAiU3VmZml4OiB1bmtub3duIikKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgiRW50cnk6IE5vbmUiLCAiRW50 cnk6IHVua25vd24iKSksCi0rICAgICAgICAgICAgICAgICJjc25JZCI6IGVudHJ5WyJjc25faWRz Il1baV0KLSAgICAgICAgICAgICB9IGZvciBpIGluIGluZGljZXNdCi0gICAgICAgICAgICAgaG9w X3Nlcmllcy5hcHBlbmQoewotICAgICAgICAgICAgICAgICAiZGF0YXBvaW50cyI6IGRhdGFwb2lu dHMsCi1AQCAtMTcwMiw2ICsxOTU0LDEzIEBAIGNsYXNzIFJlcGxpY2F0aW9uTG9nQW5hbHl6ZXI6 Ci0gICAgICAgICAgICAgcmVkdWNlZCArPSBzdW0obGVuKGl0ZW1bImRhdGFwb2ludHMiXSkgZm9y IGl0ZW0gaW4gaG9wX3NlcmllcykKLSAgICAgICAgICAgICBzYW1wbGluZ19tZXRhWyJyZWR1Y2Vk VG90YWxQb2ludHMiXSA9IHJlZHVjZWQKLSAKLSsgICAgICAgIHNhbXBsZWRfY3NuX2lkcyA9IE5v bmUKLSsgICAgICAgIGlmIHNhbXBsaW5nX21ldGFbImFwcGxpZWQiXToKLSsgICAgICAgICAgICBz YW1wbGVkX2Nzbl9pZHMgPSBzZWxmLl9jb2xsZWN0X2Nzbl9pZHMoc2VyaWVzX2RhdGEpCi0rICAg ICAgICAgICAgc2FtcGxlZF9jc25faWRzLnVwZGF0ZShzZWxmLl9jb2xsZWN0X2Nzbl9pZHMoaG9w X3NlcmllcykpCi0rCi0rICAgICAgICBjc25fZGV0YWlscyA9IHNlbGYuX2J1aWxkX2Nzbl9kZXRh aWxzKGNzbl93aGl0ZWxpc3Q9c2FtcGxlZF9jc25faWRzKQotKwotICAgICAgICAgcGZfZGF0YSA9 IHsKLSAgICAgICAgICAgICAicmVwbGljYXRpb25MYWdzIjogewotICAgICAgICAgICAgICAgICAi dGl0bGUiOiAiR2xvYmFsIFJlcGxpY2F0aW9uIExhZyBPdmVyIFRpbWUiLAotQEAgLTE3MTUsNiAr MTk3NCw3IEBAIGNsYXNzIFJlcGxpY2F0aW9uTG9nQW5hbHl6ZXI6Ci0gICAgICAgICAgICAgICAg ICJ4QXhpc0xhYmVsIjogIlRpbWUiLAotICAgICAgICAgICAgICAgICAic2VyaWVzIjogaG9wX3Nl cmllcwotICAgICAgICAgICAgIH0sCi0rICAgICAgICAgICAgImNzbkRldGFpbHMiOiBjc25fZGV0 YWlscywKLSAgICAgICAgICAgICAibWV0YWRhdGEiOiB7Ci0gICAgICAgICAgICAgICAgICJ0b3Rh bFNlcnZlcnMiOiBzZWxmLl9hY3RpdmVfc2VydmVyX2NvdW50IG9yIGxlbihzZWxmLmxvZ19kaXJz KSwKLSAgICAgICAgICAgICAgICAgImNvbmZpZ3VyZWRMb2dEaXJzIjogc2VsZi5sb2dfZGlycywK LS0tIAotMi41Mi4wCi0KCmRpZmYgLS1naXQgYS8wMDI1LUlzc3VlLTY3NTMtUG9ydC10aWNrZXQt NDg4OTYtdGVzdC5wYXRjaCBiLzAwMjUtSXNzdWUtNjc1My1Qb3J0LXRpY2tldC00ODg5Ni10ZXN0 LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MjcwNDlkLi4wMDAwMDAwCi0t LSBhLzAwMjUtSXNzdWUtNjc1My1Qb3J0LXRpY2tldC00ODg5Ni10ZXN0LnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsMjY1ICswLDAgQEAKLUZyb20gNjAzZjRkZWIxZTg3YzgxOWMxODMwZjU4Yzdi ZTQyODFkOTgxZmJiZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IExlbmthIERvdWRv dmEgPGxyeXpuYXJvQHJlZGhhdC5jb20+Ci1EYXRlOiBNb24sIDIgRmViIDIwMjYgMTY6NDY6NTIg KzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gSXNzdWUgNjc1MyAtIFBvcnQgdGlja2V0IDQ4ODk2IHRl c3QKLQotRGVzY3JpcHRpb246Ci1Qb3J0IHRpY2tldCA0ODg5NiB0ZXN0IGludG8gZGlyc3J2dGVz dHMvdGVzdHMvc3VpdGVzL3Bhc3N3b3JkL3B3ZFBvbGljeV90b2tlbl90ZXN0LnB5Ci0KLVJlbGF0 ZXM6ICM2NzUzCi1BdXRob3I6IExlbmthIERvdWRvdmEKLUFzc2lzdGVkIGJ5OiBDdXJzb3IKLVJl dmlld2VyOiBNYXJrIFJleW5vbGRzCi0tLS0KLSAuLi4vc3VpdGVzL3Bhc3N3b3JkL3B3ZFBvbGlj eV90b2tlbl90ZXN0LnB5ICAgfCAgNjggKysrKysrLS0tCi0gZGlyc3J2dGVzdHMvdGVzdHMvdGlj a2V0cy90aWNrZXQ0ODg5Nl90ZXN0LnB5IHwgMTM5IC0tLS0tLS0tLS0tLS0tLS0tLQotIDIgZmls ZXMgY2hhbmdlZCwgNDQgaW5zZXJ0aW9ucygrKSwgMTYzIGRlbGV0aW9ucygtKQotIGRlbGV0ZSBt b2RlIDEwMDY0NCBkaXJzcnZ0ZXN0cy90ZXN0cy90aWNrZXRzL3RpY2tldDQ4ODk2X3Rlc3QucHkK LQotZGlmZiAtLWdpdCBhL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9wYXNzd29yZC9wd2RQb2xp Y3lfdG9rZW5fdGVzdC5weSBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9wYXNzd29yZC9wd2RQ b2xpY3lfdG9rZW5fdGVzdC5weQotaW5kZXggYWU0ZWIzMDBmLi5hM2NhYWEyMzAgMTAwNjQ0Ci0t LS0gYS9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvcGFzc3dvcmQvcHdkUG9saWN5X3Rva2VuX3Rl c3QucHkKLSsrKyBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9wYXNzd29yZC9wd2RQb2xpY3lf dG9rZW5fdGVzdC5weQotQEAgLTE1LDYgKzE1LDcgQEAgZnJvbSBsaWIzODkuX2NvbnN0YW50cyBp bXBvcnQgKgotIGZyb20gbGliMzg5LmlkbS51c2VyIGltcG9ydCBVc2VyQWNjb3VudHMKLSBmcm9t IGxpYjM4OS5pZG0ub3JnYW5pemF0aW9uYWx1bml0IGltcG9ydCBPcmdhbml6YXRpb25hbFVuaXRz Ci0gZnJvbSBsaWIzODkudG9wb2xvZ2llcyBpbXBvcnQgdG9wb2xvZ3lfc3QgYXMgdG9wbwotK2Zy b20gbGliMzg5LmlkbS5kaXJlY3RvcnltYW5hZ2VyIGltcG9ydCBEaXJlY3RvcnlNYW5hZ2VyCi0g Ci0gcHl0ZXN0bWFyayA9IHB5dGVzdC5tYXJrLnRpZXIxCi0gCi1AQCAtMjUsMTQgKzI2LDEzIEBA IGVsc2U6Ci0gICAgIGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKS5zZXRMZXZlbChsb2dnaW5n LklORk8pCi0gbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCi0gCi0tVVNFUl9ETiA9 ICd1aWQ9VGVzdF91c2VyMSxvdT1QZW9wbGUsZGM9ZXhhbXBsZSxkYz1jb20nCi0gVVNFUl9BQ0kg PSAnKHRhcmdldGF0dHI9InVzZXJwYXNzd29yZCIpKHZlcnNpb24gMy4wOyBhY2wgInB3cCB0ZXN0 IjsgYWxsb3cgKGFsbCkgdXNlcmRuPSJsZGFwOi8vL3NlbGYiOyknCi0tVE9LRU4gPSAndGVzdF91 c2VyMScKLStUT0tFTiA9ICd0ZXN0X3VzZXIxMjMnCi0gCi0gdXNlcl9wcm9wZXJ0aWVzID0gewot LSAgICAndWlkJzogJ1Rlc3RfdXNlcjEnLAotLSAgICAnY24nOiAndGVzdF91c2VyMScsCi0tICAg ICdzbic6ICd0ZXN0X3VzZXIxJywKLSsgICAgJ3VpZCc6ICdUZXN0X3VzZXIxMjMnLAotKyAgICAn Y24nOiAndGVzdF91c2VyMTIzJywKLSsgICAgJ3NuJzogJ3Rlc3RfdXNlcjEyMycsCi0gICAgICd1 aWROdW1iZXInOiAnMTAwMScsCi0gICAgICdnaWROdW1iZXInOiAnMjAwMScsCi0gICAgICd1c2Vy cGFzc3dvcmQnOiBQQVNTV09SRCwKLUBAIC01OSwyOCArNTksNDggQEAgZGVmIHRlc3RfdG9rZW5f bGVuZ3Rocyh0b3BvKToKLSAgICAgOmlkOiBkYWU5ZDkxNi0yYTAzLTQ3MDctYjQ1NC05ZTkwMWQy OTViMTMKLSAgICAgOnNldHVwOiBTdGFuZGFsb25lIGluc3RhbmNlCi0gICAgIDpzdGVwczoKLS0g ICAgICAgIDEuIFRlc3QgdG9rZW4gbGVuZ3RoIHJlamVjdHMgcGFzc3dvcmQgb2YgdGhlIHNhbWUg bGVuZ3RoIGFzIHJkbiB2YWx1ZQotKyAgICAgICAgMS4gQ3JlYXRlIHVzZXIsIHNldHVwIGdsb2Jh bCBwYXNzd29yZCBwb2xpY3kKLSsgICAgICAgIDIuIEJpbmQgYXMgdXNlciwgY2hhbmdlIHBhc3N3 b3JkIHRvICdBYmNkMDEyKycKLSsgICAgICAgIDMuIEJpbmQgYXMgdXNlciB3aXRoICdBYmNkMDEy KycsIGF0dGVtcHQgY2hhbmdlcyB0byAndXNlcicsICd1czEyMycsICdUdXNlITEyMzQnLCAnVHVz ZSEwOTg3JywgJ1RhYmMhMTIzNCcKLSsgICAgICAgIDQuIEZvciBlYWNoIHBhc3N3b3JkTWluVG9r ZW5MZW5ndGggNCwgNiwgMTA6IGNoYW5nZSBzZXR0aW5ncywgcmViaW5kIGFzIHVzZXIsIGF0dGVt cHQgcGFzc3dvcmQgd2l0aCB0b2tlbiBvZiB0aGF0IGxlbmd0aCBmcm9tIFRPS0VOCi0rICAgICAg ICA1LiBDbGVhbnVwIC0gZGVsZXRlIHVzZXIKLSAgICAgOmV4cGVjdGVkcmVzdWx0czoKLS0gICAg ICAgIDEuIFBhc3N3b3JkcyBhcmUgcmVqZWN0ZWQKLSsgICAgICAgIDEuIFVzZXIgY3JlYXRlZCwg cGFzc3dvcmQgcG9saWN5IGVuYWJsZWQgYW5kIHNldAotKyAgICAgICAgMi4gU3VjY2VzcwotKyAg ICAgICAgMy4gQWxsIGF0dGVtcHRzIGZhaWwgd2l0aCBDT05TVFJBSU5UX1ZJT0xBVElPTgotKyAg ICAgICAgNC4gQWxsIGF0dGVtcHRzIGZhaWwgd2l0aCBDT05TVFJBSU5UX1ZJT0xBVElPTgotKyAg ICAgICAgNS4gVXNlciBzdWNjZXNzZnVsbHkgZGVsZXRlZAotICAgICAiIiIKLSAgICAgdXNlciA9 IHB3ZF9zZXR1cCh0b3BvKQotLSAgICBmb3IgbGVuZ3RoIGluIFsnNCcsICc2JywgJzEwJ106Ci0t ICAgICAgICB0b3BvLnN0YW5kYWxvbmUuc2ltcGxlX2JpbmRfcyhETl9ETSwgUEFTU1dPUkQpCi0t ICAgICAgICB0b3BvLnN0YW5kYWxvbmUuY29uZmlnLnNldCgncGFzc3dvcmRNaW5Ub2tlbkxlbmd0 aCcsIGxlbmd0aCkKLS0gICAgICAgIHRvcG8uc3RhbmRhbG9uZS5zaW1wbGVfYmluZF9zKFVTRVJf RE4sIFBBU1NXT1JEKQotLSAgICAgICAgdGltZS5zbGVlcCgxKQotLQotLSAgICAgICAgdHJ5Ogot LSAgICAgICAgICAgIHBhc3N3ZCA9IFRPS0VOWzppbnQobGVuZ3RoKV0KLS0gICAgICAgICAgICBs b2cuaW5mbygiVGVzdGluZyBwYXNzd29yZCBsZW4ge30gdG9rZW4gKHt9KSIuZm9ybWF0KGxlbmd0 aCwgcGFzc3dkKSkKLS0gICAgICAgICAgICB1c2VyLnJlcGxhY2UoJ3VzZXJwYXNzd29yZCcsIHBh c3N3ZCkKLS0gICAgICAgICAgICBsb2cuZmF0YWwoJ1Bhc3N3b3JkIGluY29ycmVjdGx5IGFsbG93 ZWQhJykKLS0gICAgICAgICAgICBhc3NlcnQgRmFsc2UKLS0gICAgICAgIGV4Y2VwdCBsZGFwLkNP TlNUUkFJTlRfVklPTEFUSU9OIGFzIGU6Ci0tICAgICAgICAgICAgbG9nLmluZm8oJ1Bhc3N3b3Jk IGNvcnJlY3RseSByZWplY3RlZDogJyArIHN0cihlKSkKLS0gICAgICAgIGV4Y2VwdCBsZGFwLkxE QVBFcnJvciBhcyBlOgotLSAgICAgICAgICAgIGxvZy5mYXRhbCgnVW5leHBlY3RlZCBmYWlsdXJl ICcgKyBzdHIoZSkpCi0tICAgICAgICAgICAgYXNzZXJ0IEZhbHNlCi0rICAgIGRtID0gRGlyZWN0 b3J5TWFuYWdlcih0b3BvLnN0YW5kYWxvbmUpCi0rCi0rICAgIHRyeToKLSsgICAgICAgICMgVmVy aWZ5IHRoYXQgdGhlIHVzZXIgY2FuIGNoYW5nZSB0aGVpciBwYXNzd29yZAotKyAgICAgICAgdXNl ci5yZWJpbmQoUEFTU1dPUkQpCi0rICAgICAgICB1c2VyLnJlcGxhY2UoJ3VzZXJwYXNzd29yZCcs ICdBYmNkMDEyKycpCi0rCi0rICAgICAgICAjIFZlcmlmeSB0aGF0IHRoZSBkZWZhdWx0IHBhc3N3 b3JkIHBvbGljeSBpcyBlbmZvcmNlZAotKyAgICAgICAgdXNlci5yZWJpbmQoJ0FiY2QwMTIrJykK LSsgICAgICAgIGZvciBuZXdfcGFzc3dvcmQgaW4gWyd1c2VyJywgJ3VzMTIzJywgJ1R1c2UhMTIz NCcsICdUdXNlITA5ODcnLCAnVGFiYyExMjM0J106Ci0rICAgICAgICAgICAgbG9nLmluZm8oZiJU ZXN0aW5nIHBhc3N3b3JkIHtuZXdfcGFzc3dvcmR9IikKLSsgICAgICAgICAgICB3aXRoIHB5dGVz dC5yYWlzZXMobGRhcC5DT05TVFJBSU5UX1ZJT0xBVElPTik6Ci0rICAgICAgICAgICAgICAgIHVz ZXIucmVwbGFjZSgndXNlcnBhc3N3b3JkJywgbmV3X3Bhc3N3b3JkKQotKwotKyAgICAgICAgIyBW ZXJpZnkgdGhhdCB0aGUgcGFzc3dvcmQgcG9saWN5IGlzIGVuZm9yY2VkIGZvciBkaWZmZXJlbnQg dG9rZW4gbGVuZ3RocwotKyAgICAgICAgZm9yIGxlbmd0aCBpbiBbJzQnLCAnNicsICcxMCddOgot KyAgICAgICAgICAgIGRtLnJlYmluZChQQVNTV09SRCkKLSsgICAgICAgICAgICB0b3BvLnN0YW5k YWxvbmUuY29uZmlnLnNldCgncGFzc3dvcmRNaW5Ub2tlbkxlbmd0aCcsIGxlbmd0aCkKLSsgICAg ICAgICAgICB1c2VyLnJlYmluZCgnQWJjZDAxMisnKQotKyAgICAgICAgICAgIHRpbWUuc2xlZXAo MSkKLSsKLSsgICAgICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMobGRhcC5DT05TVFJBSU5UX1ZJ T0xBVElPTik6Ci0rICAgICAgICAgICAgICAgIHBhc3N3ZCA9IFRPS0VOWzppbnQobGVuZ3RoKV0K LSsgICAgICAgICAgICAgICAgbG9nLmluZm8oIlRlc3RpbmcgcGFzc3dvcmQgbGVuIHt9IHRva2Vu ICh7fSkiLmZvcm1hdChsZW5ndGgsIHBhc3N3ZCkpCi0rICAgICAgICAgICAgICAgIHVzZXIucmVw bGFjZSgndXNlcnBhc3N3b3JkJywgcGFzc3dkKQotKwotKyAgICBmaW5hbGx5OgotKyAgICAgICAg IyBDbGVhbnVwCi0rICAgICAgICB1c2VyLmRlbGV0ZSgpCi0gCi0gCi0gaWYgX19uYW1lX18gPT0g J19fbWFpbl9fJzoKLWRpZmYgLS1naXQgYS9kaXJzcnZ0ZXN0cy90ZXN0cy90aWNrZXRzL3RpY2tl dDQ4ODk2X3Rlc3QucHkgYi9kaXJzcnZ0ZXN0cy90ZXN0cy90aWNrZXRzL3RpY2tldDQ4ODk2X3Rl c3QucHkKLWRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggYTE4OTc1ODllLi4wMDAwMDAw MDAKLS0tLSBhL2RpcnNydnRlc3RzL3Rlc3RzL3RpY2tldHMvdGlja2V0NDg4OTZfdGVzdC5weQot KysrIC9kZXYvbnVsbAotQEAgLTEsMTM5ICswLDAgQEAKLS0jIC0tLSBCRUdJTiBDT1BZUklHSFQg QkxPQ0sgLS0tCi0tIyBDb3B5cmlnaHQgKEMpIDIwMTYgUmVkIEhhdCwgSW5jLgotLSMgQWxsIHJp Z2h0cyByZXNlcnZlZC4KLS0jCi0tIyBMaWNlbnNlOiBHUEwgKHZlcnNpb24gMyBvciBhbnkgbGF0 ZXIgdmVyc2lvbikuCi0tIyBTZWUgTElDRU5TRSBmb3IgZGV0YWlscy4KLS0jIC0tLSBFTkQgQ09Q WVJJR0hUIEJMT0NLIC0tLQotLSMKLS1pbXBvcnQgcHl0ZXN0Ci0tZnJvbSBsaWIzODkudGFza3Mg aW1wb3J0ICoKLS1mcm9tIGxpYjM4OS51dGlscyBpbXBvcnQgKgotLWZyb20gbGliMzg5LnRvcG9s b2dpZXMgaW1wb3J0IHRvcG9sb2d5X3N0Ci0tCi0tZnJvbSBsaWIzODkuX2NvbnN0YW50cyBpbXBv cnQgREVGQVVMVF9TVUZGSVgsIEROX0RNLCBQQVNTV09SRAotLQotLSMgU2tpcCBvbiBvbGRlciB2 ZXJzaW9ucwotLXB5dGVzdG1hcmsgPSBbcHl0ZXN0Lm1hcmsudGllcjIsCi0tICAgICAgICAgICAg ICBweXRlc3QubWFyay5za2lwaWYoZHNfaXNfb2xkZXIoJzEuMy42JyksIHJlYXNvbj0iTm90IGlt cGxlbWVudGVkIildCi0tCi0tbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pLnNldExldmVsKGxv Z2dpbmcuREVCVUcpCi0tbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCi0tCi0tQ09O RklHX0ROID0gJ2NuPWNvbmZpZycKLS1VSUQgPSAnYnVzZXIxMjMnCi0tVEVTVEROID0gJ3VpZD0l cywnICUgVUlEICsgREVGQVVMVF9TVUZGSVgKLS0KLS0KLS1kZWYgY2hlY2tfYXR0cl92YWwodG9w b2xvZ3lfc3QsIGRuLCBhdHRyLCBleHBlY3RlZCk6Ci0tICAgIHRyeToKLS0gICAgICAgIGNlbnRy eSA9IHRvcG9sb2d5X3N0LnN0YW5kYWxvbmUuc2VhcmNoX3MoZG4sIGxkYXAuU0NPUEVfQkFTRSwg J2NuPSonKQotLSAgICAgICAgaWYgY2VudHJ5OgotLSAgICAgICAgICAgIHZhbCA9IGNlbnRyeVsw XS5nZXRWYWx1ZShhdHRyKQotLSAgICAgICAgICAgIGlmIHZhbCA9PSBleHBlY3RlZDoKLS0gICAg ICAgICAgICAgICAgbG9nLmluZm8oJ0RlZmF1bHQgdmFsdWUgb2YgJXMgaXMgJXMnICUgKGF0dHIs IGV4cGVjdGVkKSkKLS0gICAgICAgICAgICBlbHNlOgotLSAgICAgICAgICAgICAgICBsb2cuaW5m bygnRGVmYXVsdCB2YWx1ZSBvZiAlcyBpcyBub3QgJXMsIGJ1dCAlcycgJSAoYXR0ciwgZXhwZWN0 ZWQsIHZhbCkpCi0tICAgICAgICAgICAgICAgIGFzc2VydCBGYWxzZQotLSAgICAgICAgZWxzZToK LS0gICAgICAgICAgICBsb2cuZmF0YWwoJ0ZhaWxlZCB0byBnZXQgJXMnICUgZG4pCi0tICAgICAg ICAgICAgYXNzZXJ0IEZhbHNlCi0tICAgIGV4Y2VwdCBsZGFwLkxEQVBFcnJvciBhcyBlOgotLSAg ICAgICAgbG9nLmZhdGFsKCdGYWlsZWQgdG8gc2VhcmNoICcgKyBkbiArICc6ICcgKyBlLm1lc3Nh Z2VbJ2Rlc2MnXSkKLS0gICAgICAgIGFzc2VydCBGYWxzZQotLQotLQotLWRlZiByZXBsYWNlX3B3 KHNlcnZlciwgY3VycHcsIG5ld3B3LCBleHBzdHIsIHJjKToKLS0gICAgbG9nLmluZm8oJ0JpbmRp bmcgYXMgeyVzLCAlc30nICUgKFRFU1RETiwgY3VycHcpKQotLSAgICBzZXJ2ZXIuc2ltcGxlX2Jp bmRfcyhURVNURE4sIGN1cnB3KQotLQotLSAgICBoaXQgPSAwCi0tICAgIGxvZy5pbmZvKCdSZXBs YWNpbmcgcGFzc3dvcmQ6ICVzIC0+ICVzLCB3aGljaCBzaG91bGQgJXMnICUgKGN1cnB3LCBuZXdw dywgZXhwc3RyKSkKLS0gICAgdHJ5OgotLSAgICAgICAgc2VydmVyLm1vZGlmeV9zKFRFU1RETiwg WyhsZGFwLk1PRF9SRVBMQUNFLCAndXNlclBhc3N3b3JkJywgZW5zdXJlX2J5dGVzKG5ld3B3KSld KQotLSAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0tICAgICAgICBsb2cuaW5mbygiRXhjZXB0 aW9uIChleHBlY3RlZCk6ICVzIiAlIHR5cGUoZSkuX19uYW1lX18pCi0tICAgICAgICBoaXQgPSAx Ci0tICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShlLCByYykKLS0KLS0gICAgaWYgKDAgIT0gcmMp IGFuZCAoMCA9PSBoaXQpOgotLSAgICAgICAgbG9nLmluZm8oJ0V4cGVjdGVkIHRvIGZhaWwgd2l0 aCAlcywgYnV0IHBhc3NlZCcgJSByYy5fX25hbWVfXykKLS0gICAgICAgIGFzc2VydCBGYWxzZQot LQotLSAgICBsb2cuaW5mbygnUEFTU0VEJykKLS0KLS0KLS1kZWYgdGVzdF90aWNrZXQ0ODg5Nih0 b3BvbG9neV9zdCk6Ci0tICAgICIiIgotLSAgICAiIiIKLS0gICAgbG9nLmluZm8oJ1Rlc3Rpbmcg VGlja2V0IDQ4ODk2IC0gRGVmYXVsdCBTZXR0aW5nIGZvciBwYXNzd29yZE1pblRva2VuTGVuZ3Ro IGRvZXMgbm90IHdvcmsnKQotLQotLSAgICBsb2cuaW5mbygiU2V0dGluZyBnbG9iYWwgcGFzc3dv cmQgcG9saWN5IHdpdGggcGFzc3dvcmQgc3ludGF4LiIpCi0tICAgIHRvcG9sb2d5X3N0LnN0YW5k YWxvbmUuc2ltcGxlX2JpbmRfcyhETl9ETSwgUEFTU1dPUkQpCi0tICAgIHRvcG9sb2d5X3N0LnN0 YW5kYWxvbmUubW9kaWZ5X3MoQ09ORklHX0ROLCBbKGxkYXAuTU9EX1JFUExBQ0UsICdwYXNzd29y ZENoZWNrU3ludGF4JywgYidvbicpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChsZGFwLk1PRF9SRVBMQUNFLCAnbnNzbGFwZC1wd3BvbGljeS1sb2Nh bCcsIGInb24nKV0pCi0tCi0tICAgIGNvbmZpZyA9IHRvcG9sb2d5X3N0LnN0YW5kYWxvbmUuc2Vh cmNoX3MoQ09ORklHX0ROLCBsZGFwLlNDT1BFX0JBU0UsICdjbj0qJykKLS0gICAgbWludG9rZW5s ZW4gPSBjb25maWdbMF0uZ2V0VmFsdWUoJ3Bhc3N3b3JkTWluVG9rZW5MZW5ndGgnKQotLSAgICBo aXN0b3J5ID0gY29uZmlnWzBdLmdldFZhbHVlKCdwYXNzd29yZEluSGlzdG9yeScpCi0tCi0tICAg IGxvZy5pbmZvKCdEZWZhdWx0IHBhc3N3b3JkTWluVG9rZW5MZW5ndGggPT0gJXMnICUgbWludG9r ZW5sZW4pCi0tICAgIGxvZy5pbmZvKCdEZWZhdWx0IHBhc3N3b3JkSW5IaXN0b3J5ID09ICVzJyAl IGhpc3RvcnkpCi0tCi0tICAgIGxvZy5pbmZvKCdBZGRpbmcgYSB1c2VyLicpCi0tICAgIGN1cnB3 ID0gJ3Bhc3N3b3JkJwotLSAgICB0b3BvbG9neV9zdC5zdGFuZGFsb25lLmFkZF9zKEVudHJ5KChU RVNURE4sCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsnb2JqZWN0 Y2xhc3MnOiAidG9wIHBlcnNvbiBvcmdhbml6YXRpb25hbFBlcnNvbiBpbmV0T3JnUGVyc29uIi5z cGxpdCgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NuJzog J3Rlc3QgdXNlcicsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn c24nOiAndXNlcicsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn dXNlclBhc3N3b3JkJzogY3VycHd9KSkpCi0tCi0tICAgIG5ld3B3ID0gJ0FiY2QwMTIrJwotLSAg ICBleHAgPSAnYmUgb2snCi0tICAgIHJjID0gMAotLSAgICByZXBsYWNlX3B3KHRvcG9sb2d5X3N0 LnN0YW5kYWxvbmUsIGN1cnB3LCBuZXdwdywgZXhwLCByYykKLS0KLS0gICAgY3VycHcgPSAnQWJj ZDAxMisnCi0tICAgIG5ld3B3ID0gJ3VzZXInCi0tICAgIGV4cCA9ICdmYWlsJwotLSAgICByYyA9 IGxkYXAuQ09OU1RSQUlOVF9WSU9MQVRJT04KLS0gICAgcmVwbGFjZV9wdyh0b3BvbG9neV9zdC5z dGFuZGFsb25lLCBjdXJwdywgbmV3cHcsIGV4cCwgcmMpCi0tCi0tICAgIGN1cnB3ID0gJ0FiY2Qw MTIrJwotLSAgICBuZXdwdyA9IFVJRAotLSAgICBleHAgPSAnZmFpbCcKLS0gICAgcmMgPSBsZGFw LkNPTlNUUkFJTlRfVklPTEFUSU9OCi0tICAgIHJlcGxhY2VfcHcodG9wb2xvZ3lfc3Quc3RhbmRh bG9uZSwgY3VycHcsIG5ld3B3LCBleHAsIHJjKQotLQotLSAgICBjdXJwdyA9ICdBYmNkMDEyKycK LS0gICAgbmV3cHcgPSAnVHVzZSExMjM0JwotLSAgICBleHAgPSAnZmFpbCcKLS0gICAgcmMgPSBs ZGFwLkNPTlNUUkFJTlRfVklPTEFUSU9OCi0tICAgIHJlcGxhY2VfcHcodG9wb2xvZ3lfc3Quc3Rh bmRhbG9uZSwgY3VycHcsIG5ld3B3LCBleHAsIHJjKQotLQotLSAgICBjdXJwdyA9ICdBYmNkMDEy KycKLS0gICAgbmV3cHcgPSAnVHVzZSEwOTg3JwotLSAgICBleHAgPSAnZmFpbCcKLS0gICAgcmMg PSBsZGFwLkNPTlNUUkFJTlRfVklPTEFUSU9OCi0tICAgIHJlcGxhY2VfcHcodG9wb2xvZ3lfc3Qu c3RhbmRhbG9uZSwgY3VycHcsIG5ld3B3LCBleHAsIHJjKQotLQotLSAgICBjdXJwdyA9ICdBYmNk MDEyKycKLS0gICAgbmV3cHcgPSAnVGFiYyExMjM0JwotLSAgICBleHAgPSAnZmFpbCcKLS0gICAg cmMgPSBsZGFwLkNPTlNUUkFJTlRfVklPTEFUSU9OCi0tICAgIHJlcGxhY2VfcHcodG9wb2xvZ3lf c3Quc3RhbmRhbG9uZSwgY3VycHcsIG5ld3B3LCBleHAsIHJjKQotLQotLSAgICBjdXJwdyA9ICdB YmNkMDEyKycKLS0gICAgbmV3cHcgPSAnRGlyZWMrb3J5Mzg5JwotLSAgICBleHAgPSAnYmUgb2sn Ci0tICAgIHJjID0gMAotLSAgICByZXBsYWNlX3B3KHRvcG9sb2d5X3N0LnN0YW5kYWxvbmUsIGN1 cnB3LCBuZXdwdywgZXhwLCByYykKLS0KLS0gICAgbG9nLmluZm8oJ1NVQ0NFU1MnKQotLQotLQot LWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0tICAgICMgUnVuIGlzb2xhdGVkCi0tICAgICMg LXMgZm9yIERFQlVHIG1vZGUKLS0gICAgQ1VSUkVOVF9GSUxFID0gb3MucGF0aC5yZWFscGF0aChf X2ZpbGVfXykKLS0gICAgcHl0ZXN0Lm1haW4oIi1zICVzIiAlIENVUlJFTlRfRklMRSkKLS0tIAot Mi41Mi4wCi0KCmRpZmYgLS1naXQgYS8wMDI2LUlzc3VlLTY4MTAtRml4LVBBTS1QVEEtdGVzdC03 MjE5LnBhdGNoIGIvMDAyNi1Jc3N1ZS02ODEwLUZpeC1QQU0tUFRBLXRlc3QtNzIxOS5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjZjZDY4OS4uMDAwMDAwMAotLS0gYS8wMDI2 LUlzc3VlLTY4MTAtRml4LVBBTS1QVEEtdGVzdC03MjE5LnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsMzAgKzAsMCBAQAotRnJvbSBmZjQ0YWNmZmNjNjdjOTg1MTQ4YzRkZjI4MDY4NWE2NzRmZWMw MTBhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQWtzaGF5IEFkaGlrYXJpIDxhYWRo aWthckByZWRoYXQuY29tPgotRGF0ZTogVGh1LCA1IEZlYiAyMDI2IDE1OjE5OjU4ICswNTMwCi1T dWJqZWN0OiBbUEFUQ0hdIElzc3VlIDY4MTAgLSBGaXggUEFNIFBUQSB0ZXN0ICgjNzIxOSkKLQot RGVzY3JpcHRpb246IEZpeCB0aGUgUEFNIFBUQSB0ZXN0IGJ5IGFkZCBtaXNzaW5nIHlpZWxkIGlu IGZpeHR1cmUuCi0KLVJlbGF0ZXM6ICM2ODEwCi0KLVJldmlld2VkIGJ5OiBAamNoYXBtYQotLS0t Ci0gZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL3BsdWdpbnMvcGFtX3B0YV90ZXN0LnB5IHwgMiAr KwotIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKLQotZGlmZiAtLWdpdCBhL2RpcnNy dnRlc3RzL3Rlc3RzL3N1aXRlcy9wbHVnaW5zL3BhbV9wdGFfdGVzdC5weSBiL2RpcnNydnRlc3Rz L3Rlc3RzL3N1aXRlcy9wbHVnaW5zL3BhbV9wdGFfdGVzdC5weQotaW5kZXggNDg0YzFiYzgwLi5l NTVhN2Y3ZWUgMTAwNjQ0Ci0tLS0gYS9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvcGx1Z2lucy9w YW1fcHRhX3Rlc3QucHkKLSsrKyBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9wbHVnaW5zL3Bh bV9wdGFfdGVzdC5weQotQEAgLTEwNCw2ICsxMDQsOCBAQCBkZWYgcGFtX3NlcnZpY2VfbGRhcHNl cnZlcihtaWdyYXRlZF9jaGlsZF9jb25maWcpOgotICAgICAgICAgICAgICAgICBmLndyaXRlKGxp bmUgKyAiXG4iKQotICAgICAgICAgb3MuY2htb2QocGFtX2ZpbGUsIDBvNjQ0KQotIAotKyAgICAg ICAgeWllbGQKLSsKLSAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgaWYgb3Mu cGF0aC5leGlzdHMoYmFja3VwX2ZpbGUpOgotICAgICAgICAgICAgICMgUmVzdG9yZSBiYWNrdXAg b24gZXJyb3IKLS0tIAotMi41Mi4wCi0KCmRpZmYgLS1naXQgYS8wMDI3LUlzc3VlLTcwNzYtRml4 LXJldmVydF9jYWNoZS1uZXZlci1jYWxsZWQtaW4tbW9kcmRuLTcucGF0Y2ggYi8wMDI3LUlzc3Vl LTcwNzYtRml4LXJldmVydF9jYWNoZS1uZXZlci1jYWxsZWQtaW4tbW9kcmRuLTcucGF0Y2gKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZhZTQwODkuLjAwMDAwMDAKLS0tIGEvMDAyNy1J c3N1ZS03MDc2LUZpeC1yZXZlcnRfY2FjaGUtbmV2ZXItY2FsbGVkLWluLW1vZHJkbi03LnBhdGNo CisrKyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotRnJvbSAyYTBlZDljMjY3ZmM1NmExNGU4 NGFkNTNmZmFlYjBiODIyNTk0MzY3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQWtz aGF5IEFkaGlrYXJpIDxhYWRoaWthckByZWRoYXQuY29tPgotRGF0ZTogVGh1LCA1IEZlYiAyMDI2 IDE1OjQxOjA5ICswNTMwCi1TdWJqZWN0OiBbUEFUQ0hdIElzc3VlIDcwNzYgLSBGaXggcmV2ZXJ0 X2NhY2hlKCkgbmV2ZXIgY2FsbGVkIGluIG1vZHJkbgotICgjNzIyMCkKLQotRGVzY3JpcHRpb246 IFRoZSBwb3N0ZW50cnkgY2hlY2sgaW4gUFIgIzcwNzcgd2FzIGJyb2tlbiAtIHBvc3RlbnRyeSBp cyBhbHdheXMgTlVMTAotYXQgdGhhdCBwb2ludCwgZml4ZWQgYnkgcmVtb3ZpbmcgdGhlIGNoZWNr LgotCi1SZWxhdGVzOiAjNzA3NgotCi1SZXZpZXdlZCBieTogQHZhc2hpcm92LCBAbXJleW5vbGRz Mzg5LCBAZHJvaWRlY2sgKFRoYW5rcyEpCi0tLS0KLSBsZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1s ZGJtL2xkYm1fbW9kcmRuLmMgfCAxMiArKysrKysrLS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgNyBp bnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvbGRhcC9zZXJ2ZXJz L3NsYXBkL2JhY2stbGRibS9sZGJtX21vZHJkbi5jIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2st bGRibS9sZGJtX21vZHJkbi5jCi1pbmRleCA3NTllZGI4MGQuLmU4NTk3ODliMyAxMDA2NDQKLS0t LSBhL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vbGRibV9tb2RyZG4uYwotKysrIGIvbGRh cC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9sZGJtX21vZHJkbi5jCi1AQCAtMTAyLDYgKzEwMiw3 IEBAIGxkYm1fYmFja19tb2RyZG4oU2xhcGlfUEJsb2NrICpwYikKLSAgICAgQ29ubmVjdGlvbiAq cGJfY29ubiA9IE5VTEw7Ci0gICAgIGludDMyX3QgcGFyZW50X29wID0gMDsKLSAgICAgaW50MzJf dCBiZXR4bl9jYWxsYmFja19mYWlscyA9IDA7IC8qIGlmIGEgQkVUWE4gZmFpbHMgd2UgbmVlZCB0 byByZXZlcnQgZW50cnkgY2FjaGUgKi8KLSsgICAgaW50MzJfdCBjYWNoZV9tb2RfcGhhc2UgPSAw OyAvKiBzZXQgd2hlbiB3ZSByZWFjaCB0aGUgY2FjaGUgbW9kaWZpY2F0aW9uIHBoYXNlICovCi0g ICAgIHN0cnVjdCB0aW1lc3BlYyBwYXJlbnRfdGltZTsKLSAgICAgU2xhcGlfTW9kcyAqc21vZHNf YWRkX3JkbiA9IE5VTEw7Ci0gCi1AQCAtMTE4MSw2ICsxMTgyLDggQEAgbGRibV9iYWNrX21vZHJk bihTbGFwaV9QQmxvY2sgKnBiKQotICAgICAgICAgZ290byBlcnJvcl9yZXR1cm47Ci0gICAgIH0K LSAKLSsgICAgLyogV2UncmUgbm93IHBhc3QgdGhlIEJFVFhOIFBSRSBwaGFzZSBhbmQgZW50ZXJp bmcgdGhlIGNhY2hlIG1vZGlmaWNhdGlvbiBwaGFzZSAqLwotKyAgICBjYWNoZV9tb2RfcGhhc2Ug PSAxOwotICAgICBwb3N0ZW50cnkgPSBzbGFwaV9lbnRyeV9kdXAoZWMtPmVwX2VudHJ5KTsKLSAK LSAgICAgaWYgKHBhcmVudGVudHJ5ICE9IE5VTEwpIHsKLUBAIC0xMzYzLDEyICsxMzY2LDExIEBA IGVycm9yX3JldHVybjoKLSAgICAgICAgIH0KLSAgICAgfQotIAotLSAgICAvKiBSZXZlcnQgdGhl IGNhY2hlcyBpZiB0aGlzIGlzIHRoZSBwYXJlbnQgb3BlcmF0aW9uIGFuZCBjYWNoZSBtb2RpZmlj YXRpb25zIHdlcmUgbWFkZS4KLS0gICAgICogQ2FjaGUgbW9kaWZpY2F0aW9ucyAodmlhIG1vZGlm eV9zd2l0Y2hfZW50cmllcykgb25seSBoYXBwZW4gYWZ0ZXIgQkVUWE4gUFJFIHBsdWdpbnMgc3Vj Y2VlZCwKLS0gICAgICogc28gd2Ugc2hvdWxkIG9ubHkgcmV2ZXJ0IGlmIHdlIGdvdCBwYXN0IHRo YXQgcG9pbnQgKGkuZS4sIEJFVFhOIFBPU1QgcGx1Z2luIGZhaWx1cmVzKS4KLS0gICAgICogRm9y IEJFVFhOIFBSRSBmYWlsdXJlcywgbm8gY2FjaGUgbW9kaWZpY2F0aW9ucyB3ZXJlIG1hZGUgdG8g cGFyZW50L25ld3BhcmVudCBlbnRyaWVzLgotKyAgICAvKiBSZXZlcnQgdGhlIGNhY2hlcyBpZiB0 aGlzIGlzIHRoZSBwYXJlbnQgb3BlcmF0aW9uIEFORCB3ZSByZWFjaGVkIHRoZQotKyAgICAgKiBj YWNoZSBtb2RpZmljYXRpb24gcGhhc2UuIElmIEJFVFhOIFBSRSBmYWlscywgY2FjaGVfbW9kX3Bo YXNlIGlzIDAKLSsgICAgICogYW5kIHdlIGRvbid0IG5lZWQgdG8gcmV2ZXJ0IHNpbmNlIG5vIGNh Y2hlIG1vZGlmaWNhdGlvbnMgd2VyZSBtYWRlLgotICAgICAgKi8KLS0gICAgaWYgKHBhcmVudF9v cCAmJiBiZXR4bl9jYWxsYmFja19mYWlscyAmJiBwb3N0ZW50cnkpIHsKLSsgICAgaWYgKHBhcmVu dF9vcCAmJiBiZXR4bl9jYWxsYmFja19mYWlscyAmJiBjYWNoZV9tb2RfcGhhc2UpIHsKLSAgICAg ICAgIHJldmVydF9jYWNoZShpbnN0LCAmcGFyZW50X3RpbWUpOwotICAgICB9Ci0gCi0tLSAKLTIu NTIuMAotCgpkaWZmIC0tZ2l0IGEvMDAyOC1Jc3N1ZS02OTUxLUR5bmFtaWMtQ2VydGlmaWNhdGUt cmVmcmVzaC1waGFzZS00LVVwZGF0LnBhdGNoIGIvMDAyOC1Jc3N1ZS02OTUxLUR5bmFtaWMtQ2Vy dGlmaWNhdGUtcmVmcmVzaC1waGFzZS00LVVwZGF0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCBmYjM3Mzc1Li4wMDAwMDAwCi0tLSBhLzAwMjgtSXNzdWUtNjk1MS1EeW5hbWlj LUNlcnRpZmljYXRlLXJlZnJlc2gtcGhhc2UtNC1VcGRhdC5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDE0OTIgKzAsMCBAQAotRnJvbSAzZDYzYzJiYzFlYzdlODlmZTJjZTYzNjBkZGQ3Mjc0OGE2 ZDFlMWM1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSmFtZXMgQ2hhcG1hbiA8amFj aGFwbWFAcmVkaGF0LmNvbT4KLURhdGU6IFRodSwgNSBGZWIgMjAyNiAxNToxOTowNyArMDAwMAot U3ViamVjdDogW1BBVENIXSBJc3N1ZSA2OTUxIC0gRHluYW1pYyBDZXJ0aWZpY2F0ZSByZWZyZXNo IHBoYXNlIDQgLSBVcGRhdGUKLSBsaWIzODkgYW5kIGRzY29uZiAoIzcxNzEpCi0KLURlc2NpcHRp b246Ci1BZGQgdGhlIENlcnRNYW5hZ2VyIGFic3RyYWN0aW9uIGxheWVyIGFuZCBEeW5hbWljQ2Vy dHMgYmFja2VuZCBtb2R1bGUuIEVuaGFuY2UKLXRoZSBOc3NTc2wgYmFja2VuZCB0byBzdXBwb3J0 IGltcG9ydGluZyBQS0NTIzEyIGNvbnRhaW5lcnMsIGNvbnRhaW5pbmcgY2VydCBhbmQKLXByaXZh dGUga2V5LiBVcGRhdGUgZHNjb25mIHRvIHN1cHBvcnQgbmV3IFBLQ1MjMTItcmVsYXRlZCBhcmdz LCBhbGxvd2luZyB1c2VycwotdG8gc3VwcGx5IHBhc3N3b3JkcyB2aWEgdGV4dCwgc3RkaW4sIG9y IGZpbGUuCi0KLUZpeDoKLS0gSW50cm9kdWNlIENlcnRNYW5hZ2VyIGFic3RyYWN0aW9uIGxheWVy IGZvciB1bmlmb3JtIGNlcnQgbWFuYWdlbWVudC4KLS0gSW1wbGVtZW50IER5bmFtaWNDZXJ0cyBi YWNrZW5kIHdpdGggYWRkL2xpc3QvZGVsZXRlIG9wZXJhdGlvbnMuCi0tIEV4dGVuZCBOc3NTc2wu YWRkX2NlcnQgdG8gaGFuZGxlIFBLQ1MjMTIgZmlsZXMgd2l0aCBwYXNzd29yZHMgdmlhIHRleHQs IHN0ZGluLCBvciBmaWxlLgotLSBVcGRhdGUgZHNjb25mIENMSSB0byBhY2NlcHQgUEtDUyMxMiBh cmd1bWVudHMgKC0tcGtjczEyLXBpbi10ZXh0LCAtLXBrY3MxMi1waW4tc3RkaW4sIC0tcGtjczEy LXBpbi1wYXRoKS4KLQotUmVsYXRlczogaHR0cHM6Ly9naXRodWIuY29tLzM4OWRzLzM4OS1kcy1i YXNlL2lzc3Vlcy82OTUxCi0KLVJldmlld2VkIGJ5OiBAcHJvZ2llcjM4OSwgQG1yZXlub2xkczM4 OSwgQGRyb2lkZWNrIChUaGFuayB5b3UpCi0tLS0KLSAuLi4vdGVzdHMvc3VpdGVzL2NsdS9jYV9j ZXJ0X2J1bmRsZV90ZXN0LnB5ICAgfCAgIDUgKy0KLSAuLi4vdGVzdHMvc3VpdGVzL2NsdS9kc2N0 bF90bHNfdGVzdC5weSAgICAgICAgfCAgIDQgKy0KLSAuLi4vc3VpdGVzL3Rscy90bHNfaW1wb3J0 X2NhX2NoYWluX3Rlc3QucHkgICAgfCAgIDIgKy0KLSBzcmMvbGliMzg5L2xpYjM4OS9jZXJ0X21h bmFnZXIucHkgICAgICAgICAgICAgfCAxNDUgKysrKysrCi0gc3JjL2xpYjM4OS9saWIzODkvY2xp X2NvbmYvc2VjdXJpdHkucHkgICAgICAgIHwgMjUyICsrKysrKy0tLS0KLSBzcmMvbGliMzg5L2xp YjM4OS9keW5jZXJ0cy5weSAgICAgICAgICAgICAgICAgfCA0NTggKysrKysrKysrKysrKysrKysr Ci0gc3JjL2xpYjM4OS9saWIzODkvbnNzX3NzbC5weSAgICAgICAgICAgICAgICAgIHwgMTk2ICsr KysrKy0tCi0gc3JjL2xpYjM4OS9saWIzODkvdXRpbHMucHkgICAgICAgICAgICAgICAgICAgIHwg IDc5ICsrLQotIDggZmlsZXMgY2hhbmdlZCwgOTg3IGluc2VydGlvbnMoKyksIDE1NCBkZWxldGlv bnMoLSkKLSBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2xpYjM4OS9saWIzODkvY2VydF9tYW5hZ2Vy LnB5Ci0gY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9saWIzODkvbGliMzg5L2R5bmNlcnRzLnB5Ci0K LWRpZmYgLS1naXQgYS9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvY2x1L2NhX2NlcnRfYnVuZGxl X3Rlc3QucHkgYi9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvY2x1L2NhX2NlcnRfYnVuZGxlX3Rl c3QucHkKLWluZGV4IDFkMmNjYzVhNi4uNDBhYjBlMDkzIDEwMDY0NAotLS0tIGEvZGlyc3J2dGVz dHMvdGVzdHMvc3VpdGVzL2NsdS9jYV9jZXJ0X2J1bmRsZV90ZXN0LnB5Ci0rKysgYi9kaXJzcnZ0 ZXN0cy90ZXN0cy9zdWl0ZXMvY2x1L2NhX2NlcnRfYnVuZGxlX3Rlc3QucHkKLUBAIC04Myw3ICs4 Myw2IEBAIGpCcUxSTVJRTjRGdnp1Q1ppTWwvRHdKdjR5aEFaOGh5bFlqUmpxalkvZkVQdmh2SlJu Y1BWeTh6Ci0gLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotICIiIgotIAotLQotIGRlZiB0ZXN0 X2NhX2NlcnRfYnVuZGxlKHRvcG8pOgotICAgICAiIiJUZXN0IHdlIGNhbiBhZGQgYSBDQVMgY2Vy dGlmaWNhdGUgYnVuZGxlCi0gCi1AQCAtMTA2LDYgKzEwNSw4IEBAIGRlZiB0ZXN0X2NhX2NlcnRf YnVuZGxlKHRvcG8pOgotIAotICAgICAiIiIKLSAgICAgaW5zdCA9IHRvcG8uc3RhbmRhbG9uZQot KyAgICAjIEluaXQgTlNTIERCIGZvciBkeW5jZXJ0cwotKyAgICBpbnN0LmVuYWJsZV90bHMoKQot ICAgICBsYyA9IExvZ0NhcHR1cmUoKQotIAotICAgICAjIENyZWF0ZSBQRU0gZmlsZSB3aXRoIDIg Q0EgY2VydHMKLUBAIC0xMTksNiArMTIwLDggQEAgZGVmIHRlc3RfY2FfY2VydF9idW5kbGUodG9w byk6Ci0gICAgIGFyZ3MgPSBGYWtlQXJncygpCi0gICAgIGFyZ3MubmFtZSA9IFsnQ0FfQ0VSVF8x JywgJ0NBX0NFUlRfMiddCi0gICAgIGFyZ3MuZmlsZSA9IHBlbV9maWxlCi0rICAgICMgQWxsb3cg Q0EgY2VydHMgdGhhdCBmYWlsIHZlcmlmaWNhdGlvbiAoc2VsZi1zaWduZWQpCi0rICAgIGFyZ3Mu Zm9yY2UgPSBUcnVlCi0gICAgIGNhY2VydF9hZGQoaW5zdCwgREVGQVVMVF9TVUZGSVgsIGxvZywg YXJncykKLSAKLSAgICAgIyBMaXN0IENBIGNlcnRzCi1kaWZmIC0tZ2l0IGEvZGlyc3J2dGVzdHMv dGVzdHMvc3VpdGVzL2NsdS9kc2N0bF90bHNfdGVzdC5weSBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1 aXRlcy9jbHUvZHNjdGxfdGxzX3Rlc3QucHkKLWluZGV4IDljZTViNGUyYS4uZGY1NWIwZjgzIDEw MDY0NAotLS0tIGEvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL2NsdS9kc2N0bF90bHNfdGVzdC5w eQotKysrIGIvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL2NsdS9kc2N0bF90bHNfdGVzdC5weQot QEAgLTU3LDExICs1NywxMSBAQCBkZWYgdGVzdF90bHNfY29tbWFuZF9yZXR1cm5zX2Vycm9yX3Rl eHQodG9wbyk6Ci0gICAgICMgZHNjdGwgbG9jYWxob3N0IHRscyBpbXBvcnQtY2EKLSAgICAgdHJ5 OgotICAgICAgICAgaW52YWxpZF9maWxlID0gdG9wby5zdGFuZGFsb25lLmNvbmZkaXIgKyAnL2Rz ZS5sZGlmJwotLSAgICAgICAgdGxzLmFkZF9jZXJ0KG5pY2tuYW1lPSJiYWQiLCBpbnB1dF9maWxl PWludmFsaWRfZmlsZSkKLSsgICAgICAgIHRscy5hZGRfY2VydChuaWNrbmFtZT0iYmFkIiwgY2Vy dF9maWxlPWludmFsaWRfZmlsZSkKLSAgICAgICAgIGFzc2VydCBGYWxzZQotICAgICBleGNlcHQg VmFsdWVFcnJvciBhcyBlOgotICAgICAgICAgYXNzZXJ0ICcyNTUnIG5vdCBpbiBzdHIoZSkKLS0g ICAgICAgIGFzc2VydCAnVW5hYmxlIHRvIGxvYWQgUEVNIGZpbGUnIGluIHN0cihlKQotKyAgICAg ICAgYXNzZXJ0ICdVbmFibGUgdG8gbG9hZCBjZXJ0aWZpY2F0ZScgaW4gc3RyKGUpCi0gCi0gICAg ICMgZHNjdGwgbG9jYWxob3N0IHRscyBpbXBvcnQtc2VydmVyLWNlcnQKLSAgICAgdHJ5OgotZGlm ZiAtLWdpdCBhL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy90bHMvdGxzX2ltcG9ydF9jYV9jaGFp bl90ZXN0LnB5IGIvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL3Rscy90bHNfaW1wb3J0X2NhX2No YWluX3Rlc3QucHkKLWluZGV4IDBiZTNhOWFhYS4uNDcxNDcwM2YwIDEwMDY0NAotLS0tIGEvZGly c3J2dGVzdHMvdGVzdHMvc3VpdGVzL3Rscy90bHNfaW1wb3J0X2NhX2NoYWluX3Rlc3QucHkKLSsr KyBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy90bHMvdGxzX2ltcG9ydF9jYV9jaGFpbl90ZXN0 LnB5Ci1AQCAtMzgsNyArMzgsNyBAQCBkZWYgdGVzdF90bHNfaW1wb3J0X2NoYWluKHRvcG9sb2d5 X3N0KToKLSAgICAgdGxzLnJlaW5pdCgpCi0gCi0gICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1 ZUVycm9yKToKLS0gICAgICAgIHRscy5hZGRfY2VydChuaWNrbmFtZT0nQ0FfQ0hBSU5fMScsIGlu cHV0X2ZpbGU9Q0FfQ0hBSU5fRklMRSkKLSsgICAgICAgIHRscy5hZGRfY2VydChuaWNrbmFtZT0n Q0FfQ0hBSU5fMScsIGNlcnRfZmlsZT1DQV9DSEFJTl9GSUxFKQotIAotICAgICB3aXRoIHB5dGVz dC5yYWlzZXMoVmFsdWVFcnJvcik6Ci0gICAgICAgICB0bHMuaW1wb3J0X3JzYV9jcnQoY3J0PUNS VF9DSEFJTl9GSUxFKQotZGlmZiAtLWdpdCBhL3NyYy9saWIzODkvbGliMzg5L2NlcnRfbWFuYWdl ci5weSBiL3NyYy9saWIzODkvbGliMzg5L2NlcnRfbWFuYWdlci5weQotbmV3IGZpbGUgbW9kZSAx MDA2NDQKLWluZGV4IDAwMDAwMDAwMC4uOTFjOWM5NTJmCi0tLS0gL2Rldi9udWxsCi0rKysgYi9z cmMvbGliMzg5L2xpYjM4OS9jZXJ0X21hbmFnZXIucHkKLUBAIC0wLDAgKzEsMTQ1IEBACi0rIyAt LS0gQkVHSU4gQ09QWVJJR0hUIEJMT0NLIC0tLQotKyMgQ29weXJpZ2h0IChDKSAyMDI2IFJlZCBI YXQsIEluYy4KLSsjIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0rIwotKyMgTGljZW5zZTogR1BMICh2 ZXJzaW9uIDMgb3IgYW55IGxhdGVyIHZlcnNpb24pLgotKyMgU2VlIExJQ0VOU0UgZm9yIGRldGFp bHMuCi0rIyAtLS0gRU5EIENPUFlSSUdIVCBCTE9DSyAtLS0KLSsKLStpbXBvcnQgb3MKLStpbXBv cnQgbG9nZ2luZwotK2Zyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbAotK2Zyb20gbGliMzg5IGlt cG9ydCBEaXJTcnYKLStmcm9tIGxpYjM4OS5uc3Nfc3NsIGltcG9ydCBOc3NTc2wKLStmcm9tIGxp YjM4OS5keW5jZXJ0cyBpbXBvcnQgRHluYW1pY0NlcnRzCi0rZnJvbSBsaWIzODkuY29uZmlnIGlt cG9ydCBSU0EKLSsKLStsb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKLSsKLStjbGFz cyBDZXJ0TWFuYWdlcjoKLSsgICAgIiIiCi0rICAgIENlcnRpZmljYXRlIG1hbmFnZXIgZm9yIDM4 OSBEaXJlY3RvcnkgU2VydmVyLgotKwotKyAgICBBdXRvbWF0aWNhbGx5IHNlbGVjdHMgRHluYW1p Y0NlcnRzIGJhY2tlbmQgaWYgYXZhaWxhYmxlIHZpYSBMREFQSSwKLSsgICAgb3RoZXJ3aXNlIGZh bGxzIGJhY2sgdG8gTlNTIERCLgotKyAgICAiIiIKLSsKLSsgICAgZGVmIF9faW5pdF9fKHNlbGYs IGluc3RhbmNlKToKLSsgICAgICAgICIiIgotKyAgICAgICAgSW5pdGlhbGlzZSBhIENlcnRNYW5h Z2VyIG9iamVjdCwgd2hpY2ggc2VsZWN0cyB0aGUgYXBwcm9wcmlhdGUKLSsgICAgICAgIGNlcnRp ZmljYXRlIGhhbmRsZXIgKER5bmFtaWNDZXJ0IG9yIE5TUykuCi0rCi0rICAgICAgICA6cGFyYW0g aW5zdGFuY2U6IERpclNydiBpbnN0YW5jZQotKyAgICAgICAgOnJhaXNlcyBWYWx1ZUVycm9yOiBJ ZiBpbnN0YW5jZSBpcyBOb25lCi0rICAgICAgICAiIiIKLSsgICAgICAgIGlmIG5vdCBpc2luc3Rh bmNlKGluc3RhbmNlLCBEaXJTcnYpOgotKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkEg RGlyU3J2IGluc3RhbmNlIGlzIHJlcXVpcmVkIikKLSsKLSsgICAgICAgIHNlbGYuZGlyc3J2ID0g aW5zdGFuY2UKLSsKLSsgICAgICAgIGlmIHNlbGYuZGlyc3J2LnN0YXR1cygpOgotKyAgICAgICAg ICAgIHNlbGYuY2VydF9oYW5kbGVyID0gRHluYW1pY0NlcnRzKGluc3RhbmNlPXNlbGYuZGlyc3J2 KQotKyAgICAgICAgZWxzZToKLSsgICAgICAgICAgICBzZWxmLmNlcnRfaGFuZGxlciA9IE5zc1Nz bChkaXJzcnY9c2VsZi5kaXJzcnYpCi0rCi0rICAgICAgICBzZWxmLmNlcnRfaGFuZGxlcl9uYW1l ID0gdHlwZShzZWxmLmNlcnRfaGFuZGxlcikuX19uYW1lX18KLSsKLSsgICAgZGVmIGxpc3RfY2Vy dHMoc2VsZik6Ci0rICAgICAgICAiIiIKLSsgICAgICAgIFJldHVybiBhIGxpc3Qgb2YgYWxsIGNl cnRpZmljYXRlcyBleHBvc2VkIGJ5IHRoZSBiYWNrZW5kLgotKwotKyAgICAgICAgOnJldHVybjog bGlzdCBvZiBjZXJ0aWZpY2F0ZSBkaWN0aW9uYXJpZXMgb3IgdHVwbGVzCi0rICAgICAgICAiIiIK LSsgICAgICAgIHJldHVybiBzZWxmLmNlcnRfaGFuZGxlci5saXN0X2NlcnRzKCkKLSsKLSsgICAg ZGVmIGxpc3RfY2FfY2VydHMoc2VsZik6Ci0rICAgICAgICAiIiIKLSsgICAgICAgIFJldHVybiBh IGxpc3Qgb2YgYWxsIENBIGNlcnRpZmljYXRlcyBleHBvc2VkIGJ5IHRoZSBiYWNrZW5kLgotKwot KyAgICAgICAgOnJldHVybjogbGlzdCBvZiBDQSBjZXJ0aWZpY2F0ZSBkaWN0aW9uYXJpZXMgb3Ig dHVwbGVzCi0rICAgICAgICAiIiIKLSsgICAgICAgIHJldHVybiBzZWxmLmNlcnRfaGFuZGxlci5s aXN0X2NhX2NlcnRzKCkKLSsKLSsgICAgZGVmIGdldF9jZXJ0KHNlbGYsIG5pY2tuYW1lOiBzdHIp OgotKyAgICAgICAgIiIiCi0rICAgICAgICBHZXQgY2VydGlmaWNhdGUgZGV0YWlscyBieSBuaWNr bmFtZS9DTi4KLSsKLSsgICAgICAgIDpwYXJhbSBuaWNrbmFtZTogQ2VydGlmaWNhdGUgbmlja25h bWUKLSsgICAgICAgIDpyZXR1cm46IGJhY2tlbmQgY2VydGlmaWNhdGUgb2JqZWN0IG9yIE5vbmUK LSsgICAgICAgICIiIgotKyAgICAgICAgcmV0dXJuIHNlbGYuY2VydF9oYW5kbGVyLmdldF9jZXJ0 X2RldGFpbHMobmlja25hbWU9bmlja25hbWUpCi0rCi0rICAgIGRlZiBkZWxfY2VydChzZWxmLCBu aWNrbmFtZTogc3RyKToKLSsgICAgICAgICIiIgotKyAgICAgICAgRGVsZXRlIGEgY2VydGlmaWNh dGUgYnkgbmlja25hbWUuCi0rCi0rICAgICAgICA6cGFyYW0gbmlja25hbWU6IENlcnRpZmljYXRl IG5pY2tuYW1lCi0rICAgICAgICA6cmFpc2VzIFZhbHVlRXJyb3I6IElmIHRoZSBuaWNrbmFtZSBp cyBlbXB0eS4KLSsgICAgICAgICIiIgotKyAgICAgICAgaWYgbm90IG5pY2tuYW1lOgotKyAgICAg ICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkNlcnRpZmljYXRlIG5pY2tuYW1lIGNhbm5vdCBiZSBl bXB0eSIpCi0rCi0rICAgICAgICBzZWxmLmNlcnRfaGFuZGxlci5kZWxfY2VydChuaWNrbmFtZSkK LSsKLSsgICAgZGVmIGFkZF9jZXJ0KAotKyAgICAgICAgc2VsZiwKLSsgICAgICAgIGNlcnRfZmls ZTogc3RyLAotKyAgICAgICAgbmlja25hbWU6IHN0ciwKLSsgICAgICAgIHBrY3MxMl9wYXNzd29y ZDogT3B0aW9uYWxbc3RyXSA9IE5vbmUsCi0rICAgICAgICBwcmltYXJ5OiBib29sID0gRmFsc2Us Ci0rICAgICAgICBjYTogYm9vbCA9IEZhbHNlLAotKyAgICAgICAgZm9yY2U6IGJvb2wgPSBGYWxz ZQotKyAgICApOgotKyAgICAgICAgIiIiCi0rICAgICAgICBBZGQgb3IgcmVwbGFjZSBhIGNlcnRp ZmljYXRlLgotKwotKyAgICAgICAgOnBhcmFtIGNlcnRfZmlsZTogUGF0aCB0byBjZXJ0aWZpY2F0 ZSBmaWxlIChQRU0sIERFUiwgb3IgUEtDUyMxMikKLSsgICAgICAgIDpwYXJhbSBuaWNrbmFtZTog Q2VydGlmaWNhdGUgbmlja25hbWUvQ04KLSsgICAgICAgIDpwYXJhbSBwa2NzMTJfcGFzc3dvcmQ6 IFBhc3N3b3JkIGZvciBQS0NTIzEyLCBpZiBhbnkKLSsgICAgICAgIDpwYXJhbSBwcmltYXJ5OiBT ZXQgYXMgdGhlIHNlcnZlcidzIHByaW1hcnkgU1NMIGNlcnRpZmljYXRlCi0rICAgICAgICA6cGFy YW0gY2E6IFdoZXRoZXIgdGhpcyBjZXJ0aWZpY2F0ZSBpcyBhIENBIGNlcnRpZmljYXRlCi0rICAg ICAgICA6cGFyYW0gZm9yY2U6IEZvcmNlIHRoZSBhZGRpdGlvbiBvZiBhIGNlcnRpZmljYXRlIHRo YXQgY2Fubm90IGJlIHZlcmlmaWVkCi0rICAgICAgICA6cmFpc2VzIFZhbHVlRXJyb3I6IElmIGNl cnRfZmlsZSBvciBuaWNrbmFtZSBpcyBpbnZhbGlkCi0rICAgICAgICAiIiIKLSsgICAgICAgIGlm IG5vdCBvcy5wYXRoLmlzZmlsZShjZXJ0X2ZpbGUpOgotKyAgICAgICAgICAgIHJhaXNlIFZhbHVl RXJyb3IoZiJDZXJ0aWZpY2F0ZSBmaWxlIG5vdCBmb3VuZDoge2NlcnRfZmlsZX0iKQotKyAgICAg ICAgaWYgbm90IG5pY2tuYW1lOgotKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkNlcnRp ZmljYXRlIG5pY2tuYW1lIG11c3Qgbm90IGJlIGVtcHR5IikKLSsKLSsgICAgICAgIHNlbGYuY2Vy dF9oYW5kbGVyLmFkZF9jZXJ0KAotKyAgICAgICAgICAgIG5pY2tuYW1lPW5pY2tuYW1lLAotKyAg ICAgICAgICAgIGNlcnRfZmlsZT1jZXJ0X2ZpbGUsCi0rICAgICAgICAgICAgcGtjczEyX3Bhc3N3 b3JkPXBrY3MxMl9wYXNzd29yZCwKLSsgICAgICAgICAgICBjYT1jYSwKLSsgICAgICAgICAgICBm b3JjZT1mb3JjZQotKyAgICAgICAgKQotKwotKyAgICAgICAgaWYgcHJpbWFyeToKLSsgICAgICAg ICAgICB0cnk6Ci0rICAgICAgICAgICAgICAgIFJTQShzZWxmLmRpcnNydikuc2V0KCJuc1NTTFBl cnNvbmFsaXR5U1NMIiwgbmlja25hbWUpCi0rICAgICAgICAgICAgICAgIGxvZy5pbmZvKGYiU2V0 IGNlcnRpZmljYXRlICd7bmlja25hbWV9JyBhcyBwcmltYXJ5IFNTTCBjZXJ0aWZpY2F0ZS4iKQot KyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSsgICAgICAgICAgICAgICAgbG9n LmVycm9yKGYiRmFpbGVkIHRvIHNldCBwcmltYXJ5IFNTTCBjZXJ0ICd7bmlja25hbWV9Jzoge2V9 IikKLSsgICAgICAgICAgICAgICAgcmFpc2UKLSsKLSsgICAgZGVmIGFkZF9jYV9jZXJ0KHNlbGYs IGNlcnRfZmlsZTogc3RyLCBuaWNrbmFtZTogc3RyLCBmb3JjZTogYm9vbCA9IEZhbHNlKToKLSsg ICAgICAgICIiIgotKyAgICAgICAgQWRkIG9uZSBvciBtb3JlIENBIGNlcnRpZmljYXRlcyBmcm9t IGEgUEVNIGJ1bmRsZSBvciBzaW5nbGUgREVSLgotKwotKyAgICAgICAgOnBhcmFtIGNlcnRfZmls ZTogUGF0aCB0byBjZXJ0aWZpY2F0ZSBmaWxlIChQRU0sIERFUikKLSsgICAgICAgIDpwYXJhbSBu aWNrbmFtZTogQ2VydGlmaWNhdGUgbmlja25hbWUKLSsgICAgICAgIDpyYWlzZXMgVmFsdWVFcnJv cjogSWYgZmlsZSBpcyBtaXNzaW5nCi0rICAgICAgICAiIiIKLSsgICAgICAgIGlmIG5vdCBvcy5w YXRoLmV4aXN0cyhjZXJ0X2ZpbGUpOgotKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoZiJD ZXJ0aWZpY2F0ZSBmaWxlIGRvZXMgbm90IGV4aXN0OiB7Y2VydF9maWxlfSIpCi0rCi0rICAgICAg ICBzZWxmLmNlcnRfaGFuZGxlci5hZGRfY2FfY2VydChjZXJ0X2ZpbGUsIG5pY2tuYW1lLCBmb3Jj ZT1mb3JjZSkKLSsKLSsgICAgZGVmIGVkaXRfY2VydF90cnVzdChzZWxmLCBuaWNrbmFtZTogc3Ry LCB0cnVzdF9mbGFnczogc3RyKToKLSsgICAgICAgICIiIgotKyAgICAgICAgRWRpdCB0cnVzdCBm bGFncyBvbiBhbiBleGlzdGluZyBjZXJ0aWZpY2F0ZS4KLSsKLSsgICAgICAgIDpwYXJhbSBuaWNr bmFtZTogQ2VydGlmaWNhdGUgbmlja25hbWUKLSsgICAgICAgIDpwYXJhbSB0cnVzdF9mbGFnczog TlNTIHN0eWxlIHRydXN0IGZsYWcgdHJpcGxldCwgZS5nLiAnQ1QsLCcKLSsgICAgICAgICIiIgot KyAgICAgICAgcmV0dXJuIHNlbGYuY2VydF9oYW5kbGVyLmVkaXRfY2VydF90cnVzdChuaWNrbmFt ZT1uaWNrbmFtZSwgdHJ1c3RfZmxhZ3M9dHJ1c3RfZmxhZ3MpCi1kaWZmIC0tZ2l0IGEvc3JjL2xp YjM4OS9saWIzODkvY2xpX2NvbmYvc2VjdXJpdHkucHkgYi9zcmMvbGliMzg5L2xpYjM4OS9jbGlf Y29uZi9zZWN1cml0eS5weQotaW5kZXggZWJhMTM4ZmViLi4xOGU0NDRjNGMgMTAwNjQ0Ci0tLS0g YS9zcmMvbGliMzg5L2xpYjM4OS9jbGlfY29uZi9zZWN1cml0eS5weQotKysrIGIvc3JjL2xpYjM4 OS9saWIzODkvY2xpX2NvbmYvc2VjdXJpdHkucHkKLUBAIC05LDggKzksMTAgQEAKLSBmcm9tIGNv bGxlY3Rpb25zIGltcG9ydCBPcmRlcmVkRGljdCwgbmFtZWR0dXBsZQotIGltcG9ydCBqc29uCi0g aW1wb3J0IG9zCi0raW1wb3J0IHN5cwotIGZyb20gbGliMzg5LmNvbmZpZyBpbXBvcnQgQ29uZmln LCBFbmNyeXB0aW9uLCBSU0EKLS1mcm9tIGxpYjM4OS5uc3Nfc3NsIGltcG9ydCBOc3NTc2wsIENF UlRfTkFNRSwgQ0FfTkFNRQotK2Zyb20gbGliMzg5Lm5zc19zc2wgaW1wb3J0IE5zc1NzbAotK2Zy b20gbGliMzg5LmNlcnRfbWFuYWdlciBpbXBvcnQgQ2VydE1hbmFnZXIKLSBmcm9tIGxpYjM4OS5j bGlfYmFzZSBpbXBvcnQgX3dhcm4sIEN1c3RvbUhlbHBGb3JtYXR0ZXIKLSAKLSAKLUBAIC0xNDAs NiArMTQyLDUyIEBAIGRlZiBfc2VjdXJpdHlfZ2VuZXJpY190b2dnbGVfcGFyc2VycyhwYXJlbnQs IGNscywgYXR0ciwgaGVscF9wYXR0ZXJuKToKLSAgICAgcmV0dXJuIGxpc3QobWFwKGFkZF9wYXJz ZXIsICgnRW5hYmxlJywgJ0Rpc2FibGUnKSwgKCdvbicsICdvZmYnKSkpCi0gCi0gCi0rZGVmIF9y ZXNvbHZlX3BrY3MxMl9wYXNzd29yZChhcmdzKToKLSsgICAgaWYgYXJncy5wa2NzMTJfcGluX3Rl eHQ6Ci0rICAgICAgICByZXR1cm4gYXJncy5wa2NzMTJfcGluX3RleHQKLSsKLSsgICAgaWYgYXJn cy5wa2NzMTJfcGluX3N0ZGluOgotKyAgICAgICAgcmV0dXJuIHN5cy5zdGRpbi5yZWFkbGluZSgp LnJzdHJpcCgiXG4iKQotKwotKyAgICBpZiBhcmdzLnBrY3MxMl9waW5fcGF0aDoKLSsgICAgICAg IHdpdGggb3BlbihhcmdzLnBrY3MxMl9waW5fcGF0aCkgYXMgZjoKLSsgICAgICAgICAgICByZXR1 cm4gZi5yZWFkKCkucnN0cmlwKCJcbiIpCi0rCi0rICAgIHJldHVybiBOb25lCi0rCi0rZGVmIF9k dW1wX2NlcnQoY2VydCwganNvbl9vdXRwdXQ6IGJvb2wgPSBGYWxzZSwgbG9nID0gTm9uZSk6Ci0r ICAgICIiIgotKyAgICBQcmludCBvciByZXR1cm4gYSBjZXJ0aWZpY2F0ZSdzIGRldGFpbHMgaW4g dGV4dCBvciBKU09OIGZvcm1hdC4KLSsKLSsgICAgOnBhcmFtIGNlcnQ6IGRpY3QgZGVzY3JpYmlu ZyBhIGNlcnRpZmljYXRlCi0rICAgIDpwYXJhbSBqc29uX291dHB1dDogSWYgVHJ1ZSBwcmludCBK U09OIGVsc2UgcHJpbnQgdGV4dAotKyAgICA6cGFyYW0gbG9nOiBPcHRpb25hbCBsb2dnZXIgdG8g b3V0cHV0IHRleHQKLSsgICAgIiIiCi0rICAgIGlmIG5vdCBpc2luc3RhbmNlKGNlcnQsIGRpY3Qp OgotKyAgICAgICAgcmFpc2UgVHlwZUVycm9yKGYiRXhwZWN0ZWQgZGljdCwgZ290IHt0eXBlKGNl cnQpfSIpCi0rCi0rICAgIGlmIGpzb25fb3V0cHV0OgotKyAgICAgICAgcmV0dXJuIHsKLSsgICAg ICAgICAgICAidHlwZSI6ICJjZXJ0aWZpY2F0ZSIsCi0rICAgICAgICAgICAgImF0dHJzIjogewot KyAgICAgICAgICAgICAgICAibmlja25hbWUiOiBjZXJ0WyJjbiJdLAotKyAgICAgICAgICAgICAg ICAic3ViamVjdCI6IGNlcnRbInN1YmplY3QiXSwKLSsgICAgICAgICAgICAgICAgImlzc3VlciI6 IGNlcnRbImlzc3VlciJdLAotKyAgICAgICAgICAgICAgICAiZXhwaXJlcyI6IGNlcnRbImV4cGly ZXMiXSwKLSsgICAgICAgICAgICAgICAgImZsYWdzIjogY2VydFsidHJ1c3RfZmxhZ3MiXSwKLSsg ICAgICAgICAgICB9Ci0rICAgICAgICB9Ci0rICAgIGVsc2U6Ci0rICAgICAgICBtc2cgPSAoCi0r ICAgICAgICAgICAgZiJDZXJ0aWZpY2F0ZSBOYW1lOiB7Y2VydFsnY24nXX1cbiIKLSsgICAgICAg ICAgICBmIlN1YmplY3QgRE46IHtjZXJ0WydzdWJqZWN0J119XG4iCi0rICAgICAgICAgICAgZiJJ c3N1ZXIgRE46IHtjZXJ0Wydpc3N1ZXInXX1cbiIKLSsgICAgICAgICAgICBmIkV4cGlyZXM6IHtj ZXJ0WydleHBpcmVzJ119XG4iCi0rICAgICAgICAgICAgZiJUcnVzdCBGbGFnczoge2NlcnRbJ3Ry dXN0X2ZsYWdzJ119XG4iCi0rICAgICAgICApCi0rICAgICAgICBpZiBsb2c6Ci0rICAgICAgICAg ICAgbG9nLmluZm8obXNnKQotKwotIGRlZiBzZWN1cml0eV9lbmFibGUoaW5zdCwgYmFzZWRuLCBs b2csIGFyZ3MpOgotICAgICBkYnBhdGggPSBpbnN0LmdldF9jZXJ0X2RpcigpCi0gICAgIHRsc2Ri ID0gTnNzU3NsKGRicGF0aD1kYnBhdGgpCi1AQCAtMTUwLDcgKzE5OCw3IEBAIGRlZiBzZWN1cml0 eV9lbmFibGUoaW5zdCwgYmFzZWRuLCBsb2csIGFyZ3MpOgotIAotICAgICBpZiBsZW4oY2VydHMp ID09IDE6Ci0gICAgICAgICAjIElmIHRoZXJlIGlzIG9ubHkgY2VydCBtYWtlIHN1cmUgaXQgaXMg c2V0IGFzIHRoZSBzZXJ2ZXIgY2VydGlmaWNhdGUKLS0gICAgICAgIFJTQShpbnN0KS5zZXQoJ25z U1NMUGVyc29uYWxpdHlTU0wnLCBjZXJ0c1swXVswXSkKLSsgICAgICAgIFJTQShpbnN0KS5zZXQo J25zU1NMUGVyc29uYWxpdHlTU0wnLCBjZXJ0c1swXVsnY24nXSkKLSAgICAgZWxpZiBhcmdzLmNl cnRfbmFtZSBpcyBub3QgTm9uZToKLSAgICAgICAgICMgQSBjZXJ0aWZpY2F0ZSBuaWNrbmFtZSB3 YXMgcHJvdmlkZWQsIHNldCBpdCBhcyB0aGUgc2VydmVyIGNlcnRpZmljYXRlCi0gICAgICAgICBS U0EoaW5zdCkuc2V0KCduc1NTTFBlcnNvbmFsaXR5U1NMJywgYXJncy5jZXJ0X25hbWUpCi1AQCAt MjIyLDI2ICsyNzAsMjcgQEAgZGVmIGNlcnRfYWRkKGluc3QsIGJhc2VkbiwgbG9nLCBhcmdzKToK LSAgICAgaWYgbm90IG9zLnBhdGguaXNmaWxlKGFyZ3MuZmlsZSk6Ci0gICAgICAgICByYWlzZSBW YWx1ZUVycm9yKGYnQ2VydGlmaWNhdGUgZmlsZSAie2FyZ3MuZmlsZX0iIGRvZXMgbm90IGV4aXN0 JykKLSAKLS0gICAgdGxzZGIgPSBOc3NTc2woZGlyc3J2PWluc3QpCi0tICAgIGlmIG5vdCB0bHNk Yi5fZGJfZXhpc3RzKGV2ZW5fcGFydGlhbD1UcnVlKTogICMgd2Ugd2FudCB0byBiZSB2ZXJ5IGNh cmVmdWwKLS0gICAgICAgIGxvZy5pbmZvKCdTZWN1cml0eSBkYXRhYmFzZSBkb2VzIG5vdCBleGlz dC4gQ3JlYXRpbmcgYSBuZXcgb25lIGluIHt9LicuZm9ybWF0KGluc3QuZ2V0X2NlcnRfZGlyKCkp KQotLSAgICAgICAgdGxzZGIucmVpbml0KCkKLS0gICAgdHJ5OgotLSAgICAgICAgdGxzZGIuZ2V0 X2NlcnRfZGV0YWlscyhhcmdzLm5hbWUpCi0tICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJDZXJ0 aWZpY2F0ZSBhbHJlYWR5IGV4aXN0cyB3aXRoIHRoZSBzYW1lIG5hbWUiKQotLSAgICBleGNlcHQg VmFsdWVFcnJvcjoKLS0gICAgICAgIHBhc3MKLS0KLS0gICAgaWYgYXJncy5wcmltYXJ5X2NlcnQ6 Ci0tICAgICAgICAjIFRoaXMgaXMgdGhlIHNlcnZlcidzIHByaW1hcnkgY2VydGlmaWNhdGUsIHVw ZGF0ZSBSU0EgZW50cnkKLS0gICAgICAgIFJTQShpbnN0KS5zZXQoJ25zU1NMUGVyc29uYWxpdHlT U0wnLCBhcmdzLm5hbWUpCi0rICAgIHBrY3MxMl9wYXNzd29yZCA9IE5vbmUKLSsgICAgcGtjczEy X2ZpbGUgPSBhcmdzLmZpbGUubG93ZXIoKS5lbmRzd2l0aCgoIi5wMTIiLCAiLnBmeCIpKQotKyAg ICBpZiBwa2NzMTJfZmlsZToKLSsgICAgICAgIHBrY3MxMl9wYXNzd29yZCA9IF9yZXNvbHZlX3Br Y3MxMl9wYXNzd29yZChhcmdzKQotIAotLSAgICAjIEFkZCB0aGUgY2VydAotLSAgICB0bHNkYi5h ZGRfY2VydChhcmdzLm5hbWUsIGFyZ3MuZmlsZSkKLSsgICAgY2VydG1nciA9IENlcnRNYW5hZ2Vy KGluc3RhbmNlPWluc3QpCi0rICAgIGNlcnQgPSBjZXJ0bWdyLmdldF9jZXJ0KGFyZ3MubmFtZSkK LSsgICAgaWYgY2VydDoKLSsgICAgICAgIGxvZy5pbmZvKGYiQ2VydGlmaWNhdGUgJ3thcmdzLm5h bWV9JyBhbHJlYWR5IGV4aXN0cywgc2tpcHBpbmciKQotKyAgICAgICAgcmV0dXJuCi0gCi0rICAg IGNlcnRtZ3IuYWRkX2NlcnQoCi0rICAgICAgICBhcmdzLmZpbGUsCi0rICAgICAgICBhcmdzLm5h bWUsCi0rICAgICAgICBwa2NzMTJfcGFzc3dvcmQ9cGtjczEyX3Bhc3N3b3JkLAotKyAgICAgICAg cHJpbWFyeT1hcmdzLnByaW1hcnlfY2VydCwKLSsgICAgICAgIGNhPUZhbHNlLAotKyAgICAgICAg Zm9yY2U9YXJncy5mb3JjZQotKyAgICApCi0gICAgIGxvZy5pbmZvKCJTdWNjZXNzZnVsbHkgYWRk ZWQgY2VydGlmaWNhdGUiKQotIAotLQotIGRlZiBjYWNlcnRfYWRkKGluc3QsIGJhc2VkbiwgbG9n LCBhcmdzKToKLSAgICAgIiIiQWRkIENBIGNlcnRpZmljYXRlLCBvciBDQSBjZXJ0aWZpY2F0ZSBi dW5kbGUKLSAgICAgIiIiCi1AQCAtMjQ5LDEwMCArMjk4LDgxIEBAIGRlZiBjYWNlcnRfYWRkKGlu c3QsIGJhc2VkbiwgbG9nLCBhcmdzKToKLSAgICAgaWYgbm90IG9zLnBhdGguaXNmaWxlKGFyZ3Mu ZmlsZSk6Ci0gICAgICAgICByYWlzZSBWYWx1ZUVycm9yKGYnQ2VydGlmaWNhdGUgZmlsZSAie2Fy Z3MuZmlsZX0iIGRvZXMgbm90IGV4aXN0JykKLSAKLS0gICAgdGxzID0gTnNzU3NsKGRpcnNydj1p bnN0KQotLSAgICBpZiBub3QgdGxzLl9kYl9leGlzdHMoZXZlbl9wYXJ0aWFsPVRydWUpOiAgIyB3 ZSB3YW50IHRvIGJlIHZlcnkgY2FyZWZ1bAotLSAgICAgICAgbG9nLmluZm8oJ1NlY3VyaXR5IGRh dGFiYXNlIGRvZXMgbm90IGV4aXN0LiBDcmVhdGluZyBhIG5ldyBvbmUgaW4ge30uJy5mb3JtYXQo aW5zdC5nZXRfY2VydF9kaXIoKSkpCi0tICAgICAgICB0bHMucmVpbml0KCkKLS0KLS0gICAgdGxz LmFkZF9jYV9jZXJ0X2J1bmRsZShhcmdzLmZpbGUsIGFyZ3MubmFtZSkKLSsgICAgIyBEb2VzIGl0 IG1ha2Ugc2Vuc2UgdG8gYWRkIGEgQ0EgY2VydCBmcm9tIHAxMiBjb250YWluZXIgPwotKyAgICBp ZiBhcmdzLmZpbGUubG93ZXIoKS5lbmRzd2l0aCgoIi5wMTIiLCAiLnBmeCIpKToKLSsgICAgICAg IHJhaXNlIFZhbHVlRXJyb3IoIlBLQ1MjMTIgQ0EgY2VydGlmaWNhdGVzIG5vdCBzdXBwb3J0ZWQu IFVzZSBQRU0gb3IgREVSIGZpbGUiKQotIAotKyAgICBjZXJ0bWdyID0gQ2VydE1hbmFnZXIoaW5z dGFuY2U9aW5zdCkKLSsgICAgY2VydG1nci5hZGRfY2FfY2VydChhcmdzLmZpbGUsIGFyZ3MubmFt ZSwgZm9yY2U9YXJncy5mb3JjZSkKLSsgICAgbG9nLmluZm8oIlN1Y2Nlc3NmdWxseSBhZGRlZCBD QSBjZXJ0aWZpY2F0ZSIpCi0gCi0gZGVmIGNlcnRfbGlzdChpbnN0LCBiYXNlZG4sIGxvZywgYXJn cyk6Ci0gICAgICIiIkxpc3QgYWxsIHRoZSBzZXJ2ZXIgY2VydGlmaWNhdGVzCi0gICAgICIiIgot LSAgICBjZXJ0X2xpc3QgPSBbXQotLSAgICB0bHNkYiA9IE5zc1NzbChkaXJzcnY9aW5zdCkKLS0g ICAgY2VydHMgPSB0bHNkYi5saXN0X2NlcnRzKCkKLS0gICAgZm9yIGNlcnQgaW4gY2VydHM6Ci0t ICAgICAgICBpZiBhcmdzLmpzb246Ci0tICAgICAgICAgICAgY2VydF9saXN0LmFwcGVuZCgKLS0g ICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiY2VydGlmaWNh dGUiLAotLSAgICAgICAgICAgICAgICAgICAgImF0dHJzIjogewotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJ25pY2tuYW1lJzogY2VydFswXSwKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICdzdWJqZWN0JzogY2VydFsxXSwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICdpc3N1ZXInOiBjZXJ0WzJdLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJ2V4cGlyZXMnOiBjZXJ0WzNdLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJ2ZsYWdzJzogY2VydFs0XSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAg ICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgKQotLSAgICAgICAgZWxzZToKLS0gICAgICAg ICAgICBsb2cuaW5mbygnQ2VydGlmaWNhdGUgTmFtZToge30nLmZvcm1hdChjZXJ0WzBdKSkKLS0g ICAgICAgICAgICBsb2cuaW5mbygnU3ViamVjdCBETjoge30nLmZvcm1hdChjZXJ0WzFdKSkKLS0g ICAgICAgICAgICBsb2cuaW5mbygnSXNzdWVyIEROOiB7fScuZm9ybWF0KGNlcnRbMl0pKQotLSAg ICAgICAgICAgIGxvZy5pbmZvKCdFeHBpcmVzOiB7fScuZm9ybWF0KGNlcnRbM10pKQotLSAgICAg ICAgICAgIGxvZy5pbmZvKCdUcnVzdCBGbGFnczoge31cbicuZm9ybWF0KGNlcnRbNF0pKQotLSAg ICBpZiBhcmdzLmpzb246Ci0tICAgICAgICBsb2cuaW5mbyhqc29uLmR1bXBzKGNlcnRfbGlzdCwg aW5kZW50PTQpKQotKyAgICBjZXJ0bWdyID0gQ2VydE1hbmFnZXIoaW5zdGFuY2U9aW5zdCkKLSsg ICAgY2VydHMgPSBjZXJ0bWdyLmxpc3RfY2VydHMoKQotKyAgICBpZiBub3QgY2VydHM6Ci0rICAg ICAgICBsb2cuaW5mbygiTm8gY2VydGlmaWNhdGVzIGZvdW5kLiIpCi0rICAgICAgICByZXR1cm4K LSAKLSsgICAgaWYgYXJncy5qc29uOgotKyAgICAgICAgb3V0cHV0ID0gW19kdW1wX2NlcnQoY2Vy dCwganNvbl9vdXRwdXQ9VHJ1ZSkgZm9yIGNlcnQgaW4gY2VydHNdCi0rICAgICAgICBsb2cuaW5m byhqc29uLmR1bXBzKG91dHB1dCwgaW5kZW50PTQpKQotKyAgICBlbHNlOgotKyAgICAgICAgZm9y IGNlcnQgaW4gY2VydHM6Ci0rICAgICAgICAgICAgX2R1bXBfY2VydChjZXJ0LCBqc29uX291dHB1 dD1GYWxzZSwgbG9nPWxvZykKLSAKLSBkZWYgY2FjZXJ0X2xpc3QoaW5zdCwgYmFzZWRuLCBsb2cs IGFyZ3MpOgotICAgICAiIiJMaXN0IGFsbCBDQSBjZXJ0cwotICAgICAiIiIKLS0gICAgY2VydF9s aXN0ID0gW10KLS0gICAgdGxzZGIgPSBOc3NTc2woZGlyc3J2PWluc3QpCi0tICAgIGNlcnRzID0g dGxzZGIubGlzdF9jZXJ0cyhjYT1UcnVlKQotLSAgICBmb3IgY2VydCBpbiBjZXJ0czoKLS0gICAg ICAgIGlmIGFyZ3MuanNvbjoKLS0gICAgICAgICAgICBjZXJ0X2xpc3QuYXBwZW5kKAotLSAgICAg ICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJjZXJ0aWZpY2F0ZSIs Ci0tICAgICAgICAgICAgICAgICAgICAiYXR0cnMiOiB7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAnbmlja25hbWUnOiBjZXJ0WzBdLAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJ3N1YmplY3QnOiBjZXJ0WzFdLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJ2lzc3Vlcic6IGNlcnRbMl0sCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnZXhwaXJlcyc6IGNlcnRbM10sCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn ZmxhZ3MnOiBjZXJ0WzRdLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAg ICAgICAgICAgIH0KLS0gICAgICAgICAgICApCi0tICAgICAgICBlbHNlOgotLSAgICAgICAgICAg IGxvZy5pbmZvKCdDZXJ0aWZpY2F0ZSBOYW1lOiB7fScuZm9ybWF0KGNlcnRbMF0pKQotLSAgICAg ICAgICAgIGxvZy5pbmZvKCdTdWJqZWN0IEROOiB7fScuZm9ybWF0KGNlcnRbMV0pKQotLSAgICAg ICAgICAgIGxvZy5pbmZvKCdJc3N1ZXIgRE46IHt9Jy5mb3JtYXQoY2VydFsyXSkpCi0tICAgICAg ICAgICAgbG9nLmluZm8oJ0V4cGlyZXM6IHt9Jy5mb3JtYXQoY2VydFszXSkpCi0tICAgICAgICAg ICAgbG9nLmluZm8oJ1RydXN0IEZsYWdzOiB7fVxuJy5mb3JtYXQoY2VydFs0XSkpCi0tICAgIGlm IGFyZ3MuanNvbjoKLS0gICAgICAgIGxvZy5pbmZvKGpzb24uZHVtcHMoY2VydF9saXN0LCBpbmRl bnQ9NCkpCi0rICAgIGNlcnRtZ3IgPSBDZXJ0TWFuYWdlcihpbnN0YW5jZT1pbnN0KQotKyAgICBj YV9jZXJ0cyA9IGNlcnRtZ3IubGlzdF9jYV9jZXJ0cygpCi0rICAgIGlmIG5vdCBjYV9jZXJ0czoK LSsgICAgICAgIGxvZy5pbmZvKCJObyBDQSBjZXJ0aWZpY2F0ZXMgZm91bmQuIikKLSsgICAgICAg IHJldHVybgotIAotKyAgICBpZiBhcmdzLmpzb246Ci0rICAgICAgICBvdXRwdXQgPSBbX2R1bXBf Y2VydChjZXJ0LCBqc29uX291dHB1dD1UcnVlKSBmb3IgY2VydCBpbiBjYV9jZXJ0c10KLSsgICAg ICAgIGxvZy5pbmZvKGpzb24uZHVtcHMob3V0cHV0LCBpbmRlbnQ9NCkpCi0rICAgIGVsc2U6Ci0r ICAgICAgICBmb3IgY2VydCBpbiBjYV9jZXJ0czoKLSsgICAgICAgICAgICBfZHVtcF9jZXJ0KGNl cnQsIGpzb25fb3V0cHV0PUZhbHNlLCBsb2c9bG9nKQotIAotIGRlZiBjZXJ0X2dldChpbnN0LCBi YXNlZG4sIGxvZywgYXJncyk6Ci0gICAgICIiIkdldCB0aGUgZGV0YWlscyBhYm91dCBhIHNlcnZl ciBjZXJ0aWZpY2F0ZQotICAgICAiIiIKLS0gICAgdGxzZGIgPSBOc3NTc2woZGlyc3J2PWluc3Qp Ci0tICAgIGRldGFpbHMgPSB0bHNkYi5nZXRfY2VydF9kZXRhaWxzKGFyZ3MubmFtZSkKLSsgICAg Y2VydG1nciA9IENlcnRNYW5hZ2VyKGluc3RhbmNlPWluc3QpCi0rICAgIGNlcnQgPSBjZXJ0bWdy LmdldF9jZXJ0KGFyZ3MubmFtZSkKLSsgICAgaWYgbm90IGNlcnQ6Ci0rICAgICAgICBsb2cuZXJy b3IoZiJDZXJ0aWZpY2F0ZSAne2FyZ3MubmFtZX0nIG5vdCBmb3VuZC4iKQotKyAgICAgICAgcmV0 dXJuCi0rCi0rICAgIGlmICJDIiBpbiBjZXJ0LmdldCgidHJ1c3RfZmxhZ3MiLCAiIik6Ci0rICAg ICAgICByZXR1cm4KLSsKLSAgICAgaWYgYXJncy5qc29uOgotLSAgICAgICAgbG9nLmluZm8oanNv bi5kdW1wcygKLS0gICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgInR5cGUi OiAiY2VydGlmaWNhdGUiLAotLSAgICAgICAgICAgICAgICAgICAgImF0dHJzIjogewotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25pY2tuYW1lJzogZGV0YWlsc1swXSwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzdWJqZWN0JzogZGV0YWlsc1sxXSwKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpc3N1ZXInOiBkZXRhaWxzWzJdLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2V4cGlyZXMnOiBkZXRhaWxzWzNdLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZsYWdzJzogZGV0YWlsc1s0XSwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICB9LCBpbmRlbnQ9NAotLSAg ICAgICAgICAgICkKLS0gICAgICAgICkKLSsgICAgICAgIG91dHB1dCA9IF9kdW1wX2NlcnQoY2Vy dCwganNvbl9vdXRwdXQ9YXJncy5qc29uKQotKyAgICAgICAgbG9nLmluZm8oanNvbi5kdW1wcyhv dXRwdXQsIGluZGVudD00KSkKLSAgICAgZWxzZToKLS0gICAgICAgIGxvZy5pbmZvKCdDZXJ0aWZp Y2F0ZSBOYW1lOiB7fScuZm9ybWF0KGRldGFpbHNbMF0pKQotLSAgICAgICAgbG9nLmluZm8oJ1N1 YmplY3QgRE46IHt9Jy5mb3JtYXQoZGV0YWlsc1sxXSkpCi0tICAgICAgICBsb2cuaW5mbygnSXNz dWVyIEROOiB7fScuZm9ybWF0KGRldGFpbHNbMl0pKQotLSAgICAgICAgbG9nLmluZm8oJ0V4cGly ZXM6IHt9Jy5mb3JtYXQoZGV0YWlsc1szXSkpCi0tICAgICAgICBsb2cuaW5mbygnVHJ1c3QgRmxh Z3M6IHt9Jy5mb3JtYXQoZGV0YWlsc1s0XSkpCi0rICAgICAgICBfZHVtcF9jZXJ0KGNlcnQsIGpz b25fb3V0cHV0PWFyZ3MuanNvbiwgbG9nPWxvZykKLSsKLStkZWYgY2FjZXJ0X2dldChpbnN0LCBi YXNlZG4sIGxvZywgYXJncyk6Ci0rICAgICIiIkdldCB0aGUgZGV0YWlscyBhYm91dCBhIENBIGNl cnRpZmljYXRlCi0rICAgICIiIgotKyAgICBjZXJ0bWdyID0gQ2VydE1hbmFnZXIoaW5zdGFuY2U9 aW5zdCkKLSsgICAgY2VydCA9IGNlcnRtZ3IuZ2V0X2NlcnQoYXJncy5uYW1lKQotKyAgICBpZiBu b3QgY2VydDoKLSsgICAgICAgIGxvZy5lcnJvcihmIkNlcnRpZmljYXRlICd7YXJncy5uYW1lfScg bm90IGZvdW5kLiIpCi0rICAgICAgICByZXR1cm4KLSsKLSsgICAgaWYgIkMiIG5vdCBpbiBjZXJ0 LmdldCgidHJ1c3RfZmxhZ3MiLCAiIik6Ci0rICAgICAgICByZXR1cm4KLSAKLSsgICAgaWYgYXJn cy5qc29uOgotKyAgICAgICAgb3V0cHV0ID0gX2R1bXBfY2VydChjZXJ0LCBqc29uX291dHB1dD1h cmdzLmpzb24pCi0rICAgICAgICBsb2cuaW5mbyhqc29uLmR1bXBzKG91dHB1dCwgaW5kZW50PTQp KQotKyAgICBlbHNlOgotKyAgICAgICAgX2R1bXBfY2VydChjZXJ0LCBqc29uX291dHB1dD1hcmdz Lmpzb24sIGxvZz1sb2cpCi0gCi0gZGVmIGNzcl9saXN0KGluc3QsIGJhc2VkbiwgbG9nLCBhcmdz KToKLSAgICAgIiIiCi1AQCAtNDEyLDE4ICs0NDIsMjAgQEAgZGVmIGNzcl9kZWwoaW5zdCwgYmFz ZWRuLCBsb2csIGFyZ3MpOgotIGRlZiBjZXJ0X2VkaXQoaW5zdCwgYmFzZWRuLCBsb2csIGFyZ3Mp OgotICAgICAiIiJFZGl0IGNlcnQKLSAgICAgIiIiCi0tICAgIHRsc2RiID0gTnNzU3NsKGRpcnNy dj1pbnN0KQotLSAgICB0bHNkYi5lZGl0X2NlcnRfdHJ1c3QoYXJncy5uYW1lLCBhcmdzLmZsYWdz KQotKyAgICBjZXJ0bWdyID0gQ2VydE1hbmFnZXIoaW5zdGFuY2U9aW5zdCkKLSsgICAgY2VydG1n ci5lZGl0X2NlcnRfdHJ1c3QoYXJncy5uYW1lLCBhcmdzLmZsYWdzKQotICAgICBsb2cuaW5mbygi U3VjY2Vzc2Z1bGx5IGVkaXRlZCBjZXJ0aWZpY2F0ZSB0cnVzdCBmbGFncyIpCi0gCi0gCi0gZGVm IGNlcnRfZGVsKGluc3QsIGJhc2VkbiwgbG9nLCBhcmdzKToKLSAgICAgIiIiRGVsZXRlIGNlcnQK LSAgICAgIiIiCi0tICAgIHRsc2RiID0gTnNzU3NsKGRpcnNydj1pbnN0KQotLSAgICB0bHNkYi5k ZWxfY2VydChhcmdzLm5hbWUpCi0tICAgIGxvZy5pbmZvKGYiU3VjY2Vzc2Z1bGx5IGRlbGV0ZWQg Y2VydGlmaWNhdGUiKQotLQotKyAgICBjZXJ0bWdyID0gQ2VydE1hbmFnZXIoaW5zdGFuY2U9aW5z dCkKLSsgICAgdHJ5OgotKyAgICAgICAgY2VydG1nci5kZWxfY2VydChhcmdzLm5hbWUpCi0rICAg ICAgICBsb2cuaW5mbyhmIlN1Y2Nlc3NmdWxseSBkZWxldGVkIGNlcnRpZmljYXRlIikKLSsgICAg ZXhjZXB0IFZhbHVlRXJyb3IgYXMgZToKLSsgICAgICAgIGxvZy5lcnJvcihmIkZhaWxlZCB0byBk ZWxldGUgY2VydGlmaWNhdGUgJ3thcmdzLm5hbWV9Jzoge2V9IikKLSAKLSBkZWYga2V5X2xpc3Qo aW5zdCwgYmFzZWRuLCBsb2csIGFyZ3MpOgotICAgICAiIiIKLUBAIC01MDksNiArNTQxLDExIEBA IGRlZiBjcmVhdGVfcGFyc2VyKHN1YnBhcnNlcnMpOgotICAgICAgICAgaGVscD0nU2V0cyB0aGUg bmFtZS9uaWNrbmFtZSBvZiB0aGUgY2VydGlmaWNhdGUnKQotICAgICBjZXJ0X2FkZF9wYXJzZXIu YWRkX2FyZ3VtZW50KCctLXByaW1hcnktY2VydCcsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iU2V0cyB0aGlzIGNlcnRpZmljYXRl IGFzIHRoZSBzZXJ2ZXIncyBjZXJ0aWZpY2F0ZSIpCi0rICAgIGNlcnRfYWRkX3BhcnNlci5hZGRf YXJndW1lbnQoJy0tcGtjczEyLXBpbi10ZXh0JywgaGVscD0nVGhlIFBLQ1MjMTIgcGFzc3dvcmQg YXMgcGxhaW4gdGV4dC4gV0FSTklORzogUGFzc3dvcmQgbWF5IGFwcGVhcicgXAotKyAgICAgICAg JyBpbiBwcm9jZXNzIGxpc3Qgb3Igc2hlbGwgaGlzdG9yeS4gVXNlIC0tcGtjczEyLXBpbi1zdGRp biBvciAtLXBrY3MxMi1waW4tcGF0aCB0byBwcmV2ZW50IHBhc3N3b3JkIGV4cG9zdXJlLicpCi0r ICAgIGNlcnRfYWRkX3BhcnNlci5hZGRfYXJndW1lbnQoJy0tcGtjczEyLXBpbi1zdGRpbicsIGhl bHA9J1JlYWQgdGhlIFBLQ1MjMTIgcGFzc3dvcmQgZnJvbSBzdGRpbicsIGFjdGlvbj0nc3RvcmVf dHJ1ZScpCi0rICAgIGNlcnRfYWRkX3BhcnNlci5hZGRfYXJndW1lbnQoJy0tcGtjczEyLXBpbi1w YXRoJywgIGhlbHA9J1BhdGggdG8gYSBmaWxlIGNvbnRhaW5pbmcgdGhlIFBLQ1MjMTIgcGFzc3dv cmQnKQotKyAgICBjZXJ0X2FkZF9wYXJzZXIuYWRkX2FyZ3VtZW50KCctLWRvLWl0JywgZGVzdD0i Zm9yY2UiLCBoZWxwPSJGb3JjZSB0aGUgYWRkaXRpb24gb2YgYSBjZXJ0aWZpY2F0ZSB0aGF0IGNh bm5vdCBiZSB2ZXJpZmllZCIsYWN0aW9uPSdzdG9yZV90cnVlJywgZGVmYXVsdD1GYWxzZSkKLSAg ICAgY2VydF9hZGRfcGFyc2VyLnNldF9kZWZhdWx0cyhmdW5jPWNlcnRfYWRkKQotIAotICAgICBj ZXJ0X2VkaXRfcGFyc2VyID0gY2VydHNfc3ViLmFkZF9wYXJzZXIoJ3NldC10cnVzdC1mbGFncycs IGhlbHA9J1NldCB0aGUgVHJ1c3QgZmxhZ3MnLAotQEAgLTUxOSw3ICs1NTYsNyBAQCBkZWYgY3Jl YXRlX3BhcnNlcihzdWJwYXJzZXJzKToKLSAgICAgY2VydF9lZGl0X3BhcnNlci5zZXRfZGVmYXVs dHMoZnVuYz1jZXJ0X2VkaXQpCi0gCi0gICAgIGNlcnRfZGVsX3BhcnNlciA9IGNlcnRzX3N1Yi5h ZGRfcGFyc2VyKCdkZWwnLCBoZWxwPSdEZWxldGUgYSBjZXJ0aWZpY2F0ZScsCi0tICAgICAgICBk ZXNjcmlwdGlvbj0oJ0RlbGV0ZSBhIGNlcnRpZmljYXRlIGZyb20gdGhlIE5TUyBkYXRhYmFzZScp KQotKyAgICAgICAgZGVzY3JpcHRpb249KCdEZWxldGUgYSBzZXJ2ZXIgY2VydGlmaWNhdGUgZnJv bSB0aGUgTlNTIGRhdGFiYXNlIG9yIER5bmFtaWNDZXJ0cyBiYWNrZW5kLicpKQotICAgICBjZXJ0 X2RlbF9wYXJzZXIuYWRkX2FyZ3VtZW50KCduYW1lJywgaGVscD0nVGhlIG5hbWUvbmlja25hbWUg b2YgdGhlIGNlcnRpZmljYXRlJykKLSAgICAgY2VydF9kZWxfcGFyc2VyLnNldF9kZWZhdWx0cyhm dW5jPWNlcnRfZGVsKQotIAotQEAgLTUyOSwxOSArNTY2LDIwIEBAIGRlZiBjcmVhdGVfcGFyc2Vy KHN1YnBhcnNlcnMpOgotICAgICBjZXJ0X2dldF9wYXJzZXIuc2V0X2RlZmF1bHRzKGZ1bmM9Y2Vy dF9nZXQpCi0gCi0gICAgIGNlcnRfbGlzdF9wYXJzZXIgPSBjZXJ0c19zdWIuYWRkX3BhcnNlcign bGlzdCcsIGhlbHA9J0xpc3QgdGhlIHNlcnZlciBjZXJ0aWZpY2F0ZXMnLAotLSAgICAgICAgZGVz Y3JpcHRpb249KCdMaXN0cyB0aGUgc2VydmVyIGNlcnRpZmljYXRlcyBpbiB0aGUgTlNTIGRhdGFi YXNlJykpCi0rICAgICAgICBkZXNjcmlwdGlvbj0oJ0xpc3QgYWxsIHNlcnZlciBjZXJ0aWZpY2F0 ZXMgaW4gdGhlIE5TUyBkYXRhYmFzZSBvciBEeW5hbWljQ2VydHMgYmFja2VuZC4nKSkKLSAgICAg Y2VydF9saXN0X3BhcnNlci5zZXRfZGVmYXVsdHMoZnVuYz1jZXJ0X2xpc3QpCi0gCi0gICAgICMg Q0EgY2VydGlmaWNhdGUgbWFuYWdlbWVudAotICAgICBjYWNlcnRzID0gc2VjdXJpdHlfc3ViLmFk ZF9wYXJzZXIoJ2NhLWNlcnRpZmljYXRlJywgaGVscD0nTWFuYWdlIFRMUyBjZXJ0aWZpY2F0ZSBh dXRob3JpdGllcycsIGZvcm1hdHRlcl9jbGFzcz1DdXN0b21IZWxwRm9ybWF0dGVyKQotICAgICBj YWNlcnRzX3N1YiA9IGNhY2VydHMuYWRkX3N1YnBhcnNlcnMoaGVscD0nY2EtY2VydGlmaWNhdGUn KQotICAgICBjYWNlcnRfYWRkX3BhcnNlciA9IGNhY2VydHNfc3ViLmFkZF9wYXJzZXIoJ2FkZCcs IGhlbHA9J0FkZCBhIENlcnRpZmljYXRlIEF1dGhvcml0eScsIGRlc2NyaXB0aW9uPSgKLS0gICAg ICAgICdBZGQgYSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgdG8gdGhlIE5TUyBkYXRhYmFzZScpKQot KyAgICAgICAgJ0FkZCBhIENBIGNlcnRpZmljYXRlIChQRU0gb3IgREVSIG9ubHkpIHRvIHRoZSBO U1MgZGF0YWJhc2Ugb3IgRHluYW1pY0NlcnRzIGJhY2tlbmQuJykpCi0gICAgIGNhY2VydF9hZGRf cGFyc2VyLmFkZF9hcmd1bWVudCgnLS1maWxlJywgcmVxdWlyZWQ9VHJ1ZSwKLS0gICAgICAgIGhl bHA9J1NldHMgdGhlIGZpbGUgbmFtZSBvZiB0aGUgQ0EgY2VydGlmaWNhdGUnKQotLSAgICBjYWNl cnRfYWRkX3BhcnNlci5hZGRfYXJndW1lbnQoJy0tbmFtZScsIG5hcmdzPScrJywgcmVxdWlyZWQ9 VHJ1ZSwKLS0gICAgICAgIGhlbHA9J1NldHMgdGhlIG5hbWUvbmlja25hbWUgb2YgdGhlIENBIGNl cnRpZmljYXRlLCBpZiBhZGRpbmcgYSBQRU0gYnVuZGxlIHRoZW4gc3BlY2lmeSBtdWx0aXBsZSBu YW1lcyBvbmUgZm9yICcKLSsgICAgICAgIGhlbHA9J1BhdGggdG8gdGhlIENBIGNlcnRpZmljYXRl IGZpbGUgKFBFTSBvciBERVIpLiBJZiBhZGRpbmcgYSBQRU0gYnVuZGxlIHRoZW4gc3BlY2lmeSBt dWx0aXBsZSBuYW1lcyBvbmUgZm9yICcKLSAgICAgICAgICAgICAgJ2VhY2ggY2VydGlmaWNhdGUs IG90aGVyd2lzZSBhIG51bWJlciBpbmNyZW1lbnQgd2lsbCBiZSBhZGRlZCB0byB0aGUgcHJldmlv dXMgbmFtZS4nKQotKyAgICBjYWNlcnRfYWRkX3BhcnNlci5hZGRfYXJndW1lbnQoJy0tbmFtZScs IG5hcmdzPScrJywgcmVxdWlyZWQ9VHJ1ZSwKLSsgICAgICAgIGhlbHA9J1NldHMgdGhlIG5hbWUv bmlja25hbWUgb2YgdGhlIENBIGNlcnRpZmljYXRlJykKLSsgICAgY2FjZXJ0X2FkZF9wYXJzZXIu YWRkX2FyZ3VtZW50KCctLWRvLWl0JywgZGVzdD0iZm9yY2UiLCBoZWxwPSJGb3JjZSB0aGUgYWRk aXRpb24gb2YgYSBjZXJ0aWZpY2F0ZSB0aGF0IGNhbm5vdCBiZSB2ZXJpZmllZCIsYWN0aW9uPSdz dG9yZV90cnVlJywgZGVmYXVsdD1GYWxzZSkKLSAgICAgY2FjZXJ0X2FkZF9wYXJzZXIuc2V0X2Rl ZmF1bHRzKGZ1bmM9Y2FjZXJ0X2FkZCkKLSAKLSAgICAgY2FjZXJ0X2VkaXRfcGFyc2VyID0gY2Fj ZXJ0c19zdWIuYWRkX3BhcnNlcignc2V0LXRydXN0LWZsYWdzJywgaGVscD0nU2V0IHRoZSBUcnVz dCBmbGFncycsCi1AQCAtNTU5LDcgKzU5Nyw3IEBAIGRlZiBjcmVhdGVfcGFyc2VyKHN1YnBhcnNl cnMpOgotICAgICBjYWNlcnRfZ2V0X3BhcnNlciA9IGNhY2VydHNfc3ViLmFkZF9wYXJzZXIoJ2dl dCcsIGhlbHA9IkRpc3BsYXlzIGEgQ2VydGlmaWNhdGUgQXV0aG9yaXR5J3MgaW5mb3JtYXRpb24i LAotICAgICAgICAgZGVzY3JpcHRpb249KCdHZXQgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQg YSBDQSBjZXJ0aWZpY2F0ZSwgbGlrZSB0cnVzdCBhdHRyaWJ1dGVzLCBleHBpcmF0aW9uIGRhdGVz LCBTdWJqZWN0IGFuZCBJc3N1ZXIgRE4nKSkKLSAgICAgY2FjZXJ0X2dldF9wYXJzZXIuYWRkX2Fy Z3VtZW50KCduYW1lJywgaGVscD0nVGhlIG5hbWUvbmlja25hbWUgb2YgdGhlIENBIGNlcnRpZmlj YXRlJykKLS0gICAgY2FjZXJ0X2dldF9wYXJzZXIuc2V0X2RlZmF1bHRzKGZ1bmM9Y2VydF9nZXQp Ci0rICAgIGNhY2VydF9nZXRfcGFyc2VyLnNldF9kZWZhdWx0cyhmdW5jPWNhY2VydF9nZXQpCi0g Ci0gICAgIGNhY2VydF9saXN0X3BhcnNlciA9IGNhY2VydHNfc3ViLmFkZF9wYXJzZXIoJ2xpc3Qn LCBoZWxwPSdMaXN0IHRoZSBDZXJ0aWZpY2F0ZSBBdXRob3JpdGllcycsCi0gICAgICAgICBkZXNj cmlwdGlvbj0oJ0xpc3QgdGhlIENBIGNlcnRpZmljYXRlcyBpbiB0aGUgTlNTIGRhdGFiYXNlJykp Ci1kaWZmIC0tZ2l0IGEvc3JjL2xpYjM4OS9saWIzODkvZHluY2VydHMucHkgYi9zcmMvbGliMzg5 L2xpYjM4OS9keW5jZXJ0cy5weQotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAw MC4uMjJlMWE5YTM2Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9zcmMvbGliMzg5L2xpYjM4OS9keW5j ZXJ0cy5weQotQEAgLTAsMCArMSw0NTggQEAKLSsjIC0tLSBCRUdJTiBDT1BZUklHSFQgQkxPQ0sg LS0tCi0rIyBDb3B5cmlnaHQgKEMpIDIwMjYgUmVkIEhhdCwgSW5jLgotKyMgQWxsIHJpZ2h0cyBy ZXNlcnZlZC4KLSsjCi0rIyBMaWNlbnNlOiBHUEwgKHZlcnNpb24gMyBvciBhbnkgbGF0ZXIgdmVy c2lvbikuCi0rIyBTZWUgTElDRU5TRSBmb3IgZGV0YWlscy4KLSsjIC0tLSBFTkQgQ09QWVJJR0hU IEJMT0NLIC0tLQotKwotK2ltcG9ydCBkYXRldGltZQotK2ltcG9ydCBvcwotK2ltcG9ydCBsZGFw Ci0raW1wb3J0IGxvZ2dpbmcKLStpbXBvcnQgcmUKLStpbXBvcnQgdGVtcGZpbGUKLStmcm9tIHR5 cGluZyBpbXBvcnQgT3B0aW9uYWwKLStmcm9tIGxpYjM4OS5fbWFwcGVkX29iamVjdCBpbXBvcnQg RFNMZGFwT2JqZWN0cywgRFNMZGFwT2JqZWN0Ci0rZnJvbSBsaWIzODkudXRpbHMgaW1wb3J0IGNl cnRfaXNfY2EsIHBlbV90b19kZXIsIGlzX3BlbV9jZXJ0LCBlbnN1cmVfc3RyCi0rZnJvbSBjcnlw dG9ncmFwaHkgaW1wb3J0IHg1MDkKLStmcm9tIGNyeXB0b2dyYXBoeS5oYXptYXQuYmFja2VuZHMg aW1wb3J0IGRlZmF1bHRfYmFja2VuZAotK2Zyb20gY3J5cHRvZ3JhcGh5Lmhhem1hdC5wcmltaXRp dmVzIGltcG9ydCBzZXJpYWxpemF0aW9uCi0rZnJvbSBjcnlwdG9ncmFwaHkuaGF6bWF0LnByaW1p dGl2ZXMuc2VyaWFsaXphdGlvbiBpbXBvcnQgcGtjczEyCi0rCi0rbG9nID0gbG9nZ2luZy5nZXRM b2dnZXIoX19uYW1lX18pCi0rCi0rRFlDQVRUUl9DTiAgICA9ICJjbiIKLStEWU5DRVJUX1NVRkZJ WCA9ICJjbj1keW5hbWljY2VydGlmaWNhdGVzIgotKwotK0RZQ0FUVFJfUFJFRklYICAgICAgPSAi ZHNkeW5hbWljY2VydGlmaWNhdGUiCi0rRFlDQVRUUl9DRVJUREVSICAgICA9IERZQ0FUVFJfUFJF RklYICsgImRlciIKLStEWUNBVFRSX1BLRVlERVIgICAgID0gRFlDQVRUUl9QUkVGSVggKyAicHJp dmF0ZWtleWRlciIKLStEWUNBVFRSX1NVQkpFQ1QgICAgID0gRFlDQVRUUl9QUkVGSVggKyAic3Vi amVjdCIKLStEWUNBVFRSX0lTU1VFUiAgICAgID0gRFlDQVRUUl9QUkVGSVggKyAiaXNzdWVyIgot K0RZQ0FUVFJfVFJVU1QgICAgICAgPSBEWUNBVFRSX1BSRUZJWCArICJ0cnVzdGZsYWdzIgotK0RZ Q0FUVFJfTk9UQUZURVIgICAgPSBEWUNBVFRSX1BSRUZJWCArICJub3RhZnRlciIKLStEWUNBVFRS X0ZPUkNFCSAgICA9IERZQ0FUVFJfUFJFRklYICsgIkZvcmNlIgotK0RZQ0FUVFJfSVNDQSAgICAg ICAgPSBEWUNBVFRSX1BSRUZJWCArICJJc0NBIgotKwotK0NBX05BTUUgPSAnU2VsZi1TaWduZWQt Q0EnCi0rQ0VSVF9OQU1FID0gJ1NlcnZlci1DZXJ0JwotKwotK2NsYXNzIER5bmFtaWNDZXJ0KERT TGRhcE9iamVjdCk6Ci0rICAgICIiIgotKyAgICBSZXByZXNlbnRzIGEgc2luZ2xlIER5bmFtaWND ZXJ0IExEQVAgZW50cnkuCi0rICAgICIiIgotKwotKyAgICBfbXVzdF9hdHRyaWJ1dGVzID0gW0RZ Q0FUVFJfQ05dCi0rCi0rICAgIGRlZiBfX2luaXRfXyhzZWxmLCBpbnN0YW5jZSwgZG46IE9wdGlv bmFsW3N0cl0gPSBOb25lKToKLSsgICAgICAgICIiIgotKyAgICAgICAgSW5pdGlhbGlzZSBhIER5 bmFtaWNDZXJ0IG9iamVjdC4KLSsKLSsgICAgICAgIDpwYXJhbSBpbnN0YW5jZTogRGlyU3J2IGlu c3RhbmNlCi0rICAgICAgICA6cGFyYW0gZG46IEVudHJ5IGRpc3Rpbmd1aXNoZWQgbmFtZSAoRE4p Ci0rICAgICAgICAiIiIKLSsgICAgICAgIHN1cGVyKER5bmFtaWNDZXJ0LCBzZWxmKS5fX2luaXRf XyhpbnN0YW5jZSwgZG4pCi0rICAgICAgICBzZWxmLl9yZG5fYXR0cmlidXRlID0gRFlDQVRUUl9D TgotKyAgICAgICAgc2VsZi5fY3JlYXRlX29iamVjdGNsYXNzZXMgPSBbInRvcCIsICJleHRlbnNp YmxlT2JqZWN0Il0KLSsgICAgICAgIHNlbGYuX3Byb3RlY3RlZCA9IEZhbHNlCi0rICAgICAgICBz ZWxmLl9iYXNlZG4gPSBEWU5DRVJUX1NVRkZJWAotKwotKyAgICBkZWYgX25vcm1hbGlzZV90aW1l c3RhbXAoc2VsZiwgcmF3OiBzdHIpOgotKyAgICAgICAgIiIiCi0rICAgICAgICBDb252ZXJ0IER5 bmFtaWNDZXJ0IHRpbWVzdGFtcCB0byBOU1MgbGlrZSBmb3JtYXQuCi0rCi0rICAgICAgICA6cGFy YW0gcmF3OiBSYXcgRHluYW1pY0NlcnQgdGltZXN0YW1wIChlLmcuIDIwMjYwMTA5MTgxOTM0WikK LSsgICAgICAgIDpyZXR1cm46IEZvcm1hdHRlZCB0aW1lc3RhbXAgYXMgIllZWVktTU0tREQgSEg6 TU06U1MiLCBvciBvcmlnaW5hbCBzdHJpbmcKLSsgICAgICAgICIiIgotKyAgICAgICAgdHJ5Ogot KyAgICAgICAgICAgIHllYXIgICA9IGludChyYXdbMDo0XSkKLSsgICAgICAgICAgICBtb250aCAg PSBpbnQocmF3WzQ6Nl0pICsgMSAgIyBQUkV4cGxvZGVkVGltZS50bV9tb250aCBpcyAw4oCTMTEK LSsgICAgICAgICAgICBkYXkgICAgPSBpbnQocmF3WzY6OF0pCi0rICAgICAgICAgICAgaG91ciAg ID0gaW50KHJhd1s4OjEwXSkKLSsgICAgICAgICAgICBtaW51dGUgPSBpbnQocmF3WzEwOjEyXSkK LSsgICAgICAgICAgICBzZWNvbmQgPSBpbnQocmF3WzEyOjE0XSkKLSsgICAgICAgICAgICByZXR1 cm4gZGF0ZXRpbWUuZGF0ZXRpbWUoeWVhciwgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNv bmQpLnN0cmZ0aW1lKCIlWS0lbS0lZCAlSDolTTolUyIpCi0rICAgICAgICBleGNlcHQgRXhjZXB0 aW9uOgotKyAgICAgICAgICAgIHJldHVybiByYXcKLSsKLSsgICAgZGVmIGRlbF9jZXJ0KHNlbGYp OgotKyAgICAgICAgIiIiCi0rICAgICAgICBEZWxldGUgdGhpcyBEeW5hbWljQ2VydCBlbnRyeSBm cm9tIExEQVAuCi0rCi0rICAgICAgICA6cmFpc2VzIFZhbHVlRXJyb3I6IElmIHRoZSBEeW5hbWlj Q2VydCBvYmplY3QgZG9lcyBub3QgaGF2ZSBhIEROCi0rICAgICAgICA6cmFpc2VzIGxkYXAuTERB UEVycm9yOiBJZiBhbiBMREFQIG9wZXJhdGlvbiBmYWlscyAob3RoZXIgdGhhbiBOT19TVUNIX09C SkVDVCkKLSsgICAgICAgICIiIgotKyAgICAgICAgaWYgbm90IHNlbGYuX2RuOgotKyAgICAgICAg ICAgIHJhaXNlIFZhbHVlRXJyb3IoIkNhbm5vdCBkZWxldGUgRHluYW1pY0NlcnQgd2l0aG91dCBh IEROIikKLSsKLSsgICAgICAgIHRyeToKLSsgICAgICAgICAgICBzZWxmLmRlbGV0ZSgpCi0rICAg ICAgICBleGNlcHQgbGRhcC5OT19TVUNIX09CSkVDVDoKLSsgICAgICAgICAgICBsb2cud2Fybmlu ZyhmIkR5bmFtaWNDZXJ0IGFscmVhZHkgZGVsZXRlZDoge3NlbGYuX2RufSIpCi0rICAgICAgICBl eGNlcHQgbGRhcC5MREFQRXJyb3IgYXMgZToKLSsgICAgICAgICAgICBsb2cuZXJyb3IoZiJGYWls ZWQgdG8gZGVsZXRlIER5bmFtaWNDZXJ0OiB7c2VsZi5fZG59OiB7ZX0iKQotKyAgICAgICAgICAg IHJhaXNlCi0rCi0rICAgIGRlZiBlZGl0X3RydXN0KHNlbGYsIHRydXN0X2ZsYWdzOiBzdHIpOgot KyAgICAgICAgIiIiCi0rICAgICAgICBFZGl0IGNlcnRpZmljYXRlIHRydXN0IGZsYWdzLgotKwot KyAgICAgICAgOnBhcmFtIHRydXN0X2ZsYWdzOiBDb21tYSBzZXBhcmF0ZWQgdHJ1c3QgZmxhZ3Mg c3RyaW5nIChTU0wsRW1haWwsT2JqZWN0U2lnbmluZykKLSsgICAgICAgIDpyYWlzZXMgVmFsdWVF cnJvcjogSWYgdHJ1c3QgZmxhZ3MgYXJlIGludmFsaWQgb3IgZW1wdHkKLSsgICAgICAgICIiIgot KyAgICAgICAgaWYgbm90IHRydXN0X2ZsYWdzOgotKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy b3IoIlRydXN0IGZsYWdzIGNhbm5vdCBiZSBlbXB0eSIpCi0rCi0rICAgICAgICB0cnVzdF9maWVs ZHMgPSB0cnVzdF9mbGFncy5zdHJpcCgpLnNwbGl0KCIsIikKLSsKLSsgICAgICAgIGlmIGxlbih0 cnVzdF9maWVsZHMpICE9IDM6Ci0rICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiVHJ1c3Qg ZmxhZ3MgbXVzdCBoYXZlIDMgY29tbWEgc2VwYXJhdGVkIGZpZWxkcyIpCi0rCi0rICAgICAgICAj IEFsbG93ZWQgZmllbGQgdmFsdWVzIChOU1MpCi0rICAgICAgICB2YWxpZF9mbGFncyA9IHNldCgi cFBjQ1R1IikKLSsgICAgICAgIGZvciBmaWVsZCBpbiB0cnVzdF9maWVsZHM6Ci0rICAgICAgICAg ICAgaWYgZmllbGQgYW5kIGFueShmbGFnIG5vdCBpbiB2YWxpZF9mbGFncyBmb3IgZmxhZyBpbiBm aWVsZCk6Ci0rICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoZiJJbnZhbGlkIGNoYXJh Y3RlcnMgaW4gdHJ1c3QgZmxhZ3M6ICd7dHJ1c3RfZmxhZ3N9JyIpCi0rCi0rICAgICAgICB0cnk6 Ci0rICAgICAgICAgICAgc2VsZi5yZXBsYWNlKERZQ0FUVFJfVFJVU1QsIHRydXN0X2ZsYWdzKQot KyAgICAgICAgZXhjZXB0IGxkYXAuTERBUEVycm9yIGFzIGU6Ci0rICAgICAgICAgICAgbG9nLmVy cm9yKGYiRmFpbGVkIHRvIHVwZGF0ZSB0cnVzdCBmbGFncyBmb3Ige3NlbGYuX2RufToge2V9IikK LSsgICAgICAgICAgICByYWlzZQotKwotK2NsYXNzIER5bmFtaWNDZXJ0cyhEU0xkYXBPYmplY3Rz KToKLSsgICAgIiIiCi0rICAgIENvbGxlY3Rpb24gb2YgRHluYW1pY0NlcnQgZW50cmllcyB1bmRl ciBjbj1keW5hbWljY2VydGlmaWNhdGVzLgotKyAgICAiIiIKLSsKLSsgICAgZGVmIF9faW5pdF9f KHNlbGYsIGluc3RhbmNlKToKLSsgICAgICAgICIiIgotKyAgICAgICAgSW5pdGlhbGlzZSB0aGUg RHluYW1pY0NlcnRzIGNvbGxlY3Rpb24uCi0rCi0rICAgICAgICA6cGFyYW0gaW5zdGFuY2U6IERp clNydiBpbnN0YW5jZQotKyAgICAgICAgIiIiCi0rICAgICAgICBzdXBlcihEeW5hbWljQ2VydHMs IHNlbGYpLl9faW5pdF9fKGluc3RhbmNlPWluc3RhbmNlKQotKyAgICAgICAgc2VsZi5fb2JqZWN0 Y2xhc3NlcyA9IFsiZXh0ZW5zaWJsZU9iamVjdCJdCi0rICAgICAgICBzZWxmLl9maWx0ZXJhdHRy cyA9IFtEWUNBVFRSX0NOLCBEWUNBVFRSX1NVQkpFQ1QsIERZQ0FUVFJfSVNTVUVSXQotKyAgICAg ICAgc2VsZi5fY2hpbGRvYmplY3QgPSBEeW5hbWljQ2VydAotKyAgICAgICAgc2VsZi5fYmFzZWRu ID0gRFlOQ0VSVF9TVUZGSVgKLSsKLSsgICAgZGVmIGFkZF9jZXJ0KHNlbGYsCi0rICAgICAgICAg ICAgICAgICBjZXJ0X2ZpbGU6IHN0ciwKLSsgICAgICAgICAgICAgICAgIG5pY2tuYW1lOiBzdHIs Ci0rICAgICAgICAgICAgICAgICBwa2NzMTJfcGFzc3dvcmQ6IE9wdGlvbmFsW3N0cl0gPSBOb25l LAotKyAgICAgICAgICAgICAgICAgY2E6IGJvb2wgPSBGYWxzZSwKLSsgICAgICAgICAgICAgICAg IGZvcmNlOiBib29sID0gRmFsc2UsCi0rICAgICk6Ci0rICAgICAgICAiIiIKLSsgICAgICAgIEFk ZCBvciB1cGRhdGUgYSBjZXJ0aWZpY2F0ZSAoUEVNLCBERVIsIG9yIFBLQ1MjMTIpLgotKwotKyAg ICAgICAgOnBhcmFtIGNlcnRfZmlsZTogUGF0aCB0byBjZXJ0aWZpY2F0ZSBmaWxlIChQRU0sIERF Uiwgb3IgUEtDUyMxMikKLSsgICAgICAgIDpwYXJhbSBuaWNrbmFtZTogQ2VydGlmaWNhdGUgbmlj a25hbWUKLSsgICAgICAgIDpwYXJhbSBwa2NzMTJfcGFzc3dvcmQ6IFBhc3N3b3JkIGZvciBQS0NT IzEyLCBpZiBhbnkKLSsgICAgICAgIDpwYXJhbSBjYTogV2hldGhlciB0aGlzIGNlcnRpZmljYXRl IGlzIGEgQ0EgY2VydGlmaWNhdGUKLSsgICAgICAgIDpwYXJhbSBmb3JjZTogRm9yY2UgdGhlIGFk ZGl0aW9uIG9mIGEgY2VydGlmaWNhdGUgdGhhdCBjYW5ub3QgYmUgdmVyaWZpZWQKLSsgICAgICAg ICIiIgotKyAgICAgICAgaWYgbm90IG5pY2tuYW1lOgotKyAgICAgICAgICAgIHJhaXNlIFZhbHVl RXJyb3IoIkNlcnRpZmljYXRlIENOIGNhbm5vdCBiZSBlbXB0eSIpCi0rCi0rICAgICAgICBpZiBu b3Qgb3MucGF0aC5pc2ZpbGUoY2VydF9maWxlKToKLSsgICAgICAgICAgICByYWlzZSBWYWx1ZUVy cm9yKGYiQ2VydGlmaWNhdGUgZmlsZSBkb2VzIG5vdCBleGlzdDoge2NlcnRfZmlsZX0iKQotKwot KyAgICAgICAgaWYgcGtjczEyX3Bhc3N3b3JkIGFuZCBub3QgaXNpbnN0YW5jZShwa2NzMTJfcGFz c3dvcmQsIHN0cik6Ci0rICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJQS0NTIzEyIHBhc3N3 b3JkIG11c3QgYmUgYSBzdHJpbmciKQotKwotKyAgICAgICAgd2l0aCBvcGVuKGNlcnRfZmlsZSwg InJiIikgYXMgZjoKLSsgICAgICAgICAgICBjZXJ0X2J5dGVzID0gZi5yZWFkKCkKLSsKLSsgICAg ICAgIGRlcl9jZXJ0ID0gTm9uZQotKyAgICAgICAgZGVyX3ByaXZrZXkgPSBOb25lCi0rCi0rICAg ICAgICBpZiBjZXJ0X2ZpbGUubG93ZXIoKS5lbmRzd2l0aCgoIi5wMTIiLCAiLnBmeCIpKToKLSsg ICAgICAgICAgICB0cnk6Ci0rICAgICAgICAgICAgICAgIHByaXZrZXksIGNlcnQsIF8gPSBwa2Nz MTIubG9hZF9rZXlfYW5kX2NlcnRpZmljYXRlcygKLSsgICAgICAgICAgICAgICAgICAgIGNlcnRf Ynl0ZXMsIHBrY3MxMl9wYXNzd29yZC5lbmNvZGUoKSBpZiBwa2NzMTJfcGFzc3dvcmQgZWxzZSBO b25lLAotKyAgICAgICAgICAgICAgICAgICAgYmFja2VuZD1kZWZhdWx0X2JhY2tlbmQoKQotKyAg ICAgICAgICAgICAgICApCi0rICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotKyAg ICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKGYiRmFpbGVkIHRvIGxvYWQgUEtDUyMxMiBm aWxlOiB7Y2VydF9maWxlfToge2V9IikKLSsKLSsgICAgICAgICAgICBpZiBjZXJ0IGlzIE5vbmU6 Ci0rICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlBLQ1MjMTIgZmlsZSBjb250YWlu cyBubyBjZXJ0aWZpY2F0ZSIpCi0rCi0rICAgICAgICAgICAgZGVyX2NlcnQgPSBjZXJ0LnB1Ymxp Y19ieXRlcyhzZXJpYWxpemF0aW9uLkVuY29kaW5nLkRFUikKLSsgICAgICAgICAgICBpZiBwcml2 a2V5IGlzIG5vdCBOb25lOgotKyAgICAgICAgICAgICAgICBkZXJfcHJpdmtleSA9IHByaXZrZXku cHJpdmF0ZV9ieXRlcygKLSsgICAgICAgICAgICAgICAgICAgIGVuY29kaW5nPXNlcmlhbGl6YXRp b24uRW5jb2RpbmcuREVSLAotKyAgICAgICAgICAgICAgICAgICAgZm9ybWF0PXNlcmlhbGl6YXRp b24uUHJpdmF0ZUZvcm1hdC5QS0NTOCwKLSsgICAgICAgICAgICAgICAgICAgIGVuY3J5cHRpb25f YWxnb3JpdGhtPXNlcmlhbGl6YXRpb24uTm9FbmNyeXB0aW9uKCkKLSsgICAgICAgICAgICAgICAg KQotKyAgICAgICAgZWxzZToKLSsgICAgICAgICAgICB0cnk6Ci0rICAgICAgICAgICAgICAgIGRl cl9jZXJ0ID0gcGVtX3RvX2RlcihjZXJ0X2J5dGVzKSBpZiBpc19wZW1fY2VydChjZXJ0X2J5dGVz KSBlbHNlIGNlcnRfYnl0ZXMKLSsgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0r ICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoZiJGYWlsZWQgdG8gcGFyc2UgY2VydGlm aWNhdGUgJ3tjZXJ0X2ZpbGV9Jzoge2V9IikKLSsKLSsgICAgICAgIGlmIGNhIGFuZCBub3QgY2Vy dF9pc19jYShjZXJ0X2ZpbGUpOgotKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoZiJDZXJ0 aWZpY2F0ZSAoe25pY2tuYW1lfSkgaXMgbm90IGEgQ0EgY2VydGlmaWNhdGUiKQotKwotKyAgICAg ICAgYXR0cnMgPSB7Ci0rICAgICAgICAgICAgImNuIjogW25pY2tuYW1lLmVuY29kZSgpXSwKLSsg ICAgICAgICAgICAib2JqZWN0Q2xhc3MiOiBbYiJ0b3AiLCBiImV4dGVuc2libGVPYmplY3QiXSwK LSsgICAgICAgICAgICBEWUNBVFRSX0NFUlRERVI6IFsgZGVyX2NlcnQsIF0KLSsgICAgICAgIH0K LSsgICAgICAgIGlmIGRlcl9wcml2a2V5OgotKyAgICAgICAgICAgIGF0dHJzW0RZQ0FUVFJfUEtF WURFUl0gPSBbZGVyX3ByaXZrZXldCi0rCi0rICAgICAgICBpZiBjYToKLSsgICAgICAgICAgICBh dHRyc1tEWUNBVFRSX1RSVVNUXSA9IFtiIkNULCwiXQotKwotKyAgICAgICAgaWYgZm9yY2U6Ci0r ICAgICAgICAgICAgYXR0cnNbRFlDQVRUUl9GT1JDRV0gPSBbYiJUUlVFIl0KLSsKLSsgICAgICAg IGlmIG5vdCBkZXJfY2VydDoKLSsgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKGYiRmFpbGVk IHRvIGV4dHJhY3QgREVSIGJ5dGVzIGZyb20ge2NlcnRfZmlsZX0iKQotKwotKyAgICAgICAgIyBF c2NhcGUgdGhlIENOIHRvIGhhbmRsZSBzcGVjaWFsIGNoYXJzIGluIHRoZSBuaWNrbmFtZQotKyAg ICAgICAgZXNjYXBlZF9jbiA9IGxkYXAuZG4uZXNjYXBlX2RuX2NoYXJzKG5pY2tuYW1lKQotKyAg ICAgICAgZG4gPSBlbnN1cmVfc3RyKGYiY249e2VzY2FwZWRfY259LHtzZWxmLl9iYXNlZG59IikK LSsgICAgICAgICMgUmF3IENOIHVzZWQgZm9yIGxvb2t1cAotKyAgICAgICAgY2VydF9vYmogPSBz ZWxmLmdldF9jZXJ0X29iaihuaWNrbmFtZSkKLSsgICAgICAgIGlmIG5vdCBjZXJ0X29iajoKLSsg ICAgICAgICAgICBjZXJ0X29iaiA9IER5bmFtaWNDZXJ0KHNlbGYuX2luc3RhbmNlLCBkbikKLSsg ICAgICAgICAgICBjZXJ0X29iai5jcmVhdGUocHJvcGVydGllcz1hdHRycykKLSsgICAgICAgIGVs c2U6Ci0rICAgICAgICAgICAgbG9nLmluZm8oZiJVcGRhdGluZyBleGlzdGluZyBjZXJ0aWZpY2F0 ZTsge25pY2tuYW1lfSIpCi0rICAgICAgICAgICAgYXR0cnNfbGlzdCA9IFsoYXR0ciwgdmFscykg Zm9yIGF0dHIsIHZhbHMgaW4gYXR0cnMuaXRlbXMoKV0KLSsgICAgICAgICAgICBjZXJ0X29iai5y ZXBsYWNlX21hbnkoKmF0dHJzX2xpc3QpCi0rCi0rICAgIGRlZiBhZGRfY2FfY2VydChzZWxmLAot KyAgICAgICAgICAgICAgICAgICAgY2VydF9maWxlOiBzdHIsCi0rICAgICAgICAgICAgICAgICAg ICBuaWNrbmFtZTogc3RyLAotKyAgICAgICAgICAgICAgICAgICAgcGtjczEyX3Bhc3N3b3JkOiBP cHRpb25hbFtzdHJdID0gTm9uZSwKLSsgICAgICAgICAgICAgICAgICAgIGZvcmNlOiBib29sID0g RmFsc2UKLSsgICAgICAgICk6Ci0rICAgICAgICAiIiIKLSsgICAgICAgIEFkZCBhIENBIGNlcnRp ZmljYXRlIGZyb20gYSBQRU0gYnVuZGxlIG9yIHNpbmdsZSBQRU0vREVSIGZpbGUuCi0rCi0rICAg ICAgICA6cGFyYW0gY2VydF9maWxlOiBQYXRoIHRvIHRoZSBjZXJ0aWZpY2F0ZSBmaWxlIChQRU0g b3IgREVSKQotKyAgICAgICAgOnBhcmFtIG5pY2tuYW1lOiBDZXJ0aWZpY2F0ZSBuaWNrbmFtZQot KyAgICAgICAgOnBhcmFtIHBrY3MxMl9wYXNzd29yZDogUGFzc3dvcmQgZm9yIFBLQ1MjMTIsIGlm IGFueQotKyAgICAgICAgOnBhcmFtIGZvcmNlOiBGb3JjZSB0aGUgYWRkaXRpb24gb2YgYSBjZXJ0 aWZpY2F0ZSB0aGF0IGNhbm5vdCBiZSB2ZXJpZmllZAotKyAgICAgICAgOnJhaXNlcyBWYWx1ZUVy cm9yOiBJZiBmaWxlIGlzIGludmFsaWQgb3IgZmlsZSBkb2VzIG5vdCBleGlzdAotKyAgICAgICAg IiIiCi0rICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMoY2VydF9maWxlKToKLSsgICAgICAg ICAgICByYWlzZSBWYWx1ZUVycm9yKGYiQ2VydGlmaWNhdGUgZmlsZSBkb2VzIG5vdCBleGlzdDog e2NlcnRfZmlsZX0iKQotKwotKyAgICAgICAgIyBOb3JtYWxpc2Ugbmlja25hbWUocykKLSsgICAg ICAgIGlmIGlzaW5zdGFuY2Uobmlja25hbWUsIHN0cik6Ci0rICAgICAgICAgICAgbmlja25hbWVz ID0gW25pY2tuYW1lXQotKyAgICAgICAgZWxpZiBpc2luc3RhbmNlKG5pY2tuYW1lLCBsaXN0KToK LSsgICAgICAgICAgICBuaWNrbmFtZXMgPSBuaWNrbmFtZQotKyAgICAgICAgZWxzZToKLSsgICAg ICAgICAgICByYWlzZSBUeXBlRXJyb3IoZiJuaWNrbmFtZSBtdXN0IGJlIHN0ciBvciBsaXN0W3N0 cl0sIGdvdCB7dHlwZShuaWNrbmFtZSl9IikKLSsKLSsgICAgICAgICMgUEVNIChtYXkgYmUgYnVu ZGxlKQotKyAgICAgICAgaWYgY2VydF9maWxlLmxvd2VyKCkuZW5kc3dpdGgoIi5wZW0iKToKLSsg ICAgICAgICAgICB3aXRoIG9wZW4oY2VydF9maWxlLCAiciIpIGFzIGY6Ci0rICAgICAgICAgICAg ICAgIHBlbV9kYXRhID0gZi5yZWFkKCkKLSsKLSsgICAgICAgICAgICBwZW1fY2VydHMgPSByZS5m aW5kYWxsKAotKyAgICAgICAgICAgICAgICByIi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLS4q Py0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0iLAotKyAgICAgICAgICAgICAgICBwZW1fZGF0YSwK LSsgICAgICAgICAgICAgICAgcmUuRE9UQUxMCi0rICAgICAgICAgICAgKQotKwotKyAgICAgICAg ICAgIGlmIG5vdCBwZW1fY2VydHM6Ci0rICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3Io Ik5vIGNlcnRpZmljYXRlcyBmb3VuZCBpbiBQRU0gZmlsZSIpCi0rCi0rICAgICAgICAgICAgdGVt cF9maWxlcyA9IFtdCi0rICAgICAgICAgICAgdHJ5OgotKyAgICAgICAgICAgICAgICBmb3IgaWR4 LCBjZXJ0IGluIGVudW1lcmF0ZShwZW1fY2VydHMpOgotKyAgICAgICAgICAgICAgICAgICAgd2l0 aCB0ZW1wZmlsZS5OYW1lZFRlbXBvcmFyeUZpbGUoZGVsZXRlPUZhbHNlLCBzdWZmaXg9Ii5wZW0i LCBtb2RlPSJ3IikgYXMgdG1wOgotKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcC53cml0ZShj ZXJ0LnN0cmlwKCkgKyAiXG4iKQotKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcF9jZXJ0X3Bh dGggPSB0bXAubmFtZQotKyAgICAgICAgICAgICAgICAgICAgdGVtcF9maWxlcy5hcHBlbmQodG1w X2NlcnRfcGF0aCkKLSsKLSsgICAgICAgICAgICAgICAgICAgICMgRGV0ZXJtaW5lIG5pY2tuYW1l LCBjb3VsZCBiZSBhIGxpc3QsIG9yIG5vdCBlbm91Z2gKLSsgICAgICAgICAgICAgICAgICAgIGlm IGlkeCA8IGxlbihuaWNrbmFtZXMpOgotKyAgICAgICAgICAgICAgICAgICAgICAgIGNhX25pY2sg PSBuaWNrbmFtZXNbaWR4XQotKyAgICAgICAgICAgICAgICAgICAgZWxzZToKLSsgICAgICAgICAg ICAgICAgICAgICAgICBjYV9uaWNrID0gZiJ7bmlja25hbWVzWy0xXX17aWR4fSIKLSsKLSsgICAg ICAgICAgICAgICAgICAgICMgQ2hlY2sgd2UgZG9udCB0cmFtcGxlIG92ZXIgaW5zdGFsbGVyIGNl cnRzCi0rICAgICAgICAgICAgICAgICAgICBpZiBjYV9uaWNrLmxvd2VyKCkgaW4gKENFUlRfTkFN RS5sb3dlcigpLCBDQV9OQU1FLmxvd2VyKCkpOgotKyAgICAgICAgICAgICAgICAgICAgICAgIHJh aXNlIFZhbHVlRXJyb3IoZiJZb3UgbWF5IG5vdCBpbXBvcnQgYSBDQSB3aXRoIHRoZSBuaWNrbmFt ZSB7Q0VSVF9OQU1FfSBvciB7Q0FfTkFNRX0iKQotKwotKyAgICAgICAgICAgICAgICAgICAgaWYg bm90IGNlcnRfaXNfY2EodG1wX2NlcnRfcGF0aCk6Ci0rICAgICAgICAgICAgICAgICAgICAgICAg cmFpc2UgVmFsdWVFcnJvcihmIkNlcnRpZmljYXRlICh7Y2Ffbmlja30pIGlzIG5vdCBhIENBIGNl cnRpZmljYXRlIikKLSsKLSsgICAgICAgICAgICAgICAgICAgIHRyeToKLSsgICAgICAgICAgICAg ICAgICAgICAgICAjIEhhbmRsZSBleGlzdGluZyBMREFQIG9iamVjdAotKyAgICAgICAgICAgICAg ICAgICAgICAgIGlmIHNlbGYuZ2V0X2NlcnRfZGV0YWlscyhjYV9uaWNrKToKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaWYgbm90IGZvcmNlOgotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBmIkNlcnRpZmljYXRlIGFscmVhZHkgZXhpc3RzIHdpdGggdGhlIHNhbWUgbmFtZSAo e2NhX25pY2t9KSIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZWxzZToKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxvZy5pbmZvKGYiT3ZlcndyaXRpbmcgZXhpc3RpbmcgQ0EgY2VydCB7Y2Ffbmlja30iKQot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kZWxfY2VydChjYV9uaWNrKQot KyAgICAgICAgICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgcGFzcwotKwotKyAgICAgICAgICAgICAgICAgICAgc2VsZi5hZGRfY2VydCgKLSsg ICAgICAgICAgICAgICAgICAgICAgICB0bXBfY2VydF9wYXRoLAotKyAgICAgICAgICAgICAgICAg ICAgICAgIGNhX25pY2ssCi0rICAgICAgICAgICAgICAgICAgICAgICAgcGtjczEyX3Bhc3N3b3Jk PXBrY3MxMl9wYXNzd29yZCwKLSsgICAgICAgICAgICAgICAgICAgICAgICBjYT1UcnVlLAotKyAg ICAgICAgICAgICAgICAgICAgICAgIGZvcmNlPWZvcmNlCi0rICAgICAgICAgICAgICAgICAgICAp Ci0rCi0rICAgICAgICAgICAgZmluYWxseToKLSsgICAgICAgICAgICAgICAgZm9yIHRtcF9maWxl IGluIHRlbXBfZmlsZXM6Ci0rICAgICAgICAgICAgICAgICAgICB0cnk6Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgb3MucmVtb3ZlKHRtcF9maWxlKQotKyAgICAgICAgICAgICAgICAgICAgZXhj ZXB0IE9TRXJyb3IgYXMgZToKLSsgICAgICAgICAgICAgICAgICAgICAgICBsb2cuZGVidWcoZiJG YWlsZWQgdG8gcmVtb3ZlIHRtcCBjZXJ0IGZpbGU6IHt0bXBfZmlsZX06IHtlfSIpCi0rICAgICAg ICBlbHNlOgotKyAgICAgICAgICAgICMgU2luZ2xlIGJpbmFyeSBjZXJ0Ci0rICAgICAgICAgICAg aWYgbGVuKG5pY2tuYW1lcykgIT0gMToKLSsgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJv cigiU2luZ2xlIGNlcnQgcmVxdWlyZXMgZXhhY3RseSBvbmUgbmlja25hbWUiKQotKwotKyAgICAg ICAgICAgIGNhX25pY2sgPSBuaWNrbmFtZXNbMF0KLSsgICAgICAgICAgICB0cnk6Ci0rICAgICAg ICAgICAgICAgIGlmIHNlbGYuZ2V0X2NlcnRfZGV0YWlscyhjYV9uaWNrKToKLSsgICAgICAgICAg ICAgICAgICAgIGlmIGZvcmNlOgotKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGVsX2Nl cnQoY2FfbmljaykKLSsgICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihmIkNlcnRpZmljYXRlIGFscmVhZHkgZXhpc3RzOiB7 Y2Ffbmlja30iKQotKyAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgotKyAgICAgICAgICAg ICAgICBwYXNzCi0rCi0rICAgICAgICAgICAgc2VsZi5hZGRfY2VydChjZXJ0X2ZpbGUsIGNhX25p Y2ssIHBrY3MxMl9wYXNzd29yZD1wa2NzMTJfcGFzc3dvcmQsIGNhPVRydWUsIGZvcmNlPWZvcmNl KQotKwotKyAgICBkZWYgZGVsX2NlcnQoc2VsZiwgbmlja25hbWU6IHN0cik6Ci0rICAgICAgICAi IiIKLSsgICAgICAgIERlbGV0ZSBhIGNlcnRpZmljYXRlLgotKwotKyAgICAgICAgOnBhcmFtIG5p Y2tuYW1lOiBUaGUgY2VydGlmaWNhdGUgbmlja25hbWUgdG8gZGVsZXRlLgotKyAgICAgICAgOnJh aXNlcyBWYWx1ZUVycm9yOiBJZiB0aGUgbmlja25hbWUgaXMgZW1wdHkgb3IgdGhlIGVudHJ5IGNh bm5vdCBiZSBmb3VuZC4KLSsgICAgICAgICIiIgotKyAgICAgICAgaWYgbm90IG5pY2tuYW1lOgot KyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkNlcnRpZmljYXRlIG5pY2tuYW1lIGNhbm5v dCBiZSBlbXB0eSIpCi0rCi0rICAgICAgICBjZXJ0X29iaiA9IHNlbGYuZ2V0X2NlcnRfb2JqKG5p Y2tuYW1lKQotKyAgICAgICAgaWYgbm90IGNlcnRfb2JqOgotKyAgICAgICAgICAgIHJhaXNlIFZh bHVlRXJyb3IoZiJDZXJ0aWZpY2F0ZSBlbnRyeSBub3QgZm91bmQ6IHtuaWNrbmFtZX0iKQotKwot KyAgICAgICAgY2VydF9vYmouZGVsX2NlcnQoKQotKwotKyAgICBkZWYgbGlzdF9jZXJ0cyhzZWxm KToKLSsgICAgICAgICIiIgotKyAgICAgICAgTGlzdCBhbGwgc2VydmVyIGNlcnRpZmljYXRlcy4K LSsKLSsgICAgICAgIDpyZXR1cm46IEEgbGlzdCBvZiBjZXJ0aWZpY2F0ZSBkaWN0aW9uYXJpZXMg Zm9yIGVhY2ggY2VydGlmaWNhdGUKLSsgICAgICAgICIiIgotKyAgICAgICAgY2VydF9vYmplY3Rz ID0gc2VsZi5saXN0KCkKLSsgICAgICAgIGNlcnRzID0gW10KLSsgICAgICAgIGZvciBjZXJ0IGlu IGNlcnRfb2JqZWN0czoKLSsgICAgICAgICAgICBpZiBjZXJ0Ll9kbiA9PSBzZWxmLl9iYXNlZG46 Ci0rICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0rICAgICAgICAgICAgZGVyX2NlcnQgPSBjZXJ0 LmdldF9hdHRyX3ZhbHNfYnl0ZXMoRFlDQVRUUl9DRVJUREVSKVswXQotKyAgICAgICAgICAgIGlm IGRlcl9jZXJ0OgotKyAgICAgICAgICAgICAgICBpZiBub3QgY2VydF9pc19jYShkZXJfY2VydCk6 Ci0rICAgICAgICAgICAgICAgICAgICBjZXJ0cy5hcHBlbmQoewotKyAgICAgICAgICAgICAgICAg ICAgICAgICJjbiI6IGNlcnQuZ2V0X2F0dHJfdmFsc191dGY4KERZQ0FUVFJfQ04pWzBdLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICJzdWJqZWN0IjogY2VydC5nZXRfYXR0cl92YWxzX3V0Zjgo RFlDQVRUUl9TVUJKRUNUKVswXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAiaXNzdWVyIjog Y2VydC5nZXRfYXR0cl92YWxzX3V0ZjgoRFlDQVRUUl9JU1NVRVIpWzBdLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICJleHBpcmVzIjogY2VydC5fbm9ybWFsaXNlX3RpbWVzdGFtcChjZXJ0Lmdl dF9hdHRyX3ZhbHNfdXRmOChEWUNBVFRSX05PVEFGVEVSKVswXSksCi0rICAgICAgICAgICAgICAg ICAgICAgICAgInRydXN0X2ZsYWdzIjogY2VydC5nZXRfYXR0cl92YWxzX3V0ZjgoRFlDQVRUUl9U UlVTVClbMF0sCi0rICAgICAgICAgICAgICAgICAgICB9KQotKyAgICAgICAgcmV0dXJuIGNlcnRz Ci0rCi0rICAgIGRlZiBsaXN0X2NhX2NlcnRzKHNlbGYpOgotKyAgICAgICAgIiIiCi0rICAgICAg ICBMaXN0IGFsbCBjYSBjZXJ0aWZpY2F0ZXMuCi0rCi0rICAgICAgICA6cmV0dXJuOiBBIGxpc3Qg b2YgY2VydGlmaWNhdGUgZGljdGlvbmFyaWVzIGZvciBlYWNoIGNlcnRpZmljYXRlCi0rICAgICAg ICAiIiIKLSsgICAgICAgIGNlcnRfb2JqZWN0cyA9IHNlbGYubGlzdCgpCi0rICAgICAgICBjZXJ0 cyA9IFtdCi0rICAgICAgICBmb3IgY2VydCBpbiBjZXJ0X29iamVjdHM6Ci0rICAgICAgICAgICAg aWYgY2VydC5fZG4gPT0gc2VsZi5fYmFzZWRuOgotKyAgICAgICAgICAgICAgICBjb250aW51ZQot KyAgICAgICAgICAgIGRlcl9jZXJ0ID0gY2VydC5nZXRfYXR0cl92YWxzX2J5dGVzKERZQ0FUVFJf Q0VSVERFUilbMF0KLSsgICAgICAgICAgICBpZiBkZXJfY2VydDoKLSsgICAgICAgICAgICAgICAg aWYgY2VydF9pc19jYShkZXJfY2VydCk6Ci0rICAgICAgICAgICAgICAgICAgICBjZXJ0cy5hcHBl bmQoewotKyAgICAgICAgICAgICAgICAgICAgICAgICJjbiI6IGNlcnQuZ2V0X2F0dHJfdmFsc191 dGY4KERZQ0FUVFJfQ04pWzBdLAotKyAgICAgICAgICAgICAgICAgICAgICAgICJzdWJqZWN0Ijog Y2VydC5nZXRfYXR0cl92YWxzX3V0ZjgoRFlDQVRUUl9TVUJKRUNUKVswXSwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAiaXNzdWVyIjogY2VydC5nZXRfYXR0cl92YWxzX3V0ZjgoRFlDQVRUUl9J U1NVRVIpWzBdLAotKyAgICAgICAgICAgICAgICAgICAgICAgICJleHBpcmVzIjogY2VydC5fbm9y bWFsaXNlX3RpbWVzdGFtcChjZXJ0LmdldF9hdHRyX3ZhbHNfdXRmOChEWUNBVFRSX05PVEFGVEVS KVswXSksCi0rICAgICAgICAgICAgICAgICAgICAgICAgInRydXN0X2ZsYWdzIjogY2VydC5nZXRf YXR0cl92YWxzX3V0ZjgoRFlDQVRUUl9UUlVTVClbMF0sCi0rICAgICAgICAgICAgICAgICAgICB9 KQotKyAgICAgICAgcmV0dXJuIGNlcnRzCi0rCi0rICAgIGRlZiBnZXRfY2VydF9vYmooc2VsZiwg bmlja25hbWU6IHN0cik6Ci0rICAgICAgICAiIiIKLSsgICAgICAgIFJldHJpZXZlIGEgY2VydGlm aWNhdGUgb2JqZWN0LgotKwotKyAgICAgICAgOnBhcmFtIGNuOiBDZXJ0aWZpY2F0ZSBuaWNrbmFt ZQotKyAgICAgICAgOnJhaXNlcyBWYWx1ZUVycm9yOiBJZiB0aGUgY24gaXMgZW1wdHkKLSsgICAg ICAgIDpyZXR1cm46IER5bmFtaWNDZXJ0IG9iamVjdCBpZiBmb3VuZCwgZWxzZSBOb25lCi0rICAg ICAgICAiIiIKLSsgICAgICAgIGlmIG5vdCBuaWNrbmFtZToKLSsgICAgICAgICAgICByYWlzZSBW YWx1ZUVycm9yKCJDZXJ0aWZpY2F0ZSBDTiBjYW5ub3QgYmUgZW1wdHkiKQotKyAgICAgICAgdHJ5 OgotKyAgICAgICAgICAgIGNlcnQgPSBzZWxmLmdldChuaWNrbmFtZSkKLSsgICAgICAgIGV4Y2Vw dCBsZGFwLk5PX1NVQ0hfT0JKRUNUOgotKyAgICAgICAgICAgIHJldHVybiBOb25lCi0rCi0rICAg ICAgICByZXR1cm4gY2VydAotKwotKyAgICBkZWYgZ2V0X2NlcnRfZGV0YWlscyhzZWxmLCBuaWNr bmFtZTogc3RyKToKLSsgICAgICAgICIiIgotKyAgICAgICAgR2V0IGEgY2VydGlmaWNhdGVzIGRl dGFpbHMuCi0rCi0rICAgICAgICA6cGFyYW0gbmlja25hbWU6IENlcnRpZmljYXRlIG5pY2tuYW1l Ci0rICAgICAgICA6cmFpc2VzIFZhbHVlRXJyb3I6IElmIHRoZSBuaWNrbmFtZSBpcyBlbXB0eQot KyAgICAgICAgOnJldHVybjogRHluYW1pY0NlcnQgb2JqZWN0IGlmIGZvdW5kLCBlbHNlIE5vbmUK LSsgICAgICAgICIiIgotKyAgICAgICAgaWYgbm90IG5pY2tuYW1lOgotKyAgICAgICAgICAgIHJh aXNlIFZhbHVlRXJyb3IoIkNlcnRpZmljYXRlIENOIGNhbm5vdCBiZSBlbXB0eSIpCi0rICAgICAg ICB0cnk6Ci0rICAgICAgICAgICAgY2VydCA9IHNlbGYuZ2V0KG5pY2tuYW1lKQotKyAgICAgICAg ZXhjZXB0IGxkYXAuTk9fU1VDSF9PQkpFQ1Q6Ci0rICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSsK LSsgICAgICAgIHJldHVybiB7Ci0rICAgICAgICAgICAgImNuIjogY2VydC5nZXRfYXR0cl92YWxz X3V0ZjgoRFlDQVRUUl9DTilbMF0sCi0rICAgICAgICAgICAgInN1YmplY3QiOiBjZXJ0LmdldF9h dHRyX3ZhbHNfdXRmOChEWUNBVFRSX1NVQkpFQ1QpWzBdLAotKyAgICAgICAgICAgICJpc3N1ZXIi OiBjZXJ0LmdldF9hdHRyX3ZhbHNfdXRmOChEWUNBVFRSX0lTU1VFUilbMF0sCi0rICAgICAgICAg ICAgImV4cGlyZXMiOiBjZXJ0Ll9ub3JtYWxpc2VfdGltZXN0YW1wKGNlcnQuZ2V0X2F0dHJfdmFs c191dGY4KERZQ0FUVFJfTk9UQUZURVIpWzBdKSwKLSsgICAgICAgICAgICAidHJ1c3RfZmxhZ3Mi OiBjZXJ0LmdldF9hdHRyX3ZhbHNfdXRmOChEWUNBVFRSX1RSVVNUKVswXSwKLSsgICAgICAgIH0K LSsKLSsgICAgZGVmIGVkaXRfY2VydF90cnVzdChzZWxmLCBuaWNrbmFtZTogc3RyLCB0cnVzdF9m bGFnczogc3RyKToKLSsgICAgICAgICIiIgotKyAgICAgICAgRWRpdCB0cnVzdCBmbGFncyBvbiBh biBleGlzdGluZyBjZXJ0aWZpY2F0ZS4KLSsKLSsgICAgICAgIDpwYXJhbSBuaWNrbmFtZTogQ2Vy dGlmaWNhdGUgbmlja25hbWUKLSsgICAgICAgIDpwYXJhbSB0cnVzdF9mbGFnczogMyBmaWVsZCBO U1MgdHJ1c3Qgc3RyaW5nCi0rICAgICAgICAiIiIKLSsgICAgICAgIGNlcnRfb2JqID0gc2VsZi5n ZXRfY2VydF9vYmoobmlja25hbWUpCi0rICAgICAgICBpZiBub3QgY2VydF9vYmo6Ci0rICAgICAg ICAgICAgcmFpc2UgVmFsdWVFcnJvcihmIkNlcnRpZmljYXRlIHtuaWNrbmFtZX0gZG9lcyBub3Qg ZXhpc3QiKQotKwotKyAgICAgICAgdHJ5OgotKyAgICAgICAgICAgIGNlcnRfb2JqLmVkaXRfdHJ1 c3QodHJ1c3RfZmxhZ3M9dHJ1c3RfZmxhZ3MpCi0rICAgICAgICBleGNlcHQgVmFsdWVFcnJvciBh cyB2ZToKLSsgICAgICAgICAgICBsb2cuZXJyb3IoZiJJbnZhbGlkIGlucHV0IGZvciBjZXJ0aWZp Y2F0ZSAne25pY2tuYW1lfSc6IHt2ZX0iKQotKyAgICAgICAgICAgIHJhaXNlCi0rICAgICAgICBl eGNlcHQgbGRhcC5MREFQRXJyb3IgYXMgbGU6Ci0rICAgICAgICAgICAgbG9nLmVycm9yKGYiTERB UCBlcnJvciB3aGlsZSB1cGRhdGluZyBjZXJ0aWZpY2F0ZSAne25pY2tuYW1lfSc6IHtsZX0iKQot KyAgICAgICAgICAgIHJhaXNlCi0rICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0rICAg ICAgICAgICAgbG9nLmVycm9yKGYiVW5leHBlY3RlZCBlcnJvciB3aGlsZSB1cGRhdGluZyBjZXJ0 aWZpY2F0ZSAne25pY2tuYW1lfSc6IHtlfSIpCi0rICAgICAgICAgICAgcmFpc2UKLWRpZmYgLS1n aXQgYS9zcmMvbGliMzg5L2xpYjM4OS9uc3Nfc3NsLnB5IGIvc3JjL2xpYjM4OS9saWIzODkvbnNz X3NzbC5weQotaW5kZXggMmZkMmI5Yjg5Li43NjQ0MzQxNjYgMTAwNjQ0Ci0tLS0gYS9zcmMvbGli Mzg5L2xpYjM4OS9uc3Nfc3NsLnB5Ci0rKysgYi9zcmMvbGliMzg5L2xpYjM4OS9uc3Nfc3NsLnB5 Ci1AQCAtMSw1ICsxLDUgQEAKLSAjIC0tLSBCRUdJTiBDT1BZUklHSFQgQkxPQ0sgLS0tCi0tIyBD b3B5cmlnaHQgKEMpIDIwMjMgUmVkIEhhdCwgSW5jLgotKyMgQ29weXJpZ2h0IChDKSAyMDI2IFJl ZCBIYXQsIEluYy4KLSAjIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gIwotICMgTGljZW5zZTogR1BM ICh2ZXJzaW9uIDMgb3IgYW55IGxhdGVyIHZlcnNpb24pLgotQEAgLTE4LDYgKzE4LDcgQEAgaW1w b3J0IHNodXRpbAotIGltcG9ydCBsb2dnaW5nCi0gaW1wb3J0IHN1YnByb2Nlc3MKLSBpbXBvcnQg dXVpZAotK2Zyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbAotIGZyb20gZGF0ZXRpbWUgaW1wb3J0 IGRhdGV0aW1lLCB0aW1lZGVsdGEKLSBmcm9tIHN1YnByb2Nlc3MgaW1wb3J0IGNoZWNrX291dHB1 dCwgcnVuLCBQSVBFCi0gZnJvbSBsaWIzODkucGFzc3dkIGltcG9ydCBwYXNzd29yZF9nZW5lcmF0 ZQotQEAgLTI1LDcgKzI2LDYgQEAgZnJvbSBsaWIzODkuX21hcHBlZF9vYmplY3RfbGludCBpbXBv cnQgRFNMaW50Ci0gZnJvbSBsaWIzODkubGludCBpbXBvcnQgRFNDRVJUTEUwMDAxLCBEU0NFUlRM RTAwMDIKLSBmcm9tIGxpYjM4OS51dGlscyBpbXBvcnQgZW5zdXJlX3N0ciwgZm9ybWF0X2NtZF9s aXN0LCBEU1ZlcnNpb24sIGNlcnRfaXNfY2EKLSAKLS0KLSBLRVlCSVRTID0gNDA5NgotIENBX05B TUUgPSAnU2VsZi1TaWduZWQtQ0EnCi0gQ0VSVF9OQU1FID0gJ1NlcnZlci1DZXJ0JwotQEAgLTg1 LDkgKzg1LDggQEAgY2xhc3MgTnNzU3NsKERTTGludCk6Ci0gICAgICAgICBhbGxfY2VydHMgPSBz ZWxmLl9yc2FfY2VydF9saXN0KCkKLSAgICAgICAgIGZvciBjZXJ0IGluIGFsbF9jZXJ0czoKLSAg ICAgICAgICAgICBjZXJ0X2xpc3QuYXBwZW5kKHNlbGYuZ2V0X2NlcnRfZGV0YWlscyhjZXJ0WzBd KSkKLS0KLSAgICAgICAgIGZvciBjZXJ0IGluIGNlcnRfbGlzdDoKLS0gICAgICAgICAgICBjZXJ0 X2RhdGUgPSBjZXJ0WzNdLnNwbGl0KClbMF0KLSsgICAgICAgICAgICBjZXJ0X2RhdGUgPSBjZXJ0 WydleHBpcmVzJ10uc3BsaXQoKVswXQotICAgICAgICAgICAgIGRpZmZfZGF0ZSA9IGRhdGV0aW1l LnN0cnB0aW1lKGNlcnRfZGF0ZSwgJyVZLSVtLSVkJykuZGF0ZSgpIC0gZGF0ZXRpbWUudG9kYXko KS5kYXRlKCkKLSAgICAgICAgICAgICBpZiBkaWZmX2RhdGUgPCB0aW1lZGVsdGEoZGF5cz0wKToK LSAgICAgICAgICAgICAgICAgIyBFeHBpcmVkCi1AQCAtMTA5OSwxMiArMTA5OCwxMiBAQCBvbmx5 LgotICAgICBkZWYgZ2V0X2NlcnRfZGV0YWlscyhzZWxmLCBuaWNrbmFtZSk6Ci0gICAgICAgICAi IiJHZXQgdGhlIHRydXN0IGZsYWdzLCBzdWJqZWN0IEROLCBpc3N1ZXIsIGFuZCBleHBpcmF0aW9u IGRhdGUKLSAKLS0gICAgICAgIHJldHVybiBhIGxpc3Q6Ci0tICAgICAgICAgICAgMCAtIG5pY2tu YW1lCi0tICAgICAgICAgICAgMSAtIHN1YmplY3QKLS0gICAgICAgICAgICAyIC0gaXNzdWVyCi0t ICAgICAgICAgICAgMyAtIGV4cGlyZSBkYXRlCi0tICAgICAgICAgICAgNCAtIHRydXN0X2ZsYWdz Ci0rICAgICAgICA6cmV0dXJuOiBkaWN0IGNvbnRhaW5pbmcgY2VydGlmaWNhdGUgZGV0YWlscyB3 aXRoIGtleXM6Ci0rICAgICAgICAgICAgLSAiY24iICAgICAgICAgIDogQ2VydGlmaWNhdGUgbmlj a25hbWUgKHN0cikKLSsgICAgICAgICAgICAtICJzdWJqZWN0IiAgICAgOiBTdWJqZWN0IEROIChz dHIpCi0rICAgICAgICAgICAgLSAiaXNzdWVyIiAgICAgIDogSXNzdWVyIEROIChzdHIpCi0rICAg ICAgICAgICAgLSAiZXhwaXJlcyIgICAgIDogRXhwaXJhdGlvbiBkYXRlL3RpbWUgYXMgYSBzdHJp bmcgKFlZWVktTU0tREQgSEg6TU06U1MpCi0rICAgICAgICAgICAgLSAidHJ1c3RfZmxhZ3MiIDog VHJ1c3QgZmxhZ3MgZnJvbSBOU1MgKHN0cikKLSAgICAgICAgICIiIgotICAgICAgICAgYWxsX2Nl cnRzID0gc2VsZi5fcnNhX2NlcnRfbGlzdCgpCi0gICAgICAgICBmb3IgY2VydCBpbiBhbGxfY2Vy dHM6Ci1AQCAtMTE0MiwyNiArMTE0MSwzMyBAQCBvbmx5LgotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpc3N1ZXIgPSBpc3N1ZXJbMTotMV0KLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYnJlYWsKLSAKLS0gICAgICAgICAgICAgICAgcmV0dXJuIChbbmlja25hbWUsICBzdWJqZWN0 LCBpc3N1ZXIsIHN0cihlbmRfZGF0ZSksIHRydXN0X2ZsYWdzXSkKLSsgICAgICAgICAgICAgICAg cmV0dXJuIHsKLSsgICAgICAgICAgICAgICAgICAgICJjbiI6IG5pY2tuYW1lLAotKyAgICAgICAg ICAgICAgICAgICAgInN1YmplY3QiOiBzdWJqZWN0LAotKyAgICAgICAgICAgICAgICAgICAgImlz c3VlciI6IGlzc3VlciwKLSsgICAgICAgICAgICAgICAgICAgICJleHBpcmVzIjogc3RyKGVuZF9k YXRlKSwKLSsgICAgICAgICAgICAgICAgICAgICJ0cnVzdF9mbGFncyI6IHRydXN0X2ZsYWdzLAot KyAgICAgICAgICAgICAgICB9Ci0gCi0tICAgICAgICAjIERpZCBub3QgZmluZCBjZXJ0IHdpdGgg dGhhdCBuYW1lCi0tICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJDZXJ0aWZpY2F0ZSAne30nIG5v dCBmb3VuZCBpbiBOU1MgZGF0YWJhc2UiLmZvcm1hdChuaWNrbmFtZSkpCi0rICAgICAgICByZXR1 cm4gTm9uZQotIAotICAgICBkZWYgbGlzdF9jZXJ0cyhzZWxmLCBjYT1GYWxzZSk6Ci0gICAgICAg ICBhbGxfY2VydHMgPSBzZWxmLl9yc2FfY2VydF9saXN0KCkKLSAgICAgICAgIGNlcnRzID0gW10K LS0gICAgICAgIGZvciBjZXJ0IGluIGFsbF9jZXJ0czoKLS0gICAgICAgICAgICB0cnVzdF9mbGFn cyA9IGNlcnRbMV0KLSsgICAgICAgIGZvciBuaWNrbmFtZSwgdHJ1c3RfZmxhZ3MgaW4gYWxsX2Nl cnRzOgotICAgICAgICAgICAgIGlmIChjYSBhbmQgIkNUIiBpbiB0cnVzdF9mbGFncykgb3IgKG5v dCBjYSBhbmQgIkNUIiBub3QgaW4gdHJ1c3RfZmxhZ3MpOgotLSAgICAgICAgICAgICAgICBjZXJ0 cy5hcHBlbmQoc2VsZi5nZXRfY2VydF9kZXRhaWxzKGNlcnRbMF0pKQotKyAgICAgICAgICAgICAg ICBjZXJ0X2RldGFpbHMgPSBzZWxmLmdldF9jZXJ0X2RldGFpbHMobmlja25hbWUpCi0rICAgICAg ICAgICAgICAgIGNlcnRzLmFwcGVuZChjZXJ0X2RldGFpbHMpCi0gICAgICAgICByZXR1cm4gY2Vy dHMKLSAKLSAgICAgZGVmIGxpc3RfY2FfY2VydHMoc2VsZik6Ci0tICAgICAgICByZXR1cm4gWwot LSAgICAgICAgICAgIGNlcnQKLS0gICAgICAgICAgICBmb3IgY2VydCBpbiBzZWxmLl9yc2FfY2Vy dF9saXN0KCkKLS0gICAgICAgICAgICBpZiBzZWxmLl9yc2FfY2VydF9pc19jYXRydXN0KGNlcnQp Ci0tICAgICAgICBdCi0rICAgICAgICBjYV9jZXJ0cyA9IFtdCi0rICAgICAgICBmb3IgY2VydCBp biBzZWxmLl9yc2FfY2VydF9saXN0KCk6Ci0rICAgICAgICAgICAgaWYgc2VsZi5fcnNhX2NlcnRf aXNfY2F0cnVzdChjZXJ0KToKLSsgICAgICAgICAgICAgICAgIyBjZXJ0WzBdIGlzIHRoZSBuaWNr bmFtZQotKyAgICAgICAgICAgICAgICBjZXJ0X2RldGFpbHMgPSBzZWxmLmdldF9jZXJ0X2RldGFp bHMoY2VydFswXSkKLSsgICAgICAgICAgICAgICAgY2FfY2VydHMuYXBwZW5kKGNlcnRfZGV0YWls cykKLSsgICAgICAgIHJldHVybiBjYV9jZXJ0cwotIAotICAgICBkZWYgbGlzdF9jbGllbnRfY2Ff Y2VydHMoc2VsZik6Ci0gICAgICAgICByZXR1cm4gWwotQEAgLTExNzAsNDEgKzExNzYsMTA3IEBA IG9ubHkuCi0gICAgICAgICAgICAgaWYgc2VsZi5fcnNhX2NlcnRfaXNfY2FjbGllbnR0cnVzdChj ZXJ0KQotICAgICAgICAgXQotIAotLSAgICBkZWYgYWRkX2NlcnQoc2VsZiwgbmlja25hbWUsIGlu cHV0X2ZpbGUsIGNhPUZhbHNlKToKLSsgICAgZGVmIGFkZF9jZXJ0KHNlbGYsCi0rICAgICAgICAg ICAgICAgICBuaWNrbmFtZTogc3RyLAotKyAgICAgICAgICAgICAgICAgY2VydF9maWxlOiBzdHIs Ci0rICAgICAgICAgICAgICAgICBwa2NzMTJfcGFzc3dvcmQ6IE9wdGlvbmFsW3N0cl0gPSBOb25l LAotKyAgICAgICAgICAgICAgICAgY2E6IGJvb2wgPSBGYWxzZSwKLSsgICAgICAgICAgICAgICAg IGZvcmNlOiBib29sID0gRmFsc2UpOgotICAgICAgICAgIiIiQWRkIHNlcnZlciBvciBDQSBjZXJ0 Ci0rCi0rICAgICAgICA6cGFyYW0gbmlja25hbWU6IENlcnRpZmljYXRlIG5pY2tuYW1lCi0rICAg ICAgICA6cGFyYW0gY2VydF9maWxlOiBQYXRoIHRvIGNlcnRpZmljYXRlIGZpbGUgKFBFTSwgREVS LCBvciBQS0NTIzEyKQotKyAgICAgICAgOnBhcmFtIGNhOiBXaGV0aGVyIHRoaXMgaXMgYSBDQSBj ZXJ0aWZpY2F0ZQotKyAgICAgICAgOnBhcmFtIHBrY3MxMl9wYXNzd29yZDogUGFzc3dvcmQgZm9y IFBLQ1MjMTIsIGlmIGFueQotKyAgICAgICAgOnBhcmFtIGZvcmNlOiBGb3JjZSB0aGUgYWRkaXRp b24gb2YgYSBjZXJ0aWZpY2F0ZSB0aGF0IGNhbm5vdCBiZSB2ZXJpZmllZAotICAgICAgICAgIiIi Ci0rICAgICAgICBpZiBub3Qgbmlja25hbWU6Ci0rICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJv cigiQ2VydGlmaWNhdGUgbmlja25hbWUgbXVzdCBub3QgYmUgZW1wdHkiKQotIAotICAgICAgICAg IyBWZXJpZnkgaW5wdXRfZmlsZSBleGlzdHMKLS0gICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0 cyhpbnB1dF9maWxlKToKLS0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJUaGUgY2VydGlm aWNhdGUgZmlsZSAoe30pIGRvZXMgbm90IGV4aXN0Ii5mb3JtYXQoaW5wdXRfZmlsZSkpCi0rICAg ICAgICBpZiBub3Qgb3MucGF0aC5pc2ZpbGUoY2VydF9maWxlKToKLSsgICAgICAgICAgICByYWlz ZSBWYWx1ZUVycm9yKCJUaGUgY2VydGlmaWNhdGUgZmlsZSAoe30pIGRvZXMgbm90IGV4aXN0Ii5m b3JtYXQoY2VydF9maWxlKSkKLSAKLSAgICAgICAgIHBlbV9maWxlID0gVHJ1ZQotLSAgICAgICAg aWYgbm90IGlucHV0X2ZpbGUubG93ZXIoKS5lbmRzd2l0aCgiLnBlbSIpOgotKyAgICAgICAgaWYg bm90IGNlcnRfZmlsZS5sb3dlcigpLmVuZHN3aXRoKCIucGVtIik6Ci0gICAgICAgICAgICAgcGVt X2ZpbGUgPSBGYWxzZQotICAgICAgICAgZWxzZToKLS0gICAgICAgICAgICBzZWxmLl9hc3NlcnRf bm90X2NoYWluKGlucHV0X2ZpbGUpCi0rICAgICAgICAgICAgc2VsZi5fYXNzZXJ0X25vdF9jaGFp bihjZXJ0X2ZpbGUpCi0gCi0gICAgICAgICBpZiBjYToKLSAgICAgICAgICAgICAjIFZlcmlmeSB0 aGlzIGlzIGEgQ0EgY2VydAotLSAgICAgICAgICAgIGlmIG5vdCBjZXJ0X2lzX2NhKGlucHV0X2Zp bGUpOgotKyAgICAgICAgICAgIGlmIG5vdCBjZXJ0X2lzX2NhKGNlcnRfZmlsZSk6Ci0gICAgICAg ICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoZiJDZXJ0aWZpY2F0ZSAoe25pY2tuYW1lfSkgaXMg bm90IGEgQ0EgY2VydGlmaWNhdGUiKQotICAgICAgICAgICAgIHRydXN0X2ZsYWdzID0gIkNULCwi Ci0gICAgICAgICBlbHNlOgotICAgICAgICAgICAgICMgVmVyaWZ5IHRoaXMgaXMgYSBzZXJ2ZXIg Y2VydAotLSAgICAgICAgICAgIGlmIGNlcnRfaXNfY2EoaW5wdXRfZmlsZSk6Ci0rICAgICAgICAg ICAgaWYgY2VydF9pc19jYShjZXJ0X2ZpbGUsIHBrY3MxMl9wYXNzd29yZD1wa2NzMTJfcGFzc3dv cmQpOgotICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKGYiQ2VydGlmaWNhdGUgKHtu aWNrbmFtZX0pIGlzIG5vdCBhIHNlcnZlciBjZXJ0aWZpY2F0ZSIpCi0gICAgICAgICAgICAgdHJ1 c3RfZmxhZ3MgPSAiLCwiCi0gCi0rICAgICAgICBwa2NzMTJfZmlsZSA9IE5vbmUKLSsgICAgICAg IGlmIGNlcnRfZmlsZS5sb3dlcigpLmVuZHN3aXRoKCgiLnAxMiIsICIucGZ4IikpOgotKyAgICAg ICAgICAgIHBrY3MxMl9maWxlID0gVHJ1ZQotKwotKyAgICAgICAgaWYgcGtjczEyX2ZpbGU6Ci0r ICAgICAgICAgICAgc2VsZi5sb2cuaW5mbygiSW1wb3J0aW5nIFBLQ1MjMTIgaW50byBOU1M6ICVz IiwgY2VydF9maWxlKQotKwotKyAgICAgICAgICAgIGlmIHBrY3MxMl9wYXNzd29yZCBpcyBOb25l OgotKyAgICAgICAgICAgICAgICBwa2NzMTJfcGFzc3dvcmQgPSAiIgotKwotKyAgICAgICAgICAg IGNtZCA9IFsKLSsgICAgICAgICAgICAgICAgInBrMTJ1dGlsIiwKLSsgICAgICAgICAgICAgICAg Ii12IiwKLSsgICAgICAgICAgICAgICAgIi1uIiwgbmlja25hbWUsCi0rICAgICAgICAgICAgICAg ICItaSIsIGNlcnRfZmlsZSwKLSsgICAgICAgICAgICAgICAgIi1kIiwgc2VsZi5fY2VydGRiLAot KyAgICAgICAgICAgICAgICAiLWsiLCBmIntzZWxmLl9jZXJ0ZGJ9L3tQV0RfVFhUfSIsCi0rICAg ICAgICAgICAgICAgICItVyIsIHBrY3MxMl9wYXNzd29yZCwKLSsgICAgICAgICAgICBdCi0rCi0r ICAgICAgICAgICAgIyBNYXNrIHRoZSBwYXNzd29yZCBpbiBsb2dzCi0rICAgICAgICAgICAgbWFz a2VkX2NtZCA9IFthcmcgaWYgYXJnICE9IHBrY3MxMl9wYXNzd29yZCBlbHNlICIqKioqIiBmb3Ig YXJnIGluIGNtZF0KLSsgICAgICAgICAgICBzZWxmLmxvZy5pbmZvKGYibnNzIGltcG9ydCBwMTIg Y21kOiB7Zm9ybWF0X2NtZF9saXN0KG1hc2tlZF9jbWQpfSIsICkKLSsgICAgICAgICAgICB0cnk6 Ci0rICAgICAgICAgICAgICAgIGNoZWNrX291dHB1dChjbWQsIHN0ZGVycj1zdWJwcm9jZXNzLlNU RE9VVCkKLSsgICAgICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3Ig YXMgZToKLSsgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihmIkZhaWxlZCB0byBpbXBv cnQgUEtDUyMxMiB7Y2VydF9maWxlfSB7ZX0iKQotKwotKyAgICAgICAgICAgIGlmIGNhOgotKyAg ICAgICAgICAgICAgICBjbWQgPSBbCi0rICAgICAgICAgICAgICAgICAgICAiY2VydHV0aWwiLAot KyAgICAgICAgICAgICAgICAgICAgIi1NIiwKLSsgICAgICAgICAgICAgICAgICAgICItbiIsIG5p Y2tuYW1lLAotKyAgICAgICAgICAgICAgICAgICAgIi10IiwgIkNULCwiLAotKyAgICAgICAgICAg ICAgICAgICAgIi1kIiwgc2VsZi5fY2VydGRiLAotKyAgICAgICAgICAgICAgICAgICAgIi1mIiwg ZiJ7c2VsZi5fY2VydGRifS97UFdEX1RYVH0iLAotKyAgICAgICAgICAgICAgICBdCi0rICAgICAg ICAgICAgICAgIHNlbGYubG9nLmRlYnVnKGYic2V0IENBIHRydXN0IGNtZDoge2Zvcm1hdF9jbWRf bGlzdChjbWQpfSIpCi0rICAgICAgICAgICAgICAgIHRyeToKLSsgICAgICAgICAgICAgICAgICAg IGNoZWNrX291dHB1dChjbWQsIHN0ZGVycj1zdWJwcm9jZXNzLlNURE9VVCkKLSsgICAgICAgICAg ICAgICAgZXhjZXB0IHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vycm9yIGFzIGU6Ci0rICAgICAg ICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKGYiRmFpbGVkIHRvIHNldCBDQSB0cnVzdCBm b3Ige25pY2tuYW1lfSB7ZX0iKQotKwotKyAgICAgICAgICAgIHJldHVybgotKwotKyAgICAgICAg cGVtX2ZpbGUgPSBjZXJ0X2ZpbGUubG93ZXIoKS5lbmRzd2l0aCgiLnBlbSIpCi0rICAgICAgICBp ZiBwZW1fZmlsZToKLSsgICAgICAgICAgICBzZWxmLl9hc3NlcnRfbm90X2NoYWluKGNlcnRfZmls ZSkKLSsKLSsgICAgICAgIHRydXN0X2ZsYWdzID0gIkNULCwiIGlmIGNhIGVsc2UgIiwsIgotKwot ICAgICAgICAgY21kID0gWwotICAgICAgICAgICAgICcvdXNyL2Jpbi9jZXJ0dXRpbCcsCi0gICAg ICAgICAgICAgJy1BJywKLSAgICAgICAgICAgICAnLWQnLCBzZWxmLl9jZXJ0ZGIsCi0gICAgICAg ICAgICAgJy1uJywgbmlja25hbWUsCi0gICAgICAgICAgICAgJy10JywgdHJ1c3RfZmxhZ3MsCi0t ICAgICAgICAgICAgJy1pJywgaW5wdXRfZmlsZSwKLSsgICAgICAgICAgICAnLWknLCBjZXJ0X2Zp bGUsCi0gICAgICAgICAgICAgJy1mJywKLSAgICAgICAgICAgICAnJXMvJXMnICUgKHNlbGYuX2Nl cnRkYiwgUFdEX1RYVCksCi0rCi0gICAgICAgICBdCi0rCi0gICAgICAgICBpZiBwZW1fZmlsZToK LSAgICAgICAgICAgICBjbWQuYXBwZW5kKCctYScpCi0gCi1AQCAtMTI3MCw2ICsxMzQyLDYyIEBA IG9ubHkuCi0gICAgICAgICAgICAgaWYgb3MucGF0aC5leGlzdHMocDEyX2J1bmRsZSk6Ci0gICAg ICAgICAgICAgICAgIG9zLnJlbW92ZShwMTJfYnVuZGxlKQotIAotKyAgICBkZWYgYWRkX2NhX2Nl cnQoc2VsZiwgY2VydF9maWxlOiBzdHIsIG5pY2tuYW1lOiBzdHIsIGZvcmNlOiBib29sID0gRmFs c2UpOgotKyAgICAgICAgIiIiCi0rICAgICAgICBBZGQgYSBDQSBjZXJ0aWZpY2F0ZSBmcm9tIGEg UEVNIGJ1bmRsZSBvciBzaW5nbGUgUEVNL0RFUiBmaWxlLgotKwotKyAgICAgICAgQWRhcHRlciBm dW5jdGlvbiB0byBtYXRjaCBhYnN0cmFjdGlvbiBsYXllciBpbnRlcmZhY2UuCi0rCi0rICAgICAg ICA6cGFyYW0gY2VydF9maWxlOiBwYXRoIHRvIHRoZSBjZXJ0aWZpY2F0ZSBmaWxlCi0rICAgICAg ICA6cGFyYW0gbmlja25hbWU6IG5pY2tuYW1lIHRvIGFzc2lnbgotKyAgICAgICAgOnBhcmFtIGZv cmNlOiBGb3JjZSB0aGUgYWRkaXRpb24gb2YgYSBjZXJ0aWZpY2F0ZSB0aGF0IGNhbm5vdCBiZSB2 ZXJpZmllZAotKyAgICAgICAgIiIiCi0rICAgICAgICAjIFZlcmlmeSBpbnB1dF9maWxlIGV4aXN0 cwotKyAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGNlcnRfZmlsZSk6Ci0rICAgICAgICAg ICAgcmFpc2UgVmFsdWVFcnJvcihmIlRoZSBjZXJ0aWZpY2F0ZSBmaWxlICh7Y2VydF9maWxlfSkg ZG9lcyBub3QgZXhpc3QiKQotKwotKyAgICAgICAgIyBOb3JtYWxpc2Ugbmlja25hbWUocykKLSsg ICAgICAgIGlmIGlzaW5zdGFuY2Uobmlja25hbWUsIGxpc3QpOgotKyAgICAgICAgICAgIG5pY2tu YW1lcyA9IG5pY2tuYW1lCi0rICAgICAgICBlbGlmIGlzaW5zdGFuY2Uobmlja25hbWUsIHN0cik6 Ci0rICAgICAgICAgICAgbmlja25hbWVzID0gW25pY2tuYW1lXQotKyAgICAgICAgZWxzZToKLSsg ICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoZiJuaWNrbmFtZSBtdXN0IGJlIHN0ciBvciBsaXN0 W3N0cl0sIGdvdDoge3R5cGUobmlja25hbWUpfSIpCi0rCi0rICAgICAgICAjIEFsbG93IG92ZXJ3 cml0ZSBvbmx5IGZvciBzaW5nbGUgY2VydAotKyAgICAgICAgaWYgbGVuKG5pY2tuYW1lcykgPT0g MToKLSsgICAgICAgICAgICBzaW5nbGVfbmljayA9IG5pY2tuYW1lc1swXQotKyAgICAgICAgICAg IHRyeToKLSsgICAgICAgICAgICAgICAgaWYgc2VsZi5nZXRfY2VydF9kZXRhaWxzKHNpbmdsZV9u aWNrKToKLSsgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBmb3JjZToKLSsgICAgICAgICAgICAg ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBmIkNlcnRpZmljYXRlIGFscmVhZHkgZXhpc3RzIHdpdGggdGhlIHNhbWUgbmFtZSAoe3Npbmds ZV9uaWNrfSkiCi0rICAgICAgICAgICAgICAgICAgICAgICAgKQotKyAgICAgICAgICAgICAgICAg ICAgZWxzZToKLSsgICAgICAgICAgICAgICAgICAgICAgICBsb2cuaW5mbyhmIk92ZXJ3cml0aW5n IGV4aXN0aW5nIGNlcnRpZmljYXRlICh7c2luZ2xlX25pY2t9KSIpCi0rICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5kZWxfY2VydChzaW5nbGVfbmljaykKLSsgICAgICAgICAgICBleGNlcHQg VmFsdWVFcnJvcjoKLSsgICAgICAgICAgICAgICAgcGFzcwotKwotKyAgICAgICAgIyBPZmZsb2Fk IHRvIFBFTSBidW5kbGUgaGFuZGxlcgotKyAgICAgICAgaWYgY2VydF9maWxlLmxvd2VyKCkuZW5k c3dpdGgoIi5wZW0iKToKLSsgICAgICAgICAgICByZXR1cm4gc2VsZi5hZGRfY2FfY2VydF9idW5k bGUoCi0rICAgICAgICAgICAgICAgIGNlcnRfZmlsZT1jZXJ0X2ZpbGUsCi0rICAgICAgICAgICAg ICAgIG5pY2tuYW1lcz1uaWNrbmFtZXMKLSsgICAgICAgICAgICApCi0rCi0rICAgICAgICBpZiBs ZW4obmlja25hbWVzKSAhPSAxOgotKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCi0rICAg ICAgICAgICAgICAgICJCaW5hcnkgQ0EgY2VydCByZXF1aXJlcyBleGFjdGx5IG9uZSBuaWNrbmFt ZSIKLSsgICAgICAgICAgICApCi0rCi0rICAgICAgICBpZiBub3QgY2VydF9pc19jYShjZXJ0X2Zp bGUpOgotKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoZiJDZXJ0aWZpY2F0ZSAoe25pY2tu YW1lfSkgaXMgbm90IGEgQ0EgY2VydGlmaWNhdGUiKQotKwotKyAgICAgICAgc2VsZi5hZGRfY2Vy dChuaWNrbmFtZXNbMF0sIGNlcnRfZmlsZSwgY2E9VHJ1ZSkKLSsKLSsgICAgICAgIGxvZy5pbmZv KGYiU3VjY2Vzc2Z1bGx5IGFkZGVkIENBIGNlcnRpZmljYXRlICh7bmlja25hbWV9KSIpCi0rCi0g ICAgIGRlZiBhZGRfY2FfY2VydF9idW5kbGUoc2VsZiwgY2VydF9maWxlLCBuaWNrbmFtZXMpOgot ICAgICAgICAgIiIiCi0gICAgICAgICBBZGQgYSBQRU0gZmlsZSB0aGF0IGNvdWxkIGJlIGEgYnVu ZGxlIG9mIENBIGNlcnRzCi1AQCAtMTMyNywxNCArMTQ1NSw4IEBAIG9ubHkuCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FfY2VydF9uYW1lID0gbmlja25hbWVzW25hbWVz X2xlbiAtIDFdICsgc3RyKGNhX2NvdW50KQotIAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIyBDaGVjayBpZiBjZXJ0aWZpY2F0ZSBuaWNrbmFtZSBleGlzdHMKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG5hbWVfZXhpc3RzID0gRmFsc2UKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHRyeToKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLmdldF9jZXJ0X2RldGFpbHMoY2FfY2VydF9uYW1lKQotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG5hbWVfZXhpc3RzID0gVHJ1ZQotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcGFzcwotLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgbmFtZV9leGlzdHM6Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0 ID0gc2VsZi5nZXRfY2VydF9kZXRhaWxzKGNhX2NlcnRfbmFtZSkKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlmIGNlcnQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIyBOb3QgZ29vZCwgY2xlYW51cCBhbmQgcmFpc2UgZXJyb3IKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGZvciB0bXBfZmlsZSBpbiBjYV9maWxlc190b19jbGVhbnVwOgotZGlmZiAt LWdpdCBhL3NyYy9saWIzODkvbGliMzg5L3V0aWxzLnB5IGIvc3JjL2xpYjM4OS9saWIzODkvdXRp bHMucHkKLWluZGV4IGY4ZmJhODE2Yi4uMDQyZGVmMDkwIDEwMDY0NAotLS0tIGEvc3JjL2xpYjM4 OS9saWIzODkvdXRpbHMucHkKLSsrKyBiL3NyYy9saWIzODkvbGliMzg5L3V0aWxzLnB5Ci1AQCAt MzIsMTEgKzMyLDE0IEBAIGltcG9ydCBvcGVyYXRvcgotIGltcG9ydCBzdWJwcm9jZXNzCi0gaW1w b3J0IG1hdGgKLSBpbXBvcnQgZXJybm8KLStmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwsIFVu aW9uCi0gZnJvbSBzb2NrZXQgaW1wb3J0IGdldGZxZG4KLSBmcm9tIGxkYXB1cmwgaW1wb3J0IExE QVBVcmwKLSBmcm9tIGNvbnRleHRsaWIgaW1wb3J0IGNsb3NpbmcKLSBmcm9tIGNyeXB0b2dyYXBo eSBpbXBvcnQgeDUwOQotIGZyb20gY3J5cHRvZ3JhcGh5Lmhhem1hdC5iYWNrZW5kcyBpbXBvcnQg ZGVmYXVsdF9iYWNrZW5kCi0rZnJvbSBjcnlwdG9ncmFwaHkuaGF6bWF0LnByaW1pdGl2ZXMgaW1w b3J0IHNlcmlhbGl6YXRpb24KLStmcm9tIGNyeXB0b2dyYXBoeS5oYXptYXQucHJpbWl0aXZlcy5z ZXJpYWxpemF0aW9uIGltcG9ydCBwa2NzMTIKLSBpbXBvcnQgbGliMzg5Ci0gZnJvbSBwYXRobGli IGltcG9ydCBQYXRoCi0gZnJvbSBzdWJwcm9jZXNzIGltcG9ydCBjaGVja19vdXRwdXQKLUBAIC0x OTkzLDE3ICsxOTk2LDYyIEBAIGRlZiBjaGVja19jZXJ0X2luZm8oY2VydF9maWxlX25hbWUsIHNl YXJjaF90ZXh0KToKLSAgICAgcmV0dXJuIHNlYXJjaF90ZXh0Lmxvd2VyKCkgaW4gY2VydF90ZXh0 Lmxvd2VyKCkKLSAKLSAKLS1kZWYgY2VydF9pc19jYShjZXJ0X2ZpbGVfbmFtZSk6Ci0tICAgIHdp dGggb3BlbihjZXJ0X2ZpbGVfbmFtZSwgInJiIikgYXMgZjoKLS0gICAgICAgIGlmIGlzX2NlcnRf ZGVyKGNlcnRfZmlsZV9uYW1lKToKLS0gICAgICAgICAgICBjZXJ0ID0geDUwOS5sb2FkX2Rlcl94 NTA5X2NlcnRpZmljYXRlKGYucmVhZCgpLCBkZWZhdWx0X2JhY2tlbmQoKSkKLStkZWYgY2VydF9p c19jYShjZXJ0X2RhdGEsIHBrY3MxMl9wYXNzd29yZDogT3B0aW9uYWxbVW5pb25bc3RyLCBieXRl c11dID0gTm9uZSk6Ci0rICAgICIiIgotKyAgICBEZXRlcm1pbmUgaWYgYSBjZXJ0aWZpY2F0ZSBp cyBhIENBLgotKwotKyAgICBTdXBwb3J0cyBQRU0sIERFUiwgYW5kIFBLQ1MjMTIgY2VydGlmaWNh dGVzLCBmcm9tIGJ5dGVzIG9yIGZpbGUgcGF0aHMuCi0rICAgICIiIgotKyAgICAjIElmIHBhc3Nl ZCBieXRlcyBkaXJlY3RseSAoREVSLFBFTSkKLSsgICAgY2VydF9maWxlID0gTm9uZQotKyAgICBp ZiBpc2luc3RhbmNlKGNlcnRfZGF0YSwgKGJ5dGVzLCBieXRlYXJyYXkpKToKLSsgICAgICAgIGRh dGEgPSBieXRlcyhjZXJ0X2RhdGEpCi0rICAgIGVsc2U6Ci0rICAgICAgICBjZXJ0X2ZpbGUgPSBj ZXJ0X2RhdGEKLSsgICAgICAgIHRyeToKLSsgICAgICAgICAgICB3aXRoIG9wZW4oY2VydF9maWxl LCAicmIiKSBhcyBmOgotKyAgICAgICAgICAgICAgICBkYXRhID0gZi5yZWFkKCkKLSsgICAgICAg IGV4Y2VwdCBPU0Vycm9yIGFzIGU6Ci0rICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihmIlVu YWJsZSB0byBsb2FkIGNlcnRpZmljYXRlICd7Y2VydF9kYXRhfSc6IHtlfSIpCi0rCi0rICAgIHRy eToKLSsgICAgICAgICMgcDEyCi0rICAgICAgICBpZiBjZXJ0X2ZpbGUgYW5kIGNlcnRfZmlsZS5s b3dlcigpLmVuZHN3aXRoKCgiLnAxMiIsICIucGZ4IikpOgotKyAgICAgICAgICAgIHRyeToKLSsg ICAgICAgICAgICAgICAgcHJpdmtleSwgY2VydCwgXyA9IHBrY3MxMi5sb2FkX2tleV9hbmRfY2Vy dGlmaWNhdGVzKAotKyAgICAgICAgICAgICAgICAgICAgZGF0YSwgZW5zdXJlX2J5dGVzKHBrY3Mx Ml9wYXNzd29yZCksCi0rICAgICAgICAgICAgICAgICAgICBiYWNrZW5kPWRlZmF1bHRfYmFja2Vu ZCgpCi0rICAgICAgICAgICAgICAgICkKLSsgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFz IGU6Ci0rICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoZiJGYWlsZWQgdG8gbG9hZCBQ S0NTIzEyIGZpbGU6IHtjZXJ0X2ZpbGV9OiB7ZX0iKQotKwotKyAgICAgICAgICAgIGlmIGNlcnQg aXMgTm9uZToKLSsgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTm8gY2VydGlmaWNh dGUgZm91bmQgaW4gUEtDUyMxMiBjb250YWluZXIiKQotKwotKyAgICAgICAgIyBCeXRlcwotKyAg ICAgICAgZWxpZiBjZXJ0X2ZpbGUgaXMgTm9uZToKLSsgICAgICAgICAgICB0cnk6Ci0rICAgICAg ICAgICAgICAgIGNlcnQgPSB4NTA5LmxvYWRfZGVyX3g1MDlfY2VydGlmaWNhdGUoZGF0YSwgZGVm YXVsdF9iYWNrZW5kKCkpCi0rICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSsgICAgICAg ICAgICAgICAgY2VydCA9IHg1MDkubG9hZF9wZW1feDUwOV9jZXJ0aWZpY2F0ZShkYXRhLCBkZWZh dWx0X2JhY2tlbmQoKSkKLSsKLSsgICAgICAgICMgRmlsZQotICAgICAgICAgZWxzZToKLS0gICAg ICAgICAgICBjZXJ0ID0geDUwOS5sb2FkX3BlbV94NTA5X2NlcnRpZmljYXRlKGYucmVhZCgpLCBk ZWZhdWx0X2JhY2tlbmQoKSkKLSsgICAgICAgICAgICB0cnk6Ci0rICAgICAgICAgICAgICAgIGNl cnQgPSB4NTA5LmxvYWRfcGVtX3g1MDlfY2VydGlmaWNhdGUoZGF0YSwgZGVmYXVsdF9iYWNrZW5k KCkpCi0rICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSsgICAgICAgICAgICAgICAgY2Vy dCA9IHg1MDkubG9hZF9kZXJfeDUwOV9jZXJ0aWZpY2F0ZShkYXRhLCBkZWZhdWx0X2JhY2tlbmQo KSkKLSsKLSsgICAgZXhjZXB0IFZhbHVlRXJyb3IgYXMgdmU6Ci0rICAgICAgICByYWlzZSBWYWx1 ZUVycm9yKGYiVW5hYmxlIHRvIGxvYWQgY2VydGlmaWNhdGUgJ3tjZXJ0X2ZpbGV9Jzoge3ZlfSIp Ci0gCi0gICAgIHRyeToKLSsgICAgICAgICMgQ2hlY2sga2V5IHVzYWdlCi0gICAgICAgICBrZXlf dXNhZ2UgPSBjZXJ0LmV4dGVuc2lvbnMuZ2V0X2V4dGVuc2lvbl9mb3Jfb2lkKHg1MDkub2lkLkV4 dGVuc2lvbk9JRC5LRVlfVVNBR0UpCi0gICAgICAgICBpZiBub3Qga2V5X3VzYWdlLnZhbHVlLmtl eV9jZXJ0X3NpZ246Ci0gICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0rCi0rICAgICAgICAjIENo ZWNrIGNvbnN0cmFpbnRzCi0gICAgICAgICBiYXNpY19jb25zdHJhaW50cyA9IGNlcnQuZXh0ZW5z aW9ucy5nZXRfZXh0ZW5zaW9uX2Zvcl9vaWQoCi0gICAgICAgICAgICAgeDUwOS5vaWQuRXh0ZW5z aW9uT0lELkJBU0lDX0NPTlNUUkFJTlRTCi0gICAgICAgICApCi1AQCAtMjAxMSwxMCArMjA1OSwy OSBAQCBkZWYgY2VydF9pc19jYShjZXJ0X2ZpbGVfbmFtZSk6Ci0gICAgICAgICAgICAgcmV0dXJu IEZhbHNlCi0gICAgICAgICBlbHNlOgotICAgICAgICAgICAgIHJldHVybiBUcnVlCi0rCi0gICAg IGV4Y2VwdCB4NTA5LkV4dGVuc2lvbk5vdEZvdW5kOgotICAgICAgICAgIyBObyBleHRlbnNpb25z LCBjaGVjayB0aGUgY2VydCBpbmZvIGRpcmVjdGx5Ci0tICAgICAgICByZXR1cm4gY2hlY2tfY2Vy dF9pbmZvKGNlcnRfZmlsZV9uYW1lLCAiQ0E6VFJVRSIpCi0rICAgICAgICByZXR1cm4gY2hlY2tf Y2VydF9pbmZvKGNlcnRfZmlsZSwgIkNBOlRSVUUiKQotKwotK2RlZiBwZW1fdG9fZGVyKGJsb2I6 IGJ5dGVzKToKLSsgICAgIiIiCi0rICAgIENvbnZlcnQgUEVNIGNlcnRpZmljYXRlIGJ5dGVzIHRv IERFUiBmb3JtYXQuCi0gCi0rICAgIDpwYXJhbSBibG9iOiBQRU0gZW5jb2RlZCBjZXJ0aWZpY2F0 ZSBieXRlcwotKyAgICA6cmV0dXJuOiBERVIgZW5jb2RlZCBjZXJ0aWZpY2F0ZSBieXRlcwotKyAg ICAiIiIKLSsgICAgY2VydCA9IHg1MDkubG9hZF9wZW1feDUwOV9jZXJ0aWZpY2F0ZShibG9iKQot KyAgICByZXR1cm4gY2VydC5wdWJsaWNfYnl0ZXMoc2VyaWFsaXphdGlvbi5FbmNvZGluZy5ERVIp Ci0rCi0rZGVmIGlzX3BlbV9jZXJ0KGJsb2I6IGJ5dGVzKToKLSsgICAgIiIiCi0rICAgIENoZWNr IGlmIHRoZSBnaXZlbiBibG9iIGlzIGEgUEVNIGNlcnRpZmljYXRlLgotKwotKyAgICA6cGFyYW0g YmxvYjogQ2VydGlmaWNhdGUgZGF0YSBieXRlcwotKyAgICA6cmV0dXJuOiBUcnVlIGlmIFBFTSBm b3JtYXQsIGVsc2UgRmFsc2UKLSsgICAgIiIiCi0rICAgIHJldHVybiBiIi0tLS0tQkVHSU4gQ0VS VElGSUNBVEUtLS0tLSIgaW4gYmxvYgotIAotIGRlZiBnZXRfcGFzc3dkX2Zyb21fZmlsZShwYXNz d2RfZmlsZSk6Ci0gICAgIGlmIG9zLnBhdGguZXhpc3RzKHBhc3N3ZF9maWxlKToKLS0tIAotMi41 Mi4wCi0KCmRpZmYgLS1naXQgYS8wMDI5LUlzc3VlLTcyMjQtQ0ktVGVzdC1TaW1wbGlmeS10ZXN0 X3Jlc2VydmVfZGVzY3JpcHRvcl8ucGF0Y2ggYi8wMDI5LUlzc3VlLTcyMjQtQ0ktVGVzdC1TaW1w bGlmeS10ZXN0X3Jlc2VydmVfZGVzY3JpcHRvcl8ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDJiNjEyZjQuLjAwMDAwMDAKLS0tIGEvMDAyOS1Jc3N1ZS03MjI0LUNJLVRlc3Qt U2ltcGxpZnktdGVzdF9yZXNlcnZlX2Rlc2NyaXB0b3JfLnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsOTMgKzAsMCBAQAotRnJvbSBkNWE4M2U4ZjJjY2QwYzlkMTE3OTJmMDI2OTQ3YzQ3ODU5OTZi NGE2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSmFtZXMgQ2hhcG1hbiA8amFjaGFw bWFAcmVkaGF0LmNvbT4KLURhdGU6IFRodSwgNSBGZWIgMjAyNiAxNTozMzowOCArMDAwMAotU3Vi amVjdDogW1BBVENIXSBJc3N1ZSA3MjI0IC0gQ0kgVGVzdCAtIFNpbXBsaWZ5Ci0gdGVzdF9yZXNl cnZlX2Rlc2NyaXB0b3JfdmFsaWRhdGlvbiAoIzcyMjUpCi0KLURlc2NyaXB0aW9uOgotUHJldmlv dXNseSwgdGhlIHRlc3RfcmVzZXJ2ZV9kZXNjcmlwdG9yX3ZhbGlkYXRpb24gQ0l0ZXN0IGNhbGN1 bGF0ZWQKLXRoZSBleHBlY3RlZCBudW1iZXIgb2YgZmlsZSBkZXNjcmlwdG9ycyBiYXNlZCBvbiBi YWNrZW5kcywgaW5kZXhlcywKLVNTTC9GSVBTIG1vZGUsIGFuZCBjb21wYXJlZCBpdCB0byB0aGUg dmFsdWUgcmV0dXJuZWQgYnkgdGhlIHNlcnZlci4KLVRoaXMgYXBwcm9hY2ggaXMgZnJhZ2lsZSwg ZXNwZWNpYWxseSBpbiBGSVBTIG1vZGUuCi0KLUZpeDoKLVRoZSB0ZXN0IGhhcyBiZWVuIHVwZGF0 ZWQgdG8gc2ltcGx5IHZlcmlmeSB0aGF0IHRoZSBzZXJ2ZXIgY29ycmVjdHMKLXRoZSBjb25maWd1 cmVkIG5zc2xhcGQtcmVzZXJ2ZWRlc2NyaXB0b3JzIHZhbHVlIGlmIGl0IGlzIHNldCB0b28gbG93 LAotaW5zdGVhZCBvZiBjYWxjdWxhdGluZyB0aGUgZXhwZWN0ZWQgdG90YWwuCi0KLUZpeGVzOiBo dHRwczovL2dpdGh1Yi5jb20vMzg5ZHMvMzg5LWRzLWJhc2UvaXNzdWVzLzcyMjQKLQotUmV2aWV3 ZWQgYnk6IEBic2ltb25vdmEgIChUaGFuayB5b3UpCi0tLS0KLSAuLi4vc3VpdGVzL3Jlc291cmNl X2xpbWl0cy9mZGxpbWl0c190ZXN0LnB5ICAgfCAzNiArKysrKysrLS0tLS0tLS0tLS0tCi0gMSBm aWxlIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQotCi1kaWZmIC0t Z2l0IGEvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL3Jlc291cmNlX2xpbWl0cy9mZGxpbWl0c190 ZXN0LnB5IGIvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL3Jlc291cmNlX2xpbWl0cy9mZGxpbWl0 c190ZXN0LnB5Ci1pbmRleCBjODQzYTRiMjQuLmE0OWUzNzhjMyAxMDA2NDQKLS0tLSBhL2RpcnNy dnRlc3RzL3Rlc3RzL3N1aXRlcy9yZXNvdXJjZV9saW1pdHMvZmRsaW1pdHNfdGVzdC5weQotKysr IGIvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL3Jlc291cmNlX2xpbWl0cy9mZGxpbWl0c190ZXN0 LnB5Ci1AQCAtMjcsNyArMjcsNyBAQCBSRVNSVl9GRF9BVFRSID0gIm5zc2xhcGQtcmVzZXJ2ZWRl c2NyaXB0b3JzIgotIEdMT0JBTF9MSU1JVCA9IHJlc291cmNlLmdldHJsaW1pdChyZXNvdXJjZS5S TElNSVRfTk9GSUxFKVsxXQotIFNZU1RFTURfTElNSVQgPSBlbnN1cmVfc3RyKGNoZWNrX291dHB1 dCgic3lzdGVtY3RsIHNob3cgLXAgTGltaXROT0ZJTEUgZGlyc3J2QHN0YW5kYWxvbmUxIi5zcGxp dCgiICIpKS5zdHJpcCgpKS5zcGxpdCgnPScpWzFdCi0gQ1VTVE9NX1ZBTCA9IHN0cihpbnQoU1lT VEVNRF9MSU1JVCkgLSAxMCkKLS1SRVNSVl9ERVNDX1ZBTCA9IHN0cigxMCkKLStSRVNSVl9ERVND X1ZBTF9MT1cgPSAxMAotIFRPT19ISUdIX1ZBTCA9IHN0cihHTE9CQUxfTElNSVQgKiAyKQotIFRP T19ISUdIX1ZBTDIgPSBzdHIoaW50KFNZU1RFTURfTElNSVQpICogMikKLSBUT09fTE9XX1ZBTCA9 ICIwIgotQEAgLTg2LDQwICs4NiwzMCBAQCBkZWYgdGVzdF9yZXNlcnZlX2Rlc2NyaXB0b3JfdmFs aWRhdGlvbih0b3BvbG9neV9zdCk6Ci0gICAgIDppZDogOWJhY2RiY2MtNzc1NC00OTU1LThhNTYt MWQ4YzgyYmNlMjc0Ci0gICAgIDpzZXR1cDogU3RhbmRhbG9uZSBJbnN0YW5jZQotICAgICA6c3Rl cHM6Ci0tICAgICAgICAxLiBTZXQgYXR0ciBuc3NsYXBkLXJlc2VydmVkZXNjcmlwdG9ycyB0byBh IGxvdyB2YWx1ZSBvZiBSRVNSVl9ERVNDX1ZBTCAoMTApCi0rICAgICAgICAxLiBTZXQgYXR0ciBu c3NsYXBkLXJlc2VydmVkZXNjcmlwdG9ycyB0byBhIGxvdyB2YWx1ZSAoMTApCi0gICAgICAgICAy LiBWZXJpZnkgbG93IHZhbHVlIGhhcyBiZWVuIHNldAotICAgICAgICAgMy4gUmVzdGFydCBpbnN0 YW5jZSAoT24gcmVzdGFydCB0aGUgcmVzZXJ2ZWRlc2NyaXB0b3IgYXR0ciB3aWxsIGJlIHZhbGlk YXRlZCkKLS0gICAgICAgIDQuIENoZWNrIHVwZGF0ZWQgdmFsdWUgZm9yIG5zc2xhcGQtcmVzZXJ2 ZWRlc2NyaXB0b3JzIGF0dHIKLSsgICAgICAgIDQuIFZlcmlmeSBjb3JyZWN0ZWQgdmFsdWUgZm9y IG5zc2xhcGQtcmVzZXJ2ZWRlc2NyaXB0b3JzID4gbG93IHZhbHVlCi0gICAgIDpleHBlY3RlZHJl c3VsdHM6Ci0gICAgICAgICAxLiBTdWNjZXNzCi0tICAgICAgICAyLiBBIHZhbHVlIG9mIFJFU1JW X0RFU0NfVkFMICgxMCkgaXMgcmV0dXJuZWQKLSsgICAgICAgIDIuIEEgdmFsdWUgb2YgUkVTUlZf REVTQ19WQUxfTE9XICgxMCkgaXMgcmV0dXJuZWQKLSAgICAgICAgIDMuIFN1Y2Nlc3MKLS0gICAg ICAgIDQuIEEgdmFsdWUgb2YgU1RBTkRBTE9ORV9JTlNUX1JFU1JWX0RFU0NTICg1NSkgaXMgcmV0 dXJuZWQKLSsgICAgICAgIDQuIENvcnJlY3RlZCB2YWx1ZSBmb3IgbnNzbGFwZC1yZXNlcnZlZGVz Y3JpcHRvcnMgPiBsb3cgdmFsdWUKLSAgICAgIiIiCi0gCi0tICAgICMgU2V0IG5zc2xhcGQtcmVz ZXJ2ZWRlc2NyaXB0b3JzIHRvIGEgbG93IHZhbHVlIChSRVNSVl9ERVNDX1ZBTDoxMCkKLS0gICAg dG9wb2xvZ3lfc3Quc3RhbmRhbG9uZS5jb25maWcuc2V0KFJFU1JWX0ZEX0FUVFIsIFJFU1JWX0RF U0NfVkFMKQotLSAgICByZXNydl9mZCA9IHRvcG9sb2d5X3N0LnN0YW5kYWxvbmUuY29uZmlnLmdl dF9hdHRyX3ZhbF91dGY4KFJFU1JWX0ZEX0FUVFIpCi0tICAgIGFzc2VydCByZXNydl9mZCA9PSBS RVNSVl9ERVNDX1ZBTAotKyAgICAjIFNldCBuc3NsYXBkLXJlc2VydmVkZXNjcmlwdG9ycyB0byBh IGxvdyB2YWx1ZSAoMTApCi0rICAgIHRvcG9sb2d5X3N0LnN0YW5kYWxvbmUuY29uZmlnLnNldChS RVNSVl9GRF9BVFRSLCBzdHIoUkVTUlZfREVTQ19WQUxfTE9XKSkKLSsgICAgcmVzcnZfZmQgPSBp bnQodG9wb2xvZ3lfc3Quc3RhbmRhbG9uZS5jb25maWcuZ2V0X2F0dHJfdmFsX3V0ZjgoUkVTUlZf RkRfQVRUUikpCi0rICAgIGFzc2VydCByZXNydl9mZCA9PSBSRVNSVl9ERVNDX1ZBTF9MT1cKLSAK LSAgICAgIyBBbiBpbnN0YW5jZSByZXN0YXJ0IHRyaWdnZXJzIGEgdmFsaWRhdGlvbiBvZiB0aGUg Y29uZmlndXJlZCBuc3NsYXBkLXJlc2VydmVkZXNjcmlwdG9ycyBhdHRyaWJ1dGUKLSAgICAgdG9w b2xvZ3lfc3Quc3RhbmRhbG9uZS5yZXN0YXJ0KCkKLSAKLS0gICAgIiIiCi0tICAgIEEgc3RhbmRh bG9uZSBpbnN0YW5jZSBjb250YWlucyBhIHNpbmdsZSBiYWNrZW5kIHdpdGggZGVmYXVsdCBpbmRl eGVzCi0tICAgIHNvIHdlIG9ubHkgY2hlY2sgdGhlc2UuIFRPRE8gYWRkIHRlc3RzIGZvciByZXBs LCBjaGFpbmluZywgUFRBLCBTU0wKLS0gICAgIiIiCi0tICAgIFNUQU5EQUxPTkVfSU5TVF9SRVNS Vl9ERVNDUyA9IDI1IGlmIGlzX2ZpcHMoKSBlbHNlIDIwICMgUmVzZXJ2ZSBkZXNjcmlwdG9yIGNv bnN0YW50IChoaWdoZXIgaW4gRklQUyBtb2RlKQotLSAgICBiYWNrZW5kcyA9IEJhY2tlbmRzKHRv cG9sb2d5X3N0LnN0YW5kYWxvbmUpCi0tICAgIFNUQU5EQUxPTkVfSU5TVF9SRVNSVl9ERVNDUyAr PSAobGVuKGJhY2tlbmRzLmxpc3QoKSkgKiA0KSAjIDQgPSBCYWNrZW5kIGRlc2NyaXB0b3IgY29u c3RhbnQKLS0gICAgZm9yIGJlIGluIGJhY2tlbmRzLmxpc3QoKSA6Ci0tICAgICAgICBTVEFOREFM T05FX0lOU1RfUkVTUlZfREVTQ1MgKz0gbGVuKGJlLmdldF9pbmRleGVzKCkubGlzdCgpKQotLQot LSAgICAjIFZhcmlmeSByZXNlcnZlZGVzY3JpcHRvcnMgaGFzIGJlZW4gdXBkYXRlZAotLSAgICBy ZXNydl9mZCA9IHRvcG9sb2d5X3N0LnN0YW5kYWxvbmUuY29uZmlnLmdldF9hdHRyX3ZhbF91dGY4 KFJFU1JWX0ZEX0FUVFIpCi0tICAgIGFzc2VydCByZXNydl9mZCA9PSBzdHIoU1RBTkRBTE9ORV9J TlNUX1JFU1JWX0RFU0NTKQotKyAgICAjIEdldCB0aGUgY29ycmVjdGVkIHZhbHVlCi0rICAgIGNv cnJlY3RlZF9mZCA9IGludCh0b3BvbG9neV9zdC5zdGFuZGFsb25lLmNvbmZpZy5nZXRfYXR0cl92 YWxfdXRmOChSRVNSVl9GRF9BVFRSKSkKLSsgICAgYXNzZXJ0IGNvcnJlY3RlZF9mZCA+IFJFU1JW X0RFU0NfVkFMX0xPVwotIAotLSAgICBsb2cuaW5mbygidGVzdF9yZXNlcnZlX2Rlc2NyaXB0b3Jf dmFsaWRhdGlvbiBQQVNTRUQiKQotKyAgICBsb2cuaW5mbyhmInRlc3RfcmVzZXJ2ZV9kZXNjcmlw dG9yX3ZhbGlkYXRpb24gUEFTU0VEIChjb3JyZWN0ZWQgZnJvbSB7UkVTUlZfREVTQ19WQUxfTE9X fSB0byB7Y29ycmVjdGVkX2ZkfSkiKQotIAotIEBweXRlc3QubWFyay5za2lwaWYoZHNfaXNfb2xk ZXIoIjEuNC4xLjIiKSwgcmVhc29uPSJOb3QgaW1wbGVtZW50ZWQiKQotIGRlZiB0ZXN0X3Jlc2Vy dmVfZGVzY3JpcHRvcnNfaGlnaCh0b3BvbG9neV9zdCk6Ci0tLSAKLTIuNTIuMAotCgpkaWZmIC0t Z2l0IGEvMDAzMC1Jc3N1ZS03MTc4LUJ1bmRsZWQtamVtYWxsb2MtZmFpbHMtdG8tYnVpbGQtd2l0 aC1HQ0MtLnBhdGNoIGIvMDAzMC1Jc3N1ZS03MTc4LUJ1bmRsZWQtamVtYWxsb2MtZmFpbHMtdG8t YnVpbGQtd2l0aC1HQ0MtLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYzA5 NDc4Li4wMDAwMDAwCi0tLSBhLzAwMzAtSXNzdWUtNzE3OC1CdW5kbGVkLWplbWFsbG9jLWZhaWxz LXRvLWJ1aWxkLXdpdGgtR0NDLS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDk0ICswLDAgQEAK LUZyb20gOWJmYmVjOGM0YWFkMWM2OThmZDgwYjMwODZlMTFmMDZmZDlkZjI2ZCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKLUZyb206IFZpa3RvciBBc2hpcm92IDx2YXNoaXJvdkByZWRoYXQuY29t PgotRGF0ZTogTW9uLCA5IEZlYiAyMDI2IDEzOjE1OjQ0ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hd IElzc3VlIDcxNzggLSBCdW5kbGVkIGplbWFsbG9jIGZhaWxzIHRvIGJ1aWxkIHdpdGggR0NDIDE1 Ci0gKCM3MjE2KQotCi1EZXNjcmlwdGlvbjoKLVVwZGF0ZSBzcGVjIGZpbGUgdG8gZml4IGJ1aWxk IGZhaWx1cmVzIG9uIEZlZG9yYSBSYXdoaWRlCi0KLUZpeGVzOiBodHRwczovL2dpdGh1Yi5jb20v Mzg5ZHMvMzg5LWRzLWJhc2UvaXNzdWVzLzcxNzgKLQotUmV2aWV3ZWQgYnk6IEBwcm9naWVyMzg5 LCBAZHJvaWRlY2sgKFRoYW5rcyEpCi0tLS0KLSBycG0ubWsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgIDEgKwotIHJwbS8zODktZHMtYmFzZS5zcGVjLmluICAgICAgICAgICAg ICAgICAgfCAxMCArKysrKy0tLS0tCi0gcnBtL2plbWFsbG9jLTUuMy4wX3Rocm93X2JhZF9hbGxv Yy5wYXRjaCB8IDEyICsrKysrKysrKysrKwotIDMgZmlsZXMgY2hhbmdlZCwgMTggaW5zZXJ0aW9u cygrKSwgNSBkZWxldGlvbnMoLSkKLSBjcmVhdGUgbW9kZSAxMDA2NDQgcnBtL2plbWFsbG9jLTUu My4wX3Rocm93X2JhZF9hbGxvYy5wYXRjaAotCi1kaWZmIC0tZ2l0IGEvcnBtLm1rIGIvcnBtLm1r Ci1pbmRleCBmOTEwMTE4MTQuLjM3MmNlZTVhNiAxMDA2NDQKLS0tLSBhL3JwbS5tawotKysrIGIv cnBtLm1rCi1AQCAtMTQzLDYgKzE0Myw3IEBAIHNycG1kaXN0ZGlyOgotIHJwbWJ1aWxkcHJlcDoK LSAJY3AgZGlzdC9zb3VyY2VzLyQoVEFSQkFMTCkgJChSUE1CVUlMRCkvU09VUkNFUy8KLSAJY3Ag cnBtLyQoUEFDS0FHRSktKiAkKFJQTUJVSUxEKS9TT1VSQ0VTLwotKwljcCBycG0vamVtYWxsb2Mt NS4zLjBfdGhyb3dfYmFkX2FsbG9jLnBhdGNoICQoUlBNQlVJTEQpL1NPVVJDRVMvCi0gCWlmIFsg JChCVU5ETEVfSkVNQUxMT0MpIC1lcSAxIF07IHRoZW4gXAotIAkJY3AgZGlzdC9zb3VyY2VzLyQo SkVNQUxMT0NfVEFSQkFMTCkgJChSUE1CVUlMRCkvU09VUkNFUy8gOyBcCi0gCWZpCi1kaWZmIC0t Z2l0IGEvcnBtLzM4OS1kcy1iYXNlLnNwZWMuaW4gYi9ycG0vMzg5LWRzLWJhc2Uuc3BlYy5pbgot aW5kZXggNTFiZmQ3ZTc3Li5kYzhjNzVkYWMgMTAwNjQ0Ci0tLS0gYS9ycG0vMzg5LWRzLWJhc2Uu c3BlYy5pbgotKysrIGIvcnBtLzM4OS1kcy1iYXNlLnNwZWMuaW4KLUBAIC0xNTIsOCArMTUyLDgg QEAgQnVpbGRSZXF1aXJlczogICAgcHl0aG9uJXtweXRob24zX3BrZ3ZlcnNpb259LWRldmVsCi0g IyBGb3IgY29ja3BpdAotICVpZiAle3dpdGggY29ja3BpdH0KLSBCdWlsZFJlcXVpcmVzOiAgICBy c3luYwotLUJ1aWxkUmVxdWlyZXM6ICAgIG5wbQotLUJ1aWxkUmVxdWlyZXM6ICAgIG5vZGVqcwot K0J1aWxkUmVxdWlyZXM6ICAgIC91c3IvYmluL25wbQotK0J1aWxkUmVxdWlyZXM6ICAgIC91c3Iv YmluL25vZGUKLSAlZW5kaWYKLSAKLSAjIEVORCBCVUlMRCBSRVFVSVJFUwotQEAgLTE4OCw5ICsx ODgsNyBAQCBSZXF1aXJlczogICAgICAgICAle25hbWV9LXJvYmRiLWxpYnMgPSAle3ZlcnNpb259 LSV7cmVsZWFzZX0KLSBSZXF1aXJlczogICAgICAgICBsaWJkYgotICVlbmRpZgotICVlbmRpZgot LVJlcXVpcmVzOiAgICAgICAgIGxtZGIKLS0jIFRoaXMgcGlja3MgdXAgbGlicGVybC5zbyBhcyBh IFJlcXVpcmVzLCBzbyB3ZSBhZGQgdGhpcyB2ZXJzaW9uZWQgb25lCi0tUmVxdWlyZXM6ICAgICAg ICAgcGVybCg6TU9EVUxFX0NPTVBBVF8lKGV2YWwgImAle19fcGVybH0gLVY6dmVyc2lvbmAiOyBl Y2hvICR2ZXJzaW9uKSkKLStSZXF1aXJlczogICAgICAgICBsbWRiLWxpYnMKLSAjIE5lZWRlZCBi eSBsb2djb252LnBsCi0gJWlmICV7d2l0aG91dCBsaWJiZGJfcm99Ci0gJWlmICV7d2l0aG91dCBi dW5kbGVfbGliZGJ9Ci1AQCAtMjE3LDYgKzIxNSw3IEBAIFNvdXJjZTA6ICAgICAgICAgICV7bmFt ZX0tJXt2ZXJzaW9ufS50YXIuYnoyCi0gU291cmNlMjogICAgICAgICAgJXtuYW1lfS1kZXZlbC5S RUFETUUKLSAlaWYgJXt3aXRoIGJ1bmRsZV9qZW1hbGxvY30KLSBTb3VyY2UzOiAgICAgICAgICBo dHRwczovL2dpdGh1Yi5jb20vamVtYWxsb2MvJXtqZW1hbGxvY19uYW1lfS9yZWxlYXNlcy9kb3du bG9hZC8le2plbWFsbG9jX3Zlcn0vJXtqZW1hbGxvY19uYW1lfS0le2plbWFsbG9jX3Zlcn0udGFy LmJ6MgotK1NvdXJjZTU6ICAgICAgICAgIGplbWFsbG9jLTUuMy4wX3Rocm93X2JhZF9hbGxvYy5w YXRjaAotICVlbmRpZgotICVpZiAle3dpdGggYnVuZGxlX2xpYmRifQotIFNvdXJjZTQ6ICAgICAg ICAgIGh0dHBzOi8vZmVkb3JhcGVvcGxlLm9yZy9ncm91cHMvMzg5ZHMvbGliZGItNS4zLjI4LTU5 LnRhci5iejIKLUBAIC00MzQsNiArNDMzLDcgQEAgQ09DS1BJVF9GTEFHUz0iLS1kaXNhYmxlLWNv Y2twaXQiCi0gCi0gIyBCdWlsZCBqZW1hbGxvYwotIHB1c2hkIC4uLyV7amVtYWxsb2NfbmFtZX0t JXtqZW1hbGxvY192ZXJ9Ci0rcGF0Y2ggLXAxIC1GMyA8ICV7U09VUkNFNX0KLSAlY29uZmlndXJl IFwKLSAgICAgICAgIC0tbGliZGlyPSV7X2xpYmRpcn0vJXtwa2duYW1lfS9saWIgXAotICAgICAg ICAgLS1iaW5kaXI9JXtfbGliZGlyfS8le3BrZ25hbWV9L2JpbiBcCi1kaWZmIC0tZ2l0IGEvcnBt L2plbWFsbG9jLTUuMy4wX3Rocm93X2JhZF9hbGxvYy5wYXRjaCBiL3JwbS9qZW1hbGxvYy01LjMu MF90aHJvd19iYWRfYWxsb2MucGF0Y2gKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAw MDAwMDAuLjY4NWU2OTY4YwotLS0tIC9kZXYvbnVsbAotKysrIGIvcnBtL2plbWFsbG9jLTUuMy4w X3Rocm93X2JhZF9hbGxvYy5wYXRjaAotQEAgLTAsMCArMSwxMiBAQAotK2RpZmYgLS1naXQgYS9z cmMvamVtYWxsb2NfY3BwLmNwcCBiL3NyYy9qZW1hbGxvY19jcHAuY3BwCi0raW5kZXggZmZmZDZh ZWUuLjVhNjgyOTkxIDEwMDY0NAotKy0tLSBhL3NyYy9qZW1hbGxvY19jcHAuY3BwCi0rKysrIGIv c3JjL2plbWFsbG9jX2NwcC5jcHAKLStAQCAtOTMsNyArOTMsNyBAQCBoYW5kbGVPT00oc3RkOjpz aXplX3Qgc2l6ZSwgYm9vbCBub3Rocm93KSB7Ci0rICAgICAgICB9Ci0rCi0rICAgICAgICBpZiAo cHRyID09IG51bGxwdHIgJiYgIW5vdGhyb3cpCi0rLQkJc3RkOjpfX3Rocm93X2JhZF9hbGxvYygp OwotKysJCXRocm93IHN0ZDo6YmFkX2FsbG9jKCk7Ci0rICAgICAgICByZXR1cm4gcHRyOwotKyB9 Ci0tLSAKLTIuNTIuMAotCgpkaWZmIC0tZ2l0IGEvMDAzMS1Jc3N1ZS03MTIxLTJuZC1MZWFrU2Fu aXRpemVyLXZhcmlvdXMtbGVha3MtZHVyaW5nLXJlLnBhdGNoIGIvMDAzMS1Jc3N1ZS03MTIxLTJu ZC1MZWFrU2FuaXRpemVyLXZhcmlvdXMtbGVha3MtZHVyaW5nLXJlLnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCBjMDYwOTgzLi4wMDAwMDAwCi0tLSBhLzAwMzEtSXNzdWUtNzEy MS0ybmQtTGVha1Nhbml0aXplci12YXJpb3VzLWxlYWtzLWR1cmluZy1yZS5wYXRjaAorKysgL2Rl di9udWxsCkBAIC0xLDcxICswLDAgQEAKLUZyb20gZmI0MjU0YTk3ZmUwZGEyNTA2NGQyZjYyOTY3 MDVjOWUxODEwZmZkYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFZpa3RvciBBc2hp cm92IDx2YXNoaXJvdkByZWRoYXQuY29tPgotRGF0ZTogTW9uLCA5IEZlYiAyMDI2IDEzOjE4OjA5 ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIElzc3VlIDcxMjEgLSAoMm5kKSBMZWFrU2FuaXRpemVy OiB2YXJpb3VzIGxlYWtzIGR1cmluZwotIHJlcGxpY2F0aW9uICgjNzIxMikKLQotQnVnIERlc2Ny aXB0aW9uOgotV2l0aCB0aGUgcHJldmlvdXMgZml4IDc1ZTBlNDg3NTQ1ODkzYTdiMGQ4M2Y5NGY5 MjY0YzEwZjhiYjAzNTMgYXBwbGllZCwKLXNlcnZlciBjYW4gY3Jhc2ggaW4gYmVyX2J2Y3B5Lgot Ci1gYGAKLVByb2dyYW0gdGVybWluYXRlZCB3aXRoIHNpZ25hbCBTSUdTRUdWLCBTZWdtZW50YXRp b24gZmF1bHQuCi0jMCAgYmVyX2J2Y3B5IChidnM9MHg3ZjFkMDAwMDAwMDAsIGJ2ZD0weDdmMWRh MmNkNzNjMCkgYXQgbGRhcC9zZXJ2ZXJzL3NsYXBkL3ZhbHVlLmM6NDcKLTQ3ICAgICAgICAgIGxl biA9IGJ2cy0+YnZfbGVuOwotW0N1cnJlbnQgdGhyZWFkIGlzIDEgKFRocmVhZCAweDdmMWRiNDdm ZTY0MCAoTFdQIDM2NTc2KSldCi0oZ2RiKSBidAotIzAgIGJlcl9idmNweSAoYnZzPTB4N2YxZDAw MDAwMDAwLCBidmQ9MHg3ZjFkYTJjZDczYzApIGF0IGxkYXAvc2VydmVycy9zbGFwZC92YWx1ZS5j OjQ3Ci0jMSAgYmVyX2J2Y3B5IChidnM9MHg3ZjFkMDAwMDAwMDAsIGJ2ZD0weDdmMWRhMmNkNzNj MCkgYXQgbGRhcC9zZXJ2ZXJzL3NsYXBkL3ZhbHVlLmM6NDAKLSMyICBzbGFwaV92YWx1ZV9zZXRf YmVydmFsIChidmFsPTB4N2YxZDAwMDAwMDAwLCB2YWx1ZT0weDdmMWRhMmNkNzNjMCkgYXQgbGRh cC9zZXJ2ZXJzL3NsYXBkL3ZhbHVlLmM6MzIyCi0jMyAgc2xhcGlfdmFsdWVfc2V0X2JlcnZhbCAo dmFsdWU9dmFsdWVAZW50cnk9MHg3ZjFkYTJjZDczYzAsIGJ2YWw9YnZhbEBlbnRyeT0weDdmMWQw MDAwMDAwMCkgYXQgbGRhcC9zZXJ2ZXJzL3NsYXBkL3ZhbHVlLmM6MzE3Ci0jNCAgMHgwMDAwN2Yx ZTQ4YjdkNzg3IGluIHZhbHVlX2luaXQgKHY9dkBlbnRyeT0weDdmMWRhMmNkNzNjMCwgYnZhbD1i dmFsQGVudHJ5PTB4N2YxZDAwMDAwMDAwLCB0PXRAZW50cnk9MCAnXDAwMCcsIGNzbj1jc25AZW50 cnk9MHgwKQotICAgIGF0IGxkYXAvc2VydmVycy9zbGFwZC92YWx1ZS5jOjE3OQotIzUgIDB4MDAw MDdmMWU0OGI3ZDg4NCBpbiB2YWx1ZV9uZXcgKGJ2YWw9YnZhbEBlbnRyeT0weDdmMWQwMDAwMDAw MCwgdD10QGVudHJ5PTAgJ1wwMDAnLCBjc249Y3NuQGVudHJ5PTB4MCkgYXQgbGRhcC9zZXJ2ZXJz L3NsYXBkL3ZhbHVlLmM6MTU4Ci0jNiAgMHgwMDAwN2YxZTQ4YjdkZGI3IGluIHNsYXBpX3ZhbHVl X2R1cCAodj0weDdmMWQwMDAwMDAwMCkgYXQgbGRhcC9zZXJ2ZXJzL3NsYXBkL3ZhbHVlLmM6MTQ3 Ci0jNyAgMHgwMDAwN2YxZTQ4YjdlMjYyIGluIHZhbHVlc2V0X3NldF92YWx1ZXNldCAodnMyPTB4 N2YxZDUwMmI1MjE4LCB2czE9MHg3ZjFkYTJjNWIzNTgpIGF0IGxkYXAvc2VydmVycy9zbGFwZC92 YWx1ZXNldC5jOjEyNDQKLSM4ICB2YWx1ZXNldF9zZXRfdmFsdWVzZXQgKHZzMT0weDdmMWRhMmM1 YjM1OCwgdnMyPTB4N2YxZDUwMmI1MjE4KSBhdCBsZGFwL3NlcnZlcnMvc2xhcGQvdmFsdWVzZXQu YzoxMjIwCi0jOSAgMHgwMDAwN2YxZTQ4YWRkNGFmIGluIHNsYXBpX2F0dHJfZHVwIChhdHRyPTB4 N2YxZDUwMmI1MWUwKSBhdCBsZGFwL3NlcnZlcnMvc2xhcGQvYXR0ci5jOjM5NgotIzEwIDB4MDAw MDdmMWU0OGFmMGY2MCBpbiBzbGFwaV9lbnRyeV9kdXAgKGU9MHg3ZjFkYTJjMTkwMDApIGF0IGxk YXAvc2VydmVycy9zbGFwZC9lbnRyeS5jOjIwMzYKLSMxMSAweDAwMDA3ZjFlNDQyYzczNGUgaW4g bGRibV9iYWNrX21vZGlmeSAocGI9MHg3ZjFkYTJjMDAwMDApIGF0IGxkYXAvc2VydmVycy9zbGFw ZC9iYWNrLWxkYm0vbGRibV9tb2RpZnkuYzo3NDEKLSMxMiAweDAwMDA3ZjFlNDhiMzAwNzYgaW4g b3Bfc2hhcmVkX21vZGlmeSAocGI9cGJAZW50cnk9MHg3ZjFkYTJjMDAwMDAsIHB3X2NoYW5nZT1w d19jaGFuZ2VAZW50cnk9MCwgb2xkX3B3PTB4MCkKLSAgICBhdCBsZGFwL3NlcnZlcnMvc2xhcGQv bW9kaWZ5LmM6MTA3OQotIzEzIDB4MDAwMDdmMWU0OGIzMGNlZCBpbiBkb19tb2RpZnkgKHBiPXBi QGVudHJ5PTB4N2YxZGEyYzAwMDAwKSBhdCBsZGFwL3NlcnZlcnMvc2xhcGQvbW9kaWZ5LmM6Mzc3 Ci0jMTQgMHgwMDAwNTVlOTkwZTJmZDFjIGluIGNvbm5lY3Rpb25fZGlzcGF0Y2hfb3BlcmF0aW9u IChwYj0weDdmMWRhMmMwMDAwMCwgb3A9PG9wdGltaXplZCBvdXQ+LCBjb25uPTxvcHRpbWl6ZWQg b3V0PikKLSAgICBhdCBsZGFwL3NlcnZlcnMvc2xhcGQvY29ubmVjdGlvbi5jOjY3MgotIzE1IGNv bm5lY3Rpb25fdGhyZWFkbWFpbiAoYXJnPTxvcHRpbWl6ZWQgb3V0PikgYXQgbGRhcC9zZXJ2ZXJz L3NsYXBkL2Nvbm5lY3Rpb24uYzoxOTU1Ci0jMTYgMHgwMDAwN2YxZTQ4ODM5YmQ0IGluIF9wdF9y b290IChhcmc9MHg3ZjFlNDM5ZDk1MDApIGF0IHB0aHJlYWRzLy4uLy4uLy4uLy4uL25zcHIvcHIv c3JjL3B0aHJlYWRzL3B0dGhyZWFkLmM6MTkxCi0jMTcgMHgwMDAwN2YxZTQ4NjhhMTlhIGluIHN0 YXJ0X3RocmVhZCAoYXJnPTxvcHRpbWl6ZWQgb3V0PikgYXQgcHRocmVhZF9jcmVhdGUuYzo0NDMK LSMxOCAweDAwMDA3ZjFlNDg3MGYxMDAgaW4gY2xvbmUzICgpIGF0IC4uL3N5c2RlcHMvdW5peC9z eXN2L2xpbnV4L3g4Nl82NC9jbG9uZTMuUzo4MQotYGBgCi0KLVRoZSBmaXggY2hhbmdlZCBmcm9t IGFsd2F5cyBzZXR0aW5nIGB2X2NzbnNldCA9IE5VTExgIHRvIG9ubHkgZnJlZWluZyBpdAotaW5z aWRlIHRoZSBpZi1ibG9jay4KLQotRml4IERlc2NyaXB0aW9uOgotS2VlcCBgY3Nuc2V0X2ZyZWUo KWAgb3V0c2lkZSB0aGUgaWYtYmxvY2sgdG8gaGFuZGxlIGFsbCB2YWx1ZXMsIG5vdCBqdXN0Ci10 aG9zZSBtYXRjaGluZyB0aGUgY29uZHRpb24uCi0KLVJlbGF0ZWQ6IGh0dHBzOi8vZ2l0aHViLmNv bS8zODlkcy8zODktZHMtYmFzZS9pc3N1ZXMvNzEyMQotCi1SZXZpZXdlZCBieTogQHByb2dpZXIz ODksIEBkcm9pZGVjayAoVGhhbmtzISkKLS0tLQotIGxkYXAvc2VydmVycy9zbGFwZC9lbnRyeXdz aS5jIHwgMiArLQotIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigt KQotCi1kaWZmIC0tZ2l0IGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL2VudHJ5d3NpLmMgYi9sZGFwL3Nl cnZlcnMvc2xhcGQvZW50cnl3c2kuYwotaW5kZXggZTFiZGMxYmFiLi4wZDA0NDA5MmQgMTAwNjQ0 Ci0tLS0gYS9sZGFwL3NlcnZlcnMvc2xhcGQvZW50cnl3c2kuYwotKysrIGIvbGRhcC9zZXJ2ZXJz L3NsYXBkL2VudHJ5d3NpLmMKLUBAIC0xMTg1LDggKzExODUsOCBAQCByZXNvbHZlX2F0dHJpYnV0 ZV9zdGF0ZV9kZWxldGVkX3RvX3ByZXNlbnQoU2xhcGlfRW50cnkgKmUsIFNsYXBpX0F0dHIgKmEs IFNsYXBpXwotICAgICAgICAgICAgIGlmICgoY3NuX2NvbXBhcmUodnVjc24sIGRlbGV0ZWRjc24p ID49IDApIHx8Ci0gICAgICAgICAgICAgICAgIHZhbHVlX2Rpc3Rpbmd1aXNoZWRfYXRfY3NuKGUs IGEsIHZhbHVlc3RvdXBkYXRlW2ldLCBkZWxldGVkY3NuKSkgewotICAgICAgICAgICAgICAgICBl bnRyeV9kZWxldGVkX3ZhbHVlX3RvX3ByZXNlbnRfdmFsdWUoYSwgdmFsdWVzdG91cGRhdGVbaV0p OwotLSAgICAgICAgICAgICAgICBjc25zZXRfZnJlZSgmdmFsdWVzdG91cGRhdGVbaV0tPnZfY3Nu c2V0KTsKLSAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgY3Nuc2V0X2ZyZWUoJnZhbHVlc3Rv dXBkYXRlW2ldLT52X2NzbnNldCk7Ci0gICAgICAgICB9Ci0gICAgIH0KLSB9Ci0tLSAKLTIuNTIu MAotCgpkaWZmIC0tZ2l0IGEvMDAzMi1Jc3N1ZS03MjIzLVJldmVydC1pbmRleC1zY2FuLWxpbWl0 cy1mb3Itc3lzdGVtLWluZGV4LnBhdGNoIGIvMDAzMi1Jc3N1ZS03MjIzLVJldmVydC1pbmRleC1z Y2FuLWxpbWl0cy1mb3Itc3lzdGVtLWluZGV4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCBjNjMyMmZjLi4wMDAwMDAwCi0tLSBhLzAwMzItSXNzdWUtNzIyMy1SZXZlcnQtaW5k ZXgtc2Nhbi1saW1pdHMtZm9yLXN5c3RlbS1pbmRleC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDc3OCArMCwwIEBACi1Gcm9tIDM5Mzg5NDJhNTQxOGFkZDgzNjE2YjE0MTNmMzA3MGQzOTRjMzBh N2YgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBWaWt0b3IgQXNoaXJvdiA8dmFzaGly b3ZAcmVkaGF0LmNvbT4KLURhdGU6IFRodSwgNSBGZWIgMjAyNiAxMjoxNzowNiArMDEwMAotU3Vi amVjdDogW1BBVENIXSBJc3N1ZSA3MjIzIC0gUmV2ZXJ0IGluZGV4IHNjYW4gbGltaXRzIGZvciBz eXN0ZW0gaW5kZXhlcwotCi1UaGlzIHJldmVydHMgY2hhbmdlcyBpbnRyb2R1Y2VkIGJ5IHRoZSBm b2xsb3dpbmcgY29tbWl0czoKLWM2ZjQ1OGI0MiBJc3N1ZSA3MTg5IC0gRFNCTEUwMDA3IGdlbmVy YXRlcyBpbmNvcnJlY3QgcmVtZWRpYXRpb24gY29tbWFuZHMgZm9yIHNjYW4gbGltaXRzCi04YjZi M2E5ZjkgSXNzdWUgNjk2NiAtIE9uIGxhcmdlIERCLCB1bmxpbWl0ZWQgSURMIHNjYW4gbGltaXQg cmVkdWNlIHRoZSBTUkNIIHBlcmZvcm1hbmNlCi0KLVJlbGF0ZXM6IGh0dHBzOi8vZ2l0aHViLmNv bS8zODlkcy8zODktZHMtYmFzZS9pc3N1ZXMvNzIyMwotCi1SZXZpZXdlZCBieTogQHByb2dpZXIz ODksIEB0Ym9yZGF6LCBAZHJvaWRlY2sgKFRoYW5rcyEpCi0tLS0KLSAuLi4vdGVzdHMvc3VpdGVz L2NvbmZpZy9jb25maWdfdGVzdC5weSAgICAgICAgfCAgMjcgKy0tLQotIC4uLi9oZWFsdGhjaGVj ay9oZWFsdGhfc3lzdGVtX2luZGV4ZXNfdGVzdC5weSB8IDEzNiArLS0tLS0tLS0tLS0tLS0tLS0K LSAuLi4vcGFnZWRfcmVzdWx0cy9wYWdlZF9yZXN1bHRzX3Rlc3QucHkgICAgICAgfCAgMjUgKy0t LQotIGxkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vYmFjay1sZGJtLmggICAgICB8ICAgMSAt Ci0gbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9pbmRleC5jICAgICAgICAgIHwgICAyIC0K LSBsZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2luc3RhbmNlLmMgICAgICAgfCAxMDQgKysr LS0tLS0tLS0tLS0KLSBsZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2xkYm1fY29uZmlnLmMg ICAgfCAgMzAgLS0tLQotIGxkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vbGRibV9jb25maWcu aCAgICB8ICAgMSAtCi0gLi4uL3NsYXBkL2JhY2stbGRibS9sZGJtX2luZGV4X2NvbmZpZy5jICAg ICAgIHwgICA4IC0tCi0gc3JjL2xpYjM4OS9saWIzODkvYmFja2VuZC5weSAgICAgICAgICAgICAg ICAgIHwgIDUwICsrLS0tLS0KLSBzcmMvbGliMzg5L2xpYjM4OS9jbGlfY29uZi9iYWNrZW5kLnB5 ICAgICAgICAgfCAgMjAgLS0tCi0gMTEgZmlsZXMgY2hhbmdlZCwgNDAgaW5zZXJ0aW9ucygrKSwg MzY0IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVz L2NvbmZpZy9jb25maWdfdGVzdC5weSBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9jb25maWcv Y29uZmlnX3Rlc3QucHkKLWluZGV4IGNiYjg4NzVmYS4uMmM3ZDk0OWQwIDEwMDY0NAotLS0tIGEv ZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL2NvbmZpZy9jb25maWdfdGVzdC5weQotKysrIGIvZGly c3J2dGVzdHMvdGVzdHMvc3VpdGVzL2NvbmZpZy9jb25maWdfdGVzdC5weQotQEAgLTcwNiwxOSAr NzA2LDE3IEBAIGRlZiB0ZXN0X25kbl9jYWNoZV9zaXplX2VuZm9yY2VtZW50KHRvcG8sIHJlcXVl c3QpOgotIAotICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihmaW4pCi0gCi0tZGVmIHRlc3RfcmVx dWlyZV9pbmRleCh0b3BvLCByZXF1ZXN0KToKLStkZWYgdGVzdF9yZXF1aXJlX2luZGV4KHRvcG8p OgotICAgICAiIiJWYWxpZGF0ZSB0aGF0IHVuaW5kZXhlZCBzZWFyY2hlcyBhcmUgcmVqZWN0ZWQK LSAKLSAgICAgOmlkOiBmYjZlMzFmMi1hY2MyLTRlNzUtYTE5NS01YzM1NmZhZWI4MDMKLSAgICAg OnNldHVwOiBTdGFuZGFsb25lIGluc3RhbmNlCi0gICAgIDpzdGVwczoKLSAgICAgICAgIDEuIFNl dCAibnNzbGFwZC1yZXF1aXJlLWluZGV4IiB0byAib24iCi0tICAgICAgICAyLiBhbmNlc3Rvcmlk L2lkbHNjYW5saW1pdCB0byAxMDAKLS0gICAgICAgIDMuIFRlc3QgYW4gdW5pbmRleGVkIHNlYXJj aCBpcyByZWplY3RlZAotKyAgICAgICAgMi4gVGVzdCBhbiB1bmluZGV4ZWQgc2VhcmNoIGlzIHJl amVjdGVkCi0gICAgIDpleHBlY3RlZHJlc3VsdHM6Ci0gICAgICAgICAxLiBTdWNjZXNzCi0gICAg ICAgICAyLiBTdWNjZXNzCi0tICAgICAgICAzLiBTdWNjZXNzCi0gICAgICIiIgotIAotICAgICAj IFNldCB0aGUgY29uZmlnCi1AQCAtNzI5LDEwICs3MjcsNiBAQCBkZWYgdGVzdF9yZXF1aXJlX2lu ZGV4KHRvcG8sIHJlcXVlc3QpOgotIAotICAgICBkYl9jZmcgPSBEYXRhYmFzZUNvbmZpZyh0b3Bv LnN0YW5kYWxvbmUpCi0gICAgIGRiX2NmZy5zZXQoWygnbnNzbGFwZC1pZGxpc3RzY2FubGltaXQn LCAnMTAwJyldKQotLSAgICBiYWNrZW5kID0gQmFja2VuZHModG9wby5zdGFuZGFsb25lKS5nZXRf YmFja2VuZChERUZBVUxUX1NVRkZJWCkKLS0gICAgYW5jZXN0b3JpZF9pbmRleCA9IGJhY2tlbmQu Z2V0X2luZGV4KCdhbmNlc3RvcmlkJykKLS0gICAgYW5jZXN0b3JpZF9pbmRleC5yZXBsYWNlKCJu c0luZGV4SURMaXN0U2NhbkxpbWl0IiwgZW5zdXJlX2J5dGVzKCJsaW1pdD0xMDAgdHlwZT1lcSBm bGFncz1BTkQiKSkKLS0gICAgdG9wby5zdGFuZGFsb25lLnJlc3RhcnQoKQotIAotICAgICB1c2Vy cyA9IFVzZXJBY2NvdW50cyh0b3BvLnN0YW5kYWxvbmUsIERFRkFVTFRfU1VGRklYKQotICAgICBm b3IgaSBpbiByYW5nZSgxMDEpOgotQEAgLTc0MywxNSArNzM3LDEwIEBAIGRlZiB0ZXN0X3JlcXVp cmVfaW5kZXgodG9wbywgcmVxdWVzdCk6Ci0gICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhsZGFwLlVO V0lMTElOR19UT19QRVJGT1JNKToKLSAgICAgICAgIHJhd19vYmplY3RzLmZpbHRlcigiKGRlc2Ny aXB0aW9uPXRlc3QqKSIpCi0gCi0tICAgIGRlZiBmaW4oKToKLS0gICAgICAgIGFuY2VzdG9yaWRf aW5kZXgucmVwbGFjZSgibnNJbmRleElETGlzdFNjYW5MaW1pdCIsIGVuc3VyZV9ieXRlcygibGlt aXQ9NTAwMCB0eXBlPWVxIGZsYWdzPUFORCIpKQotLQotLSAgICByZXF1ZXN0LmFkZGZpbmFsaXpl cihmaW4pCi0tCi0gCi0gCi0gQHB5dGVzdC5tYXJrLnNraXBpZihkc19pc19vbGRlcignMS40LjIn KSwgcmVhc29uPSJUaGUgY29uZmlnIHNldHRpbmcgb25seSBleGlzdHMgaW4gMS40LjIgYW5kIGhp Z2hlciIpCi0tZGVmIHRlc3RfcmVxdWlyZV9pbnRlcm5hbF9pbmRleCh0b3BvLCByZXF1ZXN0KToK LStkZWYgdGVzdF9yZXF1aXJlX2ludGVybmFsX2luZGV4KHRvcG8pOgotICAgICAiIiJFbnN1cmUg aW50ZXJuYWwgb3BlcmF0aW9ucyByZXF1aXJlIGluZGV4ZWQgYXR0cmlidXRlcwotIAotICAgICA6 aWQ6IDIyYjk0ZjMwLTU5ZTMtNGYyNy04OWExLWM0ZjRiZTAzNmY3ZgotQEAgLTc4MiwxMCArNzcx LDYgQEAgZGVmIHRlc3RfcmVxdWlyZV9pbnRlcm5hbF9pbmRleCh0b3BvLCByZXF1ZXN0KToKLSAg ICAgIyBDcmVhdGUgYSBidW5jaCBvZiB1c2VycwotICAgICBkYl9jZmcgPSBEYXRhYmFzZUNvbmZp Zyh0b3BvLnN0YW5kYWxvbmUpCi0gICAgIGRiX2NmZy5zZXQoWygnbnNzbGFwZC1pZGxpc3RzY2Fu bGltaXQnLCAnMTAwJyldKQotLSAgICBiYWNrZW5kID0gQmFja2VuZHModG9wby5zdGFuZGFsb25l KS5nZXRfYmFja2VuZChERUZBVUxUX1NVRkZJWCkKLS0gICAgYW5jZXN0b3JpZF9pbmRleCA9IGJh Y2tlbmQuZ2V0X2luZGV4KCdhbmNlc3RvcmlkJykKLS0gICAgYW5jZXN0b3JpZF9pbmRleC5yZXBs YWNlKCJuc0luZGV4SURMaXN0U2NhbkxpbWl0IiwgZW5zdXJlX2J5dGVzKCJsaW1pdD0xMDAgdHlw ZT1lcSBmbGFncz1BTkQiKSkKLS0gICAgdG9wby5zdGFuZGFsb25lLnJlc3RhcnQoKQotICAgICB1 c2VycyA9IFVzZXJBY2NvdW50cyh0b3BvLnN0YW5kYWxvbmUsIERFRkFVTFRfU1VGRklYKQotICAg ICBmb3IgaSBpbiByYW5nZSgxMDIsIDIwMik6Ci0gICAgICAgICB1c2Vycy5jcmVhdGVfdGVzdF91 c2VyKHVpZD1pKQotQEAgLTgxMCwxMiArNzk1LDYgQEAgZGVmIHRlc3RfcmVxdWlyZV9pbnRlcm5h bF9pbmRleCh0b3BvLCByZXF1ZXN0KToKLSAgICAgd2l0aCBweXRlc3QucmFpc2VzKGxkYXAuVU5X SUxMSU5HX1RPX1BFUkZPUk0pOgotICAgICAgICAgdXNlci5kZWxldGUoKQotIAotLSAgICBkZWYg ZmluKCk6Ci0tICAgICAgICBhbmNlc3RvcmlkX2luZGV4LnJlcGxhY2UoIm5zSW5kZXhJRExpc3RT Y2FuTGltaXQiLCBlbnN1cmVfYnl0ZXMoImxpbWl0PTUwMDAgdHlwZT1lcSBmbGFncz1BTkQiKSkK LS0KLS0gICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoZmluKQotLQotLQotIAotIGRlZiBnZXRfcHN0 YWNrKHBpZCk6Ci0gICAgICIiIkdldCBhIHBzdGFjayBvZiB0aGUgcGlkLiIiIgotZGlmZiAtLWdp dCBhL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9oZWFsdGhjaGVjay9oZWFsdGhfc3lzdGVtX2lu ZGV4ZXNfdGVzdC5weSBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9oZWFsdGhjaGVjay9oZWFs dGhfc3lzdGVtX2luZGV4ZXNfdGVzdC5weQotaW5kZXggNDg2ZmFkNDRiLi4xNDA4NDVhMzMgMTAw NjQ0Ci0tLS0gYS9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvaGVhbHRoY2hlY2svaGVhbHRoX3N5 c3RlbV9pbmRleGVzX3Rlc3QucHkKLSsrKyBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9oZWFs dGhjaGVjay9oZWFsdGhfc3lzdGVtX2luZGV4ZXNfdGVzdC5weQotQEAgLTE3Miw5ICsxNzIsNyBA QCBkZWYgdGVzdF9taXNzaW5nX3BhcmVudGlkKHRvcG9sb2d5X3N0LCBsb2dfYnVmZmVyaW5nX2Vu YWJsZWQpOgotIAotICAgICBsb2cuaW5mbygiUmUtYWRkIHRoZSBwYXJlbnRJZCBpbmRleCIpCi0g ICAgIGJhY2tlbmQgPSBCYWNrZW5kcyhzdGFuZGFsb25lKS5nZXQoInVzZXJSb290IikKLS0gICAg YmFja2VuZC5hZGRfaW5kZXgoInBhcmVudGlkIiwgWyJlcSJdLCBtYXRjaGluZ19ydWxlcz1bImlu dGVnZXJPcmRlcmluZ01hdGNoIl0sCi0tICAgICAgICAgICAgICAgICAgICAgIGlkbGlzdHNjYW5s aW1pdD1bJ2xpbWl0PTUwMDAgdHlwZT1lcSBmbGFncz1BTkQnXSkKLS0gICAgc3RhbmRhbG9uZS5y ZXN0YXJ0KCkKLSsgICAgYmFja2VuZC5hZGRfaW5kZXgoInBhcmVudGlkIiwgWyJlcSJdLCBtYXRj aGluZ19ydWxlcz1bImludGVnZXJPcmRlcmluZ01hdGNoIl0pCi0gCi0gICAgIHJ1bl9oZWFsdGhj aGVja19hbmRfZmx1c2hfbG9nKHRvcG9sb2d5X3N0LCBzdGFuZGFsb25lLCBqc29uPUZhbHNlLCBz ZWFyY2hlZF9jb2RlPUNNRF9PVVRQVVQpCi0gICAgIHJ1bl9oZWFsdGhjaGVja19hbmRfZmx1c2hf bG9nKHRvcG9sb2d5X3N0LCBzdGFuZGFsb25lLCBqc29uPVRydWUsIHNlYXJjaGVkX2NvZGU9SlNP Tl9PVVRQVVQpCi1AQCAtMjYzLDggKzI2MSw3IEBAIGRlZiB0ZXN0X3Vzbl9wbHVnaW5fbWlzc2lu Z19lbnRyeXVzbih0b3BvbG9neV9zdCwgdXNuX3BsdWdpbl9lbmFibGVkLCBsb2dfYnVmZmVyCi0g Ci0gICAgIGxvZy5pbmZvKCJSZS1hZGQgdGhlIGVudHJ5dXNuIGluZGV4IikKLSAgICAgYmFja2Vu ZCA9IEJhY2tlbmRzKHN0YW5kYWxvbmUpLmdldCgidXNlclJvb3QiKQotLSAgICBiYWNrZW5kLmFk ZF9pbmRleCgiZW50cnl1c24iLCBbImVxIl0sIG1hdGNoaW5nX3J1bGVzPVsiaW50ZWdlck9yZGVy aW5nTWF0Y2giXSwKLS0gICAgICAgICAgICAgICAgICAgICAgaWRsaXN0c2NhbmxpbWl0PVsnbGlt aXQ9NTAwMCB0eXBlPWVxIGZsYWdzPUFORCddKQotKyAgICBiYWNrZW5kLmFkZF9pbmRleCgiZW50 cnl1c24iLCBbImVxIl0sIG1hdGNoaW5nX3J1bGVzPVsiaW50ZWdlck9yZGVyaW5nTWF0Y2giXSkK LSAKLSAgICAgcnVuX2hlYWx0aGNoZWNrX2FuZF9mbHVzaF9sb2codG9wb2xvZ3lfc3QsIHN0YW5k YWxvbmUsIGpzb249RmFsc2UsIHNlYXJjaGVkX2NvZGU9Q01EX09VVFBVVCkKLSAgICAgcnVuX2hl YWx0aGNoZWNrX2FuZF9mbHVzaF9sb2codG9wb2xvZ3lfc3QsIHN0YW5kYWxvbmUsIGpzb249VHJ1 ZSwgc2VhcmNoZWRfY29kZT1KU09OX09VVFBVVCkKLUBAIC00MDgsMTMyICs0MDUsNiBAQCBkZWYg dGVzdF9yZXRyb2NsX3BsdWdpbl9taXNzaW5nX21hdGNoaW5nX3J1bGUodG9wb2xvZ3lfc3QsIHJl dHJvY2xfcGx1Z2luX2VuYWJsZQotICAgICBydW5faGVhbHRoY2hlY2tfYW5kX2ZsdXNoX2xvZyh0 b3BvbG9neV9zdCwgc3RhbmRhbG9uZSwganNvbj1UcnVlLCBzZWFyY2hlZF9jb2RlPUpTT05fT1VU UFVUKQotIAotIAotLWRlZiB0ZXN0X21pc3Npbmdfc2NhbmxpbWl0KHRvcG9sb2d5X3N0LCBsb2df YnVmZmVyaW5nX2VuYWJsZWQpOgotLSAgICAiIiJDaGVjayBpZiBoZWFsdGhjaGVjayByZXR1cm5z IERTQkxFMDAwNyBjb2RlIHdoZW4gcGFyZW50SWQgaW5kZXggaXMgbWlzc2luZyBzY2FubGltaXQK LS0KLS0gICAgOmlkOiA0MGUxYmY2YS0yMzk3LTQ1OWItYmRmMy1mNzg3Y2ExMThiODYKLS0gICAg OnNldHVwOiBTdGFuZGFsb25lIGluc3RhbmNlCi0tICAgIDpzdGVwczoKLS0gICAgICAgIDEuIENy ZWF0ZSBEUyBpbnN0YW5jZQotLSAgICAgICAgMi4gUmVtb3ZlIG5zSW5kZXhJRExpc3RTY2FuTGlt aXQgZnJvbSBwYXJlbnRJZCBpbmRleAotLSAgICAgICAgMy4gVXNlIGhlYWx0aGNoZWNrIHdpdGhv dXQgLS1qc29uIG9wdGlvbgotLSAgICAgICAgNC4gVXNlIGhlYWx0aGNoZWNrIHdpdGggLS1qc29u IG9wdGlvbgotLSAgICAgICAgNS4gVmVyaWZ5IHRoZSByZW1lZGlhdGlvbiBjb21tYW5kIGhhcyBw cm9wZXJseSBxdW90ZWQgc2NhbmxpbWl0Ci0tICAgICAgICA2LiBSZS1hZGQgdGhlIHNjYW5saW1p dAotLSAgICAgICAgNy4gVXNlIGhlYWx0aGNoZWNrIHdpdGhvdXQgLS1qc29uIG9wdGlvbgotLSAg ICAgICAgOC4gVXNlIGhlYWx0aGNoZWNrIHdpdGggLS1qc29uIG9wdGlvbgotLSAgICA6ZXhwZWN0 ZWRyZXN1bHRzOgotLSAgICAgICAgMS4gU3VjY2VzcwotLSAgICAgICAgMi4gU3VjY2VzcwotLSAg ICAgICAgMy4gaGVhbHRoY2hlY2sgcmVwb3J0cyBEU0JMRTAwMDcgY29kZSBhbmQgcmVsYXRlZCBk ZXRhaWxzCi0tICAgICAgICA0LiBoZWFsdGhjaGVjayByZXBvcnRzIERTQkxFMDAwNyBjb2RlIGFu ZCByZWxhdGVkIGRldGFpbHMKLS0gICAgICAgIDUuIFRoZSBzY2FubGltaXQgdmFsdWUgaXMgcXVv dGVkIGluIHRoZSByZW1lZGlhdGlvbiBjb21tYW5kCi0tICAgICAgICA2LiBTdWNjZXNzCi0tICAg ICAgICA3LiBoZWFsdGhjaGVjayByZXBvcnRzIG5vIGlzc3VlcyBmb3VuZAotLSAgICAgICAgOC4g aGVhbHRoY2hlY2sgcmVwb3J0cyBubyBpc3N1ZXMgZm91bmQKLS0gICAgIiIiCi0tCi0tICAgIFJF VF9DT0RFID0gIkRTQkxFMDAwNyIKLS0gICAgUEFSRU5USURfRE4gPSAiY249cGFyZW50aWQsY249 aW5kZXgsY249dXNlcnJvb3QsY249bGRibSBkYXRhYmFzZSxjbj1wbHVnaW5zLGNuPWNvbmZpZyIK LS0gICAgU0NBTkxJTUlUX1ZBTFVFID0gImxpbWl0PTUwMDAgdHlwZT1lcSBmbGFncz1BTkQiCi0t Ci0tICAgIHN0YW5kYWxvbmUgPSB0b3BvbG9neV9zdC5zdGFuZGFsb25lCi0tCi0tICAgIGxvZy5p bmZvKCJSZW1vdmUgbnNJbmRleElETGlzdFNjYW5MaW1pdCBmcm9tIHBhcmVudElkIGluZGV4IikK LS0gICAgcGFyZW50aWRfaW5kZXggPSBJbmRleChzdGFuZGFsb25lLCBQQVJFTlRJRF9ETikKLS0g ICAgcGFyZW50aWRfaW5kZXgucmVtb3ZlKCJuc0luZGV4SURMaXN0U2NhbkxpbWl0IiwgU0NBTkxJ TUlUX1ZBTFVFKQotLQotLSAgICBydW5faGVhbHRoY2hlY2tfYW5kX2ZsdXNoX2xvZyh0b3BvbG9n eV9zdCwgc3RhbmRhbG9uZSwganNvbj1GYWxzZSwgc2VhcmNoZWRfY29kZT1SRVRfQ09ERSkKLS0K LS0gICAgIyBWZXJpZnkgdGhlIHJlbWVkaWF0aW9uIGNvbW1hbmQgaGFzIHByb3Blcmx5IHF1b3Rl ZCBzY2FubGltaXQKLS0gICAgYXJncyA9IEZha2VBcmdzKCkKLS0gICAgYXJncy5pbnN0YW5jZSA9 IHN0YW5kYWxvbmUuc2VydmVyaWQKLS0gICAgYXJncy52ZXJib3NlID0gc3RhbmRhbG9uZS52ZXJi b3NlCi0tICAgIGFyZ3MubGlzdF9lcnJvcnMgPSBGYWxzZQotLSAgICBhcmdzLmxpc3RfY2hlY2tz ID0gRmFsc2UKLS0gICAgYXJncy5leGNsdWRlX2NoZWNrID0gW10KLS0gICAgYXJncy5jaGVjayA9 IFsiYmFja2VuZHMiXQotLSAgICBhcmdzLmRyeV9ydW4gPSBGYWxzZQotLSAgICBhcmdzLmpzb24g PSBGYWxzZQotLSAgICBoZWFsdGhfY2hlY2tfcnVuKHN0YW5kYWxvbmUsIHRvcG9sb2d5X3N0Lmxv Z2NhcC5sb2csIGFyZ3MpCi0tICAgICMgQ2hlY2sgdGhhdCB0aGUgc2NhbmxpbWl0IGlzIHF1b3Rl ZCBpbiB0aGUgb3V0cHV0Ci0tICAgIGFzc2VydCB0b3BvbG9neV9zdC5sb2djYXAuY29udGFpbnMo Jy0tYWRkLXNjYW5saW1pdCAibGltaXQ9NTAwMCB0eXBlPWVxIGZsYWdzPUFORCInKQotLSAgICBs b2cuaW5mbygiVmVyaWZpZWQgc2NhbmxpbWl0IGlzIHByb3Blcmx5IHF1b3RlZCBpbiByZW1lZGlh dGlvbiBjb21tYW5kIikKLS0gICAgdG9wb2xvZ3lfc3QubG9nY2FwLmZsdXNoKCkKLS0KLS0gICAg cnVuX2hlYWx0aGNoZWNrX2FuZF9mbHVzaF9sb2codG9wb2xvZ3lfc3QsIHN0YW5kYWxvbmUsIGpz b249VHJ1ZSwgc2VhcmNoZWRfY29kZT1SRVRfQ09ERSkKLS0KLS0gICAgbG9nLmluZm8oIlJlLWFk ZCB0aGUgbnNJbmRleElETGlzdFNjYW5MaW1pdCIpCi0tICAgIHBhcmVudGlkX2luZGV4ID0gSW5k ZXgoc3RhbmRhbG9uZSwgUEFSRU5USURfRE4pCi0tICAgIHBhcmVudGlkX2luZGV4LmFkZCgibnNJ bmRleElETGlzdFNjYW5MaW1pdCIsIFNDQU5MSU1JVF9WQUxVRSkKLS0KLS0gICAgcnVuX2hlYWx0 aGNoZWNrX2FuZF9mbHVzaF9sb2codG9wb2xvZ3lfc3QsIHN0YW5kYWxvbmUsIGpzb249RmFsc2Us IHNlYXJjaGVkX2NvZGU9Q01EX09VVFBVVCkKLS0gICAgcnVuX2hlYWx0aGNoZWNrX2FuZF9mbHVz aF9sb2codG9wb2xvZ3lfc3QsIHN0YW5kYWxvbmUsIGpzb249VHJ1ZSwgc2VhcmNoZWRfY29kZT1K U09OX09VVFBVVCkKLS0KLS0KLS1kZWYgdGVzdF9taXNzaW5nX21hdGNoaW5nX3J1bGVfYW5kX3Nj YW5saW1pdCh0b3BvbG9neV9zdCwgbG9nX2J1ZmZlcmluZ19lbmFibGVkKToKLS0gICAgIiIiQ2hl Y2sgaWYgaGVhbHRoY2hlY2sgZ2VuZXJhdGVzIGEgc2luZ2xlIGNvbWJpbmVkIGNvbW1hbmQgd2hl biBib3RoIG1hdGNoaW5nIHJ1bGUgYW5kIHNjYW5saW1pdCBhcmUgbWlzc2luZwotLQotLSAgICA6 aWQ6IGFmODIxNGFkLTVlNGMtNDIyYS04Zjc0LTNlOTkyMjc1NTFkZgotLSAgICA6c2V0dXA6IFN0 YW5kYWxvbmUgaW5zdGFuY2UKLS0gICAgOnN0ZXBzOgotLSAgICAgICAgMS4gQ3JlYXRlIERTIGlu c3RhbmNlCi0tICAgICAgICAyLiBSZW1vdmUgYm90aCBpbnRlZ2VyT3JkZXJpbmdNYXRjaCBhbmQg bnNJbmRleElETGlzdFNjYW5MaW1pdCBmcm9tIHBhcmVudElkIGluZGV4Ci0tICAgICAgICAzLiBV c2UgaGVhbHRoY2hlY2sgYW5kIHZlcmlmeSBhIHNpbmdsZSBjb21iaW5lZCBjb21tYW5kIGlzIGdl bmVyYXRlZAotLSAgICAgICAgNC4gUmUtYWRkIHRoZSBtYXRjaGluZyBydWxlIGFuZCBzY2FubGlt aXQKLS0gICAgICAgIDUuIFVzZSBoZWFsdGhjaGVjayB3aXRob3V0IC0tanNvbiBvcHRpb24KLS0g ICAgICAgIDYuIFVzZSBoZWFsdGhjaGVjayB3aXRoIC0tanNvbiBvcHRpb24KLS0gICAgOmV4cGVj dGVkcmVzdWx0czoKLS0gICAgICAgIDEuIFN1Y2Nlc3MKLS0gICAgICAgIDIuIFN1Y2Nlc3MKLS0g ICAgICAgIDMuIGhlYWx0aGNoZWNrIHJlcG9ydHMgRFNCTEUwMDA3IGFuZCBnZW5lcmF0ZXMgYSBz aW5nbGUgY29tbWFuZCB3aXRoIGJvdGggLS1hZGQtbXIgYW5kIC0tYWRkLXNjYW5saW1pdAotLSAg ICAgICAgNC4gU3VjY2VzcwotLSAgICAgICAgNS4gaGVhbHRoY2hlY2sgcmVwb3J0cyBubyBpc3N1 ZXMgZm91bmQKLS0gICAgICAgIDYuIGhlYWx0aGNoZWNrIHJlcG9ydHMgbm8gaXNzdWVzIGZvdW5k Ci0tICAgICIiIgotLQotLSAgICBSRVRfQ09ERSA9ICJEU0JMRTAwMDciCi0tICAgIFBBUkVOVElE X0ROID0gImNuPXBhcmVudGlkLGNuPWluZGV4LGNuPXVzZXJyb290LGNuPWxkYm0gZGF0YWJhc2Us Y249cGx1Z2lucyxjbj1jb25maWciCi0tICAgIFNDQU5MSU1JVF9WQUxVRSA9ICJsaW1pdD01MDAw IHR5cGU9ZXEgZmxhZ3M9QU5EIgotLQotLSAgICBzdGFuZGFsb25lID0gdG9wb2xvZ3lfc3Quc3Rh bmRhbG9uZQotLQotLSAgICBsb2cuaW5mbygiUmVtb3ZlIGJvdGggaW50ZWdlck9yZGVyaW5nTWF0 Y2ggYW5kIG5zSW5kZXhJRExpc3RTY2FuTGltaXQgZnJvbSBwYXJlbnRJZCBpbmRleCIpCi0tICAg IHBhcmVudGlkX2luZGV4ID0gSW5kZXgoc3RhbmRhbG9uZSwgUEFSRU5USURfRE4pCi0tICAgIHBh cmVudGlkX2luZGV4LnJlbW92ZSgibnNNYXRjaGluZ1J1bGUiLCAiaW50ZWdlck9yZGVyaW5nTWF0 Y2giKQotLSAgICBwYXJlbnRpZF9pbmRleC5yZW1vdmUoIm5zSW5kZXhJRExpc3RTY2FuTGltaXQi LCBTQ0FOTElNSVRfVkFMVUUpCi0tCi0tICAgICMgUnVuIGhlYWx0aGNoZWNrIGFuZCB2ZXJpZnkg Y29tYmluZWQgY29tbWFuZAotLSAgICBhcmdzID0gRmFrZUFyZ3MoKQotLSAgICBhcmdzLmluc3Rh bmNlID0gc3RhbmRhbG9uZS5zZXJ2ZXJpZAotLSAgICBhcmdzLnZlcmJvc2UgPSBzdGFuZGFsb25l LnZlcmJvc2UKLS0gICAgYXJncy5saXN0X2Vycm9ycyA9IEZhbHNlCi0tICAgIGFyZ3MubGlzdF9j aGVja3MgPSBGYWxzZQotLSAgICBhcmdzLmV4Y2x1ZGVfY2hlY2sgPSBbXQotLSAgICBhcmdzLmNo ZWNrID0gWyJiYWNrZW5kcyJdCi0tICAgIGFyZ3MuZHJ5X3J1biA9IEZhbHNlCi0tICAgIGFyZ3Mu anNvbiA9IEZhbHNlCi0tICAgIGhlYWx0aF9jaGVja19ydW4oc3RhbmRhbG9uZSwgdG9wb2xvZ3lf c3QubG9nY2FwLmxvZywgYXJncykKLS0KLS0gICAgIyBWZXJpZnkgRFNCTEUwMDA3IGlzIHJlcG9y dGVkCi0tICAgIGFzc2VydCB0b3BvbG9neV9zdC5sb2djYXAuY29udGFpbnMoUkVUX0NPREUpCi0t ICAgIGxvZy5pbmZvKCJoZWFsdGhjaGVjayByZXR1cm5lZCBjb2RlOiAlcyIgJSBSRVRfQ09ERSkK LS0KLS0gICAgIyBWZXJpZnkgYSBzaW5nbGUgY29tYmluZWQgY29tbWFuZCBpcyBnZW5lcmF0ZWQg d2l0aCBib3RoIC0tYWRkLW1yIGFuZCAtLWFkZC1zY2FubGltaXQKLS0gICAgYXNzZXJ0IHRvcG9s b2d5X3N0LmxvZ2NhcC5jb250YWlucygnLS1hZGQtbXIgaW50ZWdlck9yZGVyaW5nTWF0Y2ggLS1h ZGQtc2NhbmxpbWl0ICJsaW1pdD01MDAwIHR5cGU9ZXEgZmxhZ3M9QU5EIicpCi0tICAgIGxvZy5p bmZvKCJWZXJpZmllZCBjb21iaW5lZCBjb21tYW5kIHdpdGggYm90aCAtLWFkZC1tciBhbmQgLS1h ZGQtc2NhbmxpbWl0IikKLS0KLS0gICAgdG9wb2xvZ3lfc3QubG9nY2FwLmZsdXNoKCkKLS0KLS0g ICAgbG9nLmluZm8oIlJlLWFkZCB0aGUgaW50ZWdlck9yZGVyaW5nTWF0Y2ggbWF0Y2hpbmcgcnVs ZSBhbmQgc2NhbmxpbWl0IikKLS0gICAgcGFyZW50aWRfaW5kZXggPSBJbmRleChzdGFuZGFsb25l LCBQQVJFTlRJRF9ETikKLS0gICAgcGFyZW50aWRfaW5kZXguYWRkKCJuc01hdGNoaW5nUnVsZSIs ICJpbnRlZ2VyT3JkZXJpbmdNYXRjaCIpCi0tICAgIHBhcmVudGlkX2luZGV4LmFkZCgibnNJbmRl eElETGlzdFNjYW5MaW1pdCIsIFNDQU5MSU1JVF9WQUxVRSkKLS0KLS0gICAgcnVuX2hlYWx0aGNo ZWNrX2FuZF9mbHVzaF9sb2codG9wb2xvZ3lfc3QsIHN0YW5kYWxvbmUsIGpzb249RmFsc2UsIHNl YXJjaGVkX2NvZGU9Q01EX09VVFBVVCkKLS0gICAgcnVuX2hlYWx0aGNoZWNrX2FuZF9mbHVzaF9s b2codG9wb2xvZ3lfc3QsIHN0YW5kYWxvbmUsIGpzb249VHJ1ZSwgc2VhcmNoZWRfY29kZT1KU09O X09VVFBVVCkKLS0KLS0KLSBkZWYgdGVzdF9tdWx0aXBsZV9taXNzaW5nX2luZGV4ZXModG9wb2xv Z3lfc3QsIGxvZ19idWZmZXJpbmdfZW5hYmxlZCk6Ci0gICAgICIiIkNoZWNrIGlmIGhlYWx0aGNo ZWNrIHJldHVybnMgRFNCTEUwMDA3IGNvZGUgd2hlbiBtdWx0aXBsZSBzeXN0ZW0gaW5kZXhlcyBh cmUgbWlzc2luZwotIAotQEAgLTU3NCw4ICs0NDUsNyBAQCBkZWYgdGVzdF9tdWx0aXBsZV9taXNz aW5nX2luZGV4ZXModG9wb2xvZ3lfc3QsIGxvZ19idWZmZXJpbmdfZW5hYmxlZCk6Ci0gCi0gICAg IGxvZy5pbmZvKCJSZS1hZGQgdGhlIG1pc3Npbmcgc3lzdGVtIGluZGV4ZXMiKQotICAgICBiYWNr ZW5kID0gQmFja2VuZHMoc3RhbmRhbG9uZSkuZ2V0KCJ1c2VyUm9vdCIpCi0tICAgIGJhY2tlbmQu YWRkX2luZGV4KCJwYXJlbnRpZCIsIFsiZXEiXSwgbWF0Y2hpbmdfcnVsZXM9WyJpbnRlZ2VyT3Jk ZXJpbmdNYXRjaCJdLAotLSAgICAgICAgICAgICAgICAgICAgICBpZGxpc3RzY2FubGltaXQ9Wyds aW1pdD01MDAwIHR5cGU9ZXEgZmxhZ3M9QU5EJ10pCi0rICAgIGJhY2tlbmQuYWRkX2luZGV4KCJw YXJlbnRpZCIsIFsiZXEiXSwgbWF0Y2hpbmdfcnVsZXM9WyJpbnRlZ2VyT3JkZXJpbmdNYXRjaCJd KQotICAgICBiYWNrZW5kLmFkZF9pbmRleCgibnN1bmlxdWVpZCIsIFsiZXEiXSkKLSAgICAgc3Rh bmRhbG9uZS5yZXN0YXJ0KCkKLSAKLWRpZmYgLS1naXQgYS9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0 ZXMvcGFnZWRfcmVzdWx0cy9wYWdlZF9yZXN1bHRzX3Rlc3QucHkgYi9kaXJzcnZ0ZXN0cy90ZXN0 cy9zdWl0ZXMvcGFnZWRfcmVzdWx0cy9wYWdlZF9yZXN1bHRzX3Rlc3QucHkKLWluZGV4IDYxZDY3 MDJkYS4uMWJiOTRiNTNhIDEwMDY0NAotLS0tIGEvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL3Bh Z2VkX3Jlc3VsdHMvcGFnZWRfcmVzdWx0c190ZXN0LnB5Ci0rKysgYi9kaXJzcnZ0ZXN0cy90ZXN0 cy9zdWl0ZXMvcGFnZWRfcmVzdWx0cy9wYWdlZF9yZXN1bHRzX3Rlc3QucHkKLUBAIC0zMDYsMTkg KzMwNiwxOSBAQCBkZWYgdGVzdF9zZWFyY2hfc3VjY2Vzcyh0b3BvbG9neV9zdCwgY3JlYXRlX3Vz ZXIsIHBhZ2Vfc2l6ZSwgdXNlcnNfbnVtKToKLSAgICAgZGVsX3VzZXJzKHVzZXJzX2xpc3QpCi0g Ci0gCi0tQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJwYWdlX3NpemUsdXNlcnNfbnVtLHN1ZmZp eCxhdHRyX25hbWUsYXR0cl92YWx1ZSxleHBlY3RlZF9lcnIsIHJlc3RhcnQiLCBbCi0rQHB5dGVz dC5tYXJrLnBhcmFtZXRyaXplKCJwYWdlX3NpemUsdXNlcnNfbnVtLHN1ZmZpeCxhdHRyX25hbWUs YXR0cl92YWx1ZSxleHBlY3RlZF9lcnIiLCBbCi0gICAgICg1MCwgMjAwLCAnY249Y29uZmlnLCVz JyAlIEROX0xEQk0sICduc3NsYXBkLWlkbGlzdHNjYW5saW1pdCcsICcxMDAnLAotLSAgICAgbGRh cC5VTldJTExJTkdfVE9fUEVSRk9STSwgVHJ1ZSksCi0rICAgICBsZGFwLlVOV0lMTElOR19UT19Q RVJGT1JNKSwKLSAgICAgKDUsIDE1LCBETl9DT05GSUcsICduc3NsYXBkLXRpbWVsaW1pdCcsICcy MCcsCi0tICAgICBsZGFwLlVOQVZBSUxBQkxFX0NSSVRJQ0FMX0VYVEVOU0lPTiwgRmFsc2UpLAot KyAgICAgbGRhcC5VTkFWQUlMQUJMRV9DUklUSUNBTF9FWFRFTlNJT04pLAotICAgICAoMjEsIDUw LCBETl9DT05GSUcsICduc3NsYXBkLXNpemVsaW1pdCcsICcyMCcsCi0tICAgICBsZGFwLlNJWkVM SU1JVF9FWENFRURFRCwgRmFsc2UpLAotKyAgICAgbGRhcC5TSVpFTElNSVRfRVhDRUVERUQpLAot ICAgICAoMjEsIDUwLCBETl9DT05GSUcsICduc3NsYXBkLXBhZ2Vkc2l6ZWxpbWl0JywgJzUnLAot LSAgICAgbGRhcC5TSVpFTElNSVRfRVhDRUVERUQsIEZhbHNlKSwKLSsgICAgIGxkYXAuU0laRUxJ TUlUX0VYQ0VFREVEKSwKLSAgICAgKDUsIDUwLCAnY249Y29uZmlnLCVzJyAlIEROX0xEQk0sICdu c3NsYXBkLWxvb2t0aHJvdWdobGltaXQnLCAnMjAnLAotLSAgICAgbGRhcC5BRE1JTkxJTUlUX0VY Q0VFREVELCBGYWxzZSldKQotKyAgICAgbGRhcC5BRE1JTkxJTUlUX0VYQ0VFREVEKV0pCi0gZGVm IHRlc3Rfc2VhcmNoX2xpbWl0c19mYWlsKHRvcG9sb2d5X3N0LCBjcmVhdGVfdXNlciwgcGFnZV9z aXplLCB1c2Vyc19udW0sCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1ZmZpeCwgYXR0 cl9uYW1lLCBhdHRyX3ZhbHVlLCBleHBlY3RlZF9lcnIsIHJlc3RhcnQpOgotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdWZmaXgsIGF0dHJfbmFtZSwgYXR0cl92YWx1ZSwgZXhwZWN0ZWRf ZXJyKToKLSAgICAgIiIiVmVyaWZ5IHRoYXQgc2VhcmNoIHdpdGggYSBzaW1wbGUgcGFnZWQgcmVz dWx0cyBjb250cm9sCi0gICAgIHRocm93cyBleHBlY3RlZCBleGNlcHRvaW5zIHdoZW4gY29ycmVz cG9uZGluZyBsaW1pdHMgYXJlCi0gICAgIGV4Y2VlZGVkLgotQEAgLTM0MSwxNSArMzQxLDYgQEAg ZGVmIHRlc3Rfc2VhcmNoX2xpbWl0c19mYWlsKHRvcG9sb2d5X3N0LCBjcmVhdGVfdXNlciwgcGFn ZV9zaXplLCB1c2Vyc19udW0sCi0gCi0gICAgIHVzZXJzX2xpc3QgPSBhZGRfdXNlcnModG9wb2xv Z3lfc3QsIHVzZXJzX251bSwgREVGQVVMVF9TVUZGSVgpCi0gICAgIGF0dHJfdmFsdWVfYmNrID0g Y2hhbmdlX2NvbmZfYXR0cih0b3BvbG9neV9zdCwgc3VmZml4LCBhdHRyX25hbWUsIGF0dHJfdmFs dWUpCi0tICAgIGFuY2VzdG9yaWRfaW5kZXggPSBOb25lCi0tICAgIGlmIGF0dHJfbmFtZSA9PSAn bnNzbGFwZC1pZGxpc3RzY2FubGltaXQnOgotLSAgICAgICAgYmFja2VuZCA9IEJhY2tlbmRzKHRv cG9sb2d5X3N0LnN0YW5kYWxvbmUpLmdldF9iYWNrZW5kKERFRkFVTFRfU1VGRklYKQotLSAgICAg ICAgYW5jZXN0b3JpZF9pbmRleCA9IGJhY2tlbmQuZ2V0X2luZGV4KCdhbmNlc3RvcmlkJykKLS0g ICAgICAgIGFuY2VzdG9yaWRfaW5kZXgucmVwbGFjZSgibnNJbmRleElETGlzdFNjYW5MaW1pdCIs IGVuc3VyZV9ieXRlcygibGltaXQ9MTAwIHR5cGU9ZXEgZmxhZ3M9QU5EIikpCi0tCi0tICAgIGlm IChyZXN0YXJ0KToKLS0gICAgICAgIGxvZy5pbmZvKCdJbnN0YW5jZSByZXN0YXJ0ZWQnKQotLSAg ICAgICAgdG9wb2xvZ3lfc3Quc3RhbmRhbG9uZS5yZXN0YXJ0KCkKLSAgICAgY29uZl9wYXJhbV9k aWN0ID0ge2F0dHJfbmFtZTogYXR0cl92YWx1ZX0KLSAgICAgc2VhcmNoX2ZsdCA9IHInKHVpZD10 ZXN0KiknCi0gICAgIHNlYXJjaHJlcV9hdHRybGlzdCA9IFsnZG4nLCAnc24nXQotQEAgLTQwMiw4 ICszOTMsNiBAQCBkZWYgdGVzdF9zZWFyY2hfbGltaXRzX2ZhaWwodG9wb2xvZ3lfc3QsIGNyZWF0 ZV91c2VyLCBwYWdlX3NpemUsIHVzZXJzX251bSwKLSAgICAgICAgICAgICBlbHNlOgotICAgICAg ICAgICAgICAgICBicmVhawotICAgICBmaW5hbGx5OgotLSAgICAgICAgaWYgYW5jZXN0b3JpZF9p bmRleDoKLS0gICAgICAgICAgICBhbmNlc3RvcmlkX2luZGV4LnJlcGxhY2UoIm5zSW5kZXhJRExp c3RTY2FuTGltaXQiLCBlbnN1cmVfYnl0ZXMoImxpbWl0PTUwMDAgdHlwZT1lcSBmbGFncz1BTkQi KSkKLSAgICAgICAgIGRlbF91c2Vycyh1c2Vyc19saXN0KQotICAgICAgICAgY2hhbmdlX2NvbmZf YXR0cih0b3BvbG9neV9zdCwgc3VmZml4LCBhdHRyX25hbWUsIGF0dHJfdmFsdWVfYmNrKQotIAot ZGlmZiAtLWdpdCBhL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vYmFjay1sZGJtLmggYi9s ZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2JhY2stbGRibS5oCi1pbmRleCBiMTg3YzI2YmMu LmUyM2U3ZmY0MyAxMDA2NDQKLS0tLSBhL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vYmFj ay1sZGJtLmgKLSsrKyBiL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vYmFjay1sZGJtLmgK LUBAIC01ODMsNyArNTgzLDYgQEAgc3RydWN0IGxkYm1pbmZvCi0gICAgIGludCBsaV9tb2RlOwot ICAgICBpbnQgbGlfbG9va3Rocm91Z2hsaW1pdDsKLSAgICAgaW50IGxpX2FsbGlkc3RocmVzaG9s ZDsKLS0gICAgaW50IGxpX3N5c3RlbV9hbGxpZHN0aHJlc2hvbGQ7Ci0gICAgIGNoYXIgKmxpX2Rp cmVjdG9yeTsKLSAgICAgaW50IGxpX3Jlc2xpbWl0X2xvb2t0aHJvdWdoX2hhbmRsZTsKLSAgICAg dWludDY0X3QgbGlfZGJjYWNoZXNpemU7Ci1kaWZmIC0tZ2l0IGEvbGRhcC9zZXJ2ZXJzL3NsYXBk L2JhY2stbGRibS9pbmRleC5jIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9pbmRleC5j Ci1pbmRleCAwYWI4Mjk0OGMuLmE1MDA0YmUxOSAxMDA2NDQKLS0tLSBhL2xkYXAvc2VydmVycy9z bGFwZC9iYWNrLWxkYm0vaW5kZXguYwotKysrIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRi bS9pbmRleC5jCi1AQCAtOTk3LDggKzk5Nyw2IEBAIGluZGV4X3JlYWRfZXh0X2FsbGlkcygKLSAg ICAgfQotICAgICBpZiAocGIpIHsKLSAgICAgICAgIHNsYXBpX3BibG9ja19nZXQocGIsIFNMQVBJ X1NFQVJDSF9JU19BTkQsICZpc19hbmQpOwotLSAgICB9IGVsc2UgaWYgKHN0cmNhc2VjbXAodHlw ZSwgTERCTV9BTkNFU1RPUklEX1NUUikgPT0gMCkgewotLSAgICAgICAgaXNfYW5kID0gMTsKLSAg ICAgfQotICAgICBhaV9mbGFncyA9IGlzX2FuZCA/IElOREVYX0FMTElEU19GTEFHX0FORCA6IDA7 Ci0gICAgIC8qIHRoZSBjYWxsZXIgY2FuIHBhc3MgaW4gYSB2YWx1ZSBvZiAwIC0ganVzdCBpZ25v cmUgdGhvc2UgLSBidXQgaWYgdGhlIGluZGV4Ci1kaWZmIC0tZ2l0IGEvbGRhcC9zZXJ2ZXJzL3Ns YXBkL2JhY2stbGRibS9pbnN0YW5jZS5jIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9p bnN0YW5jZS5jCi1pbmRleCAyYTZlOGNiYjguLjJiNzFjZDRmNyAxMDA2NDQKLS0tLSBhL2xkYXAv c2VydmVycy9zbGFwZC9iYWNrLWxkYm0vaW5zdGFuY2UuYwotKysrIGIvbGRhcC9zZXJ2ZXJzL3Ns YXBkL2JhY2stbGRibS9pbnN0YW5jZS5jCi1AQCAtMTYsNyArMTYsNyBAQAotIAotIC8qIEZvcndh cmQgZGVjbGFyYXRpb25zICovCi0gc3RhdGljIHZvaWQgbGRibV9pbnN0YW5jZV9kZXN0cnVjdG9y KHZvaWQgKiphcmcpOwotLVNsYXBpX0VudHJ5ICpsZGJtX2luc3RhbmNlX2luaXRfY29uZmlnX2Vu dHJ5KGNoYXIgKmNuX3ZhbCwgY2hhciAqdjEsIGNoYXIgKnYyLCBjaGFyICp2MywgY2hhciAqdjQs IGNoYXIgKm1yLCBjaGFyICpzY2FubGltaXQpOwotK1NsYXBpX0VudHJ5ICpsZGJtX2luc3RhbmNl X2luaXRfY29uZmlnX2VudHJ5KGNoYXIgKmNuX3ZhbCwgY2hhciAqdjEsIGNoYXIgKnYyLCBjaGFy ICp2MywgY2hhciAqdjQsIGNoYXIgKm1yKTsKLSAKLSAKLSAvKiBDcmVhdGVzIGFuZCBpbml0aWFs aXplcyBhIG5ldyBsZGJtX2luc3RhbmNlIHN0cnVjdHVyZS4KLUBAIC0xMjYsNyArMTI2LDcgQEAg ZG9uZToKLSAgKiBUYWtlIGEgYnVuY2ggb2Ygc3RyaW5ncywgYW5kIGNyZWF0ZSBhIGluZGV4IGNv bmZpZyBlbnRyeQotICAqLwotIFNsYXBpX0VudHJ5ICoKLS1sZGJtX2luc3RhbmNlX2luaXRfY29u ZmlnX2VudHJ5KGNoYXIgKmNuX3ZhbCwgY2hhciAqdmFsMSwgY2hhciAqdmFsMiwgY2hhciAqdmFs MywgY2hhciAqdmFsNCwgY2hhciAqbXIsIGNoYXIgKnNjYW5saW1pdCkKLStsZGJtX2luc3RhbmNl X2luaXRfY29uZmlnX2VudHJ5KGNoYXIgKmNuX3ZhbCwgY2hhciAqdmFsMSwgY2hhciAqdmFsMiwg Y2hhciAqdmFsMywgY2hhciAqdmFsNCwgY2hhciAqbXIpCi0gewotICAgICBTbGFwaV9FbnRyeSAq ZSA9IHNsYXBpX2VudHJ5X2FsbG9jKCk7Ci0gICAgIHN0cnVjdCBiZXJ2YWwgKnZhbHNbMl07Ci1A QCAtMTY3LDExICsxNjcsNiBAQCBsZGJtX2luc3RhbmNlX2luaXRfY29uZmlnX2VudHJ5KGNoYXIg KmNuX3ZhbCwgY2hhciAqdmFsMSwgY2hhciAqdmFsMiwgY2hhciAqdmFsMwotICAgICAgICAgc2xh cGlfZW50cnlfYWRkX3ZhbHVlcyhlLCAibnNNYXRjaGluZ1J1bGUiLCB2YWxzKTsKLSAgICAgfQot IAotLSAgICBpZiAoc2NhbmxpbWl0KSB7Ci0tICAgICAgICB2YWwuYnZfdmFsID0gc2NhbmxpbWl0 OwotLSAgICAgICAgdmFsLmJ2X2xlbiA9IHN0cmxlbihzY2FubGltaXQpOwotLSAgICAgICAgc2xh cGlfZW50cnlfYWRkX3ZhbHVlcyhlLCAibnNJbmRleElETGlzdFNjYW5MaW1pdCIsIHZhbHMpOwot LSAgICB9Ci0gICAgIHJldHVybiBlOwotIH0KLSAKLUBAIC0xODQsNjAgKzE3OSw4IEBAIGxkYm1f aW5zdGFuY2VfY3JlYXRlX2RlZmF1bHRfaW5kZXhlcyhiYWNrZW5kICpiZSkKLSB7Ci0gICAgIFNs YXBpX0VudHJ5ICplOwotICAgICBsZGJtX2luc3RhbmNlICppbnN0ID0gKGxkYm1faW5zdGFuY2Ug KiliZS0+YmVfaW5zdGFuY2VfaW5mbzsKLS0gICAgc3RydWN0IGxkYm1pbmZvICpsaSA9IChzdHJ1 Y3QgbGRibWluZm8gKiliZS0+YmVfZGF0YWJhc2UtPnBsZ19wcml2YXRlOwotICAgICAvKiB3cml0 ZSB0aGUgZHNlIGZpbGUgb25seSBvbiB0aGUgZmluYWwgaW5kZXggKi8KLSAgICAgaW50IGZsYWdz ID0gTERCTV9JTlNUQU5DRV9DT05GSUdfRE9OVF9XUklURTsKLS0gICAgY2hhciAqYW5jZXN0b3Jp ZF9pbmRleGVzX2xpbWl0ID0gTlVMTDsKLS0gICAgY2hhciAqcGFyZW50aWRfaW5kZXhlc19saW1p dCA9IE5VTEw7Ci0tICAgIHN0cnVjdCBhdHRyaW5mbyAqYWkgPSBOVUxMOwotLSAgICBpbnQgaW5k ZXhfYWxyZWFkeV9jb25maWd1cmVkID0gMDsKLS0gICAgc3RydWN0IGluZGV4X2lkbGlzdHNpemVp bmZvICppdGVyOwotLSAgICBpbnQgY29va2llOwotLSAgICBpbnQgbGltaXQ7Ci0tCi0tICAgIGFp bmZvX2dldChiZSwgKGNoYXIgKilMREJNX0FOQ0VTVE9SSURfU1RSLCAmYWkpOwotLSAgICBpZiAo YWkgJiYgYWktPmFpX2lkbGlzdGluZm8pIHsKLS0gICAgICAgIGl0ZXIgPSAoc3RydWN0IGluZGV4 X2lkbGlzdHNpemVpbmZvICopZGxfZ2V0X2ZpcnN0KGFpLT5haV9pZGxpc3RpbmZvLCAmY29va2ll KTsKLS0gICAgICAgIGlmIChpdGVyKSB7Ci0tICAgICAgICAgICAgbGltaXQgPSBpdGVyLT5haV9p ZGxpc3RzaXplbGltaXQ7Ci0tICAgICAgICAgICAgc2xhcGlfbG9nX2VycihTTEFQSV9MT0dfQkFD S0xEQk0sICJsZGJtX2luc3RhbmNlX2NyZWF0ZV9kZWZhdWx0X2luZGV4ZXMiLAotLSAgICAgICAg ICAgICAgICAgICAgICAic2V0IGFuY2VzdG9yaWQgbGltaXQgdG8gJWQgZnJvbSBhdHRyaWJ1dGUg aW5kZXhcbiIsCi0tICAgICAgICAgICAgICAgICAgICAgIGxpbWl0KTsKLS0gICAgICAgIH0gZWxz ZSB7Ci0tICAgICAgICAgICAgbGltaXQgPSBsaS0+bGlfc3lzdGVtX2FsbGlkc3RocmVzaG9sZDsK LS0gICAgICAgICAgICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xPR19CQUNLTERCTSwgImxkYm1faW5z dGFuY2VfY3JlYXRlX2RlZmF1bHRfaW5kZXhlcyIsCi0tICAgICAgICAgICAgICAgICAgICAgICJz ZXQgYW5jZXN0b3JpZCBsaW1pdCB0byAlZCBmcm9tIGRlZmF1bHQgKGZhaWwgdG8gcmVhZCBsaW1p dClcbiIsCi0tICAgICAgICAgICAgICAgICAgICAgIGxpbWl0KTsKLS0gICAgICAgIH0KLS0gICAg ICAgIGFuY2VzdG9yaWRfaW5kZXhlc19saW1pdCA9IHNsYXBpX2NoX3NtcHJpbnRmKCJsaW1pdD0l ZCB0eXBlPWVxIGZsYWdzPUFORCIsIGxpbWl0KTsKLS0gICAgfSBlbHNlIHsKLS0gICAgICAgIGFu Y2VzdG9yaWRfaW5kZXhlc19saW1pdCA9IHNsYXBpX2NoX3NtcHJpbnRmKCJsaW1pdD0lZCB0eXBl PWVxIGZsYWdzPUFORCIsIGxpLT5saV9zeXN0ZW1fYWxsaWRzdGhyZXNob2xkKTsKLS0gICAgICAg IHNsYXBpX2xvZ19lcnIoU0xBUElfTE9HX0JBQ0tMREJNLCAibGRibV9pbnN0YW5jZV9jcmVhdGVf ZGVmYXVsdF9pbmRleGVzIiwKLS0gICAgICAgICAgICAgICAgICAgICAgInNldCBhbmNlc3Rvcmlk IGxpbWl0IHRvICVkIGZyb20gZGVmYXVsdCAobm8gYXR0cmlidXRlIG9yIGxpbWl0KVxuIiwKLS0g ICAgICAgICAgICAgICAgICAgICAgbGktPmxpX3N5c3RlbV9hbGxpZHN0aHJlc2hvbGQpOwotLSAg ICB9Ci0tCi0tICAgIGFpbmZvX2dldChiZSwgKGNoYXIgKilMREJNX1BBUkVOVElEX1NUUiwgJmFp KTsKLS0gICAgaWYgKGFpICYmIGFpLT5haV9pZGxpc3RpbmZvKSB7Ci0tICAgICAgICBpdGVyID0g KHN0cnVjdCBpbmRleF9pZGxpc3RzaXplaW5mbyAqKWRsX2dldF9maXJzdChhaS0+YWlfaWRsaXN0 aW5mbywgJmNvb2tpZSk7Ci0tICAgICAgICBpZiAoaXRlcikgewotLSAgICAgICAgICAgIGxpbWl0 ID0gaXRlci0+YWlfaWRsaXN0c2l6ZWxpbWl0OwotLSAgICAgICAgICAgIHNsYXBpX2xvZ19lcnIo U0xBUElfTE9HX0JBQ0tMREJNLCAibGRibV9pbnN0YW5jZV9jcmVhdGVfZGVmYXVsdF9pbmRleGVz IiwKLS0gICAgICAgICAgICAgICAgICAgICAgInNldCBwYXJlbnRpZCBsaW1pdCB0byAlZCBmcm9t IGF0dHJpYnV0ZSBpbmRleFxuIiwKLS0gICAgICAgICAgICAgICAgICAgICAgbGltaXQpOwotLSAg ICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICBsaW1pdCA9IGxpLT5saV9zeXN0ZW1fYWxsaWRz dGhyZXNob2xkOwotLSAgICAgICAgICAgIHNsYXBpX2xvZ19lcnIoU0xBUElfTE9HX0JBQ0tMREJN LCAibGRibV9pbnN0YW5jZV9jcmVhdGVfZGVmYXVsdF9pbmRleGVzIiwKLS0gICAgICAgICAgICAg ICAgICAgICAgInNldCBwYXJlbnRpZCBsaW1pdCB0byAlZCBmcm9tIGRlZmF1bHQgKGZhaWwgdG8g cmVhZCBsaW1pdClcbiIsCi0tICAgICAgICAgICAgICAgICAgICAgIGxpbWl0KTsKLS0gICAgICAg IH0KLS0gICAgICAgIHBhcmVudGlkX2luZGV4ZXNfbGltaXQgPSBzbGFwaV9jaF9zbXByaW50Zigi bGltaXQ9JWQgdHlwZT1lcSBmbGFncz1BTkQiLCBsaW1pdCk7Ci0tICAgIH0gZWxzZSB7Ci0tICAg ICAgICBwYXJlbnRpZF9pbmRleGVzX2xpbWl0ID0gc2xhcGlfY2hfc21wcmludGYoImxpbWl0PSVk IHR5cGU9ZXEgZmxhZ3M9QU5EIiwgbGktPmxpX3N5c3RlbV9hbGxpZHN0aHJlc2hvbGQpOwotLSAg ICAgICAgc2xhcGlfbG9nX2VycihTTEFQSV9MT0dfQkFDS0xEQk0sICJsZGJtX2luc3RhbmNlX2Ny ZWF0ZV9kZWZhdWx0X2luZGV4ZXMiLAotLSAgICAgICAgICAgICAgICAgICAgICAic2V0IHBhcmVu dGlkIGxpbWl0IHRvICVkIGZyb20gZGVmYXVsdCAobm8gYXR0cmlidXRlIG9yIGxpbWl0KVxuIiwK LS0gICAgICAgICAgICAgICAgICAgICAgbGktPmxpX3N5c3RlbV9hbGxpZHN0aHJlc2hvbGQpOwot LSAgICB9Ci0gCi0gICAgIC8qCi0gICAgICAqIEFsd2F5cyBpbmRleCAoZW50cnlkbiBvciBlbnRy eXJkbiksIHBhcmVudGlkLCBvYmplY3RjbGFzcywKLUBAIC0yNDUsNDggKzE4OCw0MiBAQCBsZGJt X2luc3RhbmNlX2NyZWF0ZV9kZWZhdWx0X2luZGV4ZXMoYmFja2VuZCAqYmUpCi0gICAgICAqIHNp bmNlIHRoZXkgYXJlIHVzZWQgYnkgc29tZSBzZWFyY2hlcywgcmVwbGljYXRpb24gYW5kIHRoZQot ICAgICAgKiBBQ0wgcm91dGluZXMuCi0gICAgICAqLwotLSAgICBlID0gbGRibV9pbnN0YW5jZV9p bml0X2NvbmZpZ19lbnRyeShMREJNX0VOVFJZUkROX1NUUiwgInN1YnRyZWUiLCAwLCAwLCAwLCAw LCAwKTsKLSsgICAgZSA9IGxkYm1faW5zdGFuY2VfaW5pdF9jb25maWdfZW50cnkoTERCTV9FTlRS WVJETl9TVFIsICJzdWJ0cmVlIiwgMCwgMCwgMCwgMCk7Ci0gICAgIGxkYm1faW5zdGFuY2VfY29u ZmlnX2FkZF9pbmRleF9lbnRyeShpbnN0LCBlLCBmbGFncyk7Ci0gICAgIHNsYXBpX2VudHJ5X2Zy ZWUoZSk7Ci0gCi0tICAgIGFpbmZvX2dldChiZSwgKGNoYXIgKilMREJNX1BBUkVOVElEX1NUUiwg JmFpKTsKLS0gICAgLyogQ2hlY2sgaWYgdGhlIGF0dHJpbmZvIGlzIGFjdHVhbGx5IGZvciBwYXJl bnRpZCwgbm90IGEgZmFsbGJhY2sgdG8gLmRlZmF1bHQgKi8KLS0gICAgaW5kZXhfYWxyZWFkeV9j b25maWd1cmVkID0gKGFpICE9IE5VTEwgJiYgc3RyY21wKGFpLT5haV90eXBlLCBMREJNX1BBUkVO VElEX1NUUikgPT0gMCk7Ci0tICAgIGlmICghaW5kZXhfYWxyZWFkeV9jb25maWd1cmVkKSB7Ci0t ICAgICAgICBlID0gbGRibV9pbnN0YW5jZV9pbml0X2NvbmZpZ19lbnRyeShMREJNX1BBUkVOVElE X1NUUiwgImVxIiwgMCwgMCwgMCwgImludGVnZXJPcmRlcmluZ01hdGNoIiwgcGFyZW50aWRfaW5k ZXhlc19saW1pdCk7Ci0tICAgICAgICBsZGJtX2luc3RhbmNlX2NvbmZpZ19hZGRfaW5kZXhfZW50 cnkoaW5zdCwgZSwgZmxhZ3MpOwotLSAgICAgICAgYXR0cl9pbmRleF9jb25maWcoYmUsICJsZGJt IGluZGV4IGluaXQiLCAwLCBlLCAxLCAwLCBOVUxMKTsKLS0gICAgICAgIHNsYXBpX2VudHJ5X2Zy ZWUoZSk7Ci0tICAgIH0KLSsgICAgZSA9IGxkYm1faW5zdGFuY2VfaW5pdF9jb25maWdfZW50cnko TERCTV9QQVJFTlRJRF9TVFIsICJlcSIsIDAsIDAsIDAsICJpbnRlZ2VyT3JkZXJpbmdNYXRjaCIp OwotKyAgICBsZGJtX2luc3RhbmNlX2NvbmZpZ19hZGRfaW5kZXhfZW50cnkoaW5zdCwgZSwgZmxh Z3MpOwotKyAgICBzbGFwaV9lbnRyeV9mcmVlKGUpOwotIAotLSAgICBlID0gbGRibV9pbnN0YW5j ZV9pbml0X2NvbmZpZ19lbnRyeSgib2JqZWN0Y2xhc3MiLCAiZXEiLCAwLCAwLCAwLCAwLCAwKTsK LSsgICAgZSA9IGxkYm1faW5zdGFuY2VfaW5pdF9jb25maWdfZW50cnkoIm9iamVjdGNsYXNzIiwg ImVxIiwgMCwgMCwgMCwgMCk7Ci0gICAgIGxkYm1faW5zdGFuY2VfY29uZmlnX2FkZF9pbmRleF9l bnRyeShpbnN0LCBlLCBmbGFncyk7Ci0gICAgIHNsYXBpX2VudHJ5X2ZyZWUoZSk7Ci0gCi0tICAg IGUgPSBsZGJtX2luc3RhbmNlX2luaXRfY29uZmlnX2VudHJ5KCJhY2kiLCAicHJlcyIsIDAsIDAs IDAsIDAsIDApOwotKyAgICBlID0gbGRibV9pbnN0YW5jZV9pbml0X2NvbmZpZ19lbnRyeSgiYWNp IiwgInByZXMiLCAwLCAwLCAwLCAwKTsKLSAgICAgbGRibV9pbnN0YW5jZV9jb25maWdfYWRkX2lu ZGV4X2VudHJ5KGluc3QsIGUsIGZsYWdzKTsKLSAgICAgc2xhcGlfZW50cnlfZnJlZShlKTsKLSAK LS0gICAgZSA9IGxkYm1faW5zdGFuY2VfaW5pdF9jb25maWdfZW50cnkoTERCTV9OVU1TVUJPUkRJ TkFURVNfU1RSLCAicHJlcyIsIDAsIDAsIDAsIDAsIDApOwotKyAgICBlID0gbGRibV9pbnN0YW5j ZV9pbml0X2NvbmZpZ19lbnRyeShMREJNX05VTVNVQk9SRElOQVRFU19TVFIsICJwcmVzIiwgMCwg MCwgMCwgMCk7Ci0gICAgIGxkYm1faW5zdGFuY2VfY29uZmlnX2FkZF9pbmRleF9lbnRyeShpbnN0 LCBlLCBmbGFncyk7Ci0gICAgIHNsYXBpX2VudHJ5X2ZyZWUoZSk7Ci0gCi0tICAgIGUgPSBsZGJt X2luc3RhbmNlX2luaXRfY29uZmlnX2VudHJ5KFNMQVBJX0FUVFJfVU5JUVVFSUQsICJlcSIsIDAs IDAsIDAsIDAsIDApOwotKyAgICBlID0gbGRibV9pbnN0YW5jZV9pbml0X2NvbmZpZ19lbnRyeShT TEFQSV9BVFRSX1VOSVFVRUlELCAiZXEiLCAwLCAwLCAwLCAwKTsKLSAgICAgbGRibV9pbnN0YW5j ZV9jb25maWdfYWRkX2luZGV4X2VudHJ5KGluc3QsIGUsIGZsYWdzKTsKLSAgICAgc2xhcGlfZW50 cnlfZnJlZShlKTsKLSAKLSAgICAgLyogRm9yIE1NUiwgd2UgbmVlZCB0aGlzIGF0dHJpYnV0ZSAo dG8gcmVwbGFjZSB1c2Ugb2YgZG5jb21wIGluIGRlbGV0ZSkuICovCi0tICAgIGUgPSBsZGJtX2lu c3RhbmNlX2luaXRfY29uZmlnX2VudHJ5KEFUVFJfTlNEUzVfUkVQTENPTkZMSUNULCAiZXEiLCAi cHJlcyIsIDAsIDAsIDAsIDApOwotKyAgICBlID0gbGRibV9pbnN0YW5jZV9pbml0X2NvbmZpZ19l bnRyeShBVFRSX05TRFM1X1JFUExDT05GTElDVCwgImVxIiwgInByZXMiLCAwLCAwLCAwKTsKLSAg ICAgbGRibV9pbnN0YW5jZV9jb25maWdfYWRkX2luZGV4X2VudHJ5KGluc3QsIGUsIGZsYWdzKTsK LSAgICAgc2xhcGlfZW50cnlfZnJlZShlKTsKLSAKLSAgICAgLyogd3JpdGUgdGhlIGRzZSBmaWxl IG9ubHkgb24gdGhlIGZpbmFsIGluZGV4ICovCi0tICAgIGUgPSBsZGJtX2luc3RhbmNlX2luaXRf Y29uZmlnX2VudHJ5KFNMQVBJX0FUVFJfTlNDUF9FTlRSWUROLCAiZXEiLCAwLCAwLCAwLCAwLCAw KTsKLSsgICAgZSA9IGxkYm1faW5zdGFuY2VfaW5pdF9jb25maWdfZW50cnkoU0xBUElfQVRUUl9O U0NQX0VOVFJZRE4sICJlcSIsIDAsIDAsIDAsIDApOwotICAgICBsZGJtX2luc3RhbmNlX2NvbmZp Z19hZGRfaW5kZXhfZW50cnkoaW5zdCwgZSwgZmxhZ3MpOwotICAgICBzbGFwaV9lbnRyeV9mcmVl KGUpOwotIAotICAgICAvKiBsZGJtX2luc3RhbmNlX2NvbmZpZ19hZGRfaW5kZXhfZW50cnkoaW5z dCwgMiwgYXJndik7ICovCi0tICAgIGUgPSBsZGJtX2luc3RhbmNlX2luaXRfY29uZmlnX2VudHJ5 KExEQk1fUFNFVURPX0FUVFJfREVGQVVMVCwgIm5vbmUiLCAwLCAwLCAwLCAwLCAwKTsKLSsgICAg ZSA9IGxkYm1faW5zdGFuY2VfaW5pdF9jb25maWdfZW50cnkoTERCTV9QU0VVRE9fQVRUUl9ERUZB VUxULCAibm9uZSIsIDAsIDAsIDAsIDApOwotICAgICBhdHRyX2luZGV4X2NvbmZpZyhiZSwgImxk Ym0gaW5kZXggaW5pdCIsIDAsIGUsIDEsIDAsIE5VTEwpOwotICAgICBzbGFwaV9lbnRyeV9mcmVl KGUpOwotIAotQEAgLTI5NCwxOCArMjMxLDkgQEAgbGRibV9pbnN0YW5jZV9jcmVhdGVfZGVmYXVs dF9pbmRleGVzKGJhY2tlbmQgKmJlKQotICAgICAgKiBhbmNlc3RvcmlkIGlzIHNwZWNpYWwsIHRo ZXJlIGlzIGFjdHVhbGx5IG5vIHN1Y2ggYXR0ciB0eXBlCi0gICAgICAqIGJ1dCB3ZSBzdGlsbCB3 YW50IHRvIHVzZSB0aGUgYXR0ciBpbmRleCBmaWxlIEFQSXMuCi0gICAgICAqLwotLSAgICBhaW5m b19nZXQoYmUsIChjaGFyICopTERCTV9BTkNFU1RPUklEX1NUUiwgJmFpKTsKLS0gICAgLyogQ2hl Y2sgaWYgdGhlIGF0dHJpbmZvIGlzIGFjdHVhbGx5IGZvciBhbmNlc3RvcmlkLCBub3QgYSBmYWxs YmFjayB0byAuZGVmYXVsdCAqLwotLSAgICBpbmRleF9hbHJlYWR5X2NvbmZpZ3VyZWQgPSAoYWkg IT0gTlVMTCAmJiBzdHJjbXAoYWktPmFpX3R5cGUsIExEQk1fQU5DRVNUT1JJRF9TVFIpID09IDAp OwotLSAgICBpZiAoIWluZGV4X2FscmVhZHlfY29uZmlndXJlZCkgewotLSAgICAgICAgZSA9IGxk Ym1faW5zdGFuY2VfaW5pdF9jb25maWdfZW50cnkoTERCTV9BTkNFU1RPUklEX1NUUiwgImVxIiwg MCwgMCwgMCwgImludGVnZXJPcmRlcmluZ01hdGNoIiwgYW5jZXN0b3JpZF9pbmRleGVzX2xpbWl0 KTsKLS0gICAgICAgIGxkYm1faW5zdGFuY2VfY29uZmlnX2FkZF9pbmRleF9lbnRyeShpbnN0LCBl LCBmbGFncyk7Ci0tICAgICAgICBhdHRyX2luZGV4X2NvbmZpZyhiZSwgImxkYm0gaW5kZXggaW5p dCIsIDAsIGUsIDEsIDAsIE5VTEwpOwotLSAgICAgICAgc2xhcGlfZW50cnlfZnJlZShlKTsKLS0g ICAgfQotLQotLSAgICBzbGFwaV9jaF9mcmVlX3N0cmluZygmYW5jZXN0b3JpZF9pbmRleGVzX2xp bWl0KTsKLS0gICAgc2xhcGlfY2hfZnJlZV9zdHJpbmcoJnBhcmVudGlkX2luZGV4ZXNfbGltaXQp OwotKyAgICBlID0gbGRibV9pbnN0YW5jZV9pbml0X2NvbmZpZ19lbnRyeShMREJNX0FOQ0VTVE9S SURfU1RSLCAiZXEiLCAwLCAwLCAwLCAiaW50ZWdlck9yZGVyaW5nTWF0Y2giKTsKLSsgICAgYXR0 cl9pbmRleF9jb25maWcoYmUsICJsZGJtIGluZGV4IGluaXQiLCAwLCBlLCAxLCAwLCBOVUxMKTsK LSsgICAgc2xhcGlfZW50cnlfZnJlZShlKTsKLSAKLSAgICAgcmV0dXJuIDA7Ci0gfQotZGlmZiAt LWdpdCBhL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vbGRibV9jb25maWcuYyBiL2xkYXAv c2VydmVycy9zbGFwZC9iYWNrLWxkYm0vbGRibV9jb25maWcuYwotaW5kZXggYzI0ZTNkNzY2Li42 YTJjZTRjMjcgMTAwNjQ0Ci0tLS0gYS9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2xkYm1f Y29uZmlnLmMKLSsrKyBiL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vbGRibV9jb25maWcu YwotQEAgLTM4NSwzNSArMzg1LDYgQEAgbGRibV9jb25maWdfYWxsaWRzdGhyZXNob2xkX3NldCh2 b2lkICphcmcsIHZvaWQgKnZhbHVlLCBjaGFyICplcnJvcmJ1ZiBfX2F0dHJpYnUKLSAgICAgcmV0 dXJuIHJldHZhbDsKLSB9Ci0gCi0tc3RhdGljIHZvaWQgKgotLWxkYm1fY29uZmlnX3N5c3RlbV9h bGxpZHN0aHJlc2hvbGRfZ2V0KHZvaWQgKmFyZykKLS17Ci0tICAgIHN0cnVjdCBsZGJtaW5mbyAq bGkgPSAoc3RydWN0IGxkYm1pbmZvICopYXJnOwotLQotLSAgICByZXR1cm4gKHZvaWQgKikoKHVp bnRwdHJfdCkobGktPmxpX3N5c3RlbV9hbGxpZHN0aHJlc2hvbGQpKTsKLS19Ci0tCi0tc3RhdGlj IGludAotLWxkYm1fY29uZmlnX3N5c3RlbV9hbGxpZHN0aHJlc2hvbGRfc2V0KHZvaWQgKmFyZywg dm9pZCAqdmFsdWUsIGNoYXIgKmVycm9yYnVmIF9fYXR0cmlidXRlX18oKHVudXNlZCkpLCBpbnQg cGhhc2UgX19hdHRyaWJ1dGVfXygodW51c2VkKSksIGludCBhcHBseSkKLS17Ci0tICAgIHN0cnVj dCBsZGJtaW5mbyAqbGkgPSAoc3RydWN0IGxkYm1pbmZvICopYXJnOwotLSAgICBpbnQgcmV0dmFs ID0gTERBUF9TVUNDRVNTOwotLSAgICBpbnQgdmFsID0gKGludCkoKHVpbnRwdHJfdCl2YWx1ZSk7 Ci0tCi0tICAgIC8qIERvIHdoYXRldmVyIHdlIGNhbiB0byBtYWtlIHN1cmUgdGhlIGRhdGEgaXMg b2suICovCi0tCi0tICAgIC8qIENhdGNoIGF0dGVtcHRzIHRvIGNvbmZpZ3VyZSBhIHN0dXBpZGx5 IGxvdyBhbmNlc3RvcmlkIGFsbGlkc3RocmVzaG9sZCAqLwotLSAgICBpZiAoKHZhbCA+IC0xKSAm JiAodmFsIDwgNTAwMCkpIHsKLS0gICAgICAgIHZhbCA9IDUwMDA7Ci0tICAgIH0KLS0KLS0gICAg aWYgKGFwcGx5KSB7Ci0tICAgICAgICBsaS0+bGlfc3lzdGVtX2FsbGlkc3RocmVzaG9sZCA9IHZh bDsKLS0gICAgfQotLQotLSAgICByZXR1cm4gcmV0dmFsOwotLX0KLS0KLSBzdGF0aWMgdm9pZCAq Ci0gbGRibV9jb25maWdfcGFnZWRhbGxpZHN0aHJlc2hvbGRfZ2V0KHZvaWQgKmFyZykKLSB7Ci1A QCAtMTA5NCw3ICsxMDY1LDYgQEAgc3RhdGljIGNvbmZpZ19pbmZvIGxkYm1fY29uZmlnW10gPSB7 Ci0gICAgIHtDT05GSUdfTE9PS1RIUk9VR0hMSU1JVCwgQ09ORklHX1RZUEVfSU5ULCAiNTAwMCIs ICZsZGJtX2NvbmZpZ19sb29rdGhyb3VnaGxpbWl0X2dldCwgJmxkYm1fY29uZmlnX2xvb2t0aHJv dWdobGltaXRfc2V0LCBDT05GSUdfRkxBR19BTFdBWVNfU0hPVyB8IENPTkZJR19GTEFHX0FMTE9X X1JVTk5JTkdfQ0hBTkdFfSwKLSAgICAge0NPTkZJR19NT0RFLCBDT05GSUdfVFlQRV9JTlRfT0NU QUwsICIwNjAwIiwgJmxkYm1fY29uZmlnX21vZGVfZ2V0LCAmbGRibV9jb25maWdfbW9kZV9zZXQs IENPTkZJR19GTEFHX0FMV0FZU19TSE9XIHwgQ09ORklHX0ZMQUdfQUxMT1dfUlVOTklOR19DSEFO R0V9LAotICAgICB7Q09ORklHX0lETElTVFNDQU5MSU1JVCwgQ09ORklHX1RZUEVfSU5ULCAiMjE0 NzQ4MzY0NiIsICZsZGJtX2NvbmZpZ19hbGxpZHN0aHJlc2hvbGRfZ2V0LCAmbGRibV9jb25maWdf YWxsaWRzdGhyZXNob2xkX3NldCwgQ09ORklHX0ZMQUdfQUxXQVlTX1NIT1cgfCBDT05GSUdfRkxB R19BTExPV19SVU5OSU5HX0NIQU5HRX0sCi0tICAgIHtDT05GSUdfU1lTVEVNSURMSVNUU0NBTkxJ TUlULCBDT05GSUdfVFlQRV9JTlQsICI1MDAwIiwgJmxkYm1fY29uZmlnX3N5c3RlbV9hbGxpZHN0 aHJlc2hvbGRfZ2V0LCAmbGRibV9jb25maWdfc3lzdGVtX2FsbGlkc3RocmVzaG9sZF9zZXQsIENP TkZJR19GTEFHX0FMV0FZU19TSE9XIHwgQ09ORklHX0ZMQUdfQUxMT1dfUlVOTklOR19DSEFOR0V9 LAotICAgICB7Q09ORklHX0RJUkVDVE9SWSwgQ09ORklHX1RZUEVfU1RSSU5HLCAiIiwgJmxkYm1f Y29uZmlnX2RpcmVjdG9yeV9nZXQsICZsZGJtX2NvbmZpZ19kaXJlY3Rvcnlfc2V0LCBDT05GSUdf RkxBR19BTFdBWVNfU0hPVyB8IENPTkZJR19GTEFHX0FMTE9XX1JVTk5JTkdfQ0hBTkdFIHwgQ09O RklHX0ZMQUdfU0tJUF9ERUZBVUxUX1NFVFRJTkd9LAotICAgICB7Q09ORklHX01BWFBBU1NCRUZP UkVNRVJHRSwgQ09ORklHX1RZUEVfSU5ULCAiMTAwIiwgJmxkYm1fY29uZmlnX21heHBhc3NiZWZv cmVtZXJnZV9nZXQsICZsZGJtX2NvbmZpZ19tYXhwYXNzYmVmb3JlbWVyZ2Vfc2V0LCAwfSwKLSAK LWRpZmYgLS1naXQgYS9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2xkYm1fY29uZmlnLmgg Yi9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2xkYm1fY29uZmlnLmgKLWluZGV4IDI5YTM0 MjZhYi4uZTY5YmZlZWRmIDEwMDY0NAotLS0tIGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRi bS9sZGJtX2NvbmZpZy5oCi0rKysgYi9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2xkYm1f Y29uZmlnLmgKLUBAIC02MCw3ICs2MCw2IEBAIHN0cnVjdCBjb25maWdfaW5mbwotICNkZWZpbmUg Q09ORklHX1JBTkdFTE9PS1RIUk9VR0hMSU1JVCAibnNzbGFwZC1yYW5nZWxvb2t0aHJvdWdobGlt aXQiCi0gI2RlZmluZSBDT05GSUdfUEFHRURMT09LVEhST1VHSExJTUlUICJuc3NsYXBkLXBhZ2Vk bG9va3Rocm91Z2hsaW1pdCIKLSAjZGVmaW5lIENPTkZJR19JRExJU1RTQ0FOTElNSVQgIm5zc2xh cGQtaWRsaXN0c2NhbmxpbWl0IgotLSNkZWZpbmUgQ09ORklHX1NZU1RFTUlETElTVFNDQU5MSU1J VCAibnNzbGFwZC1zeXN0ZW1pZGxpc3RzY2FubGltaXQiCi0gI2RlZmluZSBDT05GSUdfUEFHRURJ RExJU1RTQ0FOTElNSVQgIm5zc2xhcGQtcGFnZWRpZGxpc3RzY2FubGltaXQiCi0gI2RlZmluZSBD T05GSUdfRElSRUNUT1JZICJuc3NsYXBkLWRpcmVjdG9yeSIKLSAjZGVmaW5lIENPTkZJR19NT0RF ICJuc3NsYXBkLW1vZGUiCi1kaWZmIC0tZ2l0IGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRi bS9sZGJtX2luZGV4X2NvbmZpZy5jIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9sZGJt X2luZGV4X2NvbmZpZy5jCi1pbmRleCBiYWUyYTY0YjkuLjM4ZTczNjhlMSAxMDA2NDQKLS0tLSBh L2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vbGRibV9pbmRleF9jb25maWcuYwotKysrIGIv bGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9sZGJtX2luZGV4X2NvbmZpZy5jCi1AQCAtMzg0 LDE0ICszODQsNiBAQCBsZGJtX2luc3RhbmNlX2NvbmZpZ19hZGRfaW5kZXhfZW50cnkoCi0gICAg ICAgICB9Ci0gICAgIH0KLSAKLS0gICAgLyogZ2V0IG5zSW5kZXhJRExpc3RTY2FuTGltaXQgYW5k IGl0cyB2YWx1ZXMsIGFuZCBhZGQgdGhlbSAqLwotLSAgICBpZiAoMCA9PSBzbGFwaV9lbnRyeV9h dHRyX2ZpbmQoZSwgIm5zSW5kZXhJRExpc3RTY2FuTGltaXQiLCAmYXR0cikpIHsKLS0gICAgICAg IGZvciAoaiA9IHNsYXBpX2F0dHJfZmlyc3RfdmFsdWUoYXR0ciwgJnN2YWwpOyBqICE9IC0xOyBq ID0gc2xhcGlfYXR0cl9uZXh0X3ZhbHVlKGF0dHIsIGosICZzdmFsKSkgewotLSAgICAgICAgICAg IGF0dHJWYWx1ZSA9IHNsYXBpX3ZhbHVlX2dldF9iZXJ2YWwoc3ZhbCk7Ci0tICAgICAgICAgICAg ZUJ1ZiA9IFBSX3NwcmludGZfYXBwZW5kKGVCdWYsICJuc0luZGV4SURMaXN0U2NhbkxpbWl0OiAl c1xuIiwgYXR0clZhbHVlLT5idl92YWwpOwotLSAgICAgICAgfQotLSAgICB9Ci0tCi0gICAgIGxk Ym1fY29uZmlnX2FkZF9kc2VfZW50cnkobGksIGVCdWYsIGZsYWdzKTsKLSAgICAgaWYgKGVCdWYp IHsKLSAgICAgICAgIFBSX3NtcHJpbnRmX2ZyZWUoZUJ1Zik7Ci1kaWZmIC0tZ2l0IGEvc3JjL2xp YjM4OS9saWIzODkvYmFja2VuZC5weSBiL3NyYy9saWIzODkvbGliMzg5L2JhY2tlbmQucHkKLWlu ZGV4IDI3NGQ0NWFiZS4uZjNkYmU3YzkyIDEwMDY0NAotLS0tIGEvc3JjL2xpYjM4OS9saWIzODkv YmFja2VuZC5weQotKysrIGIvc3JjL2xpYjM4OS9saWIzODkvYmFja2VuZC5weQotQEAgLTY0NSwx MCArNjQ1LDExIEBAIGNsYXNzIEJhY2tlbmQoRFNMZGFwT2JqZWN0KToKLSAgICAgICAgIGluZGV4 ZXMgPSBzZWxmLmdldF9pbmRleGVzKCkKLSAKLSAgICAgICAgICMgRGVmYXVsdCBzeXN0ZW0gaW5k ZXhlcyB0YWtlbiBmcm9tIGxkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vaW5zdGFuY2UuYwot KyAgICAgICAgIyBOb3RlOiBlbnRyeXJkbiBhbmQgYW5jZXN0b3JpZCBhcmUgaW50ZXJuYWwgc3lz dGVtIGluZGV4ZXMgdGhhdCBhcmUgbm90Ci0rICAgICAgICAjIGV4cG9zZWQgaW4gY249Y29uZmln IC0gdGhleSBhcmUgbWFuYWdlZCBpbnRlcm5hbGx5IGJ5IHRoZSBzZXJ2ZXIuCi0rICAgICAgICAj IE9ubHkgcGFyZW50aWQgaGFzIGEgRFNFIGNvbmZpZyBlbnRyeSAoZm9yIHRoZSBpbnRlZ2VyT3Jk ZXJpbmdNYXRjaCBydWxlKS4KLSAgICAgICAgIGV4cGVjdGVkX3N5c3RlbV9pbmRleGVzID0gewot LSAgICAgICAgICAgICdlbnRyeXJkbic6IHsndHlwZXMnOiBbJ3N1YnRyZWUnXSwgJ21hdGNoaW5n X3J1bGUnOiBOb25lfSwKLS0gICAgICAgICAgICAncGFyZW50aWQnOiB7J3R5cGVzJzogWydlcSdd LCAnbWF0Y2hpbmdfcnVsZSc6ICdpbnRlZ2VyT3JkZXJpbmdNYXRjaCcsICdzY2FubGltaXQnOiAn bGltaXQ9NTAwMCB0eXBlPWVxIGZsYWdzPUFORCd9LAotLSAgICAgICAgICAgICdhbmNlc3Rvcmlk Jzogeyd0eXBlcyc6IFsnZXEnXSwgJ21hdGNoaW5nX3J1bGUnOiAnaW50ZWdlck9yZGVyaW5nTWF0 Y2gnLCAnc2NhbmxpbWl0JzogJ2xpbWl0PTUwMDAgdHlwZT1lcSBmbGFncz1BTkQnfSwKLSsgICAg ICAgICAgICAncGFyZW50aWQnOiB7J3R5cGVzJzogWydlcSddLCAnbWF0Y2hpbmdfcnVsZSc6ICdp bnRlZ2VyT3JkZXJpbmdNYXRjaCd9LAotICAgICAgICAgICAgICdvYmplY3RDbGFzcyc6IHsndHlw ZXMnOiBbJ2VxJ10sICdtYXRjaGluZ19ydWxlJzogTm9uZX0sCi0gICAgICAgICAgICAgJ2FjaSc6 IHsndHlwZXMnOiBbJ3ByZXMnXSwgJ21hdGNoaW5nX3J1bGUnOiBOb25lfSwKLSAgICAgICAgICAg ICAnbnNjcEVudHJ5RE4nOiB7J3R5cGVzJzogWydlcSddLCAnbWF0Y2hpbmdfcnVsZSc6IE5vbmV9 LAotQEAgLTcwNSwxNyArNzA2LDE0IEBAIGNsYXNzIEJhY2tlbmQoRFNMZGFwT2JqZWN0KToKLSAg ICAgICAgICAgICAgICAgICAgICMgR2VuZXJhdGUgcmVtZWRpYXRpb24gY29tbWFuZAotICAgICAg ICAgICAgICAgICAgICAgaW5kZXhfdHlwZXMgPSAnICcuam9pbihbZiItLWluZGV4LXR5cGUge3R9 IiBmb3IgdCBpbiBleHBlY3RlZF9jb25maWdbJ3R5cGVzJ11dKQotICAgICAgICAgICAgICAgICAg ICAgY21kID0gZiJkc2NvbmYgWU9VUl9JTlNUQU5DRSBiYWNrZW5kIGluZGV4IGFkZCB7YmVuYW1l fSAtLWF0dHIge2F0dHJfbmFtZX0ge2luZGV4X3R5cGVzfSIKLS0gICAgICAgICAgICAgICAgICAg IGlmIGV4cGVjdGVkX2NvbmZpZy5nZXQoJ21hdGNoaW5nX3J1bGUnKToKLSsgICAgICAgICAgICAg ICAgICAgIGlmIGV4cGVjdGVkX2NvbmZpZ1snbWF0Y2hpbmdfcnVsZSddOgotICAgICAgICAgICAg ICAgICAgICAgICAgIGNtZCArPSBmIiAtLW1hdGNoaW5nLXJ1bGUge2V4cGVjdGVkX2NvbmZpZ1sn bWF0Y2hpbmdfcnVsZSddfSIKLS0gICAgICAgICAgICAgICAgICAgIGlmIGV4cGVjdGVkX2NvbmZp Zy5nZXQoJ3NjYW5saW1pdCcpOgotLSAgICAgICAgICAgICAgICAgICAgICAgIGNtZCArPSBmIiAt LWFkZC1zY2FubGltaXQgXCJ7ZXhwZWN0ZWRfY29uZmlnWydzY2FubGltaXQnXX1cIiIKLSAgICAg ICAgICAgICAgICAgICAgIHJlbWVkaWF0aW9uX2NvbW1hbmRzLmFwcGVuZChjbWQpCi0gICAgICAg ICAgICAgICAgICAgICByZWluZGV4X2F0dHJzLmFkZChhdHRyX25hbWUpICAjIE5ldyBpbmRleCBu ZWVkcyByZWluZGV4aW5nCi0gICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAg ICAgICAjIEluZGV4IGV4aXN0cywgY2hlY2sgY29uZmlndXJhdGlvbgotICAgICAgICAgICAgICAg ICAgICAgYWN0dWFsX3R5cGVzID0gaW5kZXguZ2V0X2F0dHJfdmFsc191dGY4KCduc0luZGV4VHlw ZScpIG9yIFtdCi0gICAgICAgICAgICAgICAgICAgICBhY3R1YWxfbXJzID0gaW5kZXguZ2V0X2F0 dHJfdmFsc191dGY4KCduc01hdGNoaW5nUnVsZScpIG9yIFtdCi0tICAgICAgICAgICAgICAgICAg ICBhY3R1YWxfc2NhbmxpbWl0ID0gaW5kZXguZ2V0X2F0dHJfdmFsc191dGY4KCduc0luZGV4SURM aXN0U2NhbkxpbWl0Jykgb3IgW10KLSAKLSAgICAgICAgICAgICAgICAgICAgICMgTm9ybWFsaXpl IHRvIGxvd2VyY2FzZSBmb3IgY29tcGFyaXNvbgotICAgICAgICAgICAgICAgICAgICAgYWN0dWFs X3R5cGVzID0gW3QubG93ZXIoKSBmb3IgdCBpbiBhY3R1YWxfdHlwZXNdCi1AQCAtNzMwLDMxICs3 MjgsMTYgQEAgY2xhc3MgQmFja2VuZChEU0xkYXBPYmplY3QpOgotICAgICAgICAgICAgICAgICAg ICAgICAgIHJlbWVkaWF0aW9uX2NvbW1hbmRzLmFwcGVuZChjbWQpCi0gICAgICAgICAgICAgICAg ICAgICAgICAgcmVpbmRleF9hdHRycy5hZGQoYXR0cl9uYW1lKQotIAotLSAgICAgICAgICAgICAg ICAgICAgIyBDaGVjayBtYXRjaGluZyBydWxlcyBhbmQgc2NhbmxpbWl0IHRvZ2V0aGVyIHRvIGdl bmVyYXRlIGEgc2luZ2xlIGNvbWJpbmVkIGNvbW1hbmQKLSsgICAgICAgICAgICAgICAgICAgICMg Q2hlY2sgbWF0Y2hpbmcgcnVsZXMKLSAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX21yID0g ZXhwZWN0ZWRfY29uZmlnLmdldCgnbWF0Y2hpbmdfcnVsZScpCi0tICAgICAgICAgICAgICAgICAg ICBleHBlY3RlZF9zY2FubGltaXQgPSBleHBlY3RlZF9jb25maWcuZ2V0KCdzY2FubGltaXQnKQot LQotLSAgICAgICAgICAgICAgICAgICAgbWlzc2luZ19tciA9IEZhbHNlCi0gICAgICAgICAgICAg ICAgICAgICBpZiBleHBlY3RlZF9tcjoKLSAgICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWxf bXJzX2xvd2VyID0gW21yLmxvd2VyKCkgZm9yIG1yIGluIGFjdHVhbF9tcnNdCi0gICAgICAgICAg ICAgICAgICAgICAgICAgaWYgZXhwZWN0ZWRfbXIubG93ZXIoKSBub3QgaW4gYWN0dWFsX21yc19s b3dlcjoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzY3JlcGFuY2llcy5hcHBlbmQo ZiJJbmRleCB7YXR0cl9uYW1lfSBtaXNzaW5nIG1hdGNoaW5nIHJ1bGU6IHtleHBlY3RlZF9tcn0i KQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNzaW5nX21yID0gVHJ1ZQotLQotLSAg ICAgICAgICAgICAgICAgICAgbWlzc2luZ19zY2FubGltaXQgPSBGYWxzZQotLSAgICAgICAgICAg ICAgICAgICAgaWYgZXhwZWN0ZWRfc2NhbmxpbWl0IGFuZCAobGVuKGFjdHVhbF9zY2FubGltaXQp ID09IDApOgotLSAgICAgICAgICAgICAgICAgICAgICAgIGRpc2NyZXBhbmNpZXMuYXBwZW5kKGYi SW5kZXgge2F0dHJfbmFtZX0gbWlzc2luZyBmaW5lIGdyYWluIGRlZmluaXRpb24gb2YgSURzIGxp bWl0OiB7ZXhwZWN0ZWRfc2NhbmxpbWl0fSIpCi0tICAgICAgICAgICAgICAgICAgICAgICAgbWlz c2luZ19zY2FubGltaXQgPSBUcnVlCi0tCi0tICAgICAgICAgICAgICAgICAgICAjIEdlbmVyYXRl IGEgc2luZ2xlIGNvbWJpbmVkIGNvbW1hbmQgZm9yIGFsbCBtaXNzaW5nIGl0ZW1zCi0tICAgICAg ICAgICAgICAgICAgICBpZiBtaXNzaW5nX21yIG9yIG1pc3Npbmdfc2NhbmxpbWl0OgotLSAgICAg ICAgICAgICAgICAgICAgICAgIGNtZCA9IGYiZHNjb25mIFlPVVJfSU5TVEFOQ0UgYmFja2VuZCBp bmRleCBzZXQge2JlbmFtZX0gLS1hdHRyIHthdHRyX25hbWV9IgotLSAgICAgICAgICAgICAgICAg ICAgICAgIGlmIG1pc3NpbmdfbXI6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNtZCAr PSBmIiAtLWFkZC1tciB7ZXhwZWN0ZWRfbXJ9IgotLSAgICAgICAgICAgICAgICAgICAgICAgIGlm IG1pc3Npbmdfc2NhbmxpbWl0OgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbWQgKz0g ZiIgLS1hZGQtc2NhbmxpbWl0IFwie2V4cGVjdGVkX3NjYW5saW1pdH1cIiIKLS0gICAgICAgICAg ICAgICAgICAgICAgICByZW1lZGlhdGlvbl9jb21tYW5kcy5hcHBlbmQoY21kKQotLSAgICAgICAg ICAgICAgICAgICAgICAgIHJlaW5kZXhfYXR0cnMuYWRkKGF0dHJfbmFtZSkKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIyBBZGQgdGhlIG1pc3NpbmcgbWF0Y2hpbmcgcnVsZQotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjbWQgPSBmImRzY29uZiBZT1VSX0lOU1RBTkNFIGJhY2tl bmQgaW5kZXggc2V0IHtiZW5hbWV9IC0tYXR0ciB7YXR0cl9uYW1lfSAtLWFkZC1tciB7ZXhwZWN0 ZWRfbXJ9IgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1lZGlhdGlvbl9jb21tYW5k cy5hcHBlbmQoY21kKQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWluZGV4X2F0dHJz LmFkZChhdHRyX25hbWUpCi0gCi0gICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgot ICAgICAgICAgICAgICAgICBzZWxmLl9sb2cuZGVidWcoZiJfbGludF9zeXN0ZW1faW5kZXhlcyAt IEVycm9yIGNoZWNraW5nIGluZGV4IHthdHRyX25hbWV9OiB7ZX0iKQotQEAgLTk5MywxMyArOTc2 LDEyIEBAIGNsYXNzIEJhY2tlbmQoRFNMZGFwT2JqZWN0KToKLSAgICAgICAgICAgICAgICAgcmV0 dXJuCi0gICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJDYW4gbm90IGRlbGV0ZSBpbmRleCBiZWNh dXNlIGl0IGRvZXMgbm90IGV4aXN0IikKLSAKLS0gICAgZGVmIGFkZF9pbmRleChzZWxmLCBhdHRy X25hbWUsIHR5cGVzLCBtYXRjaGluZ19ydWxlcz1Ob25lLCBpZGxpc3RzY2FubGltaXQ9Tm9uZSwg cmVpbmRleD1GYWxzZSk6Ci0rICAgIGRlZiBhZGRfaW5kZXgoc2VsZiwgYXR0cl9uYW1lLCB0eXBl cywgbWF0Y2hpbmdfcnVsZXM9Tm9uZSwgcmVpbmRleD1GYWxzZSk6Ci0gICAgICAgICAiIiIgQWRk IGFuIGluZGV4LgotIAotICAgICAgICAgOnBhcmFtIGF0dHJfbmFtZSAtIG5hbWUgb2YgdGhlIGF0 dHJpYnV0ZSB0byBpbmRleAotICAgICAgICAgOnBhcmFtIHR5cGVzIC0gYSBMaXN0IG9mIGluZGV4 IHR5cGVzKGVxLCBwcmVzLCBzdWIsIGFwcHJveCkKLSAgICAgICAgIDpwYXJhbSBtYXRjaGluZ19y dWxlcyAtIGEgTGlzdCBvZiBtYXRjaGluZyBydWxlcyBmb3IgdGhlIGluZGV4Ci0tICAgICAgICA6 cGFyYW0gaWRsaXN0c2NhbmxpbWl0IC0gYSBMaXN0IG9mIGZpbmUgZ3JhaW4gZGVmaW5pdGlvbnMg Zm9yIHNjYW5uaW5nIGxpbWl0Ci0gICAgICAgICA6cGFyYW0gcmVpbmRleCAtIElmIHNldCB0byBU cnVlIHRoZW4gaW5kZXggdGhlIGF0dHJpYnV0ZSBhZnRlciBjcmVhdGluZyBpdC4KLSAgICAgICAg ICIiIgotIAotQEAgLTEwMjksMTUgKzEwMTEsNiBAQCBjbGFzcyBCYWNrZW5kKERTTGRhcE9iamVj dCk6Ci0gICAgICAgICAgICAgIyBPbmx5IGFkZCBpZiB0aGVyZSBhcmUgYWN0dWFsbHkgcnVsZXMg cHJlc2VudCBpbiB0aGUgbGlzdC4KLSAgICAgICAgICAgICBpZiBsZW4obXJzKSA+IDA6Ci0gICAg ICAgICAgICAgICAgIHByb3BzWyduc01hdGNoaW5nUnVsZSddID0gbXJzCi0tCi0tICAgICAgICBp ZiBpZGxpc3RzY2FubGltaXQgaXMgbm90IE5vbmU6Ci0tICAgICAgICAgICAgc2NhbmxpbWl0cyA9 IFtdCi0tICAgICAgICAgICAgZm9yIHNjYW5saW1pdCBpbiBpZGxpc3RzY2FubGltaXQ6Ci0tICAg ICAgICAgICAgICAgIHNjYW5saW1pdHMuYXBwZW5kKHNjYW5saW1pdCkKLS0gICAgICAgICAgICAj IE9ubHkgYWRkIGlmIHRoZXJlIGFyZSBhY3R1YWxseSBsaW1pdHMgaW4gdGhlIGxpc3QuCi0tICAg ICAgICAgICAgaWYgbGVuKHNjYW5saW1pdHMpID4gMDoKLS0gICAgICAgICAgICAgICAgcHJvcHNb J25zSW5kZXhJRExpc3RTY2FuTGltaXQnXSA9IHNjYW5saW1pdHMKLS0KLSAgICAgICAgIG5ld19p bmRleC5jcmVhdGUocHJvcGVydGllcz1wcm9wcywgYmFzZWRuPSJjbj1pbmRleCwiICsgc2VsZi5f ZG4pCi0gCi0gICAgICAgICBpZiByZWluZGV4OgotQEAgLTEzNDksNyArMTMyMiw2IEBAIGNsYXNz IERhdGFiYXNlQ29uZmlnKERTTGRhcE9iamVjdCk6Ci0gICAgICAgICAgICAgJ25zc2xhcGQtbG9v a3Rocm91Z2hsaW1pdCcsCi0gICAgICAgICAgICAgJ25zc2xhcGQtbW9kZScsCi0gICAgICAgICAg ICAgJ25zc2xhcGQtaWRsaXN0c2NhbmxpbWl0JywKLS0gICAgICAgICAgICAnbnNzbGFwZC1zeXN0 ZW1pZGxpc3RzY2FubGltaXQnLAotICAgICAgICAgICAgICduc3NsYXBkLWRpcmVjdG9yeScsCi0g ICAgICAgICAgICAgJ25zc2xhcGQtaW1wb3J0LWNhY2hlc2l6ZScsCi0gICAgICAgICAgICAgJ25z c2xhcGQtaWRsLXN3aXRjaCcsCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYjM4OS9saWIzODkvY2xpX2Nv bmYvYmFja2VuZC5weSBiL3NyYy9saWIzODkvbGliMzg5L2NsaV9jb25mL2JhY2tlbmQucHkKLWlu ZGV4IDk3NzJlMzlkNC4uNjhlZmE3OTVjIDEwMDY0NAotLS0tIGEvc3JjL2xpYjM4OS9saWIzODkv Y2xpX2NvbmYvYmFja2VuZC5weQotKysrIGIvc3JjL2xpYjM4OS9saWIzODkvY2xpX2NvbmYvYmFj a2VuZC5weQotQEAgLTM5LDcgKzM5LDYgQEAgYXJnX3RvX2F0dHIgPSB7Ci0gICAgICAgICAnbW9k ZSc6ICduc3NsYXBkLW1vZGUnLAotICAgICAgICAgJ3N0YXRlJzogJ25zc2xhcGQtc3RhdGUnLAot ICAgICAgICAgJ2lkbGlzdHNjYW5saW1pdCc6ICduc3NsYXBkLWlkbGlzdHNjYW5saW1pdCcsCi0t ICAgICAgICAnc3lzdGVtaWRsaXN0c2NhbmxpbWl0JzogJ25zc2xhcGQtc3lzdGVtaWRsaXN0c2Nh bmxpbWl0JywKLSAgICAgICAgICdkaXJlY3RvcnknOiAnbnNzbGFwZC1kaXJlY3RvcnknLAotICAg ICAgICAgJ2RiY2FjaGVzaXplJzogJ25zc2xhcGQtZGJjYWNoZXNpemUnLAotICAgICAgICAgJ2xv Z2RpcmVjdG9yeSc6ICduc3NsYXBkLWRiLWxvZ2RpcmVjdG9yeScsCi1AQCAtNjI2LDIxICs2MjUs NiBAQCBkZWYgYmFja2VuZF9zZXRfaW5kZXgoaW5zdCwgYmFzZWRuLCBsb2csIGFyZ3MpOgotICAg ICAgICAgICAgIGV4Y2VwdCBsZGFwLk5PX1NVQ0hfQVRUUklCVVRFOgotICAgICAgICAgICAgICAg ICByYWlzZSBWYWx1ZUVycm9yKCdDYW4gbm90IGRlbGV0ZSBtYXRjaGluZyBydWxlIHR5cGUgYmVj YXVzZSBpdCBkb2VzIG5vdCBleGlzdCcpCi0gCi0tICAgIGlmIGFyZ3MucmVwbGFjZV9zY2FubGlt aXQgaXMgbm90IE5vbmU6Ci0tICAgICAgICBmb3IgcmVwbGFjZV9zY2FubGltaXQgaW4gYXJncy5y ZXBsYWNlX3NjYW5saW1pdDoKLS0gICAgICAgICAgICBpbmRleC5yZXBsYWNlKCduc0luZGV4SURM aXN0U2NhbkxpbWl0JywgcmVwbGFjZV9zY2FubGltaXQpCi0tCi0tICAgIGlmIGFyZ3MuYWRkX3Nj YW5saW1pdCBpcyBub3QgTm9uZToKLS0gICAgICAgIGZvciBhZGRfc2NhbmxpbWl0IGluIGFyZ3Mu YWRkX3NjYW5saW1pdDoKLS0gICAgICAgICAgICBpbmRleC5hZGQoJ25zSW5kZXhJRExpc3RTY2Fu TGltaXQnLCBhZGRfc2NhbmxpbWl0KQotLQotLSAgICBpZiBhcmdzLmRlbF9zY2FubGltaXQgaXMg bm90IE5vbmU6Ci0tICAgICAgICBmb3IgZGVsX3NjYW5saW1pdCBpbiBhcmdzLmRlbF9zY2FubGlt aXQ6Ci0tICAgICAgICAgICAgdHJ5OgotLSAgICAgICAgICAgICAgICBpbmRleC5yZW1vdmUoJ25z SW5kZXhJRExpc3RTY2FuTGltaXQnLCBkZWxfc2NhbmxpbWl0KQotLSAgICAgICAgICAgIGV4Y2Vw dCBsZGFwLk5PX1NVQ0hfQVRUUklCVVRFOgotLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVy cm9yKCdDYW4gbm90IGRlbGV0ZSBhIGZpbmUgZ3JhaW4gbGltaXQgZGVmaW5pdGlvbiBiZWNhdXNl IGl0IGRvZXMgbm90IGV4aXN0JykKLS0KLSAgICAgaWYgYXJncy5yZWluZGV4OgotICAgICAgICAg YmUucmVpbmRleChhdHRycz1bYXJncy5hdHRyXSkKLSAgICAgbG9nLmluZm8oIkluZGV4IHN1Y2Nl c3NmdWxseSB1cGRhdGVkIikKLUBAIC05NjMsOSArOTQ3LDYgQEAgZGVmIGNyZWF0ZV9wYXJzZXIo c3VicGFyc2Vycyk6Ci0gICAgIGVkaXRfaW5kZXhfcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1kZWwt dHlwZScsIGFjdGlvbj0nYXBwZW5kJywgaGVscD0nUmVtb3ZlcyBhbiBpbmRleCB0eXBlIGZyb20g dGhlIGluZGV4OiAoZXEsIHN1YiwgcHJlcywgb3IgYXBwcm94KScpCi0gICAgIGVkaXRfaW5kZXhf cGFyc2VyLmFkZF9hcmd1bWVudCgnLS1hZGQtbXInLCBhY3Rpb249J2FwcGVuZCcsIGhlbHA9J0Fk ZHMgYSBtYXRjaGluZy1ydWxlIHRvIHRoZSBpbmRleCcpCi0gICAgIGVkaXRfaW5kZXhfcGFyc2Vy LmFkZF9hcmd1bWVudCgnLS1kZWwtbXInLCBhY3Rpb249J2FwcGVuZCcsIGhlbHA9J1JlbW92ZXMg YSBtYXRjaGluZy1ydWxlIGZyb20gdGhlIGluZGV4JykKLS0gICAgZWRpdF9pbmRleF9wYXJzZXIu YWRkX2FyZ3VtZW50KCctLWFkZC1zY2FubGltaXQnLCBhY3Rpb249J2FwcGVuZCcsIGhlbHA9J0Fk ZHMgYSBmaW5lIGdyYWluIGxpbWl0IGRlZmluaXRvbiB0byB0aGUgaW5kZXgnKQotLSAgICBlZGl0 X2luZGV4X3BhcnNlci5hZGRfYXJndW1lbnQoJy0tcmVwbGFjZS1zY2FubGltaXQnLCBhY3Rpb249 J2FwcGVuZCcsIGhlbHA9J1JlcGxhY2VzIGEgZmluZSBncmFpbiBsaW1pdCBkZWZpbml0b24gdG8g dGhlIGluZGV4JykKLS0gICAgZWRpdF9pbmRleF9wYXJzZXIuYWRkX2FyZ3VtZW50KCctLWRlbC1z Y2FubGltaXQnLCBhY3Rpb249J2FwcGVuZCcsIGhlbHA9J1JlbW92ZXMgYSBmaW5lIGdyYWluIGxp bWl0IGRlZmluaXRvbiB0byB0aGUgaW5kZXgnKQotICAgICBlZGl0X2luZGV4X3BhcnNlci5hZGRf YXJndW1lbnQoJy0tcmVpbmRleCcsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGhlbHA9J1JlLWluZGV4 ZXMgdGhlIGRhdGFiYXNlIGFmdGVyIGVkaXRpbmcgdGhlIGluZGV4JykKLSAgICAgZWRpdF9pbmRl eF9wYXJzZXIuYWRkX2FyZ3VtZW50KCdiZV9uYW1lJywgaGVscD0nVGhlIGJhY2tlbmQgbmFtZSBv ciBzdWZmaXgnKQotIAotQEAgLTEwOTIsNyArMTA3Myw2IEBAIGRlZiBjcmVhdGVfcGFyc2VyKHN1 YnBhcnNlcnMpOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJ3dpbGwgY2hlY2sgd2hlbiBleGFtaW5pbmcgY2FuZGlkYXRl IGVudHJpZXMgaW4gcmVzcG9uc2UgdG8gYSBzZWFyY2ggcmVxdWVzdCcpCi0gICAgIHNldF9kYl9j b25maWdfcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1tb2RlJywgaGVscD0nU3BlY2lmaWVzIHRoZSBw ZXJtaXNzaW9ucyB1c2VkIGZvciBuZXdseSBjcmVhdGVkIGluZGV4IGZpbGVzJykKLSAgICAgc2V0 X2RiX2NvbmZpZ19wYXJzZXIuYWRkX2FyZ3VtZW50KCctLWlkbGlzdHNjYW5saW1pdCcsIGhlbHA9 J1NwZWNpZmllcyB0aGUgbnVtYmVyIG9mIGVudHJ5IElEcyB0aGF0IGFyZSBzZWFyY2hlZCBkdXJp bmcgYSBzZWFyY2ggb3BlcmF0aW9uJykKLS0gICAgc2V0X2RiX2NvbmZpZ19wYXJzZXIuYWRkX2Fy Z3VtZW50KCctLXN5c3RlbWlkbGlzdHNjYW5saW1pdCcsIGhlbHA9J1NwZWNpZmllcyB0aGUgbnVt YmVyIG9mIGVudHJ5IElEcyB0aGF0IGFyZSBmZXRjaCBmcm9tIGFuY2VzdG9yaWQvcGFyZW50aWQg aW5kZXhlcycpCi0gICAgIHNldF9kYl9jb25maWdfcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1kaXJl Y3RvcnknLCBoZWxwPSdTcGVjaWZpZXMgYWJzb2x1dGUgcGF0aCB0byBkYXRhYmFzZSBpbnN0YW5j ZScpCi0gICAgIHNldF9kYl9jb25maWdfcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1kYmNhY2hlc2l6 ZScsIGhlbHA9J1NwZWNpZmllcyB0aGUgZGF0YWJhc2UgaW5kZXggY2FjaGUgc2l6ZSBpbiBieXRl cycpCi0gICAgIHNldF9kYl9jb25maWdfcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1sb2dkaXJlY3Rv cnknLCBoZWxwPSdTcGVjaWZpZXMgdGhlIHBhdGggdG8gdGhlIGRpcmVjdG9yeSB0aGF0IGNvbnRh aW5zIHRoZSBkYXRhYmFzZSB0cmFuc2FjdGlvbiBsb2dzJykKLS0tIAotMi41Mi4wCi0KCmRpZmYg LS1naXQgYS8wMDMzLUlzc3VlLTcyMjMtQWRkLXVwZ3JhZGUtZnVuY3Rpb24tdG8tcmVtb3ZlLW5z SW5kZXhJREwucGF0Y2ggYi8wMDMzLUlzc3VlLTcyMjMtQWRkLXVwZ3JhZGUtZnVuY3Rpb24tdG8t cmVtb3ZlLW5zSW5kZXhJREwucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFl YzU2ZGMuLjAwMDAwMDAKLS0tIGEvMDAzMy1Jc3N1ZS03MjIzLUFkZC11cGdyYWRlLWZ1bmN0aW9u LXRvLXJlbW92ZS1uc0luZGV4SURMLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjEyICswLDAg QEAKLUZyb20gNGM0NGU0YzUyMmFmYzBmNTQwMTc1NGYyOWE0NzY0NTg4OWUyMWFjYSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFZpa3RvciBBc2hpcm92IDx2YXNoaXJvdkByZWRoYXQu Y29tPgotRGF0ZTogVGh1LCA1IEZlYiAyMDI2IDEyOjE3OjA2ICswMTAwCi1TdWJqZWN0OiBbUEFU Q0hdIElzc3VlIDcyMjMgLSBBZGQgdXBncmFkZSBmdW5jdGlvbiB0byByZW1vdmUKLSBuc0luZGV4 SURMaXN0U2NhbkxpbWl0IGZyb20gcGFyZW50aWQKLQotRGVzY3JpcHRpb246Ci1BZGQgYHVwZ3Jh ZGVfcmVtb3ZlX2luZGV4X3NjYW5saW1pdCgpYCBmdW5jdGlvbiB0aGF0IHJlbW92ZXMgdGhlCi1u c0luZGV4SURMaXN0U2NhbkxpbWl0IGF0dHJpYnV0ZSBmcm9tIHBhcmVudGlkIGluZGV4IGNvbmZp Z3VyYXRpb24KLWlmIHByZXNlbnQuCi0KLVRoaXMgYXR0cmlidXRlIHdhcyBpbmNvcnJlY3RseSBh ZGRlZCBieSBhIHByZXZpb3VzIHZlcnNpb24gYW5kIGNhbgotY2F1c2UgaXNzdWVzIHdpdGggaW5k ZXggY29uZmlndXJhdGlvbi4gVGhlIHVwZ3JhZGUgZnVuY3Rpb24gcnVucwotYXV0b21hdGljYWxs eSBvbiBzZXJ2ZXIgc3RhcnR1cCBhbmQgcmVtb3ZlcyB0aGUgYXR0cmlidXRlIGlmIGZvdW5kLgot Ci1SZWxhdGVzOiBodHRwczovL2dpdGh1Yi5jb20vMzg5ZHMvMzg5LWRzLWJhc2UvaXNzdWVzLzcy MjMKLQotUmV2aWV3ZWQgYnk6IEBwcm9naWVyMzg5LCBAdGJvcmRheiwgQGRyb2lkZWNrIChUaGFu a3MhKQotLS0tCi0gLi4uL2hlYWx0aGNoZWNrL2hlYWx0aF9zeXN0ZW1faW5kZXhlc190ZXN0LnB5 IHwgIDUyICsrKysrKysrKwotIGxkYXAvc2VydmVycy9zbGFwZC91cGdyYWRlLmMgICAgICAgICAg ICAgICAgICB8IDEwNSArKysrKysrKysrKysrKysrKysKLSAyIGZpbGVzIGNoYW5nZWQsIDE1NyBp bnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvaGVh bHRoY2hlY2svaGVhbHRoX3N5c3RlbV9pbmRleGVzX3Rlc3QucHkgYi9kaXJzcnZ0ZXN0cy90ZXN0 cy9zdWl0ZXMvaGVhbHRoY2hlY2svaGVhbHRoX3N5c3RlbV9pbmRleGVzX3Rlc3QucHkKLWluZGV4 IDE0MDg0NWEzMy4uYWVhODhlMGUyIDEwMDY0NAotLS0tIGEvZGlyc3J2dGVzdHMvdGVzdHMvc3Vp dGVzL2hlYWx0aGNoZWNrL2hlYWx0aF9zeXN0ZW1faW5kZXhlc190ZXN0LnB5Ci0rKysgYi9kaXJz cnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvaGVhbHRoY2hlY2svaGVhbHRoX3N5c3RlbV9pbmRleGVzX3Rl c3QucHkKLUBAIC00NTMsNiArNDUzLDU4IEBAIGRlZiB0ZXN0X211bHRpcGxlX21pc3NpbmdfaW5k ZXhlcyh0b3BvbG9neV9zdCwgbG9nX2J1ZmZlcmluZ19lbmFibGVkKToKLSAgICAgcnVuX2hlYWx0 aGNoZWNrX2FuZF9mbHVzaF9sb2codG9wb2xvZ3lfc3QsIHN0YW5kYWxvbmUsIGpzb249VHJ1ZSwg c2VhcmNoZWRfY29kZT1KU09OX09VVFBVVCkKLSAKLSAKLStkZWYgdGVzdF91cGdyYWRlX3JlbW92 ZXNfcGFyZW50aWRfc2NhbmxpbWl0KHRvcG9sb2d5X3N0KToKLSsgICAgIiIiQ2hlY2sgaWYgdXBn cmFkZSBmdW5jdGlvbiByZW1vdmVzIG5zSW5kZXhJRExpc3RTY2FuTGltaXQgZnJvbSBwYXJlbnRp ZCBpbmRleAotKwotKyAgICA6aWQ6IDI4MDg4ODZlLWMxYzEtNDQxZC1iM2EzLTI5OWM0ZWYxYWI0 YQotKyAgICA6c2V0dXA6IFN0YW5kYWxvbmUgaW5zdGFuY2UKLSsgICAgOnN0ZXBzOgotKyAgICAg ICAgMS4gQ3JlYXRlIERTIGluc3RhbmNlCi0rICAgICAgICAyLiBTdG9wIHRoZSBzZXJ2ZXIKLSsg ICAgICAgIDMuIFVzZSBEU0VsZGlmIHRvIGFkZCBuc0luZGV4SURMaXN0U2NhbkxpbWl0IHRvIHBh cmVudGlkIGluZGV4Ci0rICAgICAgICA0LiBTdGFydCB0aGUgc2VydmVyICh0cmlnZ2VycyB1cGdy YWRlKQotKyAgICAgICAgNS4gVmVyaWZ5IG5zSW5kZXhJRExpc3RTY2FuTGltaXQgaXMgcmVtb3Zl ZCBmcm9tIHBhcmVudGlkIGluZGV4Ci0rICAgIDpleHBlY3RlZHJlc3VsdHM6Ci0rICAgICAgICAx LiBTdWNjZXNzCi0rICAgICAgICAyLiBTdWNjZXNzCi0rICAgICAgICAzLiBTdWNjZXNzCi0rICAg ICAgICA0LiBTdWNjZXNzCi0rICAgICAgICA1LiBuc0luZGV4SURMaXN0U2NhbkxpbWl0IGlzIG5v IGxvbmdlciBwcmVzZW50Ci0rICAgICIiIgotKyAgICBmcm9tIGxpYjM4OS5kc2VsZGlmIGltcG9y dCBEU0VsZGlmCi0rCi0rICAgIHN0YW5kYWxvbmUgPSB0b3BvbG9neV9zdC5zdGFuZGFsb25lCi0r ICAgIFBBUkVOVElEX0ROID0gImNuPXBhcmVudGlkLGNuPWluZGV4LGNuPXVzZXJyb290LGNuPWxk Ym0gZGF0YWJhc2UsY249cGx1Z2lucyxjbj1jb25maWciCi0rICAgIFNDQU5MSU1JVF9WQUxVRSA9 ICJsaW1pdD01MDAwIHR5cGU9ZXEgZmxhZ3M9QU5EIgotKwotKyAgICBsb2cuaW5mbygiU3RvcCB0 aGUgc2VydmVyIikKLSsgICAgc3RhbmRhbG9uZS5zdG9wKCkKLSsKLSsgICAgbG9nLmluZm8oIkFk ZCBuc0luZGV4SURMaXN0U2NhbkxpbWl0IHRvIHBhcmVudGlkIGluZGV4IHVzaW5nIERTRWxkaWYi KQotKyAgICBkc2VfbGRpZiA9IERTRWxkaWYoc3RhbmRhbG9uZSkKLSsgICAgZHNlX2xkaWYuYWRk KFBBUkVOVElEX0ROLCAibnNJbmRleElETGlzdFNjYW5MaW1pdCIsIFNDQU5MSU1JVF9WQUxVRSkK LSsKLSsgICAgIyBWZXJpZnkgaXQgd2FzIGFkZGVkCi0rICAgIHNjYW5saW1pdCA9IGRzZV9sZGlm LmdldChQQVJFTlRJRF9ETiwgIm5zSW5kZXhJRExpc3RTY2FuTGltaXQiKQotKyAgICBhc3NlcnQg c2NhbmxpbWl0IGlzIG5vdCBOb25lLCAiRmFpbGVkIHRvIGFkZCBuc0luZGV4SURMaXN0U2Nhbkxp bWl0IgotKyAgICBsb2cuaW5mbyhmIkFkZGVkIG5zSW5kZXhJRExpc3RTY2FuTGltaXQ6IHtzY2Fu bGltaXR9IikKLSsKLSsgICAgbG9nLmluZm8oIlN0YXJ0IHRoZSBzZXJ2ZXIgKHRyaWdnZXJzIHVw Z3JhZGUpIikKLSsgICAgc3RhbmRhbG9uZS5zdGFydCgpCi0rCi0rICAgIGxvZy5pbmZvKCJWZXJp ZnkgbnNJbmRleElETGlzdFNjYW5MaW1pdCB3YXMgcmVtb3ZlZCBieSB1cGdyYWRlIikKLSsgICAg IyBDaGVjayB2aWEgTERBUCAtIHRoZSB1cGdyYWRlIHNob3VsZCBoYXZlIHJlbW92ZWQgaXQKLSsg ICAgcGFyZW50aWRfaW5kZXggPSBJbmRleChzdGFuZGFsb25lLCBQQVJFTlRJRF9ETikKLSsgICAg c2NhbmxpbWl0X2FmdGVyID0gcGFyZW50aWRfaW5kZXguZ2V0X2F0dHJfdmFsc191dGY4KCJuc0lu ZGV4SURMaXN0U2NhbkxpbWl0IikKLSsgICAgbG9nLmluZm8oZiJuc0luZGV4SURMaXN0U2Nhbkxp bWl0IGFmdGVyIHVwZ3JhZGU6IHtzY2FubGltaXRfYWZ0ZXJ9IikKLSsKLSsgICAgIyBUaGUgdXBn cmFkZSBmdW5jdGlvbiBzaG91bGQgaGF2ZSByZW1vdmVkIG5zSW5kZXhJRExpc3RTY2FuTGltaXQK LSsgICAgYXNzZXJ0IG5vdCBzY2FubGltaXRfYWZ0ZXIsIFwKLSsgICAgICAgIGYibnNJbmRleElE TGlzdFNjYW5MaW1pdCBzaG91bGQgaGF2ZSBiZWVuIHJlbW92ZWQgYnV0IGZvdW5kOiB7c2Nhbmxp bWl0X2FmdGVyfSIKLSsKLSsgICAgbG9nLmluZm8oIlVwZ3JhZGUgc3VjY2Vzc2Z1bGx5IHJlbW92 ZWQgbnNJbmRleElETGlzdFNjYW5MaW1pdCBmcm9tIHBhcmVudGlkIGluZGV4IikKLSsKLSsKLSBp ZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgotICAgICAjIFJ1biBpc29sYXRlZAotICAgICAjIC1z IGZvciBERUJVRyBtb2RlCi1kaWZmIC0tZ2l0IGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL3VwZ3JhZGUu YyBiL2xkYXAvc2VydmVycy9zbGFwZC91cGdyYWRlLmMKLWluZGV4IGIwMmUzN2VkNi4uZGNkMTY5 NDBiIDEwMDY0NAotLS0tIGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL3VwZ3JhZGUuYwotKysrIGIvbGRh cC9zZXJ2ZXJzL3NsYXBkL3VwZ3JhZGUuYwotQEAgLTMzMCw2ICszMzAsMTA3IEBAIHVwZ3JhZGVf cmVtb3ZlX3N1YnRyZWVfcmVuYW1lKHZvaWQpCi0gICAgIHJldHVybiBVUEdSQURFX1NVQ0NFU1M7 Ci0gfQotIAotKy8qCi0rICogUmVtb3ZlIG5zSW5kZXhJRExpc3RTY2FuTGltaXQgZnJvbSBwYXJl bnRpZCBpbmRleCBjb25maWd1cmF0aW9uLgotKyAqCi0rICogVGhpcyBhdHRyaWJ1dGUgd2FzIGlu Y29ycmVjdGx5IGFkZGVkIGJ5IGEgcHJldmlvdXMgdmVyc2lvbiBhbmQgY2FuCi0rICogY2F1c2Ug aXNzdWVzIHdpdGggaW5kZXggY29uZmlndXJhdGlvbi4gUmVtb3ZlIGl0IGlmIHByZXNlbnQuCi0r ICovCi0rc3RhdGljIHVwZ3JhZGVfc3RhdHVzCi0rdXBncmFkZV9yZW1vdmVfaW5kZXhfc2Nhbmxp bWl0KHZvaWQpCi0rewotKyAgICBzdHJ1Y3Qgc2xhcGlfcGJsb2NrICpwYiA9IHNsYXBpX3BibG9j a19uZXcoKTsKLSsgICAgU2xhcGlfRW50cnkgKipiYWNrZW5kcyA9IE5VTEw7Ci0rICAgIGNvbnN0 IGNoYXIgKmJlX2Jhc2VfZG4gPSAiY249bGRibSBkYXRhYmFzZSxjbj1wbHVnaW5zLGNuPWNvbmZp ZyI7Ci0rICAgIGNvbnN0IGNoYXIgKmJlX2ZpbHRlciA9ICIob2JqZWN0Y2xhc3M9bnNCYWNrZW5k SW5zdGFuY2UpIjsKLSsgICAgY29uc3QgY2hhciAqYXR0cnNfdG9fY2hlY2tbXSA9IHsicGFyZW50 aWQiLCBOVUxMfTsKLSsgICAgdXBncmFkZV9zdGF0dXMgdXJlc3VsdCA9IFVQR1JBREVfU1VDQ0VT UzsKLSsKLSsgICAgLyogU2VhcmNoIGZvciBhbGwgYmFja2VuZCBpbnN0YW5jZXMgKi8KLSsgICAg c2xhcGlfc2VhcmNoX2ludGVybmFsX3NldF9wYigKLSsgICAgICAgICAgICBwYiwgYmVfYmFzZV9k biwKLSsgICAgICAgICAgICBMREFQX1NDT1BFX09ORUxFVkVMLAotKyAgICAgICAgICAgIGJlX2Zp bHRlciwgTlVMTCwgMCwgTlVMTCwgTlVMTCwKLSsgICAgICAgICAgICBwbHVnaW5fZ2V0X2RlZmF1 bHRfY29tcG9uZW50X2lkKCksIDApOwotKyAgICBzbGFwaV9zZWFyY2hfaW50ZXJuYWxfcGIocGIp OwotKyAgICBzbGFwaV9wYmxvY2tfZ2V0KHBiLCBTTEFQSV9QTFVHSU5fSU5UT1BfU0VBUkNIX0VO VFJJRVMsICZiYWNrZW5kcyk7Ci0rCi0rICAgIGlmIChiYWNrZW5kcykgewotKyAgICAgICAgZm9y IChzaXplX3QgYmVfaWR4ID0gMDsgYmFja2VuZHNbYmVfaWR4XSAhPSBOVUxMOyBiZV9pZHgrKykg ewotKyAgICAgICAgICAgIGNvbnN0IGNoYXIgKmJlX2RuID0gc2xhcGlfZW50cnlfZ2V0X2RuX2Nv bnN0KGJhY2tlbmRzW2JlX2lkeF0pOwotKyAgICAgICAgICAgIGNvbnN0IGNoYXIgKmJlX25hbWUg PSBzbGFwaV9lbnRyeV9hdHRyX2dldF9yZWYoYmFja2VuZHNbYmVfaWR4XSwgImNuIik7Ci0rICAg ICAgICAgICAgaWYgKCFiZV9kbiB8fCAhYmVfbmFtZSkgewotKyAgICAgICAgICAgICAgICBjb250 aW51ZTsKLSsgICAgICAgICAgICB9Ci0rCi0rICAgICAgICAgICAgZm9yIChzaXplX3QgYXR0cl9p ZHggPSAwOyBhdHRyc190b19jaGVja1thdHRyX2lkeF0gIT0gTlVMTDsgYXR0cl9pZHgrKykgewot KyAgICAgICAgICAgICAgICBjb25zdCBjaGFyICphdHRyX25hbWUgPSBhdHRyc190b19jaGVja1th dHRyX2lkeF07Ci0rICAgICAgICAgICAgICAgIHN0cnVjdCBzbGFwaV9wYmxvY2sgKmlkeF9wYiA9 IHNsYXBpX3BibG9ja19uZXcoKTsKLSsgICAgICAgICAgICAgICAgU2xhcGlfRW50cnkgKippZHhf ZW50cmllcyA9IE5VTEw7Ci0rICAgICAgICAgICAgICAgIGNoYXIgKmlkeF9kbiA9IHNsYXBpX2Ny ZWF0ZV9kbl9zdHJpbmcoImNuPSVzLGNuPWluZGV4LCVzIiwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cl9uYW1lLCBiZV9kbik7Ci0r ICAgICAgICAgICAgICAgIGNoYXIgKmlkeF9maWx0ZXIgPSAiKG9iamVjdGNsYXNzPW5zSW5kZXgp IjsKLSsKLSsgICAgICAgICAgICAgICAgaWYgKCFpZHhfZG4pIHsKLSsgICAgICAgICAgICAgICAg ICAgIHNsYXBpX3BibG9ja19kZXN0cm95KGlkeF9wYik7Ci0rICAgICAgICAgICAgICAgICAgICBj b250aW51ZTsKLSsgICAgICAgICAgICAgICAgfQotKwotKyAgICAgICAgICAgICAgICBzbGFwaV9z ZWFyY2hfaW50ZXJuYWxfc2V0X3BiKAotKyAgICAgICAgICAgICAgICAgICAgICAgIGlkeF9wYiwg aWR4X2RuLAotKyAgICAgICAgICAgICAgICAgICAgICAgIExEQVBfU0NPUEVfQkFTRSwKLSsgICAg ICAgICAgICAgICAgICAgICAgICBpZHhfZmlsdGVyLCBOVUxMLCAwLCBOVUxMLCBOVUxMLAotKyAg ICAgICAgICAgICAgICAgICAgICAgIHBsdWdpbl9nZXRfZGVmYXVsdF9jb21wb25lbnRfaWQoKSwg MCk7Ci0rICAgICAgICAgICAgICAgIHNsYXBpX3NlYXJjaF9pbnRlcm5hbF9wYihpZHhfcGIpOwot KyAgICAgICAgICAgICAgICBzbGFwaV9wYmxvY2tfZ2V0KGlkeF9wYiwgU0xBUElfUExVR0lOX0lO VE9QX1NFQVJDSF9FTlRSSUVTLCAmaWR4X2VudHJpZXMpOwotKwotKyAgICAgICAgICAgICAgICBp ZiAoaWR4X2VudHJpZXMgJiYgaWR4X2VudHJpZXNbMF0pIHsKLSsgICAgICAgICAgICAgICAgICAg IC8qIENoZWNrIGlmIG5zSW5kZXhJRExpc3RTY2FuTGltaXQgaXMgcHJlc2VudCAqLwotKyAgICAg ICAgICAgICAgICAgICAgaWYgKHNsYXBpX2VudHJ5X2F0dHJfZ2V0X3JlZihpZHhfZW50cmllc1sw XSwgIm5zSW5kZXhJRExpc3RTY2FuTGltaXQiKSAhPSBOVUxMKSB7Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgLyogUmVtb3ZlIG5zSW5kZXhJRExpc3RTY2FuTGltaXQgKi8KLSsgICAgICAgICAg ICAgICAgICAgICAgICBTbGFwaV9QQmxvY2sgKm1vZF9wYiA9IHNsYXBpX3BibG9ja19uZXcoKTsK LSsgICAgICAgICAgICAgICAgICAgICAgICBTbGFwaV9Nb2RzIHNtb2RzOwotKyAgICAgICAgICAg ICAgICAgICAgICAgIGludCByYzsKLSsKLSsgICAgICAgICAgICAgICAgICAgICAgICBzbGFwaV9t b2RzX2luaXQoJnNtb2RzLCAxKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICBzbGFwaV9tb2Rz X2FkZCgmc21vZHMsIExEQVBfTU9EX0RFTEVURSwgIm5zSW5kZXhJRExpc3RTY2FuTGltaXQiLCAw LCBOVUxMKTsKLSsKLSsgICAgICAgICAgICAgICAgICAgICAgICBzbGFwaV9tb2RpZnlfaW50ZXJu YWxfc2V0X3BiKAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kX3BiLCBpZHhf ZG4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbGFwaV9tb2RzX2dldF9sZGFw bW9kc19ieXJlZigmc21vZHMpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVM TCwgTlVMTCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsdWdpbl9nZXRfZGVm YXVsdF9jb21wb25lbnRfaWQoKSwgMCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgc2xhcGlf bW9kaWZ5X2ludGVybmFsX3BiKG1vZF9wYik7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgc2xh cGlfcGJsb2NrX2dldChtb2RfcGIsIFNMQVBJX1BMVUdJTl9JTlRPUF9SRVNVTFQsICZyYyk7Ci0r Ci0rICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJjID09IExEQVBfU1VDQ0VTUykgewotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xPR19OT1RJQ0Us ICJ1cGdyYWRlX3JlbW92ZV9pbmRleF9zY2FubGltaXQiLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJSZW1vdmVkICduc0luZGV4SURMaXN0U2NhbkxpbWl0JyBmcm9tIGlu ZGV4ICclcycgaW4gYmFja2VuZCAnJXMnXG4iLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGF0dHJfbmFtZSwgYmVfbmFtZSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAg fSBlbHNlIGlmIChyYyAhPSBMREFQX05PX1NVQ0hfQVRUUklCVVRFKSB7Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNsYXBpX2xvZ19lcnIoU0xBUElfTE9HX0VSUiwgInVwZ3JhZGVfcmVt b3ZlX2luZGV4X3NjYW5saW1pdCIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIkZhaWxlZCB0byByZW1vdmUgJ25zSW5kZXhJRExpc3RTY2FuTGltaXQnIGZyb20gaW5kZXgg JyVzJyBpbiBiYWNrZW5kICclcyc6IGVycm9yICVkXG4iLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGF0dHJfbmFtZSwgYmVfbmFtZSwgcmMpOwotKyAgICAgICAgICAgICAg ICAgICAgICAgIH0KLSsKLSsgICAgICAgICAgICAgICAgICAgICAgICBzbGFwaV9tb2RzX2RvbmUo JnNtb2RzKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICBzbGFwaV9wYmxvY2tfZGVzdHJveSht b2RfcGIpOwotKyAgICAgICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAgICB9Ci0rCi0r ICAgICAgICAgICAgICAgIHNsYXBpX2NoX2ZyZWVfc3RyaW5nKCZpZHhfZG4pOwotKyAgICAgICAg ICAgICAgICBzbGFwaV9mcmVlX3NlYXJjaF9yZXN1bHRzX2ludGVybmFsKGlkeF9wYik7Ci0rICAg ICAgICAgICAgICAgIHNsYXBpX3BibG9ja19kZXN0cm95KGlkeF9wYik7Ci0rICAgICAgICAgICAg fQotKyAgICAgICAgfQotKyAgICB9Ci0rCi0rICAgIHNsYXBpX2ZyZWVfc2VhcmNoX3Jlc3VsdHNf aW50ZXJuYWwocGIpOwotKyAgICBzbGFwaV9wYmxvY2tfZGVzdHJveShwYik7Ci0rCi0rICAgIHJl dHVybiB1cmVzdWx0OwotK30KLSsKLSAvKgotICAqIENoZWNrIGlmIHBhcmVudGlkL2FuY2VzdG9y aWQgaW5kZXhlcyBhcmUgbWlzc2luZyB0aGUgaW50ZWdlck9yZGVyaW5nTWF0Y2gKLSAgKiBtYXRj aGluZyBydWxlLgotQEAgLTY0OSw2ICs3NTAsMTAgQEAgdXBncmFkZV9zZXJ2ZXIodm9pZCkKLSAg ICAgICAgIHJldHVybiBVUEdSQURFX0ZBSUxVUkU7Ci0gICAgIH0KLSAKLSsgICAgaWYgKHVwZ3Jh ZGVfcmVtb3ZlX2luZGV4X3NjYW5saW1pdCgpICE9IFVQR1JBREVfU1VDQ0VTUykgewotKyAgICAg ICAgcmV0dXJuIFVQR1JBREVfRkFJTFVSRTsKLSsgICAgfQotKwotICAgICBpZiAodXBncmFkZV9j aGVja19pZF9pbmRleF9tYXRjaGluZ19ydWxlKCkgIT0gVVBHUkFERV9TVUNDRVNTKSB7Ci0gICAg ICAgICByZXR1cm4gVVBHUkFERV9GQUlMVVJFOwotICAgICB9Ci0tLSAKLTIuNTIuMAotCgpkaWZm IC0tZ2l0IGEvMDAzNC1Jc3N1ZS03MjIzLUFkZC11cGdyYWRlLWZ1bmN0aW9uLXRvLXJlbW92ZS1h bmNlc3RvcmlkLnBhdGNoIGIvMDAzNC1Jc3N1ZS03MjIzLUFkZC11cGdyYWRlLWZ1bmN0aW9uLXRv LXJlbW92ZS1hbmNlc3RvcmlkLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBm M2UyMDY0Li4wMDAwMDAwCi0tLSBhLzAwMzQtSXNzdWUtNzIyMy1BZGQtdXBncmFkZS1mdW5jdGlv bi10by1yZW1vdmUtYW5jZXN0b3JpZC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMxMyArMCww IEBACi1Gcm9tIDQxNjcwMzAxY2NhZDU1NTgyOTZhMzM4MGE0OTc0ZjdjMGQ0YmFlZGUgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBWaWt0b3IgQXNoaXJvdiA8dmFzaGlyb3ZAcmVkaGF0 LmNvbT4KLURhdGU6IFRodSwgNSBGZWIgMjAyNiAxMjoxNzowNiArMDEwMAotU3ViamVjdDogW1BB VENIXSBJc3N1ZSA3MjIzIC0gQWRkIHVwZ3JhZGUgZnVuY3Rpb24gdG8gcmVtb3ZlIGFuY2VzdG9y aWQgaW5kZXgKLSBjb25maWcgZW50cnkKLQotRGVzY3JpcHRpb246Ci1BZGQgYHVwZ3JhZGVfcmVt b3ZlX2FuY2VzdG9yaWRfaW5kZXhfY29uZmlnKClgIGZ1bmN0aW9uIHRoYXQgcmVtb3ZlczoKLSog YW5jZXN0b3JpZCBmcm9tIGBjbj1kZWZhdWx0IGluZGV4ZXNgCi0qIGFuY2VzdG9yaWQgaW5kZXgg Y29uZmlnIGVudHJpZXMgZnJvbSBlYWNoIGJhY2tlbmQncyBgY249aW5kZXhgCi0KLUFsc28gcmVt b3ZlIGFuY2VzdG9yaWQgaW5kZXggY29uZmlndXJhdGlvbiBmcm9tIHRlbXBsYXRlLWRzZS5sZGlm LgotCi1SZWxhdGVzOiBodHRwczovL2dpdGh1Yi5jb20vMzg5ZHMvMzg5LWRzLWJhc2UvaXNzdWVz LzcyMjMKLQotUmV2aWV3ZWQgYnk6IEBwcm9naWVyMzg5LCBAdGJvcmRheiwgQGRyb2lkZWNrIChU aGFua3MhKQotLS0tCi0gLi4uL2hlYWx0aGNoZWNrL2hlYWx0aF9zeXN0ZW1faW5kZXhlc190ZXN0 LnB5IHwgIDg1ICsrKysrKysrKysrCi0gbGRhcC9sZGlmL3RlbXBsYXRlLWRzZS5sZGlmLmluICAg ICAgICAgICAgICAgIHwgICA4IC0tCi0gbGRhcC9zZXJ2ZXJzL3NsYXBkL3VwZ3JhZGUuYyAgICAg ICAgICAgICAgICAgIHwgMTMzICsrKysrKysrKysrKysrKysrLQotIDMgZmlsZXMgY2hhbmdlZCwg MjE0IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZGlyc3J2 dGVzdHMvdGVzdHMvc3VpdGVzL2hlYWx0aGNoZWNrL2hlYWx0aF9zeXN0ZW1faW5kZXhlc190ZXN0 LnB5IGIvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL2hlYWx0aGNoZWNrL2hlYWx0aF9zeXN0ZW1f aW5kZXhlc190ZXN0LnB5Ci1pbmRleCBhZWE4OGUwZTIuLmViNzI3YjkwMiAxMDA2NDQKLS0tLSBh L2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9oZWFsdGhjaGVjay9oZWFsdGhfc3lzdGVtX2luZGV4 ZXNfdGVzdC5weQotKysrIGIvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL2hlYWx0aGNoZWNrL2hl YWx0aF9zeXN0ZW1faW5kZXhlc190ZXN0LnB5Ci1AQCAtNTA0LDYgKzUwNCw5MSBAQCBkZWYgdGVz dF91cGdyYWRlX3JlbW92ZXNfcGFyZW50aWRfc2NhbmxpbWl0KHRvcG9sb2d5X3N0KToKLSAKLSAg ICAgbG9nLmluZm8oIlVwZ3JhZGUgc3VjY2Vzc2Z1bGx5IHJlbW92ZWQgbnNJbmRleElETGlzdFNj YW5MaW1pdCBmcm9tIHBhcmVudGlkIGluZGV4IikKLSAKLSsgICAgIyBWZXJpZnkgaWRlbXBvdGVu Y3kgLSByZXN0YXJ0IGFnYWluIGFuZCBlbnN1cmUgbm8gZXJyb3JzCi0rICAgIGxvZy5pbmZvKCJS ZXN0YXJ0IHNlcnZlciBhZ2FpbiB0byB2ZXJpZnkgaWRlbXBvdGVuY3kgKG5vIGVycm9ycyBvbiBz ZWNvbmQgcnVuKSIpCi0rICAgIHN0YW5kYWxvbmUucmVzdGFydCgpCi0rICAgICMgVmVyaWZ5IHRo ZSBhdHRyaWJ1dGUgaXMgc3RpbGwgYWJzZW50Ci0rICAgIHNjYW5saW1pdF9hZnRlcl9zZWNvbmQg PSBwYXJlbnRpZF9pbmRleC5nZXRfYXR0cl92YWxzX3V0ZjgoIm5zSW5kZXhJRExpc3RTY2FuTGlt aXQiKQotKyAgICBhc3NlcnQgbm90IHNjYW5saW1pdF9hZnRlcl9zZWNvbmQsIFwKLSsgICAgICAg IGYibnNJbmRleElETGlzdFNjYW5MaW1pdCBzaG91bGQgc3RpbGwgYmUgYWJzZW50IGFmdGVyIHNl Y29uZCByZXN0YXJ0IGJ1dCBmb3VuZDoge3NjYW5saW1pdF9hZnRlcl9zZWNvbmR9IgotKyAgICBs b2cuaW5mbygiSWRlbXBvdGVuY3kgdmVyaWZpZWQgLSBubyBpc3N1ZXMgb24gc2Vjb25kIHJlc3Rh cnQiKQotKwotKwotK2RlZiB0ZXN0X3VwZ3JhZGVfcmVtb3Zlc19hbmNlc3RvcmlkX2luZGV4X2Nv bmZpZyh0b3BvbG9neV9zdCk6Ci0rICAgICIiIkNoZWNrIGlmIHVwZ3JhZGUgZnVuY3Rpb24gcmVt b3ZlcyBhbmNlc3RvcmlkIGluZGV4IGNvbmZpZyBlbnRyeQotKwotKyAgICA6aWQ6IDNmM2Q2ZTli LTc1YWMtNGYwZC1iMmNlLTcyMDRlNmVhY2QwYQotKyAgICA6c2V0dXA6IFN0YW5kYWxvbmUgaW5z dGFuY2UKLSsgICAgOnN0ZXBzOgotKyAgICAgICAgMS4gQ3JlYXRlIERTIGluc3RhbmNlCi0rICAg ICAgICAyLiBTdG9wIHRoZSBzZXJ2ZXIKLSsgICAgICAgIDMuIFVzZSBEU0VsZGlmIHRvIGFkZCBh biBhbmNlc3RvcmlkIGluZGV4IGNvbmZpZyBlbnRyeQotKyAgICAgICAgNC4gU3RhcnQgdGhlIHNl cnZlciAodHJpZ2dlcnMgdXBncmFkZSkKLSsgICAgICAgIDUuIFZlcmlmeSBhbmNlc3RvcmlkIGlu ZGV4IGNvbmZpZyBlbnRyeSBpcyByZW1vdmVkCi0rICAgIDpleHBlY3RlZHJlc3VsdHM6Ci0rICAg ICAgICAxLiBTdWNjZXNzCi0rICAgICAgICAyLiBTdWNjZXNzCi0rICAgICAgICAzLiBTdWNjZXNz Ci0rICAgICAgICA0LiBTdWNjZXNzCi0rICAgICAgICA1LiBhbmNlc3RvcmlkIGluZGV4IGNvbmZp ZyBlbnRyeSBpcyBubyBsb25nZXIgcHJlc2VudAotKyAgICAiIiIKLSsgICAgZnJvbSBsaWIzODku ZHNlbGRpZiBpbXBvcnQgRFNFbGRpZgotKwotKyAgICBzdGFuZGFsb25lID0gdG9wb2xvZ3lfc3Qu c3RhbmRhbG9uZQotKyAgICBBTkNFU1RPUklEX0ROID0gImNuPWFuY2VzdG9yaWQsY249aW5kZXgs Y249dXNlcnJvb3QsY249bGRibSBkYXRhYmFzZSxjbj1wbHVnaW5zLGNuPWNvbmZpZyIKLSsKLSsg ICAgbG9nLmluZm8oIlN0b3AgdGhlIHNlcnZlciIpCi0rICAgIHN0YW5kYWxvbmUuc3RvcCgpCi0r Ci0rICAgIGxvZy5pbmZvKCJBZGQgYW5jZXN0b3JpZCBpbmRleCBjb25maWcgZW50cnkgdXNpbmcg RFNFbGRpZiIpCi0rICAgIGRzZV9sZGlmID0gRFNFbGRpZihzdGFuZGFsb25lKQotKwotKyAgICAj IENyZWF0ZSBhIGZha2UgYW5jZXN0b3JpZCBpbmRleCBlbnRyeQotKyAgICBhbmNlc3RvcmlkX2Vu dHJ5ID0gWwotKyAgICAgICAgImRuOiB7fVxuIi5mb3JtYXQoQU5DRVNUT1JJRF9ETiksCi0rICAg ICAgICAib2JqZWN0Q2xhc3M6IHRvcFxuIiwKLSsgICAgICAgICJvYmplY3RDbGFzczogbnNJbmRl eFxuIiwKLSsgICAgICAgICJjbjogYW5jZXN0b3JpZFxuIiwKLSsgICAgICAgICJuc1N5c3RlbUlu ZGV4OiB0cnVlXG4iLAotKyAgICAgICAgIm5zSW5kZXhUeXBlOiBlcVxuIiwKLSsgICAgICAgICJu c01hdGNoaW5nUnVsZTogaW50ZWdlck9yZGVyaW5nTWF0Y2hcbiIsCi0rICAgICAgICAiXG4iCi0r ICAgIF0KLSsgICAgZHNlX2xkaWYuYWRkX2VudHJ5KGFuY2VzdG9yaWRfZW50cnkpCi0rCi0rICAg ICMgVmVyaWZ5IGl0IHdhcyBhZGRlZCBieSByZS1yZWFkaW5nIGRzZS5sZGlmCi0rICAgIGRzZV9s ZGlmMiA9IERTRWxkaWYoc3RhbmRhbG9uZSkKLSsgICAgY25fdmFsdWUgPSBkc2VfbGRpZjIuZ2V0 KEFOQ0VTVE9SSURfRE4sICJjbiIpCi0rICAgIGFzc2VydCBjbl92YWx1ZSBpcyBub3QgTm9uZSwg IkZhaWxlZCB0byBhZGQgYW5jZXN0b3JpZCBpbmRleCBjb25maWcgZW50cnkiCi0rICAgIGxvZy5p bmZvKGYiQWRkZWQgYW5jZXN0b3JpZCBpbmRleCBlbnRyeSB3aXRoIGNuOiB7Y25fdmFsdWV9IikK LSsKLSsgICAgbG9nLmluZm8oIlN0YXJ0IHRoZSBzZXJ2ZXIgKHRyaWdnZXJzIHVwZ3JhZGUpIikK LSsgICAgc3RhbmRhbG9uZS5zdGFydCgpCi0rCi0rICAgIGxvZy5pbmZvKCJWZXJpZnkgYW5jZXN0 b3JpZCBpbmRleCBjb25maWcgZW50cnkgd2FzIHJlbW92ZWQgYnkgdXBncmFkZSIpCi0rICAgICMg Q2hlY2sgdmlhIExEQVAgLSB0aGUgdXBncmFkZSBzaG91bGQgaGF2ZSByZW1vdmVkIHRoZSBlbnRy eQotKyAgICB0cnk6Ci0rICAgICAgICBhbmNlc3RvcmlkX2luZGV4ID0gSW5kZXgoc3RhbmRhbG9u ZSwgQU5DRVNUT1JJRF9ETikKLSsgICAgICAgICMgSWYgd2UgY2FuIGdldCB0aGUgZW50cnksIGl0 IHdhc24ndCByZW1vdmVkIC0gdGhpcyBpcyBhIGZhaWx1cmUKLSsgICAgICAgIGNuX2FmdGVyID0g YW5jZXN0b3JpZF9pbmRleC5nZXRfYXR0cl92YWxzX3V0ZjgoImNuIikKLSsgICAgICAgIGFzc2Vy dCBGYWxzZSwgZiJhbmNlc3RvcmlkIGluZGV4IGNvbmZpZyBlbnRyeSBzaG91bGQgaGF2ZSBiZWVu IHJlbW92ZWQgYnV0IHN0aWxsIGV4aXN0czoge2NuX2FmdGVyfSIKLSsgICAgZXhjZXB0IEV4Y2Vw dGlvbiBhcyBlOgotKyAgICAgICAgIyBFbnRyeSBzaG91bGQgbm90IGV4aXN0IC0gdGhpcyBpcyBl eHBlY3RlZAotKyAgICAgICAgbG9nLmluZm8oZiJhbmNlc3RvcmlkIGluZGV4IGNvbmZpZyBlbnRy eSBjb3JyZWN0bHkgcmVtb3ZlZCAoZ290IGV4Y2VwdGlvbjoge2V9KSIpCi0rCi0rICAgIGxvZy5p bmZvKCJVcGdyYWRlIHN1Y2Nlc3NmdWxseSByZW1vdmVkIGFuY2VzdG9yaWQgaW5kZXggY29uZmln IGVudHJ5IikKLSsKLSsgICAgIyBWZXJpZnkgaWRlbXBvdGVuY3kgLSByZXN0YXJ0IGFnYWluIGFu ZCBlbnN1cmUgbm8gZXJyb3JzCi0rICAgIGxvZy5pbmZvKCJSZXN0YXJ0IHNlcnZlciBhZ2FpbiB0 byB2ZXJpZnkgaWRlbXBvdGVuY3kgKG5vIGVycm9ycyBvbiBzZWNvbmQgcnVuKSIpCi0rICAgIHN0 YW5kYWxvbmUucmVzdGFydCgpCi0rICAgICMgVmVyaWZ5IHRoZSBlbnRyeSBpcyBzdGlsbCBhYnNl bnQKLSsgICAgdHJ5OgotKyAgICAgICAgYW5jZXN0b3JpZF9pbmRleCA9IEluZGV4KHN0YW5kYWxv bmUsIEFOQ0VTVE9SSURfRE4pCi0rICAgICAgICBjbl9hZnRlcl9zZWNvbmQgPSBhbmNlc3Rvcmlk X2luZGV4LmdldF9hdHRyX3ZhbHNfdXRmOCgiY24iKQotKyAgICAgICAgYXNzZXJ0IEZhbHNlLCBm ImFuY2VzdG9yaWQgaW5kZXggY29uZmlnIGVudHJ5IHNob3VsZCBzdGlsbCBiZSBhYnNlbnQgYWZ0 ZXIgc2Vjb25kIHJlc3RhcnQgYnV0IGZvdW5kOiB7Y25fYWZ0ZXJfc2Vjb25kfSIKLSsgICAgZXhj ZXB0IEV4Y2VwdGlvbiBhcyBlOgotKyAgICAgICAgbG9nLmluZm8oZiJJZGVtcG90ZW5jeSB2ZXJp ZmllZCAtIGFuY2VzdG9yaWQgc3RpbGwgYWJzZW50IGFmdGVyIHNlY29uZCByZXN0YXJ0IChnb3Qg ZXhjZXB0aW9uOiB7ZX0pIikKLSsKLSAKLSBpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgotICAg ICAjIFJ1biBpc29sYXRlZAotZGlmZiAtLWdpdCBhL2xkYXAvbGRpZi90ZW1wbGF0ZS1kc2UubGRp Zi5pbiBiL2xkYXAvbGRpZi90ZW1wbGF0ZS1kc2UubGRpZi5pbgotaW5kZXggYmI4YzcxY2Q5Li5i NmFiNmY2YzYgMTAwNjQ0Ci0tLS0gYS9sZGFwL2xkaWYvdGVtcGxhdGUtZHNlLmxkaWYuaW4KLSsr KyBiL2xkYXAvbGRpZi90ZW1wbGF0ZS1kc2UubGRpZi5pbgotQEAgLTk5OCwxNCArOTk4LDYgQEAg Y246IGFjaQotIG5zc3lzdGVtaW5kZXg6IHRydWUKLSBuc2luZGV4dHlwZTogcHJlcwotIAotLWRu OiBjbj1hbmNlc3RvcmlkLGNuPWRlZmF1bHQgaW5kZXhlcywgY249Y29uZmlnLGNuPWxkYm0gZGF0 YWJhc2UsY249cGx1Z2lucyxjbj1jb25maWcKLS1vYmplY3RjbGFzczogdG9wCi0tb2JqZWN0Y2xh c3M6IG5zSW5kZXgKLS1jbjogYW5jZXN0b3JpZAotLW5zc3lzdGVtaW5kZXg6IHRydWUKLS1uc2lu ZGV4dHlwZTogZXEKLS1uc21hdGNoaW5ncnVsZTogaW50ZWdlck9yZGVyaW5nTWF0Y2gKLS0KLSBk bjogY249Y24sY249ZGVmYXVsdCBpbmRleGVzLCBjbj1jb25maWcsY249bGRibSBkYXRhYmFzZSxj bj1wbHVnaW5zLGNuPWNvbmZpZwotIG9iamVjdGNsYXNzOiB0b3AKLSBvYmplY3RjbGFzczogbnNJ bmRleAotZGlmZiAtLWdpdCBhL2xkYXAvc2VydmVycy9zbGFwZC91cGdyYWRlLmMgYi9sZGFwL3Nl cnZlcnMvc2xhcGQvdXBncmFkZS5jCi1pbmRleCBkY2QxNjk0MGIuLjZiMWIwMTJkYSAxMDA2NDQK LS0tLSBhL2xkYXAvc2VydmVycy9zbGFwZC91cGdyYWRlLmMKLSsrKyBiL2xkYXAvc2VydmVycy9z bGFwZC91cGdyYWRlLmMKLUBAIC00MzEsNiArNDMxLDEyNiBAQCB1cGdyYWRlX3JlbW92ZV9pbmRl eF9zY2FubGltaXQodm9pZCkKLSAgICAgcmV0dXJuIHVyZXN1bHQ7Ci0gfQotIAotKy8qCi0rICog UmVtb3ZlIGFuY2VzdG9yaWQgaW5kZXggY29uZmlndXJhdGlvbiBlbnRyeSBpZiBwcmVzZW50Lgot KyAqCi0rICogVGhlIGFuY2VzdG9yaWQgaW5kZXggaXMgc3BlY2lhbCAtIGl0IGhhcyBubyBjb3Jy ZXNwb25kaW5nIGF0dHJpYnV0ZSB0eXBlCi0rICogYW5kIHNob3VsZCBub3QgaGF2ZSBhIERTRSBj b25maWcgZW50cnkuIElmIGFuIGVudHJ5IGV4aXN0cywgcmVtb3ZlIGl0LgotKyAqCi0rICogVGhp cyBmdW5jdGlvbiByZW1vdmVzOgotKyAqIDEuIFRoZSBhbmNlc3RvcmlkIGVudHJ5IGZyb20gY249 ZGVmYXVsdCBpbmRleGVzICh0byBwcmV2ZW50IHJlLWNyZWF0aW9uIG9uIHN0YXJ0dXApCi0rICog Mi4gVGhlIGFuY2VzdG9yaWQgZW50cnkgZnJvbSBlYWNoIGJhY2tlbmQncyBjbj1pbmRleCAoaWYg aXQgZXhpc3RzKQotKyAqLwotK3N0YXRpYyB1cGdyYWRlX3N0YXR1cwotK3VwZ3JhZGVfcmVtb3Zl X2FuY2VzdG9yaWRfaW5kZXhfY29uZmlnKHZvaWQpCi0rewotKyAgICBzdHJ1Y3Qgc2xhcGlfcGJs b2NrICpwYiA9IHNsYXBpX3BibG9ja19uZXcoKTsKLSsgICAgU2xhcGlfRW50cnkgKipiYWNrZW5k cyA9IE5VTEw7Ci0rICAgIGNvbnN0IGNoYXIgKmJlX2Jhc2VfZG4gPSAiY249bGRibSBkYXRhYmFz ZSxjbj1wbHVnaW5zLGNuPWNvbmZpZyI7Ci0rICAgIGNvbnN0IGNoYXIgKmJlX2ZpbHRlciA9ICIo b2JqZWN0Y2xhc3M9bnNCYWNrZW5kSW5zdGFuY2UpIjsKLSsgICAgdXBncmFkZV9zdGF0dXMgdXJl c3VsdCA9IFVQR1JBREVfU1VDQ0VTUzsKLSsgICAgaW50IHJjOwotKwotKyAgICAvKgotKyAgICAg KiBGaXJzdCwgcmVtb3ZlIGFuY2VzdG9yaWQgZnJvbSBjbj1kZWZhdWx0IGluZGV4ZXMgdG8gcHJl dmVudAotKyAgICAgKiBsZGJtX2luc3RhbmNlX2NyZWF0ZV9kZWZhdWx0X3VzZXJfaW5kZXhlcygp IGZyb20gcmUtY3JlYXRpbmcgaXQuCi0rICAgICAqLwotKyAgICB7Ci0rICAgICAgICBTbGFwaV9Q QmxvY2sgKmRlZl9wYiA9IHNsYXBpX3BibG9ja19uZXcoKTsKLSsgICAgICAgIGNoYXIgKmRlZl9p ZHhfZG4gPSBzbGFwaV9jcmVhdGVfZG5fc3RyaW5nKAotKyAgICAgICAgICAgICAgICAiY249YW5j ZXN0b3JpZCxjbj1kZWZhdWx0IGluZGV4ZXMsY249Y29uZmlnLCVzIiwgYmVfYmFzZV9kbik7Ci0r Ci0rICAgICAgICBpZiAoZGVmX2lkeF9kbikgewotKyAgICAgICAgICAgIHNsYXBpX2RlbGV0ZV9p bnRlcm5hbF9zZXRfcGIoCi0rICAgICAgICAgICAgICAgICAgICBkZWZfcGIsIGRlZl9pZHhfZG4s IE5VTEwsIE5VTEwsCi0rICAgICAgICAgICAgICAgICAgICBwbHVnaW5fZ2V0X2RlZmF1bHRfY29t cG9uZW50X2lkKCksIDApOwotKyAgICAgICAgICAgIHNsYXBpX2RlbGV0ZV9pbnRlcm5hbF9wYihk ZWZfcGIpOwotKyAgICAgICAgICAgIHNsYXBpX3BibG9ja19nZXQoZGVmX3BiLCBTTEFQSV9QTFVH SU5fSU5UT1BfUkVTVUxULCAmcmMpOwotKwotKyAgICAgICAgICAgIGlmIChyYyA9PSBMREFQX1NV Q0NFU1MpIHsKLSsgICAgICAgICAgICAgICAgc2xhcGlfbG9nX2VycihTTEFQSV9MT0dfTk9USUNF LCAidXBncmFkZV9yZW1vdmVfYW5jZXN0b3JpZF9pbmRleF9jb25maWciLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICJSZW1vdmVkICdhbmNlc3RvcmlkJyBmcm9tIGRlZmF1bHQgaW5kZXhlcy5c biIpOwotKyAgICAgICAgICAgIH0gZWxzZSBpZiAocmMgIT0gTERBUF9OT19TVUNIX09CSkVDVCkg ewotKyAgICAgICAgICAgICAgICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xPR19FUlIsICJ1cGdyYWRl X3JlbW92ZV9hbmNlc3RvcmlkX2luZGV4X2NvbmZpZyIsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgIkZhaWxlZCB0byByZW1vdmUgJ2FuY2VzdG9yaWQnIGZyb20gZGVmYXVsdCBpbmRleGVzOiBl cnJvciAlZFxuIiwgcmMpOwotKyAgICAgICAgICAgIH0KLSsKLSsgICAgICAgICAgICBzbGFwaV9j aF9mcmVlX3N0cmluZygmZGVmX2lkeF9kbik7Ci0rICAgICAgICB9Ci0rICAgICAgICBzbGFwaV9w YmxvY2tfZGVzdHJveShkZWZfcGIpOwotKyAgICB9Ci0rCi0rICAgIC8qIFNlYXJjaCBmb3IgYWxs IGJhY2tlbmQgaW5zdGFuY2VzICovCi0rICAgIHNsYXBpX3NlYXJjaF9pbnRlcm5hbF9zZXRfcGIo Ci0rICAgICAgICAgICAgcGIsIGJlX2Jhc2VfZG4sCi0rICAgICAgICAgICAgTERBUF9TQ09QRV9P TkVMRVZFTCwKLSsgICAgICAgICAgICBiZV9maWx0ZXIsIE5VTEwsIDAsIE5VTEwsIE5VTEwsCi0r ICAgICAgICAgICAgcGx1Z2luX2dldF9kZWZhdWx0X2NvbXBvbmVudF9pZCgpLCAwKTsKLSsgICAg c2xhcGlfc2VhcmNoX2ludGVybmFsX3BiKHBiKTsKLSsgICAgc2xhcGlfcGJsb2NrX2dldChwYiwg U0xBUElfUExVR0lOX0lOVE9QX1NFQVJDSF9FTlRSSUVTLCAmYmFja2VuZHMpOwotKwotKyAgICBp ZiAoYmFja2VuZHMpIHsKLSsgICAgICAgIGZvciAoc2l6ZV90IGJlX2lkeCA9IDA7IGJhY2tlbmRz W2JlX2lkeF0gIT0gTlVMTDsgYmVfaWR4KyspIHsKLSsgICAgICAgICAgICBjb25zdCBjaGFyICpi ZV9kbiA9IHNsYXBpX2VudHJ5X2dldF9kbl9jb25zdChiYWNrZW5kc1tiZV9pZHhdKTsKLSsgICAg ICAgICAgICBjb25zdCBjaGFyICpiZV9uYW1lID0gc2xhcGlfZW50cnlfYXR0cl9nZXRfcmVmKGJh Y2tlbmRzW2JlX2lkeF0sICJjbiIpOwotKyAgICAgICAgICAgIGlmICghYmVfZG4gfHwgIWJlX25h bWUpIHsKLSsgICAgICAgICAgICAgICAgY29udGludWU7Ci0rICAgICAgICAgICAgfQotKwotKyAg ICAgICAgICAgIHN0cnVjdCBzbGFwaV9wYmxvY2sgKmlkeF9wYiA9IHNsYXBpX3BibG9ja19uZXco KTsKLSsgICAgICAgICAgICBTbGFwaV9FbnRyeSAqKmlkeF9lbnRyaWVzID0gTlVMTDsKLSsgICAg ICAgICAgICBjaGFyICppZHhfZG4gPSBzbGFwaV9jcmVhdGVfZG5fc3RyaW5nKCJjbj1hbmNlc3Rv cmlkLGNuPWluZGV4LCVzIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBiZV9kbik7Ci0rICAgICAgICAgICAgY2hhciAqaWR4X2ZpbHRlciA9ICIo b2JqZWN0Y2xhc3M9bnNJbmRleCkiOwotKwotKyAgICAgICAgICAgIGlmICghaWR4X2RuKSB7Ci0r ICAgICAgICAgICAgICAgIHNsYXBpX3BibG9ja19kZXN0cm95KGlkeF9wYik7Ci0rICAgICAgICAg ICAgICAgIGNvbnRpbnVlOwotKyAgICAgICAgICAgIH0KLSsKLSsgICAgICAgICAgICBzbGFwaV9z ZWFyY2hfaW50ZXJuYWxfc2V0X3BiKAotKyAgICAgICAgICAgICAgICAgICAgaWR4X3BiLCBpZHhf ZG4sCi0rICAgICAgICAgICAgICAgICAgICBMREFQX1NDT1BFX0JBU0UsCi0rICAgICAgICAgICAg ICAgICAgICBpZHhfZmlsdGVyLCBOVUxMLCAwLCBOVUxMLCBOVUxMLAotKyAgICAgICAgICAgICAg ICAgICAgcGx1Z2luX2dldF9kZWZhdWx0X2NvbXBvbmVudF9pZCgpLCAwKTsKLSsgICAgICAgICAg ICBzbGFwaV9zZWFyY2hfaW50ZXJuYWxfcGIoaWR4X3BiKTsKLSsgICAgICAgICAgICBzbGFwaV9w YmxvY2tfZ2V0KGlkeF9wYiwgU0xBUElfUExVR0lOX0lOVE9QX1NFQVJDSF9FTlRSSUVTLCAmaWR4 X2VudHJpZXMpOwotKwotKyAgICAgICAgICAgIGlmIChpZHhfZW50cmllcyAmJiBpZHhfZW50cmll c1swXSkgewotKyAgICAgICAgICAgICAgICAvKiBhbmNlc3RvcmlkIGluZGV4IGVudHJ5IGV4aXN0 cyAtIGRlbGV0ZSBpdCAqLwotKyAgICAgICAgICAgICAgICBTbGFwaV9QQmxvY2sgKmRlbF9wYiA9 IHNsYXBpX3BibG9ja19uZXcoKTsKLSsKLSsgICAgICAgICAgICAgICAgc2xhcGlfZGVsZXRlX2lu dGVybmFsX3NldF9wYigKLSsgICAgICAgICAgICAgICAgICAgICAgICBkZWxfcGIsIGlkeF9kbiwg TlVMTCwgTlVMTCwKLSsgICAgICAgICAgICAgICAgICAgICAgICBwbHVnaW5fZ2V0X2RlZmF1bHRf Y29tcG9uZW50X2lkKCksIDApOwotKyAgICAgICAgICAgICAgICBzbGFwaV9kZWxldGVfaW50ZXJu YWxfcGIoZGVsX3BiKTsKLSsgICAgICAgICAgICAgICAgc2xhcGlfcGJsb2NrX2dldChkZWxfcGIs IFNMQVBJX1BMVUdJTl9JTlRPUF9SRVNVTFQsICZyYyk7Ci0rCi0rICAgICAgICAgICAgICAgIGlm IChyYyA9PSBMREFQX1NVQ0NFU1MpIHsKLSsgICAgICAgICAgICAgICAgICAgIHNsYXBpX2xvZ19l cnIoU0xBUElfTE9HX05PVElDRSwgInVwZ3JhZGVfcmVtb3ZlX2FuY2VzdG9yaWRfaW5kZXhfY29u ZmlnIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJlbW92ZWQgJ2FuY2VzdG9yaWQn IGluZGV4IGNvbmZpZyBlbnRyeSBpbiBiYWNrZW5kICclcycuXG4iLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBiZV9uYW1lKTsKLSsgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyYyAh PSBMREFQX05PX1NVQ0hfT0JKRUNUKSB7Ci0rICAgICAgICAgICAgICAgICAgICBzbGFwaV9sb2df ZXJyKFNMQVBJX0xPR19FUlIsICJ1cGdyYWRlX3JlbW92ZV9hbmNlc3RvcmlkX2luZGV4X2NvbmZp ZyIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gcmVtb3ZlICdhbmNl c3RvcmlkJyBpbmRleCBjb25maWcgZW50cnkgaW4gYmFja2VuZCAnJXMnOiBlcnJvciAlZFxuIiwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVfbmFtZSwgcmMpOwotKyAgICAgICAgICAg ICAgICB9Ci0rCi0rICAgICAgICAgICAgICAgIHNsYXBpX3BibG9ja19kZXN0cm95KGRlbF9wYik7 Ci0rICAgICAgICAgICAgfQotKwotKyAgICAgICAgICAgIHNsYXBpX2NoX2ZyZWVfc3RyaW5nKCZp ZHhfZG4pOwotKyAgICAgICAgICAgIHNsYXBpX2ZyZWVfc2VhcmNoX3Jlc3VsdHNfaW50ZXJuYWwo aWR4X3BiKTsKLSsgICAgICAgICAgICBzbGFwaV9wYmxvY2tfZGVzdHJveShpZHhfcGIpOwotKyAg ICAgICAgfQotKyAgICB9Ci0rCi0rICAgIHNsYXBpX2ZyZWVfc2VhcmNoX3Jlc3VsdHNfaW50ZXJu YWwocGIpOwotKyAgICBzbGFwaV9wYmxvY2tfZGVzdHJveShwYik7Ci0rCi0rICAgIHJldHVybiB1 cmVzdWx0OwotK30KLSsKLSAvKgotICAqIENoZWNrIGlmIHBhcmVudGlkL2FuY2VzdG9yaWQgaW5k ZXhlcyBhcmUgbWlzc2luZyB0aGUgaW50ZWdlck9yZGVyaW5nTWF0Y2gKLSAgKiBtYXRjaGluZyBy dWxlLgotQEAgLTQ0NSw3ICs1NjUsNyBAQCB1cGdyYWRlX2NoZWNrX2lkX2luZGV4X21hdGNoaW5n X3J1bGUodm9pZCkKLSAgICAgU2xhcGlfRW50cnkgKipiYWNrZW5kcyA9IE5VTEw7Ci0gICAgIGNv bnN0IGNoYXIgKmJlX2Jhc2VfZG4gPSAiY249bGRibSBkYXRhYmFzZSxjbj1wbHVnaW5zLGNuPWNv bmZpZyI7Ci0gICAgIGNvbnN0IGNoYXIgKmJlX2ZpbHRlciA9ICIob2JqZWN0Y2xhc3M9bnNCYWNr ZW5kSW5zdGFuY2UpIjsKLS0gICAgY29uc3QgY2hhciAqYXR0cnNfdG9fY2hlY2tbXSA9IHsicGFy ZW50aWQiLCAiYW5jZXN0b3JpZCIsIE5VTEx9OwotKyAgICBjb25zdCBjaGFyICphdHRyc190b19j aGVja1tdID0geyJwYXJlbnRpZCIsIE5VTEx9OwotICAgICB1cGdyYWRlX3N0YXR1cyB1cmVzdWx0 ID0gVVBHUkFERV9TVUNDRVNTOwotIAotICAgICAvKiBTZWFyY2ggZm9yIGFsbCBiYWNrZW5kIGlu c3RhbmNlcyAqLwotQEAgLTQ1OSw4ICs1NzksOSBAQCB1cGdyYWRlX2NoZWNrX2lkX2luZGV4X21h dGNoaW5nX3J1bGUodm9pZCkKLSAKLSAgICAgaWYgKGJhY2tlbmRzKSB7Ci0gICAgICAgICBmb3Ig KHNpemVfdCBiZV9pZHggPSAwOyBiYWNrZW5kc1tiZV9pZHhdICE9IE5VTEw7IGJlX2lkeCsrKSB7 Ci0rICAgICAgICAgICAgY29uc3QgY2hhciAqYmVfZG4gPSBzbGFwaV9lbnRyeV9nZXRfZG5fY29u c3QoYmFja2VuZHNbYmVfaWR4XSk7Ci0gICAgICAgICAgICAgY29uc3QgY2hhciAqYmVfbmFtZSA9 IHNsYXBpX2VudHJ5X2F0dHJfZ2V0X3JlZihiYWNrZW5kc1tiZV9pZHhdLCAiY24iKTsKLS0gICAg ICAgICAgICBpZiAoIWJlX25hbWUpIHsKLSsgICAgICAgICAgICBpZiAoIWJlX2RuIHx8ICFiZV9u YW1lKSB7Ci0gICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgIH0KLSAKLUBA IC00NjksOCArNTkwLDggQEAgdXBncmFkZV9jaGVja19pZF9pbmRleF9tYXRjaGluZ19ydWxlKHZv aWQpCi0gICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmF0dHJfbmFtZSA9IGF0dHJzX3RvX2No ZWNrW2F0dHJfaWR4XTsKLSAgICAgICAgICAgICAgICAgc3RydWN0IHNsYXBpX3BibG9jayAqaWR4 X3BiID0gc2xhcGlfcGJsb2NrX25ldygpOwotICAgICAgICAgICAgICAgICBTbGFwaV9FbnRyeSAq KmlkeF9lbnRyaWVzID0gTlVMTDsKLS0gICAgICAgICAgICAgICAgY2hhciAqaWR4X2RuID0gc2xh cGlfY3JlYXRlX2RuX3N0cmluZygiY249JXMsY249aW5kZXgsY249JXMsJXMiLAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyX25hbWUs IGJlX25hbWUsIGJlX2Jhc2VfZG4pOwotKyAgICAgICAgICAgICAgICBjaGFyICppZHhfZG4gPSBz bGFwaV9jcmVhdGVfZG5fc3RyaW5nKCJjbj0lcyxjbj1pbmRleCwlcyIsCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJfbmFtZSwgYmVf ZG4pOwotICAgICAgICAgICAgICAgICBjaGFyICppZHhfZmlsdGVyID0gIihvYmplY3RjbGFzcz1u c0luZGV4KSI7Ci0gICAgICAgICAgICAgICAgIFBSQm9vbCBoYXNfbWF0Y2hpbmdfcnVsZSA9IFBS X0ZBTFNFOwotIAotQEAgLTc1NCw2ICs4NzUsMTAgQEAgdXBncmFkZV9zZXJ2ZXIodm9pZCkKLSAg ICAgICAgIHJldHVybiBVUEdSQURFX0ZBSUxVUkU7Ci0gICAgIH0KLSAKLSsgICAgaWYgKHVwZ3Jh ZGVfcmVtb3ZlX2FuY2VzdG9yaWRfaW5kZXhfY29uZmlnKCkgIT0gVVBHUkFERV9TVUNDRVNTKSB7 Ci0rICAgICAgICByZXR1cm4gVVBHUkFERV9GQUlMVVJFOwotKyAgICB9Ci0rCi0gICAgIGlmICh1 cGdyYWRlX2NoZWNrX2lkX2luZGV4X21hdGNoaW5nX3J1bGUoKSAhPSBVUEdSQURFX1NVQ0NFU1Mp IHsKLSAgICAgICAgIHJldHVybiBVUEdSQURFX0ZBSUxVUkU7Ci0gICAgIH0KLS0tIAotMi41Mi4w Ci0KCmRpZmYgLS1naXQgYS8wMDM1LUlzc3VlLTcyMjMtRGV0ZWN0LWFuZC1sb2ctaW5kZXgtb3Jk ZXJpbmctbWlzbWF0Y2gtZHUucGF0Y2ggYi8wMDM1LUlzc3VlLTcyMjMtRGV0ZWN0LWFuZC1sb2ct aW5kZXgtb3JkZXJpbmctbWlzbWF0Y2gtZHUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDY2MmQ5ZTguLjAwMDAwMDAKLS0tIGEvMDAzNS1Jc3N1ZS03MjIzLURldGVjdC1hbmQt bG9nLWluZGV4LW9yZGVyaW5nLW1pc21hdGNoLWR1LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs MzAwICswLDAgQEAKLUZyb20gYTI2MGI1MGFhMGM4ZTZjNWI4YjNmZDBiMTY0ZTliYmM0YTE1OTgz ZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFZpa3RvciBBc2hpcm92IDx2YXNoaXJv dkByZWRoYXQuY29tPgotRGF0ZTogVGh1LCA1IEZlYiAyMDI2IDEyOjE3OjA2ICswMTAwCi1TdWJq ZWN0OiBbUEFUQ0hdIElzc3VlIDcyMjMgLSBEZXRlY3QgYW5kIGxvZyBpbmRleCBvcmRlcmluZyBt aXNtYXRjaCBkdXJpbmcKLSBiYWNrZW5kIHN0YXJ0dXAKLQotRGVzY3JpcHRpb246Ci1BZGQgYGxk Ym1faW5zdGFuY2VfY2hlY2tfaW5kZXhfY29uZmlnKClgIGZ1bmN0aW9uIHRoYXQgY2hlY2tzIG9u LWRpc2sKLWluZGV4IGRhdGEgYW5kIGxvZ3MgYSBtZXNzYWdlIGluIGNhc2Ugb2YgYSBtaXNtYXRj aCB3aXRoIERTRSBjb25maWcgZW50cnkuCi0KLVJlbGF0ZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS8z ODlkcy8zODktZHMtYmFzZS9pc3N1ZXMvNzIyMwotCi1SZXZpZXdlZCBieTogQHByb2dpZXIzODks IEB0Ym9yZGF6LCBAZHJvaWRlY2sgKFRoYW5rcyEpCi0tLS0KLSBsZGFwL3NlcnZlcnMvc2xhcGQv YmFjay1sZGJtL2luc3RhbmNlLmMgfCAyNjIgKysrKysrKysrKysrKysrKysrKysrKysrCi0gMSBm aWxlIGNoYW5nZWQsIDI2MiBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9sZGFwL3NlcnZl cnMvc2xhcGQvYmFjay1sZGJtL2luc3RhbmNlLmMgYi9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1s ZGJtL2luc3RhbmNlLmMKLWluZGV4IDJiNzFjZDRmNy4uMTdiZmMwOWEwIDEwMDY0NAotLS0tIGEv bGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9pbnN0YW5jZS5jCi0rKysgYi9sZGFwL3NlcnZl cnMvc2xhcGQvYmFjay1sZGJtL2luc3RhbmNlLmMKLUBAIC0yMzksNiArMjM5LDI2NiBAQCBsZGJt X2luc3RhbmNlX2NyZWF0ZV9kZWZhdWx0X2luZGV4ZXMoYmFja2VuZCAqYmUpCi0gfQotIAotIAot Ky8qCi0rICogQ2hlY2sgaWYgYW4gaW5kZXggaGFzIGludGVnZXJPcmRlcmluZ01hdGNoIGNvbmZp Z3VyZWQgaW4gRFNFLgotKyAqCi0rICogVGhpcyBmdW5jdGlvbiBwZXJmb3JtcyBhbiBpbnRlcm5h bCBMREFQIHNlYXJjaCB0byBjaGVjayBpZiB0aGUgaW5kZXgKLSsgKiBjb25maWd1cmF0aW9uIGVu dHJ5IGhhcyBuc01hdGNoaW5nUnVsZTogaW50ZWdlck9yZGVyaW5nTWF0Y2guCi0rICoKLSsgKiBQ YXJhbWV0ZXJzOgotKyAqICAgaW5zdF9uYW1lIC0gYmFja2VuZCBpbnN0YW5jZSBuYW1lIChlLmcu LCAidXNlclJvb3QiKQotKyAqICAgaW5kZXhfbmFtZSAtIG5hbWUgb2YgdGhlIGluZGV4IHRvIGNo ZWNrIChlLmcuLCAicGFyZW50aWQiLCAiYW5jZXN0b3JpZCIpCi0rICoKLSsgKiBSZXR1cm5zOgot KyAqICAgUFJfVFJVRSBpZiBpbnRlZ2VyT3JkZXJpbmdNYXRjaCBpcyBjb25maWd1cmVkCi0rICog ICBQUl9GQUxTRSBpZiBub3QgY29uZmlndXJlZCBvciBpbmRleCBlbnRyeSBkb2Vzbid0IGV4aXN0 Ci0rICovCi0rc3RhdGljIFBSQm9vbAotK2xkYm1faW5zdGFuY2VfaW5kZXhfaGFzX2ludF9vcmRl cl9pbl9kc2UoY29uc3QgY2hhciAqaW5zdF9uYW1lLCBjb25zdCBjaGFyICppbmRleF9uYW1lKQot K3sKLSsgICAgU2xhcGlfUEJsb2NrICpwYiA9IE5VTEw7Ci0rICAgIFNsYXBpX0VudHJ5ICoqZW50 cmllcyA9IE5VTEw7Ci0rICAgIGNoYXIgKmlkeF9kbiA9IE5VTEw7Ci0rICAgIFBSQm9vbCBoYXNf aW50X29yZGVyID0gUFJfRkFMU0U7Ci0rCi0rICAgIGlkeF9kbiA9IHNsYXBpX2NyZWF0ZV9kbl9z dHJpbmcoImNuPSVzLGNuPWluZGV4LGNuPSVzLGNuPWxkYm0gZGF0YWJhc2UsY249cGx1Z2lucyxj bj1jb25maWciLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleF9u YW1lLCBpbnN0X25hbWUpOwotKyAgICBpZiAoaWR4X2RuID09IE5VTEwpIHsKLSsgICAgICAgIHJl dHVybiBQUl9GQUxTRTsKLSsgICAgfQotKwotKyAgICBwYiA9IHNsYXBpX3BibG9ja19uZXcoKTsK LSsgICAgc2xhcGlfc2VhcmNoX2ludGVybmFsX3NldF9wYihwYiwgaWR4X2RuLCBMREFQX1NDT1BF X0JBU0UsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIob2JqZWN0Y2xhc3M9 bnNJbmRleCkiLCBOVUxMLCAwLCBOVUxMLCBOVUxMLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwbHVnaW5fZ2V0X2RlZmF1bHRfY29tcG9uZW50X2lkKCksIDApOwotKyAgICBz bGFwaV9zZWFyY2hfaW50ZXJuYWxfcGIocGIpOwotKyAgICBzbGFwaV9wYmxvY2tfZ2V0KHBiLCBT TEFQSV9QTFVHSU5fSU5UT1BfU0VBUkNIX0VOVFJJRVMsICZlbnRyaWVzKTsKLSsKLSsgICAgaWYg KGVudHJpZXMgJiYgZW50cmllc1swXSkgewotKyAgICAgICAgU2xhcGlfQXR0ciAqbXJfYXR0ciA9 IE5VTEw7Ci0rICAgICAgICBpZiAoc2xhcGlfZW50cnlfYXR0cl9maW5kKGVudHJpZXNbMF0sICJu c01hdGNoaW5nUnVsZSIsICZtcl9hdHRyKSA9PSAwKSB7Ci0rICAgICAgICAgICAgU2xhcGlfVmFs dWUgKnN2YWwgPSBOVUxMOwotKyAgICAgICAgICAgIGludCBpZHg7Ci0rICAgICAgICAgICAgZm9y IChpZHggPSBzbGFwaV9hdHRyX2ZpcnN0X3ZhbHVlKG1yX2F0dHIsICZzdmFsKTsKLSsgICAgICAg ICAgICAgICAgIGlkeCAhPSAtMTsKLSsgICAgICAgICAgICAgICAgIGlkeCA9IHNsYXBpX2F0dHJf bmV4dF92YWx1ZShtcl9hdHRyLCBpZHgsICZzdmFsKSkgewotKyAgICAgICAgICAgICAgICBjb25z dCBzdHJ1Y3QgYmVydmFsICpidmFsID0gc2xhcGlfdmFsdWVfZ2V0X2JlcnZhbChzdmFsKTsKLSsg ICAgICAgICAgICAgICAgaWYgKGJ2YWwgJiYgYnZhbC0+YnZfdmFsICYmCi0rICAgICAgICAgICAg ICAgICAgICBzdHJjYXNlY21wKGJ2YWwtPmJ2X3ZhbCwgImludGVnZXJPcmRlcmluZ01hdGNoIikg PT0gMCkgewotKyAgICAgICAgICAgICAgICAgICAgaGFzX2ludF9vcmRlciA9IFBSX1RSVUU7Ci0r ICAgICAgICAgICAgICAgICAgICBicmVhazsKLSsgICAgICAgICAgICAgICAgfQotKyAgICAgICAg ICAgIH0KLSsgICAgICAgIH0KLSsgICAgfQotKwotKyAgICBzbGFwaV9jaF9mcmVlX3N0cmluZygm aWR4X2RuKTsKLSsgICAgc2xhcGlfZnJlZV9zZWFyY2hfcmVzdWx0c19pbnRlcm5hbChwYik7Ci0r ICAgIHNsYXBpX3BibG9ja19kZXN0cm95KHBiKTsKLSsKLSsgICAgcmV0dXJuIGhhc19pbnRfb3Jk ZXI7Ci0rfQotKwotKy8qCi0rICogQ2hlY2sgYSBzeXN0ZW0gaW5kZXggZm9yIG9yZGVyaW5nIG1p c21hdGNoIGJldHdlZW4gY29uZmlnIGFuZCBvbi1kaXNrIGRhdGEuCi0rICoKLSsgKiBUaGlzIGZ1 bmN0aW9uIGNvbXBhcmVzIHdoYXQncyBjb25maWd1cmVkIGluIERTRSAobnNNYXRjaGluZ1J1bGUp IHdpdGgKLSsgKiB3aGF0J3MgYWN0dWFsbHkgb24gZGlzay4gQSBtaXNtYXRjaCBjYW4gb2NjdXIg aW4gdHdvIHNjZW5hcmlvczoKLSsgKiAxLiBPcmRlcmluZyBydWxlIGlzIGNvbmZpZ3VyZWQgYnV0 IGRpc2sgaGFzIGxleGljb2dyYXBoaWMgb3JkZXIKLSsgKiAgICAocnVsZSB3YXMgYWRkZWQgYWZ0 ZXIgaW5kZXggd2FzIGNyZWF0ZWQpCi0rICogMi4gTm8gb3JkZXJpbmcgcnVsZSBjb25maWd1cmVk IGJ1dCBkaXNrIGhhcyBpbnRlZ2VyIG9yZGVyCi0rICogICAgKHJ1bGUgd2FzIHJlbW92ZWQgYWZ0 ZXIgaW5kZXggd2FzIGNyZWF0ZWQgd2l0aCBpdCkKLSsgKgotKyAqIFRoaXMgZnVuY3Rpb24gcmVh ZHMgdGhlIGZpcnN0IGtleXMgZnJvbSB0aGUgc3BlY2lmaWVkIGluZGV4IGFuZCBjaGVja3MKLSsg KiBpZiB0aGV5IGFyZSBzdG9yZWQgaW4gbGV4aWNvZ3JhcGhpYyBvcmRlciAoc3RyaW5nOiAiMSIg PCAiMTAiIDwgIjIiKSBvcgotKyAqIGludGVnZXIgb3JkZXIgKG51bWVyaWM6ICIxIiA8ICIyIiA8 ICIxMCIpLgotKyAqCi0rICogUGFyYW1ldGVyczoKLSsgKiAgIGJlIC0gYmFja2VuZAotKyAqICAg aW5kZXhfbmFtZSAtIG5hbWUgb2YgdGhlIGluZGV4IHRvIGNoZWNrIChlLmcuLCAicGFyZW50aWQi LCAiYW5jZXN0b3JpZCIpCi0rICoKLSsgKi8KLStzdGF0aWMgdm9pZAotK2xkYm1faW5zdGFuY2Vf Y2hlY2tfaW5kZXhfY29uZmlnKGJhY2tlbmQgKmJlLCBjb25zdCBjaGFyICppbmRleF9uYW1lKQot K3sKLSsgICAgbGRibV9pbnN0YW5jZSAqaW5zdCA9IChsZGJtX2luc3RhbmNlICopYmUtPmJlX2lu c3RhbmNlX2luZm87Ci0rICAgIHN0cnVjdCBhdHRyaW5mbyAqYWkgPSBOVUxMOwotKyAgICBkYmlf ZGJfdCAqZGIgPSBOVUxMOwotKyAgICBkYmlfY3Vyc29yX3QgZGJjID0gezB9OwotKyAgICBkYmlf dmFsX3Qga2V5ID0gezB9OwotKyAgICBkYmlfdmFsX3QgZGF0YSA9IHswfTsKLSsgICAgaW50IHJl dCA9IDA7Ci0rICAgIFBSQm9vbCBjb25maWdfaGFzX2ludF9vcmRlciA9IFBSX0ZBTFNFOwotKyAg ICBQUkJvb2wgZGlza19oYXNfaW50X29yZGVyID0gUFJfVFJVRTsgIC8qIEFzc3VtZSBpbnRlZ2Vy IG9yZGVyIHVudGlsIHByb3ZlbiBvdGhlcndpc2UgKi8KLSsgICAgSUQgcHJldl9pZCA9IDA7Ci0r ICAgIGludCBrZXlfY291bnQgPSAwOwotKyAgICBQUkJvb2wgZmlyc3Rfa2V5ID0gUFJfVFJVRTsK LSsgICAgUFJCb29sIGZvdW5kX29yZGVyaW5nX2V2aWRlbmNlID0gUFJfRkFMU0U7Ci0rCi0rICAg IHNsYXBpX2xvZ19lcnIoU0xBUElfTE9HX0RFQlVHLCAibGRibV9pbnN0YW5jZV9jaGVja19pbmRl eF9jb25maWciLAotKyAgICAgICAgICAgICJCYWNrZW5kICclcyc6IGNoZWNraW5nICVzIGluZGV4 IG9yZGVyaW5nLi4uXG4iLAotKyAgICAgICAgICAgIGluc3QtPmluc3RfbmFtZSwgaW5kZXhfbmFt ZSk7Ci0rCi0rICAgIC8qIENoZWNrIGlmIGludGVnZXJPcmRlcmluZ01hdGNoIGlzIGNvbmZpZ3Vy ZWQgaW4gRFNFICovCi0rICAgIGNvbmZpZ19oYXNfaW50X29yZGVyID0gbGRibV9pbnN0YW5jZV9p bmRleF9oYXNfaW50X29yZGVyX2luX2RzZShpbnN0LT5pbnN0X25hbWUsIGluZGV4X25hbWUpOwot KwotKyAgICAvKiBHZXQgYXR0cmluZm8gZm9yIHRoZSBpbmRleCAqLwotKyAgICBhaW5mb19nZXQo YmUsIChjaGFyICopaW5kZXhfbmFtZSwgJmFpKTsKLSsgICAgaWYgKGFpID09IE5VTEwgfHwgc3Ry Y21wKGFpLT5haV90eXBlLCBpbmRleF9uYW1lKSAhPSAwKSB7Ci0rICAgICAgICAvKiBObyBpbmRl eCBjb25maWcgZm91bmQgKi8KLSsgICAgICAgIHNsYXBpX2xvZ19lcnIoU0xBUElfTE9HX0RFQlVH LCAibGRibV9pbnN0YW5jZV9jaGVja19pbmRleF9jb25maWciLAotKyAgICAgICAgICAgICAgICAi QmFja2VuZCAnJXMnOiBubyAlcyBhdHRyaW5mbyBmb3VuZCwgc2tpcHBpbmcgY2hlY2tcbiIsCi0r ICAgICAgICAgICAgICAgIGluc3QtPmluc3RfbmFtZSwgaW5kZXhfbmFtZSk7Ci0rICAgICAgICBy ZXR1cm47Ci0rICAgIH0KLSsKLSsgICAgLyogT3BlbiB0aGUgaW5kZXggZmlsZSAqLwotKyAgICBy ZXQgPSBkYmxheWVyX2dldF9pbmRleF9maWxlKGJlLCBhaSwgJmRiLCAwKTsKLSsgICAgaWYgKHJl dCAhPSAwIHx8IGRiID09IE5VTEwpIHsKLSsgICAgICAgIC8qIEluZGV4IGZpbGUgZG9lc24ndCBl eGlzdCBvciBjYW4ndCBiZSBvcGVuZWQgLSB0aGlzIGlzIGZpbmUgZm9yIG5ldyBpbnN0YW5jZXMg Ki8KLSsgICAgICAgIHNsYXBpX2xvZ19lcnIoU0xBUElfTE9HX0RFQlVHLCAibGRibV9pbnN0YW5j ZV9jaGVja19pbmRleF9jb25maWciLAotKyAgICAgICAgICAgICAgICAiQmFja2VuZCAnJXMnOiBj b3VsZCBub3Qgb3BlbiAlcyBpbmRleCBmaWxlIChyZXQ9JWQpLCBza2lwcGluZyBvcmRlciBjaGVj a1xuIiwKLSsgICAgICAgICAgICAgICAgaW5zdC0+aW5zdF9uYW1lLCBpbmRleF9uYW1lLCByZXQp OwotKyAgICAgICAgcmV0dXJuOwotKyAgICB9Ci0rCi0rICAgIC8qIENyZWF0ZSBhIGN1cnNvciB0 byByZWFkIGtleXMgKi8KLSsgICAgcmV0ID0gZGJsYXllcl9uZXdfY3Vyc29yKGJlLCBkYiwgTlVM TCwgJmRiYyk7Ci0rICAgIGlmIChyZXQgIT0gMCkgewotKyAgICAgICAgc2xhcGlfbG9nX2VycihT TEFQSV9MT0dfRVJSLCAibGRibV9pbnN0YW5jZV9jaGVja19pbmRleF9jb25maWciLAotKyAgICAg ICAgICAgICAgICAiQmFja2VuZCAnJXMnOiBjb3VsZCBub3QgY3JlYXRlIGN1cnNvciBvbiAlcyBp bmRleCAocmV0PSVkKVxuIiwKLSsgICAgICAgICAgICAgICAgaW5zdC0+aW5zdF9uYW1lLCBpbmRl eF9uYW1lLCByZXQpOwotKyAgICAgICAgZGJsYXllcl9yZWxlYXNlX2luZGV4X2ZpbGUoYmUsIGFp LCBkYik7Ci0rICAgICAgICByZXR1cm47Ci0rICAgIH0KLSsKLSsgICAgZGJsYXllcl92YWx1ZV9p bml0KGJlLCAma2V5KTsKLSsgICAgZGJsYXllcl92YWx1ZV9pbml0KGJlLCAmZGF0YSk7Ci0rCi0r ICAgIC8qCi0rICAgICAqIFJlYWQgdXAgdG8gMTAwIHVuaXF1ZSBrZXlzIGFuZCBjaGVjayB0aGVp ciBvcmRlcmluZy4KLSsgICAgICogV2l0aCBsZXhpY29ncmFwaGljIG9yZGVyaW5nOiAiMSIgPCAi MTAiIDwgIjEwMCIgPCAiMiIgPCAiMjAiIDwgIjMiCi0rICAgICAqIFdpdGggaW50ZWdlciBvcmRl cmluZzogIjEiIDwgIjIiIDwgIjMiIDwgIjEwIiA8ICIyMCIgPCAiMTAwIgotKyAgICAgKgotKyAg ICAgKiBJZiB3ZSBmaW5kIGEgY2FzZSB3aGVyZSBwcmV2X2lkID4gY3VycmVudF9pZCAobnVtZXJp Y2FsbHkpLCBidXQgdGhlCi0rICAgICAqIGtleXMgYXJlIHN0aWxsIGluIG9yZGVyIChsZXhpY29n cmFwaGljYWxseSksIHRoZW4gdGhlIGluZGV4IHVzZXMKLSsgICAgICogbGV4aWNvZ3JhcGhpYyBv cmRlcmluZy4KLSsgICAgICovCi0rICAgIHdoaWxlIChrZXlfY291bnQgPCAxMDApIHsKLSsgICAg ICAgIElEIGN1cnJlbnRfaWQ7Ci0rCi0rICAgICAgICByZXQgPSBkYmxheWVyX2N1cnNvcl9vcCgm ZGJjLCBmaXJzdF9rZXkgPyBEQklfT1BfTU9WRV9UT19GSVJTVCA6IERCSV9PUF9ORVhUX0tFWSwg JmtleSwgJmRhdGEpOwotKyAgICAgICAgZmlyc3Rfa2V5ID0gUFJfRkFMU0U7ICAvKiBBbHdheXMg YWR2YW5jZSBjdXJzb3Igb24gbmV4dCBpdGVyYXRpb24gKi8KLSsgICAgICAgIGlmIChyZXQgIT0g MCkgewotKyAgICAgICAgICAgIGJyZWFrOyAgLyogTm8gbW9yZSBrZXlzIG9yIGVycm9yICovCi0r ICAgICAgICB9Ci0rCi0rICAgICAgICAvKiBTa2lwIG5vbi1lcXVhbGl0eSBrZXlzICovCi0rICAg ICAgICBpZiAoa2V5LnNpemUgPCAyIHx8ICooY2hhciAqKWtleS5kYXRhICE9IEVRX1BSRUZJWCkg ewotKyAgICAgICAgICAgIGNvbnRpbnVlOwotKyAgICAgICAgfQotKwotKyAgICAgICAgLyogUGFy c2UgdGhlIElEIGZyb20gdGhlIGtleSAoZm9ybWF0OiAiPTxpZD4iKSAqLwotKyAgICAgICAgY3Vy cmVudF9pZCA9IChJRClzdHJ0b3VsKChjaGFyICopa2V5LmRhdGEgKyAxLCBOVUxMLCAxMCk7Ci0r ICAgICAgICBpZiAoY3VycmVudF9pZCA9PSAwKSB7Ci0rICAgICAgICAgICAgY29udGludWU7ICAv KiBJbnZhbGlkIElELCBza2lwICovCi0rICAgICAgICB9Ci0rCi0rICAgICAgICBrZXlfY291bnQr KzsKLSsKLSsgICAgICAgIGlmIChwcmV2X2lkICE9IDApIHsKLSsgICAgICAgICAgICAvKgotKyAg ICAgICAgICAgICAqIENoZWNrIG9yZGVyaW5nOiBpZiBwcmV2X2lkID4gY3VycmVudF9pZCBudW1l cmljYWxseSwKLSsgICAgICAgICAgICAgKiBidXQgd2UgZ290IHRoaXMga2V5IGFmdGVyIHByZXYg aW4gREIgb3JkZXIsIHRoZW4KLSsgICAgICAgICAgICAgKiB0aGUgaW5kZXggaXMgdXNpbmcgbGV4 aWNvZ3JhcGhpYyBvcmRlcmluZy4KLSsgICAgICAgICAgICAgKgotKyAgICAgICAgICAgICAqIEV4 YW1wbGU6IGlmIHdlIHNlZSAiMTAiIGZvbGxvd2VkIGJ5ICIyIiwgdGhhdCdzIGxleGljb2dyYXBo aWMKLSsgICAgICAgICAgICAgKiBiZWNhdXNlICIxMCIgPCAiMiIgYXMgc3RyaW5ncywgYnV0IDEw ID4gMiBhcyBpbnRlZ2Vycy4KLSsgICAgICAgICAgICAgKi8KLSsgICAgICAgICAgICBpZiAocHJl dl9pZCA+IGN1cnJlbnRfaWQpIHsKLSsgICAgICAgICAgICAgICAgLyogRm91bmQgZXZpZGVuY2Ug b2YgbGV4aWNvZ3JhcGhpYyBvcmRlcmluZyAqLwotKyAgICAgICAgICAgICAgICBkaXNrX2hhc19p bnRfb3JkZXIgPSBQUl9GQUxTRTsKLSsgICAgICAgICAgICAgICAgZm91bmRfb3JkZXJpbmdfZXZp ZGVuY2UgPSBQUl9UUlVFOwotKyAgICAgICAgICAgICAgICBicmVhazsKLSsgICAgICAgICAgICB9 IGVsc2UgaWYgKHByZXZfaWQgPCBjdXJyZW50X2lkKSB7Ci0rICAgICAgICAgICAgICAgIC8qCi0r ICAgICAgICAgICAgICAgICAqIFRoaXMgaXMgY29uc2lzdGVudCB3aXRoIGludGVnZXIgb3JkZXJp bmcsIGJ1dCB3ZSBuZWVkCi0rICAgICAgICAgICAgICAgICAqIHRvIGZpbmQgYSBjYXNlIHRoYXQg cHJvdmVzIGxleGljb2dyYXBoaWMgb3JkZXJpbmcuCi0rICAgICAgICAgICAgICAgICAqIEZvciBl eGFtcGxlLCBzZWVpbmcgIjEiIGZvbGxvd2VkIGJ5ICIyIiBpcyBhbWJpZ3VvdXMsCi0rICAgICAg ICAgICAgICAgICAqIGJ1dCBzZWVpbmcgIjEiIGZvbGxvd2VkIGJ5ICIxMCIgKG5vdCAiMiIpIHBy b3ZlcyBsZXhpY29ncmFwaGljLgotKyAgICAgICAgICAgICAgICAgKgotKyAgICAgICAgICAgICAg ICAgKiBBIGRlZmluaXRpdmUgdGVzdDogaWYgd2Ugc2VlIGFuIElEIGZvbGxvd2VkIGJ5IGEgc21h bGxlcgotKyAgICAgICAgICAgICAgICAgKiBJRCwgdGhhdCdzIGxleGljb2dyYXBoaWMuIElmIGFs bCBJRHMgYXJlIHN0cmljdGx5IGluY3JlYXNpbmcsCi0rICAgICAgICAgICAgICAgICAqIGl0IGNv dWxkIGJlIGVpdGhlciAob3IgdGhlIGluZGV4IG9ubHkgaGFzIHNlcXVlbnRpYWwgSURzKS4KLSsg ICAgICAgICAgICAgICAgICovCi0rICAgICAgICAgICAgICAgIGZvdW5kX29yZGVyaW5nX2V2aWRl bmNlID0gUFJfVFJVRTsKLSsgICAgICAgICAgICB9Ci0rICAgICAgICB9Ci0rICAgICAgICBwcmV2 X2lkID0gY3VycmVudF9pZDsKLSsgICAgfQotKwotKyAgICAvKiBDbG9zZSB0aGUgY3Vyc29yIGFu ZCBmcmVlIHZhbHVlcyAqLwotKyAgICBkYmxheWVyX2N1cnNvcl9vcCgmZGJjLCBEQklfT1BfQ0xP U0UsIE5VTEwsIE5VTEwpOwotKyAgICBkYmxheWVyX3ZhbHVlX2ZyZWUoYmUsICZrZXkpOwotKyAg ICBkYmxheWVyX3ZhbHVlX2ZyZWUoYmUsICZkYXRhKTsKLSsKLSsgICAgLyogUmVsZWFzZSB0aGUg aW5kZXggZmlsZSAqLwotKyAgICBkYmxheWVyX3JlbGVhc2VfaW5kZXhfZmlsZShiZSwgYWksIGRi KTsKLSsKLSsgICAgLyoKLSsgICAgICogUmVwb3J0IGZpbmRpbmdzIGFuZCBjaGVjayBmb3IgY29u ZmlnL2Rpc2sgbWlzbWF0Y2guCi0rICAgICAqIExvZyBhbiBlcnJvciBpZiB0aGVyZSdzIGEgZGlz Y3JlcGFuY3kgYmV0d2VlbiB3aGF0J3MgY29uZmlndXJlZAotKyAgICAgKiBpbiBEU0UgYW5kIHdo YXQncyBhY3R1YWxseSBvbiBkaXNrLgotKyAgICAgKi8KLSsgICAgaWYgKCFmb3VuZF9vcmRlcmlu Z19ldmlkZW5jZSkgewotKyAgICAgICAgc2xhcGlfbG9nX2VycihTTEFQSV9MT0dfREVCVUcsICJs ZGJtX2luc3RhbmNlX2NoZWNrX2luZGV4X2NvbmZpZyIsCi0rICAgICAgICAgICAgICAgICJCYWNr ZW5kICclcyc6ICVzIGluZGV4IG9yZGVyaW5nIGNoZWNrIC0gIgotKyAgICAgICAgICAgICAgICAi Y291bGQgbm90IGRldGVybWluZSBvbi1kaXNrIG9yZGVyaW5nIChpbmRleCBtYXkgYmUgZW1wdHkg b3IgaGF2ZSBzZXF1ZW50aWFsIElEcyBvbmx5KS4gIgotKyAgICAgICAgICAgICAgICAiQ29uZmln IGhhcyBpbnRlZ2VyT3JkZXJpbmdNYXRjaDogJXNcbiIsCi0rICAgICAgICAgICAgICAgIGluc3Qt Pmluc3RfbmFtZSwgaW5kZXhfbmFtZSwgY29uZmlnX2hhc19pbnRfb3JkZXIgPyAieWVzIiA6ICJu byIpOwotKyAgICB9IGVsc2UgaWYgKGNvbmZpZ19oYXNfaW50X29yZGVyICYmICFkaXNrX2hhc19p bnRfb3JkZXIpIHsKLSsgICAgICAgIC8qIENvbmZpZyBleHBlY3RzIGludGVnZXIgb3JkZXJpbmcs IGJ1dCBkaXNrIGhhcyBsZXhpY29ncmFwaGljIC0gTUlTTUFUQ0ggKi8KLSsgICAgICAgIHNsYXBp X2xvZ19lcnIoU0xBUElfTE9HX0VSUiwgImxkYm1faW5zdGFuY2VfY2hlY2tfaW5kZXhfY29uZmln IiwKLSsgICAgICAgICAgICAgICAgIkJhY2tlbmQgJyVzJzogTUlTTUFUQ0ggLSAlcyBpbmRleCBo YXMgaW50ZWdlck9yZGVyaW5nTWF0Y2ggY29uZmlndXJlZCwgIgotKyAgICAgICAgICAgICAgICAi YnV0IG9uLWRpc2sgZGF0YSB1c2VzIGxleGljb2dyYXBoaWMgb3JkZXJpbmcuICIKLSsgICAgICAg ICAgICAgICAgIlRoaXMgd2lsbCBjYXVzZSBzZWFyY2hlcyB0byByZXR1cm4gaW5jb3JyZWN0IG9y IGluY29tcGxldGUgcmVzdWx0cy4gIgotKyAgICAgICAgICAgICAgICAiUGxlYXNlIHJlaW5kZXgg dGhlICVzIGF0dHJpYnV0ZTogIgotKyAgICAgICAgICAgICAgICAiZHNjb25mIDxpbnN0YW5jZT4g YmFja2VuZCBpbmRleCByZWluZGV4IC0tYXR0ciAlcyAlc1xuIiwKLSsgICAgICAgICAgICAgICAg aW5zdC0+aW5zdF9uYW1lLCBpbmRleF9uYW1lLCBpbmRleF9uYW1lLCBpbmRleF9uYW1lLCBpbnN0 LT5pbnN0X25hbWUpOwotKyAgICB9IGVsc2UgaWYgKCFjb25maWdfaGFzX2ludF9vcmRlciAmJiBk aXNrX2hhc19pbnRfb3JkZXIpIHsKLSsgICAgICAgIC8qIENvbmZpZyBleHBlY3RzIGxleGljb2dy YXBoaWMgb3JkZXJpbmcsIGJ1dCBkaXNrIGhhcyBpbnRlZ2VyIC0gTUlTTUFUQ0ggKi8KLSsgICAg ICAgIHNsYXBpX2xvZ19lcnIoU0xBUElfTE9HX0VSUiwgImxkYm1faW5zdGFuY2VfY2hlY2tfaW5k ZXhfY29uZmlnIiwKLSsgICAgICAgICAgICAgICAgIkJhY2tlbmQgJyVzJzogTUlTTUFUQ0ggLSAl cyBpbmRleCBkb2VzIG5vdCBoYXZlIGludGVnZXJPcmRlcmluZ01hdGNoIGNvbmZpZ3VyZWQsICIK LSsgICAgICAgICAgICAgICAgImJ1dCBvbi1kaXNrIGRhdGEgdXNlcyBpbnRlZ2VyIG9yZGVyaW5n LiAiCi0rICAgICAgICAgICAgICAgICJUaGlzIHdpbGwgY2F1c2Ugc2VhcmNoZXMgdG8gcmV0dXJu IGluY29ycmVjdCBvciBpbmNvbXBsZXRlIHJlc3VsdHMuICIKLSsgICAgICAgICAgICAgICAgIlBs ZWFzZSByZWluZGV4IHRoZSAlcyBhdHRyaWJ1dGU6ICIKLSsgICAgICAgICAgICAgICAgImRzY29u ZiA8aW5zdGFuY2U+IGJhY2tlbmQgaW5kZXggcmVpbmRleCAtLWF0dHIgJXMgJXNcbiIsCi0rICAg ICAgICAgICAgICAgIGluc3QtPmluc3RfbmFtZSwgaW5kZXhfbmFtZSwgaW5kZXhfbmFtZSwgaW5k ZXhfbmFtZSwgaW5zdC0+aW5zdF9uYW1lKTsKLSsgICAgfSBlbHNlIHsKLSsgICAgICAgIC8qIENv bmZpZyBhbmQgZGlzayBvcmRlcmluZyBtYXRjaCAtIG5vIGFjdGlvbiBuZWVkZWQgKi8KLSsgICAg ICAgIHNsYXBpX2xvZ19lcnIoU0xBUElfTE9HX0RFQlVHLCAibGRibV9pbnN0YW5jZV9jaGVja19p bmRleF9jb25maWciLAotKyAgICAgICAgICAgICAgICAiQmFja2VuZCAnJXMnOiAlcyBpbmRleCBv cmRlcmluZyBjaGVjayBwYXNzZWQgLSAiCi0rICAgICAgICAgICAgICAgICJjb25maWcgaGFzIGlu dGVnZXJPcmRlcmluZ01hdGNoOiAlcywgb24tZGlzayBkYXRhIG1hdGNoZXMuXG4iLAotKyAgICAg ICAgICAgICAgICBpbnN0LT5pbnN0X25hbWUsIGluZGV4X25hbWUsIGNvbmZpZ19oYXNfaW50X29y ZGVyID8gInllcyIgOiAibm8iKTsKLSsgICAgfQotK30KLSsKLSsvKgotKyAqIENoZWNrIHN5c3Rl bSBpbmRleGVzIGZvciBvcmRlcmluZyBtaXNtYXRjaGVzLgotKyAqIElmIGEgbWlzbWF0Y2ggaXMg ZGV0ZWN0ZWQsIGxvZyBhbiBlcnJvciBhZHZpc2luZyB0aGUgYWRtaW5pc3RyYXRvcgotKyAqIHRv IHJlaW5kZXggdGhlIGFmZmVjdGVkIGF0dHJpYnV0ZS4KLSsgKgotKyAqIE5vdGU6IFdlIG9ubHkg Y2hlY2sgcGFyZW50aWQgaGVyZS4gVGhlIGFuY2VzdG9yaWQgaW5kZXggaXMgYSBzcGVjaWFsCi0r ICogc3lzdGVtIGluZGV4IHRoYXQgaGFzIG5vIERTRSBjb25maWcgZW50cnkgLSBpdHMgb3JkZXJp bmcgaXMgaGFyZGNvZGVkCi0rICogaW4gbGRibV9pbnN0YW5jZV9pbml0X2NvbmZpZ19lbnRyeSgp IGFuZCBjYW5ub3QgYmUgY2hhbmdlZCBieSB1c2Vycy4KLSsgKi8KLStzdGF0aWMgdm9pZAotK2xk Ym1faW5zdGFuY2VfY2hlY2tfaW5kZXhlcyhiYWNrZW5kICpiZSkKLSt7Ci0rICAgIC8qIENoZWNr IHBhcmVudGlkIGluZGV4ICovCi0rICAgIGxkYm1faW5zdGFuY2VfY2hlY2tfaW5kZXhfY29uZmln KGJlLCBMREJNX1BBUkVOVElEX1NUUik7Ci0rfQotKwotIC8qIFN0YXJ0cyBhIGJhY2tlbmQgaW5z dGFuY2UgKi8KLSBpbnQKLSBsZGJtX2luc3RhbmNlX3N0YXJ0KGJhY2tlbmQgKmJlKQotQEAgLTMw OCw2ICs1NjgsOCBAQCBsZGJtX2luc3RhbmNlX3N0YXJ0YWxsKHN0cnVjdCBsZGJtaW5mbyAqbGkp Ci0gICAgICAgICAgICAgbGRibV9pbnN0YW5jZV9yZWdpc3Rlcl9tb2RpZnlfY2FsbGJhY2soaW5z dCk7Ci0gICAgICAgICAgICAgdmx2X2luaXQoaW5zdCk7Ci0gICAgICAgICAgICAgc2xhcGlfbXRu X2JlX3N0YXJ0ZWQoaW5zdC0+aW5zdF9iZSk7Ci0rICAgICAgICAgICAgLyogQ2hlY2sgaW5kZXgg Y29uZmlndXJhdGlvbiBmb3IgcG90ZW50aWFsIGlzc3VlcyAqLwotKyAgICAgICAgICAgIGxkYm1f aW5zdGFuY2VfY2hlY2tfaW5kZXhlcyhpbnN0LT5pbnN0X2JlKTsKLSAgICAgICAgIH0KLSAgICAg ICAgIGlmIChzbGFwaV9leGlzdF9yZWZlcnJhbChpbnN0LT5pbnN0X2JlKSkgewotICAgICAgICAg ICAgIHNsYXBpX2JlX3NldF9mbGFnKGluc3QtPmluc3RfYmUsIFNMQVBJX0JFX0ZMQUdfQ09OVEFJ TlNfUkVGRVJSQUwpOwotLS0gCi0yLjUyLjAKLQoKZGlmZiAtLWdpdCBhLzAwMzYtSXNzdWUtNzIy My1BZGQtZHNjdGwtaW5kZXgtY2hlY2stY29tbWFuZC1mb3Itb2ZmbGluZS5wYXRjaCBiLzAwMzYt SXNzdWUtNzIyMy1BZGQtZHNjdGwtaW5kZXgtY2hlY2stY29tbWFuZC1mb3Itb2ZmbGluZS5wYXRj aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTM0YzYzMS4uMDAwMDAwMAotLS0gYS8w MDM2LUlzc3VlLTcyMjMtQWRkLWRzY3RsLWluZGV4LWNoZWNrLWNvbW1hbmQtZm9yLW9mZmxpbmUu cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMjMzICswLDAgQEAKLUZyb20gOWU1ZjIyYzk0Yjgy MmZjZDNkZWNiOGY5OGNlMmViMzgzY2MxNmE3YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZy b206IFZpa3RvciBBc2hpcm92IDx2YXNoaXJvdkByZWRoYXQuY29tPgotRGF0ZTogVGh1LCA1IEZl YiAyMDI2IDEyOjE3OjA2ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIElzc3VlIDcyMjMgLSBBZGQg ZHNjdGwgaW5kZXgtY2hlY2sgY29tbWFuZCBmb3Igb2ZmbGluZSBpbmRleAotIHJlcGFpcgotCi1E ZXNjcmlwdGlvbjoKLUFkZCBgZHNjdGwgPGluc3RhbmNlPiBpbmRleC1jaGVjayBbYmFja2VuZF0g Wy0tZml4XWAgY29tbWFuZCBmb3Igb2ZmbGluZQotZGV0ZWN0aW9uIGFuZCByZXBhaXIgb2YgaW5k ZXggb3JkZXJpbmcgbWlzbWF0Y2hlcy4gVGhpcyBpcyBuZWVkZWQgYWZ0ZXIKLXVwZ3JhZGUgZnJv bSB2ZXJzaW9ucyB0aGF0IGRpZG4ndCB1c2UgaW50ZWdlck9yZGVyaW5nTWF0Y2ggZm9yCi1wYXJl bnRpZC9hbmNlc3RvcmlkIHN5c3RlbSBpbmRleGVzLgotCi1JdCdzIGF1dG9tYXRpY2FsbHkgZXhl Y3V0ZWQgYXMgcGFydCBvZiBSUE0gJXBvc3Qgc2NyaXB0bGV0IGR1cmluZwotdXBncmFkZS4KLQot UmVsYXRlczogaHR0cHM6Ly9naXRodWIuY29tLzM4OWRzLzM4OS1kcy1iYXNlL2lzc3Vlcy83MjIz Ci0KLVJldmlld2VkIGJ5OiBAcHJvZ2llcjM4OSwgQHRib3JkYXosIEBkcm9pZGVjayAoVGhhbmtz ISkKLS0tLQotIC4uLi9oZWFsdGhjaGVjay9oZWFsdGhfc3lzdGVtX2luZGV4ZXNfdGVzdC5weSB8 IDU5MyArKysrKysrKysrKysrKysrKysKLSBycG0vMzg5LWRzLWJhc2Uuc3BlYy5pbiAgICAgICAg ICAgICAgICAgICAgICAgfCAgNTEgKy0KLSBzcmMvbGliMzg5L2xpYjM4OS9jbGlfY3RsL2RidGFz a3MucHkgICAgICAgICAgfCA0MDIgKysrKysrKysrKysrCi0gc3JjL2xpYjM4OS9saWIzODkvZHNl bGRpZi5weSAgICAgICAgICAgICAgICAgIHwgIDUxICstCi0gNCBmaWxlcyBjaGFuZ2VkLCAxMDY4 IGluc2VydGlvbnMoKyksIDI5IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZGlyc3J2dGVz dHMvdGVzdHMvc3VpdGVzL2hlYWx0aGNoZWNrL2hlYWx0aF9zeXN0ZW1faW5kZXhlc190ZXN0LnB5 IGIvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL2hlYWx0aGNoZWNrL2hlYWx0aF9zeXN0ZW1faW5k ZXhlc190ZXN0LnB5Ci1pbmRleCBlYjcyN2I5MDIuLmRkNDJjZDE5NyAxMDA2NDQKLS0tLSBhL2Rp cnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9oZWFsdGhjaGVjay9oZWFsdGhfc3lzdGVtX2luZGV4ZXNf dGVzdC5weQotKysrIGIvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL2hlYWx0aGNoZWNrL2hlYWx0 aF9zeXN0ZW1faW5kZXhlc190ZXN0LnB5Ci1AQCAtNTkwLDYgKzU5MCw1OTkgQEAgZGVmIHRlc3Rf dXBncmFkZV9yZW1vdmVzX2FuY2VzdG9yaWRfaW5kZXhfY29uZmlnKHRvcG9sb2d5X3N0KToKLSAg ICAgICAgIGxvZy5pbmZvKGYiSWRlbXBvdGVuY3kgdmVyaWZpZWQgLSBhbmNlc3RvcmlkIHN0aWxs IGFic2VudCBhZnRlciBzZWNvbmQgcmVzdGFydCAoZ290IGV4Y2VwdGlvbjoge2V9KSIpCi0gCi0g Ci0rZGVmIHRlc3RfaW5kZXhfY2hlY2tfYmFzaWModG9wb2xvZ3lfc3QpOgotKyAgICAiIiJDaGVj ayBpZiBkc2N0bCBpbmRleC1jaGVjayB3b3JrcyBjb3JyZWN0bHkKLSsKLSsgICAgOmlkOiA4YTRl NWMyZC0xZjNiLTRhN2MtOWU4ZC0yYjZmMGM0YTVkM2UKLSsgICAgOnNldHVwOiBTdGFuZGFsb25l IGluc3RhbmNlCi0rICAgIDpzdGVwczoKLSsgICAgICAgIDEuIENyZWF0ZSBEUyBpbnN0YW5jZQot KyAgICAgICAgMi4gUnVuIGRzY3RsIGluZGV4LWNoZWNrIHdoaWxlIHNlcnZlciBpcyBydW5uaW5n IChzaG91bGQgZmFpbCkKLSsgICAgICAgIDMuIFN0b3AgdGhlIHNlcnZlcgotKyAgICAgICAgNC4g UnVuIGRzY3RsIGluZGV4LWNoZWNrIChzaG91bGQgcGFzcykKLSsgICAgICAgIDUuIFN0YXJ0IHRo ZSBzZXJ2ZXIKLSsgICAgOmV4cGVjdGVkcmVzdWx0czoKLSsgICAgICAgIDEuIFN1Y2Nlc3MKLSsg ICAgICAgIDIuIGluZGV4LWNoZWNrIHJldHVybnMgRmFsc2UgYW5kIGxvZ3MgZXJyb3IKLSsgICAg ICAgIDMuIFN1Y2Nlc3MKLSsgICAgICAgIDQuIGluZGV4LWNoZWNrIHJldHVybnMgVHJ1ZSAobm8g bWlzbWF0Y2hlcykKLSsgICAgICAgIDUuIFN1Y2Nlc3MKLSsgICAgIiIiCi0rICAgIGZyb20gbGli Mzg5LmNsaV9jdGwuZGJ0YXNrcyBpbXBvcnQgZGJ0YXNrc19pbmRleF9jaGVjawotKwotKyAgICBz dGFuZGFsb25lID0gdG9wb2xvZ3lfc3Quc3RhbmRhbG9uZQotKwotKyAgICBsb2cuaW5mbygiUnVu IGluZGV4LWNoZWNrIHdoaWxlIHNlcnZlciBpcyBydW5uaW5nIikKLSsgICAgYXJncyA9IEZha2VB cmdzKCkKLSsgICAgYXJncy5iYWNrZW5kID0gTm9uZQotKyAgICBhcmdzLmZpeCA9IEZhbHNlCi0r Ci0rICAgICMgU2VydmVyIHNob3VsZCBiZSBydW5uaW5nLCBpbmRleC1jaGVjayBzaG91bGQgZmFp bAotKyAgICBhc3NlcnQgc3RhbmRhbG9uZS5zdGF0dXMoKQotKyAgICByZXN1bHQgPSBkYnRhc2tz X2luZGV4X2NoZWNrKHN0YW5kYWxvbmUsIHRvcG9sb2d5X3N0LmxvZ2NhcC5sb2csIGFyZ3MpCi0r ICAgIGFzc2VydCByZXN1bHQgaXMgRmFsc2UKLSsgICAgYXNzZXJ0IHRvcG9sb2d5X3N0LmxvZ2Nh cC5jb250YWlucygiaW5kZXgtY2hlY2sgcmVxdWlyZXMgdGhlIGluc3RhbmNlIHRvIGJlIHN0b3Bw ZWQiKQotKyAgICB0b3BvbG9neV9zdC5sb2djYXAuZmx1c2goKQotKwotKyAgICBsb2cuaW5mbygi U3RvcCB0aGUgc2VydmVyIikKLSsgICAgc3RhbmRhbG9uZS5zdG9wKCkKLSsKLSsgICAgbG9nLmlu Zm8oIlJ1biBpbmRleC1jaGVjayB3aXRoIHNlcnZlciBzdG9wcGVkIikKLSsgICAgcmVzdWx0ID0g ZGJ0YXNrc19pbmRleF9jaGVjayhzdGFuZGFsb25lLCB0b3BvbG9neV9zdC5sb2djYXAubG9nLCBh cmdzKQotKyAgICBhc3NlcnQgcmVzdWx0IGlzIFRydWUKLSsgICAgYXNzZXJ0IHRvcG9sb2d5X3N0 LmxvZ2NhcC5jb250YWlucygiQWxsIGNoZWNrcyBwYXNzZWQiKQotKyAgICB0b3BvbG9neV9zdC5s b2djYXAuZmx1c2goKQotKwotKyAgICBsb2cuaW5mbygiU3RhcnQgdGhlIHNlcnZlciIpCi0rICAg IHN0YW5kYWxvbmUuc3RhcnQoKQotKwotKwotK2RlZiB0ZXN0X2luZGV4X2NoZWNrX3NwZWNpZmlj X2JhY2tlbmQodG9wb2xvZ3lfc3QpOgotKyAgICAiIiJDaGVjayBpZiBkc2N0bCBpbmRleC1jaGVj ayB3b3JrcyB3aXRoIGEgc3BlY2lmaWMgYmFja2VuZAotKwotKyAgICA6aWQ6IDQwN2Q4ZmNjLTYy ZTAtNDNkZC05MGZhLTcwZTcwOTBhNWNmZAotKyAgICA6c2V0dXA6IFN0YW5kYWxvbmUgaW5zdGFu Y2UKLSsgICAgOnN0ZXBzOgotKyAgICAgICAgMS4gQ3JlYXRlIERTIGluc3RhbmNlCi0rICAgICAg ICAyLiBTdG9wIHRoZSBzZXJ2ZXIKLSsgICAgICAgIDMuIFJ1biBkc2N0bCBpbmRleC1jaGVjayB3 aXRoIHNwZWNpZmljIGJhY2tlbmQgKHVzZXJSb290KQotKyAgICAgICAgNC4gUnVuIGRzY3RsIGlu ZGV4LWNoZWNrIHdpdGggbm9uLWV4aXN0ZW50IGJhY2tlbmQKLSsgICAgICAgIDUuIFN0YXJ0IHRo ZSBzZXJ2ZXIKLSsgICAgOmV4cGVjdGVkcmVzdWx0czoKLSsgICAgICAgIDEuIFN1Y2Nlc3MKLSsg ICAgICAgIDIuIFN1Y2Nlc3MKLSsgICAgICAgIDMuIGluZGV4LWNoZWNrIHJldHVybnMgVHJ1ZSBm b3IgdXNlclJvb3QKLSsgICAgICAgIDQuIGluZGV4LWNoZWNrIHJldHVybnMgRmFsc2UgZm9yIG5v bi1leGlzdGVudCBiYWNrZW5kCi0rICAgICAgICA1LiBTdWNjZXNzCi0rICAgICIiIgotKyAgICBm cm9tIGxpYjM4OS5jbGlfY3RsLmRidGFza3MgaW1wb3J0IGRidGFza3NfaW5kZXhfY2hlY2sKLSsK LSsgICAgc3RhbmRhbG9uZSA9IHRvcG9sb2d5X3N0LnN0YW5kYWxvbmUKLSsKLSsgICAgbG9nLmlu Zm8oIlN0b3AgdGhlIHNlcnZlciIpCi0rICAgIHN0YW5kYWxvbmUuc3RvcCgpCi0rCi0rICAgIGxv Zy5pbmZvKCJSdW4gaW5kZXgtY2hlY2sgZm9yIHVzZXJSb290IGJhY2tlbmQiKQotKyAgICBhcmdz ID0gRmFrZUFyZ3MoKQotKyAgICBhcmdzLmJhY2tlbmQgPSAidXNlclJvb3QiCi0rICAgIGFyZ3Mu Zml4ID0gRmFsc2UKLSsKLSsgICAgcmVzdWx0ID0gZGJ0YXNrc19pbmRleF9jaGVjayhzdGFuZGFs b25lLCB0b3BvbG9neV9zdC5sb2djYXAubG9nLCBhcmdzKQotKyAgICBhc3NlcnQgcmVzdWx0IGlz IFRydWUKLSsgICAgIyBDaGVjayBmb3IgYmFja2VuZCBuYW1lIGluIGFueSBjYXNlCi0rICAgIGFz c2VydCB0b3BvbG9neV9zdC5sb2djYXAuY29udGFpbnMoIkNoZWNraW5nIGJhY2tlbmQ6IikKLSsg ICAgdG9wb2xvZ3lfc3QubG9nY2FwLmZsdXNoKCkKLSsKLSsgICAgbG9nLmluZm8oIlJ1biBpbmRl eC1jaGVjayBmb3Igbm9uLWV4aXN0ZW50IGJhY2tlbmQiKQotKyAgICBhcmdzLmJhY2tlbmQgPSAi bm9uRXhpc3RlbnRCYWNrZW5kIgotKyAgICByZXN1bHQgPSBkYnRhc2tzX2luZGV4X2NoZWNrKHN0 YW5kYWxvbmUsIHRvcG9sb2d5X3N0LmxvZ2NhcC5sb2csIGFyZ3MpCi0rICAgIGFzc2VydCByZXN1 bHQgaXMgRmFsc2UKLSsgICAgYXNzZXJ0IHRvcG9sb2d5X3N0LmxvZ2NhcC5jb250YWlucygibm90 IGZvdW5kIikKLSsgICAgdG9wb2xvZ3lfc3QubG9nY2FwLmZsdXNoKCkKLSsKLSsgICAgbG9nLmlu Zm8oIlN0YXJ0IHRoZSBzZXJ2ZXIiKQotKyAgICBzdGFuZGFsb25lLnN0YXJ0KCkKLSsKLSsKLStk ZWYgdGVzdF9pbmRleF9jaGVja19taXNtYXRjaF9kZXRlY3Rpb24odG9wb2xvZ3lfc3QpOgotKyAg ICAiIiJDaGVjayBpZiBkc2N0bCBpbmRleC1jaGVjayBkZXRlY3RzIG9yZGVyaW5nIG1pc21hdGNo Ci0rCi0rICAgIDppZDogNTBkMTQ1MjAtYjBiZi00MjQzLTlmZTYtYjA5NzkyOGQ0MzUxCi0rICAg IDpzZXR1cDogU3RhbmRhbG9uZSBpbnN0YW5jZQotKyAgICA6c3RlcHM6Ci0rICAgICAgICAxLiBD cmVhdGUgRFMgaW5zdGFuY2UKLSsgICAgICAgIDIuIFN0b3AgdGhlIHNlcnZlcgotKyAgICAgICAg My4gUnVuIGRzY3RsIGluZGV4LWNoZWNrICh3aXRob3V0IC0tZml4KQotKyAgICAgICAgNC4gVmVy aWZ5IG91dHB1dCBmb3JtYXQKLSsgICAgICAgIDUuIFN0YXJ0IHRoZSBzZXJ2ZXIKLSsgICAgOmV4 cGVjdGVkcmVzdWx0czoKLSsgICAgICAgIDEuIFN1Y2Nlc3MKLSsgICAgICAgIDIuIFN1Y2Nlc3MK LSsgICAgICAgIDMuIGluZGV4LWNoZWNrIHJldHVybnMgVHJ1ZSAobm8gbWlzbWF0Y2ggb24gZnJl c2ggaW5zdGFuY2UpCi0rICAgICAgICA0LiBMb2cgY29udGFpbnMgZXhwZWN0ZWQgZm9ybWF0Ci0r ICAgICAgICA1LiBTdWNjZXNzCi0rICAgICIiIgotKyAgICBmcm9tIGxpYjM4OS5jbGlfY3RsLmRi dGFza3MgaW1wb3J0IGRidGFza3NfaW5kZXhfY2hlY2sKLSsKLSsgICAgc3RhbmRhbG9uZSA9IHRv cG9sb2d5X3N0LnN0YW5kYWxvbmUKLSsKLSsgICAgbG9nLmluZm8oIlN0b3AgdGhlIHNlcnZlciIp Ci0rICAgIHN0YW5kYWxvbmUuc3RvcCgpCi0rCi0rICAgIGxvZy5pbmZvKCJSdW4gaW5kZXgtY2hl Y2sgdG8gdmVyaWZ5IGRldGVjdGlvbiBsb2dpYyIpCi0rICAgIGFyZ3MgPSBGYWtlQXJncygpCi0r ICAgIGFyZ3MuYmFja2VuZCA9ICJ1c2VyUm9vdCIKLSsgICAgYXJncy5maXggPSBGYWxzZQotKwot KyAgICAjIE9uIGEgZnJlc2ggaW5zdGFuY2UsIHRoZXJlIHNob3VsZCBiZSBubyBtaXNtYXRjaAot KyAgICByZXN1bHQgPSBkYnRhc2tzX2luZGV4X2NoZWNrKHN0YW5kYWxvbmUsIHRvcG9sb2d5X3N0 LmxvZ2NhcC5sb2csIGFyZ3MpCi0rICAgICMgRnJlc2ggaW5zdGFuY2Ugc2hvdWxkIGhhdmUgbWF0 Y2hpbmcgY29uZmlnIGFuZCBkaXNrIG9yZGVyaW5nCi0rICAgIGFzc2VydCByZXN1bHQgaXMgVHJ1 ZQotKyAgICAjIENoZWNrIHRoYXQgdGhlIGJhY2tlbmQgd2FzIGNoZWNrZWQgKG1heSBza2lwIGlu ZGV4ZXMgaWYgb3JkZXJpbmcgY2FuJ3QgYmUgZGV0ZXJtaW5lZCkKLSsgICAgYXNzZXJ0IHRvcG9s b2d5X3N0LmxvZ2NhcC5jb250YWlucygiQ2hlY2tpbmcgYmFja2VuZDoiKQotKyAgICB0b3BvbG9n eV9zdC5sb2djYXAuZmx1c2goKQotKwotKyAgICBsb2cuaW5mbygiU3RhcnQgdGhlIHNlcnZlciIp Ci0rICAgIHN0YW5kYWxvbmUuc3RhcnQoKQotKwotKwotK2RlZiB0ZXN0X2luZGV4X2NoZWNrX3dp dGhfZml4KHRvcG9sb2d5X3N0KToKLSsgICAgIiIiQ2hlY2sgaWYgZHNjdGwgaW5kZXgtY2hlY2sg LS1maXggdHJpZ2dlcnMgcmVpbmRleGluZwotKwotKyAgICA6aWQ6IDM4YWUzNmU0LWM4NjEtNDc3 MS1hZTdkLTM1NDM3MDM3NmEyZgotKyAgICA6c2V0dXA6IFN0YW5kYWxvbmUgaW5zdGFuY2UKLSsg ICAgOnN0ZXBzOgotKyAgICAgICAgMS4gQ3JlYXRlIERTIGluc3RhbmNlCi0rICAgICAgICAyLiBT dG9wIHRoZSBzZXJ2ZXIKLSsgICAgICAgIDMuIFJ1biBkc2N0bCBpbmRleC1jaGVjayAtLWZpeCAo c2hvdWxkIHBhc3Mgc2luY2Ugbm8gbWlzbWF0Y2gpCi0rICAgICAgICA0LiBWZXJpZnkgb3V0cHV0 IGluZGljYXRlcyBjaGVjayBwYXNzZWQKLSsgICAgICAgIDUuIFN0YXJ0IHRoZSBzZXJ2ZXIKLSsg ICAgOmV4cGVjdGVkcmVzdWx0czoKLSsgICAgICAgIDEuIFN1Y2Nlc3MKLSsgICAgICAgIDIuIFN1 Y2Nlc3MKLSsgICAgICAgIDMuIGluZGV4LWNoZWNrIHJldHVybnMgVHJ1ZQotKyAgICAgICAgNC4g TG9nIGNvbnRhaW5zICJBbGwgY2hlY2tzIHBhc3NlZCIKLSsgICAgICAgIDUuIFN1Y2Nlc3MKLSsg ICAgIiIiCi0rICAgIGZyb20gbGliMzg5LmNsaV9jdGwuZGJ0YXNrcyBpbXBvcnQgZGJ0YXNrc19p bmRleF9jaGVjawotKwotKyAgICBzdGFuZGFsb25lID0gdG9wb2xvZ3lfc3Quc3RhbmRhbG9uZQot KwotKyAgICBsb2cuaW5mbygiU3RvcCB0aGUgc2VydmVyIikKLSsgICAgc3RhbmRhbG9uZS5zdG9w KCkKLSsKLSsgICAgbG9nLmluZm8oIlJ1biBpbmRleC1jaGVjayB3aXRoIC0tZml4IG9wdGlvbiIp Ci0rICAgIGFyZ3MgPSBGYWtlQXJncygpCi0rICAgIGFyZ3MuYmFja2VuZCA9IE5vbmUKLSsgICAg YXJncy5maXggPSBUcnVlCi0rCi0rICAgIHJlc3VsdCA9IGRidGFza3NfaW5kZXhfY2hlY2soc3Rh bmRhbG9uZSwgdG9wb2xvZ3lfc3QubG9nY2FwLmxvZywgYXJncykKLSsgICAgIyBPbiBhIGZyZXNo IGluc3RhbmNlLCB0aGVyZSBzaG91bGQgYmUgbm8gbWlzbWF0Y2gsIHNvIG5vIHJlaW5kZXhpbmcg bmVlZGVkCi0rICAgIGFzc2VydCByZXN1bHQgaXMgVHJ1ZQotKyAgICBhc3NlcnQgdG9wb2xvZ3lf c3QubG9nY2FwLmNvbnRhaW5zKCJBbGwgY2hlY2tzIHBhc3NlZCIpCi0rICAgIHRvcG9sb2d5X3N0 LmxvZ2NhcC5mbHVzaCgpCi0rCi0rICAgIGxvZy5pbmZvKCJTdGFydCB0aGUgc2VydmVyIikKLSsg ICAgc3RhbmRhbG9uZS5zdGFydCgpCi0rCi0rCi0rZGVmIHRlc3RfaW5kZXhfY2hlY2tfZml4ZXNf c2NhbmxpbWl0KHRvcG9sb2d5X3N0KToKLSsgICAgIiIiQ2hlY2sgaWYgZHNjdGwgaW5kZXgtY2hl Y2sgLS1maXggcmVtb3ZlcyBuc0luZGV4SURMaXN0U2NhbkxpbWl0Ci0rCi0rICAgIDppZDogNGE5 YjJjN2QtOGUxZi00YjNhLTljNWQtNmU3ZjhhMGIxYzJkCi0rICAgIDpzZXR1cDogU3RhbmRhbG9u ZSBpbnN0YW5jZQotKyAgICA6c3RlcHM6Ci0rICAgICAgICAxLiBDcmVhdGUgRFMgaW5zdGFuY2UK LSsgICAgICAgIDIuIFN0b3AgdGhlIHNlcnZlcgotKyAgICAgICAgMy4gQWRkIG5zSW5kZXhJRExp c3RTY2FuTGltaXQgdG8gcGFyZW50aWQgaW5kZXggdXNpbmcgRFNFbGRpZgotKyAgICAgICAgNC4g UnVuIGRzY3RsIGluZGV4LWNoZWNrIChzaG91bGQgZGV0ZWN0IGlzc3VlKQotKyAgICAgICAgNS4g UnVuIGRzY3RsIGluZGV4LWNoZWNrIC0tZml4Ci0rICAgICAgICA2LiBWZXJpZnkgbnNJbmRleElE TGlzdFNjYW5MaW1pdCB3YXMgcmVtb3ZlZAotKyAgICAgICAgNy4gU3RhcnQgdGhlIHNlcnZlcgot KyAgICA6ZXhwZWN0ZWRyZXN1bHRzOgotKyAgICAgICAgMS4gU3VjY2VzcwotKyAgICAgICAgMi4g U3VjY2VzcwotKyAgICAgICAgMy4gU3VjY2VzcwotKyAgICAgICAgNC4gaW5kZXgtY2hlY2sgcmV0 dXJucyBGYWxzZSBhbmQgZGV0ZWN0cyBzY2FubGltaXQKLSsgICAgICAgIDUuIGluZGV4LWNoZWNr IHJldHVybnMgVHJ1ZSBhZnRlciBmaXgKLSsgICAgICAgIDYuIG5zSW5kZXhJRExpc3RTY2FuTGlt aXQgbm8gbG9uZ2VyIHByZXNlbnQKLSsgICAgICAgIDcuIFN1Y2Nlc3MKLSsgICAgIiIiCi0rICAg IGZyb20gbGliMzg5LmNsaV9jdGwuZGJ0YXNrcyBpbXBvcnQgZGJ0YXNrc19pbmRleF9jaGVjawot KyAgICBmcm9tIGxpYjM4OS5kc2VsZGlmIGltcG9ydCBEU0VsZGlmCi0rCi0rICAgIHN0YW5kYWxv bmUgPSB0b3BvbG9neV9zdC5zdGFuZGFsb25lCi0rCi0rICAgIGxvZy5pbmZvKCJTdG9wIHRoZSBz ZXJ2ZXIiKQotKyAgICBzdGFuZGFsb25lLnN0b3AoKQotKwotKyAgICBsb2cuaW5mbygiQWRkIG5z SW5kZXhJRExpc3RTY2FuTGltaXQgdG8gcGFyZW50aWQgaW5kZXggdXNpbmcgRFNFbGRpZiIpCi0r ICAgIGRzZV9sZGlmID0gRFNFbGRpZihzdGFuZGFsb25lKQotKyAgICBwYXJlbnRpZF9kbiA9ICJj bj1wYXJlbnRpZCxjbj1pbmRleCxjbj11c2VyUm9vdCxjbj1sZGJtIGRhdGFiYXNlLGNuPXBsdWdp bnMsY249Y29uZmlnIgotKyAgICBkc2VfbGRpZi5hZGQocGFyZW50aWRfZG4sICJuc0luZGV4SURM aXN0U2NhbkxpbWl0IiwgIjQwMDAiKQotKwotKyAgICAjIFZlcmlmeSBpdCB3YXMgYWRkZWQKLSsg ICAgc2NhbmxpbWl0ID0gZHNlX2xkaWYuZ2V0KHBhcmVudGlkX2RuLCAibnNJbmRleElETGlzdFNj YW5MaW1pdCIsIHNpbmdsZT1UcnVlKQotKyAgICBhc3NlcnQgc2NhbmxpbWl0ID09ICI0MDAwIiwg ZiJGYWlsZWQgdG8gYWRkIG5zSW5kZXhJRExpc3RTY2FuTGltaXQsIGdvdDoge3NjYW5saW1pdH0i Ci0rICAgIGxvZy5pbmZvKCJBZGRlZCBuc0luZGV4SURMaXN0U2NhbkxpbWl0IHRvIHBhcmVudGlk IGluZGV4IikKLSsKLSsgICAgbG9nLmluZm8oIlJ1biBpbmRleC1jaGVjayB3aXRob3V0IC0tZml4 IChzaG91bGQgZGV0ZWN0IGlzc3VlKSIpCi0rICAgIGFyZ3MgPSBGYWtlQXJncygpCi0rICAgIGFy Z3MuYmFja2VuZCA9ICJ1c2VyUm9vdCIKLSsgICAgYXJncy5maXggPSBGYWxzZQotKwotKyAgICBy ZXN1bHQgPSBkYnRhc2tzX2luZGV4X2NoZWNrKHN0YW5kYWxvbmUsIHRvcG9sb2d5X3N0LmxvZ2Nh cC5sb2csIGFyZ3MpCi0rICAgIGFzc2VydCByZXN1bHQgaXMgRmFsc2UsICJpbmRleC1jaGVjayBz aG91bGQgZGV0ZWN0IHNjYW5saW1pdCBpc3N1ZSIKLSsgICAgYXNzZXJ0IHRvcG9sb2d5X3N0Lmxv Z2NhcC5jb250YWlucygibnNJbmRleElETGlzdFNjYW5MaW1pdCIpCi0rICAgIHRvcG9sb2d5X3N0 LmxvZ2NhcC5mbHVzaCgpCi0rCi0rICAgIGxvZy5pbmZvKCJSdW4gaW5kZXgtY2hlY2sgd2l0aCAt LWZpeCIpCi0rICAgIGFyZ3MuZml4ID0gVHJ1ZQotKyAgICByZXN1bHQgPSBkYnRhc2tzX2luZGV4 X2NoZWNrKHN0YW5kYWxvbmUsIHRvcG9sb2d5X3N0LmxvZ2NhcC5sb2csIGFyZ3MpCi0rICAgIGFz c2VydCByZXN1bHQgaXMgVHJ1ZSwgImluZGV4LWNoZWNrIC0tZml4IHNob3VsZCBzdWNjZWVkIgot KyAgICBhc3NlcnQgdG9wb2xvZ3lfc3QubG9nY2FwLmNvbnRhaW5zKCJSZW1vdmVkIG5zSW5kZXhJ RExpc3RTY2FuTGltaXQiKQotKyAgICB0b3BvbG9neV9zdC5sb2djYXAuZmx1c2goKQotKwotKyAg ICBsb2cuaW5mbygiVmVyaWZ5IG5zSW5kZXhJRExpc3RTY2FuTGltaXQgd2FzIHJlbW92ZWQiKQot KyAgICBkc2VfbGRpZiA9IERTRWxkaWYoc3RhbmRhbG9uZSkgICMgUmVsb2FkIHRvIGdldCBmcmVz aCBkYXRhCi0rICAgIHNjYW5saW1pdCA9IGRzZV9sZGlmLmdldChwYXJlbnRpZF9kbiwgIm5zSW5k ZXhJRExpc3RTY2FuTGltaXQiLCBzaW5nbGU9VHJ1ZSkKLSsgICAgYXNzZXJ0IHNjYW5saW1pdCBp cyBOb25lLCBmIm5zSW5kZXhJRExpc3RTY2FuTGltaXQgc2hvdWxkIGJlIHJlbW92ZWQsIGJ1dCBn b3Q6IHtzY2FubGltaXR9IgotKyAgICBsb2cuaW5mbygibnNJbmRleElETGlzdFNjYW5MaW1pdCBz dWNjZXNzZnVsbHkgcmVtb3ZlZCIpCi0rCi0rICAgIGxvZy5pbmZvKCJTdGFydCB0aGUgc2VydmVy IikKLSsgICAgc3RhbmRhbG9uZS5zdGFydCgpCi0rCi0rCi0rZGVmIHRlc3RfaW5kZXhfY2hlY2tf Zml4ZXNfYW5jZXN0b3JpZF9jb25maWcodG9wb2xvZ3lfc3QpOgotKyAgICAiIiJDaGVjayBpZiBk c2N0bCBpbmRleC1jaGVjayAtLWZpeCByZW1vdmVzIGFuY2VzdG9yaWQgY29uZmlnIGVudHJpZXMK LSsKLSsgICAgOmlkOiA1YjBjM2Q4ZS05ZjJhLTRjNGItMGQ2ZS03ZjhhOWIxYzJkM2UKLSsgICAg OnNldHVwOiBTdGFuZGFsb25lIGluc3RhbmNlCi0rICAgIDpzdGVwczoKLSsgICAgICAgIDEuIENy ZWF0ZSBEUyBpbnN0YW5jZQotKyAgICAgICAgMi4gU3RvcCB0aGUgc2VydmVyCi0rICAgICAgICAz LiBBZGQgYW5jZXN0b3JpZCBpbmRleCBjb25maWcgZW50cnkgdXNpbmcgRFNFbGRpZgotKyAgICAg ICAgNC4gUnVuIGRzY3RsIGluZGV4LWNoZWNrIChzaG91bGQgZGV0ZWN0IGlzc3VlKQotKyAgICAg ICAgNS4gUnVuIGRzY3RsIGluZGV4LWNoZWNrIC0tZml4Ci0rICAgICAgICA2LiBWZXJpZnkgYW5j ZXN0b3JpZCBjb25maWcgZW50cnkgd2FzIHJlbW92ZWQKLSsgICAgICAgIDcuIFN0YXJ0IHRoZSBz ZXJ2ZXIKLSsgICAgOmV4cGVjdGVkcmVzdWx0czoKLSsgICAgICAgIDEuIFN1Y2Nlc3MKLSsgICAg ICAgIDIuIFN1Y2Nlc3MKLSsgICAgICAgIDMuIFN1Y2Nlc3MKLSsgICAgICAgIDQuIGluZGV4LWNo ZWNrIHJldHVybnMgRmFsc2UgYW5kIGRldGVjdHMgYW5jZXN0b3JpZCBjb25maWcKLSsgICAgICAg IDUuIGluZGV4LWNoZWNrIHJldHVybnMgVHJ1ZSBhZnRlciBmaXgKLSsgICAgICAgIDYuIGFuY2Vz dG9yaWQgY29uZmlnIGVudHJ5IG5vIGxvbmdlciBwcmVzZW50Ci0rICAgICAgICA3LiBTdWNjZXNz Ci0rICAgICIiIgotKyAgICBmcm9tIGxpYjM4OS5jbGlfY3RsLmRidGFza3MgaW1wb3J0IGRidGFz a3NfaW5kZXhfY2hlY2sKLSsgICAgZnJvbSBsaWIzODkuZHNlbGRpZiBpbXBvcnQgRFNFbGRpZgot KwotKyAgICBzdGFuZGFsb25lID0gdG9wb2xvZ3lfc3Quc3RhbmRhbG9uZQotKwotKyAgICBsb2cu aW5mbygiU3RvcCB0aGUgc2VydmVyIikKLSsgICAgc3RhbmRhbG9uZS5zdG9wKCkKLSsKLSsgICAg bG9nLmluZm8oIkFkZCBhbmNlc3RvcmlkIGluZGV4IGNvbmZpZyBlbnRyeSB1c2luZyBEU0VsZGlm IikKLSsgICAgZHNlX2xkaWYgPSBEU0VsZGlmKHN0YW5kYWxvbmUpCi0rICAgIGFuY2VzdG9yaWRf ZW50cnkgPSBbCi0rICAgICAgICAiZG46IGNuPWFuY2VzdG9yaWQsY249aW5kZXgsY249dXNlclJv b3QsY249bGRibSBkYXRhYmFzZSxjbj1wbHVnaW5zLGNuPWNvbmZpZ1xuIiwKLSsgICAgICAgICJv YmplY3RDbGFzczogdG9wXG4iLAotKyAgICAgICAgIm9iamVjdENsYXNzOiBuc0luZGV4XG4iLAot KyAgICAgICAgImNuOiBhbmNlc3RvcmlkXG4iLAotKyAgICAgICAgIm5zU3lzdGVtSW5kZXg6IHRy dWVcbiIsCi0rICAgICAgICAibnNJbmRleFR5cGU6IGVxXG4iLAotKyAgICBdCi0rICAgIGRzZV9s ZGlmLmFkZF9lbnRyeShhbmNlc3RvcmlkX2VudHJ5KQotKwotKyAgICAjIFZlcmlmeSBpdCB3YXMg YWRkZWQKLSsgICAgYW5jZXN0b3JpZF9kbiA9ICJjbj1hbmNlc3RvcmlkLGNuPWluZGV4LGNuPXVz ZXJSb290LGNuPWxkYm0gZGF0YWJhc2UsY249cGx1Z2lucyxjbj1jb25maWciCi0rICAgIGRzZV9s ZGlmID0gRFNFbGRpZihzdGFuZGFsb25lKSAgIyBSZWxvYWQKLSsgICAgY25fdmFsdWUgPSBkc2Vf bGRpZi5nZXQoYW5jZXN0b3JpZF9kbiwgImNuIiwgc2luZ2xlPVRydWUpCi0rICAgIGFzc2VydCBj bl92YWx1ZSBpcyBub3QgTm9uZSwgIkZhaWxlZCB0byBhZGQgYW5jZXN0b3JpZCBpbmRleCBjb25m aWcgZW50cnkiCi0rICAgIGxvZy5pbmZvKGYiQWRkZWQgYW5jZXN0b3JpZCBpbmRleCBlbnRyeSB3 aXRoIGNuOiB7Y25fdmFsdWV9IikKLSsKLSsgICAgbG9nLmluZm8oIlJ1biBpbmRleC1jaGVjayB3 aXRob3V0IC0tZml4IChzaG91bGQgZGV0ZWN0IGlzc3VlKSIpCi0rICAgIGFyZ3MgPSBGYWtlQXJn cygpCi0rICAgIGFyZ3MuYmFja2VuZCA9ICJ1c2VyUm9vdCIKLSsgICAgYXJncy5maXggPSBGYWxz ZQotKwotKyAgICByZXN1bHQgPSBkYnRhc2tzX2luZGV4X2NoZWNrKHN0YW5kYWxvbmUsIHRvcG9s b2d5X3N0LmxvZ2NhcC5sb2csIGFyZ3MpCi0rICAgIGFzc2VydCByZXN1bHQgaXMgRmFsc2UsICJp bmRleC1jaGVjayBzaG91bGQgZGV0ZWN0IGFuY2VzdG9yaWQgY29uZmlnIGlzc3VlIgotKyAgICBh c3NlcnQgdG9wb2xvZ3lfc3QubG9nY2FwLmNvbnRhaW5zKCJhbmNlc3RvcmlkIikgYW5kIHRvcG9s b2d5X3N0LmxvZ2NhcC5jb250YWlucygiY29uZmlnIGVudHJ5IGV4aXN0cyIpCi0rICAgIHRvcG9s b2d5X3N0LmxvZ2NhcC5mbHVzaCgpCi0rCi0rICAgIGxvZy5pbmZvKCJSdW4gaW5kZXgtY2hlY2sg d2l0aCAtLWZpeCIpCi0rICAgIGFyZ3MuZml4ID0gVHJ1ZQotKyAgICByZXN1bHQgPSBkYnRhc2tz X2luZGV4X2NoZWNrKHN0YW5kYWxvbmUsIHRvcG9sb2d5X3N0LmxvZ2NhcC5sb2csIGFyZ3MpCi0r ICAgIGFzc2VydCByZXN1bHQgaXMgVHJ1ZSwgImluZGV4LWNoZWNrIC0tZml4IHNob3VsZCBzdWNj ZWVkIgotKyAgICBhc3NlcnQgdG9wb2xvZ3lfc3QubG9nY2FwLmNvbnRhaW5zKCJSZW1vdmVkIGFu Y2VzdG9yaWQgY29uZmlnIGVudHJ5IikKLSsgICAgdG9wb2xvZ3lfc3QubG9nY2FwLmZsdXNoKCkK LSsKLSsgICAgbG9nLmluZm8oIlZlcmlmeSBhbmNlc3RvcmlkIGNvbmZpZyBlbnRyeSB3YXMgcmVt b3ZlZCIpCi0rICAgIGRzZV9sZGlmID0gRFNFbGRpZihzdGFuZGFsb25lKSAgIyBSZWxvYWQgdG8g Z2V0IGZyZXNoIGRhdGEKLSsgICAgY25fdmFsdWUgPSBkc2VfbGRpZi5nZXQoYW5jZXN0b3JpZF9k biwgImNuIiwgc2luZ2xlPVRydWUpCi0rICAgIGFzc2VydCBjbl92YWx1ZSBpcyBOb25lLCBmImFu Y2VzdG9yaWQgY29uZmlnIGVudHJ5IHNob3VsZCBiZSByZW1vdmVkLCBidXQgZ290OiB7Y25fdmFs dWV9IgotKyAgICBsb2cuaW5mbygiYW5jZXN0b3JpZCBjb25maWcgZW50cnkgc3VjY2Vzc2Z1bGx5 IHJlbW92ZWQiKQotKwotKyAgICBsb2cuaW5mbygiU3RhcnQgdGhlIHNlcnZlciIpCi0rICAgIHN0 YW5kYWxvbmUuc3RhcnQoKQotKwotKwotK2RlZiB0ZXN0X2luZGV4X2NoZWNrX2ZpeGVzX21pc3Np bmdfbWF0Y2hpbmdfcnVsZSh0b3BvbG9neV9zdCk6Ci0rICAgICIiIkNoZWNrIGlmIGRzY3RsIGlu ZGV4LWNoZWNrIC0tZml4IGFkZHMgbWlzc2luZyBpbnRlZ2VyT3JkZXJpbmdNYXRjaAotKwotKyAg ICA6aWQ6IDZjMWQ0ZTlmLTBhM2ItNGQ1Yy0xZTdmLThhOWIwYzJkM2U0ZgotKyAgICA6c2V0dXA6 IFN0YW5kYWxvbmUgaW5zdGFuY2UKLSsgICAgOnN0ZXBzOgotKyAgICAgICAgMS4gQ3JlYXRlIERT IGluc3RhbmNlCi0rICAgICAgICAyLiBTdG9wIHRoZSBzZXJ2ZXIKLSsgICAgICAgIDMuIFJlbW92 ZSBpbnRlZ2VyT3JkZXJpbmdNYXRjaCBmcm9tIHBhcmVudGlkIGluZGV4IHVzaW5nIERTRWxkaWYK LSsgICAgICAgIDQuIFJ1biBkc2N0bCBpbmRleC1jaGVjayAoc2hvdWxkIGRldGVjdCBpc3N1ZSkK LSsgICAgICAgIDUuIFJ1biBkc2N0bCBpbmRleC1jaGVjayAtLWZpeAotKyAgICAgICAgNi4gVmVy aWZ5IGludGVnZXJPcmRlcmluZ01hdGNoIHdhcyBhZGRlZCBiYWNrCi0rICAgICAgICA3LiBTdGFy dCB0aGUgc2VydmVyCi0rICAgIDpleHBlY3RlZHJlc3VsdHM6Ci0rICAgICAgICAxLiBTdWNjZXNz Ci0rICAgICAgICAyLiBTdWNjZXNzCi0rICAgICAgICAzLiBTdWNjZXNzCi0rICAgICAgICA0LiBp bmRleC1jaGVjayByZXR1cm5zIEZhbHNlIGFuZCBkZXRlY3RzIG1pc3NpbmcgbWF0Y2hpbmcgcnVs ZQotKyAgICAgICAgNS4gaW5kZXgtY2hlY2sgcmV0dXJucyBUcnVlIGFmdGVyIGZpeAotKyAgICAg ICAgNi4gaW50ZWdlck9yZGVyaW5nTWF0Y2ggaXMgcHJlc2VudAotKyAgICAgICAgNy4gU3VjY2Vz cwotKyAgICAiIiIKLSsgICAgZnJvbSBsaWIzODkuY2xpX2N0bC5kYnRhc2tzIGltcG9ydCBkYnRh c2tzX2luZGV4X2NoZWNrCi0rICAgIGZyb20gbGliMzg5LmRzZWxkaWYgaW1wb3J0IERTRWxkaWYK LSsKLSsgICAgc3RhbmRhbG9uZSA9IHRvcG9sb2d5X3N0LnN0YW5kYWxvbmUKLSsKLSsgICAgbG9n LmluZm8oIlN0b3AgdGhlIHNlcnZlciIpCi0rICAgIHN0YW5kYWxvbmUuc3RvcCgpCi0rCi0rICAg IGxvZy5pbmZvKCJSZW1vdmUgaW50ZWdlck9yZGVyaW5nTWF0Y2ggZnJvbSBwYXJlbnRpZCBpbmRl eCB1c2luZyBEU0VsZGlmIikKLSsgICAgZHNlX2xkaWYgPSBEU0VsZGlmKHN0YW5kYWxvbmUpCi0r ICAgIHBhcmVudGlkX2RuID0gImNuPXBhcmVudGlkLGNuPWluZGV4LGNuPXVzZXJSb290LGNuPWxk Ym0gZGF0YWJhc2UsY249cGx1Z2lucyxjbj1jb25maWciCi0rCi0rICAgICMgQ2hlY2sgY3VycmVu dCBtYXRjaGluZyBydWxlcwotKyAgICBtYXRjaGluZ19ydWxlcyA9IGRzZV9sZGlmLmdldChwYXJl bnRpZF9kbiwgIm5zTWF0Y2hpbmdSdWxlIikKLSsgICAgbG9nLmluZm8oZiJDdXJyZW50IG1hdGNo aW5nIHJ1bGVzOiB7bWF0Y2hpbmdfcnVsZXN9IikKLSsKLSsgICAgIyBSZW1vdmUgaW50ZWdlck9y ZGVyaW5nTWF0Y2ggaWYgcHJlc2VudAotKyAgICBpZiBtYXRjaGluZ19ydWxlczoKLSsgICAgICAg IGZvciBtciBpbiBtYXRjaGluZ19ydWxlczoKLSsgICAgICAgICAgICBpZiAiaW50ZWdlcm9yZGVy aW5nbWF0Y2giIGluIG1yLmxvd2VyKCk6Ci0rICAgICAgICAgICAgICAgIGRzZV9sZGlmLmRlbGV0 ZShwYXJlbnRpZF9kbiwgIm5zTWF0Y2hpbmdSdWxlIiwgbXIpCi0rICAgICAgICAgICAgICAgIGxv Zy5pbmZvKGYiUmVtb3ZlZCBtYXRjaGluZyBydWxlOiB7bXJ9IikKLSsKLSsgICAgIyBWZXJpZnkg aXQgd2FzIHJlbW92ZWQKLSsgICAgZHNlX2xkaWYgPSBEU0VsZGlmKHN0YW5kYWxvbmUpICAjIFJl bG9hZAotKyAgICBtYXRjaGluZ19ydWxlcyA9IGRzZV9sZGlmLmdldChwYXJlbnRpZF9kbiwgIm5z TWF0Y2hpbmdSdWxlIikKLSsgICAgaWYgbWF0Y2hpbmdfcnVsZXM6Ci0rICAgICAgICBmb3IgbXIg aW4gbWF0Y2hpbmdfcnVsZXM6Ci0rICAgICAgICAgICAgYXNzZXJ0ICJpbnRlZ2Vyb3JkZXJpbmdt YXRjaCIgbm90IGluIG1yLmxvd2VyKCksIFwKLSsgICAgICAgICAgICAgICAgZiJpbnRlZ2VyT3Jk ZXJpbmdNYXRjaCBzaG91bGQgYmUgcmVtb3ZlZCwgYnV0IGZvdW5kOiB7bXJ9IgotKyAgICBsb2cu aW5mbygiaW50ZWdlck9yZGVyaW5nTWF0Y2ggcmVtb3ZlZCBmcm9tIHBhcmVudGlkIGluZGV4IikK LSsKLSsgICAgbG9nLmluZm8oIlJ1biBpbmRleC1jaGVjayB3aXRob3V0IC0tZml4IChzaG91bGQg ZGV0ZWN0IGlzc3VlKSIpCi0rICAgIGFyZ3MgPSBGYWtlQXJncygpCi0rICAgIGFyZ3MuYmFja2Vu ZCA9ICJ1c2VyUm9vdCIKLSsgICAgYXJncy5maXggPSBGYWxzZQotKwotKyAgICByZXN1bHQgPSBk YnRhc2tzX2luZGV4X2NoZWNrKHN0YW5kYWxvbmUsIHRvcG9sb2d5X3N0LmxvZ2NhcC5sb2csIGFy Z3MpCi0rICAgIGFzc2VydCByZXN1bHQgaXMgRmFsc2UsICJpbmRleC1jaGVjayBzaG91bGQgZGV0 ZWN0IG1pc3NpbmcgbWF0Y2hpbmcgcnVsZSIKLSsgICAgYXNzZXJ0IHRvcG9sb2d5X3N0LmxvZ2Nh cC5jb250YWlucygibWlzc2luZyBpbnRlZ2VyT3JkZXJpbmdNYXRjaCIpCi0rICAgIHRvcG9sb2d5 X3N0LmxvZ2NhcC5mbHVzaCgpCi0rCi0rICAgIGxvZy5pbmZvKCJSdW4gaW5kZXgtY2hlY2sgd2l0 aCAtLWZpeCIpCi0rICAgIGFyZ3MuZml4ID0gVHJ1ZQotKyAgICByZXN1bHQgPSBkYnRhc2tzX2lu ZGV4X2NoZWNrKHN0YW5kYWxvbmUsIHRvcG9sb2d5X3N0LmxvZ2NhcC5sb2csIGFyZ3MpCi0rICAg IGFzc2VydCByZXN1bHQgaXMgVHJ1ZSwgImluZGV4LWNoZWNrIC0tZml4IHNob3VsZCBzdWNjZWVk IgotKyAgICBhc3NlcnQgdG9wb2xvZ3lfc3QubG9nY2FwLmNvbnRhaW5zKCJpbnRlZ2VyT3JkZXJp bmdNYXRjaCIpCi0rICAgIHRvcG9sb2d5X3N0LmxvZ2NhcC5mbHVzaCgpCi0rCi0rICAgIGxvZy5p bmZvKCJWZXJpZnkgaW50ZWdlck9yZGVyaW5nTWF0Y2ggd2FzIGFkZGVkIGJhY2siKQotKyAgICBk c2VfbGRpZiA9IERTRWxkaWYoc3RhbmRhbG9uZSkgICMgUmVsb2FkIHRvIGdldCBmcmVzaCBkYXRh Ci0rICAgIG1hdGNoaW5nX3J1bGVzID0gZHNlX2xkaWYuZ2V0KHBhcmVudGlkX2RuLCAibnNNYXRj aGluZ1J1bGUiKQotKyAgICBhc3NlcnQgbWF0Y2hpbmdfcnVsZXMgaXMgbm90IE5vbmUsICJuc01h dGNoaW5nUnVsZSBzaG91bGQgYmUgcHJlc2VudCIKLSsgICAgZm91bmRfaW50X29yZGVyID0gRmFs c2UKLSsgICAgZm9yIG1yIGluIG1hdGNoaW5nX3J1bGVzOgotKyAgICAgICAgaWYgImludGVnZXJv cmRlcmluZ21hdGNoIiBpbiBtci5sb3dlcigpOgotKyAgICAgICAgICAgIGZvdW5kX2ludF9vcmRl ciA9IFRydWUKLSsgICAgICAgICAgICBicmVhawotKyAgICBhc3NlcnQgZm91bmRfaW50X29yZGVy LCBmImludGVnZXJPcmRlcmluZ01hdGNoIHNob3VsZCBiZSBwcmVzZW50LCBnb3Q6IHttYXRjaGlu Z19ydWxlc30iCi0rICAgIGxvZy5pbmZvKCJpbnRlZ2VyT3JkZXJpbmdNYXRjaCBzdWNjZXNzZnVs bHkgYWRkZWQgYmFjayIpCi0rCi0rICAgIGxvZy5pbmZvKCJTdGFydCB0aGUgc2VydmVyIikKLSsg ICAgc3RhbmRhbG9uZS5zdGFydCgpCi0rCi0rCi0rZGVmIHRlc3RfaW5kZXhfY2hlY2tfZml4ZXNf ZGVmYXVsdF9hbmNlc3RvcmlkKHRvcG9sb2d5X3N0KToKLSsgICAgIiIiQ2hlY2sgaWYgZHNjdGwg aW5kZXgtY2hlY2sgLS1maXggcmVtb3ZlcyBhbmNlc3RvcmlkIGZyb20gZGVmYXVsdCBpbmRleGVz Ci0rCi0rICAgIDppZDogN2QyZTVmMGEtMWI0Yy00ZTZkLTJmOGEtOWIwYzFkM2U0ZjVhCi0rICAg IDpzZXR1cDogU3RhbmRhbG9uZSBpbnN0YW5jZQotKyAgICA6c3RlcHM6Ci0rICAgICAgICAxLiBD cmVhdGUgRFMgaW5zdGFuY2UKLSsgICAgICAgIDIuIFN0b3AgdGhlIHNlcnZlcgotKyAgICAgICAg My4gQWRkIGFuY2VzdG9yaWQgdG8gY249ZGVmYXVsdCBpbmRleGVzIHVzaW5nIERTRWxkaWYKLSsg ICAgICAgIDQuIFJ1biBkc2N0bCBpbmRleC1jaGVjayAoc2hvdWxkIGRldGVjdCBpc3N1ZSkKLSsg ICAgICAgIDUuIFJ1biBkc2N0bCBpbmRleC1jaGVjayAtLWZpeAotKyAgICAgICAgNi4gVmVyaWZ5 IGFuY2VzdG9yaWQgd2FzIHJlbW92ZWQgZnJvbSBkZWZhdWx0IGluZGV4ZXMKLSsgICAgICAgIDcu IFN0YXJ0IHRoZSBzZXJ2ZXIKLSsgICAgOmV4cGVjdGVkcmVzdWx0czoKLSsgICAgICAgIDEuIFN1 Y2Nlc3MKLSsgICAgICAgIDIuIFN1Y2Nlc3MKLSsgICAgICAgIDMuIFN1Y2Nlc3MKLSsgICAgICAg IDQuIGluZGV4LWNoZWNrIHJldHVybnMgRmFsc2UgYW5kIGRldGVjdHMgYW5jZXN0b3JpZCBpbiBk ZWZhdWx0IGluZGV4ZXMKLSsgICAgICAgIDUuIGluZGV4LWNoZWNrIHJldHVybnMgVHJ1ZSBhZnRl ciBmaXgKLSsgICAgICAgIDYuIGFuY2VzdG9yaWQgbm8gbG9uZ2VyIGluIGRlZmF1bHQgaW5kZXhl cwotKyAgICAgICAgNy4gU3VjY2VzcwotKyAgICAiIiIKLSsgICAgZnJvbSBsaWIzODkuY2xpX2N0 bC5kYnRhc2tzIGltcG9ydCBkYnRhc2tzX2luZGV4X2NoZWNrCi0rICAgIGZyb20gbGliMzg5LmRz ZWxkaWYgaW1wb3J0IERTRWxkaWYKLSsKLSsgICAgc3RhbmRhbG9uZSA9IHRvcG9sb2d5X3N0LnN0 YW5kYWxvbmUKLSsKLSsgICAgbG9nLmluZm8oIlN0b3AgdGhlIHNlcnZlciIpCi0rICAgIHN0YW5k YWxvbmUuc3RvcCgpCi0rCi0rICAgIGxvZy5pbmZvKCJBZGQgYW5jZXN0b3JpZCB0byBjbj1kZWZh dWx0IGluZGV4ZXMgdXNpbmcgRFNFbGRpZiIpCi0rICAgIGRzZV9sZGlmID0gRFNFbGRpZihzdGFu ZGFsb25lKQotKyAgICBhbmNlc3RvcmlkX2RlZmF1bHRfZW50cnkgPSBbCi0rICAgICAgICAiZG46 IGNuPWFuY2VzdG9yaWQsY249ZGVmYXVsdCBpbmRleGVzLGNuPWNvbmZpZyxjbj1sZGJtIGRhdGFi YXNlLGNuPXBsdWdpbnMsY249Y29uZmlnXG4iLAotKyAgICAgICAgIm9iamVjdENsYXNzOiB0b3Bc biIsCi0rICAgICAgICAib2JqZWN0Q2xhc3M6IG5zSW5kZXhcbiIsCi0rICAgICAgICAiY246IGFu Y2VzdG9yaWRcbiIsCi0rICAgICAgICAibnNTeXN0ZW1JbmRleDogdHJ1ZVxuIiwKLSsgICAgICAg ICJuc0luZGV4VHlwZTogZXFcbiIsCi0rICAgIF0KLSsgICAgZHNlX2xkaWYuYWRkX2VudHJ5KGFu Y2VzdG9yaWRfZGVmYXVsdF9lbnRyeSkKLSsKLSsgICAgIyBWZXJpZnkgaXQgd2FzIGFkZGVkCi0r ICAgIGFuY2VzdG9yaWRfZGVmYXVsdF9kbiA9ICJjbj1hbmNlc3RvcmlkLGNuPWRlZmF1bHQgaW5k ZXhlcyxjbj1jb25maWcsY249bGRibSBkYXRhYmFzZSxjbj1wbHVnaW5zLGNuPWNvbmZpZyIKLSsg ICAgZHNlX2xkaWYgPSBEU0VsZGlmKHN0YW5kYWxvbmUpICAjIFJlbG9hZAotKyAgICBjbl92YWx1 ZSA9IGRzZV9sZGlmLmdldChhbmNlc3RvcmlkX2RlZmF1bHRfZG4sICJjbiIsIHNpbmdsZT1UcnVl KQotKyAgICBhc3NlcnQgY25fdmFsdWUgaXMgbm90IE5vbmUsICJGYWlsZWQgdG8gYWRkIGFuY2Vz dG9yaWQgdG8gZGVmYXVsdCBpbmRleGVzIgotKyAgICBsb2cuaW5mbyhmIkFkZGVkIGFuY2VzdG9y aWQgdG8gZGVmYXVsdCBpbmRleGVzIHdpdGggY246IHtjbl92YWx1ZX0iKQotKwotKyAgICBsb2cu aW5mbygiUnVuIGluZGV4LWNoZWNrIHdpdGhvdXQgLS1maXggKHNob3VsZCBkZXRlY3QgaXNzdWUp IikKLSsgICAgYXJncyA9IEZha2VBcmdzKCkKLSsgICAgYXJncy5iYWNrZW5kID0gTm9uZSAgIyBD aGVjayBhbGwgYmFja2VuZHMgaW5jbHVkaW5nIGRlZmF1bHQgaW5kZXhlcwotKyAgICBhcmdzLmZp eCA9IEZhbHNlCi0rCi0rICAgIHJlc3VsdCA9IGRidGFza3NfaW5kZXhfY2hlY2soc3RhbmRhbG9u ZSwgdG9wb2xvZ3lfc3QubG9nY2FwLmxvZywgYXJncykKLSsgICAgYXNzZXJ0IHJlc3VsdCBpcyBG YWxzZSwgImluZGV4LWNoZWNrIHNob3VsZCBkZXRlY3QgYW5jZXN0b3JpZCBpbiBkZWZhdWx0IGlu ZGV4ZXMiCi0rICAgIGFzc2VydCB0b3BvbG9neV9zdC5sb2djYXAuY29udGFpbnMoImFuY2VzdG9y aWQgZm91bmQgaW4gY249ZGVmYXVsdCBpbmRleGVzIikKLSsgICAgdG9wb2xvZ3lfc3QubG9nY2Fw LmZsdXNoKCkKLSsKLSsgICAgbG9nLmluZm8oIlJ1biBpbmRleC1jaGVjayB3aXRoIC0tZml4IikK LSsgICAgYXJncy5maXggPSBUcnVlCi0rICAgIHJlc3VsdCA9IGRidGFza3NfaW5kZXhfY2hlY2so c3RhbmRhbG9uZSwgdG9wb2xvZ3lfc3QubG9nY2FwLmxvZywgYXJncykKLSsgICAgYXNzZXJ0IHJl c3VsdCBpcyBUcnVlLCAiaW5kZXgtY2hlY2sgLS1maXggc2hvdWxkIHN1Y2NlZWQiCi0rICAgIGFz c2VydCB0b3BvbG9neV9zdC5sb2djYXAuY29udGFpbnMoIlJlbW92ZWQgYW5jZXN0b3JpZCBmcm9t IGRlZmF1bHQgaW5kZXhlcyIpCi0rICAgIHRvcG9sb2d5X3N0LmxvZ2NhcC5mbHVzaCgpCi0rCi0r ICAgIGxvZy5pbmZvKCJWZXJpZnkgYW5jZXN0b3JpZCB3YXMgcmVtb3ZlZCBmcm9tIGRlZmF1bHQg aW5kZXhlcyIpCi0rICAgIGRzZV9sZGlmID0gRFNFbGRpZihzdGFuZGFsb25lKSAgIyBSZWxvYWQg dG8gZ2V0IGZyZXNoIGRhdGEKLSsgICAgY25fdmFsdWUgPSBkc2VfbGRpZi5nZXQoYW5jZXN0b3Jp ZF9kZWZhdWx0X2RuLCAiY24iLCBzaW5nbGU9VHJ1ZSkKLSsgICAgYXNzZXJ0IGNuX3ZhbHVlIGlz IE5vbmUsIGYiYW5jZXN0b3JpZCBzaG91bGQgYmUgcmVtb3ZlZCBmcm9tIGRlZmF1bHQgaW5kZXhl cywgYnV0IGdvdDoge2NuX3ZhbHVlfSIKLSsgICAgbG9nLmluZm8oImFuY2VzdG9yaWQgc3VjY2Vz c2Z1bGx5IHJlbW92ZWQgZnJvbSBkZWZhdWx0IGluZGV4ZXMiKQotKwotKyAgICBsb2cuaW5mbygi U3RhcnQgdGhlIHNlcnZlciIpCi0rICAgIHN0YW5kYWxvbmUuc3RhcnQoKQotKwotKwotK2RlZiB0 ZXN0X2luZGV4X2NoZWNrX2ZpeGVzX211bHRpcGxlX2lzc3Vlcyh0b3BvbG9neV9zdCk6Ci0rICAg ICIiIkNoZWNrIGlmIGRzY3RsIGluZGV4LWNoZWNrIC0tZml4IGhhbmRsZXMgbXVsdGlwbGUgaXNz dWVzIGF0IG9uY2UKLSsKLSsgICAgOmlkOiA4ZTNmNmExYi0yYzVkLTRmN2UtM2E5Yi0wYzFkMmU0 ZjVhNmIKLSsgICAgOnNldHVwOiBTdGFuZGFsb25lIGluc3RhbmNlCi0rICAgIDpzdGVwczoKLSsg ICAgICAgIDEuIENyZWF0ZSBEUyBpbnN0YW5jZQotKyAgICAgICAgMi4gU3RvcCB0aGUgc2VydmVy Ci0rICAgICAgICAzLiBBZGQgbXVsdGlwbGUgaXNzdWVzOiBzY2FubGltaXQsIGFuY2VzdG9yaWQg Y29uZmlnLCBtaXNzaW5nIG1hdGNoaW5nIHJ1bGUKLSsgICAgICAgIDQuIFJ1biBkc2N0bCBpbmRl eC1jaGVjayAoc2hvdWxkIGRldGVjdCBhbGwgaXNzdWVzKQotKyAgICAgICAgNS4gUnVuIGRzY3Rs IGluZGV4LWNoZWNrIC0tZml4Ci0rICAgICAgICA2LiBWZXJpZnkgYWxsIGlzc3VlcyB3ZXJlIGZp eGVkCi0rICAgICAgICA3LiBSdW4gZHNjdGwgaW5kZXgtY2hlY2sgYWdhaW4gKHNob3VsZCBwYXNz KQotKyAgICAgICAgOC4gU3RhcnQgdGhlIHNlcnZlcgotKyAgICA6ZXhwZWN0ZWRyZXN1bHRzOgot KyAgICAgICAgMS4gU3VjY2VzcwotKyAgICAgICAgMi4gU3VjY2VzcwotKyAgICAgICAgMy4gU3Vj Y2VzcwotKyAgICAgICAgNC4gaW5kZXgtY2hlY2sgcmV0dXJucyBGYWxzZSBhbmQgZGV0ZWN0cyBh bGwgaXNzdWVzCi0rICAgICAgICA1LiBpbmRleC1jaGVjayByZXR1cm5zIFRydWUgYWZ0ZXIgZml4 Ci0rICAgICAgICA2LiBBbGwgaXNzdWVzIHJlc29sdmVkCi0rICAgICAgICA3LiBpbmRleC1jaGVj ayByZXR1cm5zIFRydWUgKG5vIGlzc3VlcykKLSsgICAgICAgIDguIFN1Y2Nlc3MKLSsgICAgIiIi Ci0rICAgIGZyb20gbGliMzg5LmNsaV9jdGwuZGJ0YXNrcyBpbXBvcnQgZGJ0YXNrc19pbmRleF9j aGVjawotKyAgICBmcm9tIGxpYjM4OS5kc2VsZGlmIGltcG9ydCBEU0VsZGlmCi0rCi0rICAgIHN0 YW5kYWxvbmUgPSB0b3BvbG9neV9zdC5zdGFuZGFsb25lCi0rCi0rICAgIGxvZy5pbmZvKCJTdG9w IHRoZSBzZXJ2ZXIiKQotKyAgICBzdGFuZGFsb25lLnN0b3AoKQotKwotKyAgICBkc2VfbGRpZiA9 IERTRWxkaWYoc3RhbmRhbG9uZSkKLSsgICAgcGFyZW50aWRfZG4gPSAiY249cGFyZW50aWQsY249 aW5kZXgsY249dXNlclJvb3QsY249bGRibSBkYXRhYmFzZSxjbj1wbHVnaW5zLGNuPWNvbmZpZyIK LSsgICAgYW5jZXN0b3JpZF9kbiA9ICJjbj1hbmNlc3RvcmlkLGNuPWluZGV4LGNuPXVzZXJSb290 LGNuPWxkYm0gZGF0YWJhc2UsY249cGx1Z2lucyxjbj1jb25maWciCi0rCi0rICAgIGxvZy5pbmZv KCJBZGQgaXNzdWUgMTogbnNJbmRleElETGlzdFNjYW5MaW1pdCB0byBwYXJlbnRpZCIpCi0rICAg IGRzZV9sZGlmLmFkZChwYXJlbnRpZF9kbiwgIm5zSW5kZXhJRExpc3RTY2FuTGltaXQiLCAiNDAw MCIpCi0rCi0rICAgIGxvZy5pbmZvKCJBZGQgaXNzdWUgMjogYW5jZXN0b3JpZCBpbmRleCBjb25m aWcgZW50cnkiKQotKyAgICBhbmNlc3RvcmlkX2VudHJ5ID0gWwotKyAgICAgICAgZiJkbjoge2Fu Y2VzdG9yaWRfZG59XG4iLAotKyAgICAgICAgIm9iamVjdENsYXNzOiB0b3BcbiIsCi0rICAgICAg ICAib2JqZWN0Q2xhc3M6IG5zSW5kZXhcbiIsCi0rICAgICAgICAiY246IGFuY2VzdG9yaWRcbiIs Ci0rICAgICAgICAibnNTeXN0ZW1JbmRleDogdHJ1ZVxuIiwKLSsgICAgICAgICJuc0luZGV4VHlw ZTogZXFcbiIsCi0rICAgIF0KLSsgICAgZHNlX2xkaWYuYWRkX2VudHJ5KGFuY2VzdG9yaWRfZW50 cnkpCi0rCi0rICAgIGxvZy5pbmZvKCJBZGQgaXNzdWUgMzogUmVtb3ZlIGludGVnZXJPcmRlcmlu Z01hdGNoIGZyb20gcGFyZW50aWQiKQotKyAgICBkc2VfbGRpZiA9IERTRWxkaWYoc3RhbmRhbG9u ZSkgICMgUmVsb2FkCi0rICAgIG1hdGNoaW5nX3J1bGVzID0gZHNlX2xkaWYuZ2V0KHBhcmVudGlk X2RuLCAibnNNYXRjaGluZ1J1bGUiKQotKyAgICBpZiBtYXRjaGluZ19ydWxlczoKLSsgICAgICAg IGZvciBtciBpbiBtYXRjaGluZ19ydWxlczoKLSsgICAgICAgICAgICBpZiAiaW50ZWdlcm9yZGVy aW5nbWF0Y2giIGluIG1yLmxvd2VyKCk6Ci0rICAgICAgICAgICAgICAgIGRzZV9sZGlmLmRlbGV0 ZShwYXJlbnRpZF9kbiwgIm5zTWF0Y2hpbmdSdWxlIiwgbXIpCi0rCi0rICAgIGxvZy5pbmZvKCJS dW4gaW5kZXgtY2hlY2sgd2l0aG91dCAtLWZpeCAoc2hvdWxkIGRldGVjdCBhbGwgaXNzdWVzKSIp Ci0rICAgIGFyZ3MgPSBGYWtlQXJncygpCi0rICAgIGFyZ3MuYmFja2VuZCA9ICJ1c2VyUm9vdCIK LSsgICAgYXJncy5maXggPSBGYWxzZQotKwotKyAgICByZXN1bHQgPSBkYnRhc2tzX2luZGV4X2No ZWNrKHN0YW5kYWxvbmUsIHRvcG9sb2d5X3N0LmxvZ2NhcC5sb2csIGFyZ3MpCi0rICAgIGFzc2Vy dCByZXN1bHQgaXMgRmFsc2UsICJpbmRleC1jaGVjayBzaG91bGQgZGV0ZWN0IG11bHRpcGxlIGlz c3VlcyIKLSsgICAgIyBDaGVjayB0aGF0IG11bHRpcGxlIGlzc3VlcyB3ZXJlIGRldGVjdGVkCi0r ICAgIGFzc2VydCB0b3BvbG9neV9zdC5sb2djYXAuY29udGFpbnMoIm5zSW5kZXhJRExpc3RTY2Fu TGltaXQiKQotKyAgICBhc3NlcnQgdG9wb2xvZ3lfc3QubG9nY2FwLmNvbnRhaW5zKCJhbmNlc3Rv cmlkIikKLSsgICAgdG9wb2xvZ3lfc3QubG9nY2FwLmZsdXNoKCkKLSsKLSsgICAgbG9nLmluZm8o IlJ1biBpbmRleC1jaGVjayB3aXRoIC0tZml4IikKLSsgICAgYXJncy5maXggPSBUcnVlCi0rICAg IHJlc3VsdCA9IGRidGFza3NfaW5kZXhfY2hlY2soc3RhbmRhbG9uZSwgdG9wb2xvZ3lfc3QubG9n Y2FwLmxvZywgYXJncykKLSsgICAgYXNzZXJ0IHJlc3VsdCBpcyBUcnVlLCAiaW5kZXgtY2hlY2sg LS1maXggc2hvdWxkIHN1Y2NlZWQiCi0rICAgIGFzc2VydCB0b3BvbG9neV9zdC5sb2djYXAuY29u dGFpbnMoIkFsbCBpc3N1ZXMgZml4ZWQiKQotKyAgICB0b3BvbG9neV9zdC5sb2djYXAuZmx1c2go KQotKwotKyAgICBsb2cuaW5mbygiVmVyaWZ5IGFsbCBpc3N1ZXMgd2VyZSBmaXhlZCIpCi0rICAg IGRzZV9sZGlmID0gRFNFbGRpZihzdGFuZGFsb25lKSAgIyBSZWxvYWQKLSsKLSsgICAgIyBDaGVj ayBzY2FubGltaXQgcmVtb3ZlZAotKyAgICBzY2FubGltaXQgPSBkc2VfbGRpZi5nZXQocGFyZW50 aWRfZG4sICJuc0luZGV4SURMaXN0U2NhbkxpbWl0Iiwgc2luZ2xlPVRydWUpCi0rICAgIGFzc2Vy dCBzY2FubGltaXQgaXMgTm9uZSwgZiJuc0luZGV4SURMaXN0U2NhbkxpbWl0IHNob3VsZCBiZSBy ZW1vdmVkLCBnb3Q6IHtzY2FubGltaXR9IgotKwotKyAgICAjIENoZWNrIGFuY2VzdG9yaWQgY29u ZmlnIHJlbW92ZWQKLSsgICAgY25fdmFsdWUgPSBkc2VfbGRpZi5nZXQoYW5jZXN0b3JpZF9kbiwg ImNuIiwgc2luZ2xlPVRydWUpCi0rICAgIGFzc2VydCBjbl92YWx1ZSBpcyBOb25lLCBmImFuY2Vz dG9yaWQgY29uZmlnIHNob3VsZCBiZSByZW1vdmVkLCBnb3Q6IHtjbl92YWx1ZX0iCi0rCi0rICAg ICMgQ2hlY2sgbWF0Y2hpbmcgcnVsZSBhZGRlZCBiYWNrCi0rICAgIG1hdGNoaW5nX3J1bGVzID0g ZHNlX2xkaWYuZ2V0KHBhcmVudGlkX2RuLCAibnNNYXRjaGluZ1J1bGUiKQotKyAgICBmb3VuZF9p bnRfb3JkZXIgPSBGYWxzZQotKyAgICBpZiBtYXRjaGluZ19ydWxlczoKLSsgICAgICAgIGZvciBt ciBpbiBtYXRjaGluZ19ydWxlczoKLSsgICAgICAgICAgICBpZiAiaW50ZWdlcm9yZGVyaW5nbWF0 Y2giIGluIG1yLmxvd2VyKCk6Ci0rICAgICAgICAgICAgICAgIGZvdW5kX2ludF9vcmRlciA9IFRy dWUKLSsgICAgICAgICAgICAgICAgYnJlYWsKLSsgICAgYXNzZXJ0IGZvdW5kX2ludF9vcmRlciwg ZiJpbnRlZ2VyT3JkZXJpbmdNYXRjaCBzaG91bGQgYmUgcHJlc2VudCwgZ290OiB7bWF0Y2hpbmdf cnVsZXN9IgotKwotKyAgICBsb2cuaW5mbygiQWxsIGlzc3VlcyB2ZXJpZmllZCBhcyBmaXhlZCIp Ci0rCi0rICAgIGxvZy5pbmZvKCJSdW4gaW5kZXgtY2hlY2sgYWdhaW4gdG8gY29uZmlybSBhbGwg Y2xlYXIiKQotKyAgICBhcmdzLmZpeCA9IEZhbHNlCi0rICAgIHJlc3VsdCA9IGRidGFza3NfaW5k ZXhfY2hlY2soc3RhbmRhbG9uZSwgdG9wb2xvZ3lfc3QubG9nY2FwLmxvZywgYXJncykKLSsgICAg YXNzZXJ0IHJlc3VsdCBpcyBUcnVlLCAiaW5kZXgtY2hlY2sgc2hvdWxkIHBhc3MgYWZ0ZXIgZml4 IgotKyAgICBhc3NlcnQgdG9wb2xvZ3lfc3QubG9nY2FwLmNvbnRhaW5zKCJBbGwgY2hlY2tzIHBh c3NlZCIpCi0rICAgIHRvcG9sb2d5X3N0LmxvZ2NhcC5mbHVzaCgpCi0rCi0rICAgIGxvZy5pbmZv KCJTdGFydCB0aGUgc2VydmVyIikKLSsgICAgc3RhbmRhbG9uZS5zdGFydCgpCi0rCi0rCi0gaWYg X19uYW1lX18gPT0gIl9fbWFpbl9fIjoKLSAgICAgIyBSdW4gaXNvbGF0ZWQKLSAgICAgIyAtcyBm b3IgREVCVUcgbW9kZQotZGlmZiAtLWdpdCBhL3JwbS8zODktZHMtYmFzZS5zcGVjLmluIGIvcnBt LzM4OS1kcy1iYXNlLnNwZWMuaW4KLWluZGV4IGRjOGM3NWRhYy4uMGUwZTI4Mjg1IDEwMDY0NAot LS0tIGEvcnBtLzM4OS1kcy1iYXNlLnNwZWMuaW4KLSsrKyBiL3JwbS8zODktZHMtYmFzZS5zcGVj LmluCi1AQCAtNjI4LDQyICs2MjgsNDUgQEAgaWYgISBnZXRlbnQgcGFzc3dkICRVU0VSTkFNRSA+ L2Rldi9udWxsIDsgdGhlbgotIGZpCi0gCi0gIyBSZWxvYWQgb3VyIHN5c2N0bCBiZWZvcmUgd2Ug cmVzdGFydCAoaWYgd2UgY2FuKQotLXN5c2N0bCAtLXN5c3RlbSAmPiAkb3V0cHV0OyB0cnVlCi0r c3lzY3RsIC0tc3lzdGVtICY+ICIkb3V0cHV0IjsgdHJ1ZQotIAotLSMgR2F0aGVyIHRoZSBydW5u aW5nIGluc3RhbmNlcyBzbyB3ZSBjYW4gcmVzdGFydCB0aGVtCi0rIyBHYXRoZXIgcnVubmluZyBp bnN0YW5jZXMsIHN0b3AgdGhlbSwgcnVuIGluZGV4LWNoZWNrLCB0aGVuIHJlc3RhcnQKLSBpbnN0 YmFzZT0iJXtfc3lzY29uZmRpcn0vJXtwa2duYW1lfSIKLStpbnN0YW5jZXM9IiIKLSBuaW5zdD0w Ci0tZm9yIGRpciBpbiAkaW5zdGJhc2Uvc2xhcGQtKiA7IGRvCi0tICAgIGVjaG8gZGlyID0gJGRp ciA+PiAkb3V0cHV0IDI+JjEgfHwgOgotKwotK2ZvciBkaXIgaW4gIiRpbnN0YmFzZSIvc2xhcGQt KiA7IGRvCi0rICAgIGVjaG8gImRpciA9ICRkaXIiID4+ICIkb3V0cHV0IiAyPiYxIHx8IDoKLSAg ICAgaWYgWyAhIC1kICIkZGlyIiBdIDsgdGhlbiBjb250aW51ZSA7IGZpCi0gICAgIGNhc2UgIiRk aXIiIGluICoucmVtb3ZlZCkgY29udGludWUgOzsgZXNhYwotLSAgICBiYXNlbmFtZT1gYmFzZW5h bWUgJGRpcmAKLS0gICAgaW5zdD0iJXtwa2duYW1lfUBgZWNobyAkYmFzZW5hbWUgfCBzZWQgLWUg J3Mvc2xhcGQtLy9nJ2AiCi0tICAgIGVjaG8gZm91bmQgaW5zdGFuY2UgJGluc3QgLSBnZXR0aW5n IHN0YXR1cyAgPj4gJG91dHB1dCAyPiYxIHx8IDoKLS0gICAgaWYgL2Jpbi9zeXN0ZW1jdGwgLXEg aXMtYWN0aXZlICRpbnN0IDsgdGhlbgotLSAgICAgICBlY2hvIGluc3RhbmNlICRpbnN0IGlzIHJ1 bm5pbmcgPj4gJG91dHB1dCAyPiYxIHx8IDoKLSsgICAgYmFzZW5hbWU9JChiYXNlbmFtZSAiJGRp ciIpCi0rICAgIGluc3Q9IiV7cGtnbmFtZX1AJHtiYXNlbmFtZSNzbGFwZC19IgotKyAgICBpbnN0 X25hbWU9IiR7YmFzZW5hbWUjc2xhcGQtfSIKLSsgICAgZWNobyAiZm91bmQgaW5zdGFuY2UgJGlu c3QgLSBnZXR0aW5nIHN0YXR1cyIgPj4gIiRvdXRwdXQiIDI+JjEgfHwgOgotKyAgICBpZiAvYmlu L3N5c3RlbWN0bCAtcSBpcy1hY3RpdmUgIiRpbnN0IiA7IHRoZW4KLSsgICAgICAgZWNobyAiaW5z dGFuY2UgJGluc3QgaXMgcnVubmluZyAtIHN0b3BwaW5nIGZvciB1cGdyYWRlIiA+PiAiJG91dHB1 dCIgMj4mMSB8fCA6Ci0gICAgICAgIGluc3RhbmNlcz0iJGluc3RhbmNlcyAkaW5zdCIKLSsgICAg ICAgL2Jpbi9zeXN0ZW1jdGwgc3RvcCAiJGluc3QiID4+ICIkb3V0cHV0IiAyPiYxIHx8IDoKLSAg ICAgZWxzZQotLSAgICAgICBlY2hvIGluc3RhbmNlICRpbnN0IGlzIG5vdCBydW5uaW5nID4+ICRv dXRwdXQgMj4mMSB8fCA6Ci0rICAgICAgIGVjaG8gImluc3RhbmNlICRpbnN0IGlzIG5vdCBydW5u aW5nIiA+PiAiJG91dHB1dCIgMj4mMSB8fCA6Ci0gICAgIGZpCi0tICAgIG5pbnN0PWBleHByICRu aW5zdCArIDFgCi0rICAgICMgUnVuIGluZGV4LWNoZWNrIG9uIGFsbCBpbnN0YW5jZXMgKHJ1bm5p bmcgb3Igbm90KQotKyAgICAjIFRoaXMgZml4ZXMgaW5kZXggb3JkZXJpbmcgbWlzbWF0Y2hlcyBm cm9tIG9sZGVyIHZlcnNpb25zCi0rICAgIGRzY3RsICIkaW5zdF9uYW1lIiBpbmRleC1jaGVjayAt LWZpeCA+PiAiJG91dHB1dDIiIDI+JjEgfHwgOgotKyAgICBuaW5zdD0kKChuaW5zdCArIDEpKQot IGRvbmUKLSsKLSBpZiBbICRuaW5zdCAtZXEgMCBdIDsgdGhlbgotLSAgICBlY2hvIG5vIGluc3Rh bmNlcyB0byB1cGdyYWRlID4+ICRvdXRwdXQgMj4mMSB8fCA6Ci0tICAgIGV4aXQgMCAjIGhhdmUg bm8gaW5zdGFuY2VzIHRvIHVwZ3JhZGUgLSBqdXN0IHNraXAgdGhlIHJlc3QKLS1lbHNlCi0tICAg ICMgcmVzdGFydCBydW5uaW5nIGluc3RhbmNlcwotLSAgICBlY2hvIHNodXR0aW5nIGRvd24gYWxs IGluc3RhbmNlcyAuIC4gLiA+PiAkb3V0cHV0IDI+JjEgfHwgOgotLSAgICBmb3IgaW5zdCBpbiAk aW5zdGFuY2VzIDsgZG8KLS0gICAgICAgIGVjaG8gc3RvcHBpbmcgaW5zdGFuY2UgJGluc3QgPj4g JG91dHB1dCAyPiYxIHx8IDoKLS0gICAgICAgIC9iaW4vc3lzdGVtY3RsIHN0b3AgJGluc3QgPj4g JG91dHB1dCAyPiYxIHx8IDoKLS0gICAgZG9uZQotLSAgICBmb3IgaW5zdCBpbiAkaW5zdGFuY2Vz IDsgZG8KLS0gICAgICAgIGVjaG8gc3RhcnRpbmcgaW5zdGFuY2UgJGluc3QgPj4gJG91dHB1dCAy PiYxIHx8IDoKLS0gICAgICAgIC9iaW4vc3lzdGVtY3RsIHN0YXJ0ICRpbnN0ID4+ICRvdXRwdXQg Mj4mMSB8fCA6Ci0tICAgIGRvbmUKLSsgICAgZWNobyAibm8gaW5zdGFuY2VzIHRvIHVwZ3JhZGUi ID4+ICIkb3V0cHV0IiAyPiYxIHx8IDoKLSsgICAgZXhpdCAwCi0gZmkKLSAKLSsjIFJlc3RhcnQg cHJldmlvdXNseSBydW5uaW5nIGluc3RhbmNlcwotK2ZvciBpbnN0IGluICRpbnN0YW5jZXMgOyBk bwotKyAgICBlY2hvICJzdGFydGluZyBpbnN0YW5jZSAkaW5zdCIgPj4gIiRvdXRwdXQiIDI+JjEg fHwgOgotKyAgICAvYmluL3N5c3RlbWN0bCBzdGFydCAiJGluc3QiID4+ICIkb3V0cHV0IiAyPiYx IHx8IDoKLStkb25lCi0rCi0gCi0gJXByZXVuCi0gaWYgWyAkMSAtZXEgMCBdOyB0aGVuICMgRmlu YWwgcmVtb3ZhbAotZGlmZiAtLWdpdCBhL3NyYy9saWIzODkvbGliMzg5L2NsaV9jdGwvZGJ0YXNr cy5weSBiL3NyYy9saWIzODkvbGliMzg5L2NsaV9jdGwvZGJ0YXNrcy5weQotaW5kZXggODU2NjM5 NjcyLi4xNmRhOTY2ZDEgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliMzg5L2xpYjM4OS9jbGlfY3RsL2Ri dGFza3MucHkKLSsrKyBiL3NyYy9saWIzODkvbGliMzg5L2NsaV9jdGwvZGJ0YXNrcy5weQotQEAg LTcsMTIgKzcsMjQgQEAKLSAjIFNlZSBMSUNFTlNFIGZvciBkZXRhaWxzLgotICMgLS0tIEVORCBD T1BZUklHSFQgQkxPQ0sgLS0tCi0gCi0raW1wb3J0IGdsb2IKLSBpbXBvcnQgb3MKLStpbXBvcnQg cmUKLStpbXBvcnQgc3VicHJvY2VzcwotK2Zyb20gZW51bSBpbXBvcnQgRW51bQotIGZyb20gbGli Mzg5Ll9jb25zdGFudHMgaW1wb3J0IFRhc2tXYXJuaW5nCi0gZnJvbSBsaWIzODkuY2xpX2Jhc2Ug aW1wb3J0IEN1c3RvbUhlbHBGb3JtYXR0ZXIKLStmcm9tIGxpYjM4OS5kc2VsZGlmIGltcG9ydCBE U0VsZGlmCi0gZnJvbSBwYXRobGliIGltcG9ydCBQYXRoCi0gCi0gCi0rY2xhc3MgSW5kZXhPcmRl cmluZyhFbnVtKToKLSsgICAgIiIiUmVwcmVzZW50cyB0aGUgb3JkZXJpbmcgdHlwZSBvZiBhbiBp bmRleC4iIiIKLSsgICAgSU5URUdFUiA9ICJpbnRlZ2VyIgotKyAgICBMRVhJQ09HUkFQSElDID0g ImxleGljb2dyYXBoaWMiCi0rICAgIFVOS05PV04gPSAidW5rbm93biIKLSsKLSsKLSBkZWYgZGJ0 YXNrc19kYjJpbmRleChpbnN0LCBsb2csIGFyZ3MpOgotICAgICBydG4gPSBGYWxzZQotICAgICBp ZiBub3QgYXJncy5iYWNrZW5kOgotQEAgLTEyNiw2ICsxMzgsMzg3IEBAIGRlZiBkYnRhc2tzX3Zl cmlmeShpbnN0LCBsb2csIGFyZ3MpOgotICAgICAgICAgbG9nLmluZm8oImRidmVyaWZ5IHN1Y2Nl c3NmdWwiKQotIAotIAotK2RlZiBfZ2V0X2RiX2Rpcihkc2VfbGRpZik6Ci0rICAgICIiIkdldCB0 aGUgZGF0YWJhc2UgZGlyZWN0b3J5LgotKwotKyAgICBBcmdzOgotKyAgICAgICAgZHNlX2xkaWY6 IERTRWxkaWYgaW5zdGFuY2UuCi0rCi0rICAgIFJldHVybnM6Ci0rICAgICAgICBQYXRoIHRvIHRo ZSBkYXRhYmFzZSBkaXJlY3RvcnksIG9yIE5vbmUgaWYgbm90IGZvdW5kLgotKyAgICAiIiIKLSsg ICAgdHJ5OgotKyAgICAgICAgZGJfZGlyID0gZHNlX2xkaWYuZ2V0KAotKyAgICAgICAgICAgICJj bj1jb25maWcsY249bGRibSBkYXRhYmFzZSxjbj1wbHVnaW5zLGNuPWNvbmZpZyIsCi0rICAgICAg ICAgICAgIm5zc2xhcGQtZGlyZWN0b3J5IiwKLSsgICAgICAgICAgICBzaW5nbGU9VHJ1ZSwKLSsg ICAgICAgICkKLSsgICAgICAgIHJldHVybiBkYl9kaXIKLSsgICAgZXhjZXB0IChWYWx1ZUVycm9y LCBUeXBlRXJyb3IpOgotKyAgICAgICAgcGFzcwotKyAgICByZXR1cm4gTm9uZQotKwotKwotKwot K2RlZiBfaGFzX2ludGVnZXJfb3JkZXJpbmdfbWF0Y2goZHNlX2xkaWYsIGJhY2tlbmQsIGluZGV4 X25hbWUpOgotKyAgICAiIiJDaGVjayBpZiBhbiBpbmRleCBoYXMgaW50ZWdlck9yZGVyaW5nTWF0 Y2ggY29uZmlndXJlZCBpbiBEU0UuCi0rCi0rICAgIEFyZ3M6Ci0rICAgICAgICBkc2VfbGRpZjog RFNFbGRpZiBpbnN0YW5jZS4KLSsgICAgICAgIGJhY2tlbmQ6IEJhY2tlbmQgbmFtZS4KLSsgICAg ICAgIGluZGV4X25hbWU6IE5hbWUgb2YgdGhlIGluZGV4IHRvIGNoZWNrLgotKwotKyAgICBSZXR1 cm5zOgotKyAgICAgICAgVHJ1ZSBpZiBpbnRlZ2VyT3JkZXJpbmdNYXRjaCBpcyBjb25maWd1cmVk LCBGYWxzZSBvdGhlcndpc2UuCi0rICAgICIiIgotKyAgICBpbmRleF9kbiA9ICJjbj17fSxjbj1p bmRleCxjbj17fSxjbj1sZGJtIGRhdGFiYXNlLGNuPXBsdWdpbnMsY249Y29uZmlnIi5mb3JtYXQo Ci0rICAgICAgICBpbmRleF9uYW1lLCBiYWNrZW5kCi0rICAgICkKLSsgICAgbWF0Y2hpbmdfcnVs ZXMgPSBkc2VfbGRpZi5nZXQoaW5kZXhfZG4sICJuc01hdGNoaW5nUnVsZSIsIGxvd2VyPVRydWUp Ci0rICAgIGlmIG1hdGNoaW5nX3J1bGVzOgotKyAgICAgICAgcmV0dXJuIGFueShtci5sb3dlcigp ID09ICJpbnRlZ2Vyb3JkZXJpbmdtYXRjaCIgZm9yIG1yIGluIG1hdGNoaW5nX3J1bGVzKQotKyAg ICByZXR1cm4gRmFsc2UKLSsKLSsKLStkZWYgX2hhc19pbmRleF9zY2FuX2xpbWl0KGRzZV9sZGlm LCBiYWNrZW5kLCBpbmRleF9uYW1lKToKLSsgICAgIiIiQ2hlY2sgaWYgYW4gaW5kZXggaGFzIG5z SW5kZXhJRExpc3RTY2FuTGltaXQgY29uZmlndXJlZC4KLSsKLSsgICAgQXJnczoKLSsgICAgICAg IGRzZV9sZGlmOiBEU0VsZGlmIGluc3RhbmNlLgotKyAgICAgICAgYmFja2VuZDogQmFja2VuZCBu YW1lLgotKyAgICAgICAgaW5kZXhfbmFtZTogTmFtZSBvZiB0aGUgaW5kZXggdG8gY2hlY2suCi0r Ci0rICAgIFJldHVybnM6Ci0rICAgICAgICBUcnVlIGlmIG5zSW5kZXhJRExpc3RTY2FuTGltaXQg aXMgY29uZmlndXJlZCwgRmFsc2Ugb3RoZXJ3aXNlLgotKyAgICAiIiIKLSsgICAgaW5kZXhfZG4g PSAiY249e30sY249aW5kZXgsY249e30sY249bGRibSBkYXRhYmFzZSxjbj1wbHVnaW5zLGNuPWNv bmZpZyIuZm9ybWF0KAotKyAgICAgICAgaW5kZXhfbmFtZSwgYmFja2VuZAotKyAgICApCi0rICAg IHNjYW5fbGltaXQgPSBkc2VfbGRpZi5nZXQoaW5kZXhfZG4sICJuc0luZGV4SURMaXN0U2Nhbkxp bWl0IikKLSsgICAgcmV0dXJuIHNjYW5fbGltaXQgaXMgbm90IE5vbmUKLSsKLSsKLStkZWYgX2lu ZGV4X2NvbmZpZ19leGlzdHMoZHNlX2xkaWYsIGJhY2tlbmQsIGluZGV4X25hbWUpOgotKyAgICAi IiJDaGVjayBpZiBhbiBpbmRleCBjb25maWd1cmF0aW9uIGVudHJ5IGV4aXN0cyBpbiBEU0UuCi0r Ci0rICAgIEFyZ3M6Ci0rICAgICAgICBkc2VfbGRpZjogRFNFbGRpZiBpbnN0YW5jZS4KLSsgICAg ICAgIGJhY2tlbmQ6IEJhY2tlbmQgbmFtZS4KLSsgICAgICAgIGluZGV4X25hbWU6IE5hbWUgb2Yg dGhlIGluZGV4IHRvIGNoZWNrLgotKwotKyAgICBSZXR1cm5zOgotKyAgICAgICAgVHJ1ZSBpZiB0 aGUgaW5kZXggY29uZmlnIGVudHJ5IGV4aXN0cywgRmFsc2Ugb3RoZXJ3aXNlLgotKyAgICAiIiIK LSsgICAgaW5kZXhfZG4gPSAiY249e30sY249aW5kZXgsY249e30sY249bGRibSBkYXRhYmFzZSxj bj1wbHVnaW5zLGNuPWNvbmZpZyIuZm9ybWF0KAotKyAgICAgICAgaW5kZXhfbmFtZSwgYmFja2Vu ZAotKyAgICApCi0rICAgIHRyeToKLSsgICAgICAgIGNuID0gZHNlX2xkaWYuZ2V0KGluZGV4X2Ru LCAiY24iKQotKyAgICAgICAgcmV0dXJuIGNuIGlzIG5vdCBOb25lCi0rICAgIGV4Y2VwdCAoVmFs dWVFcnJvciwgS2V5RXJyb3IpOgotKyAgICAgICAgcmV0dXJuIEZhbHNlCi0rCi0rCi0rZGVmIF9k ZWZhdWx0X2luZGV4X2V4aXN0cyhkc2VfbGRpZiwgaW5kZXhfbmFtZSk6Ci0rICAgICIiIkNoZWNr IGlmIGFuIGluZGV4IGV4aXN0cyBpbiBjbj1kZWZhdWx0IGluZGV4ZXMuCi0rCi0rICAgIEFyZ3M6 Ci0rICAgICAgICBkc2VfbGRpZjogRFNFbGRpZiBpbnN0YW5jZS4KLSsgICAgICAgIGluZGV4X25h bWU6IE5hbWUgb2YgdGhlIGluZGV4IHRvIGNoZWNrLgotKwotKyAgICBSZXR1cm5zOgotKyAgICAg ICAgVHJ1ZSBpZiB0aGUgaW5kZXggZXhpc3RzIGluIGRlZmF1bHQgaW5kZXhlcywgRmFsc2Ugb3Ro ZXJ3aXNlLgotKyAgICAiIiIKLSsgICAgaW5kZXhfZG4gPSAiY249e30sY249ZGVmYXVsdCBpbmRl eGVzLGNuPWNvbmZpZyxjbj1sZGJtIGRhdGFiYXNlLGNuPXBsdWdpbnMsY249Y29uZmlnIi5mb3Jt YXQoCi0rICAgICAgICBpbmRleF9uYW1lCi0rICAgICkKLSsgICAgdHJ5OgotKyAgICAgICAgY24g PSBkc2VfbGRpZi5nZXQoaW5kZXhfZG4sICJjbiIpCi0rICAgICAgICByZXR1cm4gY24gaXMgbm90 IE5vbmUKLSsgICAgZXhjZXB0IChWYWx1ZUVycm9yLCBLZXlFcnJvcik6Ci0rICAgICAgICByZXR1 cm4gRmFsc2UKLSsKLSsKLStkZWYgX2NoZWNrX2Rpc2tfb3JkZXJpbmcoZGJfZGlyLCBiYWNrZW5k LCBpbmRleF9uYW1lLCBkYnNjYW5fcGF0aCwgaXNfbWRiLCBsb2cpOgotKyAgICAiIiJDaGVjayBp ZiBpbmRleCBvbiBkaXNrIHVzZXMgbGV4aWNvZ3JhcGhpYyBvciBpbnRlZ2VyIG9yZGVyaW5nLgot KwotKyAgICBBcmdzOgotKyAgICAgICAgZGJfZGlyOiBQYXRoIHRvIHRoZSBkYXRhYmFzZSBkaXJl Y3RvcnkuCi0rICAgICAgICBiYWNrZW5kOiBCYWNrZW5kIG5hbWUuCi0rICAgICAgICBpbmRleF9u YW1lOiBOYW1lIG9mIHRoZSBpbmRleCB0byBjaGVjay4KLSsgICAgICAgIGRic2Nhbl9wYXRoOiBQ YXRoIHRvIHRoZSBkYnNjYW4gYmluYXJ5LgotKyAgICAgICAgaXNfbWRiOiBUcnVlIGlmIHVzaW5n IE1EQiBiYWNrZW5kLgotKyAgICAgICAgbG9nOiBMb2dnZXIgaW5zdGFuY2UuCi0rCi0rICAgIFJl dHVybnM6Ci0rICAgICAgICBJbmRleE9yZGVyaW5nOiBUaGUgZGV0ZWN0ZWQgb3JkZXJpbmcgdHlw ZS4KLSsgICAgIiIiCi0rICAgIGlmIGlzX21kYjoKLSsgICAgICAgICMgTURCIHVzZXMgcHNldWRv LXBhdGhzOiBkYl9kaXIvYmFja2VuZC9pbmRleC5kYgotKyAgICAgICAgIyBkYnNjYW4gYWNjZXNz ZXMgaW5kZXhlcyB2aWEgcGF0aHMgbGlrZTogL3Zhci9saWIvZGlyc3J2L3NsYXBkLXh4eC9kYi91 c2Vycm9vdC9wYXJlbnRpZC5kYgotKyAgICAgICAgaW5kZXhfZmlsZSA9IG9zLnBhdGguam9pbihk Yl9kaXIsIGJhY2tlbmQsICJ7fS5kYiIuZm9ybWF0KGluZGV4X25hbWUpKQotKyAgICBlbHNlOgot KyAgICAgICAgIyBCREIgaGFzIHNlcGFyYXRlIGRpcmVjdG9yaWVzIHBlciBiYWNrZW5kIHdpdGgg YWN0dWFsIGluZGV4IGZpbGVzCi0rICAgICAgICBiYWNrZW5kX2RpciA9IG9zLnBhdGguam9pbihk Yl9kaXIsIGJhY2tlbmQpCi0rICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMoYmFja2VuZF9k aXIpOgotKyAgICAgICAgICAgIHJldHVybiBJbmRleE9yZGVyaW5nLlVOS05PV04KLSsgICAgICAg IGluZGV4X2ZpbGUgPSBOb25lCi0rICAgICAgICBwYXR0ZXJuID0gb3MucGF0aC5qb2luKGJhY2tl bmRfZGlyLCAie30uZGIqIi5mb3JtYXQoaW5kZXhfbmFtZSkpCi0rICAgICAgICBmb3IgZiBpbiBn bG9iLmdsb2IocGF0dGVybik6Ci0rICAgICAgICAgICAgaWYgb3MucGF0aC5pc2ZpbGUoZik6Ci0r ICAgICAgICAgICAgICAgIGluZGV4X2ZpbGUgPSBmCi0rICAgICAgICAgICAgICAgIGJyZWFrCi0r ICAgICAgICBpZiBub3QgaW5kZXhfZmlsZToKLSsgICAgICAgICAgICByZXR1cm4gSW5kZXhPcmRl cmluZy5VTktOT1dOCi0rCi0rICAgIHRyeToKLSsgICAgICAgIHJlc3VsdCA9IHN1YnByb2Nlc3Mu cnVuKAotKyAgICAgICAgICAgIFtkYnNjYW5fcGF0aCwgIi1mIiwgaW5kZXhfZmlsZV0sCi0rICAg ICAgICAgICAgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwKLSsgICAgICAgICAgICBzdGRlcnI9c3Vi cHJvY2Vzcy5QSVBFLAotKyAgICAgICAgICAgIHVuaXZlcnNhbF9uZXdsaW5lcz1UcnVlLAotKyAg ICAgICAgICAgIHRpbWVvdXQ9NjAsCi0rICAgICAgICApCi0rCi0rICAgICAgICBpZiByZXN1bHQu cmV0dXJuY29kZSAhPSAwOgotKyAgICAgICAgICAgIGxvZy53YXJuaW5nKCIgIGRic2NhbiByZXR1 cm5lZCBub24temVybyBleGl0IGNvZGUgZm9yICVzIiwgaW5kZXhfZmlsZSkKLSsgICAgICAgICAg ICByZXR1cm4gSW5kZXhPcmRlcmluZy5VTktOT1dOCi0rCi0rICAgICAgICAjIFBhcnNlIGtleXMg ZnJvbSBkYnNjYW4gb3V0cHV0Ci0rICAgICAgICBrZXlzID0gW10KLSsgICAgICAgIGZvciBsaW5l IGluIHJlc3VsdC5zdGRvdXQuc3BsaXQoIlxuIik6Ci0rICAgICAgICAgICAgbGluZSA9IGxpbmUu c3RyaXAoKQotKyAgICAgICAgICAgIGlmIGxpbmUuc3RhcnRzd2l0aCgiPSIpOgotKyAgICAgICAg ICAgICAgICBtYXRjaCA9IHJlLm1hdGNoKHIiXj0oXGQrKSIsIGxpbmUpCi0rICAgICAgICAgICAg ICAgIGlmIG1hdGNoOgotKyAgICAgICAgICAgICAgICAgICAga2V5cy5hcHBlbmQoaW50KG1hdGNo Lmdyb3VwKDEpKSkKLSsKLSsgICAgICAgIGlmIGxlbihrZXlzKSA8IDI6Ci0rICAgICAgICAgICAg cmV0dXJuIEluZGV4T3JkZXJpbmcuVU5LTk9XTgotKwotKyAgICAgICAgIyBDaGVjayBpZiBrZXlz IGFyZSBpbiBpbnRlZ2VyIG9yZGVyIGJ5IGxvb2tpbmcgZm9yIGRlY3JlYXNpbmcgbnVtZXJpYyB2 YWx1ZXMKLSsgICAgICAgICMgKHdoaWNoIHdvdWxkIGluZGljYXRlIGxleGljb2dyYXBoaWMgb3Jk ZXJpbmcsIGUuZy4sICIzIiA8ICIzMCIgPCAiNCIpCi0rICAgICAgICBwcmV2X2lkID0ga2V5c1sw XQotKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMSwgbWluKGxlbihrZXlzKSwgMTAwKSk6Ci0rICAg ICAgICAgICAgY3VycmVudF9pZCA9IGtleXNbaV0KLSsgICAgICAgICAgICBpZiBwcmV2X2lkID4g Y3VycmVudF9pZDoKLSsgICAgICAgICAgICAgICAgcmV0dXJuIEluZGV4T3JkZXJpbmcuTEVYSUNP R1JBUEhJQwotKyAgICAgICAgICAgIHByZXZfaWQgPSBjdXJyZW50X2lkCi0rCi0rICAgICAgICBy ZXR1cm4gSW5kZXhPcmRlcmluZy5JTlRFR0VSCi0rCi0rICAgIGV4Y2VwdCBzdWJwcm9jZXNzLlRp bWVvdXRFeHBpcmVkOgotKyAgICAgICAgbG9nLndhcm5pbmcoIiAgZGJzY2FuIHRpbWVkIG91dCBm b3IgJXMiLCBpbmRleF9maWxlKQotKyAgICAgICAgcmV0dXJuIEluZGV4T3JkZXJpbmcuVU5LTk9X TgotKyAgICBleGNlcHQgT1NFcnJvciBhcyBlOgotKyAgICAgICAgbG9nLndhcm5pbmcoIiAgRXJy b3IgcnVubmluZyBkYnNjYW46ICVzIiwgZSkKLSsgICAgICAgIHJldHVybiBJbmRleE9yZGVyaW5n LlVOS05PV04KLSsKLSsKLStkZWYgZGJ0YXNrc19pbmRleF9jaGVjayhpbnN0LCBsb2csIGFyZ3Mp OgotKyAgICAiIiJDaGVjayBhbmQgb3B0aW9uYWxseSBmaXggaW5kZXggb3JkZXJpbmcgbWlzbWF0 Y2hlcy4KLSsKLSsgICAgVGhpcyBmdW5jdGlvbiBkZXRlY3RzIG1pc21hdGNoZXMgYmV0d2VlbiB0 aGUgY29uZmlndXJlZCBvcmRlcmluZwotKyAgICAoaW50ZWdlck9yZGVyaW5nTWF0Y2ggaW4gRFNF KSBhbmQgdGhlIGFjdHVhbCBvbi1kaXNrIG9yZGVyaW5nIG9mCi0rICAgIHBhcmVudGlkIGFuZCBh bmNlc3RvcmlkIGluZGV4ZXMuCi0rCi0rICAgIEFyZ3M6Ci0rICAgICAgICBpbnN0OiBEaXJTcnYg aW5zdGFuY2UuCi0rICAgICAgICBsb2c6IExvZ2dlciBpbnN0YW5jZS4KLSsgICAgICAgIGFyZ3M6 IFBhcnNlZCBjb21tYW5kIGxpbmUgYXJndW1lbnRzLgotKwotKyAgICBSZXR1cm5zOgotKyAgICAg ICAgVHJ1ZSBpZiBhbGwgY2hlY2tzIHBhc3NlZCwgRmFsc2UgaWYgbWlzbWF0Y2hlcyB3ZXJlIGRl dGVjdGVkLgotKyAgICAiIiIKLSsgICAgIyBTZXJ2ZXIgbXVzdCBiZSBzdG9wcGVkCi0rICAgIGlm IGluc3Quc3RhdHVzKCk6Ci0rICAgICAgICBsb2cuZXJyb3IoImluZGV4LWNoZWNrIHJlcXVpcmVz IHRoZSBpbnN0YW5jZSB0byBiZSBzdG9wcGVkIikKLSsgICAgICAgIHJldHVybiBGYWxzZQotKwot KyAgICAjIENoZWNrIGZvciBkYnNjYW4gYmluYXJ5Ci0rICAgIGRic2Nhbl9wYXRoID0gb3MucGF0 aC5qb2luKGluc3QuZHNfcGF0aHMuYmluX2RpciwgImRic2NhbiIpCi0rICAgIGlmIG5vdCBvcy5w YXRoLmV4aXN0cyhkYnNjYW5fcGF0aCk6Ci0rICAgICAgICBsb2cuZXJyb3IoImRic2NhbiB1dGls aXR5IG5vdCBmb3VuZCBhdCAlcyIsIGRic2Nhbl9wYXRoKQotKyAgICAgICAgcmV0dXJuIEZhbHNl Ci0rCi0rICAgICMgTG9hZCBEU0UKLSsgICAgdHJ5OgotKyAgICAgICAgZHNlX2xkaWYgPSBEU0Vs ZGlmKGluc3QpCi0rICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSsgICAgICAgIGxvZy5lcnJv cigiRmFpbGVkIHRvIHJlYWQgZHNlLmxkaWY6ICVzIiwgZSkKLSsgICAgICAgIHJldHVybiBGYWxz ZQotKwotKyAgICAjIEdldCBiYWNrZW5kcyB0byBjaGVjawotKyAgICBhbGxfYmFja2VuZHMgPSBk c2VfbGRpZi5nZXRfYmFja2VuZHMoKQotKyAgICBpZiBub3QgYWxsX2JhY2tlbmRzOgotKyAgICAg ICAgbG9nLmluZm8oIk5vIGJhY2tlbmRzIGZvdW5kIikKLSsgICAgICAgIHJldHVybiBUcnVlCi0r Ci0rICAgICMgRmlsdGVyIHRvIHNwZWNpZmljIGJhY2tlbmQgaWYgcmVxdWVzdGVkCi0rICAgIGlm IGFyZ3MuYmFja2VuZDoKLSsgICAgICAgICMgQ2FzZS1pbnNlbnNpdGl2ZSBiYWNrZW5kIGxvb2t1 cAotKyAgICAgICAgYmFja2VuZF9sb3dlciA9IGFyZ3MuYmFja2VuZC5sb3dlcigpCi0rICAgICAg ICBtYXRjaGluZ19iYWNrZW5kID0gTm9uZQotKyAgICAgICAgZm9yIGJlIGluIGFsbF9iYWNrZW5k czoKLSsgICAgICAgICAgICBpZiBiZS5sb3dlcigpID09IGJhY2tlbmRfbG93ZXI6Ci0rICAgICAg ICAgICAgICAgIG1hdGNoaW5nX2JhY2tlbmQgPSBiZQotKyAgICAgICAgICAgICAgICBicmVhawot KyAgICAgICAgaWYgbWF0Y2hpbmdfYmFja2VuZCBpcyBOb25lOgotKyAgICAgICAgICAgIGxvZy5l cnJvcigiQmFja2VuZCAnJXMnIG5vdCBmb3VuZC4gQXZhaWxhYmxlIGJhY2tlbmRzOiAlcyIsCi0r ICAgICAgICAgICAgICAgICAgICAgIGFyZ3MuYmFja2VuZCwgIiwgIi5qb2luKGFsbF9iYWNrZW5k cykpCi0rICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0rICAgICAgICBiYWNrZW5kc190b19jaGVj ayA9IFttYXRjaGluZ19iYWNrZW5kXQotKyAgICBlbHNlOgotKyAgICAgICAgYmFja2VuZHNfdG9f Y2hlY2sgPSBhbGxfYmFja2VuZHMKLSsKLSsgICAgIyBHZXQgZGF0YWJhc2UgZGlyZWN0b3J5IGFu ZCBjaGVjayBkYXRhYmFzZSB0eXBlCi0rICAgIGRiX2RpciA9IF9nZXRfZGJfZGlyKGRzZV9sZGlm KQotKyAgICBpZiBub3QgZGJfZGlyIG9yIG5vdCBvcy5wYXRoLmV4aXN0cyhkYl9kaXIpOgotKyAg ICAgICAgbG9nLmVycm9yKCJEYXRhYmFzZSBkaXJlY3Rvcnkgbm90IGZvdW5kIikKLSsgICAgICAg IHJldHVybiBGYWxzZQotKwotKyAgICBkYl9saWIgPSBpbnN0LmdldF9kYl9saWIoKQotKyAgICBp c19tZGIgPSAoZGJfbGliID09ICJtZGIiKQotKyAgICBsb2cuaW5mbygiRGF0YWJhc2UgdHlwZTog JXMiLCBkYl9saWIudXBwZXIoKSkKLSsKLSsgICAgIyBUcmFjayBhbGwgaXNzdWVzIGZvdW5kCi0r ICAgIGFsbF9vayA9IFRydWUKLSsgICAgbWlzbWF0Y2hlcyA9IFtdICAjIChiYWNrZW5kLCBpbmRl eF9uYW1lKSB0dXBsZXMgbmVlZGluZyByZWluZGV4Ci0rICAgIG1pc3NpbmdfbWF0Y2hpbmdfcnVs ZXMgPSBbXSAgIyAoYmFja2VuZCwgaW5kZXhfbmFtZSkgdHVwbGVzIG1pc3NpbmcgaW50ZWdlck9y ZGVyaW5nTWF0Y2gKLSsgICAgc2Nhbl9saW1pdHNfdG9fcmVtb3ZlID0gW10gICMgKGJhY2tlbmQs IGluZGV4X25hbWUpIHR1cGxlcyB3aXRoIG5zSW5kZXhJRExpc3RTY2FuTGltaXQKLSsgICAgYW5j ZXN0b3JpZF9jb25maWdzX3RvX3JlbW92ZSA9IFtdICAjIGJhY2tlbmQgbmFtZXMgd2l0aCBhbmNl c3RvcmlkIGNvbmZpZyBlbnRyaWVzCi0rICAgIHJlbW92ZV9hbmNlc3RvcmlkX2Zyb21fZGVmYXVs dHMgPSBGYWxzZSAgIyBGbGFnIHRvIHJlbW92ZSBmcm9tIGNuPWRlZmF1bHQgaW5kZXhlcwotKwot KyAgICAjIENoZWNrIGlmIGFuY2VzdG9yaWQgZXhpc3RzIGluIGNuPWRlZmF1bHQgaW5kZXhlcyAo c2hvdWxkIGJlIHJlbW92ZWQpCi0rICAgIGlmIF9kZWZhdWx0X2luZGV4X2V4aXN0cyhkc2VfbGRp ZiwgImFuY2VzdG9yaWQiKToKLSsgICAgICAgIGxvZy53YXJuaW5nKCJhbmNlc3RvcmlkIGZvdW5k IGluIGNuPWRlZmF1bHQgaW5kZXhlcyAtIHNob3VsZCBiZSByZW1vdmVkIikKLSsgICAgICAgIHJl bW92ZV9hbmNlc3RvcmlkX2Zyb21fZGVmYXVsdHMgPSBUcnVlCi0rICAgICAgICBhbGxfb2sgPSBG YWxzZQotKwotKyAgICBmb3IgYmFja2VuZCBpbiBiYWNrZW5kc190b19jaGVjazoKLSsgICAgICAg IGxvZy5pbmZvKCJDaGVja2luZyBiYWNrZW5kOiAlcyIsIGJhY2tlbmQpCi0rCi0rICAgICAgICAj IENoZWNrIGZvciBhbmNlc3RvcmlkIGNvbmZpZyBlbnRyeSAoc2hvdWxkIG5vdCBleGlzdCkKLSsg ICAgICAgIGlmIF9pbmRleF9jb25maWdfZXhpc3RzKGRzZV9sZGlmLCBiYWNrZW5kLCAiYW5jZXN0 b3JpZCIpOgotKyAgICAgICAgICAgIGxvZy53YXJuaW5nKCIgIGFuY2VzdG9yaWQgLSBjb25maWcg ZW50cnkgZXhpc3RzIChzaG91bGQgYmUgcmVtb3ZlZCkiKQotKyAgICAgICAgICAgIGFuY2VzdG9y aWRfY29uZmlnc190b19yZW1vdmUuYXBwZW5kKGJhY2tlbmQpCi0rICAgICAgICAgICAgYWxsX29r ID0gRmFsc2UKLSsKLSsgICAgICAgICMgQ2hlY2sgcGFyZW50aWQgYW5kIGFuY2VzdG9yaWQgaW5k ZXhlcwotKyAgICAgICAgZm9yIGluZGV4X25hbWUgaW4gWyJwYXJlbnRpZCIsICJhbmNlc3Rvcmlk Il06Ci0rICAgICAgICAgICAgIyBDaGVjayBmb3Igc2NhbiBsaW1pdHMgKHNob3VsZCBiZSByZW1v dmVkKQotKyAgICAgICAgICAgIGlmIF9oYXNfaW5kZXhfc2Nhbl9saW1pdChkc2VfbGRpZiwgYmFj a2VuZCwgaW5kZXhfbmFtZSk6Ci0rICAgICAgICAgICAgICAgIGxvZy53YXJuaW5nKCIgICVzIC0g aGFzIG5zSW5kZXhJRExpc3RTY2FuTGltaXQgKHNob3VsZCBiZSByZW1vdmVkKSIsIGluZGV4X25h bWUpCi0rICAgICAgICAgICAgICAgIHNjYW5fbGltaXRzX3RvX3JlbW92ZS5hcHBlbmQoKGJhY2tl bmQsIGluZGV4X25hbWUpKQotKyAgICAgICAgICAgICAgICBhbGxfb2sgPSBGYWxzZQotKwotKyAg ICAgICAgICAgICMgQ2hlY2sgZGlzayBvcmRlcmluZwotKyAgICAgICAgICAgIGRpc2tfb3JkZXJp bmcgPSBfY2hlY2tfZGlza19vcmRlcmluZyhkYl9kaXIsIGJhY2tlbmQsIGluZGV4X25hbWUsIGRi c2Nhbl9wYXRoLCBpc19tZGIsIGxvZykKLSsKLSsgICAgICAgICAgICBpZiBkaXNrX29yZGVyaW5n ID09IEluZGV4T3JkZXJpbmcuVU5LTk9XTjoKLSsgICAgICAgICAgICAgICAgbG9nLmluZm8oIiAg JXMgLSBjb3VsZCBub3QgZGV0ZXJtaW5lIGRpc2sgb3JkZXJpbmcsIHNraXBwaW5nIiwgaW5kZXhf bmFtZSkKLSsgICAgICAgICAgICAgICAgIyBGb3IgcGFyZW50aWQsIHN0aWxsIGNoZWNrIGlmIG1h dGNoaW5nIHJ1bGUgaXMgbWlzc2luZwotKyAgICAgICAgICAgICAgICBpZiBpbmRleF9uYW1lID09 ICJwYXJlbnRpZCI6Ci0rICAgICAgICAgICAgICAgICAgICBjb25maWdfaGFzX2ludF9vcmRlciA9 IF9oYXNfaW50ZWdlcl9vcmRlcmluZ19tYXRjaChkc2VfbGRpZiwgYmFja2VuZCwgaW5kZXhfbmFt ZSkKLSsgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBjb25maWdfaGFzX2ludF9vcmRlcjoKLSsg ICAgICAgICAgICAgICAgICAgICAgICBsb2cud2FybmluZygiICAlcyAtIG1pc3NpbmcgaW50ZWdl ck9yZGVyaW5nTWF0Y2ggaW4gY29uZmlnIiwgaW5kZXhfbmFtZSkKLSsgICAgICAgICAgICAgICAg ICAgICAgICBtaXNzaW5nX21hdGNoaW5nX3J1bGVzLmFwcGVuZCgoYmFja2VuZCwgaW5kZXhfbmFt ZSkpCi0rICAgICAgICAgICAgICAgICAgICAgICAgYWxsX29rID0gRmFsc2UKLSsgICAgICAgICAg ICAgICAgY29udGludWUKLSsKLSsgICAgICAgICAgICBjb25maWdfaGFzX2ludF9vcmRlciA9IF9o YXNfaW50ZWdlcl9vcmRlcmluZ19tYXRjaChkc2VfbGRpZiwgYmFja2VuZCwgaW5kZXhfbmFtZSkK LSsgICAgICAgICAgICBjb25maWdfZGVzYyA9ICJpbnRlZ2VyIiBpZiBjb25maWdfaGFzX2ludF9v cmRlciBlbHNlICJsZXhpY29ncmFwaGljIgotKyAgICAgICAgICAgIGxvZy5pbmZvKCIgICVzIC0g Y29uZmlnOiAlcywgZGlzazogJXMiLAotKyAgICAgICAgICAgICAgICAgICAgIGluZGV4X25hbWUs IGNvbmZpZ19kZXNjLCBkaXNrX29yZGVyaW5nLnZhbHVlKQotKwotKyAgICAgICAgICAgICMgRm9y IHBhcmVudGlkLCB0aGUgZGVzaXJlZCBzdGF0ZSBpcyBhbHdheXMgaW50ZWdlciBvcmRlcmluZwot KyAgICAgICAgICAgIGlmIGluZGV4X25hbWUgPT0gInBhcmVudGlkIjoKLSsgICAgICAgICAgICAg ICAgaWYgbm90IGNvbmZpZ19oYXNfaW50X29yZGVyOgotKyAgICAgICAgICAgICAgICAgICAgbG9n Lndhcm5pbmcoIiAgJXMgLSBtaXNzaW5nIGludGVnZXJPcmRlcmluZ01hdGNoIGluIGNvbmZpZyIs IGluZGV4X25hbWUpCi0rICAgICAgICAgICAgICAgICAgICBpZiAoYmFja2VuZCwgaW5kZXhfbmFt ZSkgbm90IGluIG1pc3NpbmdfbWF0Y2hpbmdfcnVsZXM6Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgbWlzc2luZ19tYXRjaGluZ19ydWxlcy5hcHBlbmQoKGJhY2tlbmQsIGluZGV4X25hbWUpKQot KyAgICAgICAgICAgICAgICAgICAgYWxsX29rID0gRmFsc2UKLSsKLSsgICAgICAgICAgICAgICAg aWYgZGlza19vcmRlcmluZyA9PSBJbmRleE9yZGVyaW5nLkxFWElDT0dSQVBISUM6Ci0rICAgICAg ICAgICAgICAgICAgICBsb2cud2FybmluZygiICAlcyAtIGRpc2sgb3JkZXJpbmcgaXMgbGV4aWNv Z3JhcGhpYywgbmVlZHMgcmVpbmRleCIsIGluZGV4X25hbWUpCi0rICAgICAgICAgICAgICAgICAg ICBpZiAoYmFja2VuZCwgaW5kZXhfbmFtZSkgbm90IGluIG1pc21hdGNoZXM6Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgbWlzbWF0Y2hlcy5hcHBlbmQoKGJhY2tlbmQsIGluZGV4X25hbWUpKQot KyAgICAgICAgICAgICAgICAgICAgYWxsX29rID0gRmFsc2UKLSsKLSsgICAgIyBIYW5kbGUgaXNz dWVzCi0rICAgIGlmIG5vdCBhbGxfb2s6Ci0rICAgICAgICBpZiBhcmdzLmZpeDoKLSsgICAgICAg ICAgICBsb2cuaW5mbygiRml4aW5nIGlzc3Vlcy4uLiIpCi0rCi0rICAgICAgICAgICAgIyBSZW1v dmUgYW5jZXN0b3JpZCBmcm9tIGNuPWRlZmF1bHQgaW5kZXhlcwotKyAgICAgICAgICAgIGlmIHJl bW92ZV9hbmNlc3RvcmlkX2Zyb21fZGVmYXVsdHM6Ci0rICAgICAgICAgICAgICAgIGRlZmF1bHRf aWR4X2RuID0gImNuPWFuY2VzdG9yaWQsY249ZGVmYXVsdCBpbmRleGVzLGNuPWNvbmZpZyxjbj1s ZGJtIGRhdGFiYXNlLGNuPXBsdWdpbnMsY249Y29uZmlnIgotKyAgICAgICAgICAgICAgICBsb2cu aW5mbygiICBSZW1vdmluZyBhbmNlc3RvcmlkIGZyb20gZGVmYXVsdCBpbmRleGVzLi4uIikKLSsg ICAgICAgICAgICAgICAgdHJ5OgotKyAgICAgICAgICAgICAgICAgICAgZHNlX2xkaWYuZGVsZXRl X2RuKGRlZmF1bHRfaWR4X2RuKQotKyAgICAgICAgICAgICAgICAgICAgbG9nLmluZm8oIiAgUmVt b3ZlZCBhbmNlc3RvcmlkIGZyb20gZGVmYXVsdCBpbmRleGVzIikKLSsgICAgICAgICAgICAgICAg ZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotKyAgICAgICAgICAgICAgICAgICAgbG9nLmVycm9yKCIg IEZhaWxlZCB0byByZW1vdmUgYW5jZXN0b3JpZCBmcm9tIGRlZmF1bHQgaW5kZXhlczogJXMiLCBl KQotKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0rCi0rICAgICAgICAgICAgIyBS ZW1vdmUgc2NhbiBsaW1pdHMgKG9ubHkgZm9yIGluZGV4ZXMgdGhhdCB3b24ndCBiZSBkZWxldGVk KQotKyAgICAgICAgICAgIGZvciBiYWNrZW5kLCBpbmRleF9uYW1lIGluIHNjYW5fbGltaXRzX3Rv X3JlbW92ZToKLSsgICAgICAgICAgICAgICAgIyBTa2lwIGFuY2VzdG9yaWQgaWYgd2UncmUgZ29p bmcgdG8gZGVsZXRlIHRoZSB3aG9sZSBlbnRyeSBhbnl3YXkKLSsgICAgICAgICAgICAgICAgaWYg aW5kZXhfbmFtZSA9PSAiYW5jZXN0b3JpZCIgYW5kIGJhY2tlbmQgaW4gYW5jZXN0b3JpZF9jb25m aWdzX3RvX3JlbW92ZToKLSsgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0rICAgICAgICAg ICAgICAgIGluZGV4X2RuID0gImNuPXt9LGNuPWluZGV4LGNuPXt9LGNuPWxkYm0gZGF0YWJhc2Us Y249cGx1Z2lucyxjbj1jb25maWciLmZvcm1hdCgKLSsgICAgICAgICAgICAgICAgICAgIGluZGV4 X25hbWUsIGJhY2tlbmQKLSsgICAgICAgICAgICAgICAgKQotKyAgICAgICAgICAgICAgICBsb2cu aW5mbygiICBSZW1vdmluZyBuc0luZGV4SURMaXN0U2NhbkxpbWl0IGZyb20gJXMgaW4gYmFja2Vu ZCAlcy4uLiIsIGluZGV4X25hbWUsIGJhY2tlbmQpCi0rICAgICAgICAgICAgICAgIHRyeToKLSsg ICAgICAgICAgICAgICAgICAgIGRzZV9sZGlmLmRlbGV0ZShpbmRleF9kbiwgIm5zSW5kZXhJRExp c3RTY2FuTGltaXQiKQotKyAgICAgICAgICAgICAgICAgICAgbG9nLmluZm8oIiAgUmVtb3ZlZCBu c0luZGV4SURMaXN0U2NhbkxpbWl0IGZyb20gJXMiLCBpbmRleF9uYW1lKQotKyAgICAgICAgICAg ICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0rICAgICAgICAgICAgICAgICAgICBsb2cuZXJy b3IoIiAgRmFpbGVkIHRvIHJlbW92ZSBuc0luZGV4SURMaXN0U2NhbkxpbWl0IGZyb20gJXM6ICVz IiwgaW5kZXhfbmFtZSwgZSkKLSsgICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQotKwot KyAgICAgICAgICAgICMgUmVtb3ZlIGFuY2VzdG9yaWQgY29uZmlnIGVudHJpZXMgZnJvbSBiYWNr ZW5kcwotKyAgICAgICAgICAgIGZvciBiYWNrZW5kIGluIGFuY2VzdG9yaWRfY29uZmlnc190b19y ZW1vdmU6Ci0rICAgICAgICAgICAgICAgIGluZGV4X2RuID0gImNuPWFuY2VzdG9yaWQsY249aW5k ZXgsY249e30sY249bGRibSBkYXRhYmFzZSxjbj1wbHVnaW5zLGNuPWNvbmZpZyIuZm9ybWF0KGJh Y2tlbmQpCi0rICAgICAgICAgICAgICAgIGxvZy5pbmZvKCIgIFJlbW92aW5nIGFuY2VzdG9yaWQg Y29uZmlnIGVudHJ5IGZyb20gYmFja2VuZCAlcy4uLiIsIGJhY2tlbmQpCi0rICAgICAgICAgICAg ICAgIHRyeToKLSsgICAgICAgICAgICAgICAgICAgIGRzZV9sZGlmLmRlbGV0ZV9kbihpbmRleF9k bikKLSsgICAgICAgICAgICAgICAgICAgIGxvZy5pbmZvKCIgIFJlbW92ZWQgYW5jZXN0b3JpZCBj b25maWcgZW50cnkgZnJvbSBiYWNrZW5kICVzIiwgYmFja2VuZCkKLSsgICAgICAgICAgICAgICAg ZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotKyAgICAgICAgICAgICAgICAgICAgbG9nLmVycm9yKCIg IEZhaWxlZCB0byByZW1vdmUgYW5jZXN0b3JpZCBjb25maWcgZnJvbSBiYWNrZW5kICVzOiAlcyIs IGJhY2tlbmQsIGUpCi0rICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKLSsKLSsgICAg ICAgICAgICAjIEFkZCBtaXNzaW5nIG1hdGNoaW5nIHJ1bGVzIHRvIGRzZS5sZGlmCi0rICAgICAg ICAgICAgZm9yIGJhY2tlbmQsIGluZGV4X25hbWUgaW4gbWlzc2luZ19tYXRjaGluZ19ydWxlczoK LSsgICAgICAgICAgICAgICAgaW5kZXhfZG4gPSAiY249e30sY249aW5kZXgsY249e30sY249bGRi bSBkYXRhYmFzZSxjbj1wbHVnaW5zLGNuPWNvbmZpZyIuZm9ybWF0KAotKyAgICAgICAgICAgICAg ICAgICAgaW5kZXhfbmFtZSwgYmFja2VuZAotKyAgICAgICAgICAgICAgICApCi0rICAgICAgICAg ICAgICAgIGxvZy5pbmZvKCIgIEFkZGluZyBpbnRlZ2VyT3JkZXJpbmdNYXRjaCB0byAlcyBpbiBi YWNrZW5kICVzLi4uIiwgaW5kZXhfbmFtZSwgYmFja2VuZCkKLSsgICAgICAgICAgICAgICAgdHJ5 OgotKyAgICAgICAgICAgICAgICAgICAgZHNlX2xkaWYuYWRkKGluZGV4X2RuLCAibnNNYXRjaGlu Z1J1bGUiLCAiaW50ZWdlck9yZGVyaW5nTWF0Y2giKQotKyAgICAgICAgICAgICAgICAgICAgbG9n LmluZm8oIiAgVXBkYXRlZCBkc2UubGRpZiB3aXRoIGludGVnZXJPcmRlcmluZ01hdGNoIGZvciAl cyIsIGluZGV4X25hbWUpCi0rICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToK LSsgICAgICAgICAgICAgICAgICAgIGxvZy5lcnJvcigiICBGYWlsZWQgdG8gdXBkYXRlIGRzZS5s ZGlmIGZvciAlczogJXMiLCBpbmRleF9uYW1lLCBlKQotKyAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIEZhbHNlCi0rCi0rICAgICAgICAgICAgIyBSZWluZGV4IGluZGV4ZXMgd2l0aCBkaXNrIG9y ZGVyaW5nIGlzc3VlcwotKyAgICAgICAgICAgIGZvciBiYWNrZW5kLCBpbmRleF9uYW1lIGluIG1p c21hdGNoZXM6Ci0rICAgICAgICAgICAgICAgIGxvZy5pbmZvKCIgIFJlaW5kZXhpbmcgJXMgaW4g YmFja2VuZCAlcy4uLiIsIGluZGV4X25hbWUsIGJhY2tlbmQpCi0rICAgICAgICAgICAgICAgIGlm IG5vdCBpbnN0LmRiMmluZGV4KGJlbmFtZT1iYWNrZW5kLCBhdHRycz1baW5kZXhfbmFtZV0pOgot KyAgICAgICAgICAgICAgICAgICAgbG9nLmVycm9yKCIgIEZhaWxlZCB0byByZWluZGV4ICVzIiwg aW5kZXhfbmFtZSkKLSsgICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQotKyAgICAgICAg ICAgICAgICBsb2cuaW5mbygiICBSZWluZGV4IG9mICVzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHki LCBpbmRleF9uYW1lKQotKwotKyAgICAgICAgICAgIGxvZy5pbmZvKCJBbGwgaXNzdWVzIGZpeGVk IikKLSsgICAgICAgICAgICByZXR1cm4gVHJ1ZQotKyAgICAgICAgZWxzZToKLSsgICAgICAgICAg ICBsb2cuaW5mbygiSXNzdWVzIGRldGVjdGVkLiBSdW4gd2l0aCAtLWZpeCB0byByZXBhaXIuIikK LSsgICAgICAgICAgICByZXR1cm4gRmFsc2UKLSsgICAgZWxzZToKLSsgICAgICAgIGxvZy5pbmZv KCJBbGwgY2hlY2tzIHBhc3NlZCAtIG5vIGlzc3VlcyBmb3VuZCIpCi0rICAgICAgICByZXR1cm4g VHJ1ZQotKwotKwotIGRlZiBjcmVhdGVfcGFyc2VyKHN1YmNvbW1hbmRzKToKLSAgICAgZGIyaW5k ZXhfcGFyc2VyID0gc3ViY29tbWFuZHMuYWRkX3BhcnNlcignZGIyaW5kZXgnLCBoZWxwPSJJbml0 aWFsaXNlIGEgcmVpbmRleCBvZiB0aGUgc2VydmVyIGRhdGFiYXNlLiBUaGUgc2VydmVyIG11c3Qg YmUgc3RvcHBlZCBmb3IgdGhpcyB0byBwcm9jZWVkLiIsIGZvcm1hdHRlcl9jbGFzcz1DdXN0b21I ZWxwRm9ybWF0dGVyKQotICAgICAjIGRiMmluZGV4X3BhcnNlci5hZGRfYXJndW1lbnQoJ3N1ZmZp eCcsIGhlbHA9IlRoZSBzdWZmaXggdG8gcmVpbmRleC4gSUUgZGM9ZXhhbXBsZSxkYz1jb20uIikK LUBAIC0xNzIsMyArNTY1LDEyIEBAIGRlZiBjcmVhdGVfcGFyc2VyKHN1YmNvbW1hbmRzKToKLSAg ICAgbGRpZnNfcGFyc2VyID0gc3ViY29tbWFuZHMuYWRkX3BhcnNlcignbGRpZnMnLCBoZWxwPSJM aXN0IGFsbCB0aGUgTERJRiBmaWxlcyBsb2NhdGVkIGluIHRoZSBzZXJ2ZXIncyBMRElGIGRpcmVj dG9yeSIsIGZvcm1hdHRlcl9jbGFzcz1DdXN0b21IZWxwRm9ybWF0dGVyKQotICAgICBsZGlmc19w YXJzZXIuYWRkX2FyZ3VtZW50KCctLWRlbGV0ZScsIG5hcmdzPTEsIGhlbHA9IkRlbGV0ZSBMRElG IGZpbGUiKQotICAgICBsZGlmc19wYXJzZXIuc2V0X2RlZmF1bHRzKGZ1bmM9ZGJ0YXNrc19sZGlm cykKLSsKLSsgICAgaW5kZXhfY2hlY2tfcGFyc2VyID0gc3ViY29tbWFuZHMuYWRkX3BhcnNlcign aW5kZXgtY2hlY2snLAotKyAgICAgICAgaGVscD0iQ2hlY2sgZm9yIGluZGV4IG9yZGVyaW5nIG1p c21hdGNoZXMgKHBhcmVudGlkL2FuY2VzdG9yaWQpLiBUaGUgc2VydmVyIG11c3QgYmUgc3RvcHBl ZC4iLAotKyAgICAgICAgZm9ybWF0dGVyX2NsYXNzPUN1c3RvbUhlbHBGb3JtYXR0ZXIpCi0rICAg IGluZGV4X2NoZWNrX3BhcnNlci5hZGRfYXJndW1lbnQoJ2JhY2tlbmQnLCBuYXJncz0nPycsIGRl ZmF1bHQ9Tm9uZSwKLSsgICAgICAgIGhlbHA9IkJhY2tlbmQgdG8gY2hlY2suIElmIG5vdCBzcGVj aWZpZWQsIGFsbCBiYWNrZW5kcyBhcmUgY2hlY2tlZC4iKQotKyAgICBpbmRleF9jaGVja19wYXJz ZXIuYWRkX2FyZ3VtZW50KCctLWZpeCcsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlZmF1bHQ9RmFs c2UsCi0rICAgICAgICBoZWxwPSJGaXggbWlzbWF0Y2hlcyBieSByZWluZGV4aW5nIGFmZmVjdGVk IGluZGV4ZXMiKQotKyAgICBpbmRleF9jaGVja19wYXJzZXIuc2V0X2RlZmF1bHRzKGZ1bmM9ZGJ0 YXNrc19pbmRleF9jaGVjaykKLWRpZmYgLS1naXQgYS9zcmMvbGliMzg5L2xpYjM4OS9kc2VsZGlm LnB5IGIvc3JjL2xpYjM4OS9saWIzODkvZHNlbGRpZi5weQotaW5kZXggZDEyYzY0MjRjLi43ODM0 ZDk0NjggMTAwNjQ0Ci0tLS0gYS9zcmMvbGliMzg5L2xpYjM4OS9kc2VsZGlmLnB5Ci0rKysgYi9z cmMvbGliMzg5L2xpYjM4OS9kc2VsZGlmLnB5Ci1AQCAtMTI1LDExICsxMjUsMTQgQEAgY2xhc3Mg RFNFbGRpZihEU0xpbnQpOgotICAgICAgICAgICAgIHNlbGYuX2NvbnRlbnRzW2ldID0gc2VsZi5f Y29udGVudHNbaV0ucmVwbGFjZShzdHJmcm9tLCBzdHJ0bykKLSAgICAgICAgIHNlbGYuX3VwZGF0 ZSgpCi0gCi0tICAgIGRlZiBfZmluZF9hdHRyKHNlbGYsIGVudHJ5X2RuLCBhdHRyKToKLSsgICAg ZGVmIF9maW5kX2F0dHIoc2VsZiwgZW50cnlfZG4sIGF0dHIsIGxvd2VyPUZhbHNlKToKLSAgICAg ICAgICIiIkZpbmQgYWxsIGF0dHJpYnV0ZSB2YWx1ZXMgYW5kIGluZGV4ZXMgdW5kZXIgYSBnaXZl biBlbnRyeQotIAotICAgICAgICAgUmV0dXJucyBlbnRyeSBkbiBpbmRleCBhbmQgYXR0cmlidXRl IGRhdGEgZGljdDoKLSAgICAgICAgIHJlbGF0aXZlIGF0dHJpYnV0ZSBpbmRleGVzIGFuZCB0aGUg YXR0cmlidXRlIHZhbHVlCi0rCi0rICAgICAgICA6cGFyYW0gbG93ZXI6IFVzZSBjYXNlLWluc2Vu c2l0aXZlIG1hdGNoaW5nIGZvciBhdHRyaWJ1dGUgbmFtZQotKyAgICAgICAgOnR5cGUgbG93ZXI6 IGJvb2xlYW4KLSAgICAgICAgICIiIgotIAotICAgICAgICAgZW50cnlfZG5faSA9IHNlbGYuX2Nv bnRlbnRzLmluZGV4KCJkbjoge31cbiIuZm9ybWF0KGVudHJ5X2RuLmxvd2VyKCkpKQotQEAgLTE0 Niw3ICsxNDksMTEgQEAgY2xhc3MgRFNFbGRpZihEU0xpbnQpOgotIAotICAgICAgICAgIyBGaW5k IHRoZSBhdHRyaWJ1dGUKLSAgICAgICAgIGZvciBsaW5lIGluIGVudHJ5X3NsaWNlOgotLSAgICAg ICAgICAgIGlmIGxpbmUuc3RhcnRzd2l0aCgie306Ii5mb3JtYXQoYXR0cikpOgotKyAgICAgICAg ICAgIGlmIGxvd2VyOgotKyAgICAgICAgICAgICAgICBtYXRjaCA9IGxpbmUubG93ZXIoKS5zdGFy dHN3aXRoKCJ7fToiLmZvcm1hdChhdHRyLmxvd2VyKCkpKQotKyAgICAgICAgICAgIGVsc2U6Ci0r ICAgICAgICAgICAgICAgIG1hdGNoID0gbGluZS5zdGFydHN3aXRoKCJ7fToiLmZvcm1hdChhdHRy KSkKLSsgICAgICAgICAgICBpZiBtYXRjaDoKLSAgICAgICAgICAgICAgICAgYXR0cl92YWx1ZSA9 IGxpbmUuc3BsaXQoIiAiLCAxKVsxXVs6LTFdCi0gICAgICAgICAgICAgICAgIGF0dHJfZGF0YS51 cGRhdGUoe2VudHJ5X3NsaWNlLmluZGV4KGxpbmUpOiBhdHRyX3ZhbHVlfSkKLSAKLUBAIC0xNTUs NyArMTYyLDcgQEAgY2xhc3MgRFNFbGRpZihEU0xpbnQpOgotIAotICAgICAgICAgcmV0dXJuIGVu dHJ5X2RuX2ksIGF0dHJfZGF0YQotIAotLSAgICBkZWYgZ2V0KHNlbGYsIGVudHJ5X2RuLCBhdHRy LCBzaW5nbGU9RmFsc2UpOgotKyAgICBkZWYgZ2V0KHNlbGYsIGVudHJ5X2RuLCBhdHRyLCBzaW5n bGU9RmFsc2UsIGxvd2VyPUZhbHNlKToKLSAgICAgICAgICIiIlJldHVybiBhdHRyaWJ1dGUgdmFs dWVzIHVuZGVyIGEgZ2l2ZW4gZW50cnkKLSAKLSAgICAgICAgIDpwYXJhbSBlbnRyeV9kbjogYSBE TiBvZiBlbnRyeSB3ZSB3YW50IHRvIGdldCBhdHRyaWJ1dGUgZnJvbQotQEAgLTE2MywxMSArMTcw LDEzIEBAIGNsYXNzIERTRWxkaWYoRFNMaW50KToKLSAgICAgICAgIDpwYXJhbSBhdHRyOiBhbiBh dHRyaWJ1dGUgbmFtZQotICAgICAgICAgOnR5cGUgYXR0cjogc3RyCi0gICAgICAgICA6cGFyYW0g c2luZ2xlOiBSZXR1cm4gYSBzaW5nbGUgdmFsdWUgaW5zdGVhZCBvZiBhIGxpc3QKLS0gICAgICAg IDp0eXBlIHNpZ2xlOiBib29sZWFuCi0rICAgICAgICA6dHlwZSBzaW5nbGU6IGJvb2xlYW4KLSsg ICAgICAgIDpwYXJhbSBsb3dlcjogVXNlIGNhc2UtaW5zZW5zaXRpdmUgbWF0Y2hpbmcgZm9yIGF0 dHJpYnV0ZSBuYW1lCi0rICAgICAgICA6dHlwZSBsb3dlcjogYm9vbGVhbgotICAgICAgICAgIiIi Ci0gCi0gICAgICAgICB0cnk6Ci0tICAgICAgICAgICAgXywgYXR0cl9kYXRhID0gc2VsZi5fZmlu ZF9hdHRyKGVudHJ5X2RuLCBhdHRyKQotKyAgICAgICAgICAgIF8sIGF0dHJfZGF0YSA9IHNlbGYu X2ZpbmRfYXR0cihlbnRyeV9kbiwgYXR0ciwgbG93ZXI9bG93ZXIpCi0gICAgICAgICBleGNlcHQg VmFsdWVFcnJvcjoKLSAgICAgICAgICAgICByZXR1cm4gTm9uZQotIAotQEAgLTE5MCw2ICsxOTks MzggQEAgY2xhc3MgRFNFbGRpZihEU0xpbnQpOgotIAotICAgICAgICAgcmV0dXJuIGluZGV4ZXMK LSAKLSsgICAgZGVmIGdldF9iYWNrZW5kcyhzZWxmKToKLSsgICAgICAgICIiIlJldHVybiBhIGxp c3Qgb2YgYmFja2VuZCBuYW1lcyBmcm9tIERTRS4KLSsKLSsgICAgICAgIFJldHVybnMgYmFja2Vu ZCBuYW1lcyBwcmVzZXJ2aW5nIHRoZWlyIG9yaWdpbmFsIGNhc2UsIGFzIHRoZQotKyAgICAgICAg ZGF0YWJhc2UgZGlyZWN0b3J5IG5hbWVzIG9uIGRpc2sgdXNlIHRoZSBvcmlnaW5hbCBjYXNlLgot KwotKyAgICAgICAgTm90ZTogRFNFbGRpZiBsb3dlcmNhc2VzIEROIGxpbmVzLCBzbyB3ZSByZWFk IHRoZSAnY24nIGF0dHJpYnV0ZQotKyAgICAgICAgZnJvbSBlYWNoIGVudHJ5IHRvIGdldCB0aGUg b3JpZ2luYWwgY2FzZS4KLSsKLSsgICAgICAgIDpyZXR1cm5zOiBMaXN0IG9mIGJhY2tlbmQgbmFt ZXMKLSsgICAgICAgICIiIgotKyAgICAgICAgYmFja2VuZHMgPSBbXQotKyAgICAgICAgZXhjbHVk ZWQgPSAoImNvbmZpZyIsICJtb25pdG9yIiwgImluZGV4IiwgImVuY3J5cHRlZCBhdHRyaWJ1dGVz IikKLSsKLSsgICAgICAgIGZvciBlbnRyeSBpbiBzZWxmLl9jb250ZW50czoKLSsgICAgICAgICAg ICBpZiAoZW50cnkuc3RhcnRzd2l0aCgiZG46IGNuPSIpIGFuZAotKyAgICAgICAgICAgICAgICAg ICAgIixjbj1sZGJtIGRhdGFiYXNlLGNuPXBsdWdpbnMsY249Y29uZmlnIiBpbiBlbnRyeSk6Ci0r ICAgICAgICAgICAgICAgIHBhcnRzID0gZW50cnkuc3BsaXQoIiwiKQotKyAgICAgICAgICAgICAg ICBpZiBsZW4ocGFydHMpID4gMToKLSsgICAgICAgICAgICAgICAgICAgIGNuX2xvd2VyID0gcGFy dHNbMF0ucmVwbGFjZSgiZG46IGNuPSIsICIiKQotKyAgICAgICAgICAgICAgICAgICAgaWYgY25f bG93ZXIgbm90IGluIGV4Y2x1ZGVkOgotKyAgICAgICAgICAgICAgICAgICAgICAgIGRuID0gZW50 cnkuc3RyaXAoKVs0Ol0uc3RyaXAoKQotKyAgICAgICAgICAgICAgICAgICAgICAgIHRyeToKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VmZml4ID0gc2VsZi5nZXQoZG4sICJuc3NsYXBk LXN1ZmZpeCIpCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHN1ZmZpeDoKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNuX3ZhbHVlcyA9IHNlbGYuZ2V0KGRuLCAiY24i KQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgY25fdmFsdWVzOgotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tlbmRzLmFwcGVuZChjbl92YWx1ZXNb MF0pCi0rICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0IChWYWx1ZUVycm9yLCBJbmRleEVy cm9yKToKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzcwotKwotKyAgICAgICAgcmV0 dXJuIGxpc3Qoc2V0KGJhY2tlbmRzKSkKLSAKLSAgICAgZGVmIGFkZF9lbnRyeShzZWxmLCBlbnRy eSk6Ci0gICAgICAgICAiIiJBZGQgYSBuZXcgZW50cnkKLS0tIAotMi41Mi4wCi0KCmRpZmYgLS1n aXQgYS8wMDM3LUlzc3VlLTcyMzAtUmVncmVzc2lvbi1pbi1oZWFsdGNoZWNrLU5zc0NoZWNrLTcy MzUucGF0Y2ggYi8wMDM3LUlzc3VlLTcyMzAtUmVncmVzc2lvbi1pbi1oZWFsdGNoZWNrLU5zc0No ZWNrLTcyMzUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMxOWU1NTYuLjAw MDAwMDAKLS0tIGEvMDAzNy1Jc3N1ZS03MjMwLVJlZ3Jlc3Npb24taW4taGVhbHRjaGVjay1Oc3ND aGVjay03MjM1LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNjIgKzAsMCBAQAotRnJvbSAzZWJi MzBhNjVlMmI0MDYxMDMwMWU1ZmVlZGRhMDQwOGFjOWYzNjMxIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQotRnJvbTogSmFtZXMgQ2hhcG1hbiA8amFjaGFwbWFAcmVkaGF0LmNvbT4KLURhdGU6IFR1 ZSwgMTAgRmViIDIwMjYgMTA6MzU6NDggKzAwMDAKLVN1YmplY3Q6IFtQQVRDSF0gSXNzdWUgNzIz MCAtIFJlZ3Jlc3Npb24gaW4gaGVhbHRjaGVjayBOc3NDaGVjayAoIzcyMzUpCi0KLURlc2NyaXB0 aW9uOgotRHluYW1pYyBDZXJ0aWZpY2F0ZSBsaWIzODkgdXBkYWRhdGVzIG1vZGlmaWVkIGdldF9j ZXJ0X2RldGFpbHMoKSB0bwotcmV0dXJuIGEgZGljdCBpbnN0ZWFkIG9mIHR1cGxlIGZvcm1hdC4g X2xpbnRfY2VydGlmaWNhdGVfZXhwaXJhdGlvbigpIGFuZAotdGxzLmxpc3RfY2FzKCkgc3RpbGwg YXNzdW1lcyB0dXBsZSBzdHlsZSBhY2Nlc3MuCi0KLUZpeDoKLVVwZGF0ZSBtZXRob2QgdG8gdXNl IGRpY3Qga2V5LgotCi1GaXhlczogaHR0cHM6Ly9naXRodWIuY29tLzM4OWRzLzM4OS1kcy1iYXNl L2lzc3Vlcy83MjMwCi0KLUNvLWF1dGhvcmVkLWJ5OiBAZmxvLXJlbmF1ZAotCi1SZXZpZXdlZCBi eTogQGRyb2lkZWNrIChUaGFuayB5b3UpCi0tLS0KLSBzcmMvbGliMzg5L2xpYjM4OS9jbGlfY3Rs L3Rscy5weSB8IDQgKystLQotIHNyYy9saWIzODkvbGliMzg5L25zc19zc2wucHkgICAgIHwgNCAr Ky0tCi0gMiBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCi0K LWRpZmYgLS1naXQgYS9zcmMvbGliMzg5L2xpYjM4OS9jbGlfY3RsL3Rscy5weSBiL3NyYy9saWIz ODkvbGliMzg5L2NsaV9jdGwvdGxzLnB5Ci1pbmRleCA4ODM0ZjU3NTguLjkxZjFmM2E1OSAxMDA2 NDQKLS0tLSBhL3NyYy9saWIzODkvbGliMzg5L2NsaV9jdGwvdGxzLnB5Ci0rKysgYi9zcmMvbGli Mzg5L2xpYjM4OS9jbGlfY3RsL3Rscy5weQotQEAgLTI1LDkgKzI1LDkgQEAgZGVmIGxpc3RfY2xp ZW50X2NhcyhpbnN0LCBsb2csIGFyZ3MpOgotIAotIGRlZiBsaXN0X2NhcyhpbnN0LCBsb2csIGFy Z3MpOgotICAgICB0bHMgPSBOc3NTc2woZGlyc3J2PWluc3QpCi0tICAgICMgVGhpcyB0dXJucyBh biBhcnJheSBvZiBbKCdDQScsICdDLCwnKV0KLSsgICAgIyBSZXR1cm5zIGEgbGlzdCBvZiBjZXJ0 IGRpY3RzLCBlZyB7J2NuJzogJ25pY2tuYW1lJywgZXRjfQotICAgICBmb3IgYyBpbiB0bHMubGlz dF9jYV9jZXJ0cygpOgotLSAgICAgICAgbG9nLmluZm8oY1swXSkKLSsgICAgICAgIGxvZy5pbmZv KGNbJ2NuJ10pCi0gCi0gCi0gZGVmIHNob3dfY2VydChpbnN0LCBsb2csIGFyZ3MpOgotZGlmZiAt LWdpdCBhL3NyYy9saWIzODkvbGliMzg5L25zc19zc2wucHkgYi9zcmMvbGliMzg5L2xpYjM4OS9u c3Nfc3NsLnB5Ci1pbmRleCA3NjQ0MzQxNjYuLmZhZTY1ZDE5YyAxMDA2NDQKLS0tLSBhL3NyYy9s aWIzODkvbGliMzg5L25zc19zc2wucHkKLSsrKyBiL3NyYy9saWIzODkvbGliMzg5L25zc19zc2wu cHkKLUBAIC05MSwxMyArOTEsMTMgQEAgY2xhc3MgTnNzU3NsKERTTGludCk6Ci0gICAgICAgICAg ICAgaWYgZGlmZl9kYXRlIDwgdGltZWRlbHRhKGRheXM9MCk6Ci0gICAgICAgICAgICAgICAgICMg RXhwaXJlZAotICAgICAgICAgICAgICAgICByZXBvcnQgPSBjb3B5LmRlZXBjb3B5KERTQ0VSVExF MDAwMikKLS0gICAgICAgICAgICAgICAgcmVwb3J0WydkZXRhaWwnXSA9IHJlcG9ydFsnZGV0YWls J10ucmVwbGFjZSgnQ0VSVCcsIGNlcnRbMF0pCi0rICAgICAgICAgICAgICAgIHJlcG9ydFsnZGV0 YWlsJ10gPSByZXBvcnRbJ2RldGFpbCddLnJlcGxhY2UoJ0NFUlQnLCBjZXJ0WydjbiddKQotICAg ICAgICAgICAgICAgICByZXBvcnRbJ2NoZWNrJ10gPSBmJ3RsczpjZXJ0aWZpY2F0ZV9leHBpcmF0 aW9uJwotICAgICAgICAgICAgICAgICB5aWVsZCByZXBvcnQKLSAgICAgICAgICAgICBlbGlmIGRp ZmZfZGF0ZSA8IHRpbWVkZWx0YShkYXlzPTMwKToKLSAgICAgICAgICAgICAgICAgIyBFeHBpcmlu ZyB3aXRoaW4gMzAgZGF5cwotICAgICAgICAgICAgICAgICByZXBvcnQgPSBjb3B5LmRlZXBjb3B5 KERTQ0VSVExFMDAwMSkKLS0gICAgICAgICAgICAgICAgcmVwb3J0WydkZXRhaWwnXSA9IHJlcG9y dFsnZGV0YWlsJ10ucmVwbGFjZSgnQ0VSVCcsIGNlcnRbMF0pCi0rICAgICAgICAgICAgICAgIHJl cG9ydFsnZGV0YWlsJ10gPSByZXBvcnRbJ2RldGFpbCddLnJlcGxhY2UoJ0NFUlQnLCBjZXJ0Wydj biddKQotICAgICAgICAgICAgICAgICByZXBvcnRbJ2NoZWNrJ10gPSBmJ3RsczpjZXJ0aWZpY2F0 ZV9leHBpcmF0aW9uJwotICAgICAgICAgICAgICAgICB5aWVsZCByZXBvcnQKLSAKLS0tIAotMi41 Mi4wCi0KCmRpZmYgLS1naXQgYS8wMDM4LUlzc3VlLTM1NTUtVUktRml4LWF1ZGl0LWlzc3VlLXdp dGgtbnBtLWlzYWFjcy1icmFjZS0ucGF0Y2ggYi8wMDM4LUlzc3VlLTM1NTUtVUktRml4LWF1ZGl0 LWlzc3VlLXdpdGgtbnBtLWlzYWFjcy1icmFjZS0ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IGIwNDg3ZjcuLjAwMDAwMDAKLS0tIGEvMDAzOC1Jc3N1ZS0zNTU1LVVJLUZpeC1h dWRpdC1pc3N1ZS13aXRoLW5wbS1pc2FhY3MtYnJhY2UtLnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsMTIyNSArMCwwIEBACi1Gcm9tIGIyNGFlNGE3NzEwYzY2YjhjMjI0ZWJkNDk4ZGM4MjQ2M2U0 NmY0NWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTaW1vbiBQaWNodWdpbiA8c3Bp Y2h1Z2lAcmVkaGF0LmNvbT4KLURhdGU6IFR1ZSwgMTAgRmViIDIwMjYgMTM6MDk6MjIgLTA4MDAK LVN1YmplY3Q6IFtQQVRDSF0gSXNzdWUgMzU1NSAtIFVJIC0gRml4IGF1ZGl0IGlzc3VlIHdpdGgg bnBtIC0KLSBAaXNhYWNzL2JyYWNlLWV4cGFuc2lvbiAoIzcyMjgpCi0KLURlc2NyaXB0aW9uOiBS dW4gbnBtIGF1ZGl0IGZpeCB0byBhZGRyZXNzIHRoZSB2dWxuZXJhYmlsaXR5Ci1pbiBAaXNhYWNz L2JyYWNlLWV4cGFuc2lvbi4KLQotUmVsYXRlczogaHR0cHM6Ly9naXRodWIuY29tLzM4OWRzLzM4 OS1kcy1iYXNlL2lzc3Vlcy8zNTU1Ci0KLVJldmlld2VkIGJ5OiBAbXJleW5vbGRzMzg5IChUaGFu a3MhKQotLS0tCi0gc3JjL2NvY2twaXQvMzg5LWNvbnNvbGUvcGFja2FnZS1sb2NrLmpzb24gfCA1 ODYgKysrKysrKysrKysrKysrKysrKy0tLQotIDEgZmlsZSBjaGFuZ2VkLCA1MTIgaW5zZXJ0aW9u cygrKSwgNzQgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvY29ja3BpdC8zODktY29u c29sZS9wYWNrYWdlLWxvY2suanNvbiBiL3NyYy9jb2NrcGl0LzM4OS1jb25zb2xlL3BhY2thZ2Ut bG9jay5qc29uCi1pbmRleCAyM2ZhZWY2MmYuLjFjYmQ5NDBlNCAxMDA2NDQKLS0tLSBhL3NyYy9j b2NrcGl0LzM4OS1jb25zb2xlL3BhY2thZ2UtbG9jay5qc29uCi0rKysgYi9zcmMvY29ja3BpdC8z ODktY29uc29sZS9wYWNrYWdlLWxvY2suanNvbgotQEAgLTEwMiw4ICsxMDIsNyBAQAotICAgICAg ICJ2ZXJzaW9uIjogIjIuMi4yIiwKLSAgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3Ry eS5ucG1qcy5vcmcvQGJ1ZmJ1aWxkL3Byb3RvYnVmLy0vcHJvdG9idWYtMi4yLjIudGd6IiwKLSAg ICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1VTnRQQ2Jyd3JlbnBtclh1UnduOWpZcFBvd2VOWGo4 WDVzTXZZZ3NxWXlhSDhqUTZMZlVKU2szZEpMbkJLKzZzZllQckY0aUFJbzVzZDVIUSt0Zzc1QT09 IiwKLS0gICAgICAiZGV2IjogdHJ1ZSwKLS0gICAgICAicGVlciI6IHRydWUKLSsgICAgICAiZGV2 IjogdHJ1ZQotICAgICB9LAotICAgICAibm9kZV9tb2R1bGVzL0Bjc3N0b29scy9jc3MtcGFyc2Vy LWFsZ29yaXRobXMiOiB7Ci0gICAgICAgInZlcnNpb24iOiAiMy4wLjQiLAotQEAgLTEyMCw2ICsx MTksNyBAQAotICAgICAgICAgICAidXJsIjogImh0dHBzOi8vb3BlbmNvbGxlY3RpdmUuY29tL2Nz c3Rvb2xzIgotICAgICAgICAgfQotICAgICAgIF0sCi0rICAgICAgInBlZXIiOiB0cnVlLAotICAg ICAgICJlbmdpbmVzIjogewotICAgICAgICAgIm5vZGUiOiAiPj0xOCIKLSAgICAgICB9LAotQEAg LTE0Miw2ICsxNDIsNyBAQAotICAgICAgICAgICAidXJsIjogImh0dHBzOi8vb3BlbmNvbGxlY3Rp dmUuY29tL2Nzc3Rvb2xzIgotICAgICAgICAgfQotICAgICAgIF0sCi0rICAgICAgInBlZXIiOiB0 cnVlLAotICAgICAgICJlbmdpbmVzIjogewotICAgICAgICAgIm5vZGUiOiAiPj0xOCIKLSAgICAg ICB9Ci1AQCAtNzIyLDYgKzcyMyw3IEBACi0gICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVn aXN0cnkubnBtanMub3JnL0Bmb3J0YXdlc29tZS9mb250YXdlc29tZS1zdmctY29yZS8tL2ZvbnRh d2Vzb21lLXN2Zy1jb3JlLTEuMi4zNi50Z3oiLAotICAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEy LVlVY3NMUUtZYjZEbWFKaklIZERXcEJJR0NjeUUvVytwL0xNR3ZqUWVtNTVNbTJYV1ZBUDVrV1RN S1dMdjlsd3BDVmpwTHhQeU9NT3lVb2NQMUd4cnRBPT0iLAotICAgICAgICJoYXNJbnN0YWxsU2Ny aXB0IjogdHJ1ZSwKLSsgICAgICAicGVlciI6IHRydWUsCi0gICAgICAgImRlcGVuZGVuY2llcyI6 IHsKLSAgICAgICAgICJAZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtY29tbW9uLXR5cGVzIjogIl4w LjIuMzYiCi0gICAgICAgfSwKLUBAIC04MjIsOSArODI0LDkgQEAKLSAgICAgICB9Ci0gICAgIH0s Ci0gICAgICJub2RlX21vZHVsZXMvQGlzYWFjcy9icmFjZS1leHBhbnNpb24iOiB7Ci0tICAgICAg InZlcnNpb24iOiAiNS4wLjAiLAotLSAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5 Lm5wbWpzLm9yZy9AaXNhYWNzL2JyYWNlLWV4cGFuc2lvbi8tL2JyYWNlLWV4cGFuc2lvbi01LjAu MC50Z3oiLAotLSAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLVpUNTVCRExWMHl2MFJCbTJjek1p WitTcUNHTzdBdm1PTTNHL3cyeGhWUEgrdGUwYUtnRmptQnZHbEwxZEgrcWwydGdHTzNNVnJiYjNq Q0t5dnBnbnhBPT0iLAotKyAgICAgICJ2ZXJzaW9uIjogIjUuMC4xIiwKLSsgICAgICAicmVzb2x2 ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvQGlzYWFjcy9icmFjZS1leHBhbnNpb24v LS9icmFjZS1leHBhbnNpb24tNS4wLjEudGd6IiwKLSsgICAgICAiaW50ZWdyaXR5IjogInNoYTUx Mi1XTXo3MVQxSlM2MjRuV2oybjJmbllBdVBvdmh2N0VVaGs2OVI2aTlkc1Z5enh0NWVNM2Jqd3Zn azlMK0FQRTFUUnNjR3lzQVZNQU5rQjBqaDBMUVpyUT09IiwKLSAgICAgICAiZGV2IjogdHJ1ZSwK LSAgICAgICAibGljZW5zZSI6ICJNSVQiLAotICAgICAgICJkZXBlbmRlbmNpZXMiOiB7Ci1AQCAt MTE1Nyw3ICsxMTU5LDYgQEAKLSAgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5u cG1qcy5vcmcvQHR5cGVzY3JpcHQtZXNsaW50L3BhcnNlci8tL3BhcnNlci04LjEzLjAudGd6IiwK LSAgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi13MHhwK3hHZzh1L25PTmNHdzFVWEFyNmNqQ1BV MXcwWFZ5QnM2WnFhajVlTG14a0tRQUJ5VGRWL3VHZ05ONXRWdk4va0twb1FsUDJjTDdSK2FqWlpJ UT09IiwKLSAgICAgICAiZGV2IjogdHJ1ZSwKLS0gICAgICAicGVlciI6IHRydWUsCi0gICAgICAg ImRlcGVuZGVuY2llcyI6IHsKLSAgICAgICAgICJAdHlwZXNjcmlwdC1lc2xpbnQvc2NvcGUtbWFu YWdlciI6ICI4LjEzLjAiLAotICAgICAgICAgIkB0eXBlc2NyaXB0LWVzbGludC90eXBlcyI6ICI4 LjEzLjAiLAotQEAgLTExODYsNyArMTE4Nyw2IEBACi0gICAgICAgInJlc29sdmVkIjogImh0dHBz Oi8vcmVnaXN0cnkubnBtanMub3JnL0B0eXBlc2NyaXB0LWVzbGludC9zY29wZS1tYW5hZ2VyLy0v c2NvcGUtbWFuYWdlci04LjEzLjAudGd6IiwKLSAgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1Y c0dXd3cwb2RjVVQwZ0pvQloxRGV1bFkxK2prYUhVY2lVcTRqS052NGNwSW5idnZydERveUJIOXJF L24yVjI5d1FKUGs4aUNIMXdpcHJhOUJobWlNQT09IiwKLSAgICAgICAiZGV2IjogdHJ1ZSwKLS0g ICAgICAicGVlciI6IHRydWUsCi0gICAgICAgImRlcGVuZGVuY2llcyI6IHsKLSAgICAgICAgICJA dHlwZXNjcmlwdC1lc2xpbnQvdHlwZXMiOiAiOC4xMy4wIiwKLSAgICAgICAgICJAdHlwZXNjcmlw dC1lc2xpbnQvdmlzaXRvci1rZXlzIjogIjguMTMuMCIKLUBAIC0xMjA0LDcgKzEyMDQsNiBAQAot ICAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9AdHlwZXNjcmlw dC1lc2xpbnQvdmlzaXRvci1rZXlzLy0vdmlzaXRvci1rZXlzLTguMTMuMC50Z3oiLAotICAgICAg ICJpbnRlZ3JpdHkiOiAic2hhNTEyLTdOLytsenRKcUg0TXJmMGxiMTBSL0NiSTFFYUFNTUd5RjV5 MG9KdkZvQWhhZndnaVJBN1RYeWQ4VEZuOEZDOGs1eTJkVHNZb2dnMjM4cWF2UkdObmx3PT0iLAot ICAgICAgICJkZXYiOiB0cnVlLAotLSAgICAgICJwZWVyIjogdHJ1ZSwKLSAgICAgICAiZGVwZW5k ZW5jaWVzIjogewotICAgICAgICAgIkB0eXBlc2NyaXB0LWVzbGludC90eXBlcyI6ICI4LjEzLjAi LAotICAgICAgICAgImVzbGludC12aXNpdG9yLWtleXMiOiAiXjMuNC4zIgotQEAgLTEzMTcsNyAr MTMxNiw2IEBACi0gICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3Jn L0B0eXBlc2NyaXB0LWVzbGludC90eXBlcy8tL3R5cGVzLTguMTMuMC50Z3oiLAotICAgICAgICJp bnRlZ3JpdHkiOiAic2hhNTEyLTRjeUZFckpldEZMY2tjVGhSVUZkUmVXSmpWc1BDcXlCbEpUaTZJ REVwYzFHV0NJSVpSRnhWcHBqV0xJTWNRaE5HaGRXSkpSWUZIcEhvRFd2TWxEem5nPT0iLAotICAg ICAgICJkZXYiOiB0cnVlLAotLSAgICAgICJwZWVyIjogdHJ1ZSwKLSAgICAgICAiZW5naW5lcyI6 IHsKLSAgICAgICAgICJub2RlIjogIl4xOC4xOC4wIHx8IF4yMC45LjAgfHwgPj0yMS4xLjAiCi0g ICAgICAgfSwKLUBAIC0xMzMxLDcgKzEzMjksNiBAQAotICAgICAgICJyZXNvbHZlZCI6ICJodHRw czovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9AdHlwZXNjcmlwdC1lc2xpbnQvdHlwZXNjcmlwdC1lc3Ry ZWUvLS90eXBlc2NyaXB0LWVzdHJlZS04LjEzLjAudGd6IiwKLSAgICAgICAiaW50ZWdyaXR5Ijog InNoYTUxMi12N1NDSUdtVnNSSzJDeS9MVExHTjIydWVhNlNhVUlscEJjTy9nbk1HVC83elB0eHA5 MGJwaGNHZjRmeXJDUWwzWnRpQktxVlRHMzJoYjY2OG9JWXkxZz09IiwKLSAgICAgICAiZGV2Ijog dHJ1ZSwKLS0gICAgICAicGVlciI6IHRydWUsCi0gICAgICAgImRlcGVuZGVuY2llcyI6IHsKLSAg ICAgICAgICJAdHlwZXNjcmlwdC1lc2xpbnQvdHlwZXMiOiAiOC4xMy4wIiwKLSAgICAgICAgICJA dHlwZXNjcmlwdC1lc2xpbnQvdmlzaXRvci1rZXlzIjogIjguMTMuMCIsCi1AQCAtMTM2MCw3ICsx MzU3LDYgQEAKLSAgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcv QHR5cGVzY3JpcHQtZXNsaW50L3Zpc2l0b3Ita2V5cy8tL3Zpc2l0b3Ita2V5cy04LjEzLjAudGd6 IiwKLSAgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi03Ti8rbHp0SnFINE1yZjBsYjEwUi9DYkkx RWFBTU1HeUY1eTBvSnZGb0FoYWZ3Z2lSQTdUWHlkOFRGbjhGQzhrNXkyZFRzWW9nZzIzOHFhdlJH Tm5sdz09IiwKLSAgICAgICAiZGV2IjogdHJ1ZSwKLS0gICAgICAicGVlciI6IHRydWUsCi0gICAg ICAgImRlcGVuZGVuY2llcyI6IHsKLSAgICAgICAgICJAdHlwZXNjcmlwdC1lc2xpbnQvdHlwZXMi OiAiOC4xMy4wIiwKLSAgICAgICAgICJlc2xpbnQtdmlzaXRvci1rZXlzIjogIl4zLjQuMyIKLUBA IC0xNDgzLDEzICsxNDc5LDE1IEBACi0gICAgICJub2RlX21vZHVsZXMvQHh0ZXJtL3h0ZXJtIjog ewotICAgICAgICJ2ZXJzaW9uIjogIjUuNS4wIiwKLSAgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6 Ly9yZWdpc3RyeS5ucG1qcy5vcmcvQHh0ZXJtL3h0ZXJtLy0veHRlcm0tNS41LjAudGd6IiwKLS0g ICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1ocUpIWWFRYjVPcHROdW5ueUFua0h5TThhQ2paMU1F SURUUXUxaUliYlREL3hvcHM5MU5CNXlxMVpLL2RDMkpEYlZXdEYyM3pVdGw5SkUyTnF3VDg3QT09 IgotKyAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLWhxSkhZYVFiNU9wdE51bm55QW5rSHlNOGFD aloxTUVJRFRRdTFpSWJiVEQveG9wczkxTkI1eXExWksvZEMySkRiVld0RjIzelV0bDlKRTJOcXdU ODdBPT0iLAotKyAgICAgICJwZWVyIjogdHJ1ZQotICAgICB9LAotICAgICAibm9kZV9tb2R1bGVz L2Fjb3JuIjogewotICAgICAgICJ2ZXJzaW9uIjogIjguMTQuMCIsCi0gICAgICAgInJlc29sdmVk IjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2Fjb3JuLy0vYWNvcm4tOC4xNC4wLnRneiIs Ci0gICAgICAgImludGVncml0eSI6ICJzaGE1MTItY2w2NjluQ0pUWkJzTDk3T0Y0a1VRbTVnNWhD MnVpaGswTnhZM1dFTkFDMFRZZElMVmtBeUh5bUFudGd4R2tsN0srdDBjWElySDVzaXk1UzRYa0Z5 Y0E9PSIsCi0gICAgICAgImRldiI6IHRydWUsCi0rICAgICAgInBlZXIiOiB0cnVlLAotICAgICAg ICJiaW4iOiB7Ci0gICAgICAgICAiYWNvcm4iOiAiYmluL2Fjb3JuIgotICAgICAgIH0sCi1AQCAt MTg1NiwxNSArMTg1NCwxMyBAQAotICAgICAgICJ2ZXJzaW9uIjogIjAuMi4wIiwKLSAgICAgICAi cmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvYnVmZmVyLWJ1aWxkZXIvLS9i dWZmZXItYnVpbGRlci0wLjIuMC50Z3oiLAotICAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLTdW UE1FUHVZem5QU29SMjFORTF6dmQyWG5hNmMvQ2xvaVpDZmNNWFIxSm55NlBqWDBONE5zYTM4emNC Rm8vRk1LK0JsQStGTEtiSkNRMGkyeXhwK1hnPT0iLAotLSAgICAgICJkZXYiOiB0cnVlLAotLSAg ICAgICJwZWVyIjogdHJ1ZQotKyAgICAgICJkZXYiOiB0cnVlCi0gICAgIH0sCi0gICAgICJub2Rl X21vZHVsZXMvYnVpbHRpbi1tb2R1bGVzIjogewotICAgICAgICJ2ZXJzaW9uIjogIjMuMy4wIiwK LSAgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvYnVpbHRpbi1t b2R1bGVzLy0vYnVpbHRpbi1tb2R1bGVzLTMuMy4wLnRneiIsCi0gICAgICAgImludGVncml0eSI6 ICJzaGE1MTItemhhQ0RpY2RMdVdONVViTjVJTW5GcU5NaE5mbzkxOXNIODV5Mi9lYSs1WWc5VHNU a2VaeHBMK0pMYnA2Y2dZRlM0c1JMcDNZVjRTNnlEdXFWV0hZT3c9PSIsCi0gICAgICAgImRldiI6 IHRydWUsCi0tICAgICAgInBlZXIiOiB0cnVlLAotICAgICAgICJlbmdpbmVzIjogewotICAgICAg ICAgIm5vZGUiOiAiPj02IgotICAgICAgIH0sCi1AQCAtMTg3Nyw3ICsxODczLDYgQEAKLSAgICAg ICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvYnVpbHRpbnMvLS9idWls dGlucy01LjEuMC50Z3oiLAotICAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLVNXOWx6R1RMdldU UDFBWTh4ZUFNWmltcURySWFTZExRVWNWcjlETWVmNTFuaUowMjJSaTg3U3dSUktZbTRBNmlIZmtQ YWlWVXUvRHV3MldjNEo3a0tnPT0iLAotICAgICAgICJkZXYiOiB0cnVlLAotLSAgICAgICJwZWVy IjogdHJ1ZSwKLSAgICAgICAiZGVwZW5kZW5jaWVzIjogewotICAgICAgICAgInNlbXZlciI6ICJe Ny4wLjAiCi0gICAgICAgfQotQEAgLTE5OTEsOCArMTk4Niw3IEBACi0gICAgICAgInZlcnNpb24i OiAiMC41LjIiLAotICAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9y Zy9jb2xvcmpzLmlvLy0vY29sb3Jqcy5pby0wLjUuMi50Z3oiLAotICAgICAgICJpbnRlZ3JpdHki OiAic2hhNTEyLXR3bVZvaXpFVzd5bFpTTjMyT2dLZFhSbW8xcWcrd1Q1LzZDM3h1NWI5UXNXelNG QWhITG4yeGQ4cm8wZGlDc0tmQ2oxUmRhVFAvbnJjVyt2QW9RUEl3PT0iLAotLSAgICAgICJkZXYi OiB0cnVlLAotLSAgICAgICJwZWVyIjogdHJ1ZQotKyAgICAgICJkZXYiOiB0cnVlCi0gICAgIH0s Ci0gICAgICJub2RlX21vZHVsZXMvY29tbWFuZGVyIjogewotICAgICAgICJ2ZXJzaW9uIjogIjIu MTEuMCIsCi1AQCAtMjYyOSw2ICsyNjIzLDcgQEAKLSAgICAgICAiZGV2IjogdHJ1ZSwKLSAgICAg ICAiaGFzSW5zdGFsbFNjcmlwdCI6IHRydWUsCi0gICAgICAgImxpY2Vuc2UiOiAiTUlUIiwKLSsg ICAgICAicGVlciI6IHRydWUsCi0gICAgICAgImJpbiI6IHsKLSAgICAgICAgICJlc2J1aWxkIjog ImJpbi9lc2J1aWxkIgotICAgICAgIH0sCi1AQCAtMjczMiw2ICsyNzI3LDcgQEAKLSAgICAgICAi aW50ZWdyaXR5IjogInNoYTUxMi15cG93eUR4cFZTWXBrWHI5V1B2MlBBWkN0TmlwMU12NUtUVzBT Q3VyWHYvOWlPcGNySDlQYXFVRWxrc3FFQjZwQ2hxSEdEUkNGVHlyWmxHaG5MTkdpQT09IiwKLSAg ICAgICAiZGVwcmVjYXRlZCI6ICJUaGlzIHZlcnNpb24gaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC4g UGxlYXNlIHNlZSBodHRwczovL2VzbGludC5vcmcvdmVyc2lvbi1zdXBwb3J0IGZvciBvdGhlciBv cHRpb25zLiIsCi0gICAgICAgImRldiI6IHRydWUsCi0rICAgICAgInBlZXIiOiB0cnVlLAotICAg ICAgICJkZXBlbmRlbmNpZXMiOiB7Ci0gICAgICAgICAiQGVzbGludC1jb21tdW5pdHkvZXNsaW50 LXV0aWxzIjogIl40LjIuMCIsCi0gICAgICAgICAiQGVzbGludC1jb21tdW5pdHkvcmVnZXhwcCI6 ICJeNC42LjEiLAotQEAgLTI3ODcsNyArMjc4Myw2IEBACi0gICAgICAgInJlc29sdmVkIjogImh0 dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2VzbGludC1jb21wYXQtdXRpbHMvLS9lc2xpbnQtY29t cGF0LXV0aWxzLTAuNS4xLnRneiIsCi0gICAgICAgImludGVncml0eSI6ICJzaGE1MTItM3ozdkZl eEtJRW5qSEUzekNNUm82Zm4vZTQ0VTdUMWtoVWpnK0hwMFpRTUNpZ2gyOHJBTEQwblBGQmNHWnVp TEM1ckxaYTJ1YlFIRFJsbjA5SmZVMlE9PSIsCi0gICAgICAgImRldiI6IHRydWUsCi0tICAgICAg InBlZXIiOiB0cnVlLAotICAgICAgICJkZXBlbmRlbmNpZXMiOiB7Ci0gICAgICAgICAic2VtdmVy IjogIl43LjUuNCIKLSAgICAgICB9LAotQEAgLTI5NTAsNyArMjk0NSw2IEBACi0gICAgICAgICAi aHR0cHM6Ly9naXRodWIuY29tL3Nwb25zb3JzL290YS1tZXNoaSIsCi0gICAgICAgICAiaHR0cHM6 Ly9vcGVuY29sbGVjdGl2ZS5jb20vZXNsaW50IgotICAgICAgIF0sCi0tICAgICAgInBlZXIiOiB0 cnVlLAotICAgICAgICJkZXBlbmRlbmNpZXMiOiB7Ci0gICAgICAgICAiQGVzbGludC1jb21tdW5p dHkvZXNsaW50LXV0aWxzIjogIl40LjEuMiIsCi0gICAgICAgICAiQGVzbGludC1jb21tdW5pdHkv cmVnZXhwcCI6ICJeNC4xMS4wIiwKLUBAIC0yOTY4LDYgKzI5NjIsNyBAQAotICAgICAgICJyZXNv bHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9lc2xpbnQtcGx1Z2luLWltcG9ydC8t L2VzbGludC1wbHVnaW4taW1wb3J0LTIuMzEuMC50Z3oiLAotICAgICAgICJpbnRlZ3JpdHkiOiAi c2hhNTEyLWl4bWtJNjJSYmMyL3c4VmZ4eWgxalFSVGRSVEY1MlZ4d1JWSGwveWtQQW1xRytOYjcv a05uK2J5TFAwTHhQZ0k3eldBMTZKdDgyU3liSklubU1pYTNBPT0iLAotICAgICAgICJkZXYiOiB0 cnVlLAotKyAgICAgICJwZWVyIjogdHJ1ZSwKLSAgICAgICAiZGVwZW5kZW5jaWVzIjogewotICAg ICAgICAgIkBydHNhby9zY2MiOiAiXjEuMS4wIiwKLSAgICAgICAgICJhcnJheS1pbmNsdWRlcyI6 ICJeMy4xLjgiLAotQEAgLTMxMDcsNyArMzEwMiw2IEBACi0gICAgICAgInJlc29sdmVkIjogImh0 dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2VzbGludC1wbHVnaW4tbi8tL2VzbGludC1wbHVnaW4t bi0xNi42LjIudGd6IiwKLSAgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi02VHlEbVoxSFhvRlFY bmhDVFVqVkZVTFJlb0JQT0FqcHVpS0VMTWtlUDQweWZmSS8xWlJPK2Q5dWcvVkM2ZnFJU28yV2t1 SUJrM2N2dVJQQUxhV2xPUT09IiwKLSAgICAgICAiZGV2IjogdHJ1ZSwKLS0gICAgICAicGVlciI6 IHRydWUsCi0gICAgICAgImRlcGVuZGVuY2llcyI6IHsKLSAgICAgICAgICJAZXNsaW50LWNvbW11 bml0eS9lc2xpbnQtdXRpbHMiOiAiXjQuNC4wIiwKLSAgICAgICAgICJidWlsdGlucyI6ICJeNS4w LjEiLAotQEAgLTMxMzcsNyArMzEzMSw2IEBACi0gICAgICAgImludGVncml0eSI6ICJzaGE1MTIt OVQ5VWpXM3IwVVc1YzFRN0dUd2xscHRYd2h2WW1FekZoek1mWjlIN0ZRV3QrdVplUGpaUGpCUC9X MVpFeVoxdHdHV29tNS81NlRGNGxQY3FqbkRIY2c9PSIsCi0gICAgICAgImRldiI6IHRydWUsCi0g ICAgICAgImxpY2Vuc2UiOiAiTUlUIiwKLS0gICAgICAicGVlciI6IHRydWUsCi0gICAgICAgImRl cGVuZGVuY2llcyI6IHsKLSAgICAgICAgICJiYWxhbmNlZC1tYXRjaCI6ICJeMS4wLjAiLAotICAg ICAgICAgImNvbmNhdC1tYXAiOiAiMC4wLjEiCi1AQCAtMzE0OCw3ICszMTQxLDYgQEAKLSAgICAg ICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvbWluaW1hdGNoLy0vbWlu aW1hdGNoLTMuMS4yLnRneiIsCi0gICAgICAgImludGVncml0eSI6ICJzaGE1MTItSjdwNjNoUmlB ancxTkRFd3cxVzdpMzcrQnlJck9XTzVYUVFBelozVk9jTDBQTnlid3BmbVYvTjA1ekZBendROVVT eUVjWDZ0M1VPK0s1YXFCUU9JSHc9PSIsCi0gICAgICAgImRldiI6IHRydWUsCi0tICAgICAgInBl ZXIiOiB0cnVlLAotICAgICAgICJkZXBlbmRlbmNpZXMiOiB7Ci0gICAgICAgICAiYnJhY2UtZXhw YW5zaW9uIjogIl4xLjEuNyIKLSAgICAgICB9LAotQEAgLTMyMTMsNiArMzIwNSw3IEBACi0gICAg ICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2VzbGludC1wbHVnaW4t cHJvbWlzZS8tL2VzbGludC1wbHVnaW4tcHJvbWlzZS02LjYuMC50Z3oiLAotICAgICAgICJpbnRl Z3JpdHkiOiAic2hhNTEyLTU3WnpmdzhHNitHcTdheG0yUGRvM2dXL1J4M2g5WXl3Z242MXVFLzNl bFRDT2VQRUhWcm4yaTVDZGZCd0ExQkxLMFEwV3FjdElDSVVTcVhaVy9WcHJRPT0iLAotICAgICAg ICJkZXYiOiB0cnVlLAotKyAgICAgICJwZWVyIjogdHJ1ZSwKLSAgICAgICAiZW5naW5lcyI6IHsK LSAgICAgICAgICJub2RlIjogIl4xMi4yMi4wIHx8IF4xNC4xNy4wIHx8ID49MTYuMC4wIgotICAg ICAgIH0sCi1AQCAtMzIyOCw2ICszMjIxLDcgQEAKLSAgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6 Ly9yZWdpc3RyeS5ucG1qcy5vcmcvZXNsaW50LXBsdWdpbi1yZWFjdC8tL2VzbGludC1wbHVnaW4t cmVhY3QtNy4zNy4xLnRneiIsCi0gICAgICAgImludGVncml0eSI6ICJzaGE1MTIteHdUbndEcXpi RFJBOHVKN0JNeFBzL0VYUkIzaThaZm5PSXA4QnN4RVFrVDBuSFBwK1dXY2VxR2dvNnJLYjljdE5p OEdKTERUNEdvNUhBV0VMYS9XTWc9PSIsCi0gICAgICAgImRldiI6IHRydWUsCi0rICAgICAgInBl ZXIiOiB0cnVlLAotICAgICAgICJkZXBlbmRlbmNpZXMiOiB7Ci0gICAgICAgICAiYXJyYXktaW5j bHVkZXMiOiAiXjMuMS44IiwKLSAgICAgICAgICJhcnJheS5wcm90b3R5cGUuZmluZGxhc3QiOiAi XjEuMi41IiwKLUBAIC0zMjYwLDYgKzMyNTQsNyBAQAotICAgICAgICJyZXNvbHZlZCI6ICJodHRw czovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9lc2xpbnQtcGx1Z2luLXJlYWN0LWhvb2tzLy0vZXNsaW50 LXBsdWdpbi1yZWFjdC1ob29rcy00LjYuMi50Z3oiLAotICAgICAgICJpbnRlZ3JpdHkiOiAic2hh NTEyLVF6bGlOSnE0R2luREJjRDhnUEI1djB3aDZnOHEzU1VpNkVGRjB4OE4vQkw5UG9WczBhdHVH YzQ3b3pNUnlPV0FLZHdhWjVPbmJPRWEzV1IrZFNHS3VRPT0iLAotICAgICAgICJkZXYiOiB0cnVl LAotKyAgICAgICJwZWVyIjogdHJ1ZSwKLSAgICAgICAiZW5naW5lcyI6IHsKLSAgICAgICAgICJu b2RlIjogIj49MTAiCi0gICAgICAgfSwKLUBAIC0zNjU3LDYgKzM2NTIsMjEgQEAKLSAgICAgICAi aW50ZWdyaXR5IjogInNoYTUxMi1PTzBwSDJsSzZhMGhabkFkYXU1SXR6SFBJNnBVbHZJN2pNVm54 VVFSdHc0b3dGMndrOGxPU2FidEdEQ1RQNEdncmcyTWJHbldPOVg4SzF0NCtmR01Edz09IiwKLSAg ICAgICAiZGV2IjogdHJ1ZQotICAgICB9LAotKyAgICAibm9kZV9tb2R1bGVzL2ZzZXZlbnRzIjog ewotKyAgICAgICJ2ZXJzaW9uIjogIjIuMy4zIiwKLSsgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6 Ly9yZWdpc3RyeS5ucG1qcy5vcmcvZnNldmVudHMvLS9mc2V2ZW50cy0yLjMuMy50Z3oiLAotKyAg ICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLTV4b0RmWCtmTDdmYUFUbmFnbVdQcGJGdHdoL1I3N1dt TU1xcUhHUzY1QzN2dkIwWUhyZ0YrQjFZbVozNDQxdE1qNW42M2swMjEyWE5vSnd6bGhmZlF3PT0i LAotKyAgICAgICJkZXYiOiB0cnVlLAotKyAgICAgICJoYXNJbnN0YWxsU2NyaXB0IjogdHJ1ZSwK LSsgICAgICAibGljZW5zZSI6ICJNSVQiLAotKyAgICAgICJvcHRpb25hbCI6IHRydWUsCi0rICAg ICAgIm9zIjogWwotKyAgICAgICAgImRhcndpbiIKLSsgICAgICBdLAotKyAgICAgICJlbmdpbmVz IjogewotKyAgICAgICAgIm5vZGUiOiAiXjguMTYuMCB8fCBeMTAuNi4wIHx8ID49MTEuMC4wIgot KyAgICAgIH0KLSsgICAgfSwKLSAgICAgIm5vZGVfbW9kdWxlcy9mdW5jdGlvbi1iaW5kIjogewot ICAgICAgICJ2ZXJzaW9uIjogIjEuMS4yIiwKLSAgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9y ZWdpc3RyeS5ucG1qcy5vcmcvZnVuY3Rpb24tYmluZC8tL2Z1bmN0aW9uLWJpbmQtMS4xLjIudGd6 IiwKLUBAIC0zNzQ2LDcgKzM3NTYsNiBAQAotICAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3Jl Z2lzdHJ5Lm5wbWpzLm9yZy9nZXQtdHNjb25maWcvLS9nZXQtdHNjb25maWctNC44LjEudGd6IiwK LSAgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1rOVBOK2NGQm1hTFd0VnoyOVNrVW9xVTVPMHNs THVISlh0LzJQK3RNVkZUK3Boc1NHWEdrcDl0M3JRSXFkejBlKzA2RUhOR3Mzb002WlgxczJ6SHhS Zz09IiwKLSAgICAgICAiZGV2IjogdHJ1ZSwKLS0gICAgICAicGVlciI6IHRydWUsCi0gICAgICAg ImRlcGVuZGVuY2llcyI6IHsKLSAgICAgICAgICJyZXNvbHZlLXBrZy1tYXBzIjogIl4xLjAuMCIK LSAgICAgICB9LAotQEAgLTQyODEsNyArNDI5MCw2IEBACi0gICAgICAgInJlc29sdmVkIjogImh0 dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2lzLWJ1aWx0aW4tbW9kdWxlLy0vaXMtYnVpbHRpbi1t b2R1bGUtMy4yLjEudGd6IiwKLSAgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1CU0xFM0huVjJz eVowRkswaU1BL3lVR3BsVWVNbU56NEFXNWZuVHVuYkNJcVppNHZHM1dqSlQ5RkhNeTVENjl4bUFZ QkhYUWhKZEFMZHB3VnhWNTAxQT09IiwKLSAgICAgICAiZGV2IjogdHJ1ZSwKLS0gICAgICAicGVl ciI6IHRydWUsCi0gICAgICAgImRlcGVuZGVuY2llcyI6IHsKLSAgICAgICAgICJidWlsdGluLW1v ZHVsZXMiOiAiXjMuMy4wIgotICAgICAgIH0sCi1AQCAtNTQwOSw2ICs1NDE3LDcgQEAKLSAgICAg ICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3BvbnNvcnMvYWkiCi0gICAgICAgICB9 Ci0gICAgICAgXSwKLSsgICAgICAicGVlciI6IHRydWUsCi0gICAgICAgImRlcGVuZGVuY2llcyI6 IHsKLSAgICAgICAgICJuYW5vaWQiOiAiXjMuMy43IiwKLSAgICAgICAgICJwaWNvY29sb3JzIjog Il4xLjEuMCIsCi1AQCAtNTQ4Nyw2ICs1NDk2LDcgQEAKLSAgICAgICAicmVzb2x2ZWQiOiAiaHR0 cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvcG9zdGNzcy1zZWxlY3Rvci1wYXJzZXIvLS9wb3N0Y3Nz LXNlbGVjdG9yLXBhcnNlci02LjEuMi50Z3oiLAotICAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEy LVE4cVFmUGlaK1RITy8zWnJPck8wY0pKS2ZwWUNhZ3RNVWtYYm5FZm1nVWp3WGc2ei9XQmVPeVM5 QVBCQlBDVFNpRFYrczRTd1FHdTh5RnNpTVJJdWRnPT0iLAotICAgICAgICJkZXYiOiB0cnVlLAot KyAgICAgICJwZWVyIjogdHJ1ZSwKLSAgICAgICAiZGVwZW5kZW5jaWVzIjogewotICAgICAgICAg ImNzc2VzYyI6ICJeMy4wLjAiLAotICAgICAgICAgInV0aWwtZGVwcmVjYXRlIjogIl4xLjAuMiIK LUBAIC01NjEwLDYgKzU2MjAsNyBAQAotICAgICAgICJ2ZXJzaW9uIjogIjE4LjMuMSIsCi0gICAg ICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3JlYWN0Ly0vcmVhY3Qt MTguMy4xLnRneiIsCi0gICAgICAgImludGVncml0eSI6ICJzaGE1MTItd1MraEFnSlNoUjBLaEV2 UEpBcmZ1UFZOMStIejF0MFk2bjVqTHJHUWJrYjR1cmdQRS8wUnZlKzFrTUIxdi9vV2dIZ200V0lj VitpN0YycFRWaisyaVE9PSIsCi0rICAgICAgInBlZXIiOiB0cnVlLAotICAgICAgICJkZXBlbmRl bmNpZXMiOiB7Ci0gICAgICAgICAibG9vc2UtZW52aWZ5IjogIl4xLjEuMCIKLSAgICAgICB9LAot QEAgLTU2MjEsNiArNTYzMiw3IEBACi0gICAgICAgInZlcnNpb24iOiAiMTguMy4xIiwKLSAgICAg ICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvcmVhY3QtZG9tLy0vcmVh Y3QtZG9tLTE4LjMuMS50Z3oiLAotICAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLTVtNG5RS3Ar clpSYjA5TE5INTlHTTRCeFRoOTI1MS95bGJLSWJwZTdUcEd4ZkorOWt2NkJMa0xCWElqanNwYmdi bklCTnFsSTIzdFJuVFdUMHNuVUl3PT0iLAotKyAgICAgICJwZWVyIjogdHJ1ZSwKLSAgICAgICAi ZGVwZW5kZW5jaWVzIjogewotICAgICAgICAgImxvb3NlLWVudmlmeSI6ICJeMS4xLjAiLAotICAg ICAgICAgInNjaGVkdWxlciI6ICJeMC4yMy4yIgotQEAgLTU4MDUsNyArNTgxNyw2IEBACi0gICAg ICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3Jlc29sdmUtcGtnLW1h cHMvLS9yZXNvbHZlLXBrZy1tYXBzLTEuMC4wLnRneiIsCi0gICAgICAgImludGVncml0eSI6ICJz aGE1MTItc2VTMlRqMjZUQlZPQzJOSWMyck9lMnkyWk83ZWZ4SVR0TFpjR1NPbkhITk9RN0NraVVC ZncwSXcyY2s2eGtJaFB3TGhLTkxTOEJPK2hFcG5nUWxxenc9PSIsCi0gICAgICAgImRldiI6IHRy dWUsCi0tICAgICAgInBlZXIiOiB0cnVlLAotICAgICAgICJmdW5kaW5nIjogewotICAgICAgICAg InVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcHJpdmF0ZW51bWJlci9yZXNvbHZlLXBrZy1tYXBz P3Nwb25zb3I9MSIKLSAgICAgICB9Ci1AQCAtNTkwOCw3ICs1OTE5LDYgQEAKLSAgICAgICAicmVz b2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvcnhqcy8tL3J4anMtNy44LjEudGd6 IiwKLSAgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1BQTNUVmorMEEyaXVJb1FrV0VLL3RxRmpC cTJqKzZQTzZZMHpKY3Z6TEFGaEVGSU8zSEwwdmxzOWhXTG5jWmJBQWJLMG1hcjdvWjRWMDc5SS9x UE14Zz09IiwKLSAgICAgICAiZGV2IjogdHJ1ZSwKLS0gICAgICAicGVlciI6IHRydWUsCi0gICAg ICAgImRlcGVuZGVuY2llcyI6IHsKLSAgICAgICAgICJ0c2xpYiI6ICJeMi4xLjAiCi0gICAgICAg fQotQEAgLTYwMDAsNyArNjAxMCw2IEBACi0gICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVn aXN0cnkubnBtanMub3JnL3Nhc3MtZW1iZWRkZWQvLS9zYXNzLWVtYmVkZGVkLTEuODAuNi50Z3oi LAotICAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLU9nNGFxQm5hQTNvSmZJcEhhTHVOQVRBcXpC UmdVSkRZSnkyWDE1VjU5Y290MndZT3RpVC9jaVBueXVxMW83dnBERWVPa0hoRWQrbVN2aVNsWG9F VHVnPT0iLAotICAgICAgICJkZXYiOiB0cnVlLAotLSAgICAgICJwZWVyIjogdHJ1ZSwKLSAgICAg ICAiZGVwZW5kZW5jaWVzIjogewotICAgICAgICAgIkBidWZidWlsZC9wcm90b2J1ZiI6ICJeMi4w LjAiLAotICAgICAgICAgImJ1ZmZlci1idWlsZGVyIjogIl4wLjIuMCIsCi1AQCAtNjAzOSw2ICs2 MDQ4LDI0NCBAQAotICAgICAgICAgInNhc3MtZW1iZWRkZWQtd2luMzIteDY0IjogIjEuODAuNiIK LSAgICAgICB9Ci0gICAgIH0sCi0rICAgICJub2RlX21vZHVsZXMvc2Fzcy1lbWJlZGRlZC1hbmRy b2lkLWFybSI6IHsKLSsgICAgICAidmVyc2lvbiI6ICIxLjgwLjYiLAotKyAgICAgICJyZXNvbHZl ZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9zYXNzLWVtYmVkZGVkLWFuZHJvaWQtYXJt Ly0vc2Fzcy1lbWJlZGRlZC1hbmRyb2lkLWFybS0xLjgwLjYudGd6IiwKLSsgICAgICAiaW50ZWdy aXR5IjogInNoYTUxMi1VZVVLTVRSc256NC9kaDdJenZoak9OeGE0L2ptVnA1MzlDSERkOFZaT3Nx ZzlNM0hjTkpOSWtVelFXYnV3WituU2xXclR1bzdUdm4zWGx5cG9wQ0J6dz09IiwKLSsgICAgICAi Y3B1IjogWwotKyAgICAgICAgImFybSIKLSsgICAgICBdLAotKyAgICAgICJkZXYiOiB0cnVlLAot KyAgICAgICJsaWNlbnNlIjogIk1JVCIsCi0rICAgICAgIm9wdGlvbmFsIjogdHJ1ZSwKLSsgICAg ICAib3MiOiBbCi0rICAgICAgICAiYW5kcm9pZCIKLSsgICAgICBdLAotKyAgICAgICJlbmdpbmVz IjogewotKyAgICAgICAgIm5vZGUiOiAiPj0xNC4wLjAiCi0rICAgICAgfQotKyAgICB9LAotKyAg ICAibm9kZV9tb2R1bGVzL3Nhc3MtZW1iZWRkZWQtYW5kcm9pZC1hcm02NCI6IHsKLSsgICAgICAi dmVyc2lvbiI6ICIxLjgwLjYiLAotKyAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5 Lm5wbWpzLm9yZy9zYXNzLWVtYmVkZGVkLWFuZHJvaWQtYXJtNjQvLS9zYXNzLWVtYmVkZGVkLWFu ZHJvaWQtYXJtNjQtMS44MC42LnRneiIsCi0rICAgICAgImludGVncml0eSI6ICJzaGE1MTItNHJD NFpHTS9rNEVOVmpMWG5LM0pUc3Q4ZThGSTlNSFNvbDJGbDdkQ2RZeUozS0xubHQ0cUw0QUVZZlU4 enExdGNCYjdDQk9TWlZSK0N6Q0t1Ym5YZGc9PSIsCi0rICAgICAgImNwdSI6IFsKLSsgICAgICAg ICJhcm02NCIKLSsgICAgICBdLAotKyAgICAgICJkZXYiOiB0cnVlLAotKyAgICAgICJsaWNlbnNl IjogIk1JVCIsCi0rICAgICAgIm9wdGlvbmFsIjogdHJ1ZSwKLSsgICAgICAib3MiOiBbCi0rICAg ICAgICAiYW5kcm9pZCIKLSsgICAgICBdLAotKyAgICAgICJlbmdpbmVzIjogewotKyAgICAgICAg Im5vZGUiOiAiPj0xNC4wLjAiCi0rICAgICAgfQotKyAgICB9LAotKyAgICAibm9kZV9tb2R1bGVz L3Nhc3MtZW1iZWRkZWQtYW5kcm9pZC1pYTMyIjogewotKyAgICAgICJ2ZXJzaW9uIjogIjEuODAu NiIsCi0rICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3Nhc3Mt ZW1iZWRkZWQtYW5kcm9pZC1pYTMyLy0vc2Fzcy1lbWJlZGRlZC1hbmRyb2lkLWlhMzItMS44MC42 LnRneiIsCi0rICAgICAgImludGVncml0eSI6ICJzaGE1MTItTHh6MlNYRTJLZEhueW51SEYrRDZm bER2cmQ1NS96YUVBV1Vla2E5TXhFcjZGbVI2NmQ4VUJPSXk1RVR3Q1NVZC8vUy9TRTVKbDZvVG5I cHBnRDF6TkE9PSIsCi0rICAgICAgImNwdSI6IFsKLSsgICAgICAgICJpYTMyIgotKyAgICAgIF0s Ci0rICAgICAgImRldiI6IHRydWUsCi0rICAgICAgImxpY2Vuc2UiOiAiTUlUIiwKLSsgICAgICAi b3B0aW9uYWwiOiB0cnVlLAotKyAgICAgICJvcyI6IFsKLSsgICAgICAgICJhbmRyb2lkIgotKyAg ICAgIF0sCi0rICAgICAgImVuZ2luZXMiOiB7Ci0rICAgICAgICAibm9kZSI6ICI+PTE0LjAuMCIK LSsgICAgICB9Ci0rICAgIH0sCi0rICAgICJub2RlX21vZHVsZXMvc2Fzcy1lbWJlZGRlZC1hbmRy b2lkLXJpc2N2NjQiOiB7Ci0rICAgICAgInZlcnNpb24iOiAiMS44MC42IiwKLSsgICAgICAicmVz b2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvc2Fzcy1lbWJlZGRlZC1hbmRyb2lk LXJpc2N2NjQvLS9zYXNzLWVtYmVkZGVkLWFuZHJvaWQtcmlzY3Y2NC0xLjgwLjYudGd6IiwKLSsg ICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1oS2R4WS9vT3FCK0pKaFNvQlRETTVESk8xai94dHhR Z2F5aDJjTENDVXgzN0lRUWUzU0VkYzNWMkpGZi80bUlvNXBlYVM0Y2pxd3dTQVRGK2wyemFYZz09 IiwKLSsgICAgICAiY3B1IjogWwotKyAgICAgICAgInJpc2N2NjQiCi0rICAgICAgXSwKLSsgICAg ICAiZGV2IjogdHJ1ZSwKLSsgICAgICAibGljZW5zZSI6ICJNSVQiLAotKyAgICAgICJvcHRpb25h bCI6IHRydWUsCi0rICAgICAgIm9zIjogWwotKyAgICAgICAgImFuZHJvaWQiCi0rICAgICAgXSwK LSsgICAgICAiZW5naW5lcyI6IHsKLSsgICAgICAgICJub2RlIjogIj49MTQuMC4wIgotKyAgICAg IH0KLSsgICAgfSwKLSsgICAgIm5vZGVfbW9kdWxlcy9zYXNzLWVtYmVkZGVkLWFuZHJvaWQteDY0 IjogewotKyAgICAgICJ2ZXJzaW9uIjogIjEuODAuNiIsCi0rICAgICAgInJlc29sdmVkIjogImh0 dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3Nhc3MtZW1iZWRkZWQtYW5kcm9pZC14NjQvLS9zYXNz LWVtYmVkZGVkLWFuZHJvaWQteDY0LTEuODAuNi50Z3oiLAotKyAgICAgICJpbnRlZ3JpdHkiOiAi c2hhNTEyLUVhcDJGaTNrVHgvclZMQnNPbk9wNVJZUHI1K2xGalRaNjUyelIyNGRtWUZlOS9zRGdh c2FrSklPUGpPdkQyYlJ1TDl6MHVXRVkxQVhWZWVPUGVaS3JnPT0iLAotKyAgICAgICJjcHUiOiBb Ci0rICAgICAgICAieDY0IgotKyAgICAgIF0sCi0rICAgICAgImRldiI6IHRydWUsCi0rICAgICAg ImxpY2Vuc2UiOiAiTUlUIiwKLSsgICAgICAib3B0aW9uYWwiOiB0cnVlLAotKyAgICAgICJvcyI6 IFsKLSsgICAgICAgICJhbmRyb2lkIgotKyAgICAgIF0sCi0rICAgICAgImVuZ2luZXMiOiB7Ci0r ICAgICAgICAibm9kZSI6ICI+PTE0LjAuMCIKLSsgICAgICB9Ci0rICAgIH0sCi0rICAgICJub2Rl X21vZHVsZXMvc2Fzcy1lbWJlZGRlZC1kYXJ3aW4tYXJtNjQiOiB7Ci0rICAgICAgInZlcnNpb24i OiAiMS44MC42IiwKLSsgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5v cmcvc2Fzcy1lbWJlZGRlZC1kYXJ3aW4tYXJtNjQvLS9zYXNzLWVtYmVkZGVkLWRhcndpbi1hcm02 NC0xLjgwLjYudGd6IiwKLSsgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi0wbW5BeDhWcTZHeGoz UFF0M2ltZ0lUZkszM2hocXJTS3B5SFN1YWI3MWdaWm5pNW9wc2R0b2dncTJKYXdXKzF0YVJGVEVa d2JaSkxLWjBNQkRid0NDQT09IiwKLSsgICAgICAiY3B1IjogWwotKyAgICAgICAgImFybTY0Igot KyAgICAgIF0sCi0rICAgICAgImRldiI6IHRydWUsCi0rICAgICAgImxpY2Vuc2UiOiAiTUlUIiwK LSsgICAgICAib3B0aW9uYWwiOiB0cnVlLAotKyAgICAgICJvcyI6IFsKLSsgICAgICAgICJkYXJ3 aW4iCi0rICAgICAgXSwKLSsgICAgICAiZW5naW5lcyI6IHsKLSsgICAgICAgICJub2RlIjogIj49 MTQuMC4wIgotKyAgICAgIH0KLSsgICAgfSwKLSsgICAgIm5vZGVfbW9kdWxlcy9zYXNzLWVtYmVk ZGVkLWRhcndpbi14NjQiOiB7Ci0rICAgICAgInZlcnNpb24iOiAiMS44MC42IiwKLSsgICAgICAi cmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvc2Fzcy1lbWJlZGRlZC1kYXJ3 aW4teDY0Ly0vc2Fzcy1lbWJlZGRlZC1kYXJ3aW4teDY0LTEuODAuNi50Z3oiLAotKyAgICAgICJp bnRlZ3JpdHkiOiAic2hhNTEyLUliMjB5TlpGT3JKN1lWVCtsdG9lK0pRTktQY1JjbE0zaUxBSzY5 WFpaWWNTZUZNLzcyU0NvUUJBYVZHSXBUMjNkeERwN0ZYaUU0bE82MDJjM3hUUndRPT0iLAotKyAg ICAgICJjcHUiOiBbCi0rICAgICAgICAieDY0IgotKyAgICAgIF0sCi0rICAgICAgImRldiI6IHRy dWUsCi0rICAgICAgImxpY2Vuc2UiOiAiTUlUIiwKLSsgICAgICAib3B0aW9uYWwiOiB0cnVlLAot KyAgICAgICJvcyI6IFsKLSsgICAgICAgICJkYXJ3aW4iCi0rICAgICAgXSwKLSsgICAgICAiZW5n aW5lcyI6IHsKLSsgICAgICAgICJub2RlIjogIj49MTQuMC4wIgotKyAgICAgIH0KLSsgICAgfSwK LSsgICAgIm5vZGVfbW9kdWxlcy9zYXNzLWVtYmVkZGVkLWxpbnV4LWFybSI6IHsKLSsgICAgICAi dmVyc2lvbiI6ICIxLjgwLjYiLAotKyAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5 Lm5wbWpzLm9yZy9zYXNzLWVtYmVkZGVkLWxpbnV4LWFybS8tL3Nhc3MtZW1iZWRkZWQtbGludXgt YXJtLTEuODAuNi50Z3oiLAotKyAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLVFSMFE2VFpveC9U aHVVMnI5YzBzM2ZLQ2dVMnJYQUVvY3BpdGRneEZwNnR0YStHc1FsTUZWM29PTjJ1bkFhOEJ3bnV4 a21mMFlPYUswT3kvVHd6a1h3PT0iLAotKyAgICAgICJjcHUiOiBbCi0rICAgICAgICAiYXJtIgot KyAgICAgIF0sCi0rICAgICAgImRldiI6IHRydWUsCi0rICAgICAgImxpY2Vuc2UiOiAiTUlUIiwK LSsgICAgICAib3B0aW9uYWwiOiB0cnVlLAotKyAgICAgICJvcyI6IFsKLSsgICAgICAgICJsaW51 eCIKLSsgICAgICBdLAotKyAgICAgICJlbmdpbmVzIjogewotKyAgICAgICAgIm5vZGUiOiAiPj0x NC4wLjAiCi0rICAgICAgfQotKyAgICB9LAotKyAgICAibm9kZV9tb2R1bGVzL3Nhc3MtZW1iZWRk ZWQtbGludXgtYXJtNjQiOiB7Ci0rICAgICAgInZlcnNpb24iOiAiMS44MC42IiwKLSsgICAgICAi cmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvc2Fzcy1lbWJlZGRlZC1saW51 eC1hcm02NC8tL3Nhc3MtZW1iZWRkZWQtbGludXgtYXJtNjQtMS44MC42LnRneiIsCi0rICAgICAg ImludGVncml0eSI6ICJzaGE1MTItbjVyOThwQlhhd3JRUUtheElZQ01NMXpEcG5uZ3NxeFRrT3Jt dnNZTEZpQU1DU2JSMGxXZi83c0JCMzNrL1BtMEQ2ZHNicDNqcEhpbENvUU5LSTNqSXc9PSIsCi0r ICAgICAgImNwdSI6IFsKLSsgICAgICAgICJhcm02NCIKLSsgICAgICBdLAotKyAgICAgICJkZXYi OiB0cnVlLAotKyAgICAgICJsaWNlbnNlIjogIk1JVCIsCi0rICAgICAgIm9wdGlvbmFsIjogdHJ1 ZSwKLSsgICAgICAib3MiOiBbCi0rICAgICAgICAibGludXgiCi0rICAgICAgXSwKLSsgICAgICAi ZW5naW5lcyI6IHsKLSsgICAgICAgICJub2RlIjogIj49MTQuMC4wIgotKyAgICAgIH0KLSsgICAg fSwKLSsgICAgIm5vZGVfbW9kdWxlcy9zYXNzLWVtYmVkZGVkLWxpbnV4LWlhMzIiOiB7Ci0rICAg ICAgInZlcnNpb24iOiAiMS44MC42IiwKLSsgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdp c3RyeS5ucG1qcy5vcmcvc2Fzcy1lbWJlZGRlZC1saW51eC1pYTMyLy0vc2Fzcy1lbWJlZGRlZC1s aW51eC1pYTMyLTEuODAuNi50Z3oiLAotKyAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLU82ZFda ZGNPa3J5UmREQ3hWTUdPZVZvd2dibHBEZ1ZjQXVSdFoxRjFYN1hmYnBEcmlUUW02NEQrOXZWWkly eXdZU1BvSmZRTUpKNjYyY3Iwd1VzOUlRPT0iLAotKyAgICAgICJjcHUiOiBbCi0rICAgICAgICAi aWEzMiIKLSsgICAgICBdLAotKyAgICAgICJkZXYiOiB0cnVlLAotKyAgICAgICJsaWNlbnNlIjog Ik1JVCIsCi0rICAgICAgIm9wdGlvbmFsIjogdHJ1ZSwKLSsgICAgICAib3MiOiBbCi0rICAgICAg ICAibGludXgiCi0rICAgICAgXSwKLSsgICAgICAiZW5naW5lcyI6IHsKLSsgICAgICAgICJub2Rl IjogIj49MTQuMC4wIgotKyAgICAgIH0KLSsgICAgfSwKLSsgICAgIm5vZGVfbW9kdWxlcy9zYXNz LWVtYmVkZGVkLWxpbnV4LW11c2wtYXJtIjogewotKyAgICAgICJ2ZXJzaW9uIjogIjEuODAuNiIs Ci0rICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3Nhc3MtZW1i ZWRkZWQtbGludXgtbXVzbC1hcm0vLS9zYXNzLWVtYmVkZGVkLWxpbnV4LW11c2wtYXJtLTEuODAu Ni50Z3oiLAotKyAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLVg5RkM4czhmdlFHUmlYYytlQVRs WjU3TjQ0SXEzbk5hME0wdWdpM3lzZEp3a2FOWXZPZVM0UXpCSEtRQWF3M1FpVHFkeFRuTFVISFZC a3l6ZENpOXB3PT0iLAotKyAgICAgICJjcHUiOiBbCi0rICAgICAgICAiYXJtIgotKyAgICAgIF0s Ci0rICAgICAgImRldiI6IHRydWUsCi0rICAgICAgImxpY2Vuc2UiOiAiTUlUIiwKLSsgICAgICAi b3B0aW9uYWwiOiB0cnVlLAotKyAgICAgICJvcyI6IFsKLSsgICAgICAgICJsaW51eCIKLSsgICAg ICBdLAotKyAgICAgICJlbmdpbmVzIjogewotKyAgICAgICAgIm5vZGUiOiAiPj0xNC4wLjAiCi0r ICAgICAgfQotKyAgICB9LAotKyAgICAibm9kZV9tb2R1bGVzL3Nhc3MtZW1iZWRkZWQtbGludXgt bXVzbC1hcm02NCI6IHsKLSsgICAgICAidmVyc2lvbiI6ICIxLjgwLjYiLAotKyAgICAgICJyZXNv bHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9zYXNzLWVtYmVkZGVkLWxpbnV4LW11 c2wtYXJtNjQvLS9zYXNzLWVtYmVkZGVkLWxpbnV4LW11c2wtYXJtNjQtMS44MC42LnRneiIsCi0r ICAgICAgImludGVncml0eSI6ICJzaGE1MTItVmVVU0hVaTNNQXN2T2xnOVFJNFgvMmowNGgxNjU5 YUUrN3FLUC8yODJDWUJUckdrakZHU1haaElraTlXS1dEZ0lwRGlTSW5SWVhmUVFSV2hQaGpDRGc9 PSIsCi0rICAgICAgImNwdSI6IFsKLSsgICAgICAgICJhcm02NCIKLSsgICAgICBdLAotKyAgICAg ICJkZXYiOiB0cnVlLAotKyAgICAgICJsaWNlbnNlIjogIk1JVCIsCi0rICAgICAgIm9wdGlvbmFs IjogdHJ1ZSwKLSsgICAgICAib3MiOiBbCi0rICAgICAgICAibGludXgiCi0rICAgICAgXSwKLSsg ICAgICAiZW5naW5lcyI6IHsKLSsgICAgICAgICJub2RlIjogIj49MTQuMC4wIgotKyAgICAgIH0K LSsgICAgfSwKLSsgICAgIm5vZGVfbW9kdWxlcy9zYXNzLWVtYmVkZGVkLWxpbnV4LW11c2wtaWEz MiI6IHsKLSsgICAgICAidmVyc2lvbiI6ICIxLjgwLjYiLAotKyAgICAgICJyZXNvbHZlZCI6ICJo dHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9zYXNzLWVtYmVkZGVkLWxpbnV4LW11c2wtaWEzMi8t L3Nhc3MtZW1iZWRkZWQtbGludXgtbXVzbC1pYTMyLTEuODAuNi50Z3oiLAotKyAgICAgICJpbnRl Z3JpdHkiOiAic2hhNTEyLUdxaXRTMk5hYjhhaDArd2ZDcWF4VzFobkkxcGlDMDhGaW1MNitsTTlZ V0s1RGJDT09GODJJYXBidkpPeTBmZVVtZC93Tm5IbXlOVGdFOWgwelZNRmRRPT0iLAotKyAgICAg ICJjcHUiOiBbCi0rICAgICAgICAiaWEzMiIKLSsgICAgICBdLAotKyAgICAgICJkZXYiOiB0cnVl LAotKyAgICAgICJsaWNlbnNlIjogIk1JVCIsCi0rICAgICAgIm9wdGlvbmFsIjogdHJ1ZSwKLSsg ICAgICAib3MiOiBbCi0rICAgICAgICAibGludXgiCi0rICAgICAgXSwKLSsgICAgICAiZW5naW5l cyI6IHsKLSsgICAgICAgICJub2RlIjogIj49MTQuMC4wIgotKyAgICAgIH0KLSsgICAgfSwKLSsg ICAgIm5vZGVfbW9kdWxlcy9zYXNzLWVtYmVkZGVkLWxpbnV4LW11c2wtcmlzY3Y2NCI6IHsKLSsg ICAgICAidmVyc2lvbiI6ICIxLjgwLjYiLAotKyAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3Jl Z2lzdHJ5Lm5wbWpzLm9yZy9zYXNzLWVtYmVkZGVkLWxpbnV4LW11c2wtcmlzY3Y2NC8tL3Nhc3Mt ZW1iZWRkZWQtbGludXgtbXVzbC1yaXNjdjY0LTEuODAuNi50Z3oiLAotKyAgICAgICJpbnRlZ3Jp dHkiOiAic2hhNTEyLXlTczE1ejdRU1JSUUsvYUJ5RUVxYUpMWVcvc1RwZnluZWZOUFpDdHNWTlZF ek5Sd3krRFJweE5DaHR4bytRaktxOTdvY1hFVGJkRzVLTGlrN1FPVEpnPT0iLAotKyAgICAgICJj cHUiOiBbCi0rICAgICAgICAicmlzY3Y2NCIKLSsgICAgICBdLAotKyAgICAgICJkZXYiOiB0cnVl LAotKyAgICAgICJsaWNlbnNlIjogIk1JVCIsCi0rICAgICAgIm9wdGlvbmFsIjogdHJ1ZSwKLSsg ICAgICAib3MiOiBbCi0rICAgICAgICAibGludXgiCi0rICAgICAgXSwKLSsgICAgICAiZW5naW5l cyI6IHsKLSsgICAgICAgICJub2RlIjogIj49MTQuMC4wIgotKyAgICAgIH0KLSsgICAgfSwKLSAg ICAgIm5vZGVfbW9kdWxlcy9zYXNzLWVtYmVkZGVkLWxpbnV4LW11c2wteDY0IjogewotICAgICAg ICJ2ZXJzaW9uIjogIjEuODAuNiIsCi0gICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0 cnkubnBtanMub3JnL3Nhc3MtZW1iZWRkZWQtbGludXgtbXVzbC14NjQvLS9zYXNzLWVtYmVkZGVk LWxpbnV4LW11c2wteDY0LTEuODAuNi50Z3oiLAotQEAgLTYwNTEsNyArNjI5OCwyMyBAQAotICAg ICAgICJvcyI6IFsKLSAgICAgICAgICJsaW51eCIKLSAgICAgICBdLAotLSAgICAgICJwZWVyIjog dHJ1ZSwKLSsgICAgICAiZW5naW5lcyI6IHsKLSsgICAgICAgICJub2RlIjogIj49MTQuMC4wIgot KyAgICAgIH0KLSsgICAgfSwKLSsgICAgIm5vZGVfbW9kdWxlcy9zYXNzLWVtYmVkZGVkLWxpbnV4 LXJpc2N2NjQiOiB7Ci0rICAgICAgInZlcnNpb24iOiAiMS44MC42IiwKLSsgICAgICAicmVzb2x2 ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvc2Fzcy1lbWJlZGRlZC1saW51eC1yaXNj djY0Ly0vc2Fzcy1lbWJlZGRlZC1saW51eC1yaXNjdjY0LTEuODAuNi50Z3oiLAotKyAgICAgICJp bnRlZ3JpdHkiOiAic2hhNTEyLUF5b0hKM2ljVjl4dUpqcTFZekpxcEVqMlhmaUMvS0JrVllUVXJD RUxLaVhQMEROMWdpL0JwVXdaTkNBZ0NNM0N5RWRNZWY0TFFNL3p0Q1lKeFl6ZHlnPT0iLAotKyAg ICAgICJjcHUiOiBbCi0rICAgICAgICAicmlzY3Y2NCIKLSsgICAgICBdLAotKyAgICAgICJkZXYi OiB0cnVlLAotKyAgICAgICJsaWNlbnNlIjogIk1JVCIsCi0rICAgICAgIm9wdGlvbmFsIjogdHJ1 ZSwKLSsgICAgICAib3MiOiBbCi0rICAgICAgICAibGludXgiCi0rICAgICAgXSwKLSAgICAgICAi ZW5naW5lcyI6IHsKLSAgICAgICAgICJub2RlIjogIj49MTQuMC4wIgotICAgICAgIH0KLUBAIC02 MDY4LDcgKzYzMzEsNTcgQEAKLSAgICAgICAib3MiOiBbCi0gICAgICAgICAibGludXgiCi0gICAg ICAgXSwKLS0gICAgICAicGVlciI6IHRydWUsCi0rICAgICAgImVuZ2luZXMiOiB7Ci0rICAgICAg ICAibm9kZSI6ICI+PTE0LjAuMCIKLSsgICAgICB9Ci0rICAgIH0sCi0rICAgICJub2RlX21vZHVs ZXMvc2Fzcy1lbWJlZGRlZC13aW4zMi1hcm02NCI6IHsKLSsgICAgICAidmVyc2lvbiI6ICIxLjgw LjYiLAotKyAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9zYXNz LWVtYmVkZGVkLXdpbjMyLWFybTY0Ly0vc2Fzcy1lbWJlZGRlZC13aW4zMi1hcm02NC0xLjgwLjYu dGd6IiwKLSsgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi0yOXdFVFFpMXlrZVZ2cGQ0ek1Wb2tw UUtGU09ac2tHSnpaYXd1dU5DZG83QkhqSEtJUkRzcWJ6OFlUMUNld0hQQnNoSTBoZkQyMWZlbm1q eFlqR1hQUT09IiwKLSsgICAgICAiY3B1IjogWwotKyAgICAgICAgImFybTY0IgotKyAgICAgIF0s Ci0rICAgICAgImRldiI6IHRydWUsCi0rICAgICAgImxpY2Vuc2UiOiAiTUlUIiwKLSsgICAgICAi b3B0aW9uYWwiOiB0cnVlLAotKyAgICAgICJvcyI6IFsKLSsgICAgICAgICJ3aW4zMiIKLSsgICAg ICBdLAotKyAgICAgICJlbmdpbmVzIjogewotKyAgICAgICAgIm5vZGUiOiAiPj0xNC4wLjAiCi0r ICAgICAgfQotKyAgICB9LAotKyAgICAibm9kZV9tb2R1bGVzL3Nhc3MtZW1iZWRkZWQtd2luMzIt aWEzMiI6IHsKLSsgICAgICAidmVyc2lvbiI6ICIxLjgwLjYiLAotKyAgICAgICJyZXNvbHZlZCI6 ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9zYXNzLWVtYmVkZGVkLXdpbjMyLWlhMzIvLS9z YXNzLWVtYmVkZGVkLXdpbjMyLWlhMzItMS44MC42LnRneiIsCi0rICAgICAgImludGVncml0eSI6 ICJzaGE1MTItMXMzT3BLMmlUSWZJTC9hOTFRaEFRbmZmc2J1V2Zuc004THg0Rnh0MGY3RXJueGpD VjZxOE1VRlRWL1VoY0x0THlURm5QQ0E2MkRManAyS0dDak1JOUE9PSIsCi0rICAgICAgImNwdSI6 IFsKLSsgICAgICAgICJpYTMyIgotKyAgICAgIF0sCi0rICAgICAgImRldiI6IHRydWUsCi0rICAg ICAgImxpY2Vuc2UiOiAiTUlUIiwKLSsgICAgICAib3B0aW9uYWwiOiB0cnVlLAotKyAgICAgICJv cyI6IFsKLSsgICAgICAgICJ3aW4zMiIKLSsgICAgICBdLAotKyAgICAgICJlbmdpbmVzIjogewot KyAgICAgICAgIm5vZGUiOiAiPj0xNC4wLjAiCi0rICAgICAgfQotKyAgICB9LAotKyAgICAibm9k ZV9tb2R1bGVzL3Nhc3MtZW1iZWRkZWQtd2luMzIteDY0IjogewotKyAgICAgICJ2ZXJzaW9uIjog IjEuODAuNiIsCi0rICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3Jn L3Nhc3MtZW1iZWRkZWQtd2luMzIteDY0Ly0vc2Fzcy1lbWJlZGRlZC13aW4zMi14NjQtMS44MC42 LnRneiIsCi0rICAgICAgImludGVncml0eSI6ICJzaGE1MTItMHBINFpyOXNpbEhrY21MUEMwZ2hu RDNESTB2TXNqQTdkS3ZHUjMyL1JiYmpPU3ZIVjVjRFFSTGl1VkpBUHAzNGRmTUE3a0pkMXlzU2No UmRIMGlnQVE9PSIsCi0rICAgICAgImNwdSI6IFsKLSsgICAgICAgICJ4NjQiCi0rICAgICAgXSwK LSsgICAgICAiZGV2IjogdHJ1ZSwKLSsgICAgICAibGljZW5zZSI6ICJNSVQiLAotKyAgICAgICJv cHRpb25hbCI6IHRydWUsCi0rICAgICAgIm9zIjogWwotKyAgICAgICAgIndpbjMyIgotKyAgICAg IF0sCi0gICAgICAgImVuZ2luZXMiOiB7Ci0gICAgICAgICAibm9kZSI6ICI+PTE0LjAuMCIKLSAg ICAgICB9Ci1AQCAtNjA3OCw3ICs2MzkxLDYgQEAKLSAgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6 Ly9yZWdpc3RyeS5ucG1qcy5vcmcvc3VwcG9ydHMtY29sb3IvLS9zdXBwb3J0cy1jb2xvci04LjEu MS50Z3oiLAotICAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLU1wVUVOMk9vZHRVenh2S1FsNzJj VUY3UlE1RWlIc0d2U3NWRzBpYTljNVJiV0dMMkNJNEM3RXBQUzhVVEJJcGxubHpaaU51VjU2dytG dU54eTN0eTJRPT0iLAotICAgICAgICJkZXYiOiB0cnVlLAotLSAgICAgICJwZWVyIjogdHJ1ZSwK LSAgICAgICAiZGVwZW5kZW5jaWVzIjogewotICAgICAgICAgImhhcy1mbGFnIjogIl40LjAuMCIK LSAgICAgICB9LAotQEAgLTY1MjksNiArNjg0MSw3IEBACi0gICAgICAgICAgICJ1cmwiOiAiaHR0 cHM6Ly9naXRodWIuY29tL3Nwb25zb3JzL3N0eWxlbGludCIKLSAgICAgICAgIH0KLSAgICAgICBd LAotKyAgICAgICJwZWVyIjogdHJ1ZSwKLSAgICAgICAiZGVwZW5kZW5jaWVzIjogewotICAgICAg ICAgIkBjc3N0b29scy9jc3MtcGFyc2VyLWFsZ29yaXRobXMiOiAiXjMuMC4xIiwKLSAgICAgICAg ICJAY3NzdG9vbHMvY3NzLXRva2VuaXplciI6ICJeMy4wLjEiLAotQEAgLTcxODMsNiArNzQ5Niw3 IEBACi0gICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3R5cGVz Y3JpcHQvLS90eXBlc2NyaXB0LTUuNi4zLnRneiIsCi0gICAgICAgImludGVncml0eSI6ICJzaGE1 MTItaGpjUzFtaGZ1eWk0V1c4SVd0alA3YnJEckcyY3VEWnVreXJZclNhdW9YR05neDBTN3pjZVAw N2FkWWtKeWNFcjU2Qk9VVE5QemJJbm9vaU4zZm4xcXc9PSIsCi0gICAgICAgImRldiI6IHRydWUs Ci0rICAgICAgInBlZXIiOiB0cnVlLAotICAgICAgICJiaW4iOiB7Ci0gICAgICAgICAidHNjIjog ImJpbi90c2MiLAotICAgICAgICAgInRzc2VydmVyIjogImJpbi90c3NlcnZlciIKLUBAIC03MjQ1 LDggKzc1NTksNyBAQAotICAgICAgICJ2ZXJzaW9uIjogIjYuMC4wIiwKLSAgICAgICAicmVzb2x2 ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvdmFyaW50Ly0vdmFyaW50LTYuMC4wLnRn eiIsCi0gICAgICAgImludGVncml0eSI6ICJzaGE1MTItY1hFSVc2Y2ZyMTVsRnY1NjNrNEd1VnVX L2Zpd2prbnl0RDM3aklPTFNkU1d1T0k2V25PL29Ld21QMkZRVFUybDAxTFA4L001VFNBSnB6VWFH ZTN1V2c9PSIsCi0tICAgICAgImRldiI6IHRydWUsCi0tICAgICAgInBlZXIiOiB0cnVlCi0rICAg ICAgImRldiI6IHRydWUKLSAgICAgfSwKLSAgICAgIm5vZGVfbW9kdWxlcy92aWN0b3J5LWFyZWEi OiB7Ci0gICAgICAgInZlcnNpb24iOiAiMzcuMy4xIiwKLUBAIC03ODM3LDIxICs4MTUwLDIyIEBA Ci0gICAgICAgInZlcnNpb24iOiAiMi4yLjIiLAotICAgICAgICJyZXNvbHZlZCI6ICJodHRwczov L3JlZ2lzdHJ5Lm5wbWpzLm9yZy9AYnVmYnVpbGQvcHJvdG9idWYvLS9wcm90b2J1Zi0yLjIuMi50 Z3oiLAotICAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLVVOdFBDYnJ3cmVucG1yWHVSd245allw UG93ZU5YajhYNXNNdllnc3FZeWFIOGpRNkxmVUpTazNkSkxuQksrNnNmWVByRjRpQUlvNXNkNUhR K3RnNzVBPT0iLAotLSAgICAgICJkZXYiOiB0cnVlLAotLSAgICAgICJwZWVyIjogdHJ1ZQotKyAg ICAgICJkZXYiOiB0cnVlCi0gICAgIH0sCi0gICAgICJAY3NzdG9vbHMvY3NzLXBhcnNlci1hbGdv cml0aG1zIjogewotICAgICAgICJ2ZXJzaW9uIjogIjMuMC40IiwKLSAgICAgICAicmVzb2x2ZWQi OiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvQGNzc3Rvb2xzL2Nzcy1wYXJzZXItYWxnb3Jp dGhtcy8tL2Nzcy1wYXJzZXItYWxnb3JpdGhtcy0zLjAuNC50Z3oiLAotICAgICAgICJpbnRlZ3Jp dHkiOiAic2hhNTEyLVVwN3JCb1Y3N3J2MjlkM3VLSFVJVnViejFCVGNneVVLNzJJdkNRQWJmYk12 NTg0eEhjR0tDS2JXaDdpOGhQclJKN3FVNFk4SU8zSVk5bStpVEI3UDNBPT0iLAotICAgICAgICJk ZXYiOiB0cnVlLAotKyAgICAgICJwZWVyIjogdHJ1ZSwKLSAgICAgICAicmVxdWlyZXMiOiB7fQot ICAgICB9LAotICAgICAiQGNzc3Rvb2xzL2Nzcy10b2tlbml6ZXIiOiB7Ci0gICAgICAgInZlcnNp b24iOiAiMy4wLjMiLAotICAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpz Lm9yZy9AY3NzdG9vbHMvY3NzLXRva2VuaXplci8tL2Nzcy10b2tlbml6ZXItMy4wLjMudGd6IiwK LSAgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1VSm5qb0ZzbXhmS1VkTllkV2dPQjBtV1V5cHVM dkFmUVBIMStweXZSSnM2ZXVvd2JGa0ZDNlAxM3cxbDhtSnlpM3Z4WU14YzlrbGQ1alpFR1JRczZi dz09IiwKLS0gICAgICAiZGV2IjogdHJ1ZQotKyAgICAgICJkZXYiOiB0cnVlLAotKyAgICAgICJw ZWVyIjogdHJ1ZQotICAgICB9LAotICAgICAiQGNzc3Rvb2xzL21lZGlhLXF1ZXJ5LWxpc3QtcGFy c2VyIjogewotICAgICAgICJ2ZXJzaW9uIjogIjMuMC4xIiwKLUBAIC04MTE2LDYgKzg0MzAsNyBA QAotICAgICAgICJ2ZXJzaW9uIjogIjEuMi4zNiIsCi0gICAgICAgInJlc29sdmVkIjogImh0dHBz Oi8vcmVnaXN0cnkubnBtanMub3JnL0Bmb3J0YXdlc29tZS9mb250YXdlc29tZS1zdmctY29yZS8t L2ZvbnRhd2Vzb21lLXN2Zy1jb3JlLTEuMi4zNi50Z3oiLAotICAgICAgICJpbnRlZ3JpdHkiOiAi c2hhNTEyLVlVY3NMUUtZYjZEbWFKaklIZERXcEJJR0NjeUUvVytwL0xNR3ZqUWVtNTVNbTJYV1ZB UDVrV1RNS1dMdjlsd3BDVmpwTHhQeU9NT3lVb2NQMUd4cnRBPT0iLAotKyAgICAgICJwZWVyIjog dHJ1ZSwKLSAgICAgICAicmVxdWlyZXMiOiB7Ci0gICAgICAgICAiQGZvcnRhd2Vzb21lL2ZvbnRh d2Vzb21lLWNvbW1vbi10eXBlcyI6ICJeMC4yLjM2IgotICAgICAgIH0KLUBAIC04MTg3LDkgKzg1 MDIsOSBAQAotICAgICAgICJkZXYiOiB0cnVlCi0gICAgIH0sCi0gICAgICJAaXNhYWNzL2JyYWNl LWV4cGFuc2lvbiI6IHsKLS0gICAgICAidmVyc2lvbiI6ICI1LjAuMCIsCi0tICAgICAgInJlc29s dmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL0Bpc2FhY3MvYnJhY2UtZXhwYW5zaW9u Ly0vYnJhY2UtZXhwYW5zaW9uLTUuMC4wLnRneiIsCi0tICAgICAgImludGVncml0eSI6ICJzaGE1 MTItWlQ1NUJETFYweXYwUkJtMmN6TWlaK1NxQ0dPN0F2bU9NM0cvdzJ4aFZQSCt0ZTBhS2dGam1C dkdsTDFkSCtxbDJ0Z0dPM01WcmJiM2pDS3l2cGdueEE9PSIsCi0rICAgICAgInZlcnNpb24iOiAi NS4wLjEiLAotKyAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9A aXNhYWNzL2JyYWNlLWV4cGFuc2lvbi8tL2JyYWNlLWV4cGFuc2lvbi01LjAuMS50Z3oiLAotKyAg ICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLVdNejcxVDFKUzYyNG5XajJuMmZuWUF1UG92aHY3RVVo azY5UjZpOWRzVnl6eHQ1ZU0zYmp3dmdrOUwrQVBFMVRSc2NHeXNBVk1BTmtCMGpoMExRWnJRPT0i LAotICAgICAgICJkZXYiOiB0cnVlLAotICAgICAgICJyZXF1aXJlcyI6IHsKLSAgICAgICAgICJA aXNhYWNzL2JhbGFuY2VkLW1hdGNoIjogIl40LjAuMSIKLUBAIC04NDU4LDcgKzg3NzMsNiBAQAot ICAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9AdHlwZXNjcmlw dC1lc2xpbnQvcGFyc2VyLy0vcGFyc2VyLTguMTMuMC50Z3oiLAotICAgICAgICJpbnRlZ3JpdHki OiAic2hhNTEyLXcweHAreEdnOHUvbk9OY0d3MVVYQXI2Y2pDUFUxdzBYVnlCczZacWFqNWVMbXhr S1FBQnlUZFYvdUdnTk41dFZ2Ti9rS3BvUWxQMmNMN1IrYWpaWklRPT0iLAotICAgICAgICJkZXYi OiB0cnVlLAotLSAgICAgICJwZWVyIjogdHJ1ZSwKLSAgICAgICAicmVxdWlyZXMiOiB7Ci0gICAg ICAgICAiQHR5cGVzY3JpcHQtZXNsaW50L3Njb3BlLW1hbmFnZXIiOiAiOC4xMy4wIiwKLSAgICAg ICAgICJAdHlwZXNjcmlwdC1lc2xpbnQvdHlwZXMiOiAiOC4xMy4wIiwKLUBAIC04NDcyLDcgKzg3 ODYsNiBAQAotICAgICAgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5v cmcvQHR5cGVzY3JpcHQtZXNsaW50L3Njb3BlLW1hbmFnZXIvLS9zY29wZS1tYW5hZ2VyLTguMTMu MC50Z3oiLAotICAgICAgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1Yc0dXd3cwb2RjVVQwZ0pv QloxRGV1bFkxK2prYUhVY2lVcTRqS052NGNwSW5idnZydERveUJIOXJFL24yVjI5d1FKUGs4aUNI MXdpcHJhOUJobWlNQT09IiwKLSAgICAgICAgICAgImRldiI6IHRydWUsCi0tICAgICAgICAgICJw ZWVyIjogdHJ1ZSwKLSAgICAgICAgICAgInJlcXVpcmVzIjogewotICAgICAgICAgICAgICJAdHlw ZXNjcmlwdC1lc2xpbnQvdHlwZXMiOiAiOC4xMy4wIiwKLSAgICAgICAgICAgICAiQHR5cGVzY3Jp cHQtZXNsaW50L3Zpc2l0b3Ita2V5cyI6ICI4LjEzLjAiCi1AQCAtODQ4Myw3ICs4Nzk2LDYgQEAK LSAgICAgICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL0B0eXBl c2NyaXB0LWVzbGludC92aXNpdG9yLWtleXMvLS92aXNpdG9yLWtleXMtOC4xMy4wLnRneiIsCi0g ICAgICAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLTdOLytsenRKcUg0TXJmMGxiMTBSL0NiSTFF YUFNTUd5RjV5MG9KdkZvQWhhZndnaVJBN1RYeWQ4VEZuOEZDOGs1eTJkVHNZb2dnMjM4cWF2UkdO bmx3PT0iLAotICAgICAgICAgICAiZGV2IjogdHJ1ZSwKLS0gICAgICAgICAgInBlZXIiOiB0cnVl LAotICAgICAgICAgICAicmVxdWlyZXMiOiB7Ci0gICAgICAgICAgICAgIkB0eXBlc2NyaXB0LWVz bGludC90eXBlcyI6ICI4LjEzLjAiLAotICAgICAgICAgICAgICJlc2xpbnQtdmlzaXRvci1rZXlz IjogIl4zLjQuMyIKLUBAIC04NTQ5LDE1ICs4ODYxLDEzIEBACi0gICAgICAgInZlcnNpb24iOiAi OC4xMy4wIiwKLSAgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcv QHR5cGVzY3JpcHQtZXNsaW50L3R5cGVzLy0vdHlwZXMtOC4xMy4wLnRneiIsCi0gICAgICAgImlu dGVncml0eSI6ICJzaGE1MTItNGN5RkVySmV0Rkxja2NUaFJVRmRSZVdKalZzUENxeUJsSlRpNklE RXBjMUdXQ0lJWlJGeFZwcGpXTElNY1FoTkdoZFdKSlJZRkhwSG9EV3ZNbER6bmc9PSIsCi0tICAg ICAgImRldiI6IHRydWUsCi0tICAgICAgInBlZXIiOiB0cnVlCi0rICAgICAgImRldiI6IHRydWUK LSAgICAgfSwKLSAgICAgIkB0eXBlc2NyaXB0LWVzbGludC90eXBlc2NyaXB0LWVzdHJlZSI6IHsK LSAgICAgICAidmVyc2lvbiI6ICI4LjEzLjAiLAotICAgICAgICJyZXNvbHZlZCI6ICJodHRwczov L3JlZ2lzdHJ5Lm5wbWpzLm9yZy9AdHlwZXNjcmlwdC1lc2xpbnQvdHlwZXNjcmlwdC1lc3RyZWUv LS90eXBlc2NyaXB0LWVzdHJlZS04LjEzLjAudGd6IiwKLSAgICAgICAiaW50ZWdyaXR5IjogInNo YTUxMi12N1NDSUdtVnNSSzJDeS9MVExHTjIydWVhNlNhVUlscEJjTy9nbk1HVC83elB0eHA5MGJw aGNHZjRmeXJDUWwzWnRpQktxVlRHMzJoYjY2OG9JWXkxZz09IiwKLSAgICAgICAiZGV2IjogdHJ1 ZSwKLS0gICAgICAicGVlciI6IHRydWUsCi0gICAgICAgInJlcXVpcmVzIjogewotICAgICAgICAg IkB0eXBlc2NyaXB0LWVzbGludC90eXBlcyI6ICI4LjEzLjAiLAotICAgICAgICAgIkB0eXBlc2Ny aXB0LWVzbGludC92aXNpdG9yLWtleXMiOiAiOC4xMy4wIiwKLUBAIC04NTc0LDcgKzg4ODQsNiBA QAotICAgICAgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvQHR5 cGVzY3JpcHQtZXNsaW50L3Zpc2l0b3Ita2V5cy8tL3Zpc2l0b3Ita2V5cy04LjEzLjAudGd6IiwK LSAgICAgICAgICAgImludGVncml0eSI6ICJzaGE1MTItN04vK2x6dEpxSDRNcmYwbGIxMFIvQ2JJ MUVhQU1NR3lGNXkwb0p2Rm9BaGFmd2dpUkE3VFh5ZDhURm44RkM4azV5MmRUc1lvZ2cyMzhxYXZS R05ubHc9PSIsCi0gICAgICAgICAgICJkZXYiOiB0cnVlLAotLSAgICAgICAgICAicGVlciI6IHRy dWUsCi0gICAgICAgICAgICJyZXF1aXJlcyI6IHsKLSAgICAgICAgICAgICAiQHR5cGVzY3JpcHQt ZXNsaW50L3R5cGVzIjogIjguMTMuMCIsCi0gICAgICAgICAgICAgImVzbGludC12aXNpdG9yLWtl eXMiOiAiXjMuNC4zIgotQEAgLTg2NTEsMTMgKzg5NjAsMTUgQEAKLSAgICAgIkB4dGVybS94dGVy bSI6IHsKLSAgICAgICAidmVyc2lvbiI6ICI1LjUuMCIsCi0gICAgICAgInJlc29sdmVkIjogImh0 dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL0B4dGVybS94dGVybS8tL3h0ZXJtLTUuNS4wLnRneiIs Ci0tICAgICAgImludGVncml0eSI6ICJzaGE1MTItaHFKSFlhUWI1T3B0TnVubnlBbmtIeU04YUNq WjFNRUlEVFF1MWlJYmJURC94b3BzOTFOQjV5cTFaSy9kQzJKRGJWV3RGMjN6VXRsOUpFMk5xd1Q4 N0E9PSIKLSsgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1ocUpIWWFRYjVPcHROdW5ueUFua0h5 TThhQ2paMU1FSURUUXUxaUliYlREL3hvcHM5MU5CNXlxMVpLL2RDMkpEYlZXdEYyM3pVdGw5SkUy TnF3VDg3QT09IiwKLSsgICAgICAicGVlciI6IHRydWUKLSAgICAgfSwKLSAgICAgImFjb3JuIjog ewotICAgICAgICJ2ZXJzaW9uIjogIjguMTQuMCIsCi0gICAgICAgInJlc29sdmVkIjogImh0dHBz Oi8vcmVnaXN0cnkubnBtanMub3JnL2Fjb3JuLy0vYWNvcm4tOC4xNC4wLnRneiIsCi0gICAgICAg ImludGVncml0eSI6ICJzaGE1MTItY2w2NjluQ0pUWkJzTDk3T0Y0a1VRbTVnNWhDMnVpaGswTnhZ M1dFTkFDMFRZZElMVmtBeUh5bUFudGd4R2tsN0srdDBjWElySDVzaXk1UzRYa0Z5Y0E9PSIsCi0t ICAgICAgImRldiI6IHRydWUKLSsgICAgICAiZGV2IjogdHJ1ZSwKLSsgICAgICAicGVlciI6IHRy dWUKLSAgICAgfSwKLSAgICAgImFjb3JuLWpzeCI6IHsKLSAgICAgICAidmVyc2lvbiI6ICI1LjMu MiIsCi1AQCAtODkxOCwyMiArOTIyOSwxOSBAQAotICAgICAgICJ2ZXJzaW9uIjogIjAuMi4wIiwK LSAgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvYnVmZmVyLWJ1 aWxkZXIvLS9idWZmZXItYnVpbGRlci0wLjIuMC50Z3oiLAotICAgICAgICJpbnRlZ3JpdHkiOiAi c2hhNTEyLTdWUE1FUHVZem5QU29SMjFORTF6dmQyWG5hNmMvQ2xvaVpDZmNNWFIxSm55NlBqWDBO NE5zYTM4emNCRm8vRk1LK0JsQStGTEtiSkNRMGkyeXhwK1hnPT0iLAotLSAgICAgICJkZXYiOiB0 cnVlLAotLSAgICAgICJwZWVyIjogdHJ1ZQotKyAgICAgICJkZXYiOiB0cnVlCi0gICAgIH0sCi0g ICAgICJidWlsdGluLW1vZHVsZXMiOiB7Ci0gICAgICAgInZlcnNpb24iOiAiMy4zLjAiLAotICAg ICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9idWlsdGluLW1vZHVs ZXMvLS9idWlsdGluLW1vZHVsZXMtMy4zLjAudGd6IiwKLSAgICAgICAiaW50ZWdyaXR5IjogInNo YTUxMi16aGFDRGljZEx1V041VWJONUlNbkZxTk1oTmZvOTE5c0g4NXkyL2VhKzVZZzlUc1RrZVp4 cEwrSkxicDZjZ1lGUzRzUkxwM1lWNFM2eUR1cVZXSFlPdz09IiwKLS0gICAgICAiZGV2IjogdHJ1 ZSwKLS0gICAgICAicGVlciI6IHRydWUKLSsgICAgICAiZGV2IjogdHJ1ZQotICAgICB9LAotICAg ICAiYnVpbHRpbnMiOiB7Ci0gICAgICAgInZlcnNpb24iOiAiNS4xLjAiLAotICAgICAgICJyZXNv bHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9idWlsdGlucy8tL2J1aWx0aW5zLTUu MS4wLnRneiIsCi0gICAgICAgImludGVncml0eSI6ICJzaGE1MTItU1c5bHpHVEx2V1RQMUFZOHhl QU1aaW1xRHJJYVNkTFFVY1ZyOURNZWY1MW5pSjAyMlJpODdTd1JSS1ltNEE2aUhma1BhaVZVdS9E dXcyV2M0SjdrS2c9PSIsCi0gICAgICAgImRldiI6IHRydWUsCi0tICAgICAgInBlZXIiOiB0cnVl LAotICAgICAgICJyZXF1aXJlcyI6IHsKLSAgICAgICAgICJzZW12ZXIiOiAiXjcuMC4wIgotICAg ICAgIH0KLUBAIC05MDE4LDggKzkzMjYsNyBAQAotICAgICAgICJ2ZXJzaW9uIjogIjAuNS4yIiwK LSAgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvY29sb3Jqcy5p by8tL2NvbG9yanMuaW8tMC41LjIudGd6IiwKLSAgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi10 d21Wb2l6RVc3eWxaU04zMk9nS2RYUm1vMXFnK3dUNS82QzN4dTViOVFzV3pTRkFoSExuMnhkOHJv MGRpQ3NLZkNqMVJkYVRQL25yY1crdkFvUVBJdz09IiwKLS0gICAgICAiZGV2IjogdHJ1ZSwKLS0g ICAgICAicGVlciI6IHRydWUKLSsgICAgICAiZGV2IjogdHJ1ZQotICAgICB9LAotICAgICAiY29t bWFuZGVyIjogewotICAgICAgICJ2ZXJzaW9uIjogIjIuMTEuMCIsCi1AQCAtOTQ5OSw2ICs5ODA2 LDcgQEAKLSAgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvZXNi dWlsZC8tL2VzYnVpbGQtMC4yNS4wLnRneiIsCi0gICAgICAgImludGVncml0eSI6ICJzaGE1MTIt QlhxNW1xYzhsdGJhTjM0Y0RxV3VZS3lOaFg4RC9aMEoxeGR0ZFE4VWNJSUl5Snl6K1pNS1V0NTh0 RjNTclo4NWpjZk4vUFpZaGpSNXVEUUFZTlZidXc9PSIsCi0gICAgICAgImRldiI6IHRydWUsCi0r ICAgICAgInBlZXIiOiB0cnVlLAotICAgICAgICJyZXF1aXJlcyI6IHsKLSAgICAgICAgICJAZXNi dWlsZC9haXgtcHBjNjQiOiAiMC4yNS4wIiwKLSAgICAgICAgICJAZXNidWlsZC9hbmRyb2lkLWFy bSI6ICIwLjI1LjAiLAotQEAgLTk1NzYsNiArOTg4NCw3IEBACi0gICAgICAgInJlc29sdmVkIjog Imh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2VzbGludC8tL2VzbGludC04LjU3LjEudGd6IiwK LSAgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi15cG93eUR4cFZTWXBrWHI5V1B2MlBBWkN0Tmlw MU12NUtUVzBTQ3VyWHYvOWlPcGNySDlQYXFVRWxrc3FFQjZwQ2hxSEdEUkNGVHlyWmxHaG5MTkdp QT09IiwKLSAgICAgICAiZGV2IjogdHJ1ZSwKLSsgICAgICAicGVlciI6IHRydWUsCi0gICAgICAg InJlcXVpcmVzIjogewotICAgICAgICAgIkBlc2xpbnQtY29tbXVuaXR5L2VzbGludC11dGlscyI6 ICJeNC4yLjAiLAotICAgICAgICAgIkBlc2xpbnQtY29tbXVuaXR5L3JlZ2V4cHAiOiAiXjQuNi4x IiwKLUBAIC05NjUyLDcgKzk5NjEsNiBAQAotICAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3Jl Z2lzdHJ5Lm5wbWpzLm9yZy9lc2xpbnQtY29tcGF0LXV0aWxzLy0vZXNsaW50LWNvbXBhdC11dGls cy0wLjUuMS50Z3oiLAotICAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLTN6M3ZGZXhLSUVuakhF M3pDTVJvNmZuL2U0NFU3VDFraFVqZytIcDBaUU1DaWdoMjhyQUxEMG5QRkJjR1p1aUxDNXJMWmEy dWJRSERSbG4wOUpmVTJRPT0iLAotICAgICAgICJkZXYiOiB0cnVlLAotLSAgICAgICJwZWVyIjog dHJ1ZSwKLSAgICAgICAicmVxdWlyZXMiOiB7Ci0gICAgICAgICAic2VtdmVyIjogIl43LjUuNCIK LSAgICAgICB9Ci1AQCAtOTczNSw3ICsxMDA0Myw2IEBACi0gICAgICAgInJlc29sdmVkIjogImh0 dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2VzbGludC1wbHVnaW4tZXMteC8tL2VzbGludC1wbHVn aW4tZXMteC03LjguMC50Z3oiLAotICAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLTdEczgrd0FB b1YzVCtMQUtldTM5WTVCelhDckdLcmNJU2ZnS0VxVFM0QkROOFNGRURRZDBTNDNqaVE4dklhM3dV S0QwN3FpdFpkZnpsZW5TaTgvMHFRPT0iLAotICAgICAgICJkZXYiOiB0cnVlLAotLSAgICAgICJw ZWVyIjogdHJ1ZSwKLSAgICAgICAicmVxdWlyZXMiOiB7Ci0gICAgICAgICAiQGVzbGludC1jb21t dW5pdHkvZXNsaW50LXV0aWxzIjogIl40LjEuMiIsCi0gICAgICAgICAiQGVzbGludC1jb21tdW5p dHkvcmVnZXhwcCI6ICJeNC4xMS4wIiwKLUBAIC05NzQ3LDYgKzEwMDU0LDcgQEAKLSAgICAgICAi cmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvZXNsaW50LXBsdWdpbi1pbXBv cnQvLS9lc2xpbnQtcGx1Z2luLWltcG9ydC0yLjMxLjAudGd6IiwKLSAgICAgICAiaW50ZWdyaXR5 IjogInNoYTUxMi1peG1rSTYyUmJjMi93OFZmeHloMWpRUlRkUlRGNTJWeHdSVkhsL3lrUEFtcUcr TmI3L2tObitieUxQMEx4UGdJN3pXQTE2SnQ4MlN5YkpJbm1NaWEzQT09IiwKLSAgICAgICAiZGV2 IjogdHJ1ZSwKLSsgICAgICAicGVlciI6IHRydWUsCi0gICAgICAgInJlcXVpcmVzIjogewotICAg ICAgICAgIkBydHNhby9zY2MiOiAiXjEuMS4wIiwKLSAgICAgICAgICJhcnJheS1pbmNsdWRlcyI6 ICJeMy4xLjgiLAotQEAgLTk4NjQsNyArMTAxNzIsNiBAQAotICAgICAgICJyZXNvbHZlZCI6ICJo dHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9lc2xpbnQtcGx1Z2luLW4vLS9lc2xpbnQtcGx1Z2lu LW4tMTYuNi4yLnRneiIsCi0gICAgICAgImludGVncml0eSI6ICJzaGE1MTItNlR5RG1aMUhYb0ZR WG5oQ1RValZGVUxSZW9CUE9BanB1aUtFTE1rZVA0MHlmZkkvMVpSTytkOXVnL1ZDNmZxSVNvMldr dUlCazNjdnVSUEFMYVdsT1E9PSIsCi0gICAgICAgImRldiI6IHRydWUsCi0tICAgICAgInBlZXIi OiB0cnVlLAotICAgICAgICJyZXF1aXJlcyI6IHsKLSAgICAgICAgICJAZXNsaW50LWNvbW11bml0 eS9lc2xpbnQtdXRpbHMiOiAiXjQuNC4wIiwKLSAgICAgICAgICJidWlsdGlucyI6ICJeNS4wLjEi LAotQEAgLTk4ODQsNyArMTAxOTEsNiBAQAotICAgICAgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6 Ly9yZWdpc3RyeS5ucG1qcy5vcmcvYnJhY2UtZXhwYW5zaW9uLy0vYnJhY2UtZXhwYW5zaW9uLTEu MS4xMi50Z3oiLAotICAgICAgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi05VDlValczcjBVVzVj MVE3R1R3bGxwdFh3aHZZbUV6Rmh6TWZaOUg3RlFXdCt1WmVQalpQakJQL1cxWkV5WjF0d0dXb201 LzU2VEY0bFBjcWpuREhjZz09IiwKLSAgICAgICAgICAgImRldiI6IHRydWUsCi0tICAgICAgICAg ICJwZWVyIjogdHJ1ZSwKLSAgICAgICAgICAgInJlcXVpcmVzIjogewotICAgICAgICAgICAgICJi YWxhbmNlZC1tYXRjaCI6ICJeMS4wLjAiLAotICAgICAgICAgICAgICJjb25jYXQtbWFwIjogIjAu MC4xIgotQEAgLTk4OTUsNyArMTAyMDEsNiBAQAotICAgICAgICAgICAicmVzb2x2ZWQiOiAiaHR0 cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvbWluaW1hdGNoLy0vbWluaW1hdGNoLTMuMS4yLnRneiIs Ci0gICAgICAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLUo3cDYzaFJpQWp3MU5ERXd3MVc3aTM3 K0J5SXJPV081WFFRQXpaM1ZPY0wwUE55YndwZm1WL04wNXpGQXp3UTlVU3lFY1g2dDNVTytLNWFx QlFPSUh3PT0iLAotICAgICAgICAgICAiZGV2IjogdHJ1ZSwKLS0gICAgICAgICAgInBlZXIiOiB0 cnVlLAotICAgICAgICAgICAicmVxdWlyZXMiOiB7Ci0gICAgICAgICAgICAgImJyYWNlLWV4cGFu c2lvbiI6ICJeMS4xLjciCi0gICAgICAgICAgIH0KLUBAIC05OTQ4LDYgKzEwMjUzLDcgQEAKLSAg ICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvZXNsaW50LXBsdWdp bi1wcm9taXNlLy0vZXNsaW50LXBsdWdpbi1wcm9taXNlLTYuNi4wLnRneiIsCi0gICAgICAgImlu dGVncml0eSI6ICJzaGE1MTItNTdaemZ3OEc2K0dxN2F4bTJQZG8zZ1cvUngzaDlZeXdnbjYxdUUv M2VsVENPZVBFSFZybjJpNUNkZkJ3QTFCTEswUTBXcWN0SUNJVVNxWFpXL1ZwclE9PSIsCi0gICAg ICAgImRldiI6IHRydWUsCi0rICAgICAgInBlZXIiOiB0cnVlLAotICAgICAgICJyZXF1aXJlcyI6 IHt9Ci0gICAgIH0sCi0gICAgICJlc2xpbnQtcGx1Z2luLXJlYWN0IjogewotQEAgLTk5NTUsNiAr MTAyNjEsNyBAQAotICAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9y Zy9lc2xpbnQtcGx1Z2luLXJlYWN0Ly0vZXNsaW50LXBsdWdpbi1yZWFjdC03LjM3LjEudGd6IiwK LSAgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi14d1Rud0RxemJEUkE4dUo3Qk14UHMvRVhSQjNp OFpmbk9JcDhCc3hFUWtUMG5IUHArV1djZXFHZ282cktiOWN0Tmk4R0pMRFQ0R281SEFXRUxhL1dN Zz09IiwKLSAgICAgICAiZGV2IjogdHJ1ZSwKLSsgICAgICAicGVlciI6IHRydWUsCi0gICAgICAg InJlcXVpcmVzIjogewotICAgICAgICAgImFycmF5LWluY2x1ZGVzIjogIl4zLjEuOCIsCi0gICAg ICAgICAiYXJyYXkucHJvdG90eXBlLmZpbmRsYXN0IjogIl4xLjIuNSIsCi1AQCAtMTAwMjgsNiAr MTAzMzUsNyBAQAotICAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9y Zy9lc2xpbnQtcGx1Z2luLXJlYWN0LWhvb2tzLy0vZXNsaW50LXBsdWdpbi1yZWFjdC1ob29rcy00 LjYuMi50Z3oiLAotICAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLVF6bGlOSnE0R2luREJjRDhn UEI1djB3aDZnOHEzU1VpNkVGRjB4OE4vQkw5UG9WczBhdHVHYzQ3b3pNUnlPV0FLZHdhWjVPbmJP RWEzV1IrZFNHS3VRPT0iLAotICAgICAgICJkZXYiOiB0cnVlLAotKyAgICAgICJwZWVyIjogdHJ1 ZSwKLSAgICAgICAicmVxdWlyZXMiOiB7fQotICAgICB9LAotICAgICAiZXNsaW50LXNjb3BlIjog ewotQEAgLTEwMjUzLDYgKzEwNTYxLDEzIEBACi0gICAgICAgImludGVncml0eSI6ICJzaGE1MTIt T08wcEgybEs2YTBoWm5BZGF1NUl0ekhQSTZwVWx2STdqTVZueFVRUnR3NG93RjJ3azhsT1NhYnRH RENUUDRHZ3JnMk1iR25XTzlYOEsxdDQrZkdNRHc9PSIsCi0gICAgICAgImRldiI6IHRydWUKLSAg ICAgfSwKLSsgICAgImZzZXZlbnRzIjogewotKyAgICAgICJ2ZXJzaW9uIjogIjIuMy4zIiwKLSsg ICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvZnNldmVudHMvLS9m c2V2ZW50cy0yLjMuMy50Z3oiLAotKyAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLTV4b0RmWCtm TDdmYUFUbmFnbVdQcGJGdHdoL1I3N1dtTU1xcUhHUzY1QzN2dkIwWUhyZ0YrQjFZbVozNDQxdE1q NW42M2swMjEyWE5vSnd6bGhmZlF3PT0iLAotKyAgICAgICJkZXYiOiB0cnVlLAotKyAgICAgICJv cHRpb25hbCI6IHRydWUKLSsgICAgfSwKLSAgICAgImZ1bmN0aW9uLWJpbmQiOiB7Ci0gICAgICAg InZlcnNpb24iOiAiMS4xLjIiLAotICAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5 Lm5wbWpzLm9yZy9mdW5jdGlvbi1iaW5kLy0vZnVuY3Rpb24tYmluZC0xLjEuMi50Z3oiLAotQEAg LTEwMzEyLDcgKzEwNjI3LDYgQEAKLSAgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3Ry eS5ucG1qcy5vcmcvZ2V0LXRzY29uZmlnLy0vZ2V0LXRzY29uZmlnLTQuOC4xLnRneiIsCi0gICAg ICAgImludGVncml0eSI6ICJzaGE1MTItazlQTitjRkJtYUxXdFZ6MjlTa1VvcVU1TzBzbEx1SEpY dC8yUCt0TVZGVCtwaHNTR1hHa3A5dDNyUUlxZHowZSswNkVITkdzM29NNlpYMXMyekh4Umc9PSIs Ci0gICAgICAgImRldiI6IHRydWUsCi0tICAgICAgInBlZXIiOiB0cnVlLAotICAgICAgICJyZXF1 aXJlcyI6IHsKLSAgICAgICAgICJyZXNvbHZlLXBrZy1tYXBzIjogIl4xLjAuMCIKLSAgICAgICB9 Ci1AQCAtMTA3MDMsNyArMTEwMTcsNiBAQAotICAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3Jl Z2lzdHJ5Lm5wbWpzLm9yZy9pcy1idWlsdGluLW1vZHVsZS8tL2lzLWJ1aWx0aW4tbW9kdWxlLTMu Mi4xLnRneiIsCi0gICAgICAgImludGVncml0eSI6ICJzaGE1MTItQlNMRTNIblYyc3laMEZLMGlN QS95VUdwbFVlTW1OejRBVzVmblR1bmJDSXFaaTR2RzNXakpUOUZITXk1RDY5eG1BWUJIWFFoSmRB TGRwd1Z4VjUwMUE9PSIsCi0gICAgICAgImRldiI6IHRydWUsCi0tICAgICAgInBlZXIiOiB0cnVl LAotICAgICAgICJyZXF1aXJlcyI6IHsKLSAgICAgICAgICJidWlsdGluLW1vZHVsZXMiOiAiXjMu My4wIgotICAgICAgIH0KLUBAIC0xMTQ3OSw2ICsxMTc5Miw3IEBACi0gICAgICAgInJlc29sdmVk IjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3Bvc3Rjc3MvLS9wb3N0Y3NzLTguNC40Ny50 Z3oiLAotICAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLTU2cnhDcTdHL1hmQjRFa1hxOUVnbjVH Q3F1Z1d2REZqYWZET1RoSWRNQnNJMTVpcVBxUjVyMTVUZlNyMVlQWWVFSTE5WWVhWE1DYlk2dTg4 WTc2R0xRPT0iLAotICAgICAgICJkZXYiOiB0cnVlLAotKyAgICAgICJwZWVyIjogdHJ1ZSwKLSAg ICAgICAicmVxdWlyZXMiOiB7Ci0gICAgICAgICAibmFub2lkIjogIl4zLjMuNyIsCi0gICAgICAg ICAicGljb2NvbG9ycyI6ICJeMS4xLjAiLAotQEAgLTExNTE2LDYgKzExODMwLDcgQEAKLSAgICAg ICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvcG9zdGNzcy1zZWxlY3Rv ci1wYXJzZXIvLS9wb3N0Y3NzLXNlbGVjdG9yLXBhcnNlci02LjEuMi50Z3oiLAotICAgICAgICJp bnRlZ3JpdHkiOiAic2hhNTEyLVE4cVFmUGlaK1RITy8zWnJPck8wY0pKS2ZwWUNhZ3RNVWtYYm5F Zm1nVWp3WGc2ei9XQmVPeVM5QVBCQlBDVFNpRFYrczRTd1FHdTh5RnNpTVJJdWRnPT0iLAotICAg ICAgICJkZXYiOiB0cnVlLAotKyAgICAgICJwZWVyIjogdHJ1ZSwKLSAgICAgICAicmVxdWlyZXMi OiB7Ci0gICAgICAgICAiY3NzZXNjIjogIl4zLjAuMCIsCi0gICAgICAgICAidXRpbC1kZXByZWNh dGUiOiAiXjEuMC4yIgotQEAgLTExNTk0LDYgKzExOTA5LDcgQEAKLSAgICAgICAidmVyc2lvbiI6 ICIxOC4zLjEiLAotICAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9y Zy9yZWFjdC8tL3JlYWN0LTE4LjMuMS50Z3oiLAotICAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEy LXdTK2hBZ0pTaFIwS2hFdlBKQXJmdVBWTjErSHoxdDBZNm41akxyR1Fia2I0dXJnUEUvMFJ2ZSsx a01CMXYvb1dnSGdtNFdJY1YraTdGMnBUVmorMmlRPT0iLAotKyAgICAgICJwZWVyIjogdHJ1ZSwK LSAgICAgICAicmVxdWlyZXMiOiB7Ci0gICAgICAgICAibG9vc2UtZW52aWZ5IjogIl4xLjEuMCIK LSAgICAgICB9Ci1AQCAtMTE2MDIsNiArMTE5MTgsNyBAQAotICAgICAgICJ2ZXJzaW9uIjogIjE4 LjMuMSIsCi0gICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3Jl YWN0LWRvbS8tL3JlYWN0LWRvbS0xOC4zLjEudGd6IiwKLSAgICAgICAiaW50ZWdyaXR5IjogInNo YTUxMi01bTRuUUtwK3JaUmIwOUxOSDU5R000QnhUaDkyNTEveWxiS0licGU3VHBHeGZKKzlrdjZC TGtMQlhJampzcGJnYm5JQk5xbEkyM3RSblRXVDBzblVJdz09IiwKLSsgICAgICAicGVlciI6IHRy dWUsCi0gICAgICAgInJlcXVpcmVzIjogewotICAgICAgICAgImxvb3NlLWVudmlmeSI6ICJeMS4x LjAiLAotICAgICAgICAgInNjaGVkdWxlciI6ICJeMC4yMy4yIgotQEAgLTExNzQxLDggKzEyMDU4 LDcgQEAKLSAgICAgICAidmVyc2lvbiI6ICIxLjAuMCIsCi0gICAgICAgInJlc29sdmVkIjogImh0 dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3Jlc29sdmUtcGtnLW1hcHMvLS9yZXNvbHZlLXBrZy1t YXBzLTEuMC4wLnRneiIsCi0gICAgICAgImludGVncml0eSI6ICJzaGE1MTItc2VTMlRqMjZUQlZP QzJOSWMyck9lMnkyWk83ZWZ4SVR0TFpjR1NPbkhITk9RN0NraVVCZncwSXcyY2s2eGtJaFB3TGhL TkxTOEJPK2hFcG5nUWxxenc9PSIsCi0tICAgICAgImRldiI6IHRydWUsCi0tICAgICAgInBlZXIi OiB0cnVlCi0rICAgICAgImRldiI6IHRydWUKLSAgICAgfSwKLSAgICAgInJldXNpZnkiOiB7Ci0g ICAgICAgInZlcnNpb24iOiAiMS4wLjQiLAotQEAgLTExODA4LDcgKzEyMTI0LDYgQEAKLSAgICAg ICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvcnhqcy8tL3J4anMtNy44 LjEudGd6IiwKLSAgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1BQTNUVmorMEEyaXVJb1FrV0VL L3RxRmpCcTJqKzZQTzZZMHpKY3Z6TEFGaEVGSU8zSEwwdmxzOWhXTG5jWmJBQWJLMG1hcjdvWjRW MDc5SS9xUE14Zz09IiwKLSAgICAgICAiZGV2IjogdHJ1ZSwKLS0gICAgICAicGVlciI6IHRydWUs Ci0gICAgICAgInJlcXVpcmVzIjogewotICAgICAgICAgInRzbGliIjogIl4yLjEuMCIKLSAgICAg ICB9Ci1AQCAtMTE4ODUsNyArMTIyMDAsNiBAQAotICAgICAgICJyZXNvbHZlZCI6ICJodHRwczov L3JlZ2lzdHJ5Lm5wbWpzLm9yZy9zYXNzLWVtYmVkZGVkLy0vc2Fzcy1lbWJlZGRlZC0xLjgwLjYu dGd6IiwKLSAgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1PZzRhcUJuYUEzb0pmSXBIYUx1TkFU QXF6QlJnVUpEWUp5MlgxNVY1OWNvdDJ3WU90aVQvY2lQbnl1cTFvN3ZwREVlT2tIaEVkK21TdmlT bFhvRVR1Zz09IiwKLSAgICAgICAiZGV2IjogdHJ1ZSwKLS0gICAgICAicGVlciI6IHRydWUsCi0g ICAgICAgInJlcXVpcmVzIjogewotICAgICAgICAgIkBidWZidWlsZC9wcm90b2J1ZiI6ICJeMi4w LjAiLAotICAgICAgICAgImJ1ZmZlci1idWlsZGVyIjogIl4wLjIuMCIsCi1AQCAtMTE5MjEsMjgg KzEyMjM1LDE1MSBAQAotICAgICAgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5u cG1qcy5vcmcvc3VwcG9ydHMtY29sb3IvLS9zdXBwb3J0cy1jb2xvci04LjEuMS50Z3oiLAotICAg ICAgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1NcFVFTjJPb2R0VXp4dktRbDcyY1VGN1JRNUVp SHNHdlNzVkcwaWE5YzVSYldHTDJDSTRDN0VwUFM4VVRCSXBsbmx6WmlOdVY1NncrRnVOeHkzdHky UT09IiwKLSAgICAgICAgICAgImRldiI6IHRydWUsCi0tICAgICAgICAgICJwZWVyIjogdHJ1ZSwK LSAgICAgICAgICAgInJlcXVpcmVzIjogewotICAgICAgICAgICAgICJoYXMtZmxhZyI6ICJeNC4w LjAiCi0gICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAgICAgICB9Ci0gICAgIH0sCi0rICAgICJz YXNzLWVtYmVkZGVkLWFuZHJvaWQtYXJtIjogewotKyAgICAgICJ2ZXJzaW9uIjogIjEuODAuNiIs Ci0rICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3Nhc3MtZW1i ZWRkZWQtYW5kcm9pZC1hcm0vLS9zYXNzLWVtYmVkZGVkLWFuZHJvaWQtYXJtLTEuODAuNi50Z3oi LAotKyAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLVVlVUtNVFJzbno0L2RoN0l6dmhqT054YTQv am1WcDUzOUNIRGQ4VlpPc3FnOU0zSGNOSk5Ja1V6UVdidXdaK25TbFdyVHVvN1R2bjNYbHlwb3BD Qnp3PT0iLAotKyAgICAgICJkZXYiOiB0cnVlLAotKyAgICAgICJvcHRpb25hbCI6IHRydWUKLSsg ICAgfSwKLSsgICAgInNhc3MtZW1iZWRkZWQtYW5kcm9pZC1hcm02NCI6IHsKLSsgICAgICAidmVy c2lvbiI6ICIxLjgwLjYiLAotKyAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5w bWpzLm9yZy9zYXNzLWVtYmVkZGVkLWFuZHJvaWQtYXJtNjQvLS9zYXNzLWVtYmVkZGVkLWFuZHJv aWQtYXJtNjQtMS44MC42LnRneiIsCi0rICAgICAgImludGVncml0eSI6ICJzaGE1MTItNHJDNFpH TS9rNEVOVmpMWG5LM0pUc3Q4ZThGSTlNSFNvbDJGbDdkQ2RZeUozS0xubHQ0cUw0QUVZZlU4enEx dGNCYjdDQk9TWlZSK0N6Q0t1Ym5YZGc9PSIsCi0rICAgICAgImRldiI6IHRydWUsCi0rICAgICAg Im9wdGlvbmFsIjogdHJ1ZQotKyAgICB9LAotKyAgICAic2Fzcy1lbWJlZGRlZC1hbmRyb2lkLWlh MzIiOiB7Ci0rICAgICAgInZlcnNpb24iOiAiMS44MC42IiwKLSsgICAgICAicmVzb2x2ZWQiOiAi aHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvc2Fzcy1lbWJlZGRlZC1hbmRyb2lkLWlhMzIvLS9z YXNzLWVtYmVkZGVkLWFuZHJvaWQtaWEzMi0xLjgwLjYudGd6IiwKLSsgICAgICAiaW50ZWdyaXR5 IjogInNoYTUxMi1MeHoyU1hFMktkSG55bnVIRitENmZsRHZyZDU1L3phRUFXVWVrYTlNeEVyNkZt UjY2ZDhVQk9JeTVFVHdDU1VkLy9TL1NFNUpsNm9UbkhwcGdEMXpOQT09IiwKLSsgICAgICAiZGV2 IjogdHJ1ZSwKLSsgICAgICAib3B0aW9uYWwiOiB0cnVlCi0rICAgIH0sCi0rICAgICJzYXNzLWVt YmVkZGVkLWFuZHJvaWQtcmlzY3Y2NCI6IHsKLSsgICAgICAidmVyc2lvbiI6ICIxLjgwLjYiLAot KyAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9zYXNzLWVtYmVk ZGVkLWFuZHJvaWQtcmlzY3Y2NC8tL3Nhc3MtZW1iZWRkZWQtYW5kcm9pZC1yaXNjdjY0LTEuODAu Ni50Z3oiLAotKyAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLWhLZHhZL29PcUIrSkpoU29CVERN NURKTzFqL3h0eFFnYXloMmNMQ0NVeDM3SVFRZTNTRWRjM1YySkZmLzRtSW81cGVhUzRjanF3d1NB VEYrbDJ6YVhnPT0iLAotKyAgICAgICJkZXYiOiB0cnVlLAotKyAgICAgICJvcHRpb25hbCI6IHRy dWUKLSsgICAgfSwKLSsgICAgInNhc3MtZW1iZWRkZWQtYW5kcm9pZC14NjQiOiB7Ci0rICAgICAg InZlcnNpb24iOiAiMS44MC42IiwKLSsgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3Ry eS5ucG1qcy5vcmcvc2Fzcy1lbWJlZGRlZC1hbmRyb2lkLXg2NC8tL3Nhc3MtZW1iZWRkZWQtYW5k cm9pZC14NjQtMS44MC42LnRneiIsCi0rICAgICAgImludGVncml0eSI6ICJzaGE1MTItRWFwMkZp M2tUeC9yVkxCc09uT3A1UllQcjUrbEZqVFo2NTJ6UjI0ZG1ZRmU5L3NEZ2FzYWtKSU9Qak92RDJi UnVMOXowdVdFWTFBWFZlZU9QZVpLcmc9PSIsCi0rICAgICAgImRldiI6IHRydWUsCi0rICAgICAg Im9wdGlvbmFsIjogdHJ1ZQotKyAgICB9LAotKyAgICAic2Fzcy1lbWJlZGRlZC1kYXJ3aW4tYXJt NjQiOiB7Ci0rICAgICAgInZlcnNpb24iOiAiMS44MC42IiwKLSsgICAgICAicmVzb2x2ZWQiOiAi aHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvc2Fzcy1lbWJlZGRlZC1kYXJ3aW4tYXJtNjQvLS9z YXNzLWVtYmVkZGVkLWRhcndpbi1hcm02NC0xLjgwLjYudGd6IiwKLSsgICAgICAiaW50ZWdyaXR5 IjogInNoYTUxMi0wbW5BeDhWcTZHeGozUFF0M2ltZ0lUZkszM2hocXJTS3B5SFN1YWI3MWdaWm5p NW9wc2R0b2dncTJKYXdXKzF0YVJGVEVad2JaSkxLWjBNQkRid0NDQT09IiwKLSsgICAgICAiZGV2 IjogdHJ1ZSwKLSsgICAgICAib3B0aW9uYWwiOiB0cnVlCi0rICAgIH0sCi0rICAgICJzYXNzLWVt YmVkZGVkLWRhcndpbi14NjQiOiB7Ci0rICAgICAgInZlcnNpb24iOiAiMS44MC42IiwKLSsgICAg ICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvc2Fzcy1lbWJlZGRlZC1k YXJ3aW4teDY0Ly0vc2Fzcy1lbWJlZGRlZC1kYXJ3aW4teDY0LTEuODAuNi50Z3oiLAotKyAgICAg ICJpbnRlZ3JpdHkiOiAic2hhNTEyLUliMjB5TlpGT3JKN1lWVCtsdG9lK0pRTktQY1JjbE0zaUxB SzY5WFpaWWNTZUZNLzcyU0NvUUJBYVZHSXBUMjNkeERwN0ZYaUU0bE82MDJjM3hUUndRPT0iLAot KyAgICAgICJkZXYiOiB0cnVlLAotKyAgICAgICJvcHRpb25hbCI6IHRydWUKLSsgICAgfSwKLSsg ICAgInNhc3MtZW1iZWRkZWQtbGludXgtYXJtIjogewotKyAgICAgICJ2ZXJzaW9uIjogIjEuODAu NiIsCi0rICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3Nhc3Mt ZW1iZWRkZWQtbGludXgtYXJtLy0vc2Fzcy1lbWJlZGRlZC1saW51eC1hcm0tMS44MC42LnRneiIs Ci0rICAgICAgImludGVncml0eSI6ICJzaGE1MTItUVIwUTZUWm94L1RodVUycjljMHMzZktDZ1Uy clhBRW9jcGl0ZGd4RnA2dHRhK0dzUWxNRlYzb09OMnVuQWE4QndudXhrbWYwWU9hSzBPeS9Ud3pr WHc9PSIsCi0rICAgICAgImRldiI6IHRydWUsCi0rICAgICAgIm9wdGlvbmFsIjogdHJ1ZQotKyAg ICB9LAotKyAgICAic2Fzcy1lbWJlZGRlZC1saW51eC1hcm02NCI6IHsKLSsgICAgICAidmVyc2lv biI6ICIxLjgwLjYiLAotKyAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpz Lm9yZy9zYXNzLWVtYmVkZGVkLWxpbnV4LWFybTY0Ly0vc2Fzcy1lbWJlZGRlZC1saW51eC1hcm02 NC0xLjgwLjYudGd6IiwKLSsgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1uNXI5OHBCWGF3clFR S2F4SVlDTU0xekRwbm5nc3F4VGtPcm12c1lMRmlBTUNTYlIwbFdmLzdzQkIzM2svUG0wRDZkc2Jw M2pwSGlsQ29RTktJM2pJdz09IiwKLSsgICAgICAiZGV2IjogdHJ1ZSwKLSsgICAgICAib3B0aW9u YWwiOiB0cnVlCi0rICAgIH0sCi0rICAgICJzYXNzLWVtYmVkZGVkLWxpbnV4LWlhMzIiOiB7Ci0r ICAgICAgInZlcnNpb24iOiAiMS44MC42IiwKLSsgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9y ZWdpc3RyeS5ucG1qcy5vcmcvc2Fzcy1lbWJlZGRlZC1saW51eC1pYTMyLy0vc2Fzcy1lbWJlZGRl ZC1saW51eC1pYTMyLTEuODAuNi50Z3oiLAotKyAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLU82 ZFdaZGNPa3J5UmREQ3hWTUdPZVZvd2dibHBEZ1ZjQXVSdFoxRjFYN1hmYnBEcmlUUW02NEQrOXZW WklyeXdZU1BvSmZRTUpKNjYyY3Iwd1VzOUlRPT0iLAotKyAgICAgICJkZXYiOiB0cnVlLAotKyAg ICAgICJvcHRpb25hbCI6IHRydWUKLSsgICAgfSwKLSsgICAgInNhc3MtZW1iZWRkZWQtbGludXgt bXVzbC1hcm0iOiB7Ci0rICAgICAgInZlcnNpb24iOiAiMS44MC42IiwKLSsgICAgICAicmVzb2x2 ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvc2Fzcy1lbWJlZGRlZC1saW51eC1tdXNs LWFybS8tL3Nhc3MtZW1iZWRkZWQtbGludXgtbXVzbC1hcm0tMS44MC42LnRneiIsCi0rICAgICAg ImludGVncml0eSI6ICJzaGE1MTItWDlGQzhzOGZ2UUdSaVhjK2VBVGxaNTdONDRJcTNuTmEwTTB1 Z2kzeXNkSndrYU5Zdk9lUzRRekJIS1FBYXczUWlUcWR4VG5MVUhIVkJreXpkQ2k5cHc9PSIsCi0r ICAgICAgImRldiI6IHRydWUsCi0rICAgICAgIm9wdGlvbmFsIjogdHJ1ZQotKyAgICB9LAotKyAg ICAic2Fzcy1lbWJlZGRlZC1saW51eC1tdXNsLWFybTY0IjogewotKyAgICAgICJ2ZXJzaW9uIjog IjEuODAuNiIsCi0rICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3Jn L3Nhc3MtZW1iZWRkZWQtbGludXgtbXVzbC1hcm02NC8tL3Nhc3MtZW1iZWRkZWQtbGludXgtbXVz bC1hcm02NC0xLjgwLjYudGd6IiwKLSsgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1WZVVTSFVp M01Bc3ZPbGc5UUk0WC8yajA0aDE2NTlhRSs3cUtQLzI4MkNZQlRyR2tqRkdTWFpoSWtpOVdLV0Rn SXBEaVNJblJZWGZRUVJXaFBoakNEZz09IiwKLSsgICAgICAiZGV2IjogdHJ1ZSwKLSsgICAgICAi b3B0aW9uYWwiOiB0cnVlCi0rICAgIH0sCi0rICAgICJzYXNzLWVtYmVkZGVkLWxpbnV4LW11c2wt aWEzMiI6IHsKLSsgICAgICAidmVyc2lvbiI6ICIxLjgwLjYiLAotKyAgICAgICJyZXNvbHZlZCI6 ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9zYXNzLWVtYmVkZGVkLWxpbnV4LW11c2wtaWEz Mi8tL3Nhc3MtZW1iZWRkZWQtbGludXgtbXVzbC1pYTMyLTEuODAuNi50Z3oiLAotKyAgICAgICJp bnRlZ3JpdHkiOiAic2hhNTEyLUdxaXRTMk5hYjhhaDArd2ZDcWF4VzFobkkxcGlDMDhGaW1MNits TTlZV0s1RGJDT09GODJJYXBidkpPeTBmZVVtZC93Tm5IbXlOVGdFOWgwelZNRmRRPT0iLAotKyAg ICAgICJkZXYiOiB0cnVlLAotKyAgICAgICJvcHRpb25hbCI6IHRydWUKLSsgICAgfSwKLSsgICAg InNhc3MtZW1iZWRkZWQtbGludXgtbXVzbC1yaXNjdjY0IjogewotKyAgICAgICJ2ZXJzaW9uIjog IjEuODAuNiIsCi0rICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3Jn L3Nhc3MtZW1iZWRkZWQtbGludXgtbXVzbC1yaXNjdjY0Ly0vc2Fzcy1lbWJlZGRlZC1saW51eC1t dXNsLXJpc2N2NjQtMS44MC42LnRneiIsCi0rICAgICAgImludGVncml0eSI6ICJzaGE1MTIteVNz MTV6N1FTUlJRSy9hQnlFRXFhSkxZVy9zVHBmeW5lZk5QWkN0c1ZOVkV6TlJ3eStEUnB4TkNodHhv K1FqS3E5N29jWEVUYmRHNUtMaWs3UU9USmc9PSIsCi0rICAgICAgImRldiI6IHRydWUsCi0rICAg ICAgIm9wdGlvbmFsIjogdHJ1ZQotKyAgICB9LAotICAgICAic2Fzcy1lbWJlZGRlZC1saW51eC1t dXNsLXg2NCI6IHsKLSAgICAgICAidmVyc2lvbiI6ICIxLjgwLjYiLAotICAgICAgICJyZXNvbHZl ZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9zYXNzLWVtYmVkZGVkLWxpbnV4LW11c2wt eDY0Ly0vc2Fzcy1lbWJlZGRlZC1saW51eC1tdXNsLXg2NC0xLjgwLjYudGd6IiwKLSAgICAgICAi aW50ZWdyaXR5IjogInNoYTUxMi1EemVOcVUvU04wbVdGem5vT0g0UnRWR2NyZzNFb2E0MXBVUWhL TXRyaE5iQ21JRTF6TkR1blVpQUVWVE5wZEhKRjRueGY3RUxVUFhXbVN0TTMxQ2JVUT09IiwKLSAg ICAgICAiZGV2IjogdHJ1ZSwKLS0gICAgICAib3B0aW9uYWwiOiB0cnVlLAotLSAgICAgICJwZWVy IjogdHJ1ZQotKyAgICAgICJvcHRpb25hbCI6IHRydWUKLSsgICAgfSwKLSsgICAgInNhc3MtZW1i ZWRkZWQtbGludXgtcmlzY3Y2NCI6IHsKLSsgICAgICAidmVyc2lvbiI6ICIxLjgwLjYiLAotKyAg ICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9zYXNzLWVtYmVkZGVk LWxpbnV4LXJpc2N2NjQvLS9zYXNzLWVtYmVkZGVkLWxpbnV4LXJpc2N2NjQtMS44MC42LnRneiIs Ci0rICAgICAgImludGVncml0eSI6ICJzaGE1MTItQXlvSEozaWNWOXh1SmpxMVl6SnFwRWoyWGZp Qy9LQmtWWVRVckNFTEtpWFAwRE4xZ2kvQnBVd1pOQ0FnQ00zQ3lFZE1lZjRMUU0venRDWUp4WXpk eWc9PSIsCi0rICAgICAgImRldiI6IHRydWUsCi0rICAgICAgIm9wdGlvbmFsIjogdHJ1ZQotICAg ICB9LAotICAgICAic2Fzcy1lbWJlZGRlZC1saW51eC14NjQiOiB7Ci0gICAgICAgInZlcnNpb24i OiAiMS44MC42IiwKLSAgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5v cmcvc2Fzcy1lbWJlZGRlZC1saW51eC14NjQvLS9zYXNzLWVtYmVkZGVkLWxpbnV4LXg2NC0xLjgw LjYudGd6IiwKLSAgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1Fb2hzRTlDRXF4MHljeWxuc0Vq LzBETlBHOTlUYjBxQVZac3BpQXM1eEhGQ0pqWE9GZnAzY1JRdTBCUmYrbFoxYjcySWhQRlh5bXpW dG9qdnpVSGI3Zz09IiwKLSAgICAgICAiZGV2IjogdHJ1ZSwKLS0gICAgICAib3B0aW9uYWwiOiB0 cnVlLAotLSAgICAgICJwZWVyIjogdHJ1ZQotKyAgICAgICJvcHRpb25hbCI6IHRydWUKLSsgICAg fSwKLSsgICAgInNhc3MtZW1iZWRkZWQtd2luMzItYXJtNjQiOiB7Ci0rICAgICAgInZlcnNpb24i OiAiMS44MC42IiwKLSsgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5v cmcvc2Fzcy1lbWJlZGRlZC13aW4zMi1hcm02NC8tL3Nhc3MtZW1iZWRkZWQtd2luMzItYXJtNjQt MS44MC42LnRneiIsCi0rICAgICAgImludGVncml0eSI6ICJzaGE1MTItMjl3RVRRaTF5a2VWdnBk NHpNVm9rcFFLRlNPWnNrR0p6WmF3dXVOQ2RvN0JIakhLSVJEc3FiejhZVDFDZXdIUEJzaEkwaGZE MjFmZW5tanhZakdYUFE9PSIsCi0rICAgICAgImRldiI6IHRydWUsCi0rICAgICAgIm9wdGlvbmFs IjogdHJ1ZQotKyAgICB9LAotKyAgICAic2Fzcy1lbWJlZGRlZC13aW4zMi1pYTMyIjogewotKyAg ICAgICJ2ZXJzaW9uIjogIjEuODAuNiIsCi0rICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVn aXN0cnkubnBtanMub3JnL3Nhc3MtZW1iZWRkZWQtd2luMzItaWEzMi8tL3Nhc3MtZW1iZWRkZWQt d2luMzItaWEzMi0xLjgwLjYudGd6IiwKLSsgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi0xczNP cEsyaVRJZklML2E5MVFoQVFuZmZzYnVXZm5zTThMeDRGeHQwZjdFcm54akNWNnE4TVVGVFYvVWhj THRMeVRGblBDQTYyRExqcDJLR0NqTUk5QT09IiwKLSsgICAgICAiZGV2IjogdHJ1ZSwKLSsgICAg ICAib3B0aW9uYWwiOiB0cnVlCi0rICAgIH0sCi0rICAgICJzYXNzLWVtYmVkZGVkLXdpbjMyLXg2 NCI6IHsKLSsgICAgICAidmVyc2lvbiI6ICIxLjgwLjYiLAotKyAgICAgICJyZXNvbHZlZCI6ICJo dHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9zYXNzLWVtYmVkZGVkLXdpbjMyLXg2NC8tL3Nhc3Mt ZW1iZWRkZWQtd2luMzIteDY0LTEuODAuNi50Z3oiLAotKyAgICAgICJpbnRlZ3JpdHkiOiAic2hh NTEyLTBwSDRacjlzaWxIa2NtTFBDMGdobkQzREkwdk1zakE3ZEt2R1IzMi9SYmJqT1N2SFY1Y0RR UkxpdVZKQVBwMzRkZk1BN2tKZDF5c1NjaFJkSDBpZ0FRPT0iLAotKyAgICAgICJkZXYiOiB0cnVl LAotKyAgICAgICJvcHRpb25hbCI6IHRydWUKLSAgICAgfSwKLSAgICAgInNjaGVkdWxlciI6IHsK LSAgICAgICAidmVyc2lvbiI6ICIwLjIzLjIiLAotQEAgLTEyMjM4LDYgKzEyNjc1LDcgQEAKLSAg ICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvc3R5bGVsaW50Ly0v c3R5bGVsaW50LTE2LjkuMC50Z3oiLAotICAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLTMxTm0z V2p4R09CR3BRcUY0M28zd085TDVBQzM2VFBJZTYwMzBMbm0xM0gzdkRNVGNTMjFEckxoNjliTVgr REJpbEtxTU1WTGlhbjRpRzZ5YkJvTlJRPT0iLAotICAgICAgICJkZXYiOiB0cnVlLAotKyAgICAg ICJwZWVyIjogdHJ1ZSwKLSAgICAgICAicmVxdWlyZXMiOiB7Ci0gICAgICAgICAiQGNzc3Rvb2xz L2Nzcy1wYXJzZXItYWxnb3JpdGhtcyI6ICJeMy4wLjEiLAotICAgICAgICAgIkBjc3N0b29scy9j c3MtdG9rZW5pemVyIjogIl4zLjAuMSIsCi1AQCAtMTI3MDMsNyArMTMxNDEsOCBAQAotICAgICAg ICJ2ZXJzaW9uIjogIjUuNi4zIiwKLSAgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3Ry eS5ucG1qcy5vcmcvdHlwZXNjcmlwdC8tL3R5cGVzY3JpcHQtNS42LjMudGd6IiwKLSAgICAgICAi aW50ZWdyaXR5IjogInNoYTUxMi1oamNTMW1oZnV5aTRXVzhJV3RqUDdickRyRzJjdURadWt5clly U2F1b1hHTmd4MFM3emNlUDA3YWRZa0p5Y0VyNTZCT1VUTlB6Yklub29pTjNmbjFxdz09IiwKLS0g ICAgICAiZGV2IjogdHJ1ZQotKyAgICAgICJkZXYiOiB0cnVlLAotKyAgICAgICJwZWVyIjogdHJ1 ZQotICAgICB9LAotICAgICAidW5ib3gtcHJpbWl0aXZlIjogewotICAgICAgICJ2ZXJzaW9uIjog IjEuMC4yIiwKLUBAIC0xMjc0Niw4ICsxMzE4NSw3IEBACi0gICAgICAgInZlcnNpb24iOiAiNi4w LjAiLAotICAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy92YXJp bnQvLS92YXJpbnQtNi4wLjAudGd6IiwKLSAgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1jWEVJ VzZjZnIxNWxGdjU2M2s0R3VWdVcvZml3amtueXREMzdqSU9MU2RTV3VPSTZXbk8vb0t3bVAyRlFU VTJsMDFMUDgvTTVUU0FKcHpVYUdlM3VXZz09IiwKLS0gICAgICAiZGV2IjogdHJ1ZSwKLS0gICAg ICAicGVlciI6IHRydWUKLSsgICAgICAiZGV2IjogdHJ1ZQotICAgICB9LAotICAgICAidmljdG9y eS1hcmVhIjogewotICAgICAgICJ2ZXJzaW9uIjogIjM3LjMuMSIsCi0tLSAKLTIuNTIuMAotCgpk aWZmIC0tZ2l0IGEvMDAzOS1Jc3N1ZS03MjIxLUNJLXRlc3RzLWZpeC1zb21lLWZsYWt5LXRlc3Rz LnBhdGNoIGIvMDAzOS1Jc3N1ZS03MjIxLUNJLXRlc3RzLWZpeC1zb21lLWZsYWt5LXRlc3RzLnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYzI1OWQ5Li4wMDAwMDAwCi0tLSBh LzAwMzktSXNzdWUtNzIyMS1DSS10ZXN0cy1maXgtc29tZS1mbGFreS10ZXN0cy5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDk3ICswLDAgQEAKLUZyb20gYWU0YTM5NDc0ZGYwOGQ1NjA2NDQ1M2Yw ZmI2YzIyNzJlNmMzZGM4YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IE1hcmsgUmV5 bm9sZHMgPG1yZXlub2xkc0ByZWRoYXQuY29tPgotRGF0ZTogRnJpLCA2IEZlYiAyMDI2IDE1OjEz OjMwIC0wNTAwCi1TdWJqZWN0OiBbUEFUQ0hdIElzc3VlIDcyMjEgLSBDSSB0ZXN0cyAtIGZpeCBz b21lIGZsYWt5IHRlc3RzCi0KLURlc2NyaXB0aW9uOgotCi1UcnkgdG8gaGFyZGVuIHNvbWUgb2Yg dGhlIGZsYWt5IHRlc3RzIHdpdGggc2xlZXBzIGFuZCBtb3JlIHJlbGF4ZWQgY29udHJhaW50cwot Ci1SZWxhdGVzOiBodHRwczovL2dpdGh1Yi5jb20vMzg5ZHMvMzg5LWRzLWJhc2UvaXNzdWVzLzcy MjEKLQotUmV2aWV3ZWQgYnk6IHNwaWNodWdpKFRoYW5rcyEpCi0tLS0KLSBkaXJzcnZ0ZXN0cy90 ZXN0cy9zdWl0ZXMvYWNsL2FjaXZhdHRyX3Rlc3QucHkgICAgICAgICAgICAgIHwgNyArKysrKy0t Ci0gZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL2ltcG9ydC9yZWdyZXNzaW9uX3Rlc3QucHkgICAg ICAgICB8IDIgKy0KLSAuLi4vc3VpdGVzL3JlcGxpY2F0aW9uL3dhaXRfZm9yX2FzeW5jX2ZlYXR1 cmVfdGVzdC5weSAgICAgIHwgMiArLQotIGRpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9yZXRyb2Ns L2Jhc2ljX3Rlc3QucHkgICAgICAgICAgICAgfCAyICstCi0gNCBmaWxlcyBjaGFuZ2VkLCA4IGlu c2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9kaXJzcnZ0ZXN0cy90 ZXN0cy9zdWl0ZXMvYWNsL2FjaXZhdHRyX3Rlc3QucHkgYi9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0 ZXMvYWNsL2FjaXZhdHRyX3Rlc3QucHkKLWluZGV4IGQ1NWVlYTAyMy4uZWZlMmQ1ZWYxIDEwMDY0 NAotLS0tIGEvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL2FjbC9hY2l2YXR0cl90ZXN0LnB5Ci0r KysgYi9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvYWNsL2FjaXZhdHRyX3Rlc3QucHkKLUBAIC0x LDEyICsxLDEyIEBACi0gIyAtLS0gQkVHSU4gQ09QWVJJR0hUIEJMT0NLIC0tLQotLSMgQ29weXJp Z2h0IChDKSAyMDE5IFJlZCBIYXQsIEluYy4KLSsjIENvcHlyaWdodCAoQykgMjAyNiBSZWQgSGF0 LCBJbmMuCi0gIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotICMKLSAjIExpY2Vuc2U6IEdQTCAodmVy c2lvbiAzIG9yIGFueSBsYXRlciB2ZXJzaW9uKS4KLSAjIFNlZSBMSUNFTlNFIGZvciBkZXRhaWxz LgotICMgLS0tIEVORCBDT1BZUklHSFQgQkxPQ0sgLS0tCi0gCi0taW1wb3J0IHB5dGVzdCwgb3Ms IGxkYXAKLStpbXBvcnQgcHl0ZXN0LCBvcywgbGRhcCwgdGltZQotIGZyb20gbGliMzg5Ll9jb25z dGFudHMgaW1wb3J0IERFRkFVTFRfU1VGRklYLCBQV19ETQotIGZyb20gbGliMzg5LmlkbS51c2Vy IGltcG9ydCBVc2VyQWNjb3VudAotIGZyb20gbGliMzg5LmlkbS5vcmdhbml6YXRpb24gaW1wb3J0 IE9yZ2FuaXphdGlvbgotQEAgLTE5MCw2ICsxOTAsOCBAQCBkZWYgdGVzdF9wb3NpdGl2ZSh0b3Bv LCBfYWRkX3VzZXIsIGFjaV9vZl91c2VyLCB1c2VyLCBlbnRyeSwgYWNpKToKLSAgICAgIiIiCi0g ICAgICMgc2V0IGFjaQotICAgICBEb21haW4odG9wby5zdGFuZGFsb25lLCBETkJBU0UpLnNldCgi YWNpIiwgYWNpKQotKyAgICB0aW1lLnNsZWVwKC41KQotKwotICAgICAjIGNyZWF0ZSBjb25uZWN0 aW9uCi0gICAgIGNvbm4gPSBVc2VyQWNjb3VudCh0b3BvLnN0YW5kYWxvbmUsIHVzZXIpLmJpbmQo UFdfRE0pCi0gICAgICMgYWNjb3JkaW5nIHRvIHRoZSBhY2kgLCB1c2VyIHdpbGwgIGJlIGFibGUg dG8gY2hhbmdlIGRlc2NyaXB0aW9uCi1AQCAtMjQyLDYgKzI0NCw3IEBAIGRlZiB0ZXN0X25lZ2F0 aXZlKHRvcG8sIF9hZGRfdXNlciwgYWNpX29mX3VzZXIsIHVzZXIsIGVudHJ5LCBhY2kpOgotICAg ICAiIiIKLSAgICAgIyBzZXQgYWNpCi0gICAgIERvbWFpbih0b3BvLnN0YW5kYWxvbmUsIEROQkFT RSkuc2V0KCJhY2kiLCBhY2kpCi0rICAgIHRpbWUuc2xlZXAoLjUpCi0gICAgICMgY3JlYXRlIGNv bm5lY3Rpb24KLSAgICAgY29ubiA9IFVzZXJBY2NvdW50KHRvcG8uc3RhbmRhbG9uZSwgdXNlciku YmluZChQV19ETSkKLSAgICAgIyBhY2NvcmRpbmcgdG8gdGhlIGFjaSAsIHVzZXIgd2lsbCBub3Qg YmUgYWJsZSB0byBjaGFuZ2UgZGVzY3JpcHRpb24KLWRpZmYgLS1naXQgYS9kaXJzcnZ0ZXN0cy90 ZXN0cy9zdWl0ZXMvaW1wb3J0L3JlZ3Jlc3Npb25fdGVzdC5weSBiL2RpcnNydnRlc3RzL3Rlc3Rz L3N1aXRlcy9pbXBvcnQvcmVncmVzc2lvbl90ZXN0LnB5Ci1pbmRleCAwZTNiYTE5MzAuLjI1YTdm MzU5ZCAxMDA2NDQKLS0tLSBhL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9pbXBvcnQvcmVncmVz c2lvbl90ZXN0LnB5Ci0rKysgYi9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvaW1wb3J0L3JlZ3Jl c3Npb25fdGVzdC5weQotQEAgLTY4Nyw3ICs2ODcsNyBAQCBkZWYgdGVzdF9sZGlmMmRiX2FmdGVy X2JhY2tlbmRfY3JlYXRlKHRvcG8sIHZlcmlmeSk6Ci0gICAgIGltcG9ydF90aW1lXzIgPSBjcmVh dGVfYmFja2VuZF9hbmRfaW1wb3J0KGluc3RhbmNlLCBsZGlmX2ZpbGVfMiwgJ289dGVzdF8yJywg J3Rlc3RfMicpCi0gCi0gICAgIGxvZy5pbmZvKCdJbXBvcnQgdGltZXMgc2hvdWxkIGJlIGFwcHJv eGltYXRlbHkgdGhlIHNhbWUnKQotLSAgICBhc3NlcnQgYWJzKGltcG9ydF90aW1lXzEgLSBpbXBv cnRfdGltZV8yKSA8IDE1Ci0rICAgIGFzc2VydCBhYnMoaW1wb3J0X3RpbWVfMSAtIGltcG9ydF90 aW1lXzIpIDwgMjAKLSAKLSAKLSBkZWYgdGVzdF9sZGlmX21pc3Npbmdfc3VmZml4X2VudHJ5KHRv cG8sIHJlcXVlc3QsIHZlcmlmeSk6Ci1kaWZmIC0tZ2l0IGEvZGlyc3J2dGVzdHMvdGVzdHMvc3Vp dGVzL3JlcGxpY2F0aW9uL3dhaXRfZm9yX2FzeW5jX2ZlYXR1cmVfdGVzdC5weSBiL2RpcnNydnRl c3RzL3Rlc3RzL3N1aXRlcy9yZXBsaWNhdGlvbi93YWl0X2Zvcl9hc3luY19mZWF0dXJlX3Rlc3Qu cHkKLWluZGV4IGM1YWI1ODVlNC4uODRjZTFjYTJiIDEwMDY0NAotLS0tIGEvZGlyc3J2dGVzdHMv dGVzdHMvc3VpdGVzL3JlcGxpY2F0aW9uL3dhaXRfZm9yX2FzeW5jX2ZlYXR1cmVfdGVzdC5weQot KysrIGIvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL3JlcGxpY2F0aW9uL3dhaXRfZm9yX2FzeW5j X2ZlYXR1cmVfdGVzdC5weQotQEAgLTI2LDcgKzI2LDcgQEAgbG9nID0gbG9nZ2luZy5nZXRMb2dn ZXIoX19uYW1lX18pCi0gaW5zdGFsbGF0aW9uMV9wcmVmaXggPSBOb25lCi0gCi0gIyBFeHBlY3Rl ZCBtaW5pbXVtIGFuZCBtYXhpbXVtIG51bWJlciBvZiBhc3luYyByZXN1bHQgaW4gdXN1YWwgY2Fz ZXMKLS1VU1VBTF9NSU5fQVAgPSAzCi0rVVNVQUxfTUlOX0FQID0gMgotIFVTVUFMX01BWF9BUCA9 IDExCi0gCi0gQHB5dGVzdC5maXh0dXJlKHBhcmFtcz1bKE5vbmUsIChVU1VBTF9NSU5fQVAsIFVT VUFMX01BWF9BUCkpLAotZGlmZiAtLWdpdCBhL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9yZXRy b2NsL2Jhc2ljX3Rlc3QucHkgYi9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvcmV0cm9jbC9iYXNp Y190ZXN0LnB5Ci1pbmRleCBiNTNhNjA4NTEuLjJmY2U3MjA0OSAxMDA2NDQKLS0tLSBhL2RpcnNy dnRlc3RzL3Rlc3RzL3N1aXRlcy9yZXRyb2NsL2Jhc2ljX3Rlc3QucHkKLSsrKyBiL2RpcnNydnRl c3RzL3Rlc3RzL3N1aXRlcy9yZXRyb2NsL2Jhc2ljX3Rlc3QucHkKLUBAIC00OTIsNyArNDkyLDcg QEAgZGVmIHRlc3RfcmV0cm9jbF90cmltbWluZ19lbnRyaWVzKHRvcG9sb2d5X3N0KToKLSAgICAg ICAgIGlmIGluc3Quc2VhcmNoRXJyb3JzTG9nKCJ0cmltX2NoYW5nZWxvZzogcmVtb3ZlZCAiKToK LSAgICAgICAgICAgICBsb2cuaW5mbyhmJ1RyaW1taW5nIGRldGVjdGVkIGFmdGVyIHthdHRlbXB0 ICogNn0gc2Vjb25kcycpCi0gICAgICAgICAgICAgYnJlYWsKLS0gICAgCi0rCi0gICAgIGxvZy5p bmZvKCdWZXJpZnkgdHJpbW1pbmcgb2NjdXJyZWQgYnkgY2hlY2tpbmcgZXJyb3IgbG9nJykKLSAg ICAgYXNzZXJ0IGluc3Quc2VhcmNoRXJyb3JzTG9nKCJ0cmltX2NoYW5nZWxvZzogcmVtb3ZlZCAi KQotIAotLS0gCi0yLjUyLjAKLQoKZGlmZiAtLWdpdCBhLzAwNDAtSXNzdWUtNzIzMy10ZXN0X3By b2R1Y2VfZGl2aXNpb25fYnlfemVyby1mYWlscy13aXRoLS5wYXRjaCBiLzAwNDAtSXNzdWUtNzIz My10ZXN0X3Byb2R1Y2VfZGl2aXNpb25fYnlfemVyby1mYWlscy13aXRoLS5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTRlZTI4NC4uMDAwMDAwMAotLS0gYS8wMDQwLUlzc3Vl LTcyMzMtdGVzdF9wcm9kdWNlX2RpdmlzaW9uX2J5X3plcm8tZmFpbHMtd2l0aC0ucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi1Gcm9tIDU4ZjVkMTI5NDk2Y2M4YjQyNzFkYWY1 ZDBjZDNhYjMxZThiOTI2YTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBBa3NoYXkg QWRoaWthcmkgPGFhZGhpa2FyQHJlZGhhdC5jb20+Ci1EYXRlOiBUaHUsIDEyIEZlYiAyMDI2IDEy OjQ3OjIzICswNTMwCi1TdWJqZWN0OiBbUEFUQ0hdIElzc3VlIDcyMzMgLSB0ZXN0X3Byb2R1Y2Vf ZGl2aXNpb25fYnlfemVybyBmYWlscyB3aXRoCi0gSXNBRGlyZWN0b3J5RXJyb3IgaW4gY29uZnRl c3QucHkgKCM3MjM0KQotCi1EZXNjcmlwdGlvbjogZ2xvYignLyovKicpIG1hdGNoZXMgZGlyZWN0 b3JpZXMgY2F1c2luZyBvcGVuKCkgdG8gZmFpbC4KLQotRml4ZXM6ICM3MjMzCi0KLVJldmlld2Vk IGJ5OiBAZHJvaWRlY2sgKFRoYW5rcyEpCi0tLS0KLSBkaXJzcnZ0ZXN0cy9jb25mdGVzdC5weSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMiArKwotIC4uLi9zdWl0ZXMvZGlz a19tb25pdG9yaW5nL2Rpc2tfbW9uaXRvcmluZ19kaXZpZGVfdGVzdC5weSAgfCA3ICsrKystLS0K LSAyIGZpbGVzIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKLQotZGlm ZiAtLWdpdCBhL2RpcnNydnRlc3RzL2NvbmZ0ZXN0LnB5IGIvZGlyc3J2dGVzdHMvY29uZnRlc3Qu cHkKLWluZGV4IDBkYjYwNDVmNC4uMTliMzRjNGE0IDEwMDY0NAotLS0tIGEvZGlyc3J2dGVzdHMv Y29uZnRlc3QucHkKLSsrKyBiL2RpcnNydnRlc3RzL2NvbmZ0ZXN0LnB5Ci1AQCAtMTI2LDYgKzEy Niw4IEBAIGRlZiBweXRlc3RfcnVudGVzdF9tYWtlcmVwb3J0KGl0ZW0sIGNhbGwpOgotICAgICAg ICAgICAgICAgICAgICAgdGV4dCA9IGFzYW5fcmVwb3J0LnJlYWQoKQotICAgICAgICAgICAgICAg ICAgICAgZXh0cmEuYXBwZW5kKHB5dGVzdF9odG1sLmV4dHJhcy50ZXh0KHRleHQsIG5hbWU9b3Mu cGF0aC5iYXNlbmFtZShmKSkpCi0gICAgICAgICAgICAgZm9yIGYgaW4gZ2xvYi5nbG9iKGYne3Au bG9nX2Rpci5zcGxpdCgiL3NsYXBkIiwxKVswXX0vKi8qJyk6Ci0rICAgICAgICAgICAgICAgIGlm IG5vdCBvcy5wYXRoLmlzZmlsZShmKToKLSsgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0g ICAgICAgICAgICAgICAgIGlmIGYuZW5kc3dpdGgoJ2d6Jyk6Ci0gICAgICAgICAgICAgICAgICAg ICB3aXRoIGd6aXAub3BlbihmLCAncmInKSBhcyBkaXJzcnZfbG9nOgotICAgICAgICAgICAgICAg ICAgICAgICAgIHRleHQgPSBkaXJzcnZfbG9nLnJlYWQoKQotZGlmZiAtLWdpdCBhL2RpcnNydnRl c3RzL3Rlc3RzL3N1aXRlcy9kaXNrX21vbml0b3JpbmcvZGlza19tb25pdG9yaW5nX2RpdmlkZV90 ZXN0LnB5IGIvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL2Rpc2tfbW9uaXRvcmluZy9kaXNrX21v bml0b3JpbmdfZGl2aWRlX3Rlc3QucHkKLWluZGV4IDlkOTUyZjkzYS4uM2U1MmU3YzZiIDEwMDY0 NAotLS0tIGEvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL2Rpc2tfbW9uaXRvcmluZy9kaXNrX21v bml0b3JpbmdfZGl2aWRlX3Rlc3QucHkKLSsrKyBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9k aXNrX21vbml0b3JpbmcvZGlza19tb25pdG9yaW5nX2RpdmlkZV90ZXN0LnB5Ci1AQCAtMzEsMTUg KzMxLDE2IEBAIGRlZiBjcmVhdGVfZHVtbXlfbW91bnQodG9wb2xvZ3lfc3QsIHJlcXVlc3QpOgot ICAgICBsb2cuaW5mbygnQ3JlYXRlIGR1bW15IG1vdW50JykKLSAgICAgZm9yIGNtZCBpbiBjbWRz OgotICAgICAgICAgbG9nLmluZm8oJ0NvbW1hbmQgdXNlZCA6ICVzJyAlIGNtZCkKLS0gICAgICAg IHN1YnByb2Nlc3MuUG9wZW4oY21kLCBzaGVsbD1UcnVlKQotKyAgICAgICAgc3VicHJvY2Vzcy5y dW4oY21kLCBzaGVsbD1UcnVlKQotIAotICAgICBkZWYgZmluKCk6Ci0gICAgICAgICBjbWRzID0g Wyd1bW91bnQgL3Zhci9sb2cvZGlyc3J2L3NsYXBkLXt9L3RtcCcuZm9ybWF0KHRvcG9sb2d5X3N0 LnN0YW5kYWxvbmUuc2VydmVyaWQpLAotKyAgICAgICAgICAgICAgICAncm1kaXIgL3Zhci9sb2cv ZGlyc3J2L3NsYXBkLXt9L3RtcCcuZm9ybWF0KHRvcG9sb2d5X3N0LnN0YW5kYWxvbmUuc2VydmVy aWQpLAotICAgICAgICAgICAgICAgICAnc2V0ZW5mb3JjZSAxJ10KLSAKLSAgICAgICAgIGZvciBj bWQgaW4gY21kczoKLS0gICAgICAgICAgICBsb2cuaW5mbygnQ29tbWFuZCB1c2VkIDogJXMnICUg Y21kcykKLS0gICAgICAgICAgICBzdWJwcm9jZXNzLlBvcGVuKGNtZCwgc2hlbGw9VHJ1ZSkKLSsg ICAgICAgICAgICBsb2cuaW5mbygnQ29tbWFuZCB1c2VkIDogJXMnICUgY21kKQotKyAgICAgICAg ICAgIHN1YnByb2Nlc3MucnVuKGNtZCwgc2hlbGw9VHJ1ZSkKLSAKLSAgICAgcmVxdWVzdC5hZGRm aW5hbGl6ZXIoZmluKQotIAotLS0gCi0yLjUyLjAKLQoKZGlmZiAtLWdpdCBhLzAwNDEtSXNzdWUt NzI0MS1Ecm9wLWRhdGV1dGlsLTcyNDIucGF0Y2ggYi8wMDQxLUlzc3VlLTcyNDEtRHJvcC1kYXRl dXRpbC03MjQyLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZTJlZTY1Li4w MDAwMDAwCi0tLSBhLzAwNDEtSXNzdWUtNzI0MS1Ecm9wLWRhdGV1dGlsLTcyNDIucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSwyMjYgKzAsMCBAQAotRnJvbSBiYmRhNDliODZmMzg0MWFjNTEwMDg5 NGRhNDI2ZWRjNTQxYjYyMjZjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogVmlrdG9y IEFzaGlyb3YgPHZhc2hpcm92QHJlZGhhdC5jb20+Ci1EYXRlOiBUaHUsIDEyIEZlYiAyMDI2IDA5 OjE1OjE4ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIElzc3VlIDcyNDEgLSBEcm9wIGRhdGV1dGls ICgjNzI0MikKLQotQnVnIERlc2NyaXB0aW9uOgotcHl0aG9uLWRhdGV1dGlsIGlzIHVubWFpbnRh aW5lZCB1cHN0cmVhbSBhbmQgaXMgbWFya2VkIGZvciBkZXByZWNhdGlvbi4KLQotRml4IERlc2Ny aXB0aW9uOgotKiBSZXBsYWNlIGBkYXRldXRpbC50ei50em9mZnNldGAgd2l0aCBgZGF0ZXRpbWUu dGltZXpvbmUoZGF0ZXRpbWUudGltZWRlbHRhKCkpYC4KLSogUmVwbGFjZSBgZGF0ZXV0aWwucGFy c2VyLnBhcnNlYCB3aXRoIHN0YW5kYXJkIGBkYXRldGltZWAgY2FsbHMuCi0qIEltcG9ydCBgZGF0 ZXRpbWVgIGFzIGBkdGAgdG8gYXZvaWQgY29uZnVzaW9uIGJldHdlZW4gbW9kdWxlIGFuZCBjbGFz cy4KLSogRml4IG1vbnRoIGxvb2t1cCBidWcgKCdPY3QnOiA5IC8gJ1NlcCc6IDEwKS4KLQotRml4 ZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS8zODlkcy8zODktZHMtYmFzZS9pc3N1ZXMvNzI0MQotCi1S ZXZpZXdlZCBieTogamNoYXBtYSwgZHJvaWRlY2sgKFRoYW5rcyEpCi0tLS0KLSAuLi4vc3VpdGVz L3Bhc3N3b3JkL3B3ZFBvbGljeV93YXJuaW5nX3Rlc3QucHkgfCAgNSArLQotIHNyYy9saWIzODkv bGliMzg5L2RpcnNydl9sb2cucHkgICAgICAgICAgICAgICB8IDQ4ICsrKysrKysrKysrKy0tLS0t LS0KLSBzcmMvbGliMzg5L2xpYjM4OS90ZXN0cy9kaXJzcnZfbG9nX3Rlc3QucHkgICAgfCAxMyAr KystLQotIHNyYy9saWIzODkvcHlwcm9qZWN0LnRvbWwgICAgICAgICAgICAgICAgICAgICB8ICAy IC0KLSBzcmMvbGliMzg5L3JlcXVpcmVtZW50cy50eHQgICAgICAgICAgICAgICAgICAgfCAgMSAt Ci0gNSBmaWxlcyBjaGFuZ2VkLCAzOCBpbnNlcnRpb25zKCspLCAzMSBkZWxldGlvbnMoLSkKLQot ZGlmZiAtLWdpdCBhL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9wYXNzd29yZC9wd2RQb2xpY3lf d2FybmluZ190ZXN0LnB5IGIvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL3Bhc3N3b3JkL3B3ZFBv bGljeV93YXJuaW5nX3Rlc3QucHkKLWluZGV4IDE1NGVjMDFmMS4uMjM0MWRhNmViIDEwMDY0NAot LS0tIGEvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL3Bhc3N3b3JkL3B3ZFBvbGljeV93YXJuaW5n X3Rlc3QucHkKLSsrKyBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9wYXNzd29yZC9wd2RQb2xp Y3lfd2FybmluZ190ZXN0LnB5Ci1AQCAtMTUsOSArMTUsOCBAQCBmcm9tIGxpYjM4OS50b3BvbG9n aWVzIGltcG9ydCB0b3BvbG9neV9zdAotIGZyb20gbGliMzg5LmlkbS51c2VyIGltcG9ydCBVc2Vy QWNjb3VudHMKLSBmcm9tIGxpYjM4OS5pZG0ub3JnYW5pemF0aW9uYWx1bml0IGltcG9ydCBPcmdh bml6YXRpb25hbFVuaXRzCi0gZnJvbSBsaWIzODkuX2NvbnN0YW50cyBpbXBvcnQgKERFRkFVTFRf U1VGRklYLCBETl9DT05GSUcsIFBBU1NXT1JELCBETl9ETSkKLS1mcm9tIGRhdGV1dGlsLnBhcnNl ciBpbXBvcnQgcGFyc2UgYXMgZHRfcGFyc2UKLSBmcm9tIGxpYjM4OS5jb25maWcgaW1wb3J0IENv bmZpZwotLWltcG9ydCBkYXRldGltZQotK2ltcG9ydCBkYXRldGltZSBhcyBkdAotIAotIHB5dGVz dG1hcmsgPSBweXRlc3QubWFyay50aWVyMQotIAotQEAgLTM1MSw3ICszNTAsNyBAQCBkZWYgdGVz dF93aXRoX2RpZmZlcmVudF9wYXNzd29yZF9zdGF0ZXModG9wb2xvZ3lfc3QsIGdsb2JhbF9wb2xp Y3ksIGFkZF91c2VyKToKLSAgICAgb2xkX3RzID0gdXNlci5nZXRfYXR0cl92YWxfdXRmOCgncGFz c3dvcmRFeHBpcmF0aW9uVGltZScpCi0gICAgIGxvZy5pbmZvKCJPbGQgcGFzc3dvcmRFeHBpcmF0 aW9uVGltZToge30iLmZvcm1hdChvbGRfdHMpKQotIAotLSAgICBuZXdfdHMgPSAoZHRfcGFyc2Uo b2xkX3RzKSAtIGRhdGV0aW1lLnRpbWVkZWx0YSgzMSkpLnN0cmZ0aW1lKCclWSVtJWQlSCVNJVNa JykKLSsgICAgbmV3X3RzID0gKGR0LmRhdGV0aW1lLnN0cnB0aW1lKG9sZF90cywgJyVZJW0lZCVI JU0lU1onKSAtIGR0LnRpbWVkZWx0YSgzMSkpLnN0cmZ0aW1lKCclWSVtJWQlSCVNJVNaJykKLSAg ICAgbG9nLmluZm8oIk5ldyBwYXNzd29yZEV4cGlyYXRpb25UaW1lOiB7fSIuZm9ybWF0KG5ld190 cykpCi0gICAgIHVzZXIucmVwbGFjZSgncGFzc3dvcmRFeHBpcmF0aW9uVGltZScsIG5ld190cykK LSAKLWRpZmYgLS1naXQgYS9zcmMvbGliMzg5L2xpYjM4OS9kaXJzcnZfbG9nLnB5IGIvc3JjL2xp YjM4OS9saWIzODkvZGlyc3J2X2xvZy5weQotaW5kZXggZTQwMTA1YWQzLi4zZDkyM2E4YmYgMTAw NjQ0Ci0tLS0gYS9zcmMvbGliMzg5L2xpYjM4OS9kaXJzcnZfbG9nLnB5Ci0rKysgYi9zcmMvbGli Mzg5L2xpYjM4OS9kaXJzcnZfbG9nLnB5Ci1AQCAtMTAsMTEgKzEwLDExIEBACi0gIiIiCi0gCi0g aW1wb3J0IGNvcHkKLStpbXBvcnQgZGF0ZXRpbWUgYXMgZHQKLSBpbXBvcnQganNvbgotIGltcG9y dCBnbG9iCi0gaW1wb3J0IHJlCi0gaW1wb3J0IGd6aXAKLS1mcm9tIGRhdGV1dGlsLnBhcnNlciBp bXBvcnQgcGFyc2UgYXMgZHRfcGFyc2UKLSBmcm9tIGxpYjM4OS51dGlscyBpbXBvcnQgZW5zdXJl X2J5dGVzCi0gZnJvbSBsaWIzODkuX21hcHBlZF9vYmplY3RfbGludCBpbXBvcnQgRFNMaW50Ci0g ZnJvbSBsaWIzODkubGludCBpbXBvcnQgKAotQEAgLTM0LDggKzM0LDggQEAgTU9OVEhfTE9PS1VQ ID0gewotICAgICAnSnVuJzogNiwKLSAgICAgJ0p1bCc6IDcsCi0gICAgICdBdWcnOiA4LAotLSAg ICAnT2N0JzogOSwKLS0gICAgJ1NlcCc6IDEwLAotKyAgICAnU2VwJzogOSwKLSsgICAgJ09jdCc6 IDEwLAotICAgICAnTm92JzogMTEsCi0gICAgICdEZWMnOiAxMiwKLSB9Ci1AQCAtNTAsOSArNTAs OSBAQCBjbGFzcyBEaXJzcnZMb2coRFNMaW50KToKLSAgICAgICAgICIiIgotICAgICAgICAgc2Vs Zi5kaXJzcnYgPSBkaXJzcnYKLSAgICAgICAgIHNlbGYubG9nID0gc2VsZi5kaXJzcnYubG9nCi0t ICAgICAgICBzZWxmLnByb2dfdGltZXN0YW1wID0gcmUuY29tcGlsZShyJ1xbKD9QPGRheT5cZCop XC8oP1A8bW9udGg+XHcqKVwvKD9QPHllYXI+XGQqKTooP1A8aG91cj5cZCopOig/UDxtaW51dGU+ XGQqKTooP1A8c2Vjb25kPlxkKikoLig/UDxuYW5vc2Vjb25kPlxkKikpK1xzKD9QPHR6PltcK1wt XVxkKiknKSAgICMgbm9xYQotKyAgICAgICAgc2VsZi5wcm9nX3RpbWVzdGFtcCA9IHJlLmNvbXBp bGUocidcWyg/UDxkYXk+XGQqKVwvKD9QPG1vbnRoPlx3KilcLyg/UDx5ZWFyPlxkKik6KD9QPGhv dXI+XGQqKTooP1A8bWludXRlPlxkKik6KD9QPHNlY29uZD5cZCopKC4oP1A8bmFub3NlY29uZD5c ZCopKStccyg/UDx0ej5bXCtcLV1cZHs0fSknKSAgICMgbm9xYQotICAgICAgICAgIyAgSlNPTiB0 aW1lc3RhbXAgdXNlcyBzdHJmdGltZSAlRlQlVCAtLT4gMjAyNS0wMi0xMlQxNzowMDo0Ny42NjMx MjMxODEgLTA1MDAKLS0gICAgICAgIHNlbGYucHJvZ19qc29uX3RpbWVzdGFtcCA9IHJlLmNvbXBp bGUocicoP1A8eWVhcj5cZCopLSg/UDxtb250aD5cdyopLSg/UDxkYXk+XGQqKVQoP1A8aG91cj5c ZCopOig/UDxtaW51dGU+XGQqKTooP1A8c2Vjb25kPlxkKikoLig/UDxuYW5vc2Vjb25kPlxkKikp K1xzKD9QPHR6PltcK1wtXVxkKiknKSAgICMgbm9xYQotKyAgICAgICAgc2VsZi5wcm9nX2pzb25f dGltZXN0YW1wID0gcmUuY29tcGlsZShyJyg/UDx5ZWFyPlxkKiktKD9QPG1vbnRoPlx3KiktKD9Q PGRheT5cZCopVCg/UDxob3VyPlxkKik6KD9QPG1pbnV0ZT5cZCopOig/UDxzZWNvbmQ+XGQqKSgu KD9QPG5hbm9zZWNvbmQ+XGQqKSkrXHMoP1A8dHo+W1wrXC1dXGR7NH0pJykgICAjIG5vcWEKLSAg ICAgICAgIHNlbGYucHJvZ19kYXRldGltZSA9IHJlLmNvbXBpbGUocideKD9QPHRpbWVzdGFtcD5c Wy4qXF0pJykKLSAgICAgICAgIHNlbGYuanNvbkZvcm1hdCA9IEZhbHNlCi0gCi1AQCAtMTU3LDIw ICsxNTcsMzIgQEAgY2xhc3MgRGlyc3J2TG9nKERTTGludCk6Ci0gICAgICAgICBlbHNlOgotICAg ICAgICAgICAgIHRpbWVkYXRhID0gc2VsZi5wcm9nX3RpbWVzdGFtcC5tYXRjaCh0cykuZ3JvdXBk aWN0KCkKLSAKLS0gICAgICAgICMgTm93LCBoYXZlIHRvIGNvbnZlcnQgbW9udGggdG8gYW4gaW50 LgotLSAgICAgICAgZHRfc3RyID0gJ3tZRUFSfS17TU9OVEh9LXtEQVl9IHtIT1VSfS17TUlOVVRF fS17U0VDT05EfSB7VFp9Jy5mb3JtYXQoCi0tICAgICAgICAgICAgWUVBUj10aW1lZGF0YVsneWVh ciddLAotLSAgICAgICAgICAgIE1PTlRIPXRpbWVkYXRhWydtb250aCddLAotLSAgICAgICAgICAg IERBWT10aW1lZGF0YVsnZGF5J10sCi0tICAgICAgICAgICAgSE9VUj10aW1lZGF0YVsnaG91cidd LAotLSAgICAgICAgICAgIE1JTlVURT10aW1lZGF0YVsnbWludXRlJ10sCi0tICAgICAgICAgICAg U0VDT05EPXRpbWVkYXRhWydzZWNvbmQnXSwKLS0gICAgICAgICAgICBUWj10aW1lZGF0YVsndHon XSwKLS0gICAgICAgICAgICApCi0tICAgICAgICBkdCA9IGR0X3BhcnNlKGR0X3N0cikKLSsgICAg ICAgICMgQ29udmVydCBtb250aCB0byBhbiBpbnQuCi0rICAgICAgICBtb250aCA9IHRpbWVkYXRh Wydtb250aCddCi0rICAgICAgICBpZiBub3QgbW9udGguaXNkaWdpdCgpOgotKyAgICAgICAgICAg IG1vbnRoID0gTU9OVEhfTE9PS1VQW21vbnRoXQotKyAgICAgICAgZWxzZToKLSsgICAgICAgICAg ICBtb250aCA9IGludChtb250aCkKLSsKLSsgICAgICAgICMgUGFyc2UgdGltZXpvbmUgb2Zmc2V0 IHN0cmluZyAoZS5nLiAiKzEwMDAiIG9yICItMDUwMCIpIGludG8gYSB0aW1lem9uZQotKyAgICAg ICAgdHpfc3RyID0gdGltZWRhdGFbJ3R6J10KLSsgICAgICAgIHR6X3NpZ24gPSAxIGlmIHR6X3N0 clswXSA9PSAnKycgZWxzZSAtMQotKyAgICAgICAgdHpfaG91cnMgPSBpbnQodHpfc3RyWzE6M10p Ci0rICAgICAgICB0el9taW51dGVzID0gaW50KHR6X3N0clszOjVdKQotKyAgICAgICAgdHogPSBk dC50aW1lem9uZShkdC50aW1lZGVsdGEoaG91cnM9dHpfc2lnbiAqIHR6X2hvdXJzLCBtaW51dGVz PXR6X3NpZ24gKiB0el9taW51dGVzKSkKLSsKLSsgICAgICAgIHBhcnNlZF9kdCA9IGR0LmRhdGV0 aW1lKAotKyAgICAgICAgICAgIGludCh0aW1lZGF0YVsneWVhciddKSwKLSsgICAgICAgICAgICBt b250aCwKLSsgICAgICAgICAgICBpbnQodGltZWRhdGFbJ2RheSddKSwKLSsgICAgICAgICAgICBp bnQodGltZWRhdGFbJ2hvdXInXSksCi0rICAgICAgICAgICAgaW50KHRpbWVkYXRhWydtaW51dGUn XSksCi0rICAgICAgICAgICAgaW50KHRpbWVkYXRhWydzZWNvbmQnXSksCi0rICAgICAgICAgICAg dHppbmZvPXR6Ci0rICAgICAgICApCi0gICAgICAgICBpZiB0aW1lZGF0YVsnbmFub3NlY29uZCdd OgotLSAgICAgICAgICAgIGR0ID0gZHQucmVwbGFjZShtaWNyb3NlY29uZD1pbnQoaW50KHRpbWVk YXRhWyduYW5vc2Vjb25kJ10pIC8gMTAwMCkpCi0tICAgICAgICByZXR1cm4gZHQKLSsgICAgICAg ICAgICBwYXJzZWRfZHQgPSBwYXJzZWRfZHQucmVwbGFjZShtaWNyb3NlY29uZD1pbnQodGltZWRh dGFbJ25hbm9zZWNvbmQnXSkgLy8gMTAwMCkKLSsgICAgICAgIHJldHVybiBwYXJzZWRfZHQKLSAK LSAgICAgZGVmIGdldF90aW1lX2luX3NlY3Moc2VsZiwgbG9nX2xpbmUpOgotICAgICAgICAgIiIi VGFrZSB0aGUgdGltZXN0YW1wIChub3QgdGhlIGRhdGUpIGZyb20gYSBEUyBhY2Nlc3MgbG9nIGFu ZCBjb252ZXJ0Ci1kaWZmIC0tZ2l0IGEvc3JjL2xpYjM4OS9saWIzODkvdGVzdHMvZGlyc3J2X2xv Z190ZXN0LnB5IGIvc3JjL2xpYjM4OS9saWIzODkvdGVzdHMvZGlyc3J2X2xvZ190ZXN0LnB5Ci1p bmRleCA5MjBlNjdhMDEuLmQwMjU5Y2VkOSAxMDA2NDQKLS0tLSBhL3NyYy9saWIzODkvbGliMzg5 L3Rlc3RzL2RpcnNydl9sb2dfdGVzdC5weQotKysrIGIvc3JjL2xpYjM4OS9saWIzODkvdGVzdHMv ZGlyc3J2X2xvZ190ZXN0LnB5Ci1AQCAtMTIsOCArMTIsNyBAQCBmcm9tIGxpYjM4OSBpbXBvcnQg RGlyU3J2LCBFbnRyeQotIGltcG9ydCBweXRlc3QKLSBpbXBvcnQgdGltZQotIGltcG9ydCBzaHV0 aWwKLS1pbXBvcnQgZGF0ZXRpbWUKLS1mcm9tIGRhdGV1dGlsLnR6IGltcG9ydCB0em9mZnNldAot K2ltcG9ydCBkYXRldGltZSBhcyBkdAotIAotIElOU1RBTkNFX1BPUlQgPSA1NDMyMQotIElOU1RB TkNFX1NFUlZFUklEID0gJ3N0YW5kYWxvbmUnCi1AQCAtNzQsNyArNzMsNyBAQCBkZWYgdGVzdF9h Y2Nlc3NfbG9nKHRvcG9sb2d5KToKLSAgICAgICAgIHRvcG9sb2d5LnN0YW5kYWxvbmUuZHNfYWNj ZXNzX2xvZy5wYXJzZV9saW5lKCdbMjcvQXByLzIwMTY6MTI6NDk6NDkuNzI2MDkzMTg2ICsxMDAw XSBjb25uPTEgZmQ9NjQgc2xvdD02NCBjb25uZWN0aW9uIGZyb20gOjoxIHRvIDo6MScpID09Ci0g ICAgICAgICB7Ci0gICAgICAgICAgICAgJ3Nsb3QnOiAnNjQnLCAncmVtb3RlJzogJzo6MScsICdh Y3Rpb24nOiAnQ09OTkVDVCcsICd0aW1lc3RhbXAnOiAnWzI3L0Fwci8yMDE2OjEyOjQ5OjQ5Ljcy NjA5MzE4NiArMTAwMF0nLCAnZmQnOiAnNjQnLCAnY29ubic6ICcxJywgJ2xvY2FsJzogJzo6MScs Ci0tICAgICAgICAgICAgJ2RhdGV0aW1lJzogZGF0ZXRpbWUuZGF0ZXRpbWUoMjAxNiwgNCwgMjcs IDEyLCAwLCAwLCA3MjYwOTMsIHR6aW5mbz10em9mZnNldChOb25lLCAzNjAwMCkpCi0rICAgICAg ICAgICAgJ2RhdGV0aW1lJzogZHQuZGF0ZXRpbWUoMjAxNiwgNCwgMjcsIDEyLCA0OSwgNDksIDcy NjA5MywgdHppbmZvPWR0LnRpbWV6b25lKGR0LnRpbWVkZWx0YShzZWNvbmRzPTM2MDAwKSkpCi0g ICAgICAgICB9Ci0gICAgICkKLSAgICAgYXNzZXJ0KAotQEAgLTgyLDIxICs4MSwyMSBAQCBkZWYg dGVzdF9hY2Nlc3NfbG9nKHRvcG9sb2d5KToKLSAgICAgICAgIHsKLSAgICAgICAgICAgICAncmVt JzogJ2Jhc2U9ImNuPWNvbmZpZyIgc2NvcGU9MCBmaWx0ZXI9IihvYmplY3RDbGFzcz0qKSIgYXR0 cnM9Im5zc2xhcGQtaW5zdGFuY2VkaXIgbnNzbGFwZC1lcnJvcmxvZyBuc3NsYXBkLWFjY2Vzc2xv ZyBuc3NsYXBkLWF1ZGl0bG9nIG5zc2xhcGQtY2VydGRpciBuc3NsYXBkLXNjaGVtYWRpciBuc3Ns YXBkLWJha2RpciBuc3NsYXBkLWxkaWZkaXIiJywgICMgbm9xYQotICAgICAgICAgICAgICdhY3Rp b24nOiAnU1JDSCcsICd0aW1lc3RhbXAnOiAnWzI3L0Fwci8yMDE2OjEyOjQ5OjQ5LjcyNzIzNTk5 NyArMTAwMF0nLCAnY29ubic6ICcxJywgJ29wJzogJzInLAotLSAgICAgICAgICAgICdkYXRldGlt ZSc6IGRhdGV0aW1lLmRhdGV0aW1lKDIwMTYsIDQsIDI3LCAxMiwgMCwgMCwgNzI3MjM1LCB0emlu Zm89dHpvZmZzZXQoTm9uZSwgMzYwMDApKQotKyAgICAgICAgICAgICdkYXRldGltZSc6IGR0LmRh dGV0aW1lKDIwMTYsIDQsIDI3LCAxMiwgNDksIDQ5LCA3MjcyMzUsIHR6aW5mbz1kdC50aW1lem9u ZShkdC50aW1lZGVsdGEoc2Vjb25kcz0zNjAwMCkpKQotICAgICAgICAgfQotICAgICApCi0gICAg IGFzc2VydCgKLSAgICAgICAgIHRvcG9sb2d5LnN0YW5kYWxvbmUuZHNfYWNjZXNzX2xvZy5wYXJz ZV9saW5lKCdbMjcvQXByLzIwMTY6MTI6NDk6NDkuNzM2Mjk3MDAyICsxMDAwXSBjb25uPTEgb3A9 NCBmZD02NCBjbG9zZWQgLSBVMScpID09Ci0gICAgICAgICB7Ci0gICAgICAgICAgICAgJ3N0YXR1 cyc6ICdVMScsICdmZCc6ICc2NCcsICdhY3Rpb24nOiAnRElTQ09OTkVDVCcsICd0aW1lc3RhbXAn OiAnWzI3L0Fwci8yMDE2OjEyOjQ5OjQ5LjczNjI5NzAwMiArMTAwMF0nLCAnY29ubic6ICcxJywg J29wJzogJzQnLAotLSAgICAgICAgICAgICdkYXRldGltZSc6IGRhdGV0aW1lLmRhdGV0aW1lKDIw MTYsIDQsIDI3LCAxMiwgMCwgMCwgNzM2Mjk3LCB0emluZm89dHpvZmZzZXQoTm9uZSwgMzYwMDAp KQotKyAgICAgICAgICAgICdkYXRldGltZSc6IGR0LmRhdGV0aW1lKDIwMTYsIDQsIDI3LCAxMiwg NDksIDQ5LCA3MzYyOTcsIHR6aW5mbz1kdC50aW1lem9uZShkdC50aW1lZGVsdGEoc2Vjb25kcz0z NjAwMCkpKQotICAgICAgICAgfQotICAgICApCi0gICAgIGFzc2VydCgKLSAgICAgICAgIHRvcG9s b2d5LnN0YW5kYWxvbmUuZHNfYWNjZXNzX2xvZy5wYXJzZV9saW5lKCdbMjcvQXByLzIwMTY6MTI6 NDk6NDkuNzM2Mjk3MDAyIC0xMDAwXSBjb25uPTEgb3A9NCBmZD02NCBjbG9zZWQgLSBVMScpID09 Ci0gICAgICAgICB7Ci0gICAgICAgICAgICAgJ3N0YXR1cyc6ICdVMScsICdmZCc6ICc2NCcsICdh Y3Rpb24nOiAnRElTQ09OTkVDVCcsICd0aW1lc3RhbXAnOiAnWzI3L0Fwci8yMDE2OjEyOjQ5OjQ5 LjczNjI5NzAwMiAtMTAwMF0nLCAnY29ubic6ICcxJywgJ29wJzogJzQnLAotLSAgICAgICAgICAg ICdkYXRldGltZSc6IGRhdGV0aW1lLmRhdGV0aW1lKDIwMTYsIDQsIDI3LCAxMiwgMCwgMCwgNzM2 Mjk3LCB0emluZm89dHpvZmZzZXQoTm9uZSwgLTM2MDAwKSkKLSsgICAgICAgICAgICAnZGF0ZXRp bWUnOiBkdC5kYXRldGltZSgyMDE2LCA0LCAyNywgMTIsIDQ5LCA0OSwgNzM2Mjk3LCB0emluZm89 ZHQudGltZXpvbmUoZHQudGltZWRlbHRhKHNlY29uZHM9LTM2MDAwKSkpCi0gICAgICAgICB9Ci0g ICAgICkKLSAKLUBAIC0xMTMsNyArMTEyLDcgQEAgZGVmIHRlc3RfZXJyb3JfbG9nKHRvcG9sb2d5 KToKLSAgICAgICAgIHRvcG9sb2d5LnN0YW5kYWxvbmUuZHNfZXJyb3JfbG9nLnBhcnNlX2xpbmUo J1syNy9BcHIvMjAxNjoxMzo0NjozNS43NzU2NzAxNjcgKzEwMDBdIHNsYXBkIHN0YXJ0ZWQuICBM aXN0ZW5pbmcgb24gQWxsIEludGVyZmFjZXMgcG9ydCA1NDMyMSBmb3IgTERBUCByZXF1ZXN0cycp ID09ICAjIG5vcWEKLSAgICAgICAgIHsKLSAgICAgICAgICAgICAndGltZXN0YW1wJzogJ1syNy9B cHIvMjAxNjoxMzo0NjozNS43NzU2NzAxNjcgKzEwMDBdJywgJ21lc3NhZ2UnOiAnc2xhcGQgc3Rh cnRlZC4gIExpc3RlbmluZyBvbiBBbGwgSW50ZXJmYWNlcyBwb3J0IDU0MzIxIGZvciBMREFQIHJl cXVlc3RzJywKLS0gICAgICAgICAgICAnZGF0ZXRpbWUnOiBkYXRldGltZS5kYXRldGltZSgyMDE2 LCA0LCAyNywgMTMsIDAsIDAsIDc3NTY3MCwgdHppbmZvPXR6b2Zmc2V0KE5vbmUsIDM2MDAwKSkK LSsgICAgICAgICAgICAnZGF0ZXRpbWUnOiBkdC5kYXRldGltZSgyMDE2LCA0LCAyNywgMTMsIDQ2 LCAzNSwgNzc1NjcwLCB0emluZm89ZHQudGltZXpvbmUoZHQudGltZWRlbHRhKHNlY29uZHM9MzYw MDApKSkKLSAgICAgICAgIH0KLSAgICAgKQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWIzODkvcHlw cm9qZWN0LnRvbWwgYi9zcmMvbGliMzg5L3B5cHJvamVjdC50b21sCi1pbmRleCA2M2M3Yzk3MTAu LmUwNjdkMTU5MCAxMDA2NDQKLS0tLSBhL3NyYy9saWIzODkvcHlwcm9qZWN0LnRvbWwKLSsrKyBi L3NyYy9saWIzODkvcHlwcm9qZWN0LnRvbWwKLUBAIC01LDcgKzUsNiBAQCByZXF1aXJlcyA9IFsK LSAgICAgImFyZ3BhcnNlLW1hbnBhZ2Vbc2V0dXB0b29sc10iLAotICAgICAicHlhc24xIiwKLSAg ICAgInB5YXNuMS1tb2R1bGVzIiwKLS0gICAgInB5dGhvbi1kYXRldXRpbCIsCi0gICAgICJhcmdj b21wbGV0ZSIsCi0gICAgICJweXRob24tbGRhcCIsCi0gICAgICJkaXN0cm8iLAotQEAgLTQzLDcg KzQyLDYgQEAgY2xhc3NpZmllcnMgPSBbCi0gZGVwZW5kZW5jaWVzID0gWwotICAgICAicHlhc24x IiwKLSAgICAgInB5YXNuMS1tb2R1bGVzIiwKLS0gICAgInB5dGhvbi1kYXRldXRpbCIsCi0gICAg ICJhcmdjb21wbGV0ZSIsCi0gICAgICJweXRob24tbGRhcCIsCi0gICAgICJkaXN0cm8iLAotZGlm ZiAtLWdpdCBhL3NyYy9saWIzODkvcmVxdWlyZW1lbnRzLnR4dCBiL3NyYy9saWIzODkvcmVxdWly ZW1lbnRzLnR4dAotaW5kZXggNWUxYjNkYWQ3Li45NGIxMGUzYzIgMTAwNjQ0Ci0tLS0gYS9zcmMv bGliMzg5L3JlcXVpcmVtZW50cy50eHQKLSsrKyBiL3NyYy9saWIzODkvcmVxdWlyZW1lbnRzLnR4 dAotQEAgLTEsNiArMSw1IEBACi0gcHlhc24xCi0gcHlhc24xLW1vZHVsZXMKLS1weXRob24tZGF0 ZXV0aWwKLSBhcmdjb21wbGV0ZQotIGFyZ3BhcnNlLW1hbnBhZ2UKLSBweXRob24tbGRhcAotLS0g Ci0yLjUyLjAKLQoKZGlmZiAtLWdpdCBhLzAwNDItSXNzdWUtNzIzMS1TeW5jLXJlcGwtdGVzdHMt ZmFpbC1pbi1GSVBTLW1vZGUtZHVlLXRvLS5wYXRjaCBiLzAwNDItSXNzdWUtNzIzMS1TeW5jLXJl cGwtdGVzdHMtZmFpbC1pbi1GSVBTLW1vZGUtZHVlLXRvLS5wYXRjaApkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggODA3OTVkNS4uMDAwMDAwMAotLS0gYS8wMDQyLUlzc3VlLTcyMzEtU3lu Yy1yZXBsLXRlc3RzLWZhaWwtaW4tRklQUy1tb2RlLWR1ZS10by0ucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSw5NCArMCwwIEBACi1Gcm9tIGQxOWM1MDM3MmQ1YzVkOTAxZjA1Y2U2ZTdkZDAzMzEz ZjQxZmMxOTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBKYW1lcyBDaGFwbWFuIDxq YWNoYXBtYUByZWRoYXQuY29tPgotRGF0ZTogVGh1LCAxMiBGZWIgMjAyNiAxMDo0MjowOSArMDAw MAotU3ViamVjdDogW1BBVENIXSBJc3N1ZSA3MjMxIC0gU3luYyByZXBsIHRlc3RzIGZhaWwgaW4g RklQUyBtb2RlIGR1ZSB0byBub24KLSBGSVBTIGNvbXBsaWFudCBjcnlwdG8gKCM3MjMyKQotCi1E ZXNjcmlwdGlvbjoKLVNldmVyYWwgc3luY19yZXBsIHRlc3RzIGZhaWwgd2hlbiBydW5uaW5nIG9u IGEgRklQUyBlbmFibGVkIHN5c3RlbS4gVGhlIGZhaWx1cmVzCi1hcmUgY2F1c2VkIGJ5IHRoZSBz eW5jIHJlcGwgY2xpZW50IChTeW5jX3BlcnNpc3QpLCB1c2luZyBUTFMgb3B0aW9ucyBhbmQgY2lw aGVycwotdGhhdCBhcmUgbm90IEZJUFMgY29tcGF0aWJsZS4KLQotRml4OgotVXBkYXRlIHRoZSBz eW5jIHJlcGwgY2xpZW50IHRvIHVzZSBGSVBTIGFwcHJvdmVkIFRMUyB2ZXJzaW9uLgotCi1GaXhl czogaHR0cHM6Ly9naXRodWIuY29tLzM4OWRzLzM4OS1kcy1iYXNlL2lzc3Vlcy83MjMxCi0KLVJl dmlld2VkIGJ5OiBAcHJvZ2llcjM4OSwgQGRyb2lkZWNrIChUaGFuayB5b3UpCi0tLS0KLSAuLi4v dGVzdHMvc3VpdGVzL3N5bmNyZXBsX3BsdWdpbi9iYXNpY190ZXN0LnB5ICAgICB8IDE0ICsrKysr KysrKysrLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25z KC0pCi0KLWRpZmYgLS1naXQgYS9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvc3luY3JlcGxfcGx1 Z2luL2Jhc2ljX3Rlc3QucHkgYi9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvc3luY3JlcGxfcGx1 Z2luL2Jhc2ljX3Rlc3QucHkKLWluZGV4IDg1YjRhYzA3OC4uZDBlN2U4YTMyIDEwMDY0NAotLS0t IGEvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL3N5bmNyZXBsX3BsdWdpbi9iYXNpY190ZXN0LnB5 Ci0rKysgYi9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvc3luY3JlcGxfcGx1Z2luL2Jhc2ljX3Rl c3QucHkKLUBAIC0yMSw3ICsyMSw3IEBAIGZyb20gbGliMzg5LmlkbS5ncm91cCBpbXBvcnQgR3Jv dXBzCi0gZnJvbSBsaWIzODkudG9wb2xvZ2llcyBpbXBvcnQgdG9wb2xvZ3lfc3QgYXMgdG9wb2xv Z3kKLSBmcm9tIGxpYjM4OS50b3BvbG9naWVzIGltcG9ydCB0b3BvbG9neV9tMiBhcyB0b3BvX20y Ci0gZnJvbSBsaWIzODkucGF0aHMgaW1wb3J0IFBhdGhzCi0tZnJvbSBsaWIzODkudXRpbHMgaW1w b3J0IGRzX2lzX29sZGVyCi0rZnJvbSBsaWIzODkudXRpbHMgaW1wb3J0IGRzX2lzX29sZGVyLCBp c19maXBzCi0gZnJvbSBsaWIzODkucGx1Z2lucyBpbXBvcnQgUmV0cm9DaGFuZ2Vsb2dQbHVnaW4s IENvbnRlbnRTeW5jUGx1Z2luLCBBdXRvTWVtYmVyc2hpcFBsdWdpbiwgTWVtYmVyT2ZQbHVnaW4s IE1lbWJlck9mU2hhcmVkQ29uZmlnLCBBdXRvTWVtYmVyc2hpcERlZmluaXRpb25zLCBNRVBUZW1w bGF0ZXMsIE1FUENvbmZpZ3MsIE1hbmFnZWRFbnRyaWVzUGx1Z2luLCBNRVBUZW1wbGF0ZQotIGZy b20gbGliMzg5Ll9jb25zdGFudHMgaW1wb3J0ICoKLSAKLUBAIC0yMTQsMTAgKzIxNCwxMyBAQCBj bGFzcyBTeW5jX3BlcnNpc3QodGhyZWFkaW5nLlRocmVhZCwgUmVjb25uZWN0TERBUE9iamVjdCwg U3luY3JlcGxDb25zdW1lcik6Ci0gCi0gICAgIGRlZiBydW4oc2VsZik6Ci0gICAgICAgICAiIiJT dGFydCBhIHN5bmMgcmVwbCBjbGllbnQiIiIKLS0gICAgICAgIGxkYXAuc2V0X29wdGlvbihsZGFw Lk9QVF9YX1RMU19DQUNFUlRGSUxFLCBvcy5wYXRoLmpvaW4oc2VsZi5pbnN0LmdldF9jb25maWdf ZGlyKCksICJjYS5jcnQiKSkKLSAgICAgICAgIGxkYXBfY29ubmVjdGlvbiA9IFRlc3RTeW5jZXIo c2VsZi5pbnN0LnRvTERBUFVSTCgpKQotICAgICAgICAgbGRhcF9jb25uZWN0aW9uLnNldF9vcHRp b24obGRhcC5PUFRfWF9UTFNfUkVRVUlSRV9DRVJULCBsZGFwLk9QVF9YX1RMU19ERU1BTkQpCi0r ICAgICAgICBsZGFwX2Nvbm5lY3Rpb24uc2V0X29wdGlvbihsZGFwLk9QVF9YX1RMU19DQUNFUlRG SUxFLCBvcy5wYXRoLmpvaW4oc2VsZi5pbnN0LmdldF9jb25maWdfZGlyKCksICJjYS5jcnQiKSkK LSsgICAgICAgIGlmIGlzX2ZpcHMoKToKLSsgICAgICAgICAgICBsZGFwX2Nvbm5lY3Rpb24uc2V0 X29wdGlvbihsZGFwLk9QVF9YX1RMU19QUk9UT0NPTF9NSU4sIGxkYXAuT1BUX1hfVExTX1BST1RP Q09MX1RMUzFfMikKLSAgICAgICAgIGxkYXBfY29ubmVjdGlvbi5zZXRfb3B0aW9uKGxkYXAuT1BU X1hfVExTX05FV0NUWCwgMCkKLSsKLSAgICAgICAgIGxkYXBfY29ubmVjdGlvbi5zaW1wbGVfYmlu ZF9zKCdjbj1kaXJlY3RvcnkgbWFuYWdlcicsICdwYXNzd29yZCcpCi0gICAgICAgICBsZGFwX3Nl YXJjaCA9IGxkYXBfY29ubmVjdGlvbi5zeW5jcmVwbF9zZWFyY2goCi0gICAgICAgICAgICAgImRj PWV4YW1wbGUsZGM9Y29tIiwKLUBAIC0yNTcsNiArMjYwLDcgQEAgZGVmIHRlc3Rfc3luY19yZXBs X21lcCh0b3BvbG9neSwgcmVxdWVzdCk6Ci0gICAgICAgICA1LiBTdWNjZXNzCi0gICAgICIiIgot ICAgICBpbnN0ID0gdG9wb2xvZ3lbMF0KLSsgICAgaW5zdC5lbmFibGVfdGxzKCkKLSAKLSAgICAg IyBFbmFibGUvY29uZmlndXJlIHJldHJvQ0wKLSAgICAgcGx1Z2luID0gUmV0cm9DaGFuZ2Vsb2dQ bHVnaW4oaW5zdCkKLUBAIC0zNDIsNiArMzQ2LDcgQEAgZGVmIHRlc3Rfc3luY19yZXBsX2Nvb2tp ZSh0b3BvbG9neSwgaW5pdF9zeW5jX3JlcGxfcGx1Z2lucywgcmVxdWVzdCk6Ci0gICAgICAgNS46 IHN1Y2NlZWRzCi0gICAgICIiIgotICAgICBpbnN0ID0gdG9wb2xvZ3lbMF0KLSsgICAgaW5zdC5l bmFibGVfdGxzKCkKLSAKLSAgICAgIyBjcmVhdGUgYSBzeW5jIHJlcGwgY2xpZW50IGFuZCB3YWl0 IDUgc2Vjb25kcyB0byBiZSBzdXJlIGl0IGlzIHJ1bm5pbmcKLSAgICAgc3luY19yZXBsID0gU3lu Y19wZXJzaXN0KGluc3QpCi1AQCAtNDA4LDYgKzQxMyw4IEBAIGRlZiB0ZXN0X3N5bmNfcmVwbF9j b29raWVfYWRkX2RlbCh0b3BvbG9neSwgaW5pdF9zeW5jX3JlcGxfcGx1Z2lucywgcmVxdWVzdCk6 Ci0gICAgICAgNi46IHN1Y2NlZWRzCi0gICAgICIiIgotICAgICBpbnN0ID0gdG9wb2xvZ3lbMF0K LSsgICAgaW5zdC5lbmFibGVfdGxzKCkKLSsKLSAgICAgIyBjcmVhdGUgYSBzeW5jIHJlcGwgY2xp ZW50IGFuZCB3YWl0IDUgc2Vjb25kcyB0byBiZSBzdXJlIGl0IGlzIHJ1bm5pbmcKLSAgICAgc3lu Y19yZXBsID0gU3luY19wZXJzaXN0KGluc3QpCi0gICAgIHN5bmNfcmVwbC5zdGFydCgpCi1AQCAt NTUxLDYgKzU1OCw3IEBAIGRlZiB0ZXN0X3N5bmNfcmVwbF9jZW5vdGFwaCh0b3BvX20yLCByZXF1 ZXN0KToKLSAgICAgICAgIDUuIFNob3VsZCBzdWNjZWVkcwotICAgICAiIiIKLSAgICAgbTEgPSB0 b3BvX20yLm1zWyJzdXBwbGllcjEiXQotKyAgICBtMS5lbmFibGVfdGxzKCkKLSAgICAgIyBFbmFi bGUvY29uZmlndXJlIHJldHJvQ0wKLSAgICAgcGx1Z2luID0gUmV0cm9DaGFuZ2Vsb2dQbHVnaW4o bTEpCi0gICAgIHBsdWdpbi5kaXNhYmxlKCkKLUBAIC02MDksNyArNjE3LDcgQEAgZGVmIHRlc3Rf c3luY19yZXBsX2R5bmFtaWNfcGx1Z2luKHRvcG9sb2d5LCByZXF1ZXN0KToKLSAgICAgICAgIDMu IFNob3VsZCBzdWNjZWVkcwotICAgICAgICAgNC4gU2hvdWxkIHN1Y2NlZWRzCi0gICAgICIiIgot LQotKyAgICB0b3BvbG9neS5zdGFuZGFsb25lLmVuYWJsZV90bHMoKQotICAgICAjIFJlc2V0IHRo ZSBpbnN0YW5jZSBpbiBhIGRlZmF1bHQgY29uZmlnCi0gICAgICMgRGlzYWJsZSBjb250ZW50IHN5 bmMgcGx1Z2luCi0gICAgIHRvcG9sb2d5LnN0YW5kYWxvbmUucGx1Z2lucy5kaXNhYmxlKG5hbWU9 UExVR0lOX1JFUExfU1lOQykKLS0tIAotMi41Mi4wCi0KCmRpZmYgLS1naXQgYS8wMDQzLUlzc3Vl LTcyNDgtQ0xJLWF0dHJpYnV0ZS11bmlxdWVuZXNzLWZpeC11c2FnZS1mb3ItZXgucGF0Y2ggYi8w MDQzLUlzc3VlLTcyNDgtQ0xJLWF0dHJpYnV0ZS11bmlxdWVuZXNzLWZpeC11c2FnZS1mb3ItZXgu cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQxMzg1OWYuLjAwMDAwMDAKLS0t IGEvMDA0My1Jc3N1ZS03MjQ4LUNMSS1hdHRyaWJ1dGUtdW5pcXVlbmVzcy1maXgtdXNhZ2UtZm9y LWV4LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotRnJvbSAxZGYzODUyY2Yw ZTA3M2NmZTAwNmQ2NjFhZWNkZDkwOTg2MmZjNzlhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQot RnJvbTogTWFyayBSZXlub2xkcyA8bXJleW5vbGRzQHJlZGhhdC5jb20+Ci1EYXRlOiBUaHUsIDEy IEZlYiAyMDI2IDA5OjU4OjU0IC0wNTAwCi1TdWJqZWN0OiBbUEFUQ0hdIElzc3VlIDcyNDggLSBD TEkgLSBhdHRyaWJ1dGUgdW5pcXVlbmVzcyAtIGZpeCB1c2FnZSBmb3IKLSBleGNsdWRlIHN1YnRy ZWUgb3B0aW9uCi0KLURlc2NyaXB0aW9uOgotCi1GaXggdHlwbyBpbiB1c2FnZSBtZXNzYWdlIGZv ciB0aGUgZXhjbHVkZSBzdWJ0cmVlIG9wdGlvbgotCi1yZWxhdGVzOiBodHRwczovL2dpdGh1Yi5j b20vMzg5ZHMvMzg5LWRzLWJhc2UvaXNzdWVzLzcyNDgKLQotUmV2aWV3ZWQgYnk6IHByb2dpZXIg KFRoYW5rcyEpCi0tLS0KLSBzcmMvbGliMzg5L2xpYjM4OS9jbGlfY29uZi9wbHVnaW5zL2F0dHJ1 bmlxLnB5IHwgMiArLQotIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlv bigtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYjM4OS9saWIzODkvY2xpX2NvbmYvcGx1Z2lucy9h dHRydW5pcS5weSBiL3NyYy9saWIzODkvbGliMzg5L2NsaV9jb25mL3BsdWdpbnMvYXR0cnVuaXEu cHkKLWluZGV4IGJjOTI1ZWIxYy4uMjZjYTVkODE5IDEwMDY0NAotLS0tIGEvc3JjL2xpYjM4OS9s aWIzODkvY2xpX2NvbmYvcGx1Z2lucy9hdHRydW5pcS5weQotKysrIGIvc3JjL2xpYjM4OS9saWIz ODkvY2xpX2NvbmYvcGx1Z2lucy9hdHRydW5pcS5weQotQEAgLTEyNyw3ICsxMjcsNyBAQCBkZWYg X2FkZF9wYXJzZXJfYXJncyhwYXJzZXIpOgotICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9 J1NldHMgdGhlIEROIHVuZGVyIHdoaWNoIHRoZSBwbHVnLWluIGNoZWNrcyBmb3IgdW5pcXVlbmVz cyBvZiAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGhlIGF0dHJpYnV0ZXMgdmFs dWUuIFRoaXMgYXR0cmlidXRlIGlzIG11bHRpLXZhbHVlZCAodW5pcXVlbmVzcy1zdWJ0cmVlcykn KQotICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctLWV4Y2x1ZGUtc3VidHJlZScsIG5hcmdzPScr JywKLS0gICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdTZXRzIHN1YnRyZWVzIHRoYXQgc2hv dWxkIG5vdCBleGNsdWRlZGZyb20gYXR0cmlidXRlIHVuaXF1ZW5lc3MuICcKLSsgICAgICAgICAg ICAgICAgICAgICAgICBoZWxwPSdTZXRzIHN1YnRyZWVzIHRoYXQgc2hvdWxkIGJlIGV4Y2x1ZGVk IGZyb20gYXR0cmlidXRlIHVuaXF1ZW5lc3MgY2hlY2tzLiAnCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAnVGhpcyBhdHRyaWJ1dGUgaXMgbXVsdGktdmFsdWVkICh1bmlxdWVuZXNzLWV4 Y2x1ZGUtc3VidHJlZXMpJykKLSAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1hY3Jvc3MtYWxs LXN1YnRyZWVzJywgY2hvaWNlcz1bJ29uJywgJ29mZiddLCB0eXBlPXN0ci5sb3dlciwKLSAgICAg ICAgICAgICAgICAgICAgICAgICBoZWxwPSdJZiBlbmFibGVkIChvbiksIHRoZSBwbHVnLWluIGNo ZWNrcyB0aGF0IHRoZSBhdHRyaWJ1dGUgaXMgdW5pcXVlIGFjcm9zcyBhbGwgc3VidHJlZXMgJwot LS0gCi0yLjUyLjAKLQoKZGlmZiAtLWdpdCBhLzAwNDQtSXNzdWUtQ0xJLWRzY3RsLWRiMmluZGV4 LW5lZWRzLXNvbWUtaGFyZGVuaW5nLXdpdGgtTS5wYXRjaCBiLzAwNDQtSXNzdWUtQ0xJLWRzY3Rs LWRiMmluZGV4LW5lZWRzLXNvbWUtaGFyZGVuaW5nLXdpdGgtTS5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggY2RhN2JiZi4uMDAwMDAwMAotLS0gYS8wMDQ0LUlzc3VlLUNMSS1k c2N0bC1kYjJpbmRleC1uZWVkcy1zb21lLWhhcmRlbmluZy13aXRoLU0ucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwyMDEgKzAsMCBAQAotRnJvbSA2M2JmNjQ4ZjY5OWI4ZmNkOGYzMTkyNTRiMDM0 OGQ5NjljZWVhN2EwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogTWFyayBSZXlub2xk cyA8bXJleW5vbGRzQHJlZGhhdC5jb20+Ci1EYXRlOiBUaHUsIDEyIEZlYiAyMDI2IDExOjEzOjQ1 IC0wNTAwCi1TdWJqZWN0OiBbUEFUQ0hdIElzc3VlIC0gQ0xJIC0gZHNjdGwgZGIyaW5kZXggbmVl ZHMgc29tZSBoYXJkZW5pbmcgd2l0aCBNQkQKLQotRGVzY3JpcHRpb246Ci0KLVRoZSB1c2FnZSBm b3IgZHNjdGwgZGIyaW5kZXggd2FzIGNvbmZ1c2luZy4gVGhlIHdheSB0aGUgYXR0ciBvcHRpb25z IGFuZAotYmFja2VuZCBuYW1lIHdlcmUgZGlzcGxheWVkIGl0IGxvb2tzIGxpa2UgdGhlIGJhY2tl bmQgbmFtZSBjb3VsZCBjb21lIGFmdGVyCi10aGUgYXR0cmlidXRlcywgYnV0IGluc3RlYWQgdGhl IGJhY2tlbmQgbmFtZSB3YXMgdHJlYXRlZCBhcyBhbiBhdHRyaWJ1dGUuCi0KLUluc3RlYWQgbWFr ZSB0aGUgYmFja2VuZCBuYW1lIHJlcXVpcmVkLCBhbmQgY2hhbmdlIHRoZSBhdHRyaWJ1dGUgbmFt aW5nIHRvCi1yZXF1aXJlIGluZGl2aWR1YWwgb3B0aW9ucyBpbnN0ZWFkIG9mIGEgbGlzdCBvZiB2 YWx1ZXMuCi0KLVJlbGF0ZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS8zODlkcy8zODktZHMtYmFzZS9p c3N1ZXMvNzI1MAotCi1SZXZpZXdlZCBieTogcHJvZ2llcihUaGFua3MhKQotLS0tCi0gLi4uL3Rl c3RzL3N1aXRlcy9pbXBvcnQvaW1wb3J0X3Rlc3QucHkgICAgICAgIHwgIDIgKy0KLSBzcmMvbGli Mzg5L2xpYjM4OS9fX2luaXRfXy5weSAgICAgICAgICAgICAgICAgfCA0MCArKysrKystLS0tLS0t LS0tLS0tCi0gc3JjL2xpYjM4OS9saWIzODkvY2xpX2N0bC9kYnRhc2tzLnB5ICAgICAgICAgIHwg MzcgKysrKysrKy0tLS0tLS0tLS0KLSAzIGZpbGVzIGNoYW5nZWQsIDI3IGluc2VydGlvbnMoKyks IDUyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVz L2ltcG9ydC9pbXBvcnRfdGVzdC5weSBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9pbXBvcnQv aW1wb3J0X3Rlc3QucHkKLWluZGV4IGM3Mjc1ZTRjYi4uYWQ2ZDA1YTFlIDEwMDY0NAotLS0tIGEv ZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL2ltcG9ydC9pbXBvcnRfdGVzdC5weQotKysrIGIvZGly c3J2dGVzdHMvdGVzdHMvc3VpdGVzL2ltcG9ydC9pbXBvcnRfdGVzdC5weQotQEAgLTUxNCw3ICs1 MTQsNyBAQCBkZWYgdGVzdF9lbnRyeV93aXRoX2VzY2FwZWRfY2hhcmFjdGVyc19mYWlsc190b19p bXBvcnRfYW5kX2luZGV4KHRvcG8sIF9pbXBvcnRfYwotICAgICAgICAgICAgIGNvdW50ICs9IDEK LSAgICAgIyBOb3cgcmUtaW5kZXggdGhlIGRhdGFiYXNlCi0gICAgIHRvcG8uc3RhbmRhbG9uZS5z dG9wKCkKLS0gICAgdG9wby5zdGFuZGFsb25lLmRiMmluZGV4KCkKLSsgICAgdG9wby5zdGFuZGFs b25lLmRiMmluZGV4KGJlbmFtZT0idXNlcnJvb3QiKQotICAgICB0b3BvLnN0YW5kYWxvbmUuc3Rh cnQoKQotICAgICAjIFNob3VsZCBub3QgcmV0dXJuIGVycm9yLgotICAgICBhc3NlcnQgbm90IHRv cG8uc3RhbmRhbG9uZS5zZWFyY2hFcnJvcnNMb2coJ2Vycm9yJykKLWRpZmYgLS1naXQgYS9zcmMv bGliMzg5L2xpYjM4OS9fX2luaXRfXy5weSBiL3NyYy9saWIzODkvbGliMzg5L19faW5pdF9fLnB5 Ci1pbmRleCBkNTdhOTE5MjkuLjAxYjNlYTIzYyAxMDA2NDQKLS0tLSBhL3NyYy9saWIzODkvbGli Mzg5L19faW5pdF9fLnB5Ci0rKysgYi9zcmMvbGliMzg5L2xpYjM4OS9fX2luaXRfXy5weQotQEAg LTI5NTMsNyArMjk1Myw3IEBAIGNsYXNzIERpclNydihTaW1wbGVMREFQT2JqZWN0LCBvYmplY3Qp OgotIAotICAgICAgICAgcmV0dXJuIFRydWUKLSAKLS0gICAgZGVmIGRiMmluZGV4KHNlbGYsIGJl bmFtZT1Ob25lLCBzdWZmaXhlcz1Ob25lLCBhdHRycz1Ob25lLCB2bHZUYWc9Tm9uZSk6Ci0rICAg IGRlZiBkYjJpbmRleChzZWxmLCBiZW5hbWUsIHN1ZmZpeGVzPU5vbmUsIGF0dHJzPU5vbmUsIHZs dlRhZz1Ob25lKToKLSAgICAgICAgICIiIgotICAgICAgICAgQHBhcmFtIGJlbmFtZSAtIFRoZSBi YWNrZW5kIG5hbWUgdG8gcmVpbmRleAotICAgICAgICAgQHBhcmFtIHN1ZmZpeGVzIC0gTGlzdC90 dXBsZSBvZiBzdWZmaXhlcyB0byByZWluZGV4LCBjdXJyZW50bHkgdW51c2VkCi1AQCAtMjk2Niwz NCArMjk2NiwxOCBAQCBjbGFzcyBEaXJTcnYoU2ltcGxlTERBUE9iamVjdCwgb2JqZWN0KToKLSAg ICAgICAgIGlmIHNlbGYuc3RhdHVzKCk6Ci0gICAgICAgICAgICAgc2VsZi5sb2cuZXJyb3IoImRi MmluZGV4OiBDYW4gbm90IG9wZXJhdGUgd2hpbGUgZGlyZWN0b3J5IHNlcnZlciBpcyBydW5uaW5n IikKLSAgICAgICAgICAgICByZXR1cm4gRmFsc2UKLS0gICAgICAgIGNtZCA9IFtwcm9nLCBdCi0t ICAgICAgICAjIE5vIGJhY2tlbmQgc3BlY2lmaWVkLCBkbyBhbiB1cGdyYWRlIG9uIGFsbCBiYWNr ZW5kcwotLSAgICAgICAgIyBCYWNrZW5kIGFuZCBubyBhdHRycyBzcGVjaWZpZWQsIHJlaW5kZXgg d2l0aCBhbGwgYmFja2VuZCBpbmRleGVzCi0tICAgICAgICAjIEJhY2tlbmQgYW5kIGF0dHIvcyBz cGVjaWZpZWQsIHJlaW5kZXggYmFja2VuZCB3aXRoIGF0dHIvcwotLSAgICAgICAgaWYgYmVuYW1l OgotLSAgICAgICAgICAgIGNtZC5hcHBlbmQoJ2RiMmluZGV4JykKLS0gICAgICAgICAgICBjbWQu YXBwZW5kKCctbicpCi0tICAgICAgICAgICAgY21kLmFwcGVuZChiZW5hbWUpCi0tICAgICAgICAg ICAgaWYgYXR0cnM6Ci0tICAgICAgICAgICAgICAgICBmb3IgYXR0ciBpbiBhdHRyczoKLS0gICAg ICAgICAgICAgICAgICAgICAgICBjbWQuYXBwZW5kKCctdCcpCi0tICAgICAgICAgICAgICAgICAg ICAgICAgY21kLmFwcGVuZChhdHRyKQotLSAgICAgICAgICAgIGVsc2U6Ci0tICAgICAgICAgICAg ICAgIGRzZV9sZGlmID0gRFNFbGRpZihzZWxmKQotLSAgICAgICAgICAgICAgICBpbmRleGVzID0g ZHNlX2xkaWYuZ2V0X2luZGV4ZXMoYmVuYW1lKQotLSAgICAgICAgICAgICAgICBpZiBpbmRleGVz OgotLSAgICAgICAgICAgICAgICAgICAgZm9yIGlkeCBpbiBpbmRleGVzOgotLSAgICAgICAgICAg ICAgICAgICAgICAgIGNtZC5hcHBlbmQoJy10JykKLS0gICAgICAgICAgICAgICAgICAgICAgICBj bWQuYXBwZW5kKGlkeCkKLSsgICAgICAgIGNtZCA9IFtwcm9nLCAnZGIyaW5kZXgnLCAnLW4nLCBi ZW5hbWUsICctRCcsIHNlbGYuZ2V0X2NvbmZpZ19kaXIoKV0KLSsgICAgICAgIGlmIGF0dHJzOgot KyAgICAgICAgICAgIGZvciBhdHRyIGluIGF0dHJzOgotKyAgICAgICAgICAgICAgICBjbWQuYXBw ZW5kKCctdCcpCi0rICAgICAgICAgICAgICAgIGNtZC5hcHBlbmQoYXR0cikKLSAgICAgICAgIGVs c2U6Ci0tICAgICAgICAgICAgY21kLmFwcGVuZCgndXBncmFkZWRiJykKLS0gICAgICAgICAgICBj bWQuYXBwZW5kKCctYScpCi0tICAgICAgICAgICAgbm93ID0gZGF0ZXRpbWUubm93KCkuaXNvZm9y bWF0KCkKLS0gICAgICAgICAgICBjbWQuYXBwZW5kKG9zLnBhdGguam9pbihzZWxmLmdldF9iYWtf ZGlyKCksICdyZWluZGV4XyVzJyAlIG5vdykpCi0tICAgICAgICAgICAgY21kLmFwcGVuZCgnLWYn KQotLQotLSAgICAgICAgY21kLmFwcGVuZCgnLUQnKQotLSAgICAgICAgY21kLmFwcGVuZChzZWxm LmdldF9jb25maWdfZGlyKCkpCi0rICAgICAgICAgICAgZHNlX2xkaWYgPSBEU0VsZGlmKHNlbGYp Ci0rICAgICAgICAgICAgaW5kZXhlcyA9IGRzZV9sZGlmLmdldF9pbmRleGVzKGJlbmFtZSkKLSsg ICAgICAgICAgICBpZiBpbmRleGVzOgotKyAgICAgICAgICAgICAgICBmb3IgaWR4IGluIGluZGV4 ZXM6Ci0rICAgICAgICAgICAgICAgICAgICBjbWQuYXBwZW5kKCctdCcpCi0rICAgICAgICAgICAg ICAgICAgICBjbWQuYXBwZW5kKGlkeCkKLSAKLSAgICAgICAgIHRyeToKLSAgICAgICAgICAgICBy ZXN1bHQgPSBzdWJwcm9jZXNzLmNoZWNrX291dHB1dChjbWQsIGVuY29kaW5nPSd1dGYtOCcpCi1k aWZmIC0tZ2l0IGEvc3JjL2xpYjM4OS9saWIzODkvY2xpX2N0bC9kYnRhc2tzLnB5IGIvc3JjL2xp YjM4OS9saWIzODkvY2xpX2N0bC9kYnRhc2tzLnB5Ci1pbmRleCAxNmRhOTY2ZDEuLmNkOTZjZGFm NyAxMDA2NDQKLS0tLSBhL3NyYy9saWIzODkvbGliMzg5L2NsaV9jdGwvZGJ0YXNrcy5weQotKysr IGIvc3JjL2xpYjM4OS9saWIzODkvY2xpX2N0bC9kYnRhc2tzLnB5Ci1AQCAtMjYsMzIgKzI2LDE4 IEBAIGNsYXNzIEluZGV4T3JkZXJpbmcoRW51bSk6Ci0gCi0gCi0gZGVmIGRidGFza3NfZGIyaW5k ZXgoaW5zdCwgbG9nLCBhcmdzKToKLS0gICAgcnRuID0gRmFsc2UKLS0gICAgaWYgbm90IGFyZ3Mu YmFja2VuZDoKLS0gICAgICAgIGlmIG5vdCBpbnN0LmRiMmluZGV4KCk6Ci0tICAgICAgICAgICAg cnRuID0gRmFsc2UKLS0gICAgICAgIGVsc2U6Ci0tICAgICAgICAgICAgcnRuID0gVHJ1ZQotLSAg ICBlbGlmIGFyZ3MuYmFja2VuZCBhbmQgbm90IGFyZ3MuYXR0cjoKLS0gICAgICAgIGlmIG5vdCBp bnN0LmRiMmluZGV4KGJlbmFtZT1hcmdzLmJhY2tlbmQpOgotLSAgICAgICAgICAgIHJ0biA9IEZh bHNlCi0tICAgICAgICBlbHNlOgotLSAgICAgICAgICAgIHJ0biA9IFRydWUKLSsgICAgaW5zdC5s b2cgPSBsb2cKLSsgICAgaWYgbm90IGluc3QuZGIyaW5kZXgoYmVuYW1lPWFyZ3MuYmFja2VuZCwg YXR0cnM9YXJncy5hdHRyKToKLSsgICAgICAgIGxvZy5mYXRhbCgiZGIyaW5kZXggZmFpbGVkIikK LSsgICAgICAgIHJldHVybiBGYWxzZQotICAgICBlbHNlOgotLSAgICAgICAgaWYgbm90IGluc3Qu ZGIyaW5kZXgoYmVuYW1lPWFyZ3MuYmFja2VuZCwgYXR0cnM9YXJncy5hdHRyKToKLS0gICAgICAg ICAgICBydG4gPSBGYWxzZQotLSAgICAgICAgZWxzZToKLS0gICAgICAgICAgICBydG4gPSBUcnVl Ci0tICAgIGlmIHJ0bjoKLSAgICAgICAgIGxvZy5pbmZvKCJkYjJpbmRleCBzdWNjZXNzZnVsIikK LS0gICAgICAgIHJldHVybiBydG4KLS0gICAgZWxzZToKLS0gICAgICAgIGxvZy5mYXRhbCgiZGIy aW5kZXggZmFpbGVkIikKLS0gICAgICAgIHJldHVybiBydG4KLSsgICAgICAgIHJldHVybiBUcnVl Ci0gCi0gCi0gZGVmIGRidGFza3NfZGIyYmFrKGluc3QsIGxvZywgYXJncyk6Ci0gICAgICMgTmVl ZHMgYW4gb3V0cHV0IG5hbWU/Ci0rICAgIGluc3QubG9nID0gbG9nCi0gICAgIGlmIG5vdCBpbnN0 LmRiMmJhayhhcmdzLmFyY2hpdmUpOgotICAgICAgICAgbG9nLmZhdGFsKCJkYjJiYWsgZmFpbGVk IikKLSAgICAgICAgIHJldHVybiBGYWxzZQotQEAgLTYxLDYgKzQ3LDcgQEAgZGVmIGRidGFza3Nf ZGIyYmFrKGluc3QsIGxvZywgYXJncyk6Ci0gCi0gZGVmIGRidGFza3NfYmFrMmRiKGluc3QsIGxv ZywgYXJncyk6Ci0gICAgICMgTmVlZHMgdGhlIGFyY2hpdmUgdG8gcmVzdG9yZS4KLSsgICAgaW5z dC5sb2cgPSBsb2cKLSAgICAgaWYgbm90IGluc3QuYmFrMmRiKGFyZ3MuYXJjaGl2ZSk6Ci0gICAg ICAgICBsb2cuZmF0YWwoImJhazJkYiBmYWlsZWQiKQotICAgICAgICAgcmV0dXJuIEZhbHNlCi1A QCAtNzAsNiArNTcsNyBAQCBkZWYgZGJ0YXNrc19iYWsyZGIoaW5zdCwgbG9nLCBhcmdzKToKLSAK LSBkZWYgZGJ0YXNrc19kYjJsZGlmKGluc3QsIGxvZywgYXJncyk6Ci0gICAgICMgSWYgZXhwb3J0 IGZpbGVuYW1lIGlzIHByb3ZpZGVkLCBjaGVjayBpZiBmaWxlIHBhdGggZXhpc3RzCi0rICAgIGlu c3QubG9nID0gbG9nCi0gICAgIGlmIGFyZ3MubGRpZjoKLSAgICAgICAgIHBhdGggPSBQYXRoKGFy Z3MubGRpZikKLSAgICAgICAgIHBhcmVudCA9IHBhdGgucGFyZW50LmFic29sdXRlKCkKLUBAIC04 OCw2ICs3Niw3IEBAIGRlZiBkYnRhc2tzX2RiMmxkaWYoaW5zdCwgbG9nLCBhcmdzKToKLSAKLSBk ZWYgZGJ0YXNrc19sZGlmMmRiKGluc3QsIGxvZywgYXJncyk6Ci0gICAgICMgQ2hlY2sgaWYgbGRp ZiBmaWxlIGV4aXN0cwotKyAgICBpbnN0LmxvZyA9IGxvZwotICAgICBpZiBub3Qgb3MucGF0aC5l eGlzdHMoYXJncy5sZGlmKToKLSAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlRoZSBMRElGIGZp bGUgZG9lcyBub3QgZXhpc3Q6ICIgKyBhcmdzLmxkaWYpCi0gCi1AQCAtMTAzLDYgKzkyLDcgQEAg ZGVmIGRidGFza3NfbGRpZjJkYihpbnN0LCBsb2csIGFyZ3MpOgotIAotIAotIGRlZiBkYnRhc2tz X2JhY2t1cHMoaW5zdCwgbG9nLCBhcmdzKToKLSsgICAgaW5zdC5sb2cgPSBsb2cKLSAgICAgaWYg YXJncy5kZWxldGU6Ci0gICAgICAgICAjIERlbGV0ZSBiYWNrdXAKLSAgICAgICAgIGluc3QuZGVs X2JhY2t1cChhcmdzLmRlbGV0ZVswXSkKLUBAIC0xMTcsNiArMTA3LDcgQEAgZGVmIGRidGFza3Nf YmFja3VwcyhpbnN0LCBsb2csIGFyZ3MpOgotIAotIAotIGRlZiBkYnRhc2tzX2xkaWZzKGluc3Qs IGxvZywgYXJncyk6Ci0rICAgIGluc3QubG9nID0gbG9nCi0gICAgIGlmIGFyZ3MuZGVsZXRlOgot ICAgICAgICAgIyBEZWxldGUgTERJRiBmaWxlCi0gICAgICAgICBpbnN0LmRlbF9sZGlmKGFyZ3Mu ZGVsZXRlWzBdKQotQEAgLTEzMSw2ICsxMjIsNyBAQCBkZWYgZGJ0YXNrc19sZGlmcyhpbnN0LCBs b2csIGFyZ3MpOgotIAotIAotIGRlZiBkYnRhc2tzX3ZlcmlmeShpbnN0LCBsb2csIGFyZ3MpOgot KyAgICBpbnN0LmxvZyA9IGxvZwotICAgICBpZiBub3QgaW5zdC5kYnZlcmlmeShiZW5hbWU9YXJn cy5iYWNrZW5kKToKLSAgICAgICAgIGxvZy5mYXRhbCgiZGJ2ZXJpZnkgZmFpbGVkIikKLSAgICAg ICAgIHJldHVybiBGYWxzZQotQEAgLTUyMSw5ICs1MTMsOCBAQCBkZWYgZGJ0YXNrc19pbmRleF9j aGVjayhpbnN0LCBsb2csIGFyZ3MpOgotIAotIGRlZiBjcmVhdGVfcGFyc2VyKHN1YmNvbW1hbmRz KToKLSAgICAgZGIyaW5kZXhfcGFyc2VyID0gc3ViY29tbWFuZHMuYWRkX3BhcnNlcignZGIyaW5k ZXgnLCBoZWxwPSJJbml0aWFsaXNlIGEgcmVpbmRleCBvZiB0aGUgc2VydmVyIGRhdGFiYXNlLiBU aGUgc2VydmVyIG11c3QgYmUgc3RvcHBlZCBmb3IgdGhpcyB0byBwcm9jZWVkLiIsIGZvcm1hdHRl cl9jbGFzcz1DdXN0b21IZWxwRm9ybWF0dGVyKQotLSAgICAjIGRiMmluZGV4X3BhcnNlci5hZGRf YXJndW1lbnQoJ3N1ZmZpeCcsIGhlbHA9IlRoZSBzdWZmaXggdG8gcmVpbmRleC4gSUUgZGM9ZXhh bXBsZSxkYz1jb20uIikKLS0gICAgZGIyaW5kZXhfcGFyc2VyLmFkZF9hcmd1bWVudCgnYmFja2Vu ZCcsIG5hcmdzPSI/IiwgaGVscD0iVGhlIGJhY2tlbmQgdG8gcmVpbmRleC4gSUUgdXNlclJvb3Qi LCBkZWZhdWx0PUZhbHNlKQotLSAgICBkYjJpbmRleF9wYXJzZXIuYWRkX2FyZ3VtZW50KCctLWF0 dHInLCBuYXJncz0iKiIsIGhlbHA9IlRoZSBhdHRyaWJ1dGUncyB0byByZWluZGV4LiBJRSAtLWF0 dHIgYWNpIGNuIGdpdmVubmFtZSIsIGRlZmF1bHQ9RmFsc2UpCi0rICAgIGRiMmluZGV4X3BhcnNl ci5hZGRfYXJndW1lbnQoJ2JhY2tlbmQnLCBoZWxwPSJUaGUgYmFja2VuZCB0byByZWluZGV4LiBJ RSB1c2VyUm9vdCIpCi0rICAgIGRiMmluZGV4X3BhcnNlci5hZGRfYXJndW1lbnQoJy0tYXR0cics IGFjdGlvbj0nYXBwZW5kJywgaGVscD0iQW4gYXR0cmlidXRlIHRvIHJlaW5kZXguIElFOiAtLWF0 dHIgbWVtYmVyIC0tYXR0ciBjbiAuLi4iKQotICAgICBkYjJpbmRleF9wYXJzZXIuc2V0X2RlZmF1 bHRzKGZ1bmM9ZGJ0YXNrc19kYjJpbmRleCkKLSAKLSAgICAgZGIyYmFrX3BhcnNlciA9IHN1YmNv bW1hbmRzLmFkZF9wYXJzZXIoJ2RiMmJhaycsIGhlbHA9IkluaXRpYWxpc2UgYSBCREIgYmFja3Vw IG9mIHRoZSBkYXRhYmFzZS4gVGhlIHNlcnZlciBtdXN0IGJlIHN0b3BwZWQgZm9yIHRoaXMgdG8g cHJvY2VlZC4iLCBmb3JtYXR0ZXJfY2xhc3M9Q3VzdG9tSGVscEZvcm1hdHRlcikKLS0tIAotMi41 Mi4wCi0KCmRpZmYgLS1naXQgYS8wMDQ1LUlzc3VlLTcyNTItUFFDLU5lZWQtdG8taXRlcmF0ZS1v bi1TRUNPaWRUYWctaW5zdGVhZC0ucGF0Y2ggYi8wMDQ1LUlzc3VlLTcyNTItUFFDLU5lZWQtdG8t aXRlcmF0ZS1vbi1TRUNPaWRUYWctaW5zdGVhZC0ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDI0MWY2YjQuLjAwMDAwMDAKLS0tIGEvMDA0NS1Jc3N1ZS03MjUyLVBRQy1OZWVk LXRvLWl0ZXJhdGUtb24tU0VDT2lkVGFnLWluc3RlYWQtLnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsNzQgKzAsMCBAQAotRnJvbSBkNTI5MDFmNjllOWI3OTUyYjMzYjIxOWVjMTk3MzA4YTFhMjBi ZGE5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogcHJvZ2llcjM4OSA8cHJvZ2llckBy ZWRoYXQuY29tPgotRGF0ZTogRnJpLCAxMyBGZWIgMjAyNiAxNToxMzowNSArMDEwMAotU3ViamVj dDogW1BBVENIXSBJc3N1ZSA3MjUyIC0gUFFDIC0gTmVlZCB0byBpdGVyYXRlIG9uIFNFQ09pZFRh ZyBpbnN0ZWFkIG9mCi0gdXNpbmcgT0lEICgjNzI1NCkKLQotKiBJc3N1ZSA3MjUyIC0gUFFDIC0g TmVlZCB0byBpdGVyYXRlIG9uIFNFQ09pZFRhZyBpbnN0ZWFkIG9mIHVzaW5nIE9JRAotCi1OZWVk IHRvIGR5bmFtaWNhbGx5IGl0ZXJhdGUgb24gU0VDT2lkVGFnIGluc3RlYWQgb2YgdXNpbmcgU0VD X09JRF9NTF9EU0FfKiBPSURzIHRvIGF2b2lkIGlzc3VlIHdpdGggdXBjb21pbmcgbnNzIHZlcnNp b25zIGFuZCBmaXggYSBSSEVMIGJ1aWxkIGJyZWFrIHdpdGggbnNzIDMuMTEyCi0KLUlzc3VlOiAj NzI1MgotCi1SZXZpZXdlZCBieTogQG1yZXlub2xkczM4OSwgQGRyb2lkZWNrLCBAdmFzaGlyb3YK LQotCi0qIFVwZGF0ZSBsZGFwL3NlcnZlcnMvc2xhcGQvc3NsLmMKLQotQ28tYXV0aG9yZWQtYnk6 IFNpbW9uIFBpY2h1Z2luIDxzcGljaHVnaUByZWRoYXQuY29tPgotCi0tLS0tLS0tLS0KLQotQ28t YXV0aG9yZWQtYnk6IFNpbW9uIFBpY2h1Z2luIDxzcGljaHVnaUByZWRoYXQuY29tPgotLS0tCi0g bGRhcC9zZXJ2ZXJzL3NsYXBkL3NzbC5jIHwgMjQgKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCi0g MSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCi0KLWRpZmYg LS1naXQgYS9sZGFwL3NlcnZlcnMvc2xhcGQvc3NsLmMgYi9sZGFwL3NlcnZlcnMvc2xhcGQvc3Ns LmMKLWluZGV4IDdkNWRiMmNkZC4uZDA1YzY0ZmIxIDEwMDY0NAotLS0tIGEvbGRhcC9zZXJ2ZXJz L3NsYXBkL3NzbC5jCi0rKysgYi9sZGFwL3NlcnZlcnMvc2xhcGQvc3NsLmMKLUBAIC03MzIsMzEg KzczMiwyNSBAQCBTU0xQTENZX0luc3RhbGwodm9pZCkKLSB7Ci0gCi0gICAgIFNFQ1N0YXR1cyBz ID0gMDsKLS0jaWZkZWYgTUFYX01MX0RTQV9QUklWQVRFX0tFWV9MRU4KLSAgICAgaW50IGZsYWdz ID0gTlNTX1VTRV9BTEdfSU5fU0lHTkFUVVJFIHwgTlNTX1VTRV9BTEdfSU5fU1NMOwotLSAgICBz dGF0aWMgY29uc3QgU0VDT2lkVGFnIG9pZHNbXSA9IHsKLS0gICAgICAgIFNFQ19PSURfTUxfRFNB XzQ0LAotLSAgICAgICAgU0VDX09JRF9NTF9EU0FfNjUsCi0tICAgICAgICBTRUNfT0lEX01MX0RT QV84NywKLS0gICAgfTsKLS0jZW5kaWYKLSsgICAgU0VDT2lkRGF0YSAqb2lkID0gTlVMTDsKLSAK LSAgICAgcyA9IE5TU19TZXREb21lc3RpY1BvbGljeSgpOwotIAotLSNpZmRlZiBNQVhfTUxfRFNB X1BSSVZBVEVfS0VZX0xFTgotICAgICAvKiBTaG91bGQgcmVseSBvbiB0aGUgY3J5cHRvIG1vZHVs ZSBwb2xpY3kgaW4gRklQUyBtb2RlICovCi0gICAgIGlmICghc2xhcGRfcGsxMV9pc0ZJUFMoKSkg ewotICAgICAgICAgLyogU2V0IGV4cGxpY2l0bHkgUFFDIGFsZ29yaXRobSBwb2xpY3kgaWYgaXQg aXMgbm90IHNldCBieSBkZWZhdWx0ICovCi0tICAgICAgICBmb3IgKHNpemVfdCBpPTA7IHMgPT0g U0VDU3VjY2VzcyAmJiBpIDwgUFJfQVJSQVlfU0laRShvaWRzKTsgaSsrKSB7Ci0tICAgICAgICAg ICAgUFJVaW50MzIgb2ZsYWdzID0gMDsKLS0gICAgICAgICAgICAodm9pZCkgTlNTX0dldEFsZ29y aXRobVBvbGljeShvaWRzW2ldLCAmb2ZsYWdzKTsKLS0gICAgICAgICAgICBpZiAoKG9mbGFncyAm IGZsYWdzKSAhPSBmbGFncykgewotLSAgICAgICAgICAgICAgICBzID0gTlNTX1NldEFsZ29yaXRo bVBvbGljeShvaWRzW2ldLCBmbGFncywgMCk7Ci0rICAgICAgICBmb3IgKFNFQ09pZFRhZyB0YWcg PSAxOyBzID09IFNFQ1N1Y2Nlc3MgJiYgKG9pZCA9IFNFQ09JRF9GaW5kT0lEQnlUYWcodGFnKSkg IT0gTlVMTDsgdGFnKyspIHsKLSsgICAgICAgICAgICBpZiAob2lkLT5tZWNoYW5pc20gIT0gQ0tN X0lOVkFMSURfTUVDSEFOSVNNICYmCi0rICAgICAgICAgICAgICAgIFBMX3N0cm5jYXNlY21wKG9p ZC0+ZGVzYywgIk1MLURTQS0iLCA3KSA9PSAwKSB7Ci0rICAgICAgICAgICAgICAgIFBSVWludDMy IG9mbGFncyA9IDA7Ci0rICAgICAgICAgICAgICAgICh2b2lkKSBOU1NfR2V0QWxnb3JpdGhtUG9s aWN5KHRhZywgJm9mbGFncyk7Ci0rICAgICAgICAgICAgICAgIGlmICgob2ZsYWdzICYgZmxhZ3Mp ICE9IGZsYWdzKSB7Ci0rICAgICAgICAgICAgICAgICAgICBzID0gTlNTX1NldEFsZ29yaXRobVBv bGljeSh0YWcsIGZsYWdzLCAwKTsKLSsgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgIH0K LSAgICAgICAgIH0KLSAgICAgfQotLSNlbmRpZgotLQotICAgICByZXR1cm4gcyA/IFBSX0ZBSUxV UkUgOiBQUl9TVUNDRVNTOwotIH0KLSAKLS0tIAotMi41Mi4wCi0KCmRpZmYgLS1naXQgYS8wMDQ2 LUlzc3VlLTY5NTEtRHluYW1pYy1DZXJ0aWZpY2FzLVJlZnJlc2gtQ0ktdGVzdHMtNzIzOC5wYXRj aCBiLzAwNDYtSXNzdWUtNjk1MS1EeW5hbWljLUNlcnRpZmljYXMtUmVmcmVzaC1DSS10ZXN0cy03 MjM4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOWY3MmU4Li4wMDAwMDAw Ci0tLSBhLzAwNDYtSXNzdWUtNjk1MS1EeW5hbWljLUNlcnRpZmljYXMtUmVmcmVzaC1DSS10ZXN0 cy03MjM4LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzAzMSArMCwwIEBACi1Gcm9tIDIwMDVl MjY3MGM0NzQyMTJhMmRhYTdiMzk0N2I0MWM4ZGIxOGM5YzkgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCi1Gcm9tOiBwcm9naWVyMzg5IDxwcm9naWVyQHJlZGhhdC5jb20+Ci1EYXRlOiBGcmksIDEz IEZlYiAyMDI2IDE1OjM0OjEzICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIElzc3VlIDY5NTEgLSBE eW5hbWljIENlcnRpZmljYXMgUmVmcmVzaCAtIENJIHRlc3RzICgjNzIzOCkKLQotKiBJc3N1ZSA2 OTUxIC0gRHluYW1pYyBDZXJ0aWZpY2FzIFJlZnJlc2ggLSBDSSB0ZXN0cwotCi1BZGQgQ0kgdGVz dCBmb3IgRHluYW1pYyBDZXJ0aWZpY2FzIFJlZnJlc2g6Ci0KLWNsdS9kc2NvbmZfZHNjdGxfc2Vj dXJpdHlfY2xpX3Rlc3QucHkgdGVzdCBkc2NvbmYvZHNjdGwgaW5zdGFuY2Ugc2VjdXJpdHkgLi4u IGludGVyZmFjZQotdGxzL2R5bmFtaWNfY2VydGlmaWNhdGVzX3Rlc3QucHkgdGVzdCB0aGUgTERB UCBBUEkKLUZpeCBzb21lIGlzc3VlcyBmb3VuZCB3aGlsZSBydW5uaW5nIHRoZXNlIHRlc3RzOgot Rml4IHJwbV9pc19vbGRlciBmdW5jdGlvbiBpbiBtbGRzYV90ZXN0LnB5Ci1BZGQgbWlzc2luZyBj b2RlIHRvIGhhbmRsZSBJUCBBZGRyZXNzIGluIGFsdGVybmF0ZSBzdWJqZWN0IG5hbWUKLUZJeCB0 ZXN0IGZhaWx1cmUgcmVsYXRlZCB0byByZWhhc2ggd2FybmluZwotCi1Jc3N1ZTogIzY5NTEKLQot UmV2aWV3ZWQgYnk6IEBqY2hhcG1hIChUaGFua3MhKQotCi1Bc3Npc3RlZCBieTogQ2xhdWRlIEFJ Ci0tLS0KLSAuLi4vY2x1L2RzY29uZl9kc2N0bF9zZWN1cml0eV9jbGlfdGVzdC5weSAgICAgfCAx MzQwICsrKysrKysrKysrKysrKwotIC4uLi9zdWl0ZXMvdGxzL2R5bmFtaWNfY2VydGlmaWNhdGVz X3Rlc3QucHkgICB8IDE0MzYgKysrKysrKysrKysrKysrKysKLSBkaXJzcnZ0ZXN0cy90ZXN0cy9z dWl0ZXMvdGxzL21sZHNhX3Rlc3QucHkgICAgfCAgIDE5ICstCi0gbGRhcC9zZXJ2ZXJzL3NsYXBk L2R5bmNlcnRzLmMgICAgICAgICAgICAgICAgIHwgICA0MyArLQotIHNyYy9saWIzODkvbGliMzg5 L25zc19zc2wucHkgICAgICAgICAgICAgICAgICB8ICAgMTUgKy0KLSBzcmMvbGliMzg5L2xpYjM4 OS91dGlscy5weSAgICAgICAgICAgICAgICAgICAgfCAgIDIwICsKLSA2IGZpbGVzIGNoYW5nZWQs IDI4NDggaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25zKC0pCi0gY3JlYXRlIG1vZGUgMTAwNjQ0 IGRpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9jbHUvZHNjb25mX2RzY3RsX3NlY3VyaXR5X2NsaV90 ZXN0LnB5Ci0gY3JlYXRlIG1vZGUgMTAwNjQ0IGRpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy90bHMv ZHluYW1pY19jZXJ0aWZpY2F0ZXNfdGVzdC5weQotCi1kaWZmIC0tZ2l0IGEvZGlyc3J2dGVzdHMv dGVzdHMvc3VpdGVzL2NsdS9kc2NvbmZfZHNjdGxfc2VjdXJpdHlfY2xpX3Rlc3QucHkgYi9kaXJz cnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvY2x1L2RzY29uZl9kc2N0bF9zZWN1cml0eV9jbGlfdGVzdC5w eQotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAwMC4uMzE4YTNjYjMzCi0tLS0g L2Rldi9udWxsCi0rKysgYi9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvY2x1L2RzY29uZl9kc2N0 bF9zZWN1cml0eV9jbGlfdGVzdC5weQotQEAgLTAsMCArMSwxMzQwIEBACi0rIyAtLS0gQkVHSU4g Q09QWVJJR0hUIEJMT0NLIC0tLQotKyMgQ29weXJpZ2h0IChDKSAyMDI2IFJlZCBIYXQsIEluYy4K LSsjIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0rIwotKyMgTGljZW5zZTogR1BMICh2ZXJzaW9uIDMg b3IgYW55IGxhdGVyIHZlcnNpb24pLgotKyMgU2VlIExJQ0VOU0UgZm9yIGRldGFpbHMuCi0rIyAt LS0gRU5EIENPUFlSSUdIVCBCTE9DSyAtLS0KLSsjCi0rIiIiVGVzdCBkc2NvbmYgYW5kIGRzY3Rs IHNlY3VyaXR5IENMSSBzdWJjb21tYW5kcyB1c2luZyBzdWJwcm9jZXNzIiIiCi0rCi0raW1wb3J0 IGpzb24KLStpbXBvcnQgbG9nZ2luZwotK2ltcG9ydCBvcwotK2ltcG9ydCBweXRlc3QKLStpbXBv cnQgc3VicHJvY2VzcwotK2ltcG9ydCB0ZW1wZmlsZQotK2Zyb20gbGliMzg5LnRvcG9sb2dpZXMg aW1wb3J0IHRvcG9sb2d5X3N0IGFzIHRvcG8KLSsKLStweXRlc3RtYXJrID0gcHl0ZXN0Lm1hcmsu dGllcjEKLSsKLStsb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKLSsKLSsKLStAcHl0 ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIpCi0rZGVmIHNldHVwX3Rscyh0b3BvKToKLSsgICAg IiIiRW5hYmxlIFRMUyBvbiB0aGUgaW5zdGFuY2UiIiIKLSsgICAgdG9wby5zdGFuZGFsb25lLmVu YWJsZV90bHMoKQotKyAgICB5aWVsZCB0b3BvCi0rICAgICMgQ2xlYW51cCBpcyBoYW5kbGVkIGJ5 IHRoZSB0b3BvbG9neSBmaXh0dXJlCi0rCi0rCi0rZGVmIHJ1bl9jbWQoY21kLCBlbnY9Tm9uZSwg Y2hlY2s9VHJ1ZSwgc3RkaW5faW5wdXQ9Tm9uZSk6Ci0rICAgICIiIkhlbHBlciBmdW5jdGlvbiB0 byBydW4gYSBjb21tYW5kIGFuZCByZXR1cm4gb3V0cHV0Ci0rCi0rICAgIDpwYXJhbSBjbWQ6IENv bW1hbmQgbGlzdCB0byBydW4KLSsgICAgOnBhcmFtIGVudjogRW52aXJvbm1lbnQgdmFyaWFibGVz Ci0rICAgIDpwYXJhbSBjaGVjazogV2hldGhlciB0byBjaGVjayByZXR1cm4gY29kZQotKyAgICA6 cGFyYW0gc3RkaW5faW5wdXQ6IFN0cmluZyB0byBzZW5kIHRvIHN0ZGluCi0rICAgIDpyZXR1cm46 IHR1cGxlIG9mIChyZXR1cm5jb2RlLCBzdGRvdXQsIHN0ZGVycikKLSsgICAgIiIiCi0rICAgIGxv Zy5pbmZvKGYnUnVubmluZyBjb21tYW5kOiB7IiAiLmpvaW4oY21kKX0nKQotKyAgICBwcm9jID0g c3VicHJvY2Vzcy5Qb3BlbigKLSsgICAgICAgIGNtZCwKLSsgICAgICAgIHN0ZG91dD1zdWJwcm9j ZXNzLlBJUEUsCi0rICAgICAgICBzdGRlcnI9c3VicHJvY2Vzcy5QSVBFLAotKyAgICAgICAgc3Rk aW49c3VicHJvY2Vzcy5QSVBFIGlmIHN0ZGluX2lucHV0IGVsc2UgTm9uZSwKLSsgICAgICAgIGVu dj1lbnYKLSsgICAgKQotKyAgICBzdGRpbl9ieXRlcyA9IHN0ZGluX2lucHV0LmVuY29kZSgndXRm LTgnKSBpZiBzdGRpbl9pbnB1dCBlbHNlIE5vbmUKLSsgICAgc3Rkb3V0LCBzdGRlcnIgPSBwcm9j LmNvbW11bmljYXRlKGlucHV0PXN0ZGluX2J5dGVzKQotKyAgICBzdGRvdXRfc3RyID0gc3Rkb3V0 LmRlY29kZSgndXRmLTgnKSBpZiBzdGRvdXQgZWxzZSAnJwotKyAgICBzdGRlcnJfc3RyID0gc3Rk ZXJyLmRlY29kZSgndXRmLTgnKSBpZiBzdGRlcnIgZWxzZSAnJwotKwotKyAgICBsb2cuaW5mbyhm J1JldHVybiBjb2RlOiB7cHJvYy5yZXR1cm5jb2RlfScpCi0rICAgIGlmIHN0ZG91dF9zdHI6Ci0r ICAgICAgICBsb2cuaW5mbyhmJ1NURE9VVDoge3N0ZG91dF9zdHJ9JykKLSsgICAgaWYgc3RkZXJy X3N0cjoKLSsgICAgICAgIGxvZy5pbmZvKGYnU1RERVJSOiB7c3RkZXJyX3N0cn0nKQotKwotKyAg ICBpZiBjaGVjayBhbmQgcHJvYy5yZXR1cm5jb2RlICE9IDA6Ci0rICAgICAgICByYWlzZSBzdWJw cm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJvcigKLSsgICAgICAgICAgICBwcm9jLnJldHVybmNvZGUs IGNtZCwgc3Rkb3V0LCBzdGRlcnIKLSsgICAgICAgICkKLSsKLSsgICAgcmV0dXJuIHByb2MucmV0 dXJuY29kZSwgc3Rkb3V0X3N0ciwgc3RkZXJyX3N0cgotKwotKwotK2RlZiB0ZXN0X2RzY29uZl9z ZWN1cml0eV9nZXQodG9wbyk6Ci0rICAgICIiIlRlc3QgZHNjb25mIHNlY3VyaXR5IGdldCBjb21t YW5kIHZpYSBzdWJwcm9jZXNzCi0rCi0rICAgIDppZDogYTFhMmEzYTQtMDAwMS0wMDAxLTAwMDEt MDAwMDAwMDAwMDAxCi0rICAgIDpzZXR1cDogU3RhbmRhbG9uZSBJbnN0YW5jZQotKyAgICA6c3Rl cHM6Ci0rICAgICAgICAxLiBSdW4gZHNjb25mIHNlY3VyaXR5IGdldCBjb21tYW5kCi0rICAgICAg ICAyLiBWZXJpZnkgb3V0cHV0IGNvbnRhaW5zIHNlY3VyaXR5IGF0dHJpYnV0ZXMKLSsgICAgICAg IDMuIFJ1biB3aXRoIC0tanNvbiBmbGFnCi0rICAgICAgICA0LiBWZXJpZnkgSlNPTiBvdXRwdXQg aXMgdmFsaWQKLSsgICAgOmV4cGVjdGVkcmVzdWx0czoKLSsgICAgICAgIDEuIENvbW1hbmQgc3Vj Y2VlZHMKLSsgICAgICAgIDIuIE91dHB1dCBjb250YWlucyBleHBlY3RlZCBhdHRyaWJ1dGVzCi0r ICAgICAgICAzLiBKU09OIGNvbW1hbmQgc3VjY2VlZHMKLSsgICAgICAgIDQuIEpTT04gaXMgdmFs aWQgYW5kIHBhcnNlYWJsZQotKyAgICAiIiIKLSsgICAgaW5zdCA9IHRvcG8uc3RhbmRhbG9uZQot KyAgICBkc2NvbmZfY21kID0gWwotKyAgICAgICAgJ2RzY29uZicsCi0rICAgICAgICBpbnN0LnNl cnZlcmlkLAotKyAgICAgICAgJ3NlY3VyaXR5JywKLSsgICAgICAgICdnZXQnCi0rICAgIF0KLSsK LSsgICAgIyBUZXN0IHBsYWluIG91dHB1dAotKyAgICByZXR1cm5jb2RlLCBzdGRvdXQsIHN0ZGVy ciA9IHJ1bl9jbWQoZHNjb25mX2NtZCkKLSsgICAgYXNzZXJ0IHJldHVybmNvZGUgPT0gMAotKyAg ICBhc3NlcnQgJ25zc2xhcGQtc2VjdXJpdHk6JyBpbiBzdGRvdXQKLSsgICAgYXNzZXJ0ICduc3Ns YXBkLXNlY3VyZXBvcnQ6JyBpbiBzdGRvdXQgb3IgJ25zc2xhcGQtc2VjdXJlUG9ydDonIGluIHN0 ZG91dC5sb3dlcigpCi0rCi0rICAgICMgVGVzdCBKU09OIG91dHB1dAotKyAgICBkc2NvbmZfY21k X2pzb24gPSBbJ2RzY29uZicsIGluc3Quc2VydmVyaWQsICctLWpzb24nLCAnc2VjdXJpdHknLCAn Z2V0J10KLSsgICAgcmV0dXJuY29kZSwgc3Rkb3V0LCBzdGRlcnIgPSBydW5fY21kKGRzY29uZl9j bWRfanNvbikKLSsgICAgYXNzZXJ0IHJldHVybmNvZGUgPT0gMAotKwotKyAgICAjIFBhcnNlIGFu ZCB2YWxpZGF0ZSBKU09OCi0rICAgIHJlc3VsdCA9IGpzb24ubG9hZHMoc3Rkb3V0KQotKyAgICBh c3NlcnQgJ3R5cGUnIGluIHJlc3VsdAotKyAgICBhc3NlcnQgJ2l0ZW1zJyBpbiByZXN1bHQKLSsK LSsKLStkZWYgdGVzdF9kc2NvbmZfc2VjdXJpdHlfc2V0KHRvcG8pOgotKyAgICAiIiJUZXN0IGRz Y29uZiBzZWN1cml0eSBzZXQgY29tbWFuZCB2aWEgc3VicHJvY2VzcwotKwotKyAgICA6aWQ6IGEx YTJhM2E0LTAwMDEtMDAwMS0wMDAxLTAwMDAwMDAwMDAwMgotKyAgICA6c2V0dXA6IFN0YW5kYWxv bmUgSW5zdGFuY2UKLSsgICAgOnN0ZXBzOgotKyAgICAgICAgMS4gU2V0IHNlc3Npb24gdGltZW91 dCB1c2luZyBkc2NvbmYKLSsgICAgICAgIDIuIFZlcmlmeSBzZXR0aW5nIHdpdGggZ2V0IGNvbW1h bmQKLSsgICAgICAgIDMuIFJlc2V0IHRvIG9yaWdpbmFsIHZhbHVlCi0rICAgIDpleHBlY3RlZHJl c3VsdHM6Ci0rICAgICAgICAxLiBTZXQgY29tbWFuZCBzdWNjZWVkcwotKyAgICAgICAgMi4gVmFs dWUgaXMgY29ycmVjdGx5IHNldAotKyAgICAgICAgMy4gUmVzZXQgc3VjY2VlZHMKLSsgICAgIiIi Ci0rICAgIGluc3QgPSB0b3BvLnN0YW5kYWxvbmUKLSsgICAgZHNjb25mX2Jhc2UgPSBbCi0rICAg ICAgICAnZHNjb25mJywKLSsgICAgICAgIGluc3Quc2VydmVyaWQsCi0rICAgICAgICAnc2VjdXJp dHknCi0rICAgIF0KLSsKLSsgICAgIyBHZXQgb3JpZ2luYWwgdmFsdWUKLSsgICAgY21kID0gWydk c2NvbmYnLCBpbnN0LnNlcnZlcmlkLCAnLS1qc29uJywgJ3NlY3VyaXR5JywgJ2dldCddCi0rICAg IHJldHVybmNvZGUsIHN0ZG91dCwgc3RkZXJyID0gcnVuX2NtZChjbWQpCi0rICAgIG9yaWdpbmFs X2RhdGEgPSBqc29uLmxvYWRzKHN0ZG91dCkKLSsgICAgb3JpZ2luYWxfdGltZW91dCA9IG9yaWdp bmFsX2RhdGEuZ2V0KCdpdGVtcycsIHt9KS5nZXQoJ25zc2xhcGQtc3NsLXNlc3Npb24tdGltZW91 dCcsIFsnNjAwJ10pWzBdCi0rCi0rICAgIHRyeToKLSsgICAgICAgICMgU2V0IG5ldyB2YWx1ZQot KyAgICAgICAgY21kID0gZHNjb25mX2Jhc2UgKyBbJ3NldCcsICctLXNlc3Npb24tdGltZW91dCcs ICc5MDAnXQotKyAgICAgICAgcmV0dXJuY29kZSwgc3Rkb3V0LCBzdGRlcnIgPSBydW5fY21kKGNt ZCkKLSsgICAgICAgIGFzc2VydCByZXR1cm5jb2RlID09IDAKLSsKLSsgICAgICAgICMgVmVyaWZ5 IG5ldyB2YWx1ZQotKyAgICAgICAgY21kID0gZHNjb25mX2Jhc2UgKyBbJ2dldCddCi0rICAgICAg ICByZXR1cm5jb2RlLCBzdGRvdXQsIHN0ZGVyciA9IHJ1bl9jbWQoY21kKQotKyAgICAgICAgYXNz ZXJ0ICc5MDAnIGluIHN0ZG91dAotKwotKyAgICBmaW5hbGx5OgotKyAgICAgICAgIyBSZXNldCB0 byBvcmlnaW5hbAotKyAgICAgICAgY21kID0gZHNjb25mX2Jhc2UgKyBbJ3NldCcsICctLXNlc3Np b24tdGltZW91dCcsIG9yaWdpbmFsX3RpbWVvdXRdCi0rICAgICAgICBydW5fY21kKGNtZCwgY2hl Y2s9RmFsc2UpCi0rCi0rCi0rZGVmIHRlc3RfZHNjb25mX3NlY3VyaXR5X2VuYWJsZV9kaXNhYmxl KHNldHVwX3Rscyk6Ci0rICAgICIiIlRlc3QgZHNjb25mIHNlY3VyaXR5IGVuYWJsZS9kaXNhYmxl IGNvbW1hbmRzIHZpYSBzdWJwcm9jZXNzCi0rCi0rICAgIDppZDogYTFhMmEzYTQtMDAwMS0wMDAx LTAwMDEtMDAwMDAwMDAwMDAzCi0rICAgIDpzZXR1cDogU3RhbmRhbG9uZSBJbnN0YW5jZSB3aXRo IFRMUwotKyAgICA6c3RlcHM6Ci0rICAgICAgICAxLiBFbmFibGUgc2VjdXJpdHkKLSsgICAgICAg IDIuIFZlcmlmeSBzZWN1cml0eSBpcyBlbmFibGVkCi0rICAgICAgICAzLiBEaXNhYmxlIHNlY3Vy aXR5Ci0rICAgICAgICA0LiBWZXJpZnkgc2VjdXJpdHkgaXMgZGlzYWJsZWQKLSsgICAgOmV4cGVj dGVkcmVzdWx0czoKLSsgICAgICAgIDEuIEVuYWJsZSBjb21tYW5kIHN1Y2NlZWRzCi0rICAgICAg ICAyLiBTZWN1cml0eSBpcyBvbgotKyAgICAgICAgMy4gRGlzYWJsZSBjb21tYW5kIHN1Y2NlZWRz Ci0rICAgICAgICA0LiBTZWN1cml0eSBpcyBvZmYKLSsgICAgIiIiCi0rICAgIGluc3QgPSBzZXR1 cF90bHMuc3RhbmRhbG9uZQotKyAgICBkc2NvbmZfYmFzZSA9IFsKLSsgICAgICAgICdkc2NvbmYn LAotKyAgICAgICAgaW5zdC5zZXJ2ZXJpZCwKLSsgICAgICAgICdzZWN1cml0eScKLSsgICAgXQot KwotKyAgICAjIEVuYWJsZSBzZWN1cml0eQotKyAgICBjbWQgPSBkc2NvbmZfYmFzZSArIFsnZW5h YmxlJ10KLSsgICAgcmV0dXJuY29kZSwgc3Rkb3V0LCBzdGRlcnIgPSBydW5fY21kKGNtZCkKLSsg ICAgYXNzZXJ0IHJldHVybmNvZGUgPT0gMAotKwotKyAgICAjIFZlcmlmeSBlbmFibGVkCi0rICAg IGNtZCA9IGRzY29uZl9iYXNlICsgWydnZXQnXQotKyAgICByZXR1cm5jb2RlLCBzdGRvdXQsIHN0 ZGVyciA9IHJ1bl9jbWQoY21kKQotKyAgICBhc3NlcnQgJ25zc2xhcGQtc2VjdXJpdHk6IG9uJyBp biBzdGRvdXQKLSsKLSsgICAgIyBEaXNhYmxlIHNlY3VyaXR5Ci0rICAgIGNtZCA9IGRzY29uZl9i YXNlICsgWydkaXNhYmxlJ10KLSsgICAgcmV0dXJuY29kZSwgc3Rkb3V0LCBzdGRlcnIgPSBydW5f Y21kKGNtZCkKLSsgICAgYXNzZXJ0IHJldHVybmNvZGUgPT0gMAotKwotKyAgICAjIFZlcmlmeSBk aXNhYmxlZAotKyAgICBjbWQgPSBkc2NvbmZfYmFzZSArIFsnZ2V0J10KLSsgICAgcmV0dXJuY29k ZSwgc3Rkb3V0LCBzdGRlcnIgPSBydW5fY21kKGNtZCkKLSsgICAgYXNzZXJ0ICduc3NsYXBkLXNl Y3VyaXR5OiBvZmYnIGluIHN0ZG91dAotKwotKwotK2RlZiB0ZXN0X2RzY29uZl9zZWN1cml0eV9y c2FfZ2V0KHRvcG8pOgotKyAgICAiIiJUZXN0IGRzY29uZiBzZWN1cml0eSByc2EgZ2V0IGNvbW1h bmQgdmlhIHN1YnByb2Nlc3MKLSsKLSsgICAgOmlkOiBhMWEyYTNhNC0wMDAxLTAwMDEtMDAwMS0w MDAwMDAwMDAwMDQKLSsgICAgOnNldHVwOiBTdGFuZGFsb25lIEluc3RhbmNlCi0rICAgIDpzdGVw czoKLSsgICAgICAgIDEuIFJ1biBkc2NvbmYgc2VjdXJpdHkgcnNhIGdldCBjb21tYW5kCi0rICAg ICAgICAyLiBWZXJpZnkgb3V0cHV0IGNvbnRhaW5zIFJTQSBhdHRyaWJ1dGVzCi0rICAgIDpleHBl Y3RlZHJlc3VsdHM6Ci0rICAgICAgICAxLiBDb21tYW5kIHN1Y2NlZWRzCi0rICAgICAgICAyLiBP dXRwdXQgY29udGFpbnMgUlNBIGFjdGl2YXRpb24gYXR0cmlidXRlCi0rICAgICIiIgotKyAgICBp bnN0ID0gdG9wby5zdGFuZGFsb25lCi0rICAgIGNtZCA9IFsKLSsgICAgICAgICdkc2NvbmYnLAot KyAgICAgICAgaW5zdC5zZXJ2ZXJpZCwKLSsgICAgICAgICdzZWN1cml0eScsCi0rICAgICAgICAn cnNhJywKLSsgICAgICAgICdnZXQnCi0rICAgIF0KLSsKLSsgICAgcmV0dXJuY29kZSwgc3Rkb3V0 LCBzdGRlcnIgPSBydW5fY21kKGNtZCkKLSsgICAgYXNzZXJ0IHJldHVybmNvZGUgPT0gMAotKyAg ICBhc3NlcnQgJ25zc3NsYWN0aXZhdGlvbjonIGluIHN0ZG91dC5sb3dlcigpIG9yICduc1NTTEFj dGl2YXRpb246JyBpbiBzdGRvdXQKLSsKLSsKLStkZWYgdGVzdF9kc2NvbmZfc2VjdXJpdHlfcnNh X2VuYWJsZV9kaXNhYmxlKHNldHVwX3Rscyk6Ci0rICAgICIiIlRlc3QgZHNjb25mIHNlY3VyaXR5 IHJzYSBlbmFibGUvZGlzYWJsZSB2aWEgc3VicHJvY2VzcwotKwotKyAgICA6aWQ6IGExYTJhM2E0 LTAwMDEtMDAwMS0wMDAxLTAwMDAwMDAwMDAwNQotKyAgICA6c2V0dXA6IFN0YW5kYWxvbmUgSW5z dGFuY2Ugd2l0aCBUTFMKLSsgICAgOnN0ZXBzOgotKyAgICAgICAgMS4gRW5hYmxlIFJTQQotKyAg ICAgICAgMi4gVmVyaWZ5IFJTQSBpcyBlbmFibGVkCi0rICAgICAgICAzLiBEaXNhYmxlIFJTQQot KyAgICAgICAgNC4gVmVyaWZ5IFJTQSBpcyBkaXNhYmxlZAotKyAgICA6ZXhwZWN0ZWRyZXN1bHRz OgotKyAgICAgICAgMS4gRW5hYmxlIHN1Y2NlZWRzCi0rICAgICAgICAyLiBSU0EgaXMgb24KLSsg ICAgICAgIDMuIERpc2FibGUgc3VjY2VlZHMKLSsgICAgICAgIDQuIFJTQSBpcyBvZmYKLSsgICAg IiIiCi0rICAgIGluc3QgPSBzZXR1cF90bHMuc3RhbmRhbG9uZQotKyAgICBkc2NvbmZfYmFzZSA9 IFsKLSsgICAgICAgICdkc2NvbmYnLAotKyAgICAgICAgaW5zdC5zZXJ2ZXJpZCwKLSsgICAgICAg ICdzZWN1cml0eScsCi0rICAgICAgICAncnNhJwotKyAgICBdCi0rCi0rICAgICMgRW5hYmxlIFJT QQotKyAgICBjbWQgPSBkc2NvbmZfYmFzZSArIFsnZW5hYmxlJ10KLSsgICAgcmV0dXJuY29kZSwg c3Rkb3V0LCBzdGRlcnIgPSBydW5fY21kKGNtZCkKLSsgICAgYXNzZXJ0IHJldHVybmNvZGUgPT0g MAotKwotKyAgICAjIFZlcmlmeSBlbmFibGVkCi0rICAgIGNtZCA9IGRzY29uZl9iYXNlICsgWydn ZXQnXQotKyAgICByZXR1cm5jb2RlLCBzdGRvdXQsIHN0ZGVyciA9IHJ1bl9jbWQoY21kKQotKyAg ICBhc3NlcnQgJ29uJyBpbiBzdGRvdXQubG93ZXIoKQotKwotKyAgICAjIERpc2FibGUgUlNBCi0r ICAgIGNtZCA9IGRzY29uZl9iYXNlICsgWydkaXNhYmxlJ10KLSsgICAgcmV0dXJuY29kZSwgc3Rk b3V0LCBzdGRlcnIgPSBydW5fY21kKGNtZCkKLSsgICAgYXNzZXJ0IHJldHVybmNvZGUgPT0gMAot KwotKyAgICAjIFZlcmlmeSBkaXNhYmxlZAotKyAgICBjbWQgPSBkc2NvbmZfYmFzZSArIFsnZ2V0 J10KLSsgICAgcmV0dXJuY29kZSwgc3Rkb3V0LCBzdGRlcnIgPSBydW5fY21kKGNtZCkKLSsgICAg YXNzZXJ0ICdvZmYnIGluIHN0ZG91dC5sb3dlcigpCi0rCi0rCi0rZGVmIHRlc3RfZHNjb25mX3Nl Y3VyaXR5X2NpcGhlcnNfbGlzdChzZXR1cF90bHMpOgotKyAgICAiIiJUZXN0IGRzY29uZiBzZWN1 cml0eSBjaXBoZXJzIGxpc3QgY29tbWFuZCB2aWEgc3VicHJvY2VzcwotKwotKyAgICA6aWQ6IGEx YTJhM2E0LTAwMDEtMDAwMS0wMDAxLTAwMDAwMDAwMDAwNgotKyAgICA6c2V0dXA6IFN0YW5kYWxv bmUgSW5zdGFuY2Ugd2l0aCBUTFMKLSsgICAgOnN0ZXBzOgotKyAgICAgICAgMS4gTGlzdCBhbGwg Y2lwaGVycwotKyAgICAgICAgMi4gTGlzdCBlbmFibGVkIGNpcGhlcnMKLSsgICAgICAgIDMuIExp c3Qgc3VwcG9ydGVkIGNpcGhlcnMKLSsgICAgICAgIDQuIExpc3QgZGlzYWJsZWQgY2lwaGVycwot KyAgICAgICAgNS4gVGVzdCB3aXRoIC0tanNvbiBmbGFnCi0rICAgIDpleHBlY3RlZHJlc3VsdHM6 Ci0rICAgICAgICAxLiBDb21tYW5kIHN1Y2NlZWRzIGFuZCBzaG93cyBjaXBoZXJzCi0rICAgICAg ICAyLiBDb21tYW5kIHN1Y2NlZWRzCi0rICAgICAgICAzLiBDb21tYW5kIHN1Y2NlZWRzCi0rICAg ICAgICA0LiBDb21tYW5kIHN1Y2NlZWRzCi0rICAgICAgICA1LiBKU09OIG91dHB1dCBpcyB2YWxp ZAotKyAgICAiIiIKLSsgICAgaW5zdCA9IHNldHVwX3Rscy5zdGFuZGFsb25lCi0rICAgIGRzY29u Zl9iYXNlID0gWwotKyAgICAgICAgJ2RzY29uZicsCi0rICAgICAgICBpbnN0LnNlcnZlcmlkLAot KyAgICAgICAgJ3NlY3VyaXR5JywKLSsgICAgICAgICdjaXBoZXJzJywKLSsgICAgICAgICdsaXN0 JwotKyAgICBdCi0rCi0rICAgICMgTGlzdCBhbGwgY2lwaGVycwotKyAgICBjbWQgPSBkc2NvbmZf YmFzZS5jb3B5KCkKLSsgICAgcmV0dXJuY29kZSwgc3Rkb3V0LCBzdGRlcnIgPSBydW5fY21kKGNt ZCkKLSsgICAgYXNzZXJ0IHJldHVybmNvZGUgPT0gMAotKwotKyAgICAjIExpc3QgZW5hYmxlZCBj aXBoZXJzCi0rICAgIGNtZCA9IGRzY29uZl9iYXNlICsgWyctLWVuYWJsZWQnXQotKyAgICByZXR1 cm5jb2RlLCBzdGRvdXQsIHN0ZGVyciA9IHJ1bl9jbWQoY21kKQotKyAgICBhc3NlcnQgcmV0dXJu Y29kZSA9PSAwCi0rCi0rICAgICMgTGlzdCBzdXBwb3J0ZWQgY2lwaGVycwotKyAgICBjbWQgPSBk c2NvbmZfYmFzZSArIFsnLS1zdXBwb3J0ZWQnXQotKyAgICByZXR1cm5jb2RlLCBzdGRvdXQsIHN0 ZGVyciA9IHJ1bl9jbWQoY21kKQotKyAgICBhc3NlcnQgcmV0dXJuY29kZSA9PSAwCi0rCi0rICAg ICMgTGlzdCBkaXNhYmxlZCBjaXBoZXJzCi0rICAgIGNtZCA9IGRzY29uZl9iYXNlICsgWyctLWRp c2FibGVkJ10KLSsgICAgcmV0dXJuY29kZSwgc3Rkb3V0LCBzdGRlcnIgPSBydW5fY21kKGNtZCkK LSsgICAgYXNzZXJ0IHJldHVybmNvZGUgPT0gMAotKwotKyAgICAjIFRlc3QgSlNPTiBvdXRwdXQK LSsgICAgY21kID0gWydkc2NvbmYnLCBpbnN0LnNlcnZlcmlkLCAnLS1qc29uJywgJ3NlY3VyaXR5 JywgJ2NpcGhlcnMnLCAnbGlzdCddCi0rICAgIHJldHVybmNvZGUsIHN0ZG91dCwgc3RkZXJyID0g cnVuX2NtZChjbWQpCi0rICAgIGFzc2VydCByZXR1cm5jb2RlID09IDAKLSsgICAgIyBWYWxpZGF0 ZSBKU09OCi0rICAgIHJlc3VsdCA9IGpzb24ubG9hZHMoc3Rkb3V0KQotKyAgICBhc3NlcnQgaXNp bnN0YW5jZShyZXN1bHQsIChkaWN0LCBsaXN0KSkKLSsKLSsKLStkZWYgdGVzdF9kc2NvbmZfc2Vj dXJpdHlfY2lwaGVyc19nZXQodG9wbyk6Ci0rICAgICIiIlRlc3QgZHNjb25mIHNlY3VyaXR5IGNp cGhlcnMgZ2V0IGNvbW1hbmQgdmlhIHN1YnByb2Nlc3MKLSsKLSsgICAgOmlkOiBhMWEyYTNhNC0w MDAxLTAwMDEtMDAwMS0wMDAwMDAwMDAwMDcKLSsgICAgOnNldHVwOiBTdGFuZGFsb25lIEluc3Rh bmNlCi0rICAgIDpzdGVwczoKLSsgICAgICAgIDEuIFJ1biBkc2NvbmYgc2VjdXJpdHkgY2lwaGVy cyBnZXQgY29tbWFuZAotKyAgICAgICAgMi4gVmVyaWZ5IG91dHB1dCBpcyByZXR1cm5lZAotKyAg ICA6ZXhwZWN0ZWRyZXN1bHRzOgotKyAgICAgICAgMS4gQ29tbWFuZCBzdWNjZWVkcwotKyAgICAg ICAgMi4gT3V0cHV0IGNvbnRhaW5zIGNpcGhlciBpbmZvcm1hdGlvbgotKyAgICAiIiIKLSsgICAg aW5zdCA9IHRvcG8uc3RhbmRhbG9uZQotKyAgICBjbWQgPSBbCi0rICAgICAgICAnZHNjb25mJywK LSsgICAgICAgIGluc3Quc2VydmVyaWQsCi0rICAgICAgICAnc2VjdXJpdHknLAotKyAgICAgICAg J2NpcGhlcnMnLAotKyAgICAgICAgJ2dldCcKLSsgICAgXQotKwotKyAgICByZXR1cm5jb2RlLCBz dGRvdXQsIHN0ZGVyciA9IHJ1bl9jbWQoY21kKQotKyAgICBhc3NlcnQgcmV0dXJuY29kZSA9PSAw Ci0rICAgICMgT3V0cHV0IHNob3VsZCBjb250YWluIHNvbWV0aGluZyAoY2lwaGVyIGxpc3Qgb3Ig PHVuZGVmaW5lZD4pCi0rICAgIGFzc2VydCBsZW4oc3Rkb3V0KSA+IDAKLSsKLSsKLStkZWYgdGVz dF9kc2NvbmZfc2VjdXJpdHlfY2lwaGVyc19lbmFibGVfZGlzYWJsZShzZXR1cF90bHMpOgotKyAg ICAiIiJUZXN0IGRzY29uZiBzZWN1cml0eSBjaXBoZXJzIGVuYWJsZS9kaXNhYmxlIHZpYSBzdWJw cm9jZXNzCi0rCi0rICAgIDppZDogYTFhMmEzYTQtMDAwMS0wMDAxLTAwMDEtMDAwMDAwMDAwMDA4 Ci0rICAgIDpzZXR1cDogU3RhbmRhbG9uZSBJbnN0YW5jZSB3aXRoIFRMUwotKyAgICA6c3RlcHM6 Ci0rICAgICAgICAxLiBFbmFibGUgYSBzcGVjaWZpYyBjaXBoZXIKLSsgICAgICAgIDIuIERpc2Fi bGUgYSBzcGVjaWZpYyBjaXBoZXIKLSsgICAgOmV4cGVjdGVkcmVzdWx0czoKLSsgICAgICAgIDEu IEVuYWJsZSBjb21tYW5kIHN1Y2NlZWRzCi0rICAgICAgICAyLiBEaXNhYmxlIGNvbW1hbmQgc3Vj Y2VlZHMKLSsgICAgIiIiCi0rICAgIGluc3QgPSBzZXR1cF90bHMuc3RhbmRhbG9uZQotKyAgICBk c2NvbmZfYmFzZSA9IFsKLSsgICAgICAgICdkc2NvbmYnLAotKyAgICAgICAgaW5zdC5zZXJ2ZXJp ZCwKLSsgICAgICAgICdzZWN1cml0eScsCi0rICAgICAgICAnY2lwaGVycycKLSsgICAgXQotKwot KyAgICAjIEVuYWJsZSBhIGNpcGhlcgotKyAgICBjbWQgPSBkc2NvbmZfYmFzZSArIFsnZW5hYmxl JywgJ1RMU19BRVNfMTI4X0dDTV9TSEEyNTYnXQotKyAgICByZXR1cm5jb2RlLCBzdGRvdXQsIHN0 ZGVyciA9IHJ1bl9jbWQoY21kLCBjaGVjaz1GYWxzZSkKLSsgICAgIyBNYXkgZmFpbCBpZiBjaXBo ZXIgaXMgYWxyZWFkeSBlbmFibGVkIG9yIG5vdCBhdmFpbGFibGUsIHRoYXQncyBvawotKwotKyAg ICAjIERpc2FibGUgYSBjaXBoZXIKLSsgICAgY21kID0gZHNjb25mX2Jhc2UgKyBbJ2Rpc2FibGUn LCAnVExTX0FFU18xMjhfR0NNX1NIQTI1NiddCi0rICAgIHJldHVybmNvZGUsIHN0ZG91dCwgc3Rk ZXJyID0gcnVuX2NtZChjbWQsIGNoZWNrPUZhbHNlKQotKyAgICAjIE1heSBmYWlsIGlmIGNpcGhl ciBpcyBhbHJlYWR5IGRpc2FibGVkLCB0aGF0J3Mgb2sKLSsKLSsKLStkZWYgdGVzdF9kc2NvbmZf c2VjdXJpdHlfY2VydGlmaWNhdGVfbGlzdChzZXR1cF90bHMpOgotKyAgICAiIiJUZXN0IGRzY29u ZiBzZWN1cml0eSBjZXJ0aWZpY2F0ZSBsaXN0IGNvbW1hbmQgdmlhIHN1YnByb2Nlc3MKLSsKLSsg ICAgOmlkOiBhMWEyYTNhNC0wMDAxLTAwMDEtMDAwMS0wMDAwMDAwMDAwMDkKLSsgICAgOnNldHVw OiBTdGFuZGFsb25lIEluc3RhbmNlIHdpdGggVExTCi0rICAgIDpzdGVwczoKLSsgICAgICAgIDEu IExpc3QgY2VydGlmaWNhdGVzCi0rICAgICAgICAyLiBWZXJpZnkgU2VydmVyLUNlcnQgaXMgaW4g bGlzdAotKyAgICAgICAgMy4gVGVzdCB3aXRoIC0tanNvbiBmbGFnCi0rICAgIDpleHBlY3RlZHJl c3VsdHM6Ci0rICAgICAgICAxLiBDb21tYW5kIHN1Y2NlZWRzCi0rICAgICAgICAyLiBTZXJ2ZXIt Q2VydCBpcyBwcmVzZW50Ci0rICAgICAgICAzLiBKU09OIG91dHB1dCBpcyB2YWxpZAotKyAgICAi IiIKLSsgICAgaW5zdCA9IHNldHVwX3Rscy5zdGFuZGFsb25lCi0rICAgIGNtZCA9IFsKLSsgICAg ICAgICdkc2NvbmYnLAotKyAgICAgICAgaW5zdC5zZXJ2ZXJpZCwKLSsgICAgICAgICdzZWN1cml0 eScsCi0rICAgICAgICAnY2VydGlmaWNhdGUnLAotKyAgICAgICAgJ2xpc3QnCi0rICAgIF0KLSsK LSsgICAgIyBUZXN0IHBsYWluIG91dHB1dAotKyAgICByZXR1cm5jb2RlLCBzdGRvdXQsIHN0ZGVy ciA9IHJ1bl9jbWQoY21kKQotKyAgICBhc3NlcnQgcmV0dXJuY29kZSA9PSAwCi0rICAgIGFzc2Vy dCAnU2VydmVyLUNlcnQnIGluIHN0ZG91dAotKwotKyAgICAjIFRlc3QgSlNPTiBvdXRwdXQKLSsg ICAgY21kX2pzb24gPSBbJ2RzY29uZicsIGluc3Quc2VydmVyaWQsICctLWpzb24nLCAnc2VjdXJp dHknLCAnY2VydGlmaWNhdGUnLCAnbGlzdCddCi0rICAgIHJldHVybmNvZGUsIHN0ZG91dCwgc3Rk ZXJyID0gcnVuX2NtZChjbWRfanNvbikKLSsgICAgYXNzZXJ0IHJldHVybmNvZGUgPT0gMAotKyAg ICByZXN1bHQgPSBqc29uLmxvYWRzKHN0ZG91dCkKLSsgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVz dWx0LCAoZGljdCwgbGlzdCkpCi0rCi0rCi0rZGVmIHRlc3RfZHNjb25mX3NlY3VyaXR5X2NlcnRp ZmljYXRlX2dldChzZXR1cF90bHMpOgotKyAgICAiIiJUZXN0IGRzY29uZiBzZWN1cml0eSBjZXJ0 aWZpY2F0ZSBnZXQgY29tbWFuZCB2aWEgc3VicHJvY2VzcwotKwotKyAgICA6aWQ6IGExYTJhM2E0 LTAwMDEtMDAwMS0wMDAxLTAwMDAwMDAwMDAxMAotKyAgICA6c2V0dXA6IFN0YW5kYWxvbmUgSW5z dGFuY2Ugd2l0aCBUTFMKLSsgICAgOnN0ZXBzOgotKyAgICAgICAgMS4gR2V0IFNlcnZlci1DZXJ0 IGRldGFpbHMKLSsgICAgICAgIDIuIFZlcmlmeSBvdXRwdXQgY29udGFpbnMgY2VydGlmaWNhdGUg aW5mb3JtYXRpb24KLSsgICAgOmV4cGVjdGVkcmVzdWx0czoKLSsgICAgICAgIDEuIENvbW1hbmQg c3VjY2VlZHMKLSsgICAgICAgIDIuIE91dHB1dCBzaG93cyBjZXJ0aWZpY2F0ZSBkZXRhaWxzCi0r ICAgICIiIgotKyAgICBpbnN0ID0gc2V0dXBfdGxzLnN0YW5kYWxvbmUKLSsgICAgY21kID0gWwot KyAgICAgICAgJ2RzY29uZicsCi0rICAgICAgICBpbnN0LnNlcnZlcmlkLAotKyAgICAgICAgJ3Nl Y3VyaXR5JywKLSsgICAgICAgICdjZXJ0aWZpY2F0ZScsCi0rICAgICAgICAnZ2V0JywKLSsgICAg ICAgICdTZXJ2ZXItQ2VydCcKLSsgICAgXQotKwotKyAgICByZXR1cm5jb2RlLCBzdGRvdXQsIHN0 ZGVyciA9IHJ1bl9jbWQoY21kKQotKyAgICBhc3NlcnQgcmV0dXJuY29kZSA9PSAwCi0rICAgIGFz c2VydCAnU2VydmVyLUNlcnQnIGluIHN0ZG91dCBvciAnQ2VydGlmaWNhdGUgTmFtZTonIGluIHN0 ZG91dAotKwotKwotK2RlZiB0ZXN0X2RzY29uZl9zZWN1cml0eV9jZXJ0aWZpY2F0ZV9hZGRfZGVs ZXRlKHNldHVwX3Rscyk6Ci0rICAgICIiIlRlc3QgZHNjb25mIHNlY3VyaXR5IGNlcnRpZmljYXRl IGFkZCBhbmQgZGVsZXRlIHZpYSBzdWJwcm9jZXNzCi0rCi0rICAgIDppZDogYTFhMmEzYTQtMDAw MS0wMDAxLTAwMDEtMDAwMDAwMDAwMDExCi0rICAgIDpzZXR1cDogU3RhbmRhbG9uZSBJbnN0YW5j ZSB3aXRoIFRMUwotKyAgICA6c3RlcHM6Ci0rICAgICAgICAxLiBDcmVhdGUgYSB0ZXN0IGNlcnRp ZmljYXRlIFBFTSBmaWxlCi0rICAgICAgICAyLiBBZGQgY2VydGlmaWNhdGUgdmlhIGRzY29uZgot KyAgICAgICAgMy4gVmVyaWZ5IGNlcnRpZmljYXRlIHdhcyBhZGRlZAotKyAgICAgICAgNC4gRGVs ZXRlIGNlcnRpZmljYXRlCi0rICAgICAgICA1LiBWZXJpZnkgY2VydGlmaWNhdGUgd2FzIGRlbGV0 ZWQKLSsgICAgOmV4cGVjdGVkcmVzdWx0czoKLSsgICAgICAgIDEuIFBFTSBmaWxlIGNyZWF0ZWQK LSsgICAgICAgIDIuIEFkZCBjb21tYW5kIHN1Y2NlZWRzCi0rICAgICAgICAzLiBDZXJ0aWZpY2F0 ZSBpcyBpbiBsaXN0Ci0rICAgICAgICA0LiBEZWxldGUgY29tbWFuZCBzdWNjZWVkcwotKyAgICAg ICAgNS4gQ2VydGlmaWNhdGUgaXMgbm90IGluIGxpc3QKLSsgICAgIiIiCi0rICAgIGluc3QgPSBz ZXR1cF90bHMuc3RhbmRhbG9uZQotKyAgICBkc2NvbmZfYmFzZSA9IFsKLSsgICAgICAgICdkc2Nv bmYnLAotKyAgICAgICAgaW5zdC5zZXJ2ZXJpZCwKLSsgICAgICAgICdzZWN1cml0eScsCi0rICAg ICAgICAnY2VydGlmaWNhdGUnCi0rICAgIF0KLSsKLSsgICAgIyBDcmVhdGUgdGVzdCBjZXJ0aWZp Y2F0ZQotKyAgICBwZW1fY29udGVudCA9ICIiIi0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQot K01JSUZaakNDQTA2Z0F3SUJBZ0lGQUwxOEpPb3dEUVlKS29aSWh2Y05BUUVMQlFBd1pURUxNQWtH QTFVRUJoTUMKLStRVlV4RXpBUkJnTlZCQWdUQ2xGMVpXVnVjMnhoYm1ReERqQU1CZ05WQkFjVEJU TTRPV1J6TVJBd0RnWURWUVFLCi0rRXdkMFpYTjBhVzVuTVI4d0hRWURWUVFERXhaemMyTmhMak00 T1dSekxtVjRZVzF3YkdVdVkyOXRNQjRYRFRJeQotK01UQXlOVEU1TkRVME0xb1hEVEkwTVRBeU5U RTVORFUwTTFvd1pURUxNQWtHQTFVRUJoTUNRVlV4RXpBUkJnTlYKLStCQWdUQ2xGMVpXVnVjMnho Ym1ReERqQU1CZ05WQkFjVEJUTTRPV1J6TVJBd0RnWURWUVFLRXdkMFpYTjBhVzVuCi0rTVI4d0hR WURWUVFERXhaemMyTmhMak00T1dSekxtVjRZVzF3YkdVdVkyOXRNSUlDSWpBTkJna3Foa2lHOXcw QgotK0FRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQTVFK3BkNys4bEJzYlRLZGpIZ2tTTGkyWjVUNUc5 VCszd3ppREhoc3oKLStGMG5HK0lPdTV5WVZrb2ovYk14UjNzTk5sYkRMazVBVHlOQWZ5dFczY0FV WjNOTHFtNmJtRVpkVWpENll5Y1ZrCi0rQXZyZlkzelZWRTlEZWJmdzZKSTNtbDhKbEMzdDhkcW4y S1Q3ZG1TanZyOXpQUzk1SFUrUmVwanpBcUpBS1kzQgotKzI3djBjTWV0VW54RzRwcWM3enFuU1pK WFZQL09YTUtTTnB1akhuSzhIeWpUOHRVSklZUTBZdlUySlBKcHozZkMKLStCSnJtemdPMnhZTGdM UHU2YWJoUDZQUTZ1VVUrZDRqMzZsRzRKLzRPaU1ZMExyK21uYUJBYUQzVUxQdE41ZVpoCi0rZmpR OWQrU2g4OXhIejkyaWNXaGtuOGM3SUhORVpOdE1ITlROSmlOYldLdVU5SHBCV05qV0hKb3hTeFhu NEVtcgotK0RTZkcrbHEyVVUybTltK1hyREsvN3QwVy96QzNTK3p3Y3lxTThTSkFpWm5HRWk4NTA1 OHdCMEJCMUhubkFmRlgKLStnZWwzdVpGaG5SNGQ4Nk8vdk81VlVxZzVLbzc5NURQelBhM1NVNHJS MzZVM25VRjdnNVdoRUFtWU5DajY4M0QzCi0rREpEUEplQ1ptaXM3eHRZQjVLNld1NlNuRkR4QkVm aGNXU3NhbVdNMjg2S250T2lVdHFRRXpEeTRPcFpFVXNncQotK3M3dXFRU2wvZGZHZFk5aENwWE1Z aGx2TWZWdjNhSW9NNXpQdVhOMmNFMVFrVG5FMXB5bzhnWnFuUExGWm53YzkKLStGVCtXanB5MEVt c0FNLzVBSWVkNWgrSmdKMzA0UCt3a3lqZjdBUFVaeVV3ZjRVSk42YXJvNk44VzIzRjdkQXU1Ci0r dUowQ0F3RUFBYU1kTUJzd0RBWURWUjBUQkFVd0F3RUIvekFMQmdOVkhROEVCQU1DQWdRd0RRWUpL b1pJaHZjTgotK0FRRUxCUUFEZ2dJQkFERmxWZERwMWdURi9nbDV5c1pvbzQvNEJCU3BMeDVKRGV5 UEU2Qml0eVovbHdIdkJVcTMKLStWem1Jc1U2a3hBSmZrMHA5UzdHNExnSElDL0RWc0xUSUU1ZG82 dFVkeXJhd3ZjYWFuYlluOVNjTm9GVlEwR0RTCi0rQzZJcjhQZnRFdmM2YnBJNGhqa3Y0Z29LOWZU cTVKdHY0TFN1UmZ4RkV3b0xPK1dOOGE2NUlGV2xhSEpsL0VycAotKzlmelArSktEbzh6ZWg0cW5N a2FUU0NCbUxXYThrRXJyVjQ2MlJVK3Faa3RmL1Y0L2dXZzZrNVZwKzgyeE5rN2YKLSs5L01yZzlL c2hOdXg3QTRZQ2Q4TGdMRWVDZ3NpZ2k0TjZ6Y2ZqUUIwUmg1dTlrWHUvaHpPamgzNzlraS92cWp1 Ci0raStNVFZIOTdMTUI0N3VSMUxFbDBWdmhXU2pJRDBlUFV0YlBIQ0p3T3N4V3l4QkNKWTZWN0E5 bmo1MnVYTUd1WAotK3hnaHNzWlRGdlJLNkJiMU9pUE5ZUkdxbXV5bW04cmNTRmRzWTV5ZW1reEo2 a2ZuNDBKSVJDbVZGd3FhcXU3TUMKLStueHlhV0FLcFJIS001SXllVlpIa0Z6TDlqUi8ydFZCYmpm Q0FsNllTd003NTlWY09zdzJTR01RS3BHSVBFQlRhCi0rMU5CZGxHNDVhV0pCeDVqQmRWZk9za0xq eG1Cam9zQnlKSkhSTHRyVUJ2ZzY2WkJzeDFrMGM5WGpzS21DNTlKUAotK0F6STh6WXAvVFkvNlQ1 aWd4TStDU3g5OERzSkZjY1BCWkZGSlgrWVlSTDdERk4zOFliN2pNZ0lVWFlIUzI4R2MKLSsxYzhr ejd5bGNRQjhsS2dDZ3BjQkNINVpTbkxWQW5IM3VxQ3lneFNUZ1RvK2pnSmtsS2MweEZ1UgotKy0t LS0tRU5EIENFUlRJRklDQVRFLS0tLS0iIiIKLSsKLSsgICAgd2l0aCB0ZW1wZmlsZS5OYW1lZFRl bXBvcmFyeUZpbGUobW9kZT0ndycsIGRlbGV0ZT1GYWxzZSwgc3VmZml4PScucGVtJykgYXMgcGVt X2ZpbGU6Ci0rICAgICAgICBwZW1fZmlsZS53cml0ZShwZW1fY29udGVudCkKLSsgICAgICAgIHBl bV9wYXRoID0gcGVtX2ZpbGUubmFtZQotKwotKyAgICB0cnk6Ci0rICAgICAgICAjIEFkZCBjZXJ0 aWZpY2F0ZQotKyAgICAgICAgY21kID0gZHNjb25mX2Jhc2UgKyBbJ2FkZCcsICctLWZpbGUnLCBw ZW1fcGF0aCwgJy0tbmFtZScsICdURVNUX0NMSV9DRVJUJ10KLSsgICAgICAgIHJldHVybmNvZGUs IHN0ZG91dCwgc3RkZXJyID0gcnVuX2NtZChjbWQsIGNoZWNrPUZhbHNlKQotKyAgICAgICAgIyBN YXkgZmFpbCBpZiBjZXJ0IGFscmVhZHkgZXhpc3RzLCBjb250aW51ZSBhbnl3YXkKLSsKLSsgICAg ICAgICMgVmVyaWZ5IGl0IHdhcyBhZGRlZAotKyAgICAgICAgY21kID0gZHNjb25mX2Jhc2UgKyBb J2xpc3QnXQotKyAgICAgICAgcmV0dXJuY29kZSwgc3Rkb3V0LCBzdGRlcnIgPSBydW5fY21kKGNt ZCkKLSsgICAgICAgICMgQ2VydGlmaWNhdGUgc2hvdWxkIGJlIGluIGxpc3QgKG9yIG1heSBoYXZl IGZhaWxlZCB0byBhZGQpCi0rCi0rICAgICAgICAjIERlbGV0ZSBjZXJ0aWZpY2F0ZQotKyAgICAg ICAgY21kID0gZHNjb25mX2Jhc2UgKyBbJ2RlbCcsICdURVNUX0NMSV9DRVJUJ10KLSsgICAgICAg IHJldHVybmNvZGUsIHN0ZG91dCwgc3RkZXJyID0gcnVuX2NtZChjbWQsIGNoZWNrPUZhbHNlKQot KyAgICAgICAgIyBNYXkgZmFpbCBpZiBjZXJ0IGRvZXNuJ3QgZXhpc3QsIHRoYXQncyBvawotKwot KyAgICBmaW5hbGx5OgotKyAgICAgICAgaWYgb3MucGF0aC5leGlzdHMocGVtX3BhdGgpOgotKyAg ICAgICAgICAgIG9zLnVubGluayhwZW1fcGF0aCkKLSsKLSsKLStkZWYgdGVzdF9kc2NvbmZfc2Vj dXJpdHlfY2FfY2VydGlmaWNhdGVfbGlzdChzZXR1cF90bHMpOgotKyAgICAiIiJUZXN0IGRzY29u ZiBzZWN1cml0eSBjYS1jZXJ0aWZpY2F0ZSBsaXN0IHZpYSBzdWJwcm9jZXNzCi0rCi0rICAgIDpp ZDogYTFhMmEzYTQtMDAwMS0wMDAxLTAwMDEtMDAwMDAwMDAwMDEyCi0rICAgIDpzZXR1cDogU3Rh bmRhbG9uZSBJbnN0YW5jZSB3aXRoIFRMUwotKyAgICA6c3RlcHM6Ci0rICAgICAgICAxLiBMaXN0 IENBIGNlcnRpZmljYXRlcwotKyAgICAgICAgMi4gVmVyaWZ5IGNvbW1hbmQgc3VjY2VlZHMKLSsg ICAgOmV4cGVjdGVkcmVzdWx0czoKLSsgICAgICAgIDEuIENvbW1hbmQgc3VjY2VlZHMKLSsgICAg ICAgIDIuIE91dHB1dCBpcyByZXR1cm5lZAotKyAgICAiIiIKLSsgICAgaW5zdCA9IHNldHVwX3Rs cy5zdGFuZGFsb25lCi0rICAgIGNtZCA9IFsKLSsgICAgICAgICdkc2NvbmYnLAotKyAgICAgICAg aW5zdC5zZXJ2ZXJpZCwKLSsgICAgICAgICdzZWN1cml0eScsCi0rICAgICAgICAnY2EtY2VydGlm aWNhdGUnLAotKyAgICAgICAgJ2xpc3QnCi0rICAgIF0KLSsKLSsgICAgcmV0dXJuY29kZSwgc3Rk b3V0LCBzdGRlcnIgPSBydW5fY21kKGNtZCkKLSsgICAgYXNzZXJ0IHJldHVybmNvZGUgPT0gMAot KwotKwotK2RlZiB0ZXN0X2RzY3RsX3Rsc19zaG93X2NlcnQoc2V0dXBfdGxzKToKLSsgICAgIiIi VGVzdCBkc2N0bCB0bHMgc2hvdy1jZXJ0cyBjb21tYW5kIHZpYSBzdWJwcm9jZXNzCi0rCi0rICAg IDppZDogYjFiMmIzYjQtMDAwMi0wMDAyLTAwMDItMDAwMDAwMDAwMDAxCi0rICAgIDpzZXR1cDog U3RhbmRhbG9uZSBJbnN0YW5jZSB3aXRoIFRMUwotKyAgICA6c3RlcHM6Ci0rICAgICAgICAxLiBS dW4gZHNjdGwgdGxzIHNob3ctY2VydHMKLSsgICAgICAgIDIuIFZlcmlmeSBvdXRwdXQgc2hvd3Mg Y2VydGlmaWNhdGVzCi0rICAgIDpleHBlY3RlZHJlc3VsdHM6Ci0rICAgICAgICAxLiBDb21tYW5k IHN1Y2NlZWRzCi0rICAgICAgICAyLiBPdXRwdXQgY29udGFpbnMgY2VydGlmaWNhdGUgaW5mb3Jt YXRpb24KLSsgICAgIiIiCi0rICAgIGluc3QgPSBzZXR1cF90bHMuc3RhbmRhbG9uZQotKyAgICBj bWQgPSBbCi0rICAgICAgICAnZHNjdGwnLAotKyAgICAgICAgaW5zdC5zZXJ2ZXJpZCwKLSsgICAg ICAgICd0bHMnLAotKyAgICAgICAgJ3Nob3ctY2VydCcsCi0rICAgICAgICAnU2VydmVyLUNlcnQn Ci0rICAgIF0KLSsKLSsgICAgcmV0dXJuY29kZSwgc3Rkb3V0LCBzdGRlcnIgPSBydW5fY21kKGNt ZCkKLSsgICAgYXNzZXJ0IHJldHVybmNvZGUgPT0gMAotKwotKwotK2RlZiB0ZXN0X2RzY3RsX3Rs c19saXN0X2NsaWVudF9jYShzZXR1cF90bHMpOgotKyAgICAiIiJUZXN0IGRzY3RsIHRscyBsaXN0 LWNsaWVudC1jYXMgY29tbWFuZCB2aWEgc3VicHJvY2VzcwotKwotKyAgICA6aWQ6IGIxYjJiM2I0 LTAwMDItMDAwMi0wMDAyLTAwMDAwMDAwMDAwMwotKyAgICA6c2V0dXA6IFN0YW5kYWxvbmUgSW5z dGFuY2Ugd2l0aCBUTFMKLSsgICAgOnN0ZXBzOgotKyAgICAgICAgMS4gUnVuIGRzY3RsIHRscyBs aXN0LWNsaWVudC1jYXMKLSsgICAgICAgIDIuIFZlcmlmeSBjb21tYW5kIGV4ZWN1dGVzCi0rICAg IDpleHBlY3RlZHJlc3VsdHM6Ci0rICAgICAgICAxLiBDb21tYW5kIHN1Y2NlZWRzCi0rICAgICAg ICAyLiBPdXRwdXQgaXMgcmV0dXJuZWQKLSsgICAgIiIiCi0rICAgIGluc3QgPSBzZXR1cF90bHMu c3RhbmRhbG9uZQotKyAgICBjbWQgPSBbCi0rICAgICAgICAnZHNjdGwnLAotKyAgICAgICAgaW5z dC5zZXJ2ZXJpZCwKLSsgICAgICAgICd0bHMnLAotKyAgICAgICAgJ2xpc3QtY2xpZW50LWNhJwot KyAgICBdCi0rCi0rICAgIHJldHVybmNvZGUsIHN0ZG91dCwgc3RkZXJyID0gcnVuX2NtZChjbWQp Ci0rICAgIGFzc2VydCByZXR1cm5jb2RlID09IDAKLSsgICAgYXNzZXJ0ICdTZWxmLVNpZ25lZC1D QScgaW4gc3Rkb3V0Ci0rCi0rCi0rZGVmIHRlc3RfZHNjdGxfdGxzX2V4cG9ydF9jZXJ0KHNldHVw X3Rscyk6Ci0rICAgICIiIlRlc3QgZHNjdGwgdGxzIGV4cG9ydC1jZXJ0IGNvbW1hbmQgdmlhIHN1 YnByb2Nlc3MKLSsKLSsgICAgOmlkOiBiMWIyYjNiNC0wMDAyLTAwMDItMDAwMi0wMDAwMDAwMDAw MDQKLSsgICAgOnNldHVwOiBTdGFuZGFsb25lIEluc3RhbmNlIHdpdGggVExTCi0rICAgIDpzdGVw czoKLSsgICAgICAgIDEuIEV4cG9ydCBTZXJ2ZXItQ2VydCB0byBQRU0gZmlsZQotKyAgICAgICAg Mi4gVmVyaWZ5IGZpbGUgaXMgY3JlYXRlZAotKyAgICAgICAgMy4gVmVyaWZ5IGZpbGUgY29udGFp bnMgY2VydGlmaWNhdGUKLSsgICAgOmV4cGVjdGVkcmVzdWx0czoKLSsgICAgICAgIDEuIENvbW1h bmQgc3VjY2VlZHMKLSsgICAgICAgIDIuIEZpbGUgZXhpc3RzCi0rICAgICAgICAzLiBGaWxlIGNv bnRhaW5zIFBFTSBjZXJ0aWZpY2F0ZQotKyAgICAiIiIKLSsgICAgaW5zdCA9IHNldHVwX3Rscy5z dGFuZGFsb25lCi0rCi0rICAgIHdpdGggdGVtcGZpbGUuTmFtZWRUZW1wb3JhcnlGaWxlKG1vZGU9 J3cnLCBkZWxldGU9RmFsc2UsIHN1ZmZpeD0nLnBlbScpIGFzIGV4cG9ydF9maWxlOgotKyAgICAg ICAgZXhwb3J0X3BhdGggPSBleHBvcnRfZmlsZS5uYW1lCi0rCi0rICAgIHRyeToKLSsgICAgICAg IGNtZCA9IFsKLSsgICAgICAgICAgICAnZHNjdGwnLAotKyAgICAgICAgICAgIGluc3Quc2VydmVy aWQsCi0rICAgICAgICAgICAgJ3RscycsCi0rICAgICAgICAgICAgJ2V4cG9ydC1jZXJ0JywKLSsg ICAgICAgICAgICAnLS1vdXRwdXQtZmlsZScsCi0rICAgICAgICAgICAgZXhwb3J0X3BhdGgsCi0r ICAgICAgICAgICAgJ1NlcnZlci1DZXJ0JywKLSsgICAgICAgIF0KLSsKLSsgICAgICAgIHJldHVy bmNvZGUsIHN0ZG91dCwgc3RkZXJyID0gcnVuX2NtZChjbWQpCi0rICAgICAgICBhc3NlcnQgcmV0 dXJuY29kZSA9PSAwCi0rCi0rICAgICAgICAjIFZlcmlmeSBmaWxlIGV4aXN0cyBhbmQgaGFzIGNv bnRlbnQKLSsgICAgICAgIGFzc2VydCBvcy5wYXRoLmV4aXN0cyhleHBvcnRfcGF0aCkKLSsgICAg ICAgIGFzc2VydCBvcy5wYXRoLmdldHNpemUoZXhwb3J0X3BhdGgpID4gMAotKwotKyAgICAgICAg IyBWZXJpZnkgaXQncyBhIFBFTSBjZXJ0aWZpY2F0ZQotKyAgICAgICAgd2l0aCBvcGVuKGV4cG9y dF9wYXRoLCAncicpIGFzIGY6Ci0rICAgICAgICAgICAgY29udGVudCA9IGYucmVhZCgpCi0rICAg ICAgICAgICAgYXNzZXJ0ICctLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0nIGluIGNvbnRlbnQK LSsKLSsgICAgZmluYWxseToKLSsgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKGV4cG9ydF9wYXRo KToKLSsgICAgICAgICAgICBvcy51bmxpbmsoZXhwb3J0X3BhdGgpCi0rCi0rCi0rZGVmIHRlc3Rf ZHNjdGxfdGxzX2dlbmVyYXRlX3NlcnZlcl9jZXJ0X2Nzcih0b3BvKToKLSsgICAgIiIiVGVzdCBk c2N0bCB0bHMgZ2VuZXJhdGUtc2VydmVyLWNlcnQtY3NyIHZpYSBzdWJwcm9jZXNzCi0rCi0rICAg IDppZDogYjFiMmIzYjQtMDAwMi0wMDAyLTAwMDItMDAwMDAwMDAwMDA1Ci0rICAgIDpzZXR1cDog U3RhbmRhbG9uZSBJbnN0YW5jZQotKyAgICA6c3RlcHM6Ci0rICAgICAgICAxLiBHZW5lcmF0ZSBh IENTUiB3aXRoIHN1YmplY3QKLSsgICAgICAgIDIuIFZlcmlmeSBkc2N0bCBkb2VzIG5vdCBjcmFz aAotKyAgICA6ZXhwZWN0ZWRyZXN1bHRzOgotKyAgICAgICAgMS4gQ29tbWFuZCBzdWNjZWVkcwot KyAgICAgICAgMi4gQ29tbWFuZCByZXR1cm4gY29kZSBpcyAwIG9yIDEKLSsgICAgIiIiCi0rICAg IGluc3QgPSB0b3BvLnN0YW5kYWxvbmUKLSsgICAgY21kID0gWwotKyAgICAgICAgJ2RzY3RsJywK LSsgICAgICAgIGluc3Quc2VydmVyaWQsCi0rICAgICAgICAndGxzJywKLSsgICAgICAgICdnZW5l cmF0ZS1zZXJ2ZXItY2VydC1jc3InLAotKyAgICAgICAgJy1zJywgJ0NOPXRlc3QuZXhhbXBsZS5j b20sTz1FeGFtcGxlLEM9VVMnCi0rICAgIF0KLSsKLSsgICAgcmV0dXJuY29kZSwgc3Rkb3V0LCBz dGRlcnIgPSBydW5fY21kKGNtZCwgY2hlY2s9RmFsc2UpCi0rICAgICMgQ29tbWFuZCBtYXkgc3Vj Y2VlZCBvciBmYWlsIGRlcGVuZGluZyBvbiBzeXN0ZW0gY29uZmlndXJhdGlvbgotKyAgICAjIEp1 c3QgdmVyaWZ5IGl0IGRvZXNuJ3QgY3Jhc2gKLSsgICAgYXNzZXJ0IHJldHVybmNvZGUgaW4gWzAs IDFdICAjIDAgPSBzdWNjZXNzLCAxID0gZXhwZWN0ZWQgZXJyb3IKLSsKLSsKLStkZWYgdGVzdF9k c2N0bF9zZWN1cml0eV9vcHRpb25zKHRvcG8pOgotKyAgICAiIiJUZXN0IGRzY3RsIHdpdGggdmFy aW91cyBzZWN1cml0eS1yZWxhdGVkIG9wdGlvbnMgdmlhIHN1YnByb2Nlc3MKLSsKLSsgICAgOmlk OiBiMWIyYjNiNC0wMDAyLTAwMDItMDAwMi0wMDAwMDAwMDAwMDYKLSsgICAgOnNldHVwOiBTdGFu ZGFsb25lIEluc3RhbmNlCi0rICAgIDpzdGVwczoKLSsgICAgICAgIDEuIFJ1biBkc2N0bCBzdGF0 dXMgY29tbWFuZAotKyAgICAgICAgMi4gVmVyaWZ5IGNvbW1hbmQgd29ya3MKLSsgICAgOmV4cGVj dGVkcmVzdWx0czoKLSsgICAgICAgIDEuIENvbW1hbmQgc3VjY2VlZHMKLSsgICAgICAgIDIuIE91 dHB1dCBzaG93cyBpbnN0YW5jZSBzdGF0dXMKLSsgICAgIiIiCi0rICAgIGluc3QgPSB0b3BvLnN0 YW5kYWxvbmUKLSsgICAgY21kID0gWwotKyAgICAgICAgJ2RzY3RsJywKLSsgICAgICAgIGluc3Qu c2VydmVyaWQsCi0rICAgICAgICAnc3RhdHVzJwotKyAgICBdCi0rCi0rICAgIHJldHVybmNvZGUs IHN0ZG91dCwgc3RkZXJyID0gcnVuX2NtZChjbWQpCi0rICAgIGFzc2VydCByZXR1cm5jb2RlID09 IDAKLSsgICAgYXNzZXJ0ICdJbnN0YW5jZScgaW4gc3Rkb3V0IG9yIGluc3Quc2VydmVyaWQgaW4g c3Rkb3V0Ci0rCi0rCi0rZGVmIHRlc3RfZHNjb25mX3NlY3VyaXR5X2Rpc2FibGVfcGxhaW50ZXh0 X3BvcnQodG9wbyk6Ci0rICAgICIiIlRlc3QgZHNjb25mIHNlY3VyaXR5IGRpc2FibGVfcGxhaW5f cG9ydCB2aWEgc3VicHJvY2VzcwotKwotKyAgICA6aWQ6IGExYTJhM2E0LTAwMDEtMDAwMS0wMDAx LTAwMDAwMDAwMDAxMwotKyAgICA6c2V0dXA6IFN0YW5kYWxvbmUgSW5zdGFuY2UKLSsgICAgOnN0 ZXBzOgotKyAgICAgICAgMS4gRGlzYWJsZSBwbGFpbnRleHQgcG9ydAotKyAgICAgICAgMi4gVmVy aWZ5IHBvcnQgaXMgc2V0IHRvIDAKLSsgICAgICAgIDMuIFJlc3RvcmUgb3JpZ2luYWwgcG9ydAot KyAgICA6ZXhwZWN0ZWRyZXN1bHRzOgotKyAgICAgICAgMS4gQ29tbWFuZCBzdWNjZWVkcwotKyAg ICAgICAgMi4gUG9ydCBpcyBkaXNhYmxlZAotKyAgICAgICAgMy4gUmVzdG9yZSBzdWNjZWVkcwot KyAgICAiIiIKLSsgICAgaW5zdCA9IHRvcG8uc3RhbmRhbG9uZQotKyAgICBkc2NvbmZfYmFzZSA9 IFsKLSsgICAgICAgICdkc2NvbmYnLAotKyAgICAgICAgaW5zdC5zZXJ2ZXJpZAotKyAgICBdCi0r Ci0rICAgICMgR2V0IG9yaWdpbmFsIHBvcnQKLSsgICAgb3JpZ2luYWxfcG9ydCA9IGluc3QucG9y dAotKwotKyAgICB0cnk6Ci0rICAgICAgICAjIERpc2FibGUgcGxhaW50ZXh0IHBvcnQKLSsgICAg ICAgIGNtZCA9IGRzY29uZl9iYXNlICsgWydzZWN1cml0eScsICdkaXNhYmxlX3BsYWluX3BvcnQn XQotKyAgICAgICAgcmV0dXJuY29kZSwgc3Rkb3V0LCBzdGRlcnIgPSBydW5fY21kKGNtZCwgc3Rk aW5faW5wdXQ9J1llcyBJIGFtIHN1cmVcbicpCi0rICAgICAgICBhc3NlcnQgcmV0dXJuY29kZSA9 PSAwCi0rCi0rICAgICAgICAjIFZlcmlmeSBwb3J0IGlzIDAKLSsgICAgICAgIGFzc2VydCBpbnN0 LmNvbmZpZy5nZXRfYXR0cl92YWxfdXRmOCgnbnNzbGFwZC1wb3J0JykgPT0gIjAiCi0rCi0rICAg IGZpbmFsbHk6Ci0rICAgICAgICAjIFJlc3RvcmUgb3JpZ2luYWwgcG9ydAotKyAgICAgICAgaW5z dC5jb25maWcuc2V0KCduc3NsYXBkLXBvcnQnLCBzdHIob3JpZ2luYWxfcG9ydCkpCi0rCi0rCi0r ZGVmIHRlc3RfZHNjb25mX3NlY3VyaXR5X2NlcnRpZmljYXRlX3NldF90cnVzdF9mbGFncyhzZXR1 cF90bHMpOgotKyAgICAiIiJUZXN0IGRzY29uZiBzZWN1cml0eSBjZXJ0aWZpY2F0ZSBzZXQtdHJ1 c3QtZmxhZ3MgdmlhIHN1YnByb2Nlc3MKLSsKLSsgICAgOmlkOiBhMWEyYTNhNC0wMDAxLTAwMDEt MDAwMS0wMDAwMDAwMDAwMTQKLSsgICAgOnNldHVwOiBTdGFuZGFsb25lIEluc3RhbmNlIHdpdGgg VExTCi0rICAgIDpzdGVwczoKLSsgICAgICAgIDEuIFNldCB0cnVzdCBmbGFncyBvbiBTZWxmLVNp Z25lZC1DQQotKyAgICAgICAgMi4gVmVyaWZ5IGNvbW1hbmQgc3VjY2VlZHMKLSsgICAgOmV4cGVj dGVkcmVzdWx0czoKLSsgICAgICAgIDEuIENvbW1hbmQgc3VjY2VlZHMKLSsgICAgICAgIDIuIE5v IGVycm9ycyByZXR1cm5lZAotKyAgICAiIiIKLSsgICAgaW5zdCA9IHNldHVwX3Rscy5zdGFuZGFs b25lCi0rICAgIGNtZCA9IFsKLSsgICAgICAgICdkc2NvbmYnLAotKyAgICAgICAgaW5zdC5zZXJ2 ZXJpZCwKLSsgICAgICAgICdzZWN1cml0eScsCi0rICAgICAgICAnY2VydGlmaWNhdGUnLAotKyAg ICAgICAgJ3NldC10cnVzdC1mbGFncycsCi0rICAgICAgICAnU2VsZi1TaWduZWQtQ0EnLAotKyAg ICAgICAgJy0tZmxhZ3MnLAotKyAgICAgICAgJ0NULCwnCi0rICAgIF0KLSsKLSsgICAgcmV0dXJu Y29kZSwgc3Rkb3V0LCBzdGRlcnIgPSBydW5fY21kKGNtZCkKLSsgICAgYXNzZXJ0IHJldHVybmNv ZGUgPT0gMAotKwotKwotK2RlZiB0ZXN0X2RzY29uZl9oZWxwX3NlY3VyaXR5KHRvcG8pOgotKyAg ICAiIiJUZXN0IGRzY29uZiBzZWN1cml0eSBoZWxwIGNvbW1hbmRzIHZpYSBzdWJwcm9jZXNzCi0r Ci0rICAgIDppZDogYTFhMmEzYTQtMDAwMS0wMDAxLTAwMDEtMDAwMDAwMDAwMDE1Ci0rICAgIDpz ZXR1cDogU3RhbmRhbG9uZSBJbnN0YW5jZQotKyAgICA6c3RlcHM6Ci0rICAgICAgICAxLiBSdW4g ZHNjb25mIHNlY3VyaXR5IC0taGVscAotKyAgICAgICAgMi4gUnVuIGRzY29uZiBzZWN1cml0eSBy c2EgLS1oZWxwCi0rICAgICAgICAzLiBSdW4gZHNjb25mIHNlY3VyaXR5IGNpcGhlcnMgLS1oZWxw Ci0rICAgICAgICA0LiBSdW4gZHNjb25mIHNlY3VyaXR5IGNlcnRpZmljYXRlIC0taGVscAotKyAg ICA6ZXhwZWN0ZWRyZXN1bHRzOgotKyAgICAgICAgMS4gSGVscCB0ZXh0IGlzIGRpc3BsYXllZAot KyAgICAgICAgMi4gUlNBIGhlbHAgaXMgZGlzcGxheWVkCi0rICAgICAgICAzLiBDaXBoZXJzIGhl bHAgaXMgZGlzcGxheWVkCi0rICAgICAgICA0LiBDZXJ0aWZpY2F0ZSBoZWxwIGlzIGRpc3BsYXll ZAotKyAgICAiIiIKLSsgICAgaW5zdCA9IHRvcG8uc3RhbmRhbG9uZQotKyAgICBkc2NvbmZfYmFz ZSA9IFsKLSsgICAgICAgICdkc2NvbmYnLAotKyAgICAgICAgaW5zdC5zZXJ2ZXJpZCwKLSsgICAg ICAgICdzZWN1cml0eScKLSsgICAgXQotKwotKyAgICAjIFNlY3VyaXR5IGhlbHAKLSsgICAgY21k ID0gZHNjb25mX2Jhc2UgKyBbJy0taGVscCddCi0rICAgIHJldHVybmNvZGUsIHN0ZG91dCwgc3Rk ZXJyID0gcnVuX2NtZChjbWQpCi0rICAgIGFzc2VydCByZXR1cm5jb2RlID09IDAKLSsgICAgYXNz ZXJ0ICd1c2FnZTonIGluIHN0ZG91dC5sb3dlcigpIG9yICdzZWN1cml0eScgaW4gc3Rkb3V0Lmxv d2VyKCkKLSsKLSsgICAgIyBSU0EgaGVscAotKyAgICBjbWQgPSBkc2NvbmZfYmFzZSArIFsncnNh JywgJy0taGVscCddCi0rICAgIHJldHVybmNvZGUsIHN0ZG91dCwgc3RkZXJyID0gcnVuX2NtZChj bWQpCi0rICAgIGFzc2VydCByZXR1cm5jb2RlID09IDAKLSsKLSsgICAgIyBDaXBoZXJzIGhlbHAK LSsgICAgY21kID0gZHNjb25mX2Jhc2UgKyBbJ2NpcGhlcnMnLCAnLS1oZWxwJ10KLSsgICAgcmV0 dXJuY29kZSwgc3Rkb3V0LCBzdGRlcnIgPSBydW5fY21kKGNtZCkKLSsgICAgYXNzZXJ0IHJldHVy bmNvZGUgPT0gMAotKwotKyAgICAjIENlcnRpZmljYXRlIGhlbHAKLSsgICAgY21kID0gZHNjb25m X2Jhc2UgKyBbJ2NlcnRpZmljYXRlJywgJy0taGVscCddCi0rICAgIHJldHVybmNvZGUsIHN0ZG91 dCwgc3RkZXJyID0gcnVuX2NtZChjbWQpCi0rICAgIGFzc2VydCByZXR1cm5jb2RlID09IDAKLSsK LSsKLStkZWYgdGVzdF9kc2N0bF9oZWxwX3Rscyh0b3BvKToKLSsgICAgIiIiVGVzdCBkc2N0bCB0 bHMgaGVscCBjb21tYW5kIHZpYSBzdWJwcm9jZXNzCi0rCi0rICAgIDppZDogYjFiMmIzYjQtMDAw Mi0wMDAyLTAwMDItMDAwMDAwMDAwMDA3Ci0rICAgIDpzZXR1cDogU3RhbmRhbG9uZSBJbnN0YW5j ZQotKyAgICA6c3RlcHM6Ci0rICAgICAgICAxLiBSdW4gZHNjdGwgdGxzIC0taGVscAotKyAgICA6 ZXhwZWN0ZWRyZXN1bHRzOgotKyAgICAgICAgMS4gSGVscCB0ZXh0IGlzIGRpc3BsYXllZAotKyAg ICAiIiIKLSsgICAgaW5zdCA9IHRvcG8uc3RhbmRhbG9uZQotKyAgICBjbWQgPSBbCi0rICAgICAg ICAnZHNjdGwnLAotKyAgICAgICAgaW5zdC5zZXJ2ZXJpZCwKLSsgICAgICAgICd0bHMnLAotKyAg ICAgICAgJy0taGVscCcKLSsgICAgXQotKwotKyAgICByZXR1cm5jb2RlLCBzdGRvdXQsIHN0ZGVy ciA9IHJ1bl9jbWQoY21kKQotKyAgICBhc3NlcnQgcmV0dXJuY29kZSA9PSAwCi0rICAgIGFzc2Vy dCAndXNhZ2U6JyBpbiBzdGRvdXQubG93ZXIoKSBvciAndGxzJyBpbiBzdGRvdXQubG93ZXIoKQot KwotKwotK2RlZiB0ZXN0X2RzY29uZl9jZXJ0aWZpY2F0ZV9pbnZhbGlkX2ZpbGVzKHNldHVwX3Rs cyk6Ci0rICAgICIiIlRlc3QgZHNjb25mIHdpdGggaW52YWxpZC9tYWxmb3JtZWQgY2VydGlmaWNh dGUgZmlsZXMgdmlhIHN1YnByb2Nlc3MKLSsKLSsgICAgOmlkOiBhMWEyYTNhNC0wMDAxLTAwMDEt MDAwMS0wMDAwMDAwMDAwMTYKLSsgICAgOnNldHVwOiBTdGFuZGFsb25lIEluc3RhbmNlIHdpdGgg VExTCi0rICAgIDpzdGVwczoKLSsgICAgICAgIDEuIFRyeSB0byBpbXBvcnQgY29ycnVwdGVkIFBF TSBjZXJ0aWZpY2F0ZQotKyAgICAgICAgMi4gVHJ5IHRvIGltcG9ydCB0cnVuY2F0ZWQgY2VydGlm aWNhdGUKLSsgICAgICAgIDMuIFRyeSB0byBpbXBvcnQgaW52YWxpZCBQS0NTIzEyIGZpbGUKLSsg ICAgICAgIDQuIFZlcmlmeSBhbGwgY29tbWFuZHMgZmFpbCB3aXRoIGFwcHJvcHJpYXRlIGVycm9y cwotKyAgICA6ZXhwZWN0ZWRyZXN1bHRzOgotKyAgICAgICAgMS4gQ29ycnVwdGVkIFBFTSBpbXBv cnQgZmFpbHMKLSsgICAgICAgIDIuIFRydW5jYXRlZCBjZXJ0IGltcG9ydCBmYWlscwotKyAgICAg ICAgMy4gSW52YWxpZCBQS0NTIzEyIGltcG9ydCBmYWlscwotKyAgICAgICAgNC4gRXJyb3IgbWVz c2FnZXMgYXJlIG1lYW5pbmdmdWwgKG5vdCBqdXN0IGVycm9yIGNvZGVzKQotKyAgICAiIiIKLSsg ICAgaW5zdCA9IHNldHVwX3Rscy5zdGFuZGFsb25lCi0rICAgIGRzY29uZl9iYXNlID0gWwotKyAg ICAgICAgJ2RzY29uZicsCi0rICAgICAgICBpbnN0LnNlcnZlcmlkLAotKyAgICAgICAgJ3NlY3Vy aXR5JywKLSsgICAgICAgICdjZXJ0aWZpY2F0ZScKLSsgICAgXQotKwotKyAgICAjIFRlc3QgMTog Q29ycnVwdGVkIFBFTSBjZXJ0aWZpY2F0ZQotKyAgICBjb3JydXB0ZWRfcGVtID0gIiIiLS0tLS1C RUdJTiBDRVJUSUZJQ0FURS0tLS0tCi0rQ09SUlVQVEVEIERBVEEgSEVSRSBOT1QgVkFMSUQgQkFT RTY0IUAjJCVeJioKLStUSElTIElTIE5PVCBBIFJFQUwgQ0VSVElGSUNBVEUKLSstLS0tLUVORCBD RVJUSUZJQ0FURS0tLS0tIiIiCi0rCi0rICAgIHdpdGggdGVtcGZpbGUuTmFtZWRUZW1wb3JhcnlG aWxlKG1vZGU9J3cnLCBkZWxldGU9RmFsc2UsIHN1ZmZpeD0nLnBlbScpIGFzIGY6Ci0rICAgICAg ICBmLndyaXRlKGNvcnJ1cHRlZF9wZW0pCi0rICAgICAgICBjb3JydXB0ZWRfcGVtX3BhdGggPSBm Lm5hbWUKLSsKLSsgICAgdHJ5OgotKyAgICAgICAgY21kID0gZHNjb25mX2Jhc2UgKyBbJ2FkZCcs ICctLWZpbGUnLCBjb3JydXB0ZWRfcGVtX3BhdGgsICctLW5hbWUnLCAnQ09SUlVQVEVEX0NFUlQn XQotKyAgICAgICAgcmV0dXJuY29kZSwgc3Rkb3V0LCBzdGRlcnIgPSBydW5fY21kKGNtZCwgY2hl Y2s9RmFsc2UpCi0rICAgICAgICBhc3NlcnQgcmV0dXJuY29kZSAhPSAwCi0rICAgICAgICAjIFNo b3VsZCBoYXZlIGVycm9yIHRleHQsIG5vdCBqdXN0IGVycm9yIGNvZGUKLSsgICAgICAgIGFzc2Vy dCAnMjU1JyBub3QgaW4gc3RkZXJyIG9yICdiYXNlNjQnIGluIHN0ZGVyci5sb3dlcigpIG9yICdp bnZhbGlkJyBpbiBzdGRlcnIubG93ZXIoKQotKyAgICBmaW5hbGx5OgotKyAgICAgICAgaWYgb3Mu cGF0aC5leGlzdHMoY29ycnVwdGVkX3BlbV9wYXRoKToKLSsgICAgICAgICAgICBvcy51bmxpbmso Y29ycnVwdGVkX3BlbV9wYXRoKQotKwotKyAgICAjIFRlc3QgMjogVHJ1bmNhdGVkIGNlcnRpZmlj YXRlIChpbmNvbXBsZXRlIFBFTSkKLSsgICAgdHJ1bmNhdGVkX3BlbSA9ICIiIi0tLS0tQkVHSU4g Q0VSVElGSUNBVEUtLS0tLQotK01JSUZaakNDQTA2Z0F3SUJBZ0lGQUwxOEpPb3dEUVlKS29aSWh2 Y05BUUVMQlFBd1pURUxNQWtHQTFVRUJoTUMKLStRVlV4RXpBUkJnTlZCQWdUQ2xGMVpXVnVjMnho Ym1ReERqQU1CZ05WQkFjVEJUTTRPV1J6TVJBd0RnWURWUVFLCi0rIiIiICAjIEludGVudGlvbmFs bHkgdHJ1bmNhdGVkLCBubyBFTkQgQ0VSVElGSUNBVEUKLSsKLSsgICAgd2l0aCB0ZW1wZmlsZS5O YW1lZFRlbXBvcmFyeUZpbGUobW9kZT0ndycsIGRlbGV0ZT1GYWxzZSwgc3VmZml4PScucGVtJykg YXMgZjoKLSsgICAgICAgIGYud3JpdGUodHJ1bmNhdGVkX3BlbSkKLSsgICAgICAgIHRydW5jYXRl ZF9wZW1fcGF0aCA9IGYubmFtZQotKwotKyAgICB0cnk6Ci0rICAgICAgICBjbWQgPSBkc2NvbmZf YmFzZSArIFsnYWRkJywgJy0tZmlsZScsIHRydW5jYXRlZF9wZW1fcGF0aCwgJy0tbmFtZScsICdU UlVOQ0FURURfQ0VSVCddCi0rICAgICAgICByZXR1cm5jb2RlLCBzdGRvdXQsIHN0ZGVyciA9IHJ1 bl9jbWQoY21kLCBjaGVjaz1GYWxzZSkKLSsgICAgICAgIGFzc2VydCByZXR1cm5jb2RlICE9IDAK LSsgICAgZmluYWxseToKLSsgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKHRydW5jYXRlZF9wZW1f cGF0aCk6Ci0rICAgICAgICAgICAgb3MudW5saW5rKHRydW5jYXRlZF9wZW1fcGF0aCkKLSsKLSsg ICAgIyBUZXN0IDM6IEludmFsaWQgUEtDUyMxMiBmaWxlIChqdXN0IHJhbmRvbSBkYXRhKQotKyAg ICB3aXRoIHRlbXBmaWxlLk5hbWVkVGVtcG9yYXJ5RmlsZShtb2RlPSd3YicsIGRlbGV0ZT1GYWxz ZSwgc3VmZml4PScucDEyJykgYXMgZjoKLSsgICAgICAgIGYud3JpdGUoYidOT1QgQSBWQUxJRCBQ S0NTMTIgRklMRScpCi0rICAgICAgICBpbnZhbGlkX3AxMl9wYXRoID0gZi5uYW1lCi0rCi0rICAg IHRyeToKLSsgICAgICAgIGNtZCA9IGRzY29uZl9iYXNlICsgWydhZGQnLCAnLS1maWxlJywgaW52 YWxpZF9wMTJfcGF0aCwgJy0tbmFtZScsICdJTlZBTElEX1AxMiddCi0rICAgICAgICByZXR1cm5j b2RlLCBzdGRvdXQsIHN0ZGVyciA9IHJ1bl9jbWQoY21kLCBjaGVjaz1GYWxzZSkKLSsgICAgICAg IGFzc2VydCByZXR1cm5jb2RlICE9IDAKLSsgICAgZmluYWxseToKLSsgICAgICAgIGlmIG9zLnBh dGguZXhpc3RzKGludmFsaWRfcDEyX3BhdGgpOgotKyAgICAgICAgICAgIG9zLnVubGluayhpbnZh bGlkX3AxMl9wYXRoKQotKwotKwotK2RlZiB0ZXN0X2RzY29uZl9jZXJ0aWZpY2F0ZV9vdmVyd3Jp dGVfc2NlbmFyaW9zKHNldHVwX3Rscyk6Ci0rICAgICIiIlRlc3QgY2VydGlmaWNhdGUgb3Zlcndy aXRlIHdpdGggYW5kIHdpdGhvdXQgLS1mb3JjZSBmbGFnIHZpYSBzdWJwcm9jZXNzCi0rCi0rICAg IDppZDogYTFhMmEzYTQtMDAwMS0wMDAxLTAwMDEtMDAwMDAwMDAwMDE3Ci0rICAgIDpzZXR1cDog U3RhbmRhbG9uZSBJbnN0YW5jZSB3aXRoIFRMUwotKyAgICA6c3RlcHM6Ci0rICAgICAgICAxLiBB ZGQgYSB0ZXN0IGNlcnRpZmljYXRlCi0rICAgICAgICAyLiBUcnkgdG8gYWRkIHNhbWUgY2VydGlm aWNhdGUgd2l0aG91dCAtLWZvcmNlIChzaG91bGQgZmFpbCkKLSsgICAgICAgIDMuIEFkZCBzYW1l IGNlcnRpZmljYXRlIHdpdGggLS1mb3JjZSAoc2hvdWxkIHN1Y2NlZWQpCi0rICAgICAgICA0LiBD bGVhbiB1cAotKyAgICA6ZXhwZWN0ZWRyZXN1bHRzOgotKyAgICAgICAgMS4gSW5pdGlhbCBhZGQg c3VjY2VlZHMKLSsgICAgICAgIDIuIER1cGxpY2F0ZSBhZGQgd2l0aG91dCAtLWZvcmNlIGZhaWxz Ci0rICAgICAgICAzLiBEdXBsaWNhdGUgYWRkIHdpdGggLS1mb3JjZSBzdWNjZWVkcwotKyAgICAg ICAgNC4gQ2xlYW51cCBzdWNjZWVkcwotKyAgICAiIiIKLSsgICAgaW5zdCA9IHNldHVwX3Rscy5z dGFuZGFsb25lCi0rICAgIGRzY29uZl9iYXNlID0gWwotKyAgICAgICAgJ2RzY29uZicsCi0rICAg ICAgICBpbnN0LnNlcnZlcmlkLAotKyAgICAgICAgJ3NlY3VyaXR5JywKLSsgICAgICAgICdjZXJ0 aWZpY2F0ZScKLSsgICAgXQotKwotKyAgICAjIFZhbGlkIHRlc3QgY2VydGlmaWNhdGUKLSsgICAg cGVtX2NvbnRlbnQgPSAiIiItLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLStNSUlGWmpDQ0Ew NmdBd0lCQWdJRkFMMThKT293RFFZSktvWklodmNOQVFFTEJRQXdaVEVMTUFrR0ExVUVCaE1DCi0r UVZVeEV6QVJCZ05WQkFnVENsRjFaV1Z1YzJ4aGJtUXhEakFNQmdOVkJBY1RCVE00T1dSek1SQXdE Z1lEVlFRSwotK0V3ZDBaWE4wYVc1bk1SOHdIUVlEVlFRREV4WnpjMk5oTGpNNE9XUnpMbVY0WVcx d2JHVXVZMjl0TUI0WERUSXkKLStNVEF5TlRFNU5EVTBNMW9YRFRJME1UQXlOVEU1TkRVME0xb3da VEVMTUFrR0ExVUVCaE1DUVZVeEV6QVJCZ05WCi0rQkFnVENsRjFaV1Z1YzJ4aGJtUXhEakFNQmdO VkJBY1RCVE00T1dSek1SQXdEZ1lEVlFRS0V3ZDBaWE4wYVc1bgotK01SOHdIUVlEVlFRREV4Wnpj Mk5oTGpNNE9XUnpMbVY0WVcxd2JHVXVZMjl0TUlJQ0lqQU5CZ2txaGtpRzl3MEIKLStBUUVGQUFP Q0FnOEFNSUlDQ2dLQ0FnRUE1RStwZDcrOGxCc2JUS2RqSGdrU0xpMlo1VDVHOVQrM3d6aURIaHN6 Ci0rRjBuRytJT3U1eVlWa29qL2JNeFIzc05ObGJETGs1QVR5TkFmeXRXM2NBVVozTkxxbTZibUVa ZFVqRDZZeWNWawotK0F2cmZZM3pWVkU5RGViZnc2SkkzbWw4SmxDM3Q4ZHFuMktUN2RtU2p2cjl6 UFM5NUhVK1JlcGp6QXFKQUtZM0IKLSsyN3YwY01ldFVueEc0cHFjN3pxblNaSlhWUC9PWE1LU05w dWpIbks4SHlqVDh0VUpJWVEwWXZVMkpQSnB6M2ZDCi0rQkpybXpnTzJ4WUxnTFB1NmFiaFA2UFE2 dVVVK2Q0ajM2bEc0Si80T2lNWTBMcittbmFCQWFEM1VMUHRONWVaaAotK2ZqUTlkK1NoODl4SHo5 MmljV2hrbjhjN0lITkVaTnRNSE5UTkppTmJXS3VVOUhwQldOaldISm94U3hYbjRFbXIKLStEU2ZH K2xxMlVVMm05bStYckRLLzd0MFcvekMzUyt6d2N5cU04U0pBaVpuR0VpODUwNTh3QjBCQjFIbm5B ZkZYCi0rZ2VsM3VaRmhuUjRkODZPL3ZPNVZVcWc1S283OTVEUHpQYTNTVTRyUjM2VTNuVUY3ZzVX aEVBbVlOQ2o2ODNEMwotK0RKRFBKZUNabWlzN3h0WUI1SzZXdTZTbkZEeEJFZmhjV1NzYW1XTTI4 NktudE9pVXRxUUV6RHk0T3BaRVVzZ3EKLStzN3VxUVNsL2RmR2RZOWhDcFhNWWhsdk1mVnYzYUlv TTV6UHVYTjJjRTFRa1RuRTFweW84Z1pxblBMRlpud2M5Ci0rRlQrV2pweTBFbXNBTS81QUllZDVo K0pnSjMwNFArd2t5amY3QVBVWnlVd2Y0VUpONmFybzZOOFcyM0Y3ZEF1NQotK3VKMENBd0VBQWFN ZE1Cc3dEQVlEVlIwVEJBVXdBd0VCL3pBTEJnTlZIUThFQkFNQ0FnUXdEUVlKS29aSWh2Y04KLStB UUVMQlFBRGdnSUJBREZsVmREcDFnVEYvZ2w1eXNab280LzRCQlNwTHg1SkRleVBFNkJpdHlaL2x3 SHZCVXEzCi0rVnptSXNVNmt4QUpmazBwOVM3RzRMZ0hJQy9EVnNMVElFNWRvNnRVZHlyYXd2Y2Fh bmJZbjlTY05vRlZRMEdEUwotK0M2SXI4UGZ0RXZjNmJwSTRoamt2NGdvSzlmVHE1SnR2NExTdVJm eEZFd29MTytXTjhhNjVJRldsYUhKbC9FcnAKLSs5ZnpQK0pLRG84emVoNHFuTWthVFNDQm1MV2E4 a0VyclY0NjJSVStxWmt0Zi9WNC9nV2c2azVWcCs4MnhOazdmCi0rOS9Ncmc5S3NoTnV4N0E0WUNk OExnTEVlQ2dzaWdpNE42emNmalFCMFJoNXU5a1h1L2h6T2poMzc5a2kvdnFqdQotK2krTVRWSDk3 TE1CNDd1UjFMRWwwVnZoV1NqSUQwZVBVdGJQSENKd09zeFd5eEJDSlk2VjdBOW5qNTJ1WE1HdVgK LSt4Z2hzc1pURnZSSzZCYjFPaVBOWVJHcW11eW1tOHJjU0Zkc1k1eWVta3hKNmtmbjQwSklSQ21W RndxYXF1N01DCi0rbnh5YVdBS3BSSEtNNUl5ZVZaSGtGekw5alIvMnRWQmJqZkNBbDZZU3dNNzU5 VmNPc3cyU0dNUUtwR0lQRUJUYQotKzFOQmRsRzQ1YVdKQng1akJkVmZPc2tManhtQmpvc0J5SkpI Ukx0clVCdmc2NlpCc3gxazBjOVhqc0ttQzU5SlAKLStBekk4ellwL1RZLzZUNWlneE0rQ1N4OThE c0pGY2NQQlpGRkpYK1lZUkw3REZOMzhZYjdqTWdJVVhZSFMyOEdjCi0rMWM4a3o3eWxjUUI4bEtn Q2dwY0JDSDVaU25MVkFuSDN1cUN5Z3hTVGdUbytqZ0prbEtjMHhGdVIKLSstLS0tLUVORCBDRVJU SUZJQ0FURS0tLS0tIiIiCi0rCi0rICAgIHdpdGggdGVtcGZpbGUuTmFtZWRUZW1wb3JhcnlGaWxl KG1vZGU9J3cnLCBkZWxldGU9RmFsc2UsIHN1ZmZpeD0nLnBlbScpIGFzIGY6Ci0rICAgICAgICBm LndyaXRlKHBlbV9jb250ZW50KQotKyAgICAgICAgcGVtX3BhdGggPSBmLm5hbWUKLSsKLSsgICAg Y2VydF9uYW1lID0gJ1RFU1RfT1ZFUldSSVRFX0NFUlQnCi0rCi0rICAgIHRyeToKLSsgICAgICAg ICMgSW5pdGlhbCBhZGQKLSsgICAgICAgIGNtZCA9IGRzY29uZl9iYXNlICsgWydhZGQnLCAnLS1m aWxlJywgcGVtX3BhdGgsICctLW5hbWUnLCBjZXJ0X25hbWVdCi0rICAgICAgICByZXR1cm5jb2Rl LCBzdGRvdXQsIHN0ZGVyciA9IHJ1bl9jbWQoY21kLCBjaGVjaz1GYWxzZSkKLSsKLSsgICAgICAg IGlmIHJldHVybmNvZGUgPT0gMDoKLSsgICAgICAgICAgICAjIFRyeSB0byBhZGQgYWdhaW4gd2l0 aG91dCAtLWZvcmNlIChzaG91bGQgZmFpbCkKLSsgICAgICAgICAgICBjbWQgPSBkc2NvbmZfYmFz ZSArIFsnYWRkJywgJy0tZmlsZScsIHBlbV9wYXRoLCAnLS1uYW1lJywgY2VydF9uYW1lXQotKyAg ICAgICAgICAgIHJldHVybmNvZGUsIHN0ZG91dCwgc3RkZXJyID0gcnVuX2NtZChjbWQsIGNoZWNr PUZhbHNlKQotKyAgICAgICAgICAgICMgU2hvdWxkIGZhaWwgYmVjYXVzZSBjZXJ0IGFscmVhZHkg ZXhpc3RzCi0rICAgICAgICAgICAgYXNzZXJ0IHJldHVybmNvZGUgIT0gMCBvciAnYWxyZWFkeSBl eGlzdHMnIGluIHN0ZGVyci5sb3dlcigpCi0rCi0rICAgICAgICAgICAgIyBUcnkgdG8gYWRkIHdp dGggLS1mb3JjZSBmbGFnIChpZiBzdXBwb3J0ZWQpCi0rICAgICAgICAgICAgY21kID0gZHNjb25m X2Jhc2UgKyBbJ2FkZCcsICctLWZpbGUnLCBwZW1fcGF0aCwgJy0tbmFtZScsIGNlcnRfbmFtZSwg Jy0tZm9yY2UnXQotKyAgICAgICAgICAgIHJldHVybmNvZGUsIHN0ZG91dCwgc3RkZXJyID0gcnVu X2NtZChjbWQsIGNoZWNrPUZhbHNlKQotKyAgICAgICAgICAgICMgQ29tbWFuZCBtYXkgc3VjY2Vl ZCB3aXRoIGZvcmNlIG9yIG1heSBub3Qgc3VwcG9ydCAtLWZvcmNlIGZsYWcKLSsKLSsgICAgZmlu YWxseToKLSsgICAgICAgICMgQ2xlYW51cAotKyAgICAgICAgY21kID0gZHNjb25mX2Jhc2UgKyBb J2RlbCcsIGNlcnRfbmFtZV0KLSsgICAgICAgIHJ1bl9jbWQoY21kLCBjaGVjaz1GYWxzZSkKLSsg ICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKHBlbV9wYXRoKToKLSsgICAgICAgICAgICBvcy51bmxp bmsocGVtX3BhdGgpCi0rCi0rCi0rZGVmIHRlc3RfZHNjb25mX2pzb25fdGV4dF9vdXRwdXRfY29u c2lzdGVuY3koc2V0dXBfdGxzKToKLSsgICAgIiIiVGVzdCBKU09OIHZzIHRleHQgb3V0cHV0IGNv bnNpc3RlbmN5IGZvciBsaXN0L2dldCBjb21tYW5kcyB2aWEgc3VicHJvY2VzcwotKwotKyAgICA6 aWQ6IGExYTJhM2E0LTAwMDEtMDAwMS0wMDAxLTAwMDAwMDAwMDAxOAotKyAgICA6c2V0dXA6IFN0 YW5kYWxvbmUgSW5zdGFuY2Ugd2l0aCBUTFMKLSsgICAgOnN0ZXBzOgotKyAgICAgICAgMS4gR2V0 IHNlY3VyaXR5IGNvbmZpZyBpbiB0ZXh0IGFuZCBKU09OIGZvcm1hdAotKyAgICAgICAgMi4gQ29t cGFyZSB0aGF0IGVzc2VudGlhbCBkYXRhIGlzIGluIGJvdGgKLSsgICAgICAgIDMuIExpc3QgY2Vy dGlmaWNhdGVzIGluIHRleHQgYW5kIEpTT04gZm9ybWF0Ci0rICAgICAgICA0LiBDb21wYXJlIHRo YXQgY2VydGlmaWNhdGVzIGFwcGVhciBpbiBib3RoCi0rICAgICAgICA1LiBHZXQgY2VydGlmaWNh dGUgZGV0YWlscyBpbiB0ZXh0IGFuZCBKU09OIGZvcm1hdAotKyAgICAgICAgNi4gVmVyaWZ5IGNv bnNpc3RlbmN5Ci0rICAgIDpleHBlY3RlZHJlc3VsdHM6Ci0rICAgICAgICAxLiBCb3RoIGZvcm1h dHMgcmV0dXJuIGRhdGEKLSsgICAgICAgIDIuIEVzc2VudGlhbCBzZWN1cml0eSBhdHRyaWJ1dGVz IGFwcGVhciBpbiBib3RoCi0rICAgICAgICAzLiBCb3RoIGZvcm1hdHMgcmV0dXJuIGNlcnRpZmlj YXRlcwotKyAgICAgICAgNC4gU2FtZSBjZXJ0aWZpY2F0ZXMgYXBwZWFyIGluIGJvdGgKLSsgICAg ICAgIDUuIEJvdGggZm9ybWF0cyByZXR1cm4gZGV0YWlscwotKyAgICAgICAgNi4gRGF0YSBpcyBj b25zaXN0ZW50IGJldHdlZW4gZm9ybWF0cwotKyAgICAiIiIKLSsgICAgaW5zdCA9IHNldHVwX3Rs cy5zdGFuZGFsb25lCi0rCi0rICAgICMgVGVzdCAxOiBTZWN1cml0eSBnZXQgLSB0ZXh0IHZzIEpT T04KLSsgICAgY21kX3RleHQgPSBbJ2RzY29uZicsIGluc3Quc2VydmVyaWQsICdzZWN1cml0eScs ICdnZXQnXQotKyAgICByZXR1cm5jb2RlLCBzdGRvdXRfdGV4dCwgc3RkZXJyID0gcnVuX2NtZChj bWRfdGV4dCkKLSsgICAgYXNzZXJ0IHJldHVybmNvZGUgPT0gMAotKwotKyAgICBjbWRfanNvbiA9 IFsnZHNjb25mJywgaW5zdC5zZXJ2ZXJpZCwgJy0tanNvbicsICdzZWN1cml0eScsICdnZXQnXQot KyAgICByZXR1cm5jb2RlLCBzdGRvdXRfanNvbiwgc3RkZXJyID0gcnVuX2NtZChjbWRfanNvbikK LSsgICAgYXNzZXJ0IHJldHVybmNvZGUgPT0gMAotKyAgICBqc29uX2RhdGEgPSBqc29uLmxvYWRz KHN0ZG91dF9qc29uKQotKyAgICBhc3NlcnQgJ3R5cGUnIGluIGpzb25fZGF0YSBvciAnaXRlbXMn IGluIGpzb25fZGF0YSBvciAnYXR0cnMnIGluIGpzb25fZGF0YQotKwotKyAgICAjIFRlc3QgMjog Q2VydGlmaWNhdGUgbGlzdCAtIHRleHQgdnMgSlNPTgotKyAgICBjbWRfdGV4dCA9IFsnZHNjb25m JywgaW5zdC5zZXJ2ZXJpZCwgJ3NlY3VyaXR5JywgJ2NlcnRpZmljYXRlJywgJ2xpc3QnXQotKyAg ICByZXR1cm5jb2RlLCBzdGRvdXRfdGV4dCwgc3RkZXJyID0gcnVuX2NtZChjbWRfdGV4dCkKLSsg ICAgYXNzZXJ0IHJldHVybmNvZGUgPT0gMAotKwotKyAgICBjbWRfanNvbiA9IFsnZHNjb25mJywg aW5zdC5zZXJ2ZXJpZCwgJy0tanNvbicsICdzZWN1cml0eScsICdjZXJ0aWZpY2F0ZScsICdsaXN0 J10KLSsgICAgcmV0dXJuY29kZSwgc3Rkb3V0X2pzb24sIHN0ZGVyciA9IHJ1bl9jbWQoY21kX2pz b24pCi0rICAgIGFzc2VydCByZXR1cm5jb2RlID09IDAKLSsgICAganNvbl9kYXRhID0ganNvbi5s b2FkcyhzdGRvdXRfanNvbikKLSsgICAgYXNzZXJ0IGlzaW5zdGFuY2UoanNvbl9kYXRhLCAoZGlj dCwgbGlzdCkpCi0rCi0rICAgICMgVmVyaWZ5IFNlcnZlci1DZXJ0IGFwcGVhcnMgaW4gYm90aAot KyAgICBhc3NlcnQgJ1NlcnZlci1DZXJ0JyBpbiBzdGRvdXRfdGV4dAotKyAgICBqc29uX3N0ciA9 IGpzb24uZHVtcHMoanNvbl9kYXRhKQotKyAgICBhc3NlcnQgJ1NlcnZlci1DZXJ0JyBpbiBqc29u X3N0cgotKwotKyAgICAjIFRlc3QgMzogQ2VydGlmaWNhdGUgZ2V0IC0gdGV4dCB2cyBKU09OCi0r ICAgIGNtZF90ZXh0ID0gWydkc2NvbmYnLCBpbnN0LnNlcnZlcmlkLCAnc2VjdXJpdHknLCAnY2Vy dGlmaWNhdGUnLCAnZ2V0JywgJ1NlcnZlci1DZXJ0J10KLSsgICAgcmV0dXJuY29kZSwgc3Rkb3V0 X3RleHQsIHN0ZGVyciA9IHJ1bl9jbWQoY21kX3RleHQpCi0rICAgIGFzc2VydCByZXR1cm5jb2Rl ID09IDAKLSsKLSsgICAgY21kX2pzb24gPSBbJ2RzY29uZicsIGluc3Quc2VydmVyaWQsICctLWpz b24nLCAnc2VjdXJpdHknLCAnY2VydGlmaWNhdGUnLCAnZ2V0JywgJ1NlcnZlci1DZXJ0J10KLSsg ICAgcmV0dXJuY29kZSwgc3Rkb3V0X2pzb24sIHN0ZGVyciA9IHJ1bl9jbWQoY21kX2pzb24sIGNo ZWNrPUZhbHNlKQotKyAgICAjIEpTT04gZm9ybWF0IG1heSBub3QgYmUgc3VwcG9ydGVkIGZvciB0 aGlzIGNvbW1hbmQsIGNoZWNrIGlmIGl0IHN1Y2NlZWRzCi0rICAgIGlmIHJldHVybmNvZGUgPT0g MDoKLSsgICAgICAgIGpzb25fZGF0YSA9IGpzb24ubG9hZHMoc3Rkb3V0X2pzb24pCi0rICAgICAg ICBhc3NlcnQgaXNpbnN0YW5jZShqc29uX2RhdGEsIGRpY3QpCi0rCi0rCi0rZGVmIHRlc3RfZHNj dGxfdGxzX2Vycm9yX21lc3NhZ2VzKHRvcG8pOgotKyAgICAiIiJUZXN0IHRoYXQgZHNjdGwgdGxz IGNvbW1hbmRzIHJldHVybiBtZWFuaW5nZnVsIGVycm9yIG1lc3NhZ2VzIHZpYSBzdWJwcm9jZXNz Ci0rCi0rICAgIDppZDogYjFiMmIzYjQtMDAwMi0wMDAyLTAwMDItMDAwMDAwMDAwMDA4Ci0rICAg IDpzZXR1cDogU3RhbmRhbG9uZSBJbnN0YW5jZQotKyAgICA6c3RlcHM6Ci0rICAgICAgICAxLiBU cnkgdG8gZ2VuZXJhdGUgQ1NSIHdpdGggbWFsZm9ybWVkIHN1YmplY3QKLSsgICAgICAgIDIuIFRy eSB0byByZW1vdmUgbm9uLWV4aXN0ZW50IGNlcnRpZmljYXRlCi0rICAgICAgICAzLiBUcnkgdG8g ZXhwb3J0IG5vbi1leGlzdGVudCBjZXJ0aWZpY2F0ZQotKyAgICAgICAgNC4gVmVyaWZ5IGVycm9y IG1lc3NhZ2VzIGFyZSBtZWFuaW5nZnVsCi0rICAgIDpleHBlY3RlZHJlc3VsdHM6Ci0rICAgICAg ICAxLiBDU1IgZ2VuZXJhdGlvbiBmYWlscyB3aXRoIG1lYW5pbmdmdWwgZXJyb3IKLSsgICAgICAg IDIuIFJlbW92ZSBmYWlscyB3aXRoIG1lYW5pbmdmdWwgZXJyb3IKLSsgICAgICAgIDMuIEV4cG9y dCBmYWlscyB3aXRoIG1lYW5pbmdmdWwgZXJyb3IKLSsgICAgICAgIDQuIE5vIGJhcmUgZXJyb3Ig Y29kZXMgbGlrZSAnMjU1JyBpbiBvdXRwdXQKLSsgICAgIiIiCi0rICAgIGluc3QgPSB0b3BvLnN0 YW5kYWxvbmUKLSsKLSsgICAgIyBUZXN0IDE6IE1hbGZvcm1lZCBzdWJqZWN0IGluIENTUiBnZW5l cmF0aW9uCi0rICAgIGNtZCA9IFsKLSsgICAgICAgICdkc2N0bCcsCi0rICAgICAgICBpbnN0LnNl cnZlcmlkLAotKyAgICAgICAgJ3RscycsCi0rICAgICAgICAnZ2VuZXJhdGUtc2VydmVyLWNlcnQt Y3NyJywKLSsgICAgICAgICctcycsICdJTlZBTElEX1NVQkpFQ1QnCi0rICAgIF0KLSsgICAgcmV0 dXJuY29kZSwgc3Rkb3V0LCBzdGRlcnIgPSBydW5fY21kKGNtZCwgY2hlY2s9RmFsc2UpCi0rICAg IGFzc2VydCByZXR1cm5jb2RlICE9IDAKLSsgICAgIyBTaG91bGQgaGF2ZSBlcnJvciB0ZXh0LCBu b3QganVzdCAnMjU1JwotKyAgICBjb21iaW5lZF9vdXRwdXQgPSBzdGRvdXQgKyBzdGRlcnIKLSsg ICAgaWYgJzI1NScgaW4gY29tYmluZWRfb3V0cHV0OgotKyAgICAgICAgYXNzZXJ0ICdpbXByb3Bl cmx5IGZvcm1hdHRlZCcgaW4gY29tYmluZWRfb3V0cHV0Lmxvd2VyKCkgb3IgJ2ludmFsaWQnIGlu IGNvbWJpbmVkX291dHB1dC5sb3dlcigpCi0rCi0rICAgICMgVGVzdCAyOiBSZW1vdmUgbm9uLWV4 aXN0ZW50IGNlcnRpZmljYXRlCi0rICAgIGNtZCA9IFsKLSsgICAgICAgICdkc2N0bCcsCi0rICAg ICAgICBpbnN0LnNlcnZlcmlkLAotKyAgICAgICAgJ3RscycsCi0rICAgICAgICAncmVtb3ZlLWNl cnQnLAotKyAgICAgICAgJ05PTkVYSVNURU5UX0NFUlRfMTIzNDUnCi0rICAgIF0KLSsgICAgcmV0 dXJuY29kZSwgc3Rkb3V0LCBzdGRlcnIgPSBydW5fY21kKGNtZCwgY2hlY2s9RmFsc2UpCi0rICAg IGFzc2VydCByZXR1cm5jb2RlICE9IDAKLSsgICAgY29tYmluZWRfb3V0cHV0ID0gc3Rkb3V0ICsg c3RkZXJyCi0rICAgIGlmICcyNTUnIGluIGNvbWJpbmVkX291dHB1dDoKLSsgICAgICAgIGFzc2Vy dCAnbm90IGZvdW5kJyBpbiBjb21iaW5lZF9vdXRwdXQubG93ZXIoKSBvciAnY291bGQgbm90IGZp bmQnIGluIGNvbWJpbmVkX291dHB1dC5sb3dlcigpCi0rCi0rICAgICMgVGVzdCAzOiBFeHBvcnQg bm9uLWV4aXN0ZW50IGNlcnRpZmljYXRlCi0rICAgIHdpdGggdGVtcGZpbGUuTmFtZWRUZW1wb3Jh cnlGaWxlKG1vZGU9J3cnLCBkZWxldGU9RmFsc2UsIHN1ZmZpeD0nLnBlbScpIGFzIGY6Ci0rICAg ICAgICBleHBvcnRfcGF0aCA9IGYubmFtZQotKwotKyAgICB0cnk6Ci0rICAgICAgICBjbWQgPSBb Ci0rICAgICAgICAgICAgJ2RzY3RsJywKLSsgICAgICAgICAgICBpbnN0LnNlcnZlcmlkLAotKyAg ICAgICAgICAgICd0bHMnLAotKyAgICAgICAgICAgICdleHBvcnQtY2VydCcsCi0rICAgICAgICAg ICAgJy0tb3V0cHV0LWZpbGUnLAotKyAgICAgICAgICAgIGV4cG9ydF9wYXRoLAotKyAgICAgICAg ICAgICdOT05FWElTVEVOVF9DRVJUXzEyMzQ1JwotKyAgICAgICAgXQotKyAgICAgICAgcmV0dXJu Y29kZSwgc3Rkb3V0LCBzdGRlcnIgPSBydW5fY21kKGNtZCwgY2hlY2s9RmFsc2UpCi0rICAgICAg ICBhc3NlcnQgcmV0dXJuY29kZSAhPSAwCi0rICAgICAgICBjb21iaW5lZF9vdXRwdXQgPSBzdGRv dXQgKyBzdGRlcnIKLSsgICAgICAgIGlmICcyNTUnIGluIGNvbWJpbmVkX291dHB1dDoKLSsgICAg ICAgICAgICBhc3NlcnQgJ25vdCBmb3VuZCcgaW4gY29tYmluZWRfb3V0cHV0Lmxvd2VyKCkgb3Ig J2NvdWxkIG5vdCBmaW5kJyBpbiBjb21iaW5lZF9vdXRwdXQubG93ZXIoKQotKyAgICBmaW5hbGx5 OgotKyAgICAgICAgaWYgb3MucGF0aC5leGlzdHMoZXhwb3J0X3BhdGgpOgotKyAgICAgICAgICAg IG9zLnVubGluayhleHBvcnRfcGF0aCkKLSsKLSsKLStkZWYgdGVzdF9kc2NvbmZfY2VydGlmaWNh dGVfYmFja2VuZF9jb25zaXN0ZW5jeShzZXR1cF90bHMpOgotKyAgICAiIiJUZXN0IGJhY2tlbmQg Y29uc2lzdGVuY3kgYmV0d2VlbiBEeW5hbWljQ2VydHMgYW5kIE5zc1NzbCB2aWEgc3VicHJvY2Vz cwotKwotKyAgICA6aWQ6IGExYTJhM2E0LTAwMDEtMDAwMS0wMDAxLTAwMDAwMDAwMDAxOQotKyAg ICA6c2V0dXA6IFN0YW5kYWxvbmUgSW5zdGFuY2Ugd2l0aCBUTFMKLSsgICAgOnN0ZXBzOgotKyAg ICAgICAgMS4gTGlzdCBjZXJ0aWZpY2F0ZXMgdXNpbmcgZHNjb25mCi0rICAgICAgICAyLiBWZXJp ZnkgU2VydmVyLUNlcnQgYXBwZWFycyAoZnJvbSBOc3NTc2wgYmFja2VuZCkKLSsgICAgICAgIDMu IENoZWNrIGlmIGR5bmFtaWMgY2VydGlmaWNhdGVzIGJhY2tlbmQgaXMgYWNjZXNzaWJsZQotKyAg ICAgICAgNC4gVmVyaWZ5IGNvbnNpc3RlbmN5IG9mIGNlcnRpZmljYXRlIGRhdGEKLSsgICAgOmV4 cGVjdGVkcmVzdWx0czoKLSsgICAgICAgIDEuIENlcnRpZmljYXRlIGxpc3Qgc3VjY2VlZHMKLSsg ICAgICAgIDIuIFNlcnZlci1DZXJ0IGlzIHByZXNlbnQKLSsgICAgICAgIDMuIEJhY2tlbmQgaXMg YWNjZXNzaWJsZQotKyAgICAgICAgNC4gRGF0YSBpcyBjb25zaXN0ZW50Ci0rICAgICIiIgotKyAg ICBpbnN0ID0gc2V0dXBfdGxzLnN0YW5kYWxvbmUKLSsKLSsgICAgIyBMaXN0IGNlcnRpZmljYXRl cwotKyAgICBjbWQgPSBbJ2RzY29uZicsIGluc3Quc2VydmVyaWQsICdzZWN1cml0eScsICdjZXJ0 aWZpY2F0ZScsICdsaXN0J10KLSsgICAgcmV0dXJuY29kZSwgc3Rkb3V0LCBzdGRlcnIgPSBydW5f Y21kKGNtZCkKLSsgICAgYXNzZXJ0IHJldHVybmNvZGUgPT0gMAotKyAgICBhc3NlcnQgJ1NlcnZl ci1DZXJ0JyBpbiBzdGRvdXQKLSsKLSsgICAgIyBHZXQgY2VydGlmaWNhdGUgZGV0YWlscwotKyAg ICBjbWQgPSBbJ2RzY29uZicsIGluc3Quc2VydmVyaWQsICdzZWN1cml0eScsICdjZXJ0aWZpY2F0 ZScsICdnZXQnLCAnU2VydmVyLUNlcnQnXQotKyAgICByZXR1cm5jb2RlLCBzdGRvdXQsIHN0ZGVy ciA9IHJ1bl9jbWQoY21kKQotKyAgICBhc3NlcnQgcmV0dXJuY29kZSA9PSAwCi0rCi0rICAgICMg VmVyaWZ5IHdlIGdldCBtZWFuaW5nZnVsIGNlcnRpZmljYXRlIGluZm9ybWF0aW9uCi0rICAgIGFz c2VydCAnU2VydmVyLUNlcnQnIGluIHN0ZG91dCBvciAnQ2VydGlmaWNhdGUnIGluIHN0ZG91dAot KwotKyAgICAjIExpc3QgQ0EgY2VydGlmaWNhdGVzCi0rICAgIGNtZCA9IFsnZHNjb25mJywgaW5z dC5zZXJ2ZXJpZCwgJ3NlY3VyaXR5JywgJ2NhLWNlcnRpZmljYXRlJywgJ2xpc3QnXQotKyAgICBy ZXR1cm5jb2RlLCBzdGRvdXQsIHN0ZGVyciA9IHJ1bl9jbWQoY21kKQotKyAgICBhc3NlcnQgcmV0 dXJuY29kZSA9PSAwCi0rCi0rICAgICMgVGhlIG91dHB1dCBzaG91bGQgYmUgY29uc2lzdGVudCB3 aGV0aGVyIGFjY2Vzc2VkIHZpYSBOc3NTc2wgb3IgRHluYW1pY0NlcnRzIGJhY2tlbmQKLSsKLSsK LStkZWYgdGVzdF9kc2N0bF90bHNfcGtjczEyX3Bhc3N3b3JkX3NjZW5hcmlvcyhzZXR1cF90bHMp OgotKyAgICAiIiJUZXN0IFBLQ1MjMTIgaW1wb3J0IHdpdGggdmFyaW91cyBwYXNzd29yZCBzY2Vu YXJpb3MgdmlhIHN1YnByb2Nlc3MKLSsKLSsgICAgOmlkOiBiMWIyYjNiNC0wMDAyLTAwMDItMDAw Mi0wMDAwMDAwMDAwMDkKLSsgICAgOnNldHVwOiBTdGFuZGFsb25lIEluc3RhbmNlIHdpdGggVExT Ci0rICAgIDpzdGVwczoKLSsgICAgICAgIDEuIFRyeSB0byBpbXBvcnQgUEtDUyMxMiB3aXRoIHdy b25nIHBhc3N3b3JkCi0rICAgICAgICAyLiBUcnkgdG8gaW1wb3J0IFBLQ1MjMTIgd2l0aCBtaXNz aW5nIHBhc3N3b3JkCi0rICAgICAgICAzLiBUcnkgdG8gaW1wb3J0IFBLQ1MjMTIgd2l0aCBlbXB0 eSBwYXNzd29yZCB3aGVuIG9uZSBpcyByZXF1aXJlZAotKyAgICAgICAgNC4gVmVyaWZ5IGFwcHJv cHJpYXRlIGVycm9yIG1lc3NhZ2VzCi0rICAgIDpleHBlY3RlZHJlc3VsdHM6Ci0rICAgICAgICAx LiBXcm9uZyBwYXNzd29yZCBmYWlscyB3aXRoIG1lYW5pbmdmdWwgZXJyb3IKLSsgICAgICAgIDIu IE1pc3NpbmcgcGFzc3dvcmQgZmFpbHMgd2l0aCBtZWFuaW5nZnVsIGVycm9yCi0rICAgICAgICAz LiBFbXB0eSBwYXNzd29yZCBmYWlscyB3aXRoIG1lYW5pbmdmdWwgZXJyb3IKLSsgICAgICAgIDQu IEVycm9yIG1lc3NhZ2VzIGluZGljYXRlIHBhc3N3b3JkIGlzc3Vlcywgbm90IGJhcmUgZXJyb3Ig Y29kZXMKLSsgICAgIiIiCi0rICAgIGluc3QgPSBzZXR1cF90bHMuc3RhbmRhbG9uZQotKwotKyAg ICAjIENyZWF0ZSBhIGR1bW15IFBLQ1MjMTItbGlrZSBmaWxlIChub3QgYSByZWFsIG9uZSwganVz dCBmb3IgdGVzdGluZyBlcnJvciBoYW5kbGluZykKLSsgICAgd2l0aCB0ZW1wZmlsZS5OYW1lZFRl bXBvcmFyeUZpbGUobW9kZT0nd2InLCBkZWxldGU9RmFsc2UsIHN1ZmZpeD0nLnAxMicpIGFzIGY6 Ci0rICAgICAgICAjIFdyaXRlIHNvbWUgYnl0ZXMgdGhhdCBsb29rIGxpa2UgUEtDUyMxMiBoZWFk ZXIgYnV0IGFyZW4ndCB2YWxpZAotKyAgICAgICAgZi53cml0ZShiJ1x4MzBceDgyJykgICMgQVNO LjEgU0VRVUVOQ0UgdGFnCi0rICAgICAgICBmLndyaXRlKGInTk9UX0FfVkFMSURfUEtDUzEyX0ZJ TEUnKQotKyAgICAgICAgcDEyX3BhdGggPSBmLm5hbWUKLSsKLSsgICAgdHJ5OgotKyAgICAgICAg IyBUZXN0IDE6IFRyeSBpbXBvcnQgd2l0aCB3cm9uZyBwYXNzd29yZAotKyAgICAgICAgY21kID0g WwotKyAgICAgICAgICAgICdkc2N0bCcsCi0rICAgICAgICAgICAgaW5zdC5zZXJ2ZXJpZCwKLSsg ICAgICAgICAgICAndGxzJywKLSsgICAgICAgICAgICAnaW1wb3J0LXNlcnZlci1rZXktY2VydCcs Ci0rICAgICAgICAgICAgcDEyX3BhdGgsCi0rICAgICAgICAgICAgcDEyX3BhdGggICMgVXNpbmcg c2FtZSBmaWxlIGFzIGJvdGgga2V5IGFuZCBjZXJ0IGZvciB0ZXN0aW5nCi0rICAgICAgICBdCi0r ICAgICAgICByZXR1cm5jb2RlLCBzdGRvdXQsIHN0ZGVyciA9IHJ1bl9jbWQoY21kLCBjaGVjaz1G YWxzZSkKLSsgICAgICAgIGFzc2VydCByZXR1cm5jb2RlICE9IDAKLSsgICAgICAgIGNvbWJpbmVk X291dHB1dCA9IHN0ZG91dCArIHN0ZGVycgotKyAgICAgICAgIyBTaG91bGQgZ2V0IGVycm9yIGFi b3V0IHByaXZhdGUga2V5IG9yIGZpbGUgZm9ybWF0LCBub3QgYmFyZSAnMjU1JwotKyAgICAgICAg aWYgJzI1NScgaW4gY29tYmluZWRfb3V0cHV0OgotKyAgICAgICAgICAgIGFzc2VydCAoJ3ByaXZh dGUga2V5JyBpbiBjb21iaW5lZF9vdXRwdXQubG93ZXIoKSBvcgotKyAgICAgICAgICAgICAgICAg ICAgJ3Bhc3N3b3JkJyBpbiBjb21iaW5lZF9vdXRwdXQubG93ZXIoKSBvcgotKyAgICAgICAgICAg ICAgICAgICAgJ3BrY3MnIGluIGNvbWJpbmVkX291dHB1dC5sb3dlcigpIG9yCi0rICAgICAgICAg ICAgICAgICAgICAnaW52YWxpZCcgaW4gY29tYmluZWRfb3V0cHV0Lmxvd2VyKCkpCi0rCi0rICAg IGZpbmFsbHk6Ci0rICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhwMTJfcGF0aCk6Ci0rICAgICAg ICAgICAgb3MudW5saW5rKHAxMl9wYXRoKQotKwotKwotK2RlZiB0ZXN0X2RzY29uZl9keW5hbWlj X2NlcnRpZmljYXRlc19hdHRyaWJ1dGVzKHNldHVwX3Rscyk6Ci0rICAgICIiIlRlc3QgZHluYW1p YyBjZXJ0aWZpY2F0ZXMgYXR0cmlidXRlcyBhbmQgdGltZXN0YW1wIGhhbmRsaW5nIHZpYSBzdWJw cm9jZXNzCi0rCi0rICAgIDppZDogYTFhMmEzYTQtMDAwMS0wMDAxLTAwMDEtMDAwMDAwMDAwMDIw Ci0rICAgIDpzZXR1cDogU3RhbmRhbG9uZSBJbnN0YW5jZSB3aXRoIFRMUwotKyAgICA6c3RlcHM6 Ci0rICAgICAgICAxLiBMaXN0IGNlcnRpZmljYXRlcyBpbiBKU09OIGZvcm1hdAotKyAgICAgICAg Mi4gQ2hlY2sgZm9yIGR5bmFtaWMgY2VydGlmaWNhdGUgYXR0cmlidXRlcwotKyAgICAgICAgMy4g VmVyaWZ5IHRpbWVzdGFtcCBmb3JtYXQgaWYgcHJlc2VudAotKyAgICAgICAgNC4gQ2hlY2sgY2Vy dGlmaWNhdGUgbWV0YWRhdGEgKHN1YmplY3QsIGlzc3VlciwgZXRjLikKLSsgICAgOmV4cGVjdGVk cmVzdWx0czoKLSsgICAgICAgIDEuIENlcnRpZmljYXRlIGxpc3QgcmV0dXJucyB2YWxpZCBKU09O Ci0rICAgICAgICAyLiBFeHBlY3RlZCBhdHRyaWJ1dGVzIGFyZSBwcmVzZW50Ci0rICAgICAgICAz LiBUaW1lc3RhbXBzIGFyZSBwcm9wZXJseSBmb3JtYXR0ZWQKLSsgICAgICAgIDQuIE1ldGFkYXRh IGlzIGFjY2Vzc2libGUgYW5kIHZhbGlkCi0rICAgICIiIgotKyAgICBpbnN0ID0gc2V0dXBfdGxz LnN0YW5kYWxvbmUKLSsKLSsgICAgIyBHZXQgY2VydGlmaWNhdGUgbGlzdCBpbiBKU09OIGZvcm1h dAotKyAgICBjbWQgPSBbJ2RzY29uZicsIGluc3Quc2VydmVyaWQsICctLWpzb24nLCAnc2VjdXJp dHknLCAnY2VydGlmaWNhdGUnLCAnbGlzdCddCi0rICAgIHJldHVybmNvZGUsIHN0ZG91dCwgc3Rk ZXJyID0gcnVuX2NtZChjbWQpCi0rICAgIGFzc2VydCByZXR1cm5jb2RlID09IDAKLSsKLSsgICAg anNvbl9kYXRhID0ganNvbi5sb2FkcyhzdGRvdXQpCi0rICAgIGFzc2VydCBpc2luc3RhbmNlKGpz b25fZGF0YSwgKGRpY3QsIGxpc3QpKQotKwotKyAgICAjIEdldCBkZXRhaWxzIG9mIGEgc3BlY2lm aWMgY2VydGlmaWNhdGUgaW4gSlNPTiBpZiBzdXBwb3J0ZWQKLSsgICAgY21kID0gWydkc2NvbmYn LCBpbnN0LnNlcnZlcmlkLCAnLS1qc29uJywgJ3NlY3VyaXR5JywgJ2NlcnRpZmljYXRlJywgJ2dl dCcsICdTZXJ2ZXItQ2VydCddCi0rICAgIHJldHVybmNvZGUsIHN0ZG91dCwgc3RkZXJyID0gcnVu X2NtZChjbWQsIGNoZWNrPUZhbHNlKQotKwotKyAgICBpZiByZXR1cm5jb2RlID09IDA6Ci0rICAg ICAgICBqc29uX2RhdGEgPSBqc29uLmxvYWRzKHN0ZG91dCkKLSsKLSsgICAgICAgICMgQ2hlY2sg Zm9yIGNvbW1vbiBjZXJ0aWZpY2F0ZSBhdHRyaWJ1dGVzCi0rICAgICAgICAjIFRoZSBleGFjdCBz dHJ1Y3R1cmUgZGVwZW5kcyBvbiB3aGV0aGVyIER5bmFtaWNDZXJ0cyBvciBOc3NTc2wgYmFja2Vu ZCBpcyB1c2VkCi0rICAgICAgICBqc29uX3N0ciA9IGpzb24uZHVtcHMoanNvbl9kYXRhKS5sb3dl cigpCi0rCi0rICAgICAgICAjIExvb2sgZm9yIGNlcnRpZmljYXRlLXJlbGF0ZWQgYXR0cmlidXRl cyAoY2FzZS1pbnNlbnNpdGl2ZSkKLSsgICAgICAgICMgVGhlc2UgbWlnaHQgYmUgaW4gZGlmZmVy ZW50IGZvcm1hdHMgZGVwZW5kaW5nIG9uIHRoZSBiYWNrZW5kCi0rICAgICAgICBhc3NlcnQgKCdz dWJqZWN0JyBpbiBqc29uX3N0ciBvcgotKyAgICAgICAgICAgICAgICAnaXNzdWVyJyBpbiBqc29u X3N0ciBvcgotKyAgICAgICAgICAgICAgICAnY2VydCcgaW4ganNvbl9zdHIgb3IKLSsgICAgICAg ICAgICAgICAgJ25pY2tuYW1lJyBpbiBqc29uX3N0cikKLSsKLSsKLStkZWYgdGVzdF9kc2NvbmZf c2VjdXJpdHlfbXVsdGlwbGVfb3BlcmF0aW9ucyhzZXR1cF90bHMpOgotKyAgICAiIiJUZXN0IG11 bHRpcGxlIHNlY3VyaXR5IG9wZXJhdGlvbnMgaW4gc2VxdWVuY2UgdmlhIHN1YnByb2Nlc3MKLSsK LSsgICAgOmlkOiBhMWEyYTNhNC0wMDAxLTAwMDEtMDAwMS0wMDAwMDAwMDAwMjEKLSsgICAgOnNl dHVwOiBTdGFuZGFsb25lIEluc3RhbmNlIHdpdGggVExTCi0rICAgIDpzdGVwczoKLSsgICAgICAg IDEuIERpc2FibGUgc2VjdXJpdHkKLSsgICAgICAgIDIuIEVuYWJsZSBzZWN1cml0eQotKyAgICAg ICAgMy4gRGlzYWJsZSBSU0EKLSsgICAgICAgIDQuIEVuYWJsZSBSU0EKLSsgICAgICAgIDUuIEdl dCBzZWN1cml0eSBjb25maWcgYWZ0ZXIgZWFjaCBjaGFuZ2UKLSsgICAgICAgIDYuIFZlcmlmeSBz dGF0ZSBjaGFuZ2VzIGFyZSByZWZsZWN0ZWQKLSsgICAgOmV4cGVjdGVkcmVzdWx0czoKLSsgICAg ICAgIDEuIERpc2FibGUgc3VjY2VlZHMKLSsgICAgICAgIDIuIEVuYWJsZSBzdWNjZWVkcwotKyAg ICAgICAgMy4gUlNBIGRpc2FibGUgc3VjY2VlZHMKLSsgICAgICAgIDQuIFJTQSBlbmFibGUgc3Vj Y2VlZHMKLSsgICAgICAgIDUuIEVhY2ggZ2V0IHJldHVybnMgY3VycmVudCBzdGF0ZQotKyAgICAg ICAgNi4gQ2hhbmdlcyBhcmUgcHJvcGVybHkgcmVmbGVjdGVkCi0rICAgICIiIgotKyAgICBpbnN0 ID0gc2V0dXBfdGxzLnN0YW5kYWxvbmUKLSsgICAgZHNjb25mX2Jhc2UgPSBbJ2RzY29uZicsIGlu c3Quc2VydmVyaWQsICdzZWN1cml0eSddCi0rCi0rICAgICMgRW5hYmxlIHNlY3VyaXR5Ci0rICAg IGNtZCA9IGRzY29uZl9iYXNlICsgWydlbmFibGUnXQotKyAgICByZXR1cm5jb2RlLCBzdGRvdXQs IHN0ZGVyciA9IHJ1bl9jbWQoY21kKQotKyAgICBhc3NlcnQgcmV0dXJuY29kZSA9PSAwCi0rCi0r ICAgICMgVmVyaWZ5IGVuYWJsZWQKLSsgICAgY21kID0gZHNjb25mX2Jhc2UgKyBbJ2dldCddCi0r ICAgIHJldHVybmNvZGUsIHN0ZG91dCwgc3RkZXJyID0gcnVuX2NtZChjbWQpCi0rICAgIGFzc2Vy dCAnbnNzbGFwZC1zZWN1cml0eTogb24nIGluIHN0ZG91dAotKwotKyAgICAjIERpc2FibGUgc2Vj dXJpdHkKLSsgICAgY21kID0gZHNjb25mX2Jhc2UgKyBbJ2Rpc2FibGUnXQotKyAgICByZXR1cm5j b2RlLCBzdGRvdXQsIHN0ZGVyciA9IHJ1bl9jbWQoY21kKQotKyAgICBhc3NlcnQgcmV0dXJuY29k ZSA9PSAwCi0rCi0rICAgICMgVmVyaWZ5IGRpc2FibGVkCi0rICAgIGNtZCA9IGRzY29uZl9iYXNl ICsgWydnZXQnXQotKyAgICByZXR1cm5jb2RlLCBzdGRvdXQsIHN0ZGVyciA9IHJ1bl9jbWQoY21k KQotKyAgICBhc3NlcnQgJ25zc2xhcGQtc2VjdXJpdHk6IG9mZicgaW4gc3Rkb3V0Ci0rCi0rICAg ICMgUmUtZW5hYmxlIGZvciBSU0EgdGVzdHMKLSsgICAgY21kID0gZHNjb25mX2Jhc2UgKyBbJ2Vu YWJsZSddCi0rICAgIHJldHVybmNvZGUsIHN0ZG91dCwgc3RkZXJyID0gcnVuX2NtZChjbWQpCi0r ICAgIGFzc2VydCByZXR1cm5jb2RlID09IDAKLSsKLSsgICAgIyBFbmFibGUgUlNBCi0rICAgIGNt ZCA9IGRzY29uZl9iYXNlICsgWydyc2EnLCAnZW5hYmxlJ10KLSsgICAgcmV0dXJuY29kZSwgc3Rk b3V0LCBzdGRlcnIgPSBydW5fY21kKGNtZCkKLSsgICAgYXNzZXJ0IHJldHVybmNvZGUgPT0gMAot KwotKyAgICAjIFZlcmlmeSBSU0EgaXMgb24KLSsgICAgY21kID0gZHNjb25mX2Jhc2UgKyBbJ3Jz YScsICdnZXQnXQotKyAgICByZXR1cm5jb2RlLCBzdGRvdXQsIHN0ZGVyciA9IHJ1bl9jbWQoY21k KQotKyAgICBhc3NlcnQgJ29uJyBpbiBzdGRvdXQubG93ZXIoKQotKwotKyAgICAjIERpc2FibGUg UlNBCi0rICAgIGNtZCA9IGRzY29uZl9iYXNlICsgWydyc2EnLCAnZGlzYWJsZSddCi0rICAgIHJl dHVybmNvZGUsIHN0ZG91dCwgc3RkZXJyID0gcnVuX2NtZChjbWQpCi0rICAgIGFzc2VydCByZXR1 cm5jb2RlID09IDAKLSsKLSsgICAgIyBWZXJpZnkgUlNBIGlzIG9mZgotKyAgICBjbWQgPSBkc2Nv bmZfYmFzZSArIFsncnNhJywgJ2dldCddCi0rICAgIHJldHVybmNvZGUsIHN0ZG91dCwgc3RkZXJy ID0gcnVuX2NtZChjbWQpCi0rICAgIGFzc2VydCAnb2ZmJyBpbiBzdGRvdXQubG93ZXIoKQotKwot KwotK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0rICAgICMgUnVuIGlzb2xhdGVkCi0rICAg ICMgLXMgZm9yIERFQlVHIG1vZGUKLSsgICAgQ1VSUkVOVF9GSUxFID0gb3MucGF0aC5yZWFscGF0 aChfX2ZpbGVfXykKLSsgICAgcHl0ZXN0Lm1haW4oWyItcyIsICItdiIsIENVUlJFTlRfRklMRV0p Ci1kaWZmIC0tZ2l0IGEvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL3Rscy9keW5hbWljX2NlcnRp ZmljYXRlc190ZXN0LnB5IGIvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL3Rscy9keW5hbWljX2Nl cnRpZmljYXRlc190ZXN0LnB5Ci1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMDAw Li45Y2ZhY2VmYzIKLS0tLSAvZGV2L251bGwKLSsrKyBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRl cy90bHMvZHluYW1pY19jZXJ0aWZpY2F0ZXNfdGVzdC5weQotQEAgLTAsMCArMSwxNDM2IEBACi0r IyAtLS0gQkVHSU4gQ09QWVJJR0hUIEJMT0NLIC0tLQotKyMgQ29weXJpZ2h0IChDKSAyMDI2IFJl ZCBIYXQsIEluYy4KLSsjIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0rIwotKyMgTGljZW5zZTogR1BM ICh2ZXJzaW9uIDMgb3IgYW55IGxhdGVyIHZlcnNpb24pLgotKyMgU2VlIExJQ0VOU0UgZm9yIGRl dGFpbHMuCi0rIyAtLS0gRU5EIENPUFlSSUdIVCBCTE9DSyAtLS0KLSsjCi0rIiIiCi0rQ29tcHJl aGVuc2l2ZSB0ZXN0IHN1aXRlIGZvciBEeW5hbWljIENlcnRpZmljYXRlcyBmZWF0dXJlCi0rVGVz dHMgY2VydGlmaWNhdGUgbWV0YWRhdGEgZXh0cmFjdGlvbiwgdHJ1c3QgZmxhZ3MsIG11bHRpLXRv a2VuIHN1cHBvcnQsCi0rdmVyaWZpY2F0aW9uLCBhbmQgZXJyb3IgaGFuZGxpbmcgdXNpbmcgbGli Mzg5IER5bmFtaWNDZXJ0cyBjbGFzc2VzLgotKyIiIgotKwotK2ltcG9ydCBvcwotK2ltcG9ydCBz eXMKLStpbXBvcnQgYmFzZTY0Ci0raW1wb3J0IGNvcHkKLStpbXBvcnQgZGF0ZXRpbWUKLStpbXBv cnQgaXBhZGRyZXNzCi0raW1wb3J0IGxkYXAKLStpbXBvcnQgbGRhcHVybAotK2ltcG9ydCBsb2dn aW5nCi0raW1wb3J0IHB5dGVzdAotK2ltcG9ydCBzZWNyZXRzCi0raW1wb3J0IHNodXRpbAotK2lt cG9ydCBzb2NrZXQKLStpbXBvcnQgc3VicHJvY2VzcwotK2ltcG9ydCB0ZXh0d3JhcAotK2ltcG9y dCB0aW1lCi0rZnJvbSBjb250ZXh0bGliIGltcG9ydCBjb250ZXh0bWFuYWdlciwgc3VwcHJlc3MK LStmcm9tIGNyeXB0b2dyYXBoeS5oYXptYXQuYmFja2VuZHMgaW1wb3J0IGRlZmF1bHRfYmFja2Vu ZAotK2Zyb20gY3J5cHRvZ3JhcGh5Lmhhem1hdC5wcmltaXRpdmVzLmFzeW1tZXRyaWMgaW1wb3J0 IGVjLCByc2EKLStmcm9tIGNyeXB0b2dyYXBoeS5oYXptYXQucHJpbWl0aXZlcyBpbXBvcnQgaGFz aGVzLCBzZXJpYWxpemF0aW9uCi0rZnJvbSBjcnlwdG9ncmFwaHkuaGF6bWF0LnByaW1pdGl2ZXMu c2VyaWFsaXphdGlvbiBpbXBvcnQgcGtjczEyCi0rZnJvbSBjcnlwdG9ncmFwaHkgaW1wb3J0IHg1 MDkKLStmcm9tIGNyeXB0b2dyYXBoeS54NTA5Lm9pZCBpbXBvcnQgTmFtZU9JRCwgRXh0ZW5zaW9u T0lECi0rZnJvbSBsaWIzODkuY2xpX2Jhc2UgaW1wb3J0IEZha2VBcmdzCi0rZnJvbSBsaWIzODku X2NvbnN0YW50cyBpbXBvcnQgRE5fRE0sIFBXX0RNCi0rZnJvbSBsaWIzODkuZHNlbGRpZiBpbXBv cnQgRFNFbGRpZgotK2Zyb20gbGliMzg5LnRvcG9sb2dpZXMgaW1wb3J0IHRvcG9sb2d5X3N0IGFz IHRvcG8KLStmcm9tIGxpYjM4OS51dGlscyBpbXBvcnQgZHNfaXNfb2xkZXIsIGVuc3VyZV9zdHIs IHBlbV90b19kZXIsIHJwbV9pc19vbGRlcgotK2Zyb20gbGliMzg5LmR5bmNlcnRzIGltcG9ydCAo Ci0rICAgIER5bmFtaWNDZXJ0cywgRHluYW1pY0NlcnQsIERZTkNFUlRfU1VGRklYLAotKyAgICBE WUNBVFRSX0NOLCBEWUNBVFRSX0NFUlRERVIsIERZQ0FUVFJfUEtFWURFUiApCi0rZnJvbSB0ZW1w ZmlsZSBpbXBvcnQgTmFtZWRUZW1wb3JhcnlGaWxlCi0rCi0rcHl0ZXN0bWFyayA9IHB5dGVzdC5t YXJrLnRpZXIxCi0rCi0rREVCVUdHSU5HID0gb3MuZ2V0ZW52KCJERUJVR0dJTkciLCBkZWZhdWx0 PUZhbHNlKQotK2lmIERFQlVHR0lORzoKLSsgICAgbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18p LnNldExldmVsKGxvZ2dpbmcuREVCVUcpCi0rZWxzZToKLSsgICAgbG9nZ2luZy5nZXRMb2dnZXIo X19uYW1lX18pLnNldExldmVsKGxvZ2dpbmcuSU5GTykKLStsb2cgPSBsb2dnaW5nLmdldExvZ2dl cihfX25hbWVfXykKLSsKLSt0bHNfZW5hYmxlZCA9IEZhbHNlCi0rCi0rCi0rZGVmIHV0Y2RhdGUo KToKLSsgICAgcmV0dXJuIGRhdGV0aW1lLmRhdGV0aW1lLnV0Y25vdygpCi0rCi0rZGVmIGZpeF9j cmFzaF9pc3N1ZV83MjI3KGluc3QpOgotKyAgICAiIiJXb3JrIGFyb3VuZCB0byBhdm9pZCBucy1z bGFwZCBjcmFzaCBpbiBDRVJUX1ZlcmlmeUNlcnRpZmljYXRlTm93KCkiIiIKLSsgICAgaW5zdC5y ZXN0YXJ0KCkKLSsKLSsKLStjbGFzcyBSU0FfQ2VydGlmaWNhdGU6Ci0rICAgICIiIlJTQSBDZXJ0 aWZpY2F0ZSBHZW5lcmF0b3IgZm9yIHRlc3RpbmcgUlNBIGtleSBzdXBwb3J0IiIiCi0rCi0rICAg IFBLQ1MxMl9QQVNTV09SRCA9ICJyc2ErcGFzc3dvcmQiCi0rCi0rICAgIGRlZiBfX2luaXRfXyhz ZWxmKToKLSsgICAgICAgIHNlbGYubmlja25hbWUgPSBOb25lCi0rICAgICAgICBzZWxmLnRydXN0 ID0gTm9uZQotKyAgICAgICAgc2VsZi5uYW1pbmdBdHRycyA9IHt9Ci0rICAgICAgICBzZWxmLnN1 YmplY3QgPSBOb25lCi0rICAgICAgICBzZWxmLnZhbGlkaXR5X2RheXMgPSAzNjUKLSsgICAgICAg IHNlbGYuaXNDQSA9IEZhbHNlCi0rICAgICAgICBzZWxmLmlzUm9vdCA9IEZhbHNlCi0rCi0rICAg IEBzdGF0aWNtZXRob2QKLSsgICAgZGVmIGdlbmVyYXRlUm9vdENBKG5pY2tuYW1lLCBuYW1pbmdB dHRyaWJ1dGVzPXt9LCB2YWxpZGl0eV9kYXlzPTM2NTApOgotKyAgICAgICAgIiIiR2VuZXJhdGUg YSBzZWxmLXNpZ25lZCBSU0EgUm9vdCBDQSBjZXJ0aWZpY2F0ZSIiIgotKyAgICAgICAgY2EgPSBS U0FfQ2VydGlmaWNhdGUoKQotKyAgICAgICAgY2EubmFtaW5nQXR0cnMgPSBuYW1pbmdBdHRyaWJ1 dGVzCi0rICAgICAgICBjYS52YWxpZGl0eV9kYXlzID0gdmFsaWRpdHlfZGF5cwotKyAgICAgICAg Y2EuaXNDQSA9IFRydWUKLSsgICAgICAgIGNhLmlzUm9vdCA9IFRydWUKLSsgICAgICAgIGNhLm5p Y2tuYW1lID0gbmlja25hbWUKLSsgICAgICAgIGNhLmZpeE5hbWluZ0F0dHJpYnV0ZXMoKQotKyAg ICAgICAgY2Euc3ViamVjdCA9IHg1MDkuTmFtZShbeDUwOS5OYW1lQXR0cmlidXRlKGssIHYpIGZv ciBrLCB2IGluIGNhLm5hbWluZ0F0dHJzLml0ZW1zKCldKQotKyAgICAgICAgY2EuaXNzdWVyID0g Y2Euc3ViamVjdAotKyAgICAgICAgY2EudHJ1c3QgPSAnQ1QsLCcKLSsKLSsgICAgICAgICMgR2Vu ZXJhdGUgUlNBIDIwNDgtYml0IHByaXZhdGUga2V5Ci0rICAgICAgICBjYS5wa2V5ID0gcnNhLmdl bmVyYXRlX3ByaXZhdGVfa2V5KAotKyAgICAgICAgICAgIHB1YmxpY19leHBvbmVudD02NTUzNywK LSsgICAgICAgICAgICBrZXlfc2l6ZT0yMDQ4LAotKyAgICAgICAgICAgIGJhY2tlbmQ9ZGVmYXVs dF9iYWNrZW5kKCkKLSsgICAgICAgICkKLSsgICAgICAgIGNhLmNlcnQgPSAoCi0rICAgICAgICAg ICAgeDUwOS5DZXJ0aWZpY2F0ZUJ1aWxkZXIoKQotKyAgICAgICAgICAgIC5zdWJqZWN0X25hbWUo Y2Euc3ViamVjdCkKLSsgICAgICAgICAgICAuaXNzdWVyX25hbWUoY2EuaXNzdWVyKQotKyAgICAg ICAgICAgIC5wdWJsaWNfa2V5KGNhLnBrZXkucHVibGljX2tleSgpKQotKyAgICAgICAgICAgIC5z ZXJpYWxfbnVtYmVyKHg1MDkucmFuZG9tX3NlcmlhbF9udW1iZXIoKSkKLSsgICAgICAgICAgICAu bm90X3ZhbGlkX2JlZm9yZSh1dGNkYXRlKCkpCi0rICAgICAgICAgICAgLm5vdF92YWxpZF9hZnRl cih1dGNkYXRlKCkgKyBkYXRldGltZS50aW1lZGVsdGEoZGF5cz12YWxpZGl0eV9kYXlzKSkKLSsg ICAgICAgICAgICAuYWRkX2V4dGVuc2lvbigKLSsgICAgICAgICAgICAgICAgeDUwOS5CYXNpY0Nv bnN0cmFpbnRzKGNhPVRydWUsIHBhdGhfbGVuZ3RoPTApLAotKyAgICAgICAgICAgICAgICBjcml0 aWNhbD1UcnVlLAotKyAgICAgICAgICAgICkKLSsgICAgICAgICAgICAuYWRkX2V4dGVuc2lvbigK LSsgICAgICAgICAgICAgICAgeDUwOS5LZXlVc2FnZSgKLSsgICAgICAgICAgICAgICAgICAgIGRp Z2l0YWxfc2lnbmF0dXJlPVRydWUsCi0rICAgICAgICAgICAgICAgICAgICBrZXlfY2VydF9zaWdu PVRydWUsCi0rICAgICAgICAgICAgICAgICAgICBjcmxfc2lnbj1UcnVlLAotKyAgICAgICAgICAg ICAgICAgICAga2V5X2VuY2lwaGVybWVudD1GYWxzZSwKLSsgICAgICAgICAgICAgICAgICAgIGNv bnRlbnRfY29tbWl0bWVudD1GYWxzZSwKLSsgICAgICAgICAgICAgICAgICAgIGRhdGFfZW5jaXBo ZXJtZW50PUZhbHNlLAotKyAgICAgICAgICAgICAgICAgICAga2V5X2FncmVlbWVudD1GYWxzZSwK LSsgICAgICAgICAgICAgICAgICAgIGVuY2lwaGVyX29ubHk9RmFsc2UsCi0rICAgICAgICAgICAg ICAgICAgICBkZWNpcGhlcl9vbmx5PUZhbHNlLAotKyAgICAgICAgICAgICAgICApLAotKyAgICAg ICAgICAgICAgICBjcml0aWNhbD1UcnVlLAotKyAgICAgICAgICAgICkKLSsgICAgICAgICAgICAu YWRkX2V4dGVuc2lvbigKLSsgICAgICAgICAgICAgICAgeDUwOS5TdWJqZWN0S2V5SWRlbnRpZmll ci5mcm9tX3B1YmxpY19rZXkoY2EucGtleS5wdWJsaWNfa2V5KCkpLAotKyAgICAgICAgICAgICAg ICBjcml0aWNhbD1GYWxzZSwKLSsgICAgICAgICAgICApCi0rICAgICAgICAgICAgLnNpZ24oY2Eu cGtleSwgaGFzaGVzLlNIQTI1NigpLCBkZWZhdWx0X2JhY2tlbmQoKSkKLSsgICAgICAgICkKLSsg ICAgICAgIHJldHVybiBjYQotKwotKyAgICBkZWYgZml4TmFtaW5nQXR0cmlidXRlKHNlbGYsIG5h bWUsIHZkZWYpOgotKyAgICAgICAgaWYgbmFtZSBub3QgaW4gc2VsZi5uYW1pbmdBdHRyczoKLSsg ICAgICAgICAgICBzZWxmLm5hbWluZ0F0dHJzW25hbWVdID0gdmRlZgotKwotKyAgICBkZWYgZml4 TmFtaW5nQXR0cmlidXRlcyhzZWxmKToKLSsgICAgICAgIHNlbGYuZml4TmFtaW5nQXR0cmlidXRl KE5hbWVPSUQuQ09NTU9OX05BTUUsIHNlbGYubmlja25hbWUpCi0rICAgICAgICBzZWxmLmZpeE5h bWluZ0F0dHJpYnV0ZShOYW1lT0lELkNPVU5UUllfTkFNRSwgJ1VTJykKLSsgICAgICAgIHNlbGYu Zml4TmFtaW5nQXR0cmlidXRlKE5hbWVPSUQuT1JHQU5JWkFUSU9OX05BTUUsICdUZXN0IE9yZ2Fu aXphdGlvbicpCi0rCi0rICAgIGRlZiBnZW5lcmF0ZUNlcnRpZmljYXRlKHNlbGYsIG5pY2tuYW1l LCBuYW1pbmdBdHRyaWJ1dGVzPXt9LCBob3N0bmFtZT1Ob25lLCB2YWxpZGl0eV9kYXlzPTM2NSk6 Ci0rICAgICAgICAiIiJHZW5lcmF0ZSBhbiBSU0Egc2VydmVyIGNlcnRpZmljYXRlIiIiCi0rICAg ICAgICBjZXJ0ID0gUlNBX0NlcnRpZmljYXRlKCkKLSsgICAgICAgIGNlcnQubmFtaW5nQXR0cnMg PSBuYW1pbmdBdHRyaWJ1dGVzCi0rICAgICAgICBjZXJ0LnZhbGlkaXR5X2RheXMgPSB2YWxpZGl0 eV9kYXlzCi0rICAgICAgICBjZXJ0LmlzQ0EgPSBGYWxzZQotKyAgICAgICAgY2VydC5pc1Jvb3Qg PSBGYWxzZQotKyAgICAgICAgY2VydC5uaWNrbmFtZSA9IG5pY2tuYW1lCi0rICAgICAgICBjZXJ0 LmZpeE5hbWluZ0F0dHJpYnV0ZXMoKQotKyAgICAgICAgY2VydC5zdWJqZWN0ID0geDUwOS5OYW1l KFt4NTA5Lk5hbWVBdHRyaWJ1dGUoaywgdikgZm9yIGssIHYgaW4gY2VydC5uYW1pbmdBdHRycy5p dGVtcygpXSkKLSsgICAgICAgIGNlcnQuaXNzdWVyID0gc2VsZi5zdWJqZWN0Ci0rICAgICAgICBj ZXJ0LnRydXN0ID0gJ3UsdSx1JwotKwotKyAgICAgICAgaWYgaG9zdG5hbWUgaXMgTm9uZToKLSsg ICAgICAgICAgICBob3N0bmFtZSA9IHNvY2tldC5nZXRob3N0bmFtZSgpCi0rCi0rICAgICAgICBz YW5fbGlzdCA9IFsKLSsgICAgICAgICAgICB4NTA5LkROU05hbWUoaG9zdG5hbWUpLAotKyAgICAg ICAgICAgIHg1MDkuRE5TTmFtZSgnbG9jYWxob3N0JyksCi0rICAgICAgICAgICAgeDUwOS5JUEFk ZHJlc3MoaXBhZGRyZXNzLmlwX2FkZHJlc3MoIjEyNy4wLjAuMSIpKSwKLSsgICAgICAgICAgICB4 NTA5LklQQWRkcmVzcyhpcGFkZHJlc3MuaXBfYWRkcmVzcygiOjoxIikpCi0rICAgICAgICBdCi0r Ci0rICAgICAgICBjZXJ0LnBrZXkgPSByc2EuZ2VuZXJhdGVfcHJpdmF0ZV9rZXkoCi0rICAgICAg ICAgICAgcHVibGljX2V4cG9uZW50PTY1NTM3LAotKyAgICAgICAgICAgIGtleV9zaXplPTIwNDgs Ci0rICAgICAgICAgICAgYmFja2VuZD1kZWZhdWx0X2JhY2tlbmQoKQotKyAgICAgICAgKQotKyAg ICAgICAgY2VydC5jZXJ0ID0gKAotKyAgICAgICAgICAgIHg1MDkuQ2VydGlmaWNhdGVCdWlsZGVy KCkKLSsgICAgICAgICAgICAuc3ViamVjdF9uYW1lKGNlcnQuc3ViamVjdCkKLSsgICAgICAgICAg ICAuaXNzdWVyX25hbWUoY2VydC5pc3N1ZXIpCi0rICAgICAgICAgICAgLnB1YmxpY19rZXkoY2Vy dC5wa2V5LnB1YmxpY19rZXkoKSkKLSsgICAgICAgICAgICAuc2VyaWFsX251bWJlcih4NTA5LnJh bmRvbV9zZXJpYWxfbnVtYmVyKCkpCi0rICAgICAgICAgICAgLm5vdF92YWxpZF9iZWZvcmUodXRj ZGF0ZSgpKQotKyAgICAgICAgICAgIC5ub3RfdmFsaWRfYWZ0ZXIodXRjZGF0ZSgpICsgZGF0ZXRp bWUudGltZWRlbHRhKGRheXM9dmFsaWRpdHlfZGF5cykpCi0rICAgICAgICAgICAgLmFkZF9leHRl bnNpb24oCi0rICAgICAgICAgICAgICAgIHg1MDkuQmFzaWNDb25zdHJhaW50cyhjYT1GYWxzZSwg cGF0aF9sZW5ndGg9Tm9uZSksCi0rICAgICAgICAgICAgICAgIGNyaXRpY2FsPVRydWUsCi0rICAg ICAgICAgICAgKQotKyAgICAgICAgICAgIC5hZGRfZXh0ZW5zaW9uKAotKyAgICAgICAgICAgICAg ICB4NTA5LktleVVzYWdlKAotKyAgICAgICAgICAgICAgICAgICAgZGlnaXRhbF9zaWduYXR1cmU9 VHJ1ZSwKLSsgICAgICAgICAgICAgICAgICAgIGtleV9lbmNpcGhlcm1lbnQ9VHJ1ZSwKLSsgICAg ICAgICAgICAgICAgICAgIGtleV9jZXJ0X3NpZ249RmFsc2UsCi0rICAgICAgICAgICAgICAgICAg ICBjcmxfc2lnbj1GYWxzZSwKLSsgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfY29tbWl0bWVu dD1GYWxzZSwKLSsgICAgICAgICAgICAgICAgICAgIGRhdGFfZW5jaXBoZXJtZW50PUZhbHNlLAot KyAgICAgICAgICAgICAgICAgICAga2V5X2FncmVlbWVudD1GYWxzZSwKLSsgICAgICAgICAgICAg ICAgICAgIGVuY2lwaGVyX29ubHk9RmFsc2UsCi0rICAgICAgICAgICAgICAgICAgICBkZWNpcGhl cl9vbmx5PUZhbHNlLAotKyAgICAgICAgICAgICAgICApLAotKyAgICAgICAgICAgICAgICBjcml0 aWNhbD1UcnVlLAotKyAgICAgICAgICAgICkKLSsgICAgICAgICAgICAuYWRkX2V4dGVuc2lvbigK LSsgICAgICAgICAgICAgICAgeDUwOS5FeHRlbmRlZEtleVVzYWdlKFsKLSsgICAgICAgICAgICAg ICAgICAgIHg1MDkub2lkLkV4dGVuZGVkS2V5VXNhZ2VPSUQuU0VSVkVSX0FVVEgsCi0rICAgICAg ICAgICAgICAgICAgICB4NTA5Lm9pZC5FeHRlbmRlZEtleVVzYWdlT0lELkNMSUVOVF9BVVRILAot KyAgICAgICAgICAgICAgICBdKSwKLSsgICAgICAgICAgICAgICAgY3JpdGljYWw9VHJ1ZSwKLSsg ICAgICAgICAgICApCi0rICAgICAgICAgICAgLmFkZF9leHRlbnNpb24oCi0rICAgICAgICAgICAg ICAgIHg1MDkuU3ViamVjdEFsdGVybmF0aXZlTmFtZShzYW5fbGlzdCksCi0rICAgICAgICAgICAg ICAgIGNyaXRpY2FsPUZhbHNlLAotKyAgICAgICAgICAgICkKLSsgICAgICAgICAgICAuYWRkX2V4 dGVuc2lvbigKLSsgICAgICAgICAgICAgICAgeDUwOS5TdWJqZWN0S2V5SWRlbnRpZmllci5mcm9t X3B1YmxpY19rZXkoY2VydC5wa2V5LnB1YmxpY19rZXkoKSksCi0rICAgICAgICAgICAgICAgIGNy aXRpY2FsPUZhbHNlLAotKyAgICAgICAgICAgICkKLSsgICAgICAgICAgICAuYWRkX2V4dGVuc2lv bigKLSsgICAgICAgICAgICAgICAgeDUwOS5BdXRob3JpdHlLZXlJZGVudGlmaWVyLmZyb21faXNz dWVyX3B1YmxpY19rZXkoc2VsZi5wa2V5LnB1YmxpY19rZXkoKSksCi0rICAgICAgICAgICAgICAg IGNyaXRpY2FsPUZhbHNlLAotKyAgICAgICAgICAgICkKLSsgICAgICAgICAgICAuc2lnbihzZWxm LnBrZXksIGhhc2hlcy5TSEEyNTYoKSwgZGVmYXVsdF9iYWNrZW5kKCkpCi0rICAgICAgICApCi0r ICAgICAgICByZXR1cm4gY2VydAotKwotKyAgICBkZWYgc2F2ZV9wZW1fZmlsZShzZWxmLCBmaWxl bmFtZSk6Ci0rICAgICAgICAiIiJTYXZlIGNlcnRpZmljYXRlIGluIFBFTSBmb3JtYXQiIiIKLSsg ICAgICAgIHdpdGggb3BlbihmaWxlbmFtZSwgIndiIikgYXMgZjoKLSsgICAgICAgICAgICBmLndy aXRlKHNlbGYuY2VydC5wdWJsaWNfYnl0ZXMoc2VyaWFsaXphdGlvbi5FbmNvZGluZy5QRU0pKQot KwotKyAgICBkZWYgc2F2ZV9kZXJfZmlsZShzZWxmLCBmaWxlbmFtZSk6Ci0rICAgICAgICAiIiJT YXZlIGNlcnRpZmljYXRlIGluIERFUiBmb3JtYXQiIiIKLSsgICAgICAgIHdpdGggb3BlbihmaWxl bmFtZSwgIndiIikgYXMgZjoKLSsgICAgICAgICAgICBmLndyaXRlKHNlbGYuY2VydC5wdWJsaWNf Ynl0ZXMoc2VyaWFsaXphdGlvbi5FbmNvZGluZy5ERVIpKQotKwotKyAgICBkZWYgc2F2ZV9rZXlf ZGVyKHNlbGYsIGZpbGVuYW1lKToKLSsgICAgICAgICIiIlNhdmUgcHJpdmF0ZSBrZXkgaW4gUEtD UzggREVSIGZvcm1hdCIiIgotKyAgICAgICAgd2l0aCBvcGVuKGZpbGVuYW1lLCAid2IiKSBhcyBm OgotKyAgICAgICAgICAgIGYud3JpdGUoc2VsZi5wa2V5LnByaXZhdGVfYnl0ZXMoCi0rICAgICAg ICAgICAgICAgIGVuY29kaW5nPXNlcmlhbGl6YXRpb24uRW5jb2RpbmcuREVSLAotKyAgICAgICAg ICAgICAgICBmb3JtYXQ9c2VyaWFsaXphdGlvbi5Qcml2YXRlRm9ybWF0LlBLQ1M4LAotKyAgICAg ICAgICAgICAgICBlbmNyeXB0aW9uX2FsZ29yaXRobT1zZXJpYWxpemF0aW9uLk5vRW5jcnlwdGlv bigpCi0rICAgICAgICAgICAgKSkKLSsKLSsgICAgZGVmIHdyaXRlX3BrY3MxMl9maWxlKHNlbGYs IGZpbGVuYW1lLCBwdz1QS0NTMTJfUEFTU1dPUkQpOgotKyAgICAgICAgIiIiU2F2ZSBQS0NTMTIg Zm9ybWF0dGVkIGNlcnRpZmljYXRlIGFuZCBwcml2YXRlIGtleSIiIgotKyAgICAgICAgaWYgaXNp bnN0YW5jZShwdywgc3RyKToKLSsgICAgICAgICAgICBwdyA9IHB3LmVuY29kZSgpCi0rICAgICAg ICBpZiBwdyBpcyBOb25lIG9yIHB3ID09IGIiIjoKLSsgICAgICAgICAgICBlbmMgPSBzZXJpYWxp emF0aW9uLk5vRW5jcnlwdGlvbigpCi0rICAgICAgICBlbHNlOgotKyAgICAgICAgICAgIGVuYyA9 IHNlcmlhbGl6YXRpb24uQmVzdEF2YWlsYWJsZUVuY3J5cHRpb24ocHcpCi0rICAgICAgICB3aXRo IG9wZW4oZmlsZW5hbWUsICJ3YiIpIGFzIGY6Ci0rICAgICAgICAgICAgZi53cml0ZShwa2NzMTIu c2VyaWFsaXplX2tleV9hbmRfY2VydGlmaWNhdGVzKAotKyAgICAgICAgICAgICAgICBzZWxmLm5p Y2tuYW1lLmVuY29kZSgpLAotKyAgICAgICAgICAgICAgICBzZWxmLnBrZXksCi0rICAgICAgICAg ICAgICAgIHNlbGYuY2VydCwKLSsgICAgICAgICAgICAgICAgW10sCi0rICAgICAgICAgICAgICAg IGVuYwotKyAgICAgICAgICAgICkpCi0rCi0rICAgIGRlZiBzYXZlKHNlbGYsIGRpcm5hbWUpOgot KyAgICAgICAgIiIiU2F2ZSBhbGwgY2VydGlmaWNhdGUgZm9ybWF0cyIiIgotKyAgICAgICAgbmFt ZSA9IGYne2Rpcm5hbWV9L3tzZWxmLm5pY2tuYW1lfScKLSsgICAgICAgIHNlbGYucGVtID0gZiJ7 bmFtZX0ucGVtIgotKyAgICAgICAgc2VsZi5kZXIgPSBmIntuYW1lfS5kZXIiCi0rICAgICAgICBz ZWxmLmtkZXIgPSBmIntuYW1lfS1rZXkuZGVyIgotKyAgICAgICAgc2VsZi5wMTIgPSBmIntuYW1l fS5wMTIiCi0rICAgICAgICBzZWxmLnNhdmVfcGVtX2ZpbGUoc2VsZi5wZW0pCi0rICAgICAgICBz ZWxmLnNhdmVfZGVyX2ZpbGUoc2VsZi5kZXIpCi0rICAgICAgICBzZWxmLnNhdmVfa2V5X2Rlcihz ZWxmLmtkZXIpCi0rICAgICAgICBzZWxmLndyaXRlX3BrY3MxMl9maWxlKHNlbGYucDEyKQotKwot KwotK0BweXRlc3QuZml4dHVyZShzY29wZT0ibW9kdWxlIikKLStkZWYgc2V0dXBfdGxzKHRvcG8p OgotKyAgICAiIiJFbmFibGUgVExTIG9uIHRoZSBpbnN0YW5jZSIiIgotKyAgICBnbG9iYWwgdGxz X2VuYWJsZWQKLSsgICAgaW5zdCA9IHRvcG8uc3RhbmRhbG9uZQotKyAgICBpZiBub3QgdGxzX2Vu YWJsZWQ6Ci0rICAgICAgICBpbnN0LmVuYWJsZV90bHMoKQotKyAgICAgICAgdGxzX2VuYWJsZWQg PSBUcnVlCi0rICAgIHJldHVybiBpbnN0Ci0rCi0rCi0rZGVmIHRlc3RfY2VydGlmaWNhdGVfbWV0 YWRhdGFfZXh0cmFjdGlvbih0b3BvLCBzZXR1cF90bHMpOgotKyAgICAiIiJUZXN0IHRoYXQgY2Vy dGlmaWNhdGUgbWV0YWRhdGEgaXMgY29ycmVjdGx5IGV4dHJhY3RlZCBhbmQgZXhwb3NlZAotKwot KyAgICA6aWQ6IGExYjJjM2Q0LTExMTEtMjIyMi0zMzMzLTQ0NDQ0NDQ0NDQ0NAotKyAgICA6c2V0 dXA6IFN0YW5kYWxvbmUgSW5zdGFuY2Ugd2l0aCBUTFMgZW5hYmxlZAotKyAgICA6c3RlcHM6Ci0r ICAgICAgICAxLiBHZW5lcmF0ZSBSU0EgUm9vdCBDQSBjZXJ0aWZpY2F0ZQotKyAgICAgICAgMi4g QWRkIGNlcnRpZmljYXRlIGR5bmFtaWNhbGx5IHVzaW5nIER5bmFtaWNDZXJ0cwotKyAgICAgICAg My4gUmV0cmlldmUgY2VydGlmaWNhdGUgb2JqZWN0IGFuZCB2ZXJpZnkgYWxsIG1ldGFkYXRhIGF0 dHJpYnV0ZXMKLSsgICAgICAgIDQuIFZlcmlmeSBzdWJqZWN0IEROIGlzIGNvcnJlY3QKLSsgICAg ICAgIDUuIFZlcmlmeSBpc3N1ZXIgRE4gaXMgY29ycmVjdAotKyAgICAgICAgNi4gVmVyaWZ5IGlz Q0EgZmxhZyBpcyBUUlVFCi0rICAgICAgICA3LiBWZXJpZnkgaXNSb290Q0EgZmxhZyBpcyBUUlVF Ci0rICAgICAgICA4LiBWZXJpZnkga2V5IGFsZ29yaXRobSBpcyBSU0EKLSsgICAgICAgIDkuIFZl cmlmeSB0cnVzdCBmbGFncyBhcmUgcHJlc2VudAotKyAgICAgICAgMTAuIFZlcmlmeSB2YWxpZGl0 eSBkYXRlcyAobm90QmVmb3JlLCBub3RBZnRlcikKLSsgICAgICAgIDExLiBWZXJpZnkgc2VyaWFs IG51bWJlciBpcyBwcmVzZW50Ci0rICAgIDpleHBlY3RlZHJlc3VsdHM6Ci0rICAgICAgICAxLiBD ZXJ0aWZpY2F0ZSBnZW5lcmF0ZWQgc3VjY2Vzc2Z1bGx5Ci0rICAgICAgICAyLiBDZXJ0aWZpY2F0 ZSBhZGRlZCB3aXRob3V0IGVycm9yCi0rICAgICAgICAzLiBDZXJ0aWZpY2F0ZSBvYmplY3QgcmV0 cmlldmVkCi0rICAgICAgICA0LiBTdWJqZWN0IG1hdGNoZXMgZXhwZWN0ZWQgRE4KLSsgICAgICAg IDUuIElzc3VlciBtYXRjaGVzIHN1YmplY3QgKHNlbGYtc2lnbmVkKQotKyAgICAgICAgNi4gaXND QSBpcyBUUlVFCi0rICAgICAgICA3LiBpc1Jvb3RDQSBpcyBUUlVFCi0rICAgICAgICA4LiBLZXkg YWxnb3JpdGhtIGlzIFJTQQotKyAgICAgICAgOS4gVHJ1c3QgZmxhZ3MgYXJlIHByZXNlbnQKLSsg ICAgICAgIDEwLiBWYWxpZGl0eSBkYXRlcyBhcmUgd2l0aGluIGV4cGVjdGVkIHJhbmdlCi0rICAg ICAgICAxMS4gU2VyaWFsIG51bWJlciBpcyBwcmVzZW50IGFuZCBub24tZW1wdHkKLSsgICAgIiIi Ci0rICAgIGluc3QgPSBzZXR1cF90bHMKLSsgICAgZGlyID0gJy90bXAvZHluY2VydF9tZXRhZGF0 YV90ZXN0JwotKyAgICBvcy5tYWtlZGlycyhkaXIsIDBvNzAwLCBleGlzdF9vaz1UcnVlKQotKwot KyAgICB0cnk6Ci0rICAgICAgICAjIEdlbmVyYXRlIFJTQSBSb290IENBCi0rICAgICAgICBjYSA9 IFJTQV9DZXJ0aWZpY2F0ZS5nZW5lcmF0ZVJvb3RDQSgKLSsgICAgICAgICAgICAiVGVzdE1ldGFk YXRhQ0EiLAotKyAgICAgICAgICAgIG5hbWluZ0F0dHJpYnV0ZXM9ewotKyAgICAgICAgICAgICAg ICBOYW1lT0lELkNPTU1PTl9OQU1FOiAiVGVzdCBNZXRhZGF0YSBDQSIsCi0rICAgICAgICAgICAg ICAgIE5hbWVPSUQuQ09VTlRSWV9OQU1FOiAiVVMiLAotKyAgICAgICAgICAgICAgICBOYW1lT0lE Lk9SR0FOSVpBVElPTl9OQU1FOiAiVGVzdCBPcmciLAotKyAgICAgICAgICAgICAgICBOYW1lT0lE Lk9SR0FOSVpBVElPTkFMX1VOSVRfTkFNRTogIlRlc3RpbmcgVW5pdCIKLSsgICAgICAgICAgICB9 Ci0rICAgICAgICApCi0rICAgICAgICBjYS5zYXZlKGRpcikKLSsKLSsgICAgICAgICMgQWRkIGNl cnRpZmljYXRlIHVzaW5nIER5bmFtaWNDZXJ0cwotKyAgICAgICAgZHluY2VydHMgPSBEeW5hbWlj Q2VydHMoaW5zdCkKLSsgICAgICAgIGR5bmNlcnRzLmFkZF9jZXJ0KGNhLnBlbSwgY2Eubmlja25h bWUsIGNhPVRydWUpCi0rCi0rICAgICAgICAjIEdldCBjZXJ0aWZpY2F0ZSBvYmplY3QKLSsgICAg ICAgIGNlcnRfb2JqID0gZHluY2VydHMuZ2V0X2NlcnRfb2JqKGNhLm5pY2tuYW1lKQotKyAgICAg ICAgYXNzZXJ0IGNlcnRfb2JqIGlzIG5vdCBOb25lCi0rCi0rICAgICAgICAjIFZlcmlmeSBzdWJq ZWN0IGFuZCBpc3N1ZXIKLSsgICAgICAgIHN1YmplY3QgPSBjZXJ0X29iai5nZXRfYXR0cl92YWxf dXRmOF9sKCdkc0R5bmFtaWNDZXJ0aWZpY2F0ZVN1YmplY3QnKQotKyAgICAgICAgaXNzdWVyID0g Y2VydF9vYmouZ2V0X2F0dHJfdmFsX3V0ZjhfbCgnZHNEeW5hbWljQ2VydGlmaWNhdGVJc3N1ZXIn KQotKyAgICAgICAgbG9nLmluZm8oZiJTdWJqZWN0OiB7c3ViamVjdH0iKQotKyAgICAgICAgbG9n LmluZm8oZiJJc3N1ZXI6IHtpc3N1ZXJ9IikKLSsgICAgICAgIGFzc2VydCAiVGVzdCBNZXRhZGF0 YSBDQSIubG93ZXIoKSBpbiBzdWJqZWN0Ci0rICAgICAgICBhc3NlcnQgc3ViamVjdCA9PSBpc3N1 ZXIgICMgU2VsZi1zaWduZWQKLSsKLSsgICAgICAgICMgVmVyaWZ5IENBIGZsYWdzCi0rICAgICAg ICBpc19jYSA9IGNlcnRfb2JqLmdldF9hdHRyX3ZhbF91dGY4X2woJ2RzRHluYW1pY0NlcnRpZmlj YXRlSXNDQScpCi0rICAgICAgICBpc19yb290X2NhID0gY2VydF9vYmouZ2V0X2F0dHJfdmFsX3V0 ZjhfbCgnZHNEeW5hbWljQ2VydGlmaWNhdGVJc1Jvb3RDQScpCi0rICAgICAgICBsb2cuaW5mbyhm ImlzQ0E6IHtpc19jYX0iKQotKyAgICAgICAgbG9nLmluZm8oZiJpc1Jvb3RDQToge2lzX3Jvb3Rf Y2F9IikKLSsgICAgICAgIGFzc2VydCBpc19jYSA9PSAndHJ1ZScKLSsgICAgICAgIGFzc2VydCBp c19yb290X2NhID09ICd0cnVlJwotKwotKyAgICAgICAgIyBWZXJpZnkga2V5IGFsZ29yaXRobQot KyAgICAgICAga2V5X2FsZ28gPSBjZXJ0X29iai5nZXRfYXR0cl92YWxfdXRmOCgnZHNEeW5hbWlj Q2VydGlmaWNhdGVLZXlBbGdvcml0aG0nKQotKyAgICAgICAgbG9nLmluZm8oZiJLZXkgQWxnb3Jp dGhtOiB7a2V5X2FsZ299IikKLSsgICAgICAgIGFzc2VydCAnUlNBJyBpbiBrZXlfYWxnby51cHBl cigpCi0rCi0rICAgICAgICAjIFZlcmlmeSB0cnVzdCBmbGFncwotKyAgICAgICAgdHJ1c3RfZmxh Z3MgPSBjZXJ0X29iai5nZXRfYXR0cl92YWxfdXRmOCgnZHNEeW5hbWljQ2VydGlmaWNhdGVUcnVz dEZsYWdzJykKLSsgICAgICAgIGxvZy5pbmZvKGYiVHJ1c3QgRmxhZ3M6IHt0cnVzdF9mbGFnc30i KQotKyAgICAgICAgYXNzZXJ0IHRydXN0X2ZsYWdzIGlzIG5vdCBOb25lCi0rCi0rICAgICAgICAj IFZlcmlmeSB2YWxpZGl0eSBkYXRlcwotKyAgICAgICAgbm90X2JlZm9yZSA9IGNlcnRfb2JqLmdl dF9hdHRyX3ZhbF91dGY4KCdkc0R5bmFtaWNDZXJ0aWZpY2F0ZU5vdEJlZm9yZScpCi0rICAgICAg ICBub3RfYWZ0ZXIgPSBjZXJ0X29iai5nZXRfYXR0cl92YWxfdXRmOCgnZHNEeW5hbWljQ2VydGlm aWNhdGVOb3RBZnRlcicpCi0rICAgICAgICBsb2cuaW5mbyhmIk5vdCBCZWZvcmU6IHtub3RfYmVm b3JlfSIpCi0rICAgICAgICBsb2cuaW5mbyhmIk5vdCBBZnRlcjoge25vdF9hZnRlcn0iKQotKyAg ICAgICAgYXNzZXJ0IG5vdF9iZWZvcmUgaXMgbm90IE5vbmUKLSsgICAgICAgIGFzc2VydCBub3Rf YWZ0ZXIgaXMgbm90IE5vbmUKLSsKLSsgICAgICAgICMgVmVyaWZ5IHNlcmlhbCBudW1iZXIKLSsg ICAgICAgIHNlcmlhbCA9IGNlcnRfb2JqLmdldF9hdHRyX3ZhbF91dGY4KCdkc0R5bmFtaWNDZXJ0 aWZpY2F0ZVNlcmlhbE51bWJlcicpCi0rICAgICAgICBsb2cuaW5mbyhmIlNlcmlhbCBOdW1iZXI6 IHtzZXJpYWx9IikKLSsgICAgICAgIGFzc2VydCBzZXJpYWwgaXMgbm90IE5vbmUKLSsgICAgICAg IGFzc2VydCBsZW4oc2VyaWFsKSA+IDAKLSsKLSsgICAgICAgICMgQ2xlYW51cAotKyAgICAgICAg ZHluY2VydHMuZGVsX2NlcnQoY2Eubmlja25hbWUpCi0rCi0rICAgIGZpbmFsbHk6Ci0rICAgICAg ICBpZiBub3QgREVCVUdHSU5HOgotKyAgICAgICAgICAgIHNodXRpbC5ybXRyZWUoZGlyLCBpZ25v cmVfZXJyb3JzPVRydWUpCi0rCi0rCi0rZGVmIHRlc3Rfc3ViamVjdF9hbHRlcm5hdGl2ZV9uYW1l cyh0b3BvLCBzZXR1cF90bHMpOgotKyAgICAiIiJUZXN0IHRoYXQgU3ViamVjdCBBbHRlcm5hdGl2 ZSBOYW1lcyBhcmUgY29ycmVjdGx5IHBhcnNlZCBhbmQgZGlzcGxheWVkCi0rCi0rICAgIDppZDog YjJjM2Q0ZTUtMjIyMi0zMzMzLTQ0NDQtNTU1NTU1NTU1NTU1Ci0rICAgIDpzZXR1cDogU3RhbmRh bG9uZSBJbnN0YW5jZSB3aXRoIFRMUyBlbmFibGVkCi0rICAgIDpzdGVwczoKLSsgICAgICAgIDEu IEdlbmVyYXRlIHNlcnZlciBjZXJ0aWZpY2F0ZSB3aXRoIG11bHRpcGxlIFNBTnMgKEROUyBhbmQg SVApCi0rICAgICAgICAyLiBBZGQgY2VydGlmaWNhdGUgZHluYW1pY2FsbHkgdXNpbmcgRHluYW1p Y0NlcnRzCi0rICAgICAgICAzLiBSZXRyaWV2ZSBjZXJ0aWZpY2F0ZSBvYmplY3QKLSsgICAgICAg IDQuIFZlcmlmeSBkc0R5bmFtaWNDZXJ0aWZpY2F0ZVN1YmplY3RBbHROYW1lIGF0dHJpYnV0ZSBl eGlzdHMKLSsgICAgICAgIDUuIFZlcmlmeSBhbGwgRE5TIG5hbWVzIGFyZSBwcmVzZW50Ci0rICAg ICAgICA2LiBWZXJpZnkgYWxsIElQIGFkZHJlc3NlcyBhcmUgcHJlc2VudAotKyAgICA6ZXhwZWN0 ZWRyZXN1bHRzOgotKyAgICAgICAgMS4gQ2VydGlmaWNhdGUgZ2VuZXJhdGVkIHdpdGggU0FOcwot KyAgICAgICAgMi4gQ2VydGlmaWNhdGUgYWRkZWQgc3VjY2Vzc2Z1bGx5Ci0rICAgICAgICAzLiBD ZXJ0aWZpY2F0ZSBvYmplY3QgcmV0cmlldmVkCi0rICAgICAgICA0LiBTdWJqZWN0QWx0TmFtZSBh dHRyaWJ1dGUgZXhpc3RzCi0rICAgICAgICA1LiBETlMgbmFtZXMgYXJlIGNvcnJlY3RseSBwYXJz ZWQKLSsgICAgICAgIDYuIElQIGFkZHJlc3NlcyBhcmUgY29ycmVjdGx5IHBhcnNlZAotKyAgICAi IiIKLSsgICAgaW5zdCA9IHNldHVwX3RscwotKyAgICBkaXIgPSAnL3RtcC9keW5jZXJ0X3Nhbl90 ZXN0JwotKyAgICBvcy5tYWtlZGlycyhkaXIsIDBvNzAwLCBleGlzdF9vaz1UcnVlKQotKwotKyAg ICB0cnk6Ci0rICAgICAgICBjYSA9IFJTQV9DZXJ0aWZpY2F0ZS5nZW5lcmF0ZVJvb3RDQSgiVGVz dFNBTl9DQSIpCi0rICAgICAgICBjYS5zYXZlKGRpcikKLSsKLSsgICAgICAgICMgQWRkIENBIGZp cnN0Ci0rICAgICAgICBkeW5jZXJ0cyA9IER5bmFtaWNDZXJ0cyhpbnN0KQotKyAgICAgICAgZHlu Y2VydHMuYWRkX2NlcnQoY2EucGVtLCBjYS5uaWNrbmFtZSwgY2E9VHJ1ZSkKLSsKLSsgICAgICAg ICMgR2VuZXJhdGUgY2VydGlmaWNhdGUgd2l0aCBzcGVjaWZpYyBob3N0bmFtZQotKyAgICAgICAg Y2VydCA9IGNhLmdlbmVyYXRlQ2VydGlmaWNhdGUoIlRlc3RTQU5fQ2VydCIsIGhvc3RuYW1lPSJ0 ZXN0LmV4YW1wbGUuY29tIikKLSsgICAgICAgIGNlcnQuc2F2ZShkaXIpCi0rCi0rICAgICAgICAj IEFkZCBzZXJ2ZXIgY2VydGlmaWNhdGUgd2l0aCBwcml2YXRlIGtleQotKyAgICAgICAgZHluY2Vy dHMuYWRkX2NlcnQoY2VydC5wMTIsIGNlcnQubmlja25hbWUsIHBrY3MxMl9wYXNzd29yZD1SU0Ff Q2VydGlmaWNhdGUuUEtDUzEyX1BBU1NXT1JEKQotKwotKyAgICAgICAgIyBHZXQgY2VydGlmaWNh dGUgb2JqZWN0Ci0rICAgICAgICBjZXJ0X29iaiA9IGR5bmNlcnRzLmdldF9jZXJ0X29iaihjZXJ0 Lm5pY2tuYW1lKQotKyAgICAgICAgYXNzZXJ0IGNlcnRfb2JqIGlzIG5vdCBOb25lCi0rCi0rICAg ICAgICAjIFZlcmlmeSBTQU5zCi0rICAgICAgICBzYW5fdmFsdWVzID0gY2VydF9vYmouZ2V0X2F0 dHJfdmFsc191dGY4KCdkc0R5bmFtaWNDZXJ0aWZpY2F0ZVN1YmplY3RBbHROYW1lJykKLSsgICAg ICAgIGxvZy5pbmZvKGYiU3ViamVjdCBBbHRlcm5hdGl2ZSBOYW1lczoge3Nhbl92YWx1ZXN9IikK LSsgICAgICAgIGFzc2VydCBzYW5fdmFsdWVzIGlzIG5vdCBOb25lCi0rCi0rICAgICAgICAjIFZl cmlmeSBleHBlY3RlZCBTQU5zIGFyZSBwcmVzZW50Ci0rICAgICAgICBzYW5fc3RyID0gJyAnLmpv aW4oc2FuX3ZhbHVlcykKLSsgICAgICAgIGFzc2VydCAndGVzdC5leGFtcGxlLmNvbScgaW4gc2Fu X3N0ciBvciAnbG9jYWxob3N0JyBpbiBzYW5fc3RyCi0rICAgICAgICBhc3NlcnQgJzEyNy4wLjAu MScgaW4gc2FuX3N0ciBvciAnOjoxJyBpbiBzYW5fc3RyCi0rCi0rICAgICAgICAjIENsZWFudXAK LSsgICAgICAgIGR5bmNlcnRzLmRlbF9jZXJ0KGNhLm5pY2tuYW1lKQotKyAgICAgICAgZHluY2Vy dHMuZGVsX2NlcnQoY2VydC5uaWNrbmFtZSkKLSsKLSsgICAgZmluYWxseToKLSsgICAgICAgIGlm IG5vdCBERUJVR0dJTkc6Ci0rICAgICAgICAgICAgc2h1dGlsLnJtdHJlZShkaXIsIGlnbm9yZV9l cnJvcnM9VHJ1ZSkKLSsKLSsKLStkZWYgdGVzdF9wcml2YXRlX2tleV9kZXRlY3Rpb24odG9wbywg c2V0dXBfdGxzKToKLSsgICAgIiIiVGVzdCBkZXRlY3Rpb24gb2YgY2VydGlmaWNhdGVzIHdpdGgg YW5kIHdpdGhvdXQgcHJpdmF0ZSBrZXlzCi0rCi0rICAgIDppZDogYzNkNGU1ZjYtMzMzMy00NDQ0 LTU1NTUtNjY2NjY2NjY2NjY2Ci0rICAgIDpzZXR1cDogU3RhbmRhbG9uZSBJbnN0YW5jZSB3aXRo IFRMUyBlbmFibGVkCi0rICAgIDpzdGVwczoKLSsgICAgICAgIDEuIEFkZCBDQSBjZXJ0aWZpY2F0 ZSB3aXRob3V0IHByaXZhdGUga2V5Ci0rICAgICAgICAyLiBHZXQgY2VydGlmaWNhdGUgb2JqZWN0 IGFuZCB2ZXJpZnkgaGFzUHJpdmF0ZUtleSBpcyBGQUxTRQotKyAgICAgICAgMy4gQWRkIHNlcnZl ciBjZXJ0aWZpY2F0ZSB3aXRoIHByaXZhdGUga2V5Ci0rICAgICAgICA0LiBHZXQgY2VydGlmaWNh dGUgb2JqZWN0IGFuZCB2ZXJpZnkgaGFzUHJpdmF0ZUtleSBpcyBUUlVFCi0rICAgICAgICA1LiBW ZXJpZnkgaXNTZXJ2ZXJDZXJ0IGlzIFRSVUUgZm9yIHNlcnZlciBjZXJ0Ci0rICAgICAgICA2LiBW ZXJpZnkgaXNTZXJ2ZXJDZXJ0IGlzIEZBTFNFIGZvciBDQSBjZXJ0Ci0rICAgIDpleHBlY3RlZHJl c3VsdHM6Ci0rICAgICAgICAxLiBDQSBhZGRlZCBzdWNjZXNzZnVsbHkKLSsgICAgICAgIDIuIGhh c1ByaXZhdGVLZXkgaXMgRkFMU0UKLSsgICAgICAgIDMuIFNlcnZlciBjZXJ0IGFkZGVkIHN1Y2Nl c3NmdWxseQotKyAgICAgICAgNC4gaGFzUHJpdmF0ZUtleSBpcyBUUlVFCi0rICAgICAgICA1LiBT ZXJ2ZXIgY2VydCBwcm9wZXJseSBpZGVudGlmaWVkCi0rICAgICAgICA2LiBDQSBjZXJ0IG5vdCBp ZGVudGlmaWVkIGFzIHNlcnZlciBjZXJ0Ci0rICAgICIiIgotKyAgICBpbnN0ID0gc2V0dXBfdGxz Ci0rICAgIGRpciA9ICcvdG1wL2R5bmNlcnRfcHJpdmtleV90ZXN0JwotKyAgICBvcy5tYWtlZGly cyhkaXIsIDBvNzAwLCBleGlzdF9vaz1UcnVlKQotKwotKyAgICB0cnk6Ci0rICAgICAgICBjYSA9 IFJTQV9DZXJ0aWZpY2F0ZS5nZW5lcmF0ZVJvb3RDQSgiVGVzdFByaXZLZXlfQ0EiKQotKyAgICAg ICAgY2Euc2F2ZShkaXIpCi0rICAgICAgICBjZXJ0ID0gY2EuZ2VuZXJhdGVDZXJ0aWZpY2F0ZSgi VGVzdFByaXZLZXlfQ2VydCIpCi0rICAgICAgICBjZXJ0LnNhdmUoZGlyKQotKwotKyAgICAgICAg ZHluY2VydHMgPSBEeW5hbWljQ2VydHMoaW5zdCkKLSsKLSsgICAgICAgICMgQWRkIENBIHdpdGhv dXQgcHJpdmF0ZSBrZXkgKFBFTSBoYXMgbm8ga2V5KQotKyAgICAgICAgZHluY2VydHMuYWRkX2Nl cnQoY2EucGVtLCBjYS5uaWNrbmFtZSwgY2E9VHJ1ZSkKLSsKLSsgICAgICAgICMgVmVyaWZ5IENB IGhhcyBubyBwcml2YXRlIGtleQotKyAgICAgICAgY2Ffb2JqID0gZHluY2VydHMuZ2V0X2NlcnRf b2JqKGNhLm5pY2tuYW1lKQotKyAgICAgICAgaGFzX2tleSA9IGNhX29iai5nZXRfYXR0cl92YWxf dXRmOF9sKCdkc0R5bmFtaWNDZXJ0aWZpY2F0ZUhhc1ByaXZhdGVLZXknKQotKyAgICAgICAgbG9n LmluZm8oZiJDQSBoYXNQcml2YXRlS2V5OiB7aGFzX2tleX0iKQotKyAgICAgICAgYXNzZXJ0IGhh c19rZXkgPT0gJ2ZhbHNlJwotKwotKyAgICAgICAgIyBWZXJpZnkgaXQncyBpZGVudGlmaWVkIGFz IENBCi0rICAgICAgICBpc19jYSA9IGNhX29iai5nZXRfYXR0cl92YWxfdXRmOF9sKCdkc0R5bmFt aWNDZXJ0aWZpY2F0ZUlzQ0EnKQotKyAgICAgICAgYXNzZXJ0IGlzX2NhID09ICd0cnVlJwotKwot KyAgICAgICAgIyBBZGQgc2VydmVyIGNlcnQgd2l0aCBwcml2YXRlIGtleSAoUEtDUzEyIGhhcyBr ZXkpCi0rICAgICAgICBkeW5jZXJ0cy5hZGRfY2VydChjZXJ0LnAxMiwgY2VydC5uaWNrbmFtZSwg cGtjczEyX3Bhc3N3b3JkPVJTQV9DZXJ0aWZpY2F0ZS5QS0NTMTJfUEFTU1dPUkQpCi0rCi0rICAg ICAgICAjIFZlcmlmeSBzZXJ2ZXIgY2VydCBoYXMgcHJpdmF0ZSBrZXkKLSsgICAgICAgIGNlcnRf b2JqID0gZHluY2VydHMuZ2V0X2NlcnRfb2JqKGNlcnQubmlja25hbWUpCi0rICAgICAgICBoYXNf a2V5ID0gY2VydF9vYmouZ2V0X2F0dHJfdmFsX3V0ZjhfbCgnZHNEeW5hbWljQ2VydGlmaWNhdGVI YXNQcml2YXRlS2V5JykKLSsgICAgICAgIGxvZy5pbmZvKGYiU2VydmVyIGNlcnQgaGFzUHJpdmF0 ZUtleToge2hhc19rZXl9IikKLSsgICAgICAgIGFzc2VydCBoYXNfa2V5ID09ICd0cnVlJwotKwot KyAgICAgICAgIyBDaGVjayBpZiBpc1NlcnZlckNlcnQgYXR0cmlidXRlIGV4aXN0cwotKyAgICAg ICAgaXNfc2VydmVyID0gY2VydF9vYmouZ2V0X2F0dHJfdmFsX3V0ZjhfbCgnZHNEeW5hbWljQ2Vy dGlmaWNhdGVJc1NlcnZlckNlcnQnKQotKyAgICAgICAgaWYgaXNfc2VydmVyOgotKyAgICAgICAg ICAgIGxvZy5pbmZvKGYiaXNTZXJ2ZXJDZXJ0OiB7aXNfc2VydmVyfSIpCi0rCi0rICAgICAgICAj IENsZWFudXAKLSsgICAgICAgIGR5bmNlcnRzLmRlbF9jZXJ0KGNhLm5pY2tuYW1lKQotKyAgICAg ICAgZHluY2VydHMuZGVsX2NlcnQoY2VydC5uaWNrbmFtZSkKLSsKLSsgICAgZmluYWxseToKLSsg ICAgICAgIGlmIG5vdCBERUJVR0dJTkc6Ci0rICAgICAgICAgICAgc2h1dGlsLnJtdHJlZShkaXIs IGlnbm9yZV9lcnJvcnM9VHJ1ZSkKLSsKLSsKLStkZWYgdGVzdF90cnVzdF9mbGFnc19tb2RpZmlj YXRpb24odG9wbywgc2V0dXBfdGxzKToKLSsgICAgIiIiVGVzdCBtb2RpZmljYXRpb24gb2YgY2Vy dGlmaWNhdGUgdHJ1c3QgZmxhZ3MKLSsKLSsgICAgOmlkOiBkNGU1ZjZhNy00NDQ0LTU1NTUtNjY2 Ni03Nzc3Nzc3Nzc3NzcKLSsgICAgOnNldHVwOiBTdGFuZGFsb25lIEluc3RhbmNlIHdpdGggVExT IGVuYWJsZWQKLSsgICAgOnN0ZXBzOgotKyAgICAgICAgMS4gQWRkIENBIGNlcnRpZmljYXRlIHdp dGggZGVmYXVsdCB0cnVzdCBmbGFncwotKyAgICAgICAgMi4gUmVhZCBpbml0aWFsIHRydXN0IGZs YWdzCi0rICAgICAgICAzLiBNb2RpZnkgdHJ1c3QgZmxhZ3MgdG8gZGlmZmVyZW50IHZhbHVlcyB1 c2luZyBlZGl0X2NlcnRfdHJ1c3QKLSsgICAgICAgIDQuIFJldHJpZXZlIGNlcnRpZmljYXRlIGFu ZCB2ZXJpZnkgdHJ1c3QgZmxhZ3MgY2hhbmdlZAotKyAgICAgICAgNS4gTW9kaWZ5IHRydXN0IGZs YWdzIGJhY2sKLSsgICAgICAgIDYuIFZlcmlmeSB0cnVzdCBmbGFncyBjaGFuZ2VkIGFnYWluCi0r ICAgIDpleHBlY3RlZHJlc3VsdHM6Ci0rICAgICAgICAxLiBDZXJ0aWZpY2F0ZSBhZGRlZCBzdWNj ZXNzZnVsbHkKLSsgICAgICAgIDIuIEluaXRpYWwgdHJ1c3QgZmxhZ3MgcHJlc2VudAotKyAgICAg ICAgMy4gTW9kaWZpY2F0aW9uIHN1Y2NlZWRzCi0rICAgICAgICA0LiBUcnVzdCBmbGFncyBtYXRj aCBuZXcgdmFsdWUKLSsgICAgICAgIDUuIFNlY29uZCBtb2RpZmljYXRpb24gc3VjY2VlZHMKLSsg ICAgICAgIDYuIFRydXN0IGZsYWdzIG1hdGNoIHVwZGF0ZWQgdmFsdWUKLSsgICAgIiIiCi0rICAg IGluc3QgPSBzZXR1cF90bHMKLSsgICAgZGlyID0gJy90bXAvZHluY2VydF90cnVzdF90ZXN0Jwot KyAgICBvcy5tYWtlZGlycyhkaXIsIDBvNzAwLCBleGlzdF9vaz1UcnVlKQotKwotKyAgICB0cnk6 Ci0rICAgICAgICBjYSA9IFJTQV9DZXJ0aWZpY2F0ZS5nZW5lcmF0ZVJvb3RDQSgiVGVzdFRydXN0 X0NBIikKLSsgICAgICAgIGNhLnNhdmUoZGlyKQotKwotKyAgICAgICAgZHluY2VydHMgPSBEeW5h bWljQ2VydHMoaW5zdCkKLSsgICAgICAgIGR5bmNlcnRzLmFkZF9jZXJ0KGNhLnBlbSwgY2Eubmlj a25hbWUsIGNhPVRydWUpCi0rCi0rICAgICAgICAjIFJlYWQgaW5pdGlhbCB0cnVzdCBmbGFncwot KyAgICAgICAgY2Ffb2JqID0gZHluY2VydHMuZ2V0X2NlcnRfb2JqKGNhLm5pY2tuYW1lKQotKyAg ICAgICAgaW5pdGlhbF90cnVzdCA9IGNhX29iai5nZXRfYXR0cl92YWxfdXRmOCgnZHNEeW5hbWlj Q2VydGlmaWNhdGVUcnVzdEZsYWdzJykKLSsgICAgICAgIGxvZy5pbmZvKGYiSW5pdGlhbCB0cnVz dCBmbGFnczoge2luaXRpYWxfdHJ1c3R9IikKLSsKLSsgICAgICAgICMgTW9kaWZ5IHRydXN0IGZs YWdzCi0rICAgICAgICBuZXdfdHJ1c3QgPSAiQ1QsQyxDIgotKyAgICAgICAgZHluY2VydHMuZWRp dF9jZXJ0X3RydXN0KGNhLm5pY2tuYW1lLCBuZXdfdHJ1c3QpCi0rCi0rICAgICAgICAjIFZlcmlm eSBtb2RpZmljYXRpb24KLSsgICAgICAgIGNhX29iaiA9IGR5bmNlcnRzLmdldF9jZXJ0X29iaihj YS5uaWNrbmFtZSkKLSsgICAgICAgIHVwZGF0ZWRfdHJ1c3QgPSBjYV9vYmouZ2V0X2F0dHJfdmFs X3V0ZjgoJ2RzRHluYW1pY0NlcnRpZmljYXRlVHJ1c3RGbGFncycpCi0rICAgICAgICBsb2cuaW5m byhmIlVwZGF0ZWQgdHJ1c3QgZmxhZ3M6IHt1cGRhdGVkX3RydXN0fSIpCi0rICAgICAgICBhc3Nl cnQgbmV3X3RydXN0IGluIHVwZGF0ZWRfdHJ1c3Qgb3IgdXBkYXRlZF90cnVzdCBpbiBuZXdfdHJ1 c3QKLSsKLSsgICAgICAgICMgQ2xlYW51cAotKyAgICAgICAgZHluY2VydHMuZGVsX2NlcnQoY2Eu bmlja25hbWUpCi0rCi0rICAgIGZpbmFsbHk6Ci0rICAgICAgICBpZiBub3QgREVCVUdHSU5HOgot KyAgICAgICAgICAgIHNodXRpbC5ybXRyZWUoZGlyLCBpZ25vcmVfZXJyb3JzPVRydWUpCi0rCi0r Ci0rZGVmIHRlc3RfY2VydGlmaWNhdGVfcmVwbGFjZV9vcGVyYXRpb24odG9wbywgc2V0dXBfdGxz KToKLSsgICAgIiIiVGVzdCByZXBsYWNpbmcgZXhpc3RpbmcgY2VydGlmaWNhdGUgdXNpbmcgYWRk X2NlcnQgb3BlcmF0aW9uCi0rCi0rICAgIDppZDogZTVmNmE3YjgtNTU1NS02NjY2LTc3NzctODg4 ODg4ODg4ODg4Ci0rICAgIDpzZXR1cDogU3RhbmRhbG9uZSBJbnN0YW5jZSB3aXRoIFRMUyBlbmFi bGVkCi0rICAgIDpzdGVwczoKLSsgICAgICAgIDEuIEFkZCBpbml0aWFsIGNlcnRpZmljYXRlCi0r ICAgICAgICAyLiBWZXJpZnkgY2VydGlmaWNhdGUgaXMgcHJlc2VudAotKyAgICAgICAgMy4gR2Vu ZXJhdGUgbmV3IGNlcnRpZmljYXRlIHdpdGggc2FtZSBuaWNrbmFtZQotKyAgICAgICAgNC4gUmVw bGFjZSBjZXJ0aWZpY2F0ZSB1c2luZyBhZGRfY2VydCAoaXQgZGV0ZWN0cyBleGlzdGluZyBhbmQg dXBkYXRlcykKLSsgICAgICAgIDUuIFJldHJpZXZlIGNlcnRpZmljYXRlIGFuZCB2ZXJpZnkgaXQg d2FzIHJlcGxhY2VkCi0rICAgICAgICA2LiBWZXJpZnkgc2VyaWFsIG51bWJlciBjaGFuZ2VkCi0r ICAgIDpleHBlY3RlZHJlc3VsdHM6Ci0rICAgICAgICAxLiBJbml0aWFsIGNlcnRpZmljYXRlIGFk ZGVkCi0rICAgICAgICAyLiBDZXJ0aWZpY2F0ZSBmb3VuZAotKyAgICAgICAgMy4gTmV3IGNlcnRp ZmljYXRlIGdlbmVyYXRlZAotKyAgICAgICAgNC4gUmVwbGFjZSBvcGVyYXRpb24gc3VjY2VlZHMK LSsgICAgICAgIDUuIENlcnRpZmljYXRlIGlzIGRpZmZlcmVudAotKyAgICAgICAgNi4gU2VyaWFs IG51bWJlciBpcyBkaWZmZXJlbnQKLSsgICAgIiIiCi0rICAgIGluc3QgPSBzZXR1cF90bHMKLSsg ICAgZGlyID0gJy90bXAvZHluY2VydF9yZXBsYWNlX3Rlc3QnCi0rICAgIG9zLm1ha2VkaXJzKGRp ciwgMG83MDAsIGV4aXN0X29rPVRydWUpCi0rCi0rICAgIHRyeToKLSsgICAgICAgIGNhID0gUlNB X0NlcnRpZmljYXRlLmdlbmVyYXRlUm9vdENBKCJUZXN0UmVwbGFjZV9DQSIpCi0rICAgICAgICBj YS5zYXZlKGRpcikKLSsKLSsgICAgICAgIGR5bmNlcnRzID0gRHluYW1pY0NlcnRzKGluc3QpCi0r Ci0rICAgICAgICAjIEFkZCBpbml0aWFsIGNlcnRpZmljYXRlCi0rICAgICAgICBkeW5jZXJ0cy5h ZGRfY2VydChjYS5wZW0sIGNhLm5pY2tuYW1lLCBjYT1UcnVlKQotKwotKyAgICAgICAgIyBHZXQg aW5pdGlhbCBzZXJpYWwgbnVtYmVyCi0rICAgICAgICBjYV9vYmogPSBkeW5jZXJ0cy5nZXRfY2Vy dF9vYmooY2Eubmlja25hbWUpCi0rICAgICAgICBzZXJpYWwxID0gY2Ffb2JqLmdldF9hdHRyX3Zh bF91dGY4KCdkc0R5bmFtaWNDZXJ0aWZpY2F0ZVNlcmlhbE51bWJlcicpCi0rICAgICAgICBsb2cu aW5mbyhmIkluaXRpYWwgc2VyaWFsOiB7c2VyaWFsMX0iKQotKwotKyAgICAgICAgIyBHZW5lcmF0 ZSBuZXcgY2VydGlmaWNhdGUgd2l0aCBzYW1lIG5pY2tuYW1lCi0rICAgICAgICBjYTIgPSBSU0Ff Q2VydGlmaWNhdGUuZ2VuZXJhdGVSb290Q0EoIlRlc3RSZXBsYWNlX0NBIikgICMgU2FtZSBuaWNr bmFtZSwgZGlmZmVyZW50IGNlcnQKLSsgICAgICAgIG9zLm1ha2VkaXJzKGRpciArICcvcmVwbGFj ZW1lbnQnLCAwbzcwMCwgZXhpc3Rfb2s9VHJ1ZSkKLSsgICAgICAgIGNhMi5zYXZlKGRpciArICcv cmVwbGFjZW1lbnQnKQotKwotKyAgICAgICAgIyBSZXBsYWNlIGNlcnRpZmljYXRlIChhZGRfY2Vy dCBkZXRlY3RzIGV4aXN0aW5nIGFuZCB1cGRhdGVzKQotKyAgICAgICAgZHluY2VydHMuYWRkX2Nl cnQoY2EyLnBlbSwgY2EyLm5pY2tuYW1lLCBjYT1UcnVlKQotKwotKyAgICAgICAgIyBWZXJpZnkg cmVwbGFjZW1lbnQKLSsgICAgICAgIGNhX29iaiA9IGR5bmNlcnRzLmdldF9jZXJ0X29iaihjYS5u aWNrbmFtZSkKLSsgICAgICAgIHNlcmlhbDIgPSBjYV9vYmouZ2V0X2F0dHJfdmFsX3V0ZjgoJ2Rz RHluYW1pY0NlcnRpZmljYXRlU2VyaWFsTnVtYmVyJykKLSsgICAgICAgIGxvZy5pbmZvKGYiTmV3 IHNlcmlhbDoge3NlcmlhbDJ9IikKLSsgICAgICAgIGFzc2VydCBzZXJpYWwxICE9IHNlcmlhbDIK LSsKLSsgICAgICAgICMgQ2xlYW51cAotKyAgICAgICAgZHluY2VydHMuZGVsX2NlcnQoY2Eubmlj a25hbWUpCi0rCi0rICAgIGZpbmFsbHk6Ci0rICAgICAgICBpZiBub3QgREVCVUdHSU5HOgotKyAg ICAgICAgICAgIHNodXRpbC5ybXRyZWUoZGlyLCBpZ25vcmVfZXJyb3JzPVRydWUpCi0rCi0rCi0r ZGVmIHRlc3Rfc2VhcmNoX3dpdGhfZmlsdGVycyh0b3BvLCBzZXR1cF90bHMpOgotKyAgICAiIiJU ZXN0IHNlYXJjaGluZyBjZXJ0aWZpY2F0ZXMgd2l0aCBMREFQIGZpbHRlcnMgdXNpbmcgRHluYW1p Y0NlcnRzLmxpc3QoKQotKwotKyAgICA6aWQ6IGY2YTdiOGM5LTY2NjYtNzc3Ny04ODg4LTk5OTk5 OTk5OTk5OQotKyAgICA6c2V0dXA6IFN0YW5kYWxvbmUgSW5zdGFuY2Ugd2l0aCBUTFMgZW5hYmxl ZAotKyAgICA6c3RlcHM6Ci0rICAgICAgICAxLiBBZGQgbXVsdGlwbGUgY2VydGlmaWNhdGVzIChD QSBhbmQgc2VydmVyIGNlcnRzKQotKyAgICAgICAgMi4gTGlzdCBhbGwgY2VydGlmaWNhdGVzIHVz aW5nIGxpc3QoKQotKyAgICAgICAgMy4gTGlzdCBDQSBjZXJ0aWZpY2F0ZXMgdXNpbmcgbGlzdF9j YV9jZXJ0cygpCi0rICAgICAgICA0LiBMaXN0IHNlcnZlciBjZXJ0aWZpY2F0ZXMgdXNpbmcgbGlz dF9jZXJ0cygpCi0rICAgICAgICA1LiBVc2UgZ2V0X2NlcnRfZGV0YWlscyB0byBnZXQgc3BlY2lm aWMgY2VydGlmaWNhdGUgaW5mbwotKyAgICA6ZXhwZWN0ZWRyZXN1bHRzOgotKyAgICAgICAgMS4g QWxsIGNlcnRpZmljYXRlcyBhZGRlZCBzdWNjZXNzZnVsbHkKLSsgICAgICAgIDIuIGxpc3QoKSBy ZXR1cm5zIGFsbCBjZXJ0aWZpY2F0ZSBvYmplY3RzCi0rICAgICAgICAzLiBsaXN0X2NhX2NlcnRz KCkgcmV0dXJucyBvbmx5IENBIGNlcnRpZmljYXRlcwotKyAgICAgICAgNC4gbGlzdF9jZXJ0cygp IHJldHVybnMgb25seSBzZXJ2ZXIgY2VydGlmaWNhdGVzCi0rICAgICAgICA1LiBnZXRfY2VydF9k ZXRhaWxzIHJldHVybnMgZGV0YWlsZWQgaW5mbwotKyAgICAiIiIKLSsgICAgaW5zdCA9IHNldHVw X3RscwotKyAgICBmaXhfY3Jhc2hfaXNzdWVfNzIyNyhpbnN0KQotKyAgICBkaXIgPSAnL3RtcC9k eW5jZXJ0X2ZpbHRlcl90ZXN0JwotKyAgICBvcy5tYWtlZGlycyhkaXIsIDBvNzAwLCBleGlzdF9v az1UcnVlKQotKwotKyAgICB0cnk6Ci0rICAgICAgICBkeW5jZXJ0cyA9IER5bmFtaWNDZXJ0cyhp bnN0KQotKwotKyAgICAgICAgIyBBZGQgQ0EgY2VydGlmaWNhdGUKLSsgICAgICAgIGNhID0gUlNB X0NlcnRpZmljYXRlLmdlbmVyYXRlUm9vdENBKCJUZXN0RmlsdGVyX0NBIikKLSsgICAgICAgIGNh LnNhdmUoZGlyKQotKyAgICAgICAgZHluY2VydHMuYWRkX2NlcnQoY2EucGVtLCBjYS5uaWNrbmFt ZSwgY2E9VHJ1ZSkKLSsKLSsgICAgICAgICMgQWRkIHNlcnZlciBjZXJ0aWZpY2F0ZSB3aXRoIHBy aXZhdGUga2V5Ci0rICAgICAgICBjZXJ0ID0gY2EuZ2VuZXJhdGVDZXJ0aWZpY2F0ZSgiVGVzdEZp bHRlcl9DZXJ0IikKLSsgICAgICAgIGNlcnQuc2F2ZShkaXIpCi0rICAgICAgICBkeW5jZXJ0cy5h ZGRfY2VydChjZXJ0LnAxMiwgY2VydC5uaWNrbmFtZSwgcGtjczEyX3Bhc3N3b3JkPVJTQV9DZXJ0 aWZpY2F0ZS5QS0NTMTJfUEFTU1dPUkQpCi0rCi0rICAgICAgICAjIExpc3QgYWxsIGNlcnRpZmlj YXRlIG9iamVjdHMKLSsgICAgICAgIGFsbF9jZXJ0cyA9IGR5bmNlcnRzLmxpc3QoKQotKyAgICAg ICAgbG9nLmluZm8oZiJUb3RhbCBjZXJ0aWZpY2F0ZSBvYmplY3RzIGZvdW5kOiB7bGVuKGFsbF9j ZXJ0cyl9IikKLSsgICAgICAgIGFzc2VydCBsZW4oYWxsX2NlcnRzKSA+PSAyCi0rCi0rICAgICAg ICAjIExpc3QgQ0EgY2VydGlmaWNhdGVzIG9ubHkKLSsgICAgICAgIGNhX2NlcnRzID0gZHluY2Vy dHMubGlzdF9jYV9jZXJ0cygpCi0rICAgICAgICBsb2cuaW5mbyhmIkNBIGNlcnRpZmljYXRlcyBm b3VuZDoge2xlbihjYV9jZXJ0cyl9IikKLSsgICAgICAgIGFzc2VydCBsZW4oY2FfY2VydHMpID49 IDEKLSsgICAgICAgIGFzc2VydCBhbnkoY1snY24nXSA9PSBjYS5uaWNrbmFtZSBmb3IgYyBpbiBj YV9jZXJ0cykKLSsKLSsgICAgICAgICMgTGlzdCBzZXJ2ZXIgY2VydGlmaWNhdGVzIG9ubHkKLSsg ICAgICAgIHNlcnZlcl9jZXJ0cyA9IGR5bmNlcnRzLmxpc3RfY2VydHMoKQotKyAgICAgICAgbG9n LmluZm8oZiJTZXJ2ZXIgY2VydGlmaWNhdGVzIGZvdW5kOiB7bGVuKHNlcnZlcl9jZXJ0cyl9IikK LSsgICAgICAgIGFzc2VydCBsZW4oc2VydmVyX2NlcnRzKSA+PSAxCi0rICAgICAgICBhc3NlcnQg YW55KGNbJ2NuJ10gPT0gY2VydC5uaWNrbmFtZSBmb3IgYyBpbiBzZXJ2ZXJfY2VydHMpCi0rCi0r ICAgICAgICAjIEdldCBzcGVjaWZpYyBjZXJ0aWZpY2F0ZSBkZXRhaWxzCi0rICAgICAgICBjYV9k ZXRhaWxzID0gZHluY2VydHMuZ2V0X2NlcnRfZGV0YWlscyhjYS5uaWNrbmFtZSkKLSsgICAgICAg IGFzc2VydCBjYV9kZXRhaWxzIGlzIG5vdCBOb25lCi0rICAgICAgICBhc3NlcnQgY2FfZGV0YWls c1snY24nXSA9PSBjYS5uaWNrbmFtZQotKyAgICAgICAgbG9nLmluZm8oZiJDQSBkZXRhaWxzOiB7 Y2FfZGV0YWlsc30iKQotKwotKyAgICAgICAgIyBDbGVhbnVwCi0rICAgICAgICBkeW5jZXJ0cy5k ZWxfY2VydChjYS5uaWNrbmFtZSkKLSsgICAgICAgIGR5bmNlcnRzLmRlbF9jZXJ0KGNlcnQubmlj a25hbWUpCi0rCi0rICAgIGZpbmFsbHk6Ci0rICAgICAgICBpZiBub3QgREVCVUdHSU5HOgotKyAg ICAgICAgICAgIHNodXRpbC5ybXRyZWUoZGlyLCBpZ25vcmVfZXJyb3JzPVRydWUpCi0rCi0rCi0r ZGVmIHRlc3RfYmF0Y2hfY2VydGlmaWNhdGVfb3BlcmF0aW9ucyh0b3BvLCBzZXR1cF90bHMpOgot KyAgICAiIiJUZXN0IGFkZGluZyBhbmQgbWFuYWdpbmcgbXVsdGlwbGUgY2VydGlmaWNhdGVzCi0r Ci0rICAgIDppZDogYTdiOGM5ZDAtNzc3Ny04ODg4LTk5OTktMDAwMDAwMDAwMDAwCi0rICAgIDpz ZXR1cDogU3RhbmRhbG9uZSBJbnN0YW5jZSB3aXRoIFRMUyBlbmFibGVkCi0rICAgIDpzdGVwczoK LSsgICAgICAgIDEuIEdlbmVyYXRlIDUgZGlmZmVyZW50IGNlcnRpZmljYXRlcwotKyAgICAgICAg Mi4gQWRkIGFsbCBjZXJ0aWZpY2F0ZXMgdXNpbmcgRHluYW1pY0NlcnRzCi0rICAgICAgICAzLiBM aXN0IGFsbCBjZXJ0aWZpY2F0ZXMKLSsgICAgICAgIDQuIFZlcmlmeSBhbGwgY2VydGlmaWNhdGVz IGFyZSBwcmVzZW50Ci0rICAgICAgICA1LiBEZWxldGUgYWxsIGNlcnRpZmljYXRlcwotKyAgICAg ICAgNi4gVmVyaWZ5IGFsbCBkZWxldGlvbnMgc3VjY2VlZGVkCi0rICAgIDpleHBlY3RlZHJlc3Vs dHM6Ci0rICAgICAgICAxLiBBbGwgY2VydGlmaWNhdGVzIGdlbmVyYXRlZAotKyAgICAgICAgMi4g QWxsIGFkZGl0aW9ucyBzdWNjZWVkCi0rICAgICAgICAzLiBMaXN0IHJldHVybnMgYWxsIGNlcnRp ZmljYXRlcwotKyAgICAgICAgNC4gQWxsIGNlcnRpZmljYXRlcyBoYXZlIGNvcnJlY3QgbWV0YWRh dGEKLSsgICAgICAgIDUuIEFsbCBkZWxldGlvbnMgc3VjY2VlZAotKyAgICAgICAgNi4gTm8gY2Vy dGlmaWNhdGVzIHJlbWFpbgotKyAgICAiIiIKLSsgICAgaW5zdCA9IHNldHVwX3RscwotKyAgICBk aXIgPSAnL3RtcC9keW5jZXJ0X2JhdGNoX3Rlc3QnCi0rICAgIG9zLm1ha2VkaXJzKGRpciwgMG83 MDAsIGV4aXN0X29rPVRydWUpCi0rCi0rICAgIGNlcnRfbGlzdCA9IFtdCi0rICAgIHRyeToKLSsg ICAgICAgIGR5bmNlcnRzID0gRHluYW1pY0NlcnRzKGluc3QpCi0rCi0rICAgICAgICAjIEdlbmVy YXRlIGFuZCBhZGQgbXVsdGlwbGUgY2VydGlmaWNhdGVzCi0rICAgICAgICBmb3IgaSBpbiByYW5n ZSg1KToKLSsgICAgICAgICAgICBjYSA9IFJTQV9DZXJ0aWZpY2F0ZS5nZW5lcmF0ZVJvb3RDQShm IlRlc3RCYXRjaF9DQV97aX0iKQotKyAgICAgICAgICAgIGNhLnNhdmUoZGlyKQotKyAgICAgICAg ICAgIGNlcnRfbGlzdC5hcHBlbmQoY2EpCi0rCi0rICAgICAgICAgICAgZHluY2VydHMuYWRkX2Nl cnQoY2EucGVtLCBjYS5uaWNrbmFtZSwgY2E9VHJ1ZSkKLSsgICAgICAgICAgICBsb2cuaW5mbyhm IkFkZGVkIGNlcnRpZmljYXRlIHtpKzF9LzU6IHtjYS5uaWNrbmFtZX0iKQotKwotKyAgICAgICAg IyBMaXN0IGFsbCBDQSBjZXJ0aWZpY2F0ZXMKLSsgICAgICAgIGNhX2NlcnRzID0gZHluY2VydHMu bGlzdF9jYV9jZXJ0cygpCi0rICAgICAgICBiYXRjaF9jZXJ0cyA9IFtjIGZvciBjIGluIGNhX2Nl cnRzIGlmIGNbJ2NuJ10uc3RhcnRzd2l0aCgnVGVzdEJhdGNoX0NBXycpXQotKyAgICAgICAgbG9n LmluZm8oZiJGb3VuZCB7bGVuKGJhdGNoX2NlcnRzKX0gYmF0Y2ggY2VydGlmaWNhdGVzIikKLSsg ICAgICAgIGFzc2VydCBsZW4oYmF0Y2hfY2VydHMpID09IDUKLSsKLSsgICAgICAgICMgVmVyaWZ5 IGVhY2ggY2VydGlmaWNhdGUKLSsgICAgICAgIGZvciBjYSBpbiBjZXJ0X2xpc3Q6Ci0rICAgICAg ICAgICAgY2VydF9vYmogPSBkeW5jZXJ0cy5nZXRfY2VydF9vYmooY2Eubmlja25hbWUpCi0rICAg ICAgICAgICAgYXNzZXJ0IGNlcnRfb2JqIGlzIG5vdCBOb25lCi0rICAgICAgICAgICAgc3ViamVj dCA9IGNlcnRfb2JqLmdldF9hdHRyX3ZhbF91dGY4KCdkc0R5bmFtaWNDZXJ0aWZpY2F0ZVN1Ympl Y3QnKQotKyAgICAgICAgICAgIGFzc2VydCBzdWJqZWN0IGlzIG5vdCBOb25lCi0rICAgICAgICAg ICAgbG9nLmluZm8oZiJWZXJpZmllZCBjZXJ0aWZpY2F0ZToge2NhLm5pY2tuYW1lfSIpCi0rCi0r ICAgICAgICAjIERlbGV0ZSBhbGwgY2VydGlmaWNhdGVzCi0rICAgICAgICBmb3IgY2EgaW4gY2Vy dF9saXN0OgotKyAgICAgICAgICAgIGR5bmNlcnRzLmRlbF9jZXJ0KGNhLm5pY2tuYW1lKQotKyAg ICAgICAgICAgIGxvZy5pbmZvKGYiRGVsZXRlZCBjZXJ0aWZpY2F0ZToge2NhLm5pY2tuYW1lfSIp Ci0rCi0rICAgICAgICAjIFZlcmlmeSBkZWxldGlvbnMKLSsgICAgICAgIGNhX2NlcnRzX2FmdGVy ID0gZHluY2VydHMubGlzdF9jYV9jZXJ0cygpCi0rICAgICAgICBiYXRjaF9jZXJ0c19hZnRlciA9 IFtjIGZvciBjIGluIGNhX2NlcnRzX2FmdGVyIGlmIGNbJ2NuJ10uc3RhcnRzd2l0aCgnVGVzdEJh dGNoX0NBXycpXQotKyAgICAgICAgYXNzZXJ0IGxlbihiYXRjaF9jZXJ0c19hZnRlcikgPT0gMAot KwotKyAgICBmaW5hbGx5OgotKyAgICAgICAgaWYgbm90IERFQlVHR0lORzoKLSsgICAgICAgICAg ICBzaHV0aWwucm10cmVlKGRpciwgaWdub3JlX2Vycm9ycz1UcnVlKQotKwotKwotK2RlZiB0ZXN0 X2ludmFsaWRfY2VydGlmaWNhdGVfaGFuZGxpbmcodG9wbywgc2V0dXBfdGxzKToKLSsgICAgIiIi VGVzdCBlcnJvciBoYW5kbGluZyBmb3IgaW52YWxpZCBjZXJ0aWZpY2F0ZSBkYXRhCi0rCi0rICAg IDppZDogYjhjOWQwZTEtODg4OC05OTk5LTAwMDAtMTExMTExMTExMTExCi0rICAgIDpzZXR1cDog U3RhbmRhbG9uZSBJbnN0YW5jZSB3aXRoIFRMUyBlbmFibGVkCi0rICAgIDpzdGVwczoKLSsgICAg ICAgIDEuIEF0dGVtcHQgdG8gYWRkIGNlcnRpZmljYXRlIGZyb20gbm9uLWV4aXN0ZW50IGZpbGUK LSsgICAgICAgIDIuIEF0dGVtcHQgdG8gYWRkIGNlcnRpZmljYXRlIHdpdGggZW1wdHkgbmlja25h bWUKLSsgICAgICAgIDMuIEF0dGVtcHQgdG8gYWRkIG5vbi1DQSBjZXJ0IGFzIENBCi0rICAgICAg ICA0LiBWZXJpZnkgYWxsIG9wZXJhdGlvbnMgZmFpbCB3aXRoIGFwcHJvcHJpYXRlIGVycm9ycwot KyAgICA6ZXhwZWN0ZWRyZXN1bHRzOgotKyAgICAgICAgMS4gTm9uLWV4aXN0ZW50IGZpbGUgcmVq ZWN0ZWQgd2l0aCBWYWx1ZUVycm9yCi0rICAgICAgICAyLiBFbXB0eSBuaWNrbmFtZSByZWplY3Rl ZCB3aXRoIFZhbHVlRXJyb3IKLSsgICAgICAgIDMuIE5vbi1DQSBjZXJ0IHJlamVjdGVkIGFzIENB IHdpdGggVmFsdWVFcnJvcgotKyAgICAgICAgNC4gQWxsIGVycm9ycyBhcmUgYXBwcm9wcmlhdGUg ZXhjZXB0aW9ucwotKyAgICAiIiIKLSsgICAgaW5zdCA9IHNldHVwX3RscwotKyAgICBkaXIgPSAn L3RtcC9keW5jZXJ0X2ludmFsaWRfdGVzdCcKLSsgICAgb3MubWFrZWRpcnMoZGlyLCAwbzcwMCwg ZXhpc3Rfb2s9VHJ1ZSkKLSsKLSsgICAgdHJ5OgotKyAgICAgICAgZHluY2VydHMgPSBEeW5hbWlj Q2VydHMoaW5zdCkKLSsKLSsgICAgICAgICMgVGVzdCAxOiBOb24tZXhpc3RlbnQgZmlsZQotKyAg ICAgICAgdHJ5OgotKyAgICAgICAgICAgIGR5bmNlcnRzLmFkZF9jZXJ0KCcvbm9uZXhpc3RlbnQv ZmlsZS5wZW0nLCAnVGVzdEludmFsaWQnKQotKyAgICAgICAgICAgIGFzc2VydCBGYWxzZSwgIlNo b3VsZCBoYXZlIGZhaWxlZCB3aXRoIG5vbi1leGlzdGVudCBmaWxlIgotKyAgICAgICAgZXhjZXB0 IFZhbHVlRXJyb3IgYXMgZToKLSsgICAgICAgICAgICBsb2cuaW5mbyhmIkV4cGVjdGVkIGVycm9y IGZvciBub24tZXhpc3RlbnQgZmlsZToge2V9IikKLSsKLSsgICAgICAgICMgVGVzdCAyOiBFbXB0 eSBuaWNrbmFtZQotKyAgICAgICAgY2EgPSBSU0FfQ2VydGlmaWNhdGUuZ2VuZXJhdGVSb290Q0Eo IlRlc3RJbnZhbGlkX0NBIikKLSsgICAgICAgIGNhLnNhdmUoZGlyKQotKwotKyAgICAgICAgdHJ5 OgotKyAgICAgICAgICAgIGR5bmNlcnRzLmFkZF9jZXJ0KGNhLnBlbSwgJycsIGNhPVRydWUpCi0r ICAgICAgICAgICAgYXNzZXJ0IEZhbHNlLCAiU2hvdWxkIGhhdmUgZmFpbGVkIHdpdGggZW1wdHkg bmlja25hbWUiCi0rICAgICAgICBleGNlcHQgVmFsdWVFcnJvciBhcyBlOgotKyAgICAgICAgICAg IGxvZy5pbmZvKGYiRXhwZWN0ZWQgZXJyb3IgZm9yIGVtcHR5IG5pY2tuYW1lOiB7ZX0iKQotKwot KyAgICAgICAgIyBUZXN0IDM6IE5vbi1DQSBjZXJ0IG1hcmtlZCBhcyBDQQotKyAgICAgICAgY2Vy dCA9IGNhLmdlbmVyYXRlQ2VydGlmaWNhdGUoIlRlc3RJbnZhbGlkX0NlcnQiKQotKyAgICAgICAg Y2VydC5zYXZlKGRpcikKLSsKLSsgICAgICAgIHRyeToKLSsgICAgICAgICAgICBkeW5jZXJ0cy5h ZGRfY2VydChjZXJ0LnBlbSwgY2VydC5uaWNrbmFtZSwgY2E9VHJ1ZSkKLSsgICAgICAgICAgICBh c3NlcnQgRmFsc2UsICJTaG91bGQgaGF2ZSBmYWlsZWQgd2l0aCBub24tQ0EgY2VydCIKLSsgICAg ICAgIGV4Y2VwdCBWYWx1ZUVycm9yIGFzIGU6Ci0rICAgICAgICAgICAgbG9nLmluZm8oZiJFeHBl Y3RlZCBlcnJvciBmb3Igbm9uLUNBIGNlcnQ6IHtlfSIpCi0rCi0rICAgIGZpbmFsbHk6Ci0rICAg ICAgICBpZiBub3QgREVCVUdHSU5HOgotKyAgICAgICAgICAgIHNodXRpbC5ybXRyZWUoZGlyLCBp Z25vcmVfZXJyb3JzPVRydWUpCi0rCi0rCi0rZGVmIHRlc3RfY2VydGlmaWNhdGVfdmVyaWZpY2F0 aW9uX3N0YXR1cyh0b3BvLCBzZXR1cF90bHMpOgotKyAgICAiIiJUZXN0IGNlcnRpZmljYXRlIHZl cmlmaWNhdGlvbiBzdGF0dXMgYXR0cmlidXRlCi0rCi0rICAgIDppZDogYzlkMGUxZjItOTk5OS0w MDAwLTExMTEtMjIyMjIyMjIyMjIyCi0rICAgIDpzZXR1cDogU3RhbmRhbG9uZSBJbnN0YW5jZSB3 aXRoIFRMUyBlbmFibGVkCi0rICAgIDpzdGVwczoKLSsgICAgICAgIDEuIEFkZCB2YWxpZCBDQSBj ZXJ0aWZpY2F0ZQotKyAgICAgICAgMi4gQWRkIHNlcnZlciBjZXJ0aWZpY2F0ZSBzaWduZWQgYnkg Q0EKLSsgICAgICAgIDMuIFJldHJpZXZlIGNlcnRpZmljYXRlcyBhbmQgY2hlY2sgdmVyaWZpY2F0 aW9uIHN0YXR1cwotKyAgICAgICAgNC4gVmVyaWZ5IHNlbGYtc2lnbmVkIENBIGhhcyBhcHByb3By aWF0ZSBzdGF0dXMKLSsgICAgICAgIDUuIFZlcmlmeSBzZXJ2ZXIgY2VydCBoYXMgdmVyaWZpY2F0 aW9uIHN0YXR1cwotKyAgICA6ZXhwZWN0ZWRyZXN1bHRzOgotKyAgICAgICAgMS4gQ0EgYWRkZWQg c3VjY2Vzc2Z1bGx5Ci0rICAgICAgICAyLiBTZXJ2ZXIgY2VydCBhZGRlZCBzdWNjZXNzZnVsbHkK LSsgICAgICAgIDMuIFZlcmlmaWNhdGlvbiBzdGF0dXMgYXR0cmlidXRlIGFjY2Vzc2libGUKLSsg ICAgICAgIDQuIENBIHN0YXR1cyBpcyBhcHByb3ByaWF0ZSBmb3Igc2VsZi1zaWduZWQKLSsgICAg ICAgIDUuIFNlcnZlciBjZXJ0IHN0YXR1cyByZWZsZWN0cyBjaGFpbiB2YWxpZGF0aW9uCi0rICAg ICIiIgotKyAgICBpbnN0ID0gc2V0dXBfdGxzCi0rICAgIGRpciA9ICcvdG1wL2R5bmNlcnRfdmVy aWZ5X3Rlc3QnCi0rICAgIG9zLm1ha2VkaXJzKGRpciwgMG83MDAsIGV4aXN0X29rPVRydWUpCi0r Ci0rICAgIHRyeToKLSsgICAgICAgIGR5bmNlcnRzID0gRHluYW1pY0NlcnRzKGluc3QpCi0rCi0r ICAgICAgICBjYSA9IFJTQV9DZXJ0aWZpY2F0ZS5nZW5lcmF0ZVJvb3RDQSgiVGVzdFZlcmlmeV9D QSIpCi0rICAgICAgICBjYS5zYXZlKGRpcikKLSsgICAgICAgIGR5bmNlcnRzLmFkZF9jZXJ0KGNh LnBlbSwgY2Eubmlja25hbWUsIGNhPVRydWUpCi0rCi0rICAgICAgICAjIENoZWNrIENBIHZlcmlm aWNhdGlvbiBzdGF0dXMKLSsgICAgICAgIGNhX29iaiA9IGR5bmNlcnRzLmdldF9jZXJ0X29iaihj YS5uaWNrbmFtZSkKLSsgICAgICAgIHZlcmlmeV9zdGF0dXMgPSBjYV9vYmouZ2V0X2F0dHJfdmFs X3V0ZjgoJ2RzRHluYW1pY0NlcnRpZmljYXRlVmVyaWZpY2F0aW9uU3RhdHVzJykKLSsgICAgICAg IGlmIHZlcmlmeV9zdGF0dXM6Ci0rICAgICAgICAgICAgbG9nLmluZm8oZiJDQSB2ZXJpZmljYXRp b24gc3RhdHVzOiB7dmVyaWZ5X3N0YXR1c30iKQotKyAgICAgICAgZWxzZToKLSsgICAgICAgICAg ICBsb2cuaW5mbygiVmVyaWZpY2F0aW9uIHN0YXR1cyBhdHRyaWJ1dGUgbm90IHByZXNlbnQgZm9y IENBIikKLSsKLSsgICAgICAgICMgQWRkIHNlcnZlciBjZXJ0aWZpY2F0ZQotKyAgICAgICAgY2Vy dCA9IGNhLmdlbmVyYXRlQ2VydGlmaWNhdGUoIlRlc3RWZXJpZnlfQ2VydCIpCi0rICAgICAgICBj ZXJ0LnNhdmUoZGlyKQotKyAgICAgICAgZHluY2VydHMuYWRkX2NlcnQoY2VydC5wMTIsIGNlcnQu bmlja25hbWUsIHBrY3MxMl9wYXNzd29yZD1SU0FfQ2VydGlmaWNhdGUuUEtDUzEyX1BBU1NXT1JE KQotKwotKyAgICAgICAgIyBDaGVjayBzZXJ2ZXIgY2VydCB2ZXJpZmljYXRpb24gc3RhdHVzCi0r ICAgICAgICBjZXJ0X29iaiA9IGR5bmNlcnRzLmdldF9jZXJ0X29iaihjZXJ0Lm5pY2tuYW1lKQot KyAgICAgICAgdmVyaWZ5X3N0YXR1cyA9IGNlcnRfb2JqLmdldF9hdHRyX3ZhbF91dGY4KCdkc0R5 bmFtaWNDZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvblN0YXR1cycpCi0rICAgICAgICBpZiB2ZXJpZnlf c3RhdHVzOgotKyAgICAgICAgICAgIGxvZy5pbmZvKGYiU2VydmVyIGNlcnQgdmVyaWZpY2F0aW9u IHN0YXR1czoge3ZlcmlmeV9zdGF0dXN9IikKLSsgICAgICAgIGVsc2U6Ci0rICAgICAgICAgICAg bG9nLmluZm8oIlZlcmlmaWNhdGlvbiBzdGF0dXMgYXR0cmlidXRlIG5vdCBwcmVzZW50IGZvciBz ZXJ2ZXIgY2VydCIpCi0rCi0rICAgICAgICAjIENsZWFudXAKLSsgICAgICAgIGR5bmNlcnRzLmRl bF9jZXJ0KGNhLm5pY2tuYW1lKQotKyAgICAgICAgZHluY2VydHMuZGVsX2NlcnQoY2VydC5uaWNr bmFtZSkKLSsKLSsgICAgZmluYWxseToKLSsgICAgICAgIGlmIG5vdCBERUJVR0dJTkc6Ci0rICAg ICAgICAgICAgc2h1dGlsLnJtdHJlZShkaXIsIGlnbm9yZV9lcnJvcnM9VHJ1ZSkKLSsKLSsKLStk ZWYgdGVzdF9leHBpcmVkX2NlcnRpZmljYXRlX2hhbmRsaW5nKHRvcG8sIHNldHVwX3Rscyk6Ci0r ICAgICIiIlRlc3QgaGFuZGxpbmcgb2YgZXhwaXJlZCBjZXJ0aWZpY2F0ZXMKLSsKLSsgICAgOmlk OiBkMGUxZjJhMy0wMDAwLTExMTEtMjIyMi0zMzMzMzMzMzMzMzMKLSsgICAgOnNldHVwOiBTdGFu ZGFsb25lIEluc3RhbmNlIHdpdGggVExTIGVuYWJsZWQKLSsgICAgOnN0ZXBzOgotKyAgICAgICAg MS4gR2VuZXJhdGUgY2VydGlmaWNhdGUgd2l0aCB2YWxpZGl0eSBzdGFydGluZyBpbiB0aGUgcGFz dCBhbmQgYWxyZWFkeSBleHBpcmVkCi0rICAgICAgICAyLiBBZGQgZXhwaXJlZCBjZXJ0aWZpY2F0 ZQotKyAgICAgICAgMy4gUmV0cmlldmUgY2VydGlmaWNhdGUgb2JqZWN0Ci0rICAgICAgICA0LiBW ZXJpZnkgbm90QmVmb3JlIGRhdGUgaXMgaW4gdGhlIHBhc3QKLSsgICAgICAgIDUuIFZlcmlmeSBu b3RBZnRlciBkYXRlIGlzIGFsc28gaW4gdGhlIHBhc3QKLSsgICAgICAgIDYuIENoZWNrIGlmIHZl cmlmaWNhdGlvbiBzdGF0dXMgaW5kaWNhdGVzIGV4cGlyYXRpb24KLSsgICAgOmV4cGVjdGVkcmVz dWx0czoKLSsgICAgICAgIDEuIEV4cGlyZWQgY2VydGlmaWNhdGUgZ2VuZXJhdGVkCi0rICAgICAg ICAyLiBDZXJ0aWZpY2F0ZSBjYW4gYmUgYWRkZWQgKHN0b3JlZCkKLSsgICAgICAgIDMuIENlcnRp ZmljYXRlIG9iamVjdCByZXRyaWV2ZWQKLSsgICAgICAgIDQuIG5vdEJlZm9yZSBzaG93cyBwYXN0 IGRhdGUKLSsgICAgICAgIDUuIG5vdEFmdGVyIHNob3dzIHBhc3QgZGF0ZSAoZXhwaXJlZCkKLSsg ICAgICAgIDYuIFZlcmlmaWNhdGlvbiBzdGF0dXMgbWF5IGluZGljYXRlIGludmFsaWQvZXhwaXJl ZAotKyAgICAiIiIKLSsgICAgaW5zdCA9IHNldHVwX3RscwotKyAgICBkaXIgPSAnL3RtcC9keW5j ZXJ0X2V4cGlyZWRfdGVzdCcKLSsgICAgb3MubWFrZWRpcnMoZGlyLCAwbzcwMCwgZXhpc3Rfb2s9 VHJ1ZSkKLSsKLSsgICAgdHJ5OgotKyAgICAgICAgIyBDcmVhdGUgYSBjZXJ0aWZpY2F0ZSB0aGF0 J3MgYWxyZWFkeSBleHBpcmVkCi0rICAgICAgICBjYSA9IFJTQV9DZXJ0aWZpY2F0ZSgpCi0rICAg ICAgICBjYS5uaWNrbmFtZSA9ICJUZXN0RXhwaXJlZF9DQSIKLSsgICAgICAgIGNhLmlzQ0EgPSBU cnVlCi0rICAgICAgICBjYS5pc1Jvb3QgPSBUcnVlCi0rICAgICAgICBjYS5maXhOYW1pbmdBdHRy aWJ1dGVzKCkKLSsgICAgICAgIGNhLnN1YmplY3QgPSB4NTA5Lk5hbWUoW3g1MDkuTmFtZUF0dHJp YnV0ZShrLCB2KSBmb3IgaywgdiBpbiBjYS5uYW1pbmdBdHRycy5pdGVtcygpXSkKLSsgICAgICAg IGNhLmlzc3VlciA9IGNhLnN1YmplY3QKLSsgICAgICAgIGNhLnRydXN0ID0gJ0NULCwnCi0rCi0r ICAgICAgICAjIEdlbmVyYXRlIHdpdGggZGF0ZXMgaW4gdGhlIHBhc3QKLSsgICAgICAgIHBhc3Rf ZGF0ZSA9IHV0Y2RhdGUoKSAtIGRhdGV0aW1lLnRpbWVkZWx0YShkYXlzPTM2NSkKLSsgICAgICAg IGV4cGlyZWRfZGF0ZSA9IHV0Y2RhdGUoKSAtIGRhdGV0aW1lLnRpbWVkZWx0YShkYXlzPTEpCi0r Ci0rICAgICAgICBjYS5wa2V5ID0gcnNhLmdlbmVyYXRlX3ByaXZhdGVfa2V5KAotKyAgICAgICAg ICAgIHB1YmxpY19leHBvbmVudD02NTUzNywKLSsgICAgICAgICAgICBrZXlfc2l6ZT0yMDQ4LAot KyAgICAgICAgICAgIGJhY2tlbmQ9ZGVmYXVsdF9iYWNrZW5kKCkKLSsgICAgICAgICkKLSsgICAg ICAgIGNhLmNlcnQgPSAoCi0rICAgICAgICAgICAgeDUwOS5DZXJ0aWZpY2F0ZUJ1aWxkZXIoKQot KyAgICAgICAgICAgIC5zdWJqZWN0X25hbWUoY2Euc3ViamVjdCkKLSsgICAgICAgICAgICAuaXNz dWVyX25hbWUoY2EuaXNzdWVyKQotKyAgICAgICAgICAgIC5wdWJsaWNfa2V5KGNhLnBrZXkucHVi bGljX2tleSgpKQotKyAgICAgICAgICAgIC5zZXJpYWxfbnVtYmVyKHg1MDkucmFuZG9tX3Nlcmlh bF9udW1iZXIoKSkKLSsgICAgICAgICAgICAubm90X3ZhbGlkX2JlZm9yZShwYXN0X2RhdGUpCi0r ICAgICAgICAgICAgLm5vdF92YWxpZF9hZnRlcihleHBpcmVkX2RhdGUpCi0rICAgICAgICAgICAg LmFkZF9leHRlbnNpb24oCi0rICAgICAgICAgICAgICAgIHg1MDkuQmFzaWNDb25zdHJhaW50cyhj YT1UcnVlLCBwYXRoX2xlbmd0aD0wKSwKLSsgICAgICAgICAgICAgICAgY3JpdGljYWw9VHJ1ZSwK LSsgICAgICAgICAgICApCi0rICAgICAgICAgICAgLnNpZ24oY2EucGtleSwgaGFzaGVzLlNIQTI1 NigpLCBkZWZhdWx0X2JhY2tlbmQoKSkKLSsgICAgICAgICkKLSsgICAgICAgIGNhLnNhdmUoZGly KQotKwotKyAgICAgICAgIyBBZGQgZXhwaXJlZCBjZXJ0aWZpY2F0ZSAobWF5IG5lZWQgZm9yY2Ug ZmxhZykKLSsgICAgICAgIGR5bmNlcnRzID0gRHluYW1pY0NlcnRzKGluc3QpCi0rICAgICAgICB0 cnk6Ci0rICAgICAgICAgICAgZHluY2VydHMuYWRkX2NlcnQoY2EucGVtLCBjYS5uaWNrbmFtZSwg Y2E9VHJ1ZSwgZm9yY2U9VHJ1ZSkKLSsgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSsg ICAgICAgICAgICBsb2cuaW5mbyhmIkFkZGluZyBleHBpcmVkIGNlcnQgcmFpc2VkOiB7ZX0iKQot KyAgICAgICAgICAgIHJldHVybiAgIyBFeHBlY3RlZCAtIHNlcnZlciBtYXkgcmVqZWN0IGV4cGly ZWQgY2VydHMKLSsKLSsgICAgICAgICMgVmVyaWZ5IGNlcnRpZmljYXRlIG1ldGFkYXRhIHNob3dz IGV4cGlyYXRpb24KLSsgICAgICAgIGNhX29iaiA9IGR5bmNlcnRzLmdldF9jZXJ0X29iaihjYS5u aWNrbmFtZSkKLSsgICAgICAgIGlmIGNhX29iajoKLSsgICAgICAgICAgICBub3RfYmVmb3JlID0g Y2Ffb2JqLmdldF9hdHRyX3ZhbF91dGY4KCdkc0R5bmFtaWNDZXJ0aWZpY2F0ZU5vdEJlZm9yZScp Ci0rICAgICAgICAgICAgbm90X2FmdGVyID0gY2Ffb2JqLmdldF9hdHRyX3ZhbF91dGY4KCdkc0R5 bmFtaWNDZXJ0aWZpY2F0ZU5vdEFmdGVyJykKLSsgICAgICAgICAgICBsb2cuaW5mbyhmIkV4cGly ZWQgY2VydCAtIE5vdCBCZWZvcmU6IHtub3RfYmVmb3JlfSIpCi0rICAgICAgICAgICAgbG9nLmlu Zm8oZiJFeHBpcmVkIGNlcnQgLSBOb3QgQWZ0ZXI6IHtub3RfYWZ0ZXJ9IikKLSsKLSsgICAgICAg ICAgICB2ZXJpZnlfc3RhdHVzID0gY2Ffb2JqLmdldF9hdHRyX3ZhbF91dGY4KCdkc0R5bmFtaWND ZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvblN0YXR1cycpCi0rICAgICAgICAgICAgaWYgdmVyaWZ5X3N0 YXR1czoKLSsgICAgICAgICAgICAgICAgbG9nLmluZm8oZiJWZXJpZmljYXRpb24gc3RhdHVzIChz aG91bGQgaW5kaWNhdGUgZXhwaXJlZCk6IHt2ZXJpZnlfc3RhdHVzfSIpCi0rCi0rICAgICAgICAg ICAgIyBDbGVhbnVwCi0rICAgICAgICAgICAgZHluY2VydHMuZGVsX2NlcnQoY2Eubmlja25hbWUp Ci0rCi0rICAgIGZpbmFsbHk6Ci0rICAgICAgICBpZiBub3QgREVCVUdHSU5HOgotKyAgICAgICAg ICAgIHNodXRpbC5ybXRyZWUoZGlyLCBpZ25vcmVfZXJyb3JzPVRydWUpCi0rCi0rCi0rZGVmIHRl c3RfbGlzdF9hbmRfZ2V0X29wZXJhdGlvbnModG9wbywgc2V0dXBfdGxzKToKLSsgICAgIiIiVGVz dCBsaXN0aW5nIGFuZCByZXRyaWV2YWwgb3BlcmF0aW9ucwotKwotKyAgICA6aWQ6IGUxZjJhM2I0 LTExMTEtMjIyMi0zMzMzLTQ0NDQ0NDQ0NDQ0NAotKyAgICA6c2V0dXA6IFN0YW5kYWxvbmUgSW5z dGFuY2Ugd2l0aCBUTFMgZW5hYmxlZAotKyAgICA6c3RlcHM6Ci0rICAgICAgICAxLiBBZGQgQ0Eg YW5kIHNlcnZlciBjZXJ0aWZpY2F0ZXMKLSsgICAgICAgIDIuIFVzZSBsaXN0KCkgdG8gZ2V0IGFs bCBjZXJ0aWZpY2F0ZSBvYmplY3RzCi0rICAgICAgICAzLiBVc2UgbGlzdF9jYV9jZXJ0cygpIHRv IGdldCBDQSBjZXJ0IGRldGFpbHMKLSsgICAgICAgIDQuIFVzZSBsaXN0X2NlcnRzKCkgdG8gZ2V0 IHNlcnZlciBjZXJ0IGRldGFpbHMKLSsgICAgICAgIDUuIFVzZSBnZXRfY2VydF9vYmooKSB0byBy ZXRyaWV2ZSBzcGVjaWZpYyBjZXJ0aWZpY2F0ZQotKyAgICAgICAgNi4gVXNlIGdldF9jZXJ0X2Rl dGFpbHMoKSB0byBnZXQgZm9ybWF0dGVkIGRldGFpbHMKLSsgICAgOmV4cGVjdGVkcmVzdWx0czoK LSsgICAgICAgIDEuIENlcnRpZmljYXRlcyBhZGRlZCBzdWNjZXNzZnVsbHkKLSsgICAgICAgIDIu IGxpc3QoKSByZXR1cm5zIERTTGRhcE9iamVjdCBpbnN0YW5jZXMKLSsgICAgICAgIDMuIGxpc3Rf Y2FfY2VydHMoKSByZXR1cm5zIGRpY3Qgd2l0aCBDQSBpbmZvCi0rICAgICAgICA0LiBsaXN0X2Nl cnRzKCkgcmV0dXJucyBkaWN0IHdpdGggc2VydmVyIGNlcnQgaW5mbwotKyAgICAgICAgNS4gZ2V0 X2NlcnRfb2JqKCkgcmV0dXJucyBEeW5hbWljQ2VydCBvYmplY3QKLSsgICAgICAgIDYuIGdldF9j ZXJ0X2RldGFpbHMoKSByZXR1cm5zIGZvcm1hdHRlZCBkaWN0aW9uYXJ5Ci0rICAgICIiIgotKyAg ICBpbnN0ID0gc2V0dXBfdGxzCi0rICAgIGRpciA9ICcvdG1wL2R5bmNlcnRfbGlzdF90ZXN0Jwot KyAgICBvcy5tYWtlZGlycyhkaXIsIDBvNzAwLCBleGlzdF9vaz1UcnVlKQotKwotKyAgICB0cnk6 Ci0rICAgICAgICBkeW5jZXJ0cyA9IER5bmFtaWNDZXJ0cyhpbnN0KQotKwotKyAgICAgICAgIyBB ZGQgY2VydGlmaWNhdGVzCi0rICAgICAgICBjYSA9IFJTQV9DZXJ0aWZpY2F0ZS5nZW5lcmF0ZVJv b3RDQSgiVGVzdExpc3RfQ0EiKQotKyAgICAgICAgY2Euc2F2ZShkaXIpCi0rICAgICAgICBkeW5j ZXJ0cy5hZGRfY2VydChjYS5wZW0sIGNhLm5pY2tuYW1lLCBjYT1UcnVlKQotKwotKyAgICAgICAg Y2VydCA9IGNhLmdlbmVyYXRlQ2VydGlmaWNhdGUoIlRlc3RMaXN0X0NlcnQiKQotKyAgICAgICAg Y2VydC5zYXZlKGRpcikKLSsgICAgICAgIGR5bmNlcnRzLmFkZF9jZXJ0KGNlcnQucDEyLCBjZXJ0 Lm5pY2tuYW1lLCBwa2NzMTJfcGFzc3dvcmQ9UlNBX0NlcnRpZmljYXRlLlBLQ1MxMl9QQVNTV09S RCkKLSsKLSsgICAgICAgICMgVGVzdCBsaXN0KCkgLSByZXR1cm5zIER5bmFtaWNDZXJ0IG9iamVj dHMKLSsgICAgICAgIGFsbF9vYmpzID0gZHluY2VydHMubGlzdCgpCi0rICAgICAgICBsb2cuaW5m byhmImxpc3QoKSByZXR1cm5lZCB7bGVuKGFsbF9vYmpzKX0gb2JqZWN0cyIpCi0rICAgICAgICBh c3NlcnQgYW55KGlzaW5zdGFuY2Uob2JqLCBEeW5hbWljQ2VydCkgYW5kIG9iai5nZXRfYXR0cl92 YWxfdXRmOCgnY24nKSA9PSBjYS5uaWNrbmFtZQotKyAgICAgICAgICAgICAgICAgICBmb3Igb2Jq IGluIGFsbF9vYmpzIGlmIG9iai5fZG4gIT0gRFlOQ0VSVF9TVUZGSVgpCi0rCi0rICAgICAgICAj IFRlc3QgbGlzdF9jYV9jZXJ0cygpIC0gcmV0dXJucyBsaXN0IG9mIGRpY3RzCi0rICAgICAgICBj YV9saXN0ID0gZHluY2VydHMubGlzdF9jYV9jZXJ0cygpCi0rICAgICAgICBsb2cuaW5mbyhmImxp c3RfY2FfY2VydHMoKSByZXR1cm5lZCB7bGVuKGNhX2xpc3QpfSBDQXMiKQotKyAgICAgICAgYXNz ZXJ0IGFueShjWydjbiddID09IGNhLm5pY2tuYW1lIGZvciBjIGluIGNhX2xpc3QpCi0rICAgICAg ICBjYV9lbnRyeSA9IG5leHQoYyBmb3IgYyBpbiBjYV9saXN0IGlmIGNbJ2NuJ10gPT0gY2Eubmlj a25hbWUpCi0rICAgICAgICBhc3NlcnQgJ3N1YmplY3QnIGluIGNhX2VudHJ5Ci0rICAgICAgICBh c3NlcnQgJ2lzc3VlcicgaW4gY2FfZW50cnkKLSsgICAgICAgIGFzc2VydCAnZXhwaXJlcycgaW4g Y2FfZW50cnkKLSsgICAgICAgIGFzc2VydCAndHJ1c3RfZmxhZ3MnIGluIGNhX2VudHJ5Ci0rCi0r ICAgICAgICAjIFRlc3QgbGlzdF9jZXJ0cygpIC0gcmV0dXJucyBsaXN0IG9mIGRpY3RzCi0rICAg ICAgICBjZXJ0X2xpc3QgPSBkeW5jZXJ0cy5saXN0X2NlcnRzKCkKLSsgICAgICAgIGxvZy5pbmZv KGYibGlzdF9jZXJ0cygpIHJldHVybmVkIHtsZW4oY2VydF9saXN0KX0gc2VydmVyIGNlcnRzIikK LSsgICAgICAgIGFzc2VydCBhbnkoY1snY24nXSA9PSBjZXJ0Lm5pY2tuYW1lIGZvciBjIGluIGNl cnRfbGlzdCkKLSsKLSsgICAgICAgICMgVGVzdCBnZXRfY2VydF9vYmooKSAtIHJldHVybnMgRHlu YW1pY0NlcnQgb2JqZWN0Ci0rICAgICAgICBjYV9vYmogPSBkeW5jZXJ0cy5nZXRfY2VydF9vYmoo Y2Eubmlja25hbWUpCi0rICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShjYV9vYmosIER5bmFtaWND ZXJ0KQotKyAgICAgICAgYXNzZXJ0IGNhX29iai5nZXRfYXR0cl92YWxfdXRmOCgnY24nKSA9PSBj YS5uaWNrbmFtZQotKwotKyAgICAgICAgIyBUZXN0IGdldF9jZXJ0X2RldGFpbHMoKSAtIHJldHVy bnMgZm9ybWF0dGVkIGRpY3QKLSsgICAgICAgIGNhX2RldGFpbHMgPSBkeW5jZXJ0cy5nZXRfY2Vy dF9kZXRhaWxzKGNhLm5pY2tuYW1lKQotKyAgICAgICAgYXNzZXJ0IGNhX2RldGFpbHNbJ2NuJ10g PT0gY2Eubmlja25hbWUKLSsgICAgICAgIGFzc2VydCAnc3ViamVjdCcgaW4gY2FfZGV0YWlscwot KyAgICAgICAgYXNzZXJ0ICdpc3N1ZXInIGluIGNhX2RldGFpbHMKLSsgICAgICAgIGFzc2VydCAn ZXhwaXJlcycgaW4gY2FfZGV0YWlscwotKyAgICAgICAgYXNzZXJ0ICd0cnVzdF9mbGFncycgaW4g Y2FfZGV0YWlscwotKyAgICAgICAgbG9nLmluZm8oZiJnZXRfY2VydF9kZXRhaWxzKCkgcmV0dXJu ZWQ6IHtjYV9kZXRhaWxzfSIpCi0rCi0rICAgICAgICAjIENsZWFudXAKLSsgICAgICAgIGR5bmNl cnRzLmRlbF9jZXJ0KGNhLm5pY2tuYW1lKQotKyAgICAgICAgZHluY2VydHMuZGVsX2NlcnQoY2Vy dC5uaWNrbmFtZSkKLSsKLSsgICAgZmluYWxseToKLSsgICAgICAgIGlmIG5vdCBERUJVR0dJTkc6 Ci0rICAgICAgICAgICAgc2h1dGlsLnJtdHJlZShkaXIsIGlnbm9yZV9lcnJvcnM9VHJ1ZSkKLSsK LSsKLStkZWYgcGVtX2ZpbGVfdG9fZGVyKHBlbV9maWxlX3BhdGgpOgotKyAgICBsb2cuZGVidWco ZiJEZWNvZGluZyBjZXJ0IHBlbToge3BlbV9maWxlX3BhdGh9IikKLSsgICAgd2l0aCBvcGVuKHBl bV9maWxlX3BhdGgsICJyYiIpIGFzIGY6Ci0rICAgICAgICBwZW1fX2J5dGVzID0gZi5yZWFkKCkK LSsgICAgICAgIHRyeToKLSsgICAgICAgICAgICByZXR1cm4gcGVtX3RvX2RlcihwZW1fX2J5dGVz KQotKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotKyAgICAgICAgICAgIHJhaXNlIFZh bHVlRXJyb3IoZiJGYWlsZWQgdG8gcGFyc2UgY2VydGlmaWNhdGUgJ3twZW1fZmlsZV9wYXRofSc6 IHtlfSIpCi0rCi0rCi0rQHB5dGVzdC5tYXJrLnNraXBpZihycG1faXNfb2xkZXIoIm9wZW5zc2wi LCAiMy41IiksIHJlYXNvbj0iT3BlblNTTCB0b28gb2xkIHRvIHN1cHBvcnQgUFFDIikKLStAcHl0 ZXN0Lm1hcmsuc2tpcGlmKHJwbV9pc19vbGRlcigibnNzIiwgIjMuMTE5LjEiKSwgcmVhc29uPSJO U1MgdG9vIG9sZCB0byBzdXBwb3J0IFBRQyIpCi0rQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ3 aXRoX3ByaXZhdGVfa2V5IiwgW0ZhbHNlLCBweXRlc3QucGFyYW0oVHJ1ZSwgbWFya3M9cHl0ZXN0 Lm1hcmsueGZhaWwocmVhc29uPSdjcnlwdG9ncmFwaHkgbW9kdWxlIGRvZXMgbm90IHN1cHBvcnQg TUwtRFNBIGtleXMnKSksXSkKLStkZWYgdGVzdF9tbGRzYV9keW5hbWljX2NlcnRpZmljYXRlcyh0 b3BvLCBzZXR1cF90bHMsIHdpdGhfcHJpdmF0ZV9rZXkpOgotKyAgICAiIiJUZXN0IE1MLURTQSAo cG9zdC1xdWFudHVtKSBjZXJ0aWZpY2F0ZXMgd2l0aCBEeW5hbWljIENlcnRpZmljYXRlcyBmZWF0 dXJlCi0rCi0rICAgIDppZDogZjJhM2I0YzUtMjIyMi0zMzMzLTQ0NDQtNTU1NTU1NTU1NTU1Ci0r ICAgIDpzZXR1cDogU3RhbmRhbG9uZSBJbnN0YW5jZSB3aXRoIFRMUyBlbmFibGVkCi0rICAgIDpz dGVwczoKLSsgICAgICAgIDEuIEdlbmVyYXRlIE1MLURTQS04NyBSb290IENBIGNlcnRpZmljYXRl IHVzaW5nIE9wZW5TU0wKLSsgICAgICAgIDIuIEdlbmVyYXRlIE1MLURTQS02NSBzZXJ2ZXIgY2Vy dGlmaWNhdGUgc2lnbmVkIGJ5IENBCi0rICAgICAgICAzLiBBZGQgQ0EgY2VydGlmaWNhdGUgZHlu YW1pY2FsbHkgdXNpbmcgRHluYW1pY0NlcnRzCi0rICAgICAgICA0LiBBZGQgc2VydmVyIGNlcnRp ZmljYXRlIGR5bmFtaWNhbGx5IHVzaW5nIER5bmFtaWNDZXJ0cyAod2l0aCBvciB3aXRob3V0IHBy aXZhdGUga2V5KQotKyAgICAgICAgNS4gVmVyaWZ5IENBIGtleSBhbGdvcml0aG0gc2hvd3MgTUwt RFNBCi0rICAgICAgICA2LiBWZXJpZnkgc2VydmVyIGNlcnQga2V5IGFsZ29yaXRobSBzaG93cyBN TC1EU0EKLSsgICAgICAgIDcuIFZlcmlmeSBhbGwgY2VydGlmaWNhdGUgbWV0YWRhdGEgaXMgY29y cmVjdGx5IGV4dHJhY3RlZAotKyAgICAgICAgOC4gVmVyaWZ5IENBIGlzIGlkZW50aWZpZWQgY29y cmVjdGx5Ci0rICAgICAgICA5LiBWZXJpZnkgc2VydmVyIGNlcnQgaGFzIHByaXZhdGUga2V5IGJh c2VkIG9uIHBhcmFtZXRlcgotKyAgICAgICAgMTAuIFRlc3QgY2VydGlmaWNhdGUgbGlzdGluZyBv cGVyYXRpb25zCi0rICAgIDpleHBlY3RlZHJlc3VsdHM6Ci0rICAgICAgICAxLiBNTC1EU0EgQ0Eg Z2VuZXJhdGVkIHN1Y2Nlc3NmdWxseQotKyAgICAgICAgMi4gTUwtRFNBIHNlcnZlciBjZXJ0IGdl bmVyYXRlZCBzdWNjZXNzZnVsbHkKLSsgICAgICAgIDMuIENBIGFkZGVkIHdpdGhvdXQgZXJyb3IK LSsgICAgICAgIDQuIFNlcnZlciBjZXJ0IGFkZGVkIHdpdGhvdXQgZXJyb3IgKHdpdGggb3Igd2l0 aG91dCBrZXkpCi0rICAgICAgICA1LiBDQSBrZXkgYWxnb3JpdGhtIGNvbnRhaW5zIE1MLURTQQot KyAgICAgICAgNi4gU2VydmVyIGNlcnQga2V5IGFsZ29yaXRobSBjb250YWlucyBNTC1EU0EKLSsg ICAgICAgIDcuIEFsbCBtZXRhZGF0YSBhdHRyaWJ1dGVzIHByZXNlbnQgYW5kIGNvcnJlY3QKLSsg ICAgICAgIDguIGlzQ0EgaXMgVFJVRSBmb3IgQ0EKLSsgICAgICAgIDkuIGhhc1ByaXZhdGVLZXkg bWF0Y2hlcyB3aXRoX3ByaXZhdGVfa2V5IHBhcmFtZXRlcgotKyAgICAgICAgMTAuIENlcnRpZmlj YXRlcyBhcHBlYXIgaW4gbGlzdCBvcGVyYXRpb25zCi0rICAgICIiIgotKyAgICBpbnN0ID0gc2V0 dXBfdGxzCi0rICAgIGZpeF9jcmFzaF9pc3N1ZV83MjI3KGluc3QpCi0rICAgIGtleV9zdWZmaXgg PSAnd2l0aF9rZXknIGlmIHdpdGhfcHJpdmF0ZV9rZXkgZWxzZSAnd2l0aG91dF9rZXknCi0rICAg IGRpciA9IGYnL3RtcC9keW5jZXJ0X21sZHNhX3Rlc3Rfe2tleV9zdWZmaXh9JwotKyAgICBvcy5t YWtlZGlycyhkaXIsIDBvNzAwLCBleGlzdF9vaz1UcnVlKQotKwotKyAgICBjYV9jb25maWcgPSAi IiIKLStbIHJlcSBdCi0rZGlzdGluZ3Vpc2hlZF9uYW1lID0gcmVxX2Rpc3Rpbmd1aXNoZWRfbmFt ZQotK3BvbGljeSAgICAgICAgICAgICA9IHBvbGljeV9tYXRjaAotK3g1MDlfZXh0ZW5zaW9ucyAg ICA9IHYzX2NhCi0rCi0rWyBwb2xpY3lfbWF0Y2ggXQotK2NvdW50cnlOYW1lICAgICAgICAgICAg ID0gb3B0aW9uYWwKLStzdGF0ZU9yUHJvdmluY2VOYW1lICAgICA9IG9wdGlvbmFsCi0rb3JnYW5p emF0aW9uTmFtZSAgICAgICAgPSBvcHRpb25hbAotK29yZ2FuaXphdGlvbmFsVW5pdE5hbWUgID0g b3B0aW9uYWwKLStjb21tb25OYW1lICAgICAgICAgICAgICA9IHN1cHBsaWVkCi0rZW1haWxBZGRy ZXNzICAgICAgICAgICAgPSBvcHRpb25hbAotKwotK1sgcmVxX2Rpc3Rpbmd1aXNoZWRfbmFtZSBd Ci0rY291bnRyeU5hbWUgICAgICAgICAgICAgPSBDb3VudHJ5IE5hbWUgKDIgbGV0dGVyIGNvZGUp Ci0rY291bnRyeU5hbWVfZGVmYXVsdCAgICAgPSBVUwotK2NvdW50cnlOYW1lX21pbiAgICAgICAg ID0gMgotK2NvdW50cnlOYW1lX21heCAgICAgICAgID0gMgotKwotK3N0YXRlT3JQcm92aW5jZU5h bWUgICAgID0gU3RhdGUgb3IgUHJvdmluY2UgTmFtZSAoZnVsbCBuYW1lKQotK2xvY2FsaXR5TmFt ZSAgICAgICAgICAgID0gTG9jYWxpdHkgTmFtZSAoZWcsIGNpdHkpCi0rCi0rMC5vcmdhbml6YXRp b25OYW1lICAgICAgPSBPcmdhbml6YXRpb24gTmFtZSAoZWcsIGNvbXBhbnkpCi0rMC5vcmdhbml6 YXRpb25OYW1lX2RlZmF1bHQgPSBUZXN0TUxEU0EtQ0EtT3JnCi0rCi0rb3JnYW5pemF0aW9uYWxV bml0TmFtZSAgPSBPcmdhbml6YXRpb25hbCBVbml0IE5hbWUgKGVnLCBzZWN0aW9uKQotK2NvbW1v bk5hbWUgICAgICAgICAgICAgID0gQ29tbW9uIE5hbWUgKGUuZy4gc2VydmVyIEZRRE4gb3IgWU9V UiBuYW1lKQotK2NvbW1vbk5hbWVfbWF4ICAgICAgICAgID0gNjQKLSsKLStbIHYzX2NhIF0KLStz dWJqZWN0S2V5SWRlbnRpZmllciA9IGhhc2gKLSthdXRob3JpdHlLZXlJZGVudGlmaWVyID0ga2V5 aWQ6YWx3YXlzLGlzc3VlcgotK2Jhc2ljQ29uc3RyYWludHMgPSBjcml0aWNhbCxDQTp0cnVlCi0r a2V5VXNhZ2UgPSBjcml0aWNhbCwga2V5Q2VydFNpZ24KLSsiIiIKLSsKLSsgICAgY2VydF9jb25m aWcgPSAiIiIKLStbIHJlcSBdCi0rZGlzdGluZ3Vpc2hlZF9uYW1lID0gcmVxX2Rpc3Rpbmd1aXNo ZWRfbmFtZQotK3BvbGljeSAgICAgICAgICAgICA9IHBvbGljeV9tYXRjaAotK3g1MDlfZXh0ZW5z aW9ucyAgICA9IHYzX2NlcnQKLSsKLStbIHBvbGljeV9tYXRjaCBdCi0rY291bnRyeU5hbWUgICAg ICAgICAgICAgPSBvcHRpb25hbAotK3N0YXRlT3JQcm92aW5jZU5hbWUgICAgID0gb3B0aW9uYWwK LStvcmdhbml6YXRpb25OYW1lICAgICAgICA9IG9wdGlvbmFsCi0rb3JnYW5pemF0aW9uYWxVbml0 TmFtZSAgPSBvcHRpb25hbAotK2NvbW1vbk5hbWUgICAgICAgICAgICAgID0gc3VwcGxpZWQKLStl bWFpbEFkZHJlc3MgICAgICAgICAgICA9IG9wdGlvbmFsCi0rCi0rWyByZXFfZGlzdGluZ3Vpc2hl ZF9uYW1lIF0KLStjb3VudHJ5TmFtZSAgICAgICAgICAgICA9IENvdW50cnkgTmFtZSAoMiBsZXR0 ZXIgY29kZSkKLStjb3VudHJ5TmFtZV9kZWZhdWx0ICAgICA9IFVTCi0rY291bnRyeU5hbWVfbWlu ICAgICAgICAgPSAyCi0rY291bnRyeU5hbWVfbWF4ICAgICAgICAgPSAyCi0rCi0rc3RhdGVPclBy b3ZpbmNlTmFtZSAgICAgPSBTdGF0ZSBvciBQcm92aW5jZSBOYW1lIChmdWxsIG5hbWUpCi0rbG9j YWxpdHlOYW1lICAgICAgICAgICAgPSBMb2NhbGl0eSBOYW1lIChlZywgY2l0eSkKLSsKLSswLm9y Z2FuaXphdGlvbk5hbWUgICAgICA9IE9yZ2FuaXphdGlvbiBOYW1lIChlZywgY29tcGFueSkKLSsw Lm9yZ2FuaXphdGlvbk5hbWVfZGVmYXVsdCA9IFRlc3RNTERTQS1PcmcKLSsKLStvcmdhbml6YXRp b25hbFVuaXROYW1lICA9IE9yZ2FuaXphdGlvbmFsIFVuaXQgTmFtZSAoZWcsIHNlY3Rpb24pCi0r Y29tbW9uTmFtZSAgICAgICAgICAgICAgPSBDb21tb24gTmFtZSAoZS5nLiBzZXJ2ZXIgRlFETiBv ciBZT1VSIG5hbWUpCi0rY29tbW9uTmFtZV9tYXggICAgICAgICAgPSA2NAotKwotK1sgdjNfY2Vy dCBdCi0rYmFzaWNDb25zdHJhaW50cyA9IGNyaXRpY2FsLENBOmZhbHNlCi0rc3ViamVjdEFsdE5h bWUgPSBETlM6bG9jYWxob3N0LElQOjEyNy4wLjAuMQotK2tleVVzYWdlID0gZGlnaXRhbFNpZ25h dHVyZSwgbm9uUmVwdWRpYXRpb24sIGtleUVuY2lwaGVybWVudCwgZGF0YUVuY2lwaGVybWVudAot K2V4dGVuZGVkS2V5VXNhZ2UgPSBjbGllbnRBdXRoLCBzZXJ2ZXJBdXRoCi0rIiIiCi0rCi0rICAg IHRyeToKLSsgICAgICAgIGhvc3RuYW1lID0gc29ja2V0LmdldGhvc3RuYW1lKCkKLSsKLSsgICAg ICAgICMgV3JpdGUgY29uZmlnIGZpbGVzCi0rICAgICAgICBjYV9jb25mX2ZpbGUgPSBmIntkaXJ9 L2NhLmNvbmYiCi0rICAgICAgICBjZXJ0X2NvbmZfZmlsZSA9IGYie2Rpcn0vY2VydC5jb25mIgot KwotKyAgICAgICAgd2l0aCBvcGVuKGNhX2NvbmZfZmlsZSwgJ3cnKSBhcyBmOgotKyAgICAgICAg ICAgIGYud3JpdGUoY2FfY29uZmlnKQotKwotKyAgICAgICAgd2l0aCBvcGVuKGNlcnRfY29uZl9m aWxlLCAndycpIGFzIGY6Ci0rICAgICAgICAgICAgZi53cml0ZShjZXJ0X2NvbmZpZykKLSsKLSsg ICAgICAgICMgR2VuZXJhdGUgTUwtRFNBLTg3IENBIGNlcnRpZmljYXRlCi0rICAgICAgICBsb2cu aW5mbygiR2VuZXJhdGluZyBNTC1EU0EtODcgQ0EgY2VydGlmaWNhdGUuLi4iKQotKwotKyAgICAg ICAgIyBHZW5lcmF0ZSBDQSBwcml2YXRlIGtleQotKyAgICAgICAgcmVzdWx0ID0gc3VicHJvY2Vz cy5ydW4oCi0rICAgICAgICAgICAgWydvcGVuc3NsJywgJ2dlbnBrZXknLCAnLWFsZ29yaXRobScs ICdNTC1EU0EtODcnLCAnLW91dCcsIGYne2Rpcn0vY2Eua2V5J10sCi0rICAgICAgICAgICAgY2Fw dHVyZV9vdXRwdXQ9VHJ1ZSwgdGV4dD1UcnVlLCBjaGVjaz1UcnVlCi0rICAgICAgICApCi0rICAg ICAgICBsb2cuZGVidWcoZiJDQSBrZXkgZ2VuZXJhdGlvbiBvdXRwdXQ6IHtyZXN1bHQuc3RkZXJy fSIpCi0rCi0rICAgICAgICAjIEdlbmVyYXRlIHNlbGYtc2lnbmVkIENBIGNlcnRpZmljYXRlCi0r ICAgICAgICByZXN1bHQgPSBzdWJwcm9jZXNzLnJ1bigKLSsgICAgICAgICAgICBbJ29wZW5zc2wn LCAncmVxJywgJy14NTA5JywgJy1uZXcnLCAnLXNoYTI1NicsICcta2V5JywgZid7ZGlyfS9jYS5r ZXknLAotKyAgICAgICAgICAgICAnLW5vZGVzJywgJy1kYXlzJywgJzM2NTAnLCAnLWNvbmZpZycs IGNhX2NvbmZfZmlsZSwKLSsgICAgICAgICAgICAgJy1zdWJqJywgZicvQ049VGVzdE1MRFNBLUNB L089VGVzdE1MRFNBLUNBLU9yZy9DPVVTJywKLSsgICAgICAgICAgICAgJy1vdXQnLCBmJ3tkaXJ9 L2NhLnBlbSddLAotKyAgICAgICAgICAgIGNhcHR1cmVfb3V0cHV0PVRydWUsIHRleHQ9VHJ1ZSwg Y2hlY2s9VHJ1ZQotKyAgICAgICAgKQotKyAgICAgICAgbG9nLmRlYnVnKGYiQ0EgY2VydCBnZW5l cmF0aW9uIG91dHB1dDoge3Jlc3VsdC5zdGRlcnJ9IikKLSsKLSsgICAgICAgICMgR2VuZXJhdGUg TUwtRFNBLTY1IHNlcnZlciBjZXJ0aWZpY2F0ZQotKyAgICAgICAgbG9nLmluZm8oIkdlbmVyYXRp bmcgTUwtRFNBLTY1IHNlcnZlciBjZXJ0aWZpY2F0ZS4uLiIpCi0rCi0rICAgICAgICAjIEdlbmVy YXRlIHNlcnZlciBwcml2YXRlIGtleQotKyAgICAgICAgcmVzdWx0ID0gc3VicHJvY2Vzcy5ydW4o Ci0rICAgICAgICAgICAgWydvcGVuc3NsJywgJ2dlbnBrZXknLCAnLWFsZ29yaXRobScsICdNTC1E U0EtNjUnLCAnLW91dCcsIGYne2Rpcn0vY2VydC5rZXknXSwKLSsgICAgICAgICAgICBjYXB0dXJl X291dHB1dD1UcnVlLCB0ZXh0PVRydWUsIGNoZWNrPVRydWUKLSsgICAgICAgICkKLSsgICAgICAg IGxvZy5kZWJ1ZyhmIlNlcnZlciBrZXkgZ2VuZXJhdGlvbiBvdXRwdXQ6IHtyZXN1bHQuc3RkZXJy fSIpCi0rCi0rICAgICAgICAjIEdlbmVyYXRlIGNlcnRpZmljYXRlIHNpZ25pbmcgcmVxdWVzdAot KyAgICAgICAgcmVzdWx0ID0gc3VicHJvY2Vzcy5ydW4oCi0rICAgICAgICAgICAgWydvcGVuc3Ns JywgJ3JlcScsICctbmV3JywgJy1zaGEyNTYnLCAnLWtleScsIGYne2Rpcn0vY2VydC5rZXknLAot KyAgICAgICAgICAgICAnLW5vZGVzJywgJy1jb25maWcnLCBjZXJ0X2NvbmZfZmlsZSwKLSsgICAg ICAgICAgICAgJy1zdWJqJywgZicvQ049VGVzdE1MRFNBLUNlcnQvTz1UZXN0TUxEU0EtT3JnL0M9 VVMnLAotKyAgICAgICAgICAgICAnLW91dCcsIGYne2Rpcn0vY2VydC5jc3InXSwKLSsgICAgICAg ICAgICBjYXB0dXJlX291dHB1dD1UcnVlLCB0ZXh0PVRydWUsIGNoZWNrPVRydWUKLSsgICAgICAg ICkKLSsgICAgICAgIGxvZy5kZWJ1ZyhmIkNTUiBnZW5lcmF0aW9uIG91dHB1dDoge3Jlc3VsdC5z dGRlcnJ9IikKLSsKLSsgICAgICAgICMgU2lnbiBzZXJ2ZXIgY2VydGlmaWNhdGUgd2l0aCBDQQot KyAgICAgICAgcmVzdWx0ID0gc3VicHJvY2Vzcy5ydW4oCi0rICAgICAgICAgICAgWydvcGVuc3Ns JywgJ3g1MDknLCAnLXJlcScsICctc2hhMjU2JywgJy1kYXlzJywgJzM2NTAnLAotKyAgICAgICAg ICAgICAnLWV4dGVuc2lvbnMnLCAndjNfY2VydCcsICctZXh0ZmlsZScsIGNlcnRfY29uZl9maWxl LAotKyAgICAgICAgICAgICAnLWluJywgZid7ZGlyfS9jZXJ0LmNzcicsICctQ0EnLCBmJ3tkaXJ9 L2NhLnBlbScsCi0rICAgICAgICAgICAgICctQ0FrZXknLCBmJ3tkaXJ9L2NhLmtleScsICctQ0Fj cmVhdGVzZXJpYWwnLAotKyAgICAgICAgICAgICAnLW91dCcsIGYne2Rpcn0vY2VydC5wZW0nXSwK LSsgICAgICAgICAgICBjYXB0dXJlX291dHB1dD1UcnVlLCB0ZXh0PVRydWUsIGNoZWNrPVRydWUK LSsgICAgICAgICkKLSsgICAgICAgIGxvZy5kZWJ1ZyhmIkNlcnQgc2lnbmluZyBvdXRwdXQ6IHty ZXN1bHQuc3RkZXJyfSIpCi0rCi0rICAgICAgICAjIENyZWF0ZSBQS0NTMTIgYnVuZGxlIGZvciBz ZXJ2ZXIgY2VydGlmaWNhdGUKLSsgICAgICAgIHJlc3VsdCA9IHN1YnByb2Nlc3MucnVuKAotKyAg ICAgICAgICAgIFsnb3BlbnNzbCcsICdwa2NzMTInLCAnLWV4cG9ydCcsICctaW5rZXknLCBmJ3tk aXJ9L2NlcnQua2V5JywKLSsgICAgICAgICAgICAgJy1pbicsIGYne2Rpcn0vY2VydC5wZW0nLCAn LW5hbWUnLCAnbWxkc2Etc2VydmVyLWNlcnQnLAotKyAgICAgICAgICAgICAnLW91dCcsIGYne2Rp cn0vY2VydC5wMTInLCAnLXBhc3NvdXQnLCAncGFzczptbGRzYTEyMyddLAotKyAgICAgICAgICAg IGNhcHR1cmVfb3V0cHV0PVRydWUsIHRleHQ9VHJ1ZSwgY2hlY2s9VHJ1ZQotKyAgICAgICAgKQot KyAgICAgICAgbG9nLmRlYnVnKGYiUEtDUzEyIGNyZWF0aW9uIG91dHB1dDoge3Jlc3VsdC5zdGRl cnJ9IikKLSsKLSsgICAgICAgICMgRGlzcGxheSBjZXJ0aWZpY2F0ZSBkZXRhaWxzIGZvciBkZWJ1 Z2dpbmcKLSsgICAgICAgIHJlc3VsdCA9IHN1YnByb2Nlc3MucnVuKAotKyAgICAgICAgICAgIFsn b3BlbnNzbCcsICd4NTA5JywgJy10ZXh0JywgJy1ub291dCcsICctaW4nLCBmJ3tkaXJ9L2NhLnBl bSddLAotKyAgICAgICAgICAgIGNhcHR1cmVfb3V0cHV0PVRydWUsIHRleHQ9VHJ1ZSwgY2hlY2s9 VHJ1ZQotKyAgICAgICAgKQotKyAgICAgICAgbG9nLmluZm8oZiJDQSBDZXJ0aWZpY2F0ZSBkZXRh aWxzOlxue3Jlc3VsdC5zdGRvdXR9IikKLSsKLSsgICAgICAgIHJlc3VsdCA9IHN1YnByb2Nlc3Mu cnVuKAotKyAgICAgICAgICAgIFsnb3BlbnNzbCcsICd4NTA5JywgJy10ZXh0JywgJy1ub291dCcs ICctaW4nLCBmJ3tkaXJ9L2NlcnQucGVtJ10sCi0rICAgICAgICAgICAgY2FwdHVyZV9vdXRwdXQ9 VHJ1ZSwgdGV4dD1UcnVlLCBjaGVjaz1UcnVlCi0rICAgICAgICApCi0rICAgICAgICBsb2cuaW5m byhmIlNlcnZlciBDZXJ0aWZpY2F0ZSBkZXRhaWxzOlxue3Jlc3VsdC5zdGRvdXR9IikKLSsKLSsg ICAgICAgICMgQWRkIGNlcnRpZmljYXRlcyB1c2luZyBEeW5hbWljQ2VydHMKLSsgICAgICAgIGR5 bmNlcnRzID0gRHluYW1pY0NlcnRzKGluc3QpCi0rCi0rICAgICAgICAjIEFkZCBDQSBjZXJ0aWZp Y2F0ZQotKyAgICAgICAgbG9nLmluZm8oIkFkZGluZyBNTC1EU0EgQ0EgY2VydGlmaWNhdGUgdG8g RHluYW1pYyBDZXJ0aWZpY2F0ZXMuLi4iKQotKyAgICAgICAgZHluY2VydHMuYWRkX2NlcnQoZid7 ZGlyfS9jYS5wZW0nLCAnVGVzdE1MRFNBX0NBJywgY2E9VHJ1ZSkKLSsKLSsgICAgICAgICMgQWRk IHNlcnZlciBjZXJ0aWZpY2F0ZSAod2l0aCBvciB3aXRob3V0IHByaXZhdGUga2V5IGJhc2VkIG9u IHBhcmFtZXRlcikKLSsgICAgICAgIGlmIHdpdGhfcHJpdmF0ZV9rZXk6Ci0rICAgICAgICAgICAg bG9nLmluZm8oIkFkZGluZyBNTC1EU0Egc2VydmVyIGNlcnRpZmljYXRlIFdJVEggcHJpdmF0ZSBr ZXkgdG8gRHluYW1pYyBDZXJ0aWZpY2F0ZXMuLi4iKQotKyAgICAgICAgICAgICMgTm90ZTogY2Fu bm90IHVzZSBkeW5jZXJ0cy5hZGRfY2VydCB3aXRoIFBLQ1MxMiBiZWNhdXNlIHB5dGhvbjMgY3J5 cHRvZ3JhcGh5Ci0rICAgICAgICAgICAgIyBtb2R1bGUgZG9lcyBub3QgeWV0IHN1cHBvcnQgTUwt RFNBLiBJbnN0ZWFkLCB1c2UgT3BlblNTTCB0byBjb252ZXJ0IHRvIERFUgotKyAgICAgICAgICAg ICMgYW5kIHVzZSBEeW5hbWljQ2VydHMuY3JlYXRlKCkgZGlyZWN0bHkKLSsgICAgICAgICAgICAj IGR5bmNlcnRzLmFkZF9jZXJ0KGYne2Rpcn0vY2VydC5wMTInLCAnVGVzdE1MRFNBX0NlcnQnLCBw a2NzMTJfcGFzc3dvcmQ9J21sZHNhMTIzJykKLSsKLSsgICAgICAgICAgICAjIENvbnZlcnQgY2Vy dGlmaWNhdGUgdG8gREVSIHVzaW5nIE9wZW5TU0wKLSsgICAgICAgICAgICByZXN1bHQgPSBzdWJw cm9jZXNzLnJ1bigKLSsgICAgICAgICAgICAgICAgWydvcGVuc3NsJywgJ3g1MDknLCAnLWluJywg Zid7ZGlyfS9jZXJ0LnBlbScsICctb3V0Zm9ybScsICdERVInLCAnLW91dCcsIGYne2Rpcn0vY2Vy dC5kZXInXSwKLSsgICAgICAgICAgICAgICAgY2FwdHVyZV9vdXRwdXQ9VHJ1ZSwgdGV4dD1UcnVl LCBjaGVjaz1UcnVlCi0rICAgICAgICAgICAgKQotKwotKyAgICAgICAgICAgICMgQ29udmVydCBw cml2YXRlIGtleSB0byBERVIgUHJpdmF0ZUtleUluZm8gKFBLQ1MjOCkgdXNpbmcgT3BlblNTTAot KyAgICAgICAgICAgIHJlc3VsdCA9IHN1YnByb2Nlc3MucnVuKAotKyAgICAgICAgICAgICAgICBb J29wZW5zc2wnLCAncGtjczgnLCAnLXRvcGs4JywgJy1ub2NyeXB0JywgJy1pbicsIGYne2Rpcn0v Y2VydC5rZXknLAotKyAgICAgICAgICAgICAgICAgJy1vdXRmb3JtJywgJ0RFUicsICctb3V0Jywg Zid7ZGlyfS9jZXJ0X2tleS5kZXInXSwKLSsgICAgICAgICAgICAgICAgY2FwdHVyZV9vdXRwdXQ9 VHJ1ZSwgdGV4dD1UcnVlLCBjaGVjaz1UcnVlCi0rICAgICAgICAgICAgKQotKwotKyAgICAgICAg ICAgICMgUmVhZCBERVIgZGF0YQotKyAgICAgICAgICAgIHdpdGggb3BlbihmJ3tkaXJ9L2NlcnQu ZGVyJywgJ3JiJykgYXMgZjoKLSsgICAgICAgICAgICAgICAgY2VydF9kZXIgPSBmLnJlYWQoKQot KyAgICAgICAgICAgIHdpdGggb3BlbihmJ3tkaXJ9L2NlcnRfa2V5LmRlcicsICdyYicpIGFzIGY6 Ci0rICAgICAgICAgICAgICAgIGtleV9kZXIgPSBmLnJlYWQoKQotKwotKyAgICAgICAgICAgICMg Q3JlYXRlIGVudHJ5IGRpcmVjdGx5IHdpdGggREVSIGRhdGEKLSsgICAgICAgICAgICBwcm9wZXJ0 aWVzID0gewotKyAgICAgICAgICAgICAgICBEWUNBVFRSX0NOOiAnVGVzdE1MRFNBX0NlcnQnLAot KyAgICAgICAgICAgICAgICBEWUNBVFRSX0NFUlRERVI6IGNlcnRfZGVyLAotKyAgICAgICAgICAg ICAgICBEWUNBVFRSX1BLRVlERVI6IGtleV9kZXIsCi0rICAgICAgICAgICAgfQotKyAgICAgICAg ICAgIHJkbiA9IGYie0RZQ0FUVFJfQ059PVRlc3RNTERTQV9DZXJ0IgotKyAgICAgICAgICAgIGR5 bmNlcnRzLmNyZWF0ZShyZG49cmRuLCBwcm9wZXJ0aWVzPXByb3BlcnRpZXMpCi0rICAgICAgICBl bHNlOgotKyAgICAgICAgICAgIGxvZy5pbmZvKCJBZGRpbmcgTUwtRFNBIHNlcnZlciBjZXJ0aWZp Y2F0ZSBXSVRIT1VUIHByaXZhdGUga2V5IHRvIER5bmFtaWMgQ2VydGlmaWNhdGVzLi4uIikKLSsg ICAgICAgICAgICBkeW5jZXJ0cy5hZGRfY2VydChmJ3tkaXJ9L2NlcnQucGVtJywgJ1Rlc3RNTERT QV9DZXJ0JykKLSsKLSsgICAgICAgICMgVmVyaWZ5IENBIGNlcnRpZmljYXRlIG1ldGFkYXRhCi0r ICAgICAgICBsb2cuaW5mbygiVmVyaWZ5aW5nIENBIGNlcnRpZmljYXRlIG1ldGFkYXRhLi4uIikK LSsgICAgICAgIGNhX29iaiA9IGR5bmNlcnRzLmdldF9jZXJ0X29iaignVGVzdE1MRFNBX0NBJykK LSsgICAgICAgIGFzc2VydCBjYV9vYmogaXMgbm90IE5vbmUKLSsKLSsgICAgICAgICMgVmVyaWZ5 IHN1YmplY3QgYW5kIGlzc3VlcgotKyAgICAgICAgY2Ffc3ViamVjdCA9IGNhX29iai5nZXRfYXR0 cl92YWxfdXRmOCgnZHNEeW5hbWljQ2VydGlmaWNhdGVTdWJqZWN0JykKLSsgICAgICAgIGNhX2lz c3VlciA9IGNhX29iai5nZXRfYXR0cl92YWxfdXRmOCgnZHNEeW5hbWljQ2VydGlmaWNhdGVJc3N1 ZXInKQotKyAgICAgICAgbG9nLmluZm8oZiJDQSBTdWJqZWN0OiB7Y2Ffc3ViamVjdH0iKQotKyAg ICAgICAgbG9nLmluZm8oZiJDQSBJc3N1ZXI6IHtjYV9pc3N1ZXJ9IikKLSsgICAgICAgIGFzc2Vy dCAnVGVzdE1MRFNBLUNBJyBpbiBjYV9zdWJqZWN0Ci0rICAgICAgICBhc3NlcnQgY2Ffc3ViamVj dCA9PSBjYV9pc3N1ZXIgICMgU2VsZi1zaWduZWQKLSsKLSsgICAgICAgICMgVmVyaWZ5IENBIGZs YWdzCi0rICAgICAgICBpc19jYSA9IGNhX29iai5nZXRfYXR0cl92YWxfdXRmOF9sKCdkc0R5bmFt aWNDZXJ0aWZpY2F0ZUlzQ0EnKQotKyAgICAgICAgaXNfcm9vdF9jYSA9IGNhX29iai5nZXRfYXR0 cl92YWxfdXRmOF9sKCdkc0R5bmFtaWNDZXJ0aWZpY2F0ZUlzUm9vdENBJykKLSsgICAgICAgIGxv Zy5pbmZvKGYiQ0EgaXNDQToge2lzX2NhfSIpCi0rICAgICAgICBsb2cuaW5mbyhmIkNBIGlzUm9v dENBOiB7aXNfcm9vdF9jYX0iKQotKyAgICAgICAgYXNzZXJ0IGlzX2NhID09ICd0cnVlJwotKyAg ICAgICAgYXNzZXJ0IGlzX3Jvb3RfY2EgPT0gJ3RydWUnCi0rCi0rICAgICAgICAjIFZlcmlmeSBD QSBrZXkgYWxnb3JpdGhtIGNvbnRhaW5zIE1MLURTQQotKyAgICAgICAgY2Ffa2V5X2FsZ28gPSBj YV9vYmouZ2V0X2F0dHJfdmFsX3V0ZjgoJ2RzRHluYW1pY0NlcnRpZmljYXRlS2V5QWxnb3JpdGht JykKLSsgICAgICAgIGxvZy5pbmZvKGYiQ0EgS2V5IEFsZ29yaXRobToge2NhX2tleV9hbGdvfSIp Ci0rICAgICAgICBhc3NlcnQgY2Ffa2V5X2FsZ28gaXMgbm90IE5vbmUKLSsgICAgICAgIGFzc2Vy dCAnTUwtRFNBJyBpbiBjYV9rZXlfYWxnby51cHBlcigpIG9yICdESUxJVEhJVU0nIGluIGNhX2tl eV9hbGdvLnVwcGVyKCkgb3IgJzIuMTYuODQwLjEuMTAxLjMuNC4zJyBpbiBjYV9rZXlfYWxnbwot KwotKyAgICAgICAgIyBWZXJpZnkgQ0EgaGFzIG5vIHByaXZhdGUga2V5IChQRU0gZmlsZSBvbmx5 IGNvbnRhaW5zIGNlcnQpCi0rICAgICAgICBjYV9oYXNfa2V5ID0gY2Ffb2JqLmdldF9hdHRyX3Zh bF91dGY4X2woJ2RzRHluYW1pY0NlcnRpZmljYXRlSGFzUHJpdmF0ZUtleScpCi0rICAgICAgICBs b2cuaW5mbyhmIkNBIGhhc1ByaXZhdGVLZXk6IHtjYV9oYXNfa2V5fSIpCi0rICAgICAgICBhc3Nl cnQgY2FfaGFzX2tleSA9PSAnZmFsc2UnCi0rCi0rICAgICAgICAjIFZlcmlmeSBzZXJ2ZXIgY2Vy dGlmaWNhdGUgbWV0YWRhdGEKLSsgICAgICAgIGxvZy5pbmZvKCJWZXJpZnlpbmcgc2VydmVyIGNl cnRpZmljYXRlIG1ldGFkYXRhLi4uIikKLSsgICAgICAgIGNlcnRfb2JqID0gZHluY2VydHMuZ2V0 X2NlcnRfb2JqKCdUZXN0TUxEU0FfQ2VydCcpCi0rICAgICAgICBhc3NlcnQgY2VydF9vYmogaXMg bm90IE5vbmUKLSsKLSsgICAgICAgICMgVmVyaWZ5IHN1YmplY3QKLSsgICAgICAgIGNlcnRfc3Vi amVjdCA9IGNlcnRfb2JqLmdldF9hdHRyX3ZhbF91dGY4KCdkc0R5bmFtaWNDZXJ0aWZpY2F0ZVN1 YmplY3QnKQotKyAgICAgICAgY2VydF9pc3N1ZXIgPSBjZXJ0X29iai5nZXRfYXR0cl92YWxfdXRm OCgnZHNEeW5hbWljQ2VydGlmaWNhdGVJc3N1ZXInKQotKyAgICAgICAgbG9nLmluZm8oZiJTZXJ2 ZXIgQ2VydCBTdWJqZWN0OiB7Y2VydF9zdWJqZWN0fSIpCi0rICAgICAgICBsb2cuaW5mbyhmIlNl cnZlciBDZXJ0IElzc3Vlcjoge2NlcnRfaXNzdWVyfSIpCi0rICAgICAgICBhc3NlcnQgJ1Rlc3RN TERTQS1DZXJ0JyBpbiBjZXJ0X3N1YmplY3QKLSsKLSsgICAgICAgICMgVmVyaWZ5IHNlcnZlciBj ZXJ0IGlzIG5vdCBhIENBCi0rICAgICAgICBjZXJ0X2lzX2NhID0gY2VydF9vYmouZ2V0X2F0dHJf dmFsX3V0ZjhfbCgnZHNEeW5hbWljQ2VydGlmaWNhdGVJc0NBJykKLSsgICAgICAgIGxvZy5pbmZv KGYiU2VydmVyIENlcnQgaXNDQToge2NlcnRfaXNfY2F9IikKLSsgICAgICAgIGFzc2VydCBjZXJ0 X2lzX2NhID09ICdmYWxzZScKLSsKLSsgICAgICAgICMgVmVyaWZ5IHNlcnZlciBjZXJ0IGtleSBh bGdvcml0aG0gY29udGFpbnMgTUwtRFNBCi0rICAgICAgICBjZXJ0X2tleV9hbGdvID0gY2VydF9v YmouZ2V0X2F0dHJfdmFsX3V0ZjgoJ2RzRHluYW1pY0NlcnRpZmljYXRlS2V5QWxnb3JpdGhtJykK LSsgICAgICAgIGxvZy5pbmZvKGYiU2VydmVyIENlcnQgS2V5IEFsZ29yaXRobToge2NlcnRfa2V5 X2FsZ299IikKLSsgICAgICAgIGFzc2VydCBjZXJ0X2tleV9hbGdvIGlzIG5vdCBOb25lCi0rICAg ICAgICBhc3NlcnQgJ01MLURTQScgaW4gY2VydF9rZXlfYWxnby51cHBlcigpCi0rCi0rICAgICAg ICAjIFZlcmlmeSBzZXJ2ZXIgY2VydCBoYXMgcHJpdmF0ZSBrZXkgYmFzZWQgb24gcGFyYW1ldGVy Ci0rICAgICAgICBjZXJ0X2hhc19rZXkgPSBjZXJ0X29iai5nZXRfYXR0cl92YWxfdXRmOF9sKCdk c0R5bmFtaWNDZXJ0aWZpY2F0ZUhhc1ByaXZhdGVLZXknKQotKyAgICAgICAgbG9nLmluZm8oZiJT ZXJ2ZXIgQ2VydCBoYXNQcml2YXRlS2V5OiB7Y2VydF9oYXNfa2V5fSIpCi0rICAgICAgICBleHBl Y3RlZF9oYXNfa2V5ID0gJ3RydWUnIGlmIHdpdGhfcHJpdmF0ZV9rZXkgZWxzZSAnZmFsc2UnCi0r ICAgICAgICBhc3NlcnQgY2VydF9oYXNfa2V5ID09IGV4cGVjdGVkX2hhc19rZXksIFwKLSsgICAg ICAgICAgICBmIkV4cGVjdGVkIGhhc1ByaXZhdGVLZXk9e2V4cGVjdGVkX2hhc19rZXl9LCBnb3Qg e2NlcnRfaGFzX2tleX0iCi0rCi0rICAgICAgICAjIFZlcmlmeSBzZXJpYWwgbnVtYmVycyBhcmUg cHJlc2VudAotKyAgICAgICAgY2Ffc2VyaWFsID0gY2Ffb2JqLmdldF9hdHRyX3ZhbF91dGY4KCdk c0R5bmFtaWNDZXJ0aWZpY2F0ZVNlcmlhbE51bWJlcicpCi0rICAgICAgICBjZXJ0X3NlcmlhbCA9 IGNlcnRfb2JqLmdldF9hdHRyX3ZhbF91dGY4KCdkc0R5bmFtaWNDZXJ0aWZpY2F0ZVNlcmlhbE51 bWJlcicpCi0rICAgICAgICBsb2cuaW5mbyhmIkNBIFNlcmlhbDoge2NhX3NlcmlhbH0iKQotKyAg ICAgICAgbG9nLmluZm8oZiJTZXJ2ZXIgQ2VydCBTZXJpYWw6IHtjZXJ0X3NlcmlhbH0iKQotKyAg ICAgICAgYXNzZXJ0IGNhX3NlcmlhbCBpcyBub3QgTm9uZSBhbmQgbGVuKGNhX3NlcmlhbCkgPiAw Ci0rICAgICAgICBhc3NlcnQgY2VydF9zZXJpYWwgaXMgbm90IE5vbmUgYW5kIGxlbihjZXJ0X3Nl cmlhbCkgPiAwCi0rCi0rICAgICAgICAjIFZlcmlmeSB2YWxpZGl0eSBkYXRlcwotKyAgICAgICAg Y2Ffbm90X2JlZm9yZSA9IGNhX29iai5nZXRfYXR0cl92YWxfdXRmOCgnZHNEeW5hbWljQ2VydGlm aWNhdGVOb3RCZWZvcmUnKQotKyAgICAgICAgY2Ffbm90X2FmdGVyID0gY2Ffb2JqLmdldF9hdHRy X3ZhbF91dGY4KCdkc0R5bmFtaWNDZXJ0aWZpY2F0ZU5vdEFmdGVyJykKLSsgICAgICAgIGNlcnRf bm90X2JlZm9yZSA9IGNlcnRfb2JqLmdldF9hdHRyX3ZhbF91dGY4KCdkc0R5bmFtaWNDZXJ0aWZp Y2F0ZU5vdEJlZm9yZScpCi0rICAgICAgICBjZXJ0X25vdF9hZnRlciA9IGNlcnRfb2JqLmdldF9h dHRyX3ZhbF91dGY4KCdkc0R5bmFtaWNDZXJ0aWZpY2F0ZU5vdEFmdGVyJykKLSsgICAgICAgIGxv Zy5pbmZvKGYiQ0EgVmFsaWQ6IHtjYV9ub3RfYmVmb3JlfSB0byB7Y2Ffbm90X2FmdGVyfSIpCi0r ICAgICAgICBsb2cuaW5mbyhmIlNlcnZlciBDZXJ0IFZhbGlkOiB7Y2VydF9ub3RfYmVmb3JlfSB0 byB7Y2VydF9ub3RfYWZ0ZXJ9IikKLSsgICAgICAgIGFzc2VydCBjYV9ub3RfYmVmb3JlIGlzIG5v dCBOb25lCi0rICAgICAgICBhc3NlcnQgY2Ffbm90X2FmdGVyIGlzIG5vdCBOb25lCi0rICAgICAg ICBhc3NlcnQgY2VydF9ub3RfYmVmb3JlIGlzIG5vdCBOb25lCi0rICAgICAgICBhc3NlcnQgY2Vy dF9ub3RfYWZ0ZXIgaXMgbm90IE5vbmUKLSsKLSsgICAgICAgICMgVmVyaWZ5IFN1YmplY3QgQWx0 ZXJuYXRpdmUgTmFtZXMgb24gc2VydmVyIGNlcnQKLSsgICAgICAgIGNlcnRfc2FuID0gY2VydF9v YmouZ2V0X2F0dHJfdmFsc191dGY4KCdkc0R5bmFtaWNDZXJ0aWZpY2F0ZVN1YmplY3RBbHROYW1l JykKLSsgICAgICAgIGlmIGNlcnRfc2FuOgotKyAgICAgICAgICAgIGxvZy5pbmZvKGYiU2VydmVy IENlcnQgU0FOczoge2NlcnRfc2FufSIpCi0rICAgICAgICAgICAgc2FuX3N0ciA9ICcgJy5qb2lu KGNlcnRfc2FuKQotKyAgICAgICAgICAgIGFzc2VydCAnbG9jYWxob3N0JyBpbiBzYW5fc3RyIG9y ICcxMjcuMC4wLjEnIGluIHNhbl9zdHIKLSsKLSsgICAgICAgICMgVGVzdCBsaXN0aW5nIG9wZXJh dGlvbnMKLSsgICAgICAgIGxvZy5pbmZvKCJUZXN0aW5nIGNlcnRpZmljYXRlIGxpc3Rpbmcgb3Bl cmF0aW9ucy4uLiIpCi0rCi0rICAgICAgICBjYV9saXN0ID0gZHluY2VydHMubGlzdF9jYV9jZXJ0 cygpCi0rICAgICAgICBtbGRzYV9jYXMgPSBbYyBmb3IgYyBpbiBjYV9saXN0IGlmIGNbJ2NuJ10g PT0gJ1Rlc3RNTERTQV9DQSddCi0rICAgICAgICBhc3NlcnQgbGVuKG1sZHNhX2NhcykgPT0gMQot KyAgICAgICAgbG9nLmluZm8oZiJGb3VuZCBNTC1EU0EgQ0EgaW4gbGlzdDoge21sZHNhX2Nhc1sw XX0iKQotKwotKyAgICAgICAgY2VydF9saXN0ID0gZHluY2VydHMubGlzdF9jZXJ0cygpCi0rICAg ICAgICBtbGRzYV9jZXJ0cyA9IFtjIGZvciBjIGluIGNlcnRfbGlzdCBpZiBjWydjbiddID09ICdU ZXN0TUxEU0FfQ2VydCddCi0rICAgICAgICBhc3NlcnQgbGVuKG1sZHNhX2NlcnRzKSA9PSAxCi0r ICAgICAgICBsb2cuaW5mbyhmIkZvdW5kIE1MLURTQSBzZXJ2ZXIgY2VydCBpbiBsaXN0OiB7bWxk c2FfY2VydHNbMF19IikKLSsKLSsgICAgICAgICMgVGVzdCBnZXRfY2VydF9kZXRhaWxzCi0rICAg ICAgICBjYV9kZXRhaWxzID0gZHluY2VydHMuZ2V0X2NlcnRfZGV0YWlscygnVGVzdE1MRFNBX0NB JykKLSsgICAgICAgIGFzc2VydCBjYV9kZXRhaWxzIGlzIG5vdCBOb25lCi0rICAgICAgICBhc3Nl cnQgY2FfZGV0YWlsc1snY24nXSA9PSAnVGVzdE1MRFNBX0NBJwotKyAgICAgICAgYXNzZXJ0ICdz dWJqZWN0JyBpbiBjYV9kZXRhaWxzCi0rICAgICAgICBhc3NlcnQgJ2lzc3VlcicgaW4gY2FfZGV0 YWlscwotKyAgICAgICAgbG9nLmluZm8oZiJDQSBkZXRhaWxzOiB7Y2FfZGV0YWlsc30iKQotKwot KyAgICAgICAgY2VydF9kZXRhaWxzID0gZHluY2VydHMuZ2V0X2NlcnRfZGV0YWlscygnVGVzdE1M RFNBX0NlcnQnKQotKyAgICAgICAgYXNzZXJ0IGNlcnRfZGV0YWlscyBpcyBub3QgTm9uZQotKyAg ICAgICAgYXNzZXJ0IGNlcnRfZGV0YWlsc1snY24nXSA9PSAnVGVzdE1MRFNBX0NlcnQnCi0rICAg ICAgICBsb2cuaW5mbyhmIlNlcnZlciBjZXJ0IGRldGFpbHM6IHtjZXJ0X2RldGFpbHN9IikKLSsK LSsgICAgICAgICMgQ2xlYW51cAotKyAgICAgICAgbG9nLmluZm8oIkNsZWFuaW5nIHVwIE1MLURT QSBjZXJ0aWZpY2F0ZXMuLi4iKQotKyAgICAgICAgZHluY2VydHMuZGVsX2NlcnQoJ1Rlc3RNTERT QV9DQScpCi0rICAgICAgICBkeW5jZXJ0cy5kZWxfY2VydCgnVGVzdE1MRFNBX0NlcnQnKQotKwot KyAgICAgICAga2V5X3N0YXR1cyA9ICJ3aXRoIHByaXZhdGUga2V5IiBpZiB3aXRoX3ByaXZhdGVf a2V5IGVsc2UgIndpdGhvdXQgcHJpdmF0ZSBrZXkiCi0rICAgICAgICBsb2cuaW5mbyhmIk1MLURT QSBEeW5hbWljIENlcnRpZmljYXRlcyB0ZXN0ICh7a2V5X3N0YXR1c30pIGNvbXBsZXRlZCBzdWNj ZXNzZnVsbHkhIikKLSsKLSsgICAgZXhjZXB0IHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vycm9y IGFzIGU6Ci0rICAgICAgICBsb2cuZXJyb3IoZiJPcGVuU1NMIGNvbW1hbmQgZmFpbGVkOiB7ZX0i KQotKyAgICAgICAgbG9nLmVycm9yKGYic3Rkb3V0OiB7ZS5zdGRvdXR9IikKLSsgICAgICAgIGxv Zy5lcnJvcihmInN0ZGVycjoge2Uuc3RkZXJyfSIpCi0rICAgICAgICByYWlzZQotKyAgICBleGNl cHQgRXhjZXB0aW9uIGFzIGU6Ci0rICAgICAgICBsb2cuZXJyb3IoZiJUZXN0IGZhaWxlZCB3aXRo IGV4Y2VwdGlvbjoge2V9IikKLSsgICAgICAgIHJhaXNlCi0rICAgIGZpbmFsbHk6Ci0rICAgICAg ICBpZiBub3QgREVCVUdHSU5HOgotKyAgICAgICAgICAgIHNodXRpbC5ybXRyZWUoZGlyLCBpZ25v cmVfZXJyb3JzPVRydWUpCi0rCi0rCi0raWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSsgICAg Q1VSUkVOVF9GSUxFID0gb3MucGF0aC5yZWFscGF0aChfX2ZpbGVfXykKLSsgICAgcHl0ZXN0Lm1h aW4oWyItcyIsICItdiIsIENVUlJFTlRfRklMRV0pCi1kaWZmIC0tZ2l0IGEvZGlyc3J2dGVzdHMv dGVzdHMvc3VpdGVzL3Rscy9tbGRzYV90ZXN0LnB5IGIvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVz L3Rscy9tbGRzYV90ZXN0LnB5Ci1pbmRleCBkNmNiYWY2NjIuLjI0NTA2OWI4NiAxMDA2NDQKLS0t LSBhL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy90bHMvbWxkc2FfdGVzdC5weQotKysrIGIvZGly c3J2dGVzdHMvdGVzdHMvc3VpdGVzL3Rscy9tbGRzYV90ZXN0LnB5Ci1AQCAtMTAsMTEgKzEwLDkg QEAgaW1wb3J0IGxvZ2dpbmcKLSBpbXBvcnQgcHl0ZXN0Ci0gaW1wb3J0IG9zCi0gaW1wb3J0IHN5 cwotLWltcG9ydCBpdGVydG9vbHMKLS1pbXBvcnQgcnBtCi0gaW1wb3J0IHNvY2tldAotIGltcG9y dCBzdWJwcm9jZXNzCi0tZnJvbSBsaWIzODkudXRpbHMgaW1wb3J0IGRzX2lzX29sZGVyCi0rZnJv bSBsaWIzODkudXRpbHMgaW1wb3J0IGRzX2lzX29sZGVyLCBycG1faXNfb2xkZXIKLSBmcm9tIGxp YjM4OS5fY29uc3RhbnRzIGltcG9ydCBETl9ETSwgUFdfRE0sIERFRkFVTFRfU1VGRklYCi0gZnJv bSBsaWIzODkuY29uZmlnIGltcG9ydCBFbmNyeXB0aW9uLCBDZXJ0bWFwTGVnYWN5Ci0gZnJvbSBs aWIzODkuaWRtLnVzZXIgaW1wb3J0IFVzZXJBY2NvdW50Ci1AQCAtMzEsMjEgKzI5LDYgQEAgZWxz ZToKLSBsb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKLSAKLSAKLS1kZWYgcnBtX2lz X29sZGVyKHBrZywgdmVyc2lvbik6Ci0tICAgIHRzID0gcnBtLlRyYW5zYWN0aW9uU2V0KCkKLS0g ICAgbWkgPSB0cy5kYk1hdGNoKCduYW1lJywgcGtnKQotLSAgICBmb3IgaCBpbiBtaToKLS0gICAg ICAgIHByaW50KGYie3BrZ30ge2hbJ3ZlcnNpb24nXX0ge3ZlcnNpb259IikKLS0gICAgICAgIGZv ciBuMSxuMiBpbiBpdGVydG9vbHMuemlwX2xvbmdlc3QoaFsndmVyc2lvbiddLnNwbGl0KCcuJyks IHZlcnNpb24uc3BsaXQoJy4nKSwgZmlsbHZhbHVlPSIiKToKLS0gICAgICAgICAgICB0cnk6Ci0t ICAgICAgICAgICAgICAgIGlmIGludChuMSkgPCBpbnQobjIpOgotLSAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIFRydWUKLS0gICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKLS0gICAgICAg ICAgICAgICAgaWYgbjEgPCBuMjoKLS0gICAgICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCi0t ICAgIHJldHVybiBGYWxzZQotLQotLQotIHNjcmlwdF9jb250ZW50PSIiIgotICMhL2Jpbi9iYXNo Ci0gc2V0IC1lICAjIEV4aXQgaWYgYSBjb21tYW5kIGZhaWxzCi1kaWZmIC0tZ2l0IGEvbGRhcC9z ZXJ2ZXJzL3NsYXBkL2R5bmNlcnRzLmMgYi9sZGFwL3NlcnZlcnMvc2xhcGQvZHluY2VydHMuYwot aW5kZXggZWZlYWE2ZWI2Li42ZDc5N2ExMjcgMTAwNjQ0Ci0tLS0gYS9sZGFwL3NlcnZlcnMvc2xh cGQvZHluY2VydHMuYwotKysrIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2R5bmNlcnRzLmMKLUBAIC00 NDQsNiArNDQ0LDkgQEAga2V5X2FsZ28oQ0VSVENlcnRpZmljYXRlICpjZXJ0KQotIAlzd2l0Y2gg KGtleVR5cGUpIHsKLSAgICAgICAgIGNhc2UgcnNhS2V5OiByZXR1cm4gIlJTQSI7Ci0gICAgICAg ICBjYXNlIGVjS2V5OiByZXR1cm4gIkVDIjsKLSsjaWZkZWYgTUFYX01MX0RTQV9QUklWQVRFX0tF WV9MRU4KLSsgICAgICAgIGNhc2UgbWxkc2FLZXk6IHJldHVybiAiTUwtRFNBIjsKLSsjZW5kaWYK LSAgICAgICAgIGRlZmF1bHQ6IHJldHVybiAiVU5LTk9XTiI7Ci0gICAgIH0KLSB9Ci1AQCAtNTc3 LDggKzU4MCwxMyBAQCB2ZXJpZnlfY2VydChTbGFwaV9FbnRyeSAqZSwgQ0VSVENlcnRpZmljYXRl ICpjZXJ0LCBjb25zdCBjaGFyICphdHRybmFtZSkKLSBzdGF0aWMgYmVyX3RhZ190Ci0gc2Fuc2Vf YnYyIChCZXJFbGVtZW50ICpiZXIsIGdlbmVyYWxfbmFtZV92YWx1ZV90ICp2YWwpCi0gewotKyAg ICBiZXJfdGFnX3QgcmMgPSAwOwotICAgICB2YWwtPm5idmFscyA9IDI7Ci0tICAgIHJldHVybiBi ZXJfc2NhbmYoYmVyLCAie29vfSIsICZ2YWwtPnZhbHNbMF0sICZ2YWwtPnZhbHNbMV0pOwotKyAg ICByYyA9IGJlcl9zY2FuZihiZXIsICJ7b299IiwgJnZhbC0+dmFsc1swXSwgJnZhbC0+dmFsc1sx XSk7Ci0rICAgIGlmICh2YWwtPnZhbHNbMF0uYnZfbGVuID09IDApIHsKLSsgICAgICAgIHJldHVy biBMQkVSX0VSUk9SOwotKyAgICB9Ci0rICAgIHJldHVybiByYzsKLSB9Ci0gCi0gLyoKLUBAIC01 ODksOCArNTk3LDEzIEBAIHNhbnNlX2J2MiAoQmVyRWxlbWVudCAqYmVyLCBnZW5lcmFsX25hbWVf dmFsdWVfdCAqdmFsKQotIHN0YXRpYyBiZXJfdGFnX3QKLSBzYW5zZV9lZGkgKEJlckVsZW1lbnQg KmJlciwgZ2VuZXJhbF9uYW1lX3ZhbHVlX3QgKnZhbCkKLSB7Ci0rICAgIGJlcl90YWdfdCByYyA9 IDA7Ci0gICAgIHZhbC0+bmJ2YWxzID0gMTsKLS0gICAgcmV0dXJuIGJlcl9zY2FuZihiZXIsICJ7 b30iLCAmdmFsLT52YWxzWzBdKTsKLSsgICAgcmMgPSBiZXJfc2NhbmYoYmVyLCAie299IiwgJnZh bC0+dmFsc1swXSk7Ci0rICAgIGlmICh2YWwtPnZhbHNbMF0uYnZfbGVuID09IDApIHsKLSsgICAg ICAgIHJldHVybiBMQkVSX0VSUk9SOwotKyAgICB9Ci0rICAgIHJldHVybiByYzsKLSB9Ci0gCi0g LyoKLUBAIC02MDAsOCArNjEzLDEzIEBAIHNhbnNlX2VkaSAoQmVyRWxlbWVudCAqYmVyLCBnZW5l cmFsX25hbWVfdmFsdWVfdCAqdmFsKQotIHN0YXRpYyBiZXJfdGFnX3QKLSBzYW5zZV9idjEgKEJl ckVsZW1lbnQgKmJlciwgZ2VuZXJhbF9uYW1lX3ZhbHVlX3QgKnZhbCkKLSB7Ci0rICAgIGJlcl90 YWdfdCByYyA9IDA7Ci0gICAgIHZhbC0+bmJ2YWxzID0gMTsKLS0gICAgcmV0dXJuIGJlcl9zY2Fu ZihiZXIsICJvIiwgJnZhbC0+dmFsc1swXSk7Ci0rICAgIHJjID0gYmVyX3NjYW5mKGJlciwgIm8i LCAmdmFsLT52YWxzWzBdKTsKLSsgICAgaWYgKHZhbC0+dmFsc1swXS5idl9sZW4gPT0gMCkgewot KyAgICAgICAgcmV0dXJuIExCRVJfRVJST1I7Ci0rICAgIH0KLSsgICAgcmV0dXJuIHJjOwotIH0K LSAKLSAvKgotQEAgLTYxMSw5ICs2MjksMTEgQEAgc2Fuc2VfYnYxIChCZXJFbGVtZW50ICpiZXIs IGdlbmVyYWxfbmFtZV92YWx1ZV90ICp2YWwpCi0gc3RhdGljIGJlcl90YWdfdAotIHNhbnNlX2J2 MCAoQmVyRWxlbWVudCAqYmVyLCBnZW5lcmFsX25hbWVfdmFsdWVfdCAqdmFsKQotIHsKLSsgICAg YmVyX3RhZ190IHJjID0gMDsKLSAgICAgYmVyX3RhZ190IHRhZyA9IDA7Ci0gICAgIHZhbC0+bmJ2 YWxzID0gMDsKLS0gICAgcmV0dXJuIGJlcl9zY2FuZihiZXIsICJUIiwgJnRhZyk7Ci0rICAgIHJj ID0gYmVyX3NjYW5mKGJlciwgIlQiLCAmdGFnKTsKLSsgICAgcmV0dXJuIHJjOwotIH0KLSAKLSAv KiBGcmVlIGRhdGEgd2l0aGluIGdlbmVyYWxfbmFtZV92YWx1ZV90ICovCi1AQCAtNjkzLDcgKzcx MywyMCBAQCBnbndfY2IoZ2VuZXJhbF9uYW1lX3R5cGVfdCBnbnQsIGNvbnN0IGdlbmVyYWxfbmFt ZV92YWx1ZV90ICp2YWwsIHZvaWQgKmFyZykKLSAgICAgc3dpdGNoICh2YWwtPm5idmFscykgewot ICAgICAgICAgY2FzZSAxOgotICAgICAgICAgICAgIGlmIChnbnQgPT0gZ250X2lwYWRkcmVzcykg ewotLSAgICAgICAgICAgICAgICAvKiBTaG91bGQgY29udmVydCB0aGUgYWRkcmVzcyB0byBzdHJp bmcgKi8KLSsgICAgICAgICAgICAgICAgLyogTGV0cyBjb252ZXJ0IHRoZSBhZGRyZXNzIHRvIHN0 cmluZyAqLwotKyAgICAgICAgICAgICAgICBpZiAodmFsLT52YWxzWzBdLmJ2X2xlbiA9PSA0KSB7 Ci0rICAgICAgICAgICAgICAgICAgICAvKiBJUHY0IGFkZHJlc3MgKi8KLSsgICAgICAgICAgICAg ICAgICAgIHN0ciA9IHNsYXBpX2NoX21hbGxvYyhJTkVUX0FERFJTVFJMRU4pOwotKyAgICAgICAg ICAgICAgICAgICAgaWYgKGluZXRfbnRvcChBRl9JTkVULCB2YWwtPnZhbHNbMF0uYnZfdmFsLCBz dHIsIElORVRfQUREUlNUUkxFTikgPT0gTlVMTCkgewotKyAgICAgICAgICAgICAgICAgICAgICAg IHNsYXBpX2NoX2ZyZWVfc3RyaW5nKCZzdHIpOwotKyAgICAgICAgICAgICAgICAgICAgfQotKyAg ICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbC0+dmFsc1swXS5idl9sZW4gPT0gMTYpIHsKLSsg ICAgICAgICAgICAgICAgICAgIC8qIElQdjYgYWRkcmVzcyAqLwotKyAgICAgICAgICAgICAgICAg ICAgc3RyID0gc2xhcGlfY2hfbWFsbG9jKElORVQ2X0FERFJTVFJMRU4pOwotKyAgICAgICAgICAg ICAgICAgICAgaWYgKGluZXRfbnRvcChBRl9JTkVUNiwgdmFsLT52YWxzWzBdLmJ2X3ZhbCwgc3Ry LCBJTkVUNl9BRERSU1RSTEVOKSA9PSBOVUxMKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAg c2xhcGlfY2hfZnJlZV9zdHJpbmcoJnN0cik7Ci0rICAgICAgICAgICAgICAgICAgICB9Ci0rICAg ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICBz aXplX3QgbGVuID0gdmFsLT52YWxzWzBdLmJ2X2xlbjsKLSAgICAgICAgICAgICAgICAgc3RyID0g c2xhcGlfY2hfbWFsbG9jKGxlbisxKTsKLWRpZmYgLS1naXQgYS9zcmMvbGliMzg5L2xpYjM4OS9u c3Nfc3NsLnB5IGIvc3JjL2xpYjM4OS9saWIzODkvbnNzX3NzbC5weQotaW5kZXggZmFlNjVkMTlj Li5iMGQyZTExNWIgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliMzg5L2xpYjM4OS9uc3Nfc3NsLnB5Ci0r KysgYi9zcmMvbGliMzg5L2xpYjM4OS9uc3Nfc3NsLnB5Ci1AQCAtMjQ3LDYgKzI0NywxMyBAQCBv bmx5LgotICAgICAgICAgY29kZS4gSW5zdGVhZCwgd2UgcGFyc2UgdGhlIG91dHB1dCBvZiBgb3Bl bnNzbCB2ZXJzaW9uYCBhbmQgdHJ5IHRvCi0gICAgICAgICBmaWd1cmUgb3V0IGlmIHdlIGhhdmUg YSBuZXcgZW5vdWdoIHZlcnNpb24gdG8gdW5jb25kaXRpb25hbGx5IHJ1biByZWhhc2guCi0gICAg ICAgICAiIiIKLSsKLSsgICAgICAgIGRlZiBvbmx5X3dhcm5pbmcodGV4dCk6Ci0rICAgICAgICAg ICAgZm9yIGxpbmUgaW4gdGV4dC5zcGxpdCgnXG4nKToKLSsgICAgICAgICAgICAgICAgaWYgbGlu ZSBhbmQgbm90ICd3YXJuaW5nJyBpbiBsaW5lLmxvd2VyKCk6Ci0rICAgICAgICAgICAgICAgICAg ICByZXR1cm4gRmFsc2UKLSsgICAgICAgICAgICByZXR1cm4gVHJ1ZQotKwotICAgICAgICAgdHJ5 OgotICAgICAgICAgICAgIG9wZW5zc2xfdmVyc2lvbiA9IGNoZWNrX291dHB1dChbJy91c3IvYmlu L29wZW5zc2wnLCAndmVyc2lvbiddKS5kZWNvZGUoJ3V0Zi04Jykuc3RyaXAoKQotICAgICAgICAg ZXhjZXB0IHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vycm9yIGFzIGU6Ci1AQCAtMjU5LDkgKzI2 NiwxMyBAQCBvbmx5LgotICAgICAgICAgICAgIGNtZCA9IFsnL3Vzci9iaW4vY19yZWhhc2gnLCBj ZXJ0ZGlyXQotICAgICAgICAgc2VsZi5sb2cuZGVidWcoIm5zcyBjbWQ6ICVzIiwgZm9ybWF0X2Nt ZF9saXN0KGNtZCkpCi0gICAgICAgICB0cnk6Ci0tICAgICAgICAgICAgY2hlY2tfb3V0cHV0KGNt ZCwgc3RkZXJyPXN1YnByb2Nlc3MuU1RET1VUKQotKyAgICAgICAgICAgIHJlcyA9IHJ1bihjbWQs IHRleHQ9VHJ1ZSwgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwgc3RkZXJyPXN1YnByb2Nlc3MuU1RE T1VUKQotKyAgICAgICAgICAgIHNlbGYubG9nLmRlYnVnKCJuc3MgY21kOiAlcyByZXR1cm5lZCAl ZCBTVERPVVQ9JXMiLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdF9jbWRfbGlz dChjbWQpLCByZXMucmV0dXJuY29kZSwgcmVzLnN0ZG91dCkKLSsgICAgICAgICAgICBpZiByZXMu cmV0dXJuY29kZSAhPSAxIG9yIG5vdCBvbmx5X3dhcm5pbmcocmVzLnN0ZG91dCk6Ci0rICAgICAg ICAgICAgICAgIHJlcy5jaGVja19yZXR1cm5jb2RlKCkKLSAgICAgICAgIGV4Y2VwdCBzdWJwcm9j ZXNzLkNhbGxlZFByb2Nlc3NFcnJvciBhcyBlOgotLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy b3IoZS5vdXRwdXQuZGVjb2RlKCd1dGYtOCcpLnJzdHJpcCgpKQotKyAgICAgICAgICAgIHJhaXNl IFZhbHVlRXJyb3IoZS5vdXRwdXQucnN0cmlwKCkpCi0gCi0gICAgIGRlZiBjcmVhdGVfcnNhX2Nh KHNlbGYsIG1vbnRocz1WQUxJRCk6Ci0gICAgICAgICAiIiIKLWRpZmYgLS1naXQgYS9zcmMvbGli Mzg5L2xpYjM4OS91dGlscy5weSBiL3NyYy9saWIzODkvbGliMzg5L3V0aWxzLnB5Ci1pbmRleCAw NDJkZWYwOTAuLjA3Y2IzNGQ5MyAxMDA2NDQKLS0tLSBhL3NyYy9saWIzODkvbGliMzg5L3V0aWxz LnB5Ci0rKysgYi9zcmMvbGliMzg5L2xpYjM4OS91dGlscy5weQotQEAgLTIxLDEyICsyMSwxNCBA QCBpbXBvcnQgbGRhcAotIGltcG9ydCBtbWFwCi0gaW1wb3J0IHNvY2tldAotIGltcG9ydCBpcGFk ZHJlc3MKLStpbXBvcnQgaXRlcnRvb2xzCi0gaW1wb3J0IHRpbWUKLSBpbXBvcnQgc3RhdAotIGZy b20gZGF0ZXRpbWUgaW1wb3J0IChkYXRldGltZSwgdGltZWRlbHRhKQotIGltcG9ydCBzeXMKLSBp bXBvcnQgZmlsZWNtcAotIGltcG9ydCBwd2QKLStpbXBvcnQgcnBtCi0gaW1wb3J0IHNobGV4Ci0g aW1wb3J0IG9wZXJhdG9yCi0gaW1wb3J0IHN1YnByb2Nlc3MKLUBAIC0yMTMwLDMgKzIxMzIsMjEg QEAgZGVmIGdldF90aW1lb3V0X3NjYWxlKCk6Ci0gICAgICAgICBsb2cuZXJyb3IoZiJEU19USU1F T1VUX1NDQUxFIHNob3VsZCBiZSBhIHZhbGlkIGZsb2F0LiBVc2luZyBkZWZhdWx0IHZhbHVlOiB7 c2NhbGVfZmFjdG9yfSIpCi0gICAgICAgICByZXR1cm4gc2NhbGVfZmFjdG9yCi0gCi0rCi0rZGVm IHJwbV9pc19vbGRlcihwa2csIHZlcnNpb24pOgotKyAgICAiIiJDaGVjayBpZiBhbiBSUE0gcGFj a2FnZSB2ZXJzaW9uIGlzIG9sZGVyIHRoYW4gc3BlY2lmaWVkIHZlcnNpb24iIiIKLSsgICAgdHMg PSBycG0uVHJhbnNhY3Rpb25TZXQoKQotKyAgICBtaSA9IHRzLmRiTWF0Y2goJ25hbWUnLCBwa2cp Ci0rICAgIGZvciBoIGluIG1pOgotKyAgICAgICAgbG9nLmRlYnVnKGYie3BrZ30ge2hbJ3ZlcnNp b24nXX0ge3ZlcnNpb259IikKLSsgICAgICAgIGZvciBuMSxuMiBpbiBpdGVydG9vbHMuemlwX2xv bmdlc3QoaFsndmVyc2lvbiddLnNwbGl0KCcuJyksIHZlcnNpb24uc3BsaXQoJy4nKSwgZmlsbHZh bHVlPSIiKToKLSsgICAgICAgICAgICB0cnk6Ci0rICAgICAgICAgICAgICAgIGlmIGludChuMSkg PCBpbnQobjIpOgotKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKLSsgICAgICAgICAg ICBleGNlcHQgVmFsdWVFcnJvcjoKLSsgICAgICAgICAgICAgICAgaWYgbjEgPCBuMjoKLSsgICAg ICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCi0rICAgICAgICAgICAgICAgIGlmIG4xID4gbjI6 Ci0rICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKLSsgICAgcmV0dXJuIEZhbHNlCi0r Ci0tLSAKLTIuNTIuMAotCgpkaWZmIC0tZ2l0IGEvMDA0Ny1Jc3N1ZS03MTg0LTJuZC1hcmdwYXJz ZS5IZWxwRm9ybWF0dGVyLV9mb3JtYXRfYWN0aW9uLnBhdGNoIGIvMDA0Ny1Jc3N1ZS03MTg0LTJu ZC1hcmdwYXJzZS5IZWxwRm9ybWF0dGVyLV9mb3JtYXRfYWN0aW9uLnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAxODM4NjU5Li4wMDAwMDAwCi0tLSBhLzAwNDctSXNzdWUtNzE4 NC0ybmQtYXJncGFyc2UuSGVscEZvcm1hdHRlci1fZm9ybWF0X2FjdGlvbi5wYXRjaAorKysgL2Rl di9udWxsCkBAIC0xLDQxICswLDAgQEAKLUZyb20gNDhhZDYxMjMxMjAzZDljY2I5NmQwZmU1NDJh YWU5M2RiYjc0YTliZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFZpa3RvciBBc2hp cm92IDx2YXNoaXJvdkByZWRoYXQuY29tPgotRGF0ZTogRnJpLCAxMyBGZWIgMjAyNiAxNTozODo1 MiArMDEwMAotU3ViamVjdDogW1BBVENIXSBJc3N1ZSA3MTg0IC0gKDJuZCkgYXJncGFyc2UuSGVs cEZvcm1hdHRlcgotIF9mb3JtYXRfYWN0aW9uc191c2FnZSgpIGlzIGRlcHJlY2F0ZWQgKCM3MjU3 KQotCi1EZXNjcmlwdGlvbjoKLWBfZm9ybWF0X2FjdGlvbnNfdXNhZ2UoKWAgd2FzIGFsc28gcmVt b3ZlZCBpbiBQeXRob24gMy4xNC4zLgotUmVwbGFjZSB2ZXJzaW9uIGNoZWNrIHdpdGggYGlzaW5z dGFuY2UoKWAgdG8gaGFuZGxlIHRoZSByZXR1cm4gdHlwZSBvZgotYF9nZXRfYWN0aW9uc191c2Fn ZV9wYXJ0cygpYCBtb3JlIHJvYnVzdGx5IGFjcm9zcyBQeXRob24gdmVyc2lvbnMuCi0KLVJlbGF0 ZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS8zODlkcy8zODktZHMtYmFzZS9pc3N1ZXMvNzE4NAotRml4 ZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS8zODlkcy8zODktZHMtYmFzZS9pc3N1ZXMvNzI1MwotCi1S ZXZpZXdlZCBieTogQHByb2dpZXIzODkgKFRoYW5rcyEpCi0tLS0KLSBzcmMvbGliMzg5L2xpYjM4 OS9jbGlfYmFzZS9fX2luaXRfXy5weSB8IDYgKysrLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDMgaW5z ZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9saWIzODkvbGli Mzg5L2NsaV9iYXNlL19faW5pdF9fLnB5IGIvc3JjL2xpYjM4OS9saWIzODkvY2xpX2Jhc2UvX19p bml0X18ucHkKLWluZGV4IGYxMDU1YWFkYy4uM2FmOGE0NmU2IDEwMDY0NAotLS0tIGEvc3JjL2xp YjM4OS9saWIzODkvY2xpX2Jhc2UvX19pbml0X18ucHkKLSsrKyBiL3NyYy9saWIzODkvbGliMzg5 L2NsaV9iYXNlL19faW5pdF9fLnB5Ci1AQCAtNDIwLDExICs0MjAsMTEgQEAgY2xhc3MgQ3VzdG9t SGVscEZvcm1hdHRlcihhcmdwYXJzZS5IZWxwRm9ybWF0dGVyKToKLSAgICAgICAgIGVsc2U6Ci0g ICAgICAgICAgICAgIyBVc2UgX2dldF9hY3Rpb25zX3VzYWdlX3BhcnRzKCkgZm9yIFB5dGhvbiAz LjEzIGFuZCBsYXRlcgotICAgICAgICAgICAgIGFjdGlvbl9wYXJ0cyA9IHNlbGYuX2dldF9hY3Rp b25zX3VzYWdlX3BhcnRzKHBhcmVudF9hcmd1bWVudHMsIFtdKQotLSAgICAgICAgICAgIGlmIHN5 cy52ZXJzaW9uX2luZm8gPj0gKDMsIDE1KToKLS0gICAgICAgICAgICAgICAgIyBQeXRob24gMy4x NSByZXR1cm5zIGEgdHVwbGUgKGxpc3Qgb2YgYWN0aW9ucywgY291bnQgb2YgYWN0aW9ucykKLSsg ICAgICAgICAgICBpZiBpc2luc3RhbmNlKGFjdGlvbl9wYXJ0cywgdHVwbGUpOgotKyAgICAgICAg ICAgICAgICAjIFB5dGhvbiAzLjE0LjMrIGFuZCAzLjE1KyByZXR1cm4gYSB0dXBsZSAobGlzdCBv ZiBhY3Rpb25zLCBjb3VudCBvZiBhY3Rpb25zKQotICAgICAgICAgICAgICAgICBmb3JtYXR0ZWRf b3B0aW9ucyA9ICcgJy5qb2luKGFjdGlvbl9wYXJ0c1swXSkKLSAgICAgICAgICAgICBlbHNlOgot LSAgICAgICAgICAgICAgICAjIFB5dGhvbiAzLjEzIGFuZCAzLjE0IHJldHVybiBhIGxpc3Qgb2Yg YWN0aW9ucwotKyAgICAgICAgICAgICAgICAjIEVhcmxpZXIgdmVyc2lvbnMgcmV0dXJuIGEgbGlz dCBvZiBhY3Rpb25zCi0gICAgICAgICAgICAgICAgIGZvcm1hdHRlZF9vcHRpb25zID0gJyAnLmpv aW4oYWN0aW9uX3BhcnRzKQotIAotICAgICAgICAgIyBJZiBmb3JtYXR0ZWRfb3B0aW9ucyBhbHJl YWR5IGluIHVzYWdlIC0gcmVtb3ZlIHRoZW0KLS0tIAotMi41Mi4wCi0KCmRpZmYgLS1naXQgYS8w MDQ4LUlzc3VlLTcyMTMtMm5kLU1EQl9CQURfVkFMU0laRS1lcnJvci13aGlsZS1oYW5kbGluZy0u cGF0Y2ggYi8wMDQ4LUlzc3VlLTcyMTMtMm5kLU1EQl9CQURfVkFMU0laRS1lcnJvci13aGlsZS1o YW5kbGluZy0ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhkN2Y1YzAuLjAw MDAwMDAKLS0tIGEvMDA0OC1Jc3N1ZS03MjEzLTJuZC1NREJfQkFEX1ZBTFNJWkUtZXJyb3Itd2hp bGUtaGFuZGxpbmctLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotRnJvbSBj N2VmNWIzMDczYmJkOTRhNWQyYjU0NDU1NjM2OGM4MzBjMTY1ZTBkIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQotRnJvbTogVmlrdG9yIEFzaGlyb3YgPHZhc2hpcm92QHJlZGhhdC5jb20+Ci1EYXRl OiBGcmksIDEzIEZlYiAyMDI2IDE2OjI3OjI1ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIElzc3Vl IDcyMTMgLSAoMm5kKSBNREJfQkFEX1ZBTFNJWkUgZXJyb3Igd2hpbGUgaGFuZGxpbmcgVkxWCi0g KCM3MjU4KQotCi1EZWNyaXB0aW9uOgotRGlzYWJsZSB0ZXN0X3Zsdl9sb25nX2F0dHJpYnV0ZV92 YWx1ZSBvbiBCREIgYXMgaXQgaGFuZ3Mgc29tZXRpbWVzIGluCi1DSSwgYmxvY2tpbmcgb3RoZXIg cGlwZWxpbmVzLgotCi1SZWxhdGVzOiBodHRwczovL2dpdGh1Yi5jb20vMzg5ZHMvMzg5LWRzLWJh c2UvaXNzdWVzLzcyMTMKLQotUmV2aWV3ZWQgYnk6IEBwcm9naWVyMzg5IChUaGFua3MhKQotLS0t Ci0gZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL3Zsdi9yZWdyZXNzaW9uX3Rlc3QucHkgfCAxICsK LSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKLQotZGlmZiAtLWdpdCBhL2RpcnNydnRl c3RzL3Rlc3RzL3N1aXRlcy92bHYvcmVncmVzc2lvbl90ZXN0LnB5IGIvZGlyc3J2dGVzdHMvdGVz dHMvc3VpdGVzL3Zsdi9yZWdyZXNzaW9uX3Rlc3QucHkKLWluZGV4IDdjZGYxNmE4NC4uODlhNzQ3 MTk5IDEwMDY0NAotLS0tIGEvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL3Zsdi9yZWdyZXNzaW9u X3Rlc3QucHkKLSsrKyBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy92bHYvcmVncmVzc2lvbl90 ZXN0LnB5Ci1AQCAtMTE3NSw2ICsxMTc1LDcgQEAgZGVmIHRlc3Rfdmx2X3dpdGhfbXIodmx2X3Nl dHVwX3dpdGhfdWlkX21yKToKLSAKLSAKLSAKLStAcHl0ZXN0Lm1hcmsuc2tpcGlmKGdldF9kZWZh dWx0X2RiX2xpYigpID09ICJiZGIiLCByZWFzb249IkhhbmdzIG9uIEJEQiIpCi0gZGVmIHRlc3Rf dmx2X2xvbmdfYXR0cmlidXRlX3ZhbHVlKHRvcG9sb2d5X3N0LCByZXF1ZXN0KToKLSAgICAgIiIi Ci0gICAgIFRlc3QgVkxWIHdpdGggYW4gZW50cnkgY29udGFpbmluZyBhIHZlcnkgbG9uZyBhdHRy aWJ1dGUgdmFsdWUgKDJLKS4KLS0tIAotMi41Mi4wCi0KCmRpZmYgLS1naXQgYS8wMDQ5LUlzc3Vl LTcyMjMtVXNlLWxleGljb2dyYXBoaWNhbC1vcmRlci1mb3ItYW5jZXN0b3JpZC0ucGF0Y2ggYi8w MDQ5LUlzc3VlLTcyMjMtVXNlLWxleGljb2dyYXBoaWNhbC1vcmRlci1mb3ItYW5jZXN0b3JpZC0u cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEyOTFiMmUuLjAwMDAwMDAKLS0t IGEvMDA0OS1Jc3N1ZS03MjIzLVVzZS1sZXhpY29ncmFwaGljYWwtb3JkZXItZm9yLWFuY2VzdG9y aWQtLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotRnJvbSA3ZTU3NWNjOGNj NmYxYmY1NThmNTBjYTBmYzU1MTQ1ZTQ2OWQ2MGQyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQot RnJvbTogVmlrdG9yIEFzaGlyb3YgPHZhc2hpcm92QHJlZGhhdC5jb20+Ci1EYXRlOiBGcmksIDEz IEZlYiAyMDI2IDE2OjU4OjI0ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIElzc3VlIDcyMjMgLSBV c2UgbGV4aWNvZ3JhcGhpY2FsIG9yZGVyIGZvciBhbmNlc3RvcmlkICgjNzI1NikKLQotRGVzY3Jp cHRpb246Ci1gbGRibV9pbnN0YW5jZV9jcmVhdGVfZGVmYXVsdF9pbmRleGVzKClgIGNvbmZpZ3Vy ZWQgYW5jZXN0b3JpZCB3aXRoCi1pbnRlZ2VyT3JkZXJpbmdNYXRjaCBpbiB0aGUgaW4tbWVtb3J5 IGF0dHJpbmZvLCBidXQgYW5jZXN0b3JpZCBvbiBkaXNrCi1taWdodCBiZSB1c2luZyBsZXhpY29n cmFwaGljIG9yZGVyaW5nIChkYXRhIGJlZm9yZSB0aGUgdXBncmFkZSBvciBhZnRlcgotbGRpZjJk YiBpbXBvcnQpLgotCi1SZWxhdGVzOiBodHRwczovL2dpdGh1Yi5jb20vMzg5ZHMvMzg5LWRzLWJh c2UvaXNzdWVzLzcyMjMKLQotUmV2aWV3ZWQgYnk6IEB0Ym9yZGF6IChUaGFua3MhKQotLS0tCi0g bGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9pbnN0YW5jZS5jIHwgMiArLQotIDEgZmlsZSBj aGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEvbGRh cC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9pbnN0YW5jZS5jIGIvbGRhcC9zZXJ2ZXJzL3NsYXBk L2JhY2stbGRibS9pbnN0YW5jZS5jCi1pbmRleCAxN2JmYzA5YTAuLjE1NjllYjdmZiAxMDA2NDQK LS0tLSBhL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vaW5zdGFuY2UuYwotKysrIGIvbGRh cC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9pbnN0YW5jZS5jCi1AQCAtMjMxLDcgKzIzMSw3IEBA IGxkYm1faW5zdGFuY2VfY3JlYXRlX2RlZmF1bHRfaW5kZXhlcyhiYWNrZW5kICpiZSkKLSAgICAg ICogYW5jZXN0b3JpZCBpcyBzcGVjaWFsLCB0aGVyZSBpcyBhY3R1YWxseSBubyBzdWNoIGF0dHIg dHlwZQotICAgICAgKiBidXQgd2Ugc3RpbGwgd2FudCB0byB1c2UgdGhlIGF0dHIgaW5kZXggZmls ZSBBUElzLgotICAgICAgKi8KLS0gICAgZSA9IGxkYm1faW5zdGFuY2VfaW5pdF9jb25maWdfZW50 cnkoTERCTV9BTkNFU1RPUklEX1NUUiwgImVxIiwgMCwgMCwgMCwgImludGVnZXJPcmRlcmluZ01h dGNoIik7Ci0rICAgIGUgPSBsZGJtX2luc3RhbmNlX2luaXRfY29uZmlnX2VudHJ5KExEQk1fQU5D RVNUT1JJRF9TVFIsICJlcSIsIDAsIDAsIDAsIDApOwotICAgICBhdHRyX2luZGV4X2NvbmZpZyhi ZSwgImxkYm0gaW5kZXggaW5pdCIsIDAsIGUsIDEsIDAsIE5VTEwpOwotICAgICBzbGFwaV9lbnRy eV9mcmVlKGUpOwotIAotLS0gCi0yLjUyLjAKLQoKZGlmZiAtLWdpdCBhLzAwNTAtSXNzdWUtMzEz NC1GaXgtYnVpbGQtYnJlYWstNzI2MC5wYXRjaCBiLzAwNTAtSXNzdWUtMzEzNC1GaXgtYnVpbGQt YnJlYWstNzI2MC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjZkOGJlZC4u MDAwMDAwMAotLS0gYS8wMDUwLUlzc3VlLTMxMzQtRml4LWJ1aWxkLWJyZWFrLTcyNjAucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi1Gcm9tIDI0NWJjM2I1M2YzODVlMTJlNGRj OWQyY2I3NjVhNTVlMTBlMGZkYzUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBwcm9n aWVyMzg5IDxwcm9naWVyQHJlZGhhdC5jb20+Ci1EYXRlOiBGcmksIDEzIEZlYiAyMDI2IDE3OjUx OjEyICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIElzc3VlIDMxMzQgLSBGaXggYnVpbGQgYnJlYWsg KCM3MjYwKQotCi1GaXggYnVpbGQgYnJlYWsgb2YgUFIgIzcyMzggcmVsYXRlZCB0byBpbXBvcnQg cnBtCi0KLUlzc3VlOiAjMzEzNAotCi1SZXZpZXdlZCBieTogQHZhc2hpcm92IChUaGFua3MhKQot LS0tCi0gc3JjL2xpYjM4OS9saWIzODkvdXRpbHMucHkgfCAzICsrLQotIDEgZmlsZSBjaGFuZ2Vk LCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9saWIz ODkvbGliMzg5L3V0aWxzLnB5IGIvc3JjL2xpYjM4OS9saWIzODkvdXRpbHMucHkKLWluZGV4IDA3 Y2IzNGQ5My4uNGRmMzZjZjFmIDEwMDY0NAotLS0tIGEvc3JjL2xpYjM4OS9saWIzODkvdXRpbHMu cHkKLSsrKyBiL3NyYy9saWIzODkvbGliMzg5L3V0aWxzLnB5Ci1AQCAtMjgsNyArMjgsNiBAQCBm cm9tIGRhdGV0aW1lIGltcG9ydCAoZGF0ZXRpbWUsIHRpbWVkZWx0YSkKLSBpbXBvcnQgc3lzCi0g aW1wb3J0IGZpbGVjbXAKLSBpbXBvcnQgcHdkCi0taW1wb3J0IHJwbQotIGltcG9ydCBzaGxleAot IGltcG9ydCBvcGVyYXRvcgotIGltcG9ydCBzdWJwcm9jZXNzCi1AQCAtMjEzNSw2ICsyMTM0LDgg QEAgZGVmIGdldF90aW1lb3V0X3NjYWxlKCk6Ci0gCi0gZGVmIHJwbV9pc19vbGRlcihwa2csIHZl cnNpb24pOgotICAgICAiIiJDaGVjayBpZiBhbiBSUE0gcGFja2FnZSB2ZXJzaW9uIGlzIG9sZGVy IHRoYW4gc3BlY2lmaWVkIHZlcnNpb24iIiIKLSsgICAgIyBycG0gbW9kdWxlIGlzIG5vdCBpbnN0 YWxsZWQgaW4gYnVpbGQgZW52aXJvbm1lbnQgc28gbGV0IGltcG9ydCBpdCBvbmx5IHdoZW4gdXNl ZC4KLSsgICAgaW1wb3J0IHJwbQotICAgICB0cyA9IHJwbS5UcmFuc2FjdGlvblNldCgpCi0gICAg IG1pID0gdHMuZGJNYXRjaCgnbmFtZScsIHBrZykKLSAgICAgZm9yIGggaW4gbWk6Ci0tLSAKLTIu NTIuMAotCgpkaWZmIC0tZ2l0IGEvMDA1MS1Jc3N1ZS03MDY2LTcwNTItYWxsb3ctcGFzc3dvcmQt aGlzdG9yeS10by1iZS1zZXQtdG8tLnBhdGNoIGIvMDA1MS1Jc3N1ZS03MDY2LTcwNTItYWxsb3ct cGFzc3dvcmQtaGlzdG9yeS10by1iZS1zZXQtdG8tLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCBjYTFkYWFiLi4wMDAwMDAwCi0tLSBhLzAwNTEtSXNzdWUtNzA2Ni03MDUyLWFs bG93LXBhc3N3b3JkLWhpc3RvcnktdG8tYmUtc2V0LXRvLS5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDg3ICswLDAgQEAKLUZyb20gYWMzZDkyNTNlMGE3YTRiNWYwMTA4NTA2YmNmMjUyNTViMzAy ZmQxNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IE1hcmsgUmV5bm9sZHMgPG1yZXlu b2xkc0ByZWRoYXQuY29tPgotRGF0ZTogV2VkLCAxMSBGZWIgMjAyNiAxNTo1MTo0NyAtMDUwMAot U3ViamVjdDogW1BBVENIXSBJc3N1ZSA3MDY2LzcwNTIgLSBhbGxvdyBwYXNzd29yZCBoaXN0b3J5 IHRvIGJlIHNldCB0byB6ZXJvCi0gYW5kIHJlbW92ZSBoaXN0b3J5Ci0KLURlc2NyaXB0aW9uOgot Ci1Gb3IgbG9jYWwgcGFzc3dvcmQgcG9saWNpZXMgdGhlIHNlcnZlciB3YXMgaW5jb3JyZWN0bHkg cmVqZWN0aW5nIHVwZGF0ZXMgdGhhdAotc2V0IHRoZSB2YWx1ZSB0byB6ZXJvLiAgV2hlbiBwYXNz d29yZCBoaXN0b3J5IGlzIHNldCB0byB6ZXJvIHRoZSBvbGQgcGFzc3dvcmRzCi1pbiB0aGUgZW50 cnkgaGlzdG9yeSBhcmUgbm90IGNsZWFuZWQgYXMgZXhwZWN0ZWQuCi0KLXJlbGF0ZXM6IGh0dHBz Oi8vZ2l0aHViLmNvbS8zODlkcy8zODktZHMtYmFzZS9pc3N1ZXMvNzA1MgotcmVsYXRlczogaHR0 cHM6Ly9naXRodWIuY29tLzM4OWRzLzM4OS1kcy1iYXNlL2lzc3Vlcy83MDY2Ci0KLVJldmlld2Vk IGJ5OiBwcm9naWVyKFRoYW5rcyEpCi0tLS0KLSAuLi4vdGVzdHMvc3VpdGVzL3Bhc3N3b3JkL3B3 cF9oaXN0b3J5X3Rlc3QucHkgICAgICAgfCAgNyArKysrLS0tCi0gbGRhcC9zZXJ2ZXJzL3NsYXBk L21vZGlmeS5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KLSBsZGFwL3NlcnZlcnMv c2xhcGQvcHcuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMyArKysrKysrKysrKyst Ci0gMyBmaWxlcyBjaGFuZ2VkLCAxNyBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQotCi1k aWZmIC0tZ2l0IGEvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL3Bhc3N3b3JkL3B3cF9oaXN0b3J5 X3Rlc3QucHkgYi9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvcGFzc3dvcmQvcHdwX2hpc3Rvcnlf dGVzdC5weQotaW5kZXggY2Y2OGQ3NDNjLi43OGI0NDhhODcgMTAwNjQ0Ci0tLS0gYS9kaXJzcnZ0 ZXN0cy90ZXN0cy9zdWl0ZXMvcGFzc3dvcmQvcHdwX2hpc3RvcnlfdGVzdC5weQotKysrIGIvZGly c3J2dGVzdHMvdGVzdHMvc3VpdGVzL3Bhc3N3b3JkL3B3cF9oaXN0b3J5X3Rlc3QucHkKLUBAIC0x ODksOSArMTg5LDkgQEAgZGVmIHRlc3RfaGlzdG9yeV9pc19ub3Rfb3ZlcndyaXR0ZW4odG9wb2xv Z3lfc3QsIHVzZXIpOgotIAotIAotIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgncG9saWN5JywK LS0gICAgICAgICAgICAgICAgICAgICAgICAgIFsocHl0ZXN0LnBhcmFtKCdnbG9iYWwnLCBtYXJr cz1weXRlc3QubWFyay54ZmFpbChyZWFzb249IkRTNzA1MiIpKSksCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgKHB5dGVzdC5wYXJhbSgnc3VidHJlZScsIG1hcmtzPXB5dGVzdC5tYXJrLnhm YWlsKHJlYXNvbj0iRFM3MDY2LCBEUzcwNTIiKSkpLAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgIChweXRlc3QucGFyYW0oJ3VzZXInLCBtYXJrcz1weXRlc3QubWFyay54ZmFpbChyZWFzb249 IkRTNzA2NiwgRFM3MDUyIikpKV0pCi0rICAgICAgICAgICAgICAgICAgICAgICAgICBbKHB5dGVz dC5wYXJhbSgnZ2xvYmFsJykpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChweXRlc3Qu cGFyYW0oJ3N1YnRyZWUnKSksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgKHB5dGVzdC5w YXJhbSgndXNlcicpKV0pCi0gZGVmIHRlc3RfYmFzaWModG9wb2xvZ3lfc3QsIHVzZXIsIHBvbGlj eSk6Ci0gICAgICIiIlRlc3QgYmFzaWMgcGFzc3dvcmQgcG9saWN5IGhpc3RvcnkgZmVhdHVyZSBm dW5jdGlvbmFsaXR5IHdpdGggZHluYW1pYyBjb3VudCByZWR1Y3Rpb24KLSAKLUBAIC0yODIsNiAr MjgyLDcgQEAgZGVmIHRlc3RfYmFzaWModG9wb2xvZ3lfc3QsIHVzZXIsIHBvbGljeSk6Ci0gICAg ICMgUGFzc3dvcmQgaGlzdG9yeSBbcGFzc3dvcmQzLCBwYXNzd29yZDRdLCBjdXJyZW50IHBhc3N3 b3JkIGlzICJwYXNzd29yZDEiCi0gCi0gICAgICMgUmVzZXQgcGFzc3dvcmQgYnkgRGlyZWN0b3J5 IE1hbmFnZXIoYWRtaW4gcmVzZXQpCi0rICAgIGRtID0gRGlyZWN0b3J5TWFuYWdlcih0b3BvbG9n eV9zdC5zdGFuZGFsb25lKQotICAgICBkbS5yZWJpbmQoKQotICAgICB0aW1lLnNsZWVwKC41KQot ICAgICBjaGFuZ2VfcGFzc3dvcmQodXNlciwgJ3Bhc3N3b3JkLXJlc2V0Jywgc3VjY2Vzcz1UcnVl KQotZGlmZiAtLWdpdCBhL2xkYXAvc2VydmVycy9zbGFwZC9tb2RpZnkuYyBiL2xkYXAvc2VydmVy cy9zbGFwZC9tb2RpZnkuYwotaW5kZXggOWU1YmNlODBiLi4wZWNjZTliYzggMTAwNjQ0Ci0tLS0g YS9sZGFwL3NlcnZlcnMvc2xhcGQvbW9kaWZ5LmMKLSsrKyBiL2xkYXAvc2VydmVycy9zbGFwZC9t b2RpZnkuYwotQEAgLTg3LDcgKzg3LDcgQEAgc3RhdGljIHN0cnVjdCBhdHRyX3ZhbHVlX2NoZWNr Ci0gICAgIHtDT05GSUdfUFdfV0FSTklOR19BVFRSSUJVVEUsIGNoZWNrX3B3X2R1cmF0aW9uX3Zh bHVlLCAwLCAtMX0sCi0gICAgIHtDT05GSUdfUFdfTUlOTEVOR1RIX0FUVFJJQlVURSwgYXR0cl9j aGVja19taW5tYXgsIDIsIDUxMn0sCi0gICAgIHtDT05GSUdfUFdfTUFYRkFJTFVSRV9BVFRSSUJV VEUsIGF0dHJfY2hlY2tfbWlubWF4LCAxLCAzMjc2N30sCi0tICAgIHtDT05GSUdfUFdfSU5ISVNU T1JZX0FUVFJJQlVURSwgYXR0cl9jaGVja19taW5tYXgsIDEsIDI0fSwKLSsgICAge0NPTkZJR19Q V19JTkhJU1RPUllfQVRUUklCVVRFLCBhdHRyX2NoZWNrX21pbm1heCwgMCwgMjR9LAotICAgICB7 Q09ORklHX1BXX0xPQ0tEVVJBVElPTl9BVFRSSUJVVEUsIGNoZWNrX3B3X2R1cmF0aW9uX3ZhbHVl LCAtMSwgLTF9LAotICAgICB7Q09ORklHX1BXX1JFU0VURkFJTFVSRUNPVU5UX0FUVFJJQlVURSwg Y2hlY2tfcHdfcmVzZXRmYWlsdXJlY291bnRfdmFsdWUsIC0xLCAtMX0sCi0gICAgIHtDT05GSUdf UFdfR1JBQ0VMSU1JVF9BVFRSSUJVVEUsIGF0dHJfY2hlY2tfbWlubWF4LCAwLCAtMX0sCi1kaWZm IC0tZ2l0IGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL3B3LmMgYi9sZGFwL3NlcnZlcnMvc2xhcGQvcHcu YwotaW5kZXggMDU1ZWMwZDc0Li5jNTNlY2YyM2QgMTAwNjQ0Ci0tLS0gYS9sZGFwL3NlcnZlcnMv c2xhcGQvcHcuYwotKysrIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL3B3LmMKLUBAIC0xNTM1LDcgKzE1 MzUsMTggQEAgdXBkYXRlX3B3X2hpc3RvcnkoU2xhcGlfUEJsb2NrICpwYiwgY29uc3QgU2xhcGlf RE4gKnNkbiwgY2hhciAqb2xkX3B3KQotICAgICBwd3BvbGljeSA9IG5ld19wYXNzd2RQb2xpY3ko cGIsIGRuKTsKLSAKLSAgICAgaWYgKHB3cG9saWN5LT5wd19pbmhpc3RvcnkgPT0gMCl7Ci0tICAg ICAgICAvKiBXZSBhcmUgb25seSBlbmZvcmNpbmcgdGhlIGN1cnJlbnQgcGFzc3dvcmQsIGp1c3Qg cmV0dXJuICovCi0rICAgICAgICAvKiBXZSBhcmUgb25seSBlbmZvcmNpbmcgdGhlIGN1cnJlbnQg cGFzc3dvcmQsIGp1c3QgcmV0dXJuIGJ1dCBmaXJzdAotKyAgICAgICAgICogY2xlYW51cCBhbnkg b2xkIHBhc3N3b3JkcyBpbiB0aGUgaGlzdG9yeSAqLwotKyAgICAgICAgYXR0cmlidXRlLm1vZF90 eXBlID0gInBhc3N3b3JkSGlzdG9yeSI7Ci0rICAgICAgICBhdHRyaWJ1dGUubW9kX29wID0gTERB UF9NT0RfUkVQTEFDRTsKLSsgICAgICAgIGF0dHJpYnV0ZS5tb2RfdmFsdWVzID0gTlVMTDsKLSsg ICAgICAgIGxpc3Rfb2ZfbW9kc1swXSA9ICZhdHRyaWJ1dGU7Ci0rICAgICAgICBsaXN0X29mX21v ZHNbMV0gPSBOVUxMOwotKyAgICAgICAgbW9kX3BiID0gc2xhcGlfcGJsb2NrX25ldygpOwotKyAg ICAgICAgc2xhcGlfbW9kaWZ5X2ludGVybmFsX3NldF9wYl9leHQobW9kX3BiLCBzZG4sIGxpc3Rf b2ZfbW9kcywgTlVMTCwgTlVMTCwgcHdfZ2V0X2NvbXBvbmVudElEKCksIDApOwotKyAgICAgICAg c2xhcGlfbW9kaWZ5X2ludGVybmFsX3BiKG1vZF9wYik7Ci0rICAgICAgICBzbGFwaV9wYmxvY2tf ZGVzdHJveShtb2RfcGIpOwotKwotICAgICAgICAgcmV0dXJuIHJlczsKLSAgICAgfQotIAotLS0g Ci0yLjUzLjAKLQoKZGlmZiAtLWdpdCBhLzAwNTItSXNzdWUtNzI0My1VSS1hZGQtc3VwcG9ydC1m b3ItaG90LWNlcnRpZmljYXRlcy5wYXRjaCBiLzAwNTItSXNzdWUtNzI0My1VSS1hZGQtc3VwcG9y dC1mb3ItaG90LWNlcnRpZmljYXRlcy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDI1NTg4OC4uMDAwMDAwMAotLS0gYS8wMDUyLUlzc3VlLTcyNDMtVUktYWRkLXN1cHBvcnQt Zm9yLWhvdC1jZXJ0aWZpY2F0ZXMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMzc5ICswLDAg QEAKLUZyb20gNTY1NjNjOTA4M2EwMWZjMjZkODUzZWRmNDUzOGNlNzA5MDBkMjU5YyBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IE1hcmsgUmV5bm9sZHMgPG1yZXlub2xkc0ByZWRoYXQu Y29tPgotRGF0ZTogV2VkLCAyOCBKYW4gMjAyNiAxMjowMjo1NCAtMDUwMAotU3ViamVjdDogW1BB VENIXSBJc3N1ZSA3MjQzIC0gVUkgLSBhZGQgc3VwcG9ydCBmb3IgaG90IGNlcnRpZmljYXRlcwot Ci1EZXNjcmlwdGlvbjoKLQotSW4gdGhlICJBZGQgU2VydmVyIENlcnRpZmljYXRlIiBtb2RhbCBh ZGQgcGFzc3dvcmQgb3B0aW9ucyBmb3IgcGtjcyMxMgotY2VydGlmaWNhdGVzLiBBbHNvIGltcHJv dmVkIHZhbGlkYXRpb24gZm9yIGNlcnRpZmljYXRlIG5hbWVzCi0KLXJlbGF0ZXM6IGh0dHBzOi8v Z2l0aHViLmNvbS8zODlkcy8zODktZHMtYmFzZS9pc3N1ZXMvNzI0MwotCi1SZXZpZXdlZCBieTog amNoYXBtYW4gJiBzcGljaHVnaSAoVGhhbmtzISEpCi0tLS0KLSAuLi4vbGliL3NlY3VyaXR5L2Nl cnRpZmljYXRlTWFuYWdlbWVudC5qc3ggICAgfCAzNjYgKysrKysrKysrKysrLS0tCi0gLi4uL3Ny Yy9saWIvc2VjdXJpdHkvc2VjdXJpdHlNb2RhbHMuanN4ICAgICAgIHwgNDI1ICsrKysrKysrKysr KysrKysrLQotIC4uLi9zcmMvbGliL3NlY3VyaXR5L3NlY3VyaXR5VGFibGVzLmpzeCAgICAgICB8 ICA4NSArKy0tCi0gc3JjL2NvY2twaXQvMzg5LWNvbnNvbGUvc3JjL3NlY3VyaXR5LmpzeCAgICAg IHwgIDEwICsKLSBzcmMvbGliMzg5L2xpYjM4OS9jbGlfY29uZi9zZWN1cml0eS5weSAgICAgICAg fCAgMjMgKy0KLSA1IGZpbGVzIGNoYW5nZWQsIDc1OCBpbnNlcnRpb25zKCspLCAxNTEgZGVsZXRp b25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvY29ja3BpdC8zODktY29uc29sZS9zcmMvbGliL3Nl Y3VyaXR5L2NlcnRpZmljYXRlTWFuYWdlbWVudC5qc3ggYi9zcmMvY29ja3BpdC8zODktY29uc29s ZS9zcmMvbGliL3NlY3VyaXR5L2NlcnRpZmljYXRlTWFuYWdlbWVudC5qc3gKLWluZGV4IDQ3NWZj YmEyNy4uMThmOTg1OTliIDEwMDY0NAotLS0tIGEvc3JjL2NvY2twaXQvMzg5LWNvbnNvbGUvc3Jj L2xpYi9zZWN1cml0eS9jZXJ0aWZpY2F0ZU1hbmFnZW1lbnQuanN4Ci0rKysgYi9zcmMvY29ja3Bp dC8zODktY29uc29sZS9zcmMvbGliL3NlY3VyaXR5L2NlcnRpZmljYXRlTWFuYWdlbWVudC5qc3gK LUBAIC0xOSw2ICsxOSw3IEBAIGltcG9ydCB7Ci0gaW1wb3J0IHsKLSAgICAgRWRpdENlcnRNb2Rh bCwKLSAgICAgU2VjdXJpdHlBZGRDZXJ0TW9kYWwsCi0rICAgIFNlY3VyaXR5QWRkQ0FDZXJ0TW9k YWwsCi0gICAgIFNlY3VyaXR5QWRkQ1NSTW9kYWwsCi0gICAgIFNlY3VyaXR5Vmlld0NTUk1vZGFs LAotICAgICBFeHBvcnRDZXJ0TW9kYWwsCi1AQCAtMzcsNiArMzgsOCBAQCBleHBvcnQgY2xhc3Mg Q2VydGlmaWNhdGVNYW5hZ2VtZW50IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAg ICAgICBDQUNlcnRzOiB0aGlzLnByb3BzLkNBQ2VydHMsCi0gICAgICAgICAgICAgU2VydmVyQ1NS czogdGhpcy5wcm9wcy5TZXJ2ZXJDU1JzLAotICAgICAgICAgICAgIFNlcnZlcktleXM6IHRoaXMu cHJvcHMuU2VydmVyS2V5cywKLSsgICAgICAgICAgICBjZXJ0Tmlja25hbWVzOiB0aGlzLnByb3Bz LmNlcnROaWNrbmFtZXMsCi0rICAgICAgICAgICAgQ0FDZXJ0Tmlja25hbWVzOiB0aGlzLnByb3Bz LkNBQ2VydE5pY2tuYW1lcywKLSAgICAgICAgICAgICB0YWJsZUtleTogMCwKLSAgICAgICAgICAg ICBzaG93RWRpdE1vZGFsOiBmYWxzZSwKLSAgICAgICAgICAgICBzaG93QWRkTW9kYWw6IGZhbHNl LAotQEAgLTg1LDYgKzg4LDExIEBAIGV4cG9ydCBjbGFzcyBDZXJ0aWZpY2F0ZU1hbmFnZW1lbnQg ZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAgICAgIHVwbG9hZEZpbGVOYW1lOiAi IiwKLSAgICAgICAgICAgICB1cGxvYWRJc0xvYWRpbmc6IGZhbHNlLAotICAgICAgICAgICAgIHVw bG9hZElzUmVqZWN0ZWQ6IGZhbHNlLAotKyAgICAgICAgICAgIC8vIFBLQ1MjMTIgUGFzc3dvcmQg b3B0aW9ucwotKyAgICAgICAgICAgIHBrY3MxMlBpbk1ldGhvZDogIm5vUGFzc3dvcmQiLAotKyAg ICAgICAgICAgIHBrY3MxMlBpbkZpbGU6ICIiLAotKyAgICAgICAgICAgIHBrY3MxMlBpblRleHQ6 ICIiLAotKyAgICAgICAgICAgIGZvcmNlQ2VydEFkZDogZmFsc2UsCi0gICAgICAgICB9OwotIAot ICAgICAgICAgLy8gRmlsZSBVcGxvYWQgZnVuY3Rpb25zCi1AQCAtMTkxLDYgKzE5OSwxMSBAQCBl eHBvcnQgY2xhc3MgQ2VydGlmaWNhdGVNYW5hZ2VtZW50IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50 IHsKLSAgICAgICAgIHRoaXMub25SYWRpb0NoYW5nZSA9IHRoaXMub25SYWRpb0NoYW5nZS5iaW5k KHRoaXMpOwotICAgICAgICAgdGhpcy52YWxpZGF0ZUNlcnRUZXh0ID0gdGhpcy52YWxpZGF0ZUNl cnRUZXh0LmJpbmQodGhpcyk7Ci0gICAgICAgICB0aGlzLmdldENlcnRGaWxlcyA9IHRoaXMuZ2V0 Q2VydEZpbGVzLmJpbmQodGhpcyk7Ci0rICAgICAgICAvLyBQS0NTIzEyIFBhc3N3b3JkIGhhbmRs ZXJzCi0rICAgICAgICB0aGlzLm9uUGtjczEyUGluTWV0aG9kQ2hhbmdlID0gdGhpcy5vblBrY3Mx MlBpbk1ldGhvZENoYW5nZS5iaW5kKHRoaXMpOwotKyAgICAgICAgdGhpcy5vblBrY3MxMlBpbkZp bGVDaGFuZ2UgPSB0aGlzLm9uUGtjczEyUGluRmlsZUNoYW5nZS5iaW5kKHRoaXMpOwotKyAgICAg ICAgdGhpcy5vblBrY3MxMlBpblRleHRDaGFuZ2UgPSB0aGlzLm9uUGtjczEyUGluVGV4dENoYW5n ZS5iaW5kKHRoaXMpOwotKyAgICAgICAgdGhpcy5vbkZvcmNlQ2VydEFkZENoYW5nZSA9IHRoaXMu b25Gb3JjZUNlcnRBZGRDaGFuZ2UuYmluZCh0aGlzKTsKLSAgICAgfQotIAotICAgICBjb21wb25l bnREaWRNb3VudCAoKSB7Ci1AQCAtMjExLDEyICsyMjQsMjAgQEAgZXhwb3J0IGNsYXNzIENlcnRp ZmljYXRlTWFuYWdlbWVudCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICAgICAg Y2VydFJhZGlvVXBsb2FkOiB0cnVlLAotICAgICAgICAgICAgIGlzU2VsZWN0Q2VydE9wZW46IGZh bHNlLAotICAgICAgICAgICAgIG1vZGFsU3Bpbm5pbmc6IGZhbHNlLAotKyAgICAgICAgICAgIHBr Y3MxMlBpbk1ldGhvZDogIm5vUGFzc3dvcmQiLAotKyAgICAgICAgICAgIHBrY3MxMlBpbkZpbGU6 ICIiLAotKyAgICAgICAgICAgIHBrY3MxMlBpblRleHQ6ICIiLAotKyAgICAgICAgICAgIGZvcmNl Q2VydEFkZDogZmFsc2UsCi0gICAgICAgICB9KTsKLSAgICAgfQotIAotICAgICBjbG9zZUFkZE1v ZGFsICgpIHsKLSAgICAgICAgIHRoaXMuc2V0U3RhdGUoewotICAgICAgICAgICAgIHNob3dBZGRN b2RhbDogZmFsc2UsCi0rICAgICAgICAgICAgcGtjczEyUGluTWV0aG9kOiAibm9QYXNzd29yZCIs Ci0rICAgICAgICAgICAgcGtjczEyUGluRmlsZTogIiIsCi0rICAgICAgICAgICAgcGtjczEyUGlu VGV4dDogIiIsCi0rICAgICAgICAgICAgZm9yY2VDZXJ0QWRkOiBmYWxzZSwKLSAgICAgICAgIH0p OwotICAgICB9Ci0gCi1AQCAtMjM0LDEyICsyNTUsMjAgQEAgZXhwb3J0IGNsYXNzIENlcnRpZmlj YXRlTWFuYWdlbWVudCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICAgICAgY2Vy dFJhZGlvVXBsb2FkOiB0cnVlLAotICAgICAgICAgICAgIGlzU2VsZWN0Q2VydE9wZW46IGZhbHNl LAotICAgICAgICAgICAgIG1vZGFsU3Bpbm5pbmc6IGZhbHNlLAotKyAgICAgICAgICAgIHBrY3Mx MlBpbk1ldGhvZDogIm5vUGFzc3dvcmQiLAotKyAgICAgICAgICAgIHBrY3MxMlBpbkZpbGU6ICIi LAotKyAgICAgICAgICAgIHBrY3MxMlBpblRleHQ6ICIiLAotKyAgICAgICAgICAgIGZvcmNlQ2Vy dEFkZDogZmFsc2UsCi0gICAgICAgICB9KTsKLSAgICAgfQotIAotICAgICBjbG9zZUFkZENBTW9k YWwgKCkgewotICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7Ci0gICAgICAgICAgICAgc2hvd0FkZENB TW9kYWw6IGZhbHNlLAotKyAgICAgICAgICAgIHBrY3MxMlBpbk1ldGhvZDogIm5vUGFzc3dvcmQi LAotKyAgICAgICAgICAgIHBrY3MxMlBpbkZpbGU6ICIiLAotKyAgICAgICAgICAgIHBrY3MxMlBp blRleHQ6ICIiLAotKyAgICAgICAgICAgIGZvcmNlQ2VydEFkZDogZmFsc2UsCi0gICAgICAgICB9 KTsKLSAgICAgfQotIAotQEAgLTI2Myw2ICsyOTIsNDIgQEAgZXhwb3J0IGNsYXNzIENlcnRpZmlj YXRlTWFuYWdlbWVudCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICB9KTsKLSAg ICAgfQotIAotKyAgICBvblBrY3MxMlBpbk1ldGhvZENoYW5nZShlLCBfKSB7Ci0rICAgICAgICAv LyBIYW5kbGUgUEtDUyMxMiBwYXNzd29yZCBtZXRob2Qgc2VsZWN0aW9uCi0rICAgICAgICBsZXQg cGtjczEyUGluTWV0aG9kID0gIiI7Ci0rICAgICAgICBpZiAoZS50YXJnZXQuaWQgPT09ICJwa2Nz MTJQaW5SYWRpb1N0ZGluIikgewotKyAgICAgICAgICAgIHBrY3MxMlBpbk1ldGhvZCA9ICJzdGRp biI7Ci0rICAgICAgICB9IGVsc2UgaWYgKGUudGFyZ2V0LmlkID09PSAicGtjczEyUGluUmFkaW9G aWxlIikgewotKyAgICAgICAgICAgIHBrY3MxMlBpbk1ldGhvZCA9ICJmaWxlIjsKLSsgICAgICAg IH0gZWxzZSBpZiAoZS50YXJnZXQuaWQgPT09ICJub1Bhc3N3b3JkUmFkaW8iKSB7Ci0rICAgICAg ICAgICAgcGtjczEyUGluTWV0aG9kID0gIm5vUGFzc3dvcmQiOwotKyAgICAgICAgfQotKyAgICAg ICAgLy8gQ2xlYXIgb3RoZXIgcGFzc3dvcmQgZmllbGRzIHdoZW4gbWV0aG9kIGNoYW5nZXMKLSsg ICAgICAgIHRoaXMuc2V0U3RhdGUoewotKyAgICAgICAgICAgIHBrY3MxMlBpbk1ldGhvZCwKLSsg ICAgICAgICAgICBwa2NzMTJQaW5GaWxlOiAiIiwKLSsgICAgICAgICAgICBwa2NzMTJQaW5UZXh0 OiAiIiwKLSsgICAgICAgIH0pOwotKyAgICB9Ci0rCi0rICAgIG9uUGtjczEyUGluRmlsZUNoYW5n ZSh2YWx1ZSkgewotKyAgICAgICAgdGhpcy5zZXRTdGF0ZSh7Ci0rICAgICAgICAgICAgcGtjczEy UGluRmlsZTogdmFsdWUKLSsgICAgICAgIH0pOwotKyAgICB9Ci0rCi0rICAgIG9uUGtjczEyUGlu VGV4dENoYW5nZSh2YWx1ZSkgewotKyAgICAgICAgdGhpcy5zZXRTdGF0ZSh7Ci0rICAgICAgICAg ICAgcGtjczEyUGluVGV4dDogdmFsdWUKLSsgICAgICAgIH0pOwotKyAgICB9Ci0rCi0rICAgIG9u Rm9yY2VDZXJ0QWRkQ2hhbmdlKGNoZWNrZWQpIHsKLSsgICAgICAgIHRoaXMuc2V0U3RhdGUoewot KyAgICAgICAgICAgIGZvcmNlQ2VydEFkZDogY2hlY2tlZAotKyAgICAgICAgfSk7Ci0rICAgIH0K LSsKLSAgICAgc2hvd0FkZENTUk1vZGFsICgpIHsKLSAgICAgICAgIHRoaXMuc2V0U3RhdGUoewot ICAgICAgICAgICAgIHNob3dBZGRDU1JNb2RhbDogdHJ1ZSwKLUBAIC00NjgsNDMgKzUzMywxMTIg QEAgZXhwb3J0IGNsYXNzIENlcnRpZmljYXRlTWFuYWdlbWVudCBleHRlbmRzIFJlYWN0LkNvbXBv bmVudCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkc2NvbmYiLCAiLWoiLCAibGRh cGk6Ly8lMmZ2YXIlMmZydW4lMmZzbGFwZC0iICsgdGhpcy5wcm9wcy5zZXJ2ZXJJZCArICIuc29j a2V0IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNlY3VyaXR5IiwgY2VydFR5cGUs ICJhZGQiLCAiLS1uYW1lPSIgKyB0aGlzLnN0YXRlLmNlcnROYW1lLCAiLS1maWxlPSIgKyBjZXJ0 RmlsZQotICAgICAgICAgICAgICAgICAgICAgICAgIF07Ci0rCi0rICAgICAgICAgICAgICAgICAg ICAgICAgLy8gQWRkIFBLQ1MjMTIgcGFzc3dvcmQgb3B0aW9ucwotKyAgICAgICAgICAgICAgICAg ICAgICAgIGlmICh0aGlzLnN0YXRlLnBrY3MxMlBpbk1ldGhvZCA9PT0gImZpbGUiICYmIHRoaXMu c3RhdGUucGtjczEyUGluRmlsZSAhPT0gIiIpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY21kLnB1c2goIi0tcGtjczEyLXBpbi1wYXRoPSIgKyB0aGlzLnN0YXRlLnBrY3MxMlBpbkZp bGUpOwotKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zdGF0ZS5wa2Nz MTJQaW5NZXRob2QgPT09ICJzdGRpbiIpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y21kLnB1c2goIi0tcGtjczEyLXBpbi1zdGRpbiIpOwotKyAgICAgICAgICAgICAgICAgICAgICAg IH0KLSsKLSsgICAgICAgICAgICAgICAgICAgICAgICAvLyBBZGQgZm9yY2UgZmxhZwotKyAgICAg ICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlLmZvcmNlQ2VydEFkZCkgewotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjbWQucHVzaCgiLS1kby1pdCIpOwotKyAgICAgICAgICAg ICAgICAgICAgICAgIH0KLSsKLSAgICAgICAgICAgICAgICAgICAgICAgICBsb2dfY21kKCJhZGRD ZXJ0IiwgIkFkZGluZyBjZXJ0ICh0bXApOiAiLCBjbWQpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgIGNvY2twaXQKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zcGF3bihjbWQs IHsgc3VwZXJ1c2VyOiB0cnVlLCBlcnI6ICJtZXNzYWdlIiB9KQotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLmRvbmUoKCkgPT4gewotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHRoaXMuZGVsZXRlVG1wQ2VydChjZXJ0RmlsZSk7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWxvYWRDQUNlcnRzKCk7Ci0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7Ci0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dBZGRNb2RhbDogZmFsc2UsCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGFsU3Bpbm5pbmc6IGZhbHNlLAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nOiBmYWxzZSwKLSsK LSsgICAgICAgICAgICAgICAgICAgICAgICAvLyBIYW5kbGUgc3RkaW4gbWV0aG9kIHdpdGggUFRZ IHNwYXduCi0rICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUucGtjczEyUGlu TWV0aG9kID09PSAic3RkaW4iKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBi dWZmZXIgPSAiIjsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJvYyA9IGNv Y2twaXQuc3Bhd24oY21kLCB7IHB0eTogdHJ1ZSwgZW52aXJvbjogWyJMQ19BTEw9QyJdLCBzdXBl cnVzZXI6IHRydWUsIGVycjogIm1lc3NhZ2UiIH0pOwotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwcm9jCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmRvbmUoKCkg PT4gewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlbGV0 ZVRtcENlcnQoY2VydEZpbGUpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0aGlzLnJlbG9hZENBQ2VydHMoKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzaG93QWRkTW9kYWw6IGZhbHNlLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kYWxTcGlubmluZzogZmFsc2UsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nOiBmYWxzZSwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVsb2FkT3JwaGFuS2V5cygpOwotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmFkZE5vdGlm aWNhdGlvbigKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJz dWNjZXNzIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8o IlN1Y2Nlc3NmdWxseSBhZGRlZCBjZXJ0aWZpY2F0ZSIpCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHRoaXMuY2xvc2VBZGRDQU1vZGFsKCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VBZGRNb2RhbCgpOwotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0pCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLmZhaWwoZXJyID0+IHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IG1zZyA9IF8oIlVua25vd24gZXJyb3IiKTsKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdHJ5IHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IGVyck1zZyA9IGJ1ZmZlciA/IEpTT04ucGFyc2UoYnVmZmVyKSA6 IEpTT04ucGFyc2UoZXJyKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG1zZyA9IGVyck1zZy5kZXNjIHx8IGVyck1zZy5tZXNzYWdlIHx8IGJ1ZmZlciB8fCBl cnI7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJ2lu Zm8nIGluIGVyck1zZykgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG1zZyA9IGVyck1zZy5kZXNjICsgIiAtICIgKyBlcnJNc2cuaW5mbzsKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgcGFyc2luZyBmYWlscywgdXNlIGJ1 ZmZlciBvciBlcnJvciBkaXJlY3RseQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbXNnID0gYnVmZmVyIHx8IGVyciB8fCBfKCJVbmtub3duIGVycm9yIik7Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWxldGVUbXBDZXJ0KGNlcnRGaWxlKTsK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZUFkZENB TW9kYWwoKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5j bG9zZUFkZE1vZGFsKCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHRoaXMuc2V0U3RhdGUoewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbW9kYWxTcGlubmluZzogZmFsc2UsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsb2FkaW5nOiBmYWxzZSwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHRoaXMucHJvcHMuYWRkTm90aWZpY2F0aW9uKAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgImVycm9yIiwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvY2twaXQuZm9ybWF0KF8oIkVycm9yIGFkZGluZyBjZXJ0 aWZpY2F0ZSAtICQwIiksIG1zZykKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zdHJlYW0oZGF0YSA9PiB7Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlciArPSBkYXRhOwotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsaW5lcyA9IGJ1ZmZlci5z cGxpdCgiXG4iKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgbGFzdF9saW5lID0gbGluZXNbbGluZXMubGVuZ3RoIC0gMV0udG9Mb3dlckNhc2UoKTsKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3RfbGluZS5pbmNs dWRlcygicGFzc3dvcmQiKSB8fCBsYXN0X2xpbmUuaW5jbHVkZXMoInBpbiIpKSB7Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jLmlucHV0KHRoaXMuc3Rh dGUucGtjczEyUGluVGV4dCArICJcbiIsIHRydWUpOwotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fSk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWxvYWRPcnBo YW5LZXlzKCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9w cy5hZGROb3RpZmljYXRpb24oCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJzdWNjZXNzIiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XygiU3VjY2Vzc2Z1bGx5IGFkZGVkIGNlcnRpZmljYXRlIikKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHRoaXMuY2xvc2VBZGRDQU1vZGFsKCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdGhpcy5jbG9zZUFkZE1vZGFsKCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9KQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZhaWwoZXJyID0+IHsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJNc2cgPSBKU09O LnBhcnNlKGVycik7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1z ZyA9IGVyck1zZy5kZXNjOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm ICgnaW5mbycgaW4gZXJyTXNnKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG1zZyA9IGVyck1zZy5kZXNjICsgIiAtICIgKyBlcnJNc2cuaW5mbzsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdGhpcy5kZWxldGVUbXBDZXJ0KGNlcnRGaWxlKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlQWRkQ0FNb2RhbCgpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VBZGRNb2RhbCgpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoewotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RhbFNwaW5uaW5nOiBmYWxzZSwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZzogZmFsc2UsCi0r ICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29ja3BpdAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zcGF3 bihjbWQsIHsgc3VwZXJ1c2VyOiB0cnVlLCBlcnI6ICJtZXNzYWdlIiB9KQotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC5kb25lKCgpID0+IHsKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWxldGVUbXBDZXJ0KGNlcnRGaWxlKTsKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWxvYWRDQUNlcnRz KCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3Rh dGUoewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0Fk ZE1vZGFsOiBmYWxzZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG1vZGFsU3Bpbm5pbmc6IGZhbHNlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbG9hZGluZzogZmFsc2UsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0pOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0aGlzLnJlbG9hZE9ycGhhbktleXMoKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5hZGROb3RpZmljYXRpb24oCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VjY2VzcyIsCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJTdWNjZXNzZnVsbHkgYWRkZWQgY2Vy dGlmaWNhdGUiKQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlQWRkQ0FN b2RhbCgpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNs b3NlQWRkTW9kYWwoKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5mYWlsKGVyciA9PiB7Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVyck1zZyA9IEpTT04u cGFyc2UoZXJyKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0 IG1zZyA9IGVyck1zZy5kZXNjOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiAoJ2luZm8nIGluIGVyck1zZykgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbXNnID0gZXJyTXNnLmRlc2MgKyAiIC0gIiArIGVyck1zZy5pbmZv OwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVsZXRlVG1wQ2VydChjZXJ0Rmls ZSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VB ZGRDQU1vZGFsKCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRo aXMuY2xvc2VBZGRNb2RhbCgpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0aGlzLnNldFN0YXRlKHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG1vZGFsU3Bpbm5pbmc6IGZhbHNlLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbG9hZGluZzogZmFsc2UsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0pOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0aGlzLnByb3BzLmFkZE5vdGlmaWNhdGlvbigKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJlcnJvciIsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb2NrcGl0LmZvcm1hdChfKCJFcnJvciBhZGRpbmcg Y2VydGlmaWNhdGUgLSAkMCIpLCBtc2cpCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5hZGROb3RpZmlj YXRpb24oCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJlcnJvciIs Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvY2twaXQuZm9ybWF0 KF8oIkVycm9yIGFkZGluZyBjZXJ0aWZpY2F0ZSAtICQwIiksIG1zZykKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAg fSkKLSAgICAgICAgICAgICAgICAgICAgIC5mYWlsKGVyciA9PiB7Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7Ci1AQCAtNTI5LDQyICs2NjMsMTEwIEBAIGV4cG9ydCBj bGFzcyBDZXJ0aWZpY2F0ZU1hbmFnZW1lbnQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAg ICAgICAgICAgICAgICAvLyBjZXJ0UmFkaW9TZWxlY3QKLSAgICAgICAgICAgICAgICAgY21kLnB1 c2goIi0tZmlsZT0iICsgdGhpcy5wcm9wcy5jZXJ0RGlyICsgIi8iICsgdGhpcy5zdGF0ZS5zZWxl Y3RDZXJ0TmFtZSk7Ci0gICAgICAgICAgICAgfQotKwotKyAgICAgICAgICAgIC8vIEFkZCBQS0NT IzEyIHBhc3N3b3JkIG9wdGlvbnMKLSsgICAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5wa2NzMTJQ aW5NZXRob2QgPT09ICJmaWxlIiAmJiB0aGlzLnN0YXRlLnBrY3MxMlBpbkZpbGUgIT09ICIiKSB7 Ci0rICAgICAgICAgICAgICAgIGNtZC5wdXNoKCItLXBrY3MxMi1waW4tcGF0aD0iICsgdGhpcy5z dGF0ZS5wa2NzMTJQaW5GaWxlKTsKLSsgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc3RhdGUu cGtjczEyUGluTWV0aG9kID09PSAic3RkaW4iKSB7Ci0rICAgICAgICAgICAgICAgIGNtZC5wdXNo KCItLXBrY3MxMi1waW4tc3RkaW4iKTsKLSsgICAgICAgICAgICB9Ci0rCi0rICAgICAgICAgICAg Ly8gQWRkIGZvcmNlIGZsYWcKLSsgICAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5mb3JjZUNlcnRB ZGQpIHsKLSsgICAgICAgICAgICAgICAgY21kLnB1c2goIi0tZG8taXQiKTsKLSsgICAgICAgICAg ICB9Ci0rCi0gICAgICAgICAgICAgbG9nX2NtZCgiYWRkQ2VydCIsICJBZGRpbmcgY2VydDogIiwg Y21kKTsKLS0gICAgICAgICAgICBjb2NrcGl0Ci0tICAgICAgICAgICAgICAgICAgICAuc3Bhd24o Y21kLCB7IHN1cGVydXNlcjogdHJ1ZSwgZXJyOiAibWVzc2FnZSIgfSkKLS0gICAgICAgICAgICAg ICAgICAgIC5kb25lKCgpID0+IHsKLS0gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbG9h ZENBQ2VydHMoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlQWRkQ0FNb2Rh bCgpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VBZGRNb2RhbCgpOwotLSAg ICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoewotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzaG93QWRkTW9kYWw6IGZhbHNlLAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjZXJ0RmlsZTogJycsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnROYW1l OiAnJywKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kYWxTcGlubmluZzogZmFsc2UK LSsKLSsgICAgICAgICAgICAvLyBIYW5kbGUgc3RkaW4gbWV0aG9kIHdpdGggUFRZIHNwYXduCi0r ICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUucGtjczEyUGluTWV0aG9kID09PSAic3RkaW4iKSB7 Ci0rICAgICAgICAgICAgICAgIGxldCBidWZmZXIgPSAiIjsKLSsgICAgICAgICAgICAgICAgY29u c3QgcHJvYyA9IGNvY2twaXQuc3Bhd24oY21kLCB7IHB0eTogdHJ1ZSwgZW52aXJvbjogWyJMQ19B TEw9QyJdLCBzdXBlcnVzZXI6IHRydWUsIGVycjogIm1lc3NhZ2UiIH0pOwotKyAgICAgICAgICAg ICAgICBwcm9jCi0rICAgICAgICAgICAgICAgICAgICAgICAgLmRvbmUoKCkgPT4gewotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbG9hZENBQ2VydHMoKTsKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZUFkZENBTW9kYWwoKTsKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdGhpcy5jbG9zZUFkZE1vZGFsKCk7Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHRoaXMuc2V0U3RhdGUoewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2hvd0FkZE1vZGFsOiBmYWxzZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNlcnRGaWxlOiAnJywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnROYW1l OiAnJywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGFsU3Bpbm5pbmc6IGZh bHNlCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0aGlzLnJlbG9hZE9ycGhhbktleXMoKTsKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdGhpcy5wcm9wcy5hZGROb3RpZmljYXRpb24oCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAic3VjY2VzcyIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBfKCJTdWNjZXNzZnVsbHkgYWRkZWQgY2VydGlmaWNhdGUiKQotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICApOwotKyAgICAgICAgICAgICAgICAgICAgICAgIH0pCi0rICAgICAgICAgICAg ICAgICAgICAgICAgLmZhaWwoZXJyID0+IHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGV0IG1zZyA9IF8oIlVua25vd24gZXJyb3IiKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdHJ5IHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVyck1zZyA9 IGJ1ZmZlciA/IEpTT04ucGFyc2UoYnVmZmVyKSA6IEpTT04ucGFyc2UoZXJyKTsKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9IGVyck1zZy5kZXNjIHx8IGVyck1zZy5tZXNz YWdlIHx8IGJ1ZmZlciB8fCBlcnI7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiAoJ2luZm8nIGluIGVyck1zZykgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG1zZyA9IGVyck1zZy5kZXNjICsgIiAtICIgKyBlcnJNc2cuaW5mbzsKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBj YXRjaCAoZSkgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgcGFyc2lu ZyBmYWlscywgdXNlIGJ1ZmZlciBvciBlcnJvciBkaXJlY3RseQotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbXNnID0gYnVmZmVyIHx8IGVyciB8fCBfKCJVbmtub3duIGVycm9yIik7 Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdGhpcy5jbG9zZUFkZENBTW9kYWwoKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdGhpcy5jbG9zZUFkZE1vZGFsKCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRo aXMuc2V0U3RhdGUoewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kYWxTcGlu bmluZzogZmFsc2UsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nOiBm YWxzZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRoaXMucHJvcHMuYWRkTm90aWZpY2F0aW9uKAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgImVycm9yIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvY2twaXQuZm9ybWF0KF8oIkVycm9yIGFkZGluZyBjZXJ0aWZpY2F0ZSAtICQwIiksIG1z ZykKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKLSsgICAgICAgICAgICAgICAgICAg ICAgICB9KQotKyAgICAgICAgICAgICAgICAgICAgICAgIC5zdHJlYW0oZGF0YSA9PiB7Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlciArPSBkYXRhOwotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBsaW5lcyA9IGJ1ZmZlci5zcGxpdCgiXG4iKTsKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFzdF9saW5lID0gbGluZXNbbGluZXMubGVuZ3Ro IC0gMV0udG9Mb3dlckNhc2UoKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxh c3RfbGluZS5pbmNsdWRlcygicGFzc3dvcmQiKSB8fCBsYXN0X2xpbmUuaW5jbHVkZXMoInBpbiIp KSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jLmlucHV0KHRoaXMuc3Rh dGUucGtjczEyUGluVGV4dCArICJcbiIsIHRydWUpOwotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgdGhpcy5yZWxvYWRPcnBoYW5LZXlzKCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg dGhpcy5wcm9wcy5hZGROb3RpZmljYXRpb24oCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICJzdWNjZXNzIiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiU3VjY2Vzc2Z1bGx5 IGFkZGVkIGNlcnRpZmljYXRlIikKLS0gICAgICAgICAgICAgICAgICAgICAgICApOwotLSAgICAg ICAgICAgICAgICAgICAgfSkKLS0gICAgICAgICAgICAgICAgICAgIC5mYWlsKGVyciA9PiB7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyTXNnID0gSlNPTi5wYXJzZShlcnIpOwot LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtc2cgPSBlcnJNc2cuZGVzYzsKLS0gICAgICAg ICAgICAgICAgICAgICAgICBpZiAoJ2luZm8nIGluIGVyck1zZykgewotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBtc2cgPSBlcnJNc2cuZGVzYyArICIgLSAiICsgZXJyTXNnLmluZm87Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMu Y2xvc2VBZGRDQU1vZGFsKCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZUFk ZE1vZGFsKCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGFsU3Bpbm5pbmc6IGZhbHNlLAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsb2FkaW5nOiBmYWxzZSwKLSsgICAgICAgICAgICB9IGVsc2Ug ewotKyAgICAgICAgICAgICAgICBjb2NrcGl0Ci0rICAgICAgICAgICAgICAgICAgICAgICAgLnNw YXduKGNtZCwgeyBzdXBlcnVzZXI6IHRydWUsIGVycjogIm1lc3NhZ2UiIH0pCi0rICAgICAgICAg ICAgICAgICAgICAgICAgLmRvbmUoKCkgPT4gewotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0aGlzLnJlbG9hZENBQ2VydHMoKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhp cy5jbG9zZUFkZENBTW9kYWwoKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5j bG9zZUFkZE1vZGFsKCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3Rh dGUoewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0FkZE1vZGFsOiBmYWxz ZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnRGaWxlOiAnJywKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnROYW1lOiAnJywKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG1vZGFsU3Bpbm5pbmc6IGZhbHNlCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0pOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbG9h ZE9ycGhhbktleXMoKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5h ZGROb3RpZmljYXRpb24oCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VjY2Vz cyIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJTdWNjZXNzZnVsbHkgYWRk ZWQgY2VydGlmaWNhdGUiKQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwotKyAgICAg ICAgICAgICAgICAgICAgICAgIH0pCi0rICAgICAgICAgICAgICAgICAgICAgICAgLmZhaWwoZXJy ID0+IHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyTXNnID0gSlNPTi5w YXJzZShlcnIpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXNnID0gZXJyTXNn LmRlc2M7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgnaW5mbycgaW4gZXJyTXNn KSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSBlcnJNc2cuZGVzYyAr ICIgLSAiICsgZXJyTXNnLmluZm87Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZUFkZENBTW9kYWwoKTsKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZUFkZE1vZGFsKCk7Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoewotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbW9kYWxTcGlubmluZzogZmFsc2UsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsb2FkaW5nOiBmYWxzZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg fSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMuYWRkTm90aWZpY2F0 aW9uKAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImVycm9yIiwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvY2twaXQuZm9ybWF0KF8oIkVycm9yIGFkZGluZyBj ZXJ0aWZpY2F0ZSAtICQwIiksIG1zZykKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsK LSAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB0 aGlzLnByb3BzLmFkZE5vdGlmaWNhdGlvbigKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ImVycm9yIiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ja3BpdC5mb3JtYXQoXygi RXJyb3IgYWRkaW5nIGNlcnRpZmljYXRlIC0gJDAiKSwgbXNnKQotLSAgICAgICAgICAgICAgICAg ICAgICAgICk7Ci0tICAgICAgICAgICAgICAgICAgICB9KTsKLSsgICAgICAgICAgICB9Ci0gICAg ICAgICB9Ci0gICAgIH0KLSAKLUBAIC0xMDg4LDcgKzEyOTAsOCBAQCBleHBvcnQgY2xhc3MgQ2Vy dGlmaWNhdGVNYW5hZ2VtZW50IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAg ICAgICAgICAgICAgICBTZXJ2ZXJDZXJ0czogY2VydHMsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgbG9hZGluZzogZmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVLZXk6IGtl eSwKLS0gICAgICAgICAgICAgICAgICAgICAgICBzaG93Q29uZmlybUNBQ2hhbmdlOiBmYWxzZQot KyAgICAgICAgICAgICAgICAgICAgICAgIHNob3dDb25maXJtQ0FDaGFuZ2U6IGZhbHNlLAotKyAg ICAgICAgICAgICAgICAgICAgICAgIGNlcnROaWNrbmFtZXM6IGNlcnROYW1lcywKLSAgICAgICAg ICAgICAgICAgICAgIH0sIHRoaXMuZ2V0Q2VydEZpbGVzKTsKLSAgICAgICAgICAgICAgICAgfSkK LSAgICAgICAgICAgICAgICAgLmZhaWwoZXJyID0+IHsKLUBAIC0xMTgwLDkgKzEzODMsMTQgQEAg ZXhwb3J0IGNsYXNzIENlcnRpZmljYXRlTWFuYWdlbWVudCBleHRlbmRzIFJlYWN0LkNvbXBvbmVu dCB7Ci0gICAgICAgICAgICAgICAgIC5zcGF3bihjbWQsIHsgc3VwZXJ1c2VyOiB0cnVlLCBlcnI6 ICJtZXNzYWdlIiB9KQotICAgICAgICAgICAgICAgICAuZG9uZShjb250ZW50ID0+IHsKLSAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IGNlcnRzID0gSlNPTi5wYXJzZShjb250ZW50KTsKLSsgICAg ICAgICAgICAgICAgICAgIGNvbnN0IGNlcnROYW1lcyA9IFtdOwotKyAgICAgICAgICAgICAgICAg ICAgZm9yIChjb25zdCBjZXJ0IG9mIGNlcnRzKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAg Y2VydE5hbWVzLnB1c2goY2VydC5hdHRycy5uaWNrbmFtZSk7Ci0rICAgICAgICAgICAgICAgICAg ICB9Ci0gICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsKLSAgICAgICAgICAgICAg ICAgICAgICAgICBDQUNlcnRzOiBjZXJ0cywKLS0gICAgICAgICAgICAgICAgICAgICAgICBsb2Fk aW5nOiBmYWxzZQotKyAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc6IGZhbHNlLAotKyAg ICAgICAgICAgICAgICAgICAgICAgIENBQ2VydE5pY2tuYW1lczogY2VydE5hbWVzLAotICAgICAg ICAgICAgICAgICAgICAgfSwgdGhpcy5yZWxvYWRDZXJ0cyk7Ci0gICAgICAgICAgICAgICAgIH0p Ci0gICAgICAgICAgICAgICAgIC5mYWlsKGVyciA9PiB7Ci1AQCAtMTMxMSw2ICsxNTE5LDcgQEAg ZXhwb3J0IGNsYXNzIENlcnRpZmljYXRlTWFuYWdlbWVudCBleHRlbmRzIFJlYWN0LkNvbXBvbmVu dCB7Ci0gICAgICAgICAgICAgICAgICAgICBzcGlubmluZz17dGhpcy5zdGF0ZS5tb2RhbFNwaW5u aW5nfQotICAgICAgICAgICAgICAgICAvPgotICAgICAgICAgICAgICAgICA8U2VjdXJpdHlBZGRD ZXJ0TW9kYWwKLSsgICAgICAgICAgICAgICAgICAgIGtleT17ImFkZENlcnQtIiArIHRoaXMuc3Rh dGUuc2hvd0FkZE1vZGFsfQotICAgICAgICAgICAgICAgICAgICAgc2hvd01vZGFsPXt0aGlzLnN0 YXRlLnNob3dBZGRNb2RhbH0KLSAgICAgICAgICAgICAgICAgICAgIGNsb3NlSGFuZGxlcj17dGhp cy5jbG9zZUFkZE1vZGFsfQotICAgICAgICAgICAgICAgICAgICAgaGFuZGxlQ2hhbmdlPXt0aGlz Lm9uQ2hhbmdlfQotQEAgLTEzMTksNiArMTUyOCw4IEBAIGV4cG9ydCBjbGFzcyBDZXJ0aWZpY2F0 ZU1hbmFnZW1lbnQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAgICAgICAgICAg ICAgY2VydEZpbGU9e3RoaXMuc3RhdGUuY2VydEZpbGV9Ci0gICAgICAgICAgICAgICAgICAgICBj ZXJ0TmFtZT17dGhpcy5zdGF0ZS5jZXJ0TmFtZX0KLSAgICAgICAgICAgICAgICAgICAgIGNlcnRO YW1lcz17dGhpcy5zdGF0ZS5hdmFpbENlcnROYW1lc30KLSsgICAgICAgICAgICAgICAgICAgIGNl cnROaWNrbmFtZXM9e3RoaXMuc3RhdGUuY2VydE5pY2tuYW1lc30KLSsgICAgICAgICAgICAgICAg ICAgIENBQ2VydE5pY2tuYW1lcz17dGhpcy5zdGF0ZS5DQUNlcnROaWNrbmFtZXN9Ci0gICAgICAg ICAgICAgICAgICAgICBzZWxlY3RDZXJ0TmFtZT17dGhpcy5zdGF0ZS5zZWxlY3RDZXJ0TmFtZX0K LSAgICAgICAgICAgICAgICAgICAgIGlzU2VsZWN0Q2VydE9wZW49e3RoaXMuc3RhdGUuaXNTZWxl Y3RDZXJ0T3Blbn0KLSAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUNlcnRTZWxlY3Q9e3RoaXMu b25DZXJ0U2VsZWN0fQotQEAgLTEzMzYsMTEgKzE1NDcsMTggQEAgZXhwb3J0IGNsYXNzIENlcnRp ZmljYXRlTWFuYWdlbWVudCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICAgICAg ICAgICAgICBoYW5kbGVGaWxlUmVhZFN0YXJ0ZWQ9e3RoaXMub25GaWxlUmVhZFN0YXJ0ZWR9Ci0g ICAgICAgICAgICAgICAgICAgICBoYW5kbGVGaWxlUmVhZEZpbmlzaGVkPXt0aGlzLm9uRmlsZVJl YWRGaW5pc2hlZH0KLSAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUNsZWFyPXt0aGlzLm9uQ2xl YXJ9Ci0tICAgICAgICAgICAgICAgICAgICBoYW5kbGVGaWxlUmVqZWN0ZWQ9e3RoaXMuc3RhdGUu dXBsb2FkSXNSZWplY3RlZH0KLSsgICAgICAgICAgICAgICAgICAgIGhhbmRsZUZpbGVSZWplY3Rl ZD17dGhpcy5oYW5kbGVGaWxlUmVqZWN0ZWR9Ci0rICAgICAgICAgICAgICAgICAgICBwa2NzMTJQ aW5NZXRob2Q9e3RoaXMuc3RhdGUucGtjczEyUGluTWV0aG9kfQotKyAgICAgICAgICAgICAgICAg ICAgcGtjczEyUGluRmlsZT17dGhpcy5zdGF0ZS5wa2NzMTJQaW5GaWxlfQotKyAgICAgICAgICAg ICAgICAgICAgcGtjczEyUGluVGV4dD17dGhpcy5zdGF0ZS5wa2NzMTJQaW5UZXh0fQotKyAgICAg ICAgICAgICAgICAgICAgZm9yY2VDZXJ0QWRkPXt0aGlzLnN0YXRlLmZvcmNlQ2VydEFkZH0KLSsg ICAgICAgICAgICAgICAgICAgIGhhbmRsZVBrY3MxMlBpbk1ldGhvZENoYW5nZT17dGhpcy5vblBr Y3MxMlBpbk1ldGhvZENoYW5nZX0KLSsgICAgICAgICAgICAgICAgICAgIGhhbmRsZVBrY3MxMlBp bkZpbGVDaGFuZ2U9e3RoaXMub25Qa2NzMTJQaW5GaWxlQ2hhbmdlfQotKyAgICAgICAgICAgICAg ICAgICAgaGFuZGxlUGtjczEyUGluVGV4dENoYW5nZT17dGhpcy5vblBrY3MxMlBpblRleHRDaGFu Z2V9Ci0rICAgICAgICAgICAgICAgICAgICBoYW5kbGVGb3JjZUNlcnRBZGRDaGFuZ2U9e3RoaXMu b25Gb3JjZUNlcnRBZGRDaGFuZ2V9Ci0gICAgICAgICAgICAgICAgIC8+Ci0tICAgICAgICAgICAg ICAgIDxTZWN1cml0eUFkZENlcnRNb2RhbAotKyAgICAgICAgICAgICAgICA8U2VjdXJpdHlBZGRD QUNlcnRNb2RhbAotICAgICAgICAgICAgICAgICAgICAgc2hvd01vZGFsPXt0aGlzLnN0YXRlLnNo b3dBZGRDQU1vZGFsfQotLSAgICAgICAgICAgICAgICAgICAgaXNDQUNlcnQKLSAgICAgICAgICAg ICAgICAgICAgIGNsb3NlSGFuZGxlcj17dGhpcy5jbG9zZUFkZENBTW9kYWx9Ci0gICAgICAgICAg ICAgICAgICAgICBoYW5kbGVDaGFuZ2U9e3RoaXMub25DaGFuZ2V9Ci0gICAgICAgICAgICAgICAg ICAgICBzYXZlSGFuZGxlcj17dGhpcy5hZGRDZXJ0fQotQEAgLTEzNDgsNiArMTU2Niw4IEBAIGV4 cG9ydCBjbGFzcyBDZXJ0aWZpY2F0ZU1hbmFnZW1lbnQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQg ewotICAgICAgICAgICAgICAgICAgICAgY2VydEZpbGU9e3RoaXMuc3RhdGUuY2VydEZpbGV9Ci0g ICAgICAgICAgICAgICAgICAgICBjZXJ0TmFtZT17dGhpcy5zdGF0ZS5jZXJ0TmFtZX0KLSAgICAg ICAgICAgICAgICAgICAgIGNlcnROYW1lcz17dGhpcy5zdGF0ZS5hdmFpbENlcnROYW1lc30KLSsg ICAgICAgICAgICAgICAgICAgIGNlcnROaWNrbmFtZXM9e3RoaXMuc3RhdGUuY2VydE5pY2tuYW1l c30KLSsgICAgICAgICAgICAgICAgICAgIENBQ2VydE5pY2tuYW1lcz17dGhpcy5zdGF0ZS5DQUNl cnROaWNrbmFtZXN9Ci0gICAgICAgICAgICAgICAgICAgICBzZWxlY3RDZXJ0TmFtZT17dGhpcy5z dGF0ZS5zZWxlY3RDZXJ0TmFtZX0KLSAgICAgICAgICAgICAgICAgICAgIGlzU2VsZWN0Q2VydE9w ZW49e3RoaXMuc3RhdGUuaXNTZWxlY3RDZXJ0T3Blbn0KLSAgICAgICAgICAgICAgICAgICAgIGhh bmRsZUNlcnRTZWxlY3Q9e3RoaXMub25DZXJ0U2VsZWN0fQotQEAgLTEzNjUsNyArMTU4NSw3IEBA IGV4cG9ydCBjbGFzcyBDZXJ0aWZpY2F0ZU1hbmFnZW1lbnQgZXh0ZW5kcyBSZWFjdC5Db21wb25l bnQgewotICAgICAgICAgICAgICAgICAgICAgaGFuZGxlRmlsZVJlYWRTdGFydGVkPXt0aGlzLm9u RmlsZVJlYWRTdGFydGVkfQotICAgICAgICAgICAgICAgICAgICAgaGFuZGxlRmlsZVJlYWRGaW5p c2hlZD17dGhpcy5vbkZpbGVSZWFkRmluaXNoZWR9Ci0gICAgICAgICAgICAgICAgICAgICBoYW5k bGVDbGVhcj17dGhpcy5vbkNsZWFyfQotLSAgICAgICAgICAgICAgICAgICAgaGFuZGxlRmlsZVJl amVjdGVkPXt0aGlzLnN0YXRlLnVwbG9hZElzUmVqZWN0ZWR9Ci0rICAgICAgICAgICAgICAgICAg ICBoYW5kbGVGaWxlUmVqZWN0ZWQ9e3RoaXMuaGFuZGxlRmlsZVJlamVjdGVkfQotICAgICAgICAg ICAgICAgICAvPgotICAgICAgICAgICAgICAgICA8U2VjdXJpdHlBZGRDU1JNb2RhbAotICAgICAg ICAgICAgICAgICAgICAgc2hvd01vZGFsPXt0aGlzLnN0YXRlLnNob3dBZGRDU1JNb2RhbH0KLWRp ZmYgLS1naXQgYS9zcmMvY29ja3BpdC8zODktY29uc29sZS9zcmMvbGliL3NlY3VyaXR5L3NlY3Vy aXR5TW9kYWxzLmpzeCBiL3NyYy9jb2NrcGl0LzM4OS1jb25zb2xlL3NyYy9saWIvc2VjdXJpdHkv c2VjdXJpdHlNb2RhbHMuanN4Ci1pbmRleCBhNDJhYTUwZDYuLjRkNjYzMWZkMiAxMDA2NDQKLS0t LSBhL3NyYy9jb2NrcGl0LzM4OS1jb25zb2xlL3NyYy9saWIvc2VjdXJpdHkvc2VjdXJpdHlNb2Rh bHMuanN4Ci0rKysgYi9zcmMvY29ja3BpdC8zODktY29uc29sZS9zcmMvbGliL3NlY3VyaXR5L3Nl Y3VyaXR5TW9kYWxzLmpzeAotQEAgLTYsNiArNiw3IEBAIGltcG9ydCB7Ci0gCUNsaXBib2FyZENv cHksCi0gCUNsaXBib2FyZENvcHlWYXJpYW50LAotIAlEaXZpZGVyLAotKwlFeHBhbmRhYmxlU2Vj dGlvbiwKLSAJRmlsZVVwbG9hZCwKLSAJRm9ybSwKLSAJRm9ybVNlbGVjdCwKLUBAIC0yMiwxMiAr MjMsMTMgQEAgaW1wb3J0IHsKLSAJVGV4dFZhcmlhbnRzLAotIAlUZXh0SW5wdXQsCi0gCVRvb2x0 aXAsCi0rCVRvb2x0aXBQb3NpdGlvbiwKLSAJVmFsaWRhdGVkT3B0aW9ucwotIH0gZnJvbSAnQHBh dHRlcm5mbHkvcmVhY3QtY29yZSc7Ci0gaW1wb3J0IFR5cGVhaGVhZFNlbGVjdCBmcm9tICIuLi8u Li9kc0Jhc2ljQ29tcG9uZW50cy5qc3giOwotIGltcG9ydCB7IE91dGxpbmVkUXVlc3Rpb25DaXJj bGVJY29uIH0gZnJvbSAnQHBhdHRlcm5mbHkvcmVhY3QtaWNvbnMvZGlzdC9qcy9pY29ucy9vdXRs aW5lZC1xdWVzdGlvbi1jaXJjbGUtaWNvbic7Ci0gaW1wb3J0IFByb3BUeXBlcyBmcm9tICJwcm9w LXR5cGVzIjsKLS1pbXBvcnQgeyBiYWRfZmlsZV9uYW1lLCB2YWxpZEhvc3RuYW1lIH0gZnJvbSAi Li4vdG9vbHMuanN4IjsKLStpbXBvcnQgeyBiYWRfZmlsZV9uYW1lLCB2YWxpZEhvc3RuYW1lLCBm aWxlX2lzX3BhdGggfSBmcm9tICIuLi90b29scy5qc3giOwotIAotIGNvbnN0IF8gPSBjb2NrcGl0 LmdldHRleHQ7Ci0gCi1AQCAtMTI0LDYgKzEyNiwyMCBAQCBleHBvcnQgY2xhc3MgRXhwb3J0Q2Vy dE1vZGFsIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSB9Ci0gCi0gZXhwb3J0IGNsYXNzIFNl Y3VyaXR5QWRkQ2VydE1vZGFsIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSsgICAgY29uc3Ry dWN0b3IocHJvcHMpIHsKLSsgICAgICAgIHN1cGVyKHByb3BzKTsKLSsgICAgICAgIHRoaXMuc3Rh dGUgPSB7Ci0rICAgICAgICAgICAgaXNQYXNzd29yZFNlY3Rpb25FeHBhbmRlZDogZmFsc2UKLSsg ICAgICAgIH07Ci0rICAgICAgICB0aGlzLmhhbmRsZVBhc3N3b3JkU2VjdGlvblRvZ2dsZSA9IHRo aXMuaGFuZGxlUGFzc3dvcmRTZWN0aW9uVG9nZ2xlLmJpbmQodGhpcyk7Ci0rICAgIH0KLSsKLSsg ICAgaGFuZGxlUGFzc3dvcmRTZWN0aW9uVG9nZ2xlKGV2ZW50LCBpc0V4cGFuZGVkKSB7Ci0rICAg ICAgICB0aGlzLnNldFN0YXRlKHsKLSsgICAgICAgICAgICBpc1Bhc3N3b3JkU2VjdGlvbkV4cGFu ZGVkOiBpc0V4cGFuZGVkCi0rICAgICAgICB9KTsKLSsgICAgfQotKwotICAgICByZW5kZXIoKSB7 Ci0gICAgICAgICBjb25zdCB7Ci0gICAgICAgICAgICAgc2hvd01vZGFsLAotQEAgLTEzOSw2ICsx NTUsOCBAQCBleHBvcnQgY2xhc3MgU2VjdXJpdHlBZGRDZXJ0TW9kYWwgZXh0ZW5kcyBSZWFjdC5D b21wb25lbnQgewotICAgICAgICAgICAgIGhhbmRsZVJhZGlvQ2hhbmdlLAotICAgICAgICAgICAg IGJhZENlcnRUZXh0LAotICAgICAgICAgICAgIGNlcnROYW1lcywKLSsgICAgICAgICAgICBjZXJ0 Tmlja25hbWVzLAotKyAgICAgICAgICAgIENBQ2VydE5pY2tuYW1lcywKLSAgICAgICAgICAgICAv LyBTZWxlY3Qgc2VydmVyIGNlcnQKLSAgICAgICAgICAgICBoYW5kbGVDZXJ0U2VsZWN0LAotICAg ICAgICAgICAgIHNlbGVjdENlcnROYW1lLAotQEAgLTE1Myw3ICsxNzEsMTUgQEAgZXhwb3J0IGNs YXNzIFNlY3VyaXR5QWRkQ2VydE1vZGFsIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAg ICAgICAgICBoYW5kbGVGaWxlUmVhZEZpbmlzaGVkLAotICAgICAgICAgICAgIGhhbmRsZUNsZWFy LAotICAgICAgICAgICAgIGhhbmRsZUZpbGVSZWplY3RlZCwKLS0gICAgICAgICAgICBpc0NBQ2Vy dCwKLSsgICAgICAgICAgICAvLyBQS0NTIzEyIFBhc3N3b3JkIG9wdGlvbnMKLSsgICAgICAgICAg ICBwa2NzMTJQaW5NZXRob2QsCi0rICAgICAgICAgICAgcGtjczEyUGluRmlsZSwKLSsgICAgICAg ICAgICBwa2NzMTJQaW5UZXh0LAotKyAgICAgICAgICAgIGZvcmNlQ2VydEFkZCwKLSsgICAgICAg ICAgICBoYW5kbGVQa2NzMTJQaW5NZXRob2RDaGFuZ2UsCi0rICAgICAgICAgICAgaGFuZGxlUGtj czEyUGluRmlsZUNoYW5nZSwKLSsgICAgICAgICAgICBoYW5kbGVQa2NzMTJQaW5UZXh0Q2hhbmdl LAotKyAgICAgICAgICAgIGhhbmRsZUZvcmNlQ2VydEFkZENoYW5nZSwKLSAgICAgICAgIH0gPSB0 aGlzLnByb3BzOwotIAotICAgICAgICAgbGV0IHNhdmVCdG5OYW1lID0gXygiQWRkIENlcnRpZmlj YXRlIik7Ci1AQCAtMTc5LDExICsyMDUsMzU4IEBAIGV4cG9ydCBjbGFzcyBTZWN1cml0eUFkZENl cnRNb2RhbCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gCi0gICAgICAgICBsZXQgdGl0bGUg PSBfKCJBZGQgU2VydmVyIENlcnRpZmljYXRlIik7Ci0gICAgICAgICBsZXQgZGVzYyA9IF8oIkFk ZCBhIFNlcnZlciBDZXJ0aWZpY2F0ZSB0byB0aGUgc2VjdXJpdHkgZGF0YWJhc2UuIik7Ci0tICAg ICAgICBpZiAoaXNDQUNlcnQpIHsKLS0gICAgICAgICAgICB0aXRsZSA9IF8oIkFkZCBDZXJ0aWZp Y2F0ZSBBdXRob3JpdHkiKTsKLS0gICAgICAgICAgICBkZXNjID0gXygiQWRkIGEgQ0EgQ2VydGlm aWNhdGUgdG8gdGhlIHNlY3VyaXR5IGRhdGFiYXNlLiIpOwotKwotKyAgICAgICAgbGV0IHNlbGVj dFZhbGlkYXRlZCA9IFZhbGlkYXRlZE9wdGlvbnMuZGVmYXVsdDsKLSsgICAgICAgIGlmIChjZXJ0 UmFkaW9TZWxlY3QgJiYgY2VydE5hbWVzLmxlbmd0aCA9PT0gMCkgewotKyAgICAgICAgICAgIHNl bGVjdFZhbGlkYXRlZCA9IFZhbGlkYXRlZE9wdGlvbnMuZXJyb3I7Ci0rICAgICAgICB9Ci0rCi0r ICAgICAgICByZXR1cm4gKAotKyAgICAgICAgICAgIDxNb2RhbAotKyAgICAgICAgICAgICAgICB2 YXJpYW50PXtNb2RhbFZhcmlhbnQubWVkaXVtfQotKyAgICAgICAgICAgICAgICB0aXRsZT17dGl0 bGV9Ci0rICAgICAgICAgICAgICAgIGFyaWEtbGFiZWxsZWRieT0iZHMtbW9kYWwiCi0rICAgICAg ICAgICAgICAgIGlzT3Blbj17c2hvd01vZGFsfQotKyAgICAgICAgICAgICAgICBvbkNsb3NlPXtj bG9zZUhhbmRsZXJ9Ci0rICAgICAgICAgICAgICAgIGFjdGlvbnM9e1sKLSsgICAgICAgICAgICAg ICAgICAgIDxCdXR0b24KLSsgICAgICAgICAgICAgICAgICAgICAgICBrZXk9ImNvbmZpcm0iCi0r ICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD0icHJpbWFyeSIKLSsgICAgICAgICAgICAg ICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNhdmVIYW5kbGVyKGZhbHNlKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICB9fQotKyAgICAg ICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZz17c3Bpbm5pbmd9Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgc3Bpbm5lckFyaWFWYWx1ZVRleHQ9e3NwaW5uaW5nID8gXygiU2F2aW5nIikgOiB1 bmRlZmluZWR9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgey4uLmV4dHJhUHJpbWFyeVByb3Bz fQotKyAgICAgICAgICAgICAgICAgICAgICAgIGlzRGlzYWJsZWQ9ewotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjZXJ0TmFtZSA9PT0gIiIgfHwgKGNlcnRSYWRpb0ZpbGUgJiYgY2VydEZp bGUgPT09ICIiKSB8fAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2VydFJhZGlvVXBs b2FkICYmICh1cGxvYWRWYWx1ZSA9PT0gIiIgfHwgYmFkQ2VydFRleHQpKSB8fAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoY2VydFJhZGlvU2VsZWN0ICYmIGNlcnROYW1lcy5sZW5ndGgg PT09IDApIHx8Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwa2NzMTJQaW5NZXRob2Qg PT09ICJmaWxlIiAmJiAocGtjczEyUGluRmlsZSA9PT0gIiIgfHwgIWZpbGVfaXNfcGF0aChwa2Nz MTJQaW5GaWxlKSkpIHx8Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwa2NzMTJQaW5N ZXRob2QgPT09ICJzdGRpbiIgJiYgcGtjczEyUGluVGV4dCA9PT0gIiIpIHx8Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNlcnROaWNrbmFtZXMuaW5jbHVkZXMoY2VydE5hbWUpIHx8Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgIENBQ2VydE5pY2tuYW1lcy5pbmNsdWRlcyhjZXJ0 TmFtZSkKLSsgICAgICAgICAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICAgICAgICA+ Ci0rICAgICAgICAgICAgICAgICAgICAgICAge3NhdmVCdG5OYW1lfQotKyAgICAgICAgICAgICAg ICAgICAgPC9CdXR0b24+LAotKyAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbiBrZXk9ImNhbmNl bCIgdmFyaWFudD0ibGluayIgb25DbGljaz17Y2xvc2VIYW5kbGVyfT4KLSsgICAgICAgICAgICAg ICAgICAgICAgICB7XygiQ2FuY2VsIil9Ci0rICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj4K LSsgICAgICAgICAgICAgICAgXX0KLSsgICAgICAgICAgICA+Ci0rICAgICAgICAgICAgICAgIDxG b3JtIGlzSG9yaXpvbnRhbCBhdXRvQ29tcGxldGU9Im9mZiI+Ci0rICAgICAgICAgICAgICAgICAg ICA8VGV4dENvbnRlbnQ+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgPFRleHQgY29tcG9uZW50 PXtUZXh0VmFyaWFudHMuaDR9PgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZGVzY30K LSsgICAgICAgICAgICAgICAgICAgICAgICA8L1RleHQ+Ci0rICAgICAgICAgICAgICAgICAgICA8 L1RleHRDb250ZW50PgotKyAgICAgICAgICAgICAgICAgICAgPEdyaWQKLSsgICAgICAgICAgICAg ICAgICAgICAgICBjbGFzc05hbWU9ImRzLW1hcmdpbi10b3Atc20iCi0rICAgICAgICAgICAgICAg ICAgICAgICAgdGl0bGU9e18oIkVudGVyIG5hbWUvbmlja25hbWUgb2YgdGhlIGNlcnRpZmljYXRl Iil9Ci0rICAgICAgICAgICAgICAgICAgICA+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgPEdy aWRJdGVtIGNsYXNzTmFtZT0iZHMtbGFiZWwiIHNwYW49ezN9PgotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7XygiQ2VydGlmaWNhdGUgTmlja25hbWUiKX0KLSsgICAgICAgICAgICAgICAg ICAgICAgICA8L0dyaWRJdGVtPgotKyAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkSXRlbSBz cGFuPXs5fT4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRleHRJbnB1dAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlkPSJjZXJ0TmFtZSIKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9Imhvcml6b250YWwtZm9ybS1uYW1lLWhlbHBlciIKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImNlcnROYW1lIgotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlLCBzdHIpID0+IHsKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVDaGFuZ2UoZSk7Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9fQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdmFsaWRhdGVkPXsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0 TmFtZSA9PT0gIiIgfHwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0 Tmlja25hbWVzLmluY2x1ZGVzKGNlcnROYW1lKSB8fAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIENBQ2VydE5pY2tuYW1lcy5pbmNsdWRlcyhjZXJ0TmFtZSkgPyBWYWxpZGF0 ZWRPcHRpb25zLmVycm9yIDogVmFsaWRhdGVkT3B0aW9ucy5kZWZhdWx0fQotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7KGNlcnRO aWNrbmFtZXMuaW5jbHVkZXMoY2VydE5hbWUpIHx8IENBQ2VydE5pY2tuYW1lcy5pbmNsdWRlcyhj ZXJ0TmFtZSkpICYmICgKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIZWxwZXJU ZXh0PgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIZWxwZXJUZXh0SXRl bSB2YXJpYW50PSJlcnJvciI+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHtfKCJQbGVhc2UgdXNlIGEgdW5pcXVlIGNlcnRpZmljYXRlIG5pY2tuYW1lIil9Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9IZWxwZXJUZXh0SXRlbT4KLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSGVscGVyVGV4dD4KLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKX0KLSsgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWRJdGVtPgot KyAgICAgICAgICAgICAgICAgICAgPC9HcmlkPgotKyAgICAgICAgICAgICAgICAgICAgPEV4cGFu ZGFibGVTZWN0aW9uCi0rICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlVGV4dD17dGhpcy5z dGF0ZS5pc1Bhc3N3b3JkU2VjdGlvbkV4cGFuZGVkID8gXygiSGlkZSBQS0NTIzEyIFBhc3N3b3Jk IE9wdGlvbnMiKSA6IF8oIlNob3cgUEtDUyMxMiBQYXNzd29yZCBPcHRpb25zIil9Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgb25Ub2dnbGU9e3RoaXMuaGFuZGxlUGFzc3dvcmRTZWN0aW9uVG9n Z2xlfQotKyAgICAgICAgICAgICAgICAgICAgICAgIGlzRXhwYW5kZWQ9e3RoaXMuc3RhdGUuaXNQ YXNzd29yZFNlY3Rpb25FeHBhbmRlZH0KLSsgICAgICAgICAgICAgICAgICAgID4KLSsgICAgICAg ICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0iZHMtaW5kZW50LWxnIj4KLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgPFRleHRDb250ZW50IGNsYXNzTmFtZT0iZHMtbWFyZ2luLXRv cCI+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGV4dCBjb21wb25lbnQ9e1Rl eHRWYXJpYW50cy5wfT4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Xygi VGhlc2UgcGFzc3dvcmQgc2V0dGluZ3MgYXJlIG9ubHkgdXNlZCBmb3IgUEtDUyMxMiBwYXNzd29y ZCBwcm90ZWN0ZWQgY2VydGlmaWNhdGVzLiBUaGVzZSBzZXR0aW5ncyBhcmUgaWdub3JlZCBmb3Ig b3RoZXIgY2VydGlmaWNhdGUgdHlwZXMuIil9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA8L1RleHQ+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVGV4dENvbnRlbnQ+ Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGNsYXNzTmFtZT0iZHMtbWFyZ2lu LXRvcC1sZyI+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZEl0ZW0gc3Bh bj17MTJ9PgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSYWRpbwotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0ibm9QYXNzd29yZFJhZGlv IgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17XygiTm9u LVBLQ1MjMTIgQ2VydGlmaWNhdGUiKX0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbmFtZT0icGtjczEyUGluTWV0aG9kIgotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpc0NoZWNrZWQ9e3BrY3MxMlBpbk1ldGhvZCA9PT0gIm5vUGFzc3dv cmQifQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17 aGFuZGxlUGtjczEyUGluTWV0aG9kQ2hhbmdlfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdgot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9ImRzLW1h cmdpbi10b3AiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxl PXtfKCJQYXNzd29yZCB3aWxsIGJlIHJlYWQgZnJvbSBzdGRpbiB3aGVuIHByb21wdGVkIGJ5IHRo ZSBjb21tYW5kIil9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UmFkaW8KLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJwa2NzMTJQaW5SYWRpb1N0ZGlu IgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e18o IlBhc3N3b3JkIil9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBuYW1lPSJwa2NzMTJQaW5NZXRob2QiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpc0NoZWNrZWQ9e3BrY3MxMlBpbk1ldGhvZCA9PT0gInN0ZGluIn0KLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5k bGVQa2NzMTJQaW5NZXRob2RDaGFuZ2V9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9ImRz LW1hcmdpbi10b3AgZHMtcmFkaW8taW5kZW50Ij4KLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgPFRleHRJbnB1dAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdHlwZT0icGFzc3dvcmQiCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpZD0icGtjczEyUGluVGV4dFN0ZGluIgotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT0icGtjczEy LXBpbi1zdGRpbi1oZWxwZXIiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBuYW1lPSJwa2NzMTJQaW5UZXh0IgotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdmFsdWU9e3BrY3MxMlBpblRleHR9Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUsIHZhbHVlKSA9PiB7Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlUGtj czEyUGluVGV4dENoYW5nZSh2YWx1ZSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9fQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcGxhY2Vob2xkZXI9e18oIkVudGVyIHBhc3N3b3JkIHRvIHNlbmQgdmlhIHN0ZGluIil9 Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0ZWQ9 e3BrY3MxMlBpbk1ldGhvZCA9PT0gInN0ZGluIiAmJiBwa2NzMTJQaW5UZXh0ID09PSAiIiA/IFZh bGlkYXRlZE9wdGlvbnMuZXJyb3IgOiBWYWxpZGF0ZWRPcHRpb25zLmRlZmF1bHR9Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0Rpc2FibGVkPXtwa2NzMTJQ aW5NZXRob2QgIT09ICJzdGRpbiJ9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdgotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9ImRzLW1hcmdpbi10b3AiCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPXtfKCJSZWFkIHBhc3N3 b3JkIGZyb20gYSBmaWxlIG9uIHRoZSBzZXJ2ZXIiKX0KLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDxSYWRpbwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9 InBrY3MxMlBpblJhZGlvRmlsZSIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNsYXNzTmFtZT0iZHMtbWFyZ2luLXRvcC1sZyIKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXtfKCJSZWFkIHBhc3N3b3JkIGZyb20g ZmlsZSIpfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFt ZT0icGtjczEyUGluTWV0aG9kIgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaXNDaGVja2VkPXtwa2NzMTJQaW5NZXRob2QgPT09ICJmaWxlIn0KLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVQa2Nz MTJQaW5NZXRob2RDaGFuZ2V9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9ImRzLW1hcmdp bi10b3AgZHMtcmFkaW8taW5kZW50Ij4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPFRleHRJbnB1dAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdHlwZT0idGV4dCIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlkPSJwa2NzMTJQaW5GaWxlIgotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT0icGtjczEyLXBpbi1maWxlLWhlbHBl ciIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9InBr Y3MxMlBpbkZpbGUiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB2YWx1ZT17cGtjczEyUGluRmlsZX0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSwgdmFsdWUpID0+IHsKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVQa2NzMTJQaW5GaWxlQ2hhbmdl KHZhbHVlKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19 Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRl cj17XygiRW50ZXIgZnVsbCBwYXRoIHRvIHBhc3N3b3JkIGZpbGUiKX0KLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRGlzYWJsZWQ9e3BrY3MxMlBpbk1ldGhv ZCAhPT0gImZpbGUifQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdmFsaWRhdGVkPXsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwa2NzMTJQaW5NZXRob2QgPT09ICJmaWxlIiAmJgotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwa2NzMTJQaW5GaWxlID09PSAiIiB8fCAh ZmlsZV9pc19wYXRoKHBrY3MxMlBpbkZpbGUpKQotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA/IFZhbGlkYXRlZE9wdGlvbnMuZXJyb3IKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBWYWxpZGF0 ZWRPcHRpb25zLmRlZmF1bHQKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4KLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3BrY3MxMlBpbk1ldGhvZCA9 PT0gImZpbGUiICYmIHBrY3MxMlBpbkZpbGUgIT09ICIiICYmICFmaWxlX2lzX3BhdGgocGtjczEy UGluRmlsZSkgJiYgKAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgPEhlbHBlclRleHQ+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPEhlbHBlclRleHRJdGVtIHZhcmlhbnQ9ImVycm9yIj4KLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge18oIlBsZWFzZSBlbnRlciBh IHZhbGlkIGZpbGUgcGF0aCAobXVzdCBzdGFydCB3aXRoICcvJyBhbmQgbm90IGVuZCB3aXRoICcv JykiKX0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 L0hlbHBlclRleHRJdGVtPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgPC9IZWxwZXJUZXh0PgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICApfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSJkcy1tYXJn aW4tdG9wLXh4bGciPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 VG9vbHRpcAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9z aXRpb249e1Rvb2x0aXBQb3NpdGlvbi5ib3R0b21TdGFydH0KLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ9ewotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtfKCJGb3JjZSBjZXJ0aWZpY2F0ZSBhZGRp dGlvbiB3aXRob3V0IHZhbGlkYXRpb24uIFRoaXMgYnlwYXNzZXMgY2VydGlmaWNhdGUgY2hhaW4g dmFsaWRhdGlvbiBjaGVja3MuIil9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgPC9kaXY+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4K LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDaGVja2JveAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJmb3Jj ZUNlcnRBZGQiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY2xhc3NOYW1lPSJkcy1tYXJnaW4tdG9wLWxnIgotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXtfKCJTa2lwIGNlcnRpZmljYXRlIHZlcmlm aWNhdGlvbiIpfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlzQ2hlY2tlZD17Zm9yY2VDZXJ0QWRkfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSwgY2hlY2tlZCkgPT4gewotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVGb3Jj ZUNlcnRBZGRDaGFuZ2UoY2hlY2tlZCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfX0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwv VG9vbHRpcD4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZEl0ZW0+Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDwvR3JpZD4KLSsgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4K LSsgICAgICAgICAgICAgICAgICAgIDwvRXhwYW5kYWJsZVNlY3Rpb24+Ci0rICAgICAgICAgICAg ICAgICAgICA8R3JpZD4KLSsgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZEl0ZW0gc3Bhbj17 MTJ9PgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHRpdGxlPXtfKCJVcGxvYWQg dGhlIGNvbnRlbnRzIG9mIGEgUEVNIGZpbGUgZnJvbSB0aGUgY2xpZW50J3Mgc3lzdGVtLiIpfT4K LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSYWRpbwotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlkPSJjZXJ0UmFkaW9VcGxvYWQiCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e2NlcnRUZXh0TGFiZWx9Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iY2VydENob2ljZSIKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlUmFkaW9DaGFuZ2V9Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNDaGVja2VkPXtjZXJ0UmFkaW9V cGxvYWR9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPgotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICA8L2Rpdj4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRp diBjbGFzc05hbWU9e2NlcnRSYWRpb1VwbG9hZCA/ICJkcy1tYXJnaW4tdG9wIGRzLXJhZGlvLWlu ZGVudCIgOiAiZHMtbWFyZ2luLXRvcCBkcy1yYWRpby1pbmRlbnQgZHMtZGlzYWJsZWQifT4KLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGaWxlVXBsb2FkCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InVwbG9hZFBFTUZpbGUiCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB2YWx1ZT17dXBsb2FkVmFsdWV9Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZmlsZW5hbWU9e3VwbG9hZEZpbGVOYW1lfQotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lUGxhY2Vob2xkZXI9e18oIkRyYWcgYW5k IGRyb3AgYSBmaWxlLCBvciB1cGxvYWQgb25lIil9Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgb25GaWxlSW5wdXRDaGFuZ2U9e2hhbmRsZUZpbGVJbnB1dENoYW5nZX0KLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkRhdGFDaGFuZ2U9e2hhbmRsZVRl eHRPckRhdGFDaGFuZ2V9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25U ZXh0Q2hhbmdlPXtoYW5kbGVUZXh0T3JEYXRhQ2hhbmdlfQotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG9uUmVhZFN0YXJ0ZWQ9e2hhbmRsZUZpbGVSZWFkU3RhcnRlZH0KLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblJlYWRGaW5pc2hlZD17aGFuZGxl RmlsZVJlYWRGaW5pc2hlZH0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv bkNsZWFyQ2xpY2s9e2hhbmRsZUNsZWFyfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlzTG9hZGluZz17dXBsb2FkSXNMb2FkaW5nfQotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRyb3B6b25lUHJvcHM9e3sKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYWNjZXB0OiAnLnBlbScsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG9uRHJvcFJlamVjdGVkOiBoYW5kbGVGaWxlUmVqZWN0ZWQKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fQotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHZhbGlkYXRlZD17Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVwbG9hZElzUmVqZWN0ZWQgfHwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGNlcnRSYWRpb1VwbG9hZCAmJiB1cGxvYWRWYWx1ZSA9PT0g IiIpIHx8Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjZXJ0UmFk aW9VcGxvYWQgJiYgYmFkQ2VydFRleHQpCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA/ICdlcnJvcicKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDogJ2RlZmF1bHQnCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyb3dzZUJ1dHRv blRleHQ9e18oIlVwbG9hZCBQRU0gRmlsZSIpfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLz4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDxkaXYgdGl0bGU9e18oIkNob29zZSBhIGNlcnRpZmljYXRlIGZy b20gdGhlIHNlcnZlcidzIGNlcnRpZmljYXRlIGRpcmVjdG9yeSIpfT4KLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDxSYWRpbwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlkPSJjZXJ0UmFkaW9TZWxlY3QiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY2xhc3NOYW1lPSJkcy1tYXJnaW4tdG9wLWxnIgotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxhYmVsPXtfKCJDaG9vc2UgQ2VydGlmaWNhdGUgRnJvbSBTZXJ2 ZXIiKX0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJjZXJ0Q2hv aWNlIgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzQ2hlY2tlZD17Y2Vy dFJhZGlvU2VsZWN0fQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hh bmdlPXtoYW5kbGVSYWRpb0NoYW5nZX0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2VydFJhZGlvU2VsZWN0ID8gImRzLW1hcmdp bi10b3AgZHMtcmFkaW8taW5kZW50IiA6ICJkcy1tYXJnaW4tdG9wIGRzLXJhZGlvLWluZGVudCBk cy1kaXNhYmxlZCJ9PgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZvcm1TZWxl Y3QKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17c2VsZWN0Q2Vy dE5hbWV9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InNlbGVjdENl cnROYW1lIgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXso ZSwgc3RyKSA9PiB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhh bmRsZUNlcnRTZWxlY3Qoc3RyKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9fQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9IkZv cm1TZWxlY3QgSW5wdXQiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xh c3NOYW1lPSJkcy1jZXJ0LXNlbGVjdCIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB2YWxpZGF0ZWQ9e3NlbGVjdFZhbGlkYXRlZH0KLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgID4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2VydE5h bWVzLmxlbmd0aCA9PT0gMCAmJgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA8Rm9ybVNlbGVjdE9wdGlvbgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAga2V5PSJub25lIgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdmFsdWU9IiIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxhYmVsPXtfKCJObyBjZXJ0aWZpY2F0ZXMgcHJlc2VudCIpfQotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNEaXNhYmxlZAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNQbGFjZWhvbGRlcgotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPn0KLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7Y2VydE5hbWVzLmxlbmd0aCA+IDAgJiYgY2VydE5hbWVzLm1h cCgob3B0aW9uLCBpbmRleCkgPT4gKAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA8Rm9ybVNlbGVjdE9wdGlvbgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAga2V5PXtpbmRleH0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHZhbHVlPXtvcHRpb259Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsYWJlbD17b3B0aW9ufQotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICkpfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Gb3JtU2VsZWN0Pgot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPGRpdiB0aXRsZT17XygiRW50ZXIgdGhlIGZ1bGwgcGF0aCBvbiB0aGUgc2VydmVy IHRvIGFuZCBpbmNsdWRpbmcgdGhlIGNlcnRpZmljYXRlIGZpbGUgbmFtZSIpfT4KLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDxSYWRpbwotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlkPSJjZXJ0UmFkaW9GaWxlIgotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNsYXNzTmFtZT0iZHMtbWFyZ2luLXRvcC1sZyIKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17XygiQ2VydGlmaWNhdGUgRmlsZSBMb2NhdGlv biIpfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImNlcnRDaG9p Y2UiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNDaGVja2VkPXtjZXJ0 UmFkaW9GaWxlfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdl PXtoYW5kbGVSYWRpb0NoYW5nZX0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+ Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2VydFJhZGlvRmlsZSA/ICJkcy1tYXJnaW4tdG9w IGRzLXJhZGlvLWluZGVudCIgOiAiZHMtbWFyZ2luLXRvcCBkcy1yYWRpby1pbmRlbnQgZHMtZGlz YWJsZWQifT4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUZXh0SW5wdXQKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJ0ZXh0IgotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJjZXJ0RmlsZSIKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PSJob3Jpem9udGFsLWZvcm0t bmFtZS1oZWxwZXIiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0i Y2VydEZpbGUiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9 eyhlLCB2YWx1ZSkgPT4gewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBoYW5kbGVDaGFuZ2UoZSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fX0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0ZWQ9e2NlcnRS YWRpb0ZpbGUgJiYgY2VydEZpbGUgPT09ICIiID8gVmFsaWRhdGVkT3B0aW9ucy5lcnJvciA6IFZh bGlkYXRlZE9wdGlvbnMuZGVmYXVsdH0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgotKyAgICAgICAgICAgICAg ICAgICAgICAgIDwvR3JpZEl0ZW0+Ci0rICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+Ci0rICAg ICAgICAgICAgICAgIDwvRm9ybT4KLSsgICAgICAgICAgICA8L01vZGFsPgotKyAgICAgICAgKTsK LSsgICAgfQotK30KLSsKLStleHBvcnQgY2xhc3MgU2VjdXJpdHlBZGRDQUNlcnRNb2RhbCBleHRl bmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0rICAgIHJlbmRlcigpIHsKLSsgICAgICAgIGNvbnN0IHsK LSsgICAgICAgICAgICBzaG93TW9kYWwsCi0rICAgICAgICAgICAgY2xvc2VIYW5kbGVyLAotKyAg ICAgICAgICAgIGhhbmRsZUNoYW5nZSwKLSsgICAgICAgICAgICBzYXZlSGFuZGxlciwKLSsgICAg ICAgICAgICBzcGlubmluZywKLSsgICAgICAgICAgICBjZXJ0TmFtZSwKLSsgICAgICAgICAgICBj ZXJ0RmlsZSwKLSsgICAgICAgICAgICBjZXJ0UmFkaW9GaWxlLAotKyAgICAgICAgICAgIGNlcnRS YWRpb1NlbGVjdCwKLSsgICAgICAgICAgICBjZXJ0UmFkaW9VcGxvYWQsCi0rICAgICAgICAgICAg aGFuZGxlUmFkaW9DaGFuZ2UsCi0rICAgICAgICAgICAgYmFkQ2VydFRleHQsCi0rICAgICAgICAg ICAgY2VydE5hbWVzLAotKyAgICAgICAgICAgIGNlcnROaWNrbmFtZXMsCi0rICAgICAgICAgICAg Q0FDZXJ0Tmlja25hbWVzLAotKyAgICAgICAgICAgIC8vIFNlbGVjdCBzZXJ2ZXIgY2VydAotKyAg ICAgICAgICAgIGhhbmRsZUNlcnRTZWxlY3QsCi0rICAgICAgICAgICAgc2VsZWN0Q2VydE5hbWUs Ci0rICAgICAgICAgICAgLy8gRmlsZSBVcGxvYWQKLSsgICAgICAgICAgICB1cGxvYWRWYWx1ZSwK LSsgICAgICAgICAgICB1cGxvYWRGaWxlTmFtZSwKLSsgICAgICAgICAgICB1cGxvYWRJc0xvYWRp bmcsCi0rICAgICAgICAgICAgdXBsb2FkSXNSZWplY3RlZCwKLSsgICAgICAgICAgICBoYW5kbGVG aWxlSW5wdXRDaGFuZ2UsCi0rICAgICAgICAgICAgaGFuZGxlVGV4dE9yRGF0YUNoYW5nZSwKLSsg ICAgICAgICAgICBoYW5kbGVGaWxlUmVhZFN0YXJ0ZWQsCi0rICAgICAgICAgICAgaGFuZGxlRmls ZVJlYWRGaW5pc2hlZCwKLSsgICAgICAgICAgICBoYW5kbGVDbGVhciwKLSsgICAgICAgICAgICBo YW5kbGVGaWxlUmVqZWN0ZWQsCi0rICAgICAgICB9ID0gdGhpcy5wcm9wczsKLSsKLSsgICAgICAg IGxldCBzYXZlQnRuTmFtZSA9IF8oIkFkZCBDZXJ0aWZpY2F0ZSIpOwotKyAgICAgICAgY29uc3Qg ZXh0cmFQcmltYXJ5UHJvcHMgPSB7fTsKLSsgICAgICAgIGlmIChzcGlubmluZykgewotKyAgICAg ICAgICAgIHNhdmVCdG5OYW1lID0gXygiQWRkaW5nIENlcnRpZmljYXRlIC4uLiIpOwotKyAgICAg ICAgICAgIGV4dHJhUHJpbWFyeVByb3BzLnNwaW5uZXJBcmlhVmFsdWVUZXh0ID0gXygiU2F2aW5n Iik7Ci0gICAgICAgICB9Ci0gCi0rICAgICAgICBjb25zdCBjZXJ0VGV4dExhYmVsID0gKAotKyAg ICAgICAgICAgIDxkaXY+Ci0rICAgICAgICAgICAgICAgIDxUb29sdGlwCi0rICAgICAgICAgICAg ICAgICAgICBjb250ZW50PXsKLSsgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PgotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7XygiUGFzdGUgdGhlIGJhc2U2NCBlbmNvZGVkIGNlcnRp ZmljYXRlIHRoYXQgc3RhcnRzIHdpdGggXCItLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS1cIiBh bmQgZW5kcyB3aXRoIFwiLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLVwiLiAgTWFrZSBzdXJlIHRo ZXJlIGFyZSBubyBzcGVjaWFsIGNhcnJpYWdlIHJldHVybiBjaGFyYWN0ZXJzIGFmdGVyIGVhY2gg bGluZS4iKX0KLSsgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KLSsgICAgICAgICAgICAg ICAgICAgIH0KLSsgICAgICAgICAgICAgICAgPgotKyAgICAgICAgICAgICAgICAgICAgPGRpdj57 XygiVXBsb2FkIFBFTSBGaWxlLCBvciBDZXJ0aWZpY2F0ZSBUZXh0Iil9IDxPdXRsaW5lZFF1ZXN0 aW9uQ2lyY2xlSWNvbiAvPjwvZGl2PgotKyAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+Ci0rICAg ICAgICAgICAgPC9kaXY+Ci0rICAgICAgICApOwotKwotKwotKyAgICAgICAgbGV0IHRpdGxlID0g XygiQWRkIENlcnRpZmljYXRlIEF1dGhvcml0eSIpOwotKyAgICAgICAgbGV0IGRlc2MgPSBfKCJB ZGQgYSBDQSBDZXJ0aWZpY2F0ZSB0byB0aGUgc2VjdXJpdHkgZGF0YWJhc2UuIik7Ci0gICAgICAg ICBsZXQgc2VsZWN0VmFsaWRhdGVkID0gVmFsaWRhdGVkT3B0aW9ucy5kZWZhdWx0OwotICAgICAg ICAgaWYgKGNlcnRSYWRpb1NlbGVjdCAmJiBjZXJ0TmFtZXMubGVuZ3RoID09PSAwKSB7Ci0gICAg ICAgICAgICAgc2VsZWN0VmFsaWRhdGVkID0gVmFsaWRhdGVkT3B0aW9ucy5lcnJvcjsKLUBAIC0y MDEsNyArNTc0LDcgQEAgZXhwb3J0IGNsYXNzIFNlY3VyaXR5QWRkQ2VydE1vZGFsIGV4dGVuZHMg UmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9ImNvbmZpcm0i Ci0gICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD0icHJpbWFyeSIKLSAgICAgICAgICAg ICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNhdmVIYW5kbGVyKGlzQ0FDZXJ0KTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2F2ZUhhbmRsZXIodHJ1ZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgfX0KLSAgICAgICAg ICAgICAgICAgICAgICAgICBpc0xvYWRpbmc9e3NwaW5uaW5nfQotICAgICAgICAgICAgICAgICAg ICAgICAgIHNwaW5uZXJBcmlhVmFsdWVUZXh0PXtzcGlubmluZyA/IF8oIlNhdmluZyIpIDogdW5k ZWZpbmVkfQotQEAgLTIwOSw3ICs1ODIsOSBAQCBleHBvcnQgY2xhc3MgU2VjdXJpdHlBZGRDZXJ0 TW9kYWwgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAgICAgICAgICAgICAgICAg IGlzRGlzYWJsZWQ9ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0TmFtZSA9PT0g IiIgfHwgKGNlcnRSYWRpb0ZpbGUgJiYgY2VydEZpbGUgPT09ICIiKSB8fAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoY2VydFJhZGlvVXBsb2FkICYmICh1cGxvYWRWYWx1ZSA9PT0gIiIg fHwgYmFkQ2VydFRleHQpKSB8fAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2VydFJh ZGlvU2VsZWN0ICYmIGNlcnROYW1lcy5sZW5ndGggPT09IDApCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChjZXJ0UmFkaW9TZWxlY3QgJiYgY2VydE5hbWVzLmxlbmd0aCA9PT0gMCkgfHwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydE5pY2tuYW1lcy5pbmNsdWRlcyhjZXJ0 TmFtZSkgfHwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0FDZXJ0Tmlja25hbWVzLmlu Y2x1ZGVzKGNlcnROYW1lKQotICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg ICAgICAgICAgID4KLSAgICAgICAgICAgICAgICAgICAgICAgICB7c2F2ZUJ0bk5hbWV9Ci1AQCAt MjI2LDcgKzYwMSw3IEBAIGV4cG9ydCBjbGFzcyBTZWN1cml0eUFkZENlcnRNb2RhbCBleHRlbmRz IFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgPC9UZXh0PgotICAg ICAgICAgICAgICAgICAgICAgPC9UZXh0Q29udGVudD4KLSAgICAgICAgICAgICAgICAgICAgIDxH cmlkCi0tICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPSJkcy1tYXJnaW4tdG9wLWxn IgotKyAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT0iZHMtbWFyZ2luLXRvcC1zbSIK LSAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT17XygiRW50ZXIgbmFtZS9uaWNrbmFtZSBv ZiB0aGUgY2VydGlmaWNhdGUiKX0KLSAgICAgICAgICAgICAgICAgICAgID4KLSAgICAgICAgICAg ICAgICAgICAgICAgICA8R3JpZEl0ZW0gY2xhc3NOYW1lPSJkcy1sYWJlbCIgc3Bhbj17M30+Ci1A QCAtMjQxLDExICs2MTYsMjEgQEAgZXhwb3J0IGNsYXNzIFNlY3VyaXR5QWRkQ2VydE1vZGFsIGV4 dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG9uQ2hhbmdlPXsoZSwgc3RyKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaGFuZGxlQ2hhbmdlKGUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fX0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRlZD17Y2VydE5hbWUg PT09ICIiID8gVmFsaWRhdGVkT3B0aW9ucy5lcnJvciA6IFZhbGlkYXRlZE9wdGlvbnMuZGVmYXVs dH0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRlZD17Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydE5hbWUgPT09ICIiIHx8Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydE5pY2tuYW1lcy5pbmNsdWRlcyhjZXJ0 TmFtZSkgfHwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDQUNlcnROaWNr bmFtZXMuaW5jbHVkZXMoY2VydE5hbWUpID8gVmFsaWRhdGVkT3B0aW9ucy5lcnJvciA6IFZhbGlk YXRlZE9wdGlvbnMuZGVmYXVsdH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4KLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgeyhjZXJ0Tmlja25hbWVzLmluY2x1ZGVzKGNlcnRO YW1lKSB8fCBDQUNlcnROaWNrbmFtZXMuaW5jbHVkZXMoY2VydE5hbWUpKSAmJiAoCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA8SGVscGVyVGV4dD4KLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA8SGVscGVyVGV4dEl0ZW0gdmFyaWFudD0iZXJyb3IiPgotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XygiUGxlYXNlIHVzZSBhIHVu aXF1ZSBjZXJ0aWZpY2F0ZSBuaWNrbmFtZSIpfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDwvSGVscGVyVGV4dEl0ZW0+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA8L0hlbHBlclRleHQ+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgPC9HcmlkSXRlbT4KLSAgICAgICAgICAgICAgICAgICAgIDwv R3JpZD4KLS0gICAgICAgICAgICAgICAgICAgIDxHcmlkIGNsYXNzTmFtZT0iZHMtbWFyZ2luLXRv cCI+Ci0rICAgICAgICAgICAgICAgICAgICA8R3JpZCBjbGFzc05hbWU9ImRzLW1hcmdpbi10b3At bGciPgotICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkSXRlbSBzcGFuPXsxMn0+Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgdGl0bGU9e18oIlVwbG9hZCB0aGUgY29udGVu dHMgb2YgYSBQRU0gZmlsZSBmcm9tIHRoZSBjbGllbnQncyBzeXN0ZW0uIil9PgotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPFJhZGlvCi1AQCAtMjk4LDcgKzY4Myw5IEBAIGV4cG9y dCBjbGFzcyBTZWN1cml0eUFkZENlcnRNb2RhbCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Rm9ybVNlbGVjdAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtzZWxlY3RDZXJ0TmFtZX0KLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0ic2VsZWN0Q2VydE5hbWUiCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNlcnRTZWxlY3R9 Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlLCBzdHIp ID0+IHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlQ2Vy dFNlbGVjdChzdHIpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD0iRm9ybVNlbGVj dCBJbnB1dCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9 ImRzLWNlcnQtc2VsZWN0IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZh bGlkYXRlZD17c2VsZWN0VmFsaWRhdGVkfQotQEAgLTExMDMsNiArMTQ5MCwyMiBAQCBTZWN1cml0 eUFkZENlcnRNb2RhbC5kZWZhdWx0UHJvcHMgPSB7Ci0gICAgIGVycm9yOiB7fSwKLSB9OwotIAot K1NlY3VyaXR5QWRkQ0FDZXJ0TW9kYWwucHJvcFR5cGVzID0gewotKyAgICBzaG93TW9kYWw6IFBy b3BUeXBlcy5ib29sLAotKyAgICBjbG9zZUhhbmRsZXI6IFByb3BUeXBlcy5mdW5jLAotKyAgICBo YW5kbGVDaGFuZ2U6IFByb3BUeXBlcy5mdW5jLAotKyAgICBzYXZlSGFuZGxlcjogUHJvcFR5cGVz LmZ1bmMsCi0rICAgIHNwaW5uaW5nOiBQcm9wVHlwZXMuYm9vbCwKLSsgICAgZXJyb3I6IFByb3BU eXBlcy5vYmplY3QsCi0rfTsKLSsKLStTZWN1cml0eUFkZENBQ2VydE1vZGFsLmRlZmF1bHRQcm9w cyA9IHsKLSsgICAgc2hvd01vZGFsOiBmYWxzZSwKLSsgICAgc3Bpbm5pbmc6IGZhbHNlLAotKyAg ICBzYXZlSGFuZGxlcjogKCkgPT4ge30sCi0rICAgIGVycm9yOiB7fSwKLSt9OwotKwotIFNlY3Vy aXR5QWRkQ1NSTW9kYWwucHJvcFR5cGVzID0gewotICAgICBzaG93TW9kYWw6IFByb3BUeXBlcy5i b29sLAotICAgICBjbG9zZUhhbmRsZXI6IFByb3BUeXBlcy5mdW5jLAotZGlmZiAtLWdpdCBhL3Ny Yy9jb2NrcGl0LzM4OS1jb25zb2xlL3NyYy9saWIvc2VjdXJpdHkvc2VjdXJpdHlUYWJsZXMuanN4 IGIvc3JjL2NvY2twaXQvMzg5LWNvbnNvbGUvc3JjL2xpYi9zZWN1cml0eS9zZWN1cml0eVRhYmxl cy5qc3gKLWluZGV4IGZjZTRjYjA0ZS4uYTZjNjRlNmMxIDEwMDY0NAotLS0tIGEvc3JjL2NvY2tw aXQvMzg5LWNvbnNvbGUvc3JjL2xpYi9zZWN1cml0eS9zZWN1cml0eVRhYmxlcy5qc3gKLSsrKyBi L3NyYy9jb2NrcGl0LzM4OS1jb25zb2xlL3NyYy9saWIvc2VjdXJpdHkvc2VjdXJpdHlUYWJsZXMu anN4Ci1AQCAtNCw3ICs0LDYgQEAgaW1wb3J0IHsKLSAgICAgR3JpZCwKLSAgICAgR3JpZEl0ZW0s Ci0gICAgIFBhZ2luYXRpb24sCi0tICAgIFBhZ2luYXRpb25WYXJpYW50LAotICAgICBTZWFyY2hJ bnB1dCwKLSAgICAgVG9vbHRpcCwKLSB9IGZyb20gJ0BwYXR0ZXJuZmx5L3JlYWN0LWNvcmUnOwot QEAgLTk0LDEwICs5MywxMCBAQCBjbGFzcyBLZXlUYWJsZSBleHRlbmRzIFJlYWN0LkNvbXBvbmVu dCB7Ci0gICAgIF07Ci0gCi0gICAgIGhhbmRsZVNvcnQoX2V2ZW50LCBpbmRleCwgZGlyZWN0aW9u KSB7Ci0tICAgICAgICBjb25zdCBzb3J0ZWRSb3dzID0gWy4uLnRoaXMuc3RhdGUucm93c10uc29y dCgoYSwgYikgPT4gCi0rICAgICAgICBjb25zdCBzb3J0ZWRSb3dzID0gWy4uLnRoaXMuc3RhdGUu cm93c10uc29ydCgoYSwgYikgPT4KLSAgICAgICAgICAgICAoYVtpbmRleF0gPCBiW2luZGV4XSA/ IC0xIDogYVtpbmRleF0gPiBiW2luZGV4XSA/IDEgOiAwKQotICAgICAgICAgKTsKLS0gICAgICAg IAotKwotICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7Ci0gICAgICAgICAgICAgc29ydEJ5OiB7Ci0g ICAgICAgICAgICAgICAgIGluZGV4LAotQEAgLTEyNyw3ICsxMjYsNyBAQCBjbGFzcyBLZXlUYWJs ZSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICAgICAgICAgID4KLSAgICAgICAg ICAgICAgICAgICAgIDxhIGNsYXNzTmFtZT0iZHMtZm9udC1zaXplLXNtIj57XygiV2hhdCBpcyBh biBvcnBoYW4ga2V5PyIpfTwvYT4KLSAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPgotLSAgICAg ICAgICAgICAgICA8VGFibGUgCi0rICAgICAgICAgICAgICAgIDxUYWJsZQotICAgICAgICAgICAg ICAgICAgICAgY2xhc3NOYW1lPSJkcy1tYXJnaW4tdG9wIgotICAgICAgICAgICAgICAgICAgICAg YXJpYS1sYWJlbD0ib3JwaCBrZXkgdGFibGUiCi0gICAgICAgICAgICAgICAgICAgICB2YXJpYW50 PSJjb21wYWN0IgotQEAgLTEzNSw3ICsxMzQsNyBAQCBjbGFzcyBLZXlUYWJsZSBleHRlbmRzIFJl YWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICAgICAgICAgICAgICA8VGhlYWQ+Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgPFRyPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y29sdW1u cy5tYXAoKGNvbHVtbiwgaWR4KSA9PiAoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA8VGggCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGgKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2lkeH0KLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzb3J0PXtjb2x1bW4uc29ydGFibGUgPyB7Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvcnRCeSwKLUBAIC0xNjMsNyArMTYyLDcgQEAg Y2xhc3MgS2V5VGFibGUgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHto YXNSb3dzICYmICgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGQgaXNB Y3Rpb25DZWxsPgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QWN0 aW9uc0NvbHVtbiAKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFj dGlvbnNDb2x1bW4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGl0ZW1zPXt0aGlzLmdldEFjdGlvbnNGb3JSb3cocm93KX0KLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA8L1RkPgotQEAgLTIyNCw3ICsyMjMsNyBAQCBjbGFzcyBDU1JUYWJsZSBleHRlbmRzIFJl YWN0LkNvbXBvbmVudCB7Ci0gICAgIH0KLSAKLSAgICAgaGFuZGxlU29ydChfZXZlbnQsIGluZGV4 LCBkaXJlY3Rpb24pIHsKLS0gICAgICAgIGNvbnN0IHNvcnRlZFJvd3MgPSBbLi4udGhpcy5zdGF0 ZS5yb3dzXS5zb3J0KChhLCBiKSA9PiAKLSsgICAgICAgIGNvbnN0IHNvcnRlZFJvd3MgPSBbLi4u dGhpcy5zdGF0ZS5yb3dzXS5zb3J0KChhLCBiKSA9PgotICAgICAgICAgICAgIChhW2luZGV4XSA8 IGJbaW5kZXhdID8gLTEgOiBhW2luZGV4XSA+IGJbaW5kZXhdID8gMSA6IDApCi0gICAgICAgICAp OwotICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7Ci1AQCAtMzE2LDcgKzMxNSw3IEBAIGNsYXNzIENT UlRhYmxlIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAgICAgICAgICAgICAg ICBvbkNsZWFyPXsoZXZ0KSA9PiB0aGlzLmhhbmRsZVNlYXJjaENoYW5nZShldnQsICcnKX0KLSAg ICAgICAgICAgICAgICAgICAgIC8+Ci0gICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAg ICAgPFRhYmxlIAotKyAgICAgICAgICAgICAgICA8VGFibGUKLSAgICAgICAgICAgICAgICAgICAg IGNsYXNzTmFtZT0iZHMtbWFyZ2luLXRvcCIKLSAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFi ZWw9ImNzciB0YWJsZSIKLSAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9ImNvbXBhY3QiCi1A QCAtMzI0LDcgKzMyMyw3IEBAIGNsYXNzIENTUlRhYmxlIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50 IHsKLSAgICAgICAgICAgICAgICAgICAgIDxUaGVhZD4KLSAgICAgICAgICAgICAgICAgICAgICAg ICA8VHI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjb2x1bW5zLm1hcCgoY29sdW1u LCBpZHgpID0+ICgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUaCAKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUaAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGtleT17aWR4fQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNvcnQ9e2NvbHVtbi5zb3J0YWJsZSA/IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc29ydEJ5LAotQEAgLTM1Miw3ICszNTEsNyBAQCBjbGFzcyBDU1JUYWJs ZSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICApfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2hhc1Jvd3MgJiYgKAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUZCBpc0FjdGlvbkNlbGw+Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBY3Rpb25zQ29sdW1uIAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QWN0aW9uc0NvbHVtbgot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXM9e3RoaXMu Z2V0QWN0aW9uc0ZvclJvdyhyb3cpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVGQ+Ci1A QCAtNDE4LDQxICs0MTcsMTEgQEAgY2xhc3MgQ2VydFRhYmxlIGV4dGVuZHMgUmVhY3QuQ29tcG9u ZW50IHsKLSAgICAgfQotIAotICAgICBoYW5kbGVTb3J0KF9ldmVudCwgY29sdW1uSW5kZXgsIGRp cmVjdGlvbikgewotLSAgICAgICAgY29uc3Qgc29ydGVkX3Jvd3MgPSBbXTsKLS0gICAgICAgIGNv bnN0IHJvd3MgPSBbXTsKLS0gICAgICAgIGxldCBjb3VudCA9IDA7Ci0tCi0tICAgICAgICAvLyBD b252ZXJ0IHRoZSByb3dzIHBhaXJpbmdzIGludG8gYSBzb3J0YWJsZSBhcnJheQotLSAgICAgICAg Zm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgdGhpcy5zdGF0ZS5yb3dzLmxlbmd0aDsgaWR4ICs9IDIp IHsKLS0gICAgICAgICAgICBzb3J0ZWRfcm93cy5wdXNoKHsKLS0gICAgICAgICAgICAgICAgZXhw YW5kZWRSb3c6IHRoaXMuc3RhdGUucm93c1tpZHggKyAxXSwKLS0gICAgICAgICAgICAgICAgMTog dGhpcy5zdGF0ZS5yb3dzW2lkeF0uY2VsbHNbMF0uY29udGVudCwKLS0gICAgICAgICAgICAgICAg MjogdGhpcy5zdGF0ZS5yb3dzW2lkeF0uY2VsbHNbMV0uY29udGVudCwKLS0gICAgICAgICAgICAg ICAgMzogdGhpcy5zdGF0ZS5yb3dzW2lkeF0uY2VsbHNbMl0uY29udGVudCwKLS0gICAgICAgICAg ICAgICAgaXNzdWVyOiB0aGlzLnN0YXRlLnJvd3NbaWR4XS5pc3N1ZXIsCi0tICAgICAgICAgICAg ICAgIGZsYWdzOiB0aGlzLnN0YXRlLnJvd3NbaWR4XS5mbGFncwotLSAgICAgICAgICAgIH0pOwot LSAgICAgICAgfQotKyAgICAgICAgY29uc3Qgcm93cyA9IFsuLi50aGlzLnN0YXRlLnJvd3NdOwot IAotLSAgICAgICAgc29ydGVkX3Jvd3Muc29ydCgoYSwgYikgPT4gKGFbY29sdW1uSW5kZXggKyAx XSA+IGJbY29sdW1uSW5kZXggKyAxXSkgPyAxIDogLTEpOwotKyAgICAgICAgcm93cy5zb3J0KChh LCBiKSA9PiAoYS5jZWxsc1tjb2x1bW5JbmRleF0uY29udGVudCA+IGIuY2VsbHNbY29sdW1uSW5k ZXhdLmNvbnRlbnQpID8gMSA6IC0xKTsKLSAgICAgICAgIGlmIChkaXJlY3Rpb24gIT09IFNvcnRC eURpcmVjdGlvbi5hc2MpIHsKLS0gICAgICAgICAgICBzb3J0ZWRfcm93cy5yZXZlcnNlKCk7Ci0t ICAgICAgICB9Ci0tCi0tICAgICAgICBmb3IgKGNvbnN0IHNyb3cgb2Ygc29ydGVkX3Jvd3MpIHsK LS0gICAgICAgICAgICByb3dzLnB1c2goewotLSAgICAgICAgICAgICAgICBpc09wZW46IGZhbHNl LAotLSAgICAgICAgICAgICAgICBjZWxsczogWwotLSAgICAgICAgICAgICAgICAgICAgeyBjb250 ZW50OiBzcm93WzFdIH0sCi0tICAgICAgICAgICAgICAgICAgICB7IGNvbnRlbnQ6IHNyb3dbMl0g fSwKLS0gICAgICAgICAgICAgICAgICAgIHsgY29udGVudDogc3Jvd1szXSB9Ci0tICAgICAgICAg ICAgICAgIF0sCi0tICAgICAgICAgICAgICAgIGlzc3Vlcjogc3Jvdy5pc3N1ZXIsCi0tICAgICAg ICAgICAgICAgIGZsYWdzOiBzcm93LmZsYWdzLAotLSAgICAgICAgICAgIH0pOwotLSAgICAgICAg ICAgIHNyb3cuZXhwYW5kZWRSb3cucGFyZW50ID0gY291bnQ7Ci0tICAgICAgICAgICAgcm93cy5w dXNoKHNyb3cuZXhwYW5kZWRSb3cpOwotLSAgICAgICAgICAgIGNvdW50ICs9IDI7Ci0rICAgICAg ICAgICAgcm93cy5yZXZlcnNlKCk7Ci0gICAgICAgICB9Ci0gCi0gICAgICAgICB0aGlzLnNldFN0 YXRlKHsKLUBAIC01MzQsMTggKzUwMywxNiBAQCBjbGFzcyBDZXJ0VGFibGUgZXh0ZW5kcyBSZWFj dC5Db21wb25lbnQgewotICAgICAgICAgICAgIHJvd3MucHVzaCgKLSAgICAgICAgICAgICAgICAg ewotICAgICAgICAgICAgICAgICAgICAgaXNPcGVuOiBmYWxzZSwKLS0gICAgICAgICAgICAgICAg ICAgIGNlbGxzOiBbY2VydC5hdHRycy5uaWNrbmFtZSwgY2VydC5hdHRycy5zdWJqZWN0LCBjZXJ0 LmF0dHJzLmV4cGlyZXNdLAotKyAgICAgICAgICAgICAgICAgICAgY2VsbHM6IFsKLSsgICAgICAg ICAgICAgICAgICAgICAgICB7IGNvbnRlbnQ6IGNlcnQuYXR0cnMubmlja25hbWUgfSwKLSsgICAg ICAgICAgICAgICAgICAgICAgICB7IGNvbnRlbnQ6IGNlcnQuYXR0cnMuc3ViamVjdCB9LAotKyAg ICAgICAgICAgICAgICAgICAgICAgIHsgY29udGVudDogY2VydC5hdHRycy5leHBpcmVzIH0KLSsg ICAgICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgICAgICBpc3N1ZXI6IGNlcnQu YXR0cnMuaXNzdWVyLAotICAgICAgICAgICAgICAgICAgICAgZmxhZ3M6IGNlcnQuYXR0cnMuZmxh Z3MsCi0tCi0tICAgICAgICAgICAgICAgIH0sCi0tICAgICAgICAgICAgICAgIHsKLS0gICAgICAg ICAgICAgICAgICAgIHBhcmVudDogY291bnQsCi0tICAgICAgICAgICAgICAgICAgICBmdWxsV2lk dGg6IHRydWUsCi0tICAgICAgICAgICAgICAgICAgICBjZWxsczogW3sgdGl0bGU6IHRoaXMuZ2V0 RXhwYW5kZWRSb3coY2VydC5hdHRycy5pc3N1ZXIsIGNlcnQuYXR0cnMuZmxhZ3MpIH1dCi0tICAg ICAgICAgICAgICAgIH0sCi0rICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICApOwotLSAg ICAgICAgICAgIGNvdW50ICs9IDI7Ci0rICAgICAgICAgICAgY291bnQgKz0gMTsKLSAgICAgICAg IH0KLSAKLSAgICAgICAgIHRoaXMuc2V0U3RhdGUoewotQEAgLTU4Nyw3ICs1NTQsNyBAQCBjbGFz cyBDZXJ0VGFibGUgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAgICAgICAgICAg ICAgICAgIG9uQ2hhbmdlPXt0aGlzLmhhbmRsZVNlYXJjaENoYW5nZX0KLSAgICAgICAgICAgICAg ICAgICAgICAgICBvbkNsZWFyPXsoZXZ0KSA9PiB0aGlzLmhhbmRsZVNlYXJjaENoYW5nZShldnQs ICcnKX0KLSAgICAgICAgICAgICAgICAgICAgIC8+fQotLSAgICAgICAgICAgICAgICA8VGFibGUg Ci0rICAgICAgICAgICAgICAgIDxUYWJsZQotICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJl bD0iY2VydCB0YWJsZSIKLSAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9J2NvbXBhY3QnCi0g ICAgICAgICAgICAgICAgID4KLUBAIC02MjYsNyArNTkzLDcgQEAgY2xhc3MgQ2VydFRhYmxlIGV4 dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPC9UZD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX0K LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGQgaXNBY3Rpb25DZWxsPgot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QWN0aW9uc0NvbHVtbiAK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFjdGlvbnNDb2x1bW4K LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zPXt0aGlz LmdldEFjdGlvbnNGb3JSb3cocm93KX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1RkPgot QEAgLTY0Niw3ICs2MTMsNyBAQCBjbGFzcyBDZXJ0VGFibGUgZXh0ZW5kcyBSZWFjdC5Db21wb25l bnQgewotICAgICAgICAgICAgICAgICA8L1RhYmxlPgotICAgICAgICAgICAgICAgICB7aGFzUm93 cyAmJgotICAgICAgICAgICAgICAgICAgICAgPFBhZ2luYXRpb24KLS0gICAgICAgICAgICAgICAg ICAgICAgICBpdGVtQ291bnQ9e3RoaXMuc3RhdGUucm93cy5sZW5ndGggLyAyfQotKyAgICAgICAg ICAgICAgICAgICAgICAgIGl0ZW1Db3VudD17dGhpcy5zdGF0ZS5yb3dzLmxlbmd0aH0KLSAgICAg ICAgICAgICAgICAgICAgICAgICB3aWRnZXRJZD0icGFnaW5hdGlvbi1vcHRpb25zLW1lbnUtYm90 dG9tIgotICAgICAgICAgICAgICAgICAgICAgICAgIHBlclBhZ2U9e3BlclBhZ2V9Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgcGFnZT17cGFnZX0KLUBAIC03MjgsNyArNjk1LDcgQEAgY2xhc3Mg Q1JMVGFibGUgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAgaWYgKGRpcmVjdGlv biAhPT0gU29ydEJ5RGlyZWN0aW9uLmFzYykgewotICAgICAgICAgICAgIHNvcnRlZF9yb3dzLnJl dmVyc2UoKTsKLSAgICAgICAgIH0KLS0gICAgICAgIAotKwotICAgICAgICAgZm9yIChjb25zdCBz cm93IG9mIHNvcnRlZF9yb3dzKSB7Ci0gICAgICAgICAgICAgcm93cy5wdXNoKHsKLSAgICAgICAg ICAgICAgICAgaXNPcGVuOiBmYWxzZSwKLUBAIC04MDYsMTQgKzc3MywxNCBAQCBjbGFzcyBDUkxU YWJsZSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICAgICAgICAgICAgICBvbkNo YW5nZT17dGhpcy5oYW5kbGVTZWFyY2hDaGFuZ2V9Ci0gICAgICAgICAgICAgICAgICAgICBvbkNs ZWFyPXsoZXZ0KSA9PiB0aGlzLmhhbmRsZVNlYXJjaENoYW5nZShldnQsICcnKX0KLSAgICAgICAg ICAgICAgICAgLz4KLS0gICAgICAgICAgICAgICAgPFRhYmxlIAotKyAgICAgICAgICAgICAgICA8 VGFibGUKLSAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9IkNSTCBUYWJsZSIKLSAgICAg ICAgICAgICAgICAgICAgIHZhcmlhbnQ9ImNvbXBhY3QiCi0gICAgICAgICAgICAgICAgID4KLSAg ICAgICAgICAgICAgICAgICAgIDxUaGVhZD4KLSAgICAgICAgICAgICAgICAgICAgICAgICA8VHI+ Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0aGlzLnN0YXRlLmNvbHVtbnMubWFwKChj b2x1bW4sIGlkeCkgPT4gKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRoIAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRoCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAga2V5PXtpZHh9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc29ydD17Y29sdW1uLnNvcnRhYmxlID8gewotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzb3J0Qnk6IHRoaXMuc3RhdGUuc29ydEJ5LAotQEAgLTgzNiw3 ICs4MDMsNyBAQCBjbGFzcyBDUkxUYWJsZSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAge3RoaXMuc3RhdGUuaGFzUm93cyAmJiAoCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUZCBpc0FjdGlvbkNlbGw+Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QWN0aW9uc0NvbHVtbiAKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBY3Rpb25zQ29sdW1uCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXM9e3Ro aXMuZ2V0QWN0aW9uc0ZvclJvdyhyb3cpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgPC9UZD4KLWRpZmYgLS1naXQgYS9zcmMvY29ja3BpdC8zODktY29uc29sZS9zcmMvc2VjdXJp dHkuanN4IGIvc3JjL2NvY2twaXQvMzg5LWNvbnNvbGUvc3JjL3NlY3VyaXR5LmpzeAotaW5kZXgg YzQ1MDQwNjZiLi4zYWVhZDA0NDkgMTAwNjQ0Ci0tLS0gYS9zcmMvY29ja3BpdC8zODktY29uc29s ZS9zcmMvc2VjdXJpdHkuanN4Ci0rKysgYi9zcmMvY29ja3BpdC8zODktY29uc29sZS9zcmMvc2Vj dXJpdHkuanN4Ci1AQCAtNjAsNiArNjAsOCBAQCBleHBvcnQgY2xhc3MgU2VjdXJpdHkgZXh0ZW5k cyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAgICAgIHByaW1hcnlDZXJ0TmFtZTogJycsCi0g ICAgICAgICAgICAgc2VydmVyQ2VydE5hbWVzOiBbXSwKLSAgICAgICAgICAgICBzZXJ2ZXJDZXJ0 czogW10sCi0rICAgICAgICAgICAgQ0FDZXJ0czogW10sCi0rICAgICAgICAgICAgQ0FDZXJ0TmFt ZXM6IFtdLAotICAgICAgICAgICAgIGlzTWluU1NMT3BlbjogZmFsc2UsCi0gICAgICAgICAgICAg aXNNYXhTU0xPcGVuOiBmYWxzZSwKLSAgICAgICAgICAgICBpc0NsaWVudEF1dGhPcGVuOiBmYWxz ZSwKLUBAIC0zMzAsOSArMzMyLDE0IEBAIGV4cG9ydCBjbGFzcyBTZWN1cml0eSBleHRlbmRzIFJl YWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICAgICAgICAgIC5zcGF3bihjbWQsIHsgc3VwZXJ1c2Vy OiB0cnVlLCBlcnI6ICJtZXNzYWdlIiB9KQotICAgICAgICAgICAgICAgICAuZG9uZShjb250ZW50 ID0+IHsKLSAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNlcnRzID0gSlNPTi5wYXJzZShjb250 ZW50KTsKLSsgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNlcnROYW1lcyA9IFtdOwotKyAgICAg ICAgICAgICAgICAgICAgZm9yIChjb25zdCBjZXJ0IG9mIGNlcnRzKSB7Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgY2VydE5hbWVzLnB1c2goY2VydC5hdHRycy5uaWNrbmFtZSk7Ci0rICAgICAg ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKCgpID0+ ICgKLSAgICAgICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIENBQ2VydHM6IGNlcnRzLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDQUNlcnRO YW1lczogY2VydE5hbWVzLAotICAgICAgICAgICAgICAgICAgICAgICAgIH0pLCB0aGlzLmxvYWRD U1JzCi0gICAgICAgICAgICAgICAgICAgICApOwotICAgICAgICAgICAgICAgICB9KQotQEAgLTEy MjYsNiArMTIzMyw5IEBAIGV4cG9ydCBjbGFzcyBTZWN1cml0eSBleHRlbmRzIFJlYWN0LkNvbXBv bmVudCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VydmVyS2V5cz17 dGhpcy5zdGF0ZS5zZXJ2ZXJPcnBoYW5LZXlzfQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFkZE5vdGlmaWNhdGlvbj17dGhpcy5wcm9wcy5hZGROb3RpZmljYXRpb259Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydERpcj17dGhpcy5wcm9wcy5j ZXJ0RGlyfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnROaWNrbmFt ZXM9e3RoaXMuc3RhdGUuc2VydmVyQ2VydE5hbWVzfQotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIENBQ2VydE5pY2tuYW1lcz17dGhpcy5zdGF0ZS5DQUNlcnROYW1lc30KLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxvYWRDZXJ0cz17dGhpcy5sb2Fk Q2VydHN9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPgotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA8L1RhYj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRh YiBldmVudEtleT17Mn0gdGl0bGU9ezxUYWJUaXRsZVRleHQ+e18oIkNpcGhlciBQcmVmZXJlbmNl cyIpfTwvVGFiVGl0bGVUZXh0Pn0+Ci1kaWZmIC0tZ2l0IGEvc3JjL2xpYjM4OS9saWIzODkvY2xp X2NvbmYvc2VjdXJpdHkucHkgYi9zcmMvbGliMzg5L2xpYjM4OS9jbGlfY29uZi9zZWN1cml0eS5w eQotaW5kZXggMThlNDQ0YzRjLi5iYzNhNmRkYWYgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliMzg5L2xp YjM4OS9jbGlfY29uZi9zZWN1cml0eS5weQotKysrIGIvc3JjL2xpYjM4OS9saWIzODkvY2xpX2Nv bmYvc2VjdXJpdHkucHkKLUBAIC04Niw5ICs4Niw5IEBAIGRlZiBfc2VjdXJpdHlfZ2VuZXJpY19n ZXQoaW5zdCwgYmFzZWRuLCBsb2csIGFyZ3MsIGF0dHJzX21hcCk6Ci0gICAgICAgICAgICAgdmFs ID0gIiIKLSAgICAgICAgIHJlc3VsdFtwcm9wcy5hdHRyLmxvd2VyKCldID0gdmFsCi0gICAgIGlm IGFyZ3MuanNvbjoKLS0gICAgICAgIHByaW50KGpzb24uZHVtcHMoeyd0eXBlJzogJ2xpc3QnLCAn aXRlbXMnOiByZXN1bHR9LCBpbmRlbnQ9NCkpCi0rICAgICAgICBsb2cuaW5mbyhqc29uLmR1bXBz KHsndHlwZSc6ICdsaXN0JywgJ2l0ZW1zJzogcmVzdWx0fSwgaW5kZW50PTQpKQotICAgICBlbHNl OgotLSAgICAgICAgcHJpbnQoJ1xuJy5qb2luKFtmJ3thdHRyfToge3ZhbHVlIG9yICIifScgZm9y IGF0dHIsIHZhbHVlIGluIHJlc3VsdC5pdGVtcygpXSkpCi0rICAgICAgICBsb2cuaW5mbygnXG4n LmpvaW4oW2Yne2F0dHJ9OiB7dmFsdWUgb3IgIiJ9JyBmb3IgYXR0ciwgdmFsdWUgaW4gcmVzdWx0 Lml0ZW1zKCldKSkKLSAKLSAKLSBkZWYgX3NlY3VyaXR5X2dlbmVyaWNfc2V0KGluc3QsIGJhc2Vk biwgbG9nLCBhcmdzLCBhdHRyc19tYXApOgotQEAgLTIyOCwxMCArMjI4LDEwIEBAIGRlZiBzZWN1 cml0eV9jaXBoZXJzX3NldChpbnN0LCBiYXNlZG4sIGxvZywgYXJncyk6Ci0gZGVmIHNlY3VyaXR5 X2NpcGhlcnNfZ2V0KGluc3QsIGJhc2VkbiwgbG9nLCBhcmdzKToKLSAgICAgZW5jID0gRW5jcnlw dGlvbihpbnN0KQotICAgICBpZiBhcmdzLmpzb246Ci0tICAgICAgICBwcmludCh7J3R5cGUnOiAn bGlzdCcsICdpdGVtcyc6IGVuYy5jaXBoZXJzfSkKLSsgICAgICAgIGxvZy5pbmZvKHsndHlwZSc6 ICdsaXN0JywgJ2l0ZW1zJzogZW5jLmNpcGhlcnN9KQotICAgICBlbHNlOgotICAgICAgICAgdmFs ID0gJywnLmpvaW4oZW5jLmNpcGhlcnMpCi0tICAgICAgICBwcmludCh2YWwgaWYgdmFsICE9ICcn IGVsc2UgJzx1bmRlZmluZWQ+JykKLSsgICAgICAgIGxvZy5pbmZvKHZhbCBpZiB2YWwgIT0gJycg ZWxzZSAnPHVuZGVmaW5lZD4nKQotIAotIAotIGRlZiBzZWN1cml0eV9jaXBoZXJzX2xpc3QoaW5z dCwgYmFzZWRuLCBsb2csIGFyZ3MpOgotQEAgLTI0NywxMiArMjQ3LDEzIEBAIGRlZiBzZWN1cml0 eV9jaXBoZXJzX2xpc3QoaW5zdCwgYmFzZWRuLCBsb2csIGFyZ3MpOgotICAgICAgICAgbHN0ID0g ZW5jLmNpcGhlcnMKLSAKLSAgICAgaWYgYXJncy5qc29uOgotLSAgICAgICAgcHJpbnQoanNvbi5k dW1wcyh7J3R5cGUnOiAnbGlzdCcsICdpdGVtcyc6IGxzdH0sIGluZGVudD00KSkKLSsgICAgICAg IGxvZy5pbmZvKGpzb24uZHVtcHMoeyd0eXBlJzogJ2xpc3QnLCAnaXRlbXMnOiBsc3R9LCBpbmRl bnQ9NCkpCi0gICAgIGVsc2U6Ci0gICAgICAgICBpZiBsc3QgPT0gW106Ci0gICAgICAgICAgICAg bG9nLmdldENoaWxkKCdzZWN1cml0eScpLndhcm4oJ0xpc3Qgb2YgY2lwaGVycyBpcyBlbXB0eScp Ci0gICAgICAgICBlbHNlOgotLSAgICAgICAgICAgIHByaW50KCpsc3QsIHNlcD0nXG4nKQotKyAg ICAgICAgICAgIGZvciBpdGVtIGluIGxzdDoKLSsgICAgICAgICAgICAgICAgbG9nLmluZm8oaXRl bSkKLSAKLSAKLSBkZWYgc2VjdXJpdHlfZGlzYWJsZV9wbGFpbnRleHRfcG9ydChpbnN0LCBiYXNl ZG4sIGxvZywgYXJncywgd2Fybj1UcnVlKToKLUBAIC0zMTIsNyArMzEzLDEwIEBAIGRlZiBjZXJ0 X2xpc3QoaW5zdCwgYmFzZWRuLCBsb2csIGFyZ3MpOgotICAgICBjZXJ0bWdyID0gQ2VydE1hbmFn ZXIoaW5zdGFuY2U9aW5zdCkKLSAgICAgY2VydHMgPSBjZXJ0bWdyLmxpc3RfY2VydHMoKQotICAg ICBpZiBub3QgY2VydHM6Ci0tICAgICAgICBsb2cuaW5mbygiTm8gY2VydGlmaWNhdGVzIGZvdW5k LiIpCi0rICAgICAgICBpZiBhcmdzLmpzb246Ci0rICAgICAgICAgICAgbG9nLmluZm8oanNvbi5k dW1wcyhbXSwgaW5kZW50PTQpKQotKyAgICAgICAgZWxzZToKLSsgICAgICAgICAgICBsb2cuaW5m bygiTm8gY2VydGlmaWNhdGVzIGZvdW5kLiIpCi0gICAgICAgICByZXR1cm4KLSAKLSAgICAgaWYg YXJncy5qc29uOgotQEAgLTMyOCw3ICszMzIsMTAgQEAgZGVmIGNhY2VydF9saXN0KGluc3QsIGJh c2VkbiwgbG9nLCBhcmdzKToKLSAgICAgY2VydG1nciA9IENlcnRNYW5hZ2VyKGluc3RhbmNlPWlu c3QpCi0gICAgIGNhX2NlcnRzID0gY2VydG1nci5saXN0X2NhX2NlcnRzKCkKLSAgICAgaWYgbm90 IGNhX2NlcnRzOgotLSAgICAgICAgbG9nLmluZm8oIk5vIENBIGNlcnRpZmljYXRlcyBmb3VuZC4i KQotKyAgICAgICAgaWYgYXJncy5qc29uOgotKyAgICAgICAgICAgIGxvZy5pbmZvKGpzb24uZHVt cHMoW10sIGluZGVudD00KSkKLSsgICAgICAgIGVsc2U6Ci0rICAgICAgICAgICAgbG9nLmluZm8o Ik5vIENBIGNlcnRpZmljYXRlcyBmb3VuZC4iKQotICAgICAgICAgcmV0dXJuCi0gCi0gICAgIGlm IGFyZ3MuanNvbjoKLS0tIAotMi41My4wCi0KCmRpZmYgLS1naXQgYS8wMDUzLUlzc3VlLTY3NTgt Rml4LUVuYWJsZS1SZXBsaWNhdGlvbi1kcm9wZG93bi1ub3Qtb3BlbmkucGF0Y2ggYi8wMDUzLUlz c3VlLTY3NTgtRml4LUVuYWJsZS1SZXBsaWNhdGlvbi1kcm9wZG93bi1ub3Qtb3BlbmkucGF0Y2gK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEyNzI3ZWIuLjAwMDAwMDAKLS0tIGEvMDA1 My1Jc3N1ZS02NzU4LUZpeC1FbmFibGUtUmVwbGljYXRpb24tZHJvcGRvd24tbm90LW9wZW5pLnBh dGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotRnJvbSBiMjE2Yjg2YzU2MDdkYzA0 MjFlYjYwOWM0NmYzMDA0ODQ0ZmIzN2MwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTog QWtzaGF5IEFkaGlrYXJpIDxhYWRoaWthckByZWRoYXQuY29tPgotRGF0ZTogVHVlLCAxNyBGZWIg MjAyNiAxNzo0MDo0NCArMDUzMAotU3ViamVjdDogW1BBVENIXSBJc3N1ZSA2NzU4IC0gRml4IEVu YWJsZSBSZXBsaWNhdGlvbiBkcm9wZG93biBub3Qgb3BlbmluZwotICgjNzI2MikKLQotRGVzY3Jp cHRpb246IFJlbW92ZWQgaGFyZGNvZGVkIGlzT3Blbj17ZmFsc2V9IGFuZCBlbXB0eSBvblRvZ2ds ZSBoYW5kbGVyIHRoYXQKLXByZXZlbnRlZCBkcm9wZG93biBmcm9tIG9wZW5pbmcuIExldCBjb21w b25lbnQgbWFuYWdlIGl0cyBvd24gc3RhdGUuCi0KLVJlbGF0ZXM6ICM2NzU4Ci0KLVJldmlld2Vk IGJ5OiBAdmFzaGlyb3YKLS0tLQotIHNyYy9jb2NrcGl0LzM4OS1jb25zb2xlL3NyYy9saWIvcmVw bGljYXRpb24vcmVwbE1vZGFscy5qc3ggfCAyIC0tCi0gMSBmaWxlIGNoYW5nZWQsIDIgZGVsZXRp b25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvY29ja3BpdC8zODktY29uc29sZS9zcmMvbGliL3Jl cGxpY2F0aW9uL3JlcGxNb2RhbHMuanN4IGIvc3JjL2NvY2twaXQvMzg5LWNvbnNvbGUvc3JjL2xp Yi9yZXBsaWNhdGlvbi9yZXBsTW9kYWxzLmpzeAotaW5kZXggYmE0ODU5NjE3Li44M2E4Yjc1YTUg MTAwNjQ0Ci0tLS0gYS9zcmMvY29ja3BpdC8zODktY29uc29sZS9zcmMvbGliL3JlcGxpY2F0aW9u L3JlcGxNb2RhbHMuanN4Ci0rKysgYi9zcmMvY29ja3BpdC8zODktY29uc29sZS9zcmMvbGliL3Jl cGxpY2F0aW9uL3JlcGxNb2RhbHMuanN4Ci1AQCAtMTc1Nyw4ICsxNzU3LDYgQEAgZXhwb3J0IGNs YXNzIEVuYWJsZVJlcGxNb2RhbCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlQ2hhbmdlKHN5bnRoZXRpY0V2ZW50KTsK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBvcHRpb25zPXtbXygiU3VwcGxpZXIiKSwgXygiSHViIiksIF8oIkNvbnN1 bWVyIildfQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNPcGVuPXtmYWxzZX0K LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVG9nZ2xlPXsoKSA9PiB7fX0KLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtfKCJTZWxlY3Qgcm9s ZS4uLiIpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYUxhYmVsPSJSZXBs aWNhdGlvbiByb2xlIHNlbGVjdGlvbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlzTXVsdGk9e2ZhbHNlfQotLS0gCi0yLjUzLjAKLQoKZGlmZiAtLWdpdCBhLzAwNTQtSXNzdWUt NzIyMy1SZW1vdmUtaW50ZWdlck9yZGVyaW5nTWF0Y2gtcmVxdWlyZW1lbnQtZi5wYXRjaCBiLzAw NTQtSXNzdWUtNzIyMy1SZW1vdmUtaW50ZWdlck9yZGVyaW5nTWF0Y2gtcmVxdWlyZW1lbnQtZi5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTRiNGRiMi4uMDAwMDAwMAotLS0g YS8wMDU0LUlzc3VlLTcyMjMtUmVtb3ZlLWludGVnZXJPcmRlcmluZ01hdGNoLXJlcXVpcmVtZW50 LWYucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1MzggKzAsMCBAQAotRnJvbSA2Y2UxOWE5YTNl MzYyMTNhNTYwNDE0NGFhNWViM2NiYTY2NmU1ZWQ0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQot RnJvbTogVmlrdG9yIEFzaGlyb3YgPHZhc2hpcm92QHJlZGhhdC5jb20+Ci1EYXRlOiBXZWQsIDE4 IEZlYiAyMDI2IDA5OjI2OjU3ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIElzc3VlIDcyMjMgLSBS ZW1vdmUgaW50ZWdlck9yZGVyaW5nTWF0Y2ggcmVxdWlyZW1lbnQgZm9yCi0gcGFyZW50aWQgKCM3 MjY0KQotCi1EZXNjcmlwdGlvbjoKLWludGVnZXJPcmRlcmluZ01hdGNoIHdhcyBpbnRyb2R1Y2Vk IGFzIGEgcmVxdWlyZW1lbnQgZm9yIHBhcmVudGlkIGFuZAotYW5jZXN0b3JpZCBpbmRleGVzIGZv ciBwZXJmb3JtYW5jZSByZWFzb25zLiBCdXQgYWZ0ZXIgIzcwOTYgdGhlIG9yZGVyCi1mb3IgcGFy ZW50aWQgZG9lc24ndCBtYWtlIGEgbG90IG9mIGRpZmZlcmVuY2UuCi0KLUZpeCBEZXNjcmlwdGlv bjoKLSogUmVtb3ZlIGludGVnZXJPcmRlcmluZ01hdGNoIHJlcXVpcmVtZW50IGZvciBwYXJlbnRp ZC4KLSogUmVhZCBvbmx5IGZpcnN0IDEwMCBrZXlzIGZyb20gZGJzY2FuIGluIGluZGV4IG9yZGVy aW5nIGNoZWNrCi0qIERvIG5vdCBydW4gZHNjdGwgaW5kZXgtY2hlY2sgZHVyaW5nIFJQTSB1cGdy YWRlCi0KLVJlbGF0ZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS8zODlkcy8zODktZHMtYmFzZS9wdWxs LzcyMjMKLQotUmV2aWV3ZWQgYnk6IEBwcm9naWVyMzg5LCBAdGJvcmRheiAoVGhhbmtzISkKLS0t LQotIC4uLi9oZWFsdGhjaGVjay9oZWFsdGhfc3lzdGVtX2luZGV4ZXNfdGVzdC5weSB8ICA4MyAr KysrLS0tLS0tLS0tLQotIGxkYXAvc2VydmVycy9zbGFwZC91cGdyYWRlLmMgICAgICAgICAgICAg ICAgICB8IDEwNSAtLS0tLS0tLS0tLS0tLS0tLS0KLSBycG0vMzg5LWRzLWJhc2Uuc3BlYy5pbiAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDMgLQotIHNyYy9saWIzODkvbGliMzg5L2JhY2tlbmQu cHkgICAgICAgICAgICAgICAgICB8ICAgNSArLQotIHNyYy9saWIzODkvbGliMzg5L2NsaV9jdGwv ZGJ0YXNrcy5weSAgICAgICAgICB8ICA5OSArKysrKysrKy0tLS0tLS0tLQotIDUgZmlsZXMgY2hh bmdlZCwgNzMgaW5zZXJ0aW9ucygrKSwgMjIyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEv ZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL2hlYWx0aGNoZWNrL2hlYWx0aF9zeXN0ZW1faW5kZXhl c190ZXN0LnB5IGIvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL2hlYWx0aGNoZWNrL2hlYWx0aF9z eXN0ZW1faW5kZXhlc190ZXN0LnB5Ci1pbmRleCBkZDQyY2QxOTcuLjhkYzgyYzc3OSAxMDA2NDQK LS0tLSBhL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9oZWFsdGhjaGVjay9oZWFsdGhfc3lzdGVt X2luZGV4ZXNfdGVzdC5weQotKysrIGIvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL2hlYWx0aGNo ZWNrL2hlYWx0aF9zeXN0ZW1faW5kZXhlc190ZXN0LnB5Ci1AQCAtMTc5LDcgKzE3OSw4IEBAIGRl ZiB0ZXN0X21pc3NpbmdfcGFyZW50aWQodG9wb2xvZ3lfc3QsIGxvZ19idWZmZXJpbmdfZW5hYmxl ZCk6Ci0gCi0gCi0gZGVmIHRlc3RfbWlzc2luZ19tYXRjaGluZ19ydWxlKHRvcG9sb2d5X3N0LCBs b2dfYnVmZmVyaW5nX2VuYWJsZWQpOgotLSAgICAiIiJDaGVjayBpZiBoZWFsdGhjaGVjayByZXR1 cm5zIERTQkxFMDAwNyBjb2RlIHdoZW4gcGFyZW50SWQgaW5kZXggaXMgbWlzc2luZyBpbnRlZ2Vy T3JkZXJpbmdNYXRjaAotKyAgICAiIiJDaGVjayB0aGF0IGhlYWx0aGNoZWNrIGRvZXMgTk9UIHJl cG9ydCBEU0JMRTAwMDcgd2hlbiBwYXJlbnRJZCBpbmRleCBpcyBtaXNzaW5nIGludGVnZXJPcmRl cmluZ01hdGNoLgotKyAgICBCb3RoIGxleGljb2dyYXBoaWMgYW5kIGludGVnZXIgb3JkZXJpbmdz IGFyZSB2YWxpZCBmb3IgcGFyZW50aWQuCi0gCi0gICAgIDppZDogN2ZmYTcxZGItODk5NS00MzBh LWJlZDgtNTliY2U5NDQyMjFjCi0gICAgIDpzZXR1cDogU3RhbmRhbG9uZSBpbnN0YW5jZQotQEAg LTE4OSwxOSArMTkwLDE0IEBAIGRlZiB0ZXN0X21pc3NpbmdfbWF0Y2hpbmdfcnVsZSh0b3BvbG9n eV9zdCwgbG9nX2J1ZmZlcmluZ19lbmFibGVkKToKLSAgICAgICAgIDMuIFVzZSBoZWFsdGhjaGVj ayB3aXRob3V0IC0tanNvbiBvcHRpb24KLSAgICAgICAgIDQuIFVzZSBoZWFsdGhjaGVjayB3aXRo IC0tanNvbiBvcHRpb24KLSAgICAgICAgIDUuIFJlLWFkZCB0aGUgbWF0Y2hpbmcgcnVsZQotLSAg ICAgICAgNi4gVXNlIGhlYWx0aGNoZWNrIHdpdGhvdXQgLS1qc29uIG9wdGlvbgotLSAgICAgICAg Ny4gVXNlIGhlYWx0aGNoZWNrIHdpdGggLS1qc29uIG9wdGlvbgotICAgICA6ZXhwZWN0ZWRyZXN1 bHRzOgotICAgICAgICAgMS4gU3VjY2VzcwotICAgICAgICAgMi4gU3VjY2VzcwotLSAgICAgICAg My4gaGVhbHRoY2hlY2sgcmVwb3J0cyBEU0JMRTAwMDcgY29kZSBhbmQgcmVsYXRlZCBkZXRhaWxz Ci0tICAgICAgICA0LiBoZWFsdGhjaGVjayByZXBvcnRzIERTQkxFMDAwNyBjb2RlIGFuZCByZWxh dGVkIGRldGFpbHMKLSsgICAgICAgIDMuIGhlYWx0aGNoZWNrIHJlcG9ydHMgbm8gaXNzdWVzIGZv dW5kCi0rICAgICAgICA0LiBoZWFsdGhjaGVjayByZXBvcnRzIG5vIGlzc3VlcyBmb3VuZAotICAg ICAgICAgNS4gU3VjY2VzcwotLSAgICAgICAgNi4gaGVhbHRoY2hlY2sgcmVwb3J0cyBubyBpc3N1 ZXMgZm91bmQKLS0gICAgICAgIDcuIGhlYWx0aGNoZWNrIHJlcG9ydHMgbm8gaXNzdWVzIGZvdW5k Ci0gICAgICIiIgotIAotLSAgICBSRVRfQ09ERSA9ICJEU0JMRTAwMDciCi0gICAgIFBBUkVOVElE X0ROID0gImNuPXBhcmVudGlkLGNuPWluZGV4LGNuPXVzZXJyb290LGNuPWxkYm0gZGF0YWJhc2Us Y249cGx1Z2lucyxjbj1jb25maWciCi0gCi0gICAgIHN0YW5kYWxvbmUgPSB0b3BvbG9neV9zdC5z dGFuZGFsb25lCi1AQCAtMjEwLDE3ICsyMDYsMTQgQEAgZGVmIHRlc3RfbWlzc2luZ19tYXRjaGlu Z19ydWxlKHRvcG9sb2d5X3N0LCBsb2dfYnVmZmVyaW5nX2VuYWJsZWQpOgotICAgICBwYXJlbnRp ZF9pbmRleCA9IEluZGV4KHN0YW5kYWxvbmUsIFBBUkVOVElEX0ROKQotICAgICBwYXJlbnRpZF9p bmRleC5yZW1vdmUoIm5zTWF0Y2hpbmdSdWxlIiwgImludGVnZXJPcmRlcmluZ01hdGNoIikKLSAK LS0gICAgcnVuX2hlYWx0aGNoZWNrX2FuZF9mbHVzaF9sb2codG9wb2xvZ3lfc3QsIHN0YW5kYWxv bmUsIGpzb249RmFsc2UsIHNlYXJjaGVkX2NvZGU9UkVUX0NPREUpCi0tICAgIHJ1bl9oZWFsdGhj aGVja19hbmRfZmx1c2hfbG9nKHRvcG9sb2d5X3N0LCBzdGFuZGFsb25lLCBqc29uPVRydWUsIHNl YXJjaGVkX2NvZGU9UkVUX0NPREUpCi0rICAgIHJ1bl9oZWFsdGhjaGVja19hbmRfZmx1c2hfbG9n KHRvcG9sb2d5X3N0LCBzdGFuZGFsb25lLCBqc29uPUZhbHNlLCBzZWFyY2hlZF9jb2RlPUNNRF9P VVRQVVQpCi0rICAgIHJ1bl9oZWFsdGhjaGVja19hbmRfZmx1c2hfbG9nKHRvcG9sb2d5X3N0LCBz dGFuZGFsb25lLCBqc29uPVRydWUsIHNlYXJjaGVkX2NvZGU9SlNPTl9PVVRQVVQpCi0gCi0gICAg IGxvZy5pbmZvKCJSZS1hZGQgdGhlIGludGVnZXJPcmRlcmluZ01hdGNoIG1hdGNoaW5nIHJ1bGUi KQotICAgICBwYXJlbnRpZF9pbmRleCA9IEluZGV4KHN0YW5kYWxvbmUsIFBBUkVOVElEX0ROKQot ICAgICBwYXJlbnRpZF9pbmRleC5hZGQoIm5zTWF0Y2hpbmdSdWxlIiwgImludGVnZXJPcmRlcmlu Z01hdGNoIikKLSAgICAgc3RhbmRhbG9uZS5yZXN0YXJ0KCkKLSAKLS0gICAgcnVuX2hlYWx0aGNo ZWNrX2FuZF9mbHVzaF9sb2codG9wb2xvZ3lfc3QsIHN0YW5kYWxvbmUsIGpzb249RmFsc2UsIHNl YXJjaGVkX2NvZGU9Q01EX09VVFBVVCkKLS0gICAgcnVuX2hlYWx0aGNoZWNrX2FuZF9mbHVzaF9s b2codG9wb2xvZ3lfc3QsIHN0YW5kYWxvbmUsIGpzb249VHJ1ZSwgc2VhcmNoZWRfY29kZT1KU09O X09VVFBVVCkKLS0KLSAKLSBkZWYgdGVzdF91c25fcGx1Z2luX21pc3NpbmdfZW50cnl1c24odG9w b2xvZ3lfc3QsIHVzbl9wbHVnaW5fZW5hYmxlZCwgbG9nX2J1ZmZlcmluZ19lbmFibGVkKToKLSAg ICAgIiIiQ2hlY2sgaWYgaGVhbHRoY2hlY2sgcmV0dXJucyBEU0JMRTAwMDcgY29kZSB3aGVuIFVT TiBwbHVnaW4gaXMgZW5hYmxlZCBidXQgZW50cnl1c24gaW5kZXggaXMgbWlzc2luZwotQEAgLTkx MCw3ICs5MDMsOSBAQCBkZWYgdGVzdF9pbmRleF9jaGVja19maXhlc19hbmNlc3RvcmlkX2NvbmZp Zyh0b3BvbG9neV9zdCk6Ci0gCi0gCi0gZGVmIHRlc3RfaW5kZXhfY2hlY2tfZml4ZXNfbWlzc2lu Z19tYXRjaGluZ19ydWxlKHRvcG9sb2d5X3N0KToKLS0gICAgIiIiQ2hlY2sgaWYgZHNjdGwgaW5k ZXgtY2hlY2sgLS1maXggYWRkcyBtaXNzaW5nIGludGVnZXJPcmRlcmluZ01hdGNoCi0rICAgICIi IkNoZWNrIHRoYXQgcmVtb3ZpbmcgaW50ZWdlck9yZGVyaW5nTWF0Y2ggZnJvbSBwYXJlbnRpZCBj b25maWcgaXMgbm90Ci0rICAgIGZsYWdnZWQgYXMgYW4gaXNzdWUgd2hlbiBkaXNrIG9yZGVyaW5n IGNhbm5vdCBiZSBkZXRlcm1pbmVkLgotKyAgICBCb3RoIGxleGljb2dyYXBoaWMgYW5kIGludGVn ZXIgb3JkZXJpbmdzIGFyZSB2YWxpZCBmb3IgcGFyZW50aWQuCi0gCi0gICAgIDppZDogNmMxZDRl OWYtMGEzYi00ZDVjLTFlN2YtOGE5YjBjMmQzZTRmCi0gICAgIDpzZXR1cDogU3RhbmRhbG9uZSBp bnN0YW5jZQotQEAgLTkxOCwxOCArOTEzLDE0IEBAIGRlZiB0ZXN0X2luZGV4X2NoZWNrX2ZpeGVz X21pc3NpbmdfbWF0Y2hpbmdfcnVsZSh0b3BvbG9neV9zdCk6Ci0gICAgICAgICAxLiBDcmVhdGUg RFMgaW5zdGFuY2UKLSAgICAgICAgIDIuIFN0b3AgdGhlIHNlcnZlcgotICAgICAgICAgMy4gUmVt b3ZlIGludGVnZXJPcmRlcmluZ01hdGNoIGZyb20gcGFyZW50aWQgaW5kZXggdXNpbmcgRFNFbGRp ZgotLSAgICAgICAgNC4gUnVuIGRzY3RsIGluZGV4LWNoZWNrIChzaG91bGQgZGV0ZWN0IGlzc3Vl KQotLSAgICAgICAgNS4gUnVuIGRzY3RsIGluZGV4LWNoZWNrIC0tZml4Ci0tICAgICAgICA2LiBW ZXJpZnkgaW50ZWdlck9yZGVyaW5nTWF0Y2ggd2FzIGFkZGVkIGJhY2sKLS0gICAgICAgIDcuIFN0 YXJ0IHRoZSBzZXJ2ZXIKLSsgICAgICAgIDQuIFJ1biBkc2N0bCBpbmRleC1jaGVjayAoc2hvdWxk IE5PVCBkZXRlY3QgaXNzdWUgc2luY2UgZGlzayBvcmRlcmluZyBpcyB1bmtub3duKQotKyAgICAg ICAgNS4gU3RhcnQgdGhlIHNlcnZlcgotICAgICA6ZXhwZWN0ZWRyZXN1bHRzOgotICAgICAgICAg MS4gU3VjY2VzcwotICAgICAgICAgMi4gU3VjY2VzcwotICAgICAgICAgMy4gU3VjY2VzcwotLSAg ICAgICAgNC4gaW5kZXgtY2hlY2sgcmV0dXJucyBGYWxzZSBhbmQgZGV0ZWN0cyBtaXNzaW5nIG1h dGNoaW5nIHJ1bGUKLS0gICAgICAgIDUuIGluZGV4LWNoZWNrIHJldHVybnMgVHJ1ZSBhZnRlciBm aXgKLS0gICAgICAgIDYuIGludGVnZXJPcmRlcmluZ01hdGNoIGlzIHByZXNlbnQKLS0gICAgICAg IDcuIFN1Y2Nlc3MKLSsgICAgICAgIDQuIGluZGV4LWNoZWNrIHJldHVybnMgVHJ1ZSAobm8gaXNz dWVzLCBkaXNrIG9yZGVyaW5nIHVua25vd24pCi0rICAgICAgICA1LiBTdWNjZXNzCi0gICAgICIi IgotICAgICBmcm9tIGxpYjM4OS5jbGlfY3RsLmRidGFza3MgaW1wb3J0IGRidGFza3NfaW5kZXhf Y2hlY2sKLSAgICAgZnJvbSBsaWIzODkuZHNlbGRpZiBpbXBvcnQgRFNFbGRpZgotQEAgLTk2Mywz NCArOTU0LDIwIEBAIGRlZiB0ZXN0X2luZGV4X2NoZWNrX2ZpeGVzX21pc3NpbmdfbWF0Y2hpbmdf cnVsZSh0b3BvbG9neV9zdCk6Ci0gICAgICAgICAgICAgICAgIGYiaW50ZWdlck9yZGVyaW5nTWF0 Y2ggc2hvdWxkIGJlIHJlbW92ZWQsIGJ1dCBmb3VuZDoge21yfSIKLSAgICAgbG9nLmluZm8oImlu dGVnZXJPcmRlcmluZ01hdGNoIHJlbW92ZWQgZnJvbSBwYXJlbnRpZCBpbmRleCIpCi0gCi0tICAg IGxvZy5pbmZvKCJSdW4gaW5kZXgtY2hlY2sgd2l0aG91dCAtLWZpeCAoc2hvdWxkIGRldGVjdCBp c3N1ZSkiKQotKyAgICBsb2cuaW5mbygiUnVuIGluZGV4LWNoZWNrIChzaG91bGQgTk9UIGRldGVj dCBpc3N1ZSAtIGRpc2sgb3JkZXJpbmcgdW5rbm93bikiKQotICAgICBhcmdzID0gRmFrZUFyZ3Mo KQotICAgICBhcmdzLmJhY2tlbmQgPSAidXNlclJvb3QiCi0gICAgIGFyZ3MuZml4ID0gRmFsc2UK LSAKLSAgICAgcmVzdWx0ID0gZGJ0YXNrc19pbmRleF9jaGVjayhzdGFuZGFsb25lLCB0b3BvbG9n eV9zdC5sb2djYXAubG9nLCBhcmdzKQotLSAgICBhc3NlcnQgcmVzdWx0IGlzIEZhbHNlLCAiaW5k ZXgtY2hlY2sgc2hvdWxkIGRldGVjdCBtaXNzaW5nIG1hdGNoaW5nIHJ1bGUiCi0tICAgIGFzc2Vy dCB0b3BvbG9neV9zdC5sb2djYXAuY29udGFpbnMoIm1pc3NpbmcgaW50ZWdlck9yZGVyaW5nTWF0 Y2giKQotKyAgICBhc3NlcnQgcmVzdWx0IGlzIFRydWUsIFwKLSsgICAgICAgICJpbmRleC1jaGVj ayBzaG91bGQgbm90IGZsYWcgbWlzc2luZyBpbnRlZ2VyT3JkZXJpbmdNYXRjaCB3aGVuIGRpc2sg b3JkZXJpbmcgaXMgdW5rbm93biIKLSsgICAgYXNzZXJ0IHRvcG9sb2d5X3N0LmxvZ2NhcC5jb250 YWlucygiY291bGQgbm90IGRldGVybWluZSBkaXNrIG9yZGVyaW5nIikKLSAgICAgdG9wb2xvZ3lf c3QubG9nY2FwLmZsdXNoKCkKLSAKLS0gICAgbG9nLmluZm8oIlJ1biBpbmRleC1jaGVjayB3aXRo IC0tZml4IikKLS0gICAgYXJncy5maXggPSBUcnVlCi0tICAgIHJlc3VsdCA9IGRidGFza3NfaW5k ZXhfY2hlY2soc3RhbmRhbG9uZSwgdG9wb2xvZ3lfc3QubG9nY2FwLmxvZywgYXJncykKLS0gICAg YXNzZXJ0IHJlc3VsdCBpcyBUcnVlLCAiaW5kZXgtY2hlY2sgLS1maXggc2hvdWxkIHN1Y2NlZWQi Ci0tICAgIGFzc2VydCB0b3BvbG9neV9zdC5sb2djYXAuY29udGFpbnMoImludGVnZXJPcmRlcmlu Z01hdGNoIikKLS0gICAgdG9wb2xvZ3lfc3QubG9nY2FwLmZsdXNoKCkKLS0KLS0gICAgbG9nLmlu Zm8oIlZlcmlmeSBpbnRlZ2VyT3JkZXJpbmdNYXRjaCB3YXMgYWRkZWQgYmFjayIpCi0tICAgIGRz ZV9sZGlmID0gRFNFbGRpZihzdGFuZGFsb25lKSAgIyBSZWxvYWQgdG8gZ2V0IGZyZXNoIGRhdGEK LS0gICAgbWF0Y2hpbmdfcnVsZXMgPSBkc2VfbGRpZi5nZXQocGFyZW50aWRfZG4sICJuc01hdGNo aW5nUnVsZSIpCi0tICAgIGFzc2VydCBtYXRjaGluZ19ydWxlcyBpcyBub3QgTm9uZSwgIm5zTWF0 Y2hpbmdSdWxlIHNob3VsZCBiZSBwcmVzZW50IgotLSAgICBmb3VuZF9pbnRfb3JkZXIgPSBGYWxz ZQotLSAgICBmb3IgbXIgaW4gbWF0Y2hpbmdfcnVsZXM6Ci0tICAgICAgICBpZiAiaW50ZWdlcm9y ZGVyaW5nbWF0Y2giIGluIG1yLmxvd2VyKCk6Ci0tICAgICAgICAgICAgZm91bmRfaW50X29yZGVy ID0gVHJ1ZQotLSAgICAgICAgICAgIGJyZWFrCi0tICAgIGFzc2VydCBmb3VuZF9pbnRfb3JkZXIs IGYiaW50ZWdlck9yZGVyaW5nTWF0Y2ggc2hvdWxkIGJlIHByZXNlbnQsIGdvdDoge21hdGNoaW5n X3J1bGVzfSIKLS0gICAgbG9nLmluZm8oImludGVnZXJPcmRlcmluZ01hdGNoIHN1Y2Nlc3NmdWxs eSBhZGRlZCBiYWNrIikKLSsgICAgbG9nLmluZm8oIlJlc3RvcmUgaW50ZWdlck9yZGVyaW5nTWF0 Y2ggYW5kIHN0YXJ0IHRoZSBzZXJ2ZXIiKQotKyAgICBkc2VfbGRpZiA9IERTRWxkaWYoc3RhbmRh bG9uZSkKLSsgICAgZHNlX2xkaWYuYWRkKHBhcmVudGlkX2RuLCAibnNNYXRjaGluZ1J1bGUiLCAi aW50ZWdlck9yZGVyaW5nTWF0Y2giKQotIAotICAgICBsb2cuaW5mbygiU3RhcnQgdGhlIHNlcnZl ciIpCi0gICAgIHN0YW5kYWxvbmUuc3RhcnQoKQotQEAgLTEwODAsNyArMTA1Nyw3IEBAIGRlZiB0 ZXN0X2luZGV4X2NoZWNrX2ZpeGVzX211bHRpcGxlX2lzc3Vlcyh0b3BvbG9neV9zdCk6Ci0gICAg IDpzdGVwczoKLSAgICAgICAgIDEuIENyZWF0ZSBEUyBpbnN0YW5jZQotICAgICAgICAgMi4gU3Rv cCB0aGUgc2VydmVyCi0tICAgICAgICAzLiBBZGQgbXVsdGlwbGUgaXNzdWVzOiBzY2FubGltaXQs IGFuY2VzdG9yaWQgY29uZmlnLCBtaXNzaW5nIG1hdGNoaW5nIHJ1bGUKLSsgICAgICAgIDMuIEFk ZCBtdWx0aXBsZSBpc3N1ZXM6IHNjYW5saW1pdCBhbmQgYW5jZXN0b3JpZCBjb25maWcKLSAgICAg ICAgIDQuIFJ1biBkc2N0bCBpbmRleC1jaGVjayAoc2hvdWxkIGRldGVjdCBhbGwgaXNzdWVzKQot ICAgICAgICAgNS4gUnVuIGRzY3RsIGluZGV4LWNoZWNrIC0tZml4Ci0gICAgICAgICA2LiBWZXJp ZnkgYWxsIGlzc3VlcyB3ZXJlIGZpeGVkCi1AQCAtMTEyMiwxNCArMTA5OSw2IEBAIGRlZiB0ZXN0 X2luZGV4X2NoZWNrX2ZpeGVzX211bHRpcGxlX2lzc3Vlcyh0b3BvbG9neV9zdCk6Ci0gICAgIF0K LSAgICAgZHNlX2xkaWYuYWRkX2VudHJ5KGFuY2VzdG9yaWRfZW50cnkpCi0gCi0tICAgIGxvZy5p bmZvKCJBZGQgaXNzdWUgMzogUmVtb3ZlIGludGVnZXJPcmRlcmluZ01hdGNoIGZyb20gcGFyZW50 aWQiKQotLSAgICBkc2VfbGRpZiA9IERTRWxkaWYoc3RhbmRhbG9uZSkgICMgUmVsb2FkCi0tICAg IG1hdGNoaW5nX3J1bGVzID0gZHNlX2xkaWYuZ2V0KHBhcmVudGlkX2RuLCAibnNNYXRjaGluZ1J1 bGUiKQotLSAgICBpZiBtYXRjaGluZ19ydWxlczoKLS0gICAgICAgIGZvciBtciBpbiBtYXRjaGlu Z19ydWxlczoKLS0gICAgICAgICAgICBpZiAiaW50ZWdlcm9yZGVyaW5nbWF0Y2giIGluIG1yLmxv d2VyKCk6Ci0tICAgICAgICAgICAgICAgIGRzZV9sZGlmLmRlbGV0ZShwYXJlbnRpZF9kbiwgIm5z TWF0Y2hpbmdSdWxlIiwgbXIpCi0tCi0gICAgIGxvZy5pbmZvKCJSdW4gaW5kZXgtY2hlY2sgd2l0 aG91dCAtLWZpeCAoc2hvdWxkIGRldGVjdCBhbGwgaXNzdWVzKSIpCi0gICAgIGFyZ3MgPSBGYWtl QXJncygpCi0gICAgIGFyZ3MuYmFja2VuZCA9ICJ1c2VyUm9vdCIKLUBAIC0xMTYwLDE2ICsxMTI5 LDYgQEAgZGVmIHRlc3RfaW5kZXhfY2hlY2tfZml4ZXNfbXVsdGlwbGVfaXNzdWVzKHRvcG9sb2d5 X3N0KToKLSAgICAgY25fdmFsdWUgPSBkc2VfbGRpZi5nZXQoYW5jZXN0b3JpZF9kbiwgImNuIiwg c2luZ2xlPVRydWUpCi0gICAgIGFzc2VydCBjbl92YWx1ZSBpcyBOb25lLCBmImFuY2VzdG9yaWQg Y29uZmlnIHNob3VsZCBiZSByZW1vdmVkLCBnb3Q6IHtjbl92YWx1ZX0iCi0gCi0tICAgICMgQ2hl Y2sgbWF0Y2hpbmcgcnVsZSBhZGRlZCBiYWNrCi0tICAgIG1hdGNoaW5nX3J1bGVzID0gZHNlX2xk aWYuZ2V0KHBhcmVudGlkX2RuLCAibnNNYXRjaGluZ1J1bGUiKQotLSAgICBmb3VuZF9pbnRfb3Jk ZXIgPSBGYWxzZQotLSAgICBpZiBtYXRjaGluZ19ydWxlczoKLS0gICAgICAgIGZvciBtciBpbiBt YXRjaGluZ19ydWxlczoKLS0gICAgICAgICAgICBpZiAiaW50ZWdlcm9yZGVyaW5nbWF0Y2giIGlu IG1yLmxvd2VyKCk6Ci0tICAgICAgICAgICAgICAgIGZvdW5kX2ludF9vcmRlciA9IFRydWUKLS0g ICAgICAgICAgICAgICAgYnJlYWsKLS0gICAgYXNzZXJ0IGZvdW5kX2ludF9vcmRlciwgZiJpbnRl Z2VyT3JkZXJpbmdNYXRjaCBzaG91bGQgYmUgcHJlc2VudCwgZ290OiB7bWF0Y2hpbmdfcnVsZXN9 IgotLQotICAgICBsb2cuaW5mbygiQWxsIGlzc3VlcyB2ZXJpZmllZCBhcyBmaXhlZCIpCi0gCi0g ICAgIGxvZy5pbmZvKCJSdW4gaW5kZXgtY2hlY2sgYWdhaW4gdG8gY29uZmlybSBhbGwgY2xlYXIi KQotZGlmZiAtLWdpdCBhL2xkYXAvc2VydmVycy9zbGFwZC91cGdyYWRlLmMgYi9sZGFwL3NlcnZl cnMvc2xhcGQvdXBncmFkZS5jCi1pbmRleCA2YjFiMDEyZGEuLjk1NTdlOTA2NiAxMDA2NDQKLS0t LSBhL2xkYXAvc2VydmVycy9zbGFwZC91cGdyYWRlLmMKLSsrKyBiL2xkYXAvc2VydmVycy9zbGFw ZC91cGdyYWRlLmMKLUBAIC01NTEsMTA3ICs1NTEsNiBAQCB1cGdyYWRlX3JlbW92ZV9hbmNlc3Rv cmlkX2luZGV4X2NvbmZpZyh2b2lkKQotICAgICByZXR1cm4gdXJlc3VsdDsKLSB9Ci0gCi0tLyoK LS0gKiBDaGVjayBpZiBwYXJlbnRpZC9hbmNlc3RvcmlkIGluZGV4ZXMgYXJlIG1pc3NpbmcgdGhl IGludGVnZXJPcmRlcmluZ01hdGNoCi0tICogbWF0Y2hpbmcgcnVsZS4KLS0gKgotLSAqIFRoaXMg ZnVuY3Rpb24gbG9ncyBhIHdhcm5pbmcgaWYgd2UgZGV0ZWN0IHRoaXMgY29uZGl0aW9uLCBhZHZp c2luZwotLSAqIHRoZSBhZG1pbmlzdHJhdG9yIHRvIHJlaW5kZXggdGhlIGFmZmVjdGVkIGF0dHJp YnV0ZXMuCi0tICovCi0tc3RhdGljIHVwZ3JhZGVfc3RhdHVzCi0tdXBncmFkZV9jaGVja19pZF9p bmRleF9tYXRjaGluZ19ydWxlKHZvaWQpCi0tewotLSAgICBzdHJ1Y3Qgc2xhcGlfcGJsb2NrICpw YiA9IHNsYXBpX3BibG9ja19uZXcoKTsKLS0gICAgU2xhcGlfRW50cnkgKipiYWNrZW5kcyA9IE5V TEw7Ci0tICAgIGNvbnN0IGNoYXIgKmJlX2Jhc2VfZG4gPSAiY249bGRibSBkYXRhYmFzZSxjbj1w bHVnaW5zLGNuPWNvbmZpZyI7Ci0tICAgIGNvbnN0IGNoYXIgKmJlX2ZpbHRlciA9ICIob2JqZWN0 Y2xhc3M9bnNCYWNrZW5kSW5zdGFuY2UpIjsKLS0gICAgY29uc3QgY2hhciAqYXR0cnNfdG9fY2hl Y2tbXSA9IHsicGFyZW50aWQiLCBOVUxMfTsKLS0gICAgdXBncmFkZV9zdGF0dXMgdXJlc3VsdCA9 IFVQR1JBREVfU1VDQ0VTUzsKLS0KLS0gICAgLyogU2VhcmNoIGZvciBhbGwgYmFja2VuZCBpbnN0 YW5jZXMgKi8KLS0gICAgc2xhcGlfc2VhcmNoX2ludGVybmFsX3NldF9wYigKLS0gICAgICAgICAg ICBwYiwgYmVfYmFzZV9kbiwKLS0gICAgICAgICAgICBMREFQX1NDT1BFX09ORUxFVkVMLAotLSAg ICAgICAgICAgIGJlX2ZpbHRlciwgTlVMTCwgMCwgTlVMTCwgTlVMTCwKLS0gICAgICAgICAgICBw bHVnaW5fZ2V0X2RlZmF1bHRfY29tcG9uZW50X2lkKCksIDApOwotLSAgICBzbGFwaV9zZWFyY2hf aW50ZXJuYWxfcGIocGIpOwotLSAgICBzbGFwaV9wYmxvY2tfZ2V0KHBiLCBTTEFQSV9QTFVHSU5f SU5UT1BfU0VBUkNIX0VOVFJJRVMsICZiYWNrZW5kcyk7Ci0tCi0tICAgIGlmIChiYWNrZW5kcykg ewotLSAgICAgICAgZm9yIChzaXplX3QgYmVfaWR4ID0gMDsgYmFja2VuZHNbYmVfaWR4XSAhPSBO VUxMOyBiZV9pZHgrKykgewotLSAgICAgICAgICAgIGNvbnN0IGNoYXIgKmJlX2RuID0gc2xhcGlf ZW50cnlfZ2V0X2RuX2NvbnN0KGJhY2tlbmRzW2JlX2lkeF0pOwotLSAgICAgICAgICAgIGNvbnN0 IGNoYXIgKmJlX25hbWUgPSBzbGFwaV9lbnRyeV9hdHRyX2dldF9yZWYoYmFja2VuZHNbYmVfaWR4 XSwgImNuIik7Ci0tICAgICAgICAgICAgaWYgKCFiZV9kbiB8fCAhYmVfbmFtZSkgewotLSAgICAg ICAgICAgICAgICBjb250aW51ZTsKLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgLyog Q2hlY2sgZWFjaCBhdHRyaWJ1dGUgdGhhdCBzaG91bGQgaGF2ZSBpbnRlZ2VyT3JkZXJpbmdNYXRj aCAqLwotLSAgICAgICAgICAgIGZvciAoc2l6ZV90IGF0dHJfaWR4ID0gMDsgYXR0cnNfdG9fY2hl Y2tbYXR0cl9pZHhdICE9IE5VTEw7IGF0dHJfaWR4KyspIHsKLS0gICAgICAgICAgICAgICAgY29u c3QgY2hhciAqYXR0cl9uYW1lID0gYXR0cnNfdG9fY2hlY2tbYXR0cl9pZHhdOwotLSAgICAgICAg ICAgICAgICBzdHJ1Y3Qgc2xhcGlfcGJsb2NrICppZHhfcGIgPSBzbGFwaV9wYmxvY2tfbmV3KCk7 Ci0tICAgICAgICAgICAgICAgIFNsYXBpX0VudHJ5ICoqaWR4X2VudHJpZXMgPSBOVUxMOwotLSAg ICAgICAgICAgICAgICBjaGFyICppZHhfZG4gPSBzbGFwaV9jcmVhdGVfZG5fc3RyaW5nKCJjbj0l cyxjbj1pbmRleCwlcyIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGF0dHJfbmFtZSwgYmVfZG4pOwotLSAgICAgICAgICAgICAgICBjaGFy ICppZHhfZmlsdGVyID0gIihvYmplY3RjbGFzcz1uc0luZGV4KSI7Ci0tICAgICAgICAgICAgICAg IFBSQm9vbCBoYXNfbWF0Y2hpbmdfcnVsZSA9IFBSX0ZBTFNFOwotLQotLSAgICAgICAgICAgICAg ICBpZiAoIWlkeF9kbikgewotLSAgICAgICAgICAgICAgICAgICAgc2xhcGlfcGJsb2NrX2Rlc3Ry b3koaWR4X3BiKTsKLS0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotLSAgICAgICAgICAg ICAgICB9Ci0tCi0tICAgICAgICAgICAgICAgIHNsYXBpX3NlYXJjaF9pbnRlcm5hbF9zZXRfcGIo Ci0tICAgICAgICAgICAgICAgICAgICAgICAgaWR4X3BiLCBpZHhfZG4sCi0tICAgICAgICAgICAg ICAgICAgICAgICAgTERBUF9TQ09QRV9CQVNFLAotLSAgICAgICAgICAgICAgICAgICAgICAgIGlk eF9maWx0ZXIsIE5VTEwsIDAsIE5VTEwsIE5VTEwsCi0tICAgICAgICAgICAgICAgICAgICAgICAg cGx1Z2luX2dldF9kZWZhdWx0X2NvbXBvbmVudF9pZCgpLCAwKTsKLS0gICAgICAgICAgICAgICAg c2xhcGlfc2VhcmNoX2ludGVybmFsX3BiKGlkeF9wYik7Ci0tICAgICAgICAgICAgICAgIHNsYXBp X3BibG9ja19nZXQoaWR4X3BiLCBTTEFQSV9QTFVHSU5fSU5UT1BfU0VBUkNIX0VOVFJJRVMsICZp ZHhfZW50cmllcyk7Ci0tCi0tICAgICAgICAgICAgICAgIGlmIChpZHhfZW50cmllcyAmJiBpZHhf ZW50cmllc1swXSkgewotLSAgICAgICAgICAgICAgICAgICAgLyogSW5kZXggZXhpc3RzLCBjaGVj ayBpZiBpdCBoYXMgaW50ZWdlck9yZGVyaW5nTWF0Y2ggKi8KLS0gICAgICAgICAgICAgICAgICAg IFNsYXBpX0F0dHIgKm1yX2F0dHIgPSBOVUxMOwotLSAgICAgICAgICAgICAgICAgICAgaWYgKHNs YXBpX2VudHJ5X2F0dHJfZmluZChpZHhfZW50cmllc1swXSwgIm5zTWF0Y2hpbmdSdWxlIiwgJm1y X2F0dHIpID09IDApIHsKLS0gICAgICAgICAgICAgICAgICAgICAgICBTbGFwaV9WYWx1ZSAqc3Zh bCA9IE5VTEw7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgaW50IGlkeDsKLS0gICAgICAgICAg ICAgICAgICAgICAgICBmb3IgKGlkeCA9IHNsYXBpX2F0dHJfZmlyc3RfdmFsdWUobXJfYXR0ciwg JnN2YWwpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWR4ICE9IC0xOwotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWR4ID0gc2xhcGlfYXR0cl9uZXh0X3ZhbHVlKG1yX2F0 dHIsIGlkeCwgJnN2YWwpKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0 cnVjdCBiZXJ2YWwgKmJ2YWwgPSBzbGFwaV92YWx1ZV9nZXRfYmVydmFsKHN2YWwpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiAoYnZhbCAmJiBidmFsLT5idl92YWwgJiYKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmNhc2VjbXAoYnZhbC0+YnZfdmFsLCAiaW50 ZWdlck9yZGVyaW5nTWF0Y2giKSA9PSAwKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBoYXNfbWF0Y2hpbmdfcnVsZSA9IFBSX1RSVUU7Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBicmVhazsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAg ICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgIH0KLS0KLS0gICAgICAg ICAgICAgICAgICAgIGlmICghaGFzX21hdGNoaW5nX3J1bGUpIHsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAvKiBJbmRleCBleGlzdHMgYnV0IGRvZXNuJ3QgaGF2ZSBpbnRlZ2VyT3JkZXJpbmdN YXRjaCwgbG9nIGEgd2FybmluZyAqLwotLSAgICAgICAgICAgICAgICAgICAgICAgIHNsYXBpX2xv Z19lcnIoU0xBUElfTE9HX0VSUiwgInVwZ3JhZGVfY2hlY2tfaWRfaW5kZXhfbWF0Y2hpbmdfcnVs ZSIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW5kZXggJyVzJyBpbiBiYWNr ZW5kICclcycgaXMgbWlzc2luZyAnbnNNYXRjaGluZ1J1bGU6IGludGVnZXJPcmRlcmluZ01hdGNo Jy4gIgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkluY29ycmVjdGx5IGNvbmZp Z3VyZWQgc3lzdGVtIGluZGV4ZXMgY2FuIGxlYWQgdG8gcG9vciBzZWFyY2ggcGVyZm9ybWFuY2Us IHJlcGxpY2F0aW9uIGlzc3VlcywgYW5kIG90aGVyIG9wZXJhdGlvbmFsIHByb2JsZW1zLiAiCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVG8gZml4IHRoaXMsIGFkZCB0aGUgbWF0 Y2hpbmcgcnVsZSBhbmQgcmVpbmRleDogIgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgImRzY29uZiA8aW5zdGFuY2U+IGJhY2tlbmQgaW5kZXggc2V0IC0tYWRkLW1yIGludGVnZXJP cmRlcmluZ01hdGNoIC0tYXR0ciAlcyAlcyAmJiAiCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiZHNjb25mIDxpbnN0YW5jZT4gYmFja2VuZCBpbmRleCByZWluZGV4IC0tYXR0ciAl cyAlcy4gIgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIldBUk5JTkc6IFJlaW5k ZXhpbmcgY2FuIGJlIHJlc291cmNlLWludGVuc2l2ZSBhbmQgbWF5IGltcGFjdCBzZXJ2ZXIgcGVy Zm9ybWFuY2Ugb24gYSBsaXZlIHN5c3RlbS4gIgotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIkNvbnNpZGVyIHNjaGVkdWxpbmcgcmVpbmRleGluZyBkdXJpbmcgbWFpbnRlbmFuY2Ug d2luZG93cyBvciBwZXJpb2RzIG9mIGxvdyBhY3Rpdml0eS5cbiIsCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhdHRyX25hbWUsIGJlX25hbWUsIGF0dHJfbmFtZSwgYmVfbmFtZSwg YXR0cl9uYW1lLCBiZV9uYW1lKTsKLS0gICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAg ICAgICAgfQotLQotLSAgICAgICAgICAgICAgICBzbGFwaV9jaF9mcmVlX3N0cmluZygmaWR4X2Ru KTsKLS0gICAgICAgICAgICAgICAgc2xhcGlfZnJlZV9zZWFyY2hfcmVzdWx0c19pbnRlcm5hbChp ZHhfcGIpOwotLSAgICAgICAgICAgICAgICBzbGFwaV9wYmxvY2tfZGVzdHJveShpZHhfcGIpOwot LSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0gICAgfQotLQotLSAgICBzbGFwaV9mcmVlX3Nl YXJjaF9yZXN1bHRzX2ludGVybmFsKHBiKTsKLS0gICAgc2xhcGlfcGJsb2NrX2Rlc3Ryb3kocGIp OwotLQotLSAgICByZXR1cm4gdXJlc3VsdDsKLS19Ci0gCi0gLyoKLSAgKiBVcGdyYWRlIHRoZSBi YXNlIGNvbmZpZyBvZiB0aGUgUEFNIFBUQSBwbHVnaW4uCi1AQCAtODc5LDEwICs3NzgsNiBAQCB1 cGdyYWRlX3NlcnZlcih2b2lkKQotICAgICAgICAgcmV0dXJuIFVQR1JBREVfRkFJTFVSRTsKLSAg ICAgfQotIAotLSAgICBpZiAodXBncmFkZV9jaGVja19pZF9pbmRleF9tYXRjaGluZ19ydWxlKCkg IT0gVVBHUkFERV9TVUNDRVNTKSB7Ci0tICAgICAgICByZXR1cm4gVVBHUkFERV9GQUlMVVJFOwot LSAgICB9Ci0tCi0gICAgIHJldHVybiBVUEdSQURFX1NVQ0NFU1M7Ci0gfQotIAotZGlmZiAtLWdp dCBhL3JwbS8zODktZHMtYmFzZS5zcGVjLmluIGIvcnBtLzM4OS1kcy1iYXNlLnNwZWMuaW4KLWlu ZGV4IDBlMGUyODI4NS4uMzcwZTNhYmQ0IDEwMDY0NAotLS0tIGEvcnBtLzM4OS1kcy1iYXNlLnNw ZWMuaW4KLSsrKyBiL3JwbS8zODktZHMtYmFzZS5zcGVjLmluCi1AQCAtNjUwLDkgKzY1MCw2IEBA IGZvciBkaXIgaW4gIiRpbnN0YmFzZSIvc2xhcGQtKiA7IGRvCi0gICAgIGVsc2UKLSAgICAgICAg ZWNobyAiaW5zdGFuY2UgJGluc3QgaXMgbm90IHJ1bm5pbmciID4+ICIkb3V0cHV0IiAyPiYxIHx8 IDoKLSAgICAgZmkKLS0gICAgIyBSdW4gaW5kZXgtY2hlY2sgb24gYWxsIGluc3RhbmNlcyAocnVu bmluZyBvciBub3QpCi0tICAgICMgVGhpcyBmaXhlcyBpbmRleCBvcmRlcmluZyBtaXNtYXRjaGVz IGZyb20gb2xkZXIgdmVyc2lvbnMKLS0gICAgZHNjdGwgIiRpbnN0X25hbWUiIGluZGV4LWNoZWNr IC0tZml4ID4+ICIkb3V0cHV0MiIgMj4mMSB8fCA6Ci0gICAgIG5pbnN0PSQoKG5pbnN0ICsgMSkp Ci0gZG9uZQotIAotZGlmZiAtLWdpdCBhL3NyYy9saWIzODkvbGliMzg5L2JhY2tlbmQucHkgYi9z cmMvbGliMzg5L2xpYjM4OS9iYWNrZW5kLnB5Ci1pbmRleCBmM2RiZTdjOTIuLjZjOGNiYzAxOCAx MDA2NDQKLS0tLSBhL3NyYy9saWIzODkvbGliMzg5L2JhY2tlbmQucHkKLSsrKyBiL3NyYy9saWIz ODkvbGliMzg5L2JhY2tlbmQucHkKLUBAIC02NDcsOSArNjQ3LDEwIEBAIGNsYXNzIEJhY2tlbmQo RFNMZGFwT2JqZWN0KToKLSAgICAgICAgICMgRGVmYXVsdCBzeXN0ZW0gaW5kZXhlcyB0YWtlbiBm cm9tIGxkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vaW5zdGFuY2UuYwotICAgICAgICAgIyBO b3RlOiBlbnRyeXJkbiBhbmQgYW5jZXN0b3JpZCBhcmUgaW50ZXJuYWwgc3lzdGVtIGluZGV4ZXMg dGhhdCBhcmUgbm90Ci0gICAgICAgICAjIGV4cG9zZWQgaW4gY249Y29uZmlnIC0gdGhleSBhcmUg bWFuYWdlZCBpbnRlcm5hbGx5IGJ5IHRoZSBzZXJ2ZXIuCi0tICAgICAgICAjIE9ubHkgcGFyZW50 aWQgaGFzIGEgRFNFIGNvbmZpZyBlbnRyeSAoZm9yIHRoZSBpbnRlZ2VyT3JkZXJpbmdNYXRjaCBy dWxlKS4KLSsgICAgICAgICMgcGFyZW50aWQgd29ya3MgY29ycmVjdGx5IHdpdGggYm90aCBsZXhp Y29ncmFwaGljIGFuZCBpbnRlZ2VyIG9yZGVyaW5nLAotKyAgICAgICAgIyBzbyBpbnRlZ2VyT3Jk ZXJpbmdNYXRjaCBpcyBub3QgcmVxdWlyZWQuCi0gICAgICAgICBleHBlY3RlZF9zeXN0ZW1faW5k ZXhlcyA9IHsKLS0gICAgICAgICAgICAncGFyZW50aWQnOiB7J3R5cGVzJzogWydlcSddLCAnbWF0 Y2hpbmdfcnVsZSc6ICdpbnRlZ2VyT3JkZXJpbmdNYXRjaCd9LAotKyAgICAgICAgICAgICdwYXJl bnRpZCc6IHsndHlwZXMnOiBbJ2VxJ10sICdtYXRjaGluZ19ydWxlJzogTm9uZX0sCi0gICAgICAg ICAgICAgJ29iamVjdENsYXNzJzogeyd0eXBlcyc6IFsnZXEnXSwgJ21hdGNoaW5nX3J1bGUnOiBO b25lfSwKLSAgICAgICAgICAgICAnYWNpJzogeyd0eXBlcyc6IFsncHJlcyddLCAnbWF0Y2hpbmdf cnVsZSc6IE5vbmV9LAotICAgICAgICAgICAgICduc2NwRW50cnlETic6IHsndHlwZXMnOiBbJ2Vx J10sICdtYXRjaGluZ19ydWxlJzogTm9uZX0sCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYjM4OS9saWIz ODkvY2xpX2N0bC9kYnRhc2tzLnB5IGIvc3JjL2xpYjM4OS9saWIzODkvY2xpX2N0bC9kYnRhc2tz LnB5Ci1pbmRleCBjZDk2Y2RhZjcuLmIwMmRlMjAzZiAxMDA2NDQKLS0tLSBhL3NyYy9saWIzODkv bGliMzg5L2NsaV9jdGwvZGJ0YXNrcy5weQotKysrIGIvc3JjL2xpYjM4OS9saWIzODkvY2xpX2N0 bC9kYnRhc2tzLnB5Ci1AQCAtMTAsNiArMTAsNyBAQAotIGltcG9ydCBnbG9iCi0gaW1wb3J0IG9z Ci0gaW1wb3J0IHJlCi0raW1wb3J0IHNpZ25hbAotIGltcG9ydCBzdWJwcm9jZXNzCi0gZnJvbSBl bnVtIGltcG9ydCBFbnVtCi0gZnJvbSBsaWIzODkuX2NvbnN0YW50cyBpbXBvcnQgVGFza1dhcm5p bmcKLUBAIC0yNjMsNDUgKzI2NCw1MyBAQCBkZWYgX2NoZWNrX2Rpc2tfb3JkZXJpbmcoZGJfZGly LCBiYWNrZW5kLCBpbmRleF9uYW1lLCBkYnNjYW5fcGF0aCwgaXNfbWRiLCBsb2cpOgotICAgICAg ICAgaWYgbm90IGluZGV4X2ZpbGU6Ci0gICAgICAgICAgICAgcmV0dXJuIEluZGV4T3JkZXJpbmcu VU5LTk9XTgotIAotKyAgICAjIE9ubHkgcmVhZCB0aGUgZmlyc3QgMTAwIGxpbmVzIGZyb20gZGJz Y2FuIHRvIGF2b2lkIHNjYW5uaW5nIHRoZQotKyAgICAjIGVudGlyZSBpbmRleCAod2hpY2ggY2Fu IHRha2UgaG91cnMgb24gbGFyZ2UgZGF0YWJhc2VzKS4KLSAgICAgdHJ5OgotLSAgICAgICAgcmVz dWx0ID0gc3VicHJvY2Vzcy5ydW4oCi0rICAgICAgICBwcm9jID0gc3VicHJvY2Vzcy5Qb3BlbigK LSAgICAgICAgICAgICBbZGJzY2FuX3BhdGgsICItZiIsIGluZGV4X2ZpbGVdLAotICAgICAgICAg ICAgIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsCi0gICAgICAgICAgICAgc3RkZXJyPXN1YnByb2Nl c3MuUElQRSwKLSAgICAgICAgICAgICB1bml2ZXJzYWxfbmV3bGluZXM9VHJ1ZSwKLS0gICAgICAg ICAgICB0aW1lb3V0PTYwLAotICAgICAgICAgKQotIAotLSAgICAgICAgaWYgcmVzdWx0LnJldHVy bmNvZGUgIT0gMDoKLS0gICAgICAgICAgICBsb2cud2FybmluZygiICBkYnNjYW4gcmV0dXJuZWQg bm9uLXplcm8gZXhpdCBjb2RlIGZvciAlcyIsIGluZGV4X2ZpbGUpCi0tICAgICAgICAgICAgcmV0 dXJuIEluZGV4T3JkZXJpbmcuVU5LTk9XTgotLQotLSAgICAgICAgIyBQYXJzZSBrZXlzIGZyb20g ZGJzY2FuIG91dHB1dAotICAgICAgICAga2V5cyA9IFtdCi0tICAgICAgICBmb3IgbGluZSBpbiBy ZXN1bHQuc3Rkb3V0LnNwbGl0KCJcbiIpOgotKyAgICAgICAgbGluZV9jb3VudCA9IDAKLSsgICAg ICAgIGFzc2VydCBwcm9jLnN0ZG91dCBpcyBub3QgTm9uZQotKyAgICAgICAgZm9yIGxpbmUgaW4g cHJvYy5zdGRvdXQ6Ci0rICAgICAgICAgICAgbGluZV9jb3VudCArPSAxCi0rICAgICAgICAgICAg aWYgbGluZV9jb3VudCA+IDEwMDoKLSsgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAg ICBsaW5lID0gbGluZS5zdHJpcCgpCi0gICAgICAgICAgICAgaWYgbGluZS5zdGFydHN3aXRoKCI9 Iik6Ci0gICAgICAgICAgICAgICAgIG1hdGNoID0gcmUubWF0Y2gociJePShcZCspIiwgbGluZSkK LSAgICAgICAgICAgICAgICAgaWYgbWF0Y2g6Ci0gICAgICAgICAgICAgICAgICAgICBrZXlzLmFw cGVuZChpbnQobWF0Y2guZ3JvdXAoMSkpKQotIAotKyAgICAgICAgcHJvYy50ZXJtaW5hdGUoKQot KyAgICAgICAgdHJ5OgotKyAgICAgICAgICAgIHByb2Mud2FpdCh0aW1lb3V0PTUpCi0rICAgICAg ICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDoKLSsgICAgICAgICAgICBwcm9jLmtp bGwoKQotKyAgICAgICAgICAgIHByb2Mud2FpdCgpCi0rCi0rICAgICAgICBpZiBwcm9jLnJldHVy bmNvZGUgbm90IGluICgwLCAtc2lnbmFsLlNJR1RFUk0pOgotKyAgICAgICAgICAgIGxvZy53YXJu aW5nKCIgIGRic2NhbiByZXR1cm5lZCBub24temVybyBleGl0IGNvZGUgZm9yICVzIiwgaW5kZXhf ZmlsZSkKLSsgICAgICAgICAgICByZXR1cm4gSW5kZXhPcmRlcmluZy5VTktOT1dOCi0rCi0gICAg ICAgICBpZiBsZW4oa2V5cykgPCAyOgotICAgICAgICAgICAgIHJldHVybiBJbmRleE9yZGVyaW5n LlVOS05PV04KLSAKLSAgICAgICAgICMgQ2hlY2sgaWYga2V5cyBhcmUgaW4gaW50ZWdlciBvcmRl ciBieSBsb29raW5nIGZvciBkZWNyZWFzaW5nIG51bWVyaWMgdmFsdWVzCi0gICAgICAgICAjICh3 aGljaCB3b3VsZCBpbmRpY2F0ZSBsZXhpY29ncmFwaGljIG9yZGVyaW5nLCBlLmcuLCAiMyIgPCAi MzAiIDwgIjQiKQotICAgICAgICAgcHJldl9pZCA9IGtleXNbMF0KLS0gICAgICAgIGZvciBpIGlu IHJhbmdlKDEsIG1pbihsZW4oa2V5cyksIDEwMCkpOgotLSAgICAgICAgICAgIGN1cnJlbnRfaWQg PSBrZXlzW2ldCi0rICAgICAgICBmb3IgY3VycmVudF9pZCBpbiBrZXlzWzE6XToKLSAgICAgICAg ICAgICBpZiBwcmV2X2lkID4gY3VycmVudF9pZDoKLSAgICAgICAgICAgICAgICAgcmV0dXJuIElu ZGV4T3JkZXJpbmcuTEVYSUNPR1JBUEhJQwotICAgICAgICAgICAgIHByZXZfaWQgPSBjdXJyZW50 X2lkCi0gCi0gICAgICAgICByZXR1cm4gSW5kZXhPcmRlcmluZy5JTlRFR0VSCi0gCi0tICAgIGV4 Y2VwdCBzdWJwcm9jZXNzLlRpbWVvdXRFeHBpcmVkOgotLSAgICAgICAgbG9nLndhcm5pbmcoIiAg ZGJzY2FuIHRpbWVkIG91dCBmb3IgJXMiLCBpbmRleF9maWxlKQotLSAgICAgICAgcmV0dXJuIElu ZGV4T3JkZXJpbmcuVU5LTk9XTgotICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgotICAgICAgICAg bG9nLndhcm5pbmcoIiAgRXJyb3IgcnVubmluZyBkYnNjYW46ICVzIiwgZSkKLSAgICAgICAgIHJl dHVybiBJbmRleE9yZGVyaW5nLlVOS05PV04KLUBAIC0zNzUsOCArMzg0LDcgQEAgZGVmIGRidGFz a3NfaW5kZXhfY2hlY2soaW5zdCwgbG9nLCBhcmdzKToKLSAKLSAgICAgIyBUcmFjayBhbGwgaXNz dWVzIGZvdW5kCi0gICAgIGFsbF9vayA9IFRydWUKLS0gICAgbWlzbWF0Y2hlcyA9IFtdICAjIChi YWNrZW5kLCBpbmRleF9uYW1lKSB0dXBsZXMgbmVlZGluZyByZWluZGV4Ci0tICAgIG1pc3Npbmdf bWF0Y2hpbmdfcnVsZXMgPSBbXSAgIyAoYmFja2VuZCwgaW5kZXhfbmFtZSkgdHVwbGVzIG1pc3Np bmcgaW50ZWdlck9yZGVyaW5nTWF0Y2gKLSsgICAgY29uZmlnX2ZpeGVzID0gW10gICMgKGJhY2tl bmQsIGluZGV4X25hbWUsIGFjdGlvbikgdHVwbGVzOiBhY3Rpb24gaXMgImFkZF9tciIgb3IgInJl bW92ZV9tciIKLSAgICAgc2Nhbl9saW1pdHNfdG9fcmVtb3ZlID0gW10gICMgKGJhY2tlbmQsIGlu ZGV4X25hbWUpIHR1cGxlcyB3aXRoIG5zSW5kZXhJRExpc3RTY2FuTGltaXQKLSAgICAgYW5jZXN0 b3JpZF9jb25maWdzX3RvX3JlbW92ZSA9IFtdICAjIGJhY2tlbmQgbmFtZXMgd2l0aCBhbmNlc3Rv cmlkIGNvbmZpZyBlbnRyaWVzCi0gICAgIHJlbW92ZV9hbmNlc3RvcmlkX2Zyb21fZGVmYXVsdHMg PSBGYWxzZSAgIyBGbGFnIHRvIHJlbW92ZSBmcm9tIGNuPWRlZmF1bHQgaW5kZXhlcwotQEAgLTQw OSwxMyArNDE3LDYgQEAgZGVmIGRidGFza3NfaW5kZXhfY2hlY2soaW5zdCwgbG9nLCBhcmdzKToK LSAKLSAgICAgICAgICAgICBpZiBkaXNrX29yZGVyaW5nID09IEluZGV4T3JkZXJpbmcuVU5LTk9X TjoKLSAgICAgICAgICAgICAgICAgbG9nLmluZm8oIiAgJXMgLSBjb3VsZCBub3QgZGV0ZXJtaW5l IGRpc2sgb3JkZXJpbmcsIHNraXBwaW5nIiwgaW5kZXhfbmFtZSkKLS0gICAgICAgICAgICAgICAg IyBGb3IgcGFyZW50aWQsIHN0aWxsIGNoZWNrIGlmIG1hdGNoaW5nIHJ1bGUgaXMgbWlzc2luZwot LSAgICAgICAgICAgICAgICBpZiBpbmRleF9uYW1lID09ICJwYXJlbnRpZCI6Ci0tICAgICAgICAg ICAgICAgICAgICBjb25maWdfaGFzX2ludF9vcmRlciA9IF9oYXNfaW50ZWdlcl9vcmRlcmluZ19t YXRjaChkc2VfbGRpZiwgYmFja2VuZCwgaW5kZXhfbmFtZSkKLS0gICAgICAgICAgICAgICAgICAg IGlmIG5vdCBjb25maWdfaGFzX2ludF9vcmRlcjoKLS0gICAgICAgICAgICAgICAgICAgICAgICBs b2cud2FybmluZygiICAlcyAtIG1pc3NpbmcgaW50ZWdlck9yZGVyaW5nTWF0Y2ggaW4gY29uZmln IiwgaW5kZXhfbmFtZSkKLS0gICAgICAgICAgICAgICAgICAgICAgICBtaXNzaW5nX21hdGNoaW5n X3J1bGVzLmFwcGVuZCgoYmFja2VuZCwgaW5kZXhfbmFtZSkpCi0tICAgICAgICAgICAgICAgICAg ICAgICAgYWxsX29rID0gRmFsc2UKLSAgICAgICAgICAgICAgICAgY29udGludWUKLSAKLSAgICAg ICAgICAgICBjb25maWdfaGFzX2ludF9vcmRlciA9IF9oYXNfaW50ZWdlcl9vcmRlcmluZ19tYXRj aChkc2VfbGRpZiwgYmFja2VuZCwgaW5kZXhfbmFtZSkKLUBAIC00MjMsMTggKzQyNCwxNSBAQCBk ZWYgZGJ0YXNrc19pbmRleF9jaGVjayhpbnN0LCBsb2csIGFyZ3MpOgotICAgICAgICAgICAgIGxv Zy5pbmZvKCIgICVzIC0gY29uZmlnOiAlcywgZGlzazogJXMiLAotICAgICAgICAgICAgICAgICAg ICAgIGluZGV4X25hbWUsIGNvbmZpZ19kZXNjLCBkaXNrX29yZGVyaW5nLnZhbHVlKQotIAotLSAg ICAgICAgICAgICMgRm9yIHBhcmVudGlkLCB0aGUgZGVzaXJlZCBzdGF0ZSBpcyBhbHdheXMgaW50 ZWdlciBvcmRlcmluZwotKyAgICAgICAgICAgICMgQm90aCBvcmRlcmluZ3MgYXJlIHZhbGlkIGZv ciBwYXJlbnRpZCwgYnV0IGNvbmZpZyBtdXN0IG1hdGNoIGRpc2suCi0gICAgICAgICAgICAgaWYg aW5kZXhfbmFtZSA9PSAicGFyZW50aWQiOgotLSAgICAgICAgICAgICAgICBpZiBub3QgY29uZmln X2hhc19pbnRfb3JkZXI6Ci0tICAgICAgICAgICAgICAgICAgICBsb2cud2FybmluZygiICAlcyAt IG1pc3NpbmcgaW50ZWdlck9yZGVyaW5nTWF0Y2ggaW4gY29uZmlnIiwgaW5kZXhfbmFtZSkKLS0g ICAgICAgICAgICAgICAgICAgIGlmIChiYWNrZW5kLCBpbmRleF9uYW1lKSBub3QgaW4gbWlzc2lu Z19tYXRjaGluZ19ydWxlczoKLS0gICAgICAgICAgICAgICAgICAgICAgICBtaXNzaW5nX21hdGNo aW5nX3J1bGVzLmFwcGVuZCgoYmFja2VuZCwgaW5kZXhfbmFtZSkpCi0rICAgICAgICAgICAgICAg IGlmIGNvbmZpZ19oYXNfaW50X29yZGVyIGFuZCBkaXNrX29yZGVyaW5nID09IEluZGV4T3JkZXJp bmcuTEVYSUNPR1JBUEhJQzoKLSsgICAgICAgICAgICAgICAgICAgIGxvZy53YXJuaW5nKCIgICVz IC0gTUlTTUFUQ0g6IGNvbmZpZyBoYXMgaW50ZWdlck9yZGVyaW5nTWF0Y2ggYnV0IGRpc2sgaXMg bGV4aWNvZ3JhcGhpYyIsIGluZGV4X25hbWUpCi0rICAgICAgICAgICAgICAgICAgICBjb25maWdf Zml4ZXMuYXBwZW5kKChiYWNrZW5kLCBpbmRleF9uYW1lLCAicmVtb3ZlX21yIikpCi0gICAgICAg ICAgICAgICAgICAgICBhbGxfb2sgPSBGYWxzZQotLQotLSAgICAgICAgICAgICAgICBpZiBkaXNr X29yZGVyaW5nID09IEluZGV4T3JkZXJpbmcuTEVYSUNPR1JBUEhJQzoKLS0gICAgICAgICAgICAg ICAgICAgIGxvZy53YXJuaW5nKCIgICVzIC0gZGlzayBvcmRlcmluZyBpcyBsZXhpY29ncmFwaGlj LCBuZWVkcyByZWluZGV4IiwgaW5kZXhfbmFtZSkKLS0gICAgICAgICAgICAgICAgICAgIGlmIChi YWNrZW5kLCBpbmRleF9uYW1lKSBub3QgaW4gbWlzbWF0Y2hlczoKLS0gICAgICAgICAgICAgICAg ICAgICAgICBtaXNtYXRjaGVzLmFwcGVuZCgoYmFja2VuZCwgaW5kZXhfbmFtZSkpCi0rICAgICAg ICAgICAgICAgIGVsaWYgbm90IGNvbmZpZ19oYXNfaW50X29yZGVyIGFuZCBkaXNrX29yZGVyaW5n ID09IEluZGV4T3JkZXJpbmcuSU5URUdFUjoKLSsgICAgICAgICAgICAgICAgICAgIGxvZy53YXJu aW5nKCIgICVzIC0gTUlTTUFUQ0g6IGNvbmZpZyBpcyBsZXhpY29ncmFwaGljIGJ1dCBkaXNrIGhh cyBpbnRlZ2VyIG9yZGVyaW5nIiwgaW5kZXhfbmFtZSkKLSsgICAgICAgICAgICAgICAgICAgIGNv bmZpZ19maXhlcy5hcHBlbmQoKGJhY2tlbmQsIGluZGV4X25hbWUsICJhZGRfbXIiKSkKLSAgICAg ICAgICAgICAgICAgICAgIGFsbF9vayA9IEZhbHNlCi0gCi0gICAgICMgSGFuZGxlIGlzc3Vlcwot QEAgLTQ4MCwyNiArNDc4LDI3IEBAIGRlZiBkYnRhc2tzX2luZGV4X2NoZWNrKGluc3QsIGxvZywg YXJncyk6Ci0gICAgICAgICAgICAgICAgICAgICBsb2cuZXJyb3IoIiAgRmFpbGVkIHRvIHJlbW92 ZSBhbmNlc3RvcmlkIGNvbmZpZyBmcm9tIGJhY2tlbmQgJXM6ICVzIiwgYmFja2VuZCwgZSkKLSAg ICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQotIAotLSAgICAgICAgICAgICMgQWRkIG1p c3NpbmcgbWF0Y2hpbmcgcnVsZXMgdG8gZHNlLmxkaWYKLS0gICAgICAgICAgICBmb3IgYmFja2Vu ZCwgaW5kZXhfbmFtZSBpbiBtaXNzaW5nX21hdGNoaW5nX3J1bGVzOgotKyAgICAgICAgICAgICMg Rml4IGNvbmZpZy12cy1kaXNrIG9yZGVyaW5nIG1pc21hdGNoZXMgYnkgYWRqdXN0aW5nIGNvbmZp ZyB0byBtYXRjaCBkaXNrCi0rICAgICAgICAgICAgZm9yIGJhY2tlbmQsIGluZGV4X25hbWUsIGFj dGlvbiBpbiBjb25maWdfZml4ZXM6Ci0gICAgICAgICAgICAgICAgIGluZGV4X2RuID0gImNuPXt9 LGNuPWluZGV4LGNuPXt9LGNuPWxkYm0gZGF0YWJhc2UsY249cGx1Z2lucyxjbj1jb25maWciLmZv cm1hdCgKLSAgICAgICAgICAgICAgICAgICAgIGluZGV4X25hbWUsIGJhY2tlbmQKLSAgICAgICAg ICAgICAgICAgKQotLSAgICAgICAgICAgICAgICBsb2cuaW5mbygiICBBZGRpbmcgaW50ZWdlck9y ZGVyaW5nTWF0Y2ggdG8gJXMgaW4gYmFja2VuZCAlcy4uLiIsIGluZGV4X25hbWUsIGJhY2tlbmQp Ci0tICAgICAgICAgICAgICAgIHRyeToKLS0gICAgICAgICAgICAgICAgICAgIGRzZV9sZGlmLmFk ZChpbmRleF9kbiwgIm5zTWF0Y2hpbmdSdWxlIiwgImludGVnZXJPcmRlcmluZ01hdGNoIikKLS0g ICAgICAgICAgICAgICAgICAgIGxvZy5pbmZvKCIgIFVwZGF0ZWQgZHNlLmxkaWYgd2l0aCBpbnRl Z2VyT3JkZXJpbmdNYXRjaCBmb3IgJXMiLCBpbmRleF9uYW1lKQotLSAgICAgICAgICAgICAgICBl eGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0tICAgICAgICAgICAgICAgICAgICBsb2cuZXJyb3IoIiAg RmFpbGVkIHRvIHVwZGF0ZSBkc2UubGRpZiBmb3IgJXM6ICVzIiwgaW5kZXhfbmFtZSwgZSkKLS0g ICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQotLQotLSAgICAgICAgICAgICMgUmVpbmRl eCBpbmRleGVzIHdpdGggZGlzayBvcmRlcmluZyBpc3N1ZXMKLS0gICAgICAgICAgICBmb3IgYmFj a2VuZCwgaW5kZXhfbmFtZSBpbiBtaXNtYXRjaGVzOgotLSAgICAgICAgICAgICAgICBsb2cuaW5m bygiICBSZWluZGV4aW5nICVzIGluIGJhY2tlbmQgJXMuLi4iLCBpbmRleF9uYW1lLCBiYWNrZW5k KQotLSAgICAgICAgICAgICAgICBpZiBub3QgaW5zdC5kYjJpbmRleChiZW5hbWU9YmFja2VuZCwg YXR0cnM9W2luZGV4X25hbWVdKToKLS0gICAgICAgICAgICAgICAgICAgIGxvZy5lcnJvcigiICBG YWlsZWQgdG8gcmVpbmRleCAlcyIsIGluZGV4X25hbWUpCi0tICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gRmFsc2UKLS0gICAgICAgICAgICAgICAgbG9nLmluZm8oIiAgUmVpbmRleCBvZiAlcyBj b21wbGV0ZWQgc3VjY2Vzc2Z1bGx5IiwgaW5kZXhfbmFtZSkKLSsgICAgICAgICAgICAgICAgaWYg YWN0aW9uID09ICJhZGRfbXIiOgotKyAgICAgICAgICAgICAgICAgICAgbG9nLmluZm8oIiAgQWRk aW5nIGludGVnZXJPcmRlcmluZ01hdGNoIHRvICVzIGluIGJhY2tlbmQgJXMuLi4iLCBpbmRleF9u YW1lLCBiYWNrZW5kKQotKyAgICAgICAgICAgICAgICAgICAgdHJ5OgotKyAgICAgICAgICAgICAg ICAgICAgICAgIGRzZV9sZGlmLmFkZChpbmRleF9kbiwgIm5zTWF0Y2hpbmdSdWxlIiwgImludGVn ZXJPcmRlcmluZ01hdGNoIikKLSsgICAgICAgICAgICAgICAgICAgICAgICBsb2cuaW5mbygiICBV cGRhdGVkIGRzZS5sZGlmIHdpdGggaW50ZWdlck9yZGVyaW5nTWF0Y2ggZm9yICVzIiwgaW5kZXhf bmFtZSkKLSsgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSsgICAg ICAgICAgICAgICAgICAgICAgICBsb2cuZXJyb3IoIiAgRmFpbGVkIHRvIHVwZGF0ZSBkc2UubGRp ZiBmb3IgJXM6ICVzIiwgaW5kZXhfbmFtZSwgZSkKLSsgICAgICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gRmFsc2UKLSsgICAgICAgICAgICAgICAgZWxpZiBhY3Rpb24gPT0gInJlbW92ZV9tciI6 Ci0rICAgICAgICAgICAgICAgICAgICBsb2cuaW5mbygiICBSZW1vdmluZyBpbnRlZ2VyT3JkZXJp bmdNYXRjaCBmcm9tICVzIGluIGJhY2tlbmQgJXMuLi4iLCBpbmRleF9uYW1lLCBiYWNrZW5kKQot KyAgICAgICAgICAgICAgICAgICAgdHJ5OgotKyAgICAgICAgICAgICAgICAgICAgICAgIGRzZV9s ZGlmLmRlbGV0ZShpbmRleF9kbiwgIm5zTWF0Y2hpbmdSdWxlIiwgImludGVnZXJPcmRlcmluZ01h dGNoIikKLSsgICAgICAgICAgICAgICAgICAgICAgICBsb2cuaW5mbygiICBSZW1vdmVkIGludGVn ZXJPcmRlcmluZ01hdGNoIGZyb20gJXMiLCBpbmRleF9uYW1lKQotKyAgICAgICAgICAgICAgICAg ICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZy5l cnJvcigiICBGYWlsZWQgdG8gcmVtb3ZlIGludGVnZXJPcmRlcmluZ01hdGNoIGZyb20gJXM6ICVz IiwgaW5kZXhfbmFtZSwgZSkKLSsgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UK LSAKLSAgICAgICAgICAgICBsb2cuaW5mbygiQWxsIGlzc3VlcyBmaXhlZCIpCi0gICAgICAgICAg ICAgcmV0dXJuIFRydWUKLUBAIC01NjMsNSArNTYyLDUgQEAgZGVmIGNyZWF0ZV9wYXJzZXIoc3Vi Y29tbWFuZHMpOgotICAgICBpbmRleF9jaGVja19wYXJzZXIuYWRkX2FyZ3VtZW50KCdiYWNrZW5k JywgbmFyZ3M9Jz8nLCBkZWZhdWx0PU5vbmUsCi0gICAgICAgICBoZWxwPSJCYWNrZW5kIHRvIGNo ZWNrLiBJZiBub3Qgc3BlY2lmaWVkLCBhbGwgYmFja2VuZHMgYXJlIGNoZWNrZWQuIikKLSAgICAg aW5kZXhfY2hlY2tfcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1maXgnLCBhY3Rpb249J3N0b3JlX3Ry dWUnLCBkZWZhdWx0PUZhbHNlLAotLSAgICAgICAgaGVscD0iRml4IG1pc21hdGNoZXMgYnkgcmVp bmRleGluZyBhZmZlY3RlZCBpbmRleGVzIikKLSsgICAgICAgIGhlbHA9IkZpeCBtaXNtYXRjaGVz IGJ5IGFkanVzdGluZyBjb25maWcgdG8gbWF0Y2ggb24tZGlzayBkYXRhIikKLSAgICAgaW5kZXhf Y2hlY2tfcGFyc2VyLnNldF9kZWZhdWx0cyhmdW5jPWRidGFza3NfaW5kZXhfY2hlY2spCi0tLSAK LTIuNTMuMAotCgpkaWZmIC0tZ2l0IGEvMDA1NS1Jc3N1ZS03MjM2LUZpeC1HU1NBUEktdGVzdHMt NzIzNy5wYXRjaCBiLzAwNTUtSXNzdWUtNzIzNi1GaXgtR1NTQVBJLXRlc3RzLTcyMzcucGF0Y2gK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQxMzlkYzIuLjAwMDAwMDAKLS0tIGEvMDA1 NS1Jc3N1ZS03MjM2LUZpeC1HU1NBUEktdGVzdHMtNzIzNy5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDIyNyArMCwwIEBACi1Gcm9tIDI2ZmVlY2FlMDI2NTgxZTM5YTQzZjAwMWZhZmY1OWU4MWE5 MmMwM2QgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBMZW5rYSBEb3Vkb3ZhIDxtaXJp ZWxrYUB1c2Vycy5ub3JlcGx5LmdpdGh1Yi5jb20+Ci1EYXRlOiBXZWQsIDE4IEZlYiAyMDI2IDE0 OjMzOjQ5ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIElzc3VlIDcyMzYgLSBGaXggR1NTQVBJIHRl c3RzICgjNzIzNykKLQotKiBJc3N1ZSA3MjM2IC0gRml4IEdTU0FQSSB0ZXN0cwotCi1EZXNjcmlw dGlvbjoKLUZpeCBmb3IgZmFpbGluZyBHU1NBUEkgdGVzdHMKLUFkZCBHU1NBUElfQUNLIHZhcmlh YmxlIHRvIHB5dGVzdCB3b3JrZmxvdyBmb3IgcHJvcGVyIGV4ZWN1dGlvbiBpbgotR2l0aHViIENJ Ci0KLVJlbGF0ZXM6ICM3MjM2Ci1BdXRob3I6IExlbmthIERvdWRvdmEKLVJldmlld2VyOiBCYXJi b3JhIFNpbW9ub3ZhLCBWaWt0b3IgQXNoaXJvdgotLS0tCi0gLmdpdGh1Yi93b3JrZmxvd3MvbG1k YnB5dGVzdC55bWwgICAgICAgICAgICAgIHwgIDIgKy0KLSAuZ2l0aHViL3dvcmtmbG93cy9weXRl c3QueW1sICAgICAgICAgICAgICAgICAgfCAgMiArLQotIC4uLi90ZXN0cy9zdWl0ZXMvZ3NzYXBp L3NpbXBsZV9nc3NhcGlfdGVzdC5weSB8ICAyICsKLSAuLi4vc3VpdGVzL2dzc2FwaV9yZXBsL2dz c2FwaV9yZXBsX3Rlc3QucHkgICAgfCA0MyArKysrKy0tLS0tLS0tLQotIHNyYy9saWIzODkvbGli Mzg5L3RvcG9sb2dpZXMucHkgICAgICAgICAgICAgICB8IDU3ICsrKysrKysrKysrKysrKysrKysK LSA1IGZpbGVzIGNoYW5nZWQsIDc2IGluc2VydGlvbnMoKyksIDMwIGRlbGV0aW9ucygtKQotCi1k aWZmIC0tZ2l0IGEvLmdpdGh1Yi93b3JrZmxvd3MvbG1kYnB5dGVzdC55bWwgYi8uZ2l0aHViL3dv cmtmbG93cy9sbWRicHl0ZXN0LnltbAotaW5kZXggMmQwYTEyMmJmLi4zNzYwOTBiZjYgMTAwNjQ0 Ci0tLS0gYS8uZ2l0aHViL3dvcmtmbG93cy9sbWRicHl0ZXN0LnltbAotKysrIGIvLmdpdGh1Yi93 b3JrZmxvd3MvbG1kYnB5dGVzdC55bWwKLUBAIC0xMjAsNyArMTIwLDcgQEAgam9iczoKLSAgICAg ICAgIHN1ZG8gZG9ja2VyIGV4ZWMgJENJRCBzaCAtYyAic3lzdGVtY3RsIGVuYWJsZSAtLW5vdyBj b2NrcGl0LnNvY2tldCIKLSAgICAgICAgIHN1ZG8gZG9ja2VyIGV4ZWMgJENJRCBzaCAtYyAibWtk aXIgLXAgL3dvcmtzcGFjZS9hc3NldHMvY29yZXMgJiYgY2htb2QgNzc3IC93b3Jrc3BhY2V7LC9h c3NldHN7LC9jb3Jlc319IgotICAgICAgICAgc3VkbyBkb2NrZXIgZXhlYyAkQ0lEIHNoIC1jICJl Y2hvICcvd29ya3NwYWNlL2Fzc2V0cy9jb3Jlcy9jb3JlLiVlLiVQJyA+IC9wcm9jL3N5cy9rZXJu ZWwvY29yZV9wYXR0ZXJuIgotLSAgICAgICAgc3VkbyBkb2NrZXIgZXhlYyAtZSBXRUJVST0xIC1l IE5TU0xBUERfREJfTElCPW1kYiAtZSBERUJVRz1wdzphcGkgLWUgUEFTU1dEPSIke1BBU1NXRH0i ICRDSUQgcHkudGVzdCAgLS1zdXBwcmVzcy1uby10ZXN0LWV4aXQtY29kZSAgLW0gIm5vdCBmbGFr eSIgLS1qdW5pdC14bWw9cHl0ZXN0LnhtbCAtLWh0bWw9cHl0ZXN0Lmh0bWwgLS1icm93c2VyPWZp cmVmb3ggLS1icm93c2VyPWNocm9taXVtIC12IGRpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy8ke3sg bWF0cml4LnN1aXRlIH19Ci0rICAgICAgICBzdWRvIGRvY2tlciBleGVjIC1lIFdFQlVJPTEgLWUg TlNTTEFQRF9EQl9MSUI9bWRiIC1lIERFQlVHPXB3OmFwaSAtZSBQQVNTV0Q9IiR7UEFTU1dEfSIg LWUgR1NTQVBJX0FDSz0xICRDSUQgcHkudGVzdCAgLS1zdXBwcmVzcy1uby10ZXN0LWV4aXQtY29k ZSAgLW0gIm5vdCBmbGFreSIgLS1qdW5pdC14bWw9cHl0ZXN0LnhtbCAtLWh0bWw9cHl0ZXN0Lmh0 bWwgLS1icm93c2VyPWZpcmVmb3ggLS1icm93c2VyPWNocm9taXVtIC12IGRpcnNydnRlc3RzL3Rl c3RzL3N1aXRlcy8ke3sgbWF0cml4LnN1aXRlIH19Ci0gCi0gICAgIC0gbmFtZTogTWFrZSB0aGUg cmVzdWx0cyBmaWxlIHJlYWRhYmxlIGJ5IGFsbAotICAgICAgIGlmOiBhbHdheXMoKQotZGlmZiAt LWdpdCBhLy5naXRodWIvd29ya2Zsb3dzL3B5dGVzdC55bWwgYi8uZ2l0aHViL3dvcmtmbG93cy9w eXRlc3QueW1sCi1pbmRleCA4YTU0M2JlODUuLmE1MTU1MzY1NiAxMDA2NDQKLS0tLSBhLy5naXRo dWIvd29ya2Zsb3dzL3B5dGVzdC55bWwKLSsrKyBiLy5naXRodWIvd29ya2Zsb3dzL3B5dGVzdC55 bWwKLUBAIC0xMjUsNyArMTI1LDcgQEAgam9iczoKLSAgICAgICAgICAgICBlY2hvICJUZXN0cyBz a2lwcGVkIGJlY2F1c2UgcmVhZC1vbmx5IEJlcmtlbGV5IERhdGFiYXNlIGlzIGluc3RhbGxlZC4i ID4gcHl0ZXN0Lmh0bWwKLSAgICAgICAgICAgICBlY2hvICI8P3htbCB2ZXJzaW9uPSIxLjAiIGVu Y29kaW5nPSJ1dGYtOCI/PidUZXN0cyBza2lwcGVkIGJlY2F1c2UgcmVhZC1vbmx5IEJlcmtlbGV5 IERhdGFiYXNlIGlzIGluc3RhbGxlZC4nIiA+IHB5dGVzdC54bWwKLSAgICAgICAgIGVsc2UKLS0g ICAgICAgICAgICBzdWRvIGRvY2tlciBleGVjIC1lIFdFQlVJPTEgLWUgTlNTTEFQRF9EQl9MSUI9 YmRiIC1lIERFQlVHPXB3OmFwaSAtZSBQQVNTV0Q9IiR7UEFTU1dEfSIgJENJRCBweS50ZXN0ICAt LXN1cHByZXNzLW5vLXRlc3QtZXhpdC1jb2RlICAtbSAibm90IGZsYWt5IiAtLWp1bml0LXhtbD1w eXRlc3QueG1sIC0taHRtbD1weXRlc3QuaHRtbCAtLWJyb3dzZXI9ZmlyZWZveCAtLWJyb3dzZXI9 Y2hyb21pdW0gLXYgZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzLyR7eyBtYXRyaXguc3VpdGUgfX0K LSsgICAgICAgICAgICBzdWRvIGRvY2tlciBleGVjIC1lIFdFQlVJPTEgLWUgTlNTTEFQRF9EQl9M SUI9YmRiIC1lIERFQlVHPXB3OmFwaSAtZSBQQVNTV0Q9IiR7UEFTU1dEfSIgLWUgR1NTQVBJX0FD Sz0xICRDSUQgcHkudGVzdCAgLS1zdXBwcmVzcy1uby10ZXN0LWV4aXQtY29kZSAgLW0gIm5vdCBm bGFreSIgLS1qdW5pdC14bWw9cHl0ZXN0LnhtbCAtLWh0bWw9cHl0ZXN0Lmh0bWwgLS1icm93c2Vy PWZpcmVmb3ggLS1icm93c2VyPWNocm9taXVtIC12IGRpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy8k e3sgbWF0cml4LnN1aXRlIH19Ci0gICAgICAgICBmaQotIAotICAgICAtIG5hbWU6IE1ha2UgdGhl IHJlc3VsdHMgZmlsZSByZWFkYWJsZSBieSBhbGwKLWRpZmYgLS1naXQgYS9kaXJzcnZ0ZXN0cy90 ZXN0cy9zdWl0ZXMvZ3NzYXBpL3NpbXBsZV9nc3NhcGlfdGVzdC5weSBiL2RpcnNydnRlc3RzL3Rl c3RzL3N1aXRlcy9nc3NhcGkvc2ltcGxlX2dzc2FwaV90ZXN0LnB5Ci1pbmRleCBiZTZmNjhhOWEu LmU0OGRlMzQ5MSAxMDA2NDQKLS0tLSBhL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9nc3NhcGkv c2ltcGxlX2dzc2FwaV90ZXN0LnB5Ci0rKysgYi9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvZ3Nz YXBpL3NpbXBsZV9nc3NhcGlfdGVzdC5weQotQEAgLTM0LDYgKzM0LDggQEAgZGVmIHRlc3R1c2Vy KHRvcG9sb2d5X3N0X2dzc2FwaSk6Ci0gICAgIH0pCi0gICAgICMgR2l2ZSB0aGVtIGEga3JiIHBy aW5jCi0gICAgIHVzZXIuY3JlYXRlX2tleXRhYigpCi0rICAgICMgTWFrZSBrcmI1IGNvbmZpZyBy ZWFkYWJsZSBieSBldmVyeW9uZSBmb3IgdGhlIHRlc3RzIHRvIHdvcmsKLSsgICAgb3MuY2htb2Qo dXNlci5faW5zdGFuY2UucmVhbG0ua3JiNWNvbmZyZWFsbSwgMG82NDQpCi0gICAgIHJldHVybiB1 c2VyCi0gCi0gQGdzc2FwaV9hY2sKLWRpZmYgLS1naXQgYS9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0 ZXMvZ3NzYXBpX3JlcGwvZ3NzYXBpX3JlcGxfdGVzdC5weSBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1 aXRlcy9nc3NhcGlfcmVwbC9nc3NhcGlfcmVwbF90ZXN0LnB5Ci1pbmRleCA0MDI2ODRhYWIuLmZh N2ZjOWMyNCAxMDA2NDQKLS0tLSBhL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9nc3NhcGlfcmVw bC9nc3NhcGlfcmVwbF90ZXN0LnB5Ci0rKysgYi9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvZ3Nz YXBpX3JlcGwvZ3NzYXBpX3JlcGxfdGVzdC5weQotQEAgLTEwLDcgKzEwLDcgQEAgaW1wb3J0IHB5 dGVzdAotIGZyb20gbGliMzg5LnRhc2tzIGltcG9ydCAqCi0gZnJvbSBsaWIzODkudXRpbHMgaW1w b3J0ICoKLSBmcm9tIGxpYjM4OS5hZ3JlZW1lbnQgaW1wb3J0ICoKLS1mcm9tIGxpYjM4OS50b3Bv bG9naWVzIGltcG9ydCB0b3BvbG9neV9tMgotK2Zyb20gbGliMzg5LnRvcG9sb2dpZXMgaW1wb3J0 IHRvcG9sb2d5X20yX2dzc2FwaSwgZ3NzYXBpX2FjawotIAotIHB5dGVzdG1hcmsgPSBweXRlc3Qu bWFyay50aWVyMgotIAotQEAgLTY5LDI1ICs2OSw4IEBAIGRlZiBfYWxsb3dfbWFjaGluZV9hY2Nv dW50KGluc3QsIG5hbWUpOgotICAgICAgICAgKGxkYXAuTU9EX1JFUExBQ0UsICduc0RTNVJlcGxp Y2FCaW5kRE4nLCBmInVpZD17bmFtZX0sb3U9TWFjaGluZXMse0RFRkFVTFRfU1VGRklYfSIuZW5j b2RlKCd1dGYtOCcpKQotICAgICBdKQotIAotLWRlZiBfdmVyaWZ5X2V0Y19ob3N0cygpOgotLSAg ICAjQ2hlY2sgaWYgL2V0Yy9ob3N0cyBpcyBjb21wYXRpYmxlIHdpdGggdGhlIHRlc3QKLS0gICAg TkVFREVEX0hPU1RTID0gKCAoJ2xkYXBrZGMuZXhhbXBsZS5jb20nLCAnMTI3LjAuMC4xJyksCi0t ICAgICAgICAgICAgICAgICAgICAgKCdsZGFwa2RjMS5leGFtcGxlLmNvbScsICcxMjcuMC4xLjEn KSwKLS0gICAgICAgICAgICAgICAgICAgICAoJ2xkYXBrZGMyLmV4YW1wbGUuY29tJywgJzEyNy4w LjIuMScpKQotLSAgICBmb3VuZF9ob3N0cyA9IHt9Ci0tICAgIHdpdGggb3BlbignL2V0Yy9ob3N0 cycsJ3InKSBhcyBmOgotLSAgICAgICAgZm9yIGwgaW4gZjoKLS0gICAgICAgICAgICBzID0gbC5z cGxpdCgpCi0tICAgICAgICAgICAgaWYgbGVuKHMpIDwgMjoKLS0gICAgICAgICAgICAgICAgY29u dGludWUKLS0gICAgICAgICAgICBmb3IgbmggaW4gTkVFREVEX0hPU1RTOgotLSAgICAgICAgICAg ICAgICBpZiAoc1swXSA9PSBuaFsxXSBhbmQgc1sxXSA9PSBuaFswXSk6Ci0tICAgICAgICAgICAg ICAgICAgICBmb3VuZF9ob3N0c1tzWzFdXSA9IFRydWUKLS0gICAgcmV0dXJuIGxlbihmb3VuZF9o b3N0cykgPT0gbGVuKE5FRURFRF9IT1NUUykKLS0KLS1AcHl0ZXN0Lm1hcmsuc2tpcGlmKG5vdCBf dmVyaWZ5X2V0Y19ob3N0cygpLCByZWFzb249Ii9ldGMvaG9zdHMgZG9lcyBub3QgY29udGFpbnMg dGhlIG5lZWRlZCBob3N0cy4iKQotLUBweXRlc3QubWFyay5za2lwaWYoVHJ1ZSwgcmVhc29uPSJU ZXN0IGRpc2FibGVkIGJlY2F1c2UgaXQgcmVxdWlyZXMgc3BlY2lmaWMga2VyYmVyb3MgcmVxdWly ZW1lbnQgKHNlcnZlciBwcmluY2lwYWwsIGtleXRhYiwgZXRjIC4uLiIpCi0tZGVmIHRlc3RfZ3Nz YXBpX3JlcGwodG9wb2xvZ3lfbTIpOgotK0Bnc3NhcGlfYWNrCi0rZGVmIHRlc3RfZ3NzYXBpX3Jl cGwodG9wb2xvZ3lfbTJfZ3NzYXBpKToKLSAgICAgIiIiVGVzdCBnc3NhcGkgYXV0aGVudGljYXRl ZCByZXBsaWNhdGlvbiBhZ3JlZW1lbnQgb2YgdHdvIHN1cHBsaWVycyB1c2luZyBLREMKLSAKLSAg ICAgOmlkOiA1NTI4NTBhYS1hZmMzLTQ3M2UtOWMzOS1hYWU4MDJiNDZmMTEKLUBAIC0xMTIsOCAr OTUsOCBAQCBkZWYgdGVzdF9nc3NhcGlfcmVwbCh0b3BvbG9neV9tMik6Ci0gICAgICAgICAgNi4g VGVzdCBVc2VyIHNob3VsZCBiZSBjcmVhdGVkIG9uIE0xIGFuZCBNMiBib3RoCi0gICAgICAgICAg Ny4gVGVzdCBVc2VyIHNob3VsZCBiZSBjcmVhdGVkIG9uIE0xIGFuZCBNMiBib3RoCi0gICAgICIi IgotLSAgICBzdXBwbGllcjEgPSB0b3BvbG9neV9tMi5tc1sic3VwcGxpZXIxIl0KLS0gICAgc3Vw cGxpZXIyID0gdG9wb2xvZ3lfbTIubXNbInN1cHBsaWVyMiJdCi0rICAgIHN1cHBsaWVyMSA9IHRv cG9sb2d5X20yX2dzc2FwaS5tc1sic3VwcGxpZXIxIl0KLSsgICAgc3VwcGxpZXIyID0gdG9wb2xv Z3lfbTJfZ3NzYXBpLm1zWyJzdXBwbGllcjIiXQotIAotICAgICAjIENyZWF0ZSB0aGUgbG9jYXRp b25zIG9uIGVhY2ggc3VwcGxpZXIgZm9yIHRoZSBvdGhlciB0byBiaW5kIHRvLgotICAgICBfY3Jl YXRlX21hY2hpbmVfb3Uoc3VwcGxpZXIxKQotQEAgLTEzNCwxMCArMTE3LDkgQEAgZGVmIHRlc3Rf Z3NzYXBpX3JlcGwodG9wb2xvZ3lfbTIpOgotICAgICAjIENyZWF0aW5nIGFncmVlbWVudCBmcm9t IHN1cHBsaWVyIDEgdG8gc3VwcGxpZXIgMgotIAotICAgICAjIFNldCB0aGUgcmVwbGljYSBiaW5k IG1ldGhvZCB0byBzYXNsIGdzc2FwaQotLSAgICBwcm9wZXJ0aWVzID0ge1JBX05BTUU6IHInbWVU b18kaG9zdDokcG9ydCcsCi0rICAgIHByb3BlcnRpZXMgPSB7UkFfTkFNRTogJ21lVG9fJyArIHN1 cHBsaWVyMi5ob3N0ICsgJzonICsgc3RyKHN1cHBsaWVyMi5wb3J0KSwKLSAgICAgICAgICAgICAg ICAgICBSQV9NRVRIT0Q6ICdTQVNML0dTU0FQSScsCi0gICAgICAgICAgICAgICAgICAgUkFfVFJB TlNQT1JUX1BST1Q6IGRlZmF1bHRQcm9wZXJ0aWVzW1JFUExJQ0FUSU9OX1RSQU5TUE9SVF19Ci0t ICAgIHN1cHBsaWVyMS5hZ3JlZW1lbnQuZGVsZXRlKHN1ZmZpeD1TVUZGSVgsIGNvbnN1bWVyX2hv c3Q9c3VwcGxpZXIyLmhvc3QsIGNvbnN1bWVyX3BvcnQ9c3VwcGxpZXIyLnBvcnQpCi0gICAgIG0x X20yX2FnbXQgPSBzdXBwbGllcjEuYWdyZWVtZW50LmNyZWF0ZShzdWZmaXg9U1VGRklYLCBob3N0 PXN1cHBsaWVyMi5ob3N0LCBwb3J0PXN1cHBsaWVyMi5wb3J0LCBwcm9wZXJ0aWVzPXByb3BlcnRp ZXMpCi0gICAgIGlmIG5vdCBtMV9tMl9hZ210OgotICAgICAgICAgbG9nLmZhdGFsKCJGYWlsIHRv IGNyZWF0ZSBhIHN1cHBsaWVyIC0+IHN1cHBsaWVyIHJlcGxpY2EgYWdyZWVtZW50IikKLUBAIC0x NDcsMTAgKzEyOSw5IEBAIGRlZiB0ZXN0X2dzc2FwaV9yZXBsKHRvcG9sb2d5X20yKToKLSAgICAg IyBDcmVhdGluZyBhZ3JlZW1lbnQgZnJvbSBzdXBwbGllciAyIHRvIHN1cHBsaWVyIDEKLSAKLSAg ICAgIyBTZXQgdGhlIHJlcGxpY2EgYmluZCBtZXRob2QgdG8gc2FzbCBnc3NhcGkKLS0gICAgcHJv cGVydGllcyA9IHtSQV9OQU1FOiByJ21lVG9fJGhvc3Q6JHBvcnQnLAotKyAgICBwcm9wZXJ0aWVz ID0ge1JBX05BTUU6ICdtZVRvXycgKyBzdXBwbGllcjEuaG9zdCArICc6JyArIHN0cihzdXBwbGll cjEucG9ydCksCi0gICAgICAgICAgICAgICAgICAgUkFfTUVUSE9EOiAnU0FTTC9HU1NBUEknLAot ICAgICAgICAgICAgICAgICAgIFJBX1RSQU5TUE9SVF9QUk9UOiBkZWZhdWx0UHJvcGVydGllc1tS RVBMSUNBVElPTl9UUkFOU1BPUlRdfQotLSAgICBzdXBwbGllcjIuYWdyZWVtZW50LmRlbGV0ZShz dWZmaXg9U1VGRklYLCBjb25zdW1lcl9ob3N0PXN1cHBsaWVyMS5ob3N0LCBjb25zdW1lcl9wb3J0 PXN1cHBsaWVyMS5wb3J0KQotICAgICBtMl9tMV9hZ210ID0gc3VwcGxpZXIyLmFncmVlbWVudC5j cmVhdGUoc3VmZml4PVNVRkZJWCwgaG9zdD1zdXBwbGllcjEuaG9zdCwgcG9ydD1zdXBwbGllcjEu cG9ydCwgcHJvcGVydGllcz1wcm9wZXJ0aWVzKQotICAgICBpZiBub3QgbTJfbTFfYWdtdDoKLSAg ICAgICAgIGxvZy5mYXRhbCgiRmFpbCB0byBjcmVhdGUgYSBzdXBwbGllciAtPiBzdXBwbGllciBy ZXBsaWNhIGFncmVlbWVudCIpCi1AQCAtMTY5LDkgKzE1MCwxNSBAQCBkZWYgdGVzdF9nc3NhcGlf cmVwbCh0b3BvbG9neV9tMik6Ci0gCi0gICAgICMgQ2hlY2sgcmVwbGljYXRpb24gaXMgd29ya2lu Zy4uLgotICAgICBpZiBzdXBwbGllcjEudGVzdFJlcGxpY2F0aW9uKERFRkFVTFRfU1VGRklYLCBz dXBwbGllcjIpOgotLSAgICAgICAgbG9nLmluZm8oJ1JlcGxpY2F0aW9uIGlzIHdvcmtpbmcuJykK LSsgICAgICAgIGxvZy5pbmZvKCdSZXBsaWNhdGlvbiBpcyB3b3JraW5nOiBzdXBwbGllcjEgLT4g c3VwcGxpZXIyJykKLSAgICAgZWxzZToKLS0gICAgICAgIGxvZy5mYXRhbCgnUmVwbGljYXRpb24g aXMgbm90IHdvcmtpbmcuJykKLSsgICAgICAgIGxvZy5mYXRhbCgnUmVwbGljYXRpb24gaXMgbm90 IHdvcmtpbmc6IHN1cHBsaWVyMSAtPiBzdXBwbGllcjInKQotKyAgICAgICAgYXNzZXJ0IEZhbHNl Ci0rCi0rICAgIGlmIHN1cHBsaWVyMi50ZXN0UmVwbGljYXRpb24oREVGQVVMVF9TVUZGSVgsIHN1 cHBsaWVyMSk6Ci0rICAgICAgICBsb2cuaW5mbygnUmVwbGljYXRpb24gaXMgd29ya2luZzogc3Vw cGxpZXIyIC0+IHN1cHBsaWVyMScpCi0rICAgIGVsc2U6Ci0rICAgICAgICBsb2cuZmF0YWwoJ1Jl cGxpY2F0aW9uIGlzIG5vdCB3b3JraW5nOiBzdXBwbGllcjIgLT4gc3VwcGxpZXIxJykKLSAgICAg ICAgIGFzc2VydCBGYWxzZQotIAotICAgICAjIEFkZCBhIHVzZXIgdG8gc3VwcGxpZXIgMQotZGlm ZiAtLWdpdCBhL3NyYy9saWIzODkvbGliMzg5L3RvcG9sb2dpZXMucHkgYi9zcmMvbGliMzg5L2xp YjM4OS90b3BvbG9naWVzLnB5Ci1pbmRleCAzMzM0MWY2NjkuLjg0ZTYyMGNiMyAxMDA2NDQKLS0t LSBhL3NyYy9saWIzODkvbGliMzg5L3RvcG9sb2dpZXMucHkKLSsrKyBiL3NyYy9saWIzODkvbGli Mzg5L3RvcG9sb2dpZXMucHkKLUBAIC00OTksNiArNDk5LDYzIEBAIGRlZiB0b3BvbG9neV9tMihy ZXF1ZXN0KToKLSAgICAgdG9wb2xvZ3kubG9nY2FwID0gTG9nQ2FwdHVyZSgpCi0gICAgIHJldHVy biB0b3BvbG9neQotIAotK0BweXRlc3QuZml4dHVyZShzY29wZT0ibW9kdWxlIikKLStkZWYgdG9w b2xvZ3lfbTJfZ3NzYXBpKHJlcXVlc3QpOgotKyAgICAiIiJDcmVhdGUgUmVwbGljYXRpb24gRGVw bG95bWVudCB3aXRoIHR3byBzdXBwbGllcnMgd2l0aCBHU1NBUEkgZW5hYmxlZC4KLSsKLSsgICAg U2ltaWxhciB0byB0b3BvbG9neV9zdF9nc3NhcGkgYnV0IGZvciB0d28gc3VwcGxpZXJzLiBDb25m aWd1cmVzIEtlcmJlcm9zCi0rICAgIHJlYWxtLCBwcmluY2lwYWxzIGFuZCBrZXl0YWJzIGZvciBs ZGFwL2xkYXBrZGMxLjxkb21haW4+IGFuZCBsZGFwL2xkYXBrZGMyLjxkb21haW4+LAotKyAgICBT QVNMIG1hcHBpbmdzLCBhbmQgZGlzYWJsZXMgU1NMIHBvcnQgb24gYm90aCBpbnN0YW5jZXMgc28g R1NTQVBJIGNhbiBiZSB1c2VkLgotKyAgICAiIiIKLSsgICAgaG9zdG5hbWUgPSBzb2NrZXQuZ2V0 aG9zdG5hbWUoKS5zcGxpdCgnLicsIDEpCi0rICAgIGFzc2VydCBsZW4oaG9zdG5hbWUpID09IDIK LSsgICAgZG9tYWluID0gaG9zdG5hbWVbMV0KLSsgICAgUkVBTE0gPSBkb21haW4udXBwZXIoKQot KyAgICBob3N0X3N1cHBsaWVyXzEgPSAnbGRhcGtkYzEuJyArIGRvbWFpbgotKyAgICBob3N0X3N1 cHBsaWVyXzIgPSAnbGRhcGtkYzIuJyArIGRvbWFpbgotKwotKyAgICB0b3BvbG9neSA9IGNyZWF0 ZV90b3BvbG9neSh7UmVwbGljYVJvbGUuU1VQUExJRVI6IDJ9LCByZXF1ZXN0PXJlcXVlc3QsCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFudXBfY2I9bGFtYmRhIHg6IGtyYi5k ZXN0cm95X3JlYWxtKCkpCi0rCi0rICAgIHN1cHBsaWVyMSA9IHRvcG9sb2d5Lm1zWyJzdXBwbGll cjEiXQotKyAgICBzdXBwbGllcjIgPSB0b3BvbG9neS5tc1sic3VwcGxpZXIyIl0KLSsgICAgc3Vw cGxpZXIxLmhvc3QgPSBob3N0X3N1cHBsaWVyXzEKLSsgICAgc3VwcGxpZXIyLmhvc3QgPSBob3N0 X3N1cHBsaWVyXzIKLSsKLSsgICAga3JiID0gTWl0S3JiNShyZWFsbT1SRUFMTSwgZGVidWc9REVC VUdHSU5HKQotKyAgICBpZiBrcmIuY2hlY2tfcmVhbG0oKToKLSsgICAgICAgIGtyYi5kZXN0cm95 X3JlYWxtKCkKLSsgICAga3JiLmNyZWF0ZV9yZWFsbSgpCi0rCi0rICAgIGtyYi5jcmVhdGVfcHJp bmNpcGFsKHByaW5jaXBhbD1mJ2xkYXAve2hvc3Rfc3VwcGxpZXJfMX0nKQotKyAgICBrcmIuY3Jl YXRlX3ByaW5jaXBhbChwcmluY2lwYWw9ZidsZGFwL3tob3N0X3N1cHBsaWVyXzJ9JykKLSsgICAg a3JiLmNyZWF0ZV9rZXl0YWIocHJpbmNpcGFsPWYnbGRhcC97aG9zdF9zdXBwbGllcl8xfScsIGtl eXRhYj0nL2V0Yy9rcmI1LmtleXRhYicpCi0rICAgIGtyYi5jcmVhdGVfa2V5dGFiKHByaW5jaXBh bD1mJ2xkYXAve2hvc3Rfc3VwcGxpZXJfMn0nLCBrZXl0YWI9Jy9ldGMva3JiNS5rZXl0YWInKQot KwotKyAgICBvcy5jaG93bignL2V0Yy9rcmI1LmtleXRhYicsIHN1cHBsaWVyMS5nZXRfdXNlcl91 aWQoKSwgc3VwcGxpZXIxLmdldF9ncm91cF9naWQoKSkKLSsKLSsgICAgZm9yIGluc3QsIGhvc3Qg aW4gWyhzdXBwbGllcjEsIGhvc3Rfc3VwcGxpZXJfMSksIChzdXBwbGllcjIsIGhvc3Rfc3VwcGxp ZXJfMildOgotKyAgICAgICAgc2FzbG1hcHBpbmdzID0gU2FzbE1hcHBpbmdzKGluc3QpCi0rICAg ICAgICBmb3IgbSBpbiBzYXNsbWFwcGluZ3MubGlzdCgpOgotKyAgICAgICAgICAgIG0uZGVsZXRl KCkKLSsgICAgICAgIHNhc2xtYXBwaW5ncy5jcmVhdGUocHJvcGVydGllcz17Ci0rICAgICAgICAg ICAgJ2NuJzogJ3N1ZmZpeCBtYXAnLAotKyAgICAgICAgICAgICduc1Nhc2xNYXBSZWdleFN0cmlu Zyc6ICdcXCguKlxcKScsCi0rICAgICAgICAgICAgJ25zU2FzbE1hcEJhc2VETlRlbXBsYXRlJzog aW5zdC5jcmVhdGlvbl9zdWZmaXgsCi0rICAgICAgICAgICAgJ25zU2FzbE1hcEZpbHRlclRlbXBs YXRlJzogJyh1aWQ9XFwxKScKLSsgICAgICAgIH0pCi0rICAgICAgICBpbnN0LnJlYWxtID0ga3Ji Ci0rICAgICAgICBpbnN0LmNvbmZpZy5zZXQoJ25zc2xhcGQtbG9jYWxob3N0JywgaG9zdCkKLSsg ICAgICAgIGluc3Quc3NscG9ydCA9IE5vbmUKLSsKLSsgICAgc3VwcGxpZXIxLnJlc3RhcnQoKQot KyAgICBzdXBwbGllcjIucmVzdGFydCgpCi0rICAgIHN1cHBsaWVyMS5jbGVhclRtcERpcihfX2Zp bGVfXykKLSsgICAgc3VwcGxpZXIyLmNsZWFyVG1wRGlyKF9fZmlsZV9fKQotKwotKyAgICB0b3Bv bG9neS5sb2djYXAgPSBMb2dDYXB0dXJlKCkKLSsgICAgcmV0dXJuIHRvcG9sb2d5Ci0rCi0gCi0g QHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiKQotIGRlZiB0b3BvbG9neV9tMyhyZXF1ZXN0 KToKLS0tIAotMi41My4wCi0KCmRpZmYgLS1naXQgYS8wMDU2LUlzc3VlLTY3NTMtUG9ydC10aWNr ZXQtNDkwMzktdGVzdC5wYXRjaCBiLzAwNTYtSXNzdWUtNjc1My1Qb3J0LXRpY2tldC00OTAzOS10 ZXN0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZGQ1NTBlLi4wMDAwMDAw Ci0tLSBhLzAwNTYtSXNzdWUtNjc1My1Qb3J0LXRpY2tldC00OTAzOS10ZXN0LnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsMjYwICswLDAgQEAKLUZyb20gYTRhZTI5YWZjNjU0N2U4MjMxYjkzM2Nm YTFiOTVkN2Y3YjM3YTI1YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IExlbmthIERv dWRvdmEgPGxyeXpuYXJvQHJlZGhhdC5jb20+Ci1EYXRlOiBUdWUsIDEwIEZlYiAyMDI2IDA1OjQ1 OjMyICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIElzc3VlIDY3NTMgLSBQb3J0IHRpY2tldCA0OTAz OSB0ZXN0Ci0KLURlc2NyaXB0aW9uOgotUG9ydCB0aWNrZXQgNDkwMzkgdGVzdCBpbnRvCi1kaXJz cnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvcGFzc3dvcmQvcHdwX3Rlc3QucHkKLQotUmVsYXRlczogIzY3 NTMKLUF1dGhvcjogTGVua2EgRG91ZG92YQotQXNzaXN0ZWQgYnk6IEN1cnNvcgotUmV2aWV3ZXI6 IEJhcmJvcmEgU2ltb25vdmEsIFZpa3RvciBBc2hpcm92Ci0tLS0KLSBkaXJzcnZ0ZXN0cy90ZXN0 cy9zdWl0ZXMvcGFzc3dvcmQvcHdwX3Rlc3QucHkgfCAgODMgKysrKysrKysrKystCi0gZGlyc3J2 dGVzdHMvdGVzdHMvdGlja2V0cy90aWNrZXQ0OTAzOV90ZXN0LnB5IHwgMTI3IC0tLS0tLS0tLS0t LS0tLS0tLQotIDIgZmlsZXMgY2hhbmdlZCwgODIgaW5zZXJ0aW9ucygrKSwgMTI4IGRlbGV0aW9u cygtKQotIGRlbGV0ZSBtb2RlIDEwMDY0NCBkaXJzcnZ0ZXN0cy90ZXN0cy90aWNrZXRzL3RpY2tl dDQ5MDM5X3Rlc3QucHkKLQotZGlmZiAtLWdpdCBhL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9w YXNzd29yZC9wd3BfdGVzdC5weSBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9wYXNzd29yZC9w d3BfdGVzdC5weQotaW5kZXggNjYzZDliZWE5Li42ZGFlMDhjYjIgMTAwNjQ0Ci0tLS0gYS9kaXJz cnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvcGFzc3dvcmQvcHdwX3Rlc3QucHkKLSsrKyBiL2RpcnNydnRl c3RzL3Rlc3RzL3N1aXRlcy9wYXNzd29yZC9wd3BfdGVzdC5weQotQEAgLTksMTEgKzksMTQgQEAK LSAiIiIKLSAKLSBpbXBvcnQgb3MKLStpbXBvcnQgc3VicHJvY2VzcwotIGltcG9ydCBweXRlc3QK LSBmcm9tIGxpYjM4OS50b3BvbG9naWVzIGltcG9ydCB0b3BvbG9neV9zdCBhcyB0b3BvCi0gZnJv bSBsaWIzODkuaWRtLnVzZXIgaW1wb3J0IFVzZXJBY2NvdW50cywgVXNlckFjY291bnQKLS1mcm9t IGxpYjM4OS5fY29uc3RhbnRzIGltcG9ydCBERUZBVUxUX1NVRkZJWAotK2Zyb20gbGliMzg5Lmlk bS5kaXJlY3RvcnltYW5hZ2VyIGltcG9ydCBEaXJlY3RvcnlNYW5hZ2VyCi0rZnJvbSBsaWIzODku X2NvbnN0YW50cyBpbXBvcnQgREVGQVVMVF9TVUZGSVgsIFBBU1NXT1JECi0gZnJvbSBsaWIzODku Y29uZmlnIGltcG9ydCBDb25maWcKLStmcm9tIGxpYjM4OS5wd3BvbGljeSBpbXBvcnQgUHdQb2xp Y3lNYW5hZ2VyCi0gZnJvbSBsaWIzODkuaWRtLmdyb3VwIGltcG9ydCBHcm91cAotIGZyb20gbGli Mzg5LnV0aWxzIGltcG9ydCBkc19pc19vbGRlcgotIGltcG9ydCBsZGFwCi1AQCAtNTEyLDYgKzUx NSw4NCBAQCBkZWYgdGVzdF9wYXNzd29yZGxvY2tvdXQodG9wbywgX2ZpeF9wYXNzd29yZCk6Ci0g ICAgIF9jaGFuZ2VfcGFzc3dvcmRfd2l0aF9vd24odG9wbywgdXNlci5kbiwgJ2RieTNyczInLCAn c2VjcmV0ZXInKQotIAotIAotK2RlZiB0ZXN0X3Bhc3N3b3JkX211c3RfY2hhbmdlX2lnbm9yZXNf bWluX2FnZSh0b3BvKToKLSsgICAgIiIiVGVzdCB0aGF0IHBhc3N3b3JkTWluQWdlIGRvZXMgbm90 IGJsb2NrIHBhc3N3b3JkIHVwZGF0ZSB3aGVuIHRoZSBwYXNzd29yZCB3YXMgcmVzZXQuCi0rCi0r ICAgIDppZDogYTFiMmMzZDQtZTVmNi00OTAzLTlhYmMtZGVmMDEyMzQ1Njc4Ci0rICAgIDpzZXR1 cDogU3RhbmRhbG9uZSBpbnN0YW5jZQotKyAgICA6c3RlcHM6Ci0rICAgICAgICAxLiBFbmFibGUg VExTIChmb3IgbGRhcHBhc3N3ZCBTdGFydFRMUykKLSsgICAgICAgIDIuIFNldCBnbG9iYWwgcG9s aWN5IHZpYSBQd1BvbGljeU1hbmFnZXI6IHBhc3N3b3JkTXVzdENoYW5nZSwgcGFzc3dvcmRFeHAs Ci0rICAgICAgICAgICBwYXNzd29yZE1heEFnZSwgcGFzc3dvcmRNaW5BZ2UgKGhpZ2gpLCBwYXNz d29yZENoYW5nZQotKyAgICAgICAgMy4gQmluZCBhcyBEaXJlY3RvcnkgTWFuYWdlcgotKyAgICAg ICAgNC4gQ3JlYXRlIHVzZXIKLSsgICAgICAgIDUuIFJlc2V0IHVzZXIgcGFzc3dvcmQgYXMgRGly ZWN0b3J5IE1hbmFnZXIKLSsgICAgICAgIDYuIFVzZXIgYmluZHMgYW5kIGNoYW5nZXMgb3duIHBh c3N3b3JkIChtdXN0IHN1Y2NlZWQ7IG1pbiBhZ2UgbXVzdCBub3QgYmxvY2spCi0rICAgICAgICA3 LiBSZWJpbmQgYXMgRGlyZWN0b3J5IE1hbmFnZXIsIHJlc2V0IHVzZXIgcGFzc3dvcmQgYWdhaW4K LSsgICAgICAgIDguIFJ1biBsZGFwcGFzc3dkIGFzIHVzZXIgKFN0YXJ0VExTKSB0byBjaGFuZ2Ug cGFzc3dvcmQgdG8gcGFzc3dvcmQyCi0rICAgICAgICA5LiBCaW5kIGFzIHVzZXIgd2l0aCBwYXNz d29yZDIgdG8gdmVyaWZ5Ci0rICAgICAgICAxMC4gQ2xlYW51cDogZGVsZXRlIHVzZXIKLSsgICAg OmV4cGVjdGVkcmVzdWx0czoKLSsgICAgICAgIDEuIFRMUyBlbmFibGVkCi0rICAgICAgICAyLiBQ b2xpY3kgc2V0IHN1Y2Nlc3NmdWxseQotKyAgICAgICAgMy4gQmluZCBzdWNjZWVkcwotKyAgICAg ICAgNC4gVXNlciBjcmVhdGVkCi0rICAgICAgICA1LiBSZXNldCBzdWNjZWVkcwotKyAgICAgICAg Ni4gVXNlciBwYXNzd29yZCBjaGFuZ2Ugc3VjY2VlZHMgKG1pbiBhZ2UgZG9lcyBub3QgYmxvY2sg YWZ0ZXIgcmVzZXQpCi0rICAgICAgICA3LiBSZXNldCBzdWNjZWVkcwotKyAgICAgICAgOC4gbGRh cHBhc3N3ZCBzdWNjZWVkcwotKyAgICAgICAgOS4gQmluZCBzdWNjZWVkcwotKyAgICAgICAgMTAu IFVzZXIgZGVsZXRlZAotKyAgICAiIiIKLSsKLSsgICAgdG9wby5zdGFuZGFsb25lLmVuYWJsZV90 bHMoKQotKwotKyAgICBwb2xpY3kgPSBQd1BvbGljeU1hbmFnZXIodG9wby5zdGFuZGFsb25lKQot KyAgICBwb2xpY3kuc2V0X2dsb2JhbF9wb2xpY3kocHJvcGVydGllcz17J25zc2xhcGQtcHdwb2xp Y3ktbG9jYWwnOiAnb24nLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJ3Bhc3N3b3JkTXVzdENoYW5nZSc6ICdvbicsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAncGFzc3dvcmRFeHAnOiAnb24nLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJ3Bhc3N3b3JkTWF4QWdlJzogJzg2NDAwMDAwJywKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwYXNzd29yZE1pbkFnZSc6 ICc4NjQwMDAwJywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdw YXNzd29yZENoYW5nZSc6ICdvbid9KQotKyAgICBkbSA9IERpcmVjdG9yeU1hbmFnZXIodG9wby5z dGFuZGFsb25lKQotKyAgICBkbS5iaW5kKCkKLSsKLSsgICAgdXNlciA9IF9jcmVhdGVfdXNlcih0 b3BvLCAndXNlcicsICdUZXN0IFVzZXInLCAnMTAwMicsIFBBU1NXT1JEKQotKyAgICB0cnk6Ci0r ICAgICAgICAjIFJlc2V0IHBhc3N3b3JkIGFzIERpcmVjdG9yeSBNYW5hZ2VyCi0rICAgICAgICB1 c2VyLnJlcGxhY2UoJ3VzZXJwYXNzd29yZCcsIFBBU1NXT1JEKQotKyAgICAgICAgdGltZS5zbGVl cCgxKQotKwotKyAgICAgICAgIyBSZXNldCBwYXNzd29yZCBhcyB1c2VyIChtdXN0IHN1Y2NlZWQ7 IG1pbiBhZ2UgbXVzdCBub3QgYmxvY2sgYWZ0ZXIgcmVzZXQpCi0rICAgICAgICB1c2VyLnJlYmlu ZChQQVNTV09SRCkKLSsgICAgICAgIHVzZXIucmVwbGFjZSgndXNlcnBhc3N3b3JkJywgUEFTU1dP UkQpCi0rICAgICAgICB0aW1lLnNsZWVwKDEpCi0rCi0rICAgICAgICAjIFJlc2V0IGFnYWluIGFz IERpcmVjdG9yeSBNYW5hZ2VyCi0rICAgICAgICBkbS5yZWJpbmQoUEFTU1dPUkQpCi0rICAgICAg ICB1c2VyLnJlcGxhY2UoJ3VzZXJwYXNzd29yZCcsIFBBU1NXT1JEKQotKyAgICAgICAgdGltZS5z bGVlcCgxKQotKwotKyAgICAgICAgIyBDaGFuZ2UgcGFzc3dvcmQgdGhyb3VnaCBsZGFwcGFzc3dk IGFzIHVzZXIgdG8gZW5zdXJlIGZ1bmN0aW9uYWxpdHkKLSsgICAgICAgIGVudiA9IG9zLmVudmly b24uY29weSgpCi0rICAgICAgICBlbnZbJ0xEQVBUTFNfQ0FDRVJURElSJ10gPSB0b3BvLnN0YW5k YWxvbmUuZ2V0X2NlcnRfZGlyKCkKLSsgICAgICAgIGNtZCA9IFsKLSsgICAgICAgICAgICAnbGRh cHBhc3N3ZCcsCi0rICAgICAgICAgICAgJy1aWicsJy1IJywgZiJsZGFwOi8ve3RvcG8uc3RhbmRh bG9uZS5ob3N0fTp7dG9wby5zdGFuZGFsb25lLnBvcnR9IiwKLSsgICAgICAgICAgICAnLUQnLCB1 c2VyLmRuLCAnLXcnLCBQQVNTV09SRCwKLSsgICAgICAgICAgICAnLWEnLCBQQVNTV09SRCwgJy1z JywgJ3Bhc3N3b3JkMicsCi0rICAgICAgICAgICAgdXNlci5kbiwKLSsgICAgICAgIF0KLSsgICAg ICAgIHJlc3VsdCA9IHN1YnByb2Nlc3MucnVuKGNtZCwgZW52PWVudiwgY2FwdHVyZV9vdXRwdXQ9 VHJ1ZSwgdGV4dD1UcnVlKQotKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXR1cm5jb2RlID09IDAs IGYnbGRhcHBhc3N3ZCBmYWlsZWQ6IHtyZXN1bHQuc3RkZXJyfScKLSsKLSsgICAgICAgICMgQmlu ZCBhcyB1c2VyIHdpdGggbmV3IHBhc3N3b3JkCi0rICAgICAgICB1c2VyLmJpbmQoJ3Bhc3N3b3Jk MicpCi0rICAgIGZpbmFsbHk6Ci0rICAgICAgICBkbS5yZWJpbmQoUEFTU1dPUkQpCi0rICAgICAg ICB1c2VyLmRlbGV0ZSgpCi0rCi0rCi0gaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKLSAgICAg Q1VSUkVOVF9GSUxFID0gb3MucGF0aC5yZWFscGF0aChfX2ZpbGVfXykKLSAgICAgcHl0ZXN0Lm1h aW4oIi1zIC12ICVzIiAlIENVUlJFTlRfRklMRSkKLWRpZmYgLS1naXQgYS9kaXJzcnZ0ZXN0cy90 ZXN0cy90aWNrZXRzL3RpY2tldDQ5MDM5X3Rlc3QucHkgYi9kaXJzcnZ0ZXN0cy90ZXN0cy90aWNr ZXRzL3RpY2tldDQ5MDM5X3Rlc3QucHkKLWRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXgg MDMxM2Y2OWEzLi4wMDAwMDAwMDAKLS0tLSBhL2RpcnNydnRlc3RzL3Rlc3RzL3RpY2tldHMvdGlj a2V0NDkwMzlfdGVzdC5weQotKysrIC9kZXYvbnVsbAotQEAgLTEsMTI3ICswLDAgQEAKLS0jIC0t LSBCRUdJTiBDT1BZUklHSFQgQkxPQ0sgLS0tCi0tIyBDb3B5cmlnaHQgKEMpIDIwMjIgUmVkIEhh dCwgSW5jLgotLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS0jCi0tIyBMaWNlbnNlOiBHUEwgKHZl cnNpb24gMyBvciBhbnkgbGF0ZXIgdmVyc2lvbikuCi0tIyBTZWUgTElDRU5TRSBmb3IgZGV0YWls cy4KLS0jIC0tLSBFTkQgQ09QWVJJR0hUIEJMT0NLIC0tLQotLSMKLS1pbXBvcnQgdGltZQotLWlt cG9ydCBsZGFwCi0taW1wb3J0IGxvZ2dpbmcKLS1pbXBvcnQgcHl0ZXN0Ci0taW1wb3J0IG9zCi0t ZnJvbSBsaWIzODkgaW1wb3J0IEVudHJ5Ci0tZnJvbSBsaWIzODkuX2NvbnN0YW50cyBpbXBvcnQg KgotLWZyb20gbGliMzg5LnByb3BlcnRpZXMgaW1wb3J0ICoKLS1mcm9tIGxpYjM4OS50YXNrcyBp bXBvcnQgKgotLWZyb20gbGliMzg5LnV0aWxzIGltcG9ydCAqCi0tZnJvbSBsaWIzODkudG9wb2xv Z2llcyBpbXBvcnQgdG9wb2xvZ3lfc3QgYXMgdG9wbwotLWZyb20gbGliMzg5LnB3cG9saWN5IGlt cG9ydCBQd1BvbGljeU1hbmFnZXIKLS0KLS0KLS1weXRlc3RtYXJrID0gcHl0ZXN0Lm1hcmsudGll cjIKLS0KLS1ERUJVR0dJTkcgPSBvcy5nZXRlbnYoIkRFQlVHR0lORyIsIGRlZmF1bHQ9RmFsc2Up Ci0taWYgREVCVUdHSU5HOgotLSAgICBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykuc2V0TGV2 ZWwobG9nZ2luZy5ERUJVRykKLS1lbHNlOgotLSAgICBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVf Xykuc2V0TGV2ZWwobG9nZ2luZy5JTkZPKQotLWxvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFt ZV9fKQotLQotLVVTRVJfRE4gPSAndWlkPXVzZXIsZGM9ZXhhbXBsZSxkYz1jb20nCi0tCi0tCi0t ZGVmIHRlc3RfdGlja2V0NDkwMzkodG9wbyk6Ci0tICAgICIiIlRlc3QgInBhc3N3b3JkIG11c3Qg Y2hhbmdlIiB2ZXJzZXMgInBhc3N3b3JkIG1pbiBhZ2UiLiAgTWluIGFnZSBzaG91bGQgbm90Ci0t ICAgIGJsb2NrIHBhc3N3b3JkIHVwZGF0ZSBpZiB0aGUgcGFzc3dvcmQgd2FzIHJlc2V0LgotLSAg ICAiIiIKLS0KLS0gICAgIyBTZXR1cCBTU0wgKGZvciBsZGFwcGFzc3dkIHRlc3QpCi0tICAgIHRv cG8uc3RhbmRhbG9uZS5lbmFibGVfdGxzKCkKLS0KLS0gICAgIyBDb25maWd1cmUgcGFzc3dvcmQg cG9saWN5Ci0tICAgIHRyeToKLS0gICAgICAgIHBvbGljeSA9IFB3UG9saWN5TWFuYWdlcih0b3Bv LnN0YW5kYWxvbmUpCi0tICAgICAgICBwb2xpY3kuc2V0X2dsb2JhbF9wb2xpY3kocHJvcGVydGll cz17J25zc2xhcGQtcHdwb2xpY3ktbG9jYWwnOiAnb24nLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICdwYXNzd29yZE11c3RDaGFuZ2UnOiAnb24nLAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwYXNzd29yZEV4cCc6 ICdvbicsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Bh c3N3b3JkTWF4QWdlJzogJzg2NDAwMDAwJywKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAncGFzc3dvcmRNaW5BZ2UnOiAnODY0MDAwMCcsCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Bhc3N3b3JkQ2hhbmdlJzogJ29u J30pCi0tICAgIGV4Y2VwdCBsZGFwLkxEQVBFcnJvciBhcyBlOgotLSAgICAgICAgbG9nLmZhdGFs KCdGYWlsZWQgdG8gc2V0IHBhc3N3b3JkIHBvbGljeTogJyArIHN0cihlKSkKLS0KLS0gICAgIyBB ZGQgdXNlciwgYmluZCwgYW5kIHNldCBwYXNzd29yZAotLSAgICB0cnk6Ci0tICAgICAgICB0b3Bv LnN0YW5kYWxvbmUuYWRkX3MoRW50cnkoKFVTRVJfRE4sIHsKLS0gICAgICAgICAgICAnb2JqZWN0 Y2xhc3MnOiAndG9wIGV4dGVuc2libGVPYmplY3QnLnNwbGl0KCksCi0tICAgICAgICAgICAgJ3Vp ZCc6ICd1c2VyMScsCi0tICAgICAgICAgICAgJ3VzZXJwYXNzd29yZCc6IFBBU1NXT1JECi0tICAg ICAgICB9KSkpCi0tICAgIGV4Y2VwdCBsZGFwLkxEQVBFcnJvciBhcyBlOgotLSAgICAgICAgbG9n LmZhdGFsKCdGYWlsZWQgdG8gYWRkIHVzZXI6IGVycm9yICcgKyBlLmFyZ3NbMF1bJ2Rlc2MnXSkK LS0gICAgICAgIGFzc2VydCBGYWxzZQotLQotLSAgICAjIFJlc2V0IHBhc3N3b3JkIGFzIFJvb3RE TgotLSAgICB0cnk6Ci0tICAgICAgICB0b3BvLnN0YW5kYWxvbmUubW9kaWZ5X3MoVVNFUl9ETiwg WyhsZGFwLk1PRF9SRVBMQUNFLCAndXNlcnBhc3N3b3JkJywgZW5zdXJlX2J5dGVzKFBBU1NXT1JE KSldKQotLSAgICBleGNlcHQgbGRhcC5MREFQRXJyb3IgYXMgZToKLS0gICAgICAgIGxvZy5mYXRh bCgnRmFpbGVkIHRvIGJpbmQ6IGVycm9yICcgKyBlLmFyZ3NbMF1bJ2Rlc2MnXSkKLS0gICAgICAg IGFzc2VydCBGYWxzZQotLQotLSAgICB0aW1lLnNsZWVwKDEpCi0tCi0tICAgICMgUmVzZXQgcGFz c3dvcmQgYXMgdXNlcgotLSAgICB0cnk6Ci0tICAgICAgICB0b3BvLnN0YW5kYWxvbmUuc2ltcGxl X2JpbmRfcyhVU0VSX0ROLCBQQVNTV09SRCkKLS0gICAgZXhjZXB0IGxkYXAuTERBUEVycm9yIGFz IGU6Ci0tICAgICAgICBsb2cuZmF0YWwoJ0ZhaWxlZCB0byBiaW5kOiBlcnJvciAnICsgZS5hcmdz WzBdWydkZXNjJ10pCi0tICAgICAgICBhc3NlcnQgRmFsc2UKLS0KLS0gICAgdHJ5OgotLSAgICAg ICAgdG9wby5zdGFuZGFsb25lLm1vZGlmeV9zKFVTRVJfRE4sIFsobGRhcC5NT0RfUkVQTEFDRSwg J3VzZXJwYXNzd29yZCcsIGVuc3VyZV9ieXRlcyhQQVNTV09SRCkpXSkKLS0gICAgZXhjZXB0IGxk YXAuTERBUEVycm9yIGFzIGU6Ci0tICAgICAgICBsb2cuZmF0YWwoJ0ZhaWxlZCB0byBjaGFuZ2Ug cGFzc3dvcmQ6IGVycm9yICcgKyBlLmFyZ3NbMF1bJ2Rlc2MnXSkKLS0gICAgICAgIGFzc2VydCBG YWxzZQotLQotLSAgICAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotLSAgICAj IE1ha2Ugc3VyZSBsZGFwcGFzc3dkIGFsc28gd29ya3MKLS0gICAgIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKLS0KLS0gICAgIyBSZXNldCBwYXNzd29yZCBhcyBSb290RE4KLS0g ICAgdHJ5OgotLSAgICAgICAgdG9wby5zdGFuZGFsb25lLnNpbXBsZV9iaW5kX3MoRE5fRE0sIFBB U1NXT1JEKQotLSAgICBleGNlcHQgbGRhcC5MREFQRXJyb3IgYXMgZToKLS0gICAgICAgIGxvZy5m YXRhbCgnRmFpbGVkIHRvIGJpbmQgYXMgcm9vdGRuOiBlcnJvciAnICsgZS5hcmdzWzBdWydkZXNj J10pCi0tICAgICAgICBhc3NlcnQgRmFsc2UKLS0KLS0gICAgdHJ5OgotLSAgICAgICAgdG9wby5z dGFuZGFsb25lLm1vZGlmeV9zKFVTRVJfRE4sIFsobGRhcC5NT0RfUkVQTEFDRSwgJ3VzZXJwYXNz d29yZCcsIGVuc3VyZV9ieXRlcyhQQVNTV09SRCkpXSkKLS0gICAgZXhjZXB0IGxkYXAuTERBUEVy cm9yIGFzIGU6Ci0tICAgICAgICBsb2cuZmF0YWwoJ0ZhaWxlZCB0byBiaW5kOiBlcnJvciAnICsg ZS5hcmdzWzBdWydkZXNjJ10pCi0tICAgICAgICBhc3NlcnQgRmFsc2UKLS0KLS0gICAgdGltZS5z bGVlcCgxKQotLQotLSAgICAjIFJ1biBsZGFwcGFzc3dkIGFzIHRoZSBVc2VyLgotLSAgICBvcy5l bnZpcm9uWyJMREFQVExTX0NBQ0VSVERJUiJdID0gdG9wby5zdGFuZGFsb25lLmdldF9jZXJ0X2Rp cigpCi0tICAgIGNtZCA9ICgnbGRhcHBhc3N3ZCcgKyAnIC1oICcgKyB0b3BvLnN0YW5kYWxvbmUu aG9zdCArICcgLVogLXAgMzg5MDEgLUQgJyArIFVTRVJfRE4gKwotLSAgICAgICAgICAgJyAtdyBw YXNzd29yZCAtYSBwYXNzd29yZCAtcyBwYXNzd29yZDIgJyArIFVTRVJfRE4pCi0tICAgIG9zLnN5 c3RlbShjbWQpCi0tICAgIHRpbWUuc2xlZXAoMSkKLS0KLS0gICAgdHJ5OgotLSAgICAgICAgdG9w by5zdGFuZGFsb25lLnNpbXBsZV9iaW5kX3MoVVNFUl9ETiwgInBhc3N3b3JkMiIpCi0tICAgIGV4 Y2VwdCBsZGFwLkxEQVBFcnJvciBhcyBlOgotLSAgICAgICAgbG9nLmZhdGFsKCdGYWlsZWQgdG8g YmluZDogZXJyb3IgJyArIGUuYXJnc1swXVsnZGVzYyddKQotLSAgICAgICAgYXNzZXJ0IEZhbHNl Ci0tCi0tICAgIGxvZy5pbmZvKCdUZXN0IFBhc3NlZCcpCi0tCi0tCi0taWYgX19uYW1lX18gPT0g J19fbWFpbl9fJzoKLS0gICAgIyBSdW4gaXNvbGF0ZWQKLS0gICAgIyAtcyBmb3IgREVCVUcgbW9k ZQotLSAgICBDVVJSRU5UX0ZJTEUgPSBvcy5wYXRoLnJlYWxwYXRoKF9fZmlsZV9fKQotLSAgICBw eXRlc3QubWFpbigiLXMgJXMiICUgQ1VSUkVOVF9GSUxFKQotLS0gCi0yLjUzLjAKLQoKZGlmZiAt LWdpdCBhLzAwNTctSXNzdWUtNTg1My1VcGRhdGUtY29uY3JlYWQtdG8tMC41LjEwLnBhdGNoIGIv MDA1Ny1Jc3N1ZS01ODUzLVVwZGF0ZS1jb25jcmVhZC10by0wLjUuMTAucGF0Y2gKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMyMmViNGUuLjAwMDAwMDAKLS0tIGEvMDA1Ny1Jc3N1ZS01 ODUzLVVwZGF0ZS1jb25jcmVhZC10by0wLjUuMTAucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw5 NTIgKzAsMCBAQAotRnJvbSAwZTJkOWM0Mjg4ODczNDQ2ZGNiM2Q4YmZmNjFjNTU4ZmYyYjY2ODFh IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogVmlrdG9yIEFzaGlyb3YgPHZhc2hpcm92 QHJlZGhhdC5jb20+Ci1EYXRlOiBNb24sIDIzIEZlYiAyMDI2IDA5OjQ5OjUyICswMTAwCi1TdWJq ZWN0OiBbUEFUQ0hdIElzc3VlIDU4NTMgLSBVcGRhdGUgY29uY3JlYWQgdG8gMC41LjEwCi0KLURl c2NyaXB0aW9uOgotVXBkYXRlIGNvbmNyZWFkIHRvIDAuNS4xMCBhbmQgdXBkYXRlIENhcmdvLmxv Y2sKLQotUmVsYXRlczogaHR0cHM6Ly9naXRodWIuY29tLzM4OWRzLzM4OS1kcy1iYXNlL2lzc3Vl cy81ODUzCi0KLVJldmlld2VkIGJ5OiBAZHJvaWRlY2sgKFRoYW5rcyEpCi0tLS0KLSBzcmMvQ2Fy Z28ubG9jayAgICAgICAgICAgfCA1MTUgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0tCi0gc3JjL2xpYnJzbGFwZC9DYXJnby50b21sIHwgICAyICstCi0gMiBmaWxlcyBjaGFu Z2VkLCAzMTIgaW5zZXJ0aW9ucygrKSwgMjA1IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEv c3JjL0NhcmdvLmxvY2sgYi9zcmMvQ2FyZ28ubG9jawotaW5kZXggODdhZWVlODUyLi40MjUzNzE0 NzggMTAwNjQ0Ci0tLS0gYS9zcmMvQ2FyZ28ubG9jawotKysrIGIvc3JjL0NhcmdvLmxvY2sKLUBA IC0yLDI3ICsyLDE4IEBACi0gIyBJdCBpcyBub3QgaW50ZW5kZWQgZm9yIG1hbnVhbCBlZGl0aW5n LgotIHZlcnNpb24gPSAzCi0gCi0tW1twYWNrYWdlXV0KLS1uYW1lID0gImFkZHIybGluZSIKLS12 ZXJzaW9uID0gIjAuMjQuMiIKLS1zb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29t L3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0tY2hlY2tzdW0gPSAiZGZiZTI3N2U1NmEzNzYw MDA4NzcwOTBkYTgzNzY2MGI0NDI3YWFkNTMwZTMwMjhkNDRlMGJmZmU0Zjg5YTFjMSIKLS1kZXBl bmRlbmNpZXMgPSBbCi0tICJnaW1saSIsCi0tXQotLQotLVtbcGFja2FnZV1dCi0tbmFtZSA9ICJh ZGxlcjIiCi0tdmVyc2lvbiA9ICIyLjAuMSIKLS1zb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9n aXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0tY2hlY2tzdW0gPSAiMzIwMTE5 NTc5ZmNhZDljMjE4ODRmNWM0ODYxZDE2MTc0ZDBlMDYyNTA2MjUyNjZmNTBmZTY4OTgzNDBhYmVm YSIKLS0KLSBbW3BhY2thZ2VdXQotIG5hbWUgPSAiYWxsb2NhdG9yLWFwaTIiCi0gdmVyc2lvbiA9 ICIwLjIuMjEiCi0gc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxh bmcvY3JhdGVzLmlvLWluZGV4IgotIGNoZWNrc3VtID0gIjY4M2Q3OTEwZTc0MzUxOGIwZTM0ZjEx ODZmOTI0OTRiZWNhY2IwNDdjN2I2YmY2MTZjOTY3NzIxODBmZWY5MjMiCi0gCi0rW1twYWNrYWdl XV0KLStuYW1lID0gImFueWhvdyIKLSt2ZXJzaW9uID0gIjEuMC4xMDIiCi0rc291cmNlID0gInJl Z2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgotK2No ZWNrc3VtID0gIjdmMjAyZGY4NjQ4NGM4NjhkYmFkN2VhYTU1N2VmNzg1ZDVjNjYyOTVlNDFiNDYw ZWY5MjJlY2EwNzIzYjg0MmMiCi0rCi0gW1twYWNrYWdlXV0KLSBuYW1lID0gImF0dHkiCi0gdmVy c2lvbiA9ICIwLjIuMTQiCi1AQCAtNDAsMjEgKzMxLDYgQEAgdmVyc2lvbiA9ICIxLjUuMCIKLSBz b3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8t aW5kZXgiCi0gY2hlY2tzdW0gPSAiYzA4NjA2ZjhjM2NiZjRjZTZlYzhlMjhmYjAwMTRhMmMwODY3 MDhmZTk1NGVhYTg4NTM4NGE2MTY1MTcyZTdlOCIKLSAKLS1bW3BhY2thZ2VdXQotLW5hbWUgPSAi YmFja3RyYWNlIgotLXZlcnNpb24gPSAiMC4zLjc1IgotLXNvdXJjZSA9ICJyZWdpc3RyeStodHRw czovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKLS1jaGVja3N1bSA9ICI2 ODA2YTYzMjFlYzU4MTA2ZmVhMTViZWNkYWQ5ODM3MWUyOGQ5MmNjYmM3YzhmMWIzYjZkZDcyNGZl OGYxMDAyIgotLWRlcGVuZGVuY2llcyA9IFsKLS0gImFkZHIybGluZSIsCi0tICJjZmctaWYiLAot LSAibGliYyIsCi0tICJtaW5pel9veGlkZSIsCi0tICJvYmplY3QiLAotLSAicnVzdGMtZGVtYW5n bGUiLAotLSAid2luZG93cy10YXJnZXRzIiwKLS1dCi0tCi0gW1twYWNrYWdlXV0KLSBuYW1lID0g ImJhc2U2NCIKLSB2ZXJzaW9uID0gIjAuMTMuMSIKLUBAIC02OSw5ICs0NSw5IEBAIGNoZWNrc3Vt ID0gImJlZjM4ZDQ1MTYzYzJmMWRkZTA5NGE3ZGZkMzNjY2Y1OTVjOTI5MDVjOGY4ZjRmZGMxOGQw NmZiMTAzNzcxOGEiCi0gCi0gW1twYWNrYWdlXV0KLSBuYW1lID0gImJpdGZsYWdzIgotLXZlcnNp b24gPSAiMi45LjEiCi0rdmVyc2lvbiA9ICIyLjExLjAiCi0gc291cmNlID0gInJlZ2lzdHJ5K2h0 dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgotLWNoZWNrc3VtID0g IjFiOGU1Njk4NWVjNjJkMTdlOWMxMDAxZGM4OWM4OGVjZDdkYzA4ZTQ3ZWJhNWVjN2MyOWM3YjVl ZWVjZGU5NjciCi0rY2hlY2tzdW0gPSAiODQzODY3YmU5NmM4ZGFhZDBkNzU4YjU3ZGY5MzkyYjZk OGQyNzExMzRmY2U1NDlkZTZjZTE2OWZmOThhOTJhZiIKLSAKLSBbW3BhY2thZ2VdXQotIG5hbWUg PSAiYnl0ZW9yZGVyIgotQEAgLTg2LDggKzYyLDggQEAgc291cmNlID0gInJlZ2lzdHJ5K2h0dHBz Oi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgotIGNoZWNrc3VtID0gImRh NmJjMTFiMDc1MjlmMTY5NDQzMDcyNzJkNWJkOWIyMjUzMGJjN2QwNTc1MTcxN2M5ZDQxNjU4NmNl ZGFiNDkiCi0gZGVwZW5kZW5jaWVzID0gWwotICAiY2xhcCIsCi0tICJoZWNrIiwKLS0gImluZGV4 bWFwIiwKLSsgImhlY2sgMC40LjEiLAotKyAiaW5kZXhtYXAgMS45LjMiLAotICAibG9nIiwKLSAg InByb2MtbWFjcm8yIiwKLSAgInF1b3RlIiwKLUBAIC0xMDAsMTAgKzc2LDExIEBAIGRlcGVuZGVu Y2llcyA9IFsKLSAKLSBbW3BhY2thZ2VdXQotIG5hbWUgPSAiY2MiCi0tdmVyc2lvbiA9ICIxLjIu MjciCi0rdmVyc2lvbiA9ICIxLjIuNTYiCi0gc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0 aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgotLWNoZWNrc3VtID0gImQ0ODdhYTA3 MWI1ZjY0ZGE2ZjE5YTNlODQ4ZTM1Nzg5NDRiNzI2ZWU1YTQ4NTRiODIxNzJmMDJhYTg3NmJmZGMi Ci0rY2hlY2tzdW0gPSAiYWViZjM1NjkxZDFiZmIwYWMzODZhNjliYWMyZmRlNGRkMjc2ZmI2MThj ZjhiZjRmNTMxOGZlMjg1ZTgyMWJiMiIKLSBkZXBlbmRlbmNpZXMgPSBbCi0rICJmaW5kLW1zdmMt dG9vbHMiLAotICAiam9ic2VydmVyIiwKLSAgImxpYmMiLAotICAic2hsZXgiLAotQEAgLTExMSw5 ICs4OCw5IEBAIGRlcGVuZGVuY2llcyA9IFsKLSAKLSBbW3BhY2thZ2VdXQotIG5hbWUgPSAiY2Zn LWlmIgotLXZlcnNpb24gPSAiMS4wLjEiCi0rdmVyc2lvbiA9ICIxLjAuNCIKLSBzb3VyY2UgPSAi cmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0t Y2hlY2tzdW0gPSAiOTU1NTU3OGJjOWU1NzcxNGM4MTJhMWY4NGU0ZmM1YjRkMjFmY2IwNjM0OTBj NjI0ZGUwMTlmNzQ2NGM5MTI2OCIKLStjaGVja3N1bSA9ICI5MzMwZjhiMmZmMTNmMzQ1NDBiNDRl OTQ2ZWYzNTExMTgyNTcyN2IzOGQzMzI4NmVmOTg2MTQyNjE1MTIxODAxIgotIAotIFtbcGFja2Fn ZV1dCi0gbmFtZSA9ICJjbGFwIgotQEAgLTEyNCw3ICsxMDEsNyBAQCBkZXBlbmRlbmNpZXMgPSBb Ci0gICJhdHR5IiwKLSAgImJpdGZsYWdzIDEuMy4yIiwKLSAgImNsYXBfbGV4IiwKLS0gImluZGV4 bWFwIiwKLSsgImluZGV4bWFwIDEuOS4zIiwKLSAgInN0cnNpbSIsCi0gICJ0ZXJtY29sb3IiLAot ICAidGV4dHdyYXAiLAotQEAgLTE0MSwxNCArMTE4LDE0IEBAIGRlcGVuZGVuY2llcyA9IFsKLSAK LSBbW3BhY2thZ2VdXQotIG5hbWUgPSAiY29uY3JlYWQiCi0tdmVyc2lvbiA9ICIwLjUuNiIKLSt2 ZXJzaW9uID0gIjAuNS4xMCIKLSBzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29t L3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0tY2hlY2tzdW0gPSAiN2I2MzllZWFhNTUwZWJh MGM4YmU0NWIyOTJkNWUyNzJlNmQyOWJmZGZmYjRkZjY5MjVkNjUxZWQ5ZWQxMGZkNiIKLStjaGVj a3N1bSA9ICI2NTg4ZTllNjhlMTEyMDdmYjlhNWFhYmQ4ODc2NTE4Nzk2OWU2YmNiYTk4NzYzYzQw YmNhZDg3YjJhNzNlOWY1IgotIGRlcGVuZGVuY2llcyA9IFsKLSAgImNyb3NzYmVhbS1lcG9jaCIs Ci0gICJjcm9zc2JlYW0tcXVldWUiLAotICAiY3Jvc3NiZWFtLXV0aWxzIiwKLS0gImZvbGRoYXNo IiwKLSsgImZvbGRoYXNoIDAuMi4wIiwKLSAgImxydSIsCi0gICJzbWFsbHZlYyIsCi0gICJzcHRy IiwKLUBAIC0yMTAsOSArMTg3LDkgQEAgY2hlY2tzdW0gPSAiODc3YTRhY2U4NzEzYjBiY2YyYTRl N2VlYzgyNTI5YzAyOWYxZDA2MTk4ODZkMTgxNDVmZWE5NmMzZmZlNWMwZiIKLSAKLSBbW3BhY2th Z2VdXQotIG5hbWUgPSAiZXJybm8iCi0tdmVyc2lvbiA9ICIwLjMuMTIiCi0rdmVyc2lvbiA9ICIw LjMuMTQiCi0gc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcv Y3JhdGVzLmlvLWluZGV4IgotLWNoZWNrc3VtID0gImNlYTE0ZWY5MzU1ZTNiZWFiMDYzNzAzYWE5 ZGFiMTVhZmQyNWYwNjY3YzM0MTMxMGMxZTUyNzRiYjFkMGRhMTgiCi0rY2hlY2tzdW0gPSAiMzlj YWI3MTYxN2FlMGQ2M2Y1MWEzNmQ2OWY4NjYzOTE3MzViNTE2OTFkYmRhNjNjZjZmOTZkMDQyYjYz ZWZlYiIKLSBkZXBlbmRlbmNpZXMgPSBbCi0gICJsaWJjIiwKLSAgIndpbmRvd3Mtc3lzIiwKLUBA IC0yMzIsMTcgKzIwOSwyOSBAQCBjaGVja3N1bSA9ICI5MzgwNDU2MGU2MzgzNzBhOGJlNmQ1OWNl NzFlZDgwM2U1NWUyMzBhYmRiZjQyNTk4ZTY2NmI0MWFkZGE5YjFmIgotIGRlcGVuZGVuY2llcyA9 IFsKLSAgImJhc2U2NCIsCi0gICJieXRlb3JkZXIiLAotLSAiZ2V0cmFuZG9tIDAuMi4xNiIsCi0r ICJnZXRyYW5kb20gMC4yLjE3IiwKLSAgIm9wZW5zc2wiLAotICAiemVyb2l6ZSIsCi0gXQotIAot K1tbcGFja2FnZV1dCi0rbmFtZSA9ICJmaW5kLW1zdmMtdG9vbHMiCi0rdmVyc2lvbiA9ICIwLjEu OSIKLStzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0 ZXMuaW8taW5kZXgiCi0rY2hlY2tzdW0gPSAiNWJhZWJjMDc3NDE1MWY5MDVhMWEyY2M0MTk4OTMw MGIxZTZmYmIyOWFmZjBjZWZmYTEwNjRmZGQzMDg4ZDU4MiIKLSsKLSBbW3BhY2thZ2VdXQotIG5h bWUgPSAiZm9sZGhhc2giCi0gdmVyc2lvbiA9ICIwLjEuNSIKLSBzb3VyY2UgPSAicmVnaXN0cnkr aHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0gY2hlY2tzdW0g PSAiZDljNGY1ZGFjNWUxNWMyNGViOTk5YzI2MTgxYTZjYTQwYjM5ZmU5NDZjYmU0YzI2M2M3MjA5 NDY3YmM4M2FmMiIKLSAKLStbW3BhY2thZ2VdXQotK25hbWUgPSAiZm9sZGhhc2giCi0rdmVyc2lv biA9ICIwLjIuMCIKLStzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3Qt bGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0rY2hlY2tzdW0gPSAiNzdjZTI0Y2I1ODIyOGZiYjhhYTA0 MTQyNWJiMTA1MDg1MGFjMTkxNzc2ODZlYTZlMGY0MWE3MDQxNmY1NmZkYiIKLSsKLSBbW3BhY2th Z2VdXQotIG5hbWUgPSAiZm9yZWlnbi10eXBlcyIKLSB2ZXJzaW9uID0gIjAuMy4yIgotQEAgLTI2 MCwzMiArMjQ5LDM5IEBAIGNoZWNrc3VtID0gIjAwYjAyMjg0MTE5MDhjYTg2ODVkYmE3ZmMyY2Rk NzBlYzk5OTBhNmU3NTNlODliNmFjOTFhODRjNDBmYmFmNGIiCi0gCi0gW1twYWNrYWdlXV0KLSBu YW1lID0gImdldHJhbmRvbSIKLS12ZXJzaW9uID0gIjAuMi4xNiIKLSt2ZXJzaW9uID0gIjAuMi4x NyIKLSBzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0 ZXMuaW8taW5kZXgiCi0tY2hlY2tzdW0gPSAiMzM1ZmY5ZjEzNWU0Mzg0YzgxNTBkNmYyN2M2ZGFl ZDQzMzU3N2Y4NmI0NzUwNDE4MzM4YzAxYTFhMjUyODU5MiIKLStjaGVja3N1bSA9ICJmZjJhYmMw MGJlN2ZjYTZlYmM0NzQ1MjQ2OTdhZTI3NmFkODQ3YWQwYTZiM2ZhYTRiY2IwMjdlOWE0NjE0YWQw IgotIGRlcGVuZGVuY2llcyA9IFsKLSAgImNmZy1pZiIsCi0gICJsaWJjIiwKLS0gIndhc2kgMC4x MS4xK3dhc2ktc25hcHNob3QtcHJldmlldzEiLAotKyAid2FzaSIsCi0gXQotIAotIFtbcGFja2Fn ZV1dCi0gbmFtZSA9ICJnZXRyYW5kb20iCi0tdmVyc2lvbiA9ICIwLjMuMyIKLSt2ZXJzaW9uID0g IjAuMy40IgotIHNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5n L2NyYXRlcy5pby1pbmRleCIKLS1jaGVja3N1bSA9ICIyNjE0NWU1NjNlNTRmMmNhZGM0Nzc1NTNm MWVjNWVlNjUwYjAwODYyZjBhNThiY2QxMmNiZGM1ZjBlYTJkMmY0IgotK2NoZWNrc3VtID0gIjg5 OWRlZjVjMzdjNGZkN2IyNjY0NjQ4YzI4MTIwZWNlYzEzOGU0ZDM5NWI0NTllNWNhMzRmOWNjZTJk ZDc3ZmQiCi0gZGVwZW5kZW5jaWVzID0gWwotICAiY2ZnLWlmIiwKLSAgImxpYmMiLAotICAici1l ZmkiLAotLSAid2FzaSAwLjE0LjIrd2FzaS0wLjIuNCIsCi0rICJ3YXNpcDIiLAotIF0KLSAKLSBb W3BhY2thZ2VdXQotLW5hbWUgPSAiZ2ltbGkiCi0tdmVyc2lvbiA9ICIwLjMxLjEiCi0rbmFtZSA9 ICJnZXRyYW5kb20iCi0rdmVyc2lvbiA9ICIwLjQuMSIKLSBzb3VyY2UgPSAicmVnaXN0cnkraHR0 cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0tY2hlY2tzdW0gPSAi MDdlMjhlZGI4MDkwMGMxOWMyOGYxMDcyZjJlOGFlY2E3ZmEwNmIyM2NkNDE2OWNlZmUxYWY1YWEz MjYwNzgzZiIKLStjaGVja3N1bSA9ICIxMzllZjM5ODAwMTE4Yzc2ODNmMmZkM2M5OGMxYjIzYzA5 YWUwNzY1NTZiNDM1ZjhlOTA2NGFlMTA4YWFlZWVjIgotK2RlcGVuZGVuY2llcyA9IFsKLSsgImNm Zy1pZiIsCi0rICJsaWJjIiwKLSsgInItZWZpIiwKLSsgIndhc2lwMiIsCi0rICJ3YXNpcDMiLAot K10KLSAKLSBbW3BhY2thZ2VdXQotIG5hbWUgPSAiaGFzaGJyb3duIgotQEAgLTI5NSwxMyArMjkx LDIyIEBAIGNoZWNrc3VtID0gIjhhOWVlNzBjNDNhYWY0MTdjOTE0Mzk2NjQ1YTBmYTg1MjYyNDgw MWIyNGViYjdhZTc4ZmU4MjcyODg5YWM4ODgiCi0gCi0gW1twYWNrYWdlXV0KLSBuYW1lID0gImhh c2hicm93biIKLS12ZXJzaW9uID0gIjAuMTUuNCIKLSt2ZXJzaW9uID0gIjAuMTUuNSIKLSBzb3Vy Y2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5k ZXgiCi0tY2hlY2tzdW0gPSAiNTk3MWFjODU2MTFkYTcwNjdkYmZjYWJlZjNjNzBlYmI1NjA2MDE4 YWNkOWUyYTM5MDNhMGRhNTA3NTIxZTBkNSIKLStjaGVja3N1bSA9ICI5MjI5Y2ZlNTNkZmQ2OWYw NjA5YTQ5ZjY1NDYxYmQ5MzAwMWVhMWVmODg5Y2Q1NTI5ZGQxNzY1OTNmNTMzOGExIgotK2RlcGVu ZGVuY2llcyA9IFsKLSsgImZvbGRoYXNoIDAuMS41IiwKLStdCi0rCi0rW1twYWNrYWdlXV0KLStu YW1lID0gImhhc2hicm93biIKLSt2ZXJzaW9uID0gIjAuMTYuMSIKLStzb3VyY2UgPSAicmVnaXN0 cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0rY2hlY2tz dW0gPSAiODQxZDFjYzliZWQ3ZjkyMzZmMzIxZGY5NzcwMzAzNzNmNGE0MTYzYWUxYTdkYmZlMWE1 MWEyYzFhNTFkOTEwMCIKLSBkZXBlbmRlbmNpZXMgPSBbCi0gICJhbGxvY2F0b3ItYXBpMiIsCi0g ICJlcXVpdmFsZW50IiwKLS0gImZvbGRoYXNoIiwKLSsgImZvbGRoYXNoIDAuMi4wIiwKLSBdCi0g Ci0gW1twYWNrYWdlXV0KLUBAIC0zMTAsNiArMzE1LDEyIEBAIHZlcnNpb24gPSAiMC40LjEiCi0g c291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlv LWluZGV4IgotIGNoZWNrc3VtID0gIjk1NTA1YzM4YjQ1NzJiMmQ5MTBjZWNiMDI4MTU2MGY1NGI0 NDBhMTkzMzZjYmJjYjI3YmY2Y2U2YWRjNmY1YTgiCi0gCi0rW1twYWNrYWdlXV0KLStuYW1lID0g ImhlY2siCi0rdmVyc2lvbiA9ICIwLjUuMCIKLStzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9n aXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0rY2hlY2tzdW0gPSAiMjMwNGUw MDk4M2Y4N2ZmYjM4YjU1YjQ0NGI1ZTNiNjBhODg0YjVkMzBjMGZjYTdkODJmZTMzNDQ5YmJlNTVl YSIKLSsKLSBbW3BhY2thZ2VdXQotIG5hbWUgPSAiaGVybWl0LWFiaSIKLSB2ZXJzaW9uID0gIjAu MS4xOSIKLUBAIC0zMTksNiArMzMwLDEyIEBAIGRlcGVuZGVuY2llcyA9IFsKLSAgImxpYmMiLAot IF0KLSAKLStbW3BhY2thZ2VdXQotK25hbWUgPSAiaWQtYXJlbmEiCi0rdmVyc2lvbiA9ICIyLjMu MCIKLStzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0 ZXMuaW8taW5kZXgiCi0rY2hlY2tzdW0gPSAiM2QzMDY3ZDc5Yjk3NWU4ODQ0Y2E5ZWIwNzJlMTZi MzFjM2MxYzM2OTI4ZWRmOWM2Nzg5NTQ4YzUyNGQwZDk1NCIKLSsKLSBbW3BhY2thZ2VdXQotIG5h bWUgPSAiaW5kZXhtYXAiCi0gdmVyc2lvbiA9ICIxLjkuMyIKLUBAIC0zMjksMjcgKzM0Niw0NSBA QCBkZXBlbmRlbmNpZXMgPSBbCi0gICJoYXNoYnJvd24gMC4xMi4zIiwKLSBdCi0gCi0rW1twYWNr YWdlXV0KLStuYW1lID0gImluZGV4bWFwIgotK3ZlcnNpb24gPSAiMi4xMy4wIgotK3NvdXJjZSA9 ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIK LStjaGVja3N1bSA9ICI3NzE0ZTcwNDM3YTdkYzNhYzhlYjdlNmY4ZGY3NWZkOGViNDIyNjc1ZmM3 Njc4YWZmNzM2NDMwMTA5MmIxMDE3IgotK2RlcGVuZGVuY2llcyA9IFsKLSsgImVxdWl2YWxlbnQi LAotKyAiaGFzaGJyb3duIDAuMTYuMSIsCi0rICJzZXJkZSIsCi0rICJzZXJkZV9jb3JlIiwKLStd Ci0rCi0gW1twYWNrYWdlXV0KLSBuYW1lID0gIml0b2EiCi0tdmVyc2lvbiA9ICIxLjAuMTUiCi0r dmVyc2lvbiA9ICIxLjAuMTciCi0gc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNv bS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgotLWNoZWNrc3VtID0gIjRhNWYxM2I4NThjOGQz MTRlZTNlOGY2MzkwMTFmN2NjZWZlNzFmOTdmOTZlNTAxNTFmYjk5MWYyNjc5MjhlMmMiCi0rY2hl Y2tzdW0gPSAiOTJlY2M2NjE4MTgxZGVmMDQ1NzM5MmNjZDBlZTUxMTk4ZTA2NWUwMTZkMWQ1Mjdh N2FjMWI2ZGM3YzFmMDlkMiIKLSAKLSBbW3BhY2thZ2VdXQotIG5hbWUgPSAiam9ic2VydmVyIgot LXZlcnNpb24gPSAiMC4xLjMzIgotK3ZlcnNpb24gPSAiMC4xLjM0IgotIHNvdXJjZSA9ICJyZWdp c3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKLS1jaGVj a3N1bSA9ICIzOGYyNjJmMDk3YzE3NGFkZWJlNDFlYjczZDY2YWU5YzA2YjI4NDRmYjBkYTY5OTY5 NjQ3YmJkZGQ5YjA1MzhhIgotK2NoZWNrc3VtID0gIjlhZmIzZGU0Mzk1ZDZiM2U2N2E3ODBiNmRl NjRiNTFjOTc4ZWNmMTFjYjlhNDYyYzY2YmU3ZDRjYTkwMzlkMzMiCi0gZGVwZW5kZW5jaWVzID0g WwotLSAiZ2V0cmFuZG9tIDAuMy4zIiwKLSsgImdldHJhbmRvbSAwLjMuNCIsCi0gICJsaWJjIiwK LSBdCi0gCi0rW1twYWNrYWdlXV0KLStuYW1lID0gImxlYjEyOGZtdCIKLSt2ZXJzaW9uID0gIjAu MS4wIgotK3NvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2Ny YXRlcy5pby1pbmRleCIKLStjaGVja3N1bSA9ICIwOWVkZDllOGI1NGU0OWU1ODdlNGY2Mjk1YTdk MjljM2VhOTRkNDY5Y2I0MGFiOGNhNzBiMjg4MjQ4YTgxZGIyIgotKwotIFtbcGFja2FnZV1dCi0g bmFtZSA9ICJsaWJjIgotLXZlcnNpb24gPSAiMC4yLjE3NCIKLSt2ZXJzaW9uID0gIjAuMi4xODIi Ci0gc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVz LmlvLWluZGV4IgotLWNoZWNrc3VtID0gIjExNzE2OTMyOTMwOTk5OTJlMTljZGRlYTRlOGI4NDk5 NjRlOTg0NmY0YWNlZTExYjM5NDhiY2MzMzdiZTg3NzYiCi0rY2hlY2tzdW0gPSAiNjgwMGJhZGI2 Y2IyMDgyZmZkN2I2YTY3ZTYxMjViYjM5ZjE4NzgyZjc5MzUyMGNhZWU4Y2I4ODQ2YmUwNjExMiIK LSAKLSBbW3BhY2thZ2VdXQotIG5hbWUgPSAibGlicm5zc2xhcGQiCi1AQCAtMzcyLDQ4ICs0MDcs MzAgQEAgZGVwZW5kZW5jaWVzID0gWwotIAotIFtbcGFja2FnZV1dCi0gbmFtZSA9ICJsaW51eC1y YXctc3lzIgotLXZlcnNpb24gPSAiMC45LjQiCi0rdmVyc2lvbiA9ICIwLjExLjAiCi0gc291cmNl ID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4 IgotLWNoZWNrc3VtID0gImNkOTQ1ODY0ZjA3ZmU5ZjUzNzFhMjdhZDdiNTJhMTcyYjRiNDk5OTk5 ZjFkOTc1NzRjOWZhNjgzNzM5MzdlMTIiCi0rY2hlY2tzdW0gPSAiZGYxZDNjM2I1M2RhNjRjZjU3 NjA0ODIyNzNhOThlNTc1YzY1MWE2N2VlYzdmNzdkZjk2YjViNjQyZGU4ZjAzOSIKLSAKLSBbW3Bh Y2thZ2VdXQotIG5hbWUgPSAibG9nIgotLXZlcnNpb24gPSAiMC40LjI3IgotK3ZlcnNpb24gPSAi MC40LjI5IgotIHNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5n L2NyYXRlcy5pby1pbmRleCIKLS1jaGVja3N1bSA9ICIxM2RjMmRmMzUxZTMyMDI3ODNhMWZlMGQ0 NDM3NWY3Mjk1ZmZiNDA0OTI2N2IwZjMwMTgzNDZkYzEyMmExZDk0IgotK2NoZWNrc3VtID0gIjVl NTAzMmUyNDAxOTA0NWM3NjJkM2MwZjI4ZjViNmI4YmJmMzg1NjNhNjU5MDgzODliZjc5Nzg3NTg5 MjA4OTciCi0gCi0gW1twYWNrYWdlXV0KLSBuYW1lID0gImxydSIKLS12ZXJzaW9uID0gIjAuMTMu MCIKLSt2ZXJzaW9uID0gIjAuMTYuMyIKLSBzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRo dWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0tY2hlY2tzdW0gPSAiMjI3NzQ4ZDU1 ZjJmMGFiNDczNWQ4N2ZkNjIzNzk4Y2I2YjY2NDUxMmZlOTc5NzA1ZjgyOWM5ZjgxYzkzNDQ2NSIK LStjaGVja3N1bSA9ICJhMWRjNDdmNTkyYzA2ZjMzZjhlM2FlYTk1OTE3NzZlYzdjOWY5ZTQxMjQ3 NzhmZjhhM2MzYjg3MTU5ZjdlNTkzIgotIGRlcGVuZGVuY2llcyA9IFsKLS0gImhhc2hicm93biAw LjE1LjQiLAotKyAiaGFzaGJyb3duIDAuMTYuMSIsCi0gXQotIAotIFtbcGFja2FnZV1dCi0gbmFt ZSA9ICJtZW1jaHIiCi0tdmVyc2lvbiA9ICIyLjcuNSIKLS1zb3VyY2UgPSAicmVnaXN0cnkraHR0 cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0tY2hlY2tzdW0gPSAi MzJhMjgyZGE2NWZhYWYzODI4NmNmM2JlOTgzMjEzZmNmMWQyZTJhNTg3MDBlODA4ZjgzZjRlYTlh NDgwNGJjMCIKLS0KLS1bW3BhY2thZ2VdXQotLW5hbWUgPSAibWluaXpfb3hpZGUiCi0tdmVyc2lv biA9ICIwLjguOSIKLS1zb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3Qt bGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0tY2hlY2tzdW0gPSAiMWZhNzZhMmM4NmY3MDRiZGIyMjJk NjY5NjVmYjNkNjMyNjljZTM4NTE4YjgzY2IwNTc1ZmNhODU1ZWJiNjMxNiIKLS1kZXBlbmRlbmNp ZXMgPSBbCi0tICJhZGxlcjIiLAotLV0KLS0KLS1bW3BhY2thZ2VdXQotLW5hbWUgPSAib2JqZWN0 IgotLXZlcnNpb24gPSAiMC4zNi43IgotK3ZlcnNpb24gPSAiMi44LjAiCi0gc291cmNlID0gInJl Z2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgotLWNo ZWNrc3VtID0gIjYyOTQ4ZTE0ZDkyM2VhOTVlYTJjN2M4NmM3MTAxMzEzOGI2NjUyNWI4NmJkYzA4 ZDJkY2MyNjJiZGI0OTdiODciCi0tZGVwZW5kZW5jaWVzID0gWwotLSAibWVtY2hyIiwKLS1dCi0r Y2hlY2tzdW0gPSAiZjhjYTU4ZjQ0N2YwNmVkMTdkNWZjNDA0M2NlMWIxMGRkMjA1ZTA2MGZiM2Nl NWI5NzliOGVkOGU1OWZmM2Y3OSIKLSAKLSBbW3BhY2thZ2VdXQotIG5hbWUgPSAib25jZV9jZWxs IgotQEAgLTQyMywxMSArNDQwLDExIEBAIGNoZWNrc3VtID0gIjQyZjVlMTVjOTk1M2M1ZTRjY2Nl ZWIyZTczODJhNzE2NDgyYzM0NTE1MzE1ZjdiMDM1MzJiOGI0ZTgzOTNkMmQiCi0gCi0gW1twYWNr YWdlXV0KLSBuYW1lID0gIm9wZW5zc2wiCi0tdmVyc2lvbiA9ICIwLjEwLjczIgotK3ZlcnNpb24g PSAiMC4xMC43NSIKLSBzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3Qt bGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0tY2hlY2tzdW0gPSAiODUwNTczNGQ0NmM4YWIxZTE5YTFk Y2UzYWVmNTk3YWQ4N2RjYjRjMzdlNzE4ODIzMTc2OWJkNmJkNTFjZWJmOCIKLStjaGVja3N1bSA9 ICIwODgzOGRiMTIxMzk4YWQxN2FiODUzMWNlOWRlOTdiMjQ0NTg5MDg5ZTI5MGEzODRjOTAwY2I5 ZmY3NDM0MzI4IgotIGRlcGVuZGVuY2llcyA9IFsKLS0gImJpdGZsYWdzIDIuOS4xIiwKLSsgImJp dGZsYWdzIDIuMTEuMCIsCi0gICJjZmctaWYiLAotICAiZm9yZWlnbi10eXBlcyIsCi0gICJsaWJj IiwKLUBAIC00NDQsMTQgKzQ2MSwxNCBAQCBjaGVja3N1bSA9ICJhOTQ4NjY2YjYzN2EwZjQ2NWU4 NTY0YzczZTg5ZDRkZGUwMGQ3MmQ0ZDQ3M2NjOTcyZjM5MGZjM2RjZWU3ZDljIgotIGRlcGVuZGVu Y2llcyA9IFsKLSAgInByb2MtbWFjcm8yIiwKLSAgInF1b3RlIiwKLS0gInN5biAyLjAuMTAzIiwK LSsgInN5biAyLjAuMTE3IiwKLSBdCi0gCi0gW1twYWNrYWdlXV0KLSBuYW1lID0gIm9wZW5zc2wt c3lzIgotLXZlcnNpb24gPSAiMC45LjEwOSIKLSt2ZXJzaW9uID0gIjAuOS4xMTEiCi0gc291cmNl ID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4 IgotLWNoZWNrc3VtID0gIjkwMDk2ZTJlNDc2MzBkNzhiN2QxYzIwOTUyZGM2MjFmOTU3MTAzZjhi YzJjODM1OWVjODEyOTBkNzUyMzg1NzEiCi0rY2hlY2tzdW0gPSAiODJjYWIyZDUyMGFhNzVlM2M1 ODg5ODI4OTQyOTMyMWViNzg4YzMxMDY5NjNkMGRjODg2ZWM3YTVmNGFkYzMyMSIKLSBkZXBlbmRl bmNpZXMgPSBbCi0gICJjYyIsCi0gICJsaWJjIiwKLUBAIC00OTYsNiArNTEzLDE2IEBAIHZlcnNp b24gPSAiMC4zLjMyIgotIHNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVz dC1sYW5nL2NyYXRlcy5pby1pbmRleCIKLSBjaGVja3N1bSA9ICI3ZWRkZGJkMGI1MmQ3MzJiMjFh ZDlhNWZhYjVjNzA0YzE0Y2Q5NDllNWU5YTFlYzU5MjlhMjRmZGVkMWI5MDRjIgotIAotK1tbcGFj a2FnZV1dCi0rbmFtZSA9ICJwcmV0dHlwbGVhc2UiCi0rdmVyc2lvbiA9ICIwLjIuMzciCi0rc291 cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWlu ZGV4IgotK2NoZWNrc3VtID0gIjQ3OWNhOGFkYWNkZDdjZThmMWZiMzljZTllY2NjYmZlOTNhM2Yx MzQ0YjNkMGQ5N2YyMGJjMDE5NjIwOGY2MmIiCi0rZGVwZW5kZW5jaWVzID0gWwotKyAicHJvYy1t YWNybzIiLAotKyAic3luIDIuMC4xMTciLAotK10KLSsKLSBbW3BhY2thZ2VdXQotIG5hbWUgPSAi cHJvYy1tYWNyby1oYWNrIgotIHZlcnNpb24gPSAiMC41LjIwK2RlcHJlY2F0ZWQiCi1AQCAtNTA0 LDkgKzUzMSw5IEBAIGNoZWNrc3VtID0gImRjMzc1ZTE1MjcyNDdmZTFhOTdkOGI3MTU2Njc4ZGZl N2MxYWYyZmMwNzVjOWE0ZGIzNjkwZWNkMmExNDgwNjgiCi0gCi0gW1twYWNrYWdlXV0KLSBuYW1l ID0gInByb2MtbWFjcm8yIgotLXZlcnNpb24gPSAiMS4wLjk1IgotK3ZlcnNpb24gPSAiMS4wLjEw NiIKLSBzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0 ZXMuaW8taW5kZXgiCi0tY2hlY2tzdW0gPSAiMDJiM2U1ZTY4YTNhMWEwMmFhZDNlYzQ5MGE5ODAw N2NiYzEzYzM3Y2JlODRhM2NkN2I4ZTQwNmQ3NmU3Zjc3OCIKLStjaGVja3N1bSA9ICI4ZmQwMGYw YmIyZTkwZDgxZDEwNDRjMmIzMjYxN2Y2OGZjYjlmYTNiYjc2NDBjMjNlOWM3NDhlNTNmYjMwOTM0 IgotIGRlcGVuZGVuY2llcyA9IFsKLSAgInVuaWNvZGUtaWRlbnQiLAotIF0KLUBAIC01MjYsOSAr NTUzLDkgQEAgZGVwZW5kZW5jaWVzID0gWwotIAotIFtbcGFja2FnZV1dCi0gbmFtZSA9ICJxdW90 ZSIKLS12ZXJzaW9uID0gIjEuMC40MCIKLSt2ZXJzaW9uID0gIjEuMC40NCIKLSBzb3VyY2UgPSAi cmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0t Y2hlY2tzdW0gPSAiMTg4NWMwMzk1NzBkYzAwZGNiNGZmMDg3YTg5ZTE4NWZkNTZiYWUyMzRkZGM3 ZjA1NmE5NDViZjM2NDY3MjQ4ZCIKLStjaGVja3N1bSA9ICIyMWIyZWJjZjcyN2I3NzYwYzQ2MWYw OTFmOWYwZjUzOWI3N2I4ZTg3ZjJmZDg4MTMxZTdmMWI0MzNiM2NlY2U0IgotIGRlcGVuZGVuY2ll cyA9IFsKLSAgInByb2MtbWFjcm8yIiwKLSBdCi1AQCAtNTM5LDE5ICs1NjYsMTMgQEAgdmVyc2lv biA9ICI1LjMuMCIKLSBzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3Qt bGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0gY2hlY2tzdW0gPSAiNjljZGIzNGMxNThjZWIyODhkZjEx ZTE4YjRiZDM5ZGU5OTRmNjY1N2Q4Mzg0N2JkZmZkYmQ3ZjM0Njc1NGIwZiIKLSAKLS1bW3BhY2th Z2VdXQotLW5hbWUgPSAicnVzdGMtZGVtYW5nbGUiCi0tdmVyc2lvbiA9ICIwLjEuMjUiCi0tc291 cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWlu ZGV4IgotLWNoZWNrc3VtID0gIjk4OWU2NzM5ZjgwYzRhZDViMTNlMGZkN2ZlODk1MzExODAzNzVi MTg1MjBjYzhjODIwODBlNGRjNDAzNWI4NGYiCi0tCi0gW1twYWNrYWdlXV0KLSBuYW1lID0gInJ1 c3RpeCIKLS12ZXJzaW9uID0gIjEuMC43IgotK3ZlcnNpb24gPSAiMS4xLjMiCi0gc291cmNlID0g InJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4Igot LWNoZWNrc3VtID0gImM3MWU4M2Q2YWZlN2ZmNjQ4OTBlYzZiNzFkNmE2OWJiOGE2MTBhYjc4Y2Uz NjRiMzM1Mjg3NmJiNGM4MDEyNjYiCi0rY2hlY2tzdW0gPSAiMTQ2YzllMjQ3Y2NjMTgwYzFmNjE2 MTU0MzM4NjhjOTlmM2RlM2FlMjU2YTMwYTQzYjQ5ZjY3YzJkOTE3MWYzNCIKLSBkZXBlbmRlbmNp ZXMgPSBbCi0tICJiaXRmbGFncyAyLjkuMSIsCi0rICJiaXRmbGFncyAyLjExLjAiLAotICAiZXJy bm8iLAotICAibGliYyIsCi0gICJsaW51eC1yYXctc3lzIiwKLUBAIC01NTksNDEgKzU4MCw1MiBA QCBkZXBlbmRlbmNpZXMgPSBbCi0gXQotIAotIFtbcGFja2FnZV1dCi0tbmFtZSA9ICJyeXUiCi0t dmVyc2lvbiA9ICIxLjAuMjAiCi0rbmFtZSA9ICJzZW12ZXIiCi0rdmVyc2lvbiA9ICIxLjAuMjci Ci0gc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVz LmlvLWluZGV4IgotLWNoZWNrc3VtID0gIjI4ZDNiMmIxMzY2ZWMyMDk5NGYxZmQxOGMzYzU5NGYw NWM1ZGQ0YmM0NGQ4YmIwYzFjNjMyYzhkNjgyOTQ4MWYiCi0rY2hlY2tzdW0gPSAiZDc2N2ViMGFh YmM4ODBiMjk5NTZjMzU3MzQxNzBmMjZlZDU1MWE4NTlkYmQzNjFkMTQwY2RiZWNhNjFhYjFlMiIK LSAKLSBbW3BhY2thZ2VdXQotIG5hbWUgPSAic2VyZGUiCi0tdmVyc2lvbiA9ICIxLjAuMjE5Igot K3ZlcnNpb24gPSAiMS4wLjIyOCIKLSBzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIu Y29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0tY2hlY2tzdW0gPSAiNWYwZTJjNmVkNjYw NjAxOWI0ZTI5ZTY5ZGJhYmE5NWIxMTg1NDQxMGU1MzQ3ZDUyNTAwMjQ1NmRiYmI3ODZiNiIKLStj aGVja3N1bSA9ICI5YThlOTRlYTdmMzc4YmQzMmNiYmQzNzE5OGE0YTkxNDM2MTgwYzViYjQ3MjQx MWU0OGI1ZWMyZTIxMjRhZTllIgotK2RlcGVuZGVuY2llcyA9IFsKLSsgInNlcmRlX2NvcmUiLAot KyAic2VyZGVfZGVyaXZlIiwKLStdCi0rCi0rW1twYWNrYWdlXV0KLStuYW1lID0gInNlcmRlX2Nv cmUiCi0rdmVyc2lvbiA9ICIxLjAuMjI4IgotK3NvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dp dGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKLStjaGVja3N1bSA9ICI0MWQzODVj N2Q0Y2E1OGU1OWZjNzMyYWYyNWMzOTgzYjY3YWM4NTJjMWEyNTAwMGFmZTExNzVkZTQ1OGI2N2Fk IgotIGRlcGVuZGVuY2llcyA9IFsKLSAgInNlcmRlX2Rlcml2ZSIsCi0gXQotIAotIFtbcGFja2Fn ZV1dCi0gbmFtZSA9ICJzZXJkZV9kZXJpdmUiCi0tdmVyc2lvbiA9ICIxLjAuMjE5IgotK3ZlcnNp b24gPSAiMS4wLjIyOCIKLSBzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1 c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0tY2hlY2tzdW0gPSAiNWIwMjc2Y2Y3ZjJjNzMzNjVm NzE1N2M4MTIzYzIxY2Q5YTUwZmJiZDg0NDc1N2FmMjhjYTFmNTkyNWZjMmEwMCIKLStjaGVja3N1 bSA9ICJkNTQwZjIyMGQzMTg3MTczZGEyMjBmODg1YWI2NjYwODM2N2I2NTc0ZTkyNTAxMWE5MzUz ZTRiYWRkYTkxZDc5IgotIGRlcGVuZGVuY2llcyA9IFsKLSAgInByb2MtbWFjcm8yIiwKLSAgInF1 b3RlIiwKLS0gInN5biAyLjAuMTAzIiwKLSsgInN5biAyLjAuMTE3IiwKLSBdCi0gCi0gW1twYWNr YWdlXV0KLSBuYW1lID0gInNlcmRlX2pzb24iCi0tdmVyc2lvbiA9ICIxLjAuMTQwIgotK3ZlcnNp b24gPSAiMS4wLjE0OSIKLSBzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1 c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0tY2hlY2tzdW0gPSAiMjAwNjhiNmU5NmRjNmM5YmQy M2UwMWRmODgyN2U2YzdlMWYyZmRkZDQzYzIxODEwMzgyODAzYzEzNmI5OTM3MyIKLStjaGVja3N1 bSA9ICI4M2ZjMDM5NDczYzU1OTVhY2U4NjBkOGM0ZmFmYTIyMGZmNDc0YjNmYzZiZmRiNDI5MzMy N2YxYTM3ZTk0ZDg2IgotIGRlcGVuZGVuY2llcyA9IFsKLSAgIml0b2EiLAotICAibWVtY2hyIiwK LS0gInJ5dSIsCi0gICJzZXJkZSIsCi0rICJzZXJkZV9jb3JlIiwKLSsgInptaWoiLAotIF0KLSAK LSBbW3BhY2thZ2VdXQotQEAgLTY0OSw5ICs2ODEsOSBAQCBkZXBlbmRlbmNpZXMgPSBbCi0gCi0g W1twYWNrYWdlXV0KLSBuYW1lID0gInN5biIKLS12ZXJzaW9uID0gIjIuMC4xMDMiCi0rdmVyc2lv biA9ICIyLjAuMTE3IgotIHNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVz dC1sYW5nL2NyYXRlcy5pby1pbmRleCIKLS1jaGVja3N1bSA9ICJlNDMwN2UzMDA4OWQ2ZmQ2YWZm MjEyZjJkYTNhMWY5ZTMyZjMyMjNiMWYwMTBmYjA5YjdjOTVmOTBmM2NhMWU4IgotK2NoZWNrc3Vt ID0gImU2NjViODgwM2U3YjFkMmE3MjdmNDAyMzQ1NmJiYmJlNzRkYTY3MDk5YzU4NTI1OGFmMGFk OWM1MDEzYjliOTkiCi0gZGVwZW5kZW5jaWVzID0gWwotICAicHJvYy1tYWNybzIiLAotICAicXVv dGUiLAotQEAgLTY2MCwxMiArNjkyLDEyIEBAIGRlcGVuZGVuY2llcyA9IFsKLSAKLSBbW3BhY2th Z2VdXQotIG5hbWUgPSAidGVtcGZpbGUiCi0tdmVyc2lvbiA9ICIzLjIwLjAiCi0rdmVyc2lvbiA9 ICIzLjI1LjAiCi0gc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxh bmcvY3JhdGVzLmlvLWluZGV4IgotLWNoZWNrc3VtID0gImU4YTY0ZTM5ODUzNDlmMjQ0MWExYTll ZjBiODUzZjg2OTAwNmMzODU1ZjJjZGE2ODYyYTk0ZDI2ZWJiOWQ2YTEiCi0rY2hlY2tzdW0gPSAi MDEzNjc5MWY3Yzk1YjFmNmRkOTlmOWNjNzg2YjkxYmI4MWMzODAwYjYzOWIzNDc4ZTU2MWRkYjdi ZTk1ZTVmMSIKLSBkZXBlbmRlbmNpZXMgPSBbCi0gICJmYXN0cmFuZCIsCi0tICJnZXRyYW5kb20g MC4zLjMiLAotKyAiZ2V0cmFuZG9tIDAuNC4xIiwKLSAgIm9uY2VfY2VsbCIsCi0gICJydXN0aXgi LAotICAid2luZG93cy1zeXMiLAotQEAgLTY4OCwxMSArNzIwLDEwIEBAIGNoZWNrc3VtID0gImMx MzU0NzYxNWE0NGRjOWM0NTJhOGE1MzQ2MzhhY2RmMDcxMjBkNGI2ODQ3YzgxNzg3MDVkYTA2MzA2 YTMwNTciCi0gCi0gW1twYWNrYWdlXV0KLSBuYW1lID0gInRva2lvIgotLXZlcnNpb24gPSAiMS40 NS4xIgotK3ZlcnNpb24gPSAiMS40OS4wIgotIHNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dp dGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKLS1jaGVja3N1bSA9ICI3NWVmNTFh MzNlZjFkYTkyNWNlYTNlNGViMTIyODMzY2IzNzdjNjE0MzljYTQwMWI3NzBmNTQ5MDJiODA2Nzc5 IgotK2NoZWNrc3VtID0gIjcyYTI5MDNjZDc3MzY0NDFhYWM5ZGY5ZDc2ODhiZDBjZTQ4ZWRjY2Fh ZGYxODFjM2I5MGJlODAxZTgxZDNkODYiCi0gZGVwZW5kZW5jaWVzID0gWwotLSAiYmFja3RyYWNl IiwKLSAgInBpbi1wcm9qZWN0LWxpdGUiLAotIF0KLSAKLUBAIC03MDcsOSArNzM4LDkgQEAgZGVw ZW5kZW5jaWVzID0gWwotIAotIFtbcGFja2FnZV1dCi0gbmFtZSA9ICJ0cmFjaW5nIgotLXZlcnNp b24gPSAiMC4xLjQxIgotK3ZlcnNpb24gPSAiMC4xLjQ0IgotIHNvdXJjZSA9ICJyZWdpc3RyeSto dHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKLS1jaGVja3N1bSA9 ICI3ODRlMGFjNTM1ZGViNDUwNDU1Y2JmYTI4YTZmMGRmMTQ1ZWExYmI3YWU1MWI4MjFjZjVlNzky N2ZkY2ZiZGQwIgotK2NoZWNrc3VtID0gIjYzZTcxNjYyZmE0YjJhMmMzYTI2ZjU3MGYwMzdlYjk1 YmIxZjg1Mzk3ZjNjZDgwNzZjYWVkMmYwMjZhNmQxMDAiCi0gZGVwZW5kZW5jaWVzID0gWwotICAi cGluLXByb2plY3QtbGl0ZSIsCi0gICJ0cmFjaW5nLWF0dHJpYnV0ZXMiLAotQEAgLTcxOCwyOSAr NzQ5LDM1IEBAIGRlcGVuZGVuY2llcyA9IFsKLSAKLSBbW3BhY2thZ2VdXQotIG5hbWUgPSAidHJh Y2luZy1hdHRyaWJ1dGVzIgotLXZlcnNpb24gPSAiMC4xLjMwIgotK3ZlcnNpb24gPSAiMC4xLjMx IgotIHNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRl cy5pby1pbmRleCIKLS1jaGVja3N1bSA9ICI4MTM4M2FiNjRlNzJhN2E4YjhlMTMxMzBjNDllM2Rh YjI5ZGVmNmQwYzdkNzZhMDMwODdiM2NmNzFjNWM2OTAzIgotK2NoZWNrc3VtID0gIjc0OTBjZmE1 ZWM5NjM3NDY1Njg3NDA2NTFhYzY3ODFmNzAxYzljNWVhMjU3YzU4ZTA1N2YzYmE4Y2Y2OWU4ZGEi Ci0gZGVwZW5kZW5jaWVzID0gWwotICAicHJvYy1tYWNybzIiLAotICAicXVvdGUiLAotLSAic3lu IDIuMC4xMDMiLAotKyAic3luIDIuMC4xMTciLAotIF0KLSAKLSBbW3BhY2thZ2VdXQotIG5hbWUg PSAidHJhY2luZy1jb3JlIgotLXZlcnNpb24gPSAiMC4xLjM0IgotK3ZlcnNpb24gPSAiMC4xLjM2 IgotIHNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRl cy5pby1pbmRleCIKLS1jaGVja3N1bSA9ICJiOWQxMjU4MWYyMjdlOTNmMDk0ZDNhZjJhZTY5MGE1 NzRhYmI4YTJiOWI3YTk2ZTdjZmU5NjQ3YjJiNjE3Njc4IgotK2NoZWNrc3VtID0gImRiOTdjYWY5 ZDkwNmZiZGU1NTVkZDYyZmE5NWRkYmE5ZWVjZmQxNGNiMzg4ZTRmNDkxYTY2ZDc0Y2Q1ZmI3OWEi Ci0gZGVwZW5kZW5jaWVzID0gWwotICAib25jZV9jZWxsIiwKLSBdCi0gCi0gW1twYWNrYWdlXV0K LSBuYW1lID0gInVuaWNvZGUtaWRlbnQiCi0tdmVyc2lvbiA9ICIxLjAuMTgiCi0rdmVyc2lvbiA9 ICIxLjAuMjQiCi0gc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxh bmcvY3JhdGVzLmlvLWluZGV4IgotLWNoZWNrc3VtID0gIjVhNWYzOTQwNGE1ZGE1MDcxMmE0YzFl ZWNmMjVlOTBkZDYyYjYxMzUwMmI3ZTkyNWZkNGU0ZDE5YjVjOTY1MTIiCi0rY2hlY2tzdW0gPSAi ZTZlNDMxM2NkNWZjZDNkYWQ1Y2FmYTE3OTcwMmUyYjI0NGY3NjA5OTFmNDUzOTdkMTRkNGViZjM4 MjQ3ZGE3NSIKLSsKLStbW3BhY2thZ2VdXQotK25hbWUgPSAidW5pY29kZS14aWQiCi0rdmVyc2lv biA9ICIwLjIuNiIKLStzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3Qt bGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0rY2hlY2tzdW0gPSAiZWJjMWMwNGM3MTUxMGM3ZjcwMmI1 MmI3YzM1MDczNGM5ZmYxMjk1YzQ2NGEwMzMzNWIwMGJiODRmYzU0Zjg1MyIKLSAKLSBbW3BhY2th Z2VdXQotIG5hbWUgPSAidXVpZCIKLUBAIC03NDgsNyArNzg1LDcgQEAgdmVyc2lvbiA9ICIwLjgu MiIKLSBzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0 ZXMuaW8taW5kZXgiCi0gY2hlY2tzdW0gPSAiYmM1Y2Y5OGQ4MTg2MjQ0NDE0Yzg0ODAxN2YwZTI2 NzZiM2ZjYjQ2ODA3ZjY2NjhhOTdkZmU2NzM1OWEzYzRiNyIKLSBkZXBlbmRlbmNpZXMgPSBbCi0t ICJnZXRyYW5kb20gMC4yLjE2IiwKLSsgImdldHJhbmRvbSAwLjIuMTciLAotIF0KLSAKLSBbW3Bh Y2thZ2VdXQotQEAgLTc2NCwxMiArODAxLDU1IEBAIHNvdXJjZSA9ICJyZWdpc3RyeStodHRwczov L2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKLSBjaGVja3N1bSA9ICJjY2Yz ZWM2NTFhODQ3ZWIwMWRlNzNjY2FkMTVlYjdkOTlmODA0ODVkZTA0M2VmYjJmMzcwY2Q2NTRmNGVh NDRiIgotIAotIFtbcGFja2FnZV1dCi0tbmFtZSA9ICJ3YXNpIgotLXZlcnNpb24gPSAiMC4xNC4y K3dhc2ktMC4yLjQiCi0rbmFtZSA9ICJ3YXNpcDIiCi0rdmVyc2lvbiA9ICIxLjAuMit3YXNpLTAu Mi45IgotK3NvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2Ny YXRlcy5pby1pbmRleCIKLStjaGVja3N1bSA9ICI5NTE3ZjkyMzlmMDJjMDY5ZGI3NWU2NWYxNzRi M2RhODI4ZmU1ZjViOTQ1YzRkZDI2YmQyNWQ4OWMwM2ViY2Y1IgotK2RlcGVuZGVuY2llcyA9IFsK LSsgIndpdC1iaW5kZ2VuIiwKLStdCi0rCi0rW1twYWNrYWdlXV0KLStuYW1lID0gIndhc2lwMyIK LSt2ZXJzaW9uID0gIjAuNC4wK3dhc2ktMC4zLjAtcmMtMjAyNi0wMS0wNiIKLStzb3VyY2UgPSAi cmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0r Y2hlY2tzdW0gPSAiNTQyOGY4YmY4OGVhNWRkYzA4ZmFkZGVmMmFjNGE2N2UzOTBiODgxODZjNzAz Y2U2ZGJkOTU1ZTFjMTQ1YWNhNSIKLStkZXBlbmRlbmNpZXMgPSBbCi0rICJ3aXQtYmluZGdlbiIs Ci0rXQotKwotK1tbcGFja2FnZV1dCi0rbmFtZSA9ICJ3YXNtLWVuY29kZXIiCi0rdmVyc2lvbiA9 ICIwLjI0NC4wIgotK3NvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1s YW5nL2NyYXRlcy5pby1pbmRleCIKLStjaGVja3N1bSA9ICI5OTAwNjVmMmZlNjMwMDNmZTMzN2I5 MzJjZmI1ZTNiODBlMGI0ZDBmNWZmNjUwZTY5ODViMTA0OGY2MmM4MzE5IgotK2RlcGVuZGVuY2ll cyA9IFsKLSsgImxlYjEyOGZtdCIsCi0rICJ3YXNtcGFyc2VyIiwKLStdCi0rCi0rW1twYWNrYWdl XV0KLStuYW1lID0gIndhc20tbWV0YWRhdGEiCi0rdmVyc2lvbiA9ICIwLjI0NC4wIgotK3NvdXJj ZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRl eCIKLStjaGVja3N1bSA9ICJiYjBlMzUzZTZhMmZiZGMxNzY5MzJiYmFhYjQ5Mzc2MmViMTI1NWE3 OTAwZmUwZmVhMWEyZjk2YzI5NmNjOTA5IgotK2RlcGVuZGVuY2llcyA9IFsKLSsgImFueWhvdyIs Ci0rICJpbmRleG1hcCAyLjEzLjAiLAotKyAid2FzbS1lbmNvZGVyIiwKLSsgIndhc21wYXJzZXIi LAotK10KLSsKLStbW3BhY2thZ2VdXQotK25hbWUgPSAid2FzbXBhcnNlciIKLSt2ZXJzaW9uID0g IjAuMjQ0LjAiCi0gc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxh bmcvY3JhdGVzLmlvLWluZGV4IgotLWNoZWNrc3VtID0gIjk2ODNmOWE1YTk5OGQ4NzNjMGQyMWZj YmUzYzA4MzAwOTY3MDE0OWE4ZmFiMjI4NjQ0YjhiZDM2YjJjNDhjYjMiCi0rY2hlY2tzdW0gPSAi NDdiODA3YzcyZTFiYWM2OTM4MmIzYTZmYjNkYmU4ZWE0YzBlZDg3ZmY1NjI5Yjg2ODVhZTZiOWE2 MTEwMjhmZSIKLSBkZXBlbmRlbmNpZXMgPSBbCi0tICJ3aXQtYmluZGdlbi1ydCIsCi0rICJiaXRm bGFncyAyLjExLjAiLAotKyAiaGFzaGJyb3duIDAuMTUuNSIsCi0rICJpbmRleG1hcCAyLjEzLjAi LAotKyAic2VtdmVyIiwKLSBdCi0gCi0gW1twYWNrYWdlXV0KLUBAIC03OTAsOSArODcwLDkgQEAg Y2hlY2tzdW0gPSAiYWMzYjg3YzYzNjIwNDI2ZGQ5Yjk5MWU1Y2UwMzI5ZWZmNTQ1YmNjYmJiMzRm M2JlMDlmZjZmYjZhYjUxYjdiNiIKLSAKLSBbW3BhY2thZ2VdXQotIG5hbWUgPSAid2luYXBpLXV0 aWwiCi0tdmVyc2lvbiA9ICIwLjEuOSIKLSt2ZXJzaW9uID0gIjAuMS4xMSIKLSBzb3VyY2UgPSAi cmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0t Y2hlY2tzdW0gPSAiY2YyMjFjOTNlMTNhMzBkNzkzZjc2NDVhMGU3NzYyYzU1ZDE2OWRiYjBhNDk2 NzE5MThhMjMxOWQyODliMTBiYiIKLStjaGVja3N1bSA9ICJjMmE3YjFjMDNjODc2MTIyYWE0M2Yz MDIwZTZjM2MzZWU1YzA1MDgxYzlhMDA3MzlmYWY3NTAzYWViYTEwZDIyIgotIGRlcGVuZGVuY2ll cyA9IFsKLSAgIndpbmRvd3Mtc3lzIiwKLSBdCi1AQCAtODA0LDEwMyArODg0LDEzMCBAQCBzb3Vy Y2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5k ZXgiCi0gY2hlY2tzdW0gPSAiNzEyZTIyNzg0MWQwNTdjMWVlMWNkMmZiMjJmYTdlNWE1NDYxYWU4 ZTQ4ZmEyY2E3OWVjNDJjZmMxOTMxMTgzZiIKLSAKLSBbW3BhY2thZ2VdXQotLW5hbWUgPSAid2lu ZG93cy1zeXMiCi0tdmVyc2lvbiA9ICIwLjU5LjAiCi0rbmFtZSA9ICJ3aW5kb3dzLWxpbmsiCi0r dmVyc2lvbiA9ICIwLjIuMSIKLSBzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29t L3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0tY2hlY2tzdW0gPSAiMWUzOGJjNGQ3OWVkNjdm ZDA3NWJjYzI1MWExYzM5YjMyYTE3NzZiYmU5MmU1YmVmMWYwYmYxZjhjNTMxODUzYiIKLS1kZXBl bmRlbmNpZXMgPSBbCi0tICJ3aW5kb3dzLXRhcmdldHMiLAotLV0KLStjaGVja3N1bSA9ICJmMDgw NTIyMmU1N2Y3NTIxZDZhNjJlMzZmYTkxNjNiYzg5MWFjZDQyMmY5NzFkZWZlOTdkNjRlNzBkMGE0 ZmU1IgotIAotIFtbcGFja2FnZV1dCi0tbmFtZSA9ICJ3aW5kb3dzLXRhcmdldHMiCi0tdmVyc2lv biA9ICIwLjUyLjYiCi0rbmFtZSA9ICJ3aW5kb3dzLXN5cyIKLSt2ZXJzaW9uID0gIjAuNjEuMiIK LSBzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMu aW8taW5kZXgiCi0tY2hlY2tzdW0gPSAiOWI3MjRmNzI3OTZlMDM2YWI5MGMxMDIxZDQ3ODBkNGQz ZDY0OGFjYTU5ZTQ5MWU2Yjk4ZTcyNWI4NGU5OTk3MyIKLStjaGVja3N1bSA9ICJhZTEzNzIyOWJj YmQ2Y2RmMGY3YjgwYTMxZGY2MTc2NjE0NTA3N2RkZjQ5NDE2YTcyOGIwMmNiMzkyMWZmM2ZjIgot IGRlcGVuZGVuY2llcyA9IFsKLS0gIndpbmRvd3NfYWFyY2g2NF9nbnVsbHZtIiwKLS0gIndpbmRv d3NfYWFyY2g2NF9tc3ZjIiwKLS0gIndpbmRvd3NfaTY4Nl9nbnUiLAotLSAid2luZG93c19pNjg2 X2dudWxsdm0iLAotLSAid2luZG93c19pNjg2X21zdmMiLAotLSAid2luZG93c194ODZfNjRfZ251 IiwKLS0gIndpbmRvd3NfeDg2XzY0X2dudWxsdm0iLAotLSAid2luZG93c194ODZfNjRfbXN2YyIs Ci0rICJ3aW5kb3dzLWxpbmsiLAotIF0KLSAKLSBbW3BhY2thZ2VdXQotLW5hbWUgPSAid2luZG93 c19hYXJjaDY0X2dudWxsdm0iCi0tdmVyc2lvbiA9ICIwLjUyLjYiCi0rbmFtZSA9ICJ3aXQtYmlu ZGdlbiIKLSt2ZXJzaW9uID0gIjAuNTEuMCIKLSBzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9n aXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0tY2hlY2tzdW0gPSAiMzJhNDYy MjE4MGU3YTBlYzA0NGJiNTU1NDA0YzgwMGJjOWZkOWVjMjYyZWMxNDdlZGQ1OTg5Y2NkMGMwMmNk MyIKLS0KLS1bW3BhY2thZ2VdXQotLW5hbWUgPSAid2luZG93c19hYXJjaDY0X21zdmMiCi0tdmVy c2lvbiA9ICIwLjUyLjYiCi0tc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9y dXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgotLWNoZWNrc3VtID0gIjA5ZWMyYTdiYjE1MmUyMjUy YjUzZmE3ODAzMTUwMDA3ODc5NTQ4YmM3MDljMDM5ZGY3NjI3Y2FiYmQwNWQ0NjkiCi0tCi0tW1tw YWNrYWdlXV0KLS1uYW1lID0gIndpbmRvd3NfaTY4Nl9nbnUiCi0tdmVyc2lvbiA9ICIwLjUyLjYi Ci0tc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVz LmlvLWluZGV4IgotLWNoZWNrc3VtID0gIjhlOWI1YWQ1YWI4MDJlOTdlYjhlMjk1YWM2NzIwZTUw OWVlNGMyNDNmNjlkNzgxMzk0MDE0ZWJmZThiYmZhMGIiCi0tCi0tW1twYWNrYWdlXV0KLS1uYW1l ID0gIndpbmRvd3NfaTY4Nl9nbnVsbHZtIgotLXZlcnNpb24gPSAiMC41Mi42IgotLXNvdXJjZSA9 ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIK LS1jaGVja3N1bSA9ICIwZWVlNTJkMzhjMDkwYjNjYWE3NmM1NjNiODZjM2E0YmQ3MWVmMWE4MTky ODdjMTlkNTg2ZDczMzRhZThlZDY2IgotK2NoZWNrc3VtID0gImQ3MjQ5MjE5ZjY2Y2VkMDI5Njkz ODhjZjJiYjA0NGEwOTc1NmEwODNkMGZhYjFlNTY2MDU2YjA0ZDlmYmNhYTUiCi0rZGVwZW5kZW5j aWVzID0gWwotKyAid2l0LWJpbmRnZW4tcnVzdC1tYWNybyIsCi0rXQotIAotIFtbcGFja2FnZV1d Ci0tbmFtZSA9ICJ3aW5kb3dzX2k2ODZfbXN2YyIKLS12ZXJzaW9uID0gIjAuNTIuNiIKLStuYW1l ID0gIndpdC1iaW5kZ2VuLWNvcmUiCi0rdmVyc2lvbiA9ICIwLjUxLjAiCi0gc291cmNlID0gInJl Z2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgotLWNo ZWNrc3VtID0gIjI0MDk0OGJjMDVjNWU3YzZkYWJiYTI4YmY4OWQ4OWZmY2UzZTMwMzAyMjgwOWU3 M2RlYWVmZTRmNmVjNTZjNjYiCi0rY2hlY2tzdW0gPSAiZWE2MWRlNjg0YzNlYTY4Y2IwODJiN2E4 ODUwOGE4YjI3ZmNjOGI3OTdkNzM4YmZjOTlhODJmYWNmMWQ3NTJkYyIKLStkZXBlbmRlbmNpZXMg PSBbCi0rICJhbnlob3ciLAotKyAiaGVjayAwLjUuMCIsCi0rICJ3aXQtcGFyc2VyIiwKLStdCi0g Ci0gW1twYWNrYWdlXV0KLS1uYW1lID0gIndpbmRvd3NfeDg2XzY0X2dudSIKLS12ZXJzaW9uID0g IjAuNTIuNiIKLStuYW1lID0gIndpdC1iaW5kZ2VuLXJ1c3QiCi0rdmVyc2lvbiA9ICIwLjUxLjAi Ci0gc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVz LmlvLWluZGV4IgotLWNoZWNrc3VtID0gIjE0N2E1YzgwYWFiZmJmMGM3ZDkwMWNiNTg5NWQxZGUz MGVmMjkwN2ViMjFmYmJhYjI5Y2E5NGM1YjA4YjFhNzgiCi0rY2hlY2tzdW0gPSAiYjdjNTY2ZTBm NGIyODRkZDY1NjFjNzg2ZDljYjAxNDJkYTQ5MWY0NmE5ZmJlZDc5ZWE2OWNkYWQ1ZGIxN2YyMSIK LStkZXBlbmRlbmNpZXMgPSBbCi0rICJhbnlob3ciLAotKyAiaGVjayAwLjUuMCIsCi0rICJpbmRl eG1hcCAyLjEzLjAiLAotKyAicHJldHR5cGxlYXNlIiwKLSsgInN5biAyLjAuMTE3IiwKLSsgIndh c20tbWV0YWRhdGEiLAotKyAid2l0LWJpbmRnZW4tY29yZSIsCi0rICJ3aXQtY29tcG9uZW50IiwK LStdCi0gCi0gW1twYWNrYWdlXV0KLS1uYW1lID0gIndpbmRvd3NfeDg2XzY0X2dudWxsdm0iCi0t dmVyc2lvbiA9ICIwLjUyLjYiCi0rbmFtZSA9ICJ3aXQtYmluZGdlbi1ydXN0LW1hY3JvIgotK3Zl cnNpb24gPSAiMC41MS4wIgotIHNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20v cnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKLS1jaGVja3N1bSA9ICIyNGQ1YjIzZGM0MTc0MTI2 Nzk2ODEzOTZmMmI0OWYzZGU4YzE0NzNkZWI1MTZiZDM0NDEwODcyZWZmNTFlZDBkIgotK2NoZWNr c3VtID0gIjBjMGY5YmZkNzdlNmE0OGVjY2Y1MTM1OWUzYWU3NzE0MGE3ZjUwYjFlMmViZmU2MjQy MmQ4YWZkYWZmYWIxN2EiCi0rZGVwZW5kZW5jaWVzID0gWwotKyAiYW55aG93IiwKLSsgInByZXR0 eXBsZWFzZSIsCi0rICJwcm9jLW1hY3JvMiIsCi0rICJxdW90ZSIsCi0rICJzeW4gMi4wLjExNyIs Ci0rICJ3aXQtYmluZGdlbi1jb3JlIiwKLSsgIndpdC1iaW5kZ2VuLXJ1c3QiLAotK10KLSAKLSBb W3BhY2thZ2VdXQotLW5hbWUgPSAid2luZG93c194ODZfNjRfbXN2YyIKLS12ZXJzaW9uID0gIjAu NTIuNiIKLStuYW1lID0gIndpdC1jb21wb25lbnQiCi0rdmVyc2lvbiA9ICIwLjI0NC4wIgotIHNv dXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1p bmRleCIKLS1jaGVja3N1bSA9ICI1ODlmNmRhODRjNjQ2MjA0NzQ3ZDEyNzBhMmE1NjYxZWE2NmVk MWNjZWQyNjMxZDU0NmZkZmIxNTU5NTlmOWVjIgotK2NoZWNrc3VtID0gIjlkNjZlYTIwZTk1NTNi MzAxNzJiNWU4MzE5OTRlMzVmYmRlMmQxNjUzMjViZWM4NGZjNDNkYmY2ZjRlYjljYjIiCi0rZGVw ZW5kZW5jaWVzID0gWwotKyAiYW55aG93IiwKLSsgImJpdGZsYWdzIDIuMTEuMCIsCi0rICJpbmRl eG1hcCAyLjEzLjAiLAotKyAibG9nIiwKLSsgInNlcmRlIiwKLSsgInNlcmRlX2Rlcml2ZSIsCi0r ICJzZXJkZV9qc29uIiwKLSsgIndhc20tZW5jb2RlciIsCi0rICJ3YXNtLW1ldGFkYXRhIiwKLSsg Indhc21wYXJzZXIiLAotKyAid2l0LXBhcnNlciIsCi0rXQotIAotIFtbcGFja2FnZV1dCi0tbmFt ZSA9ICJ3aXQtYmluZGdlbi1ydCIKLS12ZXJzaW9uID0gIjAuMzkuMCIKLStuYW1lID0gIndpdC1w YXJzZXIiCi0rdmVyc2lvbiA9ICIwLjI0NC4wIgotIHNvdXJjZSA9ICJyZWdpc3RyeStodHRwczov L2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKLS1jaGVja3N1bSA9ICI2ZjQy MzIwZTYxZmUyY2ZkMzQzNTRlY2I1OTdmODZmNDEzNDg0YTc5OGJhNDRhOGNhMTE2NWM1OGQ0MmRh NmMxIgotK2NoZWNrc3VtID0gImVjYzhhYzRiYzFkYzMzODFiN2Y1OWMzNGYwMGI2N2UxOGY5MTBj MmMwZjUwMDE1NjY5ZGRlN2RlZjY1NmE3MzYiCi0gZGVwZW5kZW5jaWVzID0gWwotLSAiYml0Zmxh Z3MgMi45LjEiLAotKyAiYW55aG93IiwKLSsgImlkLWFyZW5hIiwKLSsgImluZGV4bWFwIDIuMTMu MCIsCi0rICJsb2ciLAotKyAic2VtdmVyIiwKLSsgInNlcmRlIiwKLSsgInNlcmRlX2Rlcml2ZSIs Ci0rICJzZXJkZV9qc29uIiwKLSsgInVuaWNvZGUteGlkIiwKLSsgIndhc21wYXJzZXIiLAotIF0K LSAKLSBbW3BhY2thZ2VdXQotIG5hbWUgPSAiemVyb2l6ZSIKLS12ZXJzaW9uID0gIjEuOC4xIgot K3ZlcnNpb24gPSAiMS44LjIiCi0gc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNv bS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgotLWNoZWNrc3VtID0gImNlZDM2NzhhMjg3OWIz MDMwNmQzMjNmNDU0MjYyNjY5N2E0NjRhOTdjMGEwN2M5YWViZjdlYmNhNjVjZDRkZGUiCi0rY2hl Y2tzdW0gPSAiYjk3MTU0ZTY3ZTMyYzg1NDY1ODI2ZThiY2MxYzU5NDI5YWFhZjEwN2MxZTRhOWU1 M2M4ZDhjY2Q1ZWZmODhkMCIKLSBkZXBlbmRlbmNpZXMgPSBbCi0gICJ6ZXJvaXplX2Rlcml2ZSIs Ci0gXQotIAotIFtbcGFja2FnZV1dCi0gbmFtZSA9ICJ6ZXJvaXplX2Rlcml2ZSIKLS12ZXJzaW9u ID0gIjEuNC4yIgotK3ZlcnNpb24gPSAiMS40LjMiCi0gc291cmNlID0gInJlZ2lzdHJ5K2h0dHBz Oi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgotLWNoZWNrc3VtID0gImNl MzZlNjViMGQyOTk5ZDJhYWZhYzk4OWZiMjQ5MTg5YTE0MWFlZTFmNTNjNjEyYzFmMzdkNzI2MzE5 NTlmNjkiCi0rY2hlY2tzdW0gPSAiODVhNWI0MTU4NDk5ODc2Yzc2M2NiMDNiYzRlNDkxODVkM2Nj Y2JhYmIxNWIzM2M2MjdmNzg4NGY0M2RiODUyZSIKLSBkZXBlbmRlbmNpZXMgPSBbCi0gICJwcm9j LW1hY3JvMiIsCi0gICJxdW90ZSIsCi0tICJzeW4gMi4wLjEwMyIsCi0rICJzeW4gMi4wLjExNyIs Ci0gXQotKwotK1tbcGFja2FnZV1dCi0rbmFtZSA9ICJ6bWlqIgotK3ZlcnNpb24gPSAiMS4wLjIx IgotK3NvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRl cy5pby1pbmRleCIKLStjaGVja3N1bSA9ICJiODg0OGVlNjdlY2M4YWVkYmFmM2U0MTIyMjE3YWZm ODkyNjM5MjMxYmVmYzZhMWI1OGQyOWZmZjRjMmNhYmFhIgotZGlmZiAtLWdpdCBhL3NyYy9saWJy c2xhcGQvQ2FyZ28udG9tbCBiL3NyYy9saWJyc2xhcGQvQ2FyZ28udG9tbAotaW5kZXggZjM4Zjkz ZjRjLi42MTEwMGYzODEgMTAwNjQ0Ci0tLS0gYS9zcmMvbGlicnNsYXBkL0NhcmdvLnRvbWwKLSsr KyBiL3NyYy9saWJyc2xhcGQvQ2FyZ28udG9tbAotQEAgLTE2LDcgKzE2LDcgQEAgY3JhdGUtdHlw ZSA9IFsic3RhdGljbGliIiwgImxpYiJdCi0gW2RlcGVuZGVuY2llc10KLSBzbGFwZCA9IHsgcGF0 aCA9ICIuLi9zbGFwZCIgfQotIGxpYmMgPSAiMC4yIgotLWNvbmNyZWFkID0gIjAuNS42IgotK2Nv bmNyZWFkID0gIjAuNS4xMCIKLSAKLSBbYnVpbGQtZGVwZW5kZW5jaWVzXQotIGNiaW5kZ2VuID0g IjAuMjYiCi0tLSAKLTIuNTMuMAotCgpkaWZmIC0tZ2l0IGEvMDA1OC1Jc3N1ZS03MjcxLXBsdWdp bnMtdGhhdC1jcmVhdGUtdGhyZWFkcy1uZWVkLXRvLXVwZGF0LnBhdGNoIGIvMDA1OC1Jc3N1ZS03 MjcxLXBsdWdpbnMtdGhhdC1jcmVhdGUtdGhyZWFkcy1uZWVkLXRvLXVwZGF0LnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MWEyNTRkLi4wMDAwMDAwCi0tLSBhLzAwNTgtSXNz dWUtNzI3MS1wbHVnaW5zLXRoYXQtY3JlYXRlLXRocmVhZHMtbmVlZC10by11cGRhdC5wYXRjaAor KysgL2Rldi9udWxsCkBAIC0xLDg2ICswLDAgQEAKLUZyb20gOGI0ZGJmMzVhY2UzMjZlNWI4MzY5 ODJkNDI4ZTcwMjkzMTNhMjI0NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IE1hcmsg UmV5bm9sZHMgPG1yZXlub2xkc0ByZWRoYXQuY29tPgotRGF0ZTogTW9uLCAyMyBGZWIgMjAyNiAx MjozNzoyNiAtMDUwMAotU3ViamVjdDogW1BBVENIXSBJc3N1ZSA3MjcxIC0gcGx1Z2lucyB0aGF0 IGNyZWF0ZSB0aHJlYWRzIG5lZWQgdG8gdXBkYXRlIAotIGFjdGl2ZSB0aHJlYWQgY291bnQKLQot RGVzY3JpcHRpb246Ci0KLVBsdWdpbnMgdGhhdCBjcmVhdGUgdGhyZWFkcyBuZWVkIHRvIHVwIHRv IHRoZSBnbG9iYWwgYWN0aXZlIHRocmVhZCBjb3VudC4KLU90aGVyd2lzZSB3aGVuIHRoZSBzZXJ2 ZXIgaXMgYmVpbmcgc3RvcHBlZCB0aGUgcGx1Z2luJ3MgY2xvc2UgZnVuY3Rpb24gZ2V0cwotY2Fs bGVkIHdoaWxlIHRoZXNlIHRocmVhZHMgYXJlIHN0aWxsIHJ1bm5pbmcgYW5kIHN0aWxsIHVzaW5n IHRoZSBwbHVnaW4KLWNvbmZpZ3VyYXRpb24uIFRoaXMgY2FuIGxlYWQgdG8gY3Jhc2hlcy4KLQot cmVsYXRlczogaHR0cHM6Ly9naXRodWIuY29tLzM4OWRzLzM4OS1kcy1iYXNlL2lzc3Vlcy83Mjcx Ci0KLVJldmlld2VkIGJ5OiBwcm9naWVyICYgdGJvcmRheiAoVGhhbmtzISEpCi0tLS0KLSBsZGFw L3NlcnZlcnMvcGx1Z2lucy9yZXBsaWNhdGlvbi9yZXBsNV9wcm90b2NvbC5jIHwgNSArKysrKwot IGxkYXAvc2VydmVycy9wbHVnaW5zL3JldHJvY2wvcmV0cm9jbF90cmltLmMgICAgICAgfCA3ICsr KysrKy0KLSAyIGZpbGVzIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkK LQotZGlmZiAtLWdpdCBhL2xkYXAvc2VydmVycy9wbHVnaW5zL3JlcGxpY2F0aW9uL3JlcGw1X3By b3RvY29sLmMgYi9sZGFwL3NlcnZlcnMvcGx1Z2lucy9yZXBsaWNhdGlvbi9yZXBsNV9wcm90b2Nv bC5jCi1pbmRleCA1ZDRhMGU0NTUuLmJjOTU4MDMxOSAxMDA2NDQKLS0tLSBhL2xkYXAvc2VydmVy cy9wbHVnaW5zL3JlcGxpY2F0aW9uL3JlcGw1X3Byb3RvY29sLmMKLSsrKyBiL2xkYXAvc2VydmVy cy9wbHVnaW5zL3JlcGxpY2F0aW9uL3JlcGw1X3Byb3RvY29sLmMKLUBAIC0yMyw2ICsyMyw3IEBA Ci0gCi0gI2luY2x1ZGUgInJlcGw1LmgiCi0gI2luY2x1ZGUgInJlcGw1X3Byb3RfcHJpdmF0ZS5o IgotKyNpbmNsdWRlICJzbGFwLmgiCi0gCi0gI2RlZmluZSBQUk9UT0NPTF81X0lOQ1JFTUVOVEFM IDEKLSAjZGVmaW5lIFBST1RPQ09MXzVfVE9UQUwgMgotQEAgLTIzNyw2ICsyMzgsOCBAQCBwcm90 X3RocmVhZF9tYWluKHZvaWQgKmFyZykKLSAgICAgICAgIHJldHVybjsKLSAgICAgfQotIAotKyAg ICBnX2luY3JfYWN0aXZlX3RocmVhZGNudCgpOwotKwotICAgICBzZXRfdGhyZWFkX3ByaXZhdGVf YWdtdG5hbWUoYWdtdF9nZXRfbG9uZ19uYW1lKGFnbXQpKTsKLSAKLSAgICAgZG9uZSA9IDA7Ci1A QCAtMzAxLDYgKzMwNCw4IEBAIHByb3RfdGhyZWFkX21haW4odm9pZCAqYXJnKQotICAgICAgICAg ICAgIGRvbmUgPSAxOwotICAgICAgICAgfQotICAgICB9Ci0rCi0rICAgIGdfZGVjcl9hY3RpdmVf dGhyZWFkY250KCk7Ci0gfQotIAotIC8qCi1kaWZmIC0tZ2l0IGEvbGRhcC9zZXJ2ZXJzL3BsdWdp bnMvcmV0cm9jbC9yZXRyb2NsX3RyaW0uYyBiL2xkYXAvc2VydmVycy9wbHVnaW5zL3JldHJvY2wv cmV0cm9jbF90cmltLmMKLWluZGV4IDhmY2QzZDMyYi4uOGZkYzc1YzYyIDEwMDY0NAotLS0tIGEv bGRhcC9zZXJ2ZXJzL3BsdWdpbnMvcmV0cm9jbC9yZXRyb2NsX3RyaW0uYwotKysrIGIvbGRhcC9z ZXJ2ZXJzL3BsdWdpbnMvcmV0cm9jbC9yZXRyb2NsX3RyaW0uYwotQEAgLTI0Myw2ICsyNDMsOCBA QCB0cmltX2NoYW5nZWxvZyh2b2lkKQotIAotICAgICBub3dfaW50ZXJ2YWwgPSBzbGFwaV9jdXJy ZW50X3JlbF90aW1lX3QoKTsgLyogbW9ub3RvbmljIHRpbWUgZm9yIGludGVydmFsICovCi0gCi0r ICAgIGdfaW5jcl9hY3RpdmVfdGhyZWFkY250KCk7Ci0rCi0gICAgIFBSX0xvY2sodHMudHNfc190 cmltX211dGV4KTsKLSAgICAgbWF4X2FnZSA9IHRzLnRzX2NfbWF4X2FnZTsKLSAgICAgdHJpbV9p bnRlcnZhbCA9IHRzLnRzX2NfdHJpbV9pbnRlcnZhbDsKLUBAIC0yNTcsNyArMjU5LDcgQEAgdHJp bV9jaGFuZ2Vsb2codm9pZCkKLSAgICAgICAgICAqLwotICAgICAgICAgZG9uZSA9IDA7Ci0gICAg ICAgICBub3dfbWF4YWdlID0gc2xhcGlfY3VycmVudF91dGNfdGltZSgpOyAvKiByZWFsIHRpbWUg Zm9yIHRyaW0gY2FuZGlkYXRlcyAqLwotLSAgICAgICAgd2hpbGUgKCFkb25lICYmIHJldHJvY2xf dHJpbW1pbmcgPT0gMSkgewotKyAgICAgICAgd2hpbGUgKCFkb25lICYmIHJldHJvY2xfdHJpbW1p bmcgPT0gMSAmJiAhc2xhcGlfaXNfc2h1dHRpbmdfZG93bigpKSB7Ci0gICAgICAgICAgICAgaW50 IGRpZF9kZWxldGU7Ci0gCi0gICAgICAgICAgICAgZGlkX2RlbGV0ZSA9IDA7Ci1AQCAtMzA5LDYg KzMxMSw5IEBAIHRyaW1fY2hhbmdlbG9nKHZvaWQpCi0gICAgICAgICAgICAgICAgICAgICAgICJ0 cmltX2NoYW5nZWxvZzogcmVtb3ZlZCAlZCBjaGFuZ2UgcmVjb3Jkc1xuIiwKLSAgICAgICAgICAg ICAgICAgICAgICAgbnVtX2RlbGV0ZWQpOwotICAgICB9Ci0rCi0rICAgIGdfZGVjcl9hY3RpdmVf dGhyZWFkY250KCk7Ci0rCi0gICAgIHJldHVybiByYzsKLSB9Ci0gCi0tLSAKLTIuNTMuMAotCgpk aWZmIC0tZ2l0IGEvMDA1OS1Jc3N1ZS03MjczLUluLWEtY2hhaW5pbmctZW52aXJvbm1lbnQtYmlu ZGluZy1hcy1yZW1vLnBhdGNoIGIvMDA1OS1Jc3N1ZS03MjczLUluLWEtY2hhaW5pbmctZW52aXJv bm1lbnQtYmluZGluZy1hcy1yZW1vLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCA4OWU5OTY2Li4wMDAwMDAwCi0tLSBhLzAwNTktSXNzdWUtNzI3My1Jbi1hLWNoYWluaW5nLWVu dmlyb25tZW50LWJpbmRpbmctYXMtcmVtby5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDQwICsw LDAgQEAKLUZyb20gZmZlMTkwOWU2OWFiMmFlY2VmMzk2ZjMxY2Y5NWNkY2VjZDk5Mjc4MiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IE1hcmsgUmV5bm9sZHMgPG1yZXlub2xkc0ByZWRo YXQuY29tPgotRGF0ZTogTW9uLCAyMyBGZWIgMjAyNiAxMjoxMDozMiAtMDUwMAotU3ViamVjdDog W1BBVENIXSBJc3N1ZSA3MjczIC0gSW4gYSBjaGFpbmluZyBlbnZpcm9ubWVudCBiaW5kaW5nIGFz IHJlbW90ZSB1c2VyCi0gY2F1c2VzIGFuIGludmFsaWQgZXJyb3IgaW4gdGhlIGxvZ3MKLQotRGVz Y3JpcHRpb246Ci0KLUluIGEgZGF0YWJhc2UgbGluay9jaGFpbmluZyBlbnZpcm9ubWVudCB5b3Ug Y2FuIGJpbmQgYXMgYSByZW1vdGUgdXNlciwgYW5kCi10aGlzIHRyaWdnZXJzIGFuIGVycm9yIHdo ZW4gdHJ5aW5nIHRvICJ1cGdyYWRlX29uX2JpbmQiIGFzIHRoZSB1c2VyIGRvZXMgbm90Ci1sb2Nh bGx5IGhhdmUgYSB1c2VycGFzc3dvcmQgc2luY2UgaXQncyByZW1vdGUuIFRoZXJlIGlzIG5vIHN0 cm9uZyBjYXNlIHRvCi1sb2cgYW4gZXJyb3IgaW4gdGhpcyBzaXR1YXRpb24uCi0KLXJlbGF0ZXM6 IGh0dHA6Ly9naXRodWIuY29tLzM4OWRzLzM4OS1kcy1iYXNlL2lzc3Vlcy83MjczCi0KLVJldmll d2VkIGJ5OiB2YXNoaXJvdihUaGFua3MhKQotLS0tCi0gbGRhcC9zZXJ2ZXJzL3NsYXBkL3B3LmMg fCA2ICsrLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25z KC0pCi0KLWRpZmYgLS1naXQgYS9sZGFwL3NlcnZlcnMvc2xhcGQvcHcuYyBiL2xkYXAvc2VydmVy cy9zbGFwZC9wdy5jCi1pbmRleCBjNTNlY2YyM2QuLjg4ZTMyNTM3ZCAxMDA2NDQKLS0tLSBhL2xk YXAvc2VydmVycy9zbGFwZC9wdy5jCi0rKysgYi9sZGFwL3NlcnZlcnMvc2xhcGQvcHcuYwotQEAg LTM1NjQsMTAgKzM1NjQsOCBAQCBpbnQzMl90IHVwZGF0ZV9wd19lbmNvZGluZyhTbGFwaV9QQmxv Y2sgKm9yaWdfcGIsIFNsYXBpX0VudHJ5ICplLCBTbGFwaV9ETiAqc2RuLAotICAgICAgKiBEb2Vz IHRoZSBlbnRyeSBoYXZlIGEgcHc/Ci0gICAgICAqLwotICAgICBpZiAoZSA9PSBOVUxMIHx8IHNs YXBpX2VudHJ5X2F0dHJfZmluZChlLCBTTEFQSV9VU0VSUFdEX0FUVFIsICZwdykgIT0gMCB8fCBw dyA9PSBOVUxMKSB7Ci0tICAgICAgICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xPR19XQVJOSU5HLAot LSAgICAgICAgICAgICAgICAgICAgICAidXBkYXRlX3B3X2VuY29kaW5nIiwgIkNvdWxkIG5vdCBy ZWFkIHBhc3N3b3JkIGF0dHJpYnV0ZSBvbiAnJXMnXG4iLAotLSAgICAgICAgICAgICAgICAgICAg ICBkbik7Ci0tICAgICAgICByZXMgPSAtMTsKLSsgICAgICAgIC8qIFRoZSBlbnRyeSBkb2VzIG5v dCBoYXZlIGEgdXNlcnBhc3N3b3JkIGF0dHJpYnV0ZSBzbyB0aGVyZSBpcyBub3RoaW5nIHRvIGRv LgotKyAgICAgICAgICogVGhpcyB0eXBpY2FsbHkgaGFwcGVucyB3aGVuIGNoYWluaW5nIGlzIGlu dm9sdmVkLiAqLwotICAgICAgICAgZ290byBmcmVlX2FuZF9yZXR1cm47Ci0gICAgIH0KLSAKLS0t IAotMi41My4wCi0KCmRpZmYgLS1naXQgYS8wMDYwLUlzc3VlLTcyNzktVUktRml4LXR5cG8taW4t ZXhwb3J0LWNlcnRpZmljYXRlLWRpYWxvZy0ucGF0Y2ggYi8wMDYwLUlzc3VlLTcyNzktVUktRml4 LXR5cG8taW4tZXhwb3J0LWNlcnRpZmljYXRlLWRpYWxvZy0ucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IGZhNGU0MTAuLjAwMDAwMDAKLS0tIGEvMDA2MC1Jc3N1ZS03Mjc5LVVJ LUZpeC10eXBvLWluLWV4cG9ydC1jZXJ0aWZpY2F0ZS1kaWFsb2ctLnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsNDYgKzAsMCBAQAotRnJvbSAzYTIzMzExNmE1NjRmYzMzOWFlZTEwMjE5MTNjOTk1 NTA0OTUxZDg2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU2ltb24gUGljaHVnaW4g PHNwaWNodWdpQHJlZGhhdC5jb20+Ci1EYXRlOiBUdWUsIDI0IEZlYiAyMDI2IDA5OjI4OjI0IC0w ODAwCi1TdWJqZWN0OiBbUEFUQ0hdIElzc3VlIDcyNzkgLSBVSSAtIEZpeCB0eXBvIGluIGV4cG9y dCBjZXJ0aWZpY2F0ZSBkaWFsb2cKLSAoIzcyODApCi0KLURlc2NyaXB0aW9uOiBGaXggdHlwbyAi Y2V0aWZpY2F0ZSIgLT4gImNlcnRpZmljYXRlIiBpbiB0aGUKLWV4cG9ydCBjZXJ0aWZpY2F0ZSBk aWFsb2cgbWVzc2FnZS4KLQotRml4ZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS8zODlkcy8zODktZHMt YmFzZS9pc3N1ZXMvNzI3OQotCi1SZXZpZXdlZCBieTogQHZhc2hpcm92IChUaGFua3MhKQotLS0t Ci0gc3JjL2NvY2twaXQvMzg5LWNvbnNvbGUvcG8vamEucG8gICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAyICstCi0gc3JjL2NvY2twaXQvMzg5LWNvbnNvbGUvc3JjL2xpYi9zZWN1cml0eS9z ZWN1cml0eU1vZGFscy5qc3ggfCAyICstCi0gMiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMo KyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvY29ja3BpdC8zODktY29uc29s ZS9wby9qYS5wbyBiL3NyYy9jb2NrcGl0LzM4OS1jb25zb2xlL3BvL2phLnBvCi1pbmRleCAyN2Qy MWJmN2EuLjEyYzEwZGVkNCAxMDA2NDQKLS0tLSBhL3NyYy9jb2NrcGl0LzM4OS1jb25zb2xlL3Bv L2phLnBvCi0rKysgYi9zcmMvY29ja3BpdC8zODktY29uc29sZS9wby9qYS5wbwotQEAgLTExNTYw LDcgKzExNTYwLDcgQEAgbXNnc3RyICLoqLzmmI7mm7jjga7jgqjjgq/jgrnjg53jg7zjg4g6Igot ICM6IHNyYy9saWIvc2VjdXJpdHkvc2VjdXJpdHlNb2RhbHMuanN4OjU4Ci0gbXNnaWQgIiIKLSAi RW50ZXIgdGhlIGZ1bGwgcGF0aCBhbmQgZmlsZSBuYW1lLCBpZiB0aGUgcGF0aCBwb3J0aW9uIGlz IG9taXR0ZWQgdGhlICIKLS0iY2V0aWZpY2F0ZSBpcyB3cml0dGVuIHRvIHRoZSBzZXJ2ZXIncyBj ZXJ0aWZpY2F0ZSBkaXJlY3RvcnkgIgotKyJjZXJ0aWZpY2F0ZSBpcyB3cml0dGVuIHRvIHRoZSBz ZXJ2ZXIncyBjZXJ0aWZpY2F0ZSBkaXJlY3RvcnkgIgotIG1zZ3N0ciAiIgotICLjg5XjgqHjgqTj g6vlkI3jgpLlkKvjgoDjg5Xjg6vjg5HjgrnjgpLlhaXlipvjgZfjgabjgY/jgaDjgZXjgYTjgILj g5Hjgrnpg6jliIbjgpLnnIHnlaXjgZfjgZ/loLTlkIjjgIHoqLzmmI7mm7jjga8iCi0gIuOCteOD vOODkOOBruiovOaYjuabuOODh+OCo+ODrOOCr+ODiOODquOBq+abuOOBjei+vOOBvuOCjOOBvuOB meOAgiIKLWRpZmYgLS1naXQgYS9zcmMvY29ja3BpdC8zODktY29uc29sZS9zcmMvbGliL3NlY3Vy aXR5L3NlY3VyaXR5TW9kYWxzLmpzeCBiL3NyYy9jb2NrcGl0LzM4OS1jb25zb2xlL3NyYy9saWIv c2VjdXJpdHkvc2VjdXJpdHlNb2RhbHMuanN4Ci1pbmRleCA0ZDY2MzFmZDIuLmYzMmQ0NzU5NiAx MDA2NDQKLS0tLSBhL3NyYy9jb2NrcGl0LzM4OS1jb25zb2xlL3NyYy9saWIvc2VjdXJpdHkvc2Vj dXJpdHlNb2RhbHMuanN4Ci0rKysgYi9zcmMvY29ja3BpdC8zODktY29uc29sZS9zcmMvbGliL3Nl Y3VyaXR5L3NlY3VyaXR5TW9kYWxzLmpzeAotQEAgLTU1LDcgKzU1LDcgQEAgZXhwb3J0IGNsYXNz IEV4cG9ydENlcnRNb2RhbCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICB9Ci0g Ci0gICAgICAgICBjb25zdCB0aXRsZSA9IDw+e18oIkV4cG9ydCBDZXJ0aWZpY2F0ZToiKX0gJm5i c3A7Jm5ic3A7PGk+e25pY2tOYW1lfTwvaT48Lz47Ci0tICAgICAgICBjb25zdCBkZXNjID0gPD57 XygiRW50ZXIgdGhlIGZ1bGwgcGF0aCBhbmQgZmlsZSBuYW1lLCBpZiB0aGUgcGF0aCBwb3J0aW9u IGlzIG9taXR0ZWQgdGhlIGNldGlmaWNhdGUgaXMgd3JpdHRlbiB0byB0aGUgc2VydmVyJ3MgY2Vy dGlmaWNhdGUgZGlyZWN0b3J5ICIpfTxpPntjZXJ0RGlyfTwvaT48Lz47Ci0rICAgICAgICBjb25z dCBkZXNjID0gPD57XygiRW50ZXIgdGhlIGZ1bGwgcGF0aCBhbmQgZmlsZSBuYW1lLCBpZiB0aGUg cGF0aCBwb3J0aW9uIGlzIG9taXR0ZWQgdGhlIGNlcnRpZmljYXRlIGlzIHdyaXR0ZW4gdG8gdGhl IHNlcnZlcidzIGNlcnRpZmljYXRlIGRpcmVjdG9yeSAiKX08aT57Y2VydERpcn08L2k+PC8+Owot IAotICAgICAgICAgcmV0dXJuICgKLSAgICAgICAgICAgICA8TW9kYWwKLS0tIAotMi41My4wCi0K CmRpZmYgLS1naXQgYS8wMDYxLUlzc3VlLTcyNzUtVUktSW1wcm92ZS1wYXNzd29yZC1wb2xpY3kt ZmllbGQtdmFsaWRhdGkucGF0Y2ggYi8wMDYxLUlzc3VlLTcyNzUtVUktSW1wcm92ZS1wYXNzd29y ZC1wb2xpY3ktZmllbGQtdmFsaWRhdGkucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDQ5ZmVlNmIuLjAwMDAwMDAKLS0tIGEvMDA2MS1Jc3N1ZS03Mjc1LVVJLUltcHJvdmUtcGFz c3dvcmQtcG9saWN5LWZpZWxkLXZhbGlkYXRpLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTE3 OCArMCwwIEBACi1Gcm9tIGZmZjhlNTRjYjI2NWFjNmU2OGIwMDY5Njc5YmQ0ZTc2ODU2NDdkY2Ig TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTaW1vbiBQaWNodWdpbiA8c3BpY2h1Z2lA cmVkaGF0LmNvbT4KLURhdGU6IFR1ZSwgMjQgRmViIDIwMjYgMDk6MzI6NDEgLTA4MDAKLVN1Ympl Y3Q6IFtQQVRDSF0gSXNzdWUgNzI3NSAtIFVJIC0gSW1wcm92ZSBwYXNzd29yZCBwb2xpY3kgZmll bGQgdmFsaWRhdGlvbiBpbgotIENvY2twaXQgVUkgKCM3Mjc2KQotCi1EZXNjcmlwdGlvbjogUGFz c3dvcmQgcG9saWN5IGZpZWxkcyBpbiB0aGUgQ29ja3BpdCBVSSBsYWNrIGNsaWVudC1zaWRlIHZh bGlkYXRpb24uCi1JbnZhbGlkIHZhbHVlcyBvbmx5IHByb2R1Y2UgZ2VuZXJpYyBzZXJ2ZXItc2lk ZSBlcnJvcnMgYWZ0ZXIgY2xpY2tpbmcgU2F2ZS4KLUFkZCBhIHNoYXJlZCBwd3BWYWxpZGF0aW9u IG1vZHVsZSBhbmQgaW5saW5lIHZhbGlkYXRpb24gdG8gYWxsIG51bWVyaWMKLXBhc3N3b3JkIHBv bGljeSBmaWVsZHMgaW4gZ2xvYmFsUHdwLmpzeCBhbmQgbG9jYWxQd3AuanN4LgotCi1GaXhlczog aHR0cHM6Ly9naXRodWIuY29tLzM4OWRzLzM4OS1kcy1iYXNlL2lzc3Vlcy83Mjc1Ci0KLVJldmll d2VkIGJ5OiBAbXJleW5vbGRzMzg5IChUaGFua3MhKQotLS0tCi0gLi4uL3NyYy9saWIvZGF0YWJh c2UvZ2xvYmFsUHdwLmpzeCAgICAgICAgICAgIHwgIDYxICsrKysrKysrLQotIC4uLi8zODktY29u c29sZS9zcmMvbGliL2RhdGFiYXNlL2xvY2FsUHdwLmpzeCB8IDExNyArKysrKysrKysrKysrKysr Ky0KLSAuLi4vc3JjL2xpYi9kYXRhYmFzZS9wd3BWYWxpZGF0aW9uLmpzeCAgICAgICAgfCAxMDUg KysrKysrKysrKysrKysrKwotIDMgZmlsZXMgY2hhbmdlZCwgMjcyIGluc2VydGlvbnMoKyksIDEx IGRlbGV0aW9ucygtKQotIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvY29ja3BpdC8zODktY29uc29s ZS9zcmMvbGliL2RhdGFiYXNlL3B3cFZhbGlkYXRpb24uanN4Ci0KLWRpZmYgLS1naXQgYS9zcmMv Y29ja3BpdC8zODktY29uc29sZS9zcmMvbGliL2RhdGFiYXNlL2dsb2JhbFB3cC5qc3ggYi9zcmMv Y29ja3BpdC8zODktY29uc29sZS9zcmMvbGliL2RhdGFiYXNlL2dsb2JhbFB3cC5qc3gKLWluZGV4 IGQ0NzljMzJlNy4uMjA1ZTQ3MzVkIDEwMDY0NAotLS0tIGEvc3JjL2NvY2twaXQvMzg5LWNvbnNv bGUvc3JjL2xpYi9kYXRhYmFzZS9nbG9iYWxQd3AuanN4Ci0rKysgYi9zcmMvY29ja3BpdC8zODkt Y29uc29sZS9zcmMvbGliL2RhdGFiYXNlL2dsb2JhbFB3cC5qc3gKLUBAIC0yMyw2ICsyMywxMiBA QCBpbXBvcnQgewotIGltcG9ydCBUeXBlYWhlYWRTZWxlY3QgZnJvbSAiLi4vLi4vZHNCYXNpY0Nv bXBvbmVudHMuanN4IjsKLSBpbXBvcnQgUHJvcFR5cGVzIGZyb20gInByb3AtdHlwZXMiOwotIGlt cG9ydCB7IFN5bmNBbHRJY29uIH0gZnJvbSAnQHBhdHRlcm5mbHkvcmVhY3QtaWNvbnMnOwotK2lt cG9ydCB7Ci0rICAgIGdldFZhbGlkYXRpb25Qcm9wcywKLSsgICAgaGFzSW52YWxpZEZpZWxkLAot KyAgICByZW5kZXJWYWxpZGF0aW9uRXJyb3IsCi0rICAgIHVwZGF0ZUZpZWxkVmFsaWRhdGlvbiwK LSt9IGZyb20gIi4vcHdwVmFsaWRhdGlvbi5qc3giOwotIAotIGNvbnN0IF8gPSBjb2NrcGl0Lmdl dHRleHQ7Ci0gCi1AQCAtMTE0LDYgKzEyMCw3IEBAIGV4cG9ydCBjbGFzcyBHbG9iYWxQd1BvbGlj eSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICAgICAgc2F2ZVN5bnRheERpc2Fi bGVkOiB0cnVlLAotICAgICAgICAgICAgIHNhdmVUUFJEaXNhYmxlZDogdHJ1ZSwKLSAgICAgICAg ICAgICBpc1NlbGVjdE9wZW46IGZhbHNlLAotKyAgICAgICAgICAgIGludmFsaWRGaWVsZHM6IHt9 LAotICAgICAgICAgfTsKLSAKLSAgICAgICAgIC8vIFRvZ2dsZSBjdXJyZW50bHkgYWN0aXZlIHRh YgotQEAgLTI0Miw2ICsyNDksNyBAQCBleHBvcnQgY2xhc3MgR2xvYmFsUHdQb2xpY3kgZXh0ZW5k cyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAgY29uc3Qgc3RhdGVVcGRhdGUgPSB7Ci0gICAg ICAgICAgICAgW2F0dHJdOiB2YWx1ZSwKLSAgICAgICAgICAgICBzYXZlR2VuZXJhbERpc2FibGVk OiBkaXNhYmxlU2F2ZUJ0biwKLSsgICAgICAgICAgICBpbnZhbGlkRmllbGRzOiB1cGRhdGVGaWVs ZFZhbGlkYXRpb24odGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzLCBhdHRyLCB2YWx1ZSksCi0gICAg ICAgICB9OwotIAotICAgICAgICAgdGhpcy5zZXRTdGF0ZShzdGF0ZVVwZGF0ZSwgKCkgPT4gewot QEAgLTM2Myw2ICszNzEsNyBAQCBleHBvcnQgY2xhc3MgR2xvYmFsUHdQb2xpY3kgZXh0ZW5kcyBS ZWFjdC5Db21wb25lbnQgewotICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7Ci0gICAgICAgICAgICAg W2F0dHJdOiB2YWx1ZSwKLSAgICAgICAgICAgICBzYXZlRXhwRGlzYWJsZWQ6IGRpc2FibGVTYXZl QnRuLAotKyAgICAgICAgICAgIGludmFsaWRGaWVsZHM6IHVwZGF0ZUZpZWxkVmFsaWRhdGlvbih0 aGlzLnN0YXRlLmludmFsaWRGaWVsZHMsIGF0dHIsIHZhbHVlKSwKLSAgICAgICAgIH0pOwotICAg ICB9Ci0gCi1AQCAtNDQwLDYgKzQ0OSw3IEBAIGV4cG9ydCBjbGFzcyBHbG9iYWxQd1BvbGljeSBl eHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICB0aGlzLnNldFN0YXRlKHsKLSAgICAg ICAgICAgICBbYXR0cl06IHZhbHVlLAotICAgICAgICAgICAgIHNhdmVMb2Nrb3V0RGlzYWJsZWQ6 IGRpc2FibGVTYXZlQnRuLAotKyAgICAgICAgICAgIGludmFsaWRGaWVsZHM6IHVwZGF0ZUZpZWxk VmFsaWRhdGlvbih0aGlzLnN0YXRlLmludmFsaWRGaWVsZHMsIGF0dHIsIHZhbHVlKSwKLSAgICAg ICAgIH0pOwotICAgICB9Ci0gCi1AQCAtNTQxLDEyICs1NTEsMTQgQEAgZXhwb3J0IGNsYXNzIEds b2JhbFB3UG9saWN5IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAgICB0aGlz LnNldFN0YXRlKHsKLSAgICAgICAgICAgICAgICAgW2F0dHJdOiBBcnJheS5pc0FycmF5KHNlbGVj dGlvbikgPyBzZWxlY3Rpb24gOiBbXSwKLSAgICAgICAgICAgICAgICAgc2F2ZVN5bnRheERpc2Fi bGVkOiBkaXNhYmxlU2F2ZUJ0biwKLSsgICAgICAgICAgICAgICAgaW52YWxpZEZpZWxkczogdXBk YXRlRmllbGRWYWxpZGF0aW9uKHRoaXMuc3RhdGUuaW52YWxpZEZpZWxkcywgYXR0ciwgdmFsdWUp LAotICAgICAgICAgICAgICAgICBpc1NlbGVjdE9wZW46IGZhbHNlCi0gICAgICAgICAgICAgfSk7 Ci0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoewotICAgICAg ICAgICAgICAgICBbYXR0cl06IHZhbHVlLAotICAgICAgICAgICAgICAgICBzYXZlU3ludGF4RGlz YWJsZWQ6IGRpc2FibGVTYXZlQnRuLAotKyAgICAgICAgICAgICAgICBpbnZhbGlkRmllbGRzOiB1 cGRhdGVGaWVsZFZhbGlkYXRpb24odGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzLCBhdHRyLCB2YWx1 ZSksCi0gICAgICAgICAgICAgICAgIGlzU2VsZWN0T3BlbjogZmFsc2UKLSAgICAgICAgICAgICB9 KTsKLSAgICAgICAgIH0KLUBAIC04NDEsNiArODUzLDcgQEAgZXhwb3J0IGNsYXNzIEdsb2JhbFB3 UG9saWN5IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAgICAgICAgICAgICAg ICB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlZDogdHJ1ZSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbG9hZGluZzogZmFsc2UsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGludmFsaWRGaWVsZHM6IHt9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzYXZlR2VuZXJhbERpc2FibGVkOiB0cnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzYXZlUGFzc3dvcmRTdG9yYWdlRGlzYWJsZWQ6IHRydWUsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNhdmVVc2VyRGlzYWJsZWQ6IHRydWUsCi1AQCAtOTk2LDEwICsxMDA5LDEyIEBA IGV4cG9ydCBjbGFzcyBHbG9iYWxQd1BvbGljeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icGFzc3dvcmRtaW5sZW5ndGgiCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PSJob3Jpem9u dGFsLWZvcm0tbmFtZS1oZWxwZXIiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu YW1lPSJwYXNzd29yZG1pbmxlbmd0aCIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsuLi5nZXRWYWxpZGF0aW9uUHJvcHMoInBhc3N3b3JkbWlubGVuZ3RoIiwgdGhpcy5zdGF0ZS5p bnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdl PXsoZSwgY2hlY2tlZCkgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHRoaXMuaGFuZGxlU3ludGF4Q2hhbmdlKGUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4KLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAge3JlbmRlclZhbGlkYXRpb25FcnJvcigicGFzc3dvcmRtaW5sZW5ndGgi LCB0aGlzLnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgIDwv R3JpZEl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWRJdGVtIGNsYXNzTmFtZT0i ZHMtbGFiZWwiIG9mZnNldD17Nn0gc3Bhbj17M30+Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHtfKCJNaW5pbXVtIEFscGhhJ3MiKX0KLUBAIC0xMDEyLDEwICsxMDI3LDEyIEBAIGV4cG9y dCBjbGFzcyBHbG9iYWxQd1BvbGljeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icGFzc3dvcmRtaW5hbHBoYXMiCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PSJob3Jpem9udGFsLWZv cm0tbmFtZS1oZWxwZXIiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJw YXNzd29yZG1pbmFscGhhcyIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5n ZXRWYWxpZGF0aW9uUHJvcHMoInBhc3N3b3JkbWluYWxwaGFzIiwgdGhpcy5zdGF0ZS5pbnZhbGlk RmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSwg Y2hlY2tlZCkgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMu aGFuZGxlU3ludGF4Q2hhbmdlKGUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4KLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAge3JlbmRlclZhbGlkYXRpb25FcnJvcigicGFzc3dvcmRtaW5hbHBoYXMiLCB0aGlz LnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZEl0 ZW0+Ci0gICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+Ci0gICAgICAgICAgICAgICAgICAgICA8 R3JpZCBjbGFzc05hbWU9ImRzLW1hcmdpbi10b3AiPgotQEAgLTEwMzAsMTAgKzEwNDcsMTIgQEAg ZXhwb3J0IGNsYXNzIEdsb2JhbFB3UG9saWN5IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJwYXNzd29yZG1pbmRpZ2l0cyIKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9Imhvcml6b250 YWwtZm9ybS1uYW1lLWhlbHBlciIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5h bWU9InBhc3N3b3JkbWluZGlnaXRzIgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ey4uLmdldFZhbGlkYXRpb25Qcm9wcygicGFzc3dvcmRtaW5kaWdpdHMiLCB0aGlzLnN0YXRlLmlu dmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9 eyhlLCBjaGVja2VkKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dGhpcy5oYW5kbGVTeW50YXhDaGFuZ2UoZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9fQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPgotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7cmVuZGVyVmFsaWRhdGlvbkVycm9yKCJwYXNzd29yZG1pbmRpZ2l0cyIs IHRoaXMuc3RhdGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgPC9H cmlkSXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZEl0ZW0gY2xhc3NOYW1lPSJk cy1sYWJlbCIgb2Zmc2V0PXs2fSBzcGFuPXszfT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAge18oIk1pbmltdW0gU3BlY2lhbCIpfQotQEAgLTEwNDYsMTAgKzEwNjUsMTIgQEAgZXhwb3J0 IGNsYXNzIEdsb2JhbFB3UG9saWN5IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJwYXNzd29yZG1pbnNwZWNpYWxzIgotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT0iaG9yaXpvbnRhbC1m b3JtLW5hbWUtaGVscGVyIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0i cGFzc3dvcmRtaW5zcGVjaWFscyIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsu Li5nZXRWYWxpZGF0aW9uUHJvcHMoInBhc3N3b3JkbWluc3BlY2lhbHMiLCB0aGlzLnN0YXRlLmlu dmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9 eyhlLCBjaGVja2VkKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dGhpcy5oYW5kbGVTeW50YXhDaGFuZ2UoZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9fQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPgotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7cmVuZGVyVmFsaWRhdGlvbkVycm9yKCJwYXNzd29yZG1pbnNwZWNpYWxz IiwgdGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICA8 L0dyaWRJdGVtPgotICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPgotICAgICAgICAgICAgICAg ICAgICAgPEdyaWQgY2xhc3NOYW1lPSJkcy1tYXJnaW4tdG9wIj4KLUBAIC0xMDY0LDEwICsxMDg1 LDEyIEBAIGV4cG9ydCBjbGFzcyBHbG9iYWxQd1BvbGljeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVu dCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icGFzc3dvcmRtaW51cHBl cnMiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PSJo b3Jpem9udGFsLWZvcm0tbmFtZS1oZWxwZXIiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBuYW1lPSJwYXNzd29yZG1pbnVwcGVycyIKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsuLi5nZXRWYWxpZGF0aW9uUHJvcHMoInBhc3N3b3JkbWludXBwZXJzIiwgdGhpcy5z dGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9u Q2hhbmdlPXsoZSwgY2hlY2tlZCkgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHRoaXMuaGFuZGxlU3ludGF4Q2hhbmdlKGUpOwotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4KLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAge3JlbmRlclZhbGlkYXRpb25FcnJvcigicGFzc3dvcmRtaW51 cHBlcnMiLCB0aGlzLnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAg ICAgIDwvR3JpZEl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWRJdGVtIGNsYXNz TmFtZT0iZHMtbGFiZWwiIG9mZnNldD17Nn0gc3Bhbj17M30+Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHtfKCJNaW5pbXVtIExvd2VyY2FzZSIpfQotQEAgLTEwODAsMTAgKzExMDMsMTIg QEAgZXhwb3J0IGNsYXNzIEdsb2JhbFB3UG9saWN5IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJwYXNzd29yZG1pbmxvd2VycyIK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9Imhvcml6 b250YWwtZm9ybS1uYW1lLWhlbHBlciIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG5hbWU9InBhc3N3b3JkbWlubG93ZXJzIgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgey4uLmdldFZhbGlkYXRpb25Qcm9wcygicGFzc3dvcmRtaW5sb3dlcnMiLCB0aGlzLnN0YXRl LmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFu Z2U9eyhlLCBjaGVja2VkKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdGhpcy5oYW5kbGVTeW50YXhDaGFuZ2UoZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9fQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPgotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7cmVuZGVyVmFsaWRhdGlvbkVycm9yKCJwYXNzd29yZG1pbmxvd2Vy cyIsIHRoaXMuc3RhdGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAg PC9HcmlkSXRlbT4KLSAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD4KLSAgICAgICAgICAgICAg ICAgICAgIDxHcmlkIGNsYXNzTmFtZT0iZHMtbWFyZ2luLXRvcCI+Ci1AQCAtMTA5OCwxMCArMTEy MywxMiBAQCBleHBvcnQgY2xhc3MgR2xvYmFsUHdQb2xpY3kgZXh0ZW5kcyBSZWFjdC5Db21wb25l bnQgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InBhc3N3b3JkbWluOGJp dCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9Imhv cml6b250YWwtZm9ybS1uYW1lLWhlbHBlciIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG5hbWU9InBhc3N3b3JkbWluOGJpdCIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsuLi5nZXRWYWxpZGF0aW9uUHJvcHMoInBhc3N3b3JkbWluOGJpdCIsIHRoaXMuc3RhdGUu aW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5n ZT17KGUsIGNoZWNrZWQpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0aGlzLmhhbmRsZVN5bnRheENoYW5nZShlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH19Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHtyZW5kZXJWYWxpZGF0aW9uRXJyb3IoInBhc3N3b3JkbWluOGJpdCIs IHRoaXMuc3RhdGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgPC9H cmlkSXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZEl0ZW0gY2xhc3NOYW1lPSJk cy1sYWJlbCIgb2Zmc2V0PXs2fSBzcGFuPXszfT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAge18oIk1pbmltdW0gQ2F0ZWdvcmllcyIpfQotQEAgLTExMTQsMTAgKzExNDEsMTIgQEAgZXhw b3J0IGNsYXNzIEdsb2JhbFB3UG9saWN5IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJwYXNzd29yZG1pbmNhdGVnb3JpZXMiCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PSJob3Jpem9u dGFsLWZvcm0tbmFtZS1oZWxwZXIiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu YW1lPSJwYXNzd29yZG1pbmNhdGVnb3JpZXMiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7Li4uZ2V0VmFsaWRhdGlvblByb3BzKCJwYXNzd29yZG1pbmNhdGVnb3JpZXMiLCB0aGlz LnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg b25DaGFuZ2U9eyhlLCBjaGVja2VkKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdGhpcy5oYW5kbGVTeW50YXhDaGFuZ2UoZSk7Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9fQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPgotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7cmVuZGVyVmFsaWRhdGlvbkVycm9yKCJwYXNzd29yZG1p bmNhdGVnb3JpZXMiLCB0aGlzLnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAg ICAgICAgICAgIDwvR3JpZEl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+Ci0gICAg ICAgICAgICAgICAgICAgICA8R3JpZCBjbGFzc05hbWU9ImRzLW1hcmdpbi10b3AiPgotQEAgLTEx MzIsMTEgKzExNjEsMTMgQEAgZXhwb3J0IGNsYXNzIEdsb2JhbFB3UG9saWN5IGV4dGVuZHMgUmVh Y3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJwYXNz d29yZG1heHNlcXVlbmNlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1k ZXNjcmliZWRieT0iaG9yaXpvbnRhbC1mb3JtLW5hbWUtaGVscGVyIgotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbmFtZT0icGFzc3dvcmRtYXhzZXF1ZW5jZSIKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsuLi5nZXRWYWxpZGF0aW9uUHJvcHMoInBhc3N3b3JkbWF4 c2VxdWVuY2UiLCB0aGlzLnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlLCBjaGVja2VkKSA9PiB7Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVTeW50YXhDaGFuZ2UoZSk7Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fQotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvPgotICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZEl0ZW0+Ci0rICAgICAgICAg ICAgICAgICAgICAgICAge3JlbmRlclZhbGlkYXRpb25FcnJvcigicGFzc3dvcmRtYXhzZXF1ZW5j ZSIsIHRoaXMuc3RhdGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAg PEdyaWRJdGVtIGNsYXNzTmFtZT0iZHMtbGFiZWwiIG9mZnNldD17Nn0gc3Bhbj17M30+Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHtfKCJNYXggU2VxdWVuY2UgU2V0cyIpfQotICAgICAg ICAgICAgICAgICAgICAgICAgIDwvR3JpZEl0ZW0+Ci1AQCAtMTE0OCwxMSArMTE3OSwxMyBAQCBl eHBvcnQgY2xhc3MgR2xvYmFsUHdQb2xpY3kgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InBhc3N3b3JkbWF4c2Vxc2V0cyIKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9Imhvcml6b250 YWwtZm9ybS1uYW1lLWhlbHBlciIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5h bWU9InBhc3N3b3JkbWF4c2Vxc2V0cyIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsuLi5nZXRWYWxpZGF0aW9uUHJvcHMoInBhc3N3b3JkbWF4c2Vxc2V0cyIsIHRoaXMuc3RhdGUu aW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5n ZT17KGUsIGNoZWNrZWQpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0aGlzLmhhbmRsZVN5bnRheENoYW5nZShlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH19Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgPC9HcmlkSXRlbT4KLSsgICAgICAgICAgICAgICAgICAgICAgICB7cmVuZGVy VmFsaWRhdGlvbkVycm9yKCJwYXNzd29yZG1heHNlcXNldHMiLCB0aGlzLnN0YXRlLmludmFsaWRG aWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPgotICAgICAgICAgICAgICAgICAg ICAgPEdyaWQgY2xhc3NOYW1lPSJkcy1tYXJnaW4tdG9wIj4KLSAgICAgICAgICAgICAgICAgICAg ICAgICA8R3JpZEl0ZW0gY2xhc3NOYW1lPSJkcy1sYWJlbCIgc3Bhbj17M30+Ci1AQCAtMTE2Niwx MSArMTE5OSwxMyBAQCBleHBvcnQgY2xhc3MgR2xvYmFsUHdQb2xpY3kgZXh0ZW5kcyBSZWFjdC5D b21wb25lbnQgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InBhc3N3b3Jk bWF4Y2xhc3NjaGFycyIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZGVz Y3JpYmVkYnk9Imhvcml6b250YWwtZm9ybS1uYW1lLWhlbHBlciIKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG5hbWU9InBhc3N3b3JkbWF4Y2xhc3NjaGFycyIKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsuLi5nZXRWYWxpZGF0aW9uUHJvcHMoInBhc3N3b3JkbWF4 Y2xhc3NjaGFycyIsIHRoaXMuc3RhdGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUsIGNoZWNrZWQpID0+IHsKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZVN5bnRheENoYW5nZShlKTsKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkSXRlbT4KLSsgICAgICAg ICAgICAgICAgICAgICAgICB7cmVuZGVyVmFsaWRhdGlvbkVycm9yKCJwYXNzd29yZG1heGNsYXNz Y2hhcnMiLCB0aGlzLnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAg PC9HcmlkPgotICAgICAgICAgICAgICAgICAgICAgPEdyaWQgY2xhc3NOYW1lPSJkcy1tYXJnaW4t dG9wIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZEl0ZW0gY2xhc3NOYW1lPSJkcy1s YWJlbCIgc3Bhbj17M30+Ci1AQCAtMTI1MSwxMiArMTI4NiwxNCBAQCBleHBvcnQgY2xhc3MgR2xv YmFsUHdQb2xpY3kgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdHlwZT0ibnVtYmVyIgotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaWQ9InBhc3N3b3JkbWF4ZmFpbHVyZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9Imhvcml6b250YWwtZm9ybS1uYW1lLWhlbHBlciIKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9InBhc3N3b3JkbWF4cGFzc3dvcmRt YXhmYWlsdXJlY2xhc3NjaGFycyIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5h bWU9InBhc3N3b3JkbWF4ZmFpbHVyZSIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsuLi5nZXRWYWxpZGF0aW9uUHJvcHMoInBhc3N3b3JkbWF4ZmFpbHVyZSIsIHRoaXMuc3RhdGUu aW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5n ZT17KGUsIGNoZWNrZWQpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0aGlzLmhhbmRsZUxvY2tvdXRDaGFuZ2UoZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9fQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPgotICAgICAgICAgICAg ICAgICAgICAgICAgIDwvR3JpZEl0ZW0+Ci0rICAgICAgICAgICAgICAgICAgICAgICAge3JlbmRl clZhbGlkYXRpb25FcnJvcigicGFzc3dvcmRtYXhmYWlsdXJlIiwgdGhpcy5zdGF0ZS5pbnZhbGlk RmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD4KLSAgICAgICAgICAgICAgICAg ICAgIDxHcmlkIGNsYXNzTmFtZT0iZHMtbWFyZ2luLXRvcCIgdGl0bGU9e18oIlRoZSBudW1iZXIg b2Ygc2Vjb25kcyB1bnRpbCBhbiBhY2NvdW50cyBmYWlsdXJlIGNvdW50IGlzIHJlc2V0IChwYXNz d29yZFJlc2V0RmFpbHVyZUNvdW50KS4iKX0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgPEdy aWRJdGVtIGNsYXNzTmFtZT0iZHMtbGFiZWwiIHNwYW49ezV9PgotQEAgLTEyNjksMTEgKzEzMDYs MTMgQEAgZXhwb3J0IGNsYXNzIEdsb2JhbFB3UG9saWN5IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50 IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJwYXNzd29yZHJlc2V0ZmFp bHVyZWNvdW50IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1kZXNjcmli ZWRieT0iaG9yaXpvbnRhbC1mb3JtLW5hbWUtaGVscGVyIgotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbmFtZT0icGFzc3dvcmRyZXNldGZhaWx1cmVjb3VudCIKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsuLi5nZXRWYWxpZGF0aW9uUHJvcHMoInBhc3N3b3JkcmVz ZXRmYWlsdXJlY291bnQiLCB0aGlzLnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlLCBjaGVja2VkKSA9PiB7Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVMb2Nrb3V0Q2hhbmdlKGUp OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0KLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWRJdGVtPgotKyAg ICAgICAgICAgICAgICAgICAgICAgIHtyZW5kZXJWYWxpZGF0aW9uRXJyb3IoInBhc3N3b3JkcmVz ZXRmYWlsdXJlY291bnQiLCB0aGlzLnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAg ICAgICAgICAgPC9HcmlkPgotICAgICAgICAgICAgICAgICAgICAgPEdyaWQgY2xhc3NOYW1lPSJk cy1tYXJnaW4tdG9wIiB0aXRsZT17XygiVGhlIG51bWJlciBvZiBzZWNvbmRzLCBkdXJhdGlvbiwg YmVmb3JlIHRoZSBhY2NvdW50IGdldHMgdW5sb2NrZWQgKHBhc3N3b3JkTG9ja291dER1cmF0aW9u KS4iKX0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWRJdGVtIGNsYXNzTmFtZT0iZHMt bGFiZWwiIHNwYW49ezV9PgotQEAgLTEyODYsMTEgKzEzMjUsMTMgQEAgZXhwb3J0IGNsYXNzIEds b2JhbFB3UG9saWN5IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlkPSJwYXNzd29yZGxvY2tvdXRkdXJhdGlvbiIKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9Imhvcml6b250YWwtZm9ybS1u YW1lLWhlbHBlciIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9InBhc3N3 b3JkbG9ja291dGR1cmF0aW9uIgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey4u LmdldFZhbGlkYXRpb25Qcm9wcygicGFzc3dvcmRsb2Nrb3V0ZHVyYXRpb24iLCB0aGlzLnN0YXRl LmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFu Z2U9eyhlLCBjaGVja2VkKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdGhpcy5oYW5kbGVMb2Nrb3V0Q2hhbmdlKGUpOwotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4KLSAgICAgICAgICAg ICAgICAgICAgICAgICA8L0dyaWRJdGVtPgotKyAgICAgICAgICAgICAgICAgICAgICAgIHtyZW5k ZXJWYWxpZGF0aW9uRXJyb3IoInBhc3N3b3JkbG9ja291dGR1cmF0aW9uIiwgdGhpcy5zdGF0ZS5p bnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD4KLSAgICAgICAgICAg ICAgICAgICAgIDxHcmlkIGNsYXNzTmFtZT0iZHMtbWFyZ2luLXRvcCIgdGl0bGU9e18oIkRvIG5v dCBsb2Nrb3V0IHRoZSB1c2VyIGFjY291bnQgZm9yZXZlciwgaW5zdGVhZCB0aGUgYWNjb3VudCB3 aWxsIHVubG9jayBiYXNlZCBvbiB0aGUgbG9ja291dCBkdXJhdGlvbiAocGFzc3dvcmRVbmxvY2sp LiIpfT4KLSAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZEl0ZW0gY2xhc3NOYW1lPSJkcy1s YWJlbCIgc3Bhbj17NX0+Ci1AQCAtMTMyMiwxMSArMTM2MywxMyBAQCBleHBvcnQgY2xhc3MgR2xv YmFsUHdQb2xpY3kgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWQ9InBhc3N3b3JkbWF4YWdlIgotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT0iaG9yaXpvbnRhbC1mb3JtLW5hbWUtaGVscGVy IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0icGFzc3dvcmRtYXhhZ2Ui Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4uZ2V0VmFsaWRhdGlvblByb3Bz KCJwYXNzd29yZG1heGFnZSIsIHRoaXMuc3RhdGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUsIGNoZWNrZWQpID0+IHsKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUV4cENoYW5nZShlKTsK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkSXRlbT4KLSsgICAg ICAgICAgICAgICAgICAgICAgICB7cmVuZGVyVmFsaWRhdGlvbkVycm9yKCJwYXNzd29yZG1heGFn ZSIsIHRoaXMuc3RhdGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICA8L0dy aWQ+Ci0gICAgICAgICAgICAgICAgICAgICA8R3JpZCBjbGFzc05hbWU9ImRzLW1hcmdpbi10b3Ai IHRpdGxlPXtfKCJUaGUgbnVtYmVyIG9mIGxvZ2lucyB0aGF0IGFyZSBhbGxvd2VkIGFmdGVyIHRo ZSBwYXNzd29yZCBoYXMgZXhwaXJlZCAocGFzc3dvcmRHcmFjZUxpbWl0KS4iKX0+Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgPEdyaWRJdGVtIGNsYXNzTmFtZT0iZHMtbGFiZWwiIHNwYW49ezV9 PgotQEAgLTEzMzksMTEgKzEzODIsMTMgQEAgZXhwb3J0IGNsYXNzIEdsb2JhbFB3UG9saWN5IGV4 dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlkPSJwYXNzd29yZGdyYWNlbGltaXQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhcmlhLWRlc2NyaWJlZGJ5PSJob3Jpem9udGFsLWZvcm0tbmFtZS1oZWxwZXIiCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJwYXNzd29yZGdyYWNlbGltaXQiCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4uZ2V0VmFsaWRhdGlvblByb3BzKCJwYXNz d29yZGdyYWNlbGltaXQiLCB0aGlzLnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlLCBjaGVja2VkKSA9PiB7Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVFeHBDaGFuZ2UoZSk7Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fQotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvPgotICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZEl0ZW0+Ci0rICAgICAg ICAgICAgICAgICAgICAgICAge3JlbmRlclZhbGlkYXRpb25FcnJvcigicGFzc3dvcmRncmFjZWxp bWl0IiwgdGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgIDwv R3JpZD4KLSAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGNsYXNzTmFtZT0iZHMtbWFyZ2luLXRv cCIgdGl0bGU9e18oIlNldCB0aGUgdGltZSAoaW4gc2Vjb25kcyksIGJlZm9yZSBhIHBhc3N3b3Jk IGlzIGFib3V0IHRvIGV4cGlyZSwgdG8gc2VuZCBhIHdhcm5pbmcuIChwYXNzd29yZFdhcm5pbmcp LiIpfT4KLSAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZEl0ZW0gY2xhc3NOYW1lPSJkcy1s YWJlbCIgc3Bhbj17NX0+Ci1AQCAtMTM1NiwxMSArMTQwMSwxMyBAQCBleHBvcnQgY2xhc3MgR2xv YmFsUHdQb2xpY3kgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWQ9InBhc3N3b3Jkd2FybmluZyIKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9Imhvcml6b250YWwtZm9ybS1uYW1lLWhlbHBl ciIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9InBhc3N3b3Jkd2Fybmlu ZyIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5nZXRWYWxpZGF0aW9uUHJv cHMoInBhc3N3b3Jkd2FybmluZyIsIHRoaXMuc3RhdGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUsIGNoZWNrZWQpID0+IHsKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUV4cENoYW5nZShl KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkSXRlbT4KLSsg ICAgICAgICAgICAgICAgICAgICAgICB7cmVuZGVyVmFsaWRhdGlvbkVycm9yKCJwYXNzd29yZHdh cm5pbmciLCB0aGlzLnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAg PC9HcmlkPgotICAgICAgICAgICAgICAgICAgICAgPEdyaWQgY2xhc3NOYW1lPSJkcy1tYXJnaW4t dG9wIiB0aXRsZT17XygiQWx3YXlzIHJldHVybiBhIHBhc3N3b3JkIGV4cGlyaW5nIGNvbnRyb2wg d2hlbiByZXF1ZXN0ZWQgKHBhc3N3b3JkU2VuZEV4cGlyaW5nVGltZSkuIil9PgotICAgICAgICAg ICAgICAgICAgICAgICAgIDxHcmlkSXRlbSBjbGFzc05hbWU9ImRzLWxhYmVsIiBzcGFuPXs1fT4K LUBAIC0xNDkzLDEwICsxNTQwLDEyIEBAIGV4cG9ydCBjbGFzcyBHbG9iYWxQd1BvbGljeSBleHRl bmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWQ9InBhc3N3b3JkaW5oaXN0b3J5IgotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9Imhvcml6b250 YWwtZm9ybS1uYW1lLWhlbHBlciIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBuYW1lPSJwYXNzd29yZGluaGlzdG9yeSIKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4uZ2V0VmFsaWRhdGlvblByb3BzKCJw YXNzd29yZGluaGlzdG9yeSIsIHRoaXMuc3RhdGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlLCBjaGVj a2VkKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHRoaXMuaGFuZGxlR2VuZXJhbENoYW5nZShlKTsKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fQotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLz4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHtyZW5kZXJWYWxpZGF0aW9uRXJyb3IoInBhc3N3b3JkaW5oaXN0b3J5Iiwg dGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg PC9HcmlkSXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD4KLUBA IC0xNTU1LDExICsxNjA0LDEzIEBAIGV4cG9ydCBjbGFzcyBHbG9iYWxQd1BvbGljeSBleHRlbmRz IFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZD0icGFzc3dvcmRtaW5hZ2UiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PSJob3Jpem9udGFsLWZvcm0tbmFtZS1o ZWxwZXIiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1l PSJwYXNzd29yZG1pbmFnZSIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsuLi5nZXRWYWxpZGF0aW9uUHJvcHMoInBhc3N3b3JkbWluYWdlIiwgdGhpcy5zdGF0 ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG9uQ2hhbmdlPXsoZSwgY2hlY2tlZCkgPT4gewotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlR2VuZXJhbENoYW5nZShlKTsK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgPC9HcmlkSXRlbT4KLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7cmVuZGVyVmFsaWRhdGlvbkVycm9yKCJwYXNzd29yZG1pbmFnZSIsIHRoaXMu c3RhdGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 L0dyaWQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPXtfKCJUaGUgRE4gZm9yIGEgcGFzc3dv cmQgYWRtaW5pc3RyYXRvciBvciBhZG1pbmlzdHJhdG9yIGdyb3VwIChwYXNzd29yZEFkbWluRE4p LiIpfQotQEAgLTE1OTYsNyArMTY0Nyw3IEBAIGV4cG9ydCBjbGFzcyBHbG9iYWxQd1BvbGljeSBl eHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA8L0dyaWQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRm9ybT4KLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbgotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaXNEaXNhYmxlZD17dGhpcy5zdGF0ZS5zYXZlR2VuZXJhbERpc2FibGVkICYmIHRoaXMu c3RhdGUuc2F2ZVBhc3N3b3JkU3RvcmFnZURpc2FibGVkIHx8IHRoaXMuc3RhdGUuc2F2aW5nfQot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNEaXNhYmxlZD17dGhpcy5zdGF0ZS5z YXZlR2VuZXJhbERpc2FibGVkICYmIHRoaXMuc3RhdGUuc2F2ZVBhc3N3b3JkU3RvcmFnZURpc2Fi bGVkIHx8IHRoaXMuc3RhdGUuc2F2aW5nIHx8IGhhc0ludmFsaWRGaWVsZChnZW5lcmFsX2F0dHJz LCB0aGlzLnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdmFyaWFudD0icHJpbWFyeSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNsYXNzTmFtZT0iZHMtbWFyZ2luLXRvcC14bGcgZHMtbWFyZ2luLWxlZnQtc20iCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLmhhbmRsZVNhdmVHZW5lcmFs fQotQEAgLTE2MjQsNyArMTY3NSw3IEBAIGV4cG9ydCBjbGFzcyBHbG9iYWxQd1BvbGljeSBleHRl bmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 cHdFeHBpcmF0aW9uUm93c30KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Gb3JtPgot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpc0Rpc2FibGVkPXt0aGlzLnN0YXRlLnNhdmVFeHBEaXNhYmxlZCB8fCB0 aGlzLnN0YXRlLnNhdmluZ30KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRGlz YWJsZWQ9e3RoaXMuc3RhdGUuc2F2ZUV4cERpc2FibGVkIHx8IHRoaXMuc3RhdGUuc2F2aW5nIHx8 IGhhc0ludmFsaWRGaWVsZChleHBfYXR0cnMsIHRoaXMuc3RhdGUuaW52YWxpZEZpZWxkcyl9Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PSJwcmltYXJ5IgotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPSJkcy1tYXJnaW4tdG9wLXhsZyBk cy1tYXJnaW4tbGVmdCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9 e3RoaXMuaGFuZGxlU2F2ZUV4cH0KLUBAIC0xNjUyLDcgKzE3MDMsNyBAQCBleHBvcnQgY2xhc3Mg R2xvYmFsUHdQb2xpY3kgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAge3B3TG9ja291dFJvd3N9Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDwvRm9ybT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbgotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNEaXNhYmxlZD17dGhpcy5zdGF0ZS5zYXZl TG9ja291dERpc2FibGVkIHx8IHRoaXMuc3RhdGUuc2F2aW5nfQotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaXNEaXNhYmxlZD17dGhpcy5zdGF0ZS5zYXZlTG9ja291dERpc2FibGVk IHx8IHRoaXMuc3RhdGUuc2F2aW5nIHx8IGhhc0ludmFsaWRGaWVsZChsb2Nrb3V0X2F0dHJzLCB0 aGlzLnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdmFyaWFudD0icHJpbWFyeSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNs YXNzTmFtZT0iZHMtbWFyZ2luLXRvcC14bGcgZHMtbWFyZ2luLWxlZnQiCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLmhhbmRsZVNhdmVMb2Nrb3V0fQotQEAg LTE2ODAsNyArMTczMSw3IEBAIGV4cG9ydCBjbGFzcyBHbG9iYWxQd1BvbGljeSBleHRlbmRzIFJl YWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cHdTeW50 YXhSb3dzfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0Zvcm0+Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDxCdXR0b24KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlzRGlzYWJsZWQ9e3RoaXMuc3RhdGUuc2F2ZVN5bnRheERpc2FibGVkIHx8IHRoaXMuc3Rh dGUuc2F2aW5nfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNEaXNhYmxlZD17 dGhpcy5zdGF0ZS5zYXZlU3ludGF4RGlzYWJsZWQgfHwgdGhpcy5zdGF0ZS5zYXZpbmcgfHwgaGFz SW52YWxpZEZpZWxkKHN5bnRheF9hdHRycywgdGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9InByaW1hcnkiCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9ImRzLW1hcmdpbi10b3AteGxnIGRz LW1hcmdpbi1sZWZ0IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17 dGhpcy5oYW5kbGVTYXZlU3ludGF4fQotZGlmZiAtLWdpdCBhL3NyYy9jb2NrcGl0LzM4OS1jb25z b2xlL3NyYy9saWIvZGF0YWJhc2UvbG9jYWxQd3AuanN4IGIvc3JjL2NvY2twaXQvMzg5LWNvbnNv bGUvc3JjL2xpYi9kYXRhYmFzZS9sb2NhbFB3cC5qc3gKLWluZGV4IDhkY2U4OWZiOC4uZjlmOWRi YTMzIDEwMDY0NAotLS0tIGEvc3JjL2NvY2twaXQvMzg5LWNvbnNvbGUvc3JjL2xpYi9kYXRhYmFz ZS9sb2NhbFB3cC5qc3gKLSsrKyBiL3NyYy9jb2NrcGl0LzM4OS1jb25zb2xlL3NyYy9saWIvZGF0 YWJhc2UvbG9jYWxQd3AuanN4Ci1AQCAtMjUsNiArMjUsMTIgQEAgaW1wb3J0IHsKLSAJVGV4dFZh cmlhbnRzLAotIAlWYWxpZGF0ZWRPcHRpb25zCi0gfSBmcm9tICdAcGF0dGVybmZseS9yZWFjdC1j b3JlJzsKLStpbXBvcnQgewotKyAgICBnZXRWYWxpZGF0aW9uUHJvcHMsCi0rICAgIGhhc0ludmFs aWRGaWVsZCwKLSsgICAgcmVuZGVyVmFsaWRhdGlvbkVycm9yLAotKyAgICB1cGRhdGVGaWVsZFZh bGlkYXRpb24sCi0rfSBmcm9tICIuL3B3cFZhbGlkYXRpb24uanN4IjsKLSBpbXBvcnQgVHlwZWFo ZWFkU2VsZWN0IGZyb20gIi4uLy4uL2RzQmFzaWNDb21wb25lbnRzLmpzeCI7Ci0gaW1wb3J0IHsg U3luY0FsdEljb24gfSBmcm9tICJAcGF0dGVybmZseS9yZWFjdC1pY29ucyI7Ci0gaW1wb3J0IFBy b3BUeXBlcyBmcm9tICJwcm9wLXR5cGVzIjsKLUBAIC0yMTMsMTEgKzIxOSwxMyBAQCBjbGFzcyBD cmVhdGVQb2xpY3kgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZD0iY3JlYXRlX3Bhc3N3b3JkbWluYWdlIgotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PSJob3Jp em9udGFsLWZvcm0tbmFtZS1oZWxwZXIiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG5hbWU9ImNyZWF0ZV9wYXNzd29yZG1pbmFnZSIKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgey4uLmdldFZhbGlkYXRpb25Qcm9wcygiY3JlYXRlX3Bh c3N3b3JkbWluYWdlIiwgdGhpcy5wcm9wcy5pbnZhbGlkQ3JlYXRlRmllbGRzKX0KLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlLCBjaGVja2VkKSA9 PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBy b3BzLmhhbmRsZUNoYW5nZShlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPgotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkSXRlbT4KLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHtyZW5kZXJWYWxpZGF0aW9uRXJyb3IoImNyZWF0ZV9wYXNzd29yZG1p bmFnZSIsIHRoaXMucHJvcHMuaW52YWxpZENyZWF0ZUZpZWxkcyl9Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDwvR3JpZD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT0iZHMtbWFyZ2luLXRv cCIKLUBAIC0zMDksMTAgKzMxNywxMiBAQCBjbGFzcyBDcmVhdGVQb2xpY3kgZXh0ZW5kcyBSZWFj dC5Db21wb25lbnQgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWQ9ImNyZWF0ZV9wYXNzd29yZGluaGlzdG9yeSIKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9Imhvcml6b250YWwtZm9ybS1u YW1lLWhlbHBlciIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG5hbWU9ImNyZWF0ZV9wYXNzd29yZGluaGlzdG9yeSIKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsuLi5nZXRWYWxpZGF0aW9uUHJvcHMoImNyZWF0ZV9wYXNz d29yZGluaGlzdG9yeSIsIHRoaXMucHJvcHMuaW52YWxpZENyZWF0ZUZpZWxkcyl9Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUsIGNoZWNr ZWQpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0aGlzLnByb3BzLmhhbmRsZUNoYW5nZShlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH19Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyZW5k ZXJWYWxpZGF0aW9uRXJyb3IoImNyZWF0ZV9wYXNzd29yZGluaGlzdG9yeSIsIHRoaXMucHJvcHMu aW52YWxpZENyZWF0ZUZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgPC9kaXY+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWRJdGVtPgot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+Ci1AQCAtMzUyLDEyICszNjIsMTQg QEAgY2xhc3MgQ3JlYXRlUG9saWN5IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJjcmVhdGVfcGFzc3dvcmRt YXhhZ2UiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlh LWRlc2NyaWJlZGJ5PSJjcmVhdGVfcGFzc3dvcmRtYXhhZ2UiCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJjcmVhdGVfcGFzc3dvcmRtYXhhZ2UiCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4uZ2V0VmFsaWRh dGlvblByb3BzKCJjcmVhdGVfcGFzc3dvcmRtYXhhZ2UiLCB0aGlzLnByb3BzLmludmFsaWRDcmVh dGVGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg b25DaGFuZ2U9eyhlLCBzdHIpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmhhbmRsZUNoYW5nZShlKTsKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpc0Rpc2FibGVkPXshdGhpcy5wcm9wcy5wYXNzd29y ZGV4cH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4KLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWRJdGVtPgotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHtyZW5kZXJWYWxpZGF0aW9uRXJyb3IoImNyZWF0ZV9w YXNzd29yZG1heGFnZSIsIHRoaXMucHJvcHMuaW52YWxpZENyZWF0ZUZpZWxkcyl9Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA8R3JpZCBjbGFzc05hbWU9ImRzLW1hcmdpbi10b3AiIHRpdGxlPXtfKCJUaGUg bnVtYmVyIG9mIGxvZ2lucyB0aGF0IGFyZSBhbGxvd2VkIGFmdGVyIHRoZSBwYXNzd29yZCBoYXMg ZXhwaXJlZCAocGFzc3dvcmRHcmFjZUxpbWl0KS4iKX0+Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgPEdyaWRJdGVtIGNsYXNzTmFtZT0iZHMtbGFiZWwiIHNwYW49ezR9Pgot QEAgLTM2OSwxMiArMzgxLDE0IEBAIGNsYXNzIENyZWF0ZVBvbGljeSBleHRlbmRzIFJlYWN0LkNv bXBvbmVudCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZD0iY3JlYXRlX3Bhc3N3b3JkZ3JhY2VsaW1pdCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9ImNyZWF0ZV9wYXNzd29yZGdyYWNl bGltaXQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1l PSJjcmVhdGVfcGFzc3dvcmRncmFjZWxpbWl0IgotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgey4uLmdldFZhbGlkYXRpb25Qcm9wcygiY3JlYXRlX3Bhc3N3b3Jk Z3JhY2VsaW1pdCIsIHRoaXMucHJvcHMuaW52YWxpZENyZWF0ZUZpZWxkcyl9Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUsIHN0cikgPT4g ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMu cHJvcHMuaGFuZGxlQ2hhbmdlKGUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlzRGlzYWJsZWQ9eyF0aGlzLnByb3BzLnBhc3N3b3JkZXhwfQotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDwvR3JpZEl0ZW0+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAge3JlbmRlclZhbGlkYXRpb25FcnJvcigiY3JlYXRlX3Bhc3N3b3JkZ3JhY2VsaW1pdCIsIHRo aXMucHJvcHMuaW52YWxpZENyZWF0ZUZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA8L0dyaWQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBj bGFzc05hbWU9ImRzLW1hcmdpbi10b3AiIHRpdGxlPXtfKCJTZXQgdGhlIHRpbWUgKGluIHNlY29u ZHMpLCBiZWZvcmUgYSBwYXNzd29yZCBpcyBhYm91dCB0byBleHBpcmUsIHRvIHNlbmQgYSB3YXJu aW5nLiAocGFzc3dvcmRXYXJuaW5nKS4iKX0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPEdyaWRJdGVtIGNsYXNzTmFtZT0iZHMtbGFiZWwiIHNwYW49ezR9PgotQEAgLTM4 NiwxMiArNDAwLDE0IEBAIGNsYXNzIENyZWF0ZVBvbGljeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVu dCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0iY3Jl YXRlX3Bhc3N3b3Jkd2FybmluZyIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9ImNyZWF0ZV9wYXNzd29yZHdhcm5pbmciCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJjcmVhdGVfcGFz c3dvcmR3YXJuaW5nIgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgey4uLmdldFZhbGlkYXRpb25Qcm9wcygiY3JlYXRlX3Bhc3N3b3Jkd2FybmluZyIsIHRoaXMu cHJvcHMuaW52YWxpZENyZWF0ZUZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUsIHN0cikgPT4gewotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMuaGFuZGxlQ2hhbmdl KGUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0KLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRGlzYWJsZWQ9eyF0 aGlzLnByb3BzLnBhc3N3b3JkZXhwfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZEl0 ZW0+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3JlbmRlclZhbGlkYXRp b25FcnJvcigiY3JlYXRlX3Bhc3N3b3Jkd2FybmluZyIsIHRoaXMucHJvcHMuaW52YWxpZENyZWF0 ZUZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBjbGFzc05hbWU9ImRzLW1hcmdpbi10 b3AiIHRpdGxlPXtfKCJBbHdheXMgcmV0dXJuIGEgcGFzc3dvcmQgZXhwaXJpbmcgY29udHJvbCB3 aGVuIHJlcXVlc3RlZCAocGFzc3dvcmRTZW5kRXhwaXJpbmdUaW1lKS4iKX0+Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWRJdGVtIHNwYW49ezR9PgotQEAgLTQ0MSwx MiArNDU3LDE0IEBAIGNsYXNzIENyZWF0ZVBvbGljeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0iY3JlYXRl X3Bhc3N3b3JkbWF4ZmFpbHVyZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9ImNyZWF0ZV9wYXNzd29yZG1heGZhaWx1cmUiCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJjcmVhdGVf cGFzc3dvcmRtYXhmYWlsdXJlIgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgey4uLmdldFZhbGlkYXRpb25Qcm9wcygiY3JlYXRlX3Bhc3N3b3JkbWF4ZmFpbHVy ZSIsIHRoaXMucHJvcHMuaW52YWxpZENyZWF0ZUZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUsIHN0cikgPT4gewotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMuaGFu ZGxlQ2hhbmdlKGUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRGlz YWJsZWQ9eyF0aGlzLnByb3BzLnBhc3N3b3JkbG9ja291dH0KLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA8L0dyaWRJdGVtPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHty ZW5kZXJWYWxpZGF0aW9uRXJyb3IoImNyZWF0ZV9wYXNzd29yZG1heGZhaWx1cmUiLCB0aGlzLnBy b3BzLmludmFsaWRDcmVhdGVGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgPC9HcmlkPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQgY2xhc3NO YW1lPSJkcy1tYXJnaW4tdG9wIiB0aXRsZT17XygiVGhlIG51bWJlciBvZiBzZWNvbmRzIHVudGls IGFuIGFjY291bnRzIGZhaWx1cmUgY291bnQgaXMgcmVzZXQgKHBhc3N3b3JkUmVzZXRGYWlsdXJl Q291bnQpLiIpfT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZEl0 ZW0gY2xhc3NOYW1lPSJkcy1sYWJlbCIgc3Bhbj17NH0+Ci1AQCAtNDU4LDEyICs0NzYsMTQgQEAg Y2xhc3MgQ3JlYXRlUG9saWN5IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJjcmVhdGVfcGFzc3dvcmRyZXNl dGZhaWx1cmVjb3VudCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFyaWEtZGVzY3JpYmVkYnk9ImNyZWF0ZV9wYXNzd29yZHJlc2V0ZmFpbHVyZWNvdW50Igot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iY3JlYXRl X3Bhc3N3b3JkcmVzZXRmYWlsdXJlY291bnQiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7Li4uZ2V0VmFsaWRhdGlvblByb3BzKCJjcmVhdGVfcGFzc3dvcmRy ZXNldGZhaWx1cmVjb3VudCIsIHRoaXMucHJvcHMuaW52YWxpZENyZWF0ZUZpZWxkcyl9Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUsIHN0 cikgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHRoaXMucHJvcHMuaGFuZGxlQ2hhbmdlKGUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlzRGlzYWJsZWQ9eyF0aGlzLnByb3BzLnBhc3N3b3JkbG9ja291dH0KLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4KLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA8L0dyaWRJdGVtPgotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHtyZW5kZXJWYWxpZGF0aW9uRXJyb3IoImNyZWF0ZV9wYXNzd29yZHJlc2V0 ZmFpbHVyZWNvdW50IiwgdGhpcy5wcm9wcy5pbnZhbGlkQ3JlYXRlRmllbGRzKX0KLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD4KLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDxHcmlkIGNsYXNzTmFtZT0iZHMtbWFyZ2luLXRvcCIgdGl0bGU9e18oIlRoZSBu dW1iZXIgb2Ygc2Vjb25kcywgZHVyYXRpb24sIGJlZm9yZSB0aGUgYWNjb3VudCBnZXRzIHVubG9j a2VkIChwYXNzd29yZExvY2tvdXREdXJhdGlvbikuIil9PgotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDxHcmlkSXRlbSBjbGFzc05hbWU9ImRzLWxhYmVsIiBzcGFuPXs0fT4K LUBAIC00NzUsMTIgKzQ5NSwxNCBAQCBjbGFzcyBDcmVhdGVQb2xpY3kgZXh0ZW5kcyBSZWFjdC5D b21wb25lbnQgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aWQ9ImNyZWF0ZV9wYXNzd29yZGxvY2tvdXRkdXJhdGlvbiIKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9ImNyZWF0ZV9wYXNzd29y ZGxvY2tvdXRkdXJhdGlvbiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG5hbWU9ImNyZWF0ZV9wYXNzd29yZGxvY2tvdXRkdXJhdGlvbiIKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5nZXRWYWxpZGF0aW9uUHJvcHMo ImNyZWF0ZV9wYXNzd29yZGxvY2tvdXRkdXJhdGlvbiIsIHRoaXMucHJvcHMuaW52YWxpZENyZWF0 ZUZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv bkNoYW5nZT17KGUsIHN0cikgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHRoaXMucHJvcHMuaGFuZGxlQ2hhbmdlKGUpOwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0KLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlzRGlzYWJsZWQ9eyF0aGlzLnByb3BzLnBhc3N3b3Jk bG9ja291dH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4KLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWRJdGVtPgotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyZW5kZXJWYWxpZGF0aW9uRXJyb3IoImNyZWF0 ZV9wYXNzd29yZGxvY2tvdXRkdXJhdGlvbiIsIHRoaXMucHJvcHMuaW52YWxpZENyZWF0ZUZpZWxk cyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBjbGFzc05hbWU9ImRzLW1hcmdpbi10b3AiIHRp dGxlPXtfKCJEbyBub3QgbG9ja291dCB0aGUgdXNlciBhY2NvdW50IGZvcmV2ZXIsIGluc3RlYWQg dGhlIGFjY291bnQgd2lsbCB1bmxvY2sgYmFzZWQgb24gdGhlIGxvY2tvdXQgZHVyYXRpb24gKHBh c3N3b3JkVW5sb2NrKS4iKX0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg PEdyaWRJdGVtIHNwYW49ezZ9PgotQEAgLTUzMiw4ICs1NTQsMTAgQEAgY2xhc3MgQ3JlYXRlUG9s aWN5IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSwgc3RyKSA9PiB7Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5oYW5kbGVDaGFu Z2UoZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fQot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLmdldFZhbGlk YXRpb25Qcm9wcygiY3JlYXRlX3Bhc3N3b3JkbWlubGVuZ3RoIiwgdGhpcy5wcm9wcy5pbnZhbGlk Q3JlYXRlRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlzRGlzYWJsZWQ9eyF0aGlzLnByb3BzLnBhc3N3b3JkY2hlY2tzeW50YXh9Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHtyZW5kZXJWYWxpZGF0aW9uRXJyb3IoImNyZWF0ZV9wYXNz d29yZG1pbmxlbmd0aCIsIHRoaXMucHJvcHMuaW52YWxpZENyZWF0ZUZpZWxkcyl9Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkSXRlbT4KLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA8R3JpZEl0ZW0gY2xhc3NOYW1lPSJkcy1sYWJlbCIgb2Zm c2V0PXs1fSBzcGFuPXszfT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAge18oIk1pbmltdW0gQWxwaGEncyIpfQotQEAgLTU0Nyw4ICs1NzEsMTAgQEAgY2xhc3MgQ3Jl YXRlUG9saWN5IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSwgc3RyKSA9PiB7Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5oYW5k bGVDaGFuZ2UoZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9fQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLmdl dFZhbGlkYXRpb25Qcm9wcygiY3JlYXRlX3Bhc3N3b3JkbWluYWxwaGFzIiwgdGhpcy5wcm9wcy5p bnZhbGlkQ3JlYXRlRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlzRGlzYWJsZWQ9eyF0aGlzLnByb3BzLnBhc3N3b3JkY2hlY2tzeW50YXh9Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyZW5kZXJWYWxpZGF0aW9uRXJyb3IoImNyZWF0 ZV9wYXNzd29yZG1pbmFscGhhcyIsIHRoaXMucHJvcHMuaW52YWxpZENyZWF0ZUZpZWxkcyl9Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkSXRlbT4KLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD4KLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDxHcmlkIGNsYXNzTmFtZT0iZHMtbWFyZ2luLXRvcCI+Ci1AQCAtNTY0LDggKzU5 MCwxMCBAQCBjbGFzcyBDcmVhdGVQb2xpY3kgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlLCBz dHIpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0aGlzLnByb3BzLmhhbmRsZUNoYW5nZShlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH19Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7Li4uZ2V0VmFsaWRhdGlvblByb3BzKCJjcmVhdGVfcGFzc3dvcmRtaW5kaWdp dHMiLCB0aGlzLnByb3BzLmludmFsaWRDcmVhdGVGaWVsZHMpfQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNEaXNhYmxlZD17IXRoaXMucHJvcHMucGFzc3dv cmRjaGVja3N5bnRheH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Lz4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3JlbmRlclZhbGlk YXRpb25FcnJvcigiY3JlYXRlX3Bhc3N3b3JkbWluZGlnaXRzIiwgdGhpcy5wcm9wcy5pbnZhbGlk Q3JlYXRlRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0dy aWRJdGVtPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkSXRlbSBj bGFzc05hbWU9ImRzLWxhYmVsIiBvZmZzZXQ9ezV9IHNwYW49ezN9PgotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7XygiTWluaW11bSBTcGVjaWFsIil9Ci1AQCAtNTc5 LDggKzYwNywxMCBAQCBjbGFzcyBDcmVhdGVQb2xpY3kgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQg ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9 eyhlLCBzdHIpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0aGlzLnByb3BzLmhhbmRsZUNoYW5nZShlKTsKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH19Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7Li4uZ2V0VmFsaWRhdGlvblByb3BzKCJjcmVhdGVfcGFzc3dvcmRt aW5zcGVjaWFscyIsIHRoaXMucHJvcHMuaW52YWxpZENyZWF0ZUZpZWxkcyl9Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0Rpc2FibGVkPXshdGhpcy5wcm9w cy5wYXNzd29yZGNoZWNrc3ludGF4fQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cmVu ZGVyVmFsaWRhdGlvbkVycm9yKCJjcmVhdGVfcGFzc3dvcmRtaW5zcGVjaWFscyIsIHRoaXMucHJv cHMuaW52YWxpZENyZWF0ZUZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgPC9HcmlkSXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3Jp ZD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGNsYXNzTmFtZT0iZHMt bWFyZ2luLXRvcCI+Ci1AQCAtNTk2LDggKzYyNiwxMCBAQCBjbGFzcyBDcmVhdGVQb2xpY3kgZXh0 ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgb25DaGFuZ2U9eyhlLCBzdHIpID0+IHsKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmhhbmRsZUNoYW5nZShlKTsK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4uZ2V0VmFsaWRhdGlvblBy b3BzKCJjcmVhdGVfcGFzc3dvcmRtaW51cHBlcnMiLCB0aGlzLnByb3BzLmludmFsaWRDcmVhdGVG aWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNE aXNhYmxlZD17IXRoaXMucHJvcHMucGFzc3dvcmRjaGVja3N5bnRheH0KLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4KLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAge3JlbmRlclZhbGlkYXRpb25FcnJvcigiY3JlYXRlX3Bhc3N3b3JkbWlu dXBwZXJzIiwgdGhpcy5wcm9wcy5pbnZhbGlkQ3JlYXRlRmllbGRzKX0KLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWRJdGVtPgotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDxHcmlkSXRlbSBjbGFzc05hbWU9ImRzLWxhYmVsIiBvZmZzZXQ9ezV9 IHNwYW49ezN9PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Xygi TWluaW11bSBMb3dlcmNhc2UiKX0KLUBAIC02MTEsOCArNjQzLDEwIEBAIGNsYXNzIENyZWF0ZVBv bGljeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUsIHN0cikgPT4gewotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMuaGFuZGxlQ2hh bmdlKGUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0K LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5nZXRWYWxp ZGF0aW9uUHJvcHMoImNyZWF0ZV9wYXNzd29yZG1pbmxvd2VycyIsIHRoaXMucHJvcHMuaW52YWxp ZENyZWF0ZUZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpc0Rpc2FibGVkPXshdGhpcy5wcm9wcy5wYXNzd29yZGNoZWNrc3ludGF4fQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPgotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7cmVuZGVyVmFsaWRhdGlvbkVycm9yKCJjcmVhdGVfcGFz c3dvcmRtaW5sb3dlcnMiLCB0aGlzLnByb3BzLmludmFsaWRDcmVhdGVGaWVsZHMpfQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZEl0ZW0+Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA8R3JpZCBjbGFzc05hbWU9ImRzLW1hcmdpbi10b3AiPgotQEAgLTYyOCw4ICs2NjIsMTAg QEAgY2xhc3MgQ3JlYXRlUG9saWN5IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSwgc3RyKSA9 PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhp cy5wcm9wcy5oYW5kbGVDaGFuZ2UoZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9fQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgey4uLmdldFZhbGlkYXRpb25Qcm9wcygiY3JlYXRlX3Bhc3N3b3JkbWluOGJpdCIsIHRo aXMucHJvcHMuaW52YWxpZENyZWF0ZUZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpc0Rpc2FibGVkPXshdGhpcy5wcm9wcy5wYXNzd29yZGNoZWNr c3ludGF4fQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPgotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cmVuZGVyVmFsaWRhdGlvbkVy cm9yKCJjcmVhdGVfcGFzc3dvcmRtaW44Yml0IiwgdGhpcy5wcm9wcy5pbnZhbGlkQ3JlYXRlRmll bGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWRJdGVtPgot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkSXRlbSBjbGFzc05hbWU9 ImRzLWxhYmVsIiBvZmZzZXQ9ezV9IHNwYW49ezN9PgotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7XygiTWluaW11bSBDYXRlZ29yaWVzIil9Ci1AQCAtNjQzLDggKzY3 OSwxMCBAQCBjbGFzcyBDcmVhdGVQb2xpY3kgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlLCBz dHIpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0aGlzLnByb3BzLmhhbmRsZUNoYW5nZShlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH19Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7Li4uZ2V0VmFsaWRhdGlvblByb3BzKCJjcmVhdGVfcGFzc3dvcmRtaW5jYXRl Z29yaWVzIiwgdGhpcy5wcm9wcy5pbnZhbGlkQ3JlYXRlRmllbGRzKX0KLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRGlzYWJsZWQ9eyF0aGlzLnByb3BzLnBh c3N3b3JkY2hlY2tzeW50YXh9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyZW5kZXJW YWxpZGF0aW9uRXJyb3IoImNyZWF0ZV9wYXNzd29yZG1pbmNhdGVnb3JpZXMiLCB0aGlzLnByb3Bz LmludmFsaWRDcmVhdGVGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDwvR3JpZEl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+ Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBjbGFzc05hbWU9ImRzLW1h cmdpbi10b3AiPgotQEAgLTY2MCw4ICs2OTgsMTAgQEAgY2xhc3MgQ3JlYXRlUG9saWN5IGV4dGVu ZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG9uQ2hhbmdlPXsoZSwgc3RyKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5oYW5kbGVDaGFuZ2UoZSk7Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fQotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLmdldFZhbGlkYXRpb25Qcm9w cygiY3JlYXRlX3Bhc3N3b3JkbWludG9rZW5sZW5ndGgiLCB0aGlzLnByb3BzLmludmFsaWRDcmVh dGVGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aXNEaXNhYmxlZD17IXRoaXMucHJvcHMucGFzc3dvcmRjaGVja3N5bnRheH0KLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4KLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAge3JlbmRlclZhbGlkYXRpb25FcnJvcigiY3JlYXRlX3Bhc3N3b3Jk bWludG9rZW5sZW5ndGgiLCB0aGlzLnByb3BzLmludmFsaWRDcmVhdGVGaWVsZHMpfQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZEl0ZW0+Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWRJdGVtIGNsYXNzTmFtZT0iZHMtbGFiZWwiIG9m ZnNldD17NX0gc3Bhbj17M30+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHtfKCJNYXggUmVwZWF0ZWQgQ2hhcnMiKX0KLUBAIC02NzUsOCArNzE1LDEwIEBAIGNsYXNz IENyZWF0ZVBvbGljeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUsIHN0cikgPT4gewotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMu aGFuZGxlQ2hhbmdlKGUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfX0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsu Li5nZXRWYWxpZGF0aW9uUHJvcHMoImNyZWF0ZV9wYXNzd29yZG1heHJlcGVhdHMiLCB0aGlzLnBy b3BzLmludmFsaWRDcmVhdGVGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaXNEaXNhYmxlZD17IXRoaXMucHJvcHMucGFzc3dvcmRjaGVja3N5bnRh eH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4KLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3JlbmRlclZhbGlkYXRpb25FcnJvcigi Y3JlYXRlX3Bhc3N3b3JkbWF4cmVwZWF0cyIsIHRoaXMucHJvcHMuaW52YWxpZENyZWF0ZUZpZWxk cyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkSXRlbT4KLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD4KLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDxHcmlkIGNsYXNzTmFtZT0iZHMtbWFyZ2luLXRvcCI+Ci1AQCAtNjg5 LDExICs3MzEsMTMgQEAgY2xhc3MgQ3JlYXRlUG9saWN5IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50 IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJjcmVh dGVfcGFzc3dvcmRtYXhzZXF1ZW5jZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9ImNyZWF0ZV9wYXNzd29yZG1heHNlcXVlbmNl IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iY3Jl YXRlX3Bhc3N3b3JkbWF4c2VxdWVuY2UiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7Li4uZ2V0VmFsaWRhdGlvblByb3BzKCJjcmVhdGVfcGFzc3dvcmRtYXhz ZXF1ZW5jZSIsIHRoaXMucHJvcHMuaW52YWxpZENyZWF0ZUZpZWxkcyl9Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUsIHN0cikgPT4gewot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJv cHMuaGFuZGxlQ2hhbmdlKGUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlzRGlzYWJsZWQ9eyF0aGlzLnByb3BzLnBhc3N3b3JkY2hlY2tzeW50YXh9Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHtyZW5kZXJWYWxpZGF0aW9uRXJyb3IoImNyZWF0ZV9wYXNzd29y ZG1heHNlcXVlbmNlIiwgdGhpcy5wcm9wcy5pbnZhbGlkQ3JlYXRlRmllbGRzKX0KLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWRJdGVtPgotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDxHcmlkSXRlbSBjbGFzc05hbWU9ImRzLWxhYmVsIiBvZmZz ZXQ9ezV9IHNwYW49ezN9PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7XygiTWF4IFNlcXVlbmNlIFNldHMiKX0KLUBAIC03MDQsMTEgKzc0OCwxMyBAQCBjbGFzcyBD cmVhdGVQb2xpY3kgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9ImNyZWF0ZV9wYXNzd29yZG1heHNlcXNldHMi Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2Ny aWJlZGJ5PSJjcmVhdGVfcGFzc3dvcmRtYXhzZXFzZXRzIgotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iY3JlYXRlX3Bhc3N3b3JkbWF4c2Vxc2V0cyIK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5nZXRWYWxp ZGF0aW9uUHJvcHMoImNyZWF0ZV9wYXNzd29yZG1heHNlcXNldHMiLCB0aGlzLnByb3BzLmludmFs aWRDcmVhdGVGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgb25DaGFuZ2U9eyhlLCBzdHIpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmhhbmRsZUNoYW5nZShlKTsKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0Rpc2FibGVkPXshdGhpcy5wcm9wcy5w YXNzd29yZGNoZWNrc3ludGF4fQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cmVuZGVy VmFsaWRhdGlvbkVycm9yKCJjcmVhdGVfcGFzc3dvcmRtYXhzZXFzZXRzIiwgdGhpcy5wcm9wcy5p bnZhbGlkQ3JlYXRlRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA8L0dyaWRJdGVtPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPgot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQgY2xhc3NOYW1lPSJkcy1tYXJn aW4tdG9wIj4KLUBAIC03MjEsMTEgKzc2NywxMyBAQCBjbGFzcyBDcmVhdGVQb2xpY3kgZXh0ZW5k cyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWQ9ImNyZWF0ZV9wYXNzd29yZG1heGNsYXNzY2hhcnMiCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PSJjcmVhdGVf cGFzc3dvcmRtYXhjbGFzc2NoYXJzIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbmFtZT0iY3JlYXRlX3Bhc3N3b3JkbWF4Y2xhc3NjaGFycyIKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5nZXRWYWxpZGF0aW9uUHJv cHMoImNyZWF0ZV9wYXNzd29yZG1heGNsYXNzY2hhcnMiLCB0aGlzLnByb3BzLmludmFsaWRDcmVh dGVGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg b25DaGFuZ2U9eyhlLCBzdHIpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmhhbmRsZUNoYW5nZShlKTsKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpc0Rpc2FibGVkPXshdGhpcy5wcm9wcy5wYXNzd29y ZGNoZWNrc3ludGF4fQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv PgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cmVuZGVyVmFsaWRh dGlvbkVycm9yKCJjcmVhdGVfcGFzc3dvcmRtYXhjbGFzc2NoYXJzIiwgdGhpcy5wcm9wcy5pbnZh bGlkQ3JlYXRlRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 L0dyaWRJdGVtPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPgotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQKLUBAIC0xMDgyLDYgKzExMzAsOSBA QCBleHBvcnQgY2xhc3MgTG9jYWxQd1BvbGljeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0g ICAgICAgICAgICAgX2NyZWF0ZV9wYXNzd29yZHRwcmRlbGF5dmFsaWRmcm9tOiAgIi0xIiwKLSAg ICAgICAgICAgICBfY3JlYXRlX3Bhc3N3b3JkYWRtaW5kbjogIiIsCi0gICAgICAgICAgICAgX2Ny ZWF0ZV9wYXNzd29yZGFkbWluc2tpcGluZm91cGRhdGU6IGZhbHNlLAotKyAgICAgICAgICAgIC8v IFZhbGlkYXRpb24KLSsgICAgICAgICAgICBpbnZhbGlkRmllbGRzOiB7fSwKLSsgICAgICAgICAg ICBpbnZhbGlkQ3JlYXRlRmllbGRzOiB7fSwKLSAgICAgICAgICAgICAvLyBTZWxlY3QgdHlwZWFo ZWFkCi0gICAgICAgICAgICAgaXNVc2VyQXR0cnNDcmVhdGVPcGVuOiBmYWxzZSwKLSAgICAgICAg ICAgICBpc1VzZXJBdHRyc0VkaXRPcGVuOiBmYWxzZSwKLUBAIC0xMzE0LDE5ICsxMzY1LDI3IEBA IGV4cG9ydCBjbGFzcyBMb2NhbFB3UG9saWN5IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAg ICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gCi0rICAgICAgICAvLyBWYWxpZGF0ZSBjb25zdHJh aW5lZCBmaWVsZHMgZm9yIGNyZWF0ZQotKyAgICAgICAgY29uc3QgbmV3SW52YWxpZENyZWF0ZUZp ZWxkcyA9IHVwZGF0ZUZpZWxkVmFsaWRhdGlvbih0aGlzLnN0YXRlLmludmFsaWRDcmVhdGVGaWVs ZHMsIGF0dHIsIHZhbHVlKTsKLSsgICAgICAgIGlmIChuZXdJbnZhbGlkQ3JlYXRlRmllbGRzW2F0 dHJdKSB7Ci0rICAgICAgICAgICAgZGlzYWJsZVNhdmVCdG4gPSB0cnVlOwotKyAgICAgICAgfQot KwotICAgICAgICAgLy8gU2VsZWN0IFR5cGVhaGVhZAotICAgICAgICAgaWYgKHNlbGVjdGlvbikg ewotICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoewotICAgICAgICAgICAgICAgICBbYXR0cl06 IEFycmF5LmlzQXJyYXkoc2VsZWN0aW9uKSA/IHNlbGVjdGlvbiA6IFtdLAotICAgICAgICAgICAg ICAgICBjcmVhdGVEaXNhYmxlZDogZGlzYWJsZVNhdmVCdG4sCi0gICAgICAgICAgICAgICAgIGlu dmFsaWRfZG4sCi0rICAgICAgICAgICAgICAgIGludmFsaWRDcmVhdGVGaWVsZHM6IG5ld0ludmFs aWRDcmVhdGVGaWVsZHMsCi0gICAgICAgICAgICAgICAgIGlzVXNlckF0dHJzQ3JlYXRlT3Blbjog ZmFsc2UKLSAgICAgICAgICAgICB9KTsKLSAgICAgICAgIH0gZWxzZSB7IC8vIENoZWNrYm94Ci0g ICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7Ci0gICAgICAgICAgICAgICAgIFthdHRyXTogdmFs dWUsCi0gICAgICAgICAgICAgICAgIGNyZWF0ZURpc2FibGVkOiBkaXNhYmxlU2F2ZUJ0biwKLS0g ICAgICAgICAgICAgICAgaW52YWxpZF9kbgotKyAgICAgICAgICAgICAgICBpbnZhbGlkX2RuLAot KyAgICAgICAgICAgICAgICBpbnZhbGlkQ3JlYXRlRmllbGRzOiBuZXdJbnZhbGlkQ3JlYXRlRmll bGRzLAotICAgICAgICAgICAgIH0pOwotICAgICAgICAgfQotICAgICB9Ci1AQCAtMTQxOCw2ICsx NDc3LDcgQEAgZXhwb3J0IGNsYXNzIExvY2FsUHdQb2xpY3kgZXh0ZW5kcyBSZWFjdC5Db21wb25l bnQgewotICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7Ci0gICAgICAgICAgICAgW2F0dHJdOiB2YWx1 ZSwKLSAgICAgICAgICAgICBzYXZlR2VuZXJhbERpc2FibGVkOiBkaXNhYmxlU2F2ZUJ0biwKLSsg ICAgICAgICAgICBpbnZhbGlkRmllbGRzOiB1cGRhdGVGaWVsZFZhbGlkYXRpb24odGhpcy5zdGF0 ZS5pbnZhbGlkRmllbGRzLCBhdHRyLCB2YWx1ZSksCi0gICAgICAgICB9KTsKLSAgICAgfQotIAot QEAgLTE0OTUsNiArMTU1NSw3IEBAIGV4cG9ydCBjbGFzcyBMb2NhbFB3UG9saWN5IGV4dGVuZHMg UmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgIHRoaXMuc2V0U3RhdGUoewotICAgICAgICAgICAg IFthdHRyXTogdmFsdWUsCi0gICAgICAgICAgICAgc2F2ZUV4cERpc2FibGVkOiBkaXNhYmxlU2F2 ZUJ0biwKLSsgICAgICAgICAgICBpbnZhbGlkRmllbGRzOiB1cGRhdGVGaWVsZFZhbGlkYXRpb24o dGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzLCBhdHRyLCB2YWx1ZSksCi0gICAgICAgICB9KTsKLSAg ICAgfQotIAotQEAgLTE1NzIsNiArMTYzMyw3IEBAIGV4cG9ydCBjbGFzcyBMb2NhbFB3UG9saWN5 IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgIHRoaXMuc2V0U3RhdGUoewotICAg ICAgICAgICAgIFthdHRyXTogdmFsdWUsCi0gICAgICAgICAgICAgc2F2ZUxvY2tvdXREaXNhYmxl ZDogZGlzYWJsZVNhdmVCdG4sCi0rICAgICAgICAgICAgaW52YWxpZEZpZWxkczogdXBkYXRlRmll bGRWYWxpZGF0aW9uKHRoaXMuc3RhdGUuaW52YWxpZEZpZWxkcywgYXR0ciwgdmFsdWUpLAotICAg ICAgICAgfSk7Ci0gICAgIH0KLSAKLUBAIC0xNjcyLDEyICsxNzM0LDE0IEBAIGV4cG9ydCBjbGFz cyBMb2NhbFB3UG9saWN5IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAgICB0 aGlzLnNldFN0YXRlKHsKLSAgICAgICAgICAgICAgICAgW2F0dHJdOiBBcnJheS5pc0FycmF5KHNl bGVjdGlvbikgPyBzZWxlY3Rpb24gOiBbXSwKLSAgICAgICAgICAgICAgICAgc2F2ZVN5bnRheERp c2FibGVkOiBkaXNhYmxlU2F2ZUJ0biwKLSsgICAgICAgICAgICAgICAgaW52YWxpZEZpZWxkczog dXBkYXRlRmllbGRWYWxpZGF0aW9uKHRoaXMuc3RhdGUuaW52YWxpZEZpZWxkcywgYXR0ciwgdmFs dWUpLAotICAgICAgICAgICAgICAgICBpc1VzZXJBdHRyc0VkaXRPcGVuOiBmYWxzZQotICAgICAg ICAgICAgIH0pOwotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICB0aGlzLnNldFN0YXRl KHsKLSAgICAgICAgICAgICAgICAgW2F0dHJdOiB2YWx1ZSwKLSAgICAgICAgICAgICAgICAgc2F2 ZVN5bnRheERpc2FibGVkOiBkaXNhYmxlU2F2ZUJ0biwKLSsgICAgICAgICAgICAgICAgaW52YWxp ZEZpZWxkczogdXBkYXRlRmllbGRWYWxpZGF0aW9uKHRoaXMuc3RhdGUuaW52YWxpZEZpZWxkcywg YXR0ciwgdmFsdWUpLAotICAgICAgICAgICAgICAgICBpc1VzZXJBdHRyc0VkaXRPcGVuOiBmYWxz ZQotICAgICAgICAgICAgIH0pOwotICAgICAgICAgfQotQEAgLTE4NjcsNiArMTkzMSw4IEBAIGV4 cG9ydCBjbGFzcyBMb2NhbFB3UG9saWN5IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAg ICAgICAgICAgICAgICAgICAgICBwb2xpY3lOYW1lOiAiIiwKLSAgICAgICAgICAgICAgICAgICAg ICAgICBkZWxldGVOYW1lOiAiIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBzaG93RGVsZXRl UG9saWN5OiBmYWxzZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICBpbnZhbGlkRmllbGRzOiB7 fSwKLSsgICAgICAgICAgICAgICAgICAgICAgICBpbnZhbGlkQ3JlYXRlRmllbGRzOiB7fSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAvLyBSZXNldCBlZGl0IGFuZCBjcmVhdGUgdGFiCi0gICAg ICAgICAgICAgICAgICAgICAgICAgc2F2ZUdlbmVyYWxEaXNhYmxlZDogdHJ1ZSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICBzYXZlVXNlckRpc2FibGVkOiB0cnVlLAotQEAgLTIzOTEsMTAgKzI0 NTcsMTIgQEAgZXhwb3J0IGNsYXNzIExvY2FsUHdQb2xpY3kgZXh0ZW5kcyBSZWFjdC5Db21wb25l bnQgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InBhc3N3b3JkbWlubGVu Z3RoIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT0i aG9yaXpvbnRhbC1mb3JtLW5hbWUtaGVscGVyIgotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbmFtZT0icGFzc3dvcmRtaW5sZW5ndGgiCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7Li4uZ2V0VmFsaWRhdGlvblByb3BzKCJwYXNzd29yZG1pbmxlbmd0aCIsIHRoaXMu c3RhdGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv bkNoYW5nZT17KGUsIGNoZWNrZWQpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0aGlzLmhhbmRsZVN5bnRheENoYW5nZShlKTsKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH19Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHtyZW5kZXJWYWxpZGF0aW9uRXJyb3IoInBhc3N3b3JkbWlu bGVuZ3RoIiwgdGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAg ICAgICA8L0dyaWRJdGVtPgotICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkSXRlbSBjbGFz c05hbWU9ImRzLWxhYmVsIiBvZmZzZXQ9ezZ9IHNwYW49ezN9PgotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7XygiTWluaW11bSBBbHBoYSdzIil9Ci1AQCAtMjQwNywxMCArMjQ3NSwxMiBA QCBleHBvcnQgY2xhc3MgTG9jYWxQd1BvbGljeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icGFzc3dvcmRtaW5hbHBoYXMiCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PSJob3Jpem9u dGFsLWZvcm0tbmFtZS1oZWxwZXIiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu YW1lPSJwYXNzd29yZG1pbmFscGhhcyIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsuLi5nZXRWYWxpZGF0aW9uUHJvcHMoInBhc3N3b3JkbWluYWxwaGFzIiwgdGhpcy5zdGF0ZS5p bnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdl PXsoZSwgY2hlY2tlZCkgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHRoaXMuaGFuZGxlU3ludGF4Q2hhbmdlKGUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4KLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAge3JlbmRlclZhbGlkYXRpb25FcnJvcigicGFzc3dvcmRtaW5hbHBoYXMi LCB0aGlzLnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgIDwv R3JpZEl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+Ci0gICAgICAgICAgICAgICAg ICAgICA8R3JpZCBjbGFzc05hbWU9ImRzLW1hcmdpbi10b3AiPgotQEAgLTI0MjUsMTAgKzI0OTUs MTIgQEAgZXhwb3J0IGNsYXNzIExvY2FsUHdQb2xpY3kgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQg ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InBhc3N3b3JkbWluZGlnaXRz IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT0iaG9y aXpvbnRhbC1mb3JtLW5hbWUtaGVscGVyIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbmFtZT0icGFzc3dvcmRtaW5kaWdpdHMiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7Li4uZ2V0VmFsaWRhdGlvblByb3BzKCJwYXNzd29yZG1pbmRpZ2l0cyIsIHRoaXMuc3Rh dGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNo YW5nZT17KGUsIGNoZWNrZWQpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0aGlzLmhhbmRsZVN5bnRheENoYW5nZShlKTsKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH19Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHtyZW5kZXJWYWxpZGF0aW9uRXJyb3IoInBhc3N3b3JkbWluZGln aXRzIiwgdGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAg ICA8L0dyaWRJdGVtPgotICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkSXRlbSBjbGFzc05h bWU9ImRzLWxhYmVsIiBvZmZzZXQ9ezZ9IHNwYW49ezN9PgotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7XygiTWluaW11bSBTcGVjaWFsIil9Ci1AQCAtMjQ0MSwxMCArMjUxMywxMiBAQCBl eHBvcnQgY2xhc3MgTG9jYWxQd1BvbGljeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icGFzc3dvcmRtaW5zcGVjaWFscyIKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9Imhvcml6b250 YWwtZm9ybS1uYW1lLWhlbHBlciIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5h bWU9InBhc3N3b3JkbWluc3BlY2lhbHMiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7Li4uZ2V0VmFsaWRhdGlvblByb3BzKCJwYXNzd29yZG1pbnNwZWNpYWxzIiwgdGhpcy5zdGF0 ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hh bmdlPXsoZSwgY2hlY2tlZCkgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHRoaXMuaGFuZGxlU3ludGF4Q2hhbmdlKGUpOwotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4KLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAge3JlbmRlclZhbGlkYXRpb25FcnJvcigicGFzc3dvcmRtaW5zcGVj aWFscyIsIHRoaXMuc3RhdGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgPC9HcmlkSXRlbT4KLSAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD4KLSAgICAgICAgICAg ICAgICAgICAgIDxHcmlkIGNsYXNzTmFtZT0iZHMtbWFyZ2luLXRvcCI+Ci1AQCAtMjQ1OSwxMCAr MjUzMywxMiBAQCBleHBvcnQgY2xhc3MgTG9jYWxQd1BvbGljeSBleHRlbmRzIFJlYWN0LkNvbXBv bmVudCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icGFzc3dvcmRtaW51 cHBlcnMiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5 PSJob3Jpem9udGFsLWZvcm0tbmFtZS1oZWxwZXIiCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBuYW1lPSJwYXNzd29yZG1pbnVwcGVycyIKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsuLi5nZXRWYWxpZGF0aW9uUHJvcHMoInBhc3N3b3JkbWludXBwZXJzIiwgdGhp cy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG9uQ2hhbmdlPXsoZSwgY2hlY2tlZCkgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHRoaXMuaGFuZGxlU3ludGF4Q2hhbmdlKGUpOwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4KLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAge3JlbmRlclZhbGlkYXRpb25FcnJvcigicGFzc3dvcmRt aW51cHBlcnMiLCB0aGlzLnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAg ICAgICAgIDwvR3JpZEl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWRJdGVtIGNs YXNzTmFtZT0iZHMtbGFiZWwiIG9mZnNldD17Nn0gc3Bhbj17M30+Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHtfKCJNaW5pbXVtIExvd2VyY2FzZSIpfQotQEAgLTI0NzUsMTAgKzI1NTEs MTIgQEAgZXhwb3J0IGNsYXNzIExvY2FsUHdQb2xpY3kgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQg ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InBhc3N3b3JkbWlubG93ZXJz IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT0iaG9y aXpvbnRhbC1mb3JtLW5hbWUtaGVscGVyIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbmFtZT0icGFzc3dvcmRtaW5sb3dlcnMiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7Li4uZ2V0VmFsaWRhdGlvblByb3BzKCJwYXNzd29yZG1pbmxvd2VycyIsIHRoaXMuc3Rh dGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNo YW5nZT17KGUsIGNoZWNrZWQpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0aGlzLmhhbmRsZVN5bnRheENoYW5nZShlKTsKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH19Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHtyZW5kZXJWYWxpZGF0aW9uRXJyb3IoInBhc3N3b3JkbWlubG93 ZXJzIiwgdGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAg ICA8L0dyaWRJdGVtPgotICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPgotICAgICAgICAgICAg ICAgICAgICAgPEdyaWQgY2xhc3NOYW1lPSJkcy1tYXJnaW4tdG9wIj4KLUBAIC0yNDkzLDEwICsy NTcxLDEyIEBAIGV4cG9ydCBjbGFzcyBMb2NhbFB3UG9saWN5IGV4dGVuZHMgUmVhY3QuQ29tcG9u ZW50IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJwYXNzd29yZG1pbjhi aXQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PSJo b3Jpem9udGFsLWZvcm0tbmFtZS1oZWxwZXIiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBuYW1lPSJwYXNzd29yZG1pbjhiaXQiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7Li4uZ2V0VmFsaWRhdGlvblByb3BzKCJwYXNzd29yZG1pbjhiaXQiLCB0aGlzLnN0YXRl LmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFu Z2U9eyhlLCBjaGVja2VkKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdGhpcy5oYW5kbGVTeW50YXhDaGFuZ2UoZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9fQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPgotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7cmVuZGVyVmFsaWRhdGlvbkVycm9yKCJwYXNzd29yZG1pbjhiaXQi LCB0aGlzLnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgIDwv R3JpZEl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWRJdGVtIGNsYXNzTmFtZT0i ZHMtbGFiZWwiIG9mZnNldD17Nn0gc3Bhbj17M30+Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHtfKCJNaW5pbXVtIENhdGVnb3JpZXMiKX0KLUBAIC0yNTA5LDEwICsyNTg5LDEyIEBAIGV4 cG9ydCBjbGFzcyBMb2NhbFB3UG9saWN5IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJwYXNzd29yZG1pbmNhdGVnb3JpZXMiCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PSJob3Jpem9u dGFsLWZvcm0tbmFtZS1oZWxwZXIiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu YW1lPSJwYXNzd29yZG1pbmNhdGVnb3JpZXMiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7Li4uZ2V0VmFsaWRhdGlvblByb3BzKCJwYXNzd29yZG1pbmNhdGVnb3JpZXMiLCB0aGlz LnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg b25DaGFuZ2U9eyhlLCBjaGVja2VkKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdGhpcy5oYW5kbGVTeW50YXhDaGFuZ2UoZSk7Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9fQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPgotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7cmVuZGVyVmFsaWRhdGlvbkVycm9yKCJwYXNzd29yZG1p bmNhdGVnb3JpZXMiLCB0aGlzLnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAg ICAgICAgICAgIDwvR3JpZEl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+Ci0gICAg ICAgICAgICAgICAgICAgICA8R3JpZCBjbGFzc05hbWU9ImRzLW1hcmdpbi10b3AiPgotQEAgLTI1 MjcsMTEgKzI2MDksMTMgQEAgZXhwb3J0IGNsYXNzIExvY2FsUHdQb2xpY3kgZXh0ZW5kcyBSZWFj dC5Db21wb25lbnQgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InBhc3N3 b3JkbWF4c2VxdWVuY2UiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWRl c2NyaWJlZGJ5PSJob3Jpem9udGFsLWZvcm0tbmFtZS1oZWxwZXIiCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBuYW1lPSJwYXNzd29yZG1heHNlcXVlbmNlIgotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgey4uLmdldFZhbGlkYXRpb25Qcm9wcygicGFzc3dvcmRtYXhz ZXF1ZW5jZSIsIHRoaXMuc3RhdGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBvbkNoYW5nZT17KGUsIGNoZWNrZWQpID0+IHsKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZVN5bnRheENoYW5nZShlKTsKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkSXRlbT4KLSsgICAgICAgICAg ICAgICAgICAgICAgICB7cmVuZGVyVmFsaWRhdGlvbkVycm9yKCJwYXNzd29yZG1heHNlcXVlbmNl IiwgdGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICA8 R3JpZEl0ZW0gY2xhc3NOYW1lPSJkcy1sYWJlbCIgb2Zmc2V0PXs2fSBzcGFuPXszfT4KLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAge18oIk1heCBTZXF1ZW5jZSBTZXRzIil9Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgPC9HcmlkSXRlbT4KLUBAIC0yNTQzLDExICsyNjI3LDEzIEBAIGV4 cG9ydCBjbGFzcyBMb2NhbFB3UG9saWN5IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJwYXNzd29yZG1heHNlcXNldHMiCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PSJob3Jpem9udGFs LWZvcm0tbmFtZS1oZWxwZXIiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1l PSJwYXNzd29yZG1heHNlcXNldHMiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 Li4uZ2V0VmFsaWRhdGlvblByb3BzKCJwYXNzd29yZG1heHNlcXNldHMiLCB0aGlzLnN0YXRlLmlu dmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9 eyhlLCBjaGVja2VkKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dGhpcy5oYW5kbGVTeW50YXhDaGFuZ2UoZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9fQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPgotICAgICAgICAgICAgICAg ICAgICAgICAgIDwvR3JpZEl0ZW0+Ci0rICAgICAgICAgICAgICAgICAgICAgICAge3JlbmRlclZh bGlkYXRpb25FcnJvcigicGFzc3dvcmRtYXhzZXFzZXRzIiwgdGhpcy5zdGF0ZS5pbnZhbGlkRmll bGRzKX0KLSAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD4KLSAgICAgICAgICAgICAgICAgICAg IDxHcmlkIGNsYXNzTmFtZT0iZHMtbWFyZ2luLXRvcCI+Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgPEdyaWRJdGVtIGNsYXNzTmFtZT0iZHMtbGFiZWwiIHNwYW49ezN9PgotQEAgLTI1NjEsMTEg KzI2NDcsMTMgQEAgZXhwb3J0IGNsYXNzIExvY2FsUHdQb2xpY3kgZXh0ZW5kcyBSZWFjdC5Db21w b25lbnQgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InBhc3N3b3JkbWF4 Y2xhc3NjaGFycyIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZGVzY3Jp YmVkYnk9Imhvcml6b250YWwtZm9ybS1uYW1lLWhlbHBlciIKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG5hbWU9InBhc3N3b3JkbWF4Y2xhc3NjaGFycyIKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsuLi5nZXRWYWxpZGF0aW9uUHJvcHMoInBhc3N3b3JkbWF4Y2xh c3NjaGFycyIsIHRoaXMuc3RhdGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBvbkNoYW5nZT17KGUsIGNoZWNrZWQpID0+IHsKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZVN5bnRheENoYW5nZShlKTsKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkSXRlbT4KLSsgICAgICAgICAg ICAgICAgICAgICAgICB7cmVuZGVyVmFsaWRhdGlvbkVycm9yKCJwYXNzd29yZG1heGNsYXNzY2hh cnMiLCB0aGlzLnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgPC9H cmlkPgotICAgICAgICAgICAgICAgICAgICAgPEdyaWQgY2xhc3NOYW1lPSJkcy1tYXJnaW4tdG9w Ij4KLSAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZEl0ZW0gY2xhc3NOYW1lPSJkcy1sYWJl bCIgc3Bhbj17M30+Ci1AQCAtMjY0NiwxMiArMjczNCwxNCBAQCBleHBvcnQgY2xhc3MgTG9jYWxQ d1BvbGljeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0eXBlPSJudW1iZXIiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpZD0icGFzc3dvcmRtYXhmYWlsdXJlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXJpYS1kZXNjcmliZWRieT0iaG9yaXpvbnRhbC1mb3JtLW5hbWUtaGVscGVyIgotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0icGFzc3dvcmRtYXhwYXNzd29yZG1heGZh aWx1cmVjbGFzc2NoYXJzIgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0i cGFzc3dvcmRtYXhmYWlsdXJlIgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey4u LmdldFZhbGlkYXRpb25Qcm9wcygicGFzc3dvcmRtYXhmYWlsdXJlIiwgdGhpcy5zdGF0ZS5pbnZh bGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXso ZSwgY2hlY2tlZCkgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRo aXMuaGFuZGxlTG9ja291dENoYW5nZShlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH19Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgPC9HcmlkSXRlbT4KLSsgICAgICAgICAgICAgICAgICAgICAgICB7cmVuZGVyVmFs aWRhdGlvbkVycm9yKCJwYXNzd29yZG1heGZhaWx1cmUiLCB0aGlzLnN0YXRlLmludmFsaWRGaWVs ZHMpfQotICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPgotICAgICAgICAgICAgICAgICAgICAg PEdyaWQgY2xhc3NOYW1lPSJkcy1tYXJnaW4tdG9wIiB0aXRsZT17XygiVGhlIG51bWJlciBvZiBz ZWNvbmRzIHVudGlsIGFuIGFjY291bnRzIGZhaWx1cmUgY291bnQgaXMgcmVzZXQgKHBhc3N3b3Jk UmVzZXRGYWlsdXJlQ291bnQpLiIpfT4KLSAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZEl0 ZW0gY2xhc3NOYW1lPSJkcy1sYWJlbCIgc3Bhbj17NX0+Ci1AQCAtMjY2NCwxMSArMjc1NCwxMyBA QCBleHBvcnQgY2xhc3MgTG9jYWxQd1BvbGljeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icGFzc3dvcmRyZXNldGZhaWx1cmVj b3VudCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9 Imhvcml6b250YWwtZm9ybS1uYW1lLWhlbHBlciIKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG5hbWU9InBhc3N3b3JkcmVzZXRmYWlsdXJlY291bnQiCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7Li4uZ2V0VmFsaWRhdGlvblByb3BzKCJwYXNzd29yZHJlc2V0ZmFp bHVyZWNvdW50IiwgdGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSwgY2hlY2tlZCkgPT4gewotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlTG9ja291dENoYW5nZShlKTsKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkSXRlbT4KLSsgICAgICAg ICAgICAgICAgICAgICAgICB7cmVuZGVyVmFsaWRhdGlvbkVycm9yKCJwYXNzd29yZHJlc2V0ZmFp bHVyZWNvdW50IiwgdGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAg ICAgIDwvR3JpZD4KLSAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGNsYXNzTmFtZT0iZHMtbWFy Z2luLXRvcCIgdGl0bGU9e18oIlRoZSBudW1iZXIgb2Ygc2Vjb25kcywgZHVyYXRpb24sIGJlZm9y ZSB0aGUgYWNjb3VudCBnZXRzIHVubG9ja2VkIChwYXNzd29yZExvY2tvdXREdXJhdGlvbikuIil9 PgotICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkSXRlbSBjbGFzc05hbWU9ImRzLWxhYmVs IiBzcGFuPXs1fT4KLUBAIC0yNjgxLDExICsyNzczLDEzIEBAIGV4cG9ydCBjbGFzcyBMb2NhbFB3 UG9saWN5IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlkPSJwYXNzd29yZGxvY2tvdXRkdXJhdGlvbiIKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9Imhvcml6b250YWwtZm9ybS1uYW1lLWhl bHBlciIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9InBhc3N3b3JkbG9j a291dGR1cmF0aW9uIgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLmdldFZh bGlkYXRpb25Qcm9wcygicGFzc3dvcmRsb2Nrb3V0ZHVyYXRpb24iLCB0aGlzLnN0YXRlLmludmFs aWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhl LCBjaGVja2VkKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhp cy5oYW5kbGVMb2Nrb3V0Q2hhbmdlKGUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4KLSAgICAgICAgICAgICAgICAg ICAgICAgICA8L0dyaWRJdGVtPgotKyAgICAgICAgICAgICAgICAgICAgICAgIHtyZW5kZXJWYWxp ZGF0aW9uRXJyb3IoInBhc3N3b3JkbG9ja291dGR1cmF0aW9uIiwgdGhpcy5zdGF0ZS5pbnZhbGlk RmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD4KLSAgICAgICAgICAgICAgICAg ICAgIDxHcmlkIGNsYXNzTmFtZT0iZHMtbWFyZ2luLXRvcCIgdGl0bGU9e18oIkRvIG5vdCBsb2Nr b3V0IHRoZSB1c2VyIGFjY291bnQgZm9yZXZlciwgaW5zdGVhZCB0aGUgYWNjb3VudCB3aWxsIHVu bG9jayBiYXNlZCBvbiB0aGUgbG9ja291dCBkdXJhdGlvbiAocGFzc3dvcmRVbmxvY2spLiIpfT4K LSAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZEl0ZW0gY2xhc3NOYW1lPSJkcy1sYWJlbCIg c3Bhbj17NX0+Ci1AQCAtMjcxNywxMSArMjgxMSwxMyBAQCBleHBvcnQgY2xhc3MgTG9jYWxQd1Bv bGljeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZD0icGFzc3dvcmRtYXhhZ2UiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhcmlhLWRlc2NyaWJlZGJ5PSJob3Jpem9udGFsLWZvcm0tbmFtZS1oZWxwZXIiCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJwYXNzd29yZG1heGFnZSIKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5nZXRWYWxpZGF0aW9uUHJvcHMoInBhc3N3 b3JkbWF4YWdlIiwgdGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSwgY2hlY2tlZCkgPT4gewotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlRXhwQ2hhbmdlKGUpOwotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWRJdGVtPgotKyAgICAgICAgICAg ICAgICAgICAgICAgIHtyZW5kZXJWYWxpZGF0aW9uRXJyb3IoInBhc3N3b3JkbWF4YWdlIiwgdGhp cy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD4KLSAg ICAgICAgICAgICAgICAgICAgIDxHcmlkIGNsYXNzTmFtZT0iZHMtbWFyZ2luLXRvcCIgdGl0bGU9 e18oIlRoZSBudW1iZXIgb2YgbG9naW5zIHRoYXQgYXJlIGFsbG93ZWQgYWZ0ZXIgdGhlIHBhc3N3 b3JkIGhhcyBleHBpcmVkIChwYXNzd29yZEdyYWNlTGltaXQpLiIpfT4KLSAgICAgICAgICAgICAg ICAgICAgICAgICA8R3JpZEl0ZW0gY2xhc3NOYW1lPSJkcy1sYWJlbCIgc3Bhbj17NX0+Ci1AQCAt MjczNCwxMSArMjgzMCwxMyBAQCBleHBvcnQgY2xhc3MgTG9jYWxQd1BvbGljeSBleHRlbmRzIFJl YWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icGFz c3dvcmRncmFjZWxpbWl0IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1k ZXNjcmliZWRieT0iaG9yaXpvbnRhbC1mb3JtLW5hbWUtaGVscGVyIgotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbmFtZT0icGFzc3dvcmRncmFjZWxpbWl0IgotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgey4uLmdldFZhbGlkYXRpb25Qcm9wcygicGFzc3dvcmRncmFj ZWxpbWl0IiwgdGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSwgY2hlY2tlZCkgPT4gewotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlRXhwQ2hhbmdlKGUpOwotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Lz4KLSAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWRJdGVtPgotKyAgICAgICAgICAgICAg ICAgICAgICAgIHtyZW5kZXJWYWxpZGF0aW9uRXJyb3IoInBhc3N3b3JkZ3JhY2VsaW1pdCIsIHRo aXMuc3RhdGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+Ci0g ICAgICAgICAgICAgICAgICAgICA8R3JpZCBjbGFzc05hbWU9ImRzLW1hcmdpbi10b3AiIHRpdGxl PXtfKCJTZXQgdGhlIHRpbWUgKGluIHNlY29uZHMpLCBiZWZvcmUgYSBwYXNzd29yZCBpcyBhYm91 dCB0byBleHBpcmUsIHRvIHNlbmQgYSB3YXJuaW5nLiAocGFzc3dvcmRXYXJuaW5nKS4iKX0+Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWRJdGVtIGNsYXNzTmFtZT0iZHMtbGFiZWwiIHNw YW49ezV9PgotQEAgLTI3NTEsMTEgKzI4NDksMTMgQEAgZXhwb3J0IGNsYXNzIExvY2FsUHdQb2xp Y3kgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaWQ9InBhc3N3b3Jkd2FybmluZyIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFyaWEtZGVzY3JpYmVkYnk9Imhvcml6b250YWwtZm9ybS1uYW1lLWhlbHBlciIKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9InBhc3N3b3Jkd2FybmluZyIKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5nZXRWYWxpZGF0aW9uUHJvcHMoInBhc3N3 b3Jkd2FybmluZyIsIHRoaXMuc3RhdGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUsIGNoZWNrZWQpID0+IHsKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUV4cENoYW5nZShlKTsKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkSXRlbT4KLSsgICAgICAgICAg ICAgICAgICAgICAgICB7cmVuZGVyVmFsaWRhdGlvbkVycm9yKCJwYXNzd29yZHdhcm5pbmciLCB0 aGlzLnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPgot ICAgICAgICAgICAgICAgICAgICAgPEdyaWQgY2xhc3NOYW1lPSJkcy1tYXJnaW4tdG9wIiB0aXRs ZT17XygiQWx3YXlzIHJldHVybiBhIHBhc3N3b3JkIGV4cGlyaW5nIGNvbnRyb2wgd2hlbiByZXF1 ZXN0ZWQgKHBhc3N3b3JkU2VuZEV4cGlyaW5nVGltZSkuIil9PgotICAgICAgICAgICAgICAgICAg ICAgICAgIDxHcmlkSXRlbSBjbGFzc05hbWU9ImRzLWxhYmVsIiBzcGFuPXs1fT4KLUBAIC0yODQ5 LDEwICsyOTQ5LDEyIEBAIGV4cG9ydCBjbGFzcyBMb2NhbFB3UG9saWN5IGV4dGVuZHMgUmVhY3Qu Q29tcG9uZW50IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZD0icGFzc3dvcmRpbmhpc3RvcnkiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT0iaG9yaXpvbnRhbC1mb3JtLW5h bWUtaGVscGVyIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG5hbWU9InBhc3N3b3JkaW5oaXN0b3J5IgotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsuLi5nZXRWYWxpZGF0aW9uUHJvcHMoInBhc3N3b3JkaW5o aXN0b3J5IiwgdGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUsIGNoZWNrZWQpID0+IHsK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhp cy5oYW5kbGVHZW5lcmFsQ2hhbmdlKGUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH19Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAge3JlbmRlclZhbGlkYXRpb25FcnJvcigicGFzc3dvcmRpbmhpc3RvcnkiLCB0aGlzLnN0YXRl LmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA8L2Rpdj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWRJdGVt PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPgotQEAgLTI4OTIsMTEg KzI5OTQsMTMgQEAgZXhwb3J0IGNsYXNzIExvY2FsUHdQb2xpY3kgZXh0ZW5kcyBSZWFjdC5Db21w b25lbnQgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9 InBhc3N3b3JkbWluYWdlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYXJpYS1kZXNjcmliZWRieT0iaG9yaXpvbnRhbC1mb3JtLW5hbWUtaGVscGVyIgotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0icGFzc3dvcmRt aW5hZ2UiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4u Z2V0VmFsaWRhdGlvblByb3BzKCJwYXNzd29yZG1pbmFnZSIsIHRoaXMuc3RhdGUuaW52YWxpZEZp ZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNo YW5nZT17KGUsIGNoZWNrZWQpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUdlbmVyYWxDaGFuZ2UoZSk7Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAvPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDwvR3JpZEl0ZW0+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg e3JlbmRlclZhbGlkYXRpb25FcnJvcigicGFzc3dvcmRtaW5hZ2UiLCB0aGlzLnN0YXRlLmludmFs aWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPgotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0aXRsZT17XygiVGhlIEROIGZvciBhIHBhc3N3b3JkIGFkbWluaXN0 cmF0b3Igb3IgYWRtaW5pc3RyYXRvciBncm91cCAocGFzc3dvcmRBZG1pbkROKS4iKX0KLUBAIC0y OTMzLDcgKzMwMzcsNyBAQCBleHBvcnQgY2xhc3MgTG9jYWxQd1BvbGljeSBleHRlbmRzIFJlYWN0 LkNvbXBvbmVudCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRm9ybT4KLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPEJ1dHRvbgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNEaXNh YmxlZD17dGhpcy5zdGF0ZS5zYXZlR2VuZXJhbERpc2FibGVkIHx8IHRoaXMuc3RhdGUuc2F2aW5n fQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNEaXNhYmxlZD17dGhpcy5zdGF0 ZS5zYXZlR2VuZXJhbERpc2FibGVkIHx8IHRoaXMuc3RhdGUuc2F2aW5nIHx8IGhhc0ludmFsaWRG aWVsZChnZW5lcmFsX2F0dHJzLCB0aGlzLnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD0icHJpbWFyeSIKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT0iZHMtbWFyZ2luLXRvcC14bGcgZHMtbWFyZ2lu LWxlZnQtc20gZHMtbWFyZ2luLWJvdHRvbS1tZCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG9uQ2xpY2s9e3RoaXMuaGFuZGxlU2F2ZUdlbmVyYWx9Ci1AQCAtMjk2MSw3ICszMDY1 LDcgQEAgZXhwb3J0IGNsYXNzIExvY2FsUHdQb2xpY3kgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQg ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3B3RXhwaXJhdGlvblJvd3N9Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRm9ybT4KLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPEJ1dHRvbgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNEaXNh YmxlZD17dGhpcy5zdGF0ZS5zYXZlRXhwRGlzYWJsZWQgfHwgdGhpcy5zdGF0ZS5zYXZpbmd9Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0Rpc2FibGVkPXt0aGlzLnN0YXRlLnNh dmVFeHBEaXNhYmxlZCB8fCB0aGlzLnN0YXRlLnNhdmluZyB8fCBoYXNJbnZhbGlkRmllbGQoZXhw X2F0dHJzLCB0aGlzLnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdmFyaWFudD0icHJpbWFyeSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNsYXNzTmFtZT0iZHMtbWFyZ2luLXRvcC1sZyBkcy1tYXJnaW4tbGVmdCIKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuaGFuZGxlU2F2ZUV4cH0K LUBAIC0yOTg5LDcgKzMwOTMsNyBAQCBleHBvcnQgY2xhc3MgTG9jYWxQd1BvbGljeSBleHRlbmRz IFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cHdM b2Nrb3V0Um93c30KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Gb3JtPgotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpc0Rpc2FibGVkPXt0aGlzLnN0YXRlLnNhdmVMb2Nrb3V0RGlzYWJsZWQgfHwgdGhp cy5zdGF0ZS5zYXZpbmd9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0Rpc2Fi bGVkPXt0aGlzLnN0YXRlLnNhdmVMb2Nrb3V0RGlzYWJsZWQgfHwgdGhpcy5zdGF0ZS5zYXZpbmcg fHwgaGFzSW52YWxpZEZpZWxkKGxvY2tvdXRfYXR0cnMsIHRoaXMuc3RhdGUuaW52YWxpZEZpZWxk cyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PSJwcmltYXJ5Igot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPSJkcy1tYXJnaW4tdG9w LWxnIGRzLW1hcmdpbi1sZWZ0IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25D bGljaz17dGhpcy5oYW5kbGVTYXZlTG9ja291dH0KLUBAIC0zMDE3LDcgKzMxMjEsNyBAQCBleHBv cnQgY2xhc3MgTG9jYWxQd1BvbGljeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7cHdTeW50YXhSb3dzfQotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA8L0Zvcm0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0 b24KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRGlzYWJsZWQ9e3RoaXMuc3Rh dGUuc2F2ZVN5bnRheERpc2FibGVkIHx8IHRoaXMuc3RhdGUuc2F2aW5nfQotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaXNEaXNhYmxlZD17dGhpcy5zdGF0ZS5zYXZlU3ludGF4RGlz YWJsZWQgfHwgdGhpcy5zdGF0ZS5zYXZpbmcgfHwgaGFzSW52YWxpZEZpZWxkKHN5bnRheF9hdHRy cywgdGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHZhcmlhbnQ9InByaW1hcnkiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjbGFzc05hbWU9ImRzLW1hcmdpbi10b3AteGxnIGRzLW1hcmdpbi1sZWZ0IGRzLW1hcmdpbi1i b3R0b20tbWQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlz LmhhbmRsZVNhdmVTeW50YXh9Ci1AQCAtMzE2Nyw2ICszMjcxLDcgQEAgZXhwb3J0IGNsYXNzIExv Y2FsUHdQb2xpY3kgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjcmVhdGVfcGFzc3dvcmRzdG9yYWdlc2NoZW1lPXt0aGlzLnN0YXRlLmNyZWF0 ZV9wYXNzd29yZHN0b3JhZ2VzY2hlbWV9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNy ZWF0ZV9wYXNzd29yZGFkbWluZG49e3RoaXMuc3RhdGUuY3JlYXRlX3Bhc3N3b3JkYWRtaW5kbn0K LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlX3Bhc3N3b3JkYWRtaW5za2lwaW5m b3VwZGF0ZT17dGhpcy5zdGF0ZS5jcmVhdGVfcGFzc3dvcmRhZG1pbnNraXBpbmZvdXBkYXRlfQot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnZhbGlkQ3JlYXRlRmllbGRzPXt0aGlzLnN0 YXRlLmludmFsaWRDcmVhdGVGaWVsZHN9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9u VXNlckF0dHJzQ3JlYXRlVG9nZ2xlPXt0aGlzLmhhbmRsZVVzZXJBdHRyc0NyZWF0ZVRvZ2dsZX0K LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Vc2VyQXR0cnNDcmVhdGVDbGVhcj17dGhp cy5oYW5kbGVVc2VyQXR0cnNDcmVhdGVDbGVhcn0KLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaXNVc2VyQXR0cnNDcmVhdGVPcGVuPXt0aGlzLnN0YXRlLmlzVXNlckF0dHJzQ3JlYXRlT3Bl bn0KLWRpZmYgLS1naXQgYS9zcmMvY29ja3BpdC8zODktY29uc29sZS9zcmMvbGliL2RhdGFiYXNl L3B3cFZhbGlkYXRpb24uanN4IGIvc3JjL2NvY2twaXQvMzg5LWNvbnNvbGUvc3JjL2xpYi9kYXRh YmFzZS9wd3BWYWxpZGF0aW9uLmpzeAotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAw MDAwMC4uNjY3ZjVjNmY4Ci0tLS0gL2Rldi9udWxsCi0rKysgYi9zcmMvY29ja3BpdC8zODktY29u c29sZS9zcmMvbGliL2RhdGFiYXNlL3B3cFZhbGlkYXRpb24uanN4Ci1AQCAtMCwwICsxLDEwNSBA QAotK2ltcG9ydCBjb2NrcGl0IGZyb20gImNvY2twaXQiOwotK2ltcG9ydCBSZWFjdCBmcm9tICJy ZWFjdCI7Ci0raW1wb3J0IHsKLSsgICAgRm9ybUhlbHBlclRleHQsCi0rICAgIEdyaWRJdGVtLAot KyAgICBWYWxpZGF0ZWRPcHRpb25zLAotK30gZnJvbSAiQHBhdHRlcm5mbHkvcmVhY3QtY29yZSI7 Ci0rCi0rY29uc3QgXyA9IGNvY2twaXQuZ2V0dGV4dDsKLSsKLStleHBvcnQgY29uc3QgRklFTERf UkFOR0VTID0gewotKyAgICBwYXNzd29yZGluaGlzdG9yeTogeyBtaW46IDAsIG1heDogMjQgfSwK LSsgICAgcGFzc3dvcmRtaW5sZW5ndGg6IHsgbWluOiAyLCBtYXg6IDUxMiB9LAotKyAgICBwYXNz d29yZG1pbmRpZ2l0czogeyBtaW46IDAsIG1heDogNjQgfSwKLSsgICAgcGFzc3dvcmRtaW5hbHBo YXM6IHsgbWluOiAwLCBtYXg6IDY0IH0sCi0rICAgIHBhc3N3b3JkbWludXBwZXJzOiB7IG1pbjog MCwgbWF4OiA2NCB9LAotKyAgICBwYXNzd29yZG1pbmxvd2VyczogeyBtaW46IDAsIG1heDogNjQg fSwKLSsgICAgcGFzc3dvcmRtaW5zcGVjaWFsczogeyBtaW46IDAsIG1heDogNjQgfSwKLSsgICAg cGFzc3dvcmRtaW44Yml0OiB7IG1pbjogMCwgbWF4OiA2NCB9LAotKyAgICBwYXNzd29yZG1heHJl cGVhdHM6IHsgbWluOiAwLCBtYXg6IDY0IH0sCi0rICAgIHBhc3N3b3JkbWluY2F0ZWdvcmllczog eyBtaW46IDAsIG1heDogNSB9LAotKyAgICBwYXNzd29yZG1pbnRva2VubGVuZ3RoOiB7IG1pbjog MSwgbWF4OiA2NCB9LAotKyAgICBwYXNzd29yZG1heGZhaWx1cmU6IHsgbWluOiAxLCBtYXg6IDMy NzY3IH0sCi0rICAgIHBhc3N3b3JkbWF4c2VxdWVuY2U6IHsgbWluOiAwIH0sCi0rICAgIHBhc3N3 b3JkbWF4c2Vxc2V0czogeyBtaW46IDAgfSwKLSsgICAgcGFzc3dvcmRtYXhjbGFzc2NoYXJzOiB7 IG1pbjogMCB9LAotKyAgICBwYXNzd29yZHJlc2V0ZmFpbHVyZWNvdW50OiB7IG1pbjogMCB9LAot KyAgICBwYXNzd29yZGxvY2tvdXRkdXJhdGlvbjogeyBtaW46IDAgfSwKLSsgICAgcGFzc3dvcmRt aW5hZ2U6IHsgbWluOiAwIH0sCi0rICAgIHBhc3N3b3JkbWF4YWdlOiB7IG1pbjogMCB9LAotKyAg ICBwYXNzd29yZGdyYWNlbGltaXQ6IHsgbWluOiAwIH0sCi0rICAgIHBhc3N3b3Jkd2FybmluZzog eyBtaW46IDAgfSwKLSt9OwotKwotKy8vIFN0cmlwcyBjcmVhdGVfIHByZWZpeCB0byBmaW5kIHRo ZSBiYXNlIGZpZWxkIG5hbWUgaW4gRklFTERfUkFOR0VTCi0rY29uc3QgYmFzZUZpZWxkTmFtZSA9 IChhdHRyKSA9PiB7Ci0rICAgIHJldHVybiBhdHRyLnN0YXJ0c1dpdGgoImNyZWF0ZV8iKSA/IGF0 dHIuc3Vic3RyaW5nKDcpIDogYXR0cjsKLSt9OwotKwotKy8vIFJldHVybnMgdHJ1ZSBpZiB0aGUg dmFsdWUgaXMgaW52YWxpZCBmb3IgdGhlIGdpdmVuIGZpZWxkCi0rZXhwb3J0IGNvbnN0IHZhbGlk YXRlRmllbGQgPSAoYXR0ciwgdmFsdWUpID0+IHsKLSsgICAgY29uc3QgcmFuZ2UgPSBGSUVMRF9S QU5HRVNbYmFzZUZpZWxkTmFtZShhdHRyKV07Ci0rICAgIGlmICghcmFuZ2UpIHJldHVybiBmYWxz ZTsKLSsgICAgY29uc3QgbnVtID0gTnVtYmVyKHZhbHVlKTsKLSsgICAgaWYgKHZhbHVlID09PSAi IiB8fCBpc05hTihudW0pIHx8ICFOdW1iZXIuaXNJbnRlZ2VyKG51bSkgfHwgbnVtIDwgcmFuZ2Uu bWluKSB7Ci0rICAgICAgICByZXR1cm4gdHJ1ZTsKLSsgICAgfQotKyAgICBpZiAocmFuZ2UubWF4 ICE9PSB1bmRlZmluZWQgJiYgbnVtID4gcmFuZ2UubWF4KSB7Ci0rICAgICAgICByZXR1cm4gdHJ1 ZTsKLSsgICAgfQotKyAgICByZXR1cm4gZmFsc2U7Ci0rfTsKLSsKLSsvLyBSZXR1cm5zIGEgbmV3 IGludmFsaWRGaWVsZHMgbWFwIGFmdGVyIHZhbGlkYXRpbmcgYSBmaWVsZCBjaGFuZ2UKLStleHBv cnQgY29uc3QgdXBkYXRlRmllbGRWYWxpZGF0aW9uID0gKGludmFsaWRGaWVsZHMsIGF0dHIsIHZh bHVlKSA9PiB7Ci0rICAgIGNvbnN0IG5ld0ludmFsaWRGaWVsZHMgPSB7IC4uLmludmFsaWRGaWVs ZHMgfTsKLSsgICAgaWYgKEZJRUxEX1JBTkdFU1tiYXNlRmllbGROYW1lKGF0dHIpXSkgewotKyAg ICAgICAgaWYgKHZhbGlkYXRlRmllbGQoYXR0ciwgdmFsdWUpKSB7Ci0rICAgICAgICAgICAgbmV3 SW52YWxpZEZpZWxkc1thdHRyXSA9IHRydWU7Ci0rICAgICAgICB9IGVsc2UgewotKyAgICAgICAg ICAgIGRlbGV0ZSBuZXdJbnZhbGlkRmllbGRzW2F0dHJdOwotKyAgICAgICAgfQotKyAgICB9Ci0r ICAgIHJldHVybiBuZXdJbnZhbGlkRmllbGRzOwotK307Ci0rCi0rLy8gUmV0dXJucyB7IG1pbiwg bWF4PywgdmFsaWRhdGVkIH0gcHJvcHMgdG8gc3ByZWFkIG9uIGEgVGV4dElucHV0Ci0rZXhwb3J0 IGNvbnN0IGdldFZhbGlkYXRpb25Qcm9wcyA9IChmaWVsZE5hbWUsIGludmFsaWRGaWVsZHMpID0+ IHsKLSsgICAgY29uc3QgcmFuZ2UgPSBGSUVMRF9SQU5HRVNbYmFzZUZpZWxkTmFtZShmaWVsZE5h bWUpXTsKLSsgICAgaWYgKCFyYW5nZSkgcmV0dXJuIHt9OwotKyAgICBjb25zdCBwcm9wcyA9IHsg bWluOiByYW5nZS5taW4gfTsKLSsgICAgaWYgKHJhbmdlLm1heCAhPT0gdW5kZWZpbmVkKSB7Ci0r ICAgICAgICBwcm9wcy5tYXggPSByYW5nZS5tYXg7Ci0rICAgIH0KLSsgICAgcHJvcHMudmFsaWRh dGVkID0gaW52YWxpZEZpZWxkc1tmaWVsZE5hbWVdCi0rICAgICAgICA/IFZhbGlkYXRlZE9wdGlv bnMuZXJyb3IKLSsgICAgICAgIDogVmFsaWRhdGVkT3B0aW9ucy5kZWZhdWx0OwotKyAgICByZXR1 cm4gcHJvcHM7Ci0rfTsKLSsKLSsvLyBSZXR1cm5zIEZvcm1IZWxwZXJUZXh0IEpTWCB3aGVuIHRo ZSBmaWVsZCBpcyBpbnZhbGlkLCBvciBudWxsCi0rZXhwb3J0IGNvbnN0IHJlbmRlclZhbGlkYXRp b25FcnJvciA9IChmaWVsZE5hbWUsIGludmFsaWRGaWVsZHMpID0+IHsKLSsgICAgY29uc3QgcmFu Z2UgPSBGSUVMRF9SQU5HRVNbYmFzZUZpZWxkTmFtZShmaWVsZE5hbWUpXTsKLSsgICAgaWYgKCFy YW5nZSB8fCAhaW52YWxpZEZpZWxkc1tmaWVsZE5hbWVdKSByZXR1cm4gbnVsbDsKLSsgICAgY29u c3QgbXNnID0KLSsgICAgICAgIHJhbmdlLm1heCAhPT0gdW5kZWZpbmVkCi0rICAgICAgICAgICAg PyBjb2NrcGl0LmZvcm1hdCgKLSsgICAgICAgICAgICAgICAgXygiVmFsdWUgbXVzdCBiZSBhIG51 bWJlciBmcm9tICQwIHRvICQxIiksCi0rICAgICAgICAgICAgICAgIHJhbmdlLm1pbiwKLSsgICAg ICAgICAgICAgICAgcmFuZ2UubWF4Ci0rICAgICAgICAgICAgKQotKyAgICAgICAgICAgIDogXygi VmFsdWUgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyIik7Ci0rICAgIHJldHVybiAoCi0r ICAgICAgICA8R3JpZEl0ZW0gc3Bhbj17NX0+Ci0rICAgICAgICAgICAgPEZvcm1IZWxwZXJUZXh0 IGNsYXNzTmFtZT0iZHMtbGVmdC1tYXJnaW4iIGlzRXJyb3IgaXNIaWRkZW49e2ZhbHNlfT4KLSsg ICAgICAgICAgICAgICAge21zZ30KLSsgICAgICAgICAgICA8L0Zvcm1IZWxwZXJUZXh0PgotKyAg ICAgICAgPC9HcmlkSXRlbT4KLSsgICAgKTsKLSt9OwotKwotKy8vIFJldHVybnMgdHJ1ZSBpZiBh bnkgYXR0ciBpbiB0aGUgZ3JvdXAgaXMgaW52YWxpZAotK2V4cG9ydCBjb25zdCBoYXNJbnZhbGlk RmllbGQgPSAoYXR0cnMsIGludmFsaWRGaWVsZHMpID0+IHsKLSsgICAgcmV0dXJuIGF0dHJzLnNv bWUoKGEpID0+IGludmFsaWRGaWVsZHNbYV0pOwotK307Ci0tLSAKLTIuNTMuMAotCgpkaWZmIC0t Z2l0IGEvMDA2Mi1Jc3N1ZS03MjQ2LWNvcnJlY3QtZm9ybWF0dGluZy1vZi1HZW4tYXMtQ1NOLWlu LWRzY3RsLnBhdGNoIGIvMDA2Mi1Jc3N1ZS03MjQ2LWNvcnJlY3QtZm9ybWF0dGluZy1vZi1HZW4t YXMtQ1NOLWluLWRzY3RsLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNTU2 NGY0Li4wMDAwMDAwCi0tLSBhLzAwNjItSXNzdWUtNzI0Ni1jb3JyZWN0LWZvcm1hdHRpbmctb2Yt R2VuLWFzLUNTTi1pbi1kc2N0bC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM0ICswLDAgQEAK LUZyb20gZjRkOGRmNjYxODdjMGQxZGI2YzlmNWM5YWE1NTk0NmE4NTY0ZGU0YiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKLUZyb206IFNhbSBNb3JyaXMgPHNhbUByb2JvdHMub3JnLnVrPgotRGF0 ZTogV2VkLCAyNSBGZWIgMjAyNiAxMjozMDowMSArMDAwMAotU3ViamVjdDogW1BBVENIXSBJc3N1 ZSA3MjQ2IC0gY29ycmVjdCBmb3JtYXR0aW5nIG9mICdHZW4gYXMgQ1NOJyBpbiBkc2N0bAotIGdl dC1uc3N0YXRlIG91dHB1dCAoIzcyNDcpCi0KLURlc2NyaXB0aW9uOiBDU05zIGFyZSBmb3JtYXR0 ZWQgYXMgaGV4YWRlY2ltYWwsIGJ1dCB0aGUgcmVwbGljYSBpZCBhbmQKLXNlcXVlbmNlIG51bWJl ciBhcmUgZGlzcGxheWVkIGluIGRlY29tYWwuCi0KLUZpeDogdXNlIGNvcnJlY3QgZm9ybWF0IHNw ZWNpZmllcnMgZm9yIGhleGFkZWNpbWFsIG91dHB1dC4KLQotRml4ZXM6IGh0dHBzOi8vZ2l0aHVi LmNvbS8zODlkcy8zODktZHMtYmFzZS9pc3N1ZXMvNzI0NgotCi1TaWduZWQtb2ZmLWJ5OiBTYW0g TW9ycmlzIDxzYW1Acm9ib3RzLm9yZy51az4KLS0tLQotIHNyYy9saWIzODkvbGliMzg5L2RzZWxk aWYucHkgfCAyICstCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9u KC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvbGliMzg5L2xpYjM4OS9kc2VsZGlmLnB5IGIvc3JjL2xp YjM4OS9saWIzODkvZHNlbGRpZi5weQotaW5kZXggNzgzNGQ5NDY4Li5lYWMxN2FhNGMgMTAwNjQ0 Ci0tLS0gYS9zcmMvbGliMzg5L2xpYjM4OS9kc2VsZGlmLnB5Ci0rKysgYi9zcmMvbGliMzg5L2xp YjM4OS9kc2VsZGlmLnB5Ci1AQCAtNDA3LDcgKzQwNyw3IEBAIGNsYXNzIERTRWxkaWYoRFNMaW50 KToKLSAgICAgICAgICAgICAnZW5kaWFuJzogZW5kaWFuLAotICAgICAgICAgICAgICdyaWQnOiBz dHIocmlkKSwKLSAgICAgICAgICAgICAnZ2VuX3RpbWUnOiBzdHIoc2FtcGxlZF90aW1lKSwKLS0g ICAgICAgICAgICAnZ2VuY3NuJzogIiUwOHglMDRkJTA0ZDAwMDAiICUgKHNhbXBsZWRfdGltZSwg c2VxX251bSwgcmlkKSwKLSsgICAgICAgICAgICAnZ2VuY3NuJzogIiUwOHglMDR4JTA0eDAwMDAi ICUgKHNhbXBsZWRfdGltZSwgc2VxX251bSwgcmlkKSwKLSAgICAgICAgICAgICAnZ2VuX3RpbWVf c3RyJzogdGltZS5jdGltZShzYW1wbGVkX3RpbWUpLAotICAgICAgICAgICAgICdsb2NhbF9vZmZz ZXQnOiBzdHIobG9jYWxfb2Zmc2V0KSwKLSAgICAgICAgICAgICAnbG9jYWxfb2Zmc2V0X3N0cic6 IHByaW50X25pY2VfdGltZShsb2NhbF9vZmZzZXQpLAotLS0gCi0yLjUzLjAKLQoKZGlmZiAtLWdp dCBhLzAwNjMtU2VjdXJpdHktZml4LWZvci1DVkUtMjAyNS0xNDkwNS5wYXRjaCBiLzAwNjMtU2Vj dXJpdHktZml4LWZvci1DVkUtMjAyNS0xNDkwNS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMWU4NjgxNC4uMDAwMDAwMAotLS0gYS8wMDYzLVNlY3VyaXR5LWZpeC1mb3ItQ1ZF LTIwMjUtMTQ5MDUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw5MyArMCwwIEBACi1Gcm9tIDJl NDI0MTEwZGVmMmUzOTk4ZjYwNDVlMTM2ZmIwZDQzZjQ3YjdmNWEgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCi1Gcm9tOiB0Ym9yZGF6IDx0Ym9yZGF6QHJlZGhhdC5jb20+Ci1EYXRlOiBXZWQsIDI1 IEZlYiAyMDI2IDE0OjA2OjQyICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIFNlY3VyaXR5IGZpeCBm b3IgQ1ZFLTIwMjUtMTQ5MDUKLQotRGVzY3JpcHRpb246Ci0JQSB2dWxuZXJhYmlsaXR5IHdhcyBm b3VuZCBpbiB0aGUgMzg5IERpcmVjdG9yeSBTZXJ2ZXIuCi0JVGhlIDM4OSBEaXJlY3RvcnkgU2Vy dmVyIHByZXNlbnQgYSByaXNrIG9mIGhlYXAgYnVmZmVyIG92ZXJmbG93IHRoYXQKLQljYW4gYmUg ZXhwbG9pdGVkIHRvIGV4Y3V0ZSBhIERlbmlhbCBvZiBTZXJ2aWNlIGFuZCBwb3RlbnRpYWwgUmVt b3RlCi0JQ29kZSBFeGVjdXRpb24KLQotUmVmZXJlbmNlczoKLSAgICAtIGh0dHBzOi8vYWNjZXNz LnJlZGhhdC5jb20vc2VjdXJpdHkvY3ZlL0NWRS0yMDI1LTE0OTA1Ci0gICAgLSBodHRwczovL2J1 Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTI0MjM2MjQKLS0tLQotIGxkYXAvc2Vy dmVycy9zbGFwZC9zY2hlbWEuYyB8IDQ3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0t LS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgMzggaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkK LQotZGlmZiAtLWdpdCBhL2xkYXAvc2VydmVycy9zbGFwZC9zY2hlbWEuYyBiL2xkYXAvc2VydmVy cy9zbGFwZC9zY2hlbWEuYwotaW5kZXggOWVmNGVlNGJmLi43NzEyYTcyMGQgMTAwNjQ0Ci0tLS0g YS9sZGFwL3NlcnZlcnMvc2xhcGQvc2NoZW1hLmMKLSsrKyBiL2xkYXAvc2VydmVycy9zbGFwZC9z Y2hlbWEuYwotQEAgLTE0MTAsNiArMTQxMCw3IEBAIHNjaGVtYV9hdHRyX2VudW1fY2FsbGJhY2so c3RydWN0IGFzeW50YXhpbmZvICphc2lwLCB2b2lkICphcmcpCi0gICAgIGNvbnN0IGNoYXIgKmF0 dHJfZGVzYywgKnN5bnRheG9pZDsKLSAgICAgY2hhciAqb3V0cCwgc3ludGF4bGVuZ3RoYnVmWzEy OF07Ci0gICAgIGludCBpOwotKyAgICBpbnQgbmJfYWxpYXNlcyA9IDA7Ci0gCi0gICAgIHZhbHNb MF0gPSAmdmFsOwotIAotQEAgLTE0MzUsNiArMTQzNiw3IEBAIHNjaGVtYV9hdHRyX2VudW1fY2Fs bGJhY2soc3RydWN0IGFzeW50YXhpbmZvICphc2lwLCB2b2lkICphcmcpCi0gICAgIGlmIChhc2lw LT5hc2lfYWxpYXNlcyAhPSBOVUxMKSB7Ci0gICAgICAgICBmb3IgKGkgPSAwOyBhc2lwLT5hc2lf YWxpYXNlc1tpXSAhPSBOVUxMOyArK2kpIHsKLSAgICAgICAgICAgICBhbGlhc2xlbiArPSBzdHJs ZW4oYXNpcC0+YXNpX2FsaWFzZXNbaV0pOwotKyAgICAgICAgICAgIG5iX2FsaWFzZXMrKzsKLSAg ICAgICAgIH0KLSAgICAgfQotIAotQEAgLTE0NTIsMTUgKzE0NTQsNDIgQEAgc2NoZW1hX2F0dHJf ZW51bV9jYWxsYmFjayhzdHJ1Y3QgYXN5bnRheGluZm8gKmFzaXAsIHZvaWQgKmFyZykKLSAgICAg ICogWFhYOiAyNTYgaXMgYSBtYWdpYyBudW1iZXIuLi4gaXQgbXVzdCBiZSBiaWcgZW5vdWdoIHRv IGFjY291bnQgZm9yCi0gICAgICAqIGFsbCBvZiB0aGUgZml4ZWQgc2l6ZWQgaXRlbXMgd2Ugb3V0 cHV0LgotICAgICAgKi8KLS0gICAgc2l6ZWRidWZmZXJfYWxsb2NhdGUoYWV3LT5wc2JBdHRyVHlw ZXMsIDI1NiArIHN0cmxlbihhc2lwLT5hc2lfb2lkKSArCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RybGVuKGFzaXAtPmFzaV9uYW1lKSArCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpYXNsZW4gKyBz dHJsZW5fbnVsbF9vayhhdHRyX2Rlc2MpICsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJsZW4oc3ludGF4b2lkKSArCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RybGVuX251bGxfb2soYXNpcC0+YXNp X3N1cGVyaW9yKSArCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RybGVuX251bGxfb2soYXNpcC0+YXNpX21yX2VxdWFsaXR5KSArCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RybGVuX251bGxfb2soYXNp cC0+YXNpX21yX29yZGVyaW5nKSArCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RybGVuX251bGxfb2soYXNpcC0+YXNpX21yX3N1YnN0cmluZykgKwot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmNhdF9l eHRlbnNpb25zKE5VTEwsIGFzaXAtPmFzaV9leHRlbnNpb25zKSk7Ci0rICAgIHsKLSsgICAgICAg IGludCBhc2lfb2lkX3N0cmxlbiA9IHN0cmxlbihhc2lwLT5hc2lfb2lkKSArIDg7ICAgICAgLyog IiggJXMgTkFNRSAiICovCi0rICAgICAgICBpbnQgYXNpX25hbWVfc3RybGVuID0gc3RybGVuKGFz aXAtPmFzaV9uYW1lKSArIDY7ICAgIC8qICIoICclcycgLi4uKSIgKi8KLSsgICAgICAgIGludCBh c2lfYWxpYXNlc19zdHJsZW4gPSBhbGlhc2xlbiArIG5iX2FsaWFzZXMgKiAzOyAgLyogIiclcycg IiAqLwotKyAgICAgICAgaW50IGFzaV9kZXNjX3N0cmxlbiA9IHN0cmxlbl9udWxsX29rKGF0dHJf ZGVzYykgKyA3OyAvKiAiREVTQyAnJXMnIiAqLwotKyAgICAgICAgaW50IGFzaV9zeW50YXhvaWRf c3RybGVuID0gc3RybGVuKCJTWU5UQVggIikgKyBzdHJsZW4oc3ludGF4b2lkKSArIHN0cmxlbihz eW50YXhsZW5ndGhidWYpOwotKyAgICAgICAgaW50IGFzaV9zdXBlcmlvcl9zdHJsZW4gPSBzdHJs ZW4oIlNVUCAiKSArIHN0cmxlbl9udWxsX29rKGFzaXAtPmFzaV9zdXBlcmlvcik7Ci0rICAgICAg ICBpbnQgYXNpX21yX2VxdWFsaXR5X3N0cmxlbiA9IHN0cmxlbigiRVFVQUxJVFkgIikgKyBzdHJs ZW5fbnVsbF9vayhhc2lwLT5hc2lfbXJfZXF1YWxpdHkpOwotKyAgICAgICAgaW50IGFzaV9tcl9v cmRlcmluZ19zdHJsZW4gPSBzdHJsZW4oIk9SREVSSU5HICIpICsgc3RybGVuX251bGxfb2soYXNp cC0+YXNpX21yX29yZGVyaW5nKTsKLSsgICAgICAgIGludCBhc2lfbXJfc3Vic3RyaW5nX3N0cmxl biA9IHN0cmxlbigiU1VCU1RSICIpICsgc3RybGVuX251bGxfb2soYXNpcC0+YXNpX21yX3N1YnN0 cmluZyk7Ci0rICAgICAgICBpbnQgYXNpX2ZsYWdzX3N0cmxlbiA9IHN0cmxlbigiU0lOR0xFLVZB TFVFICIpICsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RybGVuKHNjaGVtYV9v YnNvbGV0ZV93aXRoX3NwYWNlcykgKwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJsZW4oc2NoZW1hX2NvbGxlY3RpdmVfd2l0aF9zcGFjZXMpICsKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RybGVuKHNjaGVtYV9ub3VzZXJtb2Rfd2l0aF9zcGFjZXMpICsKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RybGVuKCJVU0FHRSBkaXN0cmlidXRlZE9w ZXJhdGlvbiAiKSArCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmxlbigiVVNB R0UgZFNBT3BlcmF0aW9uICIpICsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry bGVuKCJVU0FHRSBkaXJlY3RvcnlPcGVyYXRpb24gIik7Ci0rICAgICAgICBpbnQgYXNpX2V4dGVu c2lvbl9zdHJsZW4gPSBzdHJjYXRfZXh0ZW5zaW9ucyhOVUxMLCBhc2lwLT5hc2lfZXh0ZW5zaW9u cyk7Ci0rCi0rICAgICAgICBpZiAoYWV3LT5lbnF1b3RlX3N1cF9vYykgewotKyAgICAgICAgICAg IC8qIGl0IGVucXVvdGUgdGhlIHN5bnRheCBvaWQgKi8KLSsgICAgICAgICAgICBhc2lfc3ludGF4 b2lkX3N0cmxlbiArPSAyOwotKyAgICAgICAgfQotKwotKyAgICBzaXplZGJ1ZmZlcl9hbGxvY2F0 ZShhZXctPnBzYkF0dHJUeXBlcywgMjU2ICsgYXNpX29pZF9zdHJsZW4gKwotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNpX25hbWVfc3RybGVuICsK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzaV9h bGlhc2VzX3N0cmxlbiArCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhc2lfZGVzY19zdHJsZW4gKwotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXNpX3N5bnRheG9pZF9zdHJsZW4gKwotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNpX3N1cGVyaW9yX3N0 cmxlbiArCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhc2lfbXJfZXF1YWxpdHlfc3RybGVuICsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGFzaV9tcl9vcmRlcmluZ19zdHJsZW4gKwotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNpX21yX3N1YnN0cmlu Z19zdHJsZW4gKwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYXNpX2V4dGVuc2lvbl9zdHJsZW4gKwotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXNpX2ZsYWdzX3N0cmxlbik7Ci0rICAgIH0KLSAKLSAg ICAgLyoKLSAgICAgICogT3ZlcmFsbCBzdHJhdGVneSBpcyB0byBtYWludGFpbiBhIHBvaW50ZXIg dG8gdGhlIG5leHQgbG9jYXRpb24gaW4KLS0tIAotMi41My4wCi0KCmRpZmYgLS1naXQgYS8wMDY0 LUlzc3VlLTcyNjctTURCX0JBRF9WQUxTSVpFLWVycm9yLXdoZW4tdXBkYXRpbmctaW5kZXgucGF0 Y2ggYi8wMDY0LUlzc3VlLTcyNjctTURCX0JBRF9WQUxTSVpFLWVycm9yLXdoZW4tdXBkYXRpbmct aW5kZXgucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI0OGM1MDQuLjAwMDAw MDAKLS0tIGEvMDA2NC1Jc3N1ZS03MjY3LU1EQl9CQURfVkFMU0laRS1lcnJvci13aGVuLXVwZGF0 aW5nLWluZGV4LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNjU0ICswLDAgQEAKLUZyb20gYzdl MWViMDhlYjM2ZmQ5YTE2Yzc0NTkzNWY1NmZhNGE0YjJhOTlkZiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKLUZyb206IHByb2dpZXIzODkgPHByb2dpZXJAcmVkaGF0LmNvbT4KLURhdGU6IFdlZCwg MjUgRmViIDIwMjYgMTg6MDA6MjQgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gSXNzdWUgNzI2NyAt IE1EQl9CQURfVkFMU0laRSBlcnJvciB3aGVuIHVwZGF0aW5nIGluZGV4Ci0gKCM3MjY4KQotCi0q IElzc3VlIDcyNjcgLSBNREJfQkFEX1ZBTFNJWkUgZXJyb3Igd2hlbiB1cGRhdGluZyBpbmRleAot KiBJbXByb3ZlIGltcG9ydCBsb2cgd2hlbiB3cml0ZXIgZmFpbHMKLSogRml4IFNvdXJjZXJ5IEFJ IGNvbW1lbnRzCi0qIEZpeCBJTkRFWF9LRVlfTEVOR1RIIHR5cG8KLQotUHJvYmxlbSB3aXRoIHRo ZSBrZXkgcHJlZml4IGhhbmRsaW5nIHdoZW4ga2V5IGlzIHRvbyBsb25nIGFuZCBtdXN0IGJlIGhh c2hlZC4KLVRoZSBpc3N1ZSBpcyB0aGF0IHRoZSAjIHRoYXQgaXMgcHJlcGVuZGVkIGlzIG5vdCBy ZXNldCB3aGVuIGl0ZXJhdGluZyBvdmVyIHRoZSB2YWx1ZXNldCB2YWx1ZXMgKEVuZGluZyB1cCB3 aXRoIHZlcnkgbG9uZyBwcmVmaXgpCi0KLUFsc28gcmVmYWN0b3JlZCB0aGUgY29kZSB0byBhdm9p ZCBkdXBsaWNhdGUgdGhlIGNvZGUgdGhhdCBwcmVwYXJlIHRoZSBrZXkgZnJvbSB0aGUgYXR0cmli dXRlIHZhbHVlICh1c2VkIHdoZW4gdXBkYXRpbmcgdGhlIGluZGV4IG9yIHJldHJpZXZpbmcgYSB2 YWx1ZSBmcm9tIGFuIGluZGV4KQotCi1Jc3N1ZTogIzcyNjcKLQotUmV2aWV3ZWQgYnk6IEB0Ym9y ZGF6ICwgQHZhc2hpcm92IChUaGFua3MhKQotCi1Dby1hdXRob3JlZC1ieTogVmlrdG9yIEFzaGly b3YgPHZhc2hpcm92QHJlZGhhdC5jb20+Ci0KLS0tLS0tLS0tLQotCi1Dby1hdXRob3JlZC1ieTog VmlrdG9yIEFzaGlyb3YgPHZhc2hpcm92QHJlZGhhdC5jb20+Ci0tLS0KLSAuLi4vdGVzdHMvc3Vp dGVzL2luZGV4ZXMvcmVncmVzc2lvbl90ZXN0LnB5ICAgfCAgNTggKysrKysrKwotIGxkYXAvc2Vy dmVycy9zbGFwZC9iYWNrLWxkYm0vYXR0cmNyeXB0LmggICAgICB8ICAgMiArLQotIGxkYXAvc2Vy dmVycy9zbGFwZC9iYWNrLWxkYm0vYmFjay1sZGJtLmggICAgICB8ICAgMiArCi0gLi4uL3NsYXBk L2JhY2stbGRibS9kYi1iZGIvYmRiX2ltcG9ydC5jICAgICAgIHwgIDM5ICstLS0tCi0gLi4uL2Jh Y2stbGRibS9kYi1tZGIvbWRiX2ltcG9ydF90aHJlYWRzLmMgICAgIHwgIDQ2ICsrKystCi0gbGRh cC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9pbmRleC5jICAgICAgICAgIHwgMTYxICsrKysrKyst LS0tLS0tLS0tLQotIGxkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vbGRibV9hdHRyY3J5cHQu YyB8ICAxMyArLQotIC4uLi9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9wcm90by1iYWNrLWxkYm0u aCB8ICAgMiArLQotIGxkYXAvc2VydmVycy9zbGFwZC9sb2cuYyAgICAgICAgICAgICAgICAgICAg ICB8ICA0MyArKysrKwotIGxkYXAvc2VydmVycy9zbGFwZC9zbGFwaS1wcml2YXRlLmggICAgICAg ICAgICB8ICAgMiArCi0gMTAgZmlsZXMgY2hhbmdlZCwgMjI0IGluc2VydGlvbnMoKyksIDE0NCBk ZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9pbmRl eGVzL3JlZ3Jlc3Npb25fdGVzdC5weSBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9pbmRleGVz L3JlZ3Jlc3Npb25fdGVzdC5weQotaW5kZXggODE3NmQ2ZGIwLi5hNDIxOGEyYjUgMTAwNjQ0Ci0t LS0gYS9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvaW5kZXhlcy9yZWdyZXNzaW9uX3Rlc3QucHkK LSsrKyBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9pbmRleGVzL3JlZ3Jlc3Npb25fdGVzdC5w eQotQEAgLTEwMjIsNiArMTAyMiw2NCBAQCBkZWYgdGVzdF9pZGxfcmFuZ2VfbGltaXQodG9wbywg YWRkX3NvbWVfZW50cmllcyk6Ci0gICAgIGFzc2VydCBsZW4oZW50cmllcykgPT0gMwotIAotIAot K2RlZiB0ZXN0X2xhcmdlX211bHRpdmFsdWVkX3NuX2F0dHJpYnV0ZSh0b3BvKToKLSsgICAgIiIi VGVzdCBhZGRpbmcgYSB1c2VyIGVudHJ5IHdpdGggNTEyIHZhbHVlcyBmb3Igc24gYXR0cmlidXRl LCBlYWNoIDUxMiBieXRlcwotKwotKyAgICA6aWQ6IDhmMmE5YjNjLWU4ZDctMTFlZi05YTVmLTQ4 MmFlMzk0NDdlNQotKyAgICA6c2V0dXA6IFN0YW5kYWxvbmUgSW5zdGFuY2UKLSsgICAgOnN0ZXBz OgotKyAgICAgICAgMS4gQ3JlYXRlIGEgdXNlciB3aXRoIDUxMiBzbiB2YWx1ZXMsIGVhY2ggNTEy IGJ5dGVzIGxvbmcKLSsgICAgICAgIDIuIFZlcmlmeSB0aGUgdXNlciB3YXMgY3JlYXRlZCBzdWNj ZXNzZnVsbHkKLSsgICAgICAgIDMuIFNlYXJjaCBmb3IgdGhlIHVzZXIgYW5kIHZlcmlmeSBhbGwg c24gdmFsdWVzIGFyZSBwcmVzZW50Ci0rICAgICAgICA0LiBDbGVhbiB1cCB0aGUgdXNlciBlbnRy eQotKyAgICA6ZXhwZWN0ZWRyZXN1bHRzOgotKyAgICAgICAgMS4gVXNlciBpcyBjcmVhdGVkIHN1 Y2Nlc3NmdWxseQotKyAgICAgICAgMi4gVXNlciBlbnRyeSBleGlzdHMKLSsgICAgICAgIDMuIEFs bCA1MTIgc24gdmFsdWVzIGFyZSBwcmVzZW50IGFuZCBoYXZlIGNvcnJlY3QgbGVuZ3RoCi0rICAg ICAgICA0LiBVc2VyIGlzIGRlbGV0ZWQgc3VjY2Vzc2Z1bGx5Ci0rICAgICIiIgotKwotKyAgICBp bnN0ID0gdG9wby5zdGFuZGFsb25lCi0rICAgIHVzZXJzID0gVXNlckFjY291bnRzKGluc3QsIERF RkFVTFRfU1VGRklYKQotKwotKyAgICBsb2cuaW5mbygiQ3JlYXRpbmcgdXNlciB3aXRoIDUxMiBz biB2YWx1ZXMsIGVhY2ggNTEyIGJ5dGVzIikKLSsKLSsgICAgIyBHZW5lcmF0ZSA1MTIgdW5pcXVl IHNuIHZhbHVlcywgZWFjaCA1MTIgYnl0ZXMgbG9uZwotKyAgICAjIFVzZSBhIHBhdHRlcm4gdGhh dCBtYWtlcyBlYWNoIHZhbHVlIHVuaXF1ZSBidXQgcHJlZGljdGFibGUKLSsgICAgc25fdmFsdWVz ID0gW10KLSsgICAgZm9yIGkgaW4gcmFuZ2UoNTEyKToKLSsgICAgICAgICMgQ3JlYXRlIGEgNTEy LWJ5dGUgdmFsdWUgd2l0aCB1bmlxdWUgaWRlbnRpZmllciBhdCB0aGUgc3RhcnQKLSsgICAgICAg IHZhbHVlID0gZidzbl92YWx1ZV97aTowNGR9XycgKyAneCcgKiAoNTEyIC0gbGVuKGYnc25fdmFs dWVfe2k6MDRkfV8nKSkKLSsgICAgICAgIHNuX3ZhbHVlcy5hcHBlbmQodmFsdWUpCi0rCi0rICAg ICMgQ3JlYXRlIHRoZSB1c2VyIHdpdGggZmlyc3Qgc24gdmFsdWUKLSsgICAgdXNlcl9uYW1lID0g J3Rlc3RfdXNlcl9sYXJnZV9zbicKLSsgICAgdXNlciA9IHVzZXJzLmNyZWF0ZShwcm9wZXJ0aWVz PXsKLSsgICAgICAgICd1aWQnOiB1c2VyX25hbWUsCi0rICAgICAgICAnY24nOiB1c2VyX25hbWUs Ci0rICAgICAgICAnc24nOiBzbl92YWx1ZXMsCi0rICAgICAgICAndWlkTnVtYmVyJzogJzk5OTk5 JywKLSsgICAgICAgICdnaWROdW1iZXInOiAnOTk5OTknLAotKyAgICAgICAgJ2hvbWVEaXJlY3Rv cnknOiBmJy9ob21lL3t1c2VyX25hbWV9JwotKyAgICB9KQotKwotKyAgICAjIFZlcmlmeSB0aGUg ZW50cnkgd2FzIGNyZWF0ZWQgYW5kIGhhcyBhbGwgc24gdmFsdWVzCi0rICAgIGxvZy5pbmZvKCJW ZXJpZnlpbmcgYWxsIHNuIHZhbHVlcyBhcmUgcHJlc2VudCIpCi0rICAgIHNuX2F0dHJfdmFsdWVz ID0gdXNlci5nZXRfYXR0cl92YWxzX3V0ZjgoJ3NuJykKLSsKLSsgICAgYXNzZXJ0IGxlbihzbl9h dHRyX3ZhbHVlcykgPT0gNTEyLCBmIkV4cGVjdGVkIDUxMiBzbiB2YWx1ZXMsIGdvdCB7bGVuKHNu X2F0dHJfdmFsdWVzKX0iCi0rCi0rICAgICMgVmVyaWZ5IGVhY2ggdmFsdWUgaGFzIHRoZSBjb3Jy ZWN0IGxlbmd0aAotKyAgICBmb3IgaWR4LCB2YWx1ZSBpbiBlbnVtZXJhdGUoc25fYXR0cl92YWx1 ZXMpOgotKyAgICAgICAgYXNzZXJ0IGxlbih2YWx1ZSkgPT0gNTEyLCBmInNuIHZhbHVlIHtpZHh9 IGhhcyBsZW5ndGgge2xlbih2YWx1ZSl9LCBleHBlY3RlZCA1MTIiCi0rCi0rICAgIGxvZy5pbmZv KCJTdWNjZXNzZnVsbHkgY3JlYXRlZCBhbmQgdmVyaWZpZWQgdXNlciB3aXRoIDUxMiBzbiB2YWx1 ZXMgb2YgNTEyIGJ5dGVzIGVhY2giKQotKwotKyAgICAjIENsZWFuIHVwCi0rICAgIHVzZXIuZGVs ZXRlKCkKLSsgICAgbG9nLmluZm8oIlVzZXIgZW50cnkgZGVsZXRlZCBzdWNjZXNzZnVsbHkiKQot KwotKwotIGlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6Ci0gICAgICMgUnVuIGlzb2xhdGVkCi0g ICAgICMgLXMgZm9yIERFQlVHIG1vZGUKLWRpZmYgLS1naXQgYS9sZGFwL3NlcnZlcnMvc2xhcGQv YmFjay1sZGJtL2F0dHJjcnlwdC5oIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9hdHRy Y3J5cHQuaAotaW5kZXggZDY1M2JhOTUxLi5kY2JlYTgwZmUgMTAwNjQ0Ci0tLS0gYS9sZGFwL3Nl cnZlcnMvc2xhcGQvYmFjay1sZGJtL2F0dHJjcnlwdC5oCi0rKysgYi9sZGFwL3NlcnZlcnMvc2xh cGQvYmFjay1sZGJtL2F0dHJjcnlwdC5oCi1AQCAtMTAsNyArMTAsNyBAQAotICNpbmNsdWRlIDxj b25maWcuaD4KLSAjZW5kaWYKLSAKLS0vKiBQcml2YXRlIHRydWN0dXJlcyBhbmQgI2RlZmluZXMg dXNlZCBpbiB0aGUgYXR0cmlidXRlIGVuY3J5cHRpb24gY29kZS4gKi8KLSsvKiBQcml2YXRlIHN0 cnVjdHVyZXMgYW5kICNkZWZpbmVzIHVzZWQgaW4gdGhlIGF0dHJpYnV0ZSBlbmNyeXB0aW9uIGNv ZGUuICovCi0gCi0gI2lmbmRlZiBfQVRUUkNSWVBUX0hfCi0gI2RlZmluZSBfQVRUUkNSWVBUX0hf Ci1kaWZmIC0tZ2l0IGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9iYWNrLWxkYm0uaCBi L2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vYmFjay1sZGJtLmgKLWluZGV4IGUyM2U3ZmY0 My4uOTJhYTFkZGJiIDEwMDY0NAotLS0tIGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9i YWNrLWxkYm0uaAotKysrIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9iYWNrLWxkYm0u aAotQEAgLTEwNCw2ICsxMDQsOCBAQCB0eXBlZGVmIHVuc2lnbmVkIHNob3J0IHVfaW50MTZfdDsK LSAgKi8KLSAjZGVmaW5lIEJFX0NIQU5HRUxPR19GSUxFICAgICAicmVwbGljYXRpb25fY2hhbmdl bG9nIgotIAotKyNkZWZpbmUgSU5ERVhfS0VZX0xFTkdUSChsZW52YWwsbGVucHJlZml4KSAgKGxl bnZhbCtsZW5wcmVmaXgrMikKLSsKLSAjZGVmaW5lIEJEQl9JTVBMICAgICAgICAgICAgICAiYmRi IgotICNkZWZpbmUgQkRCX0JBQ0tFTkQgICAgICAgICAgICJsaWJiYWNrLWxkYm0iIC8qIFRoaXMg YmFja2VuZCBwbHVnaW4gKi8KLSAjZGVmaW5lIEJEQl9ORVdJREwgICAgICAgICAgICAibmV3aWRs IiAgICAgICAvKiBuZXcgaWRsIGZvcm1hdCAqLwotZGlmZiAtLWdpdCBhL2xkYXAvc2VydmVycy9z bGFwZC9iYWNrLWxkYm0vZGItYmRiL2JkYl9pbXBvcnQuYyBiL2xkYXAvc2VydmVycy9zbGFwZC9i YWNrLWxkYm0vZGItYmRiL2JkYl9pbXBvcnQuYwotaW5kZXggYTZjYjEwYWVjLi40ODk0MzM4MDEg MTAwNjQ0Ci0tLS0gYS9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2RiLWJkYi9iZGJfaW1w b3J0LmMKLSsrKyBiL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vZGItYmRiL2JkYl9pbXBv cnQuYwotQEAgLTc1LDkgKzc1LDkgQEAgc3RhdGljIElETGlzdCAqYmRiX2lkbF91bmlvbl9hbGxp ZHMoYmFja2VuZCAqYmUsIHN0cnVjdCBhdHRyaW5mbyAqYWksIElETGlzdCAqYSwKLSAjZGVmaW5l IERFQlVHX1NVQkNPVU5UX01TRyhtc2csIC4uLikgeyBkZWJ1Z19zdWJjb3VudChfX0ZVTkNUSU9O X18sIF9fTElORV9fLCAobXNnKSwgX19WQV9BUkdTX18pOyB9Ci0gI2RlZmluZSBEVU1QX1NVQkNP VU5UX0tFWShtc2csIGtleSwgcmV0KSB7IGRlYnVnX3N1YmNvdW50KF9fRlVOQ1RJT05fXywgX19M SU5FX18sICJyZXQ9JWQgc2l6ZT0ldSB1bGVuPSV1IGRvZmY9JXUgZGxlbj0ldSIsIFwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldCwgKGtleSkuc2l6 ZSwgKGtleSkudWxlbiwgKGtleSkuZG9mZiwgKGtleSkuZGxlbik7IFwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJldCA9PSAwKSBoZXhhZHVtcChtc2cs IChrZXkpLmRhdGEsIDAsIChrZXkpLnNpemUpOyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmIChyZXQgPT0gMCkgc2xhcGlfbG9nX2hleGFkdW1wKFNMQVBJ X0xPR19JTkZPLCBtc2csIChrZXkpLmRhdGEsIChrZXkpLnNpemUpOyBcCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJldCA9PSBEQl9CVUZGRVJf U01BTEwpIFwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBoZXhhZHVtcChtc2csIChrZXkpLmRhdGEsIDAsIChrZXkpLnVsZW4pOyB9Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xhcGlfbG9nX2hleGFkdW1w KFNMQVBJX0xPR19JTkZPLCBtc2csIChrZXkpLmRhdGEsIChrZXkpLnVsZW4pOyB9Ci0gCi0gc3Rh dGljIHZvaWQKLSBkZWJ1Z19zdWJjb3VudChjb25zdCBjaGFyICpmdW5jbmFtZSwgaW50IGxpbmUs IGNoYXIgKm1zZywgLi4uKQotQEAgLTkwLDQxICs5MCw2IEBAIGRlYnVnX3N1YmNvdW50KGNvbnN0 IGNoYXIgKmZ1bmNuYW1lLCBpbnQgbGluZSwgY2hhciAqbXNnLCAuLi4pCi0gICAgIHNsYXBpX2xv Z19lcnIoU0xBUElfTE9HX0lORk8sIChjaGFyKilmdW5jbmFtZSwgIkRFQlVHIFNVQkNPVU5UIFsl ZF0gJXNcbiIsIGxpbmUsIGJ1ZmYpOwotIH0KLSAKLS0vKgotLSAqIER1bXAgYSBtZW1vcnkgYnVm ZmVyIGluIGhleGEgYW5kIGFzY2lpIGluIGVycm9yIGxvZwotLSAqCi0tICogYWRkciAtIFRoZSBt ZW1vcnkgYnVmZmVyIGFkZHJlc3MuCi0tICogbGVuIC0gVGhlIG1lbW9yeSBidWZmZXIgbGVuZ2h0 LgotLSAqLwotLXN0YXRpYyB2b2lkCi0taGV4YWR1bXAoY2hhciAqbXNnLCBjb25zdCB2b2lkICph ZGRyLCBzaXplX3Qgb2Zmc2V0LCBzaXplX3QgbGVuKQotLXsKLS0jZGVmaW5lICBIRVhBRFVNUF9U QUIgNAotLS8qIDQgY2hhcmFjdGVycyBwZXIgYnl0ZXM6ICAyIGhleGEgZGlnaXRzLCAxIHNwYWNl IGFuZCB0aGUgYXNjaWkgICovCi0tI2RlZmluZSAgSEVYQURVTVBfQlVGX1NJWkUgKDQqMTYrSEVY QURVTVBfVEFCKQotLSAgICBjaGFyIGhleGRpZ2l0W10gPSAiMDEyMzQ1Njc4OUFCQ0RFRiI7Ci0t Ci0tICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnB0ID0gYWRkcjsKLS0gICAgY2hhciBidWZmW0hF WEFEVU1QX0JVRl9TSVpFKzFdOwotLSAgICBtZW1zZXQgKGJ1ZmYsICcgJywgSEVYQURVTVBfQlVG X1NJWkUpOwotLSAgICBidWZmW0hFWEFEVU1QX0JVRl9TSVpFXSA9ICdcMCc7Ci0tICAgIHdoaWxl IChsZW4gPiAwKSB7Ci0tICAgICAgICBpbnQgZHBsOwotLSAgICAgICAgZm9yIChkcGwgPSAwOyBk cGwgPCAxNiAmJiBsZW4+MDsgZHBsKyssIGxlbi0tKSB7Ci0tICAgICAgICAgICBidWZmWzMqZHBs XSA9IGhleGRpZ2l0WygoKnB0KSA+PiA0KSAmIDB4Zl07Ci0tICAgICAgICAgICBidWZmWzMqZHBs KzFdID0gaGV4ZGlnaXRbKCpwdCkgJiAweGZdOwotLSAgICAgICAgICAgYnVmZlszKjE2K0hFWEFE VU1QX1RBQitkcGxdID0gKCpwdD49MHgyMCAmJiAqcHQ8MHg3ZikgPyAqcHQgOiAnLic7Ci0tICAg ICAgICAgICBwdCsrOwotLSAgICAgICAgfQotLSAgICAgICAgZm9yICg7ZHBsIDwgMTY7IGRwbCsr KSB7Ci0tICAgICAgICAgICBidWZmWzMqZHBsXSA9ICcgJzsKLS0gICAgICAgICAgIGJ1ZmZbMypk cGwrMV0gPSAnICc7Ci0tICAgICAgICAgICBidWZmWzMqMTYrSEVYQURVTVBfVEFCK2RwbF0gPSAn ICc7Ci0tICAgICAgICB9Ci0tICAgICAgICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xPR19JTkZPLCBt c2csICJbMHglMDhseF0gICVzXG4iLCBvZmZzZXQsIGJ1ZmYpOwotLSAgICAgICAgb2Zmc2V0ICs9 IDE2OwotLSAgICB9Ci0tfQotICNlbHNlCi0gI2RlZmluZSBERUJVR19TVUJDT1VOVF9NU0cobXNn LCAuLi4pCi0gI2RlZmluZSBEVU1QX1NVQkNPVU5UX0tFWShtc2csIGtleSwgcmV0KQotZGlmZiAt LWdpdCBhL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vZGItbWRiL21kYl9pbXBvcnRfdGhy ZWFkcy5jIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9kYi1tZGIvbWRiX2ltcG9ydF90 aHJlYWRzLmMKLWluZGV4IDY1YjI5MzQzZS4uYjk2OTc5MGRhIDEwMDY0NAotLS0tIGEvbGRhcC9z ZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9kYi1tZGIvbWRiX2ltcG9ydF90aHJlYWRzLmMKLSsrKyBi L2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vZGItbWRiL21kYl9pbXBvcnRfdGhyZWFkcy5j Ci1AQCAtMTEyMyw2ICsxMTIzLDIxIEBAIGRibWRiX2ltcG9ydF9lbnRyeV9pbmZvX2J5X2JhY2tl bnRyeShtZGJfcHJpdmRiX3QgKmRiLCBCdWxrUXVldWVEYXRhX3QgKmJxZGF0YSwKLSAgICAgcmV0 dXJuIGRucmM7Ci0gfQotIAotKy8qIExvZyB3cWVsbXQgZGV0YWlscyAqLwotK3ZvaWQKLStsb2df d3FlbG10KGludCBsb2dsdmwsIGNoYXIgKmZuYW1lLCBXb3JrZXJRdWV1ZURhdGFfdCAqd3FlbG10 KQotK3sKLSsgICAgaWYgKHdxZWxtdC0+ZG4pIHsKLSsgICAgICAgIHNsYXBpX2xvZ19lcnIobG9n bHZsLCBmbmFtZSwgImxvZ193cWVsbXQ6IGRuPSVzXG4iLCB3cWVsbXQtPmRuKTsKLSsgICAgfQot KyAgICBpZiAod3FlbG10LT5maWxlbmFtZSAmJiB3cWVsbXQtPmxpbmVubykgewotKyAgICAgICAg c2xhcGlfbG9nX2Vycihsb2dsdmwsIGZuYW1lLCAibG9nX3dxZWxtdDogbGRpZj0lc1slZF1cbiIs IHdxZWxtdC0+ZmlsZW5hbWUsIHdxZWxtdC0+bGluZW5vKTsKLSsgICAgfQotKyAgICBpZiAod3Fl bG10LT5kYXRhKSB7Ci0rICAgICAgICBzaXplX3QgbGVuID0gd3FlbG10LT5kYXRhbGVuID8gd3Fl bG10LT5kYXRhbGVuIDogc3RybGVuKHdxZWxtdC0+ZGF0YSk7Ci0rICAgICAgICBzbGFwaV9sb2df aGV4YWR1bXAobG9nbHZsLCAibG9nX3dxZWxtdDpkYXRhIiwgd3FlbG10LT5kYXRhLCBsZW4pOwot KyAgICB9Ci0rfQotIAotIC8qIHByb2R1Y2VyIHRocmVhZCBmb3IgbGRpZiBpbXBvcnQgY2FzZToK LSAgKiByZWFkIHRocm91Z2ggdGhlIGdpdmVuIGZpbGUgbGlzdCwgcGFyc2luZyBlbnRyaWVzIChz dHIyZW50cnkpLCBhc3NpZ25pbmcKLUBAIC0xMjU1LDYgKzEyNzAsNyBAQCBkYm1kYl9pbXBvcnRf cHJvZHVjZXIodm9pZCAqcGFyYW0pCi0gICAgICAgICAgICAgICAgIGltcG9ydF9sb2dfbm90aWNl KGpvYiwgU0xBUElfTE9HX0VSUiwgImRibWRiX2ltcG9ydF9wcm9kdWNlciIsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJuc19zbGFwZCBzb2Z0d2FyZSBlcnJvcjogdW5leHBl Y3RlZCBkYm1kYl9pbXBvcnRfZW50cnlfaW5mbyByZXR1cm4gY29kZTogJWQuIiwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgd3FlbG10LmRucmMpOwotKyAgICAgICAgICAgICAg ICBsb2dfd3FlbG10KFNMQVBJX0xPR19FUlIsICJkYm1kYl9pbXBvcnRfcHJvZHVjZXIiLCAmd3Fl bG10KTsKLSAgICAgICAgICAgICAgICAgYWJvcnQoKTsKLSAgICAgICAgICAgICBjYXNlIEROUkNf T0s6Ci0gICAgICAgICAgICAgY2FzZSBETlJDX1NVRkZJWDoKLUBAIC0xNzU4LDYgKzE3NzQsNyBA QCBkYm1kYl9pbmRleF9wcm9kdWNlcih2b2lkICpwYXJhbSkKLSAgICAgICAgICAgICAgICAgaW1w b3J0X2xvZ19ub3RpY2Uoam9iLCBTTEFQSV9MT0dfRVJSLCAiZGJtZGJfaW5kZXhfcHJvZHVjZXIi LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibnNfc2xhcGQgc29mdHdhcmUg ZXJyb3I6IHVuZXhwZWN0ZWQgZGJtZGJfaW1wb3J0X2VudHJ5X2luZm8gcmV0dXJuIGNvZGU6ICVk LiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRtcHNsb3QuZG5yYyk7Ci0r ICAgICAgICAgICAgICAgIGxvZ193cWVsbXQoU0xBUElfTE9HX0VSUiwgImRibWRiX2luZGV4X3By b2R1Y2VyIiwgJnRtcHNsb3QpOwotICAgICAgICAgICAgICAgICBhYm9ydCgpOwotICAgICAgICAg ICAgIGNhc2UgRE5SQ19PSzoKLSAgICAgICAgICAgICBjYXNlIEROUkNfU1VGRklYOgotQEAgLTM5 MzYsMTAgKzM5NTMsMjQgQEAgZGJtZGJfaW1wb3J0X3dyaXRlcih2b2lkKnBhcmFtKQotICAgICAg ICAgICAgIGlmICghdHhuKSB7Ci0gICAgICAgICAgICAgICAgIE1EQl9TVEFUX1NURVAoc3RhdHMs IE1EQl9TVEFUX1RYTlNUQVJULCBzdGF0c19lbmFibGVkKTsKLSAgICAgICAgICAgICAgICAgcmMg PSBUWE5fQkVHSU4oY3R4LT5jdHgtPmVudiwgTlVMTCwgMCwgJnR4bik7Ci0rICAgICAgICAgICAg ICAgIGlmIChyYykgewotKyAgICAgICAgICAgICAgICAgICAgc2xhcGlfbG9nX2VycihTTEFQSV9M T0dfRVJSLCAiZGJtZGJfaW1wb3J0X3dyaXRlciIsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJGYWlsZWQgdG8gYmVnaW4gYSB0eG4uIEVycm9yIGlzIDB4JXg6ICVzLlxuIiwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmMsIG1kYl9zdHJlcnJvcihyYykp OwotKyAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgfQotICAgICAgICAgICAgIGlmICgh cmMpIHsKLSAgICAgICAgICAgICAgICAgTURCX1NUQVRfU1RFUChzdGF0cywgTURCX1NUQVRfV1JJ VEUsIHN0YXRzX2VuYWJsZWQpOwotICAgICAgICAgICAgICAgICByYyA9IE1EQl9QVVQodHhuLCBz bG90LT5kYmktPmRiaSwgJnNsb3QtPmtleSwgJnNsb3QtPmRhdGEsIDApOwotKyAgICAgICAgICAg ICAgICBpZiAocmMpIHsKLSsgICAgICAgICAgICAgICAgICAgIHNsYXBpX2xvZ19lcnIoU0xBUElf TE9HX0VSUiwgImRibWRiX2ltcG9ydF93cml0ZXIiLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiRmFpbGVkIHRvIHdyaXRlIHJlY29yZCBpbiBkYmkgJXMuIEVycm9yIGlzIDB4 JXg6ICVzLlxuIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xvdC0+ZGJp LT5kYm5hbWUsIHJjLCBtZGJfc3RyZXJyb3IocmMpKTsKLSsgICAgICAgICAgICAgICAgICAgIHNs YXBpX2xvZ19oZXhhZHVtcChTTEFQSV9MT0dfRVJSLCAiZGJtZGJfaW1wb3J0X3dyaXRlcjprZXki LCAKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbG90LT5rZXkubXZf ZGF0YSwgc2xvdC0+a2V5Lm12X3NpemUpOwotKyAgICAgICAgICAgICAgICAgICAgc2xhcGlfbG9n X2hleGFkdW1wKFNMQVBJX0xPR19FUlIsICJkYm1kYl9pbXBvcnRfd3JpdGVyOmRhdGEiLCAKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbG90LT5kYXRhLm12X2RhdGEs IHNsb3QtPmRhdGEubXZfc2l6ZSk7Ci0rICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICB9 Ci0gICAgICAgICAgICAgTURCX1NUQVRfU1RFUChzdGF0cywgTURCX1NUQVRfUlVOLCBzdGF0c19l bmFibGVkKTsKLSAgICAgICAgICAgICBuZXh0c2xvdCA9IHNsb3QtPm5leHQ7Ci1AQCAtMzk1Myw2 ICszOTg0LDkgQEAgZGJtZGJfaW1wb3J0X3dyaXRlcih2b2lkKnBhcmFtKQotICAgICAgICAgICAg IHJjID0gVFhOX0NPTU1JVCh0eG4pOwotICAgICAgICAgICAgIE1EQl9TVEFUX1NURVAoc3RhdHMs IE1EQl9TVEFUX1JVTiwgc3RhdHNfZW5hYmxlZCk7Ci0gICAgICAgICAgICAgaWYgKHJjKSB7Ci0r ICAgICAgICAgICAgICAgIHNsYXBpX2xvZ19lcnIoU0xBUElfTE9HX0VSUiwgImRibWRiX2ltcG9y dF93cml0ZXIiLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gY29t bWl0IHRoZSB0eG4uIEVycm9yIGlzIDB4JXg6ICVzLlxuIiwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICByYywgbWRiX3N0cmVycm9yKHJjKSk7Ci0gICAgICAgICAgICAgICAgIGJyZWFr OwotICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICBjb3VudCA9IDA7Ci1AQCAtMzk2NSw2ICsz OTk5LDEwIEBAIGRibWRiX2ltcG9ydF93cml0ZXIodm9pZCpwYXJhbSkKLSAgICAgICAgIE1EQl9T VEFUX1NURVAoc3RhdHMsIE1EQl9TVEFUX1JVTiwgc3RhdHNfZW5hYmxlZCk7Ci0gICAgICAgICBp ZiAoIXJjKSB7Ci0gICAgICAgICAgICAgdHhuID0gTlVMTDsKLSsgICAgICAgIH0gZWxzZSB7Ci0r ICAgICAgICAgICAgc2xhcGlfbG9nX2VycihTTEFQSV9MT0dfRVJSLCAiZGJtZGJfaW1wb3J0X3dy aXRlciIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIGNvbW1pdCB0aGUg dHhuLiBFcnJvciBpcyAweCV4OiAlcy5cbiIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICBy YywgbWRiX3N0cmVycm9yKHJjKSk7Ci0gICAgICAgICB9Ci0gICAgIH0KLSAgICAgaWYgKHR4bikg ewotQEAgLTM5NzcsMTMgKzQwMTUsMTcgQEAgZGJtZGJfaW1wb3J0X3dyaXRlcih2b2lkKnBhcmFt KQotICAgICBpZiAoIXJjKSB7Ci0gICAgICAgICAvKiBFbnN1cmUgdGhhdCBhbGwgZGF0YSBhcmUg d3JpdHRlbiBvbiBkaXNrICovCi0gICAgICAgICByYyA9IG1kYl9lbnZfc3luYyhjdHgtPmN0eC0+ ZW52LCAxKTsKLSsgICAgICAgIGlmIChyYykgewotKyAgICAgICAgICAgIHNsYXBpX2xvZ19lcnIo U0xBUElfTE9HX0VSUiwgImRibWRiX2ltcG9ydF93cml0ZXIiLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgIm1kYl9lbnZfc3luYyBmYWlsZWQuIEVycm9yIGlzIDB4JXg6ICVzLlxuIiwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgIHJjLCBtZGJfc3RyZXJyb3IocmMpKTsKLSsgICAgICAg IH0KLSAgICAgfQotICAgICBNREJfU1RBVF9FTkQoc3RhdHMsIHN0YXRzX2VuYWJsZWQpOwotIAot ICAgICBpZiAocmMpIHsKLSAgICAgICAgIHNsYXBpX2xvZ19lcnIoU0xBUElfTE9HX0VSUiwgImRi bWRiX2ltcG9ydF93cml0ZXIiLAotLSAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIHdyaXRlIGlu IHRoZSBkYXRhYmFzZS4gRXJyb3IgaXMgMHgleDogJXMuXG4iLAotLSAgICAgICAgICAgICAgICBy YywgbWRiX3N0cmVycm9yKHJjKSk7Ci0rICAgICAgICAgICAgICAgICJBYm9ydGluZyBpbXBvcnQg YWZ0ZXIgZmFpbHVyZS5cbiIpOwotICAgICAgICAgdGhyZWFkX2Fib3J0KGluZm8pOwotICAgICB9 IGVsc2UgaWYgKHN0YXRzX2VuYWJsZWQpIHsKLSAgICAgICAgIGNoYXIgYnVmWzIwMF07Ci1kaWZm IC0tZ2l0IGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9pbmRleC5jIGIvbGRhcC9zZXJ2 ZXJzL3NsYXBkL2JhY2stbGRibS9pbmRleC5jCi1pbmRleCBhNTAwNGJlMTkuLmMxMDhiY2UzYyAx MDA2NDQKLS0tLSBhL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vaW5kZXguYwotKysrIGIv bGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9pbmRleC5jCi1AQCAtODgxLDYgKzg4MSw2NyBA QCBpbmRleF9yZWFkKAotICAgICByZXR1cm4gaW5kZXhfcmVhZF9leHQoYmUsIChjaGFyICopdHlw ZSwgaW5kZXh0eXBlLCB2YWwsIHR4biwgZXJyLCBOVUxMKTsKLSB9Ci0gCi0rLyogUHJlcGFyZSBh biBpbmRleCBrZXkgKGhhc2hlZCBpZiB0b28gbG9uZywgZW5jcnlwdGVkIGlmIG5lZWRlZCBmcm9t IGF0dHJpYnV0ZSB2YWx1ZSAqLwotK2ludAotK3ByZXBhcmVfa2V5KGJhY2tlbmQgKmJlLCBzdHJ1 Y3QgYXR0cmluZm8gKmEsIGNoYXIgKipidWYsIHNpemVfdCAqYnVmbGVuLAotKyAgICAgICAgICAg IGludCBmbGFncywgY29uc3QgY2hhciAqcHJlZml4LCBjb25zdCBzdHJ1Y3QgYmVydmFsICpidnAs IGRiaV92YWxfdCAqa2V5KQotK3sKLSsgICAgLyogS2V5IGZvcm1hdCBpcyBbSGFzaD9dIFtwcmVm aXhdIFt2YWxdIFtcMF0gKi8KLSsgICAgc3RydWN0IGxkYm1pbmZvICpsaSA9IChzdHJ1Y3QgbGRi bWluZm8gKiliZS0+YmVfZGF0YWJhc2UtPnBsZ19wcml2YXRlOwotKyAgICBzaXplX3QgcGxlbiA9 IHN0cmxlbihwcmVmaXgpOwotKyAgICBzdHJ1Y3QgYmVydmFsICpoYXNoZWRfYnZwID0gTlVMTDsK LSsgICAgc3RydWN0IGJlcnZhbCAqZW5jcnlwdGVkX2J2cCA9IE5VTEw7Ci0rICAgIGludCByYyA9 IDA7Ci0rCi0rICAgIC8qIEhhc2ggbGFyZ2UgaW5kZXgga2V5IGlmIG5lY2Vzc2FyeSAqLwotKyAg ICBpZiAoSU5ERVhfS0VZX0xFTkdUSChidnAtPmJ2X2xlbixwbGVuKSA+PSAgbGktPmxpX21heF9r ZXlfbGVuKSB7Ci0rICAgICAgICByYyA9IGF0dHJjcnlwdF9oYXNoX2xhcmdlX2luZGV4X2tleShi ZSwgcHJlZml4LCBhLCBidnAsICZoYXNoZWRfYnZwKTsKLSsgICAgICAgIGlmIChyYykgewotKyAg ICAgICAgICAgIHNsYXBpX2xvZ19lcnIoU0xBUElfTE9HX0VSUiwgImluZGV4X3JlYWRfZXh0X2Fs bGlkcyIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIGhhc2ggbGFyZ2Ug aW5kZXgga2V5IGZvciAlc1xuIiwgYS0+YWlfdHlwZSk7Ci0rICAgICAgICAgICAgcmV0dXJuIHJj OwotKyAgICAgICAgfSBlbHNlIHsKLSsgICAgICAgICAgICBidnAgPSBoYXNoZWRfYnZwOwotKyAg ICAgICAgfQotKyAgICB9Ci0rCi0rICAgIC8qIEVuY3J5cHQgdGhlIGluZGV4IGtleSBpZiBuZWNl c3NhcnkgKi8KLSsgICAgaWYgKHJjID09IDAgJiYgYS0+YWlfYXR0cmNyeXB0ICYmICgwID09IChm bGFncyAmIEJFX0lOREVYX0RPTlRfRU5DUllQVCkpKSB7Ci0rICAgICAgICByYyA9IGF0dHJjcnlw dF9lbmNyeXB0X2luZGV4X2tleShiZSwgYSwgYnZwLCAmZW5jcnlwdGVkX2J2cCk7Ci0rICAgICAg ICBpZiAocmMpIHsKLSsgICAgICAgICAgICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xPR19FUlIsICJh ZGRvcmRlbF92YWx1ZXNfc3YiLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0 byBlbmNyeXB0IGluZGV4IGtleSBmb3IgJXNcbiIsIGEtPmFpX3R5cGUpOwotKyAgICAgICAgfSBl bHNlIHsKLSsgICAgICAgICAgICBidnAgPSBlbmNyeXB0ZWRfYnZwOwotKyAgICAgICAgfQotKyAg ICB9Ci0rICAgIGlmIChoYXNoZWRfYnZwKSB7Ci0rICAgICAgICBwcmVmaXggPSBzbGFwaV9jaF9z bXByaW50ZigiJWMlcyIsSEFTSF9QUkVGSVgsIHByZWZpeCk7Ci0rICAgICAgICBwbGVuKys7Ci0r ICAgIH0KLSsgICAgaWYgKGJ1ZiAmJiBidWZsZW4pIHsKLSsgICAgICAgIGlmIChwbGVuK2J2cC0+ YnZfbGVuKzEgPiAqYnVmbGVuKSB7Ci0rICAgICAgICAgICAgKmJ1ZmxlbiA9IHBsZW4rYnZwLT5i dl9sZW4rMTsKLSsgICAgICAgICAgICAqYnVmID0gc2xhcGlfY2hfcmVhbGxvYygqYnVmLCAqYnVm bGVuKTsKLSsgICAgICAgIH0KLSsgICAgICAgIGRibGF5ZXJfdmFsdWVfY29uY2F0KGJlLCBrZXks ICpidWYsICpidWZsZW4sIHByZWZpeCwgcGxlbiwgYnZwLT5idl92YWwsIGJ2cC0+YnZfbGVuLCAi IiwgMSk7Ci0rICAgIH0gZWxzZSB7Ci0rICAgICAgICBkYmxheWVyX3ZhbHVlX2NvbmNhdChiZSwg a2V5LCBOVUxMLCAwLCBwcmVmaXgsIHBsZW4sIGJ2cC0+YnZfdmFsLCBidnAtPmJ2X2xlbiwgIiIs IDEpOwotKyAgICB9Ci0rCi0rICAgIGlmIChoYXNoZWRfYnZwKSB7Ci0rICAgICAgICBiZXJfYnZm cmVlKGhhc2hlZF9idnApOwotKyAgICAgICAgaGFzaGVkX2J2cCA9IE5VTEw7Ci0rICAgICAgICBz bGFwaV9jaF9mcmVlX3N0cmluZygoY2hhcioqKSZwcmVmaXgpOwotKyAgICB9Ci0rICAgIGlmIChl bmNyeXB0ZWRfYnZwKSB7Ci0rICAgICAgICBiZXJfYnZmcmVlKGVuY3J5cHRlZF9idnApOwotKyAg ICAgICAgZW5jcnlwdGVkX2J2cCA9IE5VTEw7Ci0rICAgIH0KLSsgICAgcmV0dXJuIHJjOwotK30K LSsKLSsKLSAvKgotICAqIEV4dGVuZGVkIHZlcnNpb24gb2YgaW5kZXhfcmVhZC4KLSAgKiBUaGUg dW5pbmRleGVkIGZsYWcgY2FuIGJlIHVzZWQgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBhCi1AQCAt OTE3LDcgKzk3OCw2IEBAIGluZGV4X3JlYWRfZXh0X2FsbGlkcygKLSAgICAgc3RydWN0IGJlcnZh bCAqaGFzaGVkX3ZhbCA9IE5VTEw7Ci0gICAgIGludCBpc19hbmQgPSAwOwotICAgICB1bnNpZ25l ZCBpbnQgYWlfZmxhZ3MgPSAwOwotLSAgICBzdHJ1Y3QgbGRibWluZm8gKmxpID0gKHN0cnVjdCBs ZGJtaW5mbyAqKWJlLT5iZV9kYXRhYmFzZS0+cGxnX3ByaXZhdGU7Ci0gCi0gICAgICplcnIgPSAw OwotIAotQEAgLTEwMjgsMzYgKzEwODgsNyBAQCBpbmRleF9yZWFkX2V4dF9hbGxpZHMoCi0gICAg IH0KLSAKLSAgICAgaWYgKHZhbCAhPSBOVUxMKSB7Ci0tICAgICAgICBzaXplX3QgdmxlbjsKLS0g ICAgICAgIGludCByZXQgPSAwOwotLQotLSAgICAgICAgLyogSWYgbmVjZXNzYXJ5LCBoYXNoIHRo aXMgaW5kZXgga2V5ICovCi0tICAgICAgICBpZiAodmFsLT5idl9sZW4gPj0gIGxpLT5saV9tYXhf a2V5X2xlbikgewotLSAgICAgICAgICAgIHJldCA9IGF0dHJjcnlwdF9oYXNoX2xhcmdlX2luZGV4 X2tleShiZSwgJnByZWZpeCwgYWksIHZhbCwgJmhhc2hlZF92YWwpOwotLSAgICAgICAgICAgIGlm IChyZXQpIHsKLS0gICAgICAgICAgICAgICAgc2xhcGlfbG9nX2VycihTTEFQSV9MT0dfRVJSLCAi aW5kZXhfcmVhZF9leHRfYWxsaWRzIiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi RmFpbGVkIHRvIGhhc2ggbGFyZ2UgaW5kZXgga2V5IGZvciAlc1xuIiwgYmFzZXR5cGUpOwotLSAg ICAgICAgICAgICAgICAqZXJyID0gREJJX1JDX09USEVSOwotLSAgICAgICAgICAgICAgICBpbmRl eF9mcmVlX3ByZWZpeChwcmVmaXgpOwotLSAgICAgICAgICAgICAgICBzbGFwaV9jaF9mcmVlX3N0 cmluZygmYmFzZXRtcCk7Ci0tICAgICAgICAgICAgICAgIHJldHVybiAoTlVMTCk7Ci0tICAgICAg ICAgICAgfQotLSAgICAgICAgICAgIGlmIChoYXNoZWRfdmFsKSB7Ci0tICAgICAgICAgICAgICAg IHZhbCA9IGhhc2hlZF92YWw7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAgfQotLSAgICAgICAg LyogSWYgbmVjZXNzYXJ5LCBlbmNyeXB0IHRoaXMgaW5kZXgga2V5ICovCi0tICAgICAgICByZXQg PSBhdHRyY3J5cHRfZW5jcnlwdF9pbmRleF9rZXkoYmUsIGFpLCB2YWwsICZlbmNyeXB0ZWRfdmFs KTsKLS0gICAgICAgIGlmIChyZXQpIHsKLS0gICAgICAgICAgICBzbGFwaV9sb2dfZXJyKFNMQVBJ X0xPR19FUlIsICJpbmRleF9yZWFkX2V4dF9hbGxpZHMiLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgIkZhaWxlZCB0byBlbmNyeXB0IGluZGV4IGtleSBmb3IgJXNcbiIsIGJhc2V0eXBlKTsK LS0gICAgICAgIH0KLS0gICAgICAgIGlmIChlbmNyeXB0ZWRfdmFsKSB7Ci0tICAgICAgICAgICAg dmFsID0gZW5jcnlwdGVkX3ZhbDsKLS0gICAgICAgIH0KLS0gICAgICAgIHZsZW4gPSB2YWwtPmJ2 X2xlbjsKLS0gICAgICAgIGRibGF5ZXJfdmFsdWVfY29uY2F0KGJlLCAma2V5LCBidWYsIHNpemVv ZihidWYpLAotLSAgICAgICAgICAgIHByZWZpeCwgc3RybGVuKHByZWZpeCksIHZhbC0+YnZfdmFs LCB2bGVuLCAiIiwgMSk7Ci0rICAgICAgICAodm9pZCkgcHJlcGFyZV9rZXkoYmUsIGFpLCBOVUxM LCAwLCAwLCBwcmVmaXgsIHZhbCwgJmtleSk7Ci0gICAgIH0gZWxzZSB7Ci0gICAgICAgICBkYmxh eWVyX3ZhbHVlX2NvbmNhdChiZSwgJmtleSwgYnVmLCBzaXplb2YoYnVmKSwgcHJlZml4LCBzdHJs ZW4ocHJlZml4KSwKLSAgICAgICAgICAgICAiIiwgMSwgTlVMTCwgMCk7Ci1AQCAtMTgyNCw2ICsx ODU1LDcgQEAgaW5kZXhfcmFuZ2VfcmVhZCgKLSAgICAgcmV0dXJuIGluZGV4X3JhbmdlX3JlYWRf ZXh0KHBiLCBiZSwgdHlwZSwgaW5kZXh0eXBlLCBvcGVyYXRvciwgdmFsLCBuZXh0dmFsLCByYW5n ZSwgdHhuLCBlcnIsIDApOwotIH0KLSAKLSsKLSBzdGF0aWMgaW50Ci0gYWRkb3JkZWxfdmFsdWVz X3N2KAotICAgICBiYWNrZW5kICpiZSwKLUBAIC0xODQyLDE1ICsxODc0LDEwIEBAIGFkZG9yZGVs X3ZhbHVlc19zdigKLSAgICAgaW50IGkgPSAwOwotICAgICBkYmlfdmFsX3Qga2V5ID0gezB9Owot ICAgICBkYmlfdHhuX3QgKmRiX3R4biA9IE5VTEw7Ci0tICAgIHNpemVfdCBwbGVuLCB2bGVuLCBs ZW47Ci0gICAgIGNoYXIgKnRtcGJ1ZiA9IE5VTEw7Ci0gICAgIHNpemVfdCB0bXBidWZsZW4gPSAw OwotLSAgICBjaGFyICpyZWFsYnVmOwotICAgICBjaGFyICpwcmVmaXggPSBOVUxMOwotICAgICBj b25zdCBzdHJ1Y3QgYmVydmFsICpidnA7Ci0tICAgIHN0cnVjdCBiZXJ2YWwgKmhhc2hlZF9idnAg PSBOVUxMOwotLSAgICBzdHJ1Y3QgYmVydmFsICplbmNyeXB0ZWRfYnZwID0gTlVMTDsKLS0gICAg c3RydWN0IGxkYm1pbmZvICpsaSA9IChzdHJ1Y3QgbGRibWluZm8gKiliZS0+YmVfZGF0YWJhc2Ut PnBsZ19wcml2YXRlOwotICAgICBjaGFyICppbmRleF9pZCA9IGdldF9pbmRleF9uYW1lKGJlLCBk YiwgYSk7Ci0gCi0gICAgIHNsYXBpX2xvZ19lcnIoU0xBUElfTE9HX1RSQUNFLCAiYWRkb3JkZWxf dmFsdWVzX3N2IiwgIiVzX3ZhbHVlc1xuIiwKLUBAIC0xODg5LDY2ICsxOTE2LDE0IEBAIGFkZG9y ZGVsX3ZhbHVlc19zdigKLSAgICAgICAgIHJldHVybiAocmMpOwotICAgICB9Ci0gCi0tICAgIHBs ZW4gPSBzdHJsZW4ocHJlZml4KTsKLSAgICAgZm9yIChpID0gMDsgdmFsc1tpXSAhPSBOVUxMOyBp KyspIHsKLSAgICAgICAgIGJ2cCA9IHNsYXBpX3ZhbHVlX2dldF9iZXJ2YWwodmFsc1tpXSk7Ci0g Ci0tICAgICAgICAvKiBIYXNoIGxhcmdlIGluZGV4IGtleSBpZiBuZWNlc3NhcnkgKi8KLS0gICAg ICAgIGlmIChidnAtPmJ2X2xlbiA+PSAgbGktPmxpX21heF9rZXlfbGVuKSB7Ci0tICAgICAgICAg ICAgcmMgPSBhdHRyY3J5cHRfaGFzaF9sYXJnZV9pbmRleF9rZXkoYmUsICZwcmVmaXgsIGEsIGJ2 cCwgJmhhc2hlZF9idnApOwotLSAgICAgICAgICAgIGlmIChyYykgewotLSAgICAgICAgICAgICAg ICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xPR19FUlIsICJpbmRleF9yZWFkX2V4dF9hbGxpZHMiLAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gaGFzaCBsYXJnZSBpbmRl eCBrZXkgZm9yICVzXG4iLCBhLT5haV90eXBlKTsKLS0gICAgICAgICAgICAgICAgYnJlYWs7Ci0t ICAgICAgICAgICAgfSBlbHNlIHsKLS0gICAgICAgICAgICAgICAgYnZwID0gaGFzaGVkX2J2cDsK LS0gICAgICAgICAgICAgICAgcGxlbiA9IHN0cmxlbihwcmVmaXgpOwotLSAgICAgICAgICAgIH0K LS0gICAgICAgIH0KLS0gICAgICAgIC8qIEVuY3J5cHQgdGhlIGluZGV4IGtleSBpZiBuZWNlc3Nh cnkgKi8KLS0gICAgICAgIHsKLS0gICAgICAgICAgICBpZiAoYS0+YWlfYXR0cmNyeXB0ICYmICgw ID09IChmbGFncyAmIEJFX0lOREVYX0RPTlRfRU5DUllQVCkpKSB7Ci0tICAgICAgICAgICAgICAg IHJjID0gYXR0cmNyeXB0X2VuY3J5cHRfaW5kZXhfa2V5KGJlLCBhLCBidnAsICZlbmNyeXB0ZWRf YnZwKTsKLS0gICAgICAgICAgICAgICAgaWYgKHJjKSB7Ci0tICAgICAgICAgICAgICAgICAgICBz bGFwaV9sb2dfZXJyKFNMQVBJX0xPR19FUlIsICJhZGRvcmRlbF92YWx1ZXNfc3YiLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIGVuY3J5cHQgaW5kZXgga2V5 IGZvciAlc1xuIiwgYS0+YWlfdHlwZSk7Ci0tICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAg ICAgICAgICAgICAgICAgICBidnAgPSBlbmNyeXB0ZWRfYnZwOwotLSAgICAgICAgICAgICAgICB9 Ci0tICAgICAgICAgICAgfQotKyAgICAgICAgcmMgPSBwcmVwYXJlX2tleShiZSwgYSwgJnRtcGJ1 ZiwgJnRtcGJ1ZmxlbiwgZmxhZ3MsIHByZWZpeCwgYnZwLCAma2V5KTsKLSsgICAgICAgIGlmIChy YykgewotKyAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgfQotIAotLSAgICAgICAgdmxlbiA9 IGJ2cC0+YnZfbGVuOwotLSAgICAgICAgbGVuID0gcGxlbiArIHZsZW47Ci0tCi0tICAgICAgICBp ZiAobGVuIDwgdG1wYnVmbGVuKSB7Ci0tICAgICAgICAgICAgcmVhbGJ1ZiA9IHRtcGJ1ZjsKLS0g ICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgdG1wYnVmID0gc2xhcGlfY2hfcmVhbGxvYyh0 bXBidWYsIGxlbiArIDEpOwotLSAgICAgICAgICAgIHRtcGJ1ZmxlbiA9IGxlbiArIDE7Ci0tICAg ICAgICAgICAgcmVhbGJ1ZiA9IHRtcGJ1ZjsKLS0gICAgICAgIH0KLS0KLS0gICAgICAgIGFzc2Vy dChyZWFsYnVmKTsgLyogRm9yIGNvdmVyaXR5ICovCi0tICAgICAgICBtZW1jcHkocmVhbGJ1Ziwg cHJlZml4LCBwbGVuKTsKLS0gICAgICAgIG1lbWNweShyZWFsYnVmICsgcGxlbiwgYnZwLT5idl92 YWwsIHZsZW4pOwotLSAgICAgICAgcmVhbGJ1ZltsZW5dID0gJ1wwJzsKLS0gICAgICAgIC8qIEZy ZWUgdGhlIGVuY3J5cHRlZCBiZXJ2YWwgaWYgbmVjZXNzYXJ5ICovCi0tICAgICAgICBpZiAoaGFz aGVkX2J2cCkgewotLSAgICAgICAgICAgIGJlcl9idmZyZWUoaGFzaGVkX2J2cCk7Ci0tICAgICAg ICAgICAgaGFzaGVkX2J2cCA9IE5VTEw7Ci0tICAgICAgICB9Ci0tICAgICAgICBpZiAoZW5jcnlw dGVkX2J2cCkgewotLSAgICAgICAgICAgIGJlcl9idmZyZWUoZW5jcnlwdGVkX2J2cCk7Ci0tICAg ICAgICAgICAgZW5jcnlwdGVkX2J2cCA9IE5VTEw7Ci0tICAgICAgICB9Ci0tICAgICAgICAvKiBz aG91bGQgYmUgb2theSB0byB1c2UgVVNFUk1FTSBoZXJlIGJlY2F1c2Ugd2Uga25vdyB3aGF0Ci0t ICAgICAgICAgKiB0aGUga2V5IGlzIGFuZCBpdCBzaG91bGQgbmV2ZXIgcmV0dXJuIGEgZGlmZmVy ZW50IHZhbHVlCi0tICAgICAgICAgKiB0aGFuIHRoZSBvbmUgd2UgcGFzcyBpbi4KLS0gICAgICAg ICAqLwotLSAgICAgICAgZGJsYXllcl92YWx1ZV9zZXRfYnVmZmVyKGJlLCAma2V5LCByZWFsYnVm LCBwbGVuICsgdmxlbiArIDEpOwotLSAgICAgICAga2V5LnVsZW4gPSB0bXBidWZsZW47Ci0tCi0g ICAgICAgICBpZiAoc2xhcGlfaXNfbG9nbGV2ZWxfc2V0KExEQVBfREVCVUdfVFJBQ0UpKSB7Ci0g ICAgICAgICAgICAgY2hhciBlbmNidWZbQlVGU0laXTsKLSAKLUBAIC0xOTgxLDEwICsxOTU2LDYg QEAgYWRkb3JkZWxfdmFsdWVzX3N2KAotICAgICAgICAgICAgIGxkYm1fbmFzdHkoTkFTVFlfTVNH KCJhZGRvcmRlbF92YWx1ZXNfc3YiKSwgaW5kZXhfaWQsIDExMzAsIHJjKTsKLSAgICAgICAgICAg ICBicmVhazsKLSAgICAgICAgIH0KLS0gICAgICAgIGlmIChOVUxMICE9IGtleS5kcHRyICYmIHJl YWxidWYgIT0ga2V5LmRwdHIpIHsgLyogcmVhbGxvYydlZCAqLwotLSAgICAgICAgICAgIHRtcGJ1 ZiA9IGtleS5kcHRyOwotLSAgICAgICAgICAgIHRtcGJ1ZmxlbiA9IGtleS5zaXplOwotLSAgICAg ICAgfQotICAgICB9Ci0gICAgIGluZGV4X2ZyZWVfcHJlZml4KHByZWZpeCk7Ci0gICAgIGlmICh0 bXBidWYgIT0gTlVMTCkgewotZGlmZiAtLWdpdCBhL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxk Ym0vbGRibV9hdHRyY3J5cHQuYyBiL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vbGRibV9h dHRyY3J5cHQuYwotaW5kZXggMTI0ODEwNDI2Li42NjU1NjMzZmMgMTAwNjQ0Ci0tLS0gYS9sZGFw L3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2xkYm1fYXR0cmNyeXB0LmMKLSsrKyBiL2xkYXAvc2Vy dmVycy9zbGFwZC9iYWNrLWxkYm0vbGRibV9hdHRyY3J5cHQuYwotQEAgLTEwNzksMTUgKzEwNzks MTUgQEAgYXR0cmNyeXB0X2RlY3J5cHRfaW5kZXhfa2V5KGJhY2tlbmQgKmJlLAotICAqICAgICAg ICAgICAgICAgICAgOiAgICAgTlVMTCAtIG5vIGhhc2ggb3IgZmFpbHVyZQotICAqLwotIGludAot LWF0dHJjcnlwdF9oYXNoX2xhcmdlX2luZGV4X2tleShiYWNrZW5kICpiZSwgY2hhciAqKnByZWZp eCwgc3RydWN0IGF0dHJpbmZvICphaSwgY29uc3Qgc3RydWN0IGJlcnZhbCAqaW4sIHN0cnVjdCBi ZXJ2YWwgKipvdXQpCi0rYXR0cmNyeXB0X2hhc2hfbGFyZ2VfaW5kZXhfa2V5KGJhY2tlbmQgKmJl LCBjb25zdCBjaGFyICpwcmVmaXgsIHN0cnVjdCBhdHRyaW5mbyAqYWksIGNvbnN0IHN0cnVjdCBi ZXJ2YWwgKmluLCBzdHJ1Y3QgYmVydmFsICoqb3V0KQotIHsKLSAgICAgaW50IHJldCA9IDA7Ci0g ICAgIHN0cnVjdCBiZXJ2YWwgKm91dF9iZXJ2YWwgPSBOVUxMOwotICAgICBzdHJ1Y3QgbGRibWlu Zm8gKmxpID0gKHN0cnVjdCBsZGJtaW5mbyAqKWJlLT5iZV9kYXRhYmFzZS0+cGxnX3ByaXZhdGU7 Ci0tICAgIGNoYXIgKm5ld19wcmVmaXg7Ci0rICAgIHNpemVfdCBmaW5hbF9rZXlfbGVuID0gSU5E RVhfS0VZX0xFTkdUSChpbi0+YnZfbGVuLCBzdHJsZW4ocHJlZml4KSk7Ci0gCi0gICAgIC8qIElm IHRoZSBpbmRleCBrZXkgaXMgdG9vIGxvbmcgKGkuZSBtZGIgY2FzZSkgd2UgbXVzdCBoYXNoIGl0 ICovCi0tICAgIGlmIChpbi0+YnZfbGVuID49ICBsaS0+bGlfbWF4X2tleV9sZW4pIHsKLSsgICAg aWYgKGZpbmFsX2tleV9sZW4gPj0gIGxpLT5saV9tYXhfa2V5X2xlbikgewotICAgICAgICAgUEsx MUNvbnRleHQgKmMgPSBQSzExX0NyZWF0ZURpZ2VzdENvbnRleHQoU0VDX09JRF9NRDUpOwotICAg ICAgICAgaWYgKGMgIT0gTlVMTCkgewotICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgaGFzaFsz Ml07Ci1AQCAtMTEwMSwxNiArMTEwMSwxMyBAQCBhdHRyY3J5cHRfaGFzaF9sYXJnZV9pbmRleF9r ZXkoYmFja2VuZCAqYmUsIGNoYXIgKipwcmVmaXgsIHN0cnVjdCBhdHRyaW5mbyAqYWksCi0gICAg ICAgICAgICAgICAgIHJldHVybiBFTk9NRU07Ci0gICAgICAgICAgICAgfQotICAgICAgICAgICAg IHNsYXBpX2xvZ19lcnIoU0xBUElfTE9HX1RSQUNFLCAiYXR0cmNyeXB0X2hhc2hfbGFyZ2VfaW5k ZXhfa2V5IiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICJLZXkgbGVuZ2h0ICglbHUpID49 IG1heCBrZXkgbGVuZ2h0ICglbHUpIHNvIGtleSBtdXN0IGJlIGhhc2hlZFxuIiwgaW4tPmJ2X2xl biwgbGktPmxpX21heF9rZXlfbGVuKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICJLZXkg bGVuZ2h0ICglbHUpID49IG1heCBrZXkgbGVuZ2h0ICglbHUpIHNvIGtleSBtdXN0IGJlIGhhc2hl ZFxuIiwgZmluYWxfa2V5X2xlbiwgbGktPmxpX21heF9rZXlfbGVuKTsKLSAgICAgICAgICAgICBz bGFwaV9iZV9zZXRfZmxhZyhiZSwgU0xBUElfQkVfRkxBR19ET05UX0JZUEFTU19GSUxURVJURVNU KTsKLSAgICAgICAgICAgICBQSzExX0RpZ2VzdEJlZ2luKGMpOwotICAgICAgICAgICAgIC8qIENv bXB1dGUgaGFzaCBmb3IgdGhlIGtleSB3aXRob3V0IHRoZSBwcmVmaXggKi8KLSAgICAgICAgICAg ICBQSzExX0RpZ2VzdE9wKGMsICh1bnNpZ25lZCBjaGFyICopaW4tPmJ2X3ZhbCwgaW4tPmJ2X2xl bik7Ci0gICAgICAgICAgICAgUEsxMV9EaWdlc3RGaW5hbChjLCBoYXNoLCAmaGFzaExlbiwgc2l6 ZW9mIGhhc2gpOwotLSAgICAgICAgICAgIC8qIEFkZCBIQVNIX1BSRUZJWCBiZWZvcmUgdGhlIHBy ZWZpeCAqLwotLSAgICAgICAgICAgIG5ld19wcmVmaXggPSBzbGFwaV9jaF9zbXByaW50ZigiJWMl cyIsIEhBU0hfUFJFRklYLCAqcHJlZml4KTsKLS0gICAgICAgICAgICBpbmRleF9mcmVlX3ByZWZp eCgqcHJlZml4KTsKLS0gICAgICAgICAgICAqcHJlZml4ID0gbmV3X3ByZWZpeDsKLSsKLSAgICAg ICAgICAgICAvKiBCdWlsZCB0aGUga2V5OiBoYXNoIHZhbHVlIGluIGhleGEgKi8KLSAgICAgICAg ICAgICBoa2V5ID0gc2xhcGlfY2hfbWFsbG9jKDErMipzaXplb2YgaGFzaCk7Ci0gICAgICAgICAg ICAgb3V0X2JlcnZhbC0+YnZfdmFsID0gaGtleTsKLWRpZmYgLS1naXQgYS9sZGFwL3NlcnZlcnMv c2xhcGQvYmFjay1sZGJtL3Byb3RvLWJhY2stbGRibS5oIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2Jh Y2stbGRibS9wcm90by1iYWNrLWxkYm0uaAotaW5kZXggMzBhN2FhMTFmLi5jODgyZGFjN2IgMTAw NjQ0Ci0tLS0gYS9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL3Byb3RvLWJhY2stbGRibS5o Ci0rKysgYi9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL3Byb3RvLWJhY2stbGRibS5oCi1A QCAtNjIyLDcgKzYyMiw3IEBAIGludCBhdHRyY3J5cHRfZW5jcnlwdF9lbnRyeV9pbnBsYWNlKGJh Y2tlbmQgKmJlLCBjb25zdCBzdHJ1Y3QgYmFja2VudHJ5ICppbm91dCk7Ci0gaW50IGF0dHJjcnlw dF9lbmNyeXB0X2VudHJ5KGJhY2tlbmQgKmJlLCBjb25zdCBzdHJ1Y3QgYmFja2VudHJ5ICppbiwg c3RydWN0IGJhY2tlbnRyeSAqKm91dCk7Ci0gaW50IGF0dHJjcnlwdF9lbmNyeXB0X2luZGV4X2tl eShiYWNrZW5kICpiZSwgc3RydWN0IGF0dHJpbmZvICphaSwgY29uc3Qgc3RydWN0IGJlcnZhbCAq aW4sIHN0cnVjdCBiZXJ2YWwgKipvdXQpOwotIGludCBhdHRyY3J5cHRfZGVjcnlwdF9pbmRleF9r ZXkoYmFja2VuZCAqYmUsIHN0cnVjdCBhdHRyaW5mbyAqYWksIGNvbnN0IHN0cnVjdCBiZXJ2YWwg KmluLCBzdHJ1Y3QgYmVydmFsICoqb3V0KTsKLS1pbnQgYXR0cmNyeXB0X2hhc2hfbGFyZ2VfaW5k ZXhfa2V5KGJhY2tlbmQgKmJlLCBjaGFyICoqcHJlZml4LCBzdHJ1Y3QgYXR0cmluZm8gKmFpLCBj b25zdCBzdHJ1Y3QgYmVydmFsICppbiwgc3RydWN0IGJlcnZhbCAqKm91dCk7Ci0raW50IGF0dHJj cnlwdF9oYXNoX2xhcmdlX2luZGV4X2tleShiYWNrZW5kICpiZSwgY29uc3QgY2hhciAqcHJlZml4 LCBzdHJ1Y3QgYXR0cmluZm8gKmFpLCBjb25zdCBzdHJ1Y3QgYmVydmFsICppbiwgc3RydWN0IGJl cnZhbCAqKm91dCk7Ci0gaW50IGF0dHJjcnlwdF9pbml0KGxkYm1faW5zdGFuY2UgKmxpKTsKLSBp bnQgYXR0cmNyeXB0X2NsZWFudXBfcHJpdmF0ZShsZGJtX2luc3RhbmNlICpsaSk7Ci0gCi1kaWZm IC0tZ2l0IGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL2xvZy5jIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2xv Zy5jCi1pbmRleCA4MGMwNzM4MmEuLjkzMTAxNDk0YiAxMDA2NDQKLS0tLSBhL2xkYXAvc2VydmVy cy9zbGFwZC9sb2cuYwotKysrIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2xvZy5jCi1AQCAtOTMsNiAr OTMsMTAgQEAgc3RhdGljIGludCBzbGFwaV9sb2dfbWFwW10gPSB7Ci0gI2RlZmluZSBGTFVTSCBQ Ul9UUlVFCi0gI2RlZmluZSBOT19GTFVTSCBQUl9GQUxTRQotIAotKyNkZWZpbmUgIEhFWEFEVU1Q X1RBQiA0Ci0rLyogNCBjaGFyYWN0ZXJzIHBlciBieXRlczogIDIgaGV4YSBkaWdpdHMsIDEgc3Bh Y2UgYW5kIHRoZSBhc2NpaSAgKi8KLSsjZGVmaW5lICBIRVhBRFVNUF9CVUZfU0laRSAoNCoxNitI RVhBRFVNUF9UQUIpCi0rCi0gLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gICogUFJPVE9UWVBFUwotICAq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqLwotQEAgLTMxMzMsNiArMzEzNyw0NSBAQCBzbGFwaV9sb2dfYmFja3Ry YWNlKGludCBsb2dsZXZlbCkKLSAgICAgfQotIH0KLSAKLSsvKgotKyAqIER1bXAgYSBtZW1vcnkg YnVmZmVyIGluIGhleGEgYW5kIGFzY2lpIGluIGVycm9yIGxvZwotKyAqCi0rICogYWRkciAtIFRo ZSBtZW1vcnkgYnVmZmVyIGFkZHJlc3MuCi0rICogbGVuIC0gVGhlIG1lbW9yeSBidWZmZXIgbGVu Z2h0LgotKyAqLwotK3ZvaWQKLStzbGFwaV9sb2dfaGV4YWR1bXAoaW50IGxvZ2xldmVsLCBjaGFy ICpmbmFtZSwgY29uc3Qgdm9pZCAqYWRkciwgc2l6ZV90IGxlbikKLSt7Ci0rICAgIGNoYXIgaGV4 ZGlnaXRbXSA9ICIwMTIzNDU2Nzg5QUJDREVGIjsKLSsgICAgY29uc3QgdW5zaWduZWQgY2hhciAq cHQgPSBhZGRyOwotKyAgICBjaGFyIGJ1ZmZbSEVYQURVTVBfQlVGX1NJWkUrMV07Ci0rICAgIHNp emVfdCBvZmZzZXQgPSAwOwotKwotKyAgICBpZiAoIXNsYXBpX2lzX2xvZ2xldmVsX3NldChsb2ds ZXZlbCkpIHsKLSsgICAgICAgIHJldHVybjsKLSsgICAgfQotKyAgICBtZW1zZXQgKGJ1ZmYsICcg JywgSEVYQURVTVBfQlVGX1NJWkUpOwotKyAgICBidWZmW0hFWEFEVU1QX0JVRl9TSVpFXSA9ICdc MCc7Ci0rICAgIHdoaWxlIChsZW4gPiAwKSB7Ci0rICAgICAgICBpbnQgZHBsOwotKyAgICAgICAg Zm9yIChkcGwgPSAwOyBkcGwgPCAxNiAmJiBsZW4+MDsgZHBsKyssIGxlbi0tKSB7Ci0rICAgICAg ICAgICBidWZmWzMqZHBsXSA9IGhleGRpZ2l0WygoKnB0KSA+PiA0KSAmIDB4Zl07Ci0rICAgICAg ICAgICBidWZmWzMqZHBsKzFdID0gaGV4ZGlnaXRbKCpwdCkgJiAweGZdOwotKyAgICAgICAgICAg YnVmZlszKjE2K0hFWEFEVU1QX1RBQitkcGxdID0gKCpwdD49MHgyMCAmJiAqcHQ8MHg3ZikgPyAq cHQgOiAnLic7Ci0rICAgICAgICAgICBwdCsrOwotKyAgICAgICAgfQotKyAgICAgICAgZm9yICg7 ZHBsIDwgMTY7IGRwbCsrKSB7Ci0rICAgICAgICAgICBidWZmWzMqZHBsXSA9ICcgJzsKLSsgICAg ICAgICAgIGJ1ZmZbMypkcGwrMV0gPSAnICc7Ci0rICAgICAgICAgICBidWZmWzMqMTYrSEVYQURV TVBfVEFCK2RwbF0gPSAnICc7Ci0rICAgICAgICB9Ci0rICAgICAgICBzbGFwaV9sb2dfZXJyKGxv Z2xldmVsLCBmbmFtZSwgIlsweCUwOGx4XSAgJXNcbiIsIG9mZnNldCwgYnVmZik7Ci0rICAgICAg ICBvZmZzZXQgKz0gMTY7Ci0rICAgIH0KLSt9Ci0rCi0rCi0rCi0gLyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKgotICogd3JpdGUgaW4gdGhlIGFjY2VzcyBsb2cKLSAqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiov Ci1kaWZmIC0tZ2l0IGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL3NsYXBpLXByaXZhdGUuaCBiL2xkYXAv c2VydmVycy9zbGFwZC9zbGFwaS1wcml2YXRlLmgKLWluZGV4IDcyZjRjZDZmMC4uMmRhMzdmZjZl IDEwMDY0NAotLS0tIGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL3NsYXBpLXByaXZhdGUuaAotKysrIGIv bGRhcC9zZXJ2ZXJzL3NsYXBkL3NsYXBpLXByaXZhdGUuaAotQEAgLTE1MjcsNiArMTUyNyw4IEBA IHZvaWQgc2xhcGlfcGJsb2NrX3NldF90YXNrX3dhcm5pbmcoU2xhcGlfUEJsb2NrICpwYiwgdGFz a193YXJuaW5nIHdhcm5pbmcpOwotIGludCBzbGFwaV9leGlzdHNfb3JfYWRkX2ludGVybmFsKFNs YXBpX0ROICpkbiwgY29uc3QgY2hhciAqZmlsdGVyLCBjb25zdCBjaGFyICplbnRyeSwgY29uc3Qg Y2hhciAqbW9kaWZpZXJfbmFtZSk7Ci0gCi0gdm9pZCBzbGFwaV9sb2dfYmFja3RyYWNlKGludCBs b2dsZXZlbCk7Ci0rdm9pZCBzbGFwaV9sb2dfaGV4YWR1bXAoaW50IGxvZ2xldmVsLCBjaGFyICpm bmFtZSwgY29uc3Qgdm9pZCAqYWRkciwgc2l6ZV90IGxlbik7Ci0rCi0gCi0gLyoKLSAgKiBhY2Nl c3Nsb2cuYwotLS0gCi0yLjUzLjAKLQoKZGlmZiAtLWdpdCBhLzAwNjUtSXNzdWUtNzI3Ny1VSS1G aXgtSmFwYW5lc2UtdHJhbnNsYXRpb24tZm9yLVN1Y2Nlc3NmdS5wYXRjaCBiLzAwNjUtSXNzdWUt NzI3Ny1VSS1GaXgtSmFwYW5lc2UtdHJhbnNsYXRpb24tZm9yLVN1Y2Nlc3NmdS5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzk0MDM3NS4uMDAwMDAwMAotLS0gYS8wMDY1LUlz c3VlLTcyNzctVUktRml4LUphcGFuZXNlLXRyYW5zbGF0aW9uLWZvci1TdWNjZXNzZnUucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSw5MCArMCwwIEBACi1Gcm9tIDMzNmYxYmE3ZGNjODk1OTI5YWMy ZmIyZDZjZDYzMGRkYjY0NWU5NGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTaW1v biBQaWNodWdpbiA8c3BpY2h1Z2lAcmVkaGF0LmNvbT4KLURhdGU6IFdlZCwgMjUgRmViIDIwMjYg MDk6MDU6NDAgLTA4MDAKLVN1YmplY3Q6IFtQQVRDSF0gSXNzdWUgNzI3NyAtIFVJIC0gRml4IEph cGFuZXNlIHRyYW5zbGF0aW9uIGZvciAiU3VjY2Vzc2Z1bGx5Ci0gdXBkYXRlZCBncm91cCIgaW4g Q29ja3BpdCBVSSAoIzcyNzgpCi0KLURlc2NyaXB0aW9uOiBUaGUgSmFwYW5lc2UgdHJhbnNsYXRp b24gZm9yICJTdWNjZXNzZnVsbHkgdXBkYXRlZCBncm91cCIKLWluY29ycmVjdGx5IGRpc3BsYXlz IGEgImZhaWxlZCIgbWVzc2FnZSBpbnN0ZWFkIG9mIGEgInN1Y2NlZWRlZCIgbWVzc2FnZS4KLVRo aXMgaXMgYSBjb3B5LXBhc3RlIGVycm9yIGZyb20gdGhlIGFkamFjZW50IGZhaWx1cmUgbWVzc2Fn ZSB0cmFuc2xhdGlvbi4KLQotRml4ZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS8zODlkcy8zODktZHMt YmFzZS9pc3N1ZXMvNzI3NwotCi1SZXZpZXdlZCBieTogQHZhc2hpcm92IChUaGFua3MhKQotLS0t Ci0gc3JjL2NvY2twaXQvMzg5LWNvbnNvbGUvcG8vamEucG8gfCAxOCArKysrKysrKystLS0tLS0t LS0KLSAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQotCi1k aWZmIC0tZ2l0IGEvc3JjL2NvY2twaXQvMzg5LWNvbnNvbGUvcG8vamEucG8gYi9zcmMvY29ja3Bp dC8zODktY29uc29sZS9wby9qYS5wbwotaW5kZXggMTJjMTBkZWQ0Li4xNjMyMDM5NDAgMTAwNjQ0 Ci0tLS0gYS9zcmMvY29ja3BpdC8zODktY29uc29sZS9wby9qYS5wbwotKysrIGIvc3JjL2NvY2tw aXQvMzg5LWNvbnNvbGUvcG8vamEucG8KLUBAIC0zMjQ3LDcgKzMyNDcsNyBAQCBtc2dpZCAiIgot IG1zZ3N0ciAiIgotICLjg6vjg7zjg4jjg6bjg7zjgrbjgYzjg4fjgqPjg6zjgq/jg4jjg6rjgrXj g7zjg5Djgbjjga7jgqLjgq/jgrvjgrnjgavkvb/nlKjjgafjgY3jgarjgYRJUOOCouODieODrOOC uShJUHY0IOOBviIKLSAi44Gf44GvIElQdjYp44KS6Kit5a6a44GX44G+44GZ44CC44Ov44Kk44Or 44OJ44Kr44O844OJ44GM5L2/55So44Gn44GN44G+44GZ44CC6Kit5a6a44GV44KM44Gm44GE44Gq 44GESVDjgqLjg4kiCi0tIuODrOOCueOBr+aal+m7meeahOOBq+aLkuWQpuOBleOCjOOBvuOBmeOA gihyb290ZG4tYWxsb3ctaXApSVDjgqLjg4njg6zjgrnjgYzjgIFyb290ZG4tYWxsb3ctaXDlsZ4i Ci0rIuODrOOCueOBr+aal+m7meeahOOBq+ioseWPr+OBleOCjOOBvuOBmeOAgihyb290ZG4tZGVu eS1pcClJUOOCouODieODrOOCueOBjOOAgXJvb3Rkbi1hbGxvdy1pcOWxniIKLSAi5oCn44Gocm9v dGRuLWRlbnktaXDlsZ7mgKfjga7kuKHmlrnjgavoqK3lrprjgZXjgozjgabjgYTjgovloLTlkIjj gIHjgqLjgq/jgrvjgrnjga/mi5LlkKbjgZXjgozjgb7jgZnjgIIiCi0gCi0gIzogc3JjL2xpYi9w bHVnaW5zL3Jvb3RETkFjY2Vzc0NvbnRyb2wuanN4OjYwMQotQEAgLTM2NzAsOCArMzY3MCw4IEBA IG1zZ2lkICIiCi0gIlNwZWNpZmllcyBiYWNrZW5kcyBvciBtdWx0aXBsZS1uZXN0ZWQgc3VmZml4 ZXMgZm9yIHRoZSBNZW1iZXJPZiBwbHVnLWluIHRvICIKLSAid29yayBvbiAobWVtYmVyT2ZFbnRy eVNjb3BlKSIKLSBtc2dzdHIgIiIKLS0i44Kw44Or44O844OX44Oh44Oz44OQ44O844GuRE7jgpLo rZjliKXjgZnjgovjgZ/jgoHjgavkvb/nlKjjgZnjgovjgrDjg6vjg7zjg5fjgqjjg7Pjg4jjg6rj ga7lsZ7mgKfjgpLmjIflrprjgZfjgb4iCi0tIuOBmeOAgihtZW1iZXJPZkdyb3VwQXR0cikiCi0r Ik1lbWJlck9m44OX44Op44Kw44Kk44Oz44GM5YuV5L2c44GZ44KL44OQ44OD44Kv44Ko44Oz44OJ 44G+44Gf44Gv44ON44K544OI44GV44KM44Gf44K144OV44Kj44OD44Kv44K544KS5oyH5a6aIgot KyLjgZfjgb7jgZnjgIIobWVtYmVyT2ZFbnRyeVNjb3BlKSIKLSAKLSAjOiBzcmMvbGliL3BsdWdp bnMvbWVtYmVyT2YuanN4OjEzNTMgc3JjL2xpYi9wbHVnaW5zL21lbWJlck9mLmpzeDoxMzk0Ci0g Izogc3JjL2xpYi9wbHVnaW5zL21lbWJlck9mLmpzeDoxNTIzIHNyYy9saWIvcGx1Z2lucy9tZW1i ZXJPZi5qc3g6MTU2NAotQEAgLTU4NzIsNyArNTg3Miw3IEBAIG1zZ3N0ciAiIgotICM6IHNyYy9s aWIvZGF0YWJhc2UvbG9jYWxQd3AuanN4Ojg3OCBzcmMvbGliL2RhdGFiYXNlL2xvY2FsUHdwLmpz eDozMTEyCi0gIzogc3JjL2xpYi9kYXRhYmFzZS9nbG9iYWxQd3AuanN4OjE1OTUKLSBtc2dpZCAi UGFzc3dvcmQgVmFsaWQgRnJvbSIKLS1tc2dzdHIgIuODkeOCueODr+ODvOODieOBruacieWKueac n+mZkCIKLSttc2dzdHIgIuODkeOCueODr+ODvOODieOBruacieWKuemWi+Wni+aXpSIKLSAKLSAj OiBzcmMvbGliL2RhdGFiYXNlL2xvY2FsUHdwLmpzeDo5MDIKLSBtc2dpZCAiQ3JlYXRlIE5ldyBQ b2xpY3kiCi1AQCAtMTA1MDAsNyArMTA1MDAsNyBAQCBtc2dzdHIgIuOCqOODs+ODiOODquWQjeOB ruWkieabtOOBq+aIkOWKn+OBl+OBvuOBl+OBn++8gSIKLSAKLSAjOiBzcmMvbGliL2xkYXBfZWRp dG9yL3dpemFyZHMvb3BlcmF0aW9ucy9yZW5hbWVFbnRyeS5qc3g6ODIKLSBtc2dpZCAiRmFpbGVk IHRvIHJlbmFtZSBlbnRyeSwgZXJyb3I6ICIKLS1tc2dzdHIgIuOCqOODs+ODiOODquOBruWJiumZ pOOBq+WkseaVl+OBl+OBvuOBl+OBn+OAgeOCqOODqeODvDogIgotK21zZ3N0ciAi44Ko44Oz44OI 44Oq5ZCN44Gu5aSJ5pu044Gr5aSx5pWX44GX44G+44GX44Gf44CB44Ko44Op44O8OiAiCi0gCi0g Izogc3JjL2xpYi9sZGFwX2VkaXRvci93aXphcmRzL29wZXJhdGlvbnMvcmVuYW1lRW50cnkuanN4 OjkzCi0gbXNnaWQgIiIKLUBAIC0xNDMwMiw3ICsxNDMwMiw3IEBAIG1zZ3N0ciAi6Kit5a6a44Ki 44OD44OX44OV44Kh44Kk44OrICQwIOOBruaoqemZkOioreWumuOBq+WkseaVl+OBl+OBvuOBl+OB nzogJDEiCi0gCi0gIzogc3JjL2RzTW9kYWxzLmpzeDoyOTkKLSBtc2dpZCAiRmFpbGVkIHRvIHBv cHVsYXRlIGluc3RhbGxhdGlvbiBmaWxlISAkMCIKLS1tc2dzdHIgIuOCpOODs+OCueODiOODvOOD q+ODleOCoeOCpOODq+OBruS9nOaIkOOBq+WkseaVl+OBl+OBvuOBl+OBn++8gSAkMCIKLSttc2dz dHIgIuOCpOODs+OCueODiOODvOODq+ODleOCoeOCpOODq+OBuOOBruODh+ODvOOCv+WFpeWKm+OB q+WkseaVl+OBl+OBvuOBl+OBn++8gSAkMCIKLSAKLSAjOiBzcmMvZHNNb2RhbHMuanN4OjMzNgot IG1zZ2lkICJTdWNjZXNzZnVsbHkgY3JlYXRlZCBpbnN0YW5jZTogc2xhcGQtJDAiCi1AQCAtMTQ4 NjgsMTUgKzE0ODY4LDE1IEBAIG1zZ3N0ciAiIgotIAotICM6IHNyYy9zY2hlbWEuanN4OjE1NTAK LSBtc2dpZCAiRGVsZXRlIEFuIE9iamVjdGNsYXNzIgotLW1zZ3N0ciAi5bGe5oCn44KS5YmK6Zmk IgotK21zZ3N0ciAi44Kq44OW44K444Kn44Kv44OI44Kv44Op44K544KS5YmK6ZmkIgotIAotICM6 IHNyYy9zY2hlbWEuanN4OjE1NTEKLSBtc2dpZCAiQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRl bGV0ZSB0aGlzIE9iamVjdGNsYXNzPyIKLS1tc2dzdHIgIuOBk+OBruOCquODluOCuOOCp+OCr+OD iOOCkuWJiumZpOOBl+OBvuOBmeOBi++8nyIKLSttc2dzdHIgIuOBk+OBruOCquODluOCuOOCp+OC r+ODiOOCr+ODqeOCueOCkuWJiumZpOOBl+OBvuOBmeOBi++8nyIKLSAKLSAjOiBzcmMvc2NoZW1h LmpzeDoxNTUyCi0gbXNnaWQgIkRlbGV0aW5nIG9iamVjdGNsYXNzIC4uLiIKLS1tc2dzdHIgIuOC quODluOCuOOCp+OCr+ODiOOCkuWJiumZpOOBl+OBpuOBhOOBvuOBmS4uLiIKLSttc2dzdHIgIuOC quODluOCuOOCp+OCr+ODiOOCr+ODqeOCueOCkuWJiumZpOOBl+OBpuOBhOOBvuOBmS4uLiIKLSAK LSAjOiBzcmMvc2NoZW1hLmpzeDoxNTYzCi0gbXNnaWQgIkRlbGV0ZSBBbiBBdHRyaWJ1dGUiCi0t LSAKLTIuNTMuMAotCgpkaWZmIC0tZ2l0IGEvMDA2Ni1Jc3N1ZS03Mjg0LUNyZWF0aW5nLWxvY2Fs LXBhc3N3b3JkLXBvbGljeS1zdWNjZWVkcy13LnBhdGNoIGIvMDA2Ni1Jc3N1ZS03Mjg0LUNyZWF0 aW5nLWxvY2FsLXBhc3N3b3JkLXBvbGljeS1zdWNjZWVkcy13LnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCBjMTkyOGExLi4wMDAwMDAwCi0tLSBhLzAwNjYtSXNzdWUtNzI4NC1D cmVhdGluZy1sb2NhbC1wYXNzd29yZC1wb2xpY3ktc3VjY2VlZHMtdy5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDUwICswLDAgQEAKLUZyb20gMTg1MTc4ZWY1MmQ2ZjY2NWE1M2M2OWY3OTRkYWY4 YzJlYzE1YjQ1NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEphbWVzIENoYXBtYW4g PGphY2hhcG1hQHJlZGhhdC5jb20+Ci1EYXRlOiBUaHUsIDI2IEZlYiAyMDI2IDEyOjU1OjQ3ICsw MDAwCi1TdWJqZWN0OiBbUEFUQ0hdIElzc3VlIDcyODQgLSBDcmVhdGluZyBsb2NhbCBwYXNzd29y ZCBwb2xpY3kgc3VjY2VlZHMgd2l0aAotIGluY29ycmVjdCBwYXNzd29yZEluSGlzdG9yeSB2YWx1 ZSAoIzcyODUpCi0KLURlc2NyaXB0aW9uOgotYXR0cl9jaGVja19taW5tYXggdXNlZCBzdHJ0b2wo dmFsdWUsIE5VTEwsIDApLCB3aGljaCBzaWxlbnRseSBjb252ZXJ0ZWQKLWludmFsaWQgc3RyaW5n cyB0byAwLCBwYXNzaW5nIHN1YnNlcXVlbnQgcmFuZ2UgY2hlY2tzLgotCi1GaXg6Ci1BZGQgY2hl Y2tzIGZvciBOVUxMIG9yIGVtcHR5IHZhbHVlcyBhbmQgdXNlcyBzdHJ0b2wgd2l0aCBlbmRwdHIg dG8KLXZhbGlkYXRlIGludCBpbnB1dCBiZWZvcmUgcmFuZ2UgY2hlY2tzLgotCi1GaXhlczogaHR0 cHM6Ly9naXRodWIuY29tLzM4OWRzLzM4OS1kcy1iYXNlL2lzc3Vlcy83Mjg0Ci0KLVJldmlld2Vk IGJ5OiBAdmFzaGlyb3YsIEB0Ym9yZGF6IChUaGFuayB5b3UpCi0tLS0KLSBsZGFwL3NlcnZlcnMv c2xhcGQvYXR0ci5jIHwgMTQgKysrKysrKysrKysrKy0KLSAxIGZpbGUgY2hhbmdlZCwgMTMgaW5z ZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEvbGRhcC9zZXJ2ZXJzL3Ns YXBkL2F0dHIuYyBiL2xkYXAvc2VydmVycy9zbGFwZC9hdHRyLmMKLWluZGV4IGY1ZWEyMmViNS4u Y2EyZWI2MmMzIDEwMDY0NAotLS0tIGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL2F0dHIuYwotKysrIGIv bGRhcC9zZXJ2ZXJzL3NsYXBkL2F0dHIuYwotQEAgLTkzMiw4ICs5MzIsMjAgQEAgYXR0cl9jaGVj a19taW5tYXgoY29uc3QgY2hhciAqYXR0cl9uYW1lLCBjaGFyICp2YWx1ZSwgbG9uZyBtaW52YWws IGxvbmcgbWF4dmFsLAotIHsKLSAgICAgaW50IHJldFZhbCA9IExEQVBfU1VDQ0VTUzsKLSAgICAg bG9uZyB2YWw7Ci0rICAgIGNoYXIgKmVuZHB0ciA9IE5VTEw7Ci0rCi0rICAgIGlmICghdmFsdWUg fHwgKnZhbHVlID09ICdcMCcpIHsKLSsgICAgICAgIHNsYXBpX2NyZWF0ZV9lcnJvcm1zZyhlcnJv cmJ1ZiwgZWJ1ZmxlbiwgIiVzOiBhdHRyIHZhbHVlIGlzIE5VTEwuIiwgYXR0cl9uYW1lKTsKLSsg ICAgICAgIHJldHVybiBMREFQX0NPTlNUUkFJTlRfVklPTEFUSU9OOwotKyAgICB9Ci0rCi0rICAg IGVycm5vID0gMDsKLSsgICAgdmFsID0gc3RydG9sKHZhbHVlLCAmZW5kcHRyLCAwKTsKLSsgICAg aWYgKGVuZHB0ciA9PSB2YWx1ZSB8fCAqZW5kcHRyICE9ICdcMCcgfHwgZXJybm8gIT0gMCkgewot KyAgICAgICAgc2xhcGlfY3JlYXRlX2Vycm9ybXNnKGVycm9yYnVmLCBlYnVmbGVuLCAiJXM6IGlu dmFsaWQgdmFsdWUgXCIlc1wiLiIsIGF0dHJfbmFtZSwgdmFsdWUpOwotKyAgICAgICAgcmV0dXJu IExEQVBfQ09OU1RSQUlOVF9WSU9MQVRJT047Ci0rICAgIH0KLSAKLS0gICAgdmFsID0gc3RydG9s KHZhbHVlLCBOVUxMLCAwKTsKLSAgICAgaWYgKChtaW52YWwgIT0gLTEgPyAodmFsIDwgbWludmFs ID8gMSA6IDApIDogMCkgfHwKLSAgICAgICAgIChtYXh2YWwgIT0gLTEgPyAodmFsID4gbWF4dmFs ID8gMSA6IDApIDogMCkpIHsKLSAgICAgICAgIHNsYXBpX2NyZWF0ZV9lcnJvcm1zZyhlcnJvcmJ1 ZiwgZWJ1ZmxlbiwgIiVzOiBpbnZhbGlkIHZhbHVlIFwiJXNcIi4iLCBhdHRyX25hbWUsIHZhbHVl KTsKLS0tIAotMi41My4wCi0KCmRpZmYgLS1naXQgYS8zODktZHMtYmFzZS5zcGVjIGIvMzg5LWRz LWJhc2Uuc3BlYwppbmRleCBiN2VkZWY4Li5iMWQ2YjlmIDEwMDY0NAotLS0gYS8zODktZHMtYmFz ZS5zcGVjCisrKyBiLzM4OS1kcy1iYXNlLnNwZWMKQEAgLTUzLDEyICs1MywxNSBAQCBFeGNsdWRl QXJjaDogaTY4NgogCiAlaWYgJXt3aXRoIGNsYW5nfQogJWdsb2JhbCB0b29sY2hhaW4gY2xhbmcK LSVnbG9iYWwgX21pc3NpbmdfYnVpbGRfaWRzX3Rlcm1pbmF0ZV9idWlsZCAwCislZ2xvYmFsIF9s dG9fY2ZsYWdzICVuaWwKICVlbmRpZgogCiAjIEJ1aWxkIGNvY2twaXQgcGx1Z2luCiAlYmNvbmQg Y29ja3BpdCAxCiAKKyMgQnVpbGQgSElCUCBwYXNzd29yZCBicmVhY2ggY2hlY2tpbmcgKHJlcXVp cmVzIGxpYmN1cmwpCislYmNvbmQgaGlicCAwCisKICMgZmVkb3JhIDE1IGFuZCBsYXRlciB1c2Vz IHRtcGZpbGVzLmQKICMgb3RoZXJ3aXNlLCBjb21tZW50IHRoaXMgb3V0CiAleyE/d2l0aF90bXBm aWxlc19kOiAlZ2xvYmFsIHdpdGhfdG1wZmlsZXNfZCAle19zeXNjb25mZGlyfS90bXBmaWxlcy5k fQpAQCAtNzUsOSArNzgsOSBAQCBFeGNsdWRlQXJjaDogaTY4NgogCiBTdW1tYXJ5OiAgICAgICAg ICAzODkgRGlyZWN0b3J5IFNlcnZlciAoJXt2YXJpYW50fSkKIE5hbWU6ICAgICAgICAgICAgIDM4 OS1kcy1iYXNlCi1WZXJzaW9uOiAgICAgICAgICAzLjIuMAorVmVyc2lvbjogICAgICAgICAgMy4y LjIKIFJlbGVhc2U6ICAgICAgICAgICV7YXV0b3JlbGVhc2UgLW4gJXs/d2l0aF9hc2FuOi1lIGFz YW59fSV7P2Rpc3R9Ci1MaWNlbnNlOiAgICAgICAgICBHUEwtMy4wLW9yLWxhdGVyIFdJVEggR1BM LTMuMC0zODktZHMtYmFzZS1leGNlcHRpb24gQU5EIChBcGFjaGUtMi4wIE9SIEFwYWNoZS0yLjAg V0lUSCBMTFZNLWV4Y2VwdGlvbiBPUiBNSVQpIEFORCAoQXBhY2hlLTIuMCBPUiBMR1BMLTIuMS1v ci1sYXRlciBPUiBNSVQpIEFORCAoQXBhY2hlLTIuMCBPUiBNSVQpIEFORCAoQ0MtQlktNC4wIEFO RCBNSVQpIEFORCAoTUlUIE9SIEFwYWNoZS0yLjApIEFORCBVbmljb2RlLTMuMCBBTkQgKE1JVCBP UiBDQzAtMS4wKSBBTkQgKE1JVCBPUiBVbmxpY2Vuc2UpIEFORCAwQlNEIEFORCBBcGFjaGUtMi4w IEFORCBCU0QtMi1DbGF1c2UgQU5EIEJTRC0zLUNsYXVzZSBBTkQgSVNDIEFORCBNSVQgQU5EIE1J VCBBTkQgSVNDIEFORCBNUEwtMi4wIEFORCBQU0YtMi4wIEFORCBabGliCitMaWNlbnNlOiAgICAg ICAgICBHUEwtMy4wLW9yLWxhdGVyIFdJVEggR1BMLTMuMC0zODktZHMtYmFzZS1leGNlcHRpb24g QU5EIChBcGFjaGUtMi4wIE9SIEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbiBPUiBNSVQp IEFORCAoQXBhY2hlLTIuMCBPUiBMR1BMLTIuMS1vci1sYXRlciBPUiBNSVQpIEFORCAoQXBhY2hl LTIuMCBPUiBNSVQpIEFORCAoQ0MtQlktNC4wIEFORCBNSVQpIEFORCAoTUlUIE9SIEFwYWNoZS0y LjApIEFORCBVbmljb2RlLTMuMCBBTkQgKE1JVCBPUiBVbmxpY2Vuc2UpIEFORCAwQlNEIEFORCBB cGFjaGUtMi4wIEFORCBCU0QtMy1DbGF1c2UgQU5EIElTQyBBTkQgTUlUIEFORCBNSVQgQU5EIElT QyBBTkQgTVBMLTIuMCBBTkQgWmxpYgogVVJMOiAgICAgICAgICAgICAgaHR0cHM6Ly93d3cucG9y dDM4OS5vcmcKIE9ic29sZXRlczogICAgICAgICV7bmFtZX0tbGVnYWN5LXRvb2xzIDwgMS40LjQu NgogT2Jzb2xldGVzOiAgICAgICAgJXtuYW1lfS1sZWdhY3ktdG9vbHMtZGVidWdpbmZvIDwgMS40 LjQuNgpAQCAtODUsMTMgKzg4LDE1IEBAIFByb3ZpZGVzOiAgICAgICAgIGxkaWYybGRibSA+PSAw CiAKICMjIyMjIEJ1bmRsZWQgY2FyZ28gY3JhdGVzIGxpc3QgLSBTVEFSVCAjIyMjIwogUHJvdmlk ZXM6ICBidW5kbGVkKGNyYXRlKGFsbG9jYXRvci1hcGkyKSkgPSAwLjIuMjEKK1Byb3ZpZGVzOiAg YnVuZGxlZChjcmF0ZShhbnlob3cpKSA9IDEuMC4xMDIKIFByb3ZpZGVzOiAgYnVuZGxlZChjcmF0 ZShhdHR5KSkgPSAwLjIuMTQKLVByb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZShhdXRvY2ZnKSkgPSAx LjUuMAorUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKGF1dG9jZmcpKSA9IDEuNS4xCiBQcm92aWRl czogIGJ1bmRsZWQoY3JhdGUoYmFzZTY0KSkgPSAwLjEzLjEKLVByb3ZpZGVzOiAgYnVuZGxlZChj cmF0ZShiaXRmbGFncykpID0gMi4xMC4wCitQcm92aWRlczogIGJ1bmRsZWQoY3JhdGUoYml0Zmxh Z3MpKSA9IDIuMTIuMQorUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKGJ1bXBhbG8pKSA9IDMuMjAu MwogUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKGJ5dGVvcmRlcikpID0gMS41LjAKIFByb3ZpZGVz OiAgYnVuZGxlZChjcmF0ZShjYmluZGdlbikpID0gMC4yNi4wCi1Qcm92aWRlczogIGJ1bmRsZWQo Y3JhdGUoY2MpKSA9IDEuMi41MQorUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKGNjKSkgPSAxLjIu NjMKIFByb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZShjZmctaWYpKSA9IDEuMC40CiBQcm92aWRlczog IGJ1bmRsZWQoY3JhdGUoY2xhcCkpID0gMy4yLjI1CiBQcm92aWRlczogIGJ1bmRsZWQoY3JhdGUo Y2xhcF9sZXgpKSA9IDAuMi40CkBAIC0xMDEsODQgKzEwNiw5NiBAQCBQcm92aWRlczogIGJ1bmRs ZWQoY3JhdGUoY3Jvc3NiZWFtLXF1ZXVlKSkgPSAwLjMuMTIKIFByb3ZpZGVzOiAgYnVuZGxlZChj cmF0ZShjcm9zc2JlYW0tdXRpbHMpKSA9IDAuOC4yMQogUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRl KGVxdWl2YWxlbnQpKSA9IDEuMC4yCiBQcm92aWRlczogIGJ1bmRsZWQoY3JhdGUoZXJybm8pKSA9 IDAuMy4xNAotUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKGZhc3RyYW5kKSkgPSAyLjMuMAorUHJv dmlkZXM6ICBidW5kbGVkKGNyYXRlKGZhc3RyYW5kKSkgPSAyLjQuMQogUHJvdmlkZXM6ICBidW5k bGVkKGNyYXRlKGZlcm5ldCkpID0gMC4xLjQKLVByb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZShmaW5k LW1zdmMtdG9vbHMpKSA9IDAuMS42CitQcm92aWRlczogIGJ1bmRsZWQoY3JhdGUoZmluZC1tc3Zj LXRvb2xzKSkgPSAwLjEuOQogUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKGZvbGRoYXNoKSkgPSAw LjIuMAogUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKGZvcmVpZ24tdHlwZXMpKSA9IDAuMy4yCiBQ cm92aWRlczogIGJ1bmRsZWQoY3JhdGUoZm9yZWlnbi10eXBlcy1zaGFyZWQpKSA9IDAuMS4xCi1Q cm92aWRlczogIGJ1bmRsZWQoY3JhdGUoZ2V0cmFuZG9tKSkgPSAwLjMuNAotUHJvdmlkZXM6ICBi dW5kbGVkKGNyYXRlKGhhc2hicm93bikpID0gMC4xNi4xCi1Qcm92aWRlczogIGJ1bmRsZWQoY3Jh dGUoaGVjaykpID0gMC40LjEKK1Byb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZShmdXR1cmVzLWNvcmUp KSA9IDAuMy4zMgorUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKGZ1dHVyZXMtdGFzaykpID0gMC4z LjMyCitQcm92aWRlczogIGJ1bmRsZWQoY3JhdGUoZnV0dXJlcy11dGlsKSkgPSAwLjMuMzIKK1By b3ZpZGVzOiAgYnVuZGxlZChjcmF0ZShnZXRyYW5kb20pKSA9IDAuNC4yCitQcm92aWRlczogIGJ1 bmRsZWQoY3JhdGUoaGFzaGJyb3duKSkgPSAwLjE3LjEKK1Byb3ZpZGVzOiAgYnVuZGxlZChjcmF0 ZShoZWNrKSkgPSAwLjUuMAogUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKGhlcm1pdC1hYmkpKSA9 IDAuMS4xOQotUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKGluZGV4bWFwKSkgPSAxLjkuMwotUHJv dmlkZXM6ICBidW5kbGVkKGNyYXRlKGl0b2EpKSA9IDEuMC4xNworUHJvdmlkZXM6ICBidW5kbGVk KGNyYXRlKGlkLWFyZW5hKSkgPSAyLjMuMAorUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKGluZGV4 bWFwKSkgPSAyLjE0LjAKK1Byb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZShpdG9hKSkgPSAxLjAuMTgK IFByb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZShqb2JzZXJ2ZXIpKSA9IDAuMS4zNAotUHJvdmlkZXM6 ICBidW5kbGVkKGNyYXRlKGxpYmMpKSA9IDAuMi4xNzkKLVByb3ZpZGVzOiAgYnVuZGxlZChjcmF0 ZShsaW51eC1yYXctc3lzKSkgPSAwLjExLjAKLVByb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZShsb2cp KSA9IDAuNC4yOQotUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKGxydSkpID0gMC4xNi4zCi1Qcm92 aWRlczogIGJ1bmRsZWQoY3JhdGUobWVtY2hyKSkgPSAyLjcuNgotUHJvdmlkZXM6ICBidW5kbGVk KGNyYXRlKG9uY2VfY2VsbCkpID0gMS4yMS4zCi1Qcm92aWRlczogIGJ1bmRsZWQoY3JhdGUob3Bl bnNzbCkpID0gMC4xMC43NQorUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKGpzLXN5cykpID0gMC4z Ljk5CitQcm92aWRlczogIGJ1bmRsZWQoY3JhdGUobGViMTI4Zm10KSkgPSAwLjEuMAorUHJvdmlk ZXM6ICBidW5kbGVkKGNyYXRlKGxpYmMpKSA9IDAuMi4xODYKK1Byb3ZpZGVzOiAgYnVuZGxlZChj cmF0ZShsaW51eC1yYXctc3lzKSkgPSAwLjEyLjEKK1Byb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZShs b2cpKSA9IDAuNC4zMQorUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKGxydSkpID0gMC4xNi40CitQ cm92aWRlczogIGJ1bmRsZWQoY3JhdGUobWVtY2hyKSkgPSAyLjguMQorUHJvdmlkZXM6ICBidW5k bGVkKGNyYXRlKG9uY2VfY2VsbCkpID0gMS4yMS40CitQcm92aWRlczogIGJ1bmRsZWQoY3JhdGUo b3BlbnNzbCkpID0gMC4xMC44MAogUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKG9wZW5zc2wtbWFj cm9zKSkgPSAwLjEuMQotUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKG9wZW5zc2wtc3lzKSkgPSAw LjkuMTExCitQcm92aWRlczogIGJ1bmRsZWQoY3JhdGUob3BlbnNzbC1zeXMpKSA9IDAuOS4xMTYK IFByb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZShvc19zdHJfYnl0ZXMpKSA9IDYuNi4xCi1Qcm92aWRl czogIGJ1bmRsZWQoY3JhdGUocGFzdGUpKSA9IDAuMS4xOAotUHJvdmlkZXM6ICBidW5kbGVkKGNy YXRlKHBhc3RlLWltcGwpKSA9IDAuMS4xOAotUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKHBpbi1w cm9qZWN0LWxpdGUpKSA9IDAuMi4xNgotUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKHBrZy1jb25m aWcpKSA9IDAuMy4zMgotUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKHByb2MtbWFjcm8taGFjaykp ID0gMC41LjIwK2RlcHJlY2F0ZWQKLVByb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZShwcm9jLW1hY3Jv MikpID0gMS4wLjEwNQotUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKHF1b3RlKSkgPSAxLjAuNDMK LVByb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZShyLWVmaSkpID0gNS4zLjAKLVByb3ZpZGVzOiAgYnVu ZGxlZChjcmF0ZShydXN0aXgpKSA9IDEuMS4zCitQcm92aWRlczogIGJ1bmRsZWQoY3JhdGUocGFz dGUpKSA9IDEuMC4xNQorUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKHBpbi1wcm9qZWN0LWxpdGUp KSA9IDAuMi4xNworUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKHBrZy1jb25maWcpKSA9IDAuMy4z MworUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKHByZXR0eXBsZWFzZSkpID0gMC4yLjM3CitQcm92 aWRlczogIGJ1bmRsZWQoY3JhdGUocHJvYy1tYWNybzIpKSA9IDEuMC4xMDYKK1Byb3ZpZGVzOiAg YnVuZGxlZChjcmF0ZShxdW90ZSkpID0gMS4wLjQ1CitQcm92aWRlczogIGJ1bmRsZWQoY3JhdGUo ci1lZmkpKSA9IDYuMC4wCitQcm92aWRlczogIGJ1bmRsZWQoY3JhdGUocnVzdGl4KSkgPSAxLjEu NAorUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKHJ1c3R2ZXJzaW9uKSkgPSAxLjAuMjIKK1Byb3Zp ZGVzOiAgYnVuZGxlZChjcmF0ZShzZW12ZXIpKSA9IDEuMC4yOAogUHJvdmlkZXM6ICBidW5kbGVk KGNyYXRlKHNlcmRlKSkgPSAxLjAuMjI4CiBQcm92aWRlczogIGJ1bmRsZWQoY3JhdGUoc2VyZGVf Y29yZSkpID0gMS4wLjIyOAogUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKHNlcmRlX2Rlcml2ZSkp ID0gMS4wLjIyOAotUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKHNlcmRlX2pzb24pKSA9IDEuMC4x NDkKLVByb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZShzaGxleCkpID0gMS4zLjAKK1Byb3ZpZGVzOiAg YnVuZGxlZChjcmF0ZShzZXJkZV9qc29uKSkgPSAxLjAuMTUwCitQcm92aWRlczogIGJ1bmRsZWQo Y3JhdGUoc2hsZXgpKSA9IDIuMC4xCitQcm92aWRlczogIGJ1bmRsZWQoY3JhdGUoc2xhYikpID0g MC40LjEyCiBQcm92aWRlczogIGJ1bmRsZWQoY3JhdGUoc21hbGx2ZWMpKSA9IDEuMTUuMQogUHJv dmlkZXM6ICBidW5kbGVkKGNyYXRlKHNwdHIpKSA9IDAuMy4yCiBQcm92aWRlczogIGJ1bmRsZWQo Y3JhdGUoc3Ryc2ltKSkgPSAwLjEwLjAKLVByb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZShzeW4pKSA9 IDIuMC4xMTQKLVByb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZSh0ZW1wZmlsZSkpID0gMy4yNC4wCitQ cm92aWRlczogIGJ1bmRsZWQoY3JhdGUoc3luKSkgPSAyLjAuMTE3CitQcm92aWRlczogIGJ1bmRs ZWQoY3JhdGUodGVtcGZpbGUpKSA9IDMuMjcuMAogUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKHRl cm1jb2xvcikpID0gMS40LjEKIFByb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZSh0ZXh0d3JhcCkpID0g MC4xNi4yCi1Qcm92aWRlczogIGJ1bmRsZWQoY3JhdGUodG9raW8pKSA9IDEuNDkuMAorUHJvdmlk ZXM6ICBidW5kbGVkKGNyYXRlKHRva2lvKSkgPSAxLjUyLjMKIFByb3ZpZGVzOiAgYnVuZGxlZChj cmF0ZSh0b21sKSkgPSAwLjUuMTEKIFByb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZSh0cmFjaW5nKSkg PSAwLjEuNDQKIFByb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZSh0cmFjaW5nLWF0dHJpYnV0ZXMpKSA9 IDAuMS4zMQogUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKHRyYWNpbmctY29yZSkpID0gMC4xLjM2 Ci1Qcm92aWRlczogIGJ1bmRsZWQoY3JhdGUodW5pY29kZS1pZGVudCkpID0gMS4wLjIyCi1Qcm92 aWRlczogIGJ1bmRsZWQoY3JhdGUodXVpZCkpID0gMC44LjIKK1Byb3ZpZGVzOiAgYnVuZGxlZChj cmF0ZSh1bmljb2RlLWlkZW50KSkgPSAxLjAuMjQKK1Byb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZSh1 bmljb2RlLXhpZCkpID0gMC4yLjYKK1Byb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZSh1dWlkKSkgPSAx LjIzLjIKIFByb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZSh2Y3BrZykpID0gMC4yLjE1CiBQcm92aWRl czogIGJ1bmRsZWQoY3JhdGUod2FzaSkpID0gMC4xMS4xK3dhc2lfc25hcHNob3RfcHJldmlldzEK LVByb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZSh3YXNpcDIpKSA9IDEuMC4xK3dhc2lfMC4yLjQKK1By b3ZpZGVzOiAgYnVuZGxlZChjcmF0ZSh3YXNpcDIpKSA9IDEuMC4zK3dhc2lfMC4yLjkKK1Byb3Zp ZGVzOiAgYnVuZGxlZChjcmF0ZSh3YXNpcDMpKSA9IDAuNC4wK3dhc2lfMC4zLjBfcmNfMjAyNl8w MV8wNgorUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKHdhc20tYmluZGdlbikpID0gMC4yLjEyMgor UHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKHdhc20tYmluZGdlbi1tYWNybykpID0gMC4yLjEyMgor UHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKHdhc20tYmluZGdlbi1tYWNyby1zdXBwb3J0KSkgPSAw LjIuMTIyCitQcm92aWRlczogIGJ1bmRsZWQoY3JhdGUod2FzbS1iaW5kZ2VuLXNoYXJlZCkpID0g MC4yLjEyMgorUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKHdhc20tZW5jb2RlcikpID0gMC4yNDQu MAorUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKHdhc20tbWV0YWRhdGEpKSA9IDAuMjQ0LjAKK1By b3ZpZGVzOiAgYnVuZGxlZChjcmF0ZSh3YXNtcGFyc2VyKSkgPSAwLjI0NC4wCiBQcm92aWRlczog IGJ1bmRsZWQoY3JhdGUod2luYXBpKSkgPSAwLjMuOQogUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRl KHdpbmFwaS1pNjg2LXBjLXdpbmRvd3MtZ251KSkgPSAwLjQuMAogUHJvdmlkZXM6ICBidW5kbGVk KGNyYXRlKHdpbmFwaS11dGlsKSkgPSAwLjEuMTEKIFByb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZSh3 aW5hcGkteDg2XzY0LXBjLXdpbmRvd3MtZ251KSkgPSAwLjQuMAogUHJvdmlkZXM6ICBidW5kbGVk KGNyYXRlKHdpbmRvd3MtbGluaykpID0gMC4yLjEKIFByb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZSh3 aW5kb3dzLXN5cykpID0gMC42MS4yCi1Qcm92aWRlczogIGJ1bmRsZWQoY3JhdGUod2l0LWJpbmRn ZW4pKSA9IDAuNDYuMAorUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKHdpdC1iaW5kZ2VuKSkgPSAw LjU3LjEKK1Byb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZSh3aXQtYmluZGdlbi1jb3JlKSkgPSAwLjUx LjAKK1Byb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZSh3aXQtYmluZGdlbi1ydXN0KSkgPSAwLjUxLjAK K1Byb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZSh3aXQtYmluZGdlbi1ydXN0LW1hY3JvKSkgPSAwLjUx LjAKK1Byb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZSh3aXQtY29tcG9uZW50KSkgPSAwLjI0NC4wCitQ cm92aWRlczogIGJ1bmRsZWQoY3JhdGUod2l0LXBhcnNlcikpID0gMC4yNDQuMAogUHJvdmlkZXM6 ICBidW5kbGVkKGNyYXRlKHplcm9pemUpKSA9IDEuOC4yCiBQcm92aWRlczogIGJ1bmRsZWQoY3Jh dGUoemVyb2l6ZV9kZXJpdmUpKSA9IDEuNC4zCi1Qcm92aWRlczogIGJ1bmRsZWQoY3JhdGUoem1p aikpID0gMS4wLjEyCi1Qcm92aWRlczogIGJ1bmRsZWQobnBtKEBlc2xpbnQtY29tbXVuaXR5L2Vz bGludC11dGlscykpID0gNC40LjEKLVByb3ZpZGVzOiAgYnVuZGxlZChucG0oQGVzbGludC1jb21t dW5pdHkvcmVnZXhwcCkpID0gNC4xMi4xCi1Qcm92aWRlczogIGJ1bmRsZWQobnBtKEBlc2xpbnQv ZXNsaW50cmMpKSA9IDIuMS40Ci1Qcm92aWRlczogIGJ1bmRsZWQobnBtKEBlc2xpbnQvanMpKSA9 IDguNTcuMQorUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKHptaWopKSA9IDEuMC4yMQogUHJvdmlk ZXM6ICBidW5kbGVkKG5wbShAZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtY29tbW9uLXR5cGVzKSkg PSAwLjIuMzYKIFByb3ZpZGVzOiAgYnVuZGxlZChucG0oQGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21l LXN2Zy1jb3JlKSkgPSAxLjIuMzYKIFByb3ZpZGVzOiAgYnVuZGxlZChucG0oQGZvcnRhd2Vzb21l L2ZyZWUtc29saWQtc3ZnLWljb25zKSkgPSA1LjE1LjQKIFByb3ZpZGVzOiAgYnVuZGxlZChucG0o QGZvcnRhd2Vzb21lL3JlYWN0LWZvbnRhd2Vzb21lKSkgPSAwLjEuMTkKLVByb3ZpZGVzOiAgYnVu ZGxlZChucG0oQGh1bWFud2hvY29kZXMvY29uZmlnLWFycmF5KSkgPSAwLjEzLjAKLVByb3ZpZGVz OiAgYnVuZGxlZChucG0oQGh1bWFud2hvY29kZXMvbW9kdWxlLWltcG9ydGVyKSkgPSAxLjAuMQot UHJvdmlkZXM6ICBidW5kbGVkKG5wbShAaHVtYW53aG9jb2Rlcy9vYmplY3Qtc2NoZW1hKSkgPSAy LjAuMwotUHJvdmlkZXM6ICBidW5kbGVkKG5wbShAbm9kZWxpYi9mcy5zY2FuZGlyKSkgPSAyLjEu NQotUHJvdmlkZXM6ICBidW5kbGVkKG5wbShAbm9kZWxpYi9mcy5zdGF0KSkgPSAyLjAuNQotUHJv dmlkZXM6ICBidW5kbGVkKG5wbShAbm9kZWxpYi9mcy53YWxrKSkgPSAxLjIuOAogUHJvdmlkZXM6 ICBidW5kbGVkKG5wbShAcGF0dGVybmZseS9wYXR0ZXJuZmx5KSkgPSA1LjQuMQogUHJvdmlkZXM6 ICBidW5kbGVkKG5wbShAcGF0dGVybmZseS9yZWFjdC1jaGFydHMpKSA9IDcuNC4zCiBQcm92aWRl czogIGJ1bmRsZWQobnBtKEBwYXR0ZXJuZmx5L3JlYWN0LWNvcmUpKSA9IDUuNC4xCkBAIC0xODcs MzkgKzIwNCwyNSBAQCBQcm92aWRlczogIGJ1bmRsZWQobnBtKEBwYXR0ZXJuZmx5L3JlYWN0LWxv Zy12aWV3ZXIpKSA9IDUuMy4wCiBQcm92aWRlczogIGJ1bmRsZWQobnBtKEBwYXR0ZXJuZmx5L3Jl YWN0LXN0eWxlcykpID0gNS40LjAKIFByb3ZpZGVzOiAgYnVuZGxlZChucG0oQHBhdHRlcm5mbHkv cmVhY3QtdGFibGUpKSA9IDUuNC4xCiBQcm92aWRlczogIGJ1bmRsZWQobnBtKEBwYXR0ZXJuZmx5 L3JlYWN0LXRva2VucykpID0gNS40LjAKLVByb3ZpZGVzOiAgYnVuZGxlZChucG0oQHR5cGVzL2Qz LWFycmF5KSkgPSAzLjIuMQorUHJvdmlkZXM6ICBidW5kbGVkKG5wbShAdHlwZXMvZDMtYXJyYXkp KSA9IDMuMi4yCiBQcm92aWRlczogIGJ1bmRsZWQobnBtKEB0eXBlcy9kMy1jb2xvcikpID0gMy4x LjMKIFByb3ZpZGVzOiAgYnVuZGxlZChucG0oQHR5cGVzL2QzLWVhc2UpKSA9IDMuMC4yCiBQcm92 aWRlczogIGJ1bmRsZWQobnBtKEB0eXBlcy9kMy1pbnRlcnBvbGF0ZSkpID0gMy4wLjQKLVByb3Zp ZGVzOiAgYnVuZGxlZChucG0oQHR5cGVzL2QzLXBhdGgpKSA9IDMuMS4wCi1Qcm92aWRlczogIGJ1 bmRsZWQobnBtKEB0eXBlcy9kMy1zY2FsZSkpID0gNC4wLjgKLVByb3ZpZGVzOiAgYnVuZGxlZChu cG0oQHR5cGVzL2QzLXNoYXBlKSkgPSAzLjEuNgotUHJvdmlkZXM6ICBidW5kbGVkKG5wbShAdHlw ZXMvZDMtdGltZSkpID0gMy4wLjMKK1Byb3ZpZGVzOiAgYnVuZGxlZChucG0oQHR5cGVzL2QzLXBh dGgpKSA9IDMuMS4xCitQcm92aWRlczogIGJ1bmRsZWQobnBtKEB0eXBlcy9kMy1zY2FsZSkpID0g NC4wLjkKK1Byb3ZpZGVzOiAgYnVuZGxlZChucG0oQHR5cGVzL2QzLXNoYXBlKSkgPSAzLjEuOAor UHJvdmlkZXM6ICBidW5kbGVkKG5wbShAdHlwZXMvZDMtdGltZSkpID0gMy4wLjQKIFByb3ZpZGVz OiAgYnVuZGxlZChucG0oQHR5cGVzL2QzLXRpbWVyKSkgPSAzLjAuMgotUHJvdmlkZXM6ICBidW5k bGVkKG5wbShAdW5nYXAvc3RydWN0dXJlZC1jbG9uZSkpID0gMS4yLjAKIFByb3ZpZGVzOiAgYnVu ZGxlZChucG0oQHh0ZXJtL2FkZG9uLWNhbnZhcykpID0gMC43LjAKIFByb3ZpZGVzOiAgYnVuZGxl ZChucG0oQHh0ZXJtL3h0ZXJtKSkgPSA1LjUuMAotUHJvdmlkZXM6ICBidW5kbGVkKG5wbShhY29y bikpID0gOC4xNC4wCi1Qcm92aWRlczogIGJ1bmRsZWQobnBtKGFjb3JuLWpzeCkpID0gNS4zLjIK LVByb3ZpZGVzOiAgYnVuZGxlZChucG0oYWp2KSkgPSA2LjE0LjAKLVByb3ZpZGVzOiAgYnVuZGxl ZChucG0oYW5zaS1yZWdleCkpID0gNS4wLjEKLVByb3ZpZGVzOiAgYnVuZGxlZChucG0oYW5zaS1z dHlsZXMpKSA9IDQuMy4wCi1Qcm92aWRlczogIGJ1bmRsZWQobnBtKGFyZ3BhcnNlKSkgPSAyLjAu MQotUHJvdmlkZXM6ICBidW5kbGVkKG5wbShhdHRyLWFjY2VwdCkpID0gMi4yLjQKK1Byb3ZpZGVz OiAgYnVuZGxlZChucG0oYXJncGFyc2UpKSA9IDEuMC4xMAorUHJvdmlkZXM6ICBidW5kbGVkKG5w bShhdHRyLWFjY2VwdCkpID0gMi4yLjUKIFByb3ZpZGVzOiAgYnVuZGxlZChucG0oYXV0b2xpbmtl cikpID0gMy4xNi4yCi1Qcm92aWRlczogIGJ1bmRsZWQobnBtKGJhbGFuY2VkLW1hdGNoKSkgPSAx LjAuMgotUHJvdmlkZXM6ICBidW5kbGVkKG5wbShicmFjZS1leHBhbnNpb24pKSA9IDEuMS4xMgot UHJvdmlkZXM6ICBidW5kbGVkKG5wbShjYWxsc2l0ZXMpKSA9IDMuMS4wCi1Qcm92aWRlczogIGJ1 bmRsZWQobnBtKGNoYWxrKSkgPSA0LjEuMgotUHJvdmlkZXM6ICBidW5kbGVkKG5wbShjb2xvci1j b252ZXJ0KSkgPSAyLjAuMQotUHJvdmlkZXM6ICBidW5kbGVkKG5wbShjb2xvci1uYW1lKSkgPSAx LjEuNAotUHJvdmlkZXM6ICBidW5kbGVkKG5wbShjb25jYXQtbWFwKSkgPSAwLjAuMQogUHJvdmlk ZXM6ICBidW5kbGVkKG5wbShjb3JlLXV0aWwtaXMpKSA9IDEuMC4zCi1Qcm92aWRlczogIGJ1bmRs ZWQobnBtKGNyb3NzLXNwYXduKSkgPSA3LjAuNgogUHJvdmlkZXM6ICBidW5kbGVkKG5wbShkMy1h cnJheSkpID0gMy4yLjQKIFByb3ZpZGVzOiAgYnVuZGxlZChucG0oZDMtY29sb3IpKSA9IDMuMS4w CiBQcm92aWRlczogIGJ1bmRsZWQobnBtKGQzLWVhc2UpKSA9IDMuMC4xCi1Qcm92aWRlczogIGJ1 bmRsZWQobnBtKGQzLWZvcm1hdCkpID0gMy4xLjAKK1Byb3ZpZGVzOiAgYnVuZGxlZChucG0oZDMt Zm9ybWF0KSkgPSAzLjEuMgogUHJvdmlkZXM6ICBidW5kbGVkKG5wbShkMy1pbnRlcnBvbGF0ZSkp ID0gMy4wLjEKIFByb3ZpZGVzOiAgYnVuZGxlZChucG0oZDMtcGF0aCkpID0gMy4xLjAKIFByb3Zp ZGVzOiAgYnVuZGxlZChucG0oZDMtc2NhbGUpKSA9IDQuMC4yCkBAIC0yMjcsMTQyICsyMzAsNjkg QEAgUHJvdmlkZXM6ICBidW5kbGVkKG5wbShkMy1zaGFwZSkpID0gMy4yLjAKIFByb3ZpZGVzOiAg YnVuZGxlZChucG0oZDMtdGltZSkpID0gMy4xLjAKIFByb3ZpZGVzOiAgYnVuZGxlZChucG0oZDMt dGltZS1mb3JtYXQpKSA9IDQuMS4wCiBQcm92aWRlczogIGJ1bmRsZWQobnBtKGQzLXRpbWVyKSkg PSAzLjAuMQotUHJvdmlkZXM6ICBidW5kbGVkKG5wbShkZWJ1ZykpID0gNC4zLjcKLVByb3ZpZGVz OiAgYnVuZGxlZChucG0oZGVlcC1pcykpID0gMC4xLjQKIFByb3ZpZGVzOiAgYnVuZGxlZChucG0o ZGVsYXVuYXRvcikpID0gNC4wLjEKIFByb3ZpZGVzOiAgYnVuZGxlZChucG0oZGVsYXVuYXktZmlu ZCkpID0gMC4wLjYKIFByb3ZpZGVzOiAgYnVuZGxlZChucG0oZGVxdWFsKSkgPSAyLjAuMwotUHJv dmlkZXM6ICBidW5kbGVkKG5wbShkb2N0cmluZSkpID0gMy4wLjAKIFByb3ZpZGVzOiAgYnVuZGxl ZChucG0oZW5jb2RpbmcpKSA9IDAuMS4xMwotUHJvdmlkZXM6ICBidW5kbGVkKG5wbShlc2NhcGUt c3RyaW5nLXJlZ2V4cCkpID0gNC4wLjAKLVByb3ZpZGVzOiAgYnVuZGxlZChucG0oZXNsaW50KSkg PSA4LjU3LjEKLVByb3ZpZGVzOiAgYnVuZGxlZChucG0oZXNsaW50LXBsdWdpbi1yZWFjdC1ob29r cykpID0gNC42LjIKLVByb3ZpZGVzOiAgYnVuZGxlZChucG0oZXNsaW50LXNjb3BlKSkgPSA3LjIu MgotUHJvdmlkZXM6ICBidW5kbGVkKG5wbShlc2xpbnQtdmlzaXRvci1rZXlzKSkgPSAzLjQuMwot UHJvdmlkZXM6ICBidW5kbGVkKG5wbShlc3ByZWUpKSA9IDkuNi4xCi1Qcm92aWRlczogIGJ1bmRs ZWQobnBtKGVzcXVlcnkpKSA9IDEuNi4wCi1Qcm92aWRlczogIGJ1bmRsZWQobnBtKGVzcmVjdXJz ZSkpID0gNC4zLjAKLVByb3ZpZGVzOiAgYnVuZGxlZChucG0oZXN0cmF2ZXJzZSkpID0gNS4zLjAK LVByb3ZpZGVzOiAgYnVuZGxlZChucG0oZXN1dGlscykpID0gMi4wLjMKLVByb3ZpZGVzOiAgYnVu ZGxlZChucG0oZmFzdC1kZWVwLWVxdWFsKSkgPSAzLjEuMwotUHJvdmlkZXM6ICBidW5kbGVkKG5w bShmYXN0LWpzb24tc3RhYmxlLXN0cmluZ2lmeSkpID0gMi4xLjAKLVByb3ZpZGVzOiAgYnVuZGxl ZChucG0oZmFzdC1sZXZlbnNodGVpbikpID0gMi4wLjYKLVByb3ZpZGVzOiAgYnVuZGxlZChucG0o ZmFzdHEpKSA9IDEuMTcuMQotUHJvdmlkZXM6ICBidW5kbGVkKG5wbShmaWxlLWVudHJ5LWNhY2hl KSkgPSA2LjAuMQotUHJvdmlkZXM6ICBidW5kbGVkKG5wbShmaWxlLXNlbGVjdG9yKSkgPSAyLjEu MAotUHJvdmlkZXM6ICBidW5kbGVkKG5wbShmaW5kLXVwKSkgPSA1LjAuMAotUHJvdmlkZXM6ICBi dW5kbGVkKG5wbShmbGF0LWNhY2hlKSkgPSAzLjIuMAotUHJvdmlkZXM6ICBidW5kbGVkKG5wbShm bGF0dGVkKSkgPSAzLjMuMQorUHJvdmlkZXM6ICBidW5kbGVkKG5wbShmaWxlLXNlbGVjdG9yKSkg PSAyLjEuMgogUHJvdmlkZXM6ICBidW5kbGVkKG5wbShmb2N1cy10cmFwKSkgPSA3LjUuNAotUHJv dmlkZXM6ICBidW5kbGVkKG5wbShmcy5yZWFscGF0aCkpID0gMS4wLjAKIFByb3ZpZGVzOiAgYnVu ZGxlZChucG0oZ2V0dGV4dC1wYXJzZXIpKSA9IDIuMS4wCi1Qcm92aWRlczogIGJ1bmRsZWQobnBt KGdsb2IpKSA9IDcuMi4zCi1Qcm92aWRlczogIGJ1bmRsZWQobnBtKGdsb2ItcGFyZW50KSkgPSA2 LjAuMgotUHJvdmlkZXM6ICBidW5kbGVkKG5wbShnbG9iYWxzKSkgPSAxMy4yNC4wCi1Qcm92aWRl czogIGJ1bmRsZWQobnBtKGdyYXBoZW1lcikpID0gMS40LjAKLVByb3ZpZGVzOiAgYnVuZGxlZChu cG0oaGFzLWZsYWcpKSA9IDQuMC4wCiBQcm92aWRlczogIGJ1bmRsZWQobnBtKGhvaXN0LW5vbi1y ZWFjdC1zdGF0aWNzKSkgPSAzLjMuMgogUHJvdmlkZXM6ICBidW5kbGVkKG5wbShpY29udi1saXRl KSkgPSAwLjYuMwotUHJvdmlkZXM6ICBidW5kbGVkKG5wbShpZ25vcmUpKSA9IDUuMy4yCi1Qcm92 aWRlczogIGJ1bmRsZWQobnBtKGltcG9ydC1mcmVzaCkpID0gMy4zLjAKLVByb3ZpZGVzOiAgYnVu ZGxlZChucG0oaW11cm11cmhhc2gpKSA9IDAuMS40Ci1Qcm92aWRlczogIGJ1bmRsZWQobnBtKGlu ZmxpZ2h0KSkgPSAxLjAuNgogUHJvdmlkZXM6ICBidW5kbGVkKG5wbShpbmhlcml0cykpID0gMi4w LjQKIFByb3ZpZGVzOiAgYnVuZGxlZChucG0oaW50ZXJubWFwKSkgPSAyLjAuMwotUHJvdmlkZXM6 ICBidW5kbGVkKG5wbShpcy1leHRnbG9iKSkgPSAyLjEuMQotUHJvdmlkZXM6ICBidW5kbGVkKG5w bShpcy1nbG9iKSkgPSA0LjAuMwotUHJvdmlkZXM6ICBidW5kbGVkKG5wbShpcy1wYXRoLWluc2lk ZSkpID0gMy4wLjMKIFByb3ZpZGVzOiAgYnVuZGxlZChucG0oaXNhcnJheSkpID0gMS4wLjAKLVBy b3ZpZGVzOiAgYnVuZGxlZChucG0oaXNleGUpKSA9IDIuMC4wCiBQcm92aWRlczogIGJ1bmRsZWQo bnBtKGpzLXNoYTEpKSA9IDAuNy4wCiBQcm92aWRlczogIGJ1bmRsZWQobnBtKGpzLXNoYTI1Nikp ID0gMC4xMS4wCiBQcm92aWRlczogIGJ1bmRsZWQobnBtKGpzLXRva2VucykpID0gNC4wLjAKLVBy b3ZpZGVzOiAgYnVuZGxlZChucG0oanMteWFtbCkpID0gNC4xLjEKLVByb3ZpZGVzOiAgYnVuZGxl ZChucG0oanNvbi1idWZmZXIpKSA9IDMuMC4xCi1Qcm92aWRlczogIGJ1bmRsZWQobnBtKGpzb24t c2NoZW1hLXRyYXZlcnNlKSkgPSAwLjQuMQogUHJvdmlkZXM6ICBidW5kbGVkKG5wbShqc29uLXN0 YWJsZS1zdHJpbmdpZnktd2l0aG91dC1qc29uaWZ5KSkgPSAxLjAuMQogUHJvdmlkZXM6ICBidW5k bGVkKG5wbShqc29uLXN0cmluZ2lmeS1zYWZlKSkgPSA1LjAuMQotUHJvdmlkZXM6ICBidW5kbGVk KG5wbShrZXl2KSkgPSA0LjUuNAotUHJvdmlkZXM6ICBidW5kbGVkKG5wbShsZXZuKSkgPSAwLjQu MQotUHJvdmlkZXM6ICBidW5kbGVkKG5wbShsb2NhdGUtcGF0aCkpID0gNi4wLjAKLVByb3ZpZGVz OiAgYnVuZGxlZChucG0obG9kYXNoKSkgPSA0LjE3LjIzCi1Qcm92aWRlczogIGJ1bmRsZWQobnBt KGxvZGFzaC5tZXJnZSkpID0gNC42LjIKK1Byb3ZpZGVzOiAgYnVuZGxlZChucG0obG9kYXNoKSkg PSA0LjE4LjEKIFByb3ZpZGVzOiAgYnVuZGxlZChucG0obG9vc2UtZW52aWZ5KSkgPSAxLjQuMAog UHJvdmlkZXM6ICBidW5kbGVkKG5wbShtZW1vaXplLW9uZSkpID0gNS4yLjEKLVByb3ZpZGVzOiAg YnVuZGxlZChucG0obWluaW1hdGNoKSkgPSAzLjEuNQotUHJvdmlkZXM6ICBidW5kbGVkKG5wbSht cykpID0gMi4xLjMKLVByb3ZpZGVzOiAgYnVuZGxlZChucG0obmF0dXJhbC1jb21wYXJlKSkgPSAx LjQuMAogUHJvdmlkZXM6ICBidW5kbGVkKG5wbShvYmplY3QtYXNzaWduKSkgPSA0LjEuMQotUHJv dmlkZXM6ICBidW5kbGVkKG5wbShvbmNlKSkgPSAxLjQuMAotUHJvdmlkZXM6ICBidW5kbGVkKG5w bShvcHRpb25hdG9yKSkgPSAwLjkuNAotUHJvdmlkZXM6ICBidW5kbGVkKG5wbShwLWxpbWl0KSkg PSAzLjEuMAotUHJvdmlkZXM6ICBidW5kbGVkKG5wbShwLWxvY2F0ZSkpID0gNS4wLjAKLVByb3Zp ZGVzOiAgYnVuZGxlZChucG0ocGFyZW50LW1vZHVsZSkpID0gMS4wLjEKLVByb3ZpZGVzOiAgYnVu ZGxlZChucG0ocGF0aC1leGlzdHMpKSA9IDQuMC4wCi1Qcm92aWRlczogIGJ1bmRsZWQobnBtKHBh dGgtaXMtYWJzb2x1dGUpKSA9IDEuMC4xCi1Qcm92aWRlczogIGJ1bmRsZWQobnBtKHBhdGgta2V5 KSkgPSAzLjEuMQotUHJvdmlkZXM6ICBidW5kbGVkKG5wbShwcmVsdWRlLWxzKSkgPSAxLjIuMQot UHJvdmlkZXM6ICBidW5kbGVkKG5wbShwcmV0dGllcikpID0gMy4zLjMKK1Byb3ZpZGVzOiAgYnVu ZGxlZChucG0ocHJldHRpZXIpKSA9IDMuOC4zCiBQcm92aWRlczogIGJ1bmRsZWQobnBtKHByb2Nl c3MtbmV4dGljay1hcmdzKSkgPSAyLjAuMQogUHJvdmlkZXM6ICBidW5kbGVkKG5wbShwcm9wLXR5 cGVzKSkgPSAxNS44LjEKLVByb3ZpZGVzOiAgYnVuZGxlZChucG0ocHVueWNvZGUpKSA9IDIuMy4x Ci1Qcm92aWRlczogIGJ1bmRsZWQobnBtKHF1ZXVlLW1pY3JvdGFzaykpID0gMS4yLjMKIFByb3Zp ZGVzOiAgYnVuZGxlZChucG0ocmVhY3QpKSA9IDE4LjMuMQogUHJvdmlkZXM6ICBidW5kbGVkKG5w bShyZWFjdC1kb20pKSA9IDE4LjMuMQotUHJvdmlkZXM6ICBidW5kbGVkKG5wbShyZWFjdC1kcm9w em9uZSkpID0gMTQuMy41CitQcm92aWRlczogIGJ1bmRsZWQobnBtKHJlYWN0LWRyb3B6b25lKSkg PSAxNC40LjEKIFByb3ZpZGVzOiAgYnVuZGxlZChucG0ocmVhY3QtZmFzdC1jb21wYXJlKSkgPSAz LjIuMgogUHJvdmlkZXM6ICBidW5kbGVkKG5wbShyZWFjdC1pcykpID0gMTYuMTMuMQogUHJvdmlk ZXM6ICBidW5kbGVkKG5wbShyZWFkYWJsZS1zdHJlYW0pKSA9IDIuMy44CiBQcm92aWRlczogIGJ1 bmRsZWQobnBtKHJlbWFya2FibGUpKSA9IDIuMC4xCi1Qcm92aWRlczogIGJ1bmRsZWQobnBtKHJl c29sdmUtZnJvbSkpID0gNC4wLjAKLVByb3ZpZGVzOiAgYnVuZGxlZChucG0ocmV1c2lmeSkpID0g MS4wLjQKLVByb3ZpZGVzOiAgYnVuZGxlZChucG0ocmltcmFmKSkgPSAzLjAuMgotUHJvdmlkZXM6 ICBidW5kbGVkKG5wbShydW4tcGFyYWxsZWwpKSA9IDEuMi4wCiBQcm92aWRlczogIGJ1bmRsZWQo bnBtKHNhZmUtYnVmZmVyKSkgPSA1LjIuMQogUHJvdmlkZXM6ICBidW5kbGVkKG5wbShzYWZlci1i dWZmZXIpKSA9IDIuMS4yCiBQcm92aWRlczogIGJ1bmRsZWQobnBtKHNjaGVkdWxlcikpID0gMC4y My4yCi1Qcm92aWRlczogIGJ1bmRsZWQobnBtKHNoZWJhbmctY29tbWFuZCkpID0gMi4wLjAKLVBy b3ZpZGVzOiAgYnVuZGxlZChucG0oc2hlYmFuZy1yZWdleCkpID0gMy4wLjAKIFByb3ZpZGVzOiAg YnVuZGxlZChucG0oc3ByaW50Zi1qcykpID0gMS4wLjMKIFByb3ZpZGVzOiAgYnVuZGxlZChucG0o c3RyaW5nX2RlY29kZXIpKSA9IDEuMS4xCi1Qcm92aWRlczogIGJ1bmRsZWQobnBtKHN0cmlwLWFu c2kpKSA9IDYuMC4xCi1Qcm92aWRlczogIGJ1bmRsZWQobnBtKHN0cmlwLWpzb24tY29tbWVudHMp KSA9IDMuMS4xCi1Qcm92aWRlczogIGJ1bmRsZWQobnBtKHN1cHBvcnRzLWNvbG9yKSkgPSA3LjIu MAotUHJvdmlkZXM6ICBidW5kbGVkKG5wbSh0YWJiYWJsZSkpID0gNi4yLjAKLVByb3ZpZGVzOiAg YnVuZGxlZChucG0odGV4dC10YWJsZSkpID0gMC4yLjAKK1Byb3ZpZGVzOiAgYnVuZGxlZChucG0o dGFiYmFibGUpKSA9IDYuNC4wCiBQcm92aWRlczogIGJ1bmRsZWQobnBtKHRocm90dGxlLWRlYm91 bmNlKSkgPSA1LjAuMgogUHJvdmlkZXM6ICBidW5kbGVkKG5wbSh0c2xpYikpID0gMi44LjEKLVBy b3ZpZGVzOiAgYnVuZGxlZChucG0odHlwZS1jaGVjaykpID0gMC40LjAKLVByb3ZpZGVzOiAgYnVu ZGxlZChucG0odHlwZS1mZXN0KSkgPSAwLjIwLjIKLVByb3ZpZGVzOiAgYnVuZGxlZChucG0odXJp LWpzKSkgPSA0LjQuMQogUHJvdmlkZXM6ICBidW5kbGVkKG5wbSh1dGlsLWRlcHJlY2F0ZSkpID0g MS4wLjIKLVByb3ZpZGVzOiAgYnVuZGxlZChucG0odXVpZCkpID0gMTAuMC4wCi1Qcm92aWRlczog IGJ1bmRsZWQobnBtKHZpY3RvcnktYXJlYSkpID0gMzcuMy4xCi1Qcm92aWRlczogIGJ1bmRsZWQo bnBtKHZpY3RvcnktYXhpcykpID0gMzcuMy4xCi1Qcm92aWRlczogIGJ1bmRsZWQobnBtKHZpY3Rv cnktYmFyKSkgPSAzNy4zLjEKLVByb3ZpZGVzOiAgYnVuZGxlZChucG0odmljdG9yeS1ib3gtcGxv dCkpID0gMzcuMy4xCi1Qcm92aWRlczogIGJ1bmRsZWQobnBtKHZpY3RvcnktYnJ1c2gtY29udGFp bmVyKSkgPSAzNy4zLjEKLVByb3ZpZGVzOiAgYnVuZGxlZChucG0odmljdG9yeS1jaGFydCkpID0g MzcuMy4xCi1Qcm92aWRlczogIGJ1bmRsZWQobnBtKHZpY3RvcnktY29yZSkpID0gMzcuMy4xCi1Q cm92aWRlczogIGJ1bmRsZWQobnBtKHZpY3RvcnktY3JlYXRlLWNvbnRhaW5lcikpID0gMzcuMy4x Ci1Qcm92aWRlczogIGJ1bmRsZWQobnBtKHZpY3RvcnktY3Vyc29yLWNvbnRhaW5lcikpID0gMzcu My4xCi1Qcm92aWRlczogIGJ1bmRsZWQobnBtKHZpY3RvcnktZ3JvdXApKSA9IDM3LjMuMQotUHJv dmlkZXM6ICBidW5kbGVkKG5wbSh2aWN0b3J5LWxlZ2VuZCkpID0gMzcuMy4xCi1Qcm92aWRlczog IGJ1bmRsZWQobnBtKHZpY3RvcnktbGluZSkpID0gMzcuMy4xCi1Qcm92aWRlczogIGJ1bmRsZWQo bnBtKHZpY3RvcnktcGllKSkgPSAzNy4zLjEKLVByb3ZpZGVzOiAgYnVuZGxlZChucG0odmljdG9y eS1wb2xhci1heGlzKSkgPSAzNy4zLjEKLVByb3ZpZGVzOiAgYnVuZGxlZChucG0odmljdG9yeS1z Y2F0dGVyKSkgPSAzNy4zLjEKLVByb3ZpZGVzOiAgYnVuZGxlZChucG0odmljdG9yeS1zZWxlY3Rp b24tY29udGFpbmVyKSkgPSAzNy4zLjEKLVByb3ZpZGVzOiAgYnVuZGxlZChucG0odmljdG9yeS1z aGFyZWQtZXZlbnRzKSkgPSAzNy4zLjEKLVByb3ZpZGVzOiAgYnVuZGxlZChucG0odmljdG9yeS1z dGFjaykpID0gMzcuMy4xCi1Qcm92aWRlczogIGJ1bmRsZWQobnBtKHZpY3RvcnktdG9vbHRpcCkp ID0gMzcuMy4xCi1Qcm92aWRlczogIGJ1bmRsZWQobnBtKHZpY3RvcnktdmVuZG9yKSkgPSAzNy4z LjEKLVByb3ZpZGVzOiAgYnVuZGxlZChucG0odmljdG9yeS12b3Jvbm9pLWNvbnRhaW5lcikpID0g MzcuMy4xCi1Qcm92aWRlczogIGJ1bmRsZWQobnBtKHZpY3Rvcnktem9vbS1jb250YWluZXIpKSA9 IDM3LjMuMQotUHJvdmlkZXM6ICBidW5kbGVkKG5wbSh3aGljaCkpID0gMi4wLjIKLVByb3ZpZGVz OiAgYnVuZGxlZChucG0od29yZC13cmFwKSkgPSAxLjIuNQotUHJvdmlkZXM6ICBidW5kbGVkKG5w bSh3cmFwcHkpKSA9IDEuMC4yCi1Qcm92aWRlczogIGJ1bmRsZWQobnBtKHlvY3RvLXF1ZXVlKSkg PSAwLjEuMAorUHJvdmlkZXM6ICBidW5kbGVkKG5wbSh1dWlkKSkgPSAxNC4wLjAKK1Byb3ZpZGVz OiAgYnVuZGxlZChucG0odmljdG9yeS1hcmVhKSkgPSAzNy4zLjYKK1Byb3ZpZGVzOiAgYnVuZGxl ZChucG0odmljdG9yeS1heGlzKSkgPSAzNy4zLjYKK1Byb3ZpZGVzOiAgYnVuZGxlZChucG0odmlj dG9yeS1iYXIpKSA9IDM3LjMuNgorUHJvdmlkZXM6ICBidW5kbGVkKG5wbSh2aWN0b3J5LWJveC1w bG90KSkgPSAzNy4zLjYKK1Byb3ZpZGVzOiAgYnVuZGxlZChucG0odmljdG9yeS1icnVzaC1jb250 YWluZXIpKSA9IDM3LjMuNgorUHJvdmlkZXM6ICBidW5kbGVkKG5wbSh2aWN0b3J5LWNoYXJ0KSkg PSAzNy4zLjYKK1Byb3ZpZGVzOiAgYnVuZGxlZChucG0odmljdG9yeS1jb3JlKSkgPSAzNy4zLjYK K1Byb3ZpZGVzOiAgYnVuZGxlZChucG0odmljdG9yeS1jcmVhdGUtY29udGFpbmVyKSkgPSAzNy4z LjYKK1Byb3ZpZGVzOiAgYnVuZGxlZChucG0odmljdG9yeS1jdXJzb3ItY29udGFpbmVyKSkgPSAz Ny4zLjYKK1Byb3ZpZGVzOiAgYnVuZGxlZChucG0odmljdG9yeS1ncm91cCkpID0gMzcuMy42CitQ cm92aWRlczogIGJ1bmRsZWQobnBtKHZpY3RvcnktbGVnZW5kKSkgPSAzNy4zLjYKK1Byb3ZpZGVz OiAgYnVuZGxlZChucG0odmljdG9yeS1saW5lKSkgPSAzNy4zLjYKK1Byb3ZpZGVzOiAgYnVuZGxl ZChucG0odmljdG9yeS1waWUpKSA9IDM3LjMuNgorUHJvdmlkZXM6ICBidW5kbGVkKG5wbSh2aWN0 b3J5LXBvbGFyLWF4aXMpKSA9IDM3LjMuNgorUHJvdmlkZXM6ICBidW5kbGVkKG5wbSh2aWN0b3J5 LXNjYXR0ZXIpKSA9IDM3LjMuNgorUHJvdmlkZXM6ICBidW5kbGVkKG5wbSh2aWN0b3J5LXNlbGVj dGlvbi1jb250YWluZXIpKSA9IDM3LjMuNgorUHJvdmlkZXM6ICBidW5kbGVkKG5wbSh2aWN0b3J5 LXNoYXJlZC1ldmVudHMpKSA9IDM3LjMuNgorUHJvdmlkZXM6ICBidW5kbGVkKG5wbSh2aWN0b3J5 LXN0YWNrKSkgPSAzNy4zLjYKK1Byb3ZpZGVzOiAgYnVuZGxlZChucG0odmljdG9yeS10b29sdGlw KSkgPSAzNy4zLjYKK1Byb3ZpZGVzOiAgYnVuZGxlZChucG0odmljdG9yeS12ZW5kb3IpKSA9IDM3 LjMuNgorUHJvdmlkZXM6ICBidW5kbGVkKG5wbSh2aWN0b3J5LXZvcm9ub2ktY29udGFpbmVyKSkg PSAzNy4zLjYKK1Byb3ZpZGVzOiAgYnVuZGxlZChucG0odmljdG9yeS16b29tLWNvbnRhaW5lcikp ID0gMzcuMy42CiAjIyMjIyBCdW5kbGVkIGNhcmdvIGNyYXRlcyBsaXN0IC0gRU5EICMjIyMjCiAK ICMgQXR0YWNoIHRoZSBidWlsZHJlcXVpcmVzIHRvIHRoZSB0b3AgbGV2ZWwgcGFja2FnZToKQEAg LTQwNiw2ICszMzYsOSBAQCBCdWlsZFJlcXVpcmVzOiAgICBsaWJkYi1kZXZlbAogQnVpbGRSZXF1 aXJlczogICAgbmV0LXNubXAtZGV2ZWwKIEJ1aWxkUmVxdWlyZXM6ICAgIGJ6aXAyLWRldmVsCiBC dWlsZFJlcXVpcmVzOiAgICBvcGVuc3NsLWRldmVsCislaWYgJXt3aXRoIGhpYnB9CitCdWlsZFJl cXVpcmVzOiAgICBsaWJjdXJsLWRldmVsCislZW5kaWYKICMgdGhlIGZvbGxvd2luZyBpcyBmb3Ig dGhlIHBhbSBwYXNzdGhydSBhdXRoIHBsdWctaW4KIEJ1aWxkUmVxdWlyZXM6ICAgIHBhbS1kZXZl bAogQnVpbGRSZXF1aXJlczogICAgc3lzdGVtZC11bml0cwpAQCAtNDIyLDYgKzM1NSw3IEBAIEJ1 aWxkUmVxdWlyZXM6ICAgIHBrZ2NvbmZpZyhsaWJwY3JlMi04KQogQnVpbGRSZXF1aXJlczogICAg YXV0b2NvbmYKIEJ1aWxkUmVxdWlyZXM6ICAgIGF1dG9tYWtlCiBCdWlsZFJlcXVpcmVzOiAgICBs aWJ0b29sCitCdWlsZFJlcXVpcmVzOiAgICBtYWtlCiAjIEZvciBvdXIgZG9jdW1lbnRhdGlvbgog QnVpbGRSZXF1aXJlczogICAgZG94eWdlbgogIyBGb3IgdGVzdHMhCkBAIC00OTksNzYgKzQzMyw5 IEBAIFNvdXJjZTQ6ICAgICAgICAgIDM4OS1kcy1iYXNlLnN5c3VzZXJzCiBTb3VyY2U1OiAgICAg ICAgICBodHRwczovL2ZlZG9yYXBlb3BsZS5vcmcvZ3JvdXBzLzM4OWRzL2xpYmRiLTUuMy4yOC01 OS50YXIuYnoyCiAlZW5kaWYKIAotU291cmNlNjogICAgICAgICAgdmVuZG9yLSV7dmVyc2lvbn0t MTQudGFyLmd6Ci1Tb3VyY2U3OiAgICAgICAgICBDYXJnby0le3ZlcnNpb259LTE0LmxvY2sKLVNv dXJjZTg6ICAgICAgICAgIGNvY2twaXRfZGlzdC0le3ZlcnNpb259LTE0LnRhci5iejIKLQotUGF0 Y2g6ICAgICAgICAgICAgMDAwMS1Jc3N1ZS03MDk2LUR1cmluZy1yZXBsaWNhdGlvbi1vbmxpbmUt dG90YWwtaW5pdC10aGUtLnBhdGNoCi1QYXRjaDogICAgICAgICAgICAwMDAyLUlzc3VlLVJldmlz ZS1wYWdlZC1yZXN1bHQtc2VhcmNoLWxvY2tpbmcucGF0Y2gKLVBhdGNoOiAgICAgICAgICAgIDAw MDMtSXNzdWUtNzEwOC1GaXgtc2h1dGRvd24tY3Jhc2gtaW4tZW50cnktY2FjaGUtZGVzdHJ1Yy5w YXRjaAotUGF0Y2g6ICAgICAgICAgICAgMDAwNC1Jc3N1ZS03MTcyLUluZGV4LW9yZGVyaW5nLW1p c21hdGNoLWFmdGVyLXVwZ3JhZGUtNzE3LnBhdGNoCi1QYXRjaDogICAgICAgICAgICAwMDA1LUlz c3VlLTcxNzItMm5kLUluZGV4LW9yZGVyaW5nLW1pc21hdGNoLWFmdGVyLXVwZ3JhZGUucGF0Y2gK LVBhdGNoOiAgICAgICAgICAgIDAwMDYtSXNzdWUtNjc1My1Qb3J0LXRpY2tldC01NDgtdGVzdC03 MTAxLnBhdGNoCi1QYXRjaDogICAgICAgICAgICAwMDA3LUlzc3VlLTcxNTItbnMtc2xhcGQtZmFp bHMtdG8tc2h1dGRvd24td2hlbi1kZWZlcnJlZC0ucGF0Y2gKLVBhdGNoOiAgICAgICAgICAgIDAw MDgtSXNzdWUtNzE2OS1GaXgtYXV0b21lbWJlcl9wbHVnaW4tQ0ktdGVzdC1mYWlsdXJlcy03MS5w YXRjaAotUGF0Y2g6ICAgICAgICAgICAgMDAwOS1Jc3N1ZS02NzU4LVVzZS1PVUlBLXNlbGVjdG9y cy1mb3ItV2ViVUktcGx1Z2luLXRlc3RzLnBhdGNoCi1QYXRjaDogICAgICAgICAgICAwMDEwLUlz c3VlLTcxOTYtRHluYW1pY0NlcnRpZmljYXRlcy1yZXR1cm5zLWVtcHR5LURFUi03MTkucGF0Y2gK LVBhdGNoOiAgICAgICAgICAgIDAwMTEtSXNzdWUtNzE4OS1EU0JMRTAwMDctZ2VuZXJhdGVzLWlu Y29ycmVjdC1yZW1lZGlhdGlvbi5wYXRjaAotUGF0Y2g6ICAgICAgICAgICAgMDAxMi1Jc3N1ZS03 MTcwLVN1cHBvcnQtb2YtUFFDLWtleXMtNzE4OC5wYXRjaAotUGF0Y2g6ICAgICAgICAgICAgMDAx My1CdW1wLWxvZGFzaC1mcm9tLTQuMTcuMjEtdG8tNC4xNy4yMy1pbi1zcmMtY29ja3BpdC0zLnBh dGNoCi1QYXRjaDogICAgICAgICAgICAwMDE0LUlzc3VlLTcxOTgtV2ViLWNvbnNvbGUtZG9lc24t dC1zaG93LXN1Yi1zdWZmaXgtd2hlbi0ucGF0Y2gKLVBhdGNoOiAgICAgICAgICAgIDAwMTUtSXNz dWUtNzAxNC1tZW1iZXJPZi1pZ25vcmVkLWRlZmVycmVkLXVwZGF0ZXMtd2l0aC1MTS5wYXRjaAot UGF0Y2g6ICAgICAgICAgICAgMDAxNi1Jc3N1ZS03MTg0LWFyZ3BhcnNlLkhlbHBGb3JtYXR0ZXIt X2Zvcm1hdF9hY3Rpb25zX3VzLnBhdGNoCi1QYXRjaDogICAgICAgICAgICAwMDE3LUlzc3VlLTY5 NDctUmV2aXNlLXRpbWUtc2tldy1jaGVjay1pbi1oZWFsdGhjaGVjay10b28ucGF0Y2gKLVBhdGNo OiAgICAgICAgICAgIDAwMTgtSXNzdWUtNzIwMS1TeXNjYWxsLW92ZXJoZWFkLWluLUxNREItaW1w b3J0LXdyaXRlci10aC5wYXRjaAotUGF0Y2g6ICAgICAgICAgICAgMDAxOS1Jc3N1ZS03MDk2LTJu ZC1EdXJpbmctcmVwbGljYXRpb24tb25saW5lLXRvdGFsLWluaXQtLnBhdGNoCi1QYXRjaDogICAg ICAgICAgICAwMDIwLUlzc3VlLTcyMDYtU2hvdWxkLWxvZy13aGV0aGVyLVRMUy1rZXktaXMtUFFD LW9yLW5vdC0ucGF0Y2gKLVBhdGNoOiAgICAgICAgICAgIDAwMjEtSXNzdWUtNzAyNy0ybmQtMzg5 LWRzLWJhc2UtT3BlblNjYW5IdWItTGVha3MtRGV0ZWN0ZS5wYXRjaAotUGF0Y2g6ICAgICAgICAg ICAgMDAyMi1Jc3N1ZS03MjEzLU1EQl9CQURfVkFMU0laRS1lcnJvci13aGlsZS1oYW5kbGluZy1W TFYtLnBhdGNoCi1QYXRjaDogICAgICAgICAgICAwMDIzLUlzc3VlLTY3NTMtUG9ydC10aWNrZXQt NDc3ODEtdGVzdC03MjEwLnBhdGNoCi1QYXRjaDogICAgICAgICAgICAwMDI0LUlzc3VlLTcxOTQt UmVwbC1Mb2ctQW5hbHlzaXMtQWRkLUNTTi1wcm9wYWdhdGlvbi1kZXQucGF0Y2gKLVBhdGNoOiAg ICAgICAgICAgIDAwMjUtSXNzdWUtNjc1My1Qb3J0LXRpY2tldC00ODg5Ni10ZXN0LnBhdGNoCi1Q YXRjaDogICAgICAgICAgICAwMDI2LUlzc3VlLTY4MTAtRml4LVBBTS1QVEEtdGVzdC03MjE5LnBh dGNoCi1QYXRjaDogICAgICAgICAgICAwMDI3LUlzc3VlLTcwNzYtRml4LXJldmVydF9jYWNoZS1u ZXZlci1jYWxsZWQtaW4tbW9kcmRuLTcucGF0Y2gKLVBhdGNoOiAgICAgICAgICAgIDAwMjgtSXNz dWUtNjk1MS1EeW5hbWljLUNlcnRpZmljYXRlLXJlZnJlc2gtcGhhc2UtNC1VcGRhdC5wYXRjaAot UGF0Y2g6ICAgICAgICAgICAgMDAyOS1Jc3N1ZS03MjI0LUNJLVRlc3QtU2ltcGxpZnktdGVzdF9y ZXNlcnZlX2Rlc2NyaXB0b3JfLnBhdGNoCi1QYXRjaDogICAgICAgICAgICAwMDMwLUlzc3VlLTcx NzgtQnVuZGxlZC1qZW1hbGxvYy1mYWlscy10by1idWlsZC13aXRoLUdDQy0ucGF0Y2gKLVBhdGNo OiAgICAgICAgICAgIDAwMzEtSXNzdWUtNzEyMS0ybmQtTGVha1Nhbml0aXplci12YXJpb3VzLWxl YWtzLWR1cmluZy1yZS5wYXRjaAotUGF0Y2g6ICAgICAgICAgICAgMDAzMi1Jc3N1ZS03MjIzLVJl dmVydC1pbmRleC1zY2FuLWxpbWl0cy1mb3Itc3lzdGVtLWluZGV4LnBhdGNoCi1QYXRjaDogICAg ICAgICAgICAwMDMzLUlzc3VlLTcyMjMtQWRkLXVwZ3JhZGUtZnVuY3Rpb24tdG8tcmVtb3ZlLW5z SW5kZXhJREwucGF0Y2gKLVBhdGNoOiAgICAgICAgICAgIDAwMzQtSXNzdWUtNzIyMy1BZGQtdXBn cmFkZS1mdW5jdGlvbi10by1yZW1vdmUtYW5jZXN0b3JpZC5wYXRjaAotUGF0Y2g6ICAgICAgICAg ICAgMDAzNS1Jc3N1ZS03MjIzLURldGVjdC1hbmQtbG9nLWluZGV4LW9yZGVyaW5nLW1pc21hdGNo LWR1LnBhdGNoCi1QYXRjaDogICAgICAgICAgICAwMDM2LUlzc3VlLTcyMjMtQWRkLWRzY3RsLWlu ZGV4LWNoZWNrLWNvbW1hbmQtZm9yLW9mZmxpbmUucGF0Y2gKLVBhdGNoOiAgICAgICAgICAgIDAw MzctSXNzdWUtNzIzMC1SZWdyZXNzaW9uLWluLWhlYWx0Y2hlY2stTnNzQ2hlY2stNzIzNS5wYXRj aAotUGF0Y2g6ICAgICAgICAgICAgMDAzOC1Jc3N1ZS0zNTU1LVVJLUZpeC1hdWRpdC1pc3N1ZS13 aXRoLW5wbS1pc2FhY3MtYnJhY2UtLnBhdGNoCi1QYXRjaDogICAgICAgICAgICAwMDM5LUlzc3Vl LTcyMjEtQ0ktdGVzdHMtZml4LXNvbWUtZmxha3ktdGVzdHMucGF0Y2gKLVBhdGNoOiAgICAgICAg ICAgIDAwNDAtSXNzdWUtNzIzMy10ZXN0X3Byb2R1Y2VfZGl2aXNpb25fYnlfemVyby1mYWlscy13 aXRoLS5wYXRjaAotUGF0Y2g6ICAgICAgICAgICAgMDA0MS1Jc3N1ZS03MjQxLURyb3AtZGF0ZXV0 aWwtNzI0Mi5wYXRjaAotUGF0Y2g6ICAgICAgICAgICAgMDA0Mi1Jc3N1ZS03MjMxLVN5bmMtcmVw bC10ZXN0cy1mYWlsLWluLUZJUFMtbW9kZS1kdWUtdG8tLnBhdGNoCi1QYXRjaDogICAgICAgICAg ICAwMDQzLUlzc3VlLTcyNDgtQ0xJLWF0dHJpYnV0ZS11bmlxdWVuZXNzLWZpeC11c2FnZS1mb3It ZXgucGF0Y2gKLVBhdGNoOiAgICAgICAgICAgIDAwNDQtSXNzdWUtQ0xJLWRzY3RsLWRiMmluZGV4 LW5lZWRzLXNvbWUtaGFyZGVuaW5nLXdpdGgtTS5wYXRjaAotUGF0Y2g6ICAgICAgICAgICAgMDA0 NS1Jc3N1ZS03MjUyLVBRQy1OZWVkLXRvLWl0ZXJhdGUtb24tU0VDT2lkVGFnLWluc3RlYWQtLnBh dGNoCi1QYXRjaDogICAgICAgICAgICAwMDQ2LUlzc3VlLTY5NTEtRHluYW1pYy1DZXJ0aWZpY2Fz LVJlZnJlc2gtQ0ktdGVzdHMtNzIzOC5wYXRjaAotUGF0Y2g6ICAgICAgICAgICAgMDA0Ny1Jc3N1 ZS03MTg0LTJuZC1hcmdwYXJzZS5IZWxwRm9ybWF0dGVyLV9mb3JtYXRfYWN0aW9uLnBhdGNoCi1Q YXRjaDogICAgICAgICAgICAwMDQ4LUlzc3VlLTcyMTMtMm5kLU1EQl9CQURfVkFMU0laRS1lcnJv ci13aGlsZS1oYW5kbGluZy0ucGF0Y2gKLVBhdGNoOiAgICAgICAgICAgIDAwNDktSXNzdWUtNzIy My1Vc2UtbGV4aWNvZ3JhcGhpY2FsLW9yZGVyLWZvci1hbmNlc3RvcmlkLS5wYXRjaAotUGF0Y2g6 ICAgICAgICAgICAgMDA1MC1Jc3N1ZS0zMTM0LUZpeC1idWlsZC1icmVhay03MjYwLnBhdGNoCi1Q YXRjaDogICAgICAgICAgICAwMDUxLUlzc3VlLTcwNjYtNzA1Mi1hbGxvdy1wYXNzd29yZC1oaXN0 b3J5LXRvLWJlLXNldC10by0ucGF0Y2gKLVBhdGNoOiAgICAgICAgICAgIDAwNTItSXNzdWUtNzI0 My1VSS1hZGQtc3VwcG9ydC1mb3ItaG90LWNlcnRpZmljYXRlcy5wYXRjaAotUGF0Y2g6ICAgICAg ICAgICAgMDA1My1Jc3N1ZS02NzU4LUZpeC1FbmFibGUtUmVwbGljYXRpb24tZHJvcGRvd24tbm90 LW9wZW5pLnBhdGNoCi1QYXRjaDogICAgICAgICAgICAwMDU0LUlzc3VlLTcyMjMtUmVtb3ZlLWlu dGVnZXJPcmRlcmluZ01hdGNoLXJlcXVpcmVtZW50LWYucGF0Y2gKLVBhdGNoOiAgICAgICAgICAg IDAwNTUtSXNzdWUtNzIzNi1GaXgtR1NTQVBJLXRlc3RzLTcyMzcucGF0Y2gKLVBhdGNoOiAgICAg ICAgICAgIDAwNTYtSXNzdWUtNjc1My1Qb3J0LXRpY2tldC00OTAzOS10ZXN0LnBhdGNoCi1QYXRj aDogICAgICAgICAgICAwMDU3LUlzc3VlLTU4NTMtVXBkYXRlLWNvbmNyZWFkLXRvLTAuNS4xMC5w YXRjaAotI1BhdGNoOiAgICAgICAgICAgIDAwNTgtSXNzdWUtNzI3MS1wbHVnaW5zLXRoYXQtY3Jl YXRlLXRocmVhZHMtbmVlZC10by11cGRhdC5wYXRjaAotUGF0Y2g6ICAgICAgICAgICAgMDA1OS1J c3N1ZS03MjczLUluLWEtY2hhaW5pbmctZW52aXJvbm1lbnQtYmluZGluZy1hcy1yZW1vLnBhdGNo Ci1QYXRjaDogICAgICAgICAgICAwMDYwLUlzc3VlLTcyNzktVUktRml4LXR5cG8taW4tZXhwb3J0 LWNlcnRpZmljYXRlLWRpYWxvZy0ucGF0Y2gKLVBhdGNoOiAgICAgICAgICAgIDAwNjEtSXNzdWUt NzI3NS1VSS1JbXByb3ZlLXBhc3N3b3JkLXBvbGljeS1maWVsZC12YWxpZGF0aS5wYXRjaAotUGF0 Y2g6ICAgICAgICAgICAgMDA2Mi1Jc3N1ZS03MjQ2LWNvcnJlY3QtZm9ybWF0dGluZy1vZi1HZW4t YXMtQ1NOLWluLWRzY3RsLnBhdGNoCi1QYXRjaDogICAgICAgICAgICAwMDYzLVNlY3VyaXR5LWZp eC1mb3ItQ1ZFLTIwMjUtMTQ5MDUucGF0Y2gKLVBhdGNoOiAgICAgICAgICAgIDAwNjQtSXNzdWUt NzI2Ny1NREJfQkFEX1ZBTFNJWkUtZXJyb3Itd2hlbi11cGRhdGluZy1pbmRleC5wYXRjaAotUGF0 Y2g6ICAgICAgICAgICAgMDA2NS1Jc3N1ZS03Mjc3LVVJLUZpeC1KYXBhbmVzZS10cmFuc2xhdGlv bi1mb3ItU3VjY2Vzc2Z1LnBhdGNoCi1QYXRjaDogICAgICAgICAgICAwMDY2LUlzc3VlLTcyODQt Q3JlYXRpbmctbG9jYWwtcGFzc3dvcmQtcG9saWN5LXN1Y2NlZWRzLXcucGF0Y2gKK1NvdXJjZTY6 ICAgICAgICAgIHZlbmRvci0le3ZlcnNpb259LTEudGFyLmd6CitTb3VyY2U3OiAgICAgICAgICBD YXJnby0le3ZlcnNpb259LTEubG9jaworU291cmNlODogICAgICAgICAgY29ja3BpdF9kaXN0LSV7 dmVyc2lvbn0tMS50YXIuYnoyCiAKICVkZXNjcmlwdGlvbgogMzg5IERpcmVjdG9yeSBTZXJ2ZXIg aXMgYW4gTERBUHYzIGNvbXBsaWFudCBzZXJ2ZXIuICBUaGUgYmFzZSBwYWNrYWdlIGluY2x1ZGVz CkBAIC01ODIsNyArNDQ5LDcgQEAgUGxlYXNlIHNlZSBodHRwOi8vc2VjbGlzdHMub3JnL29zcy1z ZWMvMjAxNi9xMS8zNjMgZm9yIG1vcmUgaW5mb3JtYXRpb24uCiAlaWYgJXt3aXRoIGxpYmJkYl9y b30KICVwYWNrYWdlICAgICAgICByb2JkYi1saWJzCiBTdW1tYXJ5OiAgICAgICAgUmVhZC1vbmx5 IEJlcmtlbGV5IERhdGFiYXNlIExpYnJhcnkKLUxpY2Vuc2U6ICAgICAgICAgIEdQTC0zLjAtb3It bGF0ZXIgV0lUSCBHUEwtMy4wLTM4OS1kcy1iYXNlLWV4Y2VwdGlvbiBBTkQgKEFwYWNoZS0yLjAg T1IgQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uIE9SIE1JVCkgQU5EIChBcGFjaGUtMi4w IE9SIExHUEwtMi4xLW9yLWxhdGVyIE9SIE1JVCkgQU5EIChBcGFjaGUtMi4wIE9SIE1JVCkgQU5E IChDQy1CWS00LjAgQU5EIE1JVCkgQU5EIChNSVQgT1IgQXBhY2hlLTIuMCkgQU5EIFVuaWNvZGUt My4wIEFORCAoTUlUIE9SIENDMC0xLjApIEFORCAoTUlUIE9SIFVubGljZW5zZSkgQU5EIDBCU0Qg QU5EIEFwYWNoZS0yLjAgQU5EIEJTRC0yLUNsYXVzZSBBTkQgQlNELTMtQ2xhdXNlIEFORCBJU0Mg QU5EIE1JVCBBTkQgTUlUIEFORCBJU0MgQU5EIE1QTC0yLjAgQU5EIFBTRi0yLjAgQU5EIFpsaWIK K0xpY2Vuc2U6ICAgICAgICAgIEdQTC0zLjAtb3ItbGF0ZXIgV0lUSCBHUEwtMy4wLTM4OS1kcy1i YXNlLWV4Y2VwdGlvbiBBTkQgKEFwYWNoZS0yLjAgT1IgQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhj ZXB0aW9uIE9SIE1JVCkgQU5EIChBcGFjaGUtMi4wIE9SIExHUEwtMi4xLW9yLWxhdGVyIE9SIE1J VCkgQU5EIChBcGFjaGUtMi4wIE9SIE1JVCkgQU5EIChDQy1CWS00LjAgQU5EIE1JVCkgQU5EIChN SVQgT1IgQXBhY2hlLTIuMCkgQU5EIFVuaWNvZGUtMy4wIEFORCAoTUlUIE9SIFVubGljZW5zZSkg QU5EIDBCU0QgQU5EIEFwYWNoZS0yLjAgQU5EIEJTRC0zLUNsYXVzZSBBTkQgSVNDIEFORCBNSVQg QU5EIE1JVCBBTkQgSVNDIEFORCBNUEwtMi4wIEFORCBabGliCiAKICVkZXNjcmlwdGlvbiAgICBy b2JkYi1saWJzCiBUaGUgJXtuYW1lfS1yb2JkYi1saWIgcGFja2FnZSBjb250YWlucyBhIGxpYnJh cnkgZGVyaXZlZCBmcm9tIHJwbQpAQCAtNzkyLDggKzY1OSw4IEBAIG1rZGlyIC1wIC4uLyV7bGli ZGJfYmFzZV92ZXJzaW9ufQogcHVzaGQgLi4vJXtsaWJkYl9iYXNlX3ZlcnNpb259CiB0YXIgLXhq ZiAgJXtfdG9wZGlyfS9TT1VSQ0VTLyV7bGliZGJfZnVsbF92ZXJzaW9ufS50YXIuYnoyCiBtdiAl e2xpYmRiX2Z1bGxfdmVyc2lvbn0gU09VUkNFUwotc2VkIC1pIC1lICcvXkNGTEFHUz0vcy8tZm5v LXN0cmljdC1hbGlhc2luZy8mIC1zdGQ9Z251OTkvJyAle19idWlsZGRpcn0vJXtuYW1lfS0le3Zl cnNpb259L3JwbS9idW5kbGUtbGliZGIuc3BlYwotcnBtYnVpbGQgIC0tZGVmaW5lICJfdG9wZGly ICRQV0QiIC1iYyAle19idWlsZGRpcn0vJXtuYW1lfS0le3ZlcnNpb259L3JwbS9idW5kbGUtbGli ZGIuc3BlYworc2VkIC1pIC1lICcvXkNGTEFHUz0vcy8tZm5vLXN0cmljdC1hbGlhc2luZy8mIC1z dGQ9Z251OTkvJyAle19idWlsZGRpcn0vJXtuYW1lfS0le3ZlcnNpb259L3JwbS9idW5kbGUtbGli ZGIuc3BlYy5pbgorcnBtYnVpbGQgIC0tZGVmaW5lICJfdG9wZGlyICRQV0QiIC1iYyAle19idWls ZGRpcn0vJXtuYW1lfS0le3ZlcnNpb259L3JwbS9idW5kbGUtbGliZGIuc3BlYy5pbgogcG9wZAog JWVuZGlmCiAKQEAgLTgxOSw2ICs2ODYsOSBAQCBhdXRvcmVjb25mIC1maXYKICVpZiAwJXs/ZmVk b3JhfSA+PSAzNCB8fCAwJXs/cmhlbH0gPj0gOQogICAgICAgICAgICAtLXdpdGgtbGlibGRhcC1y PW5vIFwKICVlbmRpZgorJWlmICV7d2l0aCBoaWJwfQorCSAgLS1lbmFibGUtaGlicCBcCislZW5k aWYKICAgICAgICAgICAgLS1lbmFibGUtY21vY2thCiAKICMgQXZvaWQgIlVua25vd24ga2V5IG5h bWUgJ1hYWCcgaW4gc2VjdGlvbiAnU2VydmljZScsIGlnbm9yaW5nLiIgd2FybmluZ3MgZnJvbSBz eXN0ZW1kIG9uIG9sZGVyIHJlbGVhc2VzCkBAIC05NzAsOSArODQwLDYgQEAgZm9yIGRpciBpbiAi JGluc3RiYXNlIi9zbGFwZC0qIDsgZG8KICAgICBlbHNlCiAgICAgICAgZWNobyAiaW5zdGFuY2Ug JGluc3QgaXMgbm90IHJ1bm5pbmciID4+ICIkb3V0cHV0IiAyPiYxIHx8IDoKICAgICBmaQotICAg ICMgUnVuIGluZGV4LWNoZWNrIG9uIGFsbCBpbnN0YW5jZXMgKHJ1bm5pbmcgb3Igbm90KQotICAg ICMgVGhpcyBmaXhlcyBpbmRleCBvcmRlcmluZyBtaXNtYXRjaGVzIGZyb20gb2xkZXIgdmVyc2lv bnMKLSAgICBkc2N0bCAiJGluc3RfbmFtZSIgaW5kZXgtY2hlY2sgLS1maXggPj4gIiRvdXRwdXQy IiAyPiYxIHx8IDoKICAgICBuaW5zdD0kKChuaW5zdCArIDEpKQogZG9uZQogCkBAIC0xMDA3LDgg Kzg3NCw2IEBAIGZpCiAlcG9zdHVuIHNubXAKICVzeXN0ZW1kX3Bvc3R1bl93aXRoX3Jlc3RhcnQg JXtwa2duYW1lfS1zbm1wLnNlcnZpY2UKIAotZXhpdCAwCi0KICVmaWxlcyAtZiBwbHVnaW5zLmxp c3QKICVpZiAle3dpdGggYnVuZGxlX2plbWFsbG9jfQogJWRvYyBMSUNFTlNFIExJQ0VOU0UuR1BM djMrIExJQ0VOU0Uub3BlbnNzbCBSRUFETUUuamVtYWxsb2MKCmRpZmYgLS1naXQgYS9zb3VyY2Vz IGIvc291cmNlcwppbmRleCBhYjljZGIxLi5jMzJiOGIyIDEwMDY0NAotLS0gYS9zb3VyY2VzCisr KyBiL3NvdXJjZXMKQEAgLTEsNiArMSw2IEBACiBTSEE1MTIgKGplbWFsbG9jLTUuMy4wLnRhci5i ejIpID0gMjI5MDdiYjA1MjA5NmUyY2FmZmI2ZTRlMjM1NDhhZWNjNWNjOTI4M2RjZTQ3Njg5NmEy YjExMjdlZWU2NDE3MGUzNTYyZmEyZTdkYjk1NzEyOTg4MTRhN2EyYzdkZjZlOGQxZmJlMTUyYmQz ZjNiMGMxYWJlYzIyYTJkZTM0YjEKIFNIQTUxMiAobGliZGItNS4zLjI4LTU5LnRhci5iejIpID0g NzMxYTQzNGZhMmU2NDg3ZWJiMDVjNDU4YjA0Mzc0NTZlYjlmNzk5MTI4NGJlYjA4Y2IzZTIxOTMx ZTIzYmRlZGRkZGJjOTViZmFiZTNhMmY5ZjAyOWZlNjljZDMzYTJkNGYwZjVjZTZhOTgxMWU5YzNi OTQwY2I2ZmRlNGJmNzkKLVNIQTUxMiAoMzg5LWRzLWJhc2UtMy4yLjAudGFyLmJ6MikgPSA5ZmY2 YWE1NmIzMDg2M2M2MTlmNGYzMjQzNDRkY2E3MmNjODgzMjM2YmZlOGQ5NDUyMGU4NDY5ZDllMzA2 ZjU0YjM3M2VlMjUwNGVkYTE4ZGNiMGVjZGEzM2Y5MTVhM2U2NGE2ZjNjZGFhOTNhNjliNzRkOTAx Y2FhNDg1NDVlMQotU0hBNTEyIChDYXJnby0zLjIuMC0xNC5sb2NrKSA9IGJkZDcyMjhlYmNjNGQz MTJkNDE0ZjY0MmNmNTlhYzlmNmMwNDNiOTg0ODJlYTZkZWM3ODBhMzgzMGQyNDg0MjkyNjJjNzY5 OTNlZWM3YjUyOTM5ZTlhNzUwNzEzY2VjYjYxOGNiZmY2Yjk0ZmY3ZTNlNzZmNmYyNDBjNzZkMzIy Ci1TSEE1MTIgKHZlbmRvci0zLjIuMC0xNC50YXIuZ3opID0gMjdjYzI2MzBmZWE2YjczZmE0YzUz NzBiNWIzM2VjNWEyZWE4Y2RhZWY3MjYwNGNjNWY0OGY2YzcyNDczYzk0NGU2N2YxMWMxMGZkNmU3 ODIwNDE5YmNiMTk4OGJjM2VlOTA0Y2RhOWIxMWQ0MTRhMGFhNjk0MDk2OGY2N2QzODMKLVNIQTUx MiAoY29ja3BpdF9kaXN0LTMuMi4wLTE0LnRhci5iejIpID0gNzBjN2RjMzc2Njc2ODIxYjA1ZmNh MjU3YmMwMWY4MDIwMmY3Y2VlOTcyMjFmNTJhZDdlYWQyMzdhNTQ3ZWU5NTBlZGYyZWZiOGM1MDFk NDY2ZDg4YjNkY2FmMTY3N2M2YzNhOTZlYzIwNzI5YTY4OTZlZmRjZGFkOWE5NmFlZDAKK1NIQTUx MiAoMzg5LWRzLWJhc2UtMy4yLjIudGFyLmJ6MikgPSAyZDg3MGM0MGY5NDg3ZDEwN2VhNWYxZWJh NjVmMGM3YjA0MWY2ZjZlZmVhODA3Yzg4MWEzMGVlMzg2MTY4ZmRiNjk0YjMwYWFhNDAyYWI0YTNj YTVkNTVkYjlkZTg3N2YyYTM3NWYwYzNiZjQ0ZWY2MzFkZDlmNzE2M2JlYzMzMQorU0hBNTEyICh2 ZW5kb3ItMy4yLjItMS50YXIuZ3opID0gODdjYmM5MTM2YzczZWZjYzMyZGYyMDkzNGIyYWM5YmNj NGExMzBjNGQ5YTZjMjQ1YTVkZGExYzFhNThmYmVlOTdiYTM5YjQ2NmI3MWVkM2Y2YzdhNmU0YzA4 MDE5MjI2Y2FmMDQ1NzIwODUyZmViZjU1OGE5MGRiMWMyOWY5NTQKK1NIQTUxMiAoQ2FyZ28tMy4y LjItMS5sb2NrKSA9IGM0NmVmMGQ2ZDRmY2E4MmZmOWUyYTZmMTFlNWMxMmEzODA4Yzg0OTg2ZWQ2 OGMxMzFiYWQ5YzdhM2E3ZTg0NDFlODhhN2I2MGUyYmYyYmJkNDk1ZjUxMjI5NTUyMGI5ZmQ3NWRl NjIzYjBjZTMzZTU3YjM5ZWQwMjZjZDc5NmVjCitTSEE1MTIgKGNvY2twaXRfZGlzdC0zLjIuMi0x LnRhci5iejIpID0gYzU1MjgxODAyOGZmZmM0ZDBkNTliMGViZjg0ZDUxMDI0ZGMwZWRkYWY3MzNi NWNiYWQyMDdmYmJkOWRkNGYwZTM0YWM0OGU5MTA4MjMzZGU5MGFlMWMyODg0OTliZjIyMjdkOTkw NTNhMDQ1MzEwMTg5NmI5ZDdkY2YwZTg1MDIK