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] rawhide: Bump version to 3.3.0 Date: Thu, 04 Jun 2026 07:05:11 GMT Message-ID: <178055671123.1.4554221671351449944.rpms-389-ds-base-721c66d081e7@fedoraproject.org> List-ID: X-Git-Repo: rpms/389-ds-base X-Git-Branch: rawhide X-Git-Rev: 721c66d081e7690cb2200bd830b2172d3b7952ff QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvMzg5LWRzLWJhc2UK QnJhbmNoIDogcmF3aGlkZQpDb21taXQgOiA3MjFjNjZkMDgxZTc2OTBjYjIyMDBiZDgzMGIyMTcy ZDNiNzk1MmZmCkF1dGhvciA6IFZpa3RvciBBc2hpcm92IDx2YXNoaXJvdkByZWRoYXQuY29tPgpE YXRlICAgOiAyMDI2LTA2LTA0VDA5OjA0OjUxKzAyOjAwClN0YXRzICA6ICs2NC8tMjI5OTUgaW4g NjggZmlsZShzKQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zLzM4 OS1kcy1iYXNlL2MvNzIxYzY2ZDA4MWU3NjkwY2IyMjAwYmQ4MzBiMjE3MmQzYjc5NTJmZj9icmFu Y2g9cmF3aGlkZQoKTG9nOgpCdW1wIHZlcnNpb24gdG8gMy4zLjAKCi0tLQpkaWZmIC0tZ2l0IGEv MDAwMS1Jc3N1ZS03MDk2LUR1cmluZy1yZXBsaWNhdGlvbi1vbmxpbmUtdG90YWwtaW5pdC10aGUt LnBhdGNoIGIvMDAwMS1Jc3N1ZS03MDk2LUR1cmluZy1yZXBsaWNhdGlvbi1vbmxpbmUtdG90YWwt aW5pdC10aGUtLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNTc5MmI2Li4w MDAwMDAwCi0tLSBhLzAwMDEtSXNzdWUtNzA5Ni1EdXJpbmctcmVwbGljYXRpb24tb25saW5lLXRv dGFsLWluaXQtdGhlLS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMxOCArMCwwIEBACi1Gcm9t IDFjOWM1MzU4ODhiOWE4NTAwOTU3OTQ3ODdkNjc5MDBiMDQ5MjRhNzYgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCi1Gcm9tOiB0Ym9yZGF6IDx0Ym9yZGF6QHJlZGhhdC5jb20+Ci1EYXRlOiBXZWQs IDcgSmFuIDIwMjYgMTE6MjE6MTIgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gSXNzdWUgNzA5NiAt IER1cmluZyByZXBsaWNhdGlvbiBvbmxpbmUgdG90YWwgaW5pdCB0aGUKLSBmdW5jdGlvbiBpZGxf aWRfaXNfaW5faWRsaXN0IGlzIG5vdCBzY2FsaW5nIHdpdGggbGFyZ2UgZGF0YWJhc2UgKCM3MTQ1 KQotCi1CdWcgZGVzY3JpcHRpb246Ci0JRHVyaW5nIGEgb25saW5lIHRvdGFsIGluaXRpYWxpemF0 aW9uLCB0aGUgc3VwcGxpZXIgc29ydHMKLQl0aGUgY2FuZGlkYXRlIGxpc3Qgb2YgZW50cmllcyBz byB0aGF0IHRoZSBwYXJlbnRzIGFyZSBzZW50IGJlZm9yZQotCWNoaWxkcmVuIGVudHJpZXMuCi0J V2l0aCBsYXJnZSBEQiB0aGUgSUQgYXJyYXkgdXNlZCBmb3IgdGhlIHNvcnRpbmcgaXMgbm90Ci0J c2NhbGluZy4gSXQgdGFrZXMgc28gbG9uZyB0byBidWlsZCB0aGUgY2FuZGlkYXRlIGxpc3QgdGhh dAotCXRoZSBjb25uZWN0aW9uIGdldHMgY2xvc2VkCi0KLUZpeCBkZXNjcmlwdGlvbjoKLSAgICAg ICAgSW5zdGVhZCBvZiB1c2luZyBhbiBJRCBhcnJheSwgdXNlcyBhIGxpc3Qgb2YgSUQgcmFuZ2Vz Ci0KLWZpeGVzOiAjNzA5NgotCi1SZXZpZXdlZCBieTogTWFyayBSZXlub2xkcywgUGllcnJlIFJv Z2llciAoVGhhbmtzICEhKQotLS0tCi0gbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9iYWNr LWxkYm0uaCAgICAgIHwgIDEyICsrCi0gbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9pZGxf Y29tbW9uLmMgICAgIHwgMTYzICsrKysrKysrKysrKysrKysrKwotIGxkYXAvc2VydmVycy9zbGFw ZC9iYWNrLWxkYm0vaWRsX25ldy5jICAgICAgICB8ICAzMCArKy0tCi0gLi4uL3NlcnZlcnMvc2xh cGQvYmFjay1sZGJtL3Byb3RvLWJhY2stbGRibS5oIHwgICAzICsKLSA0IGZpbGVzIGNoYW5nZWQs IDE4OSBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2xkYXAv c2VydmVycy9zbGFwZC9iYWNrLWxkYm0vYmFjay1sZGJtLmggYi9sZGFwL3NlcnZlcnMvc2xhcGQv YmFjay1sZGJtL2JhY2stbGRibS5oCi1pbmRleCAxYmMzNjcyMGQuLmIxODdjMjZiYyAxMDA2NDQK LS0tLSBhL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vYmFjay1sZGJtLmgKLSsrKyBiL2xk YXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vYmFjay1sZGJtLmgKLUBAIC0yODIsNiArMjgyLDE4 IEBAIHR5cGVkZWYgc3RydWN0IF9pZGxpc3Rfc2V0Ci0gI2RlZmluZSBJTkRJUkVDVF9CTE9DSyhp ZGwpICgoaWRsKS0+Yl9uaWRzID09IElOREJMT0NLKQotICNkZWZpbmUgSURMX05JRFMoaWRsKSAg ICAgICAoaWRsID8gKGlkbCktPmJfbmlkcyA6IChOSURTKTApCi0gCi0rLyoKLSsgKiB1c2VkIGJ5 IHRoZSBzdXBwbGllciBkdXJpbmcgb25saW5lIHRvdGFsIGluaXQKLSsgKiBpdCBzdG9yZXMgdGhl IHJhbmdlcyBvZiBJRCB0aGF0IGFyZSBhbHJlYWR5IHByZXNlbnQKLSsgKiBpbiB0aGUgY2FuZGlk YXRlIGxpc3QgKCdwYXJlbnRpZD49MScpCi0rICovCi0rdHlwZWRlZiBzdHJ1Y3QgSWRSYW5nZSB7 Ci0rICAgIElEIGZpcnN0OwotKyAgICBJRCBsYXN0OwotKyAgICBzdHJ1Y3QgSWRSYW5nZSAqbmV4 dDsKLSt9IElkUmFuZ2VfdDsKLSsKLSsKLSB0eXBlZGVmIHNpemVfdCBpZGxfaXRlcmF0b3I7Ci0g Ci0gLyogc21hbGwgaGFzaHRhYmxlIGltcGxlbWVudGF0aW9uIHVzZWQgaW4gdGhlIGVudHJ5IGNh Y2hlIC0tIHRoZSB0YWJsZQotZGlmZiAtLWdpdCBhL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxk Ym0vaWRsX2NvbW1vbi5jIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9pZGxfY29tbW9u LmMKLWluZGV4IGZjYjBlY2U0Yi4uZmRjOWI0ZTY3IDEwMDY0NAotLS0tIGEvbGRhcC9zZXJ2ZXJz L3NsYXBkL2JhY2stbGRibS9pZGxfY29tbW9uLmMKLSsrKyBiL2xkYXAvc2VydmVycy9zbGFwZC9i YWNrLWxkYm0vaWRsX2NvbW1vbi5jCi1AQCAtMTcyLDYgKzE3MiwxNjkgQEAgaWRsX21pbihJRExp c3QgKmEsIElETGlzdCAqYikKLSAgICAgcmV0dXJuIChhLT5iX25pZHMgPiBiLT5iX25pZHMgPyBi IDogYSk7Ci0gfQotIAotKy8qCi0rICogVGhpcyBpcyBhIGZhc3RlciB2ZXJzaW9uIG9mIGlkbF9p ZF9pc19pbl9pZGxpc3QuCi0rICogaWRsX2lkX2lzX2luX2lkbGlzdCB1c2VzIGFuIGFycmF5IG9m IElEIHNvIGxvb2t1cCBpcyBleHBlbnNpdmUKLSsgKiBpZGxfaWRfaXNfaW5faWRsaXN0X3Jhbmdl cyB1c2VzIGEgbGlzdCBvZiByYW5nZXMgb2YgSUQgbG9va3VwIGlzIGZhc3RlcgotKyAqIHJldHVy bnMKLSsgKiAgIDE6ICdpZCcgaXMgcHJlc2VudCBpbiBpZHJhbmdlX2xpc3QKLSsgKiAgIDA6ICdp ZCcgaXMgbm90IHByZXNlbnQgaW4gaWRyYW5nZV9saXN0Ci0rICovCi0raW50Ci0raWRsX2lkX2lz X2luX2lkbGlzdF9yYW5nZXMoSURMaXN0ICppZGwsIElkUmFuZ2VfdCAqaWRyYW5nZV9saXN0LCBJ RCBpZCkKLSt7Ci0rICAgIElkUmFuZ2VfdCAqcmFuZ2UgPSBpZHJhbmdlX2xpc3Q7Ci0rICAgIGlu dCBmb3VuZCA9IDA7Ci0rCi0rICAgIGlmIChOVUxMID09IGlkbCB8fCBOT0lEID09IGlkKSB7Ci0r ICAgICAgICByZXR1cm4gMDsgLyogbm90IGluIHRoZSBsaXN0ICovCi0rICAgIH0KLSsgICAgaWYg KEFMTElEUyhpZGwpKSB7Ci0rICAgICAgICByZXR1cm4gMTsgLyogaW4gdGhlIGxpc3QgKi8KLSsg ICAgfQotKwotKyAgICBmb3IoO3JhbmdlOyByYW5nZSA9IHJhbmdlLT5uZXh0KSB7Ci0rICAgICAg ICBpZiAoaWQgPiByYW5nZS0+bGFzdCkgewotKyAgICAgICAgICAgIC8qIGNoZWNrIGlmIGl0IGJl bG9uZ3MgdG8gdGhlIG5leHQgcmFuZ2UgKi8KLSsgICAgICAgICAgICBjb250aW51ZTsKLSsgICAg ICAgIH0KLSsgICAgICAgIGlmIChpZCA+PSByYW5nZS0+Zmlyc3QpIHsKLSsgICAgICAgICAgICAv KiBJdCBiZWxvbmdzIHRvIHRoYXQgcmFuZ2UgW2ZpcnN0Li5sYXN0IF0gKi8KLSsgICAgICAgICAg ICBmb3VuZCA9IDE7Ci0rICAgICAgICAgICAgYnJlYWs7Ci0rICAgICAgICB9IGVsc2UgewotKyAg ICAgICAgICAgIC8qIHRoaXMgcmFuZ2UgaXMgYWZ0ZXIgaWQgKi8KLSsgICAgICAgICAgICBicmVh azsKLSsgICAgICAgIH0KLSsgICAgfQotKyAgICByZXR1cm4gZm91bmQ7Ci0rfQotKwotKy8qIFRo aXMgZnVuY3Rpb24gaXMgdXNlZCBkdXJpbmcgdGhlIG9ubGluZSB0b3RhbCBpbml0aWFsaXNhdGlv bgotKyAqIChzZWUgbmV4dCBmdW5jdGlvbikKLSsgKiBJdCBmcmVlcyBhbGwgcmFuZ2VzIG9mIElE IGluIHRoZSBsaXN0Ci0rICovCi0rdm9pZCBpZHJhbmdlX2ZyZWUoSWRSYW5nZV90ICoqaGVhZCkK LSt7Ci0rICAgIElkUmFuZ2VfdCAqY3VyciwgKnNhdjsKLSsKLSsgICAgaWYgKChoZWFkID09IE5V TEwpIHx8ICgqaGVhZCA9PSBOVUxMKSkgewotKyAgICAgICAgcmV0dXJuOwotKyAgICB9Ci0rICAg IGN1cnIgPSAqaGVhZDsKLSsgICAgc2F2ID0gTlVMTDsKLSsgICAgZm9yICg7IGN1cnI7KSB7Ci0r ICAgICAgICBzYXYgPSBjdXJyOwotKyAgICAgICAgY3VyciA9IGN1cnItPm5leHQ7Ci0rICAgICAg ICBzbGFwaV9jaF9mcmVlKCh2b2lkICopICZzYXYpOwotKyAgICB9Ci0rICAgIGlmIChzYXYpIHsK LSsgICAgICAgIHNsYXBpX2NoX2ZyZWUoKHZvaWQgKikgJnNhdik7Ci0rICAgIH0KLSsgICAgKmhl YWQgPSBOVUxMOwotK30KLSsKLSsvKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgZHVyaW5nIHRoZSBv bmxpbmUgdG90YWwgaW5pdGlhbGlzYXRpb24KLSsgKiBCZWNhdXNlIGEgTU9EUkROIGNhbiBtb3Zl IGVudHJpZXMgdW5kZXIgYSBwYXJlbnQgdGhhdAotKyAqIGhhcyBhIGhpZ2hlciBJRCB3ZSBuZWVk IHRvIHNvcnQgdGhlIElETGlzdCBzbyB0aGF0IHBhcmVudHMKLSsgKiBhcmUgc2VudCwgdG8gdGhl IGNvbnN1bWVyLCBiZWZvcmUgdGhlIGNoaWxkcmVuIGFyZSBzZW50LgotKyAqIFRoZSBzb3J0aW5n IHdpdGggYSBzaW1wbGUgSURsaXN0IGRvZXMgbm90IHNjYWxlIGluc3RlYWQKLSsgKiBhIGxpc3Qg b2YgSURzIHJhbmdlcyBpcyBtdWNoIGZhc3Rlci4KLSsgKiBJbiB0aGF0IGxpc3Qgd2Ugb25seSBB REQvbG9va3VwIElELgotKyAqLwotK0lkUmFuZ2VfdCAqaWRyYW5nZV9hZGRfaWQoSWRSYW5nZV90 ICoqaGVhZCwgSUQgaWQpCi0rewotKyAgICBpZiAoaGVhZCA9PSBOVUxMKSB7Ci0rICAgICAgICBz bGFwaV9sb2dfZXJyKFNMQVBJX0xPR19FUlIsICJpZHJhbmdlX2FkZF9pZCIsCi0rICAgICAgICAg ICAgICAgICAgICAgICJDYW4gbm90IGFkZCBJRCAlZCBpbiBub24gZGVmaW5lZCBsaXN0XG4iLCBp ZCk7Ci0rICAgICAgICByZXR1cm4gTlVMTDsKLSsgICAgfQotKwotKyAgICBpZiAoKmhlYWQgPT0g TlVMTCkgewotKyAgICAgICAgLyogVGhpcyBpcyB0aGUgZmlyc3QgcmFuZ2UgKi8KLSsgICAgICAg IElkUmFuZ2VfdCAqbmV3X3JhbmdlID0gKElkUmFuZ2VfdCAqKXNsYXBpX2NoX21hbGxvYyhzaXpl b2YoSWRSYW5nZV90KSk7Ci0rICAgICAgICBuZXdfcmFuZ2UtPmZpcnN0ID0gaWQ7Ci0rICAgICAg ICBuZXdfcmFuZ2UtPmxhc3QgPSBpZDsKLSsgICAgICAgIG5ld19yYW5nZS0+bmV4dCA9IE5VTEw7 Ci0rICAgICAgICAqaGVhZCA9IG5ld19yYW5nZTsKLSsgICAgICAgIHJldHVybiAqaGVhZDsKLSsg ICAgfQotKwotKyAgICBJZFJhbmdlX3QgKmN1cnIgPSAqaGVhZCwgKnByZXYgPSBOVUxMOwotKwot KyAgICAvKiBGaXJzdCwgZmluZCBpZiBpZCBhbHJlYWR5IGZhbGxzIHdpdGhpbiBhbnkgZXhpc3Rp bmcgcmFuZ2UsIG9yIGl0IGlzIGFkamFjZW50IHRvIGFueSAqLwotKyAgICB3aGlsZSAoY3Vycikg ewotKyAgICAgICAgaWYgKGlkID49IGN1cnItPmZpcnN0ICYmIGlkIDw9IGN1cnItPmxhc3QpIHsK LSsgICAgICAgICAgICAvKiBpbnNpZGUgYSByYW5nZSwgbm90aGluZyB0byBkbyAqLwotKyAgICAg ICAgICAgIHJldHVybiBjdXJyOwotKyAgICAgICAgfQotKwotKyAgICAgICAgaWYgKGlkID09IGN1 cnItPmxhc3QgKyAxKSB7Ci0rICAgICAgICAgICAgLyogRXh0ZW5kIHRoaXMgcmFuZ2UgdXB3YXJk cyAqLwotKyAgICAgICAgICAgIGN1cnItPmxhc3QgPSBpZDsKLSsKLSsgICAgICAgICAgICAvKiBD aGVjayBmb3IgcG9zc2libGUgbWVyZ2Ugd2l0aCBuZXh0IHJhbmdlICovCi0rICAgICAgICAgICAg SWRSYW5nZV90ICpuZXh0ID0gY3Vyci0+bmV4dDsKLSsgICAgICAgICAgICBpZiAobmV4dCAmJiBj dXJyLT5sYXN0ICsgMSA+PSBuZXh0LT5maXJzdCkgewotKyAgICAgICAgICAgICAgICBzbGFwaV9s b2dfZXJyKFNMQVBJX0xPR19SRVBMLCAiaWRyYW5nZV9hZGRfaWQiLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICIoaWQ9JWQpIG1lcmdlIGN1cnJlbnQgIHdpdGggbmV4dCByYW5nZSBbJWQuLiVk XVxuIiwgaWQsIGN1cnItPmZpcnN0LCBjdXJyLT5sYXN0KTsKLSsgICAgICAgICAgICAgICAgY3Vy ci0+bGFzdCA9IChuZXh0LT5sYXN0ID4gY3Vyci0+bGFzdCkgPyBuZXh0LT5sYXN0IDogY3Vyci0+ bGFzdDsKLSsgICAgICAgICAgICAgICAgY3Vyci0+bmV4dCA9IG5leHQtPm5leHQ7Ci0rICAgICAg ICAgICAgICAgIHNsYXBpX2NoX2ZyZWUoKHZvaWQqKSAmbmV4dCk7Ci0rICAgICAgICAgICAgfSBl bHNlIHsKLSsgICAgICAgICAgICAgICAgc2xhcGlfbG9nX2VycihTTEFQSV9MT0dfUkVQTCwgImlk cmFuZ2VfYWRkX2lkIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKGlkPSVkKSBl eHRlbmQgZm9yd2FyZCBjdXJyZW50IHJhbmdlIFslZC4uJWRdXG4iLCBpZCwgY3Vyci0+Zmlyc3Qs IGN1cnItPmxhc3QpOwotKyAgICAgICAgICAgIH0KLSsgICAgICAgICAgICByZXR1cm4gY3VycjsK LSsgICAgICAgIH0KLSsKLSsgICAgICAgIGlmIChpZCArIDEgPT0gY3Vyci0+Zmlyc3QpIHsKLSsg ICAgICAgICAgICAvKiBFeHRlbmQgdGhpcyByYW5nZSBkb3dud2FyZHMgKi8KLSsgICAgICAgICAg ICBjdXJyLT5maXJzdCA9IGlkOwotKwotKyAgICAgICAgICAgIC8qIENoZWNrIGZvciBwb3NzaWJs ZSBtZXJnZSB3aXRoIHByZXZpb3VzIHJhbmdlICovCi0rICAgICAgICAgICAgaWYgKHByZXYgJiYg cHJldi0+bGFzdCArIDEgPj0gY3Vyci0+Zmlyc3QpIHsKLSsgICAgICAgICAgICAgICAgcHJldi0+ bGFzdCA9IGN1cnItPmxhc3Q7Ci0rICAgICAgICAgICAgICAgIHByZXYtPm5leHQgPSBjdXJyLT5u ZXh0OwotKyAgICAgICAgICAgICAgICBzbGFwaV9jaF9mcmVlKCh2b2lkICopICZjdXJyKTsKLSsg ICAgICAgICAgICAgICAgc2xhcGlfbG9nX2VycihTTEFQSV9MT0dfUkVQTCwgImlkcmFuZ2VfYWRk X2lkIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKGlkPSVkKSBtZXJnZSBjdXJy ZW50IHdpdGggcHJldmlvdXMgcmFuZ2UgWyVkLi4lZF1cbiIsIGlkLCBwcmV2LT5maXJzdCwgcHJl di0+bGFzdCk7Ci0rICAgICAgICAgICAgICAgIHJldHVybiBwcmV2OwotKyAgICAgICAgICAgIH0g ZWxzZSB7Ci0rICAgICAgICAgICAgICAgIHNsYXBpX2xvZ19lcnIoU0xBUElfTE9HX1JFUEwsICJp ZHJhbmdlX2FkZF9pZCIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIihpZD0lZCkg ZXh0ZW5kIGJhY2t3YXJkIGN1cnJlbnQgcmFuZ2UgWyVkLi4lZF1cbiIsIGlkLCBjdXJyLT5maXJz dCwgY3Vyci0+bGFzdCk7Ci0rICAgICAgICAgICAgICAgIHJldHVybiBjdXJyOwotKyAgICAgICAg ICAgIH0KLSsgICAgICAgIH0KLSsKLSsgICAgICAgIC8qIElmIGlkIGlzIGJlZm9yZSB0aGUgY3Vy cmVudCByYW5nZSwgYnJlYWsgc28gd2UgY2FuIGluc2VydCBiZWZvcmUgKi8KLSsgICAgICAgIGlm IChpZCA8IGN1cnItPmZpcnN0KSB7Ci0rICAgICAgICAgICAgYnJlYWs7Ci0rICAgICAgICB9Ci0r Ci0rICAgICAgICBwcmV2ID0gY3VycjsKLSsgICAgICAgIGN1cnIgPSBjdXJyLT5uZXh0OwotKyAg ICB9Ci0rICAgIC8qIE5lZWQgdG8gaW5zZXJ0IGEgbmV3IHN0YW5kYWxvbmUgSWRSYW5nZSAqLwot KyAgICBJZFJhbmdlX3QgKm5ld19yYW5nZSA9IChJZFJhbmdlX3QgKilzbGFwaV9jaF9tYWxsb2Mo c2l6ZW9mKElkUmFuZ2VfdCkpOwotKyAgICBuZXdfcmFuZ2UtPmZpcnN0ID0gaWQ7Ci0rICAgIG5l d19yYW5nZS0+bGFzdCA9IGlkOwotKyAgICBuZXdfcmFuZ2UtPm5leHQgPSBjdXJyOwotKwotKyAg ICBpZiAocHJldikgewotKyAgICAgICAgc2xhcGlfbG9nX2VycihTTEFQSV9MT0dfUkVQTCwgImlk cmFuZ2VfYWRkX2lkIiwKLSsgICAgICAgICAgICAgICAgICAgICAgIihpZD0lZCkgYWRkIG5ldyBy YW5nZSBbJWQuLiVkXVxuIiwgaWQsIG5ld19yYW5nZS0+Zmlyc3QsIG5ld19yYW5nZS0+bGFzdCk7 Ci0rICAgICAgICBwcmV2LT5uZXh0ID0gbmV3X3JhbmdlOwotKyAgICB9IGVsc2UgewotKyAgICAg ICAgLyogSW5zZXJ0IGF0IGhlYWQgKi8KLSsgICAgICAgIHNsYXBpX2xvZ19lcnIoU0xBUElfTE9H X1JFUEwsICJpZHJhbmdlX2FkZF9pZCIsCi0rICAgICAgICAgICAgICAgICAgICAgICIoaWQ9JWQp IGhlYWQgcmFuZ2UgWyVkLi4lZF1cbiIsIGlkLCBuZXdfcmFuZ2UtPmZpcnN0LCBuZXdfcmFuZ2Ut Pmxhc3QpOwotKyAgICAgICAgKmhlYWQgPSBuZXdfcmFuZ2U7Ci0rICAgIH0KLSsgICAgcmV0dXJu ICpoZWFkOwotK30KLSsKLSsKLSBpbnQKLSBpZGxfaWRfaXNfaW5faWRsaXN0KElETGlzdCAqaWRs LCBJRCBpZCkKLSB7Ci1kaWZmIC0tZ2l0IGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9p ZGxfbmV3LmMgYi9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2lkbF9uZXcuYwotaW5kZXgg NWZiY2FmZjJlLi4yZDk3ODM1M2YgMTAwNjQ0Ci0tLS0gYS9sZGFwL3NlcnZlcnMvc2xhcGQvYmFj ay1sZGJtL2lkbF9uZXcuYwotKysrIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9pZGxf bmV3LmMKLUBAIC00MTcsNyArNDE3LDYgQEAgaWRsX25ld19yYW5nZV9mZXRjaCgKLSB7Ci0gICAg IGludCByZXQgPSAwOwotICAgICBpbnQgcmV0MiA9IDA7Ci0tICAgIGludCBpZGxfcmMgPSAwOwot ICAgICBkYmlfY3Vyc29yX3QgY3Vyc29yID0gezB9OwotICAgICBJRExpc3QgKmlkbCA9IE5VTEw7 Ci0gICAgIGRiaV92YWxfdCBjdXJfa2V5ID0gezB9OwotQEAgLTQzNiw2ICs0MzUsNyBAQCBpZGxf bmV3X3JhbmdlX2ZldGNoKAotICAgICBzaXplX3QgbGVmdG92ZXJsZW4gPSAzMjsKLSAgICAgc2l6 ZV90IGxlZnRvdmVyY250ID0gMDsKLSAgICAgY2hhciAqaW5kZXhfaWQgPSBnZXRfaW5kZXhfbmFt ZShiZSwgZGIsIGFpKTsKLSsgICAgSWRSYW5nZV90ICppZHJhbmdlX2xpc3QgPSBOVUxMOwotIAot IAotICAgICBpZiAoTlVMTCA9PSBmbGFnX2VycikgewotQEAgLTU3OCwxMCArNTc4LDEyIEBAIGlk bF9uZXdfcmFuZ2VfZmV0Y2goCi0gICAgICAgICAgICAgICAgICAgICAgKiBmb3VuZCBlbnRyeSBp cyB0aGUgb25lIGZyb20gdGhlIHN1ZmZpeAotICAgICAgICAgICAgICAgICAgICAgICovCi0gICAg ICAgICAgICAgICAgICAgICBzdWZmaXggPSBrZXk7Ci0tICAgICAgICAgICAgICAgICAgICBpZGxf cmMgPSBpZGxfYXBwZW5kX2V4dGVuZCgmaWRsLCBpZCk7Ci0tICAgICAgICAgICAgICAgIH0gZWxz ZSBpZiAoKGtleSA9PSBzdWZmaXgpIHx8IGlkbF9pZF9pc19pbl9pZGxpc3QoaWRsLCBrZXkpKSB7 Ci0rICAgICAgICAgICAgICAgICAgICBpZGxfYXBwZW5kX2V4dGVuZCgmaWRsLCBpZCk7Ci0rICAg ICAgICAgICAgICAgICAgICBpZHJhbmdlX2FkZF9pZCgmaWRyYW5nZV9saXN0LCBpZCk7Ci0rICAg ICAgICAgICAgICAgIH0gZWxzZSBpZiAoKGtleSA9PSBzdWZmaXgpIHx8IGlkbF9pZF9pc19pbl9p ZGxpc3RfcmFuZ2VzKGlkbCwgaWRyYW5nZV9saXN0LCBrZXkpKSB7Ci0gICAgICAgICAgICAgICAg ICAgICAvKiB0aGUgcGFyZW50IGlzIHRoZSBzdWZmaXggb3IgYWxyZWFkeSBpbiBpZGwuICovCi0t ICAgICAgICAgICAgICAgICAgICBpZGxfcmMgPSBpZGxfYXBwZW5kX2V4dGVuZCgmaWRsLCBpZCk7 Ci0rICAgICAgICAgICAgICAgICAgICBpZGxfYXBwZW5kX2V4dGVuZCgmaWRsLCBpZCk7Ci0rICAg ICAgICAgICAgICAgICAgICBpZHJhbmdlX2FkZF9pZCgmaWRyYW5nZV9saXN0LCBpZCk7Ci0gICAg ICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAvKiBPdGhlcndpc2Us IGtlZXAgdGhlIHtrZXksaWR9IGluIGxlZnRvdmVyIGFycmF5ICovCi0gICAgICAgICAgICAgICAg ICAgICBpZiAoIWxlZnRvdmVyKSB7Ci1AQCAtNTk2LDEzICs1OTgsNyBAQCBpZGxfbmV3X3Jhbmdl X2ZldGNoKAotICAgICAgICAgICAgICAgICAgICAgbGVmdG92ZXJjbnQrKzsKLSAgICAgICAgICAg ICAgICAgfQotICAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgIGlkbF9yYyA9 IGlkbF9hcHBlbmRfZXh0ZW5kKCZpZGwsIGlkKTsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICAg ICAgaWYgKGlkbF9yYykgewotLSAgICAgICAgICAgICAgICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xP R19FUlIsICJpZGxfbmV3X3JhbmdlX2ZldGNoIiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiVW5hYmxlIHRvIGV4dGVuZCBpZCBsaXN0IChlcnI9JWQpXG4iLCBpZGxfcmMpOwotLSAg ICAgICAgICAgICAgICBpZGxfZnJlZSgmaWRsKTsKLS0gICAgICAgICAgICAgICAgZ290byBlcnJv cjsKLSsgICAgICAgICAgICAgICAgaWRsX2FwcGVuZF9leHRlbmQoJmlkbCwgaWQpOwotICAgICAg ICAgICAgIH0KLSAKLSAgICAgICAgICAgICBjb3VudCsrOwotQEAgLTY5NSwyMSArNjkxLDE3IEBA IGVycm9yOgotIAotICAgICAgICAgd2hpbGUocmVtYWluaW5nID4gMCkgewotICAgICAgICAgICAg IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVmdG92ZXJjbnQ7IGkrKykgewotLSAgICAgICAgICAg ICAgICBpZiAobGVmdG92ZXJbaV0ua2V5ID4gMCAmJiBpZGxfaWRfaXNfaW5faWRsaXN0KGlkbCwg bGVmdG92ZXJbaV0ua2V5KSAhPSAwKSB7Ci0rICAgICAgICAgICAgICAgIGlmIChsZWZ0b3Zlcltp XS5rZXkgPiAwICYmIGlkbF9pZF9pc19pbl9pZGxpc3RfcmFuZ2VzKGlkbCwgaWRyYW5nZV9saXN0 LCBsZWZ0b3ZlcltpXS5rZXkpICE9IDApIHsKLSAgICAgICAgICAgICAgICAgICAgIC8qIGlmIHRo ZSBsZWZ0b3ZlciBrZXkgaGFzIGl0cyBwYXJlbnQgaW4gdGhlIGlkbCAqLwotLSAgICAgICAgICAg ICAgICAgICAgaWRsX3JjID0gaWRsX2FwcGVuZF9leHRlbmQoJmlkbCwgbGVmdG92ZXJbaV0uaWQp OwotLSAgICAgICAgICAgICAgICAgICAgaWYgKGlkbF9yYykgewotLSAgICAgICAgICAgICAgICAg ICAgICAgIHNsYXBpX2xvZ19lcnIoU0xBUElfTE9HX0VSUiwgImlkbF9uZXdfcmFuZ2VfZmV0Y2gi LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVuYWJsZSB0byBleHRl bmQgaWQgbGlzdCAoZXJyPSVkKVxuIiwgaWRsX3JjKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICBpZGxfZnJlZSgmaWRsKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsK LS0gICAgICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAgICAgIGlkbF9hcHBlbmRf ZXh0ZW5kKCZpZGwsIGxlZnRvdmVyW2ldLmlkKTsKLSsgICAgICAgICAgICAgICAgICAgIGlkcmFu Z2VfYWRkX2lkKCZpZHJhbmdlX2xpc3QsIGxlZnRvdmVyW2ldLmlkKTsKLSAgICAgICAgICAgICAg ICAgICAgIGxlZnRvdmVyW2ldLmtleSA9IDA7Ci0gICAgICAgICAgICAgICAgICAgICByZW1haW5p bmctLTsKLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAg ICAgICAgIHNsYXBpX2NoX2ZyZWUoKHZvaWQgKiopJmxlZnRvdmVyKTsKLSsgICAgICAgIGlkcmFu Z2VfZnJlZSgmaWRyYW5nZV9saXN0KTsKLSAgICAgfQotICAgICBzbGFwaV9sb2dfZXJyKFNMQVBJ X0xPR19GSUxURVIsICJpZGxfbmV3X3JhbmdlX2ZldGNoIiwKLSAgICAgICAgICAgICAgICAgICAi Rm91bmQgJWQgY2FuZGlkYXRlczsgZXJyb3IgY29kZSBpczogJWRcbiIsCi1kaWZmIC0tZ2l0IGEv bGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9wcm90by1iYWNrLWxkYm0uaCBiL2xkYXAvc2Vy dmVycy9zbGFwZC9iYWNrLWxkYm0vcHJvdG8tYmFjay1sZGJtLmgKLWluZGV4IDkxZDYxMDk4YS4u MzBhN2FhMTFmIDEwMDY0NAotLS0tIGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9wcm90 by1iYWNrLWxkYm0uaAotKysrIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9wcm90by1i YWNrLWxkYm0uaAotQEAgLTIxNyw2ICsyMTcsOSBAQCBJRCBpZGxfZmlyc3RpZChJRExpc3QgKmlk bCk7Ci0gSUQgaWRsX25leHRpZChJRExpc3QgKmlkbCwgSUQgaWQpOwotIGludCBpZGxfaW5pdF9w cml2YXRlKGJhY2tlbmQgKmJlLCBzdHJ1Y3QgYXR0cmluZm8gKmEpOwotIGludCBpZGxfcmVsZWFz ZV9wcml2YXRlKHN0cnVjdCBhdHRyaW5mbyAqYSk7Ci0rSWRSYW5nZV90ICppZHJhbmdlX2FkZF9p ZChJZFJhbmdlX3QgKipoZWFkLCBJRCBpZCk7Ci0rdm9pZCBpZHJhbmdlX2ZyZWUoSWRSYW5nZV90 ICoqaGVhZCk7Ci0raW50IGlkbF9pZF9pc19pbl9pZGxpc3RfcmFuZ2VzKElETGlzdCAqaWRsLCBJ ZFJhbmdlX3QgKmlkcmFuZ2VfbGlzdCwgSUQgaWQpOwotIGludCBpZGxfaWRfaXNfaW5faWRsaXN0 KElETGlzdCAqaWRsLCBJRCBpZCk7Ci0gCi0gaWRsX2l0ZXJhdG9yIGlkbF9pdGVyYXRvcl9pbml0 KGNvbnN0IElETGlzdCAqaWRsKTsKLS0tIAotMi41Mi4wCi0KCmRpZmYgLS1naXQgYS8wMDAyLUlz c3VlLVJldmlzZS1wYWdlZC1yZXN1bHQtc2VhcmNoLWxvY2tpbmcucGF0Y2ggYi8wMDAyLUlzc3Vl LVJldmlzZS1wYWdlZC1yZXN1bHQtc2VhcmNoLWxvY2tpbmcucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IGUyN2NlZDMuLjAwMDAwMDAKLS0tIGEvMDAwMi1Jc3N1ZS1SZXZpc2Ut cGFnZWQtcmVzdWx0LXNlYXJjaC1sb2NraW5nLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNzY1 ICswLDAgQEAKLUZyb20gNDQ2YmM0MmU3YjY0YTg0OTZjMmMzZmU0ODZmODZiYmEzMThiZWQ1ZSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IE1hcmsgUmV5bm9sZHMgPG1yZXlub2xkc0By ZWRoYXQuY29tPgotRGF0ZTogV2VkLCA3IEphbiAyMDI2IDE2OjU1OjI3IC0wNTAwCi1TdWJqZWN0 OiBbUEFUQ0hdIElzc3VlIC0gUmV2aXNlIHBhZ2VkIHJlc3VsdCBzZWFyY2ggbG9ja2luZwotCi1E ZXNjcmlwdGlvbjoKLQotTW92ZSB0byBhIHNpbmdsZSBsb2NrIGFwcHJvYWNoIHZlcnNlcyBoYXZp bmcgdHdvIGxvY2tzLiBUaGlzIHdpbGwgaW1wYWN0Ci1jb25jdXJyZW5jeSB3aGVuIG11bHRpcGxl IGFzeW5jIHBhZ2VkIHJlc3VsdCBzZWFyY2hlcyBhcmUgZG9uZSBvbiB0aGUgc2FtZQotY29ubmVj dGlvbiwgYnV0IGl0IHNpbXBsaWZpZXMgdGhlIGNvZGUgYW5kIGF2b2lkcyByYWNlIGNvbmRpdGlv bnMgYW5kCi1kZWFkbG9ja3MuCi0KLVJlbGF0ZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS8zODlkcy8z ODktZHMtYmFzZS9pc3N1ZXMvNzExOAotCi1SZXZpZXdlZCBieTogcHJvZ2llciAmIHRib3JkYXog KFRoYW5rcyEhKQotLS0tCi0gbGRhcC9zZXJ2ZXJzL3NsYXBkL2FiYW5kb24uYyAgICAgIHwgICAy ICstCi0gbGRhcC9zZXJ2ZXJzL3NsYXBkL29wc2hhcmVkLmMgICAgIHwgIDYwICsrKystLS0tCi0g bGRhcC9zZXJ2ZXJzL3NsYXBkL3BhZ2VkcmVzdWx0cy5jIHwgMjI4ICsrKysrKysrKysrKysrKysr KystLS0tLS0tLS0tLQotIGxkYXAvc2VydmVycy9zbGFwZC9wcm90by1zbGFwLmggICB8ICAyNiAr Ky0tCi0gbGRhcC9zZXJ2ZXJzL3NsYXBkL3NsYXAuaCAgICAgICAgIHwgICA1ICstCi0gNSBmaWxl cyBjaGFuZ2VkLCAxODcgaW5zZXJ0aW9ucygrKSwgMTM0IGRlbGV0aW9ucygtKQotCi1kaWZmIC0t Z2l0IGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL2FiYW5kb24uYyBiL2xkYXAvc2VydmVycy9zbGFwZC9h YmFuZG9uLmMKLWluZGV4IDYwMjRmY2QzMS4uMWY0N2M1MzFjIDEwMDY0NAotLS0tIGEvbGRhcC9z ZXJ2ZXJzL3NsYXBkL2FiYW5kb24uYwotKysrIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2FiYW5kb24u YwotQEAgLTE3OSw3ICsxNzksNyBAQCBkb19hYmFuZG9uKFNsYXBpX1BCbG9jayAqcGIpCi0gICAg IGxvZ3BiLnR2X3NlYyA9IC0xOwotICAgICBsb2dwYi50dl9uc2VjID0gLTE7Ci0gCi0tICAgIGlm ICgwID09IHBhZ2VkcmVzdWx0c19mcmVlX29uZV9tc2dpZChwYl9jb25uLCBpZCwgcGFnZXJlc3Vs dF9sb2NrX2dldF9hZGRyKHBiX2Nvbm4pKSkgewotKyAgICBpZiAoMCA9PSBwYWdlZHJlc3VsdHNf ZnJlZV9vbmVfbXNnaWQocGJfY29ubiwgaWQsIFBSX05PVF9MT0NLRUQpKSB7Ci0gICAgICAgICBp ZiAobG9nX2Zvcm1hdCAhPSBMT0dfRk9STUFUX0RFRkFVTFQpIHsKLSAgICAgICAgICAgICAvKiBK U09OIGxvZ2dpbmcgKi8KLSAgICAgICAgICAgICBsb2dwYi50YXJnZXRfb3AgPSAiU2ltcGxlIFBh Z2VkIFJlc3VsdHMiOwotZGlmZiAtLWdpdCBhL2xkYXAvc2VydmVycy9zbGFwZC9vcHNoYXJlZC5j IGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL29wc2hhcmVkLmMKLWluZGV4IGE1Y2RkZmQyMy4uYmY4MDBm N2RjIDEwMDY0NAotLS0tIGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL29wc2hhcmVkLmMKLSsrKyBiL2xk YXAvc2VydmVycy9zbGFwZC9vcHNoYXJlZC5jCi1AQCAtNTcyLDggKzU3Miw4IEBAIG9wX3NoYXJl ZF9zZWFyY2goU2xhcGlfUEJsb2NrICpwYiwgaW50IHNlbmRfcmVzdWx0KQotICAgICAgICAgICAg ICAgICAgICAgICAgIGJlID0gYmVfbGlzdFtpbmRleF07Ci0gICAgICAgICAgICAgICAgICAgICB9 Ci0gICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgcHJfc2VhcmNoX3Jlc3VsdCA9 IHBhZ2VkcmVzdWx0c19nZXRfc2VhcmNoX3Jlc3VsdChwYl9jb25uLCBvcGVyYXRpb24sIDAgLypu b3QgbG9ja2VkKi8sIHByX2lkeCk7Ci0tICAgICAgICAgICAgICAgIGVzdGltYXRlID0gcGFnZWRy ZXN1bHRzX2dldF9zZWFyY2hfcmVzdWx0X3NldF9zaXplX2VzdGltYXRlKHBiX2Nvbm4sIG9wZXJh dGlvbiwgcHJfaWR4KTsKLSsgICAgICAgICAgICAgICAgcHJfc2VhcmNoX3Jlc3VsdCA9IHBhZ2Vk cmVzdWx0c19nZXRfc2VhcmNoX3Jlc3VsdChwYl9jb25uLCBvcGVyYXRpb24sIFBSX05PVF9MT0NL RUQsIHByX2lkeCk7Ci0rICAgICAgICAgICAgICAgIGVzdGltYXRlID0gcGFnZWRyZXN1bHRzX2dl dF9zZWFyY2hfcmVzdWx0X3NldF9zaXplX2VzdGltYXRlKHBiX2Nvbm4sIG9wZXJhdGlvbiwgUFJf Tk9UX0xPQ0tFRCwgcHJfaWR4KTsKLSAgICAgICAgICAgICAgICAgLyogU2V0IG9wZXJhdGlvbiBu b3RlIGZsYWdzIGFzIHJlcXVpcmVkLiAqLwotICAgICAgICAgICAgICAgICBpZiAocGFnZWRyZXN1 bHRzX2dldF91bmluZGV4ZWQocGJfY29ubiwgb3BlcmF0aW9uLCBwcl9pZHgpKSB7Ci0gICAgICAg ICAgICAgICAgICAgICBzbGFwaV9wYmxvY2tfc2V0X2ZsYWdfb3BlcmF0aW9uX25vdGVzKHBiLCBT TEFQSV9PUF9OT1RFX1VOSU5ERVhFRCk7Ci1AQCAtNjE5LDE0ICs2MTksNyBAQCBvcF9zaGFyZWRf c2VhcmNoKFNsYXBpX1BCbG9jayAqcGIsIGludCBzZW5kX3Jlc3VsdCkKLSAgICAgICAgICAgICBp bnQzMl90IHRsaW1pdDsKLSAgICAgICAgICAgICBzbGFwaV9wYmxvY2tfZ2V0KHBiLCBTTEFQSV9T RUFSQ0hfVElNRUxJTUlULCAmdGxpbWl0KTsKLSAgICAgICAgICAgICBwYWdlZHJlc3VsdHNfc2V0 X3RpbWVsaW1pdChwYl9jb25uLCBvcGVyYXRpb24sICh0aW1lX3QpdGxpbWl0LCBwcl9pZHgpOwot LSAgICAgICAgICAgIC8qIFdoZW4gdXNpbmcgdGhpcyBtdXRleCBpbiBjb25qdW5jdGlvbiB3aXRo IHRoZSBtYWluIHBhZ2VkCi0tICAgICAgICAgICAgICogcmVzdWx0IGxvY2ssIHlvdSBtdXN0IGRv IHNvIGluIHRoaXMgb3JkZXI6Ci0tICAgICAgICAgICAgICoKLS0gICAgICAgICAgICAgKiAtLT4g cGFnZWRyZXN1bHRzX2xvY2soKQotLSAgICAgICAgICAgICAqICAgIC0tPiBwYWdlZHJlc3VsdHNf bXV0ZXgKLS0gICAgICAgICAgICAgKiAgICA8LS0gcGFnZWRyZXN1bHRzX211dGV4Ci0tICAgICAg ICAgICAgICogPC0tIHBhZ2VkcmVzdWx0c191bmxvY2soKQotLSAgICAgICAgICAgICAqLwotKyAg ICAgICAgICAgIC8qIElNUE9SVEFOVDogTmV2ZXIgYWNxdWlyZSBwYWdlZHJlc3VsdHNfbXV0ZXgg d2hlbiBob2xkaW5nIGNfbXV0ZXguICovCi0gICAgICAgICAgICAgcGFnZWRyZXN1bHRzX211dGV4 ID0gcGFnZXJlc3VsdF9sb2NrX2dldF9hZGRyKHBiX2Nvbm4pOwotICAgICAgICAgfQotIAotQEAg LTc0MywxNyArNzM2LDE1IEBAIG9wX3NoYXJlZF9zZWFyY2goU2xhcGlfUEJsb2NrICpwYiwgaW50 IHNlbmRfcmVzdWx0KQotICAgICAgICAgaWYgKG9wX2lzX3BhZ2VkcmVzdWx0cyhvcGVyYXRpb24p ICYmIHByX3NlYXJjaF9yZXN1bHQpIHsKLSAgICAgICAgICAgICB2b2lkICpzciA9IE5VTEw7Ci0g ICAgICAgICAgICAgLyogUEFHRUQgUkVTVUxUUyBhbmQgYWxyZWFkeSBoYXZlIHRoZSBzZWFyY2gg cmVzdWx0cyBmcm9tIHRoZSBwcmV2IG9wICovCi0tICAgICAgICAgICAgcGFnZWRyZXN1bHRzX2xv Y2socGJfY29ubiwgcHJfaWR4KTsKLSAgICAgICAgICAgICAvKgotICAgICAgICAgICAgICAqIElu IGFzeW5jIHBhZ2VkIHJlc3VsdCBjYXNlLCB0aGUgc2VhcmNoIHJlc3VsdCBtaWdodCBiZSByZWxl YXNlZAotICAgICAgICAgICAgICAqIGJ5IG90aGVyIHRoZWFkcy4gIFdlIG5lZWQgdG8gZG91Ymxl IGNoZWNrIGl0IGluIHRoZSBsb2NrZWQgcmVnaW9uLgotICAgICAgICAgICAgICAqLwotICAgICAg ICAgICAgIHB0aHJlYWRfbXV0ZXhfbG9jayhwYWdlZHJlc3VsdHNfbXV0ZXgpOwotLSAgICAgICAg ICAgIHByX3NlYXJjaF9yZXN1bHQgPSBwYWdlZHJlc3VsdHNfZ2V0X3NlYXJjaF9yZXN1bHQocGJf Y29ubiwgb3BlcmF0aW9uLCAxIC8qbG9ja2VkKi8sIHByX2lkeCk7Ci0rICAgICAgICAgICAgcHJf c2VhcmNoX3Jlc3VsdCA9IHBhZ2VkcmVzdWx0c19nZXRfc2VhcmNoX3Jlc3VsdChwYl9jb25uLCBv cGVyYXRpb24sIFBSX0xPQ0tFRCwgcHJfaWR4KTsKLSAgICAgICAgICAgICBpZiAocHJfc2VhcmNo X3Jlc3VsdCkgewotLSAgICAgICAgICAgICAgICBpZiAocGFnZWRyZXN1bHRzX2lzX2FiYW5kb25l ZF9vcl9ub3RhdmFpbGFibGUocGJfY29ubiwgMSAvKmxvY2tlZCovLCBwcl9pZHgpKSB7Ci0rICAg ICAgICAgICAgICAgIGlmIChwYWdlZHJlc3VsdHNfaXNfYWJhbmRvbmVkX29yX25vdGF2YWlsYWJs ZShwYl9jb25uLCBQUl9MT0NLRUQsIHByX2lkeCkpIHsKLSAgICAgICAgICAgICAgICAgICAgIHB0 aHJlYWRfbXV0ZXhfdW5sb2NrKHBhZ2VkcmVzdWx0c19tdXRleCk7Ci0tICAgICAgICAgICAgICAg ICAgICBwYWdlZHJlc3VsdHNfdW5sb2NrKHBiX2Nvbm4sIHByX2lkeCk7Ci0gICAgICAgICAgICAg ICAgICAgICAvKiBQcmV2aW91cyBvcGVyYXRpb24gd2FzIGFiYW5kb25lZCBhbmQgdGhlIHNpbXBs ZXBhZ2VkIG9iamVjdCBpcyBub3QgaW4gdXNlLiAqLwotICAgICAgICAgICAgICAgICAgICAgc2Vu ZF9sZGFwX3Jlc3VsdChwYiwgMCwgTlVMTCwgIlNpbXBsZSBQYWdlZCBSZXN1bHRzIFNlYXJjaCBh YmFuZG9uZWQiLCAwLCBOVUxMKTsKLSAgICAgICAgICAgICAgICAgICAgIHJjID0gTERBUF9TVUND RVNTOwotQEAgLTc2NCwxNCArNzU1LDEzIEBAIG9wX3NoYXJlZF9zZWFyY2goU2xhcGlfUEJsb2Nr ICpwYiwgaW50IHNlbmRfcmVzdWx0KQotIAotICAgICAgICAgICAgICAgICAgICAgLyogc2VhcmNo IHJlc3VsdCBjb3VsZCBiZSByZXNldCBpbiB0aGUgYmFja2VuZC9kc2UgKi8KLSAgICAgICAgICAg ICAgICAgICAgIHNsYXBpX3BibG9ja19nZXQocGIsIFNMQVBJX1NFQVJDSF9SRVNVTFRfU0VULCAm c3IpOwotLSAgICAgICAgICAgICAgICAgICAgcGFnZWRyZXN1bHRzX3NldF9zZWFyY2hfcmVzdWx0 KHBiX2Nvbm4sIG9wZXJhdGlvbiwgc3IsIDEgLypsb2NrZWQqLywgcHJfaWR4KTsKLSsgICAgICAg ICAgICAgICAgICAgIHBhZ2VkcmVzdWx0c19zZXRfc2VhcmNoX3Jlc3VsdChwYl9jb25uLCBvcGVy YXRpb24sIHNyLCBQUl9MT0NLRUQsIHByX2lkeCk7Ci0gICAgICAgICAgICAgICAgIH0KLSAgICAg ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICBwcl9zdGF0ID0gUEFHRURSRVNVTFRT X1NFQVJDSF9FTkQ7Ci0gICAgICAgICAgICAgICAgIHJjID0gTERBUF9TVUNDRVNTOwotICAgICAg ICAgICAgIH0KLSAgICAgICAgICAgICBwdGhyZWFkX211dGV4X3VubG9jayhwYWdlZHJlc3VsdHNf bXV0ZXgpOwotLSAgICAgICAgICAgIHBhZ2VkcmVzdWx0c191bmxvY2socGJfY29ubiwgcHJfaWR4 KTsKLSAKLSAgICAgICAgICAgICBpZiAoKFBBR0VEUkVTVUxUU19TRUFSQ0hfRU5EID09IHByX3N0 YXQpIHx8ICgwID09IHBuZW50cmllcykpIHsKLSAgICAgICAgICAgICAgICAgLyogbm8gbW9yZSBl bnRyaWVzIHRvIHNlbmQgaW4gdGhlIGJhY2tlbmQgKi8KLUBAIC03ODksMjIgKzc3OSwyMiBAQCBv cF9zaGFyZWRfc2VhcmNoKFNsYXBpX1BCbG9jayAqcGIsIGludCBzZW5kX3Jlc3VsdCkKLSAgICAg ICAgICAgICB9Ci0gICAgICAgICAgICAgcGFnZWRyZXN1bHRzX3NldF9yZXNwb25zZV9jb250cm9s KHBiLCAwLCBlc3RpbWF0ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY3Vycl9zZWFyY2hfY291bnQsIHByX2lkeCk7Ci0tICAgICAgICAgICAgaWYgKHBh Z2VkcmVzdWx0c19nZXRfd2l0aF9zb3J0KHBiX2Nvbm4sIG9wZXJhdGlvbiwgcHJfaWR4KSkgewot KyAgICAgICAgICAgIGlmIChwYWdlZHJlc3VsdHNfZ2V0X3dpdGhfc29ydChwYl9jb25uLCBvcGVy YXRpb24sIFBSX05PVF9MT0NLRUQsIHByX2lkeCkpIHsKLSAgICAgICAgICAgICAgICAgc29ydF9t YWtlX3NvcnRfcmVzcG9uc2VfY29udHJvbChwYiwgQ09OTl9HRVRfU09SVF9SRVNVTFRfQ09ERSwg TlVMTCk7Ci0gICAgICAgICAgICAgfQotICAgICAgICAgICAgIHBhZ2VkcmVzdWx0c19zZXRfc2Vh cmNoX3Jlc3VsdF9zZXRfc2l6ZV9lc3RpbWF0ZShwYl9jb25uLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb24sCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGVzdGltYXRlLCBwcl9pZHgpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlc3RpbWF0ZSwgUFJfTk9UX0xPQ0tFRCwgcHJf aWR4KTsKLSAgICAgICAgICAgICBpZiAoUEFHRURSRVNVTFRTX1NFQVJDSF9FTkQgPT0gcHJfc3Rh dCkgewotLSAgICAgICAgICAgICAgICBwYWdlZHJlc3VsdHNfbG9jayhwYl9jb25uLCBwcl9pZHgp OwotKyAgICAgICAgICAgICAgICBwdGhyZWFkX211dGV4X2xvY2socGFnZWRyZXN1bHRzX211dGV4 KTsKLSAgICAgICAgICAgICAgICAgc2xhcGlfcGJsb2NrX3NldChwYiwgU0xBUElfU0VBUkNIX1JF U1VMVF9TRVQsIE5VTEwpOwotLSAgICAgICAgICAgICAgICBpZiAoIXBhZ2VkcmVzdWx0c19pc19h YmFuZG9uZWRfb3Jfbm90YXZhaWxhYmxlKHBiX2Nvbm4sIDAgLypub3QgbG9ja2VkKi8sIHByX2lk eCkpIHsKLS0gICAgICAgICAgICAgICAgICAgIHBhZ2VkcmVzdWx0c19mcmVlX29uZShwYl9jb25u LCBvcGVyYXRpb24sIHByX2lkeCk7Ci0rICAgICAgICAgICAgICAgIGlmICghcGFnZWRyZXN1bHRz X2lzX2FiYW5kb25lZF9vcl9ub3RhdmFpbGFibGUocGJfY29ubiwgUFJfTE9DS0VELCBwcl9pZHgp KSB7Ci0rICAgICAgICAgICAgICAgICAgICBwYWdlZHJlc3VsdHNfZnJlZV9vbmUocGJfY29ubiwg b3BlcmF0aW9uLCBQUl9MT0NLRUQsIHByX2lkeCk7Ci0gICAgICAgICAgICAgICAgIH0KLS0gICAg ICAgICAgICAgICAgcGFnZWRyZXN1bHRzX3VubG9jayhwYl9jb25uLCBwcl9pZHgpOwotKyAgICAg ICAgICAgICAgICBwdGhyZWFkX211dGV4X3VubG9jayhwYWdlZHJlc3VsdHNfbXV0ZXgpOwotICAg ICAgICAgICAgICAgICBpZiAobmV4dF9iZSkgewotICAgICAgICAgICAgICAgICAgICAgLyogbm8g bW9yZSBlbnRyaWVzLCBidXQgYXQgbGVhc3QgYW5vdGhlciBiYWNrZW5kICovCi0tICAgICAgICAg ICAgICAgICAgICBpZiAocGFnZWRyZXN1bHRzX3NldF9jdXJyZW50X2JlKHBiX2Nvbm4sIG5leHRf YmUsIHByX2lkeCwgMCkgPCAwKSB7Ci0rICAgICAgICAgICAgICAgICAgICBpZiAocGFnZWRyZXN1 bHRzX3NldF9jdXJyZW50X2JlKHBiX2Nvbm4sIG5leHRfYmUsIHByX2lkeCwgUFJfTk9UX0xPQ0tF RCkgPCAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmcmVlX2FuZF9yZXR1cm47 Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgIH0KLUBAIC05MTUsNyAr OTA1LDcgQEAgb3Bfc2hhcmVkX3NlYXJjaChTbGFwaV9QQmxvY2sgKnBiLCBpbnQgc2VuZF9yZXN1 bHQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgfQot ICAgICAgICAgICAgICAgICAgICAgcGFnZWRyZXN1bHRzX3NldF9zZWFyY2hfcmVzdWx0KHBiX2Nv bm4sIG9wZXJhdGlvbiwgTlVMTCwgMSwgcHJfaWR4KTsKLS0gICAgICAgICAgICAgICAgICAgIHJj ID0gcGFnZWRyZXN1bHRzX3NldF9jdXJyZW50X2JlKHBiX2Nvbm4sIE5VTEwsIHByX2lkeCwgMSk7 Ci0rICAgICAgICAgICAgICAgICAgICByYyA9IHBhZ2VkcmVzdWx0c19zZXRfY3VycmVudF9iZShw Yl9jb25uLCBOVUxMLCBwcl9pZHgsIFBSX0xPQ0tFRCk7Ci0gICAgICAgICAgICAgICAgICAgICBw dGhyZWFkX211dGV4X3VubG9jayhwYWdlZHJlc3VsdHNfbXV0ZXgpOwotICNwcmFnbWEgR0NDIGRp YWdub3N0aWMgcG9wCi0gICAgICAgICAgICAgICAgIH0KLUBAIC05NTQsNyArOTQ0LDcgQEAgb3Bf c2hhcmVkX3NlYXJjaChTbGFwaV9QQmxvY2sgKnBiLCBpbnQgc2VuZF9yZXN1bHQpCi0gICAgICAg ICAgICAgICAgICAgICAgICAgcHRocmVhZF9tdXRleF9sb2NrKHBhZ2VkcmVzdWx0c19tdXRleCk7 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgcGFnZWRyZXN1bHRzX3NldF9zZWFyY2hfcmVzdWx0 KHBiX2Nvbm4sIG9wZXJhdGlvbiwgTlVMTCwgMSwgcHJfaWR4KTsKLSAgICAgICAgICAgICAgICAg ICAgICAgICBiZS0+YmVfc2VhcmNoX3Jlc3VsdHNfcmVsZWFzZSgmc3IpOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIHJjID0gcGFnZWRyZXN1bHRzX3NldF9jdXJyZW50X2JlKHBiX2Nvbm4sIG5l eHRfYmUsIHByX2lkeCwgMSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgcmMgPSBwYWdlZHJl c3VsdHNfc2V0X2N1cnJlbnRfYmUocGJfY29ubiwgbmV4dF9iZSwgcHJfaWR4LCBQUl9MT0NLRUQp OwotICAgICAgICAgICAgICAgICAgICAgICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKHBhZ2VkcmVz dWx0c19tdXRleCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgcHJfc3RhdCA9IFBBR0VEUkVT VUxUU19TRUFSQ0hfRU5EOyAvKiBtYWtlIHN1cmUgc3RhdCBpcyBTRUFSQ0hfRU5EICovCi0gICAg ICAgICAgICAgICAgICAgICAgICAgaWYgKE5VTEwgPT0gbmV4dF9iZSkgewotQEAgLTk2NywyMyAr OTU3LDIzIEBAIG9wX3NoYXJlZF9zZWFyY2goU2xhcGlfUEJsb2NrICpwYiwgaW50IHNlbmRfcmVz dWx0KQotICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAg ICAgICBjdXJyX3NlYXJjaF9jb3VudCA9IHBuZW50cmllczsKLSAgICAgICAgICAgICAgICAgICAg ICAgICBzbGFwaV9wYmxvY2tfZ2V0KHBiLCBTTEFQSV9TRUFSQ0hfUkVTVUxUX1NFVF9TSVpFX0VT VElNQVRFLCAmZXN0aW1hdGUpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VkcmVzdWx0 c19sb2NrKHBiX2Nvbm4sIHByX2lkeCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChw YWdlZHJlc3VsdHNfc2V0X2N1cnJlbnRfYmUocGJfY29ubiwgYmUsIHByX2lkeCwgMCkgPCAwKSB8 fAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFnZWRyZXN1bHRzX3NldF9zZWFyY2hf cmVzdWx0KHBiX2Nvbm4sIG9wZXJhdGlvbiwgc3IsIDAsIHByX2lkeCkgPCAwKSB8fAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAocGFnZWRyZXN1bHRzX3NldF9zZWFyY2hfcmVzdWx0X2Nv dW50KHBiX2Nvbm4sIG9wZXJhdGlvbiwgY3Vycl9zZWFyY2hfY291bnQsIHByX2lkeCkgPCAwKSB8 fAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFnZWRyZXN1bHRzX3NldF9zZWFyY2hf cmVzdWx0X3NldF9zaXplX2VzdGltYXRlKHBiX2Nvbm4sIG9wZXJhdGlvbiwgZXN0aW1hdGUsIHBy X2lkeCkgPCAwKSB8fAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFnZWRyZXN1bHRz X3NldF93aXRoX3NvcnQocGJfY29ubiwgb3BlcmF0aW9uLCB3aXRoX3NvcnQsIHByX2lkeCkgPCAw KSkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlZHJlc3VsdHNfdW5sb2NrKHBi X2Nvbm4sIHByX2lkeCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgcHRocmVhZF9tdXRleF9s b2NrKHBhZ2VkcmVzdWx0c19tdXRleCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChw YWdlZHJlc3VsdHNfc2V0X2N1cnJlbnRfYmUocGJfY29ubiwgYmUsIHByX2lkeCwgUFJfTE9DS0VE KSA8IDApIHx8Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYWdlZHJlc3VsdHNfc2V0 X3NlYXJjaF9yZXN1bHQocGJfY29ubiwgb3BlcmF0aW9uLCBzciwgUFJfTE9DS0VELCBwcl9pZHgp IDwgMCkgfHwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhZ2VkcmVzdWx0c19zZXRf c2VhcmNoX3Jlc3VsdF9jb3VudChwYl9jb25uLCBvcGVyYXRpb24sIGN1cnJfc2VhcmNoX2NvdW50 LCBQUl9MT0NLRUQsIHByX2lkeCkgPCAwKSB8fAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAocGFnZWRyZXN1bHRzX3NldF9zZWFyY2hfcmVzdWx0X3NldF9zaXplX2VzdGltYXRlKHBiX2Nv bm4sIG9wZXJhdGlvbiwgZXN0aW1hdGUsIFBSX0xPQ0tFRCwgcHJfaWR4KSA8IDApIHx8Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChwYWdlZHJlc3VsdHNfc2V0X3dpdGhfc29ydChwYl9j b25uLCBvcGVyYXRpb24sIHdpdGhfc29ydCwgUFJfTE9DS0VELCBwcl9pZHgpIDwgMCkpIHsKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRocmVhZF9tdXRleF91bmxvY2socGFnZWRyZXN1 bHRzX211dGV4KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfcmV0dXJuX3Rh cmdldF9lbnRyeShwYiwgYmUsIG9wZXJhdGlvbik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGdvdG8gZnJlZV9hbmRfcmV0dXJuOwotICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICAgICAgICAgICAgICBwYWdlZHJlc3VsdHNfdW5sb2NrKHBiX2Nvbm4sIHByX2lk eCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgcHRocmVhZF9tdXRleF91bmxvY2socGFnZWRy ZXN1bHRzX211dGV4KTsKLSAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAg ICAgIHNsYXBpX3BibG9ja19zZXQocGIsIFNMQVBJX1NFQVJDSF9SRVNVTFRfU0VULCBOVUxMKTsK LSAgICAgICAgICAgICAgICAgICAgIG5leHRfYmUgPSBOVUxMOyAvKiB0byBicmVhayB0aGUgbG9v cCAqLwotICAgICAgICAgICAgICAgICAgICAgaWYgKG9wZXJhdGlvbi0+b19zdGF0dXMgJiBTTEFQ SV9PUF9TVEFUVVNfQUJBTkRPTkVEKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgLyogSXQg dHVybmVkIG91dCB0aGlzIHNlYXJjaCB3YXMgYWJhbmRvbmVkLiAqLwotLSAgICAgICAgICAgICAg ICAgICAgICAgIHBhZ2VkcmVzdWx0c19mcmVlX29uZV9tc2dpZChwYl9jb25uLCBvcGVyYXRpb24t Pm9fbXNnaWQsIHBhZ2VkcmVzdWx0c19tdXRleCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAg cGFnZWRyZXN1bHRzX2ZyZWVfb25lX21zZ2lkKHBiX2Nvbm4sIG9wZXJhdGlvbi0+b19tc2dpZCwg UFJfTk9UX0xPQ0tFRCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgLyogcGFnZWQtcmVzdWx0 cy1yZXF1ZXN0IHdhcyBhYmFuZG9uZWQ7IG1ha2luZyBhbiBlbXB0eSBjb29raWUuICovCi0gICAg ICAgICAgICAgICAgICAgICAgICAgcGFnZWRyZXN1bHRzX3NldF9yZXNwb25zZV9jb250cm9sKHBi LCAwLCBlc3RpbWF0ZSwgLTEsIHByX2lkeCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgc2Vu ZF9sZGFwX3Jlc3VsdChwYiwgMCwgTlVMTCwgIlNpbXBsZSBQYWdlZCBSZXN1bHRzIFNlYXJjaCBh YmFuZG9uZWQiLCAwLCBOVUxMKTsKLUBAIC05OTMsNyArOTgzLDcgQEAgb3Bfc2hhcmVkX3NlYXJj aChTbGFwaV9QQmxvY2sgKnBiLCBpbnQgc2VuZF9yZXN1bHQpCi0gICAgICAgICAgICAgICAgICAg ICB9Ci0gICAgICAgICAgICAgICAgICAgICBwYWdlZHJlc3VsdHNfc2V0X3Jlc3BvbnNlX2NvbnRy b2wocGIsIDAsIGVzdGltYXRlLCBjdXJyX3NlYXJjaF9jb3VudCwgcHJfaWR4KTsKLSAgICAgICAg ICAgICAgICAgICAgIGlmIChjdXJyX3NlYXJjaF9jb3VudCA9PSAtMSkgewotLSAgICAgICAgICAg ICAgICAgICAgICAgIHBhZ2VkcmVzdWx0c19mcmVlX29uZShwYl9jb25uLCBvcGVyYXRpb24sIHBy X2lkeCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgcGFnZWRyZXN1bHRzX2ZyZWVfb25lKHBi X2Nvbm4sIG9wZXJhdGlvbiwgUFJfTk9UX0xPQ0tFRCwgcHJfaWR4KTsKLSAgICAgICAgICAgICAg ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgfQotIAotZGlmZiAtLWdpdCBhL2xkYXAvc2VydmVy cy9zbGFwZC9wYWdlZHJlc3VsdHMuYyBiL2xkYXAvc2VydmVycy9zbGFwZC9wYWdlZHJlc3VsdHMu YwotaW5kZXggOTQxYWI5N2UzLi4wZDZjNGExYWEgMTAwNjQ0Ci0tLS0gYS9sZGFwL3NlcnZlcnMv c2xhcGQvcGFnZWRyZXN1bHRzLmMKLSsrKyBiL2xkYXAvc2VydmVycy9zbGFwZC9wYWdlZHJlc3Vs dHMuYwotQEAgLTM0LDkgKzM0LDkgQEAgcGFnZXJlc3VsdF9sb2NrX2NsZWFudXAoKQotICAgICBz bGFwaV9jaF9mcmVlKCh2b2lkKiopJmxvY2tfaGFzaCk7Ci0gfQotIAotLS8qIEJld2FyZSB0byB0 aGUgbG9jayBvcmRlciB3aXRoIGNfbXV0ZXg6Ci0tICogY19tdXRleCBpcyBzb21ldGltZSBsb2Nr ZWQgd2hpbGUgaG9sZGluZyBwYWdlcmVzdWx0X2xvY2sKLS0gKiA9PT4gRG8gbm90IGxvY2sgcGFn ZXJlc3VsdF9sb2NrIHdoZW4gaG9saW5nIGNfbXV0ZXgKLSsvKiBMb2NrIG9yZGVyaW5nIGNvbnN0 cmFpbnQgd2l0aCBjX211dGV4OgotKyAqIGNfbXV0ZXggaXMgc29tZXRpbWVzIGxvY2tlZCB3aGls ZSBob2xkaW5nIHBhZ2VyZXN1bHRfbG9jay4KLSsgKiBUaGVyZWZvcmU6IERPIE5PVCBhY3F1aXJl IHBhZ2VyZXN1bHRfbG9jayB3aGVuIGhvbGRpbmcgY19tdXRleC4KLSAgKi8KLSBwdGhyZWFkX211 dGV4X3QgKgotIHBhZ2VyZXN1bHRfbG9ja19nZXRfYWRkcihDb25uZWN0aW9uICpjb25uKQotQEAg LTQ0LDcgKzQ0LDExIEBAIHBhZ2VyZXN1bHRfbG9ja19nZXRfYWRkcihDb25uZWN0aW9uICpjb25u KQotICAgICByZXR1cm4gJmxvY2tfaGFzaFsoKChzaXplX3QpY29ubikvc2l6ZW9mIChDb25uZWN0 aW9uKSklTE9DS19IQVNIX1NJWkVdOwotIH0KLSAKLS0vKiBoZWxwZXIgZnVuY3Rpb24gdG8gY2xl YW4gdXAgb25lIHBycCBzbG90ICovCi0rLyogaGVscGVyIGZ1bmN0aW9uIHRvIGNsZWFuIHVwIG9u ZSBwcnAgc2xvdAotKyAqCi0rICogTk9URTogVGhpcyBmdW5jdGlvbiBtdXN0IGJlIGNhbGxlZCB3 aGlsZSBob2xkaW5nIHRoZSBwYWdlcmVzdWx0X2xvY2sKLSsgKiAodmlhIHBhZ2VyZXN1bHRfbG9j a19nZXRfYWRkcihjb25uKSkgdG8gZW5zdXJlIHRocmVhZC1zYWZlIGNsZWFudXAuCi0rICovCi0g c3RhdGljIHZvaWQKLSBfcHJfY2xlYW51cF9vbmVfc2xvdChQYWdlZFJlc3VsdHMgKnBycCkKLSB7 Ci1AQCAtNTYsNyArNjAsNyBAQCBfcHJfY2xlYW51cF9vbmVfc2xvdChQYWdlZFJlc3VsdHMgKnBy cCkKLSAgICAgICAgIHBycC0+cHJfY3VycmVudF9iZS0+YmVfc2VhcmNoX3Jlc3VsdHNfcmVsZWFz ZSgmKHBycC0+cHJfc2VhcmNoX3Jlc3VsdF9zZXQpKTsKLSAgICAgfQotIAotLSAgICAvKiBjbGVh biB1cCB0aGUgc2xvdCBleGNlcHQgdGhlIG11dGV4ICovCi0rICAgIC8qIGNsZWFuIHVwIHRoZSBz bG90ICovCi0gICAgIHBycC0+cHJfY3VycmVudF9iZSA9IE5VTEw7Ci0gICAgIHBycC0+cHJfc2Vh cmNoX3Jlc3VsdF9zZXQgPSBOVUxMOwotICAgICBwcnAtPnByX3NlYXJjaF9yZXN1bHRfY291bnQg PSAwOwotQEAgLTEzNiw2ICsxNDAsOCBAQCBwYWdlZHJlc3VsdHNfcGFyc2VfY29udHJvbF92YWx1 ZShTbGFwaV9QQmxvY2sgKnBiLAotICAgICAgICAgcmV0dXJuIExEQVBfVU5XSUxMSU5HX1RPX1BF UkZPUk07Ci0gICAgIH0KLSAKLSsgICAgLyogQWNxdWlyZSBoYXNoLWJhc2VkIGxvY2sgZm9yIHBh Z2VkIHJlc3VsdHMgbGlzdCBhY2Nlc3MKLSsgICAgICogSU1QT1JUQU5UOiBOZXZlciBhY3F1aXJl IHRoaXMgbG9jayB3aGVuIGhvbGRpbmcgY19tdXRleCAqLwotICAgICBwdGhyZWFkX211dGV4X2xv Y2socGFnZXJlc3VsdF9sb2NrX2dldF9hZGRyKGNvbm4pKTsKLSAgICAgLyogdGhlIGJlciBlbmNv ZGluZyBpcyBubyBsb25nZXIgbmVlZGVkICovCi0gICAgIGJlcl9mcmVlKGJlciwgMSk7Ci1AQCAt MTg0LDEwICsxOTAsNiBAQCBwYWdlZHJlc3VsdHNfcGFyc2VfY29udHJvbF92YWx1ZShTbGFwaV9Q QmxvY2sgKnBiLAotICAgICAgICAgICAgIGdvdG8gYmFpbDsKLSAgICAgICAgIH0KLSAKLS0gICAg ICAgIGlmICgoKmluZGV4ID4gLTEpICYmICgqaW5kZXggPCBjb25uLT5jX3BhZ2VkcmVzdWx0cy5w cmxfbWF4bGVuKSAmJgotLSAgICAgICAgICAgICFjb25uLT5jX3BhZ2VkcmVzdWx0cy5wcmxfbGlz dFsqaW5kZXhdLnByX211dGV4KSB7Ci0tICAgICAgICAgICAgY29ubi0+Y19wYWdlZHJlc3VsdHMu cHJsX2xpc3RbKmluZGV4XS5wcl9tdXRleCA9IFBSX05ld0xvY2soKTsKLS0gICAgICAgIH0KLSAg ICAgICAgIGNvbm4tPmNfcGFnZWRyZXN1bHRzLnBybF9jb3VudCsrOwotICAgICB9IGVsc2Ugewot ICAgICAgICAgLyogUmVwZWF0ZWQgcGFnZWQgcmVzdWx0cyByZXF1ZXN0LgotQEAgLTMyNyw4ICsz MjksMTQgQEAgYmFpbG91dDoKLSAgICAgICAgICAgICAgICAgICAiPD0gaWR4PSVkXG4iLCBpbmRl eCk7Ci0gfQotIAotKy8qCi0rICogRnJlZSBvbmUgcGFnZWQgcmVzdWx0IGVudHJ5IGJ5IGluZGV4 LgotKyAqCi0rICogTG9ja2luZzogSWYgbG9ja2VkPTAsIGFjcXVpcmVzIHBhZ2VyZXN1bHRfbG9j ay4gSWYgbG9ja2VkPTEsIGFzc3VtZXMKLSsgKiBjYWxsZXIgYWxyZWFkeSBob2xkcyBwYWdlcmVz dWx0X2xvY2suIE5ldmVyIGNhbGwgd2hlbiBob2xkaW5nIGNfbXV0ZXguCi0rICovCi0gaW50Ci0t cGFnZWRyZXN1bHRzX2ZyZWVfb25lKENvbm5lY3Rpb24gKmNvbm4sIE9wZXJhdGlvbiAqb3AsIGlu dCBpbmRleCkKLStwYWdlZHJlc3VsdHNfZnJlZV9vbmUoQ29ubmVjdGlvbiAqY29ubiwgT3BlcmF0 aW9uICpvcCwgYm9vbCBsb2NrZWQsIGludCBpbmRleCkKLSB7Ci0gICAgIGludCByYyA9IC0xOwot IAotQEAgLTMzOCw3ICszNDYsOSBAQCBwYWdlZHJlc3VsdHNfZnJlZV9vbmUoQ29ubmVjdGlvbiAq Y29ubiwgT3BlcmF0aW9uICpvcCwgaW50IGluZGV4KQotICAgICBzbGFwaV9sb2dfZXJyKFNMQVBJ X0xPR19UUkFDRSwgInBhZ2VkcmVzdWx0c19mcmVlX29uZSIsCi0gICAgICAgICAgICAgICAgICAg Ij0+IGlkeD0lZFxuIiwgaW5kZXgpOwotICAgICBpZiAoY29ubiAmJiAoaW5kZXggPiAtMSkpIHsK LS0gICAgICAgIHB0aHJlYWRfbXV0ZXhfbG9jayhwYWdlcmVzdWx0X2xvY2tfZ2V0X2FkZHIoY29u bikpOwotKyAgICAgICAgaWYgKCFsb2NrZWQpIHsKLSsgICAgICAgICAgICBwdGhyZWFkX211dGV4 X2xvY2socGFnZXJlc3VsdF9sb2NrX2dldF9hZGRyKGNvbm4pKTsKLSsgICAgICAgIH0KLSAgICAg ICAgIGlmIChjb25uLT5jX3BhZ2VkcmVzdWx0cy5wcmxfY291bnQgPD0gMCkgewotICAgICAgICAg ICAgIHNsYXBpX2xvZ19lcnIoU0xBUElfTE9HX1RSQUNFLCAicGFnZWRyZXN1bHRzX2ZyZWVfb25l IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb25uPSUiIFBSSXU2NCAiIHBhZ2VkIHJl cXVlc3RzIGxpc3QgY291bnQgaXMgJWRcbiIsCi1AQCAtMzQ5LDcgKzM1OSw5IEBAIHBhZ2VkcmVz dWx0c19mcmVlX29uZShDb25uZWN0aW9uICpjb25uLCBPcGVyYXRpb24gKm9wLCBpbnQgaW5kZXgp Ci0gICAgICAgICAgICAgY29ubi0+Y19wYWdlZHJlc3VsdHMucHJsX2NvdW50LS07Ci0gICAgICAg ICAgICAgcmMgPSAwOwotICAgICAgICAgfQotLSAgICAgICAgcHRocmVhZF9tdXRleF91bmxvY2so cGFnZXJlc3VsdF9sb2NrX2dldF9hZGRyKGNvbm4pKTsKLSsgICAgICAgIGlmICghbG9ja2VkKSB7 Ci0rICAgICAgICAgICAgcHRocmVhZF9tdXRleF91bmxvY2socGFnZXJlc3VsdF9sb2NrX2dldF9h ZGRyKGNvbm4pKTsKLSsgICAgICAgIH0KLSAgICAgfQotIAotICAgICBzbGFwaV9sb2dfZXJyKFNM QVBJX0xPR19UUkFDRSwgInBhZ2VkcmVzdWx0c19mcmVlX29uZSIsICI8PSAlZFxuIiwgcmMpOwot QEAgLTM1NywyMSArMzY5LDI4IEBAIHBhZ2VkcmVzdWx0c19mcmVlX29uZShDb25uZWN0aW9uICpj b25uLCBPcGVyYXRpb24gKm9wLCBpbnQgaW5kZXgpCi0gfQotIAotIC8qCi0tICogVXNlZCBmb3Ig YWJhbmRvbmluZyAtIHBhZ2VyZXN1bHRfbG9ja19nZXRfYWRkcihjb25uKSBpcyBhbHJlYWR5IGxv Y2tlZCBpbiBkb19hYmFuZG9uZS4KLSsgKiBGcmVlIG9uZSBwYWdlZCByZXN1bHQgZW50cnkgYnkg bWVzc2FnZSBJRC4KLSsgKgotKyAqIExvY2tpbmc6IElmIGxvY2tlZD0wLCBhY3F1aXJlcyBwYWdl cmVzdWx0X2xvY2suIElmIGxvY2tlZD0xLCBhc3N1bWVzCi0rICogY2FsbGVyIGFscmVhZHkgaG9s ZHMgcGFnZXJlc3VsdF9sb2NrLiBOZXZlciBjYWxsIHdoZW4gaG9sZGluZyBjX211dGV4LgotICAq LwotIGludAotLXBhZ2VkcmVzdWx0c19mcmVlX29uZV9tc2dpZChDb25uZWN0aW9uICpjb25uLCBi ZXJfaW50X3QgbXNnaWQsIHB0aHJlYWRfbXV0ZXhfdCAqbXV0ZXgpCi0rcGFnZWRyZXN1bHRzX2Zy ZWVfb25lX21zZ2lkKENvbm5lY3Rpb24gKmNvbm4sIGJlcl9pbnRfdCBtc2dpZCwgYm9vbCBsb2Nr ZWQpCi0gewotICAgICBpbnQgcmMgPSAtMTsKLSAgICAgaW50IGk7Ci0rICAgIHB0aHJlYWRfbXV0 ZXhfdCAqbG9jayA9IE5VTEw7Ci0gCi0gICAgIGlmIChjb25uICYmIChtc2dpZCA+IC0xKSkgewot ICAgICAgICAgaWYgKGNvbm4tPmNfcGFnZWRyZXN1bHRzLnBybF9tYXhsZW4gPD0gMCkgewotICAg ICAgICAgICAgIDsgLyogTm90IGEgcGFnZWQgcmVzdWx0LiAqLwotICAgICAgICAgfSBlbHNlIHsK LSAgICAgICAgICAgICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xPR19UUkFDRSwKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICJwYWdlZHJlc3VsdHNfZnJlZV9vbmVfbXNnaWRfbm9sb2NrIiwgIj0+ IG1zZ2lkPSVkXG4iLCBtc2dpZCk7Ci0tICAgICAgICAgICAgcHRocmVhZF9tdXRleF9sb2NrKG11 dGV4KTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICJwYWdlZHJlc3VsdHNfZnJlZV9vbmVf bXNnaWQiLCAiPT4gbXNnaWQ9JWRcbiIsIG1zZ2lkKTsKLSsgICAgICAgICAgICBsb2NrID0gcGFn ZXJlc3VsdF9sb2NrX2dldF9hZGRyKGNvbm4pOwotKyAgICAgICAgICAgIGlmICghbG9ja2VkKSB7 Ci0rICAgICAgICAgICAgICAgIHB0aHJlYWRfbXV0ZXhfbG9jayhsb2NrKTsKLSsgICAgICAgICAg ICB9Ci0gICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGNvbm4tPmNfcGFnZWRyZXN1bHRzLnBy bF9tYXhsZW47IGkrKykgewotICAgICAgICAgICAgICAgICBpZiAoY29ubi0+Y19wYWdlZHJlc3Vs dHMucHJsX2xpc3RbaV0ucHJfbXNnaWQgPT0gbXNnaWQpIHsKLSAgICAgICAgICAgICAgICAgICAg IFBhZ2VkUmVzdWx0cyAqcHJwID0gY29ubi0+Y19wYWdlZHJlc3VsdHMucHJsX2xpc3QgKyBpOwot QEAgLTM5MCw5ICs0MDksMTEgQEAgcGFnZWRyZXN1bHRzX2ZyZWVfb25lX21zZ2lkKENvbm5lY3Rp b24gKmNvbm4sIGJlcl9pbnRfdCBtc2dpZCwgcHRocmVhZF9tdXRleF90ICoKLSAgICAgICAgICAg ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgfQotLSAg ICAgICAgICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKG11dGV4KTsKLSsgICAgICAgICAgICBpZiAo IWxvY2tlZCkgewotKyAgICAgICAgICAgICAgICBwdGhyZWFkX211dGV4X3VubG9jayhsb2NrKTsK LSsgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgc2xhcGlfbG9nX2VycihTTEFQSV9MT0dfVFJB Q0UsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAicGFnZWRyZXN1bHRzX2ZyZWVfb25lX21z Z2lkX25vbG9jayIsICI8PSAlZFxuIiwgcmMpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAg InBhZ2VkcmVzdWx0c19mcmVlX29uZV9tc2dpZCIsICI8PSAlZFxuIiwgcmMpOwotICAgICAgICAg fQotICAgICB9Ci0gCi1AQCAtNDE4LDI5ICs0MzksNDMgQEAgcGFnZWRyZXN1bHRzX2dldF9jdXJy ZW50X2JlKENvbm5lY3Rpb24gKmNvbm4sIGludCBpbmRleCkKLSAgICAgcmV0dXJuIGJlOwotIH0K LSAKLSsvKgotKyAqIFNldCBjdXJyZW50IGJhY2tlbmQgZm9yIGEgcGFnZWQgcmVzdWx0IGVudHJ5 LgotKyAqCi0rICogTG9ja2luZzogSWYgbG9ja2VkPWZhbHNlLCBhY3F1aXJlcyBwYWdlcmVzdWx0 X2xvY2suIElmIGxvY2tlZD10cnVlLCBhc3N1bWVzCi0rICogY2FsbGVyIGFscmVhZHkgaG9sZHMg cGFnZXJlc3VsdF9sb2NrLiBOZXZlciBjYWxsIHdoZW4gaG9sZGluZyBjX211dGV4LgotKyAqLwot IGludAotLXBhZ2VkcmVzdWx0c19zZXRfY3VycmVudF9iZShDb25uZWN0aW9uICpjb25uLCBTbGFw aV9CYWNrZW5kICpiZSwgaW50IGluZGV4LCBpbnQgbm9sb2NrKQotK3BhZ2VkcmVzdWx0c19zZXRf Y3VycmVudF9iZShDb25uZWN0aW9uICpjb25uLCBTbGFwaV9CYWNrZW5kICpiZSwgaW50IGluZGV4 LCBib29sIGxvY2tlZCkKLSB7Ci0gICAgIGludCByYyA9IC0xOwotICAgICBzbGFwaV9sb2dfZXJy KFNMQVBJX0xPR19UUkFDRSwKLSAgICAgICAgICAgICAgICAgICAicGFnZWRyZXN1bHRzX3NldF9j dXJyZW50X2JlIiwgIj0+IGlkeD0lZFxuIiwgaW5kZXgpOwotICAgICBpZiAoY29ubiAmJiAoaW5k ZXggPiAtMSkpIHsKLS0gICAgICAgIGlmICghbm9sb2NrKQotKyAgICAgICAgaWYgKCFsb2NrZWQp IHsKLSAgICAgICAgICAgICBwdGhyZWFkX211dGV4X2xvY2socGFnZXJlc3VsdF9sb2NrX2dldF9h ZGRyKGNvbm4pKTsKLSsgICAgICAgIH0KLSAgICAgICAgIGlmIChpbmRleCA8IGNvbm4tPmNfcGFn ZWRyZXN1bHRzLnBybF9tYXhsZW4pIHsKLSAgICAgICAgICAgICBjb25uLT5jX3BhZ2VkcmVzdWx0 cy5wcmxfbGlzdFtpbmRleF0ucHJfY3VycmVudF9iZSA9IGJlOwotICAgICAgICAgfQotICAgICAg ICAgcmMgPSAwOwotLSAgICAgICAgaWYgKCFub2xvY2spCi0rICAgICAgICBpZiAoIWxvY2tlZCkg ewotICAgICAgICAgICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKHBhZ2VyZXN1bHRfbG9ja19nZXRf YWRkcihjb25uKSk7Ci0rICAgICAgICB9Ci0gICAgIH0KLSAgICAgc2xhcGlfbG9nX2VycihTTEFQ SV9MT0dfVFJBQ0UsCi0gICAgICAgICAgICAgICAgICAgInBhZ2VkcmVzdWx0c19zZXRfY3VycmVu dF9iZSIsICI8PSAlZFxuIiwgcmMpOwotICAgICByZXR1cm4gcmM7Ci0gfQotIAotKy8qCi0rICog R2V0IHNlYXJjaCByZXN1bHQgc2V0IGZvciBhIHBhZ2VkIHJlc3VsdCBlbnRyeS4KLSsgKgotKyAq IExvY2tpbmc6IElmIGxvY2tlZD0wLCBhY3F1aXJlcyBwYWdlcmVzdWx0X2xvY2suIElmIGxvY2tl ZD0xLCBhc3N1bWVzCi0rICogY2FsbGVyIGFscmVhZHkgaG9sZHMgcGFnZXJlc3VsdF9sb2NrLiBO ZXZlciBjYWxsIHdoZW4gaG9sZGluZyBjX211dGV4LgotKyAqLwotIHZvaWQgKgotLXBhZ2VkcmVz dWx0c19nZXRfc2VhcmNoX3Jlc3VsdChDb25uZWN0aW9uICpjb25uLCBPcGVyYXRpb24gKm9wLCBp bnQgbG9ja2VkLCBpbnQgaW5kZXgpCi0rcGFnZWRyZXN1bHRzX2dldF9zZWFyY2hfcmVzdWx0KENv bm5lY3Rpb24gKmNvbm4sIE9wZXJhdGlvbiAqb3AsIGJvb2wgbG9ja2VkLCBpbnQgaW5kZXgpCi0g ewotICAgICB2b2lkICpzciA9IE5VTEw7Ci0gICAgIGlmICghb3BfaXNfcGFnZWRyZXN1bHRzKG9w KSkgewotQEAgLTQ2NSw4ICs1MDAsMTQgQEAgcGFnZWRyZXN1bHRzX2dldF9zZWFyY2hfcmVzdWx0 KENvbm5lY3Rpb24gKmNvbm4sIE9wZXJhdGlvbiAqb3AsIGludCBsb2NrZWQsIGludAotICAgICBy ZXR1cm4gc3I7Ci0gfQotIAotKy8qCi0rICogU2V0IHNlYXJjaCByZXN1bHQgc2V0IGZvciBhIHBh Z2VkIHJlc3VsdCBlbnRyeS4KLSsgKgotKyAqIExvY2tpbmc6IElmIGxvY2tlZD0wLCBhY3F1aXJl cyBwYWdlcmVzdWx0X2xvY2suIElmIGxvY2tlZD0xLCBhc3N1bWVzCi0rICogY2FsbGVyIGFscmVh ZHkgaG9sZHMgcGFnZXJlc3VsdF9sb2NrLiBOZXZlciBjYWxsIHdoZW4gaG9sZGluZyBjX211dGV4 LgotKyAqLwotIGludAotLXBhZ2VkcmVzdWx0c19zZXRfc2VhcmNoX3Jlc3VsdChDb25uZWN0aW9u ICpjb25uLCBPcGVyYXRpb24gKm9wLCB2b2lkICpzciwgaW50IGxvY2tlZCwgaW50IGluZGV4KQot K3BhZ2VkcmVzdWx0c19zZXRfc2VhcmNoX3Jlc3VsdChDb25uZWN0aW9uICpjb25uLCBPcGVyYXRp b24gKm9wLCB2b2lkICpzciwgYm9vbCBsb2NrZWQsIGludCBpbmRleCkKLSB7Ci0gICAgIGludCBy YyA9IC0xOwotICAgICBpZiAoIW9wX2lzX3BhZ2VkcmVzdWx0cyhvcCkpIHsKLUBAIC00OTQsOCAr NTM1LDE0IEBAIHBhZ2VkcmVzdWx0c19zZXRfc2VhcmNoX3Jlc3VsdChDb25uZWN0aW9uICpjb25u LCBPcGVyYXRpb24gKm9wLCB2b2lkICpzciwgaW50IGxvCi0gICAgIHJldHVybiByYzsKLSB9Ci0g Ci0rLyoKLSsgKiBHZXQgc2VhcmNoIHJlc3VsdCBjb3VudCBmb3IgYSBwYWdlZCByZXN1bHQgZW50 cnkuCi0rICoKLSsgKiBMb2NraW5nOiBJZiBsb2NrZWQ9MCwgYWNxdWlyZXMgcGFnZXJlc3VsdF9s b2NrLiBJZiBsb2NrZWQ9MSwgYXNzdW1lcwotKyAqIGNhbGxlciBhbHJlYWR5IGhvbGRzIHBhZ2Vy ZXN1bHRfbG9jay4gTmV2ZXIgY2FsbCB3aGVuIGhvbGRpbmcgY19tdXRleC4KLSsgKi8KLSBpbnQK LS1wYWdlZHJlc3VsdHNfZ2V0X3NlYXJjaF9yZXN1bHRfY291bnQoQ29ubmVjdGlvbiAqY29ubiwg T3BlcmF0aW9uICpvcCwgaW50IGluZGV4KQotK3BhZ2VkcmVzdWx0c19nZXRfc2VhcmNoX3Jlc3Vs dF9jb3VudChDb25uZWN0aW9uICpjb25uLCBPcGVyYXRpb24gKm9wLCBib29sIGxvY2tlZCwgaW50 IGluZGV4KQotIHsKLSAgICAgaW50IGNvdW50ID0gMDsKLSAgICAgaWYgKCFvcF9pc19wYWdlZHJl c3VsdHMob3ApKSB7Ci1AQCAtNTA0LDE5ICs1NTEsMjkgQEAgcGFnZWRyZXN1bHRzX2dldF9zZWFy Y2hfcmVzdWx0X2NvdW50KENvbm5lY3Rpb24gKmNvbm4sIE9wZXJhdGlvbiAqb3AsIGludCBpbmRl eCkKLSAgICAgc2xhcGlfbG9nX2VycihTTEFQSV9MT0dfVFJBQ0UsCi0gICAgICAgICAgICAgICAg ICAgInBhZ2VkcmVzdWx0c19nZXRfc2VhcmNoX3Jlc3VsdF9jb3VudCIsICI9PiBpZHg9JWRcbiIs IGluZGV4KTsKLSAgICAgaWYgKGNvbm4gJiYgKGluZGV4ID4gLTEpKSB7Ci0tICAgICAgICBwdGhy ZWFkX211dGV4X2xvY2socGFnZXJlc3VsdF9sb2NrX2dldF9hZGRyKGNvbm4pKTsKLSsgICAgICAg IGlmICghbG9ja2VkKSB7Ci0rICAgICAgICAgICAgcHRocmVhZF9tdXRleF9sb2NrKHBhZ2VyZXN1 bHRfbG9ja19nZXRfYWRkcihjb25uKSk7Ci0rICAgICAgICB9Ci0gICAgICAgICBpZiAoaW5kZXgg PCBjb25uLT5jX3BhZ2VkcmVzdWx0cy5wcmxfbWF4bGVuKSB7Ci0gICAgICAgICAgICAgY291bnQg PSBjb25uLT5jX3BhZ2VkcmVzdWx0cy5wcmxfbGlzdFtpbmRleF0ucHJfc2VhcmNoX3Jlc3VsdF9j b3VudDsKLSAgICAgICAgIH0KLS0gICAgICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKHBhZ2VyZXN1 bHRfbG9ja19nZXRfYWRkcihjb25uKSk7Ci0rICAgICAgICBpZiAoIWxvY2tlZCkgewotKyAgICAg ICAgICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKHBhZ2VyZXN1bHRfbG9ja19nZXRfYWRkcihjb25u KSk7Ci0rICAgICAgICB9Ci0gICAgIH0KLSAgICAgc2xhcGlfbG9nX2VycihTTEFQSV9MT0dfVFJB Q0UsCi0gICAgICAgICAgICAgICAgICAgInBhZ2VkcmVzdWx0c19nZXRfc2VhcmNoX3Jlc3VsdF9j b3VudCIsICI8PSAlZFxuIiwgY291bnQpOwotICAgICByZXR1cm4gY291bnQ7Ci0gfQotIAotKy8q Ci0rICogU2V0IHNlYXJjaCByZXN1bHQgY291bnQgZm9yIGEgcGFnZWQgcmVzdWx0IGVudHJ5Lgot KyAqCi0rICogTG9ja2luZzogSWYgbG9ja2VkPTAsIGFjcXVpcmVzIHBhZ2VyZXN1bHRfbG9jay4g SWYgbG9ja2VkPTEsIGFzc3VtZXMKLSsgKiBjYWxsZXIgYWxyZWFkeSBob2xkcyBwYWdlcmVzdWx0 X2xvY2suIE5ldmVyIGNhbGwgd2hlbiBob2xkaW5nIGNfbXV0ZXguCi0rICovCi0gaW50Ci0tcGFn ZWRyZXN1bHRzX3NldF9zZWFyY2hfcmVzdWx0X2NvdW50KENvbm5lY3Rpb24gKmNvbm4sIE9wZXJh dGlvbiAqb3AsIGludCBjb3VudCwgaW50IGluZGV4KQotK3BhZ2VkcmVzdWx0c19zZXRfc2VhcmNo X3Jlc3VsdF9jb3VudChDb25uZWN0aW9uICpjb25uLCBPcGVyYXRpb24gKm9wLCBpbnQgY291bnQs IGJvb2wgbG9ja2VkLCBpbnQgaW5kZXgpCi0gewotICAgICBpbnQgcmMgPSAtMTsKLSAgICAgaWYg KCFvcF9pc19wYWdlZHJlc3VsdHMob3ApKSB7Ci1AQCAtNTI1LDExICs1ODIsMTUgQEAgcGFnZWRy ZXN1bHRzX3NldF9zZWFyY2hfcmVzdWx0X2NvdW50KENvbm5lY3Rpb24gKmNvbm4sIE9wZXJhdGlv biAqb3AsIGludCBjb3VudCwKLSAgICAgc2xhcGlfbG9nX2VycihTTEFQSV9MT0dfVFJBQ0UsCi0g ICAgICAgICAgICAgICAgICAgInBhZ2VkcmVzdWx0c19zZXRfc2VhcmNoX3Jlc3VsdF9jb3VudCIs ICI9PiBpZHg9JWRcbiIsIGluZGV4KTsKLSAgICAgaWYgKGNvbm4gJiYgKGluZGV4ID4gLTEpKSB7 Ci0tICAgICAgICBwdGhyZWFkX211dGV4X2xvY2socGFnZXJlc3VsdF9sb2NrX2dldF9hZGRyKGNv bm4pKTsKLSsgICAgICAgIGlmICghbG9ja2VkKSB7Ci0rICAgICAgICAgICAgcHRocmVhZF9tdXRl eF9sb2NrKHBhZ2VyZXN1bHRfbG9ja19nZXRfYWRkcihjb25uKSk7Ci0rICAgICAgICB9Ci0gICAg ICAgICBpZiAoaW5kZXggPCBjb25uLT5jX3BhZ2VkcmVzdWx0cy5wcmxfbWF4bGVuKSB7Ci0gICAg ICAgICAgICAgY29ubi0+Y19wYWdlZHJlc3VsdHMucHJsX2xpc3RbaW5kZXhdLnByX3NlYXJjaF9y ZXN1bHRfY291bnQgPSBjb3VudDsKLSAgICAgICAgIH0KLS0gICAgICAgIHB0aHJlYWRfbXV0ZXhf dW5sb2NrKHBhZ2VyZXN1bHRfbG9ja19nZXRfYWRkcihjb25uKSk7Ci0rICAgICAgICBpZiAoIWxv Y2tlZCkgewotKyAgICAgICAgICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKHBhZ2VyZXN1bHRfbG9j a19nZXRfYWRkcihjb25uKSk7Ci0rICAgICAgICB9Ci0gICAgICAgICByYyA9IDA7Ci0gICAgIH0K LSAgICAgc2xhcGlfbG9nX2VycihTTEFQSV9MT0dfVFJBQ0UsCi1AQCAtNTM3LDkgKzU5OCwxNiBA QCBwYWdlZHJlc3VsdHNfc2V0X3NlYXJjaF9yZXN1bHRfY291bnQoQ29ubmVjdGlvbiAqY29ubiwg T3BlcmF0aW9uICpvcCwgaW50IGNvdW50LAotICAgICByZXR1cm4gcmM7Ci0gfQotIAotKy8qCi0r ICogR2V0IHNlYXJjaCByZXN1bHQgc2V0IHNpemUgZXN0aW1hdGUgZm9yIGEgcGFnZWQgcmVzdWx0 IGVudHJ5LgotKyAqCi0rICogTG9ja2luZzogSWYgbG9ja2VkPTAsIGFjcXVpcmVzIHBhZ2VyZXN1 bHRfbG9jay4gSWYgbG9ja2VkPTEsIGFzc3VtZXMKLSsgKiBjYWxsZXIgYWxyZWFkeSBob2xkcyBw YWdlcmVzdWx0X2xvY2suIE5ldmVyIGNhbGwgd2hlbiBob2xkaW5nIGNfbXV0ZXguCi0rICovCi0g aW50Ci0gcGFnZWRyZXN1bHRzX2dldF9zZWFyY2hfcmVzdWx0X3NldF9zaXplX2VzdGltYXRlKENv bm5lY3Rpb24gKmNvbm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE9wZXJhdGlvbiAqb3AsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGJvb2wgbG9ja2VkLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaW5kZXgpCi0gewotICAgICBpbnQgY291bnQg PSAwOwotQEAgLTU1MCwxMSArNjE4LDE1IEBAIHBhZ2VkcmVzdWx0c19nZXRfc2VhcmNoX3Jlc3Vs dF9zZXRfc2l6ZV9lc3RpbWF0ZShDb25uZWN0aW9uICpjb25uLAotICAgICAgICAgICAgICAgICAg ICJwYWdlZHJlc3VsdHNfZ2V0X3NlYXJjaF9yZXN1bHRfc2V0X3NpemVfZXN0aW1hdGUiLAotICAg ICAgICAgICAgICAgICAgICI9PiBpZHg9JWRcbiIsIGluZGV4KTsKLSAgICAgaWYgKGNvbm4gJiYg KGluZGV4ID4gLTEpKSB7Ci0tICAgICAgICBwdGhyZWFkX211dGV4X2xvY2socGFnZXJlc3VsdF9s b2NrX2dldF9hZGRyKGNvbm4pKTsKLSsgICAgICAgIGlmICghbG9ja2VkKSB7Ci0rICAgICAgICAg ICAgcHRocmVhZF9tdXRleF9sb2NrKHBhZ2VyZXN1bHRfbG9ja19nZXRfYWRkcihjb25uKSk7Ci0r ICAgICAgICB9Ci0gICAgICAgICBpZiAoaW5kZXggPCBjb25uLT5jX3BhZ2VkcmVzdWx0cy5wcmxf bWF4bGVuKSB7Ci0gICAgICAgICAgICAgY291bnQgPSBjb25uLT5jX3BhZ2VkcmVzdWx0cy5wcmxf bGlzdFtpbmRleF0ucHJfc2VhcmNoX3Jlc3VsdF9zZXRfc2l6ZV9lc3RpbWF0ZTsKLSAgICAgICAg IH0KLS0gICAgICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKHBhZ2VyZXN1bHRfbG9ja19nZXRfYWRk cihjb25uKSk7Ci0rICAgICAgICBpZiAoIWxvY2tlZCkgewotKyAgICAgICAgICAgIHB0aHJlYWRf bXV0ZXhfdW5sb2NrKHBhZ2VyZXN1bHRfbG9ja19nZXRfYWRkcihjb25uKSk7Ci0rICAgICAgICB9 Ci0gICAgIH0KLSAgICAgc2xhcGlfbG9nX2VycihTTEFQSV9MT0dfVFJBQ0UsCi0gICAgICAgICAg ICAgICAgICAgInBhZ2VkcmVzdWx0c19nZXRfc2VhcmNoX3Jlc3VsdF9zZXRfc2l6ZV9lc3RpbWF0 ZSIsICI8PSAlZFxuIiwKLUBAIC01NjIsMTAgKzYzNCwxNyBAQCBwYWdlZHJlc3VsdHNfZ2V0X3Nl YXJjaF9yZXN1bHRfc2V0X3NpemVfZXN0aW1hdGUoQ29ubmVjdGlvbiAqY29ubiwKLSAgICAgcmV0 dXJuIGNvdW50OwotIH0KLSAKLSsvKgotKyAqIFNldCBzZWFyY2ggcmVzdWx0IHNldCBzaXplIGVz dGltYXRlIGZvciBhIHBhZ2VkIHJlc3VsdCBlbnRyeS4KLSsgKgotKyAqIExvY2tpbmc6IElmIGxv Y2tlZD0wLCBhY3F1aXJlcyBwYWdlcmVzdWx0X2xvY2suIElmIGxvY2tlZD0xLCBhc3N1bWVzCi0r ICogY2FsbGVyIGFscmVhZHkgaG9sZHMgcGFnZXJlc3VsdF9sb2NrLiBOZXZlciBjYWxsIHdoZW4g aG9sZGluZyBjX211dGV4LgotKyAqLwotIGludAotIHBhZ2VkcmVzdWx0c19zZXRfc2VhcmNoX3Jl c3VsdF9zZXRfc2l6ZV9lc3RpbWF0ZShDb25uZWN0aW9uICpjb25uLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPcGVyYXRpb24gKm9wLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgY291bnQsCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgbG9j a2VkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp bnQgaW5kZXgpCi0gewotICAgICBpbnQgcmMgPSAtMTsKLUBAIC01NzYsMTEgKzY1NSwxNSBAQCBw YWdlZHJlc3VsdHNfc2V0X3NlYXJjaF9yZXN1bHRfc2V0X3NpemVfZXN0aW1hdGUoQ29ubmVjdGlv biAqY29ubiwKLSAgICAgICAgICAgICAgICAgICAicGFnZWRyZXN1bHRzX3NldF9zZWFyY2hfcmVz dWx0X3NldF9zaXplX2VzdGltYXRlIiwKLSAgICAgICAgICAgICAgICAgICAiPT4gaWR4PSVkXG4i LCBpbmRleCk7Ci0gICAgIGlmIChjb25uICYmIChpbmRleCA+IC0xKSkgewotLSAgICAgICAgcHRo cmVhZF9tdXRleF9sb2NrKHBhZ2VyZXN1bHRfbG9ja19nZXRfYWRkcihjb25uKSk7Ci0rICAgICAg ICBpZiAoIWxvY2tlZCkgewotKyAgICAgICAgICAgIHB0aHJlYWRfbXV0ZXhfbG9jayhwYWdlcmVz dWx0X2xvY2tfZ2V0X2FkZHIoY29ubikpOwotKyAgICAgICAgfQotICAgICAgICAgaWYgKGluZGV4 IDwgY29ubi0+Y19wYWdlZHJlc3VsdHMucHJsX21heGxlbikgewotICAgICAgICAgICAgIGNvbm4t PmNfcGFnZWRyZXN1bHRzLnBybF9saXN0W2luZGV4XS5wcl9zZWFyY2hfcmVzdWx0X3NldF9zaXpl X2VzdGltYXRlID0gY291bnQ7Ci0gICAgICAgICB9Ci0tICAgICAgICBwdGhyZWFkX211dGV4X3Vu bG9jayhwYWdlcmVzdWx0X2xvY2tfZ2V0X2FkZHIoY29ubikpOwotKyAgICAgICAgaWYgKCFsb2Nr ZWQpIHsKLSsgICAgICAgICAgICBwdGhyZWFkX211dGV4X3VubG9jayhwYWdlcmVzdWx0X2xvY2tf Z2V0X2FkZHIoY29ubikpOwotKyAgICAgICAgfQotICAgICAgICAgcmMgPSAwOwotICAgICB9Ci0g ICAgIHNsYXBpX2xvZ19lcnIoU0xBUElfTE9HX1RSQUNFLAotQEAgLTU4OSw4ICs2NzIsMTQgQEAg cGFnZWRyZXN1bHRzX3NldF9zZWFyY2hfcmVzdWx0X3NldF9zaXplX2VzdGltYXRlKENvbm5lY3Rp b24gKmNvbm4sCi0gICAgIHJldHVybiByYzsKLSB9Ci0gCi0rLyoKLSsgKiBHZXQgd2l0aF9zb3J0 IGZsYWcgZm9yIGEgcGFnZWQgcmVzdWx0IGVudHJ5LgotKyAqCi0rICogTG9ja2luZzogSWYgbG9j a2VkPTAsIGFjcXVpcmVzIHBhZ2VyZXN1bHRfbG9jay4gSWYgbG9ja2VkPTEsIGFzc3VtZXMKLSsg KiBjYWxsZXIgYWxyZWFkeSBob2xkcyBwYWdlcmVzdWx0X2xvY2suIE5ldmVyIGNhbGwgd2hlbiBo b2xkaW5nIGNfbXV0ZXguCi0rICovCi0gaW50Ci0tcGFnZWRyZXN1bHRzX2dldF93aXRoX3NvcnQo Q29ubmVjdGlvbiAqY29ubiwgT3BlcmF0aW9uICpvcCwgaW50IGluZGV4KQotK3BhZ2VkcmVzdWx0 c19nZXRfd2l0aF9zb3J0KENvbm5lY3Rpb24gKmNvbm4sIE9wZXJhdGlvbiAqb3AsIGJvb2wgbG9j a2VkLCBpbnQgaW5kZXgpCi0gewotICAgICBpbnQgZmxhZ3MgPSAwOwotICAgICBpZiAoIW9wX2lz X3BhZ2VkcmVzdWx0cyhvcCkpIHsKLUBAIC01OTksMTkgKzY4OCwyOSBAQCBwYWdlZHJlc3VsdHNf Z2V0X3dpdGhfc29ydChDb25uZWN0aW9uICpjb25uLCBPcGVyYXRpb24gKm9wLCBpbnQgaW5kZXgp Ci0gICAgIHNsYXBpX2xvZ19lcnIoU0xBUElfTE9HX1RSQUNFLAotICAgICAgICAgICAgICAgICAg ICJwYWdlZHJlc3VsdHNfZ2V0X3dpdGhfc29ydCIsICI9PiBpZHg9JWRcbiIsIGluZGV4KTsKLSAg ICAgaWYgKGNvbm4gJiYgKGluZGV4ID4gLTEpKSB7Ci0tICAgICAgICBwdGhyZWFkX211dGV4X2xv Y2socGFnZXJlc3VsdF9sb2NrX2dldF9hZGRyKGNvbm4pKTsKLSsgICAgICAgIGlmICghbG9ja2Vk KSB7Ci0rICAgICAgICAgICAgcHRocmVhZF9tdXRleF9sb2NrKHBhZ2VyZXN1bHRfbG9ja19nZXRf YWRkcihjb25uKSk7Ci0rICAgICAgICB9Ci0gICAgICAgICBpZiAoaW5kZXggPCBjb25uLT5jX3Bh Z2VkcmVzdWx0cy5wcmxfbWF4bGVuKSB7Ci0gICAgICAgICAgICAgZmxhZ3MgPSBjb25uLT5jX3Bh Z2VkcmVzdWx0cy5wcmxfbGlzdFtpbmRleF0ucHJfZmxhZ3MgJiBDT05OX0ZMQUdfUEFHRURSRVNV TFRTX1dJVEhfU09SVDsKLSAgICAgICAgIH0KLS0gICAgICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2Nr KHBhZ2VyZXN1bHRfbG9ja19nZXRfYWRkcihjb25uKSk7Ci0rICAgICAgICBpZiAoIWxvY2tlZCkg ewotKyAgICAgICAgICAgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKHBhZ2VyZXN1bHRfbG9ja19nZXRf YWRkcihjb25uKSk7Ci0rICAgICAgICB9Ci0gICAgIH0KLSAgICAgc2xhcGlfbG9nX2VycihTTEFQ SV9MT0dfVFJBQ0UsCi0gICAgICAgICAgICAgICAgICAgInBhZ2VkcmVzdWx0c19nZXRfd2l0aF9z b3J0IiwgIjw9ICVkXG4iLCBmbGFncyk7Ci0gICAgIHJldHVybiBmbGFnczsKLSB9Ci0gCi0rLyoK LSsgKiBTZXQgd2l0aF9zb3J0IGZsYWcgZm9yIGEgcGFnZWQgcmVzdWx0IGVudHJ5LgotKyAqCi0r ICogTG9ja2luZzogSWYgbG9ja2VkPTAsIGFjcXVpcmVzIHBhZ2VyZXN1bHRfbG9jay4gSWYgbG9j a2VkPTEsIGFzc3VtZXMKLSsgKiBjYWxsZXIgYWxyZWFkeSBob2xkcyBwYWdlcmVzdWx0X2xvY2su IE5ldmVyIGNhbGwgd2hlbiBob2xkaW5nIGNfbXV0ZXguCi0rICovCi0gaW50Ci0tcGFnZWRyZXN1 bHRzX3NldF93aXRoX3NvcnQoQ29ubmVjdGlvbiAqY29ubiwgT3BlcmF0aW9uICpvcCwgaW50IGZs YWdzLCBpbnQgaW5kZXgpCi0rcGFnZWRyZXN1bHRzX3NldF93aXRoX3NvcnQoQ29ubmVjdGlvbiAq Y29ubiwgT3BlcmF0aW9uICpvcCwgaW50IGZsYWdzLCBib29sIGxvY2tlZCwgaW50IGluZGV4KQot IHsKLSAgICAgaW50IHJjID0gLTE7Ci0gICAgIGlmICghb3BfaXNfcGFnZWRyZXN1bHRzKG9wKSkg ewotQEAgLTYyMCwxNCArNzE5LDE4IEBAIHBhZ2VkcmVzdWx0c19zZXRfd2l0aF9zb3J0KENvbm5l Y3Rpb24gKmNvbm4sIE9wZXJhdGlvbiAqb3AsIGludCBmbGFncywgaW50IGluZGV4Ci0gICAgIHNs YXBpX2xvZ19lcnIoU0xBUElfTE9HX1RSQUNFLAotICAgICAgICAgICAgICAgICAgICJwYWdlZHJl c3VsdHNfc2V0X3dpdGhfc29ydCIsICI9PiBpZHg9JWRcbiIsIGluZGV4KTsKLSAgICAgaWYgKGNv bm4gJiYgKGluZGV4ID4gLTEpKSB7Ci0tICAgICAgICBwdGhyZWFkX211dGV4X2xvY2socGFnZXJl c3VsdF9sb2NrX2dldF9hZGRyKGNvbm4pKTsKLSsgICAgICAgIGlmICghbG9ja2VkKSB7Ci0rICAg ICAgICAgICAgcHRocmVhZF9tdXRleF9sb2NrKHBhZ2VyZXN1bHRfbG9ja19nZXRfYWRkcihjb25u KSk7Ci0rICAgICAgICB9Ci0gICAgICAgICBpZiAoaW5kZXggPCBjb25uLT5jX3BhZ2VkcmVzdWx0 cy5wcmxfbWF4bGVuKSB7Ci0gICAgICAgICAgICAgaWYgKGZsYWdzICYgT1BfRkxBR19TRVJWRVJf U0lERV9TT1JUSU5HKSB7Ci0gICAgICAgICAgICAgICAgIGNvbm4tPmNfcGFnZWRyZXN1bHRzLnBy bF9saXN0W2luZGV4XS5wcl9mbGFncyB8PQotICAgICAgICAgICAgICAgICAgICAgQ09OTl9GTEFH X1BBR0VEUkVTVUxUU19XSVRIX1NPUlQ7Ci0gICAgICAgICAgICAgfQotICAgICAgICAgfQotLSAg ICAgICAgcHRocmVhZF9tdXRleF91bmxvY2socGFnZXJlc3VsdF9sb2NrX2dldF9hZGRyKGNvbm4p KTsKLSsgICAgICAgIGlmICghbG9ja2VkKSB7Ci0rICAgICAgICAgICAgcHRocmVhZF9tdXRleF91 bmxvY2socGFnZXJlc3VsdF9sb2NrX2dldF9hZGRyKGNvbm4pKTsKLSsgICAgICAgIH0KLSAgICAg ICAgIHJjID0gMDsKLSAgICAgfQotICAgICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xPR19UUkFDRSwg InBhZ2VkcmVzdWx0c19zZXRfd2l0aF9zb3J0IiwgIjw9ICVkXG4iLCByYyk7Ci1AQCAtODAyLDEw ICs5MDUsNiBAQCBwYWdlZHJlc3VsdHNfY2xlYW51cChDb25uZWN0aW9uICpjb25uLCBpbnQgbmVl ZGxvY2spCi0gICAgICAgICAgICAgcmMgPSAxOwotICAgICAgICAgfQotICAgICAgICAgcHJwLT5w cl9jdXJyZW50X2JlID0gTlVMTDsKLS0gICAgICAgIGlmIChwcnAtPnByX211dGV4KSB7Ci0tICAg ICAgICAgICAgUFJfRGVzdHJveUxvY2socHJwLT5wcl9tdXRleCk7Ci0tICAgICAgICAgICAgcHJw LT5wcl9tdXRleCA9IE5VTEw7Ci0tICAgICAgICB9Ci0gICAgICAgICBtZW1zZXQocHJwLCAnXDAn LCBzaXplb2YoUGFnZWRSZXN1bHRzKSk7Ci0gICAgIH0KLSAgICAgY29ubi0+Y19wYWdlZHJlc3Vs dHMucHJsX2NvdW50ID0gMDsKLUBAIC04NDAsMTAgKzkzOSw2IEBAIHBhZ2VkcmVzdWx0c19jbGVh bnVwX2FsbChDb25uZWN0aW9uICpjb25uLCBpbnQgbmVlZGxvY2spCi0gICAgICAgICAgICAgICAg IGkgPCBjb25uLT5jX3BhZ2VkcmVzdWx0cy5wcmxfbWF4bGVuOwotICAgICAgICAgIGkrKykgewot ICAgICAgICAgcHJwID0gY29ubi0+Y19wYWdlZHJlc3VsdHMucHJsX2xpc3QgKyBpOwotLSAgICAg ICAgaWYgKHBycC0+cHJfbXV0ZXgpIHsKLS0gICAgICAgICAgICBQUl9EZXN0cm95TG9jayhwcnAt PnByX211dGV4KTsKLS0gICAgICAgICAgICBwcnAtPnByX211dGV4ID0gTlVMTDsKLS0gICAgICAg IH0KLSAgICAgICAgIGlmIChwcnAtPnByX2N1cnJlbnRfYmUgJiYgcHJwLT5wcl9zZWFyY2hfcmVz dWx0X3NldCAmJgotICAgICAgICAgICAgIHBycC0+cHJfY3VycmVudF9iZS0+YmVfc2VhcmNoX3Jl c3VsdHNfcmVsZWFzZSkgewotICAgICAgICAgICAgIHBycC0+cHJfY3VycmVudF9iZS0+YmVfc2Vh cmNoX3Jlc3VsdHNfcmVsZWFzZSgmKHBycC0+cHJfc2VhcmNoX3Jlc3VsdF9zZXQpKTsKLUBAIC0x MDEwLDQzICsxMTA1LDggQEAgb3Bfc2V0X3BhZ2VkcmVzdWx0cyhPcGVyYXRpb24gKm9wKQotICAg ICBvcC0+b19mbGFncyB8PSBPUF9GTEFHX1BBR0VEX1JFU1VMVFM7Ci0gfQotIAotLS8qCi0tICog cGFnZWRyZXN1bHRzX2xvY2svdW5sb2NrIC0tIGludHJvZHVjZWQgdG8gcHJvdGVjdCBzZWFyY2gg cmVzdWx0cyBmb3IgdGhlCi0tICogYXN5bmNocm9ub3VzIHNlYXJjaGVzLiBEbyBub3QgY2FsbCB0 aGVzZSBmdW5jdGlvbnMgd2hpbGUgdGhlIFBSIGNvbm4gbG9jawotLSAqIGlzIGhlbGQgKGUuZy4g cGFnZXJlc3VsdF9sb2NrX2dldF9hZGRyKGNvbm4pKQotLSAqLwotLXZvaWQKLS1wYWdlZHJlc3Vs dHNfbG9jayhDb25uZWN0aW9uICpjb25uLCBpbnQgaW5kZXgpCi0tewotLSAgICBQYWdlZFJlc3Vs dHMgKnBycDsKLS0gICAgaWYgKCFjb25uIHx8IChpbmRleCA8IDApIHx8IChpbmRleCA+PSBjb25u LT5jX3BhZ2VkcmVzdWx0cy5wcmxfbWF4bGVuKSkgewotLSAgICAgICAgcmV0dXJuOwotLSAgICB9 Ci0tICAgIHB0aHJlYWRfbXV0ZXhfbG9jayhwYWdlcmVzdWx0X2xvY2tfZ2V0X2FkZHIoY29ubikp OwotLSAgICBwcnAgPSBjb25uLT5jX3BhZ2VkcmVzdWx0cy5wcmxfbGlzdCArIGluZGV4OwotLSAg ICBpZiAocHJwLT5wcl9tdXRleCkgewotLSAgICAgICAgUFJfTG9jayhwcnAtPnByX211dGV4KTsK LS0gICAgfQotLSAgICBwdGhyZWFkX211dGV4X3VubG9jayhwYWdlcmVzdWx0X2xvY2tfZ2V0X2Fk ZHIoY29ubikpOwotLX0KLS0KLS12b2lkCi0tcGFnZWRyZXN1bHRzX3VubG9jayhDb25uZWN0aW9u ICpjb25uLCBpbnQgaW5kZXgpCi0tewotLSAgICBQYWdlZFJlc3VsdHMgKnBycDsKLS0gICAgaWYg KCFjb25uIHx8IChpbmRleCA8IDApIHx8IChpbmRleCA+PSBjb25uLT5jX3BhZ2VkcmVzdWx0cy5w cmxfbWF4bGVuKSkgewotLSAgICAgICAgcmV0dXJuOwotLSAgICB9Ci0tICAgIHB0aHJlYWRfbXV0 ZXhfbG9jayhwYWdlcmVzdWx0X2xvY2tfZ2V0X2FkZHIoY29ubikpOwotLSAgICBwcnAgPSBjb25u LT5jX3BhZ2VkcmVzdWx0cy5wcmxfbGlzdCArIGluZGV4OwotLSAgICBpZiAocHJwLT5wcl9tdXRl eCkgewotLSAgICAgICAgUFJfVW5sb2NrKHBycC0+cHJfbXV0ZXgpOwotLSAgICB9Ci0tICAgIHB0 aHJlYWRfbXV0ZXhfdW5sb2NrKHBhZ2VyZXN1bHRfbG9ja19nZXRfYWRkcihjb25uKSk7Ci0tfQot LQotIGludAotLXBhZ2VkcmVzdWx0c19pc19hYmFuZG9uZWRfb3Jfbm90YXZhaWxhYmxlKENvbm5l Y3Rpb24gKmNvbm4sIGludCBsb2NrZWQsIGludCBpbmRleCkKLStwYWdlZHJlc3VsdHNfaXNfYWJh bmRvbmVkX29yX25vdGF2YWlsYWJsZShDb25uZWN0aW9uICpjb25uLCBib29sIGxvY2tlZCwgaW50 IGluZGV4KQotIHsKLSAgICAgUGFnZWRSZXN1bHRzICpwcnA7Ci0gICAgIGludDMyX3QgcmVzdWx0 OwotQEAgLTEwNjYsNyArMTEyNiw3IEBAIHBhZ2VkcmVzdWx0c19pc19hYmFuZG9uZWRfb3Jfbm90 YXZhaWxhYmxlKENvbm5lY3Rpb24gKmNvbm4sIGludCBsb2NrZWQsIGludCBpbmRlCi0gfQotIAot IGludAotLXBhZ2VkcmVzdWx0c19zZXRfc2VhcmNoX3Jlc3VsdF9wYihTbGFwaV9QQmxvY2sgKnBi LCB2b2lkICpzciwgaW50IGxvY2tlZCkKLStwYWdlZHJlc3VsdHNfc2V0X3NlYXJjaF9yZXN1bHRf cGIoU2xhcGlfUEJsb2NrICpwYiwgdm9pZCAqc3IsIGJvb2wgbG9ja2VkKQotIHsKLSAgICAgaW50 IHJjID0gLTE7Ci0gICAgIENvbm5lY3Rpb24gKmNvbm4gPSBOVUxMOwotZGlmZiAtLWdpdCBhL2xk YXAvc2VydmVycy9zbGFwZC9wcm90by1zbGFwLmggYi9sZGFwL3NlcnZlcnMvc2xhcGQvcHJvdG8t c2xhcC5oCi1pbmRleCA3NjVjMTJiZjUuLjQ1NWQ2ZDcxOCAxMDA2NDQKLS0tLSBhL2xkYXAvc2Vy dmVycy9zbGFwZC9wcm90by1zbGFwLmgKLSsrKyBiL2xkYXAvc2VydmVycy9zbGFwZC9wcm90by1z bGFwLmgKLUBAIC0xNjE0LDIwICsxNjE0LDIyIEBAIHB0aHJlYWRfbXV0ZXhfdCAqcGFnZXJlc3Vs dF9sb2NrX2dldF9hZGRyKENvbm5lY3Rpb24gKmNvbm4pOwotIGludCBwYWdlZHJlc3VsdHNfcGFy c2VfY29udHJvbF92YWx1ZShTbGFwaV9QQmxvY2sgKnBiLCBzdHJ1Y3QgYmVydmFsICpwc2J2cCwg YmVyX2ludF90ICpwYWdlc2l6ZSwgaW50ICppbmRleCwgU2xhcGlfQmFja2VuZCAqYmUpOwotIHZv aWQgcGFnZWRyZXN1bHRzX3NldF9yZXNwb25zZV9jb250cm9sKFNsYXBpX1BCbG9jayAqcGIsIGlu dCBpc2NyaXRpY2FsLCBiZXJfaW50X3QgZXN0aW1hdGUsIGludCBjdXJyX3NlYXJjaF9jb3VudCwg aW50IGluZGV4KTsKLSBTbGFwaV9CYWNrZW5kICpwYWdlZHJlc3VsdHNfZ2V0X2N1cnJlbnRfYmUo Q29ubmVjdGlvbiAqY29ubiwgaW50IGluZGV4KTsKLS1pbnQgcGFnZWRyZXN1bHRzX3NldF9jdXJy ZW50X2JlKENvbm5lY3Rpb24gKmNvbm4sIFNsYXBpX0JhY2tlbmQgKmJlLCBpbnQgaW5kZXgsIGlu dCBub2xvY2spOwotLXZvaWQgKnBhZ2VkcmVzdWx0c19nZXRfc2VhcmNoX3Jlc3VsdChDb25uZWN0 aW9uICpjb25uLCBPcGVyYXRpb24gKm9wLCBpbnQgbG9ja2VkLCBpbnQgaW5kZXgpOwotLWludCBw YWdlZHJlc3VsdHNfc2V0X3NlYXJjaF9yZXN1bHQoQ29ubmVjdGlvbiAqY29ubiwgT3BlcmF0aW9u ICpvcCwgdm9pZCAqc3IsIGludCBsb2NrZWQsIGludCBpbmRleCk7Ci0taW50IHBhZ2VkcmVzdWx0 c19nZXRfc2VhcmNoX3Jlc3VsdF9jb3VudChDb25uZWN0aW9uICpjb25uLCBPcGVyYXRpb24gKm9w LCBpbnQgaW5kZXgpOwotLWludCBwYWdlZHJlc3VsdHNfc2V0X3NlYXJjaF9yZXN1bHRfY291bnQo Q29ubmVjdGlvbiAqY29ubiwgT3BlcmF0aW9uICpvcCwgaW50IGNudCwgaW50IGluZGV4KTsKLStp bnQgcGFnZWRyZXN1bHRzX3NldF9jdXJyZW50X2JlKENvbm5lY3Rpb24gKmNvbm4sIFNsYXBpX0Jh Y2tlbmQgKmJlLCBpbnQgaW5kZXgsIGJvb2wgbG9ja2VkKTsKLSt2b2lkICpwYWdlZHJlc3VsdHNf Z2V0X3NlYXJjaF9yZXN1bHQoQ29ubmVjdGlvbiAqY29ubiwgT3BlcmF0aW9uICpvcCwgYm9vbCBs b2NrZWQsIGludCBpbmRleCk7Ci0raW50IHBhZ2VkcmVzdWx0c19zZXRfc2VhcmNoX3Jlc3VsdChD b25uZWN0aW9uICpjb25uLCBPcGVyYXRpb24gKm9wLCB2b2lkICpzciwgYm9vbCBsb2NrZWQsIGlu dCBpbmRleCk7Ci0raW50IHBhZ2VkcmVzdWx0c19nZXRfc2VhcmNoX3Jlc3VsdF9jb3VudChDb25u ZWN0aW9uICpjb25uLCBPcGVyYXRpb24gKm9wLCBib29sIGxvY2tlZCwgaW50IGluZGV4KTsKLStp bnQgcGFnZWRyZXN1bHRzX3NldF9zZWFyY2hfcmVzdWx0X2NvdW50KENvbm5lY3Rpb24gKmNvbm4s IE9wZXJhdGlvbiAqb3AsIGludCBjbnQsIGJvb2wgbG9ja2VkLCBpbnQgaW5kZXgpOwotIGludCBw YWdlZHJlc3VsdHNfZ2V0X3NlYXJjaF9yZXN1bHRfc2V0X3NpemVfZXN0aW1hdGUoQ29ubmVjdGlv biAqY29ubiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE9wZXJhdGlvbiAqb3AsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBib29sIGxvY2tlZCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpbmRleCk7Ci0gaW50IHBhZ2VkcmVz dWx0c19zZXRfc2VhcmNoX3Jlc3VsdF9zZXRfc2l6ZV9lc3RpbWF0ZShDb25uZWN0aW9uICpjb25u LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg T3BlcmF0aW9uICpvcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGludCBjbnQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBib29sIGxvY2tlZCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpbmRleCk7Ci0taW50IHBhZ2VkcmVz dWx0c19nZXRfd2l0aF9zb3J0KENvbm5lY3Rpb24gKmNvbm4sIE9wZXJhdGlvbiAqb3AsIGludCBp bmRleCk7Ci0taW50IHBhZ2VkcmVzdWx0c19zZXRfd2l0aF9zb3J0KENvbm5lY3Rpb24gKmNvbm4s IE9wZXJhdGlvbiAqb3AsIGludCBmbGFncywgaW50IGluZGV4KTsKLStpbnQgcGFnZWRyZXN1bHRz X2dldF93aXRoX3NvcnQoQ29ubmVjdGlvbiAqY29ubiwgT3BlcmF0aW9uICpvcCwgYm9vbCBsb2Nr ZWQsIGludCBpbmRleCk7Ci0raW50IHBhZ2VkcmVzdWx0c19zZXRfd2l0aF9zb3J0KENvbm5lY3Rp b24gKmNvbm4sIE9wZXJhdGlvbiAqb3AsIGludCBmbGFncywgYm9vbCBsb2NrZWQsIGludCBpbmRl eCk7Ci0gaW50IHBhZ2VkcmVzdWx0c19nZXRfdW5pbmRleGVkKENvbm5lY3Rpb24gKmNvbm4sIE9w ZXJhdGlvbiAqb3AsIGludCBpbmRleCk7Ci0gaW50IHBhZ2VkcmVzdWx0c19zZXRfdW5pbmRleGVk KENvbm5lY3Rpb24gKmNvbm4sIE9wZXJhdGlvbiAqb3AsIGludCBpbmRleCk7Ci0gaW50IHBhZ2Vk cmVzdWx0c19nZXRfc29ydF9yZXN1bHRfY29kZShDb25uZWN0aW9uICpjb25uLCBPcGVyYXRpb24g Km9wLCBpbnQgaW5kZXgpOwotQEAgLTE2MzksMTUgKzE2NDEsMTMgQEAgaW50IHBhZ2VkcmVzdWx0 c19jbGVhbnVwKENvbm5lY3Rpb24gKmNvbm4sIGludCBuZWVkbG9jayk7Ci0gaW50IHBhZ2VkcmVz dWx0c19pc190aW1lZG91dF9ub2xvY2soQ29ubmVjdGlvbiAqY29ubik7Ci0gaW50IHBhZ2VkcmVz dWx0c19yZXNldF90aW1lZG91dF9ub2xvY2soQ29ubmVjdGlvbiAqY29ubik7Ci0gaW50IHBhZ2Vk cmVzdWx0c19pbl91c2Vfbm9sb2NrKENvbm5lY3Rpb24gKmNvbm4pOwotLWludCBwYWdlZHJlc3Vs dHNfZnJlZV9vbmUoQ29ubmVjdGlvbiAqY29ubiwgT3BlcmF0aW9uICpvcCwgaW50IGluZGV4KTsK LS1pbnQgcGFnZWRyZXN1bHRzX2ZyZWVfb25lX21zZ2lkKENvbm5lY3Rpb24gKmNvbm4sIGJlcl9p bnRfdCBtc2dpZCwgcHRocmVhZF9tdXRleF90ICptdXRleCk7Ci0raW50IHBhZ2VkcmVzdWx0c19m cmVlX29uZShDb25uZWN0aW9uICpjb25uLCBPcGVyYXRpb24gKm9wLCBib29sIGxvY2tlZCwgaW50 IGluZGV4KTsKLStpbnQgcGFnZWRyZXN1bHRzX2ZyZWVfb25lX21zZ2lkKENvbm5lY3Rpb24gKmNv bm4sIGJlcl9pbnRfdCBtc2dpZCwgYm9vbCBsb2NrZWQpOwotIGludCBvcF9pc19wYWdlZHJlc3Vs dHMoT3BlcmF0aW9uICpvcCk7Ci0gaW50IHBhZ2VkcmVzdWx0c19jbGVhbnVwX2FsbChDb25uZWN0 aW9uICpjb25uLCBpbnQgbmVlZGxvY2spOwotIHZvaWQgb3Bfc2V0X3BhZ2VkcmVzdWx0cyhPcGVy YXRpb24gKm9wKTsKLS12b2lkIHBhZ2VkcmVzdWx0c19sb2NrKENvbm5lY3Rpb24gKmNvbm4sIGlu dCBpbmRleCk7Ci0tdm9pZCBwYWdlZHJlc3VsdHNfdW5sb2NrKENvbm5lY3Rpb24gKmNvbm4sIGlu dCBpbmRleCk7Ci0taW50IHBhZ2VkcmVzdWx0c19pc19hYmFuZG9uZWRfb3Jfbm90YXZhaWxhYmxl KENvbm5lY3Rpb24gKmNvbm4sIGludCBsb2NrZWQsIGludCBpbmRleCk7Ci0taW50IHBhZ2VkcmVz dWx0c19zZXRfc2VhcmNoX3Jlc3VsdF9wYihTbGFwaV9QQmxvY2sgKnBiLCB2b2lkICpzciwgaW50 IGxvY2tlZCk7Ci0raW50IHBhZ2VkcmVzdWx0c19pc19hYmFuZG9uZWRfb3Jfbm90YXZhaWxhYmxl KENvbm5lY3Rpb24gKmNvbm4sIGJvb2wgbG9ja2VkLCBpbnQgaW5kZXgpOwotK2ludCBwYWdlZHJl c3VsdHNfc2V0X3NlYXJjaF9yZXN1bHRfcGIoU2xhcGlfUEJsb2NrICpwYiwgdm9pZCAqc3IsIGJv b2wgbG9ja2VkKTsKLSAKLSAvKgotICAqIHNvcnQuYwotZGlmZiAtLWdpdCBhL2xkYXAvc2VydmVy cy9zbGFwZC9zbGFwLmggYi9sZGFwL3NlcnZlcnMvc2xhcGQvc2xhcC5oCi1pbmRleCAxMWM1NjAy ZTMuLmQ0OTQ5MzFjMiAxMDA2NDQKLS0tLSBhL2xkYXAvc2VydmVycy9zbGFwZC9zbGFwLmgKLSsr KyBiL2xkYXAvc2VydmVycy9zbGFwZC9zbGFwLmgKLUBAIC04OSw2ICs4OSwxMCBAQCBzdGF0aWMg Y2hhciBwdG9rUEJFWzM0XSA9ICJJbnRlcm5hbCAoU29mdHdhcmUpIFRva2VuICAgICAgICAiOwot ICNpbmNsdWRlIDxzdGRib29sLmg+Ci0gI2luY2x1ZGUgPHRpbWUuaD4gLyogRm9yIHRpbWVzcGVj IGRlZmluaXRpb25zICovCi0gCi0rLyogTWFjcm9zIGZvciBwYWdlZCByZXN1bHRzIGxvY2sgcGFy YW1ldGVyICovCi0rI2RlZmluZSBQUl9MT0NLRUQgdHJ1ZQotKyNkZWZpbmUgUFJfTk9UX0xPQ0tF RCBmYWxzZQotKwotIC8qIFByb3ZpZGVzIG91ciBpbnQgdHlwZXMgYW5kIHBsYXRmb3JtIHNwZWNp ZmljIHJlcXVpcmVtZW50cy4gKi8KLSAjaW5jbHVkZSA8c2xhcGlfcGFsLmg+Ci0gCi1AQCAtMTY2 OSw3ICsxNjczLDYgQEAgdHlwZWRlZiBzdHJ1Y3QgX3BhZ2VkX3Jlc3VsdHMKLSAgICAgc3RydWN0 IHRpbWVzcGVjIHByX3RpbWVsaW1pdF9ocjsgICAgICAgIC8qIGV4cGlyeSB0aW1lIG9mIHRoaXMg cmVxdWVzdCByZWwgdG8gY2xvY2sgbW9ub3RvbmljICovCi0gICAgIGludCBwcl9mbGFnczsKLSAg ICAgYmVyX2ludF90IHByX21zZ2lkOyAvKiBtc2dpZCBvZiB0aGUgcmVxdWVzdDsgdG8gYWJhbmRv biAqLwotLSAgICBQUkxvY2sgKnByX211dGV4OyAgIC8qIHByb3RlY3QgZWFjaCBjb25uIHN0cnVj dHVyZSAgICAqLwotIH0gUGFnZWRSZXN1bHRzOwotIAotIC8qIGFycmF5IG9mIHNpbXBsZSBwYWdl ZCBzdHJ1Y3R1cmUgc3Rhc2hlZCBpbiBjb25uZWN0aW9uICovCi0tLSAKLTIuNTIuMAotCgpkaWZm IC0tZ2l0IGEvMDAwMy1Jc3N1ZS03MTA4LUZpeC1zaHV0ZG93bi1jcmFzaC1pbi1lbnRyeS1jYWNo ZS1kZXN0cnVjLnBhdGNoIGIvMDAwMy1Jc3N1ZS03MTA4LUZpeC1zaHV0ZG93bi1jcmFzaC1pbi1l bnRyeS1jYWNoZS1kZXN0cnVjLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBi YjIxMjdjLi4wMDAwMDAwCi0tLSBhLzAwMDMtSXNzdWUtNzEwOC1GaXgtc2h1dGRvd24tY3Jhc2gt aW4tZW50cnktY2FjaGUtZGVzdHJ1Yy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE4MyArMCww IEBACi1Gcm9tIDQ5MzZmOTUzZmEzYjA3MjZjMmIxNzhmMTM1Y2Q3OGRjYWM3NDYzYmEgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTaW1vbiBQaWNodWdpbiA8c3BpY2h1Z2lAcmVkaGF0 LmNvbT4KLURhdGU6IFRodSwgOCBKYW4gMjAyNiAxMDowMjozOSAtMDgwMAotU3ViamVjdDogW1BB VENIXSBJc3N1ZSA3MTA4IC0gRml4IHNodXRkb3duIGNyYXNoIGluIGVudHJ5IGNhY2hlIGRlc3Ry dWN0aW9uCi0gKCM3MTYzKQotCi1EZXNjcmlwdGlvbjogVGhlIGVudHJ5IGNhY2hlIGNvdWxkIGV4 cGVyaWVuY2UgTFJVIGxpc3QgY29ycnVwdGlvbiB3aGVuCi11c2luZyBwaW5uZWQgZW50cmllcywg bGVhZGluZyB0byBjcmFzaGVzIGR1cmluZyBjYWNoZSBmbHVzaCBvcGVyYXRpb25zLgotCi1JbiBl bnRyeWNhY2hlX2FkZF9pbnQoKSwgd2hlbiByZXR1cm5pbmcgYW4gZXhpc3RpbmcgY2FjaGVkIGVu dHJ5LCB0aGUKLWNvZGUgY2hlY2tlZCB0aGUgd3JvbmcgZW50cnkncyBzdGF0ZSBiZWZvcmUgY2Fs bGluZyBscnVfZGVsZXRlKCkuIEl0Ci1jaGVja2VkIHRoZSBuZXcgZW50cnkgJ2UnIGJ1dCBvcGVy YXRlZCBvbiB0aGUgZXhpc3RpbmcgZW50cnkgJ215X2FsdCcsCi1jYXVzaW5nIGxydV9kZWxldGUo KSB0byBiZSBjYWxsZWQgb24gZW50cmllcyBub3QgaW4gdGhlIExSVSBsaXN0LiBUaGlzCi1pcyBm aXhlZCBieSBjaGVja2luZyBteV9hbHQncyByZWZjbnQgYW5kIHBpbm5lZCBzdGF0ZSBpbnN0ZWFk LgotCi1JbiBmbHVzaF9oYXNoKCksIHBpbm5lZF9yZW1vdmUoKSBhbmQgbHJ1X2RlbGV0ZSgpIHdl cmUgYm90aCBjYWxsZWQgb24KLXBpbm5lZCBlbnRyaWVzLiBTaW5jZSBwaW5uZWQgZW50cmllcyBh cmUgaW4gdGhlIHBpbm5lZCBsaXN0LCBjYWxsaW5nCi1scnVfZGVsZXRlKCkgYWZ0ZXJ3YXJkcyBj b3JydXB0ZWQgdGhlIGxpc3QuIFRoaXMgaXMgZml4ZWQgYnkgY2FsbGluZwotZWl0aGVyIHBpbm5l ZF9yZW1vdmUoKSBvciBscnVfZGVsZXRlKCkgYmFzZWQgb24gdGhlIGVudHJ5J3Mgc3RhdGUuCi0K LUEgTlVMTCBjaGVjayBpcyBhZGRlZCBpbiBlbnRyeWNhY2hlX2ZsdXNoKCkgYW5kIGRuY2FjaGVf Zmx1c2goKSB0bwotZ3JhY2VmdWxseSBoYW5kbGUgY29ycnVwdGVkIExSVSBsaXN0cyBhbmQgcHJl dmVudCBjcmFzaGVzIHdoZW4KLXRyYXZlcnNpbmcgYmFja3dhcmRzIHRocm91Z2ggdGhlIGxpc3Qg ZW5jb3VudGVycyBhbiB1bmV4cGVjdGVkIE5VTEwuCi0KLUVudHJ5IHBvaW50ZXJzIGFyZSBub3cg YWx3YXlzIGNsZWFyZWQgYWZ0ZXIgbHJ1X2RlbGV0ZSgpIHJlbW92YWwgdG8KLXByZXZlbnQgc3Rh bGUgcG9pbnRlciBpc3N1ZXMgaW4gbm9uLWRlYnVnIGJ1aWxkcy4KLQotRml4ZXM6IGh0dHBzOi8v Z2l0aHViLmNvbS8zODlkcy8zODktZHMtYmFzZS9pc3N1ZXMvNzEwOAotCi1SZXZpZXdlZCBieTog QHByb2dpZXIzODksIEB2YXNoaXJvdiAoVGhhbmtzISEpCi0tLS0KLSBsZGFwL3NlcnZlcnMvc2xh cGQvYmFjay1sZGJtL2NhY2hlLmMgfCA0OCArKysrKysrKysrKysrKysrKysrKysrKysrLS0tCi0g MSBmaWxlIGNoYW5nZWQsIDQzIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCi0KLWRpZmYg LS1naXQgYS9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2NhY2hlLmMgYi9sZGFwL3NlcnZl cnMvc2xhcGQvYmFjay1sZGJtL2NhY2hlLmMKLWluZGV4IDJlNDEyNjEzNC4uYTg3ZjMwNjg3IDEw MDY0NAotLS0tIGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9jYWNoZS5jCi0rKysgYi9s ZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2NhY2hlLmMKLUBAIC00NTgsMTEgKzQ1OCwxMyBA QCBzdGF0aWMgdm9pZAotIGxydV9kZWxldGUoc3RydWN0IGNhY2hlICpjYWNoZSwgdm9pZCAqcHRy KQotIHsKLSAgICAgc3RydWN0IGJhY2tjb21tb24gKmU7Ci0rCi0gICAgIGlmIChOVUxMID09IHB0 cikgewotICAgICAgICAgTE9HKCI9PiBscnVfZGVsZXRlXG48PSBscnVfZGVsZXRlIChudWxsIGVu dHJ5KVxuIik7Ci0gICAgICAgICByZXR1cm47Ci0gICAgIH0KLSAgICAgZSA9IChzdHJ1Y3QgYmFj a2NvbW1vbiAqKXB0cjsKLSsKLSAjaWZkZWYgTERBUF9DQUNIRV9ERUJVR19MUlUKLSAgICAgcGlu bmVkX3ZlcmlmeShjYWNoZSwgX19MSU5FX18pOwotICAgICBscnVfdmVyaWZ5KGNhY2hlLCBlLCAx KTsKLUBAIC00NzUsOCArNDc3LDkgQEAgbHJ1X2RlbGV0ZShzdHJ1Y3QgY2FjaGUgKmNhY2hlLCB2 b2lkICpwdHIpCi0gICAgICAgICBlLT5lcF9scnVuZXh0LT5lcF9scnVwcmV2ID0gZS0+ZXBfbHJ1 cHJldjsKLSAgICAgZWxzZQotICAgICAgICAgY2FjaGUtPmNfbHJ1dGFpbCA9IGUtPmVwX2xydXBy ZXY7Ci0tI2lmZGVmIExEQVBfQ0FDSEVfREVCVUdfTFJVCi0rICAgIC8qIEFsd2F5cyBjbGVhciBw b2ludGVycyBhZnRlciByZW1vdmFsIHRvIHByZXZlbnQgc3RhbGUgcG9pbnRlciBpc3N1ZXMgKi8K LSAgICAgZS0+ZXBfbHJ1bmV4dCA9IGUtPmVwX2xydXByZXYgPSBOVUxMOwotKyNpZmRlZiBMREFQ X0NBQ0hFX0RFQlVHX0xSVQotICAgICBscnVfdmVyaWZ5KGNhY2hlLCBlLCAwKTsKLSAjZW5kaWYK LSB9Ci1AQCAtNjMzLDkgKzYzNiwxNCBAQCBmbHVzaF9oYXNoKHN0cnVjdCBjYWNoZSAqY2FjaGUs IHN0cnVjdCB0aW1lc3BlYyAqc3RhcnRfdGltZSwgaW50MzJfdCB0eXBlKQotICAgICAgICAgICAg ICAgICBpZiAoZW50cnktPmVwX3JlZmNudCA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICBl bnRyeS0+ZXBfcmVmY250Kys7Ci0gICAgICAgICAgICAgICAgICAgICBpZiAoZW50cnktPmVwX3N0 YXRlICYgRU5UUllfU1RBVEVfUElOTkVEKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgLyog RW50cnkgaXMgaW4gcGlubmVkIGxpc3QsIG5vdCBMUlUgLSByZW1vdmUgZnJvbSBwaW5uZWQgb25s eS4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgKiBwaW5uZWRfcmVtb3ZlIGNsZWFycyBscnUg cG9pbnRlcnMgYW5kIHdvbid0IGFkZCB0byBMUlUgc2luY2UgcmVmY250ID4gMC4KLSsgICAgICAg ICAgICAgICAgICAgICAgICAgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICBwaW5uZWRfcmVt b3ZlKGNhY2hlLCBsYXN0ZSk7Ci0rICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotKyAgICAg ICAgICAgICAgICAgICAgICAgIC8qIEVudHJ5IGlzIGluIExSVSBsaXN0IC0gcmVtb3ZlIGZyb20g TFJVICovCi0rICAgICAgICAgICAgICAgICAgICAgICAgbHJ1X2RlbGV0ZShjYWNoZSwgbGFzdGUp OwotICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAgICAgbHJ1X2RlbGV0 ZShjYWNoZSwgbGFzdGUpOwotICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGUgPT0gRU5UUllf Q0FDSEUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeWNhY2hlX3JlbW92ZV9pbnQo Y2FjaGUsIGxhc3RlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeWNhY2hlX3JldHVy bihjYWNoZSwgKHN0cnVjdCBiYWNrZW50cnkgKiopJmxhc3RlLCBQUl9UUlVFKTsKLUBAIC02Nzks OSArNjg3LDE0IEBAIGZsdXNoX2hhc2goc3RydWN0IGNhY2hlICpjYWNoZSwgc3RydWN0IHRpbWVz cGVjICpzdGFydF90aW1lLCBpbnQzMl90IHR5cGUpCi0gICAgICAgICAgICAgICAgICAgICBpZiAo ZW50cnktPmVwX3JlZmNudCA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgZW50cnkt PmVwX3JlZmNudCsrOwotICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbnRyeS0+ZXBfc3Rh dGUgJiBFTlRSWV9TVEFURV9QSU5ORUQpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg LyogRW50cnkgaXMgaW4gcGlubmVkIGxpc3QsIG5vdCBMUlUgLSByZW1vdmUgZnJvbSBwaW5uZWQg b25seS4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogcGlubmVkX3JlbW92ZSBjbGVh cnMgbHJ1IHBvaW50ZXJzIGFuZCB3b24ndCBhZGQgdG8gTFJVIHNpbmNlIHJlZmNudCA+IDAuCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwaW5uZWRfcmVtb3ZlKGNhY2hlLCBsYXN0ZSk7Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgfSBlbHNlIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogRW50cnkgaXMgaW4g TFJVIGxpc3QgLSByZW1vdmUgZnJvbSBMUlUgKi8KLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbHJ1X2RlbGV0ZShjYWNoZSwgbGFzdGUpOwotICAgICAgICAgICAgICAgICAgICAgICAgIH0K LS0gICAgICAgICAgICAgICAgICAgICAgICBscnVfZGVsZXRlKGNhY2hlLCBsYXN0ZSk7Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgZW50cnljYWNoZV9yZW1vdmVfaW50KGNhY2hlLCBsYXN0ZSk7 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgZW50cnljYWNoZV9yZXR1cm4oY2FjaGUsIChzdHJ1 Y3QgYmFja2VudHJ5ICoqKSZsYXN0ZSwgUFJfVFJVRSk7Ci0gICAgICAgICAgICAgICAgICAgICB9 IGVsc2UgewotQEAgLTc3Miw2ICs3ODUsMTEgQEAgZW50cnljYWNoZV9mbHVzaChzdHJ1Y3QgY2Fj aGUgKmNhY2hlKQotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICBlID0gQkFDS19MUlVf UFJFVihlLCBzdHJ1Y3QgYmFja2VudHJ5ICopOwotICAgICAgICAgfQotKyAgICAgICAgaWYgKGUg PT0gTlVMTCkgewotKyAgICAgICAgICAgIHNsYXBpX2xvZ19lcnIoU0xBUElfTE9HX1dBUk5JTkcs ICJlbnRyeWNhY2hlX2ZsdXNoIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICJVbmV4cGVj dGVkIE5VTEwgZW50cnkgd2hpbGUgZmx1c2hpbmcgY2FjaGUgLSBMUlUgbGlzdCBtYXkgYmUgY29y cnVwdGVkXG4iKTsKLSsgICAgICAgICAgICBicmVhazsKLSsgICAgICAgIH0KLSAgICAgICAgIEFT U0VSVChlLT5lcF9yZWZjbnQgPT0gMCk7Ci0gICAgICAgICBlLT5lcF9yZWZjbnQrKzsKLSAgICAg ICAgIGlmIChlbnRyeWNhY2hlX3JlbW92ZV9pbnQoY2FjaGUsIGUpIDwgMCkgewotQEAgLTExNjAs NiArMTE3OCw3IEBAIHBpbm5lZF9yZW1vdmUoc3RydWN0IGNhY2hlICpjYWNoZSwgdm9pZCAqcHRy KQotIHsKLSAgICAgc3RydWN0IGJhY2tlbnRyeSAqZSA9IChzdHJ1Y3QgYmFja2VudHJ5ICopcHRy OwotICAgICBBU1NFUlQoZS0+ZXBfc3RhdGUgJiBFTlRSWV9TVEFURV9QSU5ORUQpOwotKwotICAg ICBjYWNoZS0+Y19waW5uZWRfY3R4LT5ucGlubmVkLS07Ci0gICAgIGNhY2hlLT5jX3Bpbm5lZF9j dHgtPnNpemUgLT0gZS0+ZXBfc2l6ZTsKLSAgICAgZS0+ZXBfc3RhdGUgJj0gfkVOVFJZX1NUQVRF X1BJTk5FRDsKLUBAIC0xMTcyLDEzICsxMTkxLDIzIEBAIHBpbm5lZF9yZW1vdmUoc3RydWN0IGNh Y2hlICpjYWNoZSwgdm9pZCAqcHRyKQotICAgICAgICAgICAgIGNhY2hlLT5jX3Bpbm5lZF9jdHgt PmhlYWQgPSBjYWNoZS0+Y19waW5uZWRfY3R4LT50YWlsID0gTlVMTDsKLSAgICAgICAgIH0gZWxz ZSB7Ci0gICAgICAgICAgICAgY2FjaGUtPmNfcGlubmVkX2N0eC0+aGVhZCA9IEJBQ0tfTFJVX05F WFQoZSwgc3RydWN0IGJhY2tlbnRyeSAqKTsKLSsgICAgICAgICAgICAvKiBVcGRhdGUgbmV3IGhl YWQncyBwcmV2IHBvaW50ZXIgdG8gTlVMTCAqLwotKyAgICAgICAgICAgIGlmIChjYWNoZS0+Y19w aW5uZWRfY3R4LT5oZWFkKSB7Ci0rICAgICAgICAgICAgICAgIGNhY2hlLT5jX3Bpbm5lZF9jdHgt PmhlYWQtPmVwX2xydXByZXYgPSBOVUxMOwotKyAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLSAg ICAgfSBlbHNlIGlmIChjYWNoZS0+Y19waW5uZWRfY3R4LT50YWlsID09IGUpIHsKLSAgICAgICAg IGNhY2hlLT5jX3Bpbm5lZF9jdHgtPnRhaWwgPSBCQUNLX0xSVV9QUkVWKGUsIHN0cnVjdCBiYWNr ZW50cnkgKik7Ci0rICAgICAgICAvKiBVcGRhdGUgbmV3IHRhaWwncyBuZXh0IHBvaW50ZXIgdG8g TlVMTCAqLwotKyAgICAgICAgaWYgKGNhY2hlLT5jX3Bpbm5lZF9jdHgtPnRhaWwpIHsKLSsgICAg ICAgICAgICBjYWNoZS0+Y19waW5uZWRfY3R4LT50YWlsLT5lcF9scnVuZXh0ID0gTlVMTDsKLSsg ICAgICAgIH0KLSAgICAgfSBlbHNlIHsKLSsgICAgICAgIC8qIE1pZGRsZSBvZiBsaXN0OiB1cGRh dGUgYm90aCBuZWlnaGJvcnMgdG8gcG9pbnQgdG8gZWFjaCBvdGhlciAqLwotICAgICAgICAgQkFD S19MUlVfUFJFVihlLCBzdHJ1Y3QgYmFja2VudHJ5ICopLT5lcF9scnVuZXh0ID0gQkFDS19MUlVf TkVYVChlLCBzdHJ1Y3QgYmFja2NvbW1vbiAqKTsKLSAgICAgICAgIEJBQ0tfTFJVX05FWFQoZSwg c3RydWN0IGJhY2tlbnRyeSAqKS0+ZXBfbHJ1cHJldiA9IEJBQ0tfTFJVX1BSRVYoZSwgc3RydWN0 IGJhY2tjb21tb24gKik7Ci0gICAgIH0KLSsgICAgLyogQ2xlYXIgdGhlIHJlbW92ZWQgZW50cnkn cyBwb2ludGVycyAqLwotICAgICBlLT5lcF9scnVuZXh0ID0gZS0+ZXBfbHJ1cHJldiA9IE5VTEw7 Ci0gICAgIGlmIChlLT5lcF9yZWZjbnQgPT0gMCkgewotICAgICAgICAgbHJ1X2FkZChjYWNoZSwg cHRyKTsKLUBAIC0xMjQ1LDYgKzEyNzQsNyBAQCBwaW5uZWRfYWRkKHN0cnVjdCBjYWNoZSAqY2Fj aGUsIHZvaWQgKnB0cikKLSAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgIH0KLSAgICAg LyogTm93IGl0IGlzIHRpbWUgdG8gaW5zZXJ0IHRoZSBlbnRyeSBpbiB0aGUgcGlubmVkIGxpc3Qg Ki8KLSsKLSAgICAgY2FjaGUtPmNfcGlubmVkX2N0eC0+bnBpbm5lZCsrOwotICAgICBjYWNoZS0+ Y19waW5uZWRfY3R4LT5zaXplICs9IGUtPmVwX3NpemU7Ci0gICAgIGUtPmVwX3N0YXRlIHw9IEVO VFJZX1NUQVRFX1BJTk5FRDsKLUBAIC0xNzU0LDcgKzE3ODQsNyBAQCBlbnRyeWNhY2hlX2FkZF9p bnQoc3RydWN0IGNhY2hlICpjYWNoZSwgc3RydWN0IGJhY2tlbnRyeSAqZSwgaW50IHN0YXRlLCBz dHJ1Y3QgYgotICAgICAgICAgICAgICAgICAgKiAzKSBlcF9zdGF0ZTogMCAmJiBzdGF0ZTogMAot ICAgICAgICAgICAgICAgICAgKiAgICA9PT4gaW5jcmVhc2UgdGhlIHJlZmNudAotICAgICAgICAg ICAgICAgICAgKi8KLS0gICAgICAgICAgICAgICAgaWYgKGUtPmVwX3JlZmNudCA9PSAwKQotKyAg ICAgICAgICAgICAgICBpZiAoZS0+ZXBfcmVmY250ID09IDAgJiYgKGUtPmVwX3N0YXRlICYgRU5U UllfU1RBVEVfUElOTkVEKSA9PSAwKQotICAgICAgICAgICAgICAgICAgICAgbHJ1X2RlbGV0ZShj YWNoZSwgKHZvaWQgKillKTsKLSAgICAgICAgICAgICAgICAgZS0+ZXBfcmVmY250Kys7Ci0gICAg ICAgICAgICAgICAgIGUtPmVwX3N0YXRlICY9IH5FTlRSWV9TVEFURV9VTkFWQUlMQUJMRTsKLUBA IC0xNzgxLDcgKzE4MTEsNyBAQCBlbnRyeWNhY2hlX2FkZF9pbnQoc3RydWN0IGNhY2hlICpjYWNo ZSwgc3RydWN0IGJhY2tlbnRyeSAqZSwgaW50IHN0YXRlLCBzdHJ1Y3QgYgotICAgICAgICAgICAg IH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgIGlmIChhbHQpIHsKLSAgICAgICAgICAgICAgICAg ICAgICphbHQgPSBteV9hbHQ7Ci0tICAgICAgICAgICAgICAgICAgICBpZiAoZS0+ZXBfcmVmY250 ID09IDAgJiYgKGUtPmVwX3N0YXRlICYgRU5UUllfU1RBVEVfUElOTkVEKSA9PSAwKQotKyAgICAg ICAgICAgICAgICAgICAgaWYgKG15X2FsdC0+ZXBfcmVmY250ID09IDAgJiYgKG15X2FsdC0+ZXBf c3RhdGUgJiBFTlRSWV9TVEFURV9QSU5ORUQpID09IDApCi0gICAgICAgICAgICAgICAgICAgICAg ICAgbHJ1X2RlbGV0ZShjYWNoZSwgKHZvaWQgKikqYWx0KTsKLSAgICAgICAgICAgICAgICAgICAg ICgqYWx0KS0+ZXBfcmVmY250Kys7Ci0gICAgICAgICAgICAgICAgICAgICBMT0coInRoZSBlbnRy eSAlcyBhbHJlYWR5IGV4aXN0cy4gIHJldHVybmluZyBleGlzdGluZyBlbnRyeSAlcyAoc3RhdGU6 IDB4JXgpXG4iLAotQEAgLTIzNzksNiArMjQwOSwxNCBAQCBkbmNhY2hlX2ZsdXNoKHN0cnVjdCBj YWNoZSAqY2FjaGUpCi0gICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgIGRuID0gQkFDS19M UlVfUFJFVihkbiwgc3RydWN0IGJhY2tkbiAqKTsKLSAgICAgICAgIH0KLSsgICAgICAgIGlmIChk biA9PSBOVUxMKSB7Ci0rICAgICAgICAgICAgLyogU2FmZXR5IGNoZWNrOiB3ZSBzaG91bGQgbm9y bWFsbHkgZXhpdCB2aWEgdGhlIENBQ0hFX0xSVV9IRUFEIGNoZWNrLgotKyAgICAgICAgICAgICAq IElmIHdlIGdldCBoZXJlLCBjX2xydWhlYWQgbWF5IGJlIE5VTEwgb3IgdGhlIExSVSBsaXN0IGlz IGNvcnJ1cHRlZC4KLSsgICAgICAgICAgICAgKi8KLSsgICAgICAgICAgICBzbGFwaV9sb2dfZXJy KFNMQVBJX0xPR19XQVJOSU5HLCAiZG5jYWNoZV9mbHVzaCIsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAiVW5leHBlY3RlZCBOVUxMIGVudHJ5IHdoaWxlIGZsdXNoaW5nIGNhY2hlIC0gTFJV IGxpc3QgbWF5IGJlIGNvcnJ1cHRlZFxuIik7Ci0rICAgICAgICAgICAgYnJlYWs7Ci0rICAgICAg ICB9Ci0gICAgICAgICBBU1NFUlQoZG4tPmVwX3JlZmNudCA9PSAwKTsKLSAgICAgICAgIGRuLT5l cF9yZWZjbnQrKzsKLSAgICAgICAgIGlmIChkbmNhY2hlX3JlbW92ZV9pbnQoY2FjaGUsIGRuKSA8 IDApIHsKLS0tIAotMi41Mi4wCi0KCmRpZmYgLS1naXQgYS8wMDA0LUlzc3VlLTcxNzItSW5kZXgt b3JkZXJpbmctbWlzbWF0Y2gtYWZ0ZXItdXBncmFkZS03MTcucGF0Y2ggYi8wMDA0LUlzc3VlLTcx NzItSW5kZXgtb3JkZXJpbmctbWlzbWF0Y2gtYWZ0ZXItdXBncmFkZS03MTcucGF0Y2gKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJlYTgwMGIuLjAwMDAwMDAKLS0tIGEvMDAwNC1Jc3N1 ZS03MTcyLUluZGV4LW9yZGVyaW5nLW1pc21hdGNoLWFmdGVyLXVwZ3JhZGUtNzE3LnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsMjE1ICswLDAgQEAKLUZyb20gNzQyYzEyZTAyNDdhYjY0ZTg3ZGEw MDBhNGRlMmYzZTVjOTkwNDRhYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFZpa3Rv ciBBc2hpcm92IDx2YXNoaXJvdkByZWRoYXQuY29tPgotRGF0ZTogRnJpLCA5IEphbiAyMDI2IDEx OjM5OjUwICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIElzc3VlIDcxNzIgLSBJbmRleCBvcmRlcmlu ZyBtaXNtYXRjaCBhZnRlciB1cGdyYWRlICgjNzE3MykKLQotQnVnIERlc2NyaXB0aW9uOgotQ29t bWl0IGRhZjczMWY1NTA3MWQ0NWVhZjQwM2E1MmI2M2QzNWY0ZTY5OWZmMjggaW50cm9kdWNlZCBh IHJlZ3Jlc3Npb24uCi1BZnRlciB1cGdyYWRpbmcgdG8gYSB2ZXJzaW9uIHRoYXQgYWRkcyBgaW50 ZWdlck9yZGVyaW5nTWF0Y2hgIG1hdGNoaW5nCi1ydWxlIHRvIGBwYXJlbnRpZGAgYW5kIGBhbmNl c3RvcmlkYCBpbmRleGVzLCBzZWFyY2hlcyBtYXkgcmV0dXJuIGVtcHR5Ci1vciBpbmNvcnJlY3Qg cmVzdWx0cy4KLQotVGhpcyBoYXBwZW5zIGJlY2F1c2UgdGhlIGV4aXN0aW5nIGluZGV4IGRhdGEg d2FzIGNyZWF0ZWQgd2l0aAotbGV4aWNvZ3JhcGhpYyBvcmRlcmluZywgYnV0IHRoZSBuZXcgY29t cGFyZSBmdW5jdGlvbiBleHBlY3RzIGludGVnZXIKLW9yZGVyaW5nLiBJbmRleCBsb29rdXBzIGZh aWwgYmVjYXVzZSB0aGUgY29tcGFyZSBmdW5jdGlvbiBkb2Vzbid0IG1hdGNoCi10aGUgZGF0YSBv cmRlcmluZy4KLVRoZSByb290IGNhdXNlIGlzIHRoYXQgYGxkYm1faW5zdGFuY2VfY3JlYXRlX2Rl ZmF1bHRfaW5kZXhlcygpYCBjYWxscwotYGF0dHJfaW5kZXhfY29uZmlnKClgIHVuY29uZGl0aW9u YWxseSBmb3IgYHBhcmVudGlkYCBhbmQgYGFuY2VzdG9yaWRgCi1pbmRleGVzLCB3aGljaCB0cmln Z2VycyBgYWluZm9fZHVwKClgIHRvIG92ZXJ3cml0ZSBgYWlfa2V5X2NtcF9mbmAgb24KLWV4aXN0 aW5nIGluZGV4ZXMuIFRoaXMgYnJlYWtzIGluZGV4ZXMgdGhhdCB3ZXJlIGNyZWF0ZWQgd2l0aG91 dCB0aGUKLWBpbnRlZ2VyT3JkZXJpbmdNYXRjaGAgbWF0Y2hpbmcgcnVsZS4KLQotRml4IERlc2Ny aXB0aW9uOgotKiBDYWxsIGBhdHRyX2luZGV4X2NvbmZpZygpYCBmb3IgYHBhcmVudGlkYCBhbmQg YGFuY2VzdG9yaWRgIGluZGV4ZXMKLW9ubHkgaWYgaW5kZXggY29uZmlnIGRvZXNuJ3QgZXhpc3Qu Ci0KLSogQWRkIGB1cGdyYWRlX2NoZWNrX2lkX2luZGV4X21hdGNoaW5nX3J1bGUoKWAgdGhhdCBs b2dzIGFuIGVycm9yIG9uCi1zZXJ2ZXIgc3RhcnR1cCBpZiBgcGFyZW50aWRgIG9yIGBhbmNlc3Rv cmlkYCBpbmRleGVzIGFyZSBtaXNzaW5nIHRoZQotaW50ZWdlck9yZGVyaW5nTWF0Y2ggbWF0Y2hp bmcgcnVsZSwgYWR2aXNpbmcgYWRtaW5pc3RyYXRvcnMgdG8gcmVpbmRleC4KLQotRml4ZXM6IGh0 dHBzOi8vZ2l0aHViLmNvbS8zODlkcy8zODktZHMtYmFzZS9pc3N1ZXMvNzE3MgotCi1SZXZpZXdl ZCBieTogQHRib3JkYXosIEBwcm9naWVyMzg5LCBAZHJvaWRlY2sgKFRoYW5rcyEpCi0tLS0KLSBs ZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2luc3RhbmNlLmMgfCAgMjUgKysrKy0tCi0gbGRh cC9zZXJ2ZXJzL3NsYXBkL3VwZ3JhZGUuYyAgICAgICAgICAgIHwgMTA3ICsrKysrKysrKysrKysr KysrKysrKysrLQotIDIgZmlsZXMgY2hhbmdlZCwgMTIzIGluc2VydGlvbnMoKyksIDkgZGVsZXRp b25zKC0pCi0KLWRpZmYgLS1naXQgYS9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2luc3Rh bmNlLmMgYi9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2luc3RhbmNlLmMKLWluZGV4IGNi MDAyYzM3OS4uNzFiZjBmNmZhIDEwMDY0NAotLS0tIGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2st bGRibS9pbnN0YW5jZS5jCi0rKysgYi9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2luc3Rh bmNlLmMKLUBAIC0xOTAsNiArMTkwLDcgQEAgbGRibV9pbnN0YW5jZV9jcmVhdGVfZGVmYXVsdF9p bmRleGVzKGJhY2tlbmQgKmJlKQotICAgICBjaGFyICphbmNlc3RvcmlkX2luZGV4ZXNfbGltaXQg PSBOVUxMOwotICAgICBjaGFyICpwYXJlbnRpZF9pbmRleGVzX2xpbWl0ID0gTlVMTDsKLSAgICAg c3RydWN0IGF0dHJpbmZvICphaSA9IE5VTEw7Ci0rICAgIHN0cnVjdCBhdHRyaW5mbyAqaW5kZXhf YWxyZWFkeV9jb25maWd1cmVkID0gTlVMTDsKLSAgICAgc3RydWN0IGluZGV4X2lkbGlzdHNpemVp bmZvICppdGVyOwotICAgICBpbnQgY29va2llOwotICAgICBpbnQgbGltaXQ7Ci1AQCAtMjQ4LDEw ICsyNDksMTQgQEAgbGRibV9pbnN0YW5jZV9jcmVhdGVfZGVmYXVsdF9pbmRleGVzKGJhY2tlbmQg KmJlKQotICAgICBsZGJtX2luc3RhbmNlX2NvbmZpZ19hZGRfaW5kZXhfZW50cnkoaW5zdCwgZSwg ZmxhZ3MpOwotICAgICBzbGFwaV9lbnRyeV9mcmVlKGUpOwotIAotLSAgICBlID0gbGRibV9pbnN0 YW5jZV9pbml0X2NvbmZpZ19lbnRyeShMREJNX1BBUkVOVElEX1NUUiwgImVxIiwgMCwgMCwgMCwg ImludGVnZXJPcmRlcmluZ01hdGNoIiwgcGFyZW50aWRfaW5kZXhlc19saW1pdCk7Ci0tICAgIGxk Ym1faW5zdGFuY2VfY29uZmlnX2FkZF9pbmRleF9lbnRyeShpbnN0LCBlLCBmbGFncyk7Ci0tICAg IGF0dHJfaW5kZXhfY29uZmlnKGJlLCAibGRibSBpbmRleCBpbml0IiwgMCwgZSwgMSwgMCwgTlVM TCk7Ci0tICAgIHNsYXBpX2VudHJ5X2ZyZWUoZSk7Ci0rICAgIGFpbmZvX2dldChiZSwgKGNoYXIg KilMREJNX1BBUkVOVElEX1NUUiwgJmFpKTsKLSsgICAgaW5kZXhfYWxyZWFkeV9jb25maWd1cmVk ID0gYWk7Ci0rICAgIGlmICghaW5kZXhfYWxyZWFkeV9jb25maWd1cmVkKSB7Ci0rICAgICAgICBl ID0gbGRibV9pbnN0YW5jZV9pbml0X2NvbmZpZ19lbnRyeShMREJNX1BBUkVOVElEX1NUUiwgImVx IiwgMCwgMCwgMCwgImludGVnZXJPcmRlcmluZ01hdGNoIiwgcGFyZW50aWRfaW5kZXhlc19saW1p dCk7Ci0rICAgICAgICBsZGJtX2luc3RhbmNlX2NvbmZpZ19hZGRfaW5kZXhfZW50cnkoaW5zdCwg ZSwgZmxhZ3MpOwotKyAgICAgICAgYXR0cl9pbmRleF9jb25maWcoYmUsICJsZGJtIGluZGV4IGlu aXQiLCAwLCBlLCAxLCAwLCBOVUxMKTsKLSsgICAgICAgIHNsYXBpX2VudHJ5X2ZyZWUoZSk7Ci0r ICAgIH0KLSAKLSAgICAgZSA9IGxkYm1faW5zdGFuY2VfaW5pdF9jb25maWdfZW50cnkoIm9iamVj dGNsYXNzIiwgImVxIiwgMCwgMCwgMCwgMCwgMCk7Ci0gICAgIGxkYm1faW5zdGFuY2VfY29uZmln X2FkZF9pbmRleF9lbnRyeShpbnN0LCBlLCBmbGFncyk7Ci1AQCAtMjg4LDEwICsyOTMsMTQgQEAg bGRibV9pbnN0YW5jZV9jcmVhdGVfZGVmYXVsdF9pbmRleGVzKGJhY2tlbmQgKmJlKQotICAgICAg KiBhbmNlc3RvcmlkIGlzIHNwZWNpYWwsIHRoZXJlIGlzIGFjdHVhbGx5IG5vIHN1Y2ggYXR0ciB0 eXBlCi0gICAgICAqIGJ1dCB3ZSBzdGlsbCB3YW50IHRvIHVzZSB0aGUgYXR0ciBpbmRleCBmaWxl IEFQSXMuCi0gICAgICAqLwotLSAgICBlID0gbGRibV9pbnN0YW5jZV9pbml0X2NvbmZpZ19lbnRy eShMREJNX0FOQ0VTVE9SSURfU1RSLCAiZXEiLCAwLCAwLCAwLCAiaW50ZWdlck9yZGVyaW5nTWF0 Y2giLCBhbmNlc3RvcmlkX2luZGV4ZXNfbGltaXQpOwotLSAgICBsZGJtX2luc3RhbmNlX2NvbmZp Z19hZGRfaW5kZXhfZW50cnkoaW5zdCwgZSwgZmxhZ3MpOwotLSAgICBhdHRyX2luZGV4X2NvbmZp ZyhiZSwgImxkYm0gaW5kZXggaW5pdCIsIDAsIGUsIDEsIDAsIE5VTEwpOwotLSAgICBzbGFwaV9l bnRyeV9mcmVlKGUpOwotKyAgICBhaW5mb19nZXQoYmUsIChjaGFyICopTERCTV9BTkNFU1RPUklE X1NUUiwgJmFpKTsKLSsgICAgaW5kZXhfYWxyZWFkeV9jb25maWd1cmVkID0gYWk7Ci0rICAgIGlm ICghaW5kZXhfYWxyZWFkeV9jb25maWd1cmVkKSB7Ci0rICAgICAgICBlID0gbGRibV9pbnN0YW5j ZV9pbml0X2NvbmZpZ19lbnRyeShMREJNX0FOQ0VTVE9SSURfU1RSLCAiZXEiLCAwLCAwLCAwLCAi aW50ZWdlck9yZGVyaW5nTWF0Y2giLCBhbmNlc3RvcmlkX2luZGV4ZXNfbGltaXQpOwotKyAgICAg ICAgbGRibV9pbnN0YW5jZV9jb25maWdfYWRkX2luZGV4X2VudHJ5KGluc3QsIGUsIGZsYWdzKTsK LSsgICAgICAgIGF0dHJfaW5kZXhfY29uZmlnKGJlLCAibGRibSBpbmRleCBpbml0IiwgMCwgZSwg MSwgMCwgTlVMTCk7Ci0rICAgICAgICBzbGFwaV9lbnRyeV9mcmVlKGUpOwotKyAgICB9Ci0gCi0g ICAgIHNsYXBpX2NoX2ZyZWVfc3RyaW5nKCZhbmNlc3RvcmlkX2luZGV4ZXNfbGltaXQpOwotICAg ICBzbGFwaV9jaF9mcmVlX3N0cmluZygmcGFyZW50aWRfaW5kZXhlc19saW1pdCk7Ci1kaWZmIC0t Z2l0IGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL3VwZ3JhZGUuYyBiL2xkYXAvc2VydmVycy9zbGFwZC91 cGdyYWRlLmMKLWluZGV4IDg1ODM5MjU2NC4uYjAyZTM3ZWQ2IDEwMDY0NAotLS0tIGEvbGRhcC9z ZXJ2ZXJzL3NsYXBkL3VwZ3JhZGUuYwotKysrIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL3VwZ3JhZGUu YwotQEAgLTMzMCw2ICszMzAsMTA3IEBAIHVwZ3JhZGVfcmVtb3ZlX3N1YnRyZWVfcmVuYW1lKHZv aWQpCi0gICAgIHJldHVybiBVUEdSQURFX1NVQ0NFU1M7Ci0gfQotIAotKy8qCi0rICogQ2hlY2sg aWYgcGFyZW50aWQvYW5jZXN0b3JpZCBpbmRleGVzIGFyZSBtaXNzaW5nIHRoZSBpbnRlZ2VyT3Jk ZXJpbmdNYXRjaAotKyAqIG1hdGNoaW5nIHJ1bGUuCi0rICoKLSsgKiBUaGlzIGZ1bmN0aW9uIGxv Z3MgYSB3YXJuaW5nIGlmIHdlIGRldGVjdCB0aGlzIGNvbmRpdGlvbiwgYWR2aXNpbmcKLSsgKiB0 aGUgYWRtaW5pc3RyYXRvciB0byByZWluZGV4IHRoZSBhZmZlY3RlZCBhdHRyaWJ1dGVzLgotKyAq LwotK3N0YXRpYyB1cGdyYWRlX3N0YXR1cwotK3VwZ3JhZGVfY2hlY2tfaWRfaW5kZXhfbWF0Y2hp bmdfcnVsZSh2b2lkKQotK3sKLSsgICAgc3RydWN0IHNsYXBpX3BibG9jayAqcGIgPSBzbGFwaV9w YmxvY2tfbmV3KCk7Ci0rICAgIFNsYXBpX0VudHJ5ICoqYmFja2VuZHMgPSBOVUxMOwotKyAgICBj b25zdCBjaGFyICpiZV9iYXNlX2RuID0gImNuPWxkYm0gZGF0YWJhc2UsY249cGx1Z2lucyxjbj1j b25maWciOwotKyAgICBjb25zdCBjaGFyICpiZV9maWx0ZXIgPSAiKG9iamVjdGNsYXNzPW5zQmFj a2VuZEluc3RhbmNlKSI7Ci0rICAgIGNvbnN0IGNoYXIgKmF0dHJzX3RvX2NoZWNrW10gPSB7InBh cmVudGlkIiwgImFuY2VzdG9yaWQiLCBOVUxMfTsKLSsgICAgdXBncmFkZV9zdGF0dXMgdXJlc3Vs dCA9IFVQR1JBREVfU1VDQ0VTUzsKLSsKLSsgICAgLyogU2VhcmNoIGZvciBhbGwgYmFja2VuZCBp bnN0YW5jZXMgKi8KLSsgICAgc2xhcGlfc2VhcmNoX2ludGVybmFsX3NldF9wYigKLSsgICAgICAg ICAgICBwYiwgYmVfYmFzZV9kbiwKLSsgICAgICAgICAgICBMREFQX1NDT1BFX09ORUxFVkVMLAot KyAgICAgICAgICAgIGJlX2ZpbHRlciwgTlVMTCwgMCwgTlVMTCwgTlVMTCwKLSsgICAgICAgICAg ICBwbHVnaW5fZ2V0X2RlZmF1bHRfY29tcG9uZW50X2lkKCksIDApOwotKyAgICBzbGFwaV9zZWFy Y2hfaW50ZXJuYWxfcGIocGIpOwotKyAgICBzbGFwaV9wYmxvY2tfZ2V0KHBiLCBTTEFQSV9QTFVH SU5fSU5UT1BfU0VBUkNIX0VOVFJJRVMsICZiYWNrZW5kcyk7Ci0rCi0rICAgIGlmIChiYWNrZW5k cykgewotKyAgICAgICAgZm9yIChzaXplX3QgYmVfaWR4ID0gMDsgYmFja2VuZHNbYmVfaWR4XSAh PSBOVUxMOyBiZV9pZHgrKykgewotKyAgICAgICAgICAgIGNvbnN0IGNoYXIgKmJlX25hbWUgPSBz bGFwaV9lbnRyeV9hdHRyX2dldF9yZWYoYmFja2VuZHNbYmVfaWR4XSwgImNuIik7Ci0rICAgICAg ICAgICAgaWYgKCFiZV9uYW1lKSB7Ci0rICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotKyAgICAg ICAgICAgIH0KLSsKLSsgICAgICAgICAgICAvKiBDaGVjayBlYWNoIGF0dHJpYnV0ZSB0aGF0IHNo b3VsZCBoYXZlIGludGVnZXJPcmRlcmluZ01hdGNoICovCi0rICAgICAgICAgICAgZm9yIChzaXpl X3QgYXR0cl9pZHggPSAwOyBhdHRyc190b19jaGVja1thdHRyX2lkeF0gIT0gTlVMTDsgYXR0cl9p ZHgrKykgewotKyAgICAgICAgICAgICAgICBjb25zdCBjaGFyICphdHRyX25hbWUgPSBhdHRyc190 b19jaGVja1thdHRyX2lkeF07Ci0rICAgICAgICAgICAgICAgIHN0cnVjdCBzbGFwaV9wYmxvY2sg KmlkeF9wYiA9IHNsYXBpX3BibG9ja19uZXcoKTsKLSsgICAgICAgICAgICAgICAgU2xhcGlfRW50 cnkgKippZHhfZW50cmllcyA9IE5VTEw7Ci0rICAgICAgICAgICAgICAgIGNoYXIgKmlkeF9kbiA9 IHNsYXBpX2NyZWF0ZV9kbl9zdHJpbmcoImNuPSVzLGNuPWluZGV4LGNuPSVzLCVzIiwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cl9u YW1lLCBiZV9uYW1lLCBiZV9iYXNlX2RuKTsKLSsgICAgICAgICAgICAgICAgY2hhciAqaWR4X2Zp bHRlciA9ICIob2JqZWN0Y2xhc3M9bnNJbmRleCkiOwotKyAgICAgICAgICAgICAgICBQUkJvb2wg aGFzX21hdGNoaW5nX3J1bGUgPSBQUl9GQUxTRTsKLSsKLSsgICAgICAgICAgICAgICAgaWYgKCFp ZHhfZG4pIHsKLSsgICAgICAgICAgICAgICAgICAgIHNsYXBpX3BibG9ja19kZXN0cm95KGlkeF9w Yik7Ci0rICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSsgICAgICAgICAgICAgICAgfQot KwotKyAgICAgICAgICAgICAgICBzbGFwaV9zZWFyY2hfaW50ZXJuYWxfc2V0X3BiKAotKyAgICAg ICAgICAgICAgICAgICAgICAgIGlkeF9wYiwgaWR4X2RuLAotKyAgICAgICAgICAgICAgICAgICAg ICAgIExEQVBfU0NPUEVfQkFTRSwKLSsgICAgICAgICAgICAgICAgICAgICAgICBpZHhfZmlsdGVy LCBOVUxMLCAwLCBOVUxMLCBOVUxMLAotKyAgICAgICAgICAgICAgICAgICAgICAgIHBsdWdpbl9n ZXRfZGVmYXVsdF9jb21wb25lbnRfaWQoKSwgMCk7Ci0rICAgICAgICAgICAgICAgIHNsYXBpX3Nl YXJjaF9pbnRlcm5hbF9wYihpZHhfcGIpOwotKyAgICAgICAgICAgICAgICBzbGFwaV9wYmxvY2tf Z2V0KGlkeF9wYiwgU0xBUElfUExVR0lOX0lOVE9QX1NFQVJDSF9FTlRSSUVTLCAmaWR4X2VudHJp ZXMpOwotKwotKyAgICAgICAgICAgICAgICBpZiAoaWR4X2VudHJpZXMgJiYgaWR4X2VudHJpZXNb MF0pIHsKLSsgICAgICAgICAgICAgICAgICAgIC8qIEluZGV4IGV4aXN0cywgY2hlY2sgaWYgaXQg aGFzIGludGVnZXJPcmRlcmluZ01hdGNoICovCi0rICAgICAgICAgICAgICAgICAgICBTbGFwaV9B dHRyICptcl9hdHRyID0gTlVMTDsKLSsgICAgICAgICAgICAgICAgICAgIGlmIChzbGFwaV9lbnRy eV9hdHRyX2ZpbmQoaWR4X2VudHJpZXNbMF0sICJuc01hdGNoaW5nUnVsZSIsICZtcl9hdHRyKSA9 PSAwKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgU2xhcGlfVmFsdWUgKnN2YWwgPSBOVUxM OwotKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBpZHg7Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgZm9yIChpZHggPSBzbGFwaV9hdHRyX2ZpcnN0X3ZhbHVlKG1yX2F0dHIsICZzdmFsKTsK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkeCAhPSAtMTsKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlkeCA9IHNsYXBpX2F0dHJfbmV4dF92YWx1ZShtcl9hdHRyLCBpZHgs ICZzdmFsKSkgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgYmVy dmFsICpidmFsID0gc2xhcGlfdmFsdWVfZ2V0X2JlcnZhbChzdmFsKTsKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgKGJ2YWwgJiYgYnZhbC0+YnZfdmFsICYmCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJjYXNlY21wKGJ2YWwtPmJ2X3ZhbCwgImludGVnZXJPcmRl cmluZ01hdGNoIikgPT0gMCkgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFz X21hdGNoaW5nX3J1bGUgPSBQUl9UUlVFOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYnJlYWs7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAg ICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICAgICAgICB9Ci0rCi0rICAgICAgICAgICAgICAg ICAgICBpZiAoIWhhc19tYXRjaGluZ19ydWxlKSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAg LyogSW5kZXggZXhpc3RzIGJ1dCBkb2Vzbid0IGhhdmUgaW50ZWdlck9yZGVyaW5nTWF0Y2gsIGxv ZyBhIHdhcm5pbmcgKi8KLSsgICAgICAgICAgICAgICAgICAgICAgICBzbGFwaV9sb2dfZXJyKFNM QVBJX0xPR19FUlIsICJ1cGdyYWRlX2NoZWNrX2lkX2luZGV4X21hdGNoaW5nX3J1bGUiLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkluZGV4ICclcycgaW4gYmFja2VuZCAnJXMn IGlzIG1pc3NpbmcgJ25zTWF0Y2hpbmdSdWxlOiBpbnRlZ2VyT3JkZXJpbmdNYXRjaCcuICIKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbmNvcnJlY3RseSBjb25maWd1cmVkIHN5 c3RlbSBpbmRleGVzIGNhbiBsZWFkIHRvIHBvb3Igc2VhcmNoIHBlcmZvcm1hbmNlLCByZXBsaWNh dGlvbiBpc3N1ZXMsIGFuZCBvdGhlciBvcGVyYXRpb25hbCBwcm9ibGVtcy4gIgotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIlRvIGZpeCB0aGlzLCBhZGQgdGhlIG1hdGNoaW5nIHJ1 bGUgYW5kIHJlaW5kZXg6ICIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkc2Nv bmYgPGluc3RhbmNlPiBiYWNrZW5kIGluZGV4IHNldCAtLWFkZC1tciBpbnRlZ2VyT3JkZXJpbmdN YXRjaCAtLWF0dHIgJXMgJXMgJiYgIgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ImRzY29uZiA8aW5zdGFuY2U+IGJhY2tlbmQgaW5kZXggcmVpbmRleCAtLWF0dHIgJXMgJXMuICIK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJXQVJOSU5HOiBSZWluZGV4aW5nIGNh biBiZSByZXNvdXJjZS1pbnRlbnNpdmUgYW5kIG1heSBpbXBhY3Qgc2VydmVyIHBlcmZvcm1hbmNl IG9uIGEgbGl2ZSBzeXN0ZW0uICIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJD b25zaWRlciBzY2hlZHVsaW5nIHJlaW5kZXhpbmcgZHVyaW5nIG1haW50ZW5hbmNlIHdpbmRvd3Mg b3IgcGVyaW9kcyBvZiBsb3cgYWN0aXZpdHkuXG4iLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXR0cl9uYW1lLCBiZV9uYW1lLCBhdHRyX25hbWUsIGJlX25hbWUsIGF0dHJfbmFt ZSwgYmVfbmFtZSk7Ci0rICAgICAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICAgIH0K LSsKLSsgICAgICAgICAgICAgICAgc2xhcGlfY2hfZnJlZV9zdHJpbmcoJmlkeF9kbik7Ci0rICAg ICAgICAgICAgICAgIHNsYXBpX2ZyZWVfc2VhcmNoX3Jlc3VsdHNfaW50ZXJuYWwoaWR4X3BiKTsK LSsgICAgICAgICAgICAgICAgc2xhcGlfcGJsb2NrX2Rlc3Ryb3koaWR4X3BiKTsKLSsgICAgICAg ICAgICB9Ci0rICAgICAgICB9Ci0rICAgIH0KLSsKLSsgICAgc2xhcGlfZnJlZV9zZWFyY2hfcmVz dWx0c19pbnRlcm5hbChwYik7Ci0rICAgIHNsYXBpX3BibG9ja19kZXN0cm95KHBiKTsKLSsKLSsg ICAgcmV0dXJuIHVyZXN1bHQ7Ci0rfQotKwotIC8qCi0gICogVXBncmFkZSB0aGUgYmFzZSBjb25m aWcgb2YgdGhlIFBBTSBQVEEgcGx1Z2luLgotICAqCi1AQCAtNTQ3LDcgKzY0OCwxMSBAQCB1cGdy YWRlX3NlcnZlcih2b2lkKQotICAgICBpZiAodXBncmFkZV9wYW1fcHRhX2RlZmF1bHRfY29uZmln KCkgIT0gVVBHUkFERV9TVUNDRVNTKSB7Ci0gICAgICAgICByZXR1cm4gVVBHUkFERV9GQUlMVVJF OwotICAgICB9Ci0tICAgIAotKwotKyAgICBpZiAodXBncmFkZV9jaGVja19pZF9pbmRleF9tYXRj aGluZ19ydWxlKCkgIT0gVVBHUkFERV9TVUNDRVNTKSB7Ci0rICAgICAgICByZXR1cm4gVVBHUkFE RV9GQUlMVVJFOwotKyAgICB9Ci0rCi0gICAgIHJldHVybiBVUEdSQURFX1NVQ0NFU1M7Ci0gfQot IAotLS0gCi0yLjUyLjAKLQoKZGlmZiAtLWdpdCBhLzAwMDUtSXNzdWUtNzE3Mi0ybmQtSW5kZXgt b3JkZXJpbmctbWlzbWF0Y2gtYWZ0ZXItdXBncmFkZS5wYXRjaCBiLzAwMDUtSXNzdWUtNzE3Mi0y bmQtSW5kZXgtb3JkZXJpbmctbWlzbWF0Y2gtYWZ0ZXItdXBncmFkZS5wYXRjaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggNmE4MGE1Yi4uMDAwMDAwMAotLS0gYS8wMDA1LUlzc3VlLTcx NzItMm5kLUluZGV4LW9yZGVyaW5nLW1pc21hdGNoLWFmdGVyLXVwZ3JhZGUucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSw2NyArMCwwIEBACi1Gcm9tIGY1ZGU4NGUzMDlkNWE0NDM1MTk4YzljYzli MzFiNTcyMjk3OWYxZmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBWaWt0b3IgQXNo aXJvdiA8dmFzaGlyb3ZAcmVkaGF0LmNvbT4KLURhdGU6IE1vbiwgMTIgSmFuIDIwMjYgMTA6NTg6 MDIgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gSXNzdWUgNzE3MiAtICgybmQpIEluZGV4IG9yZGVy aW5nIG1pc21hdGNoIGFmdGVyIHVwZ3JhZGUKLSAoIzcxODApCi0KLUNvbW1pdCA3NDJjMTJlMDI0 N2FiNjRlODdkYTAwMGE0ZGUyZjNlNWM5OTA0NGFiIGludHJvZHVjZWQgYSByZWdyZXNzaW9uCi13 aGVyZSB0aGUgY2hlY2sgdG8gc2tpcCBjcmVhdGluZyBwYXJlbnRpZC9hbmNlc3RvcmlkIGluZGV4 ZXMgaWYgdGhleQotYWxyZWFkeSBleGlzdCB3YXMgaW5jb3JyZWN0LgotVGhlIGBhaW5mb19nZXQo KWAgZnVuY3Rpb24gZmFsbHMgYmFjayB0byByZXR1cm5pbmcKLUxEQk1fUFNFVURPX0FUVFJfREVG QVVMVCBhdHRyaW5mbyB3aGVuIHRoZSByZXF1ZXN0ZWQgYXR0cmlidXRlIGlzIG5vdAotZm91bmQu Ci1TaW5jZSBMREJNX1BTRVVET19BVFRSX0RFRkFVTFQgaXMgY3JlYXRlZCBiZWZvcmUgdGhlIGFu Y2VzdG9yaWQgY2hlY2ssCi1gYWluZm9fZ2V0KClgIHJldHVybnMgTERCTV9QU0VVRE9fQVRUUl9E RUZBVUxUIGluc3RlYWQgb2YgTlVMTCwgY2F1c2luZwotdGhlIGFuY2VzdG9yaWQgaW5kZXggY3Jl YXRpb24gdG8gYmUgc2tpcHBlZCBlbnRpcmVseS4KLQotV2hlbiBvcGVyYXRpb25zIGxhdGVyIHRy eSB0byB1c2UgdGhlIGFuY2VzdG9yaWQgaW5kZXgsIHRoZXkgZmFsbCBiYWNrIHRvCi1MREJNX1BT RVVET19BVFRSX0RFRkFVTFQsIGFuZCBhdHRlbXB0aW5nIHRvIG9wZW4gdGhlIC5kZWZhdWx0IGRi aQotbWlkLXRyYW5zYWN0aW9uIGZhaWxzIHdpdGggTURCX05PVEZPVU5EICgtMzA3OTgpLgotCi1G aXggRGVzY3JpcHRpb246Ci1JbnN0ZWFkIG9mIGp1c3QgY2hlY2tpbmcgaWYgYGFpbmZvX2dldCgp YCByZXR1cm5zIG5vbi1OVUxMLCB2ZXJpZnkgdGhhdAotdGhlIHJldHVybmVkIGF0dHJpbmZvIGlz IGFjdHVhbGx5IGZvciB0aGUgcmVxdWVzdGVkIGF0dHJpYnV0ZS4KLQotRml4ZXM6IGh0dHBzOi8v Z2l0aHViLmNvbS8zODlkcy8zODktZHMtYmFzZS9pc3N1ZXMvNzE3MgotCi1SZXZpZXdlZCBieTog QHRib3JkYXogKFRoYW5rcyEpCi0tLS0KLSBsZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2lu c3RhbmNlLmMgfCA4ICsrKysrLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwg MyBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxk Ym0vaW5zdGFuY2UuYyBiL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vaW5zdGFuY2UuYwot aW5kZXggNzFiZjBmNmZhLi4yYTZlOGNiYjggMTAwNjQ0Ci0tLS0gYS9sZGFwL3NlcnZlcnMvc2xh cGQvYmFjay1sZGJtL2luc3RhbmNlLmMKLSsrKyBiL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxk Ym0vaW5zdGFuY2UuYwotQEAgLTE5MCw3ICsxOTAsNyBAQCBsZGJtX2luc3RhbmNlX2NyZWF0ZV9k ZWZhdWx0X2luZGV4ZXMoYmFja2VuZCAqYmUpCi0gICAgIGNoYXIgKmFuY2VzdG9yaWRfaW5kZXhl c19saW1pdCA9IE5VTEw7Ci0gICAgIGNoYXIgKnBhcmVudGlkX2luZGV4ZXNfbGltaXQgPSBOVUxM OwotICAgICBzdHJ1Y3QgYXR0cmluZm8gKmFpID0gTlVMTDsKLS0gICAgc3RydWN0IGF0dHJpbmZv ICppbmRleF9hbHJlYWR5X2NvbmZpZ3VyZWQgPSBOVUxMOwotKyAgICBpbnQgaW5kZXhfYWxyZWFk eV9jb25maWd1cmVkID0gMDsKLSAgICAgc3RydWN0IGluZGV4X2lkbGlzdHNpemVpbmZvICppdGVy OwotICAgICBpbnQgY29va2llOwotICAgICBpbnQgbGltaXQ7Ci1AQCAtMjUwLDcgKzI1MCw4IEBA IGxkYm1faW5zdGFuY2VfY3JlYXRlX2RlZmF1bHRfaW5kZXhlcyhiYWNrZW5kICpiZSkKLSAgICAg c2xhcGlfZW50cnlfZnJlZShlKTsKLSAKLSAgICAgYWluZm9fZ2V0KGJlLCAoY2hhciAqKUxEQk1f UEFSRU5USURfU1RSLCAmYWkpOwotLSAgICBpbmRleF9hbHJlYWR5X2NvbmZpZ3VyZWQgPSBhaTsK LSsgICAgLyogQ2hlY2sgaWYgdGhlIGF0dHJpbmZvIGlzIGFjdHVhbGx5IGZvciBwYXJlbnRpZCwg bm90IGEgZmFsbGJhY2sgdG8gLmRlZmF1bHQgKi8KLSsgICAgaW5kZXhfYWxyZWFkeV9jb25maWd1 cmVkID0gKGFpICE9IE5VTEwgJiYgc3RyY21wKGFpLT5haV90eXBlLCBMREJNX1BBUkVOVElEX1NU UikgPT0gMCk7Ci0gICAgIGlmICghaW5kZXhfYWxyZWFkeV9jb25maWd1cmVkKSB7Ci0gICAgICAg ICBlID0gbGRibV9pbnN0YW5jZV9pbml0X2NvbmZpZ19lbnRyeShMREJNX1BBUkVOVElEX1NUUiwg ImVxIiwgMCwgMCwgMCwgImludGVnZXJPcmRlcmluZ01hdGNoIiwgcGFyZW50aWRfaW5kZXhlc19s aW1pdCk7Ci0gICAgICAgICBsZGJtX2luc3RhbmNlX2NvbmZpZ19hZGRfaW5kZXhfZW50cnkoaW5z dCwgZSwgZmxhZ3MpOwotQEAgLTI5NCw3ICsyOTUsOCBAQCBsZGJtX2luc3RhbmNlX2NyZWF0ZV9k ZWZhdWx0X2luZGV4ZXMoYmFja2VuZCAqYmUpCi0gICAgICAqIGJ1dCB3ZSBzdGlsbCB3YW50IHRv IHVzZSB0aGUgYXR0ciBpbmRleCBmaWxlIEFQSXMuCi0gICAgICAqLwotICAgICBhaW5mb19nZXQo YmUsIChjaGFyICopTERCTV9BTkNFU1RPUklEX1NUUiwgJmFpKTsKLS0gICAgaW5kZXhfYWxyZWFk eV9jb25maWd1cmVkID0gYWk7Ci0rICAgIC8qIENoZWNrIGlmIHRoZSBhdHRyaW5mbyBpcyBhY3R1 YWxseSBmb3IgYW5jZXN0b3JpZCwgbm90IGEgZmFsbGJhY2sgdG8gLmRlZmF1bHQgKi8KLSsgICAg aW5kZXhfYWxyZWFkeV9jb25maWd1cmVkID0gKGFpICE9IE5VTEwgJiYgc3RyY21wKGFpLT5haV90 eXBlLCBMREJNX0FOQ0VTVE9SSURfU1RSKSA9PSAwKTsKLSAgICAgaWYgKCFpbmRleF9hbHJlYWR5 X2NvbmZpZ3VyZWQpIHsKLSAgICAgICAgIGUgPSBsZGJtX2luc3RhbmNlX2luaXRfY29uZmlnX2Vu dHJ5KExEQk1fQU5DRVNUT1JJRF9TVFIsICJlcSIsIDAsIDAsIDAsICJpbnRlZ2VyT3JkZXJpbmdN YXRjaCIsIGFuY2VzdG9yaWRfaW5kZXhlc19saW1pdCk7Ci0gICAgICAgICBsZGJtX2luc3RhbmNl X2NvbmZpZ19hZGRfaW5kZXhfZW50cnkoaW5zdCwgZSwgZmxhZ3MpOwotLS0gCi0yLjUyLjAKLQoK ZGlmZiAtLWdpdCBhLzAwMDYtSXNzdWUtNjc1My1Qb3J0LXRpY2tldC01NDgtdGVzdC03MTAxLnBh dGNoIGIvMDAwNi1Jc3N1ZS02NzUzLVBvcnQtdGlja2V0LTU0OC10ZXN0LTcxMDEucGF0Y2gKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU3YTZhNmMuLjAwMDAwMDAKLS0tIGEvMDAwNi1J c3N1ZS02NzUzLVBvcnQtdGlja2V0LTU0OC10ZXN0LTcxMDEucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSw5MjQgKzAsMCBAQAotRnJvbSBmYjIzYzllMzY2ZjVlYWZhNmJkYmI4Y2Q3MWFmZDc4ZTNl ZGVmZGUyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogTGVua2EgRG91ZG92YSA8bWly aWVsa2FAdXNlcnMubm9yZXBseS5naXRodWIuY29tPgotRGF0ZTogVHVlLCAxMyBKYW4gMjAyNiAx MDo0NDoxNSArMDEwMAotU3ViamVjdDogW1BBVENIXSBJc3N1ZSA2NzUzIC0gUG9ydCB0aWNrZXQg NTQ4IHRlc3QgKCM3MTAxKQotCi1EZXNjcmlwdGlvbjoKLVBvcnQgdGlja2V0IDU0OCB0ZXN0IGlu dG8KLWRpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9wYXNzd29yZC9wd2RQb2xpY3lfYXR0cmlidXRl X3Rlc3QucHkKLQotUmVsYXRlczogIzY3NTMKLQotQXV0aG9yOiBMZW5rYSBEb3Vkb3ZhLCBhYWRo aWthcgotQXNzaXN0ZWQgYnk6IEN1cnNvcgotUmV2aWV3ZXI6IEBkcm9pZGVjayhUaGFua3MhKQot LS0tCi0gLi4uL3Bhc3N3b3JkL3B3ZFBvbGljeV9hdHRyaWJ1dGVfdGVzdC5weSAgICAgIHwgNDY0 ICsrKysrKysrKysrKysrKysrLQotIGRpcnNydnRlc3RzL3Rlc3RzL3RpY2tldHMvdGlja2V0NTQ4 X3Rlc3QucHkgICB8IDQwOCAtLS0tLS0tLS0tLS0tLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDQ2MyBp bnNlcnRpb25zKCspLCA0MDkgZGVsZXRpb25zKC0pCi0gZGVsZXRlIG1vZGUgMTAwNjQ0IGRpcnNy dnRlc3RzL3Rlc3RzL3RpY2tldHMvdGlja2V0NTQ4X3Rlc3QucHkKLQotZGlmZiAtLWdpdCBhL2Rp cnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9wYXNzd29yZC9wd2RQb2xpY3lfYXR0cmlidXRlX3Rlc3Qu cHkgYi9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvcGFzc3dvcmQvcHdkUG9saWN5X2F0dHJpYnV0 ZV90ZXN0LnB5Ci1pbmRleCBkMGMxNzJmOTQuLmQwMjFmNDcyMCAxMDA2NDQKLS0tLSBhL2RpcnNy dnRlc3RzL3Rlc3RzL3N1aXRlcy9wYXNzd29yZC9wd2RQb2xpY3lfYXR0cmlidXRlX3Rlc3QucHkK LSsrKyBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9wYXNzd29yZC9wd2RQb2xpY3lfYXR0cmli dXRlX3Rlc3QucHkKLUBAIC05LDEyICs5LDEyIEBACi0gaW1wb3J0IHB5dGVzdAotIGZyb20gbGli Mzg5LnRhc2tzIGltcG9ydCAqCi0gZnJvbSBsaWIzODkudXRpbHMgaW1wb3J0ICoKLS1pbXBvcnQg cGRiCi0gZnJvbSBsaWIzODkudG9wb2xvZ2llcyBpbXBvcnQgdG9wb2xvZ3lfc3QKLSBmcm9tIGxp YjM4OS5wd3BvbGljeSBpbXBvcnQgUHdQb2xpY3lNYW5hZ2VyCi0gZnJvbSBsaWIzODkuaWRtLnVz ZXIgaW1wb3J0IFVzZXJBY2NvdW50LCBVc2VyQWNjb3VudHMsIFRFU1RfVVNFUl9QUk9QRVJUSUVT Ci0gZnJvbSBsaWIzODkuaWRtLm9yZ2FuaXphdGlvbmFsdW5pdCBpbXBvcnQgT3JnYW5pemF0aW9u YWxVbml0cwotIGZyb20gbGliMzg5Ll9jb25zdGFudHMgaW1wb3J0IChERUZBVUxUX1NVRkZJWCwg RE5fRE0sIFBBU1NXT1JEKQotK2Zyb20gbGliMzg5LmlkbS5kaXJlY3RvcnltYW5hZ2VyIGltcG9y dCBEaXJlY3RvcnlNYW5hZ2VyCi0gCi0gcHl0ZXN0bWFyayA9IHB5dGVzdC5tYXJrLnRpZXIxCi0g Ci1AQCAtMzYxLDYgKzM2MSw0NjggQEAgZGVmIHRlc3RfcHdkcG9saWN5c3ViZW50cnkodG9wb2xv Z3lfc3QsIHBhc3N3b3JkX3BvbGljeSk6Ci0gICAgIGFzc2VydCAnbnNQd1BvbGljeUVudHJ5X3Vz ZXInIG5vdCBpbiBwd3Bfc3ViZW50cnkKLSAKLSAKLStAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9ImZ1 bmN0aW9uIikKLStkZWYgc2hhZG93VXNlcihyZXF1ZXN0LCB0b3BvbG9neV9zdCk6Ci0rICAgICIi IiBDcmVhdGUgYSB1c2VyIHdpdGggc2hhZG93QWNjb3VudCBvYmplY3RjbGFzcyAiIiIKLSsgICAg dXNlcnMgPSBVc2VyQWNjb3VudHModG9wb2xvZ3lfc3Quc3RhbmRhbG9uZSwgREVGQVVMVF9TVUZG SVgpCi0rICAgIHNoYWRvd1VzZXIgPSB1c2Vycy5jcmVhdGUocHJvcGVydGllcz17Ci0rICAgICAg ICAnb2JqZWN0Y2xhc3MnOiBbJ3RvcCcsICdwZXJzb24nLCAnb3JnYW5pemF0aW9uYWxQZXJzb24n LAotKyAgICAgICAgICAgICAgICAgICAgICAgICdpbmV0T3JnUGVyc29uJywgJ2V4dGVuc2libGVP YmplY3QnLCAnc2hhZG93QWNjb3VudCddLAotKyAgICAgICAgJ3NuJzogJzEnLAotKyAgICAgICAg J2NuJzogJ3NoYWRvd1VzZXInLAotKyAgICAgICAgJ3VpZCc6ICdzaGFkb3dVc2VyJywKLSsgICAg ICAgICd1aWROdW1iZXInOiAnMScsCi0rICAgICAgICAnZ2lkTnVtYmVyJzogJzExJywKLSsgICAg ICAgICdob21lRGlyZWN0b3J5JzogJy9ob21lL3NoYWRvd1VzZXInLAotKyAgICAgICAgJ2Rpc3Bs YXlOYW1lJzogJ1NoYWRvdyBVc2VyJywKLSsgICAgICAgICdnaXZlbm5hbWUnOiAnU2hhZG93JywK LSsgICAgICAgICdtYWlsJzpmJ3NoYWRvd3VzZXJAe0RFRkFVTFRfU1VGRklYfScsCi0rICAgICAg ICAndXNlcnBhc3N3b3JkJzogJ3Bhc3N3b3JkJwotKyAgICB9KQotKwotKyAgICBkZWYgZmluKCk6 Ci0rICAgICAgICBpZiBzaGFkb3dVc2VyLmV4aXN0cygpOgotKyAgICAgICAgICAgIHNoYWRvd1Vz ZXIuZGVsZXRlKCkKLSsKLSsgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoZmluKQotKwotKyAgICBy ZXR1cm4gc2hhZG93VXNlcgotKwotKwotK2RlZiBkYXlzX3RvX3NlY3MoZGF5cyk6Ci0rICAgICIi IiBDb252ZXJ0IGRheXMgdG8gc2Vjb25kcyAiIiIKLSsgICAgcmV0dXJuIGRheXMgKiA4NjQwMAot KwotKwotK2RlZiBjaGVja19zaGFkb3dfYXR0cl92YWx1ZShpbnN0LCB1c2VyX2RuLCBhdHRyX3R5 cGUsIGV4cGVjdGVkKToKLSsgICAgIiIiIENoZWNrIHRoYXQgc2hhZG93QWNjb3VudCBhdHRyaWJ1 dGUgaGFzIGV4cGVjdGVkIHZhbHVlICIiIgotKyAgICBkbSA9IERpcmVjdG9yeU1hbmFnZXIoaW5z dCkKLSsgICAgZG0ucmViaW5kKCkKLSsgICAgdXNlciA9IFVzZXJBY2NvdW50KGluc3QsIHVzZXJf ZG4pCi0rICAgIGFzc2VydCB1c2VyLnByZXNlbnQoYXR0cl90eXBlKSwgZidFbnRyeSB7dXNlcl9k bn0gZG9lcyBub3QgaGF2ZSB7YXR0cl90eXBlfSBhdHRyaWJ1dGUnCi0rICAgIGFjdHVhbCA9IGlu dCh1c2VyLmdldF9hdHRyX3ZhbF91dGY4KGF0dHJfdHlwZSkpCi0rICAgIGFzc2VydCBhY3R1YWwg PT0gZXhwZWN0ZWQsIGYne2F0dHJfdHlwZX0gb2YgZW50cnkge3VzZXJfZG59IGlzIHthY3R1YWx9 LCBleHBlY3RlZCB7ZXhwZWN0ZWR9JwotKyAgICBsb2cuaW5mbyhmJ3thdHRyX3R5cGV9IG9mIGVu dHJ5IHt1c2VyX2RufSBoYXMgZXhwZWN0ZWQgdmFsdWUge2FjdHVhbH0nKQotKwotKwotK2RlZiBz ZXR1cF9wd3AoaW5zdCwgcHdwX21nciwgcG9saWN5LCBkbj1Ob25lLCBwb2xpY3lfcHJvcHM9Tm9u ZSk6Ci0rICAgICIiIiBTZXR1cCBwYXNzd29yZCBwb2xpY3kgIiIiCi0rCi0rICAgIGxvZy5pbmZv KGYnU2V0dGluZyB1cCB7cG9saWN5fSBwYXNzd29yZCBwb2xpY3kgZm9yIHtkbn0nKQotKyAgICBk bSA9IERpcmVjdG9yeU1hbmFnZXIoaW5zdCkKLSsgICAgZG0ucmViaW5kKCkKLSsKLSsgICAgbG9n LmluZm8oZidDb25maWd1cmluZyB7cG9saWN5fSBwYXNzd29yZCBwb2xpY3knKQotKwotKyAgICBh c3NlcnQgcG9saWN5ID09ICdnbG9iYWwnIG9yIGRuLCAnZG4gaXMgcmVxdWlyZWQgZm9yIG5vbi1n bG9iYWwgcG9saWN5JwotKwotKyAgICBpZiBub3QgcG9saWN5X3Byb3BzOgotKyAgICAgICAgcG9s aWN5X3Byb3BzID0gewotKyAgICAgICAgICAgICdwYXNzd29yZE1pbkFnZSc6IHN0cihkYXlzX3Rv X3NlY3MoMSkpLAotKyAgICAgICAgICAgICdwYXNzd29yZEV4cCc6ICdvbicsCi0rICAgICAgICAg ICAgJ3Bhc3N3b3JkTWF4QWdlJzogc3RyKGRheXNfdG9fc2VjcygxMCkpLAotKyAgICAgICAgICAg ICdwYXNzd29yZFdhcm5pbmcnOiBzdHIoZGF5c190b19zZWNzKDMpKQotKyAgICAgICAgfQotKwot KyAgICBpZiBwb2xpY3kgPT0gJ2dsb2JhbCc6Ci0rICAgICAgICBwd3BfbWdyLnNldF9nbG9iYWxf cG9saWN5KHBvbGljeV9wcm9wcykKLSsgICAgZWxpZiBwb2xpY3kgPT0gJ3N1YnRyZWUnOgotKyAg ICAgICAgcHdwX21nci5jcmVhdGVfc3VidHJlZV9wb2xpY3koZG4sIHBvbGljeV9wcm9wcykKLSsg ICAgZWxpZiBwb2xpY3kgPT0gJ3VzZXInOgotKyAgICAgICAgcHdwX21nci5jcmVhdGVfdXNlcl9w b2xpY3koZG4sIHBvbGljeV9wcm9wcykKLSsgICAgZWxzZToKLSsgICAgICAgIHJhaXNlIFZhbHVl RXJyb3IoZidJbnZhbGlkIHR5cGUgb2YgcGFzc3dvcmQgcG9saWN5OiB7cG9saWN5fScpCi0rCi0r Ci0rZGVmIG1vZGlmeV9wd3AoaW5zdCwgcHdwX21nciwgcG9saWN5LCBkbj1Ob25lLCBwb2xpY3lf cHJvcHM9Tm9uZSk6Ci0rICAgICIiIiBNb2RpZnkgcGFzc3dvcmQgcG9saWN5ICIiIgotKyAgICBk bSA9IERpcmVjdG9yeU1hbmFnZXIoaW5zdCkKLSsgICAgZG0ucmViaW5kKCkKLSsKLSsgICAgYXNz ZXJ0IHBvbGljeSA9PSAnZ2xvYmFsJyBvciBkbiwgJ2RuIGlzIHJlcXVpcmVkIGZvciBub24tZ2xv YmFsIHBvbGljeScKLSsKLSsgICAgaWYgbm90IHBvbGljeV9wcm9wczoKLSsgICAgICAgIHBvbGlj eV9wcm9wcyA9IHsKLSsgICAgICAgICAgICAncGFzc3dvcmRNaW5BZ2UnOiBzdHIoZGF5c190b19z ZWNzKDMpKSwKLSsgICAgICAgICAgICAncGFzc3dvcmRNYXhBZ2UnOiBzdHIoZGF5c190b19zZWNz KDMwKSksCi0rICAgICAgICAgICAgJ3Bhc3N3b3JkV2FybmluZyc6IHN0cihkYXlzX3RvX3NlY3Mo OSkpCi0rICAgICAgICB9Ci0rCi0rICAgIGlmIHBvbGljeSA9PSAnZ2xvYmFsJzoKLSsgICAgICAg IHB3cF9tZ3Iuc2V0X2dsb2JhbF9wb2xpY3kocHJvcGVydGllcz1wb2xpY3lfcHJvcHMpCi0rICAg IGVsaWYgcG9saWN5IGluIFsnc3VidHJlZScsICd1c2VyJ106Ci0rICAgICAgICBwb2xpY3lfZW50 cnkgPSBwd3BfbWdyLmdldF9wd3BvbGljeV9lbnRyeShkbikKLSsgICAgICAgIHBvbGljeV9lbnRy eS5yZXBsYWNlX21hbnkoKnBvbGljeV9wcm9wcy5pdGVtcygpKQotKyAgICBlbHNlOgotKyAgICAg ICAgcmFpc2UgVmFsdWVFcnJvcihmJ0ludmFsaWQgdHlwZSBvZiBwYXNzd29yZCBwb2xpY3k6IHtw b2xpY3l9JykKLSsgICAgbG9nLmluZm8oZidNb2RpZmllZCB7cG9saWN5fSBwb2xpY3kgd2l0aCB7 cG9saWN5X3Byb3BzfS4nKQotKwotK0BweXRlc3QubWFyay5za2lwaWYoZHNfaXNfb2xkZXIoJzEu My42JyksIHJlYXNvbj0iTm90IGltcGxlbWVudGVkIikKLStkZWYgdGVzdF9zaGFkb3dhY2NvdW50 X25vX3BvbGljeSh0b3BvbG9neV9zdCwgc2hhZG93VXNlcik6Ci0rICAgICIiIkNoZWNrIHNoYWRv d0FjY291bnQgdW5kZXIgbm8gcGFzc3dvcmQgcG9saWN5Ci0rCi0rICAgIDppZDogYTFiMmMzZDQt NWU2Zi03ODkwLWFiY2QtZWYxMjM0NTY3ODkwCi0rICAgIDpzZXR1cDogU3RhbmRhbG9uZSBpbnN0 YW5jZQotKyAgICA6c3RlcHM6Ci0rICAgICAgICAxLiBBZGQgYSB1c2VyIHdpdGggc2hhZG93QWNj b3VudCBvYmplY3RjbGFzcwotKyAgICAgICAgMi4gQmluZCBhcyB0aGUgdXNlcgotKyAgICAgICAg My4gQ2hlY2sgc2hhZG93TGFzdENoYW5nZSBhdHRyaWJ1dGUgaXMgc2V0IGNvcnJlY3RseQotKyAg ICA6ZXhwZWN0ZWRyZXN1bHRzOgotKyAgICAgICAgMS4gVXNlciBpcyBhZGRlZCBzdWNjZXNzZnVs bHkKLSsgICAgICAgIDIuIEJpbmQgaXMgc3VjY2Vzc2Z1bAotKyAgICAgICAgMy4gc2hhZG93TGFz dENoYW5nZSBpcyBzZXQgY29ycmVjdGx5IChkYXlzIHNpbmNlIGVwb2NoKQotKyAgICAiIiIKLSsK LSsgICAgZWRhdGUgPSBpbnQodGltZS50aW1lKCkgLyAoNjAgKiA2MCAqIDI0KSkKLSsKLSsgICAg bG9nLmluZm8oZiJCaW5kIGFzIHtzaGFkb3dVc2VyLmRufSIpCi0rICAgIHNoYWRvd1VzZXIucmVi aW5kKCdwYXNzd29yZCcpCi0rICAgIGNoZWNrX3NoYWRvd19hdHRyX3ZhbHVlKHRvcG9sb2d5X3N0 LnN0YW5kYWxvbmUsIHNoYWRvd1VzZXIuZG4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICdzaGFkb3dMYXN0Q2hhbmdlJywgZWRhdGUpCi0rCi0rCi0rQHB5dGVzdC5tYXJrLnNraXBpZihk c19pc19vbGRlcignMS4zLjYnKSwgcmVhc29uPSJOb3QgaW1wbGVtZW50ZWQiKQotK2RlZiB0ZXN0 X3NoYWRvd2FjY291bnRfZ2xvYmFsX3BvbGljeSh0b3BvbG9neV9zdCwgc2hhZG93VXNlciwgcmVx dWVzdCk6Ci0rICAgICIiIkNoZWNrIHNoYWRvd0FjY291bnQgd2l0aCBnbG9iYWwgcGFzc3dvcmQg cG9saWN5Ci0rCi0rICAgIDppZDogYjJjM2Q0ZTUtNmY3YS04OTAxLWJjZGUtZjIzNDU2Nzg5MDEy Ci0rICAgIDpzZXR1cDogU3RhbmRhbG9uZSBpbnN0YW5jZQotKyAgICA6c3RlcHM6Ci0rICAgICAg ICAxLiBTZXQgZ2xvYmFsIHBhc3N3b3JkIHBvbGljeQotKyAgICAgICAgMi4gQWRkIGEgc2Vjb25k IHNoYWRvd0FjY291bnQgdXNlcgotKyAgICAgICAgMy4gQmluZCBhcyBlYWNoIHVzZXIgYW5kIGNo ZWNrIHNoYWRvd0FjY291bnQgYXR0cmlidXRlcwotKyAgICAgICAgNC4gTW9kaWZ5IGdsb2JhbCBw YXNzd29yZCBwb2xpY3kKLSsgICAgICAgIDUuIENoYW5nZSB1c2VyIHBhc3N3b3JkIChhcyB0aGUg dXNlciwgbm90IERNKQotKyAgICAgICAgNi4gUmUtYmluZCB3aXRoIG5ldyBwYXNzd29yZAotKyAg ICAgICAgNy4gQ2hlY2sgc2hhZG93QWNjb3VudCBhdHRyaWJ1dGVzIGFyZSB1cGRhdGVkCi0rICAg ICAgICA4LiBDbGVhbiB1cCAtIGRlbGV0ZSBzZWNvbmQgdXNlciBhbmQgcmVzZXQgcG9saWN5Ci0r ICAgIDpleHBlY3RlZHJlc3VsdHM6Ci0rICAgICAgICAxLiBHbG9iYWwgcGFzc3dvcmQgcG9saWN5 IGlzIHNldCBzdWNjZXNzZnVsbHkKLSsgICAgICAgIDIuIFNlY29uZCB1c2VyIGlzIGFkZGVkCi0r ICAgICAgICAzLiBzaGFkb3dBY2NvdW50IGF0dHJpYnV0ZXMgbWF0Y2ggcG9saWN5IHZhbHVlcyBm b3IgYm90aCB1c2VycwotKyAgICAgICAgNC4gUGFzc3dvcmQgcG9saWN5IGlzIG1vZGlmaWVkIHN1 Y2Nlc3NmdWxseQotKyAgICAgICAgNS4gUGFzc3dvcmQgaXMgY2hhbmdlZCBzdWNjZXNzZnVsbHkK LSsgICAgICAgIDYuIFJlLWJpbmQgd2l0aCBuZXcgcGFzc3dvcmQgaXMgc3VjY2Vzc2Z1bAotKyAg ICAgICAgNy4gc2hhZG93QWNjb3VudCBhdHRyaWJ1dGVzIGFyZSB1cGRhdGVkIHRvIG1hdGNoIG5l dyBwb2xpY3kgdmFsdWVzCi0rICAgICAgICA4LiBDbGVhbnVwIGlzIHN1Y2Nlc3NmdWwKLSsgICAg IiIiCi0rICAgIGluc3QgPSB0b3BvbG9neV9zdC5zdGFuZGFsb25lCi0rCi0rICAgIGxvZy5pbmZv KCdDcmVhdGUgc2Vjb25kIHNoYWRvd0FjY291bnQgdXNlcicpCi0rICAgIHVzZXJzID0gVXNlckFj Y291bnRzKGluc3QsIERFRkFVTFRfU1VGRklYKQotKyAgICBzaGFkb3dVc2VyMiA9IHVzZXJzLmNy ZWF0ZShwcm9wZXJ0aWVzPXsKLSsgICAgICAgICdvYmplY3RjbGFzcyc6IFsndG9wJywgJ3BlcnNv bicsICdvcmdhbml6YXRpb25hbFBlcnNvbicsCi0rICAgICAgICAgICAgICAgICAgICAgICAgJ2lu ZXRPcmdQZXJzb24nLCAnZXh0ZW5zaWJsZU9iamVjdCcsICdzaGFkb3dBY2NvdW50J10sCi0rICAg ICAgICAnc24nOiAnMicsCi0rICAgICAgICAnY24nOiAnc2hhZG93VXNlcjInLAotKyAgICAgICAg J3VpZCc6ICdzaGFkb3dVc2VyMicsCi0rICAgICAgICAndWlkTnVtYmVyJzogJzInLAotKyAgICAg ICAgJ2dpZE51bWJlcic6ICcyMicsCi0rICAgICAgICAnaG9tZURpcmVjdG9yeSc6ICcvaG9tZS9z aGFkb3dVc2VyMicsCi0rICAgICAgICAnZGlzcGxheU5hbWUnOiAnU2hhZG93IFVzZXIgMicsCi0r ICAgICAgICAnZ2l2ZW5uYW1lJzogJ1NoYWRvdzInLAotKyAgICAgICAgJ21haWwnOiBmJ3NoYWRv d3VzZXIyQHtERUZBVUxUX1NVRkZJWH0nLAotKyAgICAgICAgJ3VzZXJwYXNzd29yZCc6ICdwYXNz d29yZCcKLSsgICAgfSkKLSsKLSsgICAgZGVmIGZpbigpOgotKyAgICAgICAgbG9nLmluZm8oJ0Ns ZWFuIHVwIC0gZGVsZXRlIHNlY29uZCB1c2VyIGFuZCByZXNldCBnbG9iYWwgcG9saWN5JykKLSsg ICAgICAgIGRtID0gRGlyZWN0b3J5TWFuYWdlcihpbnN0KQotKyAgICAgICAgZG0ucmViaW5kKCkK LSsgICAgICAgIHRyeToKLSsgICAgICAgICAgICBzaGFkb3dVc2VyMi5kZWxldGUoKQotKyAgICAg ICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSsgICAgICAgICAgICBwYXNzCi0rICAgICAgICBpbnN0LmNv bmZpZy5yZXBsYWNlKCdwYXNzd29yZE1pbkFnZScsICcwJykKLSsgICAgICAgIGluc3QuY29uZmln LnJlcGxhY2UoJ3Bhc3N3b3JkTWF4QWdlJywgJzg2NDAwMDAnKQotKyAgICAgICAgaW5zdC5jb25m aWcucmVwbGFjZSgncGFzc3dvcmRXYXJuaW5nJywgJzg2NDAwJykKLSsgICAgICAgIGluc3QuY29u ZmlnLnJlcGxhY2UoJ3Bhc3N3b3JkRXhwJywgJ29mZicpCi0rICAgIHJlcXVlc3QuYWRkZmluYWxp emVyKGZpbikKLSsKLSsgICAgbG9nLmluZm8oJ0NvbmZpZ3VyZSBnbG9iYWwgcGFzc3dvcmQgcG9s aWN5JykKLSsgICAgcHdwX21nciA9IFB3UG9saWN5TWFuYWdlcihpbnN0KQotKyAgICBzZXR1cF9w d3AoaW5zdCwgcHdwX21nciwgJ2dsb2JhbCcpCi0rCi0rICAgIGVkYXRlID0gaW50KHRpbWUudGlt ZSgpIC8gKDYwICogNjAgKiAyNCkpCi0rCi0rICAgIGxvZy5pbmZvKCdWZXJpZnkgYXR0cmlidXRl cyBvZiBzaGFkb3dVc2VyICh1c2VyIDEpJykKLSsgICAgc2hhZG93VXNlci5yZWJpbmQoJ3Bhc3N3 b3JkJykKLSsgICAgY2hlY2tfc2hhZG93X2F0dHJfdmFsdWUoaW5zdCwgc2hhZG93VXNlci5kbiwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NoYWRvd0xhc3RDaGFuZ2UnLCBlZGF0ZSkK LSsgICAgY2hlY2tfc2hhZG93X2F0dHJfdmFsdWUoaW5zdCwgc2hhZG93VXNlci5kbiwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJ3NoYWRvd01pbicsIDEpCi0rICAgIGNoZWNrX3NoYWRv d19hdHRyX3ZhbHVlKGluc3QsIHNoYWRvd1VzZXIuZG4sCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICdzaGFkb3dNYXgnLCAxMCkKLSsgICAgY2hlY2tfc2hhZG93X2F0dHJfdmFsdWUoaW5z dCwgc2hhZG93VXNlci5kbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NoYWRvd1dh cm5pbmcnLCAzKQotKwotKyAgICBsb2cuaW5mbygnVmVyaWZ5IGF0dHJpYnV0ZXMgb2Ygc2hhZG93 VXNlcjIgKHVzZXIgMiknKQotKyAgICBzaGFkb3dVc2VyMi5yZWJpbmQoJ3Bhc3N3b3JkJykKLSsg ICAgY2hlY2tfc2hhZG93X2F0dHJfdmFsdWUoaW5zdCwgc2hhZG93VXNlcjIuZG4sCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICdzaGFkb3dMYXN0Q2hhbmdlJywgZWRhdGUpCi0rICAgIGNo ZWNrX3NoYWRvd19hdHRyX3ZhbHVlKGluc3QsIHNoYWRvd1VzZXIyLmRuLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAnc2hhZG93TWluJywgMSkKLSsgICAgY2hlY2tfc2hhZG93X2F0dHJf dmFsdWUoaW5zdCwgc2hhZG93VXNlcjIuZG4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICdzaGFkb3dNYXgnLCAxMCkKLSsgICAgY2hlY2tfc2hhZG93X2F0dHJfdmFsdWUoaW5zdCwgc2hh ZG93VXNlcjIuZG4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzaGFkb3dXYXJuaW5n JywgMykKLSsKLSsgICAgbG9nLmluZm8oJ01vZGlmeSBnbG9iYWwgcGFzc3dvcmQgcG9saWN5JykK LSsgICAgbW9kaWZ5X3B3cChpbnN0LCBwd3BfbWdyLCAnZ2xvYmFsJykKLSsKLSsgICAgbG9nLmlu Zm8oJ0NoYW5nZSBzaGFkb3dVc2VyMiBwYXNzd29yZCBhcyB0aGUgdXNlcicpCi0rICAgIHNoYWRv d1VzZXIyLnJlYmluZCgncGFzc3dvcmQnKQotKyAgICBzaGFkb3dVc2VyMi5yZXBsYWNlKCd1c2Vy cGFzc3dvcmQnLCAncGFzc3dvcmQyJykKLSsgICAgdGltZS5zbGVlcCgxKQotKwotKyAgICBsb2cu aW5mbygnUmUtYmluZCBhcyBzaGFkb3dVc2VyMiB3aXRoIG5ldyBwYXNzd29yZCcpCi0rICAgIHNo YWRvd1VzZXIyLnJlYmluZCgncGFzc3dvcmQyJykKLSsKLSsgICAgbG9nLmluZm8oJ1ZlcmlmeSBt b2RpZmllZCBzaGFkb3dVc2VyMiBhdHRyaWJ1dGVzJykKLSsgICAgY2hlY2tfc2hhZG93X2F0dHJf dmFsdWUoaW5zdCwgc2hhZG93VXNlcjIuZG4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICdzaGFkb3dNaW4nLCAzKQotKyAgICBjaGVja19zaGFkb3dfYXR0cl92YWx1ZShpbnN0LCBzaGFk b3dVc2VyMi5kbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NoYWRvd01heCcsIDMw KQotKyAgICBjaGVja19zaGFkb3dfYXR0cl92YWx1ZShpbnN0LCBzaGFkb3dVc2VyMi5kbiwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NoYWRvd1dhcm5pbmcnLCA5KQotKwotKwotK0Bw eXRlc3QubWFyay5za2lwaWYoZHNfaXNfb2xkZXIoJzEuMy42JyksIHJlYXNvbj0iTm90IGltcGxl bWVudGVkIikKLStkZWYgdGVzdF9zaGFkb3dhY2NvdW50X3N1YnRyZWVfcG9saWN5KHRvcG9sb2d5 X3N0LCByZXF1ZXN0KToKLSsgICAgIiIiQ2hlY2sgc2hhZG93QWNjb3VudCB3aXRoIHN1YnRyZWUg bGV2ZWwgcGFzc3dvcmQgcG9saWN5Ci0rCi0rICAgIDppZDogYzNkNGU1ZjYtN2E4Yi05MDEyLWNk ZWYtMzQ1Njc4OTAxMjM0Ci0rICAgIDpzZXR1cDogU3RhbmRhbG9uZSBpbnN0YW5jZQotKyAgICA6 c3RlcHM6Ci0rICAgICAgICAxLiBDcmVhdGUgc3VidHJlZSBwYXNzd29yZCBwb2xpY3kgZm9yIERF RkFVTFRfU1VGRklYIHdpdGggcGFzc3dvcmRNdXN0Q2hhbmdlIG9uCi0rICAgICAgICAyLiBBZGQg YSBuZXcgc2hhZG93QWNjb3VudCB1c2VyIHVuZGVyIHRoZSBzdWJ0cmVlCi0rICAgICAgICAzLiBD aGVjayBzaGFkb3dMYXN0Q2hhbmdlIGlzIDAgKHNpbmNlIHBhc3N3b3JkTXVzdENoYW5nZSBpcyBv bikKLSsgICAgICAgIDQuIFZlcmlmeSBzZWFyY2ggYXMgdXNlciBmYWlscyB3aXRoIFVOV0lMTElO R19UT19QRVJGT1JNCi0rICAgICAgICA1LiBDaGFuZ2UgdXNlciBwYXNzd29yZCAoYXMgdXNlcikK LSsgICAgICAgIDYuIFJlLWJpbmQgd2l0aCBuZXcgcGFzc3dvcmQKLSsgICAgICAgIDcuIENoZWNr IHNoYWRvd0FjY291bnQgYXR0cmlidXRlcyBhcmUgdXBkYXRlZCB3aXRoIGNvcnJlY3QgdmFsdWVz Ci0rICAgICAgICA4LiBDbGVhbiB1cCBzdWJ0cmVlIHBhc3N3b3JkIHBvbGljeQotKyAgICA6ZXhw ZWN0ZWRyZXN1bHRzOgotKyAgICAgICAgMS4gU3VidHJlZSBwYXNzd29yZCBwb2xpY3kgaXMgY3Jl YXRlZCBzdWNjZXNzZnVsbHkKLSsgICAgICAgIDIuIFVzZXIgaXMgYWRkZWQgc3VjY2Vzc2Z1bGx5 Ci0rICAgICAgICAzLiBzaGFkb3dMYXN0Q2hhbmdlIGlzIDAgdW50aWwgcGFzc3dvcmQgaXMgY2hh bmdlZAotKyAgICAgICAgNC4gU2VhcmNoIGZhaWxzIHdpdGggVU5XSUxMSU5HX1RPX1BFUkZPUk0g YXMgZXhwZWN0ZWQKLSsgICAgICAgIDUuIFBhc3N3b3JkIGlzIGNoYW5nZWQgc3VjY2Vzc2Z1bGx5 Ci0rICAgICAgICA2LiBSZS1iaW5kIHdpdGggbmV3IHBhc3N3b3JkIGlzIHN1Y2Nlc3NmdWwKLSsg ICAgICAgIDcuIHNoYWRvd0FjY291bnQgYXR0cmlidXRlcyBhcmUgdXBkYXRlZCB0byBtYXRjaCBw b2xpY3kgdmFsdWVzCi0rICAgICAgICA4LiBTdWJ0cmVlIHBhc3N3b3JkIHBvbGljeSBpcyBkZWxl dGVkIHN1Y2Nlc3NmdWxseQotKyAgICAiIiIKLSsgICAgaW5zdCA9IHRvcG9sb2d5X3N0LnN0YW5k YWxvbmUKLSsgICAgc3VidHJlZV9kbiA9IERFRkFVTFRfU1VGRklYCi0rCi0rICAgIGxvZy5pbmZv KCdDb25maWd1cmUgc3VidHJlZSBwYXNzd29yZCBwb2xpY3kgd2l0aCBwYXNzd29yZE11c3RDaGFu Z2Ugb24nKQotKyAgICBwcm9wZXJ0aWVzID0gewotKyAgICAgICAgJ3Bhc3N3b3JkTXVzdENoYW5n ZSc6ICdvbicsCi0rICAgICAgICAncGFzc3dvcmRFeHAnOiAnb24nLAotKyAgICAgICAgJ3Bhc3N3 b3JkTWluQWdlJzogc3RyKGRheXNfdG9fc2VjcygyKSksCi0rICAgICAgICAncGFzc3dvcmRNYXhB Z2UnOiBzdHIoZGF5c190b19zZWNzKDIwKSksCi0rICAgICAgICAncGFzc3dvcmRXYXJuaW5nJzog c3RyKGRheXNfdG9fc2Vjcyg2KSksCi0rICAgICAgICAncGFzc3dvcmRDaGFuZ2UnOiAnb24nLAot KyAgICAgICAgJ3Bhc3N3b3JkU3RvcmFnZVNjaGVtZSc6ICdjbGVhcicKLSsgICAgfQotKwotKyAg ICBwd3BfbWdyID0gUHdQb2xpY3lNYW5hZ2VyKGluc3QpCi0rICAgIHNldHVwX3B3cChpbnN0LCBw d3BfbWdyLCAnc3VidHJlZScsIGRuPXN1YnRyZWVfZG4sIHBvbGljeV9wcm9wcz1wcm9wZXJ0aWVz KQotKwotKyAgICBkZWYgZmluKCk6Ci0rICAgICAgICBsb2cuaW5mbygnQ2xlYW4gdXA6IGRlbGV0 ZSBzdWJ0cmVlIHBhc3N3b3JkIHBvbGljeScpCi0rICAgICAgICBkbSA9IERpcmVjdG9yeU1hbmFn ZXIoaW5zdCkKLSsgICAgICAgIGRtLnJlYmluZCgpCi0rICAgICAgICB0cnk6Ci0rICAgICAgICAg ICAgcHdwX21nci5kZWxldGVfbG9jYWxfcG9saWN5KHN1YnRyZWVfZG4pCi0rICAgICAgICBleGNl cHQgRXhjZXB0aW9uOgotKyAgICAgICAgICAgIHBhc3MKLSsgICAgICAgIHRyeToKLSsgICAgICAg ICAgICBzdWJ0cmVlX3VzZXIuZGVsZXRlKCkKLSsgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0r ICAgICAgICAgICAgcGFzcwotKyAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihmaW4pCi0rCi0rICAg IGxvZy5pbmZvKCdBZGQgYSBuZXcgc2hhZG93QWNjb3VudCB1c2VyIHVuZGVyIHRoZSBzdWJ0cmVl JykKLSsgICAgdXNlcnMgPSBVc2VyQWNjb3VudHMoaW5zdCwgREVGQVVMVF9TVUZGSVgpCi0rICAg IHN1YnRyZWVfdXNlciA9IHVzZXJzLmNyZWF0ZShwcm9wZXJ0aWVzPXsKLSsgICAgICAgICdvYmpl Y3RjbGFzcyc6IFsndG9wJywgJ3BlcnNvbicsICdvcmdhbml6YXRpb25hbFBlcnNvbicsCi0rICAg ICAgICAgICAgICAgICAgICAgICAgJ2luZXRPcmdQZXJzb24nLCAnZXh0ZW5zaWJsZU9iamVjdCcs ICdzaGFkb3dBY2NvdW50J10sCi0rICAgICAgICAnc24nOiAnMycsCi0rICAgICAgICAnY24nOiAn c3VidHJlZVVzZXInLAotKyAgICAgICAgJ3VpZCc6ICdzdWJ0cmVlVXNlcicsCi0rICAgICAgICAn dWlkTnVtYmVyJzogJzMnLAotKyAgICAgICAgJ2dpZE51bWJlcic6ICczMycsCi0rICAgICAgICAn aG9tZURpcmVjdG9yeSc6ICcvaG9tZS9zdWJ0cmVlVXNlcicsCi0rICAgICAgICAnZGlzcGxheU5h bWUnOiAnU3VidHJlZSBVc2VyJywKLSsgICAgICAgICdnaXZlbm5hbWUnOiAnU3VidHJlZScsCi0r ICAgICAgICAnbWFpbCc6IGYnc3VidHJlZXVzZXJAe0RFRkFVTFRfU1VGRklYfScsCi0rICAgICAg ICAndXNlcnBhc3N3b3JkJzogJ3Bhc3N3b3JkJwotKyAgICB9KQotKwotKyAgICBkbSA9IERpcmVj dG9yeU1hbmFnZXIoaW5zdCkKLSsgICAgZG0ucmViaW5kKCkKLSsKLSsgICAgbG9nLmluZm8oJ1Zl cmlmeSBzaGFkb3dMYXN0Q2hhbmdlIGlzIDAgc2luY2UgcGFzc3dvcmRNdXN0Q2hhbmdlIGlzIG9u JykKLSsgICAgY2hlY2tfc2hhZG93X2F0dHJfdmFsdWUoaW5zdCwgc3VidHJlZV91c2VyLmRuLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hhZG93TGFzdENoYW5nZScsIDApCi0rICAg IGNoZWNrX3NoYWRvd19hdHRyX3ZhbHVlKGluc3QsIHN1YnRyZWVfdXNlci5kbiwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJ3NoYWRvd01pbicsIDIpCi0rICAgIGNoZWNrX3NoYWRvd19h dHRyX3ZhbHVlKGluc3QsIHN1YnRyZWVfdXNlci5kbiwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJ3NoYWRvd01heCcsIDIwKQotKyAgICBjaGVja19zaGFkb3dfYXR0cl92YWx1ZShpbnN0 LCBzdWJ0cmVlX3VzZXIuZG4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzaGFkb3dX YXJuaW5nJywgNikKLSsKLSsgICAgbG9nLmluZm8oZidCaW5kIGFzIHtzdWJ0cmVlX3VzZXIuZG59 IGFuZCB2ZXJpZnkgc2VhcmNoIGZhaWxzIHdpdGggVU5XSUxMSU5HX1RPX1BFUkZPUk0nKQotKyAg ICBzdWJ0cmVlX3VzZXIucmViaW5kKCdwYXNzd29yZCcpCi0rICAgIHdpdGggcHl0ZXN0LnJhaXNl cyhsZGFwLlVOV0lMTElOR19UT19QRVJGT1JNKToKLSsgICAgICAgIHN1YnRyZWVfdXNlci5leGlz dHMoKQotKwotKyAgICBsb2cuaW5mbygnTW9kaWZ5IHN1YnRyZWUgcGFzc3dvcmQgcG9saWN5JykK LSsgICAgZG0ucmViaW5kKCkKLSsgICAgbW9kaWZ5X3Byb3BlcnRpZXMgPSB7Ci0rICAgICAgICAn cGFzc3dvcmRNaW5BZ2UnOiBzdHIoZGF5c190b19zZWNzKDQpKSwKLSsgICAgICAgICdwYXNzd29y ZE1heEFnZSc6IHN0cihkYXlzX3RvX3NlY3MoNDApKSwKLSsgICAgICAgICdwYXNzd29yZFdhcm5p bmcnOiBzdHIoZGF5c190b19zZWNzKDEyKSkKLSsgICAgfQotKyAgICBtb2RpZnlfcHdwKGluc3Qs IHB3cF9tZ3IsICdzdWJ0cmVlJywgZG49c3VidHJlZV9kbiwgcG9saWN5X3Byb3BzPW1vZGlmeV9w cm9wZXJ0aWVzKQotKwotKyAgICBsb2cuaW5mbyhmJ0NoYW5nZSB7c3VidHJlZV91c2VyLmRufSBw YXNzd29yZCBhcyB0aGUgdXNlcicpCi0rICAgIHN1YnRyZWVfdXNlci5yZWJpbmQoJ3Bhc3N3b3Jk JykKLSsgICAgc3VidHJlZV91c2VyLnJlcGxhY2UoJ3VzZXJwYXNzd29yZCcsICdwYXNzd29yZDAn KQotKyAgICB0aW1lLnNsZWVwKDEpCi0rCi0rICAgIGxvZy5pbmZvKGYnUmUtYmluZCBhcyB7c3Vi dHJlZV91c2VyLmRufSB3aXRoIG5ldyBwYXNzd29yZCcpCi0rICAgIHN1YnRyZWVfdXNlci5yZWJp bmQoJ3Bhc3N3b3JkMCcpCi0rCi0rICAgIGVkYXRlID0gaW50KHRpbWUudGltZSgpIC8gKDYwICog NjAgKiAyNCkpCi0rCi0rICAgIGxvZy5pbmZvKCdWZXJpZnkgc2hhZG93TGFzdENoYW5nZSBpcyBu b3cgc2V0IHRvIHRvZGF5IGFmdGVyIHBhc3N3b3JkIGNoYW5nZScpCi0rICAgIGNoZWNrX3NoYWRv d19hdHRyX3ZhbHVlKGluc3QsIHN1YnRyZWVfdXNlci5kbiwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJ3NoYWRvd0xhc3RDaGFuZ2UnLCBlZGF0ZSkKLSsgICAgY2hlY2tfc2hhZG93X2F0 dHJfdmFsdWUoaW5zdCwgc3VidHJlZV91c2VyLmRuLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAnc2hhZG93TWluJywgNCkKLSsgICAgY2hlY2tfc2hhZG93X2F0dHJfdmFsdWUoaW5zdCwg c3VidHJlZV91c2VyLmRuLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hhZG93TWF4 JywgNDApCi0rICAgIGNoZWNrX3NoYWRvd19hdHRyX3ZhbHVlKGluc3QsIHN1YnRyZWVfdXNlci5k biwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NoYWRvd1dhcm5pbmcnLCAxMikKLSsK LSsKLStAcHl0ZXN0Lm1hcmsuc2tpcGlmKGRzX2lzX29sZGVyKCcxLjMuNicpLCByZWFzb249Ik5v dCBpbXBsZW1lbnRlZCIpCi0rZGVmIHRlc3Rfc2hhZG93YWNjb3VudF91c2VyX3BvbGljeSh0b3Bv bG9neV9zdCwgcmVxdWVzdCk6Ci0rICAgICIiIkNoZWNrIHNoYWRvd0FjY291bnQgd2l0aCB1c2Vy IGxldmVsIHBhc3N3b3JkIHBvbGljeQotKwotKyAgICA6aWQ6IGQ0ZTVmNmE3LThiOWMtMDEyMy1k ZWYwLTQ1Njc4OTAxMjM0NQotKyAgICA6c2V0dXA6IFN0YW5kYWxvbmUgaW5zdGFuY2UKLSsgICAg OnN0ZXBzOgotKyAgICAgICAgMS4gQ3JlYXRlIGEgbmV3IHNoYWRvd0FjY291bnQgdXNlcgotKyAg ICAgICAgMi4gQ3JlYXRlIHVzZXIgcGFzc3dvcmQgcG9saWN5Ci0rICAgICAgICAzLiBWZXJpZnkg c2hhZG93QWNjb3VudCBhdHRyaWJ1dGVzIG1hdGNoIHBvbGljeSB2YWx1ZXMKLSsgICAgICAgIDQu IE1vZGlmeSB1c2VyIHBhc3N3b3JkIHBvbGljeQotKyAgICAgICAgNS4gQ2hhbmdlIHVzZXIgcGFz c3dvcmQKLSsgICAgICAgIDYuIFJlLWJpbmQgd2l0aCBuZXcgcGFzc3dvcmQKLSsgICAgICAgIDcu IENoZWNrIHNoYWRvd0FjY291bnQgYXR0cmlidXRlcyBhcmUgdXBkYXRlZAotKyAgICAgICAgOC4g Q2xlYW4gdXAgdXNlciBwYXNzd29yZCBwb2xpY3kKLSsgICAgOmV4cGVjdGVkcmVzdWx0czoKLSsg ICAgICAgIDEuIFVzZXIgaXMgY3JlYXRlZCBzdWNjZXNzZnVsbHkKLSsgICAgICAgIDIuIFVzZXIg cGFzc3dvcmQgcG9saWN5IGlzIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5Ci0rICAgICAgICAzLiBzaGFk b3dBY2NvdW50IGF0dHJpYnV0ZXMgbWF0Y2ggcG9saWN5IHZhbHVlcwotKyAgICAgICAgNC4gUGFz c3dvcmQgcG9saWN5IGlzIG1vZGlmaWVkIHN1Y2Nlc3NmdWxseQotKyAgICAgICAgNS4gUGFzc3dv cmQgaXMgY2hhbmdlZCBzdWNjZXNzZnVsbHkKLSsgICAgICAgIDYuIFJlLWJpbmQgd2l0aCBuZXcg cGFzc3dvcmQgaXMgc3VjY2Vzc2Z1bAotKyAgICAgICAgNy4gc2hhZG93QWNjb3VudCBhdHRyaWJ1 dGVzIGFyZSB1cGRhdGVkIHRvIG1hdGNoIG5ldyBwb2xpY3kgdmFsdWVzCi0rICAgICAgICA4LiBV c2VyIHBhc3N3b3JkIHBvbGljeSBpcyBkZWxldGVkIHN1Y2Nlc3NmdWxseQotKyAgICAiIiIKLSsg ICAgaW5zdCA9IHRvcG9sb2d5X3N0LnN0YW5kYWxvbmUKLSsKLSsgICAgbG9nLmluZm8oJ0NyZWF0 ZSBhIG5ldyBzaGFkb3dBY2NvdW50IHVzZXIgZm9yIHVzZXIgcG9saWN5IHRlc3QnKQotKyAgICB1 c2VycyA9IFVzZXJBY2NvdW50cyhpbnN0LCBERUZBVUxUX1NVRkZJWCkKLSsgICAgdXNlcl9wb2xp Y3lfdXNlciA9IHVzZXJzLmNyZWF0ZShwcm9wZXJ0aWVzPXsKLSsgICAgICAgICdvYmplY3RjbGFz cyc6IFsndG9wJywgJ3BlcnNvbicsICdvcmdhbml6YXRpb25hbFBlcnNvbicsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgJ2luZXRPcmdQZXJzb24nLCAnZXh0ZW5zaWJsZU9iamVjdCcsICdzaGFk b3dBY2NvdW50J10sCi0rICAgICAgICAnc24nOiAnNCcsCi0rICAgICAgICAnY24nOiAndXNlclBv bGljeVVzZXInLAotKyAgICAgICAgJ3VpZCc6ICd1c2VyUG9saWN5VXNlcicsCi0rICAgICAgICAn dWlkTnVtYmVyJzogJzQnLAotKyAgICAgICAgJ2dpZE51bWJlcic6ICc0NCcsCi0rICAgICAgICAn aG9tZURpcmVjdG9yeSc6ICcvaG9tZS91c2VyUG9saWN5VXNlcicsCi0rICAgICAgICAnZGlzcGxh eU5hbWUnOiAnVXNlciBQb2xpY3kgVXNlcicsCi0rICAgICAgICAnZ2l2ZW5uYW1lJzogJ1VzZXJQ b2xpY3knLAotKyAgICAgICAgJ21haWwnOiBmJ3VzZXJwb2xpY3l1c2VyQHtERUZBVUxUX1NVRkZJ WH0nLAotKyAgICAgICAgJ3VzZXJwYXNzd29yZCc6ICdwYXNzd29yZCcKLSsgICAgfSkKLSsKLSsg ICAgcHdwX21nciA9IFB3UG9saWN5TWFuYWdlcihpbnN0KQotKwotKyAgICBkZWYgZmluKCk6Ci0r ICAgICAgICBsb2cuaW5mbygnQ2xlYW4gdXA6IGRlbGV0ZSB1c2VyIHBhc3N3b3JkIHBvbGljeSBh bmQgdXNlcicpCi0rICAgICAgICBkbSA9IERpcmVjdG9yeU1hbmFnZXIoaW5zdCkKLSsgICAgICAg IGRtLnJlYmluZCgpCi0rICAgICAgICB0cnk6Ci0rICAgICAgICAgICAgcHdwX21nci5kZWxldGVf bG9jYWxfcG9saWN5KHVzZXJfcG9saWN5X3VzZXIuZG4pCi0rICAgICAgICBleGNlcHQgRXhjZXB0 aW9uOgotKyAgICAgICAgICAgIHBhc3MKLSsgICAgICAgIHRyeToKLSsgICAgICAgICAgICB1c2Vy X3BvbGljeV91c2VyLmRlbGV0ZSgpCi0rICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgotKyAgICAg ICAgICAgIHBhc3MKLSsgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoZmluKQotKwotKyAgICBsb2cu aW5mbygnQ29uZmlndXJlIHVzZXIgcGFzc3dvcmQgcG9saWN5JykKLSsgICAgcHJvcGVydGllcyA9 IHsKLSsgICAgICAgICdwYXNzd29yZEV4cCc6ICdvbicsCi0rICAgICAgICAncGFzc3dvcmRNaW5B Z2UnOiBzdHIoZGF5c190b19zZWNzKDIpKSwKLSsgICAgICAgICdwYXNzd29yZE1heEFnZSc6IHN0 cihkYXlzX3RvX3NlY3MoMjApKSwKLSsgICAgICAgICdwYXNzd29yZFdhcm5pbmcnOiBzdHIoZGF5 c190b19zZWNzKDYpKSwKLSsgICAgICAgICdwYXNzd29yZENoYW5nZSc6ICdvbicsCi0rICAgICAg ICAncGFzc3dvcmRTdG9yYWdlU2NoZW1lJzogJ2NsZWFyJwotKyAgICB9Ci0rICAgIHNldHVwX3B3 cChpbnN0LCBwd3BfbWdyLCAndXNlcicsIGRuPXVzZXJfcG9saWN5X3VzZXIuZG4sIHBvbGljeV9w cm9wcz1wcm9wZXJ0aWVzKQotKwotKyAgICBlZGF0ZSA9IGludCh0aW1lLnRpbWUoKSAvICg2MCAq IDYwICogMjQpKQotKwotKyAgICBkbSA9IERpcmVjdG9yeU1hbmFnZXIoaW5zdCkKLSsgICAgZG0u cmViaW5kKCkKLSsKLSsgICAgbG9nLmluZm8oJ1ZlcmlmeSBzaGFkb3dBY2NvdW50IGF0dHJpYnV0 ZXMgbWF0Y2ggdXNlciBwb2xpY3knKQotKyAgICBjaGVja19zaGFkb3dfYXR0cl92YWx1ZShpbnN0 LCB1c2VyX3BvbGljeV91c2VyLmRuLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hh ZG93TGFzdENoYW5nZScsIGVkYXRlKQotKyAgICBjaGVja19zaGFkb3dfYXR0cl92YWx1ZShpbnN0 LCB1c2VyX3BvbGljeV91c2VyLmRuLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hh ZG93TWluJywgMikKLSsgICAgY2hlY2tfc2hhZG93X2F0dHJfdmFsdWUoaW5zdCwgdXNlcl9wb2xp Y3lfdXNlci5kbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NoYWRvd01heCcsIDIw KQotKyAgICBjaGVja19zaGFkb3dfYXR0cl92YWx1ZShpbnN0LCB1c2VyX3BvbGljeV91c2VyLmRu LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hhZG93V2FybmluZycsIDYpCi0rCi0r ICAgIGxvZy5pbmZvKCdNb2RpZnkgdXNlciBwYXNzd29yZCBwb2xpY3knKQotKyAgICBtb2RpZnlf cHJvcGVydGllcyA9IHsKLSsgICAgICAgICdwYXNzd29yZE1pbkFnZSc6IHN0cihkYXlzX3RvX3Nl Y3MoNCkpLAotKyAgICAgICAgJ3Bhc3N3b3JkTWF4QWdlJzogc3RyKGRheXNfdG9fc2Vjcyg0MCkp LAotKyAgICAgICAgJ3Bhc3N3b3JkV2FybmluZyc6IHN0cihkYXlzX3RvX3NlY3MoMTIpKQotKyAg ICB9Ci0rICAgIG1vZGlmeV9wd3AoaW5zdCwgcHdwX21nciwgJ3VzZXInLCBkbj11c2VyX3BvbGlj eV91c2VyLmRuLCBwb2xpY3lfcHJvcHM9bW9kaWZ5X3Byb3BlcnRpZXMpCi0rCi0rICAgIGxvZy5p bmZvKGYnQ2hhbmdlIHt1c2VyX3BvbGljeV91c2VyLmRufSBwYXNzd29yZCBhcyB0aGUgdXNlcicp Ci0rICAgIHVzZXJfcG9saWN5X3VzZXIucmViaW5kKCdwYXNzd29yZCcpCi0rICAgIHVzZXJfcG9s aWN5X3VzZXIucmVwbGFjZSgndXNlcnBhc3N3b3JkJywgJ3Bhc3N3b3JkMCcpCi0rICAgIHRpbWUu c2xlZXAoMSkKLSsKLSsgICAgbG9nLmluZm8oZidSZS1iaW5kIGFzIHt1c2VyX3BvbGljeV91c2Vy LmRufSB3aXRoIG5ldyBwYXNzd29yZCcpCi0rICAgIHVzZXJfcG9saWN5X3VzZXIucmViaW5kKCdw YXNzd29yZDAnKQotKwotKyAgICBlZGF0ZSA9IGludCh0aW1lLnRpbWUoKSAvICg2MCAqIDYwICog MjQpKQotKwotKyAgICBsb2cuaW5mbygnVmVyaWZ5IHNoYWRvd0FjY291bnQgYXR0cmlidXRlcyBh cmUgdXBkYXRlZCBhZnRlciBwYXNzd29yZCBjaGFuZ2UnKQotKyAgICBjaGVja19zaGFkb3dfYXR0 cl92YWx1ZShpbnN0LCB1c2VyX3BvbGljeV91c2VyLmRuLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAnc2hhZG93TGFzdENoYW5nZScsIGVkYXRlKQotKyAgICBjaGVja19zaGFkb3dfYXR0 cl92YWx1ZShpbnN0LCB1c2VyX3BvbGljeV91c2VyLmRuLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAnc2hhZG93TWluJywgNCkKLSsgICAgY2hlY2tfc2hhZG93X2F0dHJfdmFsdWUoaW5z dCwgdXNlcl9wb2xpY3lfdXNlci5kbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3No YWRvd01heCcsIDQwKQotKyAgICBjaGVja19zaGFkb3dfYXR0cl92YWx1ZShpbnN0LCB1c2VyX3Bv bGljeV91c2VyLmRuLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hhZG93V2Fybmlu ZycsIDEyKQotKwotKwotIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgICMgUnVuIGlz b2xhdGVkCi0gICAgICMgLXMgZm9yIERFQlVHIG1vZGUKLWRpZmYgLS1naXQgYS9kaXJzcnZ0ZXN0 cy90ZXN0cy90aWNrZXRzL3RpY2tldDU0OF90ZXN0LnB5IGIvZGlyc3J2dGVzdHMvdGVzdHMvdGlj a2V0cy90aWNrZXQ1NDhfdGVzdC5weQotZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCBj YWMzY2M1ZjguLjAwMDAwMDAwMAotLS0tIGEvZGlyc3J2dGVzdHMvdGVzdHMvdGlja2V0cy90aWNr ZXQ1NDhfdGVzdC5weQotKysrIC9kZXYvbnVsbAotQEAgLTEsNDA4ICswLDAgQEAKLS0jIC0tLSBC RUdJTiBDT1BZUklHSFQgQkxPQ0sgLS0tCi0tIyBDb3B5cmlnaHQgKEMpIDIwMTYgUmVkIEhhdCwg SW5jLgotLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS0jCi0tIyBMaWNlbnNlOiBHUEwgKHZlcnNp b24gMyBvciBhbnkgbGF0ZXIgdmVyc2lvbikuCi0tIyBTZWUgTElDRU5TRSBmb3IgZGV0YWlscy4K LS0jIC0tLSBFTkQgQ09QWVJJR0hUIEJMT0NLIC0tLQotLSMKLS1pbXBvcnQgcHl0ZXN0Ci0tZnJv bSBsaWIzODkudGFza3MgaW1wb3J0ICoKLS1mcm9tIGxpYjM4OS51dGlscyBpbXBvcnQgKgotLWZy b20gbGliMzg5LnRvcG9sb2dpZXMgaW1wb3J0IHRvcG9sb2d5X3N0Ci0tCi0tZnJvbSBsaWIzODku X2NvbnN0YW50cyBpbXBvcnQgREVGQVVMVF9TVUZGSVgsIEROX0NPTkZJRywgRE5fRE0sIFBBU1NX T1JELCBERUZBVUxUX1NVRkZJWF9FU0NBUEVECi0tCi0tIyBTa2lwIG9uIG9sZGVyIHZlcnNpb25z Ci0tcHl0ZXN0bWFyayA9IFtweXRlc3QubWFyay50aWVyMiwKLS0gICAgICAgICAgICAgIHB5dGVz dC5tYXJrLnNraXBpZihkc19pc19vbGRlcignMS4zLjYnKSwgcmVhc29uPSJOb3QgaW1wbGVtZW50 ZWQiKV0KLS0KLS1sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKLS0KLS0jIEFzc3Vt aW5nIERFRkFVTFRfU1VGRklYIGlzICJkYz1leGFtcGxlLGRjPWNvbSIsIG90aGVyd2lzZSBpdCBk b2VzIG5vdCB3b3JrLi4uIDooCi0tU1VCVFJFRV9DT05UQUlORVIgPSAnY249bnNQd1BvbGljeUNv bnRhaW5lciwnICsgREVGQVVMVF9TVUZGSVgKLS1TVUJUUkVFX1BXUEROID0gJ2NuPW5zUHdQb2xp Y3lFbnRyeSwnICsgREVGQVVMVF9TVUZGSVgKLS1TVUJUUkVFX1BXUCA9ICdjbj1jblwzRG5zUHdQ b2xpY3lFbnRyeVwyQycgKyBERUZBVUxUX1NVRkZJWF9FU0NBUEVEICsgJywnICsgU1VCVFJFRV9D T05UQUlORVIKLS1TVUJUUkVFX0NPU19UTVBMRE4gPSAnY249bnNQd1RlbXBsYXRlRW50cnksJyAr IERFRkFVTFRfU1VGRklYCi0tU1VCVFJFRV9DT1NfVE1QTCA9ICdjbj1jblwzRG5zUHdUZW1wbGF0 ZUVudHJ5XDJDJyArIERFRkFVTFRfU1VGRklYX0VTQ0FQRUQgKyAnLCcgKyBTVUJUUkVFX0NPTlRB SU5FUgotLVNVQlRSRUVfQ09TX0RFRiA9ICdjbj1uc1B3UG9saWN5X0NvUywnICsgREVGQVVMVF9T VUZGSVgKLS0KLS1VU0VSMV9ETiA9ICd1aWQ9dXNlcjEsJyArIERFRkFVTFRfU1VGRklYCi0tVVNF UjJfRE4gPSAndWlkPXVzZXIyLCcgKyBERUZBVUxUX1NVRkZJWAotLVVTRVIzX0ROID0gJ3VpZD11 c2VyMywnICsgREVGQVVMVF9TVUZGSVgKLS1VU0VSX1BXID0gJ3Bhc3N3b3JkJwotLQotLQotLWRl ZiBkYXlzX3RvX3NlY3MoZGF5cyk6Ci0tICAgICMgVmFsdWUgb2YgNjAgKiA2MCAqIDI0Ci0tICAg IHJldHVybiBkYXlzICogODY0MDAKLS0KLS0KLS0jIFZhbHVlcyBhcmUgaW4gZGF5cwotLWRlZiBz ZXRfZ2xvYmFsX3B3cG9saWN5KHRvcG9sb2d5X3N0LCBtaW5fPTEsIG1heF89MTAsIHdhcm49Myk6 Ci0tICAgIGxvZy5pbmZvKCIJKysrKysgRW5hYmxlIGdsb2JhbCBwYXNzd29yZCBwb2xpY3kgKysr KytcbiIpCi0tICAgICMgRW5hYmxlIHBhc3N3b3JkIHBvbGljeQotLSAgICB0cnk6Ci0tICAgICAg ICB0b3BvbG9neV9zdC5zdGFuZGFsb25lLm1vZGlmeV9zKEROX0NPTkZJRywgWyhsZGFwLk1PRF9S RVBMQUNFLCAnbnNzbGFwZC1wd3BvbGljeS1sb2NhbCcsIGInb24nKV0pCi0tICAgIGV4Y2VwdCBs ZGFwLkxEQVBFcnJvciBhcyBlOgotLSAgICAgICAgbG9nLmVycm9yKCdGYWlsZWQgdG8gc2V0IHB3 cG9saWN5LWxvY2FsOiBlcnJvciAnICsgZS5tZXNzYWdlWydkZXNjJ10pCi0tICAgICAgICBhc3Nl cnQgRmFsc2UKLS0KLS0gICAgIyBDb252ZXJ0IG91ciB2YWx1ZXMgdG8gc2Vjb25kcwotLSAgICBt aW5fc2VjcyA9IGRheXNfdG9fc2VjcyhtaW5fKQotLSAgICBtYXhfc2VjcyA9IGRheXNfdG9fc2Vj cyhtYXhfKQotLSAgICB3YXJuX3NlY3MgPSBkYXlzX3RvX3NlY3Mod2FybikKLS0KLS0gICAgbG9n LmluZm8oIgkJU2V0IGdsb2JhbCBwYXNzd29yZCBNaW4gQWdlIC0tICVzIGRheVxuIiAlIG1pbl8p Ci0tICAgIHRyeToKLS0gICAgICAgIHRvcG9sb2d5X3N0LnN0YW5kYWxvbmUubW9kaWZ5X3MoRE5f Q09ORklHLCBbKGxkYXAuTU9EX1JFUExBQ0UsICdwYXNzd29yZE1pbkFnZScsICgnJXMnICUgbWlu X3NlY3MpLmVuY29kZSgpKV0pCi0tICAgIGV4Y2VwdCBsZGFwLkxEQVBFcnJvciBhcyBlOgotLSAg ICAgICAgbG9nLmVycm9yKCdGYWlsZWQgdG8gc2V0IHBhc3N3b3JkTWluQWdlOiBlcnJvciAnICsg ZS5tZXNzYWdlWydkZXNjJ10pCi0tICAgICAgICBhc3NlcnQgRmFsc2UKLS0KLS0gICAgbG9nLmlu Zm8oIgkJU2V0IGdsb2JhbCBwYXNzd29yZCBFeHBpcmF0aW9uIC0tIG9uXG4iKQotLSAgICB0cnk6 Ci0tICAgICAgICB0b3BvbG9neV9zdC5zdGFuZGFsb25lLm1vZGlmeV9zKEROX0NPTkZJRywgWyhs ZGFwLk1PRF9SRVBMQUNFLCAncGFzc3dvcmRFeHAnLCBiJ29uJyldKQotLSAgICBleGNlcHQgbGRh cC5MREFQRXJyb3IgYXMgZToKLS0gICAgICAgIGxvZy5lcnJvcignRmFpbGVkIHRvIHNldCBwYXNz d29yZEV4cDogZXJyb3IgJyArIGUubWVzc2FnZVsnZGVzYyddKQotLSAgICAgICAgYXNzZXJ0IEZh bHNlCi0tCi0tICAgIGxvZy5pbmZvKCIJCVNldCBnbG9iYWwgcGFzc3dvcmQgTWF4IEFnZSAtLSAl cyBkYXlzXG4iICUgbWF4XykKLS0gICAgdHJ5OgotLSAgICAgICAgdG9wb2xvZ3lfc3Quc3RhbmRh bG9uZS5tb2RpZnlfcyhETl9DT05GSUcsIFsobGRhcC5NT0RfUkVQTEFDRSwgJ3Bhc3N3b3JkTWF4 QWdlJywgKCclcycgJSBtYXhfc2VjcykuZW5jb2RlKCkpXSkKLS0gICAgZXhjZXB0IGxkYXAuTERB UEVycm9yIGFzIGU6Ci0tICAgICAgICBsb2cuZXJyb3IoJ0ZhaWxlZCB0byBzZXQgcGFzc3dvcmRN YXhBZ2U6IGVycm9yICcgKyBlLm1lc3NhZ2VbJ2Rlc2MnXSkKLS0gICAgICAgIGFzc2VydCBGYWxz ZQotLQotLSAgICBsb2cuaW5mbygiCQlTZXQgZ2xvYmFsIHBhc3N3b3JkIFdhcm5pbmcgLS0gJXMg ZGF5c1xuIiAlIHdhcm4pCi0tICAgIHRyeToKLS0gICAgICAgIHRvcG9sb2d5X3N0LnN0YW5kYWxv bmUubW9kaWZ5X3MoRE5fQ09ORklHLCBbKGxkYXAuTU9EX1JFUExBQ0UsICdwYXNzd29yZFdhcm5p bmcnLCAoJyVzJyAlIHdhcm5fc2VjcykuZW5jb2RlKCkpXSkKLS0gICAgZXhjZXB0IGxkYXAuTERB UEVycm9yIGFzIGU6Ci0tICAgICAgICBsb2cuZXJyb3IoJ0ZhaWxlZCB0byBzZXQgcGFzc3dvcmRX YXJuaW5nOiBlcnJvciAnICsgZS5tZXNzYWdlWydkZXNjJ10pCi0tICAgICAgICBhc3NlcnQgRmFs c2UKLS0KLS0KLS1kZWYgc2V0X3N1YnRyZWVfcHdwb2xpY3kodG9wb2xvZ3lfc3QsIG1pbl89Miwg bWF4Xz0yMCwgd2Fybj02KToKLS0gICAgbG9nLmluZm8oIgkrKysrKyBFbmFibGUgc3VidHJlZSBs ZXZlbCBwYXNzd29yZCBwb2xpY3kgKysrKytcbiIpCi0tCi0tICAgICMgQ29udmVydCBvdXIgdmFs dWVzIHRvIHNlY29uZHMKLS0gICAgbWluX3NlY3MgPSBkYXlzX3RvX3NlY3MobWluXykKLS0gICAg bWF4X3NlY3MgPSBkYXlzX3RvX3NlY3MobWF4XykKLS0gICAgd2Fybl9zZWNzID0gZGF5c190b19z ZWNzKHdhcm4pCi0tCi0tICAgIGxvZy5pbmZvKCIJCUFkZCB0aGUgY29udGFpbmVyIikKLS0gICAg dHJ5OgotLSAgICAgICAgdG9wb2xvZ3lfc3Quc3RhbmRhbG9uZS5hZGRfcyhFbnRyeSgoU1VCVFJF RV9DT05UQUlORVIsIHsnb2JqZWN0Y2xhc3MnOiAndG9wIG5zQ29udGFpbmVyJy5zcGxpdCgpLAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAnY24nOiAnbnNQd1BvbGljeUNvbnRhaW5lcid9KSkpCi0tICAgIGV4Y2VwdCBsZGFw LkFMUkVBRFlfRVhJU1RTOgotLSAgICAgICAgcGFzcwotLSAgICBleGNlcHQgbGRhcC5MREFQRXJy b3IgYXMgZToKLS0gICAgICAgIGxvZy5lcnJvcignRmFpbGVkIHRvIGFkZCBzdWJ0cmVlIGNvbnRh aW5lcjogZXJyb3IgJyArIGUubWVzc2FnZVsnZGVzYyddKQotLSAgICAgICAgIyBhc3NlcnQgRmFs c2UKLS0KLS0gICAgdHJ5OgotLSAgICAgICAgIyBQdXJnZSB0aGUgb2xkIHBvbGljeQotLSAgICAg ICAgdG9wb2xvZ3lfc3Quc3RhbmRhbG9uZS5kZWxldGVfcyhTVUJUUkVFX1BXUCkKLS0gICAgZXhj ZXB0OgotLSAgICAgICAgcGFzcwotLQotLSAgICBsb2cuaW5mbygKLS0gICAgICAgICIJCUFkZCB0 aGUgcGFzc3dvcmQgcG9saWN5IHN1YmVudHJ5IHtwYXNzd29yZE11c3RDaGFuZ2U6IG9uLCBwYXNz d29yZE1pbkFnZTogJXMsIHBhc3N3b3JkTWF4QWdlOiAlcywgcGFzc3dvcmRXYXJuaW5nOiAlc30i ICUgKAotLSAgICAgICAgICAgIG1pbl8sIG1heF8sIHdhcm4pKQotLSAgICB0cnk6Ci0tICAgICAg ICB0b3BvbG9neV9zdC5zdGFuZGFsb25lLmFkZF9zKEVudHJ5KChTVUJUUkVFX1BXUCwgeydvYmpl Y3RjbGFzcyc6ICd0b3AgbGRhcHN1YmVudHJ5IHBhc3N3b3JkcG9saWN5Jy5zcGxpdCgpLAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn Y24nOiBTVUJUUkVFX1BXUEROLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAncGFzc3dvcmRNdXN0Q2hhbmdlJzogJ29uJywKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Bh c3N3b3JkRXhwJzogJ29uJywKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJ3Bhc3N3b3JkTWluQWdlJzogJyVzJyAlIG1pbl9zZWNzLAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAncGFzc3dvcmRNYXhBZ2UnOiAnJXMnICUgbWF4X3NlY3MsCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwYXNzd29yZFdhcm5pbmcn OiAnJXMnICUgd2Fybl9zZWNzLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAncGFzc3dvcmRDaGFuZ2UnOiAnb24nLAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFzc3dv cmRTdG9yYWdlU2NoZW1lJzogJ2NsZWFyJ30pKSkKLS0gICAgZXhjZXB0IGxkYXAuTERBUEVycm9y IGFzIGU6Ci0tICAgICAgICBsb2cuZXJyb3IoJ0ZhaWxlZCB0byBhZGQgcGFzc3dvcmRwb2xpY3k6 IGVycm9yICcgKyBlLm1lc3NhZ2VbJ2Rlc2MnXSkKLS0gICAgICAgIGFzc2VydCBGYWxzZQotLQot LSAgICBsb2cuaW5mbygiCQlBZGQgdGhlIENPUyB0ZW1wbGF0ZSIpCi0tICAgIHRyeToKLS0gICAg ICAgIHRvcG9sb2d5X3N0LnN0YW5kYWxvbmUuYWRkX3MoCi0tICAgICAgICAgICAgRW50cnkoKFNV QlRSRUVfQ09TX1RNUEwsIHsnb2JqZWN0Y2xhc3MnOiAndG9wIGxkYXBzdWJlbnRyeSBjb3N0ZW1w bGF0ZSBleHRlbnNpYmxlT2JqZWN0Jy5zcGxpdCgpLAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJ2NuJzogU1VCVFJFRV9QV1BETiwKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICdjb3NQcmlvcml0eSc6ICcxJywKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICdjbic6IFNVQlRSRUVfQ09TX1RNUExETiwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwd2Rwb2xpY3lzdWJlbnRyeSc6IFNVQlRS RUVfUFdQfSkpKQotLSAgICBleGNlcHQgbGRhcC5BTFJFQURZX0VYSVNUUzoKLS0gICAgICAgIHBh c3MKLS0gICAgZXhjZXB0IGxkYXAuTERBUEVycm9yIGFzIGU6Ci0tICAgICAgICBsb2cuZXJyb3Io J0ZhaWxlZCB0byBhZGQgQ09TIHRlbXBsYXRlOiBlcnJvciAnICsgZS5tZXNzYWdlWydkZXNjJ10p Ci0tICAgICAgICAjIGFzc2VydCBGYWxzZQotLQotLSAgICBsb2cuaW5mbygiCQlBZGQgdGhlIENP UyBkZWZpbml0aW9uIikKLS0gICAgdHJ5OgotLSAgICAgICAgdG9wb2xvZ3lfc3Quc3RhbmRhbG9u ZS5hZGRfcygKLS0gICAgICAgICAgICBFbnRyeSgoU1VCVFJFRV9DT1NfREVGLCB7J29iamVjdGNs YXNzJzogJ3RvcCBsZGFwc3ViZW50cnkgY29zU3VwZXJEZWZpbml0aW9uIGNvc1BvaW50ZXJEZWZp bml0aW9uJy5zcGxpdCgpLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn Y24nOiBTVUJUUkVFX1BXUEROLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnY29zdGVtcGxhdGVkbic6IFNVQlRSRUVfQ09TX1RNUEwsCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICdjb3NBdHRyaWJ1dGUnOiAncHdkcG9saWN5c3ViZW50cnkgZGVm YXVsdCBvcGVyYXRpb25hbC1kZWZhdWx0J30pKSkKLS0gICAgZXhjZXB0IGxkYXAuQUxSRUFEWV9F WElTVFM6Ci0tICAgICAgICBwYXNzCi0tICAgIGV4Y2VwdCBsZGFwLkxEQVBFcnJvciBhcyBlOgot LSAgICAgICAgbG9nLmVycm9yKCdGYWlsZWQgdG8gYWRkIENPUyBkZWY6IGVycm9yICcgKyBlLm1l c3NhZ2VbJ2Rlc2MnXSkKLS0gICAgICAgICMgYXNzZXJ0IEZhbHNlCi0tCi0tICAgIHRpbWUuc2xl ZXAoMSkKLS0KLS0KLS1kZWYgdXBkYXRlX3Bhc3N3ZCh0b3BvbG9neV9zdCwgdXNlciwgcGFzc3dk LCBuZXdwYXNzd2QpOgotLSAgICBsb2cuaW5mbygiCQlCaW5kIGFzIHslcywlc30iICUgKHVzZXIs IHBhc3N3ZCkpCi0tICAgIHRvcG9sb2d5X3N0LnN0YW5kYWxvbmUuc2ltcGxlX2JpbmRfcyh1c2Vy LCBwYXNzd2QpCi0tICAgIHRyeToKLS0gICAgICAgIHRvcG9sb2d5X3N0LnN0YW5kYWxvbmUubW9k aWZ5X3ModXNlciwgWyhsZGFwLk1PRF9SRVBMQUNFLCAndXNlcnBhc3N3b3JkJywgbmV3cGFzc3dk LmVuY29kZSgpKV0pCi0tICAgIGV4Y2VwdCBsZGFwLkxEQVBFcnJvciBhcyBlOgotLSAgICAgICAg bG9nLmZhdGFsKCd0ZXN0X3RpY2tldDU0ODogRmFpbGVkIHRvIHVwZGF0ZSB0aGUgcGFzc3dvcmQg JyArIGNwdyArICcgb2YgdXNlciAnICsgdXNlciArICc6IGVycm9yICcgKyBlLm1lc3NhZ2VbCi0t ICAgICAgICAgICAgJ2Rlc2MnXSkKLS0gICAgICAgIGFzc2VydCBGYWxzZQotLQotLSAgICB0aW1l LnNsZWVwKDEpCi0tCi0tCi0tZGVmIGNoZWNrX3NoYWRvd19hdHRyX3ZhbHVlKGVudHJ5LCBhdHRy X3R5cGUsIGV4cGVjdGVkLCBkbik6Ci0tICAgIGlmIGVudHJ5Lmhhc0F0dHIoYXR0cl90eXBlKToK LS0gICAgICAgIGFjdHVhbCA9IGVudHJ5LmdldFZhbHVlKGF0dHJfdHlwZSkKLS0gICAgICAgIGlm IGludChhY3R1YWwpID09IGV4cGVjdGVkOgotLSAgICAgICAgICAgIGxvZy5pbmZvKCclcyBvZiBl bnRyeSAlcyBoYXMgZXhwZWN0ZWQgdmFsdWUgJXMnICUgKGF0dHJfdHlwZSwgZG4sIGFjdHVhbCkp Ci0tICAgICAgICAgICAgYXNzZXJ0IFRydWUKLS0gICAgICAgIGVsc2U6Ci0tICAgICAgICAgICAg bG9nLmZhdGFsKCclcyAlcyBvZiBlbnRyeSAlcyBkb2VzIG5vdCBoYXZlIGV4cGVjdGVkIHZhbHVl ICVzJyAlIChhdHRyX3R5cGUsIGFjdHVhbCwgZG4sIGV4cGVjdGVkKSkKLS0gICAgICAgICAgICBh c3NlcnQgRmFsc2UKLS0gICAgZWxzZToKLS0gICAgICAgIGxvZy5mYXRhbCgnZW50cnkgJXMgZG9l cyBub3QgaGF2ZSAlcyBhdHRyJyAlIChkbiwgYXR0cl90eXBlKSkKLS0gICAgICAgIGFzc2VydCBG YWxzZQotLQotLQotLWRlZiB0ZXN0X3RpY2tldDU0OF90ZXN0X3dpdGhfbm9fcG9saWN5KHRvcG9s b2d5X3N0KToKLS0gICAgIiIiCi0tICAgIENoZWNrIHNoYWRvd0FjY291bnQgdW5kZXIgbm8gcGFz c3dvcmQgcG9saWN5Ci0tICAgICIiIgotLSAgICBsb2cuaW5mbygiQ2FzZSAxLiBObyBwYXNzd29y ZCBwb2xpY3kiKQotLQotLSAgICBsb2cuaW5mbygiQmluZCBhcyAlcyIgJSBETl9ETSkKLS0gICAg dG9wb2xvZ3lfc3Quc3RhbmRhbG9uZS5zaW1wbGVfYmluZF9zKEROX0RNLCBQQVNTV09SRCkKLS0K LS0gICAgbG9nLmluZm8oJ0FkZCBhbiBlbnRyeScgKyBVU0VSMV9ETikKLS0gICAgdHJ5OgotLSAg ICAgICAgdG9wb2xvZ3lfc3Quc3RhbmRhbG9uZS5hZGRfcygKLS0gICAgICAgICAgICBFbnRyeSgo VVNFUjFfRE4sIHsnb2JqZWN0Y2xhc3MnOiAidG9wIHBlcnNvbiBvcmdhbml6YXRpb25hbFBlcnNv biBpbmV0T3JnUGVyc29uIHNoYWRvd0FjY291bnQiLnNwbGl0KCksCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJ3NuJzogJzEnLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICdjbic6ICd1c2VyIDEnLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd1aWQnOiAn dXNlcjEnLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdnaXZlbm5hbWUnOiAndXNl cicsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21haWwnOiAndXNlcjFAJyArIERF RkFVTFRfU1VGRklYLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd1c2VycGFzc3dv cmQnOiBVU0VSX1BXfSkpKQotLSAgICBleGNlcHQgbGRhcC5MREFQRXJyb3IgYXMgZToKLS0gICAg ICAgIGxvZy5mYXRhbCgndGVzdF90aWNrZXQ1NDg6IEZhaWxlZCB0byBhZGQgdXNlcicgKyBVU0VS MV9ETiArICc6IGVycm9yICcgKyBlLm1lc3NhZ2VbJ2Rlc2MnXSkKLS0gICAgICAgIGFzc2VydCBG YWxzZQotLQotLSAgICBlZGF0ZSA9IGludCh0aW1lLnRpbWUoKSAvICg2MCAqIDYwICogMjQpKQot LSAgICBsb2cuaW5mbygnU2VhcmNoIGVudHJ5ICVzJyAlIFVTRVIxX0ROKQotLQotLSAgICBsb2cu aW5mbygiQmluZCBhcyAlcyIgJSBVU0VSMV9ETikKLS0gICAgdG9wb2xvZ3lfc3Quc3RhbmRhbG9u ZS5zaW1wbGVfYmluZF9zKFVTRVIxX0ROLCBVU0VSX1BXKQotLSAgICBlbnRyeSA9IHRvcG9sb2d5 X3N0LnN0YW5kYWxvbmUuZ2V0RW50cnkoVVNFUjFfRE4sIGxkYXAuU0NPUEVfQkFTRSwgIihvYmpl Y3RjbGFzcz0qKSIsIFsnc2hhZG93TGFzdENoYW5nZSddKQotLSAgICBjaGVja19zaGFkb3dfYXR0 cl92YWx1ZShlbnRyeSwgJ3NoYWRvd0xhc3RDaGFuZ2UnLCBlZGF0ZSwgVVNFUjFfRE4pCi0tCi0t ICAgIGxvZy5pbmZvKCJDaGVjayBzaGFkb3dBY2NvdW50IHdpdGggbm8gcG9saWN5IHdhcyBzdWNj ZXNzZnVsbHkgdmVyaWZpZWQuIikKLS0KLS0KLS1kZWYgdGVzdF90aWNrZXQ1NDhfdGVzdF9nbG9i YWxfcG9saWN5KHRvcG9sb2d5X3N0KToKLS0gICAgIiIiCi0tICAgIENoZWNrIHNoYWRvd0FjY291 bnQgd2l0aCBnbG9iYWwgcGFzc3dvcmQgcG9saWN5Ci0tICAgICIiIgotLQotLSAgICBsb2cuaW5m bygiQ2FzZSAyLiAgQ2hlY2sgc2hhZG93QWNjb3VudCB3aXRoIGdsb2JhbCBwYXNzd29yZCBwb2xp Y3kiKQotLQotLSAgICBsb2cuaW5mbygiQmluZCBhcyAlcyIgJSBETl9ETSkKLS0gICAgdG9wb2xv Z3lfc3Quc3RhbmRhbG9uZS5zaW1wbGVfYmluZF9zKEROX0RNLCBQQVNTV09SRCkKLS0KLS0gICAg c2V0X2dsb2JhbF9wd3BvbGljeSh0b3BvbG9neV9zdCkKLS0KLS0gICAgbG9nLmluZm8oJ0FkZCBh biBlbnRyeScgKyBVU0VSMl9ETikKLS0gICAgdHJ5OgotLSAgICAgICAgdG9wb2xvZ3lfc3Quc3Rh bmRhbG9uZS5hZGRfcygKLS0gICAgICAgICAgICBFbnRyeSgoVVNFUjJfRE4sIHsnb2JqZWN0Y2xh c3MnOiAidG9wIHBlcnNvbiBvcmdhbml6YXRpb25hbFBlcnNvbiBpbmV0T3JnUGVyc29uIHNoYWRv d0FjY291bnQiLnNwbGl0KCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NuJzog JzInLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjbic6ICd1c2VyIDInLAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICd1aWQnOiAndXNlcjInLAotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICdnaXZlbm5hbWUnOiAndXNlcicsCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJ21haWwnOiAndXNlcjJAJyArIERFRkFVTFRfU1VGRklYLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICd1c2VycGFzc3dvcmQnOiBVU0VSX1BXfSkpKQotLSAg ICBleGNlcHQgbGRhcC5MREFQRXJyb3IgYXMgZToKLS0gICAgICAgIGxvZy5mYXRhbCgndGVzdF90 aWNrZXQ1NDg6IEZhaWxlZCB0byBhZGQgdXNlcicgKyBVU0VSMl9ETiArICc6IGVycm9yICcgKyBl Lm1lc3NhZ2VbJ2Rlc2MnXSkKLS0gICAgICAgIGFzc2VydCBGYWxzZQotLQotLSAgICBlZGF0ZSA9 IGludCh0aW1lLnRpbWUoKSAvICg2MCAqIDYwICogMjQpKQotLQotLSAgICBsb2cuaW5mbygiQmlu ZCBhcyAlcyIgJSBVU0VSMV9ETikKLS0gICAgdG9wb2xvZ3lfc3Quc3RhbmRhbG9uZS5zaW1wbGVf YmluZF9zKFVTRVIxX0ROLCBVU0VSX1BXKQotLQotLSAgICBsb2cuaW5mbygnU2VhcmNoIGVudHJ5 ICVzJyAlIFVTRVIxX0ROKQotLSAgICBlbnRyeSA9IHRvcG9sb2d5X3N0LnN0YW5kYWxvbmUuZ2V0 RW50cnkoVVNFUjFfRE4sIGxkYXAuU0NPUEVfQkFTRSwgIihvYmplY3RjbGFzcz0qKSIpCi0tICAg IGNoZWNrX3NoYWRvd19hdHRyX3ZhbHVlKGVudHJ5LCAnc2hhZG93TGFzdENoYW5nZScsIGVkYXRl LCBVU0VSMV9ETikKLS0KLS0gICAgIyBwYXNzd29yZE1pbkFnZSAtLSAxIGRheQotLSAgICBjaGVj a19zaGFkb3dfYXR0cl92YWx1ZShlbnRyeSwgJ3NoYWRvd01pbicsIDEsIFVTRVIxX0ROKQotLQot LSAgICAjIHBhc3N3b3JkTWF4QWdlIC0tIDEwIGRheXMKLS0gICAgY2hlY2tfc2hhZG93X2F0dHJf dmFsdWUoZW50cnksICdzaGFkb3dNYXgnLCAxMCwgVVNFUjFfRE4pCi0tCi0tICAgICMgcGFzc3dv cmRXYXJuaW5nIC0tIDMgZGF5cwotLSAgICBjaGVja19zaGFkb3dfYXR0cl92YWx1ZShlbnRyeSwg J3NoYWRvd1dhcm5pbmcnLCAzLCBVU0VSMV9ETikKLS0KLS0gICAgbG9nLmluZm8oIkJpbmQgYXMg JXMiICUgVVNFUjJfRE4pCi0tICAgIHRvcG9sb2d5X3N0LnN0YW5kYWxvbmUuc2ltcGxlX2JpbmRf cyhVU0VSMl9ETiwgVVNFUl9QVykKLS0KLS0gICAgbG9nLmluZm8oJ1NlYXJjaCBlbnRyeSAlcycg JSBVU0VSMl9ETikKLS0gICAgZW50cnkgPSB0b3BvbG9neV9zdC5zdGFuZGFsb25lLmdldEVudHJ5 KFVTRVIyX0ROLCBsZGFwLlNDT1BFX0JBU0UsICIob2JqZWN0Y2xhc3M9KikiKQotLSAgICBjaGVj a19zaGFkb3dfYXR0cl92YWx1ZShlbnRyeSwgJ3NoYWRvd0xhc3RDaGFuZ2UnLCBlZGF0ZSwgVVNF UjJfRE4pCi0tCi0tICAgICMgcGFzc3dvcmRNaW5BZ2UgLS0gMSBkYXkKLS0gICAgY2hlY2tfc2hh ZG93X2F0dHJfdmFsdWUoZW50cnksICdzaGFkb3dNaW4nLCAxLCBVU0VSMl9ETikKLS0KLS0gICAg IyBwYXNzd29yZE1heEFnZSAtLSAxMCBkYXlzCi0tICAgIGNoZWNrX3NoYWRvd19hdHRyX3ZhbHVl KGVudHJ5LCAnc2hhZG93TWF4JywgMTAsIFVTRVIyX0ROKQotLQotLSAgICAjIHBhc3N3b3JkV2Fy bmluZyAtLSAzIGRheXMKLS0gICAgY2hlY2tfc2hhZG93X2F0dHJfdmFsdWUoZW50cnksICdzaGFk b3dXYXJuaW5nJywgMywgVVNFUjJfRE4pCi0tCi0tICAgICMgQmluZCBhcyBETSBhZ2FpbiwgY2hh bmdlIHBvbGljeQotLSAgICBsb2cuaW5mbygiQmluZCBhcyAlcyIgJSBETl9ETSkKLS0gICAgdG9w b2xvZ3lfc3Quc3RhbmRhbG9uZS5zaW1wbGVfYmluZF9zKEROX0RNLCBQQVNTV09SRCkKLS0gICAg c2V0X2dsb2JhbF9wd3BvbGljeSh0b3BvbG9neV9zdCwgMywgMzAsIDkpCi0tCi0tICAgICMgY2hh bmdlIHRoZSB1c2VyIHBhc3N3b3JkLCB0aGVuIGNoZWNrIGFnYWluLgotLSAgICBsb2cuaW5mbygi QmluZCBhcyAlcyIgJSBVU0VSMl9ETikKLS0gICAgdG9wb2xvZ3lfc3Quc3RhbmRhbG9uZS5zaW1w bGVfYmluZF9zKFVTRVIyX0ROLCBVU0VSX1BXKQotLQotLSAgICBuZXdwYXNzd2QgPSBVU0VSX1BX ICsgJzInCi0tICAgIHVwZGF0ZV9wYXNzd2QodG9wb2xvZ3lfc3QsIFVTRVIyX0ROLCBVU0VSX1BX LCBuZXdwYXNzd2QpCi0tCi0tICAgIGxvZy5pbmZvKCJSZS1iaW5kIGFzICVzIHdpdGggbmV3IHBh c3N3b3JkIiAlIFVTRVIyX0ROKQotLSAgICB0b3BvbG9neV9zdC5zdGFuZGFsb25lLnNpbXBsZV9i aW5kX3MoVVNFUjJfRE4sIG5ld3Bhc3N3ZCkKLS0KLS0gICAgIyMgVGhpcyB0ZXN0cyBpZiB3ZSB1 cGRhdGUgdGhlIHNoYWRvdyB2YWx1ZXMgb24gcGFzc3dvcmQgY2hhbmdlLgotLSAgICBsb2cuaW5m bygnU2VhcmNoIGVudHJ5ICVzJyAlIFVTRVIyX0ROKQotLSAgICBlbnRyeSA9IHRvcG9sb2d5X3N0 LnN0YW5kYWxvbmUuZ2V0RW50cnkoVVNFUjJfRE4sIGxkYXAuU0NPUEVfQkFTRSwgIihvYmplY3Rj bGFzcz0qKSIpCi0tCi0tICAgICMgcGFzc3dvcmRNaW5BZ2UgLS0gMSBkYXkKLS0gICAgY2hlY2tf c2hhZG93X2F0dHJfdmFsdWUoZW50cnksICdzaGFkb3dNaW4nLCAzLCBVU0VSMl9ETikKLS0KLS0g ICAgIyBwYXNzd29yZE1heEFnZSAtLSAxMCBkYXlzCi0tICAgIGNoZWNrX3NoYWRvd19hdHRyX3Zh bHVlKGVudHJ5LCAnc2hhZG93TWF4JywgMzAsIFVTRVIyX0ROKQotLQotLSAgICAjIHBhc3N3b3Jk V2FybmluZyAtLSAzIGRheXMKLS0gICAgY2hlY2tfc2hhZG93X2F0dHJfdmFsdWUoZW50cnksICdz aGFkb3dXYXJuaW5nJywgOSwgVVNFUjJfRE4pCi0tCi0tICAgIGxvZy5pbmZvKCJDaGVjayBzaGFk b3dBY2NvdW50IHdpdGggZ2xvYmFsIHBvbGljeSB3YXMgc3VjY2Vzc2Z1bGx5IHZlcmlmaWVkLiIp Ci0tCi0tCi0tZGVmIHRlc3RfdGlja2V0NTQ4X3Rlc3Rfc3VidHJlZV9wb2xpY3kodG9wb2xvZ3lf c3QpOgotLSAgICAiIiIKLS0gICAgQ2hlY2sgc2hhZG93QWNjb3VudCB3aXRoIHN1YnRyZWUgbGV2 ZWwgcGFzc3dvcmQgcG9saWN5Ci0tICAgICIiIgotLQotLSAgICBsb2cuaW5mbygiQ2FzZSAzLiAg Q2hlY2sgc2hhZG93QWNjb3VudCB3aXRoIHN1YnRyZWUgbGV2ZWwgcGFzc3dvcmQgcG9saWN5IikK LS0KLS0gICAgbG9nLmluZm8oIkJpbmQgYXMgJXMiICUgRE5fRE0pCi0tICAgIHRvcG9sb2d5X3N0 LnN0YW5kYWxvbmUuc2ltcGxlX2JpbmRfcyhETl9ETSwgUEFTU1dPUkQpCi0tICAgICMgQ2hlY2sg dGhlIGdsb2JhbCBwb2xpY3kgdmFsdWVzCi0tCi0tICAgIHNldF9zdWJ0cmVlX3B3cG9saWN5KHRv cG9sb2d5X3N0LCAyLCAyMCwgNikKLS0KLS0gICAgbG9nLmluZm8oJ0FkZCBhbiBlbnRyeScgKyBV U0VSM19ETikKLS0gICAgdHJ5OgotLSAgICAgICAgdG9wb2xvZ3lfc3Quc3RhbmRhbG9uZS5hZGRf cygKLS0gICAgICAgICAgICBFbnRyeSgoVVNFUjNfRE4sIHsnb2JqZWN0Y2xhc3MnOiAidG9wIHBl cnNvbiBvcmdhbml6YXRpb25hbFBlcnNvbiBpbmV0T3JnUGVyc29uIHNoYWRvd0FjY291bnQiLnNw bGl0KCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NuJzogJzMnLAotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICdjbic6ICd1c2VyIDMnLAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICd1aWQnOiAndXNlcjMnLAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICdnaXZlbm5hbWUnOiAndXNlcicsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJ21haWwnOiAndXNlcjNAJyArIERFRkFVTFRfU1VGRklYLAotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICd1c2VycGFzc3dvcmQnOiBVU0VSX1BXfSkpKQotLSAgICBleGNlcHQgbGRh cC5MREFQRXJyb3IgYXMgZToKLS0gICAgICAgIGxvZy5mYXRhbCgndGVzdF90aWNrZXQ1NDg6IEZh aWxlZCB0byBhZGQgdXNlcicgKyBVU0VSM19ETiArICc6IGVycm9yICcgKyBlLm1lc3NhZ2VbJ2Rl c2MnXSkKLS0gICAgICAgIGFzc2VydCBGYWxzZQotLQotLSAgICBsb2cuaW5mbygnU2VhcmNoIGVu dHJ5ICVzJyAlIFVTRVIzX0ROKQotLSAgICBlbnRyeTAgPSB0b3BvbG9neV9zdC5zdGFuZGFsb25l LmdldEVudHJ5KFVTRVIzX0ROLCBsZGFwLlNDT1BFX0JBU0UsICIob2JqZWN0Y2xhc3M9KikiKQot LQotLSAgICBsb2cuaW5mbygnRXhwZWN0aW5nIHNoYWRvd0xhc3RDaGFuZ2UgMCBzaW5jZSBwYXNz d29yZE11c3RDaGFuZ2UgaXMgb24nKQotLSAgICBjaGVja19zaGFkb3dfYXR0cl92YWx1ZShlbnRy eTAsICdzaGFkb3dMYXN0Q2hhbmdlJywgMCwgVVNFUjNfRE4pCi0tCi0tICAgICMgcGFzc3dvcmRN aW5BZ2UgLS0gMiBkYXkKLS0gICAgY2hlY2tfc2hhZG93X2F0dHJfdmFsdWUoZW50cnkwLCAnc2hh ZG93TWluJywgMiwgVVNFUjNfRE4pCi0tCi0tICAgICMgcGFzc3dvcmRNYXhBZ2UgLS0gMjAgZGF5 cwotLSAgICBjaGVja19zaGFkb3dfYXR0cl92YWx1ZShlbnRyeTAsICdzaGFkb3dNYXgnLCAyMCwg VVNFUjNfRE4pCi0tCi0tICAgICMgcGFzc3dvcmRXYXJuaW5nIC0tIDYgZGF5cwotLSAgICBjaGVj a19zaGFkb3dfYXR0cl92YWx1ZShlbnRyeTAsICdzaGFkb3dXYXJuaW5nJywgNiwgVVNFUjNfRE4p Ci0tCi0tICAgIGxvZy5pbmZvKCJCaW5kIGFzICVzIiAlIFVTRVIzX0ROKQotLSAgICB0b3BvbG9n eV9zdC5zdGFuZGFsb25lLnNpbXBsZV9iaW5kX3MoVVNFUjNfRE4sIFVTRVJfUFcpCi0tCi0tICAg IGxvZy5pbmZvKCdTZWFyY2ggZW50cnkgJXMnICUgVVNFUjNfRE4pCi0tICAgIHRyeToKLS0gICAg ICAgIGVudHJ5MSA9IHRvcG9sb2d5X3N0LnN0YW5kYWxvbmUuZ2V0RW50cnkoVVNFUjNfRE4sIGxk YXAuU0NPUEVfQkFTRSwgIihvYmplY3RjbGFzcz0qKSIpCi0tICAgIGV4Y2VwdCBsZGFwLlVOV0lM TElOR19UT19QRVJGT1JNOgotLSAgICAgICAgbG9nLmluZm8oJ3Rlc3RfdGlja2V0NTQ4OiBTZWFy Y2ggYnknICsgVVNFUjNfRE4gKyAnIGZhaWxlZCBieSBVTldJTExJTkdfVE9fUEVSRk9STSBhcyBl eHBlY3RlZCcpCi0tICAgIGV4Y2VwdCBsZGFwLkxEQVBFcnJvciBhcyBlOgotLSAgICAgICAgbG9n LmZhdGFsKCd0ZXN0X3RpY2tldDU0ODogRmFpbGVkIHRvIHNlcmNoIHVzZXInICsgVVNFUjNfRE4g KyAnIGJ5IHNlbGY6IGVycm9yICcgKyBlLm1lc3NhZ2VbJ2Rlc2MnXSkKLS0gICAgICAgIGFzc2Vy dCBGYWxzZQotLQotLSAgICBsb2cuaW5mbygiQmluZCBhcyAlcyBhbmQgdXBkYXRpbmcgdGhlIHBh c3N3b3JkIHdpdGggYSBuZXcgb25lIiAlIFVTRVIzX0ROKQotLSAgICB0b3BvbG9neV9zdC5zdGFu ZGFsb25lLnNpbXBsZV9iaW5kX3MoVVNFUjNfRE4sIFVTRVJfUFcpCi0tCi0tICAgICMgQmluZCBh cyBETSBhZ2FpbiwgY2hhbmdlIHBvbGljeQotLSAgICBsb2cuaW5mbygiQmluZCBhcyAlcyIgJSBE Tl9ETSkKLS0gICAgdG9wb2xvZ3lfc3Quc3RhbmRhbG9uZS5zaW1wbGVfYmluZF9zKEROX0RNLCBQ QVNTV09SRCkKLS0KLS0gICAgc2V0X3N1YnRyZWVfcHdwb2xpY3kodG9wb2xvZ3lfc3QsIDQsIDQw LCAxMikKLS0KLS0gICAgbmV3cGFzc3dkID0gVVNFUl9QVyArICcwJwotLSAgICB1cGRhdGVfcGFz c3dkKHRvcG9sb2d5X3N0LCBVU0VSM19ETiwgVVNFUl9QVywgbmV3cGFzc3dkKQotLQotLSAgICBs b2cuaW5mbygiUmUtYmluZCBhcyAlcyB3aXRoIG5ldyBwYXNzd29yZCIgJSBVU0VSM19ETikKLS0g ICAgdG9wb2xvZ3lfc3Quc3RhbmRhbG9uZS5zaW1wbGVfYmluZF9zKFVTRVIzX0ROLCBuZXdwYXNz d2QpCi0tCi0tICAgIHRyeToKLS0gICAgICAgIGVudHJ5MiA9IHRvcG9sb2d5X3N0LnN0YW5kYWxv bmUuZ2V0RW50cnkoVVNFUjNfRE4sIGxkYXAuU0NPUEVfQkFTRSwgIihvYmplY3RjbGFzcz0qKSIp Ci0tICAgIGV4Y2VwdCBsZGFwLkxEQVBFcnJvciBhcyBlOgotLSAgICAgICAgbG9nLmZhdGFsKCd0 ZXN0X3RpY2tldDU0ODogRmFpbGVkIHRvIHNlcmNoIHVzZXInICsgVVNFUjNfRE4gKyAnIGJ5IHNl bGY6IGVycm9yICcgKyBlLm1lc3NhZ2VbJ2Rlc2MnXSkKLS0gICAgICAgIGFzc2VydCBGYWxzZQot LQotLSAgICBlZGF0ZSA9IGludCh0aW1lLnRpbWUoKSAvICg2MCAqIDYwICogMjQpKQotLQotLSAg ICBsb2cuaW5mbygnRXhwZWN0aW5nIHNoYWRvd0xhc3RDaGFuZ2UgJWQgb25jZSB1c2VyUGFzc3dv cmQgaXMgdXBkYXRlZCcsIGVkYXRlKQotLSAgICBjaGVja19zaGFkb3dfYXR0cl92YWx1ZShlbnRy eTIsICdzaGFkb3dMYXN0Q2hhbmdlJywgZWRhdGUsIFVTRVIzX0ROKQotLQotLSAgICBsb2cuaW5m bygnU2VhcmNoIGVudHJ5ICVzJyAlIFVTRVIzX0ROKQotLSAgICBlbnRyeSA9IHRvcG9sb2d5X3N0 LnN0YW5kYWxvbmUuZ2V0RW50cnkoVVNFUjNfRE4sIGxkYXAuU0NPUEVfQkFTRSwgIihvYmplY3Rj bGFzcz0qKSIpCi0tICAgIGNoZWNrX3NoYWRvd19hdHRyX3ZhbHVlKGVudHJ5LCAnc2hhZG93TGFz dENoYW5nZScsIGVkYXRlLCBVU0VSM19ETikKLS0KLS0gICAgIyBwYXNzd29yZE1pbkFnZSAtLSAx IGRheQotLSAgICBjaGVja19zaGFkb3dfYXR0cl92YWx1ZShlbnRyeSwgJ3NoYWRvd01pbicsIDQs IFVTRVIzX0ROKQotLQotLSAgICAjIHBhc3N3b3JkTWF4QWdlIC0tIDEwIGRheXMKLS0gICAgY2hl Y2tfc2hhZG93X2F0dHJfdmFsdWUoZW50cnksICdzaGFkb3dNYXgnLCA0MCwgVVNFUjNfRE4pCi0t Ci0tICAgICMgcGFzc3dvcmRXYXJuaW5nIC0tIDMgZGF5cwotLSAgICBjaGVja19zaGFkb3dfYXR0 cl92YWx1ZShlbnRyeSwgJ3NoYWRvd1dhcm5pbmcnLCAxMiwgVVNFUjNfRE4pCi0tCi0tICAgIGxv Zy5pbmZvKCJDaGVjayBzaGFkb3dBY2NvdW50IHdpdGggc3VidHJlZSBsZXZlbCBwb2xpY3kgd2Fz IHN1Y2Nlc3NmdWxseSB2ZXJpZmllZC4iKQotLQotLQotLWlmIF9fbmFtZV9fID09ICdfX21haW5f Xyc6Ci0tICAgICMgUnVuIGlzb2xhdGVkCi0tICAgICMgLXMgZm9yIERFQlVHIG1vZGUKLS0gICAg Q1VSUkVOVF9GSUxFID0gb3MucGF0aC5yZWFscGF0aChfX2ZpbGVfXykKLS0gICAgcHl0ZXN0Lm1h aW4oIi1zICVzIiAlIENVUlJFTlRfRklMRSkKLS0tIAotMi41Mi4wCi0KCmRpZmYgLS1naXQgYS8w MDA3LUlzc3VlLTcxNTItbnMtc2xhcGQtZmFpbHMtdG8tc2h1dGRvd24td2hlbi1kZWZlcnJlZC0u cGF0Y2ggYi8wMDA3LUlzc3VlLTcxNTItbnMtc2xhcGQtZmFpbHMtdG8tc2h1dGRvd24td2hlbi1k ZWZlcnJlZC0ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBiYWVkZWYuLjAw MDAwMDAKLS0tIGEvMDAwNy1Jc3N1ZS03MTUyLW5zLXNsYXBkLWZhaWxzLXRvLXNodXRkb3duLXdo ZW4tZGVmZXJyZWQtLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsODIgKzAsMCBAQAotRnJvbSA3 YzhhMTZjNmJlZDUyNGZiNTRkMThhNWI3ZTkzZDRiZDViYjE5ZDQ5IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQotRnJvbTogVmlrdG9yIEFzaGlyb3YgPHZhc2hpcm92QHJlZGhhdC5jb20+Ci1EYXRl OiBXZWQsIDE0IEphbiAyMDI2IDE3OjU1OjI5ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIElzc3Vl IDcxNTIgLSBucy1zbGFwZCBmYWlscyB0byBzaHV0ZG93biB3aGVuIGRlZmVycmVkCi0gbWVtYmVy b2YgdXBkYXRlIGlzIGluIHByb2dyZXNzICgjNzE4NykKLQotQnVnIERlc2NyaXB0aW9uOgotV2hl biBhIGRlZmVycmVkIG1lbWJlcm9mIHVwZGF0ZSBpcyBpbiBwcm9ncmVzcyBkdXJpbmcgc2h1dGRv d24sIHRoZQotYmFja2VuZCBvcGVyYXRpb25zIChhZGQsIG1vZGlmeSwgZGVsZXRlLCBtb2RyZG4p IHdhaXQgaW4gYSBwb2xsaW5nIGxvb3AKLWZvciB0aGUgZGVmZXJyZWQgdGFzayB0byBjb21wbGV0 ZS4gSG93ZXZlciwgaWYgdGhlIGRlZmVycmVkIHRocmVhZCBleGl0cwotYmVmb3JlIGNsZWFyaW5n IHRoZSBTTEFQSV9ERUZFUlJFRF9NRU1CRVJPRiBmbGFnLCB0aGUgbG9vcCBiZWNvbWVzCi1pbmZp bml0ZSwgY2F1c2luZyB0aGUgc2VydmVyIHRvIGhhbmcgZHVyaW5nIHNodXRkb3duLgotCi1GaXgg RGVzY3JpcHRpb246Ci1BZGQgYWRkaXRpb25hbCBjaGVjayB0byB0aGUgcG9sbGluZyBsb29wcyBz byB0aGV5IGV4aXQgaW1tZWRpYXRlbHkgd2hlbgotdGhlIHNlcnZlciBpcyBzaHV0dGluZyBkb3du LgotCi1GaXhlczogaHR0cHM6Ly9naXRodWIuY29tLzM4OWRzLzM4OS1kcy1iYXNlL2lzc3Vlcy83 MTUyCi0KLVJldmlld2VkIGJ5OiBAdGJvcmRheiAoVGhhbmtzISkKLS0tLQotIGxkYXAvc2VydmVy cy9zbGFwZC9iYWNrLWxkYm0vbGRibV9hZGQuYyAgICB8IDIgKy0KLSBsZGFwL3NlcnZlcnMvc2xh cGQvYmFjay1sZGJtL2xkYm1fZGVsZXRlLmMgfCAyICstCi0gbGRhcC9zZXJ2ZXJzL3NsYXBkL2Jh Y2stbGRibS9sZGJtX21vZGlmeS5jIHwgMiArLQotIGxkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxk Ym0vbGRibV9tb2RyZG4uYyB8IDIgKy0KLSA0IGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygr KSwgNCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2xkYXAvc2VydmVycy9zbGFwZC9iYWNr LWxkYm0vbGRibV9hZGQuYyBiL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vbGRibV9hZGQu YwotaW5kZXggZGI2MDI0NjM2Li45MGQ1YWJjM2QgMTAwNjQ0Ci0tLS0gYS9sZGFwL3NlcnZlcnMv c2xhcGQvYmFjay1sZGJtL2xkYm1fYWRkLmMKLSsrKyBiL2xkYXAvc2VydmVycy9zbGFwZC9iYWNr LWxkYm0vbGRibV9hZGQuYwotQEAgLTE0NTIsNyArMTQ1Miw3IEBAIGNvbW1vbl9yZXR1cm46Ci0g ICAgICAgICAgICAgICAgIHNsYXBpX3BibG9ja19nZXQocGIsIFNMQVBJX0RFRkVSUkVEX01FTUJF Uk9GLCAmZGVmZXJyZWQpOwotICAgICAgICAgICAgICAgICBpZiAoZGVmZXJyZWQpIHsKLSAgICAg ICAgICAgICAgICAgICAgIFBSSW50ZXJ2YWxUaW1lIGRlbGF5ID0gUFJfTWlsbGlzZWNvbmRzVG9J bnRlcnZhbCgxMDApOwotLSAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGRlZmVycmVkKSB7Ci0r ICAgICAgICAgICAgICAgICAgICB3aGlsZSAoZGVmZXJyZWQgJiYgIWdfZ2V0X3NodXRkb3duKCkp IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBEU19TbGVlcChkZWxheSk7Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgc2xhcGlfcGJsb2NrX2dldChwYiwgU0xBUElfREVGRVJSRURfTUVNQkVS T0YsICZkZWZlcnJlZCk7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci1kaWZmIC0tZ2l0IGEvbGRh cC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9sZGJtX2RlbGV0ZS5jIGIvbGRhcC9zZXJ2ZXJzL3Ns YXBkL2JhY2stbGRibS9sZGJtX2RlbGV0ZS5jCi1pbmRleCA0OTgzNDJmMmQuLmNiZmI1YmNhOSAx MDA2NDQKLS0tLSBhL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vbGRibV9kZWxldGUuYwot KysrIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9sZGJtX2RlbGV0ZS5jCi1AQCAtMTUz Niw3ICsxNTM2LDcgQEAgZGlza2Z1bGxfcmV0dXJuOgotICAgICAgICAgICAgICAgICBzbGFwaV9w YmxvY2tfZ2V0KHBiLCBTTEFQSV9ERUZFUlJFRF9NRU1CRVJPRiwgJmRlZmVycmVkKTsKLSAgICAg ICAgICAgICAgICAgaWYgKGRlZmVycmVkKSB7Ci0gICAgICAgICAgICAgICAgICAgICBQUkludGVy dmFsVGltZSBkZWxheSA9IFBSX01pbGxpc2Vjb25kc1RvSW50ZXJ2YWwoMTAwKTsKLS0gICAgICAg ICAgICAgICAgICAgIHdoaWxlIChkZWZlcnJlZCkgewotKyAgICAgICAgICAgICAgICAgICAgd2hp bGUgKGRlZmVycmVkICYmICFnX2dldF9zaHV0ZG93bigpKSB7Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgRFNfU2xlZXAoZGVsYXkpOwotICAgICAgICAgICAgICAgICAgICAgICAgIHNsYXBpX3Bi bG9ja19nZXQocGIsIFNMQVBJX0RFRkVSUkVEX01FTUJFUk9GLCAmZGVmZXJyZWQpOwotICAgICAg ICAgICAgICAgICAgICAgfQotZGlmZiAtLWdpdCBhL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxk Ym0vbGRibV9tb2RpZnkuYyBiL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vbGRibV9tb2Rp ZnkuYwotaW5kZXggZWE0OWE0YzU2Li5jNTdiYTQzYWUgMTAwNjQ0Ci0tLS0gYS9sZGFwL3NlcnZl cnMvc2xhcGQvYmFjay1sZGJtL2xkYm1fbW9kaWZ5LmMKLSsrKyBiL2xkYXAvc2VydmVycy9zbGFw ZC9iYWNrLWxkYm0vbGRibV9tb2RpZnkuYwotQEAgLTExNzksNyArMTE3OSw3IEBAIGNvbW1vbl9y ZXR1cm46Ci0gICAgICAgICAgICAgICAgIHNsYXBpX3BibG9ja19nZXQocGIsIFNMQVBJX0RFRkVS UkVEX01FTUJFUk9GLCAmZGVmZXJyZWQpOwotICAgICAgICAgICAgICAgICBpZiAoZGVmZXJyZWQp IHsKLSAgICAgICAgICAgICAgICAgICAgIFBSSW50ZXJ2YWxUaW1lIGRlbGF5ID0gUFJfTWlsbGlz ZWNvbmRzVG9JbnRlcnZhbCgxMDApOwotLSAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGRlZmVy cmVkKSB7Ci0rICAgICAgICAgICAgICAgICAgICB3aGlsZSAoZGVmZXJyZWQgJiYgIWdfZ2V0X3No dXRkb3duKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICBEU19TbGVlcChkZWxheSk7Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgc2xhcGlfcGJsb2NrX2dldChwYiwgU0xBUElfREVGRVJS RURfTUVNQkVST0YsICZkZWZlcnJlZCk7Ci0gICAgICAgICAgICAgICAgICAgICB9Ci1kaWZmIC0t Z2l0IGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9sZGJtX21vZHJkbi5jIGIvbGRhcC9z ZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9sZGJtX21vZHJkbi5jCi1pbmRleCAwMThhZDllNDkuLjc1 OWVkYjgwZCAxMDA2NDQKLS0tLSBhL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vbGRibV9t b2RyZG4uYwotKysrIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9sZGJtX21vZHJkbi5j Ci1AQCAtMTQ2OSw3ICsxNDY5LDcgQEAgY29tbW9uX3JldHVybjoKLSAgICAgICAgICAgICAgICAg c2xhcGlfcGJsb2NrX2dldChwYiwgU0xBUElfREVGRVJSRURfTUVNQkVST0YsICZkZWZlcnJlZCk7 Ci0gICAgICAgICAgICAgICAgIGlmIChkZWZlcnJlZCkgewotICAgICAgICAgICAgICAgICAgICAg UFJJbnRlcnZhbFRpbWUgZGVsYXkgPSBQUl9NaWxsaXNlY29uZHNUb0ludGVydmFsKDEwMCk7Ci0t ICAgICAgICAgICAgICAgICAgICB3aGlsZSAoZGVmZXJyZWQpIHsKLSsgICAgICAgICAgICAgICAg ICAgIHdoaWxlIChkZWZlcnJlZCAmJiAhZ19nZXRfc2h1dGRvd24oKSkgewotICAgICAgICAgICAg ICAgICAgICAgICAgIERTX1NsZWVwKGRlbGF5KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICBz bGFwaV9wYmxvY2tfZ2V0KHBiLCBTTEFQSV9ERUZFUlJFRF9NRU1CRVJPRiwgJmRlZmVycmVkKTsK LSAgICAgICAgICAgICAgICAgICAgIH0KLS0tIAotMi41Mi4wCi0KCmRpZmYgLS1naXQgYS8wMDA4 LUlzc3VlLTcxNjktRml4LWF1dG9tZW1iZXJfcGx1Z2luLUNJLXRlc3QtZmFpbHVyZXMtNzEucGF0 Y2ggYi8wMDA4LUlzc3VlLTcxNjktRml4LWF1dG9tZW1iZXJfcGx1Z2luLUNJLXRlc3QtZmFpbHVy ZXMtNzEucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU1YzY5MTYuLjAwMDAw MDAKLS0tIGEvMDAwOC1Jc3N1ZS03MTY5LUZpeC1hdXRvbWVtYmVyX3BsdWdpbi1DSS10ZXN0LWZh aWx1cmVzLTcxLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNjEgKzAsMCBAQAotRnJvbSBhODRh NmE3ZDgzMjMzMTZiZmE0MDU1NzI5YTM2MDRhMGZjZmViYWY5IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQotRnJvbTogQWtzaGF5IEFkaGlrYXJpIDxhYWRoaWthckByZWRoYXQuY29tPgotRGF0ZTog RnJpLCAxNiBKYW4gMjAyNiAxOTozNTo0MiArMDUzMAotU3ViamVjdDogW1BBVENIXSBJc3N1ZSA3 MTY5IC0gRml4IGF1dG9tZW1iZXJfcGx1Z2luIENJIHRlc3QgZmFpbHVyZXMgKCM3MTgxKQotCi1E ZXNjcmlwdGlvbjogSXNzdWUgNzA1MyByZW1vdmVkIG1lbWJlciBjbGVhbnVwIGZyb20gTWVtYmVy T2YgcGx1Z2luLAotdHJhbnNmZXJyaW5nIGl0IHRvIFJlZmVyZW50aWFsIEludGVncml0eSBwbHVn aW4uIEVuYWJsZSB0aGlzIHBsdWdpbgotaW4gYXV0b21lbWJlciB0ZXN0cyBhbmQgY2xlYW4gdXAg Z3JvdXBzIGJlZm9yZSByZWJ1aWxkIHRhc2sgdGVzdHMuCi0KLUZpeGVzOiAjNzE2OQotCi1SZXZp ZXdlZCBieTogQHByb2dpZXIzODkKLS0tLQotIC4uLi90ZXN0cy9zdWl0ZXMvYXV0b21lbWJlcl9w bHVnaW4vYmFzaWNfdGVzdC5weSB8IDE2ICsrKysrKysrKysrKysrLS0KLSAxIGZpbGUgY2hhbmdl ZCwgMTQgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2RpcnNy dnRlc3RzL3Rlc3RzL3N1aXRlcy9hdXRvbWVtYmVyX3BsdWdpbi9iYXNpY190ZXN0LnB5IGIvZGly c3J2dGVzdHMvdGVzdHMvc3VpdGVzL2F1dG9tZW1iZXJfcGx1Z2luL2Jhc2ljX3Rlc3QucHkKLWlu ZGV4IDZmMmNmMzMyNi4uZjM2MjljODExIDEwMDY0NAotLS0tIGEvZGlyc3J2dGVzdHMvdGVzdHMv c3VpdGVzL2F1dG9tZW1iZXJfcGx1Z2luL2Jhc2ljX3Rlc3QucHkKLSsrKyBiL2RpcnNydnRlc3Rz L3Rlc3RzL3N1aXRlcy9hdXRvbWVtYmVyX3BsdWdpbi9iYXNpY190ZXN0LnB5Ci1AQCAtMTksNyAr MTksOCBAQCBmcm9tIGxpYjM4OS5pZG0ub3JnYW5pemF0aW9uYWx1bml0IGltcG9ydCBPcmdhbml6 YXRpb25hbFVuaXRzCi0gZnJvbSBsaWIzODkuaWRtLmRvbWFpbiBpbXBvcnQgRG9tYWluCi0gZnJv bSBsaWIzODkuaWRtLnBvc2l4Z3JvdXAgaW1wb3J0IFBvc2l4R3JvdXBzCi0gZnJvbSBsaWIzODku cGx1Z2lucyBpbXBvcnQgQXV0b01lbWJlcnNoaXBQbHVnaW4sIEF1dG9NZW1iZXJzaGlwRGVmaW5p dGlvbnMsIFwKLS0gICAgTWVtYmVyT2ZQbHVnaW4sIEF1dG9NZW1iZXJzaGlwUmVnZXhSdWxlcywg QXV0b01lbWJlcnNoaXBEZWZpbml0aW9uLCBSZXRyb0NoYW5nZWxvZ1BsdWdpbgotKyAgICBNZW1i ZXJPZlBsdWdpbiwgQXV0b01lbWJlcnNoaXBSZWdleFJ1bGVzLCBBdXRvTWVtYmVyc2hpcERlZmlu aXRpb24sIFJldHJvQ2hhbmdlbG9nUGx1Z2luLCBcCi0rICAgIFJlZmVyZW50aWFsSW50ZWdyaXR5 UGx1Z2luCi0gZnJvbSBsaWIzODkuYmFja2VuZCBpbXBvcnQgQmFja2VuZHMKLSBmcm9tIGxpYjM4 OS5jb25maWcgaW1wb3J0IENvbmZpZwotIGZyb20gbGliMzg5Ll9jb25zdGFudHMgaW1wb3J0IERF RkFVTFRfU1VGRklYCi1AQCAtMTk2LDYgKzE5Nyw3IEBAIGRlZiBfY3JlYXRlX2FsbF9lbnRyaWVz KHRvcG8pOgotICAgICBhdXRvID0gQXV0b01lbWJlcnNoaXBQbHVnaW4odG9wby5tc1sic3VwcGxp ZXIxIl0pCi0gICAgIGF1dG8uYWRkKCJuc3NsYXBkLXBsdWdpbkNvbmZpZ0FyZWEiLCAiY249YXV0 b01lbWJlcnNQbHVnaW4se30iLmZvcm1hdChCQVNFX1JFUEwpKQotICAgICBNZW1iZXJPZlBsdWdp bih0b3BvLm1zWyJzdXBwbGllcjEiXSkuZW5hYmxlKCkKLSsgICAgUmVmZXJlbnRpYWxJbnRlZ3Jp dHlQbHVnaW4odG9wby5tc1sic3VwcGxpZXIxIl0pLmVuYWJsZSgpCi0gICAgIGF1dG9tZW1iZXJz X2RlZmluaXRpb25zID0gQXV0b01lbWJlcnNoaXBEZWZpbml0aW9ucyh0b3BvLm1zWyJzdXBwbGll cjEiXSkKLSAgICAgYXV0b21lbWJlcnNfZGVmaW5pdGlvbnMuY3JlYXRlKHByb3BlcnRpZXM9ewot ICAgICAgICAgJ2NuJzogJ3VzZXJHcm91cHMnLAotQEAgLTk1MCw4ICs5NTIsMTggQEAgZGVmIF9z dGFydHVwdGFzayh0b3BvKToKLSAKLSBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9ImZ1bmN0aW9uIikK LSBkZWYgX2ZpeHR1cmVfZm9yX2J1aWxkX3Rhc2socmVxdWVzdCwgdG9wbyk6Ci0rICAgIHN1cHBs aWVyID0gdG9wby5tc1snc3VwcGxpZXIxJ10KLSsgICAgbWFuYWdlcnNfZ3JwID0gImNuPU1hbmFn ZXJzLG91PXVzZXJHcm91cHMse30iLmZvcm1hdChCQVNFX1NVRkYpCi0rICAgIGNvbnRyYWN0X2dy cCA9ICJjbj1Db250cmFjdG9ycyxvdT11c2VyR3JvdXBzLHt9Ii5mb3JtYXQoQkFTRV9TVUZGKQot KwotKyAgICBmb3IgZ3JwIGluIChtYW5hZ2Vyc19ncnAsIGNvbnRyYWN0X2dycCk6Ci0rICAgICAg ICBncm91cCA9IEdyb3VwKHN1cHBsaWVyLCBncnApCi0rICAgICAgICB0cnk6Ci0rICAgICAgICAg ICAgZ3JvdXAucmVtb3ZlX2FsbCgnbWVtYmVyJykKLSsgICAgICAgIGV4Y2VwdCBsZGFwLk5PX1NV Q0hfQVRUUklCVVRFOgotKyAgICAgICAgICAgIHBhc3MKLSsKLSAgICAgZGVmIGZpbm9mKCk6Ci0t ICAgICAgICBzdXBwbGllciA9IHRvcG8ubXNbJ3N1cHBsaWVyMSddCi0gICAgICAgICBhdXRvX21l bV9zY29wZSA9ICJvdT1UYXNrRW1wbG95ZWVzLHt9Ii5mb3JtYXQoQkFTRV9TVUZGKQotICAgICAg ICAgZm9yIHVzZXIgaW4gbnNBZG1pbkdyb3VwcyhzdXBwbGllciwgYXV0b19tZW1fc2NvcGUsIHJk bj1Ob25lKS5saXN0KCk6Ci0gICAgICAgICAgICAgdXNlci5kZWxldGUoKQotLS0gCi0yLjUyLjAK LQoKZGlmZiAtLWdpdCBhLzAwMDktSXNzdWUtNjc1OC1Vc2UtT1VJQS1zZWxlY3RvcnMtZm9yLVdl YlVJLXBsdWdpbi10ZXN0cy5wYXRjaCBiLzAwMDktSXNzdWUtNjc1OC1Vc2UtT1VJQS1zZWxlY3Rv cnMtZm9yLVdlYlVJLXBsdWdpbi10ZXN0cy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggOWZkMmU3MS4uMDAwMDAwMAotLS0gYS8wMDA5LUlzc3VlLTY3NTgtVXNlLU9VSUEtc2Vs ZWN0b3JzLWZvci1XZWJVSS1wbHVnaW4tdGVzdHMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwx MTUgKzAsMCBAQAotRnJvbSA1YjMyNDc5YWJjZDY4ZjhiMzdkMmZiMjA3YzUwMjExM2E1YjRiMTZj IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogQWtzaGF5IEFkaGlrYXJpIDxhYWRoaWth ckByZWRoYXQuY29tPgotRGF0ZTogTW9uLCAxOSBKYW4gMjAyNiAxOTo0NToyOSArMDUzMAotU3Vi amVjdDogW1BBVENIXSBJc3N1ZSA2NzU4IC0gVXNlIE9VSUEgc2VsZWN0b3JzIGZvciBXZWJVSSBw bHVnaW4gdGVzdHMKLSAoIzcxODIpCi0KLURlc2NyaXB0aW9uOgotQWRkIG91aWFJZCB0byBwbHVn aW4gTmF2SXRlbXMgYW5kIHVwZGF0ZSB0ZXN0cyB0byB1c2UgT1VJQSBzZWxlY3RvcnMKLWluc3Rl YWQgb2YgdGV4dCBtYXRjaGluZy4KLQotUmVsYXRlczogIzY3NTgKLQotUmV2aWV3ZWQgYnk6IEBk cm9pZGVjawotLS0tCi0gLi4uL3N1aXRlcy93ZWJ1aS9wbHVnaW5zL3BsdWdpbnNfdGVzdC5weSAg ICAgIHwgMjggKysrKysrKysrLS0tLS0tLS0tLQotIHNyYy9jb2NrcGl0LzM4OS1jb25zb2xlL3Ny Yy9wbHVnaW5zLmpzeCAgICAgICB8ICAyICstCi0gMiBmaWxlcyBjaGFuZ2VkLCAxNSBpbnNlcnRp b25zKCspLCAxNSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2RpcnNydnRlc3RzL3Rlc3Rz L3N1aXRlcy93ZWJ1aS9wbHVnaW5zL3BsdWdpbnNfdGVzdC5weSBiL2RpcnNydnRlc3RzL3Rlc3Rz L3N1aXRlcy93ZWJ1aS9wbHVnaW5zL3BsdWdpbnNfdGVzdC5weQotaW5kZXggZTRiZDdmMDM5Li5h ODQ5YmZiOTEgMTAwNjQ0Ci0tLS0gYS9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvd2VidWkvcGx1 Z2lucy9wbHVnaW5zX3Rlc3QucHkKLSsrKyBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy93ZWJ1 aS9wbHVnaW5zL3BsdWdpbnNfdGVzdC5weQotQEAgLTE2OCw4ICsxNjgsOCBAQCBkZWYgdGVzdF9s aW5rZWRfYXR0cmlidXRlc19wbHVnaW5fdmlzaWJpbGl0eSh0b3BvbG9neV9zdCwgcGFnZSwgYnJv d3Nlcl9uYW1lKToKLSAKLSAgICAgbG9nLmluZm8oJ0NsaWNrIG9uIFBsdWdpbnMgdGFiLCBjbGlj ayBvbiBMaW5rZWQgQXR0cmlidXRlcyBwbHVnaW4gYW5kIGNoZWNrIGlmIGVsZW1lbnQgaXMgbG9h ZGVkLicpCi0gICAgIGZyYW1lLmdldF9ieV9yb2xlKCd0YWInLCBuYW1lPSdQbHVnaW5zJywgZXhh Y3Q9VHJ1ZSkuY2xpY2soKQotLSAgICBmcmFtZS5nZXRfYnlfdGV4dCgnTGlua2VkIEF0dHJpYnV0 ZXMnKS53YWl0X2ZvcigpCi0tICAgIGZyYW1lLmdldF9ieV90ZXh0KCdMaW5rZWQgQXR0cmlidXRl cycpLmNsaWNrKCkKLSsgICAgZnJhbWUubG9jYXRvcignW2RhdGEtb3VpYS1jb21wb25lbnQtaWQ9 ImxpbmtlZEF0dHJpYnV0ZXMiXScpLndhaXRfZm9yKCkKLSsgICAgZnJhbWUubG9jYXRvcignW2Rh dGEtb3VpYS1jb21wb25lbnQtaWQ9ImxpbmtlZEF0dHJpYnV0ZXMiXScpLmNsaWNrKCkKLSAgICAg ZnJhbWUuZ2V0X2J5X3JvbGUoJ2J1dHRvbicsIG5hbWU9J0FkZCBDb25maWcnKS53YWl0X2Zvcigp Ci0gICAgIGFzc2VydCBmcmFtZS5nZXRfYnlfcm9sZSgnYnV0dG9uJywgbmFtZT0nQWRkIENvbmZp ZycpLmlzX3Zpc2libGUoKQotIAotQEAgLTI1NCw4ICsyNTQsOCBAQCBkZWYgdGVzdF9sZGFwX3Bh c3NfdGhyb3VnaF9hdXRoX3BsdWdpbl92aXNpYmlsaXR5KHRvcG9sb2d5X3N0LCBwYWdlLCBicm93 c2VyX25hbQotIAotICAgICBsb2cuaW5mbygnQ2xpY2sgb24gUGx1Z2lucyB0YWIsIGNsaWNrIG9u IExEQVAgUGFzcyBUaHJvdWdoIEF1dGggcGx1Z2luIGFuZCBjaGVjayBpZiBlbGVtZW50IGlzIGxv YWRlZC4nKQotICAgICBmcmFtZS5nZXRfYnlfcm9sZSgndGFiJywgbmFtZT0nUGx1Z2lucycsIGV4 YWN0PVRydWUpLmNsaWNrKCkKLS0gICAgZnJhbWUuZ2V0X2J5X3RleHQoJ0xEQVAgUGFzcyBUaHJv dWdoIEF1dGgnKS53YWl0X2ZvcigpCi0tICAgIGZyYW1lLmdldF9ieV90ZXh0KCdMREFQIFBhc3Mg VGhyb3VnaCBBdXRoJykuY2xpY2soKQotKyAgICBmcmFtZS5sb2NhdG9yKCdbZGF0YS1vdWlhLWNv bXBvbmVudC1pZD0icGFzc3Rocm91Z2hBdXRoZW50aWNhdGlvbiJdJykud2FpdF9mb3IoKQotKyAg ICBmcmFtZS5sb2NhdG9yKCdbZGF0YS1vdWlhLWNvbXBvbmVudC1pZD0icGFzc3Rocm91Z2hBdXRo ZW50aWNhdGlvbiJdJykuY2xpY2soKQotICAgICBmcmFtZS5nZXRfYnlfcm9sZSgnYnV0dG9uJywg bmFtZT0nQWRkIFVSTCcpLndhaXRfZm9yKCkKLSAgICAgYXNzZXJ0IGZyYW1lLmdldF9ieV9yb2xl KCdidXR0b24nLCBuYW1lPSdBZGQgVVJMJykuaXNfdmlzaWJsZSgpCi0gCi1AQCAtMjgwLDggKzI4 MCw4IEBAIGRlZiB0ZXN0X3BhbV9wYXNzX3Rocm91Z2hfYXV0aF9wbHVnaW5fdmlzaWJpbGl0eSh0 b3BvbG9neV9zdCwgcGFnZSwgYnJvd3Nlcl9uYW1lCi0gCi0gICAgIGxvZy5pbmZvKCdDbGljayBv biBQbHVnaW5zIHRhYiwgY2xpY2sgb24gUEFNIFBhc3MgVGhyb3VnaCBBdXRoIHBsdWdpbiBhbmQg Y2hlY2sgaWYgZWxlbWVudCBpcyBsb2FkZWQuJykKLSAgICAgZnJhbWUuZ2V0X2J5X3JvbGUoJ3Rh YicsIG5hbWU9J1BsdWdpbnMnLCBleGFjdD1UcnVlKS5jbGljaygpCi0tICAgIGZyYW1lLmdldF9i eV90ZXh0KCdQQU0gUGFzcyBUaHJvdWdoIEF1dGgnKS53YWl0X2ZvcigpCi0tICAgIGZyYW1lLmdl dF9ieV90ZXh0KCdQQU0gUGFzcyBUaHJvdWdoIEF1dGgnKS5jbGljaygpCi0rICAgIGZyYW1lLmxv Y2F0b3IoJ1tkYXRhLW91aWEtY29tcG9uZW50LWlkPSJwYW1QYXNzdGhyb3VnaEF1dGhlbnRpY2F0 aW9uIl0nKS53YWl0X2ZvcigpCi0rICAgIGZyYW1lLmxvY2F0b3IoJ1tkYXRhLW91aWEtY29tcG9u ZW50LWlkPSJwYW1QYXNzdGhyb3VnaEF1dGhlbnRpY2F0aW9uIl0nKS5jbGljaygpCi0gICAgIGZy YW1lLmdldF9ieV9yb2xlKCdidXR0b24nLCBuYW1lPSdBZGQgQ29uZmlnJykud2FpdF9mb3IoKQot ICAgICBhc3NlcnQgZnJhbWUuZ2V0X2J5X3JvbGUoJ2J1dHRvbicsIG5hbWU9J0FkZCBDb25maWcn KS5pc192aXNpYmxlKCkKLSAKLUBAIC0zMDYsOCArMzA2LDggQEAgZGVmIHRlc3RfcG9zaXhfd2lu c3luY19wbHVnaW5fdmlzaWJpbGl0eSh0b3BvbG9neV9zdCwgcGFnZSwgYnJvd3Nlcl9uYW1lKToK LSAKLSAgICAgbG9nLmluZm8oJ0NsaWNrIG9uIFBsdWdpbnMgdGFiLCBjbGljayBvbiBQb3NpeCBX aW5zeW5jIHBsdWdpbiBhbmQgY2hlY2sgaWYgZWxlbWVudCBpcyBsb2FkZWQuJykKLSAgICAgZnJh bWUuZ2V0X2J5X3JvbGUoJ3RhYicsIG5hbWU9J1BsdWdpbnMnLCBleGFjdD1UcnVlKS5jbGljaygp Ci0tICAgIGZyYW1lLmdldF9ieV90ZXh0KCdQb3NpeCBXaW5zeW5jJykud2FpdF9mb3IoKQotLSAg ICBmcmFtZS5nZXRfYnlfdGV4dCgnUG9zaXggV2luc3luYycpLmNsaWNrKCkKLSsgICAgZnJhbWUu bG9jYXRvcignW2RhdGEtb3VpYS1jb21wb25lbnQtaWQ9IndpbnN5bmMiXScpLndhaXRfZm9yKCkK LSsgICAgZnJhbWUubG9jYXRvcignW2RhdGEtb3VpYS1jb21wb25lbnQtaWQ9IndpbnN5bmMiXScp LmNsaWNrKCkKLSAgICAgZnJhbWUubG9jYXRvcignI3Bvc2l4V2luc3luY0NyZWF0ZU1lbWJlck9m VGFzaycpLndhaXRfZm9yKCkKLSAgICAgYXNzZXJ0IGZyYW1lLmxvY2F0b3IoJyNwb3NpeFdpbnN5 bmNDcmVhdGVNZW1iZXJPZlRhc2snKS5pc192aXNpYmxlKCkKLSAKLUBAIC0zMzIsOCArMzMyLDgg QEAgZGVmIHRlc3RfcmVmZXJlbnRpYWxfaW50ZWdyaXR5X3BsdWdpbl92aXNpYmlsaXR5KHRvcG9s b2d5X3N0LCBwYWdlLCBicm93c2VyX25hbWUKLSAKLSAgICAgbG9nLmluZm8oJ0NsaWNrIG9uIFBs dWdpbnMgdGFiLCBjbGljayBvbiBSZWZlcmVudGlhbCBJbnRlZ3JpdHkgcGx1Z2luIGFuZCBjaGVj ayBpZiBlbGVtZW50IGlzIGxvYWRlZC4nKQotICAgICBmcmFtZS5nZXRfYnlfcm9sZSgndGFiJywg bmFtZT0nUGx1Z2lucycsIGV4YWN0PVRydWUpLmNsaWNrKCkKLS0gICAgZnJhbWUuZ2V0X2J5X3Rl eHQoJ1JlZmVyZW50aWFsIEludGVncml0eScpLndhaXRfZm9yKCkKLS0gICAgZnJhbWUuZ2V0X2J5 X3RleHQoJ1JlZmVyZW50aWFsIEludGVncml0eScpLmNsaWNrKCkKLSsgICAgZnJhbWUubG9jYXRv cignW2RhdGEtb3VpYS1jb21wb25lbnQtaWQ9InJlZmVyZW50aWFsSW50ZWdyaXR5Il0nKS53YWl0 X2ZvcigpCi0rICAgIGZyYW1lLmxvY2F0b3IoJ1tkYXRhLW91aWEtY29tcG9uZW50LWlkPSJyZWZl cmVudGlhbEludGVncml0eSJdJykuY2xpY2soKQotICAgICBmcmFtZS5sb2NhdG9yKCcjZW50cnlT Y29wZScpLndhaXRfZm9yKCkKLSAgICAgYXNzZXJ0IGZyYW1lLmxvY2F0b3IoJyNlbnRyeVNjb3Bl JykuaXNfdmlzaWJsZSgpCi0gCi1AQCAtMzU4LDggKzM1OCw4IEBAIGRlZiB0ZXN0X3JldHJvX2No YW5nZWxvZ19wbHVnaW5fdmlzaWJpbGl0eSh0b3BvbG9neV9zdCwgcGFnZSwgYnJvd3Nlcl9uYW1l KToKLSAKLSAgICAgbG9nLmluZm8oJ0NsaWNrIG9uIFBsdWdpbnMgdGFiLCBjbGljayBvbiBSZXRy byBDaGFuZ2Vsb2cgcGx1Z2luIGFuZCBjaGVjayBpZiBlbGVtZW50IGlzIGxvYWRlZC4nKQotICAg ICBmcmFtZS5nZXRfYnlfcm9sZSgndGFiJywgbmFtZT0nUGx1Z2lucycsIGV4YWN0PVRydWUpLmNs aWNrKCkKLS0gICAgZnJhbWUuZ2V0X2J5X3RleHQoJ1JldHJvIENoYW5nZWxvZycpLndhaXRfZm9y KCkKLS0gICAgZnJhbWUuZ2V0X2J5X3RleHQoJ1JldHJvIENoYW5nZWxvZycpLmNsaWNrKCkKLSsg ICAgZnJhbWUubG9jYXRvcignW2RhdGEtb3VpYS1jb21wb25lbnQtaWQ9InJldHJvQ2hhbmdlbG9n Il0nKS53YWl0X2ZvcigpCi0rICAgIGZyYW1lLmxvY2F0b3IoJ1tkYXRhLW91aWEtY29tcG9uZW50 LWlkPSJyZXRyb0NoYW5nZWxvZyJdJykuY2xpY2soKQotICAgICBmcmFtZS5sb2NhdG9yKCcjaXNS ZXBsaWNhdGVkJykud2FpdF9mb3IoKQotICAgICBhc3NlcnQgZnJhbWUubG9jYXRvcignI2lzUmVw bGljYXRlZCcpLmlzX3Zpc2libGUoKQotIAotQEAgLTM4NCw4ICszODQsOCBAQCBkZWYgdGVzdF9y b290ZG5fYWNjZXNzX2NvbnRyb2xfcGx1Z2luX3Zpc2liaWxpdHkodG9wb2xvZ3lfc3QsIHBhZ2Us IGJyb3dzZXJfbmFtZQotIAotICAgICBsb2cuaW5mbygnQ2xpY2sgb24gUGx1Z2lucyB0YWIsIGNs aWNrIG9uIFJvb3RETiBBY2Nlc3MgQ29udHJvbCBwbHVnaW4gYW5kIGNoZWNrIGlmIGVsZW1lbnQg aXMgbG9hZGVkLicpCi0gICAgIGZyYW1lLmdldF9ieV9yb2xlKCd0YWInLCBuYW1lPSdQbHVnaW5z JywgZXhhY3Q9VHJ1ZSkuY2xpY2soKQotLSAgICBmcmFtZS5nZXRfYnlfdGV4dCgnUm9vdEROIEFj Y2VzcyBDb250cm9sJykud2FpdF9mb3IoKQotLSAgICBmcmFtZS5nZXRfYnlfdGV4dCgnUm9vdERO IEFjY2VzcyBDb250cm9sJykuY2xpY2soKQotKyAgICBmcmFtZS5sb2NhdG9yKCdbZGF0YS1vdWlh LWNvbXBvbmVudC1pZD0icm9vdERuYUFjY2Vzc0NvbnRyb2wiXScpLndhaXRfZm9yKCkKLSsgICAg ZnJhbWUubG9jYXRvcignW2RhdGEtb3VpYS1jb21wb25lbnQtaWQ9InJvb3REbmFBY2Nlc3NDb250 cm9sIl0nKS5jbGljaygpCi0gICAgIGZyYW1lLmxvY2F0b3IoJyNhbGxvd01vbicpLndhaXRfZm9y KCkKLSAgICAgYXNzZXJ0IGZyYW1lLmxvY2F0b3IoJyNhbGxvd01vbicpLmlzX3Zpc2libGUoKQot IAotZGlmZiAtLWdpdCBhL3NyYy9jb2NrcGl0LzM4OS1jb25zb2xlL3NyYy9wbHVnaW5zLmpzeCBi L3NyYy9jb2NrcGl0LzM4OS1jb25zb2xlL3NyYy9wbHVnaW5zLmpzeAotaW5kZXggNDEyNGE3N2Vm Li5lMjQyNTVjNzYgMTAwNjQ0Ci0tLS0gYS9zcmMvY29ja3BpdC8zODktY29uc29sZS9zcmMvcGx1 Z2lucy5qc3gKLSsrKyBiL3NyYy9jb2NrcGl0LzM4OS1jb25zb2xlL3NyYy9wbHVnaW5zLmpzeAot QEAgLTY4MCw3ICs2ODAsNyBAQCBleHBvcnQgY2xhc3MgUGx1Z2lucyBleHRlbmRzIFJlYWN0LkNv bXBvbmVudCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOYXYga2V5PXt0aGlzLnN0 YXRlLnBsdWdpblRhYmxlS2V5fSB0aGVtZT0ibGlnaHQiIG9uU2VsZWN0PXsoZXZlbnQsIGl0ZW0p ID0+IHRoaXMuaGFuZGxlU2VsZWN0KGV2ZW50LCBpdGVtKX0+Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA8TmF2TGlzdD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7T2JqZWN0LmVudHJpZXMoc2VsZWN0UGx1Z2lucykubWFwKChbaWQsIGl0ZW1dKSA9PiAo Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxOYXZJdGVtIGtleT17 aXRlbS5uYW1lfSBpdGVtSWQ9e2l0ZW0ubmFtZX0gaXNBY3RpdmU9e3RoaXMuc3RhdGUuYWN0aXZl UGx1Z2luID09PSBpdGVtLm5hbWV9PgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA8TmF2SXRlbSBrZXk9e2l0ZW0ubmFtZX0gaXRlbUlkPXtpdGVtLm5hbWV9IG91aWFJ ZD17aWR9IGlzQWN0aXZlPXt0aGlzLnN0YXRlLmFjdGl2ZVBsdWdpbiA9PT0gaXRlbS5uYW1lfT4K LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVtLmljb259 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTmF2SXRlbT4KLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX0KLS0tIAotMi41Mi4wCi0KCmRp ZmYgLS1naXQgYS8wMDEwLUlzc3VlLTcxOTYtRHluYW1pY0NlcnRpZmljYXRlcy1yZXR1cm5zLWVt cHR5LURFUi03MTkucGF0Y2ggYi8wMDEwLUlzc3VlLTcxOTYtRHluYW1pY0NlcnRpZmljYXRlcy1y ZXR1cm5zLWVtcHR5LURFUi03MTkucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDVkODkwN2MuLjAwMDAwMDAKLS0tIGEvMDAxMC1Jc3N1ZS03MTk2LUR5bmFtaWNDZXJ0aWZpY2F0 ZXMtcmV0dXJucy1lbXB0eS1ERVItNzE5LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAs MCBAQAotRnJvbSA5YmQ5M2RjNjE4YzI2MWQ1MjIyMmU3MTNjNTY1MDBhYmJjZTQxMTNlIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogcHJvZ2llcjM4OSA8cHJvZ2llckByZWRoYXQuY29t PgotRGF0ZTogTW9uLCAxOSBKYW4gMjAyNiAxNzoyNDo0MCArMDEwMAotU3ViamVjdDogW1BBVENI XSBJc3N1ZSA3MTk2IC0gRHluYW1pY0NlcnRpZmljYXRlcyByZXR1cm5zIGVtcHR5IERFUiAoIzcx OTcpCi0KLUZpeGluZyBhIG1pc3Rha2UgZG9uZSB3aGlsZSBmaXhpbmcgbWVtb3J5IGxlYWtzLgot VmFsdWUgd2FzIGZyZWVkIGJlZm9yZSBiZWluZyBhZGRlZCBpbiB0aGUgZW50cnkgcmF0aGVyIHRo YW4gYWZ0ZXIgLi4uCi0KLUlzc3VlOiAjNzE5NgotCi1SZXZpZXdlZCBieTogQGpjaGFwbWEgKHRo YW5rcyEpCi0tLS0KLSBsZGFwL3NlcnZlcnMvc2xhcGQvZHluY2VydHMuYyB8IDIgKy0KLSAxIGZp bGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBh L2xkYXAvc2VydmVycy9zbGFwZC9keW5jZXJ0cy5jIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2R5bmNl cnRzLmMKLWluZGV4IDUwYjkyYWE1Zi4uZWZlYWE2ZWI2IDEwMDY0NAotLS0tIGEvbGRhcC9zZXJ2 ZXJzL3NsYXBkL2R5bmNlcnRzLmMKLSsrKyBiL2xkYXAvc2VydmVycy9zbGFwZC9keW5jZXJ0cy5j Ci1AQCAtNzg2LDggKzc4Niw4IEBAIGR5bmNlcnRzX2NlcnQyZW50cnkoQ0VSVENlcnRpZmljYXRl ICpjZXJ0KQotICAgICBDT05EX1NUUihlLCBEWUNBVFRSX1RZUEUsICJPQkpFQ1QgU0lHTklORyBD QSIsIGNlcnQtPm5zQ2VydFR5cGUgJiBOU19DRVJUX1RZUEVfT0JKRUNUX1NJR05JTkdfQ0EpOwot ICAgICBzbGFwaV9lbnRyeV9hZGRfc3RyaW5nKGUsIERZQ0FUVFJfVE9LRU4sIFBLMTFfR2V0VG9r ZW5OYW1lKGNlcnQtPnNsb3QpKTsKLSAgICAgc2VjaXRlbXYoJmNlcnQtPmRlckNlcnQsICZ0bXB2 KTsKLS0gICAgdmFsdWVfZG9uZSgmdG1wdik7Ci0gICAgIHNsYXBpX2VudHJ5X2FkZF92YWx1ZShl LCBEWUNBVFRSX0NFUlRERVIsICZ0bXB2KTsKLSsgICAgdmFsdWVfZG9uZSgmdG1wdik7Ci0gICAg IHRtcHN0ciA9IHNlY2l0ZW0yaGV4KCZjZXJ0LT5zZXJpYWxOdW1iZXIpOwotICAgICBzbGFwaV9l bnRyeV9hZGRfc3RyaW5nKGUsIERZQ0FUVFJfU04sIHRtcHN0cik7Ci0gICAgIHNsYXBpX2NoX2Zy ZWVfc3RyaW5nKCZ0bXBzdHIpOwotLS0gCi0yLjUyLjAKLQoKZGlmZiAtLWdpdCBhLzAwMTEtSXNz dWUtNzE4OS1EU0JMRTAwMDctZ2VuZXJhdGVzLWluY29ycmVjdC1yZW1lZGlhdGlvbi5wYXRjaCBi LzAwMTEtSXNzdWUtNzE4OS1EU0JMRTAwMDctZ2VuZXJhdGVzLWluY29ycmVjdC1yZW1lZGlhdGlv bi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTM3YTkzOS4uMDAwMDAwMAot LS0gYS8wMDExLUlzc3VlLTcxODktRFNCTEUwMDA3LWdlbmVyYXRlcy1pbmNvcnJlY3QtcmVtZWRp YXRpb24ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMzUgKzAsMCBAQAotRnJvbSBjNmY0NThi NDIxNTk4YjE4YTU0NTU4MjQ0MTQ3MmI5MTBiNWJhNTZlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQotRnJvbTogVmlrdG9yIEFzaGlyb3YgPHZhc2hpcm92QHJlZGhhdC5jb20+Ci1EYXRlOiBUdWUs IDIwIEphbiAyMDI2IDA5OjUyOjQ3ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIElzc3VlIDcxODkg LSBEU0JMRTAwMDcgZ2VuZXJhdGVzIGluY29ycmVjdCByZW1lZGlhdGlvbgotIGNvbW1hbmRzIGZv ciBzY2FuIGxpbWl0cwotCi1CdWcgRGVzY3JpcHRpb246Ci0KLVRoZSBnZW5lcmF0ZWQgZHNjb25m IGNvbW1hbmRzIGZvciBmaXhpbmcgbWlzc2luZyBzeXN0ZW0gaW5kZXhlcyBoYWQgdHdvIGlzc3Vl czoKLQotMS4gVGhlIC0tYWRkLXNjYW5saW1pdCB2YWx1ZSB3YXMgbm90IHF1b3RlZCwgY2F1c2lu ZyB0aGUgc2hlbGwgdG8gaW50ZXJwcmV0Ci0gICAibGltaXQ9NTAwMCB0eXBlPWVxIGZsYWdzPUFO RCIgYXMgbXVsdGlwbGUgYXJndW1lbnRzIGluc3RlYWQgb2YgYSBzaW5nbGUKLSAgIHZhbHVlLCBy ZXN1bHRpbmcgaW4gInVucmVjb2duaXplZCBhcmd1bWVudHM6IHR5cGU9ZXEgZmxhZ3M9QU5EIiBl cnJvci4KLQotMi4gV2hlbiBib3RoIG1hdGNoaW5nIHJ1bGUgYW5kIHNjYW5saW1pdCB3ZXJlIG1p c3NpbmcsIHR3byBzZXBhcmF0ZSBjb21tYW5kcwotICAgd2VyZSBnZW5lcmF0ZWQgd2hlcmUgdGhl IHNlY29uZCB3b3VsZCBmYWlsIGJlY2F1c2UgdGhlIG1hdGNoaW5nIHJ1bGUgd2FzCi0gICBhbHJl YWR5IGFkZGVkIGJ5IHRoZSBmaXJzdCBjb21tYW5kLgotCi1GaXggRGVzY3JpcHRpb246Ci0KLTEu IFF1b3RlIHRoZSBzY2FubGltaXQgdmFsdWUgaW4gYWxsIHJlbWVkaWF0aW9uIGNvbW1hbmRzCi0K LTIuIENvbWJpbmUgbWF0Y2hpbmcgcnVsZSBhbmQgc2NhbmxpbWl0IGZpeGVzIGludG8gYSBzaW5n bGUgY29tbWFuZCB3aGVuCi0gICBib3RoIGFyZSBtaXNzaW5nIGZvciB0aGUgc2FtZSBpbmRleCBp bnN0ZWFkIG9mIGV4cGVjdGVkX3NjYW5saW1pdCkKLQotRml4ZXM6IGh0dHBzOi8vZ2l0aHViLmNv bS8zODlkcy8zODktZHMtYmFzZS9pc3N1ZXMvNzE4OQotCi1SZXZpZXdlZCBieTogQHByb2dpZXIz ODksIEBkcm9pZGVjayAoVGhhbmtzISkKLS0tLQotIC4uLi9oZWFsdGhjaGVjay9oZWFsdGhfc3lz dGVtX2luZGV4ZXNfdGVzdC5weSB8IDEyNiArKysrKysrKysrKysrKysrKysKLSBzcmMvbGliMzg5 L2xpYjM4OS9iYWNrZW5kLnB5ICAgICAgICAgICAgICAgICAgfCAgMzkgKysrLS0tCi0gMiBmaWxl cyBjaGFuZ2VkLCAxNDcgaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1n aXQgYS9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvaGVhbHRoY2hlY2svaGVhbHRoX3N5c3RlbV9p bmRleGVzX3Rlc3QucHkgYi9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvaGVhbHRoY2hlY2svaGVh bHRoX3N5c3RlbV9pbmRleGVzX3Rlc3QucHkKLWluZGV4IGE5NzdiNzFkMS4uNDg2ZmFkNDRiIDEw MDY0NAotLS0tIGEvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL2hlYWx0aGNoZWNrL2hlYWx0aF9z eXN0ZW1faW5kZXhlc190ZXN0LnB5Ci0rKysgYi9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvaGVh bHRoY2hlY2svaGVhbHRoX3N5c3RlbV9pbmRleGVzX3Rlc3QucHkKLUBAIC00MDgsNiArNDA4LDEz MiBAQCBkZWYgdGVzdF9yZXRyb2NsX3BsdWdpbl9taXNzaW5nX21hdGNoaW5nX3J1bGUodG9wb2xv Z3lfc3QsIHJldHJvY2xfcGx1Z2luX2VuYWJsZQotICAgICBydW5faGVhbHRoY2hlY2tfYW5kX2Zs dXNoX2xvZyh0b3BvbG9neV9zdCwgc3RhbmRhbG9uZSwganNvbj1UcnVlLCBzZWFyY2hlZF9jb2Rl PUpTT05fT1VUUFVUKQotIAotIAotK2RlZiB0ZXN0X21pc3Npbmdfc2NhbmxpbWl0KHRvcG9sb2d5 X3N0LCBsb2dfYnVmZmVyaW5nX2VuYWJsZWQpOgotKyAgICAiIiJDaGVjayBpZiBoZWFsdGhjaGVj ayByZXR1cm5zIERTQkxFMDAwNyBjb2RlIHdoZW4gcGFyZW50SWQgaW5kZXggaXMgbWlzc2luZyBz Y2FubGltaXQKLSsKLSsgICAgOmlkOiA0MGUxYmY2YS0yMzk3LTQ1OWItYmRmMy1mNzg3Y2ExMThi ODYKLSsgICAgOnNldHVwOiBTdGFuZGFsb25lIGluc3RhbmNlCi0rICAgIDpzdGVwczoKLSsgICAg ICAgIDEuIENyZWF0ZSBEUyBpbnN0YW5jZQotKyAgICAgICAgMi4gUmVtb3ZlIG5zSW5kZXhJRExp c3RTY2FuTGltaXQgZnJvbSBwYXJlbnRJZCBpbmRleAotKyAgICAgICAgMy4gVXNlIGhlYWx0aGNo ZWNrIHdpdGhvdXQgLS1qc29uIG9wdGlvbgotKyAgICAgICAgNC4gVXNlIGhlYWx0aGNoZWNrIHdp dGggLS1qc29uIG9wdGlvbgotKyAgICAgICAgNS4gVmVyaWZ5IHRoZSByZW1lZGlhdGlvbiBjb21t YW5kIGhhcyBwcm9wZXJseSBxdW90ZWQgc2NhbmxpbWl0Ci0rICAgICAgICA2LiBSZS1hZGQgdGhl IHNjYW5saW1pdAotKyAgICAgICAgNy4gVXNlIGhlYWx0aGNoZWNrIHdpdGhvdXQgLS1qc29uIG9w dGlvbgotKyAgICAgICAgOC4gVXNlIGhlYWx0aGNoZWNrIHdpdGggLS1qc29uIG9wdGlvbgotKyAg ICA6ZXhwZWN0ZWRyZXN1bHRzOgotKyAgICAgICAgMS4gU3VjY2VzcwotKyAgICAgICAgMi4gU3Vj Y2VzcwotKyAgICAgICAgMy4gaGVhbHRoY2hlY2sgcmVwb3J0cyBEU0JMRTAwMDcgY29kZSBhbmQg cmVsYXRlZCBkZXRhaWxzCi0rICAgICAgICA0LiBoZWFsdGhjaGVjayByZXBvcnRzIERTQkxFMDAw NyBjb2RlIGFuZCByZWxhdGVkIGRldGFpbHMKLSsgICAgICAgIDUuIFRoZSBzY2FubGltaXQgdmFs dWUgaXMgcXVvdGVkIGluIHRoZSByZW1lZGlhdGlvbiBjb21tYW5kCi0rICAgICAgICA2LiBTdWNj ZXNzCi0rICAgICAgICA3LiBoZWFsdGhjaGVjayByZXBvcnRzIG5vIGlzc3VlcyBmb3VuZAotKyAg ICAgICAgOC4gaGVhbHRoY2hlY2sgcmVwb3J0cyBubyBpc3N1ZXMgZm91bmQKLSsgICAgIiIiCi0r Ci0rICAgIFJFVF9DT0RFID0gIkRTQkxFMDAwNyIKLSsgICAgUEFSRU5USURfRE4gPSAiY249cGFy ZW50aWQsY249aW5kZXgsY249dXNlcnJvb3QsY249bGRibSBkYXRhYmFzZSxjbj1wbHVnaW5zLGNu PWNvbmZpZyIKLSsgICAgU0NBTkxJTUlUX1ZBTFVFID0gImxpbWl0PTUwMDAgdHlwZT1lcSBmbGFn cz1BTkQiCi0rCi0rICAgIHN0YW5kYWxvbmUgPSB0b3BvbG9neV9zdC5zdGFuZGFsb25lCi0rCi0r ICAgIGxvZy5pbmZvKCJSZW1vdmUgbnNJbmRleElETGlzdFNjYW5MaW1pdCBmcm9tIHBhcmVudElk IGluZGV4IikKLSsgICAgcGFyZW50aWRfaW5kZXggPSBJbmRleChzdGFuZGFsb25lLCBQQVJFTlRJ RF9ETikKLSsgICAgcGFyZW50aWRfaW5kZXgucmVtb3ZlKCJuc0luZGV4SURMaXN0U2NhbkxpbWl0 IiwgU0NBTkxJTUlUX1ZBTFVFKQotKwotKyAgICBydW5faGVhbHRoY2hlY2tfYW5kX2ZsdXNoX2xv Zyh0b3BvbG9neV9zdCwgc3RhbmRhbG9uZSwganNvbj1GYWxzZSwgc2VhcmNoZWRfY29kZT1SRVRf Q09ERSkKLSsKLSsgICAgIyBWZXJpZnkgdGhlIHJlbWVkaWF0aW9uIGNvbW1hbmQgaGFzIHByb3Bl cmx5IHF1b3RlZCBzY2FubGltaXQKLSsgICAgYXJncyA9IEZha2VBcmdzKCkKLSsgICAgYXJncy5p bnN0YW5jZSA9IHN0YW5kYWxvbmUuc2VydmVyaWQKLSsgICAgYXJncy52ZXJib3NlID0gc3RhbmRh bG9uZS52ZXJib3NlCi0rICAgIGFyZ3MubGlzdF9lcnJvcnMgPSBGYWxzZQotKyAgICBhcmdzLmxp c3RfY2hlY2tzID0gRmFsc2UKLSsgICAgYXJncy5leGNsdWRlX2NoZWNrID0gW10KLSsgICAgYXJn cy5jaGVjayA9IFsiYmFja2VuZHMiXQotKyAgICBhcmdzLmRyeV9ydW4gPSBGYWxzZQotKyAgICBh cmdzLmpzb24gPSBGYWxzZQotKyAgICBoZWFsdGhfY2hlY2tfcnVuKHN0YW5kYWxvbmUsIHRvcG9s b2d5X3N0LmxvZ2NhcC5sb2csIGFyZ3MpCi0rICAgICMgQ2hlY2sgdGhhdCB0aGUgc2NhbmxpbWl0 IGlzIHF1b3RlZCBpbiB0aGUgb3V0cHV0Ci0rICAgIGFzc2VydCB0b3BvbG9neV9zdC5sb2djYXAu Y29udGFpbnMoJy0tYWRkLXNjYW5saW1pdCAibGltaXQ9NTAwMCB0eXBlPWVxIGZsYWdzPUFORCIn KQotKyAgICBsb2cuaW5mbygiVmVyaWZpZWQgc2NhbmxpbWl0IGlzIHByb3Blcmx5IHF1b3RlZCBp biByZW1lZGlhdGlvbiBjb21tYW5kIikKLSsgICAgdG9wb2xvZ3lfc3QubG9nY2FwLmZsdXNoKCkK LSsKLSsgICAgcnVuX2hlYWx0aGNoZWNrX2FuZF9mbHVzaF9sb2codG9wb2xvZ3lfc3QsIHN0YW5k YWxvbmUsIGpzb249VHJ1ZSwgc2VhcmNoZWRfY29kZT1SRVRfQ09ERSkKLSsKLSsgICAgbG9nLmlu Zm8oIlJlLWFkZCB0aGUgbnNJbmRleElETGlzdFNjYW5MaW1pdCIpCi0rICAgIHBhcmVudGlkX2lu ZGV4ID0gSW5kZXgoc3RhbmRhbG9uZSwgUEFSRU5USURfRE4pCi0rICAgIHBhcmVudGlkX2luZGV4 LmFkZCgibnNJbmRleElETGlzdFNjYW5MaW1pdCIsIFNDQU5MSU1JVF9WQUxVRSkKLSsKLSsgICAg cnVuX2hlYWx0aGNoZWNrX2FuZF9mbHVzaF9sb2codG9wb2xvZ3lfc3QsIHN0YW5kYWxvbmUsIGpz b249RmFsc2UsIHNlYXJjaGVkX2NvZGU9Q01EX09VVFBVVCkKLSsgICAgcnVuX2hlYWx0aGNoZWNr X2FuZF9mbHVzaF9sb2codG9wb2xvZ3lfc3QsIHN0YW5kYWxvbmUsIGpzb249VHJ1ZSwgc2VhcmNo ZWRfY29kZT1KU09OX09VVFBVVCkKLSsKLSsKLStkZWYgdGVzdF9taXNzaW5nX21hdGNoaW5nX3J1 bGVfYW5kX3NjYW5saW1pdCh0b3BvbG9neV9zdCwgbG9nX2J1ZmZlcmluZ19lbmFibGVkKToKLSsg ICAgIiIiQ2hlY2sgaWYgaGVhbHRoY2hlY2sgZ2VuZXJhdGVzIGEgc2luZ2xlIGNvbWJpbmVkIGNv bW1hbmQgd2hlbiBib3RoIG1hdGNoaW5nIHJ1bGUgYW5kIHNjYW5saW1pdCBhcmUgbWlzc2luZwot KwotKyAgICA6aWQ6IGFmODIxNGFkLTVlNGMtNDIyYS04Zjc0LTNlOTkyMjc1NTFkZgotKyAgICA6 c2V0dXA6IFN0YW5kYWxvbmUgaW5zdGFuY2UKLSsgICAgOnN0ZXBzOgotKyAgICAgICAgMS4gQ3Jl YXRlIERTIGluc3RhbmNlCi0rICAgICAgICAyLiBSZW1vdmUgYm90aCBpbnRlZ2VyT3JkZXJpbmdN YXRjaCBhbmQgbnNJbmRleElETGlzdFNjYW5MaW1pdCBmcm9tIHBhcmVudElkIGluZGV4Ci0rICAg ICAgICAzLiBVc2UgaGVhbHRoY2hlY2sgYW5kIHZlcmlmeSBhIHNpbmdsZSBjb21iaW5lZCBjb21t YW5kIGlzIGdlbmVyYXRlZAotKyAgICAgICAgNC4gUmUtYWRkIHRoZSBtYXRjaGluZyBydWxlIGFu ZCBzY2FubGltaXQKLSsgICAgICAgIDUuIFVzZSBoZWFsdGhjaGVjayB3aXRob3V0IC0tanNvbiBv cHRpb24KLSsgICAgICAgIDYuIFVzZSBoZWFsdGhjaGVjayB3aXRoIC0tanNvbiBvcHRpb24KLSsg ICAgOmV4cGVjdGVkcmVzdWx0czoKLSsgICAgICAgIDEuIFN1Y2Nlc3MKLSsgICAgICAgIDIuIFN1 Y2Nlc3MKLSsgICAgICAgIDMuIGhlYWx0aGNoZWNrIHJlcG9ydHMgRFNCTEUwMDA3IGFuZCBnZW5l cmF0ZXMgYSBzaW5nbGUgY29tbWFuZCB3aXRoIGJvdGggLS1hZGQtbXIgYW5kIC0tYWRkLXNjYW5s aW1pdAotKyAgICAgICAgNC4gU3VjY2VzcwotKyAgICAgICAgNS4gaGVhbHRoY2hlY2sgcmVwb3J0 cyBubyBpc3N1ZXMgZm91bmQKLSsgICAgICAgIDYuIGhlYWx0aGNoZWNrIHJlcG9ydHMgbm8gaXNz dWVzIGZvdW5kCi0rICAgICIiIgotKwotKyAgICBSRVRfQ09ERSA9ICJEU0JMRTAwMDciCi0rICAg IFBBUkVOVElEX0ROID0gImNuPXBhcmVudGlkLGNuPWluZGV4LGNuPXVzZXJyb290LGNuPWxkYm0g ZGF0YWJhc2UsY249cGx1Z2lucyxjbj1jb25maWciCi0rICAgIFNDQU5MSU1JVF9WQUxVRSA9ICJs aW1pdD01MDAwIHR5cGU9ZXEgZmxhZ3M9QU5EIgotKwotKyAgICBzdGFuZGFsb25lID0gdG9wb2xv Z3lfc3Quc3RhbmRhbG9uZQotKwotKyAgICBsb2cuaW5mbygiUmVtb3ZlIGJvdGggaW50ZWdlck9y ZGVyaW5nTWF0Y2ggYW5kIG5zSW5kZXhJRExpc3RTY2FuTGltaXQgZnJvbSBwYXJlbnRJZCBpbmRl eCIpCi0rICAgIHBhcmVudGlkX2luZGV4ID0gSW5kZXgoc3RhbmRhbG9uZSwgUEFSRU5USURfRE4p Ci0rICAgIHBhcmVudGlkX2luZGV4LnJlbW92ZSgibnNNYXRjaGluZ1J1bGUiLCAiaW50ZWdlck9y ZGVyaW5nTWF0Y2giKQotKyAgICBwYXJlbnRpZF9pbmRleC5yZW1vdmUoIm5zSW5kZXhJRExpc3RT Y2FuTGltaXQiLCBTQ0FOTElNSVRfVkFMVUUpCi0rCi0rICAgICMgUnVuIGhlYWx0aGNoZWNrIGFu ZCB2ZXJpZnkgY29tYmluZWQgY29tbWFuZAotKyAgICBhcmdzID0gRmFrZUFyZ3MoKQotKyAgICBh cmdzLmluc3RhbmNlID0gc3RhbmRhbG9uZS5zZXJ2ZXJpZAotKyAgICBhcmdzLnZlcmJvc2UgPSBz dGFuZGFsb25lLnZlcmJvc2UKLSsgICAgYXJncy5saXN0X2Vycm9ycyA9IEZhbHNlCi0rICAgIGFy Z3MubGlzdF9jaGVja3MgPSBGYWxzZQotKyAgICBhcmdzLmV4Y2x1ZGVfY2hlY2sgPSBbXQotKyAg ICBhcmdzLmNoZWNrID0gWyJiYWNrZW5kcyJdCi0rICAgIGFyZ3MuZHJ5X3J1biA9IEZhbHNlCi0r ICAgIGFyZ3MuanNvbiA9IEZhbHNlCi0rICAgIGhlYWx0aF9jaGVja19ydW4oc3RhbmRhbG9uZSwg dG9wb2xvZ3lfc3QubG9nY2FwLmxvZywgYXJncykKLSsKLSsgICAgIyBWZXJpZnkgRFNCTEUwMDA3 IGlzIHJlcG9ydGVkCi0rICAgIGFzc2VydCB0b3BvbG9neV9zdC5sb2djYXAuY29udGFpbnMoUkVU X0NPREUpCi0rICAgIGxvZy5pbmZvKCJoZWFsdGhjaGVjayByZXR1cm5lZCBjb2RlOiAlcyIgJSBS RVRfQ09ERSkKLSsKLSsgICAgIyBWZXJpZnkgYSBzaW5nbGUgY29tYmluZWQgY29tbWFuZCBpcyBn ZW5lcmF0ZWQgd2l0aCBib3RoIC0tYWRkLW1yIGFuZCAtLWFkZC1zY2FubGltaXQKLSsgICAgYXNz ZXJ0IHRvcG9sb2d5X3N0LmxvZ2NhcC5jb250YWlucygnLS1hZGQtbXIgaW50ZWdlck9yZGVyaW5n TWF0Y2ggLS1hZGQtc2NhbmxpbWl0ICJsaW1pdD01MDAwIHR5cGU9ZXEgZmxhZ3M9QU5EIicpCi0r ICAgIGxvZy5pbmZvKCJWZXJpZmllZCBjb21iaW5lZCBjb21tYW5kIHdpdGggYm90aCAtLWFkZC1t ciBhbmQgLS1hZGQtc2NhbmxpbWl0IikKLSsKLSsgICAgdG9wb2xvZ3lfc3QubG9nY2FwLmZsdXNo KCkKLSsKLSsgICAgbG9nLmluZm8oIlJlLWFkZCB0aGUgaW50ZWdlck9yZGVyaW5nTWF0Y2ggbWF0 Y2hpbmcgcnVsZSBhbmQgc2NhbmxpbWl0IikKLSsgICAgcGFyZW50aWRfaW5kZXggPSBJbmRleChz dGFuZGFsb25lLCBQQVJFTlRJRF9ETikKLSsgICAgcGFyZW50aWRfaW5kZXguYWRkKCJuc01hdGNo aW5nUnVsZSIsICJpbnRlZ2VyT3JkZXJpbmdNYXRjaCIpCi0rICAgIHBhcmVudGlkX2luZGV4LmFk ZCgibnNJbmRleElETGlzdFNjYW5MaW1pdCIsIFNDQU5MSU1JVF9WQUxVRSkKLSsKLSsgICAgcnVu X2hlYWx0aGNoZWNrX2FuZF9mbHVzaF9sb2codG9wb2xvZ3lfc3QsIHN0YW5kYWxvbmUsIGpzb249 RmFsc2UsIHNlYXJjaGVkX2NvZGU9Q01EX09VVFBVVCkKLSsgICAgcnVuX2hlYWx0aGNoZWNrX2Fu ZF9mbHVzaF9sb2codG9wb2xvZ3lfc3QsIHN0YW5kYWxvbmUsIGpzb249VHJ1ZSwgc2VhcmNoZWRf Y29kZT1KU09OX09VVFBVVCkKLSsKLSsKLSBkZWYgdGVzdF9tdWx0aXBsZV9taXNzaW5nX2luZGV4 ZXModG9wb2xvZ3lfc3QsIGxvZ19idWZmZXJpbmdfZW5hYmxlZCk6Ci0gICAgICIiIkNoZWNrIGlm IGhlYWx0aGNoZWNrIHJldHVybnMgRFNCTEUwMDA3IGNvZGUgd2hlbiBtdWx0aXBsZSBzeXN0ZW0g aW5kZXhlcyBhcmUgbWlzc2luZwotIAotZGlmZiAtLWdpdCBhL3NyYy9saWIzODkvbGliMzg5L2Jh Y2tlbmQucHkgYi9zcmMvbGliMzg5L2xpYjM4OS9iYWNrZW5kLnB5Ci1pbmRleCBmYmE5NTk4N2Iu LmRiNDY0YjQzYSAxMDA2NDQKLS0tLSBhL3NyYy9saWIzODkvbGliMzg5L2JhY2tlbmQucHkKLSsr KyBiL3NyYy9saWIzODkvbGliMzg5L2JhY2tlbmQucHkKLUBAIC02NzgsNyArNjc4LDcgQEAgY2xh c3MgQmFja2VuZChEU0xkYXBPYmplY3QpOgotICAgICAgICAgICAgICAgICAgICAgaWYgZXhwZWN0 ZWRfY29uZmlnLmdldCgnbWF0Y2hpbmdfcnVsZScpOgotICAgICAgICAgICAgICAgICAgICAgICAg IGNtZCArPSBmIiAtLW1hdGNoaW5nLXJ1bGUge2V4cGVjdGVkX2NvbmZpZ1snbWF0Y2hpbmdfcnVs ZSddfSIKLSAgICAgICAgICAgICAgICAgICAgIGlmIGV4cGVjdGVkX2NvbmZpZy5nZXQoJ3NjYW5s aW1pdCcpOgotLSAgICAgICAgICAgICAgICAgICAgICAgIGNtZCArPSBmIiAtLWFkZC1zY2FubGlt aXQge2V4cGVjdGVkX2NvbmZpZ1snc2NhbmxpbWl0J119IgotKyAgICAgICAgICAgICAgICAgICAg ICAgIGNtZCArPSBmIiAtLWFkZC1zY2FubGltaXQgXCJ7ZXhwZWN0ZWRfY29uZmlnWydzY2FubGlt aXQnXX1cIiIKLSAgICAgICAgICAgICAgICAgICAgIHJlbWVkaWF0aW9uX2NvbW1hbmRzLmFwcGVu ZChjbWQpCi0gICAgICAgICAgICAgICAgICAgICByZWluZGV4X2F0dHJzLmFkZChhdHRyX25hbWUp ICAjIE5ldyBpbmRleCBuZWVkcyByZWluZGV4aW5nCi0gICAgICAgICAgICAgICAgIGVsc2U6Ci1A QCAtNzAwLDI4ICs3MDAsMzEgQEAgY2xhc3MgQmFja2VuZChEU0xkYXBPYmplY3QpOgotICAgICAg ICAgICAgICAgICAgICAgICAgIHJlbWVkaWF0aW9uX2NvbW1hbmRzLmFwcGVuZChjbWQpCi0gICAg ICAgICAgICAgICAgICAgICAgICAgcmVpbmRleF9hdHRycy5hZGQoYXR0cl9uYW1lKQotIAotLSAg ICAgICAgICAgICAgICAgICAgIyBDaGVjayBtYXRjaGluZyBydWxlcwotKyAgICAgICAgICAgICAg ICAgICAgIyBDaGVjayBtYXRjaGluZyBydWxlcyBhbmQgc2NhbmxpbWl0IHRvZ2V0aGVyIHRvIGdl bmVyYXRlIGEgc2luZ2xlIGNvbWJpbmVkIGNvbW1hbmQKLSAgICAgICAgICAgICAgICAgICAgIGV4 cGVjdGVkX21yID0gZXhwZWN0ZWRfY29uZmlnLmdldCgnbWF0Y2hpbmdfcnVsZScpCi0rICAgICAg ICAgICAgICAgICAgICBleHBlY3RlZF9zY2FubGltaXQgPSBleHBlY3RlZF9jb25maWcuZ2V0KCdz Y2FubGltaXQnKQotKwotKyAgICAgICAgICAgICAgICAgICAgbWlzc2luZ19tciA9IEZhbHNlCi0g ICAgICAgICAgICAgICAgICAgICBpZiBleHBlY3RlZF9tcjoKLSAgICAgICAgICAgICAgICAgICAg ICAgICBhY3R1YWxfbXJzX2xvd2VyID0gW21yLmxvd2VyKCkgZm9yIG1yIGluIGFjdHVhbF9tcnNd Ci0gICAgICAgICAgICAgICAgICAgICAgICAgaWYgZXhwZWN0ZWRfbXIubG93ZXIoKSBub3QgaW4g YWN0dWFsX21yc19sb3dlcjoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzY3JlcGFu Y2llcy5hcHBlbmQoZiJJbmRleCB7YXR0cl9uYW1lfSBtaXNzaW5nIG1hdGNoaW5nIHJ1bGU6IHtl eHBlY3RlZF9tcn0iKQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEFkZCB0aGUgbWlz c2luZyBtYXRjaGluZyBydWxlCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNtZCA9IGYi ZHNjb25mIFlPVVJfSU5TVEFOQ0UgYmFja2VuZCBpbmRleCBzZXQge2JlbmFtZX0gLS1hdHRyIHth dHRyX25hbWV9IC0tYWRkLW1yIHtleHBlY3RlZF9tcn0iCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJlbWVkaWF0aW9uX2NvbW1hbmRzLmFwcGVuZChjbWQpCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJlaW5kZXhfYXR0cnMuYWRkKGF0dHJfbmFtZSkKLS0KLS0gICAgICAgICAg ICAgICAgICAgICMgQ2hlY2sgZmluZSBncmFpbiBkZWZpbml0aW9ucyBmb3IgcGFyZW50aWQgT05M WQotLSAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfc2NhbmxpbWl0ID0gZXhwZWN0ZWRfY29u ZmlnLmdldCgnc2NhbmxpbWl0JykKLS0gICAgICAgICAgICAgICAgICAgIGlmIChhdHRyX25hbWUu bG93ZXIoKSA9PSAicGFyZW50aWQiKSBhbmQgZXhwZWN0ZWRfc2NhbmxpbWl0IGFuZCAobGVuKGFj dHVhbF9zY2FubGltaXQpID09IDApOgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNj cmVwYW5jaWVzLmFwcGVuZChmIkluZGV4IHthdHRyX25hbWV9IG1pc3NpbmcgZmluZSBncmFpbiBk ZWZpbml0aW9uIG9mIElEcyBsaW1pdDoge2V4cGVjdGVkX21yfSIpCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICMgQWRkIHRoZSBtaXNzaW5nIHNjYW5saW1pdAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpZiBleHBlY3RlZF9tcjoKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNtZCA9IGYiZHNjb25mIFlPVVJfSU5TVEFOQ0UgYmFja2VuZCBpbmRleCBzZXQge2Jl bmFtZX0gLS1hdHRyIHthdHRyX25hbWV9IC0tYWRkLW1yIHtleHBlY3RlZF9tcn0gLS1hZGQtc2Nh bmxpbWl0IHtleHBlY3RlZF9zY2FubGltaXR9IgotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBlbHNlOgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY21kID0gZiJkc2NvbmYg WU9VUl9JTlNUQU5DRSBiYWNrZW5kIGluZGV4IHNldCB7YmVuYW1lfSAtLWF0dHIge2F0dHJfbmFt ZX0gLS1hZGQtc2NhbmxpbWl0IHtleHBlY3RlZF9zY2FubGltaXR9IgotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICByZW1lZGlhdGlvbl9jb21tYW5kcy5hcHBlbmQoY21kKQotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICByZWluZGV4X2F0dHJzLmFkZChhdHRyX25hbWUpCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG1pc3NpbmdfbXIgPSBUcnVlCi0rCi0rICAgICAgICAgICAg ICAgICAgICBtaXNzaW5nX3NjYW5saW1pdCA9IEZhbHNlCi0rICAgICAgICAgICAgICAgICAgICBp ZiBleHBlY3RlZF9zY2FubGltaXQgYW5kIChsZW4oYWN0dWFsX3NjYW5saW1pdCkgPT0gMCk6Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgZGlzY3JlcGFuY2llcy5hcHBlbmQoZiJJbmRleCB7YXR0 cl9uYW1lfSBtaXNzaW5nIGZpbmUgZ3JhaW4gZGVmaW5pdGlvbiBvZiBJRHMgbGltaXQ6IHtleHBl Y3RlZF9zY2FubGltaXR9IikKLSsgICAgICAgICAgICAgICAgICAgICAgICBtaXNzaW5nX3NjYW5s aW1pdCA9IFRydWUKLSsKLSsgICAgICAgICAgICAgICAgICAgICMgR2VuZXJhdGUgYSBzaW5nbGUg Y29tYmluZWQgY29tbWFuZCBmb3IgYWxsIG1pc3NpbmcgaXRlbXMKLSsgICAgICAgICAgICAgICAg ICAgIGlmIG1pc3NpbmdfbXIgb3IgbWlzc2luZ19zY2FubGltaXQ6Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgY21kID0gZiJkc2NvbmYgWU9VUl9JTlNUQU5DRSBiYWNrZW5kIGluZGV4IHNldCB7 YmVuYW1lfSAtLWF0dHIge2F0dHJfbmFtZX0iCi0rICAgICAgICAgICAgICAgICAgICAgICAgaWYg bWlzc2luZ19tcjoKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgY21kICs9IGYiIC0tYWRk LW1yIHtleHBlY3RlZF9tcn0iCi0rICAgICAgICAgICAgICAgICAgICAgICAgaWYgbWlzc2luZ19z Y2FubGltaXQ6Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNtZCArPSBmIiAtLWFkZC1z Y2FubGltaXQgXCJ7ZXhwZWN0ZWRfc2NhbmxpbWl0fVwiIgotKyAgICAgICAgICAgICAgICAgICAg ICAgIHJlbWVkaWF0aW9uX2NvbW1hbmRzLmFwcGVuZChjbWQpCi0rICAgICAgICAgICAgICAgICAg ICAgICAgcmVpbmRleF9hdHRycy5hZGQoYXR0cl9uYW1lKQotIAotICAgICAgICAgICAgIGV4Y2Vw dCBFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgICAgICAgc2VsZi5fbG9nLmRlYnVnKGYiX2xp bnRfc3lzdGVtX2luZGV4ZXMgLSBFcnJvciBjaGVja2luZyBpbmRleCB7YXR0cl9uYW1lfToge2V9 IikKLS0tIAotMi41Mi4wCi0KCmRpZmYgLS1naXQgYS8wMDEyLUlzc3VlLTcxNzAtU3VwcG9ydC1v Zi1QUUMta2V5cy03MTg4LnBhdGNoIGIvMDAxMi1Jc3N1ZS03MTcwLVN1cHBvcnQtb2YtUFFDLWtl eXMtNzE4OC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2E5Y2UyOS4uMDAw MDAwMAotLS0gYS8wMDEyLUlzc3VlLTcxNzAtU3VwcG9ydC1vZi1QUUMta2V5cy03MTg4LnBhdGNo CisrKyAvZGV2L251bGwKQEAgLTEsNTA0ICswLDAgQEAKLUZyb20gNmNlMzNiMWJlZGQyY2QxM2Q3 ZTY1NDQ2OTIzNTQ3MTVmNmU2MTNiOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IHBy b2dpZXIzODkgPHByb2dpZXJAcmVkaGF0LmNvbT4KLURhdGU6IFR1ZSwgMjAgSmFuIDIwMjYgMTk6 NDE6MDUgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gSXNzdWUgNzE3MCAtIFN1cHBvcnQgb2YgUFFD IGtleXMgKCM3MTg4KQotCi1TdXBwb3J0IG9mIFBvc3QgUXVhbnR1bSBDcnlwdG9ncmFwaHkgS2V5 cyBpbiBjZXJ0aWZpY2F0ZXM6Ci1BZGRlZCBzdXBwb3J0IG9mIGEgbmV3IGtleSB0eXBlOiBNTF9E U0EKLUVuYWJsZSB0aGUgZm9sbG93aW5nIHBvbGljaWVzICh0aGF0IGFyZSBub3QgZW5hYmxlZCBi eSBkZWZhdXQpOiBNTC1EU0EtNDQsIE1MLURTQS02NS0gTUwtRFNBLTg3Ci1SZXBsYWNlZCBkZXBy ZWNhdGVkIGZ1bmN0aW9uIFNTTF9Db25maWdTZWN1cmVTZXJ2ZXIgYnkgU1NMX0NvbmZpZ1NlcnZl ckNlcnQKLUFkZGVkIHRlc3QgY2FzZSBmb3IgTUwtRFNBIGNlcnRpZmljYXRlLiBUaGF0IHRlc3Qg Y2FzZSByZWx5IG9mIG9wZW5zc2wgY29tbWFuZCBiZWNhdXNlIHB5dGhvbiBjcnlwdG9ncmFwaHkg bW9kdWxlIGRvZXMgbm90IHlldCBzdXBwb3J0IE1MLURTQSBrZXlzCi0KLUlzc3VlOiAjNzE3MAot Ci1SZXZpZXdlZCBieTogQHRib3JkYXosIEBkcm9pZGVjayBhbmQgQHZhc2hpcm92IChUaGFua3Mh KQotLS0tCi0gZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL3Rscy9tbGRzYV90ZXN0LnB5IHwgMzIy ICsrKysrKysrKysrKysrKysrKysrKwotIGxkYXAvc2VydmVycy9zbGFwZC9zc2wuYyAgICAgICAg ICAgICAgICAgICB8ICA5NSArKysrKy0KLSAyIGZpbGVzIGNoYW5nZWQsIDQwNyBpbnNlcnRpb25z KCspLCAxMCBkZWxldGlvbnMoLSkKLSBjcmVhdGUgbW9kZSAxMDA2NDQgZGlyc3J2dGVzdHMvdGVz dHMvc3VpdGVzL3Rscy9tbGRzYV90ZXN0LnB5Ci0KLWRpZmYgLS1naXQgYS9kaXJzcnZ0ZXN0cy90 ZXN0cy9zdWl0ZXMvdGxzL21sZHNhX3Rlc3QucHkgYi9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMv dGxzL21sZHNhX3Rlc3QucHkKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwMDAu LjJjODE1MDg4YgotLS0tIC9kZXYvbnVsbAotKysrIGIvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVz L3Rscy9tbGRzYV90ZXN0LnB5Ci1AQCAtMCwwICsxLDMyMiBAQAotKyMgLS0tIEJFR0lOIENPUFlS SUdIVCBCTE9DSyAtLS0KLSsjIENvcHlyaWdodCAoQykgMjAyNiBSZWQgSGF0LCBJbmMuCi0rIyBB bGwgcmlnaHRzIHJlc2VydmVkLgotKyMKLSsjIExpY2Vuc2U6IEdQTCAodmVyc2lvbiAzIG9yIGFu eSBsYXRlciB2ZXJzaW9uKS4KLSsjIFNlZSBMSUNFTlNFIGZvciBkZXRhaWxzLgotKyMgLS0tIEVO RCBDT1BZUklHSFQgQkxPQ0sgLS0tCi0rIwotK2ltcG9ydCBsb2dnaW5nCi0raW1wb3J0IHB5dGVz dAotK2ltcG9ydCBvcwotK2ltcG9ydCBzeXMKLStpbXBvcnQgaXRlcnRvb2xzCi0raW1wb3J0IHJw bQotK2ltcG9ydCBzb2NrZXQKLStpbXBvcnQgc3VicHJvY2VzcwotK2Zyb20gbGliMzg5LnV0aWxz IGltcG9ydCBkc19pc19vbGRlcgotK2Zyb20gbGliMzg5Ll9jb25zdGFudHMgaW1wb3J0IEROX0RN LCBQV19ETSwgREVGQVVMVF9TVUZGSVgKLStmcm9tIGxpYjM4OS5jb25maWcgaW1wb3J0IEVuY3J5 cHRpb24sIENlcnRtYXBMZWdhY3kKLStmcm9tIGxpYjM4OS5pZG0udXNlciBpbXBvcnQgVXNlckFj Y291bnQKLStmcm9tIGxpYjM4OS50b3BvbG9naWVzIGltcG9ydCB0b3BvbG9neV9zdCBhcyB0b3Bv Ci0rZnJvbSB0ZW1wZmlsZSBpbXBvcnQgVGVtcG9yYXJ5RGlyZWN0b3J5Ci0rCi0rcHl0ZXN0bWFy ayA9IHB5dGVzdC5tYXJrLnRpZXIxCi0rCi0rREVCVUdHSU5HID0gb3MuZ2V0ZW52KCJERUJVR0dJ TkciLCBkZWZhdWx0PUZhbHNlKQotK2lmIERFQlVHR0lORzoKLSsgICAgbG9nZ2luZy5nZXRMb2dn ZXIoX19uYW1lX18pLnNldExldmVsKGxvZ2dpbmcuREVCVUcpCi0rZWxzZToKLSsgICAgbG9nZ2lu Zy5nZXRMb2dnZXIoX19uYW1lX18pLnNldExldmVsKGxvZ2dpbmcuSU5GTykKLStsb2cgPSBsb2dn aW5nLmdldExvZ2dlcihfX25hbWVfXykKLSsKLSsKLStkZWYgcnBtX2lzX29sZGVyKHBrZywgdmVy c2lvbik6Ci0rICAgIHRzID0gcnBtLlRyYW5zYWN0aW9uU2V0KCkKLSsgICAgbWkgPSB0cy5kYk1h dGNoKCduYW1lJywgcGtnKQotKyAgICBmb3IgaCBpbiBtaToKLSsgICAgICAgIHByaW50KGYie3Br Z30ge2hbJ3ZlcnNpb24nXX0ge3ZlcnNpb259IikKLSsgICAgICAgIGZvciBuMSxuMiBpbiBpdGVy dG9vbHMuemlwX2xvbmdlc3QoaFsndmVyc2lvbiddLnNwbGl0KCcuJyksIHZlcnNpb24uc3BsaXQo Jy4nKSwgZmlsbHZhbHVlPSIiKToKLSsgICAgICAgICAgICB0cnk6Ci0rICAgICAgICAgICAgICAg IGlmIGludChuMSkgPCBpbnQobjIpOgotKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUK LSsgICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKLSsgICAgICAgICAgICAgICAgaWYgbjEg PCBuMjoKLSsgICAgICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCi0rICAgIHJldHVybiBGYWxz ZQotKwotKwotK3NjcmlwdF9jb250ZW50PSIiIgotKyMhL2Jpbi9iYXNoCi0rc2V0IC1lICAjIEV4 aXQgaWYgYSBjb21tYW5kIGZhaWxzCi0rc2V0IC14ICAjIExvZyB0aGUgY29tbWFuZHMKLSsKLStj ZCB7ZGlyfQotK2luc3Q9e2luc3RuYW1lfQotK3VybD17dXJsfQotK3Jvb3Rkbj0ie3Jvb3Rkbn0i Ci0rcm9vdHB3PSJ7cm9vdHB3fSIKLSsKLSsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IwotKyMjIyMjIyBHRU5FUkFURSBDQSBDRVJUICMjIyMjIyMjCi0rIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKLSsKLStlY2hvICIKLStbIHJlcSBdCi0rZGlzdGluZ3Vpc2hlZF9uYW1l ID0gcmVxX2Rpc3Rpbmd1aXNoZWRfbmFtZQotK3BvbGljeSAgICAgICAgICAgICA9IHBvbGljeV9t YXRjaAotK3g1MDlfZXh0ZW5zaW9ucyAgICAgPSB2M19jYQotKwotKyMgRm9yIHRoZSBDQSBwb2xp Y3kKLStbIHBvbGljeV9tYXRjaCBdCi0rY291bnRyeU5hbWUgICAgICAgICAgICAgPSBvcHRpb25h bAotK3N0YXRlT3JQcm92aW5jZU5hbWUgICAgID0gb3B0aW9uYWwKLStvcmdhbml6YXRpb25OYW1l ICAgICAgICA9IG9wdGlvbmFsCi0rb3JnYW5pemF0aW9uYWxVbml0TmFtZSAgPSBvcHRpb25hbAot K2NvbW1vbk5hbWUgICAgICAgICAgICAgID0gc3VwcGxpZWQKLStlbWFpbEFkZHJlc3MgICAgICAg ICAgICA9IG9wdGlvbmFsCi0rCi0rWyByZXFfZGlzdGluZ3Vpc2hlZF9uYW1lIF0KLStjb3VudHJ5 TmFtZQkJCT0gQ291bnRyeSBOYW1lICgyIGxldHRlciBjb2RlKQotK2NvdW50cnlOYW1lX2RlZmF1 bHQJCT0gRlIKLStjb3VudHJ5TmFtZV9taW4JCQk9IDIKLStjb3VudHJ5TmFtZV9tYXgJCQk9IDIK LSsKLStzdGF0ZU9yUHJvdmluY2VOYW1lCQk9IFN0YXRlIG9yIFByb3ZpbmNlIE5hbWUgKGZ1bGwg bmFtZSkKLStzdGF0ZU9yUHJvdmluY2VOYW1lX2RlZmF1bHQJPSB0ZXN0Ci0rCi0rbG9jYWxpdHlO YW1lCQkJPSBMb2NhbGl0eSBOYW1lIChlZywgY2l0eSkKLSsKLSswLm9yZ2FuaXphdGlvbk5hbWUJ CT0gT3JnYW5pemF0aW9uIE5hbWUgKGVnLCBjb21wYW55KQotKzAub3JnYW5pemF0aW9uTmFtZV9k ZWZhdWx0CT0gdGVzdC1NTC1EU0EtQ0EKLSsKLStvcmdhbml6YXRpb25hbFVuaXROYW1lCQk9IE9y Z2FuaXphdGlvbmFsIFVuaXQgTmFtZSAoZWcsIHNlY3Rpb24pCi0rI29yZ2FuaXphdGlvbmFsVW5p dE5hbWVfZGVmYXVsdAk9Ci0rCi0rY29tbW9uTmFtZQkJCT0gQ29tbW9uIE5hbWUgKGUuZy4gc2Vy dmVyIEZRRE4gb3IgWU9VUiBuYW1lKQotK2NvbW1vbk5hbWVfbWF4CQkJPSA2NAotKwotKwotK1sg djNfY2EgXQotK3N1YmplY3RLZXlJZGVudGlmaWVyID0gaGFzaAotK2F1dGhvcml0eUtleUlkZW50 aWZpZXIgPSBrZXlpZDphbHdheXMsaXNzdWVyCi0rYmFzaWNDb25zdHJhaW50cyA9IGNyaXRpY2Fs LENBOnRydWUKLSsjbnNDb21tZW50ID0gIk9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlIgot K2tleVVzYWdlPWNyaXRpY2FsLCBrZXlDZXJ0U2lnbgotKyIgPmNhLmNvbmYKLSsKLSsKLStvcGVu c3NsIGdlbnBrZXkgLWFsZ29yaXRobSBNTC1EU0EtODcgLW91dCBjYS5rZXkKLStvcGVuc3NsIHJl cSAteDUwOSAtbmV3IC1zaGEyNTYgLWtleSBjYS5rZXkgLW5vZGVzIC1kYXlzIDM2NTAgLWNvbmZp ZyBjYS5jb25mIC1zdWJqICIvQ049YGhvc3RuYW1lYC9PPXRlc3QtTUwtRFNBLUNBL0M9RlIiICAt b3V0IGNhLnBlbSAta2V5b3V0IGNhLmtleQotK29wZW5zc2wgeDUwOSAtb3V0Zm9ybSBkZXIgLWlu IGNhLnBlbSAtb3V0IGNhLmNydAotKwotK29wZW5zc2wgeDUwOSAtdGV4dCAtaW4gY2EucGVtCi0r Ci0rIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0rIyMjIyMjIEdFTkVSQVRF IFNFUlZFUiBDRVJUICMjIyMjIyMjCi0rIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjCi0rCi0rZWNobyAiCi0rWyByZXEgXQotK2Rpc3Rpbmd1aXNoZWRfbmFtZSA9IHJlcV9kaXN0 aW5ndWlzaGVkX25hbWUKLStwb2xpY3kgICAgICAgICAgICAgPSBwb2xpY3lfbWF0Y2gKLSt4NTA5 X2V4dGVuc2lvbnMgICAgID0gdjNfY2VydAotKwotKyMgRm9yIHRoZSBjZXJ0IHBvbGljeQotK1sg cG9saWN5X21hdGNoIF0KLStjb3VudHJ5TmFtZSAgICAgICAgICAgICA9IG9wdGlvbmFsCi0rc3Rh dGVPclByb3ZpbmNlTmFtZSAgICAgPSBvcHRpb25hbAotK29yZ2FuaXphdGlvbk5hbWUgICAgICAg ID0gb3B0aW9uYWwKLStvcmdhbml6YXRpb25hbFVuaXROYW1lICA9IG9wdGlvbmFsCi0rY29tbW9u TmFtZSAgICAgICAgICAgICAgPSBzdXBwbGllZAotK2VtYWlsQWRkcmVzcyAgICAgICAgICAgID0g b3B0aW9uYWwKLSsKLStbIHJlcV9kaXN0aW5ndWlzaGVkX25hbWUgXQotK2NvdW50cnlOYW1lCQkJ PSBDb3VudHJ5IE5hbWUgKDIgbGV0dGVyIGNvZGUpCi0rY291bnRyeU5hbWVfZGVmYXVsdAkJPSBG UgotK2NvdW50cnlOYW1lX21pbgkJCT0gMgotK2NvdW50cnlOYW1lX21heAkJCT0gMgotKwotK3N0 YXRlT3JQcm92aW5jZU5hbWUJCT0gU3RhdGUgb3IgUHJvdmluY2UgTmFtZSAoZnVsbCBuYW1lKQot KwotK2xvY2FsaXR5TmFtZQkJCT0gTG9jYWxpdHkgTmFtZSAoZWcsIGNpdHkpCi0rCi0rMC5vcmdh bml6YXRpb25OYW1lCQk9IE9yZ2FuaXphdGlvbiBOYW1lIChlZywgY29tcGFueSkKLSswLm9yZ2Fu aXphdGlvbk5hbWVfZGVmYXVsdAk9IHRlc3QtTUwtRFNBCi0rCi0rb3JnYW5pemF0aW9uYWxVbml0 TmFtZQkJPSBPcmdhbml6YXRpb25hbCBVbml0IE5hbWUgKGVnLCBzZWN0aW9uKQotKyNvcmdhbml6 YXRpb25hbFVuaXROYW1lX2RlZmF1bHQJPQotKwotK2NvbW1vbk5hbWUJCQk9IENvbW1vbiBOYW1l IChlLmcuIHNlcnZlciBGUUROIG9yIFlPVVIgbmFtZSkKLStjb21tb25OYW1lX21heAkJCT0gNjQK LSsKLSsKLStbIHYzX2NlcnQgXQotK2Jhc2ljQ29uc3RyYWludHMgPSBjcml0aWNhbCxDQTpmYWxz ZQotK3N1YmplY3RBbHROYW1lPUROUzpgaG9zdG5hbWVgCi0ra2V5VXNhZ2U9ZGlnaXRhbFNpZ25h dHVyZSwgbm9uUmVwdWRpYXRpb24sIGtleUVuY2lwaGVybWVudCwgZGF0YUVuY2lwaGVybWVudAot KyNuc0NvbW1lbnQgPSAiT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUiCi0rZXh0ZW5kZWRL ZXlVc2FnZT1jbGllbnRBdXRoLCBzZXJ2ZXJBdXRoCi0rbnNDZXJ0VHlwZT1jbGllbnQsIHNlcnZl cgotKyIgPmNlcnQuY29uZgotKwotK29wZW5zc2wgZ2VucGtleSAtYWxnb3JpdGhtIE1MLURTQS02 NSAtb3V0IGNlcnQua2V5Ci0rb3BlbnNzbCByZXEgLW5ldyAtc2hhMjU2IC1rZXkgY2VydC5rZXkg LW5vZGVzICAtY29uZmlnIGNlcnQuY29uZiAtc3ViaiAiL0NOPWBob3N0bmFtZWAvTz10ZXN0LU1M LURTQS9DPUZSIiAtb3V0IGNlcnQuY3NyCi0rb3BlbnNzbCB4NTA5IC1yZXEgLXNoYTI1NiAtZGF5 cyAzNjUwIC1leHRlbnNpb25zIHYzX2NlcnQgLWV4dGZpbGUgY2VydC5jb25mIC1pbiBjZXJ0LmNz ciAtQ0EgY2EucGVtIC1DQWtleSBjYS5rZXkgLUNBY3JlYXRlc2VyaWFsIC1vdXQgY2VydC5wZW0K LStvcGVuc3NsIHBrY3MxMiAtZXhwb3J0IC1pbmtleSBjZXJ0LmtleSAtaW4gY2VydC5wZW0gLW5h bWUgbWxkc2FjZXJ0IC1vdXQgY2VydC5wMTIgLXBhc3NvdXQgcGFzczpzZWNyZXQxMgotKwotK29w ZW5zc2wgeDUwOSAtdGV4dCAtaW4gY2VydC5wZW0KLSsKLSsKLSsKLSsjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKLSsjIyMjIyMgR0VORVJBVEUgQ0xJRU5UIENFUlQgIyMjIyMj IyMKLSsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSsKLStlY2hvICIKLStb IHJlcSBdCi0rZGlzdGluZ3Vpc2hlZF9uYW1lID0gcmVxX2Rpc3Rpbmd1aXNoZWRfbmFtZQotK3Bv bGljeSAgICAgICAgICAgICA9IHBvbGljeV9tYXRjaAotK3g1MDlfZXh0ZW5zaW9ucyAgICAgPSB2 M19jZXJ0Ci0rCi0rIyBGb3IgdGhlIGNlcnQgcG9saWN5Ci0rWyBwb2xpY3lfbWF0Y2ggXQotK2Nv dW50cnlOYW1lICAgICAgICAgICAgID0gb3B0aW9uYWwKLStzdGF0ZU9yUHJvdmluY2VOYW1lICAg ICA9IG9wdGlvbmFsCi0rb3JnYW5pemF0aW9uTmFtZSAgICAgICAgPSBvcHRpb25hbAotK29yZ2Fu aXphdGlvbmFsVW5pdE5hbWUgID0gb3B0aW9uYWwKLStjb21tb25OYW1lICAgICAgICAgICAgICA9 IHN1cHBsaWVkCi0rZW1haWxBZGRyZXNzICAgICAgICAgICAgPSBvcHRpb25hbAotKwotK1sgcmVx X2Rpc3Rpbmd1aXNoZWRfbmFtZSBdCi0rY291bnRyeU5hbWUJCQk9IENvdW50cnkgTmFtZSAoMiBs ZXR0ZXIgY29kZSkKLStjb3VudHJ5TmFtZV9kZWZhdWx0CQk9IEZSCi0rY291bnRyeU5hbWVfbWlu CQkJPSAyCi0rY291bnRyeU5hbWVfbWF4CQkJPSAyCi0rCi0rc3RhdGVPclByb3ZpbmNlTmFtZQkJ PSBTdGF0ZSBvciBQcm92aW5jZSBOYW1lIChmdWxsIG5hbWUpCi0rCi0rbG9jYWxpdHlOYW1lCQkJ PSBMb2NhbGl0eSBOYW1lIChlZywgY2l0eSkKLSsKLSswLm9yZ2FuaXphdGlvbk5hbWUJCT0gT3Jn YW5pemF0aW9uIE5hbWUgKGVnLCBjb21wYW55KQotKzAub3JnYW5pemF0aW9uTmFtZV9kZWZhdWx0 CT0gdGVzdC1NTC1EU0EKLSsKLStvcmdhbml6YXRpb25hbFVuaXROYW1lCQk9IE9yZ2FuaXphdGlv bmFsIFVuaXQgTmFtZSAoZWcsIHNlY3Rpb24pCi0rI29yZ2FuaXphdGlvbmFsVW5pdE5hbWVfZGVm YXVsdAk9Ci0rCi0rY29tbW9uTmFtZQkJCT0gQ29tbW9uIE5hbWUgKGUuZy4gc2VydmVyIEZRRE4g b3IgWU9VUiBuYW1lKQotK2NvbW1vbk5hbWVfbWF4CQkJPSA2NAotKwotKwotK1sgdjNfY2VydCBd Ci0rYmFzaWNDb25zdHJhaW50cyA9IGNyaXRpY2FsLENBOmZhbHNlCi0rc3ViamVjdEFsdE5hbWU9 RE5TOmBob3N0bmFtZWAKLStrZXlVc2FnZT1kaWdpdGFsU2lnbmF0dXJlLCBub25SZXB1ZGlhdGlv biwga2V5RW5jaXBoZXJtZW50LCBkYXRhRW5jaXBoZXJtZW50Ci0rI25zQ29tbWVudCA9ICJPcGVu U1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZSIKLStleHRlbmRlZEtleVVzYWdlPWNsaWVudEF1dGgK LStuc0NlcnRUeXBlPWNsaWVudCwgc2VydmVyCi0rIiA+Y2xpZW50LmNvbmYKLSsKLStvcGVuc3Ns IGdlbnBrZXkgLWFsZ29yaXRobSBNTC1EU0EtNjUgLW91dCBjbGllbnQua2V5Ci0rb3BlbnNzbCBy ZXEgLW5ldyAtc2hhMjU2IC1rZXkgY2xpZW50LmtleSAtbm9kZXMgIC1jb25maWcgY2xpZW50LmNv bmYgLXN1YmogIi9DTj1gaG9zdG5hbWVgL089Y2xpZW50LXRlc3QtTUwtRFNBL0M9RlIiIC1vdXQg Y2xpZW50LmNzcgotK29wZW5zc2wgeDUwOSAtcmVxIC1zaGEyNTYgLWRheXMgMzY1MCAtZXh0ZW5z aW9ucyB2M19jZXJ0IC1leHRmaWxlIGNsaWVudC5jb25mIC1pbiBjbGllbnQuY3NyIC1DQSBjYS5w ZW0gLUNBa2V5IGNhLmtleSAtQ0FjcmVhdGVzZXJpYWwgLW91dCBjbGllbnQucGVtCi0rb3BlbnNz bCBwa2NzMTIgLWV4cG9ydCAtaW5rZXkgY2xpZW50LmtleSAtaW4gY2xpZW50LnBlbSAtbmFtZSBt bGRzYWNlcnQyIC1vdXQgY2xpZW50LnAxMiAtcGFzc291dCBwYXNzOnNlY3JldDEyCi0rCi0rb3Bl bnNzbCB4NTA5IC10ZXh0IC1pbiBjbGllbnQucGVtCi0rCi0rCi0rIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKLSsjIyMjIyMgSU5TVEFMTCBDRVJUUyAjIyMjIyMjIwotKyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCi0rCi0rY2VydGRiZGlyPSRQUkVGSVgvZXRjL2RpcnNydi9zbGFw ZC0kaW5zdAotK3JtIC1mICRjZXJ0ZGJkaXIvY2VydDkuZGIgJGNlcnRkYmRpci9rZXk0LmRiCi0r Y2VydHV0aWwgLU4gLWQgJGNlcnRkYmRpciAtZiAkY2VydGRiZGlyL3B3ZGZpbGUudHh0Ci0rCi0r Y2VydHV0aWwgLUEgLW4gU2VsZi1TaWduZWQtQ0EgLXQgQ1QsLCAtZiAkY2VydGRiZGlyL3B3ZGZp bGUudHh0IC1kICRjZXJ0ZGJkaXIgLWEgLWkgY2EucGVtCi0rY2VydHV0aWwgLUEgLW4gQ2xpZW50 LUNlcnQgLXQgdSwsIC1mICRjZXJ0ZGJkaXIvcHdkZmlsZS50eHQgLWQgJGNlcnRkYmRpciAtYSAt aSBjbGllbnQucGVtCi0rCi0rZHNjdGwgJGluc3QgdGxzIGltcG9ydC1zZXJ2ZXIta2V5LWNlcnQg Y2VydC5wZW0gY2VydC5rZXkKLSsKLStkc2N0bCAkaW5zdCByZXN0YXJ0Ci0rCi0rCi0rIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIwotKyMjIyMjIyBURVNUIENFUlQgIyMjIyMjIyMKLSsjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCi0rZXhwb3J0IExEQVBUTFNfQ0FDRVJUPSRQV0QvY2EucGVtCi0r ZXhwb3J0IExEQVBUTFNfQ0VSVD0kUFdEL2NsaWVudC5wZW0KLStleHBvcnQgTERBUFRMU19LRVk9 JFBXRC9jbGllbnQua2V5Ci0rCi0rbGRhcHNlYXJjaCAteCAtSCAkdXJsIC1EICIkcm9vdGRuIiAt dyAiJHJvb3RwdyIgLWIgIiIgLXMgYmFzZQotK2xkYXBzZWFyY2ggLVkgZXh0ZXJuYWwgLUggJHVy bCAtYiAiIiAtcyBiYXNlCi0rIiIiCi0rCi0rQHB5dGVzdC5tYXJrLnNraXBpZihycG1faXNfb2xk ZXIoIm9wZW5zc2wiLCAiMy41IiksIHJlYXNvbj0iT3BlblNTTCB0b28gb2xkIHRvIHN1cHBvcnQg UFFDIikKLStAcHl0ZXN0Lm1hcmsuc2tpcGlmKHJwbV9pc19vbGRlcigibnNzIiwgIjMuMTE5LjEi KSwgcmVhc29uPSJOU1MgdG9vIG9sZCB0byBzdXBwb3J0IFBRQyIpCi0rZGVmIHRlc3RfbWxkc2Eo dG9wbyk6Ci0rICAgICIiIlRlc3QgdXNpbmcgTUwtRFNBIENlcnRpZmljYXRlIC0gKFBRQykKLSsK LSsgICAgOmlkOiA4N2ZiMTllZi02NzJkLTRmYTctOTM0ZC1kZmI0Mzk3ZjIzMTIKLSsgICAgOnNl dHVwOiBTdGFuZGFsb25lIEluc3RhbmNlCi0rICAgIDpzdGVwczoKLSsgICAgICAgIDEuIENvbmZp Z3VyZSB0aGUgY2VydG1hcAotKyAgICAgICAgMi4gQ3JlYXRlIHVzZXIgbWFwcGVkIHdpdGggdGhl Y2xpZW50IGNlcnRpZmljYXRlCi0rICAgICAgICAzLiBHZW5lcmF0ZSB0aGUgdGVzdCBzY3JpcHQK LSsgICAgICAgIDQuIFJ1biB0aGUgdGVzdCBzY3JpcHQKLSsgICAgICAgIDUuIENoZWNrIHRoYXQg bGRhcHNlYXJjaCByZXR1cm5lZCB0aGUgbmFtaW5nY29udGV4dAotKyAgICA6ZXhwZWN0ZWRyZXN1 bHRzOgotKyAgICAgICAgMS4gTm8gZXJyb3IKLSsgICAgICAgIDIuIE5vIGVycm9yCi0rICAgICAg ICAzLiBObyBlcnJvcgotKyAgICAgICAgNC4gTm8gZXJyb3IgYW5kIGV4aXQgY29kZSBzaG91bGQg YmUgMAotKyAgICAgICAgNS4gbmFtaW5nY29udGV4dCBzaG91bGQgYmUgaW4gdGhlIHNjcmlwdCBv dXRwdXQKLSsgICAgIiIiCi0rCi0rICAgIGluc3QgPSB0b3BvLnN0YW5kYWxvbmUKLSsgICAgaW5z dC5lbmFibGVfdGxzKCkKLSsKLSsgICAgY20gPSBDZXJ0bWFwTGVnYWN5KGluc3QpCi0rICAgIGNl cnRtYXBzID0gY20ubGlzdCgpCi0rICAgIGNlcnRtYXBzWydkZWZhdWx0J10udXBkYXRlKHsnRE5D b21wcyc6IE5vbmUsICdDbWFwTGRhcEF0dHInOiAnZGVzY3JpcHRpb24nfSkKLSsgICAgY20uc2V0 KGNlcnRtYXBzKQotKwotKyAgICBjZXJ0X2RuID0gZidDPUZSLE89Y2xpZW50LXRlc3QtTUwtRFNB LENOPXtzb2NrZXQuZ2V0aG9zdG5hbWUoKX0nCi0rICAgIGRuID0gZid1aWQ9dGVzdF91c2VyLG91 PXBlb3BsZSx7REVGQVVMVF9TVUZGSVh9JwotKyAgICBVc2VyQWNjb3VudChpbnN0LCBkbj1kbiku Y3JlYXRlKCBwcm9wZXJ0aWVzPSB7Ci0rICAgICAgICAgICAgJ3VpZCc6ICd0ZXN0X3VzZXInLAot KyAgICAgICAgICAgICdjbic6ICdUZXN0IHVzZXInLAotKyAgICAgICAgICAgICdzbic6ICdUZXN0 IHVzZXInLAotKyAgICAgICAgICAgICd1aWROdW1iZXInOiAnOTk5OTgnLAotKyAgICAgICAgICAg ICdnaWROdW1iZXInOiAnOTk5OTgnLAotKyAgICAgICAgICAgICdob21lRGlyZWN0b3J5JzogJy92 YXIvZW1wdHknLAotKyAgICAgICAgICAgICdsb2dpblNoZWxsJzogJy9iaW4vZmFsc2UnLAotKyAg ICAgICAgICAgICdkZXNjcmlwdGlvbic6IGNlcnRfZG4gfSkKLSsKLSsgICAgdG1wZGlyX2t3YXJn cyA9IHt9Ci0rICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDEyKToKLSsgICAgICAgIHRt cGRpcl9rd2FyZ3NbJ2RlbGV0ZSddID0gbm90IERFQlVHR0lORwotKyAgICB3aXRoIFRlbXBvcmFy eURpcmVjdG9yeSgqKnRtcGRpcl9rd2FyZ3MpIGFzIGRpcjoKLSsgICAgICAgIHNjcmlwdG5hbWUg PSBmIntkaXJ9L2RvaXQiCi0rICAgICAgICBkID0gewotKyAgICAgICAgICAgICdkaXInOiBkaXIs Ci0rICAgICAgICAgICAgJ2luc3RuYW1lJzogaW5zdC5zZXJ2ZXJpZCwKLSsgICAgICAgICAgICAn dXJsJzogZiJsZGFwczovL2xvY2FsaG9zdDp7aW5zdC5zc2xwb3J0fSIsCi0rICAgICAgICAgICAg J3Jvb3Rkbic6IEROX0RNLAotKyAgICAgICAgICAgICdyb290cHcnOiBQV19ETSwKLSsgICAgICAg IH0KLSsgICAgICAgIHdpdGggb3BlbihzY3JpcHRuYW1lLCAndycpIGFzIGY6Ci0rICAgICAgICAg ICAgZi53cml0ZShzY3JpcHRfY29udGVudC5mb3JtYXQoKipkKSkKLSsgICAgICAgIHJlcyA9IHN1 YnByb2Nlc3MucnVuKCgnL2Jpbi9iYXNoJywgc2NyaXB0bmFtZSksIHN0ZG91dD1zdWJwcm9jZXNz LlBJUEUsIHN0ZGVycj1zdWJwcm9jZXNzLlNURE9VVCwgZW5jb2Rpbmc9J3V0Zi04JykKLSsgICAg ICAgIGFzc2VydCByZXMKLSsgICAgICAgIGxvZy5pbmZvKHJlcy5zdGRvdXQpCi0rICAgICAgICBy ZXMuY2hlY2tfcmV0dXJuY29kZSgpCi0rICAgICAgICAjIElmIGxkYXBzZWFyY2ggaXMgc3VjY2Vz c2Z1bCB0aGVuIGRlZmF1bHRuYW1pbmdjb250ZXh0IHNob3VsZCBiZSBpbiByZXMuc3Rkb3V0Ci0r ICAgICAgICBhc3NlcnQgImRlZmF1bHRuYW1pbmdjb250ZXh0IiBpbiByZXMuc3Rkb3V0Ci0rCi0r Ci0raWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSsgICAgIyBSdW4gaXNvbGF0ZWQKLSsgICAg IyAtcyBmb3IgREVCVUcgbW9kZQotKyAgICBDVVJSRU5UX0ZJTEUgPSBvcy5wYXRoLnJlYWxwYXRo KF9fZmlsZV9fKQotKyAgICBweXRlc3QubWFpbihbIi1zIiwgQ1VSUkVOVF9GSUxFXSkKLWRpZmYg LS1naXQgYS9sZGFwL3NlcnZlcnMvc2xhcGQvc3NsLmMgYi9sZGFwL3NlcnZlcnMvc2xhcGQvc3Ns LmMKLWluZGV4IGE5YzE3ZWY0Mi4uMDUzZGI1NDI0IDEwMDY0NAotLS0tIGEvbGRhcC9zZXJ2ZXJz L3NsYXBkL3NzbC5jCi0rKysgYi9sZGFwL3NlcnZlcnMvc2xhcGQvc3NsLmMKLUBAIC0xNjksNiAr MTY5LDIwIEBAIFBSQm9vbCBlbmFibGVUTFMxID0gUFJfVFJVRTsKLSAvKiBDQSBjZXJ0IHBlbSBm aWxlICovCi0gc3RhdGljIGNoYXIgKkNBQ2VydFBlbUZpbGUgPSBOVUxMOwotIAotK3N0YXRpYyBj b25zdCBzdHJ1Y3QgewotKyAgICBLZXlUeXBlIGt0OwotKyAgICBjb25zdCBjaGFyICpzaG9ydG5h bWU7Ci0rICAgIGNvbnN0IGNoYXIgKmZ1bGxuYW1lOwotK30gc3VwcG9ydGVkX2tleV90eXBlc1td ID0gewotKyAgICB7IHJzYUtleSwgIlJTQSIsICJSaXZlc3TigJNTaGFtaXLigJNBZGxlbWFuIiB9 LAotKyAgICB7IGVjS2V5LCAiRUMiLCAiRWxsaXB0aWMgQ3VydmUiIH0sCi0rI2lmZGVmIE1BWF9N TF9EU0FfUFJJVkFURV9LRVlfTEVOCi0rICAgIHsgbWxkc2FLZXksICJNTC1EU0EiLCAiTW9kdWxl LUxhdHRpY2UtQmFzZWQgRGlnaXRhbCBTaWduYXR1cmUgQWxnb3JpdGhtIChwb3N0LXF1YW50dW0p IiB9LAotKyNlbmRpZgotKyAgICB7IDAgfQotK307Ci0rCi0rCi0gLyogaGVscGVyIGZ1bmN0aW9u cyBmb3Igb3BlbmxkYXAgdXBkYXRlLiAqLwotIHN0YXRpYyBpbnQgc2xhcGRfZXh0cmFjdF9jZXJ0 KFNsYXBpX0VudHJ5ICplbnRyeSwgaW50IGlzQ0EpOwotIHN0YXRpYyBpbnQgc2xhcGRfZXh0cmFj dF9rZXkoU2xhcGlfRW50cnkgKmVudHJ5LCBjaGFyICp0b2tlbiwgUEsxMVNsb3RJbmZvICpzbG90 KTsKLUBAIC03MTgsOSArNzMyLDMxIEBAIFNTTFBMQ1lfSW5zdGFsbCh2b2lkKQotIHsKLSAKLSAg ICAgU0VDU3RhdHVzIHMgPSAwOwotKyNpZmRlZiBNQVhfTUxfRFNBX1BSSVZBVEVfS0VZX0xFTgot KyAgICBpbnQgZmxhZ3MgPSBOU1NfVVNFX0FMR19JTl9TSUdOQVRVUkUgfCBOU1NfVVNFX0FMR19J Tl9TU0w7Ci0rICAgIHN0YXRpYyBjb25zdCBTRUNPaWRUYWcgb2lkc1tdID0gewotKyAgICAgICAg U0VDX09JRF9NTF9EU0FfNDQsCi0rICAgICAgICBTRUNfT0lEX01MX0RTQV82NSwKLSsgICAgICAg IFNFQ19PSURfTUxfRFNBXzg3LAotKyAgICB9OwotKyNlbmRpZgotIAotICAgICBzID0gTlNTX1Nl dERvbWVzdGljUG9saWN5KCk7Ci0gCi0rI2lmZGVmIE1BWF9NTF9EU0FfUFJJVkFURV9LRVlfTEVO Ci0rICAgIC8qIFNob3VsZCByZWx5IG9uIHRoZSBjcnlwdG8gbW9kdWxlIHBvbGljeSBpbiBGSVBT IG1vZGUgKi8KLSsgICAgaWYgKCFzbGFwZF9wazExX2lzRklQUygpKSB7Ci0rICAgICAgICAvKiBT ZXQgZXhwbGljaXRseSBQUUMgYWxnb3JpdGhtIHBvbGljeSBpZiBpdCBpcyBub3Qgc2V0IGJ5IGRl ZmF1bHQgKi8KLSsgICAgICAgIGZvciAoc2l6ZV90IGk9MDsgcyA9PSBTRUNTdWNjZXNzICYmIGkg PCBQUl9BUlJBWV9TSVpFKG9pZHMpOyBpKyspIHsKLSsgICAgICAgICAgICBpbnQgb2ZsYWdzID0g MDsKLSsgICAgICAgICAgICAodm9pZCkgTlNTX0dldEFsZ29yaXRobVBvbGljeShvaWRzW2ldLCAm b2ZsYWdzKTsKLSsgICAgICAgICAgICBpZiAoKG9mbGFncyAmIGZsYWdzKSAhPSBmbGFncykgewot KyAgICAgICAgICAgICAgICBzID0gTlNTX1NldEFsZ29yaXRobVBvbGljeShvaWRzW2ldLCBmbGFn cywgMCk7Ci0rICAgICAgICAgICAgfQotKyAgICAgICAgfQotKyAgICB9Ci0rI2VuZGlmCi0rCi0g ICAgIHJldHVybiBzID8gUFJfRkFJTFVSRSA6IFBSX1NVQ0NFU1M7Ci0gfQotIAotQEAgLTE2NDAs NyArMTY3Niw3IEBAIHNsYXBkX3NzbF9pbml0MihQUkZpbGVEZXNjICoqZmQsIGludCBzdGFydFRM UykKLSAgICAgLyoKLSAgICAgICogTm93LCBnZXQgdGhlIGNvbXBsZXRlIGxpc3Qgb2YgY2lwaGVy IGZhbWlsaWVzLiBFYWNoIGZhbWlseQotICAgICAgKiBoYXMgYSB0b2tlbiBuYW1lIGFuZCBwZXJz b25hbGl0eSBuYW1lIHdoaWNoIHdlJ2xsIHVzZSB0byBmaW5kCi0tICAgICAqIGFwcHJvcHJpYXRl IGtleXMgYW5kIGNlcnRzLCBhbmQgY2FsbCBTU0xfQ29uZmlnU2VjdXJlU2VydmVyCi0rICAgICAq IGFwcHJvcHJpYXRlIGtleXMgYW5kIGNlcnRzLCBhbmQgY2FsbCBTU0xfQ29uZmlnU2VydmVyQ2Vy dAotICAgICAgKiB3aXRoLgotICAgICAgKi8KLSAKLUBAIC0xNzU5LDggKzE3OTUsNiBAQCBzbGFw ZF9zc2xfaW5pdDIoUFJGaWxlRGVzYyAqKmZkLCBpbnQgc3RhcnRUTFMpCi0gICAgICAgICAgICAg ICAgIH0KLSAKLSAgICAgICAgICAgICAgICAgaWYgKFNFQ1N1Y2Nlc3MgPT0gcnYpIHsKLS0gICAg ICAgICAgICAgICAgICAgIFNTTEtFQVR5cGUgY2VydEtFQTsKLS0KLSAgICAgICAgICAgICAgICAg ICAgIC8qIElmIHdlIHdhbnQgd2VhayBkaCBwYXJhbXMsIGZsYWcgaXQgb24gdGhlIHNvY2tldCBu b3chICovCi0gICAgICAgICAgICAgICAgICAgICBydiA9IFNTTF9PcHRpb25TZXQoKmZkLCBTU0xf RU5BQkxFX1NFUlZFUl9ESEUsIFBSX1RSVUUpOwotICAgICAgICAgICAgICAgICAgICAgaWYgKHJ2 ICE9IFNFQ1N1Y2Nlc3MpIHsKLUBAIC0xNzc0LDExICsxODA4LDEwIEBAIHNsYXBkX3NzbF9pbml0 MihQUkZpbGVEZXNjICoqZmQsIGludCBzdGFydFRMUykKLSAgICAgICAgICAgICAgICAgICAgICAg ICB9Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gCi0tICAgICAgICAgICAgICAgICAgICBjZXJ0 S0VBID0gTlNTX0ZpbmRDZXJ0S0VBVHlwZShjZXJ0KTsKLS0gICAgICAgICAgICAgICAgICAgIHJ2 ID0gU1NMX0NvbmZpZ1NlY3VyZVNlcnZlcigqZmQsIGNlcnQsIGtleSwgY2VydEtFQSk7Ci0rICAg ICAgICAgICAgICAgICAgICBydiA9IFNTTF9Db25maWdTZXJ2ZXJDZXJ0KCpmZCwgY2VydCwga2V5 LCBOVUxMLCAwKTsKLSAgICAgICAgICAgICAgICAgICAgIGlmIChTRUNTdWNjZXNzICE9IHJ2KSB7 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JDb2RlID0gUFJfR2V0RXJyb3IoKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICBzbGFwZF9TU0xfd2FybigiQ29uZmlnU2VjdXJlU2VydmVy OiAiCi0rICAgICAgICAgICAgICAgICAgICAgICAgc2xhcGRfU1NMX3dhcm4oIlNTTF9Db25maWdT ZXJ2ZXJDZXJ0OiAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNl cnZlciBrZXkvY2VydGlmaWNhdGUgaXMgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJiYWQgZm9yIGNlcnQgJXMgb2YgZmFtaWx5ICVzICgiIFNMQVBJX0NPTVBPTkVO VF9OQU1FX05TUFIgIiBlcnJvciAlZCAtICVzKSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY2VydF9uYW1lLCAqZmFtaWx5LCBlcnJvckNvZGUsCi1AQCAtMjY2Myw2 ICsyNjk2LDM4IEBAIGJhaWw6Ci0gICAgIHJldHVybiBydjsKLSB9Ci0gCi0rLyogSGVscGVyIGZv ciBnZXRfc3VwcG9ydGVkX2tleV90eXBlICovCi0rc3RhdGljIGNoYXIgKgotK2J1Zl9hZGRfc3Ry KGNoYXIgKmJ1ZiwgY2hhciAqYnVmZW5kLCBjb25zdCBjaGFyICpzdHIpCi0rewotKyAgICAvKiBi dWZlbmQgaXMgc2l6ZW9mKGJ1ZiktNCAodG8gYXZvaWQgb3ZlcmZsb3cgd2l0aCAuLi4pICovCi0r ICAgIGNoYXIgKnJldCA9IGJ1ZitzdHJsZW4oc3RyKTsKLSsgICAgaWYgKHJldCA+IGJ1ZmVuZCkg ewotKyAgICAgICAgcmV0ID0gYnVmZW5kOwotKyAgICAgICAgc3RyY3B5KGJ1ZiwgIi4uLiIpOwot KyAgICB9IGVsc2UgewotKyAgICAgICAgc3RyY3B5KGJ1Ziwgc3RyKTsKLSsgICAgfQotKyAgICBy ZXR1cm4gcmV0OwotK30KLSsKLStzdGF0aWMgdm9pZAotK2dldF9zdXBwb3J0ZWRfa2V5X3R5cGVf bmFtZXMoY2hhciAqYnVmLCBzaXplX3QgYnVmc2l6ZSkKLSt7Ci0rICAgIGNoYXIgKmJ1ZmVuZCA9 IGJ1ZiArIGJ1ZnNpemUgLSA0OwotKyAgICBmb3IgKHNpemVfdCBpPTA7IHN1cHBvcnRlZF9rZXlf dHlwZXNbaV0ua3Q7IGkrKykgewotKyAgICAgICAgaWYgKGk+MCkgewotKyAgICAgICAgICAgIGlm IChzdXBwb3J0ZWRfa2V5X3R5cGVzW2krMV0ua3QgPT0gMCkgewotKyAgICAgICAgICAgICAgICAv KiBMYXN0IHN1cHBvcnRlZCBrZXkgdHlwZSAqLwotKyAgICAgICAgICAgICAgICBidWYgPSBidWZf YWRkX3N0cihidWYsIGJ1ZmVuZCwgIiBvciAiKTsKLSsgICAgICAgICAgICB9IGVsc2UgewotKyAg ICAgICAgICAgICAgICBidWYgPSBidWZfYWRkX3N0cihidWYsIGJ1ZmVuZCwgIiwgIik7Ci0rICAg ICAgICAgICAgfQotKyAgICAgICAgfQotKyAgICAgICAgYnVmID0gYnVmX2FkZF9zdHIoYnVmLCBi dWZlbmQsIHN1cHBvcnRlZF9rZXlfdHlwZXNbaV0uc2hvcnRuYW1lKTsKLSsgICAgfQotK30KLSsK LSAvKgotICAqIEJvcnJvd2VkIGZyb20ga2V5dXRpbC5jIChjcnlwdG8tdXRpbCkKLSAgKgotQEAg LTI3MjMsMTAgKzI3ODgsMjAgQEAgZXh0cmFjdEtleXNBbmRTdWJqZWN0KAotICAgICB9Ci0gCi0g ICAgIGtleXR5cGUgPSAoKnByaXZrZXkpLT5rZXlUeXBlOwotLSAgICBpZiAgKGtleXR5cGUgIT0g cnNhS2V5ICYmIGtleXR5cGUgIT0gZWNLZXkpIHsKLS0gICAgICAgIHNsYXBpX2xvZ19lcnIoU0xB UElfTE9HX0VSUiwgImV4dHJhY3RLZXlzQW5kU3ViamVjdCIsCi0tICAgICAgICAgICAgICAgICAg ICAgICJVbmV4cGVjdGVkIGtleSBhbGdvcnl0aG0gaW4gY2VydGlmaWNhdGU6ICVzLiBPbmx5IHJz YSBhbmQgZWMga2V5cyBhcmUgc3VwcG9ydGVkLlxuIiwgbmlja25hbWUpOwotLSAgICAgICAgZ290 byBiYWlsOwotKyAgICBmb3IgKHNpemVfdCBpPTA7IDtpKyspIHsKLSsgICAgICAgIEtleVR5cGUg a3QgPSBzdXBwb3J0ZWRfa2V5X3R5cGVzW2ldLmt0OwotKyAgICAgICAgaWYgKGt0ID09IGtleXR5 cGUgJiYga2V5dHlwZSAhPSAwKSB7Ci0rICAgICAgICAgICAgLyogU3RvcCBsb29waW5nIGlmIHRo ZSBrZXkgdHlwZSBpcyBzdXBwb3J0ZWQgKi8KLSsgICAgICAgICAgICBicmVhazsKLSsgICAgICAg IH0KLSsgICAgICAgIGlmIChrdCA9PSAwKSB7Ci0rICAgICAgICAgICAgLyogTm8gc3VwcG9ydGVk IGtleSB0eXBlIGhhdmUgYmVlbiBmb3VuZC4gKi8KLSsgICAgICAgICAgICBjaGFyIHNrdG5hbWVz WzEwMF0gPSAiIjsKLSsgICAgICAgICAgICBnZXRfc3VwcG9ydGVkX2tleV90eXBlX25hbWVzKHNr dG5hbWVzLCBzaXplb2Ygc2t0bmFtZXMpOwotKyAgICAgICAgICAgIHNsYXBpX2xvZ19lcnIoU0xB UElfTE9HX0VSUiwgImV4dHJhY3RLZXlzQW5kU3ViamVjdCIsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAiVW5leHBlY3RlZCBrZXkgYWxnb3JpdGhtIGluIGNlcnRpZmljYXRlOiAlcy4gT25s eSAlcyBhcmUgc3VwcG9ydGVkLlxuIiwgbmlja25hbWUsIHNrdG5hbWVzKTsKLSsgICAgICAgICAg ICBnb3RvIGJhaWw7Ci0rICAgICAgICB9Ci0gICAgIH0KLSAKLSAgICAgKnN1YmplY3QgPSBDRVJU X0FzY2lpVG9OYW1lKGNlcnQtPnN1YmplY3ROYW1lKTsKLS0tIAotMi41Mi4wCi0KCmRpZmYgLS1n aXQgYS8wMDEzLUJ1bXAtbG9kYXNoLWZyb20tNC4xNy4yMS10by00LjE3LjIzLWluLXNyYy1jb2Nr cGl0LTMucGF0Y2ggYi8wMDEzLUJ1bXAtbG9kYXNoLWZyb20tNC4xNy4yMS10by00LjE3LjIzLWlu LXNyYy1jb2NrcGl0LTMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY3ZDlj OTAuLjAwMDAwMDAKLS0tIGEvMDAxMy1CdW1wLWxvZGFzaC1mcm9tLTQuMTcuMjEtdG8tNC4xNy4y My1pbi1zcmMtY29ja3BpdC0zLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTYgKzAsMCBAQAot RnJvbSA0MDY4ZjY4YmVhNzdmNDY2ZjliM2Q4N2M3NjZlYTE0ZDJmMTc1YjE3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQotRnJvbTogImRlcGVuZGFib3RbYm90XSIgPDQ5Njk5MzMzK2RlcGVuZGFi b3RbYm90XUB1c2Vycy5ub3JlcGx5LmdpdGh1Yi5jb20+Ci1EYXRlOiBXZWQsIDIxIEphbiAyMDI2 IDE5OjU4OjQ2IC0wODAwCi1TdWJqZWN0OiBbUEFUQ0hdIEJ1bXAgbG9kYXNoIGZyb20gNC4xNy4y MSB0byA0LjE3LjIzIGluCi0gL3NyYy9jb2NrcGl0LzM4OS1jb25zb2xlICgjNzIwMykKLQotQnVt cHMgW2xvZGFzaF0oaHR0cHM6Ly9naXRodWIuY29tL2xvZGFzaC9sb2Rhc2gpIGZyb20gNC4xNy4y MSB0byA0LjE3LjIzLgotLSBbUmVsZWFzZSBub3Rlc10oaHR0cHM6Ly9naXRodWIuY29tL2xvZGFz aC9sb2Rhc2gvcmVsZWFzZXMpCi0tIFtDb21taXRzXShodHRwczovL2dpdGh1Yi5jb20vbG9kYXNo L2xvZGFzaC9jb21wYXJlLzQuMTcuMjEuLi40LjE3LjIzKQotCi0tLS0KLXVwZGF0ZWQtZGVwZW5k ZW5jaWVzOgotLSBkZXBlbmRlbmN5LW5hbWU6IGxvZGFzaAotICBkZXBlbmRlbmN5LXZlcnNpb246 IDQuMTcuMjMKLSAgZGVwZW5kZW5jeS10eXBlOiBpbmRpcmVjdAotLi4uCi0KLVNpZ25lZC1vZmYt Ynk6IGRlcGVuZGFib3RbYm90XSA8c3VwcG9ydEBnaXRodWIuY29tPgotQ28tYXV0aG9yZWQtYnk6 IGRlcGVuZGFib3RbYm90XSA8NDk2OTkzMzMrZGVwZW5kYWJvdFtib3RdQHVzZXJzLm5vcmVwbHku Z2l0aHViLmNvbT4KLS0tLQotIHNyYy9jb2NrcGl0LzM4OS1jb25zb2xlL3BhY2thZ2UtbG9jay5q c29uIHwgMTIgKysrKysrLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwg NiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9jb2NrcGl0LzM4OS1jb25zb2xlL3Bh Y2thZ2UtbG9jay5qc29uIGIvc3JjL2NvY2twaXQvMzg5LWNvbnNvbGUvcGFja2FnZS1sb2NrLmpz b24KLWluZGV4IDBhYTViYmJiOS4uMjNmYWVmNjJmIDEwMDY0NAotLS0tIGEvc3JjL2NvY2twaXQv Mzg5LWNvbnNvbGUvcGFja2FnZS1sb2NrLmpzb24KLSsrKyBiL3NyYy9jb2NrcGl0LzM4OS1jb25z b2xlL3BhY2thZ2UtbG9jay5qc29uCi1AQCAtNDgzMyw5ICs0ODMzLDkgQEAKLSAgICAgICB9Ci0g ICAgIH0sCi0gICAgICJub2RlX21vZHVsZXMvbG9kYXNoIjogewotLSAgICAgICJ2ZXJzaW9uIjog IjQuMTcuMjEiLAotLSAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9y Zy9sb2Rhc2gvLS9sb2Rhc2gtNC4xNy4yMS50Z3oiLAotLSAgICAgICJpbnRlZ3JpdHkiOiAic2hh NTEyLXYya0RFZTU3bGVjVHVsYURJdU5UUHkzUnk0Z0xHSjZaMU8zdkUxa3JnWFpOcnNRK0xGVEdI VnhWamNYUHMxN0xoYlpWR2VkQUp2OFhaMXR2ajVGdlNnPT0iCi0rICAgICAgInZlcnNpb24iOiAi NC4xNy4yMyIsCi0rICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3Jn L2xvZGFzaC8tL2xvZGFzaC00LjE3LjIzLnRneiIsCi0rICAgICAgImludGVncml0eSI6ICJzaGE1 MTItTGdWVE1wUXRJb3BDaTc5U0plRGlQMFRmV2k1Q05FYy9ML2FSZFRoM3lJdm1aWFRuaGVXcEtq U1pobnZNbDhpWGJDMXRGZzlnZEhIRE1Mb1Y3Q25HK3c9PSIKLSAgICAgfSwKLSAgICAgIm5vZGVf bW9kdWxlcy9sb2Rhc2gubWVyZ2UiOiB7Ci0gICAgICAgInZlcnNpb24iOiAiNC42LjIiLAotQEAg LTExMDg3LDkgKzExMDg3LDkgQEAKLSAgICAgICB9Ci0gICAgIH0sCi0gICAgICJsb2Rhc2giOiB7 Ci0tICAgICAgInZlcnNpb24iOiAiNC4xNy4yMSIsCi0tICAgICAgInJlc29sdmVkIjogImh0dHBz Oi8vcmVnaXN0cnkubnBtanMub3JnL2xvZGFzaC8tL2xvZGFzaC00LjE3LjIxLnRneiIsCi0tICAg ICAgImludGVncml0eSI6ICJzaGE1MTItdjJrREVlNTdsZWNUdWxhREl1TlRQeTNSeTRnTEdKNlox TzN2RTFrcmdYWk5yc1ErTEZUR0hWeFZqY1hQczE3TGhiWlZHZWRBSnY4WFoxdHZqNUZ2U2c9PSIK LSsgICAgICAidmVyc2lvbiI6ICI0LjE3LjIzIiwKLSsgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6 Ly9yZWdpc3RyeS5ucG1qcy5vcmcvbG9kYXNoLy0vbG9kYXNoLTQuMTcuMjMudGd6IiwKLSsgICAg ICAiaW50ZWdyaXR5IjogInNoYTUxMi1MZ1ZUTXBRdElvcENpNzlTSmVEaVAwVGZXaTVDTkVjL0wv YVJkVGgzeUl2bVpYVG5oZVdwS2pTWmhudk1sOGlYYkMxdEZnOWdkSEhETUxvVjdDbkcrdz09Igot ICAgICB9LAotICAgICAibG9kYXNoLm1lcmdlIjogewotICAgICAgICJ2ZXJzaW9uIjogIjQuNi4y IiwKLS0tIAotMi41Mi4wCi0KCmRpZmYgLS1naXQgYS8wMDE0LUlzc3VlLTcxOTgtV2ViLWNvbnNv bGUtZG9lc24tdC1zaG93LXN1Yi1zdWZmaXgtd2hlbi0ucGF0Y2ggYi8wMDE0LUlzc3VlLTcxOTgt V2ViLWNvbnNvbGUtZG9lc24tdC1zaG93LXN1Yi1zdWZmaXgtd2hlbi0ucGF0Y2gKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJkMmI2M2UuLjAwMDAwMDAKLS0tIGEvMDAxNC1Jc3N1ZS03 MTk4LVdlYi1jb25zb2xlLWRvZXNuLXQtc2hvdy1zdWItc3VmZml4LXdoZW4tLnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsNTE3ICswLDAgQEAKLUZyb20gM2ZmMjUzYWY3NmRmMDdmZTA1MTk0ODE3 OTViN2VkMTU1ZmVmYWE5ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFNpbW9uIFBp Y2h1Z2luIDxzcGljaHVnaUByZWRoYXQuY29tPgotRGF0ZTogRnJpLCAyMyBKYW4gMjAyNiAxNzoz NTo0NSAtMDgwMAotU3ViamVjdDogW1BBVENIXSBJc3N1ZSA3MTk4IC0gV2ViIGNvbnNvbGUgZG9l c24ndCBzaG93IHN1Yi1zdWZmaXggd2hlbgotIHBhcmVudC1zdWZmaXggcG9pbnRzIHRvIGFuIGVu dHJ5ICgjNzIwMikKLQotRGVzY3JpcHRpb246IFRoZSB3ZWIgY29uc29sZSBkb2Vzbid0IHNob3cg c3ViLXN1ZmZpeGVzIHdoZW4gdGhlCi1uc3NsYXBkLXBhcmVudC1zdWZmaXggYXR0cmlidXRlIHBv aW50cyB0byBhbiBlbnRyeSByYXRoZXIgdGhhbiBhIGJhY2tlbmQKLXN1ZmZpeC4KLUZvciBleGFt cGxlLCBjcmVhdGluZyBhIHN1Yi1zdWZmaXggb3U9Zm9vLG91PXBlb3BsZSxkYz1leGFtcGxlLGRj PWNvbQotd2l0aCBwYXJlbnQtc3VmZml4IG91PXBlb3BsZSxkYz1leGFtcGxlLGRjPWNvbSAod2hl cmUgb3U9cGVvcGxlIGlzIGp1c3QgYW4KLWVudHJ5LCBub3QgYSBzdWZmaXgpIHdvdWxkIG5vdCBh cHBlYXIgaW4gdGhlIHdlYiBjb25zb2xlIHRyZWUuCi0KLUZpeDogSW4gYmFja2VuZF9idWlsZF90 cmVlKCkgYW5kIGdldF9zdWJfc3VmZml4ZXMoKSwgdGhlIGNvZGUgb25seSBtYXRjaGVkCi13aGVu IG5zc2xhcGQtcGFyZW50LXN1ZmZpeCBleGFjdGx5IGVxdWFsZWQgYW4gZXhpc3RpbmcgYmFja2Vu ZCBzdWZmaXguCi1Ob3cgaXQgYWxzbyBjaGVja3MgaWYgdGhlIHBhcmVudC1zdWZmaXggaXMgYW4g ZW50cnkgdW5kZXIgdGhlIGN1cnJlbnQKLXN1ZmZpeCAoZW5kcyB3aXRoICxzdWZmaXgpIGFuZCBp cyBub3QgaXRzZWxmIGEgYmFja2VuZCBzdWZmaXguIFRoaXMKLWNvcnJlY3RseSBhdHRhY2hlcyBz dWItc3VmZml4ZXMgdG8gdGhlaXIgY29udGFpbmluZyBzdWZmaXggd2hlbiB0aGUKLXBhcmVudC1z dWZmaXggcG9pbnRzIHRvIGFuIGludGVybWVkaWF0ZSBlbnRyeS4KLQotRml4ZXM6IGh0dHBzOi8v Z2l0aHViLmNvbS8zODlkcy8zODktZHMtYmFzZS9pc3N1ZXMvNzE5OAotCi1SZXZpZXdlZCBieTog QHByb2dpZXIzODkgKFRoYW5rcyEpCi0tLS0KLSAuLi4vc3VpdGVzL2xpYjM4OS9zdWJzdWZmaXhf dHJlZV90ZXN0LnB5ICAgICAgfCAzMTMgKysrKysrKysrKysrKysrKysrCi0gc3JjL2xpYjM4OS9s aWIzODkvYmFja2VuZC5weSAgICAgICAgICAgICAgICAgIHwgIDQ3ICsrLQotIHNyYy9saWIzODkv bGliMzg5L2NsaV9jb25mL2JhY2tlbmQucHkgICAgICAgICB8ICAzNCArLQotIDMgZmlsZXMgY2hh bmdlZCwgMzcwIGluc2VydGlvbnMoKyksIDI0IGRlbGV0aW9ucygtKQotIGNyZWF0ZSBtb2RlIDEw MDY0NCBkaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvbGliMzg5L3N1YnN1ZmZpeF90cmVlX3Rlc3Qu cHkKLQotZGlmZiAtLWdpdCBhL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9saWIzODkvc3Vic3Vm Zml4X3RyZWVfdGVzdC5weSBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9saWIzODkvc3Vic3Vm Zml4X3RyZWVfdGVzdC5weQotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAwMC4u ZmExMGJhNTMwCi0tLS0gL2Rldi9udWxsCi0rKysgYi9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMv bGliMzg5L3N1YnN1ZmZpeF90cmVlX3Rlc3QucHkKLUBAIC0wLDAgKzEsMzEzIEBACi0rIyAtLS0g QkVHSU4gQ09QWVJJR0hUIEJMT0NLIC0tLQotKyMgQ29weXJpZ2h0IChDKSAyMDI2IFJlZCBIYXQs IEluYy4KLSsjIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0rIwotKyMgTGljZW5zZTogR1BMICh2ZXJz aW9uIDMgb3IgYW55IGxhdGVyIHZlcnNpb24pLgotKyMgU2VlIExJQ0VOU0UgZm9yIGRldGFpbHMu Ci0rIyAtLS0gRU5EIENPUFlSSUdIVCBCTE9DSyAtLS0KLSsjCi0raW1wb3J0IGxvZ2dpbmcKLStp bXBvcnQgb3MKLStpbXBvcnQgcHl0ZXN0Ci0rZnJvbSBsaWIzODkudG9wb2xvZ2llcyBpbXBvcnQg dG9wb2xvZ3lfc3QgYXMgdG9wbwotK2Zyb20gbGliMzg5LmJhY2tlbmQgaW1wb3J0IEJhY2tlbmRz Ci0rZnJvbSBsaWIzODkuaWRtLm9yZ2FuaXphdGlvbmFsdW5pdCBpbXBvcnQgT3JnYW5pemF0aW9u YWxVbml0cwotK2Zyb20gbGliMzg5Ll9jb25zdGFudHMgaW1wb3J0IERFRkFVTFRfU1VGRklYCi0r Ci0rcHl0ZXN0bWFyayA9IHB5dGVzdC5tYXJrLnRpZXIxCi0rCi0rbG9nZ2luZy5nZXRMb2dnZXIo X19uYW1lX18pLnNldExldmVsKGxvZ2dpbmcuSU5GTykKLStsb2cgPSBsb2dnaW5nLmdldExvZ2dl cihfX25hbWVfXykKLSsKLSsKLStAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9ImZ1bmN0aW9uIikKLStk ZWYgc2V0dXBfc3Vic3VmZml4X3dpdGhfZW50cnlfcGFyZW50KHRvcG8sIHJlcXVlc3QpOgotKyAg ICAiIiJTZXR1cCBhIHN1Yi1zdWZmaXggd2hvc2UgcGFyZW50LXN1ZmZpeCBwb2ludHMgdG8gYW4g ZW50cnksIG5vdCBhIHN1ZmZpeC4iIiIKLSsgICAgaW5zdCA9IHRvcG8uc3RhbmRhbG9uZQotKwot KyAgICAjIENyZWF0ZSBvdT1wZW9wbGUgZW50cnkgdW5kZXIgdGhlIHJvb3Qgc3VmZml4Ci0rICAg IGxvZy5pbmZvKCJDcmVhdGluZyBvdT1wZW9wbGUsZGM9ZXhhbXBsZSxkYz1jb20gZW50cnkiKQot KyAgICBvdXMgPSBPcmdhbml6YXRpb25hbFVuaXRzKGluc3QsIERFRkFVTFRfU1VGRklYKQotKyAg ICBvdV9wZW9wbGUgPSBvdXMuZ2V0KCdwZW9wbGUnKQotKwotKyAgICAjIENyZWF0ZSBzdWItc3Vm Zml4IHdpdGggcGFyZW50LXN1ZmZpeCBwb2ludGluZyB0byB0aGUgZW50cnkKLSsgICAgbG9nLmlu Zm8oIkNyZWF0aW5nIHN1Yi1zdWZmaXggb3U9Zm9vLG91PXBlb3BsZSxkYz1leGFtcGxlLGRjPWNv bSIpCi0rICAgIGJhY2tlbmRzID0gQmFja2VuZHMoaW5zdCkKLSsgICAgc3Vic3VmZml4X2RuID0g J291PWZvbyxvdT1wZW9wbGUsZGM9ZXhhbXBsZSxkYz1jb20nCi0rICAgIHBhcmVudF9zdWZmaXhf ZG4gPSAnb3U9cGVvcGxlLGRjPWV4YW1wbGUsZGM9Y29tJwotKwotKyAgICBmb29fYmFja2VuZCA9 IGJhY2tlbmRzLmNyZWF0ZShwcm9wZXJ0aWVzPXsKLSsgICAgICAgICdjbic6ICdmb28nLAotKyAg ICAgICAgJ25zc2xhcGQtc3VmZml4Jzogc3Vic3VmZml4X2RuLAotKyAgICAgICAgJ3BhcmVudCc6 IHBhcmVudF9zdWZmaXhfZG4sCi0rICAgIH0pCi0rCi0rICAgICMgQ3JlYXRlIHRoZSBzdWZmaXgg ZW50cnkKLSsgICAgZm9vX291cyA9IE9yZ2FuaXphdGlvbmFsVW5pdHMoaW5zdCwgcGFyZW50X3N1 ZmZpeF9kbikKLSsgICAgZm9vX291ID0gZm9vX291cy5jcmVhdGUocHJvcGVydGllcz17J291Jzog J2Zvbyd9KQotKwotKyAgICBkZWYgY2xlYW51cCgpOgotKyAgICAgICAgbG9nLmluZm8oIkNsZWFu aW5nIHVwIHRlc3QgYmFja2VuZHMgYW5kIGVudHJpZXMiKQotKyAgICAgICAgdHJ5OgotKyAgICAg ICAgICAgIGZvb19vdS5kZWxldGUoKQotKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgot KyAgICAgICAgICAgIGxvZy53YXJuaW5nKGYiRmFpbGVkIHRvIGRlbGV0ZSBmb29fb3U6IHtlfSIp Ci0rICAgICAgICB0cnk6Ci0rICAgICAgICAgICAgZm9vX2JhY2tlbmQuZGVsZXRlKCkKLSsgICAg ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSsgICAgICAgICAgICBsb2cud2FybmluZyhmIkZh aWxlZCB0byBkZWxldGUgZm9vX2JhY2tlbmQ6IHtlfSIpCi0rCi0rICAgIHJlcXVlc3QuYWRkZmlu YWxpemVyKGNsZWFudXApCi0rCi0rICAgIHJldHVybiB7Ci0rICAgICAgICAnaW5zdGFuY2UnOiBp bnN0LAotKyAgICAgICAgJ2JhY2tlbmRzJzogYmFja2VuZHMsCi0rICAgICAgICAnZm9vX2JhY2tl bmQnOiBmb29fYmFja2VuZCwKLSsgICAgICAgICdvdV9wZW9wbGUnOiBvdV9wZW9wbGUsCi0rICAg ICAgICAnc3Vic3VmZml4X2RuJzogc3Vic3VmZml4X2RuLAotKyAgICAgICAgJ3BhcmVudF9zdWZm aXhfZG4nOiBwYXJlbnRfc3VmZml4X2RuLAotKyAgICB9Ci0rCi0rCi0rZGVmIHRlc3Rfc3Vic3Vm Zml4X3dpdGhfZW50cnlfcGFyZW50X2luX3RyZWUodG9wbywgc2V0dXBfc3Vic3VmZml4X3dpdGhf ZW50cnlfcGFyZW50KToKLSsgICAgIiIiVGVzdCB0aGF0IGEgc3ViLXN1ZmZpeCB3aXRoIHBhcmVu dCBwb2ludGluZyB0byBhbiBlbnRyeSBpcyB2aXNpYmxlIGluIHRoZSB0cmVlLgotKwotKyAgICA6 aWQ6IDI1NmYzNmY1LTc2YWQtNDA0My1hZDhkLTFmOWUyYWZjNGUxZAotKyAgICA6c2V0dXA6IFN0 YW5kYWxvbmUgaW5zdGFuY2Ugd2l0aCBzdWItc3VmZml4IHdob3NlIHBhcmVudCBpcyBhbiBlbnRy eQotKyAgICA6c3RlcHM6Ci0rICAgICAgICAxLiBWZXJpZnkgdGhlIHN1Yi1zdWZmaXggYmFja2Vu ZCBleGlzdHMKLSsgICAgICAgIDIuIEdldCBzdWItc3VmZml4ZXMgb2YgdGhlIHJvb3QgYmFja2Vu ZAotKyAgICAgICAgMy4gVmVyaWZ5IHRoZSBzdWItc3VmZml4IGFwcGVhcnMgaW4gdGhlIGxpc3QK LSsgICAgOmV4cGVjdGVkcmVzdWx0czoKLSsgICAgICAgIDEuIEJhY2tlbmQgc2hvdWxkIGV4aXN0 Ci0rICAgICAgICAyLiBTdWItc3VmZml4ZXMgc2hvdWxkIGJlIHJldHJpZXZhYmxlCi0rICAgICAg ICAzLiBTdWItc3VmZml4IHNob3VsZCBiZSB2aXNpYmxlICh0aGlzIGlzIHdoZXJlIHRoZSBidWcg bWFuaWZlc3RlZCkKLSsgICAgIiIiCi0rICAgIGJhY2tlbmRzID0gc2V0dXBfc3Vic3VmZml4X3dp dGhfZW50cnlfcGFyZW50WydiYWNrZW5kcyddCi0rICAgIGZvb19iYWNrZW5kID0gc2V0dXBfc3Vi c3VmZml4X3dpdGhfZW50cnlfcGFyZW50Wydmb29fYmFja2VuZCddCi0rICAgIHN1YnN1ZmZpeF9k biA9IHNldHVwX3N1YnN1ZmZpeF93aXRoX2VudHJ5X3BhcmVudFsnc3Vic3VmZml4X2RuJ10KLSsK LSsgICAgIyBTdGVwIDE6IFZlcmlmeSB0aGUgc3ViLXN1ZmZpeCBiYWNrZW5kIGV4aXN0cwotKyAg ICBhc3NlcnQgZm9vX2JhY2tlbmQuZXhpc3RzKCksICJUaGUgZm9vIGJhY2tlbmQgc2hvdWxkIGV4 aXN0IgotKwotKyAgICAjIFN0ZXAgMjogR2V0IHN1Yi1zdWZmaXhlcyBvZiB0aGUgcm9vdCBiYWNr ZW5kCi0rICAgIHJvb3RfYmFja2VuZCA9IGJhY2tlbmRzLmdldChERUZBVUxUX1NVRkZJWCkKLSsg ICAgc3ViX3N1ZmZpeGVzID0gcm9vdF9iYWNrZW5kLmdldF9zdWJfc3VmZml4ZXMoKQotKyAgICBs b2cuaW5mbyhmIlN1Yi1zdWZmaXhlcyBmb3VuZDoge1tzLmdldF9hdHRyX3ZhbF91dGY4KCduc3Ns YXBkLXN1ZmZpeCcpIGZvciBzIGluIHN1Yl9zdWZmaXhlc119IikKLSsKLSsgICAgIyBTdGVwIDM6 IFZlcmlmeSBzdWItc3VmZml4IGlzIGluIHRoZSBsaXN0Ci0rICAgIHN1Yl9zdWZmaXhfZm91bmQg PSBhbnkoCi0rICAgICAgICBzLmdldF9hdHRyX3ZhbF91dGY4X2woJ25zc2xhcGQtc3VmZml4Jykg PT0gc3Vic3VmZml4X2RuLmxvd2VyKCkKLSsgICAgICAgIGZvciBzIGluIHN1Yl9zdWZmaXhlcwot KyAgICApCi0rCi0rICAgIGFzc2VydCBzdWJfc3VmZml4X2ZvdW5kLCAoCi0rICAgICAgICBmIlN1 Yi1zdWZmaXgge3N1YnN1ZmZpeF9kbn0gc2hvdWxkIGJlIHZpc2libGUgaW4gZ2V0X3N1Yl9zdWZm aXhlcygpLiAiCi0rICAgICAgICAiVGhlIHBhcmVudC1zdWZmaXggcG9pbnRzIHRvIGFuIGVudHJ5 LCBub3QgYSBiYWNrZW5kIHN1ZmZpeC4iCi0rICAgICkKLSsKLSsKLStkZWYgdGVzdF9zdWJzdWZm aXhfaW5fYmFja2VuZF9saXN0KHRvcG8sIHNldHVwX3N1YnN1ZmZpeF93aXRoX2VudHJ5X3BhcmVu dCk6Ci0rICAgICIiIlRlc3QgdGhhdCB0aGUgc3ViLXN1ZmZpeCBhcHBlYXJzIGluIHRoZSBiYWNr ZW5kIGxpc3QuCi0rCi0rICAgIDppZDogMGNjYzQ5YWYtOTFiYi00ZThmLWIwZTEtMWJkMGI3NWMw NDFiCi0rICAgIDpzZXR1cDogU3RhbmRhbG9uZSBpbnN0YW5jZSB3aXRoIHN1Yi1zdWZmaXggY29u ZmlndXJhdGlvbgotKyAgICA6c3RlcHM6Ci0rICAgICAgICAxLiBHZXQgYWxsIGJhY2tlbmRzCi0r ICAgICAgICAyLiBWZXJpZnkgYm90aCByb290IHN1ZmZpeCBhbmQgc3ViLXN1ZmZpeCBhcmUgcHJl c2VudAotKyAgICA6ZXhwZWN0ZWRyZXN1bHRzOgotKyAgICAgICAgMS4gU2hvdWxkIHJldHJpZXZl IGFsbCBiYWNrZW5kcwotKyAgICAgICAgMi4gQm90aCBzdWZmaXhlcyBzaG91bGQgYmUgbGlzdGVk Ci0rICAgICIiIgotKyAgICBiYWNrZW5kcyA9IHNldHVwX3N1YnN1ZmZpeF93aXRoX2VudHJ5X3Bh cmVudFsnYmFja2VuZHMnXQotKyAgICBzdWJzdWZmaXhfZG4gPSBzZXR1cF9zdWJzdWZmaXhfd2l0 aF9lbnRyeV9wYXJlbnRbJ3N1YnN1ZmZpeF9kbiddCi0rCi0rICAgIGJlX2xpc3QgPSBiYWNrZW5k cy5saXN0KCkKLSsgICAgc3VmZml4ZXMgPSBbYmUuZ2V0X2F0dHJfdmFsX3V0ZjhfbCgnbnNzbGFw ZC1zdWZmaXgnKSBmb3IgYmUgaW4gYmVfbGlzdF0KLSsKLSsgICAgYXNzZXJ0IERFRkFVTFRfU1VG RklYLmxvd2VyKCkgaW4gc3VmZml4ZXMsIFwKLSsgICAgICAgIGYiUm9vdCBzdWZmaXgge0RFRkFV TFRfU1VGRklYfSBzaG91bGQgYmUgaW4gdGhlIGxpc3QiCi0rICAgIGFzc2VydCBzdWJzdWZmaXhf ZG4ubG93ZXIoKSBpbiBzdWZmaXhlcywgXAotKyAgICAgICAgZiJTdWItc3VmZml4IHtzdWJzdWZm aXhfZG59IHNob3VsZCBiZSBpbiB0aGUgbGlzdCIKLSsKLSsKLStkZWYgdGVzdF9zdWJzdWZmaXhf ZG5fYm91bmRhcnlfbWF0Y2hpbmcoKToKLSsgICAgIiIiVGVzdCB0aGF0IHN1ZmZpeCBtYXRjaGlu ZyByZXNwZWN0cyBETiBjb21wb25lbnQgYm91bmRhcmllcy4KLSsKLSsgICAgOmlkOiAwYjg1NmUy Ni1jMzk0LTRjMzYtYjliYS1kNzg5NGFhMmVkMTEKLSsgICAgOnNldHVwOiBOb25lICh1bml0IHRl c3QpCi0rICAgIDpzdGVwczoKLSsgICAgICAgIDEuIFRlc3QgZXhhY3Qgc3VmZml4IG1hdGNoCi0r ICAgICAgICAyLiBUZXN0IHByb3BlciBETiBhbmNlc3RvciBtYXRjaCAoZW5kcyB3aXRoICxzdWZm aXgpCi0rICAgICAgICAzLiBUZXN0IHRoYXQgcGFydGlhbCBzdHJpbmcgbWF0Y2hlcyBhcmUgcmVq ZWN0ZWQKLSsgICAgOmV4cGVjdGVkcmVzdWx0czoKLSsgICAgICAgIDEuIEV4YWN0IG1hdGNoIHNo b3VsZCByZXR1cm4gVHJ1ZQotKyAgICAgICAgMi4gUHJvcGVyIGFuY2VzdG9yIHNob3VsZCByZXR1 cm4gVHJ1ZQotKyAgICAgICAgMy4gUGFydGlhbCBzdHJpbmcgbWF0Y2ggc2hvdWxkIHJldHVybiBG YWxzZQotKyAgICAiIiIKLSsgICAgZnJvbSBsaWIzODkuYmFja2VuZCBpbXBvcnQgaXNfc3Vic3Vm Zml4X29mCi0rCi0rICAgIGFsbF9zdWZmaXhlcyA9IHsnZGM9Y29tJywgJ2RjPWV4YW1wbGUsZGM9 Y29tJywgJ291PWRlcHQsZGM9ZXhhbXBsZSxkYz1jb20nfQotKwotKyAgICAjIFRlc3QgMTogRXhh Y3QgbWF0Y2gKLSsgICAgYXNzZXJ0IGlzX3N1YnN1ZmZpeF9vZignZGM9ZXhhbXBsZSxkYz1jb20n LCAnZGM9ZXhhbXBsZSxkYz1jb20nLCBhbGxfc3VmZml4ZXMpLCBcCi0rICAgICAgICAiRXhhY3Qg bWF0Y2ggc2hvdWxkIHJldHVybiBUcnVlIgotKwotKyAgICAjIFRlc3QgMjogUGFyZW50IGlzIGFu IGVudHJ5IHVuZGVyIHRoZSBzdWZmaXggKG5vdCBpdHNlbGYgYSBzdWZmaXgpCi0rICAgIGFzc2Vy dCBpc19zdWJzdWZmaXhfb2YoJ291PXBlb3BsZSxkYz1leGFtcGxlLGRjPWNvbScsICdkYz1leGFt cGxlLGRjPWNvbScsIGFsbF9zdWZmaXhlcyksIFwKLSsgICAgICAgICJQYXJlbnQgZW50cnkgdW5k ZXIgc3VmZml4IHNob3VsZCByZXR1cm4gVHJ1ZSIKLSsKLSsgICAgIyBUZXN0IDM6IFBhcmVudCBJ UyBhIHN1ZmZpeCAtIHNob3VsZCByZXR1cm4gRmFsc2UgKGhhbmRsZWQgc2VwYXJhdGVseSkKLSsg ICAgYXNzZXJ0IG5vdCBpc19zdWJzdWZmaXhfb2YoJ291PWRlcHQsZGM9ZXhhbXBsZSxkYz1jb20n LCAnZGM9ZXhhbXBsZSxkYz1jb20nLCBhbGxfc3VmZml4ZXMpLCBcCi0rICAgICAgICAiUGFyZW50 IHRoYXQgaXMgaXRzZWxmIGEgc3VmZml4IHNob3VsZCByZXR1cm4gRmFsc2UiCi0rCi0rICAgICMg VGVzdCA0OiBFZGdlIGNhc2UgLSB3cm9uZyBETiBib3VuZGFyeSAoc3RyaW5nIGVuZHMgd2l0aCBz dWZmaXggYnV0IHdyb25nIGJvdW5kYXJ5KQotKyAgICBlZGdlX3N1ZmZpeGVzID0geydkYz1jb20n LCAnc3QsZGM9Y29tJ30KLSsgICAgYXNzZXJ0IGlzX3N1YnN1ZmZpeF9vZignZGM9dGVzdCxkYz1j b20nLCAnZGM9Y29tJywgZWRnZV9zdWZmaXhlcyksIFwKLSsgICAgICAgICJkYz10ZXN0LGRjPWNv bSBzaG91bGQgbWF0Y2ggZGM9Y29tIgotKyAgICBhc3NlcnQgbm90IGlzX3N1YnN1ZmZpeF9vZign ZGM9dGVzdCxkYz1jb20nLCAnc3QsZGM9Y29tJywgZWRnZV9zdWZmaXhlcyksIFwKLSsgICAgICAg ICJkYz10ZXN0LGRjPWNvbSBzaG91bGQgTk9UIG1hdGNoIHN0LGRjPWNvbSAod3JvbmcgRE4gYm91 bmRhcnkpIgotKwotKyAgICAjIFRlc3QgNTogTm9uZSBpbnB1dAotKyAgICBhc3NlcnQgbm90IGlz X3N1YnN1ZmZpeF9vZihOb25lLCAnZGM9Y29tJywgYWxsX3N1ZmZpeGVzKSwgXAotKyAgICAgICAg Ik5vbmUgcGFyZW50IHNob3VsZCByZXR1cm4gRmFsc2UiCi0rCi0rICAgICMgVGVzdCA2OiBDbG9z ZXN0IGFuY2VzdG9yIC0gc2hvdWxkIG9ubHkgbWF0Y2ggdGhlIG5lYXJlc3Qgc3VmZml4Ci0rICAg ICMgSGllcmFyY2h5OiBkYz1jb20gLT4gZGM9ZXhhbXBsZSxkYz1jb20gLT4gb3U9YnJhbmNoLGRj PWV4YW1wbGUsZGM9Y29tIChzdWZmaXgpCi0rICAgICMgICAgICAgICAgICAtPiBvdT1kZXB0LG91 PWJyYW5jaCxkYz1leGFtcGxlLGRjPWNvbSAoZW50cnkpIC0+IHN1YnN1ZmZpeAotKyAgICAjIFRo ZSBzdWJzdWZmaXggc2hvdWxkIG9ubHkgYXBwZWFyIHVuZGVyIG91PWJyYW5jaCwgbm90IHVuZGVy IGRjPWV4YW1wbGUsZGM9Y29tCi0rICAgIG5lc3RlZF9zdWZmaXhlcyA9IHsnZGM9Y29tJywgJ2Rj PWV4YW1wbGUsZGM9Y29tJywgJ291PWJyYW5jaCxkYz1leGFtcGxlLGRjPWNvbSd9Ci0rICAgIGVu dHJ5X3BhcmVudCA9ICdvdT1kZXB0LG91PWJyYW5jaCxkYz1leGFtcGxlLGRjPWNvbScKLSsgICAg IyBTaG91bGQgbWF0Y2ggb3U9YnJhbmNoIChjbG9zZXN0KQotKyAgICBhc3NlcnQgaXNfc3Vic3Vm Zml4X29mKGVudHJ5X3BhcmVudCwgJ291PWJyYW5jaCxkYz1leGFtcGxlLGRjPWNvbScsIG5lc3Rl ZF9zdWZmaXhlcyksIFwKLSsgICAgICAgICJTaG91bGQgbWF0Y2ggY2xvc2VzdCBhbmNlc3RvciBz dWZmaXggKG91PWJyYW5jaCkiCi0rICAgICMgU2hvdWxkIE5PVCBtYXRjaCBkYz1leGFtcGxlLGRj PWNvbSAobm90IGNsb3Nlc3QpCi0rICAgIGFzc2VydCBub3QgaXNfc3Vic3VmZml4X29mKGVudHJ5 X3BhcmVudCwgJ2RjPWV4YW1wbGUsZGM9Y29tJywgbmVzdGVkX3N1ZmZpeGVzKSwgXAotKyAgICAg ICAgIlNob3VsZCBOT1QgbWF0Y2ggZGlzdGFudCBhbmNlc3RvciAoZGM9ZXhhbXBsZSkgLSBvdT1i cmFuY2ggaXMgY2xvc2VyIgotKyAgICAjIFNob3VsZCBOT1QgbWF0Y2ggZGM9Y29tIChub3QgY2xv c2VzdCkKLSsgICAgYXNzZXJ0IG5vdCBpc19zdWJzdWZmaXhfb2YoZW50cnlfcGFyZW50LCAnZGM9 Y29tJywgbmVzdGVkX3N1ZmZpeGVzKSwgXAotKyAgICAgICAgIlNob3VsZCBOT1QgbWF0Y2ggZGlz dGFudCBhbmNlc3RvciAoZGM9Y29tKSAtIG91PWJyYW5jaCBpcyBjbG9zZXIiCi0rCi0rICAgIGxv Zy5pbmZvKCJBbGwgRE4gYm91bmRhcnkgZWRnZSBjYXNlcyBwYXNzZWQiKQotKwotKwotK2RlZiB0 ZXN0X2RlZXBfc3VmZml4X2hpZXJhcmNoeSh0b3BvLCByZXF1ZXN0KToKLSsgICAgIiIiVGVzdCBj b21wbGV4IGhpZXJhcmNoeTogc3VmZml4IC0+IHN1ZmZpeCAtPiBlbnRyeSAtPiBzdWZmaXggLT4g c3VmZml4LgotKwotKyAgICA6aWQ6IGZkMDY0OTFhLWRlZmEtNDc4MC04NDcyLTc4YzA3N2ZlYmRm YgotKyAgICA6c2V0dXA6IFN0YW5kYWxvbmUgaW5zdGFuY2UKLSsgICAgOnN0ZXBzOgotKyAgICAg ICAgMS4gQ3JlYXRlIHN1Yi1zdWZmaXggb3U9YnJhbmNoIChwYXJlbnQ9ZGM9ZXhhbXBsZSxkYz1j b20gLSBhIHN1ZmZpeCkKLSsgICAgICAgIDIuIENyZWF0ZSBlbnRyeSBvdT1kZXB0LG91PWJyYW5j aCAobm90IGEgc3VmZml4KQotKyAgICAgICAgMy4gQ3JlYXRlIHN1Yi1zdWZmaXggb3U9dGVhbSxv dT1kZXB0LG91PWJyYW5jaCAocGFyZW50PW91PWRlcHQgLSBhbiBlbnRyeSkKLSsgICAgICAgIDQu IENyZWF0ZSBzdWItc3VmZml4IG91PXN1YixvdT10ZWFtLG91PWRlcHQsb3U9YnJhbmNoIChwYXJl bnQ9b3U9dGVhbSAtIGEgc3VmZml4KQotKyAgICAgICAgNS4gVmVyaWZ5IGFsbCBzdWItc3VmZml4 ZXMgYXJlIGNvcnJlY3RseSBwbGFjZWQgaW4gdGhlIHRyZWUKLSsgICAgOmV4cGVjdGVkcmVzdWx0 czoKLSsgICAgICAgIDEuIFN1Yi1zdWZmaXggY3JlYXRlZCBzdWNjZXNzZnVsbHkKLSsgICAgICAg IDIuIEVudHJ5IGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5Ci0rICAgICAgICAzLiBTdWItc3VmZml4IHdp dGggZW50cnkgcGFyZW50IGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5Ci0rICAgICAgICA0LiBTdWItc3Vm Zml4IHdpdGggc3VmZml4IHBhcmVudCBjcmVhdGVkIHN1Y2Nlc3NmdWxseQotKyAgICAgICAgNS4g VHJlZSBoaWVyYXJjaHkgaXMgY29ycmVjdAotKyAgICAiIiIKLSsgICAgaW5zdCA9IHRvcG8uc3Rh bmRhbG9uZQotKyAgICBiYWNrZW5kcyA9IEJhY2tlbmRzKGluc3QpCi0rCi0rICAgICMgRGVmaW5l IHRoZSBoaWVyYXJjaHkKLSsgICAgYnJhbmNoX3N1ZmZpeCA9IGYnb3U9YnJhbmNoLHtERUZBVUxU X1NVRkZJWH0nCi0rICAgIGRlcHRfZW50cnkgPSBmJ291PWRlcHQse2JyYW5jaF9zdWZmaXh9JyAg IyBUaGlzIGlzIGFuIEVOVFJZLCBub3QgYSBzdWZmaXgKLSsgICAgdGVhbV9zdWZmaXggPSBmJ291 PXRlYW0se2RlcHRfZW50cnl9JwotKyAgICBzdWJfc3VmZml4ID0gZidvdT1zdWIse3RlYW1fc3Vm Zml4fScKLSsKLSsgICAgY3JlYXRlZF9iYWNrZW5kcyA9IFtdCi0rICAgIGNyZWF0ZWRfZW50cmll cyA9IFtdCi0rCi0rICAgIGRlZiBjbGVhbnVwKCk6Ci0rICAgICAgICBsb2cuaW5mbygiQ2xlYW5p bmcgdXAgZGVlcCBoaWVyYXJjaHkgdGVzdCIpCi0rICAgICAgICBmb3IgZW50cnkgaW4gcmV2ZXJz ZWQoY3JlYXRlZF9lbnRyaWVzKToKLSsgICAgICAgICAgICB0cnk6Ci0rICAgICAgICAgICAgICAg IGVudHJ5LmRlbGV0ZSgpCi0rICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotKyAg ICAgICAgICAgICAgICBsb2cud2FybmluZyhmIkZhaWxlZCB0byBkZWxldGUgZW50cnk6IHtlfSIp Ci0rICAgICAgICBmb3IgYmUgaW4gcmV2ZXJzZWQoY3JlYXRlZF9iYWNrZW5kcyk6Ci0rICAgICAg ICAgICAgdHJ5OgotKyAgICAgICAgICAgICAgICBiZS5kZWxldGUoKQotKyAgICAgICAgICAgIGV4 Y2VwdCBFeGNlcHRpb24gYXMgZToKLSsgICAgICAgICAgICAgICAgbG9nLndhcm5pbmcoZiJGYWls ZWQgdG8gZGVsZXRlIGJhY2tlbmQ6IHtlfSIpCi0rCi0rICAgIHJlcXVlc3QuYWRkZmluYWxpemVy KGNsZWFudXApCi0rCi0rICAgICMgU3RlcCAxOiBDcmVhdGUgb3U9YnJhbmNoIHN1Yi1zdWZmaXgg KHBhcmVudCBpcyByb290IHN1ZmZpeCkKLSsgICAgbG9nLmluZm8oZiJDcmVhdGluZyBzdWItc3Vm Zml4IHticmFuY2hfc3VmZml4fSIpCi0rICAgIGJyYW5jaF9iZSA9IGJhY2tlbmRzLmNyZWF0ZShw cm9wZXJ0aWVzPXsKLSsgICAgICAgICdjbic6ICdicmFuY2gnLAotKyAgICAgICAgJ25zc2xhcGQt c3VmZml4JzogYnJhbmNoX3N1ZmZpeCwKLSsgICAgICAgICdwYXJlbnQnOiBERUZBVUxUX1NVRkZJ WCwKLSsgICAgfSkKLSsgICAgY3JlYXRlZF9iYWNrZW5kcy5hcHBlbmQoYnJhbmNoX2JlKQotKyAg ICBicmFuY2hfb3VzID0gT3JnYW5pemF0aW9uYWxVbml0cyhpbnN0LCBERUZBVUxUX1NVRkZJWCkK LSsgICAgYnJhbmNoX291ID0gYnJhbmNoX291cy5jcmVhdGUocHJvcGVydGllcz17J291JzogJ2Jy YW5jaCd9KQotKyAgICBjcmVhdGVkX2VudHJpZXMuYXBwZW5kKGJyYW5jaF9vdSkKLSsKLSsgICAg IyBTdGVwIDI6IENyZWF0ZSBvdT1kZXB0IGVudHJ5IHVuZGVyIGJyYW5jaCAoTk9UIGEgc3VmZml4 KQotKyAgICBsb2cuaW5mbyhmIkNyZWF0aW5nIGVudHJ5IHtkZXB0X2VudHJ5fSIpCi0rICAgIGRl cHRfb3VzID0gT3JnYW5pemF0aW9uYWxVbml0cyhpbnN0LCBicmFuY2hfc3VmZml4KQotKyAgICBk ZXB0X291ID0gZGVwdF9vdXMuY3JlYXRlKHByb3BlcnRpZXM9eydvdSc6ICdkZXB0J30pCi0rICAg IGNyZWF0ZWRfZW50cmllcy5hcHBlbmQoZGVwdF9vdSkKLSsKLSsgICAgIyBTdGVwIDM6IENyZWF0 ZSBvdT10ZWFtIHN1Yi1zdWZmaXggKHBhcmVudCBpcyBkZXB0IEVOVFJZLCBub3QgYSBzdWZmaXgp Ci0rICAgIGxvZy5pbmZvKGYiQ3JlYXRpbmcgc3ViLXN1ZmZpeCB7dGVhbV9zdWZmaXh9IHdpdGgg ZW50cnkgcGFyZW50IHtkZXB0X2VudHJ5fSIpCi0rICAgIHRlYW1fYmUgPSBiYWNrZW5kcy5jcmVh dGUocHJvcGVydGllcz17Ci0rICAgICAgICAnY24nOiAndGVhbScsCi0rICAgICAgICAnbnNzbGFw ZC1zdWZmaXgnOiB0ZWFtX3N1ZmZpeCwKLSsgICAgICAgICdwYXJlbnQnOiBkZXB0X2VudHJ5LCAg IyBQYXJlbnQgaXMgYW4gRU5UUlkhCi0rICAgIH0pCi0rICAgIGNyZWF0ZWRfYmFja2VuZHMuYXBw ZW5kKHRlYW1fYmUpCi0rICAgIHRlYW1fb3VzID0gT3JnYW5pemF0aW9uYWxVbml0cyhpbnN0LCBk ZXB0X2VudHJ5KQotKyAgICB0ZWFtX291ID0gdGVhbV9vdXMuY3JlYXRlKHByb3BlcnRpZXM9eydv dSc6ICd0ZWFtJ30pCi0rICAgIGNyZWF0ZWRfZW50cmllcy5hcHBlbmQodGVhbV9vdSkKLSsKLSsg ICAgIyBTdGVwIDQ6IENyZWF0ZSBvdT1zdWIgc3ViLXN1ZmZpeCAocGFyZW50IGlzIHRlYW0gc3Vm Zml4KQotKyAgICBsb2cuaW5mbyhmIkNyZWF0aW5nIHN1Yi1zdWZmaXgge3N1Yl9zdWZmaXh9IHdp dGggc3VmZml4IHBhcmVudCB7dGVhbV9zdWZmaXh9IikKLSsgICAgc3ViX2JlID0gYmFja2VuZHMu Y3JlYXRlKHByb3BlcnRpZXM9ewotKyAgICAgICAgJ2NuJzogJ3N1YicsCi0rICAgICAgICAnbnNz bGFwZC1zdWZmaXgnOiBzdWJfc3VmZml4LAotKyAgICAgICAgJ3BhcmVudCc6IHRlYW1fc3VmZml4 LCAgIyBQYXJlbnQgaXMgYSBTVUZGSVgKLSsgICAgfSkKLSsgICAgY3JlYXRlZF9iYWNrZW5kcy5h cHBlbmQoc3ViX2JlKQotKyAgICBzdWJfb3VzID0gT3JnYW5pemF0aW9uYWxVbml0cyhpbnN0LCB0 ZWFtX3N1ZmZpeCkKLSsgICAgc3ViX291ID0gc3ViX291cy5jcmVhdGUocHJvcGVydGllcz17J291 JzogJ3N1Yid9KQotKyAgICBjcmVhdGVkX2VudHJpZXMuYXBwZW5kKHN1Yl9vdSkKLSsKLSsgICAg IyBTdGVwIDU6IFZlcmlmeSB0aGUgdHJlZSBoaWVyYXJjaHkKLSsgICAgbG9nLmluZm8oIlZlcmlm eWluZyB0cmVlIGhpZXJhcmNoeS4uLiIpCi0rCi0rICAgICMgUm9vdCBzaG91bGQgaGF2ZSBicmFu Y2ggYXMgc3ViLXN1ZmZpeAotKyAgICByb290X2JlID0gYmFja2VuZHMuZ2V0KERFRkFVTFRfU1VG RklYKQotKyAgICByb290X3N1YnMgPSByb290X2JlLmdldF9zdWJfc3VmZml4ZXMoKQotKyAgICBy b290X3N1Yl9zdWZmaXhlcyA9IFtzLmdldF9hdHRyX3ZhbF91dGY4X2woJ25zc2xhcGQtc3VmZml4 JykgZm9yIHMgaW4gcm9vdF9zdWJzXQotKyAgICBsb2cuaW5mbyhmIlJvb3Qgc3ViLXN1ZmZpeGVz OiB7cm9vdF9zdWJfc3VmZml4ZXN9IikKLSsgICAgYXNzZXJ0IGJyYW5jaF9zdWZmaXgubG93ZXIo KSBpbiByb290X3N1Yl9zdWZmaXhlcywgXAotKyAgICAgICAgZiJicmFuY2ggc2hvdWxkIGJlIHVu ZGVyIHJvb3Qgc3VmZml4IgotKwotKyAgICAjIEJyYW5jaCBzaG91bGQgaGF2ZSB0ZWFtIGFzIHN1 Yi1zdWZmaXggKGV2ZW4gdGhvdWdoIHRlYW0ncyBwYXJlbnQgaXMgYW4gZW50cnkpCi0rICAgIGJy YW5jaF9iZV9vYmogPSBiYWNrZW5kcy5nZXQoYnJhbmNoX3N1ZmZpeCkKLSsgICAgYnJhbmNoX3N1 YnMgPSBicmFuY2hfYmVfb2JqLmdldF9zdWJfc3VmZml4ZXMoKQotKyAgICBicmFuY2hfc3ViX3N1 ZmZpeGVzID0gW3MuZ2V0X2F0dHJfdmFsX3V0ZjhfbCgnbnNzbGFwZC1zdWZmaXgnKSBmb3IgcyBp biBicmFuY2hfc3Vic10KLSsgICAgbG9nLmluZm8oZiJCcmFuY2ggc3ViLXN1ZmZpeGVzOiB7YnJh bmNoX3N1Yl9zdWZmaXhlc30iKQotKyAgICBhc3NlcnQgdGVhbV9zdWZmaXgubG93ZXIoKSBpbiBi cmFuY2hfc3ViX3N1ZmZpeGVzLCBcCi0rICAgICAgICBmInRlYW0gc2hvdWxkIGJlIHVuZGVyIGJy YW5jaCBzdWZmaXggKHBhcmVudCBpcyBlbnRyeSB1bmRlciBicmFuY2gpIgotKwotKyAgICAjIFRl YW0gc2hvdWxkIGhhdmUgc3ViIGFzIHN1Yi1zdWZmaXgKLSsgICAgdGVhbV9iZV9vYmogPSBiYWNr ZW5kcy5nZXQodGVhbV9zdWZmaXgpCi0rICAgIHRlYW1fc3VicyA9IHRlYW1fYmVfb2JqLmdldF9z dWJfc3VmZml4ZXMoKQotKyAgICB0ZWFtX3N1Yl9zdWZmaXhlcyA9IFtzLmdldF9hdHRyX3ZhbF91 dGY4X2woJ25zc2xhcGQtc3VmZml4JykgZm9yIHMgaW4gdGVhbV9zdWJzXQotKyAgICBsb2cuaW5m byhmIlRlYW0gc3ViLXN1ZmZpeGVzOiB7dGVhbV9zdWJfc3VmZml4ZXN9IikKLSsgICAgYXNzZXJ0 IHN1Yl9zdWZmaXgubG93ZXIoKSBpbiB0ZWFtX3N1Yl9zdWZmaXhlcywgXAotKyAgICAgICAgZiJz dWIgc2hvdWxkIGJlIHVuZGVyIHRlYW0gc3VmZml4IgotKwotKyAgICBsb2cuaW5mbygiRGVlcCBo aWVyYXJjaHkgdGVzdCBwYXNzZWQhIikKLSsKLSsKLStpZiBfX25hbWVfXyA9PSAnX19tYWluX18n OgotKyAgICBDVVJSRU5UX0ZJTEUgPSBvcy5wYXRoLnJlYWxwYXRoKF9fZmlsZV9fKQotKyAgICBw eXRlc3QubWFpbihbIi1zIiwgQ1VSUkVOVF9GSUxFXSkKLWRpZmYgLS1naXQgYS9zcmMvbGliMzg5 L2xpYjM4OS9iYWNrZW5kLnB5IGIvc3JjL2xpYjM4OS9saWIzODkvYmFja2VuZC5weQotaW5kZXgg ZGI0NjRiNDNhLi4yNzRkNDVhYmUgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliMzg5L2xpYjM4OS9iYWNr ZW5kLnB5Ci0rKysgYi9zcmMvbGliMzg5L2xpYjM4OS9iYWNrZW5kLnB5Ci1AQCAtMzgsNiArMzgs MzYgQEAgZnJvbSBsaWIzODkubGludCBpbXBvcnQgRFNCTEUwMDAxLCBEU0JMRTAwMDIsIERTQkxF MDAwMywgRFNCTEUwMDA0LCBEU0JMRTAwMDUsIEQKLSBmcm9tIGxpYjM4OS5wbHVnaW5zIGltcG9y dCBVU05QbHVnaW4KLSAKLSAKLStkZWYgaXNfc3Vic3VmZml4X29mKHN1Yl9wYXJlbnQsIGJlX3N1 ZmZpeCwgYWxsX3N1ZmZpeGVzKToKLSsgICAgIiIiQ2hlY2sgaWYgc3ViX3BhcmVudCBpbmRpY2F0 ZXMgdGhpcyBpcyBhIHN1Yi1zdWZmaXggb2YgYmVfc3VmZml4LgotKwotKyAgICBSZXR1cm5zIFRy dWUgb25seSBpZiBiZV9zdWZmaXggaXMgdGhlIENMT1NFU1QgYW5jZXN0b3Igc3VmZml4IG9mIHN1 Yl9wYXJlbnQuCi0rICAgIFRoaXMgcHJldmVudHMgYSBzdWItc3VmZml4IGZyb20gYXBwZWFyaW5n IHVuZGVyIG11bHRpcGxlIGFuY2VzdG9ycy4KLSsKLSsgICAgOnBhcmFtIHN1Yl9wYXJlbnQ6IFRo ZSBuc3NsYXBkLXBhcmVudC1zdWZmaXggdmFsdWUgKGxvd2VyY2FzZSkKLSsgICAgOnBhcmFtIGJl X3N1ZmZpeDogVGhlIHN1ZmZpeCB0byBjaGVjayBhZ2FpbnN0IChsb3dlcmNhc2UpCi0rICAgIDpw YXJhbSBhbGxfc3VmZml4ZXM6IFNldCBvZiBhbGwgYmFja2VuZCBzdWZmaXhlcyAobG93ZXJjYXNl KQotKyAgICA6cmV0dXJuczogVHJ1ZSBpZiBiZV9zdWZmaXggaXMgdGhlIGNsb3Nlc3QgYW5jZXN0 b3Igc3VmZml4Ci0rICAgICIiIgotKyAgICBpZiBub3Qgc3ViX3BhcmVudDoKLSsgICAgICAgIHJl dHVybiBGYWxzZQotKyAgICBpZiBzdWJfcGFyZW50ID09IGJlX3N1ZmZpeDoKLSsgICAgICAgIHJl dHVybiBUcnVlCi0rICAgIGlmIHN1Yl9wYXJlbnQgaW4gYWxsX3N1ZmZpeGVzOgotKyAgICAgICAg IyBzdWJfcGFyZW50IGlzIGl0c2VsZiBhIHN1ZmZpeCwgd2lsbCBiZSBoYW5kbGVkIHNlcGFyYXRl bHkKLSsgICAgICAgIHJldHVybiBGYWxzZQotKyAgICBpZiBub3Qgc3ViX3BhcmVudC5lbmRzd2l0 aCgnLCcgKyBiZV9zdWZmaXgpOgotKyAgICAgICAgcmV0dXJuIEZhbHNlCi0rICAgICMgRmluZCB0 aGUgY2xvc2VzdCAobG9uZ2VzdCkgbWF0Y2hpbmcgc3VmZml4IGZvciB0aGlzIHBhcmVudAotKyAg ICBiZXN0X21hdGNoID0gTm9uZQotKyAgICBmb3Igc2Z4IGluIGFsbF9zdWZmaXhlczoKLSsgICAg ICAgIGlmIHN1Yl9wYXJlbnQgPT0gc2Z4IG9yIHN1Yl9wYXJlbnQuZW5kc3dpdGgoJywnICsgc2Z4 KToKLSsgICAgICAgICAgICBpZiBiZXN0X21hdGNoIGlzIE5vbmUgb3IgbGVuKHNmeCkgPiBsZW4o YmVzdF9tYXRjaCk6Ci0rICAgICAgICAgICAgICAgIGJlc3RfbWF0Y2ggPSBzZngKLSsgICAgIyBP bmx5IHJldHVybiBUcnVlIGlmIGJlX3N1ZmZpeCBpcyB0aGUgY2xvc2VzdCBtYXRjaAotKyAgICBy ZXR1cm4gYmVzdF9tYXRjaCA9PSBiZV9zdWZmaXgKLSsKLSsKLSBjbGFzcyBCYWNrZW5kTGVnYWN5 KG9iamVjdCk6Ci0gICAgIHByb3hpZWRfbWV0aG9kcyA9ICdzZWFyY2hfcyBnZXRFbnRyeScuc3Bs aXQoKQotIAotQEAgLTExMDQsMjIgKzExMzQsMjcgQEAgY2xhc3MgQmFja2VuZChEU0xkYXBPYmpl Y3QpOgotICAgICAgICAgdmx2LmNyZWF0ZShyZG49ImNuPSIgKyB2bHZuYW1lLCBwcm9wZXJ0aWVz PXByb3BzLCBiYXNlZG49YmFzZWRuKQotIAotICAgICBkZWYgZ2V0X3N1Yl9zdWZmaXhlcyhzZWxm KToKLS0gICAgICAgICIiIlJldHVybiBhIGxpc3Qgb2YgQmFja2VuZCdzCi0tICAgICAgICByZXR1 cm5zOiBhIExpc3Qgb2Ygc3Vic3VmZml4IGVudHJpZXMKLSsgICAgICAgICIiIlJldHVybiBhIGxp c3Qgb2YgQmFja2VuZCdzIHRoYXQgYXJlIHN1Yi1zdWZmaXhlcyBvZiB0aGlzIGJhY2tlbmQuCi0r ICAgICAgICA6cmV0dXJuczogQSBsaXN0IG9mIEJhY2tlbmQgaW5zdGFuY2VzIHRoYXQgYXJlIHN1 Yi1zdWZmaXhlcwotICAgICAgICAgIiIiCi0gICAgICAgICBzdWJzdWZmaXhlcyA9IFtdCi0gICAg ICAgICB0b3BfYmVfc3VmZml4ID0gc2VsZi5nZXRfYXR0cl92YWxfdXRmOF9sKCduc3NsYXBkLXN1 ZmZpeCcpCi0rICAgICAgICBpZiBub3QgdG9wX2JlX3N1ZmZpeDoKLSsgICAgICAgICAgICByZXR1 cm4gc3Vic3VmZml4ZXMKLSsKLSAgICAgICAgIG10cyA9IHNlbGYuX210cy5saXN0KCkKLSsgICAg ICAgIGJlX2luc3RzID0gQmFja2VuZHMoc2VsZi5faW5zdGFuY2UpLmxpc3QoKQotKyAgICAgICAg YWxsX3N1ZmZpeGVzID0ge2JlLmdldF9hdHRyX3ZhbF91dGY4X2woJ25zc2xhcGQtc3VmZml4Jykg Zm9yIGJlIGluIGJlX2luc3RzfQotKwotICAgICAgICAgZm9yIG10IGluIG10czoKLSAgICAgICAg ICAgICBwYXJlbnRfc3VmZml4ID0gbXQuZ2V0X2F0dHJfdmFsX3V0ZjhfbCgnbnNzbGFwZC1wYXJl bnQtc3VmZml4JykKLSAgICAgICAgICAgICBpZiBwYXJlbnRfc3VmZml4IGlzIE5vbmU6Ci0gICAg ICAgICAgICAgICAgIGNvbnRpbnVlCi0tICAgICAgICAgICAgaWYgcGFyZW50X3N1ZmZpeCA9PSB0 b3BfYmVfc3VmZml4OgotKwotKyAgICAgICAgICAgIGlmIGlzX3N1YnN1ZmZpeF9vZihwYXJlbnRf c3VmZml4LCB0b3BfYmVfc3VmZml4LCBhbGxfc3VmZml4ZXMpOgotICAgICAgICAgICAgICAgICBj aGlsZF9zdWZmaXggPSBtdC5nZXRfYXR0cl92YWxfdXRmOF9sKCdjbicpCi0tICAgICAgICAgICAg ICAgIGJlX2luc3RzID0gQmFja2VuZHMoc2VsZi5faW5zdGFuY2UpLmxpc3QoKQotICAgICAgICAg ICAgICAgICBmb3IgYmUgaW4gYmVfaW5zdHM6Ci0tICAgICAgICAgICAgICAgICAgICBiZV9zdWZm aXggPSBiZS5nZXRfYXR0cl92YWxfdXRmOF9sKCduc3NsYXBkLXN1ZmZpeCcpCi0tICAgICAgICAg ICAgICAgICAgICBpZiBjaGlsZF9zdWZmaXggPT0gYmVfc3VmZml4OgotKyAgICAgICAgICAgICAg ICAgICAgaWYgY2hpbGRfc3VmZml4ID09IGJlLmdldF9hdHRyX3ZhbF91dGY4X2woJ25zc2xhcGQt c3VmZml4Jyk6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgc3Vic3VmZml4ZXMuYXBwZW5kKGJl KQotICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICByZXR1cm4gc3Vic3Vm Zml4ZXMKLWRpZmYgLS1naXQgYS9zcmMvbGliMzg5L2xpYjM4OS9jbGlfY29uZi9iYWNrZW5kLnB5 IGIvc3JjL2xpYjM4OS9saWIzODkvY2xpX2NvbmYvYmFja2VuZC5weQotaW5kZXggZDBlYzRiZDll Li45NzcyZTM5ZDQgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliMzg5L2xpYjM4OS9jbGlfY29uZi9iYWNr ZW5kLnB5Ci0rKysgYi9zcmMvbGliMzg5L2xpYjM4OS9jbGlfY29uZi9iYWNrZW5kLnB5Ci1AQCAt Nyw3ICs3LDcgQEAKLSAjIFNlZSBMSUNFTlNFIGZvciBkZXRhaWxzLgotICMgLS0tIEVORCBDT1BZ UklHSFQgQkxPQ0sgLS0tCi0gCi0tZnJvbSBsaWIzODkuYmFja2VuZCBpbXBvcnQgQmFja2VuZCwg QmFja2VuZHMsIERhdGFiYXNlQ29uZmlnLCBCYWNrZW5kU3VmZml4VmlldwotK2Zyb20gbGliMzg5 LmJhY2tlbmQgaW1wb3J0IEJhY2tlbmQsIEJhY2tlbmRzLCBEYXRhYmFzZUNvbmZpZywgQmFja2Vu ZFN1ZmZpeFZpZXcsIGlzX3N1YnN1ZmZpeF9vZgotIGZyb20gbGliMzg5LmNvbmZpZ3VyYXRpb25z LnNhbXBsZSBpbXBvcnQgKAotICAgICBjcmVhdGVfYmFzZV9kb21haW4sCi0gICAgIGNyZWF0ZV9i YXNlX29yZywKLUBAIC0zMzgsNiArMzM4LDcgQEAgZGVmIGlzX2RiX3JlcGxpY2F0ZWQoaW5zdCwg c3VmZml4KToKLSBkZWYgYmFja2VuZF9nZXRfc3Vic3VmZml4ZXMoaW5zdCwgYmFzZWRuLCBsb2cs IGFyZ3MpOgotICAgICBzdWJzdWZmaXhlcyA9IFtdCi0gICAgIGJlX2luc3RzID0gTUFOWShpbnN0 KS5saXN0KCkKLSsgICAgYWxsX3N1ZmZpeGVzID0ge2JlLmdldF9hdHRyX3ZhbF91dGY4X2woJ25z c2xhcGQtc3VmZml4JykgZm9yIGJlIGluIGJlX2luc3RzfQotICAgICBmb3IgYmUgaW4gYmVfaW5z dHM6Ci0gICAgICAgICBiZV9zdWZmaXggPSBiZS5nZXRfYXR0cl92YWxfdXRmOF9sKCduc3NsYXBk LXN1ZmZpeCcpCi0gICAgICAgICBpZiBiZV9zdWZmaXggPT0gYXJncy5iZV9uYW1lLmxvd2VyKCk6 Ci1AQCAtMzQ3LDcgKzM0OCw3IEBAIGRlZiBiYWNrZW5kX2dldF9zdWJzdWZmaXhlcyhpbnN0LCBi YXNlZG4sIGxvZywgYXJncyk6Ci0gICAgICAgICAgICAgICAgIGRiX3R5cGUgPSAic3VmZml4Igot ICAgICAgICAgICAgICAgICBzdWIgPSBtdC5nZXRfYXR0cl92YWxfdXRmOF9sKCduc3NsYXBkLXBh cmVudC1zdWZmaXgnKQotICAgICAgICAgICAgICAgICBzdWJfYmUgPSBtdC5nZXRfYXR0cl92YWxf dXRmOF9sKCduc3NsYXBkLWJhY2tlbmQnKQotLSAgICAgICAgICAgICAgICBpZiBzdWIgPT0gYmVf c3VmZml4OgotKyAgICAgICAgICAgICAgICBpZiBpc19zdWJzdWZmaXhfb2Yoc3ViLCBiZV9zdWZm aXgsIGFsbF9zdWZmaXhlcyk6Ci0gICAgICAgICAgICAgICAgICAgICAjIFdlIGhhdmUgYSBzdWJz dWZmaXggKG1heWJlIGEgZGIgbGluaz8pCi0gICAgICAgICAgICAgICAgICAgICBpZiBpc19kYl9s aW5rKGluc3QsIHN1Yl9iZSk6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgZGJfdHlwZSA9ICJs aW5rIgotQEAgLTM5OSwzOCArNDAwLDM0IEBAIGRlZiBidWlsZF9ub2RlKHN1ZmZpeCwgYmVfbmFt ZSwgc3Vic3VmPUZhbHNlLCBsaW5rPUZhbHNlLCByZXBsaWNhdGVkPUZhbHNlKToKLSAgICAgfQot IAotIAotLWRlZiBiYWNrZW5kX2J1aWxkX3RyZWUoaW5zdCwgYmVfaW5zdHMsIG5vZGVzKToKLS0g ICAgIiIiUmVjdXJzaXZlbHkgYnVpbGQgdGhlIHRyZWUKLS0gICAgIiIiCi0tICAgIGlmIGxlbihu b2RlcykgPT0gMDoKLS0gICAgICAgICMgRG9uZQotK2RlZiBiYWNrZW5kX2J1aWxkX3RyZWUoaW5z dCwgYmVfaW5zdHMsIG5vZGVzLCBhbGxfc3VmZml4ZXMpOgotKyAgICAiIiJSZWN1cnNpdmVseSBi dWlsZCB0aGUgdHJlZS4iIiIKLSsgICAgaWYgbm90IG5vZGVzOgotICAgICAgICAgcmV0dXJuCi0g Ci0gICAgIGZvciBub2RlIGluIG5vZGVzOgotLSAgICAgICAgbm9kZV9zdWZmaXggPSBub2RlWydp ZCddCi0rICAgICAgICBub2RlX3N1ZmZpeCA9IG5vZGVbJ2lkJ10ubG93ZXIoKQotICAgICAgICAg IyBHZXQgc3ViIHN1ZmZpeGVzIGFuZCBjaGFpbmluZyBvZiBub2RlCi0gICAgICAgICBmb3IgYmUg aW4gYmVfaW5zdHM6Ci0gICAgICAgICAgICAgYmVfc3VmZml4ID0gYmUuZ2V0X2F0dHJfdmFsX3V0 ZjhfbCgnbnNzbGFwZC1zdWZmaXgnKQotLSAgICAgICAgICAgIGlmIGJlX3N1ZmZpeCA9PSBub2Rl X3N1ZmZpeC5sb3dlcigpOgotKyAgICAgICAgICAgIGlmIGJlX3N1ZmZpeCA9PSBub2RlX3N1ZmZp eDoKLSAgICAgICAgICAgICAgICAgIyBXZSBoYXZlIG91ciBwYXJlbnQsIG5vdyBmaW5kIHRoZSBj aGlsZHJlbgotICAgICAgICAgICAgICAgICBtdHMgPSBiZS5fbXRzLmxpc3QoKQotLQotICAgICAg ICAgICAgICAgICBmb3IgbXQgaW4gbXRzOgotICAgICAgICAgICAgICAgICAgICAgc3ViX3BhcmVu dCA9IG10LmdldF9hdHRyX3ZhbF91dGY4X2woJ25zc2xhcGQtcGFyZW50LXN1ZmZpeCcpCi0gICAg ICAgICAgICAgICAgICAgICBzdWJfYmUgPSBtdC5nZXRfYXR0cl92YWxfdXRmOF9sKCduc3NsYXBk LWJhY2tlbmQnKQotICAgICAgICAgICAgICAgICAgICAgc3ViX3N1ZmZpeCA9IG10LmdldF9hdHRy X3ZhbF91dGY4X2woJ2NuJykKLS0gICAgICAgICAgICAgICAgICAgIGlmIHN1Yl9wYXJlbnQgPT0g YmVfc3VmZml4OgotKyAgICAgICAgICAgICAgICAgICAgaWYgaXNfc3Vic3VmZml4X29mKHN1Yl9w YXJlbnQsIGJlX3N1ZmZpeCwgYWxsX3N1ZmZpeGVzKToKLSAgICAgICAgICAgICAgICAgICAgICAg ICAjIFdlIGhhdmUgYSBzdWJzdWZmaXggKG1heWJlIGEgZGIgbGluaz8pCi0gICAgICAgICAgICAg ICAgICAgICAgICAgbGluayA9IGlzX2RiX2xpbmsoaW5zdCwgc3ViX2JlKQotICAgICAgICAgICAg ICAgICAgICAgICAgIHJlcGxpY2F0ZWQgPSBpc19kYl9yZXBsaWNhdGVkKGluc3QsIHN1Yl9zdWZm aXgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgbm9kZVsnY2hpbGRyZW4nXS5hcHBlbmQoYnVp bGRfbm9kZShzdWJfc3VmZml4LAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3ViX2JlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vic3VmPVRydWUsCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rPWxpbmssCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy ZXBsaWNhdGVkPXJlcGxpY2F0ZWQpKQotLQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ViX2JlLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vic3VmPVRydWUsCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsaW5rPWxpbmssCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZXBsaWNhdGVkPXJlcGxpY2F0ZWQpKQotICAgICAgICAgICAgICAg ICAjIFJlY3Vyc2Ugb3ZlciB0aGUgbmV3IHN1YnN1ZmZpeGVzCi0tICAgICAgICAgICAgICAgIGJh Y2tlbmRfYnVpbGRfdHJlZShpbnN0LCBiZV9pbnN0cywgbm9kZVsnY2hpbGRyZW4nXSkKLSsgICAg ICAgICAgICAgICAgYmFja2VuZF9idWlsZF90cmVlKGluc3QsIGJlX2luc3RzLCBub2RlWydjaGls ZHJlbiddLCBhbGxfc3VmZml4ZXMpCi0gICAgICAgICAgICAgICAgIGJyZWFrCi0gCi0gCi1AQCAt NDcxLDcgKzQ2OCw4IEBAIGRlZiBiYWNrZW5kX2dldF90cmVlKGluc3QsIGJhc2VkbiwgbG9nLCBh cmdzKToKLSAgICAgZWxzZToKLSAgICAgICAgICMgQnVpbGQgdGhlIHRyZWUKLSAgICAgICAgIGJl X2luc3RzID0gQmFja2VuZHMoaW5zdCkubGlzdCgpCi0tICAgICAgICBiYWNrZW5kX2J1aWxkX3Ry ZWUoaW5zdCwgYmVfaW5zdHMsIG5vZGVzKQotKyAgICAgICAgYWxsX3N1ZmZpeGVzID0ge2JlLmdl dF9hdHRyX3ZhbF91dGY4X2woJ25zc2xhcGQtc3VmZml4JykgZm9yIGJlIGluIGJlX2luc3RzfQot KyAgICAgICAgYmFja2VuZF9idWlsZF90cmVlKGluc3QsIGJlX2luc3RzLCBub2RlcywgYWxsX3N1 ZmZpeGVzKQotIAotICAgICAgICAgIyBEb25lCi0gICAgICAgICBpZiBhcmdzLmpzb246Ci0tLSAK LTIuNTIuMAotCgpkaWZmIC0tZ2l0IGEvMDAxNS1Jc3N1ZS03MDE0LW1lbWJlck9mLWlnbm9yZWQt ZGVmZXJyZWQtdXBkYXRlcy13aXRoLUxNLnBhdGNoIGIvMDAxNS1Jc3N1ZS03MDE0LW1lbWJlck9m LWlnbm9yZWQtZGVmZXJyZWQtdXBkYXRlcy13aXRoLUxNLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAyZTcwYTNjLi4wMDAwMDAwCi0tLSBhLzAwMTUtSXNzdWUtNzAxNC1tZW1i ZXJPZi1pZ25vcmVkLWRlZmVycmVkLXVwZGF0ZXMtd2l0aC1MTS5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDM4ICswLDAgQEAKLUZyb20gYWEyNGMwMGQ5ZWQxZWE5NzMwYzBlOGM1ZGNjYzFiYmI1 YjYxZTMxMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IExlbmthIERvdWRvdmEgPGxy eXpuYXJvQHJlZGhhdC5jb20+Ci1EYXRlOiBNb24sIDI2IEphbiAyMDI2IDE2OjIxOjIzICswMTAw Ci1TdWJqZWN0OiBbUEFUQ0hdIElzc3VlIDcwMTQgLSBtZW1iZXJPZiAtIGlnbm9yZWQgZGVmZXJy ZWQgdXBkYXRlcyB3aXRoIExNREIKLQotRGVzY3JpcHRpb246Ci1GaXggdHlwbyBpbiBweXRlc3Qg bWFya2VyIHJlYXNvbi4KLQotUmVsYXRlczogIzcwMTQKLQotQXV0aG9yOiBMZW5rYSBEb3Vkb3Zh Ci1SZXZpZXdlZCBieTogPz8/Ci0tLS0KLSAuLi4vc3VpdGVzL21lbWJlcm9mX3BsdWdpbi9tZW1i ZXJvZl9kZWZlcnJlZF9sbWRiX3Rlc3QucHkgICAgICB8IDMgKystCi0gMSBmaWxlIGNoYW5nZWQs IDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEvZGlyc3J2dGVz dHMvdGVzdHMvc3VpdGVzL21lbWJlcm9mX3BsdWdpbi9tZW1iZXJvZl9kZWZlcnJlZF9sbWRiX3Rl c3QucHkgYi9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvbWVtYmVyb2ZfcGx1Z2luL21lbWJlcm9m X2RlZmVycmVkX2xtZGJfdGVzdC5weQotaW5kZXggMGQ5Zjc5M2MxLi4xMmZjZmEzZWMgMTAwNjQ0 Ci0tLS0gYS9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvbWVtYmVyb2ZfcGx1Z2luL21lbWJlcm9m X2RlZmVycmVkX2xtZGJfdGVzdC5weQotKysrIGIvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL21l bWJlcm9mX3BsdWdpbi9tZW1iZXJvZl9kZWZlcnJlZF9sbWRiX3Rlc3QucHkKLUBAIC0xLDQgKzEs NSBAQAotICMgLS0tIEJFR0lOIENPUFlSSUdIVCBCTE9DSyAtLS0KLSsKLSAjIENvcHlyaWdodCAo QykgMjAyNSBSZWQgSGF0LCBJbmMuCi0gIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotICMKLUBAIC0y OCw3ICsyOSw3IEBAIGVsc2U6Ci0gICAgIGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKS5zZXRM ZXZlbChsb2dnaW5nLklORk8pCi0gCi0gCi0tQHB5dGVzdC5tYXJrLnNraXBpZihnZXRfZGVmYXVs dF9kYl9saWIoKSAhPSAibWRiIiwgcmVhc29uPSJOb3Qgc3VwcG9ydGVkIG92ZXIgbWRiIikKLStA cHl0ZXN0Lm1hcmsuc2tpcGlmKGdldF9kZWZhdWx0X2RiX2xpYigpICE9ICJtZGIiLCByZWFzb249 Ik5vdCBzdXBwb3J0ZWQgb3ZlciBiZGIiKQotIGRlZiB0ZXN0X21lbWJlcm9mX2RlZmVycmVkX3Vw ZGF0ZV9sbWRiX3JlamVjdGlvbih0b3BvKToKLSAgICAgIiIiVGVzdCB0aGF0IG1lbWJlck9mIHBs dWdpbiByZWplY3RzIGRlZmVycmVkIHVwZGF0ZSBjb25maWd1cmF0aW9uIHdpdGggTE1EQiBiYWNr ZW5kCi0gCi0tLSAKLTIuNTIuMAotCgpkaWZmIC0tZ2l0IGEvMDAxNi1Jc3N1ZS03MTg0LWFyZ3Bh cnNlLkhlbHBGb3JtYXR0ZXItX2Zvcm1hdF9hY3Rpb25zX3VzLnBhdGNoIGIvMDAxNi1Jc3N1ZS03 MTg0LWFyZ3BhcnNlLkhlbHBGb3JtYXR0ZXItX2Zvcm1hdF9hY3Rpb25zX3VzLnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZmVhZWFiLi4wMDAwMDAwCi0tLSBhLzAwMTYtSXNz dWUtNzE4NC1hcmdwYXJzZS5IZWxwRm9ybWF0dGVyLV9mb3JtYXRfYWN0aW9uc191cy5wYXRjaAor KysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLUZyb20gNGE3M2EzMWU2YzkxZTUwN2U1YWEy Y2JhMWU1YmQ1NWQxZDA3ODk0ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IE1hcmsg UmV5bm9sZHMgPG1yZXlub2xkc0ByZWRoYXQuY29tPgotRGF0ZTogTW9uLCAxMiBKYW4gMjAyNiAx Mzo1MzowNSAtMDUwMAotU3ViamVjdDogW1BBVENIXSBJc3N1ZSA3MTg0IC0gYXJncGFyc2UuSGVs cEZvcm1hdHRlciBfZm9ybWF0X2FjdGlvbnNfdXNhZ2UoKQotIGlzIGRlcHJlY2F0ZWQKLQotRGVz Y3JpcHRpb246Ci0KLV9mb3JtYXRfYWN0aW9uc191c2FnZSgpIHdhcyByZW1vdmVkIGluIHB5dGhv biAzLjE1LiBJbnN0ZWFkIHdlIGNhbiB1c2UKLV9nZXRfYWN0aW9uc191c2FnZV9wYXJ0cygpIGJ1 dCBpdCBhbHNvIGJlaGF2ZXMgZGlmZmVyZW50bHkgYmV0d2VlbgotcHl0aG9uIDMuMTQgYW5kIDMu MTUgc28gd2UgbmVlZCBzcGVjaWFsIGhhbmRsaW5nLgotCi1SZWxhdGVzOiBodHRwczovL2dpdGh1 Yi5jb20vMzg5ZHMvMzg5LWRzLWJhc2UvaXNzdWVzLzcxODQKLQotUmV2aWV3ZWQgYnk6IHNwaWNo dWdpKFRoYW5rcyEpCi0tLS0KLSBzcmMvbGliMzg5L2xpYjM4OS9jbGlfYmFzZS9fX2luaXRfXy5w eSB8IDE1ICsrKysrKysrKysrKysrLQotIDEgZmlsZSBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCsp LCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvbGliMzg5L2xpYjM4OS9jbGlfYmFz ZS9fX2luaXRfXy5weSBiL3NyYy9saWIzODkvbGliMzg5L2NsaV9iYXNlL19faW5pdF9fLnB5Ci1p bmRleCAwNmI4Zjk5NjQuLmYxMDU1YWFkYyAxMDA2NDQKLS0tLSBhL3NyYy9saWIzODkvbGliMzg5 L2NsaV9iYXNlL19faW5pdF9fLnB5Ci0rKysgYi9zcmMvbGliMzg5L2xpYjM4OS9jbGlfYmFzZS9f X2luaXRfXy5weQotQEAgLTQxMyw3ICs0MTMsMjAgQEAgY2xhc3MgQ3VzdG9tSGVscEZvcm1hdHRl cihhcmdwYXJzZS5IZWxwRm9ybWF0dGVyKToKLSAKLSAgICAgZGVmIF9mb3JtYXRfdXNhZ2Uoc2Vs ZiwgdXNhZ2UsIGFjdGlvbnMsIGdyb3VwcywgcHJlZml4KToKLSAgICAgICAgIHVzYWdlID0gc3Vw ZXIoQ3VzdG9tSGVscEZvcm1hdHRlciwgc2VsZikuX2Zvcm1hdF91c2FnZSh1c2FnZSwgYWN0aW9u cywgZ3JvdXBzLCBwcmVmaXgpCi0tICAgICAgICBmb3JtYXR0ZWRfb3B0aW9ucyA9IHNlbGYuX2Zv cm1hdF9hY3Rpb25zX3VzYWdlKHBhcmVudF9hcmd1bWVudHMsIFtdKQotKwotKyAgICAgICAgaWYg c3lzLnZlcnNpb25faW5mbyA8ICgzLCAxMyk6Ci0rICAgICAgICAgICAgIyBVc2UgX2Zvcm1hdF9h Y3Rpb25zX3VzYWdlKCkgZm9yIFB5dGhvbiAzLjEyIGFuZCBlYXJsaWVyCi0rICAgICAgICAgICAg Zm9ybWF0dGVkX29wdGlvbnMgPSBzZWxmLl9mb3JtYXRfYWN0aW9uc191c2FnZShwYXJlbnRfYXJn dW1lbnRzLCBbXSkKLSsgICAgICAgIGVsc2U6Ci0rICAgICAgICAgICAgIyBVc2UgX2dldF9hY3Rp b25zX3VzYWdlX3BhcnRzKCkgZm9yIFB5dGhvbiAzLjEzIGFuZCBsYXRlcgotKyAgICAgICAgICAg IGFjdGlvbl9wYXJ0cyA9IHNlbGYuX2dldF9hY3Rpb25zX3VzYWdlX3BhcnRzKHBhcmVudF9hcmd1 bWVudHMsIFtdKQotKyAgICAgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDE1KToK LSsgICAgICAgICAgICAgICAgIyBQeXRob24gMy4xNSByZXR1cm5zIGEgdHVwbGUgKGxpc3Qgb2Yg YWN0aW9ucywgY291bnQgb2YgYWN0aW9ucykKLSsgICAgICAgICAgICAgICAgZm9ybWF0dGVkX29w dGlvbnMgPSAnICcuam9pbihhY3Rpb25fcGFydHNbMF0pCi0rICAgICAgICAgICAgZWxzZToKLSsg ICAgICAgICAgICAgICAgIyBQeXRob24gMy4xMyBhbmQgMy4xNCByZXR1cm4gYSBsaXN0IG9mIGFj dGlvbnMKLSsgICAgICAgICAgICAgICAgZm9ybWF0dGVkX29wdGlvbnMgPSAnICcuam9pbihhY3Rp b25fcGFydHMpCi0rCi0gICAgICAgICAjIElmIGZvcm1hdHRlZF9vcHRpb25zIGFscmVhZHkgaW4g dXNhZ2UgLSByZW1vdmUgdGhlbQotICAgICAgICAgaWYgZm9ybWF0dGVkX29wdGlvbnMgaW4gdXNh Z2U6Ci0gICAgICAgICAgICAgdXNhZ2UgPSB1c2FnZS5yZXBsYWNlKGYnIHtmb3JtYXR0ZWRfb3B0 aW9uc30nLCAnJykKLS0tIAotMi41Mi4wCi0KCmRpZmYgLS1naXQgYS8wMDE3LUlzc3VlLTY5NDct UmV2aXNlLXRpbWUtc2tldy1jaGVjay1pbi1oZWFsdGhjaGVjay10b28ucGF0Y2ggYi8wMDE3LUlz c3VlLTY5NDctUmV2aXNlLXRpbWUtc2tldy1jaGVjay1pbi1oZWFsdGhjaGVjay10b28ucGF0Y2gK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFiZTBjZGMuLjAwMDAwMDAKLS0tIGEvMDAx Ny1Jc3N1ZS02OTQ3LVJldmlzZS10aW1lLXNrZXctY2hlY2staW4taGVhbHRoY2hlY2stdG9vLnBh dGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTc0ICswLDAgQEAKLUZyb20gYmMyODQwNjc3ODUzNGE3 NzA2NGEyNmI0ZjA0NjdkZmZlY2RlMzNlYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206 IFZpa3RvciBBc2hpcm92IDx2YXNoaXJvdkByZWRoYXQuY29tPgotRGF0ZTogVHVlLCAyNyBKYW4g MjAyNiAwOTo0MDoxMiArMDEwMAotU3ViamVjdDogW1BBVENIXSBJc3N1ZSA2OTQ3IC0gUmV2aXNl IHRpbWUgc2tldyBjaGVjayBpbiBoZWFsdGhjaGVjayB0b29sIC0gYWRkCi0gdGVzdHMgKCM3MjA4 KQotCi1EZXNjcmlwdGlvbjoKLUFkZCB0ZXN0cyBmb3IgRFNTS0VXTEUwMDAzIGFuZCBEU1NLRVdM RTAwMDQgY2hlY2tzLgotCi1SZWxhdGVzOiBodHRwczovL2dpdGh1Yi5jb20vMzg5ZHMvMzg5LWRz LWJhc2UvaXNzdWVzLzY5NDcKLQotUmV2aWV3ZWQgYnk6IEBkcm9pZGVjayAoVGhhbmtzISkKLS0t LQotIC4uLi9zdWl0ZXMvaGVhbHRoY2hlY2svaGVhbHRoX3NrZXdfdGVzdC5weSAgICB8IDE0OCAr KysrKysrKysrKysrKysrKysKLSAxIGZpbGUgY2hhbmdlZCwgMTQ4IGluc2VydGlvbnMoKykKLSBj cmVhdGUgbW9kZSAxMDA2NDQgZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL2hlYWx0aGNoZWNrL2hl YWx0aF9za2V3X3Rlc3QucHkKLQotZGlmZiAtLWdpdCBhL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRl cy9oZWFsdGhjaGVjay9oZWFsdGhfc2tld190ZXN0LnB5IGIvZGlyc3J2dGVzdHMvdGVzdHMvc3Vp dGVzL2hlYWx0aGNoZWNrL2hlYWx0aF9za2V3X3Rlc3QucHkKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0 Ci1pbmRleCAwMDAwMDAwMDAuLjllZTA3MDM2NAotLS0tIC9kZXYvbnVsbAotKysrIGIvZGlyc3J2 dGVzdHMvdGVzdHMvc3VpdGVzL2hlYWx0aGNoZWNrL2hlYWx0aF9za2V3X3Rlc3QucHkKLUBAIC0w LDAgKzEsMTQ4IEBACi0rIyAtLS0gQkVHSU4gQ09QWVJJR0hUIEJMT0NLIC0tLQotKyMgQ29weXJp Z2h0IChDKSAyMDI2IFJlZCBIYXQsIEluYy4KLSsjIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0rIwot KyMgTGljZW5zZTogR1BMICh2ZXJzaW9uIDMgb3IgYW55IGxhdGVyIHZlcnNpb24pLgotKyMgU2Vl IExJQ0VOU0UgZm9yIGRldGFpbHMuCi0rIyAtLS0gRU5EIENPUFlSSUdIVCBCTE9DSyAtLS0KLSsj Ci0rCi0raW1wb3J0IGxvZ2dpbmcKLStpbXBvcnQgb3MKLStpbXBvcnQgcHl0ZXN0Ci0raW1wb3J0 IHN1YnByb2Nlc3MKLStmcm9tIGxpYjM4OS5fY29uc3RhbnRzIGltcG9ydCBERUZBVUxUX1NVRkZJ WAotK2Zyb20gbGliMzg5LmRzZWxkaWYgaW1wb3J0IERTRWxkaWYKLStmcm9tIGxpYjM4OS5yZXBs aWNhIGltcG9ydCBSZXBsaWNhdGlvbk1hbmFnZXIKLStmcm9tIGxpYjM4OS50b3BvbG9naWVzIGlt cG9ydCB0b3BvbG9neV9tMgotKwotK3B5dGVzdG1hcmsgPSBweXRlc3QubWFyay50aWVyMQotKwot K0NNRF9PVVRQVVQgPSAnTm8gaXNzdWVzIGZvdW5kLicKLStKU09OX09VVFBVVCA9ICdbXScKLSsK LStsb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKLSsKLSsKLStkZWYgcnVuX2hlYWx0 aGNoZWNrX2FuZF9jaGVja19yZXN1bHQoaW5zdGFuY2UsIHNlYXJjaGVkX2NvZGUsIGpzb249RmFs c2UsIGlzbm90PUZhbHNlKToKLSsgICAgIiIiUnVuIGhlYWx0aGNoZWNrIGFuZCB2ZXJpZnkgdGhl IGV4cGVjdGVkIGNvZGUgaXMgaW4gdGhlIG91dHB1dCIiIgotKyAgICBjbWQgPSBbJ2RzY3RsJ10K LSsgICAgaWYganNvbjoKLSsgICAgICAgIGNtZC5hcHBlbmQoJy0tanNvbicpCi0rICAgICAgICBp ZiBzZWFyY2hlZF9jb2RlID09IENNRF9PVVRQVVQ6Ci0rICAgICAgICAgICAgc2VhcmNoZWRfY29k ZSA9IEpTT05fT1VUUFVUCi0rICAgIGNtZC5hcHBlbmQoaW5zdGFuY2Uuc2VydmVyaWQpCi0rICAg IGNtZC5leHRlbmQoWydoZWFsdGhjaGVjaycsICctLWNoZWNrJywgJ2RzZWxkaWY6bnNzdGF0ZSdd KQotKwotKyAgICByZXN1bHQgPSBzdWJwcm9jZXNzLnJ1bihjbWQsIGNhcHR1cmVfb3V0cHV0PVRy dWUsIHVuaXZlcnNhbF9uZXdsaW5lcz1UcnVlKQotKyAgICBsb2cuaW5mbyhmJ1J1bm5pbmc6IHtj bWR9JykKLSsgICAgbG9nLmluZm8oZidTdGRvdXQ6IHtyZXN1bHQuc3Rkb3V0fScpCi0rICAgIGxv Zy5pbmZvKGYnU3RkZXJyOiB7cmVzdWx0LnN0ZGVycn0nKQotKyAgICBsb2cuaW5mbyhmJ1JldHVy biBjb2RlOiB7cmVzdWx0LnJldHVybmNvZGV9JykKLSsgICAgc3Rkb3V0ID0gcmVzdWx0LnN0ZG91 dAotKwotKyAgICAjIHN0ZG91dCBzaG91bGQgbm90IGJlIGVtcHR5Ci0rICAgIGFzc2VydCBzdGRv dXQgaXMgbm90IE5vbmUKLSsgICAgYXNzZXJ0IGxlbihzdGRvdXQpID4gMAotKwotKyAgICBpZiBp c25vdDoKLSsgICAgICAgIGFzc2VydCBzZWFyY2hlZF9jb2RlIG5vdCBpbiBzdGRvdXQsIFwKLSsg ICAgICAgICAgICBmJ3tzZWFyY2hlZF9jb2RlfSBzaG91bGQgTk9UIGJlIGluIGhlYWx0aGNoZWNr IG91dHB1dCBidXQgd2FzIGZvdW5kJwotKyAgICAgICAgbG9nLmluZm8oZidWZXJpZmllZCB7c2Vh cmNoZWRfY29kZX0gaXMgTk9UIGluIGhlYWx0aGNoZWNrIG91dHB1dCcpCi0rICAgIGVsc2U6Ci0r ICAgICAgICBhc3NlcnQgc2VhcmNoZWRfY29kZSBpbiBzdGRvdXQsIFwKLSsgICAgICAgICAgICBm J3tzZWFyY2hlZF9jb2RlfSBzaG91bGQgYmUgaW4gaGVhbHRoY2hlY2sgb3V0cHV0IGJ1dCB3YXMg bm90IGZvdW5kJwotKyAgICAgICAgbG9nLmluZm8oZidWZXJpZmllZCB7c2VhcmNoZWRfY29kZX0g aXMgaW4gaGVhbHRoY2hlY2sgb3V0cHV0JykKLSsKLSsKLStkZWYgdGVzdF9oZWFsdGhjaGVja190 aW1lX3NrZXdfZXh0ZW5zaXZlKHRvcG9sb2d5X20yKToKLSsgICAgIiIiQ2hlY2sgaWYgSGVhbHRo Q2hlY2sgcmV0dXJucyBEU1NLRVdMRTAwMDMgYW5kIERTU0tFV0xFMDAwNCBjb2RlcyBmb3IgZXh0 ZW5zaXZlIHRpbWUgc2tldwotKwotKyAgICA6aWQ6IDc1OTFjZDJiLThkNjYtNGQzMy05ZjhkLWJh YmZmMDU3MTA4NgotKyAgICA6c2V0dXA6IFR3byBzdXBwbGllcnMgcmVwbGljYXRpb24gdG9wb2xv Z3kKLSsgICAgOnN0ZXBzOgotKyAgICAgICAgMS4gQ3JlYXRlIGEgcmVwbGljYXRlZCB0b3BvbG9n eQotKyAgICAgICAgMi4gU3RvcCBzdXBwbGllcjEKLSsgICAgICAgIDMuIEluY3JlYXNlIHRpbWUg c2tldyBvbiBzdXBwbGllcjEgdG8gb3ZlciAyNCBob3VycwotKyAgICAgICAgNC4gU3RhcnQgc3Vw cGxpZXIxCi0rICAgICAgICA1LiBVc2UgSGVhbHRoQ2hlY2sgYW5kIHZlcmlmeSBEU1NLRVdMRTAw MDMgaXMgcmVwb3J0ZWQKLSsgICAgICAgIDYuIFNldCBuc3NsYXBkLWlnbm9yZS10aW1lLXNrZXcg dG8gb24KLSsgICAgICAgIDcuIFVzZSBIZWFsdGhDaGVjayBhbmQgdmVyaWZ5IERTU0tFV0xFMDAw MyBpcyBOT1QgcmVwb3J0ZWQKLSsgICAgICAgIDguIFN0b3Agc3VwcGxpZXIxCi0rICAgICAgICA5 LiBJbmNyZWFzZSB0aW1lIHNrZXcgb24gc3VwcGxpZXIxIHRvIG92ZXIgMzY1IGRheXMKLSsgICAg ICAgIDEwLiBTdGFydCBzdXBwbGllcjEKLSsgICAgICAgIDExLiBVc2UgSGVhbHRoQ2hlY2sgYW5k IHZlcmlmeSBvbmx5IERTU0tFV0xFMDAwNCBpcyByZXBvcnRlZAotKyAgICA6ZXhwZWN0ZWRyZXN1 bHRzOgotKyAgICAgICAgMS4gU3VjY2VzcwotKyAgICAgICAgMi4gU3VjY2VzcwotKyAgICAgICAg My4gU3VjY2VzcwotKyAgICAgICAgNC4gU3VjY2VzcwotKyAgICAgICAgNS4gSGVhbHRoY2hlY2sg cmVwb3J0cyBEU1NLRVdMRTAwMDMgY29kZQotKyAgICAgICAgNi4gU3VjY2VzcwotKyAgICAgICAg Ny4gSGVhbHRoY2hlY2sgZG9lcyBub3QgcmVwb3J0IERTU0tFV0xFMDAwMyBjb2RlCi0rICAgICAg ICA4LiBTdWNjZXNzCi0rICAgICAgICA5LiBTdWNjZXNzCi0rICAgICAgICAxMC4gU3VjY2Vzcwot KyAgICAgICAgMTEuIEhlYWx0aGNoZWNrIHJlcG9ydHMgRFNTS0VXTEUwMDA0IGNvZGUgYW5kIG5v dCBEU1NLRVdMRTAwMDMKLSsgICAgIiIiCi0rCi0rICAgIE0xID0gdG9wb2xvZ3lfbTIubXNbJ3N1 cHBsaWVyMSddCi0rICAgIE0yID0gdG9wb2xvZ3lfbTIubXNbJ3N1cHBsaWVyMiddCi0rCi0rICAg ICMgRW5zdXJlIHJlcGxpY2F0aW9uIGlzIHdvcmtpbmcgZmlyc3QKLSsgICAgcmVwbCA9IFJlcGxp Y2F0aW9uTWFuYWdlcihERUZBVUxUX1NVRkZJWCkKLSsgICAgcmVwbC53YWl0X2Zvcl9yZXBsaWNh dGlvbihNMSwgTTIpCi0rCi0rICAgICMgU3RlcCAyLTQ6IFN0b3Agc3VwcGxpZXIxLCBpbmNyZWFz ZSB0aW1lIHNrZXcgdG8gb3ZlciAyNCBob3Vycywgc3RhcnQgc3VwcGxpZXIxCi0rICAgIGxvZy5p bmZvKCdTdG9wIHN1cHBsaWVyMSB0byBtb2RpZnkgZHNlLmxkaWYnKQotKyAgICBNMS5zdG9wKCkK LSsKLSsgICAgIyBTZXQgdGltZSBza2V3IHRvIG92ZXIgMjQgaG91cnMgKDg2NDAwIHNlY29uZHMp Ci0rICAgICMgQWRkIGEgbWFyZ2luIHRvIGJlIHNhZmVseSBvdmVyIHRoZSB0aHJlc2hvbGQKLSsg ICAgdGltZV9za2V3XzI0aCA9IDg2NDAwICsgMzYwMCAgIyAyNSBob3VycwotKyAgICBsb2cuaW5m byhmJ0luY3JlYXNlIHRpbWUgc2tldyBvbiBzdXBwbGllcjEgYnkge3RpbWVfc2tld18yNGh9IHNl Y29uZHMnKQotKyAgICBEU0VsZGlmKE0xKS5faW5jcmVhc2VUaW1lU2tldyhERUZBVUxUX1NVRkZJ WCwgdGltZV9za2V3XzI0aCkKLSsKLSsgICAgbG9nLmluZm8oJ1N0YXJ0IHN1cHBsaWVyMScpCi0r ICAgIE0xLnN0YXJ0KCkKLSsKLSsgICAgIyBTdGVwIDU6IFZlcmlmeSBEU1NLRVdMRTAwMDMgaXMg cmVwb3J0ZWQKLSsgICAgbG9nLmluZm8oJ1J1biBoZWFsdGhjaGVjayBhbmQgdmVyaWZ5IERTU0tF V0xFMDAwMyBpcyByZXBvcnRlZCcpCi0rICAgIHJ1bl9oZWFsdGhjaGVja19hbmRfY2hlY2tfcmVz dWx0KE0xLCAnRFNTS0VXTEUwMDAzJywganNvbj1GYWxzZSkKLSsgICAgcnVuX2hlYWx0aGNoZWNr X2FuZF9jaGVja19yZXN1bHQoTTEsICdEU1NLRVdMRTAwMDMnLCBqc29uPVRydWUpCi0rCi0rICAg ICMgU3RlcCA2OiBTZXQgbnNzbGFwZC1pZ25vcmUtdGltZS1za2V3IHRvIG9uCi0rICAgIGxvZy5p bmZvKCdTZXQgbnNzbGFwZC1pZ25vcmUtdGltZS1za2V3IHRvIG9uJykKLSsgICAgTTEuY29uZmln LnNldCgnbnNzbGFwZC1pZ25vcmUtdGltZS1za2V3JywgJ29uJykKLSsKLSsgICAgIyBTdGVwIDc6 IFZlcmlmeSBEU1NLRVdMRTAwMDMgaXMgTk9UIHJlcG9ydGVkIHdoZW4gaWdub3JpbmcgdGltZSBz a2V3Ci0rICAgIGxvZy5pbmZvKCdSdW4gaGVhbHRoY2hlY2sgYW5kIHZlcmlmeSBEU1NLRVdMRTAw MDMgaXMgTk9UIHJlcG9ydGVkJykKLSsgICAgcnVuX2hlYWx0aGNoZWNrX2FuZF9jaGVja19yZXN1 bHQoTTEsICdEU1NLRVdMRTAwMDMnLCBqc29uPUZhbHNlLCBpc25vdD1UcnVlKQotKyAgICBydW5f aGVhbHRoY2hlY2tfYW5kX2NoZWNrX3Jlc3VsdChNMSwgJ0RTU0tFV0xFMDAwMycsIGpzb249VHJ1 ZSwgaXNub3Q9VHJ1ZSkKLSsKLSsgICAgIyBTdGVwIDgtMTA6IFN0b3Agc3VwcGxpZXIxLCBpbmNy ZWFzZSB0aW1lIHNrZXcgdG8gb3ZlciAzNjUgZGF5cywgc3RhcnQgc3VwcGxpZXIxCi0rICAgIGxv Zy5pbmZvKCdTdG9wIHN1cHBsaWVyMSB0byBtb2RpZnkgZHNlLmxkaWYnKQotKyAgICBNMS5zdG9w KCkKLSsKLSsgICAgIyBJbmNyZWFzZSB0aW1lIHNrZXcgdG8gb3ZlciAzNjUgZGF5cyAoMzE1MzYw MDAgc2Vjb25kcykKLSsgICAgIyBXZSBuZWVkIHRvIGFkZCBlbm91Z2ggdG8gZ28gZnJvbSBjdXJy ZW50IH4yNSBob3VycyB0byBvdmVyIDM2NSBkYXlzCi0rICAgIHRpbWVfc2tld195ZWFyID0gKDg2 NDAwICogMzY1KSArIDg2NDAwICAjIDM2NiBkYXlzIHRvdGFsIGFkZGl0aW9uYWwKLSsgICAgbG9n LmluZm8oZidJbmNyZWFzZSB0aW1lIHNrZXcgb24gc3VwcGxpZXIxIGJ5IHt0aW1lX3NrZXdfeWVh cn0gc2Vjb25kcycpCi0rICAgIERTRWxkaWYoTTEpLl9pbmNyZWFzZVRpbWVTa2V3KERFRkFVTFRf U1VGRklYLCB0aW1lX3NrZXdfeWVhcikKLSsKLSsgICAgbG9nLmluZm8oJ1N0YXJ0IHN1cHBsaWVy MScpCi0rICAgIE0xLnN0YXJ0KCkKLSsKLSsgICAgIyBTdGVwIDExOiBWZXJpZnkgb25seSBEU1NL RVdMRTAwMDQgaXMgcmVwb3J0ZWQgKG5vdCBEU1NLRVdMRTAwMDMpCi0rICAgIGxvZy5pbmZvKCdS dW4gaGVhbHRoY2hlY2sgYW5kIHZlcmlmeSBvbmx5IERTU0tFV0xFMDAwNCBpcyByZXBvcnRlZCcp Ci0rICAgIHJ1bl9oZWFsdGhjaGVja19hbmRfY2hlY2tfcmVzdWx0KE0xLCAnRFNTS0VXTEUwMDA0 JywganNvbj1GYWxzZSkKLSsgICAgcnVuX2hlYWx0aGNoZWNrX2FuZF9jaGVja19yZXN1bHQoTTEs ICdEU1NLRVdMRTAwMDQnLCBqc29uPVRydWUpCi0rICAgIHJ1bl9oZWFsdGhjaGVja19hbmRfY2hl Y2tfcmVzdWx0KE0xLCAnRFNTS0VXTEUwMDAzJywganNvbj1GYWxzZSwgaXNub3Q9VHJ1ZSkKLSsg ICAgcnVuX2hlYWx0aGNoZWNrX2FuZF9jaGVja19yZXN1bHQoTTEsICdEU1NLRVdMRTAwMDMnLCBq c29uPVRydWUsIGlzbm90PVRydWUpCi0rCi0rCi0raWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoK LSsgICAgIyBSdW4gaXNvbGF0ZWQKLSsgICAgIyAtcyBmb3IgREVCVUcgbW9kZQotKyAgICBDVVJS RU5UX0ZJTEUgPSBvcy5wYXRoLnJlYWxwYXRoKF9fZmlsZV9fKQotKyAgICBweXRlc3QubWFpbigi LXMgJXMiICUgQ1VSUkVOVF9GSUxFKQotLS0gCi0yLjUyLjAKLQoKZGlmZiAtLWdpdCBhLzAwMTgt SXNzdWUtNzIwMS1TeXNjYWxsLW92ZXJoZWFkLWluLUxNREItaW1wb3J0LXdyaXRlci10aC5wYXRj aCBiLzAwMTgtSXNzdWUtNzIwMS1TeXNjYWxsLW92ZXJoZWFkLWluLUxNREItaW1wb3J0LXdyaXRl ci10aC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDkzNGJhNy4uMDAwMDAw MAotLS0gYS8wMDE4LUlzc3VlLTcyMDEtU3lzY2FsbC1vdmVyaGVhZC1pbi1MTURCLWltcG9ydC13 cml0ZXItdGgucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMTUgKzAsMCBAQAotRnJvbSBhNTNj MGU0ZGVhNWMzNWZlZjE5NjUwMGIyYTM2YzkyYmM4ZjA3YTUxIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQotRnJvbTogVmlrdG9yIEFzaGlyb3YgPHZhc2hpcm92QHJlZGhhdC5jb20+Ci1EYXRlOiBU dWUsIDI3IEphbiAyMDI2IDA5OjQ5OjE2ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIElzc3VlIDcy MDEgLSBTeXNjYWxsIG92ZXJoZWFkIGluIExNREIgaW1wb3J0IHdyaXRlciB0aHJlYWQKLSAoIzcy MDQpCi0KLUJ1ZyBEZXNjcmlwdGlvbjoKLWxkaWYyZGIgaW1wb3J0IGlzIHNsb3dlciB3aXRoIExN REIgdGhhbiB3aXRoIEJEQiAofjM1MDAgdnMgfjQ1MDAKLWVudHJpZXMvcykgZHVlIHRvIDIgaXNz dWVzOgotMS4gVGhlIE1EQl9TVEFUX1NURVAgbWFjcm8gY2FsbHMgYGNsb2NrX2dldHRpbWUoKWAg dG8gY29sbGVjdAotcGVyZm9ybWFuY2Ugc3RhdGlzdGljcy4gVGhpcyB3YXMgY2FsbGVkIG9uIGV2 ZXJ5IHNpbmdsZSBvcGVyYXRpb24gaW5zaWRlCi10aGUgd3JpdGVyIGxvb3AsIHJlc3VsdGluZyBp biB+MyBzeXNjYWxscyBwZXIgd3JpdGUgb3IgfjYwMDAgc3lzY2FsbHMKLXBlciB0cmFuc2FjdGlv biAod2l0aCAyMDAwIGFzIHRoZSBkZWZhdWx0IGJhdGNoIHNpemUpLgotCi0yLiBJbiBgZGJtZGJf aW1wb3J0X3dvcmtlcnFfcHVzaCgpYCwgYWZ0ZXIgY29weWluZyB3b3JrIHRvIGEgd29ya2VyCi1z bG90LCB0aGUgY29uZGl0aW9uIHZhcmlhYmxlIHdhcyBuZXZlciBzaWduYWxlZC4gVGhpcyBjYXVz ZWQgd29ya2VycyB0bwotc3BlbmQgdXAgdG8gMTAwbXMgaW4gYHNhZmVfY29uZF93YWl0KClgIGJl Zm9yZSBjaGVja2luZyBmb3IgbmV3IHdvcmssCi1zZXZlcmVseSBsaW1pdGluZyBpbXBvcnQgdGhy b3VnaHB1dC4KLQotRml4IERlc2NyaXB0aW9uOgotMS4gQWRkIGEgbmV3IGNvbmZpZyBwYXJhbWV0 ZXIgYG5zc2xhcGQtbWRiLWltcG9ydC1zdGF0c2AgKGRlZmF1bHQ6IG9mZikKLSAgIHRvIGNvbnRy b2wgd2hldGhlciBwZXJmb3JtYW5jZSBzdGF0aXN0aWNzIGNvbGxlY3Rpb24gaXMgZW5hYmxlZC4K LTIuIEFkZCBgcHRocmVhZF9jb25kX2Jyb2FkY2FzdCgpYCBpbW1lZGlhdGVseSBhZnRlciBjb3B5 aW5nIGRhdGEgdG8gd2FrZQotICAgdGhlIHdvcmtlcnMuCi0KLUFmdGVyIGFwcGx5aW5nIHRoZXNl IGZpeGVzIGxkaWYyZGIgaW1wb3J0IHJhdGUgaXMgYWJvdXQgfjEwMDAwIGVudHJpZXMvcy4KLQot Rml4ZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS8zODlkcy8zODktZHMtYmFzZS9pc3N1ZXMvNzIwMQot Ci1SZXZpZXdlZCBieTogQHByb2dpZXIzODkgKFRoYW5rcyEpCi0tLS0KLSAuLi4vc2xhcGQvYmFj ay1sZGJtL2RiLW1kYi9tZGJfY29uZmlnLmMgICAgICAgfCAyMyArKysrKysrKysrKwotIC4uLi9i YWNrLWxkYm0vZGItbWRiL21kYl9pbXBvcnRfdGhyZWFkcy5jICAgICB8IDQwICsrKysrKysrKyst LS0tLS0tLS0KLSAuLi4vc2xhcGQvYmFjay1sZGJtL2RiLW1kYi9tZGJfbGF5ZXIuaCAgICAgICAg fCAgMiArCi0gMyBmaWxlcyBjaGFuZ2VkLCA0NiBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMo LSkKLQotZGlmZiAtLWdpdCBhL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vZGItbWRiL21k Yl9jb25maWcuYyBiL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vZGItbWRiL21kYl9jb25m aWcuYwotaW5kZXggOTYyOTVlZDViLi5hZGU0MmIxZDcgMTAwNjQ0Ci0tLS0gYS9sZGFwL3NlcnZl cnMvc2xhcGQvYmFjay1sZGJtL2RiLW1kYi9tZGJfY29uZmlnLmMKLSsrKyBiL2xkYXAvc2VydmVy cy9zbGFwZC9iYWNrLWxkYm0vZGItbWRiL21kYl9jb25maWcuYwotQEAgLTQ3Nyw2ICs0NzcsMjgg QEAgZGJtZGJfY3R4X3RfZGJfZHVyYWJsZV90cmFuc2FjdGlvbnNfc2V0KHZvaWQgKmFyZywgdm9p ZCAqdmFsdWUsIGNoYXIgKmVycm9yYnVmIF8KLSAgICAgcmV0dXJuIHJldHZhbDsKLSB9Ci0gCi0r c3RhdGljIHZvaWQgKgotK2RibWRiX2N0eF90X2RiX2ltcG9ydF9zdGF0c19nZXQodm9pZCAqYXJn KQotK3sKLSsgICAgc3RydWN0IGxkYm1pbmZvICpsaSA9IChzdHJ1Y3QgbGRibWluZm8gKilhcmc7 Ci0rCi0rICAgIHJldHVybiAodm9pZCAqKSgodWludHB0cl90KShNREJfQ09ORklHKGxpKS0+ZHNl Y2ZnLmltcG9ydF9zdGF0cykpOwotK30KLSsKLStzdGF0aWMgaW50Ci0rZGJtZGJfY3R4X3RfZGJf aW1wb3J0X3N0YXRzX3NldCh2b2lkICphcmcsIHZvaWQgKnZhbHVlLCBjaGFyICplcnJvcmJ1ZiBf X2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSwgaW50IHBoYXNlIF9fYXR0cmlidXRlX18oKHVudXNlZCkp LCBpbnQgYXBwbHkpCi0rewotKyAgICBzdHJ1Y3QgbGRibWluZm8gKmxpID0gKHN0cnVjdCBsZGJt aW5mbyAqKWFyZzsKLSsgICAgaW50IHJldHZhbCA9IExEQVBfU1VDQ0VTUzsKLSsgICAgaW50IHZh bCA9IChpbnQpKCh1aW50cHRyX3QpdmFsdWUpOwotKwotKyAgICBpZiAoYXBwbHkpIHsKLSsgICAg ICAgIE1EQl9DT05GSUcobGkpLT5kc2VjZmcuaW1wb3J0X3N0YXRzID0gdmFsOwotKyAgICB9Ci0r Ci0rICAgIHJldHVybiByZXR2YWw7Ci0rfQotKwotIHN0YXRpYyBpbnQKLSBkYm1kYl9jdHhfdF9z ZXRfYnlwYXNzX2ZpbHRlcl90ZXN0KHZvaWQgKmFyZywKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHZvaWQgKnZhbHVlLAotQEAgLTU4OSw2ICs2MTEsNyBAQCBzdGF0aWMgY29u ZmlnX2luZm8gZGJtZGJfY3R4X3RfcGFyYW1bXSA9IHsKLSAgICAge0NPTkZJR19NREJfTUFYX0RC UywgQ09ORklHX1RZUEVfSU5ULCAiNTEyIiwgJmRibWRiX2N0eF90X2RiX21heF9kYnNfZ2V0LCAm ZGJtZGJfY3R4X3RfZGJfbWF4X2Ric19zZXQsIENPTkZJR19GTEFHX0FMV0FZU19TSE9XIHwgQ09O RklHX0ZMQUdfQUxMT1dfUlVOTklOR19DSEFOR0V9LAotICAgICB7Q09ORklHX01BWFBBU1NCRUZP UkVNRVJHRSwgQ09ORklHX1RZUEVfSU5ULCAiMTAwIiwgJmRibWRiX2N0eF90X21heHBhc3NiZWZv cmVtZXJnZV9nZXQsICZkYm1kYl9jdHhfdF9tYXhwYXNzYmVmb3JlbWVyZ2Vfc2V0LCAwfSwKLSAg ICAge0NPTkZJR19EQl9EVVJBQkxFX1RSQU5TQUNUSU9OUywgQ09ORklHX1RZUEVfT05PRkYsICJv biIsICZkYm1kYl9jdHhfdF9kYl9kdXJhYmxlX3RyYW5zYWN0aW9uc19nZXQsICZkYm1kYl9jdHhf dF9kYl9kdXJhYmxlX3RyYW5zYWN0aW9uc19zZXQsIENPTkZJR19GTEFHX0FMV0FZU19TSE9XfSwK LSsgICAge0NPTkZJR19NREJfSU1QT1JUX1NUQVRTLCBDT05GSUdfVFlQRV9PTk9GRiwgIm9mZiIs ICZkYm1kYl9jdHhfdF9kYl9pbXBvcnRfc3RhdHNfZ2V0LCAmZGJtZGJfY3R4X3RfZGJfaW1wb3J0 X3N0YXRzX3NldCwgQ09ORklHX0ZMQUdfQUxXQVlTX1NIT1cgfCBDT05GSUdfRkxBR19BTExPV19S VU5OSU5HX0NIQU5HRX0sCi0gICAgIHtDT05GSUdfQllQQVNTX0ZJTFRFUl9URVNULCBDT05GSUdf VFlQRV9TVFJJTkcsICJvbiIsICZkYm1kYl9jdHhfdF9nZXRfYnlwYXNzX2ZpbHRlcl90ZXN0LCAm ZGJtZGJfY3R4X3Rfc2V0X2J5cGFzc19maWx0ZXJfdGVzdCwgQ09ORklHX0ZMQUdfQUxXQVlTX1NI T1cgfCBDT05GSUdfRkxBR19BTExPV19SVU5OSU5HX0NIQU5HRX0sCi0gICAgIHtDT05GSUdfU0VS SUFMX0xPQ0ssIENPTkZJR19UWVBFX09OT0ZGLCAib24iLCAmZGJtZGJfY3R4X3Rfc2VyaWFsX2xv Y2tfZ2V0LCAmZGJtZGJfY3R4X3Rfc2VyaWFsX2xvY2tfc2V0LCBDT05GSUdfRkxBR19BTFdBWVNf U0hPVyB8IENPTkZJR19GTEFHX0FMTE9XX1JVTk5JTkdfQ0hBTkdFfSwKLSAgICAge0NPTkZJR19D QUNIRV9BVVRPU0laRSwgQ09ORklHX1RZUEVfSU5ULCAiMjUiLCAmbWRiX2NvbmZpZ19jYWNoZV9h dXRvc2l6ZV9nZXQsICZtZGJfY29uZmlnX2NhY2hlX2F1dG9zaXplX3NldCwgQ09ORklHX0ZMQUdf QUxXQVlTX1NIT1cgfCBDT05GSUdfRkxBR19BTExPV19SVU5OSU5HX0NIQU5HRX0sCi1kaWZmIC0t Z2l0IGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9kYi1tZGIvbWRiX2ltcG9ydF90aHJl YWRzLmMgYi9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2RiLW1kYi9tZGJfaW1wb3J0X3Ro cmVhZHMuYwotaW5kZXggMjI3MGFiZDY5Li42NWIyOTM0M2UgMTAwNjQ0Ci0tLS0gYS9sZGFwL3Nl cnZlcnMvc2xhcGQvYmFjay1sZGJtL2RiLW1kYi9tZGJfaW1wb3J0X3RocmVhZHMuYwotKysrIGIv bGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9kYi1tZGIvbWRiX2ltcG9ydF90aHJlYWRzLmMK LUBAIC01OSw5ICs1OSw5IEBACi0gCi0gCi0gLyogaW1wb3J0IHRocmVhZCB1c2FnZSBzdGF0aXN0 aWNzICovCi0tI2RlZmluZSBNREJfU1RBVF9JTklUKHN0YXRzKSAgICB7IG1kYl9zdGF0X2NvbGxl Y3QoJnN0YXRzLCBNREJfU1RBVF9SVU4sIDEpOyB9Ci0tI2RlZmluZSBNREJfU1RBVF9FTkQoc3Rh dHMpICAgICB7IG1kYl9zdGF0X2NvbGxlY3QoJnN0YXRzLCBNREJfU1RBVF9SVU4sIDApOyB9Ci0t I2RlZmluZSBNREJfU1RBVF9TVEVQKHN0YXRzLCBzdGVwKSAgICB7IG1kYl9zdGF0X2NvbGxlY3Qo JnN0YXRzLCAoc3RlcCksIDApOyB9Ci0rI2RlZmluZSBNREJfU1RBVF9JTklUKHN0YXRzLCBlbmFi bGVkKSAgICB7IGlmIChlbmFibGVkKSBtZGJfc3RhdF9jb2xsZWN0KCZzdGF0cywgTURCX1NUQVRf UlVOLCAxKTsgfQotKyNkZWZpbmUgTURCX1NUQVRfRU5EKHN0YXRzLCBlbmFibGVkKSAgICAgeyBp ZiAoZW5hYmxlZCkgbWRiX3N0YXRfY29sbGVjdCgmc3RhdHMsIE1EQl9TVEFUX1JVTiwgMCk7IH0K LSsjZGVmaW5lIE1EQl9TVEFUX1NURVAoc3RhdHMsIHN0ZXAsIGVuYWJsZWQpICAgIHsgaWYgKGVu YWJsZWQpIG1kYl9zdGF0X2NvbGxlY3QoJnN0YXRzLCAoc3RlcCksIDApOyB9Ci0gCi0gdHlwZWRl ZiBlbnVtIHsKLSAgICAgTURCX1NUQVRfUlVOLAotQEAgLTQyNCw2ICs0MjQsNyBAQCBkYm1kYl9p bXBvcnRfd29ya2VycV9wdXNoKEltcG9ydFF1ZXVlX3QgKnEsIFdvcmtlclF1ZXVlRGF0YV90ICpk YXRhKQotICAgICAgICAgcmV0dXJuIC0xOwotICAgICB9Ci0gICAgIGRibWRiX2R1cF93b3JrZXJf c2xvdChxLCBkYXRhLCBzbG90KTsKLSsgICAgcHRocmVhZF9jb25kX2Jyb2FkY2FzdCgmcS0+Y3Yp OwotICAgICBwdGhyZWFkX211dGV4X3VubG9jaygmcS0+bXV0ZXgpOwotICAgICByZXR1cm4gMDsK LSB9Ci1AQCAtMzkxNCwxNCArMzkxNSwxNSBAQCBkYm1kYl9pbXBvcnRfd3JpdGVyKHZvaWQqcGFy YW0pCi0gICAgIGludCBjb3VudCA9IDA7Ci0gICAgIGludCByYyA9IDA7Ci0gICAgIG1kYl9zdGF0 X2luZm9fdCBzdGF0cyA9IHswfTsKLSsgICAgaW50IHN0YXRzX2VuYWJsZWQgPSBjdHgtPmN0eC0+ ZHNlY2ZnLmltcG9ydF9zdGF0czsKLSAKLS0gICAgTURCX1NUQVRfSU5JVChzdGF0cyk7Ci0rICAg IE1EQl9TVEFUX0lOSVQoc3RhdHMsIHN0YXRzX2VuYWJsZWQpOwotICAgICB3aGlsZSAoIXJjICYm ICFpbmZvX2lzX2ZpbmlzaGVkKGluZm8pKSB7Ci0tICAgICAgICBNREJfU1RBVF9TVEVQKHN0YXRz LCBNREJfU1RBVF9QQVVTRSk7Ci0rICAgICAgICBNREJfU1RBVF9TVEVQKHN0YXRzLCBNREJfU1RB VF9QQVVTRSwgc3RhdHNfZW5hYmxlZCk7Ci0gICAgICAgICB3YWl0X2Zvcl9zdGFydGluZyhpbmZv KTsKLS0gICAgICAgIE1EQl9TVEFUX1NURVAoc3RhdHMsIE1EQl9TVEFUX1JFQUQpOwotKyAgICAg ICAgTURCX1NUQVRfU1RFUChzdGF0cywgTURCX1NUQVRfUkVBRCwgc3RhdHNfZW5hYmxlZCk7Ci0g ICAgICAgICBzbG90ID0gZGJtZGJfaW1wb3J0X3FfZ2V0YWxsKCZjdHgtPndyaXRlcnEpOwotLSAg ICAgICAgTURCX1NUQVRfU1RFUChzdGF0cywgTURCX1NUQVRfUlVOKTsKLSsgICAgICAgIE1EQl9T VEFUX1NURVAoc3RhdHMsIE1EQl9TVEFUX1JVTiwgc3RhdHNfZW5hYmxlZCk7Ci0gICAgICAgICBp ZiAoaW5mb19pc19maW5pc2hlZChpbmZvKSkgewotICAgICAgICAgICAgIGRibWRiX2ltcG9ydF9x X2ZsdXNoKCZjdHgtPndyaXRlcnEpOwotICAgICAgICAgICAgIGJyZWFrOwotQEAgLTM5MzIsMTQg KzM5MzQsMTQgQEAgZGJtZGJfaW1wb3J0X3dyaXRlcih2b2lkKnBhcmFtKQotIAotICAgICAgICAg Zm9yICg7IHNsb3Q7IHNsb3QgPSBuZXh0c2xvdCkgewotICAgICAgICAgICAgIGlmICghdHhuKSB7 Ci0tICAgICAgICAgICAgICAgIE1EQl9TVEFUX1NURVAoc3RhdHMsIE1EQl9TVEFUX1RYTlNUQVJU KTsKLSsgICAgICAgICAgICAgICAgTURCX1NUQVRfU1RFUChzdGF0cywgTURCX1NUQVRfVFhOU1RB UlQsIHN0YXRzX2VuYWJsZWQpOwotICAgICAgICAgICAgICAgICByYyA9IFRYTl9CRUdJTihjdHgt PmN0eC0+ZW52LCBOVUxMLCAwLCAmdHhuKTsKLSAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg aWYgKCFyYykgewotLSAgICAgICAgICAgICAgICBNREJfU1RBVF9TVEVQKHN0YXRzLCBNREJfU1RB VF9XUklURSk7Ci0rICAgICAgICAgICAgICAgIE1EQl9TVEFUX1NURVAoc3RhdHMsIE1EQl9TVEFU X1dSSVRFLCBzdGF0c19lbmFibGVkKTsKLSAgICAgICAgICAgICAgICAgcmMgPSBNREJfUFVUKHR4 biwgc2xvdC0+ZGJpLT5kYmksICZzbG90LT5rZXksICZzbG90LT5kYXRhLCAwKTsKLSAgICAgICAg ICAgICB9Ci0tICAgICAgICAgICAgTURCX1NUQVRfU1RFUChzdGF0cywgTURCX1NUQVRfUlVOKTsK LSsgICAgICAgICAgICBNREJfU1RBVF9TVEVQKHN0YXRzLCBNREJfU1RBVF9SVU4sIHN0YXRzX2Vu YWJsZWQpOwotICAgICAgICAgICAgIG5leHRzbG90ID0gc2xvdC0+bmV4dDsKLSAgICAgICAgICAg ICBzbGFwaV9jaF9mcmVlKCh2b2lkKiopJnNsb3QpOwotICAgICAgICAgfQotQEAgLTM5NDcsOSAr Mzk0OSw5IEBAIGRibWRiX2ltcG9ydF93cml0ZXIodm9pZCpwYXJhbSkKLSAgICAgICAgICAgICBi cmVhazsKLSAgICAgICAgIH0KLSAgICAgICAgIGlmICAoY291bnQrKyA+PSBXUklURVJfTUFYX09Q U19JTl9UWE4pIHsKLS0gICAgICAgICAgICBNREJfU1RBVF9TVEVQKHN0YXRzLCBNREJfU1RBVF9U WE5TVE9QKTsKLSsgICAgICAgICAgICBNREJfU1RBVF9TVEVQKHN0YXRzLCBNREJfU1RBVF9UWE5T VE9QLCBzdGF0c19lbmFibGVkKTsKLSAgICAgICAgICAgICByYyA9IFRYTl9DT01NSVQodHhuKTsK LS0gICAgICAgICAgICBNREJfU1RBVF9TVEVQKHN0YXRzLCBNREJfU1RBVF9SVU4pOwotKyAgICAg ICAgICAgIE1EQl9TVEFUX1NURVAoc3RhdHMsIE1EQl9TVEFUX1JVTiwgc3RhdHNfZW5hYmxlZCk7 Ci0gICAgICAgICAgICAgaWYgKHJjKSB7Ci0gICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg ICAgICAgIH0KLUBAIC0zOTU4LDMyICszOTYwLDMyIEBAIGRibWRiX2ltcG9ydF93cml0ZXIodm9p ZCpwYXJhbSkKLSAgICAgICAgIH0KLSAgICAgfQotICAgICBpZiAodHhuICYmICFyYykgewotLSAg ICAgICAgTURCX1NUQVRfU1RFUChzdGF0cywgTURCX1NUQVRfVFhOU1RPUCk7Ci0rICAgICAgICBN REJfU1RBVF9TVEVQKHN0YXRzLCBNREJfU1RBVF9UWE5TVE9QLCBzdGF0c19lbmFibGVkKTsKLSAg ICAgICAgIHJjID0gVFhOX0NPTU1JVCh0eG4pOwotLSAgICAgICAgTURCX1NUQVRfU1RFUChzdGF0 cywgTURCX1NUQVRfUlVOKTsKLSsgICAgICAgIE1EQl9TVEFUX1NURVAoc3RhdHMsIE1EQl9TVEFU X1JVTiwgc3RhdHNfZW5hYmxlZCk7Ci0gICAgICAgICBpZiAoIXJjKSB7Ci0gICAgICAgICAgICAg dHhuID0gTlVMTDsKLSAgICAgICAgIH0KLSAgICAgfQotICAgICBpZiAodHhuKSB7Ci0tICAgICAg ICBNREJfU1RBVF9TVEVQKHN0YXRzLCBNREJfU1RBVF9UWE5TVE9QKTsKLSsgICAgICAgIE1EQl9T VEFUX1NURVAoc3RhdHMsIE1EQl9TVEFUX1RYTlNUT1AsIHN0YXRzX2VuYWJsZWQpOwotICAgICAg ICAgVFhOX0FCT1JUKHR4bik7Ci0tICAgICAgICBNREJfU1RBVF9TVEVQKHN0YXRzLCBNREJfU1RB VF9SVU4pOwotKyAgICAgICAgTURCX1NUQVRfU1RFUChzdGF0cywgTURCX1NUQVRfUlVOLCBzdGF0 c19lbmFibGVkKTsKLSAgICAgICAgIHR4biA9IE5VTEw7Ci0gICAgIH0KLS0gICAgTURCX1NUQVRf U1RFUChzdGF0cywgTURCX1NUQVRfV1JJVEUpOwotKyAgICBNREJfU1RBVF9TVEVQKHN0YXRzLCBN REJfU1RBVF9XUklURSwgc3RhdHNfZW5hYmxlZCk7Ci0gICAgIGlmICghcmMpIHsKLSAgICAgICAg IC8qIEVuc3VyZSB0aGF0IGFsbCBkYXRhIGFyZSB3cml0dGVuIG9uIGRpc2sgKi8KLSAgICAgICAg IHJjID0gbWRiX2Vudl9zeW5jKGN0eC0+Y3R4LT5lbnYsIDEpOwotICAgICB9Ci0tICAgIE1EQl9T VEFUX0VORChzdGF0cyk7Ci0rICAgIE1EQl9TVEFUX0VORChzdGF0cywgc3RhdHNfZW5hYmxlZCk7 Ci0gCi0gICAgIGlmIChyYykgewotICAgICAgICAgc2xhcGlfbG9nX2VycihTTEFQSV9MT0dfRVJS LCAiZGJtZGJfaW1wb3J0X3dyaXRlciIsCi0gICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gd3Jp dGUgaW4gdGhlIGRhdGFiYXNlLiBFcnJvciBpcyAweCV4OiAlcy5cbiIsCi0gICAgICAgICAgICAg ICAgIHJjLCBtZGJfc3RyZXJyb3IocmMpKTsKLSAgICAgICAgIHRocmVhZF9hYm9ydChpbmZvKTsK LS0gICAgfSBlbHNlIHsKLSsgICAgfSBlbHNlIGlmIChzdGF0c19lbmFibGVkKSB7Ci0gICAgICAg ICBjaGFyIGJ1ZlsyMDBdOwotICAgICAgICAgY2hhciAqc3VtbWFyeSA9IG1kYl9zdGF0X3N1bW1h cml6ZSgmc3RhdHMsIGJ1Ziwgc2l6ZW9mIGJ1Zik7Ci0gICAgICAgICBpZiAoc3VtbWFyeSkgewot ZGlmZiAtLWdpdCBhL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vZGItbWRiL21kYl9sYXll ci5oIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9kYi1tZGIvbWRiX2xheWVyLmgKLWlu ZGV4IDY0N2QwMGRiOS4uY2Y2ZDAwZGQ0IDEwMDY0NAotLS0tIGEvbGRhcC9zZXJ2ZXJzL3NsYXBk L2JhY2stbGRibS9kYi1tZGIvbWRiX2xheWVyLmgKLSsrKyBiL2xkYXAvc2VydmVycy9zbGFwZC9i YWNrLWxkYm0vZGItbWRiL21kYl9sYXllci5oCi1AQCAtNDEsNiArNDEsNyBAQAotICNkZWZpbmUg Q09ORklHX01EQl9NQVhfU0laRSAgICAgICAibnNzbGFwZC1tZGItbWF4LXNpemUiCi0gI2RlZmlu ZSBDT05GSUdfTURCX01BWF9SRUFERVJTICAgICJuc3NsYXBkLW1kYi1tYXgtcmVhZGVycyIKLSAj ZGVmaW5lIENPTkZJR19NREJfTUFYX0RCUyAgICAgICAgIm5zc2xhcGQtbWRiLW1heC1kYnMiCi0r I2RlZmluZSBDT05GSUdfTURCX0lNUE9SVF9TVEFUUyAgICJuc3NsYXBkLW1kYi1pbXBvcnQtc3Rh dHMiCi0gCi0gI2RlZmluZSBEQk1EQl9EQl9NSU5TSVpFICAgICAgICAgICAgICggNExMICogTUVH QUJZVEUgKQotICNkZWZpbmUgREJNREJfRElTS19SRVNFUlZFKGRpc2tzaXplKSAoKGRpc2tzaXpl KSoyVUxMLzEwMDBVTEwpCi1AQCAtNzYsNiArNzcsNyBAQCB0eXBlZGVmIHN0cnVjdAotICAgICBp bnQgbWF4X3JlYWRlcnM7Ci0gICAgIGludCBtYXhfZGJzOwotICAgICB1aW50NjRfdCBtYXhfc2l6 ZTsKLSsgICAgaW50IGltcG9ydF9zdGF0czsKLSB9IGRibWRiX2NmZ190OwotIAotIC8qIGNvbmZp ZyBwYXJhbWV0ZXJzIGxpbWl0cyAqLwotLS0gCi0yLjUyLjAKLQoKZGlmZiAtLWdpdCBhLzAwMTkt SXNzdWUtNzA5Ni0ybmQtRHVyaW5nLXJlcGxpY2F0aW9uLW9ubGluZS10b3RhbC1pbml0LS5wYXRj aCBiLzAwMTktSXNzdWUtNzA5Ni0ybmQtRHVyaW5nLXJlcGxpY2F0aW9uLW9ubGluZS10b3RhbC1p bml0LS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2NmMWQzNy4uMDAwMDAw MAotLS0gYS8wMDE5LUlzc3VlLTcwOTYtMm5kLUR1cmluZy1yZXBsaWNhdGlvbi1vbmxpbmUtdG90 YWwtaW5pdC0ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMzUgKzAsMCBAQAotRnJvbSA0MDQ4 NGNiMGI1MDM0YmMzYzFlMjNiMmFlMWYyZDM5ZWVkY2UwN2U5IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQotRnJvbTogVmlrdG9yIEFzaGlyb3YgPHZhc2hpcm92QHJlZGhhdC5jb20+Ci1EYXRlOiBU dWUsIDI3IEphbiAyMDI2IDE0OjI2OjI5ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIElzc3VlIDcw OTYgLSAoMm5kKSBEdXJpbmcgcmVwbGljYXRpb24gb25saW5lIHRvdGFsIGluaXQgdGhlCi0gZnVu Y3Rpb24gaWRsX2lkX2lzX2luX2lkbGlzdCBpcyBub3Qgc2NhbGluZyB3aXRoIGxhcmdlIGRhdGFi YXNlICgjNzIwNSkKLQotQnVnIERlc2NyaXB0aW9uOgotVGhlIGZpeCBmb3IgIzcwOTYgb3B0aW1p emVkIHRoZSBCREIgYmFja2VuZCdzIGBpZGxfbmV3X3JhbmdlX2ZldGNoKClgCi1mdW5jdGlvbiB0 byB1c2UgSUQgcmFuZ2VzIGluc3RlYWQgb2YgY2hlY2tpbmcgdGhlIGZ1bGwgSUQgbGlzdCBkdXJp bmcKLW9ubGluZSB0b3RhbCBpbml0aWFsaXphdGlvbi4gSG93ZXZlciwgdGhlIExNREIgYmFja2Vu ZCdzCi1gaWRsX2xtZGJfcmFuZ2VfZmV0Y2goKWAgZnVuY3Rpb24gYW5kIGl0cyBjYWxsYmFjawot YGlkbF9yYW5nZV9hZGRfaWRfY2IoKWAgd2VyZSBub3QgdXBkYXRlZCBhbmQgc3RpbGwgdXNlIHRo ZSBub24tc2NhbGluZwotYGlkbF9pZF9pc19pbl9pZGxpc3QoKWAgZnVuY3Rpb24uCi0KLUZpeCBE ZXNjcmlwdGlvbjoKLUFwcGx5IHRoZSBzYW1lIG9wdGltaXphdGlvbiB0byB0aGUgTE1EQiBiYWNr ZW5kLgotCi1GaXhlczogaHR0cHM6Ly9naXRodWIuY29tLzM4OWRzLzM4OS1kcy1iYXNlL2lzc3Vl cy83MDk2Ci0KLVJldmlld2VkIGJ5OiBAdGJvcmRheiwgQGRyb2lkZWNrIChUaGFua3MhKQotLS0t Ci0gbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9pZGxfbmV3LmMgfCAzOSArKysrKysrKysr LS0tLS0tLS0tLS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCAyNCBk ZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0v aWRsX25ldy5jIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9pZGxfbmV3LmMKLWluZGV4 IDJkOTc4MzUzZi4uNjEzZDUzODE1IDEwMDY0NAotLS0tIGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL2Jh Y2stbGRibS9pZGxfbmV3LmMKLSsrKyBiL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vaWRs X25ldy5jCi1AQCAtNjYsNiArNjYsNyBAQCB0eXBlZGVmIHN0cnVjdCB7Ci0gICAgIHNpemVfdCBs ZWZ0b3ZlcmxlbjsKLSAgICAgc2l6ZV90IGxlZnRvdmVyY250OwotICAgICBJRExpc3QgKmlkbDsK LSsgICAgSWRSYW5nZV90ICppZHJhbmdlX2xpc3Q7Ci0gICAgIGludCBmbGFnX2VycjsKLSAgICAg SUQgbGFzdGlkOwotICAgICBJRCBzdWZmaXg7Ci1AQCAtNzAwLDkgKzcwMSw5IEBAIGVycm9yOgot ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgfQotICAgICAgICAgfQotLSAgICAgICAg c2xhcGlfY2hfZnJlZSgodm9pZCAqKikmbGVmdG92ZXIpOwotLSAgICAgICAgaWRyYW5nZV9mcmVl KCZpZHJhbmdlX2xpc3QpOwotICAgICB9Ci0rICAgIHNsYXBpX2NoX2ZyZWUoKHZvaWQgKiopJmxl ZnRvdmVyKTsKLSsgICAgaWRyYW5nZV9mcmVlKCZpZHJhbmdlX2xpc3QpOwotICAgICBzbGFwaV9s b2dfZXJyKFNMQVBJX0xPR19GSUxURVIsICJpZGxfbmV3X3JhbmdlX2ZldGNoIiwKLSAgICAgICAg ICAgICAgICAgICAiRm91bmQgJWQgY2FuZGlkYXRlczsgZXJyb3IgY29kZSBpczogJWRcbiIsCi0g ICAgICAgICAgICAgICAgICAgaWRsID8gaWRsLT5iX25pZHMgOiAwLCAqZmxhZ19lcnIpOwotQEAg LTcxNiw3ICs3MTcsNiBAQCBzdGF0aWMgaW50Ci0gaWRsX3JhbmdlX2FkZF9pZF9jYihkYmlfdmFs X3QgKmtleSwgZGJpX3ZhbF90ICpkYXRhLCB2b2lkICpjdHgpCi0gewotICAgICBpZGxfcmFuZ2Vf Y3R4X3QgKnJjdHggPSBjdHg7Ci0tICAgIGludCBpZGxfcmMgPSAwOwotICAgICBJRCBpZCA9IDA7 Ci0gCi0gICAgIGlmIChrZXktPmRhdGEgPT0gTlVMTCkgewotQEAgLTc3OSwxMCArNzc5LDEyIEBA IGlkbF9yYW5nZV9hZGRfaWRfY2IoZGJpX3ZhbF90ICprZXksIGRiaV92YWxfdCAqZGF0YSwgdm9p ZCAqY3R4KQotICAgICAgICAgICAgICAqIGZvdW5kIGVudHJ5IGlzIHRoZSBvbmUgZnJvbSB0aGUg c3VmZml4Ci0gICAgICAgICAgICAgICovCi0gICAgICAgICAgICAgcmN0eC0+c3VmZml4ID0ga2V5 dmFsOwotLSAgICAgICAgICAgIGlkbF9yYyA9IGlkbF9hcHBlbmRfZXh0ZW5kKCZyY3R4LT5pZGws IGlkKTsKLS0gICAgICAgIH0gZWxzZSBpZiAoKGtleXZhbCA9PSByY3R4LT5zdWZmaXgpIHx8IGlk bF9pZF9pc19pbl9pZGxpc3QocmN0eC0+aWRsLCBrZXl2YWwpKSB7Ci0rICAgICAgICAgICAgaWRs X2FwcGVuZF9leHRlbmQoJnJjdHgtPmlkbCwgaWQpOwotKyAgICAgICAgICAgIGlkcmFuZ2VfYWRk X2lkKCZyY3R4LT5pZHJhbmdlX2xpc3QsIGlkKTsKLSsgICAgICAgIH0gZWxzZSBpZiAoKGtleXZh bCA9PSByY3R4LT5zdWZmaXgpIHx8IGlkbF9pZF9pc19pbl9pZGxpc3RfcmFuZ2VzKHJjdHgtPmlk bCwgcmN0eC0+aWRyYW5nZV9saXN0LCBrZXl2YWwpKSB7Ci0gICAgICAgICAgICAgLyogdGhlIHBh cmVudCBpcyB0aGUgc3VmZml4IG9yIGFscmVhZHkgaW4gaWRsLiAqLwotLSAgICAgICAgICAgIGlk bF9yYyA9IGlkbF9hcHBlbmRfZXh0ZW5kKCZyY3R4LT5pZGwsIGlkKTsKLSsgICAgICAgICAgICBp ZGxfYXBwZW5kX2V4dGVuZCgmcmN0eC0+aWRsLCBpZCk7Ci0rICAgICAgICAgICAgaWRyYW5nZV9h ZGRfaWQoJnJjdHgtPmlkcmFuZ2VfbGlzdCwgaWQpOwotICAgICAgICAgfSBlbHNlIHsKLSAgICAg ICAgICAgICAvKiBPdGhlcndpc2UsIGtlZXAgdGhlIHtrZXl2YWwsaWR9IGluIGxlZnRvdmVyIGFy cmF5ICovCi0gICAgICAgICAgICAgaWYgKCFyY3R4LT5sZWZ0b3ZlcikgewotQEAgLTc5NywxNCAr Nzk5LDcgQEAgaWRsX3JhbmdlX2FkZF9pZF9jYihkYmlfdmFsX3QgKmtleSwgZGJpX3ZhbF90ICpk YXRhLCB2b2lkICpjdHgpCi0gICAgICAgICAgICAgcmN0eC0+bGVmdG92ZXJjbnQrKzsKLSAgICAg ICAgIH0KLSAgICAgfSBlbHNlIHsKLS0gICAgICAgIGlkbF9yYyA9IGlkbF9hcHBlbmRfZXh0ZW5k KCZyY3R4LT5pZGwsIGlkKTsKLS0gICAgfQotLSAgICBpZiAoaWRsX3JjKSB7Ci0tICAgICAgICBz bGFwaV9sb2dfZXJyKFNMQVBJX0xPR19FUlIsICJpZGxfbG1kYl9yYW5nZV9mZXRjaCIsCi0tICAg ICAgICAgICAgICAgICAgICAgICJVbmFibGUgdG8gZXh0ZW5kIGlkIGxpc3QgKGVycj0lZClcbiIs IGlkbF9yYyk7Ci0tICAgICAgICBpZGxfZnJlZSgmcmN0eC0+aWRsKTsKLS0gICAgICAgIHJjdHgt PmZsYWdfZXJyID0gTERBUF9VTldJTExJTkdfVE9fUEVSRk9STTsKLS0gICAgICAgIHJldHVybiBE QklfUkNfTk9URk9VTkQ7Ci0rICAgICAgICBpZGxfYXBwZW5kX2V4dGVuZCgmcmN0eC0+aWRsLCBp ZCk7Ci0gICAgIH0KLSAjaWYgZGVmaW5lZChEQl9BTExJRFNfT05fUkVBRCkKLSAgICAgLyogZW5m b3JjZSB0aGUgYWxsaWRzIHJlYWQgbGltaXQgKi8KLUBAIC04NDEsNyArODM2LDYgQEAgaWRsX2xt ZGJfcmFuZ2VfZmV0Y2goCi0gewotICAgICBpbnQgcmV0ID0gMDsKLSAgICAgaW50IHJldDIgPSAw OwotLSAgICBpbnQgaWRsX3JjID0gMDsKLSAgICAgZGJpX2N1cnNvcl90IGN1cnNvciA9IHswfTsK LSAgICAgYmFja190eG4gc190eG47Ci0gICAgIHN0cnVjdCBsZGJtaW5mbyAqbGkgPSAoc3RydWN0 IGxkYm1pbmZvICopYmUtPmJlX2RhdGFiYXNlLT5wbGdfcHJpdmF0ZTsKLUBAIC04OTEsNiArODg1 LDcgQEAgaWRsX2xtZGJfcmFuZ2VfZmV0Y2goCi0gICAgIGlkbF9yYW5nZV9jdHgubGFzdGlkID0g MDsKLSAgICAgaWRsX3JhbmdlX2N0eC5jb3VudCA9IDA7Ci0gICAgIGlkbF9yYW5nZV9jdHguaW5k ZXhfaWQgPSBpbmRleF9pZDsKLSsgICAgaWRsX3JhbmdlX2N0eC5pZHJhbmdlX2xpc3QgPSBOVUxM OwotICAgICBpZiAob3BlcmF0b3IgJiBTTEFQSV9PUF9SQU5HRV9OT19JRExfU09SVCkgewotICAg ICAgICAgICAgIHN0cnVjdCBfYmFja19pbmZvX2luZGV4X2tleSBiY2tfaW5mbzsKLSAgICAgICAg ICAgICAvKiBXZSBhcmUgZG9pbmcgYSBidWxrIGltcG9ydAotQEAgLTk2NiwyMiArOTYxLDE4IEBA IGVycm9yOgotICAgICAgICAgd2hpbGUocmVtYWluaW5nID4gMCkgewotICAgICAgICAgICAgIGZv ciAoc2l6ZV90IGkgPSAwOyBpIDwgaWRsX3JhbmdlX2N0eC5sZWZ0b3ZlcmNudDsgaSsrKSB7Ci0g ICAgICAgICAgICAgICAgIGlmIChpZGxfcmFuZ2VfY3R4LmxlZnRvdmVyW2ldLmtleSA+IDAgJiYK LS0gICAgICAgICAgICAgICAgICAgIGlkbF9pZF9pc19pbl9pZGxpc3QoaWRsX3JhbmdlX2N0eC5p ZGwsIGlkbF9yYW5nZV9jdHgubGVmdG92ZXJbaV0ua2V5KSAhPSAwKSB7Ci0rICAgICAgICAgICAg ICAgICAgICBpZGxfaWRfaXNfaW5faWRsaXN0X3JhbmdlcyhpZGxfcmFuZ2VfY3R4LmlkbCwgaWRs X3JhbmdlX2N0eC5pZHJhbmdlX2xpc3QsIGlkbF9yYW5nZV9jdHgubGVmdG92ZXJbaV0ua2V5KSAh PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAvKiBpZiB0aGUgbGVmdG92ZXIga2V5IGhhcyBp dHMgcGFyZW50IGluIHRoZSBpZGwgKi8KLS0gICAgICAgICAgICAgICAgICAgIGlkbF9yYyA9IGlk bF9hcHBlbmRfZXh0ZW5kKCZpZGxfcmFuZ2VfY3R4LmlkbCwgaWRsX3JhbmdlX2N0eC5sZWZ0b3Zl cltpXS5pZCk7Ci0tICAgICAgICAgICAgICAgICAgICBpZiAoaWRsX3JjKSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgc2xhcGlfbG9nX2VycihTTEFQSV9MT0dfRVJSLCAiaWRsX2xtZGJfcmFu Z2VfZmV0Y2giLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVuYWJs ZSB0byBleHRlbmQgaWQgbGlzdCAoZXJyPSVkKVxuIiwgaWRsX3JjKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBpZGxfZnJlZSgmaWRsX3JhbmdlX2N0eC5pZGwpOwotLSAgICAgICAgICAgICAg ICAgICAgICAgIGJyZWFrOwotLSAgICAgICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAg ICAgICAgaWRsX2FwcGVuZF9leHRlbmQoJmlkbF9yYW5nZV9jdHguaWRsLCBpZGxfcmFuZ2VfY3R4 LmxlZnRvdmVyW2ldLmlkKTsKLSsgICAgICAgICAgICAgICAgICAgIGlkcmFuZ2VfYWRkX2lkKCZp ZGxfcmFuZ2VfY3R4LmlkcmFuZ2VfbGlzdCwgaWRsX3JhbmdlX2N0eC5sZWZ0b3ZlcltpXS5pZCk7 Ci0gICAgICAgICAgICAgICAgICAgICBpZGxfcmFuZ2VfY3R4LmxlZnRvdmVyW2ldLmtleSA9IDA7 Ci0gICAgICAgICAgICAgICAgICAgICByZW1haW5pbmctLTsKLSAgICAgICAgICAgICAgICAgfQot ICAgICAgICAgICAgIH0KLSAgICAgICAgIH0KLS0gICAgICAgIHNsYXBpX2NoX2ZyZWUoKHZvaWQg KiopJmlkbF9yYW5nZV9jdHgubGVmdG92ZXIpOwotICAgICB9Ci0rICAgIHNsYXBpX2NoX2ZyZWUo KHZvaWQgKiopJmlkbF9yYW5nZV9jdHgubGVmdG92ZXIpOwotKyAgICBpZHJhbmdlX2ZyZWUoJmlk bF9yYW5nZV9jdHguaWRyYW5nZV9saXN0KTsKLSAgICAgKmZsYWdfZXJyID0gaWRsX3JhbmdlX2N0 eC5mbGFnX2VycjsKLSAgICAgc2xhcGlfbG9nX2VycihTTEFQSV9MT0dfRklMVEVSLCAiaWRsX2xt ZGJfcmFuZ2VfZmV0Y2giLAotICAgICAgICAgICAgICAgICAgICJGb3VuZCAlZCBjYW5kaWRhdGVz OyBlcnJvciBjb2RlIGlzOiAlZFxuIiwKLS0tIAotMi41Mi4wCi0KCmRpZmYgLS1naXQgYS8wMDIw LUlzc3VlLTcyMDYtU2hvdWxkLWxvZy13aGV0aGVyLVRMUy1rZXktaXMtUFFDLW9yLW5vdC0ucGF0 Y2ggYi8wMDIwLUlzc3VlLTcyMDYtU2hvdWxkLWxvZy13aGV0aGVyLVRMUy1rZXktaXMtUFFDLW9y LW5vdC0ucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDQxNWUuLjAwMDAw MDAKLS0tIGEvMDAyMC1Jc3N1ZS03MjA2LVNob3VsZC1sb2ctd2hldGhlci1UTFMta2V5LWlzLVBR Qy1vci1ub3QtLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTQ5ICswLDAgQEAKLUZyb20gOGM2 ZDFjZmNhMjJmODdiMjBiNzlhNDE5Y2VhYmRiMTgyODQ2ZmY0YSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKLUZyb206IHByb2dpZXIzODkgPHByb2dpZXJAcmVkaGF0LmNvbT4KLURhdGU6IFR1ZSwg MjcgSmFuIDIwMjYgMTU6Mzk6MzkgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gSXNzdWUgNzIwNiAt IFNob3VsZCBsb2cgd2hldGhlciBUTFMga2V5IGlzIFBRQyBvciBub3QgKCM3MjA3KQotCi1BcHBl bmQgW1BRQ10gdG8gdGhlIGNpcGhlciBuYW1lIHdoZW4gbG9nZ2luZyBTU0wvVExTIGlmIHRoZSBL ZXkgRXhjaGFuZ2UgaXMgb25lIG9mIHRoZSBLRU0gZ3JvdXAKLUlmIGNvbm5lY3Rpb24gZGVidWcg bGV2ZWwgaXMgZW5hYmxlZCwgbG9ncyBpbiBlcnJvciBsb2cgdGhlIGtlYVR5cGUgYW5kIGtlYUdy b3VwIChhcyBpbnRlZ2VyKQotCi1Jc3N1ZTogIzcyMDYKLQotUmV2aWV3ZWQgYnk6IEB0Ym9yZGF6 LCBAZHJvaWRlY2sgKFRoYW5rcyEpCi0KLSogSXNzdWUgNzIwNiAtIFNob3VsZCBsb2cgd2hldGhl ciBUTFMga2V5IGlzIFBRQyBvciBub3QKLQotKiBGaXggU291cmNlcnkgQS9JIGNvbW1lbnRzCi0K LSogQ2hlY2sgUFFDIGluIHRlc3QgY2FzZQotCi0qIFVwZGF0ZSBsZGFwL3NlcnZlcnMvc2xhcGQv YXV0aC5jCi0KLUNvLWF1dGhvcmVkLWJ5OiBTaW1vbiBQaWNodWdpbiA8c3BpY2h1Z2lAcmVkaGF0 LmNvbT4KLQotLS0tLS0tLS0tCi0KLUNvLWF1dGhvcmVkLWJ5OiBTaW1vbiBQaWNodWdpbiA8c3Bp Y2h1Z2lAcmVkaGF0LmNvbT4KLS0tLQotIGRpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy90bHMvbWxk c2FfdGVzdC5weSB8ICA3ICsrKysKLSBsZGFwL3NlcnZlcnMvc2xhcGQvYXV0aC5jICAgICAgICAg ICAgICAgICAgfCA0NSArKysrKysrKysrKysrKysrKysrKystCi0gbGRhcC9zZXJ2ZXJzL3NsYXBk L3NzbC5jICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KLSAzIGZpbGVzIGNoYW5nZWQsIDUyIGlu c2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9kaXJzcnZ0ZXN0cy90 ZXN0cy9zdWl0ZXMvdGxzL21sZHNhX3Rlc3QucHkgYi9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMv dGxzL21sZHNhX3Rlc3QucHkKLWluZGV4IDJjODE1MDg4Yi4uZDZjYmFmNjYyIDEwMDY0NAotLS0t IGEvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL3Rscy9tbGRzYV90ZXN0LnB5Ci0rKysgYi9kaXJz cnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvdGxzL21sZHNhX3Rlc3QucHkKLUBAIC0yNzQsNiArMjc0LDcg QEAgZGVmIHRlc3RfbWxkc2EodG9wbyk6Ci0gICAgICIiIgotIAotICAgICBpbnN0ID0gdG9wby5z dGFuZGFsb25lCi0rICAgIGluc3QuY29uZmlnLnNldCgnbnNzbGFwZC1lcnJvcmxvZy1sZXZlbCcs IHN0cigxNjM4NCArIDgpKQotICAgICBpbnN0LmVuYWJsZV90bHMoKQotIAotICAgICBjbSA9IENl cnRtYXBMZWdhY3koaW5zdCkKLUBAIC0yOTMsNiArMjk0LDkgQEAgZGVmIHRlc3RfbWxkc2EodG9w byk6Ci0gICAgICAgICAgICAgJ2xvZ2luU2hlbGwnOiAnL2Jpbi9mYWxzZScsCi0gICAgICAgICAg ICAgJ2Rlc2NyaXB0aW9uJzogY2VydF9kbiB9KQotIAotKyAgICBpbnN0LmNvbmZpZy5zZXQoIm5z c2xhcGQtYWNjZXNzbG9nLWxvZ2J1ZmZlcmluZyIsICJvZmYiKQotKyAgICBpbnN0LmNvbmZpZy5z ZXQoIm5zc2xhcGQtZXJyb3Jsb2ctbG9nYnVmZmVyaW5nIiwgIm9mZiIpCi0rCi0gICAgIHRtcGRp cl9rd2FyZ3MgPSB7fQotICAgICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAxMik6Ci0gICAg ICAgICB0bXBkaXJfa3dhcmdzWydkZWxldGUnXSA9IG5vdCBERUJVR0dJTkcKLUBAIC0zMTMsNiAr MzE3LDkgQEAgZGVmIHRlc3RfbWxkc2EodG9wbyk6Ci0gICAgICAgICByZXMuY2hlY2tfcmV0dXJu Y29kZSgpCi0gICAgICAgICAjIElmIGxkYXBzZWFyY2ggaXMgc3VjY2Vzc2Z1bCB0aGVuIGRlZmF1 bHRuYW1pbmdjb250ZXh0IHNob3VsZCBiZSBpbiByZXMuc3Rkb3V0Ci0gICAgICAgICBhc3NlcnQg ImRlZmF1bHRuYW1pbmdjb250ZXh0IiBpbiByZXMuc3Rkb3V0Ci0rICAgIGFzc2VydCBpbnN0LmRz X2FjY2Vzc19sb2cubWF0Y2goJy4qUkVTVUxULipkbj0idWlkPXRlc3RfdXNlcixvdT1wZW9wbGUs ZGM9ZXhhbXBsZSxkYz1jb20iLionKQotKyAgICBhc3NlcnQgaW5zdC5kc19hY2Nlc3NfbG9nLm1h dGNoKCcuKlRMUy4qW1BRQ10uKicpCi0rICAgIGFzc2VydCBpbnN0LmRzX2Vycm9yX2xvZy5tYXRj aCgnLipjaGVja19wcWMuKicpCi0gCi0gCi0gaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLWRp ZmYgLS1naXQgYS9sZGFwL3NlcnZlcnMvc2xhcGQvYXV0aC5jIGIvbGRhcC9zZXJ2ZXJzL3NsYXBk L2F1dGguYwotaW5kZXggNDhlNGI3MTI5Li45ZTgzNDA4ZDQgMTAwNjQ0Ci0tLS0gYS9sZGFwL3Nl cnZlcnMvc2xhcGQvYXV0aC5jCi0rKysgYi9sZGFwL3NlcnZlcnMvc2xhcGQvYXV0aC5jCi1AQCAt Mzk1LDYgKzM5NSw0MyBAQCBoYW5kbGVfYmFkX2NlcnRpZmljYXRlKHZvaWQgKmNsaWVudERhdGEs IFBSRmlsZURlc2MgKnByZmQpCi0gfQotIAotIAotKy8qCi0rICogRGV0ZXJtaW5lIGlmIHRoZSBj b25uZWN0aW9uIGtleSBleGNoYW5nZSBpcyBQb3N0IFF1YW50dW0gQ3J5cHRvZ3JhcGh5IGF3YXJl LgotKyAqIFRoaXMgZnVuY3Rpb24gbWF5IG5lZWQgdG8gZXZvbHZlIHdpdGggTlNTIGFzIG1vcmUg UFFDIG1ldGhvZHMgZ2V0IHN1cHBvcnRlZC4KLSsgKi8KLStzdGF0aWMgYm9vbAotK2NoZWNrX3Bx Yyh1aW50NjRfdCBjb25uaWQsIFNTTENoYW5uZWxJbmZvICpzY2kpCi0rewotKyAgICAvKgotKyAg ICAgKiBGWUk6IFRvIGludGVycHJldCB0aGUgdmFsdWVzOgotKyAgICAgKiBLZWFUeXBlIGFuZCBL ZWFHcm91cCB2YWx1ZXMgYXJlIGRlZmluZWQgaW4KLSsgICAgICogaHR0cHM6Ly9naXRodWIuY29t L25zcy1kZXYvbnNzL2Jsb2IvbWFzdGVyL2xpYi9zc2wvc3NsdC5oCi0rICAgICAqIFJlc3BlY3Rp dmVseSBpbiBTU0xLRUFUeXBlIGFuZCBTU0xOYW1lZEdyb3VwIGVudW1zCi0rICAgICAqLwotKyAg ICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xPR19DT05OUywgImNoZWNrX3BxYyIsICJjb25uPSUiIFBS SXU2NCAiIFRMUyBrZWFUeXBlPSVkIGtlYUdyb3VwPSVkXG4iLAotKyAgICAgICAgICAgICAgICAg IGNvbm5pZCwgc2NpLT5rZWFUeXBlLCBzY2ktPmtlYUdyb3VwKTsKLSsjaWZkZWYgTUFYX01MX0RT QV9QUklWQVRFX0tFWV9MRU4KLSsgICAgLyogTlNTIHN1cHBvcnRzIFBRQyAoYmVjYXVzZSBvZiB0 aGUgaWZkZWYpLiBOb3cgbGV0cyBjaGVjayBpZiB0aGUgY29ubmVjdGlvbiB1c2VzIGl0ICovCi0r ICAgIC8qIENoZWNrIHRoYXQgUFFDIEtlYVR5cGUgaXMgaHlicmlkICovCi0rICAgIHN3aXRjaCAo c2NpLT5rZWFUeXBlKSB7Ci0rICAgICAgICBjYXNlIHNzbF9rZWFfZWNkaF9oeWJyaWQ6Ci0rICAg ICAgICBjYXNlIHNzbF9rZWFfZWNkaF9oeWJyaWRfcHNrOgotKyAgICAgICAgICAgIGJyZWFrOwot KyAgICAgICAgZGVmYXVsdDoKLSsgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0rICAgIH0KLSsg ICAgLyogQ2hlY2sgdGhhdCBQUUMga2VhR3JvdXAgaXMgS0VNICovCi0rICAgIHN3aXRjaCAoc2Np LT5rZWFHcm91cCkgewotKyAgICAgICAgY2FzZSBzc2xfZ3JwX2tlbV9zZWNwMjU2cjFtbGtlbTc2 ODoKLSsgICAgICAgIGNhc2Ugc3NsX2dycF9rZW1fc2VjcDM4NHIxbWxrZW0xMDI0OgotKyAgICAg ICAgY2FzZSBzc2xfZ3JwX2tlbV9tbGtlbTc2OHgyNTUxOToKLSsgICAgICAgIGNhc2Ugc3NsX2dy cF9rZW1feHliZXI3NjhkMDA6Ci0rICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0rICAgIH0KLSsj ZW5kaWYKLSsgICAgcmV0dXJuIGZhbHNlOwotK30KLSsKLSAvKgotICAqIEdldCBhbiBpZGVudGl0 eSBmcm9tIHRoZSBjbGllbnQncyBjZXJ0aWZpY2F0ZSAoaWYgYW55IHdhcyBzZW50KS4KLSAgKgot QEAgLTQxNyw2ICs0NTQsNyBAQCBoYW5kbGVfaGFuZHNoYWtlX2RvbmUoUFJGaWxlRGVzYyAqcHJm ZCwgdm9pZCAqY2xpZW50RGF0YSkKLSAgICAgU1NMQ2lwaGVyU3VpdGVJbmZvIGNpcGhlckluZm87 Ci0gICAgIGNoYXIgKnN1YmplY3QgPSBOVUxMOwotICAgICBjaGFyIHNzbHZlcnNpb25bNjRdOwot KyAgICBib29sIHBxYyA9IGZhbHNlOwotICAgICBpbnQgZXJyID0gMDsKLSAKLSAgICAgaWYgKChz bGFwZF9zc2xfZ2V0Q2hhbm5lbEluZm8ocHJmZCwgJmNoYW5uZWxJbmZvLCBzaXplb2YoY2hhbm5l bEluZm8pKSkgIT0gU0VDU3VjY2VzcykgewotQEAgLTQ1NCw3ICs0OTIsMTIgQEAgaGFuZGxlX2hh bmRzaGFrZV9kb25lKFBSRmlsZURlc2MgKnByZmQsIHZvaWQgKmNsaWVudERhdGEpCi0gICAgIH0K LSAKLSAgICAga2V5U2l6ZSA9IGNpcGhlckluZm8uZWZmZWN0aXZlS2V5Qml0czsKLS0gICAgY2lw aGVyID0gc2xhcGlfY2hfc3RyZHVwKGNpcGhlckluZm8uc3ltQ2lwaGVyTmFtZSk7Ci0rICAgIHBx YyA9IGNoZWNrX3BxYyhjb25uLT5jX2Nvbm5pZCwgJmNoYW5uZWxJbmZvKTsKLSsgICAgaWYgKHBx YykgewotKyAgICAgICAgY2lwaGVyID0gc2xhcGlfY2hfc21wcmludGYoIiVzW1BRQ10iLCBjaXBo ZXJJbmZvLnN5bUNpcGhlck5hbWUpOwotKyAgICB9IGVsc2UgewotKyAgICAgICAgY2lwaGVyID0g c2xhcGlfY2hfc3RyZHVwKGNpcGhlckluZm8uc3ltQ2lwaGVyTmFtZSk7Ci0rICAgIH0KLSAKLSAg ICAgLyogSWYgaW5zaWRlIGFuIFN0YXJ0IFRMUyBvcGVyYXRpb24sIHBlcmZvcm0gdGhlIHByaXZh Y3kgbGV2ZWwgZGlzY292ZXJ5Ci0gICAgICAqIGFuZCBpZiB0aGUgc2VjdXJpdHkgZGVncmVlIGFj aGlldmVkIGFmdGVyIHRoZSBoYW5kc2hha2UgaXMgbm90IHJlY2tvbmVkCi1kaWZmIC0tZ2l0IGEv bGRhcC9zZXJ2ZXJzL3NsYXBkL3NzbC5jIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL3NzbC5jCi1pbmRl eCAwNTNkYjU0MjQuLjdkNWRiMmNkZCAxMDA2NDQKLS0tLSBhL2xkYXAvc2VydmVycy9zbGFwZC9z c2wuYwotKysrIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL3NzbC5jCi1AQCAtNzQ4LDcgKzc0OCw3IEBA IFNTTFBMQ1lfSW5zdGFsbCh2b2lkKQotICAgICBpZiAoIXNsYXBkX3BrMTFfaXNGSVBTKCkpIHsK LSAgICAgICAgIC8qIFNldCBleHBsaWNpdGx5IFBRQyBhbGdvcml0aG0gcG9saWN5IGlmIGl0IGlz IG5vdCBzZXQgYnkgZGVmYXVsdCAqLwotICAgICAgICAgZm9yIChzaXplX3QgaT0wOyBzID09IFNF Q1N1Y2Nlc3MgJiYgaSA8IFBSX0FSUkFZX1NJWkUob2lkcyk7IGkrKykgewotLSAgICAgICAgICAg IGludCBvZmxhZ3MgPSAwOwotKyAgICAgICAgICAgIFBSVWludDMyIG9mbGFncyA9IDA7Ci0gICAg ICAgICAgICAgKHZvaWQpIE5TU19HZXRBbGdvcml0aG1Qb2xpY3kob2lkc1tpXSwgJm9mbGFncyk7 Ci0gICAgICAgICAgICAgaWYgKChvZmxhZ3MgJiBmbGFncykgIT0gZmxhZ3MpIHsKLSAgICAgICAg ICAgICAgICAgcyA9IE5TU19TZXRBbGdvcml0aG1Qb2xpY3kob2lkc1tpXSwgZmxhZ3MsIDApOwot LS0gCi0yLjUyLjAKLQoKZGlmZiAtLWdpdCBhLzAwMjEtSXNzdWUtNzAyNy0ybmQtMzg5LWRzLWJh c2UtT3BlblNjYW5IdWItTGVha3MtRGV0ZWN0ZS5wYXRjaCBiLzAwMjEtSXNzdWUtNzAyNy0ybmQt Mzg5LWRzLWJhc2UtT3BlblNjYW5IdWItTGVha3MtRGV0ZWN0ZS5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDgyNzdmYi4uMDAwMDAwMAotLS0gYS8wMDIxLUlzc3VlLTcwMjct Mm5kLTM4OS1kcy1iYXNlLU9wZW5TY2FuSHViLUxlYWtzLURldGVjdGUucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSw1MyArMCwwIEBACi1Gcm9tIDI3ZDNlYTIxMTg0N2ZhN2FlNjc0YzVlNGRjZjQ4 NTcwNmU0YWM1OTEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBWaWt0b3IgQXNoaXJv diA8dmFzaGlyb3ZAcmVkaGF0LmNvbT4KLURhdGU6IEZyaSwgMzAgSmFuIDIwMjYgMTI6MDA6MTMg KzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gSXNzdWUgNzAyNyAtICgybmQpIDM4OS1kcy1iYXNlIE9w ZW5TY2FuSHViIExlYWtzIERldGVjdGVkCi0gKCM3MjExKQotCi1GaXggRGVzY3JpcHRpb246Ci1V cGRhdGUgY292ZXJpdHkgYW5ub3RhdGlvbnMuCi0KLVJlbGF0ZXM6IGh0dHBzOi8vZ2l0aHViLmNv bS8zODlkcy8zODktZHMtYmFzZS9pc3N1ZXMvNzAyNwotCi1SZXZpZXdlZCBieTogQGFhZGhpa2Fy IChUaGFua3MhKQotLS0tCi0gbGRhcC9zZXJ2ZXJzL3NsYXBkL2xvZy5jIHwgNiArKystLS0KLSAx IGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQotCi1kaWZmIC0t Z2l0IGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL2xvZy5jIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2xvZy5j Ci1pbmRleCBlYTc0NGFjMWUuLjgwYzA3MzgyYSAxMDA2NDQKLS0tLSBhL2xkYXAvc2VydmVycy9z bGFwZC9sb2cuYwotKysrIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2xvZy5jCi1AQCAtMjA2LDggKzIw Niw4IEBAIGNvbXByZXNzX2xvZ19maWxlKGNoYXIgKmxvZ19uYW1lLCBpbnQzMl90IG1vZGUpCi0g Ci0gICAgIGlmICgoc291cmNlID0gZm9wZW4obG9nX25hbWUsICJyIikpID09IE5VTEwpIHsKLSAg ICAgICAgIC8qIEZhaWxlZCB0byBvcGVuIGxvZyBmaWxlICovCi0tICAgICAgICAvKiBjb3Zlcml0 eVtsZWFrZWRfc3RvcmFnZV0gZ3pjbG9zZSBkb2VzIGNsb3NlIEZEICovCi0gICAgICAgICBnemNs b3NlKG91dGZpbGUpOwotKyAgICAgICAgLyogY292ZXJpdHlbbGVha2VkX2hhbmRsZV0gZ3pjbG9z ZSBkb2VzIGNsb3NlIEZEICovCi0gICAgICAgICByZXR1cm4gLTE7Ci0gICAgIH0KLSAKLUBAIC0y MTcsMTcgKzIxNywxNyBAQCBjb21wcmVzc19sb2dfZmlsZShjaGFyICpsb2dfbmFtZSwgaW50MzJf dCBtb2RlKQotICAgICAgICAgaWYgKGJ5dGVzX3dyaXR0ZW4gPT0gMCkKLSAgICAgICAgIHsKLSAg ICAgICAgICAgICBmY2xvc2Uoc291cmNlKTsKLS0gICAgICAgICAgICAvKiBjb3Zlcml0eVtsZWFr ZWRfc3RvcmFnZV0gZ3pjbG9zZSBkb2VzIGNsb3NlIEZEICovCi0gICAgICAgICAgICAgZ3pjbG9z ZShvdXRmaWxlKTsKLSsgICAgICAgICAgICAvKiBjb3Zlcml0eVtsZWFrZWRfaGFuZGxlXSBnemNs b3NlIGRvZXMgY2xvc2UgRkQgKi8KLSAgICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgICB9 Ci0gICAgICAgICBieXRlc19yZWFkID0gZnJlYWQoYnVmLCAxLCBMT0dfQ0hVTkssIHNvdXJjZSk7 Ci0gICAgIH0KLS0gICAgLyogY292ZXJpdHlbbGVha2VkX3N0b3JhZ2VdIGd6Y2xvc2UgZG9lcyBj bG9zZSBGRCAqLwotICAgICBnemNsb3NlKG91dGZpbGUpOwotICAgICBmY2xvc2Uoc291cmNlKTsK LSAgICAgUFJfRGVsZXRlKGxvZ19uYW1lKTsgLyogcmVtb3ZlIHRoZSBvbGQgdW5jb21wcmVzc2Vk IGxvZyAqLwotIAotKyAgICAvKiBjb3Zlcml0eVtsZWFrZWRfaGFuZGxlXSBnemNsb3NlIGRvZXMg Y2xvc2UgRkQgKi8KLSAgICAgcmV0dXJuIDA7Ci0gfQotIAotLS0gCi0yLjUyLjAKLQoKZGlmZiAt LWdpdCBhLzAwMjItSXNzdWUtNzIxMy1NREJfQkFEX1ZBTFNJWkUtZXJyb3Itd2hpbGUtaGFuZGxp bmctVkxWLS5wYXRjaCBiLzAwMjItSXNzdWUtNzIxMy1NREJfQkFEX1ZBTFNJWkUtZXJyb3Itd2hp bGUtaGFuZGxpbmctVkxWLS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGUw NjliMy4uMDAwMDAwMAotLS0gYS8wMDIyLUlzc3VlLTcyMTMtTURCX0JBRF9WQUxTSVpFLWVycm9y LXdoaWxlLWhhbmRsaW5nLVZMVi0ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxOTUgKzAsMCBA QAotRnJvbSA1ZWJjZTIyZDQyMTRiZWM1ZWQ5NGFkODRjNDQ0ODE2NGJlOTkzODlhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQotRnJvbTogcHJvZ2llcjM4OSA8cHJvZ2llckByZWRoYXQuY29tPgot RGF0ZTogTW9uLCAyIEZlYiAyMDI2IDE1OjM5OjE4ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIElz c3VlIDcyMTMgLSBNREJfQkFEX1ZBTFNJWkUgZXJyb3Igd2hpbGUgaGFuZGxpbmcgVkxWICgjNzIx NCkKLQotKiBJc3N1ZSA3MjEzIC0gTURCX0JBRF9WQUxTSVpFIGVycm9yIHdoaWxlIGhhbmRsaW5n IFZMVgotQXZvaWQgZmFpbGluZyBsbWRiIG9wZXJhdGlvbiB3aGVuIGhhbmRsaW5nIFZMViBpbmRl eCBieSB0cnVuY2F0aW5nIHRoZSBrZXkgc28gdGhhdCBrZXkrZGF0YSBpcyBzbWFsbCBlbm91Z2gu Ci0KLUlzc3VlOiAjNzIxMwotCi1SZXZpZXdlZCBieTogQG1yZXlub2xkczM4OSAsIEB2YXNoaXJv diAoVGhhbmtzISkKLQotQXNzaXN0ZWQgYnk6IENsYXVkZSBBL0kKLS0tLQotIC4uLi90ZXN0cy9z dWl0ZXMvdmx2L3JlZ3Jlc3Npb25fdGVzdC5weSAgICAgICB8IDExMCArKysrKysrKysrKysrKysr KysKLSAuLi4vc2xhcGQvYmFjay1sZGJtL2RiLW1kYi9tZGJfbGF5ZXIuYyAgICAgICAgfCAgIDUg KwotIGxkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vdmx2LmMgICAgICAgICAgICB8ICAgNyAr LQotIDMgZmlsZXMgY2hhbmdlZCwgMTIxIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKLQot ZGlmZiAtLWdpdCBhL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy92bHYvcmVncmVzc2lvbl90ZXN0 LnB5IGIvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL3Zsdi9yZWdyZXNzaW9uX3Rlc3QucHkKLWlu ZGV4IGY3ODQ3YWM3NC4uN2NkZjE2YTg0IDEwMDY0NAotLS0tIGEvZGlyc3J2dGVzdHMvdGVzdHMv c3VpdGVzL3Zsdi9yZWdyZXNzaW9uX3Rlc3QucHkKLSsrKyBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1 aXRlcy92bHYvcmVncmVzc2lvbl90ZXN0LnB5Ci1AQCAtMTE3NSw2ICsxMTc1LDExNiBAQCBkZWYg dGVzdF92bHZfd2l0aF9tcih2bHZfc2V0dXBfd2l0aF91aWRfbXIpOgotIAotIAotIAotK2RlZiB0 ZXN0X3Zsdl9sb25nX2F0dHJpYnV0ZV92YWx1ZSh0b3BvbG9neV9zdCwgcmVxdWVzdCk6Ci0rICAg ICIiIgotKyAgICBUZXN0IFZMViB3aXRoIGFuIGVudHJ5IGNvbnRhaW5pbmcgYSB2ZXJ5IGxvbmcg YXR0cmlidXRlIHZhbHVlICgySykuCi0rCi0rICAgIDppZDogOTkxMjZmYTQtMDAzZS0xMWYxLWI3 ZDYtYzg1MzA5ZDVjM2UzCi0rICAgIDpzZXR1cDogU3RhbmRhbG9uZSBpbnN0YW5jZS4KLSsgICAg OnN0ZXBzOgotKyAgICAgICAgMS4gQ2xlYW51cCBsZWZ0b3ZlciBmcm9tIHByZXZpb3VzIHRlc3Rz Ci0rICAgICAgICAyLiBDcmVhdGUgVkxWIHNlYXJjaCBhbmQgaW5kZXggb24gY24gYXR0cmlidXRl Ci0rICAgICAgICAzLiBSZWluZGV4IFZMVgotKyAgICAgICAgNC4gQWRkIGFuIGVudHJ5IHdpdGgg YSBjbiBhdHRyaWJ1dGUgaGF2aW5nIDJLIGNoYXJhY3RlciB2YWx1ZQotKyAgICAgICAgNS4gVmVy aWZ5IHRoZSBlbnRyeSB3YXMgYWRkZWQgc3VjY2Vzc2Z1bGx5Ci0rICAgICAgICA2LiBQZXJmb3Jt IGEgVkxWIHNlYXJjaCB0byBlbnN1cmUgaXQgc3RpbGwgd29ya3MKLSsgICAgICAgIDcuIEFkZCBh bm90aGVyIGVudHJ5IHdpdGggYSBjbiBhdHRyaWJ1dGUgaGF2aW5nIDJLIGNoYXJhY3RlciB2YWx1 ZQotKyAgICAgICAgOC4gVmVyaWZ5IHRoZSBlbnRyeSB3YXMgYWRkZWQgc3VjY2Vzc2Z1bGx5Ci0r ICAgICAgICA5LiBQZXJmb3JtIGEgVkxWIHNlYXJjaCB0byBlbnN1cmUgaXQgc3RpbGwgd29ya3MK LSsgICAgOmV4cGVjdGVkcmVzdWx0czoKLSsgICAgICAgIDEuIFNob3VsZCBTdWNjZXNzLgotKyAg ICAgICAgMi4gU2hvdWxkIFN1Y2Nlc3MuCi0rICAgICAgICAzLiBTaG91bGQgU3VjY2Vzcy4KLSsg ICAgICAgIDQuIFNob3VsZCBTdWNjZXNzLgotKyAgICAgICAgNS4gU2hvdWxkIFN1Y2Nlc3MuCi0r ICAgICAgICA2LiBTaG91bGQgU3VjY2Vzcy4KLSsgICAgICAgIDcuIFNob3VsZCBTdWNjZXNzLgot KyAgICAgICAgOC4gU2hvdWxkIFN1Y2Nlc3MuCi0rICAgICAgICA5LiBTaG91bGQgU3VjY2Vzcy4K LSsgICAgIiIiCi0rICAgIGluc3QgPSB0b3BvbG9neV9zdC5zdGFuZGFsb25lCi0rICAgIHJlaW5k ZXhfdGFzayA9IFRhc2tzKGluc3QpCi0rCi0rICAgIHVzZXJzX3RvX2RlbGV0ZSA9IFtdCi0rCi0r ICAgIGRlZiBmaW4oKToKLSsgICAgICAgIGNsZWFudXAoaW5zdCkKLSsgICAgICAgICMgQ2xlYW4g dGhlIGFkZGVkIHVzZXJzCi0rICAgICAgICBmb3IgdXNlciBpbiB1c2Vyc190b19kZWxldGU6Ci0r ICAgICAgICAgICAgdXNlci5kZWxldGUoKQotKwotKyAgICBpZiBub3QgREVCVUdHSU5HOgotKyAg ICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoZmluKQotKwotKyAgICAjIENsZWFuIHByZXZpb3Vz IHRlc3RzIGxlZnRvdmVyCi0rICAgIGZpbigpCi0rCi0rICAgICMgQ3JlYXRlIFZMViBzZWFyY2gg YW5kIGluZGV4Ci0rICAgIHZsdl9zZWFyY2gsIHZsdl9pbmRleCA9IGNyZWF0ZV92bHZfc2VhcmNo X2FuZF9pbmRleChpbnN0KQotKyAgICBhc3NlcnQgcmVpbmRleF90YXNrLnJlaW5kZXgoCi0rICAg ICAgICBzdWZmaXg9REVGQVVMVF9TVUZGSVgsCi0rICAgICAgICBhdHRybmFtZT12bHZfaW5kZXgu cmRuLAotKyAgICAgICAgYXJncz17VEFTS19XQUlUOiBUcnVlfSwKLSsgICAgICAgIHZsdj1UcnVl Ci0rICAgICkgPT0gMAotKwotKyAgICAjIEFkZCBhIGZldyByZWd1bGFyIHVzZXJzIGZpcnN0Ci0r ICAgIGFkZF91c2VycyhpbnN0LCAxMCkKLSsKLSsgICAgIyBDcmVhdGUgYSB2ZXJ5IGxvbmcgY24g dmFsdWUgKDJLIGNoYXJhY3RlcnMpCi0rICAgIGxvbmdfY25fdmFsdWUgPSAnYScgKiAyMDQ4ICsg JzEnCi0rCi0rICAgICMgQWRkIGFuIGVudHJ5IHdpdGggdGhlIGxvbmcgY24gYXR0cmlidXRlCi0r ICAgIHVzZXJzID0gVXNlckFjY291bnRzKGluc3QsIERFRkFVTFRfU1VGRklYKQotKyAgICB1c2Vy X3Byb3BlcnRpZXMgPSB7Ci0rICAgICAgICAndWlkJzogJ2xvbmdjbnVzZXIxJywKLSsgICAgICAg ICdjbic6IGxvbmdfY25fdmFsdWUsCi0rICAgICAgICAnc24nOiAndXNlcjEnLAotKyAgICAgICAg J3VpZE51bWJlcic6ICc5OTk5OScsCi0rICAgICAgICAnZ2lkTnVtYmVyJzogJzk5OTk5JywKLSsg ICAgICAgICdob21lRGlyZWN0b3J5JzogJy9ob21lL2xvbmdjbnVzZXIxJwotKyAgICB9Ci0rICAg IHVzZXIgPSB1c2Vycy5jcmVhdGUocHJvcGVydGllcz11c2VyX3Byb3BlcnRpZXMpCi0rICAgIHVz ZXJzX3RvX2RlbGV0ZS5hcHBlbmQodXNlcik7Ci0rCi0rICAgICMgVmVyaWZ5IHRoZSBlbnRyeSB3 YXMgY3JlYXRlZCBhbmQgaGFzIHRoZSBsb25nIGNuIHZhbHVlCi0rICAgIGVudHJ5ID0gdXNlci5n ZXRfYXR0cl92YWxzX3V0ZjgoJ2NuJykKLSsgICAgYXNzZXJ0IGVudHJ5WzBdID09IGxvbmdfY25f dmFsdWUKLSsgICAgbG9nLmluZm8oZidTdWNjZXNzZnVsbHkgY3JlYXRlZCB1c2VyIHdpdGggY24g bGVuZ3RoOiB7bGVuKGVudHJ5WzBdKX0nKQotKwotKyAgICAjIFBlcmZvcm0gVkxWIHNlYXJjaCB0 byBlbnN1cmUgVkxWIHN0aWxsIHdvcmtzIHdpdGggbG9uZyBhdHRyaWJ1dGUgdmFsdWVzCi0rICAg IGNvbm4gPSBvcGVuX25ld19sZGFwaV9jb25uKGluc3Quc2VydmVyaWQpCi0rICAgIGNvdW50ID0g bGVuKGNvbm4uc2VhcmNoX3MoREVGQVVMVF9TVUZGSVgsIGxkYXAuU0NPUEVfU1VCVFJFRSwgIih1 aWQ9KikiKSkKLSsgICAgYXNzZXJ0IGNvdW50ID4gMAotKyAgICBsb2cuaW5mbyhmJ1ZMViBzZWFy Y2ggc3VjY2Vzc2Z1bCB3aXRoIHtjb3VudH0gZW50cmllcyBpbmNsdWRpbmcgZW50cnkgd2l0aCAy SyBjbiB2YWx1ZScpCi0rCi0rICAgICMgQWRkIGFub3RoZXIgZW50cnkgd2l0aCB0aGUgbG9uZyBj biBhdHRyaWJ1dGUKLSsgICAgbG9uZ19jbl92YWx1ZSA9ICdhJyAqIDIwNDggKyAnMicKLSsKLSsg ICAgdXNlcl9wcm9wZXJ0aWVzID0gewotKyAgICAgICAgJ3VpZCc6ICdsb25nY251c2VyMicsCi0r ICAgICAgICAnY24nOiBsb25nX2NuX3ZhbHVlLAotKyAgICAgICAgJ3NuJzogJ3VzZXIyJywKLSsg ICAgICAgICd1aWROdW1iZXInOiAnOTk5OTgnLAotKyAgICAgICAgJ2dpZE51bWJlcic6ICc5OTk5 OCcsCi0rICAgICAgICAnaG9tZURpcmVjdG9yeSc6ICcvaG9tZS9sb25nY251c2VyMicKLSsgICAg fQotKyAgICB1c2VyID0gdXNlcnMuY3JlYXRlKHByb3BlcnRpZXM9dXNlcl9wcm9wZXJ0aWVzKQot KyAgICB1c2Vyc190b19kZWxldGUuYXBwZW5kKHVzZXIpOwotKwotKyAgICAjIFZlcmlmeSB0aGUg ZW50cnkgd2FzIGNyZWF0ZWQgYW5kIGhhcyB0aGUgbG9uZyBjbiB2YWx1ZQotKyAgICBlbnRyeSA9 IHVzZXIuZ2V0X2F0dHJfdmFsc191dGY4KCdjbicpCi0rICAgIGFzc2VydCBlbnRyeVswXSA9PSBs b25nX2NuX3ZhbHVlCi0rICAgIGxvZy5pbmZvKGYnU3VjY2Vzc2Z1bGx5IGNyZWF0ZWQgdXNlciB3 aXRoIGNuIGxlbmd0aDoge2xlbihlbnRyeVswXSl9JykKLSsKLSsgICAgIyBQZXJmb3JtIFZMViBz ZWFyY2ggdG8gZW5zdXJlIFZMViBzdGlsbCB3b3JrcyB3aXRoIGxvbmcgYXR0cmlidXRlIHZhbHVl cwotKyAgICBjb25uID0gb3Blbl9uZXdfbGRhcGlfY29ubihpbnN0LnNlcnZlcmlkKQotKyAgICBj b3VudCA9IGxlbihjb25uLnNlYXJjaF9zKERFRkFVTFRfU1VGRklYLCBsZGFwLlNDT1BFX1NVQlRS RUUsICIodWlkPSopIikpCi0rICAgIGFzc2VydCBjb3VudCA+IDEKLSsgICAgbG9nLmluZm8oZidW TFYgc2VhcmNoIHN1Y2Nlc3NmdWwgd2l0aCB7Y291bnR9IGVudHJpZXMgaW5jbHVkaW5nIGVudHJ5 IHdpdGggMksgY24gdmFsdWUnKQotKwotKwotKwotIGlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6 Ci0gICAgICMgUnVuIGlzb2xhdGVkCi0gICAgICMgLXMgZm9yIERFQlVHIG1vZGUKLWRpZmYgLS1n aXQgYS9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2RiLW1kYi9tZGJfbGF5ZXIuYyBiL2xk YXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vZGItbWRiL21kYl9sYXllci5jCi1pbmRleCBkMzIw ZWNiZWIuLmNkNzk3NjIxZCAxMDA2NDQKLS0tLSBhL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxk Ym0vZGItbWRiL21kYl9sYXllci5jCi0rKysgYi9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJt L2RiLW1kYi9tZGJfbGF5ZXIuYwotQEAgLTIxMzQsMTAgKzIxMzQsMTUgQEAgdm9pZCAqZGJtZGJf cmVjbm9fY2FjaGVfYnVpbGQodm9pZCAqYXJnKQotICAgICAgICAgcmVjbm8gPSAxOwotICAgICB9 Ci0gICAgIHdoaWxlIChyYyA9PSAwKSB7Ci0rICAgICAgICBzdHJ1Y3QgbGRibWluZm8gKmxpID0g KHN0cnVjdCBsZGJtaW5mbyAqKXJjY3R4LT5jdXJzb3ItPmJlLT5iZV9kYXRhYmFzZS0+cGxnX3By aXZhdGU7Ci0gICAgICAgICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xPR19ERUJVRywgImRibWRiX3Jl Y25vX2NhY2hlX2J1aWxkIiwgInJlY25vPSVkXG4iLCByZWNubyk7Ci0gICAgICAgICBpZiAocmVj bm8gJSBSRUNOT19DQUNIRV9JTlRFUlZBTCA9PSAxKSB7Ci0gICAgICAgICAgICAgLyogUHJlcGFy ZSB0aGUgY2FjaGUgZGF0YSAqLwotICAgICAgICAgICAgIGxlbiA9IHNpemVvZigqcmNlKSArIGRh dGEubXZfc2l6ZSArIGtleS5tdl9zaXplOwotKyAgICAgICAgICAgIGlmIChsZW4gPiBsaS0+bGlf bWF4X2tleV9sZW4pIHsKLSsgICAgICAgICAgICAgICAga2V5Lm12X3NpemUgPSBsaS0+bGlfbWF4 X2tleV9sZW4gLSBkYXRhLm12X3NpemUgLSBzaXplb2YoKnJjZSk7Ci0rICAgICAgICAgICAgICAg IGxlbiA9IGxpLT5saV9tYXhfa2V5X2xlbjsKLSsgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg cmNlID0gKGRibWRiX3JlY25vX2NhY2hlX2VsbXRfdCopc2xhcGlfY2hfbWFsbG9jKGxlbik7Ci0g ICAgICAgICAgICAgcmNlLT5sZW4gPSBsZW47Ci0gICAgICAgICAgICAgcmNlLT5yZWNubyA9IHJl Y25vOwotZGlmZiAtLWdpdCBhL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vdmx2LmMgYi9s ZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL3Zsdi5jCi1pbmRleCA4ZjkyNjNmMjUuLmYyZjg4 MmI1YSAxMDA2NDQKLS0tLSBhL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vdmx2LmMKLSsr KyBiL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vdmx2LmMKLUBAIC04NjYsNiArODY2LDcg QEAgZG9fdmx2X3VwZGF0ZV9pbmRleChiYWNrX3R4biAqdHhuLCBzdHJ1Y3QgbGRibWluZm8gKmxp LCBTbGFwaV9QQmxvY2sgKnBiLCBzdHJ1Y3QKLSAgICAgc3RydWN0IHZsdl9rZXkgKmtleSA9IE5V TEw7Ci0gICAgIGRiaV92YWxfdCBkYXRhID0gezB9OwotICAgICBkYmxheWVyX3ByaXZhdGUgKnBy aXYgPSBOVUxMOwotKyAgICBzaXplX3Qga2V5X3NpemVfbGltaXQgPSBsaS0+bGlfbWF4X2tleV9s ZW4gLSBzaXplb2YoZW50cnktPmVwX2lkKTsKLSAKLSAgICAgc2xhcGlfcGJsb2NrX2dldChwYiwg U0xBUElfQkFDS0VORCwgJmJlKTsKLSAgICAgcHJpdiA9IChkYmxheWVyX3ByaXZhdGUgKilsaS0+ bGlfZGJsYXllcl9wcml2YXRlOwotQEAgLTg4Niw2ICs4ODcsMTAgQEAgZG9fdmx2X3VwZGF0ZV9p bmRleChiYWNrX3R4biAqdHhuLCBzdHJ1Y3QgbGRibWluZm8gKmxpLCBTbGFwaV9QQmxvY2sgKnBi LCBzdHJ1Y3QKLSAgICAgICAgIHJldHVybiByYzsKLSAgICAgfQotIAotKyAgICAvKiBUcnVuY2F0 ZSB0aGUga2V5IGlmIGl0IGlzIHRvbyBsb25nICovCi0rICAgIGlmIChrZXktPmtleS5zaXplID4g a2V5X3NpemVfbGltaXQpIHsKLSsgICAgICAgIGtleS0+a2V5LnNpemUgPSBrZXlfc2l6ZV9saW1p dDsKLSsgICAgfQotICAgICBpZiAoTlVMTCAhPSB0eG4pIHsKLSAgICAgICAgIGRiX3R4biA9IHR4 bi0+YmFja190eG5fdHhuOwotICAgICB9IGVsc2UgewotQEAgLTkzMCw3ICs5MzUsNyBAQCBkb192 bHZfdXBkYXRlX2luZGV4KGJhY2tfdHhuICp0eG4sIHN0cnVjdCBsZGJtaW5mbyAqbGksIFNsYXBp X1BCbG9jayAqcGIsIHN0cnVjdAotICAgICAgICAgaWYgKHR4biAmJiB0eG4tPmJhY2tfc3BlY2lh bF9oYW5kbGluZ19mbikgewotICAgICAgICAgICAgIHJjID0gdHhuLT5iYWNrX3NwZWNpYWxfaGFu ZGxpbmdfZm4oYmUsIEJUWE5BQ1RfVkxWX0RFTCwgZGIsICZrZXktPmtleSwgJmRhdGEsIHR4bik7 Ci0gICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgIHJjID0gZGJsYXllcl9kYl9vcChiZSwg ZGIsIGRiX3R4biwgREJJX09QX0RFTCwgJmtleS0+a2V5LCBOVUxMKTsKLSsgICAgICAgICAgICBy YyA9IGRibGF5ZXJfZGJfb3AoYmUsIGRiLCBkYl90eG4sIERCSV9PUF9ERUwsICZrZXktPmtleSwg JmRhdGEpOwotICAgICAgICAgfQotICAgICAgICAgaWYgKHJjID09IDApIHsKLSAgICAgICAgICAg ICBpZiAodHhuICYmIHR4bi0+YmFja19zcGVjaWFsX2hhbmRsaW5nX2ZuKSB7Ci0tLSAKLTIuNTIu MAotCgpkaWZmIC0tZ2l0IGEvMDAyMy1Jc3N1ZS02NzUzLVBvcnQtdGlja2V0LTQ3NzgxLXRlc3Qt NzIxMC5wYXRjaCBiLzAwMjMtSXNzdWUtNjc1My1Qb3J0LXRpY2tldC00Nzc4MS10ZXN0LTcyMTAu cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY2MDI0NDQuLjAwMDAwMDAKLS0t IGEvMDAyMy1Jc3N1ZS02NzUzLVBvcnQtdGlja2V0LTQ3NzgxLXRlc3QtNzIxMC5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDI4NSArMCwwIEBACi1Gcm9tIDU2ZjE4ODFiNWZiMDE5OGFmNDgxMGVl Y2E5ZTk4NzM2YzI5N2EyYTUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBMZW5rYSBE b3Vkb3ZhIDxtaXJpZWxrYUB1c2Vycy5ub3JlcGx5LmdpdGh1Yi5jb20+Ci1EYXRlOiBUdWUsIDMg RmViIDIwMjYgMTA6Mjg6MDIgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gSXNzdWUgNjc1MyAtIFBv cnQgdGlja2V0IDQ3NzgxIHRlc3QgKCM3MjEwKQotCi1EZXNjcmlwdGlvbjoKLVBvcnQgdGlja2V0 IDQ3NzgxIHRlc3QgaW50byBkaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvcmVwbGljYXRpb24vcmVw bGljYXRpb25fZGVhZGxvY2tfdGVzdC5weQotCi1SZWxhdGVzOiAjNjc1MwotQXV0aG9yOiBMZW5r YSBEb3Vkb3ZhCi1Bc3Npc3RlZCBieTogQ3Vyc29yCi1SZXZpZXdlcjogTWFyayBSZXlub2xkcwot LS0tCi0gLi4uL3JlcGxpY2F0aW9uL3JlcGxpY2F0aW9uX2RlYWRsb2NrX3Rlc3QucHkgIHwgMTI5 ICsrKysrKysrKysrKysrKysrLQotIGRpcnNydnRlc3RzL3Rlc3RzL3RpY2tldHMvdGlja2V0NDc3 ODFfdGVzdC5weSB8IDEwNCAtLS0tLS0tLS0tLS0tLQotIDIgZmlsZXMgY2hhbmdlZCwgMTI4IGlu c2VydGlvbnMoKyksIDEwNSBkZWxldGlvbnMoLSkKLSBkZWxldGUgbW9kZSAxMDA2NDQgZGlyc3J2 dGVzdHMvdGVzdHMvdGlja2V0cy90aWNrZXQ0Nzc4MV90ZXN0LnB5Ci0KLWRpZmYgLS1naXQgYS9k aXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvcmVwbGljYXRpb24vcmVwbGljYXRpb25fZGVhZGxvY2tf dGVzdC5weSBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9yZXBsaWNhdGlvbi9yZXBsaWNhdGlv bl9kZWFkbG9ja190ZXN0LnB5Ci1pbmRleCA4ZGRiYjQzYmQuLjljMTIyYWRkMyAxMDA2NDQKLS0t LSBhL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9yZXBsaWNhdGlvbi9yZXBsaWNhdGlvbl9kZWFk bG9ja190ZXN0LnB5Ci0rKysgYi9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvcmVwbGljYXRpb24v cmVwbGljYXRpb25fZGVhZGxvY2tfdGVzdC5weQotQEAgLTE1LDE0ICsxNSwyMCBAQCB3aXRoIHJl cGxpY2F0aW9uIGRhdGEgd2hlbiByZXBsaWNhdGlvbiBhZ3JlZW1lbnRzIGFyZSBwcmVzZW50Lgot IGltcG9ydCBsb2dnaW5nCi0gaW1wb3J0IG9zCi0gaW1wb3J0IHB5dGVzdAotK2ltcG9ydCBsZGFw Ci0gCi0rZnJvbSBsaWIzODkuX21hcHBlZF9vYmplY3QgaW1wb3J0IERTTGRhcE9iamVjdHMKLSBm cm9tIGxpYjM4OS50b3BvbG9naWVzIGltcG9ydCB0b3BvbG9neV9tMiBhcyB0b3BvCi0rZnJvbSBs aWIzODkudG9wb2xvZ2llcyBpbXBvcnQgdG9wb2xvZ3lfc3QKLSBmcm9tIGxpYjM4OS5yZXBsaWNh IGltcG9ydCBSZXBsaWNhcywgUmVwbGljYXRpb25NYW5hZ2VyCi0gZnJvbSBsaWIzODkuYWdyZWVt ZW50IGltcG9ydCBBZ3JlZW1lbnRzCi0gZnJvbSBsaWIzODkudGFza3MgaW1wb3J0IEltcG9ydFRh c2ssIEV4cG9ydFRhc2sKLSBmcm9tIGxpYjM4OS5pZG0udXNlciBpbXBvcnQgVXNlckFjY291bnRz Ci0gZnJvbSBsaWIzODkudG9tYnN0b25lIGltcG9ydCBUb21ic3RvbmVzCi0tZnJvbSBsaWIzODku X2NvbnN0YW50cyBpbXBvcnQgREVGQVVMVF9TVUZGSVgKLStmcm9tIGxpYjM4OS5iYWNrZW5kIGlt cG9ydCBCYWNrZW5kcwotK2Zyb20gbGliMzg5Ll9jb25zdGFudHMgaW1wb3J0IChERUZBVUxUX1NV RkZJWCwgREVGQVVMVF9CRU5BTUUsIGRlZmF1bHRQcm9wZXJ0aWVzLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSRVBMSUNBVElPTl9CSU5EX0ROLCBSRVBMSUNBVElPTl9CSU5EX1BX LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRVBMSUNBVElPTl9CSU5EX01FVEhP RCwgUkVQTElDQVRJT05fVFJBTlNQT1JUKQotIAotIHB5dGVzdG1hcmsgPSBweXRlc3QubWFyay50 aWVyMgotIAotQEAgLTIwMCw2ICsyMDYsMTI3IEBAIGRlZiB0ZXN0X3JlcGxpY2F0aW9uX2RlYWRs b2NrX3RvbWJzdG9uZV9zZWFyY2godG9wbyk6Ci0gICAgICAgICBvcy5yZW1vdmUoZXhwb3J0X2xk aWYpCi0gCi0gCi0rZGVmIHRlc3RfcmVwbGljYXRpb25fZGVhZGxvY2tfdG9tYnN0b25lX2ludmFs aWRfYWdyZWVtZW50KHRvcG9sb2d5X3N0KToKLSsgICAgIiIiVGVzdCBkZWFkbG9jayBzY2VuYXJp byBhZnRlciBpbXBvcnRpbmcgTERJRiB3aXRoIHJlcGxpY2F0aW9uIGRhdGEgYW5kIGludmFsaWQg YWdyZWVtZW50Ci0rCi0rICAgIFRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IGEgZGVhZGxvY2sgZG9l cyBub3Qgb2NjdXIgd2hpbGUgc2VhcmNoaW5nIGZvciB0b21ic3RvbmVzIGFmdGVyCi0rICAgIHNl dHRpbmcgdXAgYW4gaW52YWxpZCByZXBsaWNhdGlvbiBhZ3JlZW1lbnQgKHBvaW50aW5nIHRvIGEg bm9uLWV4aXN0ZW50IHNlcnZlcikKLSsKLSsgICAgOmlkOiBhMWIyYzNkNC1lNWY2LTQ3ODEtOWFi Yy1kZWYwMTIzNDU2NzgKLSsgICAgOnNldHVwOiBTdGFuZGFsb25lIGluc3RhbmNlIHdpdGggcmVw bGljYXRpb24gZW5hYmxlZAotKyAgICA6c3RlcHM6Ci0rICAgICAgICAxLiBDcmVhdGUgYSBzdXBw bGllciB3aXRoIGFuIGludmFsaWQgcmVwbGljYXRpb24gYWdyZWVtZW50IChwb3J0IDU1NTUsIG5v bi1leGlzdGVudCBzZXJ2ZXIpCi0rICAgICAgICAyLiBBZGQgdHdvIHRlc3QgdXNlciBlbnRyaWVz Ci0rICAgICAgICAzLiBFeHBvcnQgTERJRiB3aXRoIHJlcGxpY2F0aW9uIGRhdGEKLSsgICAgICAg IDQuIFJlc3RhcnQgdGhlIHNlcnZlcgotKyAgICAgICAgNS4gSW1wb3J0IHRoZSBMRElGIGJhY2sK LSsgICAgICAgIDYuIFNlYXJjaCBmb3IgdG9tYnN0b25lIGVudHJpZXMgd2l0aCB0aW1lb3V0IChz aG91bGQgbm90IGhhbmcvZGVhZGxvY2spCi0rICAgICAgICA3LiBDbGVhbnVwOiByZXN0b3JlIG9y aWdpbmFsIHRpbWVvdXQgc2V0dGluZ3MsIGRlbGV0ZSBpbnZhbGlkIGFncmVlbWVudCwgdGVzdCBl bnRyaWVzLCBhbmQgZXhwb3J0IGZpbGUKLSsgICAgOmV4cGVjdGVkcmVzdWx0czoKLSsgICAgICAg IDEuIEludmFsaWQgcmVwbGljYXRpb24gYWdyZWVtZW50IGlzIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5 Ci0rICAgICAgICAyLiBUZXN0IGVudHJpZXMgYXJlIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5Ci0rICAg ICAgICAzLiBMRElGIGV4cG9ydCBjb21wbGV0ZXMgc3VjY2Vzc2Z1bGx5Ci0rICAgICAgICA0LiBT ZXJ2ZXIgcmVzdGFydHMgc3VjY2Vzc2Z1bGx5Ci0rICAgICAgICA1LiBMRElGIGltcG9ydCBjb21w bGV0ZXMgc3VjY2Vzc2Z1bGx5Ci0rICAgICAgICA2LiBUb21ic3RvbmUgc2VhcmNoIGNvbXBsZXRl cyB3aXRob3V0IGRlYWRsb2NrIChyZXR1cm5zIGF0IGxlYXN0IG9uZSBlbnRyeTsgbm8gaGFuZy90 aW1lb3V0KQotKyAgICAgICAgNy4gQ2xlYW51cCBjb21wbGV0ZXMgc3VjY2Vzc2Z1bGx5Ci0rICAg ICIiIgotKwotKyAgICBzdGFuZGFsb25lID0gdG9wb2xvZ3lfc3Quc3RhbmRhbG9uZQotKyAgICBl eHBvcnRfbGRpZiA9IG9zLnBhdGguam9pbihzdGFuZGFsb25lLmdldF9sZGlmX2RpcigpLCAnZXhw b3J0LmxkaWYnKQotKwotKyAgICAjIFN0ZXAgMTogQ3JlYXRlIHN1cHBsaWVyIHdpdGggaW52YWxp ZCByZXBsaWNhdGlvbiBhZ3JlZW1lbnQKLSsgICAgbG9nLmluZm8oJ0NyZWF0aW5nIHN1cHBsaWVy IHdpdGggaW52YWxpZCByZXBsaWNhdGlvbiBhZ3JlZW1lbnQgKHBvcnQgNTU1NSAtIG5vbi1leGlz dGVudCBzZXJ2ZXIpJykKLSsgICAgcmVwbCA9IFJlcGxpY2F0aW9uTWFuYWdlcihERUZBVUxUX1NV RkZJWCkKLSsgICAgcmVwbC5jcmVhdGVfZmlyc3Rfc3VwcGxpZXIoc3RhbmRhbG9uZSkKLSsKLSsg ICAgcmVwbGljYXMgPSBSZXBsaWNhcyhzdGFuZGFsb25lKQotKyAgICByZXBsaWNhID0gcmVwbGlj YXMuZ2V0KERFRkFVTFRfU1VGRklYKQotKyAgICBhZ3JlZW1lbnRzID0gQWdyZWVtZW50cyhzdGFu ZGFsb25lLCBiYXNlZG49cmVwbGljYS5kbikKLSsKLSsgICAgIyBDcmVhdGUgYWdyZWVtZW50IHdp dGggaW52YWxpZCBwb3J0IChub24tZXhpc3RlbnQgc2VydmVyKQotKyAgICBpbnZhbGlkX2FncmVl bWVudCA9IGFncmVlbWVudHMuY3JlYXRlKHByb3BlcnRpZXM9ewotKyAgICAgICAgJ2NuJzogcidt ZVRvXyRob3N0OiRwb3J0JywKLSsgICAgICAgICduc0RTNVJlcGxpY2FSb290JzogREVGQVVMVF9T VUZGSVgsCi0rICAgICAgICAnbnNEUzVSZXBsaWNhSG9zdCc6IHN0YW5kYWxvbmUuaG9zdCwKLSsg ICAgICAgICduc0RTNVJlcGxpY2FQb3J0JzogJzU1NTUnLCAgIyBJbnZhbGlkIHBvcnQgLSBzZXJ2 ZXIgZG9lcyBub3QgZXhpc3QKLSsgICAgICAgICduc0RTNVJlcGxpY2FCaW5kRE4nOiBkZWZhdWx0 UHJvcGVydGllc1tSRVBMSUNBVElPTl9CSU5EX0ROXSwKLSsgICAgICAgICduc0RTNVJlcGxpY2FC aW5kTWV0aG9kJzogZGVmYXVsdFByb3BlcnRpZXNbUkVQTElDQVRJT05fQklORF9NRVRIT0RdLAot KyAgICAgICAgJ25zRFM1UmVwbGljYVRyYW5zcG9ydEluZm8nOiBkZWZhdWx0UHJvcGVydGllc1tS RVBMSUNBVElPTl9UUkFOU1BPUlRdLAotKyAgICAgICAgJ25zRFM1UmVwbGljYUNyZWRlbnRpYWxz JzogZGVmYXVsdFByb3BlcnRpZXNbUkVQTElDQVRJT05fQklORF9QV10KLSsgICAgfSkKLSsKLSsg ICAgIyBTdGVwIDI6IEFkZCB0d28gdGVzdCBlbnRyaWVzCi0rICAgIGxvZy5pbmZvKCdBZGRpbmcg dHdvIHRlc3QgZW50cmllcycpCi0rICAgIHVzZXJzID0gVXNlckFjY291bnRzKHN0YW5kYWxvbmUs IERFRkFVTFRfU1VGRklYKQotKwotKyAgICBlbnRyeTEgPSB1c2Vycy5jcmVhdGUocHJvcGVydGll cz17Ci0rICAgICAgICAndWlkJzogJ2VudHJ5MScsCi0rICAgICAgICAnY24nOiAnZW50cnkxJywK LSsgICAgICAgICdzbic6ICd1c2VyJywKLSsgICAgICAgICd1c2VycGFzc3dvcmQnOiAncGFzc3dv cmQnLAotKyAgICAgICAgJ3VpZE51bWJlcic6ICcxMDAxJywKLSsgICAgICAgICdnaWROdW1iZXIn OiAnMjAwMScsCi0rICAgICAgICAnaG9tZURpcmVjdG9yeSc6ICcvaG9tZS9lbnRyeTEnCi0rICAg IH0pCi0rCi0rICAgIGVudHJ5MiA9IHVzZXJzLmNyZWF0ZShwcm9wZXJ0aWVzPXsKLSsgICAgICAg ICd1aWQnOiAnZW50cnkyJywKLSsgICAgICAgICdjbic6ICdlbnRyeTInLAotKyAgICAgICAgJ3Nu JzogJ3VzZXInLAotKyAgICAgICAgJ3VzZXJwYXNzd29yZCc6ICdwYXNzd29yZCcsCi0rICAgICAg ICAndWlkTnVtYmVyJzogJzEwMDInLAotKyAgICAgICAgJ2dpZE51bWJlcic6ICcyMDAyJywKLSsg ICAgICAgICdob21lRGlyZWN0b3J5JzogJy9ob21lL2VudHJ5MicKLSsgICAgfSkKLSsKLSsgICAg IyBTdGVwIDM6IEV4cG9ydCBMRElGIHdpdGggcmVwbGljYXRpb24gZGF0YQotKyAgICBsb2cuaW5m bygnRXhwb3J0aW5nIExESUYgd2l0aCByZXBsaWNhdGlvbiBkYXRhJykKLSsgICAgYmFja2VuZHMg PSBCYWNrZW5kcyhzdGFuZGFsb25lKQotKyAgICBleHBvcnRfdGFzayA9IGJhY2tlbmRzLmV4cG9y dF9sZGlmKGJlX25hbWVzPURFRkFVTFRfQkVOQU1FLCBsZGlmPWV4cG9ydF9sZGlmLCByZXBsaWNh dGlvbj1UcnVlKQotKyAgICBleHBvcnRfdGFzay53YWl0KCkKLSsKLSsgICAgIyBTdGVwIDQ6IFJl c3RhcnQgdGhlIHNlcnZlcgotKyAgICBsb2cuaW5mbygnUmVzdGFydGluZyBzZXJ2ZXInKQotKyAg ICBzdGFuZGFsb25lLnJlc3RhcnQoKQotKwotKyAgICAjIFN0ZXAgNTogSW1wb3J0IHRoZSBMRElG Ci0rICAgIGxvZy5pbmZvKCdJbXBvcnRpbmcgcmVwbGljYXRpb24gTERJRiBmaWxlJykKLSsgICAg aW1wb3J0X3Rhc2sgPSBJbXBvcnRUYXNrKHN0YW5kYWxvbmUpCi0rICAgIGltcG9ydF90YXNrLmlt cG9ydF9zdWZmaXhfZnJvbV9sZGlmKGxkaWZmaWxlPWV4cG9ydF9sZGlmLCBzdWZmaXg9REVGQVVM VF9TVUZGSVgpCi0rICAgIGltcG9ydF90YXNrLndhaXQoKQotKwotKyAgICAjIFN0ZXAgNjogU2Vh cmNoIGZvciB0b21ic3RvbmVzIHdpdGggdGltZW91dCAtIHNob3VsZCBub3QgaGFuZy9kZWFkbG9j awotKyAgICBsb2cuaW5mbygnU2VhcmNoaW5nIGZvciB0b21ic3RvbmUgZW50cmllcyAoc2hvdWxk IGZpbmQgZW50cmllcyBhbmQgbm90IGhhbmcpJykKLSsgICAgIyBTYXZlIG9yaWdpbmFsIHRpbWVv dXQgc2V0dGluZ3Mgc28gd2UgY2FuIHJlc3RvcmUgdGhlbSBpbiBjbGVhbnVwCi0rICAgIG9yaWdf bmV0d29ya190aW1lb3V0ID0gc3RhbmRhbG9uZS5nZXRfb3B0aW9uKGxkYXAuT1BUX05FVFdPUktf VElNRU9VVCkKLSsgICAgb3JpZ190aW1lb3V0ID0gc3RhbmRhbG9uZS5nZXRfb3B0aW9uKGxkYXAu T1BUX1RJTUVPVVQpCi0rICAgICMgU2V0IGV4cGxpY2l0IHRpbWVvdXRzIHRvIGRldGVjdCBkZWFk bG9ja3MKLSsgICAgc3RhbmRhbG9uZS5zZXRfb3B0aW9uKGxkYXAuT1BUX05FVFdPUktfVElNRU9V VCwgNSkKLSsgICAgc3RhbmRhbG9uZS5zZXRfb3B0aW9uKGxkYXAuT1BUX1RJTUVPVVQsIDUpCi0r Ci0rICAgICMgVmVyaWZ5IGF0IGxlYXN0IG9uZSB0b21ic3RvbmUgZXhpc3RzIGFuZCB0aGUgc2Vh cmNoIGRvZXMgbm90IGhhbmcvdGltZW91dAotKyAgICB0cnk6Ci0rICAgICAgICByZXN1bHRzID0g RFNMZGFwT2JqZWN0cyhzdGFuZGFsb25lLCBERUZBVUxUX1NVRkZJWCkuZmlsdGVyKCcob2JqZWN0 Y2xhc3M9bnNUb21ic3RvbmUpJykKLSsgICAgICAgIGxvZy5pbmZvKGYnRm91bmQge2xlbihyZXN1 bHRzKX0gdG9tYnN0b25lIGVudHJpZXMnKQotKyAgICAgICAgYXNzZXJ0IGxlbihyZXN1bHRzKSA+ IDAsICJUb21ic3RvbmUgc2VhcmNoIHNob3VsZCByZXR1cm4gYXQgbGVhc3Qgb25lIGVudHJ5Igot KyAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0rICAgICAgICBsb2cuZXJyb3IoZiJUb21ic3Rv bmUgc2VhcmNoIGZhaWxlZCB3aXRoIGVycm9yOiB7ZX0iKQotKyAgICAgICAgcHl0ZXN0LmZhaWwo ZiJUb21ic3RvbmUgc2VhcmNoIGZhaWxlZDoge2V9IikKLSsgICAgZmluYWxseToKLSsgICAgICAg ICMgUmVzdG9yZSBvcmlnaW5hbCB0aW1lb3V0IHNldHRpbmdzCi0rICAgICAgICBzdGFuZGFsb25l LnNldF9vcHRpb24obGRhcC5PUFRfTkVUV09SS19USU1FT1VULCBvcmlnX25ldHdvcmtfdGltZW91 dCkKLSsgICAgICAgIHN0YW5kYWxvbmUuc2V0X29wdGlvbihsZGFwLk9QVF9USU1FT1VULCBvcmln X3RpbWVvdXQpCi0rICAgICAgICAjIENsZWFudXAgdGVzdCBlbnRyaWVzIGFuZCBleHBvcnQgZmls ZQotKyAgICAgICAgbG9nLmluZm8oJ0NsZWFuaW5nIHVwIHRlc3QgZW50cmllcycpCi0rICAgICAg ICBpbnZhbGlkX2FncmVlbWVudC5kZWxldGUoKQotKyAgICAgICAgZW50cnkxLmRlbGV0ZSgpCi0r ICAgICAgICBlbnRyeTIuZGVsZXRlKCkKLSsgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKGV4cG9y dF9sZGlmKToKLSsgICAgICAgICAgICBvcy5yZW1vdmUoZXhwb3J0X2xkaWYpCi0rCi0rICAgIGxv Zy5pbmZvKCdUZXN0IGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkgLSBubyBkZWFkbG9jayBkZXRlY3Rl ZCcpCi0rCi0gaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICAgQ1VSUkVOVF9GSUxFID0g b3MucGF0aC5yZWFscGF0aChfX2ZpbGVfXykKLSAgICAgcHl0ZXN0Lm1haW4oWyItcyIsIENVUlJF TlRfRklMRV0pCi1kaWZmIC0tZ2l0IGEvZGlyc3J2dGVzdHMvdGVzdHMvdGlja2V0cy90aWNrZXQ0 Nzc4MV90ZXN0LnB5IGIvZGlyc3J2dGVzdHMvdGVzdHMvdGlja2V0cy90aWNrZXQ0Nzc4MV90ZXN0 LnB5Ci1kZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IGZmYjlhNWUxYS4uMDAwMDAwMDAw Ci0tLS0gYS9kaXJzcnZ0ZXN0cy90ZXN0cy90aWNrZXRzL3RpY2tldDQ3NzgxX3Rlc3QucHkKLSsr KyAvZGV2L251bGwKLUBAIC0xLDEwNCArMCwwIEBACi0tIyAtLS0gQkVHSU4gQ09QWVJJR0hUIEJM T0NLIC0tLQotLSMgQ29weXJpZ2h0IChDKSAyMDE2IFJlZCBIYXQsIEluYy4KLS0jIEFsbCByaWdo dHMgcmVzZXJ2ZWQuCi0tIwotLSMgTGljZW5zZTogR1BMICh2ZXJzaW9uIDMgb3IgYW55IGxhdGVy IHZlcnNpb24pLgotLSMgU2VlIExJQ0VOU0UgZm9yIGRldGFpbHMuCi0tIyAtLS0gRU5EIENPUFlS SUdIVCBCTE9DSyAtLS0KLS0jCi0taW1wb3J0IGxvZ2dpbmcKLS0KLS1pbXBvcnQgcHl0ZXN0Ci0t ZnJvbSBsaWIzODkudGFza3MgaW1wb3J0ICoKLS1mcm9tIGxpYjM4OS50b3BvbG9naWVzIGltcG9y dCB0b3BvbG9neV9zdAotLWZyb20gbGliMzg5LnJlcGxpY2EgaW1wb3J0IFJlcGxpY2F0aW9uTWFu YWdlcgotLQotLWZyb20gbGliMzg5Ll9jb25zdGFudHMgaW1wb3J0IChkZWZhdWx0UHJvcGVydGll cywgREVGQVVMVF9TVUZGSVgsIFJlcGxpY2FSb2xlLAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSRVBMSUNBSURfU1VQUExJRVJfMSwgUkVQTElDQVRJT05fQklORF9ETiwgUkVQTElD QVRJT05fQklORF9QVywKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVQTElDQVRJ T05fQklORF9NRVRIT0QsIFJFUExJQ0FUSU9OX1RSQU5TUE9SVCwgUkFfTkFNRSwKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUkFfQklOREROLCBSQV9CSU5EUFcsIFJBX01FVEhPRCwg UkFfVFJBTlNQT1JUX1BST1QpCi0tCi0tcHl0ZXN0bWFyayA9IHB5dGVzdC5tYXJrLnRpZXIyCi0t Ci0tbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCi0tCi0tCi0tZGVmIHRlc3RfdGlj a2V0NDc3ODEodG9wb2xvZ3lfc3QpOgotLSAgICAiIiIKLS0gICAgICAgIFRlc3RpbmcgZm9yIGEg ZGVhZGxvY2sgYWZ0ZXIgZG9pbmcgYW4gb25saW5lIGltcG9ydCBvZiBhbiBMRElGIHdpdGgKLS0g ICAgICAgIHJlcGxpY2F0aW9uIGRhdGEuICBUaGUgcmVwbGljYXRpb24gYWdyZWVtZW50IHNob3Vs ZCBiZSBpbnZhbGlkLgotLSAgICAiIiIKLS0KLS0gICAgbG9nLmluZm8oJ1Rlc3RpbmcgVGlja2V0 IDQ3NzgxIC0gVGVzdGluZyBmb3IgZGVhZGxvY2sgYWZ0ZXIgaW1wb3J0aW5nIExESUYgd2l0aCBy ZXBsaWNhdGlvbiBkYXRhJykKLS0KLS0gICAgc3VwcGxpZXIgPSB0b3BvbG9neV9zdC5zdGFuZGFs b25lCi0tICAgIHJlcGwgPSBSZXBsaWNhdGlvbk1hbmFnZXIoREVGQVVMVF9TVUZGSVgpCi0tICAg IHJlcGwuY3JlYXRlX2ZpcnN0X3N1cHBsaWVyKHN1cHBsaWVyKQotLQotLSAgICBwcm9wZXJ0aWVz ID0ge1JBX05BTUU6IHInbWVUb18kaG9zdDokcG9ydCcsCi0tICAgICAgICAgICAgICAgICAgUkFf QklOREROOiBkZWZhdWx0UHJvcGVydGllc1tSRVBMSUNBVElPTl9CSU5EX0ROXSwKLS0gICAgICAg ICAgICAgICAgICBSQV9CSU5EUFc6IGRlZmF1bHRQcm9wZXJ0aWVzW1JFUExJQ0FUSU9OX0JJTkRf UFddLAotLSAgICAgICAgICAgICAgICAgIFJBX01FVEhPRDogZGVmYXVsdFByb3BlcnRpZXNbUkVQ TElDQVRJT05fQklORF9NRVRIT0RdLAotLSAgICAgICAgICAgICAgICAgIFJBX1RSQU5TUE9SVF9Q Uk9UOiBkZWZhdWx0UHJvcGVydGllc1tSRVBMSUNBVElPTl9UUkFOU1BPUlRdfQotLSAgICAjIFRo ZSBhZ3JlZW1lbnQgc2hvdWxkIHBvaW50IHRvIGEgc2VydmVyIHRoYXQgZG9lcyBOT1QgZXhpc3Qg KGludmFsaWQgcG9ydCkKLS0gICAgcmVwbF9hZ3JlZW1lbnQgPSBzdXBwbGllci5hZ3JlZW1lbnQu Y3JlYXRlKHN1ZmZpeD1ERUZBVUxUX1NVRkZJWCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBob3N0PXN1cHBsaWVyLmhvc3QsCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydD01NTU1LAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM9cHJvcGVydGllcykKLS0K LS0gICAgIwotLSAgICAjIGFkZCB0d28gZW50cmllcwotLSAgICAjCi0tICAgIGxvZy5pbmZvKCdB ZGRpbmcgdHdvIGVudHJpZXMuLi4nKQotLQotLSAgICBzdXBwbGllci5hZGRfcyhFbnRyeSgoJ2Nu PWVudHJ5MSxkYz1leGFtcGxlLGRjPWNvbScsIHsKLS0gICAgICAgICdvYmplY3RjbGFzcyc6ICd0 b3AgcGVyc29uJy5zcGxpdCgpLAotLSAgICAgICAgJ3NuJzogJ3VzZXInLAotLSAgICAgICAgJ2Nu JzogJ2VudHJ5MSd9KSkpCi0tCi0tICAgIHN1cHBsaWVyLmFkZF9zKEVudHJ5KCgnY249ZW50cnky LGRjPWV4YW1wbGUsZGM9Y29tJywgewotLSAgICAgICAgJ29iamVjdGNsYXNzJzogJ3RvcCBwZXJz b24nLnNwbGl0KCksCi0tICAgICAgICAnc24nOiAndXNlcicsCi0tICAgICAgICAnY24nOiAnZW50 cnkyJ30pKSkKLS0KLS0gICAgIwotLSAgICAjIGV4cG9ydCB0aGUgcmVwbGljYXRpb24gbGRpZgot LSAgICAjCi0tICAgIGxvZy5pbmZvKCdFeHBvcnRpbmcgcmVwbGljYXRpb24gbGRpZi4uLicpCi0t ICAgIGFyZ3MgPSB7RVhQT1JUX1JFUExfSU5GTzogVHJ1ZX0KLS0gICAgZXhwb3J0VGFzayA9IFRh c2tzKHN1cHBsaWVyKQotLSAgICBleHBvcnRUYXNrLmV4cG9ydExESUYoREVGQVVMVF9TVUZGSVgs IE5vbmUsICIvdG1wL2V4cG9ydC5sZGlmIiwgYXJncykKLS0KLS0gICAgIwotLSAgICAjIFJlc3Rh cnQgdGhlIHNlcnZlcgotLSAgICAjCi0tICAgIGxvZy5pbmZvKCdSZXN0YXJ0aW5nIHNlcnZlci4u LicpCi0tICAgIHN1cHBsaWVyLnN0b3AoKQotLSAgICBzdXBwbGllci5zdGFydCgpCi0tCi0tICAg ICMKLS0gICAgIyBJbXBvcnQgdGhlIGxkaWYKLS0gICAgIwotLSAgICBsb2cuaW5mbygnSW1wb3J0 IHJlcGxpY2F0aW9uIExESUYgZmlsZS4uLicpCi0tICAgIGltcG9ydFRhc2sgPSBUYXNrcyhzdXBw bGllcikKLS0gICAgYXJncyA9IHtUQVNLX1dBSVQ6IFRydWV9Ci0tICAgIGltcG9ydFRhc2suaW1w b3J0TERJRihERUZBVUxUX1NVRkZJWCwgTm9uZSwgIi90bXAvZXhwb3J0LmxkaWYiLCBhcmdzKQot LSAgICBvcy5yZW1vdmUoIi90bXAvZXhwb3J0LmxkaWYiKQotLQotLSAgICAjCi0tICAgICMgU2Vh cmNoIGZvciB0b21ic3RvbmVzIC0gd2Ugc2hvdWxkIG5vdCBoYW5nL3RpbWVvdXQKLS0gICAgIwot LSAgICBsb2cuaW5mbygnU2VhcmNoIGZvciB0b21ic3RvbmUgZW50cmllcyhzaG91bGQgZmluZCBv bmUgYW5kIG5vdCBoYW5nKS4uLicpCi0tICAgIHN1cHBsaWVyLnNldF9vcHRpb24obGRhcC5PUFRf TkVUV09SS19USU1FT1VULCA1KQotLSAgICBzdXBwbGllci5zZXRfb3B0aW9uKGxkYXAuT1BUX1RJ TUVPVVQsIDUpCi0tICAgIGVudHJpZXMgPSBzdXBwbGllci5zZWFyY2hfcyhERUZBVUxUX1NVRkZJ WCwgbGRhcC5TQ09QRV9TVUJUUkVFLCAnb2JqZWN0Y2xhc3M9bnNUb21ic3RvbmUnKQotLSAgICBp ZiBub3QgZW50cmllczoKLS0gICAgICAgIGxvZy5mYXRhbCgnU2VhcmNoIGZhaWxlZCB0byBmaW5k IGFueSBlbnRyaWVzLicpCi0tICAgICAgICBhc3NlcnQgUFJfRmFsc2UKLS0KLS0KLS1pZiBfX25h bWVfXyA9PSAnX19tYWluX18nOgotLSAgICAjIFJ1biBpc29sYXRlZAotLSAgICAjIC1zIGZvciBE RUJVRyBtb2RlCi0tICAgIENVUlJFTlRfRklMRSA9IG9zLnBhdGgucmVhbHBhdGgoX19maWxlX18p Ci0tICAgIHB5dGVzdC5tYWluKCItcyAlcyIgJSBDVVJSRU5UX0ZJTEUpCi0tLSAKLTIuNTIuMAot CgpkaWZmIC0tZ2l0IGEvMDAyNC1Jc3N1ZS03MTk0LVJlcGwtTG9nLUFuYWx5c2lzLUFkZC1DU04t cHJvcGFnYXRpb24tZGV0LnBhdGNoIGIvMDAyNC1Jc3N1ZS03MTk0LVJlcGwtTG9nLUFuYWx5c2lz LUFkZC1DU04tcHJvcGFnYXRpb24tZGV0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCBlM2M5MzQ3Li4wMDAwMDAwCi0tLSBhLzAwMjQtSXNzdWUtNzE5NC1SZXBsLUxvZy1BbmFs eXNpcy1BZGQtQ1NOLXByb3BhZ2F0aW9uLWRldC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE2 NDUgKzAsMCBAQAotRnJvbSBjMjkyMWU4N2JmOGU4ZmVlNTY2ZWRkMDljYjUyOGIxYzNhYzNlNDFk IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU2ltb24gUGljaHVnaW4gPHNwaWNodWdp QHJlZGhhdC5jb20+Ci1EYXRlOiBUdWUsIDMgRmViIDIwMjYgMTc6MTc6MDIgLTA4MDAKLVN1Ympl Y3Q6IFtQQVRDSF0gSXNzdWUgNzE5NCAtIFJlcGwgTG9nIEFuYWx5c2lzIC0gQWRkIENTTiBwcm9w YWdhdGlvbiBkZXRhaWxzCi0gKCM3MTk1KQotTUlNRS1WZXJzaW9uOiAxLjAKLUNvbnRlbnQtVHlw ZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOAotQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzog OGJpdAotCi1EZXNjcmlwdGlvbjogVGhlIHJlcGxpY2F0aW9uIGxvZyBhbmFseXplciBub3cgc2hv d3MgcGVy4oCRQ1NOIHByb3BhZ2F0aW9uCi1kZXRhaWxzIGFuZCB0aGUgY29uc29sZSBVSSBjYW4g ZHJpbGwgaW50byB0aGVtIGZyb20gY2hhcnQgcG9pbnRzLiBUaGlzCi1hZGRzIENTTiBJRHMgdG8g Y2hhcnQgZGF0YXBvaW50cywgYnVpbGRzIGRldGFpbGVkIGFycml2YWxzL2hvcHMgZGF0YSwgYW5k Ci1saW5rcyByZXBsaWNhIElEcyB0byBvcmlnaW4gc2VydmVycyBmb3IgbW9yZSBhY2N1cmF0ZSBv cmlnaW4gZGV0ZWN0aW9uLgotCi1UaGUgcmVwb3J0IEpTT04gbm93IGluY2x1ZGVzIGNzbkRldGFp bHMgYW5kIHNhbXBsaW5nIG1ldGFkYXRhOyB3aGVuCi1zYW1wbGluZyBpcyBhY3RpdmUsIENTTiBk ZXRhaWxzIGFyZSBsaW1pdGVkIHRvIHNhbXBsZWQgSURzIHRvIGNvbnRyb2wKLW1lbW9yeSB1c2Uu IEEgbmV3IG9yaWdpbkluY2x1ZGVkSW5BcnJpdmFscyBmbGFnIGlzIGV4cG9zZWQgYW5kIHRoZSBV SQotc2hvd3MgYW4gZXhwbGljaXQgbm90ZSB3aGVuIG9yaWdpbiByZWNvcmRzIGFyZSBvdXRzaWRl IHRoZSB0aW1lIHJhbmdlLgotVGhlIGNvY2twaXQgcmVwb3J0IG1vZGFsIGdhaW5zIGFuIGludGVy YWN0aXZlIENTTiBkZXRhaWwgdmlldyBhbmQKLWNsaWNrYWJsZSBjaGFydCBwb2ludHMuCi0KLVRl c3RzIHdlcmUgZXhwYW5kZWQgdG8gY292ZXIgQ1NOIGRldGFpbHMsIG9yaWdpbiBvdXTigJFvZuKA kXNjb3BlIGJlaGF2aW9yLAotYW5kIHBhcnRpYWwgcmVwbGljYXRpb24sIGFuZCBpbmNsdWRlIGhl bHBlciBmdW5jdGlvbnMgdG8gcmVkdWNlIGR1cGxpY2F0aW9uLgotCi1GaXhlczogaHR0cHM6Ly9n aXRodWIuY29tLzM4OWRzLzM4OS1kcy1iYXNlL2lzc3Vlcy83MTk0Ci0KLVJldmlld2VkIGJ5OiBA cHJvZ2llcjM4OSwgQG1yZXlub2xkczM4OSAoVGhhbmtzISEpCi0tLS0KLSAuLi4vcmVwbGljYXRp b24vcmVwbF9sb2dfbW9uaXRvcmluZ190ZXN0LnB5ICAgfCA0ODEgKysrKysrKysrKysrKysrLS0K LSAuLi4vc3JjL2xpYi9tb25pdG9yL21vbml0b3JNb2RhbHMuanN4ICAgICAgICAgfCA0ODQgKysr KysrKysrKysrKysrKystCi0gc3JjL2xpYjM4OS9saWIzODkvcmVwbHRvb2xzLnB5ICAgICAgICAg ICAgICAgIHwgMjcwICsrKysrKysrKy0KLSAzIGZpbGVzIGNoYW5nZWQsIDExNjYgaW5zZXJ0aW9u cygrKSwgNjkgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9kaXJzcnZ0ZXN0cy90ZXN0cy9z dWl0ZXMvcmVwbGljYXRpb24vcmVwbF9sb2dfbW9uaXRvcmluZ190ZXN0LnB5IGIvZGlyc3J2dGVz dHMvdGVzdHMvc3VpdGVzL3JlcGxpY2F0aW9uL3JlcGxfbG9nX21vbml0b3JpbmdfdGVzdC5weQot aW5kZXggNjY1ZmNiOTZmLi44NTUwMDVmZjkgMTAwNjQ0Ci0tLS0gYS9kaXJzcnZ0ZXN0cy90ZXN0 cy9zdWl0ZXMvcmVwbGljYXRpb24vcmVwbF9sb2dfbW9uaXRvcmluZ190ZXN0LnB5Ci0rKysgYi9k aXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvcmVwbGljYXRpb24vcmVwbF9sb2dfbW9uaXRvcmluZ190 ZXN0LnB5Ci1AQCAtMjEsNyArMjEsNyBAQCBmcm9tIGxpYjM4OS5iYWNrZW5kIGltcG9ydCBCYWNr ZW5kcwotIGZyb20gbGliMzg5LnRvcG9sb2dpZXMgaW1wb3J0IHRvcG9sb2d5X200IGFzIHRvcG9f bTQKLSBmcm9tIGxpYjM4OS5pZG0udXNlciBpbXBvcnQgVXNlckFjY291bnQKLSBmcm9tIGxpYjM4 OS5yZXBsaWNhIGltcG9ydCBSZXBsaWNhdGlvbk1hbmFnZXIKLS1mcm9tIGxpYjM4OS5yZXBsdG9v bHMgaW1wb3J0IFJlcGxpY2F0aW9uTG9nQW5hbHl6ZXIKLStmcm9tIGxpYjM4OS5yZXBsdG9vbHMg aW1wb3J0IFJlcGxpY2F0aW9uTG9nQW5hbHl6ZXIsIERTTG9nUGFyc2VyCi0gZnJvbSBsaWIzODku X2NvbnN0YW50cyBpbXBvcnQgKgotIAotIHB5dGVzdG1hcmsgPSBweXRlc3QubWFyay50aWVyMAot QEAgLTEwNSw2ICsxMDUsMTAxIEBAIGRlZiBfY2xlYW51cF9tdWx0aV9zdWZmaXhfdGVzdCh0ZXN0 X3VzZXJzX2J5X3N1ZmZpeCwgdG1wX2Rpciwgc3VwcGxpZXJzLCBleHRyYV9zCi0gICAgICAgICBs b2cuZXJyb3IoZiJFcnJvciBjbGVhbmluZyB1cCB0ZW1wb3JhcnkgZGlyZWN0b3J5OiB7ZX0iKQot IAotIAotK2RlZiBfY2xlYXJfYWNjZXNzX2xvZ3Moc3VwcGxpZXJzKToKLSsgICAgIiIiQ2xlYXIg YWNjZXNzIGxvZ3MgZm9yIGFsbCBzdXBwbGllcnMgYW5kIHJlc3RhcnQuIiIiCi0rICAgIGZvciBz dXBwbGllciBpbiBzdXBwbGllcnM6Ci0rICAgICAgICBzdXBwbGllci5kZWxldGVBY2Nlc3NMb2dz KHJlc3RhcnQ9VHJ1ZSkKLSsKLSsKLStkZWYgX3Jlc3RhcnRfc3VwcGxpZXJzKHN1cHBsaWVycyk6 Ci0rICAgICIiIlJlc3RhcnQgYWxsIHN1cHBsaWVycy4iIiIKLSsgICAgZm9yIHN1cHBsaWVyIGlu IHN1cHBsaWVyczoKLSsgICAgICAgIHN1cHBsaWVyLnJlc3RhcnQoKQotKwotKwotK2RlZiBfZ2V0 X2xvZ19kaXJzKHN1cHBsaWVycyk6Ci0rICAgICIiIlJldHVybiBsb2cgZGlyZWN0b3JpZXMgZm9y IGFsbCBzdXBwbGllcnMuIiIiCi0rICAgIHJldHVybiBbcy5kc19wYXRocy5sb2dfZGlyIGZvciBz IGluIHN1cHBsaWVyc10KLSsKLSsKLStkZWYgX2xvYWRfanNvbihwYXRoKToKLSsgICAgIiIiTG9h ZCBhbmQgcmV0dXJuIEpTT04gZnJvbSBmaWxlLiIiIgotKyAgICB3aXRoIG9wZW4ocGF0aCwgJ3In KSBhcyBmOgotKyAgICAgICAgcmV0dXJuIGpzb24ubG9hZChmKQotKwotKwotK2RlZiBfcGF1c2Vf YWdyZWVtZW50cyhzdXBwbGllciwgc3VmZml4KToKLSsgICAgIiIiUGF1c2Ugb3V0Ym91bmQgYWdy ZWVtZW50cyBhbmQgcmV0dXJuIGxpc3Qgb2YgcGF1c2VkIHR1cGxlcy4iIiIKLSsgICAgcGF1c2Vk ID0gW10KLSsgICAgZm9yIGFnbXQgaW4gc3VwcGxpZXIuYWdyZWVtZW50Lmxpc3Qoc3VmZml4PXN1 ZmZpeCk6Ci0rICAgICAgICBzdXBwbGllci5hZ3JlZW1lbnQucGF1c2UoYWdtdC5kbikKLSsgICAg ICAgIHBhdXNlZC5hcHBlbmQoKHN1cHBsaWVyLCBhZ210LmRuKSkKLSsgICAgcmV0dXJuIHBhdXNl ZAotKwotKwotK2RlZiBfcmVzdW1lX2FncmVlbWVudHMocGF1c2VkX2FncmVlbWVudHMpOgotKyAg ICAiIiJSZXN1bWUgcGF1c2VkIHJlcGxpY2F0aW9uIGFncmVlbWVudHMuIiIiCi0rICAgIGZvciBz dXBwbGllcl9vYmosIGRuIGluIHBhdXNlZF9hZ3JlZW1lbnRzOgotKyAgICAgICAgdHJ5OgotKyAg ICAgICAgICAgIHN1cHBsaWVyX29iai5hZ3JlZW1lbnQucmVzdW1lKGRuKQotKyAgICAgICAgZXhj ZXB0IEV4Y2VwdGlvbiBhcyBlOgotKyAgICAgICAgICAgIGxvZy53YXJuaW5nKGYiRmFpbGVkIHRv IHJlc3VtZSBhZ3JlZW1lbnQge2RufToge2V9IikKLSsKLSsKLStkZWYgX2Fzc2VydF9jc25fZGV0 YWlsc19zY2hlbWEoanNvbl9kYXRhKToKLSsgICAgIiIiVmFsaWRhdGUgY3NuRGV0YWlscyBwcmVz ZW5jZSBhbmQgYmFzaWMgc3RydWN0dXJlLiIiIgotKyAgICBhc3NlcnQgJ2NzbkRldGFpbHMnIGlu IGpzb25fZGF0YSwgIkV4cGVjdGVkIGNzbkRldGFpbHMgaW4gSlNPTiBvdXRwdXQgZm9yIGRyaWxs LWRvd24iCi0rICAgIGNzbl9kZXRhaWxzID0ganNvbl9kYXRhWydjc25EZXRhaWxzJ10KLSsgICAg aWYgY3NuX2RldGFpbHM6Ci0rICAgICAgICAjIENoZWNrIHN0cnVjdHVyZSBvZiBhdCBsZWFzdCBv bmUgQ1NOIGRldGFpbCBlbnRyeQotKyAgICAgICAgZmlyc3RfY3NuID0gbmV4dChpdGVyKGNzbl9k ZXRhaWxzLnZhbHVlcygpKSkKLSsgICAgICAgIGFzc2VydCAnY3NuJyBpbiBmaXJzdF9jc24sICJD U04gZGV0YWlsIHNob3VsZCBjb250YWluICdjc24nIGZpZWxkIgotKyAgICAgICAgYXNzZXJ0ICd0 YXJnZXREbicgaW4gZmlyc3RfY3NuLCAiQ1NOIGRldGFpbCBzaG91bGQgY29udGFpbiAndGFyZ2V0 RG4nIGZpZWxkIgotKyAgICAgICAgYXNzZXJ0ICdzdWZmaXgnIGluIGZpcnN0X2NzbiwgIkNTTiBk ZXRhaWwgc2hvdWxkIGNvbnRhaW4gJ3N1ZmZpeCcgZmllbGQiCi0rICAgICAgICBhc3NlcnQgJ2ds b2JhbExhZycgaW4gZmlyc3RfY3NuLCAiQ1NOIGRldGFpbCBzaG91bGQgY29udGFpbiAnZ2xvYmFs TGFnJyBmaWVsZCIKLSsgICAgICAgIGFzc2VydCAnb3JpZ2luU2VydmVyJyBpbiBmaXJzdF9jc24s ICJDU04gZGV0YWlsIHNob3VsZCBjb250YWluICdvcmlnaW5TZXJ2ZXInIGZpZWxkIgotKyAgICAg ICAgYXNzZXJ0ICdhcnJpdmFscycgaW4gZmlyc3RfY3NuLCAiQ1NOIGRldGFpbCBzaG91bGQgY29u dGFpbiAnYXJyaXZhbHMnIGxpc3QiCi0rICAgICAgICBhc3NlcnQgJ2hvcHMnIGluIGZpcnN0X2Nz biwgIkNTTiBkZXRhaWwgc2hvdWxkIGNvbnRhaW4gJ2hvcHMnIGxpc3QiCi0rICAgICAgICBhc3Nl cnQgaXNpbnN0YW5jZShmaXJzdF9jc25bJ2Fycml2YWxzJ10sIGxpc3QpLCAiYXJyaXZhbHMgc2hv dWxkIGJlIGEgbGlzdCIKLSsKLSsgICAgICAgICMgVmVyaWZ5IGFycml2YWxzIHN0cnVjdHVyZQot KyAgICAgICAgaWYgZmlyc3RfY3NuWydhcnJpdmFscyddOgotKyAgICAgICAgICAgIGZpcnN0X2Fy cml2YWwgPSBmaXJzdF9jc25bJ2Fycml2YWxzJ11bMF0KLSsgICAgICAgICAgICBhc3NlcnQgJ3Nl cnZlcicgaW4gZmlyc3RfYXJyaXZhbCwgIkFycml2YWwgc2hvdWxkIGNvbnRhaW4gJ3NlcnZlcicg ZmllbGQiCi0rICAgICAgICAgICAgYXNzZXJ0ICd0aW1lc3RhbXAnIGluIGZpcnN0X2Fycml2YWws ICJBcnJpdmFsIHNob3VsZCBjb250YWluICd0aW1lc3RhbXAnIGZpZWxkIgotKyAgICAgICAgICAg IGFzc2VydCAncmVsYXRpdmVEZWxheScgaW4gZmlyc3RfYXJyaXZhbCwgIkFycml2YWwgc2hvdWxk IGNvbnRhaW4gJ3JlbGF0aXZlRGVsYXknIGZpZWxkIgotKwotKyAgICAjIFZlcmlmeSBjc25JZCBp cyBpbmNsdWRlZCBpbiBkYXRhcG9pbnRzIGZvciBjcm9zcy1yZWZlcmVuY2UKLSsgICAgaWYgJ3Jl cGxpY2F0aW9uTGFncycgaW4ganNvbl9kYXRhIGFuZCBqc29uX2RhdGFbJ3JlcGxpY2F0aW9uTGFn cyddLmdldCgnc2VyaWVzJyk6Ci0rICAgICAgICBmb3Igc2VyaWVzIGluIGpzb25fZGF0YVsncmVw bGljYXRpb25MYWdzJ11bJ3NlcmllcyddOgotKyAgICAgICAgICAgIGZvciBkYXRhcG9pbnQgaW4g c2VyaWVzWydkYXRhcG9pbnRzJ106Ci0rICAgICAgICAgICAgICAgIGFzc2VydCAnY3NuSWQnIGlu IGRhdGFwb2ludCwgIkRhdGFwb2ludCBzaG91bGQgY29udGFpbiAnY3NuSWQnIGZvciBkcmlsbC1k b3duIgotKwotKyAgICByZXR1cm4gY3NuX2RldGFpbHMKLSsKLSsKLStkZWYgX2ZpbmRfbGF0ZXN0 X2xvZ3RpbWVfZm9yX3ByZWZpeChsb2dfZGlyLCBzdWZmaXgsIHN0YXJ0X3RpbWUsIGVuZF90aW1l LCB1c2VyX3ByZWZpeCk6Ci0rICAgIGxhdGVzdCA9IE5vbmUKLSsgICAgZm9yIGZuYW1lIGluIG9z Lmxpc3RkaXIobG9nX2Rpcik6Ci0rICAgICAgICBpZiBub3QgZm5hbWUuc3RhcnRzd2l0aCgnYWNj ZXNzJyk6Ci0rICAgICAgICAgICAgY29udGludWUKLSsgICAgICAgIGZ1bGxfcGF0aCA9IG9zLnBh dGguam9pbihsb2dfZGlyLCBmbmFtZSkKLSsgICAgICAgIHBhcnNlciA9IERTTG9nUGFyc2VyKAot KyAgICAgICAgICAgIGxvZ25hbWU9ZnVsbF9wYXRoLAotKyAgICAgICAgICAgIHN1ZmZpeGVzPVtz dWZmaXhdLAotKyAgICAgICAgICAgIHR6PXRpbWV6b25lLnV0YywKLSsgICAgICAgICAgICBzdGFy dF90aW1lPXN0YXJ0X3RpbWUsCi0rICAgICAgICAgICAgZW5kX3RpbWU9ZW5kX3RpbWUKLSsgICAg ICAgICkKLSsgICAgICAgIGZvciByZWNvcmQgaW4gcGFyc2VyLnBhcnNlX2ZpbGUoKToKLSsgICAg ICAgICAgICB0YXJnZXRfZG4gPSByZWNvcmQuZ2V0KCd0YXJnZXRfZG4nKSBvciAnJwotKyAgICAg ICAgICAgIGlmIHVzZXJfcHJlZml4IGluIHRhcmdldF9kbjoKLSsgICAgICAgICAgICAgICAgdHMg PSByZWNvcmQuZ2V0KCd0aW1lc3RhbXAnKQotKyAgICAgICAgICAgICAgICBpZiB0cyBhbmQgKGxh dGVzdCBpcyBOb25lIG9yIHRzID4gbGF0ZXN0KToKLSsgICAgICAgICAgICAgICAgICAgIGxhdGVz dCA9IHRzCi0rICAgIHJldHVybiBsYXRlc3QKLSsKLSsKLSBkZWYgdGVzdF9yZXBsaWNhdGlvbl9s b2dfbW9uaXRvcmluZ19iYXNpYyh0b3BvX200KToKLSAgICAgIiIiVGVzdCBiYXNpYyByZXBsaWNh dGlvbiBsb2cgbW9uaXRvcmluZyBmdW5jdGlvbmFsaXR5Ci0gCi1AQCAtMTI4LDggKzIyMyw3IEBA IGRlZiB0ZXN0X3JlcGxpY2F0aW9uX2xvZ19tb25pdG9yaW5nX2Jhc2ljKHRvcG9fbTQpOgotIAot ICAgICB0cnk6Ci0gICAgICAgICAjIENsZWFyIGxvZ3MgYW5kIHJlc3RhcnQgc2VydmVycwotLSAg ICAgICAgZm9yIHN1cHBsaWVyIGluIHN1cHBsaWVyczoKLS0gICAgICAgICAgICBzdXBwbGllci5k ZWxldGVBY2Nlc3NMb2dzKHJlc3RhcnQ9VHJ1ZSkKLSsgICAgICAgIF9jbGVhcl9hY2Nlc3NfbG9n cyhzdXBwbGllcnMpCi0gCi0gICAgICAgICAjIEdlbmVyYXRlIHRlc3QgZGF0YSB3aXRoIGtub3du IHBhdHRlcm5zCi0gICAgICAgICBsb2cuaW5mbygnQ3JlYXRpbmcgdGVzdCBkYXRhLi4uJykKLUBA IC0xNDAsMTEgKzIzNCwxMCBAQCBkZWYgdGVzdF9yZXBsaWNhdGlvbl9sb2dfbW9uaXRvcmluZ19i YXNpYyh0b3BvX200KToKLSAgICAgICAgIHJlcGwudGVzdF9yZXBsaWNhdGlvbl90b3BvbG9neSh0 b3BvX200KQotIAotICAgICAgICAgIyBSZXN0YXJ0IHRvIGZsdXNoIGxvZ3MKLS0gICAgICAgIGZv ciBzdXBwbGllciBpbiBzdXBwbGllcnM6Ci0tICAgICAgICAgICAgc3VwcGxpZXIucmVzdGFydCgp Ci0rICAgICAgICBfcmVzdGFydF9zdXBwbGllcnMoc3VwcGxpZXJzKQotIAotICAgICAgICAgIyBD b25maWd1cmUgbW9uaXRvcmluZwotLSAgICAgICAgbG9nX2RpcnMgPSBbcy5kc19wYXRocy5sb2df ZGlyIGZvciBzIGluIHN1cHBsaWVyc10KLSsgICAgICAgIGxvZ19kaXJzID0gX2dldF9sb2dfZGly cyhzdXBwbGllcnMpCi0gICAgICAgICByZXBsX21vbml0b3IgPSBSZXBsaWNhdGlvbkxvZ0FuYWx5 emVyKAotICAgICAgICAgICAgIGxvZ19kaXJzPWxvZ19kaXJzLAotICAgICAgICAgICAgIHN1ZmZp eGVzPVtERUZBVUxUX1NVRkZJWF0sCi1AQCAtMTc3LDIzICsyNzAsMjMgQEAgZGVmIHRlc3RfcmVw bGljYXRpb25fbG9nX21vbml0b3JpbmdfYmFzaWModG9wb19tNCk6Ci0gICAgICAgICAgICAgYXNz ZXJ0IERFRkFVTFRfU1VGRklYIGluIGNzdl9jb250ZW50Ci0gCi0gICAgICAgICAjIFZlcmlmeSBQ YXR0ZXJuRmx5IEpTT04gY29udGVudAotLSAgICAgICAgd2l0aCBvcGVuKGdlbmVyYXRlZF9maWxl c1snanNvbiddLCAncicpIGFzIGY6Ci0tICAgICAgICAgICAganNvbl9kYXRhID0ganNvbi5sb2Fk KGYpCi0tICAgICAgICAgICAgYXNzZXJ0ICdyZXBsaWNhdGlvbkxhZ3MnIGluIGpzb25fZGF0YQot LSAgICAgICAgICAgIGFzc2VydCBqc29uX2RhdGFbJ3JlcGxpY2F0aW9uTGFncyddWydzZXJpZXMn XSwgIkV4cGVjdGVkIHJlcGxpY2F0aW9uIGxhZyBzZXJpZXMgaW4gSlNPTiBvdXRwdXQiCi0rICAg ICAgICBqc29uX2RhdGEgPSBfbG9hZF9qc29uKGdlbmVyYXRlZF9maWxlc1snanNvbiddKQotKyAg ICAgICAgYXNzZXJ0ICdyZXBsaWNhdGlvbkxhZ3MnIGluIGpzb25fZGF0YQotKyAgICAgICAgYXNz ZXJ0IGpzb25fZGF0YVsncmVwbGljYXRpb25MYWdzJ11bJ3NlcmllcyddLCAiRXhwZWN0ZWQgcmVw bGljYXRpb24gbGFnIHNlcmllcyBpbiBKU09OIG91dHB1dCIKLSsKLSsgICAgICAgIF9hc3NlcnRf Y3NuX2RldGFpbHNfc2NoZW1hKGpzb25fZGF0YSkKLSAKLSAgICAgICAgICMgVmVyaWZ5IEpTT04g c3VtbWFyeQotLSAgICAgICAgd2l0aCBvcGVuKGdlbmVyYXRlZF9maWxlc1snc3VtbWFyeSddLCAn cicpIGFzIGY6Ci0tICAgICAgICAgICAgc3VtbWFyeSA9IGpzb24ubG9hZChmKQotLSAgICAgICAg ICAgIGFzc2VydCAnYW5hbHlzaXNfc3VtbWFyeScgaW4gc3VtbWFyeQotLSAgICAgICAgICAgIHN0 YXRzID0gc3VtbWFyeVsnYW5hbHlzaXNfc3VtbWFyeSddCi0rICAgICAgICBzdW1tYXJ5ID0gX2xv YWRfanNvbihnZW5lcmF0ZWRfZmlsZXNbJ3N1bW1hcnknXSkKLSsgICAgICAgIGFzc2VydCAnYW5h bHlzaXNfc3VtbWFyeScgaW4gc3VtbWFyeQotKyAgICAgICAgc3RhdHMgPSBzdW1tYXJ5WydhbmFs eXNpc19zdW1tYXJ5J10KLSAKLS0gICAgICAgICAgICAjIFZlcmlmeSBiYXNpYyBzdGF0cwotLSAg ICAgICAgICAgIGFzc2VydCBzdGF0c1sndG90YWxfc2VydmVycyddID09IGxlbihzdXBwbGllcnMp Ci0tICAgICAgICAgICAgYXNzZXJ0IHN0YXRzWyd0b3RhbF91cGRhdGVzJ10gPiAwCi0tICAgICAg ICAgICAgYXNzZXJ0IHN0YXRzWyd1cGRhdGVzX2J5X3N1ZmZpeCddW0RFRkFVTFRfU1VGRklYXSA+ IDAKLS0gICAgICAgICAgICBhc3NlcnQgJ2F2ZXJhZ2VfbGFnJyBpbiBzdGF0cwotLSAgICAgICAg ICAgIGFzc2VydCAnbWF4aW11bV9sYWcnIGluIHN0YXRzCi0rICAgICAgICAjIFZlcmlmeSBiYXNp YyBzdGF0cwotKyAgICAgICAgYXNzZXJ0IHN0YXRzWyd0b3RhbF9zZXJ2ZXJzJ10gPT0gbGVuKHN1 cHBsaWVycykKLSsgICAgICAgIGFzc2VydCBzdGF0c1sndG90YWxfdXBkYXRlcyddID4gMAotKyAg ICAgICAgYXNzZXJ0IHN0YXRzWyd1cGRhdGVzX2J5X3N1ZmZpeCddW0RFRkFVTFRfU1VGRklYXSA+ IDAKLSsgICAgICAgIGFzc2VydCAnYXZlcmFnZV9sYWcnIGluIHN0YXRzCi0rICAgICAgICBhc3Nl cnQgJ21heGltdW1fbGFnJyBpbiBzdGF0cwotIAotICAgICBmaW5hbGx5OgotICAgICAgICAgX2Ns ZWFudXBfdGVzdF9kYXRhKHRlc3RfdXNlcnMsIHRtcF9kaXIpCi1AQCAtMjIxLDggKzMxNCw3IEBA IGRlZiB0ZXN0X3JlcGxpY2F0aW9uX2xvZ19tb25pdG9yaW5nX2FkdmFuY2VkKHRvcG9fbTQpOgot IAotICAgICB0cnk6Ci0gICAgICAgICAjIENsZWFyIGxvZ3MgYW5kIHJlc3RhcnQgc2VydmVycwot LSAgICAgICAgZm9yIHN1cHBsaWVyIGluIHN1cHBsaWVyczoKLS0gICAgICAgICAgICBzdXBwbGll ci5kZWxldGVBY2Nlc3NMb2dzKHJlc3RhcnQ9VHJ1ZSkKLSsgICAgICAgIF9jbGVhcl9hY2Nlc3Nf bG9ncyhzdXBwbGllcnMpCi0gCi0gICAgICAgICAjIEdlbmVyYXRlIHRlc3QgZGF0YQotICAgICAg ICAgc3RhcnRfdGltZSA9IGRhdGV0aW1lLm5vdyh0aW1lem9uZS51dGMpCi1AQCAtMjQwLDEwICsz MzIsOSBAQCBkZWYgdGVzdF9yZXBsaWNhdGlvbl9sb2dfbW9uaXRvcmluZ19hZHZhbmNlZCh0b3Bv X200KToKLSAgICAgICAgIGVuZF90aW1lID0gZGF0ZXRpbWUubm93KHRpbWV6b25lLnV0YykKLSAK LSAgICAgICAgICMgUmVzdGFydCB0byBmbHVzaCBsb2dzCi0tICAgICAgICBmb3Igc3VwcGxpZXIg aW4gc3VwcGxpZXJzOgotLSAgICAgICAgICAgIHN1cHBsaWVyLnJlc3RhcnQoKQotKyAgICAgICAg X3Jlc3RhcnRfc3VwcGxpZXJzKHN1cHBsaWVycykKLSAKLS0gICAgICAgIGxvZ19kaXJzID0gW3Mu ZHNfcGF0aHMubG9nX2RpciBmb3IgcyBpbiBzdXBwbGllcnNdCi0rICAgICAgICBsb2dfZGlycyA9 IF9nZXRfbG9nX2RpcnMoc3VwcGxpZXJzKQotIAotICAgICAgICAgIyBUZXN0IDE6IExhZyB0aW1l IGZpbHRlcmluZwotICAgICAgICAgcmVwbF9tb25pdG9yID0gUmVwbGljYXRpb25Mb2dBbmFseXpl cigKLUBAIC0zNzQsOCArNDY1LDcgQEAgZGVmIHRlc3RfcmVwbGljYXRpb25fbG9nX21vbml0b3Jp bmdfbXVsdGlfc3VmZml4KHRvcG9fbTQpOgotICAgICAgICAgICAgIHJlcGwgPSBSZXBsaWNhdGlv bk1hbmFnZXIoc3VmZml4KQotICAgICAgICAgICAgIHJlcGwudGVzdF9yZXBsaWNhdGlvbl90b3Bv bG9neSh0b3BvX200KQotIAotLSAgICAgICAgZm9yIHN1cHBsaWVyIGluIHN1cHBsaWVyczoKLS0g ICAgICAgICAgICBzdXBwbGllci5kZWxldGVBY2Nlc3NMb2dzKHJlc3RhcnQ9VHJ1ZSkKLSsgICAg ICAgIF9jbGVhcl9hY2Nlc3NfbG9ncyhzdXBwbGllcnMpCi0gCi0gICAgICAgICBzdGFydF90aW1l ID0gZGF0ZXRpbWUubm93KHRpbWV6b25lLnV0YykKLSAKLUBAIC00MDAsMTEgKzQ5MCwxMCBAQCBk ZWYgdGVzdF9yZXBsaWNhdGlvbl9sb2dfbW9uaXRvcmluZ19tdWx0aV9zdWZmaXgodG9wb19tNCk6 Ci0gICAgICAgICBlbmRfdGltZSA9IGRhdGV0aW1lLm5vdyh0aW1lem9uZS51dGMpCi0gCi0gICAg ICAgICAjIFJlc3RhcnQgdG8gZmx1c2ggbG9ncwotLSAgICAgICAgZm9yIHN1cHBsaWVyIGluIHN1 cHBsaWVyczoKLS0gICAgICAgICAgICBzdXBwbGllci5yZXN0YXJ0KCkKLSsgICAgICAgIF9yZXN0 YXJ0X3N1cHBsaWVycyhzdXBwbGllcnMpCi0gCi0gICAgICAgICAjIE1vbml0b3IgYWxsIHN1ZmZp eGVzCi0tICAgICAgICBsb2dfZGlycyA9IFtzLmRzX3BhdGhzLmxvZ19kaXIgZm9yIHMgaW4gc3Vw cGxpZXJzXQotKyAgICAgICAgbG9nX2RpcnMgPSBfZ2V0X2xvZ19kaXJzKHN1cHBsaWVycykKLSAg ICAgICAgIHJlcGxfbW9uaXRvciA9IFJlcGxpY2F0aW9uTG9nQW5hbHl6ZXIoCi0gICAgICAgICAg ICAgbG9nX2RpcnM9bG9nX2RpcnMsCi0gICAgICAgICAgICAgc3VmZml4ZXM9YWxsX3N1ZmZpeGVz LAotQEAgLTQ2Niw4ICs1NTUsNyBAQCBkZWYgdGVzdF9yZXBsaWNhdGlvbl9sb2dfbW9uaXRvcmlu Z19maWx0ZXJfY29tYmluYXRpb25zKHRvcG9fbTQpOgotIAotICAgICB0cnk6Ci0gICAgICAgICAj IENsZWFyIGxvZ3MgYW5kIHJlc3RhcnQgc2VydmVycwotLSAgICAgICAgZm9yIHN1cHBsaWVyIGlu IHN1cHBsaWVyczoKLS0gICAgICAgICAgICBzdXBwbGllci5kZWxldGVBY2Nlc3NMb2dzKHJlc3Rh cnQ9VHJ1ZSkKLSsgICAgICAgIF9jbGVhcl9hY2Nlc3NfbG9ncyhzdXBwbGllcnMpCi0gCi0gICAg ICAgICAjIEdlbmVyYXRlIHZhcmllZCB0ZXN0IGRhdGEKLSAgICAgICAgIHN0YXJ0X3RpbWUgPSBk YXRldGltZS5ub3codGltZXpvbmUudXRjKQotQEAgLTQ3NSw5ICs1NjMsNyBAQCBkZWYgdGVzdF9y ZXBsaWNhdGlvbl9sb2dfbW9uaXRvcmluZ19maWx0ZXJfY29tYmluYXRpb25zKHRvcG9fbTQpOgot IAotICAgICAgICAgIyBDcmVhdGUgZGlmZmVyZW50IGxhZyBwYXR0ZXJucwotICAgICAgICAgIyBQ YXVzZSBvdXRib3VuZCBhZ3JlZW1lbnRzIGZyb20gc3VwcGxpZXIxIHRvIGJ1aWxkIGEgcmVwbGlj YXRpb24gYmFja2xvZwotLSAgICAgICAgZm9yIGFnbXQgaW4gc3VwcGxpZXJzWzBdLmFncmVlbWVu dC5saXN0KHN1ZmZpeD1ERUZBVUxUX1NVRkZJWCk6Ci0tICAgICAgICAgICAgc3VwcGxpZXJzWzBd LmFncmVlbWVudC5wYXVzZShhZ210LmRuKQotLSAgICAgICAgICAgIHBhdXNlZF9hZ3JlZW1lbnRz LmFwcGVuZCgoc3VwcGxpZXJzWzBdLCBhZ210LmRuKSkKLSsgICAgICAgIHBhdXNlZF9hZ3JlZW1l bnRzID0gX3BhdXNlX2FncmVlbWVudHMoc3VwcGxpZXJzWzBdLCBERUZBVUxUX1NVRkZJWCkKLSAK LSAgICAgICAgIGZvciBpLCB1c2VyIGluIGVudW1lcmF0ZSh0ZXN0X3VzZXJzKToKLSAgICAgICAg ICAgICBpZiBpICUgMyA9PSAwOgotQEAgLTUwMiwxMCArNTg4LDkgQEAgZGVmIHRlc3RfcmVwbGlj YXRpb25fbG9nX21vbml0b3JpbmdfZmlsdGVyX2NvbWJpbmF0aW9ucyh0b3BvX200KToKLSAgICAg ICAgIGVuZF90aW1lID0gZGF0ZXRpbWUubm93KHRpbWV6b25lLnV0YykKLSAKLSAgICAgICAgICMg UmVzdGFydCB0byBmbHVzaCBsb2dzCi0tICAgICAgICBmb3Igc3VwcGxpZXIgaW4gc3VwcGxpZXJz OgotLSAgICAgICAgICAgIHN1cHBsaWVyLnJlc3RhcnQoKQotKyAgICAgICAgX3Jlc3RhcnRfc3Vw cGxpZXJzKHN1cHBsaWVycykKLSAKLS0gICAgICAgIGxvZ19kaXJzID0gW3MuZHNfcGF0aHMubG9n X2RpciBmb3IgcyBpbiBzdXBwbGllcnNdCi0rICAgICAgICBsb2dfZGlycyA9IF9nZXRfbG9nX2Rp cnMoc3VwcGxpZXJzKQotIAotICAgICAgICAgIyBUZXN0IGNvbWJpbmVkIGZpbHRlcnMKLSAgICAg ICAgIGxhZ190aHJlc2hvbGQgPSAwLjUKLUBAIC01NDMsMTEgKzYyOCwzMjEgQEAgZGVmIHRlc3Rf cmVwbGljYXRpb25fbG9nX21vbml0b3JpbmdfZmlsdGVyX2NvbWJpbmF0aW9ucyh0b3BvX200KToK LSAgICAgICAgICAgICAgICAgZHQgPSBkYXRldGltZS5mcm9tdGltZXN0YW1wKHQsIHRpbWV6b25l LnV0YykKLSAgICAgICAgICAgICAgICAgYXNzZXJ0IHN0YXJ0X3RpbWUgPD0gZHQgPD0gZW5kX3Rp bWUsICJUaW1lIHJhbmdlIGZpbHRlciB2aW9sYXRlZCIKLSAgICAgZmluYWxseToKLS0gICAgICAg IGZvciBzdXBwbGllcl9vYmosIGRuIGluIHBhdXNlZF9hZ3JlZW1lbnRzOgotLSAgICAgICAgICAg IHRyeToKLS0gICAgICAgICAgICAgICAgc3VwcGxpZXJfb2JqLmFncmVlbWVudC5yZXN1bWUoZG4p Ci0tICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotLSAgICAgICAgICAgICAgICBs b2cud2FybmluZyhmIkZhaWxlZCB0byByZXN1bWUgYWdyZWVtZW50IHtkbn06IHtlfSIpCi0rICAg ICAgICBfcmVzdW1lX2FncmVlbWVudHMocGF1c2VkX2FncmVlbWVudHMpCi0rICAgICAgICBfY2xl YW51cF90ZXN0X2RhdGEodGVzdF91c2VycywgdG1wX2RpcikKLSsKLSsKLStkZWYgdGVzdF9yZXBs aWNhdGlvbl9sb2dfbW9uaXRvcmluZ19jc25fZGV0YWlsc19lZGdlX2Nhc2VzKHRvcG9fbTQpOgot KyAgICAiIiJUZXN0IENTTiBkZXRhaWxzIGVkZ2UgY2FzZXMgYW5kIHN0cnVjdHVyZSB2YWxpZGF0 aW9uCi0rCi0rICAgIDppZDogZjQzZGM0NzMtNDQyOC00OTcxLWJlNGMtMTY5YzRhNzg3MjZlCi0r ICAgIDpzZXR1cDogRm91ciBzdXBwbGllcnMgcmVwbGljYXRpb24gc2V0dXAKLSsgICAgOnN0ZXBz OgotKyAgICAgICAgMS4gVGVzdCBDU04gZGV0YWlscyBzdHJ1Y3R1cmUgd2l0aCB2YXJpb3VzIHJl cGxpY2F0aW9uIHBhdHRlcm5zCi0rICAgICAgICAyLiBWZXJpZnkgYXJyaXZhbHMgb3JkZXJpbmcg YW5kIGhvcCBsYWcgY2FsY3VsYXRpb25zCi0rICAgICAgICAzLiBUZXN0IHBhcnRpYWwgcmVwbGlj YXRpb24gc2NlbmFyaW9zCi0rICAgICAgICA0LiBWZXJpZnkgb3JpZ2luIHNlcnZlciBkZXRlY3Rp b24KLSsgICAgOmV4cGVjdGVkcmVzdWx0czoKLSsgICAgICAgIDEuIENTTiBkZXRhaWxzIHNob3Vs ZCBoYXZlIGNvcnJlY3Qgc3RydWN0dXJlCi0rICAgICAgICAyLiBBcnJpdmFscyBzaG91bGQgYmUg b3JkZXJlZCBieSB0aW1lc3RhbXAKLSsgICAgICAgIDMuIFBhcnRpYWwgcmVwbGljYXRpb24gc2hv dWxkIGJlIGRldGVjdGVkCi0rICAgICAgICA0LiBPcmlnaW4gc2VydmVyIHNob3VsZCBiZSBjb3Jy ZWN0bHkgaWRlbnRpZmllZAotKyAgICAiIiIKLSsgICAgdG1wX2RpciA9IHRlbXBmaWxlLm1rZHRl bXAocHJlZml4PSdyZXBsX2Nzbl9lZGdlXycpCi0rICAgIHRlc3RfdXNlcnMgPSBbXQotKyAgICBz dXBwbGllcnMgPSBbdG9wb19tNC5tc1tmInN1cHBsaWVye2l9Il0gZm9yIGkgaW4gcmFuZ2UoMSwg NSldCi0rCi0rICAgIHRyeToKLSsgICAgICAgIF9jbGVhcl9hY2Nlc3NfbG9ncyhzdXBwbGllcnMp Ci0rCi0rICAgICAgICBsb2cuaW5mbygnQ3JlYXRpbmcgdGVzdCBkYXRhIGZvciBDU04gZGV0YWls cyBlZGdlIGNhc2UgdGVzdGluZy4uLicpCi0rICAgICAgICB0ZXN0X3VzZXJzID0gX2dlbmVyYXRl X3Rlc3RfZGF0YShzdXBwbGllcnNbMF0sIERFRkFVTFRfU1VGRklYLCA1KQotKwotKyAgICAgICAg cmVwbCA9IFJlcGxpY2F0aW9uTWFuYWdlcihERUZBVUxUX1NVRkZJWCkKLSsgICAgICAgIHJlcGwu dGVzdF9yZXBsaWNhdGlvbl90b3BvbG9neSh0b3BvX200KQotKwotKyAgICAgICAgX3Jlc3RhcnRf c3VwcGxpZXJzKHN1cHBsaWVycykKLSsKLSsgICAgICAgIGxvZ19kaXJzID0gX2dldF9sb2dfZGly cyhzdXBwbGllcnMpCi0rICAgICAgICByZXBsX21vbml0b3IgPSBSZXBsaWNhdGlvbkxvZ0FuYWx5 emVyKAotKyAgICAgICAgICAgIGxvZ19kaXJzPWxvZ19kaXJzLAotKyAgICAgICAgICAgIHN1ZmZp eGVzPVtERUZBVUxUX1NVRkZJWF0sCi0rICAgICAgICAgICAgYW5vbnltb3VzPUZhbHNlLAotKyAg ICAgICAgICAgIG9ubHlfZnVsbHlfcmVwbGljYXRlZD1UcnVlCi0rICAgICAgICApCi0rCi0rICAg ICAgICByZXBsX21vbml0b3IucGFyc2VfbG9ncygpCi0rICAgICAgICBnZW5lcmF0ZWRfZmlsZXMg PSByZXBsX21vbml0b3IuZ2VuZXJhdGVfcmVwb3J0KAotKyAgICAgICAgICAgIG91dHB1dF9kaXI9 dG1wX2RpciwKLSsgICAgICAgICAgICBmb3JtYXRzPVsnanNvbiddLAotKyAgICAgICAgICAgIHJl cG9ydF9uYW1lPSdjc25fZWRnZV90ZXN0JwotKyAgICAgICAgKQotKwotKyAgICAgICAgYXNzZXJ0 IG9zLnBhdGguZXhpc3RzKGdlbmVyYXRlZF9maWxlc1snanNvbiddKQotKwotKyAgICAgICAganNv bl9kYXRhID0gX2xvYWRfanNvbihnZW5lcmF0ZWRfZmlsZXNbJ2pzb24nXSkKLSsKLSsgICAgICAg IGFzc2VydCAnY3NuRGV0YWlscycgaW4ganNvbl9kYXRhLCAiY3NuRGV0YWlscyBzaG91bGQgYmUg cHJlc2VudCIKLSsgICAgICAgIGNzbl9kZXRhaWxzID0ganNvbl9kYXRhWydjc25EZXRhaWxzJ10K LSsKLSsgICAgICAgIGlmIGNzbl9kZXRhaWxzOgotKyAgICAgICAgICAgIGZvciBjc24sIGRldGFp bHMgaW4gY3NuX2RldGFpbHMuaXRlbXMoKToKLSsgICAgICAgICAgICAgICAgYXJyaXZhbHMgPSBk ZXRhaWxzLmdldCgnYXJyaXZhbHMnLCBbXSkKLSsgICAgICAgICAgICAgICAgaWYgbGVuKGFycml2 YWxzKSA+IDE6Ci0rICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXBzID0gW2FbJ3RpbWVzdGFt cCddIGZvciBhIGluIGFycml2YWxzXQotKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHRpbWVz dGFtcHMgPT0gc29ydGVkKHRpbWVzdGFtcHMpLCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAg ZiJBcnJpdmFscyBmb3IgQ1NOIHtjc259IHNob3VsZCBiZSBvcmRlcmVkIGJ5IHRpbWVzdGFtcCIK LSsKLSsgICAgICAgICAgICAgICAgaWYgYXJyaXZhbHM6Ci0rICAgICAgICAgICAgICAgICAgICBv cmlnaW5fYXJyaXZhbCA9IG5leHQoKGEgZm9yIGEgaW4gYXJyaXZhbHMgaWYgYS5nZXQoJ2lzT3Jp Z2luJykpLCBOb25lKQotKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IG9yaWdpbl9hcnJpdmFs IGlzIG5vdCBOb25lLCAiRXhwZWN0ZWQgYW4gYXJyaXZhbCBtYXJrZWQgYXMgb3JpZ2luIgotKyAg ICAgICAgICAgICAgICAgICAgYXNzZXJ0IG9yaWdpbl9hcnJpdmFsLmdldCgnc2VydmVyJykgPT0g ZGV0YWlscy5nZXQoJ29yaWdpblNlcnZlcicpLCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAg Ik9yaWdpbiBhcnJpdmFsIHNlcnZlciBzaG91bGQgbWF0Y2ggb3JpZ2luU2VydmVyIGZpZWxkIgot KwotKyAgICAgICAgICAgICAgICAgICAgZm9yIGksIGFycml2YWwgaW4gZW51bWVyYXRlKGFycml2 YWxzWzE6XSwgc3RhcnQ9MSk6Ci0rICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ICdob3BM YWcnIGluIGFycml2YWwsIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgZiJBcnJpdmFs IHtpfSBzaG91bGQgaGF2ZSBob3BMYWciCi0rICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0 IGFycml2YWxbJ2hvcExhZyddID49IDAsIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ImhvcExhZyBzaG91bGQgYmUgbm9uLW5lZ2F0aXZlIgotKwotKyAgICAgICAgICAgICAgICBpZiBs ZW4oYXJyaXZhbHMpID4gMToKLSsgICAgICAgICAgICAgICAgICAgIGdsb2JhbF9sYWcgPSBkZXRh aWxzLmdldCgnZ2xvYmFsTGFnJywgMCkKLSsgICAgICAgICAgICAgICAgICAgIGFzc2VydCBnbG9i YWxfbGFnID49IDAsICJnbG9iYWxMYWcgc2hvdWxkIGJlIG5vbi1uZWdhdGl2ZSIKLSsKLSsgICAg ICAgICAgICAgICAgICAgIGxhc3RfZGVsYXkgPSBhcnJpdmFsc1stMV0uZ2V0KCdyZWxhdGl2ZURl bGF5JywgMCkKLSsgICAgICAgICAgICAgICAgICAgIGFzc2VydCBhYnMobGFzdF9kZWxheSAtIGds b2JhbF9sYWcpIDwgMC4wMDEsIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAiTGFzdCBhcnJp dmFsJ3MgcmVsYXRpdmVEZWxheSBzaG91bGQgbWF0Y2ggZ2xvYmFsTGFnIgotKwotKyAgICAgICAg ICAgICAgICBzZXJ2ZXJfY291bnQgPSBkZXRhaWxzLmdldCgnc2VydmVyQ291bnQnLCAwKQotKyAg ICAgICAgICAgICAgICBhc3NlcnQgc2VydmVyX2NvdW50ID09IGxlbihhcnJpdmFscyksIFwKLSsg ICAgICAgICAgICAgICAgICAgICJzZXJ2ZXJDb3VudCBzaG91bGQgbWF0Y2ggbnVtYmVyIG9mIGFy cml2YWxzIgotKwotKyAgICAgICAgICAgICAgICB0b3RhbF9ob3BzID0gZGV0YWlscy5nZXQoJ3Rv dGFsSG9wcycsIDApCi0rICAgICAgICAgICAgICAgIGV4cGVjdGVkX2hvcHMgPSBtYXgoMCwgbGVu KGFycml2YWxzKSAtIDEpCi0rICAgICAgICAgICAgICAgIGFzc2VydCB0b3RhbF9ob3BzID09IGV4 cGVjdGVkX2hvcHMsIFwKLSsgICAgICAgICAgICAgICAgICAgIGYidG90YWxIb3BzIHNob3VsZCBi ZSB7ZXhwZWN0ZWRfaG9wc30sIGdvdCB7dG90YWxfaG9wc30iCi0rCi0rICAgICAgICAgICAgICAg IGhvcHMgPSBkZXRhaWxzLmdldCgnaG9wcycsIFtdKQotKyAgICAgICAgICAgICAgICBhc3NlcnQg bGVuKGhvcHMpID09IHRvdGFsX2hvcHMsIFwKLSsgICAgICAgICAgICAgICAgICAgICJob3BzIGxp c3QgbGVuZ3RoIHNob3VsZCBtYXRjaCB0b3RhbEhvcHMiCi0rCi0rICAgICAgICAgICAgaWYgJ3Jl cGxpY2F0aW9uTGFncycgaW4ganNvbl9kYXRhIGFuZCBqc29uX2RhdGFbJ3JlcGxpY2F0aW9uTGFn cyddLmdldCgnc2VyaWVzJyk6Ci0rICAgICAgICAgICAgICAgIGZvciBzZXJpZXMgaW4ganNvbl9k YXRhWydyZXBsaWNhdGlvbkxhZ3MnXVsnc2VyaWVzJ106Ci0rICAgICAgICAgICAgICAgICAgICBm b3IgZGF0YXBvaW50IGluIHNlcmllcy5nZXQoJ2RhdGFwb2ludHMnLCBbXSk6Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgY3NuX2lkID0gZGF0YXBvaW50LmdldCgnY3NuSWQnKQotKyAgICAgICAg ICAgICAgICAgICAgICAgIGlmIGNzbl9pZDoKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg YXNzZXJ0IGNzbl9pZCBpbiBjc25fZGV0YWlscywgXAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZiJjc25JZCB7Y3NuX2lkfSBpbiBkYXRhcG9pbnQgc2hvdWxkIGV4aXN0IGluIGNz bkRldGFpbHMiCi0rCi0rICAgIGZpbmFsbHk6Ci0rICAgICAgICBfY2xlYW51cF90ZXN0X2RhdGEo dGVzdF91c2VycywgdG1wX2RpcikKLSsKLSsKLStkZWYgdGVzdF9yZXBsaWNhdGlvbl9sb2dfbW9u aXRvcmluZ19vcmlnaW5fb3V0X29mX3Njb3BlKHRvcG9fbTQpOgotKyAgICAiIiJUZXN0IG9yaWdp biBkZXRlY3Rpb24gd2hlbiBvcmlnaW4gc2VydmVyIHJlY29yZCBpcyBvdXRzaWRlIHRpbWUgcmFu Z2UKLSsKLSsgICAgOmlkOiBkNzNmZDljNS1mOTMwLTQ3ZDYtYWRlNC1hZGExY2YwZDJjMjEKLSsg ICAgOnNldHVwOiBGb3VyIHN1cHBsaWVycyByZXBsaWNhdGlvbiBzZXR1cAotKyAgICA6c3RlcHM6 Ci0rICAgICAgICAxLiBQYXVzZSBvdXRib3VuZCBhZ3JlZW1lbnRzIGZyb20gdGhlIG9yaWdpbiBz dXBwbGllcgotKyAgICAgICAgMi4gR2VuZXJhdGUgY2hhbmdlcywgdGhlbiByZXN1bWUgYWdyZWVt ZW50cyB0byBkZWxheSBjb25zdW1lciBhcnJpdmFscwotKyAgICAgICAgMy4gVXNlIHRpbWUgcmFu Z2UgdGhhdCBleGNsdWRlcyB0aGUgb3JpZ2luIGxvZyBidXQgaW5jbHVkZXMgY29uc3VtZXIgbG9n cwotKyAgICA6ZXhwZWN0ZWRyZXN1bHRzOgotKyAgICAgICAgMS4gT3JpZ2luIHNlcnZlciBzaG91 bGQgYmUgaWRlbnRpZmllZCBmcm9tIHJlcGxpY2EgSUQgbWFwcGluZwotKyAgICAgICAgMi4gQXQg bGVhc3Qgb25lIENTTiBzaG91bGQgaGF2ZSBvcmlnaW4gb3V0c2lkZSB0aGUgc2VsZWN0ZWQgdGlt ZSByYW5nZQotKyAgICAgICAgMy4gSlNPTiByZXBvcnQgc2hvdWxkIGluY2x1ZGUgY3NuRGV0YWls cyBlbnRyaWVzIGZvciB2YWxpZGF0aW9uCi0rICAgICIiIgotKyAgICB0bXBfZGlyID0gdGVtcGZp bGUubWtkdGVtcChwcmVmaXg9J3JlcGxfb3JpZ2luX3Njb3BlXycpCi0rICAgIHRlc3RfdXNlcnMg PSBbXQotKyAgICBzdXBwbGllcnMgPSBbdG9wb19tNC5tc1tmInN1cHBsaWVye2l9Il0gZm9yIGkg aW4gcmFuZ2UoMSwgNSldCi0rICAgIHBhdXNlZF9hZ3JlZW1lbnRzID0gW10KLSsKLSsgICAgdHJ5 OgotKyAgICAgICAgIyBSZXNldCBhY2Nlc3MgbG9ncyB0byBtYWtlIHRpbWUtcmFuZ2UgY3V0cyBl YXNpZXIgdG8gcmVhc29uIGFib3V0Ci0rICAgICAgICBfY2xlYXJfYWNjZXNzX2xvZ3Moc3VwcGxp ZXJzKQotKwotKyAgICAgICAgIyBQYXVzZSBvdXRib3VuZCBhZ3JlZW1lbnRzIHNvIGNvbnN1bWVy IGxvZ3Mgd29uJ3Qgc2VlIHRoZSBwcmUtcmVzdW1lIENTTnMKLSsgICAgICAgIHBhdXNlZF9hZ3Jl ZW1lbnRzID0gX3BhdXNlX2FncmVlbWVudHMoc3VwcGxpZXJzWzBdLCBERUZBVUxUX1NVRkZJWCkK LSsKLSsgICAgICAgIGxvZy5pbmZvKCdDcmVhdGluZyBwcmUtcmVzdW1lIGNoYW5nZXMgZm9yIG9y aWdpbiBvdXQtb2Ytc2NvcGUgdGVzdC4uLicpCi0rICAgICAgICAjIENyZWF0ZSBDU05zIHRoYXQg b3JpZ2luYXRlIG9uIHN1cHBsaWVyMSBidXQgd29uJ3QgcmVhY2ggY29uc3VtZXJzIHlldAotKyAg ICAgICAgcHJlX3N0YXJ0ID0gZGF0ZXRpbWUubm93KHRpbWV6b25lLnV0YykKLSsgICAgICAgIHRl c3RfdXNlcnMgPSBfZ2VuZXJhdGVfdGVzdF9kYXRhKAotKyAgICAgICAgICAgIHN1cHBsaWVyc1sw XSwgREVGQVVMVF9TVUZGSVgsIDIsIHVzZXJfcHJlZml4PSJvcmlnaW5fc2NvcGVfcHJlIgotKyAg ICAgICAgKQotKyAgICAgICAgcHJlX2VuZCA9IGRhdGV0aW1lLm5vdyh0aW1lem9uZS51dGMpCi0r ICAgICAgICAjIExvY2F0ZSB0aGUgbGF0ZXN0IG9yaWdpbiBsb2cgdGltZSBmb3IgdGhlc2UgQ1NO cyB0byBzZXQgYSBkZXRlcm1pbmlzdGljIGN1dG9mZgotKyAgICAgICAgb3JpZ2luX2xvZ190aW1l ID0gX2ZpbmRfbGF0ZXN0X2xvZ3RpbWVfZm9yX3ByZWZpeCgKLSsgICAgICAgICAgICBzdXBwbGll cnNbMF0uZHNfcGF0aHMubG9nX2RpciwKLSsgICAgICAgICAgICBERUZBVUxUX1NVRkZJWCwKLSsg ICAgICAgICAgICBwcmVfc3RhcnQsCi0rICAgICAgICAgICAgcHJlX2VuZCwKLSsgICAgICAgICAg ICAib3JpZ2luX3Njb3BlX3ByZV8iCi0rICAgICAgICApCi0rICAgICAgICBhc3NlcnQgb3JpZ2lu X2xvZ190aW1lIGlzIG5vdCBOb25lLCAiRXhwZWN0ZWQgb3JpZ2luIHNlcnZlciBsb2cgZW50cmll cyBmb3IgcHJlLXJlc3VtZSBkYXRhIgotKyAgICAgICAgIyBDdXQgdGhlIGFuYWx5c2lzIHdpbmRv dyBqdXN0IGFmdGVyIG9yaWdpbiBsb2dnaW5nLCBleGNsdWRpbmcgc3VwcGxpZXIxIGVudHJpZXMK LSsgICAgICAgIHN0YXJ0X3RpbWUgPSBvcmlnaW5fbG9nX3RpbWUgKyB0aW1lZGVsdGEoc2Vjb25k cz0xKQotKyAgICAgICAgdGltZS5zbGVlcCgxKQotKwotKyAgICAgICAgIyBSZXN1bWUgYWdyZWVt ZW50cyBzbyB0aGUgcHJlLXJlc3VtZSBDU05zIHJlcGxpY2F0ZSB0byBjb25zdW1lcnMgYWZ0ZXIg c3RhcnRfdGltZQotKyAgICAgICAgX3Jlc3VtZV9hZ3JlZW1lbnRzKHBhdXNlZF9hZ3JlZW1lbnRz KQotKyAgICAgICAgcGF1c2VkX2FncmVlbWVudHMuY2xlYXIoKQotKwotKyAgICAgICAgbG9nLmlu Zm8oJ0NyZWF0aW5nIHBvc3QtcmVzdW1lIGNoYW5nZXMgZm9yIG9yaWdpbiBtYXBwaW5nLi4uJykK LSsgICAgICAgICMgQWRkaXRpb25hbCBDU05zIGFmdGVyIHJlc3VtZSBlbnN1cmUgbm9ybWFsIHJl cGxpY2F0aW9uIGNvbnRpbnVlcwotKyAgICAgICAgdGVzdF91c2VycyArPSBfZ2VuZXJhdGVfdGVz dF9kYXRhKAotKyAgICAgICAgICAgIHN1cHBsaWVyc1swXSwgREVGQVVMVF9TVUZGSVgsIDIsIHVz ZXJfcHJlZml4PSJvcmlnaW5fc2NvcGVfcG9zdCIKLSsgICAgICAgICkKLSsKLSsgICAgICAgICMg V2FpdCBmb3IgcmVwbGljYXRpb24gdG8gZmluaXNoIGFuZCBjYXB0dXJlIHRoZSB1cHBlciBib3Vu ZCBvZiB0aGUgdGltZSB3aW5kb3cKLSsgICAgICAgIHJlcGwgPSBSZXBsaWNhdGlvbk1hbmFnZXIo REVGQVVMVF9TVUZGSVgpCi0rICAgICAgICByZXBsLnRlc3RfcmVwbGljYXRpb25fdG9wb2xvZ3ko dG9wb19tNCkKLSsgICAgICAgIGVuZF90aW1lID0gZGF0ZXRpbWUubm93KHRpbWV6b25lLnV0YykK LSsKLSsgICAgICAgICMgUmVzdGFydCB0byBmbHVzaCBsb2dzIGJlZm9yZSBhbmFseXNpcwotKyAg ICAgICAgX3Jlc3RhcnRfc3VwcGxpZXJzKHN1cHBsaWVycykKLSsKLSsgICAgICAgIGxvZ19kaXJz ID0gX2dldF9sb2dfZGlycyhzdXBwbGllcnMpCi0rICAgICAgICByZXBsX21vbml0b3IgPSBSZXBs aWNhdGlvbkxvZ0FuYWx5emVyKAotKyAgICAgICAgICAgIGxvZ19kaXJzPWxvZ19kaXJzLAotKyAg ICAgICAgICAgIHN1ZmZpeGVzPVtERUZBVUxUX1NVRkZJWF0sCi0rICAgICAgICAgICAgdGltZV9y YW5nZT17J3N0YXJ0Jzogc3RhcnRfdGltZSwgJ2VuZCc6IGVuZF90aW1lfQotKyAgICAgICAgKQot KwotKyAgICAgICAgIyBQYXJzZSBsb2dzIHdpdGhpbiB0aGUgdGltZSB3aW5kb3cgYW5kIHByb2R1 Y2UgSlNPTiBkZXRhaWxzCi0rICAgICAgICByZXBsX21vbml0b3IucGFyc2VfbG9ncygpCi0rICAg ICAgICBnZW5lcmF0ZWRfZmlsZXMgPSByZXBsX21vbml0b3IuZ2VuZXJhdGVfcmVwb3J0KAotKyAg ICAgICAgICAgIG91dHB1dF9kaXI9dG1wX2RpciwKLSsgICAgICAgICAgICBmb3JtYXRzPVsnanNv biddLAotKyAgICAgICAgICAgIHJlcG9ydF9uYW1lPSdvcmlnaW5fc2NvcGVfdGVzdCcKLSsgICAg ICAgICkKLSsKLSsgICAgICAgIGpzb25fZGF0YSA9IF9sb2FkX2pzb24oZ2VuZXJhdGVkX2ZpbGVz Wydqc29uJ10pCi0rCi0rICAgICAgICBjc25fZGV0YWlscyA9IGpzb25fZGF0YS5nZXQoJ2NzbkRl dGFpbHMnLCB7fSkKLSsgICAgICAgIG9yaWdpbl9zZXJ2ZXIgPSBzdXBwbGllcnNbMF0uc2VydmVy aWQKLSsgICAgICAgIGZvdW5kID0gRmFsc2UKLSsgICAgICAgIGlmIGNzbl9kZXRhaWxzOgotKyAg ICAgICAgICAgIG9yaWdpbl9jb3VudHMgPSB7fQotKyAgICAgICAgICAgIGZvciBkZXRhaWxzIGlu IGNzbl9kZXRhaWxzLnZhbHVlcygpOgotKyAgICAgICAgICAgICAgICBvcmlnaW4gPSBkZXRhaWxz LmdldCgnb3JpZ2luU2VydmVyJywgJ3Vua25vd24nKQotKyAgICAgICAgICAgICAgICBvcmlnaW5f Y291bnRzW29yaWdpbl0gPSBvcmlnaW5fY291bnRzLmdldChvcmlnaW4sIDApICsgMQotKyAgICAg ICAgICAgIGlmIG9yaWdpbl9zZXJ2ZXIgbm90IGluIG9yaWdpbl9jb3VudHMgYW5kIGYic2xhcGQt e29yaWdpbl9zZXJ2ZXJ9IiBpbiBvcmlnaW5fY291bnRzOgotKyAgICAgICAgICAgICAgICBvcmln aW5fc2VydmVyID0gZiJzbGFwZC17b3JpZ2luX3NlcnZlcn0iCi0rCi0rICAgICAgICAjIEZvY3Vz IG9uIHRoZSBwcmUtcmVzdW1lIENTTnM7IHRoZXNlIHNob3VsZCBoYXZlIG9yaWdpbiBvdXQgb2Yg c2NvcGUKLSsgICAgICAgIHByZV9kZXRhaWxzID0gWwotKyAgICAgICAgICAgIGRldGFpbHMgZm9y IGRldGFpbHMgaW4gY3NuX2RldGFpbHMudmFsdWVzKCkKLSsgICAgICAgICAgICBpZiAib3JpZ2lu X3Njb3BlX3ByZV8iIGluIChkZXRhaWxzLmdldCgndGFyZ2V0RG4nKSBvciAnJykKLSsgICAgICAg IF0KLSsgICAgICAgIGFzc2VydCBwcmVfZGV0YWlscywgIkV4cGVjdGVkIHByZS1yZXN1bWUgQ1NO cyBpbiBjc25EZXRhaWxzIgotKyAgICAgICAgIyBDb25maXJtIGF0IGxlYXN0IG9uZSBDU04gc2hv d3Mgb3JpZ2luIHNlcnZlciBtaXNzaW5nIGZyb20gYXJyaXZhbHMKLSsgICAgICAgIGZvciBkZXRh aWxzIGluIHByZV9kZXRhaWxzOgotKyAgICAgICAgICAgIGlmIGRldGFpbHMuZ2V0KCdvcmlnaW5T ZXJ2ZXInKSAhPSBvcmlnaW5fc2VydmVyOgotKyAgICAgICAgICAgICAgICBjb250aW51ZQotKyAg ICAgICAgICAgIGFycml2YWxzID0gZGV0YWlscy5nZXQoJ2Fycml2YWxzJywgW10pCi0rICAgICAg ICAgICAgYXJyaXZhbF9zZXJ2ZXJzID0ge2EuZ2V0KCdzZXJ2ZXInKSBmb3IgYSBpbiBhcnJpdmFs c30KLSsgICAgICAgICAgICBpZiBhcnJpdmFsX3NlcnZlcnMgYW5kIG9yaWdpbl9zZXJ2ZXIgbm90 IGluIGFycml2YWxfc2VydmVyczoKLSsgICAgICAgICAgICAgICAgZm91bmQgPSBUcnVlCi0rICAg ICAgICAgICAgICAgIGJyZWFrCi0rICAgICAgICAgICAgbG9nLmluZm8oCi0rICAgICAgICAgICAg ICAgICJPcmlnaW4gb3V0LW9mLXNjb3BlIGNhbmRpZGF0ZTogY3NuPSVzIGFycml2YWxzPSVzIiwK LSsgICAgICAgICAgICAgICAgZGV0YWlscy5nZXQoJ2NzbicpLAotKyAgICAgICAgICAgICAgICBz b3J0ZWQoYXJyaXZhbF9zZXJ2ZXJzKQotKyAgICAgICAgICAgICkKLSsKLSsgICAgICAgIGFzc2Vy dCBmb3VuZCwgKAotKyAgICAgICAgICAgICJFeHBlY3RlZCBhdCBsZWFzdCBvbmUgQ1NOIHdoZXJl IHRoZSBvcmlnaW4gc2VydmVyIGlzIG91dHNpZGUgdGhlIHRpbWUgcmFuZ2UgIgotKyAgICAgICAg ICAgICJidXQgc3RpbGwgaWRlbnRpZmllZCB2aWEgcmVwbGljYSBJRCBtYXBwaW5nIgotKyAgICAg ICAgKQotKwotKyAgICBmaW5hbGx5OgotKyAgICAgICAgX3Jlc3VtZV9hZ3JlZW1lbnRzKHBhdXNl ZF9hZ3JlZW1lbnRzKQotKyAgICAgICAgX2NsZWFudXBfdGVzdF9kYXRhKHRlc3RfdXNlcnMsIHRt cF9kaXIpCi0rCi0rCi0rZGVmIHRlc3RfcmVwbGljYXRpb25fbG9nX21vbml0b3JpbmdfcGFydGlh bF9yZXBsaWNhdGlvbih0b3BvX200KToKLSsgICAgIiIiVGVzdCBDU04gZGV0YWlscyB3aXRoIHBh cnRpYWwgcmVwbGljYXRpb24gKG5vdCBhbGwgc2VydmVycyByZWFjaGVkKQotKwotKyAgICA6aWQ6 IGQ0MDI2ZmQwLWQ4M2ItNDAwZS04YzJlLTQ0ZmNmNjc2MzY4ZgotKyAgICA6c2V0dXA6IEZvdXIg c3VwcGxpZXJzIHJlcGxpY2F0aW9uIHNldHVwCi0rICAgIDpzdGVwczoKLSsgICAgICAgIDEuIFBh dXNlIHJlcGxpY2F0aW9uIGFncmVlbWVudHMgdG8gY3JlYXRlIHBhcnRpYWwgcmVwbGljYXRpb24K LSsgICAgICAgIDIuIEdlbmVyYXRlIGNoYW5nZXMgYW5kIHZlcmlmeSBwYXJ0aWFsIHJlcGxpY2F0 aW9uIGRldGVjdGlvbgotKyAgICAgICAgMy4gVmVyaWZ5IHJlcGxpY2F0ZWRUb0FsbCBmbGFnIGlz IGNvcnJlY3QKLSsgICAgOmV4cGVjdGVkcmVzdWx0czoKLSsgICAgICAgIDEuIFBhcnRpYWwgcmVw bGljYXRpb24gc2hvdWxkIGJlIGRldGVjdGVkCi0rICAgICAgICAyLiByZXBsaWNhdGVkVG9BbGwg c2hvdWxkIGJlIEZhbHNlIGZvciBwYXJ0aWFsbHkgcmVwbGljYXRlZCBDU05zCi0rICAgICAgICAz LiBzZXJ2ZXJDb3VudCBzaG91bGQgcmVmbGVjdCBhY3R1YWwgc2VydmVycyByZWFjaGVkCi0rICAg ICIiIgotKyAgICB0bXBfZGlyID0gdGVtcGZpbGUubWtkdGVtcChwcmVmaXg9J3JlcGxfcGFydGlh bF8nKQotKyAgICB0ZXN0X3VzZXJzID0gW10KLSsgICAgc3VwcGxpZXJzID0gW3RvcG9fbTQubXNb ZiJzdXBwbGllcntpfSJdIGZvciBpIGluIHJhbmdlKDEsIDUpXQotKyAgICBwYXVzZWRfYWdyZWVt ZW50cyA9IFtdCi0rCi0rICAgIHRyeToKLSsgICAgICAgIF9jbGVhcl9hY2Nlc3NfbG9ncyhzdXBw bGllcnMpCi0rCi0rICAgICAgICBsb2cuaW5mbygnQ3JlYXRpbmcgZnVsbHkgcmVwbGljYXRlZCB0 ZXN0IGRhdGEuLi4nKQotKyAgICAgICAgdGVzdF91c2VycyA9IF9nZW5lcmF0ZV90ZXN0X2RhdGEo c3VwcGxpZXJzWzBdLCBERUZBVUxUX1NVRkZJWCwgMykKLSsKLSsgICAgICAgIHJlcGwgPSBSZXBs aWNhdGlvbk1hbmFnZXIoREVGQVVMVF9TVUZGSVgpCi0rICAgICAgICByZXBsLnRlc3RfcmVwbGlj YXRpb25fdG9wb2xvZ3kodG9wb19tNCkKLSsKLSsgICAgICAgIF9yZXN0YXJ0X3N1cHBsaWVycyhz dXBwbGllcnMpCi0rCi0rICAgICAgICAjIFBhdXNlIG91dGJvdW5kIGFncmVlbWVudHMgZnJvbSBz dXBwbGllcjEgdG8gY3JlYXRlIHBhcnRpYWwgcmVwbGljYXRpb24KLSsgICAgICAgIHBhdXNlZF9h Z3JlZW1lbnRzID0gX3BhdXNlX2FncmVlbWVudHMoc3VwcGxpZXJzWzBdLCBERUZBVUxUX1NVRkZJ WCkKLSsKLSsgICAgICAgIGxvZy5pbmZvKCdDcmVhdGluZyBwYXJ0aWFsbHkgcmVwbGljYXRlZCB0 ZXN0IGRhdGEuLi4nKQotKyAgICAgICAgdGVzdF91c2VycyArPSBfZ2VuZXJhdGVfdGVzdF9kYXRh KHN1cHBsaWVyc1swXSwgREVGQVVMVF9TVUZGSVgsIDMsIHVzZXJfcHJlZml4PSJwYXJ0aWFsX3Vz ZXIiKQotKwotKyAgICAgICAgIyBBbGxvdyBzb21lIHRpbWUgZm9yIGxvY2FsIGxvZ2dpbmc7IGRv IG5vdCB3YWl0IGZvciBmdWxsIHJlcGxpY2F0aW9uCi0rICAgICAgICB0aW1lLnNsZWVwKDIpCi0r Ci0rICAgICAgICBsb2dfZGlycyA9IF9nZXRfbG9nX2RpcnMoc3VwcGxpZXJzKQotKyAgICAgICAg cmVwbF9tb25pdG9yID0gUmVwbGljYXRpb25Mb2dBbmFseXplcigKLSsgICAgICAgICAgICBsb2df ZGlycz1sb2dfZGlycywKLSsgICAgICAgICAgICBzdWZmaXhlcz1bREVGQVVMVF9TVUZGSVhdLAot KyAgICAgICAgICAgIGFub255bW91cz1GYWxzZSwKLSsgICAgICAgICAgICBvbmx5X2Z1bGx5X3Jl cGxpY2F0ZWQ9RmFsc2UsCi0rICAgICAgICAgICAgb25seV9ub3RfcmVwbGljYXRlZD1GYWxzZQot KyAgICAgICAgKQotKwotKyAgICAgICAgcmVwbF9tb25pdG9yLnBhcnNlX2xvZ3MoKQotKyAgICAg ICAgZ2VuZXJhdGVkX2ZpbGVzID0gcmVwbF9tb25pdG9yLmdlbmVyYXRlX3JlcG9ydCgKLSsgICAg ICAgICAgICBvdXRwdXRfZGlyPXRtcF9kaXIsCi0rICAgICAgICAgICAgZm9ybWF0cz1bJ2pzb24n XSwKLSsgICAgICAgICAgICByZXBvcnRfbmFtZT0ncGFydGlhbF9yZXBsX3Rlc3QnCi0rICAgICAg ICApCi0rCi0rICAgICAgICBqc29uX2RhdGEgPSBfbG9hZF9qc29uKGdlbmVyYXRlZF9maWxlc1sn anNvbiddKQotKwotKyAgICAgICAgYXNzZXJ0ICdjc25EZXRhaWxzJyBpbiBqc29uX2RhdGEKLSsg ICAgICAgIGNzbl9kZXRhaWxzID0ganNvbl9kYXRhWydjc25EZXRhaWxzJ10KLSsKLSsgICAgICAg IGlmIGNzbl9kZXRhaWxzOgotKyAgICAgICAgICAgIGZ1bGx5X3JlcGxpY2F0ZWRfY291bnQgPSBz dW0oCi0rICAgICAgICAgICAgICAgIDEgZm9yIGRldGFpbHMgaW4gY3NuX2RldGFpbHMudmFsdWVz KCkKLSsgICAgICAgICAgICAgICAgaWYgZGV0YWlscy5nZXQoJ3JlcGxpY2F0ZWRUb0FsbCcsIEZh bHNlKQotKyAgICAgICAgICAgICkKLSsKLSsgICAgICAgICAgICBhc3NlcnQgZnVsbHlfcmVwbGlj YXRlZF9jb3VudCA+IDAsIFwKLSsgICAgICAgICAgICAgICAgIlNob3VsZCBoYXZlIHNvbWUgZnVs bHkgcmVwbGljYXRlZCBDU05zIgotKwotKyAgICAgICAgICAgIHRvdGFsX3NlcnZlcnMgPSBsZW4o c3VwcGxpZXJzKQotKyAgICAgICAgICAgIGZvciBjc24sIGRldGFpbHMgaW4gY3NuX2RldGFpbHMu aXRlbXMoKToKLSsgICAgICAgICAgICAgICAgc2VydmVyX2NvdW50ID0gZGV0YWlscy5nZXQoJ3Nl cnZlckNvdW50JywgMCkKLSsgICAgICAgICAgICAgICAgYXNzZXJ0IHNlcnZlcl9jb3VudCA8PSB0 b3RhbF9zZXJ2ZXJzLCBcCi0rICAgICAgICAgICAgICAgICAgICBmInNlcnZlckNvdW50ICh7c2Vy dmVyX2NvdW50fSkgc2hvdWxkIG5vdCBleGNlZWQgdG90YWwgc2VydmVycyAoe3RvdGFsX3NlcnZl cnN9KSIKLSsKLSsgICAgICAgICAgICAgICAgcmVwbGljYXRlZF90b19hbGwgPSBkZXRhaWxzLmdl dCgncmVwbGljYXRlZFRvQWxsJywgRmFsc2UpCi0rICAgICAgICAgICAgICAgIGlmIHJlcGxpY2F0 ZWRfdG9fYWxsOgotKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHNlcnZlcl9jb3VudCA9PSB0 b3RhbF9zZXJ2ZXJzLCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgInJlcGxpY2F0ZWRUb0Fs bD1UcnVlIHJlcXVpcmVzIHNlcnZlckNvdW50ID09IHRvdGFsX3NlcnZlcnMiCi0rCi0rICAgIGZp bmFsbHk6Ci0rICAgICAgICBfcmVzdW1lX2FncmVlbWVudHMocGF1c2VkX2FncmVlbWVudHMpCi0g ICAgICAgICBfY2xlYW51cF90ZXN0X2RhdGEodGVzdF91c2VycywgdG1wX2RpcikKLSAKLSAKLWRp ZmYgLS1naXQgYS9zcmMvY29ja3BpdC8zODktY29uc29sZS9zcmMvbGliL21vbml0b3IvbW9uaXRv ck1vZGFscy5qc3ggYi9zcmMvY29ja3BpdC8zODktY29uc29sZS9zcmMvbGliL21vbml0b3IvbW9u aXRvck1vZGFscy5qc3gKLWluZGV4IGZhY2JkOWY1Zi4uM2M1YTQ2YTViIDEwMDY0NAotLS0tIGEv c3JjL2NvY2twaXQvMzg5LWNvbnNvbGUvc3JjL2xpYi9tb25pdG9yL21vbml0b3JNb2RhbHMuanN4 Ci0rKysgYi9zcmMvY29ja3BpdC8zODktY29uc29sZS9zcmMvbGliL21vbml0b3IvbW9uaXRvck1v ZGFscy5qc3gKLUBAIC0zLDE3ICszLDIyIEBAIGltcG9ydCBSZWFjdCBmcm9tICJyZWFjdCI7Ci0g aW1wb3J0IHsKLSAgICAgQnV0dG9uLAotICAgICBDaGVja2JveCwKLSsgICAgQ2xpcGJvYXJkQ29w eSwKLSsgICAgQ2xpcGJvYXJkQ29weVZhcmlhbnQsCi0gICAgIEVtcHR5U3RhdGUsCi0gICAgIEVt cHR5U3RhdGVJY29uLAotICAgICBFbXB0eVN0YXRlQm9keSwKLSAgICAgR3JpZCwKLSAgICAgR3Jp ZEl0ZW0sCi0gICAgIEZvcm0sCi0rICAgIExhYmVsLAotICAgICBNb2RhbCwKLSAgICAgTW9kYWxW YXJpYW50LAotICAgICBOdW1iZXJJbnB1dCwKLSAgICAgUmFkaW8sCi0gICAgIFNwaW5uZXIsCi0r ICAgIFNwbGl0LAotKyAgICBTcGxpdEl0ZW0sCi0gICAgIFRhYiwKLSAgICAgVGFicywKLSAgICAg VGFiVGl0bGVUZXh0LAotQEAgLTM2LDkgKzQxLDEyIEBAIGltcG9ydCB7Ci0gICAgIExpc3RJdGVt Ci0gfSBmcm9tICJAcGF0dGVybmZseS9yZWFjdC1jb3JlIjsKLSBpbXBvcnQgewotKyAgICBBcnJv d1JpZ2h0SWNvbiwKLSsgICAgQ2hlY2tDaXJjbGVJY29uLAotICAgICBDb3B5SWNvbiwKLSAgICAg T3V0bGluZWRRdWVzdGlvbkNpcmNsZUljb24sCi0gICAgIERvd25sb2FkSWNvbiwKLSsgICAgU2Vy dmVySWNvbgotIH0gZnJvbSAnQHBhdHRlcm5mbHkvcmVhY3QtaWNvbnMnOwotIGltcG9ydCBQcm9w VHlwZXMgZnJvbSAicHJvcC10eXBlcyI7Ci0gaW1wb3J0IHsgZ2V0X2RhdGVfc3RyaW5nIH0gZnJv bSAiLi4vdG9vbHMuanN4IjsKLUBAIC03MSw2ICs3OSwxOSBAQCBjb25zdCBNQVhfUkVQT1JUX0pT T05fU0laRSA9IDY0ICogMTAyNCAqIDEwMjQ7IC8vIDY0IE1pQgotIGNvbnN0IE1BWF9CSU5BUllf UkVBRF9TSVpFID0gNjQgKiAxMDI0ICogMTAyNDsgLy8gNjQgTWlCCi0gY29uc3QgQ1NWX1BSRVZJ RVdfTElORVMgPSAyMDsKLSAKLStjb25zdCBmb3JtYXRMYWdTZWNvbmRzID0gKHNlY29uZHMsIHBy ZWNpc2lvbiA9IDMpID0+IHsKLSsgICAgaWYgKHNlY29uZHMgPT09IHVuZGVmaW5lZCB8fCBzZWNv bmRzID09PSBudWxsKSB7Ci0rICAgICAgICByZXR1cm4gbnVsbDsKLSsgICAgfQotKyAgICBpZiAo c2Vjb25kcyA+PSAzNjAwKSB7Ci0rICAgICAgICByZXR1cm4gYCR7KHNlY29uZHMgLyAzNjAwKS50 b0ZpeGVkKHByZWNpc2lvbil9aGA7Ci0rICAgIH0KLSsgICAgaWYgKHNlY29uZHMgPj0gNjApIHsK LSsgICAgICAgIHJldHVybiBgJHsoc2Vjb25kcyAvIDYwKS50b0ZpeGVkKHByZWNpc2lvbil9bWA7 Ci0rICAgIH0KLSsgICAgcmV0dXJuIGAke3NlY29uZHMudG9GaXhlZChwcmVjaXNpb24pfXNgOwot K307Ci0rCi0gY2xhc3MgVGFza0xvZ01vZGFsIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAg ICAgcmVuZGVyKCkgewotICAgICAgICAgY29uc3QgewotQEAgLTExNjgsNiArMTE4OSwxMyBAQCBj bGFzcyBTY2F0dGVyTGluZUNoYXJ0IGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudCB7Ci0gICAg ICAgICAgICAgfSwgMjUwKTsKLSAgICAgICAgIH07Ci0gICAgICAgICB0aGlzLnRvZ2dsZUxlZ2Vu ZEl0ZW0gPSB0aGlzLnRvZ2dsZUxlZ2VuZEl0ZW0uYmluZCh0aGlzKTsKLSsgICAgICAgIHRoaXMu aGFuZGxlUG9pbnRDbGljayA9IHRoaXMuaGFuZGxlUG9pbnRDbGljay5iaW5kKHRoaXMpOwotKyAg ICB9Ci0rCi0rICAgIGhhbmRsZVBvaW50Q2xpY2soZGF0dW0sIHNlcmllc0luZGV4KSB7Ci0rICAg ICAgICBpZiAodGhpcy5wcm9wcy5vblBvaW50Q2xpY2sgJiYgZGF0dW0uY3NuSWQpIHsKLSsgICAg ICAgICAgICB0aGlzLnByb3BzLm9uUG9pbnRDbGljayhkYXR1bSk7Ci0rICAgICAgICB9Ci0gICAg IH0KLSAKLSAgICAgY29tcG9uZW50RGlkTW91bnQoKSB7Ci1AQCAtMTI2NywxNSArMTI5NSw3IEBA IGNsYXNzIFNjYXR0ZXJMaW5lQ2hhcnQgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50IHsKLSAg ICAgICAgIGNvbnN0IHsgc2VyaWVzLCB5RG9tYWluIH0gPSB0aGlzLl9nZXRTZXJpZXNTbmFwc2hv dCgpOwotIAotICAgICAgICAgLy8gSGVscGVyIGZ1bmN0aW9uIHRvIGZvcm1hdCB0aW1lIHZhbHVl cwotLSAgICAgICAgY29uc3QgZm9ybWF0VGltZVZhbHVlID0gKHNlY29uZHMpID0+IHsKLS0gICAg ICAgICAgICBpZiAoc2Vjb25kcyA+PSAzNjAwKSB7Ci0tICAgICAgICAgICAgICAgIHJldHVybiBg JHsoc2Vjb25kcyAvIDM2MDApLnRvRml4ZWQoMyl9aGA7Ci0tICAgICAgICAgICAgfSBlbHNlIGlm IChzZWNvbmRzID49IDYwKSB7Ci0tICAgICAgICAgICAgICAgIHJldHVybiBgJHsoc2Vjb25kcyAv IDYwKS50b0ZpeGVkKDMpfW1gOwotLSAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAg ICAgIHJldHVybiBgJHtzZWNvbmRzLnRvRml4ZWQoMyl9c2A7Ci0tICAgICAgICAgICAgfQotLSAg ICAgICAgfTsKLSsgICAgICAgIGNvbnN0IGZvcm1hdFRpbWVWYWx1ZSA9IChzZWNvbmRzKSA9PiBm b3JtYXRMYWdTZWNvbmRzKHNlY29uZHMsIDMpOwotIAotICAgICAgICAgLy8gUHJvY2VzcyB0b29s dGlwIEhUTUwgdGFncwotICAgICAgICAgY29uc3QgZm9ybWF0VG9vbHRpcCA9IChkYXR1bSkgPT4g ewotQEAgLTEzMDgsMTMgKzEzMjgsMzUgQEAgY2xhc3MgU2NhdHRlckxpbmVDaGFydCBleHRlbmRz IFJlYWN0LlB1cmVDb21wb25lbnQgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGFiZWxzPXsoeyBkYXR1bSB9KSA9PiBmb3JtYXRUb29sdGlwKGRhdHVtKX0KLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0cmFpblRvVmlzaWJsZUFyZWEKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxhYmVsQ29tcG9uZW50PXsKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA8Q2hhcnRUb29sdGlwCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBmb250U2l6ZTogIjEycHgiLAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMTAsCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB3aGl0ZVNwYWNlOiAicHJlLWxpbmUiIC8vIEltcG9y dGFudCBmb3IgbmV3bGluZXMKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfX0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPgotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPENoYXJ0VG9vbHRpcAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG9yaWVudGF0aW9uPXsoeyBkYXR1bSB9KSA9PiB7Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBvc2l0aW9uIHRvb2x0aXAgYmVs b3cgZm9yIGhpZ2ggcG9pbnRzLCBhYm92ZSBmb3IgbG93IHBvaW50cwotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHByZXZlbnRzIHRoZSB0b29sdGlwIGZy b20gYmxvY2tpbmcgY2xpY2tzIG9uIHBvaW50cyBuZWFyIHRoZSB0b3AKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeU1heCA9IHlEb21haW4ubWF4OwotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB5TWluID0geURvbWFp bi5taW47Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHlS YW5nZSA9IHlNYXggLSB5TWluOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCB0aHJlc2hvbGQgPSB5TWluICsgKHlSYW5nZSAqIDAuNik7Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXR1bS55ID4gdGhyZXNob2xk ID8gImJvdHRvbSIgOiAidG9wIjsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9fQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiAiMTJweCIsCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGl0ZVNwYWNlOiAicHJlLWxp bmUiLCAvLyBJbXBvcnRhbnQgZm9yIG5ld2xpbmVzCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHBvaW50ZXJFdmVudHM6ICJub25lIgotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH19Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZmx5b3V0U3R5bGU9e3sKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcG9pbnRlckV2ZW50czogIm5vbmUiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfX0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkeD17MH0KLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkeT17KHsgZGF0dW0gfSkgPT4gewot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBZGQgZXh0cmEgb2Zm c2V0IHRvIGtlZXAgdG9vbHRpcCBhd2F5IGZyb20gdGhlIHBvaW50Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHlNYXggPSB5RG9tYWluLm1heDsKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeU1pbiA9IHlEb21haW4u bWluOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB5UmFu Z2UgPSB5TWF4IC0geU1pbjsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgdGhyZXNob2xkID0geU1pbiArICh5UmFuZ2UgKiAwLjYpOwotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGF0dW0ueSA+IHRocmVzaG9sZCA/ IDEwIDogLTEwOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPgotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPgotICAgICAgICAgICAg ICAgICAgICAgICAgIH0KLUBAIC0xNDEwLDYgKzE0NTIsNyBAQCBjbGFzcyBTY2F0dGVyTGluZUNo YXJ0IGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudCB7Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5oaWRkZW5TZXJpZXNbaWR4XSkgewotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3QgaGFzQ2xpY2tIYW5kbGVyID0gISF0aGlzLnByb3BzLm9uUG9pbnRDbGljazsKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgPENoYXJ0U2NhdHRlcgotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBrZXk9e2BzY2F0dGVyLSR7aWR4fWB9Ci1AQCAtMTQxNyw5ICsxNDYwLDM5 IEBAIGNsYXNzIFNjYXR0ZXJMaW5lQ2hhcnQgZXh0ZW5kcyBSZWFjdC5QdXJlQ29tcG9uZW50IHsK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT17cy5kYXRhcG9p bnRzfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17ewot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogewotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw6IHMuY29s b3IKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxs OiBzLmNvbG9yLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGN1cnNvcjogaGFzQ2xpY2tIYW5kbGVyID8gJ3BvaW50ZXInIDogJ2RlZmF1bHQnCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGV2ZW50cz17aGFzQ2xpY2tIYW5kbGVyID8gW3sKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldDogImRhdGEiLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRIYW5kbGVyczogewot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s6 ICgpID0+IFt7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHRhcmdldDogImRhdGEiLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBtdXRhdGlvbjogKHByb3BzKSA9PiB7Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZVBv aW50Q2xpY2socHJvcHMuZGF0dW0sIGlkeCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1dLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uTW91c2VPdmVyOiAoKSA9PiBbewotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6 ICJkYXRhIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbXV0YXRpb246IChwcm9wcykgPT4gKHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucHJvcHMuc3R5 bGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZmlsbDogcy5jb2xvciwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3I6ICdwb2ludGVyJywKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJv a2VXaWR0aDogMiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJva2U6ICd2YXIoLS1wZi12NS1nbG9iYWwtLWFjdGl2ZS1jb2xv ci0tMTAwLCAjMDA2NmNjKScsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcjogNgotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH1dLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG9uTW91c2VPdXQ6ICgpID0+IFt7Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldDogImRhdGEiLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXRh dGlvbjogKCkgPT4gbnVsbAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH1dCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1dIDogdW5kZWZp bmVkfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICApOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9 KX0KLUBAIC0xNTAxLDE3ICsxNTc0LDMyMCBAQCBjbGFzcyBTY2F0dGVyTGluZUNoYXJ0IGV4dGVu ZHMgUmVhY3QuUHVyZUNvbXBvbmVudCB7Ci0gICAgIH0KLSB9Ci0gCi0rLyoqCi0rICogQ1NORGV0 YWlsTW9kYWwgLSBEaXNwbGF5cyBkZXRhaWxlZCBDU04gcHJvcGFnYXRpb24gcGF0aCBpbmZvcm1h dGlvbgotKyAqIFNob3dzIHRoZSBob3AtYnktaG9wIHRpbWluZyBvZiBob3cgYSBjaGFuZ2UgcHJv cGFnYXRlZCB0aHJvdWdoIHRoZSByZXBsaWNhdGlvbiB0b3BvbG9neQotKyAqLwotK2NsYXNzIENT TkRldGFpbE1vZGFsIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSsgICAgY29uc3RydWN0b3Io cHJvcHMpIHsKLSsgICAgICAgIHN1cGVyKHByb3BzKTsKLSsgICAgICAgIHRoaXMuZm9ybWF0VGlt ZXN0YW1wID0gdGhpcy5mb3JtYXRUaW1lc3RhbXAuYmluZCh0aGlzKTsKLSsgICAgICAgIHRoaXMu Zm9ybWF0TGFnID0gdGhpcy5mb3JtYXRMYWcuYmluZCh0aGlzKTsKLSsgICAgfQotKwotKyAgICBm b3JtYXRUaW1lc3RhbXAoaXNvU3RyaW5nKSB7Ci0rICAgICAgICBpZiAoIWlzb1N0cmluZykgcmV0 dXJuIF8oIlVua25vd24iKTsKLSsgICAgICAgIHRyeSB7Ci0rICAgICAgICAgICAgY29uc3QgZGF0 ZSA9IG5ldyBEYXRlKGlzb1N0cmluZyk7Ci0rICAgICAgICAgICAgaWYgKGlzTmFOKGRhdGUuZ2V0 VGltZSgpKSkgewotKyAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oIkludmFsaWQgdGltZXN0 YW1wIGZvcm1hdDoiLCBpc29TdHJpbmcpOwotKyAgICAgICAgICAgICAgICByZXR1cm4gY29ja3Bp dC5mb3JtYXQoXygiSW52YWxpZDogJDAiKSwgaXNvU3RyaW5nKTsKLSsgICAgICAgICAgICB9Ci0r ICAgICAgICAgICAgcmV0dXJuIGRhdGUudG9Mb2NhbGVTdHJpbmcodW5kZWZpbmVkLCB7Ci0rICAg ICAgICAgICAgICAgIHllYXI6ICdudW1lcmljJywKLSsgICAgICAgICAgICAgICAgbW9udGg6ICcy LWRpZ2l0JywKLSsgICAgICAgICAgICAgICAgZGF5OiAnMi1kaWdpdCcsCi0rICAgICAgICAgICAg ICAgIGhvdXI6ICcyLWRpZ2l0JywKLSsgICAgICAgICAgICAgICAgbWludXRlOiAnMi1kaWdpdCcs Ci0rICAgICAgICAgICAgICAgIHNlY29uZDogJzItZGlnaXQnLAotKyAgICAgICAgICAgICAgICBm cmFjdGlvbmFsU2Vjb25kRGlnaXRzOiAzLAotKyAgICAgICAgICAgICAgICBob3VyMTI6IGZhbHNl Ci0rICAgICAgICAgICAgfSk7Ci0rICAgICAgICB9IGNhdGNoIChlKSB7Ci0rICAgICAgICAgICAg Y29uc29sZS53YXJuKCJFcnJvciBmb3JtYXR0aW5nIHRpbWVzdGFtcDoiLCBpc29TdHJpbmcsIGUp OwotKyAgICAgICAgICAgIHJldHVybiBjb2NrcGl0LmZvcm1hdChfKCJJbnZhbGlkOiAkMCIpLCBp c29TdHJpbmcpOwotKyAgICAgICAgfQotKyAgICB9Ci0rCi0rICAgIGZvcm1hdExhZyhzZWNvbmRz KSB7Ci0rICAgICAgICByZXR1cm4gZm9ybWF0TGFnU2Vjb25kcyhzZWNvbmRzLCAzKSB8fCBfKCJO L0EiKTsKLSsgICAgfQotKwotKyAgICByZW5kZXIoKSB7Ci0rICAgICAgICBjb25zdCB7IGNzbkRh dGEsIG9uQ2xvc2UgfSA9IHRoaXMucHJvcHM7Ci0rCi0rICAgICAgICBpZiAoIWNzbkRhdGEpIHsK LSsgICAgICAgICAgICByZXR1cm4gbnVsbDsKLSsgICAgICAgIH0KLSsKLSsgICAgICAgIGNvbnN0 IGFycml2YWxzID0gY3NuRGF0YS5hcnJpdmFscyB8fCBbXTsKLSsgICAgICAgIGNvbnN0IHBhdGhK c29uID0gSlNPTi5zdHJpbmdpZnkoY3NuRGF0YSwgbnVsbCwgMik7Ci0rCi0rICAgICAgICByZXR1 cm4gKAotKyAgICAgICAgICAgIDxNb2RhbAotKyAgICAgICAgICAgICAgICB2YXJpYW50PXtNb2Rh bFZhcmlhbnQubGFyZ2V9Ci0rICAgICAgICAgICAgICAgIHRpdGxlPXtfKCJDU04gUHJvcGFnYXRp b24gRGV0YWlscyIpfQotKyAgICAgICAgICAgICAgICBpc09wZW49eyEhY3NuRGF0YX0KLSsgICAg ICAgICAgICAgICAgb25DbG9zZT17b25DbG9zZX0KLSsgICAgICAgICAgICAgICAgYXJpYS1sYWJl bD17XygiQ1NOIHByb3BhZ2F0aW9uIGRldGFpbHMiKX0KLSsgICAgICAgICAgICAgICAgYWN0aW9u cz17WwotKyAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbiBrZXk9ImNsb3NlIiB2YXJpYW50PSJw cmltYXJ5IiBvbkNsaWNrPXtvbkNsb3NlfT4KLSsgICAgICAgICAgICAgICAgICAgICAgICB7Xygi Q2xvc2UiKX0KLSsgICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPgotKyAgICAgICAgICAgICAg ICBdfQotKyAgICAgICAgICAgID4KLSsgICAgICAgICAgICAgICAgICAgICAgICB7LyogQ1NOIFN1 bW1hcnkgSW5mb3JtYXRpb24gKi99Ci0rICAgICAgICAgICAgICAgICAgICAgICAgPENhcmQgaXNG bGF0IGNsYXNzTmFtZT0iZHMtbWFyZ2luLWJvdHRvbS1tZCI+Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDxDYXJkQm9keT4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxH cmlkIGhhc0d1dHRlcj4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R3Jp ZEl0ZW0gc3Bhbj17Nn0+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDxEZXNjcmlwdGlvbkxpc3QgaXNIb3Jpem9udGFsIGlzQ29tcGFjdD4KLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxEZXNjcmlwdGlvbkxpc3RHcm91cD4KLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RGVzY3JpcHRp b25MaXN0VGVybT57XygiQ1NOIil9PC9EZXNjcmlwdGlvbkxpc3RUZXJtPgotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxEZXNjcmlwdGlvbkxpc3REZXNj cmlwdGlvbj4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgPENsaXBib2FyZENvcHkKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9e0NsaXBib2FyZENvcHlWYXJpYW50LmlubGlu ZX0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg PgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAge2NzbkRhdGEuY3NufQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA8L0NsaXBib2FyZENvcHk+Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPC9EZXNjcmlwdGlvbkxpc3REZXNjcmlwdGlvbj4KLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRGVzY3JpcHRpb25M aXN0R3JvdXA+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 RGVzY3JpcHRpb25MaXN0R3JvdXA+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgPERlc2NyaXB0aW9uTGlzdFRlcm0+e18oIkVudHJ5IEROIil9PC9EZXNj cmlwdGlvbkxpc3RUZXJtPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDxEZXNjcmlwdGlvbkxpc3REZXNjcmlwdGlvbj4KLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXAgY29udGVudD17Y3Nu RGF0YS50YXJnZXREbn0+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9InBmLXY1LXUtdGV4dC10cnVuY2F0ZSIg c3R5bGU9e3sgbWF4V2lkdGg6ICczMDBweCcsIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snIH19Pgot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHtjc25EYXRhLnRhcmdldERufQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9EZXNjcmlwdGlvbkxpc3REZXNjcmlw dGlvbj4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRGVz Y3JpcHRpb25MaXN0R3JvdXA+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA8RGVzY3JpcHRpb25MaXN0R3JvdXA+Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPERlc2NyaXB0aW9uTGlzdFRlcm0+e18oIlN1ZmZpeCIp fTwvRGVzY3JpcHRpb25MaXN0VGVybT4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA8RGVzY3JpcHRpb25MaXN0RGVzY3JpcHRpb24+e2NzbkRhdGEuc3Vm Zml4fTwvRGVzY3JpcHRpb25MaXN0RGVzY3JpcHRpb24+Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA8L0Rlc2NyaXB0aW9uTGlzdEdyb3VwPgotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0Rlc2NyaXB0aW9uTGlzdD4KLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWRJdGVtPgotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkSXRlbSBzcGFuPXs2fT4KLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPERlc2NyaXB0aW9uTGlzdCBpc0hvcml6b250 YWwgaXNDb21wYWN0PgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgPERlc2NyaXB0aW9uTGlzdEdyb3VwPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDxEZXNjcmlwdGlvbkxpc3RUZXJtPntfKCJPcmlnaW4gU2VydmVy Iil9PC9EZXNjcmlwdGlvbkxpc3RUZXJtPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDxEZXNjcmlwdGlvbkxpc3REZXNjcmlwdGlvbj4KLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPExhYmVsIGNvbG9y PSJibHVlIiBpY29uPXs8U2VydmVySWNvbiAvPn0+Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y3NuRGF0YS5vcmlnaW5TZXJ2ZXJ9Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTGFi ZWw+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9E ZXNjcmlwdGlvbkxpc3REZXNjcmlwdGlvbj4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDwvRGVzY3JpcHRpb25MaXN0R3JvdXA+Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y3NuRGF0YS5vcmlnaW5JbmNsdWRlZEluQXJy aXZhbHMgPT09IGZhbHNlICYmICgKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA8RGVzY3JpcHRpb25MaXN0R3JvdXA+Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxEZXNjcmlwdGlvbkxpc3RUZXJtPntf KCJPcmlnaW4gTm90ZSIpfTwvRGVzY3JpcHRpb25MaXN0VGVybT4KLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPERlc2NyaXB0aW9uTGlzdERlc2Ny aXB0aW9uPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPFRleHQgY29tcG9uZW50PXtUZXh0VmFyaWFudHMuc21hbGx9IHN0eWxlPXt7IGNv bG9yOiAndmFyKC0tcGYtdjUtZ2xvYmFsLS1Db2xvci0tMjAwKScgfX0+Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge18oIk9yaWdp biBzZXJ2ZXIgcmVjb3JkIGlzIG91dHNpZGUgdGhlIHNlbGVjdGVkIHRpbWUgcmFuZ2U7IGVudHJ5 IGRldGFpbHMgcmVmbGVjdCB0aGUgZWFybGllc3QgYXJyaXZhbC4iKX0KLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVGV4dD4KLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9EZXNjcmlw dGlvbkxpc3REZXNjcmlwdGlvbj4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA8L0Rlc2NyaXB0aW9uTGlzdEdyb3VwPgotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKX0KLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDxEZXNjcmlwdGlvbkxpc3RHcm91cD4KLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RGVzY3JpcHRpb25MaXN0VGVybT57 XygiVG90YWwgTGFnIil9PC9EZXNjcmlwdGlvbkxpc3RUZXJtPgotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxEZXNjcmlwdGlvbkxpc3REZXNjcmlwdGlv bj4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg PHN0cm9uZz57dGhpcy5mb3JtYXRMYWcoY3NuRGF0YS5nbG9iYWxMYWcpfTwvc3Ryb25nPgotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRGVzY3JpcHRp b25MaXN0RGVzY3JpcHRpb24+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA8L0Rlc2NyaXB0aW9uTGlzdEdyb3VwPgotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgPERlc2NyaXB0aW9uTGlzdEdyb3VwPgotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxEZXNjcmlwdGlvbkxpc3RUZXJt PntfKCJTZXJ2ZXJzIFJlYWNoZWQiKX08L0Rlc2NyaXB0aW9uTGlzdFRlcm0+Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPERlc2NyaXB0aW9uTGlzdERl c2NyaXB0aW9uPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7Y3NuRGF0YS5zZXJ2ZXJDb3VudH0KLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAge2NzbkRhdGEucmVwbGljYXRlZFRvQWxsICYmICgK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDxMYWJlbCBjb2xvcj0iZ3JlZW4iIGljb249ezxDaGVja0NpcmNsZUljb24gLz59IGNsYXNzTmFt ZT0iZHMtbGVmdC1tYXJnaW4iPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHtfKCJBbGwiKX0KLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTGFiZWw+Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9EZXNjcmlwdGlvbkxpc3RE ZXNjcmlwdGlvbj4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDwvRGVzY3JpcHRpb25MaXN0R3JvdXA+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDwvRGVzY3JpcHRpb25MaXN0PgotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDwvR3JpZEl0ZW0+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 L0dyaWQ+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ2FyZEJvZHk+Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgPC9DYXJkPgotKwotKyAgICAgICAgICAgICAgICAgICAgICAgIHsv KiBBcnJpdmFsIFRpbWVsaW5lIFZpc3VhbGl6YXRpb24gKi99Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgPENhcmQgaXNGbGF0IGNsYXNzTmFtZT0iZHMtbWFyZ2luLWJvdHRvbS1tZCI+Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDxDYXJkVGl0bGU+e18oIkFycml2YWwgVGltZWxpbmUi KX08L0NhcmRUaXRsZT4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENhcmRCb2R5Pgot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRleHQKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQ9e1RleHRWYXJpYW50cy5zbWFsbH0KLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9ImRzLW1hcmdpbi1ib3R0 b20iCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgY29sb3I6 ICd2YXIoLS1wZi12NS1nbG9iYWwtLUNvbG9yLS0yMDApJywgZm9udFN0eWxlOiAnaXRhbGljJyB9 fQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPgotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHtfKCJOb3RlOiBTaG93cyBhcnJpdmFsIG9yZGVyIGJ5IHRpbWUu IEFjdHVhbCByZXBsaWNhdGlvbiB0b3BvbG9neSBtYXkgZGlmZmVyIGluIGZhbi1vdXQgY29uZmln dXJhdGlvbnMuIil9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1RleHQ+Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcm9sZT0ibGlzdCIKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhcmlhLWxhYmVsPXtfKCJDU04gcHJvcGFnYXRpb24gdGltZWxpbmUiKX0KLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17ewotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXhXcmFwOiAnd3JhcCcsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYXA6ICd2YXIoLS1wZi12 NS1nbG9iYWwtLXNwYWNlci0tc20pJywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcGFkZGluZzogJ3ZhcigtLXBmLXY1LWdsb2JhbC0tc3BhY2VyLS1zbSknCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0KLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgID4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7YXJy aXZhbHMubWFwKChhcnJpdmFsLCBpZHgpID0+ICgKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgPFJlYWN0LkZyYWdtZW50IGtleT17aWR4fT4KLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsvKiBTZXJ2ZXIgTm9kZSAqL30KLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPSJsaXN0aXRlbSIKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVs PXtjb2NrcGl0LmZvcm1hdCgKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYXJyaXZhbC5pc09yaWdpbgotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBfKCJPcmlnaW4gc2VydmVyOiAkMCIp Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA6IF8oIlNlcnZlciAkMCwgZGVsYXk6ICQxIiksCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycml2YWwuc2VydmVyLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJpdmFsLmlzT3JpZ2lu ID8gIiIgOiB0aGlzLmZvcm1hdExhZyhhcnJpdmFsLnJlbGF0aXZlRGVsYXkpCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX0KLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17ewotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JywKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4RGlyZWN0 aW9uOiAnY29sdW1uJywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJywKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAndmFyKC0tcGYtdjUtZ2xvYmFsLS1zcGFj ZXItLXNtKScsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYmFja2dyb3VuZENvbG9yOiBhcnJpdmFsLmlzT3JpZ2luCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ3ZhcigtLXBmLXY1LWdsb2JhbC0t cGFsZXR0ZS0tYmx1ZS01MCwgI2U3ZjFmYSknCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDogJ3ZhcigtLXBmLXY1LWdsb2JhbC0tQmFja2dyb3Vu ZENvbG9yLS0yMDAsICNmMGYwZjApJywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6ICd2YXIoLS1wZi12NS1nbG9iYWwtLUJvcmRl clJhZGl1cy0tc20pJywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBib3JkZXI6IGFycml2YWwuaXNPcmlnaW4KLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnMnB4IHNvbGlkIHZhcigtLXBmLXY1LWds b2JhbC0tcHJpbWFyeS1jb2xvci0tMTAwLCAjMDA2NmNjKScKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnMXB4IHNvbGlkIHZhcigtLXBmLXY1 LWdsb2JhbC0tQm9yZGVyQ29sb3ItLTEwMCwgI2QyZDJkMiknLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbldpZHRoOiAnMTIwcHgnCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fT4KLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGV4dCBjb21wb25lbnQ9e1RleHRW YXJpYW50cy5zbWFsbH0gc3R5bGU9e3sgZm9udFdlaWdodDogJ2JvbGQnIH19PgotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7YXJyaXZhbC5zZXJ2 ZXJ9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9U ZXh0PgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxU ZXh0IGNvbXBvbmVudD17VGV4dFZhcmlhbnRzLnNtYWxsfSBzdHlsZT17eyBmb250U2l6ZTogJzAu NzVyZW0nLCBjb2xvcjogJ3ZhcigtLXBmLXY1LWdsb2JhbC0tQ29sb3ItLTIwMCknIH19PgotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dGhpcy5m b3JtYXRUaW1lc3RhbXAoYXJyaXZhbC50aW1lc3RhbXApfQotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVGV4dD4KLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7YXJyaXZhbC5pc09yaWdpbiAmJiAoCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMYWJlbCBj b2xvcj0iYmx1ZSIgaXNDb21wYWN0IHN0eWxlPXt7IG1hcmdpblRvcDogJzRweCcgfX0+Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Xygi T3JpZ2luIil9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDwvTGFiZWw+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKX0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7IWFycml2YWwuaXNPcmlnaW4gJiYgKAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA8VGV4dCBjb21wb25lbnQ9e1RleHRWYXJpYW50cy5z bWFsbH0gc3R5bGU9e3sgbWFyZ2luVG9wOiAnNHB4JywgY29sb3I6ICd2YXIoLS1wZi12NS1nbG9i YWwtLXN1Y2Nlc3MtY29sb3ItLTEwMCknIH19PgotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgK3t0aGlzLmZvcm1hdExhZyhhcnJpdmFsLnJl bGF0aXZlRGVsYXkpfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA8L1RleHQ+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKX0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDwvZGl2PgotKwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgey8qIEFycm93IGJldHdlZW4gbm9kZXMgKi99Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7aWR4IDwgYXJyaXZhbHMubGVuZ3RoIC0gMSAmJiAoCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdgotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPSJwcmVz ZW50YXRpb24iCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGFyaWEtaGlkZGVuPSJ0cnVlIgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17ewotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleERp cmVjdGlvbjogJ2NvbHVtbicsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJywKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6ICcwIHZh cigtLXBmLXY1LWdsb2JhbC0tc3BhY2VyLS14cyknCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA8QXJyb3dSaWdodEljb24gc3R5bGU9e3sgY29sb3I6ICd2 YXIoLS1wZi12NS1nbG9iYWwtLUNvbG9yLS0yMDApJyB9fSAvPgotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGV4dCBjb21wb25lbnQ9e1RleHRW YXJpYW50cy5zbWFsbH0gc3R5bGU9e3sKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiAnMC43cmVtJywKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAndmFy KC0tcGYtdjUtZ2xvYmFsLS1Db2xvci0tMjAwKScsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGl0ZVNwYWNlOiAnbm93cmFwJwotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fT4KLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHth cnJpdmFsc1tpZHggKyAxXS5ob3BMYWcgIT09IHVuZGVmaW5lZAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhpcy5mb3JtYXRM YWcoYXJyaXZhbHNbaWR4ICsgMV0uaG9wTGFnKQotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJyd9Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVGV4dD4KLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDwvUmVhY3QuRnJhZ21lbnQ+Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKSl9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA8L2Rpdj4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9DYXJkQm9keT4KLSsgICAg ICAgICAgICAgICAgICAgICAgICA8L0NhcmQ+Ci0rCi0rICAgICAgICAgICAgICAgICAgICAgICAg ey8qIERldGFpbGVkIEFycml2YWxzIFRhYmxlICovfQotKyAgICAgICAgICAgICAgICAgICAgICAg IDxDYXJkIGlzRmxhdCBjbGFzc05hbWU9ImRzLW1hcmdpbi1ib3R0b20tbWQiPgotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICA8Q2FyZFRpdGxlPntfKCJBcnJpdmFsIERldGFpbHMiKX08L0Nh cmRUaXRsZT4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENhcmRCb2R5PgotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzTmFtZT0icGYtdjUtYy10YWJs ZSBwZi1tLWNvbXBhY3QiIHJvbGU9ImdyaWQiPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDx0aGVhZD4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgPHRyPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRo PntfKCJTZXJ2ZXIiKX08L3RoPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPHRoPntfKCJBcnJpdmFsIFRpbWUiKX08L3RoPgotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPntfKCJIb3AgTGFnIil9PC90aD4KLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD57XygiQ3VtdWxhdGl2 ZSBEZWxheSIpfTwvdGg+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA8dGg+e18oIkR1cmF0aW9uIil9PC90aD4KLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgPC90cj4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA8L3RoZWFkPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4K LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2Fycml2YWxzLm1hcCgo YXJyaXZhbCwgaWR4KSA9PiAoCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA8dHIga2V5PXtpZHh9PgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDx0ZD4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAge2Fycml2YWwuc2VydmVyfQotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7YXJyaXZhbC5pc09yaWdpbiAmJiAoCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 c3BhbiBzdHlsZT17eyBjb2xvcjogJ3ZhcigtLXBmLXY1LWdsb2JhbC0tcHJpbWFyeS1jb2xvci0t MTAwKScsIG1hcmdpbkxlZnQ6ICd2YXIoLS1wZi12NS1nbG9iYWwtLXNwYWNlci0teHMpJyB9fT4K LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoe18oIk9yaWdpbiIpfSkKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKX0KLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDx0ZD57dGhpcy5mb3JtYXRUaW1lc3RhbXAoYXJyaXZhbC50 aW1lc3RhbXApfTwvdGQ+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPHRkPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7YXJyaXZhbC5pc09yaWdpbgotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyA8ZW0+e18oIk9yaWdpbiIpfTwvZW0+Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6 IHRoaXMuZm9ybWF0TGFnKGFycml2YWwuaG9wTGFnKX0KLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57dGhpcy5mb3JtYXRMYWcoYXJyaXZhbC5yZWxh dGl2ZURlbGF5KX08L3RkPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDx0ZD57YXJyaXZhbC5kdXJhdGlvbiA/IHRoaXMuZm9ybWF0TGFnKGFycml2YWwu ZHVyYXRpb24pIDogXygiTi9BIil9PC90ZD4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDwvdHI+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICkpfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+ Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICA8L0NhcmRCb2R5PgotKyAgICAgICAgICAgICAgICAgICAgICAgIDwv Q2FyZD4KLSsKLSsgICAgICAgICAgICAgICAgICAgICAgICB7LyogQ29weSBBY3Rpb25zICovfQot KyAgICAgICAgICAgICAgICAgICAgICAgIDxTcGxpdCBoYXNHdXR0ZXI+Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDxTcGxpdEl0ZW0+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA8Q2xpcGJvYXJkQ29weQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHZhcmlhbnQ9e0NsaXBib2FyZENvcHlWYXJpYW50LmV4cGFuc2lvbn0KLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpc0V4cGFuZGVkPXtmYWxzZX0KLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpc0NvZGUKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpc1JlYWRPbmx5Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaG92ZXJUaXA9e18oIkNvcHkgZnVsbCBwYXRoIEpTT04iKX0KLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjbGlja1RpcD17XygiQ29waWVkISIpfQotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHtwYXRoSnNvbn0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ2xpcGJv YXJkQ29weT4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TcGxpdEl0ZW0+Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgPC9TcGxpdD4KLSsgICAgICAgICAgICA8L01vZGFsPgotKyAg ICAgICAgKTsKLSsgICAgfQotK30KLSsKLStDU05EZXRhaWxNb2RhbC5wcm9wVHlwZXMgPSB7Ci0r ICAgIGNzbkRhdGE6IFByb3BUeXBlcy5vYmplY3QsCi0rICAgIG9uQ2xvc2U6IFByb3BUeXBlcy5m dW5jLmlzUmVxdWlyZWQKLSt9OwotKwotK0NTTkRldGFpbE1vZGFsLmRlZmF1bHRQcm9wcyA9IHsK LSsgICAgY3NuRGF0YTogbnVsbAotK307Ci0rCi0gY2xhc3MgTGFnUmVwb3J0TW9kYWwgZXh0ZW5k cyBSZWFjdC5Db21wb25lbnQgewotICAgICBjb25zdHJ1Y3Rvcihwcm9wcykgewotICAgICAgICAg c3VwZXIocHJvcHMpOwotIAotICAgICAgICAgdGhpcy5zdGF0ZSA9IHsKLS0gICAgICAgICAgICBh Y3RpdmVUYWJLZXk6IDAsIC8vIDAgPSBTdW1tYXJ5LCAxID0gQ2hhcnRzLCAyID0gUE5HIFJlcG9y dCwgMyA9IENTViBSZXBvcnQsIDQgPSBSZXBvcnQgRmlsZXMKLSsgICAgICAgICAgICBhY3RpdmVU YWJLZXk6IDAsCi0gICAgICAgICAgICAgLi4udGhpcy5fZnJlc2hSZXBvcnRTdGF0ZSgpLAotICAg ICAgICAgICAgIGxvYWRpbmdTdW1tYXJ5OiBmYWxzZSwKLSAgICAgICAgICAgICBsb2FkaW5nSnNv bjogZmFsc2UsCi0gICAgICAgICAgICAgbG9hZGluZ0NzdjogZmFsc2UsCi0tICAgICAgICAgICAg bG9hZGluZ1BuZzogZmFsc2UKLSsgICAgICAgICAgICBsb2FkaW5nUG5nOiBmYWxzZSwKLSsgICAg ICAgICAgICBzZWxlY3RlZENzbklkOiBudWxsCi0gICAgICAgICB9OwotIAotICAgICAgICAgdGhp cy5oYW5kbGVUYWJDbGljayA9IHRoaXMuaGFuZGxlVGFiQ2xpY2suYmluZCh0aGlzKTsKLUBAIC0x NTI0LDYgKzE5MDAsOCBAQCBjbGFzcyBMYWdSZXBvcnRNb2RhbCBleHRlbmRzIFJlYWN0LkNvbXBv bmVudCB7Ci0gICAgICAgICB0aGlzLnJlbmRlclBuZ1RhYiA9IHRoaXMucmVuZGVyUG5nVGFiLmJp bmQodGhpcyk7Ci0gICAgICAgICB0aGlzLnJlbmRlckNzdlRhYiA9IHRoaXMucmVuZGVyQ3N2VGFi LmJpbmQodGhpcyk7Ci0gICAgICAgICB0aGlzLnJlbmRlclJlcG9ydEZpbGVzVGFiID0gdGhpcy5y ZW5kZXJSZXBvcnRGaWxlc1RhYi5iaW5kKHRoaXMpOwotKyAgICAgICAgdGhpcy5oYW5kbGVDc25Q b2ludENsaWNrID0gdGhpcy5oYW5kbGVDc25Qb2ludENsaWNrLmJpbmQodGhpcyk7Ci0rICAgICAg ICB0aGlzLmhhbmRsZUNsb3NlQ3NuRGV0YWlscyA9IHRoaXMuaGFuZGxlQ2xvc2VDc25EZXRhaWxz LmJpbmQodGhpcyk7Ci0gCi0gICAgICAgICB0aGlzLl9hY3RpdmVMb2FkVG9rZW4gPSAwOwotICAg ICAgICAgdGhpcy5faXNNb3VudGVkID0gZmFsc2U7Ci1AQCAtMTU0MywxMCArMTkyMSwyNiBAQCBj bGFzcyBMYWdSZXBvcnRNb2RhbCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICAg ICAgc3VtbWFyeTogbnVsbCwKLSAgICAgICAgICAgICBzdWZmaXhTdGF0czoge30sCi0gICAgICAg ICAgICAgY2xpZW50U2FtcGxpbmdOb3RpY2U6IG51bGwsCi0rICAgICAgICAgICAgc2VsZWN0ZWRD c25JZDogbnVsbCwKLSAgICAgICAgICAgICAuLi5vdmVycmlkZXMKLSAgICAgICAgIH07Ci0gICAg IH0KLSAKLSsgICAgaGFuZGxlQ3NuUG9pbnRDbGljayhkYXR1bSkgewotKyAgICAgICAgaWYgKGRh dHVtICYmIGRhdHVtLmNzbklkKSB7Ci0rICAgICAgICAgICAgY29uc3QgeyBqc29uRGF0YSB9ID0g dGhpcy5zdGF0ZTsKLSsgICAgICAgICAgICBpZiAoanNvbkRhdGEgJiYganNvbkRhdGEuY3NuRGV0 YWlscyAmJiBqc29uRGF0YS5jc25EZXRhaWxzW2RhdHVtLmNzbklkXSkgewotKyAgICAgICAgICAg ICAgICB0aGlzLnNldFN0YXRlKHsgc2VsZWN0ZWRDc25JZDogZGF0dW0uY3NuSWQgfSk7Ci0rICAg ICAgICAgICAgfSBlbHNlIHsKLSsgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCJDU04gZGV0 YWlscyBub3QgYXZhaWxhYmxlIGZvcjoiLCBkYXR1bS5jc25JZCk7Ci0rICAgICAgICAgICAgfQot KyAgICAgICAgfQotKyAgICB9Ci0rCi0rICAgIGhhbmRsZUNsb3NlQ3NuRGV0YWlscygpIHsKLSsg ICAgICAgIHRoaXMuc2V0U3RhdGUoeyBzZWxlY3RlZENzbklkOiBudWxsIH0pOwotKyAgICB9Ci0r Ci0gICAgIGNvbXBvbmVudERpZE1vdW50KCkgewotICAgICAgICAgdGhpcy5faXNNb3VudGVkID0g dHJ1ZTsKLSAgICAgICAgIHRoaXMubG9hZERhdGEoKTsKLUBAIC0yMTE3LDcgKzI1MTEsNyBAQCBj bGFzcyBMYWdSZXBvcnRNb2RhbCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gCi0gICAgIHJl bmRlckNoYXJ0c1RhYigpIHsKLSAgICAgICAgIGNvbnN0IHsgcmVwb3J0VXJscyB9ID0gdGhpcy5w cm9wczsKLS0gICAgICAgIGNvbnN0IHsgbG9hZGluZ0pzb24sIGpzb25EYXRhLCBlcnJvciwgY2xp ZW50U2FtcGxpbmdOb3RpY2UgfSA9IHRoaXMuc3RhdGU7Ci0rICAgICAgICBjb25zdCB7IGxvYWRp bmdKc29uLCBqc29uRGF0YSwgZXJyb3IsIGNsaWVudFNhbXBsaW5nTm90aWNlLCBzZWxlY3RlZENz bklkIH0gPSB0aGlzLnN0YXRlOwotIAotICAgICAgICAgaWYgKGxvYWRpbmdKc29uKSB7Ci0gICAg ICAgICAgICAgcmV0dXJuICgKLUBAIC0yMTcwLDYgKzI1NjQsMTMgQEAgY2xhc3MgTGFnUmVwb3J0 TW9kYWwgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAgICAgICAgICAgICAgICAg ICAganNvbkRhdGEuaG9wTGFncy5zZXJpZXMgJiYKLSAgICAgICAgICAgICAgICAgICAgICAgICAg IGpzb25EYXRhLmhvcExhZ3Muc2VyaWVzLmxlbmd0aCA+IDA7Ci0gCi0rICAgICAgICBjb25zdCBo YXNDc25EZXRhaWxzID0ganNvbkRhdGEgJiYganNvbkRhdGEuY3NuRGV0YWlscyAmJgotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmtleXMoanNvbkRhdGEuY3NuRGV0YWlscyku bGVuZ3RoID4gMDsKLSsKLSsgICAgICAgIGNvbnN0IHNlbGVjdGVkQ3NuRGF0YSA9IHNlbGVjdGVk Q3NuSWQgJiYgaGFzQ3NuRGV0YWlscwotKyAgICAgICAgICAgID8ganNvbkRhdGEuY3NuRGV0YWls c1tzZWxlY3RlZENzbklkXQotKyAgICAgICAgICAgIDogbnVsbDsKLSsKLSAgICAgICAgIGlmICgh anNvbkRhdGEgfHwgKCFoYXNSZXBsaWNhdGlvbkxhZ3MgJiYgIWhhc0hvcExhZ3MpKSB7Ci0gICAg ICAgICAgICAgcmV0dXJuICgKLSAgICAgICAgICAgICAgICAgPEVtcHR5U3RhdGU+Ci1AQCAtMjIw MSw2ICsyNjAyLDE1IEBAIGNsYXNzIExhZ1JlcG9ydE1vZGFsIGV4dGVuZHMgUmVhY3QuQ29tcG9u ZW50IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2NsaWVudFNh bXBsaW5nTm90aWNlfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQWxl cnQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfQotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAge2hhc0NzbkRldGFpbHMgJiYgKAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDxUZXh0Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbXBvbmVudD17VGV4dFZhcmlhbnRzLnNtYWxsfQotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9ImRzLW1hcmdpbi1ib3R0b20iCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IGNvbG9yOiAn dmFyKC0tcGYtdjUtZ2xvYmFsLS1Db2xvci0tMjAwKScsIGZvbnRTdHlsZTogJ2l0YWxpYycgfX0K LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHtfKCJUaXA6IENsaWNrIG9uIGFueSBjaGFydCBwb2lu dCB0byB2aWV3IGRldGFpbGVkIENTTiBwcm9wYWdhdGlvbiBwYXRoLiIpfQotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDwvVGV4dD4KLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7aGFzUmVwbGlj YXRpb25MYWdzICYmICgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2 IGNsYXNzTmFtZT0iZHMtbWFyZ2luLWJvdHRvbSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDxUaXRsZSBoZWFkaW5nTGV2ZWw9ImgzIj4KLUBAIC0yMjMxLDYgKzI2 NDEsNyBAQCBjbGFzcyBMYWdSZXBvcnRNb2RhbCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4QXhpc0xhYmVsPXso anNvbkRhdGEucmVwbGljYXRpb25MYWdzLnhBeGlzTGFiZWwgfHwgIiIpLnJlcGxhY2UoL1xzKlRp bWVccyovZywgIiIpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgeUF4aXNMYWJlbD17anNvbkRhdGEucmVwbGljYXRpb25MYWdzLnlBeGlzTGFiZWwgfHwgXygi TGFnIFRpbWUgKHNlY29uZHMpIil9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkZWZhdWx0U2hvd0xlZ2VuZD17dHJ1ZX0KLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG9uUG9pbnRDbGljaz17aGFzQ3NuRGV0YWlscyA/IHRo aXMuaGFuZGxlQ3NuUG9pbnRDbGljayA6IHVuZGVmaW5lZH0KLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA8L2Rpdj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9Ci1AQCAtMjI1 MCw5ICsyNjYxLDE3IEBAIGNsYXNzIExhZ1JlcG9ydE1vZGFsIGV4dGVuZHMgUmVhY3QuQ29tcG9u ZW50IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhBeGlz TGFiZWw9eyhqc29uRGF0YS5ob3BMYWdzLnhBeGlzTGFiZWwgfHwgIiIpLnJlcGxhY2UoL1xzKlRp bWVccyovZywgIiIpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgeUF4aXNMYWJlbD17anNvbkRhdGEuaG9wTGFncy55QXhpc0xhYmVsIHx8IF8oIkhvcCBMYWcg VGltZSAoc2Vjb25kcykiKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRlZmF1bHRTaG93TGVnZW5kPXtmYWxzZX0KLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG9uUG9pbnRDbGljaz17aGFzQ3NuRGV0YWlscyA/IHRoaXMu aGFuZGxlQ3NuUG9pbnRDbGljayA6IHVuZGVmaW5lZH0KLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA8L2Rpdj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9Ci0rCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7LyogQ1NOIERldGFpbCBQYW5lbCAtIHNob3duIHdo ZW4gYSBwb2ludCBpcyBjbGlja2VkICovfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgPENTTkRldGFpbE1vZGFsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y3NuRGF0YT17c2VsZWN0ZWRDc25EYXRhfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG9uQ2xvc2U9e3RoaXMuaGFuZGxlQ2xvc2VDc25EZXRhaWxzfQotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLz4KLSsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDxkaXYgY2xhc3NOYW1lPSJkcy1tYXJnaW4tdG9wIj4KLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA8QnV0dG9uCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHZhcmlhbnQ9InNlY29uZGFyeSIKLUBAIC0yODc2LDYgKzMyOTUsMjggQEAgY2xh c3MgQ2hvb3NlTGFnUmVwb3J0TW9kYWwgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotIH0KLSAK LSAvLyBQcm90b3R5cGVzIGFuZCBkZWZhdWx0UHJvcHMKLStTY2F0dGVyTGluZUNoYXJ0LnByb3BU eXBlcyA9IHsKLSsgICAgY2hhcnREYXRhOiBQcm9wVHlwZXMub2JqZWN0LAotKyAgICB0aXRsZTog UHJvcFR5cGVzLnN0cmluZywKLSsgICAgeUF4aXNMYWJlbDogUHJvcFR5cGVzLnN0cmluZywKLSsg ICAgeEF4aXNMYWJlbDogUHJvcFR5cGVzLnN0cmluZywKLSsgICAgbWluWTogUHJvcFR5cGVzLm51 bWJlciwKLSsgICAgbWF4WTogUHJvcFR5cGVzLm51bWJlciwKLSsgICAgZGVmYXVsdFNob3dMZWdl bmQ6IFByb3BUeXBlcy5ib29sLAotKyAgICBvblBvaW50Q2xpY2s6IFByb3BUeXBlcy5mdW5jCi0r fTsKLSsKLStTY2F0dGVyTGluZUNoYXJ0LmRlZmF1bHRQcm9wcyA9IHsKLSsgICAgY2hhcnREYXRh OiBudWxsLAotKyAgICB0aXRsZTogIiIsCi0rICAgIHlBeGlzTGFiZWw6ICJWYWx1ZSIsCi0rICAg IHhBeGlzTGFiZWw6ICIiLAotKyAgICBtaW5ZOiBudWxsLAotKyAgICBtYXhZOiBudWxsLAotKyAg ICBkZWZhdWx0U2hvd0xlZ2VuZDogdHJ1ZSwKLSsgICAgb25Qb2ludENsaWNrOiBudWxsCi0rfTsK LSsKLSBBZ210RGV0YWlsc01vZGFsLnByb3BUeXBlcyA9IHsKLSAgICAgc2hvd01vZGFsOiBQcm9w VHlwZXMuYm9vbCwKLSAgICAgY2xvc2VIYW5kbGVyOiBQcm9wVHlwZXMuZnVuYywKLUBAIC0zMDQ0 LDYgKzM0ODUsNyBAQCBleHBvcnQgewotICAgICBSZXBvcnRMb2dpbk1vZGFsLAotICAgICBGdWxs UmVwb3J0Q29udGVudCwKLSAgICAgTGFnUmVwb3J0TW9kYWwsCi0tICAgIENob29zZUxhZ1JlcG9y dE1vZGFsCi0rICAgIENob29zZUxhZ1JlcG9ydE1vZGFsLAotKyAgICBDU05EZXRhaWxNb2RhbAot IH07Ci0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYjM4OS9saWIzODkvcmVwbHRvb2xzLnB5IGIvc3Jj L2xpYjM4OS9saWIzODkvcmVwbHRvb2xzLnB5Ci1pbmRleCA5ZDFhYTQwNTguLjVhYjhiMzE4NyAx MDA2NDQKLS0tLSBhL3NyYy9saWIzODkvbGliMzg5L3JlcGx0b29scy5weQotKysrIGIvc3JjL2xp YjM4OS9saWIzODkvcmVwbHRvb2xzLnB5Ci1AQCAtNjgzLDYgKzY4Myw3IEBAIGNsYXNzIENoYXJ0 RGF0YShOYW1lZFR1cGxlKToKLSAgICAgbGFnczogTGlzdFtmbG9hdF0KLSAgICAgZHVyYXRpb25z OiBMaXN0W2Zsb2F0XQotICAgICBob3ZlcjogTGlzdFtzdHJdCi0rICAgIGNzbl9pZHM6IExpc3Rb c3RyXQotIAotIGNsYXNzIFZpc3VhbGl6YXRpb25IZWxwZXI6Ci0gICAgICIiIkhlbHBlciBjbGFz cyBmb3IgdmlzdWFsaXphdGlvbi1yZWxhdGVkIGZ1bmN0aW9uYWxpdHkuIiIiCi1AQCAtNzMwLDcg KzczMSw3IEBAIGNsYXNzIFZpc3VhbGl6YXRpb25IZWxwZXI6Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICB0ejogdHppbmZvID0gdGltZXpvbmUudXRjKSAtPiBEaWN0W1R1cGxlW3N0ciwgc3Ry XSwgQ2hhcnREYXRhXToKLSAgICAgICAgICIiIlByZXBhcmUgZGF0YSBmb3IgdmlzdWFsaXphdGlv biB3aXRoIHRpbWV6b25lLWF3YXJlIHRpbWVzdGFtcHMuIiIiCi0gICAgICAgICBjaGFydF9kYXRh ID0gZGVmYXVsdGRpY3QobGFtYmRhOiB7Ci0tICAgICAgICAgICAgJ3RpbWVzJzogW10sICdsYWdz JzogW10sICdkdXJhdGlvbnMnOiBbXSwgJ2hvdmVyJzogW10KLSsgICAgICAgICAgICAndGltZXMn OiBbXSwgJ2xhZ3MnOiBbXSwgJ2R1cmF0aW9ucyc6IFtdLCAnaG92ZXInOiBbXSwgJ2Nzbl9pZHMn OiBbXQotICAgICAgICAgfSkKLSAKLSAgICAgICAgIGZvciBjc24sIHNlcnZlcl9tYXAgaW4gY3Nu cy5pdGVtcygpOgotQEAgLTc2Niw2ICs3NjcsNyBAQCBjbGFzcyBWaXN1YWxpemF0aW9uSGVscGVy OgotICAgICAgICAgICAgICAgICBkYXRhX3Nsb3RbJ3RpbWVzJ10uYXBwZW5kKHRzX2R0KQotICAg ICAgICAgICAgICAgICBkYXRhX3Nsb3RbJ2xhZ3MnXS5hcHBlbmQobGFnX3ZhbCkgICMgVGhlIHNh bWUgZ2xvYmFsLWxhZyBmb3IgYWxsIHNlcnZlcnMKLSAgICAgICAgICAgICAgICAgZGF0YV9zbG90 WydkdXJhdGlvbnMnXS5hcHBlbmQoZHVyYXRpb25fdmFsKQotKyAgICAgICAgICAgICAgICBkYXRh X3Nsb3RbJ2Nzbl9pZHMnXS5hcHBlbmQoY3NuKQotICAgICAgICAgICAgICAgICAjIEZvcm1hdCB0 aW1lc3RhbXAgZm9yIGhvdmVyIGRpc3BsYXkgaW4gdGhlIHNwZWNpZmllZCB0aW1lem9uZQotICAg ICAgICAgICAgICAgICB0aW1lc3RhbXBfc3RyID0gdHNfZHQuc3RyZnRpbWUoJyVZLSVtLSVkICVI OiVNOiVTJykKLSAgICAgICAgICAgICAgICAgZGF0YV9zbG90Wydob3ZlciddLmFwcGVuZCgKLUBA IC03ODQsNyArNzg2LDggQEAgY2xhc3MgVmlzdWFsaXphdGlvbkhlbHBlcjoKLSAgICAgICAgICAg ICAgICAgdGltZXM9dmFsdWVbJ3RpbWVzJ10sCi0gICAgICAgICAgICAgICAgIGxhZ3M9dmFsdWVb J2xhZ3MnXSwKLSAgICAgICAgICAgICAgICAgZHVyYXRpb25zPXZhbHVlWydkdXJhdGlvbnMnXSwK LS0gICAgICAgICAgICAgICAgaG92ZXI9dmFsdWVbJ2hvdmVyJ10KLSsgICAgICAgICAgICAgICAg aG92ZXI9dmFsdWVbJ2hvdmVyJ10sCi0rICAgICAgICAgICAgICAgIGNzbl9pZHM9dmFsdWVbJ2Nz bl9pZHMnXQotICAgICAgICAgICAgICkKLSAgICAgICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBj aGFydF9kYXRhLml0ZW1zKCkKLSAgICAgICAgIH0KLUBAIC04MDMsNiArODA2LDE0IEBAIGNsYXNz IFJlcGxpY2F0aW9uTG9nQW5hbHl6ZXI6Ci0gICAgIEFVVE9fU0FNUExJTkdfVEhSRVNIT0xEID0g NDAwMCAgIyBUcmlnZ2VyIGF1dG8gc2FtcGxpbmcgYWJvdmUgdGhpcyBtYW55IENTTiBwb2ludHMK LSAgICAgSE9QX1NFUklFU19CVURHRVRfUkFUSU8gPSAwLjI1ICAjIEFsbG9jYXRlIG1heCAyNSUg b2YgY2hhcnQgcG9pbnRzIHRvIGhvcCBsYWcgc2VyaWVzCi0gICAgIE1JTl9QT0lOVFNfUEVSX1NF UklFUyA9IDIgICAgICAgIyBNaW5pbXVtIHBvaW50cyB0byBwcmVzZXJ2ZSBzZXJpZXMgc2hhcGUg YWZ0ZXIgc2FtcGxpbmcKLSsgICAgTUFYX0NTTl9ERVRBSUxTID0gMTAwMDAgICAgICAgICAjIE1h eGltdW0gQ1NOIGRldGFpbHMgdG8gaW5jbHVkZSAocHJldmVudHMgbWVtb3J5IGlzc3VlcykKLSsK LSsgICAgIyBDU04gZm9ybWF0OiBUVFRUVFRUVFNTU1NSUlJSTk5OTiAoMjAgaGV4IGNoYXJzKQot KyAgICAjIFQ9dGltZXN0YW1wKDgpLCBTPXNlcXVlbmNlKDQpLCBSPXJlcGxpY2FJRCg0KSwgTj1z dWJzZXEoNCkKLSsgICAgQ1NOX1RJTUVTVEFNUF9TVEFSVCA9IDAKLSsgICAgQ1NOX1RJTUVTVEFN UF9FTkQgPSA4Ci0rICAgIENTTl9SRVBMSUNBX0lEX1NUQVJUID0gMTIKLSsgICAgQ1NOX1JFUExJ Q0FfSURfRU5EID0gMTYKLSAKLSAgICAgIyBQcmVjaXNpb24gcHJlc2V0IGNvbmZpZ3VyYXRpb25z Ci0gICAgIFBSRUNJU0lPTl9QUkVTRVRTID0gewotQEAgLTg2Nyw2ICs4NzgsNTQgQEAgY2xhc3Mg UmVwbGljYXRpb25Mb2dBbmFseXplcjoKLSAgICAgICAgICMgVGhyZXNob2xkIHRvIHRyaWdnZXIg YXV0byBzYW1wbGluZyBpZiBsb3RzIG9mIENTTnMKLSAgICAgICAgIHNlbGYuX2F1dG9fc2FtcGxp bmdfY3NuX3RocmVzaG9sZCA9IHNlbGYuQVVUT19TQU1QTElOR19USFJFU0hPTEQKLSAKLSsgICAg ICAgICMgTWFwcGluZyBvZiAocmVwbGljYSBJRCwgc3VmZml4KSB0byBzZXJ2ZXIgbmFtZQotKyAg ICAgICAgIyBCdWlsdCBkdXJpbmcgbG9nIHBhcnNpbmcgdG8gY29ycmVjdGx5IGlkZW50aWZ5IG9y aWdpbiBzZXJ2ZXJzCi0rICAgICAgICAjIEtleWVkIGJ5IChyZXBsaWNhX2lkLCBzdWZmaXgpIGJl Y2F1c2UgcmVwbGljYSBJRHMgYXJlIHBlci1zdWZmaXggaW4gbXVsdGktc3VmZml4IGRlcGxveW1l bnRzCi0rICAgICAgICBzZWxmLl9yZXBsaWNhX2lkX3RvX3NlcnZlcjogRGljdFtUdXBsZVtzdHIs IHN0cl0sIHN0cl0gPSB7fQotKwotKyAgICBAc3RhdGljbWV0aG9kCi0rICAgIGRlZiBfZXh0cmFj dF9yZXBsaWNhX2lkX2Zyb21fY3NuKGNzbjogc3RyKSAtPiBPcHRpb25hbFtzdHJdOgotKyAgICAg ICAgIiIiRXh0cmFjdCB0aGUgcmVwbGljYSBJRCBmcm9tIGEgQ1NOIHN0cmluZy4KLSsKLSsgICAg ICAgIENTTiBmb3JtYXQ6IFRUVFRUVFRUU1NTU1JSUlJOTk5OICgyMCBoZXggY2hhcmFjdGVycykK LSsgICAgICAgIC0gVCA9IHRpbWVzdGFtcCAoOCBjaGFycykKLSsgICAgICAgIC0gUyA9IHNlcXVl bmNlICg0IGNoYXJzKQotKyAgICAgICAgLSBSID0gcmVwbGljYSBJRCAoNCBjaGFycykKLSsgICAg ICAgIC0gTiA9IHN1YnNlcSAoNCBjaGFycykKLSsKLSsgICAgICAgIDpwYXJhbSBjc246IFRoZSBD U04gc3RyaW5nCi0rICAgICAgICA6cmV0dXJuczogVGhlIHJlcGxpY2EgSUQgYXMgYSBzdHJpbmcg KDQgaGV4IGNoYXJzKSwgb3IgTm9uZSBpZiBpbnZhbGlkCi0rICAgICAgICAiIiIKLSsgICAgICAg IGlmIG5vdCBjc24gb3Igbm90IGlzaW5zdGFuY2UoY3NuLCBzdHIpIG9yIGxlbihjc24pIDwgMTY6 Ci0rICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSsgICAgICAgIHRyeToKLSsgICAgICAgICAgICAj IEV4dHJhY3QgYW5kIHZhbGlkYXRlIHJlcGxpY2EgSUQgaXMgdmFsaWQgaGV4Ci0rICAgICAgICAg ICAgcmVwbGljYV9pZCA9IGNzbltSZXBsaWNhdGlvbkxvZ0FuYWx5emVyLkNTTl9SRVBMSUNBX0lE X1NUQVJUOgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXBsaWNhdGlvbkxvZ0FuYWx5 emVyLkNTTl9SRVBMSUNBX0lEX0VORF0KLSsgICAgICAgICAgICBpbnQocmVwbGljYV9pZCwgMTYp ICAjIFZhbGlkYXRlIGl0J3MgdmFsaWQgaGV4Ci0rICAgICAgICAgICAgcmV0dXJuIHJlcGxpY2Ff aWQKLSsgICAgICAgIGV4Y2VwdCAoVmFsdWVFcnJvciwgSW5kZXhFcnJvcik6Ci0rICAgICAgICAg ICAgcmV0dXJuIE5vbmUKLSsKLSsgICAgQHN0YXRpY21ldGhvZAotKyAgICBkZWYgX2V4dHJhY3Rf dGltZXN0YW1wX2Zyb21fY3NuKGNzbjogc3RyKSAtPiBPcHRpb25hbFtmbG9hdF06Ci0rICAgICAg ICAiIiJFeHRyYWN0IHRoZSB0aW1lc3RhbXAgKGVwb2NoIHNlY29uZHMpIGZyb20gYSBDU04gc3Ry aW5nLgotKwotKyAgICAgICAgQ1NOIGZvcm1hdDogVFRUVFRUVFRTU1NTUlJSUk5OTk4gKDIwIGhl eCBjaGFyYWN0ZXJzKQotKyAgICAgICAgLSBUID0gdGltZXN0YW1wICg4IGNoYXJzLCBoZXgsIHNl Y29uZHMgc2luY2UgZXBvY2gpCi0rCi0rICAgICAgICA6cGFyYW0gY3NuOiBUaGUgQ1NOIHN0cmlu ZwotKyAgICAgICAgOnJldHVybnM6IFRpbWVzdGFtcCBhcyBmbG9hdCAoZXBvY2ggc2Vjb25kcyks IG9yIE5vbmUgaWYgaW52YWxpZAotKyAgICAgICAgIiIiCi0rICAgICAgICBpZiBub3QgY3NuIG9y IG5vdCBpc2luc3RhbmNlKGNzbiwgc3RyKSBvciBsZW4oY3NuKSA8IDg6Ci0rICAgICAgICAgICAg cmV0dXJuIE5vbmUKLSsgICAgICAgIHRyeToKLSsgICAgICAgICAgICB0c19oZXggPSBjc25bUmVw bGljYXRpb25Mb2dBbmFseXplci5DU05fVElNRVNUQU1QX1NUQVJUOgotKyAgICAgICAgICAgICAg ICAgICAgICAgICBSZXBsaWNhdGlvbkxvZ0FuYWx5emVyLkNTTl9USU1FU1RBTVBfRU5EXQotKyAg ICAgICAgICAgIHJldHVybiBmbG9hdChpbnQodHNfaGV4LCAxNikpCi0rICAgICAgICBleGNlcHQg KFZhbHVlRXJyb3IsIEluZGV4RXJyb3IpOgotKyAgICAgICAgICAgIHJldHVybiBOb25lCi0rCi0g ICAgIGRlZiBfc2hvdWxkX2luY2x1ZGVfcmVjb3JkKHNlbGYsIGNzbjogc3RyLCBzZXJ2ZXJfbWFw OiBEaWN0W1VuaW9uW2ludCwgc3RyXSwgRGljdFtzdHIsIEFueV1dKSAtPiBib29sOgotICAgICAg ICAgIiIiRGV0ZXJtaW5lIGlmIGEgcmVjb3JkIHNob3VsZCBiZSBpbmNsdWRlZCBiYXNlZCBvbiBm aWx0ZXJpbmcgY3JpdGVyaWEuIiIiCi0gICAgICAgICB0b3RhbF9zZXJ2ZXJzID0gc2VsZi5fYWN0 aXZlX3NlcnZlcl9jb3VudCBvciBsZW4oc2VsZi5sb2dfZGlycykKLUBAIC05OTAsNiArMTA0OSwx NDggQEAgY2xhc3MgUmVwbGljYXRpb25Mb2dBbmFseXplcjoKLSAKLSAgICAgICAgIHJldHVybiBo b3BzCi0gCi0rICAgIGRlZiBfYnVpbGRfY3NuX2RldGFpbHMoc2VsZiwgY3NuX3doaXRlbGlzdDog T3B0aW9uYWxbc2V0XSA9IE5vbmUpIC0+IERpY3Rbc3RyLCBEaWN0W3N0ciwgQW55XV06Ci0rICAg ICAgICAiIiJCdWlsZCBkZXRhaWxlZCBDU04gcHJvcGFnYXRpb24gaW5mb3JtYXRpb24gZm9yIGRy aWxsLWRvd24gZnVuY3Rpb25hbGl0eS4KLSsKLSsgICAgICAgIFJldHVybnMgYSBkaWN0aW9uYXJ5 IGtleWVkIGJ5IENTTiBjb250YWluaW5nOgotKyAgICAgICAgLSBjc246IFRoZSBDU04gc3RyaW5n Ci0rICAgICAgICAtIHRhcmdldERuOiBUaGUgdGFyZ2V0IGVudHJ5IEROCi0rICAgICAgICAtIHN1 ZmZpeDogVGhlIHJlcGxpY2F0aW9uIHN1ZmZpeAotKyAgICAgICAgLSBnbG9iYWxMYWc6IFRvdGFs IHByb3BhZ2F0aW9uIHRpbWUgKGVhcmxpZXN0IHRvIGxhdGVzdCBhcnJpdmFsKQotKyAgICAgICAg LSBvcmlnaW5TZXJ2ZXI6IFRoZSBzZXJ2ZXIgd2hlcmUgdGhlIGNoYW5nZSBvcmlnaW5hdGVkIChk ZXRlcm1pbmVkIGJ5IENTTiByZXBsaWNhIElEKQotKyAgICAgICAgLSBvcmlnaW5UaW1lOiBJU08g dGltZXN0YW1wIG9mIG9yaWdpbgotKyAgICAgICAgLSBhcnJpdmFsczogT3JkZXJlZCBsaXN0IG9m IHNlcnZlciBhcnJpdmFscyB3aXRoIHRpbWluZyBkZXRhaWxzCi0rICAgICAgICAtIGhvcHM6IExp c3Qgb2Ygc2VydmVyLXRvLXNlcnZlciBob3BzIHdpdGggbGFnIHRpbWVzCi0rICAgICAgICAtIHRv dGFsSG9wczogTnVtYmVyIG9mIGhvcHMgaW4gdGhlIHByb3BhZ2F0aW9uIHBhdGgKLSsgICAgICAg IC0gcmVwbGljYXRlZFRvQWxsOiBXaGV0aGVyIHRoZSBjaGFuZ2UgcmVhY2hlZCBhbGwgc2VydmVy cwotKwotKyAgICAgICAgTm90ZTogT3JpZ2luIHNlcnZlciBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBy ZXBsaWNhIElEIGVtYmVkZGVkIGluIHRoZSBDU04sCi0rICAgICAgICBub3QgYnkgZWFybGllc3Qg bG9nIHRpbWVzdGFtcCAod2hpY2ggY2FuIGJlIGluY29ycmVjdCB1bmRlciBjbG9jayBza2V3KS4K LSsKLSsgICAgICAgIDpwYXJhbSBjc25fd2hpdGVsaXN0OiBPcHRpb25hbCBzZXQgb2YgQ1NOIElE cyB0byBpbmNsdWRlLiBJZiBwcm92aWRlZCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBvbmx5IHRoZXNlIENTTnMgd2lsbCBoYXZlIGRldGFpbHMgZ2VuZXJhdGVkLgotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFRoaXMgcHJldmVudHMgbWVtb3J5IGJsb2F0IHdoZW4gY2hh cnQgZGF0YSBpcyBzYW1wbGVkLgotKyAgICAgICAgIiIiCi0rICAgICAgICBjc25fZGV0YWlscyA9 IHt9Ci0rICAgICAgICB0b3RhbF9zZXJ2ZXJzID0gc2VsZi5fYWN0aXZlX3NlcnZlcl9jb3VudCBv ciBsZW4oc2VsZi5sb2dfZGlycykKLSsKLSsgICAgICAgIGlmIGNzbl93aGl0ZWxpc3QgaXMgbm90 IE5vbmU6Ci0rICAgICAgICAgICAgY3NuX2l0ZW1zID0gWyhjc24sIHNtKSBmb3IgY3NuLCBzbSBp biBzZWxmLmNzbnMuaXRlbXMoKSBpZiBjc24gaW4gY3NuX3doaXRlbGlzdF0KLSsgICAgICAgIGVs c2U6Ci0rICAgICAgICAgICAgY3NuX2l0ZW1zID0gbGlzdChzZWxmLmNzbnMuaXRlbXMoKSkKLSsK LSsgICAgICAgIGlmIGxlbihjc25faXRlbXMpID4gc2VsZi5NQVhfQ1NOX0RFVEFJTFM6Ci0rICAg ICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oCi0rICAgICAgICAgICAgICAgIGYiQ1NOIGRldGFp bHMgbGltaXRlZCB0byB7c2VsZi5NQVhfQ1NOX0RFVEFJTFN9IGVudHJpZXMgIgotKyAgICAgICAg ICAgICAgICBmIihkYXRhc2V0IGhhcyB7bGVuKGNzbl9pdGVtcyl9IENTTnMpLiAiCi0rICAgICAg ICAgICAgICAgICJTZWxlY3RpbmcgQ1NOcyB3aXRoIGhpZ2hlc3QgZ2xvYmFsIGxhZyBmb3IgZHJp bGwtZG93bi4iCi0rICAgICAgICAgICAgKQotKyAgICAgICAgICAgIGNzbl9sYWdzID0gW10KLSsg ICAgICAgICAgICBmb3IgY3NuLCBzZXJ2ZXJfbWFwIGluIGNzbl9pdGVtczoKLSsgICAgICAgICAg ICAgICAgdF9saXN0ID0gWwotKyAgICAgICAgICAgICAgICAgICAgcmVjLmdldCgnbG9ndGltZScs IDApCi0rICAgICAgICAgICAgICAgICAgICBmb3Iga2V5LCByZWMgaW4gc2VydmVyX21hcC5pdGVt cygpCi0rICAgICAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHJlYywgZGljdCkgYW5kIGtl eSAhPSAnX19ob3BfbGFnc19fJyBhbmQgJ2xvZ3RpbWUnIGluIHJlYwotKyAgICAgICAgICAgICAg ICBdCi0rICAgICAgICAgICAgICAgIGlmIHRfbGlzdDoKLSsgICAgICAgICAgICAgICAgICAgIGxh ZyA9IG1heCh0X2xpc3QpIC0gbWluKHRfbGlzdCkKLSsgICAgICAgICAgICAgICAgICAgIGNzbl9s YWdzLmFwcGVuZCgoY3NuLCBzZXJ2ZXJfbWFwLCBsYWcpKQotKyAgICAgICAgICAgIGNzbl9sYWdz LnNvcnQoa2V5PWxhbWJkYSB4OiB4WzJdLCByZXZlcnNlPVRydWUpCi0rICAgICAgICAgICAgY3Nu X2l0ZW1zID0gWyhjc24sIHNtKSBmb3IgY3NuLCBzbSwgXyBpbiBjc25fbGFnc1s6c2VsZi5NQVhf Q1NOX0RFVEFJTFNdXQotKwotKyAgICAgICAgZm9yIGNzbiwgc2VydmVyX21hcCBpbiBjc25faXRl bXM6Ci0rICAgICAgICAgICAgdmFsaWRfcmVjb3JkcyA9IFtdCi0rICAgICAgICAgICAgZm9yIGtl eSwgZGF0YSBpbiBzZXJ2ZXJfbWFwLml0ZW1zKCk6Ci0rICAgICAgICAgICAgICAgIGlmIGlzaW5z dGFuY2UoZGF0YSwgZGljdCkgYW5kIGtleSAhPSAnX19ob3BfbGFnc19fJyBhbmQgJ2xvZ3RpbWUn IGluIGRhdGE6Ci0rICAgICAgICAgICAgICAgICAgICB2YWxpZF9yZWNvcmRzLmFwcGVuZChkYXRh KQotKwotKyAgICAgICAgICAgIGlmIG5vdCB2YWxpZF9yZWNvcmRzOgotKyAgICAgICAgICAgICAg ICBjb250aW51ZQotKwotKyAgICAgICAgICAgIHZhbGlkX3JlY29yZHMuc29ydChrZXk9bGFtYmRh IHg6IHhbJ2xvZ3RpbWUnXSkKLSsKLSsgICAgICAgICAgICBzdWZmaXggPSBOb25lCi0rICAgICAg ICAgICAgZm9yIHJlYyBpbiB2YWxpZF9yZWNvcmRzOgotKyAgICAgICAgICAgICAgICBpZiByZWMu Z2V0KCdzdWZmaXgnKToKLSsgICAgICAgICAgICAgICAgICAgIHN1ZmZpeCA9IHJlY1snc3VmZml4 J10KLSsgICAgICAgICAgICAgICAgICAgIGJyZWFrCi0rCi0rICAgICAgICAgICAgcmVwbGljYV9p ZCA9IHNlbGYuX2V4dHJhY3RfcmVwbGljYV9pZF9mcm9tX2Nzbihjc24pCi0rICAgICAgICAgICAg b3JpZ2luX3NlcnZlcl9uYW1lID0gTm9uZQotKyAgICAgICAgICAgIG9yaWdpbl9yZWNvcmQgPSBO b25lCi0rCi0rICAgICAgICAgICAgb3JpZ2luX2luX2Fycml2YWxzID0gRmFsc2UKLSsgICAgICAg ICAgICBpZiByZXBsaWNhX2lkIGFuZCBzdWZmaXg6Ci0rICAgICAgICAgICAgICAgIG1hcF9rZXkg PSAocmVwbGljYV9pZCwgc3VmZml4KQotKyAgICAgICAgICAgICAgICBpZiBtYXBfa2V5IGluIHNl bGYuX3JlcGxpY2FfaWRfdG9fc2VydmVyOgotKyAgICAgICAgICAgICAgICAgICAgb3JpZ2luX3Nl cnZlcl9uYW1lID0gc2VsZi5fcmVwbGljYV9pZF90b19zZXJ2ZXJbbWFwX2tleV0KLSsgICAgICAg ICAgICAgICAgICAgIGZvciByZWMgaW4gdmFsaWRfcmVjb3JkczoKLSsgICAgICAgICAgICAgICAg ICAgICAgICBpZiByZWMuZ2V0KCdzZXJ2ZXJfbmFtZScpID09IG9yaWdpbl9zZXJ2ZXJfbmFtZToK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ2luX3JlY29yZCA9IHJlYwotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBvcmlnaW5faW5fYXJyaXZhbHMgPSBUcnVlCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCi0rCi0rICAgICAgICAgICAgaWYgb3JpZ2luX3Jl Y29yZCBpcyBOb25lOgotKyAgICAgICAgICAgICAgICBvcmlnaW5fcmVjb3JkID0gdmFsaWRfcmVj b3Jkc1swXQotKyAgICAgICAgICAgICAgICBpZiBub3Qgb3JpZ2luX3NlcnZlcl9uYW1lOgotKyAg ICAgICAgICAgICAgICAgICAgb3JpZ2luX3NlcnZlcl9uYW1lID0gb3JpZ2luX3JlY29yZC5nZXQo J3NlcnZlcl9uYW1lJywgJ3Vua25vd24nKQotKwotKyAgICAgICAgICAgIGNzbl90cyA9IHNlbGYu X2V4dHJhY3RfdGltZXN0YW1wX2Zyb21fY3NuKGNzbikKLSsgICAgICAgICAgICBvcmlnaW5fdGlt ZSA9IGNzbl90cyBpZiBjc25fdHMgaXMgbm90IE5vbmUgZWxzZSBvcmlnaW5fcmVjb3JkWydsb2d0 aW1lJ10KLSsgICAgICAgICAgICBlYXJsaWVzdF90aW1lID0gdmFsaWRfcmVjb3Jkc1swXVsnbG9n dGltZSddCi0rICAgICAgICAgICAgbGF0ZXN0X3RpbWUgPSB2YWxpZF9yZWNvcmRzWy0xXVsnbG9n dGltZSddCi0rICAgICAgICAgICAgZ2xvYmFsX2xhZyA9IGxhdGVzdF90aW1lIC0gZWFybGllc3Rf dGltZQotKwotKyAgICAgICAgICAgIGFycml2YWxzID0gW10KLSsgICAgICAgICAgICBmb3IgaWR4 LCByZWMgaW4gZW51bWVyYXRlKHZhbGlkX3JlY29yZHMpOgotKyAgICAgICAgICAgICAgICBzZXJ2 ZXJfbmFtZSA9IHJlYy5nZXQoJ3NlcnZlcl9uYW1lJywgJ3Vua25vd24nKQotKyAgICAgICAgICAg ICAgICBpc19vcmlnaW4gPSAoc2VydmVyX25hbWUgPT0gb3JpZ2luX3NlcnZlcl9uYW1lKQotKwot KyAgICAgICAgICAgICAgICBhcnJpdmFsX2VudHJ5ID0gewotKyAgICAgICAgICAgICAgICAgICAg J3NlcnZlcic6IHNlcnZlcl9uYW1lLAotKyAgICAgICAgICAgICAgICAgICAgJ3RpbWVzdGFtcCc6 IGRhdGV0aW1lLmZyb210aW1lc3RhbXAocmVjWydsb2d0aW1lJ10sIHR6PXNlbGYudHopLmlzb2Zv cm1hdCgpLAotKyAgICAgICAgICAgICAgICAgICAgJ3JlbGF0aXZlRGVsYXknOiByZWNbJ2xvZ3Rp bWUnXSAtIGVhcmxpZXN0X3RpbWUsCi0rICAgICAgICAgICAgICAgICAgICAnZHVyYXRpb24nOiBm bG9hdChyZWMuZ2V0KCdkdXJhdGlvbicsIDAuMCkpLAotKyAgICAgICAgICAgICAgICAgICAgJ2V0 aW1lJzogcmVjLmdldCgnZXRpbWUnKQotKyAgICAgICAgICAgICAgICB9Ci0rCi0rICAgICAgICAg ICAgICAgIGlmIGlzX29yaWdpbjoKLSsgICAgICAgICAgICAgICAgICAgIGFycml2YWxfZW50cnlb J2lzT3JpZ2luJ10gPSBUcnVlCi0rCi0rICAgICAgICAgICAgICAgIGlmIGlkeCA+IDA6Ci0rICAg ICAgICAgICAgICAgICAgICBwcmV2X3JlYyA9IHZhbGlkX3JlY29yZHNbaWR4IC0gMV0KLSsgICAg ICAgICAgICAgICAgICAgIGFycml2YWxfZW50cnlbJ2hvcEZyb20nXSA9IHByZXZfcmVjLmdldCgn c2VydmVyX25hbWUnLCAndW5rbm93bicpCi0rICAgICAgICAgICAgICAgICAgICBhcnJpdmFsX2Vu dHJ5Wydob3BMYWcnXSA9IHJlY1snbG9ndGltZSddIC0gcHJldl9yZWNbJ2xvZ3RpbWUnXQotKwot KyAgICAgICAgICAgICAgICBhcnJpdmFscy5hcHBlbmQoYXJyaXZhbF9lbnRyeSkKLSsKLSsgICAg ICAgICAgICBob3BzID0gW10KLSsgICAgICAgICAgICBmb3IgaSBpbiByYW5nZSgxLCBsZW4odmFs aWRfcmVjb3JkcykpOgotKyAgICAgICAgICAgICAgICBwcmV2X3JlYyA9IHZhbGlkX3JlY29yZHNb aSAtIDFdCi0rICAgICAgICAgICAgICAgIGN1cnJfcmVjID0gdmFsaWRfcmVjb3Jkc1tpXQotKyAg ICAgICAgICAgICAgICBob3BzLmFwcGVuZCh7Ci0rICAgICAgICAgICAgICAgICAgICAnZnJvbSc6 IHByZXZfcmVjLmdldCgnc2VydmVyX25hbWUnLCAndW5rbm93bicpLAotKyAgICAgICAgICAgICAg ICAgICAgJ3RvJzogY3Vycl9yZWMuZ2V0KCdzZXJ2ZXJfbmFtZScsICd1bmtub3duJyksCi0rICAg ICAgICAgICAgICAgICAgICAnbGFnJzogY3Vycl9yZWNbJ2xvZ3RpbWUnXSAtIHByZXZfcmVjWyds b2d0aW1lJ10KLSsgICAgICAgICAgICAgICAgfSkKLSsKLSsgICAgICAgICAgICBjc25fZGV0YWls c1tjc25dID0gewotKyAgICAgICAgICAgICAgICAnY3NuJzogY3NuLAotKyAgICAgICAgICAgICAg ICAndGFyZ2V0RG4nOiBvcmlnaW5fcmVjb3JkLmdldCgndGFyZ2V0X2RuJywgJ3Vua25vd24nKSBv ciAndW5rbm93bicsCi0rICAgICAgICAgICAgICAgICdzdWZmaXgnOiBvcmlnaW5fcmVjb3JkLmdl dCgnc3VmZml4JywgJ3Vua25vd24nKSBvciAndW5rbm93bicsCi0rICAgICAgICAgICAgICAgICdn bG9iYWxMYWcnOiBnbG9iYWxfbGFnLAotKyAgICAgICAgICAgICAgICAnb3JpZ2luU2VydmVyJzog b3JpZ2luX3NlcnZlcl9uYW1lLAotKyAgICAgICAgICAgICAgICAnb3JpZ2luSW5jbHVkZWRJbkFy cml2YWxzJzogb3JpZ2luX2luX2Fycml2YWxzLAotKyAgICAgICAgICAgICAgICAnb3JpZ2luVGlt ZSc6IGRhdGV0aW1lLmZyb210aW1lc3RhbXAob3JpZ2luX3RpbWUsIHR6PXNlbGYudHopLmlzb2Zv cm1hdCgpLAotKyAgICAgICAgICAgICAgICAnYXJyaXZhbHMnOiBhcnJpdmFscywKLSsgICAgICAg ICAgICAgICAgJ2hvcHMnOiBob3BzLAotKyAgICAgICAgICAgICAgICAndG90YWxIb3BzJzogbGVu KGhvcHMpLAotKyAgICAgICAgICAgICAgICAnc2VydmVyQ291bnQnOiBsZW4odmFsaWRfcmVjb3Jk cyksCi0rICAgICAgICAgICAgICAgICdyZXBsaWNhdGVkVG9BbGwnOiBsZW4odmFsaWRfcmVjb3Jk cykgPT0gdG90YWxfc2VydmVycwotKyAgICAgICAgICAgIH0KLSsKLSsgICAgICAgIHJldHVybiBj c25fZGV0YWlscwotKwotICAgICBkZWYgcGFyc2VfbG9ncyhzZWxmKSAtPiBOb25lOgotICAgICAg ICAgIiIiUGFyc2UgbG9ncyBmcm9tIGFsbCBkaXJlY3Rvcmllcy4gRWFjaCBkaXJlY3RvcnkgaXMg dHJlYXRlZCBhcyBvbmUgc2VydmVyCi0gICAgICAgICB1bmxlc3MgYW5vbnltaXplZCwgaW4gd2hp Y2ggY2FzZSB3ZSB1c2UgJ3NlcnZlcl97aW5kZXh9Jy4KLUBAIC0xMDQ0LDYgKzEyNDUsNDEgQEAg Y2xhc3MgUmVwbGljYXRpb25Mb2dBbmFseXplcjoKLSAgICAgICAgICAgICAgICAgICAgICAgICAn ZHVyYXRpb24nOiByZWNvcmQuZ2V0KCdkdXJhdGlvbicsIDAuMCksCi0gICAgICAgICAgICAgICAg ICAgICB9Ci0gCi0rICAgICAgICAjIEJ1aWxkIChyZXBsaWNhIElELCBzdWZmaXgpIHRvIHNlcnZl ciBtYXBwaW5nIGJhc2VkIG9uIGNsb3Nlc3QgQ1NOIHRpbWVzdGFtcAotKyAgICAgICAgIyBLZXll ZCBieSAocmVwbGljYV9pZCwgc3VmZml4KSBiZWNhdXNlIHJlcGxpY2EgSURzIGFyZSBwZXItc3Vm Zml4IGluIG11bHRpLXN1ZmZpeCBkZXBsb3ltZW50cwotKyAgICAgICAgIyBGb3IgZWFjaCAocmVw bGljYSBJRCwgc3VmZml4KSBwYWlyLCB0aGUgc2VydmVyIHdob3NlIGxvZ3RpbWUgaXMgY2xvc2Vz dCB0byB0aGUgQ1NOCi0rICAgICAgICAjIHRpbWVzdGFtcCBpcyB0aGUgYmVzdCBvcmlnaW4gY2Fu ZGlkYXRlIHVuZGVyIGNsb2NrIHNrZXcuCi0rICAgICAgICByZXBsaWNhX2lkX2Jlc3Q6IERpY3Rb VHVwbGVbc3RyLCBzdHJdLCBUdXBsZVtib29sLCBmbG9hdCwgZmxvYXQsIHN0cl1dID0ge30KLSsg ICAgICAgIGZvciBjc24sIHNlcnZlcl9tYXAgaW4gc2VsZi5jc25zLml0ZW1zKCk6Ci0rICAgICAg ICAgICAgcmVwbGljYV9pZCA9IHNlbGYuX2V4dHJhY3RfcmVwbGljYV9pZF9mcm9tX2Nzbihjc24p Ci0rICAgICAgICAgICAgaWYgbm90IHJlcGxpY2FfaWQ6Ci0rICAgICAgICAgICAgICAgIGNvbnRp bnVlCi0rICAgICAgICAgICAgY3NuX3RzID0gc2VsZi5fZXh0cmFjdF90aW1lc3RhbXBfZnJvbV9j c24oY3NuKQotKyAgICAgICAgICAgIGZvciBrZXksIHJlY29yZCBpbiBzZXJ2ZXJfbWFwLml0ZW1z KCk6Ci0rICAgICAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHJlY29yZCwgZGljdCkgb3Ig a2V5ID09ICdfX2hvcF9sYWdzX18nOgotKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKLSsg ICAgICAgICAgICAgICAgbG9ndGltZSA9IHJlY29yZC5nZXQoJ2xvZ3RpbWUnKQotKyAgICAgICAg ICAgICAgICBzZXJ2ZXJfbmFtZSA9IHJlY29yZC5nZXQoJ3NlcnZlcl9uYW1lJykKLSsgICAgICAg ICAgICAgICAgc3VmZml4ID0gcmVjb3JkLmdldCgnc3VmZml4JykKLSsgICAgICAgICAgICAgICAg aWYgbG9ndGltZSBpcyBOb25lIG9yIG5vdCBzZXJ2ZXJfbmFtZSBvciBub3Qgc3VmZml4OgotKyAg ICAgICAgICAgICAgICAgICAgY29udGludWUKLSsgICAgICAgICAgICAgICAgIyBQcmVmZXIgY2Fu ZGlkYXRlcyB3aGVyZSB3ZSBjYW4gY29tcGFyZSBhZ2FpbnN0IENTTiB0aW1lc3RhbXAKLSsgICAg ICAgICAgICAgICAgaGFzX2Nzbl90cyA9IGNzbl90cyBpcyBub3QgTm9uZQotKyAgICAgICAgICAg ICAgICBzY29yZSA9IGFicyhsb2d0aW1lIC0gY3NuX3RzKSBpZiBoYXNfY3NuX3RzIGVsc2UgbG9n dGltZQotKyAgICAgICAgICAgICAgICBtYXBfa2V5ID0gKHJlcGxpY2FfaWQsIHN1ZmZpeCkKLSsg ICAgICAgICAgICAgICAgaWYgbWFwX2tleSBub3QgaW4gcmVwbGljYV9pZF9iZXN0OgotKyAgICAg ICAgICAgICAgICAgICAgcmVwbGljYV9pZF9iZXN0W21hcF9rZXldID0gKGhhc19jc25fdHMsIHNj b3JlLCBsb2d0aW1lLCBzZXJ2ZXJfbmFtZSkKLSsgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl Ci0rICAgICAgICAgICAgICAgIHByZXZfaGFzX3RzLCBwcmV2X3Njb3JlLCBwcmV2X2xvZ3RpbWUs IF8gPSByZXBsaWNhX2lkX2Jlc3RbbWFwX2tleV0KLSsgICAgICAgICAgICAgICAgaWYgaGFzX2Nz bl90cyBhbmQgbm90IHByZXZfaGFzX3RzOgotKyAgICAgICAgICAgICAgICAgICAgcmVwbGljYV9p ZF9iZXN0W21hcF9rZXldID0gKGhhc19jc25fdHMsIHNjb3JlLCBsb2d0aW1lLCBzZXJ2ZXJfbmFt ZSkKLSsgICAgICAgICAgICAgICAgZWxpZiBoYXNfY3NuX3RzID09IHByZXZfaGFzX3RzOgotKyAg ICAgICAgICAgICAgICAgICAgaWYgc2NvcmUgPCBwcmV2X3Njb3JlIG9yIChzY29yZSA9PSBwcmV2 X3Njb3JlIGFuZCBsb2d0aW1lIDwgcHJldl9sb2d0aW1lKToKLSsgICAgICAgICAgICAgICAgICAg ICAgICByZXBsaWNhX2lkX2Jlc3RbbWFwX2tleV0gPSAoaGFzX2Nzbl90cywgc2NvcmUsIGxvZ3Rp bWUsIHNlcnZlcl9uYW1lKQotKwotKyAgICAgICAgIyBTdG9yZSB0aGUgbWFwcGluZyAoKHJlcGxp Y2EgSUQsIHN1ZmZpeCkgLT4gc2VydmVyIG5hbWUpCi0rICAgICAgICBzZWxmLl9yZXBsaWNhX2lk X3RvX3NlcnZlciA9IHtrOiBzcnYgZm9yIGssIChfLCBfLCBfLCBzcnYpIGluIHJlcGxpY2FfaWRf YmVzdC5pdGVtcygpfQotKwotICAgICAgICAgIyBBcHBseSBmaWx0ZXJzIGFmdGVyIGNvbGxlY3Rp bmcgYWxsIGRhdGEKLSAgICAgICAgIGZpbHRlcmVkX2NzbnMgPSB7fQotICAgICAgICAgZWFybGll c3RfdWR0OiBPcHRpb25hbFtmbG9hdF0gPSBOb25lCi1AQCAtMTU3Nyw2ICsxODEzLDE3IEBAIGNs YXNzIFJlcGxpY2F0aW9uTG9nQW5hbHl6ZXI6Ci0gICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFz IGU6Ci0gICAgICAgICAgICAgcmFpc2UgSU9FcnJvcihmIkZhaWxlZCB0byB3cml0ZSBKU09OIHN1 bW1hcnkgdG8ge291dGZpbGV9OiB7ZX0iKQotIAotKyAgICBAc3RhdGljbWV0aG9kCi0rICAgIGRl ZiBfY29sbGVjdF9jc25faWRzKHNlcmllc19saXN0OiBMaXN0W0RpY3Rbc3RyLCBBbnldXSkgLT4g c2V0OgotKyAgICAgICAgIiIiQ29sbGVjdCBDU04gSURzIGZyb20gY2hhcnQgc2VyaWVzIGRhdGFw b2ludHMuIiIiCi0rICAgICAgICBjc25faWRzID0gc2V0KCkKLSsgICAgICAgIGZvciBzZXJpZXMg aW4gc2VyaWVzX2xpc3Q6Ci0rICAgICAgICAgICAgZm9yIGRwIGluIHNlcmllcy5nZXQoImRhdGFw b2ludHMiLCBbXSk6Ci0rICAgICAgICAgICAgICAgIGNzbl9pZCA9IGRwLmdldCgiY3NuSWQiKQot KyAgICAgICAgICAgICAgICBpZiBjc25faWQ6Ci0rICAgICAgICAgICAgICAgICAgICBjc25faWRz LmFkZChjc25faWQpCi0rICAgICAgICByZXR1cm4gY3NuX2lkcwotKwotICAgICBkZWYgX2dlbmVy YXRlX3BhdHRlcm5mbHlfanNvbihzZWxmLCByZXN1bHRzOiBEaWN0W3N0ciwgQW55XSwgb3V0Zmls ZTogc3RyKSAtPiBOb25lOgotICAgICAgICAgIiIiR2VuZXJhdGUgSlNPTiBzcGVjaWZpY2FsbHkg Zm9ybWF0dGVkIGZvciBQYXR0ZXJuRmx5IDUgY2hhcnRzLiIiIgotICAgICAgICAgY2hhcnRfZGF0 YSA9IFZpc3VhbGl6YXRpb25IZWxwZXIucHJlcGFyZV9jaGFydF9kYXRhKHNlbGYuY3Nucywgc2Vs Zi50eikKLUBAIC0xNjM3LDcgKzE4ODQsOCBAQCBjbGFzcyBSZXBsaWNhdGlvbkxvZ0FuYWx5emVy OgotICAgICAgICAgICAgICAgICAieCI6IGRhdGEudGltZXNbaV0uaXNvZm9ybWF0KCksCi0gICAg ICAgICAgICAgICAgICJ5IjogZGF0YS5sYWdzW2ldLAotICAgICAgICAgICAgICAgICAiZHVyYXRp b24iOiBkYXRhLmR1cmF0aW9uc1tpXSwKLS0gICAgICAgICAgICAgICAgImhvdmVySW5mbyI6IGRh dGEuaG92ZXJbaV0KLSsgICAgICAgICAgICAgICAgImhvdmVySW5mbyI6IGRhdGEuaG92ZXJbaV0s Ci0rICAgICAgICAgICAgICAgICJjc25JZCI6IGRhdGEuY3NuX2lkc1tpXQotICAgICAgICAgICAg IH0gZm9yIGkgaW4gaW5kaWNlc10KLSAgICAgICAgICAgICBzZXJpZXNfZGF0YS5hcHBlbmQoewot ICAgICAgICAgICAgICAgICAiZGF0YXBvaW50cyI6IGRhdGFwb2ludHMsCi1AQCAtMTY0NSw3ICsx ODkzLDcgQEAgY2xhc3MgUmVwbGljYXRpb25Mb2dBbmFseXplcjoKLSAgICAgICAgICAgICAgICAg ImNvbG9yIjogY29sb3JfcGFsZXR0ZVtpZHggJSBsZW4oY29sb3JfcGFsZXR0ZSldCi0gICAgICAg ICAgICAgfSkKLSAKLS0gICAgICAgIGhvcF9kYXRhOiBEaWN0W3N0ciwgRGljdFtzdHIsIExpc3Rb QW55XV1dID0gZGVmYXVsdGRpY3QobGFtYmRhOiB7InRpbWVzIjogW10sICJsYWdzIjogW10sICJo b3ZlciI6IFtdfSkKLSsgICAgICAgIGhvcF9kYXRhOiBEaWN0W3N0ciwgRGljdFtzdHIsIExpc3Rb QW55XV1dID0gZGVmYXVsdGRpY3QobGFtYmRhOiB7InRpbWVzIjogW10sICJsYWdzIjogW10sICJo b3ZlciI6IFtdLCAiY3NuX2lkcyI6IFtdfSkKLSAgICAgICAgIGZvciBjc24sIHNlcnZlcl9tYXAg aW4gc2VsZi5jc25zLml0ZW1zKCk6Ci0gICAgICAgICAgICAgZm9yIGhvcCBpbiBzZXJ2ZXJfbWFw LmdldCgnX19ob3BfbGFnc19fJywgW10pOgotICAgICAgICAgICAgICAgICBzb3VyY2UgPSBob3Au Z2V0KCdzdXBwbGllcicsICd1bmtub3duJykKLUBAIC0xNjU1LDYgKzE5MDMsNyBAQCBjbGFzcyBS ZXBsaWNhdGlvbkxvZ0FuYWx5emVyOgotICAgICAgICAgICAgICAgICB0cyA9IGRhdGV0aW1lLmZy b210aW1lc3RhbXAoaG9wLmdldCgnYXJyaXZhbF9jb25zdW1lcicsIDAuMCksIHR6PXNlbGYudHop Ci0gICAgICAgICAgICAgICAgIGVudHJ5WyJ0aW1lcyJdLmFwcGVuZCh0cykKLSAgICAgICAgICAg ICAgICAgZW50cnlbImxhZ3MiXS5hcHBlbmQoaG9wLmdldCgnaG9wX2xhZycsIDAuMCkpCi0rICAg ICAgICAgICAgICAgIGVudHJ5WyJjc25faWRzIl0uYXBwZW5kKGNzbikKLSAgICAgICAgICAgICAg ICAgdHNfc3RyID0gdHMuc3RyZnRpbWUoJyVZLSVtLSVkICVIOiVNOiVTJykKLSAgICAgICAgICAg ICAgICAgZW50cnlbImhvdmVyIl0uYXBwZW5kKAotICAgICAgICAgICAgICAgICAgICAgZiJUaW1l c3RhbXA6IHt0c19zdHJ9PGJyPiIKLUBAIC0xNjg5LDcgKzE5MzgsMTAgQEAgY2xhc3MgUmVwbGlj YXRpb25Mb2dBbmFseXplcjoKLSAgICAgICAgICAgICAgICAgIm5hbWUiOiBrZXksCi0gICAgICAg ICAgICAgICAgICJ4IjogZW50cnlbInRpbWVzIl1baV0uaXNvZm9ybWF0KCksCi0gICAgICAgICAg ICAgICAgICJ5IjogZW50cnlbImxhZ3MiXVtpXSwKLS0gICAgICAgICAgICAgICAgImhvdmVySW5m byI6IGVudHJ5WyJob3ZlciJdW2ldLnJlcGxhY2UoIlN1ZmZpeDogTm9uZSIsICJTdWZmaXg6IHVu a25vd24iKS5yZXBsYWNlKCJFbnRyeTogTm9uZSIsICJFbnRyeTogdW5rbm93biIpCi0rICAgICAg ICAgICAgICAgICJob3ZlckluZm8iOiAoZW50cnlbImhvdmVyIl1baV0KLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAucmVwbGFjZSgiU3VmZml4OiBOb25lIiwgIlN1ZmZpeDogdW5rbm93 biIpCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoIkVudHJ5OiBOb25l IiwgIkVudHJ5OiB1bmtub3duIikpLAotKyAgICAgICAgICAgICAgICAiY3NuSWQiOiBlbnRyeVsi Y3NuX2lkcyJdW2ldCi0gICAgICAgICAgICAgfSBmb3IgaSBpbiBpbmRpY2VzXQotICAgICAgICAg ICAgIGhvcF9zZXJpZXMuYXBwZW5kKHsKLSAgICAgICAgICAgICAgICAgImRhdGFwb2ludHMiOiBk YXRhcG9pbnRzLAotQEAgLTE3MDIsNiArMTk1NCwxMyBAQCBjbGFzcyBSZXBsaWNhdGlvbkxvZ0Fu YWx5emVyOgotICAgICAgICAgICAgIHJlZHVjZWQgKz0gc3VtKGxlbihpdGVtWyJkYXRhcG9pbnRz Il0pIGZvciBpdGVtIGluIGhvcF9zZXJpZXMpCi0gICAgICAgICAgICAgc2FtcGxpbmdfbWV0YVsi cmVkdWNlZFRvdGFsUG9pbnRzIl0gPSByZWR1Y2VkCi0gCi0rICAgICAgICBzYW1wbGVkX2Nzbl9p ZHMgPSBOb25lCi0rICAgICAgICBpZiBzYW1wbGluZ19tZXRhWyJhcHBsaWVkIl06Ci0rICAgICAg ICAgICAgc2FtcGxlZF9jc25faWRzID0gc2VsZi5fY29sbGVjdF9jc25faWRzKHNlcmllc19kYXRh KQotKyAgICAgICAgICAgIHNhbXBsZWRfY3NuX2lkcy51cGRhdGUoc2VsZi5fY29sbGVjdF9jc25f aWRzKGhvcF9zZXJpZXMpKQotKwotKyAgICAgICAgY3NuX2RldGFpbHMgPSBzZWxmLl9idWlsZF9j c25fZGV0YWlscyhjc25fd2hpdGVsaXN0PXNhbXBsZWRfY3NuX2lkcykKLSsKLSAgICAgICAgIHBm X2RhdGEgPSB7Ci0gICAgICAgICAgICAgInJlcGxpY2F0aW9uTGFncyI6IHsKLSAgICAgICAgICAg ICAgICAgInRpdGxlIjogIkdsb2JhbCBSZXBsaWNhdGlvbiBMYWcgT3ZlciBUaW1lIiwKLUBAIC0x NzE1LDYgKzE5NzQsNyBAQCBjbGFzcyBSZXBsaWNhdGlvbkxvZ0FuYWx5emVyOgotICAgICAgICAg ICAgICAgICAieEF4aXNMYWJlbCI6ICJUaW1lIiwKLSAgICAgICAgICAgICAgICAgInNlcmllcyI6 IGhvcF9zZXJpZXMKLSAgICAgICAgICAgICB9LAotKyAgICAgICAgICAgICJjc25EZXRhaWxzIjog Y3NuX2RldGFpbHMsCi0gICAgICAgICAgICAgIm1ldGFkYXRhIjogewotICAgICAgICAgICAgICAg ICAidG90YWxTZXJ2ZXJzIjogc2VsZi5fYWN0aXZlX3NlcnZlcl9jb3VudCBvciBsZW4oc2VsZi5s b2dfZGlycyksCi0gICAgICAgICAgICAgICAgICJjb25maWd1cmVkTG9nRGlycyI6IHNlbGYubG9n X2RpcnMsCi0tLSAKLTIuNTIuMAotCgpkaWZmIC0tZ2l0IGEvMDAyNS1Jc3N1ZS02NzUzLVBvcnQt dGlja2V0LTQ4ODk2LXRlc3QucGF0Y2ggYi8wMDI1LUlzc3VlLTY3NTMtUG9ydC10aWNrZXQtNDg4 OTYtdGVzdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzI3MDQ5ZC4uMDAw MDAwMAotLS0gYS8wMDI1LUlzc3VlLTY3NTMtUG9ydC10aWNrZXQtNDg4OTYtdGVzdC5wYXRjaAor KysgL2Rldi9udWxsCkBAIC0xLDI2NSArMCwwIEBACi1Gcm9tIDYwM2Y0ZGViMWU4N2M4MTljMTgz MGY1OGM3YmU0MjgxZDk4MWZiYmQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBMZW5r YSBEb3Vkb3ZhIDxscnl6bmFyb0ByZWRoYXQuY29tPgotRGF0ZTogTW9uLCAyIEZlYiAyMDI2IDE2 OjQ2OjUyICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIElzc3VlIDY3NTMgLSBQb3J0IHRpY2tldCA0 ODg5NiB0ZXN0Ci0KLURlc2NyaXB0aW9uOgotUG9ydCB0aWNrZXQgNDg4OTYgdGVzdCBpbnRvIGRp cnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9wYXNzd29yZC9wd2RQb2xpY3lfdG9rZW5fdGVzdC5weQot Ci1SZWxhdGVzOiAjNjc1MwotQXV0aG9yOiBMZW5rYSBEb3Vkb3ZhCi1Bc3Npc3RlZCBieTogQ3Vy c29yCi1SZXZpZXdlcjogTWFyayBSZXlub2xkcwotLS0tCi0gLi4uL3N1aXRlcy9wYXNzd29yZC9w d2RQb2xpY3lfdG9rZW5fdGVzdC5weSAgIHwgIDY4ICsrKysrKy0tLQotIGRpcnNydnRlc3RzL3Rl c3RzL3RpY2tldHMvdGlja2V0NDg4OTZfdGVzdC5weSB8IDEzOSAtLS0tLS0tLS0tLS0tLS0tLS0K LSAyIGZpbGVzIGNoYW5nZWQsIDQ0IGluc2VydGlvbnMoKyksIDE2MyBkZWxldGlvbnMoLSkKLSBk ZWxldGUgbW9kZSAxMDA2NDQgZGlyc3J2dGVzdHMvdGVzdHMvdGlja2V0cy90aWNrZXQ0ODg5Nl90 ZXN0LnB5Ci0KLWRpZmYgLS1naXQgYS9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvcGFzc3dvcmQv cHdkUG9saWN5X3Rva2VuX3Rlc3QucHkgYi9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvcGFzc3dv cmQvcHdkUG9saWN5X3Rva2VuX3Rlc3QucHkKLWluZGV4IGFlNGViMzAwZi4uYTNjYWFhMjMwIDEw MDY0NAotLS0tIGEvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL3Bhc3N3b3JkL3B3ZFBvbGljeV90 b2tlbl90ZXN0LnB5Ci0rKysgYi9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvcGFzc3dvcmQvcHdk UG9saWN5X3Rva2VuX3Rlc3QucHkKLUBAIC0xNSw2ICsxNSw3IEBAIGZyb20gbGliMzg5Ll9jb25z dGFudHMgaW1wb3J0ICoKLSBmcm9tIGxpYjM4OS5pZG0udXNlciBpbXBvcnQgVXNlckFjY291bnRz Ci0gZnJvbSBsaWIzODkuaWRtLm9yZ2FuaXphdGlvbmFsdW5pdCBpbXBvcnQgT3JnYW5pemF0aW9u YWxVbml0cwotIGZyb20gbGliMzg5LnRvcG9sb2dpZXMgaW1wb3J0IHRvcG9sb2d5X3N0IGFzIHRv cG8KLStmcm9tIGxpYjM4OS5pZG0uZGlyZWN0b3J5bWFuYWdlciBpbXBvcnQgRGlyZWN0b3J5TWFu YWdlcgotIAotIHB5dGVzdG1hcmsgPSBweXRlc3QubWFyay50aWVyMQotIAotQEAgLTI1LDE0ICsy NiwxMyBAQCBlbHNlOgotICAgICBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykuc2V0TGV2ZWwo bG9nZ2luZy5JTkZPKQotIGxvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQotIAotLVVT RVJfRE4gPSAndWlkPVRlc3RfdXNlcjEsb3U9UGVvcGxlLGRjPWV4YW1wbGUsZGM9Y29tJwotIFVT RVJfQUNJID0gJyh0YXJnZXRhdHRyPSJ1c2VycGFzc3dvcmQiKSh2ZXJzaW9uIDMuMDsgYWNsICJw d3AgdGVzdCI7IGFsbG93IChhbGwpIHVzZXJkbj0ibGRhcDovLy9zZWxmIjspJwotLVRPS0VOID0g J3Rlc3RfdXNlcjEnCi0rVE9LRU4gPSAndGVzdF91c2VyMTIzJwotIAotIHVzZXJfcHJvcGVydGll cyA9IHsKLS0gICAgJ3VpZCc6ICdUZXN0X3VzZXIxJywKLS0gICAgJ2NuJzogJ3Rlc3RfdXNlcjEn LAotLSAgICAnc24nOiAndGVzdF91c2VyMScsCi0rICAgICd1aWQnOiAnVGVzdF91c2VyMTIzJywK LSsgICAgJ2NuJzogJ3Rlc3RfdXNlcjEyMycsCi0rICAgICdzbic6ICd0ZXN0X3VzZXIxMjMnLAot ICAgICAndWlkTnVtYmVyJzogJzEwMDEnLAotICAgICAnZ2lkTnVtYmVyJzogJzIwMDEnLAotICAg ICAndXNlcnBhc3N3b3JkJzogUEFTU1dPUkQsCi1AQCAtNTksMjggKzU5LDQ4IEBAIGRlZiB0ZXN0 X3Rva2VuX2xlbmd0aHModG9wbyk6Ci0gICAgIDppZDogZGFlOWQ5MTYtMmEwMy00NzA3LWI0NTQt OWU5MDFkMjk1YjEzCi0gICAgIDpzZXR1cDogU3RhbmRhbG9uZSBpbnN0YW5jZQotICAgICA6c3Rl cHM6Ci0tICAgICAgICAxLiBUZXN0IHRva2VuIGxlbmd0aCByZWplY3RzIHBhc3N3b3JkIG9mIHRo ZSBzYW1lIGxlbmd0aCBhcyByZG4gdmFsdWUKLSsgICAgICAgIDEuIENyZWF0ZSB1c2VyLCBzZXR1 cCBnbG9iYWwgcGFzc3dvcmQgcG9saWN5Ci0rICAgICAgICAyLiBCaW5kIGFzIHVzZXIsIGNoYW5n ZSBwYXNzd29yZCB0byAnQWJjZDAxMisnCi0rICAgICAgICAzLiBCaW5kIGFzIHVzZXIgd2l0aCAn QWJjZDAxMisnLCBhdHRlbXB0IGNoYW5nZXMgdG8gJ3VzZXInLCAndXMxMjMnLCAnVHVzZSExMjM0 JywgJ1R1c2UhMDk4NycsICdUYWJjITEyMzQnCi0rICAgICAgICA0LiBGb3IgZWFjaCBwYXNzd29y ZE1pblRva2VuTGVuZ3RoIDQsIDYsIDEwOiBjaGFuZ2Ugc2V0dGluZ3MsIHJlYmluZCBhcyB1c2Vy LCBhdHRlbXB0IHBhc3N3b3JkIHdpdGggdG9rZW4gb2YgdGhhdCBsZW5ndGggZnJvbSBUT0tFTgot KyAgICAgICAgNS4gQ2xlYW51cCAtIGRlbGV0ZSB1c2VyCi0gICAgIDpleHBlY3RlZHJlc3VsdHM6 Ci0tICAgICAgICAxLiBQYXNzd29yZHMgYXJlIHJlamVjdGVkCi0rICAgICAgICAxLiBVc2VyIGNy ZWF0ZWQsIHBhc3N3b3JkIHBvbGljeSBlbmFibGVkIGFuZCBzZXQKLSsgICAgICAgIDIuIFN1Y2Nl c3MKLSsgICAgICAgIDMuIEFsbCBhdHRlbXB0cyBmYWlsIHdpdGggQ09OU1RSQUlOVF9WSU9MQVRJ T04KLSsgICAgICAgIDQuIEFsbCBhdHRlbXB0cyBmYWlsIHdpdGggQ09OU1RSQUlOVF9WSU9MQVRJ T04KLSsgICAgICAgIDUuIFVzZXIgc3VjY2Vzc2Z1bGx5IGRlbGV0ZWQKLSAgICAgIiIiCi0gICAg IHVzZXIgPSBwd2Rfc2V0dXAodG9wbykKLS0gICAgZm9yIGxlbmd0aCBpbiBbJzQnLCAnNicsICcx MCddOgotLSAgICAgICAgdG9wby5zdGFuZGFsb25lLnNpbXBsZV9iaW5kX3MoRE5fRE0sIFBBU1NX T1JEKQotLSAgICAgICAgdG9wby5zdGFuZGFsb25lLmNvbmZpZy5zZXQoJ3Bhc3N3b3JkTWluVG9r ZW5MZW5ndGgnLCBsZW5ndGgpCi0tICAgICAgICB0b3BvLnN0YW5kYWxvbmUuc2ltcGxlX2JpbmRf cyhVU0VSX0ROLCBQQVNTV09SRCkKLS0gICAgICAgIHRpbWUuc2xlZXAoMSkKLS0KLS0gICAgICAg IHRyeToKLS0gICAgICAgICAgICBwYXNzd2QgPSBUT0tFTls6aW50KGxlbmd0aCldCi0tICAgICAg ICAgICAgbG9nLmluZm8oIlRlc3RpbmcgcGFzc3dvcmQgbGVuIHt9IHRva2VuICh7fSkiLmZvcm1h dChsZW5ndGgsIHBhc3N3ZCkpCi0tICAgICAgICAgICAgdXNlci5yZXBsYWNlKCd1c2VycGFzc3dv cmQnLCBwYXNzd2QpCi0tICAgICAgICAgICAgbG9nLmZhdGFsKCdQYXNzd29yZCBpbmNvcnJlY3Rs eSBhbGxvd2VkIScpCi0tICAgICAgICAgICAgYXNzZXJ0IEZhbHNlCi0tICAgICAgICBleGNlcHQg bGRhcC5DT05TVFJBSU5UX1ZJT0xBVElPTiBhcyBlOgotLSAgICAgICAgICAgIGxvZy5pbmZvKCdQ YXNzd29yZCBjb3JyZWN0bHkgcmVqZWN0ZWQ6ICcgKyBzdHIoZSkpCi0tICAgICAgICBleGNlcHQg bGRhcC5MREFQRXJyb3IgYXMgZToKLS0gICAgICAgICAgICBsb2cuZmF0YWwoJ1VuZXhwZWN0ZWQg ZmFpbHVyZSAnICsgc3RyKGUpKQotLSAgICAgICAgICAgIGFzc2VydCBGYWxzZQotKyAgICBkbSA9 IERpcmVjdG9yeU1hbmFnZXIodG9wby5zdGFuZGFsb25lKQotKwotKyAgICB0cnk6Ci0rICAgICAg ICAjIFZlcmlmeSB0aGF0IHRoZSB1c2VyIGNhbiBjaGFuZ2UgdGhlaXIgcGFzc3dvcmQKLSsgICAg ICAgIHVzZXIucmViaW5kKFBBU1NXT1JEKQotKyAgICAgICAgdXNlci5yZXBsYWNlKCd1c2VycGFz c3dvcmQnLCAnQWJjZDAxMisnKQotKwotKyAgICAgICAgIyBWZXJpZnkgdGhhdCB0aGUgZGVmYXVs dCBwYXNzd29yZCBwb2xpY3kgaXMgZW5mb3JjZWQKLSsgICAgICAgIHVzZXIucmViaW5kKCdBYmNk MDEyKycpCi0rICAgICAgICBmb3IgbmV3X3Bhc3N3b3JkIGluIFsndXNlcicsICd1czEyMycsICdU dXNlITEyMzQnLCAnVHVzZSEwOTg3JywgJ1RhYmMhMTIzNCddOgotKyAgICAgICAgICAgIGxvZy5p bmZvKGYiVGVzdGluZyBwYXNzd29yZCB7bmV3X3Bhc3N3b3JkfSIpCi0rICAgICAgICAgICAgd2l0 aCBweXRlc3QucmFpc2VzKGxkYXAuQ09OU1RSQUlOVF9WSU9MQVRJT04pOgotKyAgICAgICAgICAg ICAgICB1c2VyLnJlcGxhY2UoJ3VzZXJwYXNzd29yZCcsIG5ld19wYXNzd29yZCkKLSsKLSsgICAg ICAgICMgVmVyaWZ5IHRoYXQgdGhlIHBhc3N3b3JkIHBvbGljeSBpcyBlbmZvcmNlZCBmb3IgZGlm ZmVyZW50IHRva2VuIGxlbmd0aHMKLSsgICAgICAgIGZvciBsZW5ndGggaW4gWyc0JywgJzYnLCAn MTAnXToKLSsgICAgICAgICAgICBkbS5yZWJpbmQoUEFTU1dPUkQpCi0rICAgICAgICAgICAgdG9w by5zdGFuZGFsb25lLmNvbmZpZy5zZXQoJ3Bhc3N3b3JkTWluVG9rZW5MZW5ndGgnLCBsZW5ndGgp Ci0rICAgICAgICAgICAgdXNlci5yZWJpbmQoJ0FiY2QwMTIrJykKLSsgICAgICAgICAgICB0aW1l LnNsZWVwKDEpCi0rCi0rICAgICAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKGxkYXAuQ09OU1RS QUlOVF9WSU9MQVRJT04pOgotKyAgICAgICAgICAgICAgICBwYXNzd2QgPSBUT0tFTls6aW50KGxl bmd0aCldCi0rICAgICAgICAgICAgICAgIGxvZy5pbmZvKCJUZXN0aW5nIHBhc3N3b3JkIGxlbiB7 fSB0b2tlbiAoe30pIi5mb3JtYXQobGVuZ3RoLCBwYXNzd2QpKQotKyAgICAgICAgICAgICAgICB1 c2VyLnJlcGxhY2UoJ3VzZXJwYXNzd29yZCcsIHBhc3N3ZCkKLSsKLSsgICAgZmluYWxseToKLSsg ICAgICAgICMgQ2xlYW51cAotKyAgICAgICAgdXNlci5kZWxldGUoKQotIAotIAotIGlmIF9fbmFt ZV9fID09ICdfX21haW5fXyc6Ci1kaWZmIC0tZ2l0IGEvZGlyc3J2dGVzdHMvdGVzdHMvdGlja2V0 cy90aWNrZXQ0ODg5Nl90ZXN0LnB5IGIvZGlyc3J2dGVzdHMvdGVzdHMvdGlja2V0cy90aWNrZXQ0 ODg5Nl90ZXN0LnB5Ci1kZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IGExODk3NTg5ZS4u MDAwMDAwMDAwCi0tLS0gYS9kaXJzcnZ0ZXN0cy90ZXN0cy90aWNrZXRzL3RpY2tldDQ4ODk2X3Rl c3QucHkKLSsrKyAvZGV2L251bGwKLUBAIC0xLDEzOSArMCwwIEBACi0tIyAtLS0gQkVHSU4gQ09Q WVJJR0hUIEJMT0NLIC0tLQotLSMgQ29weXJpZ2h0IChDKSAyMDE2IFJlZCBIYXQsIEluYy4KLS0j IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0tIwotLSMgTGljZW5zZTogR1BMICh2ZXJzaW9uIDMgb3Ig YW55IGxhdGVyIHZlcnNpb24pLgotLSMgU2VlIExJQ0VOU0UgZm9yIGRldGFpbHMuCi0tIyAtLS0g RU5EIENPUFlSSUdIVCBCTE9DSyAtLS0KLS0jCi0taW1wb3J0IHB5dGVzdAotLWZyb20gbGliMzg5 LnRhc2tzIGltcG9ydCAqCi0tZnJvbSBsaWIzODkudXRpbHMgaW1wb3J0ICoKLS1mcm9tIGxpYjM4 OS50b3BvbG9naWVzIGltcG9ydCB0b3BvbG9neV9zdAotLQotLWZyb20gbGliMzg5Ll9jb25zdGFu dHMgaW1wb3J0IERFRkFVTFRfU1VGRklYLCBETl9ETSwgUEFTU1dPUkQKLS0KLS0jIFNraXAgb24g b2xkZXIgdmVyc2lvbnMKLS1weXRlc3RtYXJrID0gW3B5dGVzdC5tYXJrLnRpZXIyLAotLSAgICAg ICAgICAgICAgcHl0ZXN0Lm1hcmsuc2tpcGlmKGRzX2lzX29sZGVyKCcxLjMuNicpLCByZWFzb249 Ik5vdCBpbXBsZW1lbnRlZCIpXQotLQotLWxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKS5zZXRM ZXZlbChsb2dnaW5nLkRFQlVHKQotLWxvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQot LQotLUNPTkZJR19ETiA9ICdjbj1jb25maWcnCi0tVUlEID0gJ2J1c2VyMTIzJwotLVRFU1RETiA9 ICd1aWQ9JXMsJyAlIFVJRCArIERFRkFVTFRfU1VGRklYCi0tCi0tCi0tZGVmIGNoZWNrX2F0dHJf dmFsKHRvcG9sb2d5X3N0LCBkbiwgYXR0ciwgZXhwZWN0ZWQpOgotLSAgICB0cnk6Ci0tICAgICAg ICBjZW50cnkgPSB0b3BvbG9neV9zdC5zdGFuZGFsb25lLnNlYXJjaF9zKGRuLCBsZGFwLlNDT1BF X0JBU0UsICdjbj0qJykKLS0gICAgICAgIGlmIGNlbnRyeToKLS0gICAgICAgICAgICB2YWwgPSBj ZW50cnlbMF0uZ2V0VmFsdWUoYXR0cikKLS0gICAgICAgICAgICBpZiB2YWwgPT0gZXhwZWN0ZWQ6 Ci0tICAgICAgICAgICAgICAgIGxvZy5pbmZvKCdEZWZhdWx0IHZhbHVlIG9mICVzIGlzICVzJyAl IChhdHRyLCBleHBlY3RlZCkpCi0tICAgICAgICAgICAgZWxzZToKLS0gICAgICAgICAgICAgICAg bG9nLmluZm8oJ0RlZmF1bHQgdmFsdWUgb2YgJXMgaXMgbm90ICVzLCBidXQgJXMnICUgKGF0dHIs IGV4cGVjdGVkLCB2YWwpKQotLSAgICAgICAgICAgICAgICBhc3NlcnQgRmFsc2UKLS0gICAgICAg IGVsc2U6Ci0tICAgICAgICAgICAgbG9nLmZhdGFsKCdGYWlsZWQgdG8gZ2V0ICVzJyAlIGRuKQot LSAgICAgICAgICAgIGFzc2VydCBGYWxzZQotLSAgICBleGNlcHQgbGRhcC5MREFQRXJyb3IgYXMg ZToKLS0gICAgICAgIGxvZy5mYXRhbCgnRmFpbGVkIHRvIHNlYXJjaCAnICsgZG4gKyAnOiAnICsg ZS5tZXNzYWdlWydkZXNjJ10pCi0tICAgICAgICBhc3NlcnQgRmFsc2UKLS0KLS0KLS1kZWYgcmVw bGFjZV9wdyhzZXJ2ZXIsIGN1cnB3LCBuZXdwdywgZXhwc3RyLCByYyk6Ci0tICAgIGxvZy5pbmZv KCdCaW5kaW5nIGFzIHslcywgJXN9JyAlIChURVNURE4sIGN1cnB3KSkKLS0gICAgc2VydmVyLnNp bXBsZV9iaW5kX3MoVEVTVEROLCBjdXJwdykKLS0KLS0gICAgaGl0ID0gMAotLSAgICBsb2cuaW5m bygnUmVwbGFjaW5nIHBhc3N3b3JkOiAlcyAtPiAlcywgd2hpY2ggc2hvdWxkICVzJyAlIChjdXJw dywgbmV3cHcsIGV4cHN0cikpCi0tICAgIHRyeToKLS0gICAgICAgIHNlcnZlci5tb2RpZnlfcyhU RVNURE4sIFsobGRhcC5NT0RfUkVQTEFDRSwgJ3VzZXJQYXNzd29yZCcsIGVuc3VyZV9ieXRlcyhu ZXdwdykpXSkKLS0gICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotLSAgICAgICAgbG9nLmluZm8o IkV4Y2VwdGlvbiAoZXhwZWN0ZWQpOiAlcyIgJSB0eXBlKGUpLl9fbmFtZV9fKQotLSAgICAgICAg aGl0ID0gMQotLSAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoZSwgcmMpCi0tCi0tICAgIGlmICgw ICE9IHJjKSBhbmQgKDAgPT0gaGl0KToKLS0gICAgICAgIGxvZy5pbmZvKCdFeHBlY3RlZCB0byBm YWlsIHdpdGggJXMsIGJ1dCBwYXNzZWQnICUgcmMuX19uYW1lX18pCi0tICAgICAgICBhc3NlcnQg RmFsc2UKLS0KLS0gICAgbG9nLmluZm8oJ1BBU1NFRCcpCi0tCi0tCi0tZGVmIHRlc3RfdGlja2V0 NDg4OTYodG9wb2xvZ3lfc3QpOgotLSAgICAiIiIKLS0gICAgIiIiCi0tICAgIGxvZy5pbmZvKCdU ZXN0aW5nIFRpY2tldCA0ODg5NiAtIERlZmF1bHQgU2V0dGluZyBmb3IgcGFzc3dvcmRNaW5Ub2tl bkxlbmd0aCBkb2VzIG5vdCB3b3JrJykKLS0KLS0gICAgbG9nLmluZm8oIlNldHRpbmcgZ2xvYmFs IHBhc3N3b3JkIHBvbGljeSB3aXRoIHBhc3N3b3JkIHN5bnRheC4iKQotLSAgICB0b3BvbG9neV9z dC5zdGFuZGFsb25lLnNpbXBsZV9iaW5kX3MoRE5fRE0sIFBBU1NXT1JEKQotLSAgICB0b3BvbG9n eV9zdC5zdGFuZGFsb25lLm1vZGlmeV9zKENPTkZJR19ETiwgWyhsZGFwLk1PRF9SRVBMQUNFLCAn cGFzc3dvcmRDaGVja1N5bnRheCcsIGInb24nKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAobGRhcC5NT0RfUkVQTEFDRSwgJ25zc2xhcGQtcHdwb2xp Y3ktbG9jYWwnLCBiJ29uJyldKQotLQotLSAgICBjb25maWcgPSB0b3BvbG9neV9zdC5zdGFuZGFs b25lLnNlYXJjaF9zKENPTkZJR19ETiwgbGRhcC5TQ09QRV9CQVNFLCAnY249KicpCi0tICAgIG1p bnRva2VubGVuID0gY29uZmlnWzBdLmdldFZhbHVlKCdwYXNzd29yZE1pblRva2VuTGVuZ3RoJykK LS0gICAgaGlzdG9yeSA9IGNvbmZpZ1swXS5nZXRWYWx1ZSgncGFzc3dvcmRJbkhpc3RvcnknKQot LQotLSAgICBsb2cuaW5mbygnRGVmYXVsdCBwYXNzd29yZE1pblRva2VuTGVuZ3RoID09ICVzJyAl IG1pbnRva2VubGVuKQotLSAgICBsb2cuaW5mbygnRGVmYXVsdCBwYXNzd29yZEluSGlzdG9yeSA9 PSAlcycgJSBoaXN0b3J5KQotLQotLSAgICBsb2cuaW5mbygnQWRkaW5nIGEgdXNlci4nKQotLSAg ICBjdXJwdyA9ICdwYXNzd29yZCcKLS0gICAgdG9wb2xvZ3lfc3Quc3RhbmRhbG9uZS5hZGRfcyhF bnRyeSgoVEVTVEROLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 J29iamVjdGNsYXNzJzogInRvcCBwZXJzb24gb3JnYW5pemF0aW9uYWxQZXJzb24gaW5ldE9yZ1Bl cnNvbiIuc3BsaXQoKSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICdjbic6ICd0ZXN0IHVzZXInLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJ3NuJzogJ3VzZXInLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJ3VzZXJQYXNzd29yZCc6IGN1cnB3fSkpKQotLQotLSAgICBuZXdwdyA9ICdBYmNkMDEy KycKLS0gICAgZXhwID0gJ2JlIG9rJwotLSAgICByYyA9IDAKLS0gICAgcmVwbGFjZV9wdyh0b3Bv bG9neV9zdC5zdGFuZGFsb25lLCBjdXJwdywgbmV3cHcsIGV4cCwgcmMpCi0tCi0tICAgIGN1cnB3 ID0gJ0FiY2QwMTIrJwotLSAgICBuZXdwdyA9ICd1c2VyJwotLSAgICBleHAgPSAnZmFpbCcKLS0g ICAgcmMgPSBsZGFwLkNPTlNUUkFJTlRfVklPTEFUSU9OCi0tICAgIHJlcGxhY2VfcHcodG9wb2xv Z3lfc3Quc3RhbmRhbG9uZSwgY3VycHcsIG5ld3B3LCBleHAsIHJjKQotLQotLSAgICBjdXJwdyA9 ICdBYmNkMDEyKycKLS0gICAgbmV3cHcgPSBVSUQKLS0gICAgZXhwID0gJ2ZhaWwnCi0tICAgIHJj ID0gbGRhcC5DT05TVFJBSU5UX1ZJT0xBVElPTgotLSAgICByZXBsYWNlX3B3KHRvcG9sb2d5X3N0 LnN0YW5kYWxvbmUsIGN1cnB3LCBuZXdwdywgZXhwLCByYykKLS0KLS0gICAgY3VycHcgPSAnQWJj ZDAxMisnCi0tICAgIG5ld3B3ID0gJ1R1c2UhMTIzNCcKLS0gICAgZXhwID0gJ2ZhaWwnCi0tICAg IHJjID0gbGRhcC5DT05TVFJBSU5UX1ZJT0xBVElPTgotLSAgICByZXBsYWNlX3B3KHRvcG9sb2d5 X3N0LnN0YW5kYWxvbmUsIGN1cnB3LCBuZXdwdywgZXhwLCByYykKLS0KLS0gICAgY3VycHcgPSAn QWJjZDAxMisnCi0tICAgIG5ld3B3ID0gJ1R1c2UhMDk4NycKLS0gICAgZXhwID0gJ2ZhaWwnCi0t ICAgIHJjID0gbGRhcC5DT05TVFJBSU5UX1ZJT0xBVElPTgotLSAgICByZXBsYWNlX3B3KHRvcG9s b2d5X3N0LnN0YW5kYWxvbmUsIGN1cnB3LCBuZXdwdywgZXhwLCByYykKLS0KLS0gICAgY3VycHcg PSAnQWJjZDAxMisnCi0tICAgIG5ld3B3ID0gJ1RhYmMhMTIzNCcKLS0gICAgZXhwID0gJ2ZhaWwn Ci0tICAgIHJjID0gbGRhcC5DT05TVFJBSU5UX1ZJT0xBVElPTgotLSAgICByZXBsYWNlX3B3KHRv cG9sb2d5X3N0LnN0YW5kYWxvbmUsIGN1cnB3LCBuZXdwdywgZXhwLCByYykKLS0KLS0gICAgY3Vy cHcgPSAnQWJjZDAxMisnCi0tICAgIG5ld3B3ID0gJ0RpcmVjK29yeTM4OScKLS0gICAgZXhwID0g J2JlIG9rJwotLSAgICByYyA9IDAKLS0gICAgcmVwbGFjZV9wdyh0b3BvbG9neV9zdC5zdGFuZGFs b25lLCBjdXJwdywgbmV3cHcsIGV4cCwgcmMpCi0tCi0tICAgIGxvZy5pbmZvKCdTVUNDRVNTJykK LS0KLS0KLS1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotLSAgICAjIFJ1biBpc29sYXRlZAot LSAgICAjIC1zIGZvciBERUJVRyBtb2RlCi0tICAgIENVUlJFTlRfRklMRSA9IG9zLnBhdGgucmVh bHBhdGgoX19maWxlX18pCi0tICAgIHB5dGVzdC5tYWluKCItcyAlcyIgJSBDVVJSRU5UX0ZJTEUp Ci0tLSAKLTIuNTIuMAotCgpkaWZmIC0tZ2l0IGEvMDAyNi1Jc3N1ZS02ODEwLUZpeC1QQU0tUFRB LXRlc3QtNzIxOS5wYXRjaCBiLzAwMjYtSXNzdWUtNjgxMC1GaXgtUEFNLVBUQS10ZXN0LTcyMTku cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI2Y2Q2ODkuLjAwMDAwMDAKLS0t IGEvMDAyNi1Jc3N1ZS02ODEwLUZpeC1QQU0tUFRBLXRlc3QtNzIxOS5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDMwICswLDAgQEAKLUZyb20gZmY0NGFjZmZjYzY3Yzk4NTE0OGM0ZGYyODA2ODVh Njc0ZmVjMDEwYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEFrc2hheSBBZGhpa2Fy aSA8YWFkaGlrYXJAcmVkaGF0LmNvbT4KLURhdGU6IFRodSwgNSBGZWIgMjAyNiAxNToxOTo1OCAr MDUzMAotU3ViamVjdDogW1BBVENIXSBJc3N1ZSA2ODEwIC0gRml4IFBBTSBQVEEgdGVzdCAoIzcy MTkpCi0KLURlc2NyaXB0aW9uOiBGaXggdGhlIFBBTSBQVEEgdGVzdCBieSBhZGQgbWlzc2luZyB5 aWVsZCBpbiBmaXh0dXJlLgotCi1SZWxhdGVzOiAjNjgxMAotCi1SZXZpZXdlZCBieTogQGpjaGFw bWEKLS0tLQotIGRpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9wbHVnaW5zL3BhbV9wdGFfdGVzdC5w eSB8IDIgKysKLSAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQg YS9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvcGx1Z2lucy9wYW1fcHRhX3Rlc3QucHkgYi9kaXJz cnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvcGx1Z2lucy9wYW1fcHRhX3Rlc3QucHkKLWluZGV4IDQ4NGMx YmM4MC4uZTU1YTdmN2VlIDEwMDY0NAotLS0tIGEvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL3Bs dWdpbnMvcGFtX3B0YV90ZXN0LnB5Ci0rKysgYi9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvcGx1 Z2lucy9wYW1fcHRhX3Rlc3QucHkKLUBAIC0xMDQsNiArMTA0LDggQEAgZGVmIHBhbV9zZXJ2aWNl X2xkYXBzZXJ2ZXIobWlncmF0ZWRfY2hpbGRfY29uZmlnKToKLSAgICAgICAgICAgICAgICAgZi53 cml0ZShsaW5lICsgIlxuIikKLSAgICAgICAgIG9zLmNobW9kKHBhbV9maWxlLCAwbzY0NCkKLSAK LSsgICAgICAgIHlpZWxkCi0rCi0gICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAgICAgICAg IGlmIG9zLnBhdGguZXhpc3RzKGJhY2t1cF9maWxlKToKLSAgICAgICAgICAgICAjIFJlc3RvcmUg YmFja3VwIG9uIGVycm9yCi0tLSAKLTIuNTIuMAotCgpkaWZmIC0tZ2l0IGEvMDAyNy1Jc3N1ZS03 MDc2LUZpeC1yZXZlcnRfY2FjaGUtbmV2ZXItY2FsbGVkLWluLW1vZHJkbi03LnBhdGNoIGIvMDAy Ny1Jc3N1ZS03MDc2LUZpeC1yZXZlcnRfY2FjaGUtbmV2ZXItY2FsbGVkLWluLW1vZHJkbi03LnBh dGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YWU0MDg5Li4wMDAwMDAwCi0tLSBh LzAwMjctSXNzdWUtNzA3Ni1GaXgtcmV2ZXJ0X2NhY2hlLW5ldmVyLWNhbGxlZC1pbi1tb2RyZG4t Ny5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLUZyb20gMmEwZWQ5YzI2N2Zj NTZhMTRlODRhZDUzZmZhZWIwYjgyMjU5NDM2NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZy b206IEFrc2hheSBBZGhpa2FyaSA8YWFkaGlrYXJAcmVkaGF0LmNvbT4KLURhdGU6IFRodSwgNSBG ZWIgMjAyNiAxNTo0MTowOSArMDUzMAotU3ViamVjdDogW1BBVENIXSBJc3N1ZSA3MDc2IC0gRml4 IHJldmVydF9jYWNoZSgpIG5ldmVyIGNhbGxlZCBpbiBtb2RyZG4KLSAoIzcyMjApCi0KLURlc2Ny aXB0aW9uOiBUaGUgcG9zdGVudHJ5IGNoZWNrIGluIFBSICM3MDc3IHdhcyBicm9rZW4gLSBwb3N0 ZW50cnkgaXMgYWx3YXlzIE5VTEwKLWF0IHRoYXQgcG9pbnQsIGZpeGVkIGJ5IHJlbW92aW5nIHRo ZSBjaGVjay4KLQotUmVsYXRlczogIzcwNzYKLQotUmV2aWV3ZWQgYnk6IEB2YXNoaXJvdiwgQG1y ZXlub2xkczM4OSwgQGRyb2lkZWNrIChUaGFua3MhKQotLS0tCi0gbGRhcC9zZXJ2ZXJzL3NsYXBk L2JhY2stbGRibS9sZGJtX21vZHJkbi5jIHwgMTIgKysrKysrKy0tLS0tCi0gMSBmaWxlIGNoYW5n ZWQsIDcgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2xkYXAv c2VydmVycy9zbGFwZC9iYWNrLWxkYm0vbGRibV9tb2RyZG4uYyBiL2xkYXAvc2VydmVycy9zbGFw ZC9iYWNrLWxkYm0vbGRibV9tb2RyZG4uYwotaW5kZXggNzU5ZWRiODBkLi5lODU5Nzg5YjMgMTAw NjQ0Ci0tLS0gYS9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2xkYm1fbW9kcmRuLmMKLSsr KyBiL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vbGRibV9tb2RyZG4uYwotQEAgLTEwMiw2 ICsxMDIsNyBAQCBsZGJtX2JhY2tfbW9kcmRuKFNsYXBpX1BCbG9jayAqcGIpCi0gICAgIENvbm5l Y3Rpb24gKnBiX2Nvbm4gPSBOVUxMOwotICAgICBpbnQzMl90IHBhcmVudF9vcCA9IDA7Ci0gICAg IGludDMyX3QgYmV0eG5fY2FsbGJhY2tfZmFpbHMgPSAwOyAvKiBpZiBhIEJFVFhOIGZhaWxzIHdl IG5lZWQgdG8gcmV2ZXJ0IGVudHJ5IGNhY2hlICovCi0rICAgIGludDMyX3QgY2FjaGVfbW9kX3Bo YXNlID0gMDsgLyogc2V0IHdoZW4gd2UgcmVhY2ggdGhlIGNhY2hlIG1vZGlmaWNhdGlvbiBwaGFz ZSAqLwotICAgICBzdHJ1Y3QgdGltZXNwZWMgcGFyZW50X3RpbWU7Ci0gICAgIFNsYXBpX01vZHMg KnNtb2RzX2FkZF9yZG4gPSBOVUxMOwotIAotQEAgLTExODEsNiArMTE4Miw4IEBAIGxkYm1fYmFj a19tb2RyZG4oU2xhcGlfUEJsb2NrICpwYikKLSAgICAgICAgIGdvdG8gZXJyb3JfcmV0dXJuOwot ICAgICB9Ci0gCi0rICAgIC8qIFdlJ3JlIG5vdyBwYXN0IHRoZSBCRVRYTiBQUkUgcGhhc2UgYW5k IGVudGVyaW5nIHRoZSBjYWNoZSBtb2RpZmljYXRpb24gcGhhc2UgKi8KLSsgICAgY2FjaGVfbW9k X3BoYXNlID0gMTsKLSAgICAgcG9zdGVudHJ5ID0gc2xhcGlfZW50cnlfZHVwKGVjLT5lcF9lbnRy eSk7Ci0gCi0gICAgIGlmIChwYXJlbnRlbnRyeSAhPSBOVUxMKSB7Ci1AQCAtMTM2MywxMiArMTM2 NiwxMSBAQCBlcnJvcl9yZXR1cm46Ci0gICAgICAgICB9Ci0gICAgIH0KLSAKLS0gICAgLyogUmV2 ZXJ0IHRoZSBjYWNoZXMgaWYgdGhpcyBpcyB0aGUgcGFyZW50IG9wZXJhdGlvbiBhbmQgY2FjaGUg bW9kaWZpY2F0aW9ucyB3ZXJlIG1hZGUuCi0tICAgICAqIENhY2hlIG1vZGlmaWNhdGlvbnMgKHZp YSBtb2RpZnlfc3dpdGNoX2VudHJpZXMpIG9ubHkgaGFwcGVuIGFmdGVyIEJFVFhOIFBSRSBwbHVn aW5zIHN1Y2NlZWQsCi0tICAgICAqIHNvIHdlIHNob3VsZCBvbmx5IHJldmVydCBpZiB3ZSBnb3Qg cGFzdCB0aGF0IHBvaW50IChpLmUuLCBCRVRYTiBQT1NUIHBsdWdpbiBmYWlsdXJlcykuCi0tICAg ICAqIEZvciBCRVRYTiBQUkUgZmFpbHVyZXMsIG5vIGNhY2hlIG1vZGlmaWNhdGlvbnMgd2VyZSBt YWRlIHRvIHBhcmVudC9uZXdwYXJlbnQgZW50cmllcy4KLSsgICAgLyogUmV2ZXJ0IHRoZSBjYWNo ZXMgaWYgdGhpcyBpcyB0aGUgcGFyZW50IG9wZXJhdGlvbiBBTkQgd2UgcmVhY2hlZCB0aGUKLSsg ICAgICogY2FjaGUgbW9kaWZpY2F0aW9uIHBoYXNlLiBJZiBCRVRYTiBQUkUgZmFpbHMsIGNhY2hl X21vZF9waGFzZSBpcyAwCi0rICAgICAqIGFuZCB3ZSBkb24ndCBuZWVkIHRvIHJldmVydCBzaW5j ZSBubyBjYWNoZSBtb2RpZmljYXRpb25zIHdlcmUgbWFkZS4KLSAgICAgICovCi0tICAgIGlmIChw YXJlbnRfb3AgJiYgYmV0eG5fY2FsbGJhY2tfZmFpbHMgJiYgcG9zdGVudHJ5KSB7Ci0rICAgIGlm IChwYXJlbnRfb3AgJiYgYmV0eG5fY2FsbGJhY2tfZmFpbHMgJiYgY2FjaGVfbW9kX3BoYXNlKSB7 Ci0gICAgICAgICByZXZlcnRfY2FjaGUoaW5zdCwgJnBhcmVudF90aW1lKTsKLSAgICAgfQotIAot LS0gCi0yLjUyLjAKLQoKZGlmZiAtLWdpdCBhLzAwMjgtSXNzdWUtNjk1MS1EeW5hbWljLUNlcnRp ZmljYXRlLXJlZnJlc2gtcGhhc2UtNC1VcGRhdC5wYXRjaCBiLzAwMjgtSXNzdWUtNjk1MS1EeW5h bWljLUNlcnRpZmljYXRlLXJlZnJlc2gtcGhhc2UtNC1VcGRhdC5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggZmIzNzM3NS4uMDAwMDAwMAotLS0gYS8wMDI4LUlzc3VlLTY5NTEt RHluYW1pYy1DZXJ0aWZpY2F0ZS1yZWZyZXNoLXBoYXNlLTQtVXBkYXQucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwxNDkyICswLDAgQEAKLUZyb20gM2Q2M2MyYmMxZWM3ZTg5ZmUyY2U2MzYwZGRk NzI3NDhhNmQxZTFjNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEphbWVzIENoYXBt YW4gPGphY2hhcG1hQHJlZGhhdC5jb20+Ci1EYXRlOiBUaHUsIDUgRmViIDIwMjYgMTU6MTk6MDcg KzAwMDAKLVN1YmplY3Q6IFtQQVRDSF0gSXNzdWUgNjk1MSAtIER5bmFtaWMgQ2VydGlmaWNhdGUg cmVmcmVzaCBwaGFzZSA0IC0gVXBkYXRlCi0gbGliMzg5IGFuZCBkc2NvbmYgKCM3MTcxKQotCi1E ZXNjaXB0aW9uOgotQWRkIHRoZSBDZXJ0TWFuYWdlciBhYnN0cmFjdGlvbiBsYXllciBhbmQgRHlu YW1pY0NlcnRzIGJhY2tlbmQgbW9kdWxlLiBFbmhhbmNlCi10aGUgTnNzU3NsIGJhY2tlbmQgdG8g c3VwcG9ydCBpbXBvcnRpbmcgUEtDUyMxMiBjb250YWluZXJzLCBjb250YWluaW5nIGNlcnQgYW5k Ci1wcml2YXRlIGtleS4gVXBkYXRlIGRzY29uZiB0byBzdXBwb3J0IG5ldyBQS0NTIzEyLXJlbGF0 ZWQgYXJncywgYWxsb3dpbmcgdXNlcnMKLXRvIHN1cHBseSBwYXNzd29yZHMgdmlhIHRleHQsIHN0 ZGluLCBvciBmaWxlLgotCi1GaXg6Ci0tIEludHJvZHVjZSBDZXJ0TWFuYWdlciBhYnN0cmFjdGlv biBsYXllciBmb3IgdW5pZm9ybSBjZXJ0IG1hbmFnZW1lbnQuCi0tIEltcGxlbWVudCBEeW5hbWlj Q2VydHMgYmFja2VuZCB3aXRoIGFkZC9saXN0L2RlbGV0ZSBvcGVyYXRpb25zLgotLSBFeHRlbmQg TnNzU3NsLmFkZF9jZXJ0IHRvIGhhbmRsZSBQS0NTIzEyIGZpbGVzIHdpdGggcGFzc3dvcmRzIHZp YSB0ZXh0LCBzdGRpbiwgb3IgZmlsZS4KLS0gVXBkYXRlIGRzY29uZiBDTEkgdG8gYWNjZXB0IFBL Q1MjMTIgYXJndW1lbnRzICgtLXBrY3MxMi1waW4tdGV4dCwgLS1wa2NzMTItcGluLXN0ZGluLCAt LXBrY3MxMi1waW4tcGF0aCkuCi0KLVJlbGF0ZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS8zODlkcy8z ODktZHMtYmFzZS9pc3N1ZXMvNjk1MQotCi1SZXZpZXdlZCBieTogQHByb2dpZXIzODksIEBtcmV5 bm9sZHMzODksIEBkcm9pZGVjayAoVGhhbmsgeW91KQotLS0tCi0gLi4uL3Rlc3RzL3N1aXRlcy9j bHUvY2FfY2VydF9idW5kbGVfdGVzdC5weSAgIHwgICA1ICstCi0gLi4uL3Rlc3RzL3N1aXRlcy9j bHUvZHNjdGxfdGxzX3Rlc3QucHkgICAgICAgIHwgICA0ICstCi0gLi4uL3N1aXRlcy90bHMvdGxz X2ltcG9ydF9jYV9jaGFpbl90ZXN0LnB5ICAgIHwgICAyICstCi0gc3JjL2xpYjM4OS9saWIzODkv Y2VydF9tYW5hZ2VyLnB5ICAgICAgICAgICAgIHwgMTQ1ICsrKysrKwotIHNyYy9saWIzODkvbGli Mzg5L2NsaV9jb25mL3NlY3VyaXR5LnB5ICAgICAgICB8IDI1MiArKysrKystLS0tCi0gc3JjL2xp YjM4OS9saWIzODkvZHluY2VydHMucHkgICAgICAgICAgICAgICAgIHwgNDU4ICsrKysrKysrKysr KysrKysrKwotIHNyYy9saWIzODkvbGliMzg5L25zc19zc2wucHkgICAgICAgICAgICAgICAgICB8 IDE5NiArKysrKystLQotIHNyYy9saWIzODkvbGliMzg5L3V0aWxzLnB5ICAgICAgICAgICAgICAg ICAgICB8ICA3OSArKy0KLSA4IGZpbGVzIGNoYW5nZWQsIDk4NyBpbnNlcnRpb25zKCspLCAxNTQg ZGVsZXRpb25zKC0pCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9saWIzODkvbGliMzg5L2NlcnRf bWFuYWdlci5weQotIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvbGliMzg5L2xpYjM4OS9keW5jZXJ0 cy5weQotCi1kaWZmIC0tZ2l0IGEvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL2NsdS9jYV9jZXJ0 X2J1bmRsZV90ZXN0LnB5IGIvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL2NsdS9jYV9jZXJ0X2J1 bmRsZV90ZXN0LnB5Ci1pbmRleCAxZDJjY2M1YTYuLjQwYWIwZTA5MyAxMDA2NDQKLS0tLSBhL2Rp cnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9jbHUvY2FfY2VydF9idW5kbGVfdGVzdC5weQotKysrIGIv ZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL2NsdS9jYV9jZXJ0X2J1bmRsZV90ZXN0LnB5Ci1AQCAt ODMsNyArODMsNiBAQCBqQnFMUk1SUU40RnZ6dUNaaU1sL0R3SnY0eWhBWjhoeWxZalJqcWpZL2ZF UHZodkpSbmNQVnk4egotIC0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLSAiIiIKLSAKLS0KLSBk ZWYgdGVzdF9jYV9jZXJ0X2J1bmRsZSh0b3BvKToKLSAgICAgIiIiVGVzdCB3ZSBjYW4gYWRkIGEg Q0FTIGNlcnRpZmljYXRlIGJ1bmRsZQotIAotQEAgLTEwNiw2ICsxMDUsOCBAQCBkZWYgdGVzdF9j YV9jZXJ0X2J1bmRsZSh0b3BvKToKLSAKLSAgICAgIiIiCi0gICAgIGluc3QgPSB0b3BvLnN0YW5k YWxvbmUKLSsgICAgIyBJbml0IE5TUyBEQiBmb3IgZHluY2VydHMKLSsgICAgaW5zdC5lbmFibGVf dGxzKCkKLSAgICAgbGMgPSBMb2dDYXB0dXJlKCkKLSAKLSAgICAgIyBDcmVhdGUgUEVNIGZpbGUg d2l0aCAyIENBIGNlcnRzCi1AQCAtMTE5LDYgKzEyMCw4IEBAIGRlZiB0ZXN0X2NhX2NlcnRfYnVu ZGxlKHRvcG8pOgotICAgICBhcmdzID0gRmFrZUFyZ3MoKQotICAgICBhcmdzLm5hbWUgPSBbJ0NB X0NFUlRfMScsICdDQV9DRVJUXzInXQotICAgICBhcmdzLmZpbGUgPSBwZW1fZmlsZQotKyAgICAj IEFsbG93IENBIGNlcnRzIHRoYXQgZmFpbCB2ZXJpZmljYXRpb24gKHNlbGYtc2lnbmVkKQotKyAg ICBhcmdzLmZvcmNlID0gVHJ1ZQotICAgICBjYWNlcnRfYWRkKGluc3QsIERFRkFVTFRfU1VGRklY LCBsb2csIGFyZ3MpCi0gCi0gICAgICMgTGlzdCBDQSBjZXJ0cwotZGlmZiAtLWdpdCBhL2RpcnNy dnRlc3RzL3Rlc3RzL3N1aXRlcy9jbHUvZHNjdGxfdGxzX3Rlc3QucHkgYi9kaXJzcnZ0ZXN0cy90 ZXN0cy9zdWl0ZXMvY2x1L2RzY3RsX3Rsc190ZXN0LnB5Ci1pbmRleCA5Y2U1YjRlMmEuLmRmNTVi MGY4MyAxMDA2NDQKLS0tLSBhL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9jbHUvZHNjdGxfdGxz X3Rlc3QucHkKLSsrKyBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9jbHUvZHNjdGxfdGxzX3Rl c3QucHkKLUBAIC01NywxMSArNTcsMTEgQEAgZGVmIHRlc3RfdGxzX2NvbW1hbmRfcmV0dXJuc19l cnJvcl90ZXh0KHRvcG8pOgotICAgICAjIGRzY3RsIGxvY2FsaG9zdCB0bHMgaW1wb3J0LWNhCi0g ICAgIHRyeToKLSAgICAgICAgIGludmFsaWRfZmlsZSA9IHRvcG8uc3RhbmRhbG9uZS5jb25mZGly ICsgJy9kc2UubGRpZicKLS0gICAgICAgIHRscy5hZGRfY2VydChuaWNrbmFtZT0iYmFkIiwgaW5w dXRfZmlsZT1pbnZhbGlkX2ZpbGUpCi0rICAgICAgICB0bHMuYWRkX2NlcnQobmlja25hbWU9ImJh ZCIsIGNlcnRfZmlsZT1pbnZhbGlkX2ZpbGUpCi0gICAgICAgICBhc3NlcnQgRmFsc2UKLSAgICAg ZXhjZXB0IFZhbHVlRXJyb3IgYXMgZToKLSAgICAgICAgIGFzc2VydCAnMjU1JyBub3QgaW4gc3Ry KGUpCi0tICAgICAgICBhc3NlcnQgJ1VuYWJsZSB0byBsb2FkIFBFTSBmaWxlJyBpbiBzdHIoZSkK LSsgICAgICAgIGFzc2VydCAnVW5hYmxlIHRvIGxvYWQgY2VydGlmaWNhdGUnIGluIHN0cihlKQot IAotICAgICAjIGRzY3RsIGxvY2FsaG9zdCB0bHMgaW1wb3J0LXNlcnZlci1jZXJ0Ci0gICAgIHRy eToKLWRpZmYgLS1naXQgYS9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvdGxzL3Rsc19pbXBvcnRf Y2FfY2hhaW5fdGVzdC5weSBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy90bHMvdGxzX2ltcG9y dF9jYV9jaGFpbl90ZXN0LnB5Ci1pbmRleCAwYmUzYTlhYWEuLjQ3MTQ3MDNmMCAxMDA2NDQKLS0t LSBhL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy90bHMvdGxzX2ltcG9ydF9jYV9jaGFpbl90ZXN0 LnB5Ci0rKysgYi9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvdGxzL3Rsc19pbXBvcnRfY2FfY2hh aW5fdGVzdC5weQotQEAgLTM4LDcgKzM4LDcgQEAgZGVmIHRlc3RfdGxzX2ltcG9ydF9jaGFpbih0 b3BvbG9neV9zdCk6Ci0gICAgIHRscy5yZWluaXQoKQotIAotICAgICB3aXRoIHB5dGVzdC5yYWlz ZXMoVmFsdWVFcnJvcik6Ci0tICAgICAgICB0bHMuYWRkX2NlcnQobmlja25hbWU9J0NBX0NIQUlO XzEnLCBpbnB1dF9maWxlPUNBX0NIQUlOX0ZJTEUpCi0rICAgICAgICB0bHMuYWRkX2NlcnQobmlj a25hbWU9J0NBX0NIQUlOXzEnLCBjZXJ0X2ZpbGU9Q0FfQ0hBSU5fRklMRSkKLSAKLSAgICAgd2l0 aCBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IpOgotICAgICAgICAgdGxzLmltcG9ydF9yc2FfY3J0 KGNydD1DUlRfQ0hBSU5fRklMRSkKLWRpZmYgLS1naXQgYS9zcmMvbGliMzg5L2xpYjM4OS9jZXJ0 X21hbmFnZXIucHkgYi9zcmMvbGliMzg5L2xpYjM4OS9jZXJ0X21hbmFnZXIucHkKLW5ldyBmaWxl IG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwMDAuLjkxYzljOTUyZgotLS0tIC9kZXYvbnVsbAot KysrIGIvc3JjL2xpYjM4OS9saWIzODkvY2VydF9tYW5hZ2VyLnB5Ci1AQCAtMCwwICsxLDE0NSBA QAotKyMgLS0tIEJFR0lOIENPUFlSSUdIVCBCTE9DSyAtLS0KLSsjIENvcHlyaWdodCAoQykgMjAy NiBSZWQgSGF0LCBJbmMuCi0rIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotKyMKLSsjIExpY2Vuc2U6 IEdQTCAodmVyc2lvbiAzIG9yIGFueSBsYXRlciB2ZXJzaW9uKS4KLSsjIFNlZSBMSUNFTlNFIGZv ciBkZXRhaWxzLgotKyMgLS0tIEVORCBDT1BZUklHSFQgQkxPQ0sgLS0tCi0rCi0raW1wb3J0IG9z Ci0raW1wb3J0IGxvZ2dpbmcKLStmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwKLStmcm9tIGxp YjM4OSBpbXBvcnQgRGlyU3J2Ci0rZnJvbSBsaWIzODkubnNzX3NzbCBpbXBvcnQgTnNzU3NsCi0r ZnJvbSBsaWIzODkuZHluY2VydHMgaW1wb3J0IER5bmFtaWNDZXJ0cwotK2Zyb20gbGliMzg5LmNv bmZpZyBpbXBvcnQgUlNBCi0rCi0rbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCi0r Ci0rY2xhc3MgQ2VydE1hbmFnZXI6Ci0rICAgICIiIgotKyAgICBDZXJ0aWZpY2F0ZSBtYW5hZ2Vy IGZvciAzODkgRGlyZWN0b3J5IFNlcnZlci4KLSsKLSsgICAgQXV0b21hdGljYWxseSBzZWxlY3Rz IER5bmFtaWNDZXJ0cyBiYWNrZW5kIGlmIGF2YWlsYWJsZSB2aWEgTERBUEksCi0rICAgIG90aGVy d2lzZSBmYWxscyBiYWNrIHRvIE5TUyBEQi4KLSsgICAgIiIiCi0rCi0rICAgIGRlZiBfX2luaXRf XyhzZWxmLCBpbnN0YW5jZSk6Ci0rICAgICAgICAiIiIKLSsgICAgICAgIEluaXRpYWxpc2UgYSBD ZXJ0TWFuYWdlciBvYmplY3QsIHdoaWNoIHNlbGVjdHMgdGhlIGFwcHJvcHJpYXRlCi0rICAgICAg ICBjZXJ0aWZpY2F0ZSBoYW5kbGVyIChEeW5hbWljQ2VydCBvciBOU1MpLgotKwotKyAgICAgICAg OnBhcmFtIGluc3RhbmNlOiBEaXJTcnYgaW5zdGFuY2UKLSsgICAgICAgIDpyYWlzZXMgVmFsdWVF cnJvcjogSWYgaW5zdGFuY2UgaXMgTm9uZQotKyAgICAgICAgIiIiCi0rICAgICAgICBpZiBub3Qg aXNpbnN0YW5jZShpbnN0YW5jZSwgRGlyU3J2KToKLSsgICAgICAgICAgICByYWlzZSBWYWx1ZUVy cm9yKCJBIERpclNydiBpbnN0YW5jZSBpcyByZXF1aXJlZCIpCi0rCi0rICAgICAgICBzZWxmLmRp cnNydiA9IGluc3RhbmNlCi0rCi0rICAgICAgICBpZiBzZWxmLmRpcnNydi5zdGF0dXMoKToKLSsg ICAgICAgICAgICBzZWxmLmNlcnRfaGFuZGxlciA9IER5bmFtaWNDZXJ0cyhpbnN0YW5jZT1zZWxm LmRpcnNydikKLSsgICAgICAgIGVsc2U6Ci0rICAgICAgICAgICAgc2VsZi5jZXJ0X2hhbmRsZXIg PSBOc3NTc2woZGlyc3J2PXNlbGYuZGlyc3J2KQotKwotKyAgICAgICAgc2VsZi5jZXJ0X2hhbmRs ZXJfbmFtZSA9IHR5cGUoc2VsZi5jZXJ0X2hhbmRsZXIpLl9fbmFtZV9fCi0rCi0rICAgIGRlZiBs aXN0X2NlcnRzKHNlbGYpOgotKyAgICAgICAgIiIiCi0rICAgICAgICBSZXR1cm4gYSBsaXN0IG9m IGFsbCBjZXJ0aWZpY2F0ZXMgZXhwb3NlZCBieSB0aGUgYmFja2VuZC4KLSsKLSsgICAgICAgIDpy ZXR1cm46IGxpc3Qgb2YgY2VydGlmaWNhdGUgZGljdGlvbmFyaWVzIG9yIHR1cGxlcwotKyAgICAg ICAgIiIiCi0rICAgICAgICByZXR1cm4gc2VsZi5jZXJ0X2hhbmRsZXIubGlzdF9jZXJ0cygpCi0r Ci0rICAgIGRlZiBsaXN0X2NhX2NlcnRzKHNlbGYpOgotKyAgICAgICAgIiIiCi0rICAgICAgICBS ZXR1cm4gYSBsaXN0IG9mIGFsbCBDQSBjZXJ0aWZpY2F0ZXMgZXhwb3NlZCBieSB0aGUgYmFja2Vu ZC4KLSsKLSsgICAgICAgIDpyZXR1cm46IGxpc3Qgb2YgQ0EgY2VydGlmaWNhdGUgZGljdGlvbmFy aWVzIG9yIHR1cGxlcwotKyAgICAgICAgIiIiCi0rICAgICAgICByZXR1cm4gc2VsZi5jZXJ0X2hh bmRsZXIubGlzdF9jYV9jZXJ0cygpCi0rCi0rICAgIGRlZiBnZXRfY2VydChzZWxmLCBuaWNrbmFt ZTogc3RyKToKLSsgICAgICAgICIiIgotKyAgICAgICAgR2V0IGNlcnRpZmljYXRlIGRldGFpbHMg Ynkgbmlja25hbWUvQ04uCi0rCi0rICAgICAgICA6cGFyYW0gbmlja25hbWU6IENlcnRpZmljYXRl IG5pY2tuYW1lCi0rICAgICAgICA6cmV0dXJuOiBiYWNrZW5kIGNlcnRpZmljYXRlIG9iamVjdCBv ciBOb25lCi0rICAgICAgICAiIiIKLSsgICAgICAgIHJldHVybiBzZWxmLmNlcnRfaGFuZGxlci5n ZXRfY2VydF9kZXRhaWxzKG5pY2tuYW1lPW5pY2tuYW1lKQotKwotKyAgICBkZWYgZGVsX2NlcnQo c2VsZiwgbmlja25hbWU6IHN0cik6Ci0rICAgICAgICAiIiIKLSsgICAgICAgIERlbGV0ZSBhIGNl cnRpZmljYXRlIGJ5IG5pY2tuYW1lLgotKwotKyAgICAgICAgOnBhcmFtIG5pY2tuYW1lOiBDZXJ0 aWZpY2F0ZSBuaWNrbmFtZQotKyAgICAgICAgOnJhaXNlcyBWYWx1ZUVycm9yOiBJZiB0aGUgbmlj a25hbWUgaXMgZW1wdHkuCi0rICAgICAgICAiIiIKLSsgICAgICAgIGlmIG5vdCBuaWNrbmFtZToK LSsgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJDZXJ0aWZpY2F0ZSBuaWNrbmFtZSBjYW5u b3QgYmUgZW1wdHkiKQotKwotKyAgICAgICAgc2VsZi5jZXJ0X2hhbmRsZXIuZGVsX2NlcnQobmlj a25hbWUpCi0rCi0rICAgIGRlZiBhZGRfY2VydCgKLSsgICAgICAgIHNlbGYsCi0rICAgICAgICBj ZXJ0X2ZpbGU6IHN0ciwKLSsgICAgICAgIG5pY2tuYW1lOiBzdHIsCi0rICAgICAgICBwa2NzMTJf cGFzc3dvcmQ6IE9wdGlvbmFsW3N0cl0gPSBOb25lLAotKyAgICAgICAgcHJpbWFyeTogYm9vbCA9 IEZhbHNlLAotKyAgICAgICAgY2E6IGJvb2wgPSBGYWxzZSwKLSsgICAgICAgIGZvcmNlOiBib29s ID0gRmFsc2UKLSsgICAgKToKLSsgICAgICAgICIiIgotKyAgICAgICAgQWRkIG9yIHJlcGxhY2Ug YSBjZXJ0aWZpY2F0ZS4KLSsKLSsgICAgICAgIDpwYXJhbSBjZXJ0X2ZpbGU6IFBhdGggdG8gY2Vy dGlmaWNhdGUgZmlsZSAoUEVNLCBERVIsIG9yIFBLQ1MjMTIpCi0rICAgICAgICA6cGFyYW0gbmlj a25hbWU6IENlcnRpZmljYXRlIG5pY2tuYW1lL0NOCi0rICAgICAgICA6cGFyYW0gcGtjczEyX3Bh c3N3b3JkOiBQYXNzd29yZCBmb3IgUEtDUyMxMiwgaWYgYW55Ci0rICAgICAgICA6cGFyYW0gcHJp bWFyeTogU2V0IGFzIHRoZSBzZXJ2ZXIncyBwcmltYXJ5IFNTTCBjZXJ0aWZpY2F0ZQotKyAgICAg ICAgOnBhcmFtIGNhOiBXaGV0aGVyIHRoaXMgY2VydGlmaWNhdGUgaXMgYSBDQSBjZXJ0aWZpY2F0 ZQotKyAgICAgICAgOnBhcmFtIGZvcmNlOiBGb3JjZSB0aGUgYWRkaXRpb24gb2YgYSBjZXJ0aWZp Y2F0ZSB0aGF0IGNhbm5vdCBiZSB2ZXJpZmllZAotKyAgICAgICAgOnJhaXNlcyBWYWx1ZUVycm9y OiBJZiBjZXJ0X2ZpbGUgb3Igbmlja25hbWUgaXMgaW52YWxpZAotKyAgICAgICAgIiIiCi0rICAg ICAgICBpZiBub3Qgb3MucGF0aC5pc2ZpbGUoY2VydF9maWxlKToKLSsgICAgICAgICAgICByYWlz ZSBWYWx1ZUVycm9yKGYiQ2VydGlmaWNhdGUgZmlsZSBub3QgZm91bmQ6IHtjZXJ0X2ZpbGV9IikK LSsgICAgICAgIGlmIG5vdCBuaWNrbmFtZToKLSsgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y KCJDZXJ0aWZpY2F0ZSBuaWNrbmFtZSBtdXN0IG5vdCBiZSBlbXB0eSIpCi0rCi0rICAgICAgICBz ZWxmLmNlcnRfaGFuZGxlci5hZGRfY2VydCgKLSsgICAgICAgICAgICBuaWNrbmFtZT1uaWNrbmFt ZSwKLSsgICAgICAgICAgICBjZXJ0X2ZpbGU9Y2VydF9maWxlLAotKyAgICAgICAgICAgIHBrY3Mx Ml9wYXNzd29yZD1wa2NzMTJfcGFzc3dvcmQsCi0rICAgICAgICAgICAgY2E9Y2EsCi0rICAgICAg ICAgICAgZm9yY2U9Zm9yY2UKLSsgICAgICAgICkKLSsKLSsgICAgICAgIGlmIHByaW1hcnk6Ci0r ICAgICAgICAgICAgdHJ5OgotKyAgICAgICAgICAgICAgICBSU0Eoc2VsZi5kaXJzcnYpLnNldCgi bnNTU0xQZXJzb25hbGl0eVNTTCIsIG5pY2tuYW1lKQotKyAgICAgICAgICAgICAgICBsb2cuaW5m byhmIlNldCBjZXJ0aWZpY2F0ZSAne25pY2tuYW1lfScgYXMgcHJpbWFyeSBTU0wgY2VydGlmaWNh dGUuIikKLSsgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0rICAgICAgICAgICAg ICAgIGxvZy5lcnJvcihmIkZhaWxlZCB0byBzZXQgcHJpbWFyeSBTU0wgY2VydCAne25pY2tuYW1l fSc6IHtlfSIpCi0rICAgICAgICAgICAgICAgIHJhaXNlCi0rCi0rICAgIGRlZiBhZGRfY2FfY2Vy dChzZWxmLCBjZXJ0X2ZpbGU6IHN0ciwgbmlja25hbWU6IHN0ciwgZm9yY2U6IGJvb2wgPSBGYWxz ZSk6Ci0rICAgICAgICAiIiIKLSsgICAgICAgIEFkZCBvbmUgb3IgbW9yZSBDQSBjZXJ0aWZpY2F0 ZXMgZnJvbSBhIFBFTSBidW5kbGUgb3Igc2luZ2xlIERFUi4KLSsKLSsgICAgICAgIDpwYXJhbSBj ZXJ0X2ZpbGU6IFBhdGggdG8gY2VydGlmaWNhdGUgZmlsZSAoUEVNLCBERVIpCi0rICAgICAgICA6 cGFyYW0gbmlja25hbWU6IENlcnRpZmljYXRlIG5pY2tuYW1lCi0rICAgICAgICA6cmFpc2VzIFZh bHVlRXJyb3I6IElmIGZpbGUgaXMgbWlzc2luZwotKyAgICAgICAgIiIiCi0rICAgICAgICBpZiBu b3Qgb3MucGF0aC5leGlzdHMoY2VydF9maWxlKToKLSsgICAgICAgICAgICByYWlzZSBWYWx1ZUVy cm9yKGYiQ2VydGlmaWNhdGUgZmlsZSBkb2VzIG5vdCBleGlzdDoge2NlcnRfZmlsZX0iKQotKwot KyAgICAgICAgc2VsZi5jZXJ0X2hhbmRsZXIuYWRkX2NhX2NlcnQoY2VydF9maWxlLCBuaWNrbmFt ZSwgZm9yY2U9Zm9yY2UpCi0rCi0rICAgIGRlZiBlZGl0X2NlcnRfdHJ1c3Qoc2VsZiwgbmlja25h bWU6IHN0ciwgdHJ1c3RfZmxhZ3M6IHN0cik6Ci0rICAgICAgICAiIiIKLSsgICAgICAgIEVkaXQg dHJ1c3QgZmxhZ3Mgb24gYW4gZXhpc3RpbmcgY2VydGlmaWNhdGUuCi0rCi0rICAgICAgICA6cGFy YW0gbmlja25hbWU6IENlcnRpZmljYXRlIG5pY2tuYW1lCi0rICAgICAgICA6cGFyYW0gdHJ1c3Rf ZmxhZ3M6IE5TUyBzdHlsZSB0cnVzdCBmbGFnIHRyaXBsZXQsIGUuZy4gJ0NULCwnCi0rICAgICAg ICAiIiIKLSsgICAgICAgIHJldHVybiBzZWxmLmNlcnRfaGFuZGxlci5lZGl0X2NlcnRfdHJ1c3Qo bmlja25hbWU9bmlja25hbWUsIHRydXN0X2ZsYWdzPXRydXN0X2ZsYWdzKQotZGlmZiAtLWdpdCBh L3NyYy9saWIzODkvbGliMzg5L2NsaV9jb25mL3NlY3VyaXR5LnB5IGIvc3JjL2xpYjM4OS9saWIz ODkvY2xpX2NvbmYvc2VjdXJpdHkucHkKLWluZGV4IGViYTEzOGZlYi4uMThlNDQ0YzRjIDEwMDY0 NAotLS0tIGEvc3JjL2xpYjM4OS9saWIzODkvY2xpX2NvbmYvc2VjdXJpdHkucHkKLSsrKyBiL3Ny Yy9saWIzODkvbGliMzg5L2NsaV9jb25mL3NlY3VyaXR5LnB5Ci1AQCAtOSw4ICs5LDEwIEBACi0g ZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgT3JkZXJlZERpY3QsIG5hbWVkdHVwbGUKLSBpbXBvcnQg anNvbgotIGltcG9ydCBvcwotK2ltcG9ydCBzeXMKLSBmcm9tIGxpYjM4OS5jb25maWcgaW1wb3J0 IENvbmZpZywgRW5jcnlwdGlvbiwgUlNBCi0tZnJvbSBsaWIzODkubnNzX3NzbCBpbXBvcnQgTnNz U3NsLCBDRVJUX05BTUUsIENBX05BTUUKLStmcm9tIGxpYjM4OS5uc3Nfc3NsIGltcG9ydCBOc3NT c2wKLStmcm9tIGxpYjM4OS5jZXJ0X21hbmFnZXIgaW1wb3J0IENlcnRNYW5hZ2VyCi0gZnJvbSBs aWIzODkuY2xpX2Jhc2UgaW1wb3J0IF93YXJuLCBDdXN0b21IZWxwRm9ybWF0dGVyCi0gCi0gCi1A QCAtMTQwLDYgKzE0Miw1MiBAQCBkZWYgX3NlY3VyaXR5X2dlbmVyaWNfdG9nZ2xlX3BhcnNlcnMo cGFyZW50LCBjbHMsIGF0dHIsIGhlbHBfcGF0dGVybik6Ci0gICAgIHJldHVybiBsaXN0KG1hcChh ZGRfcGFyc2VyLCAoJ0VuYWJsZScsICdEaXNhYmxlJyksICgnb24nLCAnb2ZmJykpKQotIAotIAot K2RlZiBfcmVzb2x2ZV9wa2NzMTJfcGFzc3dvcmQoYXJncyk6Ci0rICAgIGlmIGFyZ3MucGtjczEy X3Bpbl90ZXh0OgotKyAgICAgICAgcmV0dXJuIGFyZ3MucGtjczEyX3Bpbl90ZXh0Ci0rCi0rICAg IGlmIGFyZ3MucGtjczEyX3Bpbl9zdGRpbjoKLSsgICAgICAgIHJldHVybiBzeXMuc3RkaW4ucmVh ZGxpbmUoKS5yc3RyaXAoIlxuIikKLSsKLSsgICAgaWYgYXJncy5wa2NzMTJfcGluX3BhdGg6Ci0r ICAgICAgICB3aXRoIG9wZW4oYXJncy5wa2NzMTJfcGluX3BhdGgpIGFzIGY6Ci0rICAgICAgICAg ICAgcmV0dXJuIGYucmVhZCgpLnJzdHJpcCgiXG4iKQotKwotKyAgICByZXR1cm4gTm9uZQotKwot K2RlZiBfZHVtcF9jZXJ0KGNlcnQsIGpzb25fb3V0cHV0OiBib29sID0gRmFsc2UsIGxvZyA9IE5v bmUpOgotKyAgICAiIiIKLSsgICAgUHJpbnQgb3IgcmV0dXJuIGEgY2VydGlmaWNhdGUncyBkZXRh aWxzIGluIHRleHQgb3IgSlNPTiBmb3JtYXQuCi0rCi0rICAgIDpwYXJhbSBjZXJ0OiBkaWN0IGRl c2NyaWJpbmcgYSBjZXJ0aWZpY2F0ZQotKyAgICA6cGFyYW0ganNvbl9vdXRwdXQ6IElmIFRydWUg cHJpbnQgSlNPTiBlbHNlIHByaW50IHRleHQKLSsgICAgOnBhcmFtIGxvZzogT3B0aW9uYWwgbG9n Z2VyIHRvIG91dHB1dCB0ZXh0Ci0rICAgICIiIgotKyAgICBpZiBub3QgaXNpbnN0YW5jZShjZXJ0 LCBkaWN0KToKLSsgICAgICAgIHJhaXNlIFR5cGVFcnJvcihmIkV4cGVjdGVkIGRpY3QsIGdvdCB7 dHlwZShjZXJ0KX0iKQotKwotKyAgICBpZiBqc29uX291dHB1dDoKLSsgICAgICAgIHJldHVybiB7 Ci0rICAgICAgICAgICAgInR5cGUiOiAiY2VydGlmaWNhdGUiLAotKyAgICAgICAgICAgICJhdHRy cyI6IHsKLSsgICAgICAgICAgICAgICAgIm5pY2tuYW1lIjogY2VydFsiY24iXSwKLSsgICAgICAg ICAgICAgICAgInN1YmplY3QiOiBjZXJ0WyJzdWJqZWN0Il0sCi0rICAgICAgICAgICAgICAgICJp c3N1ZXIiOiBjZXJ0WyJpc3N1ZXIiXSwKLSsgICAgICAgICAgICAgICAgImV4cGlyZXMiOiBjZXJ0 WyJleHBpcmVzIl0sCi0rICAgICAgICAgICAgICAgICJmbGFncyI6IGNlcnRbInRydXN0X2ZsYWdz Il0sCi0rICAgICAgICAgICAgfQotKyAgICAgICAgfQotKyAgICBlbHNlOgotKyAgICAgICAgbXNn ID0gKAotKyAgICAgICAgICAgIGYiQ2VydGlmaWNhdGUgTmFtZToge2NlcnRbJ2NuJ119XG4iCi0r ICAgICAgICAgICAgZiJTdWJqZWN0IEROOiB7Y2VydFsnc3ViamVjdCddfVxuIgotKyAgICAgICAg ICAgIGYiSXNzdWVyIEROOiB7Y2VydFsnaXNzdWVyJ119XG4iCi0rICAgICAgICAgICAgZiJFeHBp cmVzOiB7Y2VydFsnZXhwaXJlcyddfVxuIgotKyAgICAgICAgICAgIGYiVHJ1c3QgRmxhZ3M6IHtj ZXJ0Wyd0cnVzdF9mbGFncyddfVxuIgotKyAgICAgICAgKQotKyAgICAgICAgaWYgbG9nOgotKyAg ICAgICAgICAgIGxvZy5pbmZvKG1zZykKLSsKLSBkZWYgc2VjdXJpdHlfZW5hYmxlKGluc3QsIGJh c2VkbiwgbG9nLCBhcmdzKToKLSAgICAgZGJwYXRoID0gaW5zdC5nZXRfY2VydF9kaXIoKQotICAg ICB0bHNkYiA9IE5zc1NzbChkYnBhdGg9ZGJwYXRoKQotQEAgLTE1MCw3ICsxOTgsNyBAQCBkZWYg c2VjdXJpdHlfZW5hYmxlKGluc3QsIGJhc2VkbiwgbG9nLCBhcmdzKToKLSAKLSAgICAgaWYgbGVu KGNlcnRzKSA9PSAxOgotICAgICAgICAgIyBJZiB0aGVyZSBpcyBvbmx5IGNlcnQgbWFrZSBzdXJl IGl0IGlzIHNldCBhcyB0aGUgc2VydmVyIGNlcnRpZmljYXRlCi0tICAgICAgICBSU0EoaW5zdCku c2V0KCduc1NTTFBlcnNvbmFsaXR5U1NMJywgY2VydHNbMF1bMF0pCi0rICAgICAgICBSU0EoaW5z dCkuc2V0KCduc1NTTFBlcnNvbmFsaXR5U1NMJywgY2VydHNbMF1bJ2NuJ10pCi0gICAgIGVsaWYg YXJncy5jZXJ0X25hbWUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAjIEEgY2VydGlmaWNhdGUgbmlj a25hbWUgd2FzIHByb3ZpZGVkLCBzZXQgaXQgYXMgdGhlIHNlcnZlciBjZXJ0aWZpY2F0ZQotICAg ICAgICAgUlNBKGluc3QpLnNldCgnbnNTU0xQZXJzb25hbGl0eVNTTCcsIGFyZ3MuY2VydF9uYW1l KQotQEAgLTIyMiwyNiArMjcwLDI3IEBAIGRlZiBjZXJ0X2FkZChpbnN0LCBiYXNlZG4sIGxvZywg YXJncyk6Ci0gICAgIGlmIG5vdCBvcy5wYXRoLmlzZmlsZShhcmdzLmZpbGUpOgotICAgICAgICAg cmFpc2UgVmFsdWVFcnJvcihmJ0NlcnRpZmljYXRlIGZpbGUgInthcmdzLmZpbGV9IiBkb2VzIG5v dCBleGlzdCcpCi0gCi0tICAgIHRsc2RiID0gTnNzU3NsKGRpcnNydj1pbnN0KQotLSAgICBpZiBu b3QgdGxzZGIuX2RiX2V4aXN0cyhldmVuX3BhcnRpYWw9VHJ1ZSk6ICAjIHdlIHdhbnQgdG8gYmUg dmVyeSBjYXJlZnVsCi0tICAgICAgICBsb2cuaW5mbygnU2VjdXJpdHkgZGF0YWJhc2UgZG9lcyBu b3QgZXhpc3QuIENyZWF0aW5nIGEgbmV3IG9uZSBpbiB7fS4nLmZvcm1hdChpbnN0LmdldF9jZXJ0 X2RpcigpKSkKLS0gICAgICAgIHRsc2RiLnJlaW5pdCgpCi0tICAgIHRyeToKLS0gICAgICAgIHRs c2RiLmdldF9jZXJ0X2RldGFpbHMoYXJncy5uYW1lKQotLSAgICAgICAgcmFpc2UgVmFsdWVFcnJv cigiQ2VydGlmaWNhdGUgYWxyZWFkeSBleGlzdHMgd2l0aCB0aGUgc2FtZSBuYW1lIikKLS0gICAg ZXhjZXB0IFZhbHVlRXJyb3I6Ci0tICAgICAgICBwYXNzCi0tCi0tICAgIGlmIGFyZ3MucHJpbWFy eV9jZXJ0OgotLSAgICAgICAgIyBUaGlzIGlzIHRoZSBzZXJ2ZXIncyBwcmltYXJ5IGNlcnRpZmlj YXRlLCB1cGRhdGUgUlNBIGVudHJ5Ci0tICAgICAgICBSU0EoaW5zdCkuc2V0KCduc1NTTFBlcnNv bmFsaXR5U1NMJywgYXJncy5uYW1lKQotKyAgICBwa2NzMTJfcGFzc3dvcmQgPSBOb25lCi0rICAg IHBrY3MxMl9maWxlID0gYXJncy5maWxlLmxvd2VyKCkuZW5kc3dpdGgoKCIucDEyIiwgIi5wZngi KSkKLSsgICAgaWYgcGtjczEyX2ZpbGU6Ci0rICAgICAgICBwa2NzMTJfcGFzc3dvcmQgPSBfcmVz b2x2ZV9wa2NzMTJfcGFzc3dvcmQoYXJncykKLSAKLS0gICAgIyBBZGQgdGhlIGNlcnQKLS0gICAg dGxzZGIuYWRkX2NlcnQoYXJncy5uYW1lLCBhcmdzLmZpbGUpCi0rICAgIGNlcnRtZ3IgPSBDZXJ0 TWFuYWdlcihpbnN0YW5jZT1pbnN0KQotKyAgICBjZXJ0ID0gY2VydG1nci5nZXRfY2VydChhcmdz Lm5hbWUpCi0rICAgIGlmIGNlcnQ6Ci0rICAgICAgICBsb2cuaW5mbyhmIkNlcnRpZmljYXRlICd7 YXJncy5uYW1lfScgYWxyZWFkeSBleGlzdHMsIHNraXBwaW5nIikKLSsgICAgICAgIHJldHVybgot IAotKyAgICBjZXJ0bWdyLmFkZF9jZXJ0KAotKyAgICAgICAgYXJncy5maWxlLAotKyAgICAgICAg YXJncy5uYW1lLAotKyAgICAgICAgcGtjczEyX3Bhc3N3b3JkPXBrY3MxMl9wYXNzd29yZCwKLSsg ICAgICAgIHByaW1hcnk9YXJncy5wcmltYXJ5X2NlcnQsCi0rICAgICAgICBjYT1GYWxzZSwKLSsg ICAgICAgIGZvcmNlPWFyZ3MuZm9yY2UKLSsgICAgKQotICAgICBsb2cuaW5mbygiU3VjY2Vzc2Z1 bGx5IGFkZGVkIGNlcnRpZmljYXRlIikKLSAKLS0KLSBkZWYgY2FjZXJ0X2FkZChpbnN0LCBiYXNl ZG4sIGxvZywgYXJncyk6Ci0gICAgICIiIkFkZCBDQSBjZXJ0aWZpY2F0ZSwgb3IgQ0EgY2VydGlm aWNhdGUgYnVuZGxlCi0gICAgICIiIgotQEAgLTI0OSwxMDAgKzI5OCw4MSBAQCBkZWYgY2FjZXJ0 X2FkZChpbnN0LCBiYXNlZG4sIGxvZywgYXJncyk6Ci0gICAgIGlmIG5vdCBvcy5wYXRoLmlzZmls ZShhcmdzLmZpbGUpOgotICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihmJ0NlcnRpZmljYXRlIGZp bGUgInthcmdzLmZpbGV9IiBkb2VzIG5vdCBleGlzdCcpCi0gCi0tICAgIHRscyA9IE5zc1NzbChk aXJzcnY9aW5zdCkKLS0gICAgaWYgbm90IHRscy5fZGJfZXhpc3RzKGV2ZW5fcGFydGlhbD1UcnVl KTogICMgd2Ugd2FudCB0byBiZSB2ZXJ5IGNhcmVmdWwKLS0gICAgICAgIGxvZy5pbmZvKCdTZWN1 cml0eSBkYXRhYmFzZSBkb2VzIG5vdCBleGlzdC4gQ3JlYXRpbmcgYSBuZXcgb25lIGluIHt9Licu Zm9ybWF0KGluc3QuZ2V0X2NlcnRfZGlyKCkpKQotLSAgICAgICAgdGxzLnJlaW5pdCgpCi0tCi0t ICAgIHRscy5hZGRfY2FfY2VydF9idW5kbGUoYXJncy5maWxlLCBhcmdzLm5hbWUpCi0rICAgICMg RG9lcyBpdCBtYWtlIHNlbnNlIHRvIGFkZCBhIENBIGNlcnQgZnJvbSBwMTIgY29udGFpbmVyID8K LSsgICAgaWYgYXJncy5maWxlLmxvd2VyKCkuZW5kc3dpdGgoKCIucDEyIiwgIi5wZngiKSk6Ci0r ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJQS0NTIzEyIENBIGNlcnRpZmljYXRlcyBub3Qgc3Vw cG9ydGVkLiBVc2UgUEVNIG9yIERFUiBmaWxlIikKLSAKLSsgICAgY2VydG1nciA9IENlcnRNYW5h Z2VyKGluc3RhbmNlPWluc3QpCi0rICAgIGNlcnRtZ3IuYWRkX2NhX2NlcnQoYXJncy5maWxlLCBh cmdzLm5hbWUsIGZvcmNlPWFyZ3MuZm9yY2UpCi0rICAgIGxvZy5pbmZvKCJTdWNjZXNzZnVsbHkg YWRkZWQgQ0EgY2VydGlmaWNhdGUiKQotIAotIGRlZiBjZXJ0X2xpc3QoaW5zdCwgYmFzZWRuLCBs b2csIGFyZ3MpOgotICAgICAiIiJMaXN0IGFsbCB0aGUgc2VydmVyIGNlcnRpZmljYXRlcwotICAg ICAiIiIKLS0gICAgY2VydF9saXN0ID0gW10KLS0gICAgdGxzZGIgPSBOc3NTc2woZGlyc3J2PWlu c3QpCi0tICAgIGNlcnRzID0gdGxzZGIubGlzdF9jZXJ0cygpCi0tICAgIGZvciBjZXJ0IGluIGNl cnRzOgotLSAgICAgICAgaWYgYXJncy5qc29uOgotLSAgICAgICAgICAgIGNlcnRfbGlzdC5hcHBl bmQoCi0tICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAgICJ0eXBlIjogImNl cnRpZmljYXRlIiwKLS0gICAgICAgICAgICAgICAgICAgICJhdHRycyI6IHsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICduaWNrbmFtZSc6IGNlcnRbMF0sCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAnc3ViamVjdCc6IGNlcnRbMV0sCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAnaXNzdWVyJzogY2VydFsyXSwKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICdleHBpcmVzJzogY2VydFszXSwKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICdmbGFncyc6IGNlcnRbNF0sCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0KLS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICkKLS0gICAgICAgIGVsc2U6Ci0t ICAgICAgICAgICAgbG9nLmluZm8oJ0NlcnRpZmljYXRlIE5hbWU6IHt9Jy5mb3JtYXQoY2VydFsw XSkpCi0tICAgICAgICAgICAgbG9nLmluZm8oJ1N1YmplY3QgRE46IHt9Jy5mb3JtYXQoY2VydFsx XSkpCi0tICAgICAgICAgICAgbG9nLmluZm8oJ0lzc3VlciBETjoge30nLmZvcm1hdChjZXJ0WzJd KSkKLS0gICAgICAgICAgICBsb2cuaW5mbygnRXhwaXJlczoge30nLmZvcm1hdChjZXJ0WzNdKSkK LS0gICAgICAgICAgICBsb2cuaW5mbygnVHJ1c3QgRmxhZ3M6IHt9XG4nLmZvcm1hdChjZXJ0WzRd KSkKLS0gICAgaWYgYXJncy5qc29uOgotLSAgICAgICAgbG9nLmluZm8oanNvbi5kdW1wcyhjZXJ0 X2xpc3QsIGluZGVudD00KSkKLSsgICAgY2VydG1nciA9IENlcnRNYW5hZ2VyKGluc3RhbmNlPWlu c3QpCi0rICAgIGNlcnRzID0gY2VydG1nci5saXN0X2NlcnRzKCkKLSsgICAgaWYgbm90IGNlcnRz OgotKyAgICAgICAgbG9nLmluZm8oIk5vIGNlcnRpZmljYXRlcyBmb3VuZC4iKQotKyAgICAgICAg cmV0dXJuCi0gCi0rICAgIGlmIGFyZ3MuanNvbjoKLSsgICAgICAgIG91dHB1dCA9IFtfZHVtcF9j ZXJ0KGNlcnQsIGpzb25fb3V0cHV0PVRydWUpIGZvciBjZXJ0IGluIGNlcnRzXQotKyAgICAgICAg bG9nLmluZm8oanNvbi5kdW1wcyhvdXRwdXQsIGluZGVudD00KSkKLSsgICAgZWxzZToKLSsgICAg ICAgIGZvciBjZXJ0IGluIGNlcnRzOgotKyAgICAgICAgICAgIF9kdW1wX2NlcnQoY2VydCwganNv bl9vdXRwdXQ9RmFsc2UsIGxvZz1sb2cpCi0gCi0gZGVmIGNhY2VydF9saXN0KGluc3QsIGJhc2Vk biwgbG9nLCBhcmdzKToKLSAgICAgIiIiTGlzdCBhbGwgQ0EgY2VydHMKLSAgICAgIiIiCi0tICAg IGNlcnRfbGlzdCA9IFtdCi0tICAgIHRsc2RiID0gTnNzU3NsKGRpcnNydj1pbnN0KQotLSAgICBj ZXJ0cyA9IHRsc2RiLmxpc3RfY2VydHMoY2E9VHJ1ZSkKLS0gICAgZm9yIGNlcnQgaW4gY2VydHM6 Ci0tICAgICAgICBpZiBhcmdzLmpzb246Ci0tICAgICAgICAgICAgY2VydF9saXN0LmFwcGVuZCgK LS0gICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAiY2VydGlm aWNhdGUiLAotLSAgICAgICAgICAgICAgICAgICAgImF0dHJzIjogewotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJ25pY2tuYW1lJzogY2VydFswXSwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICdzdWJqZWN0JzogY2VydFsxXSwKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICdpc3N1ZXInOiBjZXJ0WzJdLAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJ2V4cGlyZXMnOiBjZXJ0WzNdLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJ2ZsYWdzJzogY2VydFs0XSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQot LSAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgKQotLSAgICAgICAgZWxzZToKLS0gICAg ICAgICAgICBsb2cuaW5mbygnQ2VydGlmaWNhdGUgTmFtZToge30nLmZvcm1hdChjZXJ0WzBdKSkK LS0gICAgICAgICAgICBsb2cuaW5mbygnU3ViamVjdCBETjoge30nLmZvcm1hdChjZXJ0WzFdKSkK LS0gICAgICAgICAgICBsb2cuaW5mbygnSXNzdWVyIEROOiB7fScuZm9ybWF0KGNlcnRbMl0pKQot LSAgICAgICAgICAgIGxvZy5pbmZvKCdFeHBpcmVzOiB7fScuZm9ybWF0KGNlcnRbM10pKQotLSAg ICAgICAgICAgIGxvZy5pbmZvKCdUcnVzdCBGbGFnczoge31cbicuZm9ybWF0KGNlcnRbNF0pKQot LSAgICBpZiBhcmdzLmpzb246Ci0tICAgICAgICBsb2cuaW5mbyhqc29uLmR1bXBzKGNlcnRfbGlz dCwgaW5kZW50PTQpKQotKyAgICBjZXJ0bWdyID0gQ2VydE1hbmFnZXIoaW5zdGFuY2U9aW5zdCkK LSsgICAgY2FfY2VydHMgPSBjZXJ0bWdyLmxpc3RfY2FfY2VydHMoKQotKyAgICBpZiBub3QgY2Ff Y2VydHM6Ci0rICAgICAgICBsb2cuaW5mbygiTm8gQ0EgY2VydGlmaWNhdGVzIGZvdW5kLiIpCi0r ICAgICAgICByZXR1cm4KLSAKLSsgICAgaWYgYXJncy5qc29uOgotKyAgICAgICAgb3V0cHV0ID0g W19kdW1wX2NlcnQoY2VydCwganNvbl9vdXRwdXQ9VHJ1ZSkgZm9yIGNlcnQgaW4gY2FfY2VydHNd Ci0rICAgICAgICBsb2cuaW5mbyhqc29uLmR1bXBzKG91dHB1dCwgaW5kZW50PTQpKQotKyAgICBl bHNlOgotKyAgICAgICAgZm9yIGNlcnQgaW4gY2FfY2VydHM6Ci0rICAgICAgICAgICAgX2R1bXBf Y2VydChjZXJ0LCBqc29uX291dHB1dD1GYWxzZSwgbG9nPWxvZykKLSAKLSBkZWYgY2VydF9nZXQo aW5zdCwgYmFzZWRuLCBsb2csIGFyZ3MpOgotICAgICAiIiJHZXQgdGhlIGRldGFpbHMgYWJvdXQg YSBzZXJ2ZXIgY2VydGlmaWNhdGUKLSAgICAgIiIiCi0tICAgIHRsc2RiID0gTnNzU3NsKGRpcnNy dj1pbnN0KQotLSAgICBkZXRhaWxzID0gdGxzZGIuZ2V0X2NlcnRfZGV0YWlscyhhcmdzLm5hbWUp Ci0rICAgIGNlcnRtZ3IgPSBDZXJ0TWFuYWdlcihpbnN0YW5jZT1pbnN0KQotKyAgICBjZXJ0ID0g Y2VydG1nci5nZXRfY2VydChhcmdzLm5hbWUpCi0rICAgIGlmIG5vdCBjZXJ0OgotKyAgICAgICAg bG9nLmVycm9yKGYiQ2VydGlmaWNhdGUgJ3thcmdzLm5hbWV9JyBub3QgZm91bmQuIikKLSsgICAg ICAgIHJldHVybgotKwotKyAgICBpZiAiQyIgaW4gY2VydC5nZXQoInRydXN0X2ZsYWdzIiwgIiIp OgotKyAgICAgICAgcmV0dXJuCi0rCi0gICAgIGlmIGFyZ3MuanNvbjoKLS0gICAgICAgIGxvZy5p bmZvKGpzb24uZHVtcHMoCi0tICAgICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgICAg ICJ0eXBlIjogImNlcnRpZmljYXRlIiwKLS0gICAgICAgICAgICAgICAgICAgICJhdHRycyI6IHsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICduaWNrbmFtZSc6IGRldGFpbHNbMF0s Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3ViamVjdCc6IGRldGFpbHNbMV0s Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaXNzdWVyJzogZGV0YWlsc1syXSwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdleHBpcmVzJzogZGV0YWlsc1szXSwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmbGFncyc6IGRldGFpbHNbNF0sCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgfSwgaW5kZW50 PTQKLS0gICAgICAgICAgICApCi0tICAgICAgICApCi0rICAgICAgICBvdXRwdXQgPSBfZHVtcF9j ZXJ0KGNlcnQsIGpzb25fb3V0cHV0PWFyZ3MuanNvbikKLSsgICAgICAgIGxvZy5pbmZvKGpzb24u ZHVtcHMob3V0cHV0LCBpbmRlbnQ9NCkpCi0gICAgIGVsc2U6Ci0tICAgICAgICBsb2cuaW5mbygn Q2VydGlmaWNhdGUgTmFtZToge30nLmZvcm1hdChkZXRhaWxzWzBdKSkKLS0gICAgICAgIGxvZy5p bmZvKCdTdWJqZWN0IEROOiB7fScuZm9ybWF0KGRldGFpbHNbMV0pKQotLSAgICAgICAgbG9nLmlu Zm8oJ0lzc3VlciBETjoge30nLmZvcm1hdChkZXRhaWxzWzJdKSkKLS0gICAgICAgIGxvZy5pbmZv KCdFeHBpcmVzOiB7fScuZm9ybWF0KGRldGFpbHNbM10pKQotLSAgICAgICAgbG9nLmluZm8oJ1Ry dXN0IEZsYWdzOiB7fScuZm9ybWF0KGRldGFpbHNbNF0pKQotKyAgICAgICAgX2R1bXBfY2VydChj ZXJ0LCBqc29uX291dHB1dD1hcmdzLmpzb24sIGxvZz1sb2cpCi0rCi0rZGVmIGNhY2VydF9nZXQo aW5zdCwgYmFzZWRuLCBsb2csIGFyZ3MpOgotKyAgICAiIiJHZXQgdGhlIGRldGFpbHMgYWJvdXQg YSBDQSBjZXJ0aWZpY2F0ZQotKyAgICAiIiIKLSsgICAgY2VydG1nciA9IENlcnRNYW5hZ2VyKGlu c3RhbmNlPWluc3QpCi0rICAgIGNlcnQgPSBjZXJ0bWdyLmdldF9jZXJ0KGFyZ3MubmFtZSkKLSsg ICAgaWYgbm90IGNlcnQ6Ci0rICAgICAgICBsb2cuZXJyb3IoZiJDZXJ0aWZpY2F0ZSAne2FyZ3Mu bmFtZX0nIG5vdCBmb3VuZC4iKQotKyAgICAgICAgcmV0dXJuCi0rCi0rICAgIGlmICJDIiBub3Qg aW4gY2VydC5nZXQoInRydXN0X2ZsYWdzIiwgIiIpOgotKyAgICAgICAgcmV0dXJuCi0gCi0rICAg IGlmIGFyZ3MuanNvbjoKLSsgICAgICAgIG91dHB1dCA9IF9kdW1wX2NlcnQoY2VydCwganNvbl9v dXRwdXQ9YXJncy5qc29uKQotKyAgICAgICAgbG9nLmluZm8oanNvbi5kdW1wcyhvdXRwdXQsIGlu ZGVudD00KSkKLSsgICAgZWxzZToKLSsgICAgICAgIF9kdW1wX2NlcnQoY2VydCwganNvbl9vdXRw dXQ9YXJncy5qc29uLCBsb2c9bG9nKQotIAotIGRlZiBjc3JfbGlzdChpbnN0LCBiYXNlZG4sIGxv ZywgYXJncyk6Ci0gICAgICIiIgotQEAgLTQxMiwxOCArNDQyLDIwIEBAIGRlZiBjc3JfZGVsKGlu c3QsIGJhc2VkbiwgbG9nLCBhcmdzKToKLSBkZWYgY2VydF9lZGl0KGluc3QsIGJhc2VkbiwgbG9n LCBhcmdzKToKLSAgICAgIiIiRWRpdCBjZXJ0Ci0gICAgICIiIgotLSAgICB0bHNkYiA9IE5zc1Nz bChkaXJzcnY9aW5zdCkKLS0gICAgdGxzZGIuZWRpdF9jZXJ0X3RydXN0KGFyZ3MubmFtZSwgYXJn cy5mbGFncykKLSsgICAgY2VydG1nciA9IENlcnRNYW5hZ2VyKGluc3RhbmNlPWluc3QpCi0rICAg IGNlcnRtZ3IuZWRpdF9jZXJ0X3RydXN0KGFyZ3MubmFtZSwgYXJncy5mbGFncykKLSAgICAgbG9n LmluZm8oIlN1Y2Nlc3NmdWxseSBlZGl0ZWQgY2VydGlmaWNhdGUgdHJ1c3QgZmxhZ3MiKQotIAot IAotIGRlZiBjZXJ0X2RlbChpbnN0LCBiYXNlZG4sIGxvZywgYXJncyk6Ci0gICAgICIiIkRlbGV0 ZSBjZXJ0Ci0gICAgICIiIgotLSAgICB0bHNkYiA9IE5zc1NzbChkaXJzcnY9aW5zdCkKLS0gICAg dGxzZGIuZGVsX2NlcnQoYXJncy5uYW1lKQotLSAgICBsb2cuaW5mbyhmIlN1Y2Nlc3NmdWxseSBk ZWxldGVkIGNlcnRpZmljYXRlIikKLS0KLSsgICAgY2VydG1nciA9IENlcnRNYW5hZ2VyKGluc3Rh bmNlPWluc3QpCi0rICAgIHRyeToKLSsgICAgICAgIGNlcnRtZ3IuZGVsX2NlcnQoYXJncy5uYW1l KQotKyAgICAgICAgbG9nLmluZm8oZiJTdWNjZXNzZnVsbHkgZGVsZXRlZCBjZXJ0aWZpY2F0ZSIp Ci0rICAgIGV4Y2VwdCBWYWx1ZUVycm9yIGFzIGU6Ci0rICAgICAgICBsb2cuZXJyb3IoZiJGYWls ZWQgdG8gZGVsZXRlIGNlcnRpZmljYXRlICd7YXJncy5uYW1lfSc6IHtlfSIpCi0gCi0gZGVmIGtl eV9saXN0KGluc3QsIGJhc2VkbiwgbG9nLCBhcmdzKToKLSAgICAgIiIiCi1AQCAtNTA5LDYgKzU0 MSwxMSBAQCBkZWYgY3JlYXRlX3BhcnNlcihzdWJwYXJzZXJzKToKLSAgICAgICAgIGhlbHA9J1Nl dHMgdGhlIG5hbWUvbmlja25hbWUgb2YgdGhlIGNlcnRpZmljYXRlJykKLSAgICAgY2VydF9hZGRf cGFyc2VyLmFkZF9hcmd1bWVudCgnLS1wcmltYXJ5LWNlcnQnLCBhY3Rpb249J3N0b3JlX3RydWUn LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlNldHMgdGhpcyBjZXJ0 aWZpY2F0ZSBhcyB0aGUgc2VydmVyJ3MgY2VydGlmaWNhdGUiKQotKyAgICBjZXJ0X2FkZF9wYXJz ZXIuYWRkX2FyZ3VtZW50KCctLXBrY3MxMi1waW4tdGV4dCcsIGhlbHA9J1RoZSBQS0NTIzEyIHBh c3N3b3JkIGFzIHBsYWluIHRleHQuIFdBUk5JTkc6IFBhc3N3b3JkIG1heSBhcHBlYXInIFwKLSsg ICAgICAgICcgaW4gcHJvY2VzcyBsaXN0IG9yIHNoZWxsIGhpc3RvcnkuIFVzZSAtLXBrY3MxMi1w aW4tc3RkaW4gb3IgLS1wa2NzMTItcGluLXBhdGggdG8gcHJldmVudCBwYXNzd29yZCBleHBvc3Vy ZS4nKQotKyAgICBjZXJ0X2FkZF9wYXJzZXIuYWRkX2FyZ3VtZW50KCctLXBrY3MxMi1waW4tc3Rk aW4nLCBoZWxwPSdSZWFkIHRoZSBQS0NTIzEyIHBhc3N3b3JkIGZyb20gc3RkaW4nLCBhY3Rpb249 J3N0b3JlX3RydWUnKQotKyAgICBjZXJ0X2FkZF9wYXJzZXIuYWRkX2FyZ3VtZW50KCctLXBrY3Mx Mi1waW4tcGF0aCcsICBoZWxwPSdQYXRoIHRvIGEgZmlsZSBjb250YWluaW5nIHRoZSBQS0NTIzEy IHBhc3N3b3JkJykKLSsgICAgY2VydF9hZGRfcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1kby1pdCcs IGRlc3Q9ImZvcmNlIiwgaGVscD0iRm9yY2UgdGhlIGFkZGl0aW9uIG9mIGEgY2VydGlmaWNhdGUg dGhhdCBjYW5ub3QgYmUgdmVyaWZpZWQiLGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlZmF1bHQ9RmFs c2UpCi0gICAgIGNlcnRfYWRkX3BhcnNlci5zZXRfZGVmYXVsdHMoZnVuYz1jZXJ0X2FkZCkKLSAK LSAgICAgY2VydF9lZGl0X3BhcnNlciA9IGNlcnRzX3N1Yi5hZGRfcGFyc2VyKCdzZXQtdHJ1c3Qt ZmxhZ3MnLCBoZWxwPSdTZXQgdGhlIFRydXN0IGZsYWdzJywKLUBAIC01MTksNyArNTU2LDcgQEAg ZGVmIGNyZWF0ZV9wYXJzZXIoc3VicGFyc2Vycyk6Ci0gICAgIGNlcnRfZWRpdF9wYXJzZXIuc2V0 X2RlZmF1bHRzKGZ1bmM9Y2VydF9lZGl0KQotIAotICAgICBjZXJ0X2RlbF9wYXJzZXIgPSBjZXJ0 c19zdWIuYWRkX3BhcnNlcignZGVsJywgaGVscD0nRGVsZXRlIGEgY2VydGlmaWNhdGUnLAotLSAg ICAgICAgZGVzY3JpcHRpb249KCdEZWxldGUgYSBjZXJ0aWZpY2F0ZSBmcm9tIHRoZSBOU1MgZGF0 YWJhc2UnKSkKLSsgICAgICAgIGRlc2NyaXB0aW9uPSgnRGVsZXRlIGEgc2VydmVyIGNlcnRpZmlj YXRlIGZyb20gdGhlIE5TUyBkYXRhYmFzZSBvciBEeW5hbWljQ2VydHMgYmFja2VuZC4nKSkKLSAg ICAgY2VydF9kZWxfcGFyc2VyLmFkZF9hcmd1bWVudCgnbmFtZScsIGhlbHA9J1RoZSBuYW1lL25p Y2tuYW1lIG9mIHRoZSBjZXJ0aWZpY2F0ZScpCi0gICAgIGNlcnRfZGVsX3BhcnNlci5zZXRfZGVm YXVsdHMoZnVuYz1jZXJ0X2RlbCkKLSAKLUBAIC01MjksMTkgKzU2NiwyMCBAQCBkZWYgY3JlYXRl X3BhcnNlcihzdWJwYXJzZXJzKToKLSAgICAgY2VydF9nZXRfcGFyc2VyLnNldF9kZWZhdWx0cyhm dW5jPWNlcnRfZ2V0KQotIAotICAgICBjZXJ0X2xpc3RfcGFyc2VyID0gY2VydHNfc3ViLmFkZF9w YXJzZXIoJ2xpc3QnLCBoZWxwPSdMaXN0IHRoZSBzZXJ2ZXIgY2VydGlmaWNhdGVzJywKLS0gICAg ICAgIGRlc2NyaXB0aW9uPSgnTGlzdHMgdGhlIHNlcnZlciBjZXJ0aWZpY2F0ZXMgaW4gdGhlIE5T UyBkYXRhYmFzZScpKQotKyAgICAgICAgZGVzY3JpcHRpb249KCdMaXN0IGFsbCBzZXJ2ZXIgY2Vy dGlmaWNhdGVzIGluIHRoZSBOU1MgZGF0YWJhc2Ugb3IgRHluYW1pY0NlcnRzIGJhY2tlbmQuJykp Ci0gICAgIGNlcnRfbGlzdF9wYXJzZXIuc2V0X2RlZmF1bHRzKGZ1bmM9Y2VydF9saXN0KQotIAot ICAgICAjIENBIGNlcnRpZmljYXRlIG1hbmFnZW1lbnQKLSAgICAgY2FjZXJ0cyA9IHNlY3VyaXR5 X3N1Yi5hZGRfcGFyc2VyKCdjYS1jZXJ0aWZpY2F0ZScsIGhlbHA9J01hbmFnZSBUTFMgY2VydGlm aWNhdGUgYXV0aG9yaXRpZXMnLCBmb3JtYXR0ZXJfY2xhc3M9Q3VzdG9tSGVscEZvcm1hdHRlcikK LSAgICAgY2FjZXJ0c19zdWIgPSBjYWNlcnRzLmFkZF9zdWJwYXJzZXJzKGhlbHA9J2NhLWNlcnRp ZmljYXRlJykKLSAgICAgY2FjZXJ0X2FkZF9wYXJzZXIgPSBjYWNlcnRzX3N1Yi5hZGRfcGFyc2Vy KCdhZGQnLCBoZWxwPSdBZGQgYSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHknLCBkZXNjcmlwdGlvbj0o Ci0tICAgICAgICAnQWRkIGEgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IHRvIHRoZSBOU1MgZGF0YWJh c2UnKSkKLSsgICAgICAgICdBZGQgYSBDQSBjZXJ0aWZpY2F0ZSAoUEVNIG9yIERFUiBvbmx5KSB0 byB0aGUgTlNTIGRhdGFiYXNlIG9yIER5bmFtaWNDZXJ0cyBiYWNrZW5kLicpKQotICAgICBjYWNl cnRfYWRkX3BhcnNlci5hZGRfYXJndW1lbnQoJy0tZmlsZScsIHJlcXVpcmVkPVRydWUsCi0tICAg ICAgICBoZWxwPSdTZXRzIHRoZSBmaWxlIG5hbWUgb2YgdGhlIENBIGNlcnRpZmljYXRlJykKLS0g ICAgY2FjZXJ0X2FkZF9wYXJzZXIuYWRkX2FyZ3VtZW50KCctLW5hbWUnLCBuYXJncz0nKycsIHJl cXVpcmVkPVRydWUsCi0tICAgICAgICBoZWxwPSdTZXRzIHRoZSBuYW1lL25pY2tuYW1lIG9mIHRo ZSBDQSBjZXJ0aWZpY2F0ZSwgaWYgYWRkaW5nIGEgUEVNIGJ1bmRsZSB0aGVuIHNwZWNpZnkgbXVs dGlwbGUgbmFtZXMgb25lIGZvciAnCi0rICAgICAgICBoZWxwPSdQYXRoIHRvIHRoZSBDQSBjZXJ0 aWZpY2F0ZSBmaWxlIChQRU0gb3IgREVSKS4gSWYgYWRkaW5nIGEgUEVNIGJ1bmRsZSB0aGVuIHNw ZWNpZnkgbXVsdGlwbGUgbmFtZXMgb25lIGZvciAnCi0gICAgICAgICAgICAgICdlYWNoIGNlcnRp ZmljYXRlLCBvdGhlcndpc2UgYSBudW1iZXIgaW5jcmVtZW50IHdpbGwgYmUgYWRkZWQgdG8gdGhl IHByZXZpb3VzIG5hbWUuJykKLSsgICAgY2FjZXJ0X2FkZF9wYXJzZXIuYWRkX2FyZ3VtZW50KCct LW5hbWUnLCBuYXJncz0nKycsIHJlcXVpcmVkPVRydWUsCi0rICAgICAgICBoZWxwPSdTZXRzIHRo ZSBuYW1lL25pY2tuYW1lIG9mIHRoZSBDQSBjZXJ0aWZpY2F0ZScpCi0rICAgIGNhY2VydF9hZGRf cGFyc2VyLmFkZF9hcmd1bWVudCgnLS1kby1pdCcsIGRlc3Q9ImZvcmNlIiwgaGVscD0iRm9yY2Ug dGhlIGFkZGl0aW9uIG9mIGEgY2VydGlmaWNhdGUgdGhhdCBjYW5ub3QgYmUgdmVyaWZpZWQiLGFj dGlvbj0nc3RvcmVfdHJ1ZScsIGRlZmF1bHQ9RmFsc2UpCi0gICAgIGNhY2VydF9hZGRfcGFyc2Vy LnNldF9kZWZhdWx0cyhmdW5jPWNhY2VydF9hZGQpCi0gCi0gICAgIGNhY2VydF9lZGl0X3BhcnNl ciA9IGNhY2VydHNfc3ViLmFkZF9wYXJzZXIoJ3NldC10cnVzdC1mbGFncycsIGhlbHA9J1NldCB0 aGUgVHJ1c3QgZmxhZ3MnLAotQEAgLTU1OSw3ICs1OTcsNyBAQCBkZWYgY3JlYXRlX3BhcnNlcihz dWJwYXJzZXJzKToKLSAgICAgY2FjZXJ0X2dldF9wYXJzZXIgPSBjYWNlcnRzX3N1Yi5hZGRfcGFy c2VyKCdnZXQnLCBoZWxwPSJEaXNwbGF5cyBhIENlcnRpZmljYXRlIEF1dGhvcml0eSdzIGluZm9y bWF0aW9uIiwKLSAgICAgICAgIGRlc2NyaXB0aW9uPSgnR2V0IGRldGFpbGVkIGluZm9ybWF0aW9u IGFib3V0IGEgQ0EgY2VydGlmaWNhdGUsIGxpa2UgdHJ1c3QgYXR0cmlidXRlcywgZXhwaXJhdGlv biBkYXRlcywgU3ViamVjdCBhbmQgSXNzdWVyIEROJykpCi0gICAgIGNhY2VydF9nZXRfcGFyc2Vy LmFkZF9hcmd1bWVudCgnbmFtZScsIGhlbHA9J1RoZSBuYW1lL25pY2tuYW1lIG9mIHRoZSBDQSBj ZXJ0aWZpY2F0ZScpCi0tICAgIGNhY2VydF9nZXRfcGFyc2VyLnNldF9kZWZhdWx0cyhmdW5jPWNl cnRfZ2V0KQotKyAgICBjYWNlcnRfZ2V0X3BhcnNlci5zZXRfZGVmYXVsdHMoZnVuYz1jYWNlcnRf Z2V0KQotIAotICAgICBjYWNlcnRfbGlzdF9wYXJzZXIgPSBjYWNlcnRzX3N1Yi5hZGRfcGFyc2Vy KCdsaXN0JywgaGVscD0nTGlzdCB0aGUgQ2VydGlmaWNhdGUgQXV0aG9yaXRpZXMnLAotICAgICAg ICAgZGVzY3JpcHRpb249KCdMaXN0IHRoZSBDQSBjZXJ0aWZpY2F0ZXMgaW4gdGhlIE5TUyBkYXRh YmFzZScpKQotZGlmZiAtLWdpdCBhL3NyYy9saWIzODkvbGliMzg5L2R5bmNlcnRzLnB5IGIvc3Jj L2xpYjM4OS9saWIzODkvZHluY2VydHMucHkKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAw MDAwMDAwMDAuLjIyZTFhOWEzNgotLS0tIC9kZXYvbnVsbAotKysrIGIvc3JjL2xpYjM4OS9saWIz ODkvZHluY2VydHMucHkKLUBAIC0wLDAgKzEsNDU4IEBACi0rIyAtLS0gQkVHSU4gQ09QWVJJR0hU IEJMT0NLIC0tLQotKyMgQ29weXJpZ2h0IChDKSAyMDI2IFJlZCBIYXQsIEluYy4KLSsjIEFsbCBy aWdodHMgcmVzZXJ2ZWQuCi0rIwotKyMgTGljZW5zZTogR1BMICh2ZXJzaW9uIDMgb3IgYW55IGxh dGVyIHZlcnNpb24pLgotKyMgU2VlIExJQ0VOU0UgZm9yIGRldGFpbHMuCi0rIyAtLS0gRU5EIENP UFlSSUdIVCBCTE9DSyAtLS0KLSsKLStpbXBvcnQgZGF0ZXRpbWUKLStpbXBvcnQgb3MKLStpbXBv cnQgbGRhcAotK2ltcG9ydCBsb2dnaW5nCi0raW1wb3J0IHJlCi0raW1wb3J0IHRlbXBmaWxlCi0r ZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsCi0rZnJvbSBsaWIzODkuX21hcHBlZF9vYmplY3Qg aW1wb3J0IERTTGRhcE9iamVjdHMsIERTTGRhcE9iamVjdAotK2Zyb20gbGliMzg5LnV0aWxzIGlt cG9ydCBjZXJ0X2lzX2NhLCBwZW1fdG9fZGVyLCBpc19wZW1fY2VydCwgZW5zdXJlX3N0cgotK2Zy b20gY3J5cHRvZ3JhcGh5IGltcG9ydCB4NTA5Ci0rZnJvbSBjcnlwdG9ncmFwaHkuaGF6bWF0LmJh Y2tlbmRzIGltcG9ydCBkZWZhdWx0X2JhY2tlbmQKLStmcm9tIGNyeXB0b2dyYXBoeS5oYXptYXQu cHJpbWl0aXZlcyBpbXBvcnQgc2VyaWFsaXphdGlvbgotK2Zyb20gY3J5cHRvZ3JhcGh5Lmhhem1h dC5wcmltaXRpdmVzLnNlcmlhbGl6YXRpb24gaW1wb3J0IHBrY3MxMgotKwotK2xvZyA9IGxvZ2dp bmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQotKwotK0RZQ0FUVFJfQ04gICAgPSAiY24iCi0rRFlOQ0VS VF9TVUZGSVggPSAiY249ZHluYW1pY2NlcnRpZmljYXRlcyIKLSsKLStEWUNBVFRSX1BSRUZJWCAg ICAgID0gImRzZHluYW1pY2NlcnRpZmljYXRlIgotK0RZQ0FUVFJfQ0VSVERFUiAgICAgPSBEWUNB VFRSX1BSRUZJWCArICJkZXIiCi0rRFlDQVRUUl9QS0VZREVSICAgICA9IERZQ0FUVFJfUFJFRklY ICsgInByaXZhdGVrZXlkZXIiCi0rRFlDQVRUUl9TVUJKRUNUICAgICA9IERZQ0FUVFJfUFJFRklY ICsgInN1YmplY3QiCi0rRFlDQVRUUl9JU1NVRVIgICAgICA9IERZQ0FUVFJfUFJFRklYICsgImlz c3VlciIKLStEWUNBVFRSX1RSVVNUICAgICAgID0gRFlDQVRUUl9QUkVGSVggKyAidHJ1c3RmbGFn cyIKLStEWUNBVFRSX05PVEFGVEVSICAgID0gRFlDQVRUUl9QUkVGSVggKyAibm90YWZ0ZXIiCi0r RFlDQVRUUl9GT1JDRQkgICAgPSBEWUNBVFRSX1BSRUZJWCArICJGb3JjZSIKLStEWUNBVFRSX0lT Q0EgICAgICAgID0gRFlDQVRUUl9QUkVGSVggKyAiSXNDQSIKLSsKLStDQV9OQU1FID0gJ1NlbGYt U2lnbmVkLUNBJwotK0NFUlRfTkFNRSA9ICdTZXJ2ZXItQ2VydCcKLSsKLStjbGFzcyBEeW5hbWlj Q2VydChEU0xkYXBPYmplY3QpOgotKyAgICAiIiIKLSsgICAgUmVwcmVzZW50cyBhIHNpbmdsZSBE eW5hbWljQ2VydCBMREFQIGVudHJ5LgotKyAgICAiIiIKLSsKLSsgICAgX211c3RfYXR0cmlidXRl cyA9IFtEWUNBVFRSX0NOXQotKwotKyAgICBkZWYgX19pbml0X18oc2VsZiwgaW5zdGFuY2UsIGRu OiBPcHRpb25hbFtzdHJdID0gTm9uZSk6Ci0rICAgICAgICAiIiIKLSsgICAgICAgIEluaXRpYWxp c2UgYSBEeW5hbWljQ2VydCBvYmplY3QuCi0rCi0rICAgICAgICA6cGFyYW0gaW5zdGFuY2U6IERp clNydiBpbnN0YW5jZQotKyAgICAgICAgOnBhcmFtIGRuOiBFbnRyeSBkaXN0aW5ndWlzaGVkIG5h bWUgKEROKQotKyAgICAgICAgIiIiCi0rICAgICAgICBzdXBlcihEeW5hbWljQ2VydCwgc2VsZiku X19pbml0X18oaW5zdGFuY2UsIGRuKQotKyAgICAgICAgc2VsZi5fcmRuX2F0dHJpYnV0ZSA9IERZ Q0FUVFJfQ04KLSsgICAgICAgIHNlbGYuX2NyZWF0ZV9vYmplY3RjbGFzc2VzID0gWyJ0b3AiLCAi ZXh0ZW5zaWJsZU9iamVjdCJdCi0rICAgICAgICBzZWxmLl9wcm90ZWN0ZWQgPSBGYWxzZQotKyAg ICAgICAgc2VsZi5fYmFzZWRuID0gRFlOQ0VSVF9TVUZGSVgKLSsKLSsgICAgZGVmIF9ub3JtYWxp c2VfdGltZXN0YW1wKHNlbGYsIHJhdzogc3RyKToKLSsgICAgICAgICIiIgotKyAgICAgICAgQ29u dmVydCBEeW5hbWljQ2VydCB0aW1lc3RhbXAgdG8gTlNTIGxpa2UgZm9ybWF0LgotKwotKyAgICAg ICAgOnBhcmFtIHJhdzogUmF3IER5bmFtaWNDZXJ0IHRpbWVzdGFtcCAoZS5nLiAyMDI2MDEwOTE4 MTkzNFopCi0rICAgICAgICA6cmV0dXJuOiBGb3JtYXR0ZWQgdGltZXN0YW1wIGFzICJZWVlZLU1N LUREIEhIOk1NOlNTIiwgb3Igb3JpZ2luYWwgc3RyaW5nCi0rICAgICAgICAiIiIKLSsgICAgICAg IHRyeToKLSsgICAgICAgICAgICB5ZWFyICAgPSBpbnQocmF3WzA6NF0pCi0rICAgICAgICAgICAg bW9udGggID0gaW50KHJhd1s0OjZdKSArIDEgICMgUFJFeHBsb2RlZFRpbWUudG1fbW9udGggaXMg MOKAkzExCi0rICAgICAgICAgICAgZGF5ICAgID0gaW50KHJhd1s2OjhdKQotKyAgICAgICAgICAg IGhvdXIgICA9IGludChyYXdbODoxMF0pCi0rICAgICAgICAgICAgbWludXRlID0gaW50KHJhd1sx MDoxMl0pCi0rICAgICAgICAgICAgc2Vjb25kID0gaW50KHJhd1sxMjoxNF0pCi0rICAgICAgICAg ICAgcmV0dXJuIGRhdGV0aW1lLmRhdGV0aW1lKHllYXIsIG1vbnRoLCBkYXksIGhvdXIsIG1pbnV0 ZSwgc2Vjb25kKS5zdHJmdGltZSgiJVktJW0tJWQgJUg6JU06JVMiKQotKyAgICAgICAgZXhjZXB0 IEV4Y2VwdGlvbjoKLSsgICAgICAgICAgICByZXR1cm4gcmF3Ci0rCi0rICAgIGRlZiBkZWxfY2Vy dChzZWxmKToKLSsgICAgICAgICIiIgotKyAgICAgICAgRGVsZXRlIHRoaXMgRHluYW1pY0NlcnQg ZW50cnkgZnJvbSBMREFQLgotKwotKyAgICAgICAgOnJhaXNlcyBWYWx1ZUVycm9yOiBJZiB0aGUg RHluYW1pY0NlcnQgb2JqZWN0IGRvZXMgbm90IGhhdmUgYSBETgotKyAgICAgICAgOnJhaXNlcyBs ZGFwLkxEQVBFcnJvcjogSWYgYW4gTERBUCBvcGVyYXRpb24gZmFpbHMgKG90aGVyIHRoYW4gTk9f U1VDSF9PQkpFQ1QpCi0rICAgICAgICAiIiIKLSsgICAgICAgIGlmIG5vdCBzZWxmLl9kbjoKLSsg ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJDYW5ub3QgZGVsZXRlIER5bmFtaWNDZXJ0IHdp dGhvdXQgYSBETiIpCi0rCi0rICAgICAgICB0cnk6Ci0rICAgICAgICAgICAgc2VsZi5kZWxldGUo KQotKyAgICAgICAgZXhjZXB0IGxkYXAuTk9fU1VDSF9PQkpFQ1Q6Ci0rICAgICAgICAgICAgbG9n Lndhcm5pbmcoZiJEeW5hbWljQ2VydCBhbHJlYWR5IGRlbGV0ZWQ6IHtzZWxmLl9kbn0iKQotKyAg ICAgICAgZXhjZXB0IGxkYXAuTERBUEVycm9yIGFzIGU6Ci0rICAgICAgICAgICAgbG9nLmVycm9y KGYiRmFpbGVkIHRvIGRlbGV0ZSBEeW5hbWljQ2VydDoge3NlbGYuX2RufToge2V9IikKLSsgICAg ICAgICAgICByYWlzZQotKwotKyAgICBkZWYgZWRpdF90cnVzdChzZWxmLCB0cnVzdF9mbGFnczog c3RyKToKLSsgICAgICAgICIiIgotKyAgICAgICAgRWRpdCBjZXJ0aWZpY2F0ZSB0cnVzdCBmbGFn cy4KLSsKLSsgICAgICAgIDpwYXJhbSB0cnVzdF9mbGFnczogQ29tbWEgc2VwYXJhdGVkIHRydXN0 IGZsYWdzIHN0cmluZyAoU1NMLEVtYWlsLE9iamVjdFNpZ25pbmcpCi0rICAgICAgICA6cmFpc2Vz IFZhbHVlRXJyb3I6IElmIHRydXN0IGZsYWdzIGFyZSBpbnZhbGlkIG9yIGVtcHR5Ci0rICAgICAg ICAiIiIKLSsgICAgICAgIGlmIG5vdCB0cnVzdF9mbGFnczoKLSsgICAgICAgICAgICByYWlzZSBW YWx1ZUVycm9yKCJUcnVzdCBmbGFncyBjYW5ub3QgYmUgZW1wdHkiKQotKwotKyAgICAgICAgdHJ1 c3RfZmllbGRzID0gdHJ1c3RfZmxhZ3Muc3RyaXAoKS5zcGxpdCgiLCIpCi0rCi0rICAgICAgICBp ZiBsZW4odHJ1c3RfZmllbGRzKSAhPSAzOgotKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3Io IlRydXN0IGZsYWdzIG11c3QgaGF2ZSAzIGNvbW1hIHNlcGFyYXRlZCBmaWVsZHMiKQotKwotKyAg ICAgICAgIyBBbGxvd2VkIGZpZWxkIHZhbHVlcyAoTlNTKQotKyAgICAgICAgdmFsaWRfZmxhZ3Mg PSBzZXQoInBQY0NUdSIpCi0rICAgICAgICBmb3IgZmllbGQgaW4gdHJ1c3RfZmllbGRzOgotKyAg ICAgICAgICAgIGlmIGZpZWxkIGFuZCBhbnkoZmxhZyBub3QgaW4gdmFsaWRfZmxhZ3MgZm9yIGZs YWcgaW4gZmllbGQpOgotKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKGYiSW52YWxp ZCBjaGFyYWN0ZXJzIGluIHRydXN0IGZsYWdzOiAne3RydXN0X2ZsYWdzfSciKQotKwotKyAgICAg ICAgdHJ5OgotKyAgICAgICAgICAgIHNlbGYucmVwbGFjZShEWUNBVFRSX1RSVVNULCB0cnVzdF9m bGFncykKLSsgICAgICAgIGV4Y2VwdCBsZGFwLkxEQVBFcnJvciBhcyBlOgotKyAgICAgICAgICAg IGxvZy5lcnJvcihmIkZhaWxlZCB0byB1cGRhdGUgdHJ1c3QgZmxhZ3MgZm9yIHtzZWxmLl9kbn06 IHtlfSIpCi0rICAgICAgICAgICAgcmFpc2UKLSsKLStjbGFzcyBEeW5hbWljQ2VydHMoRFNMZGFw T2JqZWN0cyk6Ci0rICAgICIiIgotKyAgICBDb2xsZWN0aW9uIG9mIER5bmFtaWNDZXJ0IGVudHJp ZXMgdW5kZXIgY249ZHluYW1pY2NlcnRpZmljYXRlcy4KLSsgICAgIiIiCi0rCi0rICAgIGRlZiBf X2luaXRfXyhzZWxmLCBpbnN0YW5jZSk6Ci0rICAgICAgICAiIiIKLSsgICAgICAgIEluaXRpYWxp c2UgdGhlIER5bmFtaWNDZXJ0cyBjb2xsZWN0aW9uLgotKwotKyAgICAgICAgOnBhcmFtIGluc3Rh bmNlOiBEaXJTcnYgaW5zdGFuY2UKLSsgICAgICAgICIiIgotKyAgICAgICAgc3VwZXIoRHluYW1p Y0NlcnRzLCBzZWxmKS5fX2luaXRfXyhpbnN0YW5jZT1pbnN0YW5jZSkKLSsgICAgICAgIHNlbGYu X29iamVjdGNsYXNzZXMgPSBbImV4dGVuc2libGVPYmplY3QiXQotKyAgICAgICAgc2VsZi5fZmls dGVyYXR0cnMgPSBbRFlDQVRUUl9DTiwgRFlDQVRUUl9TVUJKRUNULCBEWUNBVFRSX0lTU1VFUl0K LSsgICAgICAgIHNlbGYuX2NoaWxkb2JqZWN0ID0gRHluYW1pY0NlcnQKLSsgICAgICAgIHNlbGYu X2Jhc2VkbiA9IERZTkNFUlRfU1VGRklYCi0rCi0rICAgIGRlZiBhZGRfY2VydChzZWxmLAotKyAg ICAgICAgICAgICAgICAgY2VydF9maWxlOiBzdHIsCi0rICAgICAgICAgICAgICAgICBuaWNrbmFt ZTogc3RyLAotKyAgICAgICAgICAgICAgICAgcGtjczEyX3Bhc3N3b3JkOiBPcHRpb25hbFtzdHJd ID0gTm9uZSwKLSsgICAgICAgICAgICAgICAgIGNhOiBib29sID0gRmFsc2UsCi0rICAgICAgICAg ICAgICAgICBmb3JjZTogYm9vbCA9IEZhbHNlLAotKyAgICApOgotKyAgICAgICAgIiIiCi0rICAg ICAgICBBZGQgb3IgdXBkYXRlIGEgY2VydGlmaWNhdGUgKFBFTSwgREVSLCBvciBQS0NTIzEyKS4K LSsKLSsgICAgICAgIDpwYXJhbSBjZXJ0X2ZpbGU6IFBhdGggdG8gY2VydGlmaWNhdGUgZmlsZSAo UEVNLCBERVIsIG9yIFBLQ1MjMTIpCi0rICAgICAgICA6cGFyYW0gbmlja25hbWU6IENlcnRpZmlj YXRlIG5pY2tuYW1lCi0rICAgICAgICA6cGFyYW0gcGtjczEyX3Bhc3N3b3JkOiBQYXNzd29yZCBm b3IgUEtDUyMxMiwgaWYgYW55Ci0rICAgICAgICA6cGFyYW0gY2E6IFdoZXRoZXIgdGhpcyBjZXJ0 aWZpY2F0ZSBpcyBhIENBIGNlcnRpZmljYXRlCi0rICAgICAgICA6cGFyYW0gZm9yY2U6IEZvcmNl IHRoZSBhZGRpdGlvbiBvZiBhIGNlcnRpZmljYXRlIHRoYXQgY2Fubm90IGJlIHZlcmlmaWVkCi0r ICAgICAgICAiIiIKLSsgICAgICAgIGlmIG5vdCBuaWNrbmFtZToKLSsgICAgICAgICAgICByYWlz ZSBWYWx1ZUVycm9yKCJDZXJ0aWZpY2F0ZSBDTiBjYW5ub3QgYmUgZW1wdHkiKQotKwotKyAgICAg ICAgaWYgbm90IG9zLnBhdGguaXNmaWxlKGNlcnRfZmlsZSk6Ci0rICAgICAgICAgICAgcmFpc2Ug VmFsdWVFcnJvcihmIkNlcnRpZmljYXRlIGZpbGUgZG9lcyBub3QgZXhpc3Q6IHtjZXJ0X2ZpbGV9 IikKLSsKLSsgICAgICAgIGlmIHBrY3MxMl9wYXNzd29yZCBhbmQgbm90IGlzaW5zdGFuY2UocGtj czEyX3Bhc3N3b3JkLCBzdHIpOgotKyAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiUEtDUyMx MiBwYXNzd29yZCBtdXN0IGJlIGEgc3RyaW5nIikKLSsKLSsgICAgICAgIHdpdGggb3BlbihjZXJ0 X2ZpbGUsICJyYiIpIGFzIGY6Ci0rICAgICAgICAgICAgY2VydF9ieXRlcyA9IGYucmVhZCgpCi0r Ci0rICAgICAgICBkZXJfY2VydCA9IE5vbmUKLSsgICAgICAgIGRlcl9wcml2a2V5ID0gTm9uZQot KwotKyAgICAgICAgaWYgY2VydF9maWxlLmxvd2VyKCkuZW5kc3dpdGgoKCIucDEyIiwgIi5wZngi KSk6Ci0rICAgICAgICAgICAgdHJ5OgotKyAgICAgICAgICAgICAgICBwcml2a2V5LCBjZXJ0LCBf ID0gcGtjczEyLmxvYWRfa2V5X2FuZF9jZXJ0aWZpY2F0ZXMoCi0rICAgICAgICAgICAgICAgICAg ICBjZXJ0X2J5dGVzLCBwa2NzMTJfcGFzc3dvcmQuZW5jb2RlKCkgaWYgcGtjczEyX3Bhc3N3b3Jk IGVsc2UgTm9uZSwKLSsgICAgICAgICAgICAgICAgICAgIGJhY2tlbmQ9ZGVmYXVsdF9iYWNrZW5k KCkKLSsgICAgICAgICAgICAgICAgKQotKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMg ZToKLSsgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihmIkZhaWxlZCB0byBsb2FkIFBL Q1MjMTIgZmlsZToge2NlcnRfZmlsZX06IHtlfSIpCi0rCi0rICAgICAgICAgICAgaWYgY2VydCBp cyBOb25lOgotKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJQS0NTIzEyIGZpbGUg Y29udGFpbnMgbm8gY2VydGlmaWNhdGUiKQotKwotKyAgICAgICAgICAgIGRlcl9jZXJ0ID0gY2Vy dC5wdWJsaWNfYnl0ZXMoc2VyaWFsaXphdGlvbi5FbmNvZGluZy5ERVIpCi0rICAgICAgICAgICAg aWYgcHJpdmtleSBpcyBub3QgTm9uZToKLSsgICAgICAgICAgICAgICAgZGVyX3ByaXZrZXkgPSBw cml2a2V5LnByaXZhdGVfYnl0ZXMoCi0rICAgICAgICAgICAgICAgICAgICBlbmNvZGluZz1zZXJp YWxpemF0aW9uLkVuY29kaW5nLkRFUiwKLSsgICAgICAgICAgICAgICAgICAgIGZvcm1hdD1zZXJp YWxpemF0aW9uLlByaXZhdGVGb3JtYXQuUEtDUzgsCi0rICAgICAgICAgICAgICAgICAgICBlbmNy eXB0aW9uX2FsZ29yaXRobT1zZXJpYWxpemF0aW9uLk5vRW5jcnlwdGlvbigpCi0rICAgICAgICAg ICAgICAgICkKLSsgICAgICAgIGVsc2U6Ci0rICAgICAgICAgICAgdHJ5OgotKyAgICAgICAgICAg ICAgICBkZXJfY2VydCA9IHBlbV90b19kZXIoY2VydF9ieXRlcykgaWYgaXNfcGVtX2NlcnQoY2Vy dF9ieXRlcykgZWxzZSBjZXJ0X2J5dGVzCi0rICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBh cyBlOgotKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKGYiRmFpbGVkIHRvIHBhcnNl IGNlcnRpZmljYXRlICd7Y2VydF9maWxlfSc6IHtlfSIpCi0rCi0rICAgICAgICBpZiBjYSBhbmQg bm90IGNlcnRfaXNfY2EoY2VydF9maWxlKToKLSsgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y KGYiQ2VydGlmaWNhdGUgKHtuaWNrbmFtZX0pIGlzIG5vdCBhIENBIGNlcnRpZmljYXRlIikKLSsK LSsgICAgICAgIGF0dHJzID0gewotKyAgICAgICAgICAgICJjbiI6IFtuaWNrbmFtZS5lbmNvZGUo KV0sCi0rICAgICAgICAgICAgIm9iamVjdENsYXNzIjogW2IidG9wIiwgYiJleHRlbnNpYmxlT2Jq ZWN0Il0sCi0rICAgICAgICAgICAgRFlDQVRUUl9DRVJUREVSOiBbIGRlcl9jZXJ0LCBdCi0rICAg ICAgICB9Ci0rICAgICAgICBpZiBkZXJfcHJpdmtleToKLSsgICAgICAgICAgICBhdHRyc1tEWUNB VFRSX1BLRVlERVJdID0gW2Rlcl9wcml2a2V5XQotKwotKyAgICAgICAgaWYgY2E6Ci0rICAgICAg ICAgICAgYXR0cnNbRFlDQVRUUl9UUlVTVF0gPSBbYiJDVCwsIl0KLSsKLSsgICAgICAgIGlmIGZv cmNlOgotKyAgICAgICAgICAgIGF0dHJzW0RZQ0FUVFJfRk9SQ0VdID0gW2IiVFJVRSJdCi0rCi0r ICAgICAgICBpZiBub3QgZGVyX2NlcnQ6Ci0rICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihm IkZhaWxlZCB0byBleHRyYWN0IERFUiBieXRlcyBmcm9tIHtjZXJ0X2ZpbGV9IikKLSsKLSsgICAg ICAgICMgRXNjYXBlIHRoZSBDTiB0byBoYW5kbGUgc3BlY2lhbCBjaGFycyBpbiB0aGUgbmlja25h bWUKLSsgICAgICAgIGVzY2FwZWRfY24gPSBsZGFwLmRuLmVzY2FwZV9kbl9jaGFycyhuaWNrbmFt ZSkKLSsgICAgICAgIGRuID0gZW5zdXJlX3N0cihmImNuPXtlc2NhcGVkX2NufSx7c2VsZi5fYmFz ZWRufSIpCi0rICAgICAgICAjIFJhdyBDTiB1c2VkIGZvciBsb29rdXAKLSsgICAgICAgIGNlcnRf b2JqID0gc2VsZi5nZXRfY2VydF9vYmoobmlja25hbWUpCi0rICAgICAgICBpZiBub3QgY2VydF9v Ymo6Ci0rICAgICAgICAgICAgY2VydF9vYmogPSBEeW5hbWljQ2VydChzZWxmLl9pbnN0YW5jZSwg ZG4pCi0rICAgICAgICAgICAgY2VydF9vYmouY3JlYXRlKHByb3BlcnRpZXM9YXR0cnMpCi0rICAg ICAgICBlbHNlOgotKyAgICAgICAgICAgIGxvZy5pbmZvKGYiVXBkYXRpbmcgZXhpc3RpbmcgY2Vy dGlmaWNhdGU7IHtuaWNrbmFtZX0iKQotKyAgICAgICAgICAgIGF0dHJzX2xpc3QgPSBbKGF0dHIs IHZhbHMpIGZvciBhdHRyLCB2YWxzIGluIGF0dHJzLml0ZW1zKCldCi0rICAgICAgICAgICAgY2Vy dF9vYmoucmVwbGFjZV9tYW55KCphdHRyc19saXN0KQotKwotKyAgICBkZWYgYWRkX2NhX2NlcnQo c2VsZiwKLSsgICAgICAgICAgICAgICAgICAgIGNlcnRfZmlsZTogc3RyLAotKyAgICAgICAgICAg ICAgICAgICAgbmlja25hbWU6IHN0ciwKLSsgICAgICAgICAgICAgICAgICAgIHBrY3MxMl9wYXNz d29yZDogT3B0aW9uYWxbc3RyXSA9IE5vbmUsCi0rICAgICAgICAgICAgICAgICAgICBmb3JjZTog Ym9vbCA9IEZhbHNlCi0rICAgICAgICApOgotKyAgICAgICAgIiIiCi0rICAgICAgICBBZGQgYSBD QSBjZXJ0aWZpY2F0ZSBmcm9tIGEgUEVNIGJ1bmRsZSBvciBzaW5nbGUgUEVNL0RFUiBmaWxlLgot KwotKyAgICAgICAgOnBhcmFtIGNlcnRfZmlsZTogUGF0aCB0byB0aGUgY2VydGlmaWNhdGUgZmls ZSAoUEVNIG9yIERFUikKLSsgICAgICAgIDpwYXJhbSBuaWNrbmFtZTogQ2VydGlmaWNhdGUgbmlj a25hbWUKLSsgICAgICAgIDpwYXJhbSBwa2NzMTJfcGFzc3dvcmQ6IFBhc3N3b3JkIGZvciBQS0NT IzEyLCBpZiBhbnkKLSsgICAgICAgIDpwYXJhbSBmb3JjZTogRm9yY2UgdGhlIGFkZGl0aW9uIG9m IGEgY2VydGlmaWNhdGUgdGhhdCBjYW5ub3QgYmUgdmVyaWZpZWQKLSsgICAgICAgIDpyYWlzZXMg VmFsdWVFcnJvcjogSWYgZmlsZSBpcyBpbnZhbGlkIG9yIGZpbGUgZG9lcyBub3QgZXhpc3QKLSsg ICAgICAgICIiIgotKyAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGNlcnRfZmlsZSk6Ci0r ICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihmIkNlcnRpZmljYXRlIGZpbGUgZG9lcyBub3Qg ZXhpc3Q6IHtjZXJ0X2ZpbGV9IikKLSsKLSsgICAgICAgICMgTm9ybWFsaXNlIG5pY2tuYW1lKHMp Ci0rICAgICAgICBpZiBpc2luc3RhbmNlKG5pY2tuYW1lLCBzdHIpOgotKyAgICAgICAgICAgIG5p Y2tuYW1lcyA9IFtuaWNrbmFtZV0KLSsgICAgICAgIGVsaWYgaXNpbnN0YW5jZShuaWNrbmFtZSwg bGlzdCk6Ci0rICAgICAgICAgICAgbmlja25hbWVzID0gbmlja25hbWUKLSsgICAgICAgIGVsc2U6 Ci0rICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKGYibmlja25hbWUgbXVzdCBiZSBzdHIgb3Ig bGlzdFtzdHJdLCBnb3Qge3R5cGUobmlja25hbWUpfSIpCi0rCi0rICAgICAgICAjIFBFTSAobWF5 IGJlIGJ1bmRsZSkKLSsgICAgICAgIGlmIGNlcnRfZmlsZS5sb3dlcigpLmVuZHN3aXRoKCIucGVt Iik6Ci0rICAgICAgICAgICAgd2l0aCBvcGVuKGNlcnRfZmlsZSwgInIiKSBhcyBmOgotKyAgICAg ICAgICAgICAgICBwZW1fZGF0YSA9IGYucmVhZCgpCi0rCi0rICAgICAgICAgICAgcGVtX2NlcnRz ID0gcmUuZmluZGFsbCgKLSsgICAgICAgICAgICAgICAgciItLS0tLUJFR0lOIENFUlRJRklDQVRF LS0tLS0uKj8tLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tIiwKLSsgICAgICAgICAgICAgICAgcGVt X2RhdGEsCi0rICAgICAgICAgICAgICAgIHJlLkRPVEFMTAotKyAgICAgICAgICAgICkKLSsKLSsg ICAgICAgICAgICBpZiBub3QgcGVtX2NlcnRzOgotKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1 ZUVycm9yKCJObyBjZXJ0aWZpY2F0ZXMgZm91bmQgaW4gUEVNIGZpbGUiKQotKwotKyAgICAgICAg ICAgIHRlbXBfZmlsZXMgPSBbXQotKyAgICAgICAgICAgIHRyeToKLSsgICAgICAgICAgICAgICAg Zm9yIGlkeCwgY2VydCBpbiBlbnVtZXJhdGUocGVtX2NlcnRzKToKLSsgICAgICAgICAgICAgICAg ICAgIHdpdGggdGVtcGZpbGUuTmFtZWRUZW1wb3JhcnlGaWxlKGRlbGV0ZT1GYWxzZSwgc3VmZml4 PSIucGVtIiwgbW9kZT0idyIpIGFzIHRtcDoKLSsgICAgICAgICAgICAgICAgICAgICAgICB0bXAu d3JpdGUoY2VydC5zdHJpcCgpICsgIlxuIikKLSsgICAgICAgICAgICAgICAgICAgICAgICB0bXBf Y2VydF9wYXRoID0gdG1wLm5hbWUKLSsgICAgICAgICAgICAgICAgICAgIHRlbXBfZmlsZXMuYXBw ZW5kKHRtcF9jZXJ0X3BhdGgpCi0rCi0rICAgICAgICAgICAgICAgICAgICAjIERldGVybWluZSBu aWNrbmFtZSwgY291bGQgYmUgYSBsaXN0LCBvciBub3QgZW5vdWdoCi0rICAgICAgICAgICAgICAg ICAgICBpZiBpZHggPCBsZW4obmlja25hbWVzKToKLSsgICAgICAgICAgICAgICAgICAgICAgICBj YV9uaWNrID0gbmlja25hbWVzW2lkeF0KLSsgICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgY2FfbmljayA9IGYie25pY2tuYW1lc1stMV19e2lkeH0iCi0r Ci0rICAgICAgICAgICAgICAgICAgICAjIENoZWNrIHdlIGRvbnQgdHJhbXBsZSBvdmVyIGluc3Rh bGxlciBjZXJ0cwotKyAgICAgICAgICAgICAgICAgICAgaWYgY2Ffbmljay5sb3dlcigpIGluIChD RVJUX05BTUUubG93ZXIoKSwgQ0FfTkFNRS5sb3dlcigpKToKLSsgICAgICAgICAgICAgICAgICAg ICAgICByYWlzZSBWYWx1ZUVycm9yKGYiWW91IG1heSBub3QgaW1wb3J0IGEgQ0Egd2l0aCB0aGUg bmlja25hbWUge0NFUlRfTkFNRX0gb3Ige0NBX05BTUV9IikKLSsKLSsgICAgICAgICAgICAgICAg ICAgIGlmIG5vdCBjZXJ0X2lzX2NhKHRtcF9jZXJ0X3BhdGgpOgotKyAgICAgICAgICAgICAgICAg ICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoZiJDZXJ0aWZpY2F0ZSAoe2NhX25pY2t9KSBpcyBub3Qg YSBDQSBjZXJ0aWZpY2F0ZSIpCi0rCi0rICAgICAgICAgICAgICAgICAgICB0cnk6Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgIyBIYW5kbGUgZXhpc3RpbmcgTERBUCBvYmplY3QKLSsgICAgICAg ICAgICAgICAgICAgICAgICBpZiBzZWxmLmdldF9jZXJ0X2RldGFpbHMoY2Ffbmljayk6Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBmb3JjZToKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZiJDZXJ0aWZpY2F0ZSBhbHJlYWR5IGV4aXN0cyB3aXRoIHRoZSBzYW1l IG5hbWUgKHtjYV9uaWNrfSkiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsb2cuaW5mbyhmIk92ZXJ3cml0aW5nIGV4aXN0aW5nIENBIGNlcnQge2NhX25p Y2t9IikKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGVsX2NlcnQoY2Ff bmljaykKLSsgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgotKyAgICAgICAg ICAgICAgICAgICAgICAgIHBhc3MKLSsKLSsgICAgICAgICAgICAgICAgICAgIHNlbGYuYWRkX2Nl cnQoCi0rICAgICAgICAgICAgICAgICAgICAgICAgdG1wX2NlcnRfcGF0aCwKLSsgICAgICAgICAg ICAgICAgICAgICAgICBjYV9uaWNrLAotKyAgICAgICAgICAgICAgICAgICAgICAgIHBrY3MxMl9w YXNzd29yZD1wa2NzMTJfcGFzc3dvcmQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgY2E9VHJ1 ZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICBmb3JjZT1mb3JjZQotKyAgICAgICAgICAgICAg ICAgICAgKQotKwotKyAgICAgICAgICAgIGZpbmFsbHk6Ci0rICAgICAgICAgICAgICAgIGZvciB0 bXBfZmlsZSBpbiB0ZW1wX2ZpbGVzOgotKyAgICAgICAgICAgICAgICAgICAgdHJ5OgotKyAgICAg ICAgICAgICAgICAgICAgICAgIG9zLnJlbW92ZSh0bXBfZmlsZSkKLSsgICAgICAgICAgICAgICAg ICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6Ci0rICAgICAgICAgICAgICAgICAgICAgICAgbG9nLmRl YnVnKGYiRmFpbGVkIHRvIHJlbW92ZSB0bXAgY2VydCBmaWxlOiB7dG1wX2ZpbGV9OiB7ZX0iKQot KyAgICAgICAgZWxzZToKLSsgICAgICAgICAgICAjIFNpbmdsZSBiaW5hcnkgY2VydAotKyAgICAg ICAgICAgIGlmIGxlbihuaWNrbmFtZXMpICE9IDE6Ci0rICAgICAgICAgICAgICAgIHJhaXNlIFZh bHVlRXJyb3IoIlNpbmdsZSBjZXJ0IHJlcXVpcmVzIGV4YWN0bHkgb25lIG5pY2tuYW1lIikKLSsK LSsgICAgICAgICAgICBjYV9uaWNrID0gbmlja25hbWVzWzBdCi0rICAgICAgICAgICAgdHJ5Ogot KyAgICAgICAgICAgICAgICBpZiBzZWxmLmdldF9jZXJ0X2RldGFpbHMoY2Ffbmljayk6Ci0rICAg ICAgICAgICAgICAgICAgICBpZiBmb3JjZToKLSsgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LmRlbF9jZXJ0KGNhX25pY2spCi0rICAgICAgICAgICAgICAgICAgICBlbHNlOgotKyAgICAgICAg ICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoZiJDZXJ0aWZpY2F0ZSBhbHJlYWR5IGV4 aXN0czoge2NhX25pY2t9IikKLSsgICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKLSsgICAg ICAgICAgICAgICAgcGFzcwotKwotKyAgICAgICAgICAgIHNlbGYuYWRkX2NlcnQoY2VydF9maWxl LCBjYV9uaWNrLCBwa2NzMTJfcGFzc3dvcmQ9cGtjczEyX3Bhc3N3b3JkLCBjYT1UcnVlLCBmb3Jj ZT1mb3JjZSkKLSsKLSsgICAgZGVmIGRlbF9jZXJ0KHNlbGYsIG5pY2tuYW1lOiBzdHIpOgotKyAg ICAgICAgIiIiCi0rICAgICAgICBEZWxldGUgYSBjZXJ0aWZpY2F0ZS4KLSsKLSsgICAgICAgIDpw YXJhbSBuaWNrbmFtZTogVGhlIGNlcnRpZmljYXRlIG5pY2tuYW1lIHRvIGRlbGV0ZS4KLSsgICAg ICAgIDpyYWlzZXMgVmFsdWVFcnJvcjogSWYgdGhlIG5pY2tuYW1lIGlzIGVtcHR5IG9yIHRoZSBl bnRyeSBjYW5ub3QgYmUgZm91bmQuCi0rICAgICAgICAiIiIKLSsgICAgICAgIGlmIG5vdCBuaWNr bmFtZToKLSsgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJDZXJ0aWZpY2F0ZSBuaWNrbmFt ZSBjYW5ub3QgYmUgZW1wdHkiKQotKwotKyAgICAgICAgY2VydF9vYmogPSBzZWxmLmdldF9jZXJ0 X29iaihuaWNrbmFtZSkKLSsgICAgICAgIGlmIG5vdCBjZXJ0X29iajoKLSsgICAgICAgICAgICBy YWlzZSBWYWx1ZUVycm9yKGYiQ2VydGlmaWNhdGUgZW50cnkgbm90IGZvdW5kOiB7bmlja25hbWV9 IikKLSsKLSsgICAgICAgIGNlcnRfb2JqLmRlbF9jZXJ0KCkKLSsKLSsgICAgZGVmIGxpc3RfY2Vy dHMoc2VsZik6Ci0rICAgICAgICAiIiIKLSsgICAgICAgIExpc3QgYWxsIHNlcnZlciBjZXJ0aWZp Y2F0ZXMuCi0rCi0rICAgICAgICA6cmV0dXJuOiBBIGxpc3Qgb2YgY2VydGlmaWNhdGUgZGljdGlv bmFyaWVzIGZvciBlYWNoIGNlcnRpZmljYXRlCi0rICAgICAgICAiIiIKLSsgICAgICAgIGNlcnRf b2JqZWN0cyA9IHNlbGYubGlzdCgpCi0rICAgICAgICBjZXJ0cyA9IFtdCi0rICAgICAgICBmb3Ig Y2VydCBpbiBjZXJ0X29iamVjdHM6Ci0rICAgICAgICAgICAgaWYgY2VydC5fZG4gPT0gc2VsZi5f YmFzZWRuOgotKyAgICAgICAgICAgICAgICBjb250aW51ZQotKyAgICAgICAgICAgIGRlcl9jZXJ0 ID0gY2VydC5nZXRfYXR0cl92YWxzX2J5dGVzKERZQ0FUVFJfQ0VSVERFUilbMF0KLSsgICAgICAg ICAgICBpZiBkZXJfY2VydDoKLSsgICAgICAgICAgICAgICAgaWYgbm90IGNlcnRfaXNfY2EoZGVy X2NlcnQpOgotKyAgICAgICAgICAgICAgICAgICAgY2VydHMuYXBwZW5kKHsKLSsgICAgICAgICAg ICAgICAgICAgICAgICAiY24iOiBjZXJ0LmdldF9hdHRyX3ZhbHNfdXRmOChEWUNBVFRSX0NOKVsw XSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAic3ViamVjdCI6IGNlcnQuZ2V0X2F0dHJfdmFs c191dGY4KERZQ0FUVFJfU1VCSkVDVClbMF0sCi0rICAgICAgICAgICAgICAgICAgICAgICAgImlz c3VlciI6IGNlcnQuZ2V0X2F0dHJfdmFsc191dGY4KERZQ0FUVFJfSVNTVUVSKVswXSwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAiZXhwaXJlcyI6IGNlcnQuX25vcm1hbGlzZV90aW1lc3RhbXAo Y2VydC5nZXRfYXR0cl92YWxzX3V0ZjgoRFlDQVRUUl9OT1RBRlRFUilbMF0pLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICJ0cnVzdF9mbGFncyI6IGNlcnQuZ2V0X2F0dHJfdmFsc191dGY4KERZ Q0FUVFJfVFJVU1QpWzBdLAotKyAgICAgICAgICAgICAgICAgICAgfSkKLSsgICAgICAgIHJldHVy biBjZXJ0cwotKwotKyAgICBkZWYgbGlzdF9jYV9jZXJ0cyhzZWxmKToKLSsgICAgICAgICIiIgot KyAgICAgICAgTGlzdCBhbGwgY2EgY2VydGlmaWNhdGVzLgotKwotKyAgICAgICAgOnJldHVybjog QSBsaXN0IG9mIGNlcnRpZmljYXRlIGRpY3Rpb25hcmllcyBmb3IgZWFjaCBjZXJ0aWZpY2F0ZQot KyAgICAgICAgIiIiCi0rICAgICAgICBjZXJ0X29iamVjdHMgPSBzZWxmLmxpc3QoKQotKyAgICAg ICAgY2VydHMgPSBbXQotKyAgICAgICAgZm9yIGNlcnQgaW4gY2VydF9vYmplY3RzOgotKyAgICAg ICAgICAgIGlmIGNlcnQuX2RuID09IHNlbGYuX2Jhc2VkbjoKLSsgICAgICAgICAgICAgICAgY29u dGludWUKLSsgICAgICAgICAgICBkZXJfY2VydCA9IGNlcnQuZ2V0X2F0dHJfdmFsc19ieXRlcyhE WUNBVFRSX0NFUlRERVIpWzBdCi0rICAgICAgICAgICAgaWYgZGVyX2NlcnQ6Ci0rICAgICAgICAg ICAgICAgIGlmIGNlcnRfaXNfY2EoZGVyX2NlcnQpOgotKyAgICAgICAgICAgICAgICAgICAgY2Vy dHMuYXBwZW5kKHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAiY24iOiBjZXJ0LmdldF9hdHRy X3ZhbHNfdXRmOChEWUNBVFRSX0NOKVswXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAic3Vi amVjdCI6IGNlcnQuZ2V0X2F0dHJfdmFsc191dGY4KERZQ0FUVFJfU1VCSkVDVClbMF0sCi0rICAg ICAgICAgICAgICAgICAgICAgICAgImlzc3VlciI6IGNlcnQuZ2V0X2F0dHJfdmFsc191dGY4KERZ Q0FUVFJfSVNTVUVSKVswXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAiZXhwaXJlcyI6IGNl cnQuX25vcm1hbGlzZV90aW1lc3RhbXAoY2VydC5nZXRfYXR0cl92YWxzX3V0ZjgoRFlDQVRUUl9O T1RBRlRFUilbMF0pLAotKyAgICAgICAgICAgICAgICAgICAgICAgICJ0cnVzdF9mbGFncyI6IGNl cnQuZ2V0X2F0dHJfdmFsc191dGY4KERZQ0FUVFJfVFJVU1QpWzBdLAotKyAgICAgICAgICAgICAg ICAgICAgfSkKLSsgICAgICAgIHJldHVybiBjZXJ0cwotKwotKyAgICBkZWYgZ2V0X2NlcnRfb2Jq KHNlbGYsIG5pY2tuYW1lOiBzdHIpOgotKyAgICAgICAgIiIiCi0rICAgICAgICBSZXRyaWV2ZSBh IGNlcnRpZmljYXRlIG9iamVjdC4KLSsKLSsgICAgICAgIDpwYXJhbSBjbjogQ2VydGlmaWNhdGUg bmlja25hbWUKLSsgICAgICAgIDpyYWlzZXMgVmFsdWVFcnJvcjogSWYgdGhlIGNuIGlzIGVtcHR5 Ci0rICAgICAgICA6cmV0dXJuOiBEeW5hbWljQ2VydCBvYmplY3QgaWYgZm91bmQsIGVsc2UgTm9u ZQotKyAgICAgICAgIiIiCi0rICAgICAgICBpZiBub3Qgbmlja25hbWU6Ci0rICAgICAgICAgICAg cmFpc2UgVmFsdWVFcnJvcigiQ2VydGlmaWNhdGUgQ04gY2Fubm90IGJlIGVtcHR5IikKLSsgICAg ICAgIHRyeToKLSsgICAgICAgICAgICBjZXJ0ID0gc2VsZi5nZXQobmlja25hbWUpCi0rICAgICAg ICBleGNlcHQgbGRhcC5OT19TVUNIX09CSkVDVDoKLSsgICAgICAgICAgICByZXR1cm4gTm9uZQot KwotKyAgICAgICAgcmV0dXJuIGNlcnQKLSsKLSsgICAgZGVmIGdldF9jZXJ0X2RldGFpbHMoc2Vs Ziwgbmlja25hbWU6IHN0cik6Ci0rICAgICAgICAiIiIKLSsgICAgICAgIEdldCBhIGNlcnRpZmlj YXRlcyBkZXRhaWxzLgotKwotKyAgICAgICAgOnBhcmFtIG5pY2tuYW1lOiBDZXJ0aWZpY2F0ZSBu aWNrbmFtZQotKyAgICAgICAgOnJhaXNlcyBWYWx1ZUVycm9yOiBJZiB0aGUgbmlja25hbWUgaXMg ZW1wdHkKLSsgICAgICAgIDpyZXR1cm46IER5bmFtaWNDZXJ0IG9iamVjdCBpZiBmb3VuZCwgZWxz ZSBOb25lCi0rICAgICAgICAiIiIKLSsgICAgICAgIGlmIG5vdCBuaWNrbmFtZToKLSsgICAgICAg ICAgICByYWlzZSBWYWx1ZUVycm9yKCJDZXJ0aWZpY2F0ZSBDTiBjYW5ub3QgYmUgZW1wdHkiKQot KyAgICAgICAgdHJ5OgotKyAgICAgICAgICAgIGNlcnQgPSBzZWxmLmdldChuaWNrbmFtZSkKLSsg ICAgICAgIGV4Y2VwdCBsZGFwLk5PX1NVQ0hfT0JKRUNUOgotKyAgICAgICAgICAgIHJldHVybiBO b25lCi0rCi0rICAgICAgICByZXR1cm4gewotKyAgICAgICAgICAgICJjbiI6IGNlcnQuZ2V0X2F0 dHJfdmFsc191dGY4KERZQ0FUVFJfQ04pWzBdLAotKyAgICAgICAgICAgICJzdWJqZWN0IjogY2Vy dC5nZXRfYXR0cl92YWxzX3V0ZjgoRFlDQVRUUl9TVUJKRUNUKVswXSwKLSsgICAgICAgICAgICAi aXNzdWVyIjogY2VydC5nZXRfYXR0cl92YWxzX3V0ZjgoRFlDQVRUUl9JU1NVRVIpWzBdLAotKyAg ICAgICAgICAgICJleHBpcmVzIjogY2VydC5fbm9ybWFsaXNlX3RpbWVzdGFtcChjZXJ0LmdldF9h dHRyX3ZhbHNfdXRmOChEWUNBVFRSX05PVEFGVEVSKVswXSksCi0rICAgICAgICAgICAgInRydXN0 X2ZsYWdzIjogY2VydC5nZXRfYXR0cl92YWxzX3V0ZjgoRFlDQVRUUl9UUlVTVClbMF0sCi0rICAg ICAgICB9Ci0rCi0rICAgIGRlZiBlZGl0X2NlcnRfdHJ1c3Qoc2VsZiwgbmlja25hbWU6IHN0ciwg dHJ1c3RfZmxhZ3M6IHN0cik6Ci0rICAgICAgICAiIiIKLSsgICAgICAgIEVkaXQgdHJ1c3QgZmxh Z3Mgb24gYW4gZXhpc3RpbmcgY2VydGlmaWNhdGUuCi0rCi0rICAgICAgICA6cGFyYW0gbmlja25h bWU6IENlcnRpZmljYXRlIG5pY2tuYW1lCi0rICAgICAgICA6cGFyYW0gdHJ1c3RfZmxhZ3M6IDMg ZmllbGQgTlNTIHRydXN0IHN0cmluZwotKyAgICAgICAgIiIiCi0rICAgICAgICBjZXJ0X29iaiA9 IHNlbGYuZ2V0X2NlcnRfb2JqKG5pY2tuYW1lKQotKyAgICAgICAgaWYgbm90IGNlcnRfb2JqOgot KyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoZiJDZXJ0aWZpY2F0ZSB7bmlja25hbWV9IGRv ZXMgbm90IGV4aXN0IikKLSsKLSsgICAgICAgIHRyeToKLSsgICAgICAgICAgICBjZXJ0X29iai5l ZGl0X3RydXN0KHRydXN0X2ZsYWdzPXRydXN0X2ZsYWdzKQotKyAgICAgICAgZXhjZXB0IFZhbHVl RXJyb3IgYXMgdmU6Ci0rICAgICAgICAgICAgbG9nLmVycm9yKGYiSW52YWxpZCBpbnB1dCBmb3Ig Y2VydGlmaWNhdGUgJ3tuaWNrbmFtZX0nOiB7dmV9IikKLSsgICAgICAgICAgICByYWlzZQotKyAg ICAgICAgZXhjZXB0IGxkYXAuTERBUEVycm9yIGFzIGxlOgotKyAgICAgICAgICAgIGxvZy5lcnJv cihmIkxEQVAgZXJyb3Igd2hpbGUgdXBkYXRpbmcgY2VydGlmaWNhdGUgJ3tuaWNrbmFtZX0nOiB7 bGV9IikKLSsgICAgICAgICAgICByYWlzZQotKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBl OgotKyAgICAgICAgICAgIGxvZy5lcnJvcihmIlVuZXhwZWN0ZWQgZXJyb3Igd2hpbGUgdXBkYXRp bmcgY2VydGlmaWNhdGUgJ3tuaWNrbmFtZX0nOiB7ZX0iKQotKyAgICAgICAgICAgIHJhaXNlCi1k aWZmIC0tZ2l0IGEvc3JjL2xpYjM4OS9saWIzODkvbnNzX3NzbC5weSBiL3NyYy9saWIzODkvbGli Mzg5L25zc19zc2wucHkKLWluZGV4IDJmZDJiOWI4OS4uNzY0NDM0MTY2IDEwMDY0NAotLS0tIGEv c3JjL2xpYjM4OS9saWIzODkvbnNzX3NzbC5weQotKysrIGIvc3JjL2xpYjM4OS9saWIzODkvbnNz X3NzbC5weQotQEAgLTEsNSArMSw1IEBACi0gIyAtLS0gQkVHSU4gQ09QWVJJR0hUIEJMT0NLIC0t LQotLSMgQ29weXJpZ2h0IChDKSAyMDIzIFJlZCBIYXQsIEluYy4KLSsjIENvcHlyaWdodCAoQykg MjAyNiBSZWQgSGF0LCBJbmMuCi0gIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotICMKLSAjIExpY2Vu c2U6IEdQTCAodmVyc2lvbiAzIG9yIGFueSBsYXRlciB2ZXJzaW9uKS4KLUBAIC0xOCw2ICsxOCw3 IEBAIGltcG9ydCBzaHV0aWwKLSBpbXBvcnQgbG9nZ2luZwotIGltcG9ydCBzdWJwcm9jZXNzCi0g aW1wb3J0IHV1aWQKLStmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwKLSBmcm9tIGRhdGV0aW1l IGltcG9ydCBkYXRldGltZSwgdGltZWRlbHRhCi0gZnJvbSBzdWJwcm9jZXNzIGltcG9ydCBjaGVj a19vdXRwdXQsIHJ1biwgUElQRQotIGZyb20gbGliMzg5LnBhc3N3ZCBpbXBvcnQgcGFzc3dvcmRf Z2VuZXJhdGUKLUBAIC0yNSw3ICsyNiw2IEBAIGZyb20gbGliMzg5Ll9tYXBwZWRfb2JqZWN0X2xp bnQgaW1wb3J0IERTTGludAotIGZyb20gbGliMzg5LmxpbnQgaW1wb3J0IERTQ0VSVExFMDAwMSwg RFNDRVJUTEUwMDAyCi0gZnJvbSBsaWIzODkudXRpbHMgaW1wb3J0IGVuc3VyZV9zdHIsIGZvcm1h dF9jbWRfbGlzdCwgRFNWZXJzaW9uLCBjZXJ0X2lzX2NhCi0gCi0tCi0gS0VZQklUUyA9IDQwOTYK LSBDQV9OQU1FID0gJ1NlbGYtU2lnbmVkLUNBJwotIENFUlRfTkFNRSA9ICdTZXJ2ZXItQ2VydCcK LUBAIC04NSw5ICs4NSw4IEBAIGNsYXNzIE5zc1NzbChEU0xpbnQpOgotICAgICAgICAgYWxsX2Nl cnRzID0gc2VsZi5fcnNhX2NlcnRfbGlzdCgpCi0gICAgICAgICBmb3IgY2VydCBpbiBhbGxfY2Vy dHM6Ci0gICAgICAgICAgICAgY2VydF9saXN0LmFwcGVuZChzZWxmLmdldF9jZXJ0X2RldGFpbHMo Y2VydFswXSkpCi0tCi0gICAgICAgICBmb3IgY2VydCBpbiBjZXJ0X2xpc3Q6Ci0tICAgICAgICAg ICAgY2VydF9kYXRlID0gY2VydFszXS5zcGxpdCgpWzBdCi0rICAgICAgICAgICAgY2VydF9kYXRl ID0gY2VydFsnZXhwaXJlcyddLnNwbGl0KClbMF0KLSAgICAgICAgICAgICBkaWZmX2RhdGUgPSBk YXRldGltZS5zdHJwdGltZShjZXJ0X2RhdGUsICclWS0lbS0lZCcpLmRhdGUoKSAtIGRhdGV0aW1l LnRvZGF5KCkuZGF0ZSgpCi0gICAgICAgICAgICAgaWYgZGlmZl9kYXRlIDwgdGltZWRlbHRhKGRh eXM9MCk6Ci0gICAgICAgICAgICAgICAgICMgRXhwaXJlZAotQEAgLTEwOTksMTIgKzEwOTgsMTIg QEAgb25seS4KLSAgICAgZGVmIGdldF9jZXJ0X2RldGFpbHMoc2VsZiwgbmlja25hbWUpOgotICAg ICAgICAgIiIiR2V0IHRoZSB0cnVzdCBmbGFncywgc3ViamVjdCBETiwgaXNzdWVyLCBhbmQgZXhw aXJhdGlvbiBkYXRlCi0gCi0tICAgICAgICByZXR1cm4gYSBsaXN0OgotLSAgICAgICAgICAgIDAg LSBuaWNrbmFtZQotLSAgICAgICAgICAgIDEgLSBzdWJqZWN0Ci0tICAgICAgICAgICAgMiAtIGlz c3VlcgotLSAgICAgICAgICAgIDMgLSBleHBpcmUgZGF0ZQotLSAgICAgICAgICAgIDQgLSB0cnVz dF9mbGFncwotKyAgICAgICAgOnJldHVybjogZGljdCBjb250YWluaW5nIGNlcnRpZmljYXRlIGRl dGFpbHMgd2l0aCBrZXlzOgotKyAgICAgICAgICAgIC0gImNuIiAgICAgICAgICA6IENlcnRpZmlj YXRlIG5pY2tuYW1lIChzdHIpCi0rICAgICAgICAgICAgLSAic3ViamVjdCIgICAgIDogU3ViamVj dCBETiAoc3RyKQotKyAgICAgICAgICAgIC0gImlzc3VlciIgICAgICA6IElzc3VlciBETiAoc3Ry KQotKyAgICAgICAgICAgIC0gImV4cGlyZXMiICAgICA6IEV4cGlyYXRpb24gZGF0ZS90aW1lIGFz IGEgc3RyaW5nIChZWVlZLU1NLUREIEhIOk1NOlNTKQotKyAgICAgICAgICAgIC0gInRydXN0X2Zs YWdzIiA6IFRydXN0IGZsYWdzIGZyb20gTlNTIChzdHIpCi0gICAgICAgICAiIiIKLSAgICAgICAg IGFsbF9jZXJ0cyA9IHNlbGYuX3JzYV9jZXJ0X2xpc3QoKQotICAgICAgICAgZm9yIGNlcnQgaW4g YWxsX2NlcnRzOgotQEAgLTExNDIsMjYgKzExNDEsMzMgQEAgb25seS4KLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaXNzdWVyID0gaXNzdWVyWzE6LTFdCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGJyZWFrCi0gCi0tICAgICAgICAgICAgICAgIHJldHVybiAoW25pY2tuYW1lLCAg c3ViamVjdCwgaXNzdWVyLCBzdHIoZW5kX2RhdGUpLCB0cnVzdF9mbGFnc10pCi0rICAgICAgICAg ICAgICAgIHJldHVybiB7Ci0rICAgICAgICAgICAgICAgICAgICAiY24iOiBuaWNrbmFtZSwKLSsg ICAgICAgICAgICAgICAgICAgICJzdWJqZWN0Ijogc3ViamVjdCwKLSsgICAgICAgICAgICAgICAg ICAgICJpc3N1ZXIiOiBpc3N1ZXIsCi0rICAgICAgICAgICAgICAgICAgICAiZXhwaXJlcyI6IHN0 cihlbmRfZGF0ZSksCi0rICAgICAgICAgICAgICAgICAgICAidHJ1c3RfZmxhZ3MiOiB0cnVzdF9m bGFncywKLSsgICAgICAgICAgICAgICAgfQotIAotLSAgICAgICAgIyBEaWQgbm90IGZpbmQgY2Vy dCB3aXRoIHRoYXQgbmFtZQotLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiQ2VydGlmaWNhdGUg J3t9JyBub3QgZm91bmQgaW4gTlNTIGRhdGFiYXNlIi5mb3JtYXQobmlja25hbWUpKQotKyAgICAg ICAgcmV0dXJuIE5vbmUKLSAKLSAgICAgZGVmIGxpc3RfY2VydHMoc2VsZiwgY2E9RmFsc2UpOgot ICAgICAgICAgYWxsX2NlcnRzID0gc2VsZi5fcnNhX2NlcnRfbGlzdCgpCi0gICAgICAgICBjZXJ0 cyA9IFtdCi0tICAgICAgICBmb3IgY2VydCBpbiBhbGxfY2VydHM6Ci0tICAgICAgICAgICAgdHJ1 c3RfZmxhZ3MgPSBjZXJ0WzFdCi0rICAgICAgICBmb3Igbmlja25hbWUsIHRydXN0X2ZsYWdzIGlu IGFsbF9jZXJ0czoKLSAgICAgICAgICAgICBpZiAoY2EgYW5kICJDVCIgaW4gdHJ1c3RfZmxhZ3Mp IG9yIChub3QgY2EgYW5kICJDVCIgbm90IGluIHRydXN0X2ZsYWdzKToKLS0gICAgICAgICAgICAg ICAgY2VydHMuYXBwZW5kKHNlbGYuZ2V0X2NlcnRfZGV0YWlscyhjZXJ0WzBdKSkKLSsgICAgICAg ICAgICAgICAgY2VydF9kZXRhaWxzID0gc2VsZi5nZXRfY2VydF9kZXRhaWxzKG5pY2tuYW1lKQot KyAgICAgICAgICAgICAgICBjZXJ0cy5hcHBlbmQoY2VydF9kZXRhaWxzKQotICAgICAgICAgcmV0 dXJuIGNlcnRzCi0gCi0gICAgIGRlZiBsaXN0X2NhX2NlcnRzKHNlbGYpOgotLSAgICAgICAgcmV0 dXJuIFsKLS0gICAgICAgICAgICBjZXJ0Ci0tICAgICAgICAgICAgZm9yIGNlcnQgaW4gc2VsZi5f cnNhX2NlcnRfbGlzdCgpCi0tICAgICAgICAgICAgaWYgc2VsZi5fcnNhX2NlcnRfaXNfY2F0cnVz dChjZXJ0KQotLSAgICAgICAgXQotKyAgICAgICAgY2FfY2VydHMgPSBbXQotKyAgICAgICAgZm9y IGNlcnQgaW4gc2VsZi5fcnNhX2NlcnRfbGlzdCgpOgotKyAgICAgICAgICAgIGlmIHNlbGYuX3Jz YV9jZXJ0X2lzX2NhdHJ1c3QoY2VydCk6Ci0rICAgICAgICAgICAgICAgICMgY2VydFswXSBpcyB0 aGUgbmlja25hbWUKLSsgICAgICAgICAgICAgICAgY2VydF9kZXRhaWxzID0gc2VsZi5nZXRfY2Vy dF9kZXRhaWxzKGNlcnRbMF0pCi0rICAgICAgICAgICAgICAgIGNhX2NlcnRzLmFwcGVuZChjZXJ0 X2RldGFpbHMpCi0rICAgICAgICByZXR1cm4gY2FfY2VydHMKLSAKLSAgICAgZGVmIGxpc3RfY2xp ZW50X2NhX2NlcnRzKHNlbGYpOgotICAgICAgICAgcmV0dXJuIFsKLUBAIC0xMTcwLDQxICsxMTc2 LDEwNyBAQCBvbmx5LgotICAgICAgICAgICAgIGlmIHNlbGYuX3JzYV9jZXJ0X2lzX2NhY2xpZW50 dHJ1c3QoY2VydCkKLSAgICAgICAgIF0KLSAKLS0gICAgZGVmIGFkZF9jZXJ0KHNlbGYsIG5pY2tu YW1lLCBpbnB1dF9maWxlLCBjYT1GYWxzZSk6Ci0rICAgIGRlZiBhZGRfY2VydChzZWxmLAotKyAg ICAgICAgICAgICAgICAgbmlja25hbWU6IHN0ciwKLSsgICAgICAgICAgICAgICAgIGNlcnRfZmls ZTogc3RyLAotKyAgICAgICAgICAgICAgICAgcGtjczEyX3Bhc3N3b3JkOiBPcHRpb25hbFtzdHJd ID0gTm9uZSwKLSsgICAgICAgICAgICAgICAgIGNhOiBib29sID0gRmFsc2UsCi0rICAgICAgICAg ICAgICAgICBmb3JjZTogYm9vbCA9IEZhbHNlKToKLSAgICAgICAgICIiIkFkZCBzZXJ2ZXIgb3Ig Q0EgY2VydAotKwotKyAgICAgICAgOnBhcmFtIG5pY2tuYW1lOiBDZXJ0aWZpY2F0ZSBuaWNrbmFt ZQotKyAgICAgICAgOnBhcmFtIGNlcnRfZmlsZTogUGF0aCB0byBjZXJ0aWZpY2F0ZSBmaWxlIChQ RU0sIERFUiwgb3IgUEtDUyMxMikKLSsgICAgICAgIDpwYXJhbSBjYTogV2hldGhlciB0aGlzIGlz IGEgQ0EgY2VydGlmaWNhdGUKLSsgICAgICAgIDpwYXJhbSBwa2NzMTJfcGFzc3dvcmQ6IFBhc3N3 b3JkIGZvciBQS0NTIzEyLCBpZiBhbnkKLSsgICAgICAgIDpwYXJhbSBmb3JjZTogRm9yY2UgdGhl IGFkZGl0aW9uIG9mIGEgY2VydGlmaWNhdGUgdGhhdCBjYW5ub3QgYmUgdmVyaWZpZWQKLSAgICAg ICAgICIiIgotKyAgICAgICAgaWYgbm90IG5pY2tuYW1lOgotKyAgICAgICAgICAgIHJhaXNlIFZh bHVlRXJyb3IoIkNlcnRpZmljYXRlIG5pY2tuYW1lIG11c3Qgbm90IGJlIGVtcHR5IikKLSAKLSAg ICAgICAgICMgVmVyaWZ5IGlucHV0X2ZpbGUgZXhpc3RzCi0tICAgICAgICBpZiBub3Qgb3MucGF0 aC5leGlzdHMoaW5wdXRfZmlsZSk6Ci0tICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiVGhl IGNlcnRpZmljYXRlIGZpbGUgKHt9KSBkb2VzIG5vdCBleGlzdCIuZm9ybWF0KGlucHV0X2ZpbGUp KQotKyAgICAgICAgaWYgbm90IG9zLnBhdGguaXNmaWxlKGNlcnRfZmlsZSk6Ci0rICAgICAgICAg ICAgcmFpc2UgVmFsdWVFcnJvcigiVGhlIGNlcnRpZmljYXRlIGZpbGUgKHt9KSBkb2VzIG5vdCBl eGlzdCIuZm9ybWF0KGNlcnRfZmlsZSkpCi0gCi0gICAgICAgICBwZW1fZmlsZSA9IFRydWUKLS0g ICAgICAgIGlmIG5vdCBpbnB1dF9maWxlLmxvd2VyKCkuZW5kc3dpdGgoIi5wZW0iKToKLSsgICAg ICAgIGlmIG5vdCBjZXJ0X2ZpbGUubG93ZXIoKS5lbmRzd2l0aCgiLnBlbSIpOgotICAgICAgICAg ICAgIHBlbV9maWxlID0gRmFsc2UKLSAgICAgICAgIGVsc2U6Ci0tICAgICAgICAgICAgc2VsZi5f YXNzZXJ0X25vdF9jaGFpbihpbnB1dF9maWxlKQotKyAgICAgICAgICAgIHNlbGYuX2Fzc2VydF9u b3RfY2hhaW4oY2VydF9maWxlKQotIAotICAgICAgICAgaWYgY2E6Ci0gICAgICAgICAgICAgIyBW ZXJpZnkgdGhpcyBpcyBhIENBIGNlcnQKLS0gICAgICAgICAgICBpZiBub3QgY2VydF9pc19jYShp bnB1dF9maWxlKToKLSsgICAgICAgICAgICBpZiBub3QgY2VydF9pc19jYShjZXJ0X2ZpbGUpOgot ICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKGYiQ2VydGlmaWNhdGUgKHtuaWNrbmFt ZX0pIGlzIG5vdCBhIENBIGNlcnRpZmljYXRlIikKLSAgICAgICAgICAgICB0cnVzdF9mbGFncyA9 ICJDVCwsIgotICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAjIFZlcmlmeSB0aGlzIGlzIGEg c2VydmVyIGNlcnQKLS0gICAgICAgICAgICBpZiBjZXJ0X2lzX2NhKGlucHV0X2ZpbGUpOgotKyAg ICAgICAgICAgIGlmIGNlcnRfaXNfY2EoY2VydF9maWxlLCBwa2NzMTJfcGFzc3dvcmQ9cGtjczEy X3Bhc3N3b3JkKToKLSAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihmIkNlcnRpZmlj YXRlICh7bmlja25hbWV9KSBpcyBub3QgYSBzZXJ2ZXIgY2VydGlmaWNhdGUiKQotICAgICAgICAg ICAgIHRydXN0X2ZsYWdzID0gIiwsIgotIAotKyAgICAgICAgcGtjczEyX2ZpbGUgPSBOb25lCi0r ICAgICAgICBpZiBjZXJ0X2ZpbGUubG93ZXIoKS5lbmRzd2l0aCgoIi5wMTIiLCAiLnBmeCIpKToK LSsgICAgICAgICAgICBwa2NzMTJfZmlsZSA9IFRydWUKLSsKLSsgICAgICAgIGlmIHBrY3MxMl9m aWxlOgotKyAgICAgICAgICAgIHNlbGYubG9nLmluZm8oIkltcG9ydGluZyBQS0NTIzEyIGludG8g TlNTOiAlcyIsIGNlcnRfZmlsZSkKLSsKLSsgICAgICAgICAgICBpZiBwa2NzMTJfcGFzc3dvcmQg aXMgTm9uZToKLSsgICAgICAgICAgICAgICAgcGtjczEyX3Bhc3N3b3JkID0gIiIKLSsKLSsgICAg ICAgICAgICBjbWQgPSBbCi0rICAgICAgICAgICAgICAgICJwazEydXRpbCIsCi0rICAgICAgICAg ICAgICAgICItdiIsCi0rICAgICAgICAgICAgICAgICItbiIsIG5pY2tuYW1lLAotKyAgICAgICAg ICAgICAgICAiLWkiLCBjZXJ0X2ZpbGUsCi0rICAgICAgICAgICAgICAgICItZCIsIHNlbGYuX2Nl cnRkYiwKLSsgICAgICAgICAgICAgICAgIi1rIiwgZiJ7c2VsZi5fY2VydGRifS97UFdEX1RYVH0i LAotKyAgICAgICAgICAgICAgICAiLVciLCBwa2NzMTJfcGFzc3dvcmQsCi0rICAgICAgICAgICAg XQotKwotKyAgICAgICAgICAgICMgTWFzayB0aGUgcGFzc3dvcmQgaW4gbG9ncwotKyAgICAgICAg ICAgIG1hc2tlZF9jbWQgPSBbYXJnIGlmIGFyZyAhPSBwa2NzMTJfcGFzc3dvcmQgZWxzZSAiKioq KiIgZm9yIGFyZyBpbiBjbWRdCi0rICAgICAgICAgICAgc2VsZi5sb2cuaW5mbyhmIm5zcyBpbXBv cnQgcDEyIGNtZDoge2Zvcm1hdF9jbWRfbGlzdChtYXNrZWRfY21kKX0iLCApCi0rICAgICAgICAg ICAgdHJ5OgotKyAgICAgICAgICAgICAgICBjaGVja19vdXRwdXQoY21kLCBzdGRlcnI9c3VicHJv Y2Vzcy5TVERPVVQpCi0rICAgICAgICAgICAgZXhjZXB0IHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vz c0Vycm9yIGFzIGU6Ci0rICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoZiJGYWlsZWQg dG8gaW1wb3J0IFBLQ1MjMTIge2NlcnRfZmlsZX0ge2V9IikKLSsKLSsgICAgICAgICAgICBpZiBj YToKLSsgICAgICAgICAgICAgICAgY21kID0gWwotKyAgICAgICAgICAgICAgICAgICAgImNlcnR1 dGlsIiwKLSsgICAgICAgICAgICAgICAgICAgICItTSIsCi0rICAgICAgICAgICAgICAgICAgICAi LW4iLCBuaWNrbmFtZSwKLSsgICAgICAgICAgICAgICAgICAgICItdCIsICJDVCwsIiwKLSsgICAg ICAgICAgICAgICAgICAgICItZCIsIHNlbGYuX2NlcnRkYiwKLSsgICAgICAgICAgICAgICAgICAg ICItZiIsIGYie3NlbGYuX2NlcnRkYn0ve1BXRF9UWFR9IiwKLSsgICAgICAgICAgICAgICAgXQot KyAgICAgICAgICAgICAgICBzZWxmLmxvZy5kZWJ1ZyhmInNldCBDQSB0cnVzdCBjbWQ6IHtmb3Jt YXRfY21kX2xpc3QoY21kKX0iKQotKyAgICAgICAgICAgICAgICB0cnk6Ci0rICAgICAgICAgICAg ICAgICAgICBjaGVja19vdXRwdXQoY21kLCBzdGRlcnI9c3VicHJvY2Vzcy5TVERPVVQpCi0rICAg ICAgICAgICAgICAgIGV4Y2VwdCBzdWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJvciBhcyBlOgot KyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihmIkZhaWxlZCB0byBzZXQgQ0Eg dHJ1c3QgZm9yIHtuaWNrbmFtZX0ge2V9IikKLSsKLSsgICAgICAgICAgICByZXR1cm4KLSsKLSsg ICAgICAgIHBlbV9maWxlID0gY2VydF9maWxlLmxvd2VyKCkuZW5kc3dpdGgoIi5wZW0iKQotKyAg ICAgICAgaWYgcGVtX2ZpbGU6Ci0rICAgICAgICAgICAgc2VsZi5fYXNzZXJ0X25vdF9jaGFpbihj ZXJ0X2ZpbGUpCi0rCi0rICAgICAgICB0cnVzdF9mbGFncyA9ICJDVCwsIiBpZiBjYSBlbHNlICIs LCIKLSsKLSAgICAgICAgIGNtZCA9IFsKLSAgICAgICAgICAgICAnL3Vzci9iaW4vY2VydHV0aWwn LAotICAgICAgICAgICAgICctQScsCi0gICAgICAgICAgICAgJy1kJywgc2VsZi5fY2VydGRiLAot ICAgICAgICAgICAgICctbicsIG5pY2tuYW1lLAotICAgICAgICAgICAgICctdCcsIHRydXN0X2Zs YWdzLAotLSAgICAgICAgICAgICctaScsIGlucHV0X2ZpbGUsCi0rICAgICAgICAgICAgJy1pJywg Y2VydF9maWxlLAotICAgICAgICAgICAgICctZicsCi0gICAgICAgICAgICAgJyVzLyVzJyAlIChz ZWxmLl9jZXJ0ZGIsIFBXRF9UWFQpLAotKwotICAgICAgICAgXQotKwotICAgICAgICAgaWYgcGVt X2ZpbGU6Ci0gICAgICAgICAgICAgY21kLmFwcGVuZCgnLWEnKQotIAotQEAgLTEyNzAsNiArMTM0 Miw2MiBAQCBvbmx5LgotICAgICAgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKHAxMl9idW5kbGUp OgotICAgICAgICAgICAgICAgICBvcy5yZW1vdmUocDEyX2J1bmRsZSkKLSAKLSsgICAgZGVmIGFk ZF9jYV9jZXJ0KHNlbGYsIGNlcnRfZmlsZTogc3RyLCBuaWNrbmFtZTogc3RyLCBmb3JjZTogYm9v bCA9IEZhbHNlKToKLSsgICAgICAgICIiIgotKyAgICAgICAgQWRkIGEgQ0EgY2VydGlmaWNhdGUg ZnJvbSBhIFBFTSBidW5kbGUgb3Igc2luZ2xlIFBFTS9ERVIgZmlsZS4KLSsKLSsgICAgICAgIEFk YXB0ZXIgZnVuY3Rpb24gdG8gbWF0Y2ggYWJzdHJhY3Rpb24gbGF5ZXIgaW50ZXJmYWNlLgotKwot KyAgICAgICAgOnBhcmFtIGNlcnRfZmlsZTogcGF0aCB0byB0aGUgY2VydGlmaWNhdGUgZmlsZQot KyAgICAgICAgOnBhcmFtIG5pY2tuYW1lOiBuaWNrbmFtZSB0byBhc3NpZ24KLSsgICAgICAgIDpw YXJhbSBmb3JjZTogRm9yY2UgdGhlIGFkZGl0aW9uIG9mIGEgY2VydGlmaWNhdGUgdGhhdCBjYW5u b3QgYmUgdmVyaWZpZWQKLSsgICAgICAgICIiIgotKyAgICAgICAgIyBWZXJpZnkgaW5wdXRfZmls ZSBleGlzdHMKLSsgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhjZXJ0X2ZpbGUpOgotKyAg ICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoZiJUaGUgY2VydGlmaWNhdGUgZmlsZSAoe2NlcnRf ZmlsZX0pIGRvZXMgbm90IGV4aXN0IikKLSsKLSsgICAgICAgICMgTm9ybWFsaXNlIG5pY2tuYW1l KHMpCi0rICAgICAgICBpZiBpc2luc3RhbmNlKG5pY2tuYW1lLCBsaXN0KToKLSsgICAgICAgICAg ICBuaWNrbmFtZXMgPSBuaWNrbmFtZQotKyAgICAgICAgZWxpZiBpc2luc3RhbmNlKG5pY2tuYW1l LCBzdHIpOgotKyAgICAgICAgICAgIG5pY2tuYW1lcyA9IFtuaWNrbmFtZV0KLSsgICAgICAgIGVs c2U6Ci0rICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKGYibmlja25hbWUgbXVzdCBiZSBzdHIg b3IgbGlzdFtzdHJdLCBnb3Q6IHt0eXBlKG5pY2tuYW1lKX0iKQotKwotKyAgICAgICAgIyBBbGxv dyBvdmVyd3JpdGUgb25seSBmb3Igc2luZ2xlIGNlcnQKLSsgICAgICAgIGlmIGxlbihuaWNrbmFt ZXMpID09IDE6Ci0rICAgICAgICAgICAgc2luZ2xlX25pY2sgPSBuaWNrbmFtZXNbMF0KLSsgICAg ICAgICAgICB0cnk6Ci0rICAgICAgICAgICAgICAgIGlmIHNlbGYuZ2V0X2NlcnRfZGV0YWlscyhz aW5nbGVfbmljayk6Ci0rICAgICAgICAgICAgICAgICAgICBpZiBub3QgZm9yY2U6Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZiJDZXJ0aWZpY2F0ZSBhbHJlYWR5IGV4aXN0cyB3aXRoIHRoZSBzYW1lIG5hbWUg KHtzaW5nbGVfbmlja30pIgotKyAgICAgICAgICAgICAgICAgICAgICAgICkKLSsgICAgICAgICAg ICAgICAgICAgIGVsc2U6Ci0rICAgICAgICAgICAgICAgICAgICAgICAgbG9nLmluZm8oZiJPdmVy d3JpdGluZyBleGlzdGluZyBjZXJ0aWZpY2F0ZSAoe3NpbmdsZV9uaWNrfSkiKQotKyAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuZGVsX2NlcnQoc2luZ2xlX25pY2spCi0rICAgICAgICAgICAg ZXhjZXB0IFZhbHVlRXJyb3I6Ci0rICAgICAgICAgICAgICAgIHBhc3MKLSsKLSsgICAgICAgICMg T2ZmbG9hZCB0byBQRU0gYnVuZGxlIGhhbmRsZXIKLSsgICAgICAgIGlmIGNlcnRfZmlsZS5sb3dl cigpLmVuZHN3aXRoKCIucGVtIik6Ci0rICAgICAgICAgICAgcmV0dXJuIHNlbGYuYWRkX2NhX2Nl cnRfYnVuZGxlKAotKyAgICAgICAgICAgICAgICBjZXJ0X2ZpbGU9Y2VydF9maWxlLAotKyAgICAg ICAgICAgICAgICBuaWNrbmFtZXM9bmlja25hbWVzCi0rICAgICAgICAgICAgKQotKwotKyAgICAg ICAgaWYgbGVuKG5pY2tuYW1lcykgIT0gMToKLSsgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y KAotKyAgICAgICAgICAgICAgICAiQmluYXJ5IENBIGNlcnQgcmVxdWlyZXMgZXhhY3RseSBvbmUg bmlja25hbWUiCi0rICAgICAgICAgICAgKQotKwotKyAgICAgICAgaWYgbm90IGNlcnRfaXNfY2Eo Y2VydF9maWxlKToKLSsgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKGYiQ2VydGlmaWNhdGUg KHtuaWNrbmFtZX0pIGlzIG5vdCBhIENBIGNlcnRpZmljYXRlIikKLSsKLSsgICAgICAgIHNlbGYu YWRkX2NlcnQobmlja25hbWVzWzBdLCBjZXJ0X2ZpbGUsIGNhPVRydWUpCi0rCi0rICAgICAgICBs b2cuaW5mbyhmIlN1Y2Nlc3NmdWxseSBhZGRlZCBDQSBjZXJ0aWZpY2F0ZSAoe25pY2tuYW1lfSki KQotKwotICAgICBkZWYgYWRkX2NhX2NlcnRfYnVuZGxlKHNlbGYsIGNlcnRfZmlsZSwgbmlja25h bWVzKToKLSAgICAgICAgICIiIgotICAgICAgICAgQWRkIGEgUEVNIGZpbGUgdGhhdCBjb3VsZCBi ZSBhIGJ1bmRsZSBvZiBDQSBjZXJ0cwotQEAgLTEzMjcsMTQgKzE0NTUsOCBAQCBvbmx5LgotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhX2NlcnRfbmFtZSA9IG5pY2tuYW1l c1tuYW1lc19sZW4gLSAxXSArIHN0cihjYV9jb3VudCkKLSAKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICMgQ2hlY2sgaWYgY2VydGlmaWNhdGUgbmlja25hbWUgZXhpc3RzCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lX2V4aXN0cyA9IEZhbHNlCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB0cnk6Ci0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5nZXRfY2VydF9kZXRhaWxzKGNhX2NlcnRfbmFtZSkKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lX2V4aXN0cyA9IFRydWUKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHBhc3MKLS0KLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlmIG5hbWVfZXhpc3RzOgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY2VydCA9IHNlbGYuZ2V0X2NlcnRfZGV0YWlscyhjYV9jZXJ0X25hbWUpCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiBjZXJ0OgotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICMgTm90IGdvb2QsIGNsZWFudXAgYW5kIHJhaXNlIGVycm9yCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBmb3IgdG1wX2ZpbGUgaW4gY2FfZmlsZXNfdG9fY2xlYW51cDoK LWRpZmYgLS1naXQgYS9zcmMvbGliMzg5L2xpYjM4OS91dGlscy5weSBiL3NyYy9saWIzODkvbGli Mzg5L3V0aWxzLnB5Ci1pbmRleCBmOGZiYTgxNmIuLjA0MmRlZjA5MCAxMDA2NDQKLS0tLSBhL3Ny Yy9saWIzODkvbGliMzg5L3V0aWxzLnB5Ci0rKysgYi9zcmMvbGliMzg5L2xpYjM4OS91dGlscy5w eQotQEAgLTMyLDExICszMiwxNCBAQCBpbXBvcnQgb3BlcmF0b3IKLSBpbXBvcnQgc3VicHJvY2Vz cwotIGltcG9ydCBtYXRoCi0gaW1wb3J0IGVycm5vCi0rZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlv bmFsLCBVbmlvbgotIGZyb20gc29ja2V0IGltcG9ydCBnZXRmcWRuCi0gZnJvbSBsZGFwdXJsIGlt cG9ydCBMREFQVXJsCi0gZnJvbSBjb250ZXh0bGliIGltcG9ydCBjbG9zaW5nCi0gZnJvbSBjcnlw dG9ncmFwaHkgaW1wb3J0IHg1MDkKLSBmcm9tIGNyeXB0b2dyYXBoeS5oYXptYXQuYmFja2VuZHMg aW1wb3J0IGRlZmF1bHRfYmFja2VuZAotK2Zyb20gY3J5cHRvZ3JhcGh5Lmhhem1hdC5wcmltaXRp dmVzIGltcG9ydCBzZXJpYWxpemF0aW9uCi0rZnJvbSBjcnlwdG9ncmFwaHkuaGF6bWF0LnByaW1p dGl2ZXMuc2VyaWFsaXphdGlvbiBpbXBvcnQgcGtjczEyCi0gaW1wb3J0IGxpYjM4OQotIGZyb20g cGF0aGxpYiBpbXBvcnQgUGF0aAotIGZyb20gc3VicHJvY2VzcyBpbXBvcnQgY2hlY2tfb3V0cHV0 Ci1AQCAtMTk5MywxNyArMTk5Niw2MiBAQCBkZWYgY2hlY2tfY2VydF9pbmZvKGNlcnRfZmlsZV9u YW1lLCBzZWFyY2hfdGV4dCk6Ci0gICAgIHJldHVybiBzZWFyY2hfdGV4dC5sb3dlcigpIGluIGNl cnRfdGV4dC5sb3dlcigpCi0gCi0gCi0tZGVmIGNlcnRfaXNfY2EoY2VydF9maWxlX25hbWUpOgot LSAgICB3aXRoIG9wZW4oY2VydF9maWxlX25hbWUsICJyYiIpIGFzIGY6Ci0tICAgICAgICBpZiBp c19jZXJ0X2RlcihjZXJ0X2ZpbGVfbmFtZSk6Ci0tICAgICAgICAgICAgY2VydCA9IHg1MDkubG9h ZF9kZXJfeDUwOV9jZXJ0aWZpY2F0ZShmLnJlYWQoKSwgZGVmYXVsdF9iYWNrZW5kKCkpCi0rZGVm IGNlcnRfaXNfY2EoY2VydF9kYXRhLCBwa2NzMTJfcGFzc3dvcmQ6IE9wdGlvbmFsW1VuaW9uW3N0 ciwgYnl0ZXNdXSA9IE5vbmUpOgotKyAgICAiIiIKLSsgICAgRGV0ZXJtaW5lIGlmIGEgY2VydGlm aWNhdGUgaXMgYSBDQS4KLSsKLSsgICAgU3VwcG9ydHMgUEVNLCBERVIsIGFuZCBQS0NTIzEyIGNl cnRpZmljYXRlcywgZnJvbSBieXRlcyBvciBmaWxlIHBhdGhzLgotKyAgICAiIiIKLSsgICAgIyBJ ZiBwYXNzZWQgYnl0ZXMgZGlyZWN0bHkgKERFUixQRU0pCi0rICAgIGNlcnRfZmlsZSA9IE5vbmUK LSsgICAgaWYgaXNpbnN0YW5jZShjZXJ0X2RhdGEsIChieXRlcywgYnl0ZWFycmF5KSk6Ci0rICAg ICAgICBkYXRhID0gYnl0ZXMoY2VydF9kYXRhKQotKyAgICBlbHNlOgotKyAgICAgICAgY2VydF9m aWxlID0gY2VydF9kYXRhCi0rICAgICAgICB0cnk6Ci0rICAgICAgICAgICAgd2l0aCBvcGVuKGNl cnRfZmlsZSwgInJiIikgYXMgZjoKLSsgICAgICAgICAgICAgICAgZGF0YSA9IGYucmVhZCgpCi0r ICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgotKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy b3IoZiJVbmFibGUgdG8gbG9hZCBjZXJ0aWZpY2F0ZSAne2NlcnRfZGF0YX0nOiB7ZX0iKQotKwot KyAgICB0cnk6Ci0rICAgICAgICAjIHAxMgotKyAgICAgICAgaWYgY2VydF9maWxlIGFuZCBjZXJ0 X2ZpbGUubG93ZXIoKS5lbmRzd2l0aCgoIi5wMTIiLCAiLnBmeCIpKToKLSsgICAgICAgICAgICB0 cnk6Ci0rICAgICAgICAgICAgICAgIHByaXZrZXksIGNlcnQsIF8gPSBwa2NzMTIubG9hZF9rZXlf YW5kX2NlcnRpZmljYXRlcygKLSsgICAgICAgICAgICAgICAgICAgIGRhdGEsIGVuc3VyZV9ieXRl cyhwa2NzMTJfcGFzc3dvcmQpLAotKyAgICAgICAgICAgICAgICAgICAgYmFja2VuZD1kZWZhdWx0 X2JhY2tlbmQoKQotKyAgICAgICAgICAgICAgICApCi0rICAgICAgICAgICAgZXhjZXB0IEV4Y2Vw dGlvbiBhcyBlOgotKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKGYiRmFpbGVkIHRv IGxvYWQgUEtDUyMxMiBmaWxlOiB7Y2VydF9maWxlfToge2V9IikKLSsKLSsgICAgICAgICAgICBp ZiBjZXJ0IGlzIE5vbmU6Ci0rICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk5vIGNl cnRpZmljYXRlIGZvdW5kIGluIFBLQ1MjMTIgY29udGFpbmVyIikKLSsKLSsgICAgICAgICMgQnl0 ZXMKLSsgICAgICAgIGVsaWYgY2VydF9maWxlIGlzIE5vbmU6Ci0rICAgICAgICAgICAgdHJ5Ogot KyAgICAgICAgICAgICAgICBjZXJ0ID0geDUwOS5sb2FkX2Rlcl94NTA5X2NlcnRpZmljYXRlKGRh dGEsIGRlZmF1bHRfYmFja2VuZCgpKQotKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0r ICAgICAgICAgICAgICAgIGNlcnQgPSB4NTA5LmxvYWRfcGVtX3g1MDlfY2VydGlmaWNhdGUoZGF0 YSwgZGVmYXVsdF9iYWNrZW5kKCkpCi0rCi0rICAgICAgICAjIEZpbGUKLSAgICAgICAgIGVsc2U6 Ci0tICAgICAgICAgICAgY2VydCA9IHg1MDkubG9hZF9wZW1feDUwOV9jZXJ0aWZpY2F0ZShmLnJl YWQoKSwgZGVmYXVsdF9iYWNrZW5kKCkpCi0rICAgICAgICAgICAgdHJ5OgotKyAgICAgICAgICAg ICAgICBjZXJ0ID0geDUwOS5sb2FkX3BlbV94NTA5X2NlcnRpZmljYXRlKGRhdGEsIGRlZmF1bHRf YmFja2VuZCgpKQotKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0rICAgICAgICAgICAg ICAgIGNlcnQgPSB4NTA5LmxvYWRfZGVyX3g1MDlfY2VydGlmaWNhdGUoZGF0YSwgZGVmYXVsdF9i YWNrZW5kKCkpCi0rCi0rICAgIGV4Y2VwdCBWYWx1ZUVycm9yIGFzIHZlOgotKyAgICAgICAgcmFp c2UgVmFsdWVFcnJvcihmIlVuYWJsZSB0byBsb2FkIGNlcnRpZmljYXRlICd7Y2VydF9maWxlfSc6 IHt2ZX0iKQotIAotICAgICB0cnk6Ci0rICAgICAgICAjIENoZWNrIGtleSB1c2FnZQotICAgICAg ICAga2V5X3VzYWdlID0gY2VydC5leHRlbnNpb25zLmdldF9leHRlbnNpb25fZm9yX29pZCh4NTA5 Lm9pZC5FeHRlbnNpb25PSUQuS0VZX1VTQUdFKQotICAgICAgICAgaWYgbm90IGtleV91c2FnZS52 YWx1ZS5rZXlfY2VydF9zaWduOgotICAgICAgICAgICAgIHJldHVybiBGYWxzZQotKwotKyAgICAg ICAgIyBDaGVjayBjb25zdHJhaW50cwotICAgICAgICAgYmFzaWNfY29uc3RyYWludHMgPSBjZXJ0 LmV4dGVuc2lvbnMuZ2V0X2V4dGVuc2lvbl9mb3Jfb2lkKAotICAgICAgICAgICAgIHg1MDkub2lk LkV4dGVuc2lvbk9JRC5CQVNJQ19DT05TVFJBSU5UUwotICAgICAgICAgKQotQEAgLTIwMTEsMTAg KzIwNTksMjkgQEAgZGVmIGNlcnRfaXNfY2EoY2VydF9maWxlX25hbWUpOgotICAgICAgICAgICAg IHJldHVybiBGYWxzZQotICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICByZXR1cm4gVHJ1ZQot KwotICAgICBleGNlcHQgeDUwOS5FeHRlbnNpb25Ob3RGb3VuZDoKLSAgICAgICAgICMgTm8gZXh0 ZW5zaW9ucywgY2hlY2sgdGhlIGNlcnQgaW5mbyBkaXJlY3RseQotLSAgICAgICAgcmV0dXJuIGNo ZWNrX2NlcnRfaW5mbyhjZXJ0X2ZpbGVfbmFtZSwgIkNBOlRSVUUiKQotKyAgICAgICAgcmV0dXJu IGNoZWNrX2NlcnRfaW5mbyhjZXJ0X2ZpbGUsICJDQTpUUlVFIikKLSsKLStkZWYgcGVtX3RvX2Rl cihibG9iOiBieXRlcyk6Ci0rICAgICIiIgotKyAgICBDb252ZXJ0IFBFTSBjZXJ0aWZpY2F0ZSBi eXRlcyB0byBERVIgZm9ybWF0LgotIAotKyAgICA6cGFyYW0gYmxvYjogUEVNIGVuY29kZWQgY2Vy dGlmaWNhdGUgYnl0ZXMKLSsgICAgOnJldHVybjogREVSIGVuY29kZWQgY2VydGlmaWNhdGUgYnl0 ZXMKLSsgICAgIiIiCi0rICAgIGNlcnQgPSB4NTA5LmxvYWRfcGVtX3g1MDlfY2VydGlmaWNhdGUo YmxvYikKLSsgICAgcmV0dXJuIGNlcnQucHVibGljX2J5dGVzKHNlcmlhbGl6YXRpb24uRW5jb2Rp bmcuREVSKQotKwotK2RlZiBpc19wZW1fY2VydChibG9iOiBieXRlcyk6Ci0rICAgICIiIgotKyAg ICBDaGVjayBpZiB0aGUgZ2l2ZW4gYmxvYiBpcyBhIFBFTSBjZXJ0aWZpY2F0ZS4KLSsKLSsgICAg OnBhcmFtIGJsb2I6IENlcnRpZmljYXRlIGRhdGEgYnl0ZXMKLSsgICAgOnJldHVybjogVHJ1ZSBp ZiBQRU0gZm9ybWF0LCBlbHNlIEZhbHNlCi0rICAgICIiIgotKyAgICByZXR1cm4gYiItLS0tLUJF R0lOIENFUlRJRklDQVRFLS0tLS0iIGluIGJsb2IKLSAKLSBkZWYgZ2V0X3Bhc3N3ZF9mcm9tX2Zp bGUocGFzc3dkX2ZpbGUpOgotICAgICBpZiBvcy5wYXRoLmV4aXN0cyhwYXNzd2RfZmlsZSk6Ci0t LSAKLTIuNTIuMAotCgpkaWZmIC0tZ2l0IGEvMDAyOS1Jc3N1ZS03MjI0LUNJLVRlc3QtU2ltcGxp ZnktdGVzdF9yZXNlcnZlX2Rlc2NyaXB0b3JfLnBhdGNoIGIvMDAyOS1Jc3N1ZS03MjI0LUNJLVRl c3QtU2ltcGxpZnktdGVzdF9yZXNlcnZlX2Rlc2NyaXB0b3JfLnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAyYjYxMmY0Li4wMDAwMDAwCi0tLSBhLzAwMjktSXNzdWUtNzIyNC1D SS1UZXN0LVNpbXBsaWZ5LXRlc3RfcmVzZXJ2ZV9kZXNjcmlwdG9yXy5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDkzICswLDAgQEAKLUZyb20gZDVhODNlOGYyY2NkMGM5ZDExNzkyZjAyNjk0N2M0 Nzg1OTk2YjRhNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEphbWVzIENoYXBtYW4g PGphY2hhcG1hQHJlZGhhdC5jb20+Ci1EYXRlOiBUaHUsIDUgRmViIDIwMjYgMTU6MzM6MDggKzAw MDAKLVN1YmplY3Q6IFtQQVRDSF0gSXNzdWUgNzIyNCAtIENJIFRlc3QgLSBTaW1wbGlmeQotIHRl c3RfcmVzZXJ2ZV9kZXNjcmlwdG9yX3ZhbGlkYXRpb24gKCM3MjI1KQotCi1EZXNjcmlwdGlvbjoK LVByZXZpb3VzbHksIHRoZSB0ZXN0X3Jlc2VydmVfZGVzY3JpcHRvcl92YWxpZGF0aW9uIENJdGVz dCBjYWxjdWxhdGVkCi10aGUgZXhwZWN0ZWQgbnVtYmVyIG9mIGZpbGUgZGVzY3JpcHRvcnMgYmFz ZWQgb24gYmFja2VuZHMsIGluZGV4ZXMsCi1TU0wvRklQUyBtb2RlLCBhbmQgY29tcGFyZWQgaXQg dG8gdGhlIHZhbHVlIHJldHVybmVkIGJ5IHRoZSBzZXJ2ZXIuCi1UaGlzIGFwcHJvYWNoIGlzIGZy YWdpbGUsIGVzcGVjaWFsbHkgaW4gRklQUyBtb2RlLgotCi1GaXg6Ci1UaGUgdGVzdCBoYXMgYmVl biB1cGRhdGVkIHRvIHNpbXBseSB2ZXJpZnkgdGhhdCB0aGUgc2VydmVyIGNvcnJlY3RzCi10aGUg Y29uZmlndXJlZCBuc3NsYXBkLXJlc2VydmVkZXNjcmlwdG9ycyB2YWx1ZSBpZiBpdCBpcyBzZXQg dG9vIGxvdywKLWluc3RlYWQgb2YgY2FsY3VsYXRpbmcgdGhlIGV4cGVjdGVkIHRvdGFsLgotCi1G aXhlczogaHR0cHM6Ly9naXRodWIuY29tLzM4OWRzLzM4OS1kcy1iYXNlL2lzc3Vlcy83MjI0Ci0K LVJldmlld2VkIGJ5OiBAYnNpbW9ub3ZhICAoVGhhbmsgeW91KQotLS0tCi0gLi4uL3N1aXRlcy9y ZXNvdXJjZV9saW1pdHMvZmRsaW1pdHNfdGVzdC5weSAgIHwgMzYgKysrKysrKy0tLS0tLS0tLS0t LQotIDEgZmlsZSBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMoLSkKLQot ZGlmZiAtLWdpdCBhL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9yZXNvdXJjZV9saW1pdHMvZmRs aW1pdHNfdGVzdC5weSBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9yZXNvdXJjZV9saW1pdHMv ZmRsaW1pdHNfdGVzdC5weQotaW5kZXggYzg0M2E0YjI0Li5hNDllMzc4YzMgMTAwNjQ0Ci0tLS0g YS9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvcmVzb3VyY2VfbGltaXRzL2ZkbGltaXRzX3Rlc3Qu cHkKLSsrKyBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9yZXNvdXJjZV9saW1pdHMvZmRsaW1p dHNfdGVzdC5weQotQEAgLTI3LDcgKzI3LDcgQEAgUkVTUlZfRkRfQVRUUiA9ICJuc3NsYXBkLXJl c2VydmVkZXNjcmlwdG9ycyIKLSBHTE9CQUxfTElNSVQgPSByZXNvdXJjZS5nZXRybGltaXQocmVz b3VyY2UuUkxJTUlUX05PRklMRSlbMV0KLSBTWVNURU1EX0xJTUlUID0gZW5zdXJlX3N0cihjaGVj a19vdXRwdXQoInN5c3RlbWN0bCBzaG93IC1wIExpbWl0Tk9GSUxFIGRpcnNydkBzdGFuZGFsb25l MSIuc3BsaXQoIiAiKSkuc3RyaXAoKSkuc3BsaXQoJz0nKVsxXQotIENVU1RPTV9WQUwgPSBzdHIo aW50KFNZU1RFTURfTElNSVQpIC0gMTApCi0tUkVTUlZfREVTQ19WQUwgPSBzdHIoMTApCi0rUkVT UlZfREVTQ19WQUxfTE9XID0gMTAKLSBUT09fSElHSF9WQUwgPSBzdHIoR0xPQkFMX0xJTUlUICog MikKLSBUT09fSElHSF9WQUwyID0gc3RyKGludChTWVNURU1EX0xJTUlUKSAqIDIpCi0gVE9PX0xP V19WQUwgPSAiMCIKLUBAIC04Niw0MCArODYsMzAgQEAgZGVmIHRlc3RfcmVzZXJ2ZV9kZXNjcmlw dG9yX3ZhbGlkYXRpb24odG9wb2xvZ3lfc3QpOgotICAgICA6aWQ6IDliYWNkYmNjLTc3NTQtNDk1 NS04YTU2LTFkOGM4MmJjZTI3NAotICAgICA6c2V0dXA6IFN0YW5kYWxvbmUgSW5zdGFuY2UKLSAg ICAgOnN0ZXBzOgotLSAgICAgICAgMS4gU2V0IGF0dHIgbnNzbGFwZC1yZXNlcnZlZGVzY3JpcHRv cnMgdG8gYSBsb3cgdmFsdWUgb2YgUkVTUlZfREVTQ19WQUwgKDEwKQotKyAgICAgICAgMS4gU2V0 IGF0dHIgbnNzbGFwZC1yZXNlcnZlZGVzY3JpcHRvcnMgdG8gYSBsb3cgdmFsdWUgKDEwKQotICAg ICAgICAgMi4gVmVyaWZ5IGxvdyB2YWx1ZSBoYXMgYmVlbiBzZXQKLSAgICAgICAgIDMuIFJlc3Rh cnQgaW5zdGFuY2UgKE9uIHJlc3RhcnQgdGhlIHJlc2VydmVkZXNjcmlwdG9yIGF0dHIgd2lsbCBi ZSB2YWxpZGF0ZWQpCi0tICAgICAgICA0LiBDaGVjayB1cGRhdGVkIHZhbHVlIGZvciBuc3NsYXBk LXJlc2VydmVkZXNjcmlwdG9ycyBhdHRyCi0rICAgICAgICA0LiBWZXJpZnkgY29ycmVjdGVkIHZh bHVlIGZvciBuc3NsYXBkLXJlc2VydmVkZXNjcmlwdG9ycyA+IGxvdyB2YWx1ZQotICAgICA6ZXhw ZWN0ZWRyZXN1bHRzOgotICAgICAgICAgMS4gU3VjY2VzcwotLSAgICAgICAgMi4gQSB2YWx1ZSBv ZiBSRVNSVl9ERVNDX1ZBTCAoMTApIGlzIHJldHVybmVkCi0rICAgICAgICAyLiBBIHZhbHVlIG9m IFJFU1JWX0RFU0NfVkFMX0xPVyAoMTApIGlzIHJldHVybmVkCi0gICAgICAgICAzLiBTdWNjZXNz Ci0tICAgICAgICA0LiBBIHZhbHVlIG9mIFNUQU5EQUxPTkVfSU5TVF9SRVNSVl9ERVNDUyAoNTUp IGlzIHJldHVybmVkCi0rICAgICAgICA0LiBDb3JyZWN0ZWQgdmFsdWUgZm9yIG5zc2xhcGQtcmVz ZXJ2ZWRlc2NyaXB0b3JzID4gbG93IHZhbHVlCi0gICAgICIiIgotIAotLSAgICAjIFNldCBuc3Ns YXBkLXJlc2VydmVkZXNjcmlwdG9ycyB0byBhIGxvdyB2YWx1ZSAoUkVTUlZfREVTQ19WQUw6MTAp Ci0tICAgIHRvcG9sb2d5X3N0LnN0YW5kYWxvbmUuY29uZmlnLnNldChSRVNSVl9GRF9BVFRSLCBS RVNSVl9ERVNDX1ZBTCkKLS0gICAgcmVzcnZfZmQgPSB0b3BvbG9neV9zdC5zdGFuZGFsb25lLmNv bmZpZy5nZXRfYXR0cl92YWxfdXRmOChSRVNSVl9GRF9BVFRSKQotLSAgICBhc3NlcnQgcmVzcnZf ZmQgPT0gUkVTUlZfREVTQ19WQUwKLSsgICAgIyBTZXQgbnNzbGFwZC1yZXNlcnZlZGVzY3JpcHRv cnMgdG8gYSBsb3cgdmFsdWUgKDEwKQotKyAgICB0b3BvbG9neV9zdC5zdGFuZGFsb25lLmNvbmZp Zy5zZXQoUkVTUlZfRkRfQVRUUiwgc3RyKFJFU1JWX0RFU0NfVkFMX0xPVykpCi0rICAgIHJlc3J2 X2ZkID0gaW50KHRvcG9sb2d5X3N0LnN0YW5kYWxvbmUuY29uZmlnLmdldF9hdHRyX3ZhbF91dGY4 KFJFU1JWX0ZEX0FUVFIpKQotKyAgICBhc3NlcnQgcmVzcnZfZmQgPT0gUkVTUlZfREVTQ19WQUxf TE9XCi0gCi0gICAgICMgQW4gaW5zdGFuY2UgcmVzdGFydCB0cmlnZ2VycyBhIHZhbGlkYXRpb24g b2YgdGhlIGNvbmZpZ3VyZWQgbnNzbGFwZC1yZXNlcnZlZGVzY3JpcHRvcnMgYXR0cmlidXRlCi0g ICAgIHRvcG9sb2d5X3N0LnN0YW5kYWxvbmUucmVzdGFydCgpCi0gCi0tICAgICIiIgotLSAgICBB IHN0YW5kYWxvbmUgaW5zdGFuY2UgY29udGFpbnMgYSBzaW5nbGUgYmFja2VuZCB3aXRoIGRlZmF1 bHQgaW5kZXhlcwotLSAgICBzbyB3ZSBvbmx5IGNoZWNrIHRoZXNlLiBUT0RPIGFkZCB0ZXN0cyBm b3IgcmVwbCwgY2hhaW5pbmcsIFBUQSwgU1NMCi0tICAgICIiIgotLSAgICBTVEFOREFMT05FX0lO U1RfUkVTUlZfREVTQ1MgPSAyNSBpZiBpc19maXBzKCkgZWxzZSAyMCAjIFJlc2VydmUgZGVzY3Jp cHRvciBjb25zdGFudCAoaGlnaGVyIGluIEZJUFMgbW9kZSkKLS0gICAgYmFja2VuZHMgPSBCYWNr ZW5kcyh0b3BvbG9neV9zdC5zdGFuZGFsb25lKQotLSAgICBTVEFOREFMT05FX0lOU1RfUkVTUlZf REVTQ1MgKz0gKGxlbihiYWNrZW5kcy5saXN0KCkpICogNCkgIyA0ID0gQmFja2VuZCBkZXNjcmlw dG9yIGNvbnN0YW50Ci0tICAgIGZvciBiZSBpbiBiYWNrZW5kcy5saXN0KCkgOgotLSAgICAgICAg U1RBTkRBTE9ORV9JTlNUX1JFU1JWX0RFU0NTICs9IGxlbihiZS5nZXRfaW5kZXhlcygpLmxpc3Qo KSkKLS0KLS0gICAgIyBWYXJpZnkgcmVzZXJ2ZWRlc2NyaXB0b3JzIGhhcyBiZWVuIHVwZGF0ZWQK LS0gICAgcmVzcnZfZmQgPSB0b3BvbG9neV9zdC5zdGFuZGFsb25lLmNvbmZpZy5nZXRfYXR0cl92 YWxfdXRmOChSRVNSVl9GRF9BVFRSKQotLSAgICBhc3NlcnQgcmVzcnZfZmQgPT0gc3RyKFNUQU5E QUxPTkVfSU5TVF9SRVNSVl9ERVNDUykKLSsgICAgIyBHZXQgdGhlIGNvcnJlY3RlZCB2YWx1ZQot KyAgICBjb3JyZWN0ZWRfZmQgPSBpbnQodG9wb2xvZ3lfc3Quc3RhbmRhbG9uZS5jb25maWcuZ2V0 X2F0dHJfdmFsX3V0ZjgoUkVTUlZfRkRfQVRUUikpCi0rICAgIGFzc2VydCBjb3JyZWN0ZWRfZmQg PiBSRVNSVl9ERVNDX1ZBTF9MT1cKLSAKLS0gICAgbG9nLmluZm8oInRlc3RfcmVzZXJ2ZV9kZXNj cmlwdG9yX3ZhbGlkYXRpb24gUEFTU0VEIikKLSsgICAgbG9nLmluZm8oZiJ0ZXN0X3Jlc2VydmVf ZGVzY3JpcHRvcl92YWxpZGF0aW9uIFBBU1NFRCAoY29ycmVjdGVkIGZyb20ge1JFU1JWX0RFU0Nf VkFMX0xPV30gdG8ge2NvcnJlY3RlZF9mZH0pIikKLSAKLSBAcHl0ZXN0Lm1hcmsuc2tpcGlmKGRz X2lzX29sZGVyKCIxLjQuMS4yIiksIHJlYXNvbj0iTm90IGltcGxlbWVudGVkIikKLSBkZWYgdGVz dF9yZXNlcnZlX2Rlc2NyaXB0b3JzX2hpZ2godG9wb2xvZ3lfc3QpOgotLS0gCi0yLjUyLjAKLQoK ZGlmZiAtLWdpdCBhLzAwMzAtSXNzdWUtNzE3OC1CdW5kbGVkLWplbWFsbG9jLWZhaWxzLXRvLWJ1 aWxkLXdpdGgtR0NDLS5wYXRjaCBiLzAwMzAtSXNzdWUtNzE3OC1CdW5kbGVkLWplbWFsbG9jLWZh aWxzLXRvLWJ1aWxkLXdpdGgtR0NDLS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggY2MwOTQ3OC4uMDAwMDAwMAotLS0gYS8wMDMwLUlzc3VlLTcxNzgtQnVuZGxlZC1qZW1hbGxv Yy1mYWlscy10by1idWlsZC13aXRoLUdDQy0ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw5NCAr MCwwIEBACi1Gcm9tIDliZmJlYzhjNGFhZDFjNjk4ZmQ4MGIzMDg2ZTExZjA2ZmQ5ZGYyNmQgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBWaWt0b3IgQXNoaXJvdiA8dmFzaGlyb3ZAcmVk aGF0LmNvbT4KLURhdGU6IE1vbiwgOSBGZWIgMjAyNiAxMzoxNTo0NCArMDEwMAotU3ViamVjdDog W1BBVENIXSBJc3N1ZSA3MTc4IC0gQnVuZGxlZCBqZW1hbGxvYyBmYWlscyB0byBidWlsZCB3aXRo IEdDQyAxNQotICgjNzIxNikKLQotRGVzY3JpcHRpb246Ci1VcGRhdGUgc3BlYyBmaWxlIHRvIGZp eCBidWlsZCBmYWlsdXJlcyBvbiBGZWRvcmEgUmF3aGlkZQotCi1GaXhlczogaHR0cHM6Ly9naXRo dWIuY29tLzM4OWRzLzM4OS1kcy1iYXNlL2lzc3Vlcy83MTc4Ci0KLVJldmlld2VkIGJ5OiBAcHJv Z2llcjM4OSwgQGRyb2lkZWNrIChUaGFua3MhKQotLS0tCi0gcnBtLm1rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAxICsKLSBycG0vMzg5LWRzLWJhc2Uuc3BlYy5pbiAgICAg ICAgICAgICAgICAgIHwgMTAgKysrKystLS0tLQotIHJwbS9qZW1hbGxvYy01LjMuMF90aHJvd19i YWRfYWxsb2MucGF0Y2ggfCAxMiArKysrKysrKysrKysKLSAzIGZpbGVzIGNoYW5nZWQsIDE4IGlu c2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IHJwbS9qZW1h bGxvYy01LjMuMF90aHJvd19iYWRfYWxsb2MucGF0Y2gKLQotZGlmZiAtLWdpdCBhL3JwbS5tayBi L3JwbS5tawotaW5kZXggZjkxMDExODE0Li4zNzJjZWU1YTYgMTAwNjQ0Ci0tLS0gYS9ycG0ubWsK LSsrKyBiL3JwbS5tawotQEAgLTE0Myw2ICsxNDMsNyBAQCBzcnBtZGlzdGRpcjoKLSBycG1idWls ZHByZXA6Ci0gCWNwIGRpc3Qvc291cmNlcy8kKFRBUkJBTEwpICQoUlBNQlVJTEQpL1NPVVJDRVMv Ci0gCWNwIHJwbS8kKFBBQ0tBR0UpLSogJChSUE1CVUlMRCkvU09VUkNFUy8KLSsJY3AgcnBtL2pl bWFsbG9jLTUuMy4wX3Rocm93X2JhZF9hbGxvYy5wYXRjaCAkKFJQTUJVSUxEKS9TT1VSQ0VTLwot IAlpZiBbICQoQlVORExFX0pFTUFMTE9DKSAtZXEgMSBdOyB0aGVuIFwKLSAJCWNwIGRpc3Qvc291 cmNlcy8kKEpFTUFMTE9DX1RBUkJBTEwpICQoUlBNQlVJTEQpL1NPVVJDRVMvIDsgXAotIAlmaQot ZGlmZiAtLWdpdCBhL3JwbS8zODktZHMtYmFzZS5zcGVjLmluIGIvcnBtLzM4OS1kcy1iYXNlLnNw ZWMuaW4KLWluZGV4IDUxYmZkN2U3Ny4uZGM4Yzc1ZGFjIDEwMDY0NAotLS0tIGEvcnBtLzM4OS1k cy1iYXNlLnNwZWMuaW4KLSsrKyBiL3JwbS8zODktZHMtYmFzZS5zcGVjLmluCi1AQCAtMTUyLDgg KzE1Miw4IEBAIEJ1aWxkUmVxdWlyZXM6ICAgIHB5dGhvbiV7cHl0aG9uM19wa2d2ZXJzaW9ufS1k ZXZlbAotICMgRm9yIGNvY2twaXQKLSAlaWYgJXt3aXRoIGNvY2twaXR9Ci0gQnVpbGRSZXF1aXJl czogICAgcnN5bmMKLS1CdWlsZFJlcXVpcmVzOiAgICBucG0KLS1CdWlsZFJlcXVpcmVzOiAgICBu b2RlanMKLStCdWlsZFJlcXVpcmVzOiAgICAvdXNyL2Jpbi9ucG0KLStCdWlsZFJlcXVpcmVzOiAg ICAvdXNyL2Jpbi9ub2RlCi0gJWVuZGlmCi0gCi0gIyBFTkQgQlVJTEQgUkVRVUlSRVMKLUBAIC0x ODgsOSArMTg4LDcgQEAgUmVxdWlyZXM6ICAgICAgICAgJXtuYW1lfS1yb2JkYi1saWJzID0gJXt2 ZXJzaW9ufS0le3JlbGVhc2V9Ci0gUmVxdWlyZXM6ICAgICAgICAgbGliZGIKLSAlZW5kaWYKLSAl ZW5kaWYKLS1SZXF1aXJlczogICAgICAgICBsbWRiCi0tIyBUaGlzIHBpY2tzIHVwIGxpYnBlcmwu c28gYXMgYSBSZXF1aXJlcywgc28gd2UgYWRkIHRoaXMgdmVyc2lvbmVkIG9uZQotLVJlcXVpcmVz OiAgICAgICAgIHBlcmwoOk1PRFVMRV9DT01QQVRfJShldmFsICJgJXtfX3Blcmx9IC1WOnZlcnNp b25gIjsgZWNobyAkdmVyc2lvbikpCi0rUmVxdWlyZXM6ICAgICAgICAgbG1kYi1saWJzCi0gIyBO ZWVkZWQgYnkgbG9nY29udi5wbAotICVpZiAle3dpdGhvdXQgbGliYmRiX3JvfQotICVpZiAle3dp dGhvdXQgYnVuZGxlX2xpYmRifQotQEAgLTIxNyw2ICsyMTUsNyBAQCBTb3VyY2UwOiAgICAgICAg ICAle25hbWV9LSV7dmVyc2lvbn0udGFyLmJ6MgotIFNvdXJjZTI6ICAgICAgICAgICV7bmFtZX0t ZGV2ZWwuUkVBRE1FCi0gJWlmICV7d2l0aCBidW5kbGVfamVtYWxsb2N9Ci0gU291cmNlMzogICAg ICAgICAgaHR0cHM6Ly9naXRodWIuY29tL2plbWFsbG9jLyV7amVtYWxsb2NfbmFtZX0vcmVsZWFz ZXMvZG93bmxvYWQvJXtqZW1hbGxvY192ZXJ9LyV7amVtYWxsb2NfbmFtZX0tJXtqZW1hbGxvY192 ZXJ9LnRhci5iejIKLStTb3VyY2U1OiAgICAgICAgICBqZW1hbGxvYy01LjMuMF90aHJvd19iYWRf YWxsb2MucGF0Y2gKLSAlZW5kaWYKLSAlaWYgJXt3aXRoIGJ1bmRsZV9saWJkYn0KLSBTb3VyY2U0 OiAgICAgICAgICBodHRwczovL2ZlZG9yYXBlb3BsZS5vcmcvZ3JvdXBzLzM4OWRzL2xpYmRiLTUu My4yOC01OS50YXIuYnoyCi1AQCAtNDM0LDYgKzQzMyw3IEBAIENPQ0tQSVRfRkxBR1M9Ii0tZGlz YWJsZS1jb2NrcGl0IgotIAotICMgQnVpbGQgamVtYWxsb2MKLSBwdXNoZCAuLi8le2plbWFsbG9j X25hbWV9LSV7amVtYWxsb2NfdmVyfQotK3BhdGNoIC1wMSAtRjMgPCAle1NPVVJDRTV9Ci0gJWNv bmZpZ3VyZSBcCi0gICAgICAgICAtLWxpYmRpcj0le19saWJkaXJ9LyV7cGtnbmFtZX0vbGliIFwK LSAgICAgICAgIC0tYmluZGlyPSV7X2xpYmRpcn0vJXtwa2duYW1lfS9iaW4gXAotZGlmZiAtLWdp dCBhL3JwbS9qZW1hbGxvYy01LjMuMF90aHJvd19iYWRfYWxsb2MucGF0Y2ggYi9ycG0vamVtYWxs b2MtNS4zLjBfdGhyb3dfYmFkX2FsbG9jLnBhdGNoCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5k ZXggMDAwMDAwMDAwLi42ODVlNjk2OGMKLS0tLSAvZGV2L251bGwKLSsrKyBiL3JwbS9qZW1hbGxv Yy01LjMuMF90aHJvd19iYWRfYWxsb2MucGF0Y2gKLUBAIC0wLDAgKzEsMTIgQEAKLStkaWZmIC0t Z2l0IGEvc3JjL2plbWFsbG9jX2NwcC5jcHAgYi9zcmMvamVtYWxsb2NfY3BwLmNwcAotK2luZGV4 IGZmZmQ2YWVlLi41YTY4Mjk5MSAxMDA2NDQKLSstLS0gYS9zcmMvamVtYWxsb2NfY3BwLmNwcAot KysrKyBiL3NyYy9qZW1hbGxvY19jcHAuY3BwCi0rQEAgLTkzLDcgKzkzLDcgQEAgaGFuZGxlT09N KHN0ZDo6c2l6ZV90IHNpemUsIGJvb2wgbm90aHJvdykgewotKyAgICAgICAgfQotKwotKyAgICAg ICAgaWYgKHB0ciA9PSBudWxscHRyICYmICFub3Rocm93KQotKy0JCXN0ZDo6X190aHJvd19iYWRf YWxsb2MoKTsKLSsrCQl0aHJvdyBzdGQ6OmJhZF9hbGxvYygpOwotKyAgICAgICAgcmV0dXJuIHB0 cjsKLSsgfQotLS0gCi0yLjUyLjAKLQoKZGlmZiAtLWdpdCBhLzAwMzEtSXNzdWUtNzEyMS0ybmQt TGVha1Nhbml0aXplci12YXJpb3VzLWxlYWtzLWR1cmluZy1yZS5wYXRjaCBiLzAwMzEtSXNzdWUt NzEyMS0ybmQtTGVha1Nhbml0aXplci12YXJpb3VzLWxlYWtzLWR1cmluZy1yZS5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzA2MDk4My4uMDAwMDAwMAotLS0gYS8wMDMxLUlz c3VlLTcxMjEtMm5kLUxlYWtTYW5pdGl6ZXItdmFyaW91cy1sZWFrcy1kdXJpbmctcmUucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSw3MSArMCwwIEBACi1Gcm9tIGZiNDI1NGE5N2ZlMGRhMjUwNjRk MmY2Mjk2NzA1YzllMTgxMGZmZGEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBWaWt0 b3IgQXNoaXJvdiA8dmFzaGlyb3ZAcmVkaGF0LmNvbT4KLURhdGU6IE1vbiwgOSBGZWIgMjAyNiAx MzoxODowOSArMDEwMAotU3ViamVjdDogW1BBVENIXSBJc3N1ZSA3MTIxIC0gKDJuZCkgTGVha1Nh bml0aXplcjogdmFyaW91cyBsZWFrcyBkdXJpbmcKLSByZXBsaWNhdGlvbiAoIzcyMTIpCi0KLUJ1 ZyBEZXNjcmlwdGlvbjoKLVdpdGggdGhlIHByZXZpb3VzIGZpeCA3NWUwZTQ4NzU0NTg5M2E3YjBk ODNmOTRmOTI2NGMxMGY4YmIwMzUzIGFwcGxpZWQsCi1zZXJ2ZXIgY2FuIGNyYXNoIGluIGJlcl9i dmNweS4KLQotYGBgCi1Qcm9ncmFtIHRlcm1pbmF0ZWQgd2l0aCBzaWduYWwgU0lHU0VHViwgU2Vn bWVudGF0aW9uIGZhdWx0LgotIzAgIGJlcl9idmNweSAoYnZzPTB4N2YxZDAwMDAwMDAwLCBidmQ9 MHg3ZjFkYTJjZDczYzApIGF0IGxkYXAvc2VydmVycy9zbGFwZC92YWx1ZS5jOjQ3Ci00NyAgICAg ICAgICBsZW4gPSBidnMtPmJ2X2xlbjsKLVtDdXJyZW50IHRocmVhZCBpcyAxIChUaHJlYWQgMHg3 ZjFkYjQ3ZmU2NDAgKExXUCAzNjU3NikpXQotKGdkYikgYnQKLSMwICBiZXJfYnZjcHkgKGJ2cz0w eDdmMWQwMDAwMDAwMCwgYnZkPTB4N2YxZGEyY2Q3M2MwKSBhdCBsZGFwL3NlcnZlcnMvc2xhcGQv dmFsdWUuYzo0NwotIzEgIGJlcl9idmNweSAoYnZzPTB4N2YxZDAwMDAwMDAwLCBidmQ9MHg3ZjFk YTJjZDczYzApIGF0IGxkYXAvc2VydmVycy9zbGFwZC92YWx1ZS5jOjQwCi0jMiAgc2xhcGlfdmFs dWVfc2V0X2JlcnZhbCAoYnZhbD0weDdmMWQwMDAwMDAwMCwgdmFsdWU9MHg3ZjFkYTJjZDczYzAp IGF0IGxkYXAvc2VydmVycy9zbGFwZC92YWx1ZS5jOjMyMgotIzMgIHNsYXBpX3ZhbHVlX3NldF9i ZXJ2YWwgKHZhbHVlPXZhbHVlQGVudHJ5PTB4N2YxZGEyY2Q3M2MwLCBidmFsPWJ2YWxAZW50cnk9 MHg3ZjFkMDAwMDAwMDApIGF0IGxkYXAvc2VydmVycy9zbGFwZC92YWx1ZS5jOjMxNwotIzQgIDB4 MDAwMDdmMWU0OGI3ZDc4NyBpbiB2YWx1ZV9pbml0ICh2PXZAZW50cnk9MHg3ZjFkYTJjZDczYzAs IGJ2YWw9YnZhbEBlbnRyeT0weDdmMWQwMDAwMDAwMCwgdD10QGVudHJ5PTAgJ1wwMDAnLCBjc249 Y3NuQGVudHJ5PTB4MCkKLSAgICBhdCBsZGFwL3NlcnZlcnMvc2xhcGQvdmFsdWUuYzoxNzkKLSM1 ICAweDAwMDA3ZjFlNDhiN2Q4ODQgaW4gdmFsdWVfbmV3IChidmFsPWJ2YWxAZW50cnk9MHg3ZjFk MDAwMDAwMDAsIHQ9dEBlbnRyeT0wICdcMDAwJywgY3NuPWNzbkBlbnRyeT0weDApIGF0IGxkYXAv c2VydmVycy9zbGFwZC92YWx1ZS5jOjE1OAotIzYgIDB4MDAwMDdmMWU0OGI3ZGRiNyBpbiBzbGFw aV92YWx1ZV9kdXAgKHY9MHg3ZjFkMDAwMDAwMDApIGF0IGxkYXAvc2VydmVycy9zbGFwZC92YWx1 ZS5jOjE0NwotIzcgIDB4MDAwMDdmMWU0OGI3ZTI2MiBpbiB2YWx1ZXNldF9zZXRfdmFsdWVzZXQg KHZzMj0weDdmMWQ1MDJiNTIxOCwgdnMxPTB4N2YxZGEyYzViMzU4KSBhdCBsZGFwL3NlcnZlcnMv c2xhcGQvdmFsdWVzZXQuYzoxMjQ0Ci0jOCAgdmFsdWVzZXRfc2V0X3ZhbHVlc2V0ICh2czE9MHg3 ZjFkYTJjNWIzNTgsIHZzMj0weDdmMWQ1MDJiNTIxOCkgYXQgbGRhcC9zZXJ2ZXJzL3NsYXBkL3Zh bHVlc2V0LmM6MTIyMAotIzkgIDB4MDAwMDdmMWU0OGFkZDRhZiBpbiBzbGFwaV9hdHRyX2R1cCAo YXR0cj0weDdmMWQ1MDJiNTFlMCkgYXQgbGRhcC9zZXJ2ZXJzL3NsYXBkL2F0dHIuYzozOTYKLSMx MCAweDAwMDA3ZjFlNDhhZjBmNjAgaW4gc2xhcGlfZW50cnlfZHVwIChlPTB4N2YxZGEyYzE5MDAw KSBhdCBsZGFwL3NlcnZlcnMvc2xhcGQvZW50cnkuYzoyMDM2Ci0jMTEgMHgwMDAwN2YxZTQ0MmM3 MzRlIGluIGxkYm1fYmFja19tb2RpZnkgKHBiPTB4N2YxZGEyYzAwMDAwKSBhdCBsZGFwL3NlcnZl cnMvc2xhcGQvYmFjay1sZGJtL2xkYm1fbW9kaWZ5LmM6NzQxCi0jMTIgMHgwMDAwN2YxZTQ4YjMw MDc2IGluIG9wX3NoYXJlZF9tb2RpZnkgKHBiPXBiQGVudHJ5PTB4N2YxZGEyYzAwMDAwLCBwd19j aGFuZ2U9cHdfY2hhbmdlQGVudHJ5PTAsIG9sZF9wdz0weDApCi0gICAgYXQgbGRhcC9zZXJ2ZXJz L3NsYXBkL21vZGlmeS5jOjEwNzkKLSMxMyAweDAwMDA3ZjFlNDhiMzBjZWQgaW4gZG9fbW9kaWZ5 IChwYj1wYkBlbnRyeT0weDdmMWRhMmMwMDAwMCkgYXQgbGRhcC9zZXJ2ZXJzL3NsYXBkL21vZGlm eS5jOjM3NwotIzE0IDB4MDAwMDU1ZTk5MGUyZmQxYyBpbiBjb25uZWN0aW9uX2Rpc3BhdGNoX29w ZXJhdGlvbiAocGI9MHg3ZjFkYTJjMDAwMDAsIG9wPTxvcHRpbWl6ZWQgb3V0PiwgY29ubj08b3B0 aW1pemVkIG91dD4pCi0gICAgYXQgbGRhcC9zZXJ2ZXJzL3NsYXBkL2Nvbm5lY3Rpb24uYzo2NzIK LSMxNSBjb25uZWN0aW9uX3RocmVhZG1haW4gKGFyZz08b3B0aW1pemVkIG91dD4pIGF0IGxkYXAv c2VydmVycy9zbGFwZC9jb25uZWN0aW9uLmM6MTk1NQotIzE2IDB4MDAwMDdmMWU0ODgzOWJkNCBp biBfcHRfcm9vdCAoYXJnPTB4N2YxZTQzOWQ5NTAwKSBhdCBwdGhyZWFkcy8uLi8uLi8uLi8uLi9u c3ByL3ByL3NyYy9wdGhyZWFkcy9wdHRocmVhZC5jOjE5MQotIzE3IDB4MDAwMDdmMWU0ODY4YTE5 YSBpbiBzdGFydF90aHJlYWQgKGFyZz08b3B0aW1pemVkIG91dD4pIGF0IHB0aHJlYWRfY3JlYXRl LmM6NDQzCi0jMTggMHgwMDAwN2YxZTQ4NzBmMTAwIGluIGNsb25lMyAoKSBhdCAuLi9zeXNkZXBz L3VuaXgvc3lzdi9saW51eC94ODZfNjQvY2xvbmUzLlM6ODEKLWBgYAotCi1UaGUgZml4IGNoYW5n ZWQgZnJvbSBhbHdheXMgc2V0dGluZyBgdl9jc25zZXQgPSBOVUxMYCB0byBvbmx5IGZyZWVpbmcg aXQKLWluc2lkZSB0aGUgaWYtYmxvY2suCi0KLUZpeCBEZXNjcmlwdGlvbjoKLUtlZXAgYGNzbnNl dF9mcmVlKClgIG91dHNpZGUgdGhlIGlmLWJsb2NrIHRvIGhhbmRsZSBhbGwgdmFsdWVzLCBub3Qg anVzdAotdGhvc2UgbWF0Y2hpbmcgdGhlIGNvbmR0aW9uLgotCi1SZWxhdGVkOiBodHRwczovL2dp dGh1Yi5jb20vMzg5ZHMvMzg5LWRzLWJhc2UvaXNzdWVzLzcxMjEKLQotUmV2aWV3ZWQgYnk6IEBw cm9naWVyMzg5LCBAZHJvaWRlY2sgKFRoYW5rcyEpCi0tLS0KLSBsZGFwL3NlcnZlcnMvc2xhcGQv ZW50cnl3c2kuYyB8IDIgKy0KLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVs ZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL2xkYXAvc2VydmVycy9zbGFwZC9lbnRyeXdzaS5jIGIv bGRhcC9zZXJ2ZXJzL3NsYXBkL2VudHJ5d3NpLmMKLWluZGV4IGUxYmRjMWJhYi4uMGQwNDQwOTJk IDEwMDY0NAotLS0tIGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL2VudHJ5d3NpLmMKLSsrKyBiL2xkYXAv c2VydmVycy9zbGFwZC9lbnRyeXdzaS5jCi1AQCAtMTE4NSw4ICsxMTg1LDggQEAgcmVzb2x2ZV9h dHRyaWJ1dGVfc3RhdGVfZGVsZXRlZF90b19wcmVzZW50KFNsYXBpX0VudHJ5ICplLCBTbGFwaV9B dHRyICphLCBTbGFwaV8KLSAgICAgICAgICAgICBpZiAoKGNzbl9jb21wYXJlKHZ1Y3NuLCBkZWxl dGVkY3NuKSA+PSAwKSB8fAotICAgICAgICAgICAgICAgICB2YWx1ZV9kaXN0aW5ndWlzaGVkX2F0 X2NzbihlLCBhLCB2YWx1ZXN0b3VwZGF0ZVtpXSwgZGVsZXRlZGNzbikpIHsKLSAgICAgICAgICAg ICAgICAgZW50cnlfZGVsZXRlZF92YWx1ZV90b19wcmVzZW50X3ZhbHVlKGEsIHZhbHVlc3RvdXBk YXRlW2ldKTsKLS0gICAgICAgICAgICAgICAgY3Nuc2V0X2ZyZWUoJnZhbHVlc3RvdXBkYXRlW2ld LT52X2NzbnNldCk7Ci0gICAgICAgICAgICAgfQotKyAgICAgICAgICAgIGNzbnNldF9mcmVlKCZ2 YWx1ZXN0b3VwZGF0ZVtpXS0+dl9jc25zZXQpOwotICAgICAgICAgfQotICAgICB9Ci0gfQotLS0g Ci0yLjUyLjAKLQoKZGlmZiAtLWdpdCBhLzAwMzItSXNzdWUtNzIyMy1SZXZlcnQtaW5kZXgtc2Nh bi1saW1pdHMtZm9yLXN5c3RlbS1pbmRleC5wYXRjaCBiLzAwMzItSXNzdWUtNzIyMy1SZXZlcnQt aW5kZXgtc2Nhbi1saW1pdHMtZm9yLXN5c3RlbS1pbmRleC5wYXRjaApkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggYzYzMjJmYy4uMDAwMDAwMAotLS0gYS8wMDMyLUlzc3VlLTcyMjMtUmV2 ZXJ0LWluZGV4LXNjYW4tbGltaXRzLWZvci1zeXN0ZW0taW5kZXgucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSw3NzggKzAsMCBAQAotRnJvbSAzOTM4OTQyYTU0MThhZGQ4MzYxNmIxNDEzZjMwNzBk Mzk0YzMwYTdmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogVmlrdG9yIEFzaGlyb3Yg PHZhc2hpcm92QHJlZGhhdC5jb20+Ci1EYXRlOiBUaHUsIDUgRmViIDIwMjYgMTI6MTc6MDYgKzAx MDAKLVN1YmplY3Q6IFtQQVRDSF0gSXNzdWUgNzIyMyAtIFJldmVydCBpbmRleCBzY2FuIGxpbWl0 cyBmb3Igc3lzdGVtIGluZGV4ZXMKLQotVGhpcyByZXZlcnRzIGNoYW5nZXMgaW50cm9kdWNlZCBi eSB0aGUgZm9sbG93aW5nIGNvbW1pdHM6Ci1jNmY0NThiNDIgSXNzdWUgNzE4OSAtIERTQkxFMDAw NyBnZW5lcmF0ZXMgaW5jb3JyZWN0IHJlbWVkaWF0aW9uIGNvbW1hbmRzIGZvciBzY2FuIGxpbWl0 cwotOGI2YjNhOWY5IElzc3VlIDY5NjYgLSBPbiBsYXJnZSBEQiwgdW5saW1pdGVkIElETCBzY2Fu IGxpbWl0IHJlZHVjZSB0aGUgU1JDSCBwZXJmb3JtYW5jZQotCi1SZWxhdGVzOiBodHRwczovL2dp dGh1Yi5jb20vMzg5ZHMvMzg5LWRzLWJhc2UvaXNzdWVzLzcyMjMKLQotUmV2aWV3ZWQgYnk6IEBw cm9naWVyMzg5LCBAdGJvcmRheiwgQGRyb2lkZWNrIChUaGFua3MhKQotLS0tCi0gLi4uL3Rlc3Rz L3N1aXRlcy9jb25maWcvY29uZmlnX3Rlc3QucHkgICAgICAgIHwgIDI3ICstLS0KLSAuLi4vaGVh bHRoY2hlY2svaGVhbHRoX3N5c3RlbV9pbmRleGVzX3Rlc3QucHkgfCAxMzYgKy0tLS0tLS0tLS0t LS0tLS0tCi0gLi4uL3BhZ2VkX3Jlc3VsdHMvcGFnZWRfcmVzdWx0c190ZXN0LnB5ICAgICAgIHwg IDI1ICstLS0KLSBsZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2JhY2stbGRibS5oICAgICAg fCAgIDEgLQotIGxkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vaW5kZXguYyAgICAgICAgICB8 ICAgMiAtCi0gbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9pbnN0YW5jZS5jICAgICAgIHwg MTA0ICsrKy0tLS0tLS0tLS0tCi0gbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9sZGJtX2Nv bmZpZy5jICAgIHwgIDMwIC0tLS0KLSBsZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2xkYm1f Y29uZmlnLmggICAgfCAgIDEgLQotIC4uLi9zbGFwZC9iYWNrLWxkYm0vbGRibV9pbmRleF9jb25m aWcuYyAgICAgICB8ICAgOCAtLQotIHNyYy9saWIzODkvbGliMzg5L2JhY2tlbmQucHkgICAgICAg ICAgICAgICAgICB8ICA1MCArKy0tLS0tCi0gc3JjL2xpYjM4OS9saWIzODkvY2xpX2NvbmYvYmFj a2VuZC5weSAgICAgICAgIHwgIDIwIC0tLQotIDExIGZpbGVzIGNoYW5nZWQsIDQwIGluc2VydGlv bnMoKyksIDM2NCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2RpcnNydnRlc3RzL3Rlc3Rz L3N1aXRlcy9jb25maWcvY29uZmlnX3Rlc3QucHkgYi9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMv Y29uZmlnL2NvbmZpZ190ZXN0LnB5Ci1pbmRleCBjYmI4ODc1ZmEuLjJjN2Q5NDlkMCAxMDA2NDQK LS0tLSBhL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9jb25maWcvY29uZmlnX3Rlc3QucHkKLSsr KyBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9jb25maWcvY29uZmlnX3Rlc3QucHkKLUBAIC03 MDYsMTkgKzcwNiwxNyBAQCBkZWYgdGVzdF9uZG5fY2FjaGVfc2l6ZV9lbmZvcmNlbWVudCh0b3Bv LCByZXF1ZXN0KToKLSAKLSAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoZmluKQotIAotLWRlZiB0 ZXN0X3JlcXVpcmVfaW5kZXgodG9wbywgcmVxdWVzdCk6Ci0rZGVmIHRlc3RfcmVxdWlyZV9pbmRl eCh0b3BvKToKLSAgICAgIiIiVmFsaWRhdGUgdGhhdCB1bmluZGV4ZWQgc2VhcmNoZXMgYXJlIHJl amVjdGVkCi0gCi0gICAgIDppZDogZmI2ZTMxZjItYWNjMi00ZTc1LWExOTUtNWMzNTZmYWViODAz Ci0gICAgIDpzZXR1cDogU3RhbmRhbG9uZSBpbnN0YW5jZQotICAgICA6c3RlcHM6Ci0gICAgICAg ICAxLiBTZXQgIm5zc2xhcGQtcmVxdWlyZS1pbmRleCIgdG8gIm9uIgotLSAgICAgICAgMi4gYW5j ZXN0b3JpZC9pZGxzY2FubGltaXQgdG8gMTAwCi0tICAgICAgICAzLiBUZXN0IGFuIHVuaW5kZXhl ZCBzZWFyY2ggaXMgcmVqZWN0ZWQKLSsgICAgICAgIDIuIFRlc3QgYW4gdW5pbmRleGVkIHNlYXJj aCBpcyByZWplY3RlZAotICAgICA6ZXhwZWN0ZWRyZXN1bHRzOgotICAgICAgICAgMS4gU3VjY2Vz cwotICAgICAgICAgMi4gU3VjY2VzcwotLSAgICAgICAgMy4gU3VjY2VzcwotICAgICAiIiIKLSAK LSAgICAgIyBTZXQgdGhlIGNvbmZpZwotQEAgLTcyOSwxMCArNzI3LDYgQEAgZGVmIHRlc3RfcmVx dWlyZV9pbmRleCh0b3BvLCByZXF1ZXN0KToKLSAKLSAgICAgZGJfY2ZnID0gRGF0YWJhc2VDb25m aWcodG9wby5zdGFuZGFsb25lKQotICAgICBkYl9jZmcuc2V0KFsoJ25zc2xhcGQtaWRsaXN0c2Nh bmxpbWl0JywgJzEwMCcpXSkKLS0gICAgYmFja2VuZCA9IEJhY2tlbmRzKHRvcG8uc3RhbmRhbG9u ZSkuZ2V0X2JhY2tlbmQoREVGQVVMVF9TVUZGSVgpCi0tICAgIGFuY2VzdG9yaWRfaW5kZXggPSBi YWNrZW5kLmdldF9pbmRleCgnYW5jZXN0b3JpZCcpCi0tICAgIGFuY2VzdG9yaWRfaW5kZXgucmVw bGFjZSgibnNJbmRleElETGlzdFNjYW5MaW1pdCIsIGVuc3VyZV9ieXRlcygibGltaXQ9MTAwIHR5 cGU9ZXEgZmxhZ3M9QU5EIikpCi0tICAgIHRvcG8uc3RhbmRhbG9uZS5yZXN0YXJ0KCkKLSAKLSAg ICAgdXNlcnMgPSBVc2VyQWNjb3VudHModG9wby5zdGFuZGFsb25lLCBERUZBVUxUX1NVRkZJWCkK LSAgICAgZm9yIGkgaW4gcmFuZ2UoMTAxKToKLUBAIC03NDMsMTUgKzczNywxMCBAQCBkZWYgdGVz dF9yZXF1aXJlX2luZGV4KHRvcG8sIHJlcXVlc3QpOgotICAgICB3aXRoIHB5dGVzdC5yYWlzZXMo bGRhcC5VTldJTExJTkdfVE9fUEVSRk9STSk6Ci0gICAgICAgICByYXdfb2JqZWN0cy5maWx0ZXIo IihkZXNjcmlwdGlvbj10ZXN0KikiKQotIAotLSAgICBkZWYgZmluKCk6Ci0tICAgICAgICBhbmNl c3RvcmlkX2luZGV4LnJlcGxhY2UoIm5zSW5kZXhJRExpc3RTY2FuTGltaXQiLCBlbnN1cmVfYnl0 ZXMoImxpbWl0PTUwMDAgdHlwZT1lcSBmbGFncz1BTkQiKSkKLS0KLS0gICAgcmVxdWVzdC5hZGRm aW5hbGl6ZXIoZmluKQotLQotIAotIAotIEBweXRlc3QubWFyay5za2lwaWYoZHNfaXNfb2xkZXIo JzEuNC4yJyksIHJlYXNvbj0iVGhlIGNvbmZpZyBzZXR0aW5nIG9ubHkgZXhpc3RzIGluIDEuNC4y IGFuZCBoaWdoZXIiKQotLWRlZiB0ZXN0X3JlcXVpcmVfaW50ZXJuYWxfaW5kZXgodG9wbywgcmVx dWVzdCk6Ci0rZGVmIHRlc3RfcmVxdWlyZV9pbnRlcm5hbF9pbmRleCh0b3BvKToKLSAgICAgIiIi RW5zdXJlIGludGVybmFsIG9wZXJhdGlvbnMgcmVxdWlyZSBpbmRleGVkIGF0dHJpYnV0ZXMKLSAK LSAgICAgOmlkOiAyMmI5NGYzMC01OWUzLTRmMjctODlhMS1jNGY0YmUwMzZmN2YKLUBAIC03ODIs MTAgKzc3MSw2IEBAIGRlZiB0ZXN0X3JlcXVpcmVfaW50ZXJuYWxfaW5kZXgodG9wbywgcmVxdWVz dCk6Ci0gICAgICMgQ3JlYXRlIGEgYnVuY2ggb2YgdXNlcnMKLSAgICAgZGJfY2ZnID0gRGF0YWJh c2VDb25maWcodG9wby5zdGFuZGFsb25lKQotICAgICBkYl9jZmcuc2V0KFsoJ25zc2xhcGQtaWRs aXN0c2NhbmxpbWl0JywgJzEwMCcpXSkKLS0gICAgYmFja2VuZCA9IEJhY2tlbmRzKHRvcG8uc3Rh bmRhbG9uZSkuZ2V0X2JhY2tlbmQoREVGQVVMVF9TVUZGSVgpCi0tICAgIGFuY2VzdG9yaWRfaW5k ZXggPSBiYWNrZW5kLmdldF9pbmRleCgnYW5jZXN0b3JpZCcpCi0tICAgIGFuY2VzdG9yaWRfaW5k ZXgucmVwbGFjZSgibnNJbmRleElETGlzdFNjYW5MaW1pdCIsIGVuc3VyZV9ieXRlcygibGltaXQ9 MTAwIHR5cGU9ZXEgZmxhZ3M9QU5EIikpCi0tICAgIHRvcG8uc3RhbmRhbG9uZS5yZXN0YXJ0KCkK LSAgICAgdXNlcnMgPSBVc2VyQWNjb3VudHModG9wby5zdGFuZGFsb25lLCBERUZBVUxUX1NVRkZJ WCkKLSAgICAgZm9yIGkgaW4gcmFuZ2UoMTAyLCAyMDIpOgotICAgICAgICAgdXNlcnMuY3JlYXRl X3Rlc3RfdXNlcih1aWQ9aSkKLUBAIC04MTAsMTIgKzc5NSw2IEBAIGRlZiB0ZXN0X3JlcXVpcmVf aW50ZXJuYWxfaW5kZXgodG9wbywgcmVxdWVzdCk6Ci0gICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhs ZGFwLlVOV0lMTElOR19UT19QRVJGT1JNKToKLSAgICAgICAgIHVzZXIuZGVsZXRlKCkKLSAKLS0g ICAgZGVmIGZpbigpOgotLSAgICAgICAgYW5jZXN0b3JpZF9pbmRleC5yZXBsYWNlKCJuc0luZGV4 SURMaXN0U2NhbkxpbWl0IiwgZW5zdXJlX2J5dGVzKCJsaW1pdD01MDAwIHR5cGU9ZXEgZmxhZ3M9 QU5EIikpCi0tCi0tICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKGZpbikKLS0KLS0KLSAKLSBkZWYg Z2V0X3BzdGFjayhwaWQpOgotICAgICAiIiJHZXQgYSBwc3RhY2sgb2YgdGhlIHBpZC4iIiIKLWRp ZmYgLS1naXQgYS9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvaGVhbHRoY2hlY2svaGVhbHRoX3N5 c3RlbV9pbmRleGVzX3Rlc3QucHkgYi9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvaGVhbHRoY2hl Y2svaGVhbHRoX3N5c3RlbV9pbmRleGVzX3Rlc3QucHkKLWluZGV4IDQ4NmZhZDQ0Yi4uMTQwODQ1 YTMzIDEwMDY0NAotLS0tIGEvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL2hlYWx0aGNoZWNrL2hl YWx0aF9zeXN0ZW1faW5kZXhlc190ZXN0LnB5Ci0rKysgYi9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0 ZXMvaGVhbHRoY2hlY2svaGVhbHRoX3N5c3RlbV9pbmRleGVzX3Rlc3QucHkKLUBAIC0xNzIsOSAr MTcyLDcgQEAgZGVmIHRlc3RfbWlzc2luZ19wYXJlbnRpZCh0b3BvbG9neV9zdCwgbG9nX2J1ZmZl cmluZ19lbmFibGVkKToKLSAKLSAgICAgbG9nLmluZm8oIlJlLWFkZCB0aGUgcGFyZW50SWQgaW5k ZXgiKQotICAgICBiYWNrZW5kID0gQmFja2VuZHMoc3RhbmRhbG9uZSkuZ2V0KCJ1c2VyUm9vdCIp Ci0tICAgIGJhY2tlbmQuYWRkX2luZGV4KCJwYXJlbnRpZCIsIFsiZXEiXSwgbWF0Y2hpbmdfcnVs ZXM9WyJpbnRlZ2VyT3JkZXJpbmdNYXRjaCJdLAotLSAgICAgICAgICAgICAgICAgICAgICBpZGxp c3RzY2FubGltaXQ9WydsaW1pdD01MDAwIHR5cGU9ZXEgZmxhZ3M9QU5EJ10pCi0tICAgIHN0YW5k YWxvbmUucmVzdGFydCgpCi0rICAgIGJhY2tlbmQuYWRkX2luZGV4KCJwYXJlbnRpZCIsIFsiZXEi XSwgbWF0Y2hpbmdfcnVsZXM9WyJpbnRlZ2VyT3JkZXJpbmdNYXRjaCJdKQotIAotICAgICBydW5f aGVhbHRoY2hlY2tfYW5kX2ZsdXNoX2xvZyh0b3BvbG9neV9zdCwgc3RhbmRhbG9uZSwganNvbj1G YWxzZSwgc2VhcmNoZWRfY29kZT1DTURfT1VUUFVUKQotICAgICBydW5faGVhbHRoY2hlY2tfYW5k X2ZsdXNoX2xvZyh0b3BvbG9neV9zdCwgc3RhbmRhbG9uZSwganNvbj1UcnVlLCBzZWFyY2hlZF9j b2RlPUpTT05fT1VUUFVUKQotQEAgLTI2Myw4ICsyNjEsNyBAQCBkZWYgdGVzdF91c25fcGx1Z2lu X21pc3NpbmdfZW50cnl1c24odG9wb2xvZ3lfc3QsIHVzbl9wbHVnaW5fZW5hYmxlZCwgbG9nX2J1 ZmZlcgotIAotICAgICBsb2cuaW5mbygiUmUtYWRkIHRoZSBlbnRyeXVzbiBpbmRleCIpCi0gICAg IGJhY2tlbmQgPSBCYWNrZW5kcyhzdGFuZGFsb25lKS5nZXQoInVzZXJSb290IikKLS0gICAgYmFj a2VuZC5hZGRfaW5kZXgoImVudHJ5dXNuIiwgWyJlcSJdLCBtYXRjaGluZ19ydWxlcz1bImludGVn ZXJPcmRlcmluZ01hdGNoIl0sCi0tICAgICAgICAgICAgICAgICAgICAgIGlkbGlzdHNjYW5saW1p dD1bJ2xpbWl0PTUwMDAgdHlwZT1lcSBmbGFncz1BTkQnXSkKLSsgICAgYmFja2VuZC5hZGRfaW5k ZXgoImVudHJ5dXNuIiwgWyJlcSJdLCBtYXRjaGluZ19ydWxlcz1bImludGVnZXJPcmRlcmluZ01h dGNoIl0pCi0gCi0gICAgIHJ1bl9oZWFsdGhjaGVja19hbmRfZmx1c2hfbG9nKHRvcG9sb2d5X3N0 LCBzdGFuZGFsb25lLCBqc29uPUZhbHNlLCBzZWFyY2hlZF9jb2RlPUNNRF9PVVRQVVQpCi0gICAg IHJ1bl9oZWFsdGhjaGVja19hbmRfZmx1c2hfbG9nKHRvcG9sb2d5X3N0LCBzdGFuZGFsb25lLCBq c29uPVRydWUsIHNlYXJjaGVkX2NvZGU9SlNPTl9PVVRQVVQpCi1AQCAtNDA4LDEzMiArNDA1LDYg QEAgZGVmIHRlc3RfcmV0cm9jbF9wbHVnaW5fbWlzc2luZ19tYXRjaGluZ19ydWxlKHRvcG9sb2d5 X3N0LCByZXRyb2NsX3BsdWdpbl9lbmFibGUKLSAgICAgcnVuX2hlYWx0aGNoZWNrX2FuZF9mbHVz aF9sb2codG9wb2xvZ3lfc3QsIHN0YW5kYWxvbmUsIGpzb249VHJ1ZSwgc2VhcmNoZWRfY29kZT1K U09OX09VVFBVVCkKLSAKLSAKLS1kZWYgdGVzdF9taXNzaW5nX3NjYW5saW1pdCh0b3BvbG9neV9z dCwgbG9nX2J1ZmZlcmluZ19lbmFibGVkKToKLS0gICAgIiIiQ2hlY2sgaWYgaGVhbHRoY2hlY2sg cmV0dXJucyBEU0JMRTAwMDcgY29kZSB3aGVuIHBhcmVudElkIGluZGV4IGlzIG1pc3Npbmcgc2Nh bmxpbWl0Ci0tCi0tICAgIDppZDogNDBlMWJmNmEtMjM5Ny00NTliLWJkZjMtZjc4N2NhMTE4Yjg2 Ci0tICAgIDpzZXR1cDogU3RhbmRhbG9uZSBpbnN0YW5jZQotLSAgICA6c3RlcHM6Ci0tICAgICAg ICAxLiBDcmVhdGUgRFMgaW5zdGFuY2UKLS0gICAgICAgIDIuIFJlbW92ZSBuc0luZGV4SURMaXN0 U2NhbkxpbWl0IGZyb20gcGFyZW50SWQgaW5kZXgKLS0gICAgICAgIDMuIFVzZSBoZWFsdGhjaGVj ayB3aXRob3V0IC0tanNvbiBvcHRpb24KLS0gICAgICAgIDQuIFVzZSBoZWFsdGhjaGVjayB3aXRo IC0tanNvbiBvcHRpb24KLS0gICAgICAgIDUuIFZlcmlmeSB0aGUgcmVtZWRpYXRpb24gY29tbWFu ZCBoYXMgcHJvcGVybHkgcXVvdGVkIHNjYW5saW1pdAotLSAgICAgICAgNi4gUmUtYWRkIHRoZSBz Y2FubGltaXQKLS0gICAgICAgIDcuIFVzZSBoZWFsdGhjaGVjayB3aXRob3V0IC0tanNvbiBvcHRp b24KLS0gICAgICAgIDguIFVzZSBoZWFsdGhjaGVjayB3aXRoIC0tanNvbiBvcHRpb24KLS0gICAg OmV4cGVjdGVkcmVzdWx0czoKLS0gICAgICAgIDEuIFN1Y2Nlc3MKLS0gICAgICAgIDIuIFN1Y2Nl c3MKLS0gICAgICAgIDMuIGhlYWx0aGNoZWNrIHJlcG9ydHMgRFNCTEUwMDA3IGNvZGUgYW5kIHJl bGF0ZWQgZGV0YWlscwotLSAgICAgICAgNC4gaGVhbHRoY2hlY2sgcmVwb3J0cyBEU0JMRTAwMDcg Y29kZSBhbmQgcmVsYXRlZCBkZXRhaWxzCi0tICAgICAgICA1LiBUaGUgc2NhbmxpbWl0IHZhbHVl IGlzIHF1b3RlZCBpbiB0aGUgcmVtZWRpYXRpb24gY29tbWFuZAotLSAgICAgICAgNi4gU3VjY2Vz cwotLSAgICAgICAgNy4gaGVhbHRoY2hlY2sgcmVwb3J0cyBubyBpc3N1ZXMgZm91bmQKLS0gICAg ICAgIDguIGhlYWx0aGNoZWNrIHJlcG9ydHMgbm8gaXNzdWVzIGZvdW5kCi0tICAgICIiIgotLQot LSAgICBSRVRfQ09ERSA9ICJEU0JMRTAwMDciCi0tICAgIFBBUkVOVElEX0ROID0gImNuPXBhcmVu dGlkLGNuPWluZGV4LGNuPXVzZXJyb290LGNuPWxkYm0gZGF0YWJhc2UsY249cGx1Z2lucyxjbj1j b25maWciCi0tICAgIFNDQU5MSU1JVF9WQUxVRSA9ICJsaW1pdD01MDAwIHR5cGU9ZXEgZmxhZ3M9 QU5EIgotLQotLSAgICBzdGFuZGFsb25lID0gdG9wb2xvZ3lfc3Quc3RhbmRhbG9uZQotLQotLSAg ICBsb2cuaW5mbygiUmVtb3ZlIG5zSW5kZXhJRExpc3RTY2FuTGltaXQgZnJvbSBwYXJlbnRJZCBp bmRleCIpCi0tICAgIHBhcmVudGlkX2luZGV4ID0gSW5kZXgoc3RhbmRhbG9uZSwgUEFSRU5USURf RE4pCi0tICAgIHBhcmVudGlkX2luZGV4LnJlbW92ZSgibnNJbmRleElETGlzdFNjYW5MaW1pdCIs IFNDQU5MSU1JVF9WQUxVRSkKLS0KLS0gICAgcnVuX2hlYWx0aGNoZWNrX2FuZF9mbHVzaF9sb2co dG9wb2xvZ3lfc3QsIHN0YW5kYWxvbmUsIGpzb249RmFsc2UsIHNlYXJjaGVkX2NvZGU9UkVUX0NP REUpCi0tCi0tICAgICMgVmVyaWZ5IHRoZSByZW1lZGlhdGlvbiBjb21tYW5kIGhhcyBwcm9wZXJs eSBxdW90ZWQgc2NhbmxpbWl0Ci0tICAgIGFyZ3MgPSBGYWtlQXJncygpCi0tICAgIGFyZ3MuaW5z dGFuY2UgPSBzdGFuZGFsb25lLnNlcnZlcmlkCi0tICAgIGFyZ3MudmVyYm9zZSA9IHN0YW5kYWxv bmUudmVyYm9zZQotLSAgICBhcmdzLmxpc3RfZXJyb3JzID0gRmFsc2UKLS0gICAgYXJncy5saXN0 X2NoZWNrcyA9IEZhbHNlCi0tICAgIGFyZ3MuZXhjbHVkZV9jaGVjayA9IFtdCi0tICAgIGFyZ3Mu Y2hlY2sgPSBbImJhY2tlbmRzIl0KLS0gICAgYXJncy5kcnlfcnVuID0gRmFsc2UKLS0gICAgYXJn cy5qc29uID0gRmFsc2UKLS0gICAgaGVhbHRoX2NoZWNrX3J1bihzdGFuZGFsb25lLCB0b3BvbG9n eV9zdC5sb2djYXAubG9nLCBhcmdzKQotLSAgICAjIENoZWNrIHRoYXQgdGhlIHNjYW5saW1pdCBp cyBxdW90ZWQgaW4gdGhlIG91dHB1dAotLSAgICBhc3NlcnQgdG9wb2xvZ3lfc3QubG9nY2FwLmNv bnRhaW5zKCctLWFkZC1zY2FubGltaXQgImxpbWl0PTUwMDAgdHlwZT1lcSBmbGFncz1BTkQiJykK LS0gICAgbG9nLmluZm8oIlZlcmlmaWVkIHNjYW5saW1pdCBpcyBwcm9wZXJseSBxdW90ZWQgaW4g cmVtZWRpYXRpb24gY29tbWFuZCIpCi0tICAgIHRvcG9sb2d5X3N0LmxvZ2NhcC5mbHVzaCgpCi0t Ci0tICAgIHJ1bl9oZWFsdGhjaGVja19hbmRfZmx1c2hfbG9nKHRvcG9sb2d5X3N0LCBzdGFuZGFs b25lLCBqc29uPVRydWUsIHNlYXJjaGVkX2NvZGU9UkVUX0NPREUpCi0tCi0tICAgIGxvZy5pbmZv KCJSZS1hZGQgdGhlIG5zSW5kZXhJRExpc3RTY2FuTGltaXQiKQotLSAgICBwYXJlbnRpZF9pbmRl eCA9IEluZGV4KHN0YW5kYWxvbmUsIFBBUkVOVElEX0ROKQotLSAgICBwYXJlbnRpZF9pbmRleC5h ZGQoIm5zSW5kZXhJRExpc3RTY2FuTGltaXQiLCBTQ0FOTElNSVRfVkFMVUUpCi0tCi0tICAgIHJ1 bl9oZWFsdGhjaGVja19hbmRfZmx1c2hfbG9nKHRvcG9sb2d5X3N0LCBzdGFuZGFsb25lLCBqc29u PUZhbHNlLCBzZWFyY2hlZF9jb2RlPUNNRF9PVVRQVVQpCi0tICAgIHJ1bl9oZWFsdGhjaGVja19h bmRfZmx1c2hfbG9nKHRvcG9sb2d5X3N0LCBzdGFuZGFsb25lLCBqc29uPVRydWUsIHNlYXJjaGVk X2NvZGU9SlNPTl9PVVRQVVQpCi0tCi0tCi0tZGVmIHRlc3RfbWlzc2luZ19tYXRjaGluZ19ydWxl X2FuZF9zY2FubGltaXQodG9wb2xvZ3lfc3QsIGxvZ19idWZmZXJpbmdfZW5hYmxlZCk6Ci0tICAg ICIiIkNoZWNrIGlmIGhlYWx0aGNoZWNrIGdlbmVyYXRlcyBhIHNpbmdsZSBjb21iaW5lZCBjb21t YW5kIHdoZW4gYm90aCBtYXRjaGluZyBydWxlIGFuZCBzY2FubGltaXQgYXJlIG1pc3NpbmcKLS0K LS0gICAgOmlkOiBhZjgyMTRhZC01ZTRjLTQyMmEtOGY3NC0zZTk5MjI3NTUxZGYKLS0gICAgOnNl dHVwOiBTdGFuZGFsb25lIGluc3RhbmNlCi0tICAgIDpzdGVwczoKLS0gICAgICAgIDEuIENyZWF0 ZSBEUyBpbnN0YW5jZQotLSAgICAgICAgMi4gUmVtb3ZlIGJvdGggaW50ZWdlck9yZGVyaW5nTWF0 Y2ggYW5kIG5zSW5kZXhJRExpc3RTY2FuTGltaXQgZnJvbSBwYXJlbnRJZCBpbmRleAotLSAgICAg ICAgMy4gVXNlIGhlYWx0aGNoZWNrIGFuZCB2ZXJpZnkgYSBzaW5nbGUgY29tYmluZWQgY29tbWFu ZCBpcyBnZW5lcmF0ZWQKLS0gICAgICAgIDQuIFJlLWFkZCB0aGUgbWF0Y2hpbmcgcnVsZSBhbmQg c2NhbmxpbWl0Ci0tICAgICAgICA1LiBVc2UgaGVhbHRoY2hlY2sgd2l0aG91dCAtLWpzb24gb3B0 aW9uCi0tICAgICAgICA2LiBVc2UgaGVhbHRoY2hlY2sgd2l0aCAtLWpzb24gb3B0aW9uCi0tICAg IDpleHBlY3RlZHJlc3VsdHM6Ci0tICAgICAgICAxLiBTdWNjZXNzCi0tICAgICAgICAyLiBTdWNj ZXNzCi0tICAgICAgICAzLiBoZWFsdGhjaGVjayByZXBvcnRzIERTQkxFMDAwNyBhbmQgZ2VuZXJh dGVzIGEgc2luZ2xlIGNvbW1hbmQgd2l0aCBib3RoIC0tYWRkLW1yIGFuZCAtLWFkZC1zY2FubGlt aXQKLS0gICAgICAgIDQuIFN1Y2Nlc3MKLS0gICAgICAgIDUuIGhlYWx0aGNoZWNrIHJlcG9ydHMg bm8gaXNzdWVzIGZvdW5kCi0tICAgICAgICA2LiBoZWFsdGhjaGVjayByZXBvcnRzIG5vIGlzc3Vl cyBmb3VuZAotLSAgICAiIiIKLS0KLS0gICAgUkVUX0NPREUgPSAiRFNCTEUwMDA3IgotLSAgICBQ QVJFTlRJRF9ETiA9ICJjbj1wYXJlbnRpZCxjbj1pbmRleCxjbj11c2Vycm9vdCxjbj1sZGJtIGRh dGFiYXNlLGNuPXBsdWdpbnMsY249Y29uZmlnIgotLSAgICBTQ0FOTElNSVRfVkFMVUUgPSAibGlt aXQ9NTAwMCB0eXBlPWVxIGZsYWdzPUFORCIKLS0KLS0gICAgc3RhbmRhbG9uZSA9IHRvcG9sb2d5 X3N0LnN0YW5kYWxvbmUKLS0KLS0gICAgbG9nLmluZm8oIlJlbW92ZSBib3RoIGludGVnZXJPcmRl cmluZ01hdGNoIGFuZCBuc0luZGV4SURMaXN0U2NhbkxpbWl0IGZyb20gcGFyZW50SWQgaW5kZXgi KQotLSAgICBwYXJlbnRpZF9pbmRleCA9IEluZGV4KHN0YW5kYWxvbmUsIFBBUkVOVElEX0ROKQot LSAgICBwYXJlbnRpZF9pbmRleC5yZW1vdmUoIm5zTWF0Y2hpbmdSdWxlIiwgImludGVnZXJPcmRl cmluZ01hdGNoIikKLS0gICAgcGFyZW50aWRfaW5kZXgucmVtb3ZlKCJuc0luZGV4SURMaXN0U2Nh bkxpbWl0IiwgU0NBTkxJTUlUX1ZBTFVFKQotLQotLSAgICAjIFJ1biBoZWFsdGhjaGVjayBhbmQg dmVyaWZ5IGNvbWJpbmVkIGNvbW1hbmQKLS0gICAgYXJncyA9IEZha2VBcmdzKCkKLS0gICAgYXJn cy5pbnN0YW5jZSA9IHN0YW5kYWxvbmUuc2VydmVyaWQKLS0gICAgYXJncy52ZXJib3NlID0gc3Rh bmRhbG9uZS52ZXJib3NlCi0tICAgIGFyZ3MubGlzdF9lcnJvcnMgPSBGYWxzZQotLSAgICBhcmdz Lmxpc3RfY2hlY2tzID0gRmFsc2UKLS0gICAgYXJncy5leGNsdWRlX2NoZWNrID0gW10KLS0gICAg YXJncy5jaGVjayA9IFsiYmFja2VuZHMiXQotLSAgICBhcmdzLmRyeV9ydW4gPSBGYWxzZQotLSAg ICBhcmdzLmpzb24gPSBGYWxzZQotLSAgICBoZWFsdGhfY2hlY2tfcnVuKHN0YW5kYWxvbmUsIHRv cG9sb2d5X3N0LmxvZ2NhcC5sb2csIGFyZ3MpCi0tCi0tICAgICMgVmVyaWZ5IERTQkxFMDAwNyBp cyByZXBvcnRlZAotLSAgICBhc3NlcnQgdG9wb2xvZ3lfc3QubG9nY2FwLmNvbnRhaW5zKFJFVF9D T0RFKQotLSAgICBsb2cuaW5mbygiaGVhbHRoY2hlY2sgcmV0dXJuZWQgY29kZTogJXMiICUgUkVU X0NPREUpCi0tCi0tICAgICMgVmVyaWZ5IGEgc2luZ2xlIGNvbWJpbmVkIGNvbW1hbmQgaXMgZ2Vu ZXJhdGVkIHdpdGggYm90aCAtLWFkZC1tciBhbmQgLS1hZGQtc2NhbmxpbWl0Ci0tICAgIGFzc2Vy dCB0b3BvbG9neV9zdC5sb2djYXAuY29udGFpbnMoJy0tYWRkLW1yIGludGVnZXJPcmRlcmluZ01h dGNoIC0tYWRkLXNjYW5saW1pdCAibGltaXQ9NTAwMCB0eXBlPWVxIGZsYWdzPUFORCInKQotLSAg ICBsb2cuaW5mbygiVmVyaWZpZWQgY29tYmluZWQgY29tbWFuZCB3aXRoIGJvdGggLS1hZGQtbXIg YW5kIC0tYWRkLXNjYW5saW1pdCIpCi0tCi0tICAgIHRvcG9sb2d5X3N0LmxvZ2NhcC5mbHVzaCgp Ci0tCi0tICAgIGxvZy5pbmZvKCJSZS1hZGQgdGhlIGludGVnZXJPcmRlcmluZ01hdGNoIG1hdGNo aW5nIHJ1bGUgYW5kIHNjYW5saW1pdCIpCi0tICAgIHBhcmVudGlkX2luZGV4ID0gSW5kZXgoc3Rh bmRhbG9uZSwgUEFSRU5USURfRE4pCi0tICAgIHBhcmVudGlkX2luZGV4LmFkZCgibnNNYXRjaGlu Z1J1bGUiLCAiaW50ZWdlck9yZGVyaW5nTWF0Y2giKQotLSAgICBwYXJlbnRpZF9pbmRleC5hZGQo Im5zSW5kZXhJRExpc3RTY2FuTGltaXQiLCBTQ0FOTElNSVRfVkFMVUUpCi0tCi0tICAgIHJ1bl9o ZWFsdGhjaGVja19hbmRfZmx1c2hfbG9nKHRvcG9sb2d5X3N0LCBzdGFuZGFsb25lLCBqc29uPUZh bHNlLCBzZWFyY2hlZF9jb2RlPUNNRF9PVVRQVVQpCi0tICAgIHJ1bl9oZWFsdGhjaGVja19hbmRf Zmx1c2hfbG9nKHRvcG9sb2d5X3N0LCBzdGFuZGFsb25lLCBqc29uPVRydWUsIHNlYXJjaGVkX2Nv ZGU9SlNPTl9PVVRQVVQpCi0tCi0tCi0gZGVmIHRlc3RfbXVsdGlwbGVfbWlzc2luZ19pbmRleGVz KHRvcG9sb2d5X3N0LCBsb2dfYnVmZmVyaW5nX2VuYWJsZWQpOgotICAgICAiIiJDaGVjayBpZiBo ZWFsdGhjaGVjayByZXR1cm5zIERTQkxFMDAwNyBjb2RlIHdoZW4gbXVsdGlwbGUgc3lzdGVtIGlu ZGV4ZXMgYXJlIG1pc3NpbmcKLSAKLUBAIC01NzQsOCArNDQ1LDcgQEAgZGVmIHRlc3RfbXVsdGlw bGVfbWlzc2luZ19pbmRleGVzKHRvcG9sb2d5X3N0LCBsb2dfYnVmZmVyaW5nX2VuYWJsZWQpOgot IAotICAgICBsb2cuaW5mbygiUmUtYWRkIHRoZSBtaXNzaW5nIHN5c3RlbSBpbmRleGVzIikKLSAg ICAgYmFja2VuZCA9IEJhY2tlbmRzKHN0YW5kYWxvbmUpLmdldCgidXNlclJvb3QiKQotLSAgICBi YWNrZW5kLmFkZF9pbmRleCgicGFyZW50aWQiLCBbImVxIl0sIG1hdGNoaW5nX3J1bGVzPVsiaW50 ZWdlck9yZGVyaW5nTWF0Y2giXSwKLS0gICAgICAgICAgICAgICAgICAgICAgaWRsaXN0c2Nhbmxp bWl0PVsnbGltaXQ9NTAwMCB0eXBlPWVxIGZsYWdzPUFORCddKQotKyAgICBiYWNrZW5kLmFkZF9p bmRleCgicGFyZW50aWQiLCBbImVxIl0sIG1hdGNoaW5nX3J1bGVzPVsiaW50ZWdlck9yZGVyaW5n TWF0Y2giXSkKLSAgICAgYmFja2VuZC5hZGRfaW5kZXgoIm5zdW5pcXVlaWQiLCBbImVxIl0pCi0g ICAgIHN0YW5kYWxvbmUucmVzdGFydCgpCi0gCi1kaWZmIC0tZ2l0IGEvZGlyc3J2dGVzdHMvdGVz dHMvc3VpdGVzL3BhZ2VkX3Jlc3VsdHMvcGFnZWRfcmVzdWx0c190ZXN0LnB5IGIvZGlyc3J2dGVz dHMvdGVzdHMvc3VpdGVzL3BhZ2VkX3Jlc3VsdHMvcGFnZWRfcmVzdWx0c190ZXN0LnB5Ci1pbmRl eCA2MWQ2NzAyZGEuLjFiYjk0YjUzYSAxMDA2NDQKLS0tLSBhL2RpcnNydnRlc3RzL3Rlc3RzL3N1 aXRlcy9wYWdlZF9yZXN1bHRzL3BhZ2VkX3Jlc3VsdHNfdGVzdC5weQotKysrIGIvZGlyc3J2dGVz dHMvdGVzdHMvc3VpdGVzL3BhZ2VkX3Jlc3VsdHMvcGFnZWRfcmVzdWx0c190ZXN0LnB5Ci1AQCAt MzA2LDE5ICszMDYsMTkgQEAgZGVmIHRlc3Rfc2VhcmNoX3N1Y2Nlc3ModG9wb2xvZ3lfc3QsIGNy ZWF0ZV91c2VyLCBwYWdlX3NpemUsIHVzZXJzX251bSk6Ci0gICAgIGRlbF91c2Vycyh1c2Vyc19s aXN0KQotIAotIAotLUBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgicGFnZV9zaXplLHVzZXJzX251 bSxzdWZmaXgsYXR0cl9uYW1lLGF0dHJfdmFsdWUsZXhwZWN0ZWRfZXJyLCByZXN0YXJ0IiwgWwot K0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgicGFnZV9zaXplLHVzZXJzX251bSxzdWZmaXgsYXR0 cl9uYW1lLGF0dHJfdmFsdWUsZXhwZWN0ZWRfZXJyIiwgWwotICAgICAoNTAsIDIwMCwgJ2NuPWNv bmZpZywlcycgJSBETl9MREJNLCAnbnNzbGFwZC1pZGxpc3RzY2FubGltaXQnLCAnMTAwJywKLS0g ICAgIGxkYXAuVU5XSUxMSU5HX1RPX1BFUkZPUk0sIFRydWUpLAotKyAgICAgbGRhcC5VTldJTExJ TkdfVE9fUEVSRk9STSksCi0gICAgICg1LCAxNSwgRE5fQ09ORklHLCAnbnNzbGFwZC10aW1lbGlt aXQnLCAnMjAnLAotLSAgICAgbGRhcC5VTkFWQUlMQUJMRV9DUklUSUNBTF9FWFRFTlNJT04sIEZh bHNlKSwKLSsgICAgIGxkYXAuVU5BVkFJTEFCTEVfQ1JJVElDQUxfRVhURU5TSU9OKSwKLSAgICAg KDIxLCA1MCwgRE5fQ09ORklHLCAnbnNzbGFwZC1zaXplbGltaXQnLCAnMjAnLAotLSAgICAgbGRh cC5TSVpFTElNSVRfRVhDRUVERUQsIEZhbHNlKSwKLSsgICAgIGxkYXAuU0laRUxJTUlUX0VYQ0VF REVEKSwKLSAgICAgKDIxLCA1MCwgRE5fQ09ORklHLCAnbnNzbGFwZC1wYWdlZHNpemVsaW1pdCcs ICc1JywKLS0gICAgIGxkYXAuU0laRUxJTUlUX0VYQ0VFREVELCBGYWxzZSksCi0rICAgICBsZGFw LlNJWkVMSU1JVF9FWENFRURFRCksCi0gICAgICg1LCA1MCwgJ2NuPWNvbmZpZywlcycgJSBETl9M REJNLCAnbnNzbGFwZC1sb29rdGhyb3VnaGxpbWl0JywgJzIwJywKLS0gICAgIGxkYXAuQURNSU5M SU1JVF9FWENFRURFRCwgRmFsc2UpXSkKLSsgICAgIGxkYXAuQURNSU5MSU1JVF9FWENFRURFRCld KQotIGRlZiB0ZXN0X3NlYXJjaF9saW1pdHNfZmFpbCh0b3BvbG9neV9zdCwgY3JlYXRlX3VzZXIs IHBhZ2Vfc2l6ZSwgdXNlcnNfbnVtLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWZm aXgsIGF0dHJfbmFtZSwgYXR0cl92YWx1ZSwgZXhwZWN0ZWRfZXJyLCByZXN0YXJ0KToKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3VmZml4LCBhdHRyX25hbWUsIGF0dHJfdmFsdWUsIGV4 cGVjdGVkX2Vycik6Ci0gICAgICIiIlZlcmlmeSB0aGF0IHNlYXJjaCB3aXRoIGEgc2ltcGxlIHBh Z2VkIHJlc3VsdHMgY29udHJvbAotICAgICB0aHJvd3MgZXhwZWN0ZWQgZXhjZXB0b2lucyB3aGVu IGNvcnJlc3BvbmRpbmcgbGltaXRzIGFyZQotICAgICBleGNlZWRlZC4KLUBAIC0zNDEsMTUgKzM0 MSw2IEBAIGRlZiB0ZXN0X3NlYXJjaF9saW1pdHNfZmFpbCh0b3BvbG9neV9zdCwgY3JlYXRlX3Vz ZXIsIHBhZ2Vfc2l6ZSwgdXNlcnNfbnVtLAotIAotICAgICB1c2Vyc19saXN0ID0gYWRkX3VzZXJz KHRvcG9sb2d5X3N0LCB1c2Vyc19udW0sIERFRkFVTFRfU1VGRklYKQotICAgICBhdHRyX3ZhbHVl X2JjayA9IGNoYW5nZV9jb25mX2F0dHIodG9wb2xvZ3lfc3QsIHN1ZmZpeCwgYXR0cl9uYW1lLCBh dHRyX3ZhbHVlKQotLSAgICBhbmNlc3RvcmlkX2luZGV4ID0gTm9uZQotLSAgICBpZiBhdHRyX25h bWUgPT0gJ25zc2xhcGQtaWRsaXN0c2NhbmxpbWl0JzoKLS0gICAgICAgIGJhY2tlbmQgPSBCYWNr ZW5kcyh0b3BvbG9neV9zdC5zdGFuZGFsb25lKS5nZXRfYmFja2VuZChERUZBVUxUX1NVRkZJWCkK LS0gICAgICAgIGFuY2VzdG9yaWRfaW5kZXggPSBiYWNrZW5kLmdldF9pbmRleCgnYW5jZXN0b3Jp ZCcpCi0tICAgICAgICBhbmNlc3RvcmlkX2luZGV4LnJlcGxhY2UoIm5zSW5kZXhJRExpc3RTY2Fu TGltaXQiLCBlbnN1cmVfYnl0ZXMoImxpbWl0PTEwMCB0eXBlPWVxIGZsYWdzPUFORCIpKQotLQot LSAgICBpZiAocmVzdGFydCk6Ci0tICAgICAgICBsb2cuaW5mbygnSW5zdGFuY2UgcmVzdGFydGVk JykKLS0gICAgICAgIHRvcG9sb2d5X3N0LnN0YW5kYWxvbmUucmVzdGFydCgpCi0gICAgIGNvbmZf cGFyYW1fZGljdCA9IHthdHRyX25hbWU6IGF0dHJfdmFsdWV9Ci0gICAgIHNlYXJjaF9mbHQgPSBy Jyh1aWQ9dGVzdCopJwotICAgICBzZWFyY2hyZXFfYXR0cmxpc3QgPSBbJ2RuJywgJ3NuJ10KLUBA IC00MDIsOCArMzkzLDYgQEAgZGVmIHRlc3Rfc2VhcmNoX2xpbWl0c19mYWlsKHRvcG9sb2d5X3N0 LCBjcmVhdGVfdXNlciwgcGFnZV9zaXplLCB1c2Vyc19udW0sCi0gICAgICAgICAgICAgZWxzZToK LSAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgZmluYWxseToKLS0gICAgICAgIGlmIGFuY2Vz dG9yaWRfaW5kZXg6Ci0tICAgICAgICAgICAgYW5jZXN0b3JpZF9pbmRleC5yZXBsYWNlKCJuc0lu ZGV4SURMaXN0U2NhbkxpbWl0IiwgZW5zdXJlX2J5dGVzKCJsaW1pdD01MDAwIHR5cGU9ZXEgZmxh Z3M9QU5EIikpCi0gICAgICAgICBkZWxfdXNlcnModXNlcnNfbGlzdCkKLSAgICAgICAgIGNoYW5n ZV9jb25mX2F0dHIodG9wb2xvZ3lfc3QsIHN1ZmZpeCwgYXR0cl9uYW1lLCBhdHRyX3ZhbHVlX2Jj aykKLSAKLWRpZmYgLS1naXQgYS9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2JhY2stbGRi bS5oIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9iYWNrLWxkYm0uaAotaW5kZXggYjE4 N2MyNmJjLi5lMjNlN2ZmNDMgMTAwNjQ0Ci0tLS0gYS9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1s ZGJtL2JhY2stbGRibS5oCi0rKysgYi9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2JhY2st bGRibS5oCi1AQCAtNTgzLDcgKzU4Myw2IEBAIHN0cnVjdCBsZGJtaW5mbwotICAgICBpbnQgbGlf bW9kZTsKLSAgICAgaW50IGxpX2xvb2t0aHJvdWdobGltaXQ7Ci0gICAgIGludCBsaV9hbGxpZHN0 aHJlc2hvbGQ7Ci0tICAgIGludCBsaV9zeXN0ZW1fYWxsaWRzdGhyZXNob2xkOwotICAgICBjaGFy ICpsaV9kaXJlY3Rvcnk7Ci0gICAgIGludCBsaV9yZXNsaW1pdF9sb29rdGhyb3VnaF9oYW5kbGU7 Ci0gICAgIHVpbnQ2NF90IGxpX2RiY2FjaGVzaXplOwotZGlmZiAtLWdpdCBhL2xkYXAvc2VydmVy cy9zbGFwZC9iYWNrLWxkYm0vaW5kZXguYyBiL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0v aW5kZXguYwotaW5kZXggMGFiODI5NDhjLi5hNTAwNGJlMTkgMTAwNjQ0Ci0tLS0gYS9sZGFwL3Nl cnZlcnMvc2xhcGQvYmFjay1sZGJtL2luZGV4LmMKLSsrKyBiL2xkYXAvc2VydmVycy9zbGFwZC9i YWNrLWxkYm0vaW5kZXguYwotQEAgLTk5Nyw4ICs5OTcsNiBAQCBpbmRleF9yZWFkX2V4dF9hbGxp ZHMoCi0gICAgIH0KLSAgICAgaWYgKHBiKSB7Ci0gICAgICAgICBzbGFwaV9wYmxvY2tfZ2V0KHBi LCBTTEFQSV9TRUFSQ0hfSVNfQU5ELCAmaXNfYW5kKTsKLS0gICAgfSBlbHNlIGlmIChzdHJjYXNl Y21wKHR5cGUsIExEQk1fQU5DRVNUT1JJRF9TVFIpID09IDApIHsKLS0gICAgICAgIGlzX2FuZCA9 IDE7Ci0gICAgIH0KLSAgICAgYWlfZmxhZ3MgPSBpc19hbmQgPyBJTkRFWF9BTExJRFNfRkxBR19B TkQgOiAwOwotICAgICAvKiB0aGUgY2FsbGVyIGNhbiBwYXNzIGluIGEgdmFsdWUgb2YgMCAtIGp1 c3QgaWdub3JlIHRob3NlIC0gYnV0IGlmIHRoZSBpbmRleAotZGlmZiAtLWdpdCBhL2xkYXAvc2Vy dmVycy9zbGFwZC9iYWNrLWxkYm0vaW5zdGFuY2UuYyBiL2xkYXAvc2VydmVycy9zbGFwZC9iYWNr LWxkYm0vaW5zdGFuY2UuYwotaW5kZXggMmE2ZThjYmI4Li4yYjcxY2Q0ZjcgMTAwNjQ0Ci0tLS0g YS9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2luc3RhbmNlLmMKLSsrKyBiL2xkYXAvc2Vy dmVycy9zbGFwZC9iYWNrLWxkYm0vaW5zdGFuY2UuYwotQEAgLTE2LDcgKzE2LDcgQEAKLSAKLSAv KiBGb3J3YXJkIGRlY2xhcmF0aW9ucyAqLwotIHN0YXRpYyB2b2lkIGxkYm1faW5zdGFuY2VfZGVz dHJ1Y3Rvcih2b2lkICoqYXJnKTsKLS1TbGFwaV9FbnRyeSAqbGRibV9pbnN0YW5jZV9pbml0X2Nv bmZpZ19lbnRyeShjaGFyICpjbl92YWwsIGNoYXIgKnYxLCBjaGFyICp2MiwgY2hhciAqdjMsIGNo YXIgKnY0LCBjaGFyICptciwgY2hhciAqc2NhbmxpbWl0KTsKLStTbGFwaV9FbnRyeSAqbGRibV9p bnN0YW5jZV9pbml0X2NvbmZpZ19lbnRyeShjaGFyICpjbl92YWwsIGNoYXIgKnYxLCBjaGFyICp2 MiwgY2hhciAqdjMsIGNoYXIgKnY0LCBjaGFyICptcik7Ci0gCi0gCi0gLyogQ3JlYXRlcyBhbmQg aW5pdGlhbGl6ZXMgYSBuZXcgbGRibV9pbnN0YW5jZSBzdHJ1Y3R1cmUuCi1AQCAtMTI2LDcgKzEy Niw3IEBAIGRvbmU6Ci0gICogVGFrZSBhIGJ1bmNoIG9mIHN0cmluZ3MsIGFuZCBjcmVhdGUgYSBp bmRleCBjb25maWcgZW50cnkKLSAgKi8KLSBTbGFwaV9FbnRyeSAqCi0tbGRibV9pbnN0YW5jZV9p bml0X2NvbmZpZ19lbnRyeShjaGFyICpjbl92YWwsIGNoYXIgKnZhbDEsIGNoYXIgKnZhbDIsIGNo YXIgKnZhbDMsIGNoYXIgKnZhbDQsIGNoYXIgKm1yLCBjaGFyICpzY2FubGltaXQpCi0rbGRibV9p bnN0YW5jZV9pbml0X2NvbmZpZ19lbnRyeShjaGFyICpjbl92YWwsIGNoYXIgKnZhbDEsIGNoYXIg KnZhbDIsIGNoYXIgKnZhbDMsIGNoYXIgKnZhbDQsIGNoYXIgKm1yKQotIHsKLSAgICAgU2xhcGlf RW50cnkgKmUgPSBzbGFwaV9lbnRyeV9hbGxvYygpOwotICAgICBzdHJ1Y3QgYmVydmFsICp2YWxz WzJdOwotQEAgLTE2NywxMSArMTY3LDYgQEAgbGRibV9pbnN0YW5jZV9pbml0X2NvbmZpZ19lbnRy eShjaGFyICpjbl92YWwsIGNoYXIgKnZhbDEsIGNoYXIgKnZhbDIsIGNoYXIgKnZhbDMKLSAgICAg ICAgIHNsYXBpX2VudHJ5X2FkZF92YWx1ZXMoZSwgIm5zTWF0Y2hpbmdSdWxlIiwgdmFscyk7Ci0g ICAgIH0KLSAKLS0gICAgaWYgKHNjYW5saW1pdCkgewotLSAgICAgICAgdmFsLmJ2X3ZhbCA9IHNj YW5saW1pdDsKLS0gICAgICAgIHZhbC5idl9sZW4gPSBzdHJsZW4oc2NhbmxpbWl0KTsKLS0gICAg ICAgIHNsYXBpX2VudHJ5X2FkZF92YWx1ZXMoZSwgIm5zSW5kZXhJRExpc3RTY2FuTGltaXQiLCB2 YWxzKTsKLS0gICAgfQotICAgICByZXR1cm4gZTsKLSB9Ci0gCi1AQCAtMTg0LDYwICsxNzksOCBA QCBsZGJtX2luc3RhbmNlX2NyZWF0ZV9kZWZhdWx0X2luZGV4ZXMoYmFja2VuZCAqYmUpCi0gewot ICAgICBTbGFwaV9FbnRyeSAqZTsKLSAgICAgbGRibV9pbnN0YW5jZSAqaW5zdCA9IChsZGJtX2lu c3RhbmNlICopYmUtPmJlX2luc3RhbmNlX2luZm87Ci0tICAgIHN0cnVjdCBsZGJtaW5mbyAqbGkg PSAoc3RydWN0IGxkYm1pbmZvICopYmUtPmJlX2RhdGFiYXNlLT5wbGdfcHJpdmF0ZTsKLSAgICAg Lyogd3JpdGUgdGhlIGRzZSBmaWxlIG9ubHkgb24gdGhlIGZpbmFsIGluZGV4ICovCi0gICAgIGlu dCBmbGFncyA9IExEQk1fSU5TVEFOQ0VfQ09ORklHX0RPTlRfV1JJVEU7Ci0tICAgIGNoYXIgKmFu Y2VzdG9yaWRfaW5kZXhlc19saW1pdCA9IE5VTEw7Ci0tICAgIGNoYXIgKnBhcmVudGlkX2luZGV4 ZXNfbGltaXQgPSBOVUxMOwotLSAgICBzdHJ1Y3QgYXR0cmluZm8gKmFpID0gTlVMTDsKLS0gICAg aW50IGluZGV4X2FscmVhZHlfY29uZmlndXJlZCA9IDA7Ci0tICAgIHN0cnVjdCBpbmRleF9pZGxp c3RzaXplaW5mbyAqaXRlcjsKLS0gICAgaW50IGNvb2tpZTsKLS0gICAgaW50IGxpbWl0OwotLQot LSAgICBhaW5mb19nZXQoYmUsIChjaGFyICopTERCTV9BTkNFU1RPUklEX1NUUiwgJmFpKTsKLS0g ICAgaWYgKGFpICYmIGFpLT5haV9pZGxpc3RpbmZvKSB7Ci0tICAgICAgICBpdGVyID0gKHN0cnVj dCBpbmRleF9pZGxpc3RzaXplaW5mbyAqKWRsX2dldF9maXJzdChhaS0+YWlfaWRsaXN0aW5mbywg JmNvb2tpZSk7Ci0tICAgICAgICBpZiAoaXRlcikgewotLSAgICAgICAgICAgIGxpbWl0ID0gaXRl ci0+YWlfaWRsaXN0c2l6ZWxpbWl0OwotLSAgICAgICAgICAgIHNsYXBpX2xvZ19lcnIoU0xBUElf TE9HX0JBQ0tMREJNLCAibGRibV9pbnN0YW5jZV9jcmVhdGVfZGVmYXVsdF9pbmRleGVzIiwKLS0g ICAgICAgICAgICAgICAgICAgICAgInNldCBhbmNlc3RvcmlkIGxpbWl0IHRvICVkIGZyb20gYXR0 cmlidXRlIGluZGV4XG4iLAotLSAgICAgICAgICAgICAgICAgICAgICBsaW1pdCk7Ci0tICAgICAg ICB9IGVsc2UgewotLSAgICAgICAgICAgIGxpbWl0ID0gbGktPmxpX3N5c3RlbV9hbGxpZHN0aHJl c2hvbGQ7Ci0tICAgICAgICAgICAgc2xhcGlfbG9nX2VycihTTEFQSV9MT0dfQkFDS0xEQk0sICJs ZGJtX2luc3RhbmNlX2NyZWF0ZV9kZWZhdWx0X2luZGV4ZXMiLAotLSAgICAgICAgICAgICAgICAg ICAgICAic2V0IGFuY2VzdG9yaWQgbGltaXQgdG8gJWQgZnJvbSBkZWZhdWx0IChmYWlsIHRvIHJl YWQgbGltaXQpXG4iLAotLSAgICAgICAgICAgICAgICAgICAgICBsaW1pdCk7Ci0tICAgICAgICB9 Ci0tICAgICAgICBhbmNlc3RvcmlkX2luZGV4ZXNfbGltaXQgPSBzbGFwaV9jaF9zbXByaW50Zigi bGltaXQ9JWQgdHlwZT1lcSBmbGFncz1BTkQiLCBsaW1pdCk7Ci0tICAgIH0gZWxzZSB7Ci0tICAg ICAgICBhbmNlc3RvcmlkX2luZGV4ZXNfbGltaXQgPSBzbGFwaV9jaF9zbXByaW50ZigibGltaXQ9 JWQgdHlwZT1lcSBmbGFncz1BTkQiLCBsaS0+bGlfc3lzdGVtX2FsbGlkc3RocmVzaG9sZCk7Ci0t ICAgICAgICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xPR19CQUNLTERCTSwgImxkYm1faW5zdGFuY2Vf Y3JlYXRlX2RlZmF1bHRfaW5kZXhlcyIsCi0tICAgICAgICAgICAgICAgICAgICAgICJzZXQgYW5j ZXN0b3JpZCBsaW1pdCB0byAlZCBmcm9tIGRlZmF1bHQgKG5vIGF0dHJpYnV0ZSBvciBsaW1pdClc biIsCi0tICAgICAgICAgICAgICAgICAgICAgIGxpLT5saV9zeXN0ZW1fYWxsaWRzdGhyZXNob2xk KTsKLS0gICAgfQotLQotLSAgICBhaW5mb19nZXQoYmUsIChjaGFyICopTERCTV9QQVJFTlRJRF9T VFIsICZhaSk7Ci0tICAgIGlmIChhaSAmJiBhaS0+YWlfaWRsaXN0aW5mbykgewotLSAgICAgICAg aXRlciA9IChzdHJ1Y3QgaW5kZXhfaWRsaXN0c2l6ZWluZm8gKilkbF9nZXRfZmlyc3QoYWktPmFp X2lkbGlzdGluZm8sICZjb29raWUpOwotLSAgICAgICAgaWYgKGl0ZXIpIHsKLS0gICAgICAgICAg ICBsaW1pdCA9IGl0ZXItPmFpX2lkbGlzdHNpemVsaW1pdDsKLS0gICAgICAgICAgICBzbGFwaV9s b2dfZXJyKFNMQVBJX0xPR19CQUNLTERCTSwgImxkYm1faW5zdGFuY2VfY3JlYXRlX2RlZmF1bHRf aW5kZXhlcyIsCi0tICAgICAgICAgICAgICAgICAgICAgICJzZXQgcGFyZW50aWQgbGltaXQgdG8g JWQgZnJvbSBhdHRyaWJ1dGUgaW5kZXhcbiIsCi0tICAgICAgICAgICAgICAgICAgICAgIGxpbWl0 KTsKLS0gICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgbGltaXQgPSBsaS0+bGlfc3lzdGVt X2FsbGlkc3RocmVzaG9sZDsKLS0gICAgICAgICAgICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xPR19C QUNLTERCTSwgImxkYm1faW5zdGFuY2VfY3JlYXRlX2RlZmF1bHRfaW5kZXhlcyIsCi0tICAgICAg ICAgICAgICAgICAgICAgICJzZXQgcGFyZW50aWQgbGltaXQgdG8gJWQgZnJvbSBkZWZhdWx0IChm YWlsIHRvIHJlYWQgbGltaXQpXG4iLAotLSAgICAgICAgICAgICAgICAgICAgICBsaW1pdCk7Ci0t ICAgICAgICB9Ci0tICAgICAgICBwYXJlbnRpZF9pbmRleGVzX2xpbWl0ID0gc2xhcGlfY2hfc21w cmludGYoImxpbWl0PSVkIHR5cGU9ZXEgZmxhZ3M9QU5EIiwgbGltaXQpOwotLSAgICB9IGVsc2Ug ewotLSAgICAgICAgcGFyZW50aWRfaW5kZXhlc19saW1pdCA9IHNsYXBpX2NoX3NtcHJpbnRmKCJs aW1pdD0lZCB0eXBlPWVxIGZsYWdzPUFORCIsIGxpLT5saV9zeXN0ZW1fYWxsaWRzdGhyZXNob2xk KTsKLS0gICAgICAgIHNsYXBpX2xvZ19lcnIoU0xBUElfTE9HX0JBQ0tMREJNLCAibGRibV9pbnN0 YW5jZV9jcmVhdGVfZGVmYXVsdF9pbmRleGVzIiwKLS0gICAgICAgICAgICAgICAgICAgICAgInNl dCBwYXJlbnRpZCBsaW1pdCB0byAlZCBmcm9tIGRlZmF1bHQgKG5vIGF0dHJpYnV0ZSBvciBsaW1p dClcbiIsCi0tICAgICAgICAgICAgICAgICAgICAgIGxpLT5saV9zeXN0ZW1fYWxsaWRzdGhyZXNo b2xkKTsKLS0gICAgfQotIAotICAgICAvKgotICAgICAgKiBBbHdheXMgaW5kZXggKGVudHJ5ZG4g b3IgZW50cnlyZG4pLCBwYXJlbnRpZCwgb2JqZWN0Y2xhc3MsCi1AQCAtMjQ1LDQ4ICsxODgsNDIg QEAgbGRibV9pbnN0YW5jZV9jcmVhdGVfZGVmYXVsdF9pbmRleGVzKGJhY2tlbmQgKmJlKQotICAg ICAgKiBzaW5jZSB0aGV5IGFyZSB1c2VkIGJ5IHNvbWUgc2VhcmNoZXMsIHJlcGxpY2F0aW9uIGFu ZCB0aGUKLSAgICAgICogQUNMIHJvdXRpbmVzLgotICAgICAgKi8KLS0gICAgZSA9IGxkYm1faW5z dGFuY2VfaW5pdF9jb25maWdfZW50cnkoTERCTV9FTlRSWVJETl9TVFIsICJzdWJ0cmVlIiwgMCwg MCwgMCwgMCwgMCk7Ci0rICAgIGUgPSBsZGJtX2luc3RhbmNlX2luaXRfY29uZmlnX2VudHJ5KExE Qk1fRU5UUllSRE5fU1RSLCAic3VidHJlZSIsIDAsIDAsIDAsIDApOwotICAgICBsZGJtX2luc3Rh bmNlX2NvbmZpZ19hZGRfaW5kZXhfZW50cnkoaW5zdCwgZSwgZmxhZ3MpOwotICAgICBzbGFwaV9l bnRyeV9mcmVlKGUpOwotIAotLSAgICBhaW5mb19nZXQoYmUsIChjaGFyICopTERCTV9QQVJFTlRJ RF9TVFIsICZhaSk7Ci0tICAgIC8qIENoZWNrIGlmIHRoZSBhdHRyaW5mbyBpcyBhY3R1YWxseSBm b3IgcGFyZW50aWQsIG5vdCBhIGZhbGxiYWNrIHRvIC5kZWZhdWx0ICovCi0tICAgIGluZGV4X2Fs cmVhZHlfY29uZmlndXJlZCA9IChhaSAhPSBOVUxMICYmIHN0cmNtcChhaS0+YWlfdHlwZSwgTERC TV9QQVJFTlRJRF9TVFIpID09IDApOwotLSAgICBpZiAoIWluZGV4X2FscmVhZHlfY29uZmlndXJl ZCkgewotLSAgICAgICAgZSA9IGxkYm1faW5zdGFuY2VfaW5pdF9jb25maWdfZW50cnkoTERCTV9Q QVJFTlRJRF9TVFIsICJlcSIsIDAsIDAsIDAsICJpbnRlZ2VyT3JkZXJpbmdNYXRjaCIsIHBhcmVu dGlkX2luZGV4ZXNfbGltaXQpOwotLSAgICAgICAgbGRibV9pbnN0YW5jZV9jb25maWdfYWRkX2lu ZGV4X2VudHJ5KGluc3QsIGUsIGZsYWdzKTsKLS0gICAgICAgIGF0dHJfaW5kZXhfY29uZmlnKGJl LCAibGRibSBpbmRleCBpbml0IiwgMCwgZSwgMSwgMCwgTlVMTCk7Ci0tICAgICAgICBzbGFwaV9l bnRyeV9mcmVlKGUpOwotLSAgICB9Ci0rICAgIGUgPSBsZGJtX2luc3RhbmNlX2luaXRfY29uZmln X2VudHJ5KExEQk1fUEFSRU5USURfU1RSLCAiZXEiLCAwLCAwLCAwLCAiaW50ZWdlck9yZGVyaW5n TWF0Y2giKTsKLSsgICAgbGRibV9pbnN0YW5jZV9jb25maWdfYWRkX2luZGV4X2VudHJ5KGluc3Qs IGUsIGZsYWdzKTsKLSsgICAgc2xhcGlfZW50cnlfZnJlZShlKTsKLSAKLS0gICAgZSA9IGxkYm1f aW5zdGFuY2VfaW5pdF9jb25maWdfZW50cnkoIm9iamVjdGNsYXNzIiwgImVxIiwgMCwgMCwgMCwg MCwgMCk7Ci0rICAgIGUgPSBsZGJtX2luc3RhbmNlX2luaXRfY29uZmlnX2VudHJ5KCJvYmplY3Rj bGFzcyIsICJlcSIsIDAsIDAsIDAsIDApOwotICAgICBsZGJtX2luc3RhbmNlX2NvbmZpZ19hZGRf aW5kZXhfZW50cnkoaW5zdCwgZSwgZmxhZ3MpOwotICAgICBzbGFwaV9lbnRyeV9mcmVlKGUpOwot IAotLSAgICBlID0gbGRibV9pbnN0YW5jZV9pbml0X2NvbmZpZ19lbnRyeSgiYWNpIiwgInByZXMi LCAwLCAwLCAwLCAwLCAwKTsKLSsgICAgZSA9IGxkYm1faW5zdGFuY2VfaW5pdF9jb25maWdfZW50 cnkoImFjaSIsICJwcmVzIiwgMCwgMCwgMCwgMCk7Ci0gICAgIGxkYm1faW5zdGFuY2VfY29uZmln X2FkZF9pbmRleF9lbnRyeShpbnN0LCBlLCBmbGFncyk7Ci0gICAgIHNsYXBpX2VudHJ5X2ZyZWUo ZSk7Ci0gCi0tICAgIGUgPSBsZGJtX2luc3RhbmNlX2luaXRfY29uZmlnX2VudHJ5KExEQk1fTlVN U1VCT1JESU5BVEVTX1NUUiwgInByZXMiLCAwLCAwLCAwLCAwLCAwKTsKLSsgICAgZSA9IGxkYm1f aW5zdGFuY2VfaW5pdF9jb25maWdfZW50cnkoTERCTV9OVU1TVUJPUkRJTkFURVNfU1RSLCAicHJl cyIsIDAsIDAsIDAsIDApOwotICAgICBsZGJtX2luc3RhbmNlX2NvbmZpZ19hZGRfaW5kZXhfZW50 cnkoaW5zdCwgZSwgZmxhZ3MpOwotICAgICBzbGFwaV9lbnRyeV9mcmVlKGUpOwotIAotLSAgICBl ID0gbGRibV9pbnN0YW5jZV9pbml0X2NvbmZpZ19lbnRyeShTTEFQSV9BVFRSX1VOSVFVRUlELCAi ZXEiLCAwLCAwLCAwLCAwLCAwKTsKLSsgICAgZSA9IGxkYm1faW5zdGFuY2VfaW5pdF9jb25maWdf ZW50cnkoU0xBUElfQVRUUl9VTklRVUVJRCwgImVxIiwgMCwgMCwgMCwgMCk7Ci0gICAgIGxkYm1f aW5zdGFuY2VfY29uZmlnX2FkZF9pbmRleF9lbnRyeShpbnN0LCBlLCBmbGFncyk7Ci0gICAgIHNs YXBpX2VudHJ5X2ZyZWUoZSk7Ci0gCi0gICAgIC8qIEZvciBNTVIsIHdlIG5lZWQgdGhpcyBhdHRy aWJ1dGUgKHRvIHJlcGxhY2UgdXNlIG9mIGRuY29tcCBpbiBkZWxldGUpLiAqLwotLSAgICBlID0g bGRibV9pbnN0YW5jZV9pbml0X2NvbmZpZ19lbnRyeShBVFRSX05TRFM1X1JFUExDT05GTElDVCwg ImVxIiwgInByZXMiLCAwLCAwLCAwLCAwKTsKLSsgICAgZSA9IGxkYm1faW5zdGFuY2VfaW5pdF9j b25maWdfZW50cnkoQVRUUl9OU0RTNV9SRVBMQ09ORkxJQ1QsICJlcSIsICJwcmVzIiwgMCwgMCwg MCk7Ci0gICAgIGxkYm1faW5zdGFuY2VfY29uZmlnX2FkZF9pbmRleF9lbnRyeShpbnN0LCBlLCBm bGFncyk7Ci0gICAgIHNsYXBpX2VudHJ5X2ZyZWUoZSk7Ci0gCi0gICAgIC8qIHdyaXRlIHRoZSBk c2UgZmlsZSBvbmx5IG9uIHRoZSBmaW5hbCBpbmRleCAqLwotLSAgICBlID0gbGRibV9pbnN0YW5j ZV9pbml0X2NvbmZpZ19lbnRyeShTTEFQSV9BVFRSX05TQ1BfRU5UUllETiwgImVxIiwgMCwgMCwg MCwgMCwgMCk7Ci0rICAgIGUgPSBsZGJtX2luc3RhbmNlX2luaXRfY29uZmlnX2VudHJ5KFNMQVBJ X0FUVFJfTlNDUF9FTlRSWUROLCAiZXEiLCAwLCAwLCAwLCAwKTsKLSAgICAgbGRibV9pbnN0YW5j ZV9jb25maWdfYWRkX2luZGV4X2VudHJ5KGluc3QsIGUsIGZsYWdzKTsKLSAgICAgc2xhcGlfZW50 cnlfZnJlZShlKTsKLSAKLSAgICAgLyogbGRibV9pbnN0YW5jZV9jb25maWdfYWRkX2luZGV4X2Vu dHJ5KGluc3QsIDIsIGFyZ3YpOyAqLwotLSAgICBlID0gbGRibV9pbnN0YW5jZV9pbml0X2NvbmZp Z19lbnRyeShMREJNX1BTRVVET19BVFRSX0RFRkFVTFQsICJub25lIiwgMCwgMCwgMCwgMCwgMCk7 Ci0rICAgIGUgPSBsZGJtX2luc3RhbmNlX2luaXRfY29uZmlnX2VudHJ5KExEQk1fUFNFVURPX0FU VFJfREVGQVVMVCwgIm5vbmUiLCAwLCAwLCAwLCAwKTsKLSAgICAgYXR0cl9pbmRleF9jb25maWco YmUsICJsZGJtIGluZGV4IGluaXQiLCAwLCBlLCAxLCAwLCBOVUxMKTsKLSAgICAgc2xhcGlfZW50 cnlfZnJlZShlKTsKLSAKLUBAIC0yOTQsMTggKzIzMSw5IEBAIGxkYm1faW5zdGFuY2VfY3JlYXRl X2RlZmF1bHRfaW5kZXhlcyhiYWNrZW5kICpiZSkKLSAgICAgICogYW5jZXN0b3JpZCBpcyBzcGVj aWFsLCB0aGVyZSBpcyBhY3R1YWxseSBubyBzdWNoIGF0dHIgdHlwZQotICAgICAgKiBidXQgd2Ug c3RpbGwgd2FudCB0byB1c2UgdGhlIGF0dHIgaW5kZXggZmlsZSBBUElzLgotICAgICAgKi8KLS0g ICAgYWluZm9fZ2V0KGJlLCAoY2hhciAqKUxEQk1fQU5DRVNUT1JJRF9TVFIsICZhaSk7Ci0tICAg IC8qIENoZWNrIGlmIHRoZSBhdHRyaW5mbyBpcyBhY3R1YWxseSBmb3IgYW5jZXN0b3JpZCwgbm90 IGEgZmFsbGJhY2sgdG8gLmRlZmF1bHQgKi8KLS0gICAgaW5kZXhfYWxyZWFkeV9jb25maWd1cmVk ID0gKGFpICE9IE5VTEwgJiYgc3RyY21wKGFpLT5haV90eXBlLCBMREJNX0FOQ0VTVE9SSURfU1RS KSA9PSAwKTsKLS0gICAgaWYgKCFpbmRleF9hbHJlYWR5X2NvbmZpZ3VyZWQpIHsKLS0gICAgICAg IGUgPSBsZGJtX2luc3RhbmNlX2luaXRfY29uZmlnX2VudHJ5KExEQk1fQU5DRVNUT1JJRF9TVFIs ICJlcSIsIDAsIDAsIDAsICJpbnRlZ2VyT3JkZXJpbmdNYXRjaCIsIGFuY2VzdG9yaWRfaW5kZXhl c19saW1pdCk7Ci0tICAgICAgICBsZGJtX2luc3RhbmNlX2NvbmZpZ19hZGRfaW5kZXhfZW50cnko aW5zdCwgZSwgZmxhZ3MpOwotLSAgICAgICAgYXR0cl9pbmRleF9jb25maWcoYmUsICJsZGJtIGlu ZGV4IGluaXQiLCAwLCBlLCAxLCAwLCBOVUxMKTsKLS0gICAgICAgIHNsYXBpX2VudHJ5X2ZyZWUo ZSk7Ci0tICAgIH0KLS0KLS0gICAgc2xhcGlfY2hfZnJlZV9zdHJpbmcoJmFuY2VzdG9yaWRfaW5k ZXhlc19saW1pdCk7Ci0tICAgIHNsYXBpX2NoX2ZyZWVfc3RyaW5nKCZwYXJlbnRpZF9pbmRleGVz X2xpbWl0KTsKLSsgICAgZSA9IGxkYm1faW5zdGFuY2VfaW5pdF9jb25maWdfZW50cnkoTERCTV9B TkNFU1RPUklEX1NUUiwgImVxIiwgMCwgMCwgMCwgImludGVnZXJPcmRlcmluZ01hdGNoIik7Ci0r ICAgIGF0dHJfaW5kZXhfY29uZmlnKGJlLCAibGRibSBpbmRleCBpbml0IiwgMCwgZSwgMSwgMCwg TlVMTCk7Ci0rICAgIHNsYXBpX2VudHJ5X2ZyZWUoZSk7Ci0gCi0gICAgIHJldHVybiAwOwotIH0K LWRpZmYgLS1naXQgYS9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2xkYm1fY29uZmlnLmMg Yi9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2xkYm1fY29uZmlnLmMKLWluZGV4IGMyNGUz ZDc2Ni4uNmEyY2U0YzI3IDEwMDY0NAotLS0tIGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRi bS9sZGJtX2NvbmZpZy5jCi0rKysgYi9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2xkYm1f Y29uZmlnLmMKLUBAIC0zODUsMzUgKzM4NSw2IEBAIGxkYm1fY29uZmlnX2FsbGlkc3RocmVzaG9s ZF9zZXQodm9pZCAqYXJnLCB2b2lkICp2YWx1ZSwgY2hhciAqZXJyb3JidWYgX19hdHRyaWJ1Ci0g ICAgIHJldHVybiByZXR2YWw7Ci0gfQotIAotLXN0YXRpYyB2b2lkICoKLS1sZGJtX2NvbmZpZ19z eXN0ZW1fYWxsaWRzdGhyZXNob2xkX2dldCh2b2lkICphcmcpCi0tewotLSAgICBzdHJ1Y3QgbGRi bWluZm8gKmxpID0gKHN0cnVjdCBsZGJtaW5mbyAqKWFyZzsKLS0KLS0gICAgcmV0dXJuICh2b2lk ICopKCh1aW50cHRyX3QpKGxpLT5saV9zeXN0ZW1fYWxsaWRzdGhyZXNob2xkKSk7Ci0tfQotLQot LXN0YXRpYyBpbnQKLS1sZGJtX2NvbmZpZ19zeXN0ZW1fYWxsaWRzdGhyZXNob2xkX3NldCh2b2lk ICphcmcsIHZvaWQgKnZhbHVlLCBjaGFyICplcnJvcmJ1ZiBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQp KSwgaW50IHBoYXNlIF9fYXR0cmlidXRlX18oKHVudXNlZCkpLCBpbnQgYXBwbHkpCi0tewotLSAg ICBzdHJ1Y3QgbGRibWluZm8gKmxpID0gKHN0cnVjdCBsZGJtaW5mbyAqKWFyZzsKLS0gICAgaW50 IHJldHZhbCA9IExEQVBfU1VDQ0VTUzsKLS0gICAgaW50IHZhbCA9IChpbnQpKCh1aW50cHRyX3Qp dmFsdWUpOwotLQotLSAgICAvKiBEbyB3aGF0ZXZlciB3ZSBjYW4gdG8gbWFrZSBzdXJlIHRoZSBk YXRhIGlzIG9rLiAqLwotLQotLSAgICAvKiBDYXRjaCBhdHRlbXB0cyB0byBjb25maWd1cmUgYSBz dHVwaWRseSBsb3cgYW5jZXN0b3JpZCBhbGxpZHN0aHJlc2hvbGQgKi8KLS0gICAgaWYgKCh2YWwg PiAtMSkgJiYgKHZhbCA8IDUwMDApKSB7Ci0tICAgICAgICB2YWwgPSA1MDAwOwotLSAgICB9Ci0t Ci0tICAgIGlmIChhcHBseSkgewotLSAgICAgICAgbGktPmxpX3N5c3RlbV9hbGxpZHN0aHJlc2hv bGQgPSB2YWw7Ci0tICAgIH0KLS0KLS0gICAgcmV0dXJuIHJldHZhbDsKLS19Ci0tCi0gc3RhdGlj IHZvaWQgKgotIGxkYm1fY29uZmlnX3BhZ2VkYWxsaWRzdGhyZXNob2xkX2dldCh2b2lkICphcmcp Ci0gewotQEAgLTEwOTQsNyArMTA2NSw2IEBAIHN0YXRpYyBjb25maWdfaW5mbyBsZGJtX2NvbmZp Z1tdID0gewotICAgICB7Q09ORklHX0xPT0tUSFJPVUdITElNSVQsIENPTkZJR19UWVBFX0lOVCwg IjUwMDAiLCAmbGRibV9jb25maWdfbG9va3Rocm91Z2hsaW1pdF9nZXQsICZsZGJtX2NvbmZpZ19s b29rdGhyb3VnaGxpbWl0X3NldCwgQ09ORklHX0ZMQUdfQUxXQVlTX1NIT1cgfCBDT05GSUdfRkxB R19BTExPV19SVU5OSU5HX0NIQU5HRX0sCi0gICAgIHtDT05GSUdfTU9ERSwgQ09ORklHX1RZUEVf SU5UX09DVEFMLCAiMDYwMCIsICZsZGJtX2NvbmZpZ19tb2RlX2dldCwgJmxkYm1fY29uZmlnX21v ZGVfc2V0LCBDT05GSUdfRkxBR19BTFdBWVNfU0hPVyB8IENPTkZJR19GTEFHX0FMTE9XX1JVTk5J TkdfQ0hBTkdFfSwKLSAgICAge0NPTkZJR19JRExJU1RTQ0FOTElNSVQsIENPTkZJR19UWVBFX0lO VCwgIjIxNDc0ODM2NDYiLCAmbGRibV9jb25maWdfYWxsaWRzdGhyZXNob2xkX2dldCwgJmxkYm1f Y29uZmlnX2FsbGlkc3RocmVzaG9sZF9zZXQsIENPTkZJR19GTEFHX0FMV0FZU19TSE9XIHwgQ09O RklHX0ZMQUdfQUxMT1dfUlVOTklOR19DSEFOR0V9LAotLSAgICB7Q09ORklHX1NZU1RFTUlETElT VFNDQU5MSU1JVCwgQ09ORklHX1RZUEVfSU5ULCAiNTAwMCIsICZsZGJtX2NvbmZpZ19zeXN0ZW1f YWxsaWRzdGhyZXNob2xkX2dldCwgJmxkYm1fY29uZmlnX3N5c3RlbV9hbGxpZHN0aHJlc2hvbGRf c2V0LCBDT05GSUdfRkxBR19BTFdBWVNfU0hPVyB8IENPTkZJR19GTEFHX0FMTE9XX1JVTk5JTkdf Q0hBTkdFfSwKLSAgICAge0NPTkZJR19ESVJFQ1RPUlksIENPTkZJR19UWVBFX1NUUklORywgIiIs ICZsZGJtX2NvbmZpZ19kaXJlY3RvcnlfZ2V0LCAmbGRibV9jb25maWdfZGlyZWN0b3J5X3NldCwg Q09ORklHX0ZMQUdfQUxXQVlTX1NIT1cgfCBDT05GSUdfRkxBR19BTExPV19SVU5OSU5HX0NIQU5H RSB8IENPTkZJR19GTEFHX1NLSVBfREVGQVVMVF9TRVRUSU5HfSwKLSAgICAge0NPTkZJR19NQVhQ QVNTQkVGT1JFTUVSR0UsIENPTkZJR19UWVBFX0lOVCwgIjEwMCIsICZsZGJtX2NvbmZpZ19tYXhw YXNzYmVmb3JlbWVyZ2VfZ2V0LCAmbGRibV9jb25maWdfbWF4cGFzc2JlZm9yZW1lcmdlX3NldCwg MH0sCi0gCi1kaWZmIC0tZ2l0IGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9sZGJtX2Nv bmZpZy5oIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9sZGJtX2NvbmZpZy5oCi1pbmRl eCAyOWEzNDI2YWIuLmU2OWJmZWVkZiAxMDA2NDQKLS0tLSBhL2xkYXAvc2VydmVycy9zbGFwZC9i YWNrLWxkYm0vbGRibV9jb25maWcuaAotKysrIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRi bS9sZGJtX2NvbmZpZy5oCi1AQCAtNjAsNyArNjAsNiBAQCBzdHJ1Y3QgY29uZmlnX2luZm8KLSAj ZGVmaW5lIENPTkZJR19SQU5HRUxPT0tUSFJPVUdITElNSVQgIm5zc2xhcGQtcmFuZ2Vsb29rdGhy b3VnaGxpbWl0IgotICNkZWZpbmUgQ09ORklHX1BBR0VETE9PS1RIUk9VR0hMSU1JVCAibnNzbGFw ZC1wYWdlZGxvb2t0aHJvdWdobGltaXQiCi0gI2RlZmluZSBDT05GSUdfSURMSVNUU0NBTkxJTUlU ICJuc3NsYXBkLWlkbGlzdHNjYW5saW1pdCIKLS0jZGVmaW5lIENPTkZJR19TWVNURU1JRExJU1RT Q0FOTElNSVQgIm5zc2xhcGQtc3lzdGVtaWRsaXN0c2NhbmxpbWl0IgotICNkZWZpbmUgQ09ORklH X1BBR0VESURMSVNUU0NBTkxJTUlUICJuc3NsYXBkLXBhZ2VkaWRsaXN0c2NhbmxpbWl0IgotICNk ZWZpbmUgQ09ORklHX0RJUkVDVE9SWSAibnNzbGFwZC1kaXJlY3RvcnkiCi0gI2RlZmluZSBDT05G SUdfTU9ERSAibnNzbGFwZC1tb2RlIgotZGlmZiAtLWdpdCBhL2xkYXAvc2VydmVycy9zbGFwZC9i YWNrLWxkYm0vbGRibV9pbmRleF9jb25maWcuYyBiL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxk Ym0vbGRibV9pbmRleF9jb25maWcuYwotaW5kZXggYmFlMmE2NGI5Li4zOGU3MzY4ZTEgMTAwNjQ0 Ci0tLS0gYS9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2xkYm1faW5kZXhfY29uZmlnLmMK LSsrKyBiL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vbGRibV9pbmRleF9jb25maWcuYwot QEAgLTM4NCwxNCArMzg0LDYgQEAgbGRibV9pbnN0YW5jZV9jb25maWdfYWRkX2luZGV4X2VudHJ5 KAotICAgICAgICAgfQotICAgICB9Ci0gCi0tICAgIC8qIGdldCBuc0luZGV4SURMaXN0U2Nhbkxp bWl0IGFuZCBpdHMgdmFsdWVzLCBhbmQgYWRkIHRoZW0gKi8KLS0gICAgaWYgKDAgPT0gc2xhcGlf ZW50cnlfYXR0cl9maW5kKGUsICJuc0luZGV4SURMaXN0U2NhbkxpbWl0IiwgJmF0dHIpKSB7Ci0t ICAgICAgICBmb3IgKGogPSBzbGFwaV9hdHRyX2ZpcnN0X3ZhbHVlKGF0dHIsICZzdmFsKTsgaiAh PSAtMTsgaiA9IHNsYXBpX2F0dHJfbmV4dF92YWx1ZShhdHRyLCBqLCAmc3ZhbCkpIHsKLS0gICAg ICAgICAgICBhdHRyVmFsdWUgPSBzbGFwaV92YWx1ZV9nZXRfYmVydmFsKHN2YWwpOwotLSAgICAg ICAgICAgIGVCdWYgPSBQUl9zcHJpbnRmX2FwcGVuZChlQnVmLCAibnNJbmRleElETGlzdFNjYW5M aW1pdDogJXNcbiIsIGF0dHJWYWx1ZS0+YnZfdmFsKTsKLS0gICAgICAgIH0KLS0gICAgfQotLQot ICAgICBsZGJtX2NvbmZpZ19hZGRfZHNlX2VudHJ5KGxpLCBlQnVmLCBmbGFncyk7Ci0gICAgIGlm IChlQnVmKSB7Ci0gICAgICAgICBQUl9zbXByaW50Zl9mcmVlKGVCdWYpOwotZGlmZiAtLWdpdCBh L3NyYy9saWIzODkvbGliMzg5L2JhY2tlbmQucHkgYi9zcmMvbGliMzg5L2xpYjM4OS9iYWNrZW5k LnB5Ci1pbmRleCAyNzRkNDVhYmUuLmYzZGJlN2M5MiAxMDA2NDQKLS0tLSBhL3NyYy9saWIzODkv bGliMzg5L2JhY2tlbmQucHkKLSsrKyBiL3NyYy9saWIzODkvbGliMzg5L2JhY2tlbmQucHkKLUBA IC02NDUsMTAgKzY0NSwxMSBAQCBjbGFzcyBCYWNrZW5kKERTTGRhcE9iamVjdCk6Ci0gICAgICAg ICBpbmRleGVzID0gc2VsZi5nZXRfaW5kZXhlcygpCi0gCi0gICAgICAgICAjIERlZmF1bHQgc3lz dGVtIGluZGV4ZXMgdGFrZW4gZnJvbSBsZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2luc3Rh bmNlLmMKLSsgICAgICAgICMgTm90ZTogZW50cnlyZG4gYW5kIGFuY2VzdG9yaWQgYXJlIGludGVy bmFsIHN5c3RlbSBpbmRleGVzIHRoYXQgYXJlIG5vdAotKyAgICAgICAgIyBleHBvc2VkIGluIGNu PWNvbmZpZyAtIHRoZXkgYXJlIG1hbmFnZWQgaW50ZXJuYWxseSBieSB0aGUgc2VydmVyLgotKyAg ICAgICAgIyBPbmx5IHBhcmVudGlkIGhhcyBhIERTRSBjb25maWcgZW50cnkgKGZvciB0aGUgaW50 ZWdlck9yZGVyaW5nTWF0Y2ggcnVsZSkuCi0gICAgICAgICBleHBlY3RlZF9zeXN0ZW1faW5kZXhl cyA9IHsKLS0gICAgICAgICAgICAnZW50cnlyZG4nOiB7J3R5cGVzJzogWydzdWJ0cmVlJ10sICdt YXRjaGluZ19ydWxlJzogTm9uZX0sCi0tICAgICAgICAgICAgJ3BhcmVudGlkJzogeyd0eXBlcyc6 IFsnZXEnXSwgJ21hdGNoaW5nX3J1bGUnOiAnaW50ZWdlck9yZGVyaW5nTWF0Y2gnLCAnc2Nhbmxp bWl0JzogJ2xpbWl0PTUwMDAgdHlwZT1lcSBmbGFncz1BTkQnfSwKLS0gICAgICAgICAgICAnYW5j ZXN0b3JpZCc6IHsndHlwZXMnOiBbJ2VxJ10sICdtYXRjaGluZ19ydWxlJzogJ2ludGVnZXJPcmRl cmluZ01hdGNoJywgJ3NjYW5saW1pdCc6ICdsaW1pdD01MDAwIHR5cGU9ZXEgZmxhZ3M9QU5EJ30s Ci0rICAgICAgICAgICAgJ3BhcmVudGlkJzogeyd0eXBlcyc6IFsnZXEnXSwgJ21hdGNoaW5nX3J1 bGUnOiAnaW50ZWdlck9yZGVyaW5nTWF0Y2gnfSwKLSAgICAgICAgICAgICAnb2JqZWN0Q2xhc3Mn OiB7J3R5cGVzJzogWydlcSddLCAnbWF0Y2hpbmdfcnVsZSc6IE5vbmV9LAotICAgICAgICAgICAg ICdhY2knOiB7J3R5cGVzJzogWydwcmVzJ10sICdtYXRjaGluZ19ydWxlJzogTm9uZX0sCi0gICAg ICAgICAgICAgJ25zY3BFbnRyeUROJzogeyd0eXBlcyc6IFsnZXEnXSwgJ21hdGNoaW5nX3J1bGUn OiBOb25lfSwKLUBAIC03MDUsMTcgKzcwNiwxNCBAQCBjbGFzcyBCYWNrZW5kKERTTGRhcE9iamVj dCk6Ci0gICAgICAgICAgICAgICAgICAgICAjIEdlbmVyYXRlIHJlbWVkaWF0aW9uIGNvbW1hbmQK LSAgICAgICAgICAgICAgICAgICAgIGluZGV4X3R5cGVzID0gJyAnLmpvaW4oW2YiLS1pbmRleC10 eXBlIHt0fSIgZm9yIHQgaW4gZXhwZWN0ZWRfY29uZmlnWyd0eXBlcyddXSkKLSAgICAgICAgICAg ICAgICAgICAgIGNtZCA9IGYiZHNjb25mIFlPVVJfSU5TVEFOQ0UgYmFja2VuZCBpbmRleCBhZGQg e2JlbmFtZX0gLS1hdHRyIHthdHRyX25hbWV9IHtpbmRleF90eXBlc30iCi0tICAgICAgICAgICAg ICAgICAgICBpZiBleHBlY3RlZF9jb25maWcuZ2V0KCdtYXRjaGluZ19ydWxlJyk6Ci0rICAgICAg ICAgICAgICAgICAgICBpZiBleHBlY3RlZF9jb25maWdbJ21hdGNoaW5nX3J1bGUnXToKLSAgICAg ICAgICAgICAgICAgICAgICAgICBjbWQgKz0gZiIgLS1tYXRjaGluZy1ydWxlIHtleHBlY3RlZF9j b25maWdbJ21hdGNoaW5nX3J1bGUnXX0iCi0tICAgICAgICAgICAgICAgICAgICBpZiBleHBlY3Rl ZF9jb25maWcuZ2V0KCdzY2FubGltaXQnKToKLS0gICAgICAgICAgICAgICAgICAgICAgICBjbWQg Kz0gZiIgLS1hZGQtc2NhbmxpbWl0IFwie2V4cGVjdGVkX2NvbmZpZ1snc2NhbmxpbWl0J119XCIi Ci0gICAgICAgICAgICAgICAgICAgICByZW1lZGlhdGlvbl9jb21tYW5kcy5hcHBlbmQoY21kKQot ICAgICAgICAgICAgICAgICAgICAgcmVpbmRleF9hdHRycy5hZGQoYXR0cl9uYW1lKSAgIyBOZXcg aW5kZXggbmVlZHMgcmVpbmRleGluZwotICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAg ICAgICAgICAgICAgIyBJbmRleCBleGlzdHMsIGNoZWNrIGNvbmZpZ3VyYXRpb24KLSAgICAgICAg ICAgICAgICAgICAgIGFjdHVhbF90eXBlcyA9IGluZGV4LmdldF9hdHRyX3ZhbHNfdXRmOCgnbnNJ bmRleFR5cGUnKSBvciBbXQotICAgICAgICAgICAgICAgICAgICAgYWN0dWFsX21ycyA9IGluZGV4 LmdldF9hdHRyX3ZhbHNfdXRmOCgnbnNNYXRjaGluZ1J1bGUnKSBvciBbXQotLSAgICAgICAgICAg ICAgICAgICAgYWN0dWFsX3NjYW5saW1pdCA9IGluZGV4LmdldF9hdHRyX3ZhbHNfdXRmOCgnbnNJ bmRleElETGlzdFNjYW5MaW1pdCcpIG9yIFtdCi0gCi0gICAgICAgICAgICAgICAgICAgICAjIE5v cm1hbGl6ZSB0byBsb3dlcmNhc2UgZm9yIGNvbXBhcmlzb24KLSAgICAgICAgICAgICAgICAgICAg IGFjdHVhbF90eXBlcyA9IFt0Lmxvd2VyKCkgZm9yIHQgaW4gYWN0dWFsX3R5cGVzXQotQEAgLTcz MCwzMSArNzI4LDE2IEBAIGNsYXNzIEJhY2tlbmQoRFNMZGFwT2JqZWN0KToKLSAgICAgICAgICAg ICAgICAgICAgICAgICByZW1lZGlhdGlvbl9jb21tYW5kcy5hcHBlbmQoY21kKQotICAgICAgICAg ICAgICAgICAgICAgICAgIHJlaW5kZXhfYXR0cnMuYWRkKGF0dHJfbmFtZSkKLSAKLS0gICAgICAg ICAgICAgICAgICAgICMgQ2hlY2sgbWF0Y2hpbmcgcnVsZXMgYW5kIHNjYW5saW1pdCB0b2dldGhl ciB0byBnZW5lcmF0ZSBhIHNpbmdsZSBjb21iaW5lZCBjb21tYW5kCi0rICAgICAgICAgICAgICAg ICAgICAjIENoZWNrIG1hdGNoaW5nIHJ1bGVzCi0gICAgICAgICAgICAgICAgICAgICBleHBlY3Rl ZF9tciA9IGV4cGVjdGVkX2NvbmZpZy5nZXQoJ21hdGNoaW5nX3J1bGUnKQotLSAgICAgICAgICAg ICAgICAgICAgZXhwZWN0ZWRfc2NhbmxpbWl0ID0gZXhwZWN0ZWRfY29uZmlnLmdldCgnc2Nhbmxp bWl0JykKLS0KLS0gICAgICAgICAgICAgICAgICAgIG1pc3NpbmdfbXIgPSBGYWxzZQotICAgICAg ICAgICAgICAgICAgICAgaWYgZXhwZWN0ZWRfbXI6Ci0gICAgICAgICAgICAgICAgICAgICAgICAg YWN0dWFsX21yc19sb3dlciA9IFttci5sb3dlcigpIGZvciBtciBpbiBhY3R1YWxfbXJzXQotICAg ICAgICAgICAgICAgICAgICAgICAgIGlmIGV4cGVjdGVkX21yLmxvd2VyKCkgbm90IGluIGFjdHVh bF9tcnNfbG93ZXI6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2NyZXBhbmNpZXMu YXBwZW5kKGYiSW5kZXgge2F0dHJfbmFtZX0gbWlzc2luZyBtYXRjaGluZyBydWxlOiB7ZXhwZWN0 ZWRfbXJ9IikKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzc2luZ19tciA9IFRydWUK LS0KLS0gICAgICAgICAgICAgICAgICAgIG1pc3Npbmdfc2NhbmxpbWl0ID0gRmFsc2UKLS0gICAg ICAgICAgICAgICAgICAgIGlmIGV4cGVjdGVkX3NjYW5saW1pdCBhbmQgKGxlbihhY3R1YWxfc2Nh bmxpbWl0KSA9PSAwKToKLS0gICAgICAgICAgICAgICAgICAgICAgICBkaXNjcmVwYW5jaWVzLmFw cGVuZChmIkluZGV4IHthdHRyX25hbWV9IG1pc3NpbmcgZmluZSBncmFpbiBkZWZpbml0aW9uIG9m IElEcyBsaW1pdDoge2V4cGVjdGVkX3NjYW5saW1pdH0iKQotLSAgICAgICAgICAgICAgICAgICAg ICAgIG1pc3Npbmdfc2NhbmxpbWl0ID0gVHJ1ZQotLQotLSAgICAgICAgICAgICAgICAgICAgIyBH ZW5lcmF0ZSBhIHNpbmdsZSBjb21iaW5lZCBjb21tYW5kIGZvciBhbGwgbWlzc2luZyBpdGVtcwot LSAgICAgICAgICAgICAgICAgICAgaWYgbWlzc2luZ19tciBvciBtaXNzaW5nX3NjYW5saW1pdDoK LS0gICAgICAgICAgICAgICAgICAgICAgICBjbWQgPSBmImRzY29uZiBZT1VSX0lOU1RBTkNFIGJh Y2tlbmQgaW5kZXggc2V0IHtiZW5hbWV9IC0tYXR0ciB7YXR0cl9uYW1lfSIKLS0gICAgICAgICAg ICAgICAgICAgICAgICBpZiBtaXNzaW5nX21yOgotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjbWQgKz0gZiIgLS1hZGQtbXIge2V4cGVjdGVkX21yfSIKLS0gICAgICAgICAgICAgICAgICAg ICAgICBpZiBtaXNzaW5nX3NjYW5saW1pdDoKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg Y21kICs9IGYiIC0tYWRkLXNjYW5saW1pdCBcIntleHBlY3RlZF9zY2FubGltaXR9XCIiCi0tICAg ICAgICAgICAgICAgICAgICAgICAgcmVtZWRpYXRpb25fY29tbWFuZHMuYXBwZW5kKGNtZCkKLS0g ICAgICAgICAgICAgICAgICAgICAgICByZWluZGV4X2F0dHJzLmFkZChhdHRyX25hbWUpCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICMgQWRkIHRoZSBtaXNzaW5nIG1hdGNoaW5nIHJ1bGUK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgY21kID0gZiJkc2NvbmYgWU9VUl9JTlNUQU5D RSBiYWNrZW5kIGluZGV4IHNldCB7YmVuYW1lfSAtLWF0dHIge2F0dHJfbmFtZX0gLS1hZGQtbXIg e2V4cGVjdGVkX21yfSIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtZWRpYXRpb25f Y29tbWFuZHMuYXBwZW5kKGNtZCkKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVpbmRl eF9hdHRycy5hZGQoYXR0cl9uYW1lKQotIAotICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24g YXMgZToKLSAgICAgICAgICAgICAgICAgc2VsZi5fbG9nLmRlYnVnKGYiX2xpbnRfc3lzdGVtX2lu ZGV4ZXMgLSBFcnJvciBjaGVja2luZyBpbmRleCB7YXR0cl9uYW1lfToge2V9IikKLUBAIC05OTMs MTMgKzk3NiwxMiBAQCBjbGFzcyBCYWNrZW5kKERTTGRhcE9iamVjdCk6Ci0gICAgICAgICAgICAg ICAgIHJldHVybgotICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiQ2FuIG5vdCBkZWxldGUgaW5k ZXggYmVjYXVzZSBpdCBkb2VzIG5vdCBleGlzdCIpCi0gCi0tICAgIGRlZiBhZGRfaW5kZXgoc2Vs ZiwgYXR0cl9uYW1lLCB0eXBlcywgbWF0Y2hpbmdfcnVsZXM9Tm9uZSwgaWRsaXN0c2NhbmxpbWl0 PU5vbmUsIHJlaW5kZXg9RmFsc2UpOgotKyAgICBkZWYgYWRkX2luZGV4KHNlbGYsIGF0dHJfbmFt ZSwgdHlwZXMsIG1hdGNoaW5nX3J1bGVzPU5vbmUsIHJlaW5kZXg9RmFsc2UpOgotICAgICAgICAg IiIiIEFkZCBhbiBpbmRleC4KLSAKLSAgICAgICAgIDpwYXJhbSBhdHRyX25hbWUgLSBuYW1lIG9m IHRoZSBhdHRyaWJ1dGUgdG8gaW5kZXgKLSAgICAgICAgIDpwYXJhbSB0eXBlcyAtIGEgTGlzdCBv ZiBpbmRleCB0eXBlcyhlcSwgcHJlcywgc3ViLCBhcHByb3gpCi0gICAgICAgICA6cGFyYW0gbWF0 Y2hpbmdfcnVsZXMgLSBhIExpc3Qgb2YgbWF0Y2hpbmcgcnVsZXMgZm9yIHRoZSBpbmRleAotLSAg ICAgICAgOnBhcmFtIGlkbGlzdHNjYW5saW1pdCAtIGEgTGlzdCBvZiBmaW5lIGdyYWluIGRlZmlu aXRpb25zIGZvciBzY2FubmluZyBsaW1pdAotICAgICAgICAgOnBhcmFtIHJlaW5kZXggLSBJZiBz ZXQgdG8gVHJ1ZSB0aGVuIGluZGV4IHRoZSBhdHRyaWJ1dGUgYWZ0ZXIgY3JlYXRpbmcgaXQuCi0g ICAgICAgICAiIiIKLSAKLUBAIC0xMDI5LDE1ICsxMDExLDYgQEAgY2xhc3MgQmFja2VuZChEU0xk YXBPYmplY3QpOgotICAgICAgICAgICAgICMgT25seSBhZGQgaWYgdGhlcmUgYXJlIGFjdHVhbGx5 IHJ1bGVzIHByZXNlbnQgaW4gdGhlIGxpc3QuCi0gICAgICAgICAgICAgaWYgbGVuKG1ycykgPiAw OgotICAgICAgICAgICAgICAgICBwcm9wc1snbnNNYXRjaGluZ1J1bGUnXSA9IG1ycwotLQotLSAg ICAgICAgaWYgaWRsaXN0c2NhbmxpbWl0IGlzIG5vdCBOb25lOgotLSAgICAgICAgICAgIHNjYW5s aW1pdHMgPSBbXQotLSAgICAgICAgICAgIGZvciBzY2FubGltaXQgaW4gaWRsaXN0c2NhbmxpbWl0 OgotLSAgICAgICAgICAgICAgICBzY2FubGltaXRzLmFwcGVuZChzY2FubGltaXQpCi0tICAgICAg ICAgICAgIyBPbmx5IGFkZCBpZiB0aGVyZSBhcmUgYWN0dWFsbHkgbGltaXRzIGluIHRoZSBsaXN0 LgotLSAgICAgICAgICAgIGlmIGxlbihzY2FubGltaXRzKSA+IDA6Ci0tICAgICAgICAgICAgICAg IHByb3BzWyduc0luZGV4SURMaXN0U2NhbkxpbWl0J10gPSBzY2FubGltaXRzCi0tCi0gICAgICAg ICBuZXdfaW5kZXguY3JlYXRlKHByb3BlcnRpZXM9cHJvcHMsIGJhc2Vkbj0iY249aW5kZXgsIiAr IHNlbGYuX2RuKQotIAotICAgICAgICAgaWYgcmVpbmRleDoKLUBAIC0xMzQ5LDcgKzEzMjIsNiBA QCBjbGFzcyBEYXRhYmFzZUNvbmZpZyhEU0xkYXBPYmplY3QpOgotICAgICAgICAgICAgICduc3Ns YXBkLWxvb2t0aHJvdWdobGltaXQnLAotICAgICAgICAgICAgICduc3NsYXBkLW1vZGUnLAotICAg ICAgICAgICAgICduc3NsYXBkLWlkbGlzdHNjYW5saW1pdCcsCi0tICAgICAgICAgICAgJ25zc2xh cGQtc3lzdGVtaWRsaXN0c2NhbmxpbWl0JywKLSAgICAgICAgICAgICAnbnNzbGFwZC1kaXJlY3Rv cnknLAotICAgICAgICAgICAgICduc3NsYXBkLWltcG9ydC1jYWNoZXNpemUnLAotICAgICAgICAg ICAgICduc3NsYXBkLWlkbC1zd2l0Y2gnLAotZGlmZiAtLWdpdCBhL3NyYy9saWIzODkvbGliMzg5 L2NsaV9jb25mL2JhY2tlbmQucHkgYi9zcmMvbGliMzg5L2xpYjM4OS9jbGlfY29uZi9iYWNrZW5k LnB5Ci1pbmRleCA5NzcyZTM5ZDQuLjY4ZWZhNzk1YyAxMDA2NDQKLS0tLSBhL3NyYy9saWIzODkv bGliMzg5L2NsaV9jb25mL2JhY2tlbmQucHkKLSsrKyBiL3NyYy9saWIzODkvbGliMzg5L2NsaV9j b25mL2JhY2tlbmQucHkKLUBAIC0zOSw3ICszOSw2IEBAIGFyZ190b19hdHRyID0gewotICAgICAg ICAgJ21vZGUnOiAnbnNzbGFwZC1tb2RlJywKLSAgICAgICAgICdzdGF0ZSc6ICduc3NsYXBkLXN0 YXRlJywKLSAgICAgICAgICdpZGxpc3RzY2FubGltaXQnOiAnbnNzbGFwZC1pZGxpc3RzY2FubGlt aXQnLAotLSAgICAgICAgJ3N5c3RlbWlkbGlzdHNjYW5saW1pdCc6ICduc3NsYXBkLXN5c3RlbWlk bGlzdHNjYW5saW1pdCcsCi0gICAgICAgICAnZGlyZWN0b3J5JzogJ25zc2xhcGQtZGlyZWN0b3J5 JywKLSAgICAgICAgICdkYmNhY2hlc2l6ZSc6ICduc3NsYXBkLWRiY2FjaGVzaXplJywKLSAgICAg ICAgICdsb2dkaXJlY3RvcnknOiAnbnNzbGFwZC1kYi1sb2dkaXJlY3RvcnknLAotQEAgLTYyNiwy MSArNjI1LDYgQEAgZGVmIGJhY2tlbmRfc2V0X2luZGV4KGluc3QsIGJhc2VkbiwgbG9nLCBhcmdz KToKLSAgICAgICAgICAgICBleGNlcHQgbGRhcC5OT19TVUNIX0FUVFJJQlVURToKLSAgICAgICAg ICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignQ2FuIG5vdCBkZWxldGUgbWF0Y2hpbmcgcnVsZSB0 eXBlIGJlY2F1c2UgaXQgZG9lcyBub3QgZXhpc3QnKQotIAotLSAgICBpZiBhcmdzLnJlcGxhY2Vf c2NhbmxpbWl0IGlzIG5vdCBOb25lOgotLSAgICAgICAgZm9yIHJlcGxhY2Vfc2NhbmxpbWl0IGlu IGFyZ3MucmVwbGFjZV9zY2FubGltaXQ6Ci0tICAgICAgICAgICAgaW5kZXgucmVwbGFjZSgnbnNJ bmRleElETGlzdFNjYW5MaW1pdCcsIHJlcGxhY2Vfc2NhbmxpbWl0KQotLQotLSAgICBpZiBhcmdz LmFkZF9zY2FubGltaXQgaXMgbm90IE5vbmU6Ci0tICAgICAgICBmb3IgYWRkX3NjYW5saW1pdCBp biBhcmdzLmFkZF9zY2FubGltaXQ6Ci0tICAgICAgICAgICAgaW5kZXguYWRkKCduc0luZGV4SURM aXN0U2NhbkxpbWl0JywgYWRkX3NjYW5saW1pdCkKLS0KLS0gICAgaWYgYXJncy5kZWxfc2Nhbmxp bWl0IGlzIG5vdCBOb25lOgotLSAgICAgICAgZm9yIGRlbF9zY2FubGltaXQgaW4gYXJncy5kZWxf c2NhbmxpbWl0OgotLSAgICAgICAgICAgIHRyeToKLS0gICAgICAgICAgICAgICAgaW5kZXgucmVt b3ZlKCduc0luZGV4SURMaXN0U2NhbkxpbWl0JywgZGVsX3NjYW5saW1pdCkKLS0gICAgICAgICAg ICBleGNlcHQgbGRhcC5OT19TVUNIX0FUVFJJQlVURToKLS0gICAgICAgICAgICAgICAgcmFpc2Ug VmFsdWVFcnJvcignQ2FuIG5vdCBkZWxldGUgYSBmaW5lIGdyYWluIGxpbWl0IGRlZmluaXRpb24g YmVjYXVzZSBpdCBkb2VzIG5vdCBleGlzdCcpCi0tCi0gICAgIGlmIGFyZ3MucmVpbmRleDoKLSAg ICAgICAgIGJlLnJlaW5kZXgoYXR0cnM9W2FyZ3MuYXR0cl0pCi0gICAgIGxvZy5pbmZvKCJJbmRl eCBzdWNjZXNzZnVsbHkgdXBkYXRlZCIpCi1AQCAtOTYzLDkgKzk0Nyw2IEBAIGRlZiBjcmVhdGVf cGFyc2VyKHN1YnBhcnNlcnMpOgotICAgICBlZGl0X2luZGV4X3BhcnNlci5hZGRfYXJndW1lbnQo Jy0tZGVsLXR5cGUnLCBhY3Rpb249J2FwcGVuZCcsIGhlbHA9J1JlbW92ZXMgYW4gaW5kZXggdHlw ZSBmcm9tIHRoZSBpbmRleDogKGVxLCBzdWIsIHByZXMsIG9yIGFwcHJveCknKQotICAgICBlZGl0 X2luZGV4X3BhcnNlci5hZGRfYXJndW1lbnQoJy0tYWRkLW1yJywgYWN0aW9uPSdhcHBlbmQnLCBo ZWxwPSdBZGRzIGEgbWF0Y2hpbmctcnVsZSB0byB0aGUgaW5kZXgnKQotICAgICBlZGl0X2luZGV4 X3BhcnNlci5hZGRfYXJndW1lbnQoJy0tZGVsLW1yJywgYWN0aW9uPSdhcHBlbmQnLCBoZWxwPSdS ZW1vdmVzIGEgbWF0Y2hpbmctcnVsZSBmcm9tIHRoZSBpbmRleCcpCi0tICAgIGVkaXRfaW5kZXhf cGFyc2VyLmFkZF9hcmd1bWVudCgnLS1hZGQtc2NhbmxpbWl0JywgYWN0aW9uPSdhcHBlbmQnLCBo ZWxwPSdBZGRzIGEgZmluZSBncmFpbiBsaW1pdCBkZWZpbml0b24gdG8gdGhlIGluZGV4JykKLS0g ICAgZWRpdF9pbmRleF9wYXJzZXIuYWRkX2FyZ3VtZW50KCctLXJlcGxhY2Utc2NhbmxpbWl0Jywg YWN0aW9uPSdhcHBlbmQnLCBoZWxwPSdSZXBsYWNlcyBhIGZpbmUgZ3JhaW4gbGltaXQgZGVmaW5p dG9uIHRvIHRoZSBpbmRleCcpCi0tICAgIGVkaXRfaW5kZXhfcGFyc2VyLmFkZF9hcmd1bWVudCgn LS1kZWwtc2NhbmxpbWl0JywgYWN0aW9uPSdhcHBlbmQnLCBoZWxwPSdSZW1vdmVzIGEgZmluZSBn cmFpbiBsaW1pdCBkZWZpbml0b24gdG8gdGhlIGluZGV4JykKLSAgICAgZWRpdF9pbmRleF9wYXJz ZXIuYWRkX2FyZ3VtZW50KCctLXJlaW5kZXgnLCBhY3Rpb249J3N0b3JlX3RydWUnLCBoZWxwPSdS ZS1pbmRleGVzIHRoZSBkYXRhYmFzZSBhZnRlciBlZGl0aW5nIHRoZSBpbmRleCcpCi0gICAgIGVk aXRfaW5kZXhfcGFyc2VyLmFkZF9hcmd1bWVudCgnYmVfbmFtZScsIGhlbHA9J1RoZSBiYWNrZW5k IG5hbWUgb3Igc3VmZml4JykKLSAKLUBAIC0xMDkyLDcgKzEwNzMsNiBAQCBkZWYgY3JlYXRlX3Bh cnNlcihzdWJwYXJzZXJzKToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3aWxsIGNoZWNrIHdoZW4gZXhhbWluaW5nIGNh bmRpZGF0ZSBlbnRyaWVzIGluIHJlc3BvbnNlIHRvIGEgc2VhcmNoIHJlcXVlc3QnKQotICAgICBz ZXRfZGJfY29uZmlnX3BhcnNlci5hZGRfYXJndW1lbnQoJy0tbW9kZScsIGhlbHA9J1NwZWNpZmll cyB0aGUgcGVybWlzc2lvbnMgdXNlZCBmb3IgbmV3bHkgY3JlYXRlZCBpbmRleCBmaWxlcycpCi0g ICAgIHNldF9kYl9jb25maWdfcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1pZGxpc3RzY2FubGltaXQn LCBoZWxwPSdTcGVjaWZpZXMgdGhlIG51bWJlciBvZiBlbnRyeSBJRHMgdGhhdCBhcmUgc2VhcmNo ZWQgZHVyaW5nIGEgc2VhcmNoIG9wZXJhdGlvbicpCi0tICAgIHNldF9kYl9jb25maWdfcGFyc2Vy LmFkZF9hcmd1bWVudCgnLS1zeXN0ZW1pZGxpc3RzY2FubGltaXQnLCBoZWxwPSdTcGVjaWZpZXMg dGhlIG51bWJlciBvZiBlbnRyeSBJRHMgdGhhdCBhcmUgZmV0Y2ggZnJvbSBhbmNlc3RvcmlkL3Bh cmVudGlkIGluZGV4ZXMnKQotICAgICBzZXRfZGJfY29uZmlnX3BhcnNlci5hZGRfYXJndW1lbnQo Jy0tZGlyZWN0b3J5JywgaGVscD0nU3BlY2lmaWVzIGFic29sdXRlIHBhdGggdG8gZGF0YWJhc2Ug aW5zdGFuY2UnKQotICAgICBzZXRfZGJfY29uZmlnX3BhcnNlci5hZGRfYXJndW1lbnQoJy0tZGJj YWNoZXNpemUnLCBoZWxwPSdTcGVjaWZpZXMgdGhlIGRhdGFiYXNlIGluZGV4IGNhY2hlIHNpemUg aW4gYnl0ZXMnKQotICAgICBzZXRfZGJfY29uZmlnX3BhcnNlci5hZGRfYXJndW1lbnQoJy0tbG9n ZGlyZWN0b3J5JywgaGVscD0nU3BlY2lmaWVzIHRoZSBwYXRoIHRvIHRoZSBkaXJlY3RvcnkgdGhh dCBjb250YWlucyB0aGUgZGF0YWJhc2UgdHJhbnNhY3Rpb24gbG9ncycpCi0tLSAKLTIuNTIuMAot CgpkaWZmIC0tZ2l0IGEvMDAzMy1Jc3N1ZS03MjIzLUFkZC11cGdyYWRlLWZ1bmN0aW9uLXRvLXJl bW92ZS1uc0luZGV4SURMLnBhdGNoIGIvMDAzMy1Jc3N1ZS03MjIzLUFkZC11cGdyYWRlLWZ1bmN0 aW9uLXRvLXJlbW92ZS1uc0luZGV4SURMLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAxZWM1NmRjLi4wMDAwMDAwCi0tLSBhLzAwMzMtSXNzdWUtNzIyMy1BZGQtdXBncmFkZS1m dW5jdGlvbi10by1yZW1vdmUtbnNJbmRleElETC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIx MiArMCwwIEBACi1Gcm9tIDRjNDRlNGM1MjJhZmMwZjU0MDE3NTRmMjlhNDc2NDU4ODllMjFhY2Eg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBWaWt0b3IgQXNoaXJvdiA8dmFzaGlyb3ZA cmVkaGF0LmNvbT4KLURhdGU6IFRodSwgNSBGZWIgMjAyNiAxMjoxNzowNiArMDEwMAotU3ViamVj dDogW1BBVENIXSBJc3N1ZSA3MjIzIC0gQWRkIHVwZ3JhZGUgZnVuY3Rpb24gdG8gcmVtb3ZlCi0g bnNJbmRleElETGlzdFNjYW5MaW1pdCBmcm9tIHBhcmVudGlkCi0KLURlc2NyaXB0aW9uOgotQWRk IGB1cGdyYWRlX3JlbW92ZV9pbmRleF9zY2FubGltaXQoKWAgZnVuY3Rpb24gdGhhdCByZW1vdmVz IHRoZQotbnNJbmRleElETGlzdFNjYW5MaW1pdCBhdHRyaWJ1dGUgZnJvbSBwYXJlbnRpZCBpbmRl eCBjb25maWd1cmF0aW9uCi1pZiBwcmVzZW50LgotCi1UaGlzIGF0dHJpYnV0ZSB3YXMgaW5jb3Jy ZWN0bHkgYWRkZWQgYnkgYSBwcmV2aW91cyB2ZXJzaW9uIGFuZCBjYW4KLWNhdXNlIGlzc3VlcyB3 aXRoIGluZGV4IGNvbmZpZ3VyYXRpb24uIFRoZSB1cGdyYWRlIGZ1bmN0aW9uIHJ1bnMKLWF1dG9t YXRpY2FsbHkgb24gc2VydmVyIHN0YXJ0dXAgYW5kIHJlbW92ZXMgdGhlIGF0dHJpYnV0ZSBpZiBm b3VuZC4KLQotUmVsYXRlczogaHR0cHM6Ly9naXRodWIuY29tLzM4OWRzLzM4OS1kcy1iYXNlL2lz c3Vlcy83MjIzCi0KLVJldmlld2VkIGJ5OiBAcHJvZ2llcjM4OSwgQHRib3JkYXosIEBkcm9pZGVj ayAoVGhhbmtzISkKLS0tLQotIC4uLi9oZWFsdGhjaGVjay9oZWFsdGhfc3lzdGVtX2luZGV4ZXNf dGVzdC5weSB8ICA1MiArKysrKysrKysKLSBsZGFwL3NlcnZlcnMvc2xhcGQvdXBncmFkZS5jICAg ICAgICAgICAgICAgICAgfCAxMDUgKysrKysrKysrKysrKysrKysrCi0gMiBmaWxlcyBjaGFuZ2Vk LCAxNTcgaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEvZGlyc3J2dGVzdHMvdGVzdHMvc3Vp dGVzL2hlYWx0aGNoZWNrL2hlYWx0aF9zeXN0ZW1faW5kZXhlc190ZXN0LnB5IGIvZGlyc3J2dGVz dHMvdGVzdHMvc3VpdGVzL2hlYWx0aGNoZWNrL2hlYWx0aF9zeXN0ZW1faW5kZXhlc190ZXN0LnB5 Ci1pbmRleCAxNDA4NDVhMzMuLmFlYTg4ZTBlMiAxMDA2NDQKLS0tLSBhL2RpcnNydnRlc3RzL3Rl c3RzL3N1aXRlcy9oZWFsdGhjaGVjay9oZWFsdGhfc3lzdGVtX2luZGV4ZXNfdGVzdC5weQotKysr IGIvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL2hlYWx0aGNoZWNrL2hlYWx0aF9zeXN0ZW1faW5k ZXhlc190ZXN0LnB5Ci1AQCAtNDUzLDYgKzQ1Myw1OCBAQCBkZWYgdGVzdF9tdWx0aXBsZV9taXNz aW5nX2luZGV4ZXModG9wb2xvZ3lfc3QsIGxvZ19idWZmZXJpbmdfZW5hYmxlZCk6Ci0gICAgIHJ1 bl9oZWFsdGhjaGVja19hbmRfZmx1c2hfbG9nKHRvcG9sb2d5X3N0LCBzdGFuZGFsb25lLCBqc29u PVRydWUsIHNlYXJjaGVkX2NvZGU9SlNPTl9PVVRQVVQpCi0gCi0gCi0rZGVmIHRlc3RfdXBncmFk ZV9yZW1vdmVzX3BhcmVudGlkX3NjYW5saW1pdCh0b3BvbG9neV9zdCk6Ci0rICAgICIiIkNoZWNr IGlmIHVwZ3JhZGUgZnVuY3Rpb24gcmVtb3ZlcyBuc0luZGV4SURMaXN0U2NhbkxpbWl0IGZyb20g cGFyZW50aWQgaW5kZXgKLSsKLSsgICAgOmlkOiAyODA4ODg2ZS1jMWMxLTQ0MWQtYjNhMy0yOTlj NGVmMWFiNGEKLSsgICAgOnNldHVwOiBTdGFuZGFsb25lIGluc3RhbmNlCi0rICAgIDpzdGVwczoK LSsgICAgICAgIDEuIENyZWF0ZSBEUyBpbnN0YW5jZQotKyAgICAgICAgMi4gU3RvcCB0aGUgc2Vy dmVyCi0rICAgICAgICAzLiBVc2UgRFNFbGRpZiB0byBhZGQgbnNJbmRleElETGlzdFNjYW5MaW1p dCB0byBwYXJlbnRpZCBpbmRleAotKyAgICAgICAgNC4gU3RhcnQgdGhlIHNlcnZlciAodHJpZ2dl cnMgdXBncmFkZSkKLSsgICAgICAgIDUuIFZlcmlmeSBuc0luZGV4SURMaXN0U2NhbkxpbWl0IGlz IHJlbW92ZWQgZnJvbSBwYXJlbnRpZCBpbmRleAotKyAgICA6ZXhwZWN0ZWRyZXN1bHRzOgotKyAg ICAgICAgMS4gU3VjY2VzcwotKyAgICAgICAgMi4gU3VjY2VzcwotKyAgICAgICAgMy4gU3VjY2Vz cwotKyAgICAgICAgNC4gU3VjY2VzcwotKyAgICAgICAgNS4gbnNJbmRleElETGlzdFNjYW5MaW1p dCBpcyBubyBsb25nZXIgcHJlc2VudAotKyAgICAiIiIKLSsgICAgZnJvbSBsaWIzODkuZHNlbGRp ZiBpbXBvcnQgRFNFbGRpZgotKwotKyAgICBzdGFuZGFsb25lID0gdG9wb2xvZ3lfc3Quc3RhbmRh bG9uZQotKyAgICBQQVJFTlRJRF9ETiA9ICJjbj1wYXJlbnRpZCxjbj1pbmRleCxjbj11c2Vycm9v dCxjbj1sZGJtIGRhdGFiYXNlLGNuPXBsdWdpbnMsY249Y29uZmlnIgotKyAgICBTQ0FOTElNSVRf VkFMVUUgPSAibGltaXQ9NTAwMCB0eXBlPWVxIGZsYWdzPUFORCIKLSsKLSsgICAgbG9nLmluZm8o IlN0b3AgdGhlIHNlcnZlciIpCi0rICAgIHN0YW5kYWxvbmUuc3RvcCgpCi0rCi0rICAgIGxvZy5p bmZvKCJBZGQgbnNJbmRleElETGlzdFNjYW5MaW1pdCB0byBwYXJlbnRpZCBpbmRleCB1c2luZyBE U0VsZGlmIikKLSsgICAgZHNlX2xkaWYgPSBEU0VsZGlmKHN0YW5kYWxvbmUpCi0rICAgIGRzZV9s ZGlmLmFkZChQQVJFTlRJRF9ETiwgIm5zSW5kZXhJRExpc3RTY2FuTGltaXQiLCBTQ0FOTElNSVRf VkFMVUUpCi0rCi0rICAgICMgVmVyaWZ5IGl0IHdhcyBhZGRlZAotKyAgICBzY2FubGltaXQgPSBk c2VfbGRpZi5nZXQoUEFSRU5USURfRE4sICJuc0luZGV4SURMaXN0U2NhbkxpbWl0IikKLSsgICAg YXNzZXJ0IHNjYW5saW1pdCBpcyBub3QgTm9uZSwgIkZhaWxlZCB0byBhZGQgbnNJbmRleElETGlz dFNjYW5MaW1pdCIKLSsgICAgbG9nLmluZm8oZiJBZGRlZCBuc0luZGV4SURMaXN0U2NhbkxpbWl0 OiB7c2NhbmxpbWl0fSIpCi0rCi0rICAgIGxvZy5pbmZvKCJTdGFydCB0aGUgc2VydmVyICh0cmln Z2VycyB1cGdyYWRlKSIpCi0rICAgIHN0YW5kYWxvbmUuc3RhcnQoKQotKwotKyAgICBsb2cuaW5m bygiVmVyaWZ5IG5zSW5kZXhJRExpc3RTY2FuTGltaXQgd2FzIHJlbW92ZWQgYnkgdXBncmFkZSIp Ci0rICAgICMgQ2hlY2sgdmlhIExEQVAgLSB0aGUgdXBncmFkZSBzaG91bGQgaGF2ZSByZW1vdmVk IGl0Ci0rICAgIHBhcmVudGlkX2luZGV4ID0gSW5kZXgoc3RhbmRhbG9uZSwgUEFSRU5USURfRE4p Ci0rICAgIHNjYW5saW1pdF9hZnRlciA9IHBhcmVudGlkX2luZGV4LmdldF9hdHRyX3ZhbHNfdXRm OCgibnNJbmRleElETGlzdFNjYW5MaW1pdCIpCi0rICAgIGxvZy5pbmZvKGYibnNJbmRleElETGlz dFNjYW5MaW1pdCBhZnRlciB1cGdyYWRlOiB7c2NhbmxpbWl0X2FmdGVyfSIpCi0rCi0rICAgICMg VGhlIHVwZ3JhZGUgZnVuY3Rpb24gc2hvdWxkIGhhdmUgcmVtb3ZlZCBuc0luZGV4SURMaXN0U2Nh bkxpbWl0Ci0rICAgIGFzc2VydCBub3Qgc2NhbmxpbWl0X2FmdGVyLCBcCi0rICAgICAgICBmIm5z SW5kZXhJRExpc3RTY2FuTGltaXQgc2hvdWxkIGhhdmUgYmVlbiByZW1vdmVkIGJ1dCBmb3VuZDog e3NjYW5saW1pdF9hZnRlcn0iCi0rCi0rICAgIGxvZy5pbmZvKCJVcGdyYWRlIHN1Y2Nlc3NmdWxs eSByZW1vdmVkIG5zSW5kZXhJRExpc3RTY2FuTGltaXQgZnJvbSBwYXJlbnRpZCBpbmRleCIpCi0r Ci0rCi0gaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKLSAgICAgIyBSdW4gaXNvbGF0ZWQKLSAg ICAgIyAtcyBmb3IgREVCVUcgbW9kZQotZGlmZiAtLWdpdCBhL2xkYXAvc2VydmVycy9zbGFwZC91 cGdyYWRlLmMgYi9sZGFwL3NlcnZlcnMvc2xhcGQvdXBncmFkZS5jCi1pbmRleCBiMDJlMzdlZDYu LmRjZDE2OTQwYiAxMDA2NDQKLS0tLSBhL2xkYXAvc2VydmVycy9zbGFwZC91cGdyYWRlLmMKLSsr KyBiL2xkYXAvc2VydmVycy9zbGFwZC91cGdyYWRlLmMKLUBAIC0zMzAsNiArMzMwLDEwNyBAQCB1 cGdyYWRlX3JlbW92ZV9zdWJ0cmVlX3JlbmFtZSh2b2lkKQotICAgICByZXR1cm4gVVBHUkFERV9T VUNDRVNTOwotIH0KLSAKLSsvKgotKyAqIFJlbW92ZSBuc0luZGV4SURMaXN0U2NhbkxpbWl0IGZy b20gcGFyZW50aWQgaW5kZXggY29uZmlndXJhdGlvbi4KLSsgKgotKyAqIFRoaXMgYXR0cmlidXRl IHdhcyBpbmNvcnJlY3RseSBhZGRlZCBieSBhIHByZXZpb3VzIHZlcnNpb24gYW5kIGNhbgotKyAq IGNhdXNlIGlzc3VlcyB3aXRoIGluZGV4IGNvbmZpZ3VyYXRpb24uIFJlbW92ZSBpdCBpZiBwcmVz ZW50LgotKyAqLwotK3N0YXRpYyB1cGdyYWRlX3N0YXR1cwotK3VwZ3JhZGVfcmVtb3ZlX2luZGV4 X3NjYW5saW1pdCh2b2lkKQotK3sKLSsgICAgc3RydWN0IHNsYXBpX3BibG9jayAqcGIgPSBzbGFw aV9wYmxvY2tfbmV3KCk7Ci0rICAgIFNsYXBpX0VudHJ5ICoqYmFja2VuZHMgPSBOVUxMOwotKyAg ICBjb25zdCBjaGFyICpiZV9iYXNlX2RuID0gImNuPWxkYm0gZGF0YWJhc2UsY249cGx1Z2lucyxj bj1jb25maWciOwotKyAgICBjb25zdCBjaGFyICpiZV9maWx0ZXIgPSAiKG9iamVjdGNsYXNzPW5z QmFja2VuZEluc3RhbmNlKSI7Ci0rICAgIGNvbnN0IGNoYXIgKmF0dHJzX3RvX2NoZWNrW10gPSB7 InBhcmVudGlkIiwgTlVMTH07Ci0rICAgIHVwZ3JhZGVfc3RhdHVzIHVyZXN1bHQgPSBVUEdSQURF X1NVQ0NFU1M7Ci0rCi0rICAgIC8qIFNlYXJjaCBmb3IgYWxsIGJhY2tlbmQgaW5zdGFuY2VzICov Ci0rICAgIHNsYXBpX3NlYXJjaF9pbnRlcm5hbF9zZXRfcGIoCi0rICAgICAgICAgICAgcGIsIGJl X2Jhc2VfZG4sCi0rICAgICAgICAgICAgTERBUF9TQ09QRV9PTkVMRVZFTCwKLSsgICAgICAgICAg ICBiZV9maWx0ZXIsIE5VTEwsIDAsIE5VTEwsIE5VTEwsCi0rICAgICAgICAgICAgcGx1Z2luX2dl dF9kZWZhdWx0X2NvbXBvbmVudF9pZCgpLCAwKTsKLSsgICAgc2xhcGlfc2VhcmNoX2ludGVybmFs X3BiKHBiKTsKLSsgICAgc2xhcGlfcGJsb2NrX2dldChwYiwgU0xBUElfUExVR0lOX0lOVE9QX1NF QVJDSF9FTlRSSUVTLCAmYmFja2VuZHMpOwotKwotKyAgICBpZiAoYmFja2VuZHMpIHsKLSsgICAg ICAgIGZvciAoc2l6ZV90IGJlX2lkeCA9IDA7IGJhY2tlbmRzW2JlX2lkeF0gIT0gTlVMTDsgYmVf aWR4KyspIHsKLSsgICAgICAgICAgICBjb25zdCBjaGFyICpiZV9kbiA9IHNsYXBpX2VudHJ5X2dl dF9kbl9jb25zdChiYWNrZW5kc1tiZV9pZHhdKTsKLSsgICAgICAgICAgICBjb25zdCBjaGFyICpi ZV9uYW1lID0gc2xhcGlfZW50cnlfYXR0cl9nZXRfcmVmKGJhY2tlbmRzW2JlX2lkeF0sICJjbiIp OwotKyAgICAgICAgICAgIGlmICghYmVfZG4gfHwgIWJlX25hbWUpIHsKLSsgICAgICAgICAgICAg ICAgY29udGludWU7Ci0rICAgICAgICAgICAgfQotKwotKyAgICAgICAgICAgIGZvciAoc2l6ZV90 IGF0dHJfaWR4ID0gMDsgYXR0cnNfdG9fY2hlY2tbYXR0cl9pZHhdICE9IE5VTEw7IGF0dHJfaWR4 KyspIHsKLSsgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqYXR0cl9uYW1lID0gYXR0cnNfdG9f Y2hlY2tbYXR0cl9pZHhdOwotKyAgICAgICAgICAgICAgICBzdHJ1Y3Qgc2xhcGlfcGJsb2NrICpp ZHhfcGIgPSBzbGFwaV9wYmxvY2tfbmV3KCk7Ci0rICAgICAgICAgICAgICAgIFNsYXBpX0VudHJ5 ICoqaWR4X2VudHJpZXMgPSBOVUxMOwotKyAgICAgICAgICAgICAgICBjaGFyICppZHhfZG4gPSBz bGFwaV9jcmVhdGVfZG5fc3RyaW5nKCJjbj0lcyxjbj1pbmRleCwlcyIsCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJfbmFtZSwgYmVf ZG4pOwotKyAgICAgICAgICAgICAgICBjaGFyICppZHhfZmlsdGVyID0gIihvYmplY3RjbGFzcz1u c0luZGV4KSI7Ci0rCi0rICAgICAgICAgICAgICAgIGlmICghaWR4X2RuKSB7Ci0rICAgICAgICAg ICAgICAgICAgICBzbGFwaV9wYmxvY2tfZGVzdHJveShpZHhfcGIpOwotKyAgICAgICAgICAgICAg ICAgICAgY29udGludWU7Ci0rICAgICAgICAgICAgICAgIH0KLSsKLSsgICAgICAgICAgICAgICAg c2xhcGlfc2VhcmNoX2ludGVybmFsX3NldF9wYigKLSsgICAgICAgICAgICAgICAgICAgICAgICBp ZHhfcGIsIGlkeF9kbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICBMREFQX1NDT1BFX0JBU0Us Ci0rICAgICAgICAgICAgICAgICAgICAgICAgaWR4X2ZpbHRlciwgTlVMTCwgMCwgTlVMTCwgTlVM TCwKLSsgICAgICAgICAgICAgICAgICAgICAgICBwbHVnaW5fZ2V0X2RlZmF1bHRfY29tcG9uZW50 X2lkKCksIDApOwotKyAgICAgICAgICAgICAgICBzbGFwaV9zZWFyY2hfaW50ZXJuYWxfcGIoaWR4 X3BiKTsKLSsgICAgICAgICAgICAgICAgc2xhcGlfcGJsb2NrX2dldChpZHhfcGIsIFNMQVBJX1BM VUdJTl9JTlRPUF9TRUFSQ0hfRU5UUklFUywgJmlkeF9lbnRyaWVzKTsKLSsKLSsgICAgICAgICAg ICAgICAgaWYgKGlkeF9lbnRyaWVzICYmIGlkeF9lbnRyaWVzWzBdKSB7Ci0rICAgICAgICAgICAg ICAgICAgICAvKiBDaGVjayBpZiBuc0luZGV4SURMaXN0U2NhbkxpbWl0IGlzIHByZXNlbnQgKi8K LSsgICAgICAgICAgICAgICAgICAgIGlmIChzbGFwaV9lbnRyeV9hdHRyX2dldF9yZWYoaWR4X2Vu dHJpZXNbMF0sICJuc0luZGV4SURMaXN0U2NhbkxpbWl0IikgIT0gTlVMTCkgewotKyAgICAgICAg ICAgICAgICAgICAgICAgIC8qIFJlbW92ZSBuc0luZGV4SURMaXN0U2NhbkxpbWl0ICovCi0rICAg ICAgICAgICAgICAgICAgICAgICAgU2xhcGlfUEJsb2NrICptb2RfcGIgPSBzbGFwaV9wYmxvY2tf bmV3KCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgU2xhcGlfTW9kcyBzbW9kczsKLSsgICAg ICAgICAgICAgICAgICAgICAgICBpbnQgcmM7Ci0rCi0rICAgICAgICAgICAgICAgICAgICAgICAg c2xhcGlfbW9kc19pbml0KCZzbW9kcywgMSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgc2xh cGlfbW9kc19hZGQoJnNtb2RzLCBMREFQX01PRF9ERUxFVEUsICJuc0luZGV4SURMaXN0U2Nhbkxp bWl0IiwgMCwgTlVMTCk7Ci0rCi0rICAgICAgICAgICAgICAgICAgICAgICAgc2xhcGlfbW9kaWZ5 X2ludGVybmFsX3NldF9wYigKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZF9w YiwgaWR4X2RuLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xhcGlfbW9kc19n ZXRfbGRhcG1vZHNfYnlyZWYoJnNtb2RzKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE5VTEwsIE5VTEwsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbHVnaW5f Z2V0X2RlZmF1bHRfY29tcG9uZW50X2lkKCksIDApOwotKyAgICAgICAgICAgICAgICAgICAgICAg IHNsYXBpX21vZGlmeV9pbnRlcm5hbF9wYihtb2RfcGIpOwotKyAgICAgICAgICAgICAgICAgICAg ICAgIHNsYXBpX3BibG9ja19nZXQobW9kX3BiLCBTTEFQSV9QTFVHSU5fSU5UT1BfUkVTVUxULCAm cmMpOwotKwotKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyYyA9PSBMREFQX1NVQ0NFU1Mp IHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xhcGlfbG9nX2VycihTTEFQSV9MT0df Tk9USUNFLCAidXBncmFkZV9yZW1vdmVfaW5kZXhfc2NhbmxpbWl0IiwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiUmVtb3ZlZCAnbnNJbmRleElETGlzdFNjYW5MaW1pdCcg ZnJvbSBpbmRleCAnJXMnIGluIGJhY2tlbmQgJyVzJ1xuIiwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhdHRyX25hbWUsIGJlX25hbWUpOwotKyAgICAgICAgICAgICAgICAg ICAgICAgIH0gZWxzZSBpZiAocmMgIT0gTERBUF9OT19TVUNIX0FUVFJJQlVURSkgewotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xPR19FUlIsICJ1cGdy YWRlX3JlbW92ZV9pbmRleF9zY2FubGltaXQiLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJGYWlsZWQgdG8gcmVtb3ZlICduc0luZGV4SURMaXN0U2NhbkxpbWl0JyBmcm9t IGluZGV4ICclcycgaW4gYmFja2VuZCAnJXMnOiBlcnJvciAlZFxuIiwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhdHRyX25hbWUsIGJlX25hbWUsIHJjKTsKLSsgICAgICAg ICAgICAgICAgICAgICAgICB9Ci0rCi0rICAgICAgICAgICAgICAgICAgICAgICAgc2xhcGlfbW9k c19kb25lKCZzbW9kcyk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgc2xhcGlfcGJsb2NrX2Rl c3Ryb3kobW9kX3BiKTsKLSsgICAgICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAg fQotKwotKyAgICAgICAgICAgICAgICBzbGFwaV9jaF9mcmVlX3N0cmluZygmaWR4X2RuKTsKLSsg ICAgICAgICAgICAgICAgc2xhcGlfZnJlZV9zZWFyY2hfcmVzdWx0c19pbnRlcm5hbChpZHhfcGIp OwotKyAgICAgICAgICAgICAgICBzbGFwaV9wYmxvY2tfZGVzdHJveShpZHhfcGIpOwotKyAgICAg ICAgICAgIH0KLSsgICAgICAgIH0KLSsgICAgfQotKwotKyAgICBzbGFwaV9mcmVlX3NlYXJjaF9y ZXN1bHRzX2ludGVybmFsKHBiKTsKLSsgICAgc2xhcGlfcGJsb2NrX2Rlc3Ryb3kocGIpOwotKwot KyAgICByZXR1cm4gdXJlc3VsdDsKLSt9Ci0rCi0gLyoKLSAgKiBDaGVjayBpZiBwYXJlbnRpZC9h bmNlc3RvcmlkIGluZGV4ZXMgYXJlIG1pc3NpbmcgdGhlIGludGVnZXJPcmRlcmluZ01hdGNoCi0g ICogbWF0Y2hpbmcgcnVsZS4KLUBAIC02NDksNiArNzUwLDEwIEBAIHVwZ3JhZGVfc2VydmVyKHZv aWQpCi0gICAgICAgICByZXR1cm4gVVBHUkFERV9GQUlMVVJFOwotICAgICB9Ci0gCi0rICAgIGlm ICh1cGdyYWRlX3JlbW92ZV9pbmRleF9zY2FubGltaXQoKSAhPSBVUEdSQURFX1NVQ0NFU1MpIHsK LSsgICAgICAgIHJldHVybiBVUEdSQURFX0ZBSUxVUkU7Ci0rICAgIH0KLSsKLSAgICAgaWYgKHVw Z3JhZGVfY2hlY2tfaWRfaW5kZXhfbWF0Y2hpbmdfcnVsZSgpICE9IFVQR1JBREVfU1VDQ0VTUykg ewotICAgICAgICAgcmV0dXJuIFVQR1JBREVfRkFJTFVSRTsKLSAgICAgfQotLS0gCi0yLjUyLjAK LQoKZGlmZiAtLWdpdCBhLzAwMzQtSXNzdWUtNzIyMy1BZGQtdXBncmFkZS1mdW5jdGlvbi10by1y ZW1vdmUtYW5jZXN0b3JpZC5wYXRjaCBiLzAwMzQtSXNzdWUtNzIyMy1BZGQtdXBncmFkZS1mdW5j dGlvbi10by1yZW1vdmUtYW5jZXN0b3JpZC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggZjNlMjA2NC4uMDAwMDAwMAotLS0gYS8wMDM0LUlzc3VlLTcyMjMtQWRkLXVwZ3JhZGUt ZnVuY3Rpb24tdG8tcmVtb3ZlLWFuY2VzdG9yaWQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwz MTMgKzAsMCBAQAotRnJvbSA0MTY3MDMwMWNjYWQ1NTU4Mjk2YTMzODBhNDk3NGY3YzBkNGJhZWRl IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogVmlrdG9yIEFzaGlyb3YgPHZhc2hpcm92 QHJlZGhhdC5jb20+Ci1EYXRlOiBUaHUsIDUgRmViIDIwMjYgMTI6MTc6MDYgKzAxMDAKLVN1Ympl Y3Q6IFtQQVRDSF0gSXNzdWUgNzIyMyAtIEFkZCB1cGdyYWRlIGZ1bmN0aW9uIHRvIHJlbW92ZSBh bmNlc3RvcmlkIGluZGV4Ci0gY29uZmlnIGVudHJ5Ci0KLURlc2NyaXB0aW9uOgotQWRkIGB1cGdy YWRlX3JlbW92ZV9hbmNlc3RvcmlkX2luZGV4X2NvbmZpZygpYCBmdW5jdGlvbiB0aGF0IHJlbW92 ZXM6Ci0qIGFuY2VzdG9yaWQgZnJvbSBgY249ZGVmYXVsdCBpbmRleGVzYAotKiBhbmNlc3Rvcmlk IGluZGV4IGNvbmZpZyBlbnRyaWVzIGZyb20gZWFjaCBiYWNrZW5kJ3MgYGNuPWluZGV4YAotCi1B bHNvIHJlbW92ZSBhbmNlc3RvcmlkIGluZGV4IGNvbmZpZ3VyYXRpb24gZnJvbSB0ZW1wbGF0ZS1k c2UubGRpZi4KLQotUmVsYXRlczogaHR0cHM6Ly9naXRodWIuY29tLzM4OWRzLzM4OS1kcy1iYXNl L2lzc3Vlcy83MjIzCi0KLVJldmlld2VkIGJ5OiBAcHJvZ2llcjM4OSwgQHRib3JkYXosIEBkcm9p ZGVjayAoVGhhbmtzISkKLS0tLQotIC4uLi9oZWFsdGhjaGVjay9oZWFsdGhfc3lzdGVtX2luZGV4 ZXNfdGVzdC5weSB8ICA4NSArKysrKysrKysrKwotIGxkYXAvbGRpZi90ZW1wbGF0ZS1kc2UubGRp Zi5pbiAgICAgICAgICAgICAgICB8ICAgOCAtLQotIGxkYXAvc2VydmVycy9zbGFwZC91cGdyYWRl LmMgICAgICAgICAgICAgICAgICB8IDEzMyArKysrKysrKysrKysrKysrKy0KLSAzIGZpbGVzIGNo YW5nZWQsIDIxNCBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBh L2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9oZWFsdGhjaGVjay9oZWFsdGhfc3lzdGVtX2luZGV4 ZXNfdGVzdC5weSBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9oZWFsdGhjaGVjay9oZWFsdGhf c3lzdGVtX2luZGV4ZXNfdGVzdC5weQotaW5kZXggYWVhODhlMGUyLi5lYjcyN2I5MDIgMTAwNjQ0 Ci0tLS0gYS9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvaGVhbHRoY2hlY2svaGVhbHRoX3N5c3Rl bV9pbmRleGVzX3Rlc3QucHkKLSsrKyBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9oZWFsdGhj aGVjay9oZWFsdGhfc3lzdGVtX2luZGV4ZXNfdGVzdC5weQotQEAgLTUwNCw2ICs1MDQsOTEgQEAg ZGVmIHRlc3RfdXBncmFkZV9yZW1vdmVzX3BhcmVudGlkX3NjYW5saW1pdCh0b3BvbG9neV9zdCk6 Ci0gCi0gICAgIGxvZy5pbmZvKCJVcGdyYWRlIHN1Y2Nlc3NmdWxseSByZW1vdmVkIG5zSW5kZXhJ RExpc3RTY2FuTGltaXQgZnJvbSBwYXJlbnRpZCBpbmRleCIpCi0gCi0rICAgICMgVmVyaWZ5IGlk ZW1wb3RlbmN5IC0gcmVzdGFydCBhZ2FpbiBhbmQgZW5zdXJlIG5vIGVycm9ycwotKyAgICBsb2cu aW5mbygiUmVzdGFydCBzZXJ2ZXIgYWdhaW4gdG8gdmVyaWZ5IGlkZW1wb3RlbmN5IChubyBlcnJv cnMgb24gc2Vjb25kIHJ1bikiKQotKyAgICBzdGFuZGFsb25lLnJlc3RhcnQoKQotKyAgICAjIFZl cmlmeSB0aGUgYXR0cmlidXRlIGlzIHN0aWxsIGFic2VudAotKyAgICBzY2FubGltaXRfYWZ0ZXJf c2Vjb25kID0gcGFyZW50aWRfaW5kZXguZ2V0X2F0dHJfdmFsc191dGY4KCJuc0luZGV4SURMaXN0 U2NhbkxpbWl0IikKLSsgICAgYXNzZXJ0IG5vdCBzY2FubGltaXRfYWZ0ZXJfc2Vjb25kLCBcCi0r ICAgICAgICBmIm5zSW5kZXhJRExpc3RTY2FuTGltaXQgc2hvdWxkIHN0aWxsIGJlIGFic2VudCBh ZnRlciBzZWNvbmQgcmVzdGFydCBidXQgZm91bmQ6IHtzY2FubGltaXRfYWZ0ZXJfc2Vjb25kfSIK LSsgICAgbG9nLmluZm8oIklkZW1wb3RlbmN5IHZlcmlmaWVkIC0gbm8gaXNzdWVzIG9uIHNlY29u ZCByZXN0YXJ0IikKLSsKLSsKLStkZWYgdGVzdF91cGdyYWRlX3JlbW92ZXNfYW5jZXN0b3JpZF9p bmRleF9jb25maWcodG9wb2xvZ3lfc3QpOgotKyAgICAiIiJDaGVjayBpZiB1cGdyYWRlIGZ1bmN0 aW9uIHJlbW92ZXMgYW5jZXN0b3JpZCBpbmRleCBjb25maWcgZW50cnkKLSsKLSsgICAgOmlkOiAz ZjNkNmU5Yi03NWFjLTRmMGQtYjJjZS03MjA0ZTZlYWNkMGEKLSsgICAgOnNldHVwOiBTdGFuZGFs b25lIGluc3RhbmNlCi0rICAgIDpzdGVwczoKLSsgICAgICAgIDEuIENyZWF0ZSBEUyBpbnN0YW5j ZQotKyAgICAgICAgMi4gU3RvcCB0aGUgc2VydmVyCi0rICAgICAgICAzLiBVc2UgRFNFbGRpZiB0 byBhZGQgYW4gYW5jZXN0b3JpZCBpbmRleCBjb25maWcgZW50cnkKLSsgICAgICAgIDQuIFN0YXJ0 IHRoZSBzZXJ2ZXIgKHRyaWdnZXJzIHVwZ3JhZGUpCi0rICAgICAgICA1LiBWZXJpZnkgYW5jZXN0 b3JpZCBpbmRleCBjb25maWcgZW50cnkgaXMgcmVtb3ZlZAotKyAgICA6ZXhwZWN0ZWRyZXN1bHRz OgotKyAgICAgICAgMS4gU3VjY2VzcwotKyAgICAgICAgMi4gU3VjY2VzcwotKyAgICAgICAgMy4g U3VjY2VzcwotKyAgICAgICAgNC4gU3VjY2VzcwotKyAgICAgICAgNS4gYW5jZXN0b3JpZCBpbmRl eCBjb25maWcgZW50cnkgaXMgbm8gbG9uZ2VyIHByZXNlbnQKLSsgICAgIiIiCi0rICAgIGZyb20g bGliMzg5LmRzZWxkaWYgaW1wb3J0IERTRWxkaWYKLSsKLSsgICAgc3RhbmRhbG9uZSA9IHRvcG9s b2d5X3N0LnN0YW5kYWxvbmUKLSsgICAgQU5DRVNUT1JJRF9ETiA9ICJjbj1hbmNlc3RvcmlkLGNu PWluZGV4LGNuPXVzZXJyb290LGNuPWxkYm0gZGF0YWJhc2UsY249cGx1Z2lucyxjbj1jb25maWci Ci0rCi0rICAgIGxvZy5pbmZvKCJTdG9wIHRoZSBzZXJ2ZXIiKQotKyAgICBzdGFuZGFsb25lLnN0 b3AoKQotKwotKyAgICBsb2cuaW5mbygiQWRkIGFuY2VzdG9yaWQgaW5kZXggY29uZmlnIGVudHJ5 IHVzaW5nIERTRWxkaWYiKQotKyAgICBkc2VfbGRpZiA9IERTRWxkaWYoc3RhbmRhbG9uZSkKLSsK LSsgICAgIyBDcmVhdGUgYSBmYWtlIGFuY2VzdG9yaWQgaW5kZXggZW50cnkKLSsgICAgYW5jZXN0 b3JpZF9lbnRyeSA9IFsKLSsgICAgICAgICJkbjoge31cbiIuZm9ybWF0KEFOQ0VTVE9SSURfRE4p LAotKyAgICAgICAgIm9iamVjdENsYXNzOiB0b3BcbiIsCi0rICAgICAgICAib2JqZWN0Q2xhc3M6 IG5zSW5kZXhcbiIsCi0rICAgICAgICAiY246IGFuY2VzdG9yaWRcbiIsCi0rICAgICAgICAibnNT eXN0ZW1JbmRleDogdHJ1ZVxuIiwKLSsgICAgICAgICJuc0luZGV4VHlwZTogZXFcbiIsCi0rICAg ICAgICAibnNNYXRjaGluZ1J1bGU6IGludGVnZXJPcmRlcmluZ01hdGNoXG4iLAotKyAgICAgICAg IlxuIgotKyAgICBdCi0rICAgIGRzZV9sZGlmLmFkZF9lbnRyeShhbmNlc3RvcmlkX2VudHJ5KQot KwotKyAgICAjIFZlcmlmeSBpdCB3YXMgYWRkZWQgYnkgcmUtcmVhZGluZyBkc2UubGRpZgotKyAg ICBkc2VfbGRpZjIgPSBEU0VsZGlmKHN0YW5kYWxvbmUpCi0rICAgIGNuX3ZhbHVlID0gZHNlX2xk aWYyLmdldChBTkNFU1RPUklEX0ROLCAiY24iKQotKyAgICBhc3NlcnQgY25fdmFsdWUgaXMgbm90 IE5vbmUsICJGYWlsZWQgdG8gYWRkIGFuY2VzdG9yaWQgaW5kZXggY29uZmlnIGVudHJ5IgotKyAg ICBsb2cuaW5mbyhmIkFkZGVkIGFuY2VzdG9yaWQgaW5kZXggZW50cnkgd2l0aCBjbjoge2NuX3Zh bHVlfSIpCi0rCi0rICAgIGxvZy5pbmZvKCJTdGFydCB0aGUgc2VydmVyICh0cmlnZ2VycyB1cGdy YWRlKSIpCi0rICAgIHN0YW5kYWxvbmUuc3RhcnQoKQotKwotKyAgICBsb2cuaW5mbygiVmVyaWZ5 IGFuY2VzdG9yaWQgaW5kZXggY29uZmlnIGVudHJ5IHdhcyByZW1vdmVkIGJ5IHVwZ3JhZGUiKQot KyAgICAjIENoZWNrIHZpYSBMREFQIC0gdGhlIHVwZ3JhZGUgc2hvdWxkIGhhdmUgcmVtb3ZlZCB0 aGUgZW50cnkKLSsgICAgdHJ5OgotKyAgICAgICAgYW5jZXN0b3JpZF9pbmRleCA9IEluZGV4KHN0 YW5kYWxvbmUsIEFOQ0VTVE9SSURfRE4pCi0rICAgICAgICAjIElmIHdlIGNhbiBnZXQgdGhlIGVu dHJ5LCBpdCB3YXNuJ3QgcmVtb3ZlZCAtIHRoaXMgaXMgYSBmYWlsdXJlCi0rICAgICAgICBjbl9h ZnRlciA9IGFuY2VzdG9yaWRfaW5kZXguZ2V0X2F0dHJfdmFsc191dGY4KCJjbiIpCi0rICAgICAg ICBhc3NlcnQgRmFsc2UsIGYiYW5jZXN0b3JpZCBpbmRleCBjb25maWcgZW50cnkgc2hvdWxkIGhh dmUgYmVlbiByZW1vdmVkIGJ1dCBzdGlsbCBleGlzdHM6IHtjbl9hZnRlcn0iCi0rICAgIGV4Y2Vw dCBFeGNlcHRpb24gYXMgZToKLSsgICAgICAgICMgRW50cnkgc2hvdWxkIG5vdCBleGlzdCAtIHRo aXMgaXMgZXhwZWN0ZWQKLSsgICAgICAgIGxvZy5pbmZvKGYiYW5jZXN0b3JpZCBpbmRleCBjb25m aWcgZW50cnkgY29ycmVjdGx5IHJlbW92ZWQgKGdvdCBleGNlcHRpb246IHtlfSkiKQotKwotKyAg ICBsb2cuaW5mbygiVXBncmFkZSBzdWNjZXNzZnVsbHkgcmVtb3ZlZCBhbmNlc3RvcmlkIGluZGV4 IGNvbmZpZyBlbnRyeSIpCi0rCi0rICAgICMgVmVyaWZ5IGlkZW1wb3RlbmN5IC0gcmVzdGFydCBh Z2FpbiBhbmQgZW5zdXJlIG5vIGVycm9ycwotKyAgICBsb2cuaW5mbygiUmVzdGFydCBzZXJ2ZXIg YWdhaW4gdG8gdmVyaWZ5IGlkZW1wb3RlbmN5IChubyBlcnJvcnMgb24gc2Vjb25kIHJ1bikiKQot KyAgICBzdGFuZGFsb25lLnJlc3RhcnQoKQotKyAgICAjIFZlcmlmeSB0aGUgZW50cnkgaXMgc3Rp bGwgYWJzZW50Ci0rICAgIHRyeToKLSsgICAgICAgIGFuY2VzdG9yaWRfaW5kZXggPSBJbmRleChz dGFuZGFsb25lLCBBTkNFU1RPUklEX0ROKQotKyAgICAgICAgY25fYWZ0ZXJfc2Vjb25kID0gYW5j ZXN0b3JpZF9pbmRleC5nZXRfYXR0cl92YWxzX3V0ZjgoImNuIikKLSsgICAgICAgIGFzc2VydCBG YWxzZSwgZiJhbmNlc3RvcmlkIGluZGV4IGNvbmZpZyBlbnRyeSBzaG91bGQgc3RpbGwgYmUgYWJz ZW50IGFmdGVyIHNlY29uZCByZXN0YXJ0IGJ1dCBmb3VuZDoge2NuX2FmdGVyX3NlY29uZH0iCi0r ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSsgICAgICAgIGxvZy5pbmZvKGYiSWRlbXBvdGVu Y3kgdmVyaWZpZWQgLSBhbmNlc3RvcmlkIHN0aWxsIGFic2VudCBhZnRlciBzZWNvbmQgcmVzdGFy dCAoZ290IGV4Y2VwdGlvbjoge2V9KSIpCi0rCi0gCi0gaWYgX19uYW1lX18gPT0gIl9fbWFpbl9f IjoKLSAgICAgIyBSdW4gaXNvbGF0ZWQKLWRpZmYgLS1naXQgYS9sZGFwL2xkaWYvdGVtcGxhdGUt ZHNlLmxkaWYuaW4gYi9sZGFwL2xkaWYvdGVtcGxhdGUtZHNlLmxkaWYuaW4KLWluZGV4IGJiOGM3 MWNkOS4uYjZhYjZmNmM2IDEwMDY0NAotLS0tIGEvbGRhcC9sZGlmL3RlbXBsYXRlLWRzZS5sZGlm LmluCi0rKysgYi9sZGFwL2xkaWYvdGVtcGxhdGUtZHNlLmxkaWYuaW4KLUBAIC05OTgsMTQgKzk5 OCw2IEBAIGNuOiBhY2kKLSBuc3N5c3RlbWluZGV4OiB0cnVlCi0gbnNpbmRleHR5cGU6IHByZXMK LSAKLS1kbjogY249YW5jZXN0b3JpZCxjbj1kZWZhdWx0IGluZGV4ZXMsIGNuPWNvbmZpZyxjbj1s ZGJtIGRhdGFiYXNlLGNuPXBsdWdpbnMsY249Y29uZmlnCi0tb2JqZWN0Y2xhc3M6IHRvcAotLW9i amVjdGNsYXNzOiBuc0luZGV4Ci0tY246IGFuY2VzdG9yaWQKLS1uc3N5c3RlbWluZGV4OiB0cnVl Ci0tbnNpbmRleHR5cGU6IGVxCi0tbnNtYXRjaGluZ3J1bGU6IGludGVnZXJPcmRlcmluZ01hdGNo Ci0tCi0gZG46IGNuPWNuLGNuPWRlZmF1bHQgaW5kZXhlcywgY249Y29uZmlnLGNuPWxkYm0gZGF0 YWJhc2UsY249cGx1Z2lucyxjbj1jb25maWcKLSBvYmplY3RjbGFzczogdG9wCi0gb2JqZWN0Y2xh c3M6IG5zSW5kZXgKLWRpZmYgLS1naXQgYS9sZGFwL3NlcnZlcnMvc2xhcGQvdXBncmFkZS5jIGIv bGRhcC9zZXJ2ZXJzL3NsYXBkL3VwZ3JhZGUuYwotaW5kZXggZGNkMTY5NDBiLi42YjFiMDEyZGEg MTAwNjQ0Ci0tLS0gYS9sZGFwL3NlcnZlcnMvc2xhcGQvdXBncmFkZS5jCi0rKysgYi9sZGFwL3Nl cnZlcnMvc2xhcGQvdXBncmFkZS5jCi1AQCAtNDMxLDYgKzQzMSwxMjYgQEAgdXBncmFkZV9yZW1v dmVfaW5kZXhfc2NhbmxpbWl0KHZvaWQpCi0gICAgIHJldHVybiB1cmVzdWx0OwotIH0KLSAKLSsv KgotKyAqIFJlbW92ZSBhbmNlc3RvcmlkIGluZGV4IGNvbmZpZ3VyYXRpb24gZW50cnkgaWYgcHJl c2VudC4KLSsgKgotKyAqIFRoZSBhbmNlc3RvcmlkIGluZGV4IGlzIHNwZWNpYWwgLSBpdCBoYXMg bm8gY29ycmVzcG9uZGluZyBhdHRyaWJ1dGUgdHlwZQotKyAqIGFuZCBzaG91bGQgbm90IGhhdmUg YSBEU0UgY29uZmlnIGVudHJ5LiBJZiBhbiBlbnRyeSBleGlzdHMsIHJlbW92ZSBpdC4KLSsgKgot KyAqIFRoaXMgZnVuY3Rpb24gcmVtb3ZlczoKLSsgKiAxLiBUaGUgYW5jZXN0b3JpZCBlbnRyeSBm cm9tIGNuPWRlZmF1bHQgaW5kZXhlcyAodG8gcHJldmVudCByZS1jcmVhdGlvbiBvbiBzdGFydHVw KQotKyAqIDIuIFRoZSBhbmNlc3RvcmlkIGVudHJ5IGZyb20gZWFjaCBiYWNrZW5kJ3MgY249aW5k ZXggKGlmIGl0IGV4aXN0cykKLSsgKi8KLStzdGF0aWMgdXBncmFkZV9zdGF0dXMKLSt1cGdyYWRl X3JlbW92ZV9hbmNlc3RvcmlkX2luZGV4X2NvbmZpZyh2b2lkKQotK3sKLSsgICAgc3RydWN0IHNs YXBpX3BibG9jayAqcGIgPSBzbGFwaV9wYmxvY2tfbmV3KCk7Ci0rICAgIFNsYXBpX0VudHJ5ICoq YmFja2VuZHMgPSBOVUxMOwotKyAgICBjb25zdCBjaGFyICpiZV9iYXNlX2RuID0gImNuPWxkYm0g ZGF0YWJhc2UsY249cGx1Z2lucyxjbj1jb25maWciOwotKyAgICBjb25zdCBjaGFyICpiZV9maWx0 ZXIgPSAiKG9iamVjdGNsYXNzPW5zQmFja2VuZEluc3RhbmNlKSI7Ci0rICAgIHVwZ3JhZGVfc3Rh dHVzIHVyZXN1bHQgPSBVUEdSQURFX1NVQ0NFU1M7Ci0rICAgIGludCByYzsKLSsKLSsgICAgLyoK LSsgICAgICogRmlyc3QsIHJlbW92ZSBhbmNlc3RvcmlkIGZyb20gY249ZGVmYXVsdCBpbmRleGVz IHRvIHByZXZlbnQKLSsgICAgICogbGRibV9pbnN0YW5jZV9jcmVhdGVfZGVmYXVsdF91c2VyX2lu ZGV4ZXMoKSBmcm9tIHJlLWNyZWF0aW5nIGl0LgotKyAgICAgKi8KLSsgICAgewotKyAgICAgICAg U2xhcGlfUEJsb2NrICpkZWZfcGIgPSBzbGFwaV9wYmxvY2tfbmV3KCk7Ci0rICAgICAgICBjaGFy ICpkZWZfaWR4X2RuID0gc2xhcGlfY3JlYXRlX2RuX3N0cmluZygKLSsgICAgICAgICAgICAgICAg ImNuPWFuY2VzdG9yaWQsY249ZGVmYXVsdCBpbmRleGVzLGNuPWNvbmZpZywlcyIsIGJlX2Jhc2Vf ZG4pOwotKwotKyAgICAgICAgaWYgKGRlZl9pZHhfZG4pIHsKLSsgICAgICAgICAgICBzbGFwaV9k ZWxldGVfaW50ZXJuYWxfc2V0X3BiKAotKyAgICAgICAgICAgICAgICAgICAgZGVmX3BiLCBkZWZf aWR4X2RuLCBOVUxMLCBOVUxMLAotKyAgICAgICAgICAgICAgICAgICAgcGx1Z2luX2dldF9kZWZh dWx0X2NvbXBvbmVudF9pZCgpLCAwKTsKLSsgICAgICAgICAgICBzbGFwaV9kZWxldGVfaW50ZXJu YWxfcGIoZGVmX3BiKTsKLSsgICAgICAgICAgICBzbGFwaV9wYmxvY2tfZ2V0KGRlZl9wYiwgU0xB UElfUExVR0lOX0lOVE9QX1JFU1VMVCwgJnJjKTsKLSsKLSsgICAgICAgICAgICBpZiAocmMgPT0g TERBUF9TVUNDRVNTKSB7Ci0rICAgICAgICAgICAgICAgIHNsYXBpX2xvZ19lcnIoU0xBUElfTE9H X05PVElDRSwgInVwZ3JhZGVfcmVtb3ZlX2FuY2VzdG9yaWRfaW5kZXhfY29uZmlnIiwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAiUmVtb3ZlZCAnYW5jZXN0b3JpZCcgZnJvbSBkZWZhdWx0IGlu ZGV4ZXMuXG4iKTsKLSsgICAgICAgICAgICB9IGVsc2UgaWYgKHJjICE9IExEQVBfTk9fU1VDSF9P QkpFQ1QpIHsKLSsgICAgICAgICAgICAgICAgc2xhcGlfbG9nX2VycihTTEFQSV9MT0dfRVJSLCAi dXBncmFkZV9yZW1vdmVfYW5jZXN0b3JpZF9pbmRleF9jb25maWciLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICJGYWlsZWQgdG8gcmVtb3ZlICdhbmNlc3RvcmlkJyBmcm9tIGRlZmF1bHQgaW5k ZXhlczogZXJyb3IgJWRcbiIsIHJjKTsKLSsgICAgICAgICAgICB9Ci0rCi0rICAgICAgICAgICAg c2xhcGlfY2hfZnJlZV9zdHJpbmcoJmRlZl9pZHhfZG4pOwotKyAgICAgICAgfQotKyAgICAgICAg c2xhcGlfcGJsb2NrX2Rlc3Ryb3koZGVmX3BiKTsKLSsgICAgfQotKwotKyAgICAvKiBTZWFyY2gg Zm9yIGFsbCBiYWNrZW5kIGluc3RhbmNlcyAqLwotKyAgICBzbGFwaV9zZWFyY2hfaW50ZXJuYWxf c2V0X3BiKAotKyAgICAgICAgICAgIHBiLCBiZV9iYXNlX2RuLAotKyAgICAgICAgICAgIExEQVBf U0NPUEVfT05FTEVWRUwsCi0rICAgICAgICAgICAgYmVfZmlsdGVyLCBOVUxMLCAwLCBOVUxMLCBO VUxMLAotKyAgICAgICAgICAgIHBsdWdpbl9nZXRfZGVmYXVsdF9jb21wb25lbnRfaWQoKSwgMCk7 Ci0rICAgIHNsYXBpX3NlYXJjaF9pbnRlcm5hbF9wYihwYik7Ci0rICAgIHNsYXBpX3BibG9ja19n ZXQocGIsIFNMQVBJX1BMVUdJTl9JTlRPUF9TRUFSQ0hfRU5UUklFUywgJmJhY2tlbmRzKTsKLSsK LSsgICAgaWYgKGJhY2tlbmRzKSB7Ci0rICAgICAgICBmb3IgKHNpemVfdCBiZV9pZHggPSAwOyBi YWNrZW5kc1tiZV9pZHhdICE9IE5VTEw7IGJlX2lkeCsrKSB7Ci0rICAgICAgICAgICAgY29uc3Qg Y2hhciAqYmVfZG4gPSBzbGFwaV9lbnRyeV9nZXRfZG5fY29uc3QoYmFja2VuZHNbYmVfaWR4XSk7 Ci0rICAgICAgICAgICAgY29uc3QgY2hhciAqYmVfbmFtZSA9IHNsYXBpX2VudHJ5X2F0dHJfZ2V0 X3JlZihiYWNrZW5kc1tiZV9pZHhdLCAiY24iKTsKLSsgICAgICAgICAgICBpZiAoIWJlX2RuIHx8 ICFiZV9uYW1lKSB7Ci0rICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotKyAgICAgICAgICAgIH0K LSsKLSsgICAgICAgICAgICBzdHJ1Y3Qgc2xhcGlfcGJsb2NrICppZHhfcGIgPSBzbGFwaV9wYmxv Y2tfbmV3KCk7Ci0rICAgICAgICAgICAgU2xhcGlfRW50cnkgKippZHhfZW50cmllcyA9IE5VTEw7 Ci0rICAgICAgICAgICAgY2hhciAqaWR4X2RuID0gc2xhcGlfY3JlYXRlX2RuX3N0cmluZygiY249 YW5jZXN0b3JpZCxjbj1pbmRleCwlcyIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYmVfZG4pOwotKyAgICAgICAgICAgIGNoYXIgKmlkeF9maWx0 ZXIgPSAiKG9iamVjdGNsYXNzPW5zSW5kZXgpIjsKLSsKLSsgICAgICAgICAgICBpZiAoIWlkeF9k bikgewotKyAgICAgICAgICAgICAgICBzbGFwaV9wYmxvY2tfZGVzdHJveShpZHhfcGIpOwotKyAg ICAgICAgICAgICAgICBjb250aW51ZTsKLSsgICAgICAgICAgICB9Ci0rCi0rICAgICAgICAgICAg c2xhcGlfc2VhcmNoX2ludGVybmFsX3NldF9wYigKLSsgICAgICAgICAgICAgICAgICAgIGlkeF9w YiwgaWR4X2RuLAotKyAgICAgICAgICAgICAgICAgICAgTERBUF9TQ09QRV9CQVNFLAotKyAgICAg ICAgICAgICAgICAgICAgaWR4X2ZpbHRlciwgTlVMTCwgMCwgTlVMTCwgTlVMTCwKLSsgICAgICAg ICAgICAgICAgICAgIHBsdWdpbl9nZXRfZGVmYXVsdF9jb21wb25lbnRfaWQoKSwgMCk7Ci0rICAg ICAgICAgICAgc2xhcGlfc2VhcmNoX2ludGVybmFsX3BiKGlkeF9wYik7Ci0rICAgICAgICAgICAg c2xhcGlfcGJsb2NrX2dldChpZHhfcGIsIFNMQVBJX1BMVUdJTl9JTlRPUF9TRUFSQ0hfRU5UUklF UywgJmlkeF9lbnRyaWVzKTsKLSsKLSsgICAgICAgICAgICBpZiAoaWR4X2VudHJpZXMgJiYgaWR4 X2VudHJpZXNbMF0pIHsKLSsgICAgICAgICAgICAgICAgLyogYW5jZXN0b3JpZCBpbmRleCBlbnRy eSBleGlzdHMgLSBkZWxldGUgaXQgKi8KLSsgICAgICAgICAgICAgICAgU2xhcGlfUEJsb2NrICpk ZWxfcGIgPSBzbGFwaV9wYmxvY2tfbmV3KCk7Ci0rCi0rICAgICAgICAgICAgICAgIHNsYXBpX2Rl bGV0ZV9pbnRlcm5hbF9zZXRfcGIoCi0rICAgICAgICAgICAgICAgICAgICAgICAgZGVsX3BiLCBp ZHhfZG4sIE5VTEwsIE5VTEwsCi0rICAgICAgICAgICAgICAgICAgICAgICAgcGx1Z2luX2dldF9k ZWZhdWx0X2NvbXBvbmVudF9pZCgpLCAwKTsKLSsgICAgICAgICAgICAgICAgc2xhcGlfZGVsZXRl X2ludGVybmFsX3BiKGRlbF9wYik7Ci0rICAgICAgICAgICAgICAgIHNsYXBpX3BibG9ja19nZXQo ZGVsX3BiLCBTTEFQSV9QTFVHSU5fSU5UT1BfUkVTVUxULCAmcmMpOwotKwotKyAgICAgICAgICAg ICAgICBpZiAocmMgPT0gTERBUF9TVUNDRVNTKSB7Ci0rICAgICAgICAgICAgICAgICAgICBzbGFw aV9sb2dfZXJyKFNMQVBJX0xPR19OT1RJQ0UsICJ1cGdyYWRlX3JlbW92ZV9hbmNlc3RvcmlkX2lu ZGV4X2NvbmZpZyIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSZW1vdmVkICdhbmNl c3RvcmlkJyBpbmRleCBjb25maWcgZW50cnkgaW4gYmFja2VuZCAnJXMnLlxuIiwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYmVfbmFtZSk7Ci0rICAgICAgICAgICAgICAgIH0gZWxzZSBp ZiAocmMgIT0gTERBUF9OT19TVUNIX09CSkVDVCkgewotKyAgICAgICAgICAgICAgICAgICAgc2xh cGlfbG9nX2VycihTTEFQSV9MT0dfRVJSLCAidXBncmFkZV9yZW1vdmVfYW5jZXN0b3JpZF9pbmRl eF9jb25maWciLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIHJlbW92 ZSAnYW5jZXN0b3JpZCcgaW5kZXggY29uZmlnIGVudHJ5IGluIGJhY2tlbmQgJyVzJzogZXJyb3Ig JWRcbiIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlX25hbWUsIHJjKTsKLSsgICAg ICAgICAgICAgICAgfQotKwotKyAgICAgICAgICAgICAgICBzbGFwaV9wYmxvY2tfZGVzdHJveShk ZWxfcGIpOwotKyAgICAgICAgICAgIH0KLSsKLSsgICAgICAgICAgICBzbGFwaV9jaF9mcmVlX3N0 cmluZygmaWR4X2RuKTsKLSsgICAgICAgICAgICBzbGFwaV9mcmVlX3NlYXJjaF9yZXN1bHRzX2lu dGVybmFsKGlkeF9wYik7Ci0rICAgICAgICAgICAgc2xhcGlfcGJsb2NrX2Rlc3Ryb3koaWR4X3Bi KTsKLSsgICAgICAgIH0KLSsgICAgfQotKwotKyAgICBzbGFwaV9mcmVlX3NlYXJjaF9yZXN1bHRz X2ludGVybmFsKHBiKTsKLSsgICAgc2xhcGlfcGJsb2NrX2Rlc3Ryb3kocGIpOwotKwotKyAgICBy ZXR1cm4gdXJlc3VsdDsKLSt9Ci0rCi0gLyoKLSAgKiBDaGVjayBpZiBwYXJlbnRpZC9hbmNlc3Rv cmlkIGluZGV4ZXMgYXJlIG1pc3NpbmcgdGhlIGludGVnZXJPcmRlcmluZ01hdGNoCi0gICogbWF0 Y2hpbmcgcnVsZS4KLUBAIC00NDUsNyArNTY1LDcgQEAgdXBncmFkZV9jaGVja19pZF9pbmRleF9t YXRjaGluZ19ydWxlKHZvaWQpCi0gICAgIFNsYXBpX0VudHJ5ICoqYmFja2VuZHMgPSBOVUxMOwot ICAgICBjb25zdCBjaGFyICpiZV9iYXNlX2RuID0gImNuPWxkYm0gZGF0YWJhc2UsY249cGx1Z2lu cyxjbj1jb25maWciOwotICAgICBjb25zdCBjaGFyICpiZV9maWx0ZXIgPSAiKG9iamVjdGNsYXNz PW5zQmFja2VuZEluc3RhbmNlKSI7Ci0tICAgIGNvbnN0IGNoYXIgKmF0dHJzX3RvX2NoZWNrW10g PSB7InBhcmVudGlkIiwgImFuY2VzdG9yaWQiLCBOVUxMfTsKLSsgICAgY29uc3QgY2hhciAqYXR0 cnNfdG9fY2hlY2tbXSA9IHsicGFyZW50aWQiLCBOVUxMfTsKLSAgICAgdXBncmFkZV9zdGF0dXMg dXJlc3VsdCA9IFVQR1JBREVfU1VDQ0VTUzsKLSAKLSAgICAgLyogU2VhcmNoIGZvciBhbGwgYmFj a2VuZCBpbnN0YW5jZXMgKi8KLUBAIC00NTksOCArNTc5LDkgQEAgdXBncmFkZV9jaGVja19pZF9p bmRleF9tYXRjaGluZ19ydWxlKHZvaWQpCi0gCi0gICAgIGlmIChiYWNrZW5kcykgewotICAgICAg ICAgZm9yIChzaXplX3QgYmVfaWR4ID0gMDsgYmFja2VuZHNbYmVfaWR4XSAhPSBOVUxMOyBiZV9p ZHgrKykgewotKyAgICAgICAgICAgIGNvbnN0IGNoYXIgKmJlX2RuID0gc2xhcGlfZW50cnlfZ2V0 X2RuX2NvbnN0KGJhY2tlbmRzW2JlX2lkeF0pOwotICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmJl X25hbWUgPSBzbGFwaV9lbnRyeV9hdHRyX2dldF9yZWYoYmFja2VuZHNbYmVfaWR4XSwgImNuIik7 Ci0tICAgICAgICAgICAgaWYgKCFiZV9uYW1lKSB7Ci0rICAgICAgICAgICAgaWYgKCFiZV9kbiB8 fCAhYmVfbmFtZSkgewotICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICB9 Ci0gCi1AQCAtNDY5LDggKzU5MCw4IEBAIHVwZ3JhZGVfY2hlY2tfaWRfaW5kZXhfbWF0Y2hpbmdf cnVsZSh2b2lkKQotICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICphdHRyX25hbWUgPSBhdHRy c190b19jaGVja1thdHRyX2lkeF07Ci0gICAgICAgICAgICAgICAgIHN0cnVjdCBzbGFwaV9wYmxv Y2sgKmlkeF9wYiA9IHNsYXBpX3BibG9ja19uZXcoKTsKLSAgICAgICAgICAgICAgICAgU2xhcGlf RW50cnkgKippZHhfZW50cmllcyA9IE5VTEw7Ci0tICAgICAgICAgICAgICAgIGNoYXIgKmlkeF9k biA9IHNsYXBpX2NyZWF0ZV9kbl9zdHJpbmcoImNuPSVzLGNuPWluZGV4LGNuPSVzLCVzIiwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0 cl9uYW1lLCBiZV9uYW1lLCBiZV9iYXNlX2RuKTsKLSsgICAgICAgICAgICAgICAgY2hhciAqaWR4 X2RuID0gc2xhcGlfY3JlYXRlX2RuX3N0cmluZygiY249JXMsY249aW5kZXgsJXMiLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyX25h bWUsIGJlX2RuKTsKLSAgICAgICAgICAgICAgICAgY2hhciAqaWR4X2ZpbHRlciA9ICIob2JqZWN0 Y2xhc3M9bnNJbmRleCkiOwotICAgICAgICAgICAgICAgICBQUkJvb2wgaGFzX21hdGNoaW5nX3J1 bGUgPSBQUl9GQUxTRTsKLSAKLUBAIC03NTQsNiArODc1LDEwIEBAIHVwZ3JhZGVfc2VydmVyKHZv aWQpCi0gICAgICAgICByZXR1cm4gVVBHUkFERV9GQUlMVVJFOwotICAgICB9Ci0gCi0rICAgIGlm ICh1cGdyYWRlX3JlbW92ZV9hbmNlc3RvcmlkX2luZGV4X2NvbmZpZygpICE9IFVQR1JBREVfU1VD Q0VTUykgewotKyAgICAgICAgcmV0dXJuIFVQR1JBREVfRkFJTFVSRTsKLSsgICAgfQotKwotICAg ICBpZiAodXBncmFkZV9jaGVja19pZF9pbmRleF9tYXRjaGluZ19ydWxlKCkgIT0gVVBHUkFERV9T VUNDRVNTKSB7Ci0gICAgICAgICByZXR1cm4gVVBHUkFERV9GQUlMVVJFOwotICAgICB9Ci0tLSAK LTIuNTIuMAotCgpkaWZmIC0tZ2l0IGEvMDAzNS1Jc3N1ZS03MjIzLURldGVjdC1hbmQtbG9nLWlu ZGV4LW9yZGVyaW5nLW1pc21hdGNoLWR1LnBhdGNoIGIvMDAzNS1Jc3N1ZS03MjIzLURldGVjdC1h bmQtbG9nLWluZGV4LW9yZGVyaW5nLW1pc21hdGNoLWR1LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCA2NjJkOWU4Li4wMDAwMDAwCi0tLSBhLzAwMzUtSXNzdWUtNzIyMy1EZXRl Y3QtYW5kLWxvZy1pbmRleC1vcmRlcmluZy1taXNtYXRjaC1kdS5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDMwMCArMCwwIEBACi1Gcm9tIGEyNjBiNTBhYTBjOGU2YzViOGIzZmQwYjE2NGU5YmJj NGExNTk4M2YgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBWaWt0b3IgQXNoaXJvdiA8 dmFzaGlyb3ZAcmVkaGF0LmNvbT4KLURhdGU6IFRodSwgNSBGZWIgMjAyNiAxMjoxNzowNiArMDEw MAotU3ViamVjdDogW1BBVENIXSBJc3N1ZSA3MjIzIC0gRGV0ZWN0IGFuZCBsb2cgaW5kZXggb3Jk ZXJpbmcgbWlzbWF0Y2ggZHVyaW5nCi0gYmFja2VuZCBzdGFydHVwCi0KLURlc2NyaXB0aW9uOgot QWRkIGBsZGJtX2luc3RhbmNlX2NoZWNrX2luZGV4X2NvbmZpZygpYCBmdW5jdGlvbiB0aGF0IGNo ZWNrcyBvbi1kaXNrCi1pbmRleCBkYXRhIGFuZCBsb2dzIGEgbWVzc2FnZSBpbiBjYXNlIG9mIGEg bWlzbWF0Y2ggd2l0aCBEU0UgY29uZmlnIGVudHJ5LgotCi1SZWxhdGVzOiBodHRwczovL2dpdGh1 Yi5jb20vMzg5ZHMvMzg5LWRzLWJhc2UvaXNzdWVzLzcyMjMKLQotUmV2aWV3ZWQgYnk6IEBwcm9n aWVyMzg5LCBAdGJvcmRheiwgQGRyb2lkZWNrIChUaGFua3MhKQotLS0tCi0gbGRhcC9zZXJ2ZXJz L3NsYXBkL2JhY2stbGRibS9pbnN0YW5jZS5jIHwgMjYyICsrKysrKysrKysrKysrKysrKysrKysr KwotIDEgZmlsZSBjaGFuZ2VkLCAyNjIgaW5zZXJ0aW9ucygrKQotCi1kaWZmIC0tZ2l0IGEvbGRh cC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9pbnN0YW5jZS5jIGIvbGRhcC9zZXJ2ZXJzL3NsYXBk L2JhY2stbGRibS9pbnN0YW5jZS5jCi1pbmRleCAyYjcxY2Q0ZjcuLjE3YmZjMDlhMCAxMDA2NDQK LS0tLSBhL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vaW5zdGFuY2UuYwotKysrIGIvbGRh cC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9pbnN0YW5jZS5jCi1AQCAtMjM5LDYgKzIzOSwyNjYg QEAgbGRibV9pbnN0YW5jZV9jcmVhdGVfZGVmYXVsdF9pbmRleGVzKGJhY2tlbmQgKmJlKQotIH0K LSAKLSAKLSsvKgotKyAqIENoZWNrIGlmIGFuIGluZGV4IGhhcyBpbnRlZ2VyT3JkZXJpbmdNYXRj aCBjb25maWd1cmVkIGluIERTRS4KLSsgKgotKyAqIFRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgYW4g aW50ZXJuYWwgTERBUCBzZWFyY2ggdG8gY2hlY2sgaWYgdGhlIGluZGV4Ci0rICogY29uZmlndXJh dGlvbiBlbnRyeSBoYXMgbnNNYXRjaGluZ1J1bGU6IGludGVnZXJPcmRlcmluZ01hdGNoLgotKyAq Ci0rICogUGFyYW1ldGVyczoKLSsgKiAgIGluc3RfbmFtZSAtIGJhY2tlbmQgaW5zdGFuY2UgbmFt ZSAoZS5nLiwgInVzZXJSb290IikKLSsgKiAgIGluZGV4X25hbWUgLSBuYW1lIG9mIHRoZSBpbmRl eCB0byBjaGVjayAoZS5nLiwgInBhcmVudGlkIiwgImFuY2VzdG9yaWQiKQotKyAqCi0rICogUmV0 dXJuczoKLSsgKiAgIFBSX1RSVUUgaWYgaW50ZWdlck9yZGVyaW5nTWF0Y2ggaXMgY29uZmlndXJl ZAotKyAqICAgUFJfRkFMU0UgaWYgbm90IGNvbmZpZ3VyZWQgb3IgaW5kZXggZW50cnkgZG9lc24n dCBleGlzdAotKyAqLwotK3N0YXRpYyBQUkJvb2wKLStsZGJtX2luc3RhbmNlX2luZGV4X2hhc19p bnRfb3JkZXJfaW5fZHNlKGNvbnN0IGNoYXIgKmluc3RfbmFtZSwgY29uc3QgY2hhciAqaW5kZXhf bmFtZSkKLSt7Ci0rICAgIFNsYXBpX1BCbG9jayAqcGIgPSBOVUxMOwotKyAgICBTbGFwaV9FbnRy eSAqKmVudHJpZXMgPSBOVUxMOwotKyAgICBjaGFyICppZHhfZG4gPSBOVUxMOwotKyAgICBQUkJv b2wgaGFzX2ludF9vcmRlciA9IFBSX0ZBTFNFOwotKwotKyAgICBpZHhfZG4gPSBzbGFwaV9jcmVh dGVfZG5fc3RyaW5nKCJjbj0lcyxjbj1pbmRleCxjbj0lcyxjbj1sZGJtIGRhdGFiYXNlLGNuPXBs dWdpbnMsY249Y29uZmlnIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aW5kZXhfbmFtZSwgaW5zdF9uYW1lKTsKLSsgICAgaWYgKGlkeF9kbiA9PSBOVUxMKSB7Ci0rICAg ICAgICByZXR1cm4gUFJfRkFMU0U7Ci0rICAgIH0KLSsKLSsgICAgcGIgPSBzbGFwaV9wYmxvY2tf bmV3KCk7Ci0rICAgIHNsYXBpX3NlYXJjaF9pbnRlcm5hbF9zZXRfcGIocGIsIGlkeF9kbiwgTERB UF9TQ09QRV9CQVNFLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKG9iamVj dGNsYXNzPW5zSW5kZXgpIiwgTlVMTCwgMCwgTlVMTCwgTlVMTCwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcGx1Z2luX2dldF9kZWZhdWx0X2NvbXBvbmVudF9pZCgpLCAwKTsK LSsgICAgc2xhcGlfc2VhcmNoX2ludGVybmFsX3BiKHBiKTsKLSsgICAgc2xhcGlfcGJsb2NrX2dl dChwYiwgU0xBUElfUExVR0lOX0lOVE9QX1NFQVJDSF9FTlRSSUVTLCAmZW50cmllcyk7Ci0rCi0r ICAgIGlmIChlbnRyaWVzICYmIGVudHJpZXNbMF0pIHsKLSsgICAgICAgIFNsYXBpX0F0dHIgKm1y X2F0dHIgPSBOVUxMOwotKyAgICAgICAgaWYgKHNsYXBpX2VudHJ5X2F0dHJfZmluZChlbnRyaWVz WzBdLCAibnNNYXRjaGluZ1J1bGUiLCAmbXJfYXR0cikgPT0gMCkgewotKyAgICAgICAgICAgIFNs YXBpX1ZhbHVlICpzdmFsID0gTlVMTDsKLSsgICAgICAgICAgICBpbnQgaWR4OwotKyAgICAgICAg ICAgIGZvciAoaWR4ID0gc2xhcGlfYXR0cl9maXJzdF92YWx1ZShtcl9hdHRyLCAmc3ZhbCk7Ci0r ICAgICAgICAgICAgICAgICBpZHggIT0gLTE7Ci0rICAgICAgICAgICAgICAgICBpZHggPSBzbGFw aV9hdHRyX25leHRfdmFsdWUobXJfYXR0ciwgaWR4LCAmc3ZhbCkpIHsKLSsgICAgICAgICAgICAg ICAgY29uc3Qgc3RydWN0IGJlcnZhbCAqYnZhbCA9IHNsYXBpX3ZhbHVlX2dldF9iZXJ2YWwoc3Zh bCk7Ci0rICAgICAgICAgICAgICAgIGlmIChidmFsICYmIGJ2YWwtPmJ2X3ZhbCAmJgotKyAgICAg ICAgICAgICAgICAgICAgc3RyY2FzZWNtcChidmFsLT5idl92YWwsICJpbnRlZ2VyT3JkZXJpbmdN YXRjaCIpID09IDApIHsKLSsgICAgICAgICAgICAgICAgICAgIGhhc19pbnRfb3JkZXIgPSBQUl9U UlVFOwotKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0rICAgICAgICAgICAgICAgIH0KLSsg ICAgICAgICAgICB9Ci0rICAgICAgICB9Ci0rICAgIH0KLSsKLSsgICAgc2xhcGlfY2hfZnJlZV9z dHJpbmcoJmlkeF9kbik7Ci0rICAgIHNsYXBpX2ZyZWVfc2VhcmNoX3Jlc3VsdHNfaW50ZXJuYWwo cGIpOwotKyAgICBzbGFwaV9wYmxvY2tfZGVzdHJveShwYik7Ci0rCi0rICAgIHJldHVybiBoYXNf aW50X29yZGVyOwotK30KLSsKLSsvKgotKyAqIENoZWNrIGEgc3lzdGVtIGluZGV4IGZvciBvcmRl cmluZyBtaXNtYXRjaCBiZXR3ZWVuIGNvbmZpZyBhbmQgb24tZGlzayBkYXRhLgotKyAqCi0rICog VGhpcyBmdW5jdGlvbiBjb21wYXJlcyB3aGF0J3MgY29uZmlndXJlZCBpbiBEU0UgKG5zTWF0Y2hp bmdSdWxlKSB3aXRoCi0rICogd2hhdCdzIGFjdHVhbGx5IG9uIGRpc2suIEEgbWlzbWF0Y2ggY2Fu IG9jY3VyIGluIHR3byBzY2VuYXJpb3M6Ci0rICogMS4gT3JkZXJpbmcgcnVsZSBpcyBjb25maWd1 cmVkIGJ1dCBkaXNrIGhhcyBsZXhpY29ncmFwaGljIG9yZGVyCi0rICogICAgKHJ1bGUgd2FzIGFk ZGVkIGFmdGVyIGluZGV4IHdhcyBjcmVhdGVkKQotKyAqIDIuIE5vIG9yZGVyaW5nIHJ1bGUgY29u ZmlndXJlZCBidXQgZGlzayBoYXMgaW50ZWdlciBvcmRlcgotKyAqICAgIChydWxlIHdhcyByZW1v dmVkIGFmdGVyIGluZGV4IHdhcyBjcmVhdGVkIHdpdGggaXQpCi0rICoKLSsgKiBUaGlzIGZ1bmN0 aW9uIHJlYWRzIHRoZSBmaXJzdCBrZXlzIGZyb20gdGhlIHNwZWNpZmllZCBpbmRleCBhbmQgY2hl Y2tzCi0rICogaWYgdGhleSBhcmUgc3RvcmVkIGluIGxleGljb2dyYXBoaWMgb3JkZXIgKHN0cmlu ZzogIjEiIDwgIjEwIiA8ICIyIikgb3IKLSsgKiBpbnRlZ2VyIG9yZGVyIChudW1lcmljOiAiMSIg PCAiMiIgPCAiMTAiKS4KLSsgKgotKyAqIFBhcmFtZXRlcnM6Ci0rICogICBiZSAtIGJhY2tlbmQK LSsgKiAgIGluZGV4X25hbWUgLSBuYW1lIG9mIHRoZSBpbmRleCB0byBjaGVjayAoZS5nLiwgInBh cmVudGlkIiwgImFuY2VzdG9yaWQiKQotKyAqCi0rICovCi0rc3RhdGljIHZvaWQKLStsZGJtX2lu c3RhbmNlX2NoZWNrX2luZGV4X2NvbmZpZyhiYWNrZW5kICpiZSwgY29uc3QgY2hhciAqaW5kZXhf bmFtZSkKLSt7Ci0rICAgIGxkYm1faW5zdGFuY2UgKmluc3QgPSAobGRibV9pbnN0YW5jZSAqKWJl LT5iZV9pbnN0YW5jZV9pbmZvOwotKyAgICBzdHJ1Y3QgYXR0cmluZm8gKmFpID0gTlVMTDsKLSsg ICAgZGJpX2RiX3QgKmRiID0gTlVMTDsKLSsgICAgZGJpX2N1cnNvcl90IGRiYyA9IHswfTsKLSsg ICAgZGJpX3ZhbF90IGtleSA9IHswfTsKLSsgICAgZGJpX3ZhbF90IGRhdGEgPSB7MH07Ci0rICAg IGludCByZXQgPSAwOwotKyAgICBQUkJvb2wgY29uZmlnX2hhc19pbnRfb3JkZXIgPSBQUl9GQUxT RTsKLSsgICAgUFJCb29sIGRpc2tfaGFzX2ludF9vcmRlciA9IFBSX1RSVUU7ICAvKiBBc3N1bWUg aW50ZWdlciBvcmRlciB1bnRpbCBwcm92ZW4gb3RoZXJ3aXNlICovCi0rICAgIElEIHByZXZfaWQg PSAwOwotKyAgICBpbnQga2V5X2NvdW50ID0gMDsKLSsgICAgUFJCb29sIGZpcnN0X2tleSA9IFBS X1RSVUU7Ci0rICAgIFBSQm9vbCBmb3VuZF9vcmRlcmluZ19ldmlkZW5jZSA9IFBSX0ZBTFNFOwot KwotKyAgICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xPR19ERUJVRywgImxkYm1faW5zdGFuY2VfY2hl Y2tfaW5kZXhfY29uZmlnIiwKLSsgICAgICAgICAgICAiQmFja2VuZCAnJXMnOiBjaGVja2luZyAl cyBpbmRleCBvcmRlcmluZy4uLlxuIiwKLSsgICAgICAgICAgICBpbnN0LT5pbnN0X25hbWUsIGlu ZGV4X25hbWUpOwotKwotKyAgICAvKiBDaGVjayBpZiBpbnRlZ2VyT3JkZXJpbmdNYXRjaCBpcyBj b25maWd1cmVkIGluIERTRSAqLwotKyAgICBjb25maWdfaGFzX2ludF9vcmRlciA9IGxkYm1faW5z dGFuY2VfaW5kZXhfaGFzX2ludF9vcmRlcl9pbl9kc2UoaW5zdC0+aW5zdF9uYW1lLCBpbmRleF9u YW1lKTsKLSsKLSsgICAgLyogR2V0IGF0dHJpbmZvIGZvciB0aGUgaW5kZXggKi8KLSsgICAgYWlu Zm9fZ2V0KGJlLCAoY2hhciAqKWluZGV4X25hbWUsICZhaSk7Ci0rICAgIGlmIChhaSA9PSBOVUxM IHx8IHN0cmNtcChhaS0+YWlfdHlwZSwgaW5kZXhfbmFtZSkgIT0gMCkgewotKyAgICAgICAgLyog Tm8gaW5kZXggY29uZmlnIGZvdW5kICovCi0rICAgICAgICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xP R19ERUJVRywgImxkYm1faW5zdGFuY2VfY2hlY2tfaW5kZXhfY29uZmlnIiwKLSsgICAgICAgICAg ICAgICAgIkJhY2tlbmQgJyVzJzogbm8gJXMgYXR0cmluZm8gZm91bmQsIHNraXBwaW5nIGNoZWNr XG4iLAotKyAgICAgICAgICAgICAgICBpbnN0LT5pbnN0X25hbWUsIGluZGV4X25hbWUpOwotKyAg ICAgICAgcmV0dXJuOwotKyAgICB9Ci0rCi0rICAgIC8qIE9wZW4gdGhlIGluZGV4IGZpbGUgKi8K LSsgICAgcmV0ID0gZGJsYXllcl9nZXRfaW5kZXhfZmlsZShiZSwgYWksICZkYiwgMCk7Ci0rICAg IGlmIChyZXQgIT0gMCB8fCBkYiA9PSBOVUxMKSB7Ci0rICAgICAgICAvKiBJbmRleCBmaWxlIGRv ZXNuJ3QgZXhpc3Qgb3IgY2FuJ3QgYmUgb3BlbmVkIC0gdGhpcyBpcyBmaW5lIGZvciBuZXcgaW5z dGFuY2VzICovCi0rICAgICAgICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xPR19ERUJVRywgImxkYm1f aW5zdGFuY2VfY2hlY2tfaW5kZXhfY29uZmlnIiwKLSsgICAgICAgICAgICAgICAgIkJhY2tlbmQg JyVzJzogY291bGQgbm90IG9wZW4gJXMgaW5kZXggZmlsZSAocmV0PSVkKSwgc2tpcHBpbmcgb3Jk ZXIgY2hlY2tcbiIsCi0rICAgICAgICAgICAgICAgIGluc3QtPmluc3RfbmFtZSwgaW5kZXhfbmFt ZSwgcmV0KTsKLSsgICAgICAgIHJldHVybjsKLSsgICAgfQotKwotKyAgICAvKiBDcmVhdGUgYSBj dXJzb3IgdG8gcmVhZCBrZXlzICovCi0rICAgIHJldCA9IGRibGF5ZXJfbmV3X2N1cnNvcihiZSwg ZGIsIE5VTEwsICZkYmMpOwotKyAgICBpZiAocmV0ICE9IDApIHsKLSsgICAgICAgIHNsYXBpX2xv Z19lcnIoU0xBUElfTE9HX0VSUiwgImxkYm1faW5zdGFuY2VfY2hlY2tfaW5kZXhfY29uZmlnIiwK LSsgICAgICAgICAgICAgICAgIkJhY2tlbmQgJyVzJzogY291bGQgbm90IGNyZWF0ZSBjdXJzb3Ig b24gJXMgaW5kZXggKHJldD0lZClcbiIsCi0rICAgICAgICAgICAgICAgIGluc3QtPmluc3RfbmFt ZSwgaW5kZXhfbmFtZSwgcmV0KTsKLSsgICAgICAgIGRibGF5ZXJfcmVsZWFzZV9pbmRleF9maWxl KGJlLCBhaSwgZGIpOwotKyAgICAgICAgcmV0dXJuOwotKyAgICB9Ci0rCi0rICAgIGRibGF5ZXJf dmFsdWVfaW5pdChiZSwgJmtleSk7Ci0rICAgIGRibGF5ZXJfdmFsdWVfaW5pdChiZSwgJmRhdGEp OwotKwotKyAgICAvKgotKyAgICAgKiBSZWFkIHVwIHRvIDEwMCB1bmlxdWUga2V5cyBhbmQgY2hl Y2sgdGhlaXIgb3JkZXJpbmcuCi0rICAgICAqIFdpdGggbGV4aWNvZ3JhcGhpYyBvcmRlcmluZzog IjEiIDwgIjEwIiA8ICIxMDAiIDwgIjIiIDwgIjIwIiA8ICIzIgotKyAgICAgKiBXaXRoIGludGVn ZXIgb3JkZXJpbmc6ICIxIiA8ICIyIiA8ICIzIiA8ICIxMCIgPCAiMjAiIDwgIjEwMCIKLSsgICAg ICoKLSsgICAgICogSWYgd2UgZmluZCBhIGNhc2Ugd2hlcmUgcHJldl9pZCA+IGN1cnJlbnRfaWQg KG51bWVyaWNhbGx5KSwgYnV0IHRoZQotKyAgICAgKiBrZXlzIGFyZSBzdGlsbCBpbiBvcmRlciAo bGV4aWNvZ3JhcGhpY2FsbHkpLCB0aGVuIHRoZSBpbmRleCB1c2VzCi0rICAgICAqIGxleGljb2dy YXBoaWMgb3JkZXJpbmcuCi0rICAgICAqLwotKyAgICB3aGlsZSAoa2V5X2NvdW50IDwgMTAwKSB7 Ci0rICAgICAgICBJRCBjdXJyZW50X2lkOwotKwotKyAgICAgICAgcmV0ID0gZGJsYXllcl9jdXJz b3Jfb3AoJmRiYywgZmlyc3Rfa2V5ID8gREJJX09QX01PVkVfVE9fRklSU1QgOiBEQklfT1BfTkVY VF9LRVksICZrZXksICZkYXRhKTsKLSsgICAgICAgIGZpcnN0X2tleSA9IFBSX0ZBTFNFOyAgLyog QWx3YXlzIGFkdmFuY2UgY3Vyc29yIG9uIG5leHQgaXRlcmF0aW9uICovCi0rICAgICAgICBpZiAo cmV0ICE9IDApIHsKLSsgICAgICAgICAgICBicmVhazsgIC8qIE5vIG1vcmUga2V5cyBvciBlcnJv ciAqLwotKyAgICAgICAgfQotKwotKyAgICAgICAgLyogU2tpcCBub24tZXF1YWxpdHkga2V5cyAq LwotKyAgICAgICAgaWYgKGtleS5zaXplIDwgMiB8fCAqKGNoYXIgKilrZXkuZGF0YSAhPSBFUV9Q UkVGSVgpIHsKLSsgICAgICAgICAgICBjb250aW51ZTsKLSsgICAgICAgIH0KLSsKLSsgICAgICAg IC8qIFBhcnNlIHRoZSBJRCBmcm9tIHRoZSBrZXkgKGZvcm1hdDogIj08aWQ+IikgKi8KLSsgICAg ICAgIGN1cnJlbnRfaWQgPSAoSUQpc3RydG91bCgoY2hhciAqKWtleS5kYXRhICsgMSwgTlVMTCwg MTApOwotKyAgICAgICAgaWYgKGN1cnJlbnRfaWQgPT0gMCkgewotKyAgICAgICAgICAgIGNvbnRp bnVlOyAgLyogSW52YWxpZCBJRCwgc2tpcCAqLwotKyAgICAgICAgfQotKwotKyAgICAgICAga2V5 X2NvdW50Kys7Ci0rCi0rICAgICAgICBpZiAocHJldl9pZCAhPSAwKSB7Ci0rICAgICAgICAgICAg LyoKLSsgICAgICAgICAgICAgKiBDaGVjayBvcmRlcmluZzogaWYgcHJldl9pZCA+IGN1cnJlbnRf aWQgbnVtZXJpY2FsbHksCi0rICAgICAgICAgICAgICogYnV0IHdlIGdvdCB0aGlzIGtleSBhZnRl ciBwcmV2IGluIERCIG9yZGVyLCB0aGVuCi0rICAgICAgICAgICAgICogdGhlIGluZGV4IGlzIHVz aW5nIGxleGljb2dyYXBoaWMgb3JkZXJpbmcuCi0rICAgICAgICAgICAgICoKLSsgICAgICAgICAg ICAgKiBFeGFtcGxlOiBpZiB3ZSBzZWUgIjEwIiBmb2xsb3dlZCBieSAiMiIsIHRoYXQncyBsZXhp Y29ncmFwaGljCi0rICAgICAgICAgICAgICogYmVjYXVzZSAiMTAiIDwgIjIiIGFzIHN0cmluZ3Ms IGJ1dCAxMCA+IDIgYXMgaW50ZWdlcnMuCi0rICAgICAgICAgICAgICovCi0rICAgICAgICAgICAg aWYgKHByZXZfaWQgPiBjdXJyZW50X2lkKSB7Ci0rICAgICAgICAgICAgICAgIC8qIEZvdW5kIGV2 aWRlbmNlIG9mIGxleGljb2dyYXBoaWMgb3JkZXJpbmcgKi8KLSsgICAgICAgICAgICAgICAgZGlz a19oYXNfaW50X29yZGVyID0gUFJfRkFMU0U7Ci0rICAgICAgICAgICAgICAgIGZvdW5kX29yZGVy aW5nX2V2aWRlbmNlID0gUFJfVFJVRTsKLSsgICAgICAgICAgICAgICAgYnJlYWs7Ci0rICAgICAg ICAgICAgfSBlbHNlIGlmIChwcmV2X2lkIDwgY3VycmVudF9pZCkgewotKyAgICAgICAgICAgICAg ICAvKgotKyAgICAgICAgICAgICAgICAgKiBUaGlzIGlzIGNvbnNpc3RlbnQgd2l0aCBpbnRlZ2Vy IG9yZGVyaW5nLCBidXQgd2UgbmVlZAotKyAgICAgICAgICAgICAgICAgKiB0byBmaW5kIGEgY2Fz ZSB0aGF0IHByb3ZlcyBsZXhpY29ncmFwaGljIG9yZGVyaW5nLgotKyAgICAgICAgICAgICAgICAg KiBGb3IgZXhhbXBsZSwgc2VlaW5nICIxIiBmb2xsb3dlZCBieSAiMiIgaXMgYW1iaWd1b3VzLAot KyAgICAgICAgICAgICAgICAgKiBidXQgc2VlaW5nICIxIiBmb2xsb3dlZCBieSAiMTAiIChub3Qg IjIiKSBwcm92ZXMgbGV4aWNvZ3JhcGhpYy4KLSsgICAgICAgICAgICAgICAgICoKLSsgICAgICAg ICAgICAgICAgICogQSBkZWZpbml0aXZlIHRlc3Q6IGlmIHdlIHNlZSBhbiBJRCBmb2xsb3dlZCBi eSBhIHNtYWxsZXIKLSsgICAgICAgICAgICAgICAgICogSUQsIHRoYXQncyBsZXhpY29ncmFwaGlj LiBJZiBhbGwgSURzIGFyZSBzdHJpY3RseSBpbmNyZWFzaW5nLAotKyAgICAgICAgICAgICAgICAg KiBpdCBjb3VsZCBiZSBlaXRoZXIgKG9yIHRoZSBpbmRleCBvbmx5IGhhcyBzZXF1ZW50aWFsIElE cykuCi0rICAgICAgICAgICAgICAgICAqLwotKyAgICAgICAgICAgICAgICBmb3VuZF9vcmRlcmlu Z19ldmlkZW5jZSA9IFBSX1RSVUU7Ci0rICAgICAgICAgICAgfQotKyAgICAgICAgfQotKyAgICAg ICAgcHJldl9pZCA9IGN1cnJlbnRfaWQ7Ci0rICAgIH0KLSsKLSsgICAgLyogQ2xvc2UgdGhlIGN1 cnNvciBhbmQgZnJlZSB2YWx1ZXMgKi8KLSsgICAgZGJsYXllcl9jdXJzb3Jfb3AoJmRiYywgREJJ X09QX0NMT1NFLCBOVUxMLCBOVUxMKTsKLSsgICAgZGJsYXllcl92YWx1ZV9mcmVlKGJlLCAma2V5 KTsKLSsgICAgZGJsYXllcl92YWx1ZV9mcmVlKGJlLCAmZGF0YSk7Ci0rCi0rICAgIC8qIFJlbGVh c2UgdGhlIGluZGV4IGZpbGUgKi8KLSsgICAgZGJsYXllcl9yZWxlYXNlX2luZGV4X2ZpbGUoYmUs IGFpLCBkYik7Ci0rCi0rICAgIC8qCi0rICAgICAqIFJlcG9ydCBmaW5kaW5ncyBhbmQgY2hlY2sg Zm9yIGNvbmZpZy9kaXNrIG1pc21hdGNoLgotKyAgICAgKiBMb2cgYW4gZXJyb3IgaWYgdGhlcmUn cyBhIGRpc2NyZXBhbmN5IGJldHdlZW4gd2hhdCdzIGNvbmZpZ3VyZWQKLSsgICAgICogaW4gRFNF IGFuZCB3aGF0J3MgYWN0dWFsbHkgb24gZGlzay4KLSsgICAgICovCi0rICAgIGlmICghZm91bmRf b3JkZXJpbmdfZXZpZGVuY2UpIHsKLSsgICAgICAgIHNsYXBpX2xvZ19lcnIoU0xBUElfTE9HX0RF QlVHLCAibGRibV9pbnN0YW5jZV9jaGVja19pbmRleF9jb25maWciLAotKyAgICAgICAgICAgICAg ICAiQmFja2VuZCAnJXMnOiAlcyBpbmRleCBvcmRlcmluZyBjaGVjayAtICIKLSsgICAgICAgICAg ICAgICAgImNvdWxkIG5vdCBkZXRlcm1pbmUgb24tZGlzayBvcmRlcmluZyAoaW5kZXggbWF5IGJl IGVtcHR5IG9yIGhhdmUgc2VxdWVudGlhbCBJRHMgb25seSkuICIKLSsgICAgICAgICAgICAgICAg IkNvbmZpZyBoYXMgaW50ZWdlck9yZGVyaW5nTWF0Y2g6ICVzXG4iLAotKyAgICAgICAgICAgICAg ICBpbnN0LT5pbnN0X25hbWUsIGluZGV4X25hbWUsIGNvbmZpZ19oYXNfaW50X29yZGVyID8gInll cyIgOiAibm8iKTsKLSsgICAgfSBlbHNlIGlmIChjb25maWdfaGFzX2ludF9vcmRlciAmJiAhZGlz a19oYXNfaW50X29yZGVyKSB7Ci0rICAgICAgICAvKiBDb25maWcgZXhwZWN0cyBpbnRlZ2VyIG9y ZGVyaW5nLCBidXQgZGlzayBoYXMgbGV4aWNvZ3JhcGhpYyAtIE1JU01BVENIICovCi0rICAgICAg ICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xPR19FUlIsICJsZGJtX2luc3RhbmNlX2NoZWNrX2luZGV4 X2NvbmZpZyIsCi0rICAgICAgICAgICAgICAgICJCYWNrZW5kICclcyc6IE1JU01BVENIIC0gJXMg aW5kZXggaGFzIGludGVnZXJPcmRlcmluZ01hdGNoIGNvbmZpZ3VyZWQsICIKLSsgICAgICAgICAg ICAgICAgImJ1dCBvbi1kaXNrIGRhdGEgdXNlcyBsZXhpY29ncmFwaGljIG9yZGVyaW5nLiAiCi0r ICAgICAgICAgICAgICAgICJUaGlzIHdpbGwgY2F1c2Ugc2VhcmNoZXMgdG8gcmV0dXJuIGluY29y cmVjdCBvciBpbmNvbXBsZXRlIHJlc3VsdHMuICIKLSsgICAgICAgICAgICAgICAgIlBsZWFzZSBy ZWluZGV4IHRoZSAlcyBhdHRyaWJ1dGU6ICIKLSsgICAgICAgICAgICAgICAgImRzY29uZiA8aW5z dGFuY2U+IGJhY2tlbmQgaW5kZXggcmVpbmRleCAtLWF0dHIgJXMgJXNcbiIsCi0rICAgICAgICAg ICAgICAgIGluc3QtPmluc3RfbmFtZSwgaW5kZXhfbmFtZSwgaW5kZXhfbmFtZSwgaW5kZXhfbmFt ZSwgaW5zdC0+aW5zdF9uYW1lKTsKLSsgICAgfSBlbHNlIGlmICghY29uZmlnX2hhc19pbnRfb3Jk ZXIgJiYgZGlza19oYXNfaW50X29yZGVyKSB7Ci0rICAgICAgICAvKiBDb25maWcgZXhwZWN0cyBs ZXhpY29ncmFwaGljIG9yZGVyaW5nLCBidXQgZGlzayBoYXMgaW50ZWdlciAtIE1JU01BVENIICov Ci0rICAgICAgICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xPR19FUlIsICJsZGJtX2luc3RhbmNlX2No ZWNrX2luZGV4X2NvbmZpZyIsCi0rICAgICAgICAgICAgICAgICJCYWNrZW5kICclcyc6IE1JU01B VENIIC0gJXMgaW5kZXggZG9lcyBub3QgaGF2ZSBpbnRlZ2VyT3JkZXJpbmdNYXRjaCBjb25maWd1 cmVkLCAiCi0rICAgICAgICAgICAgICAgICJidXQgb24tZGlzayBkYXRhIHVzZXMgaW50ZWdlciBv cmRlcmluZy4gIgotKyAgICAgICAgICAgICAgICAiVGhpcyB3aWxsIGNhdXNlIHNlYXJjaGVzIHRv IHJldHVybiBpbmNvcnJlY3Qgb3IgaW5jb21wbGV0ZSByZXN1bHRzLiAiCi0rICAgICAgICAgICAg ICAgICJQbGVhc2UgcmVpbmRleCB0aGUgJXMgYXR0cmlidXRlOiAiCi0rICAgICAgICAgICAgICAg ICJkc2NvbmYgPGluc3RhbmNlPiBiYWNrZW5kIGluZGV4IHJlaW5kZXggLS1hdHRyICVzICVzXG4i LAotKyAgICAgICAgICAgICAgICBpbnN0LT5pbnN0X25hbWUsIGluZGV4X25hbWUsIGluZGV4X25h bWUsIGluZGV4X25hbWUsIGluc3QtPmluc3RfbmFtZSk7Ci0rICAgIH0gZWxzZSB7Ci0rICAgICAg ICAvKiBDb25maWcgYW5kIGRpc2sgb3JkZXJpbmcgbWF0Y2ggLSBubyBhY3Rpb24gbmVlZGVkICov Ci0rICAgICAgICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xPR19ERUJVRywgImxkYm1faW5zdGFuY2Vf Y2hlY2tfaW5kZXhfY29uZmlnIiwKLSsgICAgICAgICAgICAgICAgIkJhY2tlbmQgJyVzJzogJXMg aW5kZXggb3JkZXJpbmcgY2hlY2sgcGFzc2VkIC0gIgotKyAgICAgICAgICAgICAgICAiY29uZmln IGhhcyBpbnRlZ2VyT3JkZXJpbmdNYXRjaDogJXMsIG9uLWRpc2sgZGF0YSBtYXRjaGVzLlxuIiwK LSsgICAgICAgICAgICAgICAgaW5zdC0+aW5zdF9uYW1lLCBpbmRleF9uYW1lLCBjb25maWdfaGFz X2ludF9vcmRlciA/ICJ5ZXMiIDogIm5vIik7Ci0rICAgIH0KLSt9Ci0rCi0rLyoKLSsgKiBDaGVj ayBzeXN0ZW0gaW5kZXhlcyBmb3Igb3JkZXJpbmcgbWlzbWF0Y2hlcy4KLSsgKiBJZiBhIG1pc21h dGNoIGlzIGRldGVjdGVkLCBsb2cgYW4gZXJyb3IgYWR2aXNpbmcgdGhlIGFkbWluaXN0cmF0b3IK LSsgKiB0byByZWluZGV4IHRoZSBhZmZlY3RlZCBhdHRyaWJ1dGUuCi0rICoKLSsgKiBOb3RlOiBX ZSBvbmx5IGNoZWNrIHBhcmVudGlkIGhlcmUuIFRoZSBhbmNlc3RvcmlkIGluZGV4IGlzIGEgc3Bl Y2lhbAotKyAqIHN5c3RlbSBpbmRleCB0aGF0IGhhcyBubyBEU0UgY29uZmlnIGVudHJ5IC0gaXRz IG9yZGVyaW5nIGlzIGhhcmRjb2RlZAotKyAqIGluIGxkYm1faW5zdGFuY2VfaW5pdF9jb25maWdf ZW50cnkoKSBhbmQgY2Fubm90IGJlIGNoYW5nZWQgYnkgdXNlcnMuCi0rICovCi0rc3RhdGljIHZv aWQKLStsZGJtX2luc3RhbmNlX2NoZWNrX2luZGV4ZXMoYmFja2VuZCAqYmUpCi0rewotKyAgICAv KiBDaGVjayBwYXJlbnRpZCBpbmRleCAqLwotKyAgICBsZGJtX2luc3RhbmNlX2NoZWNrX2luZGV4 X2NvbmZpZyhiZSwgTERCTV9QQVJFTlRJRF9TVFIpOwotK30KLSsKLSAvKiBTdGFydHMgYSBiYWNr ZW5kIGluc3RhbmNlICovCi0gaW50Ci0gbGRibV9pbnN0YW5jZV9zdGFydChiYWNrZW5kICpiZSkK LUBAIC0zMDgsNiArNTY4LDggQEAgbGRibV9pbnN0YW5jZV9zdGFydGFsbChzdHJ1Y3QgbGRibWlu Zm8gKmxpKQotICAgICAgICAgICAgIGxkYm1faW5zdGFuY2VfcmVnaXN0ZXJfbW9kaWZ5X2NhbGxi YWNrKGluc3QpOwotICAgICAgICAgICAgIHZsdl9pbml0KGluc3QpOwotICAgICAgICAgICAgIHNs YXBpX210bl9iZV9zdGFydGVkKGluc3QtPmluc3RfYmUpOwotKyAgICAgICAgICAgIC8qIENoZWNr IGluZGV4IGNvbmZpZ3VyYXRpb24gZm9yIHBvdGVudGlhbCBpc3N1ZXMgKi8KLSsgICAgICAgICAg ICBsZGJtX2luc3RhbmNlX2NoZWNrX2luZGV4ZXMoaW5zdC0+aW5zdF9iZSk7Ci0gICAgICAgICB9 Ci0gICAgICAgICBpZiAoc2xhcGlfZXhpc3RfcmVmZXJyYWwoaW5zdC0+aW5zdF9iZSkpIHsKLSAg ICAgICAgICAgICBzbGFwaV9iZV9zZXRfZmxhZyhpbnN0LT5pbnN0X2JlLCBTTEFQSV9CRV9GTEFH X0NPTlRBSU5TX1JFRkVSUkFMKTsKLS0tIAotMi41Mi4wCi0KCmRpZmYgLS1naXQgYS8wMDM2LUlz c3VlLTcyMjMtQWRkLWRzY3RsLWluZGV4LWNoZWNrLWNvbW1hbmQtZm9yLW9mZmxpbmUucGF0Y2gg Yi8wMDM2LUlzc3VlLTcyMjMtQWRkLWRzY3RsLWluZGV4LWNoZWNrLWNvbW1hbmQtZm9yLW9mZmxp bmUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUzNGM2MzEuLjAwMDAwMDAK LS0tIGEvMDAzNi1Jc3N1ZS03MjIzLUFkZC1kc2N0bC1pbmRleC1jaGVjay1jb21tYW5kLWZvci1v ZmZsaW5lLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTIzMyArMCwwIEBACi1Gcm9tIDllNWYy MmM5NGI4MjJmY2QzZGVjYjhmOThjZTJlYjM4M2NjMTZhN2MgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCi1Gcm9tOiBWaWt0b3IgQXNoaXJvdiA8dmFzaGlyb3ZAcmVkaGF0LmNvbT4KLURhdGU6IFRo dSwgNSBGZWIgMjAyNiAxMjoxNzowNiArMDEwMAotU3ViamVjdDogW1BBVENIXSBJc3N1ZSA3MjIz IC0gQWRkIGRzY3RsIGluZGV4LWNoZWNrIGNvbW1hbmQgZm9yIG9mZmxpbmUgaW5kZXgKLSByZXBh aXIKLQotRGVzY3JpcHRpb246Ci1BZGQgYGRzY3RsIDxpbnN0YW5jZT4gaW5kZXgtY2hlY2sgW2Jh Y2tlbmRdIFstLWZpeF1gIGNvbW1hbmQgZm9yIG9mZmxpbmUKLWRldGVjdGlvbiBhbmQgcmVwYWly IG9mIGluZGV4IG9yZGVyaW5nIG1pc21hdGNoZXMuIFRoaXMgaXMgbmVlZGVkIGFmdGVyCi11cGdy YWRlIGZyb20gdmVyc2lvbnMgdGhhdCBkaWRuJ3QgdXNlIGludGVnZXJPcmRlcmluZ01hdGNoIGZv cgotcGFyZW50aWQvYW5jZXN0b3JpZCBzeXN0ZW0gaW5kZXhlcy4KLQotSXQncyBhdXRvbWF0aWNh bGx5IGV4ZWN1dGVkIGFzIHBhcnQgb2YgUlBNICVwb3N0IHNjcmlwdGxldCBkdXJpbmcKLXVwZ3Jh ZGUuCi0KLVJlbGF0ZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS8zODlkcy8zODktZHMtYmFzZS9pc3N1 ZXMvNzIyMwotCi1SZXZpZXdlZCBieTogQHByb2dpZXIzODksIEB0Ym9yZGF6LCBAZHJvaWRlY2sg KFRoYW5rcyEpCi0tLS0KLSAuLi4vaGVhbHRoY2hlY2svaGVhbHRoX3N5c3RlbV9pbmRleGVzX3Rl c3QucHkgfCA1OTMgKysrKysrKysrKysrKysrKysrCi0gcnBtLzM4OS1kcy1iYXNlLnNwZWMuaW4g ICAgICAgICAgICAgICAgICAgICAgIHwgIDUxICstCi0gc3JjL2xpYjM4OS9saWIzODkvY2xpX2N0 bC9kYnRhc2tzLnB5ICAgICAgICAgIHwgNDAyICsrKysrKysrKysrKwotIHNyYy9saWIzODkvbGli Mzg5L2RzZWxkaWYucHkgICAgICAgICAgICAgICAgICB8ICA1MSArLQotIDQgZmlsZXMgY2hhbmdl ZCwgMTA2OCBpbnNlcnRpb25zKCspLCAyOSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2Rp cnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9oZWFsdGhjaGVjay9oZWFsdGhfc3lzdGVtX2luZGV4ZXNf dGVzdC5weSBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9oZWFsdGhjaGVjay9oZWFsdGhfc3lz dGVtX2luZGV4ZXNfdGVzdC5weQotaW5kZXggZWI3MjdiOTAyLi5kZDQyY2QxOTcgMTAwNjQ0Ci0t LS0gYS9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvaGVhbHRoY2hlY2svaGVhbHRoX3N5c3RlbV9p bmRleGVzX3Rlc3QucHkKLSsrKyBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9oZWFsdGhjaGVj ay9oZWFsdGhfc3lzdGVtX2luZGV4ZXNfdGVzdC5weQotQEAgLTU5MCw2ICs1OTAsNTk5IEBAIGRl ZiB0ZXN0X3VwZ3JhZGVfcmVtb3Zlc19hbmNlc3RvcmlkX2luZGV4X2NvbmZpZyh0b3BvbG9neV9z dCk6Ci0gICAgICAgICBsb2cuaW5mbyhmIklkZW1wb3RlbmN5IHZlcmlmaWVkIC0gYW5jZXN0b3Jp ZCBzdGlsbCBhYnNlbnQgYWZ0ZXIgc2Vjb25kIHJlc3RhcnQgKGdvdCBleGNlcHRpb246IHtlfSki KQotIAotIAotK2RlZiB0ZXN0X2luZGV4X2NoZWNrX2Jhc2ljKHRvcG9sb2d5X3N0KToKLSsgICAg IiIiQ2hlY2sgaWYgZHNjdGwgaW5kZXgtY2hlY2sgd29ya3MgY29ycmVjdGx5Ci0rCi0rICAgIDpp ZDogOGE0ZTVjMmQtMWYzYi00YTdjLTllOGQtMmI2ZjBjNGE1ZDNlCi0rICAgIDpzZXR1cDogU3Rh bmRhbG9uZSBpbnN0YW5jZQotKyAgICA6c3RlcHM6Ci0rICAgICAgICAxLiBDcmVhdGUgRFMgaW5z dGFuY2UKLSsgICAgICAgIDIuIFJ1biBkc2N0bCBpbmRleC1jaGVjayB3aGlsZSBzZXJ2ZXIgaXMg cnVubmluZyAoc2hvdWxkIGZhaWwpCi0rICAgICAgICAzLiBTdG9wIHRoZSBzZXJ2ZXIKLSsgICAg ICAgIDQuIFJ1biBkc2N0bCBpbmRleC1jaGVjayAoc2hvdWxkIHBhc3MpCi0rICAgICAgICA1LiBT dGFydCB0aGUgc2VydmVyCi0rICAgIDpleHBlY3RlZHJlc3VsdHM6Ci0rICAgICAgICAxLiBTdWNj ZXNzCi0rICAgICAgICAyLiBpbmRleC1jaGVjayByZXR1cm5zIEZhbHNlIGFuZCBsb2dzIGVycm9y Ci0rICAgICAgICAzLiBTdWNjZXNzCi0rICAgICAgICA0LiBpbmRleC1jaGVjayByZXR1cm5zIFRy dWUgKG5vIG1pc21hdGNoZXMpCi0rICAgICAgICA1LiBTdWNjZXNzCi0rICAgICIiIgotKyAgICBm cm9tIGxpYjM4OS5jbGlfY3RsLmRidGFza3MgaW1wb3J0IGRidGFza3NfaW5kZXhfY2hlY2sKLSsK LSsgICAgc3RhbmRhbG9uZSA9IHRvcG9sb2d5X3N0LnN0YW5kYWxvbmUKLSsKLSsgICAgbG9nLmlu Zm8oIlJ1biBpbmRleC1jaGVjayB3aGlsZSBzZXJ2ZXIgaXMgcnVubmluZyIpCi0rICAgIGFyZ3Mg PSBGYWtlQXJncygpCi0rICAgIGFyZ3MuYmFja2VuZCA9IE5vbmUKLSsgICAgYXJncy5maXggPSBG YWxzZQotKwotKyAgICAjIFNlcnZlciBzaG91bGQgYmUgcnVubmluZywgaW5kZXgtY2hlY2sgc2hv dWxkIGZhaWwKLSsgICAgYXNzZXJ0IHN0YW5kYWxvbmUuc3RhdHVzKCkKLSsgICAgcmVzdWx0ID0g ZGJ0YXNrc19pbmRleF9jaGVjayhzdGFuZGFsb25lLCB0b3BvbG9neV9zdC5sb2djYXAubG9nLCBh cmdzKQotKyAgICBhc3NlcnQgcmVzdWx0IGlzIEZhbHNlCi0rICAgIGFzc2VydCB0b3BvbG9neV9z dC5sb2djYXAuY29udGFpbnMoImluZGV4LWNoZWNrIHJlcXVpcmVzIHRoZSBpbnN0YW5jZSB0byBi ZSBzdG9wcGVkIikKLSsgICAgdG9wb2xvZ3lfc3QubG9nY2FwLmZsdXNoKCkKLSsKLSsgICAgbG9n LmluZm8oIlN0b3AgdGhlIHNlcnZlciIpCi0rICAgIHN0YW5kYWxvbmUuc3RvcCgpCi0rCi0rICAg IGxvZy5pbmZvKCJSdW4gaW5kZXgtY2hlY2sgd2l0aCBzZXJ2ZXIgc3RvcHBlZCIpCi0rICAgIHJl c3VsdCA9IGRidGFza3NfaW5kZXhfY2hlY2soc3RhbmRhbG9uZSwgdG9wb2xvZ3lfc3QubG9nY2Fw LmxvZywgYXJncykKLSsgICAgYXNzZXJ0IHJlc3VsdCBpcyBUcnVlCi0rICAgIGFzc2VydCB0b3Bv bG9neV9zdC5sb2djYXAuY29udGFpbnMoIkFsbCBjaGVja3MgcGFzc2VkIikKLSsgICAgdG9wb2xv Z3lfc3QubG9nY2FwLmZsdXNoKCkKLSsKLSsgICAgbG9nLmluZm8oIlN0YXJ0IHRoZSBzZXJ2ZXIi KQotKyAgICBzdGFuZGFsb25lLnN0YXJ0KCkKLSsKLSsKLStkZWYgdGVzdF9pbmRleF9jaGVja19z cGVjaWZpY19iYWNrZW5kKHRvcG9sb2d5X3N0KToKLSsgICAgIiIiQ2hlY2sgaWYgZHNjdGwgaW5k ZXgtY2hlY2sgd29ya3Mgd2l0aCBhIHNwZWNpZmljIGJhY2tlbmQKLSsKLSsgICAgOmlkOiA0MDdk OGZjYy02MmUwLTQzZGQtOTBmYS03MGU3MDkwYTVjZmQKLSsgICAgOnNldHVwOiBTdGFuZGFsb25l IGluc3RhbmNlCi0rICAgIDpzdGVwczoKLSsgICAgICAgIDEuIENyZWF0ZSBEUyBpbnN0YW5jZQot KyAgICAgICAgMi4gU3RvcCB0aGUgc2VydmVyCi0rICAgICAgICAzLiBSdW4gZHNjdGwgaW5kZXgt Y2hlY2sgd2l0aCBzcGVjaWZpYyBiYWNrZW5kICh1c2VyUm9vdCkKLSsgICAgICAgIDQuIFJ1biBk c2N0bCBpbmRleC1jaGVjayB3aXRoIG5vbi1leGlzdGVudCBiYWNrZW5kCi0rICAgICAgICA1LiBT dGFydCB0aGUgc2VydmVyCi0rICAgIDpleHBlY3RlZHJlc3VsdHM6Ci0rICAgICAgICAxLiBTdWNj ZXNzCi0rICAgICAgICAyLiBTdWNjZXNzCi0rICAgICAgICAzLiBpbmRleC1jaGVjayByZXR1cm5z IFRydWUgZm9yIHVzZXJSb290Ci0rICAgICAgICA0LiBpbmRleC1jaGVjayByZXR1cm5zIEZhbHNl IGZvciBub24tZXhpc3RlbnQgYmFja2VuZAotKyAgICAgICAgNS4gU3VjY2VzcwotKyAgICAiIiIK LSsgICAgZnJvbSBsaWIzODkuY2xpX2N0bC5kYnRhc2tzIGltcG9ydCBkYnRhc2tzX2luZGV4X2No ZWNrCi0rCi0rICAgIHN0YW5kYWxvbmUgPSB0b3BvbG9neV9zdC5zdGFuZGFsb25lCi0rCi0rICAg IGxvZy5pbmZvKCJTdG9wIHRoZSBzZXJ2ZXIiKQotKyAgICBzdGFuZGFsb25lLnN0b3AoKQotKwot KyAgICBsb2cuaW5mbygiUnVuIGluZGV4LWNoZWNrIGZvciB1c2VyUm9vdCBiYWNrZW5kIikKLSsg ICAgYXJncyA9IEZha2VBcmdzKCkKLSsgICAgYXJncy5iYWNrZW5kID0gInVzZXJSb290IgotKyAg ICBhcmdzLmZpeCA9IEZhbHNlCi0rCi0rICAgIHJlc3VsdCA9IGRidGFza3NfaW5kZXhfY2hlY2so c3RhbmRhbG9uZSwgdG9wb2xvZ3lfc3QubG9nY2FwLmxvZywgYXJncykKLSsgICAgYXNzZXJ0IHJl c3VsdCBpcyBUcnVlCi0rICAgICMgQ2hlY2sgZm9yIGJhY2tlbmQgbmFtZSBpbiBhbnkgY2FzZQot KyAgICBhc3NlcnQgdG9wb2xvZ3lfc3QubG9nY2FwLmNvbnRhaW5zKCJDaGVja2luZyBiYWNrZW5k OiIpCi0rICAgIHRvcG9sb2d5X3N0LmxvZ2NhcC5mbHVzaCgpCi0rCi0rICAgIGxvZy5pbmZvKCJS dW4gaW5kZXgtY2hlY2sgZm9yIG5vbi1leGlzdGVudCBiYWNrZW5kIikKLSsgICAgYXJncy5iYWNr ZW5kID0gIm5vbkV4aXN0ZW50QmFja2VuZCIKLSsgICAgcmVzdWx0ID0gZGJ0YXNrc19pbmRleF9j aGVjayhzdGFuZGFsb25lLCB0b3BvbG9neV9zdC5sb2djYXAubG9nLCBhcmdzKQotKyAgICBhc3Nl cnQgcmVzdWx0IGlzIEZhbHNlCi0rICAgIGFzc2VydCB0b3BvbG9neV9zdC5sb2djYXAuY29udGFp bnMoIm5vdCBmb3VuZCIpCi0rICAgIHRvcG9sb2d5X3N0LmxvZ2NhcC5mbHVzaCgpCi0rCi0rICAg IGxvZy5pbmZvKCJTdGFydCB0aGUgc2VydmVyIikKLSsgICAgc3RhbmRhbG9uZS5zdGFydCgpCi0r Ci0rCi0rZGVmIHRlc3RfaW5kZXhfY2hlY2tfbWlzbWF0Y2hfZGV0ZWN0aW9uKHRvcG9sb2d5X3N0 KToKLSsgICAgIiIiQ2hlY2sgaWYgZHNjdGwgaW5kZXgtY2hlY2sgZGV0ZWN0cyBvcmRlcmluZyBt aXNtYXRjaAotKwotKyAgICA6aWQ6IDUwZDE0NTIwLWIwYmYtNDI0My05ZmU2LWIwOTc5MjhkNDM1 MQotKyAgICA6c2V0dXA6IFN0YW5kYWxvbmUgaW5zdGFuY2UKLSsgICAgOnN0ZXBzOgotKyAgICAg ICAgMS4gQ3JlYXRlIERTIGluc3RhbmNlCi0rICAgICAgICAyLiBTdG9wIHRoZSBzZXJ2ZXIKLSsg ICAgICAgIDMuIFJ1biBkc2N0bCBpbmRleC1jaGVjayAod2l0aG91dCAtLWZpeCkKLSsgICAgICAg IDQuIFZlcmlmeSBvdXRwdXQgZm9ybWF0Ci0rICAgICAgICA1LiBTdGFydCB0aGUgc2VydmVyCi0r ICAgIDpleHBlY3RlZHJlc3VsdHM6Ci0rICAgICAgICAxLiBTdWNjZXNzCi0rICAgICAgICAyLiBT dWNjZXNzCi0rICAgICAgICAzLiBpbmRleC1jaGVjayByZXR1cm5zIFRydWUgKG5vIG1pc21hdGNo IG9uIGZyZXNoIGluc3RhbmNlKQotKyAgICAgICAgNC4gTG9nIGNvbnRhaW5zIGV4cGVjdGVkIGZv cm1hdAotKyAgICAgICAgNS4gU3VjY2VzcwotKyAgICAiIiIKLSsgICAgZnJvbSBsaWIzODkuY2xp X2N0bC5kYnRhc2tzIGltcG9ydCBkYnRhc2tzX2luZGV4X2NoZWNrCi0rCi0rICAgIHN0YW5kYWxv bmUgPSB0b3BvbG9neV9zdC5zdGFuZGFsb25lCi0rCi0rICAgIGxvZy5pbmZvKCJTdG9wIHRoZSBz ZXJ2ZXIiKQotKyAgICBzdGFuZGFsb25lLnN0b3AoKQotKwotKyAgICBsb2cuaW5mbygiUnVuIGlu ZGV4LWNoZWNrIHRvIHZlcmlmeSBkZXRlY3Rpb24gbG9naWMiKQotKyAgICBhcmdzID0gRmFrZUFy Z3MoKQotKyAgICBhcmdzLmJhY2tlbmQgPSAidXNlclJvb3QiCi0rICAgIGFyZ3MuZml4ID0gRmFs c2UKLSsKLSsgICAgIyBPbiBhIGZyZXNoIGluc3RhbmNlLCB0aGVyZSBzaG91bGQgYmUgbm8gbWlz bWF0Y2gKLSsgICAgcmVzdWx0ID0gZGJ0YXNrc19pbmRleF9jaGVjayhzdGFuZGFsb25lLCB0b3Bv bG9neV9zdC5sb2djYXAubG9nLCBhcmdzKQotKyAgICAjIEZyZXNoIGluc3RhbmNlIHNob3VsZCBo YXZlIG1hdGNoaW5nIGNvbmZpZyBhbmQgZGlzayBvcmRlcmluZwotKyAgICBhc3NlcnQgcmVzdWx0 IGlzIFRydWUKLSsgICAgIyBDaGVjayB0aGF0IHRoZSBiYWNrZW5kIHdhcyBjaGVja2VkIChtYXkg c2tpcCBpbmRleGVzIGlmIG9yZGVyaW5nIGNhbid0IGJlIGRldGVybWluZWQpCi0rICAgIGFzc2Vy dCB0b3BvbG9neV9zdC5sb2djYXAuY29udGFpbnMoIkNoZWNraW5nIGJhY2tlbmQ6IikKLSsgICAg dG9wb2xvZ3lfc3QubG9nY2FwLmZsdXNoKCkKLSsKLSsgICAgbG9nLmluZm8oIlN0YXJ0IHRoZSBz ZXJ2ZXIiKQotKyAgICBzdGFuZGFsb25lLnN0YXJ0KCkKLSsKLSsKLStkZWYgdGVzdF9pbmRleF9j aGVja193aXRoX2ZpeCh0b3BvbG9neV9zdCk6Ci0rICAgICIiIkNoZWNrIGlmIGRzY3RsIGluZGV4 LWNoZWNrIC0tZml4IHRyaWdnZXJzIHJlaW5kZXhpbmcKLSsKLSsgICAgOmlkOiAzOGFlMzZlNC1j ODYxLTQ3NzEtYWU3ZC0zNTQzNzAzNzZhMmYKLSsgICAgOnNldHVwOiBTdGFuZGFsb25lIGluc3Rh bmNlCi0rICAgIDpzdGVwczoKLSsgICAgICAgIDEuIENyZWF0ZSBEUyBpbnN0YW5jZQotKyAgICAg ICAgMi4gU3RvcCB0aGUgc2VydmVyCi0rICAgICAgICAzLiBSdW4gZHNjdGwgaW5kZXgtY2hlY2sg LS1maXggKHNob3VsZCBwYXNzIHNpbmNlIG5vIG1pc21hdGNoKQotKyAgICAgICAgNC4gVmVyaWZ5 IG91dHB1dCBpbmRpY2F0ZXMgY2hlY2sgcGFzc2VkCi0rICAgICAgICA1LiBTdGFydCB0aGUgc2Vy dmVyCi0rICAgIDpleHBlY3RlZHJlc3VsdHM6Ci0rICAgICAgICAxLiBTdWNjZXNzCi0rICAgICAg ICAyLiBTdWNjZXNzCi0rICAgICAgICAzLiBpbmRleC1jaGVjayByZXR1cm5zIFRydWUKLSsgICAg ICAgIDQuIExvZyBjb250YWlucyAiQWxsIGNoZWNrcyBwYXNzZWQiCi0rICAgICAgICA1LiBTdWNj ZXNzCi0rICAgICIiIgotKyAgICBmcm9tIGxpYjM4OS5jbGlfY3RsLmRidGFza3MgaW1wb3J0IGRi dGFza3NfaW5kZXhfY2hlY2sKLSsKLSsgICAgc3RhbmRhbG9uZSA9IHRvcG9sb2d5X3N0LnN0YW5k YWxvbmUKLSsKLSsgICAgbG9nLmluZm8oIlN0b3AgdGhlIHNlcnZlciIpCi0rICAgIHN0YW5kYWxv bmUuc3RvcCgpCi0rCi0rICAgIGxvZy5pbmZvKCJSdW4gaW5kZXgtY2hlY2sgd2l0aCAtLWZpeCBv cHRpb24iKQotKyAgICBhcmdzID0gRmFrZUFyZ3MoKQotKyAgICBhcmdzLmJhY2tlbmQgPSBOb25l Ci0rICAgIGFyZ3MuZml4ID0gVHJ1ZQotKwotKyAgICByZXN1bHQgPSBkYnRhc2tzX2luZGV4X2No ZWNrKHN0YW5kYWxvbmUsIHRvcG9sb2d5X3N0LmxvZ2NhcC5sb2csIGFyZ3MpCi0rICAgICMgT24g YSBmcmVzaCBpbnN0YW5jZSwgdGhlcmUgc2hvdWxkIGJlIG5vIG1pc21hdGNoLCBzbyBubyByZWlu ZGV4aW5nIG5lZWRlZAotKyAgICBhc3NlcnQgcmVzdWx0IGlzIFRydWUKLSsgICAgYXNzZXJ0IHRv cG9sb2d5X3N0LmxvZ2NhcC5jb250YWlucygiQWxsIGNoZWNrcyBwYXNzZWQiKQotKyAgICB0b3Bv bG9neV9zdC5sb2djYXAuZmx1c2goKQotKwotKyAgICBsb2cuaW5mbygiU3RhcnQgdGhlIHNlcnZl ciIpCi0rICAgIHN0YW5kYWxvbmUuc3RhcnQoKQotKwotKwotK2RlZiB0ZXN0X2luZGV4X2NoZWNr X2ZpeGVzX3NjYW5saW1pdCh0b3BvbG9neV9zdCk6Ci0rICAgICIiIkNoZWNrIGlmIGRzY3RsIGlu ZGV4LWNoZWNrIC0tZml4IHJlbW92ZXMgbnNJbmRleElETGlzdFNjYW5MaW1pdAotKwotKyAgICA6 aWQ6IDRhOWIyYzdkLThlMWYtNGIzYS05YzVkLTZlN2Y4YTBiMWMyZAotKyAgICA6c2V0dXA6IFN0 YW5kYWxvbmUgaW5zdGFuY2UKLSsgICAgOnN0ZXBzOgotKyAgICAgICAgMS4gQ3JlYXRlIERTIGlu c3RhbmNlCi0rICAgICAgICAyLiBTdG9wIHRoZSBzZXJ2ZXIKLSsgICAgICAgIDMuIEFkZCBuc0lu ZGV4SURMaXN0U2NhbkxpbWl0IHRvIHBhcmVudGlkIGluZGV4IHVzaW5nIERTRWxkaWYKLSsgICAg ICAgIDQuIFJ1biBkc2N0bCBpbmRleC1jaGVjayAoc2hvdWxkIGRldGVjdCBpc3N1ZSkKLSsgICAg ICAgIDUuIFJ1biBkc2N0bCBpbmRleC1jaGVjayAtLWZpeAotKyAgICAgICAgNi4gVmVyaWZ5IG5z SW5kZXhJRExpc3RTY2FuTGltaXQgd2FzIHJlbW92ZWQKLSsgICAgICAgIDcuIFN0YXJ0IHRoZSBz ZXJ2ZXIKLSsgICAgOmV4cGVjdGVkcmVzdWx0czoKLSsgICAgICAgIDEuIFN1Y2Nlc3MKLSsgICAg ICAgIDIuIFN1Y2Nlc3MKLSsgICAgICAgIDMuIFN1Y2Nlc3MKLSsgICAgICAgIDQuIGluZGV4LWNo ZWNrIHJldHVybnMgRmFsc2UgYW5kIGRldGVjdHMgc2NhbmxpbWl0Ci0rICAgICAgICA1LiBpbmRl eC1jaGVjayByZXR1cm5zIFRydWUgYWZ0ZXIgZml4Ci0rICAgICAgICA2LiBuc0luZGV4SURMaXN0 U2NhbkxpbWl0IG5vIGxvbmdlciBwcmVzZW50Ci0rICAgICAgICA3LiBTdWNjZXNzCi0rICAgICIi IgotKyAgICBmcm9tIGxpYjM4OS5jbGlfY3RsLmRidGFza3MgaW1wb3J0IGRidGFza3NfaW5kZXhf Y2hlY2sKLSsgICAgZnJvbSBsaWIzODkuZHNlbGRpZiBpbXBvcnQgRFNFbGRpZgotKwotKyAgICBz dGFuZGFsb25lID0gdG9wb2xvZ3lfc3Quc3RhbmRhbG9uZQotKwotKyAgICBsb2cuaW5mbygiU3Rv cCB0aGUgc2VydmVyIikKLSsgICAgc3RhbmRhbG9uZS5zdG9wKCkKLSsKLSsgICAgbG9nLmluZm8o IkFkZCBuc0luZGV4SURMaXN0U2NhbkxpbWl0IHRvIHBhcmVudGlkIGluZGV4IHVzaW5nIERTRWxk aWYiKQotKyAgICBkc2VfbGRpZiA9IERTRWxkaWYoc3RhbmRhbG9uZSkKLSsgICAgcGFyZW50aWRf ZG4gPSAiY249cGFyZW50aWQsY249aW5kZXgsY249dXNlclJvb3QsY249bGRibSBkYXRhYmFzZSxj bj1wbHVnaW5zLGNuPWNvbmZpZyIKLSsgICAgZHNlX2xkaWYuYWRkKHBhcmVudGlkX2RuLCAibnNJ bmRleElETGlzdFNjYW5MaW1pdCIsICI0MDAwIikKLSsKLSsgICAgIyBWZXJpZnkgaXQgd2FzIGFk ZGVkCi0rICAgIHNjYW5saW1pdCA9IGRzZV9sZGlmLmdldChwYXJlbnRpZF9kbiwgIm5zSW5kZXhJ RExpc3RTY2FuTGltaXQiLCBzaW5nbGU9VHJ1ZSkKLSsgICAgYXNzZXJ0IHNjYW5saW1pdCA9PSAi NDAwMCIsIGYiRmFpbGVkIHRvIGFkZCBuc0luZGV4SURMaXN0U2NhbkxpbWl0LCBnb3Q6IHtzY2Fu bGltaXR9IgotKyAgICBsb2cuaW5mbygiQWRkZWQgbnNJbmRleElETGlzdFNjYW5MaW1pdCB0byBw YXJlbnRpZCBpbmRleCIpCi0rCi0rICAgIGxvZy5pbmZvKCJSdW4gaW5kZXgtY2hlY2sgd2l0aG91 dCAtLWZpeCAoc2hvdWxkIGRldGVjdCBpc3N1ZSkiKQotKyAgICBhcmdzID0gRmFrZUFyZ3MoKQot KyAgICBhcmdzLmJhY2tlbmQgPSAidXNlclJvb3QiCi0rICAgIGFyZ3MuZml4ID0gRmFsc2UKLSsK LSsgICAgcmVzdWx0ID0gZGJ0YXNrc19pbmRleF9jaGVjayhzdGFuZGFsb25lLCB0b3BvbG9neV9z dC5sb2djYXAubG9nLCBhcmdzKQotKyAgICBhc3NlcnQgcmVzdWx0IGlzIEZhbHNlLCAiaW5kZXgt Y2hlY2sgc2hvdWxkIGRldGVjdCBzY2FubGltaXQgaXNzdWUiCi0rICAgIGFzc2VydCB0b3BvbG9n eV9zdC5sb2djYXAuY29udGFpbnMoIm5zSW5kZXhJRExpc3RTY2FuTGltaXQiKQotKyAgICB0b3Bv bG9neV9zdC5sb2djYXAuZmx1c2goKQotKwotKyAgICBsb2cuaW5mbygiUnVuIGluZGV4LWNoZWNr IHdpdGggLS1maXgiKQotKyAgICBhcmdzLmZpeCA9IFRydWUKLSsgICAgcmVzdWx0ID0gZGJ0YXNr c19pbmRleF9jaGVjayhzdGFuZGFsb25lLCB0b3BvbG9neV9zdC5sb2djYXAubG9nLCBhcmdzKQot KyAgICBhc3NlcnQgcmVzdWx0IGlzIFRydWUsICJpbmRleC1jaGVjayAtLWZpeCBzaG91bGQgc3Vj Y2VlZCIKLSsgICAgYXNzZXJ0IHRvcG9sb2d5X3N0LmxvZ2NhcC5jb250YWlucygiUmVtb3ZlZCBu c0luZGV4SURMaXN0U2NhbkxpbWl0IikKLSsgICAgdG9wb2xvZ3lfc3QubG9nY2FwLmZsdXNoKCkK LSsKLSsgICAgbG9nLmluZm8oIlZlcmlmeSBuc0luZGV4SURMaXN0U2NhbkxpbWl0IHdhcyByZW1v dmVkIikKLSsgICAgZHNlX2xkaWYgPSBEU0VsZGlmKHN0YW5kYWxvbmUpICAjIFJlbG9hZCB0byBn ZXQgZnJlc2ggZGF0YQotKyAgICBzY2FubGltaXQgPSBkc2VfbGRpZi5nZXQocGFyZW50aWRfZG4s ICJuc0luZGV4SURMaXN0U2NhbkxpbWl0Iiwgc2luZ2xlPVRydWUpCi0rICAgIGFzc2VydCBzY2Fu bGltaXQgaXMgTm9uZSwgZiJuc0luZGV4SURMaXN0U2NhbkxpbWl0IHNob3VsZCBiZSByZW1vdmVk LCBidXQgZ290OiB7c2NhbmxpbWl0fSIKLSsgICAgbG9nLmluZm8oIm5zSW5kZXhJRExpc3RTY2Fu TGltaXQgc3VjY2Vzc2Z1bGx5IHJlbW92ZWQiKQotKwotKyAgICBsb2cuaW5mbygiU3RhcnQgdGhl IHNlcnZlciIpCi0rICAgIHN0YW5kYWxvbmUuc3RhcnQoKQotKwotKwotK2RlZiB0ZXN0X2luZGV4 X2NoZWNrX2ZpeGVzX2FuY2VzdG9yaWRfY29uZmlnKHRvcG9sb2d5X3N0KToKLSsgICAgIiIiQ2hl Y2sgaWYgZHNjdGwgaW5kZXgtY2hlY2sgLS1maXggcmVtb3ZlcyBhbmNlc3RvcmlkIGNvbmZpZyBl bnRyaWVzCi0rCi0rICAgIDppZDogNWIwYzNkOGUtOWYyYS00YzRiLTBkNmUtN2Y4YTliMWMyZDNl Ci0rICAgIDpzZXR1cDogU3RhbmRhbG9uZSBpbnN0YW5jZQotKyAgICA6c3RlcHM6Ci0rICAgICAg ICAxLiBDcmVhdGUgRFMgaW5zdGFuY2UKLSsgICAgICAgIDIuIFN0b3AgdGhlIHNlcnZlcgotKyAg ICAgICAgMy4gQWRkIGFuY2VzdG9yaWQgaW5kZXggY29uZmlnIGVudHJ5IHVzaW5nIERTRWxkaWYK LSsgICAgICAgIDQuIFJ1biBkc2N0bCBpbmRleC1jaGVjayAoc2hvdWxkIGRldGVjdCBpc3N1ZSkK LSsgICAgICAgIDUuIFJ1biBkc2N0bCBpbmRleC1jaGVjayAtLWZpeAotKyAgICAgICAgNi4gVmVy aWZ5IGFuY2VzdG9yaWQgY29uZmlnIGVudHJ5IHdhcyByZW1vdmVkCi0rICAgICAgICA3LiBTdGFy dCB0aGUgc2VydmVyCi0rICAgIDpleHBlY3RlZHJlc3VsdHM6Ci0rICAgICAgICAxLiBTdWNjZXNz Ci0rICAgICAgICAyLiBTdWNjZXNzCi0rICAgICAgICAzLiBTdWNjZXNzCi0rICAgICAgICA0LiBp bmRleC1jaGVjayByZXR1cm5zIEZhbHNlIGFuZCBkZXRlY3RzIGFuY2VzdG9yaWQgY29uZmlnCi0r ICAgICAgICA1LiBpbmRleC1jaGVjayByZXR1cm5zIFRydWUgYWZ0ZXIgZml4Ci0rICAgICAgICA2 LiBhbmNlc3RvcmlkIGNvbmZpZyBlbnRyeSBubyBsb25nZXIgcHJlc2VudAotKyAgICAgICAgNy4g U3VjY2VzcwotKyAgICAiIiIKLSsgICAgZnJvbSBsaWIzODkuY2xpX2N0bC5kYnRhc2tzIGltcG9y dCBkYnRhc2tzX2luZGV4X2NoZWNrCi0rICAgIGZyb20gbGliMzg5LmRzZWxkaWYgaW1wb3J0IERT RWxkaWYKLSsKLSsgICAgc3RhbmRhbG9uZSA9IHRvcG9sb2d5X3N0LnN0YW5kYWxvbmUKLSsKLSsg ICAgbG9nLmluZm8oIlN0b3AgdGhlIHNlcnZlciIpCi0rICAgIHN0YW5kYWxvbmUuc3RvcCgpCi0r Ci0rICAgIGxvZy5pbmZvKCJBZGQgYW5jZXN0b3JpZCBpbmRleCBjb25maWcgZW50cnkgdXNpbmcg RFNFbGRpZiIpCi0rICAgIGRzZV9sZGlmID0gRFNFbGRpZihzdGFuZGFsb25lKQotKyAgICBhbmNl c3RvcmlkX2VudHJ5ID0gWwotKyAgICAgICAgImRuOiBjbj1hbmNlc3RvcmlkLGNuPWluZGV4LGNu PXVzZXJSb290LGNuPWxkYm0gZGF0YWJhc2UsY249cGx1Z2lucyxjbj1jb25maWdcbiIsCi0rICAg ICAgICAib2JqZWN0Q2xhc3M6IHRvcFxuIiwKLSsgICAgICAgICJvYmplY3RDbGFzczogbnNJbmRl eFxuIiwKLSsgICAgICAgICJjbjogYW5jZXN0b3JpZFxuIiwKLSsgICAgICAgICJuc1N5c3RlbUlu ZGV4OiB0cnVlXG4iLAotKyAgICAgICAgIm5zSW5kZXhUeXBlOiBlcVxuIiwKLSsgICAgXQotKyAg ICBkc2VfbGRpZi5hZGRfZW50cnkoYW5jZXN0b3JpZF9lbnRyeSkKLSsKLSsgICAgIyBWZXJpZnkg aXQgd2FzIGFkZGVkCi0rICAgIGFuY2VzdG9yaWRfZG4gPSAiY249YW5jZXN0b3JpZCxjbj1pbmRl eCxjbj11c2VyUm9vdCxjbj1sZGJtIGRhdGFiYXNlLGNuPXBsdWdpbnMsY249Y29uZmlnIgotKyAg ICBkc2VfbGRpZiA9IERTRWxkaWYoc3RhbmRhbG9uZSkgICMgUmVsb2FkCi0rICAgIGNuX3ZhbHVl ID0gZHNlX2xkaWYuZ2V0KGFuY2VzdG9yaWRfZG4sICJjbiIsIHNpbmdsZT1UcnVlKQotKyAgICBh c3NlcnQgY25fdmFsdWUgaXMgbm90IE5vbmUsICJGYWlsZWQgdG8gYWRkIGFuY2VzdG9yaWQgaW5k ZXggY29uZmlnIGVudHJ5IgotKyAgICBsb2cuaW5mbyhmIkFkZGVkIGFuY2VzdG9yaWQgaW5kZXgg ZW50cnkgd2l0aCBjbjoge2NuX3ZhbHVlfSIpCi0rCi0rICAgIGxvZy5pbmZvKCJSdW4gaW5kZXgt Y2hlY2sgd2l0aG91dCAtLWZpeCAoc2hvdWxkIGRldGVjdCBpc3N1ZSkiKQotKyAgICBhcmdzID0g RmFrZUFyZ3MoKQotKyAgICBhcmdzLmJhY2tlbmQgPSAidXNlclJvb3QiCi0rICAgIGFyZ3MuZml4 ID0gRmFsc2UKLSsKLSsgICAgcmVzdWx0ID0gZGJ0YXNrc19pbmRleF9jaGVjayhzdGFuZGFsb25l LCB0b3BvbG9neV9zdC5sb2djYXAubG9nLCBhcmdzKQotKyAgICBhc3NlcnQgcmVzdWx0IGlzIEZh bHNlLCAiaW5kZXgtY2hlY2sgc2hvdWxkIGRldGVjdCBhbmNlc3RvcmlkIGNvbmZpZyBpc3N1ZSIK LSsgICAgYXNzZXJ0IHRvcG9sb2d5X3N0LmxvZ2NhcC5jb250YWlucygiYW5jZXN0b3JpZCIpIGFu ZCB0b3BvbG9neV9zdC5sb2djYXAuY29udGFpbnMoImNvbmZpZyBlbnRyeSBleGlzdHMiKQotKyAg ICB0b3BvbG9neV9zdC5sb2djYXAuZmx1c2goKQotKwotKyAgICBsb2cuaW5mbygiUnVuIGluZGV4 LWNoZWNrIHdpdGggLS1maXgiKQotKyAgICBhcmdzLmZpeCA9IFRydWUKLSsgICAgcmVzdWx0ID0g ZGJ0YXNrc19pbmRleF9jaGVjayhzdGFuZGFsb25lLCB0b3BvbG9neV9zdC5sb2djYXAubG9nLCBh cmdzKQotKyAgICBhc3NlcnQgcmVzdWx0IGlzIFRydWUsICJpbmRleC1jaGVjayAtLWZpeCBzaG91 bGQgc3VjY2VlZCIKLSsgICAgYXNzZXJ0IHRvcG9sb2d5X3N0LmxvZ2NhcC5jb250YWlucygiUmVt b3ZlZCBhbmNlc3RvcmlkIGNvbmZpZyBlbnRyeSIpCi0rICAgIHRvcG9sb2d5X3N0LmxvZ2NhcC5m bHVzaCgpCi0rCi0rICAgIGxvZy5pbmZvKCJWZXJpZnkgYW5jZXN0b3JpZCBjb25maWcgZW50cnkg d2FzIHJlbW92ZWQiKQotKyAgICBkc2VfbGRpZiA9IERTRWxkaWYoc3RhbmRhbG9uZSkgICMgUmVs b2FkIHRvIGdldCBmcmVzaCBkYXRhCi0rICAgIGNuX3ZhbHVlID0gZHNlX2xkaWYuZ2V0KGFuY2Vz dG9yaWRfZG4sICJjbiIsIHNpbmdsZT1UcnVlKQotKyAgICBhc3NlcnQgY25fdmFsdWUgaXMgTm9u ZSwgZiJhbmNlc3RvcmlkIGNvbmZpZyBlbnRyeSBzaG91bGQgYmUgcmVtb3ZlZCwgYnV0IGdvdDog e2NuX3ZhbHVlfSIKLSsgICAgbG9nLmluZm8oImFuY2VzdG9yaWQgY29uZmlnIGVudHJ5IHN1Y2Nl c3NmdWxseSByZW1vdmVkIikKLSsKLSsgICAgbG9nLmluZm8oIlN0YXJ0IHRoZSBzZXJ2ZXIiKQot KyAgICBzdGFuZGFsb25lLnN0YXJ0KCkKLSsKLSsKLStkZWYgdGVzdF9pbmRleF9jaGVja19maXhl c19taXNzaW5nX21hdGNoaW5nX3J1bGUodG9wb2xvZ3lfc3QpOgotKyAgICAiIiJDaGVjayBpZiBk c2N0bCBpbmRleC1jaGVjayAtLWZpeCBhZGRzIG1pc3NpbmcgaW50ZWdlck9yZGVyaW5nTWF0Y2gK LSsKLSsgICAgOmlkOiA2YzFkNGU5Zi0wYTNiLTRkNWMtMWU3Zi04YTliMGMyZDNlNGYKLSsgICAg OnNldHVwOiBTdGFuZGFsb25lIGluc3RhbmNlCi0rICAgIDpzdGVwczoKLSsgICAgICAgIDEuIENy ZWF0ZSBEUyBpbnN0YW5jZQotKyAgICAgICAgMi4gU3RvcCB0aGUgc2VydmVyCi0rICAgICAgICAz LiBSZW1vdmUgaW50ZWdlck9yZGVyaW5nTWF0Y2ggZnJvbSBwYXJlbnRpZCBpbmRleCB1c2luZyBE U0VsZGlmCi0rICAgICAgICA0LiBSdW4gZHNjdGwgaW5kZXgtY2hlY2sgKHNob3VsZCBkZXRlY3Qg aXNzdWUpCi0rICAgICAgICA1LiBSdW4gZHNjdGwgaW5kZXgtY2hlY2sgLS1maXgKLSsgICAgICAg IDYuIFZlcmlmeSBpbnRlZ2VyT3JkZXJpbmdNYXRjaCB3YXMgYWRkZWQgYmFjawotKyAgICAgICAg Ny4gU3RhcnQgdGhlIHNlcnZlcgotKyAgICA6ZXhwZWN0ZWRyZXN1bHRzOgotKyAgICAgICAgMS4g U3VjY2VzcwotKyAgICAgICAgMi4gU3VjY2VzcwotKyAgICAgICAgMy4gU3VjY2VzcwotKyAgICAg ICAgNC4gaW5kZXgtY2hlY2sgcmV0dXJucyBGYWxzZSBhbmQgZGV0ZWN0cyBtaXNzaW5nIG1hdGNo aW5nIHJ1bGUKLSsgICAgICAgIDUuIGluZGV4LWNoZWNrIHJldHVybnMgVHJ1ZSBhZnRlciBmaXgK LSsgICAgICAgIDYuIGludGVnZXJPcmRlcmluZ01hdGNoIGlzIHByZXNlbnQKLSsgICAgICAgIDcu IFN1Y2Nlc3MKLSsgICAgIiIiCi0rICAgIGZyb20gbGliMzg5LmNsaV9jdGwuZGJ0YXNrcyBpbXBv cnQgZGJ0YXNrc19pbmRleF9jaGVjawotKyAgICBmcm9tIGxpYjM4OS5kc2VsZGlmIGltcG9ydCBE U0VsZGlmCi0rCi0rICAgIHN0YW5kYWxvbmUgPSB0b3BvbG9neV9zdC5zdGFuZGFsb25lCi0rCi0r ICAgIGxvZy5pbmZvKCJTdG9wIHRoZSBzZXJ2ZXIiKQotKyAgICBzdGFuZGFsb25lLnN0b3AoKQot KwotKyAgICBsb2cuaW5mbygiUmVtb3ZlIGludGVnZXJPcmRlcmluZ01hdGNoIGZyb20gcGFyZW50 aWQgaW5kZXggdXNpbmcgRFNFbGRpZiIpCi0rICAgIGRzZV9sZGlmID0gRFNFbGRpZihzdGFuZGFs b25lKQotKyAgICBwYXJlbnRpZF9kbiA9ICJjbj1wYXJlbnRpZCxjbj1pbmRleCxjbj11c2VyUm9v dCxjbj1sZGJtIGRhdGFiYXNlLGNuPXBsdWdpbnMsY249Y29uZmlnIgotKwotKyAgICAjIENoZWNr IGN1cnJlbnQgbWF0Y2hpbmcgcnVsZXMKLSsgICAgbWF0Y2hpbmdfcnVsZXMgPSBkc2VfbGRpZi5n ZXQocGFyZW50aWRfZG4sICJuc01hdGNoaW5nUnVsZSIpCi0rICAgIGxvZy5pbmZvKGYiQ3VycmVu dCBtYXRjaGluZyBydWxlczoge21hdGNoaW5nX3J1bGVzfSIpCi0rCi0rICAgICMgUmVtb3ZlIGlu dGVnZXJPcmRlcmluZ01hdGNoIGlmIHByZXNlbnQKLSsgICAgaWYgbWF0Y2hpbmdfcnVsZXM6Ci0r ICAgICAgICBmb3IgbXIgaW4gbWF0Y2hpbmdfcnVsZXM6Ci0rICAgICAgICAgICAgaWYgImludGVn ZXJvcmRlcmluZ21hdGNoIiBpbiBtci5sb3dlcigpOgotKyAgICAgICAgICAgICAgICBkc2VfbGRp Zi5kZWxldGUocGFyZW50aWRfZG4sICJuc01hdGNoaW5nUnVsZSIsIG1yKQotKyAgICAgICAgICAg ICAgICBsb2cuaW5mbyhmIlJlbW92ZWQgbWF0Y2hpbmcgcnVsZToge21yfSIpCi0rCi0rICAgICMg VmVyaWZ5IGl0IHdhcyByZW1vdmVkCi0rICAgIGRzZV9sZGlmID0gRFNFbGRpZihzdGFuZGFsb25l KSAgIyBSZWxvYWQKLSsgICAgbWF0Y2hpbmdfcnVsZXMgPSBkc2VfbGRpZi5nZXQocGFyZW50aWRf ZG4sICJuc01hdGNoaW5nUnVsZSIpCi0rICAgIGlmIG1hdGNoaW5nX3J1bGVzOgotKyAgICAgICAg Zm9yIG1yIGluIG1hdGNoaW5nX3J1bGVzOgotKyAgICAgICAgICAgIGFzc2VydCAiaW50ZWdlcm9y ZGVyaW5nbWF0Y2giIG5vdCBpbiBtci5sb3dlcigpLCBcCi0rICAgICAgICAgICAgICAgIGYiaW50 ZWdlck9yZGVyaW5nTWF0Y2ggc2hvdWxkIGJlIHJlbW92ZWQsIGJ1dCBmb3VuZDoge21yfSIKLSsg ICAgbG9nLmluZm8oImludGVnZXJPcmRlcmluZ01hdGNoIHJlbW92ZWQgZnJvbSBwYXJlbnRpZCBp bmRleCIpCi0rCi0rICAgIGxvZy5pbmZvKCJSdW4gaW5kZXgtY2hlY2sgd2l0aG91dCAtLWZpeCAo c2hvdWxkIGRldGVjdCBpc3N1ZSkiKQotKyAgICBhcmdzID0gRmFrZUFyZ3MoKQotKyAgICBhcmdz LmJhY2tlbmQgPSAidXNlclJvb3QiCi0rICAgIGFyZ3MuZml4ID0gRmFsc2UKLSsKLSsgICAgcmVz dWx0ID0gZGJ0YXNrc19pbmRleF9jaGVjayhzdGFuZGFsb25lLCB0b3BvbG9neV9zdC5sb2djYXAu bG9nLCBhcmdzKQotKyAgICBhc3NlcnQgcmVzdWx0IGlzIEZhbHNlLCAiaW5kZXgtY2hlY2sgc2hv dWxkIGRldGVjdCBtaXNzaW5nIG1hdGNoaW5nIHJ1bGUiCi0rICAgIGFzc2VydCB0b3BvbG9neV9z dC5sb2djYXAuY29udGFpbnMoIm1pc3NpbmcgaW50ZWdlck9yZGVyaW5nTWF0Y2giKQotKyAgICB0 b3BvbG9neV9zdC5sb2djYXAuZmx1c2goKQotKwotKyAgICBsb2cuaW5mbygiUnVuIGluZGV4LWNo ZWNrIHdpdGggLS1maXgiKQotKyAgICBhcmdzLmZpeCA9IFRydWUKLSsgICAgcmVzdWx0ID0gZGJ0 YXNrc19pbmRleF9jaGVjayhzdGFuZGFsb25lLCB0b3BvbG9neV9zdC5sb2djYXAubG9nLCBhcmdz KQotKyAgICBhc3NlcnQgcmVzdWx0IGlzIFRydWUsICJpbmRleC1jaGVjayAtLWZpeCBzaG91bGQg c3VjY2VlZCIKLSsgICAgYXNzZXJ0IHRvcG9sb2d5X3N0LmxvZ2NhcC5jb250YWlucygiaW50ZWdl ck9yZGVyaW5nTWF0Y2giKQotKyAgICB0b3BvbG9neV9zdC5sb2djYXAuZmx1c2goKQotKwotKyAg ICBsb2cuaW5mbygiVmVyaWZ5IGludGVnZXJPcmRlcmluZ01hdGNoIHdhcyBhZGRlZCBiYWNrIikK LSsgICAgZHNlX2xkaWYgPSBEU0VsZGlmKHN0YW5kYWxvbmUpICAjIFJlbG9hZCB0byBnZXQgZnJl c2ggZGF0YQotKyAgICBtYXRjaGluZ19ydWxlcyA9IGRzZV9sZGlmLmdldChwYXJlbnRpZF9kbiwg Im5zTWF0Y2hpbmdSdWxlIikKLSsgICAgYXNzZXJ0IG1hdGNoaW5nX3J1bGVzIGlzIG5vdCBOb25l LCAibnNNYXRjaGluZ1J1bGUgc2hvdWxkIGJlIHByZXNlbnQiCi0rICAgIGZvdW5kX2ludF9vcmRl ciA9IEZhbHNlCi0rICAgIGZvciBtciBpbiBtYXRjaGluZ19ydWxlczoKLSsgICAgICAgIGlmICJp bnRlZ2Vyb3JkZXJpbmdtYXRjaCIgaW4gbXIubG93ZXIoKToKLSsgICAgICAgICAgICBmb3VuZF9p bnRfb3JkZXIgPSBUcnVlCi0rICAgICAgICAgICAgYnJlYWsKLSsgICAgYXNzZXJ0IGZvdW5kX2lu dF9vcmRlciwgZiJpbnRlZ2VyT3JkZXJpbmdNYXRjaCBzaG91bGQgYmUgcHJlc2VudCwgZ290OiB7 bWF0Y2hpbmdfcnVsZXN9IgotKyAgICBsb2cuaW5mbygiaW50ZWdlck9yZGVyaW5nTWF0Y2ggc3Vj Y2Vzc2Z1bGx5IGFkZGVkIGJhY2siKQotKwotKyAgICBsb2cuaW5mbygiU3RhcnQgdGhlIHNlcnZl ciIpCi0rICAgIHN0YW5kYWxvbmUuc3RhcnQoKQotKwotKwotK2RlZiB0ZXN0X2luZGV4X2NoZWNr X2ZpeGVzX2RlZmF1bHRfYW5jZXN0b3JpZCh0b3BvbG9neV9zdCk6Ci0rICAgICIiIkNoZWNrIGlm IGRzY3RsIGluZGV4LWNoZWNrIC0tZml4IHJlbW92ZXMgYW5jZXN0b3JpZCBmcm9tIGRlZmF1bHQg aW5kZXhlcwotKwotKyAgICA6aWQ6IDdkMmU1ZjBhLTFiNGMtNGU2ZC0yZjhhLTliMGMxZDNlNGY1 YQotKyAgICA6c2V0dXA6IFN0YW5kYWxvbmUgaW5zdGFuY2UKLSsgICAgOnN0ZXBzOgotKyAgICAg ICAgMS4gQ3JlYXRlIERTIGluc3RhbmNlCi0rICAgICAgICAyLiBTdG9wIHRoZSBzZXJ2ZXIKLSsg ICAgICAgIDMuIEFkZCBhbmNlc3RvcmlkIHRvIGNuPWRlZmF1bHQgaW5kZXhlcyB1c2luZyBEU0Vs ZGlmCi0rICAgICAgICA0LiBSdW4gZHNjdGwgaW5kZXgtY2hlY2sgKHNob3VsZCBkZXRlY3QgaXNz dWUpCi0rICAgICAgICA1LiBSdW4gZHNjdGwgaW5kZXgtY2hlY2sgLS1maXgKLSsgICAgICAgIDYu IFZlcmlmeSBhbmNlc3RvcmlkIHdhcyByZW1vdmVkIGZyb20gZGVmYXVsdCBpbmRleGVzCi0rICAg ICAgICA3LiBTdGFydCB0aGUgc2VydmVyCi0rICAgIDpleHBlY3RlZHJlc3VsdHM6Ci0rICAgICAg ICAxLiBTdWNjZXNzCi0rICAgICAgICAyLiBTdWNjZXNzCi0rICAgICAgICAzLiBTdWNjZXNzCi0r ICAgICAgICA0LiBpbmRleC1jaGVjayByZXR1cm5zIEZhbHNlIGFuZCBkZXRlY3RzIGFuY2VzdG9y aWQgaW4gZGVmYXVsdCBpbmRleGVzCi0rICAgICAgICA1LiBpbmRleC1jaGVjayByZXR1cm5zIFRy dWUgYWZ0ZXIgZml4Ci0rICAgICAgICA2LiBhbmNlc3RvcmlkIG5vIGxvbmdlciBpbiBkZWZhdWx0 IGluZGV4ZXMKLSsgICAgICAgIDcuIFN1Y2Nlc3MKLSsgICAgIiIiCi0rICAgIGZyb20gbGliMzg5 LmNsaV9jdGwuZGJ0YXNrcyBpbXBvcnQgZGJ0YXNrc19pbmRleF9jaGVjawotKyAgICBmcm9tIGxp YjM4OS5kc2VsZGlmIGltcG9ydCBEU0VsZGlmCi0rCi0rICAgIHN0YW5kYWxvbmUgPSB0b3BvbG9n eV9zdC5zdGFuZGFsb25lCi0rCi0rICAgIGxvZy5pbmZvKCJTdG9wIHRoZSBzZXJ2ZXIiKQotKyAg ICBzdGFuZGFsb25lLnN0b3AoKQotKwotKyAgICBsb2cuaW5mbygiQWRkIGFuY2VzdG9yaWQgdG8g Y249ZGVmYXVsdCBpbmRleGVzIHVzaW5nIERTRWxkaWYiKQotKyAgICBkc2VfbGRpZiA9IERTRWxk aWYoc3RhbmRhbG9uZSkKLSsgICAgYW5jZXN0b3JpZF9kZWZhdWx0X2VudHJ5ID0gWwotKyAgICAg ICAgImRuOiBjbj1hbmNlc3RvcmlkLGNuPWRlZmF1bHQgaW5kZXhlcyxjbj1jb25maWcsY249bGRi bSBkYXRhYmFzZSxjbj1wbHVnaW5zLGNuPWNvbmZpZ1xuIiwKLSsgICAgICAgICJvYmplY3RDbGFz czogdG9wXG4iLAotKyAgICAgICAgIm9iamVjdENsYXNzOiBuc0luZGV4XG4iLAotKyAgICAgICAg ImNuOiBhbmNlc3RvcmlkXG4iLAotKyAgICAgICAgIm5zU3lzdGVtSW5kZXg6IHRydWVcbiIsCi0r ICAgICAgICAibnNJbmRleFR5cGU6IGVxXG4iLAotKyAgICBdCi0rICAgIGRzZV9sZGlmLmFkZF9l bnRyeShhbmNlc3RvcmlkX2RlZmF1bHRfZW50cnkpCi0rCi0rICAgICMgVmVyaWZ5IGl0IHdhcyBh ZGRlZAotKyAgICBhbmNlc3RvcmlkX2RlZmF1bHRfZG4gPSAiY249YW5jZXN0b3JpZCxjbj1kZWZh dWx0IGluZGV4ZXMsY249Y29uZmlnLGNuPWxkYm0gZGF0YWJhc2UsY249cGx1Z2lucyxjbj1jb25m aWciCi0rICAgIGRzZV9sZGlmID0gRFNFbGRpZihzdGFuZGFsb25lKSAgIyBSZWxvYWQKLSsgICAg Y25fdmFsdWUgPSBkc2VfbGRpZi5nZXQoYW5jZXN0b3JpZF9kZWZhdWx0X2RuLCAiY24iLCBzaW5n bGU9VHJ1ZSkKLSsgICAgYXNzZXJ0IGNuX3ZhbHVlIGlzIG5vdCBOb25lLCAiRmFpbGVkIHRvIGFk ZCBhbmNlc3RvcmlkIHRvIGRlZmF1bHQgaW5kZXhlcyIKLSsgICAgbG9nLmluZm8oZiJBZGRlZCBh bmNlc3RvcmlkIHRvIGRlZmF1bHQgaW5kZXhlcyB3aXRoIGNuOiB7Y25fdmFsdWV9IikKLSsKLSsg ICAgbG9nLmluZm8oIlJ1biBpbmRleC1jaGVjayB3aXRob3V0IC0tZml4IChzaG91bGQgZGV0ZWN0 IGlzc3VlKSIpCi0rICAgIGFyZ3MgPSBGYWtlQXJncygpCi0rICAgIGFyZ3MuYmFja2VuZCA9IE5v bmUgICMgQ2hlY2sgYWxsIGJhY2tlbmRzIGluY2x1ZGluZyBkZWZhdWx0IGluZGV4ZXMKLSsgICAg YXJncy5maXggPSBGYWxzZQotKwotKyAgICByZXN1bHQgPSBkYnRhc2tzX2luZGV4X2NoZWNrKHN0 YW5kYWxvbmUsIHRvcG9sb2d5X3N0LmxvZ2NhcC5sb2csIGFyZ3MpCi0rICAgIGFzc2VydCByZXN1 bHQgaXMgRmFsc2UsICJpbmRleC1jaGVjayBzaG91bGQgZGV0ZWN0IGFuY2VzdG9yaWQgaW4gZGVm YXVsdCBpbmRleGVzIgotKyAgICBhc3NlcnQgdG9wb2xvZ3lfc3QubG9nY2FwLmNvbnRhaW5zKCJh bmNlc3RvcmlkIGZvdW5kIGluIGNuPWRlZmF1bHQgaW5kZXhlcyIpCi0rICAgIHRvcG9sb2d5X3N0 LmxvZ2NhcC5mbHVzaCgpCi0rCi0rICAgIGxvZy5pbmZvKCJSdW4gaW5kZXgtY2hlY2sgd2l0aCAt LWZpeCIpCi0rICAgIGFyZ3MuZml4ID0gVHJ1ZQotKyAgICByZXN1bHQgPSBkYnRhc2tzX2luZGV4 X2NoZWNrKHN0YW5kYWxvbmUsIHRvcG9sb2d5X3N0LmxvZ2NhcC5sb2csIGFyZ3MpCi0rICAgIGFz c2VydCByZXN1bHQgaXMgVHJ1ZSwgImluZGV4LWNoZWNrIC0tZml4IHNob3VsZCBzdWNjZWVkIgot KyAgICBhc3NlcnQgdG9wb2xvZ3lfc3QubG9nY2FwLmNvbnRhaW5zKCJSZW1vdmVkIGFuY2VzdG9y aWQgZnJvbSBkZWZhdWx0IGluZGV4ZXMiKQotKyAgICB0b3BvbG9neV9zdC5sb2djYXAuZmx1c2go KQotKwotKyAgICBsb2cuaW5mbygiVmVyaWZ5IGFuY2VzdG9yaWQgd2FzIHJlbW92ZWQgZnJvbSBk ZWZhdWx0IGluZGV4ZXMiKQotKyAgICBkc2VfbGRpZiA9IERTRWxkaWYoc3RhbmRhbG9uZSkgICMg UmVsb2FkIHRvIGdldCBmcmVzaCBkYXRhCi0rICAgIGNuX3ZhbHVlID0gZHNlX2xkaWYuZ2V0KGFu Y2VzdG9yaWRfZGVmYXVsdF9kbiwgImNuIiwgc2luZ2xlPVRydWUpCi0rICAgIGFzc2VydCBjbl92 YWx1ZSBpcyBOb25lLCBmImFuY2VzdG9yaWQgc2hvdWxkIGJlIHJlbW92ZWQgZnJvbSBkZWZhdWx0 IGluZGV4ZXMsIGJ1dCBnb3Q6IHtjbl92YWx1ZX0iCi0rICAgIGxvZy5pbmZvKCJhbmNlc3Rvcmlk IHN1Y2Nlc3NmdWxseSByZW1vdmVkIGZyb20gZGVmYXVsdCBpbmRleGVzIikKLSsKLSsgICAgbG9n LmluZm8oIlN0YXJ0IHRoZSBzZXJ2ZXIiKQotKyAgICBzdGFuZGFsb25lLnN0YXJ0KCkKLSsKLSsK LStkZWYgdGVzdF9pbmRleF9jaGVja19maXhlc19tdWx0aXBsZV9pc3N1ZXModG9wb2xvZ3lfc3Qp OgotKyAgICAiIiJDaGVjayBpZiBkc2N0bCBpbmRleC1jaGVjayAtLWZpeCBoYW5kbGVzIG11bHRp cGxlIGlzc3VlcyBhdCBvbmNlCi0rCi0rICAgIDppZDogOGUzZjZhMWItMmM1ZC00ZjdlLTNhOWIt MGMxZDJlNGY1YTZiCi0rICAgIDpzZXR1cDogU3RhbmRhbG9uZSBpbnN0YW5jZQotKyAgICA6c3Rl cHM6Ci0rICAgICAgICAxLiBDcmVhdGUgRFMgaW5zdGFuY2UKLSsgICAgICAgIDIuIFN0b3AgdGhl IHNlcnZlcgotKyAgICAgICAgMy4gQWRkIG11bHRpcGxlIGlzc3Vlczogc2NhbmxpbWl0LCBhbmNl c3RvcmlkIGNvbmZpZywgbWlzc2luZyBtYXRjaGluZyBydWxlCi0rICAgICAgICA0LiBSdW4gZHNj dGwgaW5kZXgtY2hlY2sgKHNob3VsZCBkZXRlY3QgYWxsIGlzc3VlcykKLSsgICAgICAgIDUuIFJ1 biBkc2N0bCBpbmRleC1jaGVjayAtLWZpeAotKyAgICAgICAgNi4gVmVyaWZ5IGFsbCBpc3N1ZXMg d2VyZSBmaXhlZAotKyAgICAgICAgNy4gUnVuIGRzY3RsIGluZGV4LWNoZWNrIGFnYWluIChzaG91 bGQgcGFzcykKLSsgICAgICAgIDguIFN0YXJ0IHRoZSBzZXJ2ZXIKLSsgICAgOmV4cGVjdGVkcmVz dWx0czoKLSsgICAgICAgIDEuIFN1Y2Nlc3MKLSsgICAgICAgIDIuIFN1Y2Nlc3MKLSsgICAgICAg IDMuIFN1Y2Nlc3MKLSsgICAgICAgIDQuIGluZGV4LWNoZWNrIHJldHVybnMgRmFsc2UgYW5kIGRl dGVjdHMgYWxsIGlzc3VlcwotKyAgICAgICAgNS4gaW5kZXgtY2hlY2sgcmV0dXJucyBUcnVlIGFm dGVyIGZpeAotKyAgICAgICAgNi4gQWxsIGlzc3VlcyByZXNvbHZlZAotKyAgICAgICAgNy4gaW5k ZXgtY2hlY2sgcmV0dXJucyBUcnVlIChubyBpc3N1ZXMpCi0rICAgICAgICA4LiBTdWNjZXNzCi0r ICAgICIiIgotKyAgICBmcm9tIGxpYjM4OS5jbGlfY3RsLmRidGFza3MgaW1wb3J0IGRidGFza3Nf aW5kZXhfY2hlY2sKLSsgICAgZnJvbSBsaWIzODkuZHNlbGRpZiBpbXBvcnQgRFNFbGRpZgotKwot KyAgICBzdGFuZGFsb25lID0gdG9wb2xvZ3lfc3Quc3RhbmRhbG9uZQotKwotKyAgICBsb2cuaW5m bygiU3RvcCB0aGUgc2VydmVyIikKLSsgICAgc3RhbmRhbG9uZS5zdG9wKCkKLSsKLSsgICAgZHNl X2xkaWYgPSBEU0VsZGlmKHN0YW5kYWxvbmUpCi0rICAgIHBhcmVudGlkX2RuID0gImNuPXBhcmVu dGlkLGNuPWluZGV4LGNuPXVzZXJSb290LGNuPWxkYm0gZGF0YWJhc2UsY249cGx1Z2lucyxjbj1j b25maWciCi0rICAgIGFuY2VzdG9yaWRfZG4gPSAiY249YW5jZXN0b3JpZCxjbj1pbmRleCxjbj11 c2VyUm9vdCxjbj1sZGJtIGRhdGFiYXNlLGNuPXBsdWdpbnMsY249Y29uZmlnIgotKwotKyAgICBs b2cuaW5mbygiQWRkIGlzc3VlIDE6IG5zSW5kZXhJRExpc3RTY2FuTGltaXQgdG8gcGFyZW50aWQi KQotKyAgICBkc2VfbGRpZi5hZGQocGFyZW50aWRfZG4sICJuc0luZGV4SURMaXN0U2NhbkxpbWl0 IiwgIjQwMDAiKQotKwotKyAgICBsb2cuaW5mbygiQWRkIGlzc3VlIDI6IGFuY2VzdG9yaWQgaW5k ZXggY29uZmlnIGVudHJ5IikKLSsgICAgYW5jZXN0b3JpZF9lbnRyeSA9IFsKLSsgICAgICAgIGYi ZG46IHthbmNlc3RvcmlkX2RufVxuIiwKLSsgICAgICAgICJvYmplY3RDbGFzczogdG9wXG4iLAot KyAgICAgICAgIm9iamVjdENsYXNzOiBuc0luZGV4XG4iLAotKyAgICAgICAgImNuOiBhbmNlc3Rv cmlkXG4iLAotKyAgICAgICAgIm5zU3lzdGVtSW5kZXg6IHRydWVcbiIsCi0rICAgICAgICAibnNJ bmRleFR5cGU6IGVxXG4iLAotKyAgICBdCi0rICAgIGRzZV9sZGlmLmFkZF9lbnRyeShhbmNlc3Rv cmlkX2VudHJ5KQotKwotKyAgICBsb2cuaW5mbygiQWRkIGlzc3VlIDM6IFJlbW92ZSBpbnRlZ2Vy T3JkZXJpbmdNYXRjaCBmcm9tIHBhcmVudGlkIikKLSsgICAgZHNlX2xkaWYgPSBEU0VsZGlmKHN0 YW5kYWxvbmUpICAjIFJlbG9hZAotKyAgICBtYXRjaGluZ19ydWxlcyA9IGRzZV9sZGlmLmdldChw YXJlbnRpZF9kbiwgIm5zTWF0Y2hpbmdSdWxlIikKLSsgICAgaWYgbWF0Y2hpbmdfcnVsZXM6Ci0r ICAgICAgICBmb3IgbXIgaW4gbWF0Y2hpbmdfcnVsZXM6Ci0rICAgICAgICAgICAgaWYgImludGVn ZXJvcmRlcmluZ21hdGNoIiBpbiBtci5sb3dlcigpOgotKyAgICAgICAgICAgICAgICBkc2VfbGRp Zi5kZWxldGUocGFyZW50aWRfZG4sICJuc01hdGNoaW5nUnVsZSIsIG1yKQotKwotKyAgICBsb2cu aW5mbygiUnVuIGluZGV4LWNoZWNrIHdpdGhvdXQgLS1maXggKHNob3VsZCBkZXRlY3QgYWxsIGlz c3VlcykiKQotKyAgICBhcmdzID0gRmFrZUFyZ3MoKQotKyAgICBhcmdzLmJhY2tlbmQgPSAidXNl clJvb3QiCi0rICAgIGFyZ3MuZml4ID0gRmFsc2UKLSsKLSsgICAgcmVzdWx0ID0gZGJ0YXNrc19p bmRleF9jaGVjayhzdGFuZGFsb25lLCB0b3BvbG9neV9zdC5sb2djYXAubG9nLCBhcmdzKQotKyAg ICBhc3NlcnQgcmVzdWx0IGlzIEZhbHNlLCAiaW5kZXgtY2hlY2sgc2hvdWxkIGRldGVjdCBtdWx0 aXBsZSBpc3N1ZXMiCi0rICAgICMgQ2hlY2sgdGhhdCBtdWx0aXBsZSBpc3N1ZXMgd2VyZSBkZXRl Y3RlZAotKyAgICBhc3NlcnQgdG9wb2xvZ3lfc3QubG9nY2FwLmNvbnRhaW5zKCJuc0luZGV4SURM aXN0U2NhbkxpbWl0IikKLSsgICAgYXNzZXJ0IHRvcG9sb2d5X3N0LmxvZ2NhcC5jb250YWlucygi YW5jZXN0b3JpZCIpCi0rICAgIHRvcG9sb2d5X3N0LmxvZ2NhcC5mbHVzaCgpCi0rCi0rICAgIGxv Zy5pbmZvKCJSdW4gaW5kZXgtY2hlY2sgd2l0aCAtLWZpeCIpCi0rICAgIGFyZ3MuZml4ID0gVHJ1 ZQotKyAgICByZXN1bHQgPSBkYnRhc2tzX2luZGV4X2NoZWNrKHN0YW5kYWxvbmUsIHRvcG9sb2d5 X3N0LmxvZ2NhcC5sb2csIGFyZ3MpCi0rICAgIGFzc2VydCByZXN1bHQgaXMgVHJ1ZSwgImluZGV4 LWNoZWNrIC0tZml4IHNob3VsZCBzdWNjZWVkIgotKyAgICBhc3NlcnQgdG9wb2xvZ3lfc3QubG9n Y2FwLmNvbnRhaW5zKCJBbGwgaXNzdWVzIGZpeGVkIikKLSsgICAgdG9wb2xvZ3lfc3QubG9nY2Fw LmZsdXNoKCkKLSsKLSsgICAgbG9nLmluZm8oIlZlcmlmeSBhbGwgaXNzdWVzIHdlcmUgZml4ZWQi KQotKyAgICBkc2VfbGRpZiA9IERTRWxkaWYoc3RhbmRhbG9uZSkgICMgUmVsb2FkCi0rCi0rICAg ICMgQ2hlY2sgc2NhbmxpbWl0IHJlbW92ZWQKLSsgICAgc2NhbmxpbWl0ID0gZHNlX2xkaWYuZ2V0 KHBhcmVudGlkX2RuLCAibnNJbmRleElETGlzdFNjYW5MaW1pdCIsIHNpbmdsZT1UcnVlKQotKyAg ICBhc3NlcnQgc2NhbmxpbWl0IGlzIE5vbmUsIGYibnNJbmRleElETGlzdFNjYW5MaW1pdCBzaG91 bGQgYmUgcmVtb3ZlZCwgZ290OiB7c2NhbmxpbWl0fSIKLSsKLSsgICAgIyBDaGVjayBhbmNlc3Rv cmlkIGNvbmZpZyByZW1vdmVkCi0rICAgIGNuX3ZhbHVlID0gZHNlX2xkaWYuZ2V0KGFuY2VzdG9y aWRfZG4sICJjbiIsIHNpbmdsZT1UcnVlKQotKyAgICBhc3NlcnQgY25fdmFsdWUgaXMgTm9uZSwg ZiJhbmNlc3RvcmlkIGNvbmZpZyBzaG91bGQgYmUgcmVtb3ZlZCwgZ290OiB7Y25fdmFsdWV9Igot KwotKyAgICAjIENoZWNrIG1hdGNoaW5nIHJ1bGUgYWRkZWQgYmFjawotKyAgICBtYXRjaGluZ19y dWxlcyA9IGRzZV9sZGlmLmdldChwYXJlbnRpZF9kbiwgIm5zTWF0Y2hpbmdSdWxlIikKLSsgICAg Zm91bmRfaW50X29yZGVyID0gRmFsc2UKLSsgICAgaWYgbWF0Y2hpbmdfcnVsZXM6Ci0rICAgICAg ICBmb3IgbXIgaW4gbWF0Y2hpbmdfcnVsZXM6Ci0rICAgICAgICAgICAgaWYgImludGVnZXJvcmRl cmluZ21hdGNoIiBpbiBtci5sb3dlcigpOgotKyAgICAgICAgICAgICAgICBmb3VuZF9pbnRfb3Jk ZXIgPSBUcnVlCi0rICAgICAgICAgICAgICAgIGJyZWFrCi0rICAgIGFzc2VydCBmb3VuZF9pbnRf b3JkZXIsIGYiaW50ZWdlck9yZGVyaW5nTWF0Y2ggc2hvdWxkIGJlIHByZXNlbnQsIGdvdDoge21h dGNoaW5nX3J1bGVzfSIKLSsKLSsgICAgbG9nLmluZm8oIkFsbCBpc3N1ZXMgdmVyaWZpZWQgYXMg Zml4ZWQiKQotKwotKyAgICBsb2cuaW5mbygiUnVuIGluZGV4LWNoZWNrIGFnYWluIHRvIGNvbmZp cm0gYWxsIGNsZWFyIikKLSsgICAgYXJncy5maXggPSBGYWxzZQotKyAgICByZXN1bHQgPSBkYnRh c2tzX2luZGV4X2NoZWNrKHN0YW5kYWxvbmUsIHRvcG9sb2d5X3N0LmxvZ2NhcC5sb2csIGFyZ3Mp Ci0rICAgIGFzc2VydCByZXN1bHQgaXMgVHJ1ZSwgImluZGV4LWNoZWNrIHNob3VsZCBwYXNzIGFm dGVyIGZpeCIKLSsgICAgYXNzZXJ0IHRvcG9sb2d5X3N0LmxvZ2NhcC5jb250YWlucygiQWxsIGNo ZWNrcyBwYXNzZWQiKQotKyAgICB0b3BvbG9neV9zdC5sb2djYXAuZmx1c2goKQotKwotKyAgICBs b2cuaW5mbygiU3RhcnQgdGhlIHNlcnZlciIpCi0rICAgIHN0YW5kYWxvbmUuc3RhcnQoKQotKwot KwotIGlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6Ci0gICAgICMgUnVuIGlzb2xhdGVkCi0gICAg ICMgLXMgZm9yIERFQlVHIG1vZGUKLWRpZmYgLS1naXQgYS9ycG0vMzg5LWRzLWJhc2Uuc3BlYy5p biBiL3JwbS8zODktZHMtYmFzZS5zcGVjLmluCi1pbmRleCBkYzhjNzVkYWMuLjBlMGUyODI4NSAx MDA2NDQKLS0tLSBhL3JwbS8zODktZHMtYmFzZS5zcGVjLmluCi0rKysgYi9ycG0vMzg5LWRzLWJh c2Uuc3BlYy5pbgotQEAgLTYyOCw0MiArNjI4LDQ1IEBAIGlmICEgZ2V0ZW50IHBhc3N3ZCAkVVNF Uk5BTUUgPi9kZXYvbnVsbCA7IHRoZW4KLSBmaQotIAotICMgUmVsb2FkIG91ciBzeXNjdGwgYmVm b3JlIHdlIHJlc3RhcnQgKGlmIHdlIGNhbikKLS1zeXNjdGwgLS1zeXN0ZW0gJj4gJG91dHB1dDsg dHJ1ZQotK3N5c2N0bCAtLXN5c3RlbSAmPiAiJG91dHB1dCI7IHRydWUKLSAKLS0jIEdhdGhlciB0 aGUgcnVubmluZyBpbnN0YW5jZXMgc28gd2UgY2FuIHJlc3RhcnQgdGhlbQotKyMgR2F0aGVyIHJ1 bm5pbmcgaW5zdGFuY2VzLCBzdG9wIHRoZW0sIHJ1biBpbmRleC1jaGVjaywgdGhlbiByZXN0YXJ0 Ci0gaW5zdGJhc2U9IiV7X3N5c2NvbmZkaXJ9LyV7cGtnbmFtZX0iCi0raW5zdGFuY2VzPSIiCi0g bmluc3Q9MAotLWZvciBkaXIgaW4gJGluc3RiYXNlL3NsYXBkLSogOyBkbwotLSAgICBlY2hvIGRp ciA9ICRkaXIgPj4gJG91dHB1dCAyPiYxIHx8IDoKLSsKLStmb3IgZGlyIGluICIkaW5zdGJhc2Ui L3NsYXBkLSogOyBkbwotKyAgICBlY2hvICJkaXIgPSAkZGlyIiA+PiAiJG91dHB1dCIgMj4mMSB8 fCA6Ci0gICAgIGlmIFsgISAtZCAiJGRpciIgXSA7IHRoZW4gY29udGludWUgOyBmaQotICAgICBj YXNlICIkZGlyIiBpbiAqLnJlbW92ZWQpIGNvbnRpbnVlIDs7IGVzYWMKLS0gICAgYmFzZW5hbWU9 YGJhc2VuYW1lICRkaXJgCi0tICAgIGluc3Q9IiV7cGtnbmFtZX1AYGVjaG8gJGJhc2VuYW1lIHwg c2VkIC1lICdzL3NsYXBkLS8vZydgIgotLSAgICBlY2hvIGZvdW5kIGluc3RhbmNlICRpbnN0IC0g Z2V0dGluZyBzdGF0dXMgID4+ICRvdXRwdXQgMj4mMSB8fCA6Ci0tICAgIGlmIC9iaW4vc3lzdGVt Y3RsIC1xIGlzLWFjdGl2ZSAkaW5zdCA7IHRoZW4KLS0gICAgICAgZWNobyBpbnN0YW5jZSAkaW5z dCBpcyBydW5uaW5nID4+ICRvdXRwdXQgMj4mMSB8fCA6Ci0rICAgIGJhc2VuYW1lPSQoYmFzZW5h bWUgIiRkaXIiKQotKyAgICBpbnN0PSIle3BrZ25hbWV9QCR7YmFzZW5hbWUjc2xhcGQtfSIKLSsg ICAgaW5zdF9uYW1lPSIke2Jhc2VuYW1lI3NsYXBkLX0iCi0rICAgIGVjaG8gImZvdW5kIGluc3Rh bmNlICRpbnN0IC0gZ2V0dGluZyBzdGF0dXMiID4+ICIkb3V0cHV0IiAyPiYxIHx8IDoKLSsgICAg aWYgL2Jpbi9zeXN0ZW1jdGwgLXEgaXMtYWN0aXZlICIkaW5zdCIgOyB0aGVuCi0rICAgICAgIGVj aG8gImluc3RhbmNlICRpbnN0IGlzIHJ1bm5pbmcgLSBzdG9wcGluZyBmb3IgdXBncmFkZSIgPj4g IiRvdXRwdXQiIDI+JjEgfHwgOgotICAgICAgICBpbnN0YW5jZXM9IiRpbnN0YW5jZXMgJGluc3Qi Ci0rICAgICAgIC9iaW4vc3lzdGVtY3RsIHN0b3AgIiRpbnN0IiA+PiAiJG91dHB1dCIgMj4mMSB8 fCA6Ci0gICAgIGVsc2UKLS0gICAgICAgZWNobyBpbnN0YW5jZSAkaW5zdCBpcyBub3QgcnVubmlu ZyA+PiAkb3V0cHV0IDI+JjEgfHwgOgotKyAgICAgICBlY2hvICJpbnN0YW5jZSAkaW5zdCBpcyBu b3QgcnVubmluZyIgPj4gIiRvdXRwdXQiIDI+JjEgfHwgOgotICAgICBmaQotLSAgICBuaW5zdD1g ZXhwciAkbmluc3QgKyAxYAotKyAgICAjIFJ1biBpbmRleC1jaGVjayBvbiBhbGwgaW5zdGFuY2Vz IChydW5uaW5nIG9yIG5vdCkKLSsgICAgIyBUaGlzIGZpeGVzIGluZGV4IG9yZGVyaW5nIG1pc21h dGNoZXMgZnJvbSBvbGRlciB2ZXJzaW9ucwotKyAgICBkc2N0bCAiJGluc3RfbmFtZSIgaW5kZXgt Y2hlY2sgLS1maXggPj4gIiRvdXRwdXQyIiAyPiYxIHx8IDoKLSsgICAgbmluc3Q9JCgobmluc3Qg KyAxKSkKLSBkb25lCi0rCi0gaWYgWyAkbmluc3QgLWVxIDAgXSA7IHRoZW4KLS0gICAgZWNobyBu byBpbnN0YW5jZXMgdG8gdXBncmFkZSA+PiAkb3V0cHV0IDI+JjEgfHwgOgotLSAgICBleGl0IDAg IyBoYXZlIG5vIGluc3RhbmNlcyB0byB1cGdyYWRlIC0ganVzdCBza2lwIHRoZSByZXN0Ci0tZWxz ZQotLSAgICAjIHJlc3RhcnQgcnVubmluZyBpbnN0YW5jZXMKLS0gICAgZWNobyBzaHV0dGluZyBk b3duIGFsbCBpbnN0YW5jZXMgLiAuIC4gPj4gJG91dHB1dCAyPiYxIHx8IDoKLS0gICAgZm9yIGlu c3QgaW4gJGluc3RhbmNlcyA7IGRvCi0tICAgICAgICBlY2hvIHN0b3BwaW5nIGluc3RhbmNlICRp bnN0ID4+ICRvdXRwdXQgMj4mMSB8fCA6Ci0tICAgICAgICAvYmluL3N5c3RlbWN0bCBzdG9wICRp bnN0ID4+ICRvdXRwdXQgMj4mMSB8fCA6Ci0tICAgIGRvbmUKLS0gICAgZm9yIGluc3QgaW4gJGlu c3RhbmNlcyA7IGRvCi0tICAgICAgICBlY2hvIHN0YXJ0aW5nIGluc3RhbmNlICRpbnN0ID4+ICRv dXRwdXQgMj4mMSB8fCA6Ci0tICAgICAgICAvYmluL3N5c3RlbWN0bCBzdGFydCAkaW5zdCA+PiAk b3V0cHV0IDI+JjEgfHwgOgotLSAgICBkb25lCi0rICAgIGVjaG8gIm5vIGluc3RhbmNlcyB0byB1 cGdyYWRlIiA+PiAiJG91dHB1dCIgMj4mMSB8fCA6Ci0rICAgIGV4aXQgMAotIGZpCi0gCi0rIyBS ZXN0YXJ0IHByZXZpb3VzbHkgcnVubmluZyBpbnN0YW5jZXMKLStmb3IgaW5zdCBpbiAkaW5zdGFu Y2VzIDsgZG8KLSsgICAgZWNobyAic3RhcnRpbmcgaW5zdGFuY2UgJGluc3QiID4+ICIkb3V0cHV0 IiAyPiYxIHx8IDoKLSsgICAgL2Jpbi9zeXN0ZW1jdGwgc3RhcnQgIiRpbnN0IiA+PiAiJG91dHB1 dCIgMj4mMSB8fCA6Ci0rZG9uZQotKwotIAotICVwcmV1bgotIGlmIFsgJDEgLWVxIDAgXTsgdGhl biAjIEZpbmFsIHJlbW92YWwKLWRpZmYgLS1naXQgYS9zcmMvbGliMzg5L2xpYjM4OS9jbGlfY3Rs L2RidGFza3MucHkgYi9zcmMvbGliMzg5L2xpYjM4OS9jbGlfY3RsL2RidGFza3MucHkKLWluZGV4 IDg1NjYzOTY3Mi4uMTZkYTk2NmQxIDEwMDY0NAotLS0tIGEvc3JjL2xpYjM4OS9saWIzODkvY2xp X2N0bC9kYnRhc2tzLnB5Ci0rKysgYi9zcmMvbGliMzg5L2xpYjM4OS9jbGlfY3RsL2RidGFza3Mu cHkKLUBAIC03LDEyICs3LDI0IEBACi0gIyBTZWUgTElDRU5TRSBmb3IgZGV0YWlscy4KLSAjIC0t LSBFTkQgQ09QWVJJR0hUIEJMT0NLIC0tLQotIAotK2ltcG9ydCBnbG9iCi0gaW1wb3J0IG9zCi0r aW1wb3J0IHJlCi0raW1wb3J0IHN1YnByb2Nlc3MKLStmcm9tIGVudW0gaW1wb3J0IEVudW0KLSBm cm9tIGxpYjM4OS5fY29uc3RhbnRzIGltcG9ydCBUYXNrV2FybmluZwotIGZyb20gbGliMzg5LmNs aV9iYXNlIGltcG9ydCBDdXN0b21IZWxwRm9ybWF0dGVyCi0rZnJvbSBsaWIzODkuZHNlbGRpZiBp bXBvcnQgRFNFbGRpZgotIGZyb20gcGF0aGxpYiBpbXBvcnQgUGF0aAotIAotIAotK2NsYXNzIElu ZGV4T3JkZXJpbmcoRW51bSk6Ci0rICAgICIiIlJlcHJlc2VudHMgdGhlIG9yZGVyaW5nIHR5cGUg b2YgYW4gaW5kZXguIiIiCi0rICAgIElOVEVHRVIgPSAiaW50ZWdlciIKLSsgICAgTEVYSUNPR1JB UEhJQyA9ICJsZXhpY29ncmFwaGljIgotKyAgICBVTktOT1dOID0gInVua25vd24iCi0rCi0rCi0g ZGVmIGRidGFza3NfZGIyaW5kZXgoaW5zdCwgbG9nLCBhcmdzKToKLSAgICAgcnRuID0gRmFsc2UK LSAgICAgaWYgbm90IGFyZ3MuYmFja2VuZDoKLUBAIC0xMjYsNiArMTM4LDM4NyBAQCBkZWYgZGJ0 YXNrc192ZXJpZnkoaW5zdCwgbG9nLCBhcmdzKToKLSAgICAgICAgIGxvZy5pbmZvKCJkYnZlcmlm eSBzdWNjZXNzZnVsIikKLSAKLSAKLStkZWYgX2dldF9kYl9kaXIoZHNlX2xkaWYpOgotKyAgICAi IiJHZXQgdGhlIGRhdGFiYXNlIGRpcmVjdG9yeS4KLSsKLSsgICAgQXJnczoKLSsgICAgICAgIGRz ZV9sZGlmOiBEU0VsZGlmIGluc3RhbmNlLgotKwotKyAgICBSZXR1cm5zOgotKyAgICAgICAgUGF0 aCB0byB0aGUgZGF0YWJhc2UgZGlyZWN0b3J5LCBvciBOb25lIGlmIG5vdCBmb3VuZC4KLSsgICAg IiIiCi0rICAgIHRyeToKLSsgICAgICAgIGRiX2RpciA9IGRzZV9sZGlmLmdldCgKLSsgICAgICAg ICAgICAiY249Y29uZmlnLGNuPWxkYm0gZGF0YWJhc2UsY249cGx1Z2lucyxjbj1jb25maWciLAot KyAgICAgICAgICAgICJuc3NsYXBkLWRpcmVjdG9yeSIsCi0rICAgICAgICAgICAgc2luZ2xlPVRy dWUsCi0rICAgICAgICApCi0rICAgICAgICByZXR1cm4gZGJfZGlyCi0rICAgIGV4Y2VwdCAoVmFs dWVFcnJvciwgVHlwZUVycm9yKToKLSsgICAgICAgIHBhc3MKLSsgICAgcmV0dXJuIE5vbmUKLSsK LSsKLSsKLStkZWYgX2hhc19pbnRlZ2VyX29yZGVyaW5nX21hdGNoKGRzZV9sZGlmLCBiYWNrZW5k LCBpbmRleF9uYW1lKToKLSsgICAgIiIiQ2hlY2sgaWYgYW4gaW5kZXggaGFzIGludGVnZXJPcmRl cmluZ01hdGNoIGNvbmZpZ3VyZWQgaW4gRFNFLgotKwotKyAgICBBcmdzOgotKyAgICAgICAgZHNl X2xkaWY6IERTRWxkaWYgaW5zdGFuY2UuCi0rICAgICAgICBiYWNrZW5kOiBCYWNrZW5kIG5hbWUu Ci0rICAgICAgICBpbmRleF9uYW1lOiBOYW1lIG9mIHRoZSBpbmRleCB0byBjaGVjay4KLSsKLSsg ICAgUmV0dXJuczoKLSsgICAgICAgIFRydWUgaWYgaW50ZWdlck9yZGVyaW5nTWF0Y2ggaXMgY29u ZmlndXJlZCwgRmFsc2Ugb3RoZXJ3aXNlLgotKyAgICAiIiIKLSsgICAgaW5kZXhfZG4gPSAiY249 e30sY249aW5kZXgsY249e30sY249bGRibSBkYXRhYmFzZSxjbj1wbHVnaW5zLGNuPWNvbmZpZyIu Zm9ybWF0KAotKyAgICAgICAgaW5kZXhfbmFtZSwgYmFja2VuZAotKyAgICApCi0rICAgIG1hdGNo aW5nX3J1bGVzID0gZHNlX2xkaWYuZ2V0KGluZGV4X2RuLCAibnNNYXRjaGluZ1J1bGUiLCBsb3dl cj1UcnVlKQotKyAgICBpZiBtYXRjaGluZ19ydWxlczoKLSsgICAgICAgIHJldHVybiBhbnkobXIu bG93ZXIoKSA9PSAiaW50ZWdlcm9yZGVyaW5nbWF0Y2giIGZvciBtciBpbiBtYXRjaGluZ19ydWxl cykKLSsgICAgcmV0dXJuIEZhbHNlCi0rCi0rCi0rZGVmIF9oYXNfaW5kZXhfc2Nhbl9saW1pdChk c2VfbGRpZiwgYmFja2VuZCwgaW5kZXhfbmFtZSk6Ci0rICAgICIiIkNoZWNrIGlmIGFuIGluZGV4 IGhhcyBuc0luZGV4SURMaXN0U2NhbkxpbWl0IGNvbmZpZ3VyZWQuCi0rCi0rICAgIEFyZ3M6Ci0r ICAgICAgICBkc2VfbGRpZjogRFNFbGRpZiBpbnN0YW5jZS4KLSsgICAgICAgIGJhY2tlbmQ6IEJh Y2tlbmQgbmFtZS4KLSsgICAgICAgIGluZGV4X25hbWU6IE5hbWUgb2YgdGhlIGluZGV4IHRvIGNo ZWNrLgotKwotKyAgICBSZXR1cm5zOgotKyAgICAgICAgVHJ1ZSBpZiBuc0luZGV4SURMaXN0U2Nh bkxpbWl0IGlzIGNvbmZpZ3VyZWQsIEZhbHNlIG90aGVyd2lzZS4KLSsgICAgIiIiCi0rICAgIGlu ZGV4X2RuID0gImNuPXt9LGNuPWluZGV4LGNuPXt9LGNuPWxkYm0gZGF0YWJhc2UsY249cGx1Z2lu cyxjbj1jb25maWciLmZvcm1hdCgKLSsgICAgICAgIGluZGV4X25hbWUsIGJhY2tlbmQKLSsgICAg KQotKyAgICBzY2FuX2xpbWl0ID0gZHNlX2xkaWYuZ2V0KGluZGV4X2RuLCAibnNJbmRleElETGlz dFNjYW5MaW1pdCIpCi0rICAgIHJldHVybiBzY2FuX2xpbWl0IGlzIG5vdCBOb25lCi0rCi0rCi0r ZGVmIF9pbmRleF9jb25maWdfZXhpc3RzKGRzZV9sZGlmLCBiYWNrZW5kLCBpbmRleF9uYW1lKToK LSsgICAgIiIiQ2hlY2sgaWYgYW4gaW5kZXggY29uZmlndXJhdGlvbiBlbnRyeSBleGlzdHMgaW4g RFNFLgotKwotKyAgICBBcmdzOgotKyAgICAgICAgZHNlX2xkaWY6IERTRWxkaWYgaW5zdGFuY2Uu Ci0rICAgICAgICBiYWNrZW5kOiBCYWNrZW5kIG5hbWUuCi0rICAgICAgICBpbmRleF9uYW1lOiBO YW1lIG9mIHRoZSBpbmRleCB0byBjaGVjay4KLSsKLSsgICAgUmV0dXJuczoKLSsgICAgICAgIFRy dWUgaWYgdGhlIGluZGV4IGNvbmZpZyBlbnRyeSBleGlzdHMsIEZhbHNlIG90aGVyd2lzZS4KLSsg ICAgIiIiCi0rICAgIGluZGV4X2RuID0gImNuPXt9LGNuPWluZGV4LGNuPXt9LGNuPWxkYm0gZGF0 YWJhc2UsY249cGx1Z2lucyxjbj1jb25maWciLmZvcm1hdCgKLSsgICAgICAgIGluZGV4X25hbWUs IGJhY2tlbmQKLSsgICAgKQotKyAgICB0cnk6Ci0rICAgICAgICBjbiA9IGRzZV9sZGlmLmdldChp bmRleF9kbiwgImNuIikKLSsgICAgICAgIHJldHVybiBjbiBpcyBub3QgTm9uZQotKyAgICBleGNl cHQgKFZhbHVlRXJyb3IsIEtleUVycm9yKToKLSsgICAgICAgIHJldHVybiBGYWxzZQotKwotKwot K2RlZiBfZGVmYXVsdF9pbmRleF9leGlzdHMoZHNlX2xkaWYsIGluZGV4X25hbWUpOgotKyAgICAi IiJDaGVjayBpZiBhbiBpbmRleCBleGlzdHMgaW4gY249ZGVmYXVsdCBpbmRleGVzLgotKwotKyAg ICBBcmdzOgotKyAgICAgICAgZHNlX2xkaWY6IERTRWxkaWYgaW5zdGFuY2UuCi0rICAgICAgICBp bmRleF9uYW1lOiBOYW1lIG9mIHRoZSBpbmRleCB0byBjaGVjay4KLSsKLSsgICAgUmV0dXJuczoK LSsgICAgICAgIFRydWUgaWYgdGhlIGluZGV4IGV4aXN0cyBpbiBkZWZhdWx0IGluZGV4ZXMsIEZh bHNlIG90aGVyd2lzZS4KLSsgICAgIiIiCi0rICAgIGluZGV4X2RuID0gImNuPXt9LGNuPWRlZmF1 bHQgaW5kZXhlcyxjbj1jb25maWcsY249bGRibSBkYXRhYmFzZSxjbj1wbHVnaW5zLGNuPWNvbmZp ZyIuZm9ybWF0KAotKyAgICAgICAgaW5kZXhfbmFtZQotKyAgICApCi0rICAgIHRyeToKLSsgICAg ICAgIGNuID0gZHNlX2xkaWYuZ2V0KGluZGV4X2RuLCAiY24iKQotKyAgICAgICAgcmV0dXJuIGNu IGlzIG5vdCBOb25lCi0rICAgIGV4Y2VwdCAoVmFsdWVFcnJvciwgS2V5RXJyb3IpOgotKyAgICAg ICAgcmV0dXJuIEZhbHNlCi0rCi0rCi0rZGVmIF9jaGVja19kaXNrX29yZGVyaW5nKGRiX2Rpciwg YmFja2VuZCwgaW5kZXhfbmFtZSwgZGJzY2FuX3BhdGgsIGlzX21kYiwgbG9nKToKLSsgICAgIiIi Q2hlY2sgaWYgaW5kZXggb24gZGlzayB1c2VzIGxleGljb2dyYXBoaWMgb3IgaW50ZWdlciBvcmRl cmluZy4KLSsKLSsgICAgQXJnczoKLSsgICAgICAgIGRiX2RpcjogUGF0aCB0byB0aGUgZGF0YWJh c2UgZGlyZWN0b3J5LgotKyAgICAgICAgYmFja2VuZDogQmFja2VuZCBuYW1lLgotKyAgICAgICAg aW5kZXhfbmFtZTogTmFtZSBvZiB0aGUgaW5kZXggdG8gY2hlY2suCi0rICAgICAgICBkYnNjYW5f cGF0aDogUGF0aCB0byB0aGUgZGJzY2FuIGJpbmFyeS4KLSsgICAgICAgIGlzX21kYjogVHJ1ZSBp ZiB1c2luZyBNREIgYmFja2VuZC4KLSsgICAgICAgIGxvZzogTG9nZ2VyIGluc3RhbmNlLgotKwot KyAgICBSZXR1cm5zOgotKyAgICAgICAgSW5kZXhPcmRlcmluZzogVGhlIGRldGVjdGVkIG9yZGVy aW5nIHR5cGUuCi0rICAgICIiIgotKyAgICBpZiBpc19tZGI6Ci0rICAgICAgICAjIE1EQiB1c2Vz IHBzZXVkby1wYXRoczogZGJfZGlyL2JhY2tlbmQvaW5kZXguZGIKLSsgICAgICAgICMgZGJzY2Fu IGFjY2Vzc2VzIGluZGV4ZXMgdmlhIHBhdGhzIGxpa2U6IC92YXIvbGliL2RpcnNydi9zbGFwZC14 eHgvZGIvdXNlcnJvb3QvcGFyZW50aWQuZGIKLSsgICAgICAgIGluZGV4X2ZpbGUgPSBvcy5wYXRo LmpvaW4oZGJfZGlyLCBiYWNrZW5kLCAie30uZGIiLmZvcm1hdChpbmRleF9uYW1lKSkKLSsgICAg ZWxzZToKLSsgICAgICAgICMgQkRCIGhhcyBzZXBhcmF0ZSBkaXJlY3RvcmllcyBwZXIgYmFja2Vu ZCB3aXRoIGFjdHVhbCBpbmRleCBmaWxlcwotKyAgICAgICAgYmFja2VuZF9kaXIgPSBvcy5wYXRo LmpvaW4oZGJfZGlyLCBiYWNrZW5kKQotKyAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGJh Y2tlbmRfZGlyKToKLSsgICAgICAgICAgICByZXR1cm4gSW5kZXhPcmRlcmluZy5VTktOT1dOCi0r ICAgICAgICBpbmRleF9maWxlID0gTm9uZQotKyAgICAgICAgcGF0dGVybiA9IG9zLnBhdGguam9p bihiYWNrZW5kX2RpciwgInt9LmRiKiIuZm9ybWF0KGluZGV4X25hbWUpKQotKyAgICAgICAgZm9y IGYgaW4gZ2xvYi5nbG9iKHBhdHRlcm4pOgotKyAgICAgICAgICAgIGlmIG9zLnBhdGguaXNmaWxl KGYpOgotKyAgICAgICAgICAgICAgICBpbmRleF9maWxlID0gZgotKyAgICAgICAgICAgICAgICBi cmVhawotKyAgICAgICAgaWYgbm90IGluZGV4X2ZpbGU6Ci0rICAgICAgICAgICAgcmV0dXJuIElu ZGV4T3JkZXJpbmcuVU5LTk9XTgotKwotKyAgICB0cnk6Ci0rICAgICAgICByZXN1bHQgPSBzdWJw cm9jZXNzLnJ1bigKLSsgICAgICAgICAgICBbZGJzY2FuX3BhdGgsICItZiIsIGluZGV4X2ZpbGVd LAotKyAgICAgICAgICAgIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsCi0rICAgICAgICAgICAgc3Rk ZXJyPXN1YnByb2Nlc3MuUElQRSwKLSsgICAgICAgICAgICB1bml2ZXJzYWxfbmV3bGluZXM9VHJ1 ZSwKLSsgICAgICAgICAgICB0aW1lb3V0PTYwLAotKyAgICAgICAgKQotKwotKyAgICAgICAgaWYg cmVzdWx0LnJldHVybmNvZGUgIT0gMDoKLSsgICAgICAgICAgICBsb2cud2FybmluZygiICBkYnNj YW4gcmV0dXJuZWQgbm9uLXplcm8gZXhpdCBjb2RlIGZvciAlcyIsIGluZGV4X2ZpbGUpCi0rICAg ICAgICAgICAgcmV0dXJuIEluZGV4T3JkZXJpbmcuVU5LTk9XTgotKwotKyAgICAgICAgIyBQYXJz ZSBrZXlzIGZyb20gZGJzY2FuIG91dHB1dAotKyAgICAgICAga2V5cyA9IFtdCi0rICAgICAgICBm b3IgbGluZSBpbiByZXN1bHQuc3Rkb3V0LnNwbGl0KCJcbiIpOgotKyAgICAgICAgICAgIGxpbmUg PSBsaW5lLnN0cmlwKCkKLSsgICAgICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoIj0iKToKLSsg ICAgICAgICAgICAgICAgbWF0Y2ggPSByZS5tYXRjaChyIl49KFxkKykiLCBsaW5lKQotKyAgICAg ICAgICAgICAgICBpZiBtYXRjaDoKLSsgICAgICAgICAgICAgICAgICAgIGtleXMuYXBwZW5kKGlu dChtYXRjaC5ncm91cCgxKSkpCi0rCi0rICAgICAgICBpZiBsZW4oa2V5cykgPCAyOgotKyAgICAg ICAgICAgIHJldHVybiBJbmRleE9yZGVyaW5nLlVOS05PV04KLSsKLSsgICAgICAgICMgQ2hlY2sg aWYga2V5cyBhcmUgaW4gaW50ZWdlciBvcmRlciBieSBsb29raW5nIGZvciBkZWNyZWFzaW5nIG51 bWVyaWMgdmFsdWVzCi0rICAgICAgICAjICh3aGljaCB3b3VsZCBpbmRpY2F0ZSBsZXhpY29ncmFw aGljIG9yZGVyaW5nLCBlLmcuLCAiMyIgPCAiMzAiIDwgIjQiKQotKyAgICAgICAgcHJldl9pZCA9 IGtleXNbMF0KLSsgICAgICAgIGZvciBpIGluIHJhbmdlKDEsIG1pbihsZW4oa2V5cyksIDEwMCkp OgotKyAgICAgICAgICAgIGN1cnJlbnRfaWQgPSBrZXlzW2ldCi0rICAgICAgICAgICAgaWYgcHJl dl9pZCA+IGN1cnJlbnRfaWQ6Ci0rICAgICAgICAgICAgICAgIHJldHVybiBJbmRleE9yZGVyaW5n LkxFWElDT0dSQVBISUMKLSsgICAgICAgICAgICBwcmV2X2lkID0gY3VycmVudF9pZAotKwotKyAg ICAgICAgcmV0dXJuIEluZGV4T3JkZXJpbmcuSU5URUdFUgotKwotKyAgICBleGNlcHQgc3VicHJv Y2Vzcy5UaW1lb3V0RXhwaXJlZDoKLSsgICAgICAgIGxvZy53YXJuaW5nKCIgIGRic2NhbiB0aW1l ZCBvdXQgZm9yICVzIiwgaW5kZXhfZmlsZSkKLSsgICAgICAgIHJldHVybiBJbmRleE9yZGVyaW5n LlVOS05PV04KLSsgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKLSsgICAgICAgIGxvZy53YXJuaW5n KCIgIEVycm9yIHJ1bm5pbmcgZGJzY2FuOiAlcyIsIGUpCi0rICAgICAgICByZXR1cm4gSW5kZXhP cmRlcmluZy5VTktOT1dOCi0rCi0rCi0rZGVmIGRidGFza3NfaW5kZXhfY2hlY2soaW5zdCwgbG9n LCBhcmdzKToKLSsgICAgIiIiQ2hlY2sgYW5kIG9wdGlvbmFsbHkgZml4IGluZGV4IG9yZGVyaW5n IG1pc21hdGNoZXMuCi0rCi0rICAgIFRoaXMgZnVuY3Rpb24gZGV0ZWN0cyBtaXNtYXRjaGVzIGJl dHdlZW4gdGhlIGNvbmZpZ3VyZWQgb3JkZXJpbmcKLSsgICAgKGludGVnZXJPcmRlcmluZ01hdGNo IGluIERTRSkgYW5kIHRoZSBhY3R1YWwgb24tZGlzayBvcmRlcmluZyBvZgotKyAgICBwYXJlbnRp ZCBhbmQgYW5jZXN0b3JpZCBpbmRleGVzLgotKwotKyAgICBBcmdzOgotKyAgICAgICAgaW5zdDog RGlyU3J2IGluc3RhbmNlLgotKyAgICAgICAgbG9nOiBMb2dnZXIgaW5zdGFuY2UuCi0rICAgICAg ICBhcmdzOiBQYXJzZWQgY29tbWFuZCBsaW5lIGFyZ3VtZW50cy4KLSsKLSsgICAgUmV0dXJuczoK LSsgICAgICAgIFRydWUgaWYgYWxsIGNoZWNrcyBwYXNzZWQsIEZhbHNlIGlmIG1pc21hdGNoZXMg d2VyZSBkZXRlY3RlZC4KLSsgICAgIiIiCi0rICAgICMgU2VydmVyIG11c3QgYmUgc3RvcHBlZAot KyAgICBpZiBpbnN0LnN0YXR1cygpOgotKyAgICAgICAgbG9nLmVycm9yKCJpbmRleC1jaGVjayBy ZXF1aXJlcyB0aGUgaW5zdGFuY2UgdG8gYmUgc3RvcHBlZCIpCi0rICAgICAgICByZXR1cm4gRmFs c2UKLSsKLSsgICAgIyBDaGVjayBmb3IgZGJzY2FuIGJpbmFyeQotKyAgICBkYnNjYW5fcGF0aCA9 IG9zLnBhdGguam9pbihpbnN0LmRzX3BhdGhzLmJpbl9kaXIsICJkYnNjYW4iKQotKyAgICBpZiBu b3Qgb3MucGF0aC5leGlzdHMoZGJzY2FuX3BhdGgpOgotKyAgICAgICAgbG9nLmVycm9yKCJkYnNj YW4gdXRpbGl0eSBub3QgZm91bmQgYXQgJXMiLCBkYnNjYW5fcGF0aCkKLSsgICAgICAgIHJldHVy biBGYWxzZQotKwotKyAgICAjIExvYWQgRFNFCi0rICAgIHRyeToKLSsgICAgICAgIGRzZV9sZGlm ID0gRFNFbGRpZihpbnN0KQotKyAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0rICAgICAgICBs b2cuZXJyb3IoIkZhaWxlZCB0byByZWFkIGRzZS5sZGlmOiAlcyIsIGUpCi0rICAgICAgICByZXR1 cm4gRmFsc2UKLSsKLSsgICAgIyBHZXQgYmFja2VuZHMgdG8gY2hlY2sKLSsgICAgYWxsX2JhY2tl bmRzID0gZHNlX2xkaWYuZ2V0X2JhY2tlbmRzKCkKLSsgICAgaWYgbm90IGFsbF9iYWNrZW5kczoK LSsgICAgICAgIGxvZy5pbmZvKCJObyBiYWNrZW5kcyBmb3VuZCIpCi0rICAgICAgICByZXR1cm4g VHJ1ZQotKwotKyAgICAjIEZpbHRlciB0byBzcGVjaWZpYyBiYWNrZW5kIGlmIHJlcXVlc3RlZAot KyAgICBpZiBhcmdzLmJhY2tlbmQ6Ci0rICAgICAgICAjIENhc2UtaW5zZW5zaXRpdmUgYmFja2Vu ZCBsb29rdXAKLSsgICAgICAgIGJhY2tlbmRfbG93ZXIgPSBhcmdzLmJhY2tlbmQubG93ZXIoKQot KyAgICAgICAgbWF0Y2hpbmdfYmFja2VuZCA9IE5vbmUKLSsgICAgICAgIGZvciBiZSBpbiBhbGxf YmFja2VuZHM6Ci0rICAgICAgICAgICAgaWYgYmUubG93ZXIoKSA9PSBiYWNrZW5kX2xvd2VyOgot KyAgICAgICAgICAgICAgICBtYXRjaGluZ19iYWNrZW5kID0gYmUKLSsgICAgICAgICAgICAgICAg YnJlYWsKLSsgICAgICAgIGlmIG1hdGNoaW5nX2JhY2tlbmQgaXMgTm9uZToKLSsgICAgICAgICAg ICBsb2cuZXJyb3IoIkJhY2tlbmQgJyVzJyBub3QgZm91bmQuIEF2YWlsYWJsZSBiYWNrZW5kczog JXMiLAotKyAgICAgICAgICAgICAgICAgICAgICBhcmdzLmJhY2tlbmQsICIsICIuam9pbihhbGxf YmFja2VuZHMpKQotKyAgICAgICAgICAgIHJldHVybiBGYWxzZQotKyAgICAgICAgYmFja2VuZHNf dG9fY2hlY2sgPSBbbWF0Y2hpbmdfYmFja2VuZF0KLSsgICAgZWxzZToKLSsgICAgICAgIGJhY2tl bmRzX3RvX2NoZWNrID0gYWxsX2JhY2tlbmRzCi0rCi0rICAgICMgR2V0IGRhdGFiYXNlIGRpcmVj dG9yeSBhbmQgY2hlY2sgZGF0YWJhc2UgdHlwZQotKyAgICBkYl9kaXIgPSBfZ2V0X2RiX2Rpcihk c2VfbGRpZikKLSsgICAgaWYgbm90IGRiX2RpciBvciBub3Qgb3MucGF0aC5leGlzdHMoZGJfZGly KToKLSsgICAgICAgIGxvZy5lcnJvcigiRGF0YWJhc2UgZGlyZWN0b3J5IG5vdCBmb3VuZCIpCi0r ICAgICAgICByZXR1cm4gRmFsc2UKLSsKLSsgICAgZGJfbGliID0gaW5zdC5nZXRfZGJfbGliKCkK LSsgICAgaXNfbWRiID0gKGRiX2xpYiA9PSAibWRiIikKLSsgICAgbG9nLmluZm8oIkRhdGFiYXNl IHR5cGU6ICVzIiwgZGJfbGliLnVwcGVyKCkpCi0rCi0rICAgICMgVHJhY2sgYWxsIGlzc3VlcyBm b3VuZAotKyAgICBhbGxfb2sgPSBUcnVlCi0rICAgIG1pc21hdGNoZXMgPSBbXSAgIyAoYmFja2Vu ZCwgaW5kZXhfbmFtZSkgdHVwbGVzIG5lZWRpbmcgcmVpbmRleAotKyAgICBtaXNzaW5nX21hdGNo aW5nX3J1bGVzID0gW10gICMgKGJhY2tlbmQsIGluZGV4X25hbWUpIHR1cGxlcyBtaXNzaW5nIGlu dGVnZXJPcmRlcmluZ01hdGNoCi0rICAgIHNjYW5fbGltaXRzX3RvX3JlbW92ZSA9IFtdICAjIChi YWNrZW5kLCBpbmRleF9uYW1lKSB0dXBsZXMgd2l0aCBuc0luZGV4SURMaXN0U2NhbkxpbWl0Ci0r ICAgIGFuY2VzdG9yaWRfY29uZmlnc190b19yZW1vdmUgPSBbXSAgIyBiYWNrZW5kIG5hbWVzIHdp dGggYW5jZXN0b3JpZCBjb25maWcgZW50cmllcwotKyAgICByZW1vdmVfYW5jZXN0b3JpZF9mcm9t X2RlZmF1bHRzID0gRmFsc2UgICMgRmxhZyB0byByZW1vdmUgZnJvbSBjbj1kZWZhdWx0IGluZGV4 ZXMKLSsKLSsgICAgIyBDaGVjayBpZiBhbmNlc3RvcmlkIGV4aXN0cyBpbiBjbj1kZWZhdWx0IGlu ZGV4ZXMgKHNob3VsZCBiZSByZW1vdmVkKQotKyAgICBpZiBfZGVmYXVsdF9pbmRleF9leGlzdHMo ZHNlX2xkaWYsICJhbmNlc3RvcmlkIik6Ci0rICAgICAgICBsb2cud2FybmluZygiYW5jZXN0b3Jp ZCBmb3VuZCBpbiBjbj1kZWZhdWx0IGluZGV4ZXMgLSBzaG91bGQgYmUgcmVtb3ZlZCIpCi0rICAg ICAgICByZW1vdmVfYW5jZXN0b3JpZF9mcm9tX2RlZmF1bHRzID0gVHJ1ZQotKyAgICAgICAgYWxs X29rID0gRmFsc2UKLSsKLSsgICAgZm9yIGJhY2tlbmQgaW4gYmFja2VuZHNfdG9fY2hlY2s6Ci0r ICAgICAgICBsb2cuaW5mbygiQ2hlY2tpbmcgYmFja2VuZDogJXMiLCBiYWNrZW5kKQotKwotKyAg ICAgICAgIyBDaGVjayBmb3IgYW5jZXN0b3JpZCBjb25maWcgZW50cnkgKHNob3VsZCBub3QgZXhp c3QpCi0rICAgICAgICBpZiBfaW5kZXhfY29uZmlnX2V4aXN0cyhkc2VfbGRpZiwgYmFja2VuZCwg ImFuY2VzdG9yaWQiKToKLSsgICAgICAgICAgICBsb2cud2FybmluZygiICBhbmNlc3RvcmlkIC0g Y29uZmlnIGVudHJ5IGV4aXN0cyAoc2hvdWxkIGJlIHJlbW92ZWQpIikKLSsgICAgICAgICAgICBh bmNlc3RvcmlkX2NvbmZpZ3NfdG9fcmVtb3ZlLmFwcGVuZChiYWNrZW5kKQotKyAgICAgICAgICAg IGFsbF9vayA9IEZhbHNlCi0rCi0rICAgICAgICAjIENoZWNrIHBhcmVudGlkIGFuZCBhbmNlc3Rv cmlkIGluZGV4ZXMKLSsgICAgICAgIGZvciBpbmRleF9uYW1lIGluIFsicGFyZW50aWQiLCAiYW5j ZXN0b3JpZCJdOgotKyAgICAgICAgICAgICMgQ2hlY2sgZm9yIHNjYW4gbGltaXRzIChzaG91bGQg YmUgcmVtb3ZlZCkKLSsgICAgICAgICAgICBpZiBfaGFzX2luZGV4X3NjYW5fbGltaXQoZHNlX2xk aWYsIGJhY2tlbmQsIGluZGV4X25hbWUpOgotKyAgICAgICAgICAgICAgICBsb2cud2FybmluZygi ICAlcyAtIGhhcyBuc0luZGV4SURMaXN0U2NhbkxpbWl0IChzaG91bGQgYmUgcmVtb3ZlZCkiLCBp bmRleF9uYW1lKQotKyAgICAgICAgICAgICAgICBzY2FuX2xpbWl0c190b19yZW1vdmUuYXBwZW5k KChiYWNrZW5kLCBpbmRleF9uYW1lKSkKLSsgICAgICAgICAgICAgICAgYWxsX29rID0gRmFsc2UK LSsKLSsgICAgICAgICAgICAjIENoZWNrIGRpc2sgb3JkZXJpbmcKLSsgICAgICAgICAgICBkaXNr X29yZGVyaW5nID0gX2NoZWNrX2Rpc2tfb3JkZXJpbmcoZGJfZGlyLCBiYWNrZW5kLCBpbmRleF9u YW1lLCBkYnNjYW5fcGF0aCwgaXNfbWRiLCBsb2cpCi0rCi0rICAgICAgICAgICAgaWYgZGlza19v cmRlcmluZyA9PSBJbmRleE9yZGVyaW5nLlVOS05PV046Ci0rICAgICAgICAgICAgICAgIGxvZy5p bmZvKCIgICVzIC0gY291bGQgbm90IGRldGVybWluZSBkaXNrIG9yZGVyaW5nLCBza2lwcGluZyIs IGluZGV4X25hbWUpCi0rICAgICAgICAgICAgICAgICMgRm9yIHBhcmVudGlkLCBzdGlsbCBjaGVj ayBpZiBtYXRjaGluZyBydWxlIGlzIG1pc3NpbmcKLSsgICAgICAgICAgICAgICAgaWYgaW5kZXhf bmFtZSA9PSAicGFyZW50aWQiOgotKyAgICAgICAgICAgICAgICAgICAgY29uZmlnX2hhc19pbnRf b3JkZXIgPSBfaGFzX2ludGVnZXJfb3JkZXJpbmdfbWF0Y2goZHNlX2xkaWYsIGJhY2tlbmQsIGlu ZGV4X25hbWUpCi0rICAgICAgICAgICAgICAgICAgICBpZiBub3QgY29uZmlnX2hhc19pbnRfb3Jk ZXI6Ci0rICAgICAgICAgICAgICAgICAgICAgICAgbG9nLndhcm5pbmcoIiAgJXMgLSBtaXNzaW5n IGludGVnZXJPcmRlcmluZ01hdGNoIGluIGNvbmZpZyIsIGluZGV4X25hbWUpCi0rICAgICAgICAg ICAgICAgICAgICAgICAgbWlzc2luZ19tYXRjaGluZ19ydWxlcy5hcHBlbmQoKGJhY2tlbmQsIGlu ZGV4X25hbWUpKQotKyAgICAgICAgICAgICAgICAgICAgICAgIGFsbF9vayA9IEZhbHNlCi0rICAg ICAgICAgICAgICAgIGNvbnRpbnVlCi0rCi0rICAgICAgICAgICAgY29uZmlnX2hhc19pbnRfb3Jk ZXIgPSBfaGFzX2ludGVnZXJfb3JkZXJpbmdfbWF0Y2goZHNlX2xkaWYsIGJhY2tlbmQsIGluZGV4 X25hbWUpCi0rICAgICAgICAgICAgY29uZmlnX2Rlc2MgPSAiaW50ZWdlciIgaWYgY29uZmlnX2hh c19pbnRfb3JkZXIgZWxzZSAibGV4aWNvZ3JhcGhpYyIKLSsgICAgICAgICAgICBsb2cuaW5mbygi ICAlcyAtIGNvbmZpZzogJXMsIGRpc2s6ICVzIiwKLSsgICAgICAgICAgICAgICAgICAgICBpbmRl eF9uYW1lLCBjb25maWdfZGVzYywgZGlza19vcmRlcmluZy52YWx1ZSkKLSsKLSsgICAgICAgICAg ICAjIEZvciBwYXJlbnRpZCwgdGhlIGRlc2lyZWQgc3RhdGUgaXMgYWx3YXlzIGludGVnZXIgb3Jk ZXJpbmcKLSsgICAgICAgICAgICBpZiBpbmRleF9uYW1lID09ICJwYXJlbnRpZCI6Ci0rICAgICAg ICAgICAgICAgIGlmIG5vdCBjb25maWdfaGFzX2ludF9vcmRlcjoKLSsgICAgICAgICAgICAgICAg ICAgIGxvZy53YXJuaW5nKCIgICVzIC0gbWlzc2luZyBpbnRlZ2VyT3JkZXJpbmdNYXRjaCBpbiBj b25maWciLCBpbmRleF9uYW1lKQotKyAgICAgICAgICAgICAgICAgICAgaWYgKGJhY2tlbmQsIGlu ZGV4X25hbWUpIG5vdCBpbiBtaXNzaW5nX21hdGNoaW5nX3J1bGVzOgotKyAgICAgICAgICAgICAg ICAgICAgICAgIG1pc3NpbmdfbWF0Y2hpbmdfcnVsZXMuYXBwZW5kKChiYWNrZW5kLCBpbmRleF9u YW1lKSkKLSsgICAgICAgICAgICAgICAgICAgIGFsbF9vayA9IEZhbHNlCi0rCi0rICAgICAgICAg ICAgICAgIGlmIGRpc2tfb3JkZXJpbmcgPT0gSW5kZXhPcmRlcmluZy5MRVhJQ09HUkFQSElDOgot KyAgICAgICAgICAgICAgICAgICAgbG9nLndhcm5pbmcoIiAgJXMgLSBkaXNrIG9yZGVyaW5nIGlz IGxleGljb2dyYXBoaWMsIG5lZWRzIHJlaW5kZXgiLCBpbmRleF9uYW1lKQotKyAgICAgICAgICAg ICAgICAgICAgaWYgKGJhY2tlbmQsIGluZGV4X25hbWUpIG5vdCBpbiBtaXNtYXRjaGVzOgotKyAg ICAgICAgICAgICAgICAgICAgICAgIG1pc21hdGNoZXMuYXBwZW5kKChiYWNrZW5kLCBpbmRleF9u YW1lKSkKLSsgICAgICAgICAgICAgICAgICAgIGFsbF9vayA9IEZhbHNlCi0rCi0rICAgICMgSGFu ZGxlIGlzc3VlcwotKyAgICBpZiBub3QgYWxsX29rOgotKyAgICAgICAgaWYgYXJncy5maXg6Ci0r ICAgICAgICAgICAgbG9nLmluZm8oIkZpeGluZyBpc3N1ZXMuLi4iKQotKwotKyAgICAgICAgICAg ICMgUmVtb3ZlIGFuY2VzdG9yaWQgZnJvbSBjbj1kZWZhdWx0IGluZGV4ZXMKLSsgICAgICAgICAg ICBpZiByZW1vdmVfYW5jZXN0b3JpZF9mcm9tX2RlZmF1bHRzOgotKyAgICAgICAgICAgICAgICBk ZWZhdWx0X2lkeF9kbiA9ICJjbj1hbmNlc3RvcmlkLGNuPWRlZmF1bHQgaW5kZXhlcyxjbj1jb25m aWcsY249bGRibSBkYXRhYmFzZSxjbj1wbHVnaW5zLGNuPWNvbmZpZyIKLSsgICAgICAgICAgICAg ICAgbG9nLmluZm8oIiAgUmVtb3ZpbmcgYW5jZXN0b3JpZCBmcm9tIGRlZmF1bHQgaW5kZXhlcy4u LiIpCi0rICAgICAgICAgICAgICAgIHRyeToKLSsgICAgICAgICAgICAgICAgICAgIGRzZV9sZGlm LmRlbGV0ZV9kbihkZWZhdWx0X2lkeF9kbikKLSsgICAgICAgICAgICAgICAgICAgIGxvZy5pbmZv KCIgIFJlbW92ZWQgYW5jZXN0b3JpZCBmcm9tIGRlZmF1bHQgaW5kZXhlcyIpCi0rICAgICAgICAg ICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSsgICAgICAgICAgICAgICAgICAgIGxvZy5l cnJvcigiICBGYWlsZWQgdG8gcmVtb3ZlIGFuY2VzdG9yaWQgZnJvbSBkZWZhdWx0IGluZGV4ZXM6 ICVzIiwgZSkKLSsgICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQotKwotKyAgICAgICAg ICAgICMgUmVtb3ZlIHNjYW4gbGltaXRzIChvbmx5IGZvciBpbmRleGVzIHRoYXQgd29uJ3QgYmUg ZGVsZXRlZCkKLSsgICAgICAgICAgICBmb3IgYmFja2VuZCwgaW5kZXhfbmFtZSBpbiBzY2FuX2xp bWl0c190b19yZW1vdmU6Ci0rICAgICAgICAgICAgICAgICMgU2tpcCBhbmNlc3RvcmlkIGlmIHdl J3JlIGdvaW5nIHRvIGRlbGV0ZSB0aGUgd2hvbGUgZW50cnkgYW55d2F5Ci0rICAgICAgICAgICAg ICAgIGlmIGluZGV4X25hbWUgPT0gImFuY2VzdG9yaWQiIGFuZCBiYWNrZW5kIGluIGFuY2VzdG9y aWRfY29uZmlnc190b19yZW1vdmU6Ci0rICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotKyAg ICAgICAgICAgICAgICBpbmRleF9kbiA9ICJjbj17fSxjbj1pbmRleCxjbj17fSxjbj1sZGJtIGRh dGFiYXNlLGNuPXBsdWdpbnMsY249Y29uZmlnIi5mb3JtYXQoCi0rICAgICAgICAgICAgICAgICAg ICBpbmRleF9uYW1lLCBiYWNrZW5kCi0rICAgICAgICAgICAgICAgICkKLSsgICAgICAgICAgICAg ICAgbG9nLmluZm8oIiAgUmVtb3ZpbmcgbnNJbmRleElETGlzdFNjYW5MaW1pdCBmcm9tICVzIGlu IGJhY2tlbmQgJXMuLi4iLCBpbmRleF9uYW1lLCBiYWNrZW5kKQotKyAgICAgICAgICAgICAgICB0 cnk6Ci0rICAgICAgICAgICAgICAgICAgICBkc2VfbGRpZi5kZWxldGUoaW5kZXhfZG4sICJuc0lu ZGV4SURMaXN0U2NhbkxpbWl0IikKLSsgICAgICAgICAgICAgICAgICAgIGxvZy5pbmZvKCIgIFJl bW92ZWQgbnNJbmRleElETGlzdFNjYW5MaW1pdCBmcm9tICVzIiwgaW5kZXhfbmFtZSkKLSsgICAg ICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotKyAgICAgICAgICAgICAgICAgICAg bG9nLmVycm9yKCIgIEZhaWxlZCB0byByZW1vdmUgbnNJbmRleElETGlzdFNjYW5MaW1pdCBmcm9t ICVzOiAlcyIsIGluZGV4X25hbWUsIGUpCi0rICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFs c2UKLSsKLSsgICAgICAgICAgICAjIFJlbW92ZSBhbmNlc3RvcmlkIGNvbmZpZyBlbnRyaWVzIGZy b20gYmFja2VuZHMKLSsgICAgICAgICAgICBmb3IgYmFja2VuZCBpbiBhbmNlc3RvcmlkX2NvbmZp Z3NfdG9fcmVtb3ZlOgotKyAgICAgICAgICAgICAgICBpbmRleF9kbiA9ICJjbj1hbmNlc3Rvcmlk LGNuPWluZGV4LGNuPXt9LGNuPWxkYm0gZGF0YWJhc2UsY249cGx1Z2lucyxjbj1jb25maWciLmZv cm1hdChiYWNrZW5kKQotKyAgICAgICAgICAgICAgICBsb2cuaW5mbygiICBSZW1vdmluZyBhbmNl c3RvcmlkIGNvbmZpZyBlbnRyeSBmcm9tIGJhY2tlbmQgJXMuLi4iLCBiYWNrZW5kKQotKyAgICAg ICAgICAgICAgICB0cnk6Ci0rICAgICAgICAgICAgICAgICAgICBkc2VfbGRpZi5kZWxldGVfZG4o aW5kZXhfZG4pCi0rICAgICAgICAgICAgICAgICAgICBsb2cuaW5mbygiICBSZW1vdmVkIGFuY2Vz dG9yaWQgY29uZmlnIGVudHJ5IGZyb20gYmFja2VuZCAlcyIsIGJhY2tlbmQpCi0rICAgICAgICAg ICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSsgICAgICAgICAgICAgICAgICAgIGxvZy5l cnJvcigiICBGYWlsZWQgdG8gcmVtb3ZlIGFuY2VzdG9yaWQgY29uZmlnIGZyb20gYmFja2VuZCAl czogJXMiLCBiYWNrZW5kLCBlKQotKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0r Ci0rICAgICAgICAgICAgIyBBZGQgbWlzc2luZyBtYXRjaGluZyBydWxlcyB0byBkc2UubGRpZgot KyAgICAgICAgICAgIGZvciBiYWNrZW5kLCBpbmRleF9uYW1lIGluIG1pc3NpbmdfbWF0Y2hpbmdf cnVsZXM6Ci0rICAgICAgICAgICAgICAgIGluZGV4X2RuID0gImNuPXt9LGNuPWluZGV4LGNuPXt9 LGNuPWxkYm0gZGF0YWJhc2UsY249cGx1Z2lucyxjbj1jb25maWciLmZvcm1hdCgKLSsgICAgICAg ICAgICAgICAgICAgIGluZGV4X25hbWUsIGJhY2tlbmQKLSsgICAgICAgICAgICAgICAgKQotKyAg ICAgICAgICAgICAgICBsb2cuaW5mbygiICBBZGRpbmcgaW50ZWdlck9yZGVyaW5nTWF0Y2ggdG8g JXMgaW4gYmFja2VuZCAlcy4uLiIsIGluZGV4X25hbWUsIGJhY2tlbmQpCi0rICAgICAgICAgICAg ICAgIHRyeToKLSsgICAgICAgICAgICAgICAgICAgIGRzZV9sZGlmLmFkZChpbmRleF9kbiwgIm5z TWF0Y2hpbmdSdWxlIiwgImludGVnZXJPcmRlcmluZ01hdGNoIikKLSsgICAgICAgICAgICAgICAg ICAgIGxvZy5pbmZvKCIgIFVwZGF0ZWQgZHNlLmxkaWYgd2l0aCBpbnRlZ2VyT3JkZXJpbmdNYXRj aCBmb3IgJXMiLCBpbmRleF9uYW1lKQotKyAgICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9u IGFzIGU6Ci0rICAgICAgICAgICAgICAgICAgICBsb2cuZXJyb3IoIiAgRmFpbGVkIHRvIHVwZGF0 ZSBkc2UubGRpZiBmb3IgJXM6ICVzIiwgaW5kZXhfbmFtZSwgZSkKLSsgICAgICAgICAgICAgICAg ICAgIHJldHVybiBGYWxzZQotKwotKyAgICAgICAgICAgICMgUmVpbmRleCBpbmRleGVzIHdpdGgg ZGlzayBvcmRlcmluZyBpc3N1ZXMKLSsgICAgICAgICAgICBmb3IgYmFja2VuZCwgaW5kZXhfbmFt ZSBpbiBtaXNtYXRjaGVzOgotKyAgICAgICAgICAgICAgICBsb2cuaW5mbygiICBSZWluZGV4aW5n ICVzIGluIGJhY2tlbmQgJXMuLi4iLCBpbmRleF9uYW1lLCBiYWNrZW5kKQotKyAgICAgICAgICAg ICAgICBpZiBub3QgaW5zdC5kYjJpbmRleChiZW5hbWU9YmFja2VuZCwgYXR0cnM9W2luZGV4X25h bWVdKToKLSsgICAgICAgICAgICAgICAgICAgIGxvZy5lcnJvcigiICBGYWlsZWQgdG8gcmVpbmRl eCAlcyIsIGluZGV4X25hbWUpCi0rICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKLSsg ICAgICAgICAgICAgICAgbG9nLmluZm8oIiAgUmVpbmRleCBvZiAlcyBjb21wbGV0ZWQgc3VjY2Vz c2Z1bGx5IiwgaW5kZXhfbmFtZSkKLSsKLSsgICAgICAgICAgICBsb2cuaW5mbygiQWxsIGlzc3Vl cyBmaXhlZCIpCi0rICAgICAgICAgICAgcmV0dXJuIFRydWUKLSsgICAgICAgIGVsc2U6Ci0rICAg ICAgICAgICAgbG9nLmluZm8oIklzc3VlcyBkZXRlY3RlZC4gUnVuIHdpdGggLS1maXggdG8gcmVw YWlyLiIpCi0rICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0rICAgIGVsc2U6Ci0rICAgICAgICBs b2cuaW5mbygiQWxsIGNoZWNrcyBwYXNzZWQgLSBubyBpc3N1ZXMgZm91bmQiKQotKyAgICAgICAg cmV0dXJuIFRydWUKLSsKLSsKLSBkZWYgY3JlYXRlX3BhcnNlcihzdWJjb21tYW5kcyk6Ci0gICAg IGRiMmluZGV4X3BhcnNlciA9IHN1YmNvbW1hbmRzLmFkZF9wYXJzZXIoJ2RiMmluZGV4JywgaGVs cD0iSW5pdGlhbGlzZSBhIHJlaW5kZXggb2YgdGhlIHNlcnZlciBkYXRhYmFzZS4gVGhlIHNlcnZl ciBtdXN0IGJlIHN0b3BwZWQgZm9yIHRoaXMgdG8gcHJvY2VlZC4iLCBmb3JtYXR0ZXJfY2xhc3M9 Q3VzdG9tSGVscEZvcm1hdHRlcikKLSAgICAgIyBkYjJpbmRleF9wYXJzZXIuYWRkX2FyZ3VtZW50 KCdzdWZmaXgnLCBoZWxwPSJUaGUgc3VmZml4IHRvIHJlaW5kZXguIElFIGRjPWV4YW1wbGUsZGM9 Y29tLiIpCi1AQCAtMTcyLDMgKzU2NSwxMiBAQCBkZWYgY3JlYXRlX3BhcnNlcihzdWJjb21tYW5k cyk6Ci0gICAgIGxkaWZzX3BhcnNlciA9IHN1YmNvbW1hbmRzLmFkZF9wYXJzZXIoJ2xkaWZzJywg aGVscD0iTGlzdCBhbGwgdGhlIExESUYgZmlsZXMgbG9jYXRlZCBpbiB0aGUgc2VydmVyJ3MgTERJ RiBkaXJlY3RvcnkiLCBmb3JtYXR0ZXJfY2xhc3M9Q3VzdG9tSGVscEZvcm1hdHRlcikKLSAgICAg bGRpZnNfcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1kZWxldGUnLCBuYXJncz0xLCBoZWxwPSJEZWxl dGUgTERJRiBmaWxlIikKLSAgICAgbGRpZnNfcGFyc2VyLnNldF9kZWZhdWx0cyhmdW5jPWRidGFz a3NfbGRpZnMpCi0rCi0rICAgIGluZGV4X2NoZWNrX3BhcnNlciA9IHN1YmNvbW1hbmRzLmFkZF9w YXJzZXIoJ2luZGV4LWNoZWNrJywKLSsgICAgICAgIGhlbHA9IkNoZWNrIGZvciBpbmRleCBvcmRl cmluZyBtaXNtYXRjaGVzIChwYXJlbnRpZC9hbmNlc3RvcmlkKS4gVGhlIHNlcnZlciBtdXN0IGJl IHN0b3BwZWQuIiwKLSsgICAgICAgIGZvcm1hdHRlcl9jbGFzcz1DdXN0b21IZWxwRm9ybWF0dGVy KQotKyAgICBpbmRleF9jaGVja19wYXJzZXIuYWRkX2FyZ3VtZW50KCdiYWNrZW5kJywgbmFyZ3M9 Jz8nLCBkZWZhdWx0PU5vbmUsCi0rICAgICAgICBoZWxwPSJCYWNrZW5kIHRvIGNoZWNrLiBJZiBu b3Qgc3BlY2lmaWVkLCBhbGwgYmFja2VuZHMgYXJlIGNoZWNrZWQuIikKLSsgICAgaW5kZXhfY2hl Y2tfcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1maXgnLCBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZh dWx0PUZhbHNlLAotKyAgICAgICAgaGVscD0iRml4IG1pc21hdGNoZXMgYnkgcmVpbmRleGluZyBh ZmZlY3RlZCBpbmRleGVzIikKLSsgICAgaW5kZXhfY2hlY2tfcGFyc2VyLnNldF9kZWZhdWx0cyhm dW5jPWRidGFza3NfaW5kZXhfY2hlY2spCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYjM4OS9saWIzODkv ZHNlbGRpZi5weSBiL3NyYy9saWIzODkvbGliMzg5L2RzZWxkaWYucHkKLWluZGV4IGQxMmM2NDI0 Yy4uNzgzNGQ5NDY4IDEwMDY0NAotLS0tIGEvc3JjL2xpYjM4OS9saWIzODkvZHNlbGRpZi5weQot KysrIGIvc3JjL2xpYjM4OS9saWIzODkvZHNlbGRpZi5weQotQEAgLTEyNSwxMSArMTI1LDE0IEBA IGNsYXNzIERTRWxkaWYoRFNMaW50KToKLSAgICAgICAgICAgICBzZWxmLl9jb250ZW50c1tpXSA9 IHNlbGYuX2NvbnRlbnRzW2ldLnJlcGxhY2Uoc3RyZnJvbSwgc3RydG8pCi0gICAgICAgICBzZWxm Ll91cGRhdGUoKQotIAotLSAgICBkZWYgX2ZpbmRfYXR0cihzZWxmLCBlbnRyeV9kbiwgYXR0cik6 Ci0rICAgIGRlZiBfZmluZF9hdHRyKHNlbGYsIGVudHJ5X2RuLCBhdHRyLCBsb3dlcj1GYWxzZSk6 Ci0gICAgICAgICAiIiJGaW5kIGFsbCBhdHRyaWJ1dGUgdmFsdWVzIGFuZCBpbmRleGVzIHVuZGVy IGEgZ2l2ZW4gZW50cnkKLSAKLSAgICAgICAgIFJldHVybnMgZW50cnkgZG4gaW5kZXggYW5kIGF0 dHJpYnV0ZSBkYXRhIGRpY3Q6Ci0gICAgICAgICByZWxhdGl2ZSBhdHRyaWJ1dGUgaW5kZXhlcyBh bmQgdGhlIGF0dHJpYnV0ZSB2YWx1ZQotKwotKyAgICAgICAgOnBhcmFtIGxvd2VyOiBVc2UgY2Fz ZS1pbnNlbnNpdGl2ZSBtYXRjaGluZyBmb3IgYXR0cmlidXRlIG5hbWUKLSsgICAgICAgIDp0eXBl IGxvd2VyOiBib29sZWFuCi0gICAgICAgICAiIiIKLSAKLSAgICAgICAgIGVudHJ5X2RuX2kgPSBz ZWxmLl9jb250ZW50cy5pbmRleCgiZG46IHt9XG4iLmZvcm1hdChlbnRyeV9kbi5sb3dlcigpKSkK LUBAIC0xNDYsNyArMTQ5LDExIEBAIGNsYXNzIERTRWxkaWYoRFNMaW50KToKLSAKLSAgICAgICAg ICMgRmluZCB0aGUgYXR0cmlidXRlCi0gICAgICAgICBmb3IgbGluZSBpbiBlbnRyeV9zbGljZToK LS0gICAgICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoInt9OiIuZm9ybWF0KGF0dHIpKToKLSsg ICAgICAgICAgICBpZiBsb3dlcjoKLSsgICAgICAgICAgICAgICAgbWF0Y2ggPSBsaW5lLmxvd2Vy KCkuc3RhcnRzd2l0aCgie306Ii5mb3JtYXQoYXR0ci5sb3dlcigpKSkKLSsgICAgICAgICAgICBl bHNlOgotKyAgICAgICAgICAgICAgICBtYXRjaCA9IGxpbmUuc3RhcnRzd2l0aCgie306Ii5mb3Jt YXQoYXR0cikpCi0rICAgICAgICAgICAgaWYgbWF0Y2g6Ci0gICAgICAgICAgICAgICAgIGF0dHJf dmFsdWUgPSBsaW5lLnNwbGl0KCIgIiwgMSlbMV1bOi0xXQotICAgICAgICAgICAgICAgICBhdHRy X2RhdGEudXBkYXRlKHtlbnRyeV9zbGljZS5pbmRleChsaW5lKTogYXR0cl92YWx1ZX0pCi0gCi1A QCAtMTU1LDcgKzE2Miw3IEBAIGNsYXNzIERTRWxkaWYoRFNMaW50KToKLSAKLSAgICAgICAgIHJl dHVybiBlbnRyeV9kbl9pLCBhdHRyX2RhdGEKLSAKLS0gICAgZGVmIGdldChzZWxmLCBlbnRyeV9k biwgYXR0ciwgc2luZ2xlPUZhbHNlKToKLSsgICAgZGVmIGdldChzZWxmLCBlbnRyeV9kbiwgYXR0 ciwgc2luZ2xlPUZhbHNlLCBsb3dlcj1GYWxzZSk6Ci0gICAgICAgICAiIiJSZXR1cm4gYXR0cmli dXRlIHZhbHVlcyB1bmRlciBhIGdpdmVuIGVudHJ5Ci0gCi0gICAgICAgICA6cGFyYW0gZW50cnlf ZG46IGEgRE4gb2YgZW50cnkgd2Ugd2FudCB0byBnZXQgYXR0cmlidXRlIGZyb20KLUBAIC0xNjMs MTEgKzE3MCwxMyBAQCBjbGFzcyBEU0VsZGlmKERTTGludCk6Ci0gICAgICAgICA6cGFyYW0gYXR0 cjogYW4gYXR0cmlidXRlIG5hbWUKLSAgICAgICAgIDp0eXBlIGF0dHI6IHN0cgotICAgICAgICAg OnBhcmFtIHNpbmdsZTogUmV0dXJuIGEgc2luZ2xlIHZhbHVlIGluc3RlYWQgb2YgYSBsaXN0Ci0t ICAgICAgICA6dHlwZSBzaWdsZTogYm9vbGVhbgotKyAgICAgICAgOnR5cGUgc2luZ2xlOiBib29s ZWFuCi0rICAgICAgICA6cGFyYW0gbG93ZXI6IFVzZSBjYXNlLWluc2Vuc2l0aXZlIG1hdGNoaW5n IGZvciBhdHRyaWJ1dGUgbmFtZQotKyAgICAgICAgOnR5cGUgbG93ZXI6IGJvb2xlYW4KLSAgICAg ICAgICIiIgotIAotICAgICAgICAgdHJ5OgotLSAgICAgICAgICAgIF8sIGF0dHJfZGF0YSA9IHNl bGYuX2ZpbmRfYXR0cihlbnRyeV9kbiwgYXR0cikKLSsgICAgICAgICAgICBfLCBhdHRyX2RhdGEg PSBzZWxmLl9maW5kX2F0dHIoZW50cnlfZG4sIGF0dHIsIGxvd2VyPWxvd2VyKQotICAgICAgICAg ZXhjZXB0IFZhbHVlRXJyb3I6Ci0gICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAKLUBAIC0xOTAs NiArMTk5LDM4IEBAIGNsYXNzIERTRWxkaWYoRFNMaW50KToKLSAKLSAgICAgICAgIHJldHVybiBp bmRleGVzCi0gCi0rICAgIGRlZiBnZXRfYmFja2VuZHMoc2VsZik6Ci0rICAgICAgICAiIiJSZXR1 cm4gYSBsaXN0IG9mIGJhY2tlbmQgbmFtZXMgZnJvbSBEU0UuCi0rCi0rICAgICAgICBSZXR1cm5z IGJhY2tlbmQgbmFtZXMgcHJlc2VydmluZyB0aGVpciBvcmlnaW5hbCBjYXNlLCBhcyB0aGUKLSsg ICAgICAgIGRhdGFiYXNlIGRpcmVjdG9yeSBuYW1lcyBvbiBkaXNrIHVzZSB0aGUgb3JpZ2luYWwg Y2FzZS4KLSsKLSsgICAgICAgIE5vdGU6IERTRWxkaWYgbG93ZXJjYXNlcyBETiBsaW5lcywgc28g d2UgcmVhZCB0aGUgJ2NuJyBhdHRyaWJ1dGUKLSsgICAgICAgIGZyb20gZWFjaCBlbnRyeSB0byBn ZXQgdGhlIG9yaWdpbmFsIGNhc2UuCi0rCi0rICAgICAgICA6cmV0dXJuczogTGlzdCBvZiBiYWNr ZW5kIG5hbWVzCi0rICAgICAgICAiIiIKLSsgICAgICAgIGJhY2tlbmRzID0gW10KLSsgICAgICAg IGV4Y2x1ZGVkID0gKCJjb25maWciLCAibW9uaXRvciIsICJpbmRleCIsICJlbmNyeXB0ZWQgYXR0 cmlidXRlcyIpCi0rCi0rICAgICAgICBmb3IgZW50cnkgaW4gc2VsZi5fY29udGVudHM6Ci0rICAg ICAgICAgICAgaWYgKGVudHJ5LnN0YXJ0c3dpdGgoImRuOiBjbj0iKSBhbmQKLSsgICAgICAgICAg ICAgICAgICAgICIsY249bGRibSBkYXRhYmFzZSxjbj1wbHVnaW5zLGNuPWNvbmZpZyIgaW4gZW50 cnkpOgotKyAgICAgICAgICAgICAgICBwYXJ0cyA9IGVudHJ5LnNwbGl0KCIsIikKLSsgICAgICAg ICAgICAgICAgaWYgbGVuKHBhcnRzKSA+IDE6Ci0rICAgICAgICAgICAgICAgICAgICBjbl9sb3dl ciA9IHBhcnRzWzBdLnJlcGxhY2UoImRuOiBjbj0iLCAiIikKLSsgICAgICAgICAgICAgICAgICAg IGlmIGNuX2xvd2VyIG5vdCBpbiBleGNsdWRlZDoKLSsgICAgICAgICAgICAgICAgICAgICAgICBk biA9IGVudHJ5LnN0cmlwKClbNDpdLnN0cmlwKCkKLSsgICAgICAgICAgICAgICAgICAgICAgICB0 cnk6Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1ZmZpeCA9IHNlbGYuZ2V0KGRuLCAi bnNzbGFwZC1zdWZmaXgiKQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBzdWZmaXg6 Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbl92YWx1ZXMgPSBzZWxmLmdldChk biwgImNuIikKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGNuX3ZhbHVlczoK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZW5kcy5hcHBlbmQoY25f dmFsdWVzWzBdKQotKyAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCAoVmFsdWVFcnJvciwg SW5kZXhFcnJvcik6Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc3MKLSsKLSsgICAg ICAgIHJldHVybiBsaXN0KHNldChiYWNrZW5kcykpCi0gCi0gICAgIGRlZiBhZGRfZW50cnkoc2Vs ZiwgZW50cnkpOgotICAgICAgICAgIiIiQWRkIGEgbmV3IGVudHJ5Ci0tLSAKLTIuNTIuMAotCgpk aWZmIC0tZ2l0IGEvMDAzNy1Jc3N1ZS03MjMwLVJlZ3Jlc3Npb24taW4taGVhbHRjaGVjay1Oc3ND aGVjay03MjM1LnBhdGNoIGIvMDAzNy1Jc3N1ZS03MjMwLVJlZ3Jlc3Npb24taW4taGVhbHRjaGVj ay1Oc3NDaGVjay03MjM1LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMTll NTU2Li4wMDAwMDAwCi0tLSBhLzAwMzctSXNzdWUtNzIzMC1SZWdyZXNzaW9uLWluLWhlYWx0Y2hl Y2stTnNzQ2hlY2stNzIzNS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDYyICswLDAgQEAKLUZy b20gM2ViYjMwYTY1ZTJiNDA2MTAzMDFlNWZlZWRkYTA0MDhhYzlmMzYzMSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKLUZyb206IEphbWVzIENoYXBtYW4gPGphY2hhcG1hQHJlZGhhdC5jb20+Ci1E YXRlOiBUdWUsIDEwIEZlYiAyMDI2IDEwOjM1OjQ4ICswMDAwCi1TdWJqZWN0OiBbUEFUQ0hdIElz c3VlIDcyMzAgLSBSZWdyZXNzaW9uIGluIGhlYWx0Y2hlY2sgTnNzQ2hlY2sgKCM3MjM1KQotCi1E ZXNjcmlwdGlvbjoKLUR5bmFtaWMgQ2VydGlmaWNhdGUgbGliMzg5IHVwZGFkYXRlcyBtb2RpZmll ZCBnZXRfY2VydF9kZXRhaWxzKCkgdG8KLXJldHVybiBhIGRpY3QgaW5zdGVhZCBvZiB0dXBsZSBm b3JtYXQuIF9saW50X2NlcnRpZmljYXRlX2V4cGlyYXRpb24oKSBhbmQKLXRscy5saXN0X2Nhcygp IHN0aWxsIGFzc3VtZXMgdHVwbGUgc3R5bGUgYWNjZXNzLgotCi1GaXg6Ci1VcGRhdGUgbWV0aG9k IHRvIHVzZSBkaWN0IGtleS4KLQotRml4ZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS8zODlkcy8zODkt ZHMtYmFzZS9pc3N1ZXMvNzIzMAotCi1Dby1hdXRob3JlZC1ieTogQGZsby1yZW5hdWQKLQotUmV2 aWV3ZWQgYnk6IEBkcm9pZGVjayAoVGhhbmsgeW91KQotLS0tCi0gc3JjL2xpYjM4OS9saWIzODkv Y2xpX2N0bC90bHMucHkgfCA0ICsrLS0KLSBzcmMvbGliMzg5L2xpYjM4OS9uc3Nfc3NsLnB5ICAg ICB8IDQgKystLQotIDIgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9u cygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYjM4OS9saWIzODkvY2xpX2N0bC90bHMucHkgYi9z cmMvbGliMzg5L2xpYjM4OS9jbGlfY3RsL3Rscy5weQotaW5kZXggODgzNGY1NzU4Li45MWYxZjNh NTkgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliMzg5L2xpYjM4OS9jbGlfY3RsL3Rscy5weQotKysrIGIv c3JjL2xpYjM4OS9saWIzODkvY2xpX2N0bC90bHMucHkKLUBAIC0yNSw5ICsyNSw5IEBAIGRlZiBs aXN0X2NsaWVudF9jYXMoaW5zdCwgbG9nLCBhcmdzKToKLSAKLSBkZWYgbGlzdF9jYXMoaW5zdCwg bG9nLCBhcmdzKToKLSAgICAgdGxzID0gTnNzU3NsKGRpcnNydj1pbnN0KQotLSAgICAjIFRoaXMg dHVybnMgYW4gYXJyYXkgb2YgWygnQ0EnLCAnQywsJyldCi0rICAgICMgUmV0dXJucyBhIGxpc3Qg b2YgY2VydCBkaWN0cywgZWcgeydjbic6ICduaWNrbmFtZScsIGV0Y30KLSAgICAgZm9yIGMgaW4g dGxzLmxpc3RfY2FfY2VydHMoKToKLS0gICAgICAgIGxvZy5pbmZvKGNbMF0pCi0rICAgICAgICBs b2cuaW5mbyhjWydjbiddKQotIAotIAotIGRlZiBzaG93X2NlcnQoaW5zdCwgbG9nLCBhcmdzKToK LWRpZmYgLS1naXQgYS9zcmMvbGliMzg5L2xpYjM4OS9uc3Nfc3NsLnB5IGIvc3JjL2xpYjM4OS9s aWIzODkvbnNzX3NzbC5weQotaW5kZXggNzY0NDM0MTY2Li5mYWU2NWQxOWMgMTAwNjQ0Ci0tLS0g YS9zcmMvbGliMzg5L2xpYjM4OS9uc3Nfc3NsLnB5Ci0rKysgYi9zcmMvbGliMzg5L2xpYjM4OS9u c3Nfc3NsLnB5Ci1AQCAtOTEsMTMgKzkxLDEzIEBAIGNsYXNzIE5zc1NzbChEU0xpbnQpOgotICAg ICAgICAgICAgIGlmIGRpZmZfZGF0ZSA8IHRpbWVkZWx0YShkYXlzPTApOgotICAgICAgICAgICAg ICAgICAjIEV4cGlyZWQKLSAgICAgICAgICAgICAgICAgcmVwb3J0ID0gY29weS5kZWVwY29weShE U0NFUlRMRTAwMDIpCi0tICAgICAgICAgICAgICAgIHJlcG9ydFsnZGV0YWlsJ10gPSByZXBvcnRb J2RldGFpbCddLnJlcGxhY2UoJ0NFUlQnLCBjZXJ0WzBdKQotKyAgICAgICAgICAgICAgICByZXBv cnRbJ2RldGFpbCddID0gcmVwb3J0WydkZXRhaWwnXS5yZXBsYWNlKCdDRVJUJywgY2VydFsnY24n XSkKLSAgICAgICAgICAgICAgICAgcmVwb3J0WydjaGVjayddID0gZid0bHM6Y2VydGlmaWNhdGVf ZXhwaXJhdGlvbicKLSAgICAgICAgICAgICAgICAgeWllbGQgcmVwb3J0Ci0gICAgICAgICAgICAg ZWxpZiBkaWZmX2RhdGUgPCB0aW1lZGVsdGEoZGF5cz0zMCk6Ci0gICAgICAgICAgICAgICAgICMg RXhwaXJpbmcgd2l0aGluIDMwIGRheXMKLSAgICAgICAgICAgICAgICAgcmVwb3J0ID0gY29weS5k ZWVwY29weShEU0NFUlRMRTAwMDEpCi0tICAgICAgICAgICAgICAgIHJlcG9ydFsnZGV0YWlsJ10g PSByZXBvcnRbJ2RldGFpbCddLnJlcGxhY2UoJ0NFUlQnLCBjZXJ0WzBdKQotKyAgICAgICAgICAg ICAgICByZXBvcnRbJ2RldGFpbCddID0gcmVwb3J0WydkZXRhaWwnXS5yZXBsYWNlKCdDRVJUJywg Y2VydFsnY24nXSkKLSAgICAgICAgICAgICAgICAgcmVwb3J0WydjaGVjayddID0gZid0bHM6Y2Vy dGlmaWNhdGVfZXhwaXJhdGlvbicKLSAgICAgICAgICAgICAgICAgeWllbGQgcmVwb3J0Ci0gCi0t LSAKLTIuNTIuMAotCgpkaWZmIC0tZ2l0IGEvMDAzOC1Jc3N1ZS0zNTU1LVVJLUZpeC1hdWRpdC1p c3N1ZS13aXRoLW5wbS1pc2FhY3MtYnJhY2UtLnBhdGNoIGIvMDAzOC1Jc3N1ZS0zNTU1LVVJLUZp eC1hdWRpdC1pc3N1ZS13aXRoLW5wbS1pc2FhY3MtYnJhY2UtLnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCBiMDQ4N2Y3Li4wMDAwMDAwCi0tLSBhLzAwMzgtSXNzdWUtMzU1NS1V SS1GaXgtYXVkaXQtaXNzdWUtd2l0aC1ucG0taXNhYWNzLWJyYWNlLS5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDEyMjUgKzAsMCBAQAotRnJvbSBiMjRhZTRhNzcxMGM2NmI4YzIyNGViZDQ5OGRj ODI0NjNlNDZmNDViIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU2ltb24gUGljaHVn aW4gPHNwaWNodWdpQHJlZGhhdC5jb20+Ci1EYXRlOiBUdWUsIDEwIEZlYiAyMDI2IDEzOjA5OjIy IC0wODAwCi1TdWJqZWN0OiBbUEFUQ0hdIElzc3VlIDM1NTUgLSBVSSAtIEZpeCBhdWRpdCBpc3N1 ZSB3aXRoIG5wbSAtCi0gQGlzYWFjcy9icmFjZS1leHBhbnNpb24gKCM3MjI4KQotCi1EZXNjcmlw dGlvbjogUnVuIG5wbSBhdWRpdCBmaXggdG8gYWRkcmVzcyB0aGUgdnVsbmVyYWJpbGl0eQotaW4g QGlzYWFjcy9icmFjZS1leHBhbnNpb24uCi0KLVJlbGF0ZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS8z ODlkcy8zODktZHMtYmFzZS9pc3N1ZXMvMzU1NQotCi1SZXZpZXdlZCBieTogQG1yZXlub2xkczM4 OSAoVGhhbmtzISkKLS0tLQotIHNyYy9jb2NrcGl0LzM4OS1jb25zb2xlL3BhY2thZ2UtbG9jay5q c29uIHwgNTg2ICsrKysrKysrKysrKysrKysrKystLS0KLSAxIGZpbGUgY2hhbmdlZCwgNTEyIGlu c2VydGlvbnMoKyksIDc0IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2NvY2twaXQv Mzg5LWNvbnNvbGUvcGFja2FnZS1sb2NrLmpzb24gYi9zcmMvY29ja3BpdC8zODktY29uc29sZS9w YWNrYWdlLWxvY2suanNvbgotaW5kZXggMjNmYWVmNjJmLi4xY2JkOTQwZTQgMTAwNjQ0Ci0tLS0g YS9zcmMvY29ja3BpdC8zODktY29uc29sZS9wYWNrYWdlLWxvY2suanNvbgotKysrIGIvc3JjL2Nv Y2twaXQvMzg5LWNvbnNvbGUvcGFja2FnZS1sb2NrLmpzb24KLUBAIC0xMDIsOCArMTAyLDcgQEAK LSAgICAgICAidmVyc2lvbiI6ICIyLjIuMiIsCi0gICAgICAgInJlc29sdmVkIjogImh0dHBzOi8v cmVnaXN0cnkubnBtanMub3JnL0BidWZidWlsZC9wcm90b2J1Zi8tL3Byb3RvYnVmLTIuMi4yLnRn eiIsCi0gICAgICAgImludGVncml0eSI6ICJzaGE1MTItVU50UENicndyZW5wbXJYdVJ3bjlqWXBQ b3dlTlhqOFg1c012WWdzcVl5YUg4alE2TGZVSlNrM2RKTG5CSys2c2ZZUHJGNGlBSW81c2Q1SFEr dGc3NUE9PSIsCi0tICAgICAgImRldiI6IHRydWUsCi0tICAgICAgInBlZXIiOiB0cnVlCi0rICAg ICAgImRldiI6IHRydWUKLSAgICAgfSwKLSAgICAgIm5vZGVfbW9kdWxlcy9AY3NzdG9vbHMvY3Nz LXBhcnNlci1hbGdvcml0aG1zIjogewotICAgICAgICJ2ZXJzaW9uIjogIjMuMC40IiwKLUBAIC0x MjAsNiArMTE5LDcgQEAKLSAgICAgICAgICAgInVybCI6ICJodHRwczovL29wZW5jb2xsZWN0aXZl LmNvbS9jc3N0b29scyIKLSAgICAgICAgIH0KLSAgICAgICBdLAotKyAgICAgICJwZWVyIjogdHJ1 ZSwKLSAgICAgICAiZW5naW5lcyI6IHsKLSAgICAgICAgICJub2RlIjogIj49MTgiCi0gICAgICAg fSwKLUBAIC0xNDIsNiArMTQyLDcgQEAKLSAgICAgICAgICAgInVybCI6ICJodHRwczovL29wZW5j b2xsZWN0aXZlLmNvbS9jc3N0b29scyIKLSAgICAgICAgIH0KLSAgICAgICBdLAotKyAgICAgICJw ZWVyIjogdHJ1ZSwKLSAgICAgICAiZW5naW5lcyI6IHsKLSAgICAgICAgICJub2RlIjogIj49MTgi Ci0gICAgICAgfQotQEAgLTcyMiw2ICs3MjMsNyBAQAotICAgICAgICJyZXNvbHZlZCI6ICJodHRw czovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9AZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtc3ZnLWNvcmUv LS9mb250YXdlc29tZS1zdmctY29yZS0xLjIuMzYudGd6IiwKLSAgICAgICAiaW50ZWdyaXR5Ijog InNoYTUxMi1ZVWNzTFFLWWI2RG1hSmpJSGREV3BCSUdDY3lFL1crcC9MTUd2alFlbTU1TW0yWFdW QVA1a1dUTUtXTHY5bHdwQ1ZqcEx4UHlPTU95VW9jUDFHeHJ0QT09IiwKLSAgICAgICAiaGFzSW5z dGFsbFNjcmlwdCI6IHRydWUsCi0rICAgICAgInBlZXIiOiB0cnVlLAotICAgICAgICJkZXBlbmRl bmNpZXMiOiB7Ci0gICAgICAgICAiQGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLWNvbW1vbi10eXBl cyI6ICJeMC4yLjM2IgotICAgICAgIH0sCi1AQCAtODIyLDkgKzgyNCw5IEBACi0gICAgICAgfQot ICAgICB9LAotICAgICAibm9kZV9tb2R1bGVzL0Bpc2FhY3MvYnJhY2UtZXhwYW5zaW9uIjogewot LSAgICAgICJ2ZXJzaW9uIjogIjUuMC4wIiwKLS0gICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9y ZWdpc3RyeS5ucG1qcy5vcmcvQGlzYWFjcy9icmFjZS1leHBhbnNpb24vLS9icmFjZS1leHBhbnNp b24tNS4wLjAudGd6IiwKLS0gICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1aVDU1QkRMVjB5djBS Qm0yY3pNaVorU3FDR083QXZtT00zRy93MnhoVlBIK3RlMGFLZ0ZqbUJ2R2xMMWRIK3FsMnRnR08z TVZyYmIzakNLeXZwZ254QT09IiwKLSsgICAgICAidmVyc2lvbiI6ICI1LjAuMSIsCi0rICAgICAg InJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL0Bpc2FhY3MvYnJhY2UtZXhw YW5zaW9uLy0vYnJhY2UtZXhwYW5zaW9uLTUuMC4xLnRneiIsCi0rICAgICAgImludGVncml0eSI6 ICJzaGE1MTItV016NzFUMUpTNjI0bldqMm4yZm5ZQXVQb3ZodjdFVWhrNjlSNmk5ZHNWeXp4dDVl TTNiand2Z2s5TCtBUEUxVFJzY0d5c0FWTUFOa0IwamgwTFFaclE9PSIsCi0gICAgICAgImRldiI6 IHRydWUsCi0gICAgICAgImxpY2Vuc2UiOiAiTUlUIiwKLSAgICAgICAiZGVwZW5kZW5jaWVzIjog ewotQEAgLTExNTcsNyArMTE1OSw2IEBACi0gICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVn aXN0cnkubnBtanMub3JnL0B0eXBlc2NyaXB0LWVzbGludC9wYXJzZXIvLS9wYXJzZXItOC4xMy4w LnRneiIsCi0gICAgICAgImludGVncml0eSI6ICJzaGE1MTItdzB4cCt4R2c4dS9uT05jR3cxVVhB cjZjakNQVTF3MFhWeUJzNlpxYWo1ZUxteGtLUUFCeVRkVi91R2dOTjV0VnZOL2tLcG9RbFAyY0w3 UithalpaSVE9PSIsCi0gICAgICAgImRldiI6IHRydWUsCi0tICAgICAgInBlZXIiOiB0cnVlLAot ICAgICAgICJkZXBlbmRlbmNpZXMiOiB7Ci0gICAgICAgICAiQHR5cGVzY3JpcHQtZXNsaW50L3Nj b3BlLW1hbmFnZXIiOiAiOC4xMy4wIiwKLSAgICAgICAgICJAdHlwZXNjcmlwdC1lc2xpbnQvdHlw ZXMiOiAiOC4xMy4wIiwKLUBAIC0xMTg2LDcgKzExODcsNiBAQAotICAgICAgICJyZXNvbHZlZCI6 ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9AdHlwZXNjcmlwdC1lc2xpbnQvc2NvcGUtbWFu YWdlci8tL3Njb3BlLW1hbmFnZXItOC4xMy4wLnRneiIsCi0gICAgICAgImludGVncml0eSI6ICJz aGE1MTItWHNHV3d3MG9kY1VUMGdKb0JaMURldWxZMStqa2FIVWNpVXE0aktOdjRjcEluYnZ2cnRE b3lCSDlyRS9uMlYyOXdRSlBrOGlDSDF3aXByYTlCaG1pTUE9PSIsCi0gICAgICAgImRldiI6IHRy dWUsCi0tICAgICAgInBlZXIiOiB0cnVlLAotICAgICAgICJkZXBlbmRlbmNpZXMiOiB7Ci0gICAg ICAgICAiQHR5cGVzY3JpcHQtZXNsaW50L3R5cGVzIjogIjguMTMuMCIsCi0gICAgICAgICAiQHR5 cGVzY3JpcHQtZXNsaW50L3Zpc2l0b3Ita2V5cyI6ICI4LjEzLjAiCi1AQCAtMTIwNCw3ICsxMjA0 LDYgQEAKLSAgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvQHR5 cGVzY3JpcHQtZXNsaW50L3Zpc2l0b3Ita2V5cy8tL3Zpc2l0b3Ita2V5cy04LjEzLjAudGd6IiwK LSAgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi03Ti8rbHp0SnFINE1yZjBsYjEwUi9DYkkxRWFB TU1HeUY1eTBvSnZGb0FoYWZ3Z2lSQTdUWHlkOFRGbjhGQzhrNXkyZFRzWW9nZzIzOHFhdlJHTm5s dz09IiwKLSAgICAgICAiZGV2IjogdHJ1ZSwKLS0gICAgICAicGVlciI6IHRydWUsCi0gICAgICAg ImRlcGVuZGVuY2llcyI6IHsKLSAgICAgICAgICJAdHlwZXNjcmlwdC1lc2xpbnQvdHlwZXMiOiAi OC4xMy4wIiwKLSAgICAgICAgICJlc2xpbnQtdmlzaXRvci1rZXlzIjogIl4zLjQuMyIKLUBAIC0x MzE3LDcgKzEzMTYsNiBAQAotICAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5w bWpzLm9yZy9AdHlwZXNjcmlwdC1lc2xpbnQvdHlwZXMvLS90eXBlcy04LjEzLjAudGd6IiwKLSAg ICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi00Y3lGRXJKZXRGTGNrY1RoUlVGZFJlV0pqVnNQQ3F5 QmxKVGk2SURFcGMxR1dDSUlaUkZ4VnBwaldMSU1jUWhOR2hkV0pKUllGSHBIb0RXdk1sRHpuZz09 IiwKLSAgICAgICAiZGV2IjogdHJ1ZSwKLS0gICAgICAicGVlciI6IHRydWUsCi0gICAgICAgImVu Z2luZXMiOiB7Ci0gICAgICAgICAibm9kZSI6ICJeMTguMTguMCB8fCBeMjAuOS4wIHx8ID49MjEu MS4wIgotICAgICAgIH0sCi1AQCAtMTMzMSw3ICsxMzI5LDYgQEAKLSAgICAgICAicmVzb2x2ZWQi OiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvQHR5cGVzY3JpcHQtZXNsaW50L3R5cGVzY3Jp cHQtZXN0cmVlLy0vdHlwZXNjcmlwdC1lc3RyZWUtOC4xMy4wLnRneiIsCi0gICAgICAgImludGVn cml0eSI6ICJzaGE1MTItdjdTQ0lHbVZzUksyQ3kvTFRMR04yMnVlYTZTYVVJbHBCY08vZ25NR1Qv N3pQdHhwOTBicGhjR2Y0ZnlyQ1FsM1p0aUJLcVZURzMyaGI2NjhvSVl5MWc9PSIsCi0gICAgICAg ImRldiI6IHRydWUsCi0tICAgICAgInBlZXIiOiB0cnVlLAotICAgICAgICJkZXBlbmRlbmNpZXMi OiB7Ci0gICAgICAgICAiQHR5cGVzY3JpcHQtZXNsaW50L3R5cGVzIjogIjguMTMuMCIsCi0gICAg ICAgICAiQHR5cGVzY3JpcHQtZXNsaW50L3Zpc2l0b3Ita2V5cyI6ICI4LjEzLjAiLAotQEAgLTEz NjAsNyArMTM1Nyw2IEBACi0gICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBt anMub3JnL0B0eXBlc2NyaXB0LWVzbGludC92aXNpdG9yLWtleXMvLS92aXNpdG9yLWtleXMtOC4x My4wLnRneiIsCi0gICAgICAgImludGVncml0eSI6ICJzaGE1MTItN04vK2x6dEpxSDRNcmYwbGIx MFIvQ2JJMUVhQU1NR3lGNXkwb0p2Rm9BaGFmd2dpUkE3VFh5ZDhURm44RkM4azV5MmRUc1lvZ2cy MzhxYXZSR05ubHc9PSIsCi0gICAgICAgImRldiI6IHRydWUsCi0tICAgICAgInBlZXIiOiB0cnVl LAotICAgICAgICJkZXBlbmRlbmNpZXMiOiB7Ci0gICAgICAgICAiQHR5cGVzY3JpcHQtZXNsaW50 L3R5cGVzIjogIjguMTMuMCIsCi0gICAgICAgICAiZXNsaW50LXZpc2l0b3Ita2V5cyI6ICJeMy40 LjMiCi1AQCAtMTQ4MywxMyArMTQ3OSwxNSBAQAotICAgICAibm9kZV9tb2R1bGVzL0B4dGVybS94 dGVybSI6IHsKLSAgICAgICAidmVyc2lvbiI6ICI1LjUuMCIsCi0gICAgICAgInJlc29sdmVkIjog Imh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL0B4dGVybS94dGVybS8tL3h0ZXJtLTUuNS4wLnRn eiIsCi0tICAgICAgImludGVncml0eSI6ICJzaGE1MTItaHFKSFlhUWI1T3B0TnVubnlBbmtIeU04 YUNqWjFNRUlEVFF1MWlJYmJURC94b3BzOTFOQjV5cTFaSy9kQzJKRGJWV3RGMjN6VXRsOUpFMk5x d1Q4N0E9PSIKLSsgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1ocUpIWWFRYjVPcHROdW5ueUFu a0h5TThhQ2paMU1FSURUUXUxaUliYlREL3hvcHM5MU5CNXlxMVpLL2RDMkpEYlZXdEYyM3pVdGw5 SkUyTnF3VDg3QT09IiwKLSsgICAgICAicGVlciI6IHRydWUKLSAgICAgfSwKLSAgICAgIm5vZGVf bW9kdWxlcy9hY29ybiI6IHsKLSAgICAgICAidmVyc2lvbiI6ICI4LjE0LjAiLAotICAgICAgICJy ZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9hY29ybi8tL2Fjb3JuLTguMTQu MC50Z3oiLAotICAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLWNsNjY5bkNKVFpCc0w5N09GNGtV UW01ZzVoQzJ1aWhrME54WTNXRU5BQzBUWWRJTFZrQXlIeW1BbnRneEdrbDdLK3QwY1hJckg1c2l5 NVM0WGtGeWNBPT0iLAotICAgICAgICJkZXYiOiB0cnVlLAotKyAgICAgICJwZWVyIjogdHJ1ZSwK LSAgICAgICAiYmluIjogewotICAgICAgICAgImFjb3JuIjogImJpbi9hY29ybiIKLSAgICAgICB9 LAotQEAgLTE4NTYsMTUgKzE4NTQsMTMgQEAKLSAgICAgICAidmVyc2lvbiI6ICIwLjIuMCIsCi0g ICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2J1ZmZlci1idWls ZGVyLy0vYnVmZmVyLWJ1aWxkZXItMC4yLjAudGd6IiwKLSAgICAgICAiaW50ZWdyaXR5IjogInNo YTUxMi03VlBNRVB1WXpuUFNvUjIxTkUxenZkMlhuYTZjL0Nsb2laQ2ZjTVhSMUpueTZQalgwTjRO c2EzOHpjQkZvL0ZNSytCbEErRkxLYkpDUTBpMnl4cCtYZz09IiwKLS0gICAgICAiZGV2IjogdHJ1 ZSwKLS0gICAgICAicGVlciI6IHRydWUKLSsgICAgICAiZGV2IjogdHJ1ZQotICAgICB9LAotICAg ICAibm9kZV9tb2R1bGVzL2J1aWx0aW4tbW9kdWxlcyI6IHsKLSAgICAgICAidmVyc2lvbiI6ICIz LjMuMCIsCi0gICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2J1 aWx0aW4tbW9kdWxlcy8tL2J1aWx0aW4tbW9kdWxlcy0zLjMuMC50Z3oiLAotICAgICAgICJpbnRl Z3JpdHkiOiAic2hhNTEyLXpoYUNEaWNkTHVXTjVVYk41SU1uRnFOTWhOZm85MTlzSDg1eTIvZWEr NVlnOVRzVGtlWnhwTCtKTGJwNmNnWUZTNHNSTHAzWVY0UzZ5RHVxVldIWU93PT0iLAotICAgICAg ICJkZXYiOiB0cnVlLAotLSAgICAgICJwZWVyIjogdHJ1ZSwKLSAgICAgICAiZW5naW5lcyI6IHsK LSAgICAgICAgICJub2RlIjogIj49NiIKLSAgICAgICB9LAotQEAgLTE4NzcsNyArMTg3Myw2IEBA Ci0gICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2J1aWx0aW5z Ly0vYnVpbHRpbnMtNS4xLjAudGd6IiwKLSAgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1TVzls ekdUTHZXVFAxQVk4eGVBTVppbXFEcklhU2RMUVVjVnI5RE1lZjUxbmlKMDIyUmk4N1N3UlJLWW00 QTZpSGZrUGFpVlV1L0R1dzJXYzRKN2tLZz09IiwKLSAgICAgICAiZGV2IjogdHJ1ZSwKLS0gICAg ICAicGVlciI6IHRydWUsCi0gICAgICAgImRlcGVuZGVuY2llcyI6IHsKLSAgICAgICAgICJzZW12 ZXIiOiAiXjcuMC4wIgotICAgICAgIH0KLUBAIC0xOTkxLDggKzE5ODYsNyBAQAotICAgICAgICJ2 ZXJzaW9uIjogIjAuNS4yIiwKLSAgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5u cG1qcy5vcmcvY29sb3Jqcy5pby8tL2NvbG9yanMuaW8tMC41LjIudGd6IiwKLSAgICAgICAiaW50 ZWdyaXR5IjogInNoYTUxMi10d21Wb2l6RVc3eWxaU04zMk9nS2RYUm1vMXFnK3dUNS82QzN4dTVi OVFzV3pTRkFoSExuMnhkOHJvMGRpQ3NLZkNqMVJkYVRQL25yY1crdkFvUVBJdz09IiwKLS0gICAg ICAiZGV2IjogdHJ1ZSwKLS0gICAgICAicGVlciI6IHRydWUKLSsgICAgICAiZGV2IjogdHJ1ZQot ICAgICB9LAotICAgICAibm9kZV9tb2R1bGVzL2NvbW1hbmRlciI6IHsKLSAgICAgICAidmVyc2lv biI6ICIyLjExLjAiLAotQEAgLTI2MjksNiArMjYyMyw3IEBACi0gICAgICAgImRldiI6IHRydWUs Ci0gICAgICAgImhhc0luc3RhbGxTY3JpcHQiOiB0cnVlLAotICAgICAgICJsaWNlbnNlIjogIk1J VCIsCi0rICAgICAgInBlZXIiOiB0cnVlLAotICAgICAgICJiaW4iOiB7Ci0gICAgICAgICAiZXNi dWlsZCI6ICJiaW4vZXNidWlsZCIKLSAgICAgICB9LAotQEAgLTI3MzIsNiArMjcyNyw3IEBACi0g ICAgICAgImludGVncml0eSI6ICJzaGE1MTIteXBvd3lEeHBWU1lwa1hyOVdQdjJQQVpDdE5pcDFN djVLVFcwU0N1clh2LzlpT3Bjckg5UGFxVUVsa3NxRUI2cENocUhHRFJDRlR5clpsR2huTE5HaUE9 PSIsCi0gICAgICAgImRlcHJlY2F0ZWQiOiAiVGhpcyB2ZXJzaW9uIGlzIG5vIGxvbmdlciBzdXBw b3J0ZWQuIFBsZWFzZSBzZWUgaHR0cHM6Ly9lc2xpbnQub3JnL3ZlcnNpb24tc3VwcG9ydCBmb3Ig b3RoZXIgb3B0aW9ucy4iLAotICAgICAgICJkZXYiOiB0cnVlLAotKyAgICAgICJwZWVyIjogdHJ1 ZSwKLSAgICAgICAiZGVwZW5kZW5jaWVzIjogewotICAgICAgICAgIkBlc2xpbnQtY29tbXVuaXR5 L2VzbGludC11dGlscyI6ICJeNC4yLjAiLAotICAgICAgICAgIkBlc2xpbnQtY29tbXVuaXR5L3Jl Z2V4cHAiOiAiXjQuNi4xIiwKLUBAIC0yNzg3LDcgKzI3ODMsNiBAQAotICAgICAgICJyZXNvbHZl ZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9lc2xpbnQtY29tcGF0LXV0aWxzLy0vZXNs aW50LWNvbXBhdC11dGlscy0wLjUuMS50Z3oiLAotICAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEy LTN6M3ZGZXhLSUVuakhFM3pDTVJvNmZuL2U0NFU3VDFraFVqZytIcDBaUU1DaWdoMjhyQUxEMG5Q RkJjR1p1aUxDNXJMWmEydWJRSERSbG4wOUpmVTJRPT0iLAotICAgICAgICJkZXYiOiB0cnVlLAot LSAgICAgICJwZWVyIjogdHJ1ZSwKLSAgICAgICAiZGVwZW5kZW5jaWVzIjogewotICAgICAgICAg InNlbXZlciI6ICJeNy41LjQiCi0gICAgICAgfSwKLUBAIC0yOTUwLDcgKzI5NDUsNiBAQAotICAg ICAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9vdGEtbWVzaGkiLAotICAgICAgICAg Imh0dHBzOi8vb3BlbmNvbGxlY3RpdmUuY29tL2VzbGludCIKLSAgICAgICBdLAotLSAgICAgICJw ZWVyIjogdHJ1ZSwKLSAgICAgICAiZGVwZW5kZW5jaWVzIjogewotICAgICAgICAgIkBlc2xpbnQt Y29tbXVuaXR5L2VzbGludC11dGlscyI6ICJeNC4xLjIiLAotICAgICAgICAgIkBlc2xpbnQtY29t bXVuaXR5L3JlZ2V4cHAiOiAiXjQuMTEuMCIsCi1AQCAtMjk2OCw2ICsyOTYyLDcgQEAKLSAgICAg ICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvZXNsaW50LXBsdWdpbi1p bXBvcnQvLS9lc2xpbnQtcGx1Z2luLWltcG9ydC0yLjMxLjAudGd6IiwKLSAgICAgICAiaW50ZWdy aXR5IjogInNoYTUxMi1peG1rSTYyUmJjMi93OFZmeHloMWpRUlRkUlRGNTJWeHdSVkhsL3lrUEFt cUcrTmI3L2tObitieUxQMEx4UGdJN3pXQTE2SnQ4MlN5YkpJbm1NaWEzQT09IiwKLSAgICAgICAi ZGV2IjogdHJ1ZSwKLSsgICAgICAicGVlciI6IHRydWUsCi0gICAgICAgImRlcGVuZGVuY2llcyI6 IHsKLSAgICAgICAgICJAcnRzYW8vc2NjIjogIl4xLjEuMCIsCi0gICAgICAgICAiYXJyYXktaW5j bHVkZXMiOiAiXjMuMS44IiwKLUBAIC0zMTA3LDcgKzMxMDIsNiBAQAotICAgICAgICJyZXNvbHZl ZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9lc2xpbnQtcGx1Z2luLW4vLS9lc2xpbnQt cGx1Z2luLW4tMTYuNi4yLnRneiIsCi0gICAgICAgImludGVncml0eSI6ICJzaGE1MTItNlR5RG1a MUhYb0ZRWG5oQ1RValZGVUxSZW9CUE9BanB1aUtFTE1rZVA0MHlmZkkvMVpSTytkOXVnL1ZDNmZx SVNvMldrdUlCazNjdnVSUEFMYVdsT1E9PSIsCi0gICAgICAgImRldiI6IHRydWUsCi0tICAgICAg InBlZXIiOiB0cnVlLAotICAgICAgICJkZXBlbmRlbmNpZXMiOiB7Ci0gICAgICAgICAiQGVzbGlu dC1jb21tdW5pdHkvZXNsaW50LXV0aWxzIjogIl40LjQuMCIsCi0gICAgICAgICAiYnVpbHRpbnMi OiAiXjUuMC4xIiwKLUBAIC0zMTM3LDcgKzMxMzEsNiBAQAotICAgICAgICJpbnRlZ3JpdHkiOiAi c2hhNTEyLTlUOVVqVzNyMFVXNWMxUTdHVHdsbHB0WHdodlltRXpGaHpNZlo5SDdGUVd0K3VaZVBq WlBqQlAvVzFaRXlaMXR3R1dvbTUvNTZURjRsUGNxam5ESGNnPT0iLAotICAgICAgICJkZXYiOiB0 cnVlLAotICAgICAgICJsaWNlbnNlIjogIk1JVCIsCi0tICAgICAgInBlZXIiOiB0cnVlLAotICAg ICAgICJkZXBlbmRlbmNpZXMiOiB7Ci0gICAgICAgICAiYmFsYW5jZWQtbWF0Y2giOiAiXjEuMC4w IiwKLSAgICAgICAgICJjb25jYXQtbWFwIjogIjAuMC4xIgotQEAgLTMxNDgsNyArMzE0MSw2IEBA Ci0gICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL21pbmltYXRj aC8tL21pbmltYXRjaC0zLjEuMi50Z3oiLAotICAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLUo3 cDYzaFJpQWp3MU5ERXd3MVc3aTM3K0J5SXJPV081WFFRQXpaM1ZPY0wwUE55YndwZm1WL04wNXpG QXp3UTlVU3lFY1g2dDNVTytLNWFxQlFPSUh3PT0iLAotICAgICAgICJkZXYiOiB0cnVlLAotLSAg ICAgICJwZWVyIjogdHJ1ZSwKLSAgICAgICAiZGVwZW5kZW5jaWVzIjogewotICAgICAgICAgImJy YWNlLWV4cGFuc2lvbiI6ICJeMS4xLjciCi0gICAgICAgfSwKLUBAIC0zMjEzLDYgKzMyMDUsNyBA QAotICAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9lc2xpbnQt cGx1Z2luLXByb21pc2UvLS9lc2xpbnQtcGx1Z2luLXByb21pc2UtNi42LjAudGd6IiwKLSAgICAg ICAiaW50ZWdyaXR5IjogInNoYTUxMi01N1p6Znc4RzYrR3E3YXhtMlBkbzNnVy9SeDNoOVl5d2du NjF1RS8zZWxUQ09lUEVIVnJuMmk1Q2RmQndBMUJMSzBRMFdxY3RJQ0lVU3FYWlcvVnByUT09IiwK LSAgICAgICAiZGV2IjogdHJ1ZSwKLSsgICAgICAicGVlciI6IHRydWUsCi0gICAgICAgImVuZ2lu ZXMiOiB7Ci0gICAgICAgICAibm9kZSI6ICJeMTIuMjIuMCB8fCBeMTQuMTcuMCB8fCA+PTE2LjAu MCIKLSAgICAgICB9LAotQEAgLTMyMjgsNiArMzIyMSw3IEBACi0gICAgICAgInJlc29sdmVkIjog Imh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2VzbGludC1wbHVnaW4tcmVhY3QvLS9lc2xpbnQt cGx1Z2luLXJlYWN0LTcuMzcuMS50Z3oiLAotICAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLXh3 VG53RHF6YkRSQTh1SjdCTXhQcy9FWFJCM2k4WmZuT0lwOEJzeEVRa1QwbkhQcCtXV2NlcUdnbzZy S2I5Y3ROaThHSkxEVDRHbzVIQVdFTGEvV01nPT0iLAotICAgICAgICJkZXYiOiB0cnVlLAotKyAg ICAgICJwZWVyIjogdHJ1ZSwKLSAgICAgICAiZGVwZW5kZW5jaWVzIjogewotICAgICAgICAgImFy cmF5LWluY2x1ZGVzIjogIl4zLjEuOCIsCi0gICAgICAgICAiYXJyYXkucHJvdG90eXBlLmZpbmRs YXN0IjogIl4xLjIuNSIsCi1AQCAtMzI2MCw2ICszMjU0LDcgQEAKLSAgICAgICAicmVzb2x2ZWQi OiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvZXNsaW50LXBsdWdpbi1yZWFjdC1ob29rcy8t L2VzbGludC1wbHVnaW4tcmVhY3QtaG9va3MtNC42LjIudGd6IiwKLSAgICAgICAiaW50ZWdyaXR5 IjogInNoYTUxMi1RemxpTkpxNEdpbkRCY0Q4Z1BCNXYwd2g2ZzhxM1NVaTZFRkYweDhOL0JMOVBv VnMwYXR1R2M0N296TVJ5T1dBS2R3YVo1T25iT0VhM1dSK2RTR0t1UT09IiwKLSAgICAgICAiZGV2 IjogdHJ1ZSwKLSsgICAgICAicGVlciI6IHRydWUsCi0gICAgICAgImVuZ2luZXMiOiB7Ci0gICAg ICAgICAibm9kZSI6ICI+PTEwIgotICAgICAgIH0sCi1AQCAtMzY1Nyw2ICszNjUyLDIxIEBACi0g ICAgICAgImludGVncml0eSI6ICJzaGE1MTItT08wcEgybEs2YTBoWm5BZGF1NUl0ekhQSTZwVWx2 STdqTVZueFVRUnR3NG93RjJ3azhsT1NhYnRHRENUUDRHZ3JnMk1iR25XTzlYOEsxdDQrZkdNRHc9 PSIsCi0gICAgICAgImRldiI6IHRydWUKLSAgICAgfSwKLSsgICAgIm5vZGVfbW9kdWxlcy9mc2V2 ZW50cyI6IHsKLSsgICAgICAidmVyc2lvbiI6ICIyLjMuMyIsCi0rICAgICAgInJlc29sdmVkIjog Imh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2ZzZXZlbnRzLy0vZnNldmVudHMtMi4zLjMudGd6 IiwKLSsgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi01eG9EZlgrZkw3ZmFBVG5hZ21XUHBiRnR3 aC9SNzdXbU1NcXFIR1M2NUMzdnZCMFlIcmdGK0IxWW1aMzQ0MXRNajVuNjNrMDIxMlhOb0p3emxo ZmZRdz09IiwKLSsgICAgICAiZGV2IjogdHJ1ZSwKLSsgICAgICAiaGFzSW5zdGFsbFNjcmlwdCI6 IHRydWUsCi0rICAgICAgImxpY2Vuc2UiOiAiTUlUIiwKLSsgICAgICAib3B0aW9uYWwiOiB0cnVl LAotKyAgICAgICJvcyI6IFsKLSsgICAgICAgICJkYXJ3aW4iCi0rICAgICAgXSwKLSsgICAgICAi ZW5naW5lcyI6IHsKLSsgICAgICAgICJub2RlIjogIl44LjE2LjAgfHwgXjEwLjYuMCB8fCA+PTEx LjAuMCIKLSsgICAgICB9Ci0rICAgIH0sCi0gICAgICJub2RlX21vZHVsZXMvZnVuY3Rpb24tYmlu ZCI6IHsKLSAgICAgICAidmVyc2lvbiI6ICIxLjEuMiIsCi0gICAgICAgInJlc29sdmVkIjogImh0 dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2Z1bmN0aW9uLWJpbmQvLS9mdW5jdGlvbi1iaW5kLTEu MS4yLnRneiIsCi1AQCAtMzc0Niw3ICszNzU2LDYgQEAKLSAgICAgICAicmVzb2x2ZWQiOiAiaHR0 cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvZ2V0LXRzY29uZmlnLy0vZ2V0LXRzY29uZmlnLTQuOC4x LnRneiIsCi0gICAgICAgImludGVncml0eSI6ICJzaGE1MTItazlQTitjRkJtYUxXdFZ6MjlTa1Vv cVU1TzBzbEx1SEpYdC8yUCt0TVZGVCtwaHNTR1hHa3A5dDNyUUlxZHowZSswNkVITkdzM29NNlpY MXMyekh4Umc9PSIsCi0gICAgICAgImRldiI6IHRydWUsCi0tICAgICAgInBlZXIiOiB0cnVlLAot ICAgICAgICJkZXBlbmRlbmNpZXMiOiB7Ci0gICAgICAgICAicmVzb2x2ZS1wa2ctbWFwcyI6ICJe MS4wLjAiCi0gICAgICAgfSwKLUBAIC00MjgxLDcgKzQyOTAsNiBAQAotICAgICAgICJyZXNvbHZl ZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9pcy1idWlsdGluLW1vZHVsZS8tL2lzLWJ1 aWx0aW4tbW9kdWxlLTMuMi4xLnRneiIsCi0gICAgICAgImludGVncml0eSI6ICJzaGE1MTItQlNM RTNIblYyc3laMEZLMGlNQS95VUdwbFVlTW1OejRBVzVmblR1bmJDSXFaaTR2RzNXakpUOUZITXk1 RDY5eG1BWUJIWFFoSmRBTGRwd1Z4VjUwMUE9PSIsCi0gICAgICAgImRldiI6IHRydWUsCi0tICAg ICAgInBlZXIiOiB0cnVlLAotICAgICAgICJkZXBlbmRlbmNpZXMiOiB7Ci0gICAgICAgICAiYnVp bHRpbi1tb2R1bGVzIjogIl4zLjMuMCIKLSAgICAgICB9LAotQEAgLTU0MDksNiArNTQxNyw3IEBA Ci0gICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Nwb25zb3JzL2FpIgotICAg ICAgICAgfQotICAgICAgIF0sCi0rICAgICAgInBlZXIiOiB0cnVlLAotICAgICAgICJkZXBlbmRl bmNpZXMiOiB7Ci0gICAgICAgICAibmFub2lkIjogIl4zLjMuNyIsCi0gICAgICAgICAicGljb2Nv bG9ycyI6ICJeMS4xLjAiLAotQEAgLTU0ODcsNiArNTQ5Niw3IEBACi0gICAgICAgInJlc29sdmVk IjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3Bvc3Rjc3Mtc2VsZWN0b3ItcGFyc2VyLy0v cG9zdGNzcy1zZWxlY3Rvci1wYXJzZXItNi4xLjIudGd6IiwKLSAgICAgICAiaW50ZWdyaXR5Ijog InNoYTUxMi1ROHFRZlBpWitUSE8vM1pyT3JPMGNKSktmcFlDYWd0TVVrWGJuRWZtZ1Vqd1hnNnov V0JlT3lTOUFQQkJQQ1RTaURWK3M0U3dRR3U4eUZzaU1SSXVkZz09IiwKLSAgICAgICAiZGV2Ijog dHJ1ZSwKLSsgICAgICAicGVlciI6IHRydWUsCi0gICAgICAgImRlcGVuZGVuY2llcyI6IHsKLSAg ICAgICAgICJjc3Nlc2MiOiAiXjMuMC4wIiwKLSAgICAgICAgICJ1dGlsLWRlcHJlY2F0ZSI6ICJe MS4wLjIiCi1AQCAtNTYxMCw2ICs1NjIwLDcgQEAKLSAgICAgICAidmVyc2lvbiI6ICIxOC4zLjEi LAotICAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9yZWFjdC8t L3JlYWN0LTE4LjMuMS50Z3oiLAotICAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLXdTK2hBZ0pT aFIwS2hFdlBKQXJmdVBWTjErSHoxdDBZNm41akxyR1Fia2I0dXJnUEUvMFJ2ZSsxa01CMXYvb1dn SGdtNFdJY1YraTdGMnBUVmorMmlRPT0iLAotKyAgICAgICJwZWVyIjogdHJ1ZSwKLSAgICAgICAi ZGVwZW5kZW5jaWVzIjogewotICAgICAgICAgImxvb3NlLWVudmlmeSI6ICJeMS4xLjAiCi0gICAg ICAgfSwKLUBAIC01NjIxLDYgKzU2MzIsNyBAQAotICAgICAgICJ2ZXJzaW9uIjogIjE4LjMuMSIs Ci0gICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3JlYWN0LWRv bS8tL3JlYWN0LWRvbS0xOC4zLjEudGd6IiwKLSAgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi01 bTRuUUtwK3JaUmIwOUxOSDU5R000QnhUaDkyNTEveWxiS0licGU3VHBHeGZKKzlrdjZCTGtMQlhJ ampzcGJnYm5JQk5xbEkyM3RSblRXVDBzblVJdz09IiwKLSsgICAgICAicGVlciI6IHRydWUsCi0g ICAgICAgImRlcGVuZGVuY2llcyI6IHsKLSAgICAgICAgICJsb29zZS1lbnZpZnkiOiAiXjEuMS4w IiwKLSAgICAgICAgICJzY2hlZHVsZXIiOiAiXjAuMjMuMiIKLUBAIC01ODA1LDcgKzU4MTcsNiBA QAotICAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9yZXNvbHZl LXBrZy1tYXBzLy0vcmVzb2x2ZS1wa2ctbWFwcy0xLjAuMC50Z3oiLAotICAgICAgICJpbnRlZ3Jp dHkiOiAic2hhNTEyLXNlUzJUajI2VEJWT0MyTkljMnJPZTJ5MlpPN2VmeElUdExaY0dTT25ISE5P UTdDa2lVQmZ3MEl3MmNrNnhrSWhQd0xoS05MUzhCTytoRXBuZ1FscXp3PT0iLAotICAgICAgICJk ZXYiOiB0cnVlLAotLSAgICAgICJwZWVyIjogdHJ1ZSwKLSAgICAgICAiZnVuZGluZyI6IHsKLSAg ICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3ByaXZhdGVudW1iZXIvcmVzb2x2ZS1w a2ctbWFwcz9zcG9uc29yPTEiCi0gICAgICAgfQotQEAgLTU5MDgsNyArNTkxOSw2IEBACi0gICAg ICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3J4anMvLS9yeGpzLTcu OC4xLnRneiIsCi0gICAgICAgImludGVncml0eSI6ICJzaGE1MTItQUEzVFZqKzBBMml1SW9Ra1dF Sy90cUZqQnEyais2UE82WTB6SmN2ekxBRmhFRklPM0hMMHZsczloV0xuY1piQUFiSzBtYXI3b1o0 VjA3OUkvcVBNeGc9PSIsCi0gICAgICAgImRldiI6IHRydWUsCi0tICAgICAgInBlZXIiOiB0cnVl LAotICAgICAgICJkZXBlbmRlbmNpZXMiOiB7Ci0gICAgICAgICAidHNsaWIiOiAiXjIuMS4wIgot ICAgICAgIH0KLUBAIC02MDAwLDcgKzYwMTAsNiBAQAotICAgICAgICJyZXNvbHZlZCI6ICJodHRw czovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9zYXNzLWVtYmVkZGVkLy0vc2Fzcy1lbWJlZGRlZC0xLjgw LjYudGd6IiwKLSAgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1PZzRhcUJuYUEzb0pmSXBIYUx1 TkFUQXF6QlJnVUpEWUp5MlgxNVY1OWNvdDJ3WU90aVQvY2lQbnl1cTFvN3ZwREVlT2tIaEVkK21T dmlTbFhvRVR1Zz09IiwKLSAgICAgICAiZGV2IjogdHJ1ZSwKLS0gICAgICAicGVlciI6IHRydWUs Ci0gICAgICAgImRlcGVuZGVuY2llcyI6IHsKLSAgICAgICAgICJAYnVmYnVpbGQvcHJvdG9idWYi OiAiXjIuMC4wIiwKLSAgICAgICAgICJidWZmZXItYnVpbGRlciI6ICJeMC4yLjAiLAotQEAgLTYw MzksNiArNjA0OCwyNDQgQEAKLSAgICAgICAgICJzYXNzLWVtYmVkZGVkLXdpbjMyLXg2NCI6ICIx LjgwLjYiCi0gICAgICAgfQotICAgICB9LAotKyAgICAibm9kZV9tb2R1bGVzL3Nhc3MtZW1iZWRk ZWQtYW5kcm9pZC1hcm0iOiB7Ci0rICAgICAgInZlcnNpb24iOiAiMS44MC42IiwKLSsgICAgICAi cmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvc2Fzcy1lbWJlZGRlZC1hbmRy b2lkLWFybS8tL3Nhc3MtZW1iZWRkZWQtYW5kcm9pZC1hcm0tMS44MC42LnRneiIsCi0rICAgICAg ImludGVncml0eSI6ICJzaGE1MTItVWVVS01UUnNuejQvZGg3SXp2aGpPTnhhNC9qbVZwNTM5Q0hE ZDhWWk9zcWc5TTNIY05KTklrVXpRV2J1d1orblNsV3JUdW83VHZuM1hseXBvcENCenc9PSIsCi0r ICAgICAgImNwdSI6IFsKLSsgICAgICAgICJhcm0iCi0rICAgICAgXSwKLSsgICAgICAiZGV2Ijog dHJ1ZSwKLSsgICAgICAibGljZW5zZSI6ICJNSVQiLAotKyAgICAgICJvcHRpb25hbCI6IHRydWUs Ci0rICAgICAgIm9zIjogWwotKyAgICAgICAgImFuZHJvaWQiCi0rICAgICAgXSwKLSsgICAgICAi ZW5naW5lcyI6IHsKLSsgICAgICAgICJub2RlIjogIj49MTQuMC4wIgotKyAgICAgIH0KLSsgICAg fSwKLSsgICAgIm5vZGVfbW9kdWxlcy9zYXNzLWVtYmVkZGVkLWFuZHJvaWQtYXJtNjQiOiB7Ci0r ICAgICAgInZlcnNpb24iOiAiMS44MC42IiwKLSsgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9y ZWdpc3RyeS5ucG1qcy5vcmcvc2Fzcy1lbWJlZGRlZC1hbmRyb2lkLWFybTY0Ly0vc2Fzcy1lbWJl ZGRlZC1hbmRyb2lkLWFybTY0LTEuODAuNi50Z3oiLAotKyAgICAgICJpbnRlZ3JpdHkiOiAic2hh NTEyLTRyQzRaR00vazRFTlZqTFhuSzNKVHN0OGU4Rkk5TUhTb2wyRmw3ZENkWXlKM0tMbmx0NHFM NEFFWWZVOHpxMXRjQmI3Q0JPU1pWUitDekNLdWJuWGRnPT0iLAotKyAgICAgICJjcHUiOiBbCi0r ICAgICAgICAiYXJtNjQiCi0rICAgICAgXSwKLSsgICAgICAiZGV2IjogdHJ1ZSwKLSsgICAgICAi bGljZW5zZSI6ICJNSVQiLAotKyAgICAgICJvcHRpb25hbCI6IHRydWUsCi0rICAgICAgIm9zIjog WwotKyAgICAgICAgImFuZHJvaWQiCi0rICAgICAgXSwKLSsgICAgICAiZW5naW5lcyI6IHsKLSsg ICAgICAgICJub2RlIjogIj49MTQuMC4wIgotKyAgICAgIH0KLSsgICAgfSwKLSsgICAgIm5vZGVf bW9kdWxlcy9zYXNzLWVtYmVkZGVkLWFuZHJvaWQtaWEzMiI6IHsKLSsgICAgICAidmVyc2lvbiI6 ICIxLjgwLjYiLAotKyAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9y Zy9zYXNzLWVtYmVkZGVkLWFuZHJvaWQtaWEzMi8tL3Nhc3MtZW1iZWRkZWQtYW5kcm9pZC1pYTMy LTEuODAuNi50Z3oiLAotKyAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLUx4ejJTWEUyS2RIbnlu dUhGK0Q2ZmxEdnJkNTUvemFFQVdVZWthOU14RXI2Rm1SNjZkOFVCT0l5NUVUd0NTVWQvL1MvU0U1 Smw2b1RuSHBwZ0Qxek5BPT0iLAotKyAgICAgICJjcHUiOiBbCi0rICAgICAgICAiaWEzMiIKLSsg ICAgICBdLAotKyAgICAgICJkZXYiOiB0cnVlLAotKyAgICAgICJsaWNlbnNlIjogIk1JVCIsCi0r ICAgICAgIm9wdGlvbmFsIjogdHJ1ZSwKLSsgICAgICAib3MiOiBbCi0rICAgICAgICAiYW5kcm9p ZCIKLSsgICAgICBdLAotKyAgICAgICJlbmdpbmVzIjogewotKyAgICAgICAgIm5vZGUiOiAiPj0x NC4wLjAiCi0rICAgICAgfQotKyAgICB9LAotKyAgICAibm9kZV9tb2R1bGVzL3Nhc3MtZW1iZWRk ZWQtYW5kcm9pZC1yaXNjdjY0IjogewotKyAgICAgICJ2ZXJzaW9uIjogIjEuODAuNiIsCi0rICAg ICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3Nhc3MtZW1iZWRkZWQt YW5kcm9pZC1yaXNjdjY0Ly0vc2Fzcy1lbWJlZGRlZC1hbmRyb2lkLXJpc2N2NjQtMS44MC42LnRn eiIsCi0rICAgICAgImludGVncml0eSI6ICJzaGE1MTItaEtkeFkvb09xQitKSmhTb0JURE01REpP MWoveHR4UWdheWgyY0xDQ1V4MzdJUVFlM1NFZGMzVjJKRmYvNG1JbzVwZWFTNGNqcXd3U0FURits MnphWGc9PSIsCi0rICAgICAgImNwdSI6IFsKLSsgICAgICAgICJyaXNjdjY0IgotKyAgICAgIF0s Ci0rICAgICAgImRldiI6IHRydWUsCi0rICAgICAgImxpY2Vuc2UiOiAiTUlUIiwKLSsgICAgICAi b3B0aW9uYWwiOiB0cnVlLAotKyAgICAgICJvcyI6IFsKLSsgICAgICAgICJhbmRyb2lkIgotKyAg ICAgIF0sCi0rICAgICAgImVuZ2luZXMiOiB7Ci0rICAgICAgICAibm9kZSI6ICI+PTE0LjAuMCIK LSsgICAgICB9Ci0rICAgIH0sCi0rICAgICJub2RlX21vZHVsZXMvc2Fzcy1lbWJlZGRlZC1hbmRy b2lkLXg2NCI6IHsKLSsgICAgICAidmVyc2lvbiI6ICIxLjgwLjYiLAotKyAgICAgICJyZXNvbHZl ZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9zYXNzLWVtYmVkZGVkLWFuZHJvaWQteDY0 Ly0vc2Fzcy1lbWJlZGRlZC1hbmRyb2lkLXg2NC0xLjgwLjYudGd6IiwKLSsgICAgICAiaW50ZWdy aXR5IjogInNoYTUxMi1FYXAyRmkza1R4L3JWTEJzT25PcDVSWVByNStsRmpUWjY1MnpSMjRkbVlG ZTkvc0RnYXNha0pJT1BqT3ZEMmJSdUw5ejB1V0VZMUFYVmVlT1BlWktyZz09IiwKLSsgICAgICAi Y3B1IjogWwotKyAgICAgICAgIng2NCIKLSsgICAgICBdLAotKyAgICAgICJkZXYiOiB0cnVlLAot KyAgICAgICJsaWNlbnNlIjogIk1JVCIsCi0rICAgICAgIm9wdGlvbmFsIjogdHJ1ZSwKLSsgICAg ICAib3MiOiBbCi0rICAgICAgICAiYW5kcm9pZCIKLSsgICAgICBdLAotKyAgICAgICJlbmdpbmVz IjogewotKyAgICAgICAgIm5vZGUiOiAiPj0xNC4wLjAiCi0rICAgICAgfQotKyAgICB9LAotKyAg ICAibm9kZV9tb2R1bGVzL3Nhc3MtZW1iZWRkZWQtZGFyd2luLWFybTY0IjogewotKyAgICAgICJ2 ZXJzaW9uIjogIjEuODAuNiIsCi0rICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnku bnBtanMub3JnL3Nhc3MtZW1iZWRkZWQtZGFyd2luLWFybTY0Ly0vc2Fzcy1lbWJlZGRlZC1kYXJ3 aW4tYXJtNjQtMS44MC42LnRneiIsCi0rICAgICAgImludGVncml0eSI6ICJzaGE1MTItMG1uQXg4 VnE2R3hqM1BRdDNpbWdJVGZLMzNoaHFyU0tweUhTdWFiNzFnWlpuaTVvcHNkdG9nZ3EySmF3Vysx dGFSRlRFWndiWkpMS1owTUJEYndDQ0E9PSIsCi0rICAgICAgImNwdSI6IFsKLSsgICAgICAgICJh cm02NCIKLSsgICAgICBdLAotKyAgICAgICJkZXYiOiB0cnVlLAotKyAgICAgICJsaWNlbnNlIjog Ik1JVCIsCi0rICAgICAgIm9wdGlvbmFsIjogdHJ1ZSwKLSsgICAgICAib3MiOiBbCi0rICAgICAg ICAiZGFyd2luIgotKyAgICAgIF0sCi0rICAgICAgImVuZ2luZXMiOiB7Ci0rICAgICAgICAibm9k ZSI6ICI+PTE0LjAuMCIKLSsgICAgICB9Ci0rICAgIH0sCi0rICAgICJub2RlX21vZHVsZXMvc2Fz cy1lbWJlZGRlZC1kYXJ3aW4teDY0IjogewotKyAgICAgICJ2ZXJzaW9uIjogIjEuODAuNiIsCi0r ICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3Nhc3MtZW1iZWRk ZWQtZGFyd2luLXg2NC8tL3Nhc3MtZW1iZWRkZWQtZGFyd2luLXg2NC0xLjgwLjYudGd6IiwKLSsg ICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1JYjIweU5aRk9ySjdZVlQrbHRvZStKUU5LUGNSY2xN M2lMQUs2OVhaWlljU2VGTS83MlNDb1FCQWFWR0lwVDIzZHhEcDdGWGlFNGxPNjAyYzN4VFJ3UT09 IiwKLSsgICAgICAiY3B1IjogWwotKyAgICAgICAgIng2NCIKLSsgICAgICBdLAotKyAgICAgICJk ZXYiOiB0cnVlLAotKyAgICAgICJsaWNlbnNlIjogIk1JVCIsCi0rICAgICAgIm9wdGlvbmFsIjog dHJ1ZSwKLSsgICAgICAib3MiOiBbCi0rICAgICAgICAiZGFyd2luIgotKyAgICAgIF0sCi0rICAg ICAgImVuZ2luZXMiOiB7Ci0rICAgICAgICAibm9kZSI6ICI+PTE0LjAuMCIKLSsgICAgICB9Ci0r ICAgIH0sCi0rICAgICJub2RlX21vZHVsZXMvc2Fzcy1lbWJlZGRlZC1saW51eC1hcm0iOiB7Ci0r ICAgICAgInZlcnNpb24iOiAiMS44MC42IiwKLSsgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9y ZWdpc3RyeS5ucG1qcy5vcmcvc2Fzcy1lbWJlZGRlZC1saW51eC1hcm0vLS9zYXNzLWVtYmVkZGVk LWxpbnV4LWFybS0xLjgwLjYudGd6IiwKLSsgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1RUjBR NlRab3gvVGh1VTJyOWMwczNmS0NnVTJyWEFFb2NwaXRkZ3hGcDZ0dGErR3NRbE1GVjNvT04ydW5B YThCd251eGttZjBZT2FLME95L1R3emtYdz09IiwKLSsgICAgICAiY3B1IjogWwotKyAgICAgICAg ImFybSIKLSsgICAgICBdLAotKyAgICAgICJkZXYiOiB0cnVlLAotKyAgICAgICJsaWNlbnNlIjog Ik1JVCIsCi0rICAgICAgIm9wdGlvbmFsIjogdHJ1ZSwKLSsgICAgICAib3MiOiBbCi0rICAgICAg ICAibGludXgiCi0rICAgICAgXSwKLSsgICAgICAiZW5naW5lcyI6IHsKLSsgICAgICAgICJub2Rl IjogIj49MTQuMC4wIgotKyAgICAgIH0KLSsgICAgfSwKLSsgICAgIm5vZGVfbW9kdWxlcy9zYXNz LWVtYmVkZGVkLWxpbnV4LWFybTY0IjogewotKyAgICAgICJ2ZXJzaW9uIjogIjEuODAuNiIsCi0r ICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3Nhc3MtZW1iZWRk ZWQtbGludXgtYXJtNjQvLS9zYXNzLWVtYmVkZGVkLWxpbnV4LWFybTY0LTEuODAuNi50Z3oiLAot KyAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLW41cjk4cEJYYXdyUVFLYXhJWUNNTTF6RHBubmdz cXhUa09ybXZzWUxGaUFNQ1NiUjBsV2YvN3NCQjMzay9QbTBENmRzYnAzanBIaWxDb1FOS0kzakl3 PT0iLAotKyAgICAgICJjcHUiOiBbCi0rICAgICAgICAiYXJtNjQiCi0rICAgICAgXSwKLSsgICAg ICAiZGV2IjogdHJ1ZSwKLSsgICAgICAibGljZW5zZSI6ICJNSVQiLAotKyAgICAgICJvcHRpb25h bCI6IHRydWUsCi0rICAgICAgIm9zIjogWwotKyAgICAgICAgImxpbnV4IgotKyAgICAgIF0sCi0r ICAgICAgImVuZ2luZXMiOiB7Ci0rICAgICAgICAibm9kZSI6ICI+PTE0LjAuMCIKLSsgICAgICB9 Ci0rICAgIH0sCi0rICAgICJub2RlX21vZHVsZXMvc2Fzcy1lbWJlZGRlZC1saW51eC1pYTMyIjog ewotKyAgICAgICJ2ZXJzaW9uIjogIjEuODAuNiIsCi0rICAgICAgInJlc29sdmVkIjogImh0dHBz Oi8vcmVnaXN0cnkubnBtanMub3JnL3Nhc3MtZW1iZWRkZWQtbGludXgtaWEzMi8tL3Nhc3MtZW1i ZWRkZWQtbGludXgtaWEzMi0xLjgwLjYudGd6IiwKLSsgICAgICAiaW50ZWdyaXR5IjogInNoYTUx Mi1PNmRXWmRjT2tyeVJkREN4Vk1HT2VWb3dnYmxwRGdWY0F1UnRaMUYxWDdYZmJwRHJpVFFtNjRE Kzl2VlpJcnl3WVNQb0pmUU1KSjY2MmNyMHdVczlJUT09IiwKLSsgICAgICAiY3B1IjogWwotKyAg ICAgICAgImlhMzIiCi0rICAgICAgXSwKLSsgICAgICAiZGV2IjogdHJ1ZSwKLSsgICAgICAibGlj ZW5zZSI6ICJNSVQiLAotKyAgICAgICJvcHRpb25hbCI6IHRydWUsCi0rICAgICAgIm9zIjogWwot KyAgICAgICAgImxpbnV4IgotKyAgICAgIF0sCi0rICAgICAgImVuZ2luZXMiOiB7Ci0rICAgICAg ICAibm9kZSI6ICI+PTE0LjAuMCIKLSsgICAgICB9Ci0rICAgIH0sCi0rICAgICJub2RlX21vZHVs ZXMvc2Fzcy1lbWJlZGRlZC1saW51eC1tdXNsLWFybSI6IHsKLSsgICAgICAidmVyc2lvbiI6ICIx LjgwLjYiLAotKyAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9z YXNzLWVtYmVkZGVkLWxpbnV4LW11c2wtYXJtLy0vc2Fzcy1lbWJlZGRlZC1saW51eC1tdXNsLWFy bS0xLjgwLjYudGd6IiwKLSsgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1YOUZDOHM4ZnZRR1Jp WGMrZUFUbFo1N040NElxM25OYTBNMHVnaTN5c2RKd2thTll2T2VTNFF6QkhLUUFhdzNRaVRxZHhU bkxVSEhWQmt5emRDaTlwdz09IiwKLSsgICAgICAiY3B1IjogWwotKyAgICAgICAgImFybSIKLSsg ICAgICBdLAotKyAgICAgICJkZXYiOiB0cnVlLAotKyAgICAgICJsaWNlbnNlIjogIk1JVCIsCi0r ICAgICAgIm9wdGlvbmFsIjogdHJ1ZSwKLSsgICAgICAib3MiOiBbCi0rICAgICAgICAibGludXgi Ci0rICAgICAgXSwKLSsgICAgICAiZW5naW5lcyI6IHsKLSsgICAgICAgICJub2RlIjogIj49MTQu MC4wIgotKyAgICAgIH0KLSsgICAgfSwKLSsgICAgIm5vZGVfbW9kdWxlcy9zYXNzLWVtYmVkZGVk LWxpbnV4LW11c2wtYXJtNjQiOiB7Ci0rICAgICAgInZlcnNpb24iOiAiMS44MC42IiwKLSsgICAg ICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvc2Fzcy1lbWJlZGRlZC1s aW51eC1tdXNsLWFybTY0Ly0vc2Fzcy1lbWJlZGRlZC1saW51eC1tdXNsLWFybTY0LTEuODAuNi50 Z3oiLAotKyAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLVZlVVNIVWkzTUFzdk9sZzlRSTRYLzJq MDRoMTY1OWFFKzdxS1AvMjgyQ1lCVHJHa2pGR1NYWmhJa2k5V0tXRGdJcERpU0luUllYZlFRUldo UGhqQ0RnPT0iLAotKyAgICAgICJjcHUiOiBbCi0rICAgICAgICAiYXJtNjQiCi0rICAgICAgXSwK LSsgICAgICAiZGV2IjogdHJ1ZSwKLSsgICAgICAibGljZW5zZSI6ICJNSVQiLAotKyAgICAgICJv cHRpb25hbCI6IHRydWUsCi0rICAgICAgIm9zIjogWwotKyAgICAgICAgImxpbnV4IgotKyAgICAg IF0sCi0rICAgICAgImVuZ2luZXMiOiB7Ci0rICAgICAgICAibm9kZSI6ICI+PTE0LjAuMCIKLSsg ICAgICB9Ci0rICAgIH0sCi0rICAgICJub2RlX21vZHVsZXMvc2Fzcy1lbWJlZGRlZC1saW51eC1t dXNsLWlhMzIiOiB7Ci0rICAgICAgInZlcnNpb24iOiAiMS44MC42IiwKLSsgICAgICAicmVzb2x2 ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvc2Fzcy1lbWJlZGRlZC1saW51eC1tdXNs LWlhMzIvLS9zYXNzLWVtYmVkZGVkLWxpbnV4LW11c2wtaWEzMi0xLjgwLjYudGd6IiwKLSsgICAg ICAiaW50ZWdyaXR5IjogInNoYTUxMi1HcWl0UzJOYWI4YWgwK3dmQ3FheFcxaG5JMXBpQzA4Rmlt TDYrbE05WVdLNURiQ09PRjgySWFwYnZKT3kwZmVVbWQvd05uSG15TlRnRTloMHpWTUZkUT09IiwK LSsgICAgICAiY3B1IjogWwotKyAgICAgICAgImlhMzIiCi0rICAgICAgXSwKLSsgICAgICAiZGV2 IjogdHJ1ZSwKLSsgICAgICAibGljZW5zZSI6ICJNSVQiLAotKyAgICAgICJvcHRpb25hbCI6IHRy dWUsCi0rICAgICAgIm9zIjogWwotKyAgICAgICAgImxpbnV4IgotKyAgICAgIF0sCi0rICAgICAg ImVuZ2luZXMiOiB7Ci0rICAgICAgICAibm9kZSI6ICI+PTE0LjAuMCIKLSsgICAgICB9Ci0rICAg IH0sCi0rICAgICJub2RlX21vZHVsZXMvc2Fzcy1lbWJlZGRlZC1saW51eC1tdXNsLXJpc2N2NjQi OiB7Ci0rICAgICAgInZlcnNpb24iOiAiMS44MC42IiwKLSsgICAgICAicmVzb2x2ZWQiOiAiaHR0 cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvc2Fzcy1lbWJlZGRlZC1saW51eC1tdXNsLXJpc2N2NjQv LS9zYXNzLWVtYmVkZGVkLWxpbnV4LW11c2wtcmlzY3Y2NC0xLjgwLjYudGd6IiwKLSsgICAgICAi aW50ZWdyaXR5IjogInNoYTUxMi15U3MxNXo3UVNSUlFLL2FCeUVFcWFKTFlXL3NUcGZ5bmVmTlBa Q3RzVk5WRXpOUnd5K0RScHhOQ2h0eG8rUWpLcTk3b2NYRVRiZEc1S0xpazdRT1RKZz09IiwKLSsg ICAgICAiY3B1IjogWwotKyAgICAgICAgInJpc2N2NjQiCi0rICAgICAgXSwKLSsgICAgICAiZGV2 IjogdHJ1ZSwKLSsgICAgICAibGljZW5zZSI6ICJNSVQiLAotKyAgICAgICJvcHRpb25hbCI6IHRy dWUsCi0rICAgICAgIm9zIjogWwotKyAgICAgICAgImxpbnV4IgotKyAgICAgIF0sCi0rICAgICAg ImVuZ2luZXMiOiB7Ci0rICAgICAgICAibm9kZSI6ICI+PTE0LjAuMCIKLSsgICAgICB9Ci0rICAg IH0sCi0gICAgICJub2RlX21vZHVsZXMvc2Fzcy1lbWJlZGRlZC1saW51eC1tdXNsLXg2NCI6IHsK LSAgICAgICAidmVyc2lvbiI6ICIxLjgwLjYiLAotICAgICAgICJyZXNvbHZlZCI6ICJodHRwczov L3JlZ2lzdHJ5Lm5wbWpzLm9yZy9zYXNzLWVtYmVkZGVkLWxpbnV4LW11c2wteDY0Ly0vc2Fzcy1l bWJlZGRlZC1saW51eC1tdXNsLXg2NC0xLjgwLjYudGd6IiwKLUBAIC02MDUxLDcgKzYyOTgsMjMg QEAKLSAgICAgICAib3MiOiBbCi0gICAgICAgICAibGludXgiCi0gICAgICAgXSwKLS0gICAgICAi cGVlciI6IHRydWUsCi0rICAgICAgImVuZ2luZXMiOiB7Ci0rICAgICAgICAibm9kZSI6ICI+PTE0 LjAuMCIKLSsgICAgICB9Ci0rICAgIH0sCi0rICAgICJub2RlX21vZHVsZXMvc2Fzcy1lbWJlZGRl ZC1saW51eC1yaXNjdjY0IjogewotKyAgICAgICJ2ZXJzaW9uIjogIjEuODAuNiIsCi0rICAgICAg InJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3Nhc3MtZW1iZWRkZWQtbGlu dXgtcmlzY3Y2NC8tL3Nhc3MtZW1iZWRkZWQtbGludXgtcmlzY3Y2NC0xLjgwLjYudGd6IiwKLSsg ICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1BeW9ISjNpY1Y5eHVKanExWXpKcXBFajJYZmlDL0tC a1ZZVFVyQ0VMS2lYUDBETjFnaS9CcFV3Wk5DQWdDTTNDeUVkTWVmNExRTS96dENZSnhZemR5Zz09 IiwKLSsgICAgICAiY3B1IjogWwotKyAgICAgICAgInJpc2N2NjQiCi0rICAgICAgXSwKLSsgICAg ICAiZGV2IjogdHJ1ZSwKLSsgICAgICAibGljZW5zZSI6ICJNSVQiLAotKyAgICAgICJvcHRpb25h bCI6IHRydWUsCi0rICAgICAgIm9zIjogWwotKyAgICAgICAgImxpbnV4IgotKyAgICAgIF0sCi0g ICAgICAgImVuZ2luZXMiOiB7Ci0gICAgICAgICAibm9kZSI6ICI+PTE0LjAuMCIKLSAgICAgICB9 Ci1AQCAtNjA2OCw3ICs2MzMxLDU3IEBACi0gICAgICAgIm9zIjogWwotICAgICAgICAgImxpbnV4 IgotICAgICAgIF0sCi0tICAgICAgInBlZXIiOiB0cnVlLAotKyAgICAgICJlbmdpbmVzIjogewot KyAgICAgICAgIm5vZGUiOiAiPj0xNC4wLjAiCi0rICAgICAgfQotKyAgICB9LAotKyAgICAibm9k ZV9tb2R1bGVzL3Nhc3MtZW1iZWRkZWQtd2luMzItYXJtNjQiOiB7Ci0rICAgICAgInZlcnNpb24i OiAiMS44MC42IiwKLSsgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5v cmcvc2Fzcy1lbWJlZGRlZC13aW4zMi1hcm02NC8tL3Nhc3MtZW1iZWRkZWQtd2luMzItYXJtNjQt MS44MC42LnRneiIsCi0rICAgICAgImludGVncml0eSI6ICJzaGE1MTItMjl3RVRRaTF5a2VWdnBk NHpNVm9rcFFLRlNPWnNrR0p6WmF3dXVOQ2RvN0JIakhLSVJEc3FiejhZVDFDZXdIUEJzaEkwaGZE MjFmZW5tanhZakdYUFE9PSIsCi0rICAgICAgImNwdSI6IFsKLSsgICAgICAgICJhcm02NCIKLSsg ICAgICBdLAotKyAgICAgICJkZXYiOiB0cnVlLAotKyAgICAgICJsaWNlbnNlIjogIk1JVCIsCi0r ICAgICAgIm9wdGlvbmFsIjogdHJ1ZSwKLSsgICAgICAib3MiOiBbCi0rICAgICAgICAid2luMzIi Ci0rICAgICAgXSwKLSsgICAgICAiZW5naW5lcyI6IHsKLSsgICAgICAgICJub2RlIjogIj49MTQu MC4wIgotKyAgICAgIH0KLSsgICAgfSwKLSsgICAgIm5vZGVfbW9kdWxlcy9zYXNzLWVtYmVkZGVk LXdpbjMyLWlhMzIiOiB7Ci0rICAgICAgInZlcnNpb24iOiAiMS44MC42IiwKLSsgICAgICAicmVz b2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvc2Fzcy1lbWJlZGRlZC13aW4zMi1p YTMyLy0vc2Fzcy1lbWJlZGRlZC13aW4zMi1pYTMyLTEuODAuNi50Z3oiLAotKyAgICAgICJpbnRl Z3JpdHkiOiAic2hhNTEyLTFzM09wSzJpVElmSUwvYTkxUWhBUW5mZnNidVdmbnNNOEx4NEZ4dDBm N0VybnhqQ1Y2cThNVUZUVi9VaGNMdEx5VEZuUENBNjJETGpwMktHQ2pNSTlBPT0iLAotKyAgICAg ICJjcHUiOiBbCi0rICAgICAgICAiaWEzMiIKLSsgICAgICBdLAotKyAgICAgICJkZXYiOiB0cnVl LAotKyAgICAgICJsaWNlbnNlIjogIk1JVCIsCi0rICAgICAgIm9wdGlvbmFsIjogdHJ1ZSwKLSsg ICAgICAib3MiOiBbCi0rICAgICAgICAid2luMzIiCi0rICAgICAgXSwKLSsgICAgICAiZW5naW5l cyI6IHsKLSsgICAgICAgICJub2RlIjogIj49MTQuMC4wIgotKyAgICAgIH0KLSsgICAgfSwKLSsg ICAgIm5vZGVfbW9kdWxlcy9zYXNzLWVtYmVkZGVkLXdpbjMyLXg2NCI6IHsKLSsgICAgICAidmVy c2lvbiI6ICIxLjgwLjYiLAotKyAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5w bWpzLm9yZy9zYXNzLWVtYmVkZGVkLXdpbjMyLXg2NC8tL3Nhc3MtZW1iZWRkZWQtd2luMzIteDY0 LTEuODAuNi50Z3oiLAotKyAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLTBwSDRacjlzaWxIa2Nt TFBDMGdobkQzREkwdk1zakE3ZEt2R1IzMi9SYmJqT1N2SFY1Y0RRUkxpdVZKQVBwMzRkZk1BN2tK ZDF5c1NjaFJkSDBpZ0FRPT0iLAotKyAgICAgICJjcHUiOiBbCi0rICAgICAgICAieDY0IgotKyAg ICAgIF0sCi0rICAgICAgImRldiI6IHRydWUsCi0rICAgICAgImxpY2Vuc2UiOiAiTUlUIiwKLSsg ICAgICAib3B0aW9uYWwiOiB0cnVlLAotKyAgICAgICJvcyI6IFsKLSsgICAgICAgICJ3aW4zMiIK LSsgICAgICBdLAotICAgICAgICJlbmdpbmVzIjogewotICAgICAgICAgIm5vZGUiOiAiPj0xNC4w LjAiCi0gICAgICAgfQotQEAgLTYwNzgsNyArNjM5MSw2IEBACi0gICAgICAgInJlc29sdmVkIjog Imh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3N1cHBvcnRzLWNvbG9yLy0vc3VwcG9ydHMtY29s b3ItOC4xLjEudGd6IiwKLSAgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1NcFVFTjJPb2R0VXp4 dktRbDcyY1VGN1JRNUVpSHNHdlNzVkcwaWE5YzVSYldHTDJDSTRDN0VwUFM4VVRCSXBsbmx6WmlO dVY1NncrRnVOeHkzdHkyUT09IiwKLSAgICAgICAiZGV2IjogdHJ1ZSwKLS0gICAgICAicGVlciI6 IHRydWUsCi0gICAgICAgImRlcGVuZGVuY2llcyI6IHsKLSAgICAgICAgICJoYXMtZmxhZyI6ICJe NC4wLjAiCi0gICAgICAgfSwKLUBAIC02NTI5LDYgKzY4NDEsNyBAQAotICAgICAgICAgICAidXJs IjogImh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9zdHlsZWxpbnQiCi0gICAgICAgICB9Ci0g ICAgICAgXSwKLSsgICAgICAicGVlciI6IHRydWUsCi0gICAgICAgImRlcGVuZGVuY2llcyI6IHsK LSAgICAgICAgICJAY3NzdG9vbHMvY3NzLXBhcnNlci1hbGdvcml0aG1zIjogIl4zLjAuMSIsCi0g ICAgICAgICAiQGNzc3Rvb2xzL2Nzcy10b2tlbml6ZXIiOiAiXjMuMC4xIiwKLUBAIC03MTgzLDYg Kzc0OTYsNyBAQAotICAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9y Zy90eXBlc2NyaXB0Ly0vdHlwZXNjcmlwdC01LjYuMy50Z3oiLAotICAgICAgICJpbnRlZ3JpdHki OiAic2hhNTEyLWhqY1MxbWhmdXlpNFdXOElXdGpQN2JyRHJHMmN1RFp1a3lyWXJTYXVvWEdOZ3gw Uzd6Y2VQMDdhZFlrSnljRXI1NkJPVVROUHpiSW5vb2lOM2ZuMXF3PT0iLAotICAgICAgICJkZXYi OiB0cnVlLAotKyAgICAgICJwZWVyIjogdHJ1ZSwKLSAgICAgICAiYmluIjogewotICAgICAgICAg InRzYyI6ICJiaW4vdHNjIiwKLSAgICAgICAgICJ0c3NlcnZlciI6ICJiaW4vdHNzZXJ2ZXIiCi1A QCAtNzI0NSw4ICs3NTU5LDcgQEAKLSAgICAgICAidmVyc2lvbiI6ICI2LjAuMCIsCi0gICAgICAg InJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3ZhcmludC8tL3ZhcmludC02 LjAuMC50Z3oiLAotICAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLWNYRUlXNmNmcjE1bEZ2NTYz azRHdVZ1Vy9maXdqa255dEQzN2pJT0xTZFNXdU9JNlduTy9vS3dtUDJGUVRVMmwwMUxQOC9NNVRT QUpwelVhR2UzdVdnPT0iLAotLSAgICAgICJkZXYiOiB0cnVlLAotLSAgICAgICJwZWVyIjogdHJ1 ZQotKyAgICAgICJkZXYiOiB0cnVlCi0gICAgIH0sCi0gICAgICJub2RlX21vZHVsZXMvdmljdG9y eS1hcmVhIjogewotICAgICAgICJ2ZXJzaW9uIjogIjM3LjMuMSIsCi1AQCAtNzgzNywyMSArODE1 MCwyMiBAQAotICAgICAgICJ2ZXJzaW9uIjogIjIuMi4yIiwKLSAgICAgICAicmVzb2x2ZWQiOiAi aHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvQGJ1ZmJ1aWxkL3Byb3RvYnVmLy0vcHJvdG9idWYt Mi4yLjIudGd6IiwKLSAgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1VTnRQQ2Jyd3JlbnBtclh1 UnduOWpZcFBvd2VOWGo4WDVzTXZZZ3NxWXlhSDhqUTZMZlVKU2szZEpMbkJLKzZzZllQckY0aUFJ bzVzZDVIUSt0Zzc1QT09IiwKLS0gICAgICAiZGV2IjogdHJ1ZSwKLS0gICAgICAicGVlciI6IHRy dWUKLSsgICAgICAiZGV2IjogdHJ1ZQotICAgICB9LAotICAgICAiQGNzc3Rvb2xzL2Nzcy1wYXJz ZXItYWxnb3JpdGhtcyI6IHsKLSAgICAgICAidmVyc2lvbiI6ICIzLjAuNCIsCi0gICAgICAgInJl c29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL0Bjc3N0b29scy9jc3MtcGFyc2Vy LWFsZ29yaXRobXMvLS9jc3MtcGFyc2VyLWFsZ29yaXRobXMtMy4wLjQudGd6IiwKLSAgICAgICAi aW50ZWdyaXR5IjogInNoYTUxMi1VcDdyQm9WNzdydjI5ZDN1S0hVSVZ1YnoxQlRjZ3lVSzcySXZD UUFiZmJNdjU4NHhIY0dLQ0tiV2g3aThoUHJSSjdxVTRZOElPM0lZOW0raVRCN1AzQT09IiwKLSAg ICAgICAiZGV2IjogdHJ1ZSwKLSsgICAgICAicGVlciI6IHRydWUsCi0gICAgICAgInJlcXVpcmVz Ijoge30KLSAgICAgfSwKLSAgICAgIkBjc3N0b29scy9jc3MtdG9rZW5pemVyIjogewotICAgICAg ICJ2ZXJzaW9uIjogIjMuMC4zIiwKLSAgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3Ry eS5ucG1qcy5vcmcvQGNzc3Rvb2xzL2Nzcy10b2tlbml6ZXIvLS9jc3MtdG9rZW5pemVyLTMuMC4z LnRneiIsCi0gICAgICAgImludGVncml0eSI6ICJzaGE1MTItVUpuam9Gc214ZktVZE5ZZFdnT0Iw bVdVeXB1THZBZlFQSDErcHl2UkpzNmV1b3diRmtGQzZQMTN3MWw4bUp5aTN2eFlNeGM5a2xkNWpa RUdSUXM2Ync9PSIsCi0tICAgICAgImRldiI6IHRydWUKLSsgICAgICAiZGV2IjogdHJ1ZSwKLSsg ICAgICAicGVlciI6IHRydWUKLSAgICAgfSwKLSAgICAgIkBjc3N0b29scy9tZWRpYS1xdWVyeS1s aXN0LXBhcnNlciI6IHsKLSAgICAgICAidmVyc2lvbiI6ICIzLjAuMSIsCi1AQCAtODExNiw2ICs4 NDMwLDcgQEAKLSAgICAgICAidmVyc2lvbiI6ICIxLjIuMzYiLAotICAgICAgICJyZXNvbHZlZCI6 ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9AZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtc3Zn LWNvcmUvLS9mb250YXdlc29tZS1zdmctY29yZS0xLjIuMzYudGd6IiwKLSAgICAgICAiaW50ZWdy aXR5IjogInNoYTUxMi1ZVWNzTFFLWWI2RG1hSmpJSGREV3BCSUdDY3lFL1crcC9MTUd2alFlbTU1 TW0yWFdWQVA1a1dUTUtXTHY5bHdwQ1ZqcEx4UHlPTU95VW9jUDFHeHJ0QT09IiwKLSsgICAgICAi cGVlciI6IHRydWUsCi0gICAgICAgInJlcXVpcmVzIjogewotICAgICAgICAgIkBmb3J0YXdlc29t ZS9mb250YXdlc29tZS1jb21tb24tdHlwZXMiOiAiXjAuMi4zNiIKLSAgICAgICB9Ci1AQCAtODE4 Nyw5ICs4NTAyLDkgQEAKLSAgICAgICAiZGV2IjogdHJ1ZQotICAgICB9LAotICAgICAiQGlzYWFj cy9icmFjZS1leHBhbnNpb24iOiB7Ci0tICAgICAgInZlcnNpb24iOiAiNS4wLjAiLAotLSAgICAg ICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9AaXNhYWNzL2JyYWNlLWV4 cGFuc2lvbi8tL2JyYWNlLWV4cGFuc2lvbi01LjAuMC50Z3oiLAotLSAgICAgICJpbnRlZ3JpdHki OiAic2hhNTEyLVpUNTVCRExWMHl2MFJCbTJjek1pWitTcUNHTzdBdm1PTTNHL3cyeGhWUEgrdGUw YUtnRmptQnZHbEwxZEgrcWwydGdHTzNNVnJiYjNqQ0t5dnBnbnhBPT0iLAotKyAgICAgICJ2ZXJz aW9uIjogIjUuMC4xIiwKLSsgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1q cy5vcmcvQGlzYWFjcy9icmFjZS1leHBhbnNpb24vLS9icmFjZS1leHBhbnNpb24tNS4wLjEudGd6 IiwKLSsgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1XTXo3MVQxSlM2MjRuV2oybjJmbllBdVBv dmh2N0VVaGs2OVI2aTlkc1Z5enh0NWVNM2Jqd3ZnazlMK0FQRTFUUnNjR3lzQVZNQU5rQjBqaDBM UVpyUT09IiwKLSAgICAgICAiZGV2IjogdHJ1ZSwKLSAgICAgICAicmVxdWlyZXMiOiB7Ci0gICAg ICAgICAiQGlzYWFjcy9iYWxhbmNlZC1tYXRjaCI6ICJeNC4wLjEiCi1AQCAtODQ1OCw3ICs4Nzcz LDYgQEAKLSAgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvQHR5 cGVzY3JpcHQtZXNsaW50L3BhcnNlci8tL3BhcnNlci04LjEzLjAudGd6IiwKLSAgICAgICAiaW50 ZWdyaXR5IjogInNoYTUxMi13MHhwK3hHZzh1L25PTmNHdzFVWEFyNmNqQ1BVMXcwWFZ5QnM2WnFh ajVlTG14a0tRQUJ5VGRWL3VHZ05ONXRWdk4va0twb1FsUDJjTDdSK2FqWlpJUT09IiwKLSAgICAg ICAiZGV2IjogdHJ1ZSwKLS0gICAgICAicGVlciI6IHRydWUsCi0gICAgICAgInJlcXVpcmVzIjog ewotICAgICAgICAgIkB0eXBlc2NyaXB0LWVzbGludC9zY29wZS1tYW5hZ2VyIjogIjguMTMuMCIs Ci0gICAgICAgICAiQHR5cGVzY3JpcHQtZXNsaW50L3R5cGVzIjogIjguMTMuMCIsCi1AQCAtODQ3 Miw3ICs4Nzg2LDYgQEAKLSAgICAgICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnku bnBtanMub3JnL0B0eXBlc2NyaXB0LWVzbGludC9zY29wZS1tYW5hZ2VyLy0vc2NvcGUtbWFuYWdl ci04LjEzLjAudGd6IiwKLSAgICAgICAgICAgImludGVncml0eSI6ICJzaGE1MTItWHNHV3d3MG9k Y1VUMGdKb0JaMURldWxZMStqa2FIVWNpVXE0aktOdjRjcEluYnZ2cnREb3lCSDlyRS9uMlYyOXdR SlBrOGlDSDF3aXByYTlCaG1pTUE9PSIsCi0gICAgICAgICAgICJkZXYiOiB0cnVlLAotLSAgICAg ICAgICAicGVlciI6IHRydWUsCi0gICAgICAgICAgICJyZXF1aXJlcyI6IHsKLSAgICAgICAgICAg ICAiQHR5cGVzY3JpcHQtZXNsaW50L3R5cGVzIjogIjguMTMuMCIsCi0gICAgICAgICAgICAgIkB0 eXBlc2NyaXB0LWVzbGludC92aXNpdG9yLWtleXMiOiAiOC4xMy4wIgotQEAgLTg0ODMsNyArODc5 Niw2IEBACi0gICAgICAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9y Zy9AdHlwZXNjcmlwdC1lc2xpbnQvdmlzaXRvci1rZXlzLy0vdmlzaXRvci1rZXlzLTguMTMuMC50 Z3oiLAotICAgICAgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi03Ti8rbHp0SnFINE1yZjBsYjEw Ui9DYkkxRWFBTU1HeUY1eTBvSnZGb0FoYWZ3Z2lSQTdUWHlkOFRGbjhGQzhrNXkyZFRzWW9nZzIz OHFhdlJHTm5sdz09IiwKLSAgICAgICAgICAgImRldiI6IHRydWUsCi0tICAgICAgICAgICJwZWVy IjogdHJ1ZSwKLSAgICAgICAgICAgInJlcXVpcmVzIjogewotICAgICAgICAgICAgICJAdHlwZXNj cmlwdC1lc2xpbnQvdHlwZXMiOiAiOC4xMy4wIiwKLSAgICAgICAgICAgICAiZXNsaW50LXZpc2l0 b3Ita2V5cyI6ICJeMy40LjMiCi1AQCAtODU0OSwxNSArODg2MSwxMyBAQAotICAgICAgICJ2ZXJz aW9uIjogIjguMTMuMCIsCi0gICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBt anMub3JnL0B0eXBlc2NyaXB0LWVzbGludC90eXBlcy8tL3R5cGVzLTguMTMuMC50Z3oiLAotICAg ICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLTRjeUZFckpldEZMY2tjVGhSVUZkUmVXSmpWc1BDcXlC bEpUaTZJREVwYzFHV0NJSVpSRnhWcHBqV0xJTWNRaE5HaGRXSkpSWUZIcEhvRFd2TWxEem5nPT0i LAotLSAgICAgICJkZXYiOiB0cnVlLAotLSAgICAgICJwZWVyIjogdHJ1ZQotKyAgICAgICJkZXYi OiB0cnVlCi0gICAgIH0sCi0gICAgICJAdHlwZXNjcmlwdC1lc2xpbnQvdHlwZXNjcmlwdC1lc3Ry ZWUiOiB7Ci0gICAgICAgInZlcnNpb24iOiAiOC4xMy4wIiwKLSAgICAgICAicmVzb2x2ZWQiOiAi aHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvQHR5cGVzY3JpcHQtZXNsaW50L3R5cGVzY3JpcHQt ZXN0cmVlLy0vdHlwZXNjcmlwdC1lc3RyZWUtOC4xMy4wLnRneiIsCi0gICAgICAgImludGVncml0 eSI6ICJzaGE1MTItdjdTQ0lHbVZzUksyQ3kvTFRMR04yMnVlYTZTYVVJbHBCY08vZ25NR1QvN3pQ dHhwOTBicGhjR2Y0ZnlyQ1FsM1p0aUJLcVZURzMyaGI2NjhvSVl5MWc9PSIsCi0gICAgICAgImRl diI6IHRydWUsCi0tICAgICAgInBlZXIiOiB0cnVlLAotICAgICAgICJyZXF1aXJlcyI6IHsKLSAg ICAgICAgICJAdHlwZXNjcmlwdC1lc2xpbnQvdHlwZXMiOiAiOC4xMy4wIiwKLSAgICAgICAgICJA dHlwZXNjcmlwdC1lc2xpbnQvdmlzaXRvci1rZXlzIjogIjguMTMuMCIsCi1AQCAtODU3NCw3ICs4 ODg0LDYgQEAKLSAgICAgICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMu b3JnL0B0eXBlc2NyaXB0LWVzbGludC92aXNpdG9yLWtleXMvLS92aXNpdG9yLWtleXMtOC4xMy4w LnRneiIsCi0gICAgICAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLTdOLytsenRKcUg0TXJmMGxi MTBSL0NiSTFFYUFNTUd5RjV5MG9KdkZvQWhhZndnaVJBN1RYeWQ4VEZuOEZDOGs1eTJkVHNZb2dn MjM4cWF2UkdObmx3PT0iLAotICAgICAgICAgICAiZGV2IjogdHJ1ZSwKLS0gICAgICAgICAgInBl ZXIiOiB0cnVlLAotICAgICAgICAgICAicmVxdWlyZXMiOiB7Ci0gICAgICAgICAgICAgIkB0eXBl c2NyaXB0LWVzbGludC90eXBlcyI6ICI4LjEzLjAiLAotICAgICAgICAgICAgICJlc2xpbnQtdmlz aXRvci1rZXlzIjogIl4zLjQuMyIKLUBAIC04NjUxLDEzICs4OTYwLDE1IEBACi0gICAgICJAeHRl cm0veHRlcm0iOiB7Ci0gICAgICAgInZlcnNpb24iOiAiNS41LjAiLAotICAgICAgICJyZXNvbHZl ZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9AeHRlcm0veHRlcm0vLS94dGVybS01LjUu MC50Z3oiLAotLSAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLWhxSkhZYVFiNU9wdE51bm55QW5r SHlNOGFDaloxTUVJRFRRdTFpSWJiVEQveG9wczkxTkI1eXExWksvZEMySkRiVld0RjIzelV0bDlK RTJOcXdUODdBPT0iCi0rICAgICAgImludGVncml0eSI6ICJzaGE1MTItaHFKSFlhUWI1T3B0TnVu bnlBbmtIeU04YUNqWjFNRUlEVFF1MWlJYmJURC94b3BzOTFOQjV5cTFaSy9kQzJKRGJWV3RGMjN6 VXRsOUpFMk5xd1Q4N0E9PSIsCi0rICAgICAgInBlZXIiOiB0cnVlCi0gICAgIH0sCi0gICAgICJh Y29ybiI6IHsKLSAgICAgICAidmVyc2lvbiI6ICI4LjE0LjAiLAotICAgICAgICJyZXNvbHZlZCI6 ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9hY29ybi8tL2Fjb3JuLTguMTQuMC50Z3oiLAot ICAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLWNsNjY5bkNKVFpCc0w5N09GNGtVUW01ZzVoQzJ1 aWhrME54WTNXRU5BQzBUWWRJTFZrQXlIeW1BbnRneEdrbDdLK3QwY1hJckg1c2l5NVM0WGtGeWNB PT0iLAotLSAgICAgICJkZXYiOiB0cnVlCi0rICAgICAgImRldiI6IHRydWUsCi0rICAgICAgInBl ZXIiOiB0cnVlCi0gICAgIH0sCi0gICAgICJhY29ybi1qc3giOiB7Ci0gICAgICAgInZlcnNpb24i OiAiNS4zLjIiLAotQEAgLTg5MTgsMjIgKzkyMjksMTkgQEAKLSAgICAgICAidmVyc2lvbiI6ICIw LjIuMCIsCi0gICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2J1 ZmZlci1idWlsZGVyLy0vYnVmZmVyLWJ1aWxkZXItMC4yLjAudGd6IiwKLSAgICAgICAiaW50ZWdy aXR5IjogInNoYTUxMi03VlBNRVB1WXpuUFNvUjIxTkUxenZkMlhuYTZjL0Nsb2laQ2ZjTVhSMUpu eTZQalgwTjROc2EzOHpjQkZvL0ZNSytCbEErRkxLYkpDUTBpMnl4cCtYZz09IiwKLS0gICAgICAi ZGV2IjogdHJ1ZSwKLS0gICAgICAicGVlciI6IHRydWUKLSsgICAgICAiZGV2IjogdHJ1ZQotICAg ICB9LAotICAgICAiYnVpbHRpbi1tb2R1bGVzIjogewotICAgICAgICJ2ZXJzaW9uIjogIjMuMy4w IiwKLSAgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvYnVpbHRp bi1tb2R1bGVzLy0vYnVpbHRpbi1tb2R1bGVzLTMuMy4wLnRneiIsCi0gICAgICAgImludGVncml0 eSI6ICJzaGE1MTItemhhQ0RpY2RMdVdONVViTjVJTW5GcU5NaE5mbzkxOXNIODV5Mi9lYSs1WWc5 VHNUa2VaeHBMK0pMYnA2Y2dZRlM0c1JMcDNZVjRTNnlEdXFWV0hZT3c9PSIsCi0tICAgICAgImRl diI6IHRydWUsCi0tICAgICAgInBlZXIiOiB0cnVlCi0rICAgICAgImRldiI6IHRydWUKLSAgICAg fSwKLSAgICAgImJ1aWx0aW5zIjogewotICAgICAgICJ2ZXJzaW9uIjogIjUuMS4wIiwKLSAgICAg ICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvYnVpbHRpbnMvLS9idWls dGlucy01LjEuMC50Z3oiLAotICAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLVNXOWx6R1RMdldU UDFBWTh4ZUFNWmltcURySWFTZExRVWNWcjlETWVmNTFuaUowMjJSaTg3U3dSUktZbTRBNmlIZmtQ YWlWVXUvRHV3MldjNEo3a0tnPT0iLAotICAgICAgICJkZXYiOiB0cnVlLAotLSAgICAgICJwZWVy IjogdHJ1ZSwKLSAgICAgICAicmVxdWlyZXMiOiB7Ci0gICAgICAgICAic2VtdmVyIjogIl43LjAu MCIKLSAgICAgICB9Ci1AQCAtOTAxOCw4ICs5MzI2LDcgQEAKLSAgICAgICAidmVyc2lvbiI6ICIw LjUuMiIsCi0gICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2Nv bG9yanMuaW8vLS9jb2xvcmpzLmlvLTAuNS4yLnRneiIsCi0gICAgICAgImludGVncml0eSI6ICJz aGE1MTItdHdtVm9pekVXN3lsWlNOMzJPZ0tkWFJtbzFxZyt3VDUvNkMzeHU1YjlRc1d6U0ZBaEhM bjJ4ZDhybzBkaUNzS2ZDajFSZGFUUC9ucmNXK3ZBb1FQSXc9PSIsCi0tICAgICAgImRldiI6IHRy dWUsCi0tICAgICAgInBlZXIiOiB0cnVlCi0rICAgICAgImRldiI6IHRydWUKLSAgICAgfSwKLSAg ICAgImNvbW1hbmRlciI6IHsKLSAgICAgICAidmVyc2lvbiI6ICIyLjExLjAiLAotQEAgLTk0OTks NiArOTgwNiw3IEBACi0gICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMu b3JnL2VzYnVpbGQvLS9lc2J1aWxkLTAuMjUuMC50Z3oiLAotICAgICAgICJpbnRlZ3JpdHkiOiAi c2hhNTEyLUJYcTVtcWM4bHRiYU4zNGNEcVd1WUt5TmhYOEQvWjBKMXhkdGRROFVjSUlJeUp5eita TUtVdDU4dEYzU3JaODVqY2ZOL1BaWWhqUjV1RFFBWU5WYnV3PT0iLAotICAgICAgICJkZXYiOiB0 cnVlLAotKyAgICAgICJwZWVyIjogdHJ1ZSwKLSAgICAgICAicmVxdWlyZXMiOiB7Ci0gICAgICAg ICAiQGVzYnVpbGQvYWl4LXBwYzY0IjogIjAuMjUuMCIsCi0gICAgICAgICAiQGVzYnVpbGQvYW5k cm9pZC1hcm0iOiAiMC4yNS4wIiwKLUBAIC05NTc2LDYgKzk4ODQsNyBAQAotICAgICAgICJyZXNv bHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9lc2xpbnQvLS9lc2xpbnQtOC41Ny4x LnRneiIsCi0gICAgICAgImludGVncml0eSI6ICJzaGE1MTIteXBvd3lEeHBWU1lwa1hyOVdQdjJQ QVpDdE5pcDFNdjVLVFcwU0N1clh2LzlpT3Bjckg5UGFxVUVsa3NxRUI2cENocUhHRFJDRlR5clps R2huTE5HaUE9PSIsCi0gICAgICAgImRldiI6IHRydWUsCi0rICAgICAgInBlZXIiOiB0cnVlLAot ICAgICAgICJyZXF1aXJlcyI6IHsKLSAgICAgICAgICJAZXNsaW50LWNvbW11bml0eS9lc2xpbnQt dXRpbHMiOiAiXjQuMi4wIiwKLSAgICAgICAgICJAZXNsaW50LWNvbW11bml0eS9yZWdleHBwIjog Il40LjYuMSIsCi1AQCAtOTY1Miw3ICs5OTYxLDYgQEAKLSAgICAgICAicmVzb2x2ZWQiOiAiaHR0 cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvZXNsaW50LWNvbXBhdC11dGlscy8tL2VzbGludC1jb21w YXQtdXRpbHMtMC41LjEudGd6IiwKLSAgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi0zejN2RmV4 S0lFbmpIRTN6Q01SbzZmbi9lNDRVN1Qxa2hVamcrSHAwWlFNQ2lnaDI4ckFMRDBuUEZCY0dadWlM QzVyTFphMnViUUhEUmxuMDlKZlUyUT09IiwKLSAgICAgICAiZGV2IjogdHJ1ZSwKLS0gICAgICAi cGVlciI6IHRydWUsCi0gICAgICAgInJlcXVpcmVzIjogewotICAgICAgICAgInNlbXZlciI6ICJe Ny41LjQiCi0gICAgICAgfQotQEAgLTk3MzUsNyArMTAwNDMsNiBAQAotICAgICAgICJyZXNvbHZl ZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9lc2xpbnQtcGx1Z2luLWVzLXgvLS9lc2xp bnQtcGx1Z2luLWVzLXgtNy44LjAudGd6IiwKLSAgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi03 RHM4K3dBQW9WM1QrTEFLZXUzOVk1QnpYQ3JHS3JjSVNmZ0tFcVRTNEJETjhTRkVEUWQwUzQzamlR OHZJYTN3VUtEMDdxaXRaZGZ6bGVuU2k4LzBxUT09IiwKLSAgICAgICAiZGV2IjogdHJ1ZSwKLS0g ICAgICAicGVlciI6IHRydWUsCi0gICAgICAgInJlcXVpcmVzIjogewotICAgICAgICAgIkBlc2xp bnQtY29tbXVuaXR5L2VzbGludC11dGlscyI6ICJeNC4xLjIiLAotICAgICAgICAgIkBlc2xpbnQt Y29tbXVuaXR5L3JlZ2V4cHAiOiAiXjQuMTEuMCIsCi1AQCAtOTc0Nyw2ICsxMDA1NCw3IEBACi0g ICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2VzbGludC1wbHVn aW4taW1wb3J0Ly0vZXNsaW50LXBsdWdpbi1pbXBvcnQtMi4zMS4wLnRneiIsCi0gICAgICAgImlu dGVncml0eSI6ICJzaGE1MTItaXhta0k2MlJiYzIvdzhWZnh5aDFqUVJUZFJURjUyVnh3UlZIbC95 a1BBbXFHK05iNy9rTm4rYnlMUDBMeFBnSTd6V0ExNkp0ODJTeWJKSW5tTWlhM0E9PSIsCi0gICAg ICAgImRldiI6IHRydWUsCi0rICAgICAgInBlZXIiOiB0cnVlLAotICAgICAgICJyZXF1aXJlcyI6 IHsKLSAgICAgICAgICJAcnRzYW8vc2NjIjogIl4xLjEuMCIsCi0gICAgICAgICAiYXJyYXktaW5j bHVkZXMiOiAiXjMuMS44IiwKLUBAIC05ODY0LDcgKzEwMTcyLDYgQEAKLSAgICAgICAicmVzb2x2 ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvZXNsaW50LXBsdWdpbi1uLy0vZXNsaW50 LXBsdWdpbi1uLTE2LjYuMi50Z3oiLAotICAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLTZUeURt WjFIWG9GUVhuaENUVWpWRlVMUmVvQlBPQWpwdWlLRUxNa2VQNDB5ZmZJLzFaUk8rZDl1Zy9WQzZm cUlTbzJXa3VJQmszY3Z1UlBBTGFXbE9RPT0iLAotICAgICAgICJkZXYiOiB0cnVlLAotLSAgICAg ICJwZWVyIjogdHJ1ZSwKLSAgICAgICAicmVxdWlyZXMiOiB7Ci0gICAgICAgICAiQGVzbGludC1j b21tdW5pdHkvZXNsaW50LXV0aWxzIjogIl40LjQuMCIsCi0gICAgICAgICAiYnVpbHRpbnMiOiAi XjUuMC4xIiwKLUBAIC05ODg0LDcgKzEwMTkxLDYgQEAKLSAgICAgICAgICAgInJlc29sdmVkIjog Imh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2JyYWNlLWV4cGFuc2lvbi8tL2JyYWNlLWV4cGFu c2lvbi0xLjEuMTIudGd6IiwKLSAgICAgICAgICAgImludGVncml0eSI6ICJzaGE1MTItOVQ5VWpX M3IwVVc1YzFRN0dUd2xscHRYd2h2WW1FekZoek1mWjlIN0ZRV3QrdVplUGpaUGpCUC9XMVpFeVox dHdHV29tNS81NlRGNGxQY3FqbkRIY2c9PSIsCi0gICAgICAgICAgICJkZXYiOiB0cnVlLAotLSAg ICAgICAgICAicGVlciI6IHRydWUsCi0gICAgICAgICAgICJyZXF1aXJlcyI6IHsKLSAgICAgICAg ICAgICAiYmFsYW5jZWQtbWF0Y2giOiAiXjEuMC4wIiwKLSAgICAgICAgICAgICAiY29uY2F0LW1h cCI6ICIwLjAuMSIKLUBAIC05ODk1LDcgKzEwMjAxLDYgQEAKLSAgICAgICAgICAgInJlc29sdmVk IjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL21pbmltYXRjaC8tL21pbmltYXRjaC0zLjEu Mi50Z3oiLAotICAgICAgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1KN3A2M2hSaUFqdzFOREV3 dzFXN2kzNytCeUlyT1dPNVhRUUF6WjNWT2NMMFBOeWJ3cGZtVi9OMDV6RkF6d1E5VVN5RWNYNnQz VU8rSzVhcUJRT0lIdz09IiwKLSAgICAgICAgICAgImRldiI6IHRydWUsCi0tICAgICAgICAgICJw ZWVyIjogdHJ1ZSwKLSAgICAgICAgICAgInJlcXVpcmVzIjogewotICAgICAgICAgICAgICJicmFj ZS1leHBhbnNpb24iOiAiXjEuMS43IgotICAgICAgICAgICB9Ci1AQCAtOTk0OCw2ICsxMDI1Myw3 IEBACi0gICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2VzbGlu dC1wbHVnaW4tcHJvbWlzZS8tL2VzbGludC1wbHVnaW4tcHJvbWlzZS02LjYuMC50Z3oiLAotICAg ICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLTU3WnpmdzhHNitHcTdheG0yUGRvM2dXL1J4M2g5WXl3 Z242MXVFLzNlbFRDT2VQRUhWcm4yaTVDZGZCd0ExQkxLMFEwV3FjdElDSVVTcVhaVy9WcHJRPT0i LAotICAgICAgICJkZXYiOiB0cnVlLAotKyAgICAgICJwZWVyIjogdHJ1ZSwKLSAgICAgICAicmVx dWlyZXMiOiB7fQotICAgICB9LAotICAgICAiZXNsaW50LXBsdWdpbi1yZWFjdCI6IHsKLUBAIC05 OTU1LDYgKzEwMjYxLDcgQEAKLSAgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5u cG1qcy5vcmcvZXNsaW50LXBsdWdpbi1yZWFjdC8tL2VzbGludC1wbHVnaW4tcmVhY3QtNy4zNy4x LnRneiIsCi0gICAgICAgImludGVncml0eSI6ICJzaGE1MTIteHdUbndEcXpiRFJBOHVKN0JNeFBz L0VYUkIzaThaZm5PSXA4QnN4RVFrVDBuSFBwK1dXY2VxR2dvNnJLYjljdE5pOEdKTERUNEdvNUhB V0VMYS9XTWc9PSIsCi0gICAgICAgImRldiI6IHRydWUsCi0rICAgICAgInBlZXIiOiB0cnVlLAot ICAgICAgICJyZXF1aXJlcyI6IHsKLSAgICAgICAgICJhcnJheS1pbmNsdWRlcyI6ICJeMy4xLjgi LAotICAgICAgICAgImFycmF5LnByb3RvdHlwZS5maW5kbGFzdCI6ICJeMS4yLjUiLAotQEAgLTEw MDI4LDYgKzEwMzM1LDcgQEAKLSAgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5u cG1qcy5vcmcvZXNsaW50LXBsdWdpbi1yZWFjdC1ob29rcy8tL2VzbGludC1wbHVnaW4tcmVhY3Qt aG9va3MtNC42LjIudGd6IiwKLSAgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1RemxpTkpxNEdp bkRCY0Q4Z1BCNXYwd2g2ZzhxM1NVaTZFRkYweDhOL0JMOVBvVnMwYXR1R2M0N296TVJ5T1dBS2R3 YVo1T25iT0VhM1dSK2RTR0t1UT09IiwKLSAgICAgICAiZGV2IjogdHJ1ZSwKLSsgICAgICAicGVl ciI6IHRydWUsCi0gICAgICAgInJlcXVpcmVzIjoge30KLSAgICAgfSwKLSAgICAgImVzbGludC1z Y29wZSI6IHsKLUBAIC0xMDI1Myw2ICsxMDU2MSwxMyBAQAotICAgICAgICJpbnRlZ3JpdHkiOiAi c2hhNTEyLU9PMHBIMmxLNmEwaFpuQWRhdTVJdHpIUEk2cFVsdkk3ak1WbnhVUVJ0dzRvd0Yyd2s4 bE9TYWJ0R0RDVFA0R2dyZzJNYkduV085WDhLMXQ0K2ZHTUR3PT0iLAotICAgICAgICJkZXYiOiB0 cnVlCi0gICAgIH0sCi0rICAgICJmc2V2ZW50cyI6IHsKLSsgICAgICAidmVyc2lvbiI6ICIyLjMu MyIsCi0rICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2ZzZXZl bnRzLy0vZnNldmVudHMtMi4zLjMudGd6IiwKLSsgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi01 eG9EZlgrZkw3ZmFBVG5hZ21XUHBiRnR3aC9SNzdXbU1NcXFIR1M2NUMzdnZCMFlIcmdGK0IxWW1a MzQ0MXRNajVuNjNrMDIxMlhOb0p3emxoZmZRdz09IiwKLSsgICAgICAiZGV2IjogdHJ1ZSwKLSsg ICAgICAib3B0aW9uYWwiOiB0cnVlCi0rICAgIH0sCi0gICAgICJmdW5jdGlvbi1iaW5kIjogewot ICAgICAgICJ2ZXJzaW9uIjogIjEuMS4yIiwKLSAgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9y ZWdpc3RyeS5ucG1qcy5vcmcvZnVuY3Rpb24tYmluZC8tL2Z1bmN0aW9uLWJpbmQtMS4xLjIudGd6 IiwKLUBAIC0xMDMxMiw3ICsxMDYyNyw2IEBACi0gICAgICAgInJlc29sdmVkIjogImh0dHBzOi8v cmVnaXN0cnkubnBtanMub3JnL2dldC10c2NvbmZpZy8tL2dldC10c2NvbmZpZy00LjguMS50Z3oi LAotICAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLWs5UE4rY0ZCbWFMV3RWejI5U2tVb3FVNU8w c2xMdUhKWHQvMlArdE1WRlQrcGhzU0dYR2twOXQzclFJcWR6MGUrMDZFSE5HczNvTTZaWDFzMnpI eFJnPT0iLAotICAgICAgICJkZXYiOiB0cnVlLAotLSAgICAgICJwZWVyIjogdHJ1ZSwKLSAgICAg ICAicmVxdWlyZXMiOiB7Ci0gICAgICAgICAicmVzb2x2ZS1wa2ctbWFwcyI6ICJeMS4wLjAiCi0g ICAgICAgfQotQEAgLTEwNzAzLDcgKzExMDE3LDYgQEAKLSAgICAgICAicmVzb2x2ZWQiOiAiaHR0 cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvaXMtYnVpbHRpbi1tb2R1bGUvLS9pcy1idWlsdGluLW1v ZHVsZS0zLjIuMS50Z3oiLAotICAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLUJTTEUzSG5WMnN5 WjBGSzBpTUEveVVHcGxVZU1tTno0QVc1Zm5UdW5iQ0lxWmk0dkczV2pKVDlGSE15NUQ2OXhtQVlC SFhRaEpkQUxkcHdWeFY1MDFBPT0iLAotICAgICAgICJkZXYiOiB0cnVlLAotLSAgICAgICJwZWVy IjogdHJ1ZSwKLSAgICAgICAicmVxdWlyZXMiOiB7Ci0gICAgICAgICAiYnVpbHRpbi1tb2R1bGVz IjogIl4zLjMuMCIKLSAgICAgICB9Ci1AQCAtMTE0NzksNiArMTE3OTIsNyBAQAotICAgICAgICJy ZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9wb3N0Y3NzLy0vcG9zdGNzcy04 LjQuNDcudGd6IiwKLSAgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi01NnJ4Q3E3Ry9YZkI0RWtY cTlFZ241R0NxdWdXdkRGamFmRE9UaElkTUJzSTE1aXFQcVI1cjE1VGZTcjFZUFllRUkxOVllYVhN Q2JZNnU4OFk3NkdMUT09IiwKLSAgICAgICAiZGV2IjogdHJ1ZSwKLSsgICAgICAicGVlciI6IHRy dWUsCi0gICAgICAgInJlcXVpcmVzIjogewotICAgICAgICAgIm5hbm9pZCI6ICJeMy4zLjciLAot ICAgICAgICAgInBpY29jb2xvcnMiOiAiXjEuMS4wIiwKLUBAIC0xMTUxNiw2ICsxMTgzMCw3IEBA Ci0gICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3Bvc3Rjc3Mt c2VsZWN0b3ItcGFyc2VyLy0vcG9zdGNzcy1zZWxlY3Rvci1wYXJzZXItNi4xLjIudGd6IiwKLSAg ICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1ROHFRZlBpWitUSE8vM1pyT3JPMGNKSktmcFlDYWd0 TVVrWGJuRWZtZ1Vqd1hnNnovV0JlT3lTOUFQQkJQQ1RTaURWK3M0U3dRR3U4eUZzaU1SSXVkZz09 IiwKLSAgICAgICAiZGV2IjogdHJ1ZSwKLSsgICAgICAicGVlciI6IHRydWUsCi0gICAgICAgInJl cXVpcmVzIjogewotICAgICAgICAgImNzc2VzYyI6ICJeMy4wLjAiLAotICAgICAgICAgInV0aWwt ZGVwcmVjYXRlIjogIl4xLjAuMiIKLUBAIC0xMTU5NCw2ICsxMTkwOSw3IEBACi0gICAgICAgInZl cnNpb24iOiAiMTguMy4xIiwKLSAgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5u cG1qcy5vcmcvcmVhY3QvLS9yZWFjdC0xOC4zLjEudGd6IiwKLSAgICAgICAiaW50ZWdyaXR5Ijog InNoYTUxMi13UytoQWdKU2hSMEtoRXZQSkFyZnVQVk4xK0h6MXQwWTZuNWpMckdRYmtiNHVyZ1BF LzBSdmUrMWtNQjF2L29XZ0hnbTRXSWNWK2k3RjJwVFZqKzJpUT09IiwKLSsgICAgICAicGVlciI6 IHRydWUsCi0gICAgICAgInJlcXVpcmVzIjogewotICAgICAgICAgImxvb3NlLWVudmlmeSI6ICJe MS4xLjAiCi0gICAgICAgfQotQEAgLTExNjAyLDYgKzExOTE4LDcgQEAKLSAgICAgICAidmVyc2lv biI6ICIxOC4zLjEiLAotICAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpz Lm9yZy9yZWFjdC1kb20vLS9yZWFjdC1kb20tMTguMy4xLnRneiIsCi0gICAgICAgImludGVncml0 eSI6ICJzaGE1MTItNW00blFLcCtyWlJiMDlMTkg1OUdNNEJ4VGg5MjUxL3lsYktJYnBlN1RwR3hm Sis5a3Y2QkxrTEJYSWpqc3BiZ2JuSUJOcWxJMjN0Um5UV1Qwc25VSXc9PSIsCi0rICAgICAgInBl ZXIiOiB0cnVlLAotICAgICAgICJyZXF1aXJlcyI6IHsKLSAgICAgICAgICJsb29zZS1lbnZpZnki OiAiXjEuMS4wIiwKLSAgICAgICAgICJzY2hlZHVsZXIiOiAiXjAuMjMuMiIKLUBAIC0xMTc0MSw4 ICsxMjA1OCw3IEBACi0gICAgICAgInZlcnNpb24iOiAiMS4wLjAiLAotICAgICAgICJyZXNvbHZl ZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9yZXNvbHZlLXBrZy1tYXBzLy0vcmVzb2x2 ZS1wa2ctbWFwcy0xLjAuMC50Z3oiLAotICAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLXNlUzJU ajI2VEJWT0MyTkljMnJPZTJ5MlpPN2VmeElUdExaY0dTT25ISE5PUTdDa2lVQmZ3MEl3MmNrNnhr SWhQd0xoS05MUzhCTytoRXBuZ1FscXp3PT0iLAotLSAgICAgICJkZXYiOiB0cnVlLAotLSAgICAg ICJwZWVyIjogdHJ1ZQotKyAgICAgICJkZXYiOiB0cnVlCi0gICAgIH0sCi0gICAgICJyZXVzaWZ5 IjogewotICAgICAgICJ2ZXJzaW9uIjogIjEuMC40IiwKLUBAIC0xMTgwOCw3ICsxMjEyNCw2IEBA Ci0gICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3J4anMvLS9y eGpzLTcuOC4xLnRneiIsCi0gICAgICAgImludGVncml0eSI6ICJzaGE1MTItQUEzVFZqKzBBMml1 SW9Ra1dFSy90cUZqQnEyais2UE82WTB6SmN2ekxBRmhFRklPM0hMMHZsczloV0xuY1piQUFiSzBt YXI3b1o0VjA3OUkvcVBNeGc9PSIsCi0gICAgICAgImRldiI6IHRydWUsCi0tICAgICAgInBlZXIi OiB0cnVlLAotICAgICAgICJyZXF1aXJlcyI6IHsKLSAgICAgICAgICJ0c2xpYiI6ICJeMi4xLjAi Ci0gICAgICAgfQotQEAgLTExODg1LDcgKzEyMjAwLDYgQEAKLSAgICAgICAicmVzb2x2ZWQiOiAi aHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvc2Fzcy1lbWJlZGRlZC8tL3Nhc3MtZW1iZWRkZWQt MS44MC42LnRneiIsCi0gICAgICAgImludGVncml0eSI6ICJzaGE1MTItT2c0YXFCbmFBM29KZklw SGFMdU5BVEFxekJSZ1VKRFlKeTJYMTVWNTljb3Qyd1lPdGlUL2NpUG55dXExbzd2cERFZU9rSGhF ZCttU3ZpU2xYb0VUdWc9PSIsCi0gICAgICAgImRldiI6IHRydWUsCi0tICAgICAgInBlZXIiOiB0 cnVlLAotICAgICAgICJyZXF1aXJlcyI6IHsKLSAgICAgICAgICJAYnVmYnVpbGQvcHJvdG9idWYi OiAiXjIuMC4wIiwKLSAgICAgICAgICJidWZmZXItYnVpbGRlciI6ICJeMC4yLjAiLAotQEAgLTEx OTIxLDI4ICsxMjIzNSwxNTEgQEAKLSAgICAgICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVn aXN0cnkubnBtanMub3JnL3N1cHBvcnRzLWNvbG9yLy0vc3VwcG9ydHMtY29sb3ItOC4xLjEudGd6 IiwKLSAgICAgICAgICAgImludGVncml0eSI6ICJzaGE1MTItTXBVRU4yT29kdFV6eHZLUWw3MmNV RjdSUTVFaUhzR3ZTc1ZHMGlhOWM1UmJXR0wyQ0k0QzdFcFBTOFVUQklwbG5selppTnVWNTZ3K0Z1 Tnh5M3R5MlE9PSIsCi0gICAgICAgICAgICJkZXYiOiB0cnVlLAotLSAgICAgICAgICAicGVlciI6 IHRydWUsCi0gICAgICAgICAgICJyZXF1aXJlcyI6IHsKLSAgICAgICAgICAgICAiaGFzLWZsYWci OiAiXjQuMC4wIgotICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gICAgICAgfQotICAgICB9LAot KyAgICAic2Fzcy1lbWJlZGRlZC1hbmRyb2lkLWFybSI6IHsKLSsgICAgICAidmVyc2lvbiI6ICIx LjgwLjYiLAotKyAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9z YXNzLWVtYmVkZGVkLWFuZHJvaWQtYXJtLy0vc2Fzcy1lbWJlZGRlZC1hbmRyb2lkLWFybS0xLjgw LjYudGd6IiwKLSsgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1VZVVLTVRSc256NC9kaDdJenZo ak9OeGE0L2ptVnA1MzlDSERkOFZaT3NxZzlNM0hjTkpOSWtVelFXYnV3WituU2xXclR1bzdUdm4z WGx5cG9wQ0J6dz09IiwKLSsgICAgICAiZGV2IjogdHJ1ZSwKLSsgICAgICAib3B0aW9uYWwiOiB0 cnVlCi0rICAgIH0sCi0rICAgICJzYXNzLWVtYmVkZGVkLWFuZHJvaWQtYXJtNjQiOiB7Ci0rICAg ICAgInZlcnNpb24iOiAiMS44MC42IiwKLSsgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdp c3RyeS5ucG1qcy5vcmcvc2Fzcy1lbWJlZGRlZC1hbmRyb2lkLWFybTY0Ly0vc2Fzcy1lbWJlZGRl ZC1hbmRyb2lkLWFybTY0LTEuODAuNi50Z3oiLAotKyAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEy LTRyQzRaR00vazRFTlZqTFhuSzNKVHN0OGU4Rkk5TUhTb2wyRmw3ZENkWXlKM0tMbmx0NHFMNEFF WWZVOHpxMXRjQmI3Q0JPU1pWUitDekNLdWJuWGRnPT0iLAotKyAgICAgICJkZXYiOiB0cnVlLAot KyAgICAgICJvcHRpb25hbCI6IHRydWUKLSsgICAgfSwKLSsgICAgInNhc3MtZW1iZWRkZWQtYW5k cm9pZC1pYTMyIjogewotKyAgICAgICJ2ZXJzaW9uIjogIjEuODAuNiIsCi0rICAgICAgInJlc29s dmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3Nhc3MtZW1iZWRkZWQtYW5kcm9pZC1p YTMyLy0vc2Fzcy1lbWJlZGRlZC1hbmRyb2lkLWlhMzItMS44MC42LnRneiIsCi0rICAgICAgImlu dGVncml0eSI6ICJzaGE1MTItTHh6MlNYRTJLZEhueW51SEYrRDZmbER2cmQ1NS96YUVBV1Vla2E5 TXhFcjZGbVI2NmQ4VUJPSXk1RVR3Q1NVZC8vUy9TRTVKbDZvVG5IcHBnRDF6TkE9PSIsCi0rICAg ICAgImRldiI6IHRydWUsCi0rICAgICAgIm9wdGlvbmFsIjogdHJ1ZQotKyAgICB9LAotKyAgICAi c2Fzcy1lbWJlZGRlZC1hbmRyb2lkLXJpc2N2NjQiOiB7Ci0rICAgICAgInZlcnNpb24iOiAiMS44 MC42IiwKLSsgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvc2Fz cy1lbWJlZGRlZC1hbmRyb2lkLXJpc2N2NjQvLS9zYXNzLWVtYmVkZGVkLWFuZHJvaWQtcmlzY3Y2 NC0xLjgwLjYudGd6IiwKLSsgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1oS2R4WS9vT3FCK0pK aFNvQlRETTVESk8xai94dHhRZ2F5aDJjTENDVXgzN0lRUWUzU0VkYzNWMkpGZi80bUlvNXBlYVM0 Y2pxd3dTQVRGK2wyemFYZz09IiwKLSsgICAgICAiZGV2IjogdHJ1ZSwKLSsgICAgICAib3B0aW9u YWwiOiB0cnVlCi0rICAgIH0sCi0rICAgICJzYXNzLWVtYmVkZGVkLWFuZHJvaWQteDY0Ijogewot KyAgICAgICJ2ZXJzaW9uIjogIjEuODAuNiIsCi0rICAgICAgInJlc29sdmVkIjogImh0dHBzOi8v cmVnaXN0cnkubnBtanMub3JnL3Nhc3MtZW1iZWRkZWQtYW5kcm9pZC14NjQvLS9zYXNzLWVtYmVk ZGVkLWFuZHJvaWQteDY0LTEuODAuNi50Z3oiLAotKyAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEy LUVhcDJGaTNrVHgvclZMQnNPbk9wNVJZUHI1K2xGalRaNjUyelIyNGRtWUZlOS9zRGdhc2FrSklP UGpPdkQyYlJ1TDl6MHVXRVkxQVhWZWVPUGVaS3JnPT0iLAotKyAgICAgICJkZXYiOiB0cnVlLAot KyAgICAgICJvcHRpb25hbCI6IHRydWUKLSsgICAgfSwKLSsgICAgInNhc3MtZW1iZWRkZWQtZGFy d2luLWFybTY0IjogewotKyAgICAgICJ2ZXJzaW9uIjogIjEuODAuNiIsCi0rICAgICAgInJlc29s dmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3Nhc3MtZW1iZWRkZWQtZGFyd2luLWFy bTY0Ly0vc2Fzcy1lbWJlZGRlZC1kYXJ3aW4tYXJtNjQtMS44MC42LnRneiIsCi0rICAgICAgImlu dGVncml0eSI6ICJzaGE1MTItMG1uQXg4VnE2R3hqM1BRdDNpbWdJVGZLMzNoaHFyU0tweUhTdWFi NzFnWlpuaTVvcHNkdG9nZ3EySmF3VysxdGFSRlRFWndiWkpMS1owTUJEYndDQ0E9PSIsCi0rICAg ICAgImRldiI6IHRydWUsCi0rICAgICAgIm9wdGlvbmFsIjogdHJ1ZQotKyAgICB9LAotKyAgICAi c2Fzcy1lbWJlZGRlZC1kYXJ3aW4teDY0IjogewotKyAgICAgICJ2ZXJzaW9uIjogIjEuODAuNiIs Ci0rICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3Nhc3MtZW1i ZWRkZWQtZGFyd2luLXg2NC8tL3Nhc3MtZW1iZWRkZWQtZGFyd2luLXg2NC0xLjgwLjYudGd6IiwK LSsgICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1JYjIweU5aRk9ySjdZVlQrbHRvZStKUU5LUGNS Y2xNM2lMQUs2OVhaWlljU2VGTS83MlNDb1FCQWFWR0lwVDIzZHhEcDdGWGlFNGxPNjAyYzN4VFJ3 UT09IiwKLSsgICAgICAiZGV2IjogdHJ1ZSwKLSsgICAgICAib3B0aW9uYWwiOiB0cnVlCi0rICAg IH0sCi0rICAgICJzYXNzLWVtYmVkZGVkLWxpbnV4LWFybSI6IHsKLSsgICAgICAidmVyc2lvbiI6 ICIxLjgwLjYiLAotKyAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9y Zy9zYXNzLWVtYmVkZGVkLWxpbnV4LWFybS8tL3Nhc3MtZW1iZWRkZWQtbGludXgtYXJtLTEuODAu Ni50Z3oiLAotKyAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLVFSMFE2VFpveC9UaHVVMnI5YzBz M2ZLQ2dVMnJYQUVvY3BpdGRneEZwNnR0YStHc1FsTUZWM29PTjJ1bkFhOEJ3bnV4a21mMFlPYUsw T3kvVHd6a1h3PT0iLAotKyAgICAgICJkZXYiOiB0cnVlLAotKyAgICAgICJvcHRpb25hbCI6IHRy dWUKLSsgICAgfSwKLSsgICAgInNhc3MtZW1iZWRkZWQtbGludXgtYXJtNjQiOiB7Ci0rICAgICAg InZlcnNpb24iOiAiMS44MC42IiwKLSsgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3Ry eS5ucG1qcy5vcmcvc2Fzcy1lbWJlZGRlZC1saW51eC1hcm02NC8tL3Nhc3MtZW1iZWRkZWQtbGlu dXgtYXJtNjQtMS44MC42LnRneiIsCi0rICAgICAgImludGVncml0eSI6ICJzaGE1MTItbjVyOThw Qlhhd3JRUUtheElZQ01NMXpEcG5uZ3NxeFRrT3JtdnNZTEZpQU1DU2JSMGxXZi83c0JCMzNrL1Bt MEQ2ZHNicDNqcEhpbENvUU5LSTNqSXc9PSIsCi0rICAgICAgImRldiI6IHRydWUsCi0rICAgICAg Im9wdGlvbmFsIjogdHJ1ZQotKyAgICB9LAotKyAgICAic2Fzcy1lbWJlZGRlZC1saW51eC1pYTMy IjogewotKyAgICAgICJ2ZXJzaW9uIjogIjEuODAuNiIsCi0rICAgICAgInJlc29sdmVkIjogImh0 dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3Nhc3MtZW1iZWRkZWQtbGludXgtaWEzMi8tL3Nhc3Mt ZW1iZWRkZWQtbGludXgtaWEzMi0xLjgwLjYudGd6IiwKLSsgICAgICAiaW50ZWdyaXR5IjogInNo YTUxMi1PNmRXWmRjT2tyeVJkREN4Vk1HT2VWb3dnYmxwRGdWY0F1UnRaMUYxWDdYZmJwRHJpVFFt NjREKzl2VlpJcnl3WVNQb0pmUU1KSjY2MmNyMHdVczlJUT09IiwKLSsgICAgICAiZGV2IjogdHJ1 ZSwKLSsgICAgICAib3B0aW9uYWwiOiB0cnVlCi0rICAgIH0sCi0rICAgICJzYXNzLWVtYmVkZGVk LWxpbnV4LW11c2wtYXJtIjogewotKyAgICAgICJ2ZXJzaW9uIjogIjEuODAuNiIsCi0rICAgICAg InJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3Nhc3MtZW1iZWRkZWQtbGlu dXgtbXVzbC1hcm0vLS9zYXNzLWVtYmVkZGVkLWxpbnV4LW11c2wtYXJtLTEuODAuNi50Z3oiLAot KyAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLVg5RkM4czhmdlFHUmlYYytlQVRsWjU3TjQ0SXEz bk5hME0wdWdpM3lzZEp3a2FOWXZPZVM0UXpCSEtRQWF3M1FpVHFkeFRuTFVISFZCa3l6ZENpOXB3 PT0iLAotKyAgICAgICJkZXYiOiB0cnVlLAotKyAgICAgICJvcHRpb25hbCI6IHRydWUKLSsgICAg fSwKLSsgICAgInNhc3MtZW1iZWRkZWQtbGludXgtbXVzbC1hcm02NCI6IHsKLSsgICAgICAidmVy c2lvbiI6ICIxLjgwLjYiLAotKyAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5w bWpzLm9yZy9zYXNzLWVtYmVkZGVkLWxpbnV4LW11c2wtYXJtNjQvLS9zYXNzLWVtYmVkZGVkLWxp bnV4LW11c2wtYXJtNjQtMS44MC42LnRneiIsCi0rICAgICAgImludGVncml0eSI6ICJzaGE1MTIt VmVVU0hVaTNNQXN2T2xnOVFJNFgvMmowNGgxNjU5YUUrN3FLUC8yODJDWUJUckdrakZHU1haaElr aTlXS1dEZ0lwRGlTSW5SWVhmUVFSV2hQaGpDRGc9PSIsCi0rICAgICAgImRldiI6IHRydWUsCi0r ICAgICAgIm9wdGlvbmFsIjogdHJ1ZQotKyAgICB9LAotKyAgICAic2Fzcy1lbWJlZGRlZC1saW51 eC1tdXNsLWlhMzIiOiB7Ci0rICAgICAgInZlcnNpb24iOiAiMS44MC42IiwKLSsgICAgICAicmVz b2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvc2Fzcy1lbWJlZGRlZC1saW51eC1t dXNsLWlhMzIvLS9zYXNzLWVtYmVkZGVkLWxpbnV4LW11c2wtaWEzMi0xLjgwLjYudGd6IiwKLSsg ICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1HcWl0UzJOYWI4YWgwK3dmQ3FheFcxaG5JMXBpQzA4 RmltTDYrbE05WVdLNURiQ09PRjgySWFwYnZKT3kwZmVVbWQvd05uSG15TlRnRTloMHpWTUZkUT09 IiwKLSsgICAgICAiZGV2IjogdHJ1ZSwKLSsgICAgICAib3B0aW9uYWwiOiB0cnVlCi0rICAgIH0s Ci0rICAgICJzYXNzLWVtYmVkZGVkLWxpbnV4LW11c2wtcmlzY3Y2NCI6IHsKLSsgICAgICAidmVy c2lvbiI6ICIxLjgwLjYiLAotKyAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5w bWpzLm9yZy9zYXNzLWVtYmVkZGVkLWxpbnV4LW11c2wtcmlzY3Y2NC8tL3Nhc3MtZW1iZWRkZWQt bGludXgtbXVzbC1yaXNjdjY0LTEuODAuNi50Z3oiLAotKyAgICAgICJpbnRlZ3JpdHkiOiAic2hh NTEyLXlTczE1ejdRU1JSUUsvYUJ5RUVxYUpMWVcvc1RwZnluZWZOUFpDdHNWTlZFek5Sd3krRFJw eE5DaHR4bytRaktxOTdvY1hFVGJkRzVLTGlrN1FPVEpnPT0iLAotKyAgICAgICJkZXYiOiB0cnVl LAotKyAgICAgICJvcHRpb25hbCI6IHRydWUKLSsgICAgfSwKLSAgICAgInNhc3MtZW1iZWRkZWQt bGludXgtbXVzbC14NjQiOiB7Ci0gICAgICAgInZlcnNpb24iOiAiMS44MC42IiwKLSAgICAgICAi cmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvc2Fzcy1lbWJlZGRlZC1saW51 eC1tdXNsLXg2NC8tL3Nhc3MtZW1iZWRkZWQtbGludXgtbXVzbC14NjQtMS44MC42LnRneiIsCi0g ICAgICAgImludGVncml0eSI6ICJzaGE1MTItRHplTnFVL1NOMG1XRnpub09INFJ0VkdjcmczRW9h NDFwVVFoS010cmhOYkNtSUUxek5EdW5VaUFFVlROcGRISkY0bnhmN0VMVVBYV21TdE0zMUNiVVE9 PSIsCi0gICAgICAgImRldiI6IHRydWUsCi0tICAgICAgIm9wdGlvbmFsIjogdHJ1ZSwKLS0gICAg ICAicGVlciI6IHRydWUKLSsgICAgICAib3B0aW9uYWwiOiB0cnVlCi0rICAgIH0sCi0rICAgICJz YXNzLWVtYmVkZGVkLWxpbnV4LXJpc2N2NjQiOiB7Ci0rICAgICAgInZlcnNpb24iOiAiMS44MC42 IiwKLSsgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvc2Fzcy1l bWJlZGRlZC1saW51eC1yaXNjdjY0Ly0vc2Fzcy1lbWJlZGRlZC1saW51eC1yaXNjdjY0LTEuODAu Ni50Z3oiLAotKyAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLUF5b0hKM2ljVjl4dUpqcTFZekpx cEVqMlhmaUMvS0JrVllUVXJDRUxLaVhQMEROMWdpL0JwVXdaTkNBZ0NNM0N5RWRNZWY0TFFNL3p0 Q1lKeFl6ZHlnPT0iLAotKyAgICAgICJkZXYiOiB0cnVlLAotKyAgICAgICJvcHRpb25hbCI6IHRy dWUKLSAgICAgfSwKLSAgICAgInNhc3MtZW1iZWRkZWQtbGludXgteDY0IjogewotICAgICAgICJ2 ZXJzaW9uIjogIjEuODAuNiIsCi0gICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnku bnBtanMub3JnL3Nhc3MtZW1iZWRkZWQtbGludXgteDY0Ly0vc2Fzcy1lbWJlZGRlZC1saW51eC14 NjQtMS44MC42LnRneiIsCi0gICAgICAgImludGVncml0eSI6ICJzaGE1MTItRW9oc0U5Q0VxeDB5 Y3lsbnNFai8wRE5QRzk5VGIwcUFWWnNwaUFzNXhIRkNKalhPRmZwM2NSUXUwQlJmK2xaMWI3Mklo UEZYeW16VnRvanZ6VUhiN2c9PSIsCi0gICAgICAgImRldiI6IHRydWUsCi0tICAgICAgIm9wdGlv bmFsIjogdHJ1ZSwKLS0gICAgICAicGVlciI6IHRydWUKLSsgICAgICAib3B0aW9uYWwiOiB0cnVl Ci0rICAgIH0sCi0rICAgICJzYXNzLWVtYmVkZGVkLXdpbjMyLWFybTY0IjogewotKyAgICAgICJ2 ZXJzaW9uIjogIjEuODAuNiIsCi0rICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnku bnBtanMub3JnL3Nhc3MtZW1iZWRkZWQtd2luMzItYXJtNjQvLS9zYXNzLWVtYmVkZGVkLXdpbjMy LWFybTY0LTEuODAuNi50Z3oiLAotKyAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLTI5d0VUUWkx eWtlVnZwZDR6TVZva3BRS0ZTT1pza0dKelphd3V1TkNkbzdCSGpIS0lSRHNxYno4WVQxQ2V3SFBC c2hJMGhmRDIxZmVubWp4WWpHWFBRPT0iLAotKyAgICAgICJkZXYiOiB0cnVlLAotKyAgICAgICJv cHRpb25hbCI6IHRydWUKLSsgICAgfSwKLSsgICAgInNhc3MtZW1iZWRkZWQtd2luMzItaWEzMiI6 IHsKLSsgICAgICAidmVyc2lvbiI6ICIxLjgwLjYiLAotKyAgICAgICJyZXNvbHZlZCI6ICJodHRw czovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9zYXNzLWVtYmVkZGVkLXdpbjMyLWlhMzIvLS9zYXNzLWVt YmVkZGVkLXdpbjMyLWlhMzItMS44MC42LnRneiIsCi0rICAgICAgImludGVncml0eSI6ICJzaGE1 MTItMXMzT3BLMmlUSWZJTC9hOTFRaEFRbmZmc2J1V2Zuc004THg0Rnh0MGY3RXJueGpDVjZxOE1V RlRWL1VoY0x0THlURm5QQ0E2MkRManAyS0dDak1JOUE9PSIsCi0rICAgICAgImRldiI6IHRydWUs Ci0rICAgICAgIm9wdGlvbmFsIjogdHJ1ZQotKyAgICB9LAotKyAgICAic2Fzcy1lbWJlZGRlZC13 aW4zMi14NjQiOiB7Ci0rICAgICAgInZlcnNpb24iOiAiMS44MC42IiwKLSsgICAgICAicmVzb2x2 ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvc2Fzcy1lbWJlZGRlZC13aW4zMi14NjQv LS9zYXNzLWVtYmVkZGVkLXdpbjMyLXg2NC0xLjgwLjYudGd6IiwKLSsgICAgICAiaW50ZWdyaXR5 IjogInNoYTUxMi0wcEg0WnI5c2lsSGtjbUxQQzBnaG5EM0RJMHZNc2pBN2RLdkdSMzIvUmJiak9T dkhWNWNEUVJMaXVWSkFQcDM0ZGZNQTdrSmQxeXNTY2hSZEgwaWdBUT09IiwKLSsgICAgICAiZGV2 IjogdHJ1ZSwKLSsgICAgICAib3B0aW9uYWwiOiB0cnVlCi0gICAgIH0sCi0gICAgICJzY2hlZHVs ZXIiOiB7Ci0gICAgICAgInZlcnNpb24iOiAiMC4yMy4yIiwKLUBAIC0xMjIzOCw2ICsxMjY3NSw3 IEBACi0gICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3N0eWxl bGludC8tL3N0eWxlbGludC0xNi45LjAudGd6IiwKLSAgICAgICAiaW50ZWdyaXR5IjogInNoYTUx Mi0zMU5tM1dqeEdPQkdwUXFGNDNvM3dPOUw1QUMzNlRQSWU2MDMwTG5tMTNIM3ZETVRjUzIxRHJM aDY5Yk1YK0RCaWxLcU1NVkxpYW40aUc2eWJCb05SUT09IiwKLSAgICAgICAiZGV2IjogdHJ1ZSwK LSsgICAgICAicGVlciI6IHRydWUsCi0gICAgICAgInJlcXVpcmVzIjogewotICAgICAgICAgIkBj c3N0b29scy9jc3MtcGFyc2VyLWFsZ29yaXRobXMiOiAiXjMuMC4xIiwKLSAgICAgICAgICJAY3Nz dG9vbHMvY3NzLXRva2VuaXplciI6ICJeMy4wLjEiLAotQEAgLTEyNzAzLDcgKzEzMTQxLDggQEAK LSAgICAgICAidmVyc2lvbiI6ICI1LjYuMyIsCi0gICAgICAgInJlc29sdmVkIjogImh0dHBzOi8v cmVnaXN0cnkubnBtanMub3JnL3R5cGVzY3JpcHQvLS90eXBlc2NyaXB0LTUuNi4zLnRneiIsCi0g ICAgICAgImludGVncml0eSI6ICJzaGE1MTItaGpjUzFtaGZ1eWk0V1c4SVd0alA3YnJEckcyY3VE WnVreXJZclNhdW9YR05neDBTN3pjZVAwN2FkWWtKeWNFcjU2Qk9VVE5QemJJbm9vaU4zZm4xcXc9 PSIsCi0tICAgICAgImRldiI6IHRydWUKLSsgICAgICAiZGV2IjogdHJ1ZSwKLSsgICAgICAicGVl ciI6IHRydWUKLSAgICAgfSwKLSAgICAgInVuYm94LXByaW1pdGl2ZSI6IHsKLSAgICAgICAidmVy c2lvbiI6ICIxLjAuMiIsCi1AQCAtMTI3NDYsOCArMTMxODUsNyBAQAotICAgICAgICJ2ZXJzaW9u IjogIjYuMC4wIiwKLSAgICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5v cmcvdmFyaW50Ly0vdmFyaW50LTYuMC4wLnRneiIsCi0gICAgICAgImludGVncml0eSI6ICJzaGE1 MTItY1hFSVc2Y2ZyMTVsRnY1NjNrNEd1VnVXL2Zpd2prbnl0RDM3aklPTFNkU1d1T0k2V25PL29L d21QMkZRVFUybDAxTFA4L001VFNBSnB6VWFHZTN1V2c9PSIsCi0tICAgICAgImRldiI6IHRydWUs Ci0tICAgICAgInBlZXIiOiB0cnVlCi0rICAgICAgImRldiI6IHRydWUKLSAgICAgfSwKLSAgICAg InZpY3RvcnktYXJlYSI6IHsKLSAgICAgICAidmVyc2lvbiI6ICIzNy4zLjEiLAotLS0gCi0yLjUy LjAKLQoKZGlmZiAtLWdpdCBhLzAwMzktSXNzdWUtNzIyMS1DSS10ZXN0cy1maXgtc29tZS1mbGFr eS10ZXN0cy5wYXRjaCBiLzAwMzktSXNzdWUtNzIyMS1DSS10ZXN0cy1maXgtc29tZS1mbGFreS10 ZXN0cy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWMyNTlkOS4uMDAwMDAw MAotLS0gYS8wMDM5LUlzc3VlLTcyMjEtQ0ktdGVzdHMtZml4LXNvbWUtZmxha3ktdGVzdHMucGF0 Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw5NyArMCwwIEBACi1Gcm9tIGFlNGEzOTQ3NGRmMDhkNTYw NjQ0NTNmMGZiNmMyMjcyZTZjM2RjOGIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBN YXJrIFJleW5vbGRzIDxtcmV5bm9sZHNAcmVkaGF0LmNvbT4KLURhdGU6IEZyaSwgNiBGZWIgMjAy NiAxNToxMzozMCAtMDUwMAotU3ViamVjdDogW1BBVENIXSBJc3N1ZSA3MjIxIC0gQ0kgdGVzdHMg LSBmaXggc29tZSBmbGFreSB0ZXN0cwotCi1EZXNjcmlwdGlvbjoKLQotVHJ5IHRvIGhhcmRlbiBz b21lIG9mIHRoZSBmbGFreSB0ZXN0cyB3aXRoIHNsZWVwcyBhbmQgbW9yZSByZWxheGVkIGNvbnRy YWludHMKLQotUmVsYXRlczogaHR0cHM6Ly9naXRodWIuY29tLzM4OWRzLzM4OS1kcy1iYXNlL2lz c3Vlcy83MjIxCi0KLVJldmlld2VkIGJ5OiBzcGljaHVnaShUaGFua3MhKQotLS0tCi0gZGlyc3J2 dGVzdHMvdGVzdHMvc3VpdGVzL2FjbC9hY2l2YXR0cl90ZXN0LnB5ICAgICAgICAgICAgICB8IDcg KysrKystLQotIGRpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9pbXBvcnQvcmVncmVzc2lvbl90ZXN0 LnB5ICAgICAgICAgfCAyICstCi0gLi4uL3N1aXRlcy9yZXBsaWNhdGlvbi93YWl0X2Zvcl9hc3lu Y19mZWF0dXJlX3Rlc3QucHkgICAgICB8IDIgKy0KLSBkaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMv cmV0cm9jbC9iYXNpY190ZXN0LnB5ICAgICAgICAgICAgIHwgMiArLQotIDQgZmlsZXMgY2hhbmdl ZCwgOCBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZGlyc3J2 dGVzdHMvdGVzdHMvc3VpdGVzL2FjbC9hY2l2YXR0cl90ZXN0LnB5IGIvZGlyc3J2dGVzdHMvdGVz dHMvc3VpdGVzL2FjbC9hY2l2YXR0cl90ZXN0LnB5Ci1pbmRleCBkNTVlZWEwMjMuLmVmZTJkNWVm MSAxMDA2NDQKLS0tLSBhL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9hY2wvYWNpdmF0dHJfdGVz dC5weQotKysrIGIvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL2FjbC9hY2l2YXR0cl90ZXN0LnB5 Ci1AQCAtMSwxMiArMSwxMiBAQAotICMgLS0tIEJFR0lOIENPUFlSSUdIVCBCTE9DSyAtLS0KLS0j IENvcHlyaWdodCAoQykgMjAxOSBSZWQgSGF0LCBJbmMuCi0rIyBDb3B5cmlnaHQgKEMpIDIwMjYg UmVkIEhhdCwgSW5jLgotICMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAjCi0gIyBMaWNlbnNlOiBH UEwgKHZlcnNpb24gMyBvciBhbnkgbGF0ZXIgdmVyc2lvbikuCi0gIyBTZWUgTElDRU5TRSBmb3Ig ZGV0YWlscy4KLSAjIC0tLSBFTkQgQ09QWVJJR0hUIEJMT0NLIC0tLQotIAotLWltcG9ydCBweXRl c3QsIG9zLCBsZGFwCi0raW1wb3J0IHB5dGVzdCwgb3MsIGxkYXAsIHRpbWUKLSBmcm9tIGxpYjM4 OS5fY29uc3RhbnRzIGltcG9ydCBERUZBVUxUX1NVRkZJWCwgUFdfRE0KLSBmcm9tIGxpYjM4OS5p ZG0udXNlciBpbXBvcnQgVXNlckFjY291bnQKLSBmcm9tIGxpYjM4OS5pZG0ub3JnYW5pemF0aW9u IGltcG9ydCBPcmdhbml6YXRpb24KLUBAIC0xOTAsNiArMTkwLDggQEAgZGVmIHRlc3RfcG9zaXRp dmUodG9wbywgX2FkZF91c2VyLCBhY2lfb2ZfdXNlciwgdXNlciwgZW50cnksIGFjaSk6Ci0gICAg ICIiIgotICAgICAjIHNldCBhY2kKLSAgICAgRG9tYWluKHRvcG8uc3RhbmRhbG9uZSwgRE5CQVNF KS5zZXQoImFjaSIsIGFjaSkKLSsgICAgdGltZS5zbGVlcCguNSkKLSsKLSAgICAgIyBjcmVhdGUg Y29ubmVjdGlvbgotICAgICBjb25uID0gVXNlckFjY291bnQodG9wby5zdGFuZGFsb25lLCB1c2Vy KS5iaW5kKFBXX0RNKQotICAgICAjIGFjY29yZGluZyB0byB0aGUgYWNpICwgdXNlciB3aWxsICBi ZSBhYmxlIHRvIGNoYW5nZSBkZXNjcmlwdGlvbgotQEAgLTI0Miw2ICsyNDQsNyBAQCBkZWYgdGVz dF9uZWdhdGl2ZSh0b3BvLCBfYWRkX3VzZXIsIGFjaV9vZl91c2VyLCB1c2VyLCBlbnRyeSwgYWNp KToKLSAgICAgIiIiCi0gICAgICMgc2V0IGFjaQotICAgICBEb21haW4odG9wby5zdGFuZGFsb25l LCBETkJBU0UpLnNldCgiYWNpIiwgYWNpKQotKyAgICB0aW1lLnNsZWVwKC41KQotICAgICAjIGNy ZWF0ZSBjb25uZWN0aW9uCi0gICAgIGNvbm4gPSBVc2VyQWNjb3VudCh0b3BvLnN0YW5kYWxvbmUs IHVzZXIpLmJpbmQoUFdfRE0pCi0gICAgICMgYWNjb3JkaW5nIHRvIHRoZSBhY2kgLCB1c2VyIHdp bGwgbm90IGJlIGFibGUgdG8gY2hhbmdlIGRlc2NyaXB0aW9uCi1kaWZmIC0tZ2l0IGEvZGlyc3J2 dGVzdHMvdGVzdHMvc3VpdGVzL2ltcG9ydC9yZWdyZXNzaW9uX3Rlc3QucHkgYi9kaXJzcnZ0ZXN0 cy90ZXN0cy9zdWl0ZXMvaW1wb3J0L3JlZ3Jlc3Npb25fdGVzdC5weQotaW5kZXggMGUzYmExOTMw Li4yNWE3ZjM1OWQgMTAwNjQ0Ci0tLS0gYS9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvaW1wb3J0 L3JlZ3Jlc3Npb25fdGVzdC5weQotKysrIGIvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL2ltcG9y dC9yZWdyZXNzaW9uX3Rlc3QucHkKLUBAIC02ODcsNyArNjg3LDcgQEAgZGVmIHRlc3RfbGRpZjJk Yl9hZnRlcl9iYWNrZW5kX2NyZWF0ZSh0b3BvLCB2ZXJpZnkpOgotICAgICBpbXBvcnRfdGltZV8y ID0gY3JlYXRlX2JhY2tlbmRfYW5kX2ltcG9ydChpbnN0YW5jZSwgbGRpZl9maWxlXzIsICdvPXRl c3RfMicsICd0ZXN0XzInKQotIAotICAgICBsb2cuaW5mbygnSW1wb3J0IHRpbWVzIHNob3VsZCBi ZSBhcHByb3hpbWF0ZWx5IHRoZSBzYW1lJykKLS0gICAgYXNzZXJ0IGFicyhpbXBvcnRfdGltZV8x IC0gaW1wb3J0X3RpbWVfMikgPCAxNQotKyAgICBhc3NlcnQgYWJzKGltcG9ydF90aW1lXzEgLSBp bXBvcnRfdGltZV8yKSA8IDIwCi0gCi0gCi0gZGVmIHRlc3RfbGRpZl9taXNzaW5nX3N1ZmZpeF9l bnRyeSh0b3BvLCByZXF1ZXN0LCB2ZXJpZnkpOgotZGlmZiAtLWdpdCBhL2RpcnNydnRlc3RzL3Rl c3RzL3N1aXRlcy9yZXBsaWNhdGlvbi93YWl0X2Zvcl9hc3luY19mZWF0dXJlX3Rlc3QucHkgYi9k aXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvcmVwbGljYXRpb24vd2FpdF9mb3JfYXN5bmNfZmVhdHVy ZV90ZXN0LnB5Ci1pbmRleCBjNWFiNTg1ZTQuLjg0Y2UxY2EyYiAxMDA2NDQKLS0tLSBhL2RpcnNy dnRlc3RzL3Rlc3RzL3N1aXRlcy9yZXBsaWNhdGlvbi93YWl0X2Zvcl9hc3luY19mZWF0dXJlX3Rl c3QucHkKLSsrKyBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9yZXBsaWNhdGlvbi93YWl0X2Zv cl9hc3luY19mZWF0dXJlX3Rlc3QucHkKLUBAIC0yNiw3ICsyNiw3IEBAIGxvZyA9IGxvZ2dpbmcu Z2V0TG9nZ2VyKF9fbmFtZV9fKQotIGluc3RhbGxhdGlvbjFfcHJlZml4ID0gTm9uZQotIAotICMg RXhwZWN0ZWQgbWluaW11bSBhbmQgbWF4aW11bSBudW1iZXIgb2YgYXN5bmMgcmVzdWx0IGluIHVz dWFsIGNhc2VzCi0tVVNVQUxfTUlOX0FQID0gMwotK1VTVUFMX01JTl9BUCA9IDIKLSBVU1VBTF9N QVhfQVAgPSAxMQotIAotIEBweXRlc3QuZml4dHVyZShwYXJhbXM9WyhOb25lLCAoVVNVQUxfTUlO X0FQLCBVU1VBTF9NQVhfQVApKSwKLWRpZmYgLS1naXQgYS9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0 ZXMvcmV0cm9jbC9iYXNpY190ZXN0LnB5IGIvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL3JldHJv Y2wvYmFzaWNfdGVzdC5weQotaW5kZXggYjUzYTYwODUxLi4yZmNlNzIwNDkgMTAwNjQ0Ci0tLS0g YS9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvcmV0cm9jbC9iYXNpY190ZXN0LnB5Ci0rKysgYi9k aXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvcmV0cm9jbC9iYXNpY190ZXN0LnB5Ci1AQCAtNDkyLDcg KzQ5Miw3IEBAIGRlZiB0ZXN0X3JldHJvY2xfdHJpbW1pbmdfZW50cmllcyh0b3BvbG9neV9zdCk6 Ci0gICAgICAgICBpZiBpbnN0LnNlYXJjaEVycm9yc0xvZygidHJpbV9jaGFuZ2Vsb2c6IHJlbW92 ZWQgIik6Ci0gICAgICAgICAgICAgbG9nLmluZm8oZidUcmltbWluZyBkZXRlY3RlZCBhZnRlciB7 YXR0ZW1wdCAqIDZ9IHNlY29uZHMnKQotICAgICAgICAgICAgIGJyZWFrCi0tICAgIAotKwotICAg ICBsb2cuaW5mbygnVmVyaWZ5IHRyaW1taW5nIG9jY3VycmVkIGJ5IGNoZWNraW5nIGVycm9yIGxv ZycpCi0gICAgIGFzc2VydCBpbnN0LnNlYXJjaEVycm9yc0xvZygidHJpbV9jaGFuZ2Vsb2c6IHJl bW92ZWQgIikKLSAKLS0tIAotMi41Mi4wCi0KCmRpZmYgLS1naXQgYS8wMDQwLUlzc3VlLTcyMzMt dGVzdF9wcm9kdWNlX2RpdmlzaW9uX2J5X3plcm8tZmFpbHMtd2l0aC0ucGF0Y2ggYi8wMDQwLUlz c3VlLTcyMzMtdGVzdF9wcm9kdWNlX2RpdmlzaW9uX2J5X3plcm8tZmFpbHMtd2l0aC0ucGF0Y2gK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE0ZWUyODQuLjAwMDAwMDAKLS0tIGEvMDA0 MC1Jc3N1ZS03MjMzLXRlc3RfcHJvZHVjZV9kaXZpc2lvbl9ieV96ZXJvLWZhaWxzLXdpdGgtLnBh dGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTYgKzAsMCBAQAotRnJvbSA1OGY1ZDEyOTQ5NmNjOGI0 MjcxZGFmNWQwY2QzYWIzMWU4YjkyNmE4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTog QWtzaGF5IEFkaGlrYXJpIDxhYWRoaWthckByZWRoYXQuY29tPgotRGF0ZTogVGh1LCAxMiBGZWIg MjAyNiAxMjo0NzoyMyArMDUzMAotU3ViamVjdDogW1BBVENIXSBJc3N1ZSA3MjMzIC0gdGVzdF9w cm9kdWNlX2RpdmlzaW9uX2J5X3plcm8gZmFpbHMgd2l0aAotIElzQURpcmVjdG9yeUVycm9yIGlu IGNvbmZ0ZXN0LnB5ICgjNzIzNCkKLQotRGVzY3JpcHRpb246IGdsb2IoJy8qLyonKSBtYXRjaGVz IGRpcmVjdG9yaWVzIGNhdXNpbmcgb3BlbigpIHRvIGZhaWwuCi0KLUZpeGVzOiAjNzIzMwotCi1S ZXZpZXdlZCBieTogQGRyb2lkZWNrIChUaGFua3MhKQotLS0tCi0gZGlyc3J2dGVzdHMvY29uZnRl c3QucHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIgKysKLSAuLi4vc3Vp dGVzL2Rpc2tfbW9uaXRvcmluZy9kaXNrX21vbml0b3JpbmdfZGl2aWRlX3Rlc3QucHkgIHwgNyAr KysrLS0tCi0gMiBmaWxlcyBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0p Ci0KLWRpZmYgLS1naXQgYS9kaXJzcnZ0ZXN0cy9jb25mdGVzdC5weSBiL2RpcnNydnRlc3RzL2Nv bmZ0ZXN0LnB5Ci1pbmRleCAwZGI2MDQ1ZjQuLjE5YjM0YzRhNCAxMDA2NDQKLS0tLSBhL2RpcnNy dnRlc3RzL2NvbmZ0ZXN0LnB5Ci0rKysgYi9kaXJzcnZ0ZXN0cy9jb25mdGVzdC5weQotQEAgLTEy Niw2ICsxMjYsOCBAQCBkZWYgcHl0ZXN0X3J1bnRlc3RfbWFrZXJlcG9ydChpdGVtLCBjYWxsKToK LSAgICAgICAgICAgICAgICAgICAgIHRleHQgPSBhc2FuX3JlcG9ydC5yZWFkKCkKLSAgICAgICAg ICAgICAgICAgICAgIGV4dHJhLmFwcGVuZChweXRlc3RfaHRtbC5leHRyYXMudGV4dCh0ZXh0LCBu YW1lPW9zLnBhdGguYmFzZW5hbWUoZikpKQotICAgICAgICAgICAgIGZvciBmIGluIGdsb2IuZ2xv YihmJ3twLmxvZ19kaXIuc3BsaXQoIi9zbGFwZCIsMSlbMF19LyovKicpOgotKyAgICAgICAgICAg ICAgICBpZiBub3Qgb3MucGF0aC5pc2ZpbGUoZik6Ci0rICAgICAgICAgICAgICAgICAgICBjb250 aW51ZQotICAgICAgICAgICAgICAgICBpZiBmLmVuZHN3aXRoKCdneicpOgotICAgICAgICAgICAg ICAgICAgICAgd2l0aCBnemlwLm9wZW4oZiwgJ3JiJykgYXMgZGlyc3J2X2xvZzoKLSAgICAgICAg ICAgICAgICAgICAgICAgICB0ZXh0ID0gZGlyc3J2X2xvZy5yZWFkKCkKLWRpZmYgLS1naXQgYS9k aXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvZGlza19tb25pdG9yaW5nL2Rpc2tfbW9uaXRvcmluZ19k aXZpZGVfdGVzdC5weSBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9kaXNrX21vbml0b3Jpbmcv ZGlza19tb25pdG9yaW5nX2RpdmlkZV90ZXN0LnB5Ci1pbmRleCA5ZDk1MmY5M2EuLjNlNTJlN2M2 YiAxMDA2NDQKLS0tLSBhL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9kaXNrX21vbml0b3Jpbmcv ZGlza19tb25pdG9yaW5nX2RpdmlkZV90ZXN0LnB5Ci0rKysgYi9kaXJzcnZ0ZXN0cy90ZXN0cy9z dWl0ZXMvZGlza19tb25pdG9yaW5nL2Rpc2tfbW9uaXRvcmluZ19kaXZpZGVfdGVzdC5weQotQEAg LTMxLDE1ICszMSwxNiBAQCBkZWYgY3JlYXRlX2R1bW15X21vdW50KHRvcG9sb2d5X3N0LCByZXF1 ZXN0KToKLSAgICAgbG9nLmluZm8oJ0NyZWF0ZSBkdW1teSBtb3VudCcpCi0gICAgIGZvciBjbWQg aW4gY21kczoKLSAgICAgICAgIGxvZy5pbmZvKCdDb21tYW5kIHVzZWQgOiAlcycgJSBjbWQpCi0t ICAgICAgICBzdWJwcm9jZXNzLlBvcGVuKGNtZCwgc2hlbGw9VHJ1ZSkKLSsgICAgICAgIHN1YnBy b2Nlc3MucnVuKGNtZCwgc2hlbGw9VHJ1ZSkKLSAKLSAgICAgZGVmIGZpbigpOgotICAgICAgICAg Y21kcyA9IFsndW1vdW50IC92YXIvbG9nL2RpcnNydi9zbGFwZC17fS90bXAnLmZvcm1hdCh0b3Bv bG9neV9zdC5zdGFuZGFsb25lLnNlcnZlcmlkKSwKLSsgICAgICAgICAgICAgICAgJ3JtZGlyIC92 YXIvbG9nL2RpcnNydi9zbGFwZC17fS90bXAnLmZvcm1hdCh0b3BvbG9neV9zdC5zdGFuZGFsb25l LnNlcnZlcmlkKSwKLSAgICAgICAgICAgICAgICAgJ3NldGVuZm9yY2UgMSddCi0gCi0gICAgICAg ICBmb3IgY21kIGluIGNtZHM6Ci0tICAgICAgICAgICAgbG9nLmluZm8oJ0NvbW1hbmQgdXNlZCA6 ICVzJyAlIGNtZHMpCi0tICAgICAgICAgICAgc3VicHJvY2Vzcy5Qb3BlbihjbWQsIHNoZWxsPVRy dWUpCi0rICAgICAgICAgICAgbG9nLmluZm8oJ0NvbW1hbmQgdXNlZCA6ICVzJyAlIGNtZCkKLSsg ICAgICAgICAgICBzdWJwcm9jZXNzLnJ1bihjbWQsIHNoZWxsPVRydWUpCi0gCi0gICAgIHJlcXVl c3QuYWRkZmluYWxpemVyKGZpbikKLSAKLS0tIAotMi41Mi4wCi0KCmRpZmYgLS1naXQgYS8wMDQx LUlzc3VlLTcyNDEtRHJvcC1kYXRldXRpbC03MjQyLnBhdGNoIGIvMDA0MS1Jc3N1ZS03MjQxLURy b3AtZGF0ZXV0aWwtNzI0Mi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmUy ZWU2NS4uMDAwMDAwMAotLS0gYS8wMDQxLUlzc3VlLTcyNDEtRHJvcC1kYXRldXRpbC03MjQyLnBh dGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjI2ICswLDAgQEAKLUZyb20gYmJkYTQ5Yjg2ZjM4NDFh YzUxMDA4OTRkYTQyNmVkYzU0MWI2MjI2YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206 IFZpa3RvciBBc2hpcm92IDx2YXNoaXJvdkByZWRoYXQuY29tPgotRGF0ZTogVGh1LCAxMiBGZWIg MjAyNiAwOToxNToxOCArMDEwMAotU3ViamVjdDogW1BBVENIXSBJc3N1ZSA3MjQxIC0gRHJvcCBk YXRldXRpbCAoIzcyNDIpCi0KLUJ1ZyBEZXNjcmlwdGlvbjoKLXB5dGhvbi1kYXRldXRpbCBpcyB1 bm1haW50YWluZWQgdXBzdHJlYW0gYW5kIGlzIG1hcmtlZCBmb3IgZGVwcmVjYXRpb24uCi0KLUZp eCBEZXNjcmlwdGlvbjoKLSogUmVwbGFjZSBgZGF0ZXV0aWwudHoudHpvZmZzZXRgIHdpdGggYGRh dGV0aW1lLnRpbWV6b25lKGRhdGV0aW1lLnRpbWVkZWx0YSgpKWAuCi0qIFJlcGxhY2UgYGRhdGV1 dGlsLnBhcnNlci5wYXJzZWAgd2l0aCBzdGFuZGFyZCBgZGF0ZXRpbWVgIGNhbGxzLgotKiBJbXBv cnQgYGRhdGV0aW1lYCBhcyBgZHRgIHRvIGF2b2lkIGNvbmZ1c2lvbiBiZXR3ZWVuIG1vZHVsZSBh bmQgY2xhc3MuCi0qIEZpeCBtb250aCBsb29rdXAgYnVnICgnT2N0JzogOSAvICdTZXAnOiAxMCku Ci0KLUZpeGVzOiBodHRwczovL2dpdGh1Yi5jb20vMzg5ZHMvMzg5LWRzLWJhc2UvaXNzdWVzLzcy NDEKLQotUmV2aWV3ZWQgYnk6IGpjaGFwbWEsIGRyb2lkZWNrIChUaGFua3MhKQotLS0tCi0gLi4u L3N1aXRlcy9wYXNzd29yZC9wd2RQb2xpY3lfd2FybmluZ190ZXN0LnB5IHwgIDUgKy0KLSBzcmMv bGliMzg5L2xpYjM4OS9kaXJzcnZfbG9nLnB5ICAgICAgICAgICAgICAgfCA0OCArKysrKysrKysr KystLS0tLS0tCi0gc3JjL2xpYjM4OS9saWIzODkvdGVzdHMvZGlyc3J2X2xvZ190ZXN0LnB5ICAg IHwgMTMgKysrLS0KLSBzcmMvbGliMzg5L3B5cHJvamVjdC50b21sICAgICAgICAgICAgICAgICAg ICAgfCAgMiAtCi0gc3JjL2xpYjM4OS9yZXF1aXJlbWVudHMudHh0ICAgICAgICAgICAgICAgICAg IHwgIDEgLQotIDUgZmlsZXMgY2hhbmdlZCwgMzggaW5zZXJ0aW9ucygrKSwgMzEgZGVsZXRpb25z KC0pCi0KLWRpZmYgLS1naXQgYS9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvcGFzc3dvcmQvcHdk UG9saWN5X3dhcm5pbmdfdGVzdC5weSBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9wYXNzd29y ZC9wd2RQb2xpY3lfd2FybmluZ190ZXN0LnB5Ci1pbmRleCAxNTRlYzAxZjEuLjIzNDFkYTZlYiAx MDA2NDQKLS0tLSBhL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9wYXNzd29yZC9wd2RQb2xpY3lf d2FybmluZ190ZXN0LnB5Ci0rKysgYi9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvcGFzc3dvcmQv cHdkUG9saWN5X3dhcm5pbmdfdGVzdC5weQotQEAgLTE1LDkgKzE1LDggQEAgZnJvbSBsaWIzODku dG9wb2xvZ2llcyBpbXBvcnQgdG9wb2xvZ3lfc3QKLSBmcm9tIGxpYjM4OS5pZG0udXNlciBpbXBv cnQgVXNlckFjY291bnRzCi0gZnJvbSBsaWIzODkuaWRtLm9yZ2FuaXphdGlvbmFsdW5pdCBpbXBv cnQgT3JnYW5pemF0aW9uYWxVbml0cwotIGZyb20gbGliMzg5Ll9jb25zdGFudHMgaW1wb3J0IChE RUZBVUxUX1NVRkZJWCwgRE5fQ09ORklHLCBQQVNTV09SRCwgRE5fRE0pCi0tZnJvbSBkYXRldXRp bC5wYXJzZXIgaW1wb3J0IHBhcnNlIGFzIGR0X3BhcnNlCi0gZnJvbSBsaWIzODkuY29uZmlnIGlt cG9ydCBDb25maWcKLS1pbXBvcnQgZGF0ZXRpbWUKLStpbXBvcnQgZGF0ZXRpbWUgYXMgZHQKLSAK LSBweXRlc3RtYXJrID0gcHl0ZXN0Lm1hcmsudGllcjEKLSAKLUBAIC0zNTEsNyArMzUwLDcgQEAg ZGVmIHRlc3Rfd2l0aF9kaWZmZXJlbnRfcGFzc3dvcmRfc3RhdGVzKHRvcG9sb2d5X3N0LCBnbG9i YWxfcG9saWN5LCBhZGRfdXNlcik6Ci0gICAgIG9sZF90cyA9IHVzZXIuZ2V0X2F0dHJfdmFsX3V0 ZjgoJ3Bhc3N3b3JkRXhwaXJhdGlvblRpbWUnKQotICAgICBsb2cuaW5mbygiT2xkIHBhc3N3b3Jk RXhwaXJhdGlvblRpbWU6IHt9Ii5mb3JtYXQob2xkX3RzKSkKLSAKLS0gICAgbmV3X3RzID0gKGR0 X3BhcnNlKG9sZF90cykgLSBkYXRldGltZS50aW1lZGVsdGEoMzEpKS5zdHJmdGltZSgnJVklbSVk JUglTSVTWicpCi0rICAgIG5ld190cyA9IChkdC5kYXRldGltZS5zdHJwdGltZShvbGRfdHMsICcl WSVtJWQlSCVNJVNaJykgLSBkdC50aW1lZGVsdGEoMzEpKS5zdHJmdGltZSgnJVklbSVkJUglTSVT WicpCi0gICAgIGxvZy5pbmZvKCJOZXcgcGFzc3dvcmRFeHBpcmF0aW9uVGltZToge30iLmZvcm1h dChuZXdfdHMpKQotICAgICB1c2VyLnJlcGxhY2UoJ3Bhc3N3b3JkRXhwaXJhdGlvblRpbWUnLCBu ZXdfdHMpCi0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYjM4OS9saWIzODkvZGlyc3J2X2xvZy5weSBi L3NyYy9saWIzODkvbGliMzg5L2RpcnNydl9sb2cucHkKLWluZGV4IGU0MDEwNWFkMy4uM2Q5MjNh OGJmIDEwMDY0NAotLS0tIGEvc3JjL2xpYjM4OS9saWIzODkvZGlyc3J2X2xvZy5weQotKysrIGIv c3JjL2xpYjM4OS9saWIzODkvZGlyc3J2X2xvZy5weQotQEAgLTEwLDExICsxMCwxMSBAQAotICIi IgotIAotIGltcG9ydCBjb3B5Ci0raW1wb3J0IGRhdGV0aW1lIGFzIGR0Ci0gaW1wb3J0IGpzb24K LSBpbXBvcnQgZ2xvYgotIGltcG9ydCByZQotIGltcG9ydCBnemlwCi0tZnJvbSBkYXRldXRpbC5w YXJzZXIgaW1wb3J0IHBhcnNlIGFzIGR0X3BhcnNlCi0gZnJvbSBsaWIzODkudXRpbHMgaW1wb3J0 IGVuc3VyZV9ieXRlcwotIGZyb20gbGliMzg5Ll9tYXBwZWRfb2JqZWN0X2xpbnQgaW1wb3J0IERT TGludAotIGZyb20gbGliMzg5LmxpbnQgaW1wb3J0ICgKLUBAIC0zNCw4ICszNCw4IEBAIE1PTlRI X0xPT0tVUCA9IHsKLSAgICAgJ0p1bic6IDYsCi0gICAgICdKdWwnOiA3LAotICAgICAnQXVnJzog OCwKLS0gICAgJ09jdCc6IDksCi0tICAgICdTZXAnOiAxMCwKLSsgICAgJ1NlcCc6IDksCi0rICAg ICdPY3QnOiAxMCwKLSAgICAgJ05vdic6IDExLAotICAgICAnRGVjJzogMTIsCi0gfQotQEAgLTUw LDkgKzUwLDkgQEAgY2xhc3MgRGlyc3J2TG9nKERTTGludCk6Ci0gICAgICAgICAiIiIKLSAgICAg ICAgIHNlbGYuZGlyc3J2ID0gZGlyc3J2Ci0gICAgICAgICBzZWxmLmxvZyA9IHNlbGYuZGlyc3J2 LmxvZwotLSAgICAgICAgc2VsZi5wcm9nX3RpbWVzdGFtcCA9IHJlLmNvbXBpbGUocidcWyg/UDxk YXk+XGQqKVwvKD9QPG1vbnRoPlx3KilcLyg/UDx5ZWFyPlxkKik6KD9QPGhvdXI+XGQqKTooP1A8 bWludXRlPlxkKik6KD9QPHNlY29uZD5cZCopKC4oP1A8bmFub3NlY29uZD5cZCopKStccyg/UDx0 ej5bXCtcLV1cZCopJykgICAjIG5vcWEKLSsgICAgICAgIHNlbGYucHJvZ190aW1lc3RhbXAgPSBy ZS5jb21waWxlKHInXFsoP1A8ZGF5PlxkKilcLyg/UDxtb250aD5cdyopXC8oP1A8eWVhcj5cZCop Oig/UDxob3VyPlxkKik6KD9QPG1pbnV0ZT5cZCopOig/UDxzZWNvbmQ+XGQqKSguKD9QPG5hbm9z ZWNvbmQ+XGQqKSkrXHMoP1A8dHo+W1wrXC1dXGR7NH0pJykgICAjIG5vcWEKLSAgICAgICAgICMg IEpTT04gdGltZXN0YW1wIHVzZXMgc3RyZnRpbWUgJUZUJVQgLS0+IDIwMjUtMDItMTJUMTc6MDA6 NDcuNjYzMTIzMTgxIC0wNTAwCi0tICAgICAgICBzZWxmLnByb2dfanNvbl90aW1lc3RhbXAgPSBy ZS5jb21waWxlKHInKD9QPHllYXI+XGQqKS0oP1A8bW9udGg+XHcqKS0oP1A8ZGF5PlxkKilUKD9Q PGhvdXI+XGQqKTooP1A8bWludXRlPlxkKik6KD9QPHNlY29uZD5cZCopKC4oP1A8bmFub3NlY29u ZD5cZCopKStccyg/UDx0ej5bXCtcLV1cZCopJykgICAjIG5vcWEKLSsgICAgICAgIHNlbGYucHJv Z19qc29uX3RpbWVzdGFtcCA9IHJlLmNvbXBpbGUocicoP1A8eWVhcj5cZCopLSg/UDxtb250aD5c dyopLSg/UDxkYXk+XGQqKVQoP1A8aG91cj5cZCopOig/UDxtaW51dGU+XGQqKTooP1A8c2Vjb25k PlxkKikoLig/UDxuYW5vc2Vjb25kPlxkKikpK1xzKD9QPHR6PltcK1wtXVxkezR9KScpICAgIyBu b3FhCi0gICAgICAgICBzZWxmLnByb2dfZGF0ZXRpbWUgPSByZS5jb21waWxlKHInXig/UDx0aW1l c3RhbXA+XFsuKlxdKScpCi0gICAgICAgICBzZWxmLmpzb25Gb3JtYXQgPSBGYWxzZQotIAotQEAg LTE1NywyMCArMTU3LDMyIEBAIGNsYXNzIERpcnNydkxvZyhEU0xpbnQpOgotICAgICAgICAgZWxz ZToKLSAgICAgICAgICAgICB0aW1lZGF0YSA9IHNlbGYucHJvZ190aW1lc3RhbXAubWF0Y2godHMp Lmdyb3VwZGljdCgpCi0gCi0tICAgICAgICAjIE5vdywgaGF2ZSB0byBjb252ZXJ0IG1vbnRoIHRv IGFuIGludC4KLS0gICAgICAgIGR0X3N0ciA9ICd7WUVBUn0te01PTlRIfS17REFZfSB7SE9VUn0t e01JTlVURX0te1NFQ09ORH0ge1RafScuZm9ybWF0KAotLSAgICAgICAgICAgIFlFQVI9dGltZWRh dGFbJ3llYXInXSwKLS0gICAgICAgICAgICBNT05USD10aW1lZGF0YVsnbW9udGgnXSwKLS0gICAg ICAgICAgICBEQVk9dGltZWRhdGFbJ2RheSddLAotLSAgICAgICAgICAgIEhPVVI9dGltZWRhdGFb J2hvdXInXSwKLS0gICAgICAgICAgICBNSU5VVEU9dGltZWRhdGFbJ21pbnV0ZSddLAotLSAgICAg ICAgICAgIFNFQ09ORD10aW1lZGF0YVsnc2Vjb25kJ10sCi0tICAgICAgICAgICAgVFo9dGltZWRh dGFbJ3R6J10sCi0tICAgICAgICAgICAgKQotLSAgICAgICAgZHQgPSBkdF9wYXJzZShkdF9zdHIp Ci0rICAgICAgICAjIENvbnZlcnQgbW9udGggdG8gYW4gaW50LgotKyAgICAgICAgbW9udGggPSB0 aW1lZGF0YVsnbW9udGgnXQotKyAgICAgICAgaWYgbm90IG1vbnRoLmlzZGlnaXQoKToKLSsgICAg ICAgICAgICBtb250aCA9IE1PTlRIX0xPT0tVUFttb250aF0KLSsgICAgICAgIGVsc2U6Ci0rICAg ICAgICAgICAgbW9udGggPSBpbnQobW9udGgpCi0rCi0rICAgICAgICAjIFBhcnNlIHRpbWV6b25l IG9mZnNldCBzdHJpbmcgKGUuZy4gIisxMDAwIiBvciAiLTA1MDAiKSBpbnRvIGEgdGltZXpvbmUK LSsgICAgICAgIHR6X3N0ciA9IHRpbWVkYXRhWyd0eiddCi0rICAgICAgICB0el9zaWduID0gMSBp ZiB0el9zdHJbMF0gPT0gJysnIGVsc2UgLTEKLSsgICAgICAgIHR6X2hvdXJzID0gaW50KHR6X3N0 clsxOjNdKQotKyAgICAgICAgdHpfbWludXRlcyA9IGludCh0el9zdHJbMzo1XSkKLSsgICAgICAg IHR6ID0gZHQudGltZXpvbmUoZHQudGltZWRlbHRhKGhvdXJzPXR6X3NpZ24gKiB0el9ob3Vycywg bWludXRlcz10el9zaWduICogdHpfbWludXRlcykpCi0rCi0rICAgICAgICBwYXJzZWRfZHQgPSBk dC5kYXRldGltZSgKLSsgICAgICAgICAgICBpbnQodGltZWRhdGFbJ3llYXInXSksCi0rICAgICAg ICAgICAgbW9udGgsCi0rICAgICAgICAgICAgaW50KHRpbWVkYXRhWydkYXknXSksCi0rICAgICAg ICAgICAgaW50KHRpbWVkYXRhWydob3VyJ10pLAotKyAgICAgICAgICAgIGludCh0aW1lZGF0YVsn bWludXRlJ10pLAotKyAgICAgICAgICAgIGludCh0aW1lZGF0YVsnc2Vjb25kJ10pLAotKyAgICAg ICAgICAgIHR6aW5mbz10egotKyAgICAgICAgKQotICAgICAgICAgaWYgdGltZWRhdGFbJ25hbm9z ZWNvbmQnXToKLS0gICAgICAgICAgICBkdCA9IGR0LnJlcGxhY2UobWljcm9zZWNvbmQ9aW50KGlu dCh0aW1lZGF0YVsnbmFub3NlY29uZCddKSAvIDEwMDApKQotLSAgICAgICAgcmV0dXJuIGR0Ci0r ICAgICAgICAgICAgcGFyc2VkX2R0ID0gcGFyc2VkX2R0LnJlcGxhY2UobWljcm9zZWNvbmQ9aW50 KHRpbWVkYXRhWyduYW5vc2Vjb25kJ10pIC8vIDEwMDApCi0rICAgICAgICByZXR1cm4gcGFyc2Vk X2R0Ci0gCi0gICAgIGRlZiBnZXRfdGltZV9pbl9zZWNzKHNlbGYsIGxvZ19saW5lKToKLSAgICAg ICAgICIiIlRha2UgdGhlIHRpbWVzdGFtcCAobm90IHRoZSBkYXRlKSBmcm9tIGEgRFMgYWNjZXNz IGxvZyBhbmQgY29udmVydAotZGlmZiAtLWdpdCBhL3NyYy9saWIzODkvbGliMzg5L3Rlc3RzL2Rp cnNydl9sb2dfdGVzdC5weSBiL3NyYy9saWIzODkvbGliMzg5L3Rlc3RzL2RpcnNydl9sb2dfdGVz dC5weQotaW5kZXggOTIwZTY3YTAxLi5kMDI1OWNlZDkgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliMzg5 L2xpYjM4OS90ZXN0cy9kaXJzcnZfbG9nX3Rlc3QucHkKLSsrKyBiL3NyYy9saWIzODkvbGliMzg5 L3Rlc3RzL2RpcnNydl9sb2dfdGVzdC5weQotQEAgLTEyLDggKzEyLDcgQEAgZnJvbSBsaWIzODkg aW1wb3J0IERpclNydiwgRW50cnkKLSBpbXBvcnQgcHl0ZXN0Ci0gaW1wb3J0IHRpbWUKLSBpbXBv cnQgc2h1dGlsCi0taW1wb3J0IGRhdGV0aW1lCi0tZnJvbSBkYXRldXRpbC50eiBpbXBvcnQgdHpv ZmZzZXQKLStpbXBvcnQgZGF0ZXRpbWUgYXMgZHQKLSAKLSBJTlNUQU5DRV9QT1JUID0gNTQzMjEK LSBJTlNUQU5DRV9TRVJWRVJJRCA9ICdzdGFuZGFsb25lJwotQEAgLTc0LDcgKzczLDcgQEAgZGVm IHRlc3RfYWNjZXNzX2xvZyh0b3BvbG9neSk6Ci0gICAgICAgICB0b3BvbG9neS5zdGFuZGFsb25l LmRzX2FjY2Vzc19sb2cucGFyc2VfbGluZSgnWzI3L0Fwci8yMDE2OjEyOjQ5OjQ5LjcyNjA5MzE4 NiArMTAwMF0gY29ubj0xIGZkPTY0IHNsb3Q9NjQgY29ubmVjdGlvbiBmcm9tIDo6MSB0byA6OjEn KSA9PQotICAgICAgICAgewotICAgICAgICAgICAgICdzbG90JzogJzY0JywgJ3JlbW90ZSc6ICc6 OjEnLCAnYWN0aW9uJzogJ0NPTk5FQ1QnLCAndGltZXN0YW1wJzogJ1syNy9BcHIvMjAxNjoxMjo0 OTo0OS43MjYwOTMxODYgKzEwMDBdJywgJ2ZkJzogJzY0JywgJ2Nvbm4nOiAnMScsICdsb2NhbCc6 ICc6OjEnLAotLSAgICAgICAgICAgICdkYXRldGltZSc6IGRhdGV0aW1lLmRhdGV0aW1lKDIwMTYs IDQsIDI3LCAxMiwgMCwgMCwgNzI2MDkzLCB0emluZm89dHpvZmZzZXQoTm9uZSwgMzYwMDApKQot KyAgICAgICAgICAgICdkYXRldGltZSc6IGR0LmRhdGV0aW1lKDIwMTYsIDQsIDI3LCAxMiwgNDks IDQ5LCA3MjYwOTMsIHR6aW5mbz1kdC50aW1lem9uZShkdC50aW1lZGVsdGEoc2Vjb25kcz0zNjAw MCkpKQotICAgICAgICAgfQotICAgICApCi0gICAgIGFzc2VydCgKLUBAIC04MiwyMSArODEsMjEg QEAgZGVmIHRlc3RfYWNjZXNzX2xvZyh0b3BvbG9neSk6Ci0gICAgICAgICB7Ci0gICAgICAgICAg ICAgJ3JlbSc6ICdiYXNlPSJjbj1jb25maWciIHNjb3BlPTAgZmlsdGVyPSIob2JqZWN0Q2xhc3M9 KikiIGF0dHJzPSJuc3NsYXBkLWluc3RhbmNlZGlyIG5zc2xhcGQtZXJyb3Jsb2cgbnNzbGFwZC1h Y2Nlc3Nsb2cgbnNzbGFwZC1hdWRpdGxvZyBuc3NsYXBkLWNlcnRkaXIgbnNzbGFwZC1zY2hlbWFk aXIgbnNzbGFwZC1iYWtkaXIgbnNzbGFwZC1sZGlmZGlyIicsICAjIG5vcWEKLSAgICAgICAgICAg ICAnYWN0aW9uJzogJ1NSQ0gnLCAndGltZXN0YW1wJzogJ1syNy9BcHIvMjAxNjoxMjo0OTo0OS43 MjcyMzU5OTcgKzEwMDBdJywgJ2Nvbm4nOiAnMScsICdvcCc6ICcyJywKLS0gICAgICAgICAgICAn ZGF0ZXRpbWUnOiBkYXRldGltZS5kYXRldGltZSgyMDE2LCA0LCAyNywgMTIsIDAsIDAsIDcyNzIz NSwgdHppbmZvPXR6b2Zmc2V0KE5vbmUsIDM2MDAwKSkKLSsgICAgICAgICAgICAnZGF0ZXRpbWUn OiBkdC5kYXRldGltZSgyMDE2LCA0LCAyNywgMTIsIDQ5LCA0OSwgNzI3MjM1LCB0emluZm89ZHQu dGltZXpvbmUoZHQudGltZWRlbHRhKHNlY29uZHM9MzYwMDApKSkKLSAgICAgICAgIH0KLSAgICAg KQotICAgICBhc3NlcnQoCi0gICAgICAgICB0b3BvbG9neS5zdGFuZGFsb25lLmRzX2FjY2Vzc19s b2cucGFyc2VfbGluZSgnWzI3L0Fwci8yMDE2OjEyOjQ5OjQ5LjczNjI5NzAwMiArMTAwMF0gY29u bj0xIG9wPTQgZmQ9NjQgY2xvc2VkIC0gVTEnKSA9PQotICAgICAgICAgewotICAgICAgICAgICAg ICdzdGF0dXMnOiAnVTEnLCAnZmQnOiAnNjQnLCAnYWN0aW9uJzogJ0RJU0NPTk5FQ1QnLCAndGlt ZXN0YW1wJzogJ1syNy9BcHIvMjAxNjoxMjo0OTo0OS43MzYyOTcwMDIgKzEwMDBdJywgJ2Nvbm4n OiAnMScsICdvcCc6ICc0JywKLS0gICAgICAgICAgICAnZGF0ZXRpbWUnOiBkYXRldGltZS5kYXRl dGltZSgyMDE2LCA0LCAyNywgMTIsIDAsIDAsIDczNjI5NywgdHppbmZvPXR6b2Zmc2V0KE5vbmUs IDM2MDAwKSkKLSsgICAgICAgICAgICAnZGF0ZXRpbWUnOiBkdC5kYXRldGltZSgyMDE2LCA0LCAy NywgMTIsIDQ5LCA0OSwgNzM2Mjk3LCB0emluZm89ZHQudGltZXpvbmUoZHQudGltZWRlbHRhKHNl Y29uZHM9MzYwMDApKSkKLSAgICAgICAgIH0KLSAgICAgKQotICAgICBhc3NlcnQoCi0gICAgICAg ICB0b3BvbG9neS5zdGFuZGFsb25lLmRzX2FjY2Vzc19sb2cucGFyc2VfbGluZSgnWzI3L0Fwci8y MDE2OjEyOjQ5OjQ5LjczNjI5NzAwMiAtMTAwMF0gY29ubj0xIG9wPTQgZmQ9NjQgY2xvc2VkIC0g VTEnKSA9PQotICAgICAgICAgewotICAgICAgICAgICAgICdzdGF0dXMnOiAnVTEnLCAnZmQnOiAn NjQnLCAnYWN0aW9uJzogJ0RJU0NPTk5FQ1QnLCAndGltZXN0YW1wJzogJ1syNy9BcHIvMjAxNjox Mjo0OTo0OS43MzYyOTcwMDIgLTEwMDBdJywgJ2Nvbm4nOiAnMScsICdvcCc6ICc0JywKLS0gICAg ICAgICAgICAnZGF0ZXRpbWUnOiBkYXRldGltZS5kYXRldGltZSgyMDE2LCA0LCAyNywgMTIsIDAs IDAsIDczNjI5NywgdHppbmZvPXR6b2Zmc2V0KE5vbmUsIC0zNjAwMCkpCi0rICAgICAgICAgICAg J2RhdGV0aW1lJzogZHQuZGF0ZXRpbWUoMjAxNiwgNCwgMjcsIDEyLCA0OSwgNDksIDczNjI5Nywg dHppbmZvPWR0LnRpbWV6b25lKGR0LnRpbWVkZWx0YShzZWNvbmRzPS0zNjAwMCkpKQotICAgICAg ICAgfQotICAgICApCi0gCi1AQCAtMTEzLDcgKzExMiw3IEBAIGRlZiB0ZXN0X2Vycm9yX2xvZyh0 b3BvbG9neSk6Ci0gICAgICAgICB0b3BvbG9neS5zdGFuZGFsb25lLmRzX2Vycm9yX2xvZy5wYXJz ZV9saW5lKCdbMjcvQXByLzIwMTY6MTM6NDY6MzUuNzc1NjcwMTY3ICsxMDAwXSBzbGFwZCBzdGFy dGVkLiAgTGlzdGVuaW5nIG9uIEFsbCBJbnRlcmZhY2VzIHBvcnQgNTQzMjEgZm9yIExEQVAgcmVx dWVzdHMnKSA9PSAgIyBub3FhCi0gICAgICAgICB7Ci0gICAgICAgICAgICAgJ3RpbWVzdGFtcCc6 ICdbMjcvQXByLzIwMTY6MTM6NDY6MzUuNzc1NjcwMTY3ICsxMDAwXScsICdtZXNzYWdlJzogJ3Ns YXBkIHN0YXJ0ZWQuICBMaXN0ZW5pbmcgb24gQWxsIEludGVyZmFjZXMgcG9ydCA1NDMyMSBmb3Ig TERBUCByZXF1ZXN0cycsCi0tICAgICAgICAgICAgJ2RhdGV0aW1lJzogZGF0ZXRpbWUuZGF0ZXRp bWUoMjAxNiwgNCwgMjcsIDEzLCAwLCAwLCA3NzU2NzAsIHR6aW5mbz10em9mZnNldChOb25lLCAz NjAwMCkpCi0rICAgICAgICAgICAgJ2RhdGV0aW1lJzogZHQuZGF0ZXRpbWUoMjAxNiwgNCwgMjcs IDEzLCA0NiwgMzUsIDc3NTY3MCwgdHppbmZvPWR0LnRpbWV6b25lKGR0LnRpbWVkZWx0YShzZWNv bmRzPTM2MDAwKSkpCi0gICAgICAgICB9Ci0gICAgICkKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGli Mzg5L3B5cHJvamVjdC50b21sIGIvc3JjL2xpYjM4OS9weXByb2plY3QudG9tbAotaW5kZXggNjNj N2M5NzEwLi5lMDY3ZDE1OTAgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliMzg5L3B5cHJvamVjdC50b21s Ci0rKysgYi9zcmMvbGliMzg5L3B5cHJvamVjdC50b21sCi1AQCAtNSw3ICs1LDYgQEAgcmVxdWly ZXMgPSBbCi0gICAgICJhcmdwYXJzZS1tYW5wYWdlW3NldHVwdG9vbHNdIiwKLSAgICAgInB5YXNu MSIsCi0gICAgICJweWFzbjEtbW9kdWxlcyIsCi0tICAgICJweXRob24tZGF0ZXV0aWwiLAotICAg ICAiYXJnY29tcGxldGUiLAotICAgICAicHl0aG9uLWxkYXAiLAotICAgICAiZGlzdHJvIiwKLUBA IC00Myw3ICs0Miw2IEBAIGNsYXNzaWZpZXJzID0gWwotIGRlcGVuZGVuY2llcyA9IFsKLSAgICAg InB5YXNuMSIsCi0gICAgICJweWFzbjEtbW9kdWxlcyIsCi0tICAgICJweXRob24tZGF0ZXV0aWwi LAotICAgICAiYXJnY29tcGxldGUiLAotICAgICAicHl0aG9uLWxkYXAiLAotICAgICAiZGlzdHJv IiwKLWRpZmYgLS1naXQgYS9zcmMvbGliMzg5L3JlcXVpcmVtZW50cy50eHQgYi9zcmMvbGliMzg5 L3JlcXVpcmVtZW50cy50eHQKLWluZGV4IDVlMWIzZGFkNy4uOTRiMTBlM2MyIDEwMDY0NAotLS0t IGEvc3JjL2xpYjM4OS9yZXF1aXJlbWVudHMudHh0Ci0rKysgYi9zcmMvbGliMzg5L3JlcXVpcmVt ZW50cy50eHQKLUBAIC0xLDYgKzEsNSBAQAotIHB5YXNuMQotIHB5YXNuMS1tb2R1bGVzCi0tcHl0 aG9uLWRhdGV1dGlsCi0gYXJnY29tcGxldGUKLSBhcmdwYXJzZS1tYW5wYWdlCi0gcHl0aG9uLWxk YXAKLS0tIAotMi41Mi4wCi0KCmRpZmYgLS1naXQgYS8wMDQyLUlzc3VlLTcyMzEtU3luYy1yZXBs LXRlc3RzLWZhaWwtaW4tRklQUy1tb2RlLWR1ZS10by0ucGF0Y2ggYi8wMDQyLUlzc3VlLTcyMzEt U3luYy1yZXBsLXRlc3RzLWZhaWwtaW4tRklQUy1tb2RlLWR1ZS10by0ucGF0Y2gKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgwNzk1ZDUuLjAwMDAwMDAKLS0tIGEvMDA0Mi1Jc3N1ZS03 MjMxLVN5bmMtcmVwbC10ZXN0cy1mYWlsLWluLUZJUFMtbW9kZS1kdWUtdG8tLnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsOTQgKzAsMCBAQAotRnJvbSBkMTljNTAzNzJkNWM1ZDkwMWYwNWNlNmU3 ZGQwMzMxM2Y0MWZjMTk3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSmFtZXMgQ2hh cG1hbiA8amFjaGFwbWFAcmVkaGF0LmNvbT4KLURhdGU6IFRodSwgMTIgRmViIDIwMjYgMTA6NDI6 MDkgKzAwMDAKLVN1YmplY3Q6IFtQQVRDSF0gSXNzdWUgNzIzMSAtIFN5bmMgcmVwbCB0ZXN0cyBm YWlsIGluIEZJUFMgbW9kZSBkdWUgdG8gbm9uCi0gRklQUyBjb21wbGlhbnQgY3J5cHRvICgjNzIz MikKLQotRGVzY3JpcHRpb246Ci1TZXZlcmFsIHN5bmNfcmVwbCB0ZXN0cyBmYWlsIHdoZW4gcnVu bmluZyBvbiBhIEZJUFMgZW5hYmxlZCBzeXN0ZW0uIFRoZSBmYWlsdXJlcwotYXJlIGNhdXNlZCBi eSB0aGUgc3luYyByZXBsIGNsaWVudCAoU3luY19wZXJzaXN0KSwgdXNpbmcgVExTIG9wdGlvbnMg YW5kIGNpcGhlcnMKLXRoYXQgYXJlIG5vdCBGSVBTIGNvbXBhdGlibGUuCi0KLUZpeDoKLVVwZGF0 ZSB0aGUgc3luYyByZXBsIGNsaWVudCB0byB1c2UgRklQUyBhcHByb3ZlZCBUTFMgdmVyc2lvbi4K LQotRml4ZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS8zODlkcy8zODktZHMtYmFzZS9pc3N1ZXMvNzIz MQotCi1SZXZpZXdlZCBieTogQHByb2dpZXIzODksIEBkcm9pZGVjayAoVGhhbmsgeW91KQotLS0t Ci0gLi4uL3Rlc3RzL3N1aXRlcy9zeW5jcmVwbF9wbHVnaW4vYmFzaWNfdGVzdC5weSAgICAgfCAx NCArKysrKysrKysrKy0tLQotIDEgZmlsZSBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCAzIGRl bGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL3N5bmNy ZXBsX3BsdWdpbi9iYXNpY190ZXN0LnB5IGIvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL3N5bmNy ZXBsX3BsdWdpbi9iYXNpY190ZXN0LnB5Ci1pbmRleCA4NWI0YWMwNzguLmQwZTdlOGEzMiAxMDA2 NDQKLS0tLSBhL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9zeW5jcmVwbF9wbHVnaW4vYmFzaWNf dGVzdC5weQotKysrIGIvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL3N5bmNyZXBsX3BsdWdpbi9i YXNpY190ZXN0LnB5Ci1AQCAtMjEsNyArMjEsNyBAQCBmcm9tIGxpYjM4OS5pZG0uZ3JvdXAgaW1w b3J0IEdyb3VwcwotIGZyb20gbGliMzg5LnRvcG9sb2dpZXMgaW1wb3J0IHRvcG9sb2d5X3N0IGFz IHRvcG9sb2d5Ci0gZnJvbSBsaWIzODkudG9wb2xvZ2llcyBpbXBvcnQgdG9wb2xvZ3lfbTIgYXMg dG9wb19tMgotIGZyb20gbGliMzg5LnBhdGhzIGltcG9ydCBQYXRocwotLWZyb20gbGliMzg5LnV0 aWxzIGltcG9ydCBkc19pc19vbGRlcgotK2Zyb20gbGliMzg5LnV0aWxzIGltcG9ydCBkc19pc19v bGRlciwgaXNfZmlwcwotIGZyb20gbGliMzg5LnBsdWdpbnMgaW1wb3J0IFJldHJvQ2hhbmdlbG9n UGx1Z2luLCBDb250ZW50U3luY1BsdWdpbiwgQXV0b01lbWJlcnNoaXBQbHVnaW4sIE1lbWJlck9m UGx1Z2luLCBNZW1iZXJPZlNoYXJlZENvbmZpZywgQXV0b01lbWJlcnNoaXBEZWZpbml0aW9ucywg TUVQVGVtcGxhdGVzLCBNRVBDb25maWdzLCBNYW5hZ2VkRW50cmllc1BsdWdpbiwgTUVQVGVtcGxh dGUKLSBmcm9tIGxpYjM4OS5fY29uc3RhbnRzIGltcG9ydCAqCi0gCi1AQCAtMjE0LDEwICsyMTQs MTMgQEAgY2xhc3MgU3luY19wZXJzaXN0KHRocmVhZGluZy5UaHJlYWQsIFJlY29ubmVjdExEQVBP YmplY3QsIFN5bmNyZXBsQ29uc3VtZXIpOgotIAotICAgICBkZWYgcnVuKHNlbGYpOgotICAgICAg ICAgIiIiU3RhcnQgYSBzeW5jIHJlcGwgY2xpZW50IiIiCi0tICAgICAgICBsZGFwLnNldF9vcHRp b24obGRhcC5PUFRfWF9UTFNfQ0FDRVJURklMRSwgb3MucGF0aC5qb2luKHNlbGYuaW5zdC5nZXRf Y29uZmlnX2RpcigpLCAiY2EuY3J0IikpCi0gICAgICAgICBsZGFwX2Nvbm5lY3Rpb24gPSBUZXN0 U3luY2VyKHNlbGYuaW5zdC50b0xEQVBVUkwoKSkKLSAgICAgICAgIGxkYXBfY29ubmVjdGlvbi5z ZXRfb3B0aW9uKGxkYXAuT1BUX1hfVExTX1JFUVVJUkVfQ0VSVCwgbGRhcC5PUFRfWF9UTFNfREVN QU5EKQotKyAgICAgICAgbGRhcF9jb25uZWN0aW9uLnNldF9vcHRpb24obGRhcC5PUFRfWF9UTFNf Q0FDRVJURklMRSwgb3MucGF0aC5qb2luKHNlbGYuaW5zdC5nZXRfY29uZmlnX2RpcigpLCAiY2Eu Y3J0IikpCi0rICAgICAgICBpZiBpc19maXBzKCk6Ci0rICAgICAgICAgICAgbGRhcF9jb25uZWN0 aW9uLnNldF9vcHRpb24obGRhcC5PUFRfWF9UTFNfUFJPVE9DT0xfTUlOLCBsZGFwLk9QVF9YX1RM U19QUk9UT0NPTF9UTFMxXzIpCi0gICAgICAgICBsZGFwX2Nvbm5lY3Rpb24uc2V0X29wdGlvbihs ZGFwLk9QVF9YX1RMU19ORVdDVFgsIDApCi0rCi0gICAgICAgICBsZGFwX2Nvbm5lY3Rpb24uc2lt cGxlX2JpbmRfcygnY249ZGlyZWN0b3J5IG1hbmFnZXInLCAncGFzc3dvcmQnKQotICAgICAgICAg bGRhcF9zZWFyY2ggPSBsZGFwX2Nvbm5lY3Rpb24uc3luY3JlcGxfc2VhcmNoKAotICAgICAgICAg ICAgICJkYz1leGFtcGxlLGRjPWNvbSIsCi1AQCAtMjU3LDYgKzI2MCw3IEBAIGRlZiB0ZXN0X3N5 bmNfcmVwbF9tZXAodG9wb2xvZ3ksIHJlcXVlc3QpOgotICAgICAgICAgNS4gU3VjY2VzcwotICAg ICAiIiIKLSAgICAgaW5zdCA9IHRvcG9sb2d5WzBdCi0rICAgIGluc3QuZW5hYmxlX3RscygpCi0g Ci0gICAgICMgRW5hYmxlL2NvbmZpZ3VyZSByZXRyb0NMCi0gICAgIHBsdWdpbiA9IFJldHJvQ2hh bmdlbG9nUGx1Z2luKGluc3QpCi1AQCAtMzQyLDYgKzM0Niw3IEBAIGRlZiB0ZXN0X3N5bmNfcmVw bF9jb29raWUodG9wb2xvZ3ksIGluaXRfc3luY19yZXBsX3BsdWdpbnMsIHJlcXVlc3QpOgotICAg ICAgIDUuOiBzdWNjZWVkcwotICAgICAiIiIKLSAgICAgaW5zdCA9IHRvcG9sb2d5WzBdCi0rICAg IGluc3QuZW5hYmxlX3RscygpCi0gCi0gICAgICMgY3JlYXRlIGEgc3luYyByZXBsIGNsaWVudCBh bmQgd2FpdCA1IHNlY29uZHMgdG8gYmUgc3VyZSBpdCBpcyBydW5uaW5nCi0gICAgIHN5bmNfcmVw bCA9IFN5bmNfcGVyc2lzdChpbnN0KQotQEAgLTQwOCw2ICs0MTMsOCBAQCBkZWYgdGVzdF9zeW5j X3JlcGxfY29va2llX2FkZF9kZWwodG9wb2xvZ3ksIGluaXRfc3luY19yZXBsX3BsdWdpbnMsIHJl cXVlc3QpOgotICAgICAgIDYuOiBzdWNjZWVkcwotICAgICAiIiIKLSAgICAgaW5zdCA9IHRvcG9s b2d5WzBdCi0rICAgIGluc3QuZW5hYmxlX3RscygpCi0rCi0gICAgICMgY3JlYXRlIGEgc3luYyBy ZXBsIGNsaWVudCBhbmQgd2FpdCA1IHNlY29uZHMgdG8gYmUgc3VyZSBpdCBpcyBydW5uaW5nCi0g ICAgIHN5bmNfcmVwbCA9IFN5bmNfcGVyc2lzdChpbnN0KQotICAgICBzeW5jX3JlcGwuc3RhcnQo KQotQEAgLTU1MSw2ICs1NTgsNyBAQCBkZWYgdGVzdF9zeW5jX3JlcGxfY2Vub3RhcGgodG9wb19t MiwgcmVxdWVzdCk6Ci0gICAgICAgICA1LiBTaG91bGQgc3VjY2VlZHMKLSAgICAgIiIiCi0gICAg IG0xID0gdG9wb19tMi5tc1sic3VwcGxpZXIxIl0KLSsgICAgbTEuZW5hYmxlX3RscygpCi0gICAg ICMgRW5hYmxlL2NvbmZpZ3VyZSByZXRyb0NMCi0gICAgIHBsdWdpbiA9IFJldHJvQ2hhbmdlbG9n UGx1Z2luKG0xKQotICAgICBwbHVnaW4uZGlzYWJsZSgpCi1AQCAtNjA5LDcgKzYxNyw3IEBAIGRl ZiB0ZXN0X3N5bmNfcmVwbF9keW5hbWljX3BsdWdpbih0b3BvbG9neSwgcmVxdWVzdCk6Ci0gICAg ICAgICAzLiBTaG91bGQgc3VjY2VlZHMKLSAgICAgICAgIDQuIFNob3VsZCBzdWNjZWVkcwotICAg ICAiIiIKLS0KLSsgICAgdG9wb2xvZ3kuc3RhbmRhbG9uZS5lbmFibGVfdGxzKCkKLSAgICAgIyBS ZXNldCB0aGUgaW5zdGFuY2UgaW4gYSBkZWZhdWx0IGNvbmZpZwotICAgICAjIERpc2FibGUgY29u dGVudCBzeW5jIHBsdWdpbgotICAgICB0b3BvbG9neS5zdGFuZGFsb25lLnBsdWdpbnMuZGlzYWJs ZShuYW1lPVBMVUdJTl9SRVBMX1NZTkMpCi0tLSAKLTIuNTIuMAotCgpkaWZmIC0tZ2l0IGEvMDA0 My1Jc3N1ZS03MjQ4LUNMSS1hdHRyaWJ1dGUtdW5pcXVlbmVzcy1maXgtdXNhZ2UtZm9yLWV4LnBh dGNoIGIvMDA0My1Jc3N1ZS03MjQ4LUNMSS1hdHRyaWJ1dGUtdW5pcXVlbmVzcy1maXgtdXNhZ2Ut Zm9yLWV4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MTM4NTlmLi4wMDAw MDAwCi0tLSBhLzAwNDMtSXNzdWUtNzI0OC1DTEktYXR0cmlidXRlLXVuaXF1ZW5lc3MtZml4LXVz YWdlLWZvci1leC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLUZyb20gMWRm Mzg1MmNmMGUwNzNjZmUwMDZkNjYxYWVjZGQ5MDk4NjJmYzc5YSBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKLUZyb206IE1hcmsgUmV5bm9sZHMgPG1yZXlub2xkc0ByZWRoYXQuY29tPgotRGF0ZTog VGh1LCAxMiBGZWIgMjAyNiAwOTo1ODo1NCAtMDUwMAotU3ViamVjdDogW1BBVENIXSBJc3N1ZSA3 MjQ4IC0gQ0xJIC0gYXR0cmlidXRlIHVuaXF1ZW5lc3MgLSBmaXggdXNhZ2UgZm9yCi0gZXhjbHVk ZSBzdWJ0cmVlIG9wdGlvbgotCi1EZXNjcmlwdGlvbjoKLQotRml4IHR5cG8gaW4gdXNhZ2UgbWVz c2FnZSBmb3IgdGhlIGV4Y2x1ZGUgc3VidHJlZSBvcHRpb24KLQotcmVsYXRlczogaHR0cHM6Ly9n aXRodWIuY29tLzM4OWRzLzM4OS1kcy1iYXNlL2lzc3Vlcy83MjQ4Ci0KLVJldmlld2VkIGJ5OiBw cm9naWVyIChUaGFua3MhKQotLS0tCi0gc3JjL2xpYjM4OS9saWIzODkvY2xpX2NvbmYvcGx1Z2lu cy9hdHRydW5pcS5weSB8IDIgKy0KLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEg ZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9saWIzODkvbGliMzg5L2NsaV9jb25mL3Bs dWdpbnMvYXR0cnVuaXEucHkgYi9zcmMvbGliMzg5L2xpYjM4OS9jbGlfY29uZi9wbHVnaW5zL2F0 dHJ1bmlxLnB5Ci1pbmRleCBiYzkyNWViMWMuLjI2Y2E1ZDgxOSAxMDA2NDQKLS0tLSBhL3NyYy9s aWIzODkvbGliMzg5L2NsaV9jb25mL3BsdWdpbnMvYXR0cnVuaXEucHkKLSsrKyBiL3NyYy9saWIz ODkvbGliMzg5L2NsaV9jb25mL3BsdWdpbnMvYXR0cnVuaXEucHkKLUBAIC0xMjcsNyArMTI3LDcg QEAgZGVmIF9hZGRfcGFyc2VyX2FyZ3MocGFyc2VyKToKLSAgICAgICAgICAgICAgICAgICAgICAg ICBoZWxwPSdTZXRzIHRoZSBETiB1bmRlciB3aGljaCB0aGUgcGx1Zy1pbiBjaGVja3MgZm9yIHVu aXF1ZW5lc3Mgb2YgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RoZSBhdHRyaWJ1 dGVzIHZhbHVlLiBUaGlzIGF0dHJpYnV0ZSBpcyBtdWx0aS12YWx1ZWQgKHVuaXF1ZW5lc3Mtc3Vi dHJlZXMpJykKLSAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1leGNsdWRlLXN1YnRyZWUnLCBu YXJncz0nKycsCi0tICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nU2V0cyBzdWJ0cmVlcyB0 aGF0IHNob3VsZCBub3QgZXhjbHVkZWRmcm9tIGF0dHJpYnV0ZSB1bmlxdWVuZXNzLiAnCi0rICAg ICAgICAgICAgICAgICAgICAgICAgaGVscD0nU2V0cyBzdWJ0cmVlcyB0aGF0IHNob3VsZCBiZSBl eGNsdWRlZCBmcm9tIGF0dHJpYnV0ZSB1bmlxdWVuZXNzIGNoZWNrcy4gJwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJ1RoaXMgYXR0cmlidXRlIGlzIG11bHRpLXZhbHVlZCAodW5pcXVl bmVzcy1leGNsdWRlLXN1YnRyZWVzKScpCi0gICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0tYWNy b3NzLWFsbC1zdWJ0cmVlcycsIGNob2ljZXM9WydvbicsICdvZmYnXSwgdHlwZT1zdHIubG93ZXIs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nSWYgZW5hYmxlZCAob24pLCB0aGUgcGx1 Zy1pbiBjaGVja3MgdGhhdCB0aGUgYXR0cmlidXRlIGlzIHVuaXF1ZSBhY3Jvc3MgYWxsIHN1YnRy ZWVzICcKLS0tIAotMi41Mi4wCi0KCmRpZmYgLS1naXQgYS8wMDQ0LUlzc3VlLUNMSS1kc2N0bC1k YjJpbmRleC1uZWVkcy1zb21lLWhhcmRlbmluZy13aXRoLU0ucGF0Y2ggYi8wMDQ0LUlzc3VlLUNM SS1kc2N0bC1kYjJpbmRleC1uZWVkcy1zb21lLWhhcmRlbmluZy13aXRoLU0ucGF0Y2gKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNkYTdiYmYuLjAwMDAwMDAKLS0tIGEvMDA0NC1Jc3N1 ZS1DTEktZHNjdGwtZGIyaW5kZXgtbmVlZHMtc29tZS1oYXJkZW5pbmctd2l0aC1NLnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsMjAxICswLDAgQEAKLUZyb20gNjNiZjY0OGY2OTliOGZjZDhmMzE5 MjU0YjAzNDhkOTY5Y2VlYTdhMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IE1hcmsg UmV5bm9sZHMgPG1yZXlub2xkc0ByZWRoYXQuY29tPgotRGF0ZTogVGh1LCAxMiBGZWIgMjAyNiAx MToxMzo0NSAtMDUwMAotU3ViamVjdDogW1BBVENIXSBJc3N1ZSAtIENMSSAtIGRzY3RsIGRiMmlu ZGV4IG5lZWRzIHNvbWUgaGFyZGVuaW5nIHdpdGggTUJECi0KLURlc2NyaXB0aW9uOgotCi1UaGUg dXNhZ2UgZm9yIGRzY3RsIGRiMmluZGV4IHdhcyBjb25mdXNpbmcuIFRoZSB3YXkgdGhlIGF0dHIg b3B0aW9ucyBhbmQKLWJhY2tlbmQgbmFtZSB3ZXJlIGRpc3BsYXllZCBpdCBsb29rcyBsaWtlIHRo ZSBiYWNrZW5kIG5hbWUgY291bGQgY29tZSBhZnRlcgotdGhlIGF0dHJpYnV0ZXMsIGJ1dCBpbnN0 ZWFkIHRoZSBiYWNrZW5kIG5hbWUgd2FzIHRyZWF0ZWQgYXMgYW4gYXR0cmlidXRlLgotCi1JbnN0 ZWFkIG1ha2UgdGhlIGJhY2tlbmQgbmFtZSByZXF1aXJlZCwgYW5kIGNoYW5nZSB0aGUgYXR0cmli dXRlIG5hbWluZyB0bwotcmVxdWlyZSBpbmRpdmlkdWFsIG9wdGlvbnMgaW5zdGVhZCBvZiBhIGxp c3Qgb2YgdmFsdWVzLgotCi1SZWxhdGVzOiBodHRwczovL2dpdGh1Yi5jb20vMzg5ZHMvMzg5LWRz LWJhc2UvaXNzdWVzLzcyNTAKLQotUmV2aWV3ZWQgYnk6IHByb2dpZXIoVGhhbmtzISkKLS0tLQot IC4uLi90ZXN0cy9zdWl0ZXMvaW1wb3J0L2ltcG9ydF90ZXN0LnB5ICAgICAgICB8ICAyICstCi0g c3JjL2xpYjM4OS9saWIzODkvX19pbml0X18ucHkgICAgICAgICAgICAgICAgIHwgNDAgKysrKysr LS0tLS0tLS0tLS0tLQotIHNyYy9saWIzODkvbGliMzg5L2NsaV9jdGwvZGJ0YXNrcy5weSAgICAg ICAgICB8IDM3ICsrKysrKystLS0tLS0tLS0tCi0gMyBmaWxlcyBjaGFuZ2VkLCAyNyBpbnNlcnRp b25zKCspLCA1MiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2RpcnNydnRlc3RzL3Rlc3Rz L3N1aXRlcy9pbXBvcnQvaW1wb3J0X3Rlc3QucHkgYi9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMv aW1wb3J0L2ltcG9ydF90ZXN0LnB5Ci1pbmRleCBjNzI3NWU0Y2IuLmFkNmQwNWExZSAxMDA2NDQK LS0tLSBhL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9pbXBvcnQvaW1wb3J0X3Rlc3QucHkKLSsr KyBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9pbXBvcnQvaW1wb3J0X3Rlc3QucHkKLUBAIC01 MTQsNyArNTE0LDcgQEAgZGVmIHRlc3RfZW50cnlfd2l0aF9lc2NhcGVkX2NoYXJhY3RlcnNfZmFp bHNfdG9faW1wb3J0X2FuZF9pbmRleCh0b3BvLCBfaW1wb3J0X2MKLSAgICAgICAgICAgICBjb3Vu dCArPSAxCi0gICAgICMgTm93IHJlLWluZGV4IHRoZSBkYXRhYmFzZQotICAgICB0b3BvLnN0YW5k YWxvbmUuc3RvcCgpCi0tICAgIHRvcG8uc3RhbmRhbG9uZS5kYjJpbmRleCgpCi0rICAgIHRvcG8u c3RhbmRhbG9uZS5kYjJpbmRleChiZW5hbWU9InVzZXJyb290IikKLSAgICAgdG9wby5zdGFuZGFs b25lLnN0YXJ0KCkKLSAgICAgIyBTaG91bGQgbm90IHJldHVybiBlcnJvci4KLSAgICAgYXNzZXJ0 IG5vdCB0b3BvLnN0YW5kYWxvbmUuc2VhcmNoRXJyb3JzTG9nKCdlcnJvcicpCi1kaWZmIC0tZ2l0 IGEvc3JjL2xpYjM4OS9saWIzODkvX19pbml0X18ucHkgYi9zcmMvbGliMzg5L2xpYjM4OS9fX2lu aXRfXy5weQotaW5kZXggZDU3YTkxOTI5Li4wMWIzZWEyM2MgMTAwNjQ0Ci0tLS0gYS9zcmMvbGli Mzg5L2xpYjM4OS9fX2luaXRfXy5weQotKysrIGIvc3JjL2xpYjM4OS9saWIzODkvX19pbml0X18u cHkKLUBAIC0yOTUzLDcgKzI5NTMsNyBAQCBjbGFzcyBEaXJTcnYoU2ltcGxlTERBUE9iamVjdCwg b2JqZWN0KToKLSAKLSAgICAgICAgIHJldHVybiBUcnVlCi0gCi0tICAgIGRlZiBkYjJpbmRleChz ZWxmLCBiZW5hbWU9Tm9uZSwgc3VmZml4ZXM9Tm9uZSwgYXR0cnM9Tm9uZSwgdmx2VGFnPU5vbmUp OgotKyAgICBkZWYgZGIyaW5kZXgoc2VsZiwgYmVuYW1lLCBzdWZmaXhlcz1Ob25lLCBhdHRycz1O b25lLCB2bHZUYWc9Tm9uZSk6Ci0gICAgICAgICAiIiIKLSAgICAgICAgIEBwYXJhbSBiZW5hbWUg LSBUaGUgYmFja2VuZCBuYW1lIHRvIHJlaW5kZXgKLSAgICAgICAgIEBwYXJhbSBzdWZmaXhlcyAt IExpc3QvdHVwbGUgb2Ygc3VmZml4ZXMgdG8gcmVpbmRleCwgY3VycmVudGx5IHVudXNlZAotQEAg LTI5NjYsMzQgKzI5NjYsMTggQEAgY2xhc3MgRGlyU3J2KFNpbXBsZUxEQVBPYmplY3QsIG9iamVj dCk6Ci0gICAgICAgICBpZiBzZWxmLnN0YXR1cygpOgotICAgICAgICAgICAgIHNlbGYubG9nLmVy cm9yKCJkYjJpbmRleDogQ2FuIG5vdCBvcGVyYXRlIHdoaWxlIGRpcmVjdG9yeSBzZXJ2ZXIgaXMg cnVubmluZyIpCi0gICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0tICAgICAgICBjbWQgPSBbcHJv ZywgXQotLSAgICAgICAgIyBObyBiYWNrZW5kIHNwZWNpZmllZCwgZG8gYW4gdXBncmFkZSBvbiBh bGwgYmFja2VuZHMKLS0gICAgICAgICMgQmFja2VuZCBhbmQgbm8gYXR0cnMgc3BlY2lmaWVkLCBy ZWluZGV4IHdpdGggYWxsIGJhY2tlbmQgaW5kZXhlcwotLSAgICAgICAgIyBCYWNrZW5kIGFuZCBh dHRyL3Mgc3BlY2lmaWVkLCByZWluZGV4IGJhY2tlbmQgd2l0aCBhdHRyL3MKLS0gICAgICAgIGlm IGJlbmFtZToKLS0gICAgICAgICAgICBjbWQuYXBwZW5kKCdkYjJpbmRleCcpCi0tICAgICAgICAg ICAgY21kLmFwcGVuZCgnLW4nKQotLSAgICAgICAgICAgIGNtZC5hcHBlbmQoYmVuYW1lKQotLSAg ICAgICAgICAgIGlmIGF0dHJzOgotLSAgICAgICAgICAgICAgICAgZm9yIGF0dHIgaW4gYXR0cnM6 Ci0tICAgICAgICAgICAgICAgICAgICAgICAgY21kLmFwcGVuZCgnLXQnKQotLSAgICAgICAgICAg ICAgICAgICAgICAgIGNtZC5hcHBlbmQoYXR0cikKLS0gICAgICAgICAgICBlbHNlOgotLSAgICAg ICAgICAgICAgICBkc2VfbGRpZiA9IERTRWxkaWYoc2VsZikKLS0gICAgICAgICAgICAgICAgaW5k ZXhlcyA9IGRzZV9sZGlmLmdldF9pbmRleGVzKGJlbmFtZSkKLS0gICAgICAgICAgICAgICAgaWYg aW5kZXhlczoKLS0gICAgICAgICAgICAgICAgICAgIGZvciBpZHggaW4gaW5kZXhlczoKLS0gICAg ICAgICAgICAgICAgICAgICAgICBjbWQuYXBwZW5kKCctdCcpCi0tICAgICAgICAgICAgICAgICAg ICAgICAgY21kLmFwcGVuZChpZHgpCi0rICAgICAgICBjbWQgPSBbcHJvZywgJ2RiMmluZGV4Jywg Jy1uJywgYmVuYW1lLCAnLUQnLCBzZWxmLmdldF9jb25maWdfZGlyKCldCi0rICAgICAgICBpZiBh dHRyczoKLSsgICAgICAgICAgICBmb3IgYXR0ciBpbiBhdHRyczoKLSsgICAgICAgICAgICAgICAg Y21kLmFwcGVuZCgnLXQnKQotKyAgICAgICAgICAgICAgICBjbWQuYXBwZW5kKGF0dHIpCi0gICAg ICAgICBlbHNlOgotLSAgICAgICAgICAgIGNtZC5hcHBlbmQoJ3VwZ3JhZGVkYicpCi0tICAgICAg ICAgICAgY21kLmFwcGVuZCgnLWEnKQotLSAgICAgICAgICAgIG5vdyA9IGRhdGV0aW1lLm5vdygp Lmlzb2Zvcm1hdCgpCi0tICAgICAgICAgICAgY21kLmFwcGVuZChvcy5wYXRoLmpvaW4oc2VsZi5n ZXRfYmFrX2RpcigpLCAncmVpbmRleF8lcycgJSBub3cpKQotLSAgICAgICAgICAgIGNtZC5hcHBl bmQoJy1mJykKLS0KLS0gICAgICAgIGNtZC5hcHBlbmQoJy1EJykKLS0gICAgICAgIGNtZC5hcHBl bmQoc2VsZi5nZXRfY29uZmlnX2RpcigpKQotKyAgICAgICAgICAgIGRzZV9sZGlmID0gRFNFbGRp ZihzZWxmKQotKyAgICAgICAgICAgIGluZGV4ZXMgPSBkc2VfbGRpZi5nZXRfaW5kZXhlcyhiZW5h bWUpCi0rICAgICAgICAgICAgaWYgaW5kZXhlczoKLSsgICAgICAgICAgICAgICAgZm9yIGlkeCBp biBpbmRleGVzOgotKyAgICAgICAgICAgICAgICAgICAgY21kLmFwcGVuZCgnLXQnKQotKyAgICAg ICAgICAgICAgICAgICAgY21kLmFwcGVuZChpZHgpCi0gCi0gICAgICAgICB0cnk6Ci0gICAgICAg ICAgICAgcmVzdWx0ID0gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoY21kLCBlbmNvZGluZz0ndXRm LTgnKQotZGlmZiAtLWdpdCBhL3NyYy9saWIzODkvbGliMzg5L2NsaV9jdGwvZGJ0YXNrcy5weSBi L3NyYy9saWIzODkvbGliMzg5L2NsaV9jdGwvZGJ0YXNrcy5weQotaW5kZXggMTZkYTk2NmQxLi5j ZDk2Y2RhZjcgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliMzg5L2xpYjM4OS9jbGlfY3RsL2RidGFza3Mu cHkKLSsrKyBiL3NyYy9saWIzODkvbGliMzg5L2NsaV9jdGwvZGJ0YXNrcy5weQotQEAgLTI2LDMy ICsyNiwxOCBAQCBjbGFzcyBJbmRleE9yZGVyaW5nKEVudW0pOgotIAotIAotIGRlZiBkYnRhc2tz X2RiMmluZGV4KGluc3QsIGxvZywgYXJncyk6Ci0tICAgIHJ0biA9IEZhbHNlCi0tICAgIGlmIG5v dCBhcmdzLmJhY2tlbmQ6Ci0tICAgICAgICBpZiBub3QgaW5zdC5kYjJpbmRleCgpOgotLSAgICAg ICAgICAgIHJ0biA9IEZhbHNlCi0tICAgICAgICBlbHNlOgotLSAgICAgICAgICAgIHJ0biA9IFRy dWUKLS0gICAgZWxpZiBhcmdzLmJhY2tlbmQgYW5kIG5vdCBhcmdzLmF0dHI6Ci0tICAgICAgICBp ZiBub3QgaW5zdC5kYjJpbmRleChiZW5hbWU9YXJncy5iYWNrZW5kKToKLS0gICAgICAgICAgICBy dG4gPSBGYWxzZQotLSAgICAgICAgZWxzZToKLS0gICAgICAgICAgICBydG4gPSBUcnVlCi0rICAg IGluc3QubG9nID0gbG9nCi0rICAgIGlmIG5vdCBpbnN0LmRiMmluZGV4KGJlbmFtZT1hcmdzLmJh Y2tlbmQsIGF0dHJzPWFyZ3MuYXR0cik6Ci0rICAgICAgICBsb2cuZmF0YWwoImRiMmluZGV4IGZh aWxlZCIpCi0rICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgZWxzZToKLS0gICAgICAgIGlmIG5v dCBpbnN0LmRiMmluZGV4KGJlbmFtZT1hcmdzLmJhY2tlbmQsIGF0dHJzPWFyZ3MuYXR0cik6Ci0t ICAgICAgICAgICAgcnRuID0gRmFsc2UKLS0gICAgICAgIGVsc2U6Ci0tICAgICAgICAgICAgcnRu ID0gVHJ1ZQotLSAgICBpZiBydG46Ci0gICAgICAgICBsb2cuaW5mbygiZGIyaW5kZXggc3VjY2Vz c2Z1bCIpCi0tICAgICAgICByZXR1cm4gcnRuCi0tICAgIGVsc2U6Ci0tICAgICAgICBsb2cuZmF0 YWwoImRiMmluZGV4IGZhaWxlZCIpCi0tICAgICAgICByZXR1cm4gcnRuCi0rICAgICAgICByZXR1 cm4gVHJ1ZQotIAotIAotIGRlZiBkYnRhc2tzX2RiMmJhayhpbnN0LCBsb2csIGFyZ3MpOgotICAg ICAjIE5lZWRzIGFuIG91dHB1dCBuYW1lPwotKyAgICBpbnN0LmxvZyA9IGxvZwotICAgICBpZiBu b3QgaW5zdC5kYjJiYWsoYXJncy5hcmNoaXZlKToKLSAgICAgICAgIGxvZy5mYXRhbCgiZGIyYmFr IGZhaWxlZCIpCi0gICAgICAgICByZXR1cm4gRmFsc2UKLUBAIC02MSw2ICs0Nyw3IEBAIGRlZiBk YnRhc2tzX2RiMmJhayhpbnN0LCBsb2csIGFyZ3MpOgotIAotIGRlZiBkYnRhc2tzX2JhazJkYihp bnN0LCBsb2csIGFyZ3MpOgotICAgICAjIE5lZWRzIHRoZSBhcmNoaXZlIHRvIHJlc3RvcmUuCi0r ICAgIGluc3QubG9nID0gbG9nCi0gICAgIGlmIG5vdCBpbnN0LmJhazJkYihhcmdzLmFyY2hpdmUp OgotICAgICAgICAgbG9nLmZhdGFsKCJiYWsyZGIgZmFpbGVkIikKLSAgICAgICAgIHJldHVybiBG YWxzZQotQEAgLTcwLDYgKzU3LDcgQEAgZGVmIGRidGFza3NfYmFrMmRiKGluc3QsIGxvZywgYXJn cyk6Ci0gCi0gZGVmIGRidGFza3NfZGIybGRpZihpbnN0LCBsb2csIGFyZ3MpOgotICAgICAjIElm IGV4cG9ydCBmaWxlbmFtZSBpcyBwcm92aWRlZCwgY2hlY2sgaWYgZmlsZSBwYXRoIGV4aXN0cwot KyAgICBpbnN0LmxvZyA9IGxvZwotICAgICBpZiBhcmdzLmxkaWY6Ci0gICAgICAgICBwYXRoID0g UGF0aChhcmdzLmxkaWYpCi0gICAgICAgICBwYXJlbnQgPSBwYXRoLnBhcmVudC5hYnNvbHV0ZSgp Ci1AQCAtODgsNiArNzYsNyBAQCBkZWYgZGJ0YXNrc19kYjJsZGlmKGluc3QsIGxvZywgYXJncyk6 Ci0gCi0gZGVmIGRidGFza3NfbGRpZjJkYihpbnN0LCBsb2csIGFyZ3MpOgotICAgICAjIENoZWNr IGlmIGxkaWYgZmlsZSBleGlzdHMKLSsgICAgaW5zdC5sb2cgPSBsb2cKLSAgICAgaWYgbm90IG9z LnBhdGguZXhpc3RzKGFyZ3MubGRpZik6Ci0gICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJUaGUg TERJRiBmaWxlIGRvZXMgbm90IGV4aXN0OiAiICsgYXJncy5sZGlmKQotIAotQEAgLTEwMyw2ICs5 Miw3IEBAIGRlZiBkYnRhc2tzX2xkaWYyZGIoaW5zdCwgbG9nLCBhcmdzKToKLSAKLSAKLSBkZWYg ZGJ0YXNrc19iYWNrdXBzKGluc3QsIGxvZywgYXJncyk6Ci0rICAgIGluc3QubG9nID0gbG9nCi0g ICAgIGlmIGFyZ3MuZGVsZXRlOgotICAgICAgICAgIyBEZWxldGUgYmFja3VwCi0gICAgICAgICBp bnN0LmRlbF9iYWNrdXAoYXJncy5kZWxldGVbMF0pCi1AQCAtMTE3LDYgKzEwNyw3IEBAIGRlZiBk YnRhc2tzX2JhY2t1cHMoaW5zdCwgbG9nLCBhcmdzKToKLSAKLSAKLSBkZWYgZGJ0YXNrc19sZGlm cyhpbnN0LCBsb2csIGFyZ3MpOgotKyAgICBpbnN0LmxvZyA9IGxvZwotICAgICBpZiBhcmdzLmRl bGV0ZToKLSAgICAgICAgICMgRGVsZXRlIExESUYgZmlsZQotICAgICAgICAgaW5zdC5kZWxfbGRp ZihhcmdzLmRlbGV0ZVswXSkKLUBAIC0xMzEsNiArMTIyLDcgQEAgZGVmIGRidGFza3NfbGRpZnMo aW5zdCwgbG9nLCBhcmdzKToKLSAKLSAKLSBkZWYgZGJ0YXNrc192ZXJpZnkoaW5zdCwgbG9nLCBh cmdzKToKLSsgICAgaW5zdC5sb2cgPSBsb2cKLSAgICAgaWYgbm90IGluc3QuZGJ2ZXJpZnkoYmVu YW1lPWFyZ3MuYmFja2VuZCk6Ci0gICAgICAgICBsb2cuZmF0YWwoImRidmVyaWZ5IGZhaWxlZCIp Ci0gICAgICAgICByZXR1cm4gRmFsc2UKLUBAIC01MjEsOSArNTEzLDggQEAgZGVmIGRidGFza3Nf aW5kZXhfY2hlY2soaW5zdCwgbG9nLCBhcmdzKToKLSAKLSBkZWYgY3JlYXRlX3BhcnNlcihzdWJj b21tYW5kcyk6Ci0gICAgIGRiMmluZGV4X3BhcnNlciA9IHN1YmNvbW1hbmRzLmFkZF9wYXJzZXIo J2RiMmluZGV4JywgaGVscD0iSW5pdGlhbGlzZSBhIHJlaW5kZXggb2YgdGhlIHNlcnZlciBkYXRh YmFzZS4gVGhlIHNlcnZlciBtdXN0IGJlIHN0b3BwZWQgZm9yIHRoaXMgdG8gcHJvY2VlZC4iLCBm b3JtYXR0ZXJfY2xhc3M9Q3VzdG9tSGVscEZvcm1hdHRlcikKLS0gICAgIyBkYjJpbmRleF9wYXJz ZXIuYWRkX2FyZ3VtZW50KCdzdWZmaXgnLCBoZWxwPSJUaGUgc3VmZml4IHRvIHJlaW5kZXguIElF IGRjPWV4YW1wbGUsZGM9Y29tLiIpCi0tICAgIGRiMmluZGV4X3BhcnNlci5hZGRfYXJndW1lbnQo J2JhY2tlbmQnLCBuYXJncz0iPyIsIGhlbHA9IlRoZSBiYWNrZW5kIHRvIHJlaW5kZXguIElFIHVz ZXJSb290IiwgZGVmYXVsdD1GYWxzZSkKLS0gICAgZGIyaW5kZXhfcGFyc2VyLmFkZF9hcmd1bWVu dCgnLS1hdHRyJywgbmFyZ3M9IioiLCBoZWxwPSJUaGUgYXR0cmlidXRlJ3MgdG8gcmVpbmRleC4g SUUgLS1hdHRyIGFjaSBjbiBnaXZlbm5hbWUiLCBkZWZhdWx0PUZhbHNlKQotKyAgICBkYjJpbmRl eF9wYXJzZXIuYWRkX2FyZ3VtZW50KCdiYWNrZW5kJywgaGVscD0iVGhlIGJhY2tlbmQgdG8gcmVp bmRleC4gSUUgdXNlclJvb3QiKQotKyAgICBkYjJpbmRleF9wYXJzZXIuYWRkX2FyZ3VtZW50KCct LWF0dHInLCBhY3Rpb249J2FwcGVuZCcsIGhlbHA9IkFuIGF0dHJpYnV0ZSB0byByZWluZGV4LiBJ RTogLS1hdHRyIG1lbWJlciAtLWF0dHIgY24gLi4uIikKLSAgICAgZGIyaW5kZXhfcGFyc2VyLnNl dF9kZWZhdWx0cyhmdW5jPWRidGFza3NfZGIyaW5kZXgpCi0gCi0gICAgIGRiMmJha19wYXJzZXIg PSBzdWJjb21tYW5kcy5hZGRfcGFyc2VyKCdkYjJiYWsnLCBoZWxwPSJJbml0aWFsaXNlIGEgQkRC IGJhY2t1cCBvZiB0aGUgZGF0YWJhc2UuIFRoZSBzZXJ2ZXIgbXVzdCBiZSBzdG9wcGVkIGZvciB0 aGlzIHRvIHByb2NlZWQuIiwgZm9ybWF0dGVyX2NsYXNzPUN1c3RvbUhlbHBGb3JtYXR0ZXIpCi0t LSAKLTIuNTIuMAotCgpkaWZmIC0tZ2l0IGEvMDA0NS1Jc3N1ZS03MjUyLVBRQy1OZWVkLXRvLWl0 ZXJhdGUtb24tU0VDT2lkVGFnLWluc3RlYWQtLnBhdGNoIGIvMDA0NS1Jc3N1ZS03MjUyLVBRQy1O ZWVkLXRvLWl0ZXJhdGUtb24tU0VDT2lkVGFnLWluc3RlYWQtLnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAyNDFmNmI0Li4wMDAwMDAwCi0tLSBhLzAwNDUtSXNzdWUtNzI1Mi1Q UUMtTmVlZC10by1pdGVyYXRlLW9uLVNFQ09pZFRhZy1pbnN0ZWFkLS5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDc0ICswLDAgQEAKLUZyb20gZDUyOTAxZjY5ZTliNzk1MmIzM2IyMTllYzE5NzMw OGExYTIwYmRhOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IHByb2dpZXIzODkgPHBy b2dpZXJAcmVkaGF0LmNvbT4KLURhdGU6IEZyaSwgMTMgRmViIDIwMjYgMTU6MTM6MDUgKzAxMDAK LVN1YmplY3Q6IFtQQVRDSF0gSXNzdWUgNzI1MiAtIFBRQyAtIE5lZWQgdG8gaXRlcmF0ZSBvbiBT RUNPaWRUYWcgaW5zdGVhZCBvZgotIHVzaW5nIE9JRCAoIzcyNTQpCi0KLSogSXNzdWUgNzI1MiAt IFBRQyAtIE5lZWQgdG8gaXRlcmF0ZSBvbiBTRUNPaWRUYWcgaW5zdGVhZCBvZiB1c2luZyBPSUQK LQotTmVlZCB0byBkeW5hbWljYWxseSBpdGVyYXRlIG9uIFNFQ09pZFRhZyBpbnN0ZWFkIG9mIHVz aW5nIFNFQ19PSURfTUxfRFNBXyogT0lEcyB0byBhdm9pZCBpc3N1ZSB3aXRoIHVwY29taW5nIG5z cyB2ZXJzaW9ucyBhbmQgZml4IGEgUkhFTCBidWlsZCBicmVhayB3aXRoIG5zcyAzLjExMgotCi1J c3N1ZTogIzcyNTIKLQotUmV2aWV3ZWQgYnk6IEBtcmV5bm9sZHMzODksIEBkcm9pZGVjaywgQHZh c2hpcm92Ci0KLQotKiBVcGRhdGUgbGRhcC9zZXJ2ZXJzL3NsYXBkL3NzbC5jCi0KLUNvLWF1dGhv cmVkLWJ5OiBTaW1vbiBQaWNodWdpbiA8c3BpY2h1Z2lAcmVkaGF0LmNvbT4KLQotLS0tLS0tLS0t Ci0KLUNvLWF1dGhvcmVkLWJ5OiBTaW1vbiBQaWNodWdpbiA8c3BpY2h1Z2lAcmVkaGF0LmNvbT4K LS0tLQotIGxkYXAvc2VydmVycy9zbGFwZC9zc2wuYyB8IDI0ICsrKysrKysrKy0tLS0tLS0tLS0t LS0tLQotIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQot Ci1kaWZmIC0tZ2l0IGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL3NzbC5jIGIvbGRhcC9zZXJ2ZXJzL3Ns YXBkL3NzbC5jCi1pbmRleCA3ZDVkYjJjZGQuLmQwNWM2NGZiMSAxMDA2NDQKLS0tLSBhL2xkYXAv c2VydmVycy9zbGFwZC9zc2wuYwotKysrIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL3NzbC5jCi1AQCAt NzMyLDMxICs3MzIsMjUgQEAgU1NMUExDWV9JbnN0YWxsKHZvaWQpCi0gewotIAotICAgICBTRUNT dGF0dXMgcyA9IDA7Ci0tI2lmZGVmIE1BWF9NTF9EU0FfUFJJVkFURV9LRVlfTEVOCi0gICAgIGlu dCBmbGFncyA9IE5TU19VU0VfQUxHX0lOX1NJR05BVFVSRSB8IE5TU19VU0VfQUxHX0lOX1NTTDsK LS0gICAgc3RhdGljIGNvbnN0IFNFQ09pZFRhZyBvaWRzW10gPSB7Ci0tICAgICAgICBTRUNfT0lE X01MX0RTQV80NCwKLS0gICAgICAgIFNFQ19PSURfTUxfRFNBXzY1LAotLSAgICAgICAgU0VDX09J RF9NTF9EU0FfODcsCi0tICAgIH07Ci0tI2VuZGlmCi0rICAgIFNFQ09pZERhdGEgKm9pZCA9IE5V TEw7Ci0gCi0gICAgIHMgPSBOU1NfU2V0RG9tZXN0aWNQb2xpY3koKTsKLSAKLS0jaWZkZWYgTUFY X01MX0RTQV9QUklWQVRFX0tFWV9MRU4KLSAgICAgLyogU2hvdWxkIHJlbHkgb24gdGhlIGNyeXB0 byBtb2R1bGUgcG9saWN5IGluIEZJUFMgbW9kZSAqLwotICAgICBpZiAoIXNsYXBkX3BrMTFfaXNG SVBTKCkpIHsKLSAgICAgICAgIC8qIFNldCBleHBsaWNpdGx5IFBRQyBhbGdvcml0aG0gcG9saWN5 IGlmIGl0IGlzIG5vdCBzZXQgYnkgZGVmYXVsdCAqLwotLSAgICAgICAgZm9yIChzaXplX3QgaT0w OyBzID09IFNFQ1N1Y2Nlc3MgJiYgaSA8IFBSX0FSUkFZX1NJWkUob2lkcyk7IGkrKykgewotLSAg ICAgICAgICAgIFBSVWludDMyIG9mbGFncyA9IDA7Ci0tICAgICAgICAgICAgKHZvaWQpIE5TU19H ZXRBbGdvcml0aG1Qb2xpY3kob2lkc1tpXSwgJm9mbGFncyk7Ci0tICAgICAgICAgICAgaWYgKChv ZmxhZ3MgJiBmbGFncykgIT0gZmxhZ3MpIHsKLS0gICAgICAgICAgICAgICAgcyA9IE5TU19TZXRB bGdvcml0aG1Qb2xpY3kob2lkc1tpXSwgZmxhZ3MsIDApOwotKyAgICAgICAgZm9yIChTRUNPaWRU YWcgdGFnID0gMTsgcyA9PSBTRUNTdWNjZXNzICYmIChvaWQgPSBTRUNPSURfRmluZE9JREJ5VGFn KHRhZykpICE9IE5VTEw7IHRhZysrKSB7Ci0rICAgICAgICAgICAgaWYgKG9pZC0+bWVjaGFuaXNt ICE9IENLTV9JTlZBTElEX01FQ0hBTklTTSAmJgotKyAgICAgICAgICAgICAgICBQTF9zdHJuY2Fz ZWNtcChvaWQtPmRlc2MsICJNTC1EU0EtIiwgNykgPT0gMCkgewotKyAgICAgICAgICAgICAgICBQ UlVpbnQzMiBvZmxhZ3MgPSAwOwotKyAgICAgICAgICAgICAgICAodm9pZCkgTlNTX0dldEFsZ29y aXRobVBvbGljeSh0YWcsICZvZmxhZ3MpOwotKyAgICAgICAgICAgICAgICBpZiAoKG9mbGFncyAm IGZsYWdzKSAhPSBmbGFncykgewotKyAgICAgICAgICAgICAgICAgICAgcyA9IE5TU19TZXRBbGdv cml0aG1Qb2xpY3kodGFnLCBmbGFncywgMCk7Ci0rICAgICAgICAgICAgICAgIH0KLSAgICAgICAg ICAgICB9Ci0gICAgICAgICB9Ci0gICAgIH0KLS0jZW5kaWYKLS0KLSAgICAgcmV0dXJuIHMgPyBQ Ul9GQUlMVVJFIDogUFJfU1VDQ0VTUzsKLSB9Ci0gCi0tLSAKLTIuNTIuMAotCgpkaWZmIC0tZ2l0 IGEvMDA0Ni1Jc3N1ZS02OTUxLUR5bmFtaWMtQ2VydGlmaWNhcy1SZWZyZXNoLUNJLXRlc3RzLTcy MzgucGF0Y2ggYi8wMDQ2LUlzc3VlLTY5NTEtRHluYW1pYy1DZXJ0aWZpY2FzLVJlZnJlc2gtQ0kt dGVzdHMtNzIzOC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTlmNzJlOC4u MDAwMDAwMAotLS0gYS8wMDQ2LUlzc3VlLTY5NTEtRHluYW1pYy1DZXJ0aWZpY2FzLVJlZnJlc2gt Q0ktdGVzdHMtNzIzOC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMwMzEgKzAsMCBAQAotRnJv bSAyMDA1ZTI2NzBjNDc0MjEyYTJkYWE3YjM5NDdiNDFjOGRiMThjOWM5IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQotRnJvbTogcHJvZ2llcjM4OSA8cHJvZ2llckByZWRoYXQuY29tPgotRGF0ZTog RnJpLCAxMyBGZWIgMjAyNiAxNTozNDoxMyArMDEwMAotU3ViamVjdDogW1BBVENIXSBJc3N1ZSA2 OTUxIC0gRHluYW1pYyBDZXJ0aWZpY2FzIFJlZnJlc2ggLSBDSSB0ZXN0cyAoIzcyMzgpCi0KLSog SXNzdWUgNjk1MSAtIER5bmFtaWMgQ2VydGlmaWNhcyBSZWZyZXNoIC0gQ0kgdGVzdHMKLQotQWRk IENJIHRlc3QgZm9yIER5bmFtaWMgQ2VydGlmaWNhcyBSZWZyZXNoOgotCi1jbHUvZHNjb25mX2Rz Y3RsX3NlY3VyaXR5X2NsaV90ZXN0LnB5IHRlc3QgZHNjb25mL2RzY3RsIGluc3RhbmNlIHNlY3Vy aXR5IC4uLiBpbnRlcmZhY2UKLXRscy9keW5hbWljX2NlcnRpZmljYXRlc190ZXN0LnB5IHRlc3Qg dGhlIExEQVAgQVBJCi1GaXggc29tZSBpc3N1ZXMgZm91bmQgd2hpbGUgcnVubmluZyB0aGVzZSB0 ZXN0czoKLUZpeCBycG1faXNfb2xkZXIgZnVuY3Rpb24gaW4gbWxkc2FfdGVzdC5weQotQWRkIG1p c3NpbmcgY29kZSB0byBoYW5kbGUgSVAgQWRkcmVzcyBpbiBhbHRlcm5hdGUgc3ViamVjdCBuYW1l Ci1GSXggdGVzdCBmYWlsdXJlIHJlbGF0ZWQgdG8gcmVoYXNoIHdhcm5pbmcKLQotSXNzdWU6ICM2 OTUxCi0KLVJldmlld2VkIGJ5OiBAamNoYXBtYSAoVGhhbmtzISkKLQotQXNzaXN0ZWQgYnk6IENs YXVkZSBBSQotLS0tCi0gLi4uL2NsdS9kc2NvbmZfZHNjdGxfc2VjdXJpdHlfY2xpX3Rlc3QucHkg ICAgIHwgMTM0MCArKysrKysrKysrKysrKysKLSAuLi4vc3VpdGVzL3Rscy9keW5hbWljX2NlcnRp ZmljYXRlc190ZXN0LnB5ICAgfCAxNDM2ICsrKysrKysrKysrKysrKysrCi0gZGlyc3J2dGVzdHMv dGVzdHMvc3VpdGVzL3Rscy9tbGRzYV90ZXN0LnB5ICAgIHwgICAxOSArLQotIGxkYXAvc2VydmVy cy9zbGFwZC9keW5jZXJ0cy5jICAgICAgICAgICAgICAgICB8ICAgNDMgKy0KLSBzcmMvbGliMzg5 L2xpYjM4OS9uc3Nfc3NsLnB5ICAgICAgICAgICAgICAgICAgfCAgIDE1ICstCi0gc3JjL2xpYjM4 OS9saWIzODkvdXRpbHMucHkgICAgICAgICAgICAgICAgICAgIHwgICAyMCArCi0gNiBmaWxlcyBj aGFuZ2VkLCAyODQ4IGluc2VydGlvbnMoKyksIDI1IGRlbGV0aW9ucygtKQotIGNyZWF0ZSBtb2Rl IDEwMDY0NCBkaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvY2x1L2RzY29uZl9kc2N0bF9zZWN1cml0 eV9jbGlfdGVzdC5weQotIGNyZWF0ZSBtb2RlIDEwMDY0NCBkaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0 ZXMvdGxzL2R5bmFtaWNfY2VydGlmaWNhdGVzX3Rlc3QucHkKLQotZGlmZiAtLWdpdCBhL2RpcnNy dnRlc3RzL3Rlc3RzL3N1aXRlcy9jbHUvZHNjb25mX2RzY3RsX3NlY3VyaXR5X2NsaV90ZXN0LnB5 IGIvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL2NsdS9kc2NvbmZfZHNjdGxfc2VjdXJpdHlfY2xp X3Rlc3QucHkKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwMDAuLjMxOGEzY2Iz MwotLS0tIC9kZXYvbnVsbAotKysrIGIvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL2NsdS9kc2Nv bmZfZHNjdGxfc2VjdXJpdHlfY2xpX3Rlc3QucHkKLUBAIC0wLDAgKzEsMTM0MCBAQAotKyMgLS0t IEJFR0lOIENPUFlSSUdIVCBCTE9DSyAtLS0KLSsjIENvcHlyaWdodCAoQykgMjAyNiBSZWQgSGF0 LCBJbmMuCi0rIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotKyMKLSsjIExpY2Vuc2U6IEdQTCAodmVy c2lvbiAzIG9yIGFueSBsYXRlciB2ZXJzaW9uKS4KLSsjIFNlZSBMSUNFTlNFIGZvciBkZXRhaWxz LgotKyMgLS0tIEVORCBDT1BZUklHSFQgQkxPQ0sgLS0tCi0rIwotKyIiIlRlc3QgZHNjb25mIGFu ZCBkc2N0bCBzZWN1cml0eSBDTEkgc3ViY29tbWFuZHMgdXNpbmcgc3VicHJvY2VzcyIiIgotKwot K2ltcG9ydCBqc29uCi0raW1wb3J0IGxvZ2dpbmcKLStpbXBvcnQgb3MKLStpbXBvcnQgcHl0ZXN0 Ci0raW1wb3J0IHN1YnByb2Nlc3MKLStpbXBvcnQgdGVtcGZpbGUKLStmcm9tIGxpYjM4OS50b3Bv bG9naWVzIGltcG9ydCB0b3BvbG9neV9zdCBhcyB0b3BvCi0rCi0rcHl0ZXN0bWFyayA9IHB5dGVz dC5tYXJrLnRpZXIxCi0rCi0rbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCi0rCi0r Ci0rQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiKQotK2RlZiBzZXR1cF90bHModG9wbyk6 Ci0rICAgICIiIkVuYWJsZSBUTFMgb24gdGhlIGluc3RhbmNlIiIiCi0rICAgIHRvcG8uc3RhbmRh bG9uZS5lbmFibGVfdGxzKCkKLSsgICAgeWllbGQgdG9wbwotKyAgICAjIENsZWFudXAgaXMgaGFu ZGxlZCBieSB0aGUgdG9wb2xvZ3kgZml4dHVyZQotKwotKwotK2RlZiBydW5fY21kKGNtZCwgZW52 PU5vbmUsIGNoZWNrPVRydWUsIHN0ZGluX2lucHV0PU5vbmUpOgotKyAgICAiIiJIZWxwZXIgZnVu Y3Rpb24gdG8gcnVuIGEgY29tbWFuZCBhbmQgcmV0dXJuIG91dHB1dAotKwotKyAgICA6cGFyYW0g Y21kOiBDb21tYW5kIGxpc3QgdG8gcnVuCi0rICAgIDpwYXJhbSBlbnY6IEVudmlyb25tZW50IHZh cmlhYmxlcwotKyAgICA6cGFyYW0gY2hlY2s6IFdoZXRoZXIgdG8gY2hlY2sgcmV0dXJuIGNvZGUK LSsgICAgOnBhcmFtIHN0ZGluX2lucHV0OiBTdHJpbmcgdG8gc2VuZCB0byBzdGRpbgotKyAgICA6 cmV0dXJuOiB0dXBsZSBvZiAocmV0dXJuY29kZSwgc3Rkb3V0LCBzdGRlcnIpCi0rICAgICIiIgot KyAgICBsb2cuaW5mbyhmJ1J1bm5pbmcgY29tbWFuZDogeyIgIi5qb2luKGNtZCl9JykKLSsgICAg cHJvYyA9IHN1YnByb2Nlc3MuUG9wZW4oCi0rICAgICAgICBjbWQsCi0rICAgICAgICBzdGRvdXQ9 c3VicHJvY2Vzcy5QSVBFLAotKyAgICAgICAgc3RkZXJyPXN1YnByb2Nlc3MuUElQRSwKLSsgICAg ICAgIHN0ZGluPXN1YnByb2Nlc3MuUElQRSBpZiBzdGRpbl9pbnB1dCBlbHNlIE5vbmUsCi0rICAg ICAgICBlbnY9ZW52Ci0rICAgICkKLSsgICAgc3RkaW5fYnl0ZXMgPSBzdGRpbl9pbnB1dC5lbmNv ZGUoJ3V0Zi04JykgaWYgc3RkaW5faW5wdXQgZWxzZSBOb25lCi0rICAgIHN0ZG91dCwgc3RkZXJy ID0gcHJvYy5jb21tdW5pY2F0ZShpbnB1dD1zdGRpbl9ieXRlcykKLSsgICAgc3Rkb3V0X3N0ciA9 IHN0ZG91dC5kZWNvZGUoJ3V0Zi04JykgaWYgc3Rkb3V0IGVsc2UgJycKLSsgICAgc3RkZXJyX3N0 ciA9IHN0ZGVyci5kZWNvZGUoJ3V0Zi04JykgaWYgc3RkZXJyIGVsc2UgJycKLSsKLSsgICAgbG9n LmluZm8oZidSZXR1cm4gY29kZToge3Byb2MucmV0dXJuY29kZX0nKQotKyAgICBpZiBzdGRvdXRf c3RyOgotKyAgICAgICAgbG9nLmluZm8oZidTVERPVVQ6IHtzdGRvdXRfc3RyfScpCi0rICAgIGlm IHN0ZGVycl9zdHI6Ci0rICAgICAgICBsb2cuaW5mbyhmJ1NUREVSUjoge3N0ZGVycl9zdHJ9JykK LSsKLSsgICAgaWYgY2hlY2sgYW5kIHByb2MucmV0dXJuY29kZSAhPSAwOgotKyAgICAgICAgcmFp c2Ugc3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3IoCi0rICAgICAgICAgICAgcHJvYy5yZXR1 cm5jb2RlLCBjbWQsIHN0ZG91dCwgc3RkZXJyCi0rICAgICAgICApCi0rCi0rICAgIHJldHVybiBw cm9jLnJldHVybmNvZGUsIHN0ZG91dF9zdHIsIHN0ZGVycl9zdHIKLSsKLSsKLStkZWYgdGVzdF9k c2NvbmZfc2VjdXJpdHlfZ2V0KHRvcG8pOgotKyAgICAiIiJUZXN0IGRzY29uZiBzZWN1cml0eSBn ZXQgY29tbWFuZCB2aWEgc3VicHJvY2VzcwotKwotKyAgICA6aWQ6IGExYTJhM2E0LTAwMDEtMDAw MS0wMDAxLTAwMDAwMDAwMDAwMQotKyAgICA6c2V0dXA6IFN0YW5kYWxvbmUgSW5zdGFuY2UKLSsg ICAgOnN0ZXBzOgotKyAgICAgICAgMS4gUnVuIGRzY29uZiBzZWN1cml0eSBnZXQgY29tbWFuZAot KyAgICAgICAgMi4gVmVyaWZ5IG91dHB1dCBjb250YWlucyBzZWN1cml0eSBhdHRyaWJ1dGVzCi0r ICAgICAgICAzLiBSdW4gd2l0aCAtLWpzb24gZmxhZwotKyAgICAgICAgNC4gVmVyaWZ5IEpTT04g b3V0cHV0IGlzIHZhbGlkCi0rICAgIDpleHBlY3RlZHJlc3VsdHM6Ci0rICAgICAgICAxLiBDb21t YW5kIHN1Y2NlZWRzCi0rICAgICAgICAyLiBPdXRwdXQgY29udGFpbnMgZXhwZWN0ZWQgYXR0cmli dXRlcwotKyAgICAgICAgMy4gSlNPTiBjb21tYW5kIHN1Y2NlZWRzCi0rICAgICAgICA0LiBKU09O IGlzIHZhbGlkIGFuZCBwYXJzZWFibGUKLSsgICAgIiIiCi0rICAgIGluc3QgPSB0b3BvLnN0YW5k YWxvbmUKLSsgICAgZHNjb25mX2NtZCA9IFsKLSsgICAgICAgICdkc2NvbmYnLAotKyAgICAgICAg aW5zdC5zZXJ2ZXJpZCwKLSsgICAgICAgICdzZWN1cml0eScsCi0rICAgICAgICAnZ2V0JwotKyAg ICBdCi0rCi0rICAgICMgVGVzdCBwbGFpbiBvdXRwdXQKLSsgICAgcmV0dXJuY29kZSwgc3Rkb3V0 LCBzdGRlcnIgPSBydW5fY21kKGRzY29uZl9jbWQpCi0rICAgIGFzc2VydCByZXR1cm5jb2RlID09 IDAKLSsgICAgYXNzZXJ0ICduc3NsYXBkLXNlY3VyaXR5OicgaW4gc3Rkb3V0Ci0rICAgIGFzc2Vy dCAnbnNzbGFwZC1zZWN1cmVwb3J0OicgaW4gc3Rkb3V0IG9yICduc3NsYXBkLXNlY3VyZVBvcnQ6 JyBpbiBzdGRvdXQubG93ZXIoKQotKwotKyAgICAjIFRlc3QgSlNPTiBvdXRwdXQKLSsgICAgZHNj b25mX2NtZF9qc29uID0gWydkc2NvbmYnLCBpbnN0LnNlcnZlcmlkLCAnLS1qc29uJywgJ3NlY3Vy aXR5JywgJ2dldCddCi0rICAgIHJldHVybmNvZGUsIHN0ZG91dCwgc3RkZXJyID0gcnVuX2NtZChk c2NvbmZfY21kX2pzb24pCi0rICAgIGFzc2VydCByZXR1cm5jb2RlID09IDAKLSsKLSsgICAgIyBQ YXJzZSBhbmQgdmFsaWRhdGUgSlNPTgotKyAgICByZXN1bHQgPSBqc29uLmxvYWRzKHN0ZG91dCkK LSsgICAgYXNzZXJ0ICd0eXBlJyBpbiByZXN1bHQKLSsgICAgYXNzZXJ0ICdpdGVtcycgaW4gcmVz dWx0Ci0rCi0rCi0rZGVmIHRlc3RfZHNjb25mX3NlY3VyaXR5X3NldCh0b3BvKToKLSsgICAgIiIi VGVzdCBkc2NvbmYgc2VjdXJpdHkgc2V0IGNvbW1hbmQgdmlhIHN1YnByb2Nlc3MKLSsKLSsgICAg OmlkOiBhMWEyYTNhNC0wMDAxLTAwMDEtMDAwMS0wMDAwMDAwMDAwMDIKLSsgICAgOnNldHVwOiBT dGFuZGFsb25lIEluc3RhbmNlCi0rICAgIDpzdGVwczoKLSsgICAgICAgIDEuIFNldCBzZXNzaW9u IHRpbWVvdXQgdXNpbmcgZHNjb25mCi0rICAgICAgICAyLiBWZXJpZnkgc2V0dGluZyB3aXRoIGdl dCBjb21tYW5kCi0rICAgICAgICAzLiBSZXNldCB0byBvcmlnaW5hbCB2YWx1ZQotKyAgICA6ZXhw ZWN0ZWRyZXN1bHRzOgotKyAgICAgICAgMS4gU2V0IGNvbW1hbmQgc3VjY2VlZHMKLSsgICAgICAg IDIuIFZhbHVlIGlzIGNvcnJlY3RseSBzZXQKLSsgICAgICAgIDMuIFJlc2V0IHN1Y2NlZWRzCi0r ICAgICIiIgotKyAgICBpbnN0ID0gdG9wby5zdGFuZGFsb25lCi0rICAgIGRzY29uZl9iYXNlID0g WwotKyAgICAgICAgJ2RzY29uZicsCi0rICAgICAgICBpbnN0LnNlcnZlcmlkLAotKyAgICAgICAg J3NlY3VyaXR5JwotKyAgICBdCi0rCi0rICAgICMgR2V0IG9yaWdpbmFsIHZhbHVlCi0rICAgIGNt ZCA9IFsnZHNjb25mJywgaW5zdC5zZXJ2ZXJpZCwgJy0tanNvbicsICdzZWN1cml0eScsICdnZXQn XQotKyAgICByZXR1cm5jb2RlLCBzdGRvdXQsIHN0ZGVyciA9IHJ1bl9jbWQoY21kKQotKyAgICBv cmlnaW5hbF9kYXRhID0ganNvbi5sb2FkcyhzdGRvdXQpCi0rICAgIG9yaWdpbmFsX3RpbWVvdXQg PSBvcmlnaW5hbF9kYXRhLmdldCgnaXRlbXMnLCB7fSkuZ2V0KCduc3NsYXBkLXNzbC1zZXNzaW9u LXRpbWVvdXQnLCBbJzYwMCddKVswXQotKwotKyAgICB0cnk6Ci0rICAgICAgICAjIFNldCBuZXcg dmFsdWUKLSsgICAgICAgIGNtZCA9IGRzY29uZl9iYXNlICsgWydzZXQnLCAnLS1zZXNzaW9uLXRp bWVvdXQnLCAnOTAwJ10KLSsgICAgICAgIHJldHVybmNvZGUsIHN0ZG91dCwgc3RkZXJyID0gcnVu X2NtZChjbWQpCi0rICAgICAgICBhc3NlcnQgcmV0dXJuY29kZSA9PSAwCi0rCi0rICAgICAgICAj IFZlcmlmeSBuZXcgdmFsdWUKLSsgICAgICAgIGNtZCA9IGRzY29uZl9iYXNlICsgWydnZXQnXQot KyAgICAgICAgcmV0dXJuY29kZSwgc3Rkb3V0LCBzdGRlcnIgPSBydW5fY21kKGNtZCkKLSsgICAg ICAgIGFzc2VydCAnOTAwJyBpbiBzdGRvdXQKLSsKLSsgICAgZmluYWxseToKLSsgICAgICAgICMg UmVzZXQgdG8gb3JpZ2luYWwKLSsgICAgICAgIGNtZCA9IGRzY29uZl9iYXNlICsgWydzZXQnLCAn LS1zZXNzaW9uLXRpbWVvdXQnLCBvcmlnaW5hbF90aW1lb3V0XQotKyAgICAgICAgcnVuX2NtZChj bWQsIGNoZWNrPUZhbHNlKQotKwotKwotK2RlZiB0ZXN0X2RzY29uZl9zZWN1cml0eV9lbmFibGVf ZGlzYWJsZShzZXR1cF90bHMpOgotKyAgICAiIiJUZXN0IGRzY29uZiBzZWN1cml0eSBlbmFibGUv ZGlzYWJsZSBjb21tYW5kcyB2aWEgc3VicHJvY2VzcwotKwotKyAgICA6aWQ6IGExYTJhM2E0LTAw MDEtMDAwMS0wMDAxLTAwMDAwMDAwMDAwMwotKyAgICA6c2V0dXA6IFN0YW5kYWxvbmUgSW5zdGFu Y2Ugd2l0aCBUTFMKLSsgICAgOnN0ZXBzOgotKyAgICAgICAgMS4gRW5hYmxlIHNlY3VyaXR5Ci0r ICAgICAgICAyLiBWZXJpZnkgc2VjdXJpdHkgaXMgZW5hYmxlZAotKyAgICAgICAgMy4gRGlzYWJs ZSBzZWN1cml0eQotKyAgICAgICAgNC4gVmVyaWZ5IHNlY3VyaXR5IGlzIGRpc2FibGVkCi0rICAg IDpleHBlY3RlZHJlc3VsdHM6Ci0rICAgICAgICAxLiBFbmFibGUgY29tbWFuZCBzdWNjZWVkcwot KyAgICAgICAgMi4gU2VjdXJpdHkgaXMgb24KLSsgICAgICAgIDMuIERpc2FibGUgY29tbWFuZCBz dWNjZWVkcwotKyAgICAgICAgNC4gU2VjdXJpdHkgaXMgb2ZmCi0rICAgICIiIgotKyAgICBpbnN0 ID0gc2V0dXBfdGxzLnN0YW5kYWxvbmUKLSsgICAgZHNjb25mX2Jhc2UgPSBbCi0rICAgICAgICAn ZHNjb25mJywKLSsgICAgICAgIGluc3Quc2VydmVyaWQsCi0rICAgICAgICAnc2VjdXJpdHknCi0r ICAgIF0KLSsKLSsgICAgIyBFbmFibGUgc2VjdXJpdHkKLSsgICAgY21kID0gZHNjb25mX2Jhc2Ug KyBbJ2VuYWJsZSddCi0rICAgIHJldHVybmNvZGUsIHN0ZG91dCwgc3RkZXJyID0gcnVuX2NtZChj bWQpCi0rICAgIGFzc2VydCByZXR1cm5jb2RlID09IDAKLSsKLSsgICAgIyBWZXJpZnkgZW5hYmxl ZAotKyAgICBjbWQgPSBkc2NvbmZfYmFzZSArIFsnZ2V0J10KLSsgICAgcmV0dXJuY29kZSwgc3Rk b3V0LCBzdGRlcnIgPSBydW5fY21kKGNtZCkKLSsgICAgYXNzZXJ0ICduc3NsYXBkLXNlY3VyaXR5 OiBvbicgaW4gc3Rkb3V0Ci0rCi0rICAgICMgRGlzYWJsZSBzZWN1cml0eQotKyAgICBjbWQgPSBk c2NvbmZfYmFzZSArIFsnZGlzYWJsZSddCi0rICAgIHJldHVybmNvZGUsIHN0ZG91dCwgc3RkZXJy ID0gcnVuX2NtZChjbWQpCi0rICAgIGFzc2VydCByZXR1cm5jb2RlID09IDAKLSsKLSsgICAgIyBW ZXJpZnkgZGlzYWJsZWQKLSsgICAgY21kID0gZHNjb25mX2Jhc2UgKyBbJ2dldCddCi0rICAgIHJl dHVybmNvZGUsIHN0ZG91dCwgc3RkZXJyID0gcnVuX2NtZChjbWQpCi0rICAgIGFzc2VydCAnbnNz bGFwZC1zZWN1cml0eTogb2ZmJyBpbiBzdGRvdXQKLSsKLSsKLStkZWYgdGVzdF9kc2NvbmZfc2Vj dXJpdHlfcnNhX2dldCh0b3BvKToKLSsgICAgIiIiVGVzdCBkc2NvbmYgc2VjdXJpdHkgcnNhIGdl dCBjb21tYW5kIHZpYSBzdWJwcm9jZXNzCi0rCi0rICAgIDppZDogYTFhMmEzYTQtMDAwMS0wMDAx LTAwMDEtMDAwMDAwMDAwMDA0Ci0rICAgIDpzZXR1cDogU3RhbmRhbG9uZSBJbnN0YW5jZQotKyAg ICA6c3RlcHM6Ci0rICAgICAgICAxLiBSdW4gZHNjb25mIHNlY3VyaXR5IHJzYSBnZXQgY29tbWFu ZAotKyAgICAgICAgMi4gVmVyaWZ5IG91dHB1dCBjb250YWlucyBSU0EgYXR0cmlidXRlcwotKyAg ICA6ZXhwZWN0ZWRyZXN1bHRzOgotKyAgICAgICAgMS4gQ29tbWFuZCBzdWNjZWVkcwotKyAgICAg ICAgMi4gT3V0cHV0IGNvbnRhaW5zIFJTQSBhY3RpdmF0aW9uIGF0dHJpYnV0ZQotKyAgICAiIiIK LSsgICAgaW5zdCA9IHRvcG8uc3RhbmRhbG9uZQotKyAgICBjbWQgPSBbCi0rICAgICAgICAnZHNj b25mJywKLSsgICAgICAgIGluc3Quc2VydmVyaWQsCi0rICAgICAgICAnc2VjdXJpdHknLAotKyAg ICAgICAgJ3JzYScsCi0rICAgICAgICAnZ2V0JwotKyAgICBdCi0rCi0rICAgIHJldHVybmNvZGUs IHN0ZG91dCwgc3RkZXJyID0gcnVuX2NtZChjbWQpCi0rICAgIGFzc2VydCByZXR1cm5jb2RlID09 IDAKLSsgICAgYXNzZXJ0ICduc3NzbGFjdGl2YXRpb246JyBpbiBzdGRvdXQubG93ZXIoKSBvciAn bnNTU0xBY3RpdmF0aW9uOicgaW4gc3Rkb3V0Ci0rCi0rCi0rZGVmIHRlc3RfZHNjb25mX3NlY3Vy aXR5X3JzYV9lbmFibGVfZGlzYWJsZShzZXR1cF90bHMpOgotKyAgICAiIiJUZXN0IGRzY29uZiBz ZWN1cml0eSByc2EgZW5hYmxlL2Rpc2FibGUgdmlhIHN1YnByb2Nlc3MKLSsKLSsgICAgOmlkOiBh MWEyYTNhNC0wMDAxLTAwMDEtMDAwMS0wMDAwMDAwMDAwMDUKLSsgICAgOnNldHVwOiBTdGFuZGFs b25lIEluc3RhbmNlIHdpdGggVExTCi0rICAgIDpzdGVwczoKLSsgICAgICAgIDEuIEVuYWJsZSBS U0EKLSsgICAgICAgIDIuIFZlcmlmeSBSU0EgaXMgZW5hYmxlZAotKyAgICAgICAgMy4gRGlzYWJs ZSBSU0EKLSsgICAgICAgIDQuIFZlcmlmeSBSU0EgaXMgZGlzYWJsZWQKLSsgICAgOmV4cGVjdGVk cmVzdWx0czoKLSsgICAgICAgIDEuIEVuYWJsZSBzdWNjZWVkcwotKyAgICAgICAgMi4gUlNBIGlz IG9uCi0rICAgICAgICAzLiBEaXNhYmxlIHN1Y2NlZWRzCi0rICAgICAgICA0LiBSU0EgaXMgb2Zm Ci0rICAgICIiIgotKyAgICBpbnN0ID0gc2V0dXBfdGxzLnN0YW5kYWxvbmUKLSsgICAgZHNjb25m X2Jhc2UgPSBbCi0rICAgICAgICAnZHNjb25mJywKLSsgICAgICAgIGluc3Quc2VydmVyaWQsCi0r ICAgICAgICAnc2VjdXJpdHknLAotKyAgICAgICAgJ3JzYScKLSsgICAgXQotKwotKyAgICAjIEVu YWJsZSBSU0EKLSsgICAgY21kID0gZHNjb25mX2Jhc2UgKyBbJ2VuYWJsZSddCi0rICAgIHJldHVy bmNvZGUsIHN0ZG91dCwgc3RkZXJyID0gcnVuX2NtZChjbWQpCi0rICAgIGFzc2VydCByZXR1cm5j b2RlID09IDAKLSsKLSsgICAgIyBWZXJpZnkgZW5hYmxlZAotKyAgICBjbWQgPSBkc2NvbmZfYmFz ZSArIFsnZ2V0J10KLSsgICAgcmV0dXJuY29kZSwgc3Rkb3V0LCBzdGRlcnIgPSBydW5fY21kKGNt ZCkKLSsgICAgYXNzZXJ0ICdvbicgaW4gc3Rkb3V0Lmxvd2VyKCkKLSsKLSsgICAgIyBEaXNhYmxl IFJTQQotKyAgICBjbWQgPSBkc2NvbmZfYmFzZSArIFsnZGlzYWJsZSddCi0rICAgIHJldHVybmNv ZGUsIHN0ZG91dCwgc3RkZXJyID0gcnVuX2NtZChjbWQpCi0rICAgIGFzc2VydCByZXR1cm5jb2Rl ID09IDAKLSsKLSsgICAgIyBWZXJpZnkgZGlzYWJsZWQKLSsgICAgY21kID0gZHNjb25mX2Jhc2Ug KyBbJ2dldCddCi0rICAgIHJldHVybmNvZGUsIHN0ZG91dCwgc3RkZXJyID0gcnVuX2NtZChjbWQp Ci0rICAgIGFzc2VydCAnb2ZmJyBpbiBzdGRvdXQubG93ZXIoKQotKwotKwotK2RlZiB0ZXN0X2Rz Y29uZl9zZWN1cml0eV9jaXBoZXJzX2xpc3Qoc2V0dXBfdGxzKToKLSsgICAgIiIiVGVzdCBkc2Nv bmYgc2VjdXJpdHkgY2lwaGVycyBsaXN0IGNvbW1hbmQgdmlhIHN1YnByb2Nlc3MKLSsKLSsgICAg OmlkOiBhMWEyYTNhNC0wMDAxLTAwMDEtMDAwMS0wMDAwMDAwMDAwMDYKLSsgICAgOnNldHVwOiBT dGFuZGFsb25lIEluc3RhbmNlIHdpdGggVExTCi0rICAgIDpzdGVwczoKLSsgICAgICAgIDEuIExp c3QgYWxsIGNpcGhlcnMKLSsgICAgICAgIDIuIExpc3QgZW5hYmxlZCBjaXBoZXJzCi0rICAgICAg ICAzLiBMaXN0IHN1cHBvcnRlZCBjaXBoZXJzCi0rICAgICAgICA0LiBMaXN0IGRpc2FibGVkIGNp cGhlcnMKLSsgICAgICAgIDUuIFRlc3Qgd2l0aCAtLWpzb24gZmxhZwotKyAgICA6ZXhwZWN0ZWRy ZXN1bHRzOgotKyAgICAgICAgMS4gQ29tbWFuZCBzdWNjZWVkcyBhbmQgc2hvd3MgY2lwaGVycwot KyAgICAgICAgMi4gQ29tbWFuZCBzdWNjZWVkcwotKyAgICAgICAgMy4gQ29tbWFuZCBzdWNjZWVk cwotKyAgICAgICAgNC4gQ29tbWFuZCBzdWNjZWVkcwotKyAgICAgICAgNS4gSlNPTiBvdXRwdXQg aXMgdmFsaWQKLSsgICAgIiIiCi0rICAgIGluc3QgPSBzZXR1cF90bHMuc3RhbmRhbG9uZQotKyAg ICBkc2NvbmZfYmFzZSA9IFsKLSsgICAgICAgICdkc2NvbmYnLAotKyAgICAgICAgaW5zdC5zZXJ2 ZXJpZCwKLSsgICAgICAgICdzZWN1cml0eScsCi0rICAgICAgICAnY2lwaGVycycsCi0rICAgICAg ICAnbGlzdCcKLSsgICAgXQotKwotKyAgICAjIExpc3QgYWxsIGNpcGhlcnMKLSsgICAgY21kID0g ZHNjb25mX2Jhc2UuY29weSgpCi0rICAgIHJldHVybmNvZGUsIHN0ZG91dCwgc3RkZXJyID0gcnVu X2NtZChjbWQpCi0rICAgIGFzc2VydCByZXR1cm5jb2RlID09IDAKLSsKLSsgICAgIyBMaXN0IGVu YWJsZWQgY2lwaGVycwotKyAgICBjbWQgPSBkc2NvbmZfYmFzZSArIFsnLS1lbmFibGVkJ10KLSsg ICAgcmV0dXJuY29kZSwgc3Rkb3V0LCBzdGRlcnIgPSBydW5fY21kKGNtZCkKLSsgICAgYXNzZXJ0 IHJldHVybmNvZGUgPT0gMAotKwotKyAgICAjIExpc3Qgc3VwcG9ydGVkIGNpcGhlcnMKLSsgICAg Y21kID0gZHNjb25mX2Jhc2UgKyBbJy0tc3VwcG9ydGVkJ10KLSsgICAgcmV0dXJuY29kZSwgc3Rk b3V0LCBzdGRlcnIgPSBydW5fY21kKGNtZCkKLSsgICAgYXNzZXJ0IHJldHVybmNvZGUgPT0gMAot KwotKyAgICAjIExpc3QgZGlzYWJsZWQgY2lwaGVycwotKyAgICBjbWQgPSBkc2NvbmZfYmFzZSAr IFsnLS1kaXNhYmxlZCddCi0rICAgIHJldHVybmNvZGUsIHN0ZG91dCwgc3RkZXJyID0gcnVuX2Nt ZChjbWQpCi0rICAgIGFzc2VydCByZXR1cm5jb2RlID09IDAKLSsKLSsgICAgIyBUZXN0IEpTT04g b3V0cHV0Ci0rICAgIGNtZCA9IFsnZHNjb25mJywgaW5zdC5zZXJ2ZXJpZCwgJy0tanNvbicsICdz ZWN1cml0eScsICdjaXBoZXJzJywgJ2xpc3QnXQotKyAgICByZXR1cm5jb2RlLCBzdGRvdXQsIHN0 ZGVyciA9IHJ1bl9jbWQoY21kKQotKyAgICBhc3NlcnQgcmV0dXJuY29kZSA9PSAwCi0rICAgICMg VmFsaWRhdGUgSlNPTgotKyAgICByZXN1bHQgPSBqc29uLmxvYWRzKHN0ZG91dCkKLSsgICAgYXNz ZXJ0IGlzaW5zdGFuY2UocmVzdWx0LCAoZGljdCwgbGlzdCkpCi0rCi0rCi0rZGVmIHRlc3RfZHNj b25mX3NlY3VyaXR5X2NpcGhlcnNfZ2V0KHRvcG8pOgotKyAgICAiIiJUZXN0IGRzY29uZiBzZWN1 cml0eSBjaXBoZXJzIGdldCBjb21tYW5kIHZpYSBzdWJwcm9jZXNzCi0rCi0rICAgIDppZDogYTFh MmEzYTQtMDAwMS0wMDAxLTAwMDEtMDAwMDAwMDAwMDA3Ci0rICAgIDpzZXR1cDogU3RhbmRhbG9u ZSBJbnN0YW5jZQotKyAgICA6c3RlcHM6Ci0rICAgICAgICAxLiBSdW4gZHNjb25mIHNlY3VyaXR5 IGNpcGhlcnMgZ2V0IGNvbW1hbmQKLSsgICAgICAgIDIuIFZlcmlmeSBvdXRwdXQgaXMgcmV0dXJu ZWQKLSsgICAgOmV4cGVjdGVkcmVzdWx0czoKLSsgICAgICAgIDEuIENvbW1hbmQgc3VjY2VlZHMK LSsgICAgICAgIDIuIE91dHB1dCBjb250YWlucyBjaXBoZXIgaW5mb3JtYXRpb24KLSsgICAgIiIi Ci0rICAgIGluc3QgPSB0b3BvLnN0YW5kYWxvbmUKLSsgICAgY21kID0gWwotKyAgICAgICAgJ2Rz Y29uZicsCi0rICAgICAgICBpbnN0LnNlcnZlcmlkLAotKyAgICAgICAgJ3NlY3VyaXR5JywKLSsg ICAgICAgICdjaXBoZXJzJywKLSsgICAgICAgICdnZXQnCi0rICAgIF0KLSsKLSsgICAgcmV0dXJu Y29kZSwgc3Rkb3V0LCBzdGRlcnIgPSBydW5fY21kKGNtZCkKLSsgICAgYXNzZXJ0IHJldHVybmNv ZGUgPT0gMAotKyAgICAjIE91dHB1dCBzaG91bGQgY29udGFpbiBzb21ldGhpbmcgKGNpcGhlciBs aXN0IG9yIDx1bmRlZmluZWQ+KQotKyAgICBhc3NlcnQgbGVuKHN0ZG91dCkgPiAwCi0rCi0rCi0r ZGVmIHRlc3RfZHNjb25mX3NlY3VyaXR5X2NpcGhlcnNfZW5hYmxlX2Rpc2FibGUoc2V0dXBfdGxz KToKLSsgICAgIiIiVGVzdCBkc2NvbmYgc2VjdXJpdHkgY2lwaGVycyBlbmFibGUvZGlzYWJsZSB2 aWEgc3VicHJvY2VzcwotKwotKyAgICA6aWQ6IGExYTJhM2E0LTAwMDEtMDAwMS0wMDAxLTAwMDAw MDAwMDAwOAotKyAgICA6c2V0dXA6IFN0YW5kYWxvbmUgSW5zdGFuY2Ugd2l0aCBUTFMKLSsgICAg OnN0ZXBzOgotKyAgICAgICAgMS4gRW5hYmxlIGEgc3BlY2lmaWMgY2lwaGVyCi0rICAgICAgICAy LiBEaXNhYmxlIGEgc3BlY2lmaWMgY2lwaGVyCi0rICAgIDpleHBlY3RlZHJlc3VsdHM6Ci0rICAg ICAgICAxLiBFbmFibGUgY29tbWFuZCBzdWNjZWVkcwotKyAgICAgICAgMi4gRGlzYWJsZSBjb21t YW5kIHN1Y2NlZWRzCi0rICAgICIiIgotKyAgICBpbnN0ID0gc2V0dXBfdGxzLnN0YW5kYWxvbmUK LSsgICAgZHNjb25mX2Jhc2UgPSBbCi0rICAgICAgICAnZHNjb25mJywKLSsgICAgICAgIGluc3Qu c2VydmVyaWQsCi0rICAgICAgICAnc2VjdXJpdHknLAotKyAgICAgICAgJ2NpcGhlcnMnCi0rICAg IF0KLSsKLSsgICAgIyBFbmFibGUgYSBjaXBoZXIKLSsgICAgY21kID0gZHNjb25mX2Jhc2UgKyBb J2VuYWJsZScsICdUTFNfQUVTXzEyOF9HQ01fU0hBMjU2J10KLSsgICAgcmV0dXJuY29kZSwgc3Rk b3V0LCBzdGRlcnIgPSBydW5fY21kKGNtZCwgY2hlY2s9RmFsc2UpCi0rICAgICMgTWF5IGZhaWwg aWYgY2lwaGVyIGlzIGFscmVhZHkgZW5hYmxlZCBvciBub3QgYXZhaWxhYmxlLCB0aGF0J3Mgb2sK LSsKLSsgICAgIyBEaXNhYmxlIGEgY2lwaGVyCi0rICAgIGNtZCA9IGRzY29uZl9iYXNlICsgWydk aXNhYmxlJywgJ1RMU19BRVNfMTI4X0dDTV9TSEEyNTYnXQotKyAgICByZXR1cm5jb2RlLCBzdGRv dXQsIHN0ZGVyciA9IHJ1bl9jbWQoY21kLCBjaGVjaz1GYWxzZSkKLSsgICAgIyBNYXkgZmFpbCBp ZiBjaXBoZXIgaXMgYWxyZWFkeSBkaXNhYmxlZCwgdGhhdCdzIG9rCi0rCi0rCi0rZGVmIHRlc3Rf ZHNjb25mX3NlY3VyaXR5X2NlcnRpZmljYXRlX2xpc3Qoc2V0dXBfdGxzKToKLSsgICAgIiIiVGVz dCBkc2NvbmYgc2VjdXJpdHkgY2VydGlmaWNhdGUgbGlzdCBjb21tYW5kIHZpYSBzdWJwcm9jZXNz Ci0rCi0rICAgIDppZDogYTFhMmEzYTQtMDAwMS0wMDAxLTAwMDEtMDAwMDAwMDAwMDA5Ci0rICAg IDpzZXR1cDogU3RhbmRhbG9uZSBJbnN0YW5jZSB3aXRoIFRMUwotKyAgICA6c3RlcHM6Ci0rICAg ICAgICAxLiBMaXN0IGNlcnRpZmljYXRlcwotKyAgICAgICAgMi4gVmVyaWZ5IFNlcnZlci1DZXJ0 IGlzIGluIGxpc3QKLSsgICAgICAgIDMuIFRlc3Qgd2l0aCAtLWpzb24gZmxhZwotKyAgICA6ZXhw ZWN0ZWRyZXN1bHRzOgotKyAgICAgICAgMS4gQ29tbWFuZCBzdWNjZWVkcwotKyAgICAgICAgMi4g U2VydmVyLUNlcnQgaXMgcHJlc2VudAotKyAgICAgICAgMy4gSlNPTiBvdXRwdXQgaXMgdmFsaWQK LSsgICAgIiIiCi0rICAgIGluc3QgPSBzZXR1cF90bHMuc3RhbmRhbG9uZQotKyAgICBjbWQgPSBb Ci0rICAgICAgICAnZHNjb25mJywKLSsgICAgICAgIGluc3Quc2VydmVyaWQsCi0rICAgICAgICAn c2VjdXJpdHknLAotKyAgICAgICAgJ2NlcnRpZmljYXRlJywKLSsgICAgICAgICdsaXN0JwotKyAg ICBdCi0rCi0rICAgICMgVGVzdCBwbGFpbiBvdXRwdXQKLSsgICAgcmV0dXJuY29kZSwgc3Rkb3V0 LCBzdGRlcnIgPSBydW5fY21kKGNtZCkKLSsgICAgYXNzZXJ0IHJldHVybmNvZGUgPT0gMAotKyAg ICBhc3NlcnQgJ1NlcnZlci1DZXJ0JyBpbiBzdGRvdXQKLSsKLSsgICAgIyBUZXN0IEpTT04gb3V0 cHV0Ci0rICAgIGNtZF9qc29uID0gWydkc2NvbmYnLCBpbnN0LnNlcnZlcmlkLCAnLS1qc29uJywg J3NlY3VyaXR5JywgJ2NlcnRpZmljYXRlJywgJ2xpc3QnXQotKyAgICByZXR1cm5jb2RlLCBzdGRv dXQsIHN0ZGVyciA9IHJ1bl9jbWQoY21kX2pzb24pCi0rICAgIGFzc2VydCByZXR1cm5jb2RlID09 IDAKLSsgICAgcmVzdWx0ID0ganNvbi5sb2FkcyhzdGRvdXQpCi0rICAgIGFzc2VydCBpc2luc3Rh bmNlKHJlc3VsdCwgKGRpY3QsIGxpc3QpKQotKwotKwotK2RlZiB0ZXN0X2RzY29uZl9zZWN1cml0 eV9jZXJ0aWZpY2F0ZV9nZXQoc2V0dXBfdGxzKToKLSsgICAgIiIiVGVzdCBkc2NvbmYgc2VjdXJp dHkgY2VydGlmaWNhdGUgZ2V0IGNvbW1hbmQgdmlhIHN1YnByb2Nlc3MKLSsKLSsgICAgOmlkOiBh MWEyYTNhNC0wMDAxLTAwMDEtMDAwMS0wMDAwMDAwMDAwMTAKLSsgICAgOnNldHVwOiBTdGFuZGFs b25lIEluc3RhbmNlIHdpdGggVExTCi0rICAgIDpzdGVwczoKLSsgICAgICAgIDEuIEdldCBTZXJ2 ZXItQ2VydCBkZXRhaWxzCi0rICAgICAgICAyLiBWZXJpZnkgb3V0cHV0IGNvbnRhaW5zIGNlcnRp ZmljYXRlIGluZm9ybWF0aW9uCi0rICAgIDpleHBlY3RlZHJlc3VsdHM6Ci0rICAgICAgICAxLiBD b21tYW5kIHN1Y2NlZWRzCi0rICAgICAgICAyLiBPdXRwdXQgc2hvd3MgY2VydGlmaWNhdGUgZGV0 YWlscwotKyAgICAiIiIKLSsgICAgaW5zdCA9IHNldHVwX3Rscy5zdGFuZGFsb25lCi0rICAgIGNt ZCA9IFsKLSsgICAgICAgICdkc2NvbmYnLAotKyAgICAgICAgaW5zdC5zZXJ2ZXJpZCwKLSsgICAg ICAgICdzZWN1cml0eScsCi0rICAgICAgICAnY2VydGlmaWNhdGUnLAotKyAgICAgICAgJ2dldCcs Ci0rICAgICAgICAnU2VydmVyLUNlcnQnCi0rICAgIF0KLSsKLSsgICAgcmV0dXJuY29kZSwgc3Rk b3V0LCBzdGRlcnIgPSBydW5fY21kKGNtZCkKLSsgICAgYXNzZXJ0IHJldHVybmNvZGUgPT0gMAot KyAgICBhc3NlcnQgJ1NlcnZlci1DZXJ0JyBpbiBzdGRvdXQgb3IgJ0NlcnRpZmljYXRlIE5hbWU6 JyBpbiBzdGRvdXQKLSsKLSsKLStkZWYgdGVzdF9kc2NvbmZfc2VjdXJpdHlfY2VydGlmaWNhdGVf YWRkX2RlbGV0ZShzZXR1cF90bHMpOgotKyAgICAiIiJUZXN0IGRzY29uZiBzZWN1cml0eSBjZXJ0 aWZpY2F0ZSBhZGQgYW5kIGRlbGV0ZSB2aWEgc3VicHJvY2VzcwotKwotKyAgICA6aWQ6IGExYTJh M2E0LTAwMDEtMDAwMS0wMDAxLTAwMDAwMDAwMDAxMQotKyAgICA6c2V0dXA6IFN0YW5kYWxvbmUg SW5zdGFuY2Ugd2l0aCBUTFMKLSsgICAgOnN0ZXBzOgotKyAgICAgICAgMS4gQ3JlYXRlIGEgdGVz dCBjZXJ0aWZpY2F0ZSBQRU0gZmlsZQotKyAgICAgICAgMi4gQWRkIGNlcnRpZmljYXRlIHZpYSBk c2NvbmYKLSsgICAgICAgIDMuIFZlcmlmeSBjZXJ0aWZpY2F0ZSB3YXMgYWRkZWQKLSsgICAgICAg IDQuIERlbGV0ZSBjZXJ0aWZpY2F0ZQotKyAgICAgICAgNS4gVmVyaWZ5IGNlcnRpZmljYXRlIHdh cyBkZWxldGVkCi0rICAgIDpleHBlY3RlZHJlc3VsdHM6Ci0rICAgICAgICAxLiBQRU0gZmlsZSBj cmVhdGVkCi0rICAgICAgICAyLiBBZGQgY29tbWFuZCBzdWNjZWVkcwotKyAgICAgICAgMy4gQ2Vy dGlmaWNhdGUgaXMgaW4gbGlzdAotKyAgICAgICAgNC4gRGVsZXRlIGNvbW1hbmQgc3VjY2VlZHMK LSsgICAgICAgIDUuIENlcnRpZmljYXRlIGlzIG5vdCBpbiBsaXN0Ci0rICAgICIiIgotKyAgICBp bnN0ID0gc2V0dXBfdGxzLnN0YW5kYWxvbmUKLSsgICAgZHNjb25mX2Jhc2UgPSBbCi0rICAgICAg ICAnZHNjb25mJywKLSsgICAgICAgIGluc3Quc2VydmVyaWQsCi0rICAgICAgICAnc2VjdXJpdHkn LAotKyAgICAgICAgJ2NlcnRpZmljYXRlJwotKyAgICBdCi0rCi0rICAgICMgQ3JlYXRlIHRlc3Qg Y2VydGlmaWNhdGUKLSsgICAgcGVtX2NvbnRlbnQgPSAiIiItLS0tLUJFR0lOIENFUlRJRklDQVRF LS0tLS0KLStNSUlGWmpDQ0EwNmdBd0lCQWdJRkFMMThKT293RFFZSktvWklodmNOQVFFTEJRQXda VEVMTUFrR0ExVUVCaE1DCi0rUVZVeEV6QVJCZ05WQkFnVENsRjFaV1Z1YzJ4aGJtUXhEakFNQmdO VkJBY1RCVE00T1dSek1SQXdEZ1lEVlFRSwotK0V3ZDBaWE4wYVc1bk1SOHdIUVlEVlFRREV4Wnpj Mk5oTGpNNE9XUnpMbVY0WVcxd2JHVXVZMjl0TUI0WERUSXkKLStNVEF5TlRFNU5EVTBNMW9YRFRJ ME1UQXlOVEU1TkRVME0xb3daVEVMTUFrR0ExVUVCaE1DUVZVeEV6QVJCZ05WCi0rQkFnVENsRjFa V1Z1YzJ4aGJtUXhEakFNQmdOVkJBY1RCVE00T1dSek1SQXdEZ1lEVlFRS0V3ZDBaWE4wYVc1bgot K01SOHdIUVlEVlFRREV4WnpjMk5oTGpNNE9XUnpMbVY0WVcxd2JHVXVZMjl0TUlJQ0lqQU5CZ2tx aGtpRzl3MEIKLStBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUE1RStwZDcrOGxCc2JUS2RqSGdrU0xp Mlo1VDVHOVQrM3d6aURIaHN6Ci0rRjBuRytJT3U1eVlWa29qL2JNeFIzc05ObGJETGs1QVR5TkFm eXRXM2NBVVozTkxxbTZibUVaZFVqRDZZeWNWawotK0F2cmZZM3pWVkU5RGViZnc2SkkzbWw4SmxD M3Q4ZHFuMktUN2RtU2p2cjl6UFM5NUhVK1JlcGp6QXFKQUtZM0IKLSsyN3YwY01ldFVueEc0cHFj N3pxblNaSlhWUC9PWE1LU05wdWpIbks4SHlqVDh0VUpJWVEwWXZVMkpQSnB6M2ZDCi0rQkpybXpn TzJ4WUxnTFB1NmFiaFA2UFE2dVVVK2Q0ajM2bEc0Si80T2lNWTBMcittbmFCQWFEM1VMUHRONWVa aAotK2ZqUTlkK1NoODl4SHo5MmljV2hrbjhjN0lITkVaTnRNSE5UTkppTmJXS3VVOUhwQldOaldI Sm94U3hYbjRFbXIKLStEU2ZHK2xxMlVVMm05bStYckRLLzd0MFcvekMzUyt6d2N5cU04U0pBaVpu R0VpODUwNTh3QjBCQjFIbm5BZkZYCi0rZ2VsM3VaRmhuUjRkODZPL3ZPNVZVcWc1S283OTVEUHpQ YTNTVTRyUjM2VTNuVUY3ZzVXaEVBbVlOQ2o2ODNEMwotK0RKRFBKZUNabWlzN3h0WUI1SzZXdTZT bkZEeEJFZmhjV1NzYW1XTTI4NktudE9pVXRxUUV6RHk0T3BaRVVzZ3EKLStzN3VxUVNsL2RmR2RZ OWhDcFhNWWhsdk1mVnYzYUlvTTV6UHVYTjJjRTFRa1RuRTFweW84Z1pxblBMRlpud2M5Ci0rRlQr V2pweTBFbXNBTS81QUllZDVoK0pnSjMwNFArd2t5amY3QVBVWnlVd2Y0VUpONmFybzZOOFcyM0Y3 ZEF1NQotK3VKMENBd0VBQWFNZE1Cc3dEQVlEVlIwVEJBVXdBd0VCL3pBTEJnTlZIUThFQkFNQ0Fn UXdEUVlKS29aSWh2Y04KLStBUUVMQlFBRGdnSUJBREZsVmREcDFnVEYvZ2w1eXNab280LzRCQlNw THg1SkRleVBFNkJpdHlaL2x3SHZCVXEzCi0rVnptSXNVNmt4QUpmazBwOVM3RzRMZ0hJQy9EVnNM VElFNWRvNnRVZHlyYXd2Y2FhbmJZbjlTY05vRlZRMEdEUwotK0M2SXI4UGZ0RXZjNmJwSTRoamt2 NGdvSzlmVHE1SnR2NExTdVJmeEZFd29MTytXTjhhNjVJRldsYUhKbC9FcnAKLSs5ZnpQK0pLRG84 emVoNHFuTWthVFNDQm1MV2E4a0VyclY0NjJSVStxWmt0Zi9WNC9nV2c2azVWcCs4MnhOazdmCi0r OS9Ncmc5S3NoTnV4N0E0WUNkOExnTEVlQ2dzaWdpNE42emNmalFCMFJoNXU5a1h1L2h6T2poMzc5 a2kvdnFqdQotK2krTVRWSDk3TE1CNDd1UjFMRWwwVnZoV1NqSUQwZVBVdGJQSENKd09zeFd5eEJD Slk2VjdBOW5qNTJ1WE1HdVgKLSt4Z2hzc1pURnZSSzZCYjFPaVBOWVJHcW11eW1tOHJjU0Zkc1k1 eWVta3hKNmtmbjQwSklSQ21WRndxYXF1N01DCi0rbnh5YVdBS3BSSEtNNUl5ZVZaSGtGekw5alIv MnRWQmJqZkNBbDZZU3dNNzU5VmNPc3cyU0dNUUtwR0lQRUJUYQotKzFOQmRsRzQ1YVdKQng1akJk VmZPc2tManhtQmpvc0J5SkpIUkx0clVCdmc2NlpCc3gxazBjOVhqc0ttQzU5SlAKLStBekk4ellw L1RZLzZUNWlneE0rQ1N4OThEc0pGY2NQQlpGRkpYK1lZUkw3REZOMzhZYjdqTWdJVVhZSFMyOEdj Ci0rMWM4a3o3eWxjUUI4bEtnQ2dwY0JDSDVaU25MVkFuSDN1cUN5Z3hTVGdUbytqZ0prbEtjMHhG dVIKLSstLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tIiIiCi0rCi0rICAgIHdpdGggdGVtcGZpbGUu TmFtZWRUZW1wb3JhcnlGaWxlKG1vZGU9J3cnLCBkZWxldGU9RmFsc2UsIHN1ZmZpeD0nLnBlbScp IGFzIHBlbV9maWxlOgotKyAgICAgICAgcGVtX2ZpbGUud3JpdGUocGVtX2NvbnRlbnQpCi0rICAg ICAgICBwZW1fcGF0aCA9IHBlbV9maWxlLm5hbWUKLSsKLSsgICAgdHJ5OgotKyAgICAgICAgIyBB ZGQgY2VydGlmaWNhdGUKLSsgICAgICAgIGNtZCA9IGRzY29uZl9iYXNlICsgWydhZGQnLCAnLS1m aWxlJywgcGVtX3BhdGgsICctLW5hbWUnLCAnVEVTVF9DTElfQ0VSVCddCi0rICAgICAgICByZXR1 cm5jb2RlLCBzdGRvdXQsIHN0ZGVyciA9IHJ1bl9jbWQoY21kLCBjaGVjaz1GYWxzZSkKLSsgICAg ICAgICMgTWF5IGZhaWwgaWYgY2VydCBhbHJlYWR5IGV4aXN0cywgY29udGludWUgYW55d2F5Ci0r Ci0rICAgICAgICAjIFZlcmlmeSBpdCB3YXMgYWRkZWQKLSsgICAgICAgIGNtZCA9IGRzY29uZl9i YXNlICsgWydsaXN0J10KLSsgICAgICAgIHJldHVybmNvZGUsIHN0ZG91dCwgc3RkZXJyID0gcnVu X2NtZChjbWQpCi0rICAgICAgICAjIENlcnRpZmljYXRlIHNob3VsZCBiZSBpbiBsaXN0IChvciBt YXkgaGF2ZSBmYWlsZWQgdG8gYWRkKQotKwotKyAgICAgICAgIyBEZWxldGUgY2VydGlmaWNhdGUK LSsgICAgICAgIGNtZCA9IGRzY29uZl9iYXNlICsgWydkZWwnLCAnVEVTVF9DTElfQ0VSVCddCi0r ICAgICAgICByZXR1cm5jb2RlLCBzdGRvdXQsIHN0ZGVyciA9IHJ1bl9jbWQoY21kLCBjaGVjaz1G YWxzZSkKLSsgICAgICAgICMgTWF5IGZhaWwgaWYgY2VydCBkb2Vzbid0IGV4aXN0LCB0aGF0J3Mg b2sKLSsKLSsgICAgZmluYWxseToKLSsgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKHBlbV9wYXRo KToKLSsgICAgICAgICAgICBvcy51bmxpbmsocGVtX3BhdGgpCi0rCi0rCi0rZGVmIHRlc3RfZHNj b25mX3NlY3VyaXR5X2NhX2NlcnRpZmljYXRlX2xpc3Qoc2V0dXBfdGxzKToKLSsgICAgIiIiVGVz dCBkc2NvbmYgc2VjdXJpdHkgY2EtY2VydGlmaWNhdGUgbGlzdCB2aWEgc3VicHJvY2VzcwotKwot KyAgICA6aWQ6IGExYTJhM2E0LTAwMDEtMDAwMS0wMDAxLTAwMDAwMDAwMDAxMgotKyAgICA6c2V0 dXA6IFN0YW5kYWxvbmUgSW5zdGFuY2Ugd2l0aCBUTFMKLSsgICAgOnN0ZXBzOgotKyAgICAgICAg MS4gTGlzdCBDQSBjZXJ0aWZpY2F0ZXMKLSsgICAgICAgIDIuIFZlcmlmeSBjb21tYW5kIHN1Y2Nl ZWRzCi0rICAgIDpleHBlY3RlZHJlc3VsdHM6Ci0rICAgICAgICAxLiBDb21tYW5kIHN1Y2NlZWRz Ci0rICAgICAgICAyLiBPdXRwdXQgaXMgcmV0dXJuZWQKLSsgICAgIiIiCi0rICAgIGluc3QgPSBz ZXR1cF90bHMuc3RhbmRhbG9uZQotKyAgICBjbWQgPSBbCi0rICAgICAgICAnZHNjb25mJywKLSsg ICAgICAgIGluc3Quc2VydmVyaWQsCi0rICAgICAgICAnc2VjdXJpdHknLAotKyAgICAgICAgJ2Nh LWNlcnRpZmljYXRlJywKLSsgICAgICAgICdsaXN0JwotKyAgICBdCi0rCi0rICAgIHJldHVybmNv ZGUsIHN0ZG91dCwgc3RkZXJyID0gcnVuX2NtZChjbWQpCi0rICAgIGFzc2VydCByZXR1cm5jb2Rl ID09IDAKLSsKLSsKLStkZWYgdGVzdF9kc2N0bF90bHNfc2hvd19jZXJ0KHNldHVwX3Rscyk6Ci0r ICAgICIiIlRlc3QgZHNjdGwgdGxzIHNob3ctY2VydHMgY29tbWFuZCB2aWEgc3VicHJvY2Vzcwot KwotKyAgICA6aWQ6IGIxYjJiM2I0LTAwMDItMDAwMi0wMDAyLTAwMDAwMDAwMDAwMQotKyAgICA6 c2V0dXA6IFN0YW5kYWxvbmUgSW5zdGFuY2Ugd2l0aCBUTFMKLSsgICAgOnN0ZXBzOgotKyAgICAg ICAgMS4gUnVuIGRzY3RsIHRscyBzaG93LWNlcnRzCi0rICAgICAgICAyLiBWZXJpZnkgb3V0cHV0 IHNob3dzIGNlcnRpZmljYXRlcwotKyAgICA6ZXhwZWN0ZWRyZXN1bHRzOgotKyAgICAgICAgMS4g Q29tbWFuZCBzdWNjZWVkcwotKyAgICAgICAgMi4gT3V0cHV0IGNvbnRhaW5zIGNlcnRpZmljYXRl IGluZm9ybWF0aW9uCi0rICAgICIiIgotKyAgICBpbnN0ID0gc2V0dXBfdGxzLnN0YW5kYWxvbmUK LSsgICAgY21kID0gWwotKyAgICAgICAgJ2RzY3RsJywKLSsgICAgICAgIGluc3Quc2VydmVyaWQs Ci0rICAgICAgICAndGxzJywKLSsgICAgICAgICdzaG93LWNlcnQnLAotKyAgICAgICAgJ1NlcnZl ci1DZXJ0JwotKyAgICBdCi0rCi0rICAgIHJldHVybmNvZGUsIHN0ZG91dCwgc3RkZXJyID0gcnVu X2NtZChjbWQpCi0rICAgIGFzc2VydCByZXR1cm5jb2RlID09IDAKLSsKLSsKLStkZWYgdGVzdF9k c2N0bF90bHNfbGlzdF9jbGllbnRfY2Eoc2V0dXBfdGxzKToKLSsgICAgIiIiVGVzdCBkc2N0bCB0 bHMgbGlzdC1jbGllbnQtY2FzIGNvbW1hbmQgdmlhIHN1YnByb2Nlc3MKLSsKLSsgICAgOmlkOiBi MWIyYjNiNC0wMDAyLTAwMDItMDAwMi0wMDAwMDAwMDAwMDMKLSsgICAgOnNldHVwOiBTdGFuZGFs b25lIEluc3RhbmNlIHdpdGggVExTCi0rICAgIDpzdGVwczoKLSsgICAgICAgIDEuIFJ1biBkc2N0 bCB0bHMgbGlzdC1jbGllbnQtY2FzCi0rICAgICAgICAyLiBWZXJpZnkgY29tbWFuZCBleGVjdXRl cwotKyAgICA6ZXhwZWN0ZWRyZXN1bHRzOgotKyAgICAgICAgMS4gQ29tbWFuZCBzdWNjZWVkcwot KyAgICAgICAgMi4gT3V0cHV0IGlzIHJldHVybmVkCi0rICAgICIiIgotKyAgICBpbnN0ID0gc2V0 dXBfdGxzLnN0YW5kYWxvbmUKLSsgICAgY21kID0gWwotKyAgICAgICAgJ2RzY3RsJywKLSsgICAg ICAgIGluc3Quc2VydmVyaWQsCi0rICAgICAgICAndGxzJywKLSsgICAgICAgICdsaXN0LWNsaWVu dC1jYScKLSsgICAgXQotKwotKyAgICByZXR1cm5jb2RlLCBzdGRvdXQsIHN0ZGVyciA9IHJ1bl9j bWQoY21kKQotKyAgICBhc3NlcnQgcmV0dXJuY29kZSA9PSAwCi0rICAgIGFzc2VydCAnU2VsZi1T aWduZWQtQ0EnIGluIHN0ZG91dAotKwotKwotK2RlZiB0ZXN0X2RzY3RsX3Rsc19leHBvcnRfY2Vy dChzZXR1cF90bHMpOgotKyAgICAiIiJUZXN0IGRzY3RsIHRscyBleHBvcnQtY2VydCBjb21tYW5k IHZpYSBzdWJwcm9jZXNzCi0rCi0rICAgIDppZDogYjFiMmIzYjQtMDAwMi0wMDAyLTAwMDItMDAw MDAwMDAwMDA0Ci0rICAgIDpzZXR1cDogU3RhbmRhbG9uZSBJbnN0YW5jZSB3aXRoIFRMUwotKyAg ICA6c3RlcHM6Ci0rICAgICAgICAxLiBFeHBvcnQgU2VydmVyLUNlcnQgdG8gUEVNIGZpbGUKLSsg ICAgICAgIDIuIFZlcmlmeSBmaWxlIGlzIGNyZWF0ZWQKLSsgICAgICAgIDMuIFZlcmlmeSBmaWxl IGNvbnRhaW5zIGNlcnRpZmljYXRlCi0rICAgIDpleHBlY3RlZHJlc3VsdHM6Ci0rICAgICAgICAx LiBDb21tYW5kIHN1Y2NlZWRzCi0rICAgICAgICAyLiBGaWxlIGV4aXN0cwotKyAgICAgICAgMy4g RmlsZSBjb250YWlucyBQRU0gY2VydGlmaWNhdGUKLSsgICAgIiIiCi0rICAgIGluc3QgPSBzZXR1 cF90bHMuc3RhbmRhbG9uZQotKwotKyAgICB3aXRoIHRlbXBmaWxlLk5hbWVkVGVtcG9yYXJ5Rmls ZShtb2RlPSd3JywgZGVsZXRlPUZhbHNlLCBzdWZmaXg9Jy5wZW0nKSBhcyBleHBvcnRfZmlsZToK LSsgICAgICAgIGV4cG9ydF9wYXRoID0gZXhwb3J0X2ZpbGUubmFtZQotKwotKyAgICB0cnk6Ci0r ICAgICAgICBjbWQgPSBbCi0rICAgICAgICAgICAgJ2RzY3RsJywKLSsgICAgICAgICAgICBpbnN0 LnNlcnZlcmlkLAotKyAgICAgICAgICAgICd0bHMnLAotKyAgICAgICAgICAgICdleHBvcnQtY2Vy dCcsCi0rICAgICAgICAgICAgJy0tb3V0cHV0LWZpbGUnLAotKyAgICAgICAgICAgIGV4cG9ydF9w YXRoLAotKyAgICAgICAgICAgICdTZXJ2ZXItQ2VydCcsCi0rICAgICAgICBdCi0rCi0rICAgICAg ICByZXR1cm5jb2RlLCBzdGRvdXQsIHN0ZGVyciA9IHJ1bl9jbWQoY21kKQotKyAgICAgICAgYXNz ZXJ0IHJldHVybmNvZGUgPT0gMAotKwotKyAgICAgICAgIyBWZXJpZnkgZmlsZSBleGlzdHMgYW5k IGhhcyBjb250ZW50Ci0rICAgICAgICBhc3NlcnQgb3MucGF0aC5leGlzdHMoZXhwb3J0X3BhdGgp Ci0rICAgICAgICBhc3NlcnQgb3MucGF0aC5nZXRzaXplKGV4cG9ydF9wYXRoKSA+IDAKLSsKLSsg ICAgICAgICMgVmVyaWZ5IGl0J3MgYSBQRU0gY2VydGlmaWNhdGUKLSsgICAgICAgIHdpdGggb3Bl bihleHBvcnRfcGF0aCwgJ3InKSBhcyBmOgotKyAgICAgICAgICAgIGNvbnRlbnQgPSBmLnJlYWQo KQotKyAgICAgICAgICAgIGFzc2VydCAnLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tJyBpbiBj b250ZW50Ci0rCi0rICAgIGZpbmFsbHk6Ci0rICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhleHBv cnRfcGF0aCk6Ci0rICAgICAgICAgICAgb3MudW5saW5rKGV4cG9ydF9wYXRoKQotKwotKwotK2Rl ZiB0ZXN0X2RzY3RsX3Rsc19nZW5lcmF0ZV9zZXJ2ZXJfY2VydF9jc3IodG9wbyk6Ci0rICAgICIi IlRlc3QgZHNjdGwgdGxzIGdlbmVyYXRlLXNlcnZlci1jZXJ0LWNzciB2aWEgc3VicHJvY2Vzcwot KwotKyAgICA6aWQ6IGIxYjJiM2I0LTAwMDItMDAwMi0wMDAyLTAwMDAwMDAwMDAwNQotKyAgICA6 c2V0dXA6IFN0YW5kYWxvbmUgSW5zdGFuY2UKLSsgICAgOnN0ZXBzOgotKyAgICAgICAgMS4gR2Vu ZXJhdGUgYSBDU1Igd2l0aCBzdWJqZWN0Ci0rICAgICAgICAyLiBWZXJpZnkgZHNjdGwgZG9lcyBu b3QgY3Jhc2gKLSsgICAgOmV4cGVjdGVkcmVzdWx0czoKLSsgICAgICAgIDEuIENvbW1hbmQgc3Vj Y2VlZHMKLSsgICAgICAgIDIuIENvbW1hbmQgcmV0dXJuIGNvZGUgaXMgMCBvciAxCi0rICAgICIi IgotKyAgICBpbnN0ID0gdG9wby5zdGFuZGFsb25lCi0rICAgIGNtZCA9IFsKLSsgICAgICAgICdk c2N0bCcsCi0rICAgICAgICBpbnN0LnNlcnZlcmlkLAotKyAgICAgICAgJ3RscycsCi0rICAgICAg ICAnZ2VuZXJhdGUtc2VydmVyLWNlcnQtY3NyJywKLSsgICAgICAgICctcycsICdDTj10ZXN0LmV4 YW1wbGUuY29tLE89RXhhbXBsZSxDPVVTJwotKyAgICBdCi0rCi0rICAgIHJldHVybmNvZGUsIHN0 ZG91dCwgc3RkZXJyID0gcnVuX2NtZChjbWQsIGNoZWNrPUZhbHNlKQotKyAgICAjIENvbW1hbmQg bWF5IHN1Y2NlZWQgb3IgZmFpbCBkZXBlbmRpbmcgb24gc3lzdGVtIGNvbmZpZ3VyYXRpb24KLSsg ICAgIyBKdXN0IHZlcmlmeSBpdCBkb2Vzbid0IGNyYXNoCi0rICAgIGFzc2VydCByZXR1cm5jb2Rl IGluIFswLCAxXSAgIyAwID0gc3VjY2VzcywgMSA9IGV4cGVjdGVkIGVycm9yCi0rCi0rCi0rZGVm IHRlc3RfZHNjdGxfc2VjdXJpdHlfb3B0aW9ucyh0b3BvKToKLSsgICAgIiIiVGVzdCBkc2N0bCB3 aXRoIHZhcmlvdXMgc2VjdXJpdHktcmVsYXRlZCBvcHRpb25zIHZpYSBzdWJwcm9jZXNzCi0rCi0r ICAgIDppZDogYjFiMmIzYjQtMDAwMi0wMDAyLTAwMDItMDAwMDAwMDAwMDA2Ci0rICAgIDpzZXR1 cDogU3RhbmRhbG9uZSBJbnN0YW5jZQotKyAgICA6c3RlcHM6Ci0rICAgICAgICAxLiBSdW4gZHNj dGwgc3RhdHVzIGNvbW1hbmQKLSsgICAgICAgIDIuIFZlcmlmeSBjb21tYW5kIHdvcmtzCi0rICAg IDpleHBlY3RlZHJlc3VsdHM6Ci0rICAgICAgICAxLiBDb21tYW5kIHN1Y2NlZWRzCi0rICAgICAg ICAyLiBPdXRwdXQgc2hvd3MgaW5zdGFuY2Ugc3RhdHVzCi0rICAgICIiIgotKyAgICBpbnN0ID0g dG9wby5zdGFuZGFsb25lCi0rICAgIGNtZCA9IFsKLSsgICAgICAgICdkc2N0bCcsCi0rICAgICAg ICBpbnN0LnNlcnZlcmlkLAotKyAgICAgICAgJ3N0YXR1cycKLSsgICAgXQotKwotKyAgICByZXR1 cm5jb2RlLCBzdGRvdXQsIHN0ZGVyciA9IHJ1bl9jbWQoY21kKQotKyAgICBhc3NlcnQgcmV0dXJu Y29kZSA9PSAwCi0rICAgIGFzc2VydCAnSW5zdGFuY2UnIGluIHN0ZG91dCBvciBpbnN0LnNlcnZl cmlkIGluIHN0ZG91dAotKwotKwotK2RlZiB0ZXN0X2RzY29uZl9zZWN1cml0eV9kaXNhYmxlX3Bs YWludGV4dF9wb3J0KHRvcG8pOgotKyAgICAiIiJUZXN0IGRzY29uZiBzZWN1cml0eSBkaXNhYmxl X3BsYWluX3BvcnQgdmlhIHN1YnByb2Nlc3MKLSsKLSsgICAgOmlkOiBhMWEyYTNhNC0wMDAxLTAw MDEtMDAwMS0wMDAwMDAwMDAwMTMKLSsgICAgOnNldHVwOiBTdGFuZGFsb25lIEluc3RhbmNlCi0r ICAgIDpzdGVwczoKLSsgICAgICAgIDEuIERpc2FibGUgcGxhaW50ZXh0IHBvcnQKLSsgICAgICAg IDIuIFZlcmlmeSBwb3J0IGlzIHNldCB0byAwCi0rICAgICAgICAzLiBSZXN0b3JlIG9yaWdpbmFs IHBvcnQKLSsgICAgOmV4cGVjdGVkcmVzdWx0czoKLSsgICAgICAgIDEuIENvbW1hbmQgc3VjY2Vl ZHMKLSsgICAgICAgIDIuIFBvcnQgaXMgZGlzYWJsZWQKLSsgICAgICAgIDMuIFJlc3RvcmUgc3Vj Y2VlZHMKLSsgICAgIiIiCi0rICAgIGluc3QgPSB0b3BvLnN0YW5kYWxvbmUKLSsgICAgZHNjb25m X2Jhc2UgPSBbCi0rICAgICAgICAnZHNjb25mJywKLSsgICAgICAgIGluc3Quc2VydmVyaWQKLSsg ICAgXQotKwotKyAgICAjIEdldCBvcmlnaW5hbCBwb3J0Ci0rICAgIG9yaWdpbmFsX3BvcnQgPSBp bnN0LnBvcnQKLSsKLSsgICAgdHJ5OgotKyAgICAgICAgIyBEaXNhYmxlIHBsYWludGV4dCBwb3J0 Ci0rICAgICAgICBjbWQgPSBkc2NvbmZfYmFzZSArIFsnc2VjdXJpdHknLCAnZGlzYWJsZV9wbGFp bl9wb3J0J10KLSsgICAgICAgIHJldHVybmNvZGUsIHN0ZG91dCwgc3RkZXJyID0gcnVuX2NtZChj bWQsIHN0ZGluX2lucHV0PSdZZXMgSSBhbSBzdXJlXG4nKQotKyAgICAgICAgYXNzZXJ0IHJldHVy bmNvZGUgPT0gMAotKwotKyAgICAgICAgIyBWZXJpZnkgcG9ydCBpcyAwCi0rICAgICAgICBhc3Nl cnQgaW5zdC5jb25maWcuZ2V0X2F0dHJfdmFsX3V0ZjgoJ25zc2xhcGQtcG9ydCcpID09ICIwIgot KwotKyAgICBmaW5hbGx5OgotKyAgICAgICAgIyBSZXN0b3JlIG9yaWdpbmFsIHBvcnQKLSsgICAg ICAgIGluc3QuY29uZmlnLnNldCgnbnNzbGFwZC1wb3J0Jywgc3RyKG9yaWdpbmFsX3BvcnQpKQot KwotKwotK2RlZiB0ZXN0X2RzY29uZl9zZWN1cml0eV9jZXJ0aWZpY2F0ZV9zZXRfdHJ1c3RfZmxh Z3Moc2V0dXBfdGxzKToKLSsgICAgIiIiVGVzdCBkc2NvbmYgc2VjdXJpdHkgY2VydGlmaWNhdGUg c2V0LXRydXN0LWZsYWdzIHZpYSBzdWJwcm9jZXNzCi0rCi0rICAgIDppZDogYTFhMmEzYTQtMDAw MS0wMDAxLTAwMDEtMDAwMDAwMDAwMDE0Ci0rICAgIDpzZXR1cDogU3RhbmRhbG9uZSBJbnN0YW5j ZSB3aXRoIFRMUwotKyAgICA6c3RlcHM6Ci0rICAgICAgICAxLiBTZXQgdHJ1c3QgZmxhZ3Mgb24g U2VsZi1TaWduZWQtQ0EKLSsgICAgICAgIDIuIFZlcmlmeSBjb21tYW5kIHN1Y2NlZWRzCi0rICAg IDpleHBlY3RlZHJlc3VsdHM6Ci0rICAgICAgICAxLiBDb21tYW5kIHN1Y2NlZWRzCi0rICAgICAg ICAyLiBObyBlcnJvcnMgcmV0dXJuZWQKLSsgICAgIiIiCi0rICAgIGluc3QgPSBzZXR1cF90bHMu c3RhbmRhbG9uZQotKyAgICBjbWQgPSBbCi0rICAgICAgICAnZHNjb25mJywKLSsgICAgICAgIGlu c3Quc2VydmVyaWQsCi0rICAgICAgICAnc2VjdXJpdHknLAotKyAgICAgICAgJ2NlcnRpZmljYXRl JywKLSsgICAgICAgICdzZXQtdHJ1c3QtZmxhZ3MnLAotKyAgICAgICAgJ1NlbGYtU2lnbmVkLUNB JywKLSsgICAgICAgICctLWZsYWdzJywKLSsgICAgICAgICdDVCwsJwotKyAgICBdCi0rCi0rICAg IHJldHVybmNvZGUsIHN0ZG91dCwgc3RkZXJyID0gcnVuX2NtZChjbWQpCi0rICAgIGFzc2VydCBy ZXR1cm5jb2RlID09IDAKLSsKLSsKLStkZWYgdGVzdF9kc2NvbmZfaGVscF9zZWN1cml0eSh0b3Bv KToKLSsgICAgIiIiVGVzdCBkc2NvbmYgc2VjdXJpdHkgaGVscCBjb21tYW5kcyB2aWEgc3VicHJv Y2VzcwotKwotKyAgICA6aWQ6IGExYTJhM2E0LTAwMDEtMDAwMS0wMDAxLTAwMDAwMDAwMDAxNQot KyAgICA6c2V0dXA6IFN0YW5kYWxvbmUgSW5zdGFuY2UKLSsgICAgOnN0ZXBzOgotKyAgICAgICAg MS4gUnVuIGRzY29uZiBzZWN1cml0eSAtLWhlbHAKLSsgICAgICAgIDIuIFJ1biBkc2NvbmYgc2Vj dXJpdHkgcnNhIC0taGVscAotKyAgICAgICAgMy4gUnVuIGRzY29uZiBzZWN1cml0eSBjaXBoZXJz IC0taGVscAotKyAgICAgICAgNC4gUnVuIGRzY29uZiBzZWN1cml0eSBjZXJ0aWZpY2F0ZSAtLWhl bHAKLSsgICAgOmV4cGVjdGVkcmVzdWx0czoKLSsgICAgICAgIDEuIEhlbHAgdGV4dCBpcyBkaXNw bGF5ZWQKLSsgICAgICAgIDIuIFJTQSBoZWxwIGlzIGRpc3BsYXllZAotKyAgICAgICAgMy4gQ2lw aGVycyBoZWxwIGlzIGRpc3BsYXllZAotKyAgICAgICAgNC4gQ2VydGlmaWNhdGUgaGVscCBpcyBk aXNwbGF5ZWQKLSsgICAgIiIiCi0rICAgIGluc3QgPSB0b3BvLnN0YW5kYWxvbmUKLSsgICAgZHNj b25mX2Jhc2UgPSBbCi0rICAgICAgICAnZHNjb25mJywKLSsgICAgICAgIGluc3Quc2VydmVyaWQs Ci0rICAgICAgICAnc2VjdXJpdHknCi0rICAgIF0KLSsKLSsgICAgIyBTZWN1cml0eSBoZWxwCi0r ICAgIGNtZCA9IGRzY29uZl9iYXNlICsgWyctLWhlbHAnXQotKyAgICByZXR1cm5jb2RlLCBzdGRv dXQsIHN0ZGVyciA9IHJ1bl9jbWQoY21kKQotKyAgICBhc3NlcnQgcmV0dXJuY29kZSA9PSAwCi0r ICAgIGFzc2VydCAndXNhZ2U6JyBpbiBzdGRvdXQubG93ZXIoKSBvciAnc2VjdXJpdHknIGluIHN0 ZG91dC5sb3dlcigpCi0rCi0rICAgICMgUlNBIGhlbHAKLSsgICAgY21kID0gZHNjb25mX2Jhc2Ug KyBbJ3JzYScsICctLWhlbHAnXQotKyAgICByZXR1cm5jb2RlLCBzdGRvdXQsIHN0ZGVyciA9IHJ1 bl9jbWQoY21kKQotKyAgICBhc3NlcnQgcmV0dXJuY29kZSA9PSAwCi0rCi0rICAgICMgQ2lwaGVy cyBoZWxwCi0rICAgIGNtZCA9IGRzY29uZl9iYXNlICsgWydjaXBoZXJzJywgJy0taGVscCddCi0r ICAgIHJldHVybmNvZGUsIHN0ZG91dCwgc3RkZXJyID0gcnVuX2NtZChjbWQpCi0rICAgIGFzc2Vy dCByZXR1cm5jb2RlID09IDAKLSsKLSsgICAgIyBDZXJ0aWZpY2F0ZSBoZWxwCi0rICAgIGNtZCA9 IGRzY29uZl9iYXNlICsgWydjZXJ0aWZpY2F0ZScsICctLWhlbHAnXQotKyAgICByZXR1cm5jb2Rl LCBzdGRvdXQsIHN0ZGVyciA9IHJ1bl9jbWQoY21kKQotKyAgICBhc3NlcnQgcmV0dXJuY29kZSA9 PSAwCi0rCi0rCi0rZGVmIHRlc3RfZHNjdGxfaGVscF90bHModG9wbyk6Ci0rICAgICIiIlRlc3Qg ZHNjdGwgdGxzIGhlbHAgY29tbWFuZCB2aWEgc3VicHJvY2VzcwotKwotKyAgICA6aWQ6IGIxYjJi M2I0LTAwMDItMDAwMi0wMDAyLTAwMDAwMDAwMDAwNwotKyAgICA6c2V0dXA6IFN0YW5kYWxvbmUg SW5zdGFuY2UKLSsgICAgOnN0ZXBzOgotKyAgICAgICAgMS4gUnVuIGRzY3RsIHRscyAtLWhlbHAK LSsgICAgOmV4cGVjdGVkcmVzdWx0czoKLSsgICAgICAgIDEuIEhlbHAgdGV4dCBpcyBkaXNwbGF5 ZWQKLSsgICAgIiIiCi0rICAgIGluc3QgPSB0b3BvLnN0YW5kYWxvbmUKLSsgICAgY21kID0gWwot KyAgICAgICAgJ2RzY3RsJywKLSsgICAgICAgIGluc3Quc2VydmVyaWQsCi0rICAgICAgICAndGxz JywKLSsgICAgICAgICctLWhlbHAnCi0rICAgIF0KLSsKLSsgICAgcmV0dXJuY29kZSwgc3Rkb3V0 LCBzdGRlcnIgPSBydW5fY21kKGNtZCkKLSsgICAgYXNzZXJ0IHJldHVybmNvZGUgPT0gMAotKyAg ICBhc3NlcnQgJ3VzYWdlOicgaW4gc3Rkb3V0Lmxvd2VyKCkgb3IgJ3RscycgaW4gc3Rkb3V0Lmxv d2VyKCkKLSsKLSsKLStkZWYgdGVzdF9kc2NvbmZfY2VydGlmaWNhdGVfaW52YWxpZF9maWxlcyhz ZXR1cF90bHMpOgotKyAgICAiIiJUZXN0IGRzY29uZiB3aXRoIGludmFsaWQvbWFsZm9ybWVkIGNl cnRpZmljYXRlIGZpbGVzIHZpYSBzdWJwcm9jZXNzCi0rCi0rICAgIDppZDogYTFhMmEzYTQtMDAw MS0wMDAxLTAwMDEtMDAwMDAwMDAwMDE2Ci0rICAgIDpzZXR1cDogU3RhbmRhbG9uZSBJbnN0YW5j ZSB3aXRoIFRMUwotKyAgICA6c3RlcHM6Ci0rICAgICAgICAxLiBUcnkgdG8gaW1wb3J0IGNvcnJ1 cHRlZCBQRU0gY2VydGlmaWNhdGUKLSsgICAgICAgIDIuIFRyeSB0byBpbXBvcnQgdHJ1bmNhdGVk IGNlcnRpZmljYXRlCi0rICAgICAgICAzLiBUcnkgdG8gaW1wb3J0IGludmFsaWQgUEtDUyMxMiBm aWxlCi0rICAgICAgICA0LiBWZXJpZnkgYWxsIGNvbW1hbmRzIGZhaWwgd2l0aCBhcHByb3ByaWF0 ZSBlcnJvcnMKLSsgICAgOmV4cGVjdGVkcmVzdWx0czoKLSsgICAgICAgIDEuIENvcnJ1cHRlZCBQ RU0gaW1wb3J0IGZhaWxzCi0rICAgICAgICAyLiBUcnVuY2F0ZWQgY2VydCBpbXBvcnQgZmFpbHMK LSsgICAgICAgIDMuIEludmFsaWQgUEtDUyMxMiBpbXBvcnQgZmFpbHMKLSsgICAgICAgIDQuIEVy cm9yIG1lc3NhZ2VzIGFyZSBtZWFuaW5nZnVsIChub3QganVzdCBlcnJvciBjb2RlcykKLSsgICAg IiIiCi0rICAgIGluc3QgPSBzZXR1cF90bHMuc3RhbmRhbG9uZQotKyAgICBkc2NvbmZfYmFzZSA9 IFsKLSsgICAgICAgICdkc2NvbmYnLAotKyAgICAgICAgaW5zdC5zZXJ2ZXJpZCwKLSsgICAgICAg ICdzZWN1cml0eScsCi0rICAgICAgICAnY2VydGlmaWNhdGUnCi0rICAgIF0KLSsKLSsgICAgIyBU ZXN0IDE6IENvcnJ1cHRlZCBQRU0gY2VydGlmaWNhdGUKLSsgICAgY29ycnVwdGVkX3BlbSA9ICIi Ii0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotK0NPUlJVUFRFRCBEQVRBIEhFUkUgTk9UIFZB TElEIEJBU0U2NCFAIyQlXiYqCi0rVEhJUyBJUyBOT1QgQSBSRUFMIENFUlRJRklDQVRFCi0rLS0t LS1FTkQgQ0VSVElGSUNBVEUtLS0tLSIiIgotKwotKyAgICB3aXRoIHRlbXBmaWxlLk5hbWVkVGVt cG9yYXJ5RmlsZShtb2RlPSd3JywgZGVsZXRlPUZhbHNlLCBzdWZmaXg9Jy5wZW0nKSBhcyBmOgot KyAgICAgICAgZi53cml0ZShjb3JydXB0ZWRfcGVtKQotKyAgICAgICAgY29ycnVwdGVkX3BlbV9w YXRoID0gZi5uYW1lCi0rCi0rICAgIHRyeToKLSsgICAgICAgIGNtZCA9IGRzY29uZl9iYXNlICsg WydhZGQnLCAnLS1maWxlJywgY29ycnVwdGVkX3BlbV9wYXRoLCAnLS1uYW1lJywgJ0NPUlJVUFRF RF9DRVJUJ10KLSsgICAgICAgIHJldHVybmNvZGUsIHN0ZG91dCwgc3RkZXJyID0gcnVuX2NtZChj bWQsIGNoZWNrPUZhbHNlKQotKyAgICAgICAgYXNzZXJ0IHJldHVybmNvZGUgIT0gMAotKyAgICAg ICAgIyBTaG91bGQgaGF2ZSBlcnJvciB0ZXh0LCBub3QganVzdCBlcnJvciBjb2RlCi0rICAgICAg ICBhc3NlcnQgJzI1NScgbm90IGluIHN0ZGVyciBvciAnYmFzZTY0JyBpbiBzdGRlcnIubG93ZXIo KSBvciAnaW52YWxpZCcgaW4gc3RkZXJyLmxvd2VyKCkKLSsgICAgZmluYWxseToKLSsgICAgICAg IGlmIG9zLnBhdGguZXhpc3RzKGNvcnJ1cHRlZF9wZW1fcGF0aCk6Ci0rICAgICAgICAgICAgb3Mu dW5saW5rKGNvcnJ1cHRlZF9wZW1fcGF0aCkKLSsKLSsgICAgIyBUZXN0IDI6IFRydW5jYXRlZCBj ZXJ0aWZpY2F0ZSAoaW5jb21wbGV0ZSBQRU0pCi0rICAgIHRydW5jYXRlZF9wZW0gPSAiIiItLS0t LUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLStNSUlGWmpDQ0EwNmdBd0lCQWdJRkFMMThKT293RFFZ SktvWklodmNOQVFFTEJRQXdaVEVMTUFrR0ExVUVCaE1DCi0rUVZVeEV6QVJCZ05WQkFnVENsRjFa V1Z1YzJ4aGJtUXhEakFNQmdOVkJBY1RCVE00T1dSek1SQXdEZ1lEVlFRSwotKyIiIiAgIyBJbnRl bnRpb25hbGx5IHRydW5jYXRlZCwgbm8gRU5EIENFUlRJRklDQVRFCi0rCi0rICAgIHdpdGggdGVt cGZpbGUuTmFtZWRUZW1wb3JhcnlGaWxlKG1vZGU9J3cnLCBkZWxldGU9RmFsc2UsIHN1ZmZpeD0n LnBlbScpIGFzIGY6Ci0rICAgICAgICBmLndyaXRlKHRydW5jYXRlZF9wZW0pCi0rICAgICAgICB0 cnVuY2F0ZWRfcGVtX3BhdGggPSBmLm5hbWUKLSsKLSsgICAgdHJ5OgotKyAgICAgICAgY21kID0g ZHNjb25mX2Jhc2UgKyBbJ2FkZCcsICctLWZpbGUnLCB0cnVuY2F0ZWRfcGVtX3BhdGgsICctLW5h bWUnLCAnVFJVTkNBVEVEX0NFUlQnXQotKyAgICAgICAgcmV0dXJuY29kZSwgc3Rkb3V0LCBzdGRl cnIgPSBydW5fY21kKGNtZCwgY2hlY2s9RmFsc2UpCi0rICAgICAgICBhc3NlcnQgcmV0dXJuY29k ZSAhPSAwCi0rICAgIGZpbmFsbHk6Ci0rICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyh0cnVuY2F0 ZWRfcGVtX3BhdGgpOgotKyAgICAgICAgICAgIG9zLnVubGluayh0cnVuY2F0ZWRfcGVtX3BhdGgp Ci0rCi0rICAgICMgVGVzdCAzOiBJbnZhbGlkIFBLQ1MjMTIgZmlsZSAoanVzdCByYW5kb20gZGF0 YSkKLSsgICAgd2l0aCB0ZW1wZmlsZS5OYW1lZFRlbXBvcmFyeUZpbGUobW9kZT0nd2InLCBkZWxl dGU9RmFsc2UsIHN1ZmZpeD0nLnAxMicpIGFzIGY6Ci0rICAgICAgICBmLndyaXRlKGInTk9UIEEg VkFMSUQgUEtDUzEyIEZJTEUnKQotKyAgICAgICAgaW52YWxpZF9wMTJfcGF0aCA9IGYubmFtZQot KwotKyAgICB0cnk6Ci0rICAgICAgICBjbWQgPSBkc2NvbmZfYmFzZSArIFsnYWRkJywgJy0tZmls ZScsIGludmFsaWRfcDEyX3BhdGgsICctLW5hbWUnLCAnSU5WQUxJRF9QMTInXQotKyAgICAgICAg cmV0dXJuY29kZSwgc3Rkb3V0LCBzdGRlcnIgPSBydW5fY21kKGNtZCwgY2hlY2s9RmFsc2UpCi0r ICAgICAgICBhc3NlcnQgcmV0dXJuY29kZSAhPSAwCi0rICAgIGZpbmFsbHk6Ci0rICAgICAgICBp ZiBvcy5wYXRoLmV4aXN0cyhpbnZhbGlkX3AxMl9wYXRoKToKLSsgICAgICAgICAgICBvcy51bmxp bmsoaW52YWxpZF9wMTJfcGF0aCkKLSsKLSsKLStkZWYgdGVzdF9kc2NvbmZfY2VydGlmaWNhdGVf b3ZlcndyaXRlX3NjZW5hcmlvcyhzZXR1cF90bHMpOgotKyAgICAiIiJUZXN0IGNlcnRpZmljYXRl IG92ZXJ3cml0ZSB3aXRoIGFuZCB3aXRob3V0IC0tZm9yY2UgZmxhZyB2aWEgc3VicHJvY2Vzcwot KwotKyAgICA6aWQ6IGExYTJhM2E0LTAwMDEtMDAwMS0wMDAxLTAwMDAwMDAwMDAxNwotKyAgICA6 c2V0dXA6IFN0YW5kYWxvbmUgSW5zdGFuY2Ugd2l0aCBUTFMKLSsgICAgOnN0ZXBzOgotKyAgICAg ICAgMS4gQWRkIGEgdGVzdCBjZXJ0aWZpY2F0ZQotKyAgICAgICAgMi4gVHJ5IHRvIGFkZCBzYW1l IGNlcnRpZmljYXRlIHdpdGhvdXQgLS1mb3JjZSAoc2hvdWxkIGZhaWwpCi0rICAgICAgICAzLiBB ZGQgc2FtZSBjZXJ0aWZpY2F0ZSB3aXRoIC0tZm9yY2UgKHNob3VsZCBzdWNjZWVkKQotKyAgICAg ICAgNC4gQ2xlYW4gdXAKLSsgICAgOmV4cGVjdGVkcmVzdWx0czoKLSsgICAgICAgIDEuIEluaXRp YWwgYWRkIHN1Y2NlZWRzCi0rICAgICAgICAyLiBEdXBsaWNhdGUgYWRkIHdpdGhvdXQgLS1mb3Jj ZSBmYWlscwotKyAgICAgICAgMy4gRHVwbGljYXRlIGFkZCB3aXRoIC0tZm9yY2Ugc3VjY2VlZHMK LSsgICAgICAgIDQuIENsZWFudXAgc3VjY2VlZHMKLSsgICAgIiIiCi0rICAgIGluc3QgPSBzZXR1 cF90bHMuc3RhbmRhbG9uZQotKyAgICBkc2NvbmZfYmFzZSA9IFsKLSsgICAgICAgICdkc2NvbmYn LAotKyAgICAgICAgaW5zdC5zZXJ2ZXJpZCwKLSsgICAgICAgICdzZWN1cml0eScsCi0rICAgICAg ICAnY2VydGlmaWNhdGUnCi0rICAgIF0KLSsKLSsgICAgIyBWYWxpZCB0ZXN0IGNlcnRpZmljYXRl Ci0rICAgIHBlbV9jb250ZW50ID0gIiIiLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi0rTUlJ RlpqQ0NBMDZnQXdJQkFnSUZBTDE4Sk9vd0RRWUpLb1pJaHZjTkFRRUxCUUF3WlRFTE1Ba0dBMVVF QmhNQwotK1FWVXhFekFSQmdOVkJBZ1RDbEYxWldWdWMyeGhibVF4RGpBTUJnTlZCQWNUQlRNNE9X UnpNUkF3RGdZRFZRUUsKLStFd2QwWlhOMGFXNW5NUjh3SFFZRFZRUURFeFp6YzJOaExqTTRPV1J6 TG1WNFlXMXdiR1V1WTI5dE1CNFhEVEl5Ci0rTVRBeU5URTVORFUwTTFvWERUSTBNVEF5TlRFNU5E VTBNMW93WlRFTE1Ba0dBMVVFQmhNQ1FWVXhFekFSQmdOVgotK0JBZ1RDbEYxWldWdWMyeGhibVF4 RGpBTUJnTlZCQWNUQlRNNE9XUnpNUkF3RGdZRFZRUUtFd2QwWlhOMGFXNW4KLStNUjh3SFFZRFZR UURFeFp6YzJOaExqTTRPV1J6TG1WNFlXMXdiR1V1WTI5dE1JSUNJakFOQmdrcWhraUc5dzBCCi0r QVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBNUUrcGQ3KzhsQnNiVEtkakhna1NMaTJaNVQ1RzlUKzN3 emlESGhzegotK0YwbkcrSU91NXlZVmtvai9iTXhSM3NOTmxiRExrNUFUeU5BZnl0VzNjQVVaM05M cW02Ym1FWmRVakQ2WXljVmsKLStBdnJmWTN6VlZFOURlYmZ3NkpJM21sOEpsQzN0OGRxbjJLVDdk bVNqdnI5elBTOTVIVStSZXBqekFxSkFLWTNCCi0rMjd2MGNNZXRVbnhHNHBxYzd6cW5TWkpYVlAv T1hNS1NOcHVqSG5LOEh5alQ4dFVKSVlRMFl2VTJKUEpwejNmQwotK0JKcm16Z08yeFlMZ0xQdTZh YmhQNlBRNnVVVStkNGozNmxHNEovNE9pTVkwTHIrbW5hQkFhRDNVTFB0TjVlWmgKLStmalE5ZCtT aDg5eEh6OTJpY1doa244YzdJSE5FWk50TUhOVE5KaU5iV0t1VTlIcEJXTmpXSEpveFN4WG40RW1y Ci0rRFNmRytscTJVVTJtOW0rWHJESy83dDBXL3pDM1MrendjeXFNOFNKQWlabkdFaTg1MDU4d0Iw QkIxSG5uQWZGWAotK2dlbDN1WkZoblI0ZDg2Ty92TzVWVXFnNUtvNzk1RFB6UGEzU1U0clIzNlUz blVGN2c1V2hFQW1ZTkNqNjgzRDMKLStESkRQSmVDWm1pczd4dFlCNUs2V3U2U25GRHhCRWZoY1dT c2FtV00yODZLbnRPaVV0cVFFekR5NE9wWkVVc2dxCi0rczd1cVFTbC9kZkdkWTloQ3BYTVlobHZN ZlZ2M2FJb001elB1WE4yY0UxUWtUbkUxcHlvOGdacW5QTEZabndjOQotK0ZUK1dqcHkwRW1zQU0v NUFJZWQ1aCtKZ0ozMDRQK3dreWpmN0FQVVp5VXdmNFVKTjZhcm82TjhXMjNGN2RBdTUKLSt1SjBD QXdFQUFhTWRNQnN3REFZRFZSMFRCQVV3QXdFQi96QUxCZ05WSFE4RUJBTUNBZ1F3RFFZSktvWklo dmNOCi0rQVFFTEJRQURnZ0lCQURGbFZkRHAxZ1RGL2dsNXlzWm9vNC80QkJTcEx4NUpEZXlQRTZC aXR5Wi9sd0h2QlVxMwotK1Z6bUlzVTZreEFKZmswcDlTN0c0TGdISUMvRFZzTFRJRTVkbzZ0VWR5 cmF3dmNhYW5iWW45U2NOb0ZWUTBHRFMKLStDNklyOFBmdEV2YzZicEk0aGprdjRnb0s5ZlRxNUp0 djRMU3VSZnhGRXdvTE8rV044YTY1SUZXbGFISmwvRXJwCi0rOWZ6UCtKS0RvOHplaDRxbk1rYVRT Q0JtTFdhOGtFcnJWNDYyUlUrcVprdGYvVjQvZ1dnNms1VnArODJ4Tms3ZgotKzkvTXJnOUtzaE51 eDdBNFlDZDhMZ0xFZUNnc2lnaTRONnpjZmpRQjBSaDV1OWtYdS9oek9qaDM3OWtpL3ZxanUKLStp K01UVkg5N0xNQjQ3dVIxTEVsMFZ2aFdTaklEMGVQVXRiUEhDSndPc3hXeXhCQ0pZNlY3QTluajUy dVhNR3VYCi0reGdoc3NaVEZ2Uks2QmIxT2lQTllSR3FtdXltbThyY1NGZHNZNXllbWt4SjZrZm40 MEpJUkNtVkZ3cWFxdTdNQwotK254eWFXQUtwUkhLTTVJeWVWWkhrRnpMOWpSLzJ0VkJiamZDQWw2 WVN3TTc1OVZjT3N3MlNHTVFLcEdJUEVCVGEKLSsxTkJkbEc0NWFXSkJ4NWpCZFZmT3NrTGp4bUJq b3NCeUpKSFJMdHJVQnZnNjZaQnN4MWswYzlYanNLbUM1OUpQCi0rQXpJOHpZcC9UWS82VDVpZ3hN K0NTeDk4RHNKRmNjUEJaRkZKWCtZWVJMN0RGTjM4WWI3ak1nSVVYWUhTMjhHYwotKzFjOGt6N3ls Y1FCOGxLZ0NncGNCQ0g1WlNuTFZBbkgzdXFDeWd4U1RnVG8ramdKa2xLYzB4RnVSCi0rLS0tLS1F TkQgQ0VSVElGSUNBVEUtLS0tLSIiIgotKwotKyAgICB3aXRoIHRlbXBmaWxlLk5hbWVkVGVtcG9y YXJ5RmlsZShtb2RlPSd3JywgZGVsZXRlPUZhbHNlLCBzdWZmaXg9Jy5wZW0nKSBhcyBmOgotKyAg ICAgICAgZi53cml0ZShwZW1fY29udGVudCkKLSsgICAgICAgIHBlbV9wYXRoID0gZi5uYW1lCi0r Ci0rICAgIGNlcnRfbmFtZSA9ICdURVNUX09WRVJXUklURV9DRVJUJwotKwotKyAgICB0cnk6Ci0r ICAgICAgICAjIEluaXRpYWwgYWRkCi0rICAgICAgICBjbWQgPSBkc2NvbmZfYmFzZSArIFsnYWRk JywgJy0tZmlsZScsIHBlbV9wYXRoLCAnLS1uYW1lJywgY2VydF9uYW1lXQotKyAgICAgICAgcmV0 dXJuY29kZSwgc3Rkb3V0LCBzdGRlcnIgPSBydW5fY21kKGNtZCwgY2hlY2s9RmFsc2UpCi0rCi0r ICAgICAgICBpZiByZXR1cm5jb2RlID09IDA6Ci0rICAgICAgICAgICAgIyBUcnkgdG8gYWRkIGFn YWluIHdpdGhvdXQgLS1mb3JjZSAoc2hvdWxkIGZhaWwpCi0rICAgICAgICAgICAgY21kID0gZHNj b25mX2Jhc2UgKyBbJ2FkZCcsICctLWZpbGUnLCBwZW1fcGF0aCwgJy0tbmFtZScsIGNlcnRfbmFt ZV0KLSsgICAgICAgICAgICByZXR1cm5jb2RlLCBzdGRvdXQsIHN0ZGVyciA9IHJ1bl9jbWQoY21k LCBjaGVjaz1GYWxzZSkKLSsgICAgICAgICAgICAjIFNob3VsZCBmYWlsIGJlY2F1c2UgY2VydCBh bHJlYWR5IGV4aXN0cwotKyAgICAgICAgICAgIGFzc2VydCByZXR1cm5jb2RlICE9IDAgb3IgJ2Fs cmVhZHkgZXhpc3RzJyBpbiBzdGRlcnIubG93ZXIoKQotKwotKyAgICAgICAgICAgICMgVHJ5IHRv IGFkZCB3aXRoIC0tZm9yY2UgZmxhZyAoaWYgc3VwcG9ydGVkKQotKyAgICAgICAgICAgIGNtZCA9 IGRzY29uZl9iYXNlICsgWydhZGQnLCAnLS1maWxlJywgcGVtX3BhdGgsICctLW5hbWUnLCBjZXJ0 X25hbWUsICctLWZvcmNlJ10KLSsgICAgICAgICAgICByZXR1cm5jb2RlLCBzdGRvdXQsIHN0ZGVy ciA9IHJ1bl9jbWQoY21kLCBjaGVjaz1GYWxzZSkKLSsgICAgICAgICAgICAjIENvbW1hbmQgbWF5 IHN1Y2NlZWQgd2l0aCBmb3JjZSBvciBtYXkgbm90IHN1cHBvcnQgLS1mb3JjZSBmbGFnCi0rCi0r ICAgIGZpbmFsbHk6Ci0rICAgICAgICAjIENsZWFudXAKLSsgICAgICAgIGNtZCA9IGRzY29uZl9i YXNlICsgWydkZWwnLCBjZXJ0X25hbWVdCi0rICAgICAgICBydW5fY21kKGNtZCwgY2hlY2s9RmFs c2UpCi0rICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhwZW1fcGF0aCk6Ci0rICAgICAgICAgICAg b3MudW5saW5rKHBlbV9wYXRoKQotKwotKwotK2RlZiB0ZXN0X2RzY29uZl9qc29uX3RleHRfb3V0 cHV0X2NvbnNpc3RlbmN5KHNldHVwX3Rscyk6Ci0rICAgICIiIlRlc3QgSlNPTiB2cyB0ZXh0IG91 dHB1dCBjb25zaXN0ZW5jeSBmb3IgbGlzdC9nZXQgY29tbWFuZHMgdmlhIHN1YnByb2Nlc3MKLSsK LSsgICAgOmlkOiBhMWEyYTNhNC0wMDAxLTAwMDEtMDAwMS0wMDAwMDAwMDAwMTgKLSsgICAgOnNl dHVwOiBTdGFuZGFsb25lIEluc3RhbmNlIHdpdGggVExTCi0rICAgIDpzdGVwczoKLSsgICAgICAg IDEuIEdldCBzZWN1cml0eSBjb25maWcgaW4gdGV4dCBhbmQgSlNPTiBmb3JtYXQKLSsgICAgICAg IDIuIENvbXBhcmUgdGhhdCBlc3NlbnRpYWwgZGF0YSBpcyBpbiBib3RoCi0rICAgICAgICAzLiBM aXN0IGNlcnRpZmljYXRlcyBpbiB0ZXh0IGFuZCBKU09OIGZvcm1hdAotKyAgICAgICAgNC4gQ29t cGFyZSB0aGF0IGNlcnRpZmljYXRlcyBhcHBlYXIgaW4gYm90aAotKyAgICAgICAgNS4gR2V0IGNl cnRpZmljYXRlIGRldGFpbHMgaW4gdGV4dCBhbmQgSlNPTiBmb3JtYXQKLSsgICAgICAgIDYuIFZl cmlmeSBjb25zaXN0ZW5jeQotKyAgICA6ZXhwZWN0ZWRyZXN1bHRzOgotKyAgICAgICAgMS4gQm90 aCBmb3JtYXRzIHJldHVybiBkYXRhCi0rICAgICAgICAyLiBFc3NlbnRpYWwgc2VjdXJpdHkgYXR0 cmlidXRlcyBhcHBlYXIgaW4gYm90aAotKyAgICAgICAgMy4gQm90aCBmb3JtYXRzIHJldHVybiBj ZXJ0aWZpY2F0ZXMKLSsgICAgICAgIDQuIFNhbWUgY2VydGlmaWNhdGVzIGFwcGVhciBpbiBib3Ro Ci0rICAgICAgICA1LiBCb3RoIGZvcm1hdHMgcmV0dXJuIGRldGFpbHMKLSsgICAgICAgIDYuIERh dGEgaXMgY29uc2lzdGVudCBiZXR3ZWVuIGZvcm1hdHMKLSsgICAgIiIiCi0rICAgIGluc3QgPSBz ZXR1cF90bHMuc3RhbmRhbG9uZQotKwotKyAgICAjIFRlc3QgMTogU2VjdXJpdHkgZ2V0IC0gdGV4 dCB2cyBKU09OCi0rICAgIGNtZF90ZXh0ID0gWydkc2NvbmYnLCBpbnN0LnNlcnZlcmlkLCAnc2Vj dXJpdHknLCAnZ2V0J10KLSsgICAgcmV0dXJuY29kZSwgc3Rkb3V0X3RleHQsIHN0ZGVyciA9IHJ1 bl9jbWQoY21kX3RleHQpCi0rICAgIGFzc2VydCByZXR1cm5jb2RlID09IDAKLSsKLSsgICAgY21k X2pzb24gPSBbJ2RzY29uZicsIGluc3Quc2VydmVyaWQsICctLWpzb24nLCAnc2VjdXJpdHknLCAn Z2V0J10KLSsgICAgcmV0dXJuY29kZSwgc3Rkb3V0X2pzb24sIHN0ZGVyciA9IHJ1bl9jbWQoY21k X2pzb24pCi0rICAgIGFzc2VydCByZXR1cm5jb2RlID09IDAKLSsgICAganNvbl9kYXRhID0ganNv bi5sb2FkcyhzdGRvdXRfanNvbikKLSsgICAgYXNzZXJ0ICd0eXBlJyBpbiBqc29uX2RhdGEgb3Ig J2l0ZW1zJyBpbiBqc29uX2RhdGEgb3IgJ2F0dHJzJyBpbiBqc29uX2RhdGEKLSsKLSsgICAgIyBU ZXN0IDI6IENlcnRpZmljYXRlIGxpc3QgLSB0ZXh0IHZzIEpTT04KLSsgICAgY21kX3RleHQgPSBb J2RzY29uZicsIGluc3Quc2VydmVyaWQsICdzZWN1cml0eScsICdjZXJ0aWZpY2F0ZScsICdsaXN0 J10KLSsgICAgcmV0dXJuY29kZSwgc3Rkb3V0X3RleHQsIHN0ZGVyciA9IHJ1bl9jbWQoY21kX3Rl eHQpCi0rICAgIGFzc2VydCByZXR1cm5jb2RlID09IDAKLSsKLSsgICAgY21kX2pzb24gPSBbJ2Rz Y29uZicsIGluc3Quc2VydmVyaWQsICctLWpzb24nLCAnc2VjdXJpdHknLCAnY2VydGlmaWNhdGUn LCAnbGlzdCddCi0rICAgIHJldHVybmNvZGUsIHN0ZG91dF9qc29uLCBzdGRlcnIgPSBydW5fY21k KGNtZF9qc29uKQotKyAgICBhc3NlcnQgcmV0dXJuY29kZSA9PSAwCi0rICAgIGpzb25fZGF0YSA9 IGpzb24ubG9hZHMoc3Rkb3V0X2pzb24pCi0rICAgIGFzc2VydCBpc2luc3RhbmNlKGpzb25fZGF0 YSwgKGRpY3QsIGxpc3QpKQotKwotKyAgICAjIFZlcmlmeSBTZXJ2ZXItQ2VydCBhcHBlYXJzIGlu IGJvdGgKLSsgICAgYXNzZXJ0ICdTZXJ2ZXItQ2VydCcgaW4gc3Rkb3V0X3RleHQKLSsgICAganNv bl9zdHIgPSBqc29uLmR1bXBzKGpzb25fZGF0YSkKLSsgICAgYXNzZXJ0ICdTZXJ2ZXItQ2VydCcg aW4ganNvbl9zdHIKLSsKLSsgICAgIyBUZXN0IDM6IENlcnRpZmljYXRlIGdldCAtIHRleHQgdnMg SlNPTgotKyAgICBjbWRfdGV4dCA9IFsnZHNjb25mJywgaW5zdC5zZXJ2ZXJpZCwgJ3NlY3VyaXR5 JywgJ2NlcnRpZmljYXRlJywgJ2dldCcsICdTZXJ2ZXItQ2VydCddCi0rICAgIHJldHVybmNvZGUs IHN0ZG91dF90ZXh0LCBzdGRlcnIgPSBydW5fY21kKGNtZF90ZXh0KQotKyAgICBhc3NlcnQgcmV0 dXJuY29kZSA9PSAwCi0rCi0rICAgIGNtZF9qc29uID0gWydkc2NvbmYnLCBpbnN0LnNlcnZlcmlk LCAnLS1qc29uJywgJ3NlY3VyaXR5JywgJ2NlcnRpZmljYXRlJywgJ2dldCcsICdTZXJ2ZXItQ2Vy dCddCi0rICAgIHJldHVybmNvZGUsIHN0ZG91dF9qc29uLCBzdGRlcnIgPSBydW5fY21kKGNtZF9q c29uLCBjaGVjaz1GYWxzZSkKLSsgICAgIyBKU09OIGZvcm1hdCBtYXkgbm90IGJlIHN1cHBvcnRl ZCBmb3IgdGhpcyBjb21tYW5kLCBjaGVjayBpZiBpdCBzdWNjZWVkcwotKyAgICBpZiByZXR1cm5j b2RlID09IDA6Ci0rICAgICAgICBqc29uX2RhdGEgPSBqc29uLmxvYWRzKHN0ZG91dF9qc29uKQot KyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoanNvbl9kYXRhLCBkaWN0KQotKwotKwotK2RlZiB0 ZXN0X2RzY3RsX3Rsc19lcnJvcl9tZXNzYWdlcyh0b3BvKToKLSsgICAgIiIiVGVzdCB0aGF0IGRz Y3RsIHRscyBjb21tYW5kcyByZXR1cm4gbWVhbmluZ2Z1bCBlcnJvciBtZXNzYWdlcyB2aWEgc3Vi cHJvY2VzcwotKwotKyAgICA6aWQ6IGIxYjJiM2I0LTAwMDItMDAwMi0wMDAyLTAwMDAwMDAwMDAw OAotKyAgICA6c2V0dXA6IFN0YW5kYWxvbmUgSW5zdGFuY2UKLSsgICAgOnN0ZXBzOgotKyAgICAg ICAgMS4gVHJ5IHRvIGdlbmVyYXRlIENTUiB3aXRoIG1hbGZvcm1lZCBzdWJqZWN0Ci0rICAgICAg ICAyLiBUcnkgdG8gcmVtb3ZlIG5vbi1leGlzdGVudCBjZXJ0aWZpY2F0ZQotKyAgICAgICAgMy4g VHJ5IHRvIGV4cG9ydCBub24tZXhpc3RlbnQgY2VydGlmaWNhdGUKLSsgICAgICAgIDQuIFZlcmlm eSBlcnJvciBtZXNzYWdlcyBhcmUgbWVhbmluZ2Z1bAotKyAgICA6ZXhwZWN0ZWRyZXN1bHRzOgot KyAgICAgICAgMS4gQ1NSIGdlbmVyYXRpb24gZmFpbHMgd2l0aCBtZWFuaW5nZnVsIGVycm9yCi0r ICAgICAgICAyLiBSZW1vdmUgZmFpbHMgd2l0aCBtZWFuaW5nZnVsIGVycm9yCi0rICAgICAgICAz LiBFeHBvcnQgZmFpbHMgd2l0aCBtZWFuaW5nZnVsIGVycm9yCi0rICAgICAgICA0LiBObyBiYXJl IGVycm9yIGNvZGVzIGxpa2UgJzI1NScgaW4gb3V0cHV0Ci0rICAgICIiIgotKyAgICBpbnN0ID0g dG9wby5zdGFuZGFsb25lCi0rCi0rICAgICMgVGVzdCAxOiBNYWxmb3JtZWQgc3ViamVjdCBpbiBD U1IgZ2VuZXJhdGlvbgotKyAgICBjbWQgPSBbCi0rICAgICAgICAnZHNjdGwnLAotKyAgICAgICAg aW5zdC5zZXJ2ZXJpZCwKLSsgICAgICAgICd0bHMnLAotKyAgICAgICAgJ2dlbmVyYXRlLXNlcnZl ci1jZXJ0LWNzcicsCi0rICAgICAgICAnLXMnLCAnSU5WQUxJRF9TVUJKRUNUJwotKyAgICBdCi0r ICAgIHJldHVybmNvZGUsIHN0ZG91dCwgc3RkZXJyID0gcnVuX2NtZChjbWQsIGNoZWNrPUZhbHNl KQotKyAgICBhc3NlcnQgcmV0dXJuY29kZSAhPSAwCi0rICAgICMgU2hvdWxkIGhhdmUgZXJyb3Ig dGV4dCwgbm90IGp1c3QgJzI1NScKLSsgICAgY29tYmluZWRfb3V0cHV0ID0gc3Rkb3V0ICsgc3Rk ZXJyCi0rICAgIGlmICcyNTUnIGluIGNvbWJpbmVkX291dHB1dDoKLSsgICAgICAgIGFzc2VydCAn aW1wcm9wZXJseSBmb3JtYXR0ZWQnIGluIGNvbWJpbmVkX291dHB1dC5sb3dlcigpIG9yICdpbnZh bGlkJyBpbiBjb21iaW5lZF9vdXRwdXQubG93ZXIoKQotKwotKyAgICAjIFRlc3QgMjogUmVtb3Zl IG5vbi1leGlzdGVudCBjZXJ0aWZpY2F0ZQotKyAgICBjbWQgPSBbCi0rICAgICAgICAnZHNjdGwn LAotKyAgICAgICAgaW5zdC5zZXJ2ZXJpZCwKLSsgICAgICAgICd0bHMnLAotKyAgICAgICAgJ3Jl bW92ZS1jZXJ0JywKLSsgICAgICAgICdOT05FWElTVEVOVF9DRVJUXzEyMzQ1JwotKyAgICBdCi0r ICAgIHJldHVybmNvZGUsIHN0ZG91dCwgc3RkZXJyID0gcnVuX2NtZChjbWQsIGNoZWNrPUZhbHNl KQotKyAgICBhc3NlcnQgcmV0dXJuY29kZSAhPSAwCi0rICAgIGNvbWJpbmVkX291dHB1dCA9IHN0 ZG91dCArIHN0ZGVycgotKyAgICBpZiAnMjU1JyBpbiBjb21iaW5lZF9vdXRwdXQ6Ci0rICAgICAg ICBhc3NlcnQgJ25vdCBmb3VuZCcgaW4gY29tYmluZWRfb3V0cHV0Lmxvd2VyKCkgb3IgJ2NvdWxk IG5vdCBmaW5kJyBpbiBjb21iaW5lZF9vdXRwdXQubG93ZXIoKQotKwotKyAgICAjIFRlc3QgMzog RXhwb3J0IG5vbi1leGlzdGVudCBjZXJ0aWZpY2F0ZQotKyAgICB3aXRoIHRlbXBmaWxlLk5hbWVk VGVtcG9yYXJ5RmlsZShtb2RlPSd3JywgZGVsZXRlPUZhbHNlLCBzdWZmaXg9Jy5wZW0nKSBhcyBm OgotKyAgICAgICAgZXhwb3J0X3BhdGggPSBmLm5hbWUKLSsKLSsgICAgdHJ5OgotKyAgICAgICAg Y21kID0gWwotKyAgICAgICAgICAgICdkc2N0bCcsCi0rICAgICAgICAgICAgaW5zdC5zZXJ2ZXJp ZCwKLSsgICAgICAgICAgICAndGxzJywKLSsgICAgICAgICAgICAnZXhwb3J0LWNlcnQnLAotKyAg ICAgICAgICAgICctLW91dHB1dC1maWxlJywKLSsgICAgICAgICAgICBleHBvcnRfcGF0aCwKLSsg ICAgICAgICAgICAnTk9ORVhJU1RFTlRfQ0VSVF8xMjM0NScKLSsgICAgICAgIF0KLSsgICAgICAg IHJldHVybmNvZGUsIHN0ZG91dCwgc3RkZXJyID0gcnVuX2NtZChjbWQsIGNoZWNrPUZhbHNlKQot KyAgICAgICAgYXNzZXJ0IHJldHVybmNvZGUgIT0gMAotKyAgICAgICAgY29tYmluZWRfb3V0cHV0 ID0gc3Rkb3V0ICsgc3RkZXJyCi0rICAgICAgICBpZiAnMjU1JyBpbiBjb21iaW5lZF9vdXRwdXQ6 Ci0rICAgICAgICAgICAgYXNzZXJ0ICdub3QgZm91bmQnIGluIGNvbWJpbmVkX291dHB1dC5sb3dl cigpIG9yICdjb3VsZCBub3QgZmluZCcgaW4gY29tYmluZWRfb3V0cHV0Lmxvd2VyKCkKLSsgICAg ZmluYWxseToKLSsgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKGV4cG9ydF9wYXRoKToKLSsgICAg ICAgICAgICBvcy51bmxpbmsoZXhwb3J0X3BhdGgpCi0rCi0rCi0rZGVmIHRlc3RfZHNjb25mX2Nl cnRpZmljYXRlX2JhY2tlbmRfY29uc2lzdGVuY3koc2V0dXBfdGxzKToKLSsgICAgIiIiVGVzdCBi YWNrZW5kIGNvbnNpc3RlbmN5IGJldHdlZW4gRHluYW1pY0NlcnRzIGFuZCBOc3NTc2wgdmlhIHN1 YnByb2Nlc3MKLSsKLSsgICAgOmlkOiBhMWEyYTNhNC0wMDAxLTAwMDEtMDAwMS0wMDAwMDAwMDAw MTkKLSsgICAgOnNldHVwOiBTdGFuZGFsb25lIEluc3RhbmNlIHdpdGggVExTCi0rICAgIDpzdGVw czoKLSsgICAgICAgIDEuIExpc3QgY2VydGlmaWNhdGVzIHVzaW5nIGRzY29uZgotKyAgICAgICAg Mi4gVmVyaWZ5IFNlcnZlci1DZXJ0IGFwcGVhcnMgKGZyb20gTnNzU3NsIGJhY2tlbmQpCi0rICAg ICAgICAzLiBDaGVjayBpZiBkeW5hbWljIGNlcnRpZmljYXRlcyBiYWNrZW5kIGlzIGFjY2Vzc2li bGUKLSsgICAgICAgIDQuIFZlcmlmeSBjb25zaXN0ZW5jeSBvZiBjZXJ0aWZpY2F0ZSBkYXRhCi0r ICAgIDpleHBlY3RlZHJlc3VsdHM6Ci0rICAgICAgICAxLiBDZXJ0aWZpY2F0ZSBsaXN0IHN1Y2Nl ZWRzCi0rICAgICAgICAyLiBTZXJ2ZXItQ2VydCBpcyBwcmVzZW50Ci0rICAgICAgICAzLiBCYWNr ZW5kIGlzIGFjY2Vzc2libGUKLSsgICAgICAgIDQuIERhdGEgaXMgY29uc2lzdGVudAotKyAgICAi IiIKLSsgICAgaW5zdCA9IHNldHVwX3Rscy5zdGFuZGFsb25lCi0rCi0rICAgICMgTGlzdCBjZXJ0 aWZpY2F0ZXMKLSsgICAgY21kID0gWydkc2NvbmYnLCBpbnN0LnNlcnZlcmlkLCAnc2VjdXJpdHkn LCAnY2VydGlmaWNhdGUnLCAnbGlzdCddCi0rICAgIHJldHVybmNvZGUsIHN0ZG91dCwgc3RkZXJy ID0gcnVuX2NtZChjbWQpCi0rICAgIGFzc2VydCByZXR1cm5jb2RlID09IDAKLSsgICAgYXNzZXJ0 ICdTZXJ2ZXItQ2VydCcgaW4gc3Rkb3V0Ci0rCi0rICAgICMgR2V0IGNlcnRpZmljYXRlIGRldGFp bHMKLSsgICAgY21kID0gWydkc2NvbmYnLCBpbnN0LnNlcnZlcmlkLCAnc2VjdXJpdHknLCAnY2Vy dGlmaWNhdGUnLCAnZ2V0JywgJ1NlcnZlci1DZXJ0J10KLSsgICAgcmV0dXJuY29kZSwgc3Rkb3V0 LCBzdGRlcnIgPSBydW5fY21kKGNtZCkKLSsgICAgYXNzZXJ0IHJldHVybmNvZGUgPT0gMAotKwot KyAgICAjIFZlcmlmeSB3ZSBnZXQgbWVhbmluZ2Z1bCBjZXJ0aWZpY2F0ZSBpbmZvcm1hdGlvbgot KyAgICBhc3NlcnQgJ1NlcnZlci1DZXJ0JyBpbiBzdGRvdXQgb3IgJ0NlcnRpZmljYXRlJyBpbiBz dGRvdXQKLSsKLSsgICAgIyBMaXN0IENBIGNlcnRpZmljYXRlcwotKyAgICBjbWQgPSBbJ2RzY29u ZicsIGluc3Quc2VydmVyaWQsICdzZWN1cml0eScsICdjYS1jZXJ0aWZpY2F0ZScsICdsaXN0J10K LSsgICAgcmV0dXJuY29kZSwgc3Rkb3V0LCBzdGRlcnIgPSBydW5fY21kKGNtZCkKLSsgICAgYXNz ZXJ0IHJldHVybmNvZGUgPT0gMAotKwotKyAgICAjIFRoZSBvdXRwdXQgc2hvdWxkIGJlIGNvbnNp c3RlbnQgd2hldGhlciBhY2Nlc3NlZCB2aWEgTnNzU3NsIG9yIER5bmFtaWNDZXJ0cyBiYWNrZW5k Ci0rCi0rCi0rZGVmIHRlc3RfZHNjdGxfdGxzX3BrY3MxMl9wYXNzd29yZF9zY2VuYXJpb3Moc2V0 dXBfdGxzKToKLSsgICAgIiIiVGVzdCBQS0NTIzEyIGltcG9ydCB3aXRoIHZhcmlvdXMgcGFzc3dv cmQgc2NlbmFyaW9zIHZpYSBzdWJwcm9jZXNzCi0rCi0rICAgIDppZDogYjFiMmIzYjQtMDAwMi0w MDAyLTAwMDItMDAwMDAwMDAwMDA5Ci0rICAgIDpzZXR1cDogU3RhbmRhbG9uZSBJbnN0YW5jZSB3 aXRoIFRMUwotKyAgICA6c3RlcHM6Ci0rICAgICAgICAxLiBUcnkgdG8gaW1wb3J0IFBLQ1MjMTIg d2l0aCB3cm9uZyBwYXNzd29yZAotKyAgICAgICAgMi4gVHJ5IHRvIGltcG9ydCBQS0NTIzEyIHdp dGggbWlzc2luZyBwYXNzd29yZAotKyAgICAgICAgMy4gVHJ5IHRvIGltcG9ydCBQS0NTIzEyIHdp dGggZW1wdHkgcGFzc3dvcmQgd2hlbiBvbmUgaXMgcmVxdWlyZWQKLSsgICAgICAgIDQuIFZlcmlm eSBhcHByb3ByaWF0ZSBlcnJvciBtZXNzYWdlcwotKyAgICA6ZXhwZWN0ZWRyZXN1bHRzOgotKyAg ICAgICAgMS4gV3JvbmcgcGFzc3dvcmQgZmFpbHMgd2l0aCBtZWFuaW5nZnVsIGVycm9yCi0rICAg ICAgICAyLiBNaXNzaW5nIHBhc3N3b3JkIGZhaWxzIHdpdGggbWVhbmluZ2Z1bCBlcnJvcgotKyAg ICAgICAgMy4gRW1wdHkgcGFzc3dvcmQgZmFpbHMgd2l0aCBtZWFuaW5nZnVsIGVycm9yCi0rICAg ICAgICA0LiBFcnJvciBtZXNzYWdlcyBpbmRpY2F0ZSBwYXNzd29yZCBpc3N1ZXMsIG5vdCBiYXJl IGVycm9yIGNvZGVzCi0rICAgICIiIgotKyAgICBpbnN0ID0gc2V0dXBfdGxzLnN0YW5kYWxvbmUK LSsKLSsgICAgIyBDcmVhdGUgYSBkdW1teSBQS0NTIzEyLWxpa2UgZmlsZSAobm90IGEgcmVhbCBv bmUsIGp1c3QgZm9yIHRlc3RpbmcgZXJyb3IgaGFuZGxpbmcpCi0rICAgIHdpdGggdGVtcGZpbGUu TmFtZWRUZW1wb3JhcnlGaWxlKG1vZGU9J3diJywgZGVsZXRlPUZhbHNlLCBzdWZmaXg9Jy5wMTIn KSBhcyBmOgotKyAgICAgICAgIyBXcml0ZSBzb21lIGJ5dGVzIHRoYXQgbG9vayBsaWtlIFBLQ1Mj MTIgaGVhZGVyIGJ1dCBhcmVuJ3QgdmFsaWQKLSsgICAgICAgIGYud3JpdGUoYidceDMwXHg4Micp ICAjIEFTTi4xIFNFUVVFTkNFIHRhZwotKyAgICAgICAgZi53cml0ZShiJ05PVF9BX1ZBTElEX1BL Q1MxMl9GSUxFJykKLSsgICAgICAgIHAxMl9wYXRoID0gZi5uYW1lCi0rCi0rICAgIHRyeToKLSsg ICAgICAgICMgVGVzdCAxOiBUcnkgaW1wb3J0IHdpdGggd3JvbmcgcGFzc3dvcmQKLSsgICAgICAg IGNtZCA9IFsKLSsgICAgICAgICAgICAnZHNjdGwnLAotKyAgICAgICAgICAgIGluc3Quc2VydmVy aWQsCi0rICAgICAgICAgICAgJ3RscycsCi0rICAgICAgICAgICAgJ2ltcG9ydC1zZXJ2ZXIta2V5 LWNlcnQnLAotKyAgICAgICAgICAgIHAxMl9wYXRoLAotKyAgICAgICAgICAgIHAxMl9wYXRoICAj IFVzaW5nIHNhbWUgZmlsZSBhcyBib3RoIGtleSBhbmQgY2VydCBmb3IgdGVzdGluZwotKyAgICAg ICAgXQotKyAgICAgICAgcmV0dXJuY29kZSwgc3Rkb3V0LCBzdGRlcnIgPSBydW5fY21kKGNtZCwg Y2hlY2s9RmFsc2UpCi0rICAgICAgICBhc3NlcnQgcmV0dXJuY29kZSAhPSAwCi0rICAgICAgICBj b21iaW5lZF9vdXRwdXQgPSBzdGRvdXQgKyBzdGRlcnIKLSsgICAgICAgICMgU2hvdWxkIGdldCBl cnJvciBhYm91dCBwcml2YXRlIGtleSBvciBmaWxlIGZvcm1hdCwgbm90IGJhcmUgJzI1NScKLSsg ICAgICAgIGlmICcyNTUnIGluIGNvbWJpbmVkX291dHB1dDoKLSsgICAgICAgICAgICBhc3NlcnQg KCdwcml2YXRlIGtleScgaW4gY29tYmluZWRfb3V0cHV0Lmxvd2VyKCkgb3IKLSsgICAgICAgICAg ICAgICAgICAgICdwYXNzd29yZCcgaW4gY29tYmluZWRfb3V0cHV0Lmxvd2VyKCkgb3IKLSsgICAg ICAgICAgICAgICAgICAgICdwa2NzJyBpbiBjb21iaW5lZF9vdXRwdXQubG93ZXIoKSBvcgotKyAg ICAgICAgICAgICAgICAgICAgJ2ludmFsaWQnIGluIGNvbWJpbmVkX291dHB1dC5sb3dlcigpKQot KwotKyAgICBmaW5hbGx5OgotKyAgICAgICAgaWYgb3MucGF0aC5leGlzdHMocDEyX3BhdGgpOgot KyAgICAgICAgICAgIG9zLnVubGluayhwMTJfcGF0aCkKLSsKLSsKLStkZWYgdGVzdF9kc2NvbmZf ZHluYW1pY19jZXJ0aWZpY2F0ZXNfYXR0cmlidXRlcyhzZXR1cF90bHMpOgotKyAgICAiIiJUZXN0 IGR5bmFtaWMgY2VydGlmaWNhdGVzIGF0dHJpYnV0ZXMgYW5kIHRpbWVzdGFtcCBoYW5kbGluZyB2 aWEgc3VicHJvY2VzcwotKwotKyAgICA6aWQ6IGExYTJhM2E0LTAwMDEtMDAwMS0wMDAxLTAwMDAw MDAwMDAyMAotKyAgICA6c2V0dXA6IFN0YW5kYWxvbmUgSW5zdGFuY2Ugd2l0aCBUTFMKLSsgICAg OnN0ZXBzOgotKyAgICAgICAgMS4gTGlzdCBjZXJ0aWZpY2F0ZXMgaW4gSlNPTiBmb3JtYXQKLSsg ICAgICAgIDIuIENoZWNrIGZvciBkeW5hbWljIGNlcnRpZmljYXRlIGF0dHJpYnV0ZXMKLSsgICAg ICAgIDMuIFZlcmlmeSB0aW1lc3RhbXAgZm9ybWF0IGlmIHByZXNlbnQKLSsgICAgICAgIDQuIENo ZWNrIGNlcnRpZmljYXRlIG1ldGFkYXRhIChzdWJqZWN0LCBpc3N1ZXIsIGV0Yy4pCi0rICAgIDpl eHBlY3RlZHJlc3VsdHM6Ci0rICAgICAgICAxLiBDZXJ0aWZpY2F0ZSBsaXN0IHJldHVybnMgdmFs aWQgSlNPTgotKyAgICAgICAgMi4gRXhwZWN0ZWQgYXR0cmlidXRlcyBhcmUgcHJlc2VudAotKyAg ICAgICAgMy4gVGltZXN0YW1wcyBhcmUgcHJvcGVybHkgZm9ybWF0dGVkCi0rICAgICAgICA0LiBN ZXRhZGF0YSBpcyBhY2Nlc3NpYmxlIGFuZCB2YWxpZAotKyAgICAiIiIKLSsgICAgaW5zdCA9IHNl dHVwX3Rscy5zdGFuZGFsb25lCi0rCi0rICAgICMgR2V0IGNlcnRpZmljYXRlIGxpc3QgaW4gSlNP TiBmb3JtYXQKLSsgICAgY21kID0gWydkc2NvbmYnLCBpbnN0LnNlcnZlcmlkLCAnLS1qc29uJywg J3NlY3VyaXR5JywgJ2NlcnRpZmljYXRlJywgJ2xpc3QnXQotKyAgICByZXR1cm5jb2RlLCBzdGRv dXQsIHN0ZGVyciA9IHJ1bl9jbWQoY21kKQotKyAgICBhc3NlcnQgcmV0dXJuY29kZSA9PSAwCi0r Ci0rICAgIGpzb25fZGF0YSA9IGpzb24ubG9hZHMoc3Rkb3V0KQotKyAgICBhc3NlcnQgaXNpbnN0 YW5jZShqc29uX2RhdGEsIChkaWN0LCBsaXN0KSkKLSsKLSsgICAgIyBHZXQgZGV0YWlscyBvZiBh IHNwZWNpZmljIGNlcnRpZmljYXRlIGluIEpTT04gaWYgc3VwcG9ydGVkCi0rICAgIGNtZCA9IFsn ZHNjb25mJywgaW5zdC5zZXJ2ZXJpZCwgJy0tanNvbicsICdzZWN1cml0eScsICdjZXJ0aWZpY2F0 ZScsICdnZXQnLCAnU2VydmVyLUNlcnQnXQotKyAgICByZXR1cm5jb2RlLCBzdGRvdXQsIHN0ZGVy ciA9IHJ1bl9jbWQoY21kLCBjaGVjaz1GYWxzZSkKLSsKLSsgICAgaWYgcmV0dXJuY29kZSA9PSAw OgotKyAgICAgICAganNvbl9kYXRhID0ganNvbi5sb2FkcyhzdGRvdXQpCi0rCi0rICAgICAgICAj IENoZWNrIGZvciBjb21tb24gY2VydGlmaWNhdGUgYXR0cmlidXRlcwotKyAgICAgICAgIyBUaGUg ZXhhY3Qgc3RydWN0dXJlIGRlcGVuZHMgb24gd2hldGhlciBEeW5hbWljQ2VydHMgb3IgTnNzU3Ns IGJhY2tlbmQgaXMgdXNlZAotKyAgICAgICAganNvbl9zdHIgPSBqc29uLmR1bXBzKGpzb25fZGF0 YSkubG93ZXIoKQotKwotKyAgICAgICAgIyBMb29rIGZvciBjZXJ0aWZpY2F0ZS1yZWxhdGVkIGF0 dHJpYnV0ZXMgKGNhc2UtaW5zZW5zaXRpdmUpCi0rICAgICAgICAjIFRoZXNlIG1pZ2h0IGJlIGlu IGRpZmZlcmVudCBmb3JtYXRzIGRlcGVuZGluZyBvbiB0aGUgYmFja2VuZAotKyAgICAgICAgYXNz ZXJ0ICgnc3ViamVjdCcgaW4ganNvbl9zdHIgb3IKLSsgICAgICAgICAgICAgICAgJ2lzc3Vlcicg aW4ganNvbl9zdHIgb3IKLSsgICAgICAgICAgICAgICAgJ2NlcnQnIGluIGpzb25fc3RyIG9yCi0r ICAgICAgICAgICAgICAgICduaWNrbmFtZScgaW4ganNvbl9zdHIpCi0rCi0rCi0rZGVmIHRlc3Rf ZHNjb25mX3NlY3VyaXR5X211bHRpcGxlX29wZXJhdGlvbnMoc2V0dXBfdGxzKToKLSsgICAgIiIi VGVzdCBtdWx0aXBsZSBzZWN1cml0eSBvcGVyYXRpb25zIGluIHNlcXVlbmNlIHZpYSBzdWJwcm9j ZXNzCi0rCi0rICAgIDppZDogYTFhMmEzYTQtMDAwMS0wMDAxLTAwMDEtMDAwMDAwMDAwMDIxCi0r ICAgIDpzZXR1cDogU3RhbmRhbG9uZSBJbnN0YW5jZSB3aXRoIFRMUwotKyAgICA6c3RlcHM6Ci0r ICAgICAgICAxLiBEaXNhYmxlIHNlY3VyaXR5Ci0rICAgICAgICAyLiBFbmFibGUgc2VjdXJpdHkK LSsgICAgICAgIDMuIERpc2FibGUgUlNBCi0rICAgICAgICA0LiBFbmFibGUgUlNBCi0rICAgICAg ICA1LiBHZXQgc2VjdXJpdHkgY29uZmlnIGFmdGVyIGVhY2ggY2hhbmdlCi0rICAgICAgICA2LiBW ZXJpZnkgc3RhdGUgY2hhbmdlcyBhcmUgcmVmbGVjdGVkCi0rICAgIDpleHBlY3RlZHJlc3VsdHM6 Ci0rICAgICAgICAxLiBEaXNhYmxlIHN1Y2NlZWRzCi0rICAgICAgICAyLiBFbmFibGUgc3VjY2Vl ZHMKLSsgICAgICAgIDMuIFJTQSBkaXNhYmxlIHN1Y2NlZWRzCi0rICAgICAgICA0LiBSU0EgZW5h YmxlIHN1Y2NlZWRzCi0rICAgICAgICA1LiBFYWNoIGdldCByZXR1cm5zIGN1cnJlbnQgc3RhdGUK LSsgICAgICAgIDYuIENoYW5nZXMgYXJlIHByb3Blcmx5IHJlZmxlY3RlZAotKyAgICAiIiIKLSsg ICAgaW5zdCA9IHNldHVwX3Rscy5zdGFuZGFsb25lCi0rICAgIGRzY29uZl9iYXNlID0gWydkc2Nv bmYnLCBpbnN0LnNlcnZlcmlkLCAnc2VjdXJpdHknXQotKwotKyAgICAjIEVuYWJsZSBzZWN1cml0 eQotKyAgICBjbWQgPSBkc2NvbmZfYmFzZSArIFsnZW5hYmxlJ10KLSsgICAgcmV0dXJuY29kZSwg c3Rkb3V0LCBzdGRlcnIgPSBydW5fY21kKGNtZCkKLSsgICAgYXNzZXJ0IHJldHVybmNvZGUgPT0g MAotKwotKyAgICAjIFZlcmlmeSBlbmFibGVkCi0rICAgIGNtZCA9IGRzY29uZl9iYXNlICsgWydn ZXQnXQotKyAgICByZXR1cm5jb2RlLCBzdGRvdXQsIHN0ZGVyciA9IHJ1bl9jbWQoY21kKQotKyAg ICBhc3NlcnQgJ25zc2xhcGQtc2VjdXJpdHk6IG9uJyBpbiBzdGRvdXQKLSsKLSsgICAgIyBEaXNh YmxlIHNlY3VyaXR5Ci0rICAgIGNtZCA9IGRzY29uZl9iYXNlICsgWydkaXNhYmxlJ10KLSsgICAg cmV0dXJuY29kZSwgc3Rkb3V0LCBzdGRlcnIgPSBydW5fY21kKGNtZCkKLSsgICAgYXNzZXJ0IHJl dHVybmNvZGUgPT0gMAotKwotKyAgICAjIFZlcmlmeSBkaXNhYmxlZAotKyAgICBjbWQgPSBkc2Nv bmZfYmFzZSArIFsnZ2V0J10KLSsgICAgcmV0dXJuY29kZSwgc3Rkb3V0LCBzdGRlcnIgPSBydW5f Y21kKGNtZCkKLSsgICAgYXNzZXJ0ICduc3NsYXBkLXNlY3VyaXR5OiBvZmYnIGluIHN0ZG91dAot KwotKyAgICAjIFJlLWVuYWJsZSBmb3IgUlNBIHRlc3RzCi0rICAgIGNtZCA9IGRzY29uZl9iYXNl ICsgWydlbmFibGUnXQotKyAgICByZXR1cm5jb2RlLCBzdGRvdXQsIHN0ZGVyciA9IHJ1bl9jbWQo Y21kKQotKyAgICBhc3NlcnQgcmV0dXJuY29kZSA9PSAwCi0rCi0rICAgICMgRW5hYmxlIFJTQQot KyAgICBjbWQgPSBkc2NvbmZfYmFzZSArIFsncnNhJywgJ2VuYWJsZSddCi0rICAgIHJldHVybmNv ZGUsIHN0ZG91dCwgc3RkZXJyID0gcnVuX2NtZChjbWQpCi0rICAgIGFzc2VydCByZXR1cm5jb2Rl ID09IDAKLSsKLSsgICAgIyBWZXJpZnkgUlNBIGlzIG9uCi0rICAgIGNtZCA9IGRzY29uZl9iYXNl ICsgWydyc2EnLCAnZ2V0J10KLSsgICAgcmV0dXJuY29kZSwgc3Rkb3V0LCBzdGRlcnIgPSBydW5f Y21kKGNtZCkKLSsgICAgYXNzZXJ0ICdvbicgaW4gc3Rkb3V0Lmxvd2VyKCkKLSsKLSsgICAgIyBE aXNhYmxlIFJTQQotKyAgICBjbWQgPSBkc2NvbmZfYmFzZSArIFsncnNhJywgJ2Rpc2FibGUnXQot KyAgICByZXR1cm5jb2RlLCBzdGRvdXQsIHN0ZGVyciA9IHJ1bl9jbWQoY21kKQotKyAgICBhc3Nl cnQgcmV0dXJuY29kZSA9PSAwCi0rCi0rICAgICMgVmVyaWZ5IFJTQSBpcyBvZmYKLSsgICAgY21k ID0gZHNjb25mX2Jhc2UgKyBbJ3JzYScsICdnZXQnXQotKyAgICByZXR1cm5jb2RlLCBzdGRvdXQs IHN0ZGVyciA9IHJ1bl9jbWQoY21kKQotKyAgICBhc3NlcnQgJ29mZicgaW4gc3Rkb3V0Lmxvd2Vy KCkKLSsKLSsKLStpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotKyAgICAjIFJ1biBpc29sYXRl ZAotKyAgICAjIC1zIGZvciBERUJVRyBtb2RlCi0rICAgIENVUlJFTlRfRklMRSA9IG9zLnBhdGgu cmVhbHBhdGgoX19maWxlX18pCi0rICAgIHB5dGVzdC5tYWluKFsiLXMiLCAiLXYiLCBDVVJSRU5U X0ZJTEVdKQotZGlmZiAtLWdpdCBhL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy90bHMvZHluYW1p Y19jZXJ0aWZpY2F0ZXNfdGVzdC5weSBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy90bHMvZHlu YW1pY19jZXJ0aWZpY2F0ZXNfdGVzdC5weQotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAw MDAwMDAwMC4uOWNmYWNlZmMyCi0tLS0gL2Rldi9udWxsCi0rKysgYi9kaXJzcnZ0ZXN0cy90ZXN0 cy9zdWl0ZXMvdGxzL2R5bmFtaWNfY2VydGlmaWNhdGVzX3Rlc3QucHkKLUBAIC0wLDAgKzEsMTQz NiBAQAotKyMgLS0tIEJFR0lOIENPUFlSSUdIVCBCTE9DSyAtLS0KLSsjIENvcHlyaWdodCAoQykg MjAyNiBSZWQgSGF0LCBJbmMuCi0rIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotKyMKLSsjIExpY2Vu c2U6IEdQTCAodmVyc2lvbiAzIG9yIGFueSBsYXRlciB2ZXJzaW9uKS4KLSsjIFNlZSBMSUNFTlNF IGZvciBkZXRhaWxzLgotKyMgLS0tIEVORCBDT1BZUklHSFQgQkxPQ0sgLS0tCi0rIwotKyIiIgot K0NvbXByZWhlbnNpdmUgdGVzdCBzdWl0ZSBmb3IgRHluYW1pYyBDZXJ0aWZpY2F0ZXMgZmVhdHVy ZQotK1Rlc3RzIGNlcnRpZmljYXRlIG1ldGFkYXRhIGV4dHJhY3Rpb24sIHRydXN0IGZsYWdzLCBt dWx0aS10b2tlbiBzdXBwb3J0LAotK3ZlcmlmaWNhdGlvbiwgYW5kIGVycm9yIGhhbmRsaW5nIHVz aW5nIGxpYjM4OSBEeW5hbWljQ2VydHMgY2xhc3Nlcy4KLSsiIiIKLSsKLStpbXBvcnQgb3MKLStp bXBvcnQgc3lzCi0raW1wb3J0IGJhc2U2NAotK2ltcG9ydCBjb3B5Ci0raW1wb3J0IGRhdGV0aW1l Ci0raW1wb3J0IGlwYWRkcmVzcwotK2ltcG9ydCBsZGFwCi0raW1wb3J0IGxkYXB1cmwKLStpbXBv cnQgbG9nZ2luZwotK2ltcG9ydCBweXRlc3QKLStpbXBvcnQgc2VjcmV0cwotK2ltcG9ydCBzaHV0 aWwKLStpbXBvcnQgc29ja2V0Ci0raW1wb3J0IHN1YnByb2Nlc3MKLStpbXBvcnQgdGV4dHdyYXAK LStpbXBvcnQgdGltZQotK2Zyb20gY29udGV4dGxpYiBpbXBvcnQgY29udGV4dG1hbmFnZXIsIHN1 cHByZXNzCi0rZnJvbSBjcnlwdG9ncmFwaHkuaGF6bWF0LmJhY2tlbmRzIGltcG9ydCBkZWZhdWx0 X2JhY2tlbmQKLStmcm9tIGNyeXB0b2dyYXBoeS5oYXptYXQucHJpbWl0aXZlcy5hc3ltbWV0cmlj IGltcG9ydCBlYywgcnNhCi0rZnJvbSBjcnlwdG9ncmFwaHkuaGF6bWF0LnByaW1pdGl2ZXMgaW1w b3J0IGhhc2hlcywgc2VyaWFsaXphdGlvbgotK2Zyb20gY3J5cHRvZ3JhcGh5Lmhhem1hdC5wcmlt aXRpdmVzLnNlcmlhbGl6YXRpb24gaW1wb3J0IHBrY3MxMgotK2Zyb20gY3J5cHRvZ3JhcGh5IGlt cG9ydCB4NTA5Ci0rZnJvbSBjcnlwdG9ncmFwaHkueDUwOS5vaWQgaW1wb3J0IE5hbWVPSUQsIEV4 dGVuc2lvbk9JRAotK2Zyb20gbGliMzg5LmNsaV9iYXNlIGltcG9ydCBGYWtlQXJncwotK2Zyb20g bGliMzg5Ll9jb25zdGFudHMgaW1wb3J0IEROX0RNLCBQV19ETQotK2Zyb20gbGliMzg5LmRzZWxk aWYgaW1wb3J0IERTRWxkaWYKLStmcm9tIGxpYjM4OS50b3BvbG9naWVzIGltcG9ydCB0b3BvbG9n eV9zdCBhcyB0b3BvCi0rZnJvbSBsaWIzODkudXRpbHMgaW1wb3J0IGRzX2lzX29sZGVyLCBlbnN1 cmVfc3RyLCBwZW1fdG9fZGVyLCBycG1faXNfb2xkZXIKLStmcm9tIGxpYjM4OS5keW5jZXJ0cyBp bXBvcnQgKAotKyAgICBEeW5hbWljQ2VydHMsIER5bmFtaWNDZXJ0LCBEWU5DRVJUX1NVRkZJWCwK LSsgICAgRFlDQVRUUl9DTiwgRFlDQVRUUl9DRVJUREVSLCBEWUNBVFRSX1BLRVlERVIgKQotK2Zy b20gdGVtcGZpbGUgaW1wb3J0IE5hbWVkVGVtcG9yYXJ5RmlsZQotKwotK3B5dGVzdG1hcmsgPSBw eXRlc3QubWFyay50aWVyMQotKwotK0RFQlVHR0lORyA9IG9zLmdldGVudigiREVCVUdHSU5HIiwg ZGVmYXVsdD1GYWxzZSkKLStpZiBERUJVR0dJTkc6Ci0rICAgIGxvZ2dpbmcuZ2V0TG9nZ2VyKF9f bmFtZV9fKS5zZXRMZXZlbChsb2dnaW5nLkRFQlVHKQotK2Vsc2U6Ci0rICAgIGxvZ2dpbmcuZ2V0 TG9nZ2VyKF9fbmFtZV9fKS5zZXRMZXZlbChsb2dnaW5nLklORk8pCi0rbG9nID0gbG9nZ2luZy5n ZXRMb2dnZXIoX19uYW1lX18pCi0rCi0rdGxzX2VuYWJsZWQgPSBGYWxzZQotKwotKwotK2RlZiB1 dGNkYXRlKCk6Ci0rICAgIHJldHVybiBkYXRldGltZS5kYXRldGltZS51dGNub3coKQotKwotK2Rl ZiBmaXhfY3Jhc2hfaXNzdWVfNzIyNyhpbnN0KToKLSsgICAgIiIiV29yayBhcm91bmQgdG8gYXZv aWQgbnMtc2xhcGQgY3Jhc2ggaW4gQ0VSVF9WZXJpZnlDZXJ0aWZpY2F0ZU5vdygpIiIiCi0rICAg IGluc3QucmVzdGFydCgpCi0rCi0rCi0rY2xhc3MgUlNBX0NlcnRpZmljYXRlOgotKyAgICAiIiJS U0EgQ2VydGlmaWNhdGUgR2VuZXJhdG9yIGZvciB0ZXN0aW5nIFJTQSBrZXkgc3VwcG9ydCIiIgot KwotKyAgICBQS0NTMTJfUEFTU1dPUkQgPSAicnNhK3Bhc3N3b3JkIgotKwotKyAgICBkZWYgX19p bml0X18oc2VsZik6Ci0rICAgICAgICBzZWxmLm5pY2tuYW1lID0gTm9uZQotKyAgICAgICAgc2Vs Zi50cnVzdCA9IE5vbmUKLSsgICAgICAgIHNlbGYubmFtaW5nQXR0cnMgPSB7fQotKyAgICAgICAg c2VsZi5zdWJqZWN0ID0gTm9uZQotKyAgICAgICAgc2VsZi52YWxpZGl0eV9kYXlzID0gMzY1Ci0r ICAgICAgICBzZWxmLmlzQ0EgPSBGYWxzZQotKyAgICAgICAgc2VsZi5pc1Jvb3QgPSBGYWxzZQot KwotKyAgICBAc3RhdGljbWV0aG9kCi0rICAgIGRlZiBnZW5lcmF0ZVJvb3RDQShuaWNrbmFtZSwg bmFtaW5nQXR0cmlidXRlcz17fSwgdmFsaWRpdHlfZGF5cz0zNjUwKToKLSsgICAgICAgICIiIkdl bmVyYXRlIGEgc2VsZi1zaWduZWQgUlNBIFJvb3QgQ0EgY2VydGlmaWNhdGUiIiIKLSsgICAgICAg IGNhID0gUlNBX0NlcnRpZmljYXRlKCkKLSsgICAgICAgIGNhLm5hbWluZ0F0dHJzID0gbmFtaW5n QXR0cmlidXRlcwotKyAgICAgICAgY2EudmFsaWRpdHlfZGF5cyA9IHZhbGlkaXR5X2RheXMKLSsg ICAgICAgIGNhLmlzQ0EgPSBUcnVlCi0rICAgICAgICBjYS5pc1Jvb3QgPSBUcnVlCi0rICAgICAg ICBjYS5uaWNrbmFtZSA9IG5pY2tuYW1lCi0rICAgICAgICBjYS5maXhOYW1pbmdBdHRyaWJ1dGVz KCkKLSsgICAgICAgIGNhLnN1YmplY3QgPSB4NTA5Lk5hbWUoW3g1MDkuTmFtZUF0dHJpYnV0ZShr LCB2KSBmb3IgaywgdiBpbiBjYS5uYW1pbmdBdHRycy5pdGVtcygpXSkKLSsgICAgICAgIGNhLmlz c3VlciA9IGNhLnN1YmplY3QKLSsgICAgICAgIGNhLnRydXN0ID0gJ0NULCwnCi0rCi0rICAgICAg ICAjIEdlbmVyYXRlIFJTQSAyMDQ4LWJpdCBwcml2YXRlIGtleQotKyAgICAgICAgY2EucGtleSA9 IHJzYS5nZW5lcmF0ZV9wcml2YXRlX2tleSgKLSsgICAgICAgICAgICBwdWJsaWNfZXhwb25lbnQ9 NjU1MzcsCi0rICAgICAgICAgICAga2V5X3NpemU9MjA0OCwKLSsgICAgICAgICAgICBiYWNrZW5k PWRlZmF1bHRfYmFja2VuZCgpCi0rICAgICAgICApCi0rICAgICAgICBjYS5jZXJ0ID0gKAotKyAg ICAgICAgICAgIHg1MDkuQ2VydGlmaWNhdGVCdWlsZGVyKCkKLSsgICAgICAgICAgICAuc3ViamVj dF9uYW1lKGNhLnN1YmplY3QpCi0rICAgICAgICAgICAgLmlzc3Vlcl9uYW1lKGNhLmlzc3VlcikK LSsgICAgICAgICAgICAucHVibGljX2tleShjYS5wa2V5LnB1YmxpY19rZXkoKSkKLSsgICAgICAg ICAgICAuc2VyaWFsX251bWJlcih4NTA5LnJhbmRvbV9zZXJpYWxfbnVtYmVyKCkpCi0rICAgICAg ICAgICAgLm5vdF92YWxpZF9iZWZvcmUodXRjZGF0ZSgpKQotKyAgICAgICAgICAgIC5ub3RfdmFs aWRfYWZ0ZXIodXRjZGF0ZSgpICsgZGF0ZXRpbWUudGltZWRlbHRhKGRheXM9dmFsaWRpdHlfZGF5 cykpCi0rICAgICAgICAgICAgLmFkZF9leHRlbnNpb24oCi0rICAgICAgICAgICAgICAgIHg1MDku QmFzaWNDb25zdHJhaW50cyhjYT1UcnVlLCBwYXRoX2xlbmd0aD0wKSwKLSsgICAgICAgICAgICAg ICAgY3JpdGljYWw9VHJ1ZSwKLSsgICAgICAgICAgICApCi0rICAgICAgICAgICAgLmFkZF9leHRl bnNpb24oCi0rICAgICAgICAgICAgICAgIHg1MDkuS2V5VXNhZ2UoCi0rICAgICAgICAgICAgICAg ICAgICBkaWdpdGFsX3NpZ25hdHVyZT1UcnVlLAotKyAgICAgICAgICAgICAgICAgICAga2V5X2Nl cnRfc2lnbj1UcnVlLAotKyAgICAgICAgICAgICAgICAgICAgY3JsX3NpZ249VHJ1ZSwKLSsgICAg ICAgICAgICAgICAgICAgIGtleV9lbmNpcGhlcm1lbnQ9RmFsc2UsCi0rICAgICAgICAgICAgICAg ICAgICBjb250ZW50X2NvbW1pdG1lbnQ9RmFsc2UsCi0rICAgICAgICAgICAgICAgICAgICBkYXRh X2VuY2lwaGVybWVudD1GYWxzZSwKLSsgICAgICAgICAgICAgICAgICAgIGtleV9hZ3JlZW1lbnQ9 RmFsc2UsCi0rICAgICAgICAgICAgICAgICAgICBlbmNpcGhlcl9vbmx5PUZhbHNlLAotKyAgICAg ICAgICAgICAgICAgICAgZGVjaXBoZXJfb25seT1GYWxzZSwKLSsgICAgICAgICAgICAgICAgKSwK LSsgICAgICAgICAgICAgICAgY3JpdGljYWw9VHJ1ZSwKLSsgICAgICAgICAgICApCi0rICAgICAg ICAgICAgLmFkZF9leHRlbnNpb24oCi0rICAgICAgICAgICAgICAgIHg1MDkuU3ViamVjdEtleUlk ZW50aWZpZXIuZnJvbV9wdWJsaWNfa2V5KGNhLnBrZXkucHVibGljX2tleSgpKSwKLSsgICAgICAg ICAgICAgICAgY3JpdGljYWw9RmFsc2UsCi0rICAgICAgICAgICAgKQotKyAgICAgICAgICAgIC5z aWduKGNhLnBrZXksIGhhc2hlcy5TSEEyNTYoKSwgZGVmYXVsdF9iYWNrZW5kKCkpCi0rICAgICAg ICApCi0rICAgICAgICByZXR1cm4gY2EKLSsKLSsgICAgZGVmIGZpeE5hbWluZ0F0dHJpYnV0ZShz ZWxmLCBuYW1lLCB2ZGVmKToKLSsgICAgICAgIGlmIG5hbWUgbm90IGluIHNlbGYubmFtaW5nQXR0 cnM6Ci0rICAgICAgICAgICAgc2VsZi5uYW1pbmdBdHRyc1tuYW1lXSA9IHZkZWYKLSsKLSsgICAg ZGVmIGZpeE5hbWluZ0F0dHJpYnV0ZXMoc2VsZik6Ci0rICAgICAgICBzZWxmLmZpeE5hbWluZ0F0 dHJpYnV0ZShOYW1lT0lELkNPTU1PTl9OQU1FLCBzZWxmLm5pY2tuYW1lKQotKyAgICAgICAgc2Vs Zi5maXhOYW1pbmdBdHRyaWJ1dGUoTmFtZU9JRC5DT1VOVFJZX05BTUUsICdVUycpCi0rICAgICAg ICBzZWxmLmZpeE5hbWluZ0F0dHJpYnV0ZShOYW1lT0lELk9SR0FOSVpBVElPTl9OQU1FLCAnVGVz dCBPcmdhbml6YXRpb24nKQotKwotKyAgICBkZWYgZ2VuZXJhdGVDZXJ0aWZpY2F0ZShzZWxmLCBu aWNrbmFtZSwgbmFtaW5nQXR0cmlidXRlcz17fSwgaG9zdG5hbWU9Tm9uZSwgdmFsaWRpdHlfZGF5 cz0zNjUpOgotKyAgICAgICAgIiIiR2VuZXJhdGUgYW4gUlNBIHNlcnZlciBjZXJ0aWZpY2F0ZSIi IgotKyAgICAgICAgY2VydCA9IFJTQV9DZXJ0aWZpY2F0ZSgpCi0rICAgICAgICBjZXJ0Lm5hbWlu Z0F0dHJzID0gbmFtaW5nQXR0cmlidXRlcwotKyAgICAgICAgY2VydC52YWxpZGl0eV9kYXlzID0g dmFsaWRpdHlfZGF5cwotKyAgICAgICAgY2VydC5pc0NBID0gRmFsc2UKLSsgICAgICAgIGNlcnQu aXNSb290ID0gRmFsc2UKLSsgICAgICAgIGNlcnQubmlja25hbWUgPSBuaWNrbmFtZQotKyAgICAg ICAgY2VydC5maXhOYW1pbmdBdHRyaWJ1dGVzKCkKLSsgICAgICAgIGNlcnQuc3ViamVjdCA9IHg1 MDkuTmFtZShbeDUwOS5OYW1lQXR0cmlidXRlKGssIHYpIGZvciBrLCB2IGluIGNlcnQubmFtaW5n QXR0cnMuaXRlbXMoKV0pCi0rICAgICAgICBjZXJ0Lmlzc3VlciA9IHNlbGYuc3ViamVjdAotKyAg ICAgICAgY2VydC50cnVzdCA9ICd1LHUsdScKLSsKLSsgICAgICAgIGlmIGhvc3RuYW1lIGlzIE5v bmU6Ci0rICAgICAgICAgICAgaG9zdG5hbWUgPSBzb2NrZXQuZ2V0aG9zdG5hbWUoKQotKwotKyAg ICAgICAgc2FuX2xpc3QgPSBbCi0rICAgICAgICAgICAgeDUwOS5ETlNOYW1lKGhvc3RuYW1lKSwK LSsgICAgICAgICAgICB4NTA5LkROU05hbWUoJ2xvY2FsaG9zdCcpLAotKyAgICAgICAgICAgIHg1 MDkuSVBBZGRyZXNzKGlwYWRkcmVzcy5pcF9hZGRyZXNzKCIxMjcuMC4wLjEiKSksCi0rICAgICAg ICAgICAgeDUwOS5JUEFkZHJlc3MoaXBhZGRyZXNzLmlwX2FkZHJlc3MoIjo6MSIpKQotKyAgICAg ICAgXQotKwotKyAgICAgICAgY2VydC5wa2V5ID0gcnNhLmdlbmVyYXRlX3ByaXZhdGVfa2V5KAot KyAgICAgICAgICAgIHB1YmxpY19leHBvbmVudD02NTUzNywKLSsgICAgICAgICAgICBrZXlfc2l6 ZT0yMDQ4LAotKyAgICAgICAgICAgIGJhY2tlbmQ9ZGVmYXVsdF9iYWNrZW5kKCkKLSsgICAgICAg ICkKLSsgICAgICAgIGNlcnQuY2VydCA9ICgKLSsgICAgICAgICAgICB4NTA5LkNlcnRpZmljYXRl QnVpbGRlcigpCi0rICAgICAgICAgICAgLnN1YmplY3RfbmFtZShjZXJ0LnN1YmplY3QpCi0rICAg ICAgICAgICAgLmlzc3Vlcl9uYW1lKGNlcnQuaXNzdWVyKQotKyAgICAgICAgICAgIC5wdWJsaWNf a2V5KGNlcnQucGtleS5wdWJsaWNfa2V5KCkpCi0rICAgICAgICAgICAgLnNlcmlhbF9udW1iZXIo eDUwOS5yYW5kb21fc2VyaWFsX251bWJlcigpKQotKyAgICAgICAgICAgIC5ub3RfdmFsaWRfYmVm b3JlKHV0Y2RhdGUoKSkKLSsgICAgICAgICAgICAubm90X3ZhbGlkX2FmdGVyKHV0Y2RhdGUoKSAr IGRhdGV0aW1lLnRpbWVkZWx0YShkYXlzPXZhbGlkaXR5X2RheXMpKQotKyAgICAgICAgICAgIC5h ZGRfZXh0ZW5zaW9uKAotKyAgICAgICAgICAgICAgICB4NTA5LkJhc2ljQ29uc3RyYWludHMoY2E9 RmFsc2UsIHBhdGhfbGVuZ3RoPU5vbmUpLAotKyAgICAgICAgICAgICAgICBjcml0aWNhbD1UcnVl LAotKyAgICAgICAgICAgICkKLSsgICAgICAgICAgICAuYWRkX2V4dGVuc2lvbigKLSsgICAgICAg ICAgICAgICAgeDUwOS5LZXlVc2FnZSgKLSsgICAgICAgICAgICAgICAgICAgIGRpZ2l0YWxfc2ln bmF0dXJlPVRydWUsCi0rICAgICAgICAgICAgICAgICAgICBrZXlfZW5jaXBoZXJtZW50PVRydWUs Ci0rICAgICAgICAgICAgICAgICAgICBrZXlfY2VydF9zaWduPUZhbHNlLAotKyAgICAgICAgICAg ICAgICAgICAgY3JsX3NpZ249RmFsc2UsCi0rICAgICAgICAgICAgICAgICAgICBjb250ZW50X2Nv bW1pdG1lbnQ9RmFsc2UsCi0rICAgICAgICAgICAgICAgICAgICBkYXRhX2VuY2lwaGVybWVudD1G YWxzZSwKLSsgICAgICAgICAgICAgICAgICAgIGtleV9hZ3JlZW1lbnQ9RmFsc2UsCi0rICAgICAg ICAgICAgICAgICAgICBlbmNpcGhlcl9vbmx5PUZhbHNlLAotKyAgICAgICAgICAgICAgICAgICAg ZGVjaXBoZXJfb25seT1GYWxzZSwKLSsgICAgICAgICAgICAgICAgKSwKLSsgICAgICAgICAgICAg ICAgY3JpdGljYWw9VHJ1ZSwKLSsgICAgICAgICAgICApCi0rICAgICAgICAgICAgLmFkZF9leHRl bnNpb24oCi0rICAgICAgICAgICAgICAgIHg1MDkuRXh0ZW5kZWRLZXlVc2FnZShbCi0rICAgICAg ICAgICAgICAgICAgICB4NTA5Lm9pZC5FeHRlbmRlZEtleVVzYWdlT0lELlNFUlZFUl9BVVRILAot KyAgICAgICAgICAgICAgICAgICAgeDUwOS5vaWQuRXh0ZW5kZWRLZXlVc2FnZU9JRC5DTElFTlRf QVVUSCwKLSsgICAgICAgICAgICAgICAgXSksCi0rICAgICAgICAgICAgICAgIGNyaXRpY2FsPVRy dWUsCi0rICAgICAgICAgICAgKQotKyAgICAgICAgICAgIC5hZGRfZXh0ZW5zaW9uKAotKyAgICAg ICAgICAgICAgICB4NTA5LlN1YmplY3RBbHRlcm5hdGl2ZU5hbWUoc2FuX2xpc3QpLAotKyAgICAg ICAgICAgICAgICBjcml0aWNhbD1GYWxzZSwKLSsgICAgICAgICAgICApCi0rICAgICAgICAgICAg LmFkZF9leHRlbnNpb24oCi0rICAgICAgICAgICAgICAgIHg1MDkuU3ViamVjdEtleUlkZW50aWZp ZXIuZnJvbV9wdWJsaWNfa2V5KGNlcnQucGtleS5wdWJsaWNfa2V5KCkpLAotKyAgICAgICAgICAg ICAgICBjcml0aWNhbD1GYWxzZSwKLSsgICAgICAgICAgICApCi0rICAgICAgICAgICAgLmFkZF9l eHRlbnNpb24oCi0rICAgICAgICAgICAgICAgIHg1MDkuQXV0aG9yaXR5S2V5SWRlbnRpZmllci5m cm9tX2lzc3Vlcl9wdWJsaWNfa2V5KHNlbGYucGtleS5wdWJsaWNfa2V5KCkpLAotKyAgICAgICAg ICAgICAgICBjcml0aWNhbD1GYWxzZSwKLSsgICAgICAgICAgICApCi0rICAgICAgICAgICAgLnNp Z24oc2VsZi5wa2V5LCBoYXNoZXMuU0hBMjU2KCksIGRlZmF1bHRfYmFja2VuZCgpKQotKyAgICAg ICAgKQotKyAgICAgICAgcmV0dXJuIGNlcnQKLSsKLSsgICAgZGVmIHNhdmVfcGVtX2ZpbGUoc2Vs ZiwgZmlsZW5hbWUpOgotKyAgICAgICAgIiIiU2F2ZSBjZXJ0aWZpY2F0ZSBpbiBQRU0gZm9ybWF0 IiIiCi0rICAgICAgICB3aXRoIG9wZW4oZmlsZW5hbWUsICJ3YiIpIGFzIGY6Ci0rICAgICAgICAg ICAgZi53cml0ZShzZWxmLmNlcnQucHVibGljX2J5dGVzKHNlcmlhbGl6YXRpb24uRW5jb2Rpbmcu UEVNKSkKLSsKLSsgICAgZGVmIHNhdmVfZGVyX2ZpbGUoc2VsZiwgZmlsZW5hbWUpOgotKyAgICAg ICAgIiIiU2F2ZSBjZXJ0aWZpY2F0ZSBpbiBERVIgZm9ybWF0IiIiCi0rICAgICAgICB3aXRoIG9w ZW4oZmlsZW5hbWUsICJ3YiIpIGFzIGY6Ci0rICAgICAgICAgICAgZi53cml0ZShzZWxmLmNlcnQu cHVibGljX2J5dGVzKHNlcmlhbGl6YXRpb24uRW5jb2RpbmcuREVSKSkKLSsKLSsgICAgZGVmIHNh dmVfa2V5X2RlcihzZWxmLCBmaWxlbmFtZSk6Ci0rICAgICAgICAiIiJTYXZlIHByaXZhdGUga2V5 IGluIFBLQ1M4IERFUiBmb3JtYXQiIiIKLSsgICAgICAgIHdpdGggb3BlbihmaWxlbmFtZSwgIndi IikgYXMgZjoKLSsgICAgICAgICAgICBmLndyaXRlKHNlbGYucGtleS5wcml2YXRlX2J5dGVzKAot KyAgICAgICAgICAgICAgICBlbmNvZGluZz1zZXJpYWxpemF0aW9uLkVuY29kaW5nLkRFUiwKLSsg ICAgICAgICAgICAgICAgZm9ybWF0PXNlcmlhbGl6YXRpb24uUHJpdmF0ZUZvcm1hdC5QS0NTOCwK LSsgICAgICAgICAgICAgICAgZW5jcnlwdGlvbl9hbGdvcml0aG09c2VyaWFsaXphdGlvbi5Ob0Vu Y3J5cHRpb24oKQotKyAgICAgICAgICAgICkpCi0rCi0rICAgIGRlZiB3cml0ZV9wa2NzMTJfZmls ZShzZWxmLCBmaWxlbmFtZSwgcHc9UEtDUzEyX1BBU1NXT1JEKToKLSsgICAgICAgICIiIlNhdmUg UEtDUzEyIGZvcm1hdHRlZCBjZXJ0aWZpY2F0ZSBhbmQgcHJpdmF0ZSBrZXkiIiIKLSsgICAgICAg IGlmIGlzaW5zdGFuY2UocHcsIHN0cik6Ci0rICAgICAgICAgICAgcHcgPSBwdy5lbmNvZGUoKQot KyAgICAgICAgaWYgcHcgaXMgTm9uZSBvciBwdyA9PSBiIiI6Ci0rICAgICAgICAgICAgZW5jID0g c2VyaWFsaXphdGlvbi5Ob0VuY3J5cHRpb24oKQotKyAgICAgICAgZWxzZToKLSsgICAgICAgICAg ICBlbmMgPSBzZXJpYWxpemF0aW9uLkJlc3RBdmFpbGFibGVFbmNyeXB0aW9uKHB3KQotKyAgICAg ICAgd2l0aCBvcGVuKGZpbGVuYW1lLCAid2IiKSBhcyBmOgotKyAgICAgICAgICAgIGYud3JpdGUo cGtjczEyLnNlcmlhbGl6ZV9rZXlfYW5kX2NlcnRpZmljYXRlcygKLSsgICAgICAgICAgICAgICAg c2VsZi5uaWNrbmFtZS5lbmNvZGUoKSwKLSsgICAgICAgICAgICAgICAgc2VsZi5wa2V5LAotKyAg ICAgICAgICAgICAgICBzZWxmLmNlcnQsCi0rICAgICAgICAgICAgICAgIFtdLAotKyAgICAgICAg ICAgICAgICBlbmMKLSsgICAgICAgICAgICApKQotKwotKyAgICBkZWYgc2F2ZShzZWxmLCBkaXJu YW1lKToKLSsgICAgICAgICIiIlNhdmUgYWxsIGNlcnRpZmljYXRlIGZvcm1hdHMiIiIKLSsgICAg ICAgIG5hbWUgPSBmJ3tkaXJuYW1lfS97c2VsZi5uaWNrbmFtZX0nCi0rICAgICAgICBzZWxmLnBl bSA9IGYie25hbWV9LnBlbSIKLSsgICAgICAgIHNlbGYuZGVyID0gZiJ7bmFtZX0uZGVyIgotKyAg ICAgICAgc2VsZi5rZGVyID0gZiJ7bmFtZX0ta2V5LmRlciIKLSsgICAgICAgIHNlbGYucDEyID0g ZiJ7bmFtZX0ucDEyIgotKyAgICAgICAgc2VsZi5zYXZlX3BlbV9maWxlKHNlbGYucGVtKQotKyAg ICAgICAgc2VsZi5zYXZlX2Rlcl9maWxlKHNlbGYuZGVyKQotKyAgICAgICAgc2VsZi5zYXZlX2tl eV9kZXIoc2VsZi5rZGVyKQotKyAgICAgICAgc2VsZi53cml0ZV9wa2NzMTJfZmlsZShzZWxmLnAx MikKLSsKLSsKLStAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIpCi0rZGVmIHNldHVwX3Rs cyh0b3BvKToKLSsgICAgIiIiRW5hYmxlIFRMUyBvbiB0aGUgaW5zdGFuY2UiIiIKLSsgICAgZ2xv YmFsIHRsc19lbmFibGVkCi0rICAgIGluc3QgPSB0b3BvLnN0YW5kYWxvbmUKLSsgICAgaWYgbm90 IHRsc19lbmFibGVkOgotKyAgICAgICAgaW5zdC5lbmFibGVfdGxzKCkKLSsgICAgICAgIHRsc19l bmFibGVkID0gVHJ1ZQotKyAgICByZXR1cm4gaW5zdAotKwotKwotK2RlZiB0ZXN0X2NlcnRpZmlj YXRlX21ldGFkYXRhX2V4dHJhY3Rpb24odG9wbywgc2V0dXBfdGxzKToKLSsgICAgIiIiVGVzdCB0 aGF0IGNlcnRpZmljYXRlIG1ldGFkYXRhIGlzIGNvcnJlY3RseSBleHRyYWN0ZWQgYW5kIGV4cG9z ZWQKLSsKLSsgICAgOmlkOiBhMWIyYzNkNC0xMTExLTIyMjItMzMzMy00NDQ0NDQ0NDQ0NDQKLSsg ICAgOnNldHVwOiBTdGFuZGFsb25lIEluc3RhbmNlIHdpdGggVExTIGVuYWJsZWQKLSsgICAgOnN0 ZXBzOgotKyAgICAgICAgMS4gR2VuZXJhdGUgUlNBIFJvb3QgQ0EgY2VydGlmaWNhdGUKLSsgICAg ICAgIDIuIEFkZCBjZXJ0aWZpY2F0ZSBkeW5hbWljYWxseSB1c2luZyBEeW5hbWljQ2VydHMKLSsg ICAgICAgIDMuIFJldHJpZXZlIGNlcnRpZmljYXRlIG9iamVjdCBhbmQgdmVyaWZ5IGFsbCBtZXRh ZGF0YSBhdHRyaWJ1dGVzCi0rICAgICAgICA0LiBWZXJpZnkgc3ViamVjdCBETiBpcyBjb3JyZWN0 Ci0rICAgICAgICA1LiBWZXJpZnkgaXNzdWVyIEROIGlzIGNvcnJlY3QKLSsgICAgICAgIDYuIFZl cmlmeSBpc0NBIGZsYWcgaXMgVFJVRQotKyAgICAgICAgNy4gVmVyaWZ5IGlzUm9vdENBIGZsYWcg aXMgVFJVRQotKyAgICAgICAgOC4gVmVyaWZ5IGtleSBhbGdvcml0aG0gaXMgUlNBCi0rICAgICAg ICA5LiBWZXJpZnkgdHJ1c3QgZmxhZ3MgYXJlIHByZXNlbnQKLSsgICAgICAgIDEwLiBWZXJpZnkg dmFsaWRpdHkgZGF0ZXMgKG5vdEJlZm9yZSwgbm90QWZ0ZXIpCi0rICAgICAgICAxMS4gVmVyaWZ5 IHNlcmlhbCBudW1iZXIgaXMgcHJlc2VudAotKyAgICA6ZXhwZWN0ZWRyZXN1bHRzOgotKyAgICAg ICAgMS4gQ2VydGlmaWNhdGUgZ2VuZXJhdGVkIHN1Y2Nlc3NmdWxseQotKyAgICAgICAgMi4gQ2Vy dGlmaWNhdGUgYWRkZWQgd2l0aG91dCBlcnJvcgotKyAgICAgICAgMy4gQ2VydGlmaWNhdGUgb2Jq ZWN0IHJldHJpZXZlZAotKyAgICAgICAgNC4gU3ViamVjdCBtYXRjaGVzIGV4cGVjdGVkIEROCi0r ICAgICAgICA1LiBJc3N1ZXIgbWF0Y2hlcyBzdWJqZWN0IChzZWxmLXNpZ25lZCkKLSsgICAgICAg IDYuIGlzQ0EgaXMgVFJVRQotKyAgICAgICAgNy4gaXNSb290Q0EgaXMgVFJVRQotKyAgICAgICAg OC4gS2V5IGFsZ29yaXRobSBpcyBSU0EKLSsgICAgICAgIDkuIFRydXN0IGZsYWdzIGFyZSBwcmVz ZW50Ci0rICAgICAgICAxMC4gVmFsaWRpdHkgZGF0ZXMgYXJlIHdpdGhpbiBleHBlY3RlZCByYW5n ZQotKyAgICAgICAgMTEuIFNlcmlhbCBudW1iZXIgaXMgcHJlc2VudCBhbmQgbm9uLWVtcHR5Ci0r ICAgICIiIgotKyAgICBpbnN0ID0gc2V0dXBfdGxzCi0rICAgIGRpciA9ICcvdG1wL2R5bmNlcnRf bWV0YWRhdGFfdGVzdCcKLSsgICAgb3MubWFrZWRpcnMoZGlyLCAwbzcwMCwgZXhpc3Rfb2s9VHJ1 ZSkKLSsKLSsgICAgdHJ5OgotKyAgICAgICAgIyBHZW5lcmF0ZSBSU0EgUm9vdCBDQQotKyAgICAg ICAgY2EgPSBSU0FfQ2VydGlmaWNhdGUuZ2VuZXJhdGVSb290Q0EoCi0rICAgICAgICAgICAgIlRl c3RNZXRhZGF0YUNBIiwKLSsgICAgICAgICAgICBuYW1pbmdBdHRyaWJ1dGVzPXsKLSsgICAgICAg ICAgICAgICAgTmFtZU9JRC5DT01NT05fTkFNRTogIlRlc3QgTWV0YWRhdGEgQ0EiLAotKyAgICAg ICAgICAgICAgICBOYW1lT0lELkNPVU5UUllfTkFNRTogIlVTIiwKLSsgICAgICAgICAgICAgICAg TmFtZU9JRC5PUkdBTklaQVRJT05fTkFNRTogIlRlc3QgT3JnIiwKLSsgICAgICAgICAgICAgICAg TmFtZU9JRC5PUkdBTklaQVRJT05BTF9VTklUX05BTUU6ICJUZXN0aW5nIFVuaXQiCi0rICAgICAg ICAgICAgfQotKyAgICAgICAgKQotKyAgICAgICAgY2Euc2F2ZShkaXIpCi0rCi0rICAgICAgICAj IEFkZCBjZXJ0aWZpY2F0ZSB1c2luZyBEeW5hbWljQ2VydHMKLSsgICAgICAgIGR5bmNlcnRzID0g RHluYW1pY0NlcnRzKGluc3QpCi0rICAgICAgICBkeW5jZXJ0cy5hZGRfY2VydChjYS5wZW0sIGNh Lm5pY2tuYW1lLCBjYT1UcnVlKQotKwotKyAgICAgICAgIyBHZXQgY2VydGlmaWNhdGUgb2JqZWN0 Ci0rICAgICAgICBjZXJ0X29iaiA9IGR5bmNlcnRzLmdldF9jZXJ0X29iaihjYS5uaWNrbmFtZSkK LSsgICAgICAgIGFzc2VydCBjZXJ0X29iaiBpcyBub3QgTm9uZQotKwotKyAgICAgICAgIyBWZXJp Znkgc3ViamVjdCBhbmQgaXNzdWVyCi0rICAgICAgICBzdWJqZWN0ID0gY2VydF9vYmouZ2V0X2F0 dHJfdmFsX3V0ZjhfbCgnZHNEeW5hbWljQ2VydGlmaWNhdGVTdWJqZWN0JykKLSsgICAgICAgIGlz c3VlciA9IGNlcnRfb2JqLmdldF9hdHRyX3ZhbF91dGY4X2woJ2RzRHluYW1pY0NlcnRpZmljYXRl SXNzdWVyJykKLSsgICAgICAgIGxvZy5pbmZvKGYiU3ViamVjdDoge3N1YmplY3R9IikKLSsgICAg ICAgIGxvZy5pbmZvKGYiSXNzdWVyOiB7aXNzdWVyfSIpCi0rICAgICAgICBhc3NlcnQgIlRlc3Qg TWV0YWRhdGEgQ0EiLmxvd2VyKCkgaW4gc3ViamVjdAotKyAgICAgICAgYXNzZXJ0IHN1YmplY3Qg PT0gaXNzdWVyICAjIFNlbGYtc2lnbmVkCi0rCi0rICAgICAgICAjIFZlcmlmeSBDQSBmbGFncwot KyAgICAgICAgaXNfY2EgPSBjZXJ0X29iai5nZXRfYXR0cl92YWxfdXRmOF9sKCdkc0R5bmFtaWND ZXJ0aWZpY2F0ZUlzQ0EnKQotKyAgICAgICAgaXNfcm9vdF9jYSA9IGNlcnRfb2JqLmdldF9hdHRy X3ZhbF91dGY4X2woJ2RzRHluYW1pY0NlcnRpZmljYXRlSXNSb290Q0EnKQotKyAgICAgICAgbG9n LmluZm8oZiJpc0NBOiB7aXNfY2F9IikKLSsgICAgICAgIGxvZy5pbmZvKGYiaXNSb290Q0E6IHtp c19yb290X2NhfSIpCi0rICAgICAgICBhc3NlcnQgaXNfY2EgPT0gJ3RydWUnCi0rICAgICAgICBh c3NlcnQgaXNfcm9vdF9jYSA9PSAndHJ1ZScKLSsKLSsgICAgICAgICMgVmVyaWZ5IGtleSBhbGdv cml0aG0KLSsgICAgICAgIGtleV9hbGdvID0gY2VydF9vYmouZ2V0X2F0dHJfdmFsX3V0ZjgoJ2Rz RHluYW1pY0NlcnRpZmljYXRlS2V5QWxnb3JpdGhtJykKLSsgICAgICAgIGxvZy5pbmZvKGYiS2V5 IEFsZ29yaXRobToge2tleV9hbGdvfSIpCi0rICAgICAgICBhc3NlcnQgJ1JTQScgaW4ga2V5X2Fs Z28udXBwZXIoKQotKwotKyAgICAgICAgIyBWZXJpZnkgdHJ1c3QgZmxhZ3MKLSsgICAgICAgIHRy dXN0X2ZsYWdzID0gY2VydF9vYmouZ2V0X2F0dHJfdmFsX3V0ZjgoJ2RzRHluYW1pY0NlcnRpZmlj YXRlVHJ1c3RGbGFncycpCi0rICAgICAgICBsb2cuaW5mbyhmIlRydXN0IEZsYWdzOiB7dHJ1c3Rf ZmxhZ3N9IikKLSsgICAgICAgIGFzc2VydCB0cnVzdF9mbGFncyBpcyBub3QgTm9uZQotKwotKyAg ICAgICAgIyBWZXJpZnkgdmFsaWRpdHkgZGF0ZXMKLSsgICAgICAgIG5vdF9iZWZvcmUgPSBjZXJ0 X29iai5nZXRfYXR0cl92YWxfdXRmOCgnZHNEeW5hbWljQ2VydGlmaWNhdGVOb3RCZWZvcmUnKQot KyAgICAgICAgbm90X2FmdGVyID0gY2VydF9vYmouZ2V0X2F0dHJfdmFsX3V0ZjgoJ2RzRHluYW1p Y0NlcnRpZmljYXRlTm90QWZ0ZXInKQotKyAgICAgICAgbG9nLmluZm8oZiJOb3QgQmVmb3JlOiB7 bm90X2JlZm9yZX0iKQotKyAgICAgICAgbG9nLmluZm8oZiJOb3QgQWZ0ZXI6IHtub3RfYWZ0ZXJ9 IikKLSsgICAgICAgIGFzc2VydCBub3RfYmVmb3JlIGlzIG5vdCBOb25lCi0rICAgICAgICBhc3Nl cnQgbm90X2FmdGVyIGlzIG5vdCBOb25lCi0rCi0rICAgICAgICAjIFZlcmlmeSBzZXJpYWwgbnVt YmVyCi0rICAgICAgICBzZXJpYWwgPSBjZXJ0X29iai5nZXRfYXR0cl92YWxfdXRmOCgnZHNEeW5h bWljQ2VydGlmaWNhdGVTZXJpYWxOdW1iZXInKQotKyAgICAgICAgbG9nLmluZm8oZiJTZXJpYWwg TnVtYmVyOiB7c2VyaWFsfSIpCi0rICAgICAgICBhc3NlcnQgc2VyaWFsIGlzIG5vdCBOb25lCi0r ICAgICAgICBhc3NlcnQgbGVuKHNlcmlhbCkgPiAwCi0rCi0rICAgICAgICAjIENsZWFudXAKLSsg ICAgICAgIGR5bmNlcnRzLmRlbF9jZXJ0KGNhLm5pY2tuYW1lKQotKwotKyAgICBmaW5hbGx5Ogot KyAgICAgICAgaWYgbm90IERFQlVHR0lORzoKLSsgICAgICAgICAgICBzaHV0aWwucm10cmVlKGRp ciwgaWdub3JlX2Vycm9ycz1UcnVlKQotKwotKwotK2RlZiB0ZXN0X3N1YmplY3RfYWx0ZXJuYXRp dmVfbmFtZXModG9wbywgc2V0dXBfdGxzKToKLSsgICAgIiIiVGVzdCB0aGF0IFN1YmplY3QgQWx0 ZXJuYXRpdmUgTmFtZXMgYXJlIGNvcnJlY3RseSBwYXJzZWQgYW5kIGRpc3BsYXllZAotKwotKyAg ICA6aWQ6IGIyYzNkNGU1LTIyMjItMzMzMy00NDQ0LTU1NTU1NTU1NTU1NQotKyAgICA6c2V0dXA6 IFN0YW5kYWxvbmUgSW5zdGFuY2Ugd2l0aCBUTFMgZW5hYmxlZAotKyAgICA6c3RlcHM6Ci0rICAg ICAgICAxLiBHZW5lcmF0ZSBzZXJ2ZXIgY2VydGlmaWNhdGUgd2l0aCBtdWx0aXBsZSBTQU5zIChE TlMgYW5kIElQKQotKyAgICAgICAgMi4gQWRkIGNlcnRpZmljYXRlIGR5bmFtaWNhbGx5IHVzaW5n IER5bmFtaWNDZXJ0cwotKyAgICAgICAgMy4gUmV0cmlldmUgY2VydGlmaWNhdGUgb2JqZWN0Ci0r ICAgICAgICA0LiBWZXJpZnkgZHNEeW5hbWljQ2VydGlmaWNhdGVTdWJqZWN0QWx0TmFtZSBhdHRy aWJ1dGUgZXhpc3RzCi0rICAgICAgICA1LiBWZXJpZnkgYWxsIEROUyBuYW1lcyBhcmUgcHJlc2Vu dAotKyAgICAgICAgNi4gVmVyaWZ5IGFsbCBJUCBhZGRyZXNzZXMgYXJlIHByZXNlbnQKLSsgICAg OmV4cGVjdGVkcmVzdWx0czoKLSsgICAgICAgIDEuIENlcnRpZmljYXRlIGdlbmVyYXRlZCB3aXRo IFNBTnMKLSsgICAgICAgIDIuIENlcnRpZmljYXRlIGFkZGVkIHN1Y2Nlc3NmdWxseQotKyAgICAg ICAgMy4gQ2VydGlmaWNhdGUgb2JqZWN0IHJldHJpZXZlZAotKyAgICAgICAgNC4gU3ViamVjdEFs dE5hbWUgYXR0cmlidXRlIGV4aXN0cwotKyAgICAgICAgNS4gRE5TIG5hbWVzIGFyZSBjb3JyZWN0 bHkgcGFyc2VkCi0rICAgICAgICA2LiBJUCBhZGRyZXNzZXMgYXJlIGNvcnJlY3RseSBwYXJzZWQK LSsgICAgIiIiCi0rICAgIGluc3QgPSBzZXR1cF90bHMKLSsgICAgZGlyID0gJy90bXAvZHluY2Vy dF9zYW5fdGVzdCcKLSsgICAgb3MubWFrZWRpcnMoZGlyLCAwbzcwMCwgZXhpc3Rfb2s9VHJ1ZSkK LSsKLSsgICAgdHJ5OgotKyAgICAgICAgY2EgPSBSU0FfQ2VydGlmaWNhdGUuZ2VuZXJhdGVSb290 Q0EoIlRlc3RTQU5fQ0EiKQotKyAgICAgICAgY2Euc2F2ZShkaXIpCi0rCi0rICAgICAgICAjIEFk ZCBDQSBmaXJzdAotKyAgICAgICAgZHluY2VydHMgPSBEeW5hbWljQ2VydHMoaW5zdCkKLSsgICAg ICAgIGR5bmNlcnRzLmFkZF9jZXJ0KGNhLnBlbSwgY2Eubmlja25hbWUsIGNhPVRydWUpCi0rCi0r ICAgICAgICAjIEdlbmVyYXRlIGNlcnRpZmljYXRlIHdpdGggc3BlY2lmaWMgaG9zdG5hbWUKLSsg ICAgICAgIGNlcnQgPSBjYS5nZW5lcmF0ZUNlcnRpZmljYXRlKCJUZXN0U0FOX0NlcnQiLCBob3N0 bmFtZT0idGVzdC5leGFtcGxlLmNvbSIpCi0rICAgICAgICBjZXJ0LnNhdmUoZGlyKQotKwotKyAg ICAgICAgIyBBZGQgc2VydmVyIGNlcnRpZmljYXRlIHdpdGggcHJpdmF0ZSBrZXkKLSsgICAgICAg IGR5bmNlcnRzLmFkZF9jZXJ0KGNlcnQucDEyLCBjZXJ0Lm5pY2tuYW1lLCBwa2NzMTJfcGFzc3dv cmQ9UlNBX0NlcnRpZmljYXRlLlBLQ1MxMl9QQVNTV09SRCkKLSsKLSsgICAgICAgICMgR2V0IGNl cnRpZmljYXRlIG9iamVjdAotKyAgICAgICAgY2VydF9vYmogPSBkeW5jZXJ0cy5nZXRfY2VydF9v YmooY2VydC5uaWNrbmFtZSkKLSsgICAgICAgIGFzc2VydCBjZXJ0X29iaiBpcyBub3QgTm9uZQot KwotKyAgICAgICAgIyBWZXJpZnkgU0FOcwotKyAgICAgICAgc2FuX3ZhbHVlcyA9IGNlcnRfb2Jq LmdldF9hdHRyX3ZhbHNfdXRmOCgnZHNEeW5hbWljQ2VydGlmaWNhdGVTdWJqZWN0QWx0TmFtZScp Ci0rICAgICAgICBsb2cuaW5mbyhmIlN1YmplY3QgQWx0ZXJuYXRpdmUgTmFtZXM6IHtzYW5fdmFs dWVzfSIpCi0rICAgICAgICBhc3NlcnQgc2FuX3ZhbHVlcyBpcyBub3QgTm9uZQotKwotKyAgICAg ICAgIyBWZXJpZnkgZXhwZWN0ZWQgU0FOcyBhcmUgcHJlc2VudAotKyAgICAgICAgc2FuX3N0ciA9 ICcgJy5qb2luKHNhbl92YWx1ZXMpCi0rICAgICAgICBhc3NlcnQgJ3Rlc3QuZXhhbXBsZS5jb20n IGluIHNhbl9zdHIgb3IgJ2xvY2FsaG9zdCcgaW4gc2FuX3N0cgotKyAgICAgICAgYXNzZXJ0ICcx MjcuMC4wLjEnIGluIHNhbl9zdHIgb3IgJzo6MScgaW4gc2FuX3N0cgotKwotKyAgICAgICAgIyBD bGVhbnVwCi0rICAgICAgICBkeW5jZXJ0cy5kZWxfY2VydChjYS5uaWNrbmFtZSkKLSsgICAgICAg IGR5bmNlcnRzLmRlbF9jZXJ0KGNlcnQubmlja25hbWUpCi0rCi0rICAgIGZpbmFsbHk6Ci0rICAg ICAgICBpZiBub3QgREVCVUdHSU5HOgotKyAgICAgICAgICAgIHNodXRpbC5ybXRyZWUoZGlyLCBp Z25vcmVfZXJyb3JzPVRydWUpCi0rCi0rCi0rZGVmIHRlc3RfcHJpdmF0ZV9rZXlfZGV0ZWN0aW9u KHRvcG8sIHNldHVwX3Rscyk6Ci0rICAgICIiIlRlc3QgZGV0ZWN0aW9uIG9mIGNlcnRpZmljYXRl cyB3aXRoIGFuZCB3aXRob3V0IHByaXZhdGUga2V5cwotKwotKyAgICA6aWQ6IGMzZDRlNWY2LTMz MzMtNDQ0NC01NTU1LTY2NjY2NjY2NjY2NgotKyAgICA6c2V0dXA6IFN0YW5kYWxvbmUgSW5zdGFu Y2Ugd2l0aCBUTFMgZW5hYmxlZAotKyAgICA6c3RlcHM6Ci0rICAgICAgICAxLiBBZGQgQ0EgY2Vy dGlmaWNhdGUgd2l0aG91dCBwcml2YXRlIGtleQotKyAgICAgICAgMi4gR2V0IGNlcnRpZmljYXRl IG9iamVjdCBhbmQgdmVyaWZ5IGhhc1ByaXZhdGVLZXkgaXMgRkFMU0UKLSsgICAgICAgIDMuIEFk ZCBzZXJ2ZXIgY2VydGlmaWNhdGUgd2l0aCBwcml2YXRlIGtleQotKyAgICAgICAgNC4gR2V0IGNl cnRpZmljYXRlIG9iamVjdCBhbmQgdmVyaWZ5IGhhc1ByaXZhdGVLZXkgaXMgVFJVRQotKyAgICAg ICAgNS4gVmVyaWZ5IGlzU2VydmVyQ2VydCBpcyBUUlVFIGZvciBzZXJ2ZXIgY2VydAotKyAgICAg ICAgNi4gVmVyaWZ5IGlzU2VydmVyQ2VydCBpcyBGQUxTRSBmb3IgQ0EgY2VydAotKyAgICA6ZXhw ZWN0ZWRyZXN1bHRzOgotKyAgICAgICAgMS4gQ0EgYWRkZWQgc3VjY2Vzc2Z1bGx5Ci0rICAgICAg ICAyLiBoYXNQcml2YXRlS2V5IGlzIEZBTFNFCi0rICAgICAgICAzLiBTZXJ2ZXIgY2VydCBhZGRl ZCBzdWNjZXNzZnVsbHkKLSsgICAgICAgIDQuIGhhc1ByaXZhdGVLZXkgaXMgVFJVRQotKyAgICAg ICAgNS4gU2VydmVyIGNlcnQgcHJvcGVybHkgaWRlbnRpZmllZAotKyAgICAgICAgNi4gQ0EgY2Vy dCBub3QgaWRlbnRpZmllZCBhcyBzZXJ2ZXIgY2VydAotKyAgICAiIiIKLSsgICAgaW5zdCA9IHNl dHVwX3RscwotKyAgICBkaXIgPSAnL3RtcC9keW5jZXJ0X3ByaXZrZXlfdGVzdCcKLSsgICAgb3Mu bWFrZWRpcnMoZGlyLCAwbzcwMCwgZXhpc3Rfb2s9VHJ1ZSkKLSsKLSsgICAgdHJ5OgotKyAgICAg ICAgY2EgPSBSU0FfQ2VydGlmaWNhdGUuZ2VuZXJhdGVSb290Q0EoIlRlc3RQcml2S2V5X0NBIikK LSsgICAgICAgIGNhLnNhdmUoZGlyKQotKyAgICAgICAgY2VydCA9IGNhLmdlbmVyYXRlQ2VydGlm aWNhdGUoIlRlc3RQcml2S2V5X0NlcnQiKQotKyAgICAgICAgY2VydC5zYXZlKGRpcikKLSsKLSsg ICAgICAgIGR5bmNlcnRzID0gRHluYW1pY0NlcnRzKGluc3QpCi0rCi0rICAgICAgICAjIEFkZCBD QSB3aXRob3V0IHByaXZhdGUga2V5IChQRU0gaGFzIG5vIGtleSkKLSsgICAgICAgIGR5bmNlcnRz LmFkZF9jZXJ0KGNhLnBlbSwgY2Eubmlja25hbWUsIGNhPVRydWUpCi0rCi0rICAgICAgICAjIFZl cmlmeSBDQSBoYXMgbm8gcHJpdmF0ZSBrZXkKLSsgICAgICAgIGNhX29iaiA9IGR5bmNlcnRzLmdl dF9jZXJ0X29iaihjYS5uaWNrbmFtZSkKLSsgICAgICAgIGhhc19rZXkgPSBjYV9vYmouZ2V0X2F0 dHJfdmFsX3V0ZjhfbCgnZHNEeW5hbWljQ2VydGlmaWNhdGVIYXNQcml2YXRlS2V5JykKLSsgICAg ICAgIGxvZy5pbmZvKGYiQ0EgaGFzUHJpdmF0ZUtleToge2hhc19rZXl9IikKLSsgICAgICAgIGFz c2VydCBoYXNfa2V5ID09ICdmYWxzZScKLSsKLSsgICAgICAgICMgVmVyaWZ5IGl0J3MgaWRlbnRp ZmllZCBhcyBDQQotKyAgICAgICAgaXNfY2EgPSBjYV9vYmouZ2V0X2F0dHJfdmFsX3V0ZjhfbCgn ZHNEeW5hbWljQ2VydGlmaWNhdGVJc0NBJykKLSsgICAgICAgIGFzc2VydCBpc19jYSA9PSAndHJ1 ZScKLSsKLSsgICAgICAgICMgQWRkIHNlcnZlciBjZXJ0IHdpdGggcHJpdmF0ZSBrZXkgKFBLQ1Mx MiBoYXMga2V5KQotKyAgICAgICAgZHluY2VydHMuYWRkX2NlcnQoY2VydC5wMTIsIGNlcnQubmlj a25hbWUsIHBrY3MxMl9wYXNzd29yZD1SU0FfQ2VydGlmaWNhdGUuUEtDUzEyX1BBU1NXT1JEKQot KwotKyAgICAgICAgIyBWZXJpZnkgc2VydmVyIGNlcnQgaGFzIHByaXZhdGUga2V5Ci0rICAgICAg ICBjZXJ0X29iaiA9IGR5bmNlcnRzLmdldF9jZXJ0X29iaihjZXJ0Lm5pY2tuYW1lKQotKyAgICAg ICAgaGFzX2tleSA9IGNlcnRfb2JqLmdldF9hdHRyX3ZhbF91dGY4X2woJ2RzRHluYW1pY0NlcnRp ZmljYXRlSGFzUHJpdmF0ZUtleScpCi0rICAgICAgICBsb2cuaW5mbyhmIlNlcnZlciBjZXJ0IGhh c1ByaXZhdGVLZXk6IHtoYXNfa2V5fSIpCi0rICAgICAgICBhc3NlcnQgaGFzX2tleSA9PSAndHJ1 ZScKLSsKLSsgICAgICAgICMgQ2hlY2sgaWYgaXNTZXJ2ZXJDZXJ0IGF0dHJpYnV0ZSBleGlzdHMK LSsgICAgICAgIGlzX3NlcnZlciA9IGNlcnRfb2JqLmdldF9hdHRyX3ZhbF91dGY4X2woJ2RzRHlu YW1pY0NlcnRpZmljYXRlSXNTZXJ2ZXJDZXJ0JykKLSsgICAgICAgIGlmIGlzX3NlcnZlcjoKLSsg ICAgICAgICAgICBsb2cuaW5mbyhmImlzU2VydmVyQ2VydDoge2lzX3NlcnZlcn0iKQotKwotKyAg ICAgICAgIyBDbGVhbnVwCi0rICAgICAgICBkeW5jZXJ0cy5kZWxfY2VydChjYS5uaWNrbmFtZSkK LSsgICAgICAgIGR5bmNlcnRzLmRlbF9jZXJ0KGNlcnQubmlja25hbWUpCi0rCi0rICAgIGZpbmFs bHk6Ci0rICAgICAgICBpZiBub3QgREVCVUdHSU5HOgotKyAgICAgICAgICAgIHNodXRpbC5ybXRy ZWUoZGlyLCBpZ25vcmVfZXJyb3JzPVRydWUpCi0rCi0rCi0rZGVmIHRlc3RfdHJ1c3RfZmxhZ3Nf bW9kaWZpY2F0aW9uKHRvcG8sIHNldHVwX3Rscyk6Ci0rICAgICIiIlRlc3QgbW9kaWZpY2F0aW9u IG9mIGNlcnRpZmljYXRlIHRydXN0IGZsYWdzCi0rCi0rICAgIDppZDogZDRlNWY2YTctNDQ0NC01 NTU1LTY2NjYtNzc3Nzc3Nzc3Nzc3Ci0rICAgIDpzZXR1cDogU3RhbmRhbG9uZSBJbnN0YW5jZSB3 aXRoIFRMUyBlbmFibGVkCi0rICAgIDpzdGVwczoKLSsgICAgICAgIDEuIEFkZCBDQSBjZXJ0aWZp Y2F0ZSB3aXRoIGRlZmF1bHQgdHJ1c3QgZmxhZ3MKLSsgICAgICAgIDIuIFJlYWQgaW5pdGlhbCB0 cnVzdCBmbGFncwotKyAgICAgICAgMy4gTW9kaWZ5IHRydXN0IGZsYWdzIHRvIGRpZmZlcmVudCB2 YWx1ZXMgdXNpbmcgZWRpdF9jZXJ0X3RydXN0Ci0rICAgICAgICA0LiBSZXRyaWV2ZSBjZXJ0aWZp Y2F0ZSBhbmQgdmVyaWZ5IHRydXN0IGZsYWdzIGNoYW5nZWQKLSsgICAgICAgIDUuIE1vZGlmeSB0 cnVzdCBmbGFncyBiYWNrCi0rICAgICAgICA2LiBWZXJpZnkgdHJ1c3QgZmxhZ3MgY2hhbmdlZCBh Z2FpbgotKyAgICA6ZXhwZWN0ZWRyZXN1bHRzOgotKyAgICAgICAgMS4gQ2VydGlmaWNhdGUgYWRk ZWQgc3VjY2Vzc2Z1bGx5Ci0rICAgICAgICAyLiBJbml0aWFsIHRydXN0IGZsYWdzIHByZXNlbnQK LSsgICAgICAgIDMuIE1vZGlmaWNhdGlvbiBzdWNjZWVkcwotKyAgICAgICAgNC4gVHJ1c3QgZmxh Z3MgbWF0Y2ggbmV3IHZhbHVlCi0rICAgICAgICA1LiBTZWNvbmQgbW9kaWZpY2F0aW9uIHN1Y2Nl ZWRzCi0rICAgICAgICA2LiBUcnVzdCBmbGFncyBtYXRjaCB1cGRhdGVkIHZhbHVlCi0rICAgICIi IgotKyAgICBpbnN0ID0gc2V0dXBfdGxzCi0rICAgIGRpciA9ICcvdG1wL2R5bmNlcnRfdHJ1c3Rf dGVzdCcKLSsgICAgb3MubWFrZWRpcnMoZGlyLCAwbzcwMCwgZXhpc3Rfb2s9VHJ1ZSkKLSsKLSsg ICAgdHJ5OgotKyAgICAgICAgY2EgPSBSU0FfQ2VydGlmaWNhdGUuZ2VuZXJhdGVSb290Q0EoIlRl c3RUcnVzdF9DQSIpCi0rICAgICAgICBjYS5zYXZlKGRpcikKLSsKLSsgICAgICAgIGR5bmNlcnRz ID0gRHluYW1pY0NlcnRzKGluc3QpCi0rICAgICAgICBkeW5jZXJ0cy5hZGRfY2VydChjYS5wZW0s IGNhLm5pY2tuYW1lLCBjYT1UcnVlKQotKwotKyAgICAgICAgIyBSZWFkIGluaXRpYWwgdHJ1c3Qg ZmxhZ3MKLSsgICAgICAgIGNhX29iaiA9IGR5bmNlcnRzLmdldF9jZXJ0X29iaihjYS5uaWNrbmFt ZSkKLSsgICAgICAgIGluaXRpYWxfdHJ1c3QgPSBjYV9vYmouZ2V0X2F0dHJfdmFsX3V0ZjgoJ2Rz RHluYW1pY0NlcnRpZmljYXRlVHJ1c3RGbGFncycpCi0rICAgICAgICBsb2cuaW5mbyhmIkluaXRp YWwgdHJ1c3QgZmxhZ3M6IHtpbml0aWFsX3RydXN0fSIpCi0rCi0rICAgICAgICAjIE1vZGlmeSB0 cnVzdCBmbGFncwotKyAgICAgICAgbmV3X3RydXN0ID0gIkNULEMsQyIKLSsgICAgICAgIGR5bmNl cnRzLmVkaXRfY2VydF90cnVzdChjYS5uaWNrbmFtZSwgbmV3X3RydXN0KQotKwotKyAgICAgICAg IyBWZXJpZnkgbW9kaWZpY2F0aW9uCi0rICAgICAgICBjYV9vYmogPSBkeW5jZXJ0cy5nZXRfY2Vy dF9vYmooY2Eubmlja25hbWUpCi0rICAgICAgICB1cGRhdGVkX3RydXN0ID0gY2Ffb2JqLmdldF9h dHRyX3ZhbF91dGY4KCdkc0R5bmFtaWNDZXJ0aWZpY2F0ZVRydXN0RmxhZ3MnKQotKyAgICAgICAg bG9nLmluZm8oZiJVcGRhdGVkIHRydXN0IGZsYWdzOiB7dXBkYXRlZF90cnVzdH0iKQotKyAgICAg ICAgYXNzZXJ0IG5ld190cnVzdCBpbiB1cGRhdGVkX3RydXN0IG9yIHVwZGF0ZWRfdHJ1c3QgaW4g bmV3X3RydXN0Ci0rCi0rICAgICAgICAjIENsZWFudXAKLSsgICAgICAgIGR5bmNlcnRzLmRlbF9j ZXJ0KGNhLm5pY2tuYW1lKQotKwotKyAgICBmaW5hbGx5OgotKyAgICAgICAgaWYgbm90IERFQlVH R0lORzoKLSsgICAgICAgICAgICBzaHV0aWwucm10cmVlKGRpciwgaWdub3JlX2Vycm9ycz1UcnVl KQotKwotKwotK2RlZiB0ZXN0X2NlcnRpZmljYXRlX3JlcGxhY2Vfb3BlcmF0aW9uKHRvcG8sIHNl dHVwX3Rscyk6Ci0rICAgICIiIlRlc3QgcmVwbGFjaW5nIGV4aXN0aW5nIGNlcnRpZmljYXRlIHVz aW5nIGFkZF9jZXJ0IG9wZXJhdGlvbgotKwotKyAgICA6aWQ6IGU1ZjZhN2I4LTU1NTUtNjY2Ni03 Nzc3LTg4ODg4ODg4ODg4OAotKyAgICA6c2V0dXA6IFN0YW5kYWxvbmUgSW5zdGFuY2Ugd2l0aCBU TFMgZW5hYmxlZAotKyAgICA6c3RlcHM6Ci0rICAgICAgICAxLiBBZGQgaW5pdGlhbCBjZXJ0aWZp Y2F0ZQotKyAgICAgICAgMi4gVmVyaWZ5IGNlcnRpZmljYXRlIGlzIHByZXNlbnQKLSsgICAgICAg IDMuIEdlbmVyYXRlIG5ldyBjZXJ0aWZpY2F0ZSB3aXRoIHNhbWUgbmlja25hbWUKLSsgICAgICAg IDQuIFJlcGxhY2UgY2VydGlmaWNhdGUgdXNpbmcgYWRkX2NlcnQgKGl0IGRldGVjdHMgZXhpc3Rp bmcgYW5kIHVwZGF0ZXMpCi0rICAgICAgICA1LiBSZXRyaWV2ZSBjZXJ0aWZpY2F0ZSBhbmQgdmVy aWZ5IGl0IHdhcyByZXBsYWNlZAotKyAgICAgICAgNi4gVmVyaWZ5IHNlcmlhbCBudW1iZXIgY2hh bmdlZAotKyAgICA6ZXhwZWN0ZWRyZXN1bHRzOgotKyAgICAgICAgMS4gSW5pdGlhbCBjZXJ0aWZp Y2F0ZSBhZGRlZAotKyAgICAgICAgMi4gQ2VydGlmaWNhdGUgZm91bmQKLSsgICAgICAgIDMuIE5l dyBjZXJ0aWZpY2F0ZSBnZW5lcmF0ZWQKLSsgICAgICAgIDQuIFJlcGxhY2Ugb3BlcmF0aW9uIHN1 Y2NlZWRzCi0rICAgICAgICA1LiBDZXJ0aWZpY2F0ZSBpcyBkaWZmZXJlbnQKLSsgICAgICAgIDYu IFNlcmlhbCBudW1iZXIgaXMgZGlmZmVyZW50Ci0rICAgICIiIgotKyAgICBpbnN0ID0gc2V0dXBf dGxzCi0rICAgIGRpciA9ICcvdG1wL2R5bmNlcnRfcmVwbGFjZV90ZXN0JwotKyAgICBvcy5tYWtl ZGlycyhkaXIsIDBvNzAwLCBleGlzdF9vaz1UcnVlKQotKwotKyAgICB0cnk6Ci0rICAgICAgICBj YSA9IFJTQV9DZXJ0aWZpY2F0ZS5nZW5lcmF0ZVJvb3RDQSgiVGVzdFJlcGxhY2VfQ0EiKQotKyAg ICAgICAgY2Euc2F2ZShkaXIpCi0rCi0rICAgICAgICBkeW5jZXJ0cyA9IER5bmFtaWNDZXJ0cyhp bnN0KQotKwotKyAgICAgICAgIyBBZGQgaW5pdGlhbCBjZXJ0aWZpY2F0ZQotKyAgICAgICAgZHlu Y2VydHMuYWRkX2NlcnQoY2EucGVtLCBjYS5uaWNrbmFtZSwgY2E9VHJ1ZSkKLSsKLSsgICAgICAg ICMgR2V0IGluaXRpYWwgc2VyaWFsIG51bWJlcgotKyAgICAgICAgY2Ffb2JqID0gZHluY2VydHMu Z2V0X2NlcnRfb2JqKGNhLm5pY2tuYW1lKQotKyAgICAgICAgc2VyaWFsMSA9IGNhX29iai5nZXRf YXR0cl92YWxfdXRmOCgnZHNEeW5hbWljQ2VydGlmaWNhdGVTZXJpYWxOdW1iZXInKQotKyAgICAg ICAgbG9nLmluZm8oZiJJbml0aWFsIHNlcmlhbDoge3NlcmlhbDF9IikKLSsKLSsgICAgICAgICMg R2VuZXJhdGUgbmV3IGNlcnRpZmljYXRlIHdpdGggc2FtZSBuaWNrbmFtZQotKyAgICAgICAgY2Ey ID0gUlNBX0NlcnRpZmljYXRlLmdlbmVyYXRlUm9vdENBKCJUZXN0UmVwbGFjZV9DQSIpICAjIFNh bWUgbmlja25hbWUsIGRpZmZlcmVudCBjZXJ0Ci0rICAgICAgICBvcy5tYWtlZGlycyhkaXIgKyAn L3JlcGxhY2VtZW50JywgMG83MDAsIGV4aXN0X29rPVRydWUpCi0rICAgICAgICBjYTIuc2F2ZShk aXIgKyAnL3JlcGxhY2VtZW50JykKLSsKLSsgICAgICAgICMgUmVwbGFjZSBjZXJ0aWZpY2F0ZSAo YWRkX2NlcnQgZGV0ZWN0cyBleGlzdGluZyBhbmQgdXBkYXRlcykKLSsgICAgICAgIGR5bmNlcnRz LmFkZF9jZXJ0KGNhMi5wZW0sIGNhMi5uaWNrbmFtZSwgY2E9VHJ1ZSkKLSsKLSsgICAgICAgICMg VmVyaWZ5IHJlcGxhY2VtZW50Ci0rICAgICAgICBjYV9vYmogPSBkeW5jZXJ0cy5nZXRfY2VydF9v YmooY2Eubmlja25hbWUpCi0rICAgICAgICBzZXJpYWwyID0gY2Ffb2JqLmdldF9hdHRyX3ZhbF91 dGY4KCdkc0R5bmFtaWNDZXJ0aWZpY2F0ZVNlcmlhbE51bWJlcicpCi0rICAgICAgICBsb2cuaW5m byhmIk5ldyBzZXJpYWw6IHtzZXJpYWwyfSIpCi0rICAgICAgICBhc3NlcnQgc2VyaWFsMSAhPSBz ZXJpYWwyCi0rCi0rICAgICAgICAjIENsZWFudXAKLSsgICAgICAgIGR5bmNlcnRzLmRlbF9jZXJ0 KGNhLm5pY2tuYW1lKQotKwotKyAgICBmaW5hbGx5OgotKyAgICAgICAgaWYgbm90IERFQlVHR0lO RzoKLSsgICAgICAgICAgICBzaHV0aWwucm10cmVlKGRpciwgaWdub3JlX2Vycm9ycz1UcnVlKQot KwotKwotK2RlZiB0ZXN0X3NlYXJjaF93aXRoX2ZpbHRlcnModG9wbywgc2V0dXBfdGxzKToKLSsg ICAgIiIiVGVzdCBzZWFyY2hpbmcgY2VydGlmaWNhdGVzIHdpdGggTERBUCBmaWx0ZXJzIHVzaW5n IER5bmFtaWNDZXJ0cy5saXN0KCkKLSsKLSsgICAgOmlkOiBmNmE3YjhjOS02NjY2LTc3NzctODg4 OC05OTk5OTk5OTk5OTkKLSsgICAgOnNldHVwOiBTdGFuZGFsb25lIEluc3RhbmNlIHdpdGggVExT IGVuYWJsZWQKLSsgICAgOnN0ZXBzOgotKyAgICAgICAgMS4gQWRkIG11bHRpcGxlIGNlcnRpZmlj YXRlcyAoQ0EgYW5kIHNlcnZlciBjZXJ0cykKLSsgICAgICAgIDIuIExpc3QgYWxsIGNlcnRpZmlj YXRlcyB1c2luZyBsaXN0KCkKLSsgICAgICAgIDMuIExpc3QgQ0EgY2VydGlmaWNhdGVzIHVzaW5n IGxpc3RfY2FfY2VydHMoKQotKyAgICAgICAgNC4gTGlzdCBzZXJ2ZXIgY2VydGlmaWNhdGVzIHVz aW5nIGxpc3RfY2VydHMoKQotKyAgICAgICAgNS4gVXNlIGdldF9jZXJ0X2RldGFpbHMgdG8gZ2V0 IHNwZWNpZmljIGNlcnRpZmljYXRlIGluZm8KLSsgICAgOmV4cGVjdGVkcmVzdWx0czoKLSsgICAg ICAgIDEuIEFsbCBjZXJ0aWZpY2F0ZXMgYWRkZWQgc3VjY2Vzc2Z1bGx5Ci0rICAgICAgICAyLiBs aXN0KCkgcmV0dXJucyBhbGwgY2VydGlmaWNhdGUgb2JqZWN0cwotKyAgICAgICAgMy4gbGlzdF9j YV9jZXJ0cygpIHJldHVybnMgb25seSBDQSBjZXJ0aWZpY2F0ZXMKLSsgICAgICAgIDQuIGxpc3Rf Y2VydHMoKSByZXR1cm5zIG9ubHkgc2VydmVyIGNlcnRpZmljYXRlcwotKyAgICAgICAgNS4gZ2V0 X2NlcnRfZGV0YWlscyByZXR1cm5zIGRldGFpbGVkIGluZm8KLSsgICAgIiIiCi0rICAgIGluc3Qg PSBzZXR1cF90bHMKLSsgICAgZml4X2NyYXNoX2lzc3VlXzcyMjcoaW5zdCkKLSsgICAgZGlyID0g Jy90bXAvZHluY2VydF9maWx0ZXJfdGVzdCcKLSsgICAgb3MubWFrZWRpcnMoZGlyLCAwbzcwMCwg ZXhpc3Rfb2s9VHJ1ZSkKLSsKLSsgICAgdHJ5OgotKyAgICAgICAgZHluY2VydHMgPSBEeW5hbWlj Q2VydHMoaW5zdCkKLSsKLSsgICAgICAgICMgQWRkIENBIGNlcnRpZmljYXRlCi0rICAgICAgICBj YSA9IFJTQV9DZXJ0aWZpY2F0ZS5nZW5lcmF0ZVJvb3RDQSgiVGVzdEZpbHRlcl9DQSIpCi0rICAg ICAgICBjYS5zYXZlKGRpcikKLSsgICAgICAgIGR5bmNlcnRzLmFkZF9jZXJ0KGNhLnBlbSwgY2Eu bmlja25hbWUsIGNhPVRydWUpCi0rCi0rICAgICAgICAjIEFkZCBzZXJ2ZXIgY2VydGlmaWNhdGUg d2l0aCBwcml2YXRlIGtleQotKyAgICAgICAgY2VydCA9IGNhLmdlbmVyYXRlQ2VydGlmaWNhdGUo IlRlc3RGaWx0ZXJfQ2VydCIpCi0rICAgICAgICBjZXJ0LnNhdmUoZGlyKQotKyAgICAgICAgZHlu Y2VydHMuYWRkX2NlcnQoY2VydC5wMTIsIGNlcnQubmlja25hbWUsIHBrY3MxMl9wYXNzd29yZD1S U0FfQ2VydGlmaWNhdGUuUEtDUzEyX1BBU1NXT1JEKQotKwotKyAgICAgICAgIyBMaXN0IGFsbCBj ZXJ0aWZpY2F0ZSBvYmplY3RzCi0rICAgICAgICBhbGxfY2VydHMgPSBkeW5jZXJ0cy5saXN0KCkK LSsgICAgICAgIGxvZy5pbmZvKGYiVG90YWwgY2VydGlmaWNhdGUgb2JqZWN0cyBmb3VuZDoge2xl bihhbGxfY2VydHMpfSIpCi0rICAgICAgICBhc3NlcnQgbGVuKGFsbF9jZXJ0cykgPj0gMgotKwot KyAgICAgICAgIyBMaXN0IENBIGNlcnRpZmljYXRlcyBvbmx5Ci0rICAgICAgICBjYV9jZXJ0cyA9 IGR5bmNlcnRzLmxpc3RfY2FfY2VydHMoKQotKyAgICAgICAgbG9nLmluZm8oZiJDQSBjZXJ0aWZp Y2F0ZXMgZm91bmQ6IHtsZW4oY2FfY2VydHMpfSIpCi0rICAgICAgICBhc3NlcnQgbGVuKGNhX2Nl cnRzKSA+PSAxCi0rICAgICAgICBhc3NlcnQgYW55KGNbJ2NuJ10gPT0gY2Eubmlja25hbWUgZm9y IGMgaW4gY2FfY2VydHMpCi0rCi0rICAgICAgICAjIExpc3Qgc2VydmVyIGNlcnRpZmljYXRlcyBv bmx5Ci0rICAgICAgICBzZXJ2ZXJfY2VydHMgPSBkeW5jZXJ0cy5saXN0X2NlcnRzKCkKLSsgICAg ICAgIGxvZy5pbmZvKGYiU2VydmVyIGNlcnRpZmljYXRlcyBmb3VuZDoge2xlbihzZXJ2ZXJfY2Vy dHMpfSIpCi0rICAgICAgICBhc3NlcnQgbGVuKHNlcnZlcl9jZXJ0cykgPj0gMQotKyAgICAgICAg YXNzZXJ0IGFueShjWydjbiddID09IGNlcnQubmlja25hbWUgZm9yIGMgaW4gc2VydmVyX2NlcnRz KQotKwotKyAgICAgICAgIyBHZXQgc3BlY2lmaWMgY2VydGlmaWNhdGUgZGV0YWlscwotKyAgICAg ICAgY2FfZGV0YWlscyA9IGR5bmNlcnRzLmdldF9jZXJ0X2RldGFpbHMoY2Eubmlja25hbWUpCi0r ICAgICAgICBhc3NlcnQgY2FfZGV0YWlscyBpcyBub3QgTm9uZQotKyAgICAgICAgYXNzZXJ0IGNh X2RldGFpbHNbJ2NuJ10gPT0gY2Eubmlja25hbWUKLSsgICAgICAgIGxvZy5pbmZvKGYiQ0EgZGV0 YWlsczoge2NhX2RldGFpbHN9IikKLSsKLSsgICAgICAgICMgQ2xlYW51cAotKyAgICAgICAgZHlu Y2VydHMuZGVsX2NlcnQoY2Eubmlja25hbWUpCi0rICAgICAgICBkeW5jZXJ0cy5kZWxfY2VydChj ZXJ0Lm5pY2tuYW1lKQotKwotKyAgICBmaW5hbGx5OgotKyAgICAgICAgaWYgbm90IERFQlVHR0lO RzoKLSsgICAgICAgICAgICBzaHV0aWwucm10cmVlKGRpciwgaWdub3JlX2Vycm9ycz1UcnVlKQot KwotKwotK2RlZiB0ZXN0X2JhdGNoX2NlcnRpZmljYXRlX29wZXJhdGlvbnModG9wbywgc2V0dXBf dGxzKToKLSsgICAgIiIiVGVzdCBhZGRpbmcgYW5kIG1hbmFnaW5nIG11bHRpcGxlIGNlcnRpZmlj YXRlcwotKwotKyAgICA6aWQ6IGE3YjhjOWQwLTc3NzctODg4OC05OTk5LTAwMDAwMDAwMDAwMAot KyAgICA6c2V0dXA6IFN0YW5kYWxvbmUgSW5zdGFuY2Ugd2l0aCBUTFMgZW5hYmxlZAotKyAgICA6 c3RlcHM6Ci0rICAgICAgICAxLiBHZW5lcmF0ZSA1IGRpZmZlcmVudCBjZXJ0aWZpY2F0ZXMKLSsg ICAgICAgIDIuIEFkZCBhbGwgY2VydGlmaWNhdGVzIHVzaW5nIER5bmFtaWNDZXJ0cwotKyAgICAg ICAgMy4gTGlzdCBhbGwgY2VydGlmaWNhdGVzCi0rICAgICAgICA0LiBWZXJpZnkgYWxsIGNlcnRp ZmljYXRlcyBhcmUgcHJlc2VudAotKyAgICAgICAgNS4gRGVsZXRlIGFsbCBjZXJ0aWZpY2F0ZXMK LSsgICAgICAgIDYuIFZlcmlmeSBhbGwgZGVsZXRpb25zIHN1Y2NlZWRlZAotKyAgICA6ZXhwZWN0 ZWRyZXN1bHRzOgotKyAgICAgICAgMS4gQWxsIGNlcnRpZmljYXRlcyBnZW5lcmF0ZWQKLSsgICAg ICAgIDIuIEFsbCBhZGRpdGlvbnMgc3VjY2VlZAotKyAgICAgICAgMy4gTGlzdCByZXR1cm5zIGFs bCBjZXJ0aWZpY2F0ZXMKLSsgICAgICAgIDQuIEFsbCBjZXJ0aWZpY2F0ZXMgaGF2ZSBjb3JyZWN0 IG1ldGFkYXRhCi0rICAgICAgICA1LiBBbGwgZGVsZXRpb25zIHN1Y2NlZWQKLSsgICAgICAgIDYu IE5vIGNlcnRpZmljYXRlcyByZW1haW4KLSsgICAgIiIiCi0rICAgIGluc3QgPSBzZXR1cF90bHMK LSsgICAgZGlyID0gJy90bXAvZHluY2VydF9iYXRjaF90ZXN0JwotKyAgICBvcy5tYWtlZGlycyhk aXIsIDBvNzAwLCBleGlzdF9vaz1UcnVlKQotKwotKyAgICBjZXJ0X2xpc3QgPSBbXQotKyAgICB0 cnk6Ci0rICAgICAgICBkeW5jZXJ0cyA9IER5bmFtaWNDZXJ0cyhpbnN0KQotKwotKyAgICAgICAg IyBHZW5lcmF0ZSBhbmQgYWRkIG11bHRpcGxlIGNlcnRpZmljYXRlcwotKyAgICAgICAgZm9yIGkg aW4gcmFuZ2UoNSk6Ci0rICAgICAgICAgICAgY2EgPSBSU0FfQ2VydGlmaWNhdGUuZ2VuZXJhdGVS b290Q0EoZiJUZXN0QmF0Y2hfQ0Ffe2l9IikKLSsgICAgICAgICAgICBjYS5zYXZlKGRpcikKLSsg ICAgICAgICAgICBjZXJ0X2xpc3QuYXBwZW5kKGNhKQotKwotKyAgICAgICAgICAgIGR5bmNlcnRz LmFkZF9jZXJ0KGNhLnBlbSwgY2Eubmlja25hbWUsIGNhPVRydWUpCi0rICAgICAgICAgICAgbG9n LmluZm8oZiJBZGRlZCBjZXJ0aWZpY2F0ZSB7aSsxfS81OiB7Y2Eubmlja25hbWV9IikKLSsKLSsg ICAgICAgICMgTGlzdCBhbGwgQ0EgY2VydGlmaWNhdGVzCi0rICAgICAgICBjYV9jZXJ0cyA9IGR5 bmNlcnRzLmxpc3RfY2FfY2VydHMoKQotKyAgICAgICAgYmF0Y2hfY2VydHMgPSBbYyBmb3IgYyBp biBjYV9jZXJ0cyBpZiBjWydjbiddLnN0YXJ0c3dpdGgoJ1Rlc3RCYXRjaF9DQV8nKV0KLSsgICAg ICAgIGxvZy5pbmZvKGYiRm91bmQge2xlbihiYXRjaF9jZXJ0cyl9IGJhdGNoIGNlcnRpZmljYXRl cyIpCi0rICAgICAgICBhc3NlcnQgbGVuKGJhdGNoX2NlcnRzKSA9PSA1Ci0rCi0rICAgICAgICAj IFZlcmlmeSBlYWNoIGNlcnRpZmljYXRlCi0rICAgICAgICBmb3IgY2EgaW4gY2VydF9saXN0Ogot KyAgICAgICAgICAgIGNlcnRfb2JqID0gZHluY2VydHMuZ2V0X2NlcnRfb2JqKGNhLm5pY2tuYW1l KQotKyAgICAgICAgICAgIGFzc2VydCBjZXJ0X29iaiBpcyBub3QgTm9uZQotKyAgICAgICAgICAg IHN1YmplY3QgPSBjZXJ0X29iai5nZXRfYXR0cl92YWxfdXRmOCgnZHNEeW5hbWljQ2VydGlmaWNh dGVTdWJqZWN0JykKLSsgICAgICAgICAgICBhc3NlcnQgc3ViamVjdCBpcyBub3QgTm9uZQotKyAg ICAgICAgICAgIGxvZy5pbmZvKGYiVmVyaWZpZWQgY2VydGlmaWNhdGU6IHtjYS5uaWNrbmFtZX0i KQotKwotKyAgICAgICAgIyBEZWxldGUgYWxsIGNlcnRpZmljYXRlcwotKyAgICAgICAgZm9yIGNh IGluIGNlcnRfbGlzdDoKLSsgICAgICAgICAgICBkeW5jZXJ0cy5kZWxfY2VydChjYS5uaWNrbmFt ZSkKLSsgICAgICAgICAgICBsb2cuaW5mbyhmIkRlbGV0ZWQgY2VydGlmaWNhdGU6IHtjYS5uaWNr bmFtZX0iKQotKwotKyAgICAgICAgIyBWZXJpZnkgZGVsZXRpb25zCi0rICAgICAgICBjYV9jZXJ0 c19hZnRlciA9IGR5bmNlcnRzLmxpc3RfY2FfY2VydHMoKQotKyAgICAgICAgYmF0Y2hfY2VydHNf YWZ0ZXIgPSBbYyBmb3IgYyBpbiBjYV9jZXJ0c19hZnRlciBpZiBjWydjbiddLnN0YXJ0c3dpdGgo J1Rlc3RCYXRjaF9DQV8nKV0KLSsgICAgICAgIGFzc2VydCBsZW4oYmF0Y2hfY2VydHNfYWZ0ZXIp ID09IDAKLSsKLSsgICAgZmluYWxseToKLSsgICAgICAgIGlmIG5vdCBERUJVR0dJTkc6Ci0rICAg ICAgICAgICAgc2h1dGlsLnJtdHJlZShkaXIsIGlnbm9yZV9lcnJvcnM9VHJ1ZSkKLSsKLSsKLStk ZWYgdGVzdF9pbnZhbGlkX2NlcnRpZmljYXRlX2hhbmRsaW5nKHRvcG8sIHNldHVwX3Rscyk6Ci0r ICAgICIiIlRlc3QgZXJyb3IgaGFuZGxpbmcgZm9yIGludmFsaWQgY2VydGlmaWNhdGUgZGF0YQot KwotKyAgICA6aWQ6IGI4YzlkMGUxLTg4ODgtOTk5OS0wMDAwLTExMTExMTExMTExMQotKyAgICA6 c2V0dXA6IFN0YW5kYWxvbmUgSW5zdGFuY2Ugd2l0aCBUTFMgZW5hYmxlZAotKyAgICA6c3RlcHM6 Ci0rICAgICAgICAxLiBBdHRlbXB0IHRvIGFkZCBjZXJ0aWZpY2F0ZSBmcm9tIG5vbi1leGlzdGVu dCBmaWxlCi0rICAgICAgICAyLiBBdHRlbXB0IHRvIGFkZCBjZXJ0aWZpY2F0ZSB3aXRoIGVtcHR5 IG5pY2tuYW1lCi0rICAgICAgICAzLiBBdHRlbXB0IHRvIGFkZCBub24tQ0EgY2VydCBhcyBDQQot KyAgICAgICAgNC4gVmVyaWZ5IGFsbCBvcGVyYXRpb25zIGZhaWwgd2l0aCBhcHByb3ByaWF0ZSBl cnJvcnMKLSsgICAgOmV4cGVjdGVkcmVzdWx0czoKLSsgICAgICAgIDEuIE5vbi1leGlzdGVudCBm aWxlIHJlamVjdGVkIHdpdGggVmFsdWVFcnJvcgotKyAgICAgICAgMi4gRW1wdHkgbmlja25hbWUg cmVqZWN0ZWQgd2l0aCBWYWx1ZUVycm9yCi0rICAgICAgICAzLiBOb24tQ0EgY2VydCByZWplY3Rl ZCBhcyBDQSB3aXRoIFZhbHVlRXJyb3IKLSsgICAgICAgIDQuIEFsbCBlcnJvcnMgYXJlIGFwcHJv cHJpYXRlIGV4Y2VwdGlvbnMKLSsgICAgIiIiCi0rICAgIGluc3QgPSBzZXR1cF90bHMKLSsgICAg ZGlyID0gJy90bXAvZHluY2VydF9pbnZhbGlkX3Rlc3QnCi0rICAgIG9zLm1ha2VkaXJzKGRpciwg MG83MDAsIGV4aXN0X29rPVRydWUpCi0rCi0rICAgIHRyeToKLSsgICAgICAgIGR5bmNlcnRzID0g RHluYW1pY0NlcnRzKGluc3QpCi0rCi0rICAgICAgICAjIFRlc3QgMTogTm9uLWV4aXN0ZW50IGZp bGUKLSsgICAgICAgIHRyeToKLSsgICAgICAgICAgICBkeW5jZXJ0cy5hZGRfY2VydCgnL25vbmV4 aXN0ZW50L2ZpbGUucGVtJywgJ1Rlc3RJbnZhbGlkJykKLSsgICAgICAgICAgICBhc3NlcnQgRmFs c2UsICJTaG91bGQgaGF2ZSBmYWlsZWQgd2l0aCBub24tZXhpc3RlbnQgZmlsZSIKLSsgICAgICAg IGV4Y2VwdCBWYWx1ZUVycm9yIGFzIGU6Ci0rICAgICAgICAgICAgbG9nLmluZm8oZiJFeHBlY3Rl ZCBlcnJvciBmb3Igbm9uLWV4aXN0ZW50IGZpbGU6IHtlfSIpCi0rCi0rICAgICAgICAjIFRlc3Qg MjogRW1wdHkgbmlja25hbWUKLSsgICAgICAgIGNhID0gUlNBX0NlcnRpZmljYXRlLmdlbmVyYXRl Um9vdENBKCJUZXN0SW52YWxpZF9DQSIpCi0rICAgICAgICBjYS5zYXZlKGRpcikKLSsKLSsgICAg ICAgIHRyeToKLSsgICAgICAgICAgICBkeW5jZXJ0cy5hZGRfY2VydChjYS5wZW0sICcnLCBjYT1U cnVlKQotKyAgICAgICAgICAgIGFzc2VydCBGYWxzZSwgIlNob3VsZCBoYXZlIGZhaWxlZCB3aXRo IGVtcHR5IG5pY2tuYW1lIgotKyAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IgYXMgZToKLSsgICAg ICAgICAgICBsb2cuaW5mbyhmIkV4cGVjdGVkIGVycm9yIGZvciBlbXB0eSBuaWNrbmFtZToge2V9 IikKLSsKLSsgICAgICAgICMgVGVzdCAzOiBOb24tQ0EgY2VydCBtYXJrZWQgYXMgQ0EKLSsgICAg ICAgIGNlcnQgPSBjYS5nZW5lcmF0ZUNlcnRpZmljYXRlKCJUZXN0SW52YWxpZF9DZXJ0IikKLSsg ICAgICAgIGNlcnQuc2F2ZShkaXIpCi0rCi0rICAgICAgICB0cnk6Ci0rICAgICAgICAgICAgZHlu Y2VydHMuYWRkX2NlcnQoY2VydC5wZW0sIGNlcnQubmlja25hbWUsIGNhPVRydWUpCi0rICAgICAg ICAgICAgYXNzZXJ0IEZhbHNlLCAiU2hvdWxkIGhhdmUgZmFpbGVkIHdpdGggbm9uLUNBIGNlcnQi Ci0rICAgICAgICBleGNlcHQgVmFsdWVFcnJvciBhcyBlOgotKyAgICAgICAgICAgIGxvZy5pbmZv KGYiRXhwZWN0ZWQgZXJyb3IgZm9yIG5vbi1DQSBjZXJ0OiB7ZX0iKQotKwotKyAgICBmaW5hbGx5 OgotKyAgICAgICAgaWYgbm90IERFQlVHR0lORzoKLSsgICAgICAgICAgICBzaHV0aWwucm10cmVl KGRpciwgaWdub3JlX2Vycm9ycz1UcnVlKQotKwotKwotK2RlZiB0ZXN0X2NlcnRpZmljYXRlX3Zl cmlmaWNhdGlvbl9zdGF0dXModG9wbywgc2V0dXBfdGxzKToKLSsgICAgIiIiVGVzdCBjZXJ0aWZp Y2F0ZSB2ZXJpZmljYXRpb24gc3RhdHVzIGF0dHJpYnV0ZQotKwotKyAgICA6aWQ6IGM5ZDBlMWYy LTk5OTktMDAwMC0xMTExLTIyMjIyMjIyMjIyMgotKyAgICA6c2V0dXA6IFN0YW5kYWxvbmUgSW5z dGFuY2Ugd2l0aCBUTFMgZW5hYmxlZAotKyAgICA6c3RlcHM6Ci0rICAgICAgICAxLiBBZGQgdmFs aWQgQ0EgY2VydGlmaWNhdGUKLSsgICAgICAgIDIuIEFkZCBzZXJ2ZXIgY2VydGlmaWNhdGUgc2ln bmVkIGJ5IENBCi0rICAgICAgICAzLiBSZXRyaWV2ZSBjZXJ0aWZpY2F0ZXMgYW5kIGNoZWNrIHZl cmlmaWNhdGlvbiBzdGF0dXMKLSsgICAgICAgIDQuIFZlcmlmeSBzZWxmLXNpZ25lZCBDQSBoYXMg YXBwcm9wcmlhdGUgc3RhdHVzCi0rICAgICAgICA1LiBWZXJpZnkgc2VydmVyIGNlcnQgaGFzIHZl cmlmaWNhdGlvbiBzdGF0dXMKLSsgICAgOmV4cGVjdGVkcmVzdWx0czoKLSsgICAgICAgIDEuIENB IGFkZGVkIHN1Y2Nlc3NmdWxseQotKyAgICAgICAgMi4gU2VydmVyIGNlcnQgYWRkZWQgc3VjY2Vz c2Z1bGx5Ci0rICAgICAgICAzLiBWZXJpZmljYXRpb24gc3RhdHVzIGF0dHJpYnV0ZSBhY2Nlc3Np YmxlCi0rICAgICAgICA0LiBDQSBzdGF0dXMgaXMgYXBwcm9wcmlhdGUgZm9yIHNlbGYtc2lnbmVk Ci0rICAgICAgICA1LiBTZXJ2ZXIgY2VydCBzdGF0dXMgcmVmbGVjdHMgY2hhaW4gdmFsaWRhdGlv bgotKyAgICAiIiIKLSsgICAgaW5zdCA9IHNldHVwX3RscwotKyAgICBkaXIgPSAnL3RtcC9keW5j ZXJ0X3ZlcmlmeV90ZXN0JwotKyAgICBvcy5tYWtlZGlycyhkaXIsIDBvNzAwLCBleGlzdF9vaz1U cnVlKQotKwotKyAgICB0cnk6Ci0rICAgICAgICBkeW5jZXJ0cyA9IER5bmFtaWNDZXJ0cyhpbnN0 KQotKwotKyAgICAgICAgY2EgPSBSU0FfQ2VydGlmaWNhdGUuZ2VuZXJhdGVSb290Q0EoIlRlc3RW ZXJpZnlfQ0EiKQotKyAgICAgICAgY2Euc2F2ZShkaXIpCi0rICAgICAgICBkeW5jZXJ0cy5hZGRf Y2VydChjYS5wZW0sIGNhLm5pY2tuYW1lLCBjYT1UcnVlKQotKwotKyAgICAgICAgIyBDaGVjayBD QSB2ZXJpZmljYXRpb24gc3RhdHVzCi0rICAgICAgICBjYV9vYmogPSBkeW5jZXJ0cy5nZXRfY2Vy dF9vYmooY2Eubmlja25hbWUpCi0rICAgICAgICB2ZXJpZnlfc3RhdHVzID0gY2Ffb2JqLmdldF9h dHRyX3ZhbF91dGY4KCdkc0R5bmFtaWNDZXJ0aWZpY2F0ZVZlcmlmaWNhdGlvblN0YXR1cycpCi0r ICAgICAgICBpZiB2ZXJpZnlfc3RhdHVzOgotKyAgICAgICAgICAgIGxvZy5pbmZvKGYiQ0EgdmVy aWZpY2F0aW9uIHN0YXR1czoge3ZlcmlmeV9zdGF0dXN9IikKLSsgICAgICAgIGVsc2U6Ci0rICAg ICAgICAgICAgbG9nLmluZm8oIlZlcmlmaWNhdGlvbiBzdGF0dXMgYXR0cmlidXRlIG5vdCBwcmVz ZW50IGZvciBDQSIpCi0rCi0rICAgICAgICAjIEFkZCBzZXJ2ZXIgY2VydGlmaWNhdGUKLSsgICAg ICAgIGNlcnQgPSBjYS5nZW5lcmF0ZUNlcnRpZmljYXRlKCJUZXN0VmVyaWZ5X0NlcnQiKQotKyAg ICAgICAgY2VydC5zYXZlKGRpcikKLSsgICAgICAgIGR5bmNlcnRzLmFkZF9jZXJ0KGNlcnQucDEy LCBjZXJ0Lm5pY2tuYW1lLCBwa2NzMTJfcGFzc3dvcmQ9UlNBX0NlcnRpZmljYXRlLlBLQ1MxMl9Q QVNTV09SRCkKLSsKLSsgICAgICAgICMgQ2hlY2sgc2VydmVyIGNlcnQgdmVyaWZpY2F0aW9uIHN0 YXR1cwotKyAgICAgICAgY2VydF9vYmogPSBkeW5jZXJ0cy5nZXRfY2VydF9vYmooY2VydC5uaWNr bmFtZSkKLSsgICAgICAgIHZlcmlmeV9zdGF0dXMgPSBjZXJ0X29iai5nZXRfYXR0cl92YWxfdXRm OCgnZHNEeW5hbWljQ2VydGlmaWNhdGVWZXJpZmljYXRpb25TdGF0dXMnKQotKyAgICAgICAgaWYg dmVyaWZ5X3N0YXR1czoKLSsgICAgICAgICAgICBsb2cuaW5mbyhmIlNlcnZlciBjZXJ0IHZlcmlm aWNhdGlvbiBzdGF0dXM6IHt2ZXJpZnlfc3RhdHVzfSIpCi0rICAgICAgICBlbHNlOgotKyAgICAg ICAgICAgIGxvZy5pbmZvKCJWZXJpZmljYXRpb24gc3RhdHVzIGF0dHJpYnV0ZSBub3QgcHJlc2Vu dCBmb3Igc2VydmVyIGNlcnQiKQotKwotKyAgICAgICAgIyBDbGVhbnVwCi0rICAgICAgICBkeW5j ZXJ0cy5kZWxfY2VydChjYS5uaWNrbmFtZSkKLSsgICAgICAgIGR5bmNlcnRzLmRlbF9jZXJ0KGNl cnQubmlja25hbWUpCi0rCi0rICAgIGZpbmFsbHk6Ci0rICAgICAgICBpZiBub3QgREVCVUdHSU5H OgotKyAgICAgICAgICAgIHNodXRpbC5ybXRyZWUoZGlyLCBpZ25vcmVfZXJyb3JzPVRydWUpCi0r Ci0rCi0rZGVmIHRlc3RfZXhwaXJlZF9jZXJ0aWZpY2F0ZV9oYW5kbGluZyh0b3BvLCBzZXR1cF90 bHMpOgotKyAgICAiIiJUZXN0IGhhbmRsaW5nIG9mIGV4cGlyZWQgY2VydGlmaWNhdGVzCi0rCi0r ICAgIDppZDogZDBlMWYyYTMtMDAwMC0xMTExLTIyMjItMzMzMzMzMzMzMzMzCi0rICAgIDpzZXR1 cDogU3RhbmRhbG9uZSBJbnN0YW5jZSB3aXRoIFRMUyBlbmFibGVkCi0rICAgIDpzdGVwczoKLSsg ICAgICAgIDEuIEdlbmVyYXRlIGNlcnRpZmljYXRlIHdpdGggdmFsaWRpdHkgc3RhcnRpbmcgaW4g dGhlIHBhc3QgYW5kIGFscmVhZHkgZXhwaXJlZAotKyAgICAgICAgMi4gQWRkIGV4cGlyZWQgY2Vy dGlmaWNhdGUKLSsgICAgICAgIDMuIFJldHJpZXZlIGNlcnRpZmljYXRlIG9iamVjdAotKyAgICAg ICAgNC4gVmVyaWZ5IG5vdEJlZm9yZSBkYXRlIGlzIGluIHRoZSBwYXN0Ci0rICAgICAgICA1LiBW ZXJpZnkgbm90QWZ0ZXIgZGF0ZSBpcyBhbHNvIGluIHRoZSBwYXN0Ci0rICAgICAgICA2LiBDaGVj ayBpZiB2ZXJpZmljYXRpb24gc3RhdHVzIGluZGljYXRlcyBleHBpcmF0aW9uCi0rICAgIDpleHBl Y3RlZHJlc3VsdHM6Ci0rICAgICAgICAxLiBFeHBpcmVkIGNlcnRpZmljYXRlIGdlbmVyYXRlZAot KyAgICAgICAgMi4gQ2VydGlmaWNhdGUgY2FuIGJlIGFkZGVkIChzdG9yZWQpCi0rICAgICAgICAz LiBDZXJ0aWZpY2F0ZSBvYmplY3QgcmV0cmlldmVkCi0rICAgICAgICA0LiBub3RCZWZvcmUgc2hv d3MgcGFzdCBkYXRlCi0rICAgICAgICA1LiBub3RBZnRlciBzaG93cyBwYXN0IGRhdGUgKGV4cGly ZWQpCi0rICAgICAgICA2LiBWZXJpZmljYXRpb24gc3RhdHVzIG1heSBpbmRpY2F0ZSBpbnZhbGlk L2V4cGlyZWQKLSsgICAgIiIiCi0rICAgIGluc3QgPSBzZXR1cF90bHMKLSsgICAgZGlyID0gJy90 bXAvZHluY2VydF9leHBpcmVkX3Rlc3QnCi0rICAgIG9zLm1ha2VkaXJzKGRpciwgMG83MDAsIGV4 aXN0X29rPVRydWUpCi0rCi0rICAgIHRyeToKLSsgICAgICAgICMgQ3JlYXRlIGEgY2VydGlmaWNh dGUgdGhhdCdzIGFscmVhZHkgZXhwaXJlZAotKyAgICAgICAgY2EgPSBSU0FfQ2VydGlmaWNhdGUo KQotKyAgICAgICAgY2Eubmlja25hbWUgPSAiVGVzdEV4cGlyZWRfQ0EiCi0rICAgICAgICBjYS5p c0NBID0gVHJ1ZQotKyAgICAgICAgY2EuaXNSb290ID0gVHJ1ZQotKyAgICAgICAgY2EuZml4TmFt aW5nQXR0cmlidXRlcygpCi0rICAgICAgICBjYS5zdWJqZWN0ID0geDUwOS5OYW1lKFt4NTA5Lk5h bWVBdHRyaWJ1dGUoaywgdikgZm9yIGssIHYgaW4gY2EubmFtaW5nQXR0cnMuaXRlbXMoKV0pCi0r ICAgICAgICBjYS5pc3N1ZXIgPSBjYS5zdWJqZWN0Ci0rICAgICAgICBjYS50cnVzdCA9ICdDVCws JwotKwotKyAgICAgICAgIyBHZW5lcmF0ZSB3aXRoIGRhdGVzIGluIHRoZSBwYXN0Ci0rICAgICAg ICBwYXN0X2RhdGUgPSB1dGNkYXRlKCkgLSBkYXRldGltZS50aW1lZGVsdGEoZGF5cz0zNjUpCi0r ICAgICAgICBleHBpcmVkX2RhdGUgPSB1dGNkYXRlKCkgLSBkYXRldGltZS50aW1lZGVsdGEoZGF5 cz0xKQotKwotKyAgICAgICAgY2EucGtleSA9IHJzYS5nZW5lcmF0ZV9wcml2YXRlX2tleSgKLSsg ICAgICAgICAgICBwdWJsaWNfZXhwb25lbnQ9NjU1MzcsCi0rICAgICAgICAgICAga2V5X3NpemU9 MjA0OCwKLSsgICAgICAgICAgICBiYWNrZW5kPWRlZmF1bHRfYmFja2VuZCgpCi0rICAgICAgICAp Ci0rICAgICAgICBjYS5jZXJ0ID0gKAotKyAgICAgICAgICAgIHg1MDkuQ2VydGlmaWNhdGVCdWls ZGVyKCkKLSsgICAgICAgICAgICAuc3ViamVjdF9uYW1lKGNhLnN1YmplY3QpCi0rICAgICAgICAg ICAgLmlzc3Vlcl9uYW1lKGNhLmlzc3VlcikKLSsgICAgICAgICAgICAucHVibGljX2tleShjYS5w a2V5LnB1YmxpY19rZXkoKSkKLSsgICAgICAgICAgICAuc2VyaWFsX251bWJlcih4NTA5LnJhbmRv bV9zZXJpYWxfbnVtYmVyKCkpCi0rICAgICAgICAgICAgLm5vdF92YWxpZF9iZWZvcmUocGFzdF9k YXRlKQotKyAgICAgICAgICAgIC5ub3RfdmFsaWRfYWZ0ZXIoZXhwaXJlZF9kYXRlKQotKyAgICAg ICAgICAgIC5hZGRfZXh0ZW5zaW9uKAotKyAgICAgICAgICAgICAgICB4NTA5LkJhc2ljQ29uc3Ry YWludHMoY2E9VHJ1ZSwgcGF0aF9sZW5ndGg9MCksCi0rICAgICAgICAgICAgICAgIGNyaXRpY2Fs PVRydWUsCi0rICAgICAgICAgICAgKQotKyAgICAgICAgICAgIC5zaWduKGNhLnBrZXksIGhhc2hl cy5TSEEyNTYoKSwgZGVmYXVsdF9iYWNrZW5kKCkpCi0rICAgICAgICApCi0rICAgICAgICBjYS5z YXZlKGRpcikKLSsKLSsgICAgICAgICMgQWRkIGV4cGlyZWQgY2VydGlmaWNhdGUgKG1heSBuZWVk IGZvcmNlIGZsYWcpCi0rICAgICAgICBkeW5jZXJ0cyA9IER5bmFtaWNDZXJ0cyhpbnN0KQotKyAg ICAgICAgdHJ5OgotKyAgICAgICAgICAgIGR5bmNlcnRzLmFkZF9jZXJ0KGNhLnBlbSwgY2Eubmlj a25hbWUsIGNhPVRydWUsIGZvcmNlPVRydWUpCi0rICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFz IGU6Ci0rICAgICAgICAgICAgbG9nLmluZm8oZiJBZGRpbmcgZXhwaXJlZCBjZXJ0IHJhaXNlZDog e2V9IikKLSsgICAgICAgICAgICByZXR1cm4gICMgRXhwZWN0ZWQgLSBzZXJ2ZXIgbWF5IHJlamVj dCBleHBpcmVkIGNlcnRzCi0rCi0rICAgICAgICAjIFZlcmlmeSBjZXJ0aWZpY2F0ZSBtZXRhZGF0 YSBzaG93cyBleHBpcmF0aW9uCi0rICAgICAgICBjYV9vYmogPSBkeW5jZXJ0cy5nZXRfY2VydF9v YmooY2Eubmlja25hbWUpCi0rICAgICAgICBpZiBjYV9vYmo6Ci0rICAgICAgICAgICAgbm90X2Jl Zm9yZSA9IGNhX29iai5nZXRfYXR0cl92YWxfdXRmOCgnZHNEeW5hbWljQ2VydGlmaWNhdGVOb3RC ZWZvcmUnKQotKyAgICAgICAgICAgIG5vdF9hZnRlciA9IGNhX29iai5nZXRfYXR0cl92YWxfdXRm OCgnZHNEeW5hbWljQ2VydGlmaWNhdGVOb3RBZnRlcicpCi0rICAgICAgICAgICAgbG9nLmluZm8o ZiJFeHBpcmVkIGNlcnQgLSBOb3QgQmVmb3JlOiB7bm90X2JlZm9yZX0iKQotKyAgICAgICAgICAg IGxvZy5pbmZvKGYiRXhwaXJlZCBjZXJ0IC0gTm90IEFmdGVyOiB7bm90X2FmdGVyfSIpCi0rCi0r ICAgICAgICAgICAgdmVyaWZ5X3N0YXR1cyA9IGNhX29iai5nZXRfYXR0cl92YWxfdXRmOCgnZHNE eW5hbWljQ2VydGlmaWNhdGVWZXJpZmljYXRpb25TdGF0dXMnKQotKyAgICAgICAgICAgIGlmIHZl cmlmeV9zdGF0dXM6Ci0rICAgICAgICAgICAgICAgIGxvZy5pbmZvKGYiVmVyaWZpY2F0aW9uIHN0 YXR1cyAoc2hvdWxkIGluZGljYXRlIGV4cGlyZWQpOiB7dmVyaWZ5X3N0YXR1c30iKQotKwotKyAg ICAgICAgICAgICMgQ2xlYW51cAotKyAgICAgICAgICAgIGR5bmNlcnRzLmRlbF9jZXJ0KGNhLm5p Y2tuYW1lKQotKwotKyAgICBmaW5hbGx5OgotKyAgICAgICAgaWYgbm90IERFQlVHR0lORzoKLSsg ICAgICAgICAgICBzaHV0aWwucm10cmVlKGRpciwgaWdub3JlX2Vycm9ycz1UcnVlKQotKwotKwot K2RlZiB0ZXN0X2xpc3RfYW5kX2dldF9vcGVyYXRpb25zKHRvcG8sIHNldHVwX3Rscyk6Ci0rICAg ICIiIlRlc3QgbGlzdGluZyBhbmQgcmV0cmlldmFsIG9wZXJhdGlvbnMKLSsKLSsgICAgOmlkOiBl MWYyYTNiNC0xMTExLTIyMjItMzMzMy00NDQ0NDQ0NDQ0NDQKLSsgICAgOnNldHVwOiBTdGFuZGFs b25lIEluc3RhbmNlIHdpdGggVExTIGVuYWJsZWQKLSsgICAgOnN0ZXBzOgotKyAgICAgICAgMS4g QWRkIENBIGFuZCBzZXJ2ZXIgY2VydGlmaWNhdGVzCi0rICAgICAgICAyLiBVc2UgbGlzdCgpIHRv IGdldCBhbGwgY2VydGlmaWNhdGUgb2JqZWN0cwotKyAgICAgICAgMy4gVXNlIGxpc3RfY2FfY2Vy dHMoKSB0byBnZXQgQ0EgY2VydCBkZXRhaWxzCi0rICAgICAgICA0LiBVc2UgbGlzdF9jZXJ0cygp IHRvIGdldCBzZXJ2ZXIgY2VydCBkZXRhaWxzCi0rICAgICAgICA1LiBVc2UgZ2V0X2NlcnRfb2Jq KCkgdG8gcmV0cmlldmUgc3BlY2lmaWMgY2VydGlmaWNhdGUKLSsgICAgICAgIDYuIFVzZSBnZXRf Y2VydF9kZXRhaWxzKCkgdG8gZ2V0IGZvcm1hdHRlZCBkZXRhaWxzCi0rICAgIDpleHBlY3RlZHJl c3VsdHM6Ci0rICAgICAgICAxLiBDZXJ0aWZpY2F0ZXMgYWRkZWQgc3VjY2Vzc2Z1bGx5Ci0rICAg ICAgICAyLiBsaXN0KCkgcmV0dXJucyBEU0xkYXBPYmplY3QgaW5zdGFuY2VzCi0rICAgICAgICAz LiBsaXN0X2NhX2NlcnRzKCkgcmV0dXJucyBkaWN0IHdpdGggQ0EgaW5mbwotKyAgICAgICAgNC4g bGlzdF9jZXJ0cygpIHJldHVybnMgZGljdCB3aXRoIHNlcnZlciBjZXJ0IGluZm8KLSsgICAgICAg IDUuIGdldF9jZXJ0X29iaigpIHJldHVybnMgRHluYW1pY0NlcnQgb2JqZWN0Ci0rICAgICAgICA2 LiBnZXRfY2VydF9kZXRhaWxzKCkgcmV0dXJucyBmb3JtYXR0ZWQgZGljdGlvbmFyeQotKyAgICAi IiIKLSsgICAgaW5zdCA9IHNldHVwX3RscwotKyAgICBkaXIgPSAnL3RtcC9keW5jZXJ0X2xpc3Rf dGVzdCcKLSsgICAgb3MubWFrZWRpcnMoZGlyLCAwbzcwMCwgZXhpc3Rfb2s9VHJ1ZSkKLSsKLSsg ICAgdHJ5OgotKyAgICAgICAgZHluY2VydHMgPSBEeW5hbWljQ2VydHMoaW5zdCkKLSsKLSsgICAg ICAgICMgQWRkIGNlcnRpZmljYXRlcwotKyAgICAgICAgY2EgPSBSU0FfQ2VydGlmaWNhdGUuZ2Vu ZXJhdGVSb290Q0EoIlRlc3RMaXN0X0NBIikKLSsgICAgICAgIGNhLnNhdmUoZGlyKQotKyAgICAg ICAgZHluY2VydHMuYWRkX2NlcnQoY2EucGVtLCBjYS5uaWNrbmFtZSwgY2E9VHJ1ZSkKLSsKLSsg ICAgICAgIGNlcnQgPSBjYS5nZW5lcmF0ZUNlcnRpZmljYXRlKCJUZXN0TGlzdF9DZXJ0IikKLSsg ICAgICAgIGNlcnQuc2F2ZShkaXIpCi0rICAgICAgICBkeW5jZXJ0cy5hZGRfY2VydChjZXJ0LnAx MiwgY2VydC5uaWNrbmFtZSwgcGtjczEyX3Bhc3N3b3JkPVJTQV9DZXJ0aWZpY2F0ZS5QS0NTMTJf UEFTU1dPUkQpCi0rCi0rICAgICAgICAjIFRlc3QgbGlzdCgpIC0gcmV0dXJucyBEeW5hbWljQ2Vy dCBvYmplY3RzCi0rICAgICAgICBhbGxfb2JqcyA9IGR5bmNlcnRzLmxpc3QoKQotKyAgICAgICAg bG9nLmluZm8oZiJsaXN0KCkgcmV0dXJuZWQge2xlbihhbGxfb2Jqcyl9IG9iamVjdHMiKQotKyAg ICAgICAgYXNzZXJ0IGFueShpc2luc3RhbmNlKG9iaiwgRHluYW1pY0NlcnQpIGFuZCBvYmouZ2V0 X2F0dHJfdmFsX3V0ZjgoJ2NuJykgPT0gY2Eubmlja25hbWUKLSsgICAgICAgICAgICAgICAgICAg Zm9yIG9iaiBpbiBhbGxfb2JqcyBpZiBvYmouX2RuICE9IERZTkNFUlRfU1VGRklYKQotKwotKyAg ICAgICAgIyBUZXN0IGxpc3RfY2FfY2VydHMoKSAtIHJldHVybnMgbGlzdCBvZiBkaWN0cwotKyAg ICAgICAgY2FfbGlzdCA9IGR5bmNlcnRzLmxpc3RfY2FfY2VydHMoKQotKyAgICAgICAgbG9nLmlu Zm8oZiJsaXN0X2NhX2NlcnRzKCkgcmV0dXJuZWQge2xlbihjYV9saXN0KX0gQ0FzIikKLSsgICAg ICAgIGFzc2VydCBhbnkoY1snY24nXSA9PSBjYS5uaWNrbmFtZSBmb3IgYyBpbiBjYV9saXN0KQot KyAgICAgICAgY2FfZW50cnkgPSBuZXh0KGMgZm9yIGMgaW4gY2FfbGlzdCBpZiBjWydjbiddID09 IGNhLm5pY2tuYW1lKQotKyAgICAgICAgYXNzZXJ0ICdzdWJqZWN0JyBpbiBjYV9lbnRyeQotKyAg ICAgICAgYXNzZXJ0ICdpc3N1ZXInIGluIGNhX2VudHJ5Ci0rICAgICAgICBhc3NlcnQgJ2V4cGly ZXMnIGluIGNhX2VudHJ5Ci0rICAgICAgICBhc3NlcnQgJ3RydXN0X2ZsYWdzJyBpbiBjYV9lbnRy eQotKwotKyAgICAgICAgIyBUZXN0IGxpc3RfY2VydHMoKSAtIHJldHVybnMgbGlzdCBvZiBkaWN0 cwotKyAgICAgICAgY2VydF9saXN0ID0gZHluY2VydHMubGlzdF9jZXJ0cygpCi0rICAgICAgICBs b2cuaW5mbyhmImxpc3RfY2VydHMoKSByZXR1cm5lZCB7bGVuKGNlcnRfbGlzdCl9IHNlcnZlciBj ZXJ0cyIpCi0rICAgICAgICBhc3NlcnQgYW55KGNbJ2NuJ10gPT0gY2VydC5uaWNrbmFtZSBmb3Ig YyBpbiBjZXJ0X2xpc3QpCi0rCi0rICAgICAgICAjIFRlc3QgZ2V0X2NlcnRfb2JqKCkgLSByZXR1 cm5zIER5bmFtaWNDZXJ0IG9iamVjdAotKyAgICAgICAgY2Ffb2JqID0gZHluY2VydHMuZ2V0X2Nl cnRfb2JqKGNhLm5pY2tuYW1lKQotKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY2Ffb2JqLCBE eW5hbWljQ2VydCkKLSsgICAgICAgIGFzc2VydCBjYV9vYmouZ2V0X2F0dHJfdmFsX3V0ZjgoJ2Nu JykgPT0gY2Eubmlja25hbWUKLSsKLSsgICAgICAgICMgVGVzdCBnZXRfY2VydF9kZXRhaWxzKCkg LSByZXR1cm5zIGZvcm1hdHRlZCBkaWN0Ci0rICAgICAgICBjYV9kZXRhaWxzID0gZHluY2VydHMu Z2V0X2NlcnRfZGV0YWlscyhjYS5uaWNrbmFtZSkKLSsgICAgICAgIGFzc2VydCBjYV9kZXRhaWxz WydjbiddID09IGNhLm5pY2tuYW1lCi0rICAgICAgICBhc3NlcnQgJ3N1YmplY3QnIGluIGNhX2Rl dGFpbHMKLSsgICAgICAgIGFzc2VydCAnaXNzdWVyJyBpbiBjYV9kZXRhaWxzCi0rICAgICAgICBh c3NlcnQgJ2V4cGlyZXMnIGluIGNhX2RldGFpbHMKLSsgICAgICAgIGFzc2VydCAndHJ1c3RfZmxh Z3MnIGluIGNhX2RldGFpbHMKLSsgICAgICAgIGxvZy5pbmZvKGYiZ2V0X2NlcnRfZGV0YWlscygp IHJldHVybmVkOiB7Y2FfZGV0YWlsc30iKQotKwotKyAgICAgICAgIyBDbGVhbnVwCi0rICAgICAg ICBkeW5jZXJ0cy5kZWxfY2VydChjYS5uaWNrbmFtZSkKLSsgICAgICAgIGR5bmNlcnRzLmRlbF9j ZXJ0KGNlcnQubmlja25hbWUpCi0rCi0rICAgIGZpbmFsbHk6Ci0rICAgICAgICBpZiBub3QgREVC VUdHSU5HOgotKyAgICAgICAgICAgIHNodXRpbC5ybXRyZWUoZGlyLCBpZ25vcmVfZXJyb3JzPVRy dWUpCi0rCi0rCi0rZGVmIHBlbV9maWxlX3RvX2RlcihwZW1fZmlsZV9wYXRoKToKLSsgICAgbG9n LmRlYnVnKGYiRGVjb2RpbmcgY2VydCBwZW06IHtwZW1fZmlsZV9wYXRofSIpCi0rICAgIHdpdGgg b3BlbihwZW1fZmlsZV9wYXRoLCAicmIiKSBhcyBmOgotKyAgICAgICAgcGVtX19ieXRlcyA9IGYu cmVhZCgpCi0rICAgICAgICB0cnk6Ci0rICAgICAgICAgICAgcmV0dXJuIHBlbV90b19kZXIocGVt X19ieXRlcykKLSsgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSsgICAgICAgICAgICBy YWlzZSBWYWx1ZUVycm9yKGYiRmFpbGVkIHRvIHBhcnNlIGNlcnRpZmljYXRlICd7cGVtX2ZpbGVf cGF0aH0nOiB7ZX0iKQotKwotKwotK0BweXRlc3QubWFyay5za2lwaWYocnBtX2lzX29sZGVyKCJv cGVuc3NsIiwgIjMuNSIpLCByZWFzb249Ik9wZW5TU0wgdG9vIG9sZCB0byBzdXBwb3J0IFBRQyIp Ci0rQHB5dGVzdC5tYXJrLnNraXBpZihycG1faXNfb2xkZXIoIm5zcyIsICIzLjExOS4xIiksIHJl YXNvbj0iTlNTIHRvbyBvbGQgdG8gc3VwcG9ydCBQUUMiKQotK0BweXRlc3QubWFyay5wYXJhbWV0 cml6ZSgid2l0aF9wcml2YXRlX2tleSIsIFtGYWxzZSwgcHl0ZXN0LnBhcmFtKFRydWUsIG1hcmtz PXB5dGVzdC5tYXJrLnhmYWlsKHJlYXNvbj0nY3J5cHRvZ3JhcGh5IG1vZHVsZSBkb2VzIG5vdCBz dXBwb3J0IE1MLURTQSBrZXlzJykpLF0pCi0rZGVmIHRlc3RfbWxkc2FfZHluYW1pY19jZXJ0aWZp Y2F0ZXModG9wbywgc2V0dXBfdGxzLCB3aXRoX3ByaXZhdGVfa2V5KToKLSsgICAgIiIiVGVzdCBN TC1EU0EgKHBvc3QtcXVhbnR1bSkgY2VydGlmaWNhdGVzIHdpdGggRHluYW1pYyBDZXJ0aWZpY2F0 ZXMgZmVhdHVyZQotKwotKyAgICA6aWQ6IGYyYTNiNGM1LTIyMjItMzMzMy00NDQ0LTU1NTU1NTU1 NTU1NQotKyAgICA6c2V0dXA6IFN0YW5kYWxvbmUgSW5zdGFuY2Ugd2l0aCBUTFMgZW5hYmxlZAot KyAgICA6c3RlcHM6Ci0rICAgICAgICAxLiBHZW5lcmF0ZSBNTC1EU0EtODcgUm9vdCBDQSBjZXJ0 aWZpY2F0ZSB1c2luZyBPcGVuU1NMCi0rICAgICAgICAyLiBHZW5lcmF0ZSBNTC1EU0EtNjUgc2Vy dmVyIGNlcnRpZmljYXRlIHNpZ25lZCBieSBDQQotKyAgICAgICAgMy4gQWRkIENBIGNlcnRpZmlj YXRlIGR5bmFtaWNhbGx5IHVzaW5nIER5bmFtaWNDZXJ0cwotKyAgICAgICAgNC4gQWRkIHNlcnZl ciBjZXJ0aWZpY2F0ZSBkeW5hbWljYWxseSB1c2luZyBEeW5hbWljQ2VydHMgKHdpdGggb3Igd2l0 aG91dCBwcml2YXRlIGtleSkKLSsgICAgICAgIDUuIFZlcmlmeSBDQSBrZXkgYWxnb3JpdGhtIHNo b3dzIE1MLURTQQotKyAgICAgICAgNi4gVmVyaWZ5IHNlcnZlciBjZXJ0IGtleSBhbGdvcml0aG0g c2hvd3MgTUwtRFNBCi0rICAgICAgICA3LiBWZXJpZnkgYWxsIGNlcnRpZmljYXRlIG1ldGFkYXRh IGlzIGNvcnJlY3RseSBleHRyYWN0ZWQKLSsgICAgICAgIDguIFZlcmlmeSBDQSBpcyBpZGVudGlm aWVkIGNvcnJlY3RseQotKyAgICAgICAgOS4gVmVyaWZ5IHNlcnZlciBjZXJ0IGhhcyBwcml2YXRl IGtleSBiYXNlZCBvbiBwYXJhbWV0ZXIKLSsgICAgICAgIDEwLiBUZXN0IGNlcnRpZmljYXRlIGxp c3Rpbmcgb3BlcmF0aW9ucwotKyAgICA6ZXhwZWN0ZWRyZXN1bHRzOgotKyAgICAgICAgMS4gTUwt RFNBIENBIGdlbmVyYXRlZCBzdWNjZXNzZnVsbHkKLSsgICAgICAgIDIuIE1MLURTQSBzZXJ2ZXIg Y2VydCBnZW5lcmF0ZWQgc3VjY2Vzc2Z1bGx5Ci0rICAgICAgICAzLiBDQSBhZGRlZCB3aXRob3V0 IGVycm9yCi0rICAgICAgICA0LiBTZXJ2ZXIgY2VydCBhZGRlZCB3aXRob3V0IGVycm9yICh3aXRo IG9yIHdpdGhvdXQga2V5KQotKyAgICAgICAgNS4gQ0Ega2V5IGFsZ29yaXRobSBjb250YWlucyBN TC1EU0EKLSsgICAgICAgIDYuIFNlcnZlciBjZXJ0IGtleSBhbGdvcml0aG0gY29udGFpbnMgTUwt RFNBCi0rICAgICAgICA3LiBBbGwgbWV0YWRhdGEgYXR0cmlidXRlcyBwcmVzZW50IGFuZCBjb3Jy ZWN0Ci0rICAgICAgICA4LiBpc0NBIGlzIFRSVUUgZm9yIENBCi0rICAgICAgICA5LiBoYXNQcml2 YXRlS2V5IG1hdGNoZXMgd2l0aF9wcml2YXRlX2tleSBwYXJhbWV0ZXIKLSsgICAgICAgIDEwLiBD ZXJ0aWZpY2F0ZXMgYXBwZWFyIGluIGxpc3Qgb3BlcmF0aW9ucwotKyAgICAiIiIKLSsgICAgaW5z dCA9IHNldHVwX3RscwotKyAgICBmaXhfY3Jhc2hfaXNzdWVfNzIyNyhpbnN0KQotKyAgICBrZXlf c3VmZml4ID0gJ3dpdGhfa2V5JyBpZiB3aXRoX3ByaXZhdGVfa2V5IGVsc2UgJ3dpdGhvdXRfa2V5 JwotKyAgICBkaXIgPSBmJy90bXAvZHluY2VydF9tbGRzYV90ZXN0X3trZXlfc3VmZml4fScKLSsg ICAgb3MubWFrZWRpcnMoZGlyLCAwbzcwMCwgZXhpc3Rfb2s9VHJ1ZSkKLSsKLSsgICAgY2FfY29u ZmlnID0gIiIiCi0rWyByZXEgXQotK2Rpc3Rpbmd1aXNoZWRfbmFtZSA9IHJlcV9kaXN0aW5ndWlz aGVkX25hbWUKLStwb2xpY3kgICAgICAgICAgICAgPSBwb2xpY3lfbWF0Y2gKLSt4NTA5X2V4dGVu c2lvbnMgICAgPSB2M19jYQotKwotK1sgcG9saWN5X21hdGNoIF0KLStjb3VudHJ5TmFtZSAgICAg ICAgICAgICA9IG9wdGlvbmFsCi0rc3RhdGVPclByb3ZpbmNlTmFtZSAgICAgPSBvcHRpb25hbAot K29yZ2FuaXphdGlvbk5hbWUgICAgICAgID0gb3B0aW9uYWwKLStvcmdhbml6YXRpb25hbFVuaXRO YW1lICA9IG9wdGlvbmFsCi0rY29tbW9uTmFtZSAgICAgICAgICAgICAgPSBzdXBwbGllZAotK2Vt YWlsQWRkcmVzcyAgICAgICAgICAgID0gb3B0aW9uYWwKLSsKLStbIHJlcV9kaXN0aW5ndWlzaGVk X25hbWUgXQotK2NvdW50cnlOYW1lICAgICAgICAgICAgID0gQ291bnRyeSBOYW1lICgyIGxldHRl ciBjb2RlKQotK2NvdW50cnlOYW1lX2RlZmF1bHQgICAgID0gVVMKLStjb3VudHJ5TmFtZV9taW4g ICAgICAgICA9IDIKLStjb3VudHJ5TmFtZV9tYXggICAgICAgICA9IDIKLSsKLStzdGF0ZU9yUHJv dmluY2VOYW1lICAgICA9IFN0YXRlIG9yIFByb3ZpbmNlIE5hbWUgKGZ1bGwgbmFtZSkKLStsb2Nh bGl0eU5hbWUgICAgICAgICAgICA9IExvY2FsaXR5IE5hbWUgKGVnLCBjaXR5KQotKwotKzAub3Jn YW5pemF0aW9uTmFtZSAgICAgID0gT3JnYW5pemF0aW9uIE5hbWUgKGVnLCBjb21wYW55KQotKzAu b3JnYW5pemF0aW9uTmFtZV9kZWZhdWx0ID0gVGVzdE1MRFNBLUNBLU9yZwotKwotK29yZ2FuaXph dGlvbmFsVW5pdE5hbWUgID0gT3JnYW5pemF0aW9uYWwgVW5pdCBOYW1lIChlZywgc2VjdGlvbikK LStjb21tb25OYW1lICAgICAgICAgICAgICA9IENvbW1vbiBOYW1lIChlLmcuIHNlcnZlciBGUURO IG9yIFlPVVIgbmFtZSkKLStjb21tb25OYW1lX21heCAgICAgICAgICA9IDY0Ci0rCi0rWyB2M19j YSBdCi0rc3ViamVjdEtleUlkZW50aWZpZXIgPSBoYXNoCi0rYXV0aG9yaXR5S2V5SWRlbnRpZmll ciA9IGtleWlkOmFsd2F5cyxpc3N1ZXIKLStiYXNpY0NvbnN0cmFpbnRzID0gY3JpdGljYWwsQ0E6 dHJ1ZQotK2tleVVzYWdlID0gY3JpdGljYWwsIGtleUNlcnRTaWduCi0rIiIiCi0rCi0rICAgIGNl cnRfY29uZmlnID0gIiIiCi0rWyByZXEgXQotK2Rpc3Rpbmd1aXNoZWRfbmFtZSA9IHJlcV9kaXN0 aW5ndWlzaGVkX25hbWUKLStwb2xpY3kgICAgICAgICAgICAgPSBwb2xpY3lfbWF0Y2gKLSt4NTA5 X2V4dGVuc2lvbnMgICAgPSB2M19jZXJ0Ci0rCi0rWyBwb2xpY3lfbWF0Y2ggXQotK2NvdW50cnlO YW1lICAgICAgICAgICAgID0gb3B0aW9uYWwKLStzdGF0ZU9yUHJvdmluY2VOYW1lICAgICA9IG9w dGlvbmFsCi0rb3JnYW5pemF0aW9uTmFtZSAgICAgICAgPSBvcHRpb25hbAotK29yZ2FuaXphdGlv bmFsVW5pdE5hbWUgID0gb3B0aW9uYWwKLStjb21tb25OYW1lICAgICAgICAgICAgICA9IHN1cHBs aWVkCi0rZW1haWxBZGRyZXNzICAgICAgICAgICAgPSBvcHRpb25hbAotKwotK1sgcmVxX2Rpc3Rp bmd1aXNoZWRfbmFtZSBdCi0rY291bnRyeU5hbWUgICAgICAgICAgICAgPSBDb3VudHJ5IE5hbWUg KDIgbGV0dGVyIGNvZGUpCi0rY291bnRyeU5hbWVfZGVmYXVsdCAgICAgPSBVUwotK2NvdW50cnlO YW1lX21pbiAgICAgICAgID0gMgotK2NvdW50cnlOYW1lX21heCAgICAgICAgID0gMgotKwotK3N0 YXRlT3JQcm92aW5jZU5hbWUgICAgID0gU3RhdGUgb3IgUHJvdmluY2UgTmFtZSAoZnVsbCBuYW1l KQotK2xvY2FsaXR5TmFtZSAgICAgICAgICAgID0gTG9jYWxpdHkgTmFtZSAoZWcsIGNpdHkpCi0r Ci0rMC5vcmdhbml6YXRpb25OYW1lICAgICAgPSBPcmdhbml6YXRpb24gTmFtZSAoZWcsIGNvbXBh bnkpCi0rMC5vcmdhbml6YXRpb25OYW1lX2RlZmF1bHQgPSBUZXN0TUxEU0EtT3JnCi0rCi0rb3Jn YW5pemF0aW9uYWxVbml0TmFtZSAgPSBPcmdhbml6YXRpb25hbCBVbml0IE5hbWUgKGVnLCBzZWN0 aW9uKQotK2NvbW1vbk5hbWUgICAgICAgICAgICAgID0gQ29tbW9uIE5hbWUgKGUuZy4gc2VydmVy IEZRRE4gb3IgWU9VUiBuYW1lKQotK2NvbW1vbk5hbWVfbWF4ICAgICAgICAgID0gNjQKLSsKLStb IHYzX2NlcnQgXQotK2Jhc2ljQ29uc3RyYWludHMgPSBjcml0aWNhbCxDQTpmYWxzZQotK3N1Ympl Y3RBbHROYW1lID0gRE5TOmxvY2FsaG9zdCxJUDoxMjcuMC4wLjEKLStrZXlVc2FnZSA9IGRpZ2l0 YWxTaWduYXR1cmUsIG5vblJlcHVkaWF0aW9uLCBrZXlFbmNpcGhlcm1lbnQsIGRhdGFFbmNpcGhl cm1lbnQKLStleHRlbmRlZEtleVVzYWdlID0gY2xpZW50QXV0aCwgc2VydmVyQXV0aAotKyIiIgot KwotKyAgICB0cnk6Ci0rICAgICAgICBob3N0bmFtZSA9IHNvY2tldC5nZXRob3N0bmFtZSgpCi0r Ci0rICAgICAgICAjIFdyaXRlIGNvbmZpZyBmaWxlcwotKyAgICAgICAgY2FfY29uZl9maWxlID0g ZiJ7ZGlyfS9jYS5jb25mIgotKyAgICAgICAgY2VydF9jb25mX2ZpbGUgPSBmIntkaXJ9L2NlcnQu Y29uZiIKLSsKLSsgICAgICAgIHdpdGggb3BlbihjYV9jb25mX2ZpbGUsICd3JykgYXMgZjoKLSsg ICAgICAgICAgICBmLndyaXRlKGNhX2NvbmZpZykKLSsKLSsgICAgICAgIHdpdGggb3BlbihjZXJ0 X2NvbmZfZmlsZSwgJ3cnKSBhcyBmOgotKyAgICAgICAgICAgIGYud3JpdGUoY2VydF9jb25maWcp Ci0rCi0rICAgICAgICAjIEdlbmVyYXRlIE1MLURTQS04NyBDQSBjZXJ0aWZpY2F0ZQotKyAgICAg ICAgbG9nLmluZm8oIkdlbmVyYXRpbmcgTUwtRFNBLTg3IENBIGNlcnRpZmljYXRlLi4uIikKLSsK LSsgICAgICAgICMgR2VuZXJhdGUgQ0EgcHJpdmF0ZSBrZXkKLSsgICAgICAgIHJlc3VsdCA9IHN1 YnByb2Nlc3MucnVuKAotKyAgICAgICAgICAgIFsnb3BlbnNzbCcsICdnZW5wa2V5JywgJy1hbGdv cml0aG0nLCAnTUwtRFNBLTg3JywgJy1vdXQnLCBmJ3tkaXJ9L2NhLmtleSddLAotKyAgICAgICAg ICAgIGNhcHR1cmVfb3V0cHV0PVRydWUsIHRleHQ9VHJ1ZSwgY2hlY2s9VHJ1ZQotKyAgICAgICAg KQotKyAgICAgICAgbG9nLmRlYnVnKGYiQ0Ega2V5IGdlbmVyYXRpb24gb3V0cHV0OiB7cmVzdWx0 LnN0ZGVycn0iKQotKwotKyAgICAgICAgIyBHZW5lcmF0ZSBzZWxmLXNpZ25lZCBDQSBjZXJ0aWZp Y2F0ZQotKyAgICAgICAgcmVzdWx0ID0gc3VicHJvY2Vzcy5ydW4oCi0rICAgICAgICAgICAgWydv cGVuc3NsJywgJ3JlcScsICcteDUwOScsICctbmV3JywgJy1zaGEyNTYnLCAnLWtleScsIGYne2Rp cn0vY2Eua2V5JywKLSsgICAgICAgICAgICAgJy1ub2RlcycsICctZGF5cycsICczNjUwJywgJy1j b25maWcnLCBjYV9jb25mX2ZpbGUsCi0rICAgICAgICAgICAgICctc3ViaicsIGYnL0NOPVRlc3RN TERTQS1DQS9PPVRlc3RNTERTQS1DQS1PcmcvQz1VUycsCi0rICAgICAgICAgICAgICctb3V0Jywg Zid7ZGlyfS9jYS5wZW0nXSwKLSsgICAgICAgICAgICBjYXB0dXJlX291dHB1dD1UcnVlLCB0ZXh0 PVRydWUsIGNoZWNrPVRydWUKLSsgICAgICAgICkKLSsgICAgICAgIGxvZy5kZWJ1ZyhmIkNBIGNl cnQgZ2VuZXJhdGlvbiBvdXRwdXQ6IHtyZXN1bHQuc3RkZXJyfSIpCi0rCi0rICAgICAgICAjIEdl bmVyYXRlIE1MLURTQS02NSBzZXJ2ZXIgY2VydGlmaWNhdGUKLSsgICAgICAgIGxvZy5pbmZvKCJH ZW5lcmF0aW5nIE1MLURTQS02NSBzZXJ2ZXIgY2VydGlmaWNhdGUuLi4iKQotKwotKyAgICAgICAg IyBHZW5lcmF0ZSBzZXJ2ZXIgcHJpdmF0ZSBrZXkKLSsgICAgICAgIHJlc3VsdCA9IHN1YnByb2Nl c3MucnVuKAotKyAgICAgICAgICAgIFsnb3BlbnNzbCcsICdnZW5wa2V5JywgJy1hbGdvcml0aG0n LCAnTUwtRFNBLTY1JywgJy1vdXQnLCBmJ3tkaXJ9L2NlcnQua2V5J10sCi0rICAgICAgICAgICAg Y2FwdHVyZV9vdXRwdXQ9VHJ1ZSwgdGV4dD1UcnVlLCBjaGVjaz1UcnVlCi0rICAgICAgICApCi0r ICAgICAgICBsb2cuZGVidWcoZiJTZXJ2ZXIga2V5IGdlbmVyYXRpb24gb3V0cHV0OiB7cmVzdWx0 LnN0ZGVycn0iKQotKwotKyAgICAgICAgIyBHZW5lcmF0ZSBjZXJ0aWZpY2F0ZSBzaWduaW5nIHJl cXVlc3QKLSsgICAgICAgIHJlc3VsdCA9IHN1YnByb2Nlc3MucnVuKAotKyAgICAgICAgICAgIFsn b3BlbnNzbCcsICdyZXEnLCAnLW5ldycsICctc2hhMjU2JywgJy1rZXknLCBmJ3tkaXJ9L2NlcnQu a2V5JywKLSsgICAgICAgICAgICAgJy1ub2RlcycsICctY29uZmlnJywgY2VydF9jb25mX2ZpbGUs Ci0rICAgICAgICAgICAgICctc3ViaicsIGYnL0NOPVRlc3RNTERTQS1DZXJ0L089VGVzdE1MRFNB LU9yZy9DPVVTJywKLSsgICAgICAgICAgICAgJy1vdXQnLCBmJ3tkaXJ9L2NlcnQuY3NyJ10sCi0r ICAgICAgICAgICAgY2FwdHVyZV9vdXRwdXQ9VHJ1ZSwgdGV4dD1UcnVlLCBjaGVjaz1UcnVlCi0r ICAgICAgICApCi0rICAgICAgICBsb2cuZGVidWcoZiJDU1IgZ2VuZXJhdGlvbiBvdXRwdXQ6IHty ZXN1bHQuc3RkZXJyfSIpCi0rCi0rICAgICAgICAjIFNpZ24gc2VydmVyIGNlcnRpZmljYXRlIHdp dGggQ0EKLSsgICAgICAgIHJlc3VsdCA9IHN1YnByb2Nlc3MucnVuKAotKyAgICAgICAgICAgIFsn b3BlbnNzbCcsICd4NTA5JywgJy1yZXEnLCAnLXNoYTI1NicsICctZGF5cycsICczNjUwJywKLSsg ICAgICAgICAgICAgJy1leHRlbnNpb25zJywgJ3YzX2NlcnQnLCAnLWV4dGZpbGUnLCBjZXJ0X2Nv bmZfZmlsZSwKLSsgICAgICAgICAgICAgJy1pbicsIGYne2Rpcn0vY2VydC5jc3InLCAnLUNBJywg Zid7ZGlyfS9jYS5wZW0nLAotKyAgICAgICAgICAgICAnLUNBa2V5JywgZid7ZGlyfS9jYS5rZXkn LCAnLUNBY3JlYXRlc2VyaWFsJywKLSsgICAgICAgICAgICAgJy1vdXQnLCBmJ3tkaXJ9L2NlcnQu cGVtJ10sCi0rICAgICAgICAgICAgY2FwdHVyZV9vdXRwdXQ9VHJ1ZSwgdGV4dD1UcnVlLCBjaGVj az1UcnVlCi0rICAgICAgICApCi0rICAgICAgICBsb2cuZGVidWcoZiJDZXJ0IHNpZ25pbmcgb3V0 cHV0OiB7cmVzdWx0LnN0ZGVycn0iKQotKwotKyAgICAgICAgIyBDcmVhdGUgUEtDUzEyIGJ1bmRs ZSBmb3Igc2VydmVyIGNlcnRpZmljYXRlCi0rICAgICAgICByZXN1bHQgPSBzdWJwcm9jZXNzLnJ1 bigKLSsgICAgICAgICAgICBbJ29wZW5zc2wnLCAncGtjczEyJywgJy1leHBvcnQnLCAnLWlua2V5 JywgZid7ZGlyfS9jZXJ0LmtleScsCi0rICAgICAgICAgICAgICctaW4nLCBmJ3tkaXJ9L2NlcnQu cGVtJywgJy1uYW1lJywgJ21sZHNhLXNlcnZlci1jZXJ0JywKLSsgICAgICAgICAgICAgJy1vdXQn LCBmJ3tkaXJ9L2NlcnQucDEyJywgJy1wYXNzb3V0JywgJ3Bhc3M6bWxkc2ExMjMnXSwKLSsgICAg ICAgICAgICBjYXB0dXJlX291dHB1dD1UcnVlLCB0ZXh0PVRydWUsIGNoZWNrPVRydWUKLSsgICAg ICAgICkKLSsgICAgICAgIGxvZy5kZWJ1ZyhmIlBLQ1MxMiBjcmVhdGlvbiBvdXRwdXQ6IHtyZXN1 bHQuc3RkZXJyfSIpCi0rCi0rICAgICAgICAjIERpc3BsYXkgY2VydGlmaWNhdGUgZGV0YWlscyBm b3IgZGVidWdnaW5nCi0rICAgICAgICByZXN1bHQgPSBzdWJwcm9jZXNzLnJ1bigKLSsgICAgICAg ICAgICBbJ29wZW5zc2wnLCAneDUwOScsICctdGV4dCcsICctbm9vdXQnLCAnLWluJywgZid7ZGly fS9jYS5wZW0nXSwKLSsgICAgICAgICAgICBjYXB0dXJlX291dHB1dD1UcnVlLCB0ZXh0PVRydWUs IGNoZWNrPVRydWUKLSsgICAgICAgICkKLSsgICAgICAgIGxvZy5pbmZvKGYiQ0EgQ2VydGlmaWNh dGUgZGV0YWlsczpcbntyZXN1bHQuc3Rkb3V0fSIpCi0rCi0rICAgICAgICByZXN1bHQgPSBzdWJw cm9jZXNzLnJ1bigKLSsgICAgICAgICAgICBbJ29wZW5zc2wnLCAneDUwOScsICctdGV4dCcsICct bm9vdXQnLCAnLWluJywgZid7ZGlyfS9jZXJ0LnBlbSddLAotKyAgICAgICAgICAgIGNhcHR1cmVf b3V0cHV0PVRydWUsIHRleHQ9VHJ1ZSwgY2hlY2s9VHJ1ZQotKyAgICAgICAgKQotKyAgICAgICAg bG9nLmluZm8oZiJTZXJ2ZXIgQ2VydGlmaWNhdGUgZGV0YWlsczpcbntyZXN1bHQuc3Rkb3V0fSIp Ci0rCi0rICAgICAgICAjIEFkZCBjZXJ0aWZpY2F0ZXMgdXNpbmcgRHluYW1pY0NlcnRzCi0rICAg ICAgICBkeW5jZXJ0cyA9IER5bmFtaWNDZXJ0cyhpbnN0KQotKwotKyAgICAgICAgIyBBZGQgQ0Eg Y2VydGlmaWNhdGUKLSsgICAgICAgIGxvZy5pbmZvKCJBZGRpbmcgTUwtRFNBIENBIGNlcnRpZmlj YXRlIHRvIER5bmFtaWMgQ2VydGlmaWNhdGVzLi4uIikKLSsgICAgICAgIGR5bmNlcnRzLmFkZF9j ZXJ0KGYne2Rpcn0vY2EucGVtJywgJ1Rlc3RNTERTQV9DQScsIGNhPVRydWUpCi0rCi0rICAgICAg ICAjIEFkZCBzZXJ2ZXIgY2VydGlmaWNhdGUgKHdpdGggb3Igd2l0aG91dCBwcml2YXRlIGtleSBi YXNlZCBvbiBwYXJhbWV0ZXIpCi0rICAgICAgICBpZiB3aXRoX3ByaXZhdGVfa2V5OgotKyAgICAg ICAgICAgIGxvZy5pbmZvKCJBZGRpbmcgTUwtRFNBIHNlcnZlciBjZXJ0aWZpY2F0ZSBXSVRIIHBy aXZhdGUga2V5IHRvIER5bmFtaWMgQ2VydGlmaWNhdGVzLi4uIikKLSsgICAgICAgICAgICAjIE5v dGU6IGNhbm5vdCB1c2UgZHluY2VydHMuYWRkX2NlcnQgd2l0aCBQS0NTMTIgYmVjYXVzZSBweXRo b24zIGNyeXB0b2dyYXBoeQotKyAgICAgICAgICAgICMgbW9kdWxlIGRvZXMgbm90IHlldCBzdXBw b3J0IE1MLURTQS4gSW5zdGVhZCwgdXNlIE9wZW5TU0wgdG8gY29udmVydCB0byBERVIKLSsgICAg ICAgICAgICAjIGFuZCB1c2UgRHluYW1pY0NlcnRzLmNyZWF0ZSgpIGRpcmVjdGx5Ci0rICAgICAg ICAgICAgIyBkeW5jZXJ0cy5hZGRfY2VydChmJ3tkaXJ9L2NlcnQucDEyJywgJ1Rlc3RNTERTQV9D ZXJ0JywgcGtjczEyX3Bhc3N3b3JkPSdtbGRzYTEyMycpCi0rCi0rICAgICAgICAgICAgIyBDb252 ZXJ0IGNlcnRpZmljYXRlIHRvIERFUiB1c2luZyBPcGVuU1NMCi0rICAgICAgICAgICAgcmVzdWx0 ID0gc3VicHJvY2Vzcy5ydW4oCi0rICAgICAgICAgICAgICAgIFsnb3BlbnNzbCcsICd4NTA5Jywg Jy1pbicsIGYne2Rpcn0vY2VydC5wZW0nLCAnLW91dGZvcm0nLCAnREVSJywgJy1vdXQnLCBmJ3tk aXJ9L2NlcnQuZGVyJ10sCi0rICAgICAgICAgICAgICAgIGNhcHR1cmVfb3V0cHV0PVRydWUsIHRl eHQ9VHJ1ZSwgY2hlY2s9VHJ1ZQotKyAgICAgICAgICAgICkKLSsKLSsgICAgICAgICAgICAjIENv bnZlcnQgcHJpdmF0ZSBrZXkgdG8gREVSIFByaXZhdGVLZXlJbmZvIChQS0NTIzgpIHVzaW5nIE9w ZW5TU0wKLSsgICAgICAgICAgICByZXN1bHQgPSBzdWJwcm9jZXNzLnJ1bigKLSsgICAgICAgICAg ICAgICAgWydvcGVuc3NsJywgJ3BrY3M4JywgJy10b3BrOCcsICctbm9jcnlwdCcsICctaW4nLCBm J3tkaXJ9L2NlcnQua2V5JywKLSsgICAgICAgICAgICAgICAgICctb3V0Zm9ybScsICdERVInLCAn LW91dCcsIGYne2Rpcn0vY2VydF9rZXkuZGVyJ10sCi0rICAgICAgICAgICAgICAgIGNhcHR1cmVf b3V0cHV0PVRydWUsIHRleHQ9VHJ1ZSwgY2hlY2s9VHJ1ZQotKyAgICAgICAgICAgICkKLSsKLSsg ICAgICAgICAgICAjIFJlYWQgREVSIGRhdGEKLSsgICAgICAgICAgICB3aXRoIG9wZW4oZid7ZGly fS9jZXJ0LmRlcicsICdyYicpIGFzIGY6Ci0rICAgICAgICAgICAgICAgIGNlcnRfZGVyID0gZi5y ZWFkKCkKLSsgICAgICAgICAgICB3aXRoIG9wZW4oZid7ZGlyfS9jZXJ0X2tleS5kZXInLCAncmIn KSBhcyBmOgotKyAgICAgICAgICAgICAgICBrZXlfZGVyID0gZi5yZWFkKCkKLSsKLSsgICAgICAg ICAgICAjIENyZWF0ZSBlbnRyeSBkaXJlY3RseSB3aXRoIERFUiBkYXRhCi0rICAgICAgICAgICAg cHJvcGVydGllcyA9IHsKLSsgICAgICAgICAgICAgICAgRFlDQVRUUl9DTjogJ1Rlc3RNTERTQV9D ZXJ0JywKLSsgICAgICAgICAgICAgICAgRFlDQVRUUl9DRVJUREVSOiBjZXJ0X2RlciwKLSsgICAg ICAgICAgICAgICAgRFlDQVRUUl9QS0VZREVSOiBrZXlfZGVyLAotKyAgICAgICAgICAgIH0KLSsg ICAgICAgICAgICByZG4gPSBmIntEWUNBVFRSX0NOfT1UZXN0TUxEU0FfQ2VydCIKLSsgICAgICAg ICAgICBkeW5jZXJ0cy5jcmVhdGUocmRuPXJkbiwgcHJvcGVydGllcz1wcm9wZXJ0aWVzKQotKyAg ICAgICAgZWxzZToKLSsgICAgICAgICAgICBsb2cuaW5mbygiQWRkaW5nIE1MLURTQSBzZXJ2ZXIg Y2VydGlmaWNhdGUgV0lUSE9VVCBwcml2YXRlIGtleSB0byBEeW5hbWljIENlcnRpZmljYXRlcy4u LiIpCi0rICAgICAgICAgICAgZHluY2VydHMuYWRkX2NlcnQoZid7ZGlyfS9jZXJ0LnBlbScsICdU ZXN0TUxEU0FfQ2VydCcpCi0rCi0rICAgICAgICAjIFZlcmlmeSBDQSBjZXJ0aWZpY2F0ZSBtZXRh ZGF0YQotKyAgICAgICAgbG9nLmluZm8oIlZlcmlmeWluZyBDQSBjZXJ0aWZpY2F0ZSBtZXRhZGF0 YS4uLiIpCi0rICAgICAgICBjYV9vYmogPSBkeW5jZXJ0cy5nZXRfY2VydF9vYmooJ1Rlc3RNTERT QV9DQScpCi0rICAgICAgICBhc3NlcnQgY2Ffb2JqIGlzIG5vdCBOb25lCi0rCi0rICAgICAgICAj IFZlcmlmeSBzdWJqZWN0IGFuZCBpc3N1ZXIKLSsgICAgICAgIGNhX3N1YmplY3QgPSBjYV9vYmou Z2V0X2F0dHJfdmFsX3V0ZjgoJ2RzRHluYW1pY0NlcnRpZmljYXRlU3ViamVjdCcpCi0rICAgICAg ICBjYV9pc3N1ZXIgPSBjYV9vYmouZ2V0X2F0dHJfdmFsX3V0ZjgoJ2RzRHluYW1pY0NlcnRpZmlj YXRlSXNzdWVyJykKLSsgICAgICAgIGxvZy5pbmZvKGYiQ0EgU3ViamVjdDoge2NhX3N1YmplY3R9 IikKLSsgICAgICAgIGxvZy5pbmZvKGYiQ0EgSXNzdWVyOiB7Y2FfaXNzdWVyfSIpCi0rICAgICAg ICBhc3NlcnQgJ1Rlc3RNTERTQS1DQScgaW4gY2Ffc3ViamVjdAotKyAgICAgICAgYXNzZXJ0IGNh X3N1YmplY3QgPT0gY2FfaXNzdWVyICAjIFNlbGYtc2lnbmVkCi0rCi0rICAgICAgICAjIFZlcmlm eSBDQSBmbGFncwotKyAgICAgICAgaXNfY2EgPSBjYV9vYmouZ2V0X2F0dHJfdmFsX3V0ZjhfbCgn ZHNEeW5hbWljQ2VydGlmaWNhdGVJc0NBJykKLSsgICAgICAgIGlzX3Jvb3RfY2EgPSBjYV9vYmou Z2V0X2F0dHJfdmFsX3V0ZjhfbCgnZHNEeW5hbWljQ2VydGlmaWNhdGVJc1Jvb3RDQScpCi0rICAg ICAgICBsb2cuaW5mbyhmIkNBIGlzQ0E6IHtpc19jYX0iKQotKyAgICAgICAgbG9nLmluZm8oZiJD QSBpc1Jvb3RDQToge2lzX3Jvb3RfY2F9IikKLSsgICAgICAgIGFzc2VydCBpc19jYSA9PSAndHJ1 ZScKLSsgICAgICAgIGFzc2VydCBpc19yb290X2NhID09ICd0cnVlJwotKwotKyAgICAgICAgIyBW ZXJpZnkgQ0Ega2V5IGFsZ29yaXRobSBjb250YWlucyBNTC1EU0EKLSsgICAgICAgIGNhX2tleV9h bGdvID0gY2Ffb2JqLmdldF9hdHRyX3ZhbF91dGY4KCdkc0R5bmFtaWNDZXJ0aWZpY2F0ZUtleUFs Z29yaXRobScpCi0rICAgICAgICBsb2cuaW5mbyhmIkNBIEtleSBBbGdvcml0aG06IHtjYV9rZXlf YWxnb30iKQotKyAgICAgICAgYXNzZXJ0IGNhX2tleV9hbGdvIGlzIG5vdCBOb25lCi0rICAgICAg ICBhc3NlcnQgJ01MLURTQScgaW4gY2Ffa2V5X2FsZ28udXBwZXIoKSBvciAnRElMSVRISVVNJyBp biBjYV9rZXlfYWxnby51cHBlcigpIG9yICcyLjE2Ljg0MC4xLjEwMS4zLjQuMycgaW4gY2Ffa2V5 X2FsZ28KLSsKLSsgICAgICAgICMgVmVyaWZ5IENBIGhhcyBubyBwcml2YXRlIGtleSAoUEVNIGZp bGUgb25seSBjb250YWlucyBjZXJ0KQotKyAgICAgICAgY2FfaGFzX2tleSA9IGNhX29iai5nZXRf YXR0cl92YWxfdXRmOF9sKCdkc0R5bmFtaWNDZXJ0aWZpY2F0ZUhhc1ByaXZhdGVLZXknKQotKyAg ICAgICAgbG9nLmluZm8oZiJDQSBoYXNQcml2YXRlS2V5OiB7Y2FfaGFzX2tleX0iKQotKyAgICAg ICAgYXNzZXJ0IGNhX2hhc19rZXkgPT0gJ2ZhbHNlJwotKwotKyAgICAgICAgIyBWZXJpZnkgc2Vy dmVyIGNlcnRpZmljYXRlIG1ldGFkYXRhCi0rICAgICAgICBsb2cuaW5mbygiVmVyaWZ5aW5nIHNl cnZlciBjZXJ0aWZpY2F0ZSBtZXRhZGF0YS4uLiIpCi0rICAgICAgICBjZXJ0X29iaiA9IGR5bmNl cnRzLmdldF9jZXJ0X29iaignVGVzdE1MRFNBX0NlcnQnKQotKyAgICAgICAgYXNzZXJ0IGNlcnRf b2JqIGlzIG5vdCBOb25lCi0rCi0rICAgICAgICAjIFZlcmlmeSBzdWJqZWN0Ci0rICAgICAgICBj ZXJ0X3N1YmplY3QgPSBjZXJ0X29iai5nZXRfYXR0cl92YWxfdXRmOCgnZHNEeW5hbWljQ2VydGlm aWNhdGVTdWJqZWN0JykKLSsgICAgICAgIGNlcnRfaXNzdWVyID0gY2VydF9vYmouZ2V0X2F0dHJf dmFsX3V0ZjgoJ2RzRHluYW1pY0NlcnRpZmljYXRlSXNzdWVyJykKLSsgICAgICAgIGxvZy5pbmZv KGYiU2VydmVyIENlcnQgU3ViamVjdDoge2NlcnRfc3ViamVjdH0iKQotKyAgICAgICAgbG9nLmlu Zm8oZiJTZXJ2ZXIgQ2VydCBJc3N1ZXI6IHtjZXJ0X2lzc3Vlcn0iKQotKyAgICAgICAgYXNzZXJ0 ICdUZXN0TUxEU0EtQ2VydCcgaW4gY2VydF9zdWJqZWN0Ci0rCi0rICAgICAgICAjIFZlcmlmeSBz ZXJ2ZXIgY2VydCBpcyBub3QgYSBDQQotKyAgICAgICAgY2VydF9pc19jYSA9IGNlcnRfb2JqLmdl dF9hdHRyX3ZhbF91dGY4X2woJ2RzRHluYW1pY0NlcnRpZmljYXRlSXNDQScpCi0rICAgICAgICBs b2cuaW5mbyhmIlNlcnZlciBDZXJ0IGlzQ0E6IHtjZXJ0X2lzX2NhfSIpCi0rICAgICAgICBhc3Nl cnQgY2VydF9pc19jYSA9PSAnZmFsc2UnCi0rCi0rICAgICAgICAjIFZlcmlmeSBzZXJ2ZXIgY2Vy dCBrZXkgYWxnb3JpdGhtIGNvbnRhaW5zIE1MLURTQQotKyAgICAgICAgY2VydF9rZXlfYWxnbyA9 IGNlcnRfb2JqLmdldF9hdHRyX3ZhbF91dGY4KCdkc0R5bmFtaWNDZXJ0aWZpY2F0ZUtleUFsZ29y aXRobScpCi0rICAgICAgICBsb2cuaW5mbyhmIlNlcnZlciBDZXJ0IEtleSBBbGdvcml0aG06IHtj ZXJ0X2tleV9hbGdvfSIpCi0rICAgICAgICBhc3NlcnQgY2VydF9rZXlfYWxnbyBpcyBub3QgTm9u ZQotKyAgICAgICAgYXNzZXJ0ICdNTC1EU0EnIGluIGNlcnRfa2V5X2FsZ28udXBwZXIoKQotKwot KyAgICAgICAgIyBWZXJpZnkgc2VydmVyIGNlcnQgaGFzIHByaXZhdGUga2V5IGJhc2VkIG9uIHBh cmFtZXRlcgotKyAgICAgICAgY2VydF9oYXNfa2V5ID0gY2VydF9vYmouZ2V0X2F0dHJfdmFsX3V0 ZjhfbCgnZHNEeW5hbWljQ2VydGlmaWNhdGVIYXNQcml2YXRlS2V5JykKLSsgICAgICAgIGxvZy5p bmZvKGYiU2VydmVyIENlcnQgaGFzUHJpdmF0ZUtleToge2NlcnRfaGFzX2tleX0iKQotKyAgICAg ICAgZXhwZWN0ZWRfaGFzX2tleSA9ICd0cnVlJyBpZiB3aXRoX3ByaXZhdGVfa2V5IGVsc2UgJ2Zh bHNlJwotKyAgICAgICAgYXNzZXJ0IGNlcnRfaGFzX2tleSA9PSBleHBlY3RlZF9oYXNfa2V5LCBc Ci0rICAgICAgICAgICAgZiJFeHBlY3RlZCBoYXNQcml2YXRlS2V5PXtleHBlY3RlZF9oYXNfa2V5 fSwgZ290IHtjZXJ0X2hhc19rZXl9IgotKwotKyAgICAgICAgIyBWZXJpZnkgc2VyaWFsIG51bWJl cnMgYXJlIHByZXNlbnQKLSsgICAgICAgIGNhX3NlcmlhbCA9IGNhX29iai5nZXRfYXR0cl92YWxf dXRmOCgnZHNEeW5hbWljQ2VydGlmaWNhdGVTZXJpYWxOdW1iZXInKQotKyAgICAgICAgY2VydF9z ZXJpYWwgPSBjZXJ0X29iai5nZXRfYXR0cl92YWxfdXRmOCgnZHNEeW5hbWljQ2VydGlmaWNhdGVT ZXJpYWxOdW1iZXInKQotKyAgICAgICAgbG9nLmluZm8oZiJDQSBTZXJpYWw6IHtjYV9zZXJpYWx9 IikKLSsgICAgICAgIGxvZy5pbmZvKGYiU2VydmVyIENlcnQgU2VyaWFsOiB7Y2VydF9zZXJpYWx9 IikKLSsgICAgICAgIGFzc2VydCBjYV9zZXJpYWwgaXMgbm90IE5vbmUgYW5kIGxlbihjYV9zZXJp YWwpID4gMAotKyAgICAgICAgYXNzZXJ0IGNlcnRfc2VyaWFsIGlzIG5vdCBOb25lIGFuZCBsZW4o Y2VydF9zZXJpYWwpID4gMAotKwotKyAgICAgICAgIyBWZXJpZnkgdmFsaWRpdHkgZGF0ZXMKLSsg ICAgICAgIGNhX25vdF9iZWZvcmUgPSBjYV9vYmouZ2V0X2F0dHJfdmFsX3V0ZjgoJ2RzRHluYW1p Y0NlcnRpZmljYXRlTm90QmVmb3JlJykKLSsgICAgICAgIGNhX25vdF9hZnRlciA9IGNhX29iai5n ZXRfYXR0cl92YWxfdXRmOCgnZHNEeW5hbWljQ2VydGlmaWNhdGVOb3RBZnRlcicpCi0rICAgICAg ICBjZXJ0X25vdF9iZWZvcmUgPSBjZXJ0X29iai5nZXRfYXR0cl92YWxfdXRmOCgnZHNEeW5hbWlj Q2VydGlmaWNhdGVOb3RCZWZvcmUnKQotKyAgICAgICAgY2VydF9ub3RfYWZ0ZXIgPSBjZXJ0X29i ai5nZXRfYXR0cl92YWxfdXRmOCgnZHNEeW5hbWljQ2VydGlmaWNhdGVOb3RBZnRlcicpCi0rICAg ICAgICBsb2cuaW5mbyhmIkNBIFZhbGlkOiB7Y2Ffbm90X2JlZm9yZX0gdG8ge2NhX25vdF9hZnRl cn0iKQotKyAgICAgICAgbG9nLmluZm8oZiJTZXJ2ZXIgQ2VydCBWYWxpZDoge2NlcnRfbm90X2Jl Zm9yZX0gdG8ge2NlcnRfbm90X2FmdGVyfSIpCi0rICAgICAgICBhc3NlcnQgY2Ffbm90X2JlZm9y ZSBpcyBub3QgTm9uZQotKyAgICAgICAgYXNzZXJ0IGNhX25vdF9hZnRlciBpcyBub3QgTm9uZQot KyAgICAgICAgYXNzZXJ0IGNlcnRfbm90X2JlZm9yZSBpcyBub3QgTm9uZQotKyAgICAgICAgYXNz ZXJ0IGNlcnRfbm90X2FmdGVyIGlzIG5vdCBOb25lCi0rCi0rICAgICAgICAjIFZlcmlmeSBTdWJq ZWN0IEFsdGVybmF0aXZlIE5hbWVzIG9uIHNlcnZlciBjZXJ0Ci0rICAgICAgICBjZXJ0X3NhbiA9 IGNlcnRfb2JqLmdldF9hdHRyX3ZhbHNfdXRmOCgnZHNEeW5hbWljQ2VydGlmaWNhdGVTdWJqZWN0 QWx0TmFtZScpCi0rICAgICAgICBpZiBjZXJ0X3NhbjoKLSsgICAgICAgICAgICBsb2cuaW5mbyhm IlNlcnZlciBDZXJ0IFNBTnM6IHtjZXJ0X3Nhbn0iKQotKyAgICAgICAgICAgIHNhbl9zdHIgPSAn ICcuam9pbihjZXJ0X3NhbikKLSsgICAgICAgICAgICBhc3NlcnQgJ2xvY2FsaG9zdCcgaW4gc2Fu X3N0ciBvciAnMTI3LjAuMC4xJyBpbiBzYW5fc3RyCi0rCi0rICAgICAgICAjIFRlc3QgbGlzdGlu ZyBvcGVyYXRpb25zCi0rICAgICAgICBsb2cuaW5mbygiVGVzdGluZyBjZXJ0aWZpY2F0ZSBsaXN0 aW5nIG9wZXJhdGlvbnMuLi4iKQotKwotKyAgICAgICAgY2FfbGlzdCA9IGR5bmNlcnRzLmxpc3Rf Y2FfY2VydHMoKQotKyAgICAgICAgbWxkc2FfY2FzID0gW2MgZm9yIGMgaW4gY2FfbGlzdCBpZiBj WydjbiddID09ICdUZXN0TUxEU0FfQ0EnXQotKyAgICAgICAgYXNzZXJ0IGxlbihtbGRzYV9jYXMp ID09IDEKLSsgICAgICAgIGxvZy5pbmZvKGYiRm91bmQgTUwtRFNBIENBIGluIGxpc3Q6IHttbGRz YV9jYXNbMF19IikKLSsKLSsgICAgICAgIGNlcnRfbGlzdCA9IGR5bmNlcnRzLmxpc3RfY2VydHMo KQotKyAgICAgICAgbWxkc2FfY2VydHMgPSBbYyBmb3IgYyBpbiBjZXJ0X2xpc3QgaWYgY1snY24n XSA9PSAnVGVzdE1MRFNBX0NlcnQnXQotKyAgICAgICAgYXNzZXJ0IGxlbihtbGRzYV9jZXJ0cykg PT0gMQotKyAgICAgICAgbG9nLmluZm8oZiJGb3VuZCBNTC1EU0Egc2VydmVyIGNlcnQgaW4gbGlz dDoge21sZHNhX2NlcnRzWzBdfSIpCi0rCi0rICAgICAgICAjIFRlc3QgZ2V0X2NlcnRfZGV0YWls cwotKyAgICAgICAgY2FfZGV0YWlscyA9IGR5bmNlcnRzLmdldF9jZXJ0X2RldGFpbHMoJ1Rlc3RN TERTQV9DQScpCi0rICAgICAgICBhc3NlcnQgY2FfZGV0YWlscyBpcyBub3QgTm9uZQotKyAgICAg ICAgYXNzZXJ0IGNhX2RldGFpbHNbJ2NuJ10gPT0gJ1Rlc3RNTERTQV9DQScKLSsgICAgICAgIGFz c2VydCAnc3ViamVjdCcgaW4gY2FfZGV0YWlscwotKyAgICAgICAgYXNzZXJ0ICdpc3N1ZXInIGlu IGNhX2RldGFpbHMKLSsgICAgICAgIGxvZy5pbmZvKGYiQ0EgZGV0YWlsczoge2NhX2RldGFpbHN9 IikKLSsKLSsgICAgICAgIGNlcnRfZGV0YWlscyA9IGR5bmNlcnRzLmdldF9jZXJ0X2RldGFpbHMo J1Rlc3RNTERTQV9DZXJ0JykKLSsgICAgICAgIGFzc2VydCBjZXJ0X2RldGFpbHMgaXMgbm90IE5v bmUKLSsgICAgICAgIGFzc2VydCBjZXJ0X2RldGFpbHNbJ2NuJ10gPT0gJ1Rlc3RNTERTQV9DZXJ0 JwotKyAgICAgICAgbG9nLmluZm8oZiJTZXJ2ZXIgY2VydCBkZXRhaWxzOiB7Y2VydF9kZXRhaWxz fSIpCi0rCi0rICAgICAgICAjIENsZWFudXAKLSsgICAgICAgIGxvZy5pbmZvKCJDbGVhbmluZyB1 cCBNTC1EU0EgY2VydGlmaWNhdGVzLi4uIikKLSsgICAgICAgIGR5bmNlcnRzLmRlbF9jZXJ0KCdU ZXN0TUxEU0FfQ0EnKQotKyAgICAgICAgZHluY2VydHMuZGVsX2NlcnQoJ1Rlc3RNTERTQV9DZXJ0 JykKLSsKLSsgICAgICAgIGtleV9zdGF0dXMgPSAid2l0aCBwcml2YXRlIGtleSIgaWYgd2l0aF9w cml2YXRlX2tleSBlbHNlICJ3aXRob3V0IHByaXZhdGUga2V5IgotKyAgICAgICAgbG9nLmluZm8o ZiJNTC1EU0EgRHluYW1pYyBDZXJ0aWZpY2F0ZXMgdGVzdCAoe2tleV9zdGF0dXN9KSBjb21wbGV0 ZWQgc3VjY2Vzc2Z1bGx5ISIpCi0rCi0rICAgIGV4Y2VwdCBzdWJwcm9jZXNzLkNhbGxlZFByb2Nl c3NFcnJvciBhcyBlOgotKyAgICAgICAgbG9nLmVycm9yKGYiT3BlblNTTCBjb21tYW5kIGZhaWxl ZDoge2V9IikKLSsgICAgICAgIGxvZy5lcnJvcihmInN0ZG91dDoge2Uuc3Rkb3V0fSIpCi0rICAg ICAgICBsb2cuZXJyb3IoZiJzdGRlcnI6IHtlLnN0ZGVycn0iKQotKyAgICAgICAgcmFpc2UKLSsg ICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotKyAgICAgICAgbG9nLmVycm9yKGYiVGVzdCBmYWls ZWQgd2l0aCBleGNlcHRpb246IHtlfSIpCi0rICAgICAgICByYWlzZQotKyAgICBmaW5hbGx5Ogot KyAgICAgICAgaWYgbm90IERFQlVHR0lORzoKLSsgICAgICAgICAgICBzaHV0aWwucm10cmVlKGRp ciwgaWdub3JlX2Vycm9ycz1UcnVlKQotKwotKwotK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6 Ci0rICAgIENVUlJFTlRfRklMRSA9IG9zLnBhdGgucmVhbHBhdGgoX19maWxlX18pCi0rICAgIHB5 dGVzdC5tYWluKFsiLXMiLCAiLXYiLCBDVVJSRU5UX0ZJTEVdKQotZGlmZiAtLWdpdCBhL2RpcnNy dnRlc3RzL3Rlc3RzL3N1aXRlcy90bHMvbWxkc2FfdGVzdC5weSBiL2RpcnNydnRlc3RzL3Rlc3Rz L3N1aXRlcy90bHMvbWxkc2FfdGVzdC5weQotaW5kZXggZDZjYmFmNjYyLi4yNDUwNjliODYgMTAw NjQ0Ci0tLS0gYS9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvdGxzL21sZHNhX3Rlc3QucHkKLSsr KyBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy90bHMvbWxkc2FfdGVzdC5weQotQEAgLTEwLDEx ICsxMCw5IEBAIGltcG9ydCBsb2dnaW5nCi0gaW1wb3J0IHB5dGVzdAotIGltcG9ydCBvcwotIGlt cG9ydCBzeXMKLS1pbXBvcnQgaXRlcnRvb2xzCi0taW1wb3J0IHJwbQotIGltcG9ydCBzb2NrZXQK LSBpbXBvcnQgc3VicHJvY2VzcwotLWZyb20gbGliMzg5LnV0aWxzIGltcG9ydCBkc19pc19vbGRl cgotK2Zyb20gbGliMzg5LnV0aWxzIGltcG9ydCBkc19pc19vbGRlciwgcnBtX2lzX29sZGVyCi0g ZnJvbSBsaWIzODkuX2NvbnN0YW50cyBpbXBvcnQgRE5fRE0sIFBXX0RNLCBERUZBVUxUX1NVRkZJ WAotIGZyb20gbGliMzg5LmNvbmZpZyBpbXBvcnQgRW5jcnlwdGlvbiwgQ2VydG1hcExlZ2FjeQot IGZyb20gbGliMzg5LmlkbS51c2VyIGltcG9ydCBVc2VyQWNjb3VudAotQEAgLTMxLDIxICsyOSw2 IEBAIGVsc2U6Ci0gbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCi0gCi0gCi0tZGVm IHJwbV9pc19vbGRlcihwa2csIHZlcnNpb24pOgotLSAgICB0cyA9IHJwbS5UcmFuc2FjdGlvblNl dCgpCi0tICAgIG1pID0gdHMuZGJNYXRjaCgnbmFtZScsIHBrZykKLS0gICAgZm9yIGggaW4gbWk6 Ci0tICAgICAgICBwcmludChmIntwa2d9IHtoWyd2ZXJzaW9uJ119IHt2ZXJzaW9ufSIpCi0tICAg ICAgICBmb3IgbjEsbjIgaW4gaXRlcnRvb2xzLnppcF9sb25nZXN0KGhbJ3ZlcnNpb24nXS5zcGxp dCgnLicpLCB2ZXJzaW9uLnNwbGl0KCcuJyksIGZpbGx2YWx1ZT0iIik6Ci0tICAgICAgICAgICAg dHJ5OgotLSAgICAgICAgICAgICAgICBpZiBpbnQobjEpIDwgaW50KG4yKToKLS0gICAgICAgICAg ICAgICAgICAgIHJldHVybiBUcnVlCi0tICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6Ci0t ICAgICAgICAgICAgICAgIGlmIG4xIDwgbjI6Ci0tICAgICAgICAgICAgICAgICAgICByZXR1cm4g VHJ1ZQotLSAgICByZXR1cm4gRmFsc2UKLS0KLS0KLSBzY3JpcHRfY29udGVudD0iIiIKLSAjIS9i aW4vYmFzaAotIHNldCAtZSAgIyBFeGl0IGlmIGEgY29tbWFuZCBmYWlscwotZGlmZiAtLWdpdCBh L2xkYXAvc2VydmVycy9zbGFwZC9keW5jZXJ0cy5jIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2R5bmNl cnRzLmMKLWluZGV4IGVmZWFhNmViNi4uNmQ3OTdhMTI3IDEwMDY0NAotLS0tIGEvbGRhcC9zZXJ2 ZXJzL3NsYXBkL2R5bmNlcnRzLmMKLSsrKyBiL2xkYXAvc2VydmVycy9zbGFwZC9keW5jZXJ0cy5j Ci1AQCAtNDQ0LDYgKzQ0NCw5IEBAIGtleV9hbGdvKENFUlRDZXJ0aWZpY2F0ZSAqY2VydCkKLSAJ c3dpdGNoIChrZXlUeXBlKSB7Ci0gICAgICAgICBjYXNlIHJzYUtleTogcmV0dXJuICJSU0EiOwot ICAgICAgICAgY2FzZSBlY0tleTogcmV0dXJuICJFQyI7Ci0rI2lmZGVmIE1BWF9NTF9EU0FfUFJJ VkFURV9LRVlfTEVOCi0rICAgICAgICBjYXNlIG1sZHNhS2V5OiByZXR1cm4gIk1MLURTQSI7Ci0r I2VuZGlmCi0gICAgICAgICBkZWZhdWx0OiByZXR1cm4gIlVOS05PV04iOwotICAgICB9Ci0gfQot QEAgLTU3Nyw4ICs1ODAsMTMgQEAgdmVyaWZ5X2NlcnQoU2xhcGlfRW50cnkgKmUsIENFUlRDZXJ0 aWZpY2F0ZSAqY2VydCwgY29uc3QgY2hhciAqYXR0cm5hbWUpCi0gc3RhdGljIGJlcl90YWdfdAot IHNhbnNlX2J2MiAoQmVyRWxlbWVudCAqYmVyLCBnZW5lcmFsX25hbWVfdmFsdWVfdCAqdmFsKQot IHsKLSsgICAgYmVyX3RhZ190IHJjID0gMDsKLSAgICAgdmFsLT5uYnZhbHMgPSAyOwotLSAgICBy ZXR1cm4gYmVyX3NjYW5mKGJlciwgIntvb30iLCAmdmFsLT52YWxzWzBdLCAmdmFsLT52YWxzWzFd KTsKLSsgICAgcmMgPSBiZXJfc2NhbmYoYmVyLCAie29vfSIsICZ2YWwtPnZhbHNbMF0sICZ2YWwt PnZhbHNbMV0pOwotKyAgICBpZiAodmFsLT52YWxzWzBdLmJ2X2xlbiA9PSAwKSB7Ci0rICAgICAg ICByZXR1cm4gTEJFUl9FUlJPUjsKLSsgICAgfQotKyAgICByZXR1cm4gcmM7Ci0gfQotIAotIC8q Ci1AQCAtNTg5LDggKzU5NywxMyBAQCBzYW5zZV9idjIgKEJlckVsZW1lbnQgKmJlciwgZ2VuZXJh bF9uYW1lX3ZhbHVlX3QgKnZhbCkKLSBzdGF0aWMgYmVyX3RhZ190Ci0gc2Fuc2VfZWRpIChCZXJF bGVtZW50ICpiZXIsIGdlbmVyYWxfbmFtZV92YWx1ZV90ICp2YWwpCi0gewotKyAgICBiZXJfdGFn X3QgcmMgPSAwOwotICAgICB2YWwtPm5idmFscyA9IDE7Ci0tICAgIHJldHVybiBiZXJfc2NhbmYo YmVyLCAie299IiwgJnZhbC0+dmFsc1swXSk7Ci0rICAgIHJjID0gYmVyX3NjYW5mKGJlciwgIntv fSIsICZ2YWwtPnZhbHNbMF0pOwotKyAgICBpZiAodmFsLT52YWxzWzBdLmJ2X2xlbiA9PSAwKSB7 Ci0rICAgICAgICByZXR1cm4gTEJFUl9FUlJPUjsKLSsgICAgfQotKyAgICByZXR1cm4gcmM7Ci0g fQotIAotIC8qCi1AQCAtNjAwLDggKzYxMywxMyBAQCBzYW5zZV9lZGkgKEJlckVsZW1lbnQgKmJl ciwgZ2VuZXJhbF9uYW1lX3ZhbHVlX3QgKnZhbCkKLSBzdGF0aWMgYmVyX3RhZ190Ci0gc2Fuc2Vf YnYxIChCZXJFbGVtZW50ICpiZXIsIGdlbmVyYWxfbmFtZV92YWx1ZV90ICp2YWwpCi0gewotKyAg ICBiZXJfdGFnX3QgcmMgPSAwOwotICAgICB2YWwtPm5idmFscyA9IDE7Ci0tICAgIHJldHVybiBi ZXJfc2NhbmYoYmVyLCAibyIsICZ2YWwtPnZhbHNbMF0pOwotKyAgICByYyA9IGJlcl9zY2FuZihi ZXIsICJvIiwgJnZhbC0+dmFsc1swXSk7Ci0rICAgIGlmICh2YWwtPnZhbHNbMF0uYnZfbGVuID09 IDApIHsKLSsgICAgICAgIHJldHVybiBMQkVSX0VSUk9SOwotKyAgICB9Ci0rICAgIHJldHVybiBy YzsKLSB9Ci0gCi0gLyoKLUBAIC02MTEsOSArNjI5LDExIEBAIHNhbnNlX2J2MSAoQmVyRWxlbWVu dCAqYmVyLCBnZW5lcmFsX25hbWVfdmFsdWVfdCAqdmFsKQotIHN0YXRpYyBiZXJfdGFnX3QKLSBz YW5zZV9idjAgKEJlckVsZW1lbnQgKmJlciwgZ2VuZXJhbF9uYW1lX3ZhbHVlX3QgKnZhbCkKLSB7 Ci0rICAgIGJlcl90YWdfdCByYyA9IDA7Ci0gICAgIGJlcl90YWdfdCB0YWcgPSAwOwotICAgICB2 YWwtPm5idmFscyA9IDA7Ci0tICAgIHJldHVybiBiZXJfc2NhbmYoYmVyLCAiVCIsICZ0YWcpOwot KyAgICByYyA9IGJlcl9zY2FuZihiZXIsICJUIiwgJnRhZyk7Ci0rICAgIHJldHVybiByYzsKLSB9 Ci0gCi0gLyogRnJlZSBkYXRhIHdpdGhpbiBnZW5lcmFsX25hbWVfdmFsdWVfdCAqLwotQEAgLTY5 Myw3ICs3MTMsMjAgQEAgZ253X2NiKGdlbmVyYWxfbmFtZV90eXBlX3QgZ250LCBjb25zdCBnZW5l cmFsX25hbWVfdmFsdWVfdCAqdmFsLCB2b2lkICphcmcpCi0gICAgIHN3aXRjaCAodmFsLT5uYnZh bHMpIHsKLSAgICAgICAgIGNhc2UgMToKLSAgICAgICAgICAgICBpZiAoZ250ID09IGdudF9pcGFk ZHJlc3MpIHsKLS0gICAgICAgICAgICAgICAgLyogU2hvdWxkIGNvbnZlcnQgdGhlIGFkZHJlc3Mg dG8gc3RyaW5nICovCi0rICAgICAgICAgICAgICAgIC8qIExldHMgY29udmVydCB0aGUgYWRkcmVz cyB0byBzdHJpbmcgKi8KLSsgICAgICAgICAgICAgICAgaWYgKHZhbC0+dmFsc1swXS5idl9sZW4g PT0gNCkgewotKyAgICAgICAgICAgICAgICAgICAgLyogSVB2NCBhZGRyZXNzICovCi0rICAgICAg ICAgICAgICAgICAgICBzdHIgPSBzbGFwaV9jaF9tYWxsb2MoSU5FVF9BRERSU1RSTEVOKTsKLSsg ICAgICAgICAgICAgICAgICAgIGlmIChpbmV0X250b3AoQUZfSU5FVCwgdmFsLT52YWxzWzBdLmJ2 X3ZhbCwgc3RyLCBJTkVUX0FERFJTVFJMRU4pID09IE5VTEwpIHsKLSsgICAgICAgICAgICAgICAg ICAgICAgICBzbGFwaV9jaF9mcmVlX3N0cmluZygmc3RyKTsKLSsgICAgICAgICAgICAgICAgICAg IH0KLSsgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWwtPnZhbHNbMF0uYnZfbGVuID09IDE2 KSB7Ci0rICAgICAgICAgICAgICAgICAgICAvKiBJUHY2IGFkZHJlc3MgKi8KLSsgICAgICAgICAg ICAgICAgICAgIHN0ciA9IHNsYXBpX2NoX21hbGxvYyhJTkVUNl9BRERSU1RSTEVOKTsKLSsgICAg ICAgICAgICAgICAgICAgIGlmIChpbmV0X250b3AoQUZfSU5FVDYsIHZhbC0+dmFsc1swXS5idl92 YWwsIHN0ciwgSU5FVDZfQUREUlNUUkxFTikgPT0gTlVMTCkgewotKyAgICAgICAgICAgICAgICAg ICAgICAgIHNsYXBpX2NoX2ZyZWVfc3RyaW5nKCZzdHIpOwotKyAgICAgICAgICAgICAgICAgICAg fQotKyAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg ICAgICAgc2l6ZV90IGxlbiA9IHZhbC0+dmFsc1swXS5idl9sZW47Ci0gICAgICAgICAgICAgICAg IHN0ciA9IHNsYXBpX2NoX21hbGxvYyhsZW4rMSk7Ci1kaWZmIC0tZ2l0IGEvc3JjL2xpYjM4OS9s aWIzODkvbnNzX3NzbC5weSBiL3NyYy9saWIzODkvbGliMzg5L25zc19zc2wucHkKLWluZGV4IGZh ZTY1ZDE5Yy4uYjBkMmUxMTViIDEwMDY0NAotLS0tIGEvc3JjL2xpYjM4OS9saWIzODkvbnNzX3Nz bC5weQotKysrIGIvc3JjL2xpYjM4OS9saWIzODkvbnNzX3NzbC5weQotQEAgLTI0Nyw2ICsyNDcs MTMgQEAgb25seS4KLSAgICAgICAgIGNvZGUuIEluc3RlYWQsIHdlIHBhcnNlIHRoZSBvdXRwdXQg b2YgYG9wZW5zc2wgdmVyc2lvbmAgYW5kIHRyeSB0bwotICAgICAgICAgZmlndXJlIG91dCBpZiB3 ZSBoYXZlIGEgbmV3IGVub3VnaCB2ZXJzaW9uIHRvIHVuY29uZGl0aW9uYWxseSBydW4gcmVoYXNo LgotICAgICAgICAgIiIiCi0rCi0rICAgICAgICBkZWYgb25seV93YXJuaW5nKHRleHQpOgotKyAg ICAgICAgICAgIGZvciBsaW5lIGluIHRleHQuc3BsaXQoJ1xuJyk6Ci0rICAgICAgICAgICAgICAg IGlmIGxpbmUgYW5kIG5vdCAnd2FybmluZycgaW4gbGluZS5sb3dlcigpOgotKyAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIEZhbHNlCi0rICAgICAgICAgICAgcmV0dXJuIFRydWUKLSsKLSAgICAg ICAgIHRyeToKLSAgICAgICAgICAgICBvcGVuc3NsX3ZlcnNpb24gPSBjaGVja19vdXRwdXQoWycv dXNyL2Jpbi9vcGVuc3NsJywgJ3ZlcnNpb24nXSkuZGVjb2RlKCd1dGYtOCcpLnN0cmlwKCkKLSAg ICAgICAgIGV4Y2VwdCBzdWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJvciBhcyBlOgotQEAgLTI1 OSw5ICsyNjYsMTMgQEAgb25seS4KLSAgICAgICAgICAgICBjbWQgPSBbJy91c3IvYmluL2NfcmVo YXNoJywgY2VydGRpcl0KLSAgICAgICAgIHNlbGYubG9nLmRlYnVnKCJuc3MgY21kOiAlcyIsIGZv cm1hdF9jbWRfbGlzdChjbWQpKQotICAgICAgICAgdHJ5OgotLSAgICAgICAgICAgIGNoZWNrX291 dHB1dChjbWQsIHN0ZGVycj1zdWJwcm9jZXNzLlNURE9VVCkKLSsgICAgICAgICAgICByZXMgPSBy dW4oY21kLCB0ZXh0PVRydWUsIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsIHN0ZGVycj1zdWJwcm9j ZXNzLlNURE9VVCkKLSsgICAgICAgICAgICBzZWxmLmxvZy5kZWJ1ZygibnNzIGNtZDogJXMgcmV0 dXJuZWQgJWQgU1RET1VUPSVzIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXRf Y21kX2xpc3QoY21kKSwgcmVzLnJldHVybmNvZGUsIHJlcy5zdGRvdXQpCi0rICAgICAgICAgICAg aWYgcmVzLnJldHVybmNvZGUgIT0gMSBvciBub3Qgb25seV93YXJuaW5nKHJlcy5zdGRvdXQpOgot KyAgICAgICAgICAgICAgICByZXMuY2hlY2tfcmV0dXJuY29kZSgpCi0gICAgICAgICBleGNlcHQg c3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3IgYXMgZToKLS0gICAgICAgICAgICByYWlzZSBW YWx1ZUVycm9yKGUub3V0cHV0LmRlY29kZSgndXRmLTgnKS5yc3RyaXAoKSkKLSsgICAgICAgICAg ICByYWlzZSBWYWx1ZUVycm9yKGUub3V0cHV0LnJzdHJpcCgpKQotIAotICAgICBkZWYgY3JlYXRl X3JzYV9jYShzZWxmLCBtb250aHM9VkFMSUQpOgotICAgICAgICAgIiIiCi1kaWZmIC0tZ2l0IGEv c3JjL2xpYjM4OS9saWIzODkvdXRpbHMucHkgYi9zcmMvbGliMzg5L2xpYjM4OS91dGlscy5weQot aW5kZXggMDQyZGVmMDkwLi4wN2NiMzRkOTMgMTAwNjQ0Ci0tLS0gYS9zcmMvbGliMzg5L2xpYjM4 OS91dGlscy5weQotKysrIGIvc3JjL2xpYjM4OS9saWIzODkvdXRpbHMucHkKLUBAIC0yMSwxMiAr MjEsMTQgQEAgaW1wb3J0IGxkYXAKLSBpbXBvcnQgbW1hcAotIGltcG9ydCBzb2NrZXQKLSBpbXBv cnQgaXBhZGRyZXNzCi0raW1wb3J0IGl0ZXJ0b29scwotIGltcG9ydCB0aW1lCi0gaW1wb3J0IHN0 YXQKLSBmcm9tIGRhdGV0aW1lIGltcG9ydCAoZGF0ZXRpbWUsIHRpbWVkZWx0YSkKLSBpbXBvcnQg c3lzCi0gaW1wb3J0IGZpbGVjbXAKLSBpbXBvcnQgcHdkCi0raW1wb3J0IHJwbQotIGltcG9ydCBz aGxleAotIGltcG9ydCBvcGVyYXRvcgotIGltcG9ydCBzdWJwcm9jZXNzCi1AQCAtMjEzMCwzICsy MTMyLDIxIEBAIGRlZiBnZXRfdGltZW91dF9zY2FsZSgpOgotICAgICAgICAgbG9nLmVycm9yKGYi RFNfVElNRU9VVF9TQ0FMRSBzaG91bGQgYmUgYSB2YWxpZCBmbG9hdC4gVXNpbmcgZGVmYXVsdCB2 YWx1ZToge3NjYWxlX2ZhY3Rvcn0iKQotICAgICAgICAgcmV0dXJuIHNjYWxlX2ZhY3RvcgotIAot KwotK2RlZiBycG1faXNfb2xkZXIocGtnLCB2ZXJzaW9uKToKLSsgICAgIiIiQ2hlY2sgaWYgYW4g UlBNIHBhY2thZ2UgdmVyc2lvbiBpcyBvbGRlciB0aGFuIHNwZWNpZmllZCB2ZXJzaW9uIiIiCi0r ICAgIHRzID0gcnBtLlRyYW5zYWN0aW9uU2V0KCkKLSsgICAgbWkgPSB0cy5kYk1hdGNoKCduYW1l JywgcGtnKQotKyAgICBmb3IgaCBpbiBtaToKLSsgICAgICAgIGxvZy5kZWJ1ZyhmIntwa2d9IHto Wyd2ZXJzaW9uJ119IHt2ZXJzaW9ufSIpCi0rICAgICAgICBmb3IgbjEsbjIgaW4gaXRlcnRvb2xz LnppcF9sb25nZXN0KGhbJ3ZlcnNpb24nXS5zcGxpdCgnLicpLCB2ZXJzaW9uLnNwbGl0KCcuJyks IGZpbGx2YWx1ZT0iIik6Ci0rICAgICAgICAgICAgdHJ5OgotKyAgICAgICAgICAgICAgICBpZiBp bnQobjEpIDwgaW50KG4yKToKLSsgICAgICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCi0rICAg ICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6Ci0rICAgICAgICAgICAgICAgIGlmIG4xIDwgbjI6 Ci0rICAgICAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQotKyAgICAgICAgICAgICAgICBpZiBu MSA+IG4yOgotKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0rICAgIHJldHVybiBG YWxzZQotKwotLS0gCi0yLjUyLjAKLQoKZGlmZiAtLWdpdCBhLzAwNDctSXNzdWUtNzE4NC0ybmQt YXJncGFyc2UuSGVscEZvcm1hdHRlci1fZm9ybWF0X2FjdGlvbi5wYXRjaCBiLzAwNDctSXNzdWUt NzE4NC0ybmQtYXJncGFyc2UuSGVscEZvcm1hdHRlci1fZm9ybWF0X2FjdGlvbi5wYXRjaApkZWxl dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTgzODY1OS4uMDAwMDAwMAotLS0gYS8wMDQ3LUlz c3VlLTcxODQtMm5kLWFyZ3BhcnNlLkhlbHBGb3JtYXR0ZXItX2Zvcm1hdF9hY3Rpb24ucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi1Gcm9tIDQ4YWQ2MTIzMTIwM2Q5Y2NiOTZk MGZlNTQyYWFlOTNkYmI3NGE5YmYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBWaWt0 b3IgQXNoaXJvdiA8dmFzaGlyb3ZAcmVkaGF0LmNvbT4KLURhdGU6IEZyaSwgMTMgRmViIDIwMjYg MTU6Mzg6NTIgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gSXNzdWUgNzE4NCAtICgybmQpIGFyZ3Bh cnNlLkhlbHBGb3JtYXR0ZXIKLSBfZm9ybWF0X2FjdGlvbnNfdXNhZ2UoKSBpcyBkZXByZWNhdGVk ICgjNzI1NykKLQotRGVzY3JpcHRpb246Ci1gX2Zvcm1hdF9hY3Rpb25zX3VzYWdlKClgIHdhcyBh bHNvIHJlbW92ZWQgaW4gUHl0aG9uIDMuMTQuMy4KLVJlcGxhY2UgdmVyc2lvbiBjaGVjayB3aXRo IGBpc2luc3RhbmNlKClgIHRvIGhhbmRsZSB0aGUgcmV0dXJuIHR5cGUgb2YKLWBfZ2V0X2FjdGlv bnNfdXNhZ2VfcGFydHMoKWAgbW9yZSByb2J1c3RseSBhY3Jvc3MgUHl0aG9uIHZlcnNpb25zLgot Ci1SZWxhdGVzOiBodHRwczovL2dpdGh1Yi5jb20vMzg5ZHMvMzg5LWRzLWJhc2UvaXNzdWVzLzcx ODQKLUZpeGVzOiBodHRwczovL2dpdGh1Yi5jb20vMzg5ZHMvMzg5LWRzLWJhc2UvaXNzdWVzLzcy NTMKLQotUmV2aWV3ZWQgYnk6IEBwcm9naWVyMzg5IChUaGFua3MhKQotLS0tCi0gc3JjL2xpYjM4 OS9saWIzODkvY2xpX2Jhc2UvX19pbml0X18ucHkgfCA2ICsrKy0tLQotIDEgZmlsZSBjaGFuZ2Vk LCAzIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvbGli Mzg5L2xpYjM4OS9jbGlfYmFzZS9fX2luaXRfXy5weSBiL3NyYy9saWIzODkvbGliMzg5L2NsaV9i YXNlL19faW5pdF9fLnB5Ci1pbmRleCBmMTA1NWFhZGMuLjNhZjhhNDZlNiAxMDA2NDQKLS0tLSBh L3NyYy9saWIzODkvbGliMzg5L2NsaV9iYXNlL19faW5pdF9fLnB5Ci0rKysgYi9zcmMvbGliMzg5 L2xpYjM4OS9jbGlfYmFzZS9fX2luaXRfXy5weQotQEAgLTQyMCwxMSArNDIwLDExIEBAIGNsYXNz IEN1c3RvbUhlbHBGb3JtYXR0ZXIoYXJncGFyc2UuSGVscEZvcm1hdHRlcik6Ci0gICAgICAgICBl bHNlOgotICAgICAgICAgICAgICMgVXNlIF9nZXRfYWN0aW9uc191c2FnZV9wYXJ0cygpIGZvciBQ eXRob24gMy4xMyBhbmQgbGF0ZXIKLSAgICAgICAgICAgICBhY3Rpb25fcGFydHMgPSBzZWxmLl9n ZXRfYWN0aW9uc191c2FnZV9wYXJ0cyhwYXJlbnRfYXJndW1lbnRzLCBbXSkKLS0gICAgICAgICAg ICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCAxNSk6Ci0tICAgICAgICAgICAgICAgICMgUHl0 aG9uIDMuMTUgcmV0dXJucyBhIHR1cGxlIChsaXN0IG9mIGFjdGlvbnMsIGNvdW50IG9mIGFjdGlv bnMpCi0rICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShhY3Rpb25fcGFydHMsIHR1cGxlKToKLSsg ICAgICAgICAgICAgICAgIyBQeXRob24gMy4xNC4zKyBhbmQgMy4xNSsgcmV0dXJuIGEgdHVwbGUg KGxpc3Qgb2YgYWN0aW9ucywgY291bnQgb2YgYWN0aW9ucykKLSAgICAgICAgICAgICAgICAgZm9y bWF0dGVkX29wdGlvbnMgPSAnICcuam9pbihhY3Rpb25fcGFydHNbMF0pCi0gICAgICAgICAgICAg ZWxzZToKLS0gICAgICAgICAgICAgICAgIyBQeXRob24gMy4xMyBhbmQgMy4xNCByZXR1cm4gYSBs aXN0IG9mIGFjdGlvbnMKLSsgICAgICAgICAgICAgICAgIyBFYXJsaWVyIHZlcnNpb25zIHJldHVy biBhIGxpc3Qgb2YgYWN0aW9ucwotICAgICAgICAgICAgICAgICBmb3JtYXR0ZWRfb3B0aW9ucyA9 ICcgJy5qb2luKGFjdGlvbl9wYXJ0cykKLSAKLSAgICAgICAgICMgSWYgZm9ybWF0dGVkX29wdGlv bnMgYWxyZWFkeSBpbiB1c2FnZSAtIHJlbW92ZSB0aGVtCi0tLSAKLTIuNTIuMAotCgpkaWZmIC0t Z2l0IGEvMDA0OC1Jc3N1ZS03MjEzLTJuZC1NREJfQkFEX1ZBTFNJWkUtZXJyb3Itd2hpbGUtaGFu ZGxpbmctLnBhdGNoIGIvMDA0OC1Jc3N1ZS03MjEzLTJuZC1NREJfQkFEX1ZBTFNJWkUtZXJyb3It d2hpbGUtaGFuZGxpbmctLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZDdm NWMwLi4wMDAwMDAwCi0tLSBhLzAwNDgtSXNzdWUtNzIxMy0ybmQtTURCX0JBRF9WQUxTSVpFLWVy cm9yLXdoaWxlLWhhbmRsaW5nLS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAK LUZyb20gYzdlZjViMzA3M2JiZDk0YTVkMmI1NDQ1NTYzNjhjODMwYzE2NWUwZCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKLUZyb206IFZpa3RvciBBc2hpcm92IDx2YXNoaXJvdkByZWRoYXQuY29t PgotRGF0ZTogRnJpLCAxMyBGZWIgMjAyNiAxNjoyNzoyNSArMDEwMAotU3ViamVjdDogW1BBVENI XSBJc3N1ZSA3MjEzIC0gKDJuZCkgTURCX0JBRF9WQUxTSVpFIGVycm9yIHdoaWxlIGhhbmRsaW5n IFZMVgotICgjNzI1OCkKLQotRGVjcmlwdGlvbjoKLURpc2FibGUgdGVzdF92bHZfbG9uZ19hdHRy aWJ1dGVfdmFsdWUgb24gQkRCIGFzIGl0IGhhbmdzIHNvbWV0aW1lcyBpbgotQ0ksIGJsb2NraW5n IG90aGVyIHBpcGVsaW5lcy4KLQotUmVsYXRlczogaHR0cHM6Ly9naXRodWIuY29tLzM4OWRzLzM4 OS1kcy1iYXNlL2lzc3Vlcy83MjEzCi0KLVJldmlld2VkIGJ5OiBAcHJvZ2llcjM4OSAoVGhhbmtz ISkKLS0tLQotIGRpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy92bHYvcmVncmVzc2lvbl90ZXN0LnB5 IHwgMSArCi0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCi0KLWRpZmYgLS1naXQgYS9k aXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvdmx2L3JlZ3Jlc3Npb25fdGVzdC5weSBiL2RpcnNydnRl c3RzL3Rlc3RzL3N1aXRlcy92bHYvcmVncmVzc2lvbl90ZXN0LnB5Ci1pbmRleCA3Y2RmMTZhODQu Ljg5YTc0NzE5OSAxMDA2NDQKLS0tLSBhL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy92bHYvcmVn cmVzc2lvbl90ZXN0LnB5Ci0rKysgYi9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvdmx2L3JlZ3Jl c3Npb25fdGVzdC5weQotQEAgLTExNzUsNiArMTE3NSw3IEBAIGRlZiB0ZXN0X3Zsdl93aXRoX21y KHZsdl9zZXR1cF93aXRoX3VpZF9tcik6Ci0gCi0gCi0gCi0rQHB5dGVzdC5tYXJrLnNraXBpZihn ZXRfZGVmYXVsdF9kYl9saWIoKSA9PSAiYmRiIiwgcmVhc29uPSJIYW5ncyBvbiBCREIiKQotIGRl ZiB0ZXN0X3Zsdl9sb25nX2F0dHJpYnV0ZV92YWx1ZSh0b3BvbG9neV9zdCwgcmVxdWVzdCk6Ci0g ICAgICIiIgotICAgICBUZXN0IFZMViB3aXRoIGFuIGVudHJ5IGNvbnRhaW5pbmcgYSB2ZXJ5IGxv bmcgYXR0cmlidXRlIHZhbHVlICgySykuCi0tLSAKLTIuNTIuMAotCgpkaWZmIC0tZ2l0IGEvMDA0 OS1Jc3N1ZS03MjIzLVVzZS1sZXhpY29ncmFwaGljYWwtb3JkZXItZm9yLWFuY2VzdG9yaWQtLnBh dGNoIGIvMDA0OS1Jc3N1ZS03MjIzLVVzZS1sZXhpY29ncmFwaGljYWwtb3JkZXItZm9yLWFuY2Vz dG9yaWQtLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMjkxYjJlLi4wMDAw MDAwCi0tLSBhLzAwNDktSXNzdWUtNzIyMy1Vc2UtbGV4aWNvZ3JhcGhpY2FsLW9yZGVyLWZvci1h bmNlc3RvcmlkLS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM0ICswLDAgQEAKLUZyb20gN2U1 NzVjYzhjYzZmMWJmNTU4ZjUwY2EwZmM1NTE0NWU0NjlkNjBkMiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKLUZyb206IFZpa3RvciBBc2hpcm92IDx2YXNoaXJvdkByZWRoYXQuY29tPgotRGF0ZTog RnJpLCAxMyBGZWIgMjAyNiAxNjo1ODoyNCArMDEwMAotU3ViamVjdDogW1BBVENIXSBJc3N1ZSA3 MjIzIC0gVXNlIGxleGljb2dyYXBoaWNhbCBvcmRlciBmb3IgYW5jZXN0b3JpZCAoIzcyNTYpCi0K LURlc2NyaXB0aW9uOgotYGxkYm1faW5zdGFuY2VfY3JlYXRlX2RlZmF1bHRfaW5kZXhlcygpYCBj b25maWd1cmVkIGFuY2VzdG9yaWQgd2l0aAotaW50ZWdlck9yZGVyaW5nTWF0Y2ggaW4gdGhlIGlu LW1lbW9yeSBhdHRyaW5mbywgYnV0IGFuY2VzdG9yaWQgb24gZGlzawotbWlnaHQgYmUgdXNpbmcg bGV4aWNvZ3JhcGhpYyBvcmRlcmluZyAoZGF0YSBiZWZvcmUgdGhlIHVwZ3JhZGUgb3IgYWZ0ZXIK LWxkaWYyZGIgaW1wb3J0KS4KLQotUmVsYXRlczogaHR0cHM6Ly9naXRodWIuY29tLzM4OWRzLzM4 OS1kcy1iYXNlL2lzc3Vlcy83MjIzCi0KLVJldmlld2VkIGJ5OiBAdGJvcmRheiAoVGhhbmtzISkK LS0tLQotIGxkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vaW5zdGFuY2UuYyB8IDIgKy0KLSAx IGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdp dCBhL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vaW5zdGFuY2UuYyBiL2xkYXAvc2VydmVy cy9zbGFwZC9iYWNrLWxkYm0vaW5zdGFuY2UuYwotaW5kZXggMTdiZmMwOWEwLi4xNTY5ZWI3ZmYg MTAwNjQ0Ci0tLS0gYS9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2luc3RhbmNlLmMKLSsr KyBiL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vaW5zdGFuY2UuYwotQEAgLTIzMSw3ICsy MzEsNyBAQCBsZGJtX2luc3RhbmNlX2NyZWF0ZV9kZWZhdWx0X2luZGV4ZXMoYmFja2VuZCAqYmUp Ci0gICAgICAqIGFuY2VzdG9yaWQgaXMgc3BlY2lhbCwgdGhlcmUgaXMgYWN0dWFsbHkgbm8gc3Vj aCBhdHRyIHR5cGUKLSAgICAgICogYnV0IHdlIHN0aWxsIHdhbnQgdG8gdXNlIHRoZSBhdHRyIGlu ZGV4IGZpbGUgQVBJcy4KLSAgICAgICovCi0tICAgIGUgPSBsZGJtX2luc3RhbmNlX2luaXRfY29u ZmlnX2VudHJ5KExEQk1fQU5DRVNUT1JJRF9TVFIsICJlcSIsIDAsIDAsIDAsICJpbnRlZ2VyT3Jk ZXJpbmdNYXRjaCIpOwotKyAgICBlID0gbGRibV9pbnN0YW5jZV9pbml0X2NvbmZpZ19lbnRyeShM REJNX0FOQ0VTVE9SSURfU1RSLCAiZXEiLCAwLCAwLCAwLCAwKTsKLSAgICAgYXR0cl9pbmRleF9j b25maWcoYmUsICJsZGJtIGluZGV4IGluaXQiLCAwLCBlLCAxLCAwLCBOVUxMKTsKLSAgICAgc2xh cGlfZW50cnlfZnJlZShlKTsKLSAKLS0tIAotMi41Mi4wCi0KCmRpZmYgLS1naXQgYS8wMDUwLUlz c3VlLTMxMzQtRml4LWJ1aWxkLWJyZWFrLTcyNjAucGF0Y2ggYi8wMDUwLUlzc3VlLTMxMzQtRml4 LWJ1aWxkLWJyZWFrLTcyNjAucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY2 ZDhiZWQuLjAwMDAwMDAKLS0tIGEvMDA1MC1Jc3N1ZS0zMTM0LUZpeC1idWlsZC1icmVhay03MjYw LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotRnJvbSAyNDViYzNiNTNmMzg1 ZTEyZTRkYzlkMmNiNzY1YTU1ZTEwZTBmZGM1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJv bTogcHJvZ2llcjM4OSA8cHJvZ2llckByZWRoYXQuY29tPgotRGF0ZTogRnJpLCAxMyBGZWIgMjAy NiAxNzo1MToxMiArMDEwMAotU3ViamVjdDogW1BBVENIXSBJc3N1ZSAzMTM0IC0gRml4IGJ1aWxk IGJyZWFrICgjNzI2MCkKLQotRml4IGJ1aWxkIGJyZWFrIG9mIFBSICM3MjM4IHJlbGF0ZWQgdG8g aW1wb3J0IHJwbQotCi1Jc3N1ZTogIzMxMzQKLQotUmV2aWV3ZWQgYnk6IEB2YXNoaXJvdiAoVGhh bmtzISkKLS0tLQotIHNyYy9saWIzODkvbGliMzg5L3V0aWxzLnB5IHwgMyArKy0KLSAxIGZpbGUg Y2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9z cmMvbGliMzg5L2xpYjM4OS91dGlscy5weSBiL3NyYy9saWIzODkvbGliMzg5L3V0aWxzLnB5Ci1p bmRleCAwN2NiMzRkOTMuLjRkZjM2Y2YxZiAxMDA2NDQKLS0tLSBhL3NyYy9saWIzODkvbGliMzg5 L3V0aWxzLnB5Ci0rKysgYi9zcmMvbGliMzg5L2xpYjM4OS91dGlscy5weQotQEAgLTI4LDcgKzI4 LDYgQEAgZnJvbSBkYXRldGltZSBpbXBvcnQgKGRhdGV0aW1lLCB0aW1lZGVsdGEpCi0gaW1wb3J0 IHN5cwotIGltcG9ydCBmaWxlY21wCi0gaW1wb3J0IHB3ZAotLWltcG9ydCBycG0KLSBpbXBvcnQg c2hsZXgKLSBpbXBvcnQgb3BlcmF0b3IKLSBpbXBvcnQgc3VicHJvY2VzcwotQEAgLTIxMzUsNiAr MjEzNCw4IEBAIGRlZiBnZXRfdGltZW91dF9zY2FsZSgpOgotIAotIGRlZiBycG1faXNfb2xkZXIo cGtnLCB2ZXJzaW9uKToKLSAgICAgIiIiQ2hlY2sgaWYgYW4gUlBNIHBhY2thZ2UgdmVyc2lvbiBp cyBvbGRlciB0aGFuIHNwZWNpZmllZCB2ZXJzaW9uIiIiCi0rICAgICMgcnBtIG1vZHVsZSBpcyBu b3QgaW5zdGFsbGVkIGluIGJ1aWxkIGVudmlyb25tZW50IHNvIGxldCBpbXBvcnQgaXQgb25seSB3 aGVuIHVzZWQuCi0rICAgIGltcG9ydCBycG0KLSAgICAgdHMgPSBycG0uVHJhbnNhY3Rpb25TZXQo KQotICAgICBtaSA9IHRzLmRiTWF0Y2goJ25hbWUnLCBwa2cpCi0gICAgIGZvciBoIGluIG1pOgot LS0gCi0yLjUyLjAKLQoKZGlmZiAtLWdpdCBhLzAwNTEtSXNzdWUtNzA2Ni03MDUyLWFsbG93LXBh c3N3b3JkLWhpc3RvcnktdG8tYmUtc2V0LXRvLS5wYXRjaCBiLzAwNTEtSXNzdWUtNzA2Ni03MDUy LWFsbG93LXBhc3N3b3JkLWhpc3RvcnktdG8tYmUtc2V0LXRvLS5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggY2ExZGFhYi4uMDAwMDAwMAotLS0gYS8wMDUxLUlzc3VlLTcwNjYt NzA1Mi1hbGxvdy1wYXNzd29yZC1oaXN0b3J5LXRvLWJlLXNldC10by0ucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSw4NyArMCwwIEBACi1Gcm9tIGFjM2Q5MjUzZTBhN2E0YjVmMDEwODUwNmJjZjI1 MjU1YjMwMmZkMTYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBNYXJrIFJleW5vbGRz IDxtcmV5bm9sZHNAcmVkaGF0LmNvbT4KLURhdGU6IFdlZCwgMTEgRmViIDIwMjYgMTU6NTE6NDcg LTA1MDAKLVN1YmplY3Q6IFtQQVRDSF0gSXNzdWUgNzA2Ni83MDUyIC0gYWxsb3cgcGFzc3dvcmQg aGlzdG9yeSB0byBiZSBzZXQgdG8gemVybwotIGFuZCByZW1vdmUgaGlzdG9yeQotCi1EZXNjcmlw dGlvbjoKLQotRm9yIGxvY2FsIHBhc3N3b3JkIHBvbGljaWVzIHRoZSBzZXJ2ZXIgd2FzIGluY29y cmVjdGx5IHJlamVjdGluZyB1cGRhdGVzIHRoYXQKLXNldCB0aGUgdmFsdWUgdG8gemVyby4gIFdo ZW4gcGFzc3dvcmQgaGlzdG9yeSBpcyBzZXQgdG8gemVybyB0aGUgb2xkIHBhc3N3b3JkcwotaW4g dGhlIGVudHJ5IGhpc3RvcnkgYXJlIG5vdCBjbGVhbmVkIGFzIGV4cGVjdGVkLgotCi1yZWxhdGVz OiBodHRwczovL2dpdGh1Yi5jb20vMzg5ZHMvMzg5LWRzLWJhc2UvaXNzdWVzLzcwNTIKLXJlbGF0 ZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS8zODlkcy8zODktZHMtYmFzZS9pc3N1ZXMvNzA2NgotCi1S ZXZpZXdlZCBieTogcHJvZ2llcihUaGFua3MhKQotLS0tCi0gLi4uL3Rlc3RzL3N1aXRlcy9wYXNz d29yZC9wd3BfaGlzdG9yeV90ZXN0LnB5ICAgICAgIHwgIDcgKysrKy0tLQotIGxkYXAvc2VydmVy cy9zbGFwZC9tb2RpZnkuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCi0gbGRhcC9z ZXJ2ZXJzL3NsYXBkL3B3LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTMgKysrKysr KysrKysrLQotIDMgZmlsZXMgY2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMo LSkKLQotZGlmZiAtLWdpdCBhL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9wYXNzd29yZC9wd3Bf aGlzdG9yeV90ZXN0LnB5IGIvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL3Bhc3N3b3JkL3B3cF9o aXN0b3J5X3Rlc3QucHkKLWluZGV4IGNmNjhkNzQzYy4uNzhiNDQ4YTg3IDEwMDY0NAotLS0tIGEv ZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL3Bhc3N3b3JkL3B3cF9oaXN0b3J5X3Rlc3QucHkKLSsr KyBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9wYXNzd29yZC9wd3BfaGlzdG9yeV90ZXN0LnB5 Ci1AQCAtMTg5LDkgKzE4OSw5IEBAIGRlZiB0ZXN0X2hpc3RvcnlfaXNfbm90X292ZXJ3cml0dGVu KHRvcG9sb2d5X3N0LCB1c2VyKToKLSAKLSAKLSBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ3Bv bGljeScsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICBbKHB5dGVzdC5wYXJhbSgnZ2xvYmFs JywgbWFya3M9cHl0ZXN0Lm1hcmsueGZhaWwocmVhc29uPSJEUzcwNTIiKSkpLAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgIChweXRlc3QucGFyYW0oJ3N1YnRyZWUnLCBtYXJrcz1weXRlc3Qu bWFyay54ZmFpbChyZWFzb249IkRTNzA2NiwgRFM3MDUyIikpKSwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAocHl0ZXN0LnBhcmFtKCd1c2VyJywgbWFya3M9cHl0ZXN0Lm1hcmsueGZhaWwo cmVhc29uPSJEUzcwNjYsIERTNzA1MiIpKSldKQotKyAgICAgICAgICAgICAgICAgICAgICAgICAg WyhweXRlc3QucGFyYW0oJ2dsb2JhbCcpKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAo cHl0ZXN0LnBhcmFtKCdzdWJ0cmVlJykpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChw eXRlc3QucGFyYW0oJ3VzZXInKSldKQotIGRlZiB0ZXN0X2Jhc2ljKHRvcG9sb2d5X3N0LCB1c2Vy LCBwb2xpY3kpOgotICAgICAiIiJUZXN0IGJhc2ljIHBhc3N3b3JkIHBvbGljeSBoaXN0b3J5IGZl YXR1cmUgZnVuY3Rpb25hbGl0eSB3aXRoIGR5bmFtaWMgY291bnQgcmVkdWN0aW9uCi0gCi1AQCAt MjgyLDYgKzI4Miw3IEBAIGRlZiB0ZXN0X2Jhc2ljKHRvcG9sb2d5X3N0LCB1c2VyLCBwb2xpY3kp OgotICAgICAjIFBhc3N3b3JkIGhpc3RvcnkgW3Bhc3N3b3JkMywgcGFzc3dvcmQ0XSwgY3VycmVu dCBwYXNzd29yZCBpcyAicGFzc3dvcmQxIgotIAotICAgICAjIFJlc2V0IHBhc3N3b3JkIGJ5IERp cmVjdG9yeSBNYW5hZ2VyKGFkbWluIHJlc2V0KQotKyAgICBkbSA9IERpcmVjdG9yeU1hbmFnZXIo dG9wb2xvZ3lfc3Quc3RhbmRhbG9uZSkKLSAgICAgZG0ucmViaW5kKCkKLSAgICAgdGltZS5zbGVl cCguNSkKLSAgICAgY2hhbmdlX3Bhc3N3b3JkKHVzZXIsICdwYXNzd29yZC1yZXNldCcsIHN1Y2Nl c3M9VHJ1ZSkKLWRpZmYgLS1naXQgYS9sZGFwL3NlcnZlcnMvc2xhcGQvbW9kaWZ5LmMgYi9sZGFw L3NlcnZlcnMvc2xhcGQvbW9kaWZ5LmMKLWluZGV4IDllNWJjZTgwYi4uMGVjY2U5YmM4IDEwMDY0 NAotLS0tIGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL21vZGlmeS5jCi0rKysgYi9sZGFwL3NlcnZlcnMv c2xhcGQvbW9kaWZ5LmMKLUBAIC04Nyw3ICs4Nyw3IEBAIHN0YXRpYyBzdHJ1Y3QgYXR0cl92YWx1 ZV9jaGVjawotICAgICB7Q09ORklHX1BXX1dBUk5JTkdfQVRUUklCVVRFLCBjaGVja19wd19kdXJh dGlvbl92YWx1ZSwgMCwgLTF9LAotICAgICB7Q09ORklHX1BXX01JTkxFTkdUSF9BVFRSSUJVVEUs IGF0dHJfY2hlY2tfbWlubWF4LCAyLCA1MTJ9LAotICAgICB7Q09ORklHX1BXX01BWEZBSUxVUkVf QVRUUklCVVRFLCBhdHRyX2NoZWNrX21pbm1heCwgMSwgMzI3Njd9LAotLSAgICB7Q09ORklHX1BX X0lOSElTVE9SWV9BVFRSSUJVVEUsIGF0dHJfY2hlY2tfbWlubWF4LCAxLCAyNH0sCi0rICAgIHtD T05GSUdfUFdfSU5ISVNUT1JZX0FUVFJJQlVURSwgYXR0cl9jaGVja19taW5tYXgsIDAsIDI0fSwK LSAgICAge0NPTkZJR19QV19MT0NLRFVSQVRJT05fQVRUUklCVVRFLCBjaGVja19wd19kdXJhdGlv bl92YWx1ZSwgLTEsIC0xfSwKLSAgICAge0NPTkZJR19QV19SRVNFVEZBSUxVUkVDT1VOVF9BVFRS SUJVVEUsIGNoZWNrX3B3X3Jlc2V0ZmFpbHVyZWNvdW50X3ZhbHVlLCAtMSwgLTF9LAotICAgICB7 Q09ORklHX1BXX0dSQUNFTElNSVRfQVRUUklCVVRFLCBhdHRyX2NoZWNrX21pbm1heCwgMCwgLTF9 LAotZGlmZiAtLWdpdCBhL2xkYXAvc2VydmVycy9zbGFwZC9wdy5jIGIvbGRhcC9zZXJ2ZXJzL3Ns YXBkL3B3LmMKLWluZGV4IDA1NWVjMGQ3NC4uYzUzZWNmMjNkIDEwMDY0NAotLS0tIGEvbGRhcC9z ZXJ2ZXJzL3NsYXBkL3B3LmMKLSsrKyBiL2xkYXAvc2VydmVycy9zbGFwZC9wdy5jCi1AQCAtMTUz NSw3ICsxNTM1LDE4IEBAIHVwZGF0ZV9wd19oaXN0b3J5KFNsYXBpX1BCbG9jayAqcGIsIGNvbnN0 IFNsYXBpX0ROICpzZG4sIGNoYXIgKm9sZF9wdykKLSAgICAgcHdwb2xpY3kgPSBuZXdfcGFzc3dk UG9saWN5KHBiLCBkbik7Ci0gCi0gICAgIGlmIChwd3BvbGljeS0+cHdfaW5oaXN0b3J5ID09IDAp ewotLSAgICAgICAgLyogV2UgYXJlIG9ubHkgZW5mb3JjaW5nIHRoZSBjdXJyZW50IHBhc3N3b3Jk LCBqdXN0IHJldHVybiAqLwotKyAgICAgICAgLyogV2UgYXJlIG9ubHkgZW5mb3JjaW5nIHRoZSBj dXJyZW50IHBhc3N3b3JkLCBqdXN0IHJldHVybiBidXQgZmlyc3QKLSsgICAgICAgICAqIGNsZWFu dXAgYW55IG9sZCBwYXNzd29yZHMgaW4gdGhlIGhpc3RvcnkgKi8KLSsgICAgICAgIGF0dHJpYnV0 ZS5tb2RfdHlwZSA9ICJwYXNzd29yZEhpc3RvcnkiOwotKyAgICAgICAgYXR0cmlidXRlLm1vZF9v cCA9IExEQVBfTU9EX1JFUExBQ0U7Ci0rICAgICAgICBhdHRyaWJ1dGUubW9kX3ZhbHVlcyA9IE5V TEw7Ci0rICAgICAgICBsaXN0X29mX21vZHNbMF0gPSAmYXR0cmlidXRlOwotKyAgICAgICAgbGlz dF9vZl9tb2RzWzFdID0gTlVMTDsKLSsgICAgICAgIG1vZF9wYiA9IHNsYXBpX3BibG9ja19uZXco KTsKLSsgICAgICAgIHNsYXBpX21vZGlmeV9pbnRlcm5hbF9zZXRfcGJfZXh0KG1vZF9wYiwgc2Ru LCBsaXN0X29mX21vZHMsIE5VTEwsIE5VTEwsIHB3X2dldF9jb21wb25lbnRJRCgpLCAwKTsKLSsg ICAgICAgIHNsYXBpX21vZGlmeV9pbnRlcm5hbF9wYihtb2RfcGIpOwotKyAgICAgICAgc2xhcGlf cGJsb2NrX2Rlc3Ryb3kobW9kX3BiKTsKLSsKLSAgICAgICAgIHJldHVybiByZXM7Ci0gICAgIH0K LSAKLS0tIAotMi41My4wCi0KCmRpZmYgLS1naXQgYS8wMDUyLUlzc3VlLTcyNDMtVUktYWRkLXN1 cHBvcnQtZm9yLWhvdC1jZXJ0aWZpY2F0ZXMucGF0Y2ggYi8wMDUyLUlzc3VlLTcyNDMtVUktYWRk LXN1cHBvcnQtZm9yLWhvdC1jZXJ0aWZpY2F0ZXMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAyNTU4ODguLjAwMDAwMDAKLS0tIGEvMDA1Mi1Jc3N1ZS03MjQzLVVJLWFkZC1z dXBwb3J0LWZvci1ob3QtY2VydGlmaWNhdGVzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTM3 OSArMCwwIEBACi1Gcm9tIDU2NTYzYzkwODNhMDFmYzI2ZDg1M2VkZjQ1MzhjZTcwOTAwZDI1OWMg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBNYXJrIFJleW5vbGRzIDxtcmV5bm9sZHNA cmVkaGF0LmNvbT4KLURhdGU6IFdlZCwgMjggSmFuIDIwMjYgMTI6MDI6NTQgLTA1MDAKLVN1Ympl Y3Q6IFtQQVRDSF0gSXNzdWUgNzI0MyAtIFVJIC0gYWRkIHN1cHBvcnQgZm9yIGhvdCBjZXJ0aWZp Y2F0ZXMKLQotRGVzY3JpcHRpb246Ci0KLUluIHRoZSAiQWRkIFNlcnZlciBDZXJ0aWZpY2F0ZSIg bW9kYWwgYWRkIHBhc3N3b3JkIG9wdGlvbnMgZm9yIHBrY3MjMTIKLWNlcnRpZmljYXRlcy4gQWxz byBpbXByb3ZlZCB2YWxpZGF0aW9uIGZvciBjZXJ0aWZpY2F0ZSBuYW1lcwotCi1yZWxhdGVzOiBo dHRwczovL2dpdGh1Yi5jb20vMzg5ZHMvMzg5LWRzLWJhc2UvaXNzdWVzLzcyNDMKLQotUmV2aWV3 ZWQgYnk6IGpjaGFwbWFuICYgc3BpY2h1Z2kgKFRoYW5rcyEhKQotLS0tCi0gLi4uL2xpYi9zZWN1 cml0eS9jZXJ0aWZpY2F0ZU1hbmFnZW1lbnQuanN4ICAgIHwgMzY2ICsrKysrKysrKysrKy0tLQot IC4uLi9zcmMvbGliL3NlY3VyaXR5L3NlY3VyaXR5TW9kYWxzLmpzeCAgICAgICB8IDQyNSArKysr KysrKysrKysrKysrKy0KLSAuLi4vc3JjL2xpYi9zZWN1cml0eS9zZWN1cml0eVRhYmxlcy5qc3gg ICAgICAgfCAgODUgKystLQotIHNyYy9jb2NrcGl0LzM4OS1jb25zb2xlL3NyYy9zZWN1cml0eS5q c3ggICAgICB8ICAxMCArCi0gc3JjL2xpYjM4OS9saWIzODkvY2xpX2NvbmYvc2VjdXJpdHkucHkg ICAgICAgIHwgIDIzICstCi0gNSBmaWxlcyBjaGFuZ2VkLCA3NTggaW5zZXJ0aW9ucygrKSwgMTUx IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2NvY2twaXQvMzg5LWNvbnNvbGUvc3Jj L2xpYi9zZWN1cml0eS9jZXJ0aWZpY2F0ZU1hbmFnZW1lbnQuanN4IGIvc3JjL2NvY2twaXQvMzg5 LWNvbnNvbGUvc3JjL2xpYi9zZWN1cml0eS9jZXJ0aWZpY2F0ZU1hbmFnZW1lbnQuanN4Ci1pbmRl eCA0NzVmY2JhMjcuLjE4Zjk4NTk5YiAxMDA2NDQKLS0tLSBhL3NyYy9jb2NrcGl0LzM4OS1jb25z b2xlL3NyYy9saWIvc2VjdXJpdHkvY2VydGlmaWNhdGVNYW5hZ2VtZW50LmpzeAotKysrIGIvc3Jj L2NvY2twaXQvMzg5LWNvbnNvbGUvc3JjL2xpYi9zZWN1cml0eS9jZXJ0aWZpY2F0ZU1hbmFnZW1l bnQuanN4Ci1AQCAtMTksNiArMTksNyBAQCBpbXBvcnQgewotIGltcG9ydCB7Ci0gICAgIEVkaXRD ZXJ0TW9kYWwsCi0gICAgIFNlY3VyaXR5QWRkQ2VydE1vZGFsLAotKyAgICBTZWN1cml0eUFkZENB Q2VydE1vZGFsLAotICAgICBTZWN1cml0eUFkZENTUk1vZGFsLAotICAgICBTZWN1cml0eVZpZXdD U1JNb2RhbCwKLSAgICAgRXhwb3J0Q2VydE1vZGFsLAotQEAgLTM3LDYgKzM4LDggQEAgZXhwb3J0 IGNsYXNzIENlcnRpZmljYXRlTWFuYWdlbWVudCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0g ICAgICAgICAgICAgQ0FDZXJ0czogdGhpcy5wcm9wcy5DQUNlcnRzLAotICAgICAgICAgICAgIFNl cnZlckNTUnM6IHRoaXMucHJvcHMuU2VydmVyQ1NScywKLSAgICAgICAgICAgICBTZXJ2ZXJLZXlz OiB0aGlzLnByb3BzLlNlcnZlcktleXMsCi0rICAgICAgICAgICAgY2VydE5pY2tuYW1lczogdGhp cy5wcm9wcy5jZXJ0Tmlja25hbWVzLAotKyAgICAgICAgICAgIENBQ2VydE5pY2tuYW1lczogdGhp cy5wcm9wcy5DQUNlcnROaWNrbmFtZXMsCi0gICAgICAgICAgICAgdGFibGVLZXk6IDAsCi0gICAg ICAgICAgICAgc2hvd0VkaXRNb2RhbDogZmFsc2UsCi0gICAgICAgICAgICAgc2hvd0FkZE1vZGFs OiBmYWxzZSwKLUBAIC04NSw2ICs4OCwxMSBAQCBleHBvcnQgY2xhc3MgQ2VydGlmaWNhdGVNYW5h Z2VtZW50IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAgICB1cGxvYWRGaWxl TmFtZTogIiIsCi0gICAgICAgICAgICAgdXBsb2FkSXNMb2FkaW5nOiBmYWxzZSwKLSAgICAgICAg ICAgICB1cGxvYWRJc1JlamVjdGVkOiBmYWxzZSwKLSsgICAgICAgICAgICAvLyBQS0NTIzEyIFBh c3N3b3JkIG9wdGlvbnMKLSsgICAgICAgICAgICBwa2NzMTJQaW5NZXRob2Q6ICJub1Bhc3N3b3Jk IiwKLSsgICAgICAgICAgICBwa2NzMTJQaW5GaWxlOiAiIiwKLSsgICAgICAgICAgICBwa2NzMTJQ aW5UZXh0OiAiIiwKLSsgICAgICAgICAgICBmb3JjZUNlcnRBZGQ6IGZhbHNlLAotICAgICAgICAg fTsKLSAKLSAgICAgICAgIC8vIEZpbGUgVXBsb2FkIGZ1bmN0aW9ucwotQEAgLTE5MSw2ICsxOTks MTEgQEAgZXhwb3J0IGNsYXNzIENlcnRpZmljYXRlTWFuYWdlbWVudCBleHRlbmRzIFJlYWN0LkNv bXBvbmVudCB7Ci0gICAgICAgICB0aGlzLm9uUmFkaW9DaGFuZ2UgPSB0aGlzLm9uUmFkaW9DaGFu Z2UuYmluZCh0aGlzKTsKLSAgICAgICAgIHRoaXMudmFsaWRhdGVDZXJ0VGV4dCA9IHRoaXMudmFs aWRhdGVDZXJ0VGV4dC5iaW5kKHRoaXMpOwotICAgICAgICAgdGhpcy5nZXRDZXJ0RmlsZXMgPSB0 aGlzLmdldENlcnRGaWxlcy5iaW5kKHRoaXMpOwotKyAgICAgICAgLy8gUEtDUyMxMiBQYXNzd29y ZCBoYW5kbGVycwotKyAgICAgICAgdGhpcy5vblBrY3MxMlBpbk1ldGhvZENoYW5nZSA9IHRoaXMu b25Qa2NzMTJQaW5NZXRob2RDaGFuZ2UuYmluZCh0aGlzKTsKLSsgICAgICAgIHRoaXMub25Qa2Nz MTJQaW5GaWxlQ2hhbmdlID0gdGhpcy5vblBrY3MxMlBpbkZpbGVDaGFuZ2UuYmluZCh0aGlzKTsK LSsgICAgICAgIHRoaXMub25Qa2NzMTJQaW5UZXh0Q2hhbmdlID0gdGhpcy5vblBrY3MxMlBpblRl eHRDaGFuZ2UuYmluZCh0aGlzKTsKLSsgICAgICAgIHRoaXMub25Gb3JjZUNlcnRBZGRDaGFuZ2Ug PSB0aGlzLm9uRm9yY2VDZXJ0QWRkQ2hhbmdlLmJpbmQodGhpcyk7Ci0gICAgIH0KLSAKLSAgICAg Y29tcG9uZW50RGlkTW91bnQgKCkgewotQEAgLTIxMSwxMiArMjI0LDIwIEBAIGV4cG9ydCBjbGFz cyBDZXJ0aWZpY2F0ZU1hbmFnZW1lbnQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAg ICAgICAgIGNlcnRSYWRpb1VwbG9hZDogdHJ1ZSwKLSAgICAgICAgICAgICBpc1NlbGVjdENlcnRP cGVuOiBmYWxzZSwKLSAgICAgICAgICAgICBtb2RhbFNwaW5uaW5nOiBmYWxzZSwKLSsgICAgICAg ICAgICBwa2NzMTJQaW5NZXRob2Q6ICJub1Bhc3N3b3JkIiwKLSsgICAgICAgICAgICBwa2NzMTJQ aW5GaWxlOiAiIiwKLSsgICAgICAgICAgICBwa2NzMTJQaW5UZXh0OiAiIiwKLSsgICAgICAgICAg ICBmb3JjZUNlcnRBZGQ6IGZhbHNlLAotICAgICAgICAgfSk7Ci0gICAgIH0KLSAKLSAgICAgY2xv c2VBZGRNb2RhbCAoKSB7Ci0gICAgICAgICB0aGlzLnNldFN0YXRlKHsKLSAgICAgICAgICAgICBz aG93QWRkTW9kYWw6IGZhbHNlLAotKyAgICAgICAgICAgIHBrY3MxMlBpbk1ldGhvZDogIm5vUGFz c3dvcmQiLAotKyAgICAgICAgICAgIHBrY3MxMlBpbkZpbGU6ICIiLAotKyAgICAgICAgICAgIHBr Y3MxMlBpblRleHQ6ICIiLAotKyAgICAgICAgICAgIGZvcmNlQ2VydEFkZDogZmFsc2UsCi0gICAg ICAgICB9KTsKLSAgICAgfQotIAotQEAgLTIzNCwxMiArMjU1LDIwIEBAIGV4cG9ydCBjbGFzcyBD ZXJ0aWZpY2F0ZU1hbmFnZW1lbnQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAg ICAgIGNlcnRSYWRpb1VwbG9hZDogdHJ1ZSwKLSAgICAgICAgICAgICBpc1NlbGVjdENlcnRPcGVu OiBmYWxzZSwKLSAgICAgICAgICAgICBtb2RhbFNwaW5uaW5nOiBmYWxzZSwKLSsgICAgICAgICAg ICBwa2NzMTJQaW5NZXRob2Q6ICJub1Bhc3N3b3JkIiwKLSsgICAgICAgICAgICBwa2NzMTJQaW5G aWxlOiAiIiwKLSsgICAgICAgICAgICBwa2NzMTJQaW5UZXh0OiAiIiwKLSsgICAgICAgICAgICBm b3JjZUNlcnRBZGQ6IGZhbHNlLAotICAgICAgICAgfSk7Ci0gICAgIH0KLSAKLSAgICAgY2xvc2VB ZGRDQU1vZGFsICgpIHsKLSAgICAgICAgIHRoaXMuc2V0U3RhdGUoewotICAgICAgICAgICAgIHNo b3dBZGRDQU1vZGFsOiBmYWxzZSwKLSsgICAgICAgICAgICBwa2NzMTJQaW5NZXRob2Q6ICJub1Bh c3N3b3JkIiwKLSsgICAgICAgICAgICBwa2NzMTJQaW5GaWxlOiAiIiwKLSsgICAgICAgICAgICBw a2NzMTJQaW5UZXh0OiAiIiwKLSsgICAgICAgICAgICBmb3JjZUNlcnRBZGQ6IGZhbHNlLAotICAg ICAgICAgfSk7Ci0gICAgIH0KLSAKLUBAIC0yNjMsNiArMjkyLDQyIEBAIGV4cG9ydCBjbGFzcyBD ZXJ0aWZpY2F0ZU1hbmFnZW1lbnQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAg fSk7Ci0gICAgIH0KLSAKLSsgICAgb25Qa2NzMTJQaW5NZXRob2RDaGFuZ2UoZSwgXykgewotKyAg ICAgICAgLy8gSGFuZGxlIFBLQ1MjMTIgcGFzc3dvcmQgbWV0aG9kIHNlbGVjdGlvbgotKyAgICAg ICAgbGV0IHBrY3MxMlBpbk1ldGhvZCA9ICIiOwotKyAgICAgICAgaWYgKGUudGFyZ2V0LmlkID09 PSAicGtjczEyUGluUmFkaW9TdGRpbiIpIHsKLSsgICAgICAgICAgICBwa2NzMTJQaW5NZXRob2Qg PSAic3RkaW4iOwotKyAgICAgICAgfSBlbHNlIGlmIChlLnRhcmdldC5pZCA9PT0gInBrY3MxMlBp blJhZGlvRmlsZSIpIHsKLSsgICAgICAgICAgICBwa2NzMTJQaW5NZXRob2QgPSAiZmlsZSI7Ci0r ICAgICAgICB9IGVsc2UgaWYgKGUudGFyZ2V0LmlkID09PSAibm9QYXNzd29yZFJhZGlvIikgewot KyAgICAgICAgICAgIHBrY3MxMlBpbk1ldGhvZCA9ICJub1Bhc3N3b3JkIjsKLSsgICAgICAgIH0K LSsgICAgICAgIC8vIENsZWFyIG90aGVyIHBhc3N3b3JkIGZpZWxkcyB3aGVuIG1ldGhvZCBjaGFu Z2VzCi0rICAgICAgICB0aGlzLnNldFN0YXRlKHsKLSsgICAgICAgICAgICBwa2NzMTJQaW5NZXRo b2QsCi0rICAgICAgICAgICAgcGtjczEyUGluRmlsZTogIiIsCi0rICAgICAgICAgICAgcGtjczEy UGluVGV4dDogIiIsCi0rICAgICAgICB9KTsKLSsgICAgfQotKwotKyAgICBvblBrY3MxMlBpbkZp bGVDaGFuZ2UodmFsdWUpIHsKLSsgICAgICAgIHRoaXMuc2V0U3RhdGUoewotKyAgICAgICAgICAg IHBrY3MxMlBpbkZpbGU6IHZhbHVlCi0rICAgICAgICB9KTsKLSsgICAgfQotKwotKyAgICBvblBr Y3MxMlBpblRleHRDaGFuZ2UodmFsdWUpIHsKLSsgICAgICAgIHRoaXMuc2V0U3RhdGUoewotKyAg ICAgICAgICAgIHBrY3MxMlBpblRleHQ6IHZhbHVlCi0rICAgICAgICB9KTsKLSsgICAgfQotKwot KyAgICBvbkZvcmNlQ2VydEFkZENoYW5nZShjaGVja2VkKSB7Ci0rICAgICAgICB0aGlzLnNldFN0 YXRlKHsKLSsgICAgICAgICAgICBmb3JjZUNlcnRBZGQ6IGNoZWNrZWQKLSsgICAgICAgIH0pOwot KyAgICB9Ci0rCi0gICAgIHNob3dBZGRDU1JNb2RhbCAoKSB7Ci0gICAgICAgICB0aGlzLnNldFN0 YXRlKHsKLSAgICAgICAgICAgICBzaG93QWRkQ1NSTW9kYWw6IHRydWUsCi1AQCAtNDY4LDQzICs1 MzMsMTEyIEBAIGV4cG9ydCBjbGFzcyBDZXJ0aWZpY2F0ZU1hbmFnZW1lbnQgZXh0ZW5kcyBSZWFj dC5Db21wb25lbnQgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZHNjb25mIiwgIi1q IiwgImxkYXBpOi8vJTJmdmFyJTJmcnVuJTJmc2xhcGQtIiArIHRoaXMucHJvcHMuc2VydmVySWQg KyAiLnNvY2tldCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZWN1cml0eSIsIGNl cnRUeXBlLCAiYWRkIiwgIi0tbmFtZT0iICsgdGhpcy5zdGF0ZS5jZXJ0TmFtZSwgIi0tZmlsZT0i ICsgY2VydEZpbGUKLSAgICAgICAgICAgICAgICAgICAgICAgICBdOwotKwotKyAgICAgICAgICAg ICAgICAgICAgICAgIC8vIEFkZCBQS0NTIzEyIHBhc3N3b3JkIG9wdGlvbnMKLSsgICAgICAgICAg ICAgICAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5wa2NzMTJQaW5NZXRob2QgPT09ICJmaWxlIiAm JiB0aGlzLnN0YXRlLnBrY3MxMlBpbkZpbGUgIT09ICIiKSB7Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNtZC5wdXNoKCItLXBrY3MxMi1waW4tcGF0aD0iICsgdGhpcy5zdGF0ZS5wa2Nz MTJQaW5GaWxlKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc3Rh dGUucGtjczEyUGluTWV0aG9kID09PSAic3RkaW4iKSB7Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNtZC5wdXNoKCItLXBrY3MxMi1waW4tc3RkaW4iKTsKLSsgICAgICAgICAgICAgICAg ICAgICAgICB9Ci0rCi0rICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWRkIGZvcmNlIGZsYWcK LSsgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5mb3JjZUNlcnRBZGQpIHsK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgY21kLnB1c2goIi0tZG8taXQiKTsKLSsgICAg ICAgICAgICAgICAgICAgICAgICB9Ci0rCi0gICAgICAgICAgICAgICAgICAgICAgICAgbG9nX2Nt ZCgiYWRkQ2VydCIsICJBZGRpbmcgY2VydCAodG1wKTogIiwgY21kKTsKLS0gICAgICAgICAgICAg ICAgICAgICAgICBjb2NrcGl0Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc3Bh d24oY21kLCB7IHN1cGVydXNlcjogdHJ1ZSwgZXJyOiAibWVzc2FnZSIgfSkKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC5kb25lKCgpID0+IHsKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0aGlzLmRlbGV0ZVRtcENlcnQoY2VydEZpbGUpOwotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVsb2FkQ0FDZXJ0cygpOwotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoewotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93QWRkTW9kYWw6IGZhbHNlLAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RhbFNwaW5uaW5nOiBmYWxz ZSwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZzogZmFs c2UsCi0rCi0rICAgICAgICAgICAgICAgICAgICAgICAgLy8gSGFuZGxlIHN0ZGluIG1ldGhvZCB3 aXRoIFBUWSBzcGF3bgotKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlLnBr Y3MxMlBpbk1ldGhvZCA9PT0gInN0ZGluIikgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBsZXQgYnVmZmVyID0gIiI7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBy b2MgPSBjb2NrcGl0LnNwYXduKGNtZCwgeyBwdHk6IHRydWUsIGVudmlyb246IFsiTENfQUxMPUMi XSwgc3VwZXJ1c2VyOiB0cnVlLCBlcnI6ICJtZXNzYWdlIiB9KTsKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcHJvYwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5k b25lKCgpID0+IHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhp cy5kZWxldGVUbXBDZXJ0KGNlcnRGaWxlKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdGhpcy5yZWxvYWRDQUNlcnRzKCk7Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoewotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0FkZE1vZGFsOiBmYWxzZSwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGFsU3Bpbm5pbmc6IGZhbHNlLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZzogZmFs c2UsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbG9hZE9ycGhhbktleXMo KTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5h ZGROb3RpZmljYXRpb24oCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAic3VjY2VzcyIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBfKCJTdWNjZXNzZnVsbHkgYWRkZWQgY2VydGlmaWNhdGUiKQotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICApOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0aGlzLmNsb3NlQWRkQ0FNb2RhbCgpOwotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlQWRkTW9kYWwoKTsKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9KQotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC5mYWlsKGVyciA9PiB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxldCBtc2cgPSBfKCJVbmtub3duIGVycm9yIik7Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJNc2cgPSBidWZmZXIgPyBKU09OLnBhcnNlKGJ1 ZmZlcikgOiBKU09OLnBhcnNlKGVycik7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBtc2cgPSBlcnJNc2cuZGVzYyB8fCBlcnJNc2cubWVzc2FnZSB8fCBidWZm ZXIgfHwgZXJyOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgKCdpbmZvJyBpbiBlcnJNc2cpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBtc2cgPSBlcnJNc2cuZGVzYyArICIgLSAiICsgZXJyTXNnLmluZm87 Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHBhcnNpbmcgZmFpbHMs IHVzZSBidWZmZXIgb3IgZXJyb3IgZGlyZWN0bHkKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG1zZyA9IGJ1ZmZlciB8fCBlcnIgfHwgXygiVW5rbm93biBlcnJv ciIpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVsZXRlVG1wQ2VydChjZXJ0 RmlsZSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xv c2VBZGRDQU1vZGFsKCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHRoaXMuY2xvc2VBZGRNb2RhbCgpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0aGlzLnNldFN0YXRlKHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG1vZGFsU3Bpbm5pbmc6IGZhbHNlLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZzogZmFsc2UsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0aGlzLnByb3BzLmFkZE5vdGlmaWNhdGlvbigKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJlcnJvciIsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2NrcGl0LmZvcm1hdChfKCJFcnJvciBhZGRp bmcgY2VydGlmaWNhdGUgLSAkMCIpLCBtc2cpCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc3RyZWFtKGRhdGEgPT4gewot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIgKz0gZGF0YTsK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGluZXMgPSBi dWZmZXIuc3BsaXQoIlxuIik7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGxhc3RfbGluZSA9IGxpbmVzW2xpbmVzLmxlbmd0aCAtIDFdLnRvTG93ZXJDYXNl KCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsYXN0X2xp bmUuaW5jbHVkZXMoInBhc3N3b3JkIikgfHwgbGFzdF9saW5lLmluY2x1ZGVzKCJwaW4iKSkgewot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvYy5pbnB1dCh0 aGlzLnN0YXRlLnBrY3MxMlBpblRleHQgKyAiXG4iLCB0cnVlKTsKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0pOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVs b2FkT3JwaGFuS2V5cygpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRo aXMucHJvcHMuYWRkTm90aWZpY2F0aW9uKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAic3VjY2VzcyIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF8oIlN1Y2Nlc3NmdWxseSBhZGRlZCBjZXJ0aWZpY2F0ZSIpCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0aGlzLmNsb3NlQWRkQ0FNb2RhbCgpOwotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRoaXMuY2xvc2VBZGRNb2RhbCgpOwotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfSkKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5mYWlsKGVy ciA9PiB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyTXNn ID0gSlNPTi5wYXJzZShlcnIpOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxldCBtc2cgPSBlcnJNc2cuZGVzYzsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiAoJ2luZm8nIGluIGVyck1zZykgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBtc2cgPSBlcnJNc2cuZGVzYyArICIgLSAiICsgZXJyTXNnLmluZm87Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHRoaXMuZGVsZXRlVG1wQ2VydChjZXJ0RmlsZSk7Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZUFkZENBTW9kYWwoKTsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlQWRkTW9kYWwoKTsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kYWxTcGlubmluZzogZmFs c2UsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc6IGZh bHNlLAotKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvY2twaXQKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAuc3Bhd24oY21kLCB7IHN1cGVydXNlcjogdHJ1ZSwgZXJyOiAibWVzc2FnZSIgfSkKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZG9uZSgoKSA9PiB7Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVsZXRlVG1wQ2VydChjZXJ0Rmls ZSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVsb2Fk Q0FDZXJ0cygpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlz LnNldFN0YXRlKHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNob3dBZGRNb2RhbDogZmFsc2UsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBtb2RhbFNwaW5uaW5nOiBmYWxzZSwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc6IGZhbHNlLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9KTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdGhpcy5yZWxvYWRPcnBoYW5LZXlzKCk7Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMuYWRkTm90aWZpY2F0aW9uKAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1Y2Nlc3MiLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiU3VjY2Vzc2Z1bGx5IGFk ZGVkIGNlcnRpZmljYXRlIikKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9z ZUFkZENBTW9kYWwoKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dGhpcy5jbG9zZUFkZE1vZGFsKCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfSkKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZmFpbChlcnIgPT4g ewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJNc2cg PSBKU09OLnBhcnNlKGVycik7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxldCBtc2cgPSBlcnJNc2cuZGVzYzsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaWYgKCdpbmZvJyBpbiBlcnJNc2cpIHsKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9IGVyck1zZy5kZXNjICsgIiAtICIgKyBlcnJN c2cuaW5mbzsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlbGV0ZVRtcENlcnQo Y2VydEZpbGUpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlz LmNsb3NlQWRkQ0FNb2RhbCgpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0aGlzLmNsb3NlQWRkTW9kYWwoKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBtb2RhbFNwaW5uaW5nOiBmYWxzZSwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc6IGZhbHNlLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5hZGROb3RpZmljYXRpb24oCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXJyb3IiLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ja3BpdC5mb3JtYXQoXygiRXJyb3Ig YWRkaW5nIGNlcnRpZmljYXRlIC0gJDAiKSwgbXNnKQotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICApOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH0pOwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMuYWRk Tm90aWZpY2F0aW9uKAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi ZXJyb3IiLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2NrcGl0 LmZvcm1hdChfKCJFcnJvciBhZGRpbmcgY2VydGlmaWNhdGUgLSAkMCIpLCBtc2cpCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0pOwotKyAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg ICAgICAgIH0pCi0gICAgICAgICAgICAgICAgICAgICAuZmFpbChlcnIgPT4gewotICAgICAgICAg ICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoewotQEAgLTUyOSw0MiArNjYzLDExMCBAQCBl eHBvcnQgY2xhc3MgQ2VydGlmaWNhdGVNYW5hZ2VtZW50IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50 IHsKLSAgICAgICAgICAgICAgICAgLy8gY2VydFJhZGlvU2VsZWN0Ci0gICAgICAgICAgICAgICAg IGNtZC5wdXNoKCItLWZpbGU9IiArIHRoaXMucHJvcHMuY2VydERpciArICIvIiArIHRoaXMuc3Rh dGUuc2VsZWN0Q2VydE5hbWUpOwotICAgICAgICAgICAgIH0KLSsKLSsgICAgICAgICAgICAvLyBB ZGQgUEtDUyMxMiBwYXNzd29yZCBvcHRpb25zCi0rICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUu cGtjczEyUGluTWV0aG9kID09PSAiZmlsZSIgJiYgdGhpcy5zdGF0ZS5wa2NzMTJQaW5GaWxlICE9 PSAiIikgewotKyAgICAgICAgICAgICAgICBjbWQucHVzaCgiLS1wa2NzMTItcGluLXBhdGg9IiAr IHRoaXMuc3RhdGUucGtjczEyUGluRmlsZSk7Ci0rICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlz LnN0YXRlLnBrY3MxMlBpbk1ldGhvZCA9PT0gInN0ZGluIikgewotKyAgICAgICAgICAgICAgICBj bWQucHVzaCgiLS1wa2NzMTItcGluLXN0ZGluIik7Ci0rICAgICAgICAgICAgfQotKwotKyAgICAg ICAgICAgIC8vIEFkZCBmb3JjZSBmbGFnCi0rICAgICAgICAgICAgaWYgKHRoaXMuc3RhdGUuZm9y Y2VDZXJ0QWRkKSB7Ci0rICAgICAgICAgICAgICAgIGNtZC5wdXNoKCItLWRvLWl0Iik7Ci0rICAg ICAgICAgICAgfQotKwotICAgICAgICAgICAgIGxvZ19jbWQoImFkZENlcnQiLCAiQWRkaW5nIGNl cnQ6ICIsIGNtZCk7Ci0tICAgICAgICAgICAgY29ja3BpdAotLSAgICAgICAgICAgICAgICAgICAg LnNwYXduKGNtZCwgeyBzdXBlcnVzZXI6IHRydWUsIGVycjogIm1lc3NhZ2UiIH0pCi0tICAgICAg ICAgICAgICAgICAgICAuZG9uZSgoKSA9PiB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdGhp cy5yZWxvYWRDQUNlcnRzKCk7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbG9zZUFk ZENBTW9kYWwoKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlQWRkTW9kYWwo KTsKLS0gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2hvd0FkZE1vZGFsOiBmYWxzZSwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgY2VydEZpbGU6ICcnLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBj ZXJ0TmFtZTogJycsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGFsU3Bpbm5pbmc6 IGZhbHNlCi0rCi0rICAgICAgICAgICAgLy8gSGFuZGxlIHN0ZGluIG1ldGhvZCB3aXRoIFBUWSBz cGF3bgotKyAgICAgICAgICAgIGlmICh0aGlzLnN0YXRlLnBrY3MxMlBpbk1ldGhvZCA9PT0gInN0 ZGluIikgewotKyAgICAgICAgICAgICAgICBsZXQgYnVmZmVyID0gIiI7Ci0rICAgICAgICAgICAg ICAgIGNvbnN0IHByb2MgPSBjb2NrcGl0LnNwYXduKGNtZCwgeyBwdHk6IHRydWUsIGVudmlyb246 IFsiTENfQUxMPUMiXSwgc3VwZXJ1c2VyOiB0cnVlLCBlcnI6ICJtZXNzYWdlIiB9KTsKLSsgICAg ICAgICAgICAgICAgcHJvYwotKyAgICAgICAgICAgICAgICAgICAgICAgIC5kb25lKCgpID0+IHsK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWxvYWRDQUNlcnRzKCk7Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VBZGRDQU1vZGFsKCk7Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VBZGRNb2RhbCgpOwotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNob3dBZGRNb2RhbDogZmFsc2UsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjZXJ0RmlsZTogJycsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj ZXJ0TmFtZTogJycsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RhbFNwaW5u aW5nOiBmYWxzZQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdGhpcy5yZWxvYWRPcnBoYW5LZXlzKCk7Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHRoaXMucHJvcHMuYWRkTm90aWZpY2F0aW9uKAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgInN1Y2Nlc3MiLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXygiU3VjY2Vzc2Z1bGx5IGFkZGVkIGNlcnRpZmljYXRlIikKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICB9KQotKyAgICAg ICAgICAgICAgICAgICAgICAgIC5mYWlsKGVyciA9PiB7Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBtc2cgPSBfKCJVbmtub3duIGVycm9yIik7Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHRyeSB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBl cnJNc2cgPSBidWZmZXIgPyBKU09OLnBhcnNlKGJ1ZmZlcikgOiBKU09OLnBhcnNlKGVycik7Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSBlcnJNc2cuZGVzYyB8fCBlcnJN c2cubWVzc2FnZSB8fCBidWZmZXIgfHwgZXJyOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKCdpbmZvJyBpbiBlcnJNc2cpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBtc2cgPSBlcnJNc2cuZGVzYyArICIgLSAiICsgZXJyTXNnLmluZm87Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0gY2F0Y2ggKGUpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElm IHBhcnNpbmcgZmFpbHMsIHVzZSBidWZmZXIgb3IgZXJyb3IgZGlyZWN0bHkKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG1zZyA9IGJ1ZmZlciB8fCBlcnIgfHwgXygiVW5rbm93biBl cnJvciIpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRoaXMuY2xvc2VBZGRDQU1vZGFsKCk7Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHRoaXMuY2xvc2VBZGRNb2RhbCgpOwotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0aGlzLnNldFN0YXRlKHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1v ZGFsU3Bpbm5pbmc6IGZhbHNlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9h ZGluZzogZmFsc2UsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmFkZE5vdGlmaWNhdGlvbigKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJlcnJvciIsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb2NrcGl0LmZvcm1hdChfKCJFcnJvciBhZGRpbmcgY2VydGlmaWNhdGUgLSAk MCIpLCBtc2cpCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgfSkKLSsgICAgICAgICAgICAgICAgICAgICAgICAuc3RyZWFtKGRhdGEgPT4g ewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIgKz0gZGF0YTsKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgbGluZXMgPSBidWZmZXIuc3BsaXQoIlxuIik7Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGxhc3RfbGluZSA9IGxpbmVzW2xpbmVz Lmxlbmd0aCAtIDFdLnRvTG93ZXJDYXNlKCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlmIChsYXN0X2xpbmUuaW5jbHVkZXMoInBhc3N3b3JkIikgfHwgbGFzdF9saW5lLmluY2x1ZGVz KCJwaW4iKSkgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvYy5pbnB1dCh0 aGlzLnN0YXRlLnBrY3MxMlBpblRleHQgKyAiXG4iLCB0cnVlKTsKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgIH0pOwotLSAgICAgICAgICAg ICAgICAgICAgICAgIHRoaXMucmVsb2FkT3JwaGFuS2V5cygpOwotLSAgICAgICAgICAgICAgICAg ICAgICAgIHRoaXMucHJvcHMuYWRkTm90aWZpY2F0aW9uKAotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAic3VjY2VzcyIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIlN1Y2Nl c3NmdWxseSBhZGRlZCBjZXJ0aWZpY2F0ZSIpCi0tICAgICAgICAgICAgICAgICAgICAgICAgKTsK LS0gICAgICAgICAgICAgICAgICAgIH0pCi0tICAgICAgICAgICAgICAgICAgICAuZmFpbChlcnIg PT4gewotLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVyck1zZyA9IEpTT04ucGFyc2Uo ZXJyKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbXNnID0gZXJyTXNnLmRlc2M7Ci0t ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCdpbmZvJyBpbiBlcnJNc2cpIHsKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgbXNnID0gZXJyTXNnLmRlc2MgKyAiIC0gIiArIGVyck1zZy5p bmZvOwotLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICAgICAgICAgICAg ICB0aGlzLmNsb3NlQWRkQ0FNb2RhbCgpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMu Y2xvc2VBZGRNb2RhbCgpOwotLSAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUo ewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RhbFNwaW5uaW5nOiBmYWxzZSwKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZzogZmFsc2UsCi0rICAgICAgICAgICAg fSBlbHNlIHsKLSsgICAgICAgICAgICAgICAgY29ja3BpdAotKyAgICAgICAgICAgICAgICAgICAg ICAgIC5zcGF3bihjbWQsIHsgc3VwZXJ1c2VyOiB0cnVlLCBlcnI6ICJtZXNzYWdlIiB9KQotKyAg ICAgICAgICAgICAgICAgICAgICAgIC5kb25lKCgpID0+IHsKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdGhpcy5yZWxvYWRDQUNlcnRzKCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHRoaXMuY2xvc2VBZGRDQU1vZGFsKCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAg IHRoaXMuY2xvc2VBZGRNb2RhbCgpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlz LnNldFN0YXRlKHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dBZGRNb2Rh bDogZmFsc2UsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0RmlsZTogJycs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0TmFtZTogJycsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RhbFNwaW5uaW5nOiBmYWxzZQotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9KTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhp cy5yZWxvYWRPcnBoYW5LZXlzKCk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMu cHJvcHMuYWRkTm90aWZpY2F0aW9uKAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg InN1Y2Nlc3MiLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiU3VjY2Vzc2Z1 bGx5IGFkZGVkIGNlcnRpZmljYXRlIikKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsK LSsgICAgICAgICAgICAgICAgICAgICAgICB9KQotKyAgICAgICAgICAgICAgICAgICAgICAgIC5m YWlsKGVyciA9PiB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVyck1zZyA9 IEpTT04ucGFyc2UoZXJyKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1zZyA9 IGVyck1zZy5kZXNjOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJ2luZm8nIGlu IGVyck1zZykgewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gZXJyTXNn LmRlc2MgKyAiIC0gIiArIGVyck1zZy5pbmZvOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VBZGRDQU1vZGFsKCk7 Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VBZGRNb2RhbCgpOwotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG1vZGFsU3Bpbm5pbmc6IGZhbHNlLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbG9hZGluZzogZmFsc2UsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH0pOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmFkZE5v dGlmaWNhdGlvbigKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJlcnJvciIsCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2NrcGl0LmZvcm1hdChfKCJFcnJvciBh ZGRpbmcgY2VydGlmaWNhdGUgLSAkMCIpLCBtc2cpCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgdGhpcy5wcm9wcy5hZGROb3RpZmljYXRpb24oCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJlcnJvciIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvY2twaXQuZm9y bWF0KF8oIkVycm9yIGFkZGluZyBjZXJ0aWZpY2F0ZSAtICQwIiksIG1zZykKLS0gICAgICAgICAg ICAgICAgICAgICAgICApOwotLSAgICAgICAgICAgICAgICAgICAgfSk7Ci0rICAgICAgICAgICAg fQotICAgICAgICAgfQotICAgICB9Ci0gCi1AQCAtMTA4OCw3ICsxMjkwLDggQEAgZXhwb3J0IGNs YXNzIENlcnRpZmljYXRlTWFuYWdlbWVudCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgU2VydmVyQ2VydHM6IGNlcnRzLAotICAgICAgICAgICAgICAg ICAgICAgICAgIGxvYWRpbmc6IGZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxl S2V5OiBrZXksCi0tICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0NvbmZpcm1DQUNoYW5nZTog ZmFsc2UKLSsgICAgICAgICAgICAgICAgICAgICAgICBzaG93Q29uZmlybUNBQ2hhbmdlOiBmYWxz ZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0Tmlja25hbWVzOiBjZXJ0TmFtZXMsCi0g ICAgICAgICAgICAgICAgICAgICB9LCB0aGlzLmdldENlcnRGaWxlcyk7Ci0gICAgICAgICAgICAg ICAgIH0pCi0gICAgICAgICAgICAgICAgIC5mYWlsKGVyciA9PiB7Ci1AQCAtMTE4MCw5ICsxMzgz LDE0IEBAIGV4cG9ydCBjbGFzcyBDZXJ0aWZpY2F0ZU1hbmFnZW1lbnQgZXh0ZW5kcyBSZWFjdC5D b21wb25lbnQgewotICAgICAgICAgICAgICAgICAuc3Bhd24oY21kLCB7IHN1cGVydXNlcjogdHJ1 ZSwgZXJyOiAibWVzc2FnZSIgfSkKLSAgICAgICAgICAgICAgICAgLmRvbmUoY29udGVudCA9PiB7 Ci0gICAgICAgICAgICAgICAgICAgICBjb25zdCBjZXJ0cyA9IEpTT04ucGFyc2UoY29udGVudCk7 Ci0rICAgICAgICAgICAgICAgICAgICBjb25zdCBjZXJ0TmFtZXMgPSBbXTsKLSsgICAgICAgICAg ICAgICAgICAgIGZvciAoY29uc3QgY2VydCBvZiBjZXJ0cykgewotKyAgICAgICAgICAgICAgICAg ICAgICAgIGNlcnROYW1lcy5wdXNoKGNlcnQuYXR0cnMubmlja25hbWUpOwotKyAgICAgICAgICAg ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgQ0FDZXJ0czogY2VydHMsCi0tICAgICAgICAgICAgICAgICAgICAg ICAgbG9hZGluZzogZmFsc2UKLSsgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nOiBmYWxz ZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICBDQUNlcnROaWNrbmFtZXM6IGNlcnROYW1lcywK LSAgICAgICAgICAgICAgICAgICAgIH0sIHRoaXMucmVsb2FkQ2VydHMpOwotICAgICAgICAgICAg ICAgICB9KQotICAgICAgICAgICAgICAgICAuZmFpbChlcnIgPT4gewotQEAgLTEzMTEsNiArMTUx OSw3IEBAIGV4cG9ydCBjbGFzcyBDZXJ0aWZpY2F0ZU1hbmFnZW1lbnQgZXh0ZW5kcyBSZWFjdC5D b21wb25lbnQgewotICAgICAgICAgICAgICAgICAgICAgc3Bpbm5pbmc9e3RoaXMuc3RhdGUubW9k YWxTcGlubmluZ30KLSAgICAgICAgICAgICAgICAgLz4KLSAgICAgICAgICAgICAgICAgPFNlY3Vy aXR5QWRkQ2VydE1vZGFsCi0rICAgICAgICAgICAgICAgICAgICBrZXk9eyJhZGRDZXJ0LSIgKyB0 aGlzLnN0YXRlLnNob3dBZGRNb2RhbH0KLSAgICAgICAgICAgICAgICAgICAgIHNob3dNb2RhbD17 dGhpcy5zdGF0ZS5zaG93QWRkTW9kYWx9Ci0gICAgICAgICAgICAgICAgICAgICBjbG9zZUhhbmRs ZXI9e3RoaXMuY2xvc2VBZGRNb2RhbH0KLSAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUNoYW5n ZT17dGhpcy5vbkNoYW5nZX0KLUBAIC0xMzE5LDYgKzE1MjgsOCBAQCBleHBvcnQgY2xhc3MgQ2Vy dGlmaWNhdGVNYW5hZ2VtZW50IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAg ICAgICAgICAgIGNlcnRGaWxlPXt0aGlzLnN0YXRlLmNlcnRGaWxlfQotICAgICAgICAgICAgICAg ICAgICAgY2VydE5hbWU9e3RoaXMuc3RhdGUuY2VydE5hbWV9Ci0gICAgICAgICAgICAgICAgICAg ICBjZXJ0TmFtZXM9e3RoaXMuc3RhdGUuYXZhaWxDZXJ0TmFtZXN9Ci0rICAgICAgICAgICAgICAg ICAgICBjZXJ0Tmlja25hbWVzPXt0aGlzLnN0YXRlLmNlcnROaWNrbmFtZXN9Ci0rICAgICAgICAg ICAgICAgICAgICBDQUNlcnROaWNrbmFtZXM9e3RoaXMuc3RhdGUuQ0FDZXJ0Tmlja25hbWVzfQot ICAgICAgICAgICAgICAgICAgICAgc2VsZWN0Q2VydE5hbWU9e3RoaXMuc3RhdGUuc2VsZWN0Q2Vy dE5hbWV9Ci0gICAgICAgICAgICAgICAgICAgICBpc1NlbGVjdENlcnRPcGVuPXt0aGlzLnN0YXRl LmlzU2VsZWN0Q2VydE9wZW59Ci0gICAgICAgICAgICAgICAgICAgICBoYW5kbGVDZXJ0U2VsZWN0 PXt0aGlzLm9uQ2VydFNlbGVjdH0KLUBAIC0xMzM2LDExICsxNTQ3LDE4IEBAIGV4cG9ydCBjbGFz cyBDZXJ0aWZpY2F0ZU1hbmFnZW1lbnQgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAg ICAgICAgICAgICAgICAgaGFuZGxlRmlsZVJlYWRTdGFydGVkPXt0aGlzLm9uRmlsZVJlYWRTdGFy dGVkfQotICAgICAgICAgICAgICAgICAgICAgaGFuZGxlRmlsZVJlYWRGaW5pc2hlZD17dGhpcy5v bkZpbGVSZWFkRmluaXNoZWR9Ci0gICAgICAgICAgICAgICAgICAgICBoYW5kbGVDbGVhcj17dGhp cy5vbkNsZWFyfQotLSAgICAgICAgICAgICAgICAgICAgaGFuZGxlRmlsZVJlamVjdGVkPXt0aGlz LnN0YXRlLnVwbG9hZElzUmVqZWN0ZWR9Ci0rICAgICAgICAgICAgICAgICAgICBoYW5kbGVGaWxl UmVqZWN0ZWQ9e3RoaXMuaGFuZGxlRmlsZVJlamVjdGVkfQotKyAgICAgICAgICAgICAgICAgICAg cGtjczEyUGluTWV0aG9kPXt0aGlzLnN0YXRlLnBrY3MxMlBpbk1ldGhvZH0KLSsgICAgICAgICAg ICAgICAgICAgIHBrY3MxMlBpbkZpbGU9e3RoaXMuc3RhdGUucGtjczEyUGluRmlsZX0KLSsgICAg ICAgICAgICAgICAgICAgIHBrY3MxMlBpblRleHQ9e3RoaXMuc3RhdGUucGtjczEyUGluVGV4dH0K LSsgICAgICAgICAgICAgICAgICAgIGZvcmNlQ2VydEFkZD17dGhpcy5zdGF0ZS5mb3JjZUNlcnRB ZGR9Ci0rICAgICAgICAgICAgICAgICAgICBoYW5kbGVQa2NzMTJQaW5NZXRob2RDaGFuZ2U9e3Ro aXMub25Qa2NzMTJQaW5NZXRob2RDaGFuZ2V9Ci0rICAgICAgICAgICAgICAgICAgICBoYW5kbGVQ a2NzMTJQaW5GaWxlQ2hhbmdlPXt0aGlzLm9uUGtjczEyUGluRmlsZUNoYW5nZX0KLSsgICAgICAg ICAgICAgICAgICAgIGhhbmRsZVBrY3MxMlBpblRleHRDaGFuZ2U9e3RoaXMub25Qa2NzMTJQaW5U ZXh0Q2hhbmdlfQotKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlRm9yY2VDZXJ0QWRkQ2hhbmdl PXt0aGlzLm9uRm9yY2VDZXJ0QWRkQ2hhbmdlfQotICAgICAgICAgICAgICAgICAvPgotLSAgICAg ICAgICAgICAgICA8U2VjdXJpdHlBZGRDZXJ0TW9kYWwKLSsgICAgICAgICAgICAgICAgPFNlY3Vy aXR5QWRkQ0FDZXJ0TW9kYWwKLSAgICAgICAgICAgICAgICAgICAgIHNob3dNb2RhbD17dGhpcy5z dGF0ZS5zaG93QWRkQ0FNb2RhbH0KLS0gICAgICAgICAgICAgICAgICAgIGlzQ0FDZXJ0Ci0gICAg ICAgICAgICAgICAgICAgICBjbG9zZUhhbmRsZXI9e3RoaXMuY2xvc2VBZGRDQU1vZGFsfQotICAg ICAgICAgICAgICAgICAgICAgaGFuZGxlQ2hhbmdlPXt0aGlzLm9uQ2hhbmdlfQotICAgICAgICAg ICAgICAgICAgICAgc2F2ZUhhbmRsZXI9e3RoaXMuYWRkQ2VydH0KLUBAIC0xMzQ4LDYgKzE1NjYs OCBAQCBleHBvcnQgY2xhc3MgQ2VydGlmaWNhdGVNYW5hZ2VtZW50IGV4dGVuZHMgUmVhY3QuQ29t cG9uZW50IHsKLSAgICAgICAgICAgICAgICAgICAgIGNlcnRGaWxlPXt0aGlzLnN0YXRlLmNlcnRG aWxlfQotICAgICAgICAgICAgICAgICAgICAgY2VydE5hbWU9e3RoaXMuc3RhdGUuY2VydE5hbWV9 Ci0gICAgICAgICAgICAgICAgICAgICBjZXJ0TmFtZXM9e3RoaXMuc3RhdGUuYXZhaWxDZXJ0TmFt ZXN9Ci0rICAgICAgICAgICAgICAgICAgICBjZXJ0Tmlja25hbWVzPXt0aGlzLnN0YXRlLmNlcnRO aWNrbmFtZXN9Ci0rICAgICAgICAgICAgICAgICAgICBDQUNlcnROaWNrbmFtZXM9e3RoaXMuc3Rh dGUuQ0FDZXJ0Tmlja25hbWVzfQotICAgICAgICAgICAgICAgICAgICAgc2VsZWN0Q2VydE5hbWU9 e3RoaXMuc3RhdGUuc2VsZWN0Q2VydE5hbWV9Ci0gICAgICAgICAgICAgICAgICAgICBpc1NlbGVj dENlcnRPcGVuPXt0aGlzLnN0YXRlLmlzU2VsZWN0Q2VydE9wZW59Ci0gICAgICAgICAgICAgICAg ICAgICBoYW5kbGVDZXJ0U2VsZWN0PXt0aGlzLm9uQ2VydFNlbGVjdH0KLUBAIC0xMzY1LDcgKzE1 ODUsNyBAQCBleHBvcnQgY2xhc3MgQ2VydGlmaWNhdGVNYW5hZ2VtZW50IGV4dGVuZHMgUmVhY3Qu Q29tcG9uZW50IHsKLSAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUZpbGVSZWFkU3RhcnRlZD17 dGhpcy5vbkZpbGVSZWFkU3RhcnRlZH0KLSAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUZpbGVS ZWFkRmluaXNoZWQ9e3RoaXMub25GaWxlUmVhZEZpbmlzaGVkfQotICAgICAgICAgICAgICAgICAg ICAgaGFuZGxlQ2xlYXI9e3RoaXMub25DbGVhcn0KLS0gICAgICAgICAgICAgICAgICAgIGhhbmRs ZUZpbGVSZWplY3RlZD17dGhpcy5zdGF0ZS51cGxvYWRJc1JlamVjdGVkfQotKyAgICAgICAgICAg ICAgICAgICAgaGFuZGxlRmlsZVJlamVjdGVkPXt0aGlzLmhhbmRsZUZpbGVSZWplY3RlZH0KLSAg ICAgICAgICAgICAgICAgLz4KLSAgICAgICAgICAgICAgICAgPFNlY3VyaXR5QWRkQ1NSTW9kYWwK LSAgICAgICAgICAgICAgICAgICAgIHNob3dNb2RhbD17dGhpcy5zdGF0ZS5zaG93QWRkQ1NSTW9k YWx9Ci1kaWZmIC0tZ2l0IGEvc3JjL2NvY2twaXQvMzg5LWNvbnNvbGUvc3JjL2xpYi9zZWN1cml0 eS9zZWN1cml0eU1vZGFscy5qc3ggYi9zcmMvY29ja3BpdC8zODktY29uc29sZS9zcmMvbGliL3Nl Y3VyaXR5L3NlY3VyaXR5TW9kYWxzLmpzeAotaW5kZXggYTQyYWE1MGQ2Li40ZDY2MzFmZDIgMTAw NjQ0Ci0tLS0gYS9zcmMvY29ja3BpdC8zODktY29uc29sZS9zcmMvbGliL3NlY3VyaXR5L3NlY3Vy aXR5TW9kYWxzLmpzeAotKysrIGIvc3JjL2NvY2twaXQvMzg5LWNvbnNvbGUvc3JjL2xpYi9zZWN1 cml0eS9zZWN1cml0eU1vZGFscy5qc3gKLUBAIC02LDYgKzYsNyBAQCBpbXBvcnQgewotIAlDbGlw Ym9hcmRDb3B5LAotIAlDbGlwYm9hcmRDb3B5VmFyaWFudCwKLSAJRGl2aWRlciwKLSsJRXhwYW5k YWJsZVNlY3Rpb24sCi0gCUZpbGVVcGxvYWQsCi0gCUZvcm0sCi0gCUZvcm1TZWxlY3QsCi1AQCAt MjIsMTIgKzIzLDEzIEBAIGltcG9ydCB7Ci0gCVRleHRWYXJpYW50cywKLSAJVGV4dElucHV0LAot IAlUb29sdGlwLAotKwlUb29sdGlwUG9zaXRpb24sCi0gCVZhbGlkYXRlZE9wdGlvbnMKLSB9IGZy b20gJ0BwYXR0ZXJuZmx5L3JlYWN0LWNvcmUnOwotIGltcG9ydCBUeXBlYWhlYWRTZWxlY3QgZnJv bSAiLi4vLi4vZHNCYXNpY0NvbXBvbmVudHMuanN4IjsKLSBpbXBvcnQgeyBPdXRsaW5lZFF1ZXN0 aW9uQ2lyY2xlSWNvbiB9IGZyb20gJ0BwYXR0ZXJuZmx5L3JlYWN0LWljb25zL2Rpc3QvanMvaWNv bnMvb3V0bGluZWQtcXVlc3Rpb24tY2lyY2xlLWljb24nOwotIGltcG9ydCBQcm9wVHlwZXMgZnJv bSAicHJvcC10eXBlcyI7Ci0taW1wb3J0IHsgYmFkX2ZpbGVfbmFtZSwgdmFsaWRIb3N0bmFtZSB9 IGZyb20gIi4uL3Rvb2xzLmpzeCI7Ci0raW1wb3J0IHsgYmFkX2ZpbGVfbmFtZSwgdmFsaWRIb3N0 bmFtZSwgZmlsZV9pc19wYXRoIH0gZnJvbSAiLi4vdG9vbHMuanN4IjsKLSAKLSBjb25zdCBfID0g Y29ja3BpdC5nZXR0ZXh0OwotIAotQEAgLTEyNCw2ICsxMjYsMjAgQEAgZXhwb3J0IGNsYXNzIEV4 cG9ydENlcnRNb2RhbCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gfQotIAotIGV4cG9ydCBj bGFzcyBTZWN1cml0eUFkZENlcnRNb2RhbCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0rICAg IGNvbnN0cnVjdG9yKHByb3BzKSB7Ci0rICAgICAgICBzdXBlcihwcm9wcyk7Ci0rICAgICAgICB0 aGlzLnN0YXRlID0gewotKyAgICAgICAgICAgIGlzUGFzc3dvcmRTZWN0aW9uRXhwYW5kZWQ6IGZh bHNlCi0rICAgICAgICB9OwotKyAgICAgICAgdGhpcy5oYW5kbGVQYXNzd29yZFNlY3Rpb25Ub2dn bGUgPSB0aGlzLmhhbmRsZVBhc3N3b3JkU2VjdGlvblRvZ2dsZS5iaW5kKHRoaXMpOwotKyAgICB9 Ci0rCi0rICAgIGhhbmRsZVBhc3N3b3JkU2VjdGlvblRvZ2dsZShldmVudCwgaXNFeHBhbmRlZCkg ewotKyAgICAgICAgdGhpcy5zZXRTdGF0ZSh7Ci0rICAgICAgICAgICAgaXNQYXNzd29yZFNlY3Rp b25FeHBhbmRlZDogaXNFeHBhbmRlZAotKyAgICAgICAgfSk7Ci0rICAgIH0KLSsKLSAgICAgcmVu ZGVyKCkgewotICAgICAgICAgY29uc3QgewotICAgICAgICAgICAgIHNob3dNb2RhbCwKLUBAIC0x MzksNiArMTU1LDggQEAgZXhwb3J0IGNsYXNzIFNlY3VyaXR5QWRkQ2VydE1vZGFsIGV4dGVuZHMg UmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAgICBoYW5kbGVSYWRpb0NoYW5nZSwKLSAgICAg ICAgICAgICBiYWRDZXJ0VGV4dCwKLSAgICAgICAgICAgICBjZXJ0TmFtZXMsCi0rICAgICAgICAg ICAgY2VydE5pY2tuYW1lcywKLSsgICAgICAgICAgICBDQUNlcnROaWNrbmFtZXMsCi0gICAgICAg ICAgICAgLy8gU2VsZWN0IHNlcnZlciBjZXJ0Ci0gICAgICAgICAgICAgaGFuZGxlQ2VydFNlbGVj dCwKLSAgICAgICAgICAgICBzZWxlY3RDZXJ0TmFtZSwKLUBAIC0xNTMsNyArMTcxLDE1IEBAIGV4 cG9ydCBjbGFzcyBTZWN1cml0eUFkZENlcnRNb2RhbCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7 Ci0gICAgICAgICAgICAgaGFuZGxlRmlsZVJlYWRGaW5pc2hlZCwKLSAgICAgICAgICAgICBoYW5k bGVDbGVhciwKLSAgICAgICAgICAgICBoYW5kbGVGaWxlUmVqZWN0ZWQsCi0tICAgICAgICAgICAg aXNDQUNlcnQsCi0rICAgICAgICAgICAgLy8gUEtDUyMxMiBQYXNzd29yZCBvcHRpb25zCi0rICAg ICAgICAgICAgcGtjczEyUGluTWV0aG9kLAotKyAgICAgICAgICAgIHBrY3MxMlBpbkZpbGUsCi0r ICAgICAgICAgICAgcGtjczEyUGluVGV4dCwKLSsgICAgICAgICAgICBmb3JjZUNlcnRBZGQsCi0r ICAgICAgICAgICAgaGFuZGxlUGtjczEyUGluTWV0aG9kQ2hhbmdlLAotKyAgICAgICAgICAgIGhh bmRsZVBrY3MxMlBpbkZpbGVDaGFuZ2UsCi0rICAgICAgICAgICAgaGFuZGxlUGtjczEyUGluVGV4 dENoYW5nZSwKLSsgICAgICAgICAgICBoYW5kbGVGb3JjZUNlcnRBZGRDaGFuZ2UsCi0gICAgICAg ICB9ID0gdGhpcy5wcm9wczsKLSAKLSAgICAgICAgIGxldCBzYXZlQnRuTmFtZSA9IF8oIkFkZCBD ZXJ0aWZpY2F0ZSIpOwotQEAgLTE3OSwxMSArMjA1LDM1OCBAQCBleHBvcnQgY2xhc3MgU2VjdXJp dHlBZGRDZXJ0TW9kYWwgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotIAotICAgICAgICAgbGV0 IHRpdGxlID0gXygiQWRkIFNlcnZlciBDZXJ0aWZpY2F0ZSIpOwotICAgICAgICAgbGV0IGRlc2Mg PSBfKCJBZGQgYSBTZXJ2ZXIgQ2VydGlmaWNhdGUgdG8gdGhlIHNlY3VyaXR5IGRhdGFiYXNlLiIp OwotLSAgICAgICAgaWYgKGlzQ0FDZXJ0KSB7Ci0tICAgICAgICAgICAgdGl0bGUgPSBfKCJBZGQg Q2VydGlmaWNhdGUgQXV0aG9yaXR5Iik7Ci0tICAgICAgICAgICAgZGVzYyA9IF8oIkFkZCBhIENB IENlcnRpZmljYXRlIHRvIHRoZSBzZWN1cml0eSBkYXRhYmFzZS4iKTsKLSsKLSsgICAgICAgIGxl dCBzZWxlY3RWYWxpZGF0ZWQgPSBWYWxpZGF0ZWRPcHRpb25zLmRlZmF1bHQ7Ci0rICAgICAgICBp ZiAoY2VydFJhZGlvU2VsZWN0ICYmIGNlcnROYW1lcy5sZW5ndGggPT09IDApIHsKLSsgICAgICAg ICAgICBzZWxlY3RWYWxpZGF0ZWQgPSBWYWxpZGF0ZWRPcHRpb25zLmVycm9yOwotKyAgICAgICAg fQotKwotKyAgICAgICAgcmV0dXJuICgKLSsgICAgICAgICAgICA8TW9kYWwKLSsgICAgICAgICAg ICAgICAgdmFyaWFudD17TW9kYWxWYXJpYW50Lm1lZGl1bX0KLSsgICAgICAgICAgICAgICAgdGl0 bGU9e3RpdGxlfQotKyAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9ImRzLW1vZGFsIgot KyAgICAgICAgICAgICAgICBpc09wZW49e3Nob3dNb2RhbH0KLSsgICAgICAgICAgICAgICAgb25D bG9zZT17Y2xvc2VIYW5kbGVyfQotKyAgICAgICAgICAgICAgICBhY3Rpb25zPXtbCi0rICAgICAg ICAgICAgICAgICAgICA8QnV0dG9uCi0rICAgICAgICAgICAgICAgICAgICAgICAga2V5PSJjb25m aXJtIgotKyAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9InByaW1hcnkiCi0rICAgICAg ICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gewotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzYXZlSGFuZGxlcihmYWxzZSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgfX0K LSsgICAgICAgICAgICAgICAgICAgICAgICBpc0xvYWRpbmc9e3NwaW5uaW5nfQotKyAgICAgICAg ICAgICAgICAgICAgICAgIHNwaW5uZXJBcmlhVmFsdWVUZXh0PXtzcGlubmluZyA/IF8oIlNhdmlu ZyIpIDogdW5kZWZpbmVkfQotKyAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5leHRyYVByaW1h cnlQcm9wc30KLSsgICAgICAgICAgICAgICAgICAgICAgICBpc0Rpc2FibGVkPXsKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY2VydE5hbWUgPT09ICIiIHx8IChjZXJ0UmFkaW9GaWxlICYm IGNlcnRGaWxlID09PSAiIikgfHwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNlcnRS YWRpb1VwbG9hZCAmJiAodXBsb2FkVmFsdWUgPT09ICIiIHx8IGJhZENlcnRUZXh0KSkgfHwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNlcnRSYWRpb1NlbGVjdCAmJiBjZXJ0TmFtZXMu bGVuZ3RoID09PSAwKSB8fAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGtjczEyUGlu TWV0aG9kID09PSAiZmlsZSIgJiYgKHBrY3MxMlBpbkZpbGUgPT09ICIiIHx8ICFmaWxlX2lzX3Bh dGgocGtjczEyUGluRmlsZSkpKSB8fAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGtj czEyUGluTWV0aG9kID09PSAic3RkaW4iICYmIHBrY3MxMlBpblRleHQgPT09ICIiKSB8fAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0Tmlja25hbWVzLmluY2x1ZGVzKGNlcnROYW1l KSB8fAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBDQUNlcnROaWNrbmFtZXMuaW5jbHVk ZXMoY2VydE5hbWUpCi0rICAgICAgICAgICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAg ICAgICAgPgotKyAgICAgICAgICAgICAgICAgICAgICAgIHtzYXZlQnRuTmFtZX0KLSsgICAgICAg ICAgICAgICAgICAgIDwvQnV0dG9uPiwKLSsgICAgICAgICAgICAgICAgICAgIDxCdXR0b24ga2V5 PSJjYW5jZWwiIHZhcmlhbnQ9ImxpbmsiIG9uQ2xpY2s9e2Nsb3NlSGFuZGxlcn0+Ci0rICAgICAg ICAgICAgICAgICAgICAgICAge18oIkNhbmNlbCIpfQotKyAgICAgICAgICAgICAgICAgICAgPC9C dXR0b24+Ci0rICAgICAgICAgICAgICAgIF19Ci0rICAgICAgICAgICAgPgotKyAgICAgICAgICAg ICAgICA8Rm9ybSBpc0hvcml6b250YWwgYXV0b0NvbXBsZXRlPSJvZmYiPgotKyAgICAgICAgICAg ICAgICAgICAgPFRleHRDb250ZW50PgotKyAgICAgICAgICAgICAgICAgICAgICAgIDxUZXh0IGNv bXBvbmVudD17VGV4dFZhcmlhbnRzLmg0fT4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg e2Rlc2N9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgPC9UZXh0PgotKyAgICAgICAgICAgICAg ICAgICAgPC9UZXh0Q29udGVudD4KLSsgICAgICAgICAgICAgICAgICAgIDxHcmlkCi0rICAgICAg ICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPSJkcy1tYXJnaW4tdG9wLXNtIgotKyAgICAgICAg ICAgICAgICAgICAgICAgIHRpdGxlPXtfKCJFbnRlciBuYW1lL25pY2tuYW1lIG9mIHRoZSBjZXJ0 aWZpY2F0ZSIpfQotKyAgICAgICAgICAgICAgICAgICAgPgotKyAgICAgICAgICAgICAgICAgICAg ICAgIDxHcmlkSXRlbSBjbGFzc05hbWU9ImRzLWxhYmVsIiBzcGFuPXszfT4KLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAge18oIkNlcnRpZmljYXRlIE5pY2tuYW1lIil9Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgPC9HcmlkSXRlbT4KLSsgICAgICAgICAgICAgICAgICAgICAgICA8R3Jp ZEl0ZW0gc3Bhbj17OX0+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUZXh0SW5wdXQK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InRleHQiCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZD0iY2VydE5hbWUiCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PSJob3Jpem9udGFsLWZvcm0tbmFtZS1oZWxw ZXIiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJjZXJ0TmFtZSIKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSwgc3RyKSA9PiB7Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlQ2hhbmdlKGUpOwotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0KLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHZhbGlkYXRlZD17Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY2VydE5hbWUgPT09ICIiIHx8Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY2VydE5pY2tuYW1lcy5pbmNsdWRlcyhjZXJ0TmFtZSkgfHwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBDQUNlcnROaWNrbmFtZXMuaW5jbHVkZXMoY2VydE5hbWUpID8g VmFsaWRhdGVkT3B0aW9ucy5lcnJvciA6IFZhbGlkYXRlZE9wdGlvbnMuZGVmYXVsdH0KLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLz4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg eyhjZXJ0Tmlja25hbWVzLmluY2x1ZGVzKGNlcnROYW1lKSB8fCBDQUNlcnROaWNrbmFtZXMuaW5j bHVkZXMoY2VydE5hbWUpKSAmJiAoCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 SGVscGVyVGV4dD4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SGVscGVy VGV4dEl0ZW0gdmFyaWFudD0iZXJyb3IiPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7XygiUGxlYXNlIHVzZSBhIHVuaXF1ZSBjZXJ0aWZpY2F0ZSBuaWNrbmFtZSIp fQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSGVscGVyVGV4dEl0ZW0+ Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0hlbHBlclRleHQ+Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICl9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgPC9Hcmlk SXRlbT4KLSsgICAgICAgICAgICAgICAgICAgIDwvR3JpZD4KLSsgICAgICAgICAgICAgICAgICAg IDxFeHBhbmRhYmxlU2VjdGlvbgotKyAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZVRleHQ9 e3RoaXMuc3RhdGUuaXNQYXNzd29yZFNlY3Rpb25FeHBhbmRlZCA/IF8oIkhpZGUgUEtDUyMxMiBQ YXNzd29yZCBPcHRpb25zIikgOiBfKCJTaG93IFBLQ1MjMTIgUGFzc3dvcmQgT3B0aW9ucyIpfQot KyAgICAgICAgICAgICAgICAgICAgICAgIG9uVG9nZ2xlPXt0aGlzLmhhbmRsZVBhc3N3b3JkU2Vj dGlvblRvZ2dsZX0KLSsgICAgICAgICAgICAgICAgICAgICAgICBpc0V4cGFuZGVkPXt0aGlzLnN0 YXRlLmlzUGFzc3dvcmRTZWN0aW9uRXhwYW5kZWR9Ci0rICAgICAgICAgICAgICAgICAgICA+Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9ImRzLWluZGVudC1sZyI+Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUZXh0Q29udGVudCBjbGFzc05hbWU9ImRzLW1h cmdpbi10b3AiPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRleHQgY29tcG9u ZW50PXtUZXh0VmFyaWFudHMucH0+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAge18oIlRoZXNlIHBhc3N3b3JkIHNldHRpbmdzIGFyZSBvbmx5IHVzZWQgZm9yIFBLQ1MjMTIg cGFzc3dvcmQgcHJvdGVjdGVkIGNlcnRpZmljYXRlcy4gVGhlc2Ugc2V0dGluZ3MgYXJlIGlnbm9y ZWQgZm9yIG90aGVyIGNlcnRpZmljYXRlIHR5cGVzLiIpfQotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgPC9UZXh0PgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1RleHRD b250ZW50PgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBjbGFzc05hbWU9ImRz LW1hcmdpbi10b3AtbGciPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWRJ dGVtIHNwYW49ezEyfT4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UmFk aW8KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9Im5vUGFzc3dv cmRSYWRpbyIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9 e18oIk5vbi1QS0NTIzEyIENlcnRpZmljYXRlIil9Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG5hbWU9InBrY3MxMlBpbk1ldGhvZCIKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaXNDaGVja2VkPXtwa2NzMTJQaW5NZXRob2QgPT09ICJu b1Bhc3N3b3JkIn0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25D aGFuZ2U9e2hhbmRsZVBrY3MxMlBpbk1ldGhvZENoYW5nZX0KLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDxkaXYKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1l PSJkcy1tYXJnaW4tdG9wIgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0aXRsZT17XygiUGFzc3dvcmQgd2lsbCBiZSByZWFkIGZyb20gc3RkaW4gd2hlbiBwcm9tcHRl ZCBieSB0aGUgY29tbWFuZCIpfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ID4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJhZGlvCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icGtjczEyUGluUmFk aW9TdGRpbiIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxh YmVsPXtfKCJQYXNzd29yZCIpfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbmFtZT0icGtjczEyUGluTWV0aG9kIgotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaXNDaGVja2VkPXtwa2NzMTJQaW5NZXRob2QgPT09ICJzdGRp biJ9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5n ZT17aGFuZGxlUGtjczEyUGluTWV0aG9kQ2hhbmdlfQotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDwvZGl2PgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NO YW1lPSJkcy1tYXJnaW4tdG9wIGRzLXJhZGlvLWluZGVudCI+Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDxUZXh0SW5wdXQKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InBhc3N3b3JkIgotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InBrY3MxMlBpblRleHRTdGRpbiIKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9 InBrY3MxMi1waW4tc3RkaW4taGVscGVyIgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbmFtZT0icGtjczEyUGluVGV4dCIKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXtwa2NzMTJQaW5UZXh0fQotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlLCB2YWx1ZSkg PT4gewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhh bmRsZVBrY3MxMlBpblRleHRDaGFuZ2UodmFsdWUpOwotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfX0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtfKCJFbnRlciBwYXNzd29yZCB0byBzZW5kIHZpYSBz dGRpbiIpfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFs aWRhdGVkPXtwa2NzMTJQaW5NZXRob2QgPT09ICJzdGRpbiIgJiYgcGtjczEyUGluVGV4dCA9PT0g IiIgPyBWYWxpZGF0ZWRPcHRpb25zLmVycm9yIDogVmFsaWRhdGVkT3B0aW9ucy5kZWZhdWx0fQot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNEaXNhYmxlZD17 cGtjczEyUGluTWV0aG9kICE9PSAic3RkaW4ifQotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwv ZGl2PgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPSJkcy1tYXJnaW4tdG9w IgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT17XygiUmVh ZCBwYXNzd29yZCBmcm9tIGEgZmlsZSBvbiB0aGUgc2VydmVyIil9Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA8UmFkaW8KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlkPSJwa2NzMTJQaW5SYWRpb0ZpbGUiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjbGFzc05hbWU9ImRzLW1hcmdpbi10b3AtbGciCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17XygiUmVhZCBwYXNzd29y ZCBmcm9tIGZpbGUiKX0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG5hbWU9InBrY3MxMlBpbk1ldGhvZCIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlzQ2hlY2tlZD17cGtjczEyUGluTWV0aG9kID09PSAiZmlsZSJ9Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFu ZGxlUGtjczEyUGluTWV0aG9kQ2hhbmdlfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2 PgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSJk cy1tYXJnaW4tdG9wIGRzLXJhZGlvLWluZGVudCI+Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDxUZXh0SW5wdXQKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHR5cGU9InRleHQiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZD0icGtjczEyUGluRmlsZSIKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9InBrY3MxMi1waW4tZmls ZS1oZWxwZXIiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu YW1lPSJwa2NzMTJQaW5GaWxlIgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdmFsdWU9e3BrY3MxMlBpbkZpbGV9Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUsIHZhbHVlKSA9PiB7Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlUGtjczEyUGluRmls ZUNoYW5nZSh2YWx1ZSk7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9fQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxh Y2Vob2xkZXI9e18oIkVudGVyIGZ1bGwgcGF0aCB0byBwYXNzd29yZCBmaWxlIil9Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0Rpc2FibGVkPXtwa2NzMTJQ aW5NZXRob2QgIT09ICJmaWxlIn0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHZhbGlkYXRlZD17Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcGtjczEyUGluTWV0aG9kID09PSAiZmlsZSIgJiYKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGtjczEyUGluRmlsZSA9PT0g IiIgfHwgIWZpbGVfaXNfcGF0aChwa2NzMTJQaW5GaWxlKSkKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBWYWxpZGF0ZWRPcHRpb25zLmVycm9y Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDog VmFsaWRhdGVkT3B0aW9ucy5kZWZhdWx0Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwa2NzMTJQaW5N ZXRob2QgPT09ICJmaWxlIiAmJiBwa2NzMTJQaW5GaWxlICE9PSAiIiAmJiAhZmlsZV9pc19wYXRo KHBrY3MxMlBpbkZpbGUpICYmICgKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDxIZWxwZXJUZXh0PgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDxIZWxwZXJUZXh0SXRlbSB2YXJpYW50PSJlcnJvciI+Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtfKCJQbGVhc2Ug ZW50ZXIgYSB2YWxpZCBmaWxlIHBhdGggKG11c3Qgc3RhcnQgd2l0aCAnLycgYW5kIG5vdCBlbmQg d2l0aCAnLycpIil9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgPC9IZWxwZXJUZXh0SXRlbT4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDwvSGVscGVyVGV4dD4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKX0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rp dj4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0i ZHMtbWFyZ2luLXRvcC14eGxnIj4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgPFRvb2x0aXAKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHBvc2l0aW9uPXtUb29sdGlwUG9zaXRpb24uYm90dG9tU3RhcnR9Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50PXsKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PgotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XygiRm9yY2UgY2VydGlmaWNh dGUgYWRkaXRpb24gd2l0aG91dCB2YWxpZGF0aW9uLiBUaGlzIGJ5cGFzc2VzIGNlcnRpZmljYXRl IGNoYWluIHZhbGlkYXRpb24gY2hlY2tzLiIpfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2hl Y2tib3gKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZD0iZm9yY2VDZXJ0QWRkIgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNsYXNzTmFtZT0iZHMtbWFyZ2luLXRvcC1sZyIKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17XygiU2tpcCBjZXJ0aWZpY2F0 ZSB2ZXJpZmljYXRpb24iKX0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpc0NoZWNrZWQ9e2ZvcmNlQ2VydEFkZH0KLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUsIGNoZWNrZWQpID0+IHsK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFu ZGxlRm9yY2VDZXJ0QWRkQ2hhbmdlKGNoZWNrZWQpOwotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH19Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA8L1Rvb2x0aXA+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9k aXY+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWRJdGVtPgotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+Ci0rICAgICAgICAgICAgICAgICAgICAgICAg PC9kaXY+Ci0rICAgICAgICAgICAgICAgICAgICA8L0V4cGFuZGFibGVTZWN0aW9uPgotKyAgICAg ICAgICAgICAgICAgICAgPEdyaWQ+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWRJdGVt IHNwYW49ezEyfT4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiB0aXRsZT17Xygi VXBsb2FkIHRoZSBjb250ZW50cyBvZiBhIFBFTSBmaWxlIGZyb20gdGhlIGNsaWVudCdzIHN5c3Rl bS4iKX0+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UmFkaW8KLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0iY2VydFJhZGlvVXBsb2FkIgotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXtjZXJ0VGV4dExhYmVsfQotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImNlcnRDaG9pY2UiCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZVJhZGlvQ2hh bmdlfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzQ2hlY2tlZD17Y2Vy dFJhZGlvVXBsb2FkfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4KLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDxkaXYgY2xhc3NOYW1lPXtjZXJ0UmFkaW9VcGxvYWQgPyAiZHMtbWFyZ2luLXRvcCBkcy1y YWRpby1pbmRlbnQiIDogImRzLW1hcmdpbi10b3AgZHMtcmFkaW8taW5kZW50IGRzLWRpc2FibGVk In0+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8RmlsZVVwbG9hZAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJ1cGxvYWRQRU1GaWxlIgotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9InRleHQiCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3VwbG9hZFZhbHVlfQotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lPXt1cGxvYWRGaWxlTmFtZX0KLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlbmFtZVBsYWNlaG9sZGVyPXtfKCJE cmFnIGFuZCBkcm9wIGEgZmlsZSwgb3IgdXBsb2FkIG9uZSIpfQotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG9uRmlsZUlucHV0Q2hhbmdlPXtoYW5kbGVGaWxlSW5wdXRDaGFu Z2V9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25EYXRhQ2hhbmdlPXto YW5kbGVUZXh0T3JEYXRhQ2hhbmdlfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG9uVGV4dENoYW5nZT17aGFuZGxlVGV4dE9yRGF0YUNoYW5nZX0KLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBvblJlYWRTdGFydGVkPXtoYW5kbGVGaWxlUmVhZFN0YXJ0 ZWR9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25SZWFkRmluaXNoZWQ9 e2hhbmRsZUZpbGVSZWFkRmluaXNoZWR9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgb25DbGVhckNsaWNrPXtoYW5kbGVDbGVhcn0KLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpc0xvYWRpbmc9e3VwbG9hZElzTG9hZGluZ30KLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkcm9wem9uZVByb3BzPXt7Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFjY2VwdDogJy5wZW0nLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBvbkRyb3BSZWplY3RlZDogaGFuZGxlRmlsZVJlamVj dGVkCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0KLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0ZWQ9ewotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1cGxvYWRJc1JlamVjdGVkIHx8Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjZXJ0UmFkaW9VcGxvYWQgJiYgdXBsb2FkVmFs dWUgPT09ICIiKSB8fAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo Y2VydFJhZGlvVXBsb2FkICYmIGJhZENlcnRUZXh0KQotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgPyAnZXJyb3InCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA6ICdkZWZhdWx0JwotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicm93 c2VCdXR0b25UZXh0PXtfKCJVcGxvYWQgUEVNIEZpbGUiKX0KLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC8+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHRpdGxlPXtfKCJDaG9vc2UgYSBjZXJ0aWZp Y2F0ZSBmcm9tIHRoZSBzZXJ2ZXIncyBjZXJ0aWZpY2F0ZSBkaXJlY3RvcnkiKX0+Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA8UmFkaW8KLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpZD0iY2VydFJhZGlvU2VsZWN0IgotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNsYXNzTmFtZT0iZHMtbWFyZ2luLXRvcC1sZyIKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17XygiQ2hvb3NlIENlcnRpZmljYXRlIEZy b20gU2VydmVyIil9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0i Y2VydENob2ljZSIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0NoZWNr ZWQ9e2NlcnRSYWRpb1NlbGVjdH0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBvbkNoYW5nZT17aGFuZGxlUmFkaW9DaGFuZ2V9Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NlcnRSYWRpb1NlbGVjdCA/ICJk cy1tYXJnaW4tdG9wIGRzLXJhZGlvLWluZGVudCIgOiAiZHMtbWFyZ2luLXRvcCBkcy1yYWRpby1p bmRlbnQgZHMtZGlzYWJsZWQifT4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxG b3JtU2VsZWN0Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3Nl bGVjdENlcnROYW1lfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJz ZWxlY3RDZXJ0TmFtZSIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNo YW5nZT17KGUsIHN0cikgPT4gewotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBoYW5kbGVDZXJ0U2VsZWN0KHN0cik7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfX0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxh YmVsPSJGb3JtU2VsZWN0IElucHV0IgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNsYXNzTmFtZT0iZHMtY2VydC1zZWxlY3QiCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdmFsaWRhdGVkPXtzZWxlY3RWYWxpZGF0ZWR9Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg e2NlcnROYW1lcy5sZW5ndGggPT09IDAgJiYKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgPEZvcm1TZWxlY3RPcHRpb24KLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGtleT0ibm9uZSIKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHZhbHVlPSIiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsYWJlbD17XygiTm8gY2VydGlmaWNhdGVzIHByZXNlbnQiKX0KLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRGlzYWJsZWQKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUGxhY2Vob2xkZXIK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz59Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAge2NlcnROYW1lcy5sZW5ndGggPiAwICYmIGNlcnRO YW1lcy5tYXAoKG9wdGlvbiwgaW5kZXgpID0+ICgKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgPEZvcm1TZWxlY3RPcHRpb24KLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17b3B0aW9ufQotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e29wdGlvbn0KLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4KLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICApKX0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRm9ybVNl bGVjdD4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDxkaXYgdGl0bGU9e18oIkVudGVyIHRoZSBmdWxsIHBhdGggb24gdGhl IHNlcnZlciB0byBhbmQgaW5jbHVkaW5nIHRoZSBjZXJ0aWZpY2F0ZSBmaWxlIG5hbWUiKX0+Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UmFkaW8KLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpZD0iY2VydFJhZGlvRmlsZSIKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9ImRzLW1hcmdpbi10b3AtbGciCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e18oIkNlcnRpZmljYXRlIEZpbGUg TG9jYXRpb24iKX0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJj ZXJ0Q2hvaWNlIgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzQ2hlY2tl ZD17Y2VydFJhZGlvRmlsZX0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv bkNoYW5nZT17aGFuZGxlUmFkaW9DaGFuZ2V9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NlcnRSYWRpb0ZpbGUgPyAiZHMtbWFy Z2luLXRvcCBkcy1yYWRpby1pbmRlbnQiIDogImRzLW1hcmdpbi10b3AgZHMtcmFkaW8taW5kZW50 IGRzLWRpc2FibGVkIn0+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGV4dElu cHV0Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0idGV4dCIKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0iY2VydEZpbGUiCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT0iaG9yaXpvbnRh bC1mb3JtLW5hbWUtaGVscGVyIgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG5hbWU9ImNlcnRGaWxlIgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9u Q2hhbmdlPXsoZSwgdmFsdWUpID0+IHsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaGFuZGxlQ2hhbmdlKGUpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH19Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGVk PXtjZXJ0UmFkaW9GaWxlICYmIGNlcnRGaWxlID09PSAiIiA/IFZhbGlkYXRlZE9wdGlvbnMuZXJy b3IgOiBWYWxpZGF0ZWRPcHRpb25zLmRlZmF1bHR9Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KLSsgICAgICAg ICAgICAgICAgICAgICAgICA8L0dyaWRJdGVtPgotKyAgICAgICAgICAgICAgICAgICAgPC9Hcmlk PgotKyAgICAgICAgICAgICAgICA8L0Zvcm0+Ci0rICAgICAgICAgICAgPC9Nb2RhbD4KLSsgICAg ICAgICk7Ci0rICAgIH0KLSt9Ci0rCi0rZXhwb3J0IGNsYXNzIFNlY3VyaXR5QWRkQ0FDZXJ0TW9k YWwgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotKyAgICByZW5kZXIoKSB7Ci0rICAgICAgICBj b25zdCB7Ci0rICAgICAgICAgICAgc2hvd01vZGFsLAotKyAgICAgICAgICAgIGNsb3NlSGFuZGxl ciwKLSsgICAgICAgICAgICBoYW5kbGVDaGFuZ2UsCi0rICAgICAgICAgICAgc2F2ZUhhbmRsZXIs Ci0rICAgICAgICAgICAgc3Bpbm5pbmcsCi0rICAgICAgICAgICAgY2VydE5hbWUsCi0rICAgICAg ICAgICAgY2VydEZpbGUsCi0rICAgICAgICAgICAgY2VydFJhZGlvRmlsZSwKLSsgICAgICAgICAg ICBjZXJ0UmFkaW9TZWxlY3QsCi0rICAgICAgICAgICAgY2VydFJhZGlvVXBsb2FkLAotKyAgICAg ICAgICAgIGhhbmRsZVJhZGlvQ2hhbmdlLAotKyAgICAgICAgICAgIGJhZENlcnRUZXh0LAotKyAg ICAgICAgICAgIGNlcnROYW1lcywKLSsgICAgICAgICAgICBjZXJ0Tmlja25hbWVzLAotKyAgICAg ICAgICAgIENBQ2VydE5pY2tuYW1lcywKLSsgICAgICAgICAgICAvLyBTZWxlY3Qgc2VydmVyIGNl cnQKLSsgICAgICAgICAgICBoYW5kbGVDZXJ0U2VsZWN0LAotKyAgICAgICAgICAgIHNlbGVjdENl cnROYW1lLAotKyAgICAgICAgICAgIC8vIEZpbGUgVXBsb2FkCi0rICAgICAgICAgICAgdXBsb2Fk VmFsdWUsCi0rICAgICAgICAgICAgdXBsb2FkRmlsZU5hbWUsCi0rICAgICAgICAgICAgdXBsb2Fk SXNMb2FkaW5nLAotKyAgICAgICAgICAgIHVwbG9hZElzUmVqZWN0ZWQsCi0rICAgICAgICAgICAg aGFuZGxlRmlsZUlucHV0Q2hhbmdlLAotKyAgICAgICAgICAgIGhhbmRsZVRleHRPckRhdGFDaGFu Z2UsCi0rICAgICAgICAgICAgaGFuZGxlRmlsZVJlYWRTdGFydGVkLAotKyAgICAgICAgICAgIGhh bmRsZUZpbGVSZWFkRmluaXNoZWQsCi0rICAgICAgICAgICAgaGFuZGxlQ2xlYXIsCi0rICAgICAg ICAgICAgaGFuZGxlRmlsZVJlamVjdGVkLAotKyAgICAgICAgfSA9IHRoaXMucHJvcHM7Ci0rCi0r ICAgICAgICBsZXQgc2F2ZUJ0bk5hbWUgPSBfKCJBZGQgQ2VydGlmaWNhdGUiKTsKLSsgICAgICAg IGNvbnN0IGV4dHJhUHJpbWFyeVByb3BzID0ge307Ci0rICAgICAgICBpZiAoc3Bpbm5pbmcpIHsK LSsgICAgICAgICAgICBzYXZlQnRuTmFtZSA9IF8oIkFkZGluZyBDZXJ0aWZpY2F0ZSAuLi4iKTsK LSsgICAgICAgICAgICBleHRyYVByaW1hcnlQcm9wcy5zcGlubmVyQXJpYVZhbHVlVGV4dCA9IF8o IlNhdmluZyIpOwotICAgICAgICAgfQotIAotKyAgICAgICAgY29uc3QgY2VydFRleHRMYWJlbCA9 ICgKLSsgICAgICAgICAgICA8ZGl2PgotKyAgICAgICAgICAgICAgICA8VG9vbHRpcAotKyAgICAg ICAgICAgICAgICAgICAgY29udGVudD17Ci0rICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4K LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAge18oIlBhc3RlIHRoZSBiYXNlNjQgZW5jb2Rl ZCBjZXJ0aWZpY2F0ZSB0aGF0IHN0YXJ0cyB3aXRoIFwiLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0t LS0tXCIgYW5kIGVuZHMgd2l0aCBcIi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS1cIi4gIE1ha2Ug c3VyZSB0aGVyZSBhcmUgbm8gc3BlY2lhbCBjYXJyaWFnZSByZXR1cm4gY2hhcmFjdGVycyBhZnRl ciBlYWNoIGxpbmUuIil9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+Ci0rICAgICAg ICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICAgID4KLSsgICAgICAgICAgICAgICAgICAg IDxkaXY+e18oIlVwbG9hZCBQRU0gRmlsZSwgb3IgQ2VydGlmaWNhdGUgVGV4dCIpfSA8T3V0bGlu ZWRRdWVzdGlvbkNpcmNsZUljb24gLz48L2Rpdj4KLSsgICAgICAgICAgICAgICAgPC9Ub29sdGlw PgotKyAgICAgICAgICAgIDwvZGl2PgotKyAgICAgICAgKTsKLSsKLSsKLSsgICAgICAgIGxldCB0 aXRsZSA9IF8oIkFkZCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkiKTsKLSsgICAgICAgIGxldCBkZXNj ID0gXygiQWRkIGEgQ0EgQ2VydGlmaWNhdGUgdG8gdGhlIHNlY3VyaXR5IGRhdGFiYXNlLiIpOwot ICAgICAgICAgbGV0IHNlbGVjdFZhbGlkYXRlZCA9IFZhbGlkYXRlZE9wdGlvbnMuZGVmYXVsdDsK LSAgICAgICAgIGlmIChjZXJ0UmFkaW9TZWxlY3QgJiYgY2VydE5hbWVzLmxlbmd0aCA9PT0gMCkg ewotICAgICAgICAgICAgIHNlbGVjdFZhbGlkYXRlZCA9IFZhbGlkYXRlZE9wdGlvbnMuZXJyb3I7 Ci1AQCAtMjAxLDcgKzU3NCw3IEBAIGV4cG9ydCBjbGFzcyBTZWN1cml0eUFkZENlcnRNb2RhbCBl eHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAga2V5PSJj b25maXJtIgotICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9InByaW1hcnkiCi0gICAg ICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gewotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzYXZlSGFuZGxlcihpc0NBQ2VydCk7Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNhdmVIYW5kbGVyKHRydWUpOwotICAgICAgICAgICAgICAgICAgICAgICAgIH19Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nPXtzcGlubmluZ30KLSAgICAgICAgICAg ICAgICAgICAgICAgICBzcGlubmVyQXJpYVZhbHVlVGV4dD17c3Bpbm5pbmcgPyBfKCJTYXZpbmci KSA6IHVuZGVmaW5lZH0KLUBAIC0yMDksNyArNTgyLDkgQEAgZXhwb3J0IGNsYXNzIFNlY3VyaXR5 QWRkQ2VydE1vZGFsIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAgICAgICAg ICAgICAgICBpc0Rpc2FibGVkPXsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydE5h bWUgPT09ICIiIHx8IChjZXJ0UmFkaW9GaWxlICYmIGNlcnRGaWxlID09PSAiIikgfHwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGNlcnRSYWRpb1VwbG9hZCAmJiAodXBsb2FkVmFsdWUg PT09ICIiIHx8IGJhZENlcnRUZXh0KSkgfHwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg KGNlcnRSYWRpb1NlbGVjdCAmJiBjZXJ0TmFtZXMubGVuZ3RoID09PSAwKQotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoY2VydFJhZGlvU2VsZWN0ICYmIGNlcnROYW1lcy5sZW5ndGggPT09 IDApIHx8Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnROaWNrbmFtZXMuaW5jbHVk ZXMoY2VydE5hbWUpIHx8Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIENBQ2VydE5pY2tu YW1lcy5pbmNsdWRlcyhjZXJ0TmFtZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAg ICAgICAgICAgICAgICAgICA+Ci0gICAgICAgICAgICAgICAgICAgICAgICAge3NhdmVCdG5OYW1l fQotQEAgLTIyNiw3ICs2MDEsNyBAQCBleHBvcnQgY2xhc3MgU2VjdXJpdHlBZGRDZXJ0TW9kYWwg ZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAgICAgICAgICAgICAgICAgIDwvVGV4 dD4KLSAgICAgICAgICAgICAgICAgICAgIDwvVGV4dENvbnRlbnQ+Ci0gICAgICAgICAgICAgICAg ICAgICA8R3JpZAotLSAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT0iZHMtbWFyZ2lu LXRvcC1sZyIKLSsgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9ImRzLW1hcmdpbi10 b3Atc20iCi0gICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9e18oIkVudGVyIG5hbWUvbmlj a25hbWUgb2YgdGhlIGNlcnRpZmljYXRlIil9Ci0gICAgICAgICAgICAgICAgICAgICA+Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgPEdyaWRJdGVtIGNsYXNzTmFtZT0iZHMtbGFiZWwiIHNwYW49 ezN9PgotQEAgLTI0MSwxMSArNjE2LDIxIEBAIGV4cG9ydCBjbGFzcyBTZWN1cml0eUFkZENlcnRN b2RhbCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBvbkNoYW5nZT17KGUsIHN0cikgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGhhbmRsZUNoYW5nZShlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH19Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0ZWQ9e2Nl cnROYW1lID09PSAiIiA/IFZhbGlkYXRlZE9wdGlvbnMuZXJyb3IgOiBWYWxpZGF0ZWRPcHRpb25z LmRlZmF1bHR9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0ZWQ9ewot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnROYW1lID09PSAiIiB8fAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnROaWNrbmFtZXMuaW5jbHVk ZXMoY2VydE5hbWUpIHx8Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0FD ZXJ0Tmlja25hbWVzLmluY2x1ZGVzKGNlcnROYW1lKSA/IFZhbGlkYXRlZE9wdGlvbnMuZXJyb3Ig OiBWYWxpZGF0ZWRPcHRpb25zLmRlZmF1bHR9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsoY2VydE5pY2tuYW1lcy5pbmNsdWRl cyhjZXJ0TmFtZSkgfHwgQ0FDZXJ0Tmlja25hbWVzLmluY2x1ZGVzKGNlcnROYW1lKSkgJiYgKAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhlbHBlclRleHQ+Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhlbHBlclRleHRJdGVtIHZhcmlhbnQ9ImVycm9y Ij4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge18oIlBsZWFzZSB1 c2UgYSB1bmlxdWUgY2VydGlmaWNhdGUgbmlja25hbWUiKX0KLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA8L0hlbHBlclRleHRJdGVtPgotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgPC9IZWxwZXJUZXh0PgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAp fQotICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZEl0ZW0+Ci0gICAgICAgICAgICAgICAg ICAgICA8L0dyaWQ+Ci0tICAgICAgICAgICAgICAgICAgICA8R3JpZCBjbGFzc05hbWU9ImRzLW1h cmdpbi10b3AiPgotKyAgICAgICAgICAgICAgICAgICAgPEdyaWQgY2xhc3NOYW1lPSJkcy1tYXJn aW4tdG9wLWxnIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZEl0ZW0gc3Bhbj17MTJ9 PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHRpdGxlPXtfKCJVcGxvYWQgdGhl IGNvbnRlbnRzIG9mIGEgUEVNIGZpbGUgZnJvbSB0aGUgY2xpZW50J3Mgc3lzdGVtLiIpfT4KLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxSYWRpbwotQEAgLTI5OCw3ICs2ODMsOSBA QCBleHBvcnQgY2xhc3MgU2VjdXJpdHlBZGRDZXJ0TW9kYWwgZXh0ZW5kcyBSZWFjdC5Db21wb25l bnQgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZvcm1TZWxlY3QKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17c2VsZWN0Q2VydE5hbWV9Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InNlbGVjdENlcnROYW1lIgot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDZXJ0 U2VsZWN0fQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXso ZSwgc3RyKSA9PiB7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhh bmRsZUNlcnRTZWxlY3Qoc3RyKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB9fQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9IkZv cm1TZWxlY3QgSW5wdXQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xh c3NOYW1lPSJkcy1jZXJ0LXNlbGVjdCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB2YWxpZGF0ZWQ9e3NlbGVjdFZhbGlkYXRlZH0KLUBAIC0xMTAzLDYgKzE0OTAsMjIgQEAg U2VjdXJpdHlBZGRDZXJ0TW9kYWwuZGVmYXVsdFByb3BzID0gewotICAgICBlcnJvcjoge30sCi0g fTsKLSAKLStTZWN1cml0eUFkZENBQ2VydE1vZGFsLnByb3BUeXBlcyA9IHsKLSsgICAgc2hvd01v ZGFsOiBQcm9wVHlwZXMuYm9vbCwKLSsgICAgY2xvc2VIYW5kbGVyOiBQcm9wVHlwZXMuZnVuYywK LSsgICAgaGFuZGxlQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYywKLSsgICAgc2F2ZUhhbmRsZXI6IFBy b3BUeXBlcy5mdW5jLAotKyAgICBzcGlubmluZzogUHJvcFR5cGVzLmJvb2wsCi0rICAgIGVycm9y OiBQcm9wVHlwZXMub2JqZWN0LAotK307Ci0rCi0rU2VjdXJpdHlBZGRDQUNlcnRNb2RhbC5kZWZh dWx0UHJvcHMgPSB7Ci0rICAgIHNob3dNb2RhbDogZmFsc2UsCi0rICAgIHNwaW5uaW5nOiBmYWxz ZSwKLSsgICAgc2F2ZUhhbmRsZXI6ICgpID0+IHt9LAotKyAgICBlcnJvcjoge30sCi0rfTsKLSsK LSBTZWN1cml0eUFkZENTUk1vZGFsLnByb3BUeXBlcyA9IHsKLSAgICAgc2hvd01vZGFsOiBQcm9w VHlwZXMuYm9vbCwKLSAgICAgY2xvc2VIYW5kbGVyOiBQcm9wVHlwZXMuZnVuYywKLWRpZmYgLS1n aXQgYS9zcmMvY29ja3BpdC8zODktY29uc29sZS9zcmMvbGliL3NlY3VyaXR5L3NlY3VyaXR5VGFi bGVzLmpzeCBiL3NyYy9jb2NrcGl0LzM4OS1jb25zb2xlL3NyYy9saWIvc2VjdXJpdHkvc2VjdXJp dHlUYWJsZXMuanN4Ci1pbmRleCBmY2U0Y2IwNGUuLmE2YzY0ZTZjMSAxMDA2NDQKLS0tLSBhL3Ny Yy9jb2NrcGl0LzM4OS1jb25zb2xlL3NyYy9saWIvc2VjdXJpdHkvc2VjdXJpdHlUYWJsZXMuanN4 Ci0rKysgYi9zcmMvY29ja3BpdC8zODktY29uc29sZS9zcmMvbGliL3NlY3VyaXR5L3NlY3VyaXR5 VGFibGVzLmpzeAotQEAgLTQsNyArNCw2IEBAIGltcG9ydCB7Ci0gICAgIEdyaWQsCi0gICAgIEdy aWRJdGVtLAotICAgICBQYWdpbmF0aW9uLAotLSAgICBQYWdpbmF0aW9uVmFyaWFudCwKLSAgICAg U2VhcmNoSW5wdXQsCi0gICAgIFRvb2x0aXAsCi0gfSBmcm9tICdAcGF0dGVybmZseS9yZWFjdC1j b3JlJzsKLUBAIC05NCwxMCArOTMsMTAgQEAgY2xhc3MgS2V5VGFibGUgZXh0ZW5kcyBSZWFjdC5D b21wb25lbnQgewotICAgICBdOwotIAotICAgICBoYW5kbGVTb3J0KF9ldmVudCwgaW5kZXgsIGRp cmVjdGlvbikgewotLSAgICAgICAgY29uc3Qgc29ydGVkUm93cyA9IFsuLi50aGlzLnN0YXRlLnJv d3NdLnNvcnQoKGEsIGIpID0+IAotKyAgICAgICAgY29uc3Qgc29ydGVkUm93cyA9IFsuLi50aGlz LnN0YXRlLnJvd3NdLnNvcnQoKGEsIGIpID0+Ci0gICAgICAgICAgICAgKGFbaW5kZXhdIDwgYltp bmRleF0gPyAtMSA6IGFbaW5kZXhdID4gYltpbmRleF0gPyAxIDogMCkKLSAgICAgICAgICk7Ci0t ICAgICAgICAKLSsKLSAgICAgICAgIHRoaXMuc2V0U3RhdGUoewotICAgICAgICAgICAgIHNvcnRC eTogewotICAgICAgICAgICAgICAgICBpbmRleCwKLUBAIC0xMjcsNyArMTI2LDcgQEAgY2xhc3Mg S2V5VGFibGUgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAgICAgICAgICA+Ci0g ICAgICAgICAgICAgICAgICAgICA8YSBjbGFzc05hbWU9ImRzLWZvbnQtc2l6ZS1zbSI+e18oIldo YXQgaXMgYW4gb3JwaGFuIGtleT8iKX08L2E+Ci0gICAgICAgICAgICAgICAgIDwvVG9vbHRpcD4K LS0gICAgICAgICAgICAgICAgPFRhYmxlIAotKyAgICAgICAgICAgICAgICA8VGFibGUKLSAgICAg ICAgICAgICAgICAgICAgIGNsYXNzTmFtZT0iZHMtbWFyZ2luLXRvcCIKLSAgICAgICAgICAgICAg ICAgICAgIGFyaWEtbGFiZWw9Im9ycGgga2V5IHRhYmxlIgotICAgICAgICAgICAgICAgICAgICAg dmFyaWFudD0iY29tcGFjdCIKLUBAIC0xMzUsNyArMTM0LDcgQEAgY2xhc3MgS2V5VGFibGUgZXh0 ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAgICAgICAgICAgICAgPFRoZWFkPgotICAg ICAgICAgICAgICAgICAgICAgICAgIDxUcj4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg e2NvbHVtbnMubWFwKChjb2x1bW4sIGlkeCkgPT4gKAotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPFRoIAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRoCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpZHh9Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc29ydD17Y29sdW1uLnNvcnRhYmxlID8gewotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3J0QnksCi1AQCAtMTYzLDcgKzE2 Miw3IEBAIGNsYXNzIEtleVRhYmxlIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7aGFzUm93cyAmJiAoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg PFRkIGlzQWN0aW9uQ2VsbD4KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgPEFjdGlvbnNDb2x1bW4gCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDxBY3Rpb25zQ29sdW1uCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpdGVtcz17dGhpcy5nZXRBY3Rpb25zRm9yUm93KHJvdyl9Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgPC9UZD4KLUBAIC0yMjQsNyArMjIzLDcgQEAgY2xhc3MgQ1NSVGFibGUgZXh0 ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICB9Ci0gCi0gICAgIGhhbmRsZVNvcnQoX2V2ZW50 LCBpbmRleCwgZGlyZWN0aW9uKSB7Ci0tICAgICAgICBjb25zdCBzb3J0ZWRSb3dzID0gWy4uLnRo aXMuc3RhdGUucm93c10uc29ydCgoYSwgYikgPT4gCi0rICAgICAgICBjb25zdCBzb3J0ZWRSb3dz ID0gWy4uLnRoaXMuc3RhdGUucm93c10uc29ydCgoYSwgYikgPT4KLSAgICAgICAgICAgICAoYVtp bmRleF0gPCBiW2luZGV4XSA/IC0xIDogYVtpbmRleF0gPiBiW2luZGV4XSA/IDEgOiAwKQotICAg ICAgICAgKTsKLSAgICAgICAgIHRoaXMuc2V0U3RhdGUoewotQEAgLTMxNiw3ICszMTUsNyBAQCBj bGFzcyBDU1JUYWJsZSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgb25DbGVhcj17KGV2dCkgPT4gdGhpcy5oYW5kbGVTZWFyY2hDaGFuZ2UoZXZ0LCAn Jyl9Ci0gICAgICAgICAgICAgICAgICAgICAvPgotICAgICAgICAgICAgICAgICB9Ci0tICAgICAg ICAgICAgICAgIDxUYWJsZSAKLSsgICAgICAgICAgICAgICAgPFRhYmxlCi0gICAgICAgICAgICAg ICAgICAgICBjbGFzc05hbWU9ImRzLW1hcmdpbi10b3AiCi0gICAgICAgICAgICAgICAgICAgICBh cmlhLWxhYmVsPSJjc3IgdGFibGUiCi0gICAgICAgICAgICAgICAgICAgICB2YXJpYW50PSJjb21w YWN0IgotQEAgLTMyNCw3ICszMjMsNyBAQCBjbGFzcyBDU1JUYWJsZSBleHRlbmRzIFJlYWN0LkNv bXBvbmVudCB7Ci0gICAgICAgICAgICAgICAgICAgICA8VGhlYWQ+Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgPFRyPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y29sdW1ucy5tYXAo KGNvbHVtbiwgaWR4KSA9PiAoCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGgg Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGgKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBrZXk9e2lkeH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzb3J0PXtjb2x1bW4uc29ydGFibGUgPyB7Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNvcnRCeSwKLUBAIC0zNTIsNyArMzUxLDcgQEAgY2xhc3Mg Q1NSVGFibGUgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtoYXNSb3dz ICYmICgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGQgaXNBY3Rpb25D ZWxsPgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QWN0aW9uc0Nv bHVtbiAKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFjdGlvbnND b2x1bW4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1z PXt0aGlzLmdldEFjdGlvbnNGb3JSb3cocm93KX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 L1RkPgotQEAgLTQxOCw0MSArNDE3LDExIEBAIGNsYXNzIENlcnRUYWJsZSBleHRlbmRzIFJlYWN0 LkNvbXBvbmVudCB7Ci0gICAgIH0KLSAKLSAgICAgaGFuZGxlU29ydChfZXZlbnQsIGNvbHVtbklu ZGV4LCBkaXJlY3Rpb24pIHsKLS0gICAgICAgIGNvbnN0IHNvcnRlZF9yb3dzID0gW107Ci0tICAg ICAgICBjb25zdCByb3dzID0gW107Ci0tICAgICAgICBsZXQgY291bnQgPSAwOwotLQotLSAgICAg ICAgLy8gQ29udmVydCB0aGUgcm93cyBwYWlyaW5ncyBpbnRvIGEgc29ydGFibGUgYXJyYXkKLS0g ICAgICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IHRoaXMuc3RhdGUucm93cy5sZW5ndGg7IGlk eCArPSAyKSB7Ci0tICAgICAgICAgICAgc29ydGVkX3Jvd3MucHVzaCh7Ci0tICAgICAgICAgICAg ICAgIGV4cGFuZGVkUm93OiB0aGlzLnN0YXRlLnJvd3NbaWR4ICsgMV0sCi0tICAgICAgICAgICAg ICAgIDE6IHRoaXMuc3RhdGUucm93c1tpZHhdLmNlbGxzWzBdLmNvbnRlbnQsCi0tICAgICAgICAg ICAgICAgIDI6IHRoaXMuc3RhdGUucm93c1tpZHhdLmNlbGxzWzFdLmNvbnRlbnQsCi0tICAgICAg ICAgICAgICAgIDM6IHRoaXMuc3RhdGUucm93c1tpZHhdLmNlbGxzWzJdLmNvbnRlbnQsCi0tICAg ICAgICAgICAgICAgIGlzc3VlcjogdGhpcy5zdGF0ZS5yb3dzW2lkeF0uaXNzdWVyLAotLSAgICAg ICAgICAgICAgICBmbGFnczogdGhpcy5zdGF0ZS5yb3dzW2lkeF0uZmxhZ3MKLS0gICAgICAgICAg ICB9KTsKLS0gICAgICAgIH0KLSsgICAgICAgIGNvbnN0IHJvd3MgPSBbLi4udGhpcy5zdGF0ZS5y b3dzXTsKLSAKLS0gICAgICAgIHNvcnRlZF9yb3dzLnNvcnQoKGEsIGIpID0+IChhW2NvbHVtbklu ZGV4ICsgMV0gPiBiW2NvbHVtbkluZGV4ICsgMV0pID8gMSA6IC0xKTsKLSsgICAgICAgIHJvd3Mu c29ydCgoYSwgYikgPT4gKGEuY2VsbHNbY29sdW1uSW5kZXhdLmNvbnRlbnQgPiBiLmNlbGxzW2Nv bHVtbkluZGV4XS5jb250ZW50KSA/IDEgOiAtMSk7Ci0gICAgICAgICBpZiAoZGlyZWN0aW9uICE9 PSBTb3J0QnlEaXJlY3Rpb24uYXNjKSB7Ci0tICAgICAgICAgICAgc29ydGVkX3Jvd3MucmV2ZXJz ZSgpOwotLSAgICAgICAgfQotLQotLSAgICAgICAgZm9yIChjb25zdCBzcm93IG9mIHNvcnRlZF9y b3dzKSB7Ci0tICAgICAgICAgICAgcm93cy5wdXNoKHsKLS0gICAgICAgICAgICAgICAgaXNPcGVu OiBmYWxzZSwKLS0gICAgICAgICAgICAgICAgY2VsbHM6IFsKLS0gICAgICAgICAgICAgICAgICAg IHsgY29udGVudDogc3Jvd1sxXSB9LAotLSAgICAgICAgICAgICAgICAgICAgeyBjb250ZW50OiBz cm93WzJdIH0sCi0tICAgICAgICAgICAgICAgICAgICB7IGNvbnRlbnQ6IHNyb3dbM10gfQotLSAg ICAgICAgICAgICAgICBdLAotLSAgICAgICAgICAgICAgICBpc3N1ZXI6IHNyb3cuaXNzdWVyLAot LSAgICAgICAgICAgICAgICBmbGFnczogc3Jvdy5mbGFncywKLS0gICAgICAgICAgICB9KTsKLS0g ICAgICAgICAgICBzcm93LmV4cGFuZGVkUm93LnBhcmVudCA9IGNvdW50OwotLSAgICAgICAgICAg IHJvd3MucHVzaChzcm93LmV4cGFuZGVkUm93KTsKLS0gICAgICAgICAgICBjb3VudCArPSAyOwot KyAgICAgICAgICAgIHJvd3MucmV2ZXJzZSgpOwotICAgICAgICAgfQotIAotICAgICAgICAgdGhp cy5zZXRTdGF0ZSh7Ci1AQCAtNTM0LDE4ICs1MDMsMTYgQEAgY2xhc3MgQ2VydFRhYmxlIGV4dGVu ZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAgICByb3dzLnB1c2goCi0gICAgICAgICAg ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgIGlzT3BlbjogZmFsc2UsCi0tICAgICAgICAg ICAgICAgICAgICBjZWxsczogW2NlcnQuYXR0cnMubmlja25hbWUsIGNlcnQuYXR0cnMuc3ViamVj dCwgY2VydC5hdHRycy5leHBpcmVzXSwKLSsgICAgICAgICAgICAgICAgICAgIGNlbGxzOiBbCi0r ICAgICAgICAgICAgICAgICAgICAgICAgeyBjb250ZW50OiBjZXJ0LmF0dHJzLm5pY2tuYW1lIH0s Ci0rICAgICAgICAgICAgICAgICAgICAgICAgeyBjb250ZW50OiBjZXJ0LmF0dHJzLnN1YmplY3Qg fSwKLSsgICAgICAgICAgICAgICAgICAgICAgICB7IGNvbnRlbnQ6IGNlcnQuYXR0cnMuZXhwaXJl cyB9Ci0rICAgICAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgICAgICAgaXNzdWVy OiBjZXJ0LmF0dHJzLmlzc3VlciwKLSAgICAgICAgICAgICAgICAgICAgIGZsYWdzOiBjZXJ0LmF0 dHJzLmZsYWdzLAotLQotLSAgICAgICAgICAgICAgICB9LAotLSAgICAgICAgICAgICAgICB7Ci0t ICAgICAgICAgICAgICAgICAgICBwYXJlbnQ6IGNvdW50LAotLSAgICAgICAgICAgICAgICAgICAg ZnVsbFdpZHRoOiB0cnVlLAotLSAgICAgICAgICAgICAgICAgICAgY2VsbHM6IFt7IHRpdGxlOiB0 aGlzLmdldEV4cGFuZGVkUm93KGNlcnQuYXR0cnMuaXNzdWVyLCBjZXJ0LmF0dHJzLmZsYWdzKSB9 XQotLSAgICAgICAgICAgICAgICB9LAotKyAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg KTsKLS0gICAgICAgICAgICBjb3VudCArPSAyOwotKyAgICAgICAgICAgIGNvdW50ICs9IDE7Ci0g ICAgICAgICB9Ci0gCi0gICAgICAgICB0aGlzLnNldFN0YXRlKHsKLUBAIC01ODcsNyArNTU0LDcg QEAgY2xhc3MgQ2VydFRhYmxlIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAg ICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5oYW5kbGVTZWFyY2hDaGFuZ2V9Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgb25DbGVhcj17KGV2dCkgPT4gdGhpcy5oYW5kbGVTZWFyY2hDaGFu Z2UoZXZ0LCAnJyl9Ci0gICAgICAgICAgICAgICAgICAgICAvPn0KLS0gICAgICAgICAgICAgICAg PFRhYmxlIAotKyAgICAgICAgICAgICAgICA8VGFibGUKLSAgICAgICAgICAgICAgICAgICAgIGFy aWEtbGFiZWw9ImNlcnQgdGFibGUiCi0gICAgICAgICAgICAgICAgICAgICB2YXJpYW50PSdjb21w YWN0JwotICAgICAgICAgICAgICAgICA+Ci1AQCAtNjI2LDcgKzU5Myw3IEBAIGNsYXNzIENlcnRU YWJsZSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDwvVGQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKSl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRkIGlzQWN0aW9u Q2VsbD4KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFjdGlvbnND b2x1bW4gCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBY3Rpb25z Q29sdW1uCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVt cz17dGhpcy5nZXRBY3Rpb25zRm9yUm93KHJvdyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg PC9UZD4KLUBAIC02NDYsNyArNjEzLDcgQEAgY2xhc3MgQ2VydFRhYmxlIGV4dGVuZHMgUmVhY3Qu Q29tcG9uZW50IHsKLSAgICAgICAgICAgICAgICAgPC9UYWJsZT4KLSAgICAgICAgICAgICAgICAg e2hhc1Jvd3MgJiYKLSAgICAgICAgICAgICAgICAgICAgIDxQYWdpbmF0aW9uCi0tICAgICAgICAg ICAgICAgICAgICAgICAgaXRlbUNvdW50PXt0aGlzLnN0YXRlLnJvd3MubGVuZ3RoIC8gMn0KLSsg ICAgICAgICAgICAgICAgICAgICAgICBpdGVtQ291bnQ9e3RoaXMuc3RhdGUucm93cy5sZW5ndGh9 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgd2lkZ2V0SWQ9InBhZ2luYXRpb24tb3B0aW9ucy1t ZW51LWJvdHRvbSIKLSAgICAgICAgICAgICAgICAgICAgICAgICBwZXJQYWdlPXtwZXJQYWdlfQot ICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2U9e3BhZ2V9Ci1AQCAtNzI4LDcgKzY5NSw3IEBA IGNsYXNzIENSTFRhYmxlIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgIGlmIChk aXJlY3Rpb24gIT09IFNvcnRCeURpcmVjdGlvbi5hc2MpIHsKLSAgICAgICAgICAgICBzb3J0ZWRf cm93cy5yZXZlcnNlKCk7Ci0gICAgICAgICB9Ci0tICAgICAgICAKLSsKLSAgICAgICAgIGZvciAo Y29uc3Qgc3JvdyBvZiBzb3J0ZWRfcm93cykgewotICAgICAgICAgICAgIHJvd3MucHVzaCh7Ci0g ICAgICAgICAgICAgICAgIGlzT3BlbjogZmFsc2UsCi1AQCAtODA2LDE0ICs3NzMsMTQgQEAgY2xh c3MgQ1JMVGFibGUgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAgICAgICAgICAg ICAgb25DaGFuZ2U9e3RoaXMuaGFuZGxlU2VhcmNoQ2hhbmdlfQotICAgICAgICAgICAgICAgICAg ICAgb25DbGVhcj17KGV2dCkgPT4gdGhpcy5oYW5kbGVTZWFyY2hDaGFuZ2UoZXZ0LCAnJyl9Ci0g ICAgICAgICAgICAgICAgIC8+Ci0tICAgICAgICAgICAgICAgIDxUYWJsZSAKLSsgICAgICAgICAg ICAgICAgPFRhYmxlCi0gICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPSJDUkwgVGFibGUi Ci0gICAgICAgICAgICAgICAgICAgICB2YXJpYW50PSJjb21wYWN0IgotICAgICAgICAgICAgICAg ICA+Ci0gICAgICAgICAgICAgICAgICAgICA8VGhlYWQ+Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgPFRyPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dGhpcy5zdGF0ZS5jb2x1bW5z Lm1hcCgoY29sdW1uLCBpZHgpID0+ICgKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDxUaCAKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUaAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aWR4fQotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNvcnQ9e2NvbHVtbi5zb3J0YWJsZSA/IHsKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ydEJ5OiB0aGlzLnN0YXRlLnNvcnRCeSwKLUBA IC04MzYsNyArODAzLDcgQEAgY2xhc3MgQ1JMVGFibGUgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQg ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpfQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHt0aGlzLnN0YXRlLmhhc1Jvd3MgJiYgKAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VGQgaXNBY3Rpb25DZWxsPgotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEFjdGlvbnNDb2x1bW4g Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QWN0aW9uc0Nv bHVtbgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0 ZW1zPXt0aGlzLmdldEFjdGlvbnNGb3JSb3cocm93KX0KLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDwvVGQ+Ci1kaWZmIC0tZ2l0IGEvc3JjL2NvY2twaXQvMzg5LWNvbnNvbGUvc3Jj L3NlY3VyaXR5LmpzeCBiL3NyYy9jb2NrcGl0LzM4OS1jb25zb2xlL3NyYy9zZWN1cml0eS5qc3gK LWluZGV4IGM0NTA0MDY2Yi4uM2FlYWQwNDQ5IDEwMDY0NAotLS0tIGEvc3JjL2NvY2twaXQvMzg5 LWNvbnNvbGUvc3JjL3NlY3VyaXR5LmpzeAotKysrIGIvc3JjL2NvY2twaXQvMzg5LWNvbnNvbGUv c3JjL3NlY3VyaXR5LmpzeAotQEAgLTYwLDYgKzYwLDggQEAgZXhwb3J0IGNsYXNzIFNlY3VyaXR5 IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAgICBwcmltYXJ5Q2VydE5hbWU6 ICcnLAotICAgICAgICAgICAgIHNlcnZlckNlcnROYW1lczogW10sCi0gICAgICAgICAgICAgc2Vy dmVyQ2VydHM6IFtdLAotKyAgICAgICAgICAgIENBQ2VydHM6IFtdLAotKyAgICAgICAgICAgIENB Q2VydE5hbWVzOiBbXSwKLSAgICAgICAgICAgICBpc01pblNTTE9wZW46IGZhbHNlLAotICAgICAg ICAgICAgIGlzTWF4U1NMT3BlbjogZmFsc2UsCi0gICAgICAgICAgICAgaXNDbGllbnRBdXRoT3Bl bjogZmFsc2UsCi1AQCAtMzMwLDkgKzMzMiwxNCBAQCBleHBvcnQgY2xhc3MgU2VjdXJpdHkgZXh0 ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAgICAgICAgICAuc3Bhd24oY21kLCB7IHN1 cGVydXNlcjogdHJ1ZSwgZXJyOiAibWVzc2FnZSIgfSkKLSAgICAgICAgICAgICAgICAgLmRvbmUo Y29udGVudCA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICBjb25zdCBjZXJ0cyA9IEpTT04ucGFy c2UoY29udGVudCk7Ci0rICAgICAgICAgICAgICAgICAgICBjb25zdCBjZXJ0TmFtZXMgPSBbXTsK LSsgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgY2VydCBvZiBjZXJ0cykgewotKyAgICAg ICAgICAgICAgICAgICAgICAgIGNlcnROYW1lcy5wdXNoKGNlcnQuYXR0cnMubmlja25hbWUpOwot KyAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0 ZSgoKSA9PiAoCi0gICAgICAgICAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBDQUNlcnRzOiBjZXJ0cywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg Q0FDZXJ0TmFtZXM6IGNlcnROYW1lcywKLSAgICAgICAgICAgICAgICAgICAgICAgICB9KSwgdGhp cy5sb2FkQ1NScwotICAgICAgICAgICAgICAgICAgICAgKTsKLSAgICAgICAgICAgICAgICAgfSkK LUBAIC0xMjI2LDYgKzEyMzMsOSBAQCBleHBvcnQgY2xhc3MgU2VjdXJpdHkgZXh0ZW5kcyBSZWFj dC5Db21wb25lbnQgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlcnZl cktleXM9e3RoaXMuc3RhdGUuc2VydmVyT3JwaGFuS2V5c30KLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhZGROb3RpZmljYXRpb249e3RoaXMucHJvcHMuYWRkTm90aWZpY2F0 aW9ufQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnREaXI9e3RoaXMu cHJvcHMuY2VydERpcn0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0 Tmlja25hbWVzPXt0aGlzLnN0YXRlLnNlcnZlckNlcnROYW1lc30KLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBDQUNlcnROaWNrbmFtZXM9e3RoaXMuc3RhdGUuQ0FDZXJ0TmFt ZXN9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsb2FkQ2VydHM9e3Ro aXMubG9hZENlcnRzfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4KLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPC9UYWI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDxUYWIgZXZlbnRLZXk9ezJ9IHRpdGxlPXs8VGFiVGl0bGVUZXh0PntfKCJDaXBoZXIgUHJl ZmVyZW5jZXMiKX08L1RhYlRpdGxlVGV4dD59PgotZGlmZiAtLWdpdCBhL3NyYy9saWIzODkvbGli Mzg5L2NsaV9jb25mL3NlY3VyaXR5LnB5IGIvc3JjL2xpYjM4OS9saWIzODkvY2xpX2NvbmYvc2Vj dXJpdHkucHkKLWluZGV4IDE4ZTQ0NGM0Yy4uYmMzYTZkZGFmIDEwMDY0NAotLS0tIGEvc3JjL2xp YjM4OS9saWIzODkvY2xpX2NvbmYvc2VjdXJpdHkucHkKLSsrKyBiL3NyYy9saWIzODkvbGliMzg5 L2NsaV9jb25mL3NlY3VyaXR5LnB5Ci1AQCAtODYsOSArODYsOSBAQCBkZWYgX3NlY3VyaXR5X2dl bmVyaWNfZ2V0KGluc3QsIGJhc2VkbiwgbG9nLCBhcmdzLCBhdHRyc19tYXApOgotICAgICAgICAg ICAgIHZhbCA9ICIiCi0gICAgICAgICByZXN1bHRbcHJvcHMuYXR0ci5sb3dlcigpXSA9IHZhbAot ICAgICBpZiBhcmdzLmpzb246Ci0tICAgICAgICBwcmludChqc29uLmR1bXBzKHsndHlwZSc6ICds aXN0JywgJ2l0ZW1zJzogcmVzdWx0fSwgaW5kZW50PTQpKQotKyAgICAgICAgbG9nLmluZm8oanNv bi5kdW1wcyh7J3R5cGUnOiAnbGlzdCcsICdpdGVtcyc6IHJlc3VsdH0sIGluZGVudD00KSkKLSAg ICAgZWxzZToKLS0gICAgICAgIHByaW50KCdcbicuam9pbihbZid7YXR0cn06IHt2YWx1ZSBvciAi In0nIGZvciBhdHRyLCB2YWx1ZSBpbiByZXN1bHQuaXRlbXMoKV0pKQotKyAgICAgICAgbG9nLmlu Zm8oJ1xuJy5qb2luKFtmJ3thdHRyfToge3ZhbHVlIG9yICIifScgZm9yIGF0dHIsIHZhbHVlIGlu IHJlc3VsdC5pdGVtcygpXSkpCi0gCi0gCi0gZGVmIF9zZWN1cml0eV9nZW5lcmljX3NldChpbnN0 LCBiYXNlZG4sIGxvZywgYXJncywgYXR0cnNfbWFwKToKLUBAIC0yMjgsMTAgKzIyOCwxMCBAQCBk ZWYgc2VjdXJpdHlfY2lwaGVyc19zZXQoaW5zdCwgYmFzZWRuLCBsb2csIGFyZ3MpOgotIGRlZiBz ZWN1cml0eV9jaXBoZXJzX2dldChpbnN0LCBiYXNlZG4sIGxvZywgYXJncyk6Ci0gICAgIGVuYyA9 IEVuY3J5cHRpb24oaW5zdCkKLSAgICAgaWYgYXJncy5qc29uOgotLSAgICAgICAgcHJpbnQoeyd0 eXBlJzogJ2xpc3QnLCAnaXRlbXMnOiBlbmMuY2lwaGVyc30pCi0rICAgICAgICBsb2cuaW5mbyh7 J3R5cGUnOiAnbGlzdCcsICdpdGVtcyc6IGVuYy5jaXBoZXJzfSkKLSAgICAgZWxzZToKLSAgICAg ICAgIHZhbCA9ICcsJy5qb2luKGVuYy5jaXBoZXJzKQotLSAgICAgICAgcHJpbnQodmFsIGlmIHZh bCAhPSAnJyBlbHNlICc8dW5kZWZpbmVkPicpCi0rICAgICAgICBsb2cuaW5mbyh2YWwgaWYgdmFs ICE9ICcnIGVsc2UgJzx1bmRlZmluZWQ+JykKLSAKLSAKLSBkZWYgc2VjdXJpdHlfY2lwaGVyc19s aXN0KGluc3QsIGJhc2VkbiwgbG9nLCBhcmdzKToKLUBAIC0yNDcsMTIgKzI0NywxMyBAQCBkZWYg c2VjdXJpdHlfY2lwaGVyc19saXN0KGluc3QsIGJhc2VkbiwgbG9nLCBhcmdzKToKLSAgICAgICAg IGxzdCA9IGVuYy5jaXBoZXJzCi0gCi0gICAgIGlmIGFyZ3MuanNvbjoKLS0gICAgICAgIHByaW50 KGpzb24uZHVtcHMoeyd0eXBlJzogJ2xpc3QnLCAnaXRlbXMnOiBsc3R9LCBpbmRlbnQ9NCkpCi0r ICAgICAgICBsb2cuaW5mbyhqc29uLmR1bXBzKHsndHlwZSc6ICdsaXN0JywgJ2l0ZW1zJzogbHN0 fSwgaW5kZW50PTQpKQotICAgICBlbHNlOgotICAgICAgICAgaWYgbHN0ID09IFtdOgotICAgICAg ICAgICAgIGxvZy5nZXRDaGlsZCgnc2VjdXJpdHknKS53YXJuKCdMaXN0IG9mIGNpcGhlcnMgaXMg ZW1wdHknKQotICAgICAgICAgZWxzZToKLS0gICAgICAgICAgICBwcmludCgqbHN0LCBzZXA9J1xu JykKLSsgICAgICAgICAgICBmb3IgaXRlbSBpbiBsc3Q6Ci0rICAgICAgICAgICAgICAgIGxvZy5p bmZvKGl0ZW0pCi0gCi0gCi0gZGVmIHNlY3VyaXR5X2Rpc2FibGVfcGxhaW50ZXh0X3BvcnQoaW5z dCwgYmFzZWRuLCBsb2csIGFyZ3MsIHdhcm49VHJ1ZSk6Ci1AQCAtMzEyLDcgKzMxMywxMCBAQCBk ZWYgY2VydF9saXN0KGluc3QsIGJhc2VkbiwgbG9nLCBhcmdzKToKLSAgICAgY2VydG1nciA9IENl cnRNYW5hZ2VyKGluc3RhbmNlPWluc3QpCi0gICAgIGNlcnRzID0gY2VydG1nci5saXN0X2NlcnRz KCkKLSAgICAgaWYgbm90IGNlcnRzOgotLSAgICAgICAgbG9nLmluZm8oIk5vIGNlcnRpZmljYXRl cyBmb3VuZC4iKQotKyAgICAgICAgaWYgYXJncy5qc29uOgotKyAgICAgICAgICAgIGxvZy5pbmZv KGpzb24uZHVtcHMoW10sIGluZGVudD00KSkKLSsgICAgICAgIGVsc2U6Ci0rICAgICAgICAgICAg bG9nLmluZm8oIk5vIGNlcnRpZmljYXRlcyBmb3VuZC4iKQotICAgICAgICAgcmV0dXJuCi0gCi0g ICAgIGlmIGFyZ3MuanNvbjoKLUBAIC0zMjgsNyArMzMyLDEwIEBAIGRlZiBjYWNlcnRfbGlzdChp bnN0LCBiYXNlZG4sIGxvZywgYXJncyk6Ci0gICAgIGNlcnRtZ3IgPSBDZXJ0TWFuYWdlcihpbnN0 YW5jZT1pbnN0KQotICAgICBjYV9jZXJ0cyA9IGNlcnRtZ3IubGlzdF9jYV9jZXJ0cygpCi0gICAg IGlmIG5vdCBjYV9jZXJ0czoKLS0gICAgICAgIGxvZy5pbmZvKCJObyBDQSBjZXJ0aWZpY2F0ZXMg Zm91bmQuIikKLSsgICAgICAgIGlmIGFyZ3MuanNvbjoKLSsgICAgICAgICAgICBsb2cuaW5mbyhq c29uLmR1bXBzKFtdLCBpbmRlbnQ9NCkpCi0rICAgICAgICBlbHNlOgotKyAgICAgICAgICAgIGxv Zy5pbmZvKCJObyBDQSBjZXJ0aWZpY2F0ZXMgZm91bmQuIikKLSAgICAgICAgIHJldHVybgotIAot ICAgICBpZiBhcmdzLmpzb246Ci0tLSAKLTIuNTMuMAotCgpkaWZmIC0tZ2l0IGEvMDA1My1Jc3N1 ZS02NzU4LUZpeC1FbmFibGUtUmVwbGljYXRpb24tZHJvcGRvd24tbm90LW9wZW5pLnBhdGNoIGIv MDA1My1Jc3N1ZS02NzU4LUZpeC1FbmFibGUtUmVwbGljYXRpb24tZHJvcGRvd24tbm90LW9wZW5p LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMjcyN2ViLi4wMDAwMDAwCi0t LSBhLzAwNTMtSXNzdWUtNjc1OC1GaXgtRW5hYmxlLVJlcGxpY2F0aW9uLWRyb3Bkb3duLW5vdC1v cGVuaS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLUZyb20gYjIxNmI4NmM1 NjA3ZGMwNDIxZWI2MDljNDZmMzAwNDg0NGZiMzdjMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK LUZyb206IEFrc2hheSBBZGhpa2FyaSA8YWFkaGlrYXJAcmVkaGF0LmNvbT4KLURhdGU6IFR1ZSwg MTcgRmViIDIwMjYgMTc6NDA6NDQgKzA1MzAKLVN1YmplY3Q6IFtQQVRDSF0gSXNzdWUgNjc1OCAt IEZpeCBFbmFibGUgUmVwbGljYXRpb24gZHJvcGRvd24gbm90IG9wZW5pbmcKLSAoIzcyNjIpCi0K LURlc2NyaXB0aW9uOiBSZW1vdmVkIGhhcmRjb2RlZCBpc09wZW49e2ZhbHNlfSBhbmQgZW1wdHkg b25Ub2dnbGUgaGFuZGxlciB0aGF0Ci1wcmV2ZW50ZWQgZHJvcGRvd24gZnJvbSBvcGVuaW5nLiBM ZXQgY29tcG9uZW50IG1hbmFnZSBpdHMgb3duIHN0YXRlLgotCi1SZWxhdGVzOiAjNjc1OAotCi1S ZXZpZXdlZCBieTogQHZhc2hpcm92Ci0tLS0KLSBzcmMvY29ja3BpdC8zODktY29uc29sZS9zcmMv bGliL3JlcGxpY2F0aW9uL3JlcGxNb2RhbHMuanN4IHwgMiAtLQotIDEgZmlsZSBjaGFuZ2VkLCAy IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2NvY2twaXQvMzg5LWNvbnNvbGUvc3Jj L2xpYi9yZXBsaWNhdGlvbi9yZXBsTW9kYWxzLmpzeCBiL3NyYy9jb2NrcGl0LzM4OS1jb25zb2xl L3NyYy9saWIvcmVwbGljYXRpb24vcmVwbE1vZGFscy5qc3gKLWluZGV4IGJhNDg1OTYxNy4uODNh OGI3NWE1IDEwMDY0NAotLS0tIGEvc3JjL2NvY2twaXQvMzg5LWNvbnNvbGUvc3JjL2xpYi9yZXBs aWNhdGlvbi9yZXBsTW9kYWxzLmpzeAotKysrIGIvc3JjL2NvY2twaXQvMzg5LWNvbnNvbGUvc3Jj L2xpYi9yZXBsaWNhdGlvbi9yZXBsTW9kYWxzLmpzeAotQEAgLTE3NTcsOCArMTc1Nyw2IEBAIGV4 cG9ydCBjbGFzcyBFbmFibGVSZXBsTW9kYWwgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUNoYW5nZShzeW50aGV0aWNF dmVudCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucz17W18oIlN1cHBsaWVyIiksIF8oIkh1YiIpLCBf KCJDb25zdW1lciIpXX0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzT3Blbj17 ZmFsc2V9Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblRvZ2dsZT17KCkgPT4g e319Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17XygiU2Vs ZWN0IHJvbGUuLi4iKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWFMYWJl bD0iUmVwbGljYXRpb24gcm9sZSBzZWxlY3Rpb24iCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpc011bHRpPXtmYWxzZX0KLS0tIAotMi41My4wCi0KCmRpZmYgLS1naXQgYS8wMDU0 LUlzc3VlLTcyMjMtUmVtb3ZlLWludGVnZXJPcmRlcmluZ01hdGNoLXJlcXVpcmVtZW50LWYucGF0 Y2ggYi8wMDU0LUlzc3VlLTcyMjMtUmVtb3ZlLWludGVnZXJPcmRlcmluZ01hdGNoLXJlcXVpcmVt ZW50LWYucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU0YjRkYjIuLjAwMDAw MDAKLS0tIGEvMDA1NC1Jc3N1ZS03MjIzLVJlbW92ZS1pbnRlZ2VyT3JkZXJpbmdNYXRjaC1yZXF1 aXJlbWVudC1mLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTM4ICswLDAgQEAKLUZyb20gNmNl MTlhOWEzZTM2MjEzYTU2MDQxNDRhYTVlYjNjYmE2NjZlNWVkNCBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKLUZyb206IFZpa3RvciBBc2hpcm92IDx2YXNoaXJvdkByZWRoYXQuY29tPgotRGF0ZTog V2VkLCAxOCBGZWIgMjAyNiAwOToyNjo1NyArMDEwMAotU3ViamVjdDogW1BBVENIXSBJc3N1ZSA3 MjIzIC0gUmVtb3ZlIGludGVnZXJPcmRlcmluZ01hdGNoIHJlcXVpcmVtZW50IGZvcgotIHBhcmVu dGlkICgjNzI2NCkKLQotRGVzY3JpcHRpb246Ci1pbnRlZ2VyT3JkZXJpbmdNYXRjaCB3YXMgaW50 cm9kdWNlZCBhcyBhIHJlcXVpcmVtZW50IGZvciBwYXJlbnRpZCBhbmQKLWFuY2VzdG9yaWQgaW5k ZXhlcyBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucy4gQnV0IGFmdGVyICM3MDk2IHRoZSBvcmRlcgot Zm9yIHBhcmVudGlkIGRvZXNuJ3QgbWFrZSBhIGxvdCBvZiBkaWZmZXJlbmNlLgotCi1GaXggRGVz Y3JpcHRpb246Ci0qIFJlbW92ZSBpbnRlZ2VyT3JkZXJpbmdNYXRjaCByZXF1aXJlbWVudCBmb3Ig cGFyZW50aWQuCi0qIFJlYWQgb25seSBmaXJzdCAxMDAga2V5cyBmcm9tIGRic2NhbiBpbiBpbmRl eCBvcmRlcmluZyBjaGVjawotKiBEbyBub3QgcnVuIGRzY3RsIGluZGV4LWNoZWNrIGR1cmluZyBS UE0gdXBncmFkZQotCi1SZWxhdGVzOiBodHRwczovL2dpdGh1Yi5jb20vMzg5ZHMvMzg5LWRzLWJh c2UvcHVsbC83MjIzCi0KLVJldmlld2VkIGJ5OiBAcHJvZ2llcjM4OSwgQHRib3JkYXogKFRoYW5r cyEpCi0tLS0KLSAuLi4vaGVhbHRoY2hlY2svaGVhbHRoX3N5c3RlbV9pbmRleGVzX3Rlc3QucHkg fCAgODMgKysrKy0tLS0tLS0tLS0KLSBsZGFwL3NlcnZlcnMvc2xhcGQvdXBncmFkZS5jICAgICAg ICAgICAgICAgICAgfCAxMDUgLS0tLS0tLS0tLS0tLS0tLS0tCi0gcnBtLzM4OS1kcy1iYXNlLnNw ZWMuaW4gICAgICAgICAgICAgICAgICAgICAgIHwgICAzIC0KLSBzcmMvbGliMzg5L2xpYjM4OS9i YWNrZW5kLnB5ICAgICAgICAgICAgICAgICAgfCAgIDUgKy0KLSBzcmMvbGliMzg5L2xpYjM4OS9j bGlfY3RsL2RidGFza3MucHkgICAgICAgICAgfCAgOTkgKysrKysrKystLS0tLS0tLS0KLSA1IGZp bGVzIGNoYW5nZWQsIDczIGluc2VydGlvbnMoKyksIDIyMiBkZWxldGlvbnMoLSkKLQotZGlmZiAt LWdpdCBhL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9oZWFsdGhjaGVjay9oZWFsdGhfc3lzdGVt X2luZGV4ZXNfdGVzdC5weSBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9oZWFsdGhjaGVjay9o ZWFsdGhfc3lzdGVtX2luZGV4ZXNfdGVzdC5weQotaW5kZXggZGQ0MmNkMTk3Li44ZGM4MmM3Nzkg MTAwNjQ0Ci0tLS0gYS9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvaGVhbHRoY2hlY2svaGVhbHRo X3N5c3RlbV9pbmRleGVzX3Rlc3QucHkKLSsrKyBiL2RpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy9o ZWFsdGhjaGVjay9oZWFsdGhfc3lzdGVtX2luZGV4ZXNfdGVzdC5weQotQEAgLTE3OSw3ICsxNzks OCBAQCBkZWYgdGVzdF9taXNzaW5nX3BhcmVudGlkKHRvcG9sb2d5X3N0LCBsb2dfYnVmZmVyaW5n X2VuYWJsZWQpOgotIAotIAotIGRlZiB0ZXN0X21pc3NpbmdfbWF0Y2hpbmdfcnVsZSh0b3BvbG9n eV9zdCwgbG9nX2J1ZmZlcmluZ19lbmFibGVkKToKLS0gICAgIiIiQ2hlY2sgaWYgaGVhbHRoY2hl Y2sgcmV0dXJucyBEU0JMRTAwMDcgY29kZSB3aGVuIHBhcmVudElkIGluZGV4IGlzIG1pc3Npbmcg aW50ZWdlck9yZGVyaW5nTWF0Y2gKLSsgICAgIiIiQ2hlY2sgdGhhdCBoZWFsdGhjaGVjayBkb2Vz IE5PVCByZXBvcnQgRFNCTEUwMDA3IHdoZW4gcGFyZW50SWQgaW5kZXggaXMgbWlzc2luZyBpbnRl Z2VyT3JkZXJpbmdNYXRjaC4KLSsgICAgQm90aCBsZXhpY29ncmFwaGljIGFuZCBpbnRlZ2VyIG9y ZGVyaW5ncyBhcmUgdmFsaWQgZm9yIHBhcmVudGlkLgotIAotICAgICA6aWQ6IDdmZmE3MWRiLTg5 OTUtNDMwYS1iZWQ4LTU5YmNlOTQ0MjIxYwotICAgICA6c2V0dXA6IFN0YW5kYWxvbmUgaW5zdGFu Y2UKLUBAIC0xODksMTkgKzE5MCwxNCBAQCBkZWYgdGVzdF9taXNzaW5nX21hdGNoaW5nX3J1bGUo dG9wb2xvZ3lfc3QsIGxvZ19idWZmZXJpbmdfZW5hYmxlZCk6Ci0gICAgICAgICAzLiBVc2UgaGVh bHRoY2hlY2sgd2l0aG91dCAtLWpzb24gb3B0aW9uCi0gICAgICAgICA0LiBVc2UgaGVhbHRoY2hl Y2sgd2l0aCAtLWpzb24gb3B0aW9uCi0gICAgICAgICA1LiBSZS1hZGQgdGhlIG1hdGNoaW5nIHJ1 bGUKLS0gICAgICAgIDYuIFVzZSBoZWFsdGhjaGVjayB3aXRob3V0IC0tanNvbiBvcHRpb24KLS0g ICAgICAgIDcuIFVzZSBoZWFsdGhjaGVjayB3aXRoIC0tanNvbiBvcHRpb24KLSAgICAgOmV4cGVj dGVkcmVzdWx0czoKLSAgICAgICAgIDEuIFN1Y2Nlc3MKLSAgICAgICAgIDIuIFN1Y2Nlc3MKLS0g ICAgICAgIDMuIGhlYWx0aGNoZWNrIHJlcG9ydHMgRFNCTEUwMDA3IGNvZGUgYW5kIHJlbGF0ZWQg ZGV0YWlscwotLSAgICAgICAgNC4gaGVhbHRoY2hlY2sgcmVwb3J0cyBEU0JMRTAwMDcgY29kZSBh bmQgcmVsYXRlZCBkZXRhaWxzCi0rICAgICAgICAzLiBoZWFsdGhjaGVjayByZXBvcnRzIG5vIGlz c3VlcyBmb3VuZAotKyAgICAgICAgNC4gaGVhbHRoY2hlY2sgcmVwb3J0cyBubyBpc3N1ZXMgZm91 bmQKLSAgICAgICAgIDUuIFN1Y2Nlc3MKLS0gICAgICAgIDYuIGhlYWx0aGNoZWNrIHJlcG9ydHMg bm8gaXNzdWVzIGZvdW5kCi0tICAgICAgICA3LiBoZWFsdGhjaGVjayByZXBvcnRzIG5vIGlzc3Vl cyBmb3VuZAotICAgICAiIiIKLSAKLS0gICAgUkVUX0NPREUgPSAiRFNCTEUwMDA3IgotICAgICBQ QVJFTlRJRF9ETiA9ICJjbj1wYXJlbnRpZCxjbj1pbmRleCxjbj11c2Vycm9vdCxjbj1sZGJtIGRh dGFiYXNlLGNuPXBsdWdpbnMsY249Y29uZmlnIgotIAotICAgICBzdGFuZGFsb25lID0gdG9wb2xv Z3lfc3Quc3RhbmRhbG9uZQotQEAgLTIxMCwxNyArMjA2LDE0IEBAIGRlZiB0ZXN0X21pc3Npbmdf bWF0Y2hpbmdfcnVsZSh0b3BvbG9neV9zdCwgbG9nX2J1ZmZlcmluZ19lbmFibGVkKToKLSAgICAg cGFyZW50aWRfaW5kZXggPSBJbmRleChzdGFuZGFsb25lLCBQQVJFTlRJRF9ETikKLSAgICAgcGFy ZW50aWRfaW5kZXgucmVtb3ZlKCJuc01hdGNoaW5nUnVsZSIsICJpbnRlZ2VyT3JkZXJpbmdNYXRj aCIpCi0gCi0tICAgIHJ1bl9oZWFsdGhjaGVja19hbmRfZmx1c2hfbG9nKHRvcG9sb2d5X3N0LCBz dGFuZGFsb25lLCBqc29uPUZhbHNlLCBzZWFyY2hlZF9jb2RlPVJFVF9DT0RFKQotLSAgICBydW5f aGVhbHRoY2hlY2tfYW5kX2ZsdXNoX2xvZyh0b3BvbG9neV9zdCwgc3RhbmRhbG9uZSwganNvbj1U cnVlLCBzZWFyY2hlZF9jb2RlPVJFVF9DT0RFKQotKyAgICBydW5faGVhbHRoY2hlY2tfYW5kX2Zs dXNoX2xvZyh0b3BvbG9neV9zdCwgc3RhbmRhbG9uZSwganNvbj1GYWxzZSwgc2VhcmNoZWRfY29k ZT1DTURfT1VUUFVUKQotKyAgICBydW5faGVhbHRoY2hlY2tfYW5kX2ZsdXNoX2xvZyh0b3BvbG9n eV9zdCwgc3RhbmRhbG9uZSwganNvbj1UcnVlLCBzZWFyY2hlZF9jb2RlPUpTT05fT1VUUFVUKQot IAotICAgICBsb2cuaW5mbygiUmUtYWRkIHRoZSBpbnRlZ2VyT3JkZXJpbmdNYXRjaCBtYXRjaGlu ZyBydWxlIikKLSAgICAgcGFyZW50aWRfaW5kZXggPSBJbmRleChzdGFuZGFsb25lLCBQQVJFTlRJ RF9ETikKLSAgICAgcGFyZW50aWRfaW5kZXguYWRkKCJuc01hdGNoaW5nUnVsZSIsICJpbnRlZ2Vy T3JkZXJpbmdNYXRjaCIpCi0gICAgIHN0YW5kYWxvbmUucmVzdGFydCgpCi0gCi0tICAgIHJ1bl9o ZWFsdGhjaGVja19hbmRfZmx1c2hfbG9nKHRvcG9sb2d5X3N0LCBzdGFuZGFsb25lLCBqc29uPUZh bHNlLCBzZWFyY2hlZF9jb2RlPUNNRF9PVVRQVVQpCi0tICAgIHJ1bl9oZWFsdGhjaGVja19hbmRf Zmx1c2hfbG9nKHRvcG9sb2d5X3N0LCBzdGFuZGFsb25lLCBqc29uPVRydWUsIHNlYXJjaGVkX2Nv ZGU9SlNPTl9PVVRQVVQpCi0tCi0gCi0gZGVmIHRlc3RfdXNuX3BsdWdpbl9taXNzaW5nX2VudHJ5 dXNuKHRvcG9sb2d5X3N0LCB1c25fcGx1Z2luX2VuYWJsZWQsIGxvZ19idWZmZXJpbmdfZW5hYmxl ZCk6Ci0gICAgICIiIkNoZWNrIGlmIGhlYWx0aGNoZWNrIHJldHVybnMgRFNCTEUwMDA3IGNvZGUg d2hlbiBVU04gcGx1Z2luIGlzIGVuYWJsZWQgYnV0IGVudHJ5dXNuIGluZGV4IGlzIG1pc3NpbmcK LUBAIC05MTAsNyArOTAzLDkgQEAgZGVmIHRlc3RfaW5kZXhfY2hlY2tfZml4ZXNfYW5jZXN0b3Jp ZF9jb25maWcodG9wb2xvZ3lfc3QpOgotIAotIAotIGRlZiB0ZXN0X2luZGV4X2NoZWNrX2ZpeGVz X21pc3NpbmdfbWF0Y2hpbmdfcnVsZSh0b3BvbG9neV9zdCk6Ci0tICAgICIiIkNoZWNrIGlmIGRz Y3RsIGluZGV4LWNoZWNrIC0tZml4IGFkZHMgbWlzc2luZyBpbnRlZ2VyT3JkZXJpbmdNYXRjaAot KyAgICAiIiJDaGVjayB0aGF0IHJlbW92aW5nIGludGVnZXJPcmRlcmluZ01hdGNoIGZyb20gcGFy ZW50aWQgY29uZmlnIGlzIG5vdAotKyAgICBmbGFnZ2VkIGFzIGFuIGlzc3VlIHdoZW4gZGlzayBv cmRlcmluZyBjYW5ub3QgYmUgZGV0ZXJtaW5lZC4KLSsgICAgQm90aCBsZXhpY29ncmFwaGljIGFu ZCBpbnRlZ2VyIG9yZGVyaW5ncyBhcmUgdmFsaWQgZm9yIHBhcmVudGlkLgotIAotICAgICA6aWQ6 IDZjMWQ0ZTlmLTBhM2ItNGQ1Yy0xZTdmLThhOWIwYzJkM2U0ZgotICAgICA6c2V0dXA6IFN0YW5k YWxvbmUgaW5zdGFuY2UKLUBAIC05MTgsMTggKzkxMywxNCBAQCBkZWYgdGVzdF9pbmRleF9jaGVj a19maXhlc19taXNzaW5nX21hdGNoaW5nX3J1bGUodG9wb2xvZ3lfc3QpOgotICAgICAgICAgMS4g Q3JlYXRlIERTIGluc3RhbmNlCi0gICAgICAgICAyLiBTdG9wIHRoZSBzZXJ2ZXIKLSAgICAgICAg IDMuIFJlbW92ZSBpbnRlZ2VyT3JkZXJpbmdNYXRjaCBmcm9tIHBhcmVudGlkIGluZGV4IHVzaW5n IERTRWxkaWYKLS0gICAgICAgIDQuIFJ1biBkc2N0bCBpbmRleC1jaGVjayAoc2hvdWxkIGRldGVj dCBpc3N1ZSkKLS0gICAgICAgIDUuIFJ1biBkc2N0bCBpbmRleC1jaGVjayAtLWZpeAotLSAgICAg ICAgNi4gVmVyaWZ5IGludGVnZXJPcmRlcmluZ01hdGNoIHdhcyBhZGRlZCBiYWNrCi0tICAgICAg ICA3LiBTdGFydCB0aGUgc2VydmVyCi0rICAgICAgICA0LiBSdW4gZHNjdGwgaW5kZXgtY2hlY2sg KHNob3VsZCBOT1QgZGV0ZWN0IGlzc3VlIHNpbmNlIGRpc2sgb3JkZXJpbmcgaXMgdW5rbm93bikK LSsgICAgICAgIDUuIFN0YXJ0IHRoZSBzZXJ2ZXIKLSAgICAgOmV4cGVjdGVkcmVzdWx0czoKLSAg ICAgICAgIDEuIFN1Y2Nlc3MKLSAgICAgICAgIDIuIFN1Y2Nlc3MKLSAgICAgICAgIDMuIFN1Y2Nl c3MKLS0gICAgICAgIDQuIGluZGV4LWNoZWNrIHJldHVybnMgRmFsc2UgYW5kIGRldGVjdHMgbWlz c2luZyBtYXRjaGluZyBydWxlCi0tICAgICAgICA1LiBpbmRleC1jaGVjayByZXR1cm5zIFRydWUg YWZ0ZXIgZml4Ci0tICAgICAgICA2LiBpbnRlZ2VyT3JkZXJpbmdNYXRjaCBpcyBwcmVzZW50Ci0t ICAgICAgICA3LiBTdWNjZXNzCi0rICAgICAgICA0LiBpbmRleC1jaGVjayByZXR1cm5zIFRydWUg KG5vIGlzc3VlcywgZGlzayBvcmRlcmluZyB1bmtub3duKQotKyAgICAgICAgNS4gU3VjY2Vzcwot ICAgICAiIiIKLSAgICAgZnJvbSBsaWIzODkuY2xpX2N0bC5kYnRhc2tzIGltcG9ydCBkYnRhc2tz X2luZGV4X2NoZWNrCi0gICAgIGZyb20gbGliMzg5LmRzZWxkaWYgaW1wb3J0IERTRWxkaWYKLUBA IC05NjMsMzQgKzk1NCwyMCBAQCBkZWYgdGVzdF9pbmRleF9jaGVja19maXhlc19taXNzaW5nX21h dGNoaW5nX3J1bGUodG9wb2xvZ3lfc3QpOgotICAgICAgICAgICAgICAgICBmImludGVnZXJPcmRl cmluZ01hdGNoIHNob3VsZCBiZSByZW1vdmVkLCBidXQgZm91bmQ6IHttcn0iCi0gICAgIGxvZy5p bmZvKCJpbnRlZ2VyT3JkZXJpbmdNYXRjaCByZW1vdmVkIGZyb20gcGFyZW50aWQgaW5kZXgiKQot IAotLSAgICBsb2cuaW5mbygiUnVuIGluZGV4LWNoZWNrIHdpdGhvdXQgLS1maXggKHNob3VsZCBk ZXRlY3QgaXNzdWUpIikKLSsgICAgbG9nLmluZm8oIlJ1biBpbmRleC1jaGVjayAoc2hvdWxkIE5P VCBkZXRlY3QgaXNzdWUgLSBkaXNrIG9yZGVyaW5nIHVua25vd24pIikKLSAgICAgYXJncyA9IEZh a2VBcmdzKCkKLSAgICAgYXJncy5iYWNrZW5kID0gInVzZXJSb290IgotICAgICBhcmdzLmZpeCA9 IEZhbHNlCi0gCi0gICAgIHJlc3VsdCA9IGRidGFza3NfaW5kZXhfY2hlY2soc3RhbmRhbG9uZSwg dG9wb2xvZ3lfc3QubG9nY2FwLmxvZywgYXJncykKLS0gICAgYXNzZXJ0IHJlc3VsdCBpcyBGYWxz ZSwgImluZGV4LWNoZWNrIHNob3VsZCBkZXRlY3QgbWlzc2luZyBtYXRjaGluZyBydWxlIgotLSAg ICBhc3NlcnQgdG9wb2xvZ3lfc3QubG9nY2FwLmNvbnRhaW5zKCJtaXNzaW5nIGludGVnZXJPcmRl cmluZ01hdGNoIikKLSsgICAgYXNzZXJ0IHJlc3VsdCBpcyBUcnVlLCBcCi0rICAgICAgICAiaW5k ZXgtY2hlY2sgc2hvdWxkIG5vdCBmbGFnIG1pc3NpbmcgaW50ZWdlck9yZGVyaW5nTWF0Y2ggd2hl biBkaXNrIG9yZGVyaW5nIGlzIHVua25vd24iCi0rICAgIGFzc2VydCB0b3BvbG9neV9zdC5sb2dj YXAuY29udGFpbnMoImNvdWxkIG5vdCBkZXRlcm1pbmUgZGlzayBvcmRlcmluZyIpCi0gICAgIHRv cG9sb2d5X3N0LmxvZ2NhcC5mbHVzaCgpCi0gCi0tICAgIGxvZy5pbmZvKCJSdW4gaW5kZXgtY2hl Y2sgd2l0aCAtLWZpeCIpCi0tICAgIGFyZ3MuZml4ID0gVHJ1ZQotLSAgICByZXN1bHQgPSBkYnRh c2tzX2luZGV4X2NoZWNrKHN0YW5kYWxvbmUsIHRvcG9sb2d5X3N0LmxvZ2NhcC5sb2csIGFyZ3Mp Ci0tICAgIGFzc2VydCByZXN1bHQgaXMgVHJ1ZSwgImluZGV4LWNoZWNrIC0tZml4IHNob3VsZCBz dWNjZWVkIgotLSAgICBhc3NlcnQgdG9wb2xvZ3lfc3QubG9nY2FwLmNvbnRhaW5zKCJpbnRlZ2Vy T3JkZXJpbmdNYXRjaCIpCi0tICAgIHRvcG9sb2d5X3N0LmxvZ2NhcC5mbHVzaCgpCi0tCi0tICAg IGxvZy5pbmZvKCJWZXJpZnkgaW50ZWdlck9yZGVyaW5nTWF0Y2ggd2FzIGFkZGVkIGJhY2siKQot LSAgICBkc2VfbGRpZiA9IERTRWxkaWYoc3RhbmRhbG9uZSkgICMgUmVsb2FkIHRvIGdldCBmcmVz aCBkYXRhCi0tICAgIG1hdGNoaW5nX3J1bGVzID0gZHNlX2xkaWYuZ2V0KHBhcmVudGlkX2RuLCAi bnNNYXRjaGluZ1J1bGUiKQotLSAgICBhc3NlcnQgbWF0Y2hpbmdfcnVsZXMgaXMgbm90IE5vbmUs ICJuc01hdGNoaW5nUnVsZSBzaG91bGQgYmUgcHJlc2VudCIKLS0gICAgZm91bmRfaW50X29yZGVy ID0gRmFsc2UKLS0gICAgZm9yIG1yIGluIG1hdGNoaW5nX3J1bGVzOgotLSAgICAgICAgaWYgImlu dGVnZXJvcmRlcmluZ21hdGNoIiBpbiBtci5sb3dlcigpOgotLSAgICAgICAgICAgIGZvdW5kX2lu dF9vcmRlciA9IFRydWUKLS0gICAgICAgICAgICBicmVhawotLSAgICBhc3NlcnQgZm91bmRfaW50 X29yZGVyLCBmImludGVnZXJPcmRlcmluZ01hdGNoIHNob3VsZCBiZSBwcmVzZW50LCBnb3Q6IHtt YXRjaGluZ19ydWxlc30iCi0tICAgIGxvZy5pbmZvKCJpbnRlZ2VyT3JkZXJpbmdNYXRjaCBzdWNj ZXNzZnVsbHkgYWRkZWQgYmFjayIpCi0rICAgIGxvZy5pbmZvKCJSZXN0b3JlIGludGVnZXJPcmRl cmluZ01hdGNoIGFuZCBzdGFydCB0aGUgc2VydmVyIikKLSsgICAgZHNlX2xkaWYgPSBEU0VsZGlm KHN0YW5kYWxvbmUpCi0rICAgIGRzZV9sZGlmLmFkZChwYXJlbnRpZF9kbiwgIm5zTWF0Y2hpbmdS dWxlIiwgImludGVnZXJPcmRlcmluZ01hdGNoIikKLSAKLSAgICAgbG9nLmluZm8oIlN0YXJ0IHRo ZSBzZXJ2ZXIiKQotICAgICBzdGFuZGFsb25lLnN0YXJ0KCkKLUBAIC0xMDgwLDcgKzEwNTcsNyBA QCBkZWYgdGVzdF9pbmRleF9jaGVja19maXhlc19tdWx0aXBsZV9pc3N1ZXModG9wb2xvZ3lfc3Qp OgotICAgICA6c3RlcHM6Ci0gICAgICAgICAxLiBDcmVhdGUgRFMgaW5zdGFuY2UKLSAgICAgICAg IDIuIFN0b3AgdGhlIHNlcnZlcgotLSAgICAgICAgMy4gQWRkIG11bHRpcGxlIGlzc3Vlczogc2Nh bmxpbWl0LCBhbmNlc3RvcmlkIGNvbmZpZywgbWlzc2luZyBtYXRjaGluZyBydWxlCi0rICAgICAg ICAzLiBBZGQgbXVsdGlwbGUgaXNzdWVzOiBzY2FubGltaXQgYW5kIGFuY2VzdG9yaWQgY29uZmln Ci0gICAgICAgICA0LiBSdW4gZHNjdGwgaW5kZXgtY2hlY2sgKHNob3VsZCBkZXRlY3QgYWxsIGlz c3VlcykKLSAgICAgICAgIDUuIFJ1biBkc2N0bCBpbmRleC1jaGVjayAtLWZpeAotICAgICAgICAg Ni4gVmVyaWZ5IGFsbCBpc3N1ZXMgd2VyZSBmaXhlZAotQEAgLTExMjIsMTQgKzEwOTksNiBAQCBk ZWYgdGVzdF9pbmRleF9jaGVja19maXhlc19tdWx0aXBsZV9pc3N1ZXModG9wb2xvZ3lfc3QpOgot ICAgICBdCi0gICAgIGRzZV9sZGlmLmFkZF9lbnRyeShhbmNlc3RvcmlkX2VudHJ5KQotIAotLSAg ICBsb2cuaW5mbygiQWRkIGlzc3VlIDM6IFJlbW92ZSBpbnRlZ2VyT3JkZXJpbmdNYXRjaCBmcm9t IHBhcmVudGlkIikKLS0gICAgZHNlX2xkaWYgPSBEU0VsZGlmKHN0YW5kYWxvbmUpICAjIFJlbG9h ZAotLSAgICBtYXRjaGluZ19ydWxlcyA9IGRzZV9sZGlmLmdldChwYXJlbnRpZF9kbiwgIm5zTWF0 Y2hpbmdSdWxlIikKLS0gICAgaWYgbWF0Y2hpbmdfcnVsZXM6Ci0tICAgICAgICBmb3IgbXIgaW4g bWF0Y2hpbmdfcnVsZXM6Ci0tICAgICAgICAgICAgaWYgImludGVnZXJvcmRlcmluZ21hdGNoIiBp biBtci5sb3dlcigpOgotLSAgICAgICAgICAgICAgICBkc2VfbGRpZi5kZWxldGUocGFyZW50aWRf ZG4sICJuc01hdGNoaW5nUnVsZSIsIG1yKQotLQotICAgICBsb2cuaW5mbygiUnVuIGluZGV4LWNo ZWNrIHdpdGhvdXQgLS1maXggKHNob3VsZCBkZXRlY3QgYWxsIGlzc3VlcykiKQotICAgICBhcmdz ID0gRmFrZUFyZ3MoKQotICAgICBhcmdzLmJhY2tlbmQgPSAidXNlclJvb3QiCi1AQCAtMTE2MCwx NiArMTEyOSw2IEBAIGRlZiB0ZXN0X2luZGV4X2NoZWNrX2ZpeGVzX211bHRpcGxlX2lzc3Vlcyh0 b3BvbG9neV9zdCk6Ci0gICAgIGNuX3ZhbHVlID0gZHNlX2xkaWYuZ2V0KGFuY2VzdG9yaWRfZG4s ICJjbiIsIHNpbmdsZT1UcnVlKQotICAgICBhc3NlcnQgY25fdmFsdWUgaXMgTm9uZSwgZiJhbmNl c3RvcmlkIGNvbmZpZyBzaG91bGQgYmUgcmVtb3ZlZCwgZ290OiB7Y25fdmFsdWV9IgotIAotLSAg ICAjIENoZWNrIG1hdGNoaW5nIHJ1bGUgYWRkZWQgYmFjawotLSAgICBtYXRjaGluZ19ydWxlcyA9 IGRzZV9sZGlmLmdldChwYXJlbnRpZF9kbiwgIm5zTWF0Y2hpbmdSdWxlIikKLS0gICAgZm91bmRf aW50X29yZGVyID0gRmFsc2UKLS0gICAgaWYgbWF0Y2hpbmdfcnVsZXM6Ci0tICAgICAgICBmb3Ig bXIgaW4gbWF0Y2hpbmdfcnVsZXM6Ci0tICAgICAgICAgICAgaWYgImludGVnZXJvcmRlcmluZ21h dGNoIiBpbiBtci5sb3dlcigpOgotLSAgICAgICAgICAgICAgICBmb3VuZF9pbnRfb3JkZXIgPSBU cnVlCi0tICAgICAgICAgICAgICAgIGJyZWFrCi0tICAgIGFzc2VydCBmb3VuZF9pbnRfb3JkZXIs IGYiaW50ZWdlck9yZGVyaW5nTWF0Y2ggc2hvdWxkIGJlIHByZXNlbnQsIGdvdDoge21hdGNoaW5n X3J1bGVzfSIKLS0KLSAgICAgbG9nLmluZm8oIkFsbCBpc3N1ZXMgdmVyaWZpZWQgYXMgZml4ZWQi KQotIAotICAgICBsb2cuaW5mbygiUnVuIGluZGV4LWNoZWNrIGFnYWluIHRvIGNvbmZpcm0gYWxs IGNsZWFyIikKLWRpZmYgLS1naXQgYS9sZGFwL3NlcnZlcnMvc2xhcGQvdXBncmFkZS5jIGIvbGRh cC9zZXJ2ZXJzL3NsYXBkL3VwZ3JhZGUuYwotaW5kZXggNmIxYjAxMmRhLi45NTU3ZTkwNjYgMTAw NjQ0Ci0tLS0gYS9sZGFwL3NlcnZlcnMvc2xhcGQvdXBncmFkZS5jCi0rKysgYi9sZGFwL3NlcnZl cnMvc2xhcGQvdXBncmFkZS5jCi1AQCAtNTUxLDEwNyArNTUxLDYgQEAgdXBncmFkZV9yZW1vdmVf YW5jZXN0b3JpZF9pbmRleF9jb25maWcodm9pZCkKLSAgICAgcmV0dXJuIHVyZXN1bHQ7Ci0gfQot IAotLS8qCi0tICogQ2hlY2sgaWYgcGFyZW50aWQvYW5jZXN0b3JpZCBpbmRleGVzIGFyZSBtaXNz aW5nIHRoZSBpbnRlZ2VyT3JkZXJpbmdNYXRjaAotLSAqIG1hdGNoaW5nIHJ1bGUuCi0tICoKLS0g KiBUaGlzIGZ1bmN0aW9uIGxvZ3MgYSB3YXJuaW5nIGlmIHdlIGRldGVjdCB0aGlzIGNvbmRpdGlv biwgYWR2aXNpbmcKLS0gKiB0aGUgYWRtaW5pc3RyYXRvciB0byByZWluZGV4IHRoZSBhZmZlY3Rl ZCBhdHRyaWJ1dGVzLgotLSAqLwotLXN0YXRpYyB1cGdyYWRlX3N0YXR1cwotLXVwZ3JhZGVfY2hl Y2tfaWRfaW5kZXhfbWF0Y2hpbmdfcnVsZSh2b2lkKQotLXsKLS0gICAgc3RydWN0IHNsYXBpX3Bi bG9jayAqcGIgPSBzbGFwaV9wYmxvY2tfbmV3KCk7Ci0tICAgIFNsYXBpX0VudHJ5ICoqYmFja2Vu ZHMgPSBOVUxMOwotLSAgICBjb25zdCBjaGFyICpiZV9iYXNlX2RuID0gImNuPWxkYm0gZGF0YWJh c2UsY249cGx1Z2lucyxjbj1jb25maWciOwotLSAgICBjb25zdCBjaGFyICpiZV9maWx0ZXIgPSAi KG9iamVjdGNsYXNzPW5zQmFja2VuZEluc3RhbmNlKSI7Ci0tICAgIGNvbnN0IGNoYXIgKmF0dHJz X3RvX2NoZWNrW10gPSB7InBhcmVudGlkIiwgTlVMTH07Ci0tICAgIHVwZ3JhZGVfc3RhdHVzIHVy ZXN1bHQgPSBVUEdSQURFX1NVQ0NFU1M7Ci0tCi0tICAgIC8qIFNlYXJjaCBmb3IgYWxsIGJhY2tl bmQgaW5zdGFuY2VzICovCi0tICAgIHNsYXBpX3NlYXJjaF9pbnRlcm5hbF9zZXRfcGIoCi0tICAg ICAgICAgICAgcGIsIGJlX2Jhc2VfZG4sCi0tICAgICAgICAgICAgTERBUF9TQ09QRV9PTkVMRVZF TCwKLS0gICAgICAgICAgICBiZV9maWx0ZXIsIE5VTEwsIDAsIE5VTEwsIE5VTEwsCi0tICAgICAg ICAgICAgcGx1Z2luX2dldF9kZWZhdWx0X2NvbXBvbmVudF9pZCgpLCAwKTsKLS0gICAgc2xhcGlf c2VhcmNoX2ludGVybmFsX3BiKHBiKTsKLS0gICAgc2xhcGlfcGJsb2NrX2dldChwYiwgU0xBUElf UExVR0lOX0lOVE9QX1NFQVJDSF9FTlRSSUVTLCAmYmFja2VuZHMpOwotLQotLSAgICBpZiAoYmFj a2VuZHMpIHsKLS0gICAgICAgIGZvciAoc2l6ZV90IGJlX2lkeCA9IDA7IGJhY2tlbmRzW2JlX2lk eF0gIT0gTlVMTDsgYmVfaWR4KyspIHsKLS0gICAgICAgICAgICBjb25zdCBjaGFyICpiZV9kbiA9 IHNsYXBpX2VudHJ5X2dldF9kbl9jb25zdChiYWNrZW5kc1tiZV9pZHhdKTsKLS0gICAgICAgICAg ICBjb25zdCBjaGFyICpiZV9uYW1lID0gc2xhcGlfZW50cnlfYXR0cl9nZXRfcmVmKGJhY2tlbmRz W2JlX2lkeF0sICJjbiIpOwotLSAgICAgICAgICAgIGlmICghYmVfZG4gfHwgIWJlX25hbWUpIHsK LS0gICAgICAgICAgICAgICAgY29udGludWU7Ci0tICAgICAgICAgICAgfQotLQotLSAgICAgICAg ICAgIC8qIENoZWNrIGVhY2ggYXR0cmlidXRlIHRoYXQgc2hvdWxkIGhhdmUgaW50ZWdlck9yZGVy aW5nTWF0Y2ggKi8KLS0gICAgICAgICAgICBmb3IgKHNpemVfdCBhdHRyX2lkeCA9IDA7IGF0dHJz X3RvX2NoZWNrW2F0dHJfaWR4XSAhPSBOVUxMOyBhdHRyX2lkeCsrKSB7Ci0tICAgICAgICAgICAg ICAgIGNvbnN0IGNoYXIgKmF0dHJfbmFtZSA9IGF0dHJzX3RvX2NoZWNrW2F0dHJfaWR4XTsKLS0g ICAgICAgICAgICAgICAgc3RydWN0IHNsYXBpX3BibG9jayAqaWR4X3BiID0gc2xhcGlfcGJsb2Nr X25ldygpOwotLSAgICAgICAgICAgICAgICBTbGFwaV9FbnRyeSAqKmlkeF9lbnRyaWVzID0gTlVM TDsKLS0gICAgICAgICAgICAgICAgY2hhciAqaWR4X2RuID0gc2xhcGlfY3JlYXRlX2RuX3N0cmlu ZygiY249JXMsY249aW5kZXgsJXMiLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhdHRyX25hbWUsIGJlX2RuKTsKLS0gICAgICAgICAgICAg ICAgY2hhciAqaWR4X2ZpbHRlciA9ICIob2JqZWN0Y2xhc3M9bnNJbmRleCkiOwotLSAgICAgICAg ICAgICAgICBQUkJvb2wgaGFzX21hdGNoaW5nX3J1bGUgPSBQUl9GQUxTRTsKLS0KLS0gICAgICAg ICAgICAgICAgaWYgKCFpZHhfZG4pIHsKLS0gICAgICAgICAgICAgICAgICAgIHNsYXBpX3BibG9j a19kZXN0cm95KGlkeF9wYik7Ci0tICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLS0gICAg ICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgICAgICBzbGFwaV9zZWFyY2hfaW50ZXJuYWxf c2V0X3BiKAotLSAgICAgICAgICAgICAgICAgICAgICAgIGlkeF9wYiwgaWR4X2RuLAotLSAgICAg ICAgICAgICAgICAgICAgICAgIExEQVBfU0NPUEVfQkFTRSwKLS0gICAgICAgICAgICAgICAgICAg ICAgICBpZHhfZmlsdGVyLCBOVUxMLCAwLCBOVUxMLCBOVUxMLAotLSAgICAgICAgICAgICAgICAg ICAgICAgIHBsdWdpbl9nZXRfZGVmYXVsdF9jb21wb25lbnRfaWQoKSwgMCk7Ci0tICAgICAgICAg ICAgICAgIHNsYXBpX3NlYXJjaF9pbnRlcm5hbF9wYihpZHhfcGIpOwotLSAgICAgICAgICAgICAg ICBzbGFwaV9wYmxvY2tfZ2V0KGlkeF9wYiwgU0xBUElfUExVR0lOX0lOVE9QX1NFQVJDSF9FTlRS SUVTLCAmaWR4X2VudHJpZXMpOwotLQotLSAgICAgICAgICAgICAgICBpZiAoaWR4X2VudHJpZXMg JiYgaWR4X2VudHJpZXNbMF0pIHsKLS0gICAgICAgICAgICAgICAgICAgIC8qIEluZGV4IGV4aXN0 cywgY2hlY2sgaWYgaXQgaGFzIGludGVnZXJPcmRlcmluZ01hdGNoICovCi0tICAgICAgICAgICAg ICAgICAgICBTbGFwaV9BdHRyICptcl9hdHRyID0gTlVMTDsKLS0gICAgICAgICAgICAgICAgICAg IGlmIChzbGFwaV9lbnRyeV9hdHRyX2ZpbmQoaWR4X2VudHJpZXNbMF0sICJuc01hdGNoaW5nUnVs ZSIsICZtcl9hdHRyKSA9PSAwKSB7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgU2xhcGlfVmFs dWUgKnN2YWwgPSBOVUxMOwotLSAgICAgICAgICAgICAgICAgICAgICAgIGludCBpZHg7Ci0tICAg ICAgICAgICAgICAgICAgICAgICAgZm9yIChpZHggPSBzbGFwaV9hdHRyX2ZpcnN0X3ZhbHVlKG1y X2F0dHIsICZzdmFsKTsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkeCAhPSAtMTsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkeCA9IHNsYXBpX2F0dHJfbmV4dF92YWx1 ZShtcl9hdHRyLCBpZHgsICZzdmFsKSkgewotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBzdHJ1Y3QgYmVydmFsICpidmFsID0gc2xhcGlfdmFsdWVfZ2V0X2JlcnZhbChzdmFsKTsK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJ2YWwgJiYgYnZhbC0+YnZfdmFsICYm Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJjYXNlY21wKGJ2YWwtPmJ2X3Zh bCwgImludGVnZXJPcmRlcmluZ01hdGNoIikgPT0gMCkgewotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaGFzX21hdGNoaW5nX3J1bGUgPSBQUl9UUlVFOwotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K LS0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tCi0t ICAgICAgICAgICAgICAgICAgICBpZiAoIWhhc19tYXRjaGluZ19ydWxlKSB7Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgLyogSW5kZXggZXhpc3RzIGJ1dCBkb2Vzbid0IGhhdmUgaW50ZWdlck9y ZGVyaW5nTWF0Y2gsIGxvZyBhIHdhcm5pbmcgKi8KLS0gICAgICAgICAgICAgICAgICAgICAgICBz bGFwaV9sb2dfZXJyKFNMQVBJX0xPR19FUlIsICJ1cGdyYWRlX2NoZWNrX2lkX2luZGV4X21hdGNo aW5nX3J1bGUiLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkluZGV4ICclcycg aW4gYmFja2VuZCAnJXMnIGlzIG1pc3NpbmcgJ25zTWF0Y2hpbmdSdWxlOiBpbnRlZ2VyT3JkZXJp bmdNYXRjaCcuICIKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbmNvcnJlY3Rs eSBjb25maWd1cmVkIHN5c3RlbSBpbmRleGVzIGNhbiBsZWFkIHRvIHBvb3Igc2VhcmNoIHBlcmZv cm1hbmNlLCByZXBsaWNhdGlvbiBpc3N1ZXMsIGFuZCBvdGhlciBvcGVyYXRpb25hbCBwcm9ibGVt cy4gIgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRvIGZpeCB0aGlzLCBhZGQg dGhlIG1hdGNoaW5nIHJ1bGUgYW5kIHJlaW5kZXg6ICIKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJkc2NvbmYgPGluc3RhbmNlPiBiYWNrZW5kIGluZGV4IHNldCAtLWFkZC1tciBp bnRlZ2VyT3JkZXJpbmdNYXRjaCAtLWF0dHIgJXMgJXMgJiYgIgotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgImRzY29uZiA8aW5zdGFuY2U+IGJhY2tlbmQgaW5kZXggcmVpbmRleCAt LWF0dHIgJXMgJXMuICIKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJXQVJOSU5H OiBSZWluZGV4aW5nIGNhbiBiZSByZXNvdXJjZS1pbnRlbnNpdmUgYW5kIG1heSBpbXBhY3Qgc2Vy dmVyIHBlcmZvcm1hbmNlIG9uIGEgbGl2ZSBzeXN0ZW0uICIKLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICJDb25zaWRlciBzY2hlZHVsaW5nIHJlaW5kZXhpbmcgZHVyaW5nIG1haW50 ZW5hbmNlIHdpbmRvd3Mgb3IgcGVyaW9kcyBvZiBsb3cgYWN0aXZpdHkuXG4iLAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXR0cl9uYW1lLCBiZV9uYW1lLCBhdHRyX25hbWUsIGJl X25hbWUsIGF0dHJfbmFtZSwgYmVfbmFtZSk7Ci0tICAgICAgICAgICAgICAgICAgICB9Ci0tICAg ICAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICAgICAgc2xhcGlfY2hfZnJlZV9zdHJpbmco JmlkeF9kbik7Ci0tICAgICAgICAgICAgICAgIHNsYXBpX2ZyZWVfc2VhcmNoX3Jlc3VsdHNfaW50 ZXJuYWwoaWR4X3BiKTsKLS0gICAgICAgICAgICAgICAgc2xhcGlfcGJsb2NrX2Rlc3Ryb3koaWR4 X3BiKTsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICB9Ci0tICAgIH0KLS0KLS0gICAgc2xhcGlf ZnJlZV9zZWFyY2hfcmVzdWx0c19pbnRlcm5hbChwYik7Ci0tICAgIHNsYXBpX3BibG9ja19kZXN0 cm95KHBiKTsKLS0KLS0gICAgcmV0dXJuIHVyZXN1bHQ7Ci0tfQotIAotIC8qCi0gICogVXBncmFk ZSB0aGUgYmFzZSBjb25maWcgb2YgdGhlIFBBTSBQVEEgcGx1Z2luLgotQEAgLTg3OSwxMCArNzc4 LDYgQEAgdXBncmFkZV9zZXJ2ZXIodm9pZCkKLSAgICAgICAgIHJldHVybiBVUEdSQURFX0ZBSUxV UkU7Ci0gICAgIH0KLSAKLS0gICAgaWYgKHVwZ3JhZGVfY2hlY2tfaWRfaW5kZXhfbWF0Y2hpbmdf cnVsZSgpICE9IFVQR1JBREVfU1VDQ0VTUykgewotLSAgICAgICAgcmV0dXJuIFVQR1JBREVfRkFJ TFVSRTsKLS0gICAgfQotLQotICAgICByZXR1cm4gVVBHUkFERV9TVUNDRVNTOwotIH0KLSAKLWRp ZmYgLS1naXQgYS9ycG0vMzg5LWRzLWJhc2Uuc3BlYy5pbiBiL3JwbS8zODktZHMtYmFzZS5zcGVj LmluCi1pbmRleCAwZTBlMjgyODUuLjM3MGUzYWJkNCAxMDA2NDQKLS0tLSBhL3JwbS8zODktZHMt YmFzZS5zcGVjLmluCi0rKysgYi9ycG0vMzg5LWRzLWJhc2Uuc3BlYy5pbgotQEAgLTY1MCw5ICs2 NTAsNiBAQCBmb3IgZGlyIGluICIkaW5zdGJhc2UiL3NsYXBkLSogOyBkbwotICAgICBlbHNlCi0g ICAgICAgIGVjaG8gImluc3RhbmNlICRpbnN0IGlzIG5vdCBydW5uaW5nIiA+PiAiJG91dHB1dCIg Mj4mMSB8fCA6Ci0gICAgIGZpCi0tICAgICMgUnVuIGluZGV4LWNoZWNrIG9uIGFsbCBpbnN0YW5j ZXMgKHJ1bm5pbmcgb3Igbm90KQotLSAgICAjIFRoaXMgZml4ZXMgaW5kZXggb3JkZXJpbmcgbWlz bWF0Y2hlcyBmcm9tIG9sZGVyIHZlcnNpb25zCi0tICAgIGRzY3RsICIkaW5zdF9uYW1lIiBpbmRl eC1jaGVjayAtLWZpeCA+PiAiJG91dHB1dDIiIDI+JjEgfHwgOgotICAgICBuaW5zdD0kKChuaW5z dCArIDEpKQotIGRvbmUKLSAKLWRpZmYgLS1naXQgYS9zcmMvbGliMzg5L2xpYjM4OS9iYWNrZW5k LnB5IGIvc3JjL2xpYjM4OS9saWIzODkvYmFja2VuZC5weQotaW5kZXggZjNkYmU3YzkyLi42Yzhj YmMwMTggMTAwNjQ0Ci0tLS0gYS9zcmMvbGliMzg5L2xpYjM4OS9iYWNrZW5kLnB5Ci0rKysgYi9z cmMvbGliMzg5L2xpYjM4OS9iYWNrZW5kLnB5Ci1AQCAtNjQ3LDkgKzY0NywxMCBAQCBjbGFzcyBC YWNrZW5kKERTTGRhcE9iamVjdCk6Ci0gICAgICAgICAjIERlZmF1bHQgc3lzdGVtIGluZGV4ZXMg dGFrZW4gZnJvbSBsZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2luc3RhbmNlLmMKLSAgICAg ICAgICMgTm90ZTogZW50cnlyZG4gYW5kIGFuY2VzdG9yaWQgYXJlIGludGVybmFsIHN5c3RlbSBp bmRleGVzIHRoYXQgYXJlIG5vdAotICAgICAgICAgIyBleHBvc2VkIGluIGNuPWNvbmZpZyAtIHRo ZXkgYXJlIG1hbmFnZWQgaW50ZXJuYWxseSBieSB0aGUgc2VydmVyLgotLSAgICAgICAgIyBPbmx5 IHBhcmVudGlkIGhhcyBhIERTRSBjb25maWcgZW50cnkgKGZvciB0aGUgaW50ZWdlck9yZGVyaW5n TWF0Y2ggcnVsZSkuCi0rICAgICAgICAjIHBhcmVudGlkIHdvcmtzIGNvcnJlY3RseSB3aXRoIGJv dGggbGV4aWNvZ3JhcGhpYyBhbmQgaW50ZWdlciBvcmRlcmluZywKLSsgICAgICAgICMgc28gaW50 ZWdlck9yZGVyaW5nTWF0Y2ggaXMgbm90IHJlcXVpcmVkLgotICAgICAgICAgZXhwZWN0ZWRfc3lz dGVtX2luZGV4ZXMgPSB7Ci0tICAgICAgICAgICAgJ3BhcmVudGlkJzogeyd0eXBlcyc6IFsnZXEn XSwgJ21hdGNoaW5nX3J1bGUnOiAnaW50ZWdlck9yZGVyaW5nTWF0Y2gnfSwKLSsgICAgICAgICAg ICAncGFyZW50aWQnOiB7J3R5cGVzJzogWydlcSddLCAnbWF0Y2hpbmdfcnVsZSc6IE5vbmV9LAot ICAgICAgICAgICAgICdvYmplY3RDbGFzcyc6IHsndHlwZXMnOiBbJ2VxJ10sICdtYXRjaGluZ19y dWxlJzogTm9uZX0sCi0gICAgICAgICAgICAgJ2FjaSc6IHsndHlwZXMnOiBbJ3ByZXMnXSwgJ21h dGNoaW5nX3J1bGUnOiBOb25lfSwKLSAgICAgICAgICAgICAnbnNjcEVudHJ5RE4nOiB7J3R5cGVz JzogWydlcSddLCAnbWF0Y2hpbmdfcnVsZSc6IE5vbmV9LAotZGlmZiAtLWdpdCBhL3NyYy9saWIz ODkvbGliMzg5L2NsaV9jdGwvZGJ0YXNrcy5weSBiL3NyYy9saWIzODkvbGliMzg5L2NsaV9jdGwv ZGJ0YXNrcy5weQotaW5kZXggY2Q5NmNkYWY3Li5iMDJkZTIwM2YgMTAwNjQ0Ci0tLS0gYS9zcmMv bGliMzg5L2xpYjM4OS9jbGlfY3RsL2RidGFza3MucHkKLSsrKyBiL3NyYy9saWIzODkvbGliMzg5 L2NsaV9jdGwvZGJ0YXNrcy5weQotQEAgLTEwLDYgKzEwLDcgQEAKLSBpbXBvcnQgZ2xvYgotIGlt cG9ydCBvcwotIGltcG9ydCByZQotK2ltcG9ydCBzaWduYWwKLSBpbXBvcnQgc3VicHJvY2Vzcwot IGZyb20gZW51bSBpbXBvcnQgRW51bQotIGZyb20gbGliMzg5Ll9jb25zdGFudHMgaW1wb3J0IFRh c2tXYXJuaW5nCi1AQCAtMjYzLDQ1ICsyNjQsNTMgQEAgZGVmIF9jaGVja19kaXNrX29yZGVyaW5n KGRiX2RpciwgYmFja2VuZCwgaW5kZXhfbmFtZSwgZGJzY2FuX3BhdGgsIGlzX21kYiwgbG9nKToK LSAgICAgICAgIGlmIG5vdCBpbmRleF9maWxlOgotICAgICAgICAgICAgIHJldHVybiBJbmRleE9y ZGVyaW5nLlVOS05PV04KLSAKLSsgICAgIyBPbmx5IHJlYWQgdGhlIGZpcnN0IDEwMCBsaW5lcyBm cm9tIGRic2NhbiB0byBhdm9pZCBzY2FubmluZyB0aGUKLSsgICAgIyBlbnRpcmUgaW5kZXggKHdo aWNoIGNhbiB0YWtlIGhvdXJzIG9uIGxhcmdlIGRhdGFiYXNlcykuCi0gICAgIHRyeToKLS0gICAg ICAgIHJlc3VsdCA9IHN1YnByb2Nlc3MucnVuKAotKyAgICAgICAgcHJvYyA9IHN1YnByb2Nlc3Mu UG9wZW4oCi0gICAgICAgICAgICAgW2Ric2Nhbl9wYXRoLCAiLWYiLCBpbmRleF9maWxlXSwKLSAg ICAgICAgICAgICBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLAotICAgICAgICAgICAgIHN0ZGVycj1z dWJwcm9jZXNzLlBJUEUsCi0gICAgICAgICAgICAgdW5pdmVyc2FsX25ld2xpbmVzPVRydWUsCi0t ICAgICAgICAgICAgdGltZW91dD02MCwKLSAgICAgICAgICkKLSAKLS0gICAgICAgIGlmIHJlc3Vs dC5yZXR1cm5jb2RlICE9IDA6Ci0tICAgICAgICAgICAgbG9nLndhcm5pbmcoIiAgZGJzY2FuIHJl dHVybmVkIG5vbi16ZXJvIGV4aXQgY29kZSBmb3IgJXMiLCBpbmRleF9maWxlKQotLSAgICAgICAg ICAgIHJldHVybiBJbmRleE9yZGVyaW5nLlVOS05PV04KLS0KLS0gICAgICAgICMgUGFyc2Uga2V5 cyBmcm9tIGRic2NhbiBvdXRwdXQKLSAgICAgICAgIGtleXMgPSBbXQotLSAgICAgICAgZm9yIGxp bmUgaW4gcmVzdWx0LnN0ZG91dC5zcGxpdCgiXG4iKToKLSsgICAgICAgIGxpbmVfY291bnQgPSAw Ci0rICAgICAgICBhc3NlcnQgcHJvYy5zdGRvdXQgaXMgbm90IE5vbmUKLSsgICAgICAgIGZvciBs aW5lIGluIHByb2Muc3Rkb3V0OgotKyAgICAgICAgICAgIGxpbmVfY291bnQgKz0gMQotKyAgICAg ICAgICAgIGlmIGxpbmVfY291bnQgPiAxMDA6Ci0rICAgICAgICAgICAgICAgIGJyZWFrCi0gICAg ICAgICAgICAgbGluZSA9IGxpbmUuc3RyaXAoKQotICAgICAgICAgICAgIGlmIGxpbmUuc3RhcnRz d2l0aCgiPSIpOgotICAgICAgICAgICAgICAgICBtYXRjaCA9IHJlLm1hdGNoKHIiXj0oXGQrKSIs IGxpbmUpCi0gICAgICAgICAgICAgICAgIGlmIG1hdGNoOgotICAgICAgICAgICAgICAgICAgICAg a2V5cy5hcHBlbmQoaW50KG1hdGNoLmdyb3VwKDEpKSkKLSAKLSsgICAgICAgIHByb2MudGVybWlu YXRlKCkKLSsgICAgICAgIHRyeToKLSsgICAgICAgICAgICBwcm9jLndhaXQodGltZW91dD01KQot KyAgICAgICAgZXhjZXB0IHN1YnByb2Nlc3MuVGltZW91dEV4cGlyZWQ6Ci0rICAgICAgICAgICAg cHJvYy5raWxsKCkKLSsgICAgICAgICAgICBwcm9jLndhaXQoKQotKwotKyAgICAgICAgaWYgcHJv Yy5yZXR1cm5jb2RlIG5vdCBpbiAoMCwgLXNpZ25hbC5TSUdURVJNKToKLSsgICAgICAgICAgICBs b2cud2FybmluZygiICBkYnNjYW4gcmV0dXJuZWQgbm9uLXplcm8gZXhpdCBjb2RlIGZvciAlcyIs IGluZGV4X2ZpbGUpCi0rICAgICAgICAgICAgcmV0dXJuIEluZGV4T3JkZXJpbmcuVU5LTk9XTgot KwotICAgICAgICAgaWYgbGVuKGtleXMpIDwgMjoKLSAgICAgICAgICAgICByZXR1cm4gSW5kZXhP cmRlcmluZy5VTktOT1dOCi0gCi0gICAgICAgICAjIENoZWNrIGlmIGtleXMgYXJlIGluIGludGVn ZXIgb3JkZXIgYnkgbG9va2luZyBmb3IgZGVjcmVhc2luZyBudW1lcmljIHZhbHVlcwotICAgICAg ICAgIyAod2hpY2ggd291bGQgaW5kaWNhdGUgbGV4aWNvZ3JhcGhpYyBvcmRlcmluZywgZS5nLiwg IjMiIDwgIjMwIiA8ICI0IikKLSAgICAgICAgIHByZXZfaWQgPSBrZXlzWzBdCi0tICAgICAgICBm b3IgaSBpbiByYW5nZSgxLCBtaW4obGVuKGtleXMpLCAxMDApKToKLS0gICAgICAgICAgICBjdXJy ZW50X2lkID0ga2V5c1tpXQotKyAgICAgICAgZm9yIGN1cnJlbnRfaWQgaW4ga2V5c1sxOl06Ci0g ICAgICAgICAgICAgaWYgcHJldl9pZCA+IGN1cnJlbnRfaWQ6Ci0gICAgICAgICAgICAgICAgIHJl dHVybiBJbmRleE9yZGVyaW5nLkxFWElDT0dSQVBISUMKLSAgICAgICAgICAgICBwcmV2X2lkID0g Y3VycmVudF9pZAotIAotICAgICAgICAgcmV0dXJuIEluZGV4T3JkZXJpbmcuSU5URUdFUgotIAot LSAgICBleGNlcHQgc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZDoKLS0gICAgICAgIGxvZy53YXJu aW5nKCIgIGRic2NhbiB0aW1lZCBvdXQgZm9yICVzIiwgaW5kZXhfZmlsZSkKLS0gICAgICAgIHJl dHVybiBJbmRleE9yZGVyaW5nLlVOS05PV04KLSAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKLSAg ICAgICAgIGxvZy53YXJuaW5nKCIgIEVycm9yIHJ1bm5pbmcgZGJzY2FuOiAlcyIsIGUpCi0gICAg ICAgICByZXR1cm4gSW5kZXhPcmRlcmluZy5VTktOT1dOCi1AQCAtMzc1LDggKzM4NCw3IEBAIGRl ZiBkYnRhc2tzX2luZGV4X2NoZWNrKGluc3QsIGxvZywgYXJncyk6Ci0gCi0gICAgICMgVHJhY2sg YWxsIGlzc3VlcyBmb3VuZAotICAgICBhbGxfb2sgPSBUcnVlCi0tICAgIG1pc21hdGNoZXMgPSBb XSAgIyAoYmFja2VuZCwgaW5kZXhfbmFtZSkgdHVwbGVzIG5lZWRpbmcgcmVpbmRleAotLSAgICBt aXNzaW5nX21hdGNoaW5nX3J1bGVzID0gW10gICMgKGJhY2tlbmQsIGluZGV4X25hbWUpIHR1cGxl cyBtaXNzaW5nIGludGVnZXJPcmRlcmluZ01hdGNoCi0rICAgIGNvbmZpZ19maXhlcyA9IFtdICAj IChiYWNrZW5kLCBpbmRleF9uYW1lLCBhY3Rpb24pIHR1cGxlczogYWN0aW9uIGlzICJhZGRfbXIi IG9yICJyZW1vdmVfbXIiCi0gICAgIHNjYW5fbGltaXRzX3RvX3JlbW92ZSA9IFtdICAjIChiYWNr ZW5kLCBpbmRleF9uYW1lKSB0dXBsZXMgd2l0aCBuc0luZGV4SURMaXN0U2NhbkxpbWl0Ci0gICAg IGFuY2VzdG9yaWRfY29uZmlnc190b19yZW1vdmUgPSBbXSAgIyBiYWNrZW5kIG5hbWVzIHdpdGgg YW5jZXN0b3JpZCBjb25maWcgZW50cmllcwotICAgICByZW1vdmVfYW5jZXN0b3JpZF9mcm9tX2Rl ZmF1bHRzID0gRmFsc2UgICMgRmxhZyB0byByZW1vdmUgZnJvbSBjbj1kZWZhdWx0IGluZGV4ZXMK LUBAIC00MDksMTMgKzQxNyw2IEBAIGRlZiBkYnRhc2tzX2luZGV4X2NoZWNrKGluc3QsIGxvZywg YXJncyk6Ci0gCi0gICAgICAgICAgICAgaWYgZGlza19vcmRlcmluZyA9PSBJbmRleE9yZGVyaW5n LlVOS05PV046Ci0gICAgICAgICAgICAgICAgIGxvZy5pbmZvKCIgICVzIC0gY291bGQgbm90IGRl dGVybWluZSBkaXNrIG9yZGVyaW5nLCBza2lwcGluZyIsIGluZGV4X25hbWUpCi0tICAgICAgICAg ICAgICAgICMgRm9yIHBhcmVudGlkLCBzdGlsbCBjaGVjayBpZiBtYXRjaGluZyBydWxlIGlzIG1p c3NpbmcKLS0gICAgICAgICAgICAgICAgaWYgaW5kZXhfbmFtZSA9PSAicGFyZW50aWQiOgotLSAg ICAgICAgICAgICAgICAgICAgY29uZmlnX2hhc19pbnRfb3JkZXIgPSBfaGFzX2ludGVnZXJfb3Jk ZXJpbmdfbWF0Y2goZHNlX2xkaWYsIGJhY2tlbmQsIGluZGV4X25hbWUpCi0tICAgICAgICAgICAg ICAgICAgICBpZiBub3QgY29uZmlnX2hhc19pbnRfb3JkZXI6Ci0tICAgICAgICAgICAgICAgICAg ICAgICAgbG9nLndhcm5pbmcoIiAgJXMgLSBtaXNzaW5nIGludGVnZXJPcmRlcmluZ01hdGNoIGlu IGNvbmZpZyIsIGluZGV4X25hbWUpCi0tICAgICAgICAgICAgICAgICAgICAgICAgbWlzc2luZ19t YXRjaGluZ19ydWxlcy5hcHBlbmQoKGJhY2tlbmQsIGluZGV4X25hbWUpKQotLSAgICAgICAgICAg ICAgICAgICAgICAgIGFsbF9vayA9IEZhbHNlCi0gICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0g Ci0gICAgICAgICAgICAgY29uZmlnX2hhc19pbnRfb3JkZXIgPSBfaGFzX2ludGVnZXJfb3JkZXJp bmdfbWF0Y2goZHNlX2xkaWYsIGJhY2tlbmQsIGluZGV4X25hbWUpCi1AQCAtNDIzLDE4ICs0MjQs MTUgQEAgZGVmIGRidGFza3NfaW5kZXhfY2hlY2soaW5zdCwgbG9nLCBhcmdzKToKLSAgICAgICAg ICAgICBsb2cuaW5mbygiICAlcyAtIGNvbmZpZzogJXMsIGRpc2s6ICVzIiwKLSAgICAgICAgICAg ICAgICAgICAgICBpbmRleF9uYW1lLCBjb25maWdfZGVzYywgZGlza19vcmRlcmluZy52YWx1ZSkK LSAKLS0gICAgICAgICAgICAjIEZvciBwYXJlbnRpZCwgdGhlIGRlc2lyZWQgc3RhdGUgaXMgYWx3 YXlzIGludGVnZXIgb3JkZXJpbmcKLSsgICAgICAgICAgICAjIEJvdGggb3JkZXJpbmdzIGFyZSB2 YWxpZCBmb3IgcGFyZW50aWQsIGJ1dCBjb25maWcgbXVzdCBtYXRjaCBkaXNrLgotICAgICAgICAg ICAgIGlmIGluZGV4X25hbWUgPT0gInBhcmVudGlkIjoKLS0gICAgICAgICAgICAgICAgaWYgbm90 IGNvbmZpZ19oYXNfaW50X29yZGVyOgotLSAgICAgICAgICAgICAgICAgICAgbG9nLndhcm5pbmco IiAgJXMgLSBtaXNzaW5nIGludGVnZXJPcmRlcmluZ01hdGNoIGluIGNvbmZpZyIsIGluZGV4X25h bWUpCi0tICAgICAgICAgICAgICAgICAgICBpZiAoYmFja2VuZCwgaW5kZXhfbmFtZSkgbm90IGlu IG1pc3NpbmdfbWF0Y2hpbmdfcnVsZXM6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgbWlzc2lu Z19tYXRjaGluZ19ydWxlcy5hcHBlbmQoKGJhY2tlbmQsIGluZGV4X25hbWUpKQotKyAgICAgICAg ICAgICAgICBpZiBjb25maWdfaGFzX2ludF9vcmRlciBhbmQgZGlza19vcmRlcmluZyA9PSBJbmRl eE9yZGVyaW5nLkxFWElDT0dSQVBISUM6Ci0rICAgICAgICAgICAgICAgICAgICBsb2cud2Fybmlu ZygiICAlcyAtIE1JU01BVENIOiBjb25maWcgaGFzIGludGVnZXJPcmRlcmluZ01hdGNoIGJ1dCBk aXNrIGlzIGxleGljb2dyYXBoaWMiLCBpbmRleF9uYW1lKQotKyAgICAgICAgICAgICAgICAgICAg Y29uZmlnX2ZpeGVzLmFwcGVuZCgoYmFja2VuZCwgaW5kZXhfbmFtZSwgInJlbW92ZV9tciIpKQot ICAgICAgICAgICAgICAgICAgICAgYWxsX29rID0gRmFsc2UKLS0KLS0gICAgICAgICAgICAgICAg aWYgZGlza19vcmRlcmluZyA9PSBJbmRleE9yZGVyaW5nLkxFWElDT0dSQVBISUM6Ci0tICAgICAg ICAgICAgICAgICAgICBsb2cud2FybmluZygiICAlcyAtIGRpc2sgb3JkZXJpbmcgaXMgbGV4aWNv Z3JhcGhpYywgbmVlZHMgcmVpbmRleCIsIGluZGV4X25hbWUpCi0tICAgICAgICAgICAgICAgICAg ICBpZiAoYmFja2VuZCwgaW5kZXhfbmFtZSkgbm90IGluIG1pc21hdGNoZXM6Ci0tICAgICAgICAg ICAgICAgICAgICAgICAgbWlzbWF0Y2hlcy5hcHBlbmQoKGJhY2tlbmQsIGluZGV4X25hbWUpKQot KyAgICAgICAgICAgICAgICBlbGlmIG5vdCBjb25maWdfaGFzX2ludF9vcmRlciBhbmQgZGlza19v cmRlcmluZyA9PSBJbmRleE9yZGVyaW5nLklOVEVHRVI6Ci0rICAgICAgICAgICAgICAgICAgICBs b2cud2FybmluZygiICAlcyAtIE1JU01BVENIOiBjb25maWcgaXMgbGV4aWNvZ3JhcGhpYyBidXQg ZGlzayBoYXMgaW50ZWdlciBvcmRlcmluZyIsIGluZGV4X25hbWUpCi0rICAgICAgICAgICAgICAg ICAgICBjb25maWdfZml4ZXMuYXBwZW5kKChiYWNrZW5kLCBpbmRleF9uYW1lLCAiYWRkX21yIikp Ci0gICAgICAgICAgICAgICAgICAgICBhbGxfb2sgPSBGYWxzZQotIAotICAgICAjIEhhbmRsZSBp c3N1ZXMKLUBAIC00ODAsMjYgKzQ3OCwyNyBAQCBkZWYgZGJ0YXNrc19pbmRleF9jaGVjayhpbnN0 LCBsb2csIGFyZ3MpOgotICAgICAgICAgICAgICAgICAgICAgbG9nLmVycm9yKCIgIEZhaWxlZCB0 byByZW1vdmUgYW5jZXN0b3JpZCBjb25maWcgZnJvbSBiYWNrZW5kICVzOiAlcyIsIGJhY2tlbmQs IGUpCi0gICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAKLS0gICAgICAgICAgICAj IEFkZCBtaXNzaW5nIG1hdGNoaW5nIHJ1bGVzIHRvIGRzZS5sZGlmCi0tICAgICAgICAgICAgZm9y IGJhY2tlbmQsIGluZGV4X25hbWUgaW4gbWlzc2luZ19tYXRjaGluZ19ydWxlczoKLSsgICAgICAg ICAgICAjIEZpeCBjb25maWctdnMtZGlzayBvcmRlcmluZyBtaXNtYXRjaGVzIGJ5IGFkanVzdGlu ZyBjb25maWcgdG8gbWF0Y2ggZGlzawotKyAgICAgICAgICAgIGZvciBiYWNrZW5kLCBpbmRleF9u YW1lLCBhY3Rpb24gaW4gY29uZmlnX2ZpeGVzOgotICAgICAgICAgICAgICAgICBpbmRleF9kbiA9 ICJjbj17fSxjbj1pbmRleCxjbj17fSxjbj1sZGJtIGRhdGFiYXNlLGNuPXBsdWdpbnMsY249Y29u ZmlnIi5mb3JtYXQoCi0gICAgICAgICAgICAgICAgICAgICBpbmRleF9uYW1lLCBiYWNrZW5kCi0g ICAgICAgICAgICAgICAgICkKLS0gICAgICAgICAgICAgICAgbG9nLmluZm8oIiAgQWRkaW5nIGlu dGVnZXJPcmRlcmluZ01hdGNoIHRvICVzIGluIGJhY2tlbmQgJXMuLi4iLCBpbmRleF9uYW1lLCBi YWNrZW5kKQotLSAgICAgICAgICAgICAgICB0cnk6Ci0tICAgICAgICAgICAgICAgICAgICBkc2Vf bGRpZi5hZGQoaW5kZXhfZG4sICJuc01hdGNoaW5nUnVsZSIsICJpbnRlZ2VyT3JkZXJpbmdNYXRj aCIpCi0tICAgICAgICAgICAgICAgICAgICBsb2cuaW5mbygiICBVcGRhdGVkIGRzZS5sZGlmIHdp dGggaW50ZWdlck9yZGVyaW5nTWF0Y2ggZm9yICVzIiwgaW5kZXhfbmFtZSkKLS0gICAgICAgICAg ICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotLSAgICAgICAgICAgICAgICAgICAgbG9nLmVy cm9yKCIgIEZhaWxlZCB0byB1cGRhdGUgZHNlLmxkaWYgZm9yICVzOiAlcyIsIGluZGV4X25hbWUs IGUpCi0tICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKLS0KLS0gICAgICAgICAgICAj IFJlaW5kZXggaW5kZXhlcyB3aXRoIGRpc2sgb3JkZXJpbmcgaXNzdWVzCi0tICAgICAgICAgICAg Zm9yIGJhY2tlbmQsIGluZGV4X25hbWUgaW4gbWlzbWF0Y2hlczoKLS0gICAgICAgICAgICAgICAg bG9nLmluZm8oIiAgUmVpbmRleGluZyAlcyBpbiBiYWNrZW5kICVzLi4uIiwgaW5kZXhfbmFtZSwg YmFja2VuZCkKLS0gICAgICAgICAgICAgICAgaWYgbm90IGluc3QuZGIyaW5kZXgoYmVuYW1lPWJh Y2tlbmQsIGF0dHJzPVtpbmRleF9uYW1lXSk6Ci0tICAgICAgICAgICAgICAgICAgICBsb2cuZXJy b3IoIiAgRmFpbGVkIHRvIHJlaW5kZXggJXMiLCBpbmRleF9uYW1lKQotLSAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIEZhbHNlCi0tICAgICAgICAgICAgICAgIGxvZy5pbmZvKCIgIFJlaW5kZXgg b2YgJXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSIsIGluZGV4X25hbWUpCi0rICAgICAgICAgICAg ICAgIGlmIGFjdGlvbiA9PSAiYWRkX21yIjoKLSsgICAgICAgICAgICAgICAgICAgIGxvZy5pbmZv KCIgIEFkZGluZyBpbnRlZ2VyT3JkZXJpbmdNYXRjaCB0byAlcyBpbiBiYWNrZW5kICVzLi4uIiwg aW5kZXhfbmFtZSwgYmFja2VuZCkKLSsgICAgICAgICAgICAgICAgICAgIHRyeToKLSsgICAgICAg ICAgICAgICAgICAgICAgICBkc2VfbGRpZi5hZGQoaW5kZXhfZG4sICJuc01hdGNoaW5nUnVsZSIs ICJpbnRlZ2VyT3JkZXJpbmdNYXRjaCIpCi0rICAgICAgICAgICAgICAgICAgICAgICAgbG9nLmlu Zm8oIiAgVXBkYXRlZCBkc2UubGRpZiB3aXRoIGludGVnZXJPcmRlcmluZ01hdGNoIGZvciAlcyIs IGluZGV4X25hbWUpCi0rICAgICAgICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6 Ci0rICAgICAgICAgICAgICAgICAgICAgICAgbG9nLmVycm9yKCIgIEZhaWxlZCB0byB1cGRhdGUg ZHNlLmxkaWYgZm9yICVzOiAlcyIsIGluZGV4X25hbWUsIGUpCi0rICAgICAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIEZhbHNlCi0rICAgICAgICAgICAgICAgIGVsaWYgYWN0aW9uID09ICJyZW1v dmVfbXIiOgotKyAgICAgICAgICAgICAgICAgICAgbG9nLmluZm8oIiAgUmVtb3ZpbmcgaW50ZWdl ck9yZGVyaW5nTWF0Y2ggZnJvbSAlcyBpbiBiYWNrZW5kICVzLi4uIiwgaW5kZXhfbmFtZSwgYmFj a2VuZCkKLSsgICAgICAgICAgICAgICAgICAgIHRyeToKLSsgICAgICAgICAgICAgICAgICAgICAg ICBkc2VfbGRpZi5kZWxldGUoaW5kZXhfZG4sICJuc01hdGNoaW5nUnVsZSIsICJpbnRlZ2VyT3Jk ZXJpbmdNYXRjaCIpCi0rICAgICAgICAgICAgICAgICAgICAgICAgbG9nLmluZm8oIiAgUmVtb3Zl ZCBpbnRlZ2VyT3JkZXJpbmdNYXRjaCBmcm9tICVzIiwgaW5kZXhfbmFtZSkKLSsgICAgICAgICAg ICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSsgICAgICAgICAgICAgICAgICAgICAg ICBsb2cuZXJyb3IoIiAgRmFpbGVkIHRvIHJlbW92ZSBpbnRlZ2VyT3JkZXJpbmdNYXRjaCBmcm9t ICVzOiAlcyIsIGluZGV4X25hbWUsIGUpCi0rICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu IEZhbHNlCi0gCi0gICAgICAgICAgICAgbG9nLmluZm8oIkFsbCBpc3N1ZXMgZml4ZWQiKQotICAg ICAgICAgICAgIHJldHVybiBUcnVlCi1AQCAtNTYzLDUgKzU2Miw1IEBAIGRlZiBjcmVhdGVfcGFy c2VyKHN1YmNvbW1hbmRzKToKLSAgICAgaW5kZXhfY2hlY2tfcGFyc2VyLmFkZF9hcmd1bWVudCgn YmFja2VuZCcsIG5hcmdzPSc/JywgZGVmYXVsdD1Ob25lLAotICAgICAgICAgaGVscD0iQmFja2Vu ZCB0byBjaGVjay4gSWYgbm90IHNwZWNpZmllZCwgYWxsIGJhY2tlbmRzIGFyZSBjaGVja2VkLiIp Ci0gICAgIGluZGV4X2NoZWNrX3BhcnNlci5hZGRfYXJndW1lbnQoJy0tZml4JywgYWN0aW9uPSdz dG9yZV90cnVlJywgZGVmYXVsdD1GYWxzZSwKLS0gICAgICAgIGhlbHA9IkZpeCBtaXNtYXRjaGVz IGJ5IHJlaW5kZXhpbmcgYWZmZWN0ZWQgaW5kZXhlcyIpCi0rICAgICAgICBoZWxwPSJGaXggbWlz bWF0Y2hlcyBieSBhZGp1c3RpbmcgY29uZmlnIHRvIG1hdGNoIG9uLWRpc2sgZGF0YSIpCi0gICAg IGluZGV4X2NoZWNrX3BhcnNlci5zZXRfZGVmYXVsdHMoZnVuYz1kYnRhc2tzX2luZGV4X2NoZWNr KQotLS0gCi0yLjUzLjAKLQoKZGlmZiAtLWdpdCBhLzAwNTUtSXNzdWUtNzIzNi1GaXgtR1NTQVBJ LXRlc3RzLTcyMzcucGF0Y2ggYi8wMDU1LUlzc3VlLTcyMzYtRml4LUdTU0FQSS10ZXN0cy03MjM3 LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MTM5ZGMyLi4wMDAwMDAwCi0t LSBhLzAwNTUtSXNzdWUtNzIzNi1GaXgtR1NTQVBJLXRlc3RzLTcyMzcucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwyMjcgKzAsMCBAQAotRnJvbSAyNmZlZWNhZTAyNjU4MWUzOWE0M2YwMDFmYWZm NTllODFhOTJjMDNkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogTGVua2EgRG91ZG92 YSA8bWlyaWVsa2FAdXNlcnMubm9yZXBseS5naXRodWIuY29tPgotRGF0ZTogV2VkLCAxOCBGZWIg MjAyNiAxNDozMzo0OSArMDEwMAotU3ViamVjdDogW1BBVENIXSBJc3N1ZSA3MjM2IC0gRml4IEdT U0FQSSB0ZXN0cyAoIzcyMzcpCi0KLSogSXNzdWUgNzIzNiAtIEZpeCBHU1NBUEkgdGVzdHMKLQot RGVzY3JpcHRpb246Ci1GaXggZm9yIGZhaWxpbmcgR1NTQVBJIHRlc3RzCi1BZGQgR1NTQVBJX0FD SyB2YXJpYWJsZSB0byBweXRlc3Qgd29ya2Zsb3cgZm9yIHByb3BlciBleGVjdXRpb24gaW4KLUdp dGh1YiBDSQotCi1SZWxhdGVzOiAjNzIzNgotQXV0aG9yOiBMZW5rYSBEb3Vkb3ZhCi1SZXZpZXdl cjogQmFyYm9yYSBTaW1vbm92YSwgVmlrdG9yIEFzaGlyb3YKLS0tLQotIC5naXRodWIvd29ya2Zs b3dzL2xtZGJweXRlc3QueW1sICAgICAgICAgICAgICB8ICAyICstCi0gLmdpdGh1Yi93b3JrZmxv d3MvcHl0ZXN0LnltbCAgICAgICAgICAgICAgICAgIHwgIDIgKy0KLSAuLi4vdGVzdHMvc3VpdGVz L2dzc2FwaS9zaW1wbGVfZ3NzYXBpX3Rlc3QucHkgfCAgMiArCi0gLi4uL3N1aXRlcy9nc3NhcGlf cmVwbC9nc3NhcGlfcmVwbF90ZXN0LnB5ICAgIHwgNDMgKysrKystLS0tLS0tLS0KLSBzcmMvbGli Mzg5L2xpYjM4OS90b3BvbG9naWVzLnB5ICAgICAgICAgICAgICAgfCA1NyArKysrKysrKysrKysr KysrKysrCi0gNSBmaWxlcyBjaGFuZ2VkLCA3NiBpbnNlcnRpb25zKCspLCAzMCBkZWxldGlvbnMo LSkKLQotZGlmZiAtLWdpdCBhLy5naXRodWIvd29ya2Zsb3dzL2xtZGJweXRlc3QueW1sIGIvLmdp dGh1Yi93b3JrZmxvd3MvbG1kYnB5dGVzdC55bWwKLWluZGV4IDJkMGExMjJiZi4uMzc2MDkwYmY2 IDEwMDY0NAotLS0tIGEvLmdpdGh1Yi93b3JrZmxvd3MvbG1kYnB5dGVzdC55bWwKLSsrKyBiLy5n aXRodWIvd29ya2Zsb3dzL2xtZGJweXRlc3QueW1sCi1AQCAtMTIwLDcgKzEyMCw3IEBAIGpvYnM6 Ci0gICAgICAgICBzdWRvIGRvY2tlciBleGVjICRDSUQgc2ggLWMgInN5c3RlbWN0bCBlbmFibGUg LS1ub3cgY29ja3BpdC5zb2NrZXQiCi0gICAgICAgICBzdWRvIGRvY2tlciBleGVjICRDSUQgc2gg LWMgIm1rZGlyIC1wIC93b3Jrc3BhY2UvYXNzZXRzL2NvcmVzICYmIGNobW9kIDc3NyAvd29ya3Nw YWNleywvYXNzZXRzeywvY29yZXN9fSIKLSAgICAgICAgIHN1ZG8gZG9ja2VyIGV4ZWMgJENJRCBz aCAtYyAiZWNobyAnL3dvcmtzcGFjZS9hc3NldHMvY29yZXMvY29yZS4lZS4lUCcgPiAvcHJvYy9z eXMva2VybmVsL2NvcmVfcGF0dGVybiIKLS0gICAgICAgIHN1ZG8gZG9ja2VyIGV4ZWMgLWUgV0VC VUk9MSAtZSBOU1NMQVBEX0RCX0xJQj1tZGIgLWUgREVCVUc9cHc6YXBpIC1lIFBBU1NXRD0iJHtQ QVNTV0R9IiAkQ0lEIHB5LnRlc3QgIC0tc3VwcHJlc3Mtbm8tdGVzdC1leGl0LWNvZGUgIC1tICJu b3QgZmxha3kiIC0tanVuaXQteG1sPXB5dGVzdC54bWwgLS1odG1sPXB5dGVzdC5odG1sIC0tYnJv d3Nlcj1maXJlZm94IC0tYnJvd3Nlcj1jaHJvbWl1bSAtdiBkaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0 ZXMvJHt7IG1hdHJpeC5zdWl0ZSB9fQotKyAgICAgICAgc3VkbyBkb2NrZXIgZXhlYyAtZSBXRUJV ST0xIC1lIE5TU0xBUERfREJfTElCPW1kYiAtZSBERUJVRz1wdzphcGkgLWUgUEFTU1dEPSIke1BB U1NXRH0iIC1lIEdTU0FQSV9BQ0s9MSAkQ0lEIHB5LnRlc3QgIC0tc3VwcHJlc3Mtbm8tdGVzdC1l eGl0LWNvZGUgIC1tICJub3QgZmxha3kiIC0tanVuaXQteG1sPXB5dGVzdC54bWwgLS1odG1sPXB5 dGVzdC5odG1sIC0tYnJvd3Nlcj1maXJlZm94IC0tYnJvd3Nlcj1jaHJvbWl1bSAtdiBkaXJzcnZ0 ZXN0cy90ZXN0cy9zdWl0ZXMvJHt7IG1hdHJpeC5zdWl0ZSB9fQotIAotICAgICAtIG5hbWU6IE1h a2UgdGhlIHJlc3VsdHMgZmlsZSByZWFkYWJsZSBieSBhbGwKLSAgICAgICBpZjogYWx3YXlzKCkK LWRpZmYgLS1naXQgYS8uZ2l0aHViL3dvcmtmbG93cy9weXRlc3QueW1sIGIvLmdpdGh1Yi93b3Jr Zmxvd3MvcHl0ZXN0LnltbAotaW5kZXggOGE1NDNiZTg1Li5hNTE1NTM2NTYgMTAwNjQ0Ci0tLS0g YS8uZ2l0aHViL3dvcmtmbG93cy9weXRlc3QueW1sCi0rKysgYi8uZ2l0aHViL3dvcmtmbG93cy9w eXRlc3QueW1sCi1AQCAtMTI1LDcgKzEyNSw3IEBAIGpvYnM6Ci0gICAgICAgICAgICAgZWNobyAi VGVzdHMgc2tpcHBlZCBiZWNhdXNlIHJlYWQtb25seSBCZXJrZWxleSBEYXRhYmFzZSBpcyBpbnN0 YWxsZWQuIiA+IHB5dGVzdC5odG1sCi0gICAgICAgICAgICAgZWNobyAiPD94bWwgdmVyc2lvbj0i MS4wIiBlbmNvZGluZz0idXRmLTgiPz4nVGVzdHMgc2tpcHBlZCBiZWNhdXNlIHJlYWQtb25seSBC ZXJrZWxleSBEYXRhYmFzZSBpcyBpbnN0YWxsZWQuJyIgPiBweXRlc3QueG1sCi0gICAgICAgICBl bHNlCi0tICAgICAgICAgICAgc3VkbyBkb2NrZXIgZXhlYyAtZSBXRUJVST0xIC1lIE5TU0xBUERf REJfTElCPWJkYiAtZSBERUJVRz1wdzphcGkgLWUgUEFTU1dEPSIke1BBU1NXRH0iICRDSUQgcHku dGVzdCAgLS1zdXBwcmVzcy1uby10ZXN0LWV4aXQtY29kZSAgLW0gIm5vdCBmbGFreSIgLS1qdW5p dC14bWw9cHl0ZXN0LnhtbCAtLWh0bWw9cHl0ZXN0Lmh0bWwgLS1icm93c2VyPWZpcmVmb3ggLS1i cm93c2VyPWNocm9taXVtIC12IGRpcnNydnRlc3RzL3Rlc3RzL3N1aXRlcy8ke3sgbWF0cml4LnN1 aXRlIH19Ci0rICAgICAgICAgICAgc3VkbyBkb2NrZXIgZXhlYyAtZSBXRUJVST0xIC1lIE5TU0xB UERfREJfTElCPWJkYiAtZSBERUJVRz1wdzphcGkgLWUgUEFTU1dEPSIke1BBU1NXRH0iIC1lIEdT U0FQSV9BQ0s9MSAkQ0lEIHB5LnRlc3QgIC0tc3VwcHJlc3Mtbm8tdGVzdC1leGl0LWNvZGUgIC1t ICJub3QgZmxha3kiIC0tanVuaXQteG1sPXB5dGVzdC54bWwgLS1odG1sPXB5dGVzdC5odG1sIC0t YnJvd3Nlcj1maXJlZm94IC0tYnJvd3Nlcj1jaHJvbWl1bSAtdiBkaXJzcnZ0ZXN0cy90ZXN0cy9z dWl0ZXMvJHt7IG1hdHJpeC5zdWl0ZSB9fQotICAgICAgICAgZmkKLSAKLSAgICAgLSBuYW1lOiBN YWtlIHRoZSByZXN1bHRzIGZpbGUgcmVhZGFibGUgYnkgYWxsCi1kaWZmIC0tZ2l0IGEvZGlyc3J2 dGVzdHMvdGVzdHMvc3VpdGVzL2dzc2FwaS9zaW1wbGVfZ3NzYXBpX3Rlc3QucHkgYi9kaXJzcnZ0 ZXN0cy90ZXN0cy9zdWl0ZXMvZ3NzYXBpL3NpbXBsZV9nc3NhcGlfdGVzdC5weQotaW5kZXggYmU2 ZjY4YTlhLi5lNDhkZTM0OTEgMTAwNjQ0Ci0tLS0gYS9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMv Z3NzYXBpL3NpbXBsZV9nc3NhcGlfdGVzdC5weQotKysrIGIvZGlyc3J2dGVzdHMvdGVzdHMvc3Vp dGVzL2dzc2FwaS9zaW1wbGVfZ3NzYXBpX3Rlc3QucHkKLUBAIC0zNCw2ICszNCw4IEBAIGRlZiB0 ZXN0dXNlcih0b3BvbG9neV9zdF9nc3NhcGkpOgotICAgICB9KQotICAgICAjIEdpdmUgdGhlbSBh IGtyYiBwcmluYwotICAgICB1c2VyLmNyZWF0ZV9rZXl0YWIoKQotKyAgICAjIE1ha2Uga3JiNSBj b25maWcgcmVhZGFibGUgYnkgZXZlcnlvbmUgZm9yIHRoZSB0ZXN0cyB0byB3b3JrCi0rICAgIG9z LmNobW9kKHVzZXIuX2luc3RhbmNlLnJlYWxtLmtyYjVjb25mcmVhbG0sIDBvNjQ0KQotICAgICBy ZXR1cm4gdXNlcgotIAotIEBnc3NhcGlfYWNrCi1kaWZmIC0tZ2l0IGEvZGlyc3J2dGVzdHMvdGVz dHMvc3VpdGVzL2dzc2FwaV9yZXBsL2dzc2FwaV9yZXBsX3Rlc3QucHkgYi9kaXJzcnZ0ZXN0cy90 ZXN0cy9zdWl0ZXMvZ3NzYXBpX3JlcGwvZ3NzYXBpX3JlcGxfdGVzdC5weQotaW5kZXggNDAyNjg0 YWFiLi5mYTdmYzljMjQgMTAwNjQ0Ci0tLS0gYS9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvZ3Nz YXBpX3JlcGwvZ3NzYXBpX3JlcGxfdGVzdC5weQotKysrIGIvZGlyc3J2dGVzdHMvdGVzdHMvc3Vp dGVzL2dzc2FwaV9yZXBsL2dzc2FwaV9yZXBsX3Rlc3QucHkKLUBAIC0xMCw3ICsxMCw3IEBAIGlt cG9ydCBweXRlc3QKLSBmcm9tIGxpYjM4OS50YXNrcyBpbXBvcnQgKgotIGZyb20gbGliMzg5LnV0 aWxzIGltcG9ydCAqCi0gZnJvbSBsaWIzODkuYWdyZWVtZW50IGltcG9ydCAqCi0tZnJvbSBsaWIz ODkudG9wb2xvZ2llcyBpbXBvcnQgdG9wb2xvZ3lfbTIKLStmcm9tIGxpYjM4OS50b3BvbG9naWVz IGltcG9ydCB0b3BvbG9neV9tMl9nc3NhcGksIGdzc2FwaV9hY2sKLSAKLSBweXRlc3RtYXJrID0g cHl0ZXN0Lm1hcmsudGllcjIKLSAKLUBAIC02OSwyNSArNjksOCBAQCBkZWYgX2FsbG93X21hY2hp bmVfYWNjb3VudChpbnN0LCBuYW1lKToKLSAgICAgICAgIChsZGFwLk1PRF9SRVBMQUNFLCAnbnNE UzVSZXBsaWNhQmluZEROJywgZiJ1aWQ9e25hbWV9LG91PU1hY2hpbmVzLHtERUZBVUxUX1NVRkZJ WH0iLmVuY29kZSgndXRmLTgnKSkKLSAgICAgXSkKLSAKLS1kZWYgX3ZlcmlmeV9ldGNfaG9zdHMo KToKLS0gICAgI0NoZWNrIGlmIC9ldGMvaG9zdHMgaXMgY29tcGF0aWJsZSB3aXRoIHRoZSB0ZXN0 Ci0tICAgIE5FRURFRF9IT1NUUyA9ICggKCdsZGFwa2RjLmV4YW1wbGUuY29tJywgJzEyNy4wLjAu MScpLAotLSAgICAgICAgICAgICAgICAgICAgICgnbGRhcGtkYzEuZXhhbXBsZS5jb20nLCAnMTI3 LjAuMS4xJyksCi0tICAgICAgICAgICAgICAgICAgICAgKCdsZGFwa2RjMi5leGFtcGxlLmNvbScs ICcxMjcuMC4yLjEnKSkKLS0gICAgZm91bmRfaG9zdHMgPSB7fQotLSAgICB3aXRoIG9wZW4oJy9l dGMvaG9zdHMnLCdyJykgYXMgZjoKLS0gICAgICAgIGZvciBsIGluIGY6Ci0tICAgICAgICAgICAg cyA9IGwuc3BsaXQoKQotLSAgICAgICAgICAgIGlmIGxlbihzKSA8IDI6Ci0tICAgICAgICAgICAg ICAgIGNvbnRpbnVlCi0tICAgICAgICAgICAgZm9yIG5oIGluIE5FRURFRF9IT1NUUzoKLS0gICAg ICAgICAgICAgICAgaWYgKHNbMF0gPT0gbmhbMV0gYW5kIHNbMV0gPT0gbmhbMF0pOgotLSAgICAg ICAgICAgICAgICAgICAgZm91bmRfaG9zdHNbc1sxXV0gPSBUcnVlCi0tICAgIHJldHVybiBsZW4o Zm91bmRfaG9zdHMpID09IGxlbihORUVERURfSE9TVFMpCi0tCi0tQHB5dGVzdC5tYXJrLnNraXBp Zihub3QgX3ZlcmlmeV9ldGNfaG9zdHMoKSwgcmVhc29uPSIvZXRjL2hvc3RzIGRvZXMgbm90IGNv bnRhaW5zIHRoZSBuZWVkZWQgaG9zdHMuIikKLS1AcHl0ZXN0Lm1hcmsuc2tpcGlmKFRydWUsIHJl YXNvbj0iVGVzdCBkaXNhYmxlZCBiZWNhdXNlIGl0IHJlcXVpcmVzIHNwZWNpZmljIGtlcmJlcm9z IHJlcXVpcmVtZW50IChzZXJ2ZXIgcHJpbmNpcGFsLCBrZXl0YWIsIGV0YyAuLi4iKQotLWRlZiB0 ZXN0X2dzc2FwaV9yZXBsKHRvcG9sb2d5X20yKToKLStAZ3NzYXBpX2FjawotK2RlZiB0ZXN0X2dz c2FwaV9yZXBsKHRvcG9sb2d5X20yX2dzc2FwaSk6Ci0gICAgICIiIlRlc3QgZ3NzYXBpIGF1dGhl bnRpY2F0ZWQgcmVwbGljYXRpb24gYWdyZWVtZW50IG9mIHR3byBzdXBwbGllcnMgdXNpbmcgS0RD Ci0gCi0gICAgIDppZDogNTUyODUwYWEtYWZjMy00NzNlLTljMzktYWFlODAyYjQ2ZjExCi1AQCAt MTEyLDggKzk1LDggQEAgZGVmIHRlc3RfZ3NzYXBpX3JlcGwodG9wb2xvZ3lfbTIpOgotICAgICAg ICAgIDYuIFRlc3QgVXNlciBzaG91bGQgYmUgY3JlYXRlZCBvbiBNMSBhbmQgTTIgYm90aAotICAg ICAgICAgIDcuIFRlc3QgVXNlciBzaG91bGQgYmUgY3JlYXRlZCBvbiBNMSBhbmQgTTIgYm90aAot ICAgICAiIiIKLS0gICAgc3VwcGxpZXIxID0gdG9wb2xvZ3lfbTIubXNbInN1cHBsaWVyMSJdCi0t ICAgIHN1cHBsaWVyMiA9IHRvcG9sb2d5X20yLm1zWyJzdXBwbGllcjIiXQotKyAgICBzdXBwbGll cjEgPSB0b3BvbG9neV9tMl9nc3NhcGkubXNbInN1cHBsaWVyMSJdCi0rICAgIHN1cHBsaWVyMiA9 IHRvcG9sb2d5X20yX2dzc2FwaS5tc1sic3VwcGxpZXIyIl0KLSAKLSAgICAgIyBDcmVhdGUgdGhl IGxvY2F0aW9ucyBvbiBlYWNoIHN1cHBsaWVyIGZvciB0aGUgb3RoZXIgdG8gYmluZCB0by4KLSAg ICAgX2NyZWF0ZV9tYWNoaW5lX291KHN1cHBsaWVyMSkKLUBAIC0xMzQsMTAgKzExNyw5IEBAIGRl ZiB0ZXN0X2dzc2FwaV9yZXBsKHRvcG9sb2d5X20yKToKLSAgICAgIyBDcmVhdGluZyBhZ3JlZW1l bnQgZnJvbSBzdXBwbGllciAxIHRvIHN1cHBsaWVyIDIKLSAKLSAgICAgIyBTZXQgdGhlIHJlcGxp Y2EgYmluZCBtZXRob2QgdG8gc2FzbCBnc3NhcGkKLS0gICAgcHJvcGVydGllcyA9IHtSQV9OQU1F OiByJ21lVG9fJGhvc3Q6JHBvcnQnLAotKyAgICBwcm9wZXJ0aWVzID0ge1JBX05BTUU6ICdtZVRv XycgKyBzdXBwbGllcjIuaG9zdCArICc6JyArIHN0cihzdXBwbGllcjIucG9ydCksCi0gICAgICAg ICAgICAgICAgICAgUkFfTUVUSE9EOiAnU0FTTC9HU1NBUEknLAotICAgICAgICAgICAgICAgICAg IFJBX1RSQU5TUE9SVF9QUk9UOiBkZWZhdWx0UHJvcGVydGllc1tSRVBMSUNBVElPTl9UUkFOU1BP UlRdfQotLSAgICBzdXBwbGllcjEuYWdyZWVtZW50LmRlbGV0ZShzdWZmaXg9U1VGRklYLCBjb25z dW1lcl9ob3N0PXN1cHBsaWVyMi5ob3N0LCBjb25zdW1lcl9wb3J0PXN1cHBsaWVyMi5wb3J0KQot ICAgICBtMV9tMl9hZ210ID0gc3VwcGxpZXIxLmFncmVlbWVudC5jcmVhdGUoc3VmZml4PVNVRkZJ WCwgaG9zdD1zdXBwbGllcjIuaG9zdCwgcG9ydD1zdXBwbGllcjIucG9ydCwgcHJvcGVydGllcz1w cm9wZXJ0aWVzKQotICAgICBpZiBub3QgbTFfbTJfYWdtdDoKLSAgICAgICAgIGxvZy5mYXRhbCgi RmFpbCB0byBjcmVhdGUgYSBzdXBwbGllciAtPiBzdXBwbGllciByZXBsaWNhIGFncmVlbWVudCIp Ci1AQCAtMTQ3LDEwICsxMjksOSBAQCBkZWYgdGVzdF9nc3NhcGlfcmVwbCh0b3BvbG9neV9tMik6 Ci0gICAgICMgQ3JlYXRpbmcgYWdyZWVtZW50IGZyb20gc3VwcGxpZXIgMiB0byBzdXBwbGllciAx Ci0gCi0gICAgICMgU2V0IHRoZSByZXBsaWNhIGJpbmQgbWV0aG9kIHRvIHNhc2wgZ3NzYXBpCi0t ICAgIHByb3BlcnRpZXMgPSB7UkFfTkFNRTogcidtZVRvXyRob3N0OiRwb3J0JywKLSsgICAgcHJv cGVydGllcyA9IHtSQV9OQU1FOiAnbWVUb18nICsgc3VwcGxpZXIxLmhvc3QgKyAnOicgKyBzdHIo c3VwcGxpZXIxLnBvcnQpLAotICAgICAgICAgICAgICAgICAgIFJBX01FVEhPRDogJ1NBU0wvR1NT QVBJJywKLSAgICAgICAgICAgICAgICAgICBSQV9UUkFOU1BPUlRfUFJPVDogZGVmYXVsdFByb3Bl cnRpZXNbUkVQTElDQVRJT05fVFJBTlNQT1JUXX0KLS0gICAgc3VwcGxpZXIyLmFncmVlbWVudC5k ZWxldGUoc3VmZml4PVNVRkZJWCwgY29uc3VtZXJfaG9zdD1zdXBwbGllcjEuaG9zdCwgY29uc3Vt ZXJfcG9ydD1zdXBwbGllcjEucG9ydCkKLSAgICAgbTJfbTFfYWdtdCA9IHN1cHBsaWVyMi5hZ3Jl ZW1lbnQuY3JlYXRlKHN1ZmZpeD1TVUZGSVgsIGhvc3Q9c3VwcGxpZXIxLmhvc3QsIHBvcnQ9c3Vw cGxpZXIxLnBvcnQsIHByb3BlcnRpZXM9cHJvcGVydGllcykKLSAgICAgaWYgbm90IG0yX20xX2Fn bXQ6Ci0gICAgICAgICBsb2cuZmF0YWwoIkZhaWwgdG8gY3JlYXRlIGEgc3VwcGxpZXIgLT4gc3Vw cGxpZXIgcmVwbGljYSBhZ3JlZW1lbnQiKQotQEAgLTE2OSw5ICsxNTAsMTUgQEAgZGVmIHRlc3Rf Z3NzYXBpX3JlcGwodG9wb2xvZ3lfbTIpOgotIAotICAgICAjIENoZWNrIHJlcGxpY2F0aW9uIGlz IHdvcmtpbmcuLi4KLSAgICAgaWYgc3VwcGxpZXIxLnRlc3RSZXBsaWNhdGlvbihERUZBVUxUX1NV RkZJWCwgc3VwcGxpZXIyKToKLS0gICAgICAgIGxvZy5pbmZvKCdSZXBsaWNhdGlvbiBpcyB3b3Jr aW5nLicpCi0rICAgICAgICBsb2cuaW5mbygnUmVwbGljYXRpb24gaXMgd29ya2luZzogc3VwcGxp ZXIxIC0+IHN1cHBsaWVyMicpCi0gICAgIGVsc2U6Ci0tICAgICAgICBsb2cuZmF0YWwoJ1JlcGxp Y2F0aW9uIGlzIG5vdCB3b3JraW5nLicpCi0rICAgICAgICBsb2cuZmF0YWwoJ1JlcGxpY2F0aW9u IGlzIG5vdCB3b3JraW5nOiBzdXBwbGllcjEgLT4gc3VwcGxpZXIyJykKLSsgICAgICAgIGFzc2Vy dCBGYWxzZQotKwotKyAgICBpZiBzdXBwbGllcjIudGVzdFJlcGxpY2F0aW9uKERFRkFVTFRfU1VG RklYLCBzdXBwbGllcjEpOgotKyAgICAgICAgbG9nLmluZm8oJ1JlcGxpY2F0aW9uIGlzIHdvcmtp bmc6IHN1cHBsaWVyMiAtPiBzdXBwbGllcjEnKQotKyAgICBlbHNlOgotKyAgICAgICAgbG9nLmZh dGFsKCdSZXBsaWNhdGlvbiBpcyBub3Qgd29ya2luZzogc3VwcGxpZXIyIC0+IHN1cHBsaWVyMScp Ci0gICAgICAgICBhc3NlcnQgRmFsc2UKLSAKLSAgICAgIyBBZGQgYSB1c2VyIHRvIHN1cHBsaWVy IDEKLWRpZmYgLS1naXQgYS9zcmMvbGliMzg5L2xpYjM4OS90b3BvbG9naWVzLnB5IGIvc3JjL2xp YjM4OS9saWIzODkvdG9wb2xvZ2llcy5weQotaW5kZXggMzMzNDFmNjY5Li44NGU2MjBjYjMgMTAw NjQ0Ci0tLS0gYS9zcmMvbGliMzg5L2xpYjM4OS90b3BvbG9naWVzLnB5Ci0rKysgYi9zcmMvbGli Mzg5L2xpYjM4OS90b3BvbG9naWVzLnB5Ci1AQCAtNDk5LDYgKzQ5OSw2MyBAQCBkZWYgdG9wb2xv Z3lfbTIocmVxdWVzdCk6Ci0gICAgIHRvcG9sb2d5LmxvZ2NhcCA9IExvZ0NhcHR1cmUoKQotICAg ICByZXR1cm4gdG9wb2xvZ3kKLSAKLStAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIpCi0r ZGVmIHRvcG9sb2d5X20yX2dzc2FwaShyZXF1ZXN0KToKLSsgICAgIiIiQ3JlYXRlIFJlcGxpY2F0 aW9uIERlcGxveW1lbnQgd2l0aCB0d28gc3VwcGxpZXJzIHdpdGggR1NTQVBJIGVuYWJsZWQuCi0r Ci0rICAgIFNpbWlsYXIgdG8gdG9wb2xvZ3lfc3RfZ3NzYXBpIGJ1dCBmb3IgdHdvIHN1cHBsaWVy cy4gQ29uZmlndXJlcyBLZXJiZXJvcwotKyAgICByZWFsbSwgcHJpbmNpcGFscyBhbmQga2V5dGFi cyBmb3IgbGRhcC9sZGFwa2RjMS48ZG9tYWluPiBhbmQgbGRhcC9sZGFwa2RjMi48ZG9tYWluPiwK LSsgICAgU0FTTCBtYXBwaW5ncywgYW5kIGRpc2FibGVzIFNTTCBwb3J0IG9uIGJvdGggaW5zdGFu Y2VzIHNvIEdTU0FQSSBjYW4gYmUgdXNlZC4KLSsgICAgIiIiCi0rICAgIGhvc3RuYW1lID0gc29j a2V0LmdldGhvc3RuYW1lKCkuc3BsaXQoJy4nLCAxKQotKyAgICBhc3NlcnQgbGVuKGhvc3RuYW1l KSA9PSAyCi0rICAgIGRvbWFpbiA9IGhvc3RuYW1lWzFdCi0rICAgIFJFQUxNID0gZG9tYWluLnVw cGVyKCkKLSsgICAgaG9zdF9zdXBwbGllcl8xID0gJ2xkYXBrZGMxLicgKyBkb21haW4KLSsgICAg aG9zdF9zdXBwbGllcl8yID0gJ2xkYXBrZGMyLicgKyBkb21haW4KLSsKLSsgICAgdG9wb2xvZ3kg PSBjcmVhdGVfdG9wb2xvZ3koe1JlcGxpY2FSb2xlLlNVUFBMSUVSOiAyfSwgcmVxdWVzdD1yZXF1 ZXN0LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhbnVwX2NiPWxhbWJkYSB4 OiBrcmIuZGVzdHJveV9yZWFsbSgpKQotKwotKyAgICBzdXBwbGllcjEgPSB0b3BvbG9neS5tc1si c3VwcGxpZXIxIl0KLSsgICAgc3VwcGxpZXIyID0gdG9wb2xvZ3kubXNbInN1cHBsaWVyMiJdCi0r ICAgIHN1cHBsaWVyMS5ob3N0ID0gaG9zdF9zdXBwbGllcl8xCi0rICAgIHN1cHBsaWVyMi5ob3N0 ID0gaG9zdF9zdXBwbGllcl8yCi0rCi0rICAgIGtyYiA9IE1pdEtyYjUocmVhbG09UkVBTE0sIGRl YnVnPURFQlVHR0lORykKLSsgICAgaWYga3JiLmNoZWNrX3JlYWxtKCk6Ci0rICAgICAgICBrcmIu ZGVzdHJveV9yZWFsbSgpCi0rICAgIGtyYi5jcmVhdGVfcmVhbG0oKQotKwotKyAgICBrcmIuY3Jl YXRlX3ByaW5jaXBhbChwcmluY2lwYWw9ZidsZGFwL3tob3N0X3N1cHBsaWVyXzF9JykKLSsgICAg a3JiLmNyZWF0ZV9wcmluY2lwYWwocHJpbmNpcGFsPWYnbGRhcC97aG9zdF9zdXBwbGllcl8yfScp Ci0rICAgIGtyYi5jcmVhdGVfa2V5dGFiKHByaW5jaXBhbD1mJ2xkYXAve2hvc3Rfc3VwcGxpZXJf MX0nLCBrZXl0YWI9Jy9ldGMva3JiNS5rZXl0YWInKQotKyAgICBrcmIuY3JlYXRlX2tleXRhYihw cmluY2lwYWw9ZidsZGFwL3tob3N0X3N1cHBsaWVyXzJ9Jywga2V5dGFiPScvZXRjL2tyYjUua2V5 dGFiJykKLSsKLSsgICAgb3MuY2hvd24oJy9ldGMva3JiNS5rZXl0YWInLCBzdXBwbGllcjEuZ2V0 X3VzZXJfdWlkKCksIHN1cHBsaWVyMS5nZXRfZ3JvdXBfZ2lkKCkpCi0rCi0rICAgIGZvciBpbnN0 LCBob3N0IGluIFsoc3VwcGxpZXIxLCBob3N0X3N1cHBsaWVyXzEpLCAoc3VwcGxpZXIyLCBob3N0 X3N1cHBsaWVyXzIpXToKLSsgICAgICAgIHNhc2xtYXBwaW5ncyA9IFNhc2xNYXBwaW5ncyhpbnN0 KQotKyAgICAgICAgZm9yIG0gaW4gc2FzbG1hcHBpbmdzLmxpc3QoKToKLSsgICAgICAgICAgICBt LmRlbGV0ZSgpCi0rICAgICAgICBzYXNsbWFwcGluZ3MuY3JlYXRlKHByb3BlcnRpZXM9ewotKyAg ICAgICAgICAgICdjbic6ICdzdWZmaXggbWFwJywKLSsgICAgICAgICAgICAnbnNTYXNsTWFwUmVn ZXhTdHJpbmcnOiAnXFwoLipcXCknLAotKyAgICAgICAgICAgICduc1Nhc2xNYXBCYXNlRE5UZW1w bGF0ZSc6IGluc3QuY3JlYXRpb25fc3VmZml4LAotKyAgICAgICAgICAgICduc1Nhc2xNYXBGaWx0 ZXJUZW1wbGF0ZSc6ICcodWlkPVxcMSknCi0rICAgICAgICB9KQotKyAgICAgICAgaW5zdC5yZWFs bSA9IGtyYgotKyAgICAgICAgaW5zdC5jb25maWcuc2V0KCduc3NsYXBkLWxvY2FsaG9zdCcsIGhv c3QpCi0rICAgICAgICBpbnN0LnNzbHBvcnQgPSBOb25lCi0rCi0rICAgIHN1cHBsaWVyMS5yZXN0 YXJ0KCkKLSsgICAgc3VwcGxpZXIyLnJlc3RhcnQoKQotKyAgICBzdXBwbGllcjEuY2xlYXJUbXBE aXIoX19maWxlX18pCi0rICAgIHN1cHBsaWVyMi5jbGVhclRtcERpcihfX2ZpbGVfXykKLSsKLSsg ICAgdG9wb2xvZ3kubG9nY2FwID0gTG9nQ2FwdHVyZSgpCi0rICAgIHJldHVybiB0b3BvbG9neQot KwotIAotIEBweXRlc3QuZml4dHVyZShzY29wZT0ibW9kdWxlIikKLSBkZWYgdG9wb2xvZ3lfbTMo cmVxdWVzdCk6Ci0tLSAKLTIuNTMuMAotCgpkaWZmIC0tZ2l0IGEvMDA1Ni1Jc3N1ZS02NzUzLVBv cnQtdGlja2V0LTQ5MDM5LXRlc3QucGF0Y2ggYi8wMDU2LUlzc3VlLTY3NTMtUG9ydC10aWNrZXQt NDkwMzktdGVzdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2RkNTUwZS4u MDAwMDAwMAotLS0gYS8wMDU2LUlzc3VlLTY3NTMtUG9ydC10aWNrZXQtNDkwMzktdGVzdC5wYXRj aAorKysgL2Rldi9udWxsCkBAIC0xLDI2MCArMCwwIEBACi1Gcm9tIGE0YWUyOWFmYzY1NDdlODIz MWI5MzNjZmExYjk1ZDdmN2IzN2EyNWMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBM ZW5rYSBEb3Vkb3ZhIDxscnl6bmFyb0ByZWRoYXQuY29tPgotRGF0ZTogVHVlLCAxMCBGZWIgMjAy NiAwNTo0NTozMiArMDEwMAotU3ViamVjdDogW1BBVENIXSBJc3N1ZSA2NzUzIC0gUG9ydCB0aWNr ZXQgNDkwMzkgdGVzdAotCi1EZXNjcmlwdGlvbjoKLVBvcnQgdGlja2V0IDQ5MDM5IHRlc3QgaW50 bwotZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL3Bhc3N3b3JkL3B3cF90ZXN0LnB5Ci0KLVJlbGF0 ZXM6ICM2NzUzCi1BdXRob3I6IExlbmthIERvdWRvdmEKLUFzc2lzdGVkIGJ5OiBDdXJzb3IKLVJl dmlld2VyOiBCYXJib3JhIFNpbW9ub3ZhLCBWaWt0b3IgQXNoaXJvdgotLS0tCi0gZGlyc3J2dGVz dHMvdGVzdHMvc3VpdGVzL3Bhc3N3b3JkL3B3cF90ZXN0LnB5IHwgIDgzICsrKysrKysrKysrLQot IGRpcnNydnRlc3RzL3Rlc3RzL3RpY2tldHMvdGlja2V0NDkwMzlfdGVzdC5weSB8IDEyNyAtLS0t LS0tLS0tLS0tLS0tLS0KLSAyIGZpbGVzIGNoYW5nZWQsIDgyIGluc2VydGlvbnMoKyksIDEyOCBk ZWxldGlvbnMoLSkKLSBkZWxldGUgbW9kZSAxMDA2NDQgZGlyc3J2dGVzdHMvdGVzdHMvdGlja2V0 cy90aWNrZXQ0OTAzOV90ZXN0LnB5Ci0KLWRpZmYgLS1naXQgYS9kaXJzcnZ0ZXN0cy90ZXN0cy9z dWl0ZXMvcGFzc3dvcmQvcHdwX3Rlc3QucHkgYi9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvcGFz c3dvcmQvcHdwX3Rlc3QucHkKLWluZGV4IDY2M2Q5YmVhOS4uNmRhZTA4Y2IyIDEwMDY0NAotLS0t IGEvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL3Bhc3N3b3JkL3B3cF90ZXN0LnB5Ci0rKysgYi9k aXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvcGFzc3dvcmQvcHdwX3Rlc3QucHkKLUBAIC05LDExICs5 LDE0IEBACi0gIiIiCi0gCi0gaW1wb3J0IG9zCi0raW1wb3J0IHN1YnByb2Nlc3MKLSBpbXBvcnQg cHl0ZXN0Ci0gZnJvbSBsaWIzODkudG9wb2xvZ2llcyBpbXBvcnQgdG9wb2xvZ3lfc3QgYXMgdG9w bwotIGZyb20gbGliMzg5LmlkbS51c2VyIGltcG9ydCBVc2VyQWNjb3VudHMsIFVzZXJBY2NvdW50 Ci0tZnJvbSBsaWIzODkuX2NvbnN0YW50cyBpbXBvcnQgREVGQVVMVF9TVUZGSVgKLStmcm9tIGxp YjM4OS5pZG0uZGlyZWN0b3J5bWFuYWdlciBpbXBvcnQgRGlyZWN0b3J5TWFuYWdlcgotK2Zyb20g bGliMzg5Ll9jb25zdGFudHMgaW1wb3J0IERFRkFVTFRfU1VGRklYLCBQQVNTV09SRAotIGZyb20g bGliMzg5LmNvbmZpZyBpbXBvcnQgQ29uZmlnCi0rZnJvbSBsaWIzODkucHdwb2xpY3kgaW1wb3J0 IFB3UG9saWN5TWFuYWdlcgotIGZyb20gbGliMzg5LmlkbS5ncm91cCBpbXBvcnQgR3JvdXAKLSBm cm9tIGxpYjM4OS51dGlscyBpbXBvcnQgZHNfaXNfb2xkZXIKLSBpbXBvcnQgbGRhcAotQEAgLTUx Miw2ICs1MTUsODQgQEAgZGVmIHRlc3RfcGFzc3dvcmRsb2Nrb3V0KHRvcG8sIF9maXhfcGFzc3dv cmQpOgotICAgICBfY2hhbmdlX3Bhc3N3b3JkX3dpdGhfb3duKHRvcG8sIHVzZXIuZG4sICdkYnkz cnMyJywgJ3NlY3JldGVyJykKLSAKLSAKLStkZWYgdGVzdF9wYXNzd29yZF9tdXN0X2NoYW5nZV9p Z25vcmVzX21pbl9hZ2UodG9wbyk6Ci0rICAgICIiIlRlc3QgdGhhdCBwYXNzd29yZE1pbkFnZSBk b2VzIG5vdCBibG9jayBwYXNzd29yZCB1cGRhdGUgd2hlbiB0aGUgcGFzc3dvcmQgd2FzIHJlc2V0 LgotKwotKyAgICA6aWQ6IGExYjJjM2Q0LWU1ZjYtNDkwMy05YWJjLWRlZjAxMjM0NTY3OAotKyAg ICA6c2V0dXA6IFN0YW5kYWxvbmUgaW5zdGFuY2UKLSsgICAgOnN0ZXBzOgotKyAgICAgICAgMS4g RW5hYmxlIFRMUyAoZm9yIGxkYXBwYXNzd2QgU3RhcnRUTFMpCi0rICAgICAgICAyLiBTZXQgZ2xv YmFsIHBvbGljeSB2aWEgUHdQb2xpY3lNYW5hZ2VyOiBwYXNzd29yZE11c3RDaGFuZ2UsIHBhc3N3 b3JkRXhwLAotKyAgICAgICAgICAgcGFzc3dvcmRNYXhBZ2UsIHBhc3N3b3JkTWluQWdlIChoaWdo KSwgcGFzc3dvcmRDaGFuZ2UKLSsgICAgICAgIDMuIEJpbmQgYXMgRGlyZWN0b3J5IE1hbmFnZXIK LSsgICAgICAgIDQuIENyZWF0ZSB1c2VyCi0rICAgICAgICA1LiBSZXNldCB1c2VyIHBhc3N3b3Jk IGFzIERpcmVjdG9yeSBNYW5hZ2VyCi0rICAgICAgICA2LiBVc2VyIGJpbmRzIGFuZCBjaGFuZ2Vz IG93biBwYXNzd29yZCAobXVzdCBzdWNjZWVkOyBtaW4gYWdlIG11c3Qgbm90IGJsb2NrKQotKyAg ICAgICAgNy4gUmViaW5kIGFzIERpcmVjdG9yeSBNYW5hZ2VyLCByZXNldCB1c2VyIHBhc3N3b3Jk IGFnYWluCi0rICAgICAgICA4LiBSdW4gbGRhcHBhc3N3ZCBhcyB1c2VyIChTdGFydFRMUykgdG8g Y2hhbmdlIHBhc3N3b3JkIHRvIHBhc3N3b3JkMgotKyAgICAgICAgOS4gQmluZCBhcyB1c2VyIHdp dGggcGFzc3dvcmQyIHRvIHZlcmlmeQotKyAgICAgICAgMTAuIENsZWFudXA6IGRlbGV0ZSB1c2Vy Ci0rICAgIDpleHBlY3RlZHJlc3VsdHM6Ci0rICAgICAgICAxLiBUTFMgZW5hYmxlZAotKyAgICAg ICAgMi4gUG9saWN5IHNldCBzdWNjZXNzZnVsbHkKLSsgICAgICAgIDMuIEJpbmQgc3VjY2VlZHMK LSsgICAgICAgIDQuIFVzZXIgY3JlYXRlZAotKyAgICAgICAgNS4gUmVzZXQgc3VjY2VlZHMKLSsg ICAgICAgIDYuIFVzZXIgcGFzc3dvcmQgY2hhbmdlIHN1Y2NlZWRzIChtaW4gYWdlIGRvZXMgbm90 IGJsb2NrIGFmdGVyIHJlc2V0KQotKyAgICAgICAgNy4gUmVzZXQgc3VjY2VlZHMKLSsgICAgICAg IDguIGxkYXBwYXNzd2Qgc3VjY2VlZHMKLSsgICAgICAgIDkuIEJpbmQgc3VjY2VlZHMKLSsgICAg ICAgIDEwLiBVc2VyIGRlbGV0ZWQKLSsgICAgIiIiCi0rCi0rICAgIHRvcG8uc3RhbmRhbG9uZS5l bmFibGVfdGxzKCkKLSsKLSsgICAgcG9saWN5ID0gUHdQb2xpY3lNYW5hZ2VyKHRvcG8uc3RhbmRh bG9uZSkKLSsgICAgcG9saWN5LnNldF9nbG9iYWxfcG9saWN5KHByb3BlcnRpZXM9eyduc3NsYXBk LXB3cG9saWN5LWxvY2FsJzogJ29uJywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICdwYXNzd29yZE11c3RDaGFuZ2UnOiAnb24nLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJ3Bhc3N3b3JkRXhwJzogJ29uJywKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwYXNzd29yZE1heEFnZSc6ICc4NjQwMDAw MCcsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFzc3dvcmRN aW5BZ2UnOiAnODY0MDAwMCcsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAncGFzc3dvcmRDaGFuZ2UnOiAnb24nfSkKLSsgICAgZG0gPSBEaXJlY3RvcnlNYW5hZ2Vy KHRvcG8uc3RhbmRhbG9uZSkKLSsgICAgZG0uYmluZCgpCi0rCi0rICAgIHVzZXIgPSBfY3JlYXRl X3VzZXIodG9wbywgJ3VzZXInLCAnVGVzdCBVc2VyJywgJzEwMDInLCBQQVNTV09SRCkKLSsgICAg dHJ5OgotKyAgICAgICAgIyBSZXNldCBwYXNzd29yZCBhcyBEaXJlY3RvcnkgTWFuYWdlcgotKyAg ICAgICAgdXNlci5yZXBsYWNlKCd1c2VycGFzc3dvcmQnLCBQQVNTV09SRCkKLSsgICAgICAgIHRp bWUuc2xlZXAoMSkKLSsKLSsgICAgICAgICMgUmVzZXQgcGFzc3dvcmQgYXMgdXNlciAobXVzdCBz dWNjZWVkOyBtaW4gYWdlIG11c3Qgbm90IGJsb2NrIGFmdGVyIHJlc2V0KQotKyAgICAgICAgdXNl ci5yZWJpbmQoUEFTU1dPUkQpCi0rICAgICAgICB1c2VyLnJlcGxhY2UoJ3VzZXJwYXNzd29yZCcs IFBBU1NXT1JEKQotKyAgICAgICAgdGltZS5zbGVlcCgxKQotKwotKyAgICAgICAgIyBSZXNldCBh Z2FpbiBhcyBEaXJlY3RvcnkgTWFuYWdlcgotKyAgICAgICAgZG0ucmViaW5kKFBBU1NXT1JEKQot KyAgICAgICAgdXNlci5yZXBsYWNlKCd1c2VycGFzc3dvcmQnLCBQQVNTV09SRCkKLSsgICAgICAg IHRpbWUuc2xlZXAoMSkKLSsKLSsgICAgICAgICMgQ2hhbmdlIHBhc3N3b3JkIHRocm91Z2ggbGRh cHBhc3N3ZCBhcyB1c2VyIHRvIGVuc3VyZSBmdW5jdGlvbmFsaXR5Ci0rICAgICAgICBlbnYgPSBv cy5lbnZpcm9uLmNvcHkoKQotKyAgICAgICAgZW52WydMREFQVExTX0NBQ0VSVERJUiddID0gdG9w by5zdGFuZGFsb25lLmdldF9jZXJ0X2RpcigpCi0rICAgICAgICBjbWQgPSBbCi0rICAgICAgICAg ICAgJ2xkYXBwYXNzd2QnLAotKyAgICAgICAgICAgICctWlonLCctSCcsIGYibGRhcDovL3t0b3Bv LnN0YW5kYWxvbmUuaG9zdH06e3RvcG8uc3RhbmRhbG9uZS5wb3J0fSIsCi0rICAgICAgICAgICAg Jy1EJywgdXNlci5kbiwgJy13JywgUEFTU1dPUkQsCi0rICAgICAgICAgICAgJy1hJywgUEFTU1dP UkQsICctcycsICdwYXNzd29yZDInLAotKyAgICAgICAgICAgIHVzZXIuZG4sCi0rICAgICAgICBd Ci0rICAgICAgICByZXN1bHQgPSBzdWJwcm9jZXNzLnJ1bihjbWQsIGVudj1lbnYsIGNhcHR1cmVf b3V0cHV0PVRydWUsIHRleHQ9VHJ1ZSkKLSsgICAgICAgIGFzc2VydCByZXN1bHQucmV0dXJuY29k ZSA9PSAwLCBmJ2xkYXBwYXNzd2QgZmFpbGVkOiB7cmVzdWx0LnN0ZGVycn0nCi0rCi0rICAgICAg ICAjIEJpbmQgYXMgdXNlciB3aXRoIG5ldyBwYXNzd29yZAotKyAgICAgICAgdXNlci5iaW5kKCdw YXNzd29yZDInKQotKyAgICBmaW5hbGx5OgotKyAgICAgICAgZG0ucmViaW5kKFBBU1NXT1JEKQot KyAgICAgICAgdXNlci5kZWxldGUoKQotKwotKwotIGlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6 Ci0gICAgIENVUlJFTlRfRklMRSA9IG9zLnBhdGgucmVhbHBhdGgoX19maWxlX18pCi0gICAgIHB5 dGVzdC5tYWluKCItcyAtdiAlcyIgJSBDVVJSRU5UX0ZJTEUpCi1kaWZmIC0tZ2l0IGEvZGlyc3J2 dGVzdHMvdGVzdHMvdGlja2V0cy90aWNrZXQ0OTAzOV90ZXN0LnB5IGIvZGlyc3J2dGVzdHMvdGVz dHMvdGlja2V0cy90aWNrZXQ0OTAzOV90ZXN0LnB5Ci1kZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK LWluZGV4IDAzMTNmNjlhMy4uMDAwMDAwMDAwCi0tLS0gYS9kaXJzcnZ0ZXN0cy90ZXN0cy90aWNr ZXRzL3RpY2tldDQ5MDM5X3Rlc3QucHkKLSsrKyAvZGV2L251bGwKLUBAIC0xLDEyNyArMCwwIEBA Ci0tIyAtLS0gQkVHSU4gQ09QWVJJR0hUIEJMT0NLIC0tLQotLSMgQ29weXJpZ2h0IChDKSAyMDIy IFJlZCBIYXQsIEluYy4KLS0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0tIwotLSMgTGljZW5zZTog R1BMICh2ZXJzaW9uIDMgb3IgYW55IGxhdGVyIHZlcnNpb24pLgotLSMgU2VlIExJQ0VOU0UgZm9y IGRldGFpbHMuCi0tIyAtLS0gRU5EIENPUFlSSUdIVCBCTE9DSyAtLS0KLS0jCi0taW1wb3J0IHRp bWUKLS1pbXBvcnQgbGRhcAotLWltcG9ydCBsb2dnaW5nCi0taW1wb3J0IHB5dGVzdAotLWltcG9y dCBvcwotLWZyb20gbGliMzg5IGltcG9ydCBFbnRyeQotLWZyb20gbGliMzg5Ll9jb25zdGFudHMg aW1wb3J0ICoKLS1mcm9tIGxpYjM4OS5wcm9wZXJ0aWVzIGltcG9ydCAqCi0tZnJvbSBsaWIzODku dGFza3MgaW1wb3J0ICoKLS1mcm9tIGxpYjM4OS51dGlscyBpbXBvcnQgKgotLWZyb20gbGliMzg5 LnRvcG9sb2dpZXMgaW1wb3J0IHRvcG9sb2d5X3N0IGFzIHRvcG8KLS1mcm9tIGxpYjM4OS5wd3Bv bGljeSBpbXBvcnQgUHdQb2xpY3lNYW5hZ2VyCi0tCi0tCi0tcHl0ZXN0bWFyayA9IHB5dGVzdC5t YXJrLnRpZXIyCi0tCi0tREVCVUdHSU5HID0gb3MuZ2V0ZW52KCJERUJVR0dJTkciLCBkZWZhdWx0 PUZhbHNlKQotLWlmIERFQlVHR0lORzoKLS0gICAgbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18p LnNldExldmVsKGxvZ2dpbmcuREVCVUcpCi0tZWxzZToKLS0gICAgbG9nZ2luZy5nZXRMb2dnZXIo X19uYW1lX18pLnNldExldmVsKGxvZ2dpbmcuSU5GTykKLS1sb2cgPSBsb2dnaW5nLmdldExvZ2dl cihfX25hbWVfXykKLS0KLS1VU0VSX0ROID0gJ3VpZD11c2VyLGRjPWV4YW1wbGUsZGM9Y29tJwot LQotLQotLWRlZiB0ZXN0X3RpY2tldDQ5MDM5KHRvcG8pOgotLSAgICAiIiJUZXN0ICJwYXNzd29y ZCBtdXN0IGNoYW5nZSIgdmVyc2VzICJwYXNzd29yZCBtaW4gYWdlIi4gIE1pbiBhZ2Ugc2hvdWxk IG5vdAotLSAgICBibG9jayBwYXNzd29yZCB1cGRhdGUgaWYgdGhlIHBhc3N3b3JkIHdhcyByZXNl dC4KLS0gICAgIiIiCi0tCi0tICAgICMgU2V0dXAgU1NMIChmb3IgbGRhcHBhc3N3ZCB0ZXN0KQot LSAgICB0b3BvLnN0YW5kYWxvbmUuZW5hYmxlX3RscygpCi0tCi0tICAgICMgQ29uZmlndXJlIHBh c3N3b3JkIHBvbGljeQotLSAgICB0cnk6Ci0tICAgICAgICBwb2xpY3kgPSBQd1BvbGljeU1hbmFn ZXIodG9wby5zdGFuZGFsb25lKQotLSAgICAgICAgcG9saWN5LnNldF9nbG9iYWxfcG9saWN5KHBy b3BlcnRpZXM9eyduc3NsYXBkLXB3cG9saWN5LWxvY2FsJzogJ29uJywKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFzc3dvcmRNdXN0Q2hhbmdlJzogJ29u JywKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFzc3dv cmRFeHAnOiAnb24nLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICdwYXNzd29yZE1heEFnZSc6ICc4NjQwMDAwMCcsCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJ3Bhc3N3b3JkTWluQWdlJzogJzg2NDAwMDAnLAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwYXNzd29yZENoYW5n ZSc6ICdvbid9KQotLSAgICBleGNlcHQgbGRhcC5MREFQRXJyb3IgYXMgZToKLS0gICAgICAgIGxv Zy5mYXRhbCgnRmFpbGVkIHRvIHNldCBwYXNzd29yZCBwb2xpY3k6ICcgKyBzdHIoZSkpCi0tCi0t ICAgICMgQWRkIHVzZXIsIGJpbmQsIGFuZCBzZXQgcGFzc3dvcmQKLS0gICAgdHJ5OgotLSAgICAg ICAgdG9wby5zdGFuZGFsb25lLmFkZF9zKEVudHJ5KChVU0VSX0ROLCB7Ci0tICAgICAgICAgICAg J29iamVjdGNsYXNzJzogJ3RvcCBleHRlbnNpYmxlT2JqZWN0Jy5zcGxpdCgpLAotLSAgICAgICAg ICAgICd1aWQnOiAndXNlcjEnLAotLSAgICAgICAgICAgICd1c2VycGFzc3dvcmQnOiBQQVNTV09S RAotLSAgICAgICAgfSkpKQotLSAgICBleGNlcHQgbGRhcC5MREFQRXJyb3IgYXMgZToKLS0gICAg ICAgIGxvZy5mYXRhbCgnRmFpbGVkIHRvIGFkZCB1c2VyOiBlcnJvciAnICsgZS5hcmdzWzBdWydk ZXNjJ10pCi0tICAgICAgICBhc3NlcnQgRmFsc2UKLS0KLS0gICAgIyBSZXNldCBwYXNzd29yZCBh cyBSb290RE4KLS0gICAgdHJ5OgotLSAgICAgICAgdG9wby5zdGFuZGFsb25lLm1vZGlmeV9zKFVT RVJfRE4sIFsobGRhcC5NT0RfUkVQTEFDRSwgJ3VzZXJwYXNzd29yZCcsIGVuc3VyZV9ieXRlcyhQ QVNTV09SRCkpXSkKLS0gICAgZXhjZXB0IGxkYXAuTERBUEVycm9yIGFzIGU6Ci0tICAgICAgICBs b2cuZmF0YWwoJ0ZhaWxlZCB0byBiaW5kOiBlcnJvciAnICsgZS5hcmdzWzBdWydkZXNjJ10pCi0t ICAgICAgICBhc3NlcnQgRmFsc2UKLS0KLS0gICAgdGltZS5zbGVlcCgxKQotLQotLSAgICAjIFJl c2V0IHBhc3N3b3JkIGFzIHVzZXIKLS0gICAgdHJ5OgotLSAgICAgICAgdG9wby5zdGFuZGFsb25l LnNpbXBsZV9iaW5kX3MoVVNFUl9ETiwgUEFTU1dPUkQpCi0tICAgIGV4Y2VwdCBsZGFwLkxEQVBF cnJvciBhcyBlOgotLSAgICAgICAgbG9nLmZhdGFsKCdGYWlsZWQgdG8gYmluZDogZXJyb3IgJyAr IGUuYXJnc1swXVsnZGVzYyddKQotLSAgICAgICAgYXNzZXJ0IEZhbHNlCi0tCi0tICAgIHRyeToK LS0gICAgICAgIHRvcG8uc3RhbmRhbG9uZS5tb2RpZnlfcyhVU0VSX0ROLCBbKGxkYXAuTU9EX1JF UExBQ0UsICd1c2VycGFzc3dvcmQnLCBlbnN1cmVfYnl0ZXMoUEFTU1dPUkQpKV0pCi0tICAgIGV4 Y2VwdCBsZGFwLkxEQVBFcnJvciBhcyBlOgotLSAgICAgICAgbG9nLmZhdGFsKCdGYWlsZWQgdG8g Y2hhbmdlIHBhc3N3b3JkOiBlcnJvciAnICsgZS5hcmdzWzBdWydkZXNjJ10pCi0tICAgICAgICBh c3NlcnQgRmFsc2UKLS0KLS0gICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK LS0gICAgIyBNYWtlIHN1cmUgbGRhcHBhc3N3ZCBhbHNvIHdvcmtzCi0tICAgICMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0tCi0tICAgICMgUmVzZXQgcGFzc3dvcmQgYXMgUm9v dEROCi0tICAgIHRyeToKLS0gICAgICAgIHRvcG8uc3RhbmRhbG9uZS5zaW1wbGVfYmluZF9zKERO X0RNLCBQQVNTV09SRCkKLS0gICAgZXhjZXB0IGxkYXAuTERBUEVycm9yIGFzIGU6Ci0tICAgICAg ICBsb2cuZmF0YWwoJ0ZhaWxlZCB0byBiaW5kIGFzIHJvb3RkbjogZXJyb3IgJyArIGUuYXJnc1sw XVsnZGVzYyddKQotLSAgICAgICAgYXNzZXJ0IEZhbHNlCi0tCi0tICAgIHRyeToKLS0gICAgICAg IHRvcG8uc3RhbmRhbG9uZS5tb2RpZnlfcyhVU0VSX0ROLCBbKGxkYXAuTU9EX1JFUExBQ0UsICd1 c2VycGFzc3dvcmQnLCBlbnN1cmVfYnl0ZXMoUEFTU1dPUkQpKV0pCi0tICAgIGV4Y2VwdCBsZGFw LkxEQVBFcnJvciBhcyBlOgotLSAgICAgICAgbG9nLmZhdGFsKCdGYWlsZWQgdG8gYmluZDogZXJy b3IgJyArIGUuYXJnc1swXVsnZGVzYyddKQotLSAgICAgICAgYXNzZXJ0IEZhbHNlCi0tCi0tICAg IHRpbWUuc2xlZXAoMSkKLS0KLS0gICAgIyBSdW4gbGRhcHBhc3N3ZCBhcyB0aGUgVXNlci4KLS0g ICAgb3MuZW52aXJvblsiTERBUFRMU19DQUNFUlRESVIiXSA9IHRvcG8uc3RhbmRhbG9uZS5nZXRf Y2VydF9kaXIoKQotLSAgICBjbWQgPSAoJ2xkYXBwYXNzd2QnICsgJyAtaCAnICsgdG9wby5zdGFu ZGFsb25lLmhvc3QgKyAnIC1aIC1wIDM4OTAxIC1EICcgKyBVU0VSX0ROICsKLS0gICAgICAgICAg ICcgLXcgcGFzc3dvcmQgLWEgcGFzc3dvcmQgLXMgcGFzc3dvcmQyICcgKyBVU0VSX0ROKQotLSAg ICBvcy5zeXN0ZW0oY21kKQotLSAgICB0aW1lLnNsZWVwKDEpCi0tCi0tICAgIHRyeToKLS0gICAg ICAgIHRvcG8uc3RhbmRhbG9uZS5zaW1wbGVfYmluZF9zKFVTRVJfRE4sICJwYXNzd29yZDIiKQot LSAgICBleGNlcHQgbGRhcC5MREFQRXJyb3IgYXMgZToKLS0gICAgICAgIGxvZy5mYXRhbCgnRmFp bGVkIHRvIGJpbmQ6IGVycm9yICcgKyBlLmFyZ3NbMF1bJ2Rlc2MnXSkKLS0gICAgICAgIGFzc2Vy dCBGYWxzZQotLQotLSAgICBsb2cuaW5mbygnVGVzdCBQYXNzZWQnKQotLQotLQotLWlmIF9fbmFt ZV9fID09ICdfX21haW5fXyc6Ci0tICAgICMgUnVuIGlzb2xhdGVkCi0tICAgICMgLXMgZm9yIERF QlVHIG1vZGUKLS0gICAgQ1VSUkVOVF9GSUxFID0gb3MucGF0aC5yZWFscGF0aChfX2ZpbGVfXykK LS0gICAgcHl0ZXN0Lm1haW4oIi1zICVzIiAlIENVUlJFTlRfRklMRSkKLS0tIAotMi41My4wCi0K CmRpZmYgLS1naXQgYS8wMDU3LUlzc3VlLTU4NTMtVXBkYXRlLWNvbmNyZWFkLXRvLTAuNS4xMC5w YXRjaCBiLzAwNTctSXNzdWUtNTg1My1VcGRhdGUtY29uY3JlYWQtdG8tMC41LjEwLnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMjJlYjRlLi4wMDAwMDAwCi0tLSBhLzAwNTct SXNzdWUtNTg1My1VcGRhdGUtY29uY3JlYWQtdG8tMC41LjEwLnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsOTUyICswLDAgQEAKLUZyb20gMGUyZDljNDI4ODg3MzQ0NmRjYjNkOGJmZjYxYzU1OGZm MmI2NjgxYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFZpa3RvciBBc2hpcm92IDx2 YXNoaXJvdkByZWRoYXQuY29tPgotRGF0ZTogTW9uLCAyMyBGZWIgMjAyNiAwOTo0OTo1MiArMDEw MAotU3ViamVjdDogW1BBVENIXSBJc3N1ZSA1ODUzIC0gVXBkYXRlIGNvbmNyZWFkIHRvIDAuNS4x MAotCi1EZXNjcmlwdGlvbjoKLVVwZGF0ZSBjb25jcmVhZCB0byAwLjUuMTAgYW5kIHVwZGF0ZSBD YXJnby5sb2NrCi0KLVJlbGF0ZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS8zODlkcy8zODktZHMtYmFz ZS9pc3N1ZXMvNTg1MwotCi1SZXZpZXdlZCBieTogQGRyb2lkZWNrIChUaGFua3MhKQotLS0tCi0g c3JjL0NhcmdvLmxvY2sgICAgICAgICAgIHwgNTE1ICsrKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0tLQotIHNyYy9saWJyc2xhcGQvQ2FyZ28udG9tbCB8ICAgMiArLQotIDIgZmls ZXMgY2hhbmdlZCwgMzEyIGluc2VydGlvbnMoKyksIDIwNSBkZWxldGlvbnMoLSkKLQotZGlmZiAt LWdpdCBhL3NyYy9DYXJnby5sb2NrIGIvc3JjL0NhcmdvLmxvY2sKLWluZGV4IDg3YWVlZTg1Mi4u NDI1MzcxNDc4IDEwMDY0NAotLS0tIGEvc3JjL0NhcmdvLmxvY2sKLSsrKyBiL3NyYy9DYXJnby5s b2NrCi1AQCAtMiwyNyArMiwxOCBAQAotICMgSXQgaXMgbm90IGludGVuZGVkIGZvciBtYW51YWwg ZWRpdGluZy4KLSB2ZXJzaW9uID0gMwotIAotLVtbcGFja2FnZV1dCi0tbmFtZSA9ICJhZGRyMmxp bmUiCi0tdmVyc2lvbiA9ICIwLjI0LjIiCi0tc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0 aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgotLWNoZWNrc3VtID0gImRmYmUyNzdl NTZhMzc2MDAwODc3MDkwZGE4Mzc2NjBiNDQyN2FhZDUzMGUzMDI4ZDQ0ZTBiZmZlNGY4OWExYzEi Ci0tZGVwZW5kZW5jaWVzID0gWwotLSAiZ2ltbGkiLAotLV0KLS0KLS1bW3BhY2thZ2VdXQotLW5h bWUgPSAiYWRsZXIyIgotLXZlcnNpb24gPSAiMi4wLjEiCi0tc291cmNlID0gInJlZ2lzdHJ5K2h0 dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgotLWNoZWNrc3VtID0g IjMyMDExOTU3OWZjYWQ5YzIxODg0ZjVjNDg2MWQxNjE3NGQwZTA2MjUwNjI1MjY2ZjUwZmU2ODk4 MzQwYWJlZmEiCi0tCi0gW1twYWNrYWdlXV0KLSBuYW1lID0gImFsbG9jYXRvci1hcGkyIgotIHZl cnNpb24gPSAiMC4yLjIxIgotIHNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20v cnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKLSBjaGVja3N1bSA9ICI2ODNkNzkxMGU3NDM1MThi MGUzNGYxMTg2ZjkyNDk0YmVjYWNiMDQ3YzdiNmJmNjE2Yzk2NzcyMTgwZmVmOTIzIgotIAotK1tb cGFja2FnZV1dCi0rbmFtZSA9ICJhbnlob3ciCi0rdmVyc2lvbiA9ICIxLjAuMTAyIgotK3NvdXJj ZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRl eCIKLStjaGVja3N1bSA9ICI3ZjIwMmRmODY0ODRjODY4ZGJhZDdlYWE1NTdlZjc4NWQ1YzY2Mjk1 ZTQxYjQ2MGVmOTIyZWNhMDcyM2I4NDJjIgotKwotIFtbcGFja2FnZV1dCi0gbmFtZSA9ICJhdHR5 IgotIHZlcnNpb24gPSAiMC4yLjE0IgotQEAgLTQwLDIxICszMSw2IEBAIHZlcnNpb24gPSAiMS41 LjAiCi0gc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3Jh dGVzLmlvLWluZGV4IgotIGNoZWNrc3VtID0gImMwODYwNmY4YzNjYmY0Y2U2ZWM4ZTI4ZmIwMDE0 YTJjMDg2NzA4ZmU5NTRlYWE4ODUzODRhNjE2NTE3MmU3ZTgiCi0gCi0tW1twYWNrYWdlXV0KLS1u YW1lID0gImJhY2t0cmFjZSIKLS12ZXJzaW9uID0gIjAuMy43NSIKLS1zb3VyY2UgPSAicmVnaXN0 cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0tY2hlY2tz dW0gPSAiNjgwNmE2MzIxZWM1ODEwNmZlYTE1YmVjZGFkOTgzNzFlMjhkOTJjY2JjN2M4ZjFiM2I2 ZGQ3MjRmZThmMTAwMiIKLS1kZXBlbmRlbmNpZXMgPSBbCi0tICJhZGRyMmxpbmUiLAotLSAiY2Zn LWlmIiwKLS0gImxpYmMiLAotLSAibWluaXpfb3hpZGUiLAotLSAib2JqZWN0IiwKLS0gInJ1c3Rj LWRlbWFuZ2xlIiwKLS0gIndpbmRvd3MtdGFyZ2V0cyIsCi0tXQotLQotIFtbcGFja2FnZV1dCi0g bmFtZSA9ICJiYXNlNjQiCi0gdmVyc2lvbiA9ICIwLjEzLjEiCi1AQCAtNjksOSArNDUsOSBAQCBj aGVja3N1bSA9ICJiZWYzOGQ0NTE2M2MyZjFkZGUwOTRhN2RmZDMzY2NmNTk1YzkyOTA1YzhmOGY0 ZmRjMThkMDZmYjEwMzc3MThhIgotIAotIFtbcGFja2FnZV1dCi0gbmFtZSA9ICJiaXRmbGFncyIK LS12ZXJzaW9uID0gIjIuOS4xIgotK3ZlcnNpb24gPSAiMi4xMS4wIgotIHNvdXJjZSA9ICJyZWdp c3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKLS1jaGVj a3N1bSA9ICIxYjhlNTY5ODVlYzYyZDE3ZTljMTAwMWRjODljODhlY2Q3ZGMwOGU0N2ViYTVlYzdj MjljN2I1ZWVlY2RlOTY3IgotK2NoZWNrc3VtID0gIjg0Mzg2N2JlOTZjOGRhYWQwZDc1OGI1N2Rm OTM5MmI2ZDhkMjcxMTM0ZmNlNTQ5ZGU2Y2UxNjlmZjk4YTkyYWYiCi0gCi0gW1twYWNrYWdlXV0K LSBuYW1lID0gImJ5dGVvcmRlciIKLUBAIC04Niw4ICs2Miw4IEBAIHNvdXJjZSA9ICJyZWdpc3Ry eStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKLSBjaGVja3N1 bSA9ICJkYTZiYzExYjA3NTI5ZjE2OTQ0MzA3MjcyZDViZDliMjI1MzBiYzdkMDU3NTE3MTdjOWQ0 MTY1ODZjZWRhYjQ5IgotIGRlcGVuZGVuY2llcyA9IFsKLSAgImNsYXAiLAotLSAiaGVjayIsCi0t ICJpbmRleG1hcCIsCi0rICJoZWNrIDAuNC4xIiwKLSsgImluZGV4bWFwIDEuOS4zIiwKLSAgImxv ZyIsCi0gICJwcm9jLW1hY3JvMiIsCi0gICJxdW90ZSIsCi1AQCAtMTAwLDEwICs3NiwxMSBAQCBk ZXBlbmRlbmNpZXMgPSBbCi0gCi0gW1twYWNrYWdlXV0KLSBuYW1lID0gImNjIgotLXZlcnNpb24g PSAiMS4yLjI3IgotK3ZlcnNpb24gPSAiMS4yLjU2IgotIHNvdXJjZSA9ICJyZWdpc3RyeStodHRw czovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKLS1jaGVja3N1bSA9ICJk NDg3YWEwNzFiNWY2NGRhNmYxOWEzZTg0OGUzNTc4OTQ0YjcyNmVlNWE0ODU0YjgyMTcyZjAyYWE4 NzZiZmRjIgotK2NoZWNrc3VtID0gImFlYmYzNTY5MWQxYmZiMGFjMzg2YTY5YmFjMmZkZTRkZDI3 NmZiNjE4Y2Y4YmY0ZjUzMThmZTI4NWU4MjFiYjIiCi0gZGVwZW5kZW5jaWVzID0gWwotKyAiZmlu ZC1tc3ZjLXRvb2xzIiwKLSAgImpvYnNlcnZlciIsCi0gICJsaWJjIiwKLSAgInNobGV4IiwKLUBA IC0xMTEsOSArODgsOSBAQCBkZXBlbmRlbmNpZXMgPSBbCi0gCi0gW1twYWNrYWdlXV0KLSBuYW1l ID0gImNmZy1pZiIKLS12ZXJzaW9uID0gIjEuMC4xIgotK3ZlcnNpb24gPSAiMS4wLjQiCi0gc291 cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWlu ZGV4IgotLWNoZWNrc3VtID0gIjk1NTU1NzhiYzllNTc3MTRjODEyYTFmODRlNGZjNWI0ZDIxZmNi MDYzNDkwYzYyNGRlMDE5Zjc0NjRjOTEyNjgiCi0rY2hlY2tzdW0gPSAiOTMzMGY4YjJmZjEzZjM0 NTQwYjQ0ZTk0NmVmMzUxMTE4MjU3MjdiMzhkMzMyODZlZjk4NjE0MjYxNTEyMTgwMSIKLSAKLSBb W3BhY2thZ2VdXQotIG5hbWUgPSAiY2xhcCIKLUBAIC0xMjQsNyArMTAxLDcgQEAgZGVwZW5kZW5j aWVzID0gWwotICAiYXR0eSIsCi0gICJiaXRmbGFncyAxLjMuMiIsCi0gICJjbGFwX2xleCIsCi0t ICJpbmRleG1hcCIsCi0rICJpbmRleG1hcCAxLjkuMyIsCi0gICJzdHJzaW0iLAotICAidGVybWNv bG9yIiwKLSAgInRleHR3cmFwIiwKLUBAIC0xNDEsMTQgKzExOCwxNCBAQCBkZXBlbmRlbmNpZXMg PSBbCi0gCi0gW1twYWNrYWdlXV0KLSBuYW1lID0gImNvbmNyZWFkIgotLXZlcnNpb24gPSAiMC41 LjYiCi0rdmVyc2lvbiA9ICIwLjUuMTAiCi0gc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0 aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgotLWNoZWNrc3VtID0gIjdiNjM5ZWVh YTU1MGViYTBjOGJlNDViMjkyZDVlMjcyZTZkMjliZmRmZmI0ZGY2OTI1ZDY1MWVkOWVkMTBmZDYi Ci0rY2hlY2tzdW0gPSAiNjU4OGU5ZTY4ZTExMjA3ZmI5YTVhYWJkODg3NjUxODc5NjllNmJjYmE5 ODc2M2M0MGJjYWQ4N2IyYTczZTlmNSIKLSBkZXBlbmRlbmNpZXMgPSBbCi0gICJjcm9zc2JlYW0t ZXBvY2giLAotICAiY3Jvc3NiZWFtLXF1ZXVlIiwKLSAgImNyb3NzYmVhbS11dGlscyIsCi0tICJm b2xkaGFzaCIsCi0rICJmb2xkaGFzaCAwLjIuMCIsCi0gICJscnUiLAotICAic21hbGx2ZWMiLAot ICAic3B0ciIsCi1AQCAtMjEwLDkgKzE4Nyw5IEBAIGNoZWNrc3VtID0gIjg3N2E0YWNlODcxM2Iw YmNmMmE0ZTdlZWM4MjUyOWMwMjlmMWQwNjE5ODg2ZDE4MTQ1ZmVhOTZjM2ZmZTVjMGYiCi0gCi0g W1twYWNrYWdlXV0KLSBuYW1lID0gImVycm5vIgotLXZlcnNpb24gPSAiMC4zLjEyIgotK3ZlcnNp b24gPSAiMC4zLjE0IgotIHNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVz dC1sYW5nL2NyYXRlcy5pby1pbmRleCIKLS1jaGVja3N1bSA9ICJjZWExNGVmOTM1NWUzYmVhYjA2 MzcwM2FhOWRhYjE1YWZkMjVmMDY2N2MzNDEzMTBjMWU1Mjc0YmIxZDBkYTE4IgotK2NoZWNrc3Vt ID0gIjM5Y2FiNzE2MTdhZTBkNjNmNTFhMzZkNjlmODY2MzkxNzM1YjUxNjkxZGJkYTYzY2Y2Zjk2 ZDA0MmI2M2VmZWIiCi0gZGVwZW5kZW5jaWVzID0gWwotICAibGliYyIsCi0gICJ3aW5kb3dzLXN5 cyIsCi1AQCAtMjMyLDE3ICsyMDksMjkgQEAgY2hlY2tzdW0gPSAiOTM4MDQ1NjBlNjM4MzcwYThi ZTZkNTljZTcxZWQ4MDNlNTVlMjMwYWJkYmY0MjU5OGU2NjZiNDFhZGRhOWIxZiIKLSBkZXBlbmRl bmNpZXMgPSBbCi0gICJiYXNlNjQiLAotICAiYnl0ZW9yZGVyIiwKLS0gImdldHJhbmRvbSAwLjIu MTYiLAotKyAiZ2V0cmFuZG9tIDAuMi4xNyIsCi0gICJvcGVuc3NsIiwKLSAgInplcm9pemUiLAot IF0KLSAKLStbW3BhY2thZ2VdXQotK25hbWUgPSAiZmluZC1tc3ZjLXRvb2xzIgotK3ZlcnNpb24g PSAiMC4xLjkiCi0rc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxh bmcvY3JhdGVzLmlvLWluZGV4IgotK2NoZWNrc3VtID0gIjViYWViYzA3NzQxNTFmOTA1YTFhMmNj NDE5ODkzMDBiMWU2ZmJiMjlhZmYwY2VmZmExMDY0ZmRkMzA4OGQ1ODIiCi0rCi0gW1twYWNrYWdl XV0KLSBuYW1lID0gImZvbGRoYXNoIgotIHZlcnNpb24gPSAiMC4xLjUiCi0gc291cmNlID0gInJl Z2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgotIGNo ZWNrc3VtID0gImQ5YzRmNWRhYzVlMTVjMjRlYjk5OWMyNjE4MWE2Y2E0MGIzOWZlOTQ2Y2JlNGMy NjNjNzIwOTQ2N2JjODNhZjIiCi0gCi0rW1twYWNrYWdlXV0KLStuYW1lID0gImZvbGRoYXNoIgot K3ZlcnNpb24gPSAiMC4yLjAiCi0rc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNv bS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgotK2NoZWNrc3VtID0gIjc3Y2UyNGNiNTgyMjhm YmI4YWEwNDE0MjViYjEwNTA4NTBhYzE5MTc3Njg2ZWE2ZTBmNDFhNzA0MTZmNTZmZGIiCi0rCi0g W1twYWNrYWdlXV0KLSBuYW1lID0gImZvcmVpZ24tdHlwZXMiCi0gdmVyc2lvbiA9ICIwLjMuMiIK LUBAIC0yNjAsMzIgKzI0OSwzOSBAQCBjaGVja3N1bSA9ICIwMGIwMjI4NDExOTA4Y2E4Njg1ZGJh N2ZjMmNkZDcwZWM5OTkwYTZlNzUzZTg5YjZhYzkxYTg0YzQwZmJhZjRiIgotIAotIFtbcGFja2Fn ZV1dCi0gbmFtZSA9ICJnZXRyYW5kb20iCi0tdmVyc2lvbiA9ICIwLjIuMTYiCi0rdmVyc2lvbiA9 ICIwLjIuMTciCi0gc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxh bmcvY3JhdGVzLmlvLWluZGV4IgotLWNoZWNrc3VtID0gIjMzNWZmOWYxMzVlNDM4NGM4MTUwZDZm MjdjNmRhZWQ0MzM1NzdmODZiNDc1MDQxODMzOGMwMWExYTI1Mjg1OTIiCi0rY2hlY2tzdW0gPSAi ZmYyYWJjMDBiZTdmY2E2ZWJjNDc0NTI0Njk3YWUyNzZhZDg0N2FkMGE2YjNmYWE0YmNiMDI3ZTlh NDYxNGFkMCIKLSBkZXBlbmRlbmNpZXMgPSBbCi0gICJjZmctaWYiLAotICAibGliYyIsCi0tICJ3 YXNpIDAuMTEuMSt3YXNpLXNuYXBzaG90LXByZXZpZXcxIiwKLSsgIndhc2kiLAotIF0KLSAKLSBb W3BhY2thZ2VdXQotIG5hbWUgPSAiZ2V0cmFuZG9tIgotLXZlcnNpb24gPSAiMC4zLjMiCi0rdmVy c2lvbiA9ICIwLjMuNCIKLSBzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1 c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0tY2hlY2tzdW0gPSAiMjYxNDVlNTYzZTU0ZjJjYWRj NDc3NTUzZjFlYzVlZTY1MGIwMDg2MmYwYTU4YmNkMTJjYmRjNWYwZWEyZDJmNCIKLStjaGVja3N1 bSA9ICI4OTlkZWY1YzM3YzRmZDdiMjY2NDY0OGMyODEyMGVjZWMxMzhlNGQzOTViNDU5ZTVjYTM0 ZjljY2UyZGQ3N2ZkIgotIGRlcGVuZGVuY2llcyA9IFsKLSAgImNmZy1pZiIsCi0gICJsaWJjIiwK LSAgInItZWZpIiwKLS0gIndhc2kgMC4xNC4yK3dhc2ktMC4yLjQiLAotKyAid2FzaXAyIiwKLSBd Ci0gCi0gW1twYWNrYWdlXV0KLS1uYW1lID0gImdpbWxpIgotLXZlcnNpb24gPSAiMC4zMS4xIgot K25hbWUgPSAiZ2V0cmFuZG9tIgotK3ZlcnNpb24gPSAiMC40LjEiCi0gc291cmNlID0gInJlZ2lz dHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgotLWNoZWNr c3VtID0gIjA3ZTI4ZWRiODA5MDBjMTljMjhmMTA3MmYyZThhZWNhN2ZhMDZiMjNjZDQxNjljZWZl MWFmNWFhMzI2MDc4M2YiCi0rY2hlY2tzdW0gPSAiMTM5ZWYzOTgwMDExOGM3NjgzZjJmZDNjOThj MWIyM2MwOWFlMDc2NTU2YjQzNWY4ZTkwNjRhZTEwOGFhZWVlYyIKLStkZXBlbmRlbmNpZXMgPSBb Ci0rICJjZmctaWYiLAotKyAibGliYyIsCi0rICJyLWVmaSIsCi0rICJ3YXNpcDIiLAotKyAid2Fz aXAzIiwKLStdCi0gCi0gW1twYWNrYWdlXV0KLSBuYW1lID0gImhhc2hicm93biIKLUBAIC0yOTUs MTMgKzI5MSwyMiBAQCBjaGVja3N1bSA9ICI4YTllZTcwYzQzYWFmNDE3YzkxNDM5NjY0NWEwZmE4 NTI2MjQ4MDFiMjRlYmI3YWU3OGZlODI3Mjg4OWFjODg4IgotIAotIFtbcGFja2FnZV1dCi0gbmFt ZSA9ICJoYXNoYnJvd24iCi0tdmVyc2lvbiA9ICIwLjE1LjQiCi0rdmVyc2lvbiA9ICIwLjE1LjUi Ci0gc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVz LmlvLWluZGV4IgotLWNoZWNrc3VtID0gIjU5NzFhYzg1NjExZGE3MDY3ZGJmY2FiZWYzYzcwZWJi NTYwNjAxOGFjZDllMmEzOTAzYTBkYTUwNzUyMWUwZDUiCi0rY2hlY2tzdW0gPSAiOTIyOWNmZTUz ZGZkNjlmMDYwOWE0OWY2NTQ2MWJkOTMwMDFlYTFlZjg4OWNkNTUyOWRkMTc2NTkzZjUzMzhhMSIK LStkZXBlbmRlbmNpZXMgPSBbCi0rICJmb2xkaGFzaCAwLjEuNSIsCi0rXQotKwotK1tbcGFja2Fn ZV1dCi0rbmFtZSA9ICJoYXNoYnJvd24iCi0rdmVyc2lvbiA9ICIwLjE2LjEiCi0rc291cmNlID0g InJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4Igot K2NoZWNrc3VtID0gIjg0MWQxY2M5YmVkN2Y5MjM2ZjMyMWRmOTc3MDMwMzczZjRhNDE2M2FlMWE3 ZGJmZTFhNTFhMmMxYTUxZDkxMDAiCi0gZGVwZW5kZW5jaWVzID0gWwotICAiYWxsb2NhdG9yLWFw aTIiLAotICAiZXF1aXZhbGVudCIsCi0tICJmb2xkaGFzaCIsCi0rICJmb2xkaGFzaCAwLjIuMCIs Ci0gXQotIAotIFtbcGFja2FnZV1dCi1AQCAtMzEwLDYgKzMxNSwxMiBAQCB2ZXJzaW9uID0gIjAu NC4xIgotIHNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2Ny YXRlcy5pby1pbmRleCIKLSBjaGVja3N1bSA9ICI5NTUwNWMzOGI0NTcyYjJkOTEwY2VjYjAyODE1 NjBmNTRiNDQwYTE5MzM2Y2JiY2IyN2JmNmNlNmFkYzZmNWE4IgotIAotK1tbcGFja2FnZV1dCi0r bmFtZSA9ICJoZWNrIgotK3ZlcnNpb24gPSAiMC41LjAiCi0rc291cmNlID0gInJlZ2lzdHJ5K2h0 dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgotK2NoZWNrc3VtID0g IjIzMDRlMDA5ODNmODdmZmIzOGI1NWI0NDRiNWUzYjYwYTg4NGI1ZDMwYzBmY2E3ZDgyZmUzMzQ0 OWJiZTU1ZWEiCi0rCi0gW1twYWNrYWdlXV0KLSBuYW1lID0gImhlcm1pdC1hYmkiCi0gdmVyc2lv biA9ICIwLjEuMTkiCi1AQCAtMzE5LDYgKzMzMCwxMiBAQCBkZXBlbmRlbmNpZXMgPSBbCi0gICJs aWJjIiwKLSBdCi0gCi0rW1twYWNrYWdlXV0KLStuYW1lID0gImlkLWFyZW5hIgotK3ZlcnNpb24g PSAiMi4zLjAiCi0rc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxh bmcvY3JhdGVzLmlvLWluZGV4IgotK2NoZWNrc3VtID0gIjNkMzA2N2Q3OWI5NzVlODg0NGNhOWVi MDcyZTE2YjMxYzNjMWMzNjkyOGVkZjljNjc4OTU0OGM1MjRkMGQ5NTQiCi0rCi0gW1twYWNrYWdl XV0KLSBuYW1lID0gImluZGV4bWFwIgotIHZlcnNpb24gPSAiMS45LjMiCi1AQCAtMzI5LDI3ICsz NDYsNDUgQEAgZGVwZW5kZW5jaWVzID0gWwotICAiaGFzaGJyb3duIDAuMTIuMyIsCi0gXQotIAot K1tbcGFja2FnZV1dCi0rbmFtZSA9ICJpbmRleG1hcCIKLSt2ZXJzaW9uID0gIjIuMTMuMCIKLStz b3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8t aW5kZXgiCi0rY2hlY2tzdW0gPSAiNzcxNGU3MDQzN2E3ZGMzYWM4ZWI3ZTZmOGRmNzVmZDhlYjQy MjY3NWZjNzY3OGFmZjczNjQzMDEwOTJiMTAxNyIKLStkZXBlbmRlbmNpZXMgPSBbCi0rICJlcXVp dmFsZW50IiwKLSsgImhhc2hicm93biAwLjE2LjEiLAotKyAic2VyZGUiLAotKyAic2VyZGVfY29y ZSIsCi0rXQotKwotIFtbcGFja2FnZV1dCi0gbmFtZSA9ICJpdG9hIgotLXZlcnNpb24gPSAiMS4w LjE1IgotK3ZlcnNpb24gPSAiMS4wLjE3IgotIHNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dp dGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKLS1jaGVja3N1bSA9ICI0YTVmMTNi ODU4YzhkMzE0ZWUzZThmNjM5MDExZjdjY2VmZTcxZjk3Zjk2ZTUwMTUxZmI5OTFmMjY3OTI4ZTJj IgotK2NoZWNrc3VtID0gIjkyZWNjNjYxODE4MWRlZjA0NTczOTJjY2QwZWU1MTE5OGUwNjVlMDE2 ZDFkNTI3YTdhYzFiNmRjN2MxZjA5ZDIiCi0gCi0gW1twYWNrYWdlXV0KLSBuYW1lID0gImpvYnNl cnZlciIKLS12ZXJzaW9uID0gIjAuMS4zMyIKLSt2ZXJzaW9uID0gIjAuMS4zNCIKLSBzb3VyY2Ug PSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgi Ci0tY2hlY2tzdW0gPSAiMzhmMjYyZjA5N2MxNzRhZGViZTQxZWI3M2Q2NmFlOWMwNmIyODQ0ZmIw ZGE2OTk2OTY0N2JiZGRkOWIwNTM4YSIKLStjaGVja3N1bSA9ICI5YWZiM2RlNDM5NWQ2YjNlNjdh NzgwYjZkZTY0YjUxYzk3OGVjZjExY2I5YTQ2MmM2NmJlN2Q0Y2E5MDM5ZDMzIgotIGRlcGVuZGVu Y2llcyA9IFsKLS0gImdldHJhbmRvbSAwLjMuMyIsCi0rICJnZXRyYW5kb20gMC4zLjQiLAotICAi bGliYyIsCi0gXQotIAotK1tbcGFja2FnZV1dCi0rbmFtZSA9ICJsZWIxMjhmbXQiCi0rdmVyc2lv biA9ICIwLjEuMCIKLStzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3Qt bGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0rY2hlY2tzdW0gPSAiMDllZGQ5ZThiNTRlNDllNTg3ZTRm NjI5NWE3ZDI5YzNlYTk0ZDQ2OWNiNDBhYjhjYTcwYjI4ODI0OGE4MWRiMiIKLSsKLSBbW3BhY2th Z2VdXQotIG5hbWUgPSAibGliYyIKLS12ZXJzaW9uID0gIjAuMi4xNzQiCi0rdmVyc2lvbiA9ICIw LjIuMTgyIgotIHNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5n L2NyYXRlcy5pby1pbmRleCIKLS1jaGVja3N1bSA9ICIxMTcxNjkzMjkzMDk5OTkyZTE5Y2RkZWE0 ZThiODQ5OTY0ZTk4NDZmNGFjZWUxMWIzOTQ4YmNjMzM3YmU4Nzc2IgotK2NoZWNrc3VtID0gIjY4 MDBiYWRiNmNiMjA4MmZmZDdiNmE2N2U2MTI1YmIzOWYxODc4MmY3OTM1MjBjYWVlOGNiODg0NmJl MDYxMTIiCi0gCi0gW1twYWNrYWdlXV0KLSBuYW1lID0gImxpYnJuc3NsYXBkIgotQEAgLTM3Miw0 OCArNDA3LDMwIEBAIGRlcGVuZGVuY2llcyA9IFsKLSAKLSBbW3BhY2thZ2VdXQotIG5hbWUgPSAi bGludXgtcmF3LXN5cyIKLS12ZXJzaW9uID0gIjAuOS40IgotK3ZlcnNpb24gPSAiMC4xMS4wIgot IHNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5p by1pbmRleCIKLS1jaGVja3N1bSA9ICJjZDk0NTg2NGYwN2ZlOWY1MzcxYTI3YWQ3YjUyYTE3MmI0 YjQ5OTk5OWYxZDk3NTc0YzlmYTY4MzczOTM3ZTEyIgotK2NoZWNrc3VtID0gImRmMWQzYzNiNTNk YTY0Y2Y1NzYwNDgyMjczYTk4ZTU3NWM2NTFhNjdlZWM3Zjc3ZGY5NmI1YjY0MmRlOGYwMzkiCi0g Ci0gW1twYWNrYWdlXV0KLSBuYW1lID0gImxvZyIKLS12ZXJzaW9uID0gIjAuNC4yNyIKLSt2ZXJz aW9uID0gIjAuNC4yOSIKLSBzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1 c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0tY2hlY2tzdW0gPSAiMTNkYzJkZjM1MWUzMjAyNzgz YTFmZTBkNDQzNzVmNzI5NWZmYjQwNDkyNjdiMGYzMDE4MzQ2ZGMxMjJhMWQ5NCIKLStjaGVja3N1 bSA9ICI1ZTUwMzJlMjQwMTkwNDVjNzYyZDNjMGYyOGY1YjZiOGJiZjM4NTYzYTY1OTA4Mzg5YmY3 OTc4NzU4OTIwODk3IgotIAotIFtbcGFja2FnZV1dCi0gbmFtZSA9ICJscnUiCi0tdmVyc2lvbiA9 ICIwLjEzLjAiCi0rdmVyc2lvbiA9ICIwLjE2LjMiCi0gc291cmNlID0gInJlZ2lzdHJ5K2h0dHBz Oi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgotLWNoZWNrc3VtID0gIjIy Nzc0OGQ1NWYyZjBhYjQ3MzVkODdmZDYyMzc5OGNiNmI2NjQ1MTJmZTk3OTcwNWY4MjljOWY4MWM5 MzQ0NjUiCi0rY2hlY2tzdW0gPSAiYTFkYzQ3ZjU5MmMwNmYzM2Y4ZTNhZWE5NTkxNzc2ZWM3Yzlm OWU0MTI0Nzc4ZmY4YTNjM2I4NzE1OWY3ZTU5MyIKLSBkZXBlbmRlbmNpZXMgPSBbCi0tICJoYXNo YnJvd24gMC4xNS40IiwKLSsgImhhc2hicm93biAwLjE2LjEiLAotIF0KLSAKLSBbW3BhY2thZ2Vd XQotIG5hbWUgPSAibWVtY2hyIgotLXZlcnNpb24gPSAiMi43LjUiCi0tc291cmNlID0gInJlZ2lz dHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgotLWNoZWNr c3VtID0gIjMyYTI4MmRhNjVmYWFmMzgyODZjZjNiZTk4MzIxM2ZjZjFkMmUyYTU4NzAwZTgwOGY4 M2Y0ZWE5YTQ4MDRiYzAiCi0tCi0tW1twYWNrYWdlXV0KLS1uYW1lID0gIm1pbml6X294aWRlIgot LXZlcnNpb24gPSAiMC44LjkiCi0tc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNv bS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgotLWNoZWNrc3VtID0gIjFmYTc2YTJjODZmNzA0 YmRiMjIyZDY2OTY1ZmIzZDYzMjY5Y2UzODUxOGI4M2NiMDU3NWZjYTg1NWViYjYzMTYiCi0tZGVw ZW5kZW5jaWVzID0gWwotLSAiYWRsZXIyIiwKLS1dCi0tCi0tW1twYWNrYWdlXV0KLS1uYW1lID0g Im9iamVjdCIKLS12ZXJzaW9uID0gIjAuMzYuNyIKLSt2ZXJzaW9uID0gIjIuOC4wIgotIHNvdXJj ZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRl eCIKLS1jaGVja3N1bSA9ICI2Mjk0OGUxNGQ5MjNlYTk1ZWEyYzdjODZjNzEwMTMxMzhiNjY1MjVi ODZiZGMwOGQyZGNjMjYyYmRiNDk3Yjg3IgotLWRlcGVuZGVuY2llcyA9IFsKLS0gIm1lbWNociIs Ci0tXQotK2NoZWNrc3VtID0gImY4Y2E1OGY0NDdmMDZlZDE3ZDVmYzQwNDNjZTFiMTBkZDIwNWUw NjBmYjNjZTViOTc5YjhlZDhlNTlmZjNmNzkiCi0gCi0gW1twYWNrYWdlXV0KLSBuYW1lID0gIm9u Y2VfY2VsbCIKLUBAIC00MjMsMTEgKzQ0MCwxMSBAQCBjaGVja3N1bSA9ICI0MmY1ZTE1Yzk5NTNj NWU0Y2NjZWViMmU3MzgyYTcxNjQ4MmMzNDUxNTMxNWY3YjAzNTMyYjhiNGU4MzkzZDJkIgotIAot IFtbcGFja2FnZV1dCi0gbmFtZSA9ICJvcGVuc3NsIgotLXZlcnNpb24gPSAiMC4xMC43MyIKLSt2 ZXJzaW9uID0gIjAuMTAuNzUiCi0gc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNv bS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgotLWNoZWNrc3VtID0gIjg1MDU3MzRkNDZjOGFi MWUxOWExZGNlM2FlZjU5N2FkODdkY2I0YzM3ZTcxODgyMzE3NjliZDZiZDUxY2ViZjgiCi0rY2hl Y2tzdW0gPSAiMDg4MzhkYjEyMTM5OGFkMTdhYjg1MzFjZTlkZTk3YjI0NDU4OTA4OWUyOTBhMzg0 YzkwMGNiOWZmNzQzNDMyOCIKLSBkZXBlbmRlbmNpZXMgPSBbCi0tICJiaXRmbGFncyAyLjkuMSIs Ci0rICJiaXRmbGFncyAyLjExLjAiLAotICAiY2ZnLWlmIiwKLSAgImZvcmVpZ24tdHlwZXMiLAot ICAibGliYyIsCi1AQCAtNDQ0LDE0ICs0NjEsMTQgQEAgY2hlY2tzdW0gPSAiYTk0ODY2NmI2Mzdh MGY0NjVlODU2NGM3M2U4OWQ0ZGRlMDBkNzJkNGQ0NzNjYzk3MmYzOTBmYzNkY2VlN2Q5YyIKLSBk ZXBlbmRlbmNpZXMgPSBbCi0gICJwcm9jLW1hY3JvMiIsCi0gICJxdW90ZSIsCi0tICJzeW4gMi4w LjEwMyIsCi0rICJzeW4gMi4wLjExNyIsCi0gXQotIAotIFtbcGFja2FnZV1dCi0gbmFtZSA9ICJv cGVuc3NsLXN5cyIKLS12ZXJzaW9uID0gIjAuOS4xMDkiCi0rdmVyc2lvbiA9ICIwLjkuMTExIgot IHNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5p by1pbmRleCIKLS1jaGVja3N1bSA9ICI5MDA5NmUyZTQ3NjMwZDc4YjdkMWMyMDk1MmRjNjIxZjk1 NzEwM2Y4YmMyYzgzNTllYzgxMjkwZDc1MjM4NTcxIgotK2NoZWNrc3VtID0gIjgyY2FiMmQ1MjBh YTc1ZTNjNTg4OTgyODk0MjkzMjFlYjc4OGMzMTA2OTYzZDBkYzg4NmVjN2E1ZjRhZGMzMjEiCi0g ZGVwZW5kZW5jaWVzID0gWwotICAiY2MiLAotICAibGliYyIsCi1AQCAtNDk2LDYgKzUxMywxNiBA QCB2ZXJzaW9uID0gIjAuMy4zMiIKLSBzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIu Y29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0gY2hlY2tzdW0gPSAiN2VkZGRiZDBiNTJk NzMyYjIxYWQ5YTVmYWI1YzcwNGMxNGNkOTQ5ZTVlOWExZWM1OTI5YTI0ZmRlZDFiOTA0YyIKLSAK LStbW3BhY2thZ2VdXQotK25hbWUgPSAicHJldHR5cGxlYXNlIgotK3ZlcnNpb24gPSAiMC4yLjM3 IgotK3NvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRl cy5pby1pbmRleCIKLStjaGVja3N1bSA9ICI0NzljYThhZGFjZGQ3Y2U4ZjFmYjM5Y2U5ZWNjY2Jm ZTkzYTNmMTM0NGIzZDBkOTdmMjBiYzAxOTYyMDhmNjJiIgotK2RlcGVuZGVuY2llcyA9IFsKLSsg InByb2MtbWFjcm8yIiwKLSsgInN5biAyLjAuMTE3IiwKLStdCi0rCi0gW1twYWNrYWdlXV0KLSBu YW1lID0gInByb2MtbWFjcm8taGFjayIKLSB2ZXJzaW9uID0gIjAuNS4yMCtkZXByZWNhdGVkIgot QEAgLTUwNCw5ICs1MzEsOSBAQCBjaGVja3N1bSA9ICJkYzM3NWUxNTI3MjQ3ZmUxYTk3ZDhiNzE1 NjY3OGRmZTdjMWFmMmZjMDc1YzlhNGRiMzY5MGVjZDJhMTQ4MDY4IgotIAotIFtbcGFja2FnZV1d Ci0gbmFtZSA9ICJwcm9jLW1hY3JvMiIKLS12ZXJzaW9uID0gIjEuMC45NSIKLSt2ZXJzaW9uID0g IjEuMC4xMDYiCi0gc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxh bmcvY3JhdGVzLmlvLWluZGV4IgotLWNoZWNrc3VtID0gIjAyYjNlNWU2OGEzYTFhMDJhYWQzZWM0 OTBhOTgwMDdjYmMxM2MzN2NiZTg0YTNjZDdiOGU0MDZkNzZlN2Y3NzgiCi0rY2hlY2tzdW0gPSAi OGZkMDBmMGJiMmU5MGQ4MWQxMDQ0YzJiMzI2MTdmNjhmY2I5ZmEzYmI3NjQwYzIzZTljNzQ4ZTUz ZmIzMDkzNCIKLSBkZXBlbmRlbmNpZXMgPSBbCi0gICJ1bmljb2RlLWlkZW50IiwKLSBdCi1AQCAt NTI2LDkgKzU1Myw5IEBAIGRlcGVuZGVuY2llcyA9IFsKLSAKLSBbW3BhY2thZ2VdXQotIG5hbWUg PSAicXVvdGUiCi0tdmVyc2lvbiA9ICIxLjAuNDAiCi0rdmVyc2lvbiA9ICIxLjAuNDQiCi0gc291 cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWlu ZGV4IgotLWNoZWNrc3VtID0gIjE4ODVjMDM5NTcwZGMwMGRjYjRmZjA4N2E4OWUxODVmZDU2YmFl MjM0ZGRjN2YwNTZhOTQ1YmYzNjQ2NzI0OGQiCi0rY2hlY2tzdW0gPSAiMjFiMmViY2Y3MjdiNzc2 MGM0NjFmMDkxZjlmMGY1MzliNzdiOGU4N2YyZmQ4ODEzMWU3ZjFiNDMzYjNjZWNlNCIKLSBkZXBl bmRlbmNpZXMgPSBbCi0gICJwcm9jLW1hY3JvMiIsCi0gXQotQEAgLTUzOSwxOSArNTY2LDEzIEBA IHZlcnNpb24gPSAiNS4zLjAiCi0gc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNv bS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgotIGNoZWNrc3VtID0gIjY5Y2RiMzRjMTU4Y2Vi Mjg4ZGYxMWUxOGI0YmQzOWRlOTk0ZjY2NTdkODM4NDdiZGZmZGJkN2YzNDY3NTRiMGYiCi0gCi0t W1twYWNrYWdlXV0KLS1uYW1lID0gInJ1c3RjLWRlbWFuZ2xlIgotLXZlcnNpb24gPSAiMC4xLjI1 IgotLXNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRl cy5pby1pbmRleCIKLS1jaGVja3N1bSA9ICI5ODllNjczOWY4MGM0YWQ1YjEzZTBmZDdmZTg5NTMx MTgwMzc1YjE4NTIwY2M4YzgyMDgwZTRkYzQwMzViODRmIgotLQotIFtbcGFja2FnZV1dCi0gbmFt ZSA9ICJydXN0aXgiCi0tdmVyc2lvbiA9ICIxLjAuNyIKLSt2ZXJzaW9uID0gIjEuMS4zIgotIHNv dXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1p bmRleCIKLS1jaGVja3N1bSA9ICJjNzFlODNkNmFmZTdmZjY0ODkwZWM2YjcxZDZhNjliYjhhNjEw YWI3OGNlMzY0YjMzNTI4NzZiYjRjODAxMjY2IgotK2NoZWNrc3VtID0gIjE0NmM5ZTI0N2NjYzE4 MGMxZjYxNjE1NDMzODY4Yzk5ZjNkZTNhZTI1NmEzMGE0M2I0OWY2N2MyZDkxNzFmMzQiCi0gZGVw ZW5kZW5jaWVzID0gWwotLSAiYml0ZmxhZ3MgMi45LjEiLAotKyAiYml0ZmxhZ3MgMi4xMS4wIiwK LSAgImVycm5vIiwKLSAgImxpYmMiLAotICAibGludXgtcmF3LXN5cyIsCi1AQCAtNTU5LDQxICs1 ODAsNTIgQEAgZGVwZW5kZW5jaWVzID0gWwotIF0KLSAKLSBbW3BhY2thZ2VdXQotLW5hbWUgPSAi cnl1IgotLXZlcnNpb24gPSAiMS4wLjIwIgotK25hbWUgPSAic2VtdmVyIgotK3ZlcnNpb24gPSAi MS4wLjI3IgotIHNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5n L2NyYXRlcy5pby1pbmRleCIKLS1jaGVja3N1bSA9ICIyOGQzYjJiMTM2NmVjMjA5OTRmMWZkMThj M2M1OTRmMDVjNWRkNGJjNDRkOGJiMGMxYzYzMmM4ZDY4Mjk0ODFmIgotK2NoZWNrc3VtID0gImQ3 NjdlYjBhYWJjODgwYjI5OTU2YzM1NzM0MTcwZjI2ZWQ1NTFhODU5ZGJkMzYxZDE0MGNkYmVjYTYx YWIxZTIiCi0gCi0gW1twYWNrYWdlXV0KLSBuYW1lID0gInNlcmRlIgotLXZlcnNpb24gPSAiMS4w LjIxOSIKLSt2ZXJzaW9uID0gIjEuMC4yMjgiCi0gc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8v Z2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgotLWNoZWNrc3VtID0gIjVmMGUy YzZlZDY2MDYwMTliNGUyOWU2OWRiYWJhOTViMTE4NTQ0MTBlNTM0N2Q1MjUwMDI0NTZkYmJiNzg2 YjYiCi0rY2hlY2tzdW0gPSAiOWE4ZTk0ZWE3ZjM3OGJkMzJjYmJkMzcxOThhNGE5MTQzNjE4MGM1 YmI0NzI0MTFlNDhiNWVjMmUyMTI0YWU5ZSIKLStkZXBlbmRlbmNpZXMgPSBbCi0rICJzZXJkZV9j b3JlIiwKLSsgInNlcmRlX2Rlcml2ZSIsCi0rXQotKwotK1tbcGFja2FnZV1dCi0rbmFtZSA9ICJz ZXJkZV9jb3JlIgotK3ZlcnNpb24gPSAiMS4wLjIyOCIKLStzb3VyY2UgPSAicmVnaXN0cnkraHR0 cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0rY2hlY2tzdW0gPSAi NDFkMzg1YzdkNGNhNThlNTlmYzczMmFmMjVjMzk4M2I2N2FjODUyYzFhMjUwMDBhZmUxMTc1ZGU0 NThiNjdhZCIKLSBkZXBlbmRlbmNpZXMgPSBbCi0gICJzZXJkZV9kZXJpdmUiLAotIF0KLSAKLSBb W3BhY2thZ2VdXQotIG5hbWUgPSAic2VyZGVfZGVyaXZlIgotLXZlcnNpb24gPSAiMS4wLjIxOSIK LSt2ZXJzaW9uID0gIjEuMC4yMjgiCi0gc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHVi LmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgotLWNoZWNrc3VtID0gIjViMDI3NmNmN2Yy YzczMzY1ZjcxNTdjODEyM2MyMWNkOWE1MGZiYmQ4NDQ3NTdhZjI4Y2ExZjU5MjVmYzJhMDAiCi0r Y2hlY2tzdW0gPSAiZDU0MGYyMjBkMzE4NzE3M2RhMjIwZjg4NWFiNjY2MDgzNjdiNjU3NGU5MjUw MTFhOTM1M2U0YmFkZGE5MWQ3OSIKLSBkZXBlbmRlbmNpZXMgPSBbCi0gICJwcm9jLW1hY3JvMiIs Ci0gICJxdW90ZSIsCi0tICJzeW4gMi4wLjEwMyIsCi0rICJzeW4gMi4wLjExNyIsCi0gXQotIAot IFtbcGFja2FnZV1dCi0gbmFtZSA9ICJzZXJkZV9qc29uIgotLXZlcnNpb24gPSAiMS4wLjE0MCIK LSt2ZXJzaW9uID0gIjEuMC4xNDkiCi0gc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHVi LmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgotLWNoZWNrc3VtID0gIjIwMDY4YjZlOTZk YzZjOWJkMjNlMDFkZjg4MjdlNmM3ZTFmMmZkZGQ0M2MyMTgxMDM4MjgwM2MxMzZiOTkzNzMiCi0r Y2hlY2tzdW0gPSAiODNmYzAzOTQ3M2M1NTk1YWNlODYwZDhjNGZhZmEyMjBmZjQ3NGIzZmM2YmZk YjQyOTMzMjdmMWEzN2U5NGQ4NiIKLSBkZXBlbmRlbmNpZXMgPSBbCi0gICJpdG9hIiwKLSAgIm1l bWNociIsCi0tICJyeXUiLAotICAic2VyZGUiLAotKyAic2VyZGVfY29yZSIsCi0rICJ6bWlqIiwK LSBdCi0gCi0gW1twYWNrYWdlXV0KLUBAIC02NDksOSArNjgxLDkgQEAgZGVwZW5kZW5jaWVzID0g WwotIAotIFtbcGFja2FnZV1dCi0gbmFtZSA9ICJzeW4iCi0tdmVyc2lvbiA9ICIyLjAuMTAzIgot K3ZlcnNpb24gPSAiMi4wLjExNyIKLSBzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIu Y29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0tY2hlY2tzdW0gPSAiZTQzMDdlMzAwODlk NmZkNmFmZjIxMmYyZGEzYTFmOWUzMmYzMjIzYjFmMDEwZmIwOWI3Yzk1ZjkwZjNjYTFlOCIKLStj aGVja3N1bSA9ICJlNjY1Yjg4MDNlN2IxZDJhNzI3ZjQwMjM0NTZiYmJiZTc0ZGE2NzA5OWM1ODUy NThhZjBhZDljNTAxM2I5Yjk5IgotIGRlcGVuZGVuY2llcyA9IFsKLSAgInByb2MtbWFjcm8yIiwK LSAgInF1b3RlIiwKLUBAIC02NjAsMTIgKzY5MiwxMiBAQCBkZXBlbmRlbmNpZXMgPSBbCi0gCi0g W1twYWNrYWdlXV0KLSBuYW1lID0gInRlbXBmaWxlIgotLXZlcnNpb24gPSAiMy4yMC4wIgotK3Zl cnNpb24gPSAiMy4yNS4wIgotIHNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20v cnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKLS1jaGVja3N1bSA9ICJlOGE2NGUzOTg1MzQ5ZjI0 NDFhMWE5ZWYwYjg1M2Y4NjkwMDZjMzg1NWYyY2RhNjg2MmE5NGQyNmViYjlkNmExIgotK2NoZWNr c3VtID0gIjAxMzY3OTFmN2M5NWIxZjZkZDk5ZjljYzc4NmI5MWJiODFjMzgwMGI2MzliMzQ3OGU1 NjFkZGI3YmU5NWU1ZjEiCi0gZGVwZW5kZW5jaWVzID0gWwotICAiZmFzdHJhbmQiLAotLSAiZ2V0 cmFuZG9tIDAuMy4zIiwKLSsgImdldHJhbmRvbSAwLjQuMSIsCi0gICJvbmNlX2NlbGwiLAotICAi cnVzdGl4IiwKLSAgIndpbmRvd3Mtc3lzIiwKLUBAIC02ODgsMTEgKzcyMCwxMCBAQCBjaGVja3N1 bSA9ICJjMTM1NDc2MTVhNDRkYzljNDUyYThhNTM0NjM4YWNkZjA3MTIwZDRiNjg0N2M4MTc4NzA1 ZGEwNjMwNmEzMDU3IgotIAotIFtbcGFja2FnZV1dCi0gbmFtZSA9ICJ0b2tpbyIKLS12ZXJzaW9u ID0gIjEuNDUuMSIKLSt2ZXJzaW9uID0gIjEuNDkuMCIKLSBzb3VyY2UgPSAicmVnaXN0cnkraHR0 cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0tY2hlY2tzdW0gPSAi NzVlZjUxYTMzZWYxZGE5MjVjZWEzZTRlYjEyMjgzM2NiMzc3YzYxNDM5Y2E0MDFiNzcwZjU0OTAy YjgwNjc3OSIKLStjaGVja3N1bSA9ICI3MmEyOTAzY2Q3NzM2NDQxYWFjOWRmOWQ3Njg4YmQwY2U0 OGVkY2NhYWRmMTgxYzNiOTBiZTgwMWU4MWQzZDg2IgotIGRlcGVuZGVuY2llcyA9IFsKLS0gImJh Y2t0cmFjZSIsCi0gICJwaW4tcHJvamVjdC1saXRlIiwKLSBdCi0gCi1AQCAtNzA3LDkgKzczOCw5 IEBAIGRlcGVuZGVuY2llcyA9IFsKLSAKLSBbW3BhY2thZ2VdXQotIG5hbWUgPSAidHJhY2luZyIK LS12ZXJzaW9uID0gIjAuMS40MSIKLSt2ZXJzaW9uID0gIjAuMS40NCIKLSBzb3VyY2UgPSAicmVn aXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0tY2hl Y2tzdW0gPSAiNzg0ZTBhYzUzNWRlYjQ1MDQ1NWNiZmEyOGE2ZjBkZjE0NWVhMWJiN2FlNTFiODIx Y2Y1ZTc5MjdmZGNmYmRkMCIKLStjaGVja3N1bSA9ICI2M2U3MTY2MmZhNGIyYTJjM2EyNmY1NzBm MDM3ZWI5NWJiMWY4NTM5N2YzY2Q4MDc2Y2FlZDJmMDI2YTZkMTAwIgotIGRlcGVuZGVuY2llcyA9 IFsKLSAgInBpbi1wcm9qZWN0LWxpdGUiLAotICAidHJhY2luZy1hdHRyaWJ1dGVzIiwKLUBAIC03 MTgsMjkgKzc0OSwzNSBAQCBkZXBlbmRlbmNpZXMgPSBbCi0gCi0gW1twYWNrYWdlXV0KLSBuYW1l ID0gInRyYWNpbmctYXR0cmlidXRlcyIKLS12ZXJzaW9uID0gIjAuMS4zMCIKLSt2ZXJzaW9uID0g IjAuMS4zMSIKLSBzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFu Zy9jcmF0ZXMuaW8taW5kZXgiCi0tY2hlY2tzdW0gPSAiODEzODNhYjY0ZTcyYTdhOGI4ZTEzMTMw YzQ5ZTNkYWIyOWRlZjZkMGM3ZDc2YTAzMDg3YjNjZjcxYzVjNjkwMyIKLStjaGVja3N1bSA9ICI3 NDkwY2ZhNWVjOTYzNzQ2NTY4NzQwNjUxYWM2NzgxZjcwMWM5YzVlYTI1N2M1OGUwNTdmM2JhOGNm NjllOGRhIgotIGRlcGVuZGVuY2llcyA9IFsKLSAgInByb2MtbWFjcm8yIiwKLSAgInF1b3RlIiwK LS0gInN5biAyLjAuMTAzIiwKLSsgInN5biAyLjAuMTE3IiwKLSBdCi0gCi0gW1twYWNrYWdlXV0K LSBuYW1lID0gInRyYWNpbmctY29yZSIKLS12ZXJzaW9uID0gIjAuMS4zNCIKLSt2ZXJzaW9uID0g IjAuMS4zNiIKLSBzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFu Zy9jcmF0ZXMuaW8taW5kZXgiCi0tY2hlY2tzdW0gPSAiYjlkMTI1ODFmMjI3ZTkzZjA5NGQzYWYy YWU2OTBhNTc0YWJiOGEyYjliN2E5NmU3Y2ZlOTY0N2IyYjYxNzY3OCIKLStjaGVja3N1bSA9ICJk Yjk3Y2FmOWQ5MDZmYmRlNTU1ZGQ2MmZhOTVkZGJhOWVlY2ZkMTRjYjM4OGU0ZjQ5MWE2NmQ3NGNk NWZiNzlhIgotIGRlcGVuZGVuY2llcyA9IFsKLSAgIm9uY2VfY2VsbCIsCi0gXQotIAotIFtbcGFj a2FnZV1dCi0gbmFtZSA9ICJ1bmljb2RlLWlkZW50IgotLXZlcnNpb24gPSAiMS4wLjE4IgotK3Zl cnNpb24gPSAiMS4wLjI0IgotIHNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20v cnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKLS1jaGVja3N1bSA9ICI1YTVmMzk0MDRhNWRhNTA3 MTJhNGMxZWVjZjI1ZTkwZGQ2MmI2MTM1MDJiN2U5MjVmZDRlNGQxOWI1Yzk2NTEyIgotK2NoZWNr c3VtID0gImU2ZTQzMTNjZDVmY2QzZGFkNWNhZmExNzk3MDJlMmIyNDRmNzYwOTkxZjQ1Mzk3ZDE0 ZDRlYmYzODI0N2RhNzUiCi0rCi0rW1twYWNrYWdlXV0KLStuYW1lID0gInVuaWNvZGUteGlkIgot K3ZlcnNpb24gPSAiMC4yLjYiCi0rc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNv bS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgotK2NoZWNrc3VtID0gImViYzFjMDRjNzE1MTBj N2Y3MDJiNTJiN2MzNTA3MzRjOWZmMTI5NWM0NjRhMDMzMzViMDBiYjg0ZmM1NGY4NTMiCi0gCi0g W1twYWNrYWdlXV0KLSBuYW1lID0gInV1aWQiCi1AQCAtNzQ4LDcgKzc4NSw3IEBAIHZlcnNpb24g PSAiMC44LjIiCi0gc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxh bmcvY3JhdGVzLmlvLWluZGV4IgotIGNoZWNrc3VtID0gImJjNWNmOThkODE4NjI0NDQxNGM4NDgw MTdmMGUyNjc2YjNmY2I0NjgwN2Y2NjY4YTk3ZGZlNjczNTlhM2M0YjciCi0gZGVwZW5kZW5jaWVz ID0gWwotLSAiZ2V0cmFuZG9tIDAuMi4xNiIsCi0rICJnZXRyYW5kb20gMC4yLjE3IiwKLSBdCi0g Ci0gW1twYWNrYWdlXV0KLUBAIC03NjQsMTIgKzgwMSw1NSBAQCBzb3VyY2UgPSAicmVnaXN0cnkr aHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0gY2hlY2tzdW0g PSAiY2NmM2VjNjUxYTg0N2ViMDFkZTczY2NhZDE1ZWI3ZDk5ZjgwNDg1ZGUwNDNlZmIyZjM3MGNk NjU0ZjRlYTQ0YiIKLSAKLSBbW3BhY2thZ2VdXQotLW5hbWUgPSAid2FzaSIKLS12ZXJzaW9uID0g IjAuMTQuMit3YXNpLTAuMi40IgotK25hbWUgPSAid2FzaXAyIgotK3ZlcnNpb24gPSAiMS4wLjIr d2FzaS0wLjIuOSIKLStzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3Qt bGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0rY2hlY2tzdW0gPSAiOTUxN2Y5MjM5ZjAyYzA2OWRiNzVl NjVmMTc0YjNkYTgyOGZlNWY1Yjk0NWM0ZGQyNmJkMjVkODljMDNlYmNmNSIKLStkZXBlbmRlbmNp ZXMgPSBbCi0rICJ3aXQtYmluZGdlbiIsCi0rXQotKwotK1tbcGFja2FnZV1dCi0rbmFtZSA9ICJ3 YXNpcDMiCi0rdmVyc2lvbiA9ICIwLjQuMCt3YXNpLTAuMy4wLXJjLTIwMjYtMDEtMDYiCi0rc291 cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWlu ZGV4IgotK2NoZWNrc3VtID0gIjU0MjhmOGJmODhlYTVkZGMwOGZhZGRlZjJhYzRhNjdlMzkwYjg4 MTg2YzcwM2NlNmRiZDk1NWUxYzE0NWFjYTUiCi0rZGVwZW5kZW5jaWVzID0gWwotKyAid2l0LWJp bmRnZW4iLAotK10KLSsKLStbW3BhY2thZ2VdXQotK25hbWUgPSAid2FzbS1lbmNvZGVyIgotK3Zl cnNpb24gPSAiMC4yNDQuMCIKLStzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29t L3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0rY2hlY2tzdW0gPSAiOTkwMDY1ZjJmZTYzMDAz ZmUzMzdiOTMyY2ZiNWUzYjgwZTBiNGQwZjVmZjY1MGU2OTg1YjEwNDhmNjJjODMxOSIKLStkZXBl bmRlbmNpZXMgPSBbCi0rICJsZWIxMjhmbXQiLAotKyAid2FzbXBhcnNlciIsCi0rXQotKwotK1tb cGFja2FnZV1dCi0rbmFtZSA9ICJ3YXNtLW1ldGFkYXRhIgotK3ZlcnNpb24gPSAiMC4yNDQuMCIK LStzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMu aW8taW5kZXgiCi0rY2hlY2tzdW0gPSAiYmIwZTM1M2U2YTJmYmRjMTc2OTMyYmJhYWI0OTM3NjJl YjEyNTVhNzkwMGZlMGZlYTFhMmY5NmMyOTZjYzkwOSIKLStkZXBlbmRlbmNpZXMgPSBbCi0rICJh bnlob3ciLAotKyAiaW5kZXhtYXAgMi4xMy4wIiwKLSsgIndhc20tZW5jb2RlciIsCi0rICJ3YXNt cGFyc2VyIiwKLStdCi0rCi0rW1twYWNrYWdlXV0KLStuYW1lID0gIndhc21wYXJzZXIiCi0rdmVy c2lvbiA9ICIwLjI0NC4wIgotIHNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20v cnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKLS1jaGVja3N1bSA9ICI5NjgzZjlhNWE5OThkODcz YzBkMjFmY2JlM2MwODMwMDk2NzAxNDlhOGZhYjIyODY0NGI4YmQzNmIyYzQ4Y2IzIgotK2NoZWNr c3VtID0gIjQ3YjgwN2M3MmUxYmFjNjkzODJiM2E2ZmIzZGJlOGVhNGMwZWQ4N2ZmNTYyOWI4Njg1 YWU2YjlhNjExMDI4ZmUiCi0gZGVwZW5kZW5jaWVzID0gWwotLSAid2l0LWJpbmRnZW4tcnQiLAot KyAiYml0ZmxhZ3MgMi4xMS4wIiwKLSsgImhhc2hicm93biAwLjE1LjUiLAotKyAiaW5kZXhtYXAg Mi4xMy4wIiwKLSsgInNlbXZlciIsCi0gXQotIAotIFtbcGFja2FnZV1dCi1AQCAtNzkwLDkgKzg3 MCw5IEBAIGNoZWNrc3VtID0gImFjM2I4N2M2MzYyMDQyNmRkOWI5OTFlNWNlMDMyOWVmZjU0NWJj Y2JiYjM0ZjNiZTA5ZmY2ZmI2YWI1MWI3YjYiCi0gCi0gW1twYWNrYWdlXV0KLSBuYW1lID0gIndp bmFwaS11dGlsIgotLXZlcnNpb24gPSAiMC4xLjkiCi0rdmVyc2lvbiA9ICIwLjEuMTEiCi0gc291 cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWlu ZGV4IgotLWNoZWNrc3VtID0gImNmMjIxYzkzZTEzYTMwZDc5M2Y3NjQ1YTBlNzc2MmM1NWQxNjlk YmIwYTQ5NjcxOTE4YTIzMTlkMjg5YjEwYmIiCi0rY2hlY2tzdW0gPSAiYzJhN2IxYzAzYzg3NjEy MmFhNDNmMzAyMGU2YzNjM2VlNWMwNTA4MWM5YTAwNzM5ZmFmNzUwM2FlYmExMGQyMiIKLSBkZXBl bmRlbmNpZXMgPSBbCi0gICJ3aW5kb3dzLXN5cyIsCi0gXQotQEAgLTgwNCwxMDMgKzg4NCwxMzAg QEAgc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVz LmlvLWluZGV4IgotIGNoZWNrc3VtID0gIjcxMmUyMjc4NDFkMDU3YzFlZTFjZDJmYjIyZmE3ZTVh NTQ2MWFlOGU0OGZhMmNhNzllYzQyY2ZjMTkzMTE4M2YiCi0gCi0gW1twYWNrYWdlXV0KLS1uYW1l ID0gIndpbmRvd3Mtc3lzIgotLXZlcnNpb24gPSAiMC41OS4wIgotK25hbWUgPSAid2luZG93cy1s aW5rIgotK3ZlcnNpb24gPSAiMC4yLjEiCi0gc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0 aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgotLWNoZWNrc3VtID0gIjFlMzhiYzRk NzllZDY3ZmQwNzViY2MyNTFhMWMzOWIzMmExNzc2YmJlOTJlNWJlZjFmMGJmMWY4YzUzMTg1M2Ii Ci0tZGVwZW5kZW5jaWVzID0gWwotLSAid2luZG93cy10YXJnZXRzIiwKLS1dCi0rY2hlY2tzdW0g PSAiZjA4MDUyMjJlNTdmNzUyMWQ2YTYyZTM2ZmE5MTYzYmM4OTFhY2Q0MjJmOTcxZGVmZTk3ZDY0 ZTcwZDBhNGZlNSIKLSAKLSBbW3BhY2thZ2VdXQotLW5hbWUgPSAid2luZG93cy10YXJnZXRzIgot LXZlcnNpb24gPSAiMC41Mi42IgotK25hbWUgPSAid2luZG93cy1zeXMiCi0rdmVyc2lvbiA9ICIw LjYxLjIiCi0gc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcv Y3JhdGVzLmlvLWluZGV4IgotLWNoZWNrc3VtID0gIjliNzI0ZjcyNzk2ZTAzNmFiOTBjMTAyMWQ0 NzgwZDRkM2Q2NDhhY2E1OWU0OTFlNmI5OGU3MjViODRlOTk5NzMiCi0rY2hlY2tzdW0gPSAiYWUx MzcyMjliY2JkNmNkZjBmN2I4MGEzMWRmNjE3NjYxNDUwNzdkZGY0OTQxNmE3MjhiMDJjYjM5MjFm ZjNmYyIKLSBkZXBlbmRlbmNpZXMgPSBbCi0tICJ3aW5kb3dzX2FhcmNoNjRfZ251bGx2bSIsCi0t ICJ3aW5kb3dzX2FhcmNoNjRfbXN2YyIsCi0tICJ3aW5kb3dzX2k2ODZfZ251IiwKLS0gIndpbmRv d3NfaTY4Nl9nbnVsbHZtIiwKLS0gIndpbmRvd3NfaTY4Nl9tc3ZjIiwKLS0gIndpbmRvd3NfeDg2 XzY0X2dudSIsCi0tICJ3aW5kb3dzX3g4Nl82NF9nbnVsbHZtIiwKLS0gIndpbmRvd3NfeDg2XzY0 X21zdmMiLAotKyAid2luZG93cy1saW5rIiwKLSBdCi0gCi0gW1twYWNrYWdlXV0KLS1uYW1lID0g IndpbmRvd3NfYWFyY2g2NF9nbnVsbHZtIgotLXZlcnNpb24gPSAiMC41Mi42IgotK25hbWUgPSAi d2l0LWJpbmRnZW4iCi0rdmVyc2lvbiA9ICIwLjUxLjAiCi0gc291cmNlID0gInJlZ2lzdHJ5K2h0 dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgotLWNoZWNrc3VtID0g IjMyYTQ2MjIxODBlN2EwZWMwNDRiYjU1NTQwNGM4MDBiYzlmZDllYzI2MmVjMTQ3ZWRkNTk4OWNj ZDBjMDJjZDMiCi0tCi0tW1twYWNrYWdlXV0KLS1uYW1lID0gIndpbmRvd3NfYWFyY2g2NF9tc3Zj IgotLXZlcnNpb24gPSAiMC41Mi42IgotLXNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1 Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKLS1jaGVja3N1bSA9ICIwOWVjMmE3YmIx NTJlMjI1MmI1M2ZhNzgwMzE1MDAwNzg3OTU0OGJjNzA5YzAzOWRmNzYyN2NhYmJkMDVkNDY5Igot LQotLVtbcGFja2FnZV1dCi0tbmFtZSA9ICJ3aW5kb3dzX2k2ODZfZ251IgotLXZlcnNpb24gPSAi MC41Mi42IgotLXNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5n L2NyYXRlcy5pby1pbmRleCIKLS1jaGVja3N1bSA9ICI4ZTliNWFkNWFiODAyZTk3ZWI4ZTI5NWFj NjcyMGU1MDllZTRjMjQzZjY5ZDc4MTM5NDAxNGViZmU4YmJmYTBiIgotLQotLVtbcGFja2FnZV1d Ci0tbmFtZSA9ICJ3aW5kb3dzX2k2ODZfZ251bGx2bSIKLS12ZXJzaW9uID0gIjAuNTIuNiIKLS1z b3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8t aW5kZXgiCi0tY2hlY2tzdW0gPSAiMGVlZTUyZDM4YzA5MGIzY2FhNzZjNTYzYjg2YzNhNGJkNzFl ZjFhODE5Mjg3YzE5ZDU4NmQ3MzM0YWU4ZWQ2NiIKLStjaGVja3N1bSA9ICJkNzI0OTIxOWY2NmNl ZDAyOTY5Mzg4Y2YyYmIwNDRhMDk3NTZhMDgzZDBmYWIxZTU2NjA1NmIwNGQ5ZmJjYWE1IgotK2Rl cGVuZGVuY2llcyA9IFsKLSsgIndpdC1iaW5kZ2VuLXJ1c3QtbWFjcm8iLAotK10KLSAKLSBbW3Bh Y2thZ2VdXQotLW5hbWUgPSAid2luZG93c19pNjg2X21zdmMiCi0tdmVyc2lvbiA9ICIwLjUyLjYi Ci0rbmFtZSA9ICJ3aXQtYmluZGdlbi1jb3JlIgotK3ZlcnNpb24gPSAiMC41MS4wIgotIHNvdXJj ZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRl eCIKLS1jaGVja3N1bSA9ICIyNDA5NDhiYzA1YzVlN2M2ZGFiYmEyOGJmODlkODlmZmNlM2UzMDMw MjI4MDllNzNkZWFlZmU0ZjZlYzU2YzY2IgotK2NoZWNrc3VtID0gImVhNjFkZTY4NGMzZWE2OGNi MDgyYjdhODg1MDhhOGIyN2ZjYzhiNzk3ZDczOGJmYzk5YTgyZmFjZjFkNzUyZGMiCi0rZGVwZW5k ZW5jaWVzID0gWwotKyAiYW55aG93IiwKLSsgImhlY2sgMC41LjAiLAotKyAid2l0LXBhcnNlciIs Ci0rXQotIAotIFtbcGFja2FnZV1dCi0tbmFtZSA9ICJ3aW5kb3dzX3g4Nl82NF9nbnUiCi0tdmVy c2lvbiA9ICIwLjUyLjYiCi0rbmFtZSA9ICJ3aXQtYmluZGdlbi1ydXN0IgotK3ZlcnNpb24gPSAi MC41MS4wIgotIHNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5n L2NyYXRlcy5pby1pbmRleCIKLS1jaGVja3N1bSA9ICIxNDdhNWM4MGFhYmZiZjBjN2Q5MDFjYjU4 OTVkMWRlMzBlZjI5MDdlYjIxZmJiYWIyOWNhOTRjNWIwOGIxYTc4IgotK2NoZWNrc3VtID0gImI3 YzU2NmUwZjRiMjg0ZGQ2NTYxYzc4NmQ5Y2IwMTQyZGE0OTFmNDZhOWZiZWQ3OWVhNjljZGFkNWRi MTdmMjEiCi0rZGVwZW5kZW5jaWVzID0gWwotKyAiYW55aG93IiwKLSsgImhlY2sgMC41LjAiLAot KyAiaW5kZXhtYXAgMi4xMy4wIiwKLSsgInByZXR0eXBsZWFzZSIsCi0rICJzeW4gMi4wLjExNyIs Ci0rICJ3YXNtLW1ldGFkYXRhIiwKLSsgIndpdC1iaW5kZ2VuLWNvcmUiLAotKyAid2l0LWNvbXBv bmVudCIsCi0rXQotIAotIFtbcGFja2FnZV1dCi0tbmFtZSA9ICJ3aW5kb3dzX3g4Nl82NF9nbnVs bHZtIgotLXZlcnNpb24gPSAiMC41Mi42IgotK25hbWUgPSAid2l0LWJpbmRnZW4tcnVzdC1tYWNy byIKLSt2ZXJzaW9uID0gIjAuNTEuMCIKLSBzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRo dWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0tY2hlY2tzdW0gPSAiMjRkNWIyM2Rj NDE3NDEyNjc5NjgxMzk2ZjJiNDlmM2RlOGMxNDczZGViNTE2YmQzNDQxMDg3MmVmZjUxZWQwZCIK LStjaGVja3N1bSA9ICIwYzBmOWJmZDc3ZTZhNDhlY2NmNTEzNTllM2FlNzcxNDBhN2Y1MGIxZTJl YmZlNjI0MjJkOGFmZGFmZmFiMTdhIgotK2RlcGVuZGVuY2llcyA9IFsKLSsgImFueWhvdyIsCi0r ICJwcmV0dHlwbGVhc2UiLAotKyAicHJvYy1tYWNybzIiLAotKyAicXVvdGUiLAotKyAic3luIDIu MC4xMTciLAotKyAid2l0LWJpbmRnZW4tY29yZSIsCi0rICJ3aXQtYmluZGdlbi1ydXN0IiwKLStd Ci0gCi0gW1twYWNrYWdlXV0KLS1uYW1lID0gIndpbmRvd3NfeDg2XzY0X21zdmMiCi0tdmVyc2lv biA9ICIwLjUyLjYiCi0rbmFtZSA9ICJ3aXQtY29tcG9uZW50IgotK3ZlcnNpb24gPSAiMC4yNDQu MCIKLSBzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0 ZXMuaW8taW5kZXgiCi0tY2hlY2tzdW0gPSAiNTg5ZjZkYTg0YzY0NjIwNDc0N2QxMjcwYTJhNTY2 MWVhNjZlZDFjY2VkMjYzMWQ1NDZmZGZiMTU1OTU5ZjllYyIKLStjaGVja3N1bSA9ICI5ZDY2ZWEy MGU5NTUzYjMwMTcyYjVlODMxOTk0ZTM1ZmJkZTJkMTY1MzI1YmVjODRmYzQzZGJmNmY0ZWI5Y2Iy IgotK2RlcGVuZGVuY2llcyA9IFsKLSsgImFueWhvdyIsCi0rICJiaXRmbGFncyAyLjExLjAiLAot KyAiaW5kZXhtYXAgMi4xMy4wIiwKLSsgImxvZyIsCi0rICJzZXJkZSIsCi0rICJzZXJkZV9kZXJp dmUiLAotKyAic2VyZGVfanNvbiIsCi0rICJ3YXNtLWVuY29kZXIiLAotKyAid2FzbS1tZXRhZGF0 YSIsCi0rICJ3YXNtcGFyc2VyIiwKLSsgIndpdC1wYXJzZXIiLAotK10KLSAKLSBbW3BhY2thZ2Vd XQotLW5hbWUgPSAid2l0LWJpbmRnZW4tcnQiCi0tdmVyc2lvbiA9ICIwLjM5LjAiCi0rbmFtZSA9 ICJ3aXQtcGFyc2VyIgotK3ZlcnNpb24gPSAiMC4yNDQuMCIKLSBzb3VyY2UgPSAicmVnaXN0cnkr aHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCi0tY2hlY2tzdW0g PSAiNmY0MjMyMGU2MWZlMmNmZDM0MzU0ZWNiNTk3Zjg2ZjQxMzQ4NGE3OThiYTQ0YThjYTExNjVj NThkNDJkYTZjMSIKLStjaGVja3N1bSA9ICJlY2M4YWM0YmMxZGMzMzgxYjdmNTljMzRmMDBiNjdl MThmOTEwYzJjMGY1MDAxNTY2OWRkZTdkZWY2NTZhNzM2IgotIGRlcGVuZGVuY2llcyA9IFsKLS0g ImJpdGZsYWdzIDIuOS4xIiwKLSsgImFueWhvdyIsCi0rICJpZC1hcmVuYSIsCi0rICJpbmRleG1h cCAyLjEzLjAiLAotKyAibG9nIiwKLSsgInNlbXZlciIsCi0rICJzZXJkZSIsCi0rICJzZXJkZV9k ZXJpdmUiLAotKyAic2VyZGVfanNvbiIsCi0rICJ1bmljb2RlLXhpZCIsCi0rICJ3YXNtcGFyc2Vy IiwKLSBdCi0gCi0gW1twYWNrYWdlXV0KLSBuYW1lID0gInplcm9pemUiCi0tdmVyc2lvbiA9ICIx LjguMSIKLSt2ZXJzaW9uID0gIjEuOC4yIgotIHNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dp dGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKLS1jaGVja3N1bSA9ICJjZWQzNjc4 YTI4NzliMzAzMDZkMzIzZjQ1NDI2MjY2OTdhNDY0YTk3YzBhMDdjOWFlYmY3ZWJjYTY1Y2Q0ZGRl IgotK2NoZWNrc3VtID0gImI5NzE1NGU2N2UzMmM4NTQ2NTgyNmU4YmNjMWM1OTQyOWFhYWYxMDdj MWU0YTllNTNjOGQ4Y2NkNWVmZjg4ZDAiCi0gZGVwZW5kZW5jaWVzID0gWwotICAiemVyb2l6ZV9k ZXJpdmUiLAotIF0KLSAKLSBbW3BhY2thZ2VdXQotIG5hbWUgPSAiemVyb2l6ZV9kZXJpdmUiCi0t dmVyc2lvbiA9ICIxLjQuMiIKLSt2ZXJzaW9uID0gIjEuNC4zIgotIHNvdXJjZSA9ICJyZWdpc3Ry eStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKLS1jaGVja3N1 bSA9ICJjZTM2ZTY1YjBkMjk5OWQyYWFmYWM5ODlmYjI0OTE4OWExNDFhZWUxZjUzYzYxMmMxZjM3 ZDcyNjMxOTU5ZjY5IgotK2NoZWNrc3VtID0gIjg1YTViNDE1ODQ5OTg3NmM3NjNjYjAzYmM0ZTQ5 MTg1ZDNjY2NiYWJiMTViMzNjNjI3Zjc4ODRmNDNkYjg1MmUiCi0gZGVwZW5kZW5jaWVzID0gWwot ICAicHJvYy1tYWNybzIiLAotICAicXVvdGUiLAotLSAic3luIDIuMC4xMDMiLAotKyAic3luIDIu MC4xMTciLAotIF0KLSsKLStbW3BhY2thZ2VdXQotK25hbWUgPSAiem1paiIKLSt2ZXJzaW9uID0g IjEuMC4yMSIKLStzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFu Zy9jcmF0ZXMuaW8taW5kZXgiCi0rY2hlY2tzdW0gPSAiYjg4NDhlZTY3ZWNjOGFlZGJhZjNlNDEy MjIxN2FmZjg5MjYzOTIzMWJlZmM2YTFiNThkMjlmZmY0YzJjYWJhYSIKLWRpZmYgLS1naXQgYS9z cmMvbGlicnNsYXBkL0NhcmdvLnRvbWwgYi9zcmMvbGlicnNsYXBkL0NhcmdvLnRvbWwKLWluZGV4 IGYzOGY5M2Y0Yy4uNjExMDBmMzgxIDEwMDY0NAotLS0tIGEvc3JjL2xpYnJzbGFwZC9DYXJnby50 b21sCi0rKysgYi9zcmMvbGlicnNsYXBkL0NhcmdvLnRvbWwKLUBAIC0xNiw3ICsxNiw3IEBAIGNy YXRlLXR5cGUgPSBbInN0YXRpY2xpYiIsICJsaWIiXQotIFtkZXBlbmRlbmNpZXNdCi0gc2xhcGQg PSB7IHBhdGggPSAiLi4vc2xhcGQiIH0KLSBsaWJjID0gIjAuMiIKLS1jb25jcmVhZCA9ICIwLjUu NiIKLStjb25jcmVhZCA9ICIwLjUuMTAiCi0gCi0gW2J1aWxkLWRlcGVuZGVuY2llc10KLSBjYmlu ZGdlbiA9ICIwLjI2IgotLS0gCi0yLjUzLjAKLQoKZGlmZiAtLWdpdCBhLzAwNTgtSXNzdWUtNzI3 MS1wbHVnaW5zLXRoYXQtY3JlYXRlLXRocmVhZHMtbmVlZC10by11cGRhdC5wYXRjaCBiLzAwNTgt SXNzdWUtNzI3MS1wbHVnaW5zLXRoYXQtY3JlYXRlLXRocmVhZHMtbmVlZC10by11cGRhdC5wYXRj aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzFhMjU0ZC4uMDAwMDAwMAotLS0gYS8w MDU4LUlzc3VlLTcyNzEtcGx1Z2lucy10aGF0LWNyZWF0ZS10aHJlYWRzLW5lZWQtdG8tdXBkYXQu cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw4NiArMCwwIEBACi1Gcm9tIDhiNGRiZjM1YWNlMzI2 ZTViODM2OTgyZDQyOGU3MDI5MzEzYTIyNDcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9t OiBNYXJrIFJleW5vbGRzIDxtcmV5bm9sZHNAcmVkaGF0LmNvbT4KLURhdGU6IE1vbiwgMjMgRmVi IDIwMjYgMTI6Mzc6MjYgLTA1MDAKLVN1YmplY3Q6IFtQQVRDSF0gSXNzdWUgNzI3MSAtIHBsdWdp bnMgdGhhdCBjcmVhdGUgdGhyZWFkcyBuZWVkIHRvIHVwZGF0ZSAKLSBhY3RpdmUgdGhyZWFkIGNv dW50Ci0KLURlc2NyaXB0aW9uOgotCi1QbHVnaW5zIHRoYXQgY3JlYXRlIHRocmVhZHMgbmVlZCB0 byB1cCB0byB0aGUgZ2xvYmFsIGFjdGl2ZSB0aHJlYWQgY291bnQuCi1PdGhlcndpc2Ugd2hlbiB0 aGUgc2VydmVyIGlzIGJlaW5nIHN0b3BwZWQgdGhlIHBsdWdpbidzIGNsb3NlIGZ1bmN0aW9uIGdl dHMKLWNhbGxlZCB3aGlsZSB0aGVzZSB0aHJlYWRzIGFyZSBzdGlsbCBydW5uaW5nIGFuZCBzdGls bCB1c2luZyB0aGUgcGx1Z2luCi1jb25maWd1cmF0aW9uLiBUaGlzIGNhbiBsZWFkIHRvIGNyYXNo ZXMuCi0KLXJlbGF0ZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS8zODlkcy8zODktZHMtYmFzZS9pc3N1 ZXMvNzI3MQotCi1SZXZpZXdlZCBieTogcHJvZ2llciAmIHRib3JkYXogKFRoYW5rcyEhKQotLS0t Ci0gbGRhcC9zZXJ2ZXJzL3BsdWdpbnMvcmVwbGljYXRpb24vcmVwbDVfcHJvdG9jb2wuYyB8IDUg KysrKysKLSBsZGFwL3NlcnZlcnMvcGx1Z2lucy9yZXRyb2NsL3JldHJvY2xfdHJpbS5jICAgICAg IHwgNyArKysrKystCi0gMiBmaWxlcyBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCAxIGRlbGV0 aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9sZGFwL3NlcnZlcnMvcGx1Z2lucy9yZXBsaWNhdGlvbi9y ZXBsNV9wcm90b2NvbC5jIGIvbGRhcC9zZXJ2ZXJzL3BsdWdpbnMvcmVwbGljYXRpb24vcmVwbDVf cHJvdG9jb2wuYwotaW5kZXggNWQ0YTBlNDU1Li5iYzk1ODAzMTkgMTAwNjQ0Ci0tLS0gYS9sZGFw L3NlcnZlcnMvcGx1Z2lucy9yZXBsaWNhdGlvbi9yZXBsNV9wcm90b2NvbC5jCi0rKysgYi9sZGFw L3NlcnZlcnMvcGx1Z2lucy9yZXBsaWNhdGlvbi9yZXBsNV9wcm90b2NvbC5jCi1AQCAtMjMsNiAr MjMsNyBAQAotIAotICNpbmNsdWRlICJyZXBsNS5oIgotICNpbmNsdWRlICJyZXBsNV9wcm90X3By aXZhdGUuaCIKLSsjaW5jbHVkZSAic2xhcC5oIgotIAotICNkZWZpbmUgUFJPVE9DT0xfNV9JTkNS RU1FTlRBTCAxCi0gI2RlZmluZSBQUk9UT0NPTF81X1RPVEFMIDIKLUBAIC0yMzcsNiArMjM4LDgg QEAgcHJvdF90aHJlYWRfbWFpbih2b2lkICphcmcpCi0gICAgICAgICByZXR1cm47Ci0gICAgIH0K LSAKLSsgICAgZ19pbmNyX2FjdGl2ZV90aHJlYWRjbnQoKTsKLSsKLSAgICAgc2V0X3RocmVhZF9w cml2YXRlX2FnbXRuYW1lKGFnbXRfZ2V0X2xvbmdfbmFtZShhZ210KSk7Ci0gCi0gICAgIGRvbmUg PSAwOwotQEAgLTMwMSw2ICszMDQsOCBAQCBwcm90X3RocmVhZF9tYWluKHZvaWQgKmFyZykKLSAg ICAgICAgICAgICBkb25lID0gMTsKLSAgICAgICAgIH0KLSAgICAgfQotKwotKyAgICBnX2RlY3Jf YWN0aXZlX3RocmVhZGNudCgpOwotIH0KLSAKLSAvKgotZGlmZiAtLWdpdCBhL2xkYXAvc2VydmVy cy9wbHVnaW5zL3JldHJvY2wvcmV0cm9jbF90cmltLmMgYi9sZGFwL3NlcnZlcnMvcGx1Z2lucy9y ZXRyb2NsL3JldHJvY2xfdHJpbS5jCi1pbmRleCA4ZmNkM2QzMmIuLjhmZGM3NWM2MiAxMDA2NDQK LS0tLSBhL2xkYXAvc2VydmVycy9wbHVnaW5zL3JldHJvY2wvcmV0cm9jbF90cmltLmMKLSsrKyBi L2xkYXAvc2VydmVycy9wbHVnaW5zL3JldHJvY2wvcmV0cm9jbF90cmltLmMKLUBAIC0yNDMsNiAr MjQzLDggQEAgdHJpbV9jaGFuZ2Vsb2codm9pZCkKLSAKLSAgICAgbm93X2ludGVydmFsID0gc2xh cGlfY3VycmVudF9yZWxfdGltZV90KCk7IC8qIG1vbm90b25pYyB0aW1lIGZvciBpbnRlcnZhbCAq LwotIAotKyAgICBnX2luY3JfYWN0aXZlX3RocmVhZGNudCgpOwotKwotICAgICBQUl9Mb2NrKHRz LnRzX3NfdHJpbV9tdXRleCk7Ci0gICAgIG1heF9hZ2UgPSB0cy50c19jX21heF9hZ2U7Ci0gICAg IHRyaW1faW50ZXJ2YWwgPSB0cy50c19jX3RyaW1faW50ZXJ2YWw7Ci1AQCAtMjU3LDcgKzI1OSw3 IEBAIHRyaW1fY2hhbmdlbG9nKHZvaWQpCi0gICAgICAgICAgKi8KLSAgICAgICAgIGRvbmUgPSAw OwotICAgICAgICAgbm93X21heGFnZSA9IHNsYXBpX2N1cnJlbnRfdXRjX3RpbWUoKTsgLyogcmVh bCB0aW1lIGZvciB0cmltIGNhbmRpZGF0ZXMgKi8KLS0gICAgICAgIHdoaWxlICghZG9uZSAmJiBy ZXRyb2NsX3RyaW1taW5nID09IDEpIHsKLSsgICAgICAgIHdoaWxlICghZG9uZSAmJiByZXRyb2Ns X3RyaW1taW5nID09IDEgJiYgIXNsYXBpX2lzX3NodXR0aW5nX2Rvd24oKSkgewotICAgICAgICAg ICAgIGludCBkaWRfZGVsZXRlOwotIAotICAgICAgICAgICAgIGRpZF9kZWxldGUgPSAwOwotQEAg LTMwOSw2ICszMTEsOSBAQCB0cmltX2NoYW5nZWxvZyh2b2lkKQotICAgICAgICAgICAgICAgICAg ICAgICAidHJpbV9jaGFuZ2Vsb2c6IHJlbW92ZWQgJWQgY2hhbmdlIHJlY29yZHNcbiIsCi0gICAg ICAgICAgICAgICAgICAgICAgIG51bV9kZWxldGVkKTsKLSAgICAgfQotKwotKyAgICBnX2RlY3Jf YWN0aXZlX3RocmVhZGNudCgpOwotKwotICAgICByZXR1cm4gcmM7Ci0gfQotIAotLS0gCi0yLjUz LjAKLQoKZGlmZiAtLWdpdCBhLzAwNTktSXNzdWUtNzI3My1Jbi1hLWNoYWluaW5nLWVudmlyb25t ZW50LWJpbmRpbmctYXMtcmVtby5wYXRjaCBiLzAwNTktSXNzdWUtNzI3My1Jbi1hLWNoYWluaW5n LWVudmlyb25tZW50LWJpbmRpbmctYXMtcmVtby5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggODllOTk2Ni4uMDAwMDAwMAotLS0gYS8wMDU5LUlzc3VlLTcyNzMtSW4tYS1jaGFp bmluZy1lbnZpcm9ubWVudC1iaW5kaW5nLWFzLXJlbW8ucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAt MSw0MCArMCwwIEBACi1Gcm9tIGZmZTE5MDllNjlhYjJhZWNlZjM5NmYzMWNmOTVjZGNlY2Q5OTI3 ODIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBNYXJrIFJleW5vbGRzIDxtcmV5bm9s ZHNAcmVkaGF0LmNvbT4KLURhdGU6IE1vbiwgMjMgRmViIDIwMjYgMTI6MTA6MzIgLTA1MDAKLVN1 YmplY3Q6IFtQQVRDSF0gSXNzdWUgNzI3MyAtIEluIGEgY2hhaW5pbmcgZW52aXJvbm1lbnQgYmlu ZGluZyBhcyByZW1vdGUgdXNlcgotIGNhdXNlcyBhbiBpbnZhbGlkIGVycm9yIGluIHRoZSBsb2dz Ci0KLURlc2NyaXB0aW9uOgotCi1JbiBhIGRhdGFiYXNlIGxpbmsvY2hhaW5pbmcgZW52aXJvbm1l bnQgeW91IGNhbiBiaW5kIGFzIGEgcmVtb3RlIHVzZXIsIGFuZAotdGhpcyB0cmlnZ2VycyBhbiBl cnJvciB3aGVuIHRyeWluZyB0byAidXBncmFkZV9vbl9iaW5kIiBhcyB0aGUgdXNlciBkb2VzIG5v dAotbG9jYWxseSBoYXZlIGEgdXNlcnBhc3N3b3JkIHNpbmNlIGl0J3MgcmVtb3RlLiBUaGVyZSBp cyBubyBzdHJvbmcgY2FzZSB0bwotbG9nIGFuIGVycm9yIGluIHRoaXMgc2l0dWF0aW9uLgotCi1y ZWxhdGVzOiBodHRwOi8vZ2l0aHViLmNvbS8zODlkcy8zODktZHMtYmFzZS9pc3N1ZXMvNzI3Mwot Ci1SZXZpZXdlZCBieTogdmFzaGlyb3YoVGhhbmtzISkKLS0tLQotIGxkYXAvc2VydmVycy9zbGFw ZC9wdy5jIHwgNiArKy0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCA0IGRl bGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL3B3LmMgYi9sZGFw L3NlcnZlcnMvc2xhcGQvcHcuYwotaW5kZXggYzUzZWNmMjNkLi44OGUzMjUzN2QgMTAwNjQ0Ci0t LS0gYS9sZGFwL3NlcnZlcnMvc2xhcGQvcHcuYwotKysrIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL3B3 LmMKLUBAIC0zNTY0LDEwICszNTY0LDggQEAgaW50MzJfdCB1cGRhdGVfcHdfZW5jb2RpbmcoU2xh cGlfUEJsb2NrICpvcmlnX3BiLCBTbGFwaV9FbnRyeSAqZSwgU2xhcGlfRE4gKnNkbiwKLSAgICAg ICogRG9lcyB0aGUgZW50cnkgaGF2ZSBhIHB3PwotICAgICAgKi8KLSAgICAgaWYgKGUgPT0gTlVM TCB8fCBzbGFwaV9lbnRyeV9hdHRyX2ZpbmQoZSwgU0xBUElfVVNFUlBXRF9BVFRSLCAmcHcpICE9 IDAgfHwgcHcgPT0gTlVMTCkgewotLSAgICAgICAgc2xhcGlfbG9nX2VycihTTEFQSV9MT0dfV0FS TklORywKLS0gICAgICAgICAgICAgICAgICAgICAgInVwZGF0ZV9wd19lbmNvZGluZyIsICJDb3Vs ZCBub3QgcmVhZCBwYXNzd29yZCBhdHRyaWJ1dGUgb24gJyVzJ1xuIiwKLS0gICAgICAgICAgICAg ICAgICAgICAgZG4pOwotLSAgICAgICAgcmVzID0gLTE7Ci0rICAgICAgICAvKiBUaGUgZW50cnkg ZG9lcyBub3QgaGF2ZSBhIHVzZXJwYXNzd29yZCBhdHRyaWJ1dGUgc28gdGhlcmUgaXMgbm90aGlu ZyB0byBkby4KLSsgICAgICAgICAqIFRoaXMgdHlwaWNhbGx5IGhhcHBlbnMgd2hlbiBjaGFpbmlu ZyBpcyBpbnZvbHZlZC4gKi8KLSAgICAgICAgIGdvdG8gZnJlZV9hbmRfcmV0dXJuOwotICAgICB9 Ci0gCi0tLSAKLTIuNTMuMAotCgpkaWZmIC0tZ2l0IGEvMDA2MC1Jc3N1ZS03Mjc5LVVJLUZpeC10 eXBvLWluLWV4cG9ydC1jZXJ0aWZpY2F0ZS1kaWFsb2ctLnBhdGNoIGIvMDA2MC1Jc3N1ZS03Mjc5 LVVJLUZpeC10eXBvLWluLWV4cG9ydC1jZXJ0aWZpY2F0ZS1kaWFsb2ctLnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYTRlNDEwLi4wMDAwMDAwCi0tLSBhLzAwNjAtSXNzdWUt NzI3OS1VSS1GaXgtdHlwby1pbi1leHBvcnQtY2VydGlmaWNhdGUtZGlhbG9nLS5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDQ2ICswLDAgQEAKLUZyb20gM2EyMzMxMTZhNTY0ZmMzMzlhZWUxMDIx OTEzYzk5NTUwNDk1MWQ4NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFNpbW9uIFBp Y2h1Z2luIDxzcGljaHVnaUByZWRoYXQuY29tPgotRGF0ZTogVHVlLCAyNCBGZWIgMjAyNiAwOToy ODoyNCAtMDgwMAotU3ViamVjdDogW1BBVENIXSBJc3N1ZSA3Mjc5IC0gVUkgLSBGaXggdHlwbyBp biBleHBvcnQgY2VydGlmaWNhdGUgZGlhbG9nCi0gKCM3MjgwKQotCi1EZXNjcmlwdGlvbjogRml4 IHR5cG8gImNldGlmaWNhdGUiIC0+ICJjZXJ0aWZpY2F0ZSIgaW4gdGhlCi1leHBvcnQgY2VydGlm aWNhdGUgZGlhbG9nIG1lc3NhZ2UuCi0KLUZpeGVzOiBodHRwczovL2dpdGh1Yi5jb20vMzg5ZHMv Mzg5LWRzLWJhc2UvaXNzdWVzLzcyNzkKLQotUmV2aWV3ZWQgYnk6IEB2YXNoaXJvdiAoVGhhbmtz ISkKLS0tLQotIHNyYy9jb2NrcGl0LzM4OS1jb25zb2xlL3BvL2phLnBvICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgMiArLQotIHNyYy9jb2NrcGl0LzM4OS1jb25zb2xlL3NyYy9saWIvc2Vj dXJpdHkvc2VjdXJpdHlNb2RhbHMuanN4IHwgMiArLQotIDIgZmlsZXMgY2hhbmdlZCwgMiBpbnNl cnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2NvY2twaXQvMzg5 LWNvbnNvbGUvcG8vamEucG8gYi9zcmMvY29ja3BpdC8zODktY29uc29sZS9wby9qYS5wbwotaW5k ZXggMjdkMjFiZjdhLi4xMmMxMGRlZDQgMTAwNjQ0Ci0tLS0gYS9zcmMvY29ja3BpdC8zODktY29u c29sZS9wby9qYS5wbwotKysrIGIvc3JjL2NvY2twaXQvMzg5LWNvbnNvbGUvcG8vamEucG8KLUBA IC0xMTU2MCw3ICsxMTU2MCw3IEBAIG1zZ3N0ciAi6Ki85piO5pu444Gu44Ko44Kv44K544Od44O8 44OIOiIKLSAjOiBzcmMvbGliL3NlY3VyaXR5L3NlY3VyaXR5TW9kYWxzLmpzeDo1OAotIG1zZ2lk ICIiCi0gIkVudGVyIHRoZSBmdWxsIHBhdGggYW5kIGZpbGUgbmFtZSwgaWYgdGhlIHBhdGggcG9y dGlvbiBpcyBvbWl0dGVkIHRoZSAiCi0tImNldGlmaWNhdGUgaXMgd3JpdHRlbiB0byB0aGUgc2Vy dmVyJ3MgY2VydGlmaWNhdGUgZGlyZWN0b3J5ICIKLSsiY2VydGlmaWNhdGUgaXMgd3JpdHRlbiB0 byB0aGUgc2VydmVyJ3MgY2VydGlmaWNhdGUgZGlyZWN0b3J5ICIKLSBtc2dzdHIgIiIKLSAi44OV 44Kh44Kk44Or5ZCN44KS5ZCr44KA44OV44Or44OR44K544KS5YWl5Yqb44GX44Gm44GP44Gg44GV 44GE44CC44OR44K56YOo5YiG44KS55yB55Wl44GX44Gf5aC05ZCI44CB6Ki85piO5pu444GvIgot ICLjgrXjg7zjg5Djga7oqLzmmI7mm7jjg4fjgqPjg6zjgq/jg4jjg6rjgavmm7jjgY3ovrzjgb7j gozjgb7jgZnjgIIiCi1kaWZmIC0tZ2l0IGEvc3JjL2NvY2twaXQvMzg5LWNvbnNvbGUvc3JjL2xp Yi9zZWN1cml0eS9zZWN1cml0eU1vZGFscy5qc3ggYi9zcmMvY29ja3BpdC8zODktY29uc29sZS9z cmMvbGliL3NlY3VyaXR5L3NlY3VyaXR5TW9kYWxzLmpzeAotaW5kZXggNGQ2NjMxZmQyLi5mMzJk NDc1OTYgMTAwNjQ0Ci0tLS0gYS9zcmMvY29ja3BpdC8zODktY29uc29sZS9zcmMvbGliL3NlY3Vy aXR5L3NlY3VyaXR5TW9kYWxzLmpzeAotKysrIGIvc3JjL2NvY2twaXQvMzg5LWNvbnNvbGUvc3Jj L2xpYi9zZWN1cml0eS9zZWN1cml0eU1vZGFscy5qc3gKLUBAIC01NSw3ICs1NSw3IEBAIGV4cG9y dCBjbGFzcyBFeHBvcnRDZXJ0TW9kYWwgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAg ICAgfQotIAotICAgICAgICAgY29uc3QgdGl0bGUgPSA8PntfKCJFeHBvcnQgQ2VydGlmaWNhdGU6 Iil9ICZuYnNwOyZuYnNwOzxpPntuaWNrTmFtZX08L2k+PC8+OwotLSAgICAgICAgY29uc3QgZGVz YyA9IDw+e18oIkVudGVyIHRoZSBmdWxsIHBhdGggYW5kIGZpbGUgbmFtZSwgaWYgdGhlIHBhdGgg cG9ydGlvbiBpcyBvbWl0dGVkIHRoZSBjZXRpZmljYXRlIGlzIHdyaXR0ZW4gdG8gdGhlIHNlcnZl cidzIGNlcnRpZmljYXRlIGRpcmVjdG9yeSAiKX08aT57Y2VydERpcn08L2k+PC8+OwotKyAgICAg ICAgY29uc3QgZGVzYyA9IDw+e18oIkVudGVyIHRoZSBmdWxsIHBhdGggYW5kIGZpbGUgbmFtZSwg aWYgdGhlIHBhdGggcG9ydGlvbiBpcyBvbWl0dGVkIHRoZSBjZXJ0aWZpY2F0ZSBpcyB3cml0dGVu IHRvIHRoZSBzZXJ2ZXIncyBjZXJ0aWZpY2F0ZSBkaXJlY3RvcnkgIil9PGk+e2NlcnREaXJ9PC9p PjwvPjsKLSAKLSAgICAgICAgIHJldHVybiAoCi0gICAgICAgICAgICAgPE1vZGFsCi0tLSAKLTIu NTMuMAotCgpkaWZmIC0tZ2l0IGEvMDA2MS1Jc3N1ZS03Mjc1LVVJLUltcHJvdmUtcGFzc3dvcmQt cG9saWN5LWZpZWxkLXZhbGlkYXRpLnBhdGNoIGIvMDA2MS1Jc3N1ZS03Mjc1LVVJLUltcHJvdmUt cGFzc3dvcmQtcG9saWN5LWZpZWxkLXZhbGlkYXRpLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCA0OWZlZTZiLi4wMDAwMDAwCi0tLSBhLzAwNjEtSXNzdWUtNzI3NS1VSS1JbXBy b3ZlLXBhc3N3b3JkLXBvbGljeS1maWVsZC12YWxpZGF0aS5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDExNzggKzAsMCBAQAotRnJvbSBmZmY4ZTU0Y2IyNjVhYzZlNjhiMDA2OTY3OWJkNGU3Njg1 NjQ3ZGNiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU2ltb24gUGljaHVnaW4gPHNw aWNodWdpQHJlZGhhdC5jb20+Ci1EYXRlOiBUdWUsIDI0IEZlYiAyMDI2IDA5OjMyOjQxIC0wODAw Ci1TdWJqZWN0OiBbUEFUQ0hdIElzc3VlIDcyNzUgLSBVSSAtIEltcHJvdmUgcGFzc3dvcmQgcG9s aWN5IGZpZWxkIHZhbGlkYXRpb24gaW4KLSBDb2NrcGl0IFVJICgjNzI3NikKLQotRGVzY3JpcHRp b246IFBhc3N3b3JkIHBvbGljeSBmaWVsZHMgaW4gdGhlIENvY2twaXQgVUkgbGFjayBjbGllbnQt c2lkZSB2YWxpZGF0aW9uLgotSW52YWxpZCB2YWx1ZXMgb25seSBwcm9kdWNlIGdlbmVyaWMgc2Vy dmVyLXNpZGUgZXJyb3JzIGFmdGVyIGNsaWNraW5nIFNhdmUuCi1BZGQgYSBzaGFyZWQgcHdwVmFs aWRhdGlvbiBtb2R1bGUgYW5kIGlubGluZSB2YWxpZGF0aW9uIHRvIGFsbCBudW1lcmljCi1wYXNz d29yZCBwb2xpY3kgZmllbGRzIGluIGdsb2JhbFB3cC5qc3ggYW5kIGxvY2FsUHdwLmpzeC4KLQot Rml4ZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS8zODlkcy8zODktZHMtYmFzZS9pc3N1ZXMvNzI3NQot Ci1SZXZpZXdlZCBieTogQG1yZXlub2xkczM4OSAoVGhhbmtzISkKLS0tLQotIC4uLi9zcmMvbGli L2RhdGFiYXNlL2dsb2JhbFB3cC5qc3ggICAgICAgICAgICB8ICA2MSArKysrKysrKy0KLSAuLi4v Mzg5LWNvbnNvbGUvc3JjL2xpYi9kYXRhYmFzZS9sb2NhbFB3cC5qc3ggfCAxMTcgKysrKysrKysr KysrKysrKystCi0gLi4uL3NyYy9saWIvZGF0YWJhc2UvcHdwVmFsaWRhdGlvbi5qc3ggICAgICAg IHwgMTA1ICsrKysrKysrKysrKysrKysKLSAzIGZpbGVzIGNoYW5nZWQsIDI3MiBpbnNlcnRpb25z KCspLCAxMSBkZWxldGlvbnMoLSkKLSBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2NvY2twaXQvMzg5 LWNvbnNvbGUvc3JjL2xpYi9kYXRhYmFzZS9wd3BWYWxpZGF0aW9uLmpzeAotCi1kaWZmIC0tZ2l0 IGEvc3JjL2NvY2twaXQvMzg5LWNvbnNvbGUvc3JjL2xpYi9kYXRhYmFzZS9nbG9iYWxQd3AuanN4 IGIvc3JjL2NvY2twaXQvMzg5LWNvbnNvbGUvc3JjL2xpYi9kYXRhYmFzZS9nbG9iYWxQd3AuanN4 Ci1pbmRleCBkNDc5YzMyZTcuLjIwNWU0NzM1ZCAxMDA2NDQKLS0tLSBhL3NyYy9jb2NrcGl0LzM4 OS1jb25zb2xlL3NyYy9saWIvZGF0YWJhc2UvZ2xvYmFsUHdwLmpzeAotKysrIGIvc3JjL2NvY2tw aXQvMzg5LWNvbnNvbGUvc3JjL2xpYi9kYXRhYmFzZS9nbG9iYWxQd3AuanN4Ci1AQCAtMjMsNiAr MjMsMTIgQEAgaW1wb3J0IHsKLSBpbXBvcnQgVHlwZWFoZWFkU2VsZWN0IGZyb20gIi4uLy4uL2Rz QmFzaWNDb21wb25lbnRzLmpzeCI7Ci0gaW1wb3J0IFByb3BUeXBlcyBmcm9tICJwcm9wLXR5cGVz IjsKLSBpbXBvcnQgeyBTeW5jQWx0SWNvbiB9IGZyb20gJ0BwYXR0ZXJuZmx5L3JlYWN0LWljb25z JzsKLStpbXBvcnQgewotKyAgICBnZXRWYWxpZGF0aW9uUHJvcHMsCi0rICAgIGhhc0ludmFsaWRG aWVsZCwKLSsgICAgcmVuZGVyVmFsaWRhdGlvbkVycm9yLAotKyAgICB1cGRhdGVGaWVsZFZhbGlk YXRpb24sCi0rfSBmcm9tICIuL3B3cFZhbGlkYXRpb24uanN4IjsKLSAKLSBjb25zdCBfID0gY29j a3BpdC5nZXR0ZXh0OwotIAotQEAgLTExNCw2ICsxMjAsNyBAQCBleHBvcnQgY2xhc3MgR2xvYmFs UHdQb2xpY3kgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAgICAgIHNhdmVTeW50 YXhEaXNhYmxlZDogdHJ1ZSwKLSAgICAgICAgICAgICBzYXZlVFBSRGlzYWJsZWQ6IHRydWUsCi0g ICAgICAgICAgICAgaXNTZWxlY3RPcGVuOiBmYWxzZSwKLSsgICAgICAgICAgICBpbnZhbGlkRmll bGRzOiB7fSwKLSAgICAgICAgIH07Ci0gCi0gICAgICAgICAvLyBUb2dnbGUgY3VycmVudGx5IGFj dGl2ZSB0YWIKLUBAIC0yNDIsNiArMjQ5LDcgQEAgZXhwb3J0IGNsYXNzIEdsb2JhbFB3UG9saWN5 IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgIGNvbnN0IHN0YXRlVXBkYXRlID0g ewotICAgICAgICAgICAgIFthdHRyXTogdmFsdWUsCi0gICAgICAgICAgICAgc2F2ZUdlbmVyYWxE aXNhYmxlZDogZGlzYWJsZVNhdmVCdG4sCi0rICAgICAgICAgICAgaW52YWxpZEZpZWxkczogdXBk YXRlRmllbGRWYWxpZGF0aW9uKHRoaXMuc3RhdGUuaW52YWxpZEZpZWxkcywgYXR0ciwgdmFsdWUp LAotICAgICAgICAgfTsKLSAKLSAgICAgICAgIHRoaXMuc2V0U3RhdGUoc3RhdGVVcGRhdGUsICgp ID0+IHsKLUBAIC0zNjMsNiArMzcxLDcgQEAgZXhwb3J0IGNsYXNzIEdsb2JhbFB3UG9saWN5IGV4 dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgIHRoaXMuc2V0U3RhdGUoewotICAgICAg ICAgICAgIFthdHRyXTogdmFsdWUsCi0gICAgICAgICAgICAgc2F2ZUV4cERpc2FibGVkOiBkaXNh YmxlU2F2ZUJ0biwKLSsgICAgICAgICAgICBpbnZhbGlkRmllbGRzOiB1cGRhdGVGaWVsZFZhbGlk YXRpb24odGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzLCBhdHRyLCB2YWx1ZSksCi0gICAgICAgICB9 KTsKLSAgICAgfQotIAotQEAgLTQ0MCw2ICs0NDksNyBAQCBleHBvcnQgY2xhc3MgR2xvYmFsUHdQ b2xpY3kgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7 Ci0gICAgICAgICAgICAgW2F0dHJdOiB2YWx1ZSwKLSAgICAgICAgICAgICBzYXZlTG9ja291dERp c2FibGVkOiBkaXNhYmxlU2F2ZUJ0biwKLSsgICAgICAgICAgICBpbnZhbGlkRmllbGRzOiB1cGRh dGVGaWVsZFZhbGlkYXRpb24odGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzLCBhdHRyLCB2YWx1ZSks Ci0gICAgICAgICB9KTsKLSAgICAgfQotIAotQEAgLTU0MSwxMiArNTUxLDE0IEBAIGV4cG9ydCBj bGFzcyBHbG9iYWxQd1BvbGljeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICAg ICAgdGhpcy5zZXRTdGF0ZSh7Ci0gICAgICAgICAgICAgICAgIFthdHRyXTogQXJyYXkuaXNBcnJh eShzZWxlY3Rpb24pID8gc2VsZWN0aW9uIDogW10sCi0gICAgICAgICAgICAgICAgIHNhdmVTeW50 YXhEaXNhYmxlZDogZGlzYWJsZVNhdmVCdG4sCi0rICAgICAgICAgICAgICAgIGludmFsaWRGaWVs ZHM6IHVwZGF0ZUZpZWxkVmFsaWRhdGlvbih0aGlzLnN0YXRlLmludmFsaWRGaWVsZHMsIGF0dHIs IHZhbHVlKSwKLSAgICAgICAgICAgICAgICAgaXNTZWxlY3RPcGVuOiBmYWxzZQotICAgICAgICAg ICAgIH0pOwotICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsK LSAgICAgICAgICAgICAgICAgW2F0dHJdOiB2YWx1ZSwKLSAgICAgICAgICAgICAgICAgc2F2ZVN5 bnRheERpc2FibGVkOiBkaXNhYmxlU2F2ZUJ0biwKLSsgICAgICAgICAgICAgICAgaW52YWxpZEZp ZWxkczogdXBkYXRlRmllbGRWYWxpZGF0aW9uKHRoaXMuc3RhdGUuaW52YWxpZEZpZWxkcywgYXR0 ciwgdmFsdWUpLAotICAgICAgICAgICAgICAgICBpc1NlbGVjdE9wZW46IGZhbHNlCi0gICAgICAg ICAgICAgfSk7Ci0gICAgICAgICB9Ci1AQCAtODQxLDYgKzg1Myw3IEBAIGV4cG9ydCBjbGFzcyBH bG9iYWxQd1BvbGljeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkZWQ6IHRydWUsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc6IGZhbHNlLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpbnZhbGlkRmllbGRzOiB7fSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2F2ZUdlbmVyYWxEaXNhYmxlZDogdHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2F2ZVBhc3N3b3JkU3RvcmFnZURpc2FibGVkOiB0cnVlLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzYXZlVXNlckRpc2FibGVkOiB0cnVlLAotQEAgLTk5NiwxMCArMTAw OSwxMiBAQCBleHBvcnQgY2xhc3MgR2xvYmFsUHdQb2xpY3kgZXh0ZW5kcyBSZWFjdC5Db21wb25l bnQgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InBhc3N3b3JkbWlubGVu Z3RoIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT0i aG9yaXpvbnRhbC1mb3JtLW5hbWUtaGVscGVyIgotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbmFtZT0icGFzc3dvcmRtaW5sZW5ndGgiCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7Li4uZ2V0VmFsaWRhdGlvblByb3BzKCJwYXNzd29yZG1pbmxlbmd0aCIsIHRoaXMu c3RhdGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv bkNoYW5nZT17KGUsIGNoZWNrZWQpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0aGlzLmhhbmRsZVN5bnRheENoYW5nZShlKTsKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH19Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHtyZW5kZXJWYWxpZGF0aW9uRXJyb3IoInBhc3N3b3JkbWlu bGVuZ3RoIiwgdGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAg ICAgICA8L0dyaWRJdGVtPgotICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkSXRlbSBjbGFz c05hbWU9ImRzLWxhYmVsIiBvZmZzZXQ9ezZ9IHNwYW49ezN9PgotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7XygiTWluaW11bSBBbHBoYSdzIil9Ci1AQCAtMTAxMiwxMCArMTAyNywxMiBA QCBleHBvcnQgY2xhc3MgR2xvYmFsUHdQb2xpY3kgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InBhc3N3b3JkbWluYWxwaGFzIgot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT0iaG9yaXpv bnRhbC1mb3JtLW5hbWUtaGVscGVyIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bmFtZT0icGFzc3dvcmRtaW5hbHBoYXMiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7Li4uZ2V0VmFsaWRhdGlvblByb3BzKCJwYXNzd29yZG1pbmFscGhhcyIsIHRoaXMuc3RhdGUu aW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5n ZT17KGUsIGNoZWNrZWQpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0aGlzLmhhbmRsZVN5bnRheENoYW5nZShlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH19Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHtyZW5kZXJWYWxpZGF0aW9uRXJyb3IoInBhc3N3b3JkbWluYWxwaGFz IiwgdGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICA8 L0dyaWRJdGVtPgotICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPgotICAgICAgICAgICAgICAg ICAgICAgPEdyaWQgY2xhc3NOYW1lPSJkcy1tYXJnaW4tdG9wIj4KLUBAIC0xMDMwLDEwICsxMDQ3 LDEyIEBAIGV4cG9ydCBjbGFzcyBHbG9iYWxQd1BvbGljeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVu dCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icGFzc3dvcmRtaW5kaWdp dHMiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PSJo b3Jpem9udGFsLWZvcm0tbmFtZS1oZWxwZXIiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBuYW1lPSJwYXNzd29yZG1pbmRpZ2l0cyIKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHsuLi5nZXRWYWxpZGF0aW9uUHJvcHMoInBhc3N3b3JkbWluZGlnaXRzIiwgdGhpcy5z dGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9u Q2hhbmdlPXsoZSwgY2hlY2tlZCkgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHRoaXMuaGFuZGxlU3ludGF4Q2hhbmdlKGUpOwotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4KLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAge3JlbmRlclZhbGlkYXRpb25FcnJvcigicGFzc3dvcmRtaW5k aWdpdHMiLCB0aGlzLnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAg ICAgIDwvR3JpZEl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWRJdGVtIGNsYXNz TmFtZT0iZHMtbGFiZWwiIG9mZnNldD17Nn0gc3Bhbj17M30+Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHtfKCJNaW5pbXVtIFNwZWNpYWwiKX0KLUBAIC0xMDQ2LDEwICsxMDY1LDEyIEBA IGV4cG9ydCBjbGFzcyBHbG9iYWxQd1BvbGljeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icGFzc3dvcmRtaW5zcGVjaWFscyIK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9Imhvcml6 b250YWwtZm9ybS1uYW1lLWhlbHBlciIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG5hbWU9InBhc3N3b3JkbWluc3BlY2lhbHMiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7Li4uZ2V0VmFsaWRhdGlvblByb3BzKCJwYXNzd29yZG1pbnNwZWNpYWxzIiwgdGhpcy5z dGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9u Q2hhbmdlPXsoZSwgY2hlY2tlZCkgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHRoaXMuaGFuZGxlU3ludGF4Q2hhbmdlKGUpOwotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4KLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAge3JlbmRlclZhbGlkYXRpb25FcnJvcigicGFzc3dvcmRtaW5z cGVjaWFscyIsIHRoaXMuc3RhdGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgPC9HcmlkSXRlbT4KLSAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD4KLSAgICAgICAg ICAgICAgICAgICAgIDxHcmlkIGNsYXNzTmFtZT0iZHMtbWFyZ2luLXRvcCI+Ci1AQCAtMTA2NCwx MCArMTA4NSwxMiBAQCBleHBvcnQgY2xhc3MgR2xvYmFsUHdQb2xpY3kgZXh0ZW5kcyBSZWFjdC5D b21wb25lbnQgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InBhc3N3b3Jk bWludXBwZXJzIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1kZXNjcmli ZWRieT0iaG9yaXpvbnRhbC1mb3JtLW5hbWUtaGVscGVyIgotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbmFtZT0icGFzc3dvcmRtaW51cHBlcnMiCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7Li4uZ2V0VmFsaWRhdGlvblByb3BzKCJwYXNzd29yZG1pbnVwcGVycyIs IHRoaXMuc3RhdGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBvbkNoYW5nZT17KGUsIGNoZWNrZWQpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0aGlzLmhhbmRsZVN5bnRheENoYW5nZShlKTsKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH19Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyZW5kZXJWYWxpZGF0aW9uRXJyb3IoInBhc3N3 b3JkbWludXBwZXJzIiwgdGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAg ICAgICAgICAgICA8L0dyaWRJdGVtPgotICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkSXRl bSBjbGFzc05hbWU9ImRzLWxhYmVsIiBvZmZzZXQ9ezZ9IHNwYW49ezN9PgotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7XygiTWluaW11bSBMb3dlcmNhc2UiKX0KLUBAIC0xMDgwLDEwICsx MTAzLDEyIEBAIGV4cG9ydCBjbGFzcyBHbG9iYWxQd1BvbGljeSBleHRlbmRzIFJlYWN0LkNvbXBv bmVudCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icGFzc3dvcmRtaW5s b3dlcnMiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5 PSJob3Jpem9udGFsLWZvcm0tbmFtZS1oZWxwZXIiCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBuYW1lPSJwYXNzd29yZG1pbmxvd2VycyIKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsuLi5nZXRWYWxpZGF0aW9uUHJvcHMoInBhc3N3b3JkbWlubG93ZXJzIiwgdGhp cy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG9uQ2hhbmdlPXsoZSwgY2hlY2tlZCkgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHRoaXMuaGFuZGxlU3ludGF4Q2hhbmdlKGUpOwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4KLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAge3JlbmRlclZhbGlkYXRpb25FcnJvcigicGFzc3dvcmRt aW5sb3dlcnMiLCB0aGlzLnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAg ICAgICAgIDwvR3JpZEl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+Ci0gICAgICAg ICAgICAgICAgICAgICA8R3JpZCBjbGFzc05hbWU9ImRzLW1hcmdpbi10b3AiPgotQEAgLTEwOTgs MTAgKzExMjMsMTIgQEAgZXhwb3J0IGNsYXNzIEdsb2JhbFB3UG9saWN5IGV4dGVuZHMgUmVhY3Qu Q29tcG9uZW50IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJwYXNzd29y ZG1pbjhiaXQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJl ZGJ5PSJob3Jpem9udGFsLWZvcm0tbmFtZS1oZWxwZXIiCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBuYW1lPSJwYXNzd29yZG1pbjhiaXQiCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7Li4uZ2V0VmFsaWRhdGlvblByb3BzKCJwYXNzd29yZG1pbjhiaXQiLCB0aGlz LnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg b25DaGFuZ2U9eyhlLCBjaGVja2VkKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdGhpcy5oYW5kbGVTeW50YXhDaGFuZ2UoZSk7Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9fQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPgotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7cmVuZGVyVmFsaWRhdGlvbkVycm9yKCJwYXNzd29yZG1p bjhiaXQiLCB0aGlzLnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAg ICAgIDwvR3JpZEl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWRJdGVtIGNsYXNz TmFtZT0iZHMtbGFiZWwiIG9mZnNldD17Nn0gc3Bhbj17M30+Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHtfKCJNaW5pbXVtIENhdGVnb3JpZXMiKX0KLUBAIC0xMTE0LDEwICsxMTQxLDEy IEBAIGV4cG9ydCBjbGFzcyBHbG9iYWxQd1BvbGljeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icGFzc3dvcmRtaW5jYXRlZ29y aWVzIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT0i aG9yaXpvbnRhbC1mb3JtLW5hbWUtaGVscGVyIgotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbmFtZT0icGFzc3dvcmRtaW5jYXRlZ29yaWVzIgotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgey4uLmdldFZhbGlkYXRpb25Qcm9wcygicGFzc3dvcmRtaW5jYXRlZ29yaWVz IiwgdGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG9uQ2hhbmdlPXsoZSwgY2hlY2tlZCkgPT4gewotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlU3ludGF4Q2hhbmdlKGUpOwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4K LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAge3JlbmRlclZhbGlkYXRpb25FcnJvcigicGFz c3dvcmRtaW5jYXRlZ29yaWVzIiwgdGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAg ICAgICAgICAgICAgICAgICA8L0dyaWRJdGVtPgotICAgICAgICAgICAgICAgICAgICAgPC9Hcmlk PgotICAgICAgICAgICAgICAgICAgICAgPEdyaWQgY2xhc3NOYW1lPSJkcy1tYXJnaW4tdG9wIj4K LUBAIC0xMTMyLDExICsxMTYxLDEzIEBAIGV4cG9ydCBjbGFzcyBHbG9iYWxQd1BvbGljeSBleHRl bmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZD0icGFzc3dvcmRtYXhzZXF1ZW5jZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFyaWEtZGVzY3JpYmVkYnk9Imhvcml6b250YWwtZm9ybS1uYW1lLWhlbHBlciIKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9InBhc3N3b3JkbWF4c2VxdWVuY2UiCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4uZ2V0VmFsaWRhdGlvblByb3BzKCJwYXNz d29yZG1heHNlcXVlbmNlIiwgdGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSwgY2hlY2tlZCkgPT4gewotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlU3ludGF4Q2hhbmdlKGUp OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0KLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWRJdGVtPgotKyAg ICAgICAgICAgICAgICAgICAgICAgIHtyZW5kZXJWYWxpZGF0aW9uRXJyb3IoInBhc3N3b3JkbWF4 c2VxdWVuY2UiLCB0aGlzLnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAg ICAgICAgIDxHcmlkSXRlbSBjbGFzc05hbWU9ImRzLWxhYmVsIiBvZmZzZXQ9ezZ9IHNwYW49ezN9 PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XygiTWF4IFNlcXVlbmNlIFNldHMiKX0K LSAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWRJdGVtPgotQEAgLTExNDgsMTEgKzExNzks MTMgQEAgZXhwb3J0IGNsYXNzIEdsb2JhbFB3UG9saWN5IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50 IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJwYXNzd29yZG1heHNlcXNl dHMiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PSJo b3Jpem9udGFsLWZvcm0tbmFtZS1oZWxwZXIiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBuYW1lPSJwYXNzd29yZG1heHNlcXNldHMiCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7Li4uZ2V0VmFsaWRhdGlvblByb3BzKCJwYXNzd29yZG1heHNlcXNldHMiLCB0aGlz LnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg b25DaGFuZ2U9eyhlLCBjaGVja2VkKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdGhpcy5oYW5kbGVTeW50YXhDaGFuZ2UoZSk7Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9fQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPgotICAgICAg ICAgICAgICAgICAgICAgICAgIDwvR3JpZEl0ZW0+Ci0rICAgICAgICAgICAgICAgICAgICAgICAg e3JlbmRlclZhbGlkYXRpb25FcnJvcigicGFzc3dvcmRtYXhzZXFzZXRzIiwgdGhpcy5zdGF0ZS5p bnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD4KLSAgICAgICAgICAg ICAgICAgICAgIDxHcmlkIGNsYXNzTmFtZT0iZHMtbWFyZ2luLXRvcCI+Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgPEdyaWRJdGVtIGNsYXNzTmFtZT0iZHMtbGFiZWwiIHNwYW49ezN9PgotQEAg LTExNjYsMTEgKzExOTksMTMgQEAgZXhwb3J0IGNsYXNzIEdsb2JhbFB3UG9saWN5IGV4dGVuZHMg UmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJw YXNzd29yZG1heGNsYXNzY2hhcnMiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh cmlhLWRlc2NyaWJlZGJ5PSJob3Jpem9udGFsLWZvcm0tbmFtZS1oZWxwZXIiCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJwYXNzd29yZG1heGNsYXNzY2hhcnMiCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4uZ2V0VmFsaWRhdGlvblByb3BzKCJwYXNz d29yZG1heGNsYXNzY2hhcnMiLCB0aGlzLnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlLCBjaGVja2VkKSA9PiB7Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVTeW50YXhDaGFuZ2Uo ZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fQotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvPgotICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZEl0ZW0+Ci0r ICAgICAgICAgICAgICAgICAgICAgICAge3JlbmRlclZhbGlkYXRpb25FcnJvcigicGFzc3dvcmRt YXhjbGFzc2NoYXJzIiwgdGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAg ICAgICAgIDwvR3JpZD4KLSAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGNsYXNzTmFtZT0iZHMt bWFyZ2luLXRvcCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWRJdGVtIGNsYXNzTmFt ZT0iZHMtbGFiZWwiIHNwYW49ezN9PgotQEAgLTEyNTEsMTIgKzEyODYsMTQgQEAgZXhwb3J0IGNs YXNzIEdsb2JhbFB3UG9saWN5IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHR5cGU9Im51bWJlciIKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlkPSJwYXNzd29yZG1heGZhaWx1cmUiCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PSJob3Jpem9udGFsLWZvcm0tbmFtZS1oZWxw ZXIiCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJwYXNzd29yZG1heHBh c3N3b3JkbWF4ZmFpbHVyZWNsYXNzY2hhcnMiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBuYW1lPSJwYXNzd29yZG1heGZhaWx1cmUiCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7Li4uZ2V0VmFsaWRhdGlvblByb3BzKCJwYXNzd29yZG1heGZhaWx1cmUiLCB0aGlz LnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg b25DaGFuZ2U9eyhlLCBjaGVja2VkKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdGhpcy5oYW5kbGVMb2Nrb3V0Q2hhbmdlKGUpOwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4KLSAgICAg ICAgICAgICAgICAgICAgICAgICA8L0dyaWRJdGVtPgotKyAgICAgICAgICAgICAgICAgICAgICAg IHtyZW5kZXJWYWxpZGF0aW9uRXJyb3IoInBhc3N3b3JkbWF4ZmFpbHVyZSIsIHRoaXMuc3RhdGUu aW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+Ci0gICAgICAgICAg ICAgICAgICAgICA8R3JpZCBjbGFzc05hbWU9ImRzLW1hcmdpbi10b3AiIHRpdGxlPXtfKCJUaGUg bnVtYmVyIG9mIHNlY29uZHMgdW50aWwgYW4gYWNjb3VudHMgZmFpbHVyZSBjb3VudCBpcyByZXNl dCAocGFzc3dvcmRSZXNldEZhaWx1cmVDb3VudCkuIil9PgotICAgICAgICAgICAgICAgICAgICAg ICAgIDxHcmlkSXRlbSBjbGFzc05hbWU9ImRzLWxhYmVsIiBzcGFuPXs1fT4KLUBAIC0xMjY5LDEx ICsxMzA2LDEzIEBAIGV4cG9ydCBjbGFzcyBHbG9iYWxQd1BvbGljeSBleHRlbmRzIFJlYWN0LkNv bXBvbmVudCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icGFzc3dvcmRy ZXNldGZhaWx1cmVjb3VudCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEt ZGVzY3JpYmVkYnk9Imhvcml6b250YWwtZm9ybS1uYW1lLWhlbHBlciIKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG5hbWU9InBhc3N3b3JkcmVzZXRmYWlsdXJlY291bnQiCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4uZ2V0VmFsaWRhdGlvblByb3BzKCJwYXNz d29yZHJlc2V0ZmFpbHVyZWNvdW50IiwgdGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSwgY2hlY2tlZCkgPT4gewot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlTG9ja291dENo YW5nZShlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkSXRl bT4KLSsgICAgICAgICAgICAgICAgICAgICAgICB7cmVuZGVyVmFsaWRhdGlvbkVycm9yKCJwYXNz d29yZHJlc2V0ZmFpbHVyZWNvdW50IiwgdGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAg ICAgICAgICAgICAgICAgIDwvR3JpZD4KLSAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGNsYXNz TmFtZT0iZHMtbWFyZ2luLXRvcCIgdGl0bGU9e18oIlRoZSBudW1iZXIgb2Ygc2Vjb25kcywgZHVy YXRpb24sIGJlZm9yZSB0aGUgYWNjb3VudCBnZXRzIHVubG9ja2VkIChwYXNzd29yZExvY2tvdXRE dXJhdGlvbikuIil9PgotICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkSXRlbSBjbGFzc05h bWU9ImRzLWxhYmVsIiBzcGFuPXs1fT4KLUBAIC0xMjg2LDExICsxMzI1LDEzIEBAIGV4cG9ydCBj bGFzcyBHbG9iYWxQd1BvbGljeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZD0icGFzc3dvcmRsb2Nrb3V0ZHVyYXRpb24iCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PSJob3Jpem9udGFs LWZvcm0tbmFtZS1oZWxwZXIiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1l PSJwYXNzd29yZGxvY2tvdXRkdXJhdGlvbiIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsuLi5nZXRWYWxpZGF0aW9uUHJvcHMoInBhc3N3b3JkbG9ja291dGR1cmF0aW9uIiwgdGhp cy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG9uQ2hhbmdlPXsoZSwgY2hlY2tlZCkgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHRoaXMuaGFuZGxlTG9ja291dENoYW5nZShlKTsKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH19Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgPC9HcmlkSXRlbT4KLSsgICAgICAgICAgICAgICAgICAgICAg ICB7cmVuZGVyVmFsaWRhdGlvbkVycm9yKCJwYXNzd29yZGxvY2tvdXRkdXJhdGlvbiIsIHRoaXMu c3RhdGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+Ci0gICAg ICAgICAgICAgICAgICAgICA8R3JpZCBjbGFzc05hbWU9ImRzLW1hcmdpbi10b3AiIHRpdGxlPXtf KCJEbyBub3QgbG9ja291dCB0aGUgdXNlciBhY2NvdW50IGZvcmV2ZXIsIGluc3RlYWQgdGhlIGFj Y291bnQgd2lsbCB1bmxvY2sgYmFzZWQgb24gdGhlIGxvY2tvdXQgZHVyYXRpb24gKHBhc3N3b3Jk VW5sb2NrKS4iKX0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWRJdGVtIGNsYXNzTmFt ZT0iZHMtbGFiZWwiIHNwYW49ezV9PgotQEAgLTEzMjIsMTEgKzEzNjMsMTMgQEAgZXhwb3J0IGNs YXNzIEdsb2JhbFB3UG9saWN5IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlkPSJwYXNzd29yZG1heGFnZSIKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9Imhvcml6b250YWwtZm9ybS1uYW1l LWhlbHBlciIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9InBhc3N3b3Jk bWF4YWdlIgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLmdldFZhbGlkYXRp b25Qcm9wcygicGFzc3dvcmRtYXhhZ2UiLCB0aGlzLnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlLCBjaGVja2VkKSA9PiB7 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVFeHBDaGFu Z2UoZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvPgotICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZEl0ZW0+ Ci0rICAgICAgICAgICAgICAgICAgICAgICAge3JlbmRlclZhbGlkYXRpb25FcnJvcigicGFzc3dv cmRtYXhhZ2UiLCB0aGlzLnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAg ICAgPC9HcmlkPgotICAgICAgICAgICAgICAgICAgICAgPEdyaWQgY2xhc3NOYW1lPSJkcy1tYXJn aW4tdG9wIiB0aXRsZT17XygiVGhlIG51bWJlciBvZiBsb2dpbnMgdGhhdCBhcmUgYWxsb3dlZCBh ZnRlciB0aGUgcGFzc3dvcmQgaGFzIGV4cGlyZWQgKHBhc3N3b3JkR3JhY2VMaW1pdCkuIil9Pgot ICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkSXRlbSBjbGFzc05hbWU9ImRzLWxhYmVsIiBz cGFuPXs1fT4KLUBAIC0xMzM5LDExICsxMzgyLDEzIEBAIGV4cG9ydCBjbGFzcyBHbG9iYWxQd1Bv bGljeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZD0icGFzc3dvcmRncmFjZWxpbWl0IgotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXJpYS1kZXNjcmliZWRieT0iaG9yaXpvbnRhbC1mb3JtLW5hbWUtaGVscGVyIgot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0icGFzc3dvcmRncmFjZWxpbWl0 IgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLmdldFZhbGlkYXRpb25Qcm9w cygicGFzc3dvcmRncmFjZWxpbWl0IiwgdGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSwgY2hlY2tlZCkgPT4gewot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlRXhwQ2hhbmdl KGUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0KLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWRJdGVtPgot KyAgICAgICAgICAgICAgICAgICAgICAgIHtyZW5kZXJWYWxpZGF0aW9uRXJyb3IoInBhc3N3b3Jk Z3JhY2VsaW1pdCIsIHRoaXMuc3RhdGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAgICAg ICAgICA8L0dyaWQ+Ci0gICAgICAgICAgICAgICAgICAgICA8R3JpZCBjbGFzc05hbWU9ImRzLW1h cmdpbi10b3AiIHRpdGxlPXtfKCJTZXQgdGhlIHRpbWUgKGluIHNlY29uZHMpLCBiZWZvcmUgYSBw YXNzd29yZCBpcyBhYm91dCB0byBleHBpcmUsIHRvIHNlbmQgYSB3YXJuaW5nLiAocGFzc3dvcmRX YXJuaW5nKS4iKX0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWRJdGVtIGNsYXNzTmFt ZT0iZHMtbGFiZWwiIHNwYW49ezV9PgotQEAgLTEzNTYsMTEgKzE0MDEsMTMgQEAgZXhwb3J0IGNs YXNzIEdsb2JhbFB3UG9saWN5IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlkPSJwYXNzd29yZHdhcm5pbmciCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PSJob3Jpem9udGFsLWZvcm0tbmFt ZS1oZWxwZXIiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJwYXNzd29y ZHdhcm5pbmciCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4uZ2V0VmFsaWRh dGlvblByb3BzKCJwYXNzd29yZHdhcm5pbmciLCB0aGlzLnN0YXRlLmludmFsaWRGaWVsZHMpfQot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlLCBjaGVja2VkKSA9 PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVFeHBD aGFuZ2UoZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvPgotICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZEl0 ZW0+Ci0rICAgICAgICAgICAgICAgICAgICAgICAge3JlbmRlclZhbGlkYXRpb25FcnJvcigicGFz c3dvcmR3YXJuaW5nIiwgdGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAg ICAgICAgIDwvR3JpZD4KLSAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGNsYXNzTmFtZT0iZHMt bWFyZ2luLXRvcCIgdGl0bGU9e18oIkFsd2F5cyByZXR1cm4gYSBwYXNzd29yZCBleHBpcmluZyBj b250cm9sIHdoZW4gcmVxdWVzdGVkIChwYXNzd29yZFNlbmRFeHBpcmluZ1RpbWUpLiIpfT4KLSAg ICAgICAgICAgICAgICAgICAgICAgICA8R3JpZEl0ZW0gY2xhc3NOYW1lPSJkcy1sYWJlbCIgc3Bh bj17NX0+Ci1AQCAtMTQ5MywxMCArMTU0MCwxMiBAQCBleHBvcnQgY2xhc3MgR2xvYmFsUHdQb2xp Y3kgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlkPSJwYXNzd29yZGluaGlzdG9yeSIKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PSJo b3Jpem9udGFsLWZvcm0tbmFtZS1oZWxwZXIiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbmFtZT0icGFzc3dvcmRpbmhpc3RvcnkiCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLmdldFZhbGlkYXRpb25Q cm9wcygicGFzc3dvcmRpbmhpc3RvcnkiLCB0aGlzLnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXso ZSwgY2hlY2tlZCkgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0aGlzLmhhbmRsZUdlbmVyYWxDaGFuZ2UoZSk7Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0KLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7cmVuZGVyVmFsaWRhdGlvbkVycm9yKCJwYXNzd29yZGluaGlz dG9yeSIsIHRoaXMuc3RhdGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDwvZGl2PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDwvR3JpZEl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0dy aWQ+Ci1AQCAtMTU1NSwxMSArMTYwNCwxMyBAQCBleHBvcnQgY2xhc3MgR2xvYmFsUHdQb2xpY3kg ZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWQ9InBhc3N3b3JkbWluYWdlIgotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT0iaG9yaXpvbnRhbC1mb3Jt LW5hbWUtaGVscGVyIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbmFtZT0icGFzc3dvcmRtaW5hZ2UiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB7Li4uZ2V0VmFsaWRhdGlvblByb3BzKCJwYXNzd29yZG1pbmFnZSIsIHRo aXMuc3RhdGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBvbkNoYW5nZT17KGUsIGNoZWNrZWQpID0+IHsKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUdlbmVyYWxDaGFu Z2UoZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fQot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPgotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZEl0ZW0+Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAge3JlbmRlclZhbGlkYXRpb25FcnJvcigicGFzc3dvcmRtaW5hZ2Ui LCB0aGlzLnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgPC9HcmlkPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT17XygiVGhlIEROIGZvciBh IHBhc3N3b3JkIGFkbWluaXN0cmF0b3Igb3IgYWRtaW5pc3RyYXRvciBncm91cCAocGFzc3dvcmRB ZG1pbkROKS4iKX0KLUBAIC0xNTk2LDcgKzE2NDcsNyBAQCBleHBvcnQgY2xhc3MgR2xvYmFsUHdQ b2xpY3kgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPC9HcmlkPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0Zvcm0+Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b24KLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlzRGlzYWJsZWQ9e3RoaXMuc3RhdGUuc2F2ZUdlbmVyYWxEaXNhYmxlZCAm JiB0aGlzLnN0YXRlLnNhdmVQYXNzd29yZFN0b3JhZ2VEaXNhYmxlZCB8fCB0aGlzLnN0YXRlLnNh dmluZ30KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRGlzYWJsZWQ9e3RoaXMu c3RhdGUuc2F2ZUdlbmVyYWxEaXNhYmxlZCAmJiB0aGlzLnN0YXRlLnNhdmVQYXNzd29yZFN0b3Jh Z2VEaXNhYmxlZCB8fCB0aGlzLnN0YXRlLnNhdmluZyB8fCBoYXNJbnZhbGlkRmllbGQoZ2VuZXJh bF9hdHRycywgdGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHZhcmlhbnQ9InByaW1hcnkiCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjbGFzc05hbWU9ImRzLW1hcmdpbi10b3AteGxnIGRzLW1hcmdpbi1sZWZ0LXNtIgot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5oYW5kbGVTYXZl R2VuZXJhbH0KLUBAIC0xNjI0LDcgKzE2NzUsNyBAQCBleHBvcnQgY2xhc3MgR2xvYmFsUHdQb2xp Y3kgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAge3B3RXhwaXJhdGlvblJvd3N9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwv Rm9ybT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbgotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaXNEaXNhYmxlZD17dGhpcy5zdGF0ZS5zYXZlRXhwRGlzYWJs ZWQgfHwgdGhpcy5zdGF0ZS5zYXZpbmd9Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpc0Rpc2FibGVkPXt0aGlzLnN0YXRlLnNhdmVFeHBEaXNhYmxlZCB8fCB0aGlzLnN0YXRlLnNh dmluZyB8fCBoYXNJbnZhbGlkRmllbGQoZXhwX2F0dHJzLCB0aGlzLnN0YXRlLmludmFsaWRGaWVs ZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD0icHJpbWFyeSIK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT0iZHMtbWFyZ2luLXRv cC14bGcgZHMtbWFyZ2luLWxlZnQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv bkNsaWNrPXt0aGlzLmhhbmRsZVNhdmVFeHB9Ci1AQCAtMTY1Miw3ICsxNzAzLDcgQEAgZXhwb3J0 IGNsYXNzIEdsb2JhbFB3UG9saWN5IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHtwd0xvY2tvdXRSb3dzfQotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA8L0Zvcm0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0 b24KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRGlzYWJsZWQ9e3RoaXMuc3Rh dGUuc2F2ZUxvY2tvdXREaXNhYmxlZCB8fCB0aGlzLnN0YXRlLnNhdmluZ30KLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlzRGlzYWJsZWQ9e3RoaXMuc3RhdGUuc2F2ZUxvY2tvdXRE aXNhYmxlZCB8fCB0aGlzLnN0YXRlLnNhdmluZyB8fCBoYXNJbnZhbGlkRmllbGQobG9ja291dF9h dHRycywgdGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHZhcmlhbnQ9InByaW1hcnkiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjbGFzc05hbWU9ImRzLW1hcmdpbi10b3AteGxnIGRzLW1hcmdpbi1sZWZ0IgotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5oYW5kbGVTYXZlTG9ja291 dH0KLUBAIC0xNjgwLDcgKzE3MzEsNyBAQCBleHBvcnQgY2xhc3MgR2xvYmFsUHdQb2xpY3kgZXh0 ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg e3B3U3ludGF4Um93c30KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Gb3JtPgotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpc0Rpc2FibGVkPXt0aGlzLnN0YXRlLnNhdmVTeW50YXhEaXNhYmxlZCB8fCB0 aGlzLnN0YXRlLnNhdmluZ30KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRGlz YWJsZWQ9e3RoaXMuc3RhdGUuc2F2ZVN5bnRheERpc2FibGVkIHx8IHRoaXMuc3RhdGUuc2F2aW5n IHx8IGhhc0ludmFsaWRGaWVsZChzeW50YXhfYXR0cnMsIHRoaXMuc3RhdGUuaW52YWxpZEZpZWxk cyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PSJwcmltYXJ5Igot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPSJkcy1tYXJnaW4tdG9w LXhsZyBkcy1tYXJnaW4tbGVmdCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9u Q2xpY2s9e3RoaXMuaGFuZGxlU2F2ZVN5bnRheH0KLWRpZmYgLS1naXQgYS9zcmMvY29ja3BpdC8z ODktY29uc29sZS9zcmMvbGliL2RhdGFiYXNlL2xvY2FsUHdwLmpzeCBiL3NyYy9jb2NrcGl0LzM4 OS1jb25zb2xlL3NyYy9saWIvZGF0YWJhc2UvbG9jYWxQd3AuanN4Ci1pbmRleCA4ZGNlODlmYjgu LmY5ZjlkYmEzMyAxMDA2NDQKLS0tLSBhL3NyYy9jb2NrcGl0LzM4OS1jb25zb2xlL3NyYy9saWIv ZGF0YWJhc2UvbG9jYWxQd3AuanN4Ci0rKysgYi9zcmMvY29ja3BpdC8zODktY29uc29sZS9zcmMv bGliL2RhdGFiYXNlL2xvY2FsUHdwLmpzeAotQEAgLTI1LDYgKzI1LDEyIEBAIGltcG9ydCB7Ci0g CVRleHRWYXJpYW50cywKLSAJVmFsaWRhdGVkT3B0aW9ucwotIH0gZnJvbSAnQHBhdHRlcm5mbHkv cmVhY3QtY29yZSc7Ci0raW1wb3J0IHsKLSsgICAgZ2V0VmFsaWRhdGlvblByb3BzLAotKyAgICBo YXNJbnZhbGlkRmllbGQsCi0rICAgIHJlbmRlclZhbGlkYXRpb25FcnJvciwKLSsgICAgdXBkYXRl RmllbGRWYWxpZGF0aW9uLAotK30gZnJvbSAiLi9wd3BWYWxpZGF0aW9uLmpzeCI7Ci0gaW1wb3J0 IFR5cGVhaGVhZFNlbGVjdCBmcm9tICIuLi8uLi9kc0Jhc2ljQ29tcG9uZW50cy5qc3giOwotIGlt cG9ydCB7IFN5bmNBbHRJY29uIH0gZnJvbSAiQHBhdHRlcm5mbHkvcmVhY3QtaWNvbnMiOwotIGlt cG9ydCBQcm9wVHlwZXMgZnJvbSAicHJvcC10eXBlcyI7Ci1AQCAtMjEzLDExICsyMTksMTMgQEAg Y2xhc3MgQ3JlYXRlUG9saWN5IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9ImNyZWF0ZV9wYXNzd29yZG1pbmFnZSIK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRi eT0iaG9yaXpvbnRhbC1mb3JtLW5hbWUtaGVscGVyIgotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBuYW1lPSJjcmVhdGVfcGFzc3dvcmRtaW5hZ2UiCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5nZXRWYWxpZGF0aW9uUHJvcHMoImNy ZWF0ZV9wYXNzd29yZG1pbmFnZSIsIHRoaXMucHJvcHMuaW52YWxpZENyZWF0ZUZpZWxkcyl9Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSwgY2hl Y2tlZCkgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dGhpcy5wcm9wcy5oYW5kbGVDaGFuZ2UoZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH19Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4K LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZEl0ZW0+Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7cmVuZGVyVmFsaWRhdGlvbkVycm9yKCJjcmVhdGVfcGFz c3dvcmRtaW5hZ2UiLCB0aGlzLnByb3BzLmludmFsaWRDcmVhdGVGaWVsZHMpfQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg IDxHcmlkCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9ImRzLW1h cmdpbi10b3AiCi1AQCAtMzA5LDEwICszMTcsMTIgQEAgY2xhc3MgQ3JlYXRlUG9saWN5IGV4dGVu ZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlkPSJjcmVhdGVfcGFzc3dvcmRpbmhpc3RvcnkiCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PSJob3Jpem9udGFs LWZvcm0tbmFtZS1oZWxwZXIiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBuYW1lPSJjcmVhdGVfcGFzc3dvcmRpbmhpc3RvcnkiCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4uZ2V0VmFsaWRhdGlvblByb3BzKCJjcmVh dGVfcGFzc3dvcmRpbmhpc3RvcnkiLCB0aGlzLnByb3BzLmludmFsaWRDcmVhdGVGaWVsZHMpfQot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhl LCBjaGVja2VkKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdGhpcy5wcm9wcy5oYW5kbGVDaGFuZ2UoZSk7Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9fQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7cmVuZGVyVmFsaWRhdGlvbkVycm9yKCJjcmVhdGVfcGFzc3dvcmRpbmhpc3RvcnkiLCB0aGlz LnByb3BzLmludmFsaWRDcmVhdGVGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDwvZGl2PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Hcmlk SXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPgotQEAgLTM1MiwxMiAr MzYyLDE0IEBAIGNsYXNzIENyZWF0ZVBvbGljeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0iY3JlYXRlX3Bh c3N3b3JkbWF4YWdlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXJpYS1kZXNjcmliZWRieT0iY3JlYXRlX3Bhc3N3b3JkbWF4YWdlIgotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iY3JlYXRlX3Bhc3N3b3JkbWF4 YWdlIgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLmdl dFZhbGlkYXRpb25Qcm9wcygiY3JlYXRlX3Bhc3N3b3JkbWF4YWdlIiwgdGhpcy5wcm9wcy5pbnZh bGlkQ3JlYXRlRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG9uQ2hhbmdlPXsoZSwgc3RyKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5oYW5kbGVDaGFuZ2UoZSk7Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNEaXNhYmxlZD17IXRoaXMucHJvcHMu cGFzc3dvcmRleHB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+ Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkSXRlbT4KLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cmVuZGVyVmFsaWRhdGlvbkVycm9yKCJj cmVhdGVfcGFzc3dvcmRtYXhhZ2UiLCB0aGlzLnByb3BzLmludmFsaWRDcmVhdGVGaWVsZHMpfQot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPgotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgPEdyaWQgY2xhc3NOYW1lPSJkcy1tYXJnaW4tdG9wIiB0aXRsZT17 XygiVGhlIG51bWJlciBvZiBsb2dpbnMgdGhhdCBhcmUgYWxsb3dlZCBhZnRlciB0aGUgcGFzc3dv cmQgaGFzIGV4cGlyZWQgKHBhc3N3b3JkR3JhY2VMaW1pdCkuIil9PgotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDxHcmlkSXRlbSBjbGFzc05hbWU9ImRzLWxhYmVsIiBzcGFu PXs0fT4KLUBAIC0zNjksMTIgKzM4MSwxNCBAQCBjbGFzcyBDcmVhdGVQb2xpY3kgZXh0ZW5kcyBS ZWFjdC5Db21wb25lbnQgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaWQ9ImNyZWF0ZV9wYXNzd29yZGdyYWNlbGltaXQiCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PSJjcmVhdGVfcGFzc3dv cmRncmFjZWxpbWl0IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbmFtZT0iY3JlYXRlX3Bhc3N3b3JkZ3JhY2VsaW1pdCIKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5nZXRWYWxpZGF0aW9uUHJvcHMoImNyZWF0ZV9w YXNzd29yZGdyYWNlbGltaXQiLCB0aGlzLnByb3BzLmludmFsaWRDcmVhdGVGaWVsZHMpfQotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlLCBz dHIpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0aGlzLnByb3BzLmhhbmRsZUNoYW5nZShlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH19Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpc0Rpc2FibGVkPXshdGhpcy5wcm9wcy5wYXNzd29yZGV4cH0KLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4KLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA8L0dyaWRJdGVtPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHtyZW5kZXJWYWxpZGF0aW9uRXJyb3IoImNyZWF0ZV9wYXNzd29yZGdyYWNlbGlt aXQiLCB0aGlzLnByb3BzLmludmFsaWRDcmVhdGVGaWVsZHMpfQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgPC9HcmlkPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg PEdyaWQgY2xhc3NOYW1lPSJkcy1tYXJnaW4tdG9wIiB0aXRsZT17XygiU2V0IHRoZSB0aW1lIChp biBzZWNvbmRzKSwgYmVmb3JlIGEgcGFzc3dvcmQgaXMgYWJvdXQgdG8gZXhwaXJlLCB0byBzZW5k IGEgd2FybmluZy4gKHBhc3N3b3JkV2FybmluZykuIil9PgotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDxHcmlkSXRlbSBjbGFzc05hbWU9ImRzLWxhYmVsIiBzcGFuPXs0fT4K LUBAIC0zODYsMTIgKzQwMCwxNCBAQCBjbGFzcyBDcmVhdGVQb2xpY3kgZXh0ZW5kcyBSZWFjdC5D b21wb25lbnQgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aWQ9ImNyZWF0ZV9wYXNzd29yZHdhcm5pbmciCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PSJjcmVhdGVfcGFzc3dvcmR3YXJuaW5n IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iY3Jl YXRlX3Bhc3N3b3Jkd2FybmluZyIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHsuLi5nZXRWYWxpZGF0aW9uUHJvcHMoImNyZWF0ZV9wYXNzd29yZHdhcm5pbmci LCB0aGlzLnByb3BzLmludmFsaWRDcmVhdGVGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlLCBzdHIpID0+IHsKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmhhbmRs ZUNoYW5nZShlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IH19Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0Rpc2Fi bGVkPXshdGhpcy5wcm9wcy5wYXNzd29yZGV4cH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 L0dyaWRJdGVtPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyZW5kZXJW YWxpZGF0aW9uRXJyb3IoImNyZWF0ZV9wYXNzd29yZHdhcm5pbmciLCB0aGlzLnByb3BzLmludmFs aWRDcmVhdGVGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Hcmlk PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQgY2xhc3NOYW1lPSJkcy1t YXJnaW4tdG9wIiB0aXRsZT17XygiQWx3YXlzIHJldHVybiBhIHBhc3N3b3JkIGV4cGlyaW5nIGNv bnRyb2wgd2hlbiByZXF1ZXN0ZWQgKHBhc3N3b3JkU2VuZEV4cGlyaW5nVGltZSkuIil9PgotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkSXRlbSBzcGFuPXs0fT4KLUBA IC00NDEsMTIgKzQ1NywxNCBAQCBjbGFzcyBDcmVhdGVQb2xpY3kgZXh0ZW5kcyBSZWFjdC5Db21w b25lbnQgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9 ImNyZWF0ZV9wYXNzd29yZG1heGZhaWx1cmUiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PSJjcmVhdGVfcGFzc3dvcmRtYXhmYWls dXJlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0i Y3JlYXRlX3Bhc3N3b3JkbWF4ZmFpbHVyZSIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsuLi5nZXRWYWxpZGF0aW9uUHJvcHMoImNyZWF0ZV9wYXNzd29yZG1h eGZhaWx1cmUiLCB0aGlzLnByb3BzLmludmFsaWRDcmVhdGVGaWVsZHMpfQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlLCBzdHIpID0+IHsK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBy b3BzLmhhbmRsZUNoYW5nZShlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH19Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpc0Rpc2FibGVkPXshdGhpcy5wcm9wcy5wYXNzd29yZGxvY2tvdXR9Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgPC9HcmlkSXRlbT4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7cmVuZGVyVmFsaWRhdGlvbkVycm9yKCJjcmVhdGVfcGFzc3dvcmRtYXhmYWlsdXJlIiwg dGhpcy5wcm9wcy5pbnZhbGlkQ3JlYXRlRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDwvR3JpZD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlk IGNsYXNzTmFtZT0iZHMtbWFyZ2luLXRvcCIgdGl0bGU9e18oIlRoZSBudW1iZXIgb2Ygc2Vjb25k cyB1bnRpbCBhbiBhY2NvdW50cyBmYWlsdXJlIGNvdW50IGlzIHJlc2V0IChwYXNzd29yZFJlc2V0 RmFpbHVyZUNvdW50KS4iKX0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg PEdyaWRJdGVtIGNsYXNzTmFtZT0iZHMtbGFiZWwiIHNwYW49ezR9PgotQEAgLTQ1OCwxMiArNDc2 LDE0IEBAIGNsYXNzIENyZWF0ZVBvbGljeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0iY3JlYXRlX3Bhc3N3 b3JkcmVzZXRmYWlsdXJlY291bnQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PSJjcmVhdGVfcGFzc3dvcmRyZXNldGZhaWx1cmVj b3VudCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9 ImNyZWF0ZV9wYXNzd29yZHJlc2V0ZmFpbHVyZWNvdW50IgotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgey4uLmdldFZhbGlkYXRpb25Qcm9wcygiY3JlYXRlX3Bh c3N3b3JkcmVzZXRmYWlsdXJlY291bnQiLCB0aGlzLnByb3BzLmludmFsaWRDcmVhdGVGaWVsZHMp fQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9 eyhlLCBzdHIpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0aGlzLnByb3BzLmhhbmRsZUNoYW5nZShlKTsKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH19Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpc0Rpc2FibGVkPXshdGhpcy5wcm9wcy5wYXNzd29yZGxvY2tvdXR9 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkSXRlbT4KLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7cmVuZGVyVmFsaWRhdGlvbkVycm9yKCJjcmVhdGVfcGFzc3dv cmRyZXNldGZhaWx1cmVjb3VudCIsIHRoaXMucHJvcHMuaW52YWxpZENyZWF0ZUZpZWxkcyl9Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA8R3JpZCBjbGFzc05hbWU9ImRzLW1hcmdpbi10b3AiIHRpdGxlPXtf KCJUaGUgbnVtYmVyIG9mIHNlY29uZHMsIGR1cmF0aW9uLCBiZWZvcmUgdGhlIGFjY291bnQgZ2V0 cyB1bmxvY2tlZCAocGFzc3dvcmRMb2Nrb3V0RHVyYXRpb24pLiIpfT4KLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA8R3JpZEl0ZW0gY2xhc3NOYW1lPSJkcy1sYWJlbCIgc3Bh bj17NH0+Ci1AQCAtNDc1LDEyICs0OTUsMTQgQEAgY2xhc3MgQ3JlYXRlUG9saWN5IGV4dGVuZHMg UmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlkPSJjcmVhdGVfcGFzc3dvcmRsb2Nrb3V0ZHVyYXRpb24iCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PSJjcmVhdGVf cGFzc3dvcmRsb2Nrb3V0ZHVyYXRpb24iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBuYW1lPSJjcmVhdGVfcGFzc3dvcmRsb2Nrb3V0ZHVyYXRpb24iCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4uZ2V0VmFsaWRhdGlv blByb3BzKCJjcmVhdGVfcGFzc3dvcmRsb2Nrb3V0ZHVyYXRpb24iLCB0aGlzLnByb3BzLmludmFs aWRDcmVhdGVGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgb25DaGFuZ2U9eyhlLCBzdHIpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmhhbmRsZUNoYW5nZShlKTsKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0Rpc2FibGVkPXshdGhpcy5wcm9wcy5w YXNzd29yZGxvY2tvdXR9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkSXRlbT4KLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cmVuZGVyVmFsaWRhdGlvbkVycm9y KCJjcmVhdGVfcGFzc3dvcmRsb2Nrb3V0ZHVyYXRpb24iLCB0aGlzLnByb3BzLmludmFsaWRDcmVh dGVGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPgotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQgY2xhc3NOYW1lPSJkcy1tYXJnaW4t dG9wIiB0aXRsZT17XygiRG8gbm90IGxvY2tvdXQgdGhlIHVzZXIgYWNjb3VudCBmb3JldmVyLCBp bnN0ZWFkIHRoZSBhY2NvdW50IHdpbGwgdW5sb2NrIGJhc2VkIG9uIHRoZSBsb2Nrb3V0IGR1cmF0 aW9uIChwYXNzd29yZFVubG9jaykuIil9PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDxHcmlkSXRlbSBzcGFuPXs2fT4KLUBAIC01MzIsOCArNTU0LDEwIEBAIGNsYXNzIENy ZWF0ZVBvbGljeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUsIHN0cikgPT4gewotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMuaGFu ZGxlQ2hhbmdlKGUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfX0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5n ZXRWYWxpZGF0aW9uUHJvcHMoImNyZWF0ZV9wYXNzd29yZG1pbmxlbmd0aCIsIHRoaXMucHJvcHMu aW52YWxpZENyZWF0ZUZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpc0Rpc2FibGVkPXshdGhpcy5wcm9wcy5wYXNzd29yZGNoZWNrc3ludGF4fQot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPgotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cmVuZGVyVmFsaWRhdGlvbkVycm9yKCJjcmVh dGVfcGFzc3dvcmRtaW5sZW5ndGgiLCB0aGlzLnByb3BzLmludmFsaWRDcmVhdGVGaWVsZHMpfQot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZEl0ZW0+Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWRJdGVtIGNsYXNzTmFtZT0iZHMtbGFi ZWwiIG9mZnNldD17NX0gc3Bhbj17M30+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHtfKCJNaW5pbXVtIEFscGhhJ3MiKX0KLUBAIC01NDcsOCArNTcxLDEwIEBAIGNs YXNzIENyZWF0ZVBvbGljeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUsIHN0cikgPT4gewot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJv cHMuaGFuZGxlQ2hhbmdlKGUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfX0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsuLi5nZXRWYWxpZGF0aW9uUHJvcHMoImNyZWF0ZV9wYXNzd29yZG1pbmFscGhhcyIsIHRoaXMu cHJvcHMuaW52YWxpZENyZWF0ZUZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpc0Rpc2FibGVkPXshdGhpcy5wcm9wcy5wYXNzd29yZGNoZWNrc3lu dGF4fQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPgotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cmVuZGVyVmFsaWRhdGlvbkVycm9y KCJjcmVhdGVfcGFzc3dvcmRtaW5hbHBoYXMiLCB0aGlzLnByb3BzLmludmFsaWRDcmVhdGVGaWVs ZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZEl0ZW0+Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA8R3JpZCBjbGFzc05hbWU9ImRzLW1hcmdpbi10b3AiPgotQEAgLTU2 NCw4ICs1OTAsMTAgQEAgY2xhc3MgQ3JlYXRlUG9saWN5IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50 IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdl PXsoZSwgc3RyKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdGhpcy5wcm9wcy5oYW5kbGVDaGFuZ2UoZSk7Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9fQotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgey4uLmdldFZhbGlkYXRpb25Qcm9wcygiY3JlYXRlX3Bhc3N3b3Jk bWluZGlnaXRzIiwgdGhpcy5wcm9wcy5pbnZhbGlkQ3JlYXRlRmllbGRzKX0KLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRGlzYWJsZWQ9eyF0aGlzLnByb3Bz LnBhc3N3b3JkY2hlY2tzeW50YXh9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyZW5k ZXJWYWxpZGF0aW9uRXJyb3IoImNyZWF0ZV9wYXNzd29yZG1pbmRpZ2l0cyIsIHRoaXMucHJvcHMu aW52YWxpZENyZWF0ZUZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgPC9HcmlkSXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R3Jp ZEl0ZW0gY2xhc3NOYW1lPSJkcy1sYWJlbCIgb2Zmc2V0PXs1fSBzcGFuPXszfT4KLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge18oIk1pbmltdW0gU3BlY2lhbCIpfQot QEAgLTU3OSw4ICs2MDcsMTAgQEAgY2xhc3MgQ3JlYXRlUG9saWN5IGV4dGVuZHMgUmVhY3QuQ29t cG9uZW50IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9u Q2hhbmdlPXsoZSwgc3RyKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5oYW5kbGVDaGFuZ2UoZSk7Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fQotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgey4uLmdldFZhbGlkYXRpb25Qcm9wcygiY3JlYXRlX3Bh c3N3b3JkbWluc3BlY2lhbHMiLCB0aGlzLnByb3BzLmludmFsaWRDcmVhdGVGaWVsZHMpfQotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNEaXNhYmxlZD17IXRo aXMucHJvcHMucGFzc3dvcmRjaGVja3N5bnRheH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLz4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAge3JlbmRlclZhbGlkYXRpb25FcnJvcigiY3JlYXRlX3Bhc3N3b3JkbWluc3BlY2lhbHMiLCB0 aGlzLnByb3BzLmludmFsaWRDcmVhdGVGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDwvR3JpZEl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA8L0dyaWQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBjbGFzc05h bWU9ImRzLW1hcmdpbi10b3AiPgotQEAgLTU5Niw4ICs2MjYsMTAgQEAgY2xhc3MgQ3JlYXRlUG9s aWN5IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSwgc3RyKSA9PiB7Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5oYW5kbGVDaGFu Z2UoZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fQot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLmdldFZhbGlk YXRpb25Qcm9wcygiY3JlYXRlX3Bhc3N3b3JkbWludXBwZXJzIiwgdGhpcy5wcm9wcy5pbnZhbGlk Q3JlYXRlRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlzRGlzYWJsZWQ9eyF0aGlzLnByb3BzLnBhc3N3b3JkY2hlY2tzeW50YXh9Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHtyZW5kZXJWYWxpZGF0aW9uRXJyb3IoImNyZWF0ZV9wYXNz d29yZG1pbnVwcGVycyIsIHRoaXMucHJvcHMuaW52YWxpZENyZWF0ZUZpZWxkcyl9Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkSXRlbT4KLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA8R3JpZEl0ZW0gY2xhc3NOYW1lPSJkcy1sYWJlbCIgb2Zm c2V0PXs1fSBzcGFuPXszfT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAge18oIk1pbmltdW0gTG93ZXJjYXNlIil9Ci1AQCAtNjExLDggKzY0MywxMCBAQCBjbGFzcyBD cmVhdGVQb2xpY3kgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlLCBzdHIpID0+IHsKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmhh bmRsZUNoYW5nZShlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH19Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4u Z2V0VmFsaWRhdGlvblByb3BzKCJjcmVhdGVfcGFzc3dvcmRtaW5sb3dlcnMiLCB0aGlzLnByb3Bz LmludmFsaWRDcmVhdGVGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaXNEaXNhYmxlZD17IXRoaXMucHJvcHMucGFzc3dvcmRjaGVja3N5bnRheH0K LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4KLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3JlbmRlclZhbGlkYXRpb25FcnJvcigiY3Jl YXRlX3Bhc3N3b3JkbWlubG93ZXJzIiwgdGhpcy5wcm9wcy5pbnZhbGlkQ3JlYXRlRmllbGRzKX0K LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWRJdGVtPgotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPgotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgPEdyaWQgY2xhc3NOYW1lPSJkcy1tYXJnaW4tdG9wIj4KLUBAIC02MjgsOCAr NjYyLDEwIEBAIGNsYXNzIENyZWF0ZVBvbGljeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUs IHN0cikgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHRoaXMucHJvcHMuaGFuZGxlQ2hhbmdlKGUpOwotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfX0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHsuLi5nZXRWYWxpZGF0aW9uUHJvcHMoImNyZWF0ZV9wYXNzd29yZG1pbjhi aXQiLCB0aGlzLnByb3BzLmludmFsaWRDcmVhdGVGaWVsZHMpfQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNEaXNhYmxlZD17IXRoaXMucHJvcHMucGFzc3dv cmRjaGVja3N5bnRheH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Lz4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3JlbmRlclZhbGlk YXRpb25FcnJvcigiY3JlYXRlX3Bhc3N3b3JkbWluOGJpdCIsIHRoaXMucHJvcHMuaW52YWxpZENy ZWF0ZUZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Hcmlk SXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZEl0ZW0gY2xh c3NOYW1lPSJkcy1sYWJlbCIgb2Zmc2V0PXs1fSBzcGFuPXszfT4KLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAge18oIk1pbmltdW0gQ2F0ZWdvcmllcyIpfQotQEAgLTY0 Myw4ICs2NzksMTAgQEAgY2xhc3MgQ3JlYXRlUG9saWN5IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50 IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdl PXsoZSwgc3RyKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdGhpcy5wcm9wcy5oYW5kbGVDaGFuZ2UoZSk7Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9fQotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgey4uLmdldFZhbGlkYXRpb25Qcm9wcygiY3JlYXRlX3Bhc3N3b3Jk bWluY2F0ZWdvcmllcyIsIHRoaXMucHJvcHMuaW52YWxpZENyZWF0ZUZpZWxkcyl9Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0Rpc2FibGVkPXshdGhpcy5w cm9wcy5wYXNzd29yZGNoZWNrc3ludGF4fQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 cmVuZGVyVmFsaWRhdGlvbkVycm9yKCJjcmVhdGVfcGFzc3dvcmRtaW5jYXRlZ29yaWVzIiwgdGhp cy5wcm9wcy5pbnZhbGlkQ3JlYXRlRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA8L0dyaWRJdGVtPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg PC9HcmlkPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWQgY2xhc3NOYW1l PSJkcy1tYXJnaW4tdG9wIj4KLUBAIC02NjAsOCArNjk4LDEwIEBAIGNsYXNzIENyZWF0ZVBvbGlj eSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUsIHN0cikgPT4gewotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMuaGFuZGxlQ2hhbmdl KGUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0KLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5nZXRWYWxpZGF0 aW9uUHJvcHMoImNyZWF0ZV9wYXNzd29yZG1pbnRva2VubGVuZ3RoIiwgdGhpcy5wcm9wcy5pbnZh bGlkQ3JlYXRlRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGlzRGlzYWJsZWQ9eyF0aGlzLnByb3BzLnBhc3N3b3JkY2hlY2tzeW50YXh9Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHtyZW5kZXJWYWxpZGF0aW9uRXJyb3IoImNyZWF0ZV9w YXNzd29yZG1pbnRva2VubGVuZ3RoIiwgdGhpcy5wcm9wcy5pbnZhbGlkQ3JlYXRlRmllbGRzKX0K LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWRJdGVtPgotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkSXRlbSBjbGFzc05hbWU9ImRzLWxh YmVsIiBvZmZzZXQ9ezV9IHNwYW49ezN9PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7XygiTWF4IFJlcGVhdGVkIENoYXJzIil9Ci1AQCAtNjc1LDggKzcxNSwxMCBA QCBjbGFzcyBDcmVhdGVQb2xpY3kgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlLCBzdHIpID0+ IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlz LnByb3BzLmhhbmRsZUNoYW5nZShlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH19Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7Li4uZ2V0VmFsaWRhdGlvblByb3BzKCJjcmVhdGVfcGFzc3dvcmRtYXhyZXBlYXRzIiwg dGhpcy5wcm9wcy5pbnZhbGlkQ3JlYXRlRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlzRGlzYWJsZWQ9eyF0aGlzLnByb3BzLnBhc3N3b3JkY2hl Y2tzeW50YXh9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyZW5kZXJWYWxpZGF0aW9u RXJyb3IoImNyZWF0ZV9wYXNzd29yZG1heHJlcGVhdHMiLCB0aGlzLnByb3BzLmludmFsaWRDcmVh dGVGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZEl0 ZW0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBjbGFzc05hbWU9ImRzLW1hcmdpbi10b3AiPgot QEAgLTY4OSwxMSArNzMxLDEzIEBAIGNsYXNzIENyZWF0ZVBvbGljeSBleHRlbmRzIFJlYWN0LkNv bXBvbmVudCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZD0iY3JlYXRlX3Bhc3N3b3JkbWF4c2VxdWVuY2UiCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PSJjcmVhdGVfcGFzc3dvcmRtYXhz ZXF1ZW5jZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5h bWU9ImNyZWF0ZV9wYXNzd29yZG1heHNlcXVlbmNlIgotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgey4uLmdldFZhbGlkYXRpb25Qcm9wcygiY3JlYXRlX3Bhc3N3 b3JkbWF4c2VxdWVuY2UiLCB0aGlzLnByb3BzLmludmFsaWRDcmVhdGVGaWVsZHMpfQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlLCBzdHIp ID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0 aGlzLnByb3BzLmhhbmRsZUNoYW5nZShlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH19Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpc0Rpc2FibGVkPXshdGhpcy5wcm9wcy5wYXNzd29yZGNoZWNrc3ludGF4fQotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPgotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7cmVuZGVyVmFsaWRhdGlvbkVycm9yKCJjcmVhdGVf cGFzc3dvcmRtYXhzZXF1ZW5jZSIsIHRoaXMucHJvcHMuaW52YWxpZENyZWF0ZUZpZWxkcyl9Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkSXRlbT4KLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZEl0ZW0gY2xhc3NOYW1lPSJkcy1sYWJl bCIgb2Zmc2V0PXs1fSBzcGFuPXszfT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAge18oIk1heCBTZXF1ZW5jZSBTZXRzIil9Ci1AQCAtNzA0LDExICs3NDgsMTMgQEAg Y2xhc3MgQ3JlYXRlUG9saWN5IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJjcmVhdGVfcGFzc3dvcmRtYXhz ZXFzZXRzIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJp YS1kZXNjcmliZWRieT0iY3JlYXRlX3Bhc3N3b3JkbWF4c2Vxc2V0cyIKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ImNyZWF0ZV9wYXNzd29yZG1heHNl cXNldHMiCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4u Z2V0VmFsaWRhdGlvblByb3BzKCJjcmVhdGVfcGFzc3dvcmRtYXhzZXFzZXRzIiwgdGhpcy5wcm9w cy5pbnZhbGlkQ3JlYXRlRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSwgc3RyKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5oYW5kbGVDaGFuZ2UoZSk7 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNEaXNhYmxlZD17IXRoaXMu cHJvcHMucGFzc3dvcmRjaGVja3N5bnRheH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLz4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg e3JlbmRlclZhbGlkYXRpb25FcnJvcigiY3JlYXRlX3Bhc3N3b3JkbWF4c2Vxc2V0cyIsIHRoaXMu cHJvcHMuaW52YWxpZENyZWF0ZUZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPC9HcmlkSXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwv R3JpZD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGNsYXNzTmFtZT0i ZHMtbWFyZ2luLXRvcCI+Ci1AQCAtNzIxLDExICs3NjcsMTMgQEAgY2xhc3MgQ3JlYXRlUG9saWN5 IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlkPSJjcmVhdGVfcGFzc3dvcmRtYXhjbGFzc2NoYXJzIgotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT0i Y3JlYXRlX3Bhc3N3b3JkbWF4Y2xhc3NjaGFycyIKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG5hbWU9ImNyZWF0ZV9wYXNzd29yZG1heGNsYXNzY2hhcnMiCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4uZ2V0VmFsaWRh dGlvblByb3BzKCJjcmVhdGVfcGFzc3dvcmRtYXhjbGFzc2NoYXJzIiwgdGhpcy5wcm9wcy5pbnZh bGlkQ3JlYXRlRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG9uQ2hhbmdlPXsoZSwgc3RyKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5oYW5kbGVDaGFuZ2UoZSk7Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNEaXNhYmxlZD17IXRoaXMucHJvcHMu cGFzc3dvcmRjaGVja3N5bnRheH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLz4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3JlbmRl clZhbGlkYXRpb25FcnJvcigiY3JlYXRlX3Bhc3N3b3JkbWF4Y2xhc3NjaGFycyIsIHRoaXMucHJv cHMuaW52YWxpZENyZWF0ZUZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgPC9HcmlkSXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3Jp ZD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkCi1AQCAtMTA4Miw2ICsx MTMwLDkgQEAgZXhwb3J0IGNsYXNzIExvY2FsUHdQb2xpY3kgZXh0ZW5kcyBSZWFjdC5Db21wb25l bnQgewotICAgICAgICAgICAgIF9jcmVhdGVfcGFzc3dvcmR0cHJkZWxheXZhbGlkZnJvbTogICIt MSIsCi0gICAgICAgICAgICAgX2NyZWF0ZV9wYXNzd29yZGFkbWluZG46ICIiLAotICAgICAgICAg ICAgIF9jcmVhdGVfcGFzc3dvcmRhZG1pbnNraXBpbmZvdXBkYXRlOiBmYWxzZSwKLSsgICAgICAg ICAgICAvLyBWYWxpZGF0aW9uCi0rICAgICAgICAgICAgaW52YWxpZEZpZWxkczoge30sCi0rICAg ICAgICAgICAgaW52YWxpZENyZWF0ZUZpZWxkczoge30sCi0gICAgICAgICAgICAgLy8gU2VsZWN0 IHR5cGVhaGVhZAotICAgICAgICAgICAgIGlzVXNlckF0dHJzQ3JlYXRlT3BlbjogZmFsc2UsCi0g ICAgICAgICAgICAgaXNVc2VyQXR0cnNFZGl0T3BlbjogZmFsc2UsCi1AQCAtMTMxNCwxOSArMTM2 NSwyNyBAQCBleHBvcnQgY2xhc3MgTG9jYWxQd1BvbGljeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVu dCB7Ci0gICAgICAgICAgICAgfQotICAgICAgICAgfQotIAotKyAgICAgICAgLy8gVmFsaWRhdGUg Y29uc3RyYWluZWQgZmllbGRzIGZvciBjcmVhdGUKLSsgICAgICAgIGNvbnN0IG5ld0ludmFsaWRD cmVhdGVGaWVsZHMgPSB1cGRhdGVGaWVsZFZhbGlkYXRpb24odGhpcy5zdGF0ZS5pbnZhbGlkQ3Jl YXRlRmllbGRzLCBhdHRyLCB2YWx1ZSk7Ci0rICAgICAgICBpZiAobmV3SW52YWxpZENyZWF0ZUZp ZWxkc1thdHRyXSkgewotKyAgICAgICAgICAgIGRpc2FibGVTYXZlQnRuID0gdHJ1ZTsKLSsgICAg ICAgIH0KLSsKLSAgICAgICAgIC8vIFNlbGVjdCBUeXBlYWhlYWQKLSAgICAgICAgIGlmIChzZWxl Y3Rpb24pIHsKLSAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsKLSAgICAgICAgICAgICAgICAg W2F0dHJdOiBBcnJheS5pc0FycmF5KHNlbGVjdGlvbikgPyBzZWxlY3Rpb24gOiBbXSwKLSAgICAg ICAgICAgICAgICAgY3JlYXRlRGlzYWJsZWQ6IGRpc2FibGVTYXZlQnRuLAotICAgICAgICAgICAg ICAgICBpbnZhbGlkX2RuLAotKyAgICAgICAgICAgICAgICBpbnZhbGlkQ3JlYXRlRmllbGRzOiBu ZXdJbnZhbGlkQ3JlYXRlRmllbGRzLAotICAgICAgICAgICAgICAgICBpc1VzZXJBdHRyc0NyZWF0 ZU9wZW46IGZhbHNlCi0gICAgICAgICAgICAgfSk7Ci0gICAgICAgICB9IGVsc2UgeyAvLyBDaGVj a2JveAotICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoewotICAgICAgICAgICAgICAgICBbYXR0 cl06IHZhbHVlLAotICAgICAgICAgICAgICAgICBjcmVhdGVEaXNhYmxlZDogZGlzYWJsZVNhdmVC dG4sCi0tICAgICAgICAgICAgICAgIGludmFsaWRfZG4KLSsgICAgICAgICAgICAgICAgaW52YWxp ZF9kbiwKLSsgICAgICAgICAgICAgICAgaW52YWxpZENyZWF0ZUZpZWxkczogbmV3SW52YWxpZENy ZWF0ZUZpZWxkcywKLSAgICAgICAgICAgICB9KTsKLSAgICAgICAgIH0KLSAgICAgfQotQEAgLTE0 MTgsNiArMTQ3Nyw3IEBAIGV4cG9ydCBjbGFzcyBMb2NhbFB3UG9saWN5IGV4dGVuZHMgUmVhY3Qu Q29tcG9uZW50IHsKLSAgICAgICAgIHRoaXMuc2V0U3RhdGUoewotICAgICAgICAgICAgIFthdHRy XTogdmFsdWUsCi0gICAgICAgICAgICAgc2F2ZUdlbmVyYWxEaXNhYmxlZDogZGlzYWJsZVNhdmVC dG4sCi0rICAgICAgICAgICAgaW52YWxpZEZpZWxkczogdXBkYXRlRmllbGRWYWxpZGF0aW9uKHRo aXMuc3RhdGUuaW52YWxpZEZpZWxkcywgYXR0ciwgdmFsdWUpLAotICAgICAgICAgfSk7Ci0gICAg IH0KLSAKLUBAIC0xNDk1LDYgKzE1NTUsNyBAQCBleHBvcnQgY2xhc3MgTG9jYWxQd1BvbGljeSBl eHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICB0aGlzLnNldFN0YXRlKHsKLSAgICAg ICAgICAgICBbYXR0cl06IHZhbHVlLAotICAgICAgICAgICAgIHNhdmVFeHBEaXNhYmxlZDogZGlz YWJsZVNhdmVCdG4sCi0rICAgICAgICAgICAgaW52YWxpZEZpZWxkczogdXBkYXRlRmllbGRWYWxp ZGF0aW9uKHRoaXMuc3RhdGUuaW52YWxpZEZpZWxkcywgYXR0ciwgdmFsdWUpLAotICAgICAgICAg fSk7Ci0gICAgIH0KLSAKLUBAIC0xNTcyLDYgKzE2MzMsNyBAQCBleHBvcnQgY2xhc3MgTG9jYWxQ d1BvbGljeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICB0aGlzLnNldFN0YXRl KHsKLSAgICAgICAgICAgICBbYXR0cl06IHZhbHVlLAotICAgICAgICAgICAgIHNhdmVMb2Nrb3V0 RGlzYWJsZWQ6IGRpc2FibGVTYXZlQnRuLAotKyAgICAgICAgICAgIGludmFsaWRGaWVsZHM6IHVw ZGF0ZUZpZWxkVmFsaWRhdGlvbih0aGlzLnN0YXRlLmludmFsaWRGaWVsZHMsIGF0dHIsIHZhbHVl KSwKLSAgICAgICAgIH0pOwotICAgICB9Ci0gCi1AQCAtMTY3MiwxMiArMTczNCwxNCBAQCBleHBv cnQgY2xhc3MgTG9jYWxQd1BvbGljeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAg ICAgICAgdGhpcy5zZXRTdGF0ZSh7Ci0gICAgICAgICAgICAgICAgIFthdHRyXTogQXJyYXkuaXNB cnJheShzZWxlY3Rpb24pID8gc2VsZWN0aW9uIDogW10sCi0gICAgICAgICAgICAgICAgIHNhdmVT eW50YXhEaXNhYmxlZDogZGlzYWJsZVNhdmVCdG4sCi0rICAgICAgICAgICAgICAgIGludmFsaWRG aWVsZHM6IHVwZGF0ZUZpZWxkVmFsaWRhdGlvbih0aGlzLnN0YXRlLmludmFsaWRGaWVsZHMsIGF0 dHIsIHZhbHVlKSwKLSAgICAgICAgICAgICAgICAgaXNVc2VyQXR0cnNFZGl0T3BlbjogZmFsc2UK LSAgICAgICAgICAgICB9KTsKLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgdGhpcy5z ZXRTdGF0ZSh7Ci0gICAgICAgICAgICAgICAgIFthdHRyXTogdmFsdWUsCi0gICAgICAgICAgICAg ICAgIHNhdmVTeW50YXhEaXNhYmxlZDogZGlzYWJsZVNhdmVCdG4sCi0rICAgICAgICAgICAgICAg IGludmFsaWRGaWVsZHM6IHVwZGF0ZUZpZWxkVmFsaWRhdGlvbih0aGlzLnN0YXRlLmludmFsaWRG aWVsZHMsIGF0dHIsIHZhbHVlKSwKLSAgICAgICAgICAgICAgICAgaXNVc2VyQXR0cnNFZGl0T3Bl bjogZmFsc2UKLSAgICAgICAgICAgICB9KTsKLSAgICAgICAgIH0KLUBAIC0xODY3LDYgKzE5MzEs OCBAQCBleHBvcnQgY2xhc3MgTG9jYWxQd1BvbGljeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgcG9saWN5TmFtZTogIiIsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgZGVsZXRlTmFtZTogIiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgc2hv d0RlbGV0ZVBvbGljeTogZmFsc2UsCi0rICAgICAgICAgICAgICAgICAgICAgICAgaW52YWxpZEZp ZWxkczoge30sCi0rICAgICAgICAgICAgICAgICAgICAgICAgaW52YWxpZENyZWF0ZUZpZWxkczog e30sCi0gICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVzZXQgZWRpdCBhbmQgY3JlYXRlIHRh YgotICAgICAgICAgICAgICAgICAgICAgICAgIHNhdmVHZW5lcmFsRGlzYWJsZWQ6IHRydWUsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgc2F2ZVVzZXJEaXNhYmxlZDogdHJ1ZSwKLUBAIC0yMzkx LDEwICsyNDU3LDEyIEBAIGV4cG9ydCBjbGFzcyBMb2NhbFB3UG9saWN5IGV4dGVuZHMgUmVhY3Qu Q29tcG9uZW50IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJwYXNzd29y ZG1pbmxlbmd0aCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZGVzY3Jp YmVkYnk9Imhvcml6b250YWwtZm9ybS1uYW1lLWhlbHBlciIKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG5hbWU9InBhc3N3b3JkbWlubGVuZ3RoIgotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgey4uLmdldFZhbGlkYXRpb25Qcm9wcygicGFzc3dvcmRtaW5sZW5ndGgi LCB0aGlzLnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgb25DaGFuZ2U9eyhlLCBjaGVja2VkKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVTeW50YXhDaGFuZ2UoZSk7Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9fQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPgot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cmVuZGVyVmFsaWRhdGlvbkVycm9yKCJwYXNz d29yZG1pbmxlbmd0aCIsIHRoaXMuc3RhdGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgPC9HcmlkSXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZEl0 ZW0gY2xhc3NOYW1lPSJkcy1sYWJlbCIgb2Zmc2V0PXs2fSBzcGFuPXszfT4KLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAge18oIk1pbmltdW0gQWxwaGEncyIpfQotQEAgLTI0MDcsMTAgKzI0 NzUsMTIgQEAgZXhwb3J0IGNsYXNzIExvY2FsUHdQb2xpY3kgZXh0ZW5kcyBSZWFjdC5Db21wb25l bnQgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InBhc3N3b3JkbWluYWxw aGFzIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT0i aG9yaXpvbnRhbC1mb3JtLW5hbWUtaGVscGVyIgotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbmFtZT0icGFzc3dvcmRtaW5hbHBoYXMiCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB7Li4uZ2V0VmFsaWRhdGlvblByb3BzKCJwYXNzd29yZG1pbmFscGhhcyIsIHRoaXMu c3RhdGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv bkNoYW5nZT17KGUsIGNoZWNrZWQpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0aGlzLmhhbmRsZVN5bnRheENoYW5nZShlKTsKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH19Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHtyZW5kZXJWYWxpZGF0aW9uRXJyb3IoInBhc3N3b3JkbWlu YWxwaGFzIiwgdGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAg ICAgICA8L0dyaWRJdGVtPgotICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPgotICAgICAgICAg ICAgICAgICAgICAgPEdyaWQgY2xhc3NOYW1lPSJkcy1tYXJnaW4tdG9wIj4KLUBAIC0yNDI1LDEw ICsyNDk1LDEyIEBAIGV4cG9ydCBjbGFzcyBMb2NhbFB3UG9saWN5IGV4dGVuZHMgUmVhY3QuQ29t cG9uZW50IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJwYXNzd29yZG1p bmRpZ2l0cyIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVk Ynk9Imhvcml6b250YWwtZm9ybS1uYW1lLWhlbHBlciIKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG5hbWU9InBhc3N3b3JkbWluZGlnaXRzIgotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgey4uLmdldFZhbGlkYXRpb25Qcm9wcygicGFzc3dvcmRtaW5kaWdpdHMiLCB0 aGlzLnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgb25DaGFuZ2U9eyhlLCBjaGVja2VkKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdGhpcy5oYW5kbGVTeW50YXhDaGFuZ2UoZSk7Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9fQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPgotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7cmVuZGVyVmFsaWRhdGlvbkVycm9yKCJwYXNzd29y ZG1pbmRpZ2l0cyIsIHRoaXMuc3RhdGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgPC9HcmlkSXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZEl0ZW0g Y2xhc3NOYW1lPSJkcy1sYWJlbCIgb2Zmc2V0PXs2fSBzcGFuPXszfT4KLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAge18oIk1pbmltdW0gU3BlY2lhbCIpfQotQEAgLTI0NDEsMTAgKzI1MTMs MTIgQEAgZXhwb3J0IGNsYXNzIExvY2FsUHdQb2xpY3kgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQg ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InBhc3N3b3JkbWluc3BlY2lh bHMiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PSJo b3Jpem9udGFsLWZvcm0tbmFtZS1oZWxwZXIiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBuYW1lPSJwYXNzd29yZG1pbnNwZWNpYWxzIgotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgey4uLmdldFZhbGlkYXRpb25Qcm9wcygicGFzc3dvcmRtaW5zcGVjaWFscyIsIHRo aXMuc3RhdGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBvbkNoYW5nZT17KGUsIGNoZWNrZWQpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0aGlzLmhhbmRsZVN5bnRheENoYW5nZShlKTsKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH19Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHtyZW5kZXJWYWxpZGF0aW9uRXJyb3IoInBhc3N3b3Jk bWluc3BlY2lhbHMiLCB0aGlzLnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAg ICAgICAgICAgIDwvR3JpZEl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+Ci0gICAg ICAgICAgICAgICAgICAgICA8R3JpZCBjbGFzc05hbWU9ImRzLW1hcmdpbi10b3AiPgotQEAgLTI0 NTksMTAgKzI1MzMsMTIgQEAgZXhwb3J0IGNsYXNzIExvY2FsUHdQb2xpY3kgZXh0ZW5kcyBSZWFj dC5Db21wb25lbnQgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InBhc3N3 b3JkbWludXBwZXJzIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1kZXNj cmliZWRieT0iaG9yaXpvbnRhbC1mb3JtLW5hbWUtaGVscGVyIgotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbmFtZT0icGFzc3dvcmRtaW51cHBlcnMiCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7Li4uZ2V0VmFsaWRhdGlvblByb3BzKCJwYXNzd29yZG1pbnVwcGVy cyIsIHRoaXMuc3RhdGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBvbkNoYW5nZT17KGUsIGNoZWNrZWQpID0+IHsKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZVN5bnRheENoYW5nZShlKTsKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH19Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+ Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyZW5kZXJWYWxpZGF0aW9uRXJyb3IoInBh c3N3b3JkbWludXBwZXJzIiwgdGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAg ICAgICAgICAgICAgICA8L0dyaWRJdGVtPgotICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlk SXRlbSBjbGFzc05hbWU9ImRzLWxhYmVsIiBvZmZzZXQ9ezZ9IHNwYW49ezN9PgotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7XygiTWluaW11bSBMb3dlcmNhc2UiKX0KLUBAIC0yNDc1LDEw ICsyNTUxLDEyIEBAIGV4cG9ydCBjbGFzcyBMb2NhbFB3UG9saWN5IGV4dGVuZHMgUmVhY3QuQ29t cG9uZW50IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJwYXNzd29yZG1p bmxvd2VycyIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVk Ynk9Imhvcml6b250YWwtZm9ybS1uYW1lLWhlbHBlciIKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG5hbWU9InBhc3N3b3JkbWlubG93ZXJzIgotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgey4uLmdldFZhbGlkYXRpb25Qcm9wcygicGFzc3dvcmRtaW5sb3dlcnMiLCB0 aGlzLnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgb25DaGFuZ2U9eyhlLCBjaGVja2VkKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdGhpcy5oYW5kbGVTeW50YXhDaGFuZ2UoZSk7Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9fQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPgotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7cmVuZGVyVmFsaWRhdGlvbkVycm9yKCJwYXNzd29y ZG1pbmxvd2VycyIsIHRoaXMuc3RhdGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgPC9HcmlkSXRlbT4KLSAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD4KLSAgICAg ICAgICAgICAgICAgICAgIDxHcmlkIGNsYXNzTmFtZT0iZHMtbWFyZ2luLXRvcCI+Ci1AQCAtMjQ5 MywxMCArMjU3MSwxMiBAQCBleHBvcnQgY2xhc3MgTG9jYWxQd1BvbGljeSBleHRlbmRzIFJlYWN0 LkNvbXBvbmVudCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icGFzc3dv cmRtaW44Yml0IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1kZXNjcmli ZWRieT0iaG9yaXpvbnRhbC1mb3JtLW5hbWUtaGVscGVyIgotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbmFtZT0icGFzc3dvcmRtaW44Yml0IgotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgey4uLmdldFZhbGlkYXRpb25Qcm9wcygicGFzc3dvcmRtaW44Yml0IiwgdGhp cy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG9uQ2hhbmdlPXsoZSwgY2hlY2tlZCkgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHRoaXMuaGFuZGxlU3ludGF4Q2hhbmdlKGUpOwotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4KLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAge3JlbmRlclZhbGlkYXRpb25FcnJvcigicGFzc3dvcmRt aW44Yml0IiwgdGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAg ICAgICA8L0dyaWRJdGVtPgotICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkSXRlbSBjbGFz c05hbWU9ImRzLWxhYmVsIiBvZmZzZXQ9ezZ9IHNwYW49ezN9PgotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7XygiTWluaW11bSBDYXRlZ29yaWVzIil9Ci1AQCAtMjUwOSwxMCArMjU4OSwx MiBAQCBleHBvcnQgY2xhc3MgTG9jYWxQd1BvbGljeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icGFzc3dvcmRtaW5jYXRlZ29y aWVzIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT0i aG9yaXpvbnRhbC1mb3JtLW5hbWUtaGVscGVyIgotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbmFtZT0icGFzc3dvcmRtaW5jYXRlZ29yaWVzIgotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgey4uLmdldFZhbGlkYXRpb25Qcm9wcygicGFzc3dvcmRtaW5jYXRlZ29yaWVz IiwgdGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG9uQ2hhbmdlPXsoZSwgY2hlY2tlZCkgPT4gewotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlU3ludGF4Q2hhbmdlKGUpOwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4K LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAge3JlbmRlclZhbGlkYXRpb25FcnJvcigicGFz c3dvcmRtaW5jYXRlZ29yaWVzIiwgdGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAg ICAgICAgICAgICAgICAgICA8L0dyaWRJdGVtPgotICAgICAgICAgICAgICAgICAgICAgPC9Hcmlk PgotICAgICAgICAgICAgICAgICAgICAgPEdyaWQgY2xhc3NOYW1lPSJkcy1tYXJnaW4tdG9wIj4K LUBAIC0yNTI3LDExICsyNjA5LDEzIEBAIGV4cG9ydCBjbGFzcyBMb2NhbFB3UG9saWN5IGV4dGVu ZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlk PSJwYXNzd29yZG1heHNlcXVlbmNlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YXJpYS1kZXNjcmliZWRieT0iaG9yaXpvbnRhbC1mb3JtLW5hbWUtaGVscGVyIgotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0icGFzc3dvcmRtYXhzZXF1ZW5jZSIKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5nZXRWYWxpZGF0aW9uUHJvcHMoInBhc3N3 b3JkbWF4c2VxdWVuY2UiLCB0aGlzLnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlLCBjaGVja2VkKSA9PiB7Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVTeW50YXhDaGFuZ2UoZSk7 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvPgotICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZEl0ZW0+Ci0rICAg ICAgICAgICAgICAgICAgICAgICAge3JlbmRlclZhbGlkYXRpb25FcnJvcigicGFzc3dvcmRtYXhz ZXF1ZW5jZSIsIHRoaXMuc3RhdGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgPEdyaWRJdGVtIGNsYXNzTmFtZT0iZHMtbGFiZWwiIG9mZnNldD17Nn0gc3Bhbj17M30+ Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtfKCJNYXggU2VxdWVuY2UgU2V0cyIpfQot ICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZEl0ZW0+Ci1AQCAtMjU0MywxMSArMjYyNywx MyBAQCBleHBvcnQgY2xhc3MgTG9jYWxQd1BvbGljeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD0icGFzc3dvcmRtYXhzZXFzZXRz IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT0iaG9y aXpvbnRhbC1mb3JtLW5hbWUtaGVscGVyIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbmFtZT0icGFzc3dvcmRtYXhzZXFzZXRzIgotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgey4uLmdldFZhbGlkYXRpb25Qcm9wcygicGFzc3dvcmRtYXhzZXFzZXRzIiwgdGhpcy5z dGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9u Q2hhbmdlPXsoZSwgY2hlY2tlZCkgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHRoaXMuaGFuZGxlU3ludGF4Q2hhbmdlKGUpOwotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4KLSAgICAgICAg ICAgICAgICAgICAgICAgICA8L0dyaWRJdGVtPgotKyAgICAgICAgICAgICAgICAgICAgICAgIHty ZW5kZXJWYWxpZGF0aW9uRXJyb3IoInBhc3N3b3JkbWF4c2Vxc2V0cyIsIHRoaXMuc3RhdGUuaW52 YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+Ci0gICAgICAgICAgICAg ICAgICAgICA8R3JpZCBjbGFzc05hbWU9ImRzLW1hcmdpbi10b3AiPgotICAgICAgICAgICAgICAg ICAgICAgICAgIDxHcmlkSXRlbSBjbGFzc05hbWU9ImRzLWxhYmVsIiBzcGFuPXszfT4KLUBAIC0y NTYxLDExICsyNjQ3LDEzIEBAIGV4cG9ydCBjbGFzcyBMb2NhbFB3UG9saWN5IGV4dGVuZHMgUmVh Y3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJwYXNz d29yZG1heGNsYXNzY2hhcnMiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlh LWRlc2NyaWJlZGJ5PSJob3Jpem9udGFsLWZvcm0tbmFtZS1oZWxwZXIiCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBuYW1lPSJwYXNzd29yZG1heGNsYXNzY2hhcnMiCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4uZ2V0VmFsaWRhdGlvblByb3BzKCJwYXNzd29y ZG1heGNsYXNzY2hhcnMiLCB0aGlzLnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlLCBjaGVja2VkKSA9PiB7Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVTeW50YXhDaGFuZ2UoZSk7 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvPgotICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZEl0ZW0+Ci0rICAg ICAgICAgICAgICAgICAgICAgICAge3JlbmRlclZhbGlkYXRpb25FcnJvcigicGFzc3dvcmRtYXhj bGFzc2NoYXJzIiwgdGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAg ICAgIDwvR3JpZD4KLSAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGNsYXNzTmFtZT0iZHMtbWFy Z2luLXRvcCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWRJdGVtIGNsYXNzTmFtZT0i ZHMtbGFiZWwiIHNwYW49ezN9PgotQEAgLTI2NDYsMTIgKzI3MzQsMTQgQEAgZXhwb3J0IGNsYXNz IExvY2FsUHdQb2xpY3kgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdHlwZT0ibnVtYmVyIgotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWQ9InBhc3N3b3JkbWF4ZmFpbHVyZSIKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9Imhvcml6b250YWwtZm9ybS1uYW1lLWhlbHBlciIK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9InBhc3N3b3JkbWF4cGFzc3dv cmRtYXhmYWlsdXJlY2xhc3NjaGFycyIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG5hbWU9InBhc3N3b3JkbWF4ZmFpbHVyZSIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsuLi5nZXRWYWxpZGF0aW9uUHJvcHMoInBhc3N3b3JkbWF4ZmFpbHVyZSIsIHRoaXMuc3Rh dGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNo YW5nZT17KGUsIGNoZWNrZWQpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0aGlzLmhhbmRsZUxvY2tvdXRDaGFuZ2UoZSk7Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9fQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPgotICAgICAgICAg ICAgICAgICAgICAgICAgIDwvR3JpZEl0ZW0+Ci0rICAgICAgICAgICAgICAgICAgICAgICAge3Jl bmRlclZhbGlkYXRpb25FcnJvcigicGFzc3dvcmRtYXhmYWlsdXJlIiwgdGhpcy5zdGF0ZS5pbnZh bGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD4KLSAgICAgICAgICAgICAg ICAgICAgIDxHcmlkIGNsYXNzTmFtZT0iZHMtbWFyZ2luLXRvcCIgdGl0bGU9e18oIlRoZSBudW1i ZXIgb2Ygc2Vjb25kcyB1bnRpbCBhbiBhY2NvdW50cyBmYWlsdXJlIGNvdW50IGlzIHJlc2V0IChw YXNzd29yZFJlc2V0RmFpbHVyZUNvdW50KS4iKX0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAg PEdyaWRJdGVtIGNsYXNzTmFtZT0iZHMtbGFiZWwiIHNwYW49ezV9PgotQEAgLTI2NjQsMTEgKzI3 NTQsMTMgQEAgZXhwb3J0IGNsYXNzIExvY2FsUHdQb2xpY3kgZXh0ZW5kcyBSZWFjdC5Db21wb25l bnQgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9InBhc3N3b3JkcmVzZXRm YWlsdXJlY291bnQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2Ny aWJlZGJ5PSJob3Jpem9udGFsLWZvcm0tbmFtZS1oZWxwZXIiCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBuYW1lPSJwYXNzd29yZHJlc2V0ZmFpbHVyZWNvdW50IgotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgey4uLmdldFZhbGlkYXRpb25Qcm9wcygicGFzc3dvcmRy ZXNldGZhaWx1cmVjb3VudCIsIHRoaXMuc3RhdGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUsIGNoZWNrZWQpID0+IHsKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUxvY2tvdXRDaGFuZ2Uo ZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fQotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAvPgotICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZEl0ZW0+Ci0r ICAgICAgICAgICAgICAgICAgICAgICAge3JlbmRlclZhbGlkYXRpb25FcnJvcigicGFzc3dvcmRy ZXNldGZhaWx1cmVjb3VudCIsIHRoaXMuc3RhdGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAg ICAgICAgICAgICA8L0dyaWQ+Ci0gICAgICAgICAgICAgICAgICAgICA8R3JpZCBjbGFzc05hbWU9 ImRzLW1hcmdpbi10b3AiIHRpdGxlPXtfKCJUaGUgbnVtYmVyIG9mIHNlY29uZHMsIGR1cmF0aW9u LCBiZWZvcmUgdGhlIGFjY291bnQgZ2V0cyB1bmxvY2tlZCAocGFzc3dvcmRMb2Nrb3V0RHVyYXRp b24pLiIpfT4KLSAgICAgICAgICAgICAgICAgICAgICAgICA8R3JpZEl0ZW0gY2xhc3NOYW1lPSJk cy1sYWJlbCIgc3Bhbj17NX0+Ci1AQCAtMjY4MSwxMSArMjc3MywxMyBAQCBleHBvcnQgY2xhc3Mg TG9jYWxQd1BvbGljeSBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZD0icGFzc3dvcmRsb2Nrb3V0ZHVyYXRpb24iCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PSJob3Jpem9udGFsLWZvcm0t bmFtZS1oZWxwZXIiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJwYXNz d29yZGxvY2tvdXRkdXJhdGlvbiIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsu Li5nZXRWYWxpZGF0aW9uUHJvcHMoInBhc3N3b3JkbG9ja291dGR1cmF0aW9uIiwgdGhpcy5zdGF0 ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hh bmdlPXsoZSwgY2hlY2tlZCkgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHRoaXMuaGFuZGxlTG9ja291dENoYW5nZShlKTsKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH19Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgPC9HcmlkSXRlbT4KLSsgICAgICAgICAgICAgICAgICAgICAgICB7cmVu ZGVyVmFsaWRhdGlvbkVycm9yKCJwYXNzd29yZGxvY2tvdXRkdXJhdGlvbiIsIHRoaXMuc3RhdGUu aW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICA8L0dyaWQ+Ci0gICAgICAgICAg ICAgICAgICAgICA8R3JpZCBjbGFzc05hbWU9ImRzLW1hcmdpbi10b3AiIHRpdGxlPXtfKCJEbyBu b3QgbG9ja291dCB0aGUgdXNlciBhY2NvdW50IGZvcmV2ZXIsIGluc3RlYWQgdGhlIGFjY291bnQg d2lsbCB1bmxvY2sgYmFzZWQgb24gdGhlIGxvY2tvdXQgZHVyYXRpb24gKHBhc3N3b3JkVW5sb2Nr KS4iKX0+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgPEdyaWRJdGVtIGNsYXNzTmFtZT0iZHMt bGFiZWwiIHNwYW49ezV9PgotQEAgLTI3MTcsMTEgKzI4MTEsMTMgQEAgZXhwb3J0IGNsYXNzIExv Y2FsUHdQb2xpY3kgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWQ9InBhc3N3b3JkbWF4YWdlIgotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT0iaG9yaXpvbnRhbC1mb3JtLW5hbWUtaGVscGVy IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0icGFzc3dvcmRtYXhhZ2Ui Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4uZ2V0VmFsaWRhdGlvblByb3Bz KCJwYXNzd29yZG1heGFnZSIsIHRoaXMuc3RhdGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUsIGNoZWNrZWQpID0+IHsKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUV4cENoYW5nZShlKTsK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkSXRlbT4KLSsgICAg ICAgICAgICAgICAgICAgICAgICB7cmVuZGVyVmFsaWRhdGlvbkVycm9yKCJwYXNzd29yZG1heGFn ZSIsIHRoaXMuc3RhdGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAgICA8L0dy aWQ+Ci0gICAgICAgICAgICAgICAgICAgICA8R3JpZCBjbGFzc05hbWU9ImRzLW1hcmdpbi10b3Ai IHRpdGxlPXtfKCJUaGUgbnVtYmVyIG9mIGxvZ2lucyB0aGF0IGFyZSBhbGxvd2VkIGFmdGVyIHRo ZSBwYXNzd29yZCBoYXMgZXhwaXJlZCAocGFzc3dvcmRHcmFjZUxpbWl0KS4iKX0+Ci0gICAgICAg ICAgICAgICAgICAgICAgICAgPEdyaWRJdGVtIGNsYXNzTmFtZT0iZHMtbGFiZWwiIHNwYW49ezV9 PgotQEAgLTI3MzQsMTEgKzI4MzAsMTMgQEAgZXhwb3J0IGNsYXNzIExvY2FsUHdQb2xpY3kgZXh0 ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aWQ9InBhc3N3b3JkZ3JhY2VsaW1pdCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFyaWEtZGVzY3JpYmVkYnk9Imhvcml6b250YWwtZm9ybS1uYW1lLWhlbHBlciIKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9InBhc3N3b3JkZ3JhY2VsaW1pdCIKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5nZXRWYWxpZGF0aW9uUHJvcHMoInBhc3N3 b3JkZ3JhY2VsaW1pdCIsIHRoaXMuc3RhdGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUsIGNoZWNrZWQpID0+IHsKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUV4cENoYW5nZShlKTsKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkSXRlbT4KLSsgICAgICAg ICAgICAgICAgICAgICAgICB7cmVuZGVyVmFsaWRhdGlvbkVycm9yKCJwYXNzd29yZGdyYWNlbGlt aXQiLCB0aGlzLnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgPC9H cmlkPgotICAgICAgICAgICAgICAgICAgICAgPEdyaWQgY2xhc3NOYW1lPSJkcy1tYXJnaW4tdG9w IiB0aXRsZT17XygiU2V0IHRoZSB0aW1lIChpbiBzZWNvbmRzKSwgYmVmb3JlIGEgcGFzc3dvcmQg aXMgYWJvdXQgdG8gZXhwaXJlLCB0byBzZW5kIGEgd2FybmluZy4gKHBhc3N3b3JkV2FybmluZyku Iil9PgotICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkSXRlbSBjbGFzc05hbWU9ImRzLWxh YmVsIiBzcGFuPXs1fT4KLUBAIC0yNzUxLDExICsyODQ5LDEzIEBAIGV4cG9ydCBjbGFzcyBMb2Nh bFB3UG9saWN5IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlkPSJwYXNzd29yZHdhcm5pbmciCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PSJob3Jpem9udGFsLWZvcm0tbmFtZS1oZWxwZXIi Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJwYXNzd29yZHdhcm5pbmci Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4uZ2V0VmFsaWRhdGlvblByb3Bz KCJwYXNzd29yZHdhcm5pbmciLCB0aGlzLnN0YXRlLmludmFsaWRGaWVsZHMpfQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlLCBjaGVja2VkKSA9PiB7Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVFeHBDaGFuZ2UoZSk7 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvPgotICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZEl0ZW0+Ci0rICAg ICAgICAgICAgICAgICAgICAgICAge3JlbmRlclZhbGlkYXRpb25FcnJvcigicGFzc3dvcmR3YXJu aW5nIiwgdGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgIDwv R3JpZD4KLSAgICAgICAgICAgICAgICAgICAgIDxHcmlkIGNsYXNzTmFtZT0iZHMtbWFyZ2luLXRv cCIgdGl0bGU9e18oIkFsd2F5cyByZXR1cm4gYSBwYXNzd29yZCBleHBpcmluZyBjb250cm9sIHdo ZW4gcmVxdWVzdGVkIChwYXNzd29yZFNlbmRFeHBpcmluZ1RpbWUpLiIpfT4KLSAgICAgICAgICAg ICAgICAgICAgICAgICA8R3JpZEl0ZW0gY2xhc3NOYW1lPSJkcy1sYWJlbCIgc3Bhbj17NX0+Ci1A QCAtMjg0OSwxMCArMjk0OSwxMiBAQCBleHBvcnQgY2xhc3MgTG9jYWxQd1BvbGljeSBleHRlbmRz IFJlYWN0LkNvbXBvbmVudCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaWQ9InBhc3N3b3JkaW5oaXN0b3J5IgotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9Imhvcml6b250YWwt Zm9ybS1uYW1lLWhlbHBlciIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBuYW1lPSJwYXNzd29yZGluaGlzdG9yeSIKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4uZ2V0VmFsaWRhdGlvblByb3BzKCJwYXNz d29yZGluaGlzdG9yeSIsIHRoaXMuc3RhdGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlLCBjaGVja2Vk KSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHRoaXMuaGFuZGxlR2VuZXJhbENoYW5nZShlKTsKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9fQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLz4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHtyZW5kZXJWYWxpZGF0aW9uRXJyb3IoInBhc3N3b3JkaW5oaXN0b3J5IiwgdGhp cy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9H cmlkSXRlbT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3JpZD4KLUBAIC0y ODkyLDExICsyOTk0LDEzIEBAIGV4cG9ydCBjbGFzcyBMb2NhbFB3UG9saWN5IGV4dGVuZHMgUmVh Y3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlkPSJwYXNzd29yZG1pbmFnZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9Imhvcml6b250YWwtZm9ybS1uYW1lLWhlbHBl ciIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9InBh c3N3b3JkbWluYWdlIgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgey4uLmdldFZhbGlkYXRpb25Qcm9wcygicGFzc3dvcmRtaW5hZ2UiLCB0aGlzLnN0YXRlLmlu dmFsaWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgb25DaGFuZ2U9eyhlLCBjaGVja2VkKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVHZW5lcmFsQ2hhbmdlKGUpOwotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0KLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4KLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA8L0dyaWRJdGVtPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHtyZW5kZXJWYWxpZGF0aW9uRXJyb3IoInBhc3N3b3JkbWluYWdlIiwgdGhpcy5zdGF0 ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvR3Jp ZD4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxHcmlkCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9e18oIlRoZSBETiBmb3IgYSBwYXNzd29yZCBh ZG1pbmlzdHJhdG9yIG9yIGFkbWluaXN0cmF0b3IgZ3JvdXAgKHBhc3N3b3JkQWRtaW5ETikuIil9 Ci1AQCAtMjkzMyw3ICszMDM3LDcgQEAgZXhwb3J0IGNsYXNzIExvY2FsUHdQb2xpY3kgZXh0ZW5k cyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9H cmlkPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0Zvcm0+Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDxCdXR0b24KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlzRGlzYWJsZWQ9e3RoaXMuc3RhdGUuc2F2ZUdlbmVyYWxEaXNhYmxlZCB8fCB0aGlzLnN0YXRl LnNhdmluZ30KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRGlzYWJsZWQ9e3Ro aXMuc3RhdGUuc2F2ZUdlbmVyYWxEaXNhYmxlZCB8fCB0aGlzLnN0YXRlLnNhdmluZyB8fCBoYXNJ bnZhbGlkRmllbGQoZ2VuZXJhbF9hdHRycywgdGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9InByaW1hcnkiCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9ImRzLW1hcmdpbi10b3AteGxnIGRz LW1hcmdpbi1sZWZ0LXNtIGRzLW1hcmdpbi1ib3R0b20tbWQiCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLmhhbmRsZVNhdmVHZW5lcmFsfQotQEAgLTI5NjEs NyArMzA2NSw3IEBAIGV4cG9ydCBjbGFzcyBMb2NhbFB3UG9saWN5IGV4dGVuZHMgUmVhY3QuQ29t cG9uZW50IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwd0V4cGlyYXRpb25S b3dzfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0Zvcm0+Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDxCdXR0b24KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlzRGlzYWJsZWQ9e3RoaXMuc3RhdGUuc2F2ZUV4cERpc2FibGVkIHx8IHRoaXMuc3RhdGUuc2F2 aW5nfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNEaXNhYmxlZD17dGhpcy5z dGF0ZS5zYXZlRXhwRGlzYWJsZWQgfHwgdGhpcy5zdGF0ZS5zYXZpbmcgfHwgaGFzSW52YWxpZEZp ZWxkKGV4cF9hdHRycywgdGhpcy5zdGF0ZS5pbnZhbGlkRmllbGRzKX0KLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9InByaW1hcnkiCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjbGFzc05hbWU9ImRzLW1hcmdpbi10b3AtbGcgZHMtbWFyZ2luLWxlZnQi Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLmhhbmRsZVNh dmVFeHB9Ci1AQCAtMjk4OSw3ICszMDkzLDcgQEAgZXhwb3J0IGNsYXNzIExvY2FsUHdQb2xpY3kg ZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAge3B3TG9ja291dFJvd3N9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRm9ybT4K LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbgotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaXNEaXNhYmxlZD17dGhpcy5zdGF0ZS5zYXZlTG9ja291dERpc2FibGVk IHx8IHRoaXMuc3RhdGUuc2F2aW5nfQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aXNEaXNhYmxlZD17dGhpcy5zdGF0ZS5zYXZlTG9ja291dERpc2FibGVkIHx8IHRoaXMuc3RhdGUu c2F2aW5nIHx8IGhhc0ludmFsaWRGaWVsZChsb2Nrb3V0X2F0dHJzLCB0aGlzLnN0YXRlLmludmFs aWRGaWVsZHMpfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD0icHJp bWFyeSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT0iZHMtbWFy Z2luLXRvcC1sZyBkcy1tYXJnaW4tbGVmdCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG9uQ2xpY2s9e3RoaXMuaGFuZGxlU2F2ZUxvY2tvdXR9Ci1AQCAtMzAxNyw3ICszMTIxLDcg QEAgZXhwb3J0IGNsYXNzIExvY2FsUHdQb2xpY3kgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQgewot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3B3U3ludGF4Um93c30KLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgPC9Gb3JtPgotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA8QnV0dG9uCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc0Rpc2FibGVkPXt0 aGlzLnN0YXRlLnNhdmVTeW50YXhEaXNhYmxlZCB8fCB0aGlzLnN0YXRlLnNhdmluZ30KLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRGlzYWJsZWQ9e3RoaXMuc3RhdGUuc2F2ZVN5 bnRheERpc2FibGVkIHx8IHRoaXMuc3RhdGUuc2F2aW5nIHx8IGhhc0ludmFsaWRGaWVsZChzeW50 YXhfYXR0cnMsIHRoaXMuc3RhdGUuaW52YWxpZEZpZWxkcyl9Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB2YXJpYW50PSJwcmltYXJ5IgotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY2xhc3NOYW1lPSJkcy1tYXJnaW4tdG9wLXhsZyBkcy1tYXJnaW4tbGVmdCBkcy1t YXJnaW4tYm90dG9tLW1kIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlj az17dGhpcy5oYW5kbGVTYXZlU3ludGF4fQotQEAgLTMxNjcsNiArMzI3MSw3IEBAIGV4cG9ydCBj bGFzcyBMb2NhbFB3UG9saWN5IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHsKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY3JlYXRlX3Bhc3N3b3Jkc3RvcmFnZXNjaGVtZT17dGhpcy5zdGF0 ZS5jcmVhdGVfcGFzc3dvcmRzdG9yYWdlc2NoZW1lfQotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjcmVhdGVfcGFzc3dvcmRhZG1pbmRuPXt0aGlzLnN0YXRlLmNyZWF0ZV9wYXNzd29yZGFk bWluZG59Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZV9wYXNzd29yZGFkbWlu c2tpcGluZm91cGRhdGU9e3RoaXMuc3RhdGUuY3JlYXRlX3Bhc3N3b3JkYWRtaW5za2lwaW5mb3Vw ZGF0ZX0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW52YWxpZENyZWF0ZUZpZWxkcz17 dGhpcy5zdGF0ZS5pbnZhbGlkQ3JlYXRlRmllbGRzfQotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBvblVzZXJBdHRyc0NyZWF0ZVRvZ2dsZT17dGhpcy5oYW5kbGVVc2VyQXR0cnNDcmVhdGVU b2dnbGV9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVXNlckF0dHJzQ3JlYXRlQ2xl YXI9e3RoaXMuaGFuZGxlVXNlckF0dHJzQ3JlYXRlQ2xlYXJ9Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlzVXNlckF0dHJzQ3JlYXRlT3Blbj17dGhpcy5zdGF0ZS5pc1VzZXJBdHRyc0Ny ZWF0ZU9wZW59Ci1kaWZmIC0tZ2l0IGEvc3JjL2NvY2twaXQvMzg5LWNvbnNvbGUvc3JjL2xpYi9k YXRhYmFzZS9wd3BWYWxpZGF0aW9uLmpzeCBiL3NyYy9jb2NrcGl0LzM4OS1jb25zb2xlL3NyYy9s aWIvZGF0YWJhc2UvcHdwVmFsaWRhdGlvbi5qc3gKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRl eCAwMDAwMDAwMDAuLjY2N2Y1YzZmOAotLS0tIC9kZXYvbnVsbAotKysrIGIvc3JjL2NvY2twaXQv Mzg5LWNvbnNvbGUvc3JjL2xpYi9kYXRhYmFzZS9wd3BWYWxpZGF0aW9uLmpzeAotQEAgLTAsMCAr MSwxMDUgQEAKLStpbXBvcnQgY29ja3BpdCBmcm9tICJjb2NrcGl0IjsKLStpbXBvcnQgUmVhY3Qg ZnJvbSAicmVhY3QiOwotK2ltcG9ydCB7Ci0rICAgIEZvcm1IZWxwZXJUZXh0LAotKyAgICBHcmlk SXRlbSwKLSsgICAgVmFsaWRhdGVkT3B0aW9ucywKLSt9IGZyb20gIkBwYXR0ZXJuZmx5L3JlYWN0 LWNvcmUiOwotKwotK2NvbnN0IF8gPSBjb2NrcGl0LmdldHRleHQ7Ci0rCi0rZXhwb3J0IGNvbnN0 IEZJRUxEX1JBTkdFUyA9IHsKLSsgICAgcGFzc3dvcmRpbmhpc3Rvcnk6IHsgbWluOiAwLCBtYXg6 IDI0IH0sCi0rICAgIHBhc3N3b3JkbWlubGVuZ3RoOiB7IG1pbjogMiwgbWF4OiA1MTIgfSwKLSsg ICAgcGFzc3dvcmRtaW5kaWdpdHM6IHsgbWluOiAwLCBtYXg6IDY0IH0sCi0rICAgIHBhc3N3b3Jk bWluYWxwaGFzOiB7IG1pbjogMCwgbWF4OiA2NCB9LAotKyAgICBwYXNzd29yZG1pbnVwcGVyczog eyBtaW46IDAsIG1heDogNjQgfSwKLSsgICAgcGFzc3dvcmRtaW5sb3dlcnM6IHsgbWluOiAwLCBt YXg6IDY0IH0sCi0rICAgIHBhc3N3b3JkbWluc3BlY2lhbHM6IHsgbWluOiAwLCBtYXg6IDY0IH0s Ci0rICAgIHBhc3N3b3JkbWluOGJpdDogeyBtaW46IDAsIG1heDogNjQgfSwKLSsgICAgcGFzc3dv cmRtYXhyZXBlYXRzOiB7IG1pbjogMCwgbWF4OiA2NCB9LAotKyAgICBwYXNzd29yZG1pbmNhdGVn b3JpZXM6IHsgbWluOiAwLCBtYXg6IDUgfSwKLSsgICAgcGFzc3dvcmRtaW50b2tlbmxlbmd0aDog eyBtaW46IDEsIG1heDogNjQgfSwKLSsgICAgcGFzc3dvcmRtYXhmYWlsdXJlOiB7IG1pbjogMSwg bWF4OiAzMjc2NyB9LAotKyAgICBwYXNzd29yZG1heHNlcXVlbmNlOiB7IG1pbjogMCB9LAotKyAg ICBwYXNzd29yZG1heHNlcXNldHM6IHsgbWluOiAwIH0sCi0rICAgIHBhc3N3b3JkbWF4Y2xhc3Nj aGFyczogeyBtaW46IDAgfSwKLSsgICAgcGFzc3dvcmRyZXNldGZhaWx1cmVjb3VudDogeyBtaW46 IDAgfSwKLSsgICAgcGFzc3dvcmRsb2Nrb3V0ZHVyYXRpb246IHsgbWluOiAwIH0sCi0rICAgIHBh c3N3b3JkbWluYWdlOiB7IG1pbjogMCB9LAotKyAgICBwYXNzd29yZG1heGFnZTogeyBtaW46IDAg fSwKLSsgICAgcGFzc3dvcmRncmFjZWxpbWl0OiB7IG1pbjogMCB9LAotKyAgICBwYXNzd29yZHdh cm5pbmc6IHsgbWluOiAwIH0sCi0rfTsKLSsKLSsvLyBTdHJpcHMgY3JlYXRlXyBwcmVmaXggdG8g ZmluZCB0aGUgYmFzZSBmaWVsZCBuYW1lIGluIEZJRUxEX1JBTkdFUwotK2NvbnN0IGJhc2VGaWVs ZE5hbWUgPSAoYXR0cikgPT4gewotKyAgICByZXR1cm4gYXR0ci5zdGFydHNXaXRoKCJjcmVhdGVf IikgPyBhdHRyLnN1YnN0cmluZyg3KSA6IGF0dHI7Ci0rfTsKLSsKLSsvLyBSZXR1cm5zIHRydWUg aWYgdGhlIHZhbHVlIGlzIGludmFsaWQgZm9yIHRoZSBnaXZlbiBmaWVsZAotK2V4cG9ydCBjb25z dCB2YWxpZGF0ZUZpZWxkID0gKGF0dHIsIHZhbHVlKSA9PiB7Ci0rICAgIGNvbnN0IHJhbmdlID0g RklFTERfUkFOR0VTW2Jhc2VGaWVsZE5hbWUoYXR0cildOwotKyAgICBpZiAoIXJhbmdlKSByZXR1 cm4gZmFsc2U7Ci0rICAgIGNvbnN0IG51bSA9IE51bWJlcih2YWx1ZSk7Ci0rICAgIGlmICh2YWx1 ZSA9PT0gIiIgfHwgaXNOYU4obnVtKSB8fCAhTnVtYmVyLmlzSW50ZWdlcihudW0pIHx8IG51bSA8 IHJhbmdlLm1pbikgewotKyAgICAgICAgcmV0dXJuIHRydWU7Ci0rICAgIH0KLSsgICAgaWYgKHJh bmdlLm1heCAhPT0gdW5kZWZpbmVkICYmIG51bSA+IHJhbmdlLm1heCkgewotKyAgICAgICAgcmV0 dXJuIHRydWU7Ci0rICAgIH0KLSsgICAgcmV0dXJuIGZhbHNlOwotK307Ci0rCi0rLy8gUmV0dXJu cyBhIG5ldyBpbnZhbGlkRmllbGRzIG1hcCBhZnRlciB2YWxpZGF0aW5nIGEgZmllbGQgY2hhbmdl Ci0rZXhwb3J0IGNvbnN0IHVwZGF0ZUZpZWxkVmFsaWRhdGlvbiA9IChpbnZhbGlkRmllbGRzLCBh dHRyLCB2YWx1ZSkgPT4gewotKyAgICBjb25zdCBuZXdJbnZhbGlkRmllbGRzID0geyAuLi5pbnZh bGlkRmllbGRzIH07Ci0rICAgIGlmIChGSUVMRF9SQU5HRVNbYmFzZUZpZWxkTmFtZShhdHRyKV0p IHsKLSsgICAgICAgIGlmICh2YWxpZGF0ZUZpZWxkKGF0dHIsIHZhbHVlKSkgewotKyAgICAgICAg ICAgIG5ld0ludmFsaWRGaWVsZHNbYXR0cl0gPSB0cnVlOwotKyAgICAgICAgfSBlbHNlIHsKLSsg ICAgICAgICAgICBkZWxldGUgbmV3SW52YWxpZEZpZWxkc1thdHRyXTsKLSsgICAgICAgIH0KLSsg ICAgfQotKyAgICByZXR1cm4gbmV3SW52YWxpZEZpZWxkczsKLSt9OwotKwotKy8vIFJldHVybnMg eyBtaW4sIG1heD8sIHZhbGlkYXRlZCB9IHByb3BzIHRvIHNwcmVhZCBvbiBhIFRleHRJbnB1dAot K2V4cG9ydCBjb25zdCBnZXRWYWxpZGF0aW9uUHJvcHMgPSAoZmllbGROYW1lLCBpbnZhbGlkRmll bGRzKSA9PiB7Ci0rICAgIGNvbnN0IHJhbmdlID0gRklFTERfUkFOR0VTW2Jhc2VGaWVsZE5hbWUo ZmllbGROYW1lKV07Ci0rICAgIGlmICghcmFuZ2UpIHJldHVybiB7fTsKLSsgICAgY29uc3QgcHJv cHMgPSB7IG1pbjogcmFuZ2UubWluIH07Ci0rICAgIGlmIChyYW5nZS5tYXggIT09IHVuZGVmaW5l ZCkgewotKyAgICAgICAgcHJvcHMubWF4ID0gcmFuZ2UubWF4OwotKyAgICB9Ci0rICAgIHByb3Bz LnZhbGlkYXRlZCA9IGludmFsaWRGaWVsZHNbZmllbGROYW1lXQotKyAgICAgICAgPyBWYWxpZGF0 ZWRPcHRpb25zLmVycm9yCi0rICAgICAgICA6IFZhbGlkYXRlZE9wdGlvbnMuZGVmYXVsdDsKLSsg ICAgcmV0dXJuIHByb3BzOwotK307Ci0rCi0rLy8gUmV0dXJucyBGb3JtSGVscGVyVGV4dCBKU1gg d2hlbiB0aGUgZmllbGQgaXMgaW52YWxpZCwgb3IgbnVsbAotK2V4cG9ydCBjb25zdCByZW5kZXJW YWxpZGF0aW9uRXJyb3IgPSAoZmllbGROYW1lLCBpbnZhbGlkRmllbGRzKSA9PiB7Ci0rICAgIGNv bnN0IHJhbmdlID0gRklFTERfUkFOR0VTW2Jhc2VGaWVsZE5hbWUoZmllbGROYW1lKV07Ci0rICAg IGlmICghcmFuZ2UgfHwgIWludmFsaWRGaWVsZHNbZmllbGROYW1lXSkgcmV0dXJuIG51bGw7Ci0r ICAgIGNvbnN0IG1zZyA9Ci0rICAgICAgICByYW5nZS5tYXggIT09IHVuZGVmaW5lZAotKyAgICAg ICAgICAgID8gY29ja3BpdC5mb3JtYXQoCi0rICAgICAgICAgICAgICAgIF8oIlZhbHVlIG11c3Qg YmUgYSBudW1iZXIgZnJvbSAkMCB0byAkMSIpLAotKyAgICAgICAgICAgICAgICByYW5nZS5taW4s Ci0rICAgICAgICAgICAgICAgIHJhbmdlLm1heAotKyAgICAgICAgICAgICkKLSsgICAgICAgICAg ICA6IF8oIlZhbHVlIG11c3QgYmUgYSBub24tbmVnYXRpdmUgaW50ZWdlciIpOwotKyAgICByZXR1 cm4gKAotKyAgICAgICAgPEdyaWRJdGVtIHNwYW49ezV9PgotKyAgICAgICAgICAgIDxGb3JtSGVs cGVyVGV4dCBjbGFzc05hbWU9ImRzLWxlZnQtbWFyZ2luIiBpc0Vycm9yIGlzSGlkZGVuPXtmYWxz ZX0+Ci0rICAgICAgICAgICAgICAgIHttc2d9Ci0rICAgICAgICAgICAgPC9Gb3JtSGVscGVyVGV4 dD4KLSsgICAgICAgIDwvR3JpZEl0ZW0+Ci0rICAgICk7Ci0rfTsKLSsKLSsvLyBSZXR1cm5zIHRy dWUgaWYgYW55IGF0dHIgaW4gdGhlIGdyb3VwIGlzIGludmFsaWQKLStleHBvcnQgY29uc3QgaGFz SW52YWxpZEZpZWxkID0gKGF0dHJzLCBpbnZhbGlkRmllbGRzKSA9PiB7Ci0rICAgIHJldHVybiBh dHRycy5zb21lKChhKSA9PiBpbnZhbGlkRmllbGRzW2FdKTsKLSt9OwotLS0gCi0yLjUzLjAKLQoK ZGlmZiAtLWdpdCBhLzAwNjItSXNzdWUtNzI0Ni1jb3JyZWN0LWZvcm1hdHRpbmctb2YtR2VuLWFz LUNTTi1pbi1kc2N0bC5wYXRjaCBiLzAwNjItSXNzdWUtNzI0Ni1jb3JyZWN0LWZvcm1hdHRpbmct b2YtR2VuLWFzLUNTTi1pbi1kc2N0bC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMjU1NjRmNC4uMDAwMDAwMAotLS0gYS8wMDYyLUlzc3VlLTcyNDYtY29ycmVjdC1mb3JtYXR0 aW5nLW9mLUdlbi1hcy1DU04taW4tZHNjdGwucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNCAr MCwwIEBACi1Gcm9tIGY0ZDhkZjY2MTg3YzBkMWRiNmM5ZjVjOWFhNTU5NDZhODU2NGRlNGIgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTYW0gTW9ycmlzIDxzYW1Acm9ib3RzLm9yZy51 az4KLURhdGU6IFdlZCwgMjUgRmViIDIwMjYgMTI6MzA6MDEgKzAwMDAKLVN1YmplY3Q6IFtQQVRD SF0gSXNzdWUgNzI0NiAtIGNvcnJlY3QgZm9ybWF0dGluZyBvZiAnR2VuIGFzIENTTicgaW4gZHNj dGwKLSBnZXQtbnNzdGF0ZSBvdXRwdXQgKCM3MjQ3KQotCi1EZXNjcmlwdGlvbjogQ1NOcyBhcmUg Zm9ybWF0dGVkIGFzIGhleGFkZWNpbWFsLCBidXQgdGhlIHJlcGxpY2EgaWQgYW5kCi1zZXF1ZW5j ZSBudW1iZXIgYXJlIGRpc3BsYXllZCBpbiBkZWNvbWFsLgotCi1GaXg6IHVzZSBjb3JyZWN0IGZv cm1hdCBzcGVjaWZpZXJzIGZvciBoZXhhZGVjaW1hbCBvdXRwdXQuCi0KLUZpeGVzOiBodHRwczov L2dpdGh1Yi5jb20vMzg5ZHMvMzg5LWRzLWJhc2UvaXNzdWVzLzcyNDYKLQotU2lnbmVkLW9mZi1i eTogU2FtIE1vcnJpcyA8c2FtQHJvYm90cy5vcmcudWs+Ci0tLS0KLSBzcmMvbGliMzg5L2xpYjM4 OS9kc2VsZGlmLnB5IHwgMiArLQotIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBk ZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEvc3JjL2xpYjM4OS9saWIzODkvZHNlbGRpZi5weSBi L3NyYy9saWIzODkvbGliMzg5L2RzZWxkaWYucHkKLWluZGV4IDc4MzRkOTQ2OC4uZWFjMTdhYTRj IDEwMDY0NAotLS0tIGEvc3JjL2xpYjM4OS9saWIzODkvZHNlbGRpZi5weQotKysrIGIvc3JjL2xp YjM4OS9saWIzODkvZHNlbGRpZi5weQotQEAgLTQwNyw3ICs0MDcsNyBAQCBjbGFzcyBEU0VsZGlm KERTTGludCk6Ci0gICAgICAgICAgICAgJ2VuZGlhbic6IGVuZGlhbiwKLSAgICAgICAgICAgICAn cmlkJzogc3RyKHJpZCksCi0gICAgICAgICAgICAgJ2dlbl90aW1lJzogc3RyKHNhbXBsZWRfdGlt ZSksCi0tICAgICAgICAgICAgJ2dlbmNzbic6ICIlMDh4JTA0ZCUwNGQwMDAwIiAlIChzYW1wbGVk X3RpbWUsIHNlcV9udW0sIHJpZCksCi0rICAgICAgICAgICAgJ2dlbmNzbic6ICIlMDh4JTA0eCUw NHgwMDAwIiAlIChzYW1wbGVkX3RpbWUsIHNlcV9udW0sIHJpZCksCi0gICAgICAgICAgICAgJ2dl bl90aW1lX3N0cic6IHRpbWUuY3RpbWUoc2FtcGxlZF90aW1lKSwKLSAgICAgICAgICAgICAnbG9j YWxfb2Zmc2V0Jzogc3RyKGxvY2FsX29mZnNldCksCi0gICAgICAgICAgICAgJ2xvY2FsX29mZnNl dF9zdHInOiBwcmludF9uaWNlX3RpbWUobG9jYWxfb2Zmc2V0KSwKLS0tIAotMi41My4wCi0KCmRp ZmYgLS1naXQgYS8wMDYzLVNlY3VyaXR5LWZpeC1mb3ItQ1ZFLTIwMjUtMTQ5MDUucGF0Y2ggYi8w MDYzLVNlY3VyaXR5LWZpeC1mb3ItQ1ZFLTIwMjUtMTQ5MDUucGF0Y2gKZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDFlODY4MTQuLjAwMDAwMDAKLS0tIGEvMDA2My1TZWN1cml0eS1maXgt Zm9yLUNWRS0yMDI1LTE0OTA1LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsOTMgKzAsMCBAQAot RnJvbSAyZTQyNDExMGRlZjJlMzk5OGY2MDQ1ZTEzNmZiMGQ0M2Y0N2I3ZjVhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQotRnJvbTogdGJvcmRheiA8dGJvcmRhekByZWRoYXQuY29tPgotRGF0ZTog V2VkLCAyNSBGZWIgMjAyNiAxNDowNjo0MiArMDEwMAotU3ViamVjdDogW1BBVENIXSBTZWN1cml0 eSBmaXggZm9yIENWRS0yMDI1LTE0OTA1Ci0KLURlc2NyaXB0aW9uOgotCUEgdnVsbmVyYWJpbGl0 eSB3YXMgZm91bmQgaW4gdGhlIDM4OSBEaXJlY3RvcnkgU2VydmVyLgotCVRoZSAzODkgRGlyZWN0 b3J5IFNlcnZlciBwcmVzZW50IGEgcmlzayBvZiBoZWFwIGJ1ZmZlciBvdmVyZmxvdyB0aGF0Ci0J Y2FuIGJlIGV4cGxvaXRlZCB0byBleGN1dGUgYSBEZW5pYWwgb2YgU2VydmljZSBhbmQgcG90ZW50 aWFsIFJlbW90ZQotCUNvZGUgRXhlY3V0aW9uCi0KLVJlZmVyZW5jZXM6Ci0gICAgLSBodHRwczov L2FjY2Vzcy5yZWRoYXQuY29tL3NlY3VyaXR5L2N2ZS9DVkUtMjAyNS0xNDkwNQotICAgIC0gaHR0 cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD0yNDIzNjI0Ci0tLS0KLSBs ZGFwL3NlcnZlcnMvc2xhcGQvc2NoZW1hLmMgfCA0NyArKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDM4IGluc2VydGlvbnMoKyksIDkgZGVsZXRp b25zKC0pCi0KLWRpZmYgLS1naXQgYS9sZGFwL3NlcnZlcnMvc2xhcGQvc2NoZW1hLmMgYi9sZGFw L3NlcnZlcnMvc2xhcGQvc2NoZW1hLmMKLWluZGV4IDllZjRlZTRiZi4uNzcxMmE3MjBkIDEwMDY0 NAotLS0tIGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL3NjaGVtYS5jCi0rKysgYi9sZGFwL3NlcnZlcnMv c2xhcGQvc2NoZW1hLmMKLUBAIC0xNDEwLDYgKzE0MTAsNyBAQCBzY2hlbWFfYXR0cl9lbnVtX2Nh bGxiYWNrKHN0cnVjdCBhc3ludGF4aW5mbyAqYXNpcCwgdm9pZCAqYXJnKQotICAgICBjb25zdCBj aGFyICphdHRyX2Rlc2MsICpzeW50YXhvaWQ7Ci0gICAgIGNoYXIgKm91dHAsIHN5bnRheGxlbmd0 aGJ1ZlsxMjhdOwotICAgICBpbnQgaTsKLSsgICAgaW50IG5iX2FsaWFzZXMgPSAwOwotIAotICAg ICB2YWxzWzBdID0gJnZhbDsKLSAKLUBAIC0xNDM1LDYgKzE0MzYsNyBAQCBzY2hlbWFfYXR0cl9l bnVtX2NhbGxiYWNrKHN0cnVjdCBhc3ludGF4aW5mbyAqYXNpcCwgdm9pZCAqYXJnKQotICAgICBp ZiAoYXNpcC0+YXNpX2FsaWFzZXMgIT0gTlVMTCkgewotICAgICAgICAgZm9yIChpID0gMDsgYXNp cC0+YXNpX2FsaWFzZXNbaV0gIT0gTlVMTDsgKytpKSB7Ci0gICAgICAgICAgICAgYWxpYXNsZW4g Kz0gc3RybGVuKGFzaXAtPmFzaV9hbGlhc2VzW2ldKTsKLSsgICAgICAgICAgICBuYl9hbGlhc2Vz Kys7Ci0gICAgICAgICB9Ci0gICAgIH0KLSAKLUBAIC0xNDUyLDE1ICsxNDU0LDQyIEBAIHNjaGVt YV9hdHRyX2VudW1fY2FsbGJhY2soc3RydWN0IGFzeW50YXhpbmZvICphc2lwLCB2b2lkICphcmcp Ci0gICAgICAqIFhYWDogMjU2IGlzIGEgbWFnaWMgbnVtYmVyLi4uIGl0IG11c3QgYmUgYmlnIGVu b3VnaCB0byBhY2NvdW50IGZvcgotICAgICAgKiBhbGwgb2YgdGhlIGZpeGVkIHNpemVkIGl0ZW1z IHdlIG91dHB1dC4KLSAgICAgICovCi0tICAgIHNpemVkYnVmZmVyX2FsbG9jYXRlKGFldy0+cHNi QXR0clR5cGVzLCAyNTYgKyBzdHJsZW4oYXNpcC0+YXNpX29pZCkgKwotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmxlbihhc2lwLT5hc2lfbmFtZSkg KwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFz bGVuICsgc3RybGVuX251bGxfb2soYXR0cl9kZXNjKSArCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RybGVuKHN5bnRheG9pZCkgKwotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmxlbl9udWxsX29rKGFz aXAtPmFzaV9zdXBlcmlvcikgKwotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cmxlbl9udWxsX29rKGFzaXAtPmFzaV9tcl9lcXVhbGl0eSkgKwotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmxlbl9udWxs X29rKGFzaXAtPmFzaV9tcl9vcmRlcmluZykgKwotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cmxlbl9udWxsX29rKGFzaXAtPmFzaV9tcl9zdWJzdHJp bmcpICsKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJjYXRfZXh0ZW5zaW9ucyhOVUxMLCBhc2lwLT5hc2lfZXh0ZW5zaW9ucykpOwotKyAgICB7Ci0r ICAgICAgICBpbnQgYXNpX29pZF9zdHJsZW4gPSBzdHJsZW4oYXNpcC0+YXNpX29pZCkgKyA4OyAg ICAgIC8qICIoICVzIE5BTUUgIiAqLwotKyAgICAgICAgaW50IGFzaV9uYW1lX3N0cmxlbiA9IHN0 cmxlbihhc2lwLT5hc2lfbmFtZSkgKyA2OyAgICAvKiAiKCAnJXMnIC4uLikiICovCi0rICAgICAg ICBpbnQgYXNpX2FsaWFzZXNfc3RybGVuID0gYWxpYXNsZW4gKyBuYl9hbGlhc2VzICogMzsgIC8q ICInJXMnICIgKi8KLSsgICAgICAgIGludCBhc2lfZGVzY19zdHJsZW4gPSBzdHJsZW5fbnVsbF9v ayhhdHRyX2Rlc2MpICsgNzsgLyogIkRFU0MgJyVzJyIgKi8KLSsgICAgICAgIGludCBhc2lfc3lu dGF4b2lkX3N0cmxlbiA9IHN0cmxlbigiU1lOVEFYICIpICsgc3RybGVuKHN5bnRheG9pZCkgKyBz dHJsZW4oc3ludGF4bGVuZ3RoYnVmKTsKLSsgICAgICAgIGludCBhc2lfc3VwZXJpb3Jfc3RybGVu ID0gc3RybGVuKCJTVVAgIikgKyBzdHJsZW5fbnVsbF9vayhhc2lwLT5hc2lfc3VwZXJpb3IpOwot KyAgICAgICAgaW50IGFzaV9tcl9lcXVhbGl0eV9zdHJsZW4gPSBzdHJsZW4oIkVRVUFMSVRZICIp ICsgc3RybGVuX251bGxfb2soYXNpcC0+YXNpX21yX2VxdWFsaXR5KTsKLSsgICAgICAgIGludCBh c2lfbXJfb3JkZXJpbmdfc3RybGVuID0gc3RybGVuKCJPUkRFUklORyAiKSArIHN0cmxlbl9udWxs X29rKGFzaXAtPmFzaV9tcl9vcmRlcmluZyk7Ci0rICAgICAgICBpbnQgYXNpX21yX3N1YnN0cmlu Z19zdHJsZW4gPSBzdHJsZW4oIlNVQlNUUiAiKSArIHN0cmxlbl9udWxsX29rKGFzaXAtPmFzaV9t cl9zdWJzdHJpbmcpOwotKyAgICAgICAgaW50IGFzaV9mbGFnc19zdHJsZW4gPSBzdHJsZW4oIlNJ TkdMRS1WQUxVRSAiKSArCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmxlbihz Y2hlbWFfb2Jzb2xldGVfd2l0aF9zcGFjZXMpICsKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RybGVuKHNjaGVtYV9jb2xsZWN0aXZlX3dpdGhfc3BhY2VzKSArCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cmxlbihzY2hlbWFfbm91c2VybW9kX3dpdGhfc3BhY2Vz KSArCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmxlbigiVVNBR0UgZGlzdHJp YnV0ZWRPcGVyYXRpb24gIikgKwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJs ZW4oIlVTQUdFIGRTQU9wZXJhdGlvbiAiKSArCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cmxlbigiVVNBR0UgZGlyZWN0b3J5T3BlcmF0aW9uICIpOwotKyAgICAgICAgaW50IGFz aV9leHRlbnNpb25fc3RybGVuID0gc3RyY2F0X2V4dGVuc2lvbnMoTlVMTCwgYXNpcC0+YXNpX2V4 dGVuc2lvbnMpOwotKwotKyAgICAgICAgaWYgKGFldy0+ZW5xdW90ZV9zdXBfb2MpIHsKLSsgICAg ICAgICAgICAvKiBpdCBlbnF1b3RlIHRoZSBzeW50YXggb2lkICovCi0rICAgICAgICAgICAgYXNp X3N5bnRheG9pZF9zdHJsZW4gKz0gMjsKLSsgICAgICAgIH0KLSsKLSsgICAgc2l6ZWRidWZmZXJf YWxsb2NhdGUoYWV3LT5wc2JBdHRyVHlwZXMsIDI1NiArIGFzaV9vaWRfc3RybGVuICsKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzaV9uYW1lX3N0 cmxlbiArCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBhc2lfYWxpYXNlc19zdHJsZW4gKwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYXNpX2Rlc2Nfc3RybGVuICsKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzaV9zeW50YXhvaWRfc3RybGVuICsKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzaV9zdXBl cmlvcl9zdHJsZW4gKwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXNpX21yX2VxdWFsaXR5X3N0cmxlbiArCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc2lfbXJfb3JkZXJpbmdfc3RybGVuICsKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzaV9tcl9z dWJzdHJpbmdfc3RybGVuICsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGFzaV9leHRlbnNpb25fc3RybGVuICsKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzaV9mbGFnc19zdHJsZW4pOwotKyAgICB9 Ci0gCi0gICAgIC8qCi0gICAgICAqIE92ZXJhbGwgc3RyYXRlZ3kgaXMgdG8gbWFpbnRhaW4gYSBw b2ludGVyIHRvIHRoZSBuZXh0IGxvY2F0aW9uIGluCi0tLSAKLTIuNTMuMAotCgpkaWZmIC0tZ2l0 IGEvMDA2NC1Jc3N1ZS03MjY3LU1EQl9CQURfVkFMU0laRS1lcnJvci13aGVuLXVwZGF0aW5nLWlu ZGV4LnBhdGNoIGIvMDA2NC1Jc3N1ZS03MjY3LU1EQl9CQURfVkFMU0laRS1lcnJvci13aGVuLXVw ZGF0aW5nLWluZGV4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNDhjNTA0 Li4wMDAwMDAwCi0tLSBhLzAwNjQtSXNzdWUtNzI2Ny1NREJfQkFEX1ZBTFNJWkUtZXJyb3Itd2hl bi11cGRhdGluZy1pbmRleC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDY1NCArMCwwIEBACi1G cm9tIGM3ZTFlYjA4ZWIzNmZkOWExNmM3NDU5MzVmNTZmYTRhNGIyYTk5ZGYgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCi1Gcm9tOiBwcm9naWVyMzg5IDxwcm9naWVyQHJlZGhhdC5jb20+Ci1EYXRl OiBXZWQsIDI1IEZlYiAyMDI2IDE4OjAwOjI0ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIElzc3Vl IDcyNjcgLSBNREJfQkFEX1ZBTFNJWkUgZXJyb3Igd2hlbiB1cGRhdGluZyBpbmRleAotICgjNzI2 OCkKLQotKiBJc3N1ZSA3MjY3IC0gTURCX0JBRF9WQUxTSVpFIGVycm9yIHdoZW4gdXBkYXRpbmcg aW5kZXgKLSogSW1wcm92ZSBpbXBvcnQgbG9nIHdoZW4gd3JpdGVyIGZhaWxzCi0qIEZpeCBTb3Vy Y2VyeSBBSSBjb21tZW50cwotKiBGaXggSU5ERVhfS0VZX0xFTkdUSCB0eXBvCi0KLVByb2JsZW0g d2l0aCB0aGUga2V5IHByZWZpeCBoYW5kbGluZyB3aGVuIGtleSBpcyB0b28gbG9uZyBhbmQgbXVz dCBiZSBoYXNoZWQuCi1UaGUgaXNzdWUgaXMgdGhhdCB0aGUgIyB0aGF0IGlzIHByZXBlbmRlZCBp cyBub3QgcmVzZXQgd2hlbiBpdGVyYXRpbmcgb3ZlciB0aGUgdmFsdWVzZXQgdmFsdWVzIChFbmRp bmcgdXAgd2l0aCB2ZXJ5IGxvbmcgcHJlZml4KQotCi1BbHNvIHJlZmFjdG9yZWQgdGhlIGNvZGUg dG8gYXZvaWQgZHVwbGljYXRlIHRoZSBjb2RlIHRoYXQgcHJlcGFyZSB0aGUga2V5IGZyb20gdGhl IGF0dHJpYnV0ZSB2YWx1ZSAodXNlZCB3aGVuIHVwZGF0aW5nIHRoZSBpbmRleCBvciByZXRyaWV2 aW5nIGEgdmFsdWUgZnJvbSBhbiBpbmRleCkKLQotSXNzdWU6ICM3MjY3Ci0KLVJldmlld2VkIGJ5 OiBAdGJvcmRheiAsIEB2YXNoaXJvdiAoVGhhbmtzISkKLQotQ28tYXV0aG9yZWQtYnk6IFZpa3Rv ciBBc2hpcm92IDx2YXNoaXJvdkByZWRoYXQuY29tPgotCi0tLS0tLS0tLS0KLQotQ28tYXV0aG9y ZWQtYnk6IFZpa3RvciBBc2hpcm92IDx2YXNoaXJvdkByZWRoYXQuY29tPgotLS0tCi0gLi4uL3Rl c3RzL3N1aXRlcy9pbmRleGVzL3JlZ3Jlc3Npb25fdGVzdC5weSAgIHwgIDU4ICsrKysrKysKLSBs ZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2F0dHJjcnlwdC5oICAgICAgfCAgIDIgKy0KLSBs ZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2JhY2stbGRibS5oICAgICAgfCAgIDIgKwotIC4u Li9zbGFwZC9iYWNrLWxkYm0vZGItYmRiL2JkYl9pbXBvcnQuYyAgICAgICB8ICAzOSArLS0tLQot IC4uLi9iYWNrLWxkYm0vZGItbWRiL21kYl9pbXBvcnRfdGhyZWFkcy5jICAgICB8ICA0NiArKysr LQotIGxkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vaW5kZXguYyAgICAgICAgICB8IDE2MSAr KysrKysrLS0tLS0tLS0tLS0KLSBsZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2xkYm1fYXR0 cmNyeXB0LmMgfCAgMTMgKy0KLSAuLi4vc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vcHJvdG8tYmFj ay1sZGJtLmggfCAgIDIgKy0KLSBsZGFwL3NlcnZlcnMvc2xhcGQvbG9nLmMgICAgICAgICAgICAg ICAgICAgICAgfCAgNDMgKysrKysKLSBsZGFwL3NlcnZlcnMvc2xhcGQvc2xhcGktcHJpdmF0ZS5o ICAgICAgICAgICAgfCAgIDIgKwotIDEwIGZpbGVzIGNoYW5nZWQsIDIyNCBpbnNlcnRpb25zKCsp LCAxNDQgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0 ZXMvaW5kZXhlcy9yZWdyZXNzaW9uX3Rlc3QucHkgYi9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMv aW5kZXhlcy9yZWdyZXNzaW9uX3Rlc3QucHkKLWluZGV4IDgxNzZkNmRiMC4uYTQyMThhMmI1IDEw MDY0NAotLS0tIGEvZGlyc3J2dGVzdHMvdGVzdHMvc3VpdGVzL2luZGV4ZXMvcmVncmVzc2lvbl90 ZXN0LnB5Ci0rKysgYi9kaXJzcnZ0ZXN0cy90ZXN0cy9zdWl0ZXMvaW5kZXhlcy9yZWdyZXNzaW9u X3Rlc3QucHkKLUBAIC0xMDIyLDYgKzEwMjIsNjQgQEAgZGVmIHRlc3RfaWRsX3JhbmdlX2xpbWl0 KHRvcG8sIGFkZF9zb21lX2VudHJpZXMpOgotICAgICBhc3NlcnQgbGVuKGVudHJpZXMpID09IDMK LSAKLSAKLStkZWYgdGVzdF9sYXJnZV9tdWx0aXZhbHVlZF9zbl9hdHRyaWJ1dGUodG9wbyk6Ci0r ICAgICIiIlRlc3QgYWRkaW5nIGEgdXNlciBlbnRyeSB3aXRoIDUxMiB2YWx1ZXMgZm9yIHNuIGF0 dHJpYnV0ZSwgZWFjaCA1MTIgYnl0ZXMKLSsKLSsgICAgOmlkOiA4ZjJhOWIzYy1lOGQ3LTExZWYt OWE1Zi00ODJhZTM5NDQ3ZTUKLSsgICAgOnNldHVwOiBTdGFuZGFsb25lIEluc3RhbmNlCi0rICAg IDpzdGVwczoKLSsgICAgICAgIDEuIENyZWF0ZSBhIHVzZXIgd2l0aCA1MTIgc24gdmFsdWVzLCBl YWNoIDUxMiBieXRlcyBsb25nCi0rICAgICAgICAyLiBWZXJpZnkgdGhlIHVzZXIgd2FzIGNyZWF0 ZWQgc3VjY2Vzc2Z1bGx5Ci0rICAgICAgICAzLiBTZWFyY2ggZm9yIHRoZSB1c2VyIGFuZCB2ZXJp ZnkgYWxsIHNuIHZhbHVlcyBhcmUgcHJlc2VudAotKyAgICAgICAgNC4gQ2xlYW4gdXAgdGhlIHVz ZXIgZW50cnkKLSsgICAgOmV4cGVjdGVkcmVzdWx0czoKLSsgICAgICAgIDEuIFVzZXIgaXMgY3Jl YXRlZCBzdWNjZXNzZnVsbHkKLSsgICAgICAgIDIuIFVzZXIgZW50cnkgZXhpc3RzCi0rICAgICAg ICAzLiBBbGwgNTEyIHNuIHZhbHVlcyBhcmUgcHJlc2VudCBhbmQgaGF2ZSBjb3JyZWN0IGxlbmd0 aAotKyAgICAgICAgNC4gVXNlciBpcyBkZWxldGVkIHN1Y2Nlc3NmdWxseQotKyAgICAiIiIKLSsK LSsgICAgaW5zdCA9IHRvcG8uc3RhbmRhbG9uZQotKyAgICB1c2VycyA9IFVzZXJBY2NvdW50cyhp bnN0LCBERUZBVUxUX1NVRkZJWCkKLSsKLSsgICAgbG9nLmluZm8oIkNyZWF0aW5nIHVzZXIgd2l0 aCA1MTIgc24gdmFsdWVzLCBlYWNoIDUxMiBieXRlcyIpCi0rCi0rICAgICMgR2VuZXJhdGUgNTEy IHVuaXF1ZSBzbiB2YWx1ZXMsIGVhY2ggNTEyIGJ5dGVzIGxvbmcKLSsgICAgIyBVc2UgYSBwYXR0 ZXJuIHRoYXQgbWFrZXMgZWFjaCB2YWx1ZSB1bmlxdWUgYnV0IHByZWRpY3RhYmxlCi0rICAgIHNu X3ZhbHVlcyA9IFtdCi0rICAgIGZvciBpIGluIHJhbmdlKDUxMik6Ci0rICAgICAgICAjIENyZWF0 ZSBhIDUxMi1ieXRlIHZhbHVlIHdpdGggdW5pcXVlIGlkZW50aWZpZXIgYXQgdGhlIHN0YXJ0Ci0r ICAgICAgICB2YWx1ZSA9IGYnc25fdmFsdWVfe2k6MDRkfV8nICsgJ3gnICogKDUxMiAtIGxlbihm J3NuX3ZhbHVlX3tpOjA0ZH1fJykpCi0rICAgICAgICBzbl92YWx1ZXMuYXBwZW5kKHZhbHVlKQot KwotKyAgICAjIENyZWF0ZSB0aGUgdXNlciB3aXRoIGZpcnN0IHNuIHZhbHVlCi0rICAgIHVzZXJf bmFtZSA9ICd0ZXN0X3VzZXJfbGFyZ2Vfc24nCi0rICAgIHVzZXIgPSB1c2Vycy5jcmVhdGUocHJv cGVydGllcz17Ci0rICAgICAgICAndWlkJzogdXNlcl9uYW1lLAotKyAgICAgICAgJ2NuJzogdXNl cl9uYW1lLAotKyAgICAgICAgJ3NuJzogc25fdmFsdWVzLAotKyAgICAgICAgJ3VpZE51bWJlcic6 ICc5OTk5OScsCi0rICAgICAgICAnZ2lkTnVtYmVyJzogJzk5OTk5JywKLSsgICAgICAgICdob21l RGlyZWN0b3J5JzogZicvaG9tZS97dXNlcl9uYW1lfScKLSsgICAgfSkKLSsKLSsgICAgIyBWZXJp ZnkgdGhlIGVudHJ5IHdhcyBjcmVhdGVkIGFuZCBoYXMgYWxsIHNuIHZhbHVlcwotKyAgICBsb2cu aW5mbygiVmVyaWZ5aW5nIGFsbCBzbiB2YWx1ZXMgYXJlIHByZXNlbnQiKQotKyAgICBzbl9hdHRy X3ZhbHVlcyA9IHVzZXIuZ2V0X2F0dHJfdmFsc191dGY4KCdzbicpCi0rCi0rICAgIGFzc2VydCBs ZW4oc25fYXR0cl92YWx1ZXMpID09IDUxMiwgZiJFeHBlY3RlZCA1MTIgc24gdmFsdWVzLCBnb3Qg e2xlbihzbl9hdHRyX3ZhbHVlcyl9IgotKwotKyAgICAjIFZlcmlmeSBlYWNoIHZhbHVlIGhhcyB0 aGUgY29ycmVjdCBsZW5ndGgKLSsgICAgZm9yIGlkeCwgdmFsdWUgaW4gZW51bWVyYXRlKHNuX2F0 dHJfdmFsdWVzKToKLSsgICAgICAgIGFzc2VydCBsZW4odmFsdWUpID09IDUxMiwgZiJzbiB2YWx1 ZSB7aWR4fSBoYXMgbGVuZ3RoIHtsZW4odmFsdWUpfSwgZXhwZWN0ZWQgNTEyIgotKwotKyAgICBs b2cuaW5mbygiU3VjY2Vzc2Z1bGx5IGNyZWF0ZWQgYW5kIHZlcmlmaWVkIHVzZXIgd2l0aCA1MTIg c24gdmFsdWVzIG9mIDUxMiBieXRlcyBlYWNoIikKLSsKLSsgICAgIyBDbGVhbiB1cAotKyAgICB1 c2VyLmRlbGV0ZSgpCi0rICAgIGxvZy5pbmZvKCJVc2VyIGVudHJ5IGRlbGV0ZWQgc3VjY2Vzc2Z1 bGx5IikKLSsKLSsKLSBpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgotICAgICAjIFJ1biBpc29s YXRlZAotICAgICAjIC1zIGZvciBERUJVRyBtb2RlCi1kaWZmIC0tZ2l0IGEvbGRhcC9zZXJ2ZXJz L3NsYXBkL2JhY2stbGRibS9hdHRyY3J5cHQuaCBiL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxk Ym0vYXR0cmNyeXB0LmgKLWluZGV4IGQ2NTNiYTk1MS4uZGNiZWE4MGZlIDEwMDY0NAotLS0tIGEv bGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9hdHRyY3J5cHQuaAotKysrIGIvbGRhcC9zZXJ2 ZXJzL3NsYXBkL2JhY2stbGRibS9hdHRyY3J5cHQuaAotQEAgLTEwLDcgKzEwLDcgQEAKLSAjaW5j bHVkZSA8Y29uZmlnLmg+Ci0gI2VuZGlmCi0gCi0tLyogUHJpdmF0ZSB0cnVjdHVyZXMgYW5kICNk ZWZpbmVzIHVzZWQgaW4gdGhlIGF0dHJpYnV0ZSBlbmNyeXB0aW9uIGNvZGUuICovCi0rLyogUHJp dmF0ZSBzdHJ1Y3R1cmVzIGFuZCAjZGVmaW5lcyB1c2VkIGluIHRoZSBhdHRyaWJ1dGUgZW5jcnlw dGlvbiBjb2RlLiAqLwotIAotICNpZm5kZWYgX0FUVFJDUllQVF9IXwotICNkZWZpbmUgX0FUVFJD UllQVF9IXwotZGlmZiAtLWdpdCBhL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vYmFjay1s ZGJtLmggYi9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2JhY2stbGRibS5oCi1pbmRleCBl MjNlN2ZmNDMuLjkyYWExZGRiYiAxMDA2NDQKLS0tLSBhL2xkYXAvc2VydmVycy9zbGFwZC9iYWNr LWxkYm0vYmFjay1sZGJtLmgKLSsrKyBiL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vYmFj ay1sZGJtLmgKLUBAIC0xMDQsNiArMTA0LDggQEAgdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCB1X2lu dDE2X3Q7Ci0gICovCi0gI2RlZmluZSBCRV9DSEFOR0VMT0dfRklMRSAgICAgInJlcGxpY2F0aW9u X2NoYW5nZWxvZyIKLSAKLSsjZGVmaW5lIElOREVYX0tFWV9MRU5HVEgobGVudmFsLGxlbnByZWZp eCkgIChsZW52YWwrbGVucHJlZml4KzIpCi0rCi0gI2RlZmluZSBCREJfSU1QTCAgICAgICAgICAg ICAgImJkYiIKLSAjZGVmaW5lIEJEQl9CQUNLRU5EICAgICAgICAgICAibGliYmFjay1sZGJtIiAv KiBUaGlzIGJhY2tlbmQgcGx1Z2luICovCi0gI2RlZmluZSBCREJfTkVXSURMICAgICAgICAgICAg Im5ld2lkbCIgICAgICAgLyogbmV3IGlkbCBmb3JtYXQgKi8KLWRpZmYgLS1naXQgYS9sZGFwL3Nl cnZlcnMvc2xhcGQvYmFjay1sZGJtL2RiLWJkYi9iZGJfaW1wb3J0LmMgYi9sZGFwL3NlcnZlcnMv c2xhcGQvYmFjay1sZGJtL2RiLWJkYi9iZGJfaW1wb3J0LmMKLWluZGV4IGE2Y2IxMGFlYy4uNDg5 NDMzODAxIDEwMDY0NAotLS0tIGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9kYi1iZGIv YmRiX2ltcG9ydC5jCi0rKysgYi9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2RiLWJkYi9i ZGJfaW1wb3J0LmMKLUBAIC03NSw5ICs3NSw5IEBAIHN0YXRpYyBJRExpc3QgKmJkYl9pZGxfdW5p b25fYWxsaWRzKGJhY2tlbmQgKmJlLCBzdHJ1Y3QgYXR0cmluZm8gKmFpLCBJRExpc3QgKmEsCi0g I2RlZmluZSBERUJVR19TVUJDT1VOVF9NU0cobXNnLCAuLi4pIHsgZGVidWdfc3ViY291bnQoX19G VU5DVElPTl9fLCBfX0xJTkVfXywgKG1zZyksIF9fVkFfQVJHU19fKTsgfQotICNkZWZpbmUgRFVN UF9TVUJDT1VOVF9LRVkobXNnLCBrZXksIHJldCkgeyBkZWJ1Z19zdWJjb3VudChfX0ZVTkNUSU9O X18sIF9fTElORV9fLCAicmV0PSVkIHNpemU9JXUgdWxlbj0ldSBkb2ZmPSV1IGRsZW49JXUiLCBc Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXQsIChr ZXkpLnNpemUsIChrZXkpLnVsZW4sIChrZXkpLmRvZmYsIChrZXkpLmRsZW4pOyBcCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXQgPT0gMCkgaGV4YWR1 bXAobXNnLCAoa2V5KS5kYXRhLCAwLCAoa2V5KS5zaXplKTsgXAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmV0ID09IDApIHNsYXBpX2xvZ19oZXhhZHVt cChTTEFQSV9MT0dfSU5GTywgbXNnLCAoa2V5KS5kYXRhLCAoa2V5KS5zaXplKTsgXAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChyZXQgPT0gREJf QlVGRkVSX1NNQUxMKSBcCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaGV4YWR1bXAobXNnLCAoa2V5KS5kYXRhLCAwLCAoa2V5KS51bGVuKTsgfQotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsYXBpX2xvZ19o ZXhhZHVtcChTTEFQSV9MT0dfSU5GTywgbXNnLCAoa2V5KS5kYXRhLCAoa2V5KS51bGVuKTsgfQot IAotIHN0YXRpYyB2b2lkCi0gZGVidWdfc3ViY291bnQoY29uc3QgY2hhciAqZnVuY25hbWUsIGlu dCBsaW5lLCBjaGFyICptc2csIC4uLikKLUBAIC05MCw0MSArOTAsNiBAQCBkZWJ1Z19zdWJjb3Vu dChjb25zdCBjaGFyICpmdW5jbmFtZSwgaW50IGxpbmUsIGNoYXIgKm1zZywgLi4uKQotICAgICBz bGFwaV9sb2dfZXJyKFNMQVBJX0xPR19JTkZPLCAoY2hhciopZnVuY25hbWUsICJERUJVRyBTVUJD T1VOVCBbJWRdICVzXG4iLCBsaW5lLCBidWZmKTsKLSB9Ci0gCi0tLyoKLS0gKiBEdW1wIGEgbWVt b3J5IGJ1ZmZlciBpbiBoZXhhIGFuZCBhc2NpaSBpbiBlcnJvciBsb2cKLS0gKgotLSAqIGFkZHIg LSBUaGUgbWVtb3J5IGJ1ZmZlciBhZGRyZXNzLgotLSAqIGxlbiAtIFRoZSBtZW1vcnkgYnVmZmVy IGxlbmdodC4KLS0gKi8KLS1zdGF0aWMgdm9pZAotLWhleGFkdW1wKGNoYXIgKm1zZywgY29uc3Qg dm9pZCAqYWRkciwgc2l6ZV90IG9mZnNldCwgc2l6ZV90IGxlbikKLS17Ci0tI2RlZmluZSAgSEVY QURVTVBfVEFCIDQKLS0vKiA0IGNoYXJhY3RlcnMgcGVyIGJ5dGVzOiAgMiBoZXhhIGRpZ2l0cywg MSBzcGFjZSBhbmQgdGhlIGFzY2lpICAqLwotLSNkZWZpbmUgIEhFWEFEVU1QX0JVRl9TSVpFICg0 KjE2K0hFWEFEVU1QX1RBQikKLS0gICAgY2hhciBoZXhkaWdpdFtdID0gIjAxMjM0NTY3ODlBQkNE RUYiOwotLQotLSAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpwdCA9IGFkZHI7Ci0tICAgIGNoYXIg YnVmZltIRVhBRFVNUF9CVUZfU0laRSsxXTsKLS0gICAgbWVtc2V0IChidWZmLCAnICcsIEhFWEFE VU1QX0JVRl9TSVpFKTsKLS0gICAgYnVmZltIRVhBRFVNUF9CVUZfU0laRV0gPSAnXDAnOwotLSAg ICB3aGlsZSAobGVuID4gMCkgewotLSAgICAgICAgaW50IGRwbDsKLS0gICAgICAgIGZvciAoZHBs ID0gMDsgZHBsIDwgMTYgJiYgbGVuPjA7IGRwbCsrLCBsZW4tLSkgewotLSAgICAgICAgICAgYnVm ZlszKmRwbF0gPSBoZXhkaWdpdFsoKCpwdCkgPj4gNCkgJiAweGZdOwotLSAgICAgICAgICAgYnVm ZlszKmRwbCsxXSA9IGhleGRpZ2l0WygqcHQpICYgMHhmXTsKLS0gICAgICAgICAgIGJ1ZmZbMyox NitIRVhBRFVNUF9UQUIrZHBsXSA9ICgqcHQ+PTB4MjAgJiYgKnB0PDB4N2YpID8gKnB0IDogJy4n OwotLSAgICAgICAgICAgcHQrKzsKLS0gICAgICAgIH0KLS0gICAgICAgIGZvciAoO2RwbCA8IDE2 OyBkcGwrKykgewotLSAgICAgICAgICAgYnVmZlszKmRwbF0gPSAnICc7Ci0tICAgICAgICAgICBi dWZmWzMqZHBsKzFdID0gJyAnOwotLSAgICAgICAgICAgYnVmZlszKjE2K0hFWEFEVU1QX1RBQitk cGxdID0gJyAnOwotLSAgICAgICAgfQotLSAgICAgICAgc2xhcGlfbG9nX2VycihTTEFQSV9MT0df SU5GTywgbXNnLCAiWzB4JTA4bHhdICAlc1xuIiwgb2Zmc2V0LCBidWZmKTsKLS0gICAgICAgIG9m ZnNldCArPSAxNjsKLS0gICAgfQotLX0KLSAjZWxzZQotICNkZWZpbmUgREVCVUdfU1VCQ09VTlRf TVNHKG1zZywgLi4uKQotICNkZWZpbmUgRFVNUF9TVUJDT1VOVF9LRVkobXNnLCBrZXksIHJldCkK LWRpZmYgLS1naXQgYS9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2RiLW1kYi9tZGJfaW1w b3J0X3RocmVhZHMuYyBiL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vZGItbWRiL21kYl9p bXBvcnRfdGhyZWFkcy5jCi1pbmRleCA2NWIyOTM0M2UuLmI5Njk3OTBkYSAxMDA2NDQKLS0tLSBh L2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vZGItbWRiL21kYl9pbXBvcnRfdGhyZWFkcy5j Ci0rKysgYi9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2RiLW1kYi9tZGJfaW1wb3J0X3Ro cmVhZHMuYwotQEAgLTExMjMsNiArMTEyMywyMSBAQCBkYm1kYl9pbXBvcnRfZW50cnlfaW5mb19i eV9iYWNrZW50cnkobWRiX3ByaXZkYl90ICpkYiwgQnVsa1F1ZXVlRGF0YV90ICpicWRhdGEsCi0g ICAgIHJldHVybiBkbnJjOwotIH0KLSAKLSsvKiBMb2cgd3FlbG10IGRldGFpbHMgKi8KLSt2b2lk Ci0rbG9nX3dxZWxtdChpbnQgbG9nbHZsLCBjaGFyICpmbmFtZSwgV29ya2VyUXVldWVEYXRhX3Qg KndxZWxtdCkKLSt7Ci0rICAgIGlmICh3cWVsbXQtPmRuKSB7Ci0rICAgICAgICBzbGFwaV9sb2df ZXJyKGxvZ2x2bCwgZm5hbWUsICJsb2dfd3FlbG10OiBkbj0lc1xuIiwgd3FlbG10LT5kbik7Ci0r ICAgIH0KLSsgICAgaWYgKHdxZWxtdC0+ZmlsZW5hbWUgJiYgd3FlbG10LT5saW5lbm8pIHsKLSsg ICAgICAgIHNsYXBpX2xvZ19lcnIobG9nbHZsLCBmbmFtZSwgImxvZ193cWVsbXQ6IGxkaWY9JXNb JWRdXG4iLCB3cWVsbXQtPmZpbGVuYW1lLCB3cWVsbXQtPmxpbmVubyk7Ci0rICAgIH0KLSsgICAg aWYgKHdxZWxtdC0+ZGF0YSkgewotKyAgICAgICAgc2l6ZV90IGxlbiA9IHdxZWxtdC0+ZGF0YWxl biA/IHdxZWxtdC0+ZGF0YWxlbiA6IHN0cmxlbih3cWVsbXQtPmRhdGEpOwotKyAgICAgICAgc2xh cGlfbG9nX2hleGFkdW1wKGxvZ2x2bCwgImxvZ193cWVsbXQ6ZGF0YSIsIHdxZWxtdC0+ZGF0YSwg bGVuKTsKLSsgICAgfQotK30KLSAKLSAvKiBwcm9kdWNlciB0aHJlYWQgZm9yIGxkaWYgaW1wb3J0 IGNhc2U6Ci0gICogcmVhZCB0aHJvdWdoIHRoZSBnaXZlbiBmaWxlIGxpc3QsIHBhcnNpbmcgZW50 cmllcyAoc3RyMmVudHJ5KSwgYXNzaWduaW5nCi1AQCAtMTI1NSw2ICsxMjcwLDcgQEAgZGJtZGJf aW1wb3J0X3Byb2R1Y2VyKHZvaWQgKnBhcmFtKQotICAgICAgICAgICAgICAgICBpbXBvcnRfbG9n X25vdGljZShqb2IsIFNMQVBJX0xPR19FUlIsICJkYm1kYl9pbXBvcnRfcHJvZHVjZXIiLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibnNfc2xhcGQgc29mdHdhcmUgZXJyb3I6 IHVuZXhwZWN0ZWQgZGJtZGJfaW1wb3J0X2VudHJ5X2luZm8gcmV0dXJuIGNvZGU6ICVkLiIsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdxZWxtdC5kbnJjKTsKLSsgICAgICAg ICAgICAgICAgbG9nX3dxZWxtdChTTEFQSV9MT0dfRVJSLCAiZGJtZGJfaW1wb3J0X3Byb2R1Y2Vy IiwgJndxZWxtdCk7Ci0gICAgICAgICAgICAgICAgIGFib3J0KCk7Ci0gICAgICAgICAgICAgY2Fz ZSBETlJDX09LOgotICAgICAgICAgICAgIGNhc2UgRE5SQ19TVUZGSVg6Ci1AQCAtMTc1OCw2ICsx Nzc0LDcgQEAgZGJtZGJfaW5kZXhfcHJvZHVjZXIodm9pZCAqcGFyYW0pCi0gICAgICAgICAgICAg ICAgIGltcG9ydF9sb2dfbm90aWNlKGpvYiwgU0xBUElfTE9HX0VSUiwgImRibWRiX2luZGV4X3By b2R1Y2VyIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5zX3NsYXBkIHNv ZnR3YXJlIGVycm9yOiB1bmV4cGVjdGVkIGRibWRiX2ltcG9ydF9lbnRyeV9pbmZvIHJldHVybiBj b2RlOiAlZC4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bXBzbG90LmRu cmMpOwotKyAgICAgICAgICAgICAgICBsb2dfd3FlbG10KFNMQVBJX0xPR19FUlIsICJkYm1kYl9p bmRleF9wcm9kdWNlciIsICZ0bXBzbG90KTsKLSAgICAgICAgICAgICAgICAgYWJvcnQoKTsKLSAg ICAgICAgICAgICBjYXNlIEROUkNfT0s6Ci0gICAgICAgICAgICAgY2FzZSBETlJDX1NVRkZJWDoK LUBAIC0zOTM2LDEwICszOTUzLDI0IEBAIGRibWRiX2ltcG9ydF93cml0ZXIodm9pZCpwYXJhbSkK LSAgICAgICAgICAgICBpZiAoIXR4bikgewotICAgICAgICAgICAgICAgICBNREJfU1RBVF9TVEVQ KHN0YXRzLCBNREJfU1RBVF9UWE5TVEFSVCwgc3RhdHNfZW5hYmxlZCk7Ci0gICAgICAgICAgICAg ICAgIHJjID0gVFhOX0JFR0lOKGN0eC0+Y3R4LT5lbnYsIE5VTEwsIDAsICZ0eG4pOwotKyAgICAg ICAgICAgICAgICBpZiAocmMpIHsKLSsgICAgICAgICAgICAgICAgICAgIHNsYXBpX2xvZ19lcnIo U0xBUElfTE9HX0VSUiwgImRibWRiX2ltcG9ydF93cml0ZXIiLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIGJlZ2luIGEgdHhuLiBFcnJvciBpcyAweCV4OiAl cy5cbiIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJjLCBtZGJfc3RyZXJy b3IocmMpKTsKLSsgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgIH0KLSAgICAgICAgICAg ICBpZiAoIXJjKSB7Ci0gICAgICAgICAgICAgICAgIE1EQl9TVEFUX1NURVAoc3RhdHMsIE1EQl9T VEFUX1dSSVRFLCBzdGF0c19lbmFibGVkKTsKLSAgICAgICAgICAgICAgICAgcmMgPSBNREJfUFVU KHR4biwgc2xvdC0+ZGJpLT5kYmksICZzbG90LT5rZXksICZzbG90LT5kYXRhLCAwKTsKLSsgICAg ICAgICAgICAgICAgaWYgKHJjKSB7Ci0rICAgICAgICAgICAgICAgICAgICBzbGFwaV9sb2dfZXJy KFNMQVBJX0xPR19FUlIsICJkYm1kYl9pbXBvcnRfd3JpdGVyIiwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byB3cml0ZSByZWNvcmQgaW4gZGJpICVzLiBFcnJv ciBpcyAweCV4OiAlcy5cbiIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNs b3QtPmRiaS0+ZGJuYW1lLCByYywgbWRiX3N0cmVycm9yKHJjKSk7Ci0rICAgICAgICAgICAgICAg ICAgICBzbGFwaV9sb2dfaGV4YWR1bXAoU0xBUElfTE9HX0VSUiwgImRibWRiX2ltcG9ydF93cml0 ZXI6a2V5IiwgCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xvdC0+ a2V5Lm12X2RhdGEsIHNsb3QtPmtleS5tdl9zaXplKTsKLSsgICAgICAgICAgICAgICAgICAgIHNs YXBpX2xvZ19oZXhhZHVtcChTTEFQSV9MT0dfRVJSLCAiZGJtZGJfaW1wb3J0X3dyaXRlcjpkYXRh IiwgCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xvdC0+ZGF0YS5t dl9kYXRhLCBzbG90LT5kYXRhLm12X3NpemUpOwotKyAgICAgICAgICAgICAgICB9Ci0gICAgICAg ICAgICAgfQotICAgICAgICAgICAgIE1EQl9TVEFUX1NURVAoc3RhdHMsIE1EQl9TVEFUX1JVTiwg c3RhdHNfZW5hYmxlZCk7Ci0gICAgICAgICAgICAgbmV4dHNsb3QgPSBzbG90LT5uZXh0OwotQEAg LTM5NTMsNiArMzk4NCw5IEBAIGRibWRiX2ltcG9ydF93cml0ZXIodm9pZCpwYXJhbSkKLSAgICAg ICAgICAgICByYyA9IFRYTl9DT01NSVQodHhuKTsKLSAgICAgICAgICAgICBNREJfU1RBVF9TVEVQ KHN0YXRzLCBNREJfU1RBVF9SVU4sIHN0YXRzX2VuYWJsZWQpOwotICAgICAgICAgICAgIGlmIChy YykgewotKyAgICAgICAgICAgICAgICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xPR19FUlIsICJkYm1k Yl9pbXBvcnRfd3JpdGVyIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRmFpbGVk IHRvIGNvbW1pdCB0aGUgdHhuLiBFcnJvciBpcyAweCV4OiAlcy5cbiIsCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmMsIG1kYl9zdHJlcnJvcihyYykpOwotICAgICAgICAgICAgICAg ICBicmVhazsKLSAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgY291bnQgPSAwOwotQEAgLTM5 NjUsNiArMzk5OSwxMCBAQCBkYm1kYl9pbXBvcnRfd3JpdGVyKHZvaWQqcGFyYW0pCi0gICAgICAg ICBNREJfU1RBVF9TVEVQKHN0YXRzLCBNREJfU1RBVF9SVU4sIHN0YXRzX2VuYWJsZWQpOwotICAg ICAgICAgaWYgKCFyYykgewotICAgICAgICAgICAgIHR4biA9IE5VTEw7Ci0rICAgICAgICB9IGVs c2UgewotKyAgICAgICAgICAgIHNsYXBpX2xvZ19lcnIoU0xBUElfTE9HX0VSUiwgImRibWRiX2lt cG9ydF93cml0ZXIiLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBjb21t aXQgdGhlIHR4bi4gRXJyb3IgaXMgMHgleDogJXMuXG4iLAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgcmMsIG1kYl9zdHJlcnJvcihyYykpOwotICAgICAgICAgfQotICAgICB9Ci0gICAgIGlm ICh0eG4pIHsKLUBAIC0zOTc3LDEzICs0MDE1LDE3IEBAIGRibWRiX2ltcG9ydF93cml0ZXIodm9p ZCpwYXJhbSkKLSAgICAgaWYgKCFyYykgewotICAgICAgICAgLyogRW5zdXJlIHRoYXQgYWxsIGRh dGEgYXJlIHdyaXR0ZW4gb24gZGlzayAqLwotICAgICAgICAgcmMgPSBtZGJfZW52X3N5bmMoY3R4 LT5jdHgtPmVudiwgMSk7Ci0rICAgICAgICBpZiAocmMpIHsKLSsgICAgICAgICAgICBzbGFwaV9s b2dfZXJyKFNMQVBJX0xPR19FUlIsICJkYm1kYl9pbXBvcnRfd3JpdGVyIiwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICJtZGJfZW52X3N5bmMgZmFpbGVkLiBFcnJvciBpcyAweCV4OiAlcy5c biIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICByYywgbWRiX3N0cmVycm9yKHJjKSk7Ci0r ICAgICAgICB9Ci0gICAgIH0KLSAgICAgTURCX1NUQVRfRU5EKHN0YXRzLCBzdGF0c19lbmFibGVk KTsKLSAKLSAgICAgaWYgKHJjKSB7Ci0gICAgICAgICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xPR19F UlIsICJkYm1kYl9pbXBvcnRfd3JpdGVyIiwKLS0gICAgICAgICAgICAgICAgIkZhaWxlZCB0byB3 cml0ZSBpbiB0aGUgZGF0YWJhc2UuIEVycm9yIGlzIDB4JXg6ICVzLlxuIiwKLS0gICAgICAgICAg ICAgICAgcmMsIG1kYl9zdHJlcnJvcihyYykpOwotKyAgICAgICAgICAgICAgICAiQWJvcnRpbmcg aW1wb3J0IGFmdGVyIGZhaWx1cmUuXG4iKTsKLSAgICAgICAgIHRocmVhZF9hYm9ydChpbmZvKTsK LSAgICAgfSBlbHNlIGlmIChzdGF0c19lbmFibGVkKSB7Ci0gICAgICAgICBjaGFyIGJ1ZlsyMDBd OwotZGlmZiAtLWdpdCBhL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vaW5kZXguYyBiL2xk YXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vaW5kZXguYwotaW5kZXggYTUwMDRiZTE5Li5jMTA4 YmNlM2MgMTAwNjQ0Ci0tLS0gYS9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2luZGV4LmMK LSsrKyBiL2xkYXAvc2VydmVycy9zbGFwZC9iYWNrLWxkYm0vaW5kZXguYwotQEAgLTg4MSw2ICs4 ODEsNjcgQEAgaW5kZXhfcmVhZCgKLSAgICAgcmV0dXJuIGluZGV4X3JlYWRfZXh0KGJlLCAoY2hh ciAqKXR5cGUsIGluZGV4dHlwZSwgdmFsLCB0eG4sIGVyciwgTlVMTCk7Ci0gfQotIAotKy8qIFBy ZXBhcmUgYW4gaW5kZXgga2V5IChoYXNoZWQgaWYgdG9vIGxvbmcsIGVuY3J5cHRlZCBpZiBuZWVk ZWQgZnJvbSBhdHRyaWJ1dGUgdmFsdWUgKi8KLStpbnQKLStwcmVwYXJlX2tleShiYWNrZW5kICpi ZSwgc3RydWN0IGF0dHJpbmZvICphLCBjaGFyICoqYnVmLCBzaXplX3QgKmJ1ZmxlbiwKLSsgICAg ICAgICAgICBpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKnByZWZpeCwgY29uc3Qgc3RydWN0IGJlcnZh bCAqYnZwLCBkYmlfdmFsX3QgKmtleSkKLSt7Ci0rICAgIC8qIEtleSBmb3JtYXQgaXMgW0hhc2g/ XSBbcHJlZml4XSBbdmFsXSBbXDBdICovCi0rICAgIHN0cnVjdCBsZGJtaW5mbyAqbGkgPSAoc3Ry dWN0IGxkYm1pbmZvICopYmUtPmJlX2RhdGFiYXNlLT5wbGdfcHJpdmF0ZTsKLSsgICAgc2l6ZV90 IHBsZW4gPSBzdHJsZW4ocHJlZml4KTsKLSsgICAgc3RydWN0IGJlcnZhbCAqaGFzaGVkX2J2cCA9 IE5VTEw7Ci0rICAgIHN0cnVjdCBiZXJ2YWwgKmVuY3J5cHRlZF9idnAgPSBOVUxMOwotKyAgICBp bnQgcmMgPSAwOwotKwotKyAgICAvKiBIYXNoIGxhcmdlIGluZGV4IGtleSBpZiBuZWNlc3Nhcnkg Ki8KLSsgICAgaWYgKElOREVYX0tFWV9MRU5HVEgoYnZwLT5idl9sZW4scGxlbikgPj0gIGxpLT5s aV9tYXhfa2V5X2xlbikgewotKyAgICAgICAgcmMgPSBhdHRyY3J5cHRfaGFzaF9sYXJnZV9pbmRl eF9rZXkoYmUsIHByZWZpeCwgYSwgYnZwLCAmaGFzaGVkX2J2cCk7Ci0rICAgICAgICBpZiAocmMp IHsKLSsgICAgICAgICAgICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xPR19FUlIsICJpbmRleF9yZWFk X2V4dF9hbGxpZHMiLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBoYXNo IGxhcmdlIGluZGV4IGtleSBmb3IgJXNcbiIsIGEtPmFpX3R5cGUpOwotKyAgICAgICAgICAgIHJl dHVybiByYzsKLSsgICAgICAgIH0gZWxzZSB7Ci0rICAgICAgICAgICAgYnZwID0gaGFzaGVkX2J2 cDsKLSsgICAgICAgIH0KLSsgICAgfQotKwotKyAgICAvKiBFbmNyeXB0IHRoZSBpbmRleCBrZXkg aWYgbmVjZXNzYXJ5ICovCi0rICAgIGlmIChyYyA9PSAwICYmIGEtPmFpX2F0dHJjcnlwdCAmJiAo MCA9PSAoZmxhZ3MgJiBCRV9JTkRFWF9ET05UX0VOQ1JZUFQpKSkgewotKyAgICAgICAgcmMgPSBh dHRyY3J5cHRfZW5jcnlwdF9pbmRleF9rZXkoYmUsIGEsIGJ2cCwgJmVuY3J5cHRlZF9idnApOwot KyAgICAgICAgaWYgKHJjKSB7Ci0rICAgICAgICAgICAgc2xhcGlfbG9nX2VycihTTEFQSV9MT0df RVJSLCAiYWRkb3JkZWxfdmFsdWVzX3N2IiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICJG YWlsZWQgdG8gZW5jcnlwdCBpbmRleCBrZXkgZm9yICVzXG4iLCBhLT5haV90eXBlKTsKLSsgICAg ICAgIH0gZWxzZSB7Ci0rICAgICAgICAgICAgYnZwID0gZW5jcnlwdGVkX2J2cDsKLSsgICAgICAg IH0KLSsgICAgfQotKyAgICBpZiAoaGFzaGVkX2J2cCkgewotKyAgICAgICAgcHJlZml4ID0gc2xh cGlfY2hfc21wcmludGYoIiVjJXMiLEhBU0hfUFJFRklYLCBwcmVmaXgpOwotKyAgICAgICAgcGxl bisrOwotKyAgICB9Ci0rICAgIGlmIChidWYgJiYgYnVmbGVuKSB7Ci0rICAgICAgICBpZiAocGxl bitidnAtPmJ2X2xlbisxID4gKmJ1ZmxlbikgewotKyAgICAgICAgICAgICpidWZsZW4gPSBwbGVu K2J2cC0+YnZfbGVuKzE7Ci0rICAgICAgICAgICAgKmJ1ZiA9IHNsYXBpX2NoX3JlYWxsb2MoKmJ1 ZiwgKmJ1Zmxlbik7Ci0rICAgICAgICB9Ci0rICAgICAgICBkYmxheWVyX3ZhbHVlX2NvbmNhdChi ZSwga2V5LCAqYnVmLCAqYnVmbGVuLCBwcmVmaXgsIHBsZW4sIGJ2cC0+YnZfdmFsLCBidnAtPmJ2 X2xlbiwgIiIsIDEpOwotKyAgICB9IGVsc2UgewotKyAgICAgICAgZGJsYXllcl92YWx1ZV9jb25j YXQoYmUsIGtleSwgTlVMTCwgMCwgcHJlZml4LCBwbGVuLCBidnAtPmJ2X3ZhbCwgYnZwLT5idl9s ZW4sICIiLCAxKTsKLSsgICAgfQotKwotKyAgICBpZiAoaGFzaGVkX2J2cCkgewotKyAgICAgICAg YmVyX2J2ZnJlZShoYXNoZWRfYnZwKTsKLSsgICAgICAgIGhhc2hlZF9idnAgPSBOVUxMOwotKyAg ICAgICAgc2xhcGlfY2hfZnJlZV9zdHJpbmcoKGNoYXIqKikmcHJlZml4KTsKLSsgICAgfQotKyAg ICBpZiAoZW5jcnlwdGVkX2J2cCkgewotKyAgICAgICAgYmVyX2J2ZnJlZShlbmNyeXB0ZWRfYnZw KTsKLSsgICAgICAgIGVuY3J5cHRlZF9idnAgPSBOVUxMOwotKyAgICB9Ci0rICAgIHJldHVybiBy YzsKLSt9Ci0rCi0rCi0gLyoKLSAgKiBFeHRlbmRlZCB2ZXJzaW9uIG9mIGluZGV4X3JlYWQuCi0g ICogVGhlIHVuaW5kZXhlZCBmbGFnIGNhbiBiZSB1c2VkIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4g YQotQEAgLTkxNyw3ICs5NzgsNiBAQCBpbmRleF9yZWFkX2V4dF9hbGxpZHMoCi0gICAgIHN0cnVj dCBiZXJ2YWwgKmhhc2hlZF92YWwgPSBOVUxMOwotICAgICBpbnQgaXNfYW5kID0gMDsKLSAgICAg dW5zaWduZWQgaW50IGFpX2ZsYWdzID0gMDsKLS0gICAgc3RydWN0IGxkYm1pbmZvICpsaSA9IChz dHJ1Y3QgbGRibWluZm8gKiliZS0+YmVfZGF0YWJhc2UtPnBsZ19wcml2YXRlOwotIAotICAgICAq ZXJyID0gMDsKLSAKLUBAIC0xMDI4LDM2ICsxMDg4LDcgQEAgaW5kZXhfcmVhZF9leHRfYWxsaWRz KAotICAgICB9Ci0gCi0gICAgIGlmICh2YWwgIT0gTlVMTCkgewotLSAgICAgICAgc2l6ZV90IHZs ZW47Ci0tICAgICAgICBpbnQgcmV0ID0gMDsKLS0KLS0gICAgICAgIC8qIElmIG5lY2Vzc2FyeSwg aGFzaCB0aGlzIGluZGV4IGtleSAqLwotLSAgICAgICAgaWYgKHZhbC0+YnZfbGVuID49ICBsaS0+ bGlfbWF4X2tleV9sZW4pIHsKLS0gICAgICAgICAgICByZXQgPSBhdHRyY3J5cHRfaGFzaF9sYXJn ZV9pbmRleF9rZXkoYmUsICZwcmVmaXgsIGFpLCB2YWwsICZoYXNoZWRfdmFsKTsKLS0gICAgICAg ICAgICBpZiAocmV0KSB7Ci0tICAgICAgICAgICAgICAgIHNsYXBpX2xvZ19lcnIoU0xBUElfTE9H X0VSUiwgImluZGV4X3JlYWRfZXh0X2FsbGlkcyIsCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIkZhaWxlZCB0byBoYXNoIGxhcmdlIGluZGV4IGtleSBmb3IgJXNcbiIsIGJhc2V0eXBl KTsKLS0gICAgICAgICAgICAgICAgKmVyciA9IERCSV9SQ19PVEhFUjsKLS0gICAgICAgICAgICAg ICAgaW5kZXhfZnJlZV9wcmVmaXgocHJlZml4KTsKLS0gICAgICAgICAgICAgICAgc2xhcGlfY2hf ZnJlZV9zdHJpbmcoJmJhc2V0bXApOwotLSAgICAgICAgICAgICAgICByZXR1cm4gKE5VTEwpOwot LSAgICAgICAgICAgIH0KLS0gICAgICAgICAgICBpZiAoaGFzaGVkX3ZhbCkgewotLSAgICAgICAg ICAgICAgICB2YWwgPSBoYXNoZWRfdmFsOwotLSAgICAgICAgICAgIH0KLS0gICAgICAgIH0KLS0g ICAgICAgIC8qIElmIG5lY2Vzc2FyeSwgZW5jcnlwdCB0aGlzIGluZGV4IGtleSAqLwotLSAgICAg ICAgcmV0ID0gYXR0cmNyeXB0X2VuY3J5cHRfaW5kZXhfa2V5KGJlLCBhaSwgdmFsLCAmZW5jcnlw dGVkX3ZhbCk7Ci0tICAgICAgICBpZiAocmV0KSB7Ci0tICAgICAgICAgICAgc2xhcGlfbG9nX2Vy cihTTEFQSV9MT0dfRVJSLCAiaW5kZXhfcmVhZF9leHRfYWxsaWRzIiwKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICJGYWlsZWQgdG8gZW5jcnlwdCBpbmRleCBrZXkgZm9yICVzXG4iLCBiYXNl dHlwZSk7Ci0tICAgICAgICB9Ci0tICAgICAgICBpZiAoZW5jcnlwdGVkX3ZhbCkgewotLSAgICAg ICAgICAgIHZhbCA9IGVuY3J5cHRlZF92YWw7Ci0tICAgICAgICB9Ci0tICAgICAgICB2bGVuID0g dmFsLT5idl9sZW47Ci0tICAgICAgICBkYmxheWVyX3ZhbHVlX2NvbmNhdChiZSwgJmtleSwgYnVm LCBzaXplb2YoYnVmKSwKLS0gICAgICAgICAgICBwcmVmaXgsIHN0cmxlbihwcmVmaXgpLCB2YWwt PmJ2X3ZhbCwgdmxlbiwgIiIsIDEpOwotKyAgICAgICAgKHZvaWQpIHByZXBhcmVfa2V5KGJlLCBh aSwgTlVMTCwgMCwgMCwgcHJlZml4LCB2YWwsICZrZXkpOwotICAgICB9IGVsc2UgewotICAgICAg ICAgZGJsYXllcl92YWx1ZV9jb25jYXQoYmUsICZrZXksIGJ1Ziwgc2l6ZW9mKGJ1ZiksIHByZWZp eCwgc3RybGVuKHByZWZpeCksCi0gICAgICAgICAgICAgIiIsIDEsIE5VTEwsIDApOwotQEAgLTE4 MjQsNiArMTg1NSw3IEBAIGluZGV4X3JhbmdlX3JlYWQoCi0gICAgIHJldHVybiBpbmRleF9yYW5n ZV9yZWFkX2V4dChwYiwgYmUsIHR5cGUsIGluZGV4dHlwZSwgb3BlcmF0b3IsIHZhbCwgbmV4dHZh bCwgcmFuZ2UsIHR4biwgZXJyLCAwKTsKLSB9Ci0gCi0rCi0gc3RhdGljIGludAotIGFkZG9yZGVs X3ZhbHVlc19zdigKLSAgICAgYmFja2VuZCAqYmUsCi1AQCAtMTg0MiwxNSArMTg3NCwxMCBAQCBh ZGRvcmRlbF92YWx1ZXNfc3YoCi0gICAgIGludCBpID0gMDsKLSAgICAgZGJpX3ZhbF90IGtleSA9 IHswfTsKLSAgICAgZGJpX3R4bl90ICpkYl90eG4gPSBOVUxMOwotLSAgICBzaXplX3QgcGxlbiwg dmxlbiwgbGVuOwotICAgICBjaGFyICp0bXBidWYgPSBOVUxMOwotICAgICBzaXplX3QgdG1wYnVm bGVuID0gMDsKLS0gICAgY2hhciAqcmVhbGJ1ZjsKLSAgICAgY2hhciAqcHJlZml4ID0gTlVMTDsK LSAgICAgY29uc3Qgc3RydWN0IGJlcnZhbCAqYnZwOwotLSAgICBzdHJ1Y3QgYmVydmFsICpoYXNo ZWRfYnZwID0gTlVMTDsKLS0gICAgc3RydWN0IGJlcnZhbCAqZW5jcnlwdGVkX2J2cCA9IE5VTEw7 Ci0tICAgIHN0cnVjdCBsZGJtaW5mbyAqbGkgPSAoc3RydWN0IGxkYm1pbmZvICopYmUtPmJlX2Rh dGFiYXNlLT5wbGdfcHJpdmF0ZTsKLSAgICAgY2hhciAqaW5kZXhfaWQgPSBnZXRfaW5kZXhfbmFt ZShiZSwgZGIsIGEpOwotIAotICAgICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xPR19UUkFDRSwgImFk ZG9yZGVsX3ZhbHVlc19zdiIsICIlc192YWx1ZXNcbiIsCi1AQCAtMTg4OSw2NiArMTkxNiwxNCBA QCBhZGRvcmRlbF92YWx1ZXNfc3YoCi0gICAgICAgICByZXR1cm4gKHJjKTsKLSAgICAgfQotIAot LSAgICBwbGVuID0gc3RybGVuKHByZWZpeCk7Ci0gICAgIGZvciAoaSA9IDA7IHZhbHNbaV0gIT0g TlVMTDsgaSsrKSB7Ci0gICAgICAgICBidnAgPSBzbGFwaV92YWx1ZV9nZXRfYmVydmFsKHZhbHNb aV0pOwotIAotLSAgICAgICAgLyogSGFzaCBsYXJnZSBpbmRleCBrZXkgaWYgbmVjZXNzYXJ5ICov Ci0tICAgICAgICBpZiAoYnZwLT5idl9sZW4gPj0gIGxpLT5saV9tYXhfa2V5X2xlbikgewotLSAg ICAgICAgICAgIHJjID0gYXR0cmNyeXB0X2hhc2hfbGFyZ2VfaW5kZXhfa2V5KGJlLCAmcHJlZml4 LCBhLCBidnAsICZoYXNoZWRfYnZwKTsKLS0gICAgICAgICAgICBpZiAocmMpIHsKLS0gICAgICAg ICAgICAgICAgc2xhcGlfbG9nX2VycihTTEFQSV9MT0dfRVJSLCAiaW5kZXhfcmVhZF9leHRfYWxs aWRzIiwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIGhhc2ggbGFy Z2UgaW5kZXgga2V5IGZvciAlc1xuIiwgYS0+YWlfdHlwZSk7Ci0tICAgICAgICAgICAgICAgIGJy ZWFrOwotLSAgICAgICAgICAgIH0gZWxzZSB7Ci0tICAgICAgICAgICAgICAgIGJ2cCA9IGhhc2hl ZF9idnA7Ci0tICAgICAgICAgICAgICAgIHBsZW4gPSBzdHJsZW4ocHJlZml4KTsKLS0gICAgICAg ICAgICB9Ci0tICAgICAgICB9Ci0tICAgICAgICAvKiBFbmNyeXB0IHRoZSBpbmRleCBrZXkgaWYg bmVjZXNzYXJ5ICovCi0tICAgICAgICB7Ci0tICAgICAgICAgICAgaWYgKGEtPmFpX2F0dHJjcnlw dCAmJiAoMCA9PSAoZmxhZ3MgJiBCRV9JTkRFWF9ET05UX0VOQ1JZUFQpKSkgewotLSAgICAgICAg ICAgICAgICByYyA9IGF0dHJjcnlwdF9lbmNyeXB0X2luZGV4X2tleShiZSwgYSwgYnZwLCAmZW5j cnlwdGVkX2J2cCk7Ci0tICAgICAgICAgICAgICAgIGlmIChyYykgewotLSAgICAgICAgICAgICAg ICAgICAgc2xhcGlfbG9nX2VycihTTEFQSV9MT0dfRVJSLCAiYWRkb3JkZWxfdmFsdWVzX3N2IiwK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBlbmNyeXB0IGlu ZGV4IGtleSBmb3IgJXNcbiIsIGEtPmFpX3R5cGUpOwotLSAgICAgICAgICAgICAgICB9IGVsc2Ug ewotLSAgICAgICAgICAgICAgICAgICAgYnZwID0gZW5jcnlwdGVkX2J2cDsKLS0gICAgICAgICAg ICAgICAgfQotLSAgICAgICAgICAgIH0KLSsgICAgICAgIHJjID0gcHJlcGFyZV9rZXkoYmUsIGEs ICZ0bXBidWYsICZ0bXBidWZsZW4sIGZsYWdzLCBwcmVmaXgsIGJ2cCwgJmtleSk7Ci0rICAgICAg ICBpZiAocmMpIHsKLSsgICAgICAgICAgICBicmVhazsKLSAgICAgICAgIH0KLSAKLS0gICAgICAg IHZsZW4gPSBidnAtPmJ2X2xlbjsKLS0gICAgICAgIGxlbiA9IHBsZW4gKyB2bGVuOwotLQotLSAg ICAgICAgaWYgKGxlbiA8IHRtcGJ1ZmxlbikgewotLSAgICAgICAgICAgIHJlYWxidWYgPSB0bXBi dWY7Ci0tICAgICAgICB9IGVsc2UgewotLSAgICAgICAgICAgIHRtcGJ1ZiA9IHNsYXBpX2NoX3Jl YWxsb2ModG1wYnVmLCBsZW4gKyAxKTsKLS0gICAgICAgICAgICB0bXBidWZsZW4gPSBsZW4gKyAx OwotLSAgICAgICAgICAgIHJlYWxidWYgPSB0bXBidWY7Ci0tICAgICAgICB9Ci0tCi0tICAgICAg ICBhc3NlcnQocmVhbGJ1Zik7IC8qIEZvciBjb3Zlcml0eSAqLwotLSAgICAgICAgbWVtY3B5KHJl YWxidWYsIHByZWZpeCwgcGxlbik7Ci0tICAgICAgICBtZW1jcHkocmVhbGJ1ZiArIHBsZW4sIGJ2 cC0+YnZfdmFsLCB2bGVuKTsKLS0gICAgICAgIHJlYWxidWZbbGVuXSA9ICdcMCc7Ci0tICAgICAg ICAvKiBGcmVlIHRoZSBlbmNyeXB0ZWQgYmVydmFsIGlmIG5lY2Vzc2FyeSAqLwotLSAgICAgICAg aWYgKGhhc2hlZF9idnApIHsKLS0gICAgICAgICAgICBiZXJfYnZmcmVlKGhhc2hlZF9idnApOwot LSAgICAgICAgICAgIGhhc2hlZF9idnAgPSBOVUxMOwotLSAgICAgICAgfQotLSAgICAgICAgaWYg KGVuY3J5cHRlZF9idnApIHsKLS0gICAgICAgICAgICBiZXJfYnZmcmVlKGVuY3J5cHRlZF9idnAp OwotLSAgICAgICAgICAgIGVuY3J5cHRlZF9idnAgPSBOVUxMOwotLSAgICAgICAgfQotLSAgICAg ICAgLyogc2hvdWxkIGJlIG9rYXkgdG8gdXNlIFVTRVJNRU0gaGVyZSBiZWNhdXNlIHdlIGtub3cg d2hhdAotLSAgICAgICAgICogdGhlIGtleSBpcyBhbmQgaXQgc2hvdWxkIG5ldmVyIHJldHVybiBh IGRpZmZlcmVudCB2YWx1ZQotLSAgICAgICAgICogdGhhbiB0aGUgb25lIHdlIHBhc3MgaW4uCi0t ICAgICAgICAgKi8KLS0gICAgICAgIGRibGF5ZXJfdmFsdWVfc2V0X2J1ZmZlcihiZSwgJmtleSwg cmVhbGJ1ZiwgcGxlbiArIHZsZW4gKyAxKTsKLS0gICAgICAgIGtleS51bGVuID0gdG1wYnVmbGVu OwotLQotICAgICAgICAgaWYgKHNsYXBpX2lzX2xvZ2xldmVsX3NldChMREFQX0RFQlVHX1RSQUNF KSkgewotICAgICAgICAgICAgIGNoYXIgZW5jYnVmW0JVRlNJWl07Ci0gCi1AQCAtMTk4MSwxMCAr MTk1Niw2IEBAIGFkZG9yZGVsX3ZhbHVlc19zdigKLSAgICAgICAgICAgICBsZGJtX25hc3R5KE5B U1RZX01TRygiYWRkb3JkZWxfdmFsdWVzX3N2IiksIGluZGV4X2lkLCAxMTMwLCByYyk7Ci0gICAg ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICB9Ci0tICAgICAgICBpZiAoTlVMTCAhPSBrZXkuZHB0 ciAmJiByZWFsYnVmICE9IGtleS5kcHRyKSB7IC8qIHJlYWxsb2MnZWQgKi8KLS0gICAgICAgICAg ICB0bXBidWYgPSBrZXkuZHB0cjsKLS0gICAgICAgICAgICB0bXBidWZsZW4gPSBrZXkuc2l6ZTsK LS0gICAgICAgIH0KLSAgICAgfQotICAgICBpbmRleF9mcmVlX3ByZWZpeChwcmVmaXgpOwotICAg ICBpZiAodG1wYnVmICE9IE5VTEwpIHsKLWRpZmYgLS1naXQgYS9sZGFwL3NlcnZlcnMvc2xhcGQv YmFjay1sZGJtL2xkYm1fYXR0cmNyeXB0LmMgYi9sZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJt L2xkYm1fYXR0cmNyeXB0LmMKLWluZGV4IDEyNDgxMDQyNi4uNjY1NTYzM2ZjIDEwMDY0NAotLS0t IGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9sZGJtX2F0dHJjcnlwdC5jCi0rKysgYi9s ZGFwL3NlcnZlcnMvc2xhcGQvYmFjay1sZGJtL2xkYm1fYXR0cmNyeXB0LmMKLUBAIC0xMDc5LDE1 ICsxMDc5LDE1IEBAIGF0dHJjcnlwdF9kZWNyeXB0X2luZGV4X2tleShiYWNrZW5kICpiZSwKLSAg KiAgICAgICAgICAgICAgICAgIDogICAgIE5VTEwgLSBubyBoYXNoIG9yIGZhaWx1cmUKLSAgKi8K LSBpbnQKLS1hdHRyY3J5cHRfaGFzaF9sYXJnZV9pbmRleF9rZXkoYmFja2VuZCAqYmUsIGNoYXIg KipwcmVmaXgsIHN0cnVjdCBhdHRyaW5mbyAqYWksIGNvbnN0IHN0cnVjdCBiZXJ2YWwgKmluLCBz dHJ1Y3QgYmVydmFsICoqb3V0KQotK2F0dHJjcnlwdF9oYXNoX2xhcmdlX2luZGV4X2tleShiYWNr ZW5kICpiZSwgY29uc3QgY2hhciAqcHJlZml4LCBzdHJ1Y3QgYXR0cmluZm8gKmFpLCBjb25zdCBz dHJ1Y3QgYmVydmFsICppbiwgc3RydWN0IGJlcnZhbCAqKm91dCkKLSB7Ci0gICAgIGludCByZXQg PSAwOwotICAgICBzdHJ1Y3QgYmVydmFsICpvdXRfYmVydmFsID0gTlVMTDsKLSAgICAgc3RydWN0 IGxkYm1pbmZvICpsaSA9IChzdHJ1Y3QgbGRibWluZm8gKiliZS0+YmVfZGF0YWJhc2UtPnBsZ19w cml2YXRlOwotLSAgICBjaGFyICpuZXdfcHJlZml4OwotKyAgICBzaXplX3QgZmluYWxfa2V5X2xl biA9IElOREVYX0tFWV9MRU5HVEgoaW4tPmJ2X2xlbiwgc3RybGVuKHByZWZpeCkpOwotIAotICAg ICAvKiBJZiB0aGUgaW5kZXgga2V5IGlzIHRvbyBsb25nIChpLmUgbWRiIGNhc2UpIHdlIG11c3Qg aGFzaCBpdCAqLwotLSAgICBpZiAoaW4tPmJ2X2xlbiA+PSAgbGktPmxpX21heF9rZXlfbGVuKSB7 Ci0rICAgIGlmIChmaW5hbF9rZXlfbGVuID49ICBsaS0+bGlfbWF4X2tleV9sZW4pIHsKLSAgICAg ICAgIFBLMTFDb250ZXh0ICpjID0gUEsxMV9DcmVhdGVEaWdlc3RDb250ZXh0KFNFQ19PSURfTUQ1 KTsKLSAgICAgICAgIGlmIChjICE9IE5VTEwpIHsKLSAgICAgICAgICAgICB1bnNpZ25lZCBjaGFy IGhhc2hbMzJdOwotQEAgLTExMDEsMTYgKzExMDEsMTMgQEAgYXR0cmNyeXB0X2hhc2hfbGFyZ2Vf aW5kZXhfa2V5KGJhY2tlbmQgKmJlLCBjaGFyICoqcHJlZml4LCBzdHJ1Y3QgYXR0cmluZm8gKmFp LAotICAgICAgICAgICAgICAgICByZXR1cm4gRU5PTUVNOwotICAgICAgICAgICAgIH0KLSAgICAg ICAgICAgICBzbGFwaV9sb2dfZXJyKFNMQVBJX0xPR19UUkFDRSwgImF0dHJjcnlwdF9oYXNoX2xh cmdlX2luZGV4X2tleSIsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAiS2V5IGxlbmdodCAo JWx1KSA+PSBtYXgga2V5IGxlbmdodCAoJWx1KSBzbyBrZXkgbXVzdCBiZSBoYXNoZWRcbiIsIGlu LT5idl9sZW4sIGxpLT5saV9tYXhfa2V5X2xlbik7Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAiS2V5IGxlbmdodCAoJWx1KSA+PSBtYXgga2V5IGxlbmdodCAoJWx1KSBzbyBrZXkgbXVzdCBi ZSBoYXNoZWRcbiIsIGZpbmFsX2tleV9sZW4sIGxpLT5saV9tYXhfa2V5X2xlbik7Ci0gICAgICAg ICAgICAgc2xhcGlfYmVfc2V0X2ZsYWcoYmUsIFNMQVBJX0JFX0ZMQUdfRE9OVF9CWVBBU1NfRklM VEVSVEVTVCk7Ci0gICAgICAgICAgICAgUEsxMV9EaWdlc3RCZWdpbihjKTsKLSAgICAgICAgICAg ICAvKiBDb21wdXRlIGhhc2ggZm9yIHRoZSBrZXkgd2l0aG91dCB0aGUgcHJlZml4ICovCi0gICAg ICAgICAgICAgUEsxMV9EaWdlc3RPcChjLCAodW5zaWduZWQgY2hhciAqKWluLT5idl92YWwsIGlu LT5idl9sZW4pOwotICAgICAgICAgICAgIFBLMTFfRGlnZXN0RmluYWwoYywgaGFzaCwgJmhhc2hM ZW4sIHNpemVvZiBoYXNoKTsKLS0gICAgICAgICAgICAvKiBBZGQgSEFTSF9QUkVGSVggYmVmb3Jl IHRoZSBwcmVmaXggKi8KLS0gICAgICAgICAgICBuZXdfcHJlZml4ID0gc2xhcGlfY2hfc21wcmlu dGYoIiVjJXMiLCBIQVNIX1BSRUZJWCwgKnByZWZpeCk7Ci0tICAgICAgICAgICAgaW5kZXhfZnJl ZV9wcmVmaXgoKnByZWZpeCk7Ci0tICAgICAgICAgICAgKnByZWZpeCA9IG5ld19wcmVmaXg7Ci0r Ci0gICAgICAgICAgICAgLyogQnVpbGQgdGhlIGtleTogaGFzaCB2YWx1ZSBpbiBoZXhhICovCi0g ICAgICAgICAgICAgaGtleSA9IHNsYXBpX2NoX21hbGxvYygxKzIqc2l6ZW9mIGhhc2gpOwotICAg ICAgICAgICAgIG91dF9iZXJ2YWwtPmJ2X3ZhbCA9IGhrZXk7Ci1kaWZmIC0tZ2l0IGEvbGRhcC9z ZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9wcm90by1iYWNrLWxkYm0uaCBiL2xkYXAvc2VydmVycy9z bGFwZC9iYWNrLWxkYm0vcHJvdG8tYmFjay1sZGJtLmgKLWluZGV4IDMwYTdhYTExZi4uYzg4MmRh YzdiIDEwMDY0NAotLS0tIGEvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9wcm90by1iYWNr LWxkYm0uaAotKysrIGIvbGRhcC9zZXJ2ZXJzL3NsYXBkL2JhY2stbGRibS9wcm90by1iYWNrLWxk Ym0uaAotQEAgLTYyMiw3ICs2MjIsNyBAQCBpbnQgYXR0cmNyeXB0X2VuY3J5cHRfZW50cnlfaW5w bGFjZShiYWNrZW5kICpiZSwgY29uc3Qgc3RydWN0IGJhY2tlbnRyeSAqaW5vdXQpOwotIGludCBh dHRyY3J5cHRfZW5jcnlwdF9lbnRyeShiYWNrZW5kICpiZSwgY29uc3Qgc3RydWN0IGJhY2tlbnRy eSAqaW4sIHN0cnVjdCBiYWNrZW50cnkgKipvdXQpOwotIGludCBhdHRyY3J5cHRfZW5jcnlwdF9p bmRleF9rZXkoYmFja2VuZCAqYmUsIHN0cnVjdCBhdHRyaW5mbyAqYWksIGNvbnN0IHN0cnVjdCBi ZXJ2YWwgKmluLCBzdHJ1Y3QgYmVydmFsICoqb3V0KTsKLSBpbnQgYXR0cmNyeXB0X2RlY3J5cHRf aW5kZXhfa2V5KGJhY2tlbmQgKmJlLCBzdHJ1Y3QgYXR0cmluZm8gKmFpLCBjb25zdCBzdHJ1Y3Qg YmVydmFsICppbiwgc3RydWN0IGJlcnZhbCAqKm91dCk7Ci0taW50IGF0dHJjcnlwdF9oYXNoX2xh cmdlX2luZGV4X2tleShiYWNrZW5kICpiZSwgY2hhciAqKnByZWZpeCwgc3RydWN0IGF0dHJpbmZv ICphaSwgY29uc3Qgc3RydWN0IGJlcnZhbCAqaW4sIHN0cnVjdCBiZXJ2YWwgKipvdXQpOwotK2lu dCBhdHRyY3J5cHRfaGFzaF9sYXJnZV9pbmRleF9rZXkoYmFja2VuZCAqYmUsIGNvbnN0IGNoYXIg KnByZWZpeCwgc3RydWN0IGF0dHJpbmZvICphaSwgY29uc3Qgc3RydWN0IGJlcnZhbCAqaW4sIHN0 cnVjdCBiZXJ2YWwgKipvdXQpOwotIGludCBhdHRyY3J5cHRfaW5pdChsZGJtX2luc3RhbmNlICps aSk7Ci0gaW50IGF0dHJjcnlwdF9jbGVhbnVwX3ByaXZhdGUobGRibV9pbnN0YW5jZSAqbGkpOwot IAotZGlmZiAtLWdpdCBhL2xkYXAvc2VydmVycy9zbGFwZC9sb2cuYyBiL2xkYXAvc2VydmVycy9z bGFwZC9sb2cuYwotaW5kZXggODBjMDczODJhLi45MzEwMTQ5NGIgMTAwNjQ0Ci0tLS0gYS9sZGFw L3NlcnZlcnMvc2xhcGQvbG9nLmMKLSsrKyBiL2xkYXAvc2VydmVycy9zbGFwZC9sb2cuYwotQEAg LTkzLDYgKzkzLDEwIEBAIHN0YXRpYyBpbnQgc2xhcGlfbG9nX21hcFtdID0gewotICNkZWZpbmUg RkxVU0ggUFJfVFJVRQotICNkZWZpbmUgTk9fRkxVU0ggUFJfRkFMU0UKLSAKLSsjZGVmaW5lICBI RVhBRFVNUF9UQUIgNAotKy8qIDQgY2hhcmFjdGVycyBwZXIgYnl0ZXM6ICAyIGhleGEgZGlnaXRz LCAxIHNwYWNlIGFuZCB0aGUgYXNjaWkgICovCi0rI2RlZmluZSAgSEVYQURVTVBfQlVGX1NJWkUg KDQqMTYrSEVYQURVTVBfVEFCKQotKwotIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICAqIFBST1RPVFlQ RVMKLSAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKi8KLUBAIC0zMTMzLDYgKzMxMzcsNDUgQEAgc2xhcGlfbG9n X2JhY2t0cmFjZShpbnQgbG9nbGV2ZWwpCi0gICAgIH0KLSB9Ci0gCi0rLyoKLSsgKiBEdW1wIGEg bWVtb3J5IGJ1ZmZlciBpbiBoZXhhIGFuZCBhc2NpaSBpbiBlcnJvciBsb2cKLSsgKgotKyAqIGFk ZHIgLSBUaGUgbWVtb3J5IGJ1ZmZlciBhZGRyZXNzLgotKyAqIGxlbiAtIFRoZSBtZW1vcnkgYnVm ZmVyIGxlbmdodC4KLSsgKi8KLSt2b2lkCi0rc2xhcGlfbG9nX2hleGFkdW1wKGludCBsb2dsZXZl bCwgY2hhciAqZm5hbWUsIGNvbnN0IHZvaWQgKmFkZHIsIHNpemVfdCBsZW4pCi0rewotKyAgICBj aGFyIGhleGRpZ2l0W10gPSAiMDEyMzQ1Njc4OUFCQ0RFRiI7Ci0rICAgIGNvbnN0IHVuc2lnbmVk IGNoYXIgKnB0ID0gYWRkcjsKLSsgICAgY2hhciBidWZmW0hFWEFEVU1QX0JVRl9TSVpFKzFdOwot KyAgICBzaXplX3Qgb2Zmc2V0ID0gMDsKLSsKLSsgICAgaWYgKCFzbGFwaV9pc19sb2dsZXZlbF9z ZXQobG9nbGV2ZWwpKSB7Ci0rICAgICAgICByZXR1cm47Ci0rICAgIH0KLSsgICAgbWVtc2V0IChi dWZmLCAnICcsIEhFWEFEVU1QX0JVRl9TSVpFKTsKLSsgICAgYnVmZltIRVhBRFVNUF9CVUZfU0la RV0gPSAnXDAnOwotKyAgICB3aGlsZSAobGVuID4gMCkgewotKyAgICAgICAgaW50IGRwbDsKLSsg ICAgICAgIGZvciAoZHBsID0gMDsgZHBsIDwgMTYgJiYgbGVuPjA7IGRwbCsrLCBsZW4tLSkgewot KyAgICAgICAgICAgYnVmZlszKmRwbF0gPSBoZXhkaWdpdFsoKCpwdCkgPj4gNCkgJiAweGZdOwot KyAgICAgICAgICAgYnVmZlszKmRwbCsxXSA9IGhleGRpZ2l0WygqcHQpICYgMHhmXTsKLSsgICAg ICAgICAgIGJ1ZmZbMyoxNitIRVhBRFVNUF9UQUIrZHBsXSA9ICgqcHQ+PTB4MjAgJiYgKnB0PDB4 N2YpID8gKnB0IDogJy4nOwotKyAgICAgICAgICAgcHQrKzsKLSsgICAgICAgIH0KLSsgICAgICAg IGZvciAoO2RwbCA8IDE2OyBkcGwrKykgewotKyAgICAgICAgICAgYnVmZlszKmRwbF0gPSAnICc7 Ci0rICAgICAgICAgICBidWZmWzMqZHBsKzFdID0gJyAnOwotKyAgICAgICAgICAgYnVmZlszKjE2 K0hFWEFEVU1QX1RBQitkcGxdID0gJyAnOwotKyAgICAgICAgfQotKyAgICAgICAgc2xhcGlfbG9n X2Vycihsb2dsZXZlbCwgZm5hbWUsICJbMHglMDhseF0gICVzXG4iLCBvZmZzZXQsIGJ1ZmYpOwot KyAgICAgICAgb2Zmc2V0ICs9IDE2OwotKyAgICB9Ci0rfQotKwotKwotKwotIC8qKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKLSAqIHdyaXRlIGluIHRoZSBhY2Nlc3MgbG9nCi0gKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqLwotZGlmZiAtLWdpdCBhL2xkYXAvc2VydmVycy9zbGFwZC9zbGFwaS1wcml2YXRlLmgg Yi9sZGFwL3NlcnZlcnMvc2xhcGQvc2xhcGktcHJpdmF0ZS5oCi1pbmRleCA3MmY0Y2Q2ZjAuLjJk YTM3ZmY2ZSAxMDA2NDQKLS0tLSBhL2xkYXAvc2VydmVycy9zbGFwZC9zbGFwaS1wcml2YXRlLmgK LSsrKyBiL2xkYXAvc2VydmVycy9zbGFwZC9zbGFwaS1wcml2YXRlLmgKLUBAIC0xNTI3LDYgKzE1 MjcsOCBAQCB2b2lkIHNsYXBpX3BibG9ja19zZXRfdGFza193YXJuaW5nKFNsYXBpX1BCbG9jayAq cGIsIHRhc2tfd2FybmluZyB3YXJuaW5nKTsKLSBpbnQgc2xhcGlfZXhpc3RzX29yX2FkZF9pbnRl cm5hbChTbGFwaV9ETiAqZG4sIGNvbnN0IGNoYXIgKmZpbHRlciwgY29uc3QgY2hhciAqZW50cnks IGNvbnN0IGNoYXIgKm1vZGlmaWVyX25hbWUpOwotIAotIHZvaWQgc2xhcGlfbG9nX2JhY2t0cmFj ZShpbnQgbG9nbGV2ZWwpOwotK3ZvaWQgc2xhcGlfbG9nX2hleGFkdW1wKGludCBsb2dsZXZlbCwg Y2hhciAqZm5hbWUsIGNvbnN0IHZvaWQgKmFkZHIsIHNpemVfdCBsZW4pOwotKwotIAotIC8qCi0g ICogYWNjZXNzbG9nLmMKLS0tIAotMi41My4wCi0KCmRpZmYgLS1naXQgYS8wMDY1LUlzc3VlLTcy NzctVUktRml4LUphcGFuZXNlLXRyYW5zbGF0aW9uLWZvci1TdWNjZXNzZnUucGF0Y2ggYi8wMDY1 LUlzc3VlLTcyNzctVUktRml4LUphcGFuZXNlLXRyYW5zbGF0aW9uLWZvci1TdWNjZXNzZnUucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM5NDAzNzUuLjAwMDAwMDAKLS0tIGEv MDA2NS1Jc3N1ZS03Mjc3LVVJLUZpeC1KYXBhbmVzZS10cmFuc2xhdGlvbi1mb3ItU3VjY2Vzc2Z1 LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsOTAgKzAsMCBAQAotRnJvbSAzMzZmMWJhN2RjYzg5 NTkyOWFjMmZiMmQ2Y2Q2MzBkZGI2NDVlOTRjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJv bTogU2ltb24gUGljaHVnaW4gPHNwaWNodWdpQHJlZGhhdC5jb20+Ci1EYXRlOiBXZWQsIDI1IEZl YiAyMDI2IDA5OjA1OjQwIC0wODAwCi1TdWJqZWN0OiBbUEFUQ0hdIElzc3VlIDcyNzcgLSBVSSAt IEZpeCBKYXBhbmVzZSB0cmFuc2xhdGlvbiBmb3IgIlN1Y2Nlc3NmdWxseQotIHVwZGF0ZWQgZ3Jv dXAiIGluIENvY2twaXQgVUkgKCM3Mjc4KQotCi1EZXNjcmlwdGlvbjogVGhlIEphcGFuZXNlIHRy YW5zbGF0aW9uIGZvciAiU3VjY2Vzc2Z1bGx5IHVwZGF0ZWQgZ3JvdXAiCi1pbmNvcnJlY3RseSBk aXNwbGF5cyBhICJmYWlsZWQiIG1lc3NhZ2UgaW5zdGVhZCBvZiBhICJzdWNjZWVkZWQiIG1lc3Nh Z2UuCi1UaGlzIGlzIGEgY29weS1wYXN0ZSBlcnJvciBmcm9tIHRoZSBhZGphY2VudCBmYWlsdXJl IG1lc3NhZ2UgdHJhbnNsYXRpb24uCi0KLUZpeGVzOiBodHRwczovL2dpdGh1Yi5jb20vMzg5ZHMv Mzg5LWRzLWJhc2UvaXNzdWVzLzcyNzcKLQotUmV2aWV3ZWQgYnk6IEB2YXNoaXJvdiAoVGhhbmtz ISkKLS0tLQotIHNyYy9jb2NrcGl0LzM4OS1jb25zb2xlL3BvL2phLnBvIHwgMTggKysrKysrKysr LS0tLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMo LSkKLQotZGlmZiAtLWdpdCBhL3NyYy9jb2NrcGl0LzM4OS1jb25zb2xlL3BvL2phLnBvIGIvc3Jj L2NvY2twaXQvMzg5LWNvbnNvbGUvcG8vamEucG8KLWluZGV4IDEyYzEwZGVkNC4uMTYzMjAzOTQw IDEwMDY0NAotLS0tIGEvc3JjL2NvY2twaXQvMzg5LWNvbnNvbGUvcG8vamEucG8KLSsrKyBiL3Ny Yy9jb2NrcGl0LzM4OS1jb25zb2xlL3BvL2phLnBvCi1AQCAtMzI0Nyw3ICszMjQ3LDcgQEAgbXNn aWQgIiIKLSBtc2dzdHIgIiIKLSAi44Or44O844OI44Om44O844K244GM44OH44Kj44Os44Kv44OI 44Oq44K144O844OQ44G444Gu44Ki44Kv44K744K544Gr5L2/55So44Gn44GN44Gq44GESVDjgqLj g4njg6zjgrkoSVB2NCDjgb4iCi0gIuOBn+OBryBJUHY2KeOCkuioreWumuOBl+OBvuOBmeOAguOD r+OCpOODq+ODieOCq+ODvOODieOBjOS9v+eUqOOBp+OBjeOBvuOBmeOAguioreWumuOBleOCjOOB puOBhOOBquOBhElQ44Ki44OJIgotLSLjg6zjgrnjga/mmpfpu5nnmoTjgavmi5LlkKbjgZXjgozj gb7jgZnjgIIocm9vdGRuLWFsbG93LWlwKUlQ44Ki44OJ44Os44K544GM44CBcm9vdGRuLWFsbG93 LWlw5bGeIgotKyLjg6zjgrnjga/mmpfpu5nnmoTjgavoqLHlj6/jgZXjgozjgb7jgZnjgIIocm9v dGRuLWRlbnktaXApSVDjgqLjg4njg6zjgrnjgYzjgIFyb290ZG4tYWxsb3ctaXDlsZ4iCi0gIuaA p+OBqHJvb3Rkbi1kZW55LWlw5bGe5oCn44Gu5Lih5pa544Gr6Kit5a6a44GV44KM44Gm44GE44KL 5aC05ZCI44CB44Ki44Kv44K744K544Gv5ouS5ZCm44GV44KM44G+44GZ44CCIgotIAotICM6IHNy Yy9saWIvcGx1Z2lucy9yb290RE5BY2Nlc3NDb250cm9sLmpzeDo2MDEKLUBAIC0zNjcwLDggKzM2 NzAsOCBAQCBtc2dpZCAiIgotICJTcGVjaWZpZXMgYmFja2VuZHMgb3IgbXVsdGlwbGUtbmVzdGVk IHN1ZmZpeGVzIGZvciB0aGUgTWVtYmVyT2YgcGx1Zy1pbiB0byAiCi0gIndvcmsgb24gKG1lbWJl ck9mRW50cnlTY29wZSkiCi0gbXNnc3RyICIiCi0tIuOCsOODq+ODvOODl+ODoeODs+ODkOODvOOB rkRO44KS6K2Y5Yil44GZ44KL44Gf44KB44Gr5L2/55So44GZ44KL44Kw44Or44O844OX44Ko44Oz 44OI44Oq44Gu5bGe5oCn44KS5oyH5a6a44GX44G+IgotLSLjgZnjgIIobWVtYmVyT2ZHcm91cEF0 dHIpIgotKyJNZW1iZXJPZuODl+ODqeOCsOOCpOODs+OBjOWLleS9nOOBmeOCi+ODkOODg+OCr+OC qOODs+ODieOBvuOBn+OBr+ODjeOCueODiOOBleOCjOOBn+OCteODleOCo+ODg+OCr+OCueOCkuaM h+WumiIKLSsi44GX44G+44GZ44CCKG1lbWJlck9mRW50cnlTY29wZSkiCi0gCi0gIzogc3JjL2xp Yi9wbHVnaW5zL21lbWJlck9mLmpzeDoxMzUzIHNyYy9saWIvcGx1Z2lucy9tZW1iZXJPZi5qc3g6 MTM5NAotICM6IHNyYy9saWIvcGx1Z2lucy9tZW1iZXJPZi5qc3g6MTUyMyBzcmMvbGliL3BsdWdp bnMvbWVtYmVyT2YuanN4OjE1NjQKLUBAIC01ODcyLDcgKzU4NzIsNyBAQCBtc2dzdHIgIiIKLSAj OiBzcmMvbGliL2RhdGFiYXNlL2xvY2FsUHdwLmpzeDo4Nzggc3JjL2xpYi9kYXRhYmFzZS9sb2Nh bFB3cC5qc3g6MzExMgotICM6IHNyYy9saWIvZGF0YWJhc2UvZ2xvYmFsUHdwLmpzeDoxNTk1Ci0g bXNnaWQgIlBhc3N3b3JkIFZhbGlkIEZyb20iCi0tbXNnc3RyICLjg5Hjgrnjg6/jg7zjg4njga7m nInlirnmnJ/pmZAiCi0rbXNnc3RyICLjg5Hjgrnjg6/jg7zjg4njga7mnInlirnplovlp4vml6Ui Ci0gCi0gIzogc3JjL2xpYi9kYXRhYmFzZS9sb2NhbFB3cC5qc3g6OTAyCi0gbXNnaWQgIkNyZWF0 ZSBOZXcgUG9saWN5IgotQEAgLTEwNTAwLDcgKzEwNTAwLDcgQEAgbXNnc3RyICLjgqjjg7Pjg4jj g6rlkI3jga7lpInmm7TjgavmiJDlip/jgZfjgb7jgZfjgZ/vvIEiCi0gCi0gIzogc3JjL2xpYi9s ZGFwX2VkaXRvci93aXphcmRzL29wZXJhdGlvbnMvcmVuYW1lRW50cnkuanN4OjgyCi0gbXNnaWQg IkZhaWxlZCB0byByZW5hbWUgZW50cnksIGVycm9yOiAiCi0tbXNnc3RyICLjgqjjg7Pjg4jjg6rj ga7liYrpmaTjgavlpLHmlZfjgZfjgb7jgZfjgZ/jgIHjgqjjg6njg7w6ICIKLSttc2dzdHIgIuOC qOODs+ODiOODquWQjeOBruWkieabtOOBq+WkseaVl+OBl+OBvuOBl+OBn+OAgeOCqOODqeODvDog IgotIAotICM6IHNyYy9saWIvbGRhcF9lZGl0b3Ivd2l6YXJkcy9vcGVyYXRpb25zL3JlbmFtZUVu dHJ5LmpzeDo5MwotIG1zZ2lkICIiCi1AQCAtMTQzMDIsNyArMTQzMDIsNyBAQCBtc2dzdHIgIuio reWumuOCouODg+ODl+ODleOCoeOCpOODqyAkMCDjga7mqKnpmZDoqK3lrprjgavlpLHmlZfjgZfj gb7jgZfjgZ86ICQxIgotIAotICM6IHNyYy9kc01vZGFscy5qc3g6Mjk5Ci0gbXNnaWQgIkZhaWxl ZCB0byBwb3B1bGF0ZSBpbnN0YWxsYXRpb24gZmlsZSEgJDAiCi0tbXNnc3RyICLjgqTjg7Pjgrnj g4jjg7zjg6vjg5XjgqHjgqTjg6vjga7kvZzmiJDjgavlpLHmlZfjgZfjgb7jgZfjgZ/vvIEgJDAi Ci0rbXNnc3RyICLjgqTjg7Pjgrnjg4jjg7zjg6vjg5XjgqHjgqTjg6vjgbjjga7jg4fjg7zjgr/l haXlipvjgavlpLHmlZfjgZfjgb7jgZfjgZ/vvIEgJDAiCi0gCi0gIzogc3JjL2RzTW9kYWxzLmpz eDozMzYKLSBtc2dpZCAiU3VjY2Vzc2Z1bGx5IGNyZWF0ZWQgaW5zdGFuY2U6IHNsYXBkLSQwIgot QEAgLTE0ODY4LDE1ICsxNDg2OCwxNSBAQCBtc2dzdHIgIiIKLSAKLSAjOiBzcmMvc2NoZW1hLmpz eDoxNTUwCi0gbXNnaWQgIkRlbGV0ZSBBbiBPYmplY3RjbGFzcyIKLS1tc2dzdHIgIuWxnuaAp+OC kuWJiumZpCIKLSttc2dzdHIgIuOCquODluOCuOOCp+OCr+ODiOOCr+ODqeOCueOCkuWJiumZpCIK LSAKLSAjOiBzcmMvc2NoZW1hLmpzeDoxNTUxCi0gbXNnaWQgIkFyZSB5b3Ugc3VyZSB5b3Ugd2Fu dCB0byBkZWxldGUgdGhpcyBPYmplY3RjbGFzcz8iCi0tbXNnc3RyICLjgZPjga7jgqrjg5bjgrjj gqfjgq/jg4jjgpLliYrpmaTjgZfjgb7jgZnjgYvvvJ8iCi0rbXNnc3RyICLjgZPjga7jgqrjg5bj grjjgqfjgq/jg4jjgq/jg6njgrnjgpLliYrpmaTjgZfjgb7jgZnjgYvvvJ8iCi0gCi0gIzogc3Jj L3NjaGVtYS5qc3g6MTU1MgotIG1zZ2lkICJEZWxldGluZyBvYmplY3RjbGFzcyAuLi4iCi0tbXNn c3RyICLjgqrjg5bjgrjjgqfjgq/jg4jjgpLliYrpmaTjgZfjgabjgYTjgb7jgZkuLi4iCi0rbXNn c3RyICLjgqrjg5bjgrjjgqfjgq/jg4jjgq/jg6njgrnjgpLliYrpmaTjgZfjgabjgYTjgb7jgZku Li4iCi0gCi0gIzogc3JjL3NjaGVtYS5qc3g6MTU2MwotIG1zZ2lkICJEZWxldGUgQW4gQXR0cmli dXRlIgotLS0gCi0yLjUzLjAKLQoKZGlmZiAtLWdpdCBhLzAwNjYtSXNzdWUtNzI4NC1DcmVhdGlu Zy1sb2NhbC1wYXNzd29yZC1wb2xpY3ktc3VjY2VlZHMtdy5wYXRjaCBiLzAwNjYtSXNzdWUtNzI4 NC1DcmVhdGluZy1sb2NhbC1wYXNzd29yZC1wb2xpY3ktc3VjY2VlZHMtdy5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzE5MjhhMS4uMDAwMDAwMAotLS0gYS8wMDY2LUlzc3Vl LTcyODQtQ3JlYXRpbmctbG9jYWwtcGFzc3dvcmQtcG9saWN5LXN1Y2NlZWRzLXcucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSw1MCArMCwwIEBACi1Gcm9tIDE4NTE3OGVmNTJkNmY2NjVhNTNjNjlm Nzk0ZGFmOGMyZWMxNWI0NTUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBKYW1lcyBD aGFwbWFuIDxqYWNoYXBtYUByZWRoYXQuY29tPgotRGF0ZTogVGh1LCAyNiBGZWIgMjAyNiAxMjo1 NTo0NyArMDAwMAotU3ViamVjdDogW1BBVENIXSBJc3N1ZSA3Mjg0IC0gQ3JlYXRpbmcgbG9jYWwg cGFzc3dvcmQgcG9saWN5IHN1Y2NlZWRzIHdpdGgKLSBpbmNvcnJlY3QgcGFzc3dvcmRJbkhpc3Rv cnkgdmFsdWUgKCM3Mjg1KQotCi1EZXNjcmlwdGlvbjoKLWF0dHJfY2hlY2tfbWlubWF4IHVzZWQg c3RydG9sKHZhbHVlLCBOVUxMLCAwKSwgd2hpY2ggc2lsZW50bHkgY29udmVydGVkCi1pbnZhbGlk IHN0cmluZ3MgdG8gMCwgcGFzc2luZyBzdWJzZXF1ZW50IHJhbmdlIGNoZWNrcy4KLQotRml4Ogot QWRkIGNoZWNrcyBmb3IgTlVMTCBvciBlbXB0eSB2YWx1ZXMgYW5kIHVzZXMgc3RydG9sIHdpdGgg ZW5kcHRyIHRvCi12YWxpZGF0ZSBpbnQgaW5wdXQgYmVmb3JlIHJhbmdlIGNoZWNrcy4KLQotRml4 ZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS8zODlkcy8zODktZHMtYmFzZS9pc3N1ZXMvNzI4NAotCi1S ZXZpZXdlZCBieTogQHZhc2hpcm92LCBAdGJvcmRheiAoVGhhbmsgeW91KQotLS0tCi0gbGRhcC9z ZXJ2ZXJzL3NsYXBkL2F0dHIuYyB8IDE0ICsrKysrKysrKysrKystCi0gMSBmaWxlIGNoYW5nZWQs IDEzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL2xkYXAvc2Vy dmVycy9zbGFwZC9hdHRyLmMgYi9sZGFwL3NlcnZlcnMvc2xhcGQvYXR0ci5jCi1pbmRleCBmNWVh MjJlYjUuLmNhMmViNjJjMyAxMDA2NDQKLS0tLSBhL2xkYXAvc2VydmVycy9zbGFwZC9hdHRyLmMK LSsrKyBiL2xkYXAvc2VydmVycy9zbGFwZC9hdHRyLmMKLUBAIC05MzIsOCArOTMyLDIwIEBAIGF0 dHJfY2hlY2tfbWlubWF4KGNvbnN0IGNoYXIgKmF0dHJfbmFtZSwgY2hhciAqdmFsdWUsIGxvbmcg bWludmFsLCBsb25nIG1heHZhbCwKLSB7Ci0gICAgIGludCByZXRWYWwgPSBMREFQX1NVQ0NFU1M7 Ci0gICAgIGxvbmcgdmFsOwotKyAgICBjaGFyICplbmRwdHIgPSBOVUxMOwotKwotKyAgICBpZiAo IXZhbHVlIHx8ICp2YWx1ZSA9PSAnXDAnKSB7Ci0rICAgICAgICBzbGFwaV9jcmVhdGVfZXJyb3Jt c2coZXJyb3JidWYsIGVidWZsZW4sICIlczogYXR0ciB2YWx1ZSBpcyBOVUxMLiIsIGF0dHJfbmFt ZSk7Ci0rICAgICAgICByZXR1cm4gTERBUF9DT05TVFJBSU5UX1ZJT0xBVElPTjsKLSsgICAgfQot KwotKyAgICBlcnJubyA9IDA7Ci0rICAgIHZhbCA9IHN0cnRvbCh2YWx1ZSwgJmVuZHB0ciwgMCk7 Ci0rICAgIGlmIChlbmRwdHIgPT0gdmFsdWUgfHwgKmVuZHB0ciAhPSAnXDAnIHx8IGVycm5vICE9 IDApIHsKLSsgICAgICAgIHNsYXBpX2NyZWF0ZV9lcnJvcm1zZyhlcnJvcmJ1ZiwgZWJ1Zmxlbiwg IiVzOiBpbnZhbGlkIHZhbHVlIFwiJXNcIi4iLCBhdHRyX25hbWUsIHZhbHVlKTsKLSsgICAgICAg IHJldHVybiBMREFQX0NPTlNUUkFJTlRfVklPTEFUSU9OOwotKyAgICB9Ci0gCi0tICAgIHZhbCA9 IHN0cnRvbCh2YWx1ZSwgTlVMTCwgMCk7Ci0gICAgIGlmICgobWludmFsICE9IC0xID8gKHZhbCA8 IG1pbnZhbCA/IDEgOiAwKSA6IDApIHx8Ci0gICAgICAgICAobWF4dmFsICE9IC0xID8gKHZhbCA+ IG1heHZhbCA/IDEgOiAwKSA6IDApKSB7Ci0gICAgICAgICBzbGFwaV9jcmVhdGVfZXJyb3Jtc2co ZXJyb3JidWYsIGVidWZsZW4sICIlczogaW52YWxpZCB2YWx1ZSBcIiVzXCIuIiwgYXR0cl9uYW1l LCB2YWx1ZSk7Ci0tLSAKLTIuNTMuMAotCgpkaWZmIC0tZ2l0IGEvMzg5LWRzLWJhc2Uuc3BlYyBi LzM4OS1kcy1iYXNlLnNwZWMKaW5kZXggZTczMDJhMC4uOTJmMTVmZSAxMDA2NDQKLS0tIGEvMzg5 LWRzLWJhc2Uuc3BlYworKysgYi8zODktZHMtYmFzZS5zcGVjCkBAIC01MywxMiArNTMsMTUgQEAg RXhjbHVkZUFyY2g6IGk2ODYKIAogJWlmICV7d2l0aCBjbGFuZ30KICVnbG9iYWwgdG9vbGNoYWlu IGNsYW5nCi0lZ2xvYmFsIF9taXNzaW5nX2J1aWxkX2lkc190ZXJtaW5hdGVfYnVpbGQgMAorJWds b2JhbCBfbHRvX2NmbGFncyAlbmlsCiAlZW5kaWYKIAogIyBCdWlsZCBjb2NrcGl0IHBsdWdpbgog JWJjb25kIGNvY2twaXQgMQogCisjIEJ1aWxkIEhJQlAgcGFzc3dvcmQgYnJlYWNoIGNoZWNraW5n IChyZXF1aXJlcyBsaWJjdXJsKQorJWJjb25kIGhpYnAgMQorCiAjIGZlZG9yYSAxNSBhbmQgbGF0 ZXIgdXNlcyB0bXBmaWxlcy5kCiAjIG90aGVyd2lzZSwgY29tbWVudCB0aGlzIG91dAogJXshP3dp dGhfdG1wZmlsZXNfZDogJWdsb2JhbCB3aXRoX3RtcGZpbGVzX2QgJXtfc3lzY29uZmRpcn0vdG1w ZmlsZXMuZH0KQEAgLTc1LDkgKzc4LDkgQEAgRXhjbHVkZUFyY2g6IGk2ODYKIAogU3VtbWFyeTog ICAgICAgICAgMzg5IERpcmVjdG9yeSBTZXJ2ZXIgKCV7dmFyaWFudH0pCiBOYW1lOiAgICAgICAg ICAgICAzODktZHMtYmFzZQotVmVyc2lvbjogICAgICAgICAgMy4yLjEKK1ZlcnNpb246ICAgICAg ICAgIDMuMy4wCiBSZWxlYXNlOiAgICAgICAgICAle2F1dG9yZWxlYXNlIC1uICV7P3dpdGhfYXNh bjotZSBhc2FufX0lez9kaXN0fQotTGljZW5zZTogICAgICAgICAgR1BMLTMuMC1vci1sYXRlciBX SVRIIEdQTC0zLjAtMzg5LWRzLWJhc2UtZXhjZXB0aW9uIEFORCAoQXBhY2hlLTIuMCBPUiBBcGFj aGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24gT1IgTUlUKSBBTkQgKEFwYWNoZS0yLjAgT1IgTEdQ TC0yLjEtb3ItbGF0ZXIgT1IgTUlUKSBBTkQgKEFwYWNoZS0yLjAgT1IgTUlUKSBBTkQgKENDLUJZ LTQuMCBBTkQgTUlUKSBBTkQgKE1JVCBPUiBBcGFjaGUtMi4wKSBBTkQgVW5pY29kZS0zLjAgQU5E IChNSVQgT1IgQ0MwLTEuMCkgQU5EIChNSVQgT1IgVW5saWNlbnNlKSBBTkQgMEJTRCBBTkQgQXBh Y2hlLTIuMCBBTkQgQlNELTItQ2xhdXNlIEFORCBCU0QtMy1DbGF1c2UgQU5EIElTQyBBTkQgTUlU IEFORCBNSVQgQU5EIElTQyBBTkQgTVBMLTIuMCBBTkQgUFNGLTIuMCBBTkQgWmxpYgorTGljZW5z ZTogICAgICAgICAgR1BMLTMuMC1vci1sYXRlciBXSVRIIEdQTC0zLjAtMzg5LWRzLWJhc2UtZXhj ZXB0aW9uIEFORCAoQXBhY2hlLTIuMCBPUiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24g T1IgTUlUKSBBTkQgKEFwYWNoZS0yLjAgT1IgTEdQTC0yLjEtb3ItbGF0ZXIgT1IgTUlUKSBBTkQg KEFwYWNoZS0yLjAgT1IgTUlUKSBBTkQgKENDLUJZLTQuMCBBTkQgTUlUKSBBTkQgKE1JVCBPUiBB cGFjaGUtMi4wKSBBTkQgVW5pY29kZS0zLjAgQU5EIChNSVQgT1IgVW5saWNlbnNlKSBBTkQgMEJT RCBBTkQgQXBhY2hlLTIuMCBBTkQgQlNELTMtQ2xhdXNlIEFORCBJU0MgQU5EIE1JVCBBTkQgTUlU IEFORCBJU0MgQU5EIE1QTC0yLjAgQU5EIFpsaWIKIFVSTDogICAgICAgICAgICAgIGh0dHBzOi8v d3d3LnBvcnQzODkub3JnCiBPYnNvbGV0ZXM6ICAgICAgICAle25hbWV9LWxlZ2FjeS10b29scyA8 IDEuNC40LjYKIE9ic29sZXRlczogICAgICAgICV7bmFtZX0tbGVnYWN5LXRvb2xzLWRlYnVnaW5m byA8IDEuNC40LjYKQEAgLTg3LDEzICs5MCwxMyBAQCBQcm92aWRlczogICAgICAgICBsZGlmMmxk Ym0gPj0gMAogUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKGFsbG9jYXRvci1hcGkyKSkgPSAwLjIu MjEKIFByb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZShhbnlob3cpKSA9IDEuMC4xMDIKIFByb3ZpZGVz OiAgYnVuZGxlZChjcmF0ZShhdHR5KSkgPSAwLjIuMTQKLVByb3ZpZGVzOiAgYnVuZGxlZChjcmF0 ZShhdXRvY2ZnKSkgPSAxLjUuMAorUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKGF1dG9jZmcpKSA9 IDEuNS4xCiBQcm92aWRlczogIGJ1bmRsZWQoY3JhdGUoYmFzZTY0KSkgPSAwLjEzLjEKLVByb3Zp ZGVzOiAgYnVuZGxlZChjcmF0ZShiaXRmbGFncykpID0gMi4xMS4wCi1Qcm92aWRlczogIGJ1bmRs ZWQoY3JhdGUoYnVtcGFsbykpID0gMy4yMC4yCitQcm92aWRlczogIGJ1bmRsZWQoY3JhdGUoYml0 ZmxhZ3MpKSA9IDIuMTIuMQorUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKGJ1bXBhbG8pKSA9IDMu MjAuMwogUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKGJ5dGVvcmRlcikpID0gMS41LjAKIFByb3Zp ZGVzOiAgYnVuZGxlZChjcmF0ZShjYmluZGdlbikpID0gMC4yNi4wCi1Qcm92aWRlczogIGJ1bmRs ZWQoY3JhdGUoY2MpKSA9IDEuMi41NgorUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKGNjKSkgPSAx LjIuNjMKIFByb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZShjZmctaWYpKSA9IDEuMC40CiBQcm92aWRl czogIGJ1bmRsZWQoY3JhdGUoY2xhcCkpID0gMy4yLjI1CiBQcm92aWRlczogIGJ1bmRsZWQoY3Jh dGUoY2xhcF9sZXgpKSA9IDAuMi40CkBAIC0xMDMsNzAgKzEwNiw3NCBAQCBQcm92aWRlczogIGJ1 bmRsZWQoY3JhdGUoY3Jvc3NiZWFtLXF1ZXVlKSkgPSAwLjMuMTIKIFByb3ZpZGVzOiAgYnVuZGxl ZChjcmF0ZShjcm9zc2JlYW0tdXRpbHMpKSA9IDAuOC4yMQogUHJvdmlkZXM6ICBidW5kbGVkKGNy YXRlKGVxdWl2YWxlbnQpKSA9IDEuMC4yCiBQcm92aWRlczogIGJ1bmRsZWQoY3JhdGUoZXJybm8p KSA9IDAuMy4xNAotUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKGZhc3RyYW5kKSkgPSAyLjMuMAor UHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKGZhc3RyYW5kKSkgPSAyLjQuMQogUHJvdmlkZXM6ICBi dW5kbGVkKGNyYXRlKGZlcm5ldCkpID0gMC4xLjQKIFByb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZShm aW5kLW1zdmMtdG9vbHMpKSA9IDAuMS45CiBQcm92aWRlczogIGJ1bmRsZWQoY3JhdGUoZm9sZGhh c2gpKSA9IDAuMi4wCiBQcm92aWRlczogIGJ1bmRsZWQoY3JhdGUoZm9yZWlnbi10eXBlcykpID0g MC4zLjIKIFByb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZShmb3JlaWduLXR5cGVzLXNoYXJlZCkpID0g MC4xLjEKLVByb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZShnZXRyYW5kb20pKSA9IDAuNC4xCi1Qcm92 aWRlczogIGJ1bmRsZWQoY3JhdGUoaGFzaGJyb3duKSkgPSAwLjE2LjEKK1Byb3ZpZGVzOiAgYnVu ZGxlZChjcmF0ZShmdXR1cmVzLWNvcmUpKSA9IDAuMy4zMgorUHJvdmlkZXM6ICBidW5kbGVkKGNy YXRlKGZ1dHVyZXMtdGFzaykpID0gMC4zLjMyCitQcm92aWRlczogIGJ1bmRsZWQoY3JhdGUoZnV0 dXJlcy11dGlsKSkgPSAwLjMuMzIKK1Byb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZShnZXRyYW5kb20p KSA9IDAuNC4yCitQcm92aWRlczogIGJ1bmRsZWQoY3JhdGUoaGFzaGJyb3duKSkgPSAwLjE3LjEK IFByb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZShoZWNrKSkgPSAwLjUuMAogUHJvdmlkZXM6ICBidW5k bGVkKGNyYXRlKGhlcm1pdC1hYmkpKSA9IDAuMS4xOQogUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRl KGlkLWFyZW5hKSkgPSAyLjMuMAotUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKGluZGV4bWFwKSkg PSAyLjEzLjAKLVByb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZShpdG9hKSkgPSAxLjAuMTcKK1Byb3Zp ZGVzOiAgYnVuZGxlZChjcmF0ZShpbmRleG1hcCkpID0gMi4xNC4wCitQcm92aWRlczogIGJ1bmRs ZWQoY3JhdGUoaXRvYSkpID0gMS4wLjE4CiBQcm92aWRlczogIGJ1bmRsZWQoY3JhdGUoam9ic2Vy dmVyKSkgPSAwLjEuMzQKLVByb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZShqcy1zeXMpKSA9IDAuMy45 NQorUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKGpzLXN5cykpID0gMC4zLjk5CiBQcm92aWRlczog IGJ1bmRsZWQoY3JhdGUobGViMTI4Zm10KSkgPSAwLjEuMAotUHJvdmlkZXM6ICBidW5kbGVkKGNy YXRlKGxpYmMpKSA9IDAuMi4xODIKLVByb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZShsaW51eC1yYXct c3lzKSkgPSAwLjExLjAKLVByb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZShsb2cpKSA9IDAuNC4yOQot UHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKGxydSkpID0gMC4xNi4zCi1Qcm92aWRlczogIGJ1bmRs ZWQoY3JhdGUobWVtY2hyKSkgPSAyLjguMAotUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKG9uY2Vf Y2VsbCkpID0gMS4yMS4zCi1Qcm92aWRlczogIGJ1bmRsZWQoY3JhdGUob3BlbnNzbCkpID0gMC4x MC43OAorUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKGxpYmMpKSA9IDAuMi4xODYKK1Byb3ZpZGVz OiAgYnVuZGxlZChjcmF0ZShsaW51eC1yYXctc3lzKSkgPSAwLjEyLjEKK1Byb3ZpZGVzOiAgYnVu ZGxlZChjcmF0ZShsb2cpKSA9IDAuNC4zMQorUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKGxydSkp ID0gMC4xNi40CitQcm92aWRlczogIGJ1bmRsZWQoY3JhdGUobWVtY2hyKSkgPSAyLjguMQorUHJv dmlkZXM6ICBidW5kbGVkKGNyYXRlKG9uY2VfY2VsbCkpID0gMS4yMS40CitQcm92aWRlczogIGJ1 bmRsZWQoY3JhdGUob3BlbnNzbCkpID0gMC4xMC44MAogUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRl KG9wZW5zc2wtbWFjcm9zKSkgPSAwLjEuMQotUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKG9wZW5z c2wtc3lzKSkgPSAwLjkuMTE0CitQcm92aWRlczogIGJ1bmRsZWQoY3JhdGUob3BlbnNzbC1zeXMp KSA9IDAuOS4xMTYKIFByb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZShvc19zdHJfYnl0ZXMpKSA9IDYu Ni4xCiBQcm92aWRlczogIGJ1bmRsZWQoY3JhdGUocGFzdGUpKSA9IDEuMC4xNQotUHJvdmlkZXM6 ICBidW5kbGVkKGNyYXRlKHBpbi1wcm9qZWN0LWxpdGUpKSA9IDAuMi4xNgotUHJvdmlkZXM6ICBi dW5kbGVkKGNyYXRlKHBrZy1jb25maWcpKSA9IDAuMy4zMgorUHJvdmlkZXM6ICBidW5kbGVkKGNy YXRlKHBpbi1wcm9qZWN0LWxpdGUpKSA9IDAuMi4xNworUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRl KHBrZy1jb25maWcpKSA9IDAuMy4zMwogUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKHByZXR0eXBs ZWFzZSkpID0gMC4yLjM3CiBQcm92aWRlczogIGJ1bmRsZWQoY3JhdGUocHJvYy1tYWNybzIpKSA9 IDEuMC4xMDYKLVByb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZShxdW90ZSkpID0gMS4wLjQ0Ci1Qcm92 aWRlczogIGJ1bmRsZWQoY3JhdGUoci1lZmkpKSA9IDUuMy4wCi1Qcm92aWRlczogIGJ1bmRsZWQo Y3JhdGUocnVzdGl4KSkgPSAxLjEuMworUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKHF1b3RlKSkg PSAxLjAuNDUKK1Byb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZShyLWVmaSkpID0gNi4wLjAKK1Byb3Zp ZGVzOiAgYnVuZGxlZChjcmF0ZShydXN0aXgpKSA9IDEuMS40CiBQcm92aWRlczogIGJ1bmRsZWQo Y3JhdGUocnVzdHZlcnNpb24pKSA9IDEuMC4yMgotUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKHNl bXZlcikpID0gMS4wLjI3CitQcm92aWRlczogIGJ1bmRsZWQoY3JhdGUoc2VtdmVyKSkgPSAxLjAu MjgKIFByb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZShzZXJkZSkpID0gMS4wLjIyOAogUHJvdmlkZXM6 ICBidW5kbGVkKGNyYXRlKHNlcmRlX2NvcmUpKSA9IDEuMC4yMjgKIFByb3ZpZGVzOiAgYnVuZGxl ZChjcmF0ZShzZXJkZV9kZXJpdmUpKSA9IDEuMC4yMjgKLVByb3ZpZGVzOiAgYnVuZGxlZChjcmF0 ZShzZXJkZV9qc29uKSkgPSAxLjAuMTQ5Ci1Qcm92aWRlczogIGJ1bmRsZWQoY3JhdGUoc2hsZXgp KSA9IDEuMy4wCitQcm92aWRlczogIGJ1bmRsZWQoY3JhdGUoc2VyZGVfanNvbikpID0gMS4wLjE1 MAorUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKHNobGV4KSkgPSAyLjAuMQorUHJvdmlkZXM6ICBi dW5kbGVkKGNyYXRlKHNsYWIpKSA9IDAuNC4xMgogUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKHNt YWxsdmVjKSkgPSAxLjE1LjEKIFByb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZShzcHRyKSkgPSAwLjMu MgogUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKHN0cnNpbSkpID0gMC4xMC4wCiBQcm92aWRlczog IGJ1bmRsZWQoY3JhdGUoc3luKSkgPSAyLjAuMTE3Ci1Qcm92aWRlczogIGJ1bmRsZWQoY3JhdGUo dGVtcGZpbGUpKSA9IDMuMjUuMAorUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKHRlbXBmaWxlKSkg PSAzLjI3LjAKIFByb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZSh0ZXJtY29sb3IpKSA9IDEuNC4xCiBQ cm92aWRlczogIGJ1bmRsZWQoY3JhdGUodGV4dHdyYXApKSA9IDAuMTYuMgotUHJvdmlkZXM6ICBi dW5kbGVkKGNyYXRlKHRva2lvKSkgPSAxLjQ5LjAKK1Byb3ZpZGVzOiAgYnVuZGxlZChjcmF0ZSh0 b2tpbykpID0gMS41Mi4zCiBQcm92aWRlczogIGJ1bmRsZWQoY3JhdGUodG9tbCkpID0gMC41LjEx CiBQcm92aWRlczogIGJ1bmRsZWQoY3JhdGUodHJhY2luZykpID0gMC4xLjQ0CiBQcm92aWRlczog IGJ1bmRsZWQoY3JhdGUodHJhY2luZy1hdHRyaWJ1dGVzKSkgPSAwLjEuMzEKIFByb3ZpZGVzOiAg YnVuZGxlZChjcmF0ZSh0cmFjaW5nLWNvcmUpKSA9IDAuMS4zNgogUHJvdmlkZXM6ICBidW5kbGVk KGNyYXRlKHVuaWNvZGUtaWRlbnQpKSA9IDEuMC4yNAogUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRl KHVuaWNvZGUteGlkKSkgPSAwLjIuNgotUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKHV1aWQpKSA9 IDEuMjMuMQorUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKHV1aWQpKSA9IDEuMjMuMgogUHJvdmlk ZXM6ICBidW5kbGVkKGNyYXRlKHZjcGtnKSkgPSAwLjIuMTUKIFByb3ZpZGVzOiAgYnVuZGxlZChj cmF0ZSh3YXNpKSkgPSAwLjExLjErd2FzaV9zbmFwc2hvdF9wcmV2aWV3MQotUHJvdmlkZXM6ICBi dW5kbGVkKGNyYXRlKHdhc2lwMikpID0gMS4wLjIrd2FzaV8wLjIuOQorUHJvdmlkZXM6ICBidW5k bGVkKGNyYXRlKHdhc2lwMikpID0gMS4wLjMrd2FzaV8wLjIuOQogUHJvdmlkZXM6ICBidW5kbGVk KGNyYXRlKHdhc2lwMykpID0gMC40LjArd2FzaV8wLjMuMF9yY18yMDI2XzAxXzA2Ci1Qcm92aWRl czogIGJ1bmRsZWQoY3JhdGUod2FzbS1iaW5kZ2VuKSkgPSAwLjIuMTE4Ci1Qcm92aWRlczogIGJ1 bmRsZWQoY3JhdGUod2FzbS1iaW5kZ2VuLW1hY3JvKSkgPSAwLjIuMTE4Ci1Qcm92aWRlczogIGJ1 bmRsZWQoY3JhdGUod2FzbS1iaW5kZ2VuLW1hY3JvLXN1cHBvcnQpKSA9IDAuMi4xMTgKLVByb3Zp ZGVzOiAgYnVuZGxlZChjcmF0ZSh3YXNtLWJpbmRnZW4tc2hhcmVkKSkgPSAwLjIuMTE4CitQcm92 aWRlczogIGJ1bmRsZWQoY3JhdGUod2FzbS1iaW5kZ2VuKSkgPSAwLjIuMTIyCitQcm92aWRlczog IGJ1bmRsZWQoY3JhdGUod2FzbS1iaW5kZ2VuLW1hY3JvKSkgPSAwLjIuMTIyCitQcm92aWRlczog IGJ1bmRsZWQoY3JhdGUod2FzbS1iaW5kZ2VuLW1hY3JvLXN1cHBvcnQpKSA9IDAuMi4xMjIKK1By b3ZpZGVzOiAgYnVuZGxlZChjcmF0ZSh3YXNtLWJpbmRnZW4tc2hhcmVkKSkgPSAwLjIuMTIyCiBQ cm92aWRlczogIGJ1bmRsZWQoY3JhdGUod2FzbS1lbmNvZGVyKSkgPSAwLjI0NC4wCiBQcm92aWRl czogIGJ1bmRsZWQoY3JhdGUod2FzbS1tZXRhZGF0YSkpID0gMC4yNDQuMAogUHJvdmlkZXM6ICBi dW5kbGVkKGNyYXRlKHdhc21wYXJzZXIpKSA9IDAuMjQ0LjAKQEAgLTE3Niw3ICsxODMsNyBAQCBQ cm92aWRlczogIGJ1bmRsZWQoY3JhdGUod2luYXBpLXV0aWwpKSA9IDAuMS4xMQogUHJvdmlkZXM6 ICBidW5kbGVkKGNyYXRlKHdpbmFwaS14ODZfNjQtcGMtd2luZG93cy1nbnUpKSA9IDAuNC4wCiBQ cm92aWRlczogIGJ1bmRsZWQoY3JhdGUod2luZG93cy1saW5rKSkgPSAwLjIuMQogUHJvdmlkZXM6 ICBidW5kbGVkKGNyYXRlKHdpbmRvd3Mtc3lzKSkgPSAwLjYxLjIKLVByb3ZpZGVzOiAgYnVuZGxl ZChjcmF0ZSh3aXQtYmluZGdlbikpID0gMC41MS4wCitQcm92aWRlczogIGJ1bmRsZWQoY3JhdGUo d2l0LWJpbmRnZW4pKSA9IDAuNTcuMQogUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKHdpdC1iaW5k Z2VuLWNvcmUpKSA9IDAuNTEuMAogUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKHdpdC1iaW5kZ2Vu LXJ1c3QpKSA9IDAuNTEuMAogUHJvdmlkZXM6ICBidW5kbGVkKGNyYXRlKHdpdC1iaW5kZ2VuLXJ1 c3QtbWFjcm8pKSA9IDAuNTEuMApAQCAtMTk3LDEzICsyMDQsMTMgQEAgUHJvdmlkZXM6ICBidW5k bGVkKG5wbShAcGF0dGVybmZseS9yZWFjdC1sb2ctdmlld2VyKSkgPSA1LjMuMAogUHJvdmlkZXM6 ICBidW5kbGVkKG5wbShAcGF0dGVybmZseS9yZWFjdC1zdHlsZXMpKSA9IDUuNC4wCiBQcm92aWRl czogIGJ1bmRsZWQobnBtKEBwYXR0ZXJuZmx5L3JlYWN0LXRhYmxlKSkgPSA1LjQuMQogUHJvdmlk ZXM6ICBidW5kbGVkKG5wbShAcGF0dGVybmZseS9yZWFjdC10b2tlbnMpKSA9IDUuNC4wCi1Qcm92 aWRlczogIGJ1bmRsZWQobnBtKEB0eXBlcy9kMy1hcnJheSkpID0gMy4yLjEKK1Byb3ZpZGVzOiAg YnVuZGxlZChucG0oQHR5cGVzL2QzLWFycmF5KSkgPSAzLjIuMgogUHJvdmlkZXM6ICBidW5kbGVk KG5wbShAdHlwZXMvZDMtY29sb3IpKSA9IDMuMS4zCiBQcm92aWRlczogIGJ1bmRsZWQobnBtKEB0 eXBlcy9kMy1lYXNlKSkgPSAzLjAuMgogUHJvdmlkZXM6ICBidW5kbGVkKG5wbShAdHlwZXMvZDMt aW50ZXJwb2xhdGUpKSA9IDMuMC40CiBQcm92aWRlczogIGJ1bmRsZWQobnBtKEB0eXBlcy9kMy1w YXRoKSkgPSAzLjEuMQogUHJvdmlkZXM6ICBidW5kbGVkKG5wbShAdHlwZXMvZDMtc2NhbGUpKSA9 IDQuMC45Ci1Qcm92aWRlczogIGJ1bmRsZWQobnBtKEB0eXBlcy9kMy1zaGFwZSkpID0gMy4xLjcK K1Byb3ZpZGVzOiAgYnVuZGxlZChucG0oQHR5cGVzL2QzLXNoYXBlKSkgPSAzLjEuOAogUHJvdmlk ZXM6ICBidW5kbGVkKG5wbShAdHlwZXMvZDMtdGltZSkpID0gMy4wLjQKIFByb3ZpZGVzOiAgYnVu ZGxlZChucG0oQHR5cGVzL2QzLXRpbWVyKSkgPSAzLjAuMgogUHJvdmlkZXM6ICBidW5kbGVkKG5w bShAeHRlcm0vYWRkb24tY2FudmFzKSkgPSAwLjcuMApAQCAtMjE1LDcgKzIyMiw3IEBAIFByb3Zp ZGVzOiAgYnVuZGxlZChucG0oY29yZS11dGlsLWlzKSkgPSAxLjAuMwogUHJvdmlkZXM6ICBidW5k bGVkKG5wbShkMy1hcnJheSkpID0gMy4yLjQKIFByb3ZpZGVzOiAgYnVuZGxlZChucG0oZDMtY29s b3IpKSA9IDMuMS4wCiBQcm92aWRlczogIGJ1bmRsZWQobnBtKGQzLWVhc2UpKSA9IDMuMC4xCi1Q cm92aWRlczogIGJ1bmRsZWQobnBtKGQzLWZvcm1hdCkpID0gMy4xLjAKK1Byb3ZpZGVzOiAgYnVu ZGxlZChucG0oZDMtZm9ybWF0KSkgPSAzLjEuMgogUHJvdmlkZXM6ICBidW5kbGVkKG5wbShkMy1p bnRlcnBvbGF0ZSkpID0gMy4wLjEKIFByb3ZpZGVzOiAgYnVuZGxlZChucG0oZDMtcGF0aCkpID0g My4xLjAKIFByb3ZpZGVzOiAgYnVuZGxlZChucG0oZDMtc2NhbGUpKSA9IDQuMC4yCkBAIC0yNDAs MTUgKzI0NywxNiBAQCBQcm92aWRlczogIGJ1bmRsZWQobnBtKGpzLXNoYTI1NikpID0gMC4xMS4w CiBQcm92aWRlczogIGJ1bmRsZWQobnBtKGpzLXRva2VucykpID0gNC4wLjAKIFByb3ZpZGVzOiAg YnVuZGxlZChucG0oanNvbi1zdGFibGUtc3RyaW5naWZ5LXdpdGhvdXQtanNvbmlmeSkpID0gMS4w LjEKIFByb3ZpZGVzOiAgYnVuZGxlZChucG0oanNvbi1zdHJpbmdpZnktc2FmZSkpID0gNS4wLjEK LVByb3ZpZGVzOiAgYnVuZGxlZChucG0obG9kYXNoKSkgPSA0LjE3LjIzCitQcm92aWRlczogIGJ1 bmRsZWQobnBtKGxvZGFzaCkpID0gNC4xOC4xCiBQcm92aWRlczogIGJ1bmRsZWQobnBtKGxvb3Nl LWVudmlmeSkpID0gMS40LjAKIFByb3ZpZGVzOiAgYnVuZGxlZChucG0obWVtb2l6ZS1vbmUpKSA9 IDUuMi4xCiBQcm92aWRlczogIGJ1bmRsZWQobnBtKG9iamVjdC1hc3NpZ24pKSA9IDQuMS4xCitQ cm92aWRlczogIGJ1bmRsZWQobnBtKHByZXR0aWVyKSkgPSAzLjguMwogUHJvdmlkZXM6ICBidW5k bGVkKG5wbShwcm9jZXNzLW5leHRpY2stYXJncykpID0gMi4wLjEKIFByb3ZpZGVzOiAgYnVuZGxl ZChucG0ocHJvcC10eXBlcykpID0gMTUuOC4xCiBQcm92aWRlczogIGJ1bmRsZWQobnBtKHJlYWN0 KSkgPSAxOC4zLjEKIFByb3ZpZGVzOiAgYnVuZGxlZChucG0ocmVhY3QtZG9tKSkgPSAxOC4zLjEK LVByb3ZpZGVzOiAgYnVuZGxlZChucG0ocmVhY3QtZHJvcHpvbmUpKSA9IDE0LjMuOAorUHJvdmlk ZXM6ICBidW5kbGVkKG5wbShyZWFjdC1kcm9wem9uZSkpID0gMTQuNC4xCiBQcm92aWRlczogIGJ1 bmRsZWQobnBtKHJlYWN0LWZhc3QtY29tcGFyZSkpID0gMy4yLjIKIFByb3ZpZGVzOiAgYnVuZGxl ZChucG0ocmVhY3QtaXMpKSA9IDE2LjEzLjEKIFByb3ZpZGVzOiAgYnVuZGxlZChucG0ocmVhZGFi bGUtc3RyZWFtKSkgPSAyLjMuOApAQCAtMjU4LDExICsyNjYsMTEgQEAgUHJvdmlkZXM6ICBidW5k bGVkKG5wbShzYWZlci1idWZmZXIpKSA9IDIuMS4yCiBQcm92aWRlczogIGJ1bmRsZWQobnBtKHNj aGVkdWxlcikpID0gMC4yMy4yCiBQcm92aWRlczogIGJ1bmRsZWQobnBtKHNwcmludGYtanMpKSA9 IDEuMC4zCiBQcm92aWRlczogIGJ1bmRsZWQobnBtKHN0cmluZ19kZWNvZGVyKSkgPSAxLjEuMQot UHJvdmlkZXM6ICBidW5kbGVkKG5wbSh0YWJiYWJsZSkpID0gNi4yLjAKK1Byb3ZpZGVzOiAgYnVu ZGxlZChucG0odGFiYmFibGUpKSA9IDYuNC4wCiBQcm92aWRlczogIGJ1bmRsZWQobnBtKHRocm90 dGxlLWRlYm91bmNlKSkgPSA1LjAuMgogUHJvdmlkZXM6ICBidW5kbGVkKG5wbSh0c2xpYikpID0g Mi44LjEKIFByb3ZpZGVzOiAgYnVuZGxlZChucG0odXRpbC1kZXByZWNhdGUpKSA9IDEuMC4yCi1Q cm92aWRlczogIGJ1bmRsZWQobnBtKHV1aWQpKSA9IDEwLjAuMAorUHJvdmlkZXM6ICBidW5kbGVk KG5wbSh1dWlkKSkgPSAxNC4wLjAKIFByb3ZpZGVzOiAgYnVuZGxlZChucG0odmljdG9yeS1hcmVh KSkgPSAzNy4zLjYKIFByb3ZpZGVzOiAgYnVuZGxlZChucG0odmljdG9yeS1heGlzKSkgPSAzNy4z LjYKIFByb3ZpZGVzOiAgYnVuZGxlZChucG0odmljdG9yeS1iYXIpKSA9IDM3LjMuNgpAQCAtMzI4 LDYgKzMzNiw5IEBAIEJ1aWxkUmVxdWlyZXM6ICAgIGxpYmRiLWRldmVsCiBCdWlsZFJlcXVpcmVz OiAgICBuZXQtc25tcC1kZXZlbAogQnVpbGRSZXF1aXJlczogICAgYnppcDItZGV2ZWwKIEJ1aWxk UmVxdWlyZXM6ICAgIG9wZW5zc2wtZGV2ZWwKKyVpZiAle3dpdGggaGlicH0KK0J1aWxkUmVxdWly ZXM6ICAgIGxpYmN1cmwtZGV2ZWwKKyVlbmRpZgogIyB0aGUgZm9sbG93aW5nIGlzIGZvciB0aGUg cGFtIHBhc3N0aHJ1IGF1dGggcGx1Zy1pbgogQnVpbGRSZXF1aXJlczogICAgcGFtLWRldmVsCiBC dWlsZFJlcXVpcmVzOiAgICBzeXN0ZW1kLXVuaXRzCkBAIC00MzgsOCArNDQ5LDcgQEAgUGxlYXNl IHNlZSBodHRwOi8vc2VjbGlzdHMub3JnL29zcy1zZWMvMjAxNi9xMS8zNjMgZm9yIG1vcmUgaW5m b3JtYXRpb24uCiAlaWYgJXt3aXRoIGxpYmJkYl9yb30KICVwYWNrYWdlICAgICAgICByb2JkYi1s aWJzCiBTdW1tYXJ5OiAgICAgICAgUmVhZC1vbmx5IEJlcmtlbGV5IERhdGFiYXNlIExpYnJhcnkK LSMgSU1QT1JUQU5UIC0gQ2hlY2sgaWYgaXQgbG9va3MgcmlnaHQuIEFkZGl0aW9uYWxseSwgY29t cGFyZSB3aXRoIHRoZSBvcmlnaW5hbCBsaW5lLiBUaGVuLCByZW1vdmUgdGhpcyBjb21tZW50IGFu ZCAjIEZJWE1FIC0gcGFydC4KLSMgRklYTUUgLSBMaWNlbnNlOiAgICAgICAgICBHUEwtMy4wLW9y LWxhdGVyIFdJVEggR1BMLTMuMC0zODktZHMtYmFzZS1leGNlcHRpb24gQU5EIChBcGFjaGUtMi4w IE9SIEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbiBPUiBNSVQpIEFORCAoQXBhY2hlLTIu MCBPUiBMR1BMLTIuMS1vci1sYXRlciBPUiBNSVQpIEFORCAoQXBhY2hlLTIuMCBPUiBNSVQpIEFO RCAoQXBhY2hlLTIuMCBPUiBNSVQpIEFORCBVbmljb2RlLTMuMCBBTkQgKENDLUJZLTQuMCBBTkQg TUlUKSBBTkQgKE1JVCBPUiBVbmxpY2Vuc2UpIEFORCAwQlNEIEFORCBBcGFjaGUtMi4wIEFORCBC U0QtMy1DbGF1c2UgQU5EIElTQyBBTkQgTUlUIEFORCBNSVQgQU5EIElTQyBBTkQgTVBMLTIuMCBB TkQgWmxpYgorTGljZW5zZTogICAgICAgICAgR1BMLTMuMC1vci1sYXRlciBXSVRIIEdQTC0zLjAt Mzg5LWRzLWJhc2UtZXhjZXB0aW9uIEFORCAoQXBhY2hlLTIuMCBPUiBBcGFjaGUtMi4wIFdJVEgg TExWTS1leGNlcHRpb24gT1IgTUlUKSBBTkQgKEFwYWNoZS0yLjAgT1IgTEdQTC0yLjEtb3ItbGF0 ZXIgT1IgTUlUKSBBTkQgKEFwYWNoZS0yLjAgT1IgTUlUKSBBTkQgKENDLUJZLTQuMCBBTkQgTUlU KSBBTkQgKE1JVCBPUiBBcGFjaGUtMi4wKSBBTkQgVW5pY29kZS0zLjAgQU5EIChNSVQgT1IgQ0Mw LTEuMCkgQU5EIChNSVQgT1IgVW5saWNlbnNlKSBBTkQgMEJTRCBBTkQgQXBhY2hlLTIuMCBBTkQg QlNELTItQ2xhdXNlIEFORCBCU0QtMy1DbGF1c2UgQU5EIElTQyBBTkQgTUlUIEFORCBNSVQgQU5E IElTQyBBTkQgTVBMLTIuMCBBTkQgUFNGLTIuMCBBTkQgWmxpYgogCiAlZGVzY3JpcHRpb24gICAg cm9iZGItbGlicwogVGhlICV7bmFtZX0tcm9iZGItbGliIHBhY2thZ2UgY29udGFpbnMgYSBsaWJy YXJ5IGRlcml2ZWQgZnJvbSBycG0KQEAgLTY3Niw2ICs2ODYsOSBAQCBhdXRvcmVjb25mIC1maXYK ICVpZiAwJXs/ZmVkb3JhfSA+PSAzNCB8fCAwJXs/cmhlbH0gPj0gOQogICAgICAgICAgICAtLXdp dGgtbGlibGRhcC1yPW5vIFwKICVlbmRpZgorJWlmICV7d2l0aCBoaWJwfQorCSAgLS1lbmFibGUt aGlicCBcCislZW5kaWYKICAgICAgICAgICAgLS1lbmFibGUtY21vY2thCiAKICMgQXZvaWQgIlVu a25vd24ga2V5IG5hbWUgJ1hYWCcgaW4gc2VjdGlvbiAnU2VydmljZScsIGlnbm9yaW5nLiIgd2Fy bmluZ3MgZnJvbSBzeXN0ZW1kIG9uIG9sZGVyIHJlbGVhc2VzCkBAIC04MjcsOSArODQwLDYgQEAg Zm9yIGRpciBpbiAiJGluc3RiYXNlIi9zbGFwZC0qIDsgZG8KICAgICBlbHNlCiAgICAgICAgZWNo byAiaW5zdGFuY2UgJGluc3QgaXMgbm90IHJ1bm5pbmciID4+ICIkb3V0cHV0IiAyPiYxIHx8IDoK ICAgICBmaQotICAgICMgUnVuIGluZGV4LWNoZWNrIG9uIGFsbCBpbnN0YW5jZXMgKHJ1bm5pbmcg b3Igbm90KQotICAgICMgVGhpcyBmaXhlcyBpbmRleCBvcmRlcmluZyBtaXNtYXRjaGVzIGZyb20g b2xkZXIgdmVyc2lvbnMKLSAgICBkc2N0bCAiJGluc3RfbmFtZSIgaW5kZXgtY2hlY2sgLS1maXgg Pj4gIiRvdXRwdXQyIiAyPiYxIHx8IDoKICAgICBuaW5zdD0kKChuaW5zdCArIDEpKQogZG9uZQog CkBAIC04NjQsOCArODc0LDYgQEAgZmkKICVwb3N0dW4gc25tcAogJXN5c3RlbWRfcG9zdHVuX3dp dGhfcmVzdGFydCAle3BrZ25hbWV9LXNubXAuc2VydmljZQogCi1leGl0IDAKLQogJWZpbGVzIC1m IHBsdWdpbnMubGlzdAogJWlmICV7d2l0aCBidW5kbGVfamVtYWxsb2N9CiAlZG9jIExJQ0VOU0Ug TElDRU5TRS5HUEx2MysgTElDRU5TRS5vcGVuc3NsIFJFQURNRS5qZW1hbGxvYwoKZGlmZiAtLWdp dCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IGM4NmNjYWYuLjU4M2FjNmMgMTAwNjQ0Ci0tLSBh L3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMSw2ICsxLDYgQEAKIFNIQTUxMiAoamVtYWxsb2Mt NS4zLjAudGFyLmJ6MikgPSAyMjkwN2JiMDUyMDk2ZTJjYWZmYjZlNGUyMzU0OGFlY2M1Y2M5Mjgz ZGNlNDc2ODk2YTJiMTEyN2VlZTY0MTcwZTM1NjJmYTJlN2RiOTU3MTI5ODgxNGE3YTJjN2RmNmU4 ZDFmYmUxNTJiZDNmM2IwYzFhYmVjMjJhMmRlMzRiMQogU0hBNTEyIChsaWJkYi01LjMuMjgtNTku dGFyLmJ6MikgPSA3MzFhNDM0ZmEyZTY0ODdlYmIwNWM0NThiMDQzNzQ1NmViOWY3OTkxMjg0YmVi MDhjYjNlMjE5MzFlMjNiZGVkZGRkYmM5NWJmYWJlM2EyZjlmMDI5ZmU2OWNkMzNhMmQ0ZjBmNWNl NmE5ODExZTljM2I5NDBjYjZmZGU0YmY3OQotU0hBNTEyICgzODktZHMtYmFzZS0zLjIuMS50YXIu YnoyKSA9IDRiYTI1NmJhYWU0OGUzMjc4MjljODI1NDM5MzMxMGY4YzU1MWUxM2Q0ZTg5MTA3NmZh MTliZWVmYTkzODE5YWQ2MDU4YTEzMDM1MDRlZWJmNDhhMDljYmZjZWVmMTQ0MjIwODNjNDRlMmIx MzgwNTM1ZWE5MDkwYTRlMjA0ODFlCi1TSEE1MTIgKENhcmdvLTMuMi4xLTEubG9jaykgPSA3N2Fk ZTJkZWFkODZiNjAxZGVkNDFmMDcyYTMwN2ViYzBiNzY2NGE4MzhmZjQyYjIyOWM2YzY0NDY2ZTM1 MjE5ZTZkZjhhMzcyMmM1ZGYzYmJkYTk3MTBmZjg1ODYyYjQ0NzY2YzlmY2VlZTg5NzZlNmYyNmY5 NGJhOGUzMmFiNAotU0hBNTEyICh2ZW5kb3ItMy4yLjEtMS50YXIuZ3opID0gZTY5NGM5NmNkNTQx ZGI1ZDA1Yzg5ZGM5YTAxMjQxOTNiMmQ2Njg1MDM5MzBmMTU1M2NhMjMyMDE4NzZhODQ5MThmYThi YWQ0NTEyZTQyZTA5NTNiOTE0NWUyMzdiYzk0NTFkNTU2MjlmYzdhYjc5ZjRlMjEyYjkwNGMzYTAx MDQKLVNIQTUxMiAoY29ja3BpdF9kaXN0LTMuMi4xLTEudGFyLmJ6MikgPSA5MTE1M2I3N2UwZmJh ODAzMGJlYWY3NDgzYmY3OTk3MDk1NDFmMTFkOTE1YzY4ZGRkODUxYjkyODQxNjliNDE0OTBhMzcz MGJiOGE0OWUwMmMzNmY0ODBhYzFhMmRjNDZhN2RmZTgxMjViYWY1NGE1ZTA1MjRiMjNkMDQ4ZGU1 NAorU0hBNTEyICgzODktZHMtYmFzZS0zLjMuMC50YXIuYnoyKSA9IGU1NDM5NTJiZjk0NzFkMDhk NmFhMWNhMDhlYmJiMTM0MjEwODRhZTU1MmRlMTBmYmE1OTJlMTFkMjk4MGY1ZWY0NDA1OGRlOTg1 YzU2MDEyZTE2YWI4Y2VlMDI4NDFjNjk4MjA0N2FmNjVhYmJhMzRmZWNlYTNiMGE5OTlhM2Q5CitT SEE1MTIgKHZlbmRvci0zLjMuMC0xLnRhci5neikgPSA0OTg2MmYwNzQ2Y2FmNDJmMDBjZDE4YWNj YTEyMTU3MzEyYTVhYjk5YjUzN2IyMzgzNzMzNWQ0NDJkZmYxMWEwODRhYzdmNzM5OWEwZjk0N2Zj MGZiMWYzYTE0YWEyYmVjYmVmZGFmNjBjZTY4YzVkZTFjZTc1MDU1MTZkMTliYQorU0hBNTEyIChD YXJnby0zLjMuMC0xLmxvY2spID0gYzQ2ZWYwZDZkNGZjYTgyZmY5ZTJhNmYxMWU1YzEyYTM4MDhj ODQ5ODZlZDY4YzEzMWJhZDljN2EzYTdlODQ0MWU4OGE3YjYwZTJiZjJiYmQ0OTVmNTEyMjk1NTIw YjlmZDc1ZGU2MjNiMGNlMzNlNTdiMzllZDAyNmNkNzk2ZWMKK1NIQTUxMiAoY29ja3BpdF9kaXN0 LTMuMy4wLTEudGFyLmJ6MikgPSA5YmZhZmQyNGI0MDdiZGZjNTdmMWJjZjRhYjVlMjg4MWEwN2Qw Y2VjMWZmYzU5NmNjYzg0ZjAzZjUxZDk0NzVkNzJmZmRhYTM4MGNlMTE3ZTgzZTQyYWU1YTA4NTE3 MDZjZjQzNTgzODY3Y2VhMGNhY2Q0MzFkMzkwYTgzNDFmYQo=