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: Takao Fujiwara To: git-commits@fedoraproject.org Subject: [rpms/ibus] autotool: Bumped to 1.5.8 Date: Sun, 31 May 2026 02:06:08 GMT Message-ID: <178019316898.1.17815883876756452391.rpms-ibus-6ad2e121a85d@fedoraproject.org> List-ID: X-Git-Repo: rpms/ibus X-Git-Branch: autotool X-Git-Rev: 6ad2e121a85daf7f8cf8e619b7b468b6d3da6eea QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvaWJ1cwpCcmFuY2gg OiBhdXRvdG9vbApDb21taXQgOiA2YWQyZTEyMWE4NWRhZjdmOGNmOGU2MTliN2I0NjhiNmQzZGE2 ZWVhCkF1dGhvciA6IFRha2FvIEZ1aml3YXJhIDx0ZnVqaXdhckByZWRoYXQuY29tPgpEYXRlICAg OiAyMDE0LTA3LTI0VDE1OjE2OjE2KzA5OjAwClN0YXRzICA6ICsyOC8tNjg5MyBpbiAxMCBmaWxl KHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvaWJ1cy9jLzZh ZDJlMTIxYTg1ZGFmN2Y4Y2Y4ZTYxOWI3YjQ2OGI2ZDNkYTZlZWE/YnJhbmNoPWF1dG90b29sCgpM b2c6CkJ1bXBlZCB0byAxLjUuOAoKLS0tCmRpZmYgLS1naXQgYS8uZ2l0aWdub3JlIGIvLmdpdGln bm9yZQppbmRleCA5YmMyNGM2Li45NmZlZTkxIDEwMDY0NAotLS0gYS8uZ2l0aWdub3JlCisrKyBi Ly5naXRpZ25vcmUKQEAgLTM5LDMgKzM5LDQgQEAgaWJ1cy0xLjMuNi50YXIuZ3oKIC9pYnVzLTEu NS41LnRhci5negogL2lidXMtMS41LjYudGFyLmd6CiAvaWJ1cy0xLjUuNy50YXIuZ3oKKy9pYnVz LTEuNS44LnRhci5negoKZGlmZiAtLWdpdCBhL2lidXMtNTMwNzExLXByZWxvYWQtc3lzLnBhdGNo IGIvaWJ1cy01MzA3MTEtcHJlbG9hZC1zeXMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IGQxODY5YzQuLjAwMDAwMDAKLS0tIGEvaWJ1cy01MzA3MTEtcHJlbG9hZC1zeXMucGF0 Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzNTQgKzAsMCBAQAotRnJvbSA5MWY2ZDlmM2QwZmM4NTQ3 MTFjMmJhMTUxYzBkYzUxMDVhMGE5MTUyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTog ZnVqaXdhcmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotRGF0ZTogTW9uLCAxNCBKdWwg MjAxNCAxNjoyMDoyMSArMDkwMAotU3ViamVjdDogW1BBVENIXSBSZWxvYWQgcHJlbG9hZCBlbmdp bmVzIHVudGlsIHVzZXJzIGN1c3RvbWl6ZSB0aGUgbGlzdC4KLQotVGhlIGlkZWEgaXMsIGlmIHVz ZXJzIGRvbid0IGN1c3RvbWl6ZSB0aGUgcHJlbG9hZF9lbmdpbmVzIHdpdGggaWJ1cy1zZXR1cCwK LXVzZXJzIHdvdWxkIHByZWZlciB0byBsb2FkIHRoZSBzeXN0ZW0gZGVmYXVsdCBlbmdpbmVzIGFn YWluIGJ5IGxvZ2luLgotVGhlIGdzZXR0aW5ncyB2YWx1ZSAncHJlbG9hZC1lbmdpbmUtbW9kZScg aXMKLUlCVVNfUFJFTE9BRF9FTkdJTkVfTU9ERV9VU0VSIGJ5IGRlZmF1bHQgYnV0IHNldAotSUJV U19QUkVMT0FEX0VOR0lORV9NT0RFX0xBTkdfUkVMQVRJVkUgZm9yIHRoZSBpbml0aWFsIGxvZ2lu LgotSWYgJ3ByZWxvYWQtZW5naW5lLW1vZGUnIGlzIElCVVNfUFJFTE9BRF9FTkdJTkVfTU9ERV9M QU5HX1JFTEFUSVZFLAotaWJ1cy1kYWVtb24gbG9hZHMgdGhlIHN5c3RlbSBwcmVsb2FkIGVuZ2lu ZXMgYnkgbGFuZ3MuCi1JZiAncHJlbG9hZC1lbmdpbmUtbW9kZScgaXMgSUJVU19QUkVMT0FEX0VO R0lORV9NT0RFX1VTRVIsCi1pYnVzLWRhZW1vbiBkbyBub3QgdXBkYXRlIHRoZSBnc2V0dGluZ3Mg dmFsdWUgJ3ByZWxvYWQtZW5naW5lcycKLU9uIHRoZSBvdGhlciBoYW5kLCBpZiB1c2VycyBlbmFi bGUgdGhlIGN1c3RvbWl6ZWQgZW5naW5lIGNoZWNrYnV0dG9uCi1vbiBpYnVzLXNldHVwLCBpYnVz LXNldHVwIHNldHMgJ3ByZWxvYWQtZW5naW5lLW1vZGUnIGFzCi1JQlVTX1BSRUxPQURfRU5HSU5F X01PREVfVVNFUiBhbmQgdXNlcnMgY2FuIGN1c3RvbWl6ZSB0aGUgdmFsdWUKLSdwcmVsb2FkLWVu Z2luZXMnLgotLS0tCi0gZGF0YS9pYnVzLnNjaGVtYXMuaW4gfCAyNCArKysrKysrKysrKysrKwot IHNldHVwL21haW4ucHkgICAgICAgIHwgNzIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrLS0tLQotIHNldHVwL3NldHVwLnVpICAgICAgIHwgMjIgKysrKysrKysrKystLQotIHNy Yy9pYnVzdHlwZXMuaCAgICAgIHwgMTAgKysrKysrCi0gdWkvZ3RrMy9wYW5lbC52YWxhICAgfCA5 MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCi0g NSBmaWxlcyBjaGFuZ2VkLCAyMTIgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKLQotZGlm ZiAtLWdpdCBhL2RhdGEvaWJ1cy5zY2hlbWFzLmluIGIvZGF0YS9pYnVzLnNjaGVtYXMuaW4KLWlu ZGV4IDFlNDc3NmIuLjllZTBiMWEgMTAwNjQ0Ci0tLS0gYS9kYXRhL2lidXMuc2NoZW1hcy5pbgot KysrIGIvZGF0YS9pYnVzLnNjaGVtYXMuaW4KLUBAIC0yLDYgKzIsMzAgQEAKLSA8Z2NvbmZzY2hl bWFmaWxlPgotICAgPHNjaGVtYWxpc3Q+Ci0gICAgIDxzY2hlbWE+Ci0rICAgICAgPGtleT4vc2No ZW1hcy9kZXNrdG9wL2lidXMvZ2VuZXJhbC9wcmVsb2FkX2VuZ2luZV9tb2RlPC9rZXk+Ci0rICAg ICAgPGFwcGx5dG8+L2Rlc2t0b3AvaWJ1cy9nZW5lcmFsL3ByZWxvYWRfZW5naW5lX21vZGU8L2Fw cGx5dG8+Ci0rICAgICAgPG93bmVyPmlidXM8L293bmVyPgotKyAgICAgIDx0eXBlPmludDwvdHlw ZT4KLSsgICAgICA8ZGVmYXVsdD4wPC9kZWZhdWx0PgotKyAgICAgIDxsb2NhbGUgbmFtZT0iQyI+ Ci0rICAgICAgICA8c2hvcnQ+UHJlbG9hZCBlbmdpbmUgbW9kZTwvc2hvcnQ+Ci0rICAgICAgICAg ICAgPGxvbmc+UHJlbG9hZCBlbmdpbmVzIGFyZSBsb2FkZWQgd2l0aCB0aGlzIG1vZGUuCi0rICAg ICAgICAgICAgICAgICAgMCA9IHVzZXIgY3VzdG9taXplZCBlbmdpbmVzLgotKyAgICAgICAgICAg ICAgICAgIDEgPSBsYW5ndWFnZSByZWxhdGVkIGVuZ2luZXMuPC9sb25nPgotKyAgICAgIDwvbG9j YWxlPgotKyAgICA8L3NjaGVtYT4KLSsgICAgPHNjaGVtYT4KLSsgICAgICA8a2V5Pi9zY2hlbWFz L2Rlc2t0b3AvaWJ1cy9nZW5lcmFsL3ByZWxvYWRfZW5naW5lc19pbml0ZWQ8L2tleT4KLSsgICAg ICA8YXBwbHl0bz4vZGVza3RvcC9pYnVzL2dlbmVyYWwvcHJlbG9hZF9lbmdpbmVzX2luaXRlZDwv YXBwbHl0bz4KLSsgICAgICA8b3duZXI+aWJ1czwvb3duZXI+Ci0rICAgICAgPHR5cGU+Ym9vbDwv dHlwZT4KLSsgICAgICA8ZGVmYXVsdD5mYWxzZTwvZGVmYXVsdD4KLSsgICAgICA8bG9jYWxlIG5h bWU9IkMiPgotKyAgICAgICAgPHNob3J0PlRoZSBrZXkgcHJlbG9hZF9lbmdpbmVzIGlzIGluaXRp YWxpemVkPC9zaG9ydD4KLSsgICAgICAgICAgICA8bG9uZz5UaGUga2V5IHByZWxvYWRfZW5naW5l cyBpcyBpbml0aWFsaXplZDwvbG9uZz4KLSsgICAgICA8L2xvY2FsZT4KLSsgICAgPC9zY2hlbWE+ Ci0rICAgIDxzY2hlbWE+Ci0gICAgICAgPGtleT4vc2NoZW1hcy9kZXNrdG9wL2lidXMvZ2VuZXJh bC9wcmVsb2FkX2VuZ2luZXM8L2tleT4KLSAgICAgICA8YXBwbHl0bz4vZGVza3RvcC9pYnVzL2dl bmVyYWwvcHJlbG9hZF9lbmdpbmVzPC9hcHBseXRvPgotICAgICAgIDxvd25lcj5pYnVzPC9vd25l cj4KLWRpZmYgLS1naXQgYS9zZXR1cC9tYWluLnB5IGIvc2V0dXAvbWFpbi5weQotaW5kZXggZGVl N2JlNC4uYTk5MTQzOCAxMDA2NDQKLS0tLSBhL3NldHVwL21haW4ucHkKLSsrKyBiL3NldHVwL21h aW4ucHkKLUBAIC0xOTAsMTYgKzE5MCwzMCBAQCBjbGFzcyBTZXR1cChvYmplY3QpOgotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhY3RpdmUnLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEdpby5TZXR0aW5nc0JpbmRGbGFncy5ERUZBVUxUKQotIAot KyAgICAgICAgIyBzZXQgcHJlbG9hZCBtb2RlCi0rICAgICAgICBwcmVsb2FkX2VuZ2luZV9tb2Rl ID0gXAotKyAgICAgICAgICAgICAgICBzZWxmLl9fc2V0dGluZ3NfZ2VuZXJhbC5nZXRfaW50KCdw cmVsb2FkLWVuZ2luZS1tb2RlJykKLSsgICAgICAgIGJ1dHRvbiA9IHNlbGYuX19idWlsZGVyLmdl dF9vYmplY3QoImNoZWNrYnV0dG9uX3ByZWxvYWRfZW5naW5lX21vZGUiKQotKyAgICAgICAgaGJv eCA9IHNlbGYuX19idWlsZGVyLmdldF9vYmplY3QoImhib3hfY3VzdG9taXplX2FjdGl2ZV9pbnB1 dF9tZXRob2RzIikKLSsgICAgICAgIGlmIHByZWxvYWRfZW5naW5lX21vZGUgPT0gSUJ1cy5QcmVs b2FkRW5naW5lTW9kZS5VU0VSOgotKyAgICAgICAgICAgIGJ1dHRvbi5zZXRfYWN0aXZlKFRydWUp Ci0rICAgICAgICAgICAgaGJveC5zZXRfc2Vuc2l0aXZlKFRydWUpCi0rICAgICAgICBlbHNlOgot KyAgICAgICAgICAgIGJ1dHRvbi5zZXRfYWN0aXZlKEZhbHNlKQotKyAgICAgICAgICAgIGhib3gu c2V0X3NlbnNpdGl2ZShGYWxzZSkKLSsgICAgICAgIGJ1dHRvbi5jb25uZWN0KCd0b2dnbGVkJywK LSsgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX19jaGVja2J1dHRvbl9wcmVsb2FkX2VuZ2lu ZV9tb2RlX3RvZ2dsZWRfY2IpCi0rCi0rICAgICAgICBzZWxmLl9fc2V0dGluZ3NfZ2VuZXJhbC5j b25uZWN0KCdjaGFuZ2VkOjpwcmVsb2FkLWVuZ2luZXMnLAotKyAgICAgICAgICAgICAgICBzZWxm Ll9fc2V0dGluZ3NfZ2VuZXJhbF9wcmVsb2FkX2VuZ2luZXNfY2IpCi0rCi0gICAgICAgICAjIGlu aXQgZW5naW5lIHBhZ2UKLSAgICAgICAgIHNlbGYuX19lbmdpbmVzID0gc2VsZi5fX2J1cy5saXN0 X2VuZ2luZXMoKQotICAgICAgICAgc2VsZi5fX2NvbWJvYm94ID0gc2VsZi5fX2J1aWxkZXIuZ2V0 X29iamVjdCgiY29tYm9ib3hfZW5naW5lcyIpCi0gICAgICAgICBzZWxmLl9fY29tYm9ib3guc2V0 X2VuZ2luZXMoc2VsZi5fX2VuZ2luZXMpCi0gCi0tICAgICAgICB0bXBfZGljdCA9IHt9Ci0tICAg ICAgICBmb3IgZSBpbiBzZWxmLl9fZW5naW5lczoKLS0gICAgICAgICAgICB0bXBfZGljdFtlLmdl dF9uYW1lKCldID0gZQotICAgICAgICAgZW5naW5lX25hbWVzID0gc2VsZi5fX3NldHRpbmdzX2dl bmVyYWwuZ2V0X3N0cnYoJ3ByZWxvYWQtZW5naW5lcycpCi0tICAgICAgICBlbmdpbmVzID0gW3Rt cF9kaWN0W25hbWVdIGZvciBuYW1lIGluIGVuZ2luZV9uYW1lcyBpZiBuYW1lIGluIHRtcF9kaWN0 XQotKyAgICAgICAgZW5naW5lcyA9IHNlbGYuX19nZXRfZW5naW5lX2Rlc2NzX2Zyb21fbmFtZXMo ZW5naW5lX25hbWVzKQotIAotICAgICAgICAgc2VsZi5fX3RyZWV2aWV3ID0gc2VsZi5fX2J1aWxk ZXIuZ2V0X29iamVjdCgidHJlZXZpZXdfZW5naW5lcyIpCi0gICAgICAgICBzZWxmLl9fdHJlZXZp ZXcuc2V0X2VuZ2luZXMoZW5naW5lcykKLUBAIC0yNDksOCArMjYzLDkgQEAgY2xhc3MgU2V0dXAo b2JqZWN0KToKLSAgICAgZGVmIF9fY29tYm9ib3hfbm90aWZ5X2FjdGl2ZV9lbmdpbmVfY2Ioc2Vs ZiwgY29tYm9ib3gsIHByb3BlcnR5KToKLSAgICAgICAgIGVuZ2luZSA9IHNlbGYuX19jb21ib2Jv eC5nZXRfYWN0aXZlX2VuZ2luZSgpCi0gICAgICAgICBidXR0b24gPSBzZWxmLl9fYnVpbGRlci5n ZXRfb2JqZWN0KCJidXR0b25fZW5naW5lX2FkZCIpCi0tICAgICAgICBidXR0b24uc2V0X3NlbnNp dGl2ZSgKLS0gICAgICAgICAgICAgICAgZW5naW5lICE9IE5vbmUgYW5kIGVuZ2luZSBub3QgaW4g c2VsZi5fX3RyZWV2aWV3LmdldF9lbmdpbmVzKCkpCi0rICAgICAgICBidXR0b24uc2V0X3NlbnNp dGl2ZShlbmdpbmUgIT0gTm9uZSBhbmQgXAotKyAgICAgICAgICAgICAgICBlbmdpbmUuZ2V0X25h bWUoKSBub3QgaW4gW2UuZ2V0X25hbWUoKSBmb3IgZSBcCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaW4gc2VsZi5fX3RyZWV2aWV3LmdldF9lbmdpbmVzKCldKQot IAotICAgICBkZWYgX19nZXRfZW5naW5lX3NldHVwX2V4ZWNfYXJncyhzZWxmLCBlbmdpbmUpOgot ICAgICAgICAgYXJncyA9IFtdCi1AQCAtMjcwLDYgKzI4NSwxMyBAQCBjbGFzcyBTZXR1cChvYmpl Y3QpOgotICAgICAgICAgICAgIGFyZ3MuYXBwZW5kKHBhdGguYmFzZW5hbWUoc2V0dXBfcGF0aCkp Ci0gICAgICAgICByZXR1cm4gYXJncwotIAotKyAgICBkZWYgX19nZXRfZW5naW5lX2Rlc2NzX2Zy b21fbmFtZXMoc2VsZiwgZW5naW5lX25hbWVzKToKLSsgICAgICAgIHRtcF9kaWN0ID0ge30KLSsg ICAgICAgIGZvciBlIGluIHNlbGYuX19lbmdpbmVzOgotKyAgICAgICAgICAgIHRtcF9kaWN0W2Uu Z2V0X25hbWUoKV0gPSBlCi0rICAgICAgICBlbmdpbmVzID0gW3RtcF9kaWN0W25hbWVdIGZvciBu YW1lIGluIGVuZ2luZV9uYW1lcyBpZiBuYW1lIGluIHRtcF9kaWN0XQotKyAgICAgICAgcmV0dXJu IGVuZ2luZXMKLSsKLSAgICAgZGVmIF9fdHJlZXZpZXdfbm90aWZ5X2NiKHNlbGYsIHRyZWV2aWV3 LCBwcm9wKToKLSAgICAgICAgIGlmIHByb3AubmFtZSBub3QgaW4gKCJhY3RpdmUtZW5naW5lIiwg ImVuZ2luZXMiKToKLSAgICAgICAgICAgICByZXR1cm4KLUBAIC0zMjEsNiArMzQzLDQ0IEBAIGNs YXNzIFNldHVwKG9iamVjdCk6Ci0gICAgICAgICAgICAgZGVsIHNlbGYuX19lbmdpbmVfc2V0dXBf ZXhlY19saXN0W25hbWVdCi0gICAgICAgICBzZWxmLl9fZW5naW5lX3NldHVwX2V4ZWNfbGlzdFtu YW1lXSA9IG9zLnNwYXdubChvcy5QX05PV0FJVCwgKmFyZ3MpCi0gCi0rICAgIGRlZiBfX2NoZWNr YnV0dG9uX3ByZWxvYWRfZW5naW5lX21vZGVfdG9nZ2xlZF9jYihzZWxmLCBidXR0b24pOgotKyAg ICAgICAgaWYgYnV0dG9uLmdldF9hY3RpdmUoKToKLSsgICAgICAgICAgICBzZWxmLl9fc2V0dGlu Z3NfZ2VuZXJhbC5zZXRfaW50KCdwcmVsb2FkLWVuZ2luZS1tb2RlJywKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElCdXMuUHJlbG9hZEVuZ2luZU1vZGUuVVNF UikKLSsgICAgICAgICAgICBzZWxmLl9fYnVpbGRlci5nZXRfb2JqZWN0KAotKyAgICAgICAgICAg ICAgICAgICAgImhib3hfY3VzdG9taXplX2FjdGl2ZV9pbnB1dF9tZXRob2RzIikuc2V0X3NlbnNp dGl2ZShUcnVlKQotKyAgICAgICAgICAgIHNlbGYuX190cmVldmlldy5ub3RpZnkoJ2VuZ2luZXMn KQotKyAgICAgICAgZWxzZToKLSsgICAgICAgICAgICBtZXNzYWdlID0gXygiVGhlIGxpc3Qgb2Yg eW91ciBzYXZlZCBpbnB1dCBtZXRob2RzIHdpbGwgYmUgIiBcCi0rICAgICAgICAgICAgICAgICAg ICAgICAgImNsZWFyZWQgaW1tZWRpYXRlbHkgYW5kIHRoZSBsaXN0IHdpbGwgYmUgIiBcCi0rICAg ICAgICAgICAgICAgICAgICAgICAgImNvbmZpZ3VyZWQgYnkgdGhlIGxvZ2luIGxhbmd1YWdlIGV2 ZXJ5IHRpbWUuICIgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICJEbyB5b3UgYWdyZWUgd2l0 aCB0aGlzPyIpCi0rICAgICAgICAgICAgZGxnID0gR3RrLk1lc3NhZ2VEaWFsb2cobWVzc2FnZV90 eXBlID0gR3RrLk1lc3NhZ2VUeXBlLlFVRVNUSU9OLAotKyAgICAgICAgICAgICAgICAgICAgdHJh bnNpZW50X2ZvciA9IHNlbGYuX193aW5kb3csCi0rICAgICAgICAgICAgICAgICAgICBidXR0b25z ID0gR3RrLkJ1dHRvbnNUeXBlLllFU19OTywKLSsgICAgICAgICAgICAgICAgICAgIHRleHQgPSBt ZXNzYWdlKQotKyAgICAgICAgICAgIGlkID0gZGxnLnJ1bigpCi0rICAgICAgICAgICAgZGxnLmRl c3Ryb3koKQotKyAgICAgICAgICAgIHNlbGYuX19mbHVzaF9ndGtfZXZlbnRzKCkKLSsgICAgICAg ICAgICBpZiBpZCAhPSBHdGsuUmVzcG9uc2VUeXBlLllFUzoKLSsgICAgICAgICAgICAgICAgYnV0 dG9uLnNldF9hY3RpdmUoVHJ1ZSkKLSsgICAgICAgICAgICAgICAgcmV0dXJuCi0rICAgICAgICAg ICAgc2VsZi5fX3NldHRpbmdzX2dlbmVyYWwuc2V0X2ludCgKLSsgICAgICAgICAgICAgICAgICAg ICdwcmVsb2FkLWVuZ2luZS1tb2RlJywKLSsgICAgICAgICAgICAgICAgICAgIElCdXMuUHJlbG9h ZEVuZ2luZU1vZGUuTEFOR19SRUxBVElWRSkKLSsgICAgICAgICAgICBzZWxmLl9fYnVpbGRlci5n ZXRfb2JqZWN0KAotKyAgICAgICAgICAgICAgICAgICAgImhib3hfY3VzdG9taXplX2FjdGl2ZV9p bnB1dF9tZXRob2RzIikuc2V0X3NlbnNpdGl2ZShGYWxzZSkKLSsKLSsgICAgZGVmIF9fc2V0dGlu Z3NfZ2VuZXJhbF9wcmVsb2FkX2VuZ2luZXNfY2Ioc2VsZiwgc2V0dGluZ3MsIGtleSk6Ci0rICAg ICAgICBlbmdpbmVfbmFtZXMgPSBzZWxmLl9fc2V0dGluZ3NfZ2VuZXJhbC5nZXRfc3RydigncHJl bG9hZC1lbmdpbmVzJykKLSsgICAgICAgIGVuZ2luZXMgPSBzZWxmLl9fZ2V0X2VuZ2luZV9kZXNj c19mcm9tX25hbWVzKGVuZ2luZV9uYW1lcykKLSsgICAgICAgIGN1cnJlbnRfZW5naW5lcyA9IHNl bGYuX190cmVldmlldy5nZXRfZW5naW5lcygpCi0rICAgICAgICBlbmdpbmVzX2NzdiA9IHN0ci5q b2luKCcsJywgW2UuZ2V0X25hbWUoKSBmb3IgZSBpbiBlbmdpbmVzXSkKLSsgICAgICAgIGN1cnJl bnRfZW5naW5lc19jc3YgPSBcCi0rICAgICAgICAgICAgICAgIHN0ci5qb2luKCcsJywgW2UuZ2V0 X25hbWUoKSBmb3IgZSBpbiBjdXJyZW50X2VuZ2luZXNdKQotKyAgICAgICAgaWYgZW5naW5lc19j c3YgIT0gY3VycmVudF9lbmdpbmVzX2NzdjoKLSsgICAgICAgICAgICBzZWxmLl9fdHJlZXZpZXcu c2V0X2VuZ2luZXMoZW5naW5lcykKLSsKLSAgICAgZGVmIF9faW5pdF9idXMoc2VsZik6Ci0gICAg ICAgICBzZWxmLl9fYnVzID0gSUJ1cy5CdXMoKQotICAgICAgICAgaWYgc2VsZi5fX2J1cy5pc19j b25uZWN0ZWQoKToKLWRpZmYgLS1naXQgYS9zZXR1cC9zZXR1cC51aSBiL3NldHVwL3NldHVwLnVp Ci1pbmRleCA1ZmZiZTQ3Li43YzYwYjcyIDEwMDY0NAotLS0tIGEvc2V0dXAvc2V0dXAudWkKLSsr KyBiL3NldHVwL3NldHVwLnVpCi1AQCAtNjc3LDcgKzY3NywyMyBAQAotICAgICAgICAgICAgICAg ICAgICAgPHByb3BlcnR5IG5hbWU9InZpc2libGUiPlRydWU8L3Byb3BlcnR5PgotICAgICAgICAg ICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9ImNhbl9mb2N1cyI+RmFsc2U8L3Byb3BlcnR5Pgot ICAgICAgICAgICAgICAgICAgICAgPGNoaWxkPgotLSAgICAgICAgICAgICAgICAgICAgICA8b2Jq ZWN0IGNsYXNzPSJHdGtCb3giIGlkPSJoYm94MSI+Ci0rICAgICAgICAgICAgICAgICAgICAgIDxv YmplY3QgY2xhc3M9Ikd0a0NoZWNrQnV0dG9uIiBpZD0iY2hlY2tidXR0b25fcHJlbG9hZF9lbmdp bmVfbW9kZSI+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9InZpc2li bGUiPlRydWU8L3Byb3BlcnR5PgotKyAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBu YW1lPSJsYWJlbCIgdHJhbnNsYXRhYmxlPSJ5ZXMiPkN1c3RvbWl6ZSBhY3RpdmUgaW5wdXQgX21l dGhvZHM8L3Byb3BlcnR5PgotKyAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1l PSJ1c2VfdW5kZXJsaW5lIj5UcnVlPC9wcm9wZXJ0eT4KLSsgICAgICAgICAgICAgICAgICAgICAg ICA8cHJvcGVydHkgbmFtZT0iY2FuX2ZvY3VzIj5UcnVlPC9wcm9wZXJ0eT4KLSsgICAgICAgICAg ICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0icmVjZWl2ZXNfZGVmYXVsdCI+RmFsc2U8L3By b3BlcnR5PgotKyAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ0b29sdGlw X3RleHQiIHRyYW5zbGF0YWJsZT0ieWVzIj5DdXN0b21pemUgYWN0aXZlIGlucHV0IG1ldGhvZHM8 L3Byb3BlcnR5PgotKyAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJkcmF3 X2luZGljYXRvciI+VHJ1ZTwvcHJvcGVydHk+Ci0rICAgICAgICAgICAgICAgICAgICAgIDwvb2Jq ZWN0PgotKyAgICAgICAgICAgICAgICAgICAgICA8cGFja2luZz4KLSsgICAgICAgICAgICAgICAg ICAgICAgICA8cHJvcGVydHkgbmFtZT0iZXhwYW5kIj5GYWxzZTwvcHJvcGVydHk+Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9ImZpbGwiPlRydWU8L3Byb3BlcnR5Pgot KyAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJwb3NpdGlvbiI+MDwvcHJv cGVydHk+Ci0rICAgICAgICAgICAgICAgICAgICAgIDwvcGFja2luZz4KLSsgICAgICAgICAgICAg ICAgICAgIDwvY2hpbGQ+Ci0rICAgICAgICAgICAgICAgICAgICA8Y2hpbGQ+Ci0rICAgICAgICAg ICAgICAgICAgICAgIDxvYmplY3QgY2xhc3M9Ikd0a0JveCIgaWQ9Imhib3hfY3VzdG9taXplX2Fj dGl2ZV9pbnB1dF9tZXRob2RzIj4KLSAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkg bmFtZT0ib3JpZW50YXRpb24iPmhvcml6b250YWw8L3Byb3BlcnR5PgotICAgICAgICAgICAgICAg ICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ2aXNpYmxlIj5UcnVlPC9wcm9wZXJ0eT4KLSAgICAg ICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0iY2FuX2ZvY3VzIj5GYWxzZTwvcHJv cGVydHk+Ci1AQCAtODY5LDcgKzg4NSw3IEBACi0gICAgICAgICAgICAgICAgICAgICAgIDxwYWNr aW5nPgotICAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJleHBhbmQiPlRy dWU8L3Byb3BlcnR5PgotICAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJm aWxsIj5UcnVlPC9wcm9wZXJ0eT4KLS0gICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkg bmFtZT0icG9zaXRpb24iPjA8L3Byb3BlcnR5PgotKyAgICAgICAgICAgICAgICAgICAgICAgIDxw cm9wZXJ0eSBuYW1lPSJwb3NpdGlvbiI+MTwvcHJvcGVydHk+Ci0gICAgICAgICAgICAgICAgICAg ICAgIDwvcGFja2luZz4KLSAgICAgICAgICAgICAgICAgICAgIDwvY2hpbGQ+Ci0gICAgICAgICAg ICAgICAgICAgICA8Y2hpbGQ+Ci1AQCAtOTE3LDcgKzkzMyw3IEBACi0gICAgICAgICAgICAgICAg ICAgICAgIDxwYWNraW5nPgotICAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1l PSJleHBhbmQiPkZhbHNlPC9wcm9wZXJ0eT4KLSAgICAgICAgICAgICAgICAgICAgICAgICA8cHJv cGVydHkgbmFtZT0iZmlsbCI+VHJ1ZTwvcHJvcGVydHk+Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgPHByb3BlcnR5IG5hbWU9InBvc2l0aW9uIj4xPC9wcm9wZXJ0eT4KLSsgICAgICAgICAgICAg ICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0icG9zaXRpb24iPjI8L3Byb3BlcnR5PgotICAgICAg ICAgICAgICAgICAgICAgICA8L3BhY2tpbmc+Ci0gICAgICAgICAgICAgICAgICAgICA8L2NoaWxk PgotICAgICAgICAgICAgICAgICAgIDwvb2JqZWN0PgotZGlmZiAtLWdpdCBhL3NyYy9pYnVzdHlw ZXMuaCBiL3NyYy9pYnVzdHlwZXMuaAotaW5kZXggODZmYzJjYy4uY2I5ZWIyMiAxMDA2NDQKLS0t LSBhL3NyYy9pYnVzdHlwZXMuaAotKysrIGIvc3JjL2lidXN0eXBlcy5oCi1AQCAtMjA2LDYgKzIw NiwxNiBAQCB0eXBlZGVmIGVudW0gewotIH0gSUJ1c0Vycm9yOwotIAotIC8qKgotKyAqIElCdXNQ cmVsb2FkRW5naW5lTW9kZToKLSsgKiBASUJVU19QUkVMT0FEX0VOR0lORV9NT0RFX1VTRVI6IHVz ZXIgY3VzdGltaXplZCBlbmdpbmVzCi0rICogQElCVVNfUFJFTE9BRF9FTkdJTkVfTU9ERV9MQU5H X1JFTEFUSVZFOiBsYW5ndWFnZSByZWxhdGVkIGVuZ2luZXMuCi0rICovCi0rdHlwZWRlZiBlbnVt IHsKLSsgICAgSUJVU19QUkVMT0FEX0VOR0lORV9NT0RFX1VTRVIgICAgICAgICAgPSAwLAotKyAg ICBJQlVTX1BSRUxPQURfRU5HSU5FX01PREVfTEFOR19SRUxBVElWRSA9IDEsCi0rfSBJQnVzUHJl bG9hZEVuZ2luZU1vZGU7Ci0rCi0rLyoqCi0gICogSUJ1c1JlY3RhbmdsZToKLSAgKiBAeDogeCBj b29yZGluYXRlLgotICAqIEB5OiB5IGNvb3JkaW5hdGUuCi1kaWZmIC0tZ2l0IGEvdWkvZ3RrMy9w YW5lbC52YWxhIGIvdWkvZ3RrMy9wYW5lbC52YWxhCi1pbmRleCA3YTE1MDQ5Li5lNmMxMjhhIDEw MDY0NAotLS0tIGEvdWkvZ3RrMy9wYW5lbC52YWxhCi0rKysgYi91aS9ndGszL3BhbmVsLnZhbGEK LUBAIC0xNDEsNiArMTQxLDEwIEBAIGNsYXNzIFBhbmVsIDogSUJ1cy5QYW5lbFNlcnZpY2Ugewot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsKTsKLSAgICAgICAgIH0pOwotIAot KyAgICAgICAgbV9zZXR0aW5nc19nZW5lcmFsLmNoYW5nZWRbInByZWxvYWQtZW5naW5lLW1vZGUi XS5jb25uZWN0KChrZXkpID0+IHsKLSsgICAgICAgICAgICAgICAgdXBkYXRlX2ltX2VuZ2luZXMo KTsKLSsgICAgICAgIH0pOwotKwotICAgICAgICAgbV9zZXR0aW5nc19nZW5lcmFsLmNoYW5nZWRb InN3aXRjaGVyLWRlbGF5LXRpbWUiXS5jb25uZWN0KChrZXkpID0+IHsKLSAgICAgICAgICAgICAg ICAgc2V0X3N3aXRjaGVyX2RlbGF5X3RpbWUoKTsKLSAgICAgICAgIH0pOwotQEAgLTU2OSw3ICs1 NzMsOTYgQEAgY2xhc3MgUGFuZWwgOiBJQnVzLlBhbmVsU2VydmljZSB7Ci0gICAgICAgICAgICAg aW5pdF9na2JkKCk7Ci0gICAgICAgICB9Ci0gCi0rICAgICAgICBzdHJpbmdbXSBwcmVsb2FkX2Vu Z2luZXMgPQotKyAgICAgICAgICAgICAgICBtX3NldHRpbmdzX2dlbmVyYWwuZ2V0X3N0cnYoInBy ZWxvYWQtZW5naW5lcyIpOwotKwotKyAgICAgICAgYm9vbCBwcmVsb2FkX2VuZ2luZXNfaW5pdGVk ID0KLSsgICAgICAgICAgICAgICAgbV9zZXR0aW5nc19nZW5lcmFsLmdldF9ib29sZWFuKCJwcmVs b2FkLWVuZ2luZXMtaW5pdGVkIik7Ci0rCi0rICAgICAgICAvLyBTZXQgcHJlbG9hZF9lbmdpbmVz X2luaXRlZCA9IHRydWUgZm9yIGJhY2sgY29tcGF0aWJpbGl0eQotKyAgICAgICAgaWYgKHByZWxv YWRfZW5naW5lcy5sZW5ndGggIT0gMCAmJiAhcHJlbG9hZF9lbmdpbmVzX2luaXRlZCkgewotKyAg ICAgICAgICAgICAgICBwcmVsb2FkX2VuZ2luZXNfaW5pdGVkID0gdHJ1ZTsKLSsgICAgICAgICAg ICAgICAgbV9zZXR0aW5nc19nZW5lcmFsLnNldF9ib29sZWFuKCJwcmVsb2FkLWVuZ2luZXMtaW5p dGVkIiwgdHJ1ZSk7Ci0rICAgICAgICB9Ci0rCi0gICAgICAgICB1cGRhdGVfeGtiX2VuZ2luZXMo KTsKLSsKLSsgICAgICAgIC8vIEJlZm9yZSB1cGRhdGUgcHJlbG9hZF9lbmdpbmVfbW9kZSwgdXBk YXRlX3hrYl9lbmdpbmVzKCkgaXMgY2FsbGVkCi0rICAgICAgICAvLyBiZWNhdXNlICJwcmVsb2Fk LWVuZ2luZS1tb2RlIiBzaWduYWwgY2FsbHMgdXBkYXRlX2ltX2VuZ2luZXMoKS4KLSsgICAgICAg IGlmICghcHJlbG9hZF9lbmdpbmVzX2luaXRlZCkKLSsgICAgICAgICAgICBtX3NldHRpbmdzX2dl bmVyYWwuc2V0X2ludCgicHJlbG9hZC1lbmdpbmUtbW9kZSIsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSUJ1cy5QcmVsb2FkRW5naW5lTW9kZS5MQU5HX1JFTEFUSVZF KTsKLSsKLSsgICAgICAgIHVwZGF0ZV9pbV9lbmdpbmVzKCk7Ci0rCi0rICAgICAgICBpZiAoIXBy ZWxvYWRfZW5naW5lc19pbml0ZWQpCi0rICAgICAgICAgICAgbV9zZXR0aW5nc19nZW5lcmFsLnNl dF9ib29sZWFuKCJwcmVsb2FkLWVuZ2luZXMtaW5pdGVkIiwgdHJ1ZSk7Ci0rICAgIH0KLSsKLSsg ICAgcHJpdmF0ZSBib29sIHNldF9sYW5nX3JlbGF0aXZlX3ByZWxvYWRfZW5naW5lcygpIHsKLSsg ICAgICAgIHN0cmluZyBsb2NhbGUgPSBJbnRsLnNldGxvY2FsZShMb2NhbGVDYXRlZ29yeS5DVFlQ RSwgbnVsbCk7Ci0rCi0rICAgICAgICBpZiAobG9jYWxlID09IG51bGwpCi0rICAgICAgICAgICAg bG9jYWxlID0gIkMiOwotKwotKyAgICAgICAgc3RyaW5nIGxhbmcgPSBsb2NhbGUuc3BsaXQoIi4i KVswXTsKLSsgICAgICAgIEdMaWIuTGlzdDxJQnVzLkVuZ2luZURlc2M+IGVuZ2luZXMgPSBtX2J1 cy5saXN0X2VuZ2luZXMoKTsKLSsgICAgICAgIHN0cmluZ1tdIGltX2VuZ2luZXMgPSB7fTsKLSsK LSsgICAgICAgIGZvciAodW5vd25lZCBHTGliLkxpc3Q8SUJ1cy5FbmdpbmVEZXNjPiBwID0gZW5n aW5lczsKLSsgICAgICAgICAgICAgcCAhPSBudWxsOwotKyAgICAgICAgICAgICBwID0gcC5uZXh0 KSB7Ci0rICAgICAgICAgICAgdW5vd25lZCBJQnVzLkVuZ2luZURlc2MgZW5naW5lID0gcC5kYXRh OwotKyAgICAgICAgICAgIGlmIChlbmdpbmUuZ2V0X2xhbmd1YWdlKCkgPT0gbGFuZyAmJiBlbmdp bmUuZ2V0X3JhbmsoKSA+IDApCi0rICAgICAgICAgICAgICAgIGltX2VuZ2luZXMgKz0gZW5naW5l LmdldF9uYW1lKCk7Ci0rICAgICAgICB9Ci0rCi0rICAgICAgICBsYW5nID0gbGFuZy5zcGxpdCgi XyIpWzBdOwotKyAgICAgICAgaWYgKGltX2VuZ2luZXMubGVuZ3RoID09IDApIHsKLSsgICAgICAg ICAgICBmb3IgKHVub3duZWQgR0xpYi5MaXN0PElCdXMuRW5naW5lRGVzYz4gcCA9IGVuZ2luZXM7 Ci0rICAgICAgICAgICAgICAgICBwICE9IG51bGw7Ci0rICAgICAgICAgICAgICAgICBwID0gcC5u ZXh0KSB7Ci0rICAgICAgICAgICAgICAgIHVub3duZWQgSUJ1cy5FbmdpbmVEZXNjIGVuZ2luZSA9 IHAuZGF0YTsKLSsgICAgICAgICAgICAgICAgaWYgKGVuZ2luZS5nZXRfbGFuZ3VhZ2UoKSA9PSBs YW5nICYmIGVuZ2luZS5nZXRfcmFuaygpID4gMCkKLSsgICAgICAgICAgICAgICAgICAgIGltX2Vu Z2luZXMgKz0gZW5naW5lLmdldF9uYW1lKCk7Ci0rICAgICAgICAgICAgfQotKyAgICAgICAgfQot KwotKyAgICAgICAgaWYgKGltX2VuZ2luZXMubGVuZ3RoID09IDApCi0rICAgICAgICAgICAgcmV0 dXJuIGZhbHNlOwotKwotKyAgICAgICAgc3RyaW5nW10gb3JpZ19wcmVsb2FkX2VuZ2luZXMgPQot KyAgICAgICAgICAgICAgICBtX3NldHRpbmdzX2dlbmVyYWwuZ2V0X3N0cnYoInByZWxvYWQtZW5n aW5lcyIpOwotKyAgICAgICAgc3RyaW5nW10gcHJlbG9hZF9lbmdpbmVzID0ge307Ci0rCi0rICAg ICAgICAvLyBjbGVhciBpbnB1dCBtZXRob2QgZW5naW5lcwotKyAgICAgICAgZm9yZWFjaCAoc3Ry aW5nIG5hbWUgaW4gb3JpZ19wcmVsb2FkX2VuZ2luZXMpIHsKLSsgICAgICAgICAgICBpZiAobmFt ZS5hc2NpaV9uY2FzZWNtcCgieGtiOiIsIDQpICE9IDApCi0rICAgICAgICAgICAgICAgIGNvbnRp bnVlOwotKwotKyAgICAgICAgICAgIHByZWxvYWRfZW5naW5lcyArPSBuYW1lOwotKyAgICAgICAg fQotKwotKyAgICAgICAgZm9yZWFjaCAoc3RyaW5nIG5hbWUgaW4gaW1fZW5naW5lcykgewotKyAg ICAgICAgICAgIGlmICghKG5hbWUgaW4gcHJlbG9hZF9lbmdpbmVzKSkKLSsgICAgICAgICAgICAg ICAgcHJlbG9hZF9lbmdpbmVzICs9IG5hbWU7Ci0rICAgICAgICB9Ci0rCi0rICAgICAgICBpZiAo c3RyaW5nLmpvaW52KCIsIiwgb3JpZ19wcmVsb2FkX2VuZ2luZXMpICE9Ci0rICAgICAgICAgICAg c3RyaW5nLmpvaW52KCIsIiwgcHJlbG9hZF9lbmdpbmVzKSkKLSsgICAgICAgICAgICBtX3NldHRp bmdzX2dlbmVyYWwuc2V0X3N0cnYoInByZWxvYWQtZW5naW5lcyIsIHByZWxvYWRfZW5naW5lcyk7 Ci0rCi0rICAgICAgICByZXR1cm4gdHJ1ZTsKLSsgICAgfQotKwotKyAgICBwcml2YXRlIHZvaWQg dXBkYXRlX2ltX2VuZ2luZXMoKSB7Ci0rICAgICAgICBpbnQgcHJlbG9hZF9lbmdpbmVfbW9kZSA9 Ci0rICAgICAgICAgICAgICAgIG1fc2V0dGluZ3NfZ2VuZXJhbC5nZXRfaW50KCJwcmVsb2FkLWVu Z2luZS1tb2RlIik7Ci0rCi0rICAgICAgICBpZiAocHJlbG9hZF9lbmdpbmVfbW9kZSA9PSBJQnVz LlByZWxvYWRFbmdpbmVNb2RlLlVTRVIpCi0rICAgICAgICAgICAgcmV0dXJuOwotKwotKyAgICAg ICAgc2V0X2xhbmdfcmVsYXRpdmVfcHJlbG9hZF9lbmdpbmVzKCk7Ci0gICAgIH0KLSAKLSAgICAg cHJpdmF0ZSB2b2lkIHVwZGF0ZV94a2JfZW5naW5lcygpIHsKLS0tIAotMS44LjUuMwotCgpkaWZm IC0tZ2l0IGEvaWJ1cy01NDE0OTIteGtiLnBhdGNoIGIvaWJ1cy01NDE0OTIteGtiLnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMTZjYTZlLi4wMDAwMDAwCi0tLSBhL2lidXMt NTQxNDkyLXhrYi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIwMDEgKzAsMCBAQAotRnJvbSBi Y2U4Yjg1ODg2MDc1ZmJkYmYyOGJkNTc5NWJlOGJkNDFmM2E5ODRlIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQotRnJvbTogZnVqaXdhcmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotRGF0 ZTogVGh1LCAxMyBNYXIgMjAxNCAxNTo0OToxMSArMDkwMAotU3ViamVjdDogW1BBVENIXSBBZGQg bGliZ25vbWVrYmQgYW5kIGxvYWQgcHJlbG9hZCBlbmdpbmVzLgotCi0tLS0KLSBiaW5kaW5ncy92 YWxhL0drYmQtMy4wLm1ldGFkYXRhIHwgICAxICsKLSBiaW5kaW5ncy92YWxhL01ha2VmaWxlLmFt ICAgICAgIHwgIDE5ICstCi0gYmluZGluZ3MvdmFsYS9Ya2wtMS4wLm1ldGFkYXRhICB8ICAgMyAr Ci0gYmluZGluZ3MvdmFsYS9na2JkLmRlcHMgICAgICAgICB8ICAgMyArCi0gYnVzL2lidXNpbXBs LmMgICAgICAgICAgICAgICAgICB8ICAxMiArLQotIGNvbmZpZ3VyZS5hYyAgICAgICAgICAgICAg ICAgICAgfCAgNDAgKysrKwotIGRhdGEvaWJ1cy5zY2hlbWFzLmluICAgICAgICAgICAgfCAgNTkg KysrKysKLSBpYnVzLTEuMC5wYy5pbiAgICAgICAgICAgICAgICAgIHwgICAxICsKLSBpYnVzLnNw ZWMuaW4gICAgICAgICAgICAgICAgICAgIHwgIDEyICsrCi0gc3JjL01ha2VmaWxlLmFtICAgICAg ICAgICAgICAgICB8ICAgMyArCi0gc3JjL2lidXMuaCAgICAgICAgICAgICAgICAgICAgICB8ICAg MSArCi0gc3JjL2lidXN4a2J4bWwuYyAgICAgICAgICAgICAgICB8IDQ2NiArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrCi0gc3JjL2lidXN4a2J4bWwuaCAgICAgICAgICAg ICAgICB8IDE4NyArKysrKysrKysrKysrKysrCi0gdWkvZ3RrMy9NYWtlZmlsZS5hbSAgICAgICAg ICAgICB8ICAzNiArKysrCi0gdWkvZ3RrMy9na2JkbGF5b3V0LnZhbGEuZmFsc2UgICB8ICA2MyAr KysrKysKLSB1aS9ndGszL2drYmRsYXlvdXQudmFsYS50cnVlICAgIHwgMTA4ICsrKysrKysrKysK LSB1aS9ndGszL3BhbmVsLnZhbGEgICAgICAgICAgICAgIHwgMjMwICsrKysrKysrKysrKysrKysr KystCi0gdWkvZ3RrMy94a2JsYXlvdXQudmFsYSAgICAgICAgICB8IDQyOSArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysKLSAxOCBmaWxlcyBjaGFuZ2VkLCAxNjY4IGluc2VydGlv bnMoKyksIDUgZGVsZXRpb25zKC0pCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IGJpbmRpbmdzL3ZhbGEv R2tiZC0zLjAubWV0YWRhdGEKLSBjcmVhdGUgbW9kZSAxMDA2NDQgYmluZGluZ3MvdmFsYS9Ya2wt MS4wLm1ldGFkYXRhCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IGJpbmRpbmdzL3ZhbGEvZ2tiZC5kZXBz Ci0gY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pYnVzeGtieG1sLmMKLSBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjL2lidXN4a2J4bWwuaAotIGNyZWF0ZSBtb2RlIDEwMDY0NCB1aS9ndGszL2drYmRsYXlv dXQudmFsYS5mYWxzZQotIGNyZWF0ZSBtb2RlIDEwMDY0NCB1aS9ndGszL2drYmRsYXlvdXQudmFs YS50cnVlCi0gY3JlYXRlIG1vZGUgMTAwNjQ0IHVpL2d0azMveGtibGF5b3V0LnZhbGEKLQotZGlm ZiAtLWdpdCBhL2JpbmRpbmdzL3ZhbGEvR2tiZC0zLjAubWV0YWRhdGEgYi9iaW5kaW5ncy92YWxh L0drYmQtMy4wLm1ldGFkYXRhCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4u NjYxZTZmZAotLS0tIC9kZXYvbnVsbAotKysrIGIvYmluZGluZ3MvdmFsYS9Ha2JkLTMuMC5tZXRh ZGF0YQotQEAgLTAsMCArMSBAQAotK0NvbmZpZ3VyYXRpb24gY2hlYWRlcl9maWxlbmFtZT0ibGli Z25vbWVrYmQvZ2tiZC1jb25maWd1cmF0aW9uLmgiCi1kaWZmIC0tZ2l0IGEvYmluZGluZ3MvdmFs YS9NYWtlZmlsZS5hbSBiL2JpbmRpbmdzL3ZhbGEvTWFrZWZpbGUuYW0KLWluZGV4IDI5Y2MxZWIu LjFkMjg1MDEgMTAwNjQ0Ci0tLS0gYS9iaW5kaW5ncy92YWxhL01ha2VmaWxlLmFtCi0rKysgYi9i aW5kaW5ncy92YWxhL01ha2VmaWxlLmFtCi1AQCAtMjgsOCArMjgsNiBAQCB2YXBpX2RlcHMgPSBc Ci0gCSQodG9wX2J1aWxkZGlyKS9zcmMvSUJ1cy0xLjAuZ2lyIFwKLSAJJChOVUxMKQotIAotLWli dXMtMS4wLnZhcGk6ICQodmFwaV9kZXBzKQotLQotIFZBUElHRU5fVkFQSVMgPSBpYnVzLTEuMC52 YXBpCi0gCi0gaWJ1c18xXzBfdmFwaV9ERVBTID0gZ2lvLTIuMAotQEAgLTM5LDE5ICszNywzNCBA QCBpYnVzXzFfMF92YXBpX0ZJTEVTID0gXAotIAkkKHNyY2RpcikvSUJ1cy0xLjAtY3VzdG9tLnZh bGEgXAotIAkkKE5VTEwpCi0gCi0raWYgRU5BQkxFX0xJQkdOT01FS0JECi0raWJ1cy0xLjAudmFw aTogJCh2YXBpX2RlcHMpIGdrYmQudmFwaQotKwotK1ZBUElHRU5fVkFQSVMgKz0gZ2tiZC52YXBp Ci0rCi0rZ2tiZF92YXBpX0RFUFMgPSBndGsrLTMuMCBnbGliLTIuMCBnbW9kdWxlLTIuMAotK2dr YmRfdmFwaV9NRVRBREFUQURJUlMgPSAkKHNyY2RpcikKLStna2JkX3ZhcGlfRklMRVMgPSAvdXNy L3NoYXJlL2dpci0xLjAvR2tiZC0zLjAuZ2lyCi0rZWxzZQotK2lidXMtMS4wLnZhcGk6ICQodmFw aV9kZXBzKQotK2VuZGlmCi0rCi0gdmFwaWRpciA9ICQoZGF0YWRpcikvdmFsYS92YXBpCi0tdmFw aV9EQVRBID0gJChWQVBJR0VOX1ZBUElTKSAkKFZBUElHRU5fVkFQSVM6LnZhcGk9LmRlcHMpCi0r dmFwaV9EQVRBID0gaWJ1cy0xLjAudmFwaSBpYnVzLTEuMC5kZXBzCi0gCi0gTUFJTlRBSU5FUkNM RUFORklMRVMgPSAkKFZBUElHRU5fVkFQSVMpCi0gCi0gRVhUUkFfRElTVCA9IFwKLSAJJChWQVBJ R0VOX1ZBUElTKSBcCi0rCUdrYmQtMy4wLm1ldGFkYXRhIFwKLSsJZ2tiZC5kZXBzIFwKLSAJSUJ1 cy0xLjAubWV0YWRhdGEgXAotIAlJQnVzLTEuMC1jdXN0b20udmFsYSBcCi0gCWlidXMtMS4wLmRl cHMgXAotIAlpYnVzLXByaXZhdGUudmFwaSBcCi0gCWNvbmZpZy52YXBpIFwKLSAJeGkudmFwaSBc Ci0rCVhrbC0xLjAubWV0YWRhdGEgXAotIAkkKE5VTEwpCi0gCi0gLWluY2x1ZGUgJCh0b3Bfc3Jj ZGlyKS9naXQubWsKLWRpZmYgLS1naXQgYS9iaW5kaW5ncy92YWxhL1hrbC0xLjAubWV0YWRhdGEg Yi9iaW5kaW5ncy92YWxhL1hrbC0xLjAubWV0YWRhdGEKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1p bmRleCAwMDAwMDAwLi40OTYxZDBjCi0tLS0gL2Rldi9udWxsCi0rKysgYi9iaW5kaW5ncy92YWxh L1hrbC0xLjAubWV0YWRhdGEKLUBAIC0wLDAgKzEsMyBAQAotK1hrbCBjaGVhZGVyX2ZpbGVuYW1l PSJsaWJ4a2xhdmllci94a2xhdmllci5oIgotK0VuZ2luZQotKyAgICAuZmlsdGVyX2V2ZW50cy5l dnQgcmVmIHR5cGU9IlguRXZlbnQiCi1kaWZmIC0tZ2l0IGEvYmluZGluZ3MvdmFsYS9na2JkLmRl cHMgYi9iaW5kaW5ncy92YWxhL2drYmQuZGVwcwotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4 IDAwMDAwMDAuLjE3MjYzMmMKLS0tLSAvZGV2L251bGwKLSsrKyBiL2JpbmRpbmdzL3ZhbGEvZ2ti ZC5kZXBzCi1AQCAtMCwwICsxLDMgQEAKLStndGsrLTMuMAotK2dsaWItMi4wCi0rZ21vZHVsZS0y LjAKLWRpZmYgLS1naXQgYS9idXMvaWJ1c2ltcGwuYyBiL2J1cy9pYnVzaW1wbC5jCi1pbmRleCBl ZWM2ZGEzLi5mODRjMDM0IDEwMDY0NAotLS0tIGEvYnVzL2lidXNpbXBsLmMKLSsrKyBiL2J1cy9p YnVzaW1wbC5jCi1AQCAtMTEzNSw3ICsxMTM1LDE3IEBAIF9pYnVzX2dldF9lbmdpbmVzX2J5X25h bWVzIChCdXNJQnVzSW1wbCAgICAgICAgICAgKmlidXMsCi0gICAgIGdfdmFyaWFudF9idWlsZGVy X2luaXQgKCZidWlsZGVyLCBHX1ZBUklBTlRfVFlQRSAoImF2IikpOwotICAgICB3aGlsZSAobmFt ZXNbaV0gIT0gTlVMTCkgewotICAgICAgICAgSUJ1c0VuZ2luZURlc2MgKmRlc2MgPSAoSUJ1c0Vu Z2luZURlc2MgKikgZ19oYXNoX3RhYmxlX2xvb2t1cCAoCi0tICAgICAgICAgICAgICAgIGlidXMt PmVuZ2luZV90YWJsZSwgbmFtZXNbaSsrXSk7Ci0rICAgICAgICAgICAgICAgIGlidXMtPmVuZ2lu ZV90YWJsZSwgbmFtZXNbaV0pOwotKwotKyAgICAgICAgLyogcHJlbG9hZCBlbmdpbmVzIHJldHVy biB1c2VyIFhLQiBzbyBpZiB0aGUgZW5naW5lIGRvZXMgbm90Ci0rICAgICAgICAgKiBleGlzdCBp biBzaW1wbGUueG1sLCBmYWxsIGJhY2sgdG8gJ3VzJyBsYXlvdXQuICovCi0rICAgICAgICBpZiAo ZGVzYyA9PSBOVUxMICYmIGdfc3RyX2hhc19wcmVmaXggKG5hbWVzW2ldLCAieGtiOiIpKSB7Ci0r ICAgICAgICAgICAgZGVzYyA9IChJQnVzRW5naW5lRGVzYyAqKSBnX2hhc2hfdGFibGVfbG9va3Vw ICgKLSsgICAgICAgICAgICAgICAgICAgIGlidXMtPmVuZ2luZV90YWJsZSwgInhrYjp1czo6ZW5n Iik7Ci0rICAgICAgICB9Ci0rCi0rICAgICAgICBpKys7Ci0rCi0gICAgICAgICBpZiAoZGVzYyA9 PSBOVUxMKQotICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgZ192YXJpYW50X2J1aWxk ZXJfYWRkICgKLWRpZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKLWluZGV4 IDlhNTAyZWMuLjNlYzYyOWQgMTAwNjQ0Ci0tLS0gYS9jb25maWd1cmUuYWMKLSsrKyBiL2NvbmZp Z3VyZS5hYwotQEAgLTI2MSw2ICsyNjEsNDUgQEAgZWxzZQotICAgICBlbmFibGVfd2F5bGFuZD0i bm8gKGRpc2FibGVkLCB1c2UgLS1lbmFibGUtd2F5bGFuZCB0byBlbmFibGUpIgotIGZpCi0gCi0r IyBPcHRpb24gZm9yIFhLQiBjb21tYW5kLgotK1BLR19DSEVDS19NT0RVTEVTKFhLQiwKLSsgICAg W3hrYmZpbGVdLCwKLSsgICAgW1hLQl9MSUJTPSItbHhrYmZpbGUiXQotKykKLSsKLSsjIC0tZW5h YmxlLWxpYmdub21la2JkIG9wdGlvbi4KLStBQ19BUkdfRU5BQkxFKGxpYmdub21la2JkLAotKyAg ICBBU19IRUxQX1NUUklORyhbLS1lbmFibGUtbGliZ25vbWVrYmRdLAotKyAgICAgICAgICAgICAg ICAgICBbVXNlIGxpYmdub21la2JkIHRvIGhhbmRsZSB0aGUga2V5bWFwc10pLAotKyAgICBbZW5h YmxlX2xpYmdub21la2JkPSRlbmFibGV2YWxdLAotKyAgICBbZW5hYmxlX2xpYmdub21la2JkPW5v XQotKykKLStBTV9DT05ESVRJT05BTChbRU5BQkxFX0xJQkdOT01FS0JEXSwgW3Rlc3QgeCIkZW5h YmxlX2xpYmdub21la2JkIiA9IHgieWVzIl0pCi0raWYgdGVzdCB4IiRlbmFibGVfbGliZ25vbWVr YmQiID0geCJ5ZXMiOyB0aGVuCi0rICAgICMgY2hlY2sgZm9yIGxpYmdub21la2JkCi0rICAgIFBL R19DSEVDS19NT0RVTEVTKExJQkdOT01FS0JEVUksIFsKLSsgICAgICAgIGxpYmdub21la2JkdWkK LSsgICAgXSkKLSsgICAgUEtHX0NIRUNLX01PRFVMRVMoQVRLLCBbCi0rICAgICAgICBhdGsKLSsg ICAgXSkKLSsgICAgSEFWRV9JQlVTX0dLQkQ9dHJ1ZQotK2Vsc2UKLSsgICAgZW5hYmxlX2xpYmdu b21la2JkPSJubyAoZGlzYWJsZWQsIHVzZSAtLWVuYWJsZS1saWJnbm9tZWtiZCB0byBlbmFibGUp IgotKyAgICBIQVZFX0lCVVNfR0tCRD1mYWxzZQotK2ZpCi0rQUNfU1VCU1QoSEFWRV9JQlVTX0dL QkQpCi0rCi0rIyBEZWZpbmUgWEtCIHJ1bGVzIGZpbGUKLStBQ19BUkdfV0lUSCh4a2ItcnVsZXMt eG1sLAotKyAgICBBU19IRUxQX1NUUklORyhbLS13aXRoLXhrYi1ydWxlcy14bWxbPSRESVIvZXZk ZXYueG1sXV0sCi0rICAgICAgICBbU2V0IGV2ZGV2LnhtbCBmaWxlIHBhdGggKGRlZmF1bHQ6IC91 c3Ivc2hhcmUvWDExL3hrYi9ydWxlcy9ldmRldi54bWwpXSksCi0rICAgIFhLQl9SVUxFU19YTUxf RklMRT0kd2l0aF94a2JfcnVsZXNfeG1sLAotKyAgICBYS0JfUlVMRVNfWE1MX0ZJTEU9Ii91c3Iv c2hhcmUvWDExL3hrYi9ydWxlcy9ldmRldi54bWwiCi0rKQotK0FDX0RFRklORV9VTlFVT1RFRChY S0JfUlVMRVNfWE1MX0ZJTEUsICIkWEtCX1JVTEVTX1hNTF9GSUxFIiwKLSsgICAgW0RlZmluZSBm aWxlIHBhdGggb2YgZXZkZXYueG1sXSkKLSsKLSAjIEdPYmplY3QgaW50cm9zcGVjdGlvbgotIEdP QkpFQ1RfSU5UUk9TUEVDVElPTl9DSEVDSyhbMC42LjhdKQotIAotQEAgLTY0MCw2ICs2NzksNyBA QCBCdWlsZCBvcHRpb25zOgotICAgUGFuZWwgaWNvbiAgICAgICAgICAgICAgICAiJElCVVNfSUNP Tl9LRVlCT0FSRCIKLSAgIEVuYWJsZSBzdXJyb3VuZGluZy10ZXh0ICAgJGVuYWJsZV9zdXJyb3Vu ZGluZ190ZXh0Ci0gICBFbmFibGUgbGlibm90aWZ5ICAgICAgICAgICRlbmFibGVfbGlibm90aWZ5 Ci0rICBCdWlsZCBsaWJnbm9tZWJrZCAgICAgICAgICRlbmFibGVfbGliZ25vbWVrYmQKLSAgIFJ1 biB0ZXN0IGNhc2VzICAgICAgICAgICAgJGVuYWJsZV90ZXN0cwotIF0pCi0gCi1kaWZmIC0tZ2l0 IGEvZGF0YS9pYnVzLnNjaGVtYXMuaW4gYi9kYXRhL2lidXMuc2NoZW1hcy5pbgotaW5kZXggMmY3 NmNlMy4uY2FlYzMxNSAxMDA2NDQKLS0tLSBhL2RhdGEvaWJ1cy5zY2hlbWFzLmluCi0rKysgYi9k YXRhL2lidXMuc2NoZW1hcy5pbgotQEAgLTU2LDYgKzU2LDUyIEBACi0gICAgICAgPC9sb2NhbGU+ Ci0gICAgIDwvc2NoZW1hPgotICAgICA8c2NoZW1hPgotKyAgICAgIDxrZXk+L3NjaGVtYXMvZGVz a3RvcC9pYnVzL2dlbmVyYWwvdXNlX3htb2RtYXA8L2tleT4KLSsgICAgICA8YXBwbHl0bz4vZGVz a3RvcC9pYnVzL2dlbmVyYWwvdXNlX3htb2RtYXA8L2FwcGx5dG8+Ci0rICAgICAgPG93bmVyPmli dXM8L293bmVyPgotKyAgICAgIDx0eXBlPmJvb2w8L3R5cGU+Ci0rICAgICAgPGRlZmF1bHQ+dHJ1 ZTwvZGVmYXVsdD4KLSsgICAgICA8bG9jYWxlIG5hbWU9IkMiPgotKyAgICAgICAgPHNob3J0PlVz ZSB4bW9kbWFwPC9zaG9ydD4KLSsgICAgICAgICAgIDxsb25nPlJ1biB4bW9kbWFwIGlmIC54bW9k bWFwLy5YbW9kbWFwIGV4aXN0cy48L2xvbmc+Ci0rICAgICAgPC9sb2NhbGU+Ci0rICAgIDwvc2No ZW1hPgotKyAgICA8c2NoZW1hPgotKyAgICAgIDxrZXk+L3NjaGVtYXMvZGVza3RvcC9pYnVzL2dl bmVyYWwveGtiX2xhdGluX2xheW91dHM8L2tleT4KLSsgICAgICA8YXBwbHl0bz4vZGVza3RvcC9p YnVzL2dlbmVyYWwveGtiX2xhdGluX2xheW91dHM8L2FwcGx5dG8+Ci0rICAgICAgPG93bmVyPmli dXM8L293bmVyPgotKyAgICAgIDx0eXBlPmxpc3Q8L3R5cGU+Ci0rICAgICAgPGxpc3RfdHlwZT5z dHJpbmc8L2xpc3RfdHlwZT4KLSsgICAgICA8ZGVmYXVsdD5bYXJhLGJnLGN6LGRldixncixndXIs aW4sanAoa2FuYSksbWFsLG1rZCxydSx1YV08L2RlZmF1bHQ+Ci0rICAgICAgPGxvY2FsZSBuYW1l PSJDIj4KLSsgICAgICAgIDxzaG9ydD5MYXRpbiBsYXlvdXQgd2hpY2ggaGF2ZSBubyBBU0NJSTwv c2hvcnQ+Ci0rICAgICAgICAgICA8bG9uZz51cyBsYXlvdXQgaXMgYXBwZW5kZWQgdG8gdGhlIGxh dGluIGxheW91dHMuIHZhcmlhbnQgaXMgbm90IG5lZWRlZC48L2xvbmc+Ci0rICAgICAgPC9sb2Nh bGU+Ci0rICAgIDwvc2NoZW1hPgotKyAgICA8c2NoZW1hPgotKyAgICAgIDxrZXk+L3NjaGVtYXMv ZGVza3RvcC9pYnVzL2dlbmVyYWwvbG9hZF94a2JfbGF5b3V0czwva2V5PgotKyAgICAgIDxhcHBs eXRvPi9kZXNrdG9wL2lidXMvZ2VuZXJhbC9sb2FkX3hrYl9sYXlvdXRzPC9hcHBseXRvPgotKyAg ICAgIDxvd25lcj5pYnVzPC9vd25lcj4KLSsgICAgICA8dHlwZT5saXN0PC90eXBlPgotKyAgICAg IDxsaXN0X3R5cGU+c3RyaW5nPC9saXN0X3R5cGU+Ci0rICAgICAgPGRlZmF1bHQ+W3VzLHVzKGNo ciksdXMoZHZvcmFrKSxhZCxhbCxhbSxhcmEsYXosYmEsYmQsYmUsYmcsYnIsYnQsYnksCi0rZGUs ZGssY2EsY2gsY24odGliKSxjeixlZSxlcG8sZXMsZXQsZmksZm8sZnIsCi0rZ2IsZ2UsZ2UoZHNi KSxnZShydSksZ2Uob3MpLGdoLGdoKGFrYW4pLGdoKGV3ZSksZ2goZnVsYSksZ2goZ2EpLGdoKGhh dXNhKSwKLStnbixncixodSxocixpZSxpZShDbG9HYWVsYWNoKSxpbCwKLStpbiwKLStpbih0ZWwp LGluKGJvbG5hZ3JpKSxpcSxpcShrdSksaXIsaXIoa3UpLGlzLGl0LGpwLAotK2tnLGtoLGt6LGxh LGxhdGFtLGxrLGxrKHRhbV91bmljb2RlKSxsdCxsdixtYSxtYSh0aWZpbmFnaCksbWFsLG1hbywK LSttZSxtayxtbSxtdCxtdixuZyxuZyhoYXVzYSksbmcsbmcoaWdibyksbmcoeW9ydWJhKSxubCxu byxubyhzbWkpLG5wLAotK3BrLHBsLHBsKGNzYikscHQscm8scnMscnUscnUoY3YpLHJ1KGtvbSks cnUoc2FoKSxydSh0dCkscnUoeGFsKSwKLStzZSxzaSxzayxzeSxzeShrdSksdGgsdGosdHIsdWEs dXosdm4KLStdPC9kZWZhdWx0PgotKyAgICAgIDxsb2NhbGUgbmFtZT0iQyI+Ci0rICAgICAgICA8 c2hvcnQ+WEtCIGxheW91dCBsaXN0IHdoaWNoIGlzIHNob3duIG9uIGlidXMtc2V0dXA8L3Nob3J0 PgotKyAgICAgICAgICAgPGxvbmc+WEtCIGxheW91dCBsaXN0IHdoaWNoIGlzIHNob3duIG9uIGli dXMtc2V0dXAuCi0rICAgICAgICAgICAgICAgICBUaGUgZm9ybWF0IGlzICJsYXlvdXQiIG9yICJs YXlvdXQodmFyaWFudCkiLjwvbG9uZz4KLSsgICAgICA8L2xvY2FsZT4KLSsgICAgPC9zY2hlbWE+ Ci0rICAgIDxzY2hlbWE+Ci0gICAgICAgPGtleT4vc2NoZW1hcy9kZXNrdG9wL2lidXMvZ2VuZXJh bC9ob3RrZXkvdHJpZ2dlcjwva2V5PgotICAgICAgIDxhcHBseXRvPi9kZXNrdG9wL2lidXMvZ2Vu ZXJhbC9ob3RrZXkvdHJpZ2dlcjwvYXBwbHl0bz4KLSAgICAgICA8b3duZXI+aWJ1czwvb3duZXI+ Ci1AQCAtODAsNiArMTI2LDE5IEBACi0gICAgICAgPC9sb2NhbGU+Ci0gICAgIDwvc2NoZW1hPgot ICAgICA8c2NoZW1hPgotKyAgICAgIDxrZXk+L3NjaGVtYXMvZGVza3RvcC9pYnVzL2dlbmVyYWwv aG90a2V5L3RyaWdnZXJzLW5vLW1vZGlmaWVyczwva2V5PgotKyAgICAgIDxhcHBseXRvPi9kZXNr dG9wL2lidXMvZ2VuZXJhbC9ob3RrZXkvdHJpZ2dlcnMtbm8tbW9kaWZpZXJzPC9hcHBseXRvPgot KyAgICAgIDxvd25lcj5pYnVzPC9vd25lcj4KLSsgICAgICA8dHlwZT5saXN0PC90eXBlPgotKyAg ICAgIDxsaXN0X3R5cGU+c3RyaW5nPC9saXN0X3R5cGU+Ci0rICAgICAgPGRlZmF1bHQ+W108L2Rl ZmF1bHQ+Ci0rICAgICAgPGxvY2FsZSBuYW1lPSJDIj4KLSsgICAgICAgIDxzaG9ydD5UcmlnZ2Vy IHNob3J0Y3V0IGtleXMgd2l0aG91dCBtb2RpZmllciBrZXlzPC9zaG9ydD4KLSsgICAgICAgICAg PGxvbmc+VHJpZ2dlciBzaG9ydGN1dCBrZXlzIHdpdGhvdXQgbW9kaWZpZXIga2V5cy4KLSsgICAg ICAgICAgICAgICAgVGhlIGxpc3QgaXMgdXNlZCBieSBpYnVzLWdqcy48L2xvbmc+Ci0rICAgICAg PC9sb2NhbGU+Ci0rICAgIDwvc2NoZW1hPgotKyAgICA8c2NoZW1hPgotICAgICAgIDxrZXk+L3Nj aGVtYXMvZGVza3RvcC9pYnVzL2dlbmVyYWwvaG90a2V5L2VuYWJsZV91bmNvbmRpdGlvbmFsPC9r ZXk+Ci0gICAgICAgPGFwcGx5dG8+L2Rlc2t0b3AvaWJ1cy9nZW5lcmFsL2hvdGtleS9lbmFibGVf dW5jb25kaXRpb25hbDwvYXBwbHl0bz4KLSAgICAgICA8b3duZXI+aWJ1czwvb3duZXI+Ci1kaWZm IC0tZ2l0IGEvaWJ1cy0xLjAucGMuaW4gYi9pYnVzLTEuMC5wYy5pbgotaW5kZXggOWY1OTNhYi4u YzkzYTBlZCAxMDA2NDQKLS0tLSBhL2lidXMtMS4wLnBjLmluCi0rKysgYi9pYnVzLTEuMC5wYy5p bgotQEAgLTQsNiArNCw3IEBAIGxpYmRpcj1AbGliZGlyQAotIGluY2x1ZGVkaXI9QGluY2x1ZGVk aXJACi0gZGF0YWRpcj1AZGF0YWRpckAKLSBwa2dkYXRhZGlyPUBkYXRhZGlyQC9pYnVzCi0raGF2 ZV9pYnVzX2drYmQ9QEhBVkVfSUJVU19HS0JEQAotIAotIE5hbWU6IElCdXMKLSBEZXNjcmlwdGlv bjogSUJ1cyBMaWJyYXJ5Ci1kaWZmIC0tZ2l0IGEvaWJ1cy5zcGVjLmluIGIvaWJ1cy5zcGVjLmlu Ci1pbmRleCAzMzRmMzdlLi4yMDE3YWY5IDEwMDY0NAotLS0tIGEvaWJ1cy5zcGVjLmluCi0rKysg Yi9pYnVzLnNwZWMuaW4KLUBAIC01LDYgKzUsNyBAQAotIAotICMgQnVpbGQgZmxhZ3MKLSAlZGVm aW5lIGJ1aWxkX3B5dGhvbl9saWJyYXJ5IDAKLSslZGVmaW5lIGJ1aWxkX2xpYmdub21la2JkIDAK LSAKLSAlZGVmaW5lIGdsaWJfdmVyICUoWyAtYSAle19saWJkaXJ9L3BrZ2NvbmZpZy9nbGliLTIu MC5wYyBdICYmIHBrZy1jb25maWcgLS1tb2R2ZXJzaW9uIGdsaWItMi4wIHwgY3V0IC1kLiAtZiAx LDIgfHwgZWNobyAtbiAiOTk5IikKLSAlZGVmaW5lIGdjb25mMl92ZXJzaW9uIDIuMTIuMAotQEAg LTQwLDYgKzQxLDEwIEBAIEJ1aWxkUmVxdWlyZXM6ICBkY29uZi1kZXZlbAotIEJ1aWxkUmVxdWly ZXM6ICBweWdvYmplY3QyLWRldmVsCi0gQnVpbGRSZXF1aXJlczogIGludGx0b29sCi0gQnVpbGRS ZXF1aXJlczogIGlzby1jb2Rlcy1kZXZlbAotKyVpZiAle2J1aWxkX2xpYmdub21la2JkfQotK0J1 aWxkUmVxdWlyZXM6ICBsaWJ4a2JmaWxlLWRldmVsCi0rQnVpbGRSZXF1aXJlczogIGxpYmdub21l a2JkLWRldmVsCi0rJWVuZGlmCi0gCi0gUmVxdWlyZXM6ICAgJXtuYW1lfS1saWJzID0gJXt2ZXJz aW9ufS0le3JlbGVhc2V9Ci0gUmVxdWlyZXM6ICAgJXtuYW1lfS1ndGsyID0gJXt2ZXJzaW9ufS0l e3JlbGVhc2V9Ci1AQCAtNTIsNiArNTcsOSBAQCBSZXF1aXJlczogICBkYnVzLXB5dGhvbiA+PSAl e2RidXNfcHl0aG9uX3ZlcnNpb259Ci0gUmVxdWlyZXM6ICAgaW0tY2hvb3NlciA+PSAle2ltX2No b29zZXJfdmVyc2lvbn0KLSBSZXF1aXJlczogICBub3RpZnktcHl0aG9uCi0gUmVxdWlyZXM6ICAg bGlicnN2ZzIKLSslaWYgJXtidWlsZF9saWJnbm9tZWtiZH0KLStSZXF1aXJlczogICBsaWJnbm9t ZWtiZAotKyVlbmRpZgotIAotIFJlcXVpcmVzKHBvc3QpOiAgZGVza3RvcC1maWxlLXV0aWxzCi0g UmVxdWlyZXMocG9zdHVuKTogIGRlc2t0b3AtZmlsZS11dGlscwotQEAgLTE1Miw2ICsxNjAsMTAg QEAgT1BUSU9OUz0iJE9QVElPTlMgLS1lbmFibGUtcHl0aG9uLWxpYnJhcnkiCi0gT1BUSU9OUz0i JE9QVElPTlMgLS1kaXNhYmxlLXB5dGhvbi1saWJyYXJ5IgotICVlbmRpZgotIAotKyVpZiAle2J1 aWxkX2xpYmdub21la2JkfQotK09QVElPTlM9IiRPUFRJT05TIC0tZW5hYmxlLWxpYmdub21la2Jk IgotKyVlbmRpZgotKwotICVjb25maWd1cmUgJE9QVElPTlMKLSAKLSAjIG1ha2UgLUMgcG8gdXBk YXRlLWdtbwotZGlmZiAtLWdpdCBhL3NyYy9NYWtlZmlsZS5hbSBiL3NyYy9NYWtlZmlsZS5hbQot aW5kZXggNDA0ZTFkMi4uZjAwZmFiNyAxMDA2NDQKLS0tLSBhL3NyYy9NYWtlZmlsZS5hbQotKysr IGIvc3JjL01ha2VmaWxlLmFtCi1AQCAtMjAyLDYgKzIwMiw5IEBAIHR5cGVsaWJzX0RBVEEgPSAk KElOVFJPU1BFQ1RJT05fR0lSUzouZ2lyPS50eXBlbGliKQotIENMRUFORklMRVMgKz0gJChkaXN0 X2dpcl9EQVRBKSAkKHR5cGVsaWJzX0RBVEEpCi0gZW5kaWYKLSAKLStpYnVzX3NvdXJjZXMgKz0g aWJ1c3hrYnhtbC5jCi0raWJ1c19oZWFkZXJzICs9IGlidXN4a2J4bWwuaAotKwotICMgZ2VuIGVu dW0gdHlwZXMKLSBpYnVzZW51bXR5cGVzLmg6ICQoaWJ1c19oZWFkZXJzKSBpYnVzZW51bXR5cGVz LmgudGVtcGxhdGUKLSAJJChBTV9WX0dFTikgKCB0b3BfYnVpbGRkaXI9YGNkICQodG9wX2J1aWxk ZGlyKSAmJiBwd2RgOyBcCi1kaWZmIC0tZ2l0IGEvc3JjL2lidXMuaCBiL3NyYy9pYnVzLmgKLWlu ZGV4IGQ4ZTIyNmUuLmYwYTk0NTYgMTAwNjQ0Ci0tLS0gYS9zcmMvaWJ1cy5oCi0rKysgYi9zcmMv aWJ1cy5oCi1AQCAtNDcsNiArNDcsNyBAQAotICNpbmNsdWRlIDxpYnVza2V5cy5oPgotICNpbmNs dWRlIDxpYnVzZW51bXR5cGVzLmg+Ci0gI2luY2x1ZGUgPGlidXNob3RrZXkuaD4KLSsjaW5jbHVk ZSA8aWJ1c3hrYnhtbC5oPgotICNpbmNsdWRlIDxpYnVzeG1sLmg+Ci0gI2luY2x1ZGUgPGlidXNl bmdpbmVkZXNjLmg+Ci0gI2luY2x1ZGUgPGlidXNvYnNlcnZlZHBhdGguaD4KLWRpZmYgLS1naXQg YS9zcmMvaWJ1c3hrYnhtbC5jIGIvc3JjL2lidXN4a2J4bWwuYwotbmV3IGZpbGUgbW9kZSAxMDA2 NDQKLWluZGV4IDAwMDAwMDAuLmY4MTVlNWQKLS0tLSAvZGV2L251bGwKLSsrKyBiL3NyYy9pYnVz eGtieG1sLmMKLUBAIC0wLDAgKzEsNDY2IEBACi0rLyogLSotIG1vZGU6IEM7IGMtYmFzaWMtb2Zm c2V0OiA0OyBpbmRlbnQtdGFicy1tb2RlOiBuaWw7IC0qLSAqLwotKy8qIHZpbTpzZXQgZXQgc3Rz PTQ6ICovCi0rLyogYnVzIC0gVGhlIElucHV0IEJ1cwotKyAqIENvcHlyaWdodCAoQykgMjAxMyBU YWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLSsgKiBDb3B5cmlnaHQg KEMpIDIwMTMgUGVuZyBIdWFuZyA8c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+Ci0rICogQ29weXJp Z2h0IChDKSAyMDEzIFJlZCBIYXQsIEluYy4KLSsgKgotKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSsgKiBtb2RpZnkgaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0rICogTGlj ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy Ci0rICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLgotKyAqCi0rICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsgKiBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuCSBTZWUgdGhlIEdOVQot KyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rICoK LSsgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdl bmVyYWwgUHVibGljCi0rICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90 LCB3cml0ZSB0byB0aGUKLSsgKiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRl bXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKLSsgKiBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4K LSsgKi8KLSsjaWZkZWYgSEFWRV9DT05GSUdfSAotKyNpbmNsdWRlIDxjb25maWcuaD4KLSsjZW5k aWYKLSsKLSsjaW5jbHVkZSA8Z2xpYi5oPgotKwotKyNpbmNsdWRlICJpYnVzLmgiCi0rI2luY2x1 ZGUgImlidXN4a2J4bWwuaCIKLSsKLSsjaWZuZGVmIFhLQl9SVUxFU19YTUxfRklMRQotKyNkZWZp bmUgWEtCX1JVTEVTX1hNTF9GSUxFICIvdXNyL3NoYXJlL1gxMS94a2IvcnVsZXMvZXZkZXYueG1s IgotKyNlbmRpZgotKwotKyNkZWZpbmUgSUJVU19YS0JfQ09ORklHX1JFR0lTVFJZX0dFVF9QUklW QVRFKG8pICBcCi0rICAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSAoKG8pLCBJQlVTX1RZ UEVfWEtCX0NPTkZJR19SRUdJU1RSWSwgSUJ1c1hLQkNvbmZpZ1JlZ2lzdHJ5UHJpdmF0ZSkpCi0r Ci0rdHlwZWRlZiBzdHJ1Y3QgX0lCdXNYS0JDb25maWdSZWdpc3RyeVByaXZhdGUgSUJ1c1hLQkNv bmZpZ1JlZ2lzdHJ5UHJpdmF0ZTsKLSsKLStzdHJ1Y3QgX0lCdXNYS0JDb25maWdSZWdpc3RyeVBy aXZhdGUgewotKyAgICBHSGFzaFRhYmxlICpsYXlvdXRfbGlzdDsKLSsgICAgR0hhc2hUYWJsZSAq bGF5b3V0X2xhbmc7Ci0rICAgIEdIYXNoVGFibGUgKmxheW91dF9kZXNjOwotKyAgICBHSGFzaFRh YmxlICp2YXJpYW50X2Rlc2M7Ci0rfTsKLSsKLSsKLSsvKiBmdW5jdGlvbnMgcHJvdG90eXBlICov Ci0rc3RhdGljIHZvaWQgICAgICAgICBpYnVzX3hrYl9jb25maWdfcmVnaXN0cnlfZGVzdHJveQot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSUJ1c1hLQkNvbmZp Z1JlZ2lzdHJ5ICp4a2JfY29uZmlnKTsKLSsKLStHX0RFRklORV9UWVBFIChJQnVzWEtCQ29uZmln UmVnaXN0cnksIGlidXNfeGtiX2NvbmZpZ19yZWdpc3RyeSwgSUJVU19UWVBFX09CSkVDVCkKLSsK LStzdGF0aWMgdm9pZAotK3BhcnNlX3hrYl94bWxfbGFuZ3VhZ2VsaXN0X25vZGUgKElCdXNYS0JD b25maWdSZWdpc3RyeVByaXZhdGUgKnByaXYsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgWE1MTm9kZSAqcGFyZW50X25vZGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgZ2NoYXIgKmxheW91dF9uYW1lKQotK3sKLSsgICAgWE1MTm9kZSAqbm9kZSA9 IHBhcmVudF9ub2RlOwotKyAgICBYTUxOb2RlICpzdWJfbm9kZTsKLSsgICAgR0xpc3QgKnA7Ci0r ICAgIEdMaXN0ICpsYW5nX2xpc3QgPSBOVUxMOwotKwotKyAgICBnX2Fzc2VydCAobm9kZSAhPSBO VUxMKTsKLSsgICAgZ19hc3NlcnQgKGxheW91dF9uYW1lICE9IE5VTEwpOwotKyAgICBmb3IgKHAg PSBub2RlLT5zdWJfbm9kZXM7IHA7IHAgPSBwLT5uZXh0KSB7Ci0rICAgICAgICBzdWJfbm9kZSA9 IChYTUxOb2RlICopIHAtPmRhdGE7Ci0rICAgICAgICBpZiAoZ19zdHJjbXAwIChzdWJfbm9kZS0+ bmFtZSwgImlzbzYzOUlkIikgPT0gMCkgewotKyAgICAgICAgICAgIGxhbmdfbGlzdCA9IGdfbGlz dF9hcHBlbmQgKGxhbmdfbGlzdCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoZ3BvaW50ZXIpIGdfc3RyZHVwIChzdWJfbm9kZS0+dGV4dCkpOwotKyAgICAgICAgICAg IGNvbnRpbnVlOwotKyAgICAgICAgfQotKyAgICB9Ci0rICAgIGlmIChsYW5nX2xpc3QgPT0gTlVM TCkgewotKyAgICAgICAgLyogc29tZSBub2RlcyBoYXZlIG5vIGxhbmcgKi8KLSsgICAgICAgIHJl dHVybjsKLSsgICAgfQotKyAgICBpZiAoZ19oYXNoX3RhYmxlX2xvb2t1cCAocHJpdi0+bGF5b3V0 X2xhbmcsIGxheW91dF9uYW1lKSAhPSBOVUxMKSB7Ci0rICAgICAgICBnX3dhcm5pbmcgKCJkdXBs aWNhdGVkIG5hbWUgJXMgZXhpc3RzIiwgbGF5b3V0X25hbWUpOwotKyAgICAgICAgcmV0dXJuOwot KyAgICB9Ci0rICAgIGdfaGFzaF90YWJsZV9pbnNlcnQgKHByaXYtPmxheW91dF9sYW5nLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAoZ3BvaW50ZXIpIGdfc3RyZHVwIChsYXlvdXRfbmFtZSks Ci0rICAgICAgICAgICAgICAgICAgICAgICAgIChncG9pbnRlcikgbGFuZ19saXN0KTsKLSt9Ci0r Ci0rc3RhdGljIGNvbnN0IGdjaGFyICoKLStwYXJzZV94a2JfeG1sX2NvbmZpZ2l0ZW1fbm9kZSAo SUJ1c1hLQkNvbmZpZ1JlZ2lzdHJ5UHJpdmF0ZSAqcHJpdiwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgWE1MTm9kZSAqcGFyZW50X25vZGUpCi0rewotKyAgICBYTUxOb2RlICpub2Rl ID0gcGFyZW50X25vZGU7Ci0rICAgIFhNTE5vZGUgKnN1Yl9ub2RlOwotKyAgICBHTGlzdCAqcDsK LSsgICAgZ2NoYXIgKm5hbWUgPSBOVUxMOwotKyAgICBnY2hhciAqZGVzY3JpcHRpb24gPSBOVUxM OwotKwotKyAgICBnX2Fzc2VydCAobm9kZSAhPSBOVUxMKTsKLSsgICAgZm9yIChwID0gbm9kZS0+ c3ViX25vZGVzOyBwOyBwID0gcC0+bmV4dCkgewotKyAgICAgICAgc3ViX25vZGUgPSAoWE1MTm9k ZSAqKSBwLT5kYXRhOwotKyAgICAgICAgaWYgKGdfc3RyY21wMCAoc3ViX25vZGUtPm5hbWUsICJu YW1lIikgPT0gMCkgewotKyAgICAgICAgICAgIG5hbWUgPSBzdWJfbm9kZS0+dGV4dDsKLSsgICAg ICAgICAgICBjb250aW51ZTsKLSsgICAgICAgIH0KLSsgICAgICAgIGlmIChnX3N0cmNtcDAgKHN1 Yl9ub2RlLT5uYW1lLCAiZGVzY3JpcHRpb24iKSA9PSAwKSB7Ci0rICAgICAgICAgICAgZGVzY3Jp cHRpb24gPSBzdWJfbm9kZS0+dGV4dDsKLSsgICAgICAgICAgICBjb250aW51ZTsKLSsgICAgICAg IH0KLSsgICAgICAgIGlmIChnX3N0cmNtcDAgKHN1Yl9ub2RlLT5uYW1lLCAibGFuZ3VhZ2VMaXN0 IikgPT0gMCkgewotKyAgICAgICAgICAgIGlmIChuYW1lID09IE5VTEwpIHsKLSsgICAgICAgICAg ICAgICAgZ193YXJuaW5nICgibGF5b3V0IG5hbWUgaXMgTlVMTCBpbiBub2RlICVzIiwgbm9kZS0+ bmFtZSk7Ci0rICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotKyAgICAgICAgICAgIH0KLSsgICAg ICAgICAgICBwYXJzZV94a2JfeG1sX2xhbmd1YWdlbGlzdF9ub2RlIChwcml2LCBzdWJfbm9kZSwg bmFtZSk7Ci0rICAgICAgICAgICAgY29udGludWU7Ci0rICAgICAgICB9Ci0rICAgIH0KLSsgICAg aWYgKG5hbWUgPT0gTlVMTCkgewotKyAgICAgICAgZ193YXJuaW5nICgiTm8gbmFtZSBpbiBsYXlv dXQgbm9kZSIpOwotKyAgICAgICAgcmV0dXJuIE5VTEw7Ci0rICAgIH0KLSsgICAgaWYgKGdfaGFz aF90YWJsZV9sb29rdXAgKHByaXYtPmxheW91dF9kZXNjLCBuYW1lKSAhPSBOVUxMKSB7Ci0rICAg ICAgICBnX3dhcm5pbmcgKCJkdXBsaWNhdGVkIG5hbWUgJXMgZXhpc3RzIiwgbmFtZSk7Ci0rICAg ICAgICByZXR1cm4gbmFtZTsKLSsgICAgfQotKyAgICBnX2hhc2hfdGFibGVfaW5zZXJ0IChwcml2 LT5sYXlvdXRfZGVzYywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgKGdwb2ludGVyKSBnX3N0 cmR1cCAobmFtZSksCi0rICAgICAgICAgICAgICAgICAgICAgICAgIChncG9pbnRlcikgZ19zdHJk dXAgKGRlc2NyaXB0aW9uKSk7Ci0rCi0rICAgIHJldHVybiBuYW1lOwotK30KLSsKLStzdGF0aWMg Y29uc3QgZ2NoYXIgKgotK3BhcnNlX3hrYl94bWxfdmFyaWFudF9jb25maWdpdGVtX25vZGUgKElC dXNYS0JDb25maWdSZWdpc3RyeVByaXZhdGUgKnByaXYsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFhNTE5vZGUgKnBhcmVudF9ub2RlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBnY2hhciAqbGF5b3V0X25hbWUpCi0rewotKyAgICBYTUxOb2RlICpub2RlID0gcGFy ZW50X25vZGU7Ci0rICAgIFhNTE5vZGUgKnN1Yl9ub2RlOwotKyAgICBHTGlzdCAqcDsKLSsgICAg Z2NoYXIgKm5hbWUgPSBOVUxMOwotKyAgICBnY2hhciAqZGVzY3JpcHRpb24gPSBOVUxMOwotKyAg ICBnY2hhciAqdmFyaWFudF9sYW5nX25hbWUgPSBOVUxMOwotKwotKyAgICBnX2Fzc2VydCAobm9k ZSAhPSBOVUxMKTsKLSsgICAgZ19hc3NlcnQgKGxheW91dF9uYW1lICE9IE5VTEwpOwotKyAgICBm b3IgKHAgPSBub2RlLT5zdWJfbm9kZXM7IHA7IHAgPSBwLT5uZXh0KSB7Ci0rICAgICAgICBzdWJf bm9kZSA9IChYTUxOb2RlICopIHAtPmRhdGE7Ci0rICAgICAgICBpZiAoZ19zdHJjbXAwIChzdWJf bm9kZS0+bmFtZSwgIm5hbWUiKSA9PSAwKSB7Ci0rICAgICAgICAgICAgbmFtZSA9IHN1Yl9ub2Rl LT50ZXh0OwotKyAgICAgICAgICAgIGNvbnRpbnVlOwotKyAgICAgICAgfQotKyAgICAgICAgaWYg KGdfc3RyY21wMCAoc3ViX25vZGUtPm5hbWUsICJkZXNjcmlwdGlvbiIpID09IDApIHsKLSsgICAg ICAgICAgICBkZXNjcmlwdGlvbiA9IHN1Yl9ub2RlLT50ZXh0OwotKyAgICAgICAgICAgIGNvbnRp bnVlOwotKyAgICAgICAgfQotKyAgICAgICAgaWYgKGdfc3RyY21wMCAoc3ViX25vZGUtPm5hbWUs ICJsYW5ndWFnZUxpc3QiKSA9PSAwKSB7Ci0rICAgICAgICAgICAgaWYgKG5hbWUgPT0gTlVMTCkg ewotKyAgICAgICAgICAgICAgICBnX3dhcm5pbmcgKCJsYXlvdXQgbmFtZSBpcyBOVUxMIGluIG5v ZGUgJXMiLCBub2RlLT5uYW1lKTsKLSsgICAgICAgICAgICAgICAgY29udGludWU7Ci0rICAgICAg ICAgICAgfQotKyAgICAgICAgICAgIHZhcmlhbnRfbGFuZ19uYW1lID0gZ19zdHJkdXBfcHJpbnRm ICgiJXMoJXMpIiwgbGF5b3V0X25hbWUsIG5hbWUpOwotKyAgICAgICAgICAgIHBhcnNlX3hrYl94 bWxfbGFuZ3VhZ2VsaXN0X25vZGUgKHByaXYsIHN1Yl9ub2RlLCB2YXJpYW50X2xhbmdfbmFtZSk7 Ci0rICAgICAgICAgICAgZ19mcmVlICh2YXJpYW50X2xhbmdfbmFtZSk7Ci0rICAgICAgICAgICAg Y29udGludWU7Ci0rICAgICAgICB9Ci0rICAgIH0KLSsgICAgaWYgKG5hbWUgPT0gTlVMTCkgewot KyAgICAgICAgZ193YXJuaW5nICgiTm8gbmFtZSBpbiBsYXlvdXQgbm9kZSIpOwotKyAgICAgICAg cmV0dXJuIE5VTEw7Ci0rICAgIH0KLSsgICAgaWYgKGdfaGFzaF90YWJsZV9sb29rdXAgKHByaXYt PnZhcmlhbnRfZGVzYywgbmFtZSkgIT0gTlVMTCkgewotKyAgICAgICAgLyogVGhpcyBpcyBhbiBl eHBlY3RlZCBjYXNlLiAqLwotKyAgICAgICAgcmV0dXJuIG5hbWU7Ci0rICAgIH0KLSsgICAgdmFy aWFudF9sYW5nX25hbWUgPSBnX3N0cmR1cF9wcmludGYgKCIlcyglcykiLCBsYXlvdXRfbmFtZSwg bmFtZSk7Ci0rICAgIGdfaGFzaF90YWJsZV9pbnNlcnQgKHByaXYtPnZhcmlhbnRfZGVzYywKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgKGdwb2ludGVyKSB2YXJpYW50X2xhbmdfbmFtZSwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgKGdwb2ludGVyKSBnX3N0cmR1cCAoZGVzY3JpcHRpb24p KTsKLSsgICAgcmV0dXJuIG5hbWU7Ci0rfQotKwotK3N0YXRpYyBjb25zdCBnY2hhciAqCi0rcGFy c2VfeGtiX3htbF92YXJpYW50X25vZGUgKElCdXNYS0JDb25maWdSZWdpc3RyeVByaXZhdGUgKnBy aXYsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhNTE5vZGUgKnBhcmVudF9ub2RlLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqbGF5b3V0X25hbWUpCi0r ewotKyAgICBYTUxOb2RlICpub2RlID0gcGFyZW50X25vZGU7Ci0rICAgIFhNTE5vZGUgKnN1Yl9u b2RlOwotKyAgICBHTGlzdCAqcDsKLSsgICAgY29uc3QgZ2NoYXIgKnZhcmlhbnRfbmFtZSA9IE5V TEw7Ci0rCi0rICAgIGdfYXNzZXJ0IChub2RlICE9IE5VTEwpOwotKyAgICBnX2Fzc2VydCAobGF5 b3V0X25hbWUgIT0gTlVMTCk7Ci0rICAgIGZvciAocCA9IG5vZGUtPnN1Yl9ub2RlczsgcDsgcCA9 IHAtPm5leHQpIHsKLSsgICAgICAgIHN1Yl9ub2RlID0gKFhNTE5vZGUgKikgcC0+ZGF0YTsKLSsg ICAgICAgIGlmIChnX3N0cmNtcDAgKHN1Yl9ub2RlLT5uYW1lLCAiY29uZmlnSXRlbSIpID09IDAp IHsKLSsgICAgICAgICAgICB2YXJpYW50X25hbWUgPSBwYXJzZV94a2JfeG1sX3ZhcmlhbnRfY29u ZmlnaXRlbV9ub2RlIChwcml2LCBzdWJfbm9kZSwgbGF5b3V0X25hbWUpOwotKyAgICAgICAgICAg IGNvbnRpbnVlOwotKyAgICAgICAgfQotKyAgICB9Ci0rICAgIHJldHVybiB2YXJpYW50X25hbWU7 Ci0rfQotKwotK3N0YXRpYyBHTGlzdCAqCi0rcGFyc2VfeGtiX3htbF92YXJpYW50bGlzdF9ub2Rl IChJQnVzWEtCQ29uZmlnUmVnaXN0cnlQcml2YXRlICpwcml2LAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgWE1MTm9kZSAqcGFyZW50X25vZGUsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBnY2hhciAqbGF5b3V0X25hbWUsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBHTGlzdCAqdmFyaWFudF9saXN0KQotK3sKLSsgICAgWE1MTm9kZSAq bm9kZSA9IHBhcmVudF9ub2RlOwotKyAgICBYTUxOb2RlICpzdWJfbm9kZTsKLSsgICAgR0xpc3Qg KnA7Ci0rICAgIGNvbnN0IGdjaGFyICp2YXJpYW50X25hbWUgPSBOVUxMOwotKwotKyAgICBnX2Fz c2VydCAobm9kZSAhPSBOVUxMKTsKLSsgICAgZ19hc3NlcnQgKGxheW91dF9uYW1lICE9IE5VTEwp OwotKyAgICBmb3IgKHAgPSBub2RlLT5zdWJfbm9kZXM7IHA7IHAgPSBwLT5uZXh0KSB7Ci0rICAg ICAgICBzdWJfbm9kZSA9IChYTUxOb2RlICopIHAtPmRhdGE7Ci0rICAgICAgICBpZiAoZ19zdHJj bXAwIChzdWJfbm9kZS0+bmFtZSwgInZhcmlhbnQiKSA9PSAwKSB7Ci0rICAgICAgICAgICAgdmFy aWFudF9uYW1lID0gcGFyc2VfeGtiX3htbF92YXJpYW50X25vZGUgKHByaXYsIHN1Yl9ub2RlLCBs YXlvdXRfbmFtZSk7Ci0rICAgICAgICAgICAgaWYgKHZhcmlhbnRfbmFtZSAhPSBOVUxMKSB7Ci0r ICAgICAgICAgICAgICAgIHZhcmlhbnRfbGlzdCA9IGdfbGlzdF9hcHBlbmQgKHZhcmlhbnRfbGlz dCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdwb2lu dGVyKSBnX3N0cmR1cCAodmFyaWFudF9uYW1lKSk7Ci0rICAgICAgICAgICAgfQotKyAgICAgICAg ICAgIGNvbnRpbnVlOwotKyAgICAgICAgfQotKyAgICB9Ci0rICAgIHJldHVybiB2YXJpYW50X2xp c3Q7Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rcGFyc2VfeGtiX3htbF9sYXlvdXRfbm9kZSAoSUJ1 c1hLQkNvbmZpZ1JlZ2lzdHJ5UHJpdmF0ZSAqcHJpdiwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICBYTUxOb2RlICpwYXJlbnRfbm9kZSkKLSt7Ci0rICAgIFhNTE5vZGUgKm5vZGUgPSBwYXJl bnRfbm9kZTsKLSsgICAgWE1MTm9kZSAqc3ViX25vZGU7Ci0rICAgIEdMaXN0ICpwOwotKyAgICBj b25zdCBnY2hhciAqbmFtZSA9IE5VTEw7Ci0rICAgIEdMaXN0ICp2YXJpYW50X2xpc3QgPSBOVUxM OwotKwotKyAgICBnX2Fzc2VydCAobm9kZSAhPSBOVUxMKTsKLSsgICAgZm9yIChwID0gbm9kZS0+ c3ViX25vZGVzOyBwOyBwID0gcC0+bmV4dCkgewotKyAgICAgICAgc3ViX25vZGUgPSAoWE1MTm9k ZSAqKSBwLT5kYXRhOwotKyAgICAgICAgaWYgKGdfc3RyY21wMCAoc3ViX25vZGUtPm5hbWUsICJj b25maWdJdGVtIikgPT0gMCkgewotKyAgICAgICAgICAgIG5hbWUgPSBwYXJzZV94a2JfeG1sX2Nv bmZpZ2l0ZW1fbm9kZSAocHJpdiwgc3ViX25vZGUpOwotKyAgICAgICAgICAgIGNvbnRpbnVlOwot KyAgICAgICAgfQotKyAgICAgICAgaWYgKGdfc3RyY21wMCAoc3ViX25vZGUtPm5hbWUsICJ2YXJp YW50TGlzdCIpID09IDApIHsKLSsgICAgICAgICAgICBpZiAobmFtZSA9PSBOVUxMKSB7Ci0rICAg ICAgICAgICAgICAgIGdfd2FybmluZyAoImxheW91dCBuYW1lIGlzIE5VTEwgaW4gbm9kZSAlcyIs IG5vZGUtPm5hbWUpOwotKyAgICAgICAgICAgICAgICBjb250aW51ZTsKLSsgICAgICAgICAgICB9 Ci0rICAgICAgICAgICAgdmFyaWFudF9saXN0ID0gcGFyc2VfeGtiX3htbF92YXJpYW50bGlzdF9u b2RlIChwcml2LCBzdWJfbm9kZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50X2xpc3QpOwotKyAgICAg ICAgICAgIGNvbnRpbnVlOwotKyAgICAgICAgfQotKyAgICB9Ci0rICAgIGlmIChnX2hhc2hfdGFi bGVfbG9va3VwIChwcml2LT5sYXlvdXRfbGlzdCwgbmFtZSkgIT0gTlVMTCkgewotKyAgICAgICAg Z193YXJuaW5nICgiZHVwbGljYXRlZCBuYW1lICVzIGV4aXN0cyIsIG5hbWUpOwotKyAgICAgICAg cmV0dXJuOwotKyAgICB9Ci0rICAgIGdfaGFzaF90YWJsZV9pbnNlcnQgKHByaXYtPmxheW91dF9s aXN0LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAoZ3BvaW50ZXIpIGdfc3RyZHVwIChuYW1l KSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgKGdwb2ludGVyKSB2YXJpYW50X2xpc3QpOwot K30KLSsKLStzdGF0aWMgdm9pZAotK3BhcnNlX3hrYl94bWxfdG9wX25vZGUgKElCdXNYS0JDb25m aWdSZWdpc3RyeVByaXZhdGUgKnByaXYsCi0rICAgICAgICAgICAgICAgICAgICAgICAgWE1MTm9k ZSAqcGFyZW50X25vZGUpCi0rewotKyAgICBYTUxOb2RlICpub2RlID0gcGFyZW50X25vZGU7Ci0r ICAgIFhNTE5vZGUgKnN1Yl9ub2RlOwotKyAgICBHTGlzdCAqcDsKLSsKLSsgICAgZ19hc3NlcnQg KHByaXYgIT0gTlVMTCk7Ci0rICAgIGdfYXNzZXJ0IChub2RlICE9IE5VTEwpOwotKwotKyAgICBp ZiAoZ19zdHJjbXAwIChub2RlLT5uYW1lLCAieGtiQ29uZmlnUmVnaXN0cnkiKSAhPSAwKSB7Ci0r ICAgICAgICBnX3dhcm5pbmcgKCJub2RlIGhhcyBubyB4a2JDb25maWdSZWdpc3RyeSBuYW1lIik7 Ci0rICAgICAgICByZXR1cm47Ci0rICAgIH0KLSsgICAgZm9yIChwID0gbm9kZS0+c3ViX25vZGVz OyBwOyBwID0gcC0+bmV4dCkgewotKyAgICAgICAgc3ViX25vZGUgPSAoWE1MTm9kZSAqKSBwLT5k YXRhOwotKyAgICAgICAgaWYgKGdfc3RyY21wMCAoc3ViX25vZGUtPm5hbWUsICJsYXlvdXRMaXN0 IikgPT0gMCkgewotKyAgICAgICAgICAgIGJyZWFrOwotKyAgICAgICAgfQotKyAgICB9Ci0rICAg IGlmIChwID09IE5VTEwpIHsKLSsgICAgICAgIGdfd2FybmluZyAoInhrYkNvbmZpZ1JlZ2lzdHJ5 IG5vZGUgaGFzIG5vIGxheW91dExpc3Qgbm9kZSIpOwotKyAgICAgICAgcmV0dXJuOwotKyAgICB9 Ci0rICAgIG5vZGUgPSBzdWJfbm9kZTsKLSsgICAgZm9yIChwID0gbm9kZS0+c3ViX25vZGVzOyBw OyBwID0gcC0+bmV4dCkgewotKyAgICAgICAgc3ViX25vZGUgPSAoWE1MTm9kZSAqKSBwLT5kYXRh OwotKyAgICAgICAgaWYgKGdfc3RyY21wMCAoc3ViX25vZGUtPm5hbWUsICJsYXlvdXQiKSA9PSAw KSB7Ci0rICAgICAgICAgICAgcGFyc2VfeGtiX3htbF9sYXlvdXRfbm9kZSAocHJpdiwgc3ViX25v ZGUpOwotKyAgICAgICAgICAgIGNvbnRpbnVlOwotKyAgICAgICAgfQotKyAgICB9Ci0rfQotKwot K3N0YXRpYyB2b2lkCi0rZnJlZV9sYW5nX2xpc3QgKEdMaXN0ICpsaXN0KQotK3sKLSsgICAgR0xp c3QgKmwgPSBsaXN0OwotKyAgICB3aGlsZSAobCkgewotKyAgICAgICAgZ19mcmVlIChsLT5kYXRh KTsKLSsgICAgICAgIGwtPmRhdGEgPSBOVUxMOwotKyAgICAgICAgbCA9IGwtPm5leHQ7Ci0rICAg IH0KLSsgICAgZ19saXN0X2ZyZWUgKGxpc3QpOwotK30KLSsKLStzdGF0aWMgdm9pZAotK3BhcnNl X3hrYl9jb25maWdfcmVnaXN0cnlfZmlsZSAoSUJ1c1hLQkNvbmZpZ1JlZ2lzdHJ5UHJpdmF0ZSAq cHJpdiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICpmaWxl KQotK3sKLSsgICAgWE1MTm9kZSAqbm9kZTsKLSsKLSsgICAgZ19hc3NlcnQgKGZpbGUgIT0gTlVM TCk7Ci0rCi0rICAgIHByaXYtPmxheW91dF9saXN0ID0gZ19oYXNoX3RhYmxlX25ld19mdWxsIChn X3N0cl9oYXNoLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKEdFcXVhbEZ1bmMpIGdfc3RyX2VxdWFsLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKEdEZXN0cm95Tm90aWZ5KSBnX2ZyZWUsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR0Rlc3Ryb3lOb3RpZnkpIGZy ZWVfbGFuZ19saXN0KTsKLSsgICAgcHJpdi0+bGF5b3V0X2Rlc2MgPSBnX2hhc2hfdGFibGVfbmV3 X2Z1bGwgKGdfc3RyX2hhc2gsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoR0VxdWFsRnVuYykgZ19zdHJfZXF1YWwsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR0Rlc3Ryb3lOb3RpZnkpIGdfZnJlZSwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHRGVzdHJveU5v dGlmeSkgZ19mcmVlKTsKLSsgICAgcHJpdi0+bGF5b3V0X2xhbmcgPSBnX2hhc2hfdGFibGVfbmV3 X2Z1bGwgKGdfc3RyX2hhc2gsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoR0VxdWFsRnVuYykgZ19zdHJfZXF1YWwsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR0Rlc3Ryb3lOb3RpZnkpIGdfZnJlZSwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHRGVzdHJveU5v dGlmeSkgZnJlZV9sYW5nX2xpc3QpOwotKyAgICBwcml2LT52YXJpYW50X2Rlc2MgPSBnX2hhc2hf dGFibGVfbmV3X2Z1bGwgKGdfc3RyX2hhc2gsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoR0VxdWFsRnVuYykgZ19zdHJfZXF1YWwsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR0Rlc3Ryb3lOb3RpZnkpIGdf ZnJlZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChH RGVzdHJveU5vdGlmeSkgZ19mcmVlKTsKLSsgICAgbm9kZSA9IGlidXNfeG1sX3BhcnNlX2ZpbGUg KGZpbGUpOwotKyAgICBwYXJzZV94a2JfeG1sX3RvcF9ub2RlIChwcml2LCBub2RlKTsKLSsgICAg aWJ1c194bWxfZnJlZSAobm9kZSk7Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0raWJ1c194a2JfY29u ZmlnX3JlZ2lzdHJ5X2luaXQgKElCdXNYS0JDb25maWdSZWdpc3RyeSAqeGtiX2NvbmZpZykKLSt7 Ci0rICAgIElCdXNYS0JDb25maWdSZWdpc3RyeVByaXZhdGUgKnByaXY7Ci0rICAgIGNvbnN0IGdj aGFyICpmaWxlID0gWEtCX1JVTEVTX1hNTF9GSUxFOwotKwotKyAgICBwcml2ID0gSUJVU19YS0Jf Q09ORklHX1JFR0lTVFJZX0dFVF9QUklWQVRFICh4a2JfY29uZmlnKTsKLSsgICAgcGFyc2VfeGti X2NvbmZpZ19yZWdpc3RyeV9maWxlIChwcml2LCBmaWxlKTsKLSt9Ci0rCi0rc3RhdGljIHZvaWQK LStpYnVzX3hrYl9jb25maWdfcmVnaXN0cnlfZGVzdHJveSAoSUJ1c1hLQkNvbmZpZ1JlZ2lzdHJ5 ICp4a2JfY29uZmlnKQotK3sKLSsgICAgSUJ1c1hLQkNvbmZpZ1JlZ2lzdHJ5UHJpdmF0ZSAqcHJp djsKLSsKLSsgICAgZ19yZXR1cm5faWZfZmFpbCAoeGtiX2NvbmZpZyAhPSBOVUxMKTsKLSsKLSsg ICAgcHJpdiA9IElCVVNfWEtCX0NPTkZJR19SRUdJU1RSWV9HRVRfUFJJVkFURSAoeGtiX2NvbmZp Zyk7Ci0rCi0rICAgIGdfaGFzaF90YWJsZV9kZXN0cm95IChwcml2LT5sYXlvdXRfbGlzdCk7Ci0r ICAgIHByaXYtPmxheW91dF9saXN0ID0gTlVMTDsKLSsgICAgZ19oYXNoX3RhYmxlX2Rlc3Ryb3kg KHByaXYtPmxheW91dF9sYW5nKTsKLSsgICAgcHJpdi0+bGF5b3V0X2xhbmc9IE5VTEw7Ci0rICAg IGdfaGFzaF90YWJsZV9kZXN0cm95IChwcml2LT5sYXlvdXRfZGVzYyk7Ci0rICAgIHByaXYtPmxh eW91dF9kZXNjPSBOVUxMOwotKyAgICBnX2hhc2hfdGFibGVfZGVzdHJveSAocHJpdi0+dmFyaWFu dF9kZXNjKTsKLSsgICAgcHJpdi0+dmFyaWFudF9kZXNjID0gTlVMTDsKLSsKLSsgICAgSUJVU19P QkpFQ1RfQ0xBU1MoaWJ1c194a2JfY29uZmlnX3JlZ2lzdHJ5X3BhcmVudF9jbGFzcyktPmRlc3Ry b3kgKElCVVNfT0JKRUNUICh4a2JfY29uZmlnKSk7Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0raWJ1 c194a2JfY29uZmlnX3JlZ2lzdHJ5X2NsYXNzX2luaXQgKElCdXNYS0JDb25maWdSZWdpc3RyeUNs YXNzICprbGFzcykKLSt7Ci0rICAgIElCdXNPYmplY3RDbGFzcyAqaWJ1c19vYmplY3RfY2xhc3Mg PSBJQlVTX09CSkVDVF9DTEFTUyAoa2xhc3MpOwotKwotKyAgICBnX3R5cGVfY2xhc3NfYWRkX3By aXZhdGUgKGtsYXNzLCBzaXplb2YgKElCdXNYS0JDb25maWdSZWdpc3RyeVByaXZhdGUpKTsKLSsK LSsgICAgaWJ1c19vYmplY3RfY2xhc3MtPmRlc3Ryb3kgPSAoSUJ1c09iamVjdERlc3Ryb3lGdW5j KSBpYnVzX3hrYl9jb25maWdfcmVnaXN0cnlfZGVzdHJveTsKLSt9Ci0rCi0rSUJ1c1hLQkNvbmZp Z1JlZ2lzdHJ5ICoKLStpYnVzX3hrYl9jb25maWdfcmVnaXN0cnlfbmV3ICh2b2lkKQotK3sKLSsg ICAgSUJ1c1hLQkNvbmZpZ1JlZ2lzdHJ5ICp4a2JfY29uZmlnOwotKwotKyAgICB4a2JfY29uZmln ID0gSUJVU19YS0JfQ09ORklHX1JFR0lTVFJZIChnX29iamVjdF9uZXcgKElCVVNfVFlQRV9YS0Jf Q09ORklHX1JFR0lTVFJZLCBOVUxMKSk7Ci0rICAgIHJldHVybiB4a2JfY29uZmlnOwotK30KLSsK LSsjZGVmaW5lIFRBQkxFX0ZVTkMoZmllbGRfbmFtZSkgY29uc3QgR0hhc2hUYWJsZSAqICAgICAg ICAgICAgICAgICAgICAgICBcCi0raWJ1c194a2JfY29uZmlnX3JlZ2lzdHJ5X2dldF8jI2ZpZWxk X25hbWUgIChJQnVzWEtCQ29uZmlnUmVnaXN0cnkgKnhrYl9jb25maWcpIFwKLSt7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCi0rICAgIElCdXNYS0JDb25maWdSZWdpc3RyeVByaXZhdGUgKnByaXY7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSsgICAgZ19yZXR1 cm5fdmFsX2lmX2ZhaWwgKHhrYl9jb25maWcgIT0gTlVMTCwgTlVMTCk7ICAgICAgICAgICAgICAg ICAgICBcCi0rICAgIHByaXYgPSBJQlVTX1hLQl9DT05GSUdfUkVHSVNUUllfR0VUX1BSSVZBVEUg KHhrYl9jb25maWcpOyAgICAgICAgICAgXAotKyAgICByZXR1cm4gcHJpdi0+ZmllbGRfbmFtZTsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSt9Ci0rCi0rVEFC TEVfRlVOQyAobGF5b3V0X2xpc3QpCi0rVEFCTEVfRlVOQyAobGF5b3V0X2xhbmcpCi0rVEFCTEVf RlVOQyAobGF5b3V0X2Rlc2MpCi0rVEFCTEVfRlVOQyAodmFyaWFudF9kZXNjKQotKwotKyN1bmRl ZiBUQUJMRV9GVU5DCi0rCi0rR0xpc3QgKgotK2lidXNfeGtiX2NvbmZpZ19yZWdpc3RyeV9sYXlv dXRfbGlzdF9nZXRfbGF5b3V0cyAoSUJ1c1hLQkNvbmZpZ1JlZ2lzdHJ5ICp4a2JfY29uZmlnKQot K3sKLSsgICAgR0hhc2hUYWJsZSAqdGFibGU7Ci0rICAgIEdMaXN0ICpsaXN0ID0gTlVMTDsKLSsK LSsgICAgdGFibGUgPSAoR0hhc2hUYWJsZSAqKQotKyAgICAgICAgaWJ1c194a2JfY29uZmlnX3Jl Z2lzdHJ5X2dldF9sYXlvdXRfbGlzdCAoeGtiX2NvbmZpZyk7Ci0rICAgIGxpc3QgPSAoR0xpc3Qg KikgZ19oYXNoX3RhYmxlX2dldF9rZXlzICh0YWJsZSk7Ci0rICAgIHJldHVybiBsaXN0OwotK30K LSsKLSsvKiB2YWxhIGNvdWxkIHVzZSBHTGliLkxpc3Q8c3RyaW5nPiBmb3IgdGhlIHJldHVybmVk IHBvaW50ZXIgYW5kCi0rICogdGhlIGRlY2xhcmF0aW9uIGNhbGxzIGdfbGlzdF9mb3JlYWNoIChy ZXR2YWwsIGdfZnJlZSwgTlVMTCkuCi0rICogV2hlbiBJIHRoaW5rIGFib3V0IEdMaWIuTGlzdDxz dHJpbmc+IHYucy4gR0xpYi5MaXN0LCBwcm9iYWJseQotKyAqIEkgdGhpbmsgR0xpYi5MaXN0PHN0 cmluZz4gaXMgYmV0dGVyIGZvciB0aGUgZnVuY3Rpb24gYW5kIHNldAotKyAqIGdfc3RyZHVwKCkg aGVyZS4gSSBkbyBub3Qga25vdyBhYm91dCBHSlMgaW1wbGVtZW50YXRpb24uCi0rICovCi0rI2Rl ZmluZSBUQUJMRV9MT09LVVBfTElTVF9GVU5DKGZpZWxkX25hbWUsIHZhbHVlKSBHTGlzdCAqICAg ICAgICAgICAgICAgXAotK2lidXNfeGtiX2NvbmZpZ19yZWdpc3RyeV8jI2ZpZWxkX25hbWUjI19n ZXRfIyN2YWx1ZSAgKElCdXNYS0JDb25maWdSZWdpc3RyeSAqeGtiX2NvbmZpZywgY29uc3QgZ2No YXIgKmtleSkgXAotK3sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSsgICAgR0hhc2hUYWJsZSAqdGFibGU7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0rICAgIEdM aXN0ICpsaXN0ID0gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAotKyAgICBHTGlzdCAqcmV0dmFsPSBOVUxMOyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSsgICAgR0xpc3QgKnAgPSBOVUxMOyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAotKyAgICB0YWJsZSA9IChHSGFzaFRhYmxlICopICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSsgICAgICAgIGlidXNfeGtiX2NvbmZpZ19y ZWdpc3RyeV9nZXRfIyNmaWVsZF9uYW1lICh4a2JfY29uZmlnKTsgICAgICAgICBcCi0rICAgIGxp c3QgPSAoR0xpc3QgKikgZ19oYXNoX3RhYmxlX2xvb2t1cCAodGFibGUsIGtleSk7ICAgICAgICAg ICAgICAgICAgXAotKyAgICByZXR2YWwgPSBnX2xpc3RfY29weSAobGlzdCk7ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSsgICAgZm9yIChwID0gcmV0dmFsOyBwOyBw ID0gcC0+bmV4dCkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0rICAgICAg ICBwLT5kYXRhID0gZ19zdHJkdXAgKHAtPmRhdGEpOyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAotKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSsgICAgcmV0dXJuIHJldHZhbDsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0rfQotKwot KyNkZWZpbmUgVEFCTEVfTE9PS1VQX1NUUklOR19GVU5DKGZpZWxkX25hbWUsIHZhbHVlKSBnY2hh ciAqICAgICAgICAgICAgIFwKLStpYnVzX3hrYl9jb25maWdfcmVnaXN0cnlfIyNmaWVsZF9uYW1l IyNfZ2V0XyMjdmFsdWUgIChJQnVzWEtCQ29uZmlnUmVnaXN0cnkgKnhrYl9jb25maWcsIGNvbnN0 IGdjaGFyICprZXkpIFwKLSt7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0rICAgIEdIYXNoVGFibGUgKnRhYmxl OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotKyAg ICBjb25zdCBnY2hhciAqZGVzYyA9IE5VTEw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0rICAgIHRhYmxlID0gKEdIYXNoVGFi bGUgKikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotKyAg ICAgICAgaWJ1c194a2JfY29uZmlnX3JlZ2lzdHJ5X2dldF8jI2ZpZWxkX25hbWUgKHhrYl9jb25m aWcpOyAgICAgICAgIFwKLSsgICAgZGVzYyA9IChjb25zdCBnY2hhciAqKSBnX2hhc2hfdGFibGVf bG9va3VwICh0YWJsZSwga2V5KTsgICAgICAgICAgICBcCi0rICAgIHJldHVybiBnX3N0cmR1cCAo ZGVzYyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotK30K LSsKLStUQUJMRV9MT09LVVBfTElTVF9GVU5DIChsYXlvdXRfbGlzdCwgdmFyaWFudHMpCi0rVEFC TEVfTE9PS1VQX0xJU1RfRlVOQyAobGF5b3V0X2xhbmcsIGxhbmdzKQotK1RBQkxFX0xPT0tVUF9T VFJJTkdfRlVOQyAobGF5b3V0X2Rlc2MsIGRlc2MpCi0rVEFCTEVfTE9PS1VQX1NUUklOR19GVU5D ICh2YXJpYW50X2Rlc2MsIGRlc2MpCi0rCi0rI3VuZGVmIFRBQkxFX0xPT0tVUF9MSVNUX0ZVTkMK LSsjdW5kZWYgVEFCTEVfTE9PS1VQX1NUUklOR19GVU5DCi1kaWZmIC0tZ2l0IGEvc3JjL2lidXN4 a2J4bWwuaCBiL3NyYy9pYnVzeGtieG1sLmgKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAw MDAwMDAwLi41YWE0ODZkCi0tLS0gL2Rldi9udWxsCi0rKysgYi9zcmMvaWJ1c3hrYnhtbC5oCi1A QCAtMCwwICsxLDE4NyBAQAotKy8qIC0qLSBtb2RlOiBDOyBjLWJhc2ljLW9mZnNldDogNDsgaW5k ZW50LXRhYnMtbW9kZTogbmlsOyAtKi0gKi8KLSsvKiB2aW06c2V0IGV0IHN0cz00OiAqLwotKy8q IGJ1cyAtIFRoZSBJbnB1dCBCdXMKLSsgKiBDb3B5cmlnaHQgKEMpIDIwMTMgVGFrYW8gRnVqaXdh cmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci0rICogQ29weXJpZ2h0IChDKSAyMDEzIFBl bmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgotKyAqIENvcHlyaWdodCAoQykgMjAx MyBSZWQgSGF0LCBJbmMuCi0rICoKLSsgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0rICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotKyAqIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotKyAqIHZlcnNp b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KLSsgKgotKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAotKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91 dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLgkgU2VlIHRoZSBHTlUKLSsgKiBMZXNzZXIg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyAqCi0rICogWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp YwotKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8g dGhlCi0rICogRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2Ug LSBTdWl0ZSAzMzAsCi0rICogQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCi0rICovCi0rI2lm bmRlZiBfX0lCVVNfWEtCWE1MX0hfCi0rI2RlZmluZSBfX0lCVVNfWEtCWE1MX0hfCi0rCi0rI2lm ICFkZWZpbmVkIChfX0lCVVNfSF9JTlNJREVfXykgJiYgIWRlZmluZWQgKElCVVNfQ09NUElMQVRJ T04pCi0rI2Vycm9yICJPbmx5IDxpYnVzLmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseSIKLSsj ZW5kaWYKLSsKLSsjaW5jbHVkZSAiaWJ1cy5oIgotKwotKy8qCi0rICogVHlwZSBtYWNyb3MuCi0r ICovCi0rLyogZGVmaW5lIElCdXNYS0JDb25maWdSZWdpc3RyeSBtYWNyb3MgKi8KLSsjZGVmaW5l IElCVVNfVFlQRV9YS0JfQ09ORklHX1JFR0lTVFJZICAgICAgICAgICAgICAgICAgIFwKLSsgICAg KGlidXNfeGtiX2NvbmZpZ19yZWdpc3RyeV9nZXRfdHlwZSAoKSkKLSsjZGVmaW5lIElCVVNfWEtC X0NPTkZJR19SRUdJU1RSWShvYmopICAgICAgICAgICAgICAgICAgIFwKLSsgICAgKEdfVFlQRV9D SEVDS19JTlNUQU5DRV9DQVNUICgob2JqKSwgSUJVU19UWVBFX1hLQl9DT05GSUdfUkVHSVNUUlks IElCdXNYS0JDb25maWdSZWdpc3RyeSkpCi0rI2RlZmluZSBJQlVTX1hLQl9DT05GSUdfUkVHSVNU UllfQ0xBU1Moa2xhc3MpICAgICAgICAgICBcCi0rICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FT VCAoKGtsYXNzKSwgSUJVU19UWVBFX1hLQl9DT05GSUdfUkVHSVNUUlksIElCdXNYS0JDb25maWdS ZWdpc3RyeUNsYXNzKSkKLSsjZGVmaW5lIElCVVNfSVNfWEtCX0NPTkZJR19SRUdJU1RSWShvYmop ICAgICAgICAgICAgICAgIFwKLSsgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgob2Jq KSwgSUJVU19UWVBFX1hLQl9DT05GSUdfUkVHSVNUUlkpKQotKyNkZWZpbmUgSUJVU19JU19YS0Jf Q09ORklHX1JFR0lTVFJZX0NMQVNTKGtsYXNzKSAgICAgICAgXAotKyAgICAoR19UWVBFX0NIRUNL X0NMQVNTX1RZUEUgKChrbGFzcyksIElCVVNfVFlQRV9YS0JfQ09ORklHX1JFR0lTVFJZKSkKLSsj ZGVmaW5lIElCVVNfWEtCX0NPTkZJR19SRUdJU1RSWV9HRVRfQ0xBU1Mob2JqKSAgICAgICAgIFwK LSsgICAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MgKChvYmopLCBJQlVTX1RZUEVfWEtCX0NP TkZJR19SRUdJU1RSWSwgSUJ1c1hLQkNvbmZpZ1JlZ2lzdHJ5Q2xhc3MpKQotKwotK0dfQkVHSU5f REVDTFMKLSsKLSt0eXBlZGVmIHN0cnVjdCBfSUJ1c1hLQkNvbmZpZ1JlZ2lzdHJ5IElCdXNYS0JD b25maWdSZWdpc3RyeTsKLSt0eXBlZGVmIHN0cnVjdCBfSUJ1c1hLQkNvbmZpZ1JlZ2lzdHJ5Q2xh c3MgSUJ1c1hLQkNvbmZpZ1JlZ2lzdHJ5Q2xhc3M7Ci0rCi0rc3RydWN0IF9JQnVzWEtCQ29uZmln UmVnaXN0cnkgewotKyAgICBJQnVzT2JqZWN0IHBhcmVudDsKLSt9OwotKwotK3N0cnVjdCBfSUJ1 c1hLQkNvbmZpZ1JlZ2lzdHJ5Q2xhc3MgewotKyAgICBJQnVzT2JqZWN0Q2xhc3MgcGFyZW50Owot KyAgICAvKiBzaWduYWxzICovCi0rICAgIC8qPCBwcml2YXRlID4qLwotKyAgICAvKiBwYWRkaW5n ICovCi0rICAgIGdwb2ludGVyIHBkdW1teVs4XTsKLSt9OwotKwotKwotK0dUeXBlICAgICAgICAg ICAgaWJ1c194a2JfY29uZmlnX3JlZ2lzdHJ5X2dldF90eXBlCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkKTsKLSsKLSsvKioKLSsgKiBpYnVz X3hrYl9jb25maWdfcmVnaXN0cnlfbmV3OgotKyAqIEByZXR1cm5zOiBBIG5ld2x5IGFsbG9jYXRl ZCBJQnVzWEtCQ29uZmlnUmVnaXN0cnkKLSsgKgotKyAqIE5ldyBhbiBJQnVzWEtCQ29uZmlnUmVn aXN0cnkuCi0rICovCi0rSUJ1c1hLQkNvbmZpZ1JlZ2lzdHJ5ICoKLSsgICAgICAgICAgICAgICAg IGlidXNfeGtiX2NvbmZpZ19yZWdpc3RyeV9uZXcKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQpOwotKwotKy8qKgotKyAqIGlidXNfeGtiX2Nv bmZpZ19yZWdpc3RyeV9nZXRfbGF5b3V0X2xpc3Q6IChza2lwKQotKyAqIEB4a2JfY29uZmlnOiBB biBJQnVzWEtCQ29uZmlnUmVnaXN0cnkuCi0rICogQHJldHVybnM6IEEgY29uc3QgR0hhc2hUYWJs ZQotKyAqCi0rICogYSBjb25zdCBHSGFzaFRhYmxlCi0rICovCi0rY29uc3QgR0hhc2hUYWJsZSAq Ci0rICAgICAgICAgICAgICAgICBpYnVzX3hrYl9jb25maWdfcmVnaXN0cnlfZ2V0X2xheW91dF9s aXN0Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJ QnVzWEtCQ29uZmlnUmVnaXN0cnkgKnhrYl9jb25maWcpOwotKwotKy8qKgotKyAqIGlidXNfeGti X2NvbmZpZ19yZWdpc3RyeV9nZXRfbGF5b3V0X2xhbmc6IChza2lwKQotKyAqIEB4a2JfY29uZmln OiBBbiBJQnVzWEtCQ29uZmlnUmVnaXN0cnkuCi0rICogQHJldHVybnM6IEEgY29uc3QgR0hhc2hU YWJsZQotKyAqCi0rICogYSBjb25zdCBHSGFzaFRhYmxlCi0rICovCi0rY29uc3QgR0hhc2hUYWJs ZSAqCi0rICAgICAgICAgICAgICAgICBpYnVzX3hrYl9jb25maWdfcmVnaXN0cnlfZ2V0X2xheW91 dF9sYW5nCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChJQnVzWEtCQ29uZmlnUmVnaXN0cnkgKnhrYl9jb25maWcpOwotKwotKy8qKgotKyAqIGlidXNf eGtiX2NvbmZpZ19yZWdpc3RyeV9nZXRfbGF5b3V0X2Rlc2M6IChza2lwKQotKyAqIEB4a2JfY29u ZmlnOiBBbiBJQnVzWEtCQ29uZmlnUmVnaXN0cnkuCi0rICogQHJldHVybnM6IEEgY29uc3QgR0hh c2hUYWJsZQotKyAqCi0rICogYSBjb25zdCBHSGFzaFRhYmxlCi0rICovCi0rY29uc3QgR0hhc2hU YWJsZSAqCi0rICAgICAgICAgICAgICAgICBpYnVzX3hrYl9jb25maWdfcmVnaXN0cnlfZ2V0X2xh eW91dF9kZXNjCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChJQnVzWEtCQ29uZmlnUmVnaXN0cnkgKnhrYl9jb25maWcpOwotKwotKy8qKgotKyAqIGli dXNfeGtiX2NvbmZpZ19yZWdpc3RyeV9nZXRfdmFyaWFudF9kZXNjOiAoc2tpcCkKLSsgKiBAeGti X2NvbmZpZzogQW4gSUJ1c1hLQkNvbmZpZ1JlZ2lzdHJ5LgotKyAqIEByZXR1cm5zOiBBIGNvbnN0 IEdIYXNoVGFibGUKLSsgKgotKyAqIGEgY29uc3QgR0hhc2hUYWJsZQotKyAqLwotK2NvbnN0IEdI YXNoVGFibGUgKgotKyAgICAgICAgICAgICAgICAgaWJ1c194a2JfY29uZmlnX3JlZ2lzdHJ5X2dl dF92YXJpYW50X2Rlc2MKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKElCdXNYS0JDb25maWdSZWdpc3RyeSAqeGtiX2NvbmZpZyk7Ci0rCi0rLyoqCi0r ICogaWJ1c194a2JfY29uZmlnX3JlZ2lzdHJ5X2xheW91dF9saXN0X2dldF9sYXlvdXRzOgotKyAq IEB4a2JfY29uZmlnOiBBbiBJQnVzWEtCQ29uZmlnUmVnaXN0cnkuCi0rICogQHJldHVybnM6ICh0 cmFuc2ZlciBjb250YWluZXIpIChlbGVtZW50LXR5cGUgdXRmOCk6IEEgR0xpc3Qgb2YgbGF5b3V0 cwotKyAqCi0rICogYSBHTGlzdCBvZiBsYXlvdXRzCi0rICovCi0rR0xpc3QgKgotKyAgICAgICAg ICAgICAgICAgaWJ1c194a2JfY29uZmlnX3JlZ2lzdHJ5X2xheW91dF9saXN0X2dldF9sYXlvdXRz Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJQnVz WEtCQ29uZmlnUmVnaXN0cnkgKnhrYl9jb25maWcpOwotKwotKy8qKgotKyAqIGlidXNfeGtiX2Nv bmZpZ19yZWdpc3RyeV9sYXlvdXRfbGlzdF9nZXRfdmFyaWFudHM6Ci0rICogQHhrYl9jb25maWc6 IEFuIElCdXNYS0JDb25maWdSZWdpc3RyeS4KLSsgKiBAbGF5b3V0OiBBIGxheW91dC4KLSsgKiBA cmV0dXJuczogKHRyYW5zZmVyIGNvbnRhaW5lcikgKGVsZW1lbnQtdHlwZSB1dGY4KTogQSBHTGlz dAotKyAqCi0rICogYSBHTGlzdAotKyAqLwotK0dMaXN0ICoKLSsgICAgICAgICAgICAgICAgIGli dXNfeGtiX2NvbmZpZ19yZWdpc3RyeV9sYXlvdXRfbGlzdF9nZXRfdmFyaWFudHMKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKElCdXNYS0JDb25maWdS ZWdpc3RyeSAqeGtiX2NvbmZpZywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAqbGF5b3V0KTsKLSsKLSsvKioK LSsgKiBpYnVzX3hrYl9jb25maWdfcmVnaXN0cnlfbGF5b3V0X2xhbmdfZ2V0X2xhbmdzOgotKyAq IEB4a2JfY29uZmlnOiBBbiBJQnVzWEtCQ29uZmlnUmVnaXN0cnkuCi0rICogQGxheW91dDogQSBs YXlvdXQuCi0rICogQHJldHVybnM6ICh0cmFuc2ZlciBjb250YWluZXIpIChlbGVtZW50LXR5cGUg dXRmOCk6IEEgR0xpc3QKLSsgKgotKyAqIGEgR0xpc3QKLSsgKi8KLStHTGlzdCAqCi0rICAgICAg ICAgICAgICAgICBpYnVzX3hrYl9jb25maWdfcmVnaXN0cnlfbGF5b3V0X2xhbmdfZ2V0X2xhbmdz Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJQnVz WEtCQ29uZmlnUmVnaXN0cnkgKnhrYl9jb25maWcsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgKmxheW91dCk7 Ci0rCi0rLyoqCi0rICogaWJ1c194a2JfY29uZmlnX3JlZ2lzdHJ5X2xheW91dF9kZXNjX2dldF9k ZXNjOgotKyAqIEB4a2JfY29uZmlnOiBBbiBJQnVzWEtCQ29uZmlnUmVnaXN0cnkuCi0rICogQGxh eW91dDogQSBsYXlvdXQuCi0rICogQHJldHVybnM6IEEgbGF5b3V0IGRlc2NyaXB0aW9uCi0rICoK LSsgKiBhIGxheW91dCBkZXNjcmlwdGlvbgotKyAqLwotK2djaGFyICoKLSsgICAgICAgICAgICAg ICAgIGlidXNfeGtiX2NvbmZpZ19yZWdpc3RyeV9sYXlvdXRfZGVzY19nZXRfZGVzYwotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSUJ1c1hLQkNvbmZp Z1JlZ2lzdHJ5ICp4a2JfY29uZmlnLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICpsYXlvdXQpOwotKwotKy8q KgotKyAqIGlidXNfeGtiX2NvbmZpZ19yZWdpc3RyeV92YXJpYW50X2Rlc2NfZ2V0X2Rlc2M6Ci0r ICogQHhrYl9jb25maWc6IEFuIElCdXNYS0JDb25maWdSZWdpc3RyeS4KLSsgKiBAdmFyaWFudDog QSB2YXJpYW50LgotKyAqIEByZXR1cm5zOiBBIHZhcmlhbnQgZGVzY3JpcHRpb24KLSsgKgotKyAq IGEgdmFyaWFudCBkZXNjcmlwdGlvbgotKyAqLwotK2djaGFyICoKLSsgICAgICAgICAgICAgICAg IGlidXNfeGtiX2NvbmZpZ19yZWdpc3RyeV92YXJpYW50X2Rlc2NfZ2V0X2Rlc2MKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKElCdXNYS0JDb25maWdS ZWdpc3RyeSAqeGtiX2NvbmZpZywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAqdmFyaWFudCk7Ci0rR19FTkRf REVDTFMKLSsjZW5kaWYKLWRpZmYgLS1naXQgYS91aS9ndGszL01ha2VmaWxlLmFtIGIvdWkvZ3Rr My9NYWtlZmlsZS5hbQotaW5kZXggYjJmYjgwMC4uZjE0ODIwMiAxMDA2NDQKLS0tLSBhL3VpL2d0 azMvTWFrZWZpbGUuYW0KLSsrKyBiL3VpL2d0azMvTWFrZWZpbGUuYW0KLUBAIC0zNSw2ICszNSw4 IEBAIGd0a3BhbmVsLnhtbDogZ3RrcGFuZWwueG1sLmluCi0gCQktZSAnc3xAbGliZXhlY2RpcltA XXwkKGxpYmV4ZWNkaXIpfGcnICQ8ID4gJEAudG1wICYmIFwKLSAJCW12ICRALnRtcCAkQAotIAot K0hBVkVfSUJVU19HS0JEX0MgPSAkKHN0cmlwICQoc3Vic3QgZmFsc2UsIEZBTFNFLCAkKHN1YnN0 IHRydWUsIFRSVUUsICQoSEFWRV9JQlVTX0dLQkQpKSkpCi0rCi0gIyBmb3JjZSBpbmNsdWRlIGNv bmZpZy5oIGJlZm9yZSBnaTE4bi5oLgotIEFNX0NQUEZMQUdTID0gXAotIAktSSQodG9wX3NyY2Rp cikvc3JjIFwKLUBAIC01MSw2ICs1Myw4IEBAIEFNX0NGTEFHUyA9IFwKLSAJLURHX0xPR19ET01B SU49XCJJQlVTXCIgXAotIAktREJJTkRJUj1cIiQoYmluZGlyKVwiIFwKLSAJLURJQlVTX0RJU0FC TEVfREVQUkVDQVRFRCBcCi0rCS1ESEFWRV9JQlVTX0dLQkQ9JChIQVZFX0lCVVNfR0tCRF9DKSBc Ci0rCS1EWEtCX0xBWU9VVFNfTUFYX0xFTkdUSD00IFwKLSAJLVduby11bnVzZWQtdmFyaWFibGUg XAotIAktV25vLXVudXNlZC1idXQtc2V0LXZhcmlhYmxlIFwKLSAJLVduby11bnVzZWQtZnVuY3Rp b24gXAotQEAgLTk0LDEyICs5OCw0MCBAQCBBTV9WQUxBRkxBR1MgKz0gXAotIAkkKE5VTEwpCi0g ZW5kaWYKLSAKLStpZiBFTkFCTEVfTElCR05PTUVLQkQKLStBTV9DRkxBR1MgKz0gXAotKwlATElC R05PTUVLQkRVSV9DRkxBR1NAIFwKLSsJQEFUS19DRkxBR1NAIFwKLSsJJChOVUxMKQotKwotK0FN X0xEQUREICs9IFwKLSsJQExJQkdOT01FS0JEVUlfTElCU0AgXAotKwlAQVRLX0xJQlNAIFwKLSsJ JChOVUxMKQotKwotK0FNX1ZBTEFGTEFHUyArPSBcCi0rCS0tdmFwaWRpcj0uIFwKLSsJLS1tZXRh ZGF0YWRpcj0kKHRvcF9zcmNkaXIpL2JpbmRpbmdzL3ZhbGEgXAotKwktLXBrZz1nbGliLTIuMCBc Ci0rCS0tcGtnPWdtb2R1bGUtMi4wIFwKLSsJLS1wa2c9Z2tiZCBcCi0rCS0tcGtnPVhrbC0xLjAg XAotKwkkKE5VTEwpCi0rCi0rJChzcmNkaXIpL2drYmRsYXlvdXQudmFsYTogJCh0b3BfYnVpbGRk aXIpL2JpbmRpbmdzL3ZhbGEvZ2tiZC52YXBpCi0rCUBjcCAkKHNyY2RpcikvZ2tiZGxheW91dC52 YWxhLnRydWUgJChzcmNkaXIpL2drYmRsYXlvdXQudmFsYQotK2Vsc2UKLSskKHNyY2RpcikvZ2ti ZGxheW91dC52YWxhOgotKwlAY3AgJChzcmNkaXIpL2drYmRsYXlvdXQudmFsYS5mYWxzZSAkKHNy Y2RpcikvZ2tiZGxheW91dC52YWxhCi0rZW5kaWYKLSsKLSBsaWJleGVjX1BST0dSQU1TID0gaWJ1 cy11aS1ndGszCi0gCi0gaWJ1c191aV9ndGszX1NPVVJDRVMgPSBcCi0gCWFwcGxpY2F0aW9uLnZh bGEgXAotIAljYW5kaWRhdGVhcmVhLnZhbGEgXAotIAljYW5kaWRhdGVwYW5lbC52YWxhIFwKLSsJ Z2tiZGxheW91dC52YWxhIFwKLSAJaGFuZGxlLnZhbGEgXAotIAlpY29ud2lkZ2V0LnZhbGEgXAot IAlrZXliaW5kaW5nbWFuYWdlci52YWxhIFwKLUBAIC0xMDksNiArMTQxLDcgQEAgaWJ1c191aV9n dGszX1NPVVJDRVMgPSBcCi0gCXByb3BlcnR5cGFuZWwudmFsYSBcCi0gCXNlcGFyYXRvci52YWxh IFwKLSAJc3dpdGNoZXIudmFsYSBcCi0rCXhrYmxheW91dC52YWxhIFwKLSAJJChOVUxMKQotIAot IGlidXNfdWlfZ3RrM19MREFERCA9IFwKLUBAIC0xMTcsOSArMTUwLDEyIEBAIGlidXNfdWlfZ3Rr M19MREFERCA9IFwKLSAKLSBDTEVBTkZJTEVTID0gXAotIAlndGtwYW5lbC54bWwgXAotKwlna2Jk bGF5b3V0LnZhbGEgXAotIAkkKE5VTEwpCi0gCi0gRVhUUkFfRElTVCA9IFwKLSsJZ2tiZGxheW91 dC52YWxhLmZhbHNlIFwKLSsJZ2tiZGxheW91dC52YWxhLnRydWUgXAotIAlndGtwYW5lbC54bWwu aW4gXAotIAkkKE5VTEwpCi0gCi1kaWZmIC0tZ2l0IGEvdWkvZ3RrMy9na2JkbGF5b3V0LnZhbGEu ZmFsc2UgYi91aS9ndGszL2drYmRsYXlvdXQudmFsYS5mYWxzZQotbmV3IGZpbGUgbW9kZSAxMDA2 NDQKLWluZGV4IDAwMDAwMDAuLjUwNmFmZjIKLS0tLSAvZGV2L251bGwKLSsrKyBiL3VpL2d0azMv Z2tiZGxheW91dC52YWxhLmZhbHNlCi1AQCAtMCwwICsxLDYzIEBACi0rLyogdmltOnNldCBldCBz dHM9NCBzdz00OgotKyAqCi0rICogaWJ1cyAtIFRoZSBJbnB1dCBCdXMKLSsgKgotKyAqIENvcHly aWdodChjKSAyMDEzIFJlZCBIYXQsIEluYy4KLSsgKiBDb3B5cmlnaHQoYykgMjAxMyBQZW5nIEh1 YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KLSsgKiBDb3B5cmlnaHQoYykgMjAxMyBUYWth byBGdWppd2FyYSA8dGZ1aml3YXJAcmVkaGF0LmNvbT4KLSsgKgotKyAqIFRoaXMgbGlicmFyeSBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSsgKiBtb2Rp ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0r ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg ZWl0aGVyCi0rICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcihhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uCi0rICoKLSsgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsgKiBidXQgV0lUSE9VVCBBTlkg V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyAqIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUK LSsgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K LSsgKgotKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNz ZXIgR2VuZXJhbCBQdWJsaWMKLSsgKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBp ZiBub3QsIHdyaXRlIHRvIHRoZQotKyAqIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg NTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsCi0rICogQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAg VVNBCi0rICovCi0rCi0rcHVibGljIGNsYXNzIEdrYmRMYXlvdXQKLSt7Ci0rICAgIHB1YmxpYyBz aWduYWwgdm9pZCBjaGFuZ2VkKCk7Ci0rICAgIHB1YmxpYyBzaWduYWwgdm9pZCBncm91cF9jaGFu Z2VkIChpbnQgb2JqZWN0KTsKLSsKLSsgICAgcHVibGljIEdrYmRMYXlvdXQoKSB7Ci0rICAgIH0K LSsKLSsgICAgcHVibGljIHN0cmluZ1tdIGdldF9sYXlvdXRzKCkgewotKyAgICAgICAgcmV0dXJu IG5ldyBzdHJpbmdbMF07Ci0rICAgIH0KLSsKLSsgICAgcHVibGljIHN0cmluZ1tdIGdldF9ncm91 cF9uYW1lcygpIHsKLSsgICAgICAgIHJldHVybiBuZXcgc3RyaW5nWzBdOwotKyAgICB9Ci0rCi0r ICAgIHB1YmxpYyB2b2lkIGxvY2tfZ3JvdXAoaW50IGlkKSB7Ci0rICAgIH0KLSsKLSsgICAgcHVi bGljIHZvaWQgc3RhcnRfbGlzdGVuKCkgewotKyAgICB9Ci0rCi0rICAgIHB1YmxpYyB2b2lkIHN0 b3BfbGlzdGVuKCkgewotKyAgICB9Ci0rCi0rICAgIC8qCi0rICAgIHB1YmxpYyBzdGF0aWMgaW50 IG1haW4oc3RyaW5nW10gYXJncykgewotKyAgICAgICAgR2tiZExheW91dCBpYnVzX2xheW91dHMg PSBuZXcgR2tiZExheW91dCgpOwotKwotKyAgICAgICAgc3RyaW5nW10gbGF5b3V0cyA9IGlidXNf bGF5b3V0cy5nZXRfbGF5b3V0cygpOwotKyAgICAgICAgc3RyaW5nW10gbmFtZXMgPSBpYnVzX2xh eW91dHMuZ2V0X2dyb3VwX25hbWVzKCk7Ci0rICAgICAgICBmb3IgKGludCBpID0gMDsgbGF5b3V0 cyAhPSBudWxsICYmIGkgPCBsYXlvdXRzLmxlbmd0aDsgaSsrKSB7Ci0rICAgICAgICAgICAgc3Rk b3V0LnByaW50ZigiJXMgJXNcbiIsIGxheW91dHNbaV0sIG5hbWVzW2ldKTsKLSsgICAgICAgIH0K LSsKLSsgICAgICAgIHJldHVybiAwOwotKyAgICB9Ci0rICAgICovCi0rfQotZGlmZiAtLWdpdCBh L3VpL2d0azMvZ2tiZGxheW91dC52YWxhLnRydWUgYi91aS9ndGszL2drYmRsYXlvdXQudmFsYS50 cnVlCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uYTZlMGY4ZAotLS0tIC9k ZXYvbnVsbAotKysrIGIvdWkvZ3RrMy9na2JkbGF5b3V0LnZhbGEudHJ1ZQotQEAgLTAsMCArMSwx MDggQEAKLSsvKiB2aW06c2V0IGV0IHN0cz00IHN3PTQ6Ci0rICoKLSsgKiBpYnVzIC0gVGhlIElu cHV0IEJ1cwotKyAqCi0rICogQ29weXJpZ2h0KGMpIDIwMTMgUmVkIEhhdCwgSW5jLgotKyAqIENv cHlyaWdodChjKSAyMDEzIFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgotKyAq IENvcHlyaWdodChjKSAyMDEzIFRha2FvIEZ1aml3YXJhIDx0ZnVqaXdhckByZWRoYXQuY29tPgot KyAqCi0rICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vcgotKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM ZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSsgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSsgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu c2UsIG9yKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsgKgotKyAqIFRoaXMg bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LAotKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCi0rICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyAqCi0rICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotKyAqIExpY2Vuc2UgYWxv bmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlCi0rICogRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwKLSsgKiBC b3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKLSsgKi8KLSsKLStwdWJsaWMgY2xhc3MgR2tiZExh eW91dAotK3sKLSsgICAgcHVibGljIHNpZ25hbCB2b2lkIGNoYW5nZWQoKTsKLSsgICAgcHVibGlj IHNpZ25hbCB2b2lkIGdyb3VwX2NoYW5nZWQgKGludCBvYmplY3QpOwotKwotKyAgICBwcml2YXRl IEdrYmQuQ29uZmlndXJhdGlvbiBtX2NvbmZpZyA9IG51bGw7Ci0rCi0rICAgIHB1YmxpYyBHa2Jk TGF5b3V0KCkgewotKyAgICAgICAgbV9jb25maWcgPSBHa2JkLkNvbmZpZ3VyYXRpb24uZ2V0KCk7 Ci0rICAgICAgICBpZiAobV9jb25maWcgIT0gbnVsbCkgewotKyAgICAgICAgICAgIG1fY29uZmln LmNoYW5nZWQuY29ubmVjdChjb25maWdfY2hhbmdlZF9jYik7Ci0rICAgICAgICAgICAgbV9jb25m aWcuZ3JvdXBfY2hhbmdlZC5jb25uZWN0KGNvbmZpZ19ncm91cF9jaGFuZ2VkX2NiKTsKLSsgICAg ICAgIH0KLSsgICAgfQotKwotKyAgICB+R2tiZExheW91dCgpIHsKLSsgICAgICAgIGlmIChtX2Nv bmZpZyAhPSBudWxsKSB7Ci0rICAgICAgICAgICAgbV9jb25maWcuY2hhbmdlZC5kaXNjb25uZWN0 KGNvbmZpZ19jaGFuZ2VkX2NiKTsKLSsgICAgICAgICAgICBtX2NvbmZpZy5ncm91cF9jaGFuZ2Vk LmRpc2Nvbm5lY3QoY29uZmlnX2dyb3VwX2NoYW5nZWRfY2IpOwotKyAgICAgICAgICAgIC8qIGdr YmRfY29uZmlndXJhdGlvbl9nZXQgcmV1c2VzIHRoZSBvYmplY3QgYW5kIGRvIG5vdAotKyAgICAg ICAgICAgICAqIGRlc3Ryb3kgbV9jb25maWcgaGVyZS4gKi8KLSsgICAgICAgICAgICBtX2NvbmZp Zy5yZWYoKTsKLSsgICAgICAgICAgICBtX2NvbmZpZyA9IG51bGw7Ci0rICAgICAgICB9Ci0rICAg IH0KLSsKLSsgICAgcHJpdmF0ZSB2b2lkIGNvbmZpZ19jaGFuZ2VkX2NiKCkgewotKyAgICAgICAg Y2hhbmdlZCgpOwotKyAgICB9Ci0rCi0rICAgIHByaXZhdGUgdm9pZCBjb25maWdfZ3JvdXBfY2hh bmdlZF9jYihpbnQgb2JqZWN0KSB7Ci0rICAgICAgICBncm91cF9jaGFuZ2VkKG9iamVjdCk7Ci0r ICAgIH0KLSsKLSsgICAgcHVibGljIHN0cmluZ1tdIGdldF9sYXlvdXRzKCkgewotKyAgICAgICAg aWYgKG1fY29uZmlnID09IG51bGwpIHsKLSsgICAgICAgICAgICByZXR1cm4gbmV3IHN0cmluZ1sw XTsKLSsgICAgICAgIH0KLSsgICAgICAgIHJldHVybiBtX2NvbmZpZy5nZXRfc2hvcnRfZ3JvdXBf bmFtZXMoKTsKLSsgICAgfQotKwotKyAgICBwdWJsaWMgc3RyaW5nW10gZ2V0X2dyb3VwX25hbWVz KCkgewotKyAgICAgICAgaWYgKG1fY29uZmlnID09IG51bGwpIHsKLSsgICAgICAgICAgICByZXR1 cm4gbmV3IHN0cmluZ1swXTsKLSsgICAgICAgIH0KLSsgICAgICAgIHJldHVybiBtX2NvbmZpZy5n ZXRfZ3JvdXBfbmFtZXMoKTsKLSsgICAgfQotKwotKyAgICBwdWJsaWMgdm9pZCBsb2NrX2dyb3Vw KGludCBpZCkgewotKyAgICAgICAgaWYgKG1fY29uZmlnID09IG51bGwpIHsKLSsgICAgICAgICAg ICByZXR1cm47Ci0rICAgICAgICB9Ci0rICAgICAgICBtX2NvbmZpZy5sb2NrX2dyb3VwKGlkKTsK LSsgICAgfQotKwotKyAgICBwdWJsaWMgdm9pZCBzdGFydF9saXN0ZW4oKSB7Ci0rICAgICAgICBp ZiAobV9jb25maWcgPT0gbnVsbCkgewotKyAgICAgICAgICAgIHJldHVybjsKLSsgICAgICAgIH0K LSsgICAgICAgIG1fY29uZmlnLnN0YXJ0X2xpc3RlbigpOwotKyAgICB9Ci0rCi0rICAgIHB1Ymxp YyB2b2lkIHN0b3BfbGlzdGVuKCkgewotKyAgICAgICAgaWYgKG1fY29uZmlnID09IG51bGwpIHsK LSsgICAgICAgICAgICByZXR1cm47Ci0rICAgICAgICB9Ci0rICAgICAgICBtX2NvbmZpZy5zdG9w X2xpc3RlbigpOwotKyAgICB9Ci0rCi0rICAgIC8qCi0rICAgIHB1YmxpYyBzdGF0aWMgaW50IG1h aW4oc3RyaW5nW10gYXJncykgewotKyAgICAgICAgR3RrLmluaXQocmVmIGFyZ3MpOwotKyAgICAg ICAgR2tiZExheW91dCBpYnVzX2xheW91dHMgPSBuZXcgR2tiZExheW91dCgpOwotKwotKyAgICAg ICAgc3RyaW5nW10gbGF5b3V0cyA9IGlidXNfbGF5b3V0cy5nZXRfbGF5b3V0cygpOwotKyAgICAg ICAgc3RyaW5nW10gbmFtZXMgPSBpYnVzX2xheW91dHMuZ2V0X2dyb3VwX25hbWVzKCk7Ci0rICAg ICAgICBmb3IgKGludCBpID0gMDsgbGF5b3V0cyAhPSBudWxsICYmIGkgPCBsYXlvdXRzLmxlbmd0 aDsgaSsrKSB7Ci0rICAgICAgICAgICAgc3Rkb3V0LnByaW50ZigiJXMgJXNcbiIsIGxheW91dHNb aV0sIG5hbWVzW2ldKTsKLSsgICAgICAgIH0KLSsKLSsgICAgICAgIHJldHVybiAwOwotKyAgICB9 Ci0rICAgICovCi0rfQotZGlmZiAtLWdpdCBhL3VpL2d0azMvcGFuZWwudmFsYSBiL3VpL2d0azMv cGFuZWwudmFsYQotaW5kZXggNzQ4Y2IzMi4uN2ExNTA0OSAxMDA2NDQKLS0tLSBhL3VpL2d0azMv cGFuZWwudmFsYQotKysrIGIvdWkvZ3RrMy9wYW5lbC52YWxhCi1AQCAtNjMsNiArNjMsMTMgQEAg Y2xhc3MgUGFuZWwgOiBJQnVzLlBhbmVsU2VydmljZSB7Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xpYi5zdHJfZXF1YWwpOwotICAgICBwcml2 YXRlIEdkay5SR0JBIG1feGtiX2ljb25fcmdiYSA9IEdkay5SR0JBKCl7Ci0gICAgICAgICAgICAg cmVkID0gMC4wLCBncmVlbiA9IDAuMCwgYmx1ZSA9IDAuMCwgYWxwaGEgPSAxLjAgfTsKLSsgICAg cHJpdmF0ZSBHa2JkTGF5b3V0IG1fZ2tiZGxheW91dCA9IG51bGw7Ci0rICAgIHByaXZhdGUgWEtC TGF5b3V0IG1feGtibGF5b3V0ID0gbnVsbDsKLSsgICAgcHJpdmF0ZSBzdHJpbmdbXSBtX2xheW91 dHMgPSB7fTsKLSsgICAgcHJpdmF0ZSBzdHJpbmdbXSBtX3ZhcmlhbnRzID0ge307Ci0rICAgIHBy aXZhdGUgaW50IG1fZmFsbGJhY2tfbG9ja19pZCA9IC0xOwotKyAgICBwcml2YXRlIGJvb2wgbV9j aGFuZ2VkX3hrYl9vcHRpb24gPSBmYWxzZTsKLSsgICAgcHJpdmF0ZSBHTGliLlRpbWVyIG1fY2hh bmdlZF9sYXlvdXRfdGltZXI7Ci0gCi0gICAgIHByaXZhdGUgR0xpYi5MaXN0PEtleWJpbmRpbmc+ IG1fa2V5YmluZGluZ3MgPSBuZXcgR0xpYi5MaXN0PEtleWJpbmRpbmc+KCk7Ci0gCi1AQCAtMTEz LDYgKzEyMCwxNCBAQCBjbGFzcyBQYW5lbCA6IElCdXMuUGFuZWxTZXJ2aWNlIHsKLSAKLSAgICAg flBhbmVsKCkgewotICAgICAgICAgdW5iaW5kX3N3aXRjaF9zaG9ydGN1dCgpOwotKwotKyAgICAg ICAgaWYgKEhBVkVfSUJVU19HS0JEICYmIG1fZ2tiZGxheW91dCAhPSBudWxsKSB7Ci0rICAgICAg ICAgICAgbV9na2JkbGF5b3V0LmNoYW5nZWQuZGlzY29ubmVjdChna2JkbGF5b3V0X2NoYW5nZWRf Y2IpOwotKyAgICAgICAgICAgIG1fZ2tiZGxheW91dC5zdG9wX2xpc3RlbigpOwotKyAgICAgICAg ICAgIG1fZ2tiZGxheW91dCA9IG51bGw7Ci0rICAgICAgICB9Ci0rCi0rICAgICAgICBtX3hrYmxh eW91dCA9IG51bGw7Ci0gICAgIH0KLSAKLSAgICAgcHJpdmF0ZSB2b2lkIGluaXRfc2V0dGluZ3Mo KSB7Ci1AQCAtNDg3LDYgKzUwMiw3IEBAIGNsYXNzIFBhbmVsIDogSUJ1cy5QYW5lbFNlcnZpY2Ug ewotICAgICB9Ci0gCi0gICAgIHB1YmxpYyB2b2lkIGxvYWRfc2V0dGluZ3MoKSB7Ci0rICAgICAg ICBpbml0X2VuZ2luZXNfb3JkZXIoKTsKLSAgICAgICAgIC8vIFVwZGF0ZSBtX3VzZV9zeXN0ZW1f a2V5Ym9hcmRfbGF5b3V0IGJlZm9yZSB1cGRhdGVfZW5naW5lcygpCi0gICAgICAgICAvLyBpcyBj YWxsZWQuCi0gICAgICAgICBzZXRfdXNlX3N5c3RlbV9rZXlib2FyZF9sYXlvdXQoKTsKLUBAIC01 MDgsNiArNTI0LDE4NCBAQCBjbGFzcyBQYW5lbCA6IElCdXMuUGFuZWxTZXJ2aWNlIHsKLSAgICAg ICAgIHNldF92ZXJzaW9uKCk7Ci0gICAgIH0KLSAKLSsgICAgcHJpdmF0ZSB2b2lkIGdrYmRsYXlv dXRfY2hhbmdlZF9jYigpIHsKLSsgICAgICAgIC8qIFRoZSBjYWxsYmFjayBpcyBjYWxsZWQgZm91 ciB0aW1lcyBhZnRlciBzZXRfbGF5b3V0IGlzIGNhbGxlZAotKyAgICAgICAgICogc28gY2hlY2sg dGhlIGVsYXBzZWQgYW5kIHRha2UgdGhlIGZpcnN0IHNpZ25hbCBvbmx5LiAqLwotKyAgICAgICAg ZG91YmxlIGVsYXBzZWQgPSBtX2NoYW5nZWRfbGF5b3V0X3RpbWVyLmVsYXBzZWQoKTsKLSsgICAg ICAgIGlmIChlbGFwc2VkIDwgMS4wICYmIGVsYXBzZWQgPiAwLjApIHsKLSsgICAgICAgICAgICBy ZXR1cm47Ci0rICAgICAgICB9Ci0rCi0rICAgICAgICBpZiAobV9mYWxsYmFja19sb2NrX2lkICE9 IC0xKSB7Ci0rICAgICAgICAgICAgLyogQ2FsbCBsb2NrX2dyb3VwIG9ubHkgd2hlbiBzZXRfbGF5 b3V0IGlzIGNhbGxlZC4gKi8KLSsgICAgICAgICAgICBtX2drYmRsYXlvdXQubG9ja19ncm91cCht X2ZhbGxiYWNrX2xvY2tfaWQpOwotKyAgICAgICAgICAgIG1fZmFsbGJhY2tfbG9ja19pZCA9IC0x OwotKyAgICAgICAgfSBlbHNlIHsKLSsgICAgICAgICAgICAvKiBSZXNldCBkZWZhdWx0IGxheW91 dCB3aGVuIGdub21lLWNvbnRyb2wtY2VudGVyIGlzIGNhbGxlZC4gKi8KLSsgICAgICAgICAgICBt X3hrYmxheW91dC5yZXNldF9sYXlvdXQoKTsKLSsgICAgICAgIH0KLSsKLSsgICAgICAgIHVwZGF0 ZV94a2JfZW5naW5lcygpOwotKyAgICAgICAgbV9jaGFuZ2VkX2xheW91dF90aW1lci5yZXNldCgp OwotKyAgICB9Ci0rCi0rICAgIHByaXZhdGUgdm9pZCBpbml0X2drYmQoKSB7Ci0rICAgICAgICBt X2drYmRsYXlvdXQgPSBuZXcgR2tiZExheW91dCgpOwotKyAgICAgICAgbV9na2JkbGF5b3V0LmNo YW5nZWQuY29ubmVjdChna2JkbGF5b3V0X2NoYW5nZWRfY2IpOwotKwotKyAgICAgICAgLyogUHJv YmFibHkgd2UgY2Fubm90IHN1cHBvcnQgYm90aCBrZXlib2FyZCBhbmQgaWJ1cyBpbmRpY2F0b3Jz Ci0rICAgICAgICAgKiBIb3cgY2FuIEkgZ2V0IHRoZSBlbmdpbmUgZnJvbSBrZXltYXAgb2YgZ3Jv dXBfaWQ/Ci0rICAgICAgICAgKiBlLmcuICdlbicgY291bGQgYmUgb3duZWQgYnkgeGtiOmVuIGFu ZCBwaW55aW4gZW5naW5lcy4gKi8KLSsgICAgICAgIC8vbV9na2JkbGF5b3V0Lmdyb3VwX2NoYW5n ZWQuY29ubmVjdCgob2JqZWN0KSA9PiB7fSk7Ci0rCi0rICAgICAgICBtX2NoYW5nZWRfbGF5b3V0 X3RpbWVyID0gbmV3IEdMaWIuVGltZXIoKTsKLSsgICAgICAgIG1fY2hhbmdlZF9sYXlvdXRfdGlt ZXIuc3RhcnQoKTsKLSsgICAgICAgIG1fZ2tiZGxheW91dC5zdGFydF9saXN0ZW4oKTsKLSsgICAg fQotKwotKyAgICBwcml2YXRlIHZvaWQgaW5pdF9lbmdpbmVzX29yZGVyKCkgewotKyAgICAgICAg bV94a2JsYXlvdXQgPSBuZXcgWEtCTGF5b3V0KCk7Ci0rICAgICAgICBzdHJpbmcgc2Vzc2lvbiA9 IEVudmlyb25tZW50LmdldF92YXJpYWJsZSgiREVTS1RPUF9TRVNTSU9OIik7Ci0rCi0rICAgICAg ICBpZiAoSEFWRV9JQlVTX0dLQkQgJiYKLSsgICAgICAgICAgICBzZXNzaW9uICE9IG51bGwgJiYg c2Vzc2lvbi5sZW5ndGggPj0gNSAmJgotKyAgICAgICAgICAgIHNlc3Npb25bMDo1XSA9PSAiZ25v bWUiKSB7Ci0rICAgICAgICAgICAgaW5pdF9na2JkKCk7Ci0rICAgICAgICB9Ci0rCi0rICAgICAg ICB1cGRhdGVfeGtiX2VuZ2luZXMoKTsKLSsgICAgfQotKwotKyAgICBwcml2YXRlIHZvaWQgdXBk YXRlX3hrYl9lbmdpbmVzKCkgewotKyAgICAgICAgc3RyaW5nIHZhcl9sYXlvdXQgPSBtX3hrYmxh eW91dC5nZXRfbGF5b3V0KCk7Ci0rICAgICAgICBzdHJpbmcgdmFyX3ZhcmlhbnQgPSBtX3hrYmxh eW91dC5nZXRfdmFyaWFudCgpOwotKyAgICAgICAgaWYgKHZhcl9sYXlvdXQgPT0gIiIpIHsKLSsg ICAgICAgICAgICByZXR1cm47Ci0rICAgICAgICB9Ci0rCi0rICAgICAgICBtX2xheW91dHMgPSB2 YXJfbGF5b3V0LnNwbGl0KCIsIik7Ci0rICAgICAgICBtX3ZhcmlhbnRzID0gdmFyX3ZhcmlhbnQu c3BsaXQoIiwiKTsKLSsKLSsgICAgICAgIElCdXMuWEtCQ29uZmlnUmVnaXN0cnkgcmVnaXN0cnkg PSBuZXcgSUJ1cy5YS0JDb25maWdSZWdpc3RyeSgpOwotKyAgICAgICAgc3RyaW5nW10gdmFyX3hr Yl9lbmdpbmVfbmFtZXMgPSB7fTsKLSsgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbV9sYXlv dXRzLmxlbmd0aDsgaSsrKSB7Ci0rICAgICAgICAgICAgc3RyaW5nIG5hbWUgPSBtX2xheW91dHNb aV07Ci0rICAgICAgICAgICAgc3RyaW5nIGxhbmcgPSBudWxsOwotKwotKyAgICAgICAgICAgIGlm IChpIDwgbV92YXJpYW50cy5sZW5ndGggJiYgbV92YXJpYW50c1tpXSAhPSAiIikgewotKyAgICAg ICAgICAgICAgICBuYW1lID0gIiVzOiVzIi5wcmludGYobmFtZSwgbV92YXJpYW50c1tpXSk7Ci0r ICAgICAgICAgICAgICAgIHN0cmluZyBsYXlvdXQgPSAiJXMoJXMpIi5wcmludGYobmFtZSwgbV92 YXJpYW50c1tpXSk7Ci0rICAgICAgICAgICAgICAgIEdMaWIuTGlzdDxzdHJpbmc+IGxhbmdzID0K LSsgICAgICAgICAgICAgICAgICAgICAgICByZWdpc3RyeS5sYXlvdXRfbGFuZ19nZXRfbGFuZ3Mo bGF5b3V0KTsKLSsgICAgICAgICAgICAgICAgaWYgKGxhbmdzLmxlbmd0aCgpICE9IDApIHsKLSsg ICAgICAgICAgICAgICAgICAgIGxhbmcgPSBsYW5ncy5kYXRhOwotKyAgICAgICAgICAgICAgICB9 Ci0rICAgICAgICAgICAgfSBlbHNlIHsKLSsgICAgICAgICAgICAgICAgbmFtZSA9ICIlczoiLnBy aW50ZihuYW1lKTsKLSsgICAgICAgICAgICB9Ci0rCi0rICAgICAgICAgICAgaWYgKGxhbmcgPT0g bnVsbCkgewotKyAgICAgICAgICAgICAgICBHTGliLkxpc3Q8c3RyaW5nPiBsYW5ncyA9Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgcmVnaXN0cnkubGF5b3V0X2xhbmdfZ2V0X2xhbmdzKG1fbGF5 b3V0c1tpXSk7Ci0rICAgICAgICAgICAgICAgIGlmIChsYW5ncy5sZW5ndGgoKSAhPSAwKSB7Ci0r ICAgICAgICAgICAgICAgICAgICBsYW5nID0gbGFuZ3MuZGF0YTsKLSsgICAgICAgICAgICAgICAg fQotKyAgICAgICAgICAgIH0KLSsKLSsgICAgICAgICAgICB2YXJfeGtiX2VuZ2luZV9uYW1lcyAr PSAiJXM6JXM6JXMiLnByaW50ZigieGtiIiwgbmFtZSwgbGFuZyk7Ci0rICAgICAgICB9Ci0rCi0r ICAgICAgICBzdHJpbmdbXSBlbmdpbmVfbmFtZXMgPQotKyAgICAgICAgICAgICAgICBtX3NldHRp bmdzX2dlbmVyYWwuZ2V0X3N0cnYoInByZWxvYWQtZW5naW5lcyIpOwotKyAgICAgICAgYm9vbCB1 cGRhdGVkX2VuZ2luZV9uYW1lcyA9IGZhbHNlOwotKwotKyAgICAgICAgZm9yZWFjaCAoc3RyaW5n IG5hbWUgaW4gdmFyX3hrYl9lbmdpbmVfbmFtZXMpIHsKLSsgICAgICAgICAgICBpZiAobmFtZSBp biBlbmdpbmVfbmFtZXMpCi0rICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotKyAgICAgICAgICAg IHVwZGF0ZWRfZW5naW5lX25hbWVzID0gdHJ1ZTsKLSsgICAgICAgICAgICBlbmdpbmVfbmFtZXMg Kz0gbmFtZTsKLSsgICAgICAgIH0KLSsKLSsgICAgICAgIGlmICh1cGRhdGVkX2VuZ2luZV9uYW1l cykKLSsgICAgICAgICAgICBtX3NldHRpbmdzX2dlbmVyYWwuc2V0X3N0cnYoInByZWxvYWQtZW5n aW5lcyIsIGVuZ2luZV9uYW1lcyk7Ci0rCi0rICAgICAgICBzdHJpbmdbXSBvcmRlcl9uYW1lcyA9 Ci0rICAgICAgICAgICAgICAgIG1fc2V0dGluZ3NfZ2VuZXJhbC5nZXRfc3RydigiZW5naW5lcy1v cmRlciIpOwotKyAgICAgICAgYm9vbCB1cGRhdGVkX29yZGVyX25hbWVzID0gZmFsc2U7Ci0rCi0r ICAgICAgICBmb3JlYWNoICh2YXIgbmFtZSBpbiB2YXJfeGtiX2VuZ2luZV9uYW1lcykgewotKyAg ICAgICAgICAgIGlmIChuYW1lIGluIG9yZGVyX25hbWVzKQotKyAgICAgICAgICAgICAgICBjb250 aW51ZTsKLSsgICAgICAgICAgICBvcmRlcl9uYW1lcyArPSBuYW1lOwotKyAgICAgICAgICAgIHVw ZGF0ZWRfb3JkZXJfbmFtZXMgPSB0cnVlOwotKyAgICAgICAgfQotKwotKyAgICAgICAgaWYgKHVw ZGF0ZWRfb3JkZXJfbmFtZXMpCi0rICAgICAgICAgICAgbV9zZXR0aW5nc19nZW5lcmFsLnNldF9z dHJ2KCJlbmdpbmVzLW9yZGVyIiwgb3JkZXJfbmFtZXMpOwotKyAgICB9Ci0rCi0rICAgIHByaXZh dGUgdm9pZCBzZXRfeGtiX2dyb3VwX2xheW91dChJQnVzLkVuZ2luZURlc2MgZW5naW5lKSB7Ci0r ICAgICAgICBpbnRbXSByZXR2YWwgPSBtX3hrYmxheW91dC5zZXRfbGF5b3V0KGVuZ2luZSwgdHJ1 ZSk7Ci0rICAgICAgICBpZiAocmV0dmFsWzBdID49IDApIHsKLSsgICAgICAgICAgICAvKiBJZiBh biBYS0Iga2V5bWFwIGlzIGFkZGVkIGludG8gdGhlIFhLQiBncm91cCwKLSsgICAgICAgICAgICAg KiB0aGlzLl9na2JkbGF5b3V0LmxvY2tfZ3JvdXAgd2lsbCBiZSBjYWxsZWQgYWZ0ZXIKLSsgICAg ICAgICAgICAgKiAnZ3JvdXAtY2hhbmdlZCcgc2lnbmFsIGlzIHJlY2VpdmVkLiAqLwotKyAgICAg ICAgICAgIG1fZmFsbGJhY2tfbG9ja19pZCA9IHJldHZhbFswXTsKLSsgICAgICAgICAgICBtX2No YW5nZWRfeGtiX29wdGlvbiA9IChyZXR2YWxbMV0gIT0gMCkgPyB0cnVlIDogZmFsc2U7Ci0rICAg ICAgICB9Ci0rICAgIH0KLSsKLSsgICAgcHJpdmF0ZSBib29sIHNldF9na2JkX2xheW91dChJQnVz LkVuZ2luZURlc2MgZW5naW5lKSB7Ci0rICAgICAgICBzdHJpbmcgbGF5b3V0ID0gZW5naW5lLmdl dF9sYXlvdXQoKTsKLSsgICAgICAgIHN0cmluZyB2YXJpYW50ID0gZW5naW5lLmdldF9sYXlvdXRf dmFyaWFudCgpOwotKwotKyAgICAgICAgLyogSWYgYSBwcmV2aW91cyBpYnVzIGVuZ2luZSBjaGFu Z2VkIFhLQiBvcHRpb25zLCBuZWVkIHRvIHNldCB0aGUKLSsgICAgICAgICAqIGRlZmF1bHQgWEtC IG9wdGlvbi4gKi8KLSsgICAgICAgIGlmIChtX2NoYW5nZWRfeGtiX29wdGlvbiA9PSB0cnVlKSB7 Ci0rICAgICAgICAgICAgbV9jaGFuZ2VkX3hrYl9vcHRpb24gPSBmYWxzZTsKLSsgICAgICAgICAg ICByZXR1cm4gZmFsc2U7Ci0rICAgICAgICB9Ci0rCi0rICAgICAgICBpZiAodmFyaWFudCAhPSAi IiAmJiB2YXJpYW50ICE9ICJkZWZhdWx0IikgewotKyAgICAgICAgICAgIGxheW91dCA9ICIlcygl cykiLnByaW50ZihsYXlvdXQsIHZhcmlhbnQpOwotKyAgICAgICAgfQotKwotKyAgICAgICAgaW50 IGdrYmRfbGVuID0gbV9na2JkbGF5b3V0LmdldF9ncm91cF9uYW1lcygpLmxlbmd0aDsKLSsgICAg ICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbV9sYXlvdXRzLmxlbmd0aCAmJiBpIDwgZ2tiZF9sZW47 IGkrKykgewotKyAgICAgICAgICAgIHN0cmluZyBzeXNfbGF5b3V0ID0gbV9sYXlvdXRzW2ldOwot KyAgICAgICAgICAgIGlmIChpIDwgbV92YXJpYW50cy5sZW5ndGggJiYgbV92YXJpYW50c1tpXSAh PSAiIikgewotKyAgICAgICAgICAgICAgICBzeXNfbGF5b3V0ID0gIiVzKCVzKSIucHJpbnRmKHN5 c19sYXlvdXQsIG1fdmFyaWFudHNbaV0pOwotKyAgICAgICAgICAgIH0KLSsgICAgICAgICAgICBp ZiAoc3lzX2xheW91dCA9PSBsYXlvdXQpIHsKLSsgICAgICAgICAgICAgICAgbV9na2JkbGF5b3V0 LmxvY2tfZ3JvdXAoaSk7Ci0rICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotKyAgICAgICAg ICAgIH0KLSsgICAgICAgIH0KLSsgICAgICAgIHJldHVybiBmYWxzZTsKLSsgICAgfQotKwotKyAg ICBwcml2YXRlIHZvaWQgc2V0X2xheW91dChJQnVzLkVuZ2luZURlc2MgZW5naW5lKSB7Ci0rICAg ICAgICBzdHJpbmcgbGF5b3V0ID0gZW5naW5lLmdldF9sYXlvdXQoKTsKLSsKLSsgICAgICAgIGlm IChsYXlvdXQgPT0gIiIgfHwgbGF5b3V0ID09IG51bGwpIHsKLSsgICAgICAgICAgICByZXR1cm47 Ci0rICAgICAgICB9Ci0rCi0rICAgICAgICBpZiAobV94a2JsYXlvdXQgPT0gbnVsbCkgewotKyAg ICAgICAgICAgIGluaXRfZW5naW5lc19vcmRlcigpOwotKyAgICAgICAgfQotKwotKyAgICAgICAg aWYgKEhBVkVfSUJVU19HS0JEICYmIG1fZ2tiZGxheW91dCAhPSBudWxsKSB7Ci0rICAgICAgICAg ICAgaWYgKHNldF9na2JkX2xheW91dChlbmdpbmUpKSB7Ci0rICAgICAgICAgICAgICAgIHJldHVy bjsKLSsgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgc2V0X3hrYl9ncm91cF9sYXlvdXQoZW5n aW5lKTsKLSsgICAgICAgICAgICByZXR1cm47Ci0rICAgICAgICB9Ci0rCi0rICAgICAgICBtX3hr YmxheW91dC5zZXRfbGF5b3V0KGVuZ2luZSk7Ci0rICAgIH0KLSsKLSAgICAgcHJpdmF0ZSB2b2lk IGV4ZWNfc2V0eGtibWFwKElCdXMuRW5naW5lRGVzYyBlbmdpbmUpIHsKLSAgICAgICAgIHN0cmlu ZyBsYXlvdXQgPSBlbmdpbmUuZ2V0X2xheW91dCgpOwotICAgICAgICAgc3RyaW5nIHZhcmlhbnQg PSBlbmdpbmUuZ2V0X2xheW91dF92YXJpYW50KCk7Ci1AQCAtNTczLDcgKzc2Nyw3IEBAIGNsYXNz IFBhbmVsIDogSUJ1cy5QYW5lbFNlcnZpY2UgewotIAotICAgICAgICAgLy8gc2V0IHhrYiBsYXlv dXQKLSAgICAgICAgIGlmICghbV91c2Vfc3lzdGVtX2tleWJvYXJkX2xheW91dCkKLS0gICAgICAg ICAgICBleGVjX3NldHhrYm1hcChlbmdpbmUpOwotKyAgICAgICAgICAgIHNldF9sYXlvdXQoZW5n aW5lKTsKLSAKLSAgICAgICAgIGVuZ2luZV9jb250ZXh0c19pbnNlcnQoZW5naW5lKTsKLSAgICAg fQotQEAgLTYzNiw2ICs4MzAsMzkgQEAgY2xhc3MgUGFuZWwgOiBJQnVzLlBhbmVsU2VydmljZSB7 Ci0gICAgICAgICB9Ci0gICAgIH0KLSAKLSsgICAgLyogSUJ1cy5CdXMuZ2V0X2VuZ2luZXNfYnlf bmFtZXMoKSByZXR1cm5zICd1cycgZW5naW5lIGlmIHRoZSBuYW1lIAotKyAgICAgKiBkb2VzIG5v dCBleGlzdCBpbiBzaW1wbGUueG1sIGFuZCAndXMnIGVuZ2luZSBjb3VsZCBiZSBkdXBsaWNhdGVk LgotKyAgICAgKi8KLSsgICAgcHJpdmF0ZSBJQnVzLkVuZ2luZURlc2NbXSB1bmlxX2VuZ2luZXMo SUJ1cy5FbmdpbmVEZXNjW10gZW5naW5lcykgewotKyAgICAgICAgaWYgKGVuZ2luZXMubGVuZ3Ro ID09IDApCi0rICAgICAgICAgICAgcmV0dXJuIGVuZ2luZXM7Ci0rCi0rICAgICAgICBpbnQgaSA9 IDA7Ci0rICAgICAgICBJQnVzLkVuZ2luZURlc2NbXSByZXR2YWwgPSB7fTsKLSsKLSsgICAgICAg IGZvciAoOyBpIDwgZW5naW5lcy5sZW5ndGg7IGkrKykgewotKyAgICAgICAgICAgIGlmIChlbmdp bmVzW2ldLmdldF9uYW1lKCkgPT0gInhrYjp1czo6ZW5nIikKLSsgICAgICAgICAgICAgICAgYnJl YWs7Ci0rICAgICAgICB9Ci0rCi0rICAgICAgICBpZiAoaSA9PSBlbmdpbmVzLmxlbmd0aCkKLSsg ICAgICAgICAgICByZXR1cm4gZW5naW5lczsKLSsKLSsgICAgICAgIGZvciAoaW50IGogPSAwOyBq IDwgZW5naW5lcy5sZW5ndGg7IGorKykgewotKyAgICAgICAgICAgIGlmIChqIDw9IGkpIHsKLSsg ICAgICAgICAgICAgICAgcmV0dmFsICs9IGVuZ2luZXNbal07Ci0rICAgICAgICAgICAgICAgIGNv bnRpbnVlOwotKyAgICAgICAgICAgIH0KLSsKLSsgICAgICAgICAgICBpZiAoZW5naW5lc1tpXS5n ZXRfbmFtZSgpID09IGVuZ2luZXNbal0uZ2V0X25hbWUoKSkKLSsgICAgICAgICAgICAgICAgY29u dGludWU7Ci0rCi0rICAgICAgICAgICAgcmV0dmFsICs9IGVuZ2luZXNbal07Ci0rICAgICAgICB9 Ci0rCi0rICAgICAgICByZXR1cm4gcmV0dmFsOwotKyAgICB9Ci0rCi0gICAgIHByaXZhdGUgdm9p ZCBydW5fcHJlbG9hZF9lbmdpbmVzKElCdXMuRW5naW5lRGVzY1tdIGVuZ2luZXMsIGludCBpbmRl eCkgewotICAgICAgICAgc3RyaW5nW10gbmFtZXMgPSB7fTsKLSAKLUBAIC02NjgsNiArODk1LDcg QEAgY2xhc3MgUGFuZWwgOiBJQnVzLlBhbmVsU2VydmljZSB7Ci0gICAgICAgICB9Ci0gCi0gICAg ICAgICB2YXIgZW5naW5lcyA9IG1fYnVzLmdldF9lbmdpbmVzX2J5X25hbWVzKG5hbWVzKTsKLSsg ICAgICAgIGVuZ2luZXMgPSB1bmlxX2VuZ2luZXMoZW5naW5lcyk7Ci0gCi0gICAgICAgICBpZiAo bV9lbmdpbmVzLmxlbmd0aCA9PSAwKSB7Ci0gICAgICAgICAgICAgbV9lbmdpbmVzID0gZW5naW5l czsKLWRpZmYgLS1naXQgYS91aS9ndGszL3hrYmxheW91dC52YWxhIGIvdWkvZ3RrMy94a2JsYXlv dXQudmFsYQotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLmI3ZGZiM2UKLS0t LSAvZGV2L251bGwKLSsrKyBiL3VpL2d0azMveGtibGF5b3V0LnZhbGEKLUBAIC0wLDAgKzEsNDI5 IEBACi0rLyogdmltOnNldCBldCBzdHM9NCBzdz00OgotKyAqCi0rICogaWJ1cyAtIFRoZSBJbnB1 dCBCdXMKLSsgKgotKyAqIENvcHlyaWdodChjKSAyMDEzIFJlZCBIYXQsIEluYy4KLSsgKiBDb3B5 cmlnaHQoYykgMjAxMyBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KLSsgKiBD b3B5cmlnaHQoYykgMjAxMyBUYWthbyBGdWppd2FyYSA8dGZ1aml3YXJAcmVkaGF0LmNvbT4KLSsg KgotKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IKLSsgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz c2VyIEdlbmVyYWwgUHVibGljCi0rICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0rICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl LCBvcihhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0rICoKLSsgKiBUaGlzIGxp YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK LSsgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgotKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsgKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgZm9yIG1vcmUgZGV0YWlscy4KLSsgKgotKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSsgKiBMaWNlbnNlIGFsb25n IHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZQotKyAqIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsCi0rICogQm9z dG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCi0rICovCi0rCi0rcHVibGljIGV4dGVybiBjb25zdCBi b29sIEhBVkVfSUJVU19HS0JEOwotK3B1YmxpYyBleHRlcm4gY29uc3QgaW50IFhLQl9MQVlPVVRT X01BWF9MRU5HVEg7Ci0rCi0rY2xhc3MgWEtCTGF5b3V0Ci0rewotKyAgICBzdHJpbmcgbV94a2Jf Y29tbWFuZCA9ICJzZXR4a2JtYXAiOwotKyAgICBHTGliLlNldHRpbmdzIG1fc2V0dGluZ3NfZ2Vu ZXJhbDsKLSsgICAgc3RyaW5nW10gbV94a2JfbGF0aW5fbGF5b3V0cyA9IHt9OwotKyAgICBHTGli LlBpZCBtX3hrYl9waWQgPSAtMTsKLSsgICAgR0xpYi5QaWQgbV94bW9kbWFwX3BpZCA9IC0xOwot KyAgICBzdHJpbmcgbV94bW9kbWFwX2NvbW1hbmQgPSAieG1vZG1hcCI7Ci0rICAgIGJvb2wgbV91 c2VfeG1vZG1hcCA9IHRydWU7Ci0rICAgIHN0cmluZ1tdIG1feG1vZG1hcF9rbm93bl9maWxlcyA9 IHsiLnhtb2RtYXAiLCAiLnhtb2RtYXByYyIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiLlhtb2RtYXAiLCAiLlhtb2RtYXByYyJ9OwotKyAgICBzdHJpbmcgbV9kZWZh dWx0X2xheW91dCA9ICIiOwotKyAgICBzdHJpbmcgbV9kZWZhdWx0X3ZhcmlhbnQgPSAiIjsKLSsg ICAgc3RyaW5nIG1fZGVmYXVsdF9vcHRpb24gPSAiIjsKLSsKLSsgICAgcHVibGljIFhLQkxheW91 dCgpIHsKLSsgICAgICAgIG1fc2V0dGluZ3NfZ2VuZXJhbCA9IG5ldyBHTGliLlNldHRpbmdzKCJv cmcuZnJlZWRlc2t0b3AuaWJ1cy5nZW5lcmFsIik7Ci0rCi0rICAgICAgICB2YXIgdmFsdWUgID0g bV9zZXR0aW5nc19nZW5lcmFsLmdldF92YWx1ZSgieGtiLWxhdGluLWxheW91dHMiKTsKLSsgICAg ICAgIGZvciAoaW50IGkgPSAwOyB2YWx1ZSAhPSBudWxsICYmIGkgPCB2YWx1ZS5uX2NoaWxkcmVu KCk7IGkrKykgewotKyAgICAgICAgICAgIG1feGtiX2xhdGluX2xheW91dHMgKz0KLSsgICAgICAg ICAgICAgICAgICAgIHZhbHVlLmdldF9jaGlsZF92YWx1ZShpKS5kdXBfc3RyaW5nKCk7Ci0rICAg ICAgICB9Ci0rICAgICAgICBpZiAobV91c2VfeG1vZG1hcCkgewotKyAgICAgICAgICAgIG1fdXNl X3htb2RtYXAgPSBtX3NldHRpbmdzX2dlbmVyYWwuZ2V0X2Jvb2xlYW4oInVzZS14bW9kbWFwIik7 Ci0rICAgICAgICB9Ci0rICAgIH0KLSsKLSsgICAgcHJpdmF0ZSBzdHJpbmcgZ2V0X291dHB1dF9m cm9tX2NtZGxpbmUoc3RyaW5nIGFyZywgc3RyaW5nIGVsZW1lbnQpIHsKLSsgICAgICAgIHN0cmlu Z1tdIGV4ZWNfY29tbWFuZCA9IHt9OwotKyAgICAgICAgZXhlY19jb21tYW5kICs9IG1feGtiX2Nv bW1hbmQ7Ci0rICAgICAgICBleGVjX2NvbW1hbmQgKz0gYXJnOwotKyAgICAgICAgc3RyaW5nIHN0 YW5kYXJkX291dHB1dCA9IG51bGw7Ci0rICAgICAgICBzdHJpbmcgc3RhbmRhcmRfZXJyb3IgPSBu dWxsOwotKyAgICAgICAgaW50IGV4aXRfc3RhdHVzID0gMDsKLSsgICAgICAgIHN0cmluZyByZXR2 YWwgPSAiIjsKLSsgICAgICAgIHRyeSB7Ci0rICAgICAgICAgICAgR0xpYi5Qcm9jZXNzLnNwYXdu X3N5bmMobnVsbCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGVjX2Nv bW1hbmQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGliLlNwYXduRmxhZ3MuU0VBUkNIX1BB VEgsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQgc3RhbmRhcmRfb3V0cHV0LAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dCBzdGFuZGFyZF9lcnJvciwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQgZXhpdF9zdGF0dXMpOwotKyAgICAg ICAgfSBjYXRjaCAoR0xpYi5TcGF3bkVycm9yIGVycikgewotKyAgICAgICAgICAgIHN0ZGVyci5w cmludGYoIklCVVNfRVJST1I6ICVzXG4iLCBlcnIubWVzc2FnZSk7Ci0rICAgICAgICB9Ci0rICAg ICAgICBpZiAoZXhpdF9zdGF0dXMgIT0gMCkgewotKyAgICAgICAgICAgIHN0ZGVyci5wcmludGYo IklCVVNfRVJST1I6ICVzXG4iLCBzdGFuZGFyZF9lcnJvciA/PyAiIik7Ci0rICAgICAgICB9Ci0r ICAgICAgICBpZiAoc3RhbmRhcmRfb3V0cHV0ID09IG51bGwpIHsKLSsgICAgICAgICAgICByZXR1 cm4gIiI7Ci0rICAgICAgICB9Ci0rICAgICAgICBmb3JlYWNoIChzdHJpbmcgbGluZSBpbiBzdGFu ZGFyZF9vdXRwdXQuc3BsaXQoIlxuIikpIHsKLSsgICAgICAgICAgICBpZiAoZWxlbWVudC5sZW5n dGggPD0gbGluZS5sZW5ndGggJiYKLSsgICAgICAgICAgICAgICAgbGluZVswOmVsZW1lbnQubGVu Z3RoXSA9PSBlbGVtZW50KSB7Ci0rICAgICAgICAgICAgICAgIHJldHZhbCA9IGxpbmVbZWxlbWVu dC5sZW5ndGg6bGluZS5sZW5ndGhdOwotKyAgICAgICAgICAgICAgICBpZiAocmV0dmFsID09IG51 bGwpIHsKLSsgICAgICAgICAgICAgICAgICAgIHJldHZhbCA9ICIiOwotKyAgICAgICAgICAgICAg ICB9IGVsc2UgewotKyAgICAgICAgICAgICAgICAgICAgcmV0dmFsID0gcmV0dmFsLnN0cmlwKCk7 Ci0rICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICB9Ci0rICAgICAgICB9Ci0rICAgICAg ICByZXR1cm4gcmV0dmFsOwotKyAgICB9Ci0rCi0rICAgIHByaXZhdGUgdm9pZCBzZXRfbGF5b3V0 X2NiKEdMaWIuUGlkIHBpZCwgaW50IHN0YXR1cykgewotKyAgICAgICAgaWYgKG1feGtiX3BpZCAh PSBwaWQpIHsKLSsgICAgICAgICAgICBzdGRlcnIucHJpbnRmKCJJQlVTX0VSUk9SOiBzZXRfbGF5 b3V0X2NiIGhhcyBhbm90aGVyIHBpZFxuIik7Ci0rICAgICAgICAgICAgcmV0dXJuOwotKyAgICAg ICAgfQotKyAgICAgICAgR0xpYi5Qcm9jZXNzLmNsb3NlX3BpZChtX3hrYl9waWQpOwotKyAgICAg ICAgbV94a2JfcGlkID0gLTE7Ci0rICAgICAgICBzZXRfeG1vZG1hcCgpOwotKyAgICB9Ci0rCi0r ICAgIHByaXZhdGUgdm9pZCBzZXRfeG1vZG1hcF9jYihHTGliLlBpZCBwaWQsIGludCBzdGF0dXMp IHsKLSsgICAgICAgIGlmIChtX3htb2RtYXBfcGlkICE9IHBpZCkgewotKyAgICAgICAgICAgIHN0 ZGVyci5wcmludGYoIklCVVNfRVJST1I6IHNldF94bW9kbWFwX2NiIGhhcyBhbm90aGVyIHBpZFxu Iik7Ci0rICAgICAgICAgICAgcmV0dXJuOwotKyAgICAgICAgfQotKyAgICAgICAgR0xpYi5Qcm9j ZXNzLmNsb3NlX3BpZChtX3htb2RtYXBfcGlkKTsKLSsgICAgICAgIG1feG1vZG1hcF9waWQgPSAt MTsKLSsgICAgfQotKwotKyAgICBwcml2YXRlIHN0cmluZyBnZXRfZnVsbHBhdGgoc3RyaW5nIGNv bW1hbmQpIHsKLSsgICAgICAgIHN0cmluZyBlbnZwYXRoID0gR0xpYi5FbnZpcm9ubWVudC5nZXRf dmFyaWFibGUoIlBBVEgiKTsKLSsgICAgICAgIGZvcmVhY2ggKHN0cmluZyBkaXIgaW4gZW52cGF0 aC5zcGxpdCgiOiIpKSB7Ci0rICAgICAgICAgICAgc3RyaW5nIGZpbGVwYXRoID0gR0xpYi5QYXRo LmJ1aWxkX2ZpbGVuYW1lKGRpciwgY29tbWFuZCk7Ci0rICAgICAgICAgICAgaWYgKEdMaWIuRmls ZVV0aWxzLnRlc3QoZmlsZXBhdGgsIEdMaWIuRmlsZVRlc3QuRVhJU1RTKSkgewotKyAgICAgICAg ICAgICAgICByZXR1cm4gZmlsZXBhdGg7Ci0rICAgICAgICAgICAgfQotKyAgICAgICAgfQotKyAg ICAgICAgcmV0dXJuICIiOwotKyAgICB9Ci0rCi0rICAgIHByaXZhdGUgc3RyaW5nW10gZ2V0X3hr Yl9ncm91cF9sYXlvdXQgKHN0cmluZyBsYXlvdXQsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cmluZyB2YXJpYW50LAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGF5b3V0c19tYXhfbGVuZ3RoKSB7Ci0rICAgICAg ICBpbnQgZ3JvdXBfaWQgPSAwOwotKyAgICAgICAgaW50IGkgPSAwOwotKyAgICAgICAgc3RyaW5n W10gbGF5b3V0cyA9IG1fZGVmYXVsdF9sYXlvdXQuc3BsaXQoIiwiKTsKLSsgICAgICAgIHN0cmlu Z1tdIHZhcmlhbnRzID0gbV9kZWZhdWx0X3ZhcmlhbnQuc3BsaXQoIiwiKTsKLSsgICAgICAgIHN0 cmluZyBncm91cF9sYXlvdXRzID0gIiI7Ci0rICAgICAgICBzdHJpbmcgZ3JvdXBfdmFyaWFudHMg PSAiIjsKLSsgICAgICAgIGJvb2wgaGFzX3ZhcmlhbnQgPSBmYWxzZTsKLSsgICAgICAgIGJvb2wg aW5jbHVkZV9rZXltYXAgPSBmYWxzZTsKLSsKLSsgICAgICAgIGZvciAoaSA9IDA7IGkgPCBsYXlv dXRzLmxlbmd0aDsgaSsrKSB7Ci0rICAgICAgICAgICAgaWYgKGkgPj0gbGF5b3V0c19tYXhfbGVu Z3RoIC0gMSkgewotKyAgICAgICAgICAgICAgICBicmVhazsKLSsgICAgICAgICAgICB9Ci0rCi0r ICAgICAgICAgICAgaWYgKGkgPT0gMCkgewotKyAgICAgICAgICAgICAgICBncm91cF9sYXlvdXRz ID0gbGF5b3V0c1tpXTsKLSsgICAgICAgICAgICB9IGVsc2UgewotKyAgICAgICAgICAgICAgICBn cm91cF9sYXlvdXRzID0gIiVzLCVzIi5wcmludGYoZ3JvdXBfbGF5b3V0cywgbGF5b3V0c1tpXSk7 Ci0rICAgICAgICAgICAgfQotKwotKyAgICAgICAgICAgIGlmIChpID49IHZhcmlhbnRzLmxlbmd0 aCkgewotKyAgICAgICAgICAgICAgICBpZiAoaSA9PSAwKSB7Ci0rICAgICAgICAgICAgICAgICAg ICBncm91cF92YXJpYW50cyA9ICIiOwotKyAgICAgICAgICAgICAgICB9IGVsc2UgewotKyAgICAg ICAgICAgICAgICAgICAgZ3JvdXBfdmFyaWFudHMgKz0gIiwiOwotKyAgICAgICAgICAgICAgICB9 Ci0rICAgICAgICAgICAgICAgIGlmIChsYXlvdXQgPT0gbGF5b3V0c1tpXSAmJiB2YXJpYW50ID09 ICIiKSB7Ci0rICAgICAgICAgICAgICAgICAgICBpbmNsdWRlX2tleW1hcCA9IHRydWU7Ci0rICAg ICAgICAgICAgICAgICAgICBncm91cF9pZCA9IGk7Ci0rICAgICAgICAgICAgICAgIH0KLSsgICAg ICAgICAgICAgICAgY29udGludWU7Ci0rICAgICAgICAgICAgfQotKyAgICAgICAgICAgIGlmIChs YXlvdXQgPT0gbGF5b3V0c1tpXSAmJiB2YXJpYW50ID09IHZhcmlhbnRzW2ldKSB7Ci0rICAgICAg ICAgICAgICAgIGluY2x1ZGVfa2V5bWFwID0gdHJ1ZTsKLSsgICAgICAgICAgICAgICAgZ3JvdXBf aWQgPSBpOwotKyAgICAgICAgICAgIH0KLSsKLSsgICAgICAgICAgICBpZiAodmFyaWFudHNbaV0g IT0gIiIpIHsKLSsgICAgICAgICAgICAgICAgaGFzX3ZhcmlhbnQgPSB0cnVlOwotKyAgICAgICAg ICAgIH0KLSsKLSsgICAgICAgICAgICBpZiAoaSA9PSAwKSB7Ci0rICAgICAgICAgICAgICAgIGdy b3VwX3ZhcmlhbnRzID0gdmFyaWFudHNbaV07Ci0rICAgICAgICAgICAgfSBlbHNlIHsKLSsgICAg ICAgICAgICAgICAgZ3JvdXBfdmFyaWFudHMgPSAiJXMsJXMiLnByaW50Zihncm91cF92YXJpYW50 cywgdmFyaWFudHNbaV0pOwotKyAgICAgICAgICAgIH0KLSsgICAgICAgIH0KLSsKLSsgICAgICAg IGlmICh2YXJpYW50ICE9ICIiKSB7Ci0rICAgICAgICAgICAgaGFzX3ZhcmlhbnQgPSB0cnVlOwot KyAgICAgICAgfQotKwotKyAgICAgICAgaWYgKCFpbmNsdWRlX2tleW1hcCkgewotKyAgICAgICAg ICAgIGdyb3VwX2xheW91dHMgPSAiJXMsJXMiLnByaW50Zihncm91cF9sYXlvdXRzLCBsYXlvdXQp OwotKyAgICAgICAgICAgIGdyb3VwX3ZhcmlhbnRzID0gIiVzLCVzIi5wcmludGYoZ3JvdXBfdmFy aWFudHMsIHZhcmlhbnQpOwotKyAgICAgICAgICAgIGdyb3VwX2lkID0gaTsKLSsgICAgICAgIH0K LSsKLSsgICAgICAgIGlmICghaGFzX3ZhcmlhbnQpIHsKLSsgICAgICAgICAgICBncm91cF92YXJp YW50cyA9IG51bGw7Ci0rICAgICAgICB9Ci0rCi0rICAgICAgICByZXR1cm4ge2dyb3VwX2xheW91 dHMsIGdyb3VwX3ZhcmlhbnRzLCBncm91cF9pZC50b19zdHJpbmcoKX07Ci0rICAgIH0KLSsKLSsg ICAgcHVibGljIHN0cmluZ1tdIGdldF92YXJpYW50X2Zyb21fbGF5b3V0KHN0cmluZyBsYXlvdXQp IHsKLSsgICAgICAgIGludCBsZWZ0X2JyYWNrZXQgPSBsYXlvdXQuaW5kZXhfb2YoIigiKTsKLSsg ICAgICAgIGludCByaWdodF9icmFja2V0ID0gbGF5b3V0LmluZGV4X29mKCIpIik7Ci0rICAgICAg ICBpZiAobGVmdF9icmFja2V0ID49IDAgJiYgcmlnaHRfYnJhY2tldCA+IGxlZnRfYnJhY2tldCkg ewotKyAgICAgICAgICAgIHJldHVybiB7bGF5b3V0WzA6bGVmdF9icmFja2V0XSArCi0rICAgICAg ICAgICAgICAgICAgICBsYXlvdXRbcmlnaHRfYnJhY2tldCArIDE6bGF5b3V0Lmxlbmd0aF0sCi0r ICAgICAgICAgICAgICAgICAgICBsYXlvdXRbbGVmdF9icmFja2V0ICsgMTpyaWdodF9icmFja2V0 XX07Ci0rICAgICAgICB9Ci0rICAgICAgICByZXR1cm4ge2xheW91dCwgImRlZmF1bHQifTsKLSsg ICAgfQotKwotKyAgICBwdWJsaWMgc3RyaW5nW10gZ2V0X29wdGlvbl9mcm9tX2xheW91dChzdHJp bmcgbGF5b3V0KSB7Ci0rICAgICAgICBpbnQgbGVmdF9icmFja2V0ID0gbGF5b3V0LmluZGV4X29m KCJbIik7Ci0rICAgICAgICBpbnQgcmlnaHRfYnJhY2tldCA9IGxheW91dC5pbmRleF9vZigiXSIp OwotKyAgICAgICAgaWYgKGxlZnRfYnJhY2tldCA+PSAwICYmIHJpZ2h0X2JyYWNrZXQgPiBsZWZ0 X2JyYWNrZXQpIHsKLSsgICAgICAgICAgICByZXR1cm4ge2xheW91dFswOmxlZnRfYnJhY2tldF0g KwotKyAgICAgICAgICAgICAgICAgICAgbGF5b3V0W3JpZ2h0X2JyYWNrZXQgKyAxOmxheW91dC5s ZW5ndGhdLAotKyAgICAgICAgICAgICAgICAgICAgbGF5b3V0W2xlZnRfYnJhY2tldCArIDE6cmln aHRfYnJhY2tldF19OwotKyAgICAgICAgfQotKyAgICAgICAgcmV0dXJuIHtsYXlvdXQsICJkZWZh dWx0In07Ci0rICAgIH0KLSsKLSsgICAgcHVibGljIHN0cmluZyBnZXRfbGF5b3V0KCkgewotKyAg ICAgICAgcmV0dXJuIGdldF9vdXRwdXRfZnJvbV9jbWRsaW5lKCItcXVlcnkiLCAibGF5b3V0OiAi KTsKLSsgICAgfQotKwotKyAgICBwdWJsaWMgc3RyaW5nIGdldF92YXJpYW50KCkgewotKyAgICAg ICAgcmV0dXJuIGdldF9vdXRwdXRfZnJvbV9jbWRsaW5lKCItcXVlcnkiLCAidmFyaWFudDogIik7 Ci0rICAgIH0KLSsKLSsgICAgcHVibGljIHN0cmluZyBnZXRfb3B0aW9uKCkgewotKyAgICAgICAg cmV0dXJuIGdldF9vdXRwdXRfZnJvbV9jbWRsaW5lKCItcXVlcnkiLCAib3B0aW9uczogIik7Ci0r ICAgIH0KLSsKLSsgICAgLyoKLSsgICAgcHVibGljIHN0cmluZyBnZXRfZ3JvdXAoKSB7Ci0rICAg ICAgICByZXR1cm4gZ2V0X291dHB1dF9mcm9tX2NtZGxpbmUoIi0tZ2V0LWdyb3VwIiwgImdyb3Vw OiAiKTsKLSsgICAgfQotKyAgICAqLwotKwotKyAgICBwdWJsaWMgaW50W10gc2V0X2xheW91dChJ QnVzLkVuZ2luZURlc2MgZW5naW5lLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29s IHVzZV9ncm91cF9sYXlvdXQ9ZmFsc2UpIHsKLSsgICAgICAgIHN0cmluZyBsYXlvdXQgPSBlbmdp bmUuZ2V0X2xheW91dCgpOwotKyAgICAgICAgc3RyaW5nIHZhcmlhbnQgPSBlbmdpbmUuZ2V0X2xh eW91dF92YXJpYW50KCk7Ci0rICAgICAgICBzdHJpbmcgb3B0aW9uID0gZW5naW5lLmdldF9sYXlv dXRfb3B0aW9uKCk7Ci0rCi0rICAgICAgICBhc3NlcnQgKGxheW91dCAhPSBudWxsKTsKLSsKLSsg ICAgICAgIGludCB4a2JfZ3JvdXBfaWQgPSAwOwotKyAgICAgICAgaW50IGNoYW5nZWRfb3B0aW9u ID0gMDsKLSsKLSsgICAgICAgIGlmIChtX3hrYl9waWQgIT0gLTEpIHsKLSsgICAgICAgICAgICBy ZXR1cm4gey0xLCAwfTsKLSsgICAgICAgIH0KLSsKLSsgICAgICAgIGlmIChsYXlvdXQgPT0gImRl ZmF1bHQiICYmCi0rICAgICAgICAgICAgKHZhcmlhbnQgPT0gImRlZmF1bHQiIHx8IHZhcmlhbnQg PT0gIiIpICYmCi0rICAgICAgICAgICAgKG9wdGlvbiA9PSAiZGVmYXVsdCIgfHwgb3B0aW9uID09 ICIiKSkgewotKyAgICAgICAgICAgIHJldHVybiB7LTEsIDB9OwotKyAgICAgICAgfQotKwotKyAg ICAgICAgYm9vbCBuZWVkX3VzX2xheW91dCA9IGZhbHNlOwotKyAgICAgICAgZm9yZWFjaCAoc3Ry aW5nIGxhdGluX2xheW91dCBpbiBtX3hrYl9sYXRpbl9sYXlvdXRzKSB7Ci0rICAgICAgICAgICAg aWYgKGxheW91dCA9PSBsYXRpbl9sYXlvdXQgJiYgdmFyaWFudCAhPSAiZW5nIikgewotKyAgICAg ICAgICAgICAgICBuZWVkX3VzX2xheW91dCA9IHRydWU7Ci0rICAgICAgICAgICAgICAgIGJyZWFr OwotKyAgICAgICAgICAgIH0KLSsgICAgICAgICAgICBpZiAodmFyaWFudCAhPSBudWxsICYmCi0r ICAgICAgICAgICAgICAgICIlcyglcykiLnByaW50ZihsYXlvdXQsIHZhcmlhbnQpID09IGxhdGlu X2xheW91dCkgewotKyAgICAgICAgICAgICAgICBuZWVkX3VzX2xheW91dCA9IHRydWU7Ci0rICAg ICAgICAgICAgICAgIGJyZWFrOwotKyAgICAgICAgICAgIH0KLSsgICAgICAgIH0KLSsKLSsgICAg ICAgIGludCBsYXlvdXRzX21heF9sZW5ndGggPSAgWEtCX0xBWU9VVFNfTUFYX0xFTkdUSDsKLSsg ICAgICAgIGlmIChuZWVkX3VzX2xheW91dCkgewotKyAgICAgICAgICAgIGxheW91dHNfbWF4X2xl bmd0aC0tOwotKyAgICAgICAgfQotKwotKyAgICAgICAgaWYgKG1fZGVmYXVsdF9sYXlvdXQgPT0g IiIpIHsKLSsgICAgICAgICAgICBtX2RlZmF1bHRfbGF5b3V0ID0gZ2V0X2xheW91dCgpOwotKyAg ICAgICAgfQotKyAgICAgICAgaWYgKG1fZGVmYXVsdF92YXJpYW50ICA9PSAiIikgewotKyAgICAg ICAgICAgIG1fZGVmYXVsdF92YXJpYW50ICA9IGdldF92YXJpYW50KCk7Ci0rICAgICAgICB9Ci0r ICAgICAgICBpZiAobV9kZWZhdWx0X29wdGlvbiA9PSAiIikgewotKyAgICAgICAgICAgIG1fZGVm YXVsdF9vcHRpb24gPSBnZXRfb3B0aW9uKCk7Ci0rICAgICAgICB9Ci0rCi0rICAgICAgICBpZiAo bGF5b3V0ID09ICJkZWZhdWx0IikgewotKyAgICAgICAgICAgIGxheW91dCA9IG1fZGVmYXVsdF9s YXlvdXQ7Ci0rICAgICAgICAgICAgdmFyaWFudCA9IG1fZGVmYXVsdF92YXJpYW50OwotKyAgICAg ICAgfSBlbHNlIHsKLSsgICAgICAgICAgICBpZiAodXNlX2dyb3VwX2xheW91dCkgewotKyAgICAg ICAgICAgICAgICBpZiAodmFyaWFudCA9PSAiZGVmYXVsdCIpIHsKLSsgICAgICAgICAgICAgICAg ICAgIHZhcmlhbnQgPSAiIjsKLSsgICAgICAgICAgICAgICAgfQotKyAgICAgICAgICAgICAgICBz dHJpbmdbXSByZXR2YWwgPSBnZXRfeGtiX2dyb3VwX2xheW91dCAobGF5b3V0LCB2YXJpYW50LAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGF5b3V0c19tYXhfbGVuZ3RoKTsKLSsgICAgICAgICAgICAgICAgbGF5b3V0ID0gcmV0dmFsWzBd OwotKyAgICAgICAgICAgICAgICB2YXJpYW50ID0gcmV0dmFsWzFdOwotKyAgICAgICAgICAgICAg ICB4a2JfZ3JvdXBfaWQgPSBpbnQucGFyc2UocmV0dmFsWzJdKTsKLSsgICAgICAgICAgICB9Ci0r ICAgICAgICB9Ci0rCi0rICAgICAgICBpZiAobGF5b3V0ID09ICIiKSB7Ci0rICAgICAgICAgICAg d2FybmluZygiQ291bGQgbm90IGdldCB0aGUgY29ycmVjdCBsYXlvdXQiKTsKLSsgICAgICAgICAg ICByZXR1cm4gey0xLCAwfTsKLSsgICAgICAgIH0KLSsKLSsgICAgICAgIGlmICh2YXJpYW50ID09 ICJkZWZhdWx0IiB8fCB2YXJpYW50ID09ICIiKSB7Ci0rICAgICAgICAgICAgdmFyaWFudCA9IG51 bGw7Ci0rICAgICAgICB9Ci0rCi0rICAgICAgICBpZiAob3B0aW9uID09ICJkZWZhdWx0IiB8fCBv cHRpb24gPT0gIiIpIHsKLSsgICAgICAgICAgICBvcHRpb24gPSBtX2RlZmF1bHRfb3B0aW9uOwot KyAgICAgICAgfSBlbHNlIHsKLSsgICAgICAgICAgICBpZiAoIShvcHRpb24gaW4gbV9kZWZhdWx0 X29wdGlvbi5zcGxpdCgiLCIpKSkgewotKyAgICAgICAgICAgICAgICBvcHRpb24gPSAiJXMsJXMi LnByaW50ZihtX2RlZmF1bHRfb3B0aW9uLCBvcHRpb24pOwotKyAgICAgICAgICAgICAgICBjaGFu Z2VkX29wdGlvbiA9IDE7Ci0rICAgICAgICAgICAgfSBlbHNlIHsKLSsgICAgICAgICAgICAgICAg b3B0aW9uID0gbV9kZWZhdWx0X29wdGlvbjsKLSsgICAgICAgICAgICB9Ci0rICAgICAgICB9Ci0r Ci0rICAgICAgICBpZiAob3B0aW9uID09ICIiKSB7Ci0rICAgICAgICAgICAgb3B0aW9uID0gbnVs bDsKLSsgICAgICAgIH0KLSsKLSsgICAgICAgIGlmIChuZWVkX3VzX2xheW91dCkgewotKyAgICAg ICAgICAgIGxheW91dCArPSAiLHVzIjsKLSsgICAgICAgICAgICBpZiAodmFyaWFudCAhPSBudWxs KSB7Ci0rICAgICAgICAgICAgICAgIHZhcmlhbnQgKz0gIiwiOwotKyAgICAgICAgICAgIH0KLSsg ICAgICAgIH0KLSsKLSsgICAgICAgIHN0cmluZ1tdIGFyZ3MgPSB7fTsKLSsgICAgICAgIGFyZ3Mg Kz0gbV94a2JfY29tbWFuZDsKLSsgICAgICAgIGFyZ3MgKz0gIi1sYXlvdXQiOwotKyAgICAgICAg YXJncyArPSBsYXlvdXQ7Ci0rICAgICAgICBpZiAodmFyaWFudCAhPSBudWxsKSB7Ci0rICAgICAg ICAgICAgYXJncyArPSAiLXZhcmlhbnQiOwotKyAgICAgICAgICAgIGFyZ3MgKz0gdmFyaWFudDsK LSsgICAgICAgIH0KLSsgICAgICAgIGlmIChvcHRpb24gIT0gbnVsbCkgewotKyAgICAgICAgICAg IC8qIFRPRE86IE5lZWQgdG8gZ2V0IHRoZSBzZXNzaW9uIFhLQiBvcHRpb25zICovCi0rICAgICAg ICAgICAgYXJncyArPSAiLW9wdGlvbiI7Ci0rICAgICAgICAgICAgYXJncyArPSAiLW9wdGlvbiI7 Ci0rICAgICAgICAgICAgYXJncyArPSBvcHRpb247Ci0rICAgICAgICB9Ci0rCi0rICAgICAgICBH TGliLlBpZCBjaGlsZF9waWQ7Ci0rICAgICAgICB0cnkgewotKyAgICAgICAgICAgIEdMaWIuUHJv Y2Vzcy5zcGF3bl9hc3luYyhudWxsLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhcmdzLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGliLlNwYXduRmxhZ3MuRE9f Tk9UX1JFQVBfQ0hJTEQgfAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgR0xpYi5TcGF3bkZsYWdzLlNFQVJDSF9QQVRILAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBudWxsLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBvdXQgY2hpbGRfcGlkKTsKLSsgICAgICAgIH0gY2F0Y2ggKEdMaWIuU3Bhd25FcnJvciBlcnIp IHsKLSsgICAgICAgICAgICBzdGRlcnIucHJpbnRmKCJFeGVjdXRlIHNldHhrYm1hcCBmYWlsZWQ6 ICVzXG4iLCBlcnIubWVzc2FnZSk7Ci0rICAgICAgICAgICAgcmV0dXJuIHstMSwgMH07Ci0rICAg ICAgICB9Ci0rICAgICAgICBtX3hrYl9waWQgPSBjaGlsZF9waWQ7Ci0rICAgICAgICBHTGliLkNo aWxkV2F0Y2guYWRkKG1feGtiX3BpZCwgc2V0X2xheW91dF9jYik7Ci0rCi0rICAgICAgICByZXR1 cm4ge3hrYl9ncm91cF9pZCwgY2hhbmdlZF9vcHRpb259OwotKyAgICB9Ci0rCi0rICAgIHB1Ymxp YyB2b2lkIHNldF94bW9kbWFwKCkgewotKyAgICAgICAgaWYgKCFtX3VzZV94bW9kbWFwKSB7Ci0r ICAgICAgICAgICAgcmV0dXJuOwotKyAgICAgICAgfQotKwotKyAgICAgICAgaWYgKG1feG1vZG1h cF9waWQgIT0gLTEpIHsKLSsgICAgICAgICAgICByZXR1cm47Ci0rICAgICAgICB9Ci0rCi0rICAg ICAgICBzdHJpbmcgeG1vZG1hcF9jbWRwYXRoID0gZ2V0X2Z1bGxwYXRoKG1feG1vZG1hcF9jb21t YW5kKTsKLSsgICAgICAgIGlmICh4bW9kbWFwX2NtZHBhdGggPT0gIiIpIHsKLSsgICAgICAgICAg ICB4bW9kbWFwX2NtZHBhdGggPSBtX3htb2RtYXBfY29tbWFuZDsKLSsgICAgICAgIH0KLSsgICAg ICAgIHN0cmluZyBob21lZGlyID0gR0xpYi5FbnZpcm9ubWVudC5nZXRfaG9tZV9kaXIoKTsKLSsg ICAgICAgIGZvcmVhY2ggKHN0cmluZyB4bW9kbWFwX2ZpbGUgaW4gbV94bW9kbWFwX2tub3duX2Zp bGVzKSB7Ci0rICAgICAgICAgICAgc3RyaW5nIHhtb2RtYXBfZmlsZXBhdGggPSBHTGliLlBhdGgu YnVpbGRfZmlsZW5hbWUoaG9tZWRpciwgeG1vZG1hcF9maWxlKTsKLSsgICAgICAgICAgICBpZiAo IUdMaWIuRmlsZVV0aWxzLnRlc3QoeG1vZG1hcF9maWxlcGF0aCwgR0xpYi5GaWxlVGVzdC5FWElT VFMpKSB7Ci0rICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotKyAgICAgICAgICAgIH0KLSsgICAg ICAgICAgICBzdHJpbmdbXSBhcmdzID0ge3htb2RtYXBfY21kcGF0aCwgeG1vZG1hcF9maWxlcGF0 aH07Ci0rCi0rICAgICAgICAgICAgR0xpYi5QaWQgY2hpbGRfcGlkOwotKyAgICAgICAgICAgIHRy eSB7Ci0rICAgICAgICAgICAgICAgIEdMaWIuUHJvY2Vzcy5zcGF3bl9hc3luYyhudWxsLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncywKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBHTGliLlNwYXduRmxhZ3MuRE9fTk9UX1JFQVBfQ0hJTEQg fAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMaWIuU3Bh d25GbGFncy5TRUFSQ0hfUEFUSCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG51bGwsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv dXQgY2hpbGRfcGlkKTsKLSsgICAgICAgICAgICB9IGNhdGNoIChHTGliLlNwYXduRXJyb3IgZXJy KSB7Ci0rICAgICAgICAgICAgICAgIHN0ZGVyci5wcmludGYoIklCVVNfRVJST1I6ICVzXG4iLCBl cnIubWVzc2FnZSk7Ci0rICAgICAgICAgICAgICAgIHJldHVybjsKLSsgICAgICAgICAgICB9Ci0r ICAgICAgICAgICAgbV94bW9kbWFwX3BpZCA9IGNoaWxkX3BpZDsKLSsgICAgICAgICAgICBHTGli LkNoaWxkV2F0Y2guYWRkKG1feG1vZG1hcF9waWQsIHNldF94bW9kbWFwX2NiKTsKLSsKLSsgICAg ICAgICAgICBicmVhazsKLSsgICAgICAgIH0KLSsgICAgfQotKwotKyAgICBwdWJsaWMgdm9pZCBy ZXNldF9sYXlvdXQoKSB7Ci0rICAgICAgICBtX2RlZmF1bHRfbGF5b3V0ID0gZ2V0X2xheW91dCgp OwotKyAgICAgICAgbV9kZWZhdWx0X3ZhcmlhbnQgPSBnZXRfdmFyaWFudCgpOwotKyAgICAgICAg bV9kZWZhdWx0X29wdGlvbiA9IGdldF9vcHRpb24oKTsKLSsgICAgfQotKwotKyAgICAvKgotKyAg ICBwdWJsaWMgc3RhdGljIGludCBtYWluKHN0cmluZ1tdIGFyZ3MpIHsKLSsgICAgICAgIElCdXMu QnVzIGJ1cyA9IG5ldyBJQnVzLkJ1cygpOwotKyAgICAgICAgSUJ1cy5Db25maWcgY29uZmlnID0g YnVzLmdldF9jb25maWcoKTsKLSsgICAgICAgIFhLQkxheW91dCB4a2JsYXlvdXQgPSBuZXcgWEtC TGF5b3V0KGNvbmZpZyk7Ci0rICAgICAgICBzdGRvdXQucHJpbnRmICgibGF5b3V0OiAlc1xuIiwg eGtibGF5b3V0LmdldF9sYXlvdXQoKSk7Ci0rICAgICAgICBzdGRvdXQucHJpbnRmICgidmFyaWFu dDogJXNcbiIsIHhrYmxheW91dC5nZXRfdmFyaWFudCgpKTsKLSsgICAgICAgIHN0ZG91dC5wcmlu dGYgKCJvcHRpb246ICVzXG4iLCB4a2JsYXlvdXQuZ2V0X29wdGlvbigpKTsKLSsgICAgICAgIHhr YmxheW91dC5zZXRfbGF5b3V0KCJqcCIpOwotKyAgICAgICAgaWYgKGNvbmZpZyAhPSBudWxsKSB7 Ci0rICAgICAgICAgICAgSUJ1cy5tYWluKCk7Ci0rICAgICAgICB9IGVsc2UgewotKyAgICAgICAg ICAgIEd0ay5pbml0IChyZWYgYXJncyk7Ci0rICAgICAgICAgICAgR3RrLm1haW4oKTsKLSsgICAg ICAgIH0KLSsgICAgICAgIHJldHVybiAwOwotKyAgICB9Ci0rICAgICovCi0rfQotLS0gCi0xLjgu NS4zCi0KCmRpZmYgLS1naXQgYS9pYnVzLTgxMDIxMS1uby1zd2l0Y2gtYnktbm8tdHJpZ2dlci5w YXRjaCBiL2lidXMtODEwMjExLW5vLXN3aXRjaC1ieS1uby10cmlnZ2VyLnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MmEyZDg5Li4wMDAwMDAwCi0tLSBhL2lidXMtODEwMjEx LW5vLXN3aXRjaC1ieS1uby10cmlnZ2VyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAs MCBAQAotRnJvbSBkM2JjOTAzYjQ4N2JiMzAxMzk1OTQ3ZjY5MmNlMGQ4YzEzMDg3NGUzIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogZnVqaXdhcmF0IDx0YWthby5mdWppd2FyYTFAZ21h aWwuY29tPgotRGF0ZTogU2F0LCA2IE9jdCAyMDEyIDE3OjU0OjI3ICswOTAwCi1TdWJqZWN0OiBb UEFUQ0hdIEZpeCBub3QgdG8gc3dpdGNoIGVuZ2luZXMgYnkgbm9uLXRyaWdnZXIga2V5cy4KLQot LS0tCi0gdWkvZ3RrMy9zd2l0Y2hlci52YWxhIHwgNiArKysrKysKLSAxIGZpbGUgY2hhbmdlZCwg NiBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS91aS9ndGszL3N3aXRjaGVyLnZhbGEgYi91 aS9ndGszL3N3aXRjaGVyLnZhbGEKLWluZGV4IDRhMDI3NDMuLmM2MDY2ODIgMTAwNjQ0Ci0tLS0g YS91aS9ndGszL3N3aXRjaGVyLnZhbGEKLSsrKyBiL3VpL2d0azMvc3dpdGNoZXIudmFsYQotQEAg LTE0MCw2ICsxNDAsNyBAQCBjbGFzcyBTd2l0Y2hlciA6IEd0ay5XaW5kb3cgewotICAgICAgICAg LyogTGV0IGd0ayByZWNhbGN1bGF0ZSB0aGUgd2luZG93IHNpemUuICovCi0gICAgICAgICByZXNp emUoMSwgMSk7Ci0gCi0rICAgICAgICBtX3Jlc3VsdCA9IDA7Ci0gICAgICAgICBtX3NlbGVjdGVk X2VuZ2luZSA9IGluZGV4OwotICAgICAgICAgbV9sYWJlbC5zZXRfdGV4dChtX2J1dHRvbnNbaW5k ZXhdLmxvbmduYW1lKTsKLSAgICAgICAgIG1fYnV0dG9uc1tpbmRleF0uZ3JhYl9mb2N1cygpOwot QEAgLTM3OCw2ICszNzksMTEgQEAgY2xhc3MgU3dpdGNoZXIgOiBHdGsuV2luZG93IHsKLSAgICAg ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAg ICAgICAgICAgICAgICAgZGVidWcoIjB4JTA0eCIsIHBlLmtleXZhbCk7Ci0rICAgICAgICAgICAg ICAgICAgICBpZiAobV9sb29wICE9IG51bGwpIHsKLSsgICAgICAgICAgICAgICAgICAgICAgICBt X2xvb3AucXVpdCgpOwotKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbG9vcCA9IG51bGw7Ci0r ICAgICAgICAgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgICAgICAgICByZXR2YWwgPSBmYWxz ZTsKLSAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgIH0KLSAgICAgICAg IH0gd2hpbGUgKGZhbHNlKTsKLS0tIAotMS44LjAKLQoKZGlmZiAtLWdpdCBhL2lidXMtSEVBRC5w YXRjaCBiL2lidXMtSEVBRC5wYXRjaAppbmRleCAzMTZlMTQwLi44YjEzNzg5IDEwMDY0NAotLS0g YS9pYnVzLUhFQUQucGF0Y2gKKysrIGIvaWJ1cy1IRUFELnBhdGNoCkBAIC0xLDE2ODkgKzEgQEAK LUZyb20gMGJlNDY2NGIyZWEzMDcxYzAxZmY0Nzk0NDMwMzNlYjFhY2NkZmIwMyBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKLUZyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNv bT4KLURhdGU6IEZyaSwgMiBNYXkgMjAxNCAxMTo1NTowOCArMDkwMAotU3ViamVjdDogW1BBVENI XSBTZXQgbWF4LXdpZHRoLWNoYXJzIHByb3BlcnR5IGluIGlidXMtc2V0dXAgd3JhcHBlZAotIEd0 a0xhYmVsLgotCi1JZiBHdGtXaW5kb3cgaGFzICdyZXNpemFibGUnIHByb3BlcnR5ID0gRkFMU0Us IHRoZSB3cmFwIGluIEd0a0xhYmVsCi1pcyBub3QgZG9uZSBhdXRvbWF0aWNhbGx5IGFuZCBuZWVk IHRvIHNldCAnbWF4LXdpZHRoLWNoYXJzJyBwcm9wZXJ0eS4KLQotVEVTVD1pYnVzLXNldHVwCi0K LVJldmlldyBVUkw6IGh0dHBzOi8vY29kZXJldmlldy5hcHBzcG90LmNvbS85Mjk0MDA0MwotLS0t Ci0gc2V0dXAvc2V0dXAudWkgfCAxICsKLSAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykK LQotZGlmZiAtLWdpdCBhL3NldHVwL3NldHVwLnVpIGIvc2V0dXAvc2V0dXAudWkKLWluZGV4IDVm ZmJlNDcuLmJiNzg0MzMgMTAwNjQ0Ci0tLS0gYS9zZXR1cC9zZXR1cC51aQotKysrIGIvc2V0dXAv c2V0dXAudWkKLUBAIC05MDIsNiArOTAyLDcgQEAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJjYW5fZm9jdXMiPkZhbHNlPC9wcm9wZXJ0eT4KLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ4YWxpZ24iPjA8L3By b3BlcnR5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9 IndyYXAiPlRydWU8L3Byb3BlcnR5PgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg PHByb3BlcnR5IG5hbWU9Im1heF93aWR0aF9jaGFycyI+NzQ8L3Byb3BlcnR5PgotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9ImxhYmVsIiB0cmFuc2xhdGFi bGU9InllcyI+Jmx0O3NtYWxsJmd0OyZsdDtpJmd0O1RoZSBhY3RpdmUgaW5wdXQgbWV0aG9kIGNh biBiZSBzd2l0Y2hlZCBhcm91bmQgZnJvbSB0aGUgc2VsZWN0ZWQgb25lcyBpbiB0aGUgYWJvdmUg bGlzdCBieSBwcmVzc2luZyB0aGUga2V5Ym9hcmQgc2hvcnRjdXQga2V5cyBvciBjbGlja2luZyB0 aGUgcGFuZWwgaWNvbi4mbHQ7L2kmZ3Q7Jmx0Oy9zbWFsbCZndDs8L3Byb3BlcnR5PgotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9InVzZV9tYXJrdXAiPlRy dWU8L3Byb3BlcnR5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb2JqZWN0Pgot LS0gCi0xLjguNS4zCi0KLUZyb20gMzE4ODM2YTY0NzQ2MGUyOGRjYzY4MjU0M2ExMTg1Njc0NzRm OTg1NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IEVpa2UgSGVpbiA8aGVpbkBrZGUu b3JnPgotRGF0ZTogVGh1LCA4IE1heSAyMDE0IDExOjE2OjAyICswOTAwCi1TdWJqZWN0OiBbUEFU Q0hdIEFkZCB0aGUgbm9kZWFka2V5cyB2YXJpYW50IG9mIHRoZSBHZXJtYW4ga2V5Ym9hcmQgbGF5 b3V0LgotCi1CVUc9aHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2lidXMvaXNzdWVzL2RldGFpbD9p ZD0xNzEwCi0KLVJldmlldyBVUkw6IGh0dHBzOi8vY29kZXJldmlldy5hcHBzcG90LmNvbS85NjA0 MDA0MwotUGF0Y2ggZnJvbSBFaWtlIEhlaW4gPGhlaW5Aa2RlLm9yZz4uCi0tLS0KLSBlbmdpbmUv c2ltcGxlLnhtbC5pbiB8IDEyICsrKysrKysrKysrKwotIDEgZmlsZSBjaGFuZ2VkLCAxMiBpbnNl cnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9lbmdpbmUvc2ltcGxlLnhtbC5pbiBiL2VuZ2luZS9z aW1wbGUueG1sLmluCi1pbmRleCBiM2FjNmE1Li45NzM2NDIxIDEwMDY0NAotLS0tIGEvZW5naW5l L3NpbXBsZS54bWwuaW4KLSsrKyBiL2VuZ2luZS9zaW1wbGUueG1sLmluCi1AQCAtMzMwLDYgKzMz MCwxOCBAQAotICAgICAgICAgICAgICAgICAgICAgICAgIDxpY29uPmlidXMta2V5Ym9hcmQ8L2lj b24+Ci0gCQkJPHJhbms+OTk8L3Jhbms+Ci0gCQk8L2VuZ2luZT4KLSsgICAgICAgICAgICAgICAg PGVuZ2luZT4KLSsgICAgICAgICAgICAgICAgICAgICAgICA8bmFtZT54a2I6ZGU6bm9kZWFka2V5 czpnZXI8L25hbWU+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgPGxhbmd1YWdlPmdlcjwvbGFu Z3VhZ2U+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgPGxpY2Vuc2U+R1BMPC9saWNlbnNlPgot KyAgICAgICAgICAgICAgICAgICAgICAgIDxhdXRob3I+UGVuZyBIdWFuZyAmbHQ7c2hhd24ucC5o dWFuZ0BnbWFpbC5jb20mZ3Q7PC9hdXRob3I+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgPGxh eW91dD5kZTwvbGF5b3V0PgotKyAgICAgICAgICAgICAgICAgICAgICAgIDxsYXlvdXRfdmFyaWFu dD5ub2RlYWRrZXlzPC9sYXlvdXRfdmFyaWFudD4KLSsgICAgICAgICAgICAgICAgICAgICAgICA8 bG9uZ25hbWU+R2VybWFuIChlbGltaW5hdGUgZGVhZCBrZXlzKTwvbG9uZ25hbWU+Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgPGRlc2NyaXB0aW9uPkdlcm1hbiAoZWxpbWluYXRlIGRlYWQga2V5 cyk8L2Rlc2NyaXB0aW9uPgotKyAgICAgICAgICAgICAgICAgICAgICAgIDxpY29uPmlidXMta2V5 Ym9hcmQ8L2ljb24+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgPHJhbms+OTk8L3Jhbms+Ci0r ICAgICAgICAgICAgICAgIDwvZW5naW5lPgotIAkJPGVuZ2luZT4KLSAJCQk8bmFtZT54a2I6Z3I6 OmdyZTwvbmFtZT4KLSAJCQk8bGFuZ3VhZ2U+Z3JlPC9sYW5ndWFnZT4KLS0tIAotMS44LjUuMwot Ci1Gcm9tIDM4NmJhZmIwYjkxYTYxZDUxMzg1ZTBiYmEyYjNmYzRiMWUyZDkwMTMgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCi1Gcm9tOiBSeXUgQ2hhbmd3b28gPHJ5dS5jaGFuZ3dvb0BnbWFpbC5j b20+Ci1EYXRlOiBUaHUsIDggTWF5IDIwMTQgMTE6MjM6MTQgKzA5MDAKLVN1YmplY3Q6IFtQQVRD SF0gRGVsZXRlIEtvcmVhbiBrZXltYXAuCi0KLUJVRz1odHRwOi8vY29kZS5nb29nbGUuY29tL3Av aWJ1cy9pc3N1ZXMvZGV0YWlsP2lkPTE3MDgKLQotUmV2aWV3IFVSTDogaHR0cHM6Ly9jb2RlcmV2 aWV3LmFwcHNwb3QuY29tLzkyMDkwMDQzCi1QYXRjaCBmcm9tIFJ5dSBDaGFuZ3dvbyA8cnl1LmNo YW5nd29vQGdtYWlsLmNvbT4uCi0tLS0KLSBlbmdpbmUvc2ltcGxlLnhtbC5pbiB8IDEyIC0tLS0t LS0tLS0tLQotIDEgZmlsZSBjaGFuZ2VkLCAxMiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBh L2VuZ2luZS9zaW1wbGUueG1sLmluIGIvZW5naW5lL3NpbXBsZS54bWwuaW4KLWluZGV4IDk3MzY0 MjEuLjFiNjE3ZjggMTAwNjQ0Ci0tLS0gYS9lbmdpbmUvc2ltcGxlLnhtbC5pbgotKysrIGIvZW5n aW5lL3NpbXBsZS54bWwuaW4KLUBAIC02ODIsMTcgKzY4Miw1IEBACi0gICAgICAgICAgICAgICAg ICAgICAgICAgPGljb24+aWJ1cy1rZXlib2FyZDwvaWNvbj4KLSAJCQk8cmFuaz45OTwvcmFuaz4K LSAJCTwvZW5naW5lPgotLQkJPGVuZ2luZT4KLS0JCQk8bmFtZT54a2I6a3I6a3IxMDQ6a29yPC9u YW1lPgotLQkJCTxsYW5ndWFnZT5rb3I8L2xhbmd1YWdlPgotLQkJCTxsaWNlbnNlPkdQTDwvbGlj ZW5zZT4KLS0JCQk8YXV0aG9yPlBlbmcgSHVhbmcgJmx0O3NoYXduLnAuaHVhbmdAZ21haWwuY29t Jmd0OzwvYXV0aG9yPgotLQkJCTxsYXlvdXQ+a3I8L2xheW91dD4KLS0JCQk8bGF5b3V0X3Zhcmlh bnQ+a3IxMDQ8L2xheW91dF92YXJpYW50PgotLQkJCTxsb25nbmFtZT5Lb3JlYW4gKDEwMS8xMDQg a2V5IGNvbXBhdGlibGUpPC9sb25nbmFtZT4KLS0JCQk8ZGVzY3JpcHRpb24+S29yZWFuICgxMDEv MTA0IGtleSBjb21wYXRpYmxlKTwvZGVzY3JpcHRpb24+Ci0tICAgICAgICAgICAgICAgICAgICAg ICAgPGljb24+aWJ1cy1rZXlib2FyZDwvaWNvbj4KLS0JCQk8cmFuaz45OTwvcmFuaz4KLS0JCTwv ZW5naW5lPgotIAk8L2VuZ2luZXM+Ci0gPC9jb21wb25lbnQ+Ci0tLSAKLTEuOC41LjMKLQotRnJv bSAzNDY5Mjg1MGJkNTg1NDNlMDE2ZTM1ZWE3Yzg2M2QzMTFjYTkyNTE5IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQotRnJvbTogZnVqaXdhcmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgot RGF0ZTogRnJpLCA5IE1heSAyMDE0IDExOjQwOjIxICswOTAwCi1TdWJqZWN0OiBbUEFUQ0hdIExl dCBpYnVzLXVpLWd0azMgbm90IHRvIHNob3cgemVyby1sZW5naHQgcHJlZWRpdCB0ZXh0LgotCi1w cmVlZGl0IHRleHQgaXMgc2hvd24gYnkgaWJ1cy11aS1ndGszIG9uIFgxMSBhcHBsaWNhdGlvbnMK LWFuZCBkbyBub3QgaGF2ZSB0byBzaG93IGl0IGxpa2VzIEdUSysgd2hlbiB0aGUgbGVuZ2h0IGlz IHplcm8uCi0KLUJVRz1odHRwOi8vY29kZS5nb29nbGUuY29tL3AvaWJ1cy9pc3N1ZXMvZGV0YWls P2lkPTE3MDkKLVRFU1Q9aWJ1cy11aS1ndGszIHdpdGggaWJ1cy1waW55aW4gYW5kIHgxMSBhcHBs aWNhdGlvbnMKLQotUmV2aWV3IFVSTDogaHR0cHM6Ly9jb2RlcmV2aWV3LmFwcHNwb3QuY29tLzkz MTUwMDQzCi0tLS0KLSB1aS9ndGszL2NhbmRpZGF0ZXBhbmVsLnZhbGEgfCAxMSArKysrKysrKyst LQotIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRp ZmYgLS1naXQgYS91aS9ndGszL2NhbmRpZGF0ZXBhbmVsLnZhbGEgYi91aS9ndGszL2NhbmRpZGF0 ZXBhbmVsLnZhbGEKLWluZGV4IGUyMjEzNWIuLmRiMmQ1YWEgMTAwNjQ0Ci0tLS0gYS91aS9ndGsz L2NhbmRpZGF0ZXBhbmVsLnZhbGEKLSsrKyBiL3VpL2d0azMvY2FuZGlkYXRlcGFuZWwudmFsYQot QEAgLTExMiw4ICsxMTIsMTUgQEAgcHVibGljIGNsYXNzIENhbmRpZGF0ZVBhbmVsIDogR3RrLkJv eHsKLSAKLSAgICAgcHVibGljIHZvaWQgc2V0X3ByZWVkaXRfdGV4dChJQnVzLlRleHQ/IHRleHQs IHVpbnQgY3Vyc29yKSB7Ci0gICAgICAgICBpZiAodGV4dCAhPSBudWxsKSB7Ci0tICAgICAgICAg ICAgbV9wcmVlZGl0X2xhYmVsLnNldF90ZXh0KHRleHQuZ2V0X3RleHQoKSk7Ci0tICAgICAgICAg ICAgbV9wcmVlZGl0X2xhYmVsLnNob3coKTsKLSsgICAgICAgICAgICB2YXIgc3RyID0gdGV4dC5n ZXRfdGV4dCgpOwotKwotKyAgICAgICAgICAgIGlmIChzdHIubGVuZ3RoID4gMCkgewotKyAgICAg ICAgICAgICAgICBtX3ByZWVkaXRfbGFiZWwuc2V0X3RleHQoc3RyKTsKLSsgICAgICAgICAgICAg ICAgbV9wcmVlZGl0X2xhYmVsLnNob3coKTsKLSsgICAgICAgICAgICB9IGVsc2UgewotKyAgICAg ICAgICAgICAgICBtX3ByZWVkaXRfbGFiZWwuc2V0X3RleHQoIiIpOwotKyAgICAgICAgICAgICAg ICBtX3ByZWVkaXRfbGFiZWwuaGlkZSgpOwotKyAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxz ZSB7Ci0gICAgICAgICAgICAgbV9wcmVlZGl0X2xhYmVsLnNldF90ZXh0KCIiKTsKLSAgICAgICAg ICAgICBtX3ByZWVkaXRfbGFiZWwuaGlkZSgpOwotLS0gCi0xLjguNS4zCi0KLUZyb20gZWU0YzVl YzBhMzliNWVkNGEyMmZlMzQzMDdhNDRmM2Y5ZmExMzAzYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKLUZyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLURhdGU6IEZy aSwgNiBKdW4gMjAxNCAxNzozODowOCArMDkwMAotU3ViamVjdDogW1BBVENIXSBBZGQgUG9saXNo IChxd2VydHopIGtleW1hcCBpbiBzaW1wbGUueG1sCi0KLUJVRz1odHRwOi8vY29kZS5nb29nbGUu Y29tL3AvaWJ1cy9pc3N1ZXMvZGV0YWlsP2lkPTE3MTYKLVRFU1Q9aWJ1cy1zZXR1cAotCi1SZXZp ZXcgVVJMOiBodHRwczovL2NvZGVyZXZpZXcuYXBwc3BvdC5jb20vMTAyMTUwMDQ1Ci0tLS0KLSBi dXMvaWJ1c2ltcGwuYyAgICAgICB8ICA0ICsrLS0KLSBlbmdpbmUvc2ltcGxlLnhtbC5pbiB8IDEy ICsrKysrKysrKysrKwotIDIgZmlsZXMgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwgMiBkZWxl dGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2J1cy9pYnVzaW1wbC5jIGIvYnVzL2lidXNpbXBsLmMK LWluZGV4IDk3ZjM2MDIuLmRkMjU0ZTIgMTAwNjQ0Ci0tLS0gYS9idXMvaWJ1c2ltcGwuYwotKysr IGIvYnVzL2lidXNpbXBsLmMKLUBAIC0xNDUwLDcgKzE0NTAsNyBAQCBfaWJ1c19zZXRfZ2xvYmFs X2VuZ2luZSAoQnVzSUJ1c0ltcGwgICAgICAgICAgICppYnVzLAotICAgICAgICAgZ19kYnVzX21l dGhvZF9pbnZvY2F0aW9uX3JldHVybl9lcnJvciAoaW52b2NhdGlvbiwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfREJVU19FUlJPUiwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfREJVU19FUlJPUl9GQUlM RUQsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ2Fu IG5vdCBmaW5kIGVuZ2luZSAlcy4iLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIkNhbm5vdCBmaW5kIGVuZ2luZSAlcy4iLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5naW5lX25hbWUpOwotICAgICAgICAg cmV0dXJuOwotICAgICB9Ci1AQCAtMTU1Myw3ICsxNTUzLDcgQEAgX2lidXNfc2V0X3ByZWxvYWRf ZW5naW5lcyAoQnVzSUJ1c0ltcGwgICAgICppYnVzLAotICAgICAgICAgICAgIGdfc2V0X2Vycm9y IChlcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgR19EQlVTX0VSUk9SLAotICAgICAg ICAgICAgICAgICAgICAgICAgICBHX0RCVVNfRVJST1JfRkFJTEVELAotLSAgICAgICAgICAgICAg ICAgICAgICAgICAiQ2FuIG5vdCBmaW5kIGVuZ2luZSAlcy4iLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAiQ2Fubm90IGZpbmQgZW5naW5lICVzLiIsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgIG5hbWVzW2ldKTsKLSAgICAgICAgICAgICBnX3B0cl9hcnJheV9mcmVlIChhcnJheSwgRkFM U0UpOwotICAgICAgICAgICAgIHJldHVybiBGQUxTRTsKLWRpZmYgLS1naXQgYS9lbmdpbmUvc2lt cGxlLnhtbC5pbiBiL2VuZ2luZS9zaW1wbGUueG1sLmluCi1pbmRleCAxYjYxN2Y4Li5jMTZmODZh IDEwMDY0NAotLS0tIGEvZW5naW5lL3NpbXBsZS54bWwuaW4KLSsrKyBiL2VuZ2luZS9zaW1wbGUu eG1sLmluCi1AQCAtNDc3LDYgKzQ3NywxOCBAQAotICAgICAgICAgICAgICAgICAgICAgICAgIDxp Y29uPmlidXMta2V5Ym9hcmQ8L2ljb24+Ci0gCQkJPHJhbms+OTk8L3Jhbms+Ci0gCQk8L2VuZ2lu ZT4KLSsgICAgICAgICAgICAgICAgPGVuZ2luZT4KLSsgICAgICAgICAgICAgICAgICAgICAgICA8 bmFtZT54a2I6cGw6cXdlcnR6OnBvbDwvbmFtZT4KLSsgICAgICAgICAgICAgICAgICAgICAgICA8 bGFuZ3VhZ2U+cG9sPC9sYW5ndWFnZT4KLSsgICAgICAgICAgICAgICAgICAgICAgICA8bGljZW5z ZT5HUEw8L2xpY2Vuc2U+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgPGF1dGhvcj5QZW5nIEh1 YW5nICZsdDtzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbSZndDs8L2F1dGhvcj4KLSsgICAgICAgICAg ICAgICAgICAgICAgICA8bGF5b3V0PnBsPC9sYXlvdXQ+Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgPGxheW91dF92YXJpYW50PnF3ZXJ0ejwvbGF5b3V0X3ZhcmlhbnQ+Ci0rICAgICAgICAgICAg ICAgICAgICAgICAgPGxvbmduYW1lPlBvbGlzaCAocXdlcnR6KTwvbG9uZ25hbWU+Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgPGRlc2NyaXB0aW9uPlBvbGlzaCAocXdlcnR6KTwvZGVzY3JpcHRp b24+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgPGljb24+aWJ1cy1rZXlib2FyZDwvaWNvbj4K LSsgICAgICAgICAgICAgICAgICAgICAgICA8cmFuaz4xPC9yYW5rPgotKyAgICAgICAgICAgICAg ICA8L2VuZ2luZT4KLSAJCTxlbmdpbmU+Ci0gCQkJPG5hbWU+eGtiOnB0Ojpwb3I8L25hbWU+Ci0g CQkJPGxhbmd1YWdlPnBvcjwvbGFuZ3VhZ2U+Ci0tLSAKLTEuOC41LjMKLQotRnJvbSA5YmFkMGM5 NDQxNjJhMTcwMGRjYjY2MTVhYWIyYTZhOWNmZDllZmY1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQotRnJvbTogZnVqaXdhcmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotRGF0ZTogVGh1 LCAxMiBKdW4gMjAxNCAxMTozODo0MyArMDkwMAotU3ViamVjdDogW1BBVENIXSBGaXggZXNjYXBl IGtleSB3aXRoIEN0cmwrU2hpZnQrVSBJU08gMTQ3NTUuCi0KLUd0a0lNQ29udGV4dFNpbXBsZSB1 c2VzIGdka19rZXltYXBfZ2V0X2Zvcl9kaXNwbGF5KCkgdG8gY2hlY2sgdGhlIHJlYWRhYmxlCi1o ZXggY29kZXMgYnV0IElCdXNFbmdpbmVTaW1wbGUgaWdub3JlZCBpdCBiZWNhdXNlIGRvZXMgbm90 IGhhdmUgdGhlIGRpc3BsYXkKLWFyZ3VtZW50LgotSSBhZGRlZCBpc19oZXhfa2V5dmFsKCkgdG8g Y2hlY2sgdGhlIGVzY2FwZSBrZXkgYW5kIGZpeCB0aGlzIGJ1Zy4KLQotQlVHPWh0dHA6Ly9jb2Rl Lmdvb2dsZS5jb20vcC9pYnVzL2lzc3Vlcy9kZXRhaWw/aWQ9MTcxNQotVEVTVD1zcmMvbGliaWJ1 cy5zbwotCi1SZXZpZXcgVVJMOiBodHRwczovL2NvZGVyZXZpZXcuYXBwc3BvdC5jb20vMTAxMTYw MDQ0Ci0tLS0KLSBzcmMvaWJ1c2VuZ2luZXNpbXBsZS5jIHwgNDcgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KLSAxIGZpbGUgY2hhbmdlZCwgMzggaW5zZXJ0 aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL3NyYy9pYnVzZW5naW5lc2lt cGxlLmMgYi9zcmMvaWJ1c2VuZ2luZXNpbXBsZS5jCi1pbmRleCA4YzA3NmFjLi4zMDBhODI4IDEw MDY0NAotLS0tIGEvc3JjL2lidXNlbmdpbmVzaW1wbGUuYwotKysrIGIvc3JjL2lidXNlbmdpbmVz aW1wbGUuYwotQEAgLTY5Myw2ICs2OTMsMTQgQEAgbm9fc2VxdWVuY2VfbWF0Y2hlcyAoSUJ1c0Vu Z2luZVNpbXBsZSAqc2ltcGxlLAotIH0KLSAKLSBzdGF0aWMgZ2Jvb2xlYW4KLStpc19oZXhfa2V5 dmFsIChndWludCBrZXl2YWwpCi0rewotKyAgZ3VuaWNoYXIgY2ggPSBpYnVzX2tleXZhbF90b191 bmljb2RlIChrZXl2YWwpOwotKwotKyAgcmV0dXJuIGdfdW5pY2hhcl9pc3hkaWdpdCAoY2gpOwot K30KLSsKLStzdGF0aWMgZ2Jvb2xlYW4KLSBpYnVzX2VuZ2luZV9zaW1wbGVfcHJvY2Vzc19rZXlf ZXZlbnQgKElCdXNFbmdpbmUgKmVuZ2luZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGd1aW50ICAgICAgIGtleXZhbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGd1aW50ICAgICAgIGtleWNvZGUsCi1AQCAtNzEyLDkgKzcyMCw2IEBAIGli dXNfZW5naW5lX3NpbXBsZV9wcm9jZXNzX2tleV9ldmVudCAoSUJ1c0VuZ2luZSAqZW5naW5lLAot ICAgICB3aGlsZSAocHJpdi0+Y29tcG9zZV9idWZmZXJbbl9jb21wb3NlXSAhPSAwKQotICAgICAg ICAgbl9jb21wb3NlKys7Ci0gCi0tICAgIGlmIChuX2NvbXBvc2UgPj0gSUJVU19NQVhfQ09NUE9T RV9MRU4pCi0tICAgICAgICByZXR1cm4gVFJVRTsKLS0KLSAgICAgaWYgKG1vZGlmaWVycyAmIElC VVNfUkVMRUFTRV9NQVNLKSB7Ci0gICAgICAgICBpZiAocHJpdi0+aW5faGV4X3NlcXVlbmNlICYm Ci0gICAgICAgICAgICAgKGtleXZhbCA9PSBJQlVTX0tFWV9Db250cm9sX0wgfHwga2V5dmFsID09 IElCVVNfS0VZX0NvbnRyb2xfUiB8fAotQEAgLTc2MSw3ICs3NjYsMzIgQEAgaWJ1c19lbmdpbmVf c2ltcGxlX3Byb2Nlc3Nfa2V5X2V2ZW50IChJQnVzRW5naW5lICplbmdpbmUsCi0gICAgICAgICAg ICAgICAgICAga2V5dmFsID09IElCVVNfS0VZX0tQX0VudGVyKTsKLSAgICAgaXNfYmFja3NwYWNl ID0ga2V5dmFsID09IElCVVNfS0VZX0JhY2tTcGFjZTsKLSAgICAgaXNfZXNjYXBlID0ga2V5dmFs ID09IElCVVNfS0VZX0VzY2FwZTsKLS0gICAgaGV4X2tleXZhbCA9IGtleXZhbDsKLSsgICAgaGV4 X2tleXZhbCA9IGlzX2hleF9rZXl2YWwgKGtleXZhbCkgPyBrZXl2YWwgOiAwOwotKwotKyAgICAv KiBndGtpbWNvbnRleHRzaW1wbGUgY2F1c2VzIGEgYnVmZmVyIG92ZXJmbG93IGluIHByaXYtPmNv bXBvc2VfYnVmZmVyLgotKyAgICAgKiBBZGQgdGhlIGNoZWNrIGNvZGUgaGVyZS4KLSsgICAgICov Ci0rICAgIGlmIChuX2NvbXBvc2UgPj0gSUJVU19NQVhfQ09NUE9TRV9MRU4pIHsKLSsgICAgICAg IGlmIChpc19iYWNrc3BhY2UpIHsKLSsgICAgICAgICAgICBwcml2LT5jb21wb3NlX2J1ZmZlclst LW5fY29tcG9zZV0gPSAwOwotKyAgICAgICAgfQotKyAgICAgICAgZWxzZSBpZiAoaXNfaGV4X2Vu ZCkgewotKyAgICAgICAgICAgIC8qIGludmFsaWQgaGV4IHNlcXVlbmNlICovCi0rICAgICAgICAg ICAgLy8gYmVlcF93aW5kb3cgKGV2ZW50LT53aW5kb3cpOwotKyAgICAgICAgICAgIHByaXYtPnRl bnRhdGl2ZV9tYXRjaCA9IDA7Ci0rICAgICAgICAgICAgcHJpdi0+aW5faGV4X3NlcXVlbmNlID0g RkFMU0U7Ci0rICAgICAgICAgICAgcHJpdi0+Y29tcG9zZV9idWZmZXJbMF0gPSAwOwotKyAgICAg ICAgfQotKyAgICAgICAgZWxzZSBpZiAoaXNfZXNjYXBlKSB7Ci0rICAgICAgICAgICAgaWJ1c19l bmdpbmVfc2ltcGxlX3Jlc2V0IChlbmdpbmUpOwotKyAgICAgICAgICAgIHJldHVybiBUUlVFOwot KyAgICAgICAgfQotKwotKyAgICAgICAgaWYgKGhhdmVfaGV4X21vZHMpCi0rICAgICAgICAgICAg aWJ1c19lbmdpbmVfc2ltcGxlX3VwZGF0ZV9wcmVlZGl0X3RleHQgKHNpbXBsZSk7Ci0rCi0rICAg ICAgICByZXR1cm4gVFJVRTsKLSsgICAgfQotIAotICAgICAvKiBJZiB3ZSBhcmUgYWxyZWFkeSBp biBhIG5vbi1oZXggc2VxdWVuY2UsIG9yCi0gICAgICAqIHRoaXMga2V5c3Ryb2tlIGlzIG5vdCBo ZXggbW9kaWZpZXJzICsgaGV4IGRpZ2l0LCBkb24ndCBmaWx0ZXIKLUBAIC03ODcsMTMgKzgxNywx MiBAQCBpYnVzX2VuZ2luZV9zaW1wbGVfcHJvY2Vzc19rZXlfZXZlbnQgKElCdXNFbmdpbmUgKmVu Z2luZSwKLSAgICAgLyogSGFuZGxlIGJhY2tzcGFjZSAqLwotICAgICBpZiAocHJpdi0+aW5faGV4 X3NlcXVlbmNlICYmIGhhdmVfaGV4X21vZHMgJiYgaXNfYmFja3NwYWNlKSB7Ci0gICAgICAgICBp ZiAobl9jb21wb3NlID4gMCkgewotLSAgICAgICAgbl9jb21wb3NlLS07Ci0rICAgICAgICAgICAg bl9jb21wb3NlLS07Ci0gICAgICAgICAgICAgcHJpdi0+Y29tcG9zZV9idWZmZXJbbl9jb21wb3Nl XSA9IDA7Ci0gICAgICAgICAgICAgY2hlY2tfaGV4IChzaW1wbGUsIG5fY29tcG9zZSk7Ci0tICAg IH0KLS0gICAgICAgIGVsc2UgewotLSAgICAgICAgcHJpdi0+aW5faGV4X3NlcXVlbmNlID0gRkFM U0U7Ci0tICAgIH0KLSsgICAgICAgIH0gZWxzZSB7Ci0rICAgICAgICAgICAgcHJpdi0+aW5faGV4 X3NlcXVlbmNlID0gRkFMU0U7Ci0rICAgICAgICB9Ci0gCi0gICAgICAgICBpYnVzX2VuZ2luZV9z aW1wbGVfdXBkYXRlX3ByZWVkaXRfdGV4dCAoc2ltcGxlKTsKLSAKLS0tIAotMS44LjUuMwotCi1G cm9tIGI2YWZmZmJkMWEwNmVjZjE3YWYwMDlmMWRlM2U1MTM5ODhlY2I5MmUgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCi1Gcm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+ Ci1EYXRlOiBXZWQsIDE4IEp1biAyMDE0IDExOjQyOjM0ICswOTAwCi1TdWJqZWN0OiBbUEFUQ0hd IFVwZGF0ZSBpYnVzY29tcG9zZXRhYmxlLmggZm9yIHB0LWJyLgotCi1wdF9CUi5VVEYtOC9Db21w b3NlIGZpbGUgaXMgdXBkYXRlZDoKLWh0dHA6Ly9jZ2l0LmZyZWVkZXNrdG9wLm9yZy94b3JnL2xp Yi9saWJYMTEvY29tbWl0Lz9pZD1lM2RjMGQxNzMzCi0KLVRFU1Q9ZW5naW5lL3Rlc3QtY29tcG9z ZSBvbiBwdF9CUi5VVEYtOAotCi1SZXZpZXcgVVJMOiBodHRwczovL2NvZGVyZXZpZXcuYXBwc3Bv dC5jb20vMTAxMzMwMDQ0Ci0tLS0KLSBzcmMvZ2VuY29tcG9zZXRhYmxlLmMgIHwgIDE5ICstCi0g c3JjL2lidXNjb21wb3NldGFibGUuaCB8IDYwOCArKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gMiBmaWxlcyBjaGFuZ2VkLCAzOCBpbnNlcnRpb25zKCsp LCA1ODkgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvZ2VuY29tcG9zZXRhYmxlLmMg Yi9zcmMvZ2VuY29tcG9zZXRhYmxlLmMKLWluZGV4IGJmZmRhMDcuLjc5M2E3NWUgMTAwNjQ0Ci0t LS0gYS9zcmMvZ2VuY29tcG9zZXRhYmxlLmMKLSsrKyBiL3NyYy9nZW5jb21wb3NldGFibGUuYwot QEAgLTEsNyArMSw3IEBACi0gLyogLSotIG1vZGU6IEM7IGMtYmFzaWMtb2Zmc2V0OiA0OyBpbmRl bnQtdGFicy1tb2RlOiBuaWw7IC0qLSAqLwotIC8qIGlidXMgLSBUaGUgSW5wdXQgQnVzCi0tICog Q29weXJpZ2h0IChDKSAyMDEzIFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgot LSAqIENvcHlyaWdodCAoQykgMjAxMyBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdt YWlsLmNvbT4KLSsgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNCBQZW5nIEh1YW5nIDxzaGF3bi5w Lmh1YW5nQGdtYWlsLmNvbT4KLSsgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNCBUYWthbyBGdWpp d2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLSAgKgotICAqIFRoaXMgbGlicmFyeSBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgKiBtb2Rp ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi1A QCAtMTksNiArMTksMTcgQEAKLSAgKiBVU0EKLSAgKi8KLSAKLSsvKiBUaGlzIHRvb2wgY29udmVy dHMgQ09NUE9TRV9GSUxFU1tdIHRvIGlidXNjb21wb3NlLmggLgotKyAqIFRvIHVwZGF0ZSBpYnVz Y29tcG9zZS5oOgotKyAqICMgcm0gaWJ1c2NvbXBvc2UuaAotKyAqICMgbWFrZSBpYnVzY29tcG9z ZS5oCi0rICoKLSsgKiBJZiB5b3UgY29weSBsaWJYMTEvbmxzLz8/L0NvbXBvc2UucHJlIGluIHhv cmcgZ2l0IEhFQUQgdG8KLSsgKiAvdXNyL3NoYXJlL1gxMS9sb2NhbGUvPz8vQ29tcG9zZSAsIG5l ZWQgdG8gY29udmVydDoKLSsgKiAjIHNlZCAtZSAncy9eWENPTU0vIy8nIC1lICdzfFgxMV9MT0NB TEVEQVRBRElSfC91c3Ivc2hhcmUvWDExL2xvY2FsZXwnCi0rICogICBDb21wb3NlLnByZSA+IC91 c3Ivc2hhcmUvWDExL2xvY2FsZS9mb28vQ29tcG9zZQotKyAqLwotKwotICNpbmNsdWRlIDxnbGli Lmg+Ci0gI2luY2x1ZGUgPGdsaWIvZ3ByaW50Zi5oPgotICNpbmNsdWRlIDxsb2NhbGUuaD4KLUBA IC0zNiw4ICs0Nyw4IEBACi0gIi8qIC0qLSBtb2RlOiBDOyBjLWJhc2ljLW9mZnNldDogNDsgaW5k ZW50LXRhYnMtbW9kZTogbmlsOyAtKi0gKi9cbiIgICAgICAgICAgXAotICIvKiB2aW06c2V0IGV0 IHN0cz00OiAqL1xuIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKLSAiLyogaWJ1cyAtIFRoZSBJbnB1dCBCdXNcbiIgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0tIiAqIENvcHlyaWdodCAoQykgMjAx MyBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT5cbiIgICAgICAgICAgICAgICAg XAotLSIgKiBDb3B5cmlnaHQgKEMpIDIwMTMgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJh MUBnbWFpbC5jb20+XG4iICAgICAgICAgIFwKLSsiICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTQg UGVuZyBIdWFuZyA8c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+XG4iICAgICAgICAgICBcCi0rIiAq IENvcHlyaWdodCAoQykgMjAxMy0yMDE0IFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFA Z21haWwuY29tPlxuIiAgICAgXAotICIgKlxuIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAiICogVGhpcyBs aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vclxu IiAgICAgICAgICBcCi0gIiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM ZXNzZXIgR2VuZXJhbCBQdWJsaWNcbiIgICAgICAgICAgICAgXAotZGlmZiAtLWdpdCBhL3NyYy9p YnVzY29tcG9zZXRhYmxlLmggYi9zcmMvaWJ1c2NvbXBvc2V0YWJsZS5oCi1pbmRleCAyYmEzNTcx Li4yMmFhYjQ4IDEwMDY0NAotLS0tIGEvc3JjL2lidXNjb21wb3NldGFibGUuaAotKysrIGIvc3Jj L2lidXNjb21wb3NldGFibGUuaAotQEAgLTIwNTgsNTk2ICsyMDU4LDM0IEBAIHN0YXRpYyBjb25z dCBJQnVzQ29tcG9zZVRhYmxlIGlidXNfY29tcG9zZV90YWJsZV9maV9maSA9IHsKLSB9OwotIAot IHN0YXRpYyBjb25zdCBndWludDE2IGlidXNfY29tcG9zZV9zZXFzX3B0X2JyW10gPSB7Ci0tICBJ QlVTX0tFWV9kZWFkX2dyYXZlLCAweDFGMDAsIDAsIDAsIDAsCi0tICAgIDAsIDB4MUYwMiwgLyog VTFGMDIgIyBHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgVkFSSUEgKi8K LS0gIElCVVNfS0VZX2RlYWRfZ3JhdmUsIDB4MUYwMSwgMCwgMCwgMCwKLS0gICAgMCwgMHgxRjAz LCAvKiBVMUYwMyAjIEdSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBWQVJJ QSAqLwotLSAgSUJVU19LRVlfZGVhZF9ncmF2ZSwgMHgxRjA4LCAwLCAwLCAwLAotLSAgICAwLCAw eDFGMEEsIC8qIFUxRjBBICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBB TkQgVkFSSUEgKi8KLS0gIElCVVNfS0VZX2RlYWRfZ3JhdmUsIDB4MUYwOSwgMCwgMCwgMCwKLS0g ICAgMCwgMHgxRjBCLCAvKiBVMUYwQiAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEgg REFTSUEgQU5EIFZBUklBICovCi0tICBJQlVTX0tFWV9kZWFkX2dyYXZlLCAweDFGMTAsIDAsIDAs IDAsCi0tICAgIDAsIDB4MUYxMiwgLyogVTFGMTIgIyBHUkVFSyBTTUFMTCBMRVRURVIgRVBTSUxP TiBXSVRIIFBTSUxJIEFORCBWQVJJQSAqLwotLSAgSUJVU19LRVlfZGVhZF9ncmF2ZSwgMHgxRjEx LCAwLCAwLCAwLAotLSAgICAwLCAweDFGMTMsIC8qIFUxRjEzICMgR1JFRUsgU01BTEwgTEVUVEVS IEVQU0lMT04gV0lUSCBEQVNJQSBBTkQgVkFSSUEgKi8KLS0gIElCVVNfS0VZX2RlYWRfZ3JhdmUs IDB4MUYxOCwgMCwgMCwgMCwKLS0gICAgMCwgMHgxRjFBLCAvKiBVMUYxQSAjIEdSRUVLIENBUElU QUwgTEVUVEVSIEVQU0lMT04gV0lUSCBQU0lMSSBBTkQgVkFSSUEgKi8KLS0gIElCVVNfS0VZX2Rl YWRfZ3JhdmUsIDB4MUYxOSwgMCwgMCwgMCwKLS0gICAgMCwgMHgxRjFCLCAvKiBVMUYxQiAjIEdS RUVLIENBUElUQUwgTEVUVEVSIEVQU0lMT04gV0lUSCBEQVNJQSBBTkQgVkFSSUEgKi8KLS0gIElC VVNfS0VZX2RlYWRfZ3JhdmUsIDB4MUYyMCwgMCwgMCwgMCwKLS0gICAgMCwgMHgxRjIyLCAvKiBV MUYyMiAjIEdSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgVkFSSUEgKi8KLS0g IElCVVNfS0VZX2RlYWRfZ3JhdmUsIDB4MUYyMSwgMCwgMCwgMCwKLS0gICAgMCwgMHgxRjIzLCAv KiBVMUYyMyAjIEdSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgVkFSSUEgKi8K LS0gIElCVVNfS0VZX2RlYWRfZ3JhdmUsIDB4MUYyOCwgMCwgMCwgMCwKLS0gICAgMCwgMHgxRjJB LCAvKiBVMUYyQSAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBWQVJJ QSAqLwotLSAgSUJVU19LRVlfZGVhZF9ncmF2ZSwgMHgxRjI5LCAwLCAwLCAwLAotLSAgICAwLCAw eDFGMkIsIC8qIFUxRjJCICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5E IFZBUklBICovCi0tICBJQlVTX0tFWV9kZWFkX2dyYXZlLCAweDFGMzAsIDAsIDAsIDAsCi0tICAg IDAsIDB4MUYzMiwgLyogVTFGMzIgIyBHUkVFSyBTTUFMTCBMRVRURVIgSU9UQSBXSVRIIFBTSUxJ IEFORCBWQVJJQSAqLwotLSAgSUJVU19LRVlfZGVhZF9ncmF2ZSwgMHgxRjMxLCAwLCAwLCAwLAot LSAgICAwLCAweDFGMzMsIC8qIFUxRjMzICMgR1JFRUsgU01BTEwgTEVUVEVSIElPVEEgV0lUSCBE QVNJQSBBTkQgVkFSSUEgKi8KLS0gIElCVVNfS0VZX2RlYWRfZ3JhdmUsIDB4MUYzOCwgMCwgMCwg MCwKLS0gICAgMCwgMHgxRjNBLCAvKiBVMUYzQSAjIEdSRUVLIENBUElUQUwgTEVUVEVSIElPVEEg V0lUSCBQU0lMSSBBTkQgVkFSSUEgKi8KLS0gIElCVVNfS0VZX2RlYWRfZ3JhdmUsIDB4MUYzOSwg MCwgMCwgMCwKLS0gICAgMCwgMHgxRjNCLCAvKiBVMUYzQiAjIEdSRUVLIENBUElUQUwgTEVUVEVS IElPVEEgV0lUSCBEQVNJQSBBTkQgVkFSSUEgKi8KLS0gIElCVVNfS0VZX2RlYWRfZ3JhdmUsIDB4 MUY0MCwgMCwgMCwgMCwKLS0gICAgMCwgMHgxRjQyLCAvKiBVMUY0MiAjIEdSRUVLIFNNQUxMIExF VFRFUiBPTUlDUk9OIFdJVEggUFNJTEkgQU5EIFZBUklBICovCi0tICBJQlVTX0tFWV9kZWFkX2dy YXZlLCAweDFGNDEsIDAsIDAsIDAsCi0tICAgIDAsIDB4MUY0MywgLyogVTFGNDMgIyBHUkVFSyBT TUFMTCBMRVRURVIgT01JQ1JPTiBXSVRIIERBU0lBIEFORCBWQVJJQSAqLwotLSAgSUJVU19LRVlf ZGVhZF9ncmF2ZSwgMHgxRjQ4LCAwLCAwLCAwLAotLSAgICAwLCAweDFGNEEsIC8qIFUxRjRBICMg R1JFRUsgQ0FQSVRBTCBMRVRURVIgT01JQ1JPTiBXSVRIIFBTSUxJIEFORCBWQVJJQSAqLwotLSAg SUJVU19LRVlfZGVhZF9ncmF2ZSwgMHgxRjQ5LCAwLCAwLCAwLAotLSAgICAwLCAweDFGNEIsIC8q IFUxRjRCICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgT01JQ1JPTiBXSVRIIERBU0lBIEFORCBWQVJJ QSAqLwotLSAgSUJVU19LRVlfZGVhZF9ncmF2ZSwgMHgxRjUwLCAwLCAwLCAwLAotLSAgICAwLCAw eDFGNTIsIC8qIFUxRjUyICMgR1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBQU0lMSSBB TkQgVkFSSUEgKi8KLS0gIElCVVNfS0VZX2RlYWRfZ3JhdmUsIDB4MUY1MSwgMCwgMCwgMCwKLS0g ICAgMCwgMHgxRjUzLCAvKiBVMUY1MyAjIEdSRUVLIFNNQUxMIExFVFRFUiBVUFNJTE9OIFdJVEgg REFTSUEgQU5EIFZBUklBICovCi0tICBJQlVTX0tFWV9kZWFkX2dyYXZlLCAweDFGNTksIDAsIDAs IDAsCi0tICAgIDAsIDB4MUY1QiwgLyogVTFGNUIgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBVUFNJ TE9OIFdJVEggREFTSUEgQU5EIFZBUklBICovCi0tICBJQlVTX0tFWV9kZWFkX2dyYXZlLCAweDFG NjAsIDAsIDAsIDAsCi0tICAgIDAsIDB4MUY2MiwgLyogVTFGNjIgIyBHUkVFSyBTTUFMTCBMRVRU RVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgVkFSSUEgKi8KLS0gIElCVVNfS0VZX2RlYWRfZ3JhdmUs IDB4MUY2MSwgMCwgMCwgMCwKLS0gICAgMCwgMHgxRjYzLCAvKiBVMUY2MyAjIEdSRUVLIFNNQUxM IExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBWQVJJQSAqLwotLSAgSUJVU19LRVlfZGVhZF9n cmF2ZSwgMHgxRjY4LCAwLCAwLCAwLAotLSAgICAwLCAweDFGNkEsIC8qIFUxRjZBICMgR1JFRUsg Q0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgVkFSSUEgKi8KLS0gIElCVVNfS0VZ X2RlYWRfZ3JhdmUsIDB4MUY2OSwgMCwgMCwgMCwKLS0gICAgMCwgMHgxRjZCLCAvKiBVMUY2QiAj IEdSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFZBUklBICovCi0tICBJ QlVTX0tFWV9kZWFkX2FjdXRlLCBJQlVTX0tFWV9DLCAwLCAwLCAwLAotLSAgICAwLCAweDAwQzcs IC8qIENjZWRpbGxhICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBXSVRIIENFRElMTEEgKi8KLS0g IElCVVNfS0VZX2RlYWRfYWN1dGUsIElCVVNfS0VZX2MsIDAsIDAsIDAsCi0tICAgIDAsIDB4MDBF NywgLyogY2NlZGlsbGEgIyBMQVRJTiBTTUFMTCBMRVRURVIgQyBXSVRIIENFRElMTEEgKi8KLS0g IElCVVNfS0VZX2RlYWRfYWN1dGUsIDB4MUYwMCwgMCwgMCwgMCwKLS0gICAgMCwgMHgxRjA0LCAv KiBVMUYwNCAjIEdSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBPWElBICov Ci0tICBJQlVTX0tFWV9kZWFkX2FjdXRlLCAweDFGMDEsIDAsIDAsIDAsCi0tICAgIDAsIDB4MUYw NSwgLyogVTFGMDUgIyBHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgT1hJ QSAqLwotLSAgSUJVU19LRVlfZGVhZF9hY3V0ZSwgMHgxRjA4LCAwLCAwLCAwLAotLSAgICAwLCAw eDFGMEMsIC8qIFUxRjBDICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBB TkQgT1hJQSAqLwotLSAgSUJVU19LRVlfZGVhZF9hY3V0ZSwgMHgxRjA5LCAwLCAwLCAwLAotLSAg ICAwLCAweDFGMEQsIC8qIFUxRjBEICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBE QVNJQSBBTkQgT1hJQSAqLwotLSAgSUJVU19LRVlfZGVhZF9hY3V0ZSwgMHgxRjEwLCAwLCAwLCAw LAotLSAgICAwLCAweDFGMTQsIC8qIFUxRjE0ICMgR1JFRUsgU01BTEwgTEVUVEVSIEVQU0lMT04g V0lUSCBQU0lMSSBBTkQgT1hJQSAqLwotLSAgSUJVU19LRVlfZGVhZF9hY3V0ZSwgMHgxRjExLCAw LCAwLCAwLAotLSAgICAwLCAweDFGMTUsIC8qIFUxRjE1ICMgR1JFRUsgU01BTEwgTEVUVEVSIEVQ U0lMT04gV0lUSCBEQVNJQSBBTkQgT1hJQSAqLwotLSAgSUJVU19LRVlfZGVhZF9hY3V0ZSwgMHgx RjE4LCAwLCAwLCAwLAotLSAgICAwLCAweDFGMUMsIC8qIFUxRjFDICMgR1JFRUsgQ0FQSVRBTCBM RVRURVIgRVBTSUxPTiBXSVRIIFBTSUxJIEFORCBPWElBICovCi0tICBJQlVTX0tFWV9kZWFkX2Fj dXRlLCAweDFGMTksIDAsIDAsIDAsCi0tICAgIDAsIDB4MUYxRCwgLyogVTFGMUQgIyBHUkVFSyBD QVBJVEFMIExFVFRFUiBFUFNJTE9OIFdJVEggREFTSUEgQU5EIE9YSUEgKi8KLS0gIElCVVNfS0VZ X2RlYWRfYWN1dGUsIDB4MUYyMCwgMCwgMCwgMCwKLS0gICAgMCwgMHgxRjI0LCAvKiBVMUYyNCAj IEdSRUVLIFNNQUxMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgT1hJQSAqLwotLSAgSUJVU19L RVlfZGVhZF9hY3V0ZSwgMHgxRjIxLCAwLCAwLCAwLAotLSAgICAwLCAweDFGMjUsIC8qIFUxRjI1 ICMgR1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIERBU0lBIEFORCBPWElBICovCi0tICBJQlVT X0tFWV9kZWFkX2FjdXRlLCAweDFGMjgsIDAsIDAsIDAsCi0tICAgIDAsIDB4MUYyQywgLyogVTFG MkMgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgT1hJQSAqLwotLSAg SUJVU19LRVlfZGVhZF9hY3V0ZSwgMHgxRjI5LCAwLCAwLCAwLAotLSAgICAwLCAweDFGMkQsIC8q IFUxRjJEICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIE9YSUEgKi8K LS0gIElCVVNfS0VZX2RlYWRfYWN1dGUsIDB4MUYzMCwgMCwgMCwgMCwKLS0gICAgMCwgMHgxRjM0 LCAvKiBVMUYzNCAjIEdSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggUFNJTEkgQU5EIE9YSUEg Ki8KLS0gIElCVVNfS0VZX2RlYWRfYWN1dGUsIDB4MUYzMSwgMCwgMCwgMCwKLS0gICAgMCwgMHgx RjM1LCAvKiBVMUYzNSAjIEdSRUVLIFNNQUxMIExFVFRFUiBJT1RBIFdJVEggREFTSUEgQU5EIE9Y SUEgKi8KLS0gIElCVVNfS0VZX2RlYWRfYWN1dGUsIDB4MUYzOCwgMCwgMCwgMCwKLS0gICAgMCwg MHgxRjNDLCAvKiBVMUYzQyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIElPVEEgV0lUSCBQU0lMSSBB TkQgT1hJQSAqLwotLSAgSUJVU19LRVlfZGVhZF9hY3V0ZSwgMHgxRjM5LCAwLCAwLCAwLAotLSAg ICAwLCAweDFGM0QsIC8qIFUxRjNEICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgSU9UQSBXSVRIIERB U0lBIEFORCBPWElBICovCi0tICBJQlVTX0tFWV9kZWFkX2FjdXRlLCAweDFGNDAsIDAsIDAsIDAs Ci0tICAgIDAsIDB4MUY0NCwgLyogVTFGNDQgIyBHUkVFSyBTTUFMTCBMRVRURVIgT01JQ1JPTiBX SVRIIFBTSUxJIEFORCBPWElBICovCi0tICBJQlVTX0tFWV9kZWFkX2FjdXRlLCAweDFGNDEsIDAs IDAsIDAsCi0tICAgIDAsIDB4MUY0NSwgLyogVTFGNDUgIyBHUkVFSyBTTUFMTCBMRVRURVIgT01J Q1JPTiBXSVRIIERBU0lBIEFORCBPWElBICovCi0tICBJQlVTX0tFWV9kZWFkX2FjdXRlLCAweDFG NDgsIDAsIDAsIDAsCi0tICAgIDAsIDB4MUY0QywgLyogVTFGNEMgIyBHUkVFSyBDQVBJVEFMIExF VFRFUiBPTUlDUk9OIFdJVEggUFNJTEkgQU5EIE9YSUEgKi8KLS0gIElCVVNfS0VZX2RlYWRfYWN1 dGUsIDB4MUY0OSwgMCwgMCwgMCwKLS0gICAgMCwgMHgxRjRELCAvKiBVMUY0RCAjIEdSRUVLIENB UElUQUwgTEVUVEVSIE9NSUNST04gV0lUSCBEQVNJQSBBTkQgT1hJQSAqLwotLSAgSUJVU19LRVlf ZGVhZF9hY3V0ZSwgMHgxRjUwLCAwLCAwLCAwLAotLSAgICAwLCAweDFGNTQsIC8qIFUxRjU0ICMg R1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBQU0lMSSBBTkQgT1hJQSAqLwotLSAgSUJV U19LRVlfZGVhZF9hY3V0ZSwgMHgxRjUxLCAwLCAwLCAwLAotLSAgICAwLCAweDFGNTUsIC8qIFUx RjU1ICMgR1JFRUsgU01BTEwgTEVUVEVSIFVQU0lMT04gV0lUSCBEQVNJQSBBTkQgT1hJQSAqLwot LSAgSUJVU19LRVlfZGVhZF9hY3V0ZSwgMHgxRjU5LCAwLCAwLCAwLAotLSAgICAwLCAweDFGNUQs IC8qIFUxRjVEICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgVVBTSUxPTiBXSVRIIERBU0lBIEFORCBP WElBICovCi0tICBJQlVTX0tFWV9kZWFkX2FjdXRlLCAweDFGNjAsIDAsIDAsIDAsCi0tICAgIDAs IDB4MUY2NCwgLyogVTFGNjQgIyBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBB TkQgT1hJQSAqLwotLSAgSUJVU19LRVlfZGVhZF9hY3V0ZSwgMHgxRjYxLCAwLCAwLCAwLAotLSAg ICAwLCAweDFGNjUsIC8qIFUxRjY1ICMgR1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFT SUEgQU5EIE9YSUEgKi8KLS0gIElCVVNfS0VZX2RlYWRfYWN1dGUsIDB4MUY2OCwgMCwgMCwgMCwK LS0gICAgMCwgMHgxRjZDLCAvKiBVMUY2QyAjIEdSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJ VEggUFNJTEkgQU5EIE9YSUEgKi8KLS0gIElCVVNfS0VZX2RlYWRfYWN1dGUsIDB4MUY2OSwgMCwg MCwgMCwKLS0gICAgMCwgMHgxRjZELCAvKiBVMUY2RCAjIEdSRUVLIENBUElUQUwgTEVUVEVSIE9N RUdBIFdJVEggREFTSUEgQU5EIE9YSUEgKi8KLS0gIElCVVNfS0VZX2RlYWRfY2lyY3VtZmxleCwg MHgxRUEwLCAwLCAwLCAwLAotLSAgICAwLCAweDFFQUMsIC8qIFUxRUFDICMgTEFUSU4gQ0FQSVRB TCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVggQU5EIERPVCBCRUxPVyAqLwotLSAgSUJVU19LRVlf ZGVhZF9jaXJjdW1mbGV4LCAweDFFQTEsIDAsIDAsIDAsCi0tICAgIDAsIDB4MUVBRCwgLyogVTFF QUQgIyBMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVggQU5EIERPVCBCRUxPVyAq LwotLSAgSUJVU19LRVlfZGVhZF9jaXJjdW1mbGV4LCAweDFFQjgsIDAsIDAsIDAsCi0tICAgIDAs IDB4MUVDNiwgLyogVTFFQzYgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxF WCBBTkQgRE9UIEJFTE9XICovCi0tICBJQlVTX0tFWV9kZWFkX2NpcmN1bWZsZXgsIDB4MUVCOSwg MCwgMCwgMCwKLS0gICAgMCwgMHgxRUM3LCAvKiBVMUVDNyAjIExBVElOIFNNQUxMIExFVFRFUiBF IFdJVEggQ0lSQ1VNRkxFWCBBTkQgRE9UIEJFTE9XICovCi0tICBJQlVTX0tFWV9kZWFkX2NpcmN1 bWZsZXgsIDB4MUVDQywgMCwgMCwgMCwKLS0gICAgMCwgMHgxRUQ4LCAvKiBVMUVEOCAjIExBVElO IENBUElUQUwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYIEFORCBET1QgQkVMT1cgKi8KLS0gIElC VVNfS0VZX2RlYWRfY2lyY3VtZmxleCwgMHgxRUNELCAwLCAwLCAwLAotLSAgICAwLCAweDFFRDks IC8qIFUxRUQ5ICMgTEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYIEFORCBET1Qg QkVMT1cgKi8KLS0gIElCVVNfS0VZX2RlYWRfbWFjcm9uLCAweDAxRUEsIDAsIDAsIDAsCi0tICAg IDAsIDB4MDFFQywgLyogVTAxRUMgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggT0dPTkVL IEFORCBNQUNST04gKi8KLS0gIElCVVNfS0VZX2RlYWRfbWFjcm9uLCAweDAxRUIsIDAsIDAsIDAs Ci0tICAgIDAsIDB4MDFFRCwgLyogVTAxRUQgIyBMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIE9H T05FSyBBTkQgTUFDUk9OICovCi0tICBJQlVTX0tFWV9kZWFkX21hY3JvbiwgMHgwMjI2LCAwLCAw LCAwLAotLSAgICAwLCAweDAxRTAsIC8qIFUwMUUwICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBX SVRIIERPVCBBQk9WRSBBTkQgTUFDUk9OICovCi0tICBJQlVTX0tFWV9kZWFkX21hY3JvbiwgMHgw MjI3LCAwLCAwLCAwLAotLSAgICAwLCAweDAxRTEsIC8qIFUwMUUxICMgTEFUSU4gU01BTEwgTEVU VEVSIEEgV0lUSCBET1QgQUJPVkUgQU5EIE1BQ1JPTiAqLwotLSAgSUJVU19LRVlfZGVhZF9tYWNy b24sIDB4MDIyRSwgMCwgMCwgMCwKLS0gICAgMCwgMHgwMjMwLCAvKiBVMDIzMCAjIExBVElOIENB UElUQUwgTEVUVEVSIE8gV0lUSCBET1QgQUJPVkUgQU5EIE1BQ1JPTiAqLwotLSAgSUJVU19LRVlf ZGVhZF9tYWNyb24sIDB4MDIyRiwgMCwgMCwgMCwKLS0gICAgMCwgMHgwMjMxLCAvKiBVMDIzMSAj IExBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggRE9UIEFCT1ZFIEFORCBNQUNST04gKi8KLS0gIElC VVNfS0VZX2RlYWRfbWFjcm9uLCAweDFFMzYsIDAsIDAsIDAsCi0tICAgIDAsIDB4MUUzOCwgLyog VTFFMzggIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFdJVEggRE9UIEJFTE9XIEFORCBNQUNST04g Ki8KLS0gIElCVVNfS0VZX2RlYWRfbWFjcm9uLCAweDFFMzcsIDAsIDAsIDAsCi0tICAgIDAsIDB4 MUUzOSwgLyogVTFFMzkgIyBMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIERPVCBCRUxPVyBBTkQg TUFDUk9OICovCi0tICBJQlVTX0tFWV9kZWFkX21hY3JvbiwgMHgxRTVBLCAwLCAwLCAwLAotLSAg ICAwLCAweDFFNUMsIC8qIFUxRTVDICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBXSVRIIERPVCBC RUxPVyBBTkQgTUFDUk9OICovCi0tICBJQlVTX0tFWV9kZWFkX21hY3JvbiwgMHgxRTVCLCAwLCAw LCAwLAotLSAgICAwLCAweDFFNUQsIC8qIFUxRTVEICMgTEFUSU4gU01BTEwgTEVUVEVSIFIgV0lU SCBET1QgQkVMT1cgQU5EIE1BQ1JPTiAqLwotLSAgSUJVU19LRVlfZGVhZF9tYWNyb24sIElCVVNf S0VZX2RlYWRfZGlhZXJlc2lzLCBJQlVTX0tFWV9VLCAwLCAwLAotLSAgICAwLCAweDAxRDUsIC8q IFUwMUQ1ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUyBBTkQgTUFDUk9O ICovCi0tICBJQlVTX0tFWV9kZWFkX21hY3JvbiwgSUJVU19LRVlfZGVhZF9kaWFlcmVzaXMsIElC VVNfS0VZX3UsIDAsIDAsCi0tICAgIDAsIDB4MDFENiwgLyogVTAxRDYgIyBMQVRJTiBTTUFMTCBM RVRURVIgVSBXSVRIIERJQUVSRVNJUyBBTkQgTUFDUk9OICovCi0tICBJQlVTX0tFWV9kZWFkX2Jy ZXZlLCAweDAyMjgsIDAsIDAsIDAsCi0tICAgIDAsIDB4MUUxQywgLyogVTFFMUMgIyBMQVRJTiBD QVBJVEFMIExFVFRFUiBFIFdJVEggQ0VESUxMQSBBTkQgQlJFVkUgKi8KLS0gIElCVVNfS0VZX2Rl YWRfYnJldmUsIDB4MDIyOSwgMCwgMCwgMCwKLS0gICAgMCwgMHgxRTFELCAvKiBVMUUxRCAjIExB VElOIFNNQUxMIExFVFRFUiBFIFdJVEggQ0VESUxMQSBBTkQgQlJFVkUgKi8KLS0gIElCVVNfS0VZ X2RlYWRfYnJldmUsIDB4MUVBMCwgMCwgMCwgMCwKLS0gICAgMCwgMHgxRUI2LCAvKiBVMUVCNiAj IExBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBCUkVWRSBBTkQgRE9UIEJFTE9XICovCi0tICBJ QlVTX0tFWV9kZWFkX2JyZXZlLCAweDFFQTEsIDAsIDAsIDAsCi0tICAgIDAsIDB4MUVCNywgLyog VTFFQjcgIyBMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIEJSRVZFIEFORCBET1QgQkVMT1cgKi8K LS0gIElCVVNfS0VZX2RlYWRfYWJvdmVkb3QsIDB4MDE3RiwgMCwgMCwgMCwKLS0gICAgMCwgMHgx RTlCLCAvKiBVMUU5QiAjIExBVElOIFNNQUxMIExFVFRFUiBMT05HIFMgV0lUSCBET1QgQUJPVkUg Ki8KLS0gIElCVVNfS0VZX2RlYWRfYWJvdmVkb3QsIDB4MUU2MiwgMCwgMCwgMCwKLS0gICAgMCwg MHgxRTY4LCAvKiBVMUU2OCAjIExBVElOIENBUElUQUwgTEVUVEVSIFMgV0lUSCBET1QgQkVMT1cg QU5EIERPVCBBQk9WRSAqLwotLSAgSUJVU19LRVlfZGVhZF9hYm92ZWRvdCwgMHgxRTYzLCAwLCAw LCAwLAotLSAgICAwLCAweDFFNjksIC8qIFUxRTY5ICMgTEFUSU4gU01BTEwgTEVUVEVSIFMgV0lU SCBET1QgQkVMT1cgQU5EIERPVCBBQk9WRSAqLwotLSAgSUJVU19LRVlfZGVhZF9kaWFlcmVzaXMs IDB4MDREOCwgMCwgMCwgMCwKLS0gICAgMCwgMHgwNERBLCAvKiBVMDREQSAjIENZUklMTElDIENB UElUQUwgTEVUVEVSIFNDSFdBIFdJVEggRElBRVJFU0lTICovCi0tICBJQlVTX0tFWV9kZWFkX2Rp YWVyZXNpcywgMHgwNEQ5LCAwLCAwLCAwLAotLSAgICAwLCAweDA0REIsIC8qIFUwNERCICMgQ1lS SUxMSUMgU01BTEwgTEVUVEVSIFNDSFdBIFdJVEggRElBRVJFU0lTICovCi0tICBJQlVTX0tFWV9k ZWFkX2RpYWVyZXNpcywgMHgwNEU4LCAwLCAwLCAwLAotLSAgICAwLCAweDA0RUEsIC8qIFUwNEVB ICMgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQkFSUkVEIE8gV0lUSCBESUFFUkVTSVMgKi8KLS0g IElCVVNfS0VZX2RlYWRfZGlhZXJlc2lzLCAweDA0RTksIDAsIDAsIDAsCi0tICAgIDAsIDB4MDRF QiwgLyogVTA0RUIgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgQkFSUkVEIE8gV0lUSCBESUFFUkVT SVMgKi8KLS0gIElCVVNfS0VZX2RlYWRfZGlhZXJlc2lzLCBJQlVTX0tFWV9kZWFkX21hY3Jvbiwg SUJVU19LRVlfVSwgMCwgMCwKLS0gICAgMCwgMHgxRTdBLCAvKiBVMUU3QSAjIExBVElOIENBUElU QUwgTEVUVEVSIFUgV0lUSCBNQUNST04gQU5EIERJQUVSRVNJUyAqLwotLSAgSUJVU19LRVlfZGVh ZF9kaWFlcmVzaXMsIElCVVNfS0VZX2RlYWRfbWFjcm9uLCBJQlVTX0tFWV91LCAwLCAwLAotLSAg ICAwLCAweDFFN0IsIC8qIFUxRTdCICMgTEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBNQUNST04g QU5EIERJQUVSRVNJUyAqLwotLSAgSUJVU19LRVlfZGVhZF9pb3RhLCAweDFGMDAsIDAsIDAsIDAs Ci0tICAgIDAsIDB4MUY4MCwgLyogVTFGODAgIyBHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lU SCBQU0lMSSBBTkQgWVBPR0VHUkFNTUVOSSAqLwotLSAgSUJVU19LRVlfZGVhZF9pb3RhLCAweDFG MDEsIDAsIDAsIDAsCi0tICAgIDAsIDB4MUY4MSwgLyogVTFGODEgIyBHUkVFSyBTTUFMTCBMRVRU RVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgWVBPR0VHUkFNTUVOSSAqLwotLSAgSUJVU19LRVlfZGVh ZF9pb3RhLCAweDFGMDIsIDAsIDAsIDAsCi0tICAgIDAsIDB4MUY4MiwgLyogVTFGODIgIyBHUkVF SyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgVkFSSUEgQU5EIFlQT0dFR1JBTU1F TkkgKi8KLS0gIElCVVNfS0VZX2RlYWRfaW90YSwgMHgxRjAzLCAwLCAwLCAwLAotLSAgICAwLCAw eDFGODMsIC8qIFUxRjgzICMgR1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5E IFZBUklBIEFORCBZUE9HRUdSQU1NRU5JICovCi0tICBJQlVTX0tFWV9kZWFkX2lvdGEsIDB4MUYw NCwgMCwgMCwgMCwKLS0gICAgMCwgMHgxRjg0LCAvKiBVMUY4NCAjIEdSRUVLIFNNQUxMIExFVFRF UiBBTFBIQSBXSVRIIFBTSUxJIEFORCBPWElBIEFORCBZUE9HRUdSQU1NRU5JICovCi0tICBJQlVT X0tFWV9kZWFkX2lvdGEsIDB4MUYwNSwgMCwgMCwgMCwKLS0gICAgMCwgMHgxRjg1LCAvKiBVMUY4 NSAjIEdSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBPWElBIEFORCBZUE9H RUdSQU1NRU5JICovCi0tICBJQlVTX0tFWV9kZWFkX2lvdGEsIDB4MUYwNiwgMCwgMCwgMCwKLS0g ICAgMCwgMHgxRjg2LCAvKiBVMUY4NiAjIEdSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBT SUxJIEFORCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSSAqLwotLSAgSUJVU19LRVlfZGVh ZF9pb3RhLCAweDFGMDcsIDAsIDAsIDAsCi0tICAgIDAsIDB4MUY4NywgLyogVTFGODcgIyBHUkVF SyBTTUFMTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkkgQU5EIFlQT0dF R1JBTU1FTkkgKi8KLS0gIElCVVNfS0VZX2RlYWRfaW90YSwgMHgxRjA4LCAwLCAwLCAwLAotLSAg ICAwLCAweDFGODgsIC8qIFUxRjg4ICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQ U0lMSSBBTkQgUFJPU0dFR1JBTU1FTkkgKi8KLS0gIElCVVNfS0VZX2RlYWRfaW90YSwgMHgxRjA5 LCAwLCAwLCAwLAotLSAgICAwLCAweDFGODksIC8qIFUxRjg5ICMgR1JFRUsgQ0FQSVRBTCBMRVRU RVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgUFJPU0dFR1JBTU1FTkkgKi8KLS0gIElCVVNfS0VZX2Rl YWRfaW90YSwgMHgxRjBBLCAwLCAwLCAwLAotLSAgICAwLCAweDFGOEEsIC8qIFUxRjhBICMgR1JF RUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBQU0lMSSBBTkQgVkFSSUEgQU5EIFBST1NHRUdS QU1NRU5JICovCi0tICBJQlVTX0tFWV9kZWFkX2lvdGEsIDB4MUYwQiwgMCwgMCwgMCwKLS0gICAg MCwgMHgxRjhCLCAvKiBVMUY4QiAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggREFT SUEgQU5EIFZBUklBIEFORCBQUk9TR0VHUkFNTUVOSSAqLwotLSAgSUJVU19LRVlfZGVhZF9pb3Rh LCAweDFGMEMsIDAsIDAsIDAsCi0tICAgIDAsIDB4MUY4QywgLyogVTFGOEMgIyBHUkVFSyBDQVBJ VEFMIExFVFRFUiBBTFBIQSBXSVRIIFBTSUxJIEFORCBPWElBIEFORCBQUk9TR0VHUkFNTUVOSSAq LwotLSAgSUJVU19LRVlfZGVhZF9pb3RhLCAweDFGMEQsIDAsIDAsIDAsCi0tICAgIDAsIDB4MUY4 RCwgLyogVTFGOEQgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBBTFBIQSBXSVRIIERBU0lBIEFORCBP WElBIEFORCBQUk9TR0VHUkFNTUVOSSAqLwotLSAgSUJVU19LRVlfZGVhZF9pb3RhLCAweDFGMEUs IDAsIDAsIDAsCi0tICAgIDAsIDB4MUY4RSwgLyogVTFGOEUgIyBHUkVFSyBDQVBJVEFMIExFVFRF UiBBTFBIQSBXSVRIIFBTSUxJIEFORCBQRVJJU1BPTUVOSSBBTkQgUFJPU0dFR1JBTU1FTkkgKi8K LS0gIElCVVNfS0VZX2RlYWRfaW90YSwgMHgxRjBGLCAwLCAwLCAwLAotLSAgICAwLCAweDFGOEYs IC8qIFUxRjhGICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgUEVS SVNQT01FTkkgQU5EIFBST1NHRUdSQU1NRU5JICovCi0tICBJQlVTX0tFWV9kZWFkX2lvdGEsIDB4 MUYyMCwgMCwgMCwgMCwKLS0gICAgMCwgMHgxRjkwLCAvKiBVMUY5MCAjIEdSRUVLIFNNQUxMIExF VFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgWVBPR0VHUkFNTUVOSSAqLwotLSAgSUJVU19LRVlfZGVh ZF9pb3RhLCAweDFGMjEsIDAsIDAsIDAsCi0tICAgIDAsIDB4MUY5MSwgLyogVTFGOTEgIyBHUkVF SyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFlQT0dFR1JBTU1FTkkgKi8KLS0gIElC VVNfS0VZX2RlYWRfaW90YSwgMHgxRjIyLCAwLCAwLCAwLAotLSAgICAwLCAweDFGOTIsIC8qIFUx RjkyICMgR1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBWQVJJQSBBTkQgWVBP R0VHUkFNTUVOSSAqLwotLSAgSUJVU19LRVlfZGVhZF9pb3RhLCAweDFGMjMsIDAsIDAsIDAsCi0t ICAgIDAsIDB4MUY5MywgLyogVTFGOTMgIyBHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFT SUEgQU5EIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JICovCi0tICBJQlVTX0tFWV9kZWFkX2lvdGEs IDB4MUYyNCwgMCwgMCwgMCwKLS0gICAgMCwgMHgxRjk0LCAvKiBVMUY5NCAjIEdSRUVLIFNNQUxM IExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgT1hJQSBBTkQgWVBPR0VHUkFNTUVOSSAqLwotLSAg SUJVU19LRVlfZGVhZF9pb3RhLCAweDFGMjUsIDAsIDAsIDAsCi0tICAgIDAsIDB4MUY5NSwgLyog VTFGOTUgIyBHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIE9YSUEgQU5EIFlQ T0dFR1JBTU1FTkkgKi8KLS0gIElCVVNfS0VZX2RlYWRfaW90YSwgMHgxRjI2LCAwLCAwLCAwLAot LSAgICAwLCAweDFGOTYsIC8qIFUxRjk2ICMgR1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBT SUxJIEFORCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSSAqLwotLSAgSUJVU19LRVlfZGVh ZF9pb3RhLCAweDFGMjcsIDAsIDAsIDAsCi0tICAgIDAsIDB4MUY5NywgLyogVTFGOTcgIyBHUkVF SyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFBFUklTUE9NRU5JIEFORCBZUE9HRUdS QU1NRU5JICovCi0tICBJQlVTX0tFWV9kZWFkX2lvdGEsIDB4MUYyOCwgMCwgMCwgMCwKLS0gICAg MCwgMHgxRjk4LCAvKiBVMUY5OCAjIEdSRUVLIENBUElUQUwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJ IEFORCBQUk9TR0VHUkFNTUVOSSAqLwotLSAgSUJVU19LRVlfZGVhZF9pb3RhLCAweDFGMjksIDAs IDAsIDAsCi0tICAgIDAsIDB4MUY5OSwgLyogVTFGOTkgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBF VEEgV0lUSCBEQVNJQSBBTkQgUFJPU0dFR1JBTU1FTkkgKi8KLS0gIElCVVNfS0VZX2RlYWRfaW90 YSwgMHgxRjJBLCAwLCAwLCAwLAotLSAgICAwLCAweDFGOUEsIC8qIFUxRjlBICMgR1JFRUsgQ0FQ SVRBTCBMRVRURVIgRVRBIFdJVEggUFNJTEkgQU5EIFZBUklBIEFORCBQUk9TR0VHUkFNTUVOSSAq LwotLSAgSUJVU19LRVlfZGVhZF9pb3RhLCAweDFGMkIsIDAsIDAsIDAsCi0tICAgIDAsIDB4MUY5 QiwgLyogVTFGOUIgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgVkFS SUEgQU5EIFBST1NHRUdSQU1NRU5JICovCi0tICBJQlVTX0tFWV9kZWFkX2lvdGEsIDB4MUYyQywg MCwgMCwgMCwKLS0gICAgMCwgMHgxRjlDLCAvKiBVMUY5QyAjIEdSRUVLIENBUElUQUwgTEVUVEVS IEVUQSBXSVRIIFBTSUxJIEFORCBPWElBIEFORCBQUk9TR0VHUkFNTUVOSSAqLwotLSAgSUJVU19L RVlfZGVhZF9pb3RhLCAweDFGMkQsIDAsIDAsIDAsCi0tICAgIDAsIDB4MUY5RCwgLyogVTFGOUQg IyBHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgT1hJQSBBTkQgUFJPU0dF R1JBTU1FTkkgKi8KLS0gIElCVVNfS0VZX2RlYWRfaW90YSwgMHgxRjJFLCAwLCAwLCAwLAotLSAg ICAwLCAweDFGOUUsIC8qIFUxRjlFICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggUFNJ TEkgQU5EIFBFUklTUE9NRU5JIEFORCBQUk9TR0VHUkFNTUVOSSAqLwotLSAgSUJVU19LRVlfZGVh ZF9pb3RhLCAweDFGMkYsIDAsIDAsIDAsCi0tICAgIDAsIDB4MUY5RiwgLyogVTFGOUYgIyBHUkVF SyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBEQVNJQSBBTkQgUEVSSVNQT01FTkkgQU5EIFBST1NH RUdSQU1NRU5JICovCi0tICBJQlVTX0tFWV9kZWFkX2lvdGEsIDB4MUY2MCwgMCwgMCwgMCwKLS0g ICAgMCwgMHgxRkEwLCAvKiBVMUZBMCAjIEdSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFBT SUxJIEFORCBZUE9HRUdSQU1NRU5JICovCi0tICBJQlVTX0tFWV9kZWFkX2lvdGEsIDB4MUY2MSwg MCwgMCwgMCwKLS0gICAgMCwgMHgxRkExLCAvKiBVMUZBMSAjIEdSRUVLIFNNQUxMIExFVFRFUiBP TUVHQSBXSVRIIERBU0lBIEFORCBZUE9HRUdSQU1NRU5JICovCi0tICBJQlVTX0tFWV9kZWFkX2lv dGEsIDB4MUY2MiwgMCwgMCwgMCwKLS0gICAgMCwgMHgxRkEyLCAvKiBVMUZBMiAjIEdSRUVLIFNN QUxMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSSAq LwotLSAgSUJVU19LRVlfZGVhZF9pb3RhLCAweDFGNjMsIDAsIDAsIDAsCi0tICAgIDAsIDB4MUZB MywgLyogVTFGQTMgIyBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBBTkQgVkFS SUEgQU5EIFlQT0dFR1JBTU1FTkkgKi8KLS0gIElCVVNfS0VZX2RlYWRfaW90YSwgMHgxRjY0LCAw LCAwLCAwLAotLSAgICAwLCAweDFGQTQsIC8qIFUxRkE0ICMgR1JFRUsgU01BTEwgTEVUVEVSIE9N RUdBIFdJVEggUFNJTEkgQU5EIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkkgKi8KLS0gIElCVVNfS0VZ X2RlYWRfaW90YSwgMHgxRjY1LCAwLCAwLCAwLAotLSAgICAwLCAweDFGQTUsIC8qIFUxRkE1ICMg R1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIE9YSUEgQU5EIFlQT0dFR1JB TU1FTkkgKi8KLS0gIElCVVNfS0VZX2RlYWRfaW90YSwgMHgxRjY2LCAwLCAwLCAwLAotLSAgICAw LCAweDFGQTYsIC8qIFUxRkE2ICMgR1JFRUsgU01BTEwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkg QU5EIFBFUklTUE9NRU5JIEFORCBZUE9HRUdSQU1NRU5JICovCi0tICBJQlVTX0tFWV9kZWFkX2lv dGEsIDB4MUY2NywgMCwgMCwgMCwKLS0gICAgMCwgMHgxRkE3LCAvKiBVMUZBNyAjIEdSRUVLIFNN QUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFN TUVOSSAqLwotLSAgSUJVU19LRVlfZGVhZF9pb3RhLCAweDFGNjgsIDAsIDAsIDAsCi0tICAgIDAs IDB4MUZBOCwgLyogVTFGQTggIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJ IEFORCBQUk9TR0VHUkFNTUVOSSAqLwotLSAgSUJVU19LRVlfZGVhZF9pb3RhLCAweDFGNjksIDAs IDAsIDAsCi0tICAgIDAsIDB4MUZBOSwgLyogVTFGQTkgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBP TUVHQSBXSVRIIERBU0lBIEFORCBQUk9TR0VHUkFNTUVOSSAqLwotLSAgSUJVU19LRVlfZGVhZF9p b3RhLCAweDFGNkEsIDAsIDAsIDAsCi0tICAgIDAsIDB4MUZBQSwgLyogVTFGQUEgIyBHUkVFSyBD QVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIFBTSUxJIEFORCBWQVJJQSBBTkQgUFJPU0dFR1JBTU1F TkkgKi8KLS0gIElCVVNfS0VZX2RlYWRfaW90YSwgMHgxRjZCLCAwLCAwLCAwLAotLSAgICAwLCAw eDFGQUIsIC8qIFUxRkFCICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgT01FR0EgV0lUSCBEQVNJQSBB TkQgVkFSSUEgQU5EIFBST1NHRUdSQU1NRU5JICovCi0tICBJQlVTX0tFWV9kZWFkX2lvdGEsIDB4 MUY2QywgMCwgMCwgMCwKLS0gICAgMCwgMHgxRkFDLCAvKiBVMUZBQyAjIEdSRUVLIENBUElUQUwg TEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIE9YSUEgQU5EIFBST1NHRUdSQU1NRU5JICovCi0t ICBJQlVTX0tFWV9kZWFkX2lvdGEsIDB4MUY2RCwgMCwgMCwgMCwKLS0gICAgMCwgMHgxRkFELCAv KiBVMUZBRCAjIEdSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIE9YSUEg QU5EIFBST1NHRUdSQU1NRU5JICovCi0tICBJQlVTX0tFWV9kZWFkX2lvdGEsIDB4MUY2RSwgMCwg MCwgMCwKLS0gICAgMCwgMHgxRkFFLCAvKiBVMUZBRSAjIEdSRUVLIENBUElUQUwgTEVUVEVSIE9N RUdBIFdJVEggUFNJTEkgQU5EIFBFUklTUE9NRU5JIEFORCBQUk9TR0VHUkFNTUVOSSAqLwotLSAg SUJVU19LRVlfZGVhZF9pb3RhLCAweDFGNkYsIDAsIDAsIDAsCi0tICAgIDAsIDB4MUZBRiwgLyog VTFGQUYgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFORCBQRVJJU1BP TUVOSSBBTkQgUFJPU0dFR1JBTU1FTkkgKi8KLS0gIElCVVNfS0VZX2RlYWRfaW90YSwgMHgxRjcw LCAwLCAwLCAwLAotLSAgICAwLCAweDFGQjIsIC8qIFUxRkIyICMgR1JFRUsgU01BTEwgTEVUVEVS IEFMUEhBIFdJVEggVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkkgKi8KLS0gIElCVVNfS0VZX2RlYWRf aW90YSwgMHgxRjc0LCAwLCAwLCAwLAotLSAgICAwLCAweDFGQzIsIC8qIFUxRkMyICMgR1JFRUsg U01BTEwgTEVUVEVSIEVUQSBXSVRIIFZBUklBIEFORCBZUE9HRUdSQU1NRU5JICovCi0tICBJQlVT X0tFWV9kZWFkX2lvdGEsIDB4MUY3QywgMCwgMCwgMCwKLS0gICAgMCwgMHgxRkYyLCAvKiBVMUZG MiAjIEdSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIFZBUklBIEFORCBZUE9HRUdSQU1NRU5J ICovCi0tICBJQlVTX0tFWV9kZWFkX2lvdGEsIDB4MUZCNiwgMCwgMCwgMCwKLS0gICAgMCwgMHgx RkI3LCAvKiBVMUZCNyAjIEdSRUVLIFNNQUxMIExFVFRFUiBBTFBIQSBXSVRIIFBFUklTUE9NRU5J IEFORCBZUE9HRUdSQU1NRU5JICovCi0tICBJQlVTX0tFWV9kZWFkX2lvdGEsIDB4MUZDNiwgMCwg MCwgMCwKLS0gICAgMCwgMHgxRkM3LCAvKiBVMUZDNyAjIEdSRUVLIFNNQUxMIExFVFRFUiBFVEEg V0lUSCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSSAqLwotLSAgSUJVU19LRVlfZGVhZF9p b3RhLCAweDFGRjYsIDAsIDAsIDAsCi0tICAgIDAsIDB4MUZGNywgLyogVTFGRjcgIyBHUkVFSyBT TUFMTCBMRVRURVIgT01FR0EgV0lUSCBQRVJJU1BPTUVOSSBBTkQgWVBPR0VHUkFNTUVOSSAqLwot LSAgSUJVU19LRVlfZGVhZF9pb3RhLCBJQlVTX0tFWV9kZWFkX2dyYXZlLCAweDFGMDAsIDAsIDAs Ci0tICAgIDAsIDB4MUY4MiwgLyogVTFGODIgIyBHUkVFSyBTTUFMTCBMRVRURVIgQUxQSEEgV0lU SCBQU0lMSSBBTkQgVkFSSUEgQU5EIFlQT0dFR1JBTU1FTkkgKi8KLS0gIElCVVNfS0VZX2RlYWRf aW90YSwgSUJVU19LRVlfZGVhZF9ncmF2ZSwgMHgxRjAxLCAwLCAwLAotLSAgICAwLCAweDFGODMs IC8qIFUxRjgzICMgR1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIFZBUklB IEFORCBZUE9HRUdSQU1NRU5JICovCi0tICBJQlVTX0tFWV9kZWFkX2lvdGEsIElCVVNfS0VZX2Rl YWRfZ3JhdmUsIDB4MUYwOCwgMCwgMCwKLS0gICAgMCwgMHgxRjhBLCAvKiBVMUY4QSAjIEdSRUVL IENBUElUQUwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIFZBUklBIEFORCBQUk9TR0VHUkFN TUVOSSAqLwotLSAgSUJVU19LRVlfZGVhZF9pb3RhLCBJQlVTX0tFWV9kZWFkX2dyYXZlLCAweDFG MDksIDAsIDAsCi0tICAgIDAsIDB4MUY4QiwgLyogVTFGOEIgIyBHUkVFSyBDQVBJVEFMIExFVFRF UiBBTFBIQSBXSVRIIERBU0lBIEFORCBWQVJJQSBBTkQgUFJPU0dFR1JBTU1FTkkgKi8KLS0gIElC VVNfS0VZX2RlYWRfaW90YSwgSUJVU19LRVlfZGVhZF9ncmF2ZSwgMHgxRjIwLCAwLCAwLAotLSAg ICAwLCAweDFGOTIsIC8qIFUxRjkyICMgR1JFRUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJ IEFORCBWQVJJQSBBTkQgWVBPR0VHUkFNTUVOSSAqLwotLSAgSUJVU19LRVlfZGVhZF9pb3RhLCBJ QlVTX0tFWV9kZWFkX2dyYXZlLCAweDFGMjEsIDAsIDAsCi0tICAgIDAsIDB4MUY5MywgLyogVTFG OTMgIyBHUkVFSyBTTUFMTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIFZBUklBIEFORCBZUE9H RUdSQU1NRU5JICovCi0tICBJQlVTX0tFWV9kZWFkX2lvdGEsIElCVVNfS0VZX2RlYWRfZ3JhdmUs IDB4MUYyOCwgMCwgMCwKLS0gICAgMCwgMHgxRjlBLCAvKiBVMUY5QSAjIEdSRUVLIENBUElUQUwg TEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBWQVJJQSBBTkQgUFJPU0dFR1JBTU1FTkkgKi8KLS0g IElCVVNfS0VZX2RlYWRfaW90YSwgSUJVU19LRVlfZGVhZF9ncmF2ZSwgMHgxRjI5LCAwLCAwLAot LSAgICAwLCAweDFGOUIsIC8qIFUxRjlCICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEgg REFTSUEgQU5EIFZBUklBIEFORCBQUk9TR0VHUkFNTUVOSSAqLwotLSAgSUJVU19LRVlfZGVhZF9p b3RhLCBJQlVTX0tFWV9kZWFkX2dyYXZlLCAweDFGNjAsIDAsIDAsCi0tICAgIDAsIDB4MUZBMiwg LyogVTFGQTIgIyBHUkVFSyBTTUFMTCBMRVRURVIgT01FR0EgV0lUSCBQU0lMSSBBTkQgVkFSSUEg QU5EIFlQT0dFR1JBTU1FTkkgKi8KLS0gIElCVVNfS0VZX2RlYWRfaW90YSwgSUJVU19LRVlfZGVh ZF9ncmF2ZSwgMHgxRjYxLCAwLCAwLAotLSAgICAwLCAweDFGQTMsIC8qIFUxRkEzICMgR1JFRUsg U01BTEwgTEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIFZBUklBIEFORCBZUE9HRUdSQU1NRU5J ICovCi0tICBJQlVTX0tFWV9kZWFkX2lvdGEsIElCVVNfS0VZX2RlYWRfZ3JhdmUsIDB4MUY2OCwg MCwgMCwKLS0gICAgMCwgMHgxRkFBLCAvKiBVMUZBQSAjIEdSRUVLIENBUElUQUwgTEVUVEVSIE9N RUdBIFdJVEggUFNJTEkgQU5EIFZBUklBIEFORCBQUk9TR0VHUkFNTUVOSSAqLwotLSAgSUJVU19L RVlfZGVhZF9pb3RhLCBJQlVTX0tFWV9kZWFkX2dyYXZlLCAweDFGNjksIDAsIDAsCi0tICAgIDAs IDB4MUZBQiwgLyogVTFGQUIgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lB IEFORCBWQVJJQSBBTkQgUFJPU0dFR1JBTU1FTkkgKi8KLS0gIElCVVNfS0VZX2RlYWRfaW90YSwg SUJVU19LRVlfZGVhZF9hY3V0ZSwgMHgxRjAwLCAwLCAwLAotLSAgICAwLCAweDFGODQsIC8qIFUx Rjg0ICMgR1JFRUsgU01BTEwgTEVUVEVSIEFMUEhBIFdJVEggUFNJTEkgQU5EIE9YSUEgQU5EIFlQ T0dFR1JBTU1FTkkgKi8KLS0gIElCVVNfS0VZX2RlYWRfaW90YSwgSUJVU19LRVlfZGVhZF9hY3V0 ZSwgMHgxRjAxLCAwLCAwLAotLSAgICAwLCAweDFGODUsIC8qIFUxRjg1ICMgR1JFRUsgU01BTEwg TEVUVEVSIEFMUEhBIFdJVEggREFTSUEgQU5EIE9YSUEgQU5EIFlQT0dFR1JBTU1FTkkgKi8KLS0g IElCVVNfS0VZX2RlYWRfaW90YSwgSUJVU19LRVlfZGVhZF9hY3V0ZSwgMHgxRjA4LCAwLCAwLAot LSAgICAwLCAweDFGOEMsIC8qIFUxRjhDICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lU SCBQU0lMSSBBTkQgT1hJQSBBTkQgUFJPU0dFR1JBTU1FTkkgKi8KLS0gIElCVVNfS0VZX2RlYWRf aW90YSwgSUJVU19LRVlfZGVhZF9hY3V0ZSwgMHgxRjA5LCAwLCAwLAotLSAgICAwLCAweDFGOEQs IC8qIFUxRjhEICMgR1JFRUsgQ0FQSVRBTCBMRVRURVIgQUxQSEEgV0lUSCBEQVNJQSBBTkQgT1hJ QSBBTkQgUFJPU0dFR1JBTU1FTkkgKi8KLS0gIElCVVNfS0VZX2RlYWRfaW90YSwgSUJVU19LRVlf ZGVhZF9hY3V0ZSwgMHgxRjIwLCAwLCAwLAotLSAgICAwLCAweDFGOTQsIC8qIFUxRjk0ICMgR1JF RUsgU01BTEwgTEVUVEVSIEVUQSBXSVRIIFBTSUxJIEFORCBPWElBIEFORCBZUE9HRUdSQU1NRU5J ICovCi0tICBJQlVTX0tFWV9kZWFkX2lvdGEsIElCVVNfS0VZX2RlYWRfYWN1dGUsIDB4MUYyMSwg MCwgMCwKLS0gICAgMCwgMHgxRjk1LCAvKiBVMUY5NSAjIEdSRUVLIFNNQUxMIExFVFRFUiBFVEEg V0lUSCBEQVNJQSBBTkQgT1hJQSBBTkQgWVBPR0VHUkFNTUVOSSAqLwotLSAgSUJVU19LRVlfZGVh ZF9pb3RhLCBJQlVTX0tFWV9kZWFkX2FjdXRlLCAweDFGMjgsIDAsIDAsCi0tICAgIDAsIDB4MUY5 QywgLyogVTFGOUMgIyBHUkVFSyBDQVBJVEFMIExFVFRFUiBFVEEgV0lUSCBQU0lMSSBBTkQgT1hJ QSBBTkQgUFJPU0dFR1JBTU1FTkkgKi8KLS0gIElCVVNfS0VZX2RlYWRfaW90YSwgSUJVU19LRVlf ZGVhZF9hY3V0ZSwgMHgxRjI5LCAwLCAwLAotLSAgICAwLCAweDFGOUQsIC8qIFUxRjlEICMgR1JF RUsgQ0FQSVRBTCBMRVRURVIgRVRBIFdJVEggREFTSUEgQU5EIE9YSUEgQU5EIFBST1NHRUdSQU1N RU5JICovCi0tICBJQlVTX0tFWV9kZWFkX2lvdGEsIElCVVNfS0VZX2RlYWRfYWN1dGUsIDB4MUY2 MCwgMCwgMCwKLS0gICAgMCwgMHgxRkE0LCAvKiBVMUZBNCAjIEdSRUVLIFNNQUxMIExFVFRFUiBP TUVHQSBXSVRIIFBTSUxJIEFORCBPWElBIEFORCBZUE9HRUdSQU1NRU5JICovCi0tICBJQlVTX0tF WV9kZWFkX2lvdGEsIElCVVNfS0VZX2RlYWRfYWN1dGUsIDB4MUY2MSwgMCwgMCwKLS0gICAgMCwg MHgxRkE1LCAvKiBVMUZBNSAjIEdSRUVLIFNNQUxMIExFVFRFUiBPTUVHQSBXSVRIIERBU0lBIEFO RCBPWElBIEFORCBZUE9HRUdSQU1NRU5JICovCi0tICBJQlVTX0tFWV9kZWFkX2lvdGEsIElCVVNf S0VZX2RlYWRfYWN1dGUsIDB4MUY2OCwgMCwgMCwKLS0gICAgMCwgMHgxRkFDLCAvKiBVMUZBQyAj IEdSRUVLIENBUElUQUwgTEVUVEVSIE9NRUdBIFdJVEggUFNJTEkgQU5EIE9YSUEgQU5EIFBST1NH RUdSQU1NRU5JICovCi0tICBJQlVTX0tFWV9kZWFkX2lvdGEsIElCVVNfS0VZX2RlYWRfYWN1dGUs IDB4MUY2OSwgMCwgMCwKLS0gICAgMCwgMHgxRkFELCAvKiBVMUZBRCAjIEdSRUVLIENBUElUQUwg TEVUVEVSIE9NRUdBIFdJVEggREFTSUEgQU5EIE9YSUEgQU5EIFBST1NHRUdSQU1NRU5JICovCi0t ICBJQlVTX0tFWV9kZWFkX3ZvaWNlZF9zb3VuZCwgMHgzMDQ2LCAwLCAwLCAwLAotLSAgICAwLCAw eDMwOTQsIC8qIFUzMDk0ICMgSElSQUdBTkEgTEVUVEVSIFZVICovCi0tICBJQlVTX0tFWV9kZWFk X3ZvaWNlZF9zb3VuZCwgMHgzMDRCLCAwLCAwLCAwLAotLSAgICAwLCAweDMwNEMsIC8qIFUzMDRD ICMgSElSQUdBTkEgTEVUVEVSIEdBICovCi0tICBJQlVTX0tFWV9kZWFkX3ZvaWNlZF9zb3VuZCwg MHgzMDRELCAwLCAwLCAwLAotLSAgICAwLCAweDMwNEUsIC8qIFUzMDRFICMgSElSQUdBTkEgTEVU VEVSIEdJICovCi0tICBJQlVTX0tFWV9kZWFkX3ZvaWNlZF9zb3VuZCwgMHgzMDRGLCAwLCAwLCAw LAotLSAgICAwLCAweDMwNTAsIC8qIFUzMDUwICMgSElSQUdBTkEgTEVUVEVSIEdVICovCi0tICBJ QlVTX0tFWV9kZWFkX3ZvaWNlZF9zb3VuZCwgMHgzMDUxLCAwLCAwLCAwLAotLSAgICAwLCAweDMw NTIsIC8qIFUzMDUyICMgSElSQUdBTkEgTEVUVEVSIEdFICovCi0tICBJQlVTX0tFWV9kZWFkX3Zv aWNlZF9zb3VuZCwgMHgzMDUzLCAwLCAwLCAwLAotLSAgICAwLCAweDMwNTQsIC8qIFUzMDU0ICMg SElSQUdBTkEgTEVUVEVSIEdPICovCi0tICBJQlVTX0tFWV9kZWFkX3ZvaWNlZF9zb3VuZCwgMHgz MDU1LCAwLCAwLCAwLAotLSAgICAwLCAweDMwNTYsIC8qIFUzMDU2ICMgSElSQUdBTkEgTEVUVEVS IFpBICovCi0tICBJQlVTX0tFWV9kZWFkX3ZvaWNlZF9zb3VuZCwgMHgzMDU3LCAwLCAwLCAwLAot LSAgICAwLCAweDMwNTgsIC8qIFUzMDU4ICMgSElSQUdBTkEgTEVUVEVSIFpJICovCi0tICBJQlVT X0tFWV9kZWFkX3ZvaWNlZF9zb3VuZCwgMHgzMDU5LCAwLCAwLCAwLAotLSAgICAwLCAweDMwNUEs IC8qIFUzMDVBICMgSElSQUdBTkEgTEVUVEVSIFpVICovCi0tICBJQlVTX0tFWV9kZWFkX3ZvaWNl ZF9zb3VuZCwgMHgzMDVCLCAwLCAwLCAwLAotLSAgICAwLCAweDMwNUMsIC8qIFUzMDVDICMgSElS QUdBTkEgTEVUVEVSIFpFICovCi0tICBJQlVTX0tFWV9kZWFkX3ZvaWNlZF9zb3VuZCwgMHgzMDVE LCAwLCAwLCAwLAotLSAgICAwLCAweDMwNUUsIC8qIFUzMDVFICMgSElSQUdBTkEgTEVUVEVSIFpP ICovCi0tICBJQlVTX0tFWV9kZWFkX3ZvaWNlZF9zb3VuZCwgMHgzMDVGLCAwLCAwLCAwLAotLSAg ICAwLCAweDMwNjAsIC8qIFUzMDYwICMgSElSQUdBTkEgTEVUVEVSIERBICovCi0tICBJQlVTX0tF WV9kZWFkX3ZvaWNlZF9zb3VuZCwgMHgzMDYxLCAwLCAwLCAwLAotLSAgICAwLCAweDMwNjIsIC8q IFUzMDYyICMgSElSQUdBTkEgTEVUVEVSIERJICovCi0tICBJQlVTX0tFWV9kZWFkX3ZvaWNlZF9z b3VuZCwgMHgzMDY0LCAwLCAwLCAwLAotLSAgICAwLCAweDMwNjUsIC8qIFUzMDY1ICMgSElSQUdB TkEgTEVUVEVSIERVICovCi0tICBJQlVTX0tFWV9kZWFkX3ZvaWNlZF9zb3VuZCwgMHgzMDY2LCAw LCAwLCAwLAotLSAgICAwLCAweDMwNjcsIC8qIFUzMDY3ICMgSElSQUdBTkEgTEVUVEVSIERFICov Ci0tICBJQlVTX0tFWV9kZWFkX3ZvaWNlZF9zb3VuZCwgMHgzMDY4LCAwLCAwLCAwLAotLSAgICAw LCAweDMwNjksIC8qIFUzMDY5ICMgSElSQUdBTkEgTEVUVEVSIERPICovCi0tICBJQlVTX0tFWV9k ZWFkX3ZvaWNlZF9zb3VuZCwgMHgzMDZGLCAwLCAwLCAwLAotLSAgICAwLCAweDMwNzAsIC8qIFUz MDcwICMgSElSQUdBTkEgTEVUVEVSIEJBICovCi0tICBJQlVTX0tFWV9kZWFkX3ZvaWNlZF9zb3Vu ZCwgMHgzMDcyLCAwLCAwLCAwLAotLSAgICAwLCAweDMwNzMsIC8qIFUzMDczICMgSElSQUdBTkEg TEVUVEVSIEJJICovCi0tICBJQlVTX0tFWV9kZWFkX3ZvaWNlZF9zb3VuZCwgMHgzMDc1LCAwLCAw LCAwLAotLSAgICAwLCAweDMwNzYsIC8qIFUzMDc2ICMgSElSQUdBTkEgTEVUVEVSIEJVICovCi0t ICBJQlVTX0tFWV9kZWFkX3ZvaWNlZF9zb3VuZCwgMHgzMDc4LCAwLCAwLCAwLAotLSAgICAwLCAw eDMwNzksIC8qIFUzMDc5ICMgSElSQUdBTkEgTEVUVEVSIEJFICovCi0tICBJQlVTX0tFWV9kZWFk X3ZvaWNlZF9zb3VuZCwgMHgzMDdCLCAwLCAwLCAwLAotLSAgICAwLCAweDMwN0MsIC8qIFUzMDdD ICMgSElSQUdBTkEgTEVUVEVSIEJPICovCi0tICBJQlVTX0tFWV9kZWFkX3ZvaWNlZF9zb3VuZCwg MHgzMDlELCAwLCAwLCAwLAotLSAgICAwLCAweDMwOUUsIC8qIFUzMDlFICMgSElSQUdBTkEgVk9J Q0VEIElURVJBVElPTiBNQVJLICovCi0tICBJQlVTX0tFWV9kZWFkX3ZvaWNlZF9zb3VuZCwgMHgz MEYwLCAwLCAwLCAwLAotLSAgICAwLCAweDMwRjgsIC8qIFUzMEY4ICMgS0FUQUtBTkEgTEVUVEVS IFZJICovCi0tICBJQlVTX0tFWV9kZWFkX3ZvaWNlZF9zb3VuZCwgMHgzMEYxLCAwLCAwLCAwLAot LSAgICAwLCAweDMwRjksIC8qIFUzMEY5ICMgS0FUQUtBTkEgTEVUVEVSIFZFICovCi0tICBJQlVT X0tFWV9kZWFkX3ZvaWNlZF9zb3VuZCwgMHgzMEZELCAwLCAwLCAwLAotLSAgICAwLCAweDMwRkUs IC8qIFUzMEZFICMgS0FUQUtBTkEgVk9JQ0VEIElURVJBVElPTiBNQVJLICovCi0tICBJQlVTX0tF WV9kZWFkX3NlbWl2b2ljZWRfc291bmQsIDB4MzA2RiwgMCwgMCwgMCwKLS0gICAgMCwgMHgzMDcx LCAvKiBVMzA3MSAjIEhJUkFHQU5BIExFVFRFUiBQQSAqLwotLSAgSUJVU19LRVlfZGVhZF9zZW1p dm9pY2VkX3NvdW5kLCAweDMwNzIsIDAsIDAsIDAsCi0tICAgIDAsIDB4MzA3NCwgLyogVTMwNzQg IyBISVJBR0FOQSBMRVRURVIgUEkgKi8KLS0gIElCVVNfS0VZX2RlYWRfc2VtaXZvaWNlZF9zb3Vu ZCwgMHgzMDc1LCAwLCAwLCAwLAotLSAgICAwLCAweDMwNzcsIC8qIFUzMDc3ICMgSElSQUdBTkEg TEVUVEVSIFBVICovCi0tICBJQlVTX0tFWV9kZWFkX3NlbWl2b2ljZWRfc291bmQsIDB4MzA3OCwg MCwgMCwgMCwKLS0gICAgMCwgMHgzMDdBLCAvKiBVMzA3QSAjIEhJUkFHQU5BIExFVFRFUiBQRSAq LwotLSAgSUJVU19LRVlfZGVhZF9zZW1pdm9pY2VkX3NvdW5kLCAweDMwN0IsIDAsIDAsIDAsCi0t ICAgIDAsIDB4MzA3RCwgLyogVTMwN0QgIyBISVJBR0FOQSBMRVRURVIgUE8gKi8KLS0gIElCVVNf S0VZX2RlYWRfZG91YmxlZ3JhdmUsIElCVVNfS0VZX0EsIDAsIDAsIDAsCi0tICAgIDAsIDB4MDIw MCwgLyogVTAyMDAgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggRE9VQkxFIEdSQVZFICov Ci0tICBJQlVTX0tFWV9kZWFkX2RvdWJsZWdyYXZlLCBJQlVTX0tFWV9FLCAwLCAwLCAwLAotLSAg ICAwLCAweDAyMDQsIC8qIFUwMjA0ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIERPVUJM RSBHUkFWRSAqLwotLSAgSUJVU19LRVlfZGVhZF9kb3VibGVncmF2ZSwgSUJVU19LRVlfSSwgMCwg MCwgMCwKLS0gICAgMCwgMHgwMjA4LCAvKiBVMDIwOCAjIExBVElOIENBUElUQUwgTEVUVEVSIEkg V0lUSCBET1VCTEUgR1JBVkUgKi8KLS0gIElCVVNfS0VZX2RlYWRfZG91YmxlZ3JhdmUsIElCVVNf S0VZX08sIDAsIDAsIDAsCi0tICAgIDAsIDB4MDIwQywgLyogVTAyMEMgIyBMQVRJTiBDQVBJVEFM IExFVFRFUiBPIFdJVEggRE9VQkxFIEdSQVZFICovCi0tICBJQlVTX0tFWV9kZWFkX2RvdWJsZWdy YXZlLCBJQlVTX0tFWV9SLCAwLCAwLCAwLAotLSAgICAwLCAweDAyMTAsIC8qIFUwMjEwICMgTEFU SU4gQ0FQSVRBTCBMRVRURVIgUiBXSVRIIERPVUJMRSBHUkFWRSAqLwotLSAgSUJVU19LRVlfZGVh ZF9kb3VibGVncmF2ZSwgSUJVU19LRVlfVSwgMCwgMCwgMCwKLS0gICAgMCwgMHgwMjE0LCAvKiBV MDIxNCAjIExBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBET1VCTEUgR1JBVkUgKi8KLS0gIElC VVNfS0VZX2RlYWRfZG91YmxlZ3JhdmUsIElCVVNfS0VZX2EsIDAsIDAsIDAsCi0tICAgIDAsIDB4 MDIwMSwgLyogVTAyMDEgIyBMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIERPVUJMRSBHUkFWRSAq LwotLSAgSUJVU19LRVlfZGVhZF9kb3VibGVncmF2ZSwgSUJVU19LRVlfZSwgMCwgMCwgMCwKLS0g ICAgMCwgMHgwMjA1LCAvKiBVMDIwNSAjIExBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggRE9VQkxF IEdSQVZFICovCi0tICBJQlVTX0tFWV9kZWFkX2RvdWJsZWdyYXZlLCBJQlVTX0tFWV9pLCAwLCAw LCAwLAotLSAgICAwLCAweDAyMDksIC8qIFUwMjA5ICMgTEFUSU4gU01BTEwgTEVUVEVSIEkgV0lU SCBET1VCTEUgR1JBVkUgKi8KLS0gIElCVVNfS0VZX2RlYWRfZG91YmxlZ3JhdmUsIElCVVNfS0VZ X28sIDAsIDAsIDAsCi0tICAgIDAsIDB4MDIwRCwgLyogVTAyMEQgIyBMQVRJTiBTTUFMTCBMRVRU RVIgTyBXSVRIIERPVUJMRSBHUkFWRSAqLwotLSAgSUJVU19LRVlfZGVhZF9kb3VibGVncmF2ZSwg SUJVU19LRVlfciwgMCwgMCwgMCwKLS0gICAgMCwgMHgwMjExLCAvKiBVMDIxMSAjIExBVElOIFNN QUxMIExFVFRFUiBSIFdJVEggRE9VQkxFIEdSQVZFICovCi0tICBJQlVTX0tFWV9kZWFkX2RvdWJs ZWdyYXZlLCBJQlVTX0tFWV91LCAwLCAwLCAwLAotLSAgICAwLCAweDAyMTUsIC8qIFUwMjE1ICMg TEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBET1VCTEUgR1JBVkUgKi8KLS0gIElCVVNfS0VZX2Rl YWRfZG91YmxlZ3JhdmUsIDB4MDQ3NCwgMCwgMCwgMCwKLS0gICAgMCwgMHgwNDc2LCAvKiBVMDQ3 NiAjIENZUklMTElDIENBUElUQUwgTEVUVEVSIElaSElUU0EgV0lUSCBET1VCTEUgR1JBVkUgQUND RU5UICovCi0tICBJQlVTX0tFWV9kZWFkX2RvdWJsZWdyYXZlLCAweDA0NzUsIDAsIDAsIDAsCi0t ICAgIDAsIDB4MDQ3NywgLyogVTA0NzcgIyBDWVJJTExJQyBTTUFMTCBMRVRURVIgSVpISVRTQSBX SVRIIERPVUJMRSBHUkFWRSBBQ0NFTlQgKi8KLS0gIElCVVNfS0VZX2RlYWRfYmVsb3dyaW5nLCBJ QlVTX0tFWV9BLCAwLCAwLCAwLAotLSAgICAwLCAweDFFMDAsIC8qIFUxRTAwICMgTEFUSU4gQ0FQ SVRBTCBMRVRURVIgQSBXSVRIIFJJTkcgQkVMT1cgKi8KLS0gIElCVVNfS0VZX2RlYWRfYmVsb3dy aW5nLCBJQlVTX0tFWV9hLCAwLCAwLCAwLAotLSAgICAwLCAweDFFMDEsIC8qIFUxRTAxICMgTEFU SU4gU01BTEwgTEVUVEVSIEEgV0lUSCBSSU5HIEJFTE9XICovCi0tICBJQlVTX0tFWV9kZWFkX2Jl bG93bWFjcm9uLCBJQlVTX0tFWV9CLCAwLCAwLCAwLAotLSAgICAwLCAweDFFMDYsIC8qIFUxRTA2 ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQiBXSVRIIExJTkUgQkVMT1cgKi8KLS0gIElCVVNfS0VZ X2RlYWRfYmVsb3dtYWNyb24sIElCVVNfS0VZX0QsIDAsIDAsIDAsCi0tICAgIDAsIDB4MUUwRSwg LyogVTFFMEUgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBEIFdJVEggTElORSBCRUxPVyAqLwotLSAg SUJVU19LRVlfZGVhZF9iZWxvd21hY3JvbiwgSUJVU19LRVlfSywgMCwgMCwgMCwKLS0gICAgMCwg MHgxRTM0LCAvKiBVMUUzNCAjIExBVElOIENBUElUQUwgTEVUVEVSIEsgV0lUSCBMSU5FIEJFTE9X ICovCi0tICBJQlVTX0tFWV9kZWFkX2JlbG93bWFjcm9uLCBJQlVTX0tFWV9MLCAwLCAwLCAwLAot LSAgICAwLCAweDFFM0EsIC8qIFUxRTNBICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBXSVRIIExJ TkUgQkVMT1cgKi8KLS0gIElCVVNfS0VZX2RlYWRfYmVsb3dtYWNyb24sIElCVVNfS0VZX04sIDAs IDAsIDAsCi0tICAgIDAsIDB4MUU0OCwgLyogVTFFNDggIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBO IFdJVEggTElORSBCRUxPVyAqLwotLSAgSUJVU19LRVlfZGVhZF9iZWxvd21hY3JvbiwgSUJVU19L RVlfUiwgMCwgMCwgMCwKLS0gICAgMCwgMHgxRTVFLCAvKiBVMUU1RSAjIExBVElOIENBUElUQUwg TEVUVEVSIFIgV0lUSCBMSU5FIEJFTE9XICovCi0tICBJQlVTX0tFWV9kZWFkX2JlbG93bWFjcm9u LCBJQlVTX0tFWV9ULCAwLCAwLCAwLAotLSAgICAwLCAweDFFNkUsIC8qIFUxRTZFICMgTEFUSU4g Q0FQSVRBTCBMRVRURVIgVCBXSVRIIExJTkUgQkVMT1cgKi8KLS0gIElCVVNfS0VZX2RlYWRfYmVs b3dtYWNyb24sIElCVVNfS0VZX1osIDAsIDAsIDAsCi0tICAgIDAsIDB4MUU5NCwgLyogVTFFOTQg IyBMQVRJTiBDQVBJVEFMIExFVFRFUiBaIFdJVEggTElORSBCRUxPVyAqLwotLSAgSUJVU19LRVlf ZGVhZF9iZWxvd21hY3JvbiwgSUJVU19LRVlfYiwgMCwgMCwgMCwKLS0gICAgMCwgMHgxRTA3LCAv KiBVMUUwNyAjIExBVElOIFNNQUxMIExFVFRFUiBCIFdJVEggTElORSBCRUxPVyAqLwotLSAgSUJV U19LRVlfZGVhZF9iZWxvd21hY3JvbiwgSUJVU19LRVlfZCwgMCwgMCwgMCwKLS0gICAgMCwgMHgx RTBGLCAvKiBVMUUwRiAjIExBVElOIFNNQUxMIExFVFRFUiBEIFdJVEggTElORSBCRUxPVyAqLwot LSAgSUJVU19LRVlfZGVhZF9iZWxvd21hY3JvbiwgSUJVU19LRVlfaCwgMCwgMCwgMCwKLS0gICAg MCwgMHgxRTk2LCAvKiBVMUU5NiAjIExBVElOIFNNQUxMIExFVFRFUiBIIFdJVEggTElORSBCRUxP VyAqLwotLSAgSUJVU19LRVlfZGVhZF9iZWxvd21hY3JvbiwgSUJVU19LRVlfaywgMCwgMCwgMCwK LS0gICAgMCwgMHgxRTM1LCAvKiBVMUUzNSAjIExBVElOIFNNQUxMIExFVFRFUiBLIFdJVEggTElO RSBCRUxPVyAqLwotLSAgSUJVU19LRVlfZGVhZF9iZWxvd21hY3JvbiwgSUJVU19LRVlfbCwgMCwg MCwgMCwKLS0gICAgMCwgMHgxRTNCLCAvKiBVMUUzQiAjIExBVElOIFNNQUxMIExFVFRFUiBMIFdJ VEggTElORSBCRUxPVyAqLwotLSAgSUJVU19LRVlfZGVhZF9iZWxvd21hY3JvbiwgSUJVU19LRVlf biwgMCwgMCwgMCwKLS0gICAgMCwgMHgxRTQ5LCAvKiBVMUU0OSAjIExBVElOIFNNQUxMIExFVFRF UiBOIFdJVEggTElORSBCRUxPVyAqLwotLSAgSUJVU19LRVlfZGVhZF9iZWxvd21hY3JvbiwgSUJV U19LRVlfciwgMCwgMCwgMCwKLS0gICAgMCwgMHgxRTVGLCAvKiBVMUU1RiAjIExBVElOIFNNQUxM IExFVFRFUiBSIFdJVEggTElORSBCRUxPVyAqLwotLSAgSUJVU19LRVlfZGVhZF9iZWxvd21hY3Jv biwgSUJVU19LRVlfdCwgMCwgMCwgMCwKLS0gICAgMCwgMHgxRTZGLCAvKiBVMUU2RiAjIExBVElO IFNNQUxMIExFVFRFUiBUIFdJVEggTElORSBCRUxPVyAqLwotLSAgSUJVU19LRVlfZGVhZF9iZWxv d21hY3JvbiwgSUJVU19LRVlfeiwgMCwgMCwgMCwKLS0gICAgMCwgMHgxRTk1LCAvKiBVMUU5NSAj IExBVElOIFNNQUxMIExFVFRFUiBaIFdJVEggTElORSBCRUxPVyAqLwotLSAgSUJVU19LRVlfZGVh ZF9iZWxvd2NpcmN1bWZsZXgsIElCVVNfS0VZX0QsIDAsIDAsIDAsCi0tICAgIDAsIDB4MUUxMiwg LyogVTFFMTIgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBEIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVyAq LwotLSAgSUJVU19LRVlfZGVhZF9iZWxvd2NpcmN1bWZsZXgsIElCVVNfS0VZX0UsIDAsIDAsIDAs Ci0tICAgIDAsIDB4MUUxOCwgLyogVTFFMTggIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEgg Q0lSQ1VNRkxFWCBCRUxPVyAqLwotLSAgSUJVU19LRVlfZGVhZF9iZWxvd2NpcmN1bWZsZXgsIElC VVNfS0VZX0wsIDAsIDAsIDAsCi0tICAgIDAsIDB4MUUzQywgLyogVTFFM0MgIyBMQVRJTiBDQVBJ VEFMIExFVFRFUiBMIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVyAqLwotLSAgSUJVU19LRVlfZGVhZF9i ZWxvd2NpcmN1bWZsZXgsIElCVVNfS0VZX04sIDAsIDAsIDAsCi0tICAgIDAsIDB4MUU0QSwgLyog VTFFNEEgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVyAqLwot LSAgSUJVU19LRVlfZGVhZF9iZWxvd2NpcmN1bWZsZXgsIElCVVNfS0VZX1QsIDAsIDAsIDAsCi0t ICAgIDAsIDB4MUU3MCwgLyogVTFFNzAgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFdJVEggQ0lS Q1VNRkxFWCBCRUxPVyAqLwotLSAgSUJVU19LRVlfZGVhZF9iZWxvd2NpcmN1bWZsZXgsIElCVVNf S0VZX1UsIDAsIDAsIDAsCi0tICAgIDAsIDB4MUU3NiwgLyogVTFFNzYgIyBMQVRJTiBDQVBJVEFM IExFVFRFUiBVIFdJVEggQ0lSQ1VNRkxFWCBCRUxPVyAqLwotLSAgSUJVU19LRVlfZGVhZF9iZWxv d2NpcmN1bWZsZXgsIElCVVNfS0VZX2QsIDAsIDAsIDAsCi0tICAgIDAsIDB4MUUxMywgLyogVTFF MTMgIyBMQVRJTiBTTUFMTCBMRVRURVIgRCBXSVRIIENJUkNVTUZMRVggQkVMT1cgKi8KLS0gIElC VVNfS0VZX2RlYWRfYmVsb3djaXJjdW1mbGV4LCBJQlVTX0tFWV9lLCAwLCAwLCAwLAotLSAgICAw LCAweDFFMTksIC8qIFUxRTE5ICMgTEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBDSVJDVU1GTEVY IEJFTE9XICovCi0tICBJQlVTX0tFWV9kZWFkX2JlbG93Y2lyY3VtZmxleCwgSUJVU19LRVlfbCwg MCwgMCwgMCwKLS0gICAgMCwgMHgxRTNELCAvKiBVMUUzRCAjIExBVElOIFNNQUxMIExFVFRFUiBM IFdJVEggQ0lSQ1VNRkxFWCBCRUxPVyAqLwotLSAgSUJVU19LRVlfZGVhZF9iZWxvd2NpcmN1bWZs ZXgsIElCVVNfS0VZX24sIDAsIDAsIDAsCi0tICAgIDAsIDB4MUU0QiwgLyogVTFFNEIgIyBMQVRJ TiBTTUFMTCBMRVRURVIgTiBXSVRIIENJUkNVTUZMRVggQkVMT1cgKi8KLS0gIElCVVNfS0VZX2Rl YWRfYmVsb3djaXJjdW1mbGV4LCBJQlVTX0tFWV90LCAwLCAwLCAwLAotLSAgICAwLCAweDFFNzEs IC8qIFUxRTcxICMgTEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBDSVJDVU1GTEVYIEJFTE9XICov Ci0tICBJQlVTX0tFWV9kZWFkX2JlbG93Y2lyY3VtZmxleCwgSUJVU19LRVlfdSwgMCwgMCwgMCwK LS0gICAgMCwgMHgxRTc3LCAvKiBVMUU3NyAjIExBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggQ0lS Q1VNRkxFWCBCRUxPVyAqLwotLSAgSUJVU19LRVlfZGVhZF9iZWxvd3RpbGRlLCBJQlVTX0tFWV9F LCAwLCAwLCAwLAotLSAgICAwLCAweDFFMUEsIC8qIFUxRTFBICMgTEFUSU4gQ0FQSVRBTCBMRVRU RVIgRSBXSVRIIFRJTERFIEJFTE9XICovCi0tICBJQlVTX0tFWV9kZWFkX2JlbG93dGlsZGUsIElC VVNfS0VZX0ksIDAsIDAsIDAsCi0tICAgIDAsIDB4MUUyQywgLyogVTFFMkMgIyBMQVRJTiBDQVBJ VEFMIExFVFRFUiBJIFdJVEggVElMREUgQkVMT1cgKi8KLS0gIElCVVNfS0VZX2RlYWRfYmVsb3d0 aWxkZSwgSUJVU19LRVlfVSwgMCwgMCwgMCwKLS0gICAgMCwgMHgxRTc0LCAvKiBVMUU3NCAjIExB VElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBUSUxERSBCRUxPVyAqLwotLSAgSUJVU19LRVlfZGVh ZF9iZWxvd3RpbGRlLCBJQlVTX0tFWV9lLCAwLCAwLCAwLAotLSAgICAwLCAweDFFMUIsIC8qIFUx RTFCICMgTEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBUSUxERSBCRUxPVyAqLwotLSAgSUJVU19L RVlfZGVhZF9iZWxvd3RpbGRlLCBJQlVTX0tFWV9pLCAwLCAwLCAwLAotLSAgICAwLCAweDFFMkQs IC8qIFUxRTJEICMgTEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBUSUxERSBCRUxPVyAqLwotLSAg SUJVU19LRVlfZGVhZF9iZWxvd3RpbGRlLCBJQlVTX0tFWV91LCAwLCAwLCAwLAotLSAgICAwLCAw eDFFNzUsIC8qIFUxRTc1ICMgTEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBUSUxERSBCRUxPVyAq LwotLSAgSUJVU19LRVlfZGVhZF9iZWxvd2JyZXZlLCBJQlVTX0tFWV9ILCAwLCAwLCAwLAotLSAg ICAwLCAweDFFMkEsIC8qIFUxRTJBICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSCBXSVRIIEJSRVZF IEJFTE9XICovCi0tICBJQlVTX0tFWV9kZWFkX2JlbG93YnJldmUsIElCVVNfS0VZX2gsIDAsIDAs IDAsCi0tICAgIDAsIDB4MUUyQiwgLyogVTFFMkIgIyBMQVRJTiBTTUFMTCBMRVRURVIgSCBXSVRI IEJSRVZFIEJFTE9XICovCi0tICBJQlVTX0tFWV9kZWFkX2JlbG93ZGlhZXJlc2lzLCBJQlVTX0tF WV9VLCAwLCAwLCAwLAotLSAgICAwLCAweDFFNzIsIC8qIFUxRTcyICMgTEFUSU4gQ0FQSVRBTCBM RVRURVIgVSBXSVRIIERJQUVSRVNJUyBCRUxPVyAqLwotLSAgSUJVU19LRVlfZGVhZF9iZWxvd2Rp YWVyZXNpcywgSUJVU19LRVlfdSwgMCwgMCwgMCwKLS0gICAgMCwgMHgxRTczLCAvKiBVMUU3MyAj IExBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTIEJFTE9XICovCi0tICBJQlVTX0tF WV9kZWFkX2ludmVydGVkYnJldmUsIElCVVNfS0VZX0EsIDAsIDAsIDAsCi0tICAgIDAsIDB4MDIw MiwgLyogVTAyMDIgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggSU5WRVJURUQgQlJFVkUg Ki8KLS0gIElCVVNfS0VZX2RlYWRfaW52ZXJ0ZWRicmV2ZSwgSUJVU19LRVlfRSwgMCwgMCwgMCwK LS0gICAgMCwgMHgwMjA2LCAvKiBVMDIwNiAjIExBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBJ TlZFUlRFRCBCUkVWRSAqLwotLSAgSUJVU19LRVlfZGVhZF9pbnZlcnRlZGJyZXZlLCBJQlVTX0tF WV9JLCAwLCAwLCAwLAotLSAgICAwLCAweDAyMEEsIC8qIFUwMjBBICMgTEFUSU4gQ0FQSVRBTCBM RVRURVIgSSBXSVRIIElOVkVSVEVEIEJSRVZFICovCi0tICBJQlVTX0tFWV9kZWFkX2ludmVydGVk YnJldmUsIElCVVNfS0VZX08sIDAsIDAsIDAsCi0tICAgIDAsIDB4MDIwRSwgLyogVTAyMEUgIyBM QVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggSU5WRVJURUQgQlJFVkUgKi8KLS0gIElCVVNfS0VZ X2RlYWRfaW52ZXJ0ZWRicmV2ZSwgSUJVU19LRVlfUiwgMCwgMCwgMCwKLS0gICAgMCwgMHgwMjEy LCAvKiBVMDIxMiAjIExBVElOIENBUElUQUwgTEVUVEVSIFIgV0lUSCBJTlZFUlRFRCBCUkVWRSAq LwotLSAgSUJVU19LRVlfZGVhZF9pbnZlcnRlZGJyZXZlLCBJQlVTX0tFWV9VLCAwLCAwLCAwLAot LSAgICAwLCAweDAyMTYsIC8qIFUwMjE2ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIElO VkVSVEVEIEJSRVZFICovCi0tICBJQlVTX0tFWV9kZWFkX2ludmVydGVkYnJldmUsIElCVVNfS0VZ X2EsIDAsIDAsIDAsCi0tICAgIDAsIDB4MDIwMywgLyogVTAyMDMgIyBMQVRJTiBTTUFMTCBMRVRU RVIgQSBXSVRIIElOVkVSVEVEIEJSRVZFICovCi0tICBJQlVTX0tFWV9kZWFkX2ludmVydGVkYnJl dmUsIElCVVNfS0VZX2UsIDAsIDAsIDAsCi0tICAgIDAsIDB4MDIwNywgLyogVTAyMDcgIyBMQVRJ TiBTTUFMTCBMRVRURVIgRSBXSVRIIElOVkVSVEVEIEJSRVZFICovCi0tICBJQlVTX0tFWV9kZWFk X2ludmVydGVkYnJldmUsIElCVVNfS0VZX2ksIDAsIDAsIDAsCi0tICAgIDAsIDB4MDIwQiwgLyog VTAyMEIgIyBMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIElOVkVSVEVEIEJSRVZFICovCi0tICBJ QlVTX0tFWV9kZWFkX2ludmVydGVkYnJldmUsIElCVVNfS0VZX28sIDAsIDAsIDAsCi0tICAgIDAs IDB4MDIwRiwgLyogVTAyMEYgIyBMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIElOVkVSVEVEIEJS RVZFICovCi0tICBJQlVTX0tFWV9kZWFkX2ludmVydGVkYnJldmUsIElCVVNfS0VZX3IsIDAsIDAs IDAsCi0tICAgIDAsIDB4MDIxMywgLyogVTAyMTMgIyBMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRI IElOVkVSVEVEIEJSRVZFICovCi0tICBJQlVTX0tFWV9kZWFkX2ludmVydGVkYnJldmUsIElCVVNf S0VZX3UsIDAsIDAsIDAsCi0tICAgIDAsIDB4MDIxNywgLyogVTAyMTcgIyBMQVRJTiBTTUFMTCBM RVRURVIgVSBXSVRIIElOVkVSVEVEIEJSRVZFICovCi0tICBJQlVTX0tFWV9kZWFkX2JlbG93Y29t bWEsIElCVVNfS0VZX1MsIDAsIDAsIDAsCi0tICAgIDAsIDB4MDIxOCwgLyogVTAyMTggIyBMQVRJ TiBDQVBJVEFMIExFVFRFUiBTIFdJVEggQ09NTUEgQkVMT1cgKi8KLS0gIElCVVNfS0VZX2RlYWRf YmVsb3djb21tYSwgSUJVU19LRVlfVCwgMCwgMCwgMCwKLS0gICAgMCwgMHgwMjFBLCAvKiBVMDIx QSAjIExBVElOIENBUElUQUwgTEVUVEVSIFQgV0lUSCBDT01NQSBCRUxPVyAqLwotLSAgSUJVU19L RVlfZGVhZF9iZWxvd2NvbW1hLCBJQlVTX0tFWV9zLCAwLCAwLCAwLAotLSAgICAwLCAweDAyMTks IC8qIFUwMjE5ICMgTEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBDT01NQSBCRUxPVyAqLwotLSAg SUJVU19LRVlfZGVhZF9iZWxvd2NvbW1hLCBJQlVTX0tFWV90LCAwLCAwLCAwLAotLSAgICAwLCAw eDAyMUIsIC8qIFUwMjFCICMgTEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBDT01NQSBCRUxPVyAq LwotLSAgSUJVU19LRVlfTXVsdGlfa2V5LCBJQlVTX0tFWV9xdW90ZWRibCwgSUJVU19LRVlfc2xh c2gsIDAsIDAsCi0tICAgIDAsIDB4MzAxRSwgLyogVTMwMWUgIyBET1VCTEUgUFJJTUUgUVVPVEFU SU9OIE1BUksgKi8KLS0gIElCVVNfS0VZX011bHRpX2tleSwgSUJVU19LRVlfcXVvdGVkYmwsIElC VVNfS0VZX2JhY2tzbGFzaCwgMCwgMCwKLS0gICAgMCwgMHgzMDFELCAvKiBVMzAxZCAjIFJFVkVS U0VEIERPVUJMRSBQUklNRSBRVU9UQVRJT04gTUFSSyAqLwotLSAgSUJVU19LRVlfTXVsdGlfa2V5 LCBJQlVTX0tFWV9hcG9zdHJvcGhlLCAweDAzRDIsIDAsIDAsCi0tICAgIDAsIDB4MDNEMywgLyog VTAzRDMgIyBHUkVFSyBVUFNJTE9OIFdJVEggQUNVVEUgQU5EIEhPT0sgU1lNQk9MICovCi0tICBJ QlVTX0tFWV9NdWx0aV9rZXksIElCVVNfS0VZX3BhcmVubGVmdCwgSUJVU19LRVlfNSwgSUJVU19L RVlfMCwgSUJVU19LRVlfcGFyZW5yaWdodCwKLS0gICAgMCwgMHgzMkJGLCAvKiBVMzJCRiAjIENJ UkNMRUQgTlVNQkVSIEZJRlRZICovCi0tICBJQlVTX0tFWV9NdWx0aV9rZXksIElCVVNfS0VZX3Bh cmVubGVmdCwgSUJVU19LRVlfS1BfNSwgSUJVU19LRVlfMCwgSUJVU19LRVlfcGFyZW5yaWdodCwK LS0gICAgMCwgMHgzMkJGLCAvKiBVMzJCRiAjIENJUkNMRUQgTlVNQkVSIEZJRlRZICovCi0tICBJ QlVTX0tFWV9NdWx0aV9rZXksIElCVVNfS0VZX2NvbW1hLCBJQlVTX0tFWV9FLCAwLCAwLAotLSAg ICAwLCAweDAyMjgsIC8qIFUwMjI4ICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIENFRElM TEEgKi8KLS0gIElCVVNfS0VZX011bHRpX2tleSwgSUJVU19LRVlfY29tbWEsIElCVVNfS0VZX2Us IDAsIDAsCi0tICAgIDAsIDB4MDIyOSwgLyogVTAyMjkgIyBMQVRJTiBTTUFMTCBMRVRURVIgRSBX SVRIIENFRElMTEEgKi8KLS0gIElCVVNfS0VZX011bHRpX2tleSwgSUJVU19LRVlfcGVyaW9kLCAw eDFFNjMsIDAsIDAsCi0tICAgIDAsIDB4MUU2OSwgLyogVTFFNjkgIyBMQVRJTiBTTUFMTCBMRVRU RVIgUyBXSVRIIERPVCBCRUxPVyBBTkQgRE9UIEFCT1ZFICovCi0tICBJQlVTX0tFWV9NdWx0aV9r ZXksIElCVVNfS0VZX3F1ZXN0aW9uLCBJQlVTX0tFWV9leGNsYW0sIDAsIDAsCi0tICAgIDAsIDB4 MjAzRCwgLyogVTIwM0QgIyBJTlRFUlJPQkFORyAqLwotLSAgSUJVU19LRVlfTXVsdGlfa2V5LCBJ QlVTX0tFWV9MLCBJQlVTX0tFWV9lcXVhbCwgMCwgMCwKLS0gICAgMCwgMHgyMEE0LCAvKiBVMjBh NCAjIExJUkEgU0lHTiAqLwotLSAgSUJVU19LRVlfTXVsdGlfa2V5LCBJQlVTX0tFWV9VLCBJQlVT X0tFWV9jb21tYSwgSUJVU19LRVlfRSwgMCwKLS0gICAgMCwgMHgxRTFDLCAvKiBVMUUxQyAjIExB VElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBDRURJTExBIEFORCBCUkVWRSAqLwotLSAgSUJVU19L RVlfTXVsdGlfa2V5LCBJQlVTX0tFWV9VLCBJQlVTX0tFWV9jb21tYSwgSUJVU19LRVlfZSwgMCwK LS0gICAgMCwgMHgxRTFELCAvKiBVMUUxRCAjIExBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQ0VE SUxMQSBBTkQgQlJFVkUgKi8KLS0gIElCVVNfS0VZX011bHRpX2tleSwgSUJVU19LRVlfZCwgSUJV U19LRVlfbWludXMsIDAsIDAsCi0tICAgIDAsIDB4MjBBQiwgLyogVTIwYWIgIyBET05HIFNJR04g Ki8KLS0gIElCVVNfS0VZX011bHRpX2tleSwgSUJVU19LRVlfZSwgSUJVU19LRVlfZSwgMCwgMCwK LSsgIElCVVNfS0VZX2RlYWRfYWN1dGUsIElCVVNfS0VZX0MsIDAsIDAsCi0rICAgIDAsIDB4MDBD NywgLyogQ2NlZGlsbGEJIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBDIFdJVEggQ0VESUxMQSAqLwot KyAgSUJVU19LRVlfZGVhZF9hY3V0ZSwgSUJVU19LRVlfYywgMCwgMCwKLSsgICAgMCwgMHgwMEU3 LCAvKiBjY2VkaWxsYQkjIExBVElOIFNNQUxMIExFVFRFUiBDIFdJVEggQ0VESUxMQSAqLwotKyAg SUJVU19LRVlfTXVsdGlfa2V5LCBJQlVTX0tFWV9xdW90ZWRibCwgSUJVU19LRVlfc2xhc2gsIDAs Ci0rICAgIDAsIDB4MzAxRSwgLyogVTMwMWUJIyBET1VCTEUgUFJJTUUgUVVPVEFUSU9OIE1BUksg Ki8KLSsgIElCVVNfS0VZX011bHRpX2tleSwgSUJVU19LRVlfcXVvdGVkYmwsIElCVVNfS0VZX2Jh Y2tzbGFzaCwgMCwKLSsgICAgMCwgMHgzMDFELCAvKiBVMzAxZAkjIFJFVkVSU0VEIERPVUJMRSBQ UklNRSBRVU9UQVRJT04gTUFSSyAqLwotKyAgSUJVU19LRVlfTXVsdGlfa2V5LCBJQlVTX0tFWV9h cG9zdHJvcGhlLCAweDAzRDIsIDAsCi0rICAgIDAsIDB4MDNEMywgLyogVTAzRDMJIyBHUkVFSyBV UFNJTE9OIFdJVEggQUNVVEUgQU5EIEhPT0sgU1lNQk9MICovCi0rICBJQlVTX0tFWV9NdWx0aV9r ZXksIElCVVNfS0VZX2NvbW1hLCBJQlVTX0tFWV9FLCAwLAotKyAgICAwLCAweDAyMjgsIC8qIFUw MjI4CSMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIENFRElMTEEgKi8KLSsgIElCVVNfS0VZ X011bHRpX2tleSwgSUJVU19LRVlfY29tbWEsIElCVVNfS0VZX2UsIDAsCi0rICAgIDAsIDB4MDIy OSwgLyogVTAyMjkJIyBMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIENFRElMTEEgKi8KLSsgIElC VVNfS0VZX011bHRpX2tleSwgSUJVU19LRVlfVSwgSUJVU19LRVlfY29tbWEsIElCVVNfS0VZX0Us Ci0rICAgIDAsIDB4MUUxQywgLyogVTFFMUMJIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEgg Q0VESUxMQSBBTkQgQlJFVkUgKi8KLSsgIElCVVNfS0VZX011bHRpX2tleSwgSUJVU19LRVlfVSwg SUJVU19LRVlfY29tbWEsIElCVVNfS0VZX2UsCi0rICAgIDAsIDB4MUUxRCwgLyogVTFFMUQJIyBM QVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIENFRElMTEEgQU5EIEJSRVZFICovCi0rICBJQlVTX0tF WV9NdWx0aV9rZXksIElCVVNfS0VZX2UsIElCVVNfS0VZX2UsIDAsCi0gICAgIDAsIDB4MDE4Riwg LyogVTAxOGYgKi8KLS0gIElCVVNfS0VZX011bHRpX2tleSwgSUJVU19LRVlfYWN1dGUsIDB4MDNE MiwgMCwgMCwKLS0gICAgMCwgMHgwM0QzLCAvKiBVMDNEMyAjIEdSRUVLIFVQU0lMT04gV0lUSCBB Q1VURSBBTkQgSE9PSyBTWU1CT0wgKi8KLS0gIElCVVNfS0VZX011bHRpX2tleSwgMHgyMjAzLCAw eDAzMzgsIDAsIDAsCi0tICAgIDAsIDB4MjIwNCwgLyogVTIyMDQgIyBUSEVSRSBET0VTIE5PVCBF WElTVCAqLwotLSAgSUJVU19LRVlfTXVsdGlfa2V5LCAweDIyMDgsIDB4MDMzOCwgMCwgMCwKLS0g ICAgMCwgMHgyMjA5LCAvKiBVMjIwOSAjIE5PVCBBTiBFTEVNRU5UIE9GICovCi0tICBJQlVTX0tF WV9NdWx0aV9rZXksIDB4MjIwQiwgMHgwMzM4LCAwLCAwLAotLSAgICAwLCAweDIyMEMsIC8qIFUy MjBDICMgRE9FUyBOT1QgQ09OVEFJTiBBUyBNRU1CRVIgKi8KLS0gIElCVVNfS0VZX011bHRpX2tl eSwgMHgyMjIzLCAweDAzMzgsIDAsIDAsCi0tICAgIDAsIDB4MjIyNCwgLyogVTIyMjQgIyBET0VT IE5PVCBESVZJREUgKi8KLS0gIElCVVNfS0VZX011bHRpX2tleSwgMHgyMjI1LCAweDAzMzgsIDAs IDAsCi0tICAgIDAsIDB4MjIyNiwgLyogVTIyMjYgIyBOT1QgUEFSQUxMRUwgVE8gKi8KLS0gIElC VVNfS0VZX011bHRpX2tleSwgMHgyMjg2LCAweDAzMzgsIDAsIDAsCi0tICAgIDAsIDB4MjI4OCwg LyogVTIyODggIyBORUlUSEVSIEEgU1VCU0VUIE9GIE5PUiBFUVVBTCBUTyAqLwotLSAgSUJVU19L RVlfTXVsdGlfa2V5LCAweDIyODcsIDB4MDMzOCwgMCwgMCwKLS0gICAgMCwgMHgyMjg5LCAvKiBV MjI4OSAjIE5FSVRIRVIgQSBTVVBFUlNFVCBPRiBOT1IgRVFVQUwgVE8gKi8KLS0gIElCVVNfS0VZ X011bHRpX2tleSwgMHgyMjkxLCAweDAzMzgsIDAsIDAsCi0tICAgIDAsIDB4MjJFMiwgLyogVTIy RTIgIyBOT1QgU1FVQVJFIElNQUdFIE9GIE9SIEVRVUFMIFRPICovCi0tICBJQlVTX0tFWV9NdWx0 aV9rZXksIDB4MjI5MiwgMHgwMzM4LCAwLCAwLAotLSAgICAwLCAweDIyRTMsIC8qIFUyMkUzICMg Tk9UIFNRVUFSRSBPUklHSU5BTCBPRiBPUiBFUVVBTCBUTyAqLwotLSAgSUJVU19LRVlfTXVsdGlf a2V5LCAweDIyQjQsIDB4MDMzOCwgMCwgMCwKLS0gICAgMCwgMHgyMkVDLCAvKiBVMjJFQyAjIE5P VCBOT1JNQUwgU1VCR1JPVVAgT0YgT1IgRVFVQUwgVE8gKi8KLS0gIElCVVNfS0VZX011bHRpX2tl eSwgMHgyMkI1LCAweDAzMzgsIDAsIDAsCi0tICAgIDAsIDB4MjJFRCAgLyogVTIyRUQgIyBET0VT IE5PVCBDT05UQUlOIEFTIE5PUk1BTCBTVUJHUk9VUCBPUiBFUVVBTCAqLwotKyAgSUJVU19LRVlf TXVsdGlfa2V5LCBJQlVTX0tFWV9hY3V0ZSwgMHgwM0QyLCAwLAotKyAgICAwLCAweDAzRDMgIC8q IFUwM0QzCSMgR1JFRUsgVVBTSUxPTiBXSVRIIEFDVVRFIEFORCBIT09LIFNZTUJPTCAqLwotIH07 Ci0gCi0gc3RhdGljIGNvbnN0IElCdXNDb21wb3NlVGFibGUgaWJ1c19jb21wb3NlX3RhYmxlX3B0 X2JyID0gewotICAgICBpYnVzX2NvbXBvc2Vfc2Vxc19wdF9iciwKLS0gICAgNSwKLS0gICAgR19O X0VMRU1FTlRTIChpYnVzX2NvbXBvc2Vfc2Vxc19wdF9icikgLyAoNSArIDIpCi0rICAgIDQsCi0r ICAgIEdfTl9FTEVNRU5UUyAoaWJ1c19jb21wb3NlX3NlcXNfcHRfYnIpIC8gKDQgKyAyKQotIH07 Ci0gCi0gc3RhdGljIGNvbnN0IElCdXNDb21wb3NlVGFibGVMb2NhbGVMaXN0IGlidXNfY29tcG9z ZV90YWJsZV9sb2NhbGVfbGlzdFtdID0gewotLS0gCi0xLjguNS4zCi0KLUZyb20gYTUzMDA3NTBl MzhiNTMyN2JkZDI1NWQ3Nzc1NDRkMGMwZWJjYjRkOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK LUZyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLURhdGU6IFR1ZSwg MjQgSnVuIDIwMTQgMTE6MjQ6NDAgKzA5MDAKLVN1YmplY3Q6IFtQQVRDSF0gRG8gbm90IHNvcnQg aWJ1cyBlbmdpbmVzIHdoZW4gdGhleSBhcmUgc2F2ZWQgYnkKLSBpYnVzLXNldHVwLgotCi1pYnVz IDEuNSBjaGFuZ2VzIHRoZSBlbmdpbmUgb3JkZXIgd2l0aCBTdXBlcitzcGFjZSBzaG9ydGN1dCBr ZXkKLWFuZCBub3cgaWJ1cy1zZXR1cCBzaG93cyB0aGUgc29ydGVkIGVuZ2luZXMgYnkgbG9uZ25h bWUgb24gVUkuCi1UaGlzIGZpeGVzIG5vdCB0byBzYXZlIHRoZSBzb3J0ZWQgb3JkZXIgd2l0aCBp YnVzLXNldHVwLgotCi1URVNUPXNldHVwCi0KLVJldmlldyBVUkw6IGh0dHBzOi8vY29kZXJldmll dy5hcHBzcG90LmNvbS8xMDI2MTAwNDQKLS0tLQotIHNldHVwL2VuZ2luZXRyZWV2aWV3LnB5IHwg MTMgKysrKysrKystLS0tLQotIHNldHVwL21haW4ucHkgICAgICAgICAgIHwgIDMgKystCi0gMiBm aWxlcyBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQotCi1kaWZmIC0t Z2l0IGEvc2V0dXAvZW5naW5ldHJlZXZpZXcucHkgYi9zZXR1cC9lbmdpbmV0cmVldmlldy5weQot aW5kZXggYjExNmM1NC4uM2FiODFiNyAxMDA2NDQKLS0tLSBhL3NldHVwL2VuZ2luZXRyZWV2aWV3 LnB5Ci0rKysgYi9zZXR1cC9lbmdpbmV0cmVldmlldy5weQotQEAgLTQ3LDcgKzQ3LDcgQEAgY2xh c3MgRW5naW5lVHJlZVZpZXcoR3RrLlRyZWVWaWV3KToKLSAgICAgZGVmIF9faW5pdF9fKHNlbGYp OgotICAgICAgICAgc3VwZXIoRW5naW5lVHJlZVZpZXcsIHNlbGYpLl9faW5pdF9fKCkKLSAKLS0g ICAgICAgIHNlbGYuX19lbmdpbmVzID0gc2V0KFtdKQotKyAgICAgICAgc2VsZi5fX2VuZ2luZXMg PSBbXQotICAgICAgICAgc2VsZi5fX2NoYW5nZWQgPSBGYWxzZQotIAotICAgICAgICAgIyBzZWxm LnNldF9oZWFkZXJzX3Zpc2libGUoVHJ1ZSkKLUBAIC0xODYsMTMgKzE4NiwxMyBAQCBjbGFzcyBF bmdpbmVUcmVlVmlldyhHdGsuVHJlZVZpZXcpOgotIAotICAgICBkZWYgc2V0X2VuZ2luZXMoc2Vs ZiwgZW5naW5lcyk6Ci0gICAgICAgICBzZWxmLl9fbW9kZWwuY2xlYXIoKQotLSAgICAgICAgc2Vs Zi5fX2VuZ2luZXMgPSBzZXQoW10pCi0rICAgICAgICBzZWxmLl9fZW5naW5lcyA9IFtdCi0gICAg ICAgICBmb3IgZSBpbiBlbmdpbmVzOgotICAgICAgICAgICAgIGlmIGUgaW4gc2VsZi5fX2VuZ2lu ZXM6Ci0gICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICAgaXQgPSBzZWxmLl9f bW9kZWwuYXBwZW5kKE5vbmUpCi0gICAgICAgICAgICAgc2VsZi5fX21vZGVsLnNldChpdCwgMCwg ZSkKLS0gICAgICAgICAgICBzZWxmLl9fZW5naW5lcy5hZGQoZSkKLSsgICAgICAgICAgICBzZWxm Ll9fZW5naW5lcy5hcHBlbmQoZSkKLSAgICAgICAgIHNlbGYuX19lbWl0X2NoYW5nZWQoKQotIAot ICAgICBkZWYgZ2V0X3NlbGVjdGVkX2l0ZXIoc2VsZik6Ci1AQCAtMjAxLDYgKzIwMSw5IEBAIGNs YXNzIEVuZ2luZVRyZWVWaWV3KEd0ay5UcmVlVmlldyk6Ci0gICAgICAgICAgICAgcmV0dXJuIHNl bGVjdGlvbi5nZXRfc2VsZWN0ZWQoKVsxXQotIAotICAgICBkZWYgZ2V0X2VuZ2luZXMoc2VsZik6 Ci0rICAgICAgICByZXR1cm4gc2VsZi5fX2VuZ2luZXMKLSsKLSsgICAgZGVmIGdldF9zb3J0ZWRf ZW5naW5lcyhzZWxmKToKLSAgICAgICAgIHJldHVybiBzZWxmLmdldF9wcm9wZXJ0eSgiZW5naW5l cyIpCi0gCi0gICAgIGRlZiBnZXRfYWN0aXZlX2VuZ2luZShzZWxmKToKLUBAIC0yMTEsNyArMjE0 LDcgQEAgY2xhc3MgRW5naW5lVHJlZVZpZXcoR3RrLlRyZWVWaWV3KToKLSAgICAgICAgICAgICBy ZXR1cm4KLSAgICAgICAgIGl0ID0gc2VsZi5fX21vZGVsLnByZXBlbmQoTm9uZSkKLSAgICAgICAg IHNlbGYuX19tb2RlbC5zZXQoaXQsIDAsIGVuZ2luZSkKLS0gICAgICAgIHNlbGYuX19lbmdpbmVz LmFkZChlbmdpbmUpCi0rICAgICAgICBzZWxmLl9fZW5naW5lcyA9IFtlbmdpbmVdICsgc2VsZi5f X2VuZ2luZXMKLSAgICAgICAgIHNlbGYuc2Nyb2xsX3RvX2NlbGwoc2VsZi5fX21vZGVsWzBdLnBh dGgsIE5vbmUpCi0gCi0gICAgIGRlZiBhcHBlbmRfZW5naW5lKHNlbGYsIGVuZ2luZSk6Ci1AQCAt MjE5LDcgKzIyMiw3IEBAIGNsYXNzIEVuZ2luZVRyZWVWaWV3KEd0ay5UcmVlVmlldyk6Ci0gICAg ICAgICAgICAgcmV0dXJuCi0gICAgICAgICBpdCA9IHNlbGYuX19tb2RlbC5hcHBlbmQoTm9uZSkK LSAgICAgICAgIHNlbGYuX19tb2RlbC5zZXQoaXQsIDAsIGVuZ2luZSkKLS0gICAgICAgIHNlbGYu X19lbmdpbmVzLmFkZChlbmdpbmUpCi0rICAgICAgICBzZWxmLl9fZW5naW5lcy5hcHBlbmQoZW5n aW5lKQotICAgICAgICAgc2VsZi5zY3JvbGxfdG9fY2VsbChzZWxmLl9fbW9kZWxbLTFdLnBhdGgs IE5vbmUpCi0gCi0gICAgIGRlZiByZW1vdmVfZW5naW5lKHNlbGYpOgotZGlmZiAtLWdpdCBhL3Nl dHVwL21haW4ucHkgYi9zZXR1cC9tYWluLnB5Ci1pbmRleCBkZWU3YmU0Li4xZDg5ZjNkIDEwMDY0 NAotLS0tIGEvc2V0dXAvbWFpbi5weQotKysrIGIvc2V0dXAvbWFpbi5weQotQEAgLTI3NCw3ICsy NzQsNyBAQCBjbGFzcyBTZXR1cChvYmplY3QpOgotICAgICAgICAgaWYgcHJvcC5uYW1lIG5vdCBp biAoImFjdGl2ZS1lbmdpbmUiLCAiZW5naW5lcyIpOgotICAgICAgICAgICAgIHJldHVybgotIAot LSAgICAgICAgZW5naW5lcyA9IHNlbGYuX190cmVldmlldy5nZXRfZW5naW5lcygpCi0rICAgICAg ICBlbmdpbmVzID0gc2VsZi5fX3RyZWV2aWV3LmdldF9zb3J0ZWRfZW5naW5lcygpCi0gICAgICAg ICBlbmdpbmUgPSBzZWxmLl9fdHJlZXZpZXcuZ2V0X2FjdGl2ZV9lbmdpbmUoKQotIAotICAgICAg ICAgc2VsZi5fX2J1aWxkZXIuZ2V0X29iamVjdCgiYnV0dG9uX2VuZ2luZV9yZW1vdmUiKS5zZXRf c2Vuc2l0aXZlKGVuZ2luZSAhPSBOb25lKQotQEAgLTI4OSw2ICsyODksNyBAQCBjbGFzcyBTZXR1 cChvYmplY3QpOgotICAgICAgICAgICAgIG9iai5zZXRfc2Vuc2l0aXZlKEZhbHNlKQotIAotICAg ICAgICAgaWYgcHJvcC5uYW1lID09ICJlbmdpbmVzIjoKLSsgICAgICAgICAgICBlbmdpbmVzID0g c2VsZi5fX3RyZWV2aWV3LmdldF9lbmdpbmVzKCkKLSAgICAgICAgICAgICBlbmdpbmVfbmFtZXMg PSBbZS5nZXRfbmFtZSgpIGZvciBlIGluIGVuZ2luZXNdCi0gICAgICAgICAgICAgc2VsZi5fX3Nl dHRpbmdzX2dlbmVyYWwuc2V0X3N0cnYoJ3ByZWxvYWQtZW5naW5lcycsIGVuZ2luZV9uYW1lcykK LSAKLS0tIAotMS44LjUuMwotCi1Gcm9tIDhlZjI1OGVjMzFmMTI0MDVlNGY1ZGVkNmE3YTRkODAx MTRhMjE5ZDQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBPc2FtdSBBb2tpIDxvc2Ft dUBkZWJpYW4ub3JnPgotRGF0ZTogVGh1LCAzIEp1bCAyMDE0IDExOjM5OjMyICswOTAwCi1TdWJq ZWN0OiBbUEFUQ0hdIFVzZSAia2V5Y29kZSBMaW51eF9rZXljb2RlID0gWDExX2tleXN5bSIgZm9y bWF0Ci0KLURlbGV0ZSBub24tTGludXgga2V5Ym9hcmQgY29tcGF0aWJpbGl0eS4KLQotVGhlc2Ug YXJlIHRlc3RlZCBmb3IgYm90aCBQQyBhbmQgTWFjLiBVc2luZyBzaG93a2V5IGFuZCB4ZXYKLQot Tm90YWJseToKLQotICBIYW5ndWwgPSBFaXN1dS1vbi1tYWMta2V5Ym9hcmQKLSAgSGFuZ3VsX0hh bmphID0gS2FuYS9rYW5hIC1vbi1tYWMta2V5Ym9hcmQKLQotQlVHPWh0dHA6Ly9jb2RlLmdvb2ds ZS5jb20vcC9pYnVzL2lzc3Vlcy9kZXRhaWw/aWQ9MTcyNAotVEVTVD1kYXRhL2tleW1hcHMva2V5 Y29kZS5weQotCi1SZXZpZXcgVVJMOiBodHRwczovL2NvZGVyZXZpZXcuYXBwc3BvdC5jb20vMTA2 MjUwMDQ1Ci1QYXRjaCBmcm9tIE9zYW11IEFva2kgPG9zYW11QGRlYmlhbi5vcmc+LgotLS0tCi0g ZGF0YS9rZXltYXBzL2pwIHwgMTUgKysrKysrKysrLS0tLS0tCi0gMSBmaWxlIGNoYW5nZWQsIDkg aW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2RhdGEva2V5bWFw cy9qcCBiL2RhdGEva2V5bWFwcy9qcAotaW5kZXggMmM3ODM0Ny4uZTU1NDZmYSAxMDA2NDQKLS0t LSBhL2RhdGEva2V5bWFwcy9qcAotKysrIGIvZGF0YS9rZXltYXBzL2pwCi1AQCAtMzEsMTEgKzMx LDE0IEBAIGtleWNvZGUgNTIgPSBwZXJpb2QKLSBrZXljb2RlIDUzID0gc2xhc2gKLSAgICAgc2hp ZnQga2V5Y29kZSA1MyA9IHF1ZXN0aW9uCi0gICAgIHNoaWZ0IGtleWNvZGUgNTggPSBFaXN1X3Rv Z2dsZQotLSAgICBzaGlmdCBrZXljb2RlIDg0ID0gRXhlY3V0ZQotLWtleWNvZGUgMTEyID0gS2F0 YWthbmEKLS1rZXljb2RlIDExNSA9IGJhY2tzbGFzaAotLSAgICBzaGlmdCBrZXljb2RlIDExNSA9 IHVuZGVyc2NvcmUKLS1rZXljb2RlIDEyMSA9IEhlbmthbl9Nb2RlCi0ta2V5Y29kZSAxMjMgPSBN dWhlbmthbgotK2tleWNvZGUgODkgPSBiYWNrc2xhc2gKLSsgICAgc2hpZnQga2V5Y29kZSA4OSA9 IHVuZGVyc2NvcmUKLStrZXljb2RlIDkyID0gSGVua2FuX01vZGUKLStrZXljb2RlIDkzID0gSGly YWdhbmFfS2F0YWthbmEKLStrZXljb2RlIDk0ID0gTXVoZW5rYW4KLSBrZXljb2RlIDEyNCA9IHll bgotICAgICBzaGlmdCBrZXljb2RlIDEyNCA9IGJhcgotK2tleWNvZGUgMTIyID0gSGFuZ3VsCi0r a2V5Y29kZSAxMjMgPSBIYW5ndWxfSGFuamEKLSsgICAgc2hpZnQga2V5Y29kZSA4NCA9IEV4ZWN1 dGUKLStrZXljb2RlIDExMiA9IEthdGFrYW5hCi0tLSAKLTEuOC41LjMKLQotRnJvbSAzZGNmMjQ3 NDIyMTZkNjIzNGE0NWFjZTFiNDMzYjg2NGVmZGYwOGEyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQotRnJvbTogZnVqaXdhcmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotRGF0ZTogRnJp LCA0IEp1bCAyMDE0IDE2OjAzOjU3ICswOTAwCi1TdWJqZWN0OiBbUEFUQ0hdIEFkZCBpYnVzIHJl c2V0LWNvbmZpZyBhbmQgcmVhZC1jb25maWcgc3ViLWNvbW1hbmRzLgotCi1CVUc9cmhieiM1MzA3 MTEKLVRFU1Q9dG9vbHMvaWJ1cwotCi1SZXZpZXcgVVJMOiBodHRwczovL2NvZGVyZXZpZXcuYXBw c3BvdC5jb20vMTAzNjcwMDQ0Ci0tLS0KLSB0b29scy9tYWluLnZhbGEgfCA0OCArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KLSAxIGZpbGUgY2hhbmdlZCwg NDcgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEvdG9vbHMvbWFp bi52YWxhIGIvdG9vbHMvbWFpbi52YWxhCi1pbmRleCBkYjRmZDIzLi5lY2NlODBhIDEwMDY0NAot LS0tIGEvdG9vbHMvbWFpbi52YWxhCi0rKysgYi90b29scy9tYWluLnZhbGEKLUBAIC0yMCw2ICsy MCwxMiBAQAotICAqIFVTQQotICAqLwotIAotK3ByaXZhdGUgY29uc3Qgc3RyaW5nW10gSUJVU19T Q0hFTUFTID0gewotKyAgICAib3JnLmZyZWVkZXNrdG9wLmlidXMuZ2VuZXJhbCIsCi0rICAgICJv cmcuZnJlZWRlc2t0b3AuaWJ1cy5nZW5lcmFsLmhvdGtleSIsCi0rICAgICJvcmcuZnJlZWRlc2t0 b3AuaWJ1cy5wYW5lbCIsCi0rfTsKLSsKLSBib29sIG5hbWVfb25seSA9IGZhbHNlOwotIC8qIHN5 c3RlbSgpIGV4aXN0cyBhcyBhIHB1YmxpYyBBUEkuICovCi0gYm9vbCBpc19zeXN0ZW0gPSBmYWxz ZTsKLUBAIC0yNzYsNiArMjgyLDQ0IEBAIGludCBwcmludF9hZGRyZXNzKHN0cmluZ1tdIGFyZ3Yp IHsKLSAgICAgcmV0dXJuIFBvc2l4LkVYSVRfU1VDQ0VTUzsKLSB9Ci0gCi0raW50IHJlYWRfY29u ZmlnKHN0cmluZ1tdIGFyZ3YpIHsKLSsgICAgdmFyIG91dHB1dCA9IG5ldyBHTGliLlN0cmluZ0J1 aWxkZXIoKTsKLSsKLSsgICAgZm9yZWFjaCAoc3RyaW5nIHNjaGVtYSBpbiBJQlVTX1NDSEVNQVMp IHsKLSsgICAgICAgIEdMaWIuU2V0dGluZ3Mgc2V0dGluZ3MgPSBuZXcgR0xpYi5TZXR0aW5ncyhz Y2hlbWEpOwotKwotKyAgICAgICAgb3V0cHV0LmFwcGVuZF9wcmludGYoIlNDSEVNQTogJXNcbiIs IHNjaGVtYSk7Ci0rCi0rICAgICAgICBmb3JlYWNoIChzdHJpbmcga2V5IGluIHNldHRpbmdzLmxp c3Rfa2V5cygpKSB7Ci0rICAgICAgICAgICAgR0xpYi5WYXJpYW50IHZhcmlhbnQgPSBzZXR0aW5n cy5nZXRfdmFsdWUoa2V5KTsKLSsgICAgICAgICAgICBvdXRwdXQuYXBwZW5kX3ByaW50ZigiICAl czogJXNcbiIsIGtleSwgdmFyaWFudC5wcmludCh0cnVlKSk7Ci0rICAgICAgICB9Ci0rICAgIH0K LSsgICAgcHJpbnQoIiVzIiwgb3V0cHV0LnN0cik7Ci0rCi0rICAgIHJldHVybiBQb3NpeC5FWElU X1NVQ0NFU1M7Ci0rfQotKwotK2ludCByZXNldF9jb25maWcoc3RyaW5nW10gYXJndikgewotKyAg ICBwcmludCgiJXNcbiIsIF8oIlJlc2V0dGluZ+KApiIpKTsKLSsKLSsgICAgZm9yZWFjaCAoc3Ry aW5nIHNjaGVtYSBpbiBJQlVTX1NDSEVNQVMpIHsKLSsgICAgICAgIEdMaWIuU2V0dGluZ3Mgc2V0 dGluZ3MgPSBuZXcgR0xpYi5TZXR0aW5ncyhzY2hlbWEpOwotKwotKyAgICAgICAgcHJpbnQoIlND SEVNQTogJXNcbiIsIHNjaGVtYSk7Ci0rCi0rICAgICAgICBmb3JlYWNoIChzdHJpbmcga2V5IGlu IHNldHRpbmdzLmxpc3Rfa2V5cygpKSB7Ci0rICAgICAgICAgICAgcHJpbnQoIiAgJXNcbiIsIGtl eSk7Ci0rICAgICAgICAgICAgc2V0dGluZ3MucmVzZXQoa2V5KTsKLSsgICAgICAgIH0KLSsgICAg fQotKwotKyAgICBHTGliLlNldHRpbmdzLnN5bmMoKTsKLSsgICAgcHJpbnQoIiVzXG4iLCBfKCJE b25lIikpOwotKwotKyAgICByZXR1cm4gUG9zaXguRVhJVF9TVUNDRVNTOwotK30KLSsKLSBpbnQg cHJpbnRfaGVscChzdHJpbmdbXSBhcmd2KSB7Ci0gICAgIHByaW50X3VzYWdlKHN0ZG91dCk7Ci0g ICAgIHJldHVybiBQb3NpeC5FWElUX1NVQ0NFU1M7Ci1AQCAtMjk5LDYgKzM0Myw4IEBAIHN0YXRp YyBjb25zdCBDb21tYW5kRW50cnkgY29tbWFuZHNbXSAgPSB7Ci0gICAgIHsgInJlYWQtY2FjaGUi LCBOXygiU2hvdyB0aGUgY29udGVudCBvZiByZWdpc3RyeSBjYWNoZSIpLCByZWFkX2NhY2hlIH0s Ci0gICAgIHsgIndyaXRlLWNhY2hlIiwgTl8oIkNyZWF0ZSByZWdpc3RyeSBjYWNoZSIpLCB3cml0 ZV9jYWNoZSB9LAotICAgICB7ICJhZGRyZXNzIiwgTl8oIlByaW50IHRoZSBELUJ1cyBhZGRyZXNz IG9mIGlidXMtZGFlbW9uIiksIHByaW50X2FkZHJlc3MgfSwKLSsgICAgeyAicmVhZC1jb25maWci LCBOXygiU2hvdyB0aGUgY29uZmlndXJhdGlvbiB2YWx1ZXMiKSwgcmVhZF9jb25maWcgfSwKLSsg ICAgeyAicmVzZXQtY29uZmlnIiwgTl8oIlJlc2V0IHRoZSBjb25maWd1cmF0aW9uIHZhbHVlcyIp LCByZXNldF9jb25maWcgfSwKLSAgICAgeyAiaGVscCIsIE5fKCJTaG93IHRoaXMgaW5mb3JtYXRp b24iKSwgcHJpbnRfaGVscCB9Ci0gfTsKLSAKLUBAIC0zMDgsNyArMzU0LDcgQEAgdm9pZCBwcmlu dF91c2FnZShGaWxlU3RyZWFtIHN0cmVhbSkgewotICAgICBzdHJlYW0ucHJpbnRmKF8oIlVzYWdl OiAlcyBDT01NQU5EIFtPUFRJT04uLi5dXG5cbiIpLCBwcm9ncmFtX25hbWUpOwotICAgICBzdHJl YW0ucHJpbnRmKF8oIkNvbW1hbmRzOlxuIikpOwotICAgICBmb3IgKGludCBpID0gMDsgaSA8IGNv bW1hbmRzLmxlbmd0aDsgaSsrKSB7Ci0tICAgICAgICBzdHJlYW0ucHJpbnRmKCIgICUtMTFzICAg ICVzXG4iLAotKyAgICAgICAgc3RyZWFtLnByaW50ZigiICAlLTEycyAgICAlc1xuIiwKLSAgICAg ICAgICAgICAgICAgICAgICAgY29tbWFuZHNbaV0ubmFtZSwKLSAgICAgICAgICAgICAgICAgICAg ICAgR0xpYi5kZ2V0dGV4dChudWxsLCBjb21tYW5kc1tpXS5kZXNjcmlwdGlvbikpOwotICAgICB9 Ci0tLSAKLTEuOC41LjMKLQotRnJvbSA5ZTVhMmJkMmM0MGY5ZWVkOGQ5OTcxMGI2M2IzZGFiNzM3 YWE5Yjk1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogZnVqaXdhcmF0IDx0YWthby5m dWppd2FyYTFAZ21haWwuY29tPgotRGF0ZTogVHVlLCA4IEp1bCAyMDE0IDExOjQyOjEyICswOTAw Ci1TdWJqZWN0OiBbUEFUQ0hdIFVwZGF0ZSBpYnVzKDEpIGZvciByZWFkLWNvbmZpZyBhbmQgcmVz ZXQtY29uZmlnLgotCi1URVNUPXRvb2xzL2lidXMuMS5negotCi1SZXZpZXcgVVJMOiBodHRwczov L2NvZGVyZXZpZXcuYXBwc3BvdC5jb20vMTExOTAwMDQ0Ci0tLS0KLSB0b29scy9pYnVzLjEuaW4g fCA3ICsrKysrKysKLSAxIGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1n aXQgYS90b29scy9pYnVzLjEuaW4gYi90b29scy9pYnVzLjEuaW4KLWluZGV4IGFiOTlkYjQuLjZh YzkyZmYgMTAwNjQ0Ci0tLS0gYS90b29scy9pYnVzLjEuaW4KLSsrKyBiL3Rvb2xzL2lidXMuMS5p bgotQEAgLTg1LDYgKzg1LDEzIEBAIGRpcmVjdG9yaWVzLCBzZXBhcmF0ZWQgYnkgJzonLgotIFxm QmFkZHJlc3NcZlIKLSBTaG93IHRoZSBELUJ1cyBhZGRyZXNzIG9mIGlidXMtZGFlbW9uLgotIC5U UAotK1xmQnJlYWRcLWNvbmZpZ1xmUgotK1ByaW50IHRoZSBzZXR0aW5nIHZhbHVlcyBpbiBhIGdz ZXR0aW5ncyBjb25maWd1cmF0aW9uIGZpbGUuCi0rLlRQCi0rXGZCcmVzZXRcLWNvbmZpZ1xmUgot K1Jlc2V0IHRoZSB1c2VyIHNldHRpbmcgdmFsdWVzIHRvIHRoZSBkZWZhdWx0IG9uZXMgaW4gYSBn c2V0dGluZ3MKLStjb25maWd1cmF0aW9uIGZpbGUuCi0rLlRQCi0gXGZCd2F0Y2hcZlIKLSBVbmRl ciBjb25zdHJ1Y3Rpb24uCi0gLlRQCi0tLSAKLTEuOC41LjMKLQotRnJvbSAxMDQ4M2JmZWJkMWY1 MWZmYTUyYWQ3ZDAxNzE5M2FlNzI4ZjkzYmY1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJv bTogZnVqaXdhcmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotRGF0ZTogVGh1LCAxMCBK dWwgMjAxNCAxMTo1NDozMCArMDkwMAotU3ViamVjdDogW1BBVENIXSBGaXggaWJ1cy1zZXR1cCBT RUdWIGluIGVuZ2luZXRyZWV2aWV3LnB5Ci0KLVdoZW4gYW4gZW5naW5lIGlzIGFkZGVkIG9uIGli dXMtc2V0dXAsIGVuZ2luZXRyZWV2aWV3LmFwcGVuZF9lbmdpbmUoKQotY2FsbHMgc2VsZi5fX21v ZGVsLmFwcGVuZChOb25lKSBhbmQgaXQgY2F1c2VzIGVuZ2luZSA9PSBOb25lIGluCi1fX2ljb25f Y2VsbF9kYXRhX2NiKCkgYW5kIF9fbmFtZV9jZWxsX2RhdGFfY2IoKSBpbiBlbmdpbmV0cmVldmll dwotd2l0aCBweXRob24zLWdvYmplY3QgMy4xMy54IHdoaWNoIHZlcnNpb24gaGFzIGltcGxlbWVu dGVkIHNldmVyYWwKLWRlcHJlY2F0ZWQgd2FybmluZ3MgaW4gZ2kvb3ZlcnJpZGVzL0d0ay5weSAu Ci1JIHRoaW5rIHRoaXMgcHJvYmxlbSBhbHNvIGNvdWxkIGhhcHBlbiBpbiB0aGUgb2xkIHZlcnNp b25zIGlmCi10aGUgc3lzdGVtIHdvdWxkIGJlIHNsb3cuCi0KLUJVRz1yaGJ6IzEwNDg0MjkKLVRF U1Q9c2V0dXAgaW4gRmVkb3JhIDIxCi0KLVJldmlldyBVUkw6IGh0dHBzOi8vY29kZXJldmlldy5h cHBzcG90LmNvbS8xMDQ2MjAwNDMKLS0tLQotIHNldHVwL2VuZ2luZXRyZWV2aWV3LnB5IHwgMTUg KysrKysrKysrKysrKy0tCi0gMSBmaWxlIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDIgZGVs ZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zZXR1cC9lbmdpbmV0cmVldmlldy5weSBiL3NldHVw L2VuZ2luZXRyZWV2aWV3LnB5Ci1pbmRleCAzYWI4MWI3Li5hZmIyM2ZjIDEwMDY0NAotLS0tIGEv c2V0dXAvZW5naW5ldHJlZXZpZXcucHkKLSsrKyBiL3NldHVwL2VuZ2luZXRyZWV2aWV3LnB5Ci1A QCAtMTI4LDEyICsxMjgsMjUgQEAgY2xhc3MgRW5naW5lVHJlZVZpZXcoR3RrLlRyZWVWaWV3KToK LSAgICAgZGVmIF9faWNvbl9jZWxsX2RhdGFfY2Ioc2VsZiwgY2VsbGxheW91dCwgcmVuZGVyZXIs IG1vZGVsLCBpdCwgZGF0YSk6Ci0gICAgICAgICBlbmdpbmUgPSBzZWxmLl9fbW9kZWwuZ2V0X3Zh bHVlKGl0LCAwKQotIAotKyAgICAgICAgIyBXaGVuIGFwcGVuZF9lbmdpbmUoKSBpcyBjYWxsZWQs IHNlbGYuX19tb2RlbC5hcHBlbmQoTm9uZSkKLSsgICAgICAgICMgaXMgY2FsbGVkIGludGVybmFs bHkgYW5kIGVuZ2luZSA9PSBOb25lIGNvdWxkIGhhcHBlbiBpbgotKyAgICAgICAgIyBhIHNsb3cg c3lzdGVtLgotKyAgICAgICAgaWYgZW5naW5lID09IE5vbmU6Ci0rICAgICAgICAgICAgcmV0dXJu Ci0rCi0gICAgICAgICBpY29uX3NpemUgPSBHdGsuaWNvbl9zaXplX2xvb2t1cChHdGsuSWNvblNp emUuTEFSR0VfVE9PTEJBUilbMF0KLSAgICAgICAgIHBpeGJ1ZiA9IGxvYWRfaWNvbihlbmdpbmUu Z2V0X2ljb24oKSwgR3RrLkljb25TaXplLkxBUkdFX1RPT0xCQVIpCi0gICAgICAgICByZW5kZXJl ci5zZXRfcHJvcGVydHkoInBpeGJ1ZiIsIHBpeGJ1ZikKLSAKLSAgICAgZGVmIF9fbmFtZV9jZWxs X2RhdGFfY2Ioc2VsZiwgY2VsbGxheW91dCwgcmVuZGVyZXIsIG1vZGVsLCBpdCwgZGF0YSk6Ci0g ICAgICAgICBlbmdpbmUgPSBzZWxmLl9fbW9kZWwuZ2V0X3ZhbHVlKGl0LCAwKQotKwotKyAgICAg ICAgIyBXaGVuIGFwcGVuZF9lbmdpbmUoKSBpcyBjYWxsZWQsIHNlbGYuX19tb2RlbC5hcHBlbmQo Tm9uZSkKLSsgICAgICAgICMgaXMgY2FsbGVkIGludGVybmFsbHkgYW5kIGVuZ2luZSA9PSBOb25l IGNvdWxkIGhhcHBlbiBpbgotKyAgICAgICAgIyBhIHNsb3cgc3lzdGVtLgotKyAgICAgICAgaWYg ZW5naW5lID09IE5vbmU6Ci0rICAgICAgICAgICAgcmV0dXJuCi0rCi0gICAgICAgICByZW5kZXJl ci5zZXRfcHJvcGVydHkoInNlbnNpdGl2ZSIsIFRydWUpCi0gICAgICAgICBsYW5ndWFnZSA9IElC dXMuZ2V0X2xhbmd1YWdlX25hbWUoZW5naW5lLmdldF9sYW5ndWFnZSgpKQotICAgICAgICAgcmVu ZGVyZXIuc2V0X3Byb3BlcnR5KCJ0ZXh0IiwKLUBAIC0yMTUsNyArMjI4LDYgQEAgY2xhc3MgRW5n aW5lVHJlZVZpZXcoR3RrLlRyZWVWaWV3KToKLSAgICAgICAgIGl0ID0gc2VsZi5fX21vZGVsLnBy ZXBlbmQoTm9uZSkKLSAgICAgICAgIHNlbGYuX19tb2RlbC5zZXQoaXQsIDAsIGVuZ2luZSkKLSAg ICAgICAgIHNlbGYuX19lbmdpbmVzID0gW2VuZ2luZV0gKyBzZWxmLl9fZW5naW5lcwotLSAgICAg ICAgc2VsZi5zY3JvbGxfdG9fY2VsbChzZWxmLl9fbW9kZWxbMF0ucGF0aCwgTm9uZSkKLSAKLSAg ICAgZGVmIGFwcGVuZF9lbmdpbmUoc2VsZiwgZW5naW5lKToKLSAgICAgICAgIGlmIGVuZ2luZSA9 PSBOb25lIG9yIGVuZ2luZSBpbiBzZWxmLl9fZW5naW5lczoKLUBAIC0yMjMsNyArMjM1LDYgQEAg Y2xhc3MgRW5naW5lVHJlZVZpZXcoR3RrLlRyZWVWaWV3KToKLSAgICAgICAgIGl0ID0gc2VsZi5f X21vZGVsLmFwcGVuZChOb25lKQotICAgICAgICAgc2VsZi5fX21vZGVsLnNldChpdCwgMCwgZW5n aW5lKQotICAgICAgICAgc2VsZi5fX2VuZ2luZXMuYXBwZW5kKGVuZ2luZSkKLS0gICAgICAgIHNl bGYuc2Nyb2xsX3RvX2NlbGwoc2VsZi5fX21vZGVsWy0xXS5wYXRoLCBOb25lKQotIAotICAgICBk ZWYgcmVtb3ZlX2VuZ2luZShzZWxmKToKLSAgICAgICAgIGl0ID0gc2VsZi5nZXRfc2VsZWN0ZWRf aXRlcigpCi0tLSAKLTEuOC41LjMKLQotRnJvbSBhMTdkYzhlOGJkMjg4YWRlZGI3N2FlNDE3ZDY4 MjU0MTkzMzdkYWFlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogZnVqaXdhcmF0IDx0 YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotRGF0ZTogRnJpLCAxMSBKdWwgMjAxNCAxMTo0NTow NSArMDkwMAotU3ViamVjdDogW1BBVENIXSBGaXggZGVwcmVjYXRlZCB3YXJuaW5ncyB3aXRoIHB5 dGhvbjMtZ29iamVjdCAzLjEzLjMuCi0KLXB5dGhvbjMtZ29iamVjdCBhZGRzIHNldmVyYWwgd2Fy bmluZ3MgaW4gZ2kvb3ZlcnJpZGVzL0d0ay5weQotCi0vdXNyL3NoYXJlL2lidXMvc2V0dXAvbWFp bi5weTo3NDogUHlHSURlcHJlY2F0aW9uV2FybmluZzoKLVVzaW5nIHBvc2l0aW9uYWwgYXJndW1l bnRzIHdpdGggdGhlIEdPYmplY3QgY29uc3RydWN0b3IgaGFzIGJlZW4KLWRlcHJlY2F0ZWQuIFBs ZWFzZSBzcGVjaWZ5IGtleXdvcmQocykgZm9yICJzY2hlbWEiIG9yIHVzZSBhIGNsYXNzCi1zcGVj aWZpYyBjb25zdHJ1Y3Rvci4KLVNlZTogaHR0cHM6Ly93aWtpLmdub21lLm9yZy9QeUdPYmplY3Qv SW5pdGlhbGl6ZXJEZXByZWNhdGlvbnMKLQotL3Vzci9zaGFyZS9pYnVzL3NldHVwL21haW4ucHk6 MzY0OiBQeUdUS0RlcHJlY2F0aW9uV2FybmluZzoKLVRoZSBrZXl3b3JkKHMpICJ0eXBlIiBoYXZl IGJlZW4gZGVwcmVjYXRlZCBpbiBmYXZvciBvZiAibWVzc2FnZV90eXBlIgotcmVzcGVjdGl2ZWx5 LgotU2VlOiBodHRwczovL3dpa2kuZ25vbWUub3JnL1B5R09iamVjdC9Jbml0aWFsaXplckRlcHJl Y2F0aW9ucwotCi1URVNUPXNldHVwCi0KLVJldmlldyBVUkw6IGh0dHBzOi8vY29kZXJldmlldy5h cHBzcG90LmNvbS8xMTA5OTAwNDQKLS0tLQotIHNldHVwL2VuZ2luZWFib3V0LnB5ICAgICAgfCAx MiArKysrKysrLS0tLS0KLSBzZXR1cC9rZXlib2FyZHNob3J0Y3V0LnB5IHwgMzIgKysrKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLS0KLSBzZXR1cC9tYWluLnB5ICAgICAgICAgICAgIHwgMzAg KysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCi0gc2V0dXAvc2V0dXAudWkgICAgICAgICAg ICB8ICAyICsrCi0gNCBmaWxlcyBjaGFuZ2VkLCA0NSBpbnNlcnRpb25zKCspLCAzMSBkZWxldGlv bnMoLSkKLQotZGlmZiAtLWdpdCBhL3NldHVwL2VuZ2luZWFib3V0LnB5IGIvc2V0dXAvZW5naW5l YWJvdXQucHkKLWluZGV4IDUwYWIwMDEuLjA5ZTliNWMgMTAwNjQ0Ci0tLS0gYS9zZXR1cC9lbmdp bmVhYm91dC5weQotKysrIGIvc2V0dXAvZW5naW5lYWJvdXQucHkKLUBAIC0yOSwxMiArMjksMTQg QEAgZnJvbSBnaS5yZXBvc2l0b3J5IGltcG9ydCBQYW5nbwotIGZyb20gaTE4biBpbXBvcnQgXywg Tl8KLSAKLSBjbGFzcyBFbmdpbmVBYm91dChHdGsuRGlhbG9nKToKLS0gICAgZGVmIF9faW5pdF9f KHNlbGYsIGVuZ2luZWRlc2MpOgotLSAgICAgICAgc2VsZi5fX2VuZ2luZV9kZXNjID0gZW5naW5l ZGVzYwotLSAgICAgICAgc3VwZXIoRW5naW5lQWJvdXQsIHNlbGYpLl9faW5pdF9fKF8oIkFib3V0 IiksIE5vbmUsCi0tICAgICAgICAgICAgICAgIEd0ay5EaWFsb2dGbGFncy5NT0RBTCwKLS0gICAg ICAgICAgICAgICAgKF8oIl9DbG9zZSIpLCBHdGsuUmVzcG9uc2VUeXBlLkNMT1NFKSkKLSsgICAg ZGVmIF9faW5pdF9fKHNlbGYsIGVuZ2luZSwgdHJhbnNpZW50X2ZvciA9IE5vbmUpOgotKyAgICAg ICAgc2VsZi5fX2VuZ2luZV9kZXNjID0gZW5naW5lCi0rICAgICAgICBzdXBlcihFbmdpbmVBYm91 dCwgc2VsZikuX19pbml0X18oCi0rICAgICAgICAgICAgICAgIHRpdGxlID0gXygiQWJvdXQiKSwK LSsgICAgICAgICAgICAgICAgdHJhbnNpZW50X2ZvciA9IHRyYW5zaWVudF9mb3IpCi0gCi0rICAg ICAgICBidXR0b25zID0gKF8oIl9DbG9zZSIpLCBHdGsuUmVzcG9uc2VUeXBlLkNMT1NFKQotKyAg ICAgICAgc2VsZi5hZGRfYnV0dG9ucygqYnV0dG9ucykKLSAgICAgICAgIHNlbGYuX19pbml0X3Vp KCkKLSAKLSAgICAgZGVmIF9faW5pdF91aShzZWxmKToKLWRpZmYgLS1naXQgYS9zZXR1cC9rZXli b2FyZHNob3J0Y3V0LnB5IGIvc2V0dXAva2V5Ym9hcmRzaG9ydGN1dC5weQotaW5kZXggZDgyZmVh OC4uOTE1OTVmNyAxMDA2NDQKLS0tLSBhL3NldHVwL2tleWJvYXJkc2hvcnRjdXQucHkKLSsrKyBi L3NldHVwL2tleWJvYXJkc2hvcnRjdXQucHkKLUBAIC00OSw3ICs0OSw4IEBAIGNsYXNzIEtleWJv YXJkU2hvcnRjdXRTZWxlY3Rpb24oR3RrLkJveCk6Ci0gICAgICAgICAjIHNlbGYucGFja19zdGFy dChsYWJlbCwgRmFsc2UsIFRydWUsIDQpCi0gCi0gICAgICAgICAjIHNob3J0Y3V0cyB2aWV3Ci0t ICAgICAgICBzZWxmLl9fc2hvcnRjdXRfdmlldyA9IEd0ay5UcmVlVmlldyhHdGsuTGlzdFN0b3Jl KEdPYmplY3QuVFlQRV9TVFJJTkcpKQotKyAgICAgICAgc2VsZi5fX3Nob3J0Y3V0X3ZpZXcgPSBH dGsuVHJlZVZpZXcoCi0rICAgICAgICAgICAgICAgIG1vZGVsID0gR3RrLkxpc3RTdG9yZShHT2Jq ZWN0LlRZUEVfU1RSSU5HKSkKLSAgICAgICAgIHNlbGYuX19zaG9ydGN1dF92aWV3LnNldF9zaXpl X3JlcXVlc3QoLTEsIDEwMCkKLSAgICAgICAgIHJlbmRlcmVyID0gR3RrLkNlbGxSZW5kZXJlclRl eHQoKQotICAgICAgICAgY29sdW1uID0gR3RrLlRyZWVWaWV3Q29sdW1uKF8oIktleWJvYXJkIHNo b3J0Y3V0cyIpLCByZW5kZXJlciwgdGV4dCA9IDApCi1AQCAtNjMsNyArNjQsNyBAQCBjbGFzcyBL ZXlib2FyZFNob3J0Y3V0U2VsZWN0aW9uKEd0ay5Cb3gpOgotIAotICAgICAgICAgIyBrZXkgY29k ZQotICAgICAgICAgaGJveCA9IEd0ay5Cb3gob3JpZW50YXRpb249R3RrLk9yaWVudGF0aW9uLkhP UklaT05UQUwpCi0tICAgICAgICBsYWJlbCA9IEd0ay5MYWJlbChfKCJLZXkgY29kZToiKSkKLSsg ICAgICAgIGxhYmVsID0gR3RrLkxhYmVsKGxhYmVsID0gXygiS2V5IGNvZGU6IikpCi0gICAgICAg ICBsYWJlbC5zZXRfanVzdGlmeShHdGsuSnVzdGlmaWNhdGlvbi5MRUZUKQotICAgICAgICAgbGFi ZWwuc2V0X2FsaWdubWVudCgwLjAsIDAuNSkKLSAgICAgICAgIGhib3gucGFja19zdGFydChsYWJl bCwgRmFsc2UsIFRydWUsIDQpCi1AQCAtNzEsMTkgKzcyLDE5IEBAIGNsYXNzIEtleWJvYXJkU2hv cnRjdXRTZWxlY3Rpb24oR3RrLkJveCk6Ci0gICAgICAgICBzZWxmLl9fa2V5Y29kZV9lbnRyeSA9 IEd0ay5FbnRyeSgpCi0gICAgICAgICBzZWxmLl9fa2V5Y29kZV9lbnRyeS5jb25uZWN0KCJub3Rp Znk6OnRleHQiLCBzZWxmLl9fa2V5Y29kZV9lbnRyeV9ub3RpZnlfY2IpCi0gICAgICAgICBoYm94 LnBhY2tfc3RhcnQoc2VsZi5fX2tleWNvZGVfZW50cnksIFRydWUsIFRydWUsIDQpCi0tICAgICAg ICBzZWxmLl9fa2V5Y29kZV9idXR0b24gPSBHdGsuQnV0dG9uKCIuLi4iKQotKyAgICAgICAgc2Vs Zi5fX2tleWNvZGVfYnV0dG9uID0gR3RrLkJ1dHRvbihsYWJlbCA9ICIuLi4iKQotICAgICAgICAg c2VsZi5fX2tleWNvZGVfYnV0dG9uLmNvbm5lY3QoImNsaWNrZWQiLCBzZWxmLl9fa2V5Y29kZV9i dXR0b25fY2xpY2tlZF9jYikKLSAgICAgICAgIGhib3gucGFja19zdGFydChzZWxmLl9fa2V5Y29k ZV9idXR0b24sIEZhbHNlLCBUcnVlLCA0KQotICAgICAgICAgc2VsZi5wYWNrX3N0YXJ0KGhib3gs IEZhbHNlLCBUcnVlLCA0KQotIAotICAgICAgICAgIyBtb2RpZmllcnMKLSAgICAgICAgIGhib3gg PSBHdGsuQm94KG9yaWVudGF0aW9uPUd0ay5PcmllbnRhdGlvbi5IT1JJWk9OVEFMKQotLSAgICAg ICAgbGFiZWwgPSBHdGsuTGFiZWwoXygiTW9kaWZpZXJzOiIpKQotKyAgICAgICAgbGFiZWwgPSBH dGsuTGFiZWwobGFiZWwgPSBfKCJNb2RpZmllcnM6IikpCi0gICAgICAgICBsYWJlbC5zZXRfanVz dGlmeShHdGsuSnVzdGlmaWNhdGlvbi5MRUZUKQotICAgICAgICAgbGFiZWwuc2V0X2FsaWdubWVu dCgwLjAsIDAuNSkKLSAgICAgICAgIGhib3gucGFja19zdGFydChsYWJlbCwgRmFsc2UsIFRydWUs IDQpCi0gCi0tICAgICAgICB0YWJsZSA9IEd0ay5UYWJsZSg0LCAyKQotKyAgICAgICAgdGFibGUg PSBHdGsuVGFibGUobl9yb3dzID0gNCwgbl9jb2x1bW5zID0gMikKLSAgICAgICAgIHNlbGYuX19t b2RpZmllcl9idXR0b25zID0gW10KLSAgICAgICAgIHNlbGYuX19tb2RpZmllcl9idXR0b25zLmFw cGVuZCgoIkNvbnRyb2wiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBHdGsuQ2hlY2tCdXR0b24ubmV3X3dpdGhfbW5lbW9uaWMoIl9Db250cm9sIiksCi1AQCAtMjUw LDggKzI1MSwxMCBAQCBjbGFzcyBLZXlib2FyZFNob3J0Y3V0U2VsZWN0aW9uKEd0ay5Cb3gpOgot IAotICAgICBkZWYgX19rZXljb2RlX2J1dHRvbl9jbGlja2VkX2NiKHNlbGYsIGJ1dHRvbik6Ci0g ICAgICAgICBvdXQgPSBbXQotLSAgICAgICAgZGxnID0gR3RrLk1lc3NhZ2VEaWFsb2cocGFyZW50 ID0gc2VsZi5nZXRfdG9wbGV2ZWwoKSwgYnV0dG9ucyA9IEd0ay5CdXR0b25zVHlwZS5DTE9TRSkK LS0gICAgICAgIG1lc3NhZ2UgPSBfKCJQbGVhc2UgcHJlc3MgYSBrZXkgKG9yIGEga2V5IGNvbWJp bmF0aW9uKS5cblRoZSBkaWFsb2cgd2lsbCBiZSBjbG9zZWQgd2hlbiB0aGUga2V5IGlzIHJlbGVh c2VkLiIpCi0rICAgICAgICBkbGcgPSBHdGsuTWVzc2FnZURpYWxvZyh0cmFuc2llbnRfZm9yID0g c2VsZi5nZXRfdG9wbGV2ZWwoKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1 dHRvbnMgPSBHdGsuQnV0dG9uc1R5cGUuQ0xPU0UpCi0rICAgICAgICBtZXNzYWdlID0gXygiUGxl YXNlIHByZXNzIGEga2V5IChvciBhIGtleSBjb21iaW5hdGlvbikuXG4iIFwKLSsgICAgICAgICAg ICAgICAgICAgICJUaGUgZGlhbG9nIHdpbGwgYmUgY2xvc2VkIHdoZW4gdGhlIGtleSBpcyByZWxl YXNlZC4iKQotICAgICAgICAgZGxnLnNldF9tYXJrdXAobWVzc2FnZSkKLSAgICAgICAgIGRsZy5z ZXRfdGl0bGUoXygiUGxlYXNlIHByZXNzIGEga2V5IChvciBhIGtleSBjb21iaW5hdGlvbikiKSkK LSAgICAgICAgIHN3ID0gR3RrLlNjcm9sbGVkV2luZG93KCkKLUBAIC0yNjUsNyArMjY4LDcgQEAg Y2xhc3MgS2V5Ym9hcmRTaG9ydGN1dFNlbGVjdGlvbihHdGsuQm94KToKLSAgICAgICAgIG1vZGVs ID0gR3RrLkxpc3RTdG9yZShHT2JqZWN0LlRZUEVfSU5ULAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEdPYmplY3QuVFlQRV9VSU5ULAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEdPYmplY3QuVFlQRV9VSU5UKQotLSAgICAgICAgYWNjZWxfdmlldyA9IEd0ay5UcmVlVmll dyhtb2RlbCkKLSsgICAgICAgIGFjY2VsX3ZpZXcgPSBHdGsuVHJlZVZpZXcobW9kZWwgPSBtb2Rl bCkKLSAgICAgICAgIHN3LmFkZChhY2NlbF92aWV3KQotICAgICAgICAgY29sdW1uID0gR3RrLlRy ZWVWaWV3Q29sdW1uKCkKLSAgICAgICAgIHJlbmRlcmVyID0gR3RrLkNlbGxSZW5kZXJlckFjY2Vs KGFjY2VsX21vZGU9R3RrLkNlbGxSZW5kZXJlckFjY2VsTW9kZS5PVEhFUiwKLUBAIC0zMTUsOCAr MzE4LDkgQEAgY2xhc3MgS2V5Ym9hcmRTaG9ydGN1dFNlbGVjdGlvbihHdGsuQm94KToKLSAgICAg ICAgIHNlbGYuX19hcHBseV9idXR0b24uc2V0X3NlbnNpdGl2ZShGYWxzZSkKLSAKLSBjbGFzcyBL ZXlib2FyZFNob3J0Y3V0U2VsZWN0aW9uRGlhbG9nKEd0ay5EaWFsb2cpOgotLSAgICBkZWYgX19p bml0X18oc2VsZiwgdGl0bGUgPSBOb25lLCBwYXJlbnQgPSBOb25lLCBmbGFncyA9IDAsIGJ1dHRv bnMgPSBOb25lKToKLS0gICAgICAgIHN1cGVyKEtleWJvYXJkU2hvcnRjdXRTZWxlY3Rpb25EaWFs b2csIHNlbGYpLl9faW5pdF9fKHRpdGxlLCBwYXJlbnQsIGZsYWdzLCBidXR0b25zKQotKyAgICBk ZWYgX19pbml0X18oc2VsZiwgdGl0bGUgPSBOb25lLCB0cmFuc2llbnRfZm9yID0gTm9uZSwgZmxh Z3MgPSAwKToKLSsgICAgICAgIHN1cGVyKEtleWJvYXJkU2hvcnRjdXRTZWxlY3Rpb25EaWFsb2cs IHNlbGYpLl9faW5pdF9fKAotKyAgICAgICAgICAgICAgICB0aXRsZSA9IHRpdGxlLCB0cmFuc2ll bnRfZm9yID0gdHJhbnNpZW50X2ZvciwgZmxhZ3MgPSBmbGFncykKLSAgICAgICAgIHNlbGYuX19z ZWxlY3Rpb25fdmlldyA9IEtleWJvYXJkU2hvcnRjdXRTZWxlY3Rpb24oKQotICAgICAgICAgc2Vs Zi52Ym94LnBhY2tfc3RhcnQoc2VsZi5fX3NlbGVjdGlvbl92aWV3LCBGYWxzZSwgVHJ1ZSwgMCkK LSAgICAgICAgIHNlbGYudmJveC5zaG93X2FsbCgpCi1AQCAtMzMzLDEwICszMzcsMTAgQEAgY2xh c3MgS2V5Ym9hcmRTaG9ydGN1dFNlbGVjdGlvbkRpYWxvZyhHdGsuRGlhbG9nKToKLSAKLSAKLSBp ZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgotLSAgICBkbGcgPSBLZXlib2FyZFNob3J0Y3V0U2Vs ZWN0aW9uRGlhbG9nKAotLSAgICAgICAgdGl0bGUgPSAiU2VsZWN0IHRlc3QiLAotLSAgICAgICAg YnV0dG9ucyA9IChfKCJfQ2FuY2VsIiksIEd0ay5SZXNwb25zZVR5cGUuQ0FOQ0VMLAotLSAgICAg ICAgICAgICAgICAgICBfKCJfT0siKSwgR3RrLlJlc3BvbnNlVHlwZS5PSykpCi0rICAgIGRsZyA9 IEtleWJvYXJkU2hvcnRjdXRTZWxlY3Rpb25EaWFsb2codGl0bGUgPSAiU2VsZWN0IHRlc3QiKQot KyAgICBidXR0b25zID0gKF8oIl9DYW5jZWwiKSwgR3RrLlJlc3BvbnNlVHlwZS5DQU5DRUwsCi0r ICAgICAgICAgICAgICAgXygiX09LIiksIEd0ay5SZXNwb25zZVR5cGUuT0spCi0rICAgIGRsZy5h ZGRfYnV0dG9ucyhidXR0b25zKQotICAgICBkbGcuYWRkX3Nob3J0Y3V0KCJDb250cm9sK1NoaWZ0 K3NwYWNlIikKLSAgICAgZGxnLnNldF9zaG9ydGN1dHMoTm9uZSkKLSAgICAgcHJpbnQoKGRsZy5y dW4oKSkpCi1kaWZmIC0tZ2l0IGEvc2V0dXAvbWFpbi5weSBiL3NldHVwL21haW4ucHkKLWluZGV4 IDFkODlmM2QuLjFiYzljZmIgMTAwNjQ0Ci0tLS0gYS9zZXR1cC9tYWluLnB5Ci0rKysgYi9zZXR1 cC9tYWluLnB5Ci1AQCAtNzAsMTAgKzcwLDEyIEBAIGNsYXNzIFNldHVwKG9iamVjdCk6Ci0gICAg IGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgIHN1cGVyKFNldHVwLCBzZWxmKS5fX2luaXRf XygpCi0gCi0tICAgICAgICBzZWxmLl9fc2V0dGluZ3NfZ2VuZXJhbCA9IEdpby5TZXR0aW5ncygi b3JnLmZyZWVkZXNrdG9wLmlidXMuZ2VuZXJhbCIpOwotKyAgICAgICAgc2VsZi5fX3NldHRpbmdz X2dlbmVyYWwgPSBHaW8uU2V0dGluZ3MoCi0rICAgICAgICAgICAgICAgIHNjaGVtYSA9ICJvcmcu ZnJlZWRlc2t0b3AuaWJ1cy5nZW5lcmFsIik7Ci0gICAgICAgICBzZWxmLl9fc2V0dGluZ3NfaG90 a2V5ID0gR2lvLlNldHRpbmdzKAotLSAgICAgICAgICAgICAgICAib3JnLmZyZWVkZXNrdG9wLmli dXMuZ2VuZXJhbC5ob3RrZXkiKTsKLS0gICAgICAgIHNlbGYuX19zZXR0aW5nc19wYW5lbCA9IEdp by5TZXR0aW5ncygib3JnLmZyZWVkZXNrdG9wLmlidXMucGFuZWwiKTsKLSsgICAgICAgICAgICAg ICAgc2NoZW1hID0gIm9yZy5mcmVlZGVza3RvcC5pYnVzLmdlbmVyYWwuaG90a2V5Iik7Ci0rICAg ICAgICBzZWxmLl9fc2V0dGluZ3NfcGFuZWwgPSBHaW8uU2V0dGluZ3MoCi0rICAgICAgICAgICAg ICAgIHNjaGVtYSA9ICJvcmcuZnJlZWRlc2t0b3AuaWJ1cy5wYW5lbCIpOwotIAotICAgICAgICAg IyBJQnVzLkJ1cygpIGNhbGxzIGlidXNfYnVzX25ldygpLgotICAgICAgICAgIyBHdGsuQnVpbGRl cigpLmFkZF9mcm9tX2ZpbGUoKSBhbHNvIGNhbGxzIGlidXNfYnVzX25ld19hc3luYygpCi1AQCAt MzAwLDcgKzMwMiw3IEBAIGNsYXNzIFNldHVwKG9iamVjdCk6Ci0gICAgIGRlZiBfX2J1dHRvbl9l bmdpbmVfYWJvdXRfY2Ioc2VsZiwgYnV0dG9uKToKLSAgICAgICAgIGVuZ2luZSA9IHNlbGYuX190 cmVldmlldy5nZXRfYWN0aXZlX2VuZ2luZSgpCi0gICAgICAgICBpZiBlbmdpbmU6Ci0tICAgICAg ICAgICAgYWJvdXQgPSBFbmdpbmVBYm91dChlbmdpbmUpCi0rICAgICAgICAgICAgYWJvdXQgPSBF bmdpbmVBYm91dChlbmdpbmUgPSBlbmdpbmUsIHRyYW5zaWVudF9mb3IgPSBzZWxmLl9fd2luZG93 KQotICAgICAgICAgICAgIGFib3V0LnJ1bigpCi0gICAgICAgICAgICAgYWJvdXQuZGVzdHJveSgp Ci0gCi1AQCAtMzI4LDcgKzMzMCw3IEBAIGNsYXNzIFNldHVwKG9iamVjdCk6Ci0gICAgICAgICAg ICAgcmV0dXJuCi0gCi0gICAgICAgICBtZXNzYWdlID0gXygiVGhlIElCdXMgZGFlbW9uIGlzIG5v dCBydW5uaW5nLiBEbyB5b3Ugd2lzaCB0byBzdGFydCBpdD8iKQotLSAgICAgICAgZGxnID0gR3Rr Lk1lc3NhZ2VEaWFsb2codHlwZSA9IEd0ay5NZXNzYWdlVHlwZS5RVUVTVElPTiwKLSsgICAgICAg IGRsZyA9IEd0ay5NZXNzYWdlRGlhbG9nKG1lc3NhZ2VfdHlwZSA9IEd0ay5NZXNzYWdlVHlwZS5R VUVTVElPTiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbnMgPSBHdGsu QnV0dG9uc1R5cGUuWUVTX05PLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4 dCA9IG1lc3NhZ2UpCi0gICAgICAgICBpZCA9IGRsZy5ydW4oKQotQEAgLTM1NCw3ICszNTYsNyBA QCBjbGFzcyBTZXR1cChvYmplY3QpOgotICAgICAgICAgICAgICAgICAiICBleHBvcnQgWE1PRElG SUVSUz1AaW09aWJ1c1xuIgotICAgICAgICAgICAgICAgICAiICBleHBvcnQgUVRfSU1fTU9EVUxF PWlidXMiCi0gICAgICAgICAgICAgICAgICkKLS0gICAgICAgICAgICBkbGcgPSBHdGsuTWVzc2Fn ZURpYWxvZyh0eXBlID0gR3RrLk1lc3NhZ2VUeXBlLklORk8sCi0rICAgICAgICAgICAgZGxnID0g R3RrLk1lc3NhZ2VEaWFsb2cobWVzc2FnZV90eXBlID0gR3RrLk1lc3NhZ2VUeXBlLklORk8sCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9ucyA9IEd0ay5CdXR0b25z VHlwZS5PSywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gbWVz c2FnZSkKLSAgICAgICAgICAgICBpZCA9IGRsZy5ydW4oKQotQEAgLTM2Myw3ICszNjUsNyBAQCBj bGFzcyBTZXR1cChvYmplY3QpOgotICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAjIFRyYW5z bGF0b3JzOiAlZCA9PSA1IGN1cnJlbnRseQotICAgICAgICAgICAgIG1lc3NhZ2UgPSBfKCJJQnVz IGRhZW1vbiBjb3VsZCBub3QgYmUgc3RhcnRlZCBpbiAlZCBzZWNvbmRzIikKLS0gICAgICAgICAg ICBkbGcgPSBHdGsuTWVzc2FnZURpYWxvZyh0eXBlID0gR3RrLk1lc3NhZ2VUeXBlLklORk8sCi0r ICAgICAgICAgICAgZGxnID0gR3RrLk1lc3NhZ2VEaWFsb2cobWVzc2FnZV90eXBlID0gR3RrLk1l c3NhZ2VUeXBlLklORk8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnV0 dG9ucyA9IEd0ay5CdXR0b25zVHlwZS5PSywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0ZXh0ID0gbWVzc2FnZSAlIHRpbWVvdXQpCi0gICAgICAgICAgICAgaWQgPSBkbGcu cnVuKCkKLUBAIC0zNzgsNyArMzgwLDkgQEAgY2xhc3MgU2V0dXAob2JqZWN0KToKLSAgICAgICAg ICMgVHJhbnNsYXRvcnM6IFRpdGxlIG9mIHRoZSB3aW5kb3cKLSAgICAgICAgIHRpdGxlMiA9IF8o InN3aXRjaGluZyBpbnB1dCBtZXRob2RzIikKLSAgICAgICAgIHRpdGxlID0gdGl0bGUxICUgdGl0 bGUyCi0tICAgICAgICBkaWFsb2cgPSBrZXlib2FyZHNob3J0Y3V0LktleWJvYXJkU2hvcnRjdXRT ZWxlY3Rpb25EaWFsb2coYnV0dG9ucyA9IGJ1dHRvbnMsIHRpdGxlID0gdGl0bGUpCi0rICAgICAg ICBkaWFsb2cgPSBrZXlib2FyZHNob3J0Y3V0LktleWJvYXJkU2hvcnRjdXRTZWxlY3Rpb25EaWFs b2coCi0rICAgICAgICAgICAgICAgIHRpdGxlID0gdGl0bGUsIHRyYW5zaWVudF9mb3IgPSBzZWxm Ll9fd2luZG93KQotKyAgICAgICAgZGlhbG9nLmFkZF9idXR0b25zKCpidXR0b25zKQotICAgICAg ICAgdGV4dCA9IGVudHJ5LmdldF90ZXh0KCkKLSAgICAgICAgIGlmIHRleHQ6Ci0gICAgICAgICAg ICAgc2hvcnRjdXRzID0gdGV4dC5zcGxpdCgiOyAiKQotQEAgLTQwOSw5ICs0MTMsMTAgQEAgY2xh c3MgU2V0dXAob2JqZWN0KToKLSAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgIHNl bGYuX19idXMucmVnaXN0ZXJfc3RhcnRfZW5naW5lKGRhdGFbREFUQV9MQU5HXSwgZGF0YVtEQVRB X05BTUVdKQotICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLS0gICAgICAgICAg ICAgICAgZGxnID0gR3RrLk1lc3NhZ2VEaWFsb2codHlwZSA9IEd0ay5NZXNzYWdlVHlwZS5FUlJP UiwKLSsgICAgICAgICAgICAgICAgZGxnID0gR3RrLk1lc3NhZ2VEaWFsb2cobWVzc2FnZV90eXBl ID0gR3RrLk1lc3NhZ2VUeXBlLkVSUk9SLAotKyAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5z aWVudF9mb3IgPSBzZWxmLl9fd2luZG93LAotICAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRv bnMgPSBHdGsuQnV0dG9uc1R5cGUuQ0xPU0UsCi0tICAgICAgICAgICAgICAgICAgICAgICAgbWVz c2FnZV9mb3JtYXQgPSBzdHIoZSkpCi0rICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCA9IHN0 cihlKSkKLSAgICAgICAgICAgICAgICAgZGxnLnJ1bigpCi0gICAgICAgICAgICAgICAgIGRsZy5k ZXN0cm95KCkKLSAgICAgICAgICAgICAgICAgc2VsZi5fX2ZsdXNoX2d0a19ldmVudHMoKQotQEAg LTQyMCw5ICs0MjUsMTAgQEAgY2xhc3MgU2V0dXAob2JqZWN0KToKLSAgICAgICAgICAgICB0cnk6 Ci0gICAgICAgICAgICAgICAgIHNlbGYuX19idXMucmVnaXN0ZXJfc3RvcF9lbmdpbmUoZGF0YVtE QVRBX0xBTkddLCBkYXRhW0RBVEFfTkFNRV0pCi0gICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlv biBhcyBlOgotLSAgICAgICAgICAgICAgICBkbGcgPSBHdGsuTWVzc2FnZURpYWxvZyh0eXBlID0g R3RrLk1lc3NhZ2VUeXBlLkVSUk9SLAotKyAgICAgICAgICAgICAgICBkbGcgPSBHdGsuTWVzc2Fn ZURpYWxvZyhtZXNzYWdlX3R5cGUgPSBHdGsuTWVzc2FnZVR5cGUuRVJST1IsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgdHJhbnNpZW50X2ZvciA9IHNlbGYuX193aW5kb3csCi0gICAgICAgICAg ICAgICAgICAgICAgICAgYnV0dG9ucyA9IEd0ay5CdXR0b25zVHlwZS5DTE9TRSwKLS0gICAgICAg ICAgICAgICAgICAgICAgICBtZXNzYWdlX2Zvcm1hdCA9IHN0cihlKSkKLSsgICAgICAgICAgICAg ICAgICAgICAgICB0ZXh0ID0gc3RyKGUpKQotICAgICAgICAgICAgICAgICBkbGcucnVuKCkKLSAg ICAgICAgICAgICAgICAgZGxnLmRlc3Ryb3koKQotICAgICAgICAgICAgICAgICBzZWxmLl9fZmx1 c2hfZ3RrX2V2ZW50cygpCi1kaWZmIC0tZ2l0IGEvc2V0dXAvc2V0dXAudWkgYi9zZXR1cC9zZXR1 cC51aQotaW5kZXggYmI3ODQzMy4uZDc4MDFlYSAxMDA2NDQKLS0tLSBhL3NldHVwL3NldHVwLnVp Ci0rKysgYi9zZXR1cC9zZXR1cC51aQotQEAgLTYyLDYgKzYyLDggQEAKLSAgICAgPHByb3BlcnR5 IG5hbWU9InJlc2l6YWJsZSI+RmFsc2U8L3Byb3BlcnR5PgotICAgICA8cHJvcGVydHkgbmFtZT0i d2luZG93X3Bvc2l0aW9uIj5jZW50ZXItYWx3YXlzPC9wcm9wZXJ0eT4KLSAgICAgPHByb3BlcnR5 IG5hbWU9Imljb25fbmFtZSI+aWJ1cy1zZXR1cDwvcHJvcGVydHk+Ci0rICAgIDwhLS0gZm9yIEd0 a0ZvbnRDaG9vc2VyRGlhbG9nIC0tPgotKyAgICA8cHJvcGVydHkgbmFtZT0ibW9kYWwiPlRydWU8 L3Byb3BlcnR5PgotICAgICA8Y2hpbGQ+Ci0gICAgICAgPG9iamVjdCBjbGFzcz0iR3RrQm94IiBp ZD0idmJveDEiPgotICAgICAgICAgPHByb3BlcnR5IG5hbWU9Im9yaWVudGF0aW9uIj52ZXJ0aWNh bDwvcHJvcGVydHk+Ci0tLSAKLTEuOC41LjMKLQotRnJvbSBiMWI0ZTI5NDY2ODJlM2Q1M2FhMzk2 ZDg0NjljN2ZhMTZhMmRiY2E4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogZnVqaXdh cmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotRGF0ZTogRnJpLCAxMSBKdWwgMjAxNCAx MTo1MDowNCArMDkwMAotU3ViamVjdDogW1BBVENIXSBFeHBvcnQgdGhlICdJQlVTX1NFVFVQX1hJ RCcgZW52aXJvbm1lbnQgdmFyaWFibGUgZm9yIGVhY2gKLSBlbmdpbmUgc2V0dXAuCi0KLUZvbGxv dyBHTk9NRV9DT05UUk9MX0NFTlRFUl9YSUQuCi1odHRwczovL3dpa2kuZ25vbWUub3JnL0FsbGFu RGF5L0lNRUd1aWRlbGluZXMKLQotVEVTVD1zZXR1cAotCi1SZXZpZXcgVVJMOiBodHRwczovL2Nv ZGVyZXZpZXcuYXBwc3BvdC5jb20vMTEyOTIwMDQ0Ci0tLS0KLSBzZXR1cC9tYWluLnB5IHwgNiAr KysrKysKLSAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQgYS9z ZXR1cC9tYWluLnB5IGIvc2V0dXAvbWFpbi5weQotaW5kZXggMWJjOWNmYi4uZTRkZGQ0NSAxMDA2 NDQKLS0tLSBhL3NldHVwL21haW4ucHkKLSsrKyBiL3NldHVwL21haW4ucHkKLUBAIC0yOCw2ICsy OCw3IEBAIGltcG9ydCBzaWduYWwKLSBpbXBvcnQgc3lzCi0gaW1wb3J0IHRpbWUKLSAKLStmcm9t IGdpLnJlcG9zaXRvcnkgaW1wb3J0IEdka1gxMQotIGZyb20gZ2kucmVwb3NpdG9yeSBpbXBvcnQg R2lvCi0gZnJvbSBnaS5yZXBvc2l0b3J5IGltcG9ydCBHTGliCi0gZnJvbSBnaS5yZXBvc2l0b3J5 IGltcG9ydCBHdGsKLUBAIC0yMzMsNiArMjM0LDcgQEAgY2xhc3MgU2V0dXAob2JqZWN0KToKLSAg ICAgICAgICMgYWRkIGljb24gc2VhcmNoIHBhdGgKLSAgICAgICAgIHNlbGYuX193aW5kb3cgPSBz ZWxmLl9fYnVpbGRlci5nZXRfb2JqZWN0KCJ3aW5kb3dfcHJlZmVyZW5jZXMiKQotICAgICAgICAg c2VsZi5fX3dpbmRvdy5jb25uZWN0KCJkZWxldGUtZXZlbnQiLCBHdGsubWFpbl9xdWl0KQotKyAg ICAgICAgc2VsZi5fX3dpbmRvdy5jb25uZWN0KCJub3RpZnk6OndpbmRvdyIsIHNlbGYuX19nZGtf d2luZG93X3NldF9jYikKLSAKLSAgICAgICAgIHNlbGYuX19idXR0b25fY2xvc2UgPSBzZWxmLl9f YnVpbGRlci5nZXRfb2JqZWN0KCJidXR0b25fY2xvc2UiKQotICAgICAgICAgc2VsZi5fX2J1dHRv bl9jbG9zZS5jb25uZWN0KCJjbGlja2VkIiwgR3RrLm1haW5fcXVpdCkKLUBAIC0yNDgsNiArMjUw LDEwIEBAIGNsYXNzIFNldHVwKG9iamVjdCk6Ci0gICAgICAgICBzZWxmLl9faW5pdF9wYW5lbCgp Ci0gICAgICAgICBzZWxmLl9faW5pdF9nZW5lcmFsKCkKLSAKLSsgICAgZGVmIF9fZ2RrX3dpbmRv d19zZXRfY2Ioc2VsZiwgb2JqZWN0LCBwc3BlYyk6Ci0rICAgICAgICBzdHIgPSAnJXUnICUgR2Rr WDExLlgxMVdpbmRvdy5nZXRfeGlkKG9iamVjdC5nZXRfd2luZG93KCkpCi0rICAgICAgICBHTGli LnNldGVudignSUJVU19TRVRVUF9YSUQnLCBzdHIsIFRydWUpCi0rCi0gICAgIGRlZiBfX2NvbWJv Ym94X25vdGlmeV9hY3RpdmVfZW5naW5lX2NiKHNlbGYsIGNvbWJvYm94LCBwcm9wZXJ0eSk6Ci0g ICAgICAgICBlbmdpbmUgPSBzZWxmLl9fY29tYm9ib3guZ2V0X2FjdGl2ZV9lbmdpbmUoKQotICAg ICAgICAgYnV0dG9uID0gc2VsZi5fX2J1aWxkZXIuZ2V0X29iamVjdCgiYnV0dG9uX2VuZ2luZV9h ZGQiKQotLS0gCi0xLjguNS4zCi0KLUZyb20gOWIyMDA0ZWZjZDI2ZTExYmJkNTZjZjUxNjU2ZmUz MjZmYzExYmU4ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IGZ1aml3YXJhdCA8dGFr YW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLURhdGU6IE1vbiwgMTQgSnVsIDIwMTQgMTE6NDU6MjUg KzA5MDAKLVN1YmplY3Q6IFtQQVRDSF0gQ2FsbCBHTGliLnNldF9wcmduYW1lKCdpYnVzLXNldHVw JykgZm9yIGlidXMtc2V0dXAKLSBtYWluLnB5Ci0KLVRFU1Q9eGxzY2xpZW50cwotCi1SZXZpZXcg VVJMOiBodHRwczovL2NvZGVyZXZpZXcuYXBwc3BvdC5jb20vMTA4NTUwMDQzCi0tLS0KLSBzZXR1 cC9tYWluLnB5IHwgNiArKysrKy0KLSAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAx IGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9zZXR1cC9tYWluLnB5IGIvc2V0dXAvbWFpbi5w eQotaW5kZXggZTRkZGQ0NS4uOWJkMGFmMSAxMDA2NDQKLS0tLSBhL3NldHVwL21haW4ucHkKLSsr KyBiL3NldHVwL21haW4ucHkKLUBAIC0yOCw5ICsyOCwxMyBAQCBpbXBvcnQgc2lnbmFsCi0gaW1w b3J0IHN5cwotIGltcG9ydCB0aW1lCi0gCi0rZnJvbSBnaS5yZXBvc2l0b3J5IGltcG9ydCBHTGli Ci0rIyBzZXRfcHJnbmFtZSBiZWZvcmUgaW1wb3J0aW5nIG90aGVyIG1vZHVsZXMgdG8gc2hvdyB0 aGUgbmFtZSBpbiB3YXJuaW5nCi0rIyBtZXNzYWdlcyB3aGVuIGltcG9ydCBtb2R1bGVzIGFyZSBm YWlsZWQuCi0rR0xpYi5zZXRfcHJnbmFtZSgnaWJ1cy1zZXR1cCcpCi0rCi0gZnJvbSBnaS5yZXBv c2l0b3J5IGltcG9ydCBHZGtYMTEKLSBmcm9tIGdpLnJlcG9zaXRvcnkgaW1wb3J0IEdpbwotLWZy b20gZ2kucmVwb3NpdG9yeSBpbXBvcnQgR0xpYgotIGZyb20gZ2kucmVwb3NpdG9yeSBpbXBvcnQg R3RrCi0gZnJvbSBnaS5yZXBvc2l0b3J5IGltcG9ydCBJQnVzCi0gZnJvbSBvcyBpbXBvcnQgcGF0 aAotLS0gCi0xLjguNS4zCiAKCmRpZmYgLS1naXQgYS9pYnVzLXh4LWJyaWRnZS1ob3RrZXkucGF0 Y2ggYi9pYnVzLXh4LWJyaWRnZS1ob3RrZXkucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IGMzZDg2NGYuLjAwMDAwMDAKLS0tIGEvaWJ1cy14eC1icmlkZ2UtaG90a2V5LnBhdGNo CisrKyAvZGV2L251bGwKQEAgLTEsMjI5NCArMCwwIEBACi1Gcm9tIDE4YWQxMGU2ZGQ4OWEwMzI3 ZmEyOTUzNWYwM2ZhNTFiOTUzZTc2MzUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBm dWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci1EYXRlOiBNb24sIDI4IE5vdiAy MDExIDEyOjIzOjA2ICswOTAwCi1TdWJqZWN0OiBbUEFUQ0hdIEFkZCBhIGJyaWRnZSBob3RrZXkg d2hpY2ggdXNlIHByZXYtbmV4dCBlbmdpbmVzIGluc3RlYWQKLSBvZiBvbi1vZmYuCi0KLS0tLQot IGJ1cy9NYWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgfCAgIDIwICstCi0gYnVzL2lidXNpbXBs LmMgICAgICAgICAgICAgICAgICB8ICA1OTggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tCi0gYnVzL2lucHV0Y29udGV4dC5jICAgICAgICAgICAgICB8ICAgODEgKysrKysr Ci0gYnVzL2lucHV0Y29udGV4dC5oICAgICAgICAgICAgICB8ICAgMjIgKysKLSBidXMvcmVnaXN0 cnkuYyAgICAgICAgICAgICAgICAgIHwgICA2MSArKysrCi0gYnVzL3JlZ2lzdHJ5LmggICAgICAg ICAgICAgICAgICB8ICAgMTAgKwotIGNvbmZpZ3VyZS5hYyAgICAgICAgICAgICAgICAgICAgfCAg IDMxICsrCi0gZGF0YS9NYWtlZmlsZS5hbSAgICAgICAgICAgICAgICB8ICAgIDYgKy0KLSBkYXRh L2lidXMuc2NoZW1hcy5pbiAgICAgICAgICAgIHwgIDI5OCAtLS0tLS0tLS0tLS0tLS0tLS0tCi0g ZGF0YS9pYnVzLnNjaGVtYXMuaW4uaW4gICAgICAgICB8ICAzMTEgKysrKysrKysrKysrKysrKysr KysKLSBpYnVzL19jb25maWcucHkuaW4gICAgICAgICAgICAgIHwgICAgNiArCi0gaWJ1cy9pbnB1 dGNvbnRleHQucHkgICAgICAgICAgICB8ICAgMTcgKy0KLSBpYnVzL2ludGVyZmFjZS9paW5wdXRj b250ZXh0LnB5IHwgICAgNyArLQotIGlidXMveGtieG1sLnB5LmluICAgICAgICAgICAgICAgfCAg ICA0ICsKLSBzZXR1cC9lbmdpbmVjb21ib2JveC5weSAgICAgICAgIHwgICAgMyArCi0gc2V0dXAv ZW5naW5ldHJlZXZpZXcucHkgICAgICAgICB8ICAgIDggKy0KLSBzZXR1cC9tYWluLnB5ICAgICAg ICAgICAgICAgICAgIHwgICA0NSArKysKLSBzZXR1cC9zZXR1cC51aSAgICAgICAgICAgICAgICAg IHwgICA2NCArKysrLQotIHNyYy9NYWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgfCAgIDE4ICst Ci0gc3JjL2lidXNob3RrZXkuYyAgICAgICAgICAgICAgICB8ICAgMTEgKwotIHNyYy9pYnVzaG90 a2V5LmggICAgICAgICAgICAgICAgfCAgIDExICsKLSBzcmMvaWJ1c2lucHV0Y29udGV4dC5jICAg ICAgICAgIHwgICAyNyArKwotIHNyYy9pYnVzaW5wdXRjb250ZXh0LmggICAgICAgICAgfCAgIDEy ICsKLSBzcmMvaWJ1c3V0aWwuYyAgICAgICAgICAgICAgICAgIHwgICAxMiArCi0gc3JjL2lidXN1 dGlsLmggICAgICAgICAgICAgICAgICB8ICAgMTQgKwotIHVpL2d0ay9wYW5lbC5weSAgICAgICAg ICAgICAgICAgfCAgMzM1ICsrKysrKysrKysrKysrKysrKysrLS0KLSB4a2IvTWFrZWZpbGUuYW0g ICAgICAgICAgICAgICAgIHwgICAgMiArCi0geGtiL2lidXMtZW5naW5lLXhrYi1tYWluLmMgICAg ICB8ICAgMTYgKwotIHhrYi94a2J4bWwuYyAgICAgICAgICAgICAgICAgICAgfCAgIDEwICstCi0g MjkgZmlsZXMgY2hhbmdlZCwgMTY1MyBpbnNlcnRpb25zKCspLCA0MDcgZGVsZXRpb25zKC0pCi0g ZGVsZXRlIG1vZGUgMTAwNjQ0IGRhdGEvaWJ1cy5zY2hlbWFzLmluCi0gY3JlYXRlIG1vZGUgMTAw NjQ0IGRhdGEvaWJ1cy5zY2hlbWFzLmluLmluCi0KLWRpZmYgLS1naXQgYS9idXMvTWFrZWZpbGUu YW0gYi9idXMvTWFrZWZpbGUuYW0KLWluZGV4IDA3NGI0NTYuLjBlZmFhMWIgMTAwNjQ0Ci0tLS0g YS9idXMvTWFrZWZpbGUuYW0KLSsrKyBiL2J1cy9NYWtlZmlsZS5hbQotQEAgLTI5LDE1ICsyOSwx NyBAQCBJTkNMVURFUyA9ICAgICAgICAgICAgICAgIFwKLSAJLUkkKHRvcF9idWlsZGRpcikvc3Jj IFwKLSAJJChOVUxMKQotIAotLUFNX0NGTEFHUyA9ICAgICAgICAgICAgICAgICAgICAgICAgXAot LQlAR0xJQjJfQ0ZMQUdTQCAgICAgICAgICAgICAgICAgXAotLQlAR0lPMl9DRkxBR1NAICAgICAg ICAgICAgICAgICAgXAotLQlAR1RIUkVBRDJfQ0ZMQUdTQCAgICAgICAgICAgICAgXAotLQktREdf TE9HX0RPTUFJTj1cIklCVVNcIiAgICAgICAgXAotLQktRFBLR0RBVEFESVI9XCIkKHBrZ2RhdGFk aXIpXCIgXAotLQktRExJQkVYRUNESVI9XCIkKGxpYmV4ZWNkaXIpXCIgXAotLQktREJJTkRJUj1c IkBiaW5kaXJAXCIgICAgICAgICAgXAotLQkkKElOQ0xVREVTKSAgICAgICAgICAgICAgICAgICAg XAotK0FNX0NGTEFHUyA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAotKwlAR0xJQjJfQ0ZMQUdTQCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0rCUBHSU8yX0NGTEFHU0AgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSsJQEdUSFJFQUQyX0NG TEFHU0AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotKwkt REdfTE9HX0RPTUFJTj1cIklCVVNcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCi0rCS1EUEtHREFUQURJUj1cIiQocGtnZGF0YWRpcilcIiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwKLSsJLURMSUJFWEVDRElSPVwiJChsaWJleGVjZGlyKVwiICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotKwktREJJTkRJUj1cIkBiaW5kaXJAXCIgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0rCS1EVVNFX0JSSURHRV9I T1RLRVk9JChVU0VfQlJJREdFX0hPVEtFWSkgICAgICAgICAgICAgICAgICAgICAgIFwKLSsJLURE RUZBVUxUX0JSSURHRV9FTkdJTkVfTkFNRT1cIiQoREVGQVVMVF9CUklER0VfRU5HSU5FX05BTUUp XCIgXAotKwkkKElOQ0xVREVTKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCi0gCSQoTlVMTCkKLSBBTV9MREFERCA9ICAgICAgICAgICAgICAgICAg XAotIAlAR09CSkVDVDJfTElCU0AgICAgICAgICBcCi1kaWZmIC0tZ2l0IGEvYnVzL2lidXNpbXBs LmMgYi9idXMvaWJ1c2ltcGwuYwotaW5kZXggMDU5ZDY2MC4uNjc3NjFmYiAxMDA2NDQKLS0tLSBh L2J1cy9pYnVzaW1wbC5jCi0rKysgYi9idXMvaWJ1c2ltcGwuYwotQEAgLTIwLDEyICsyMCwxNyBA QAotICAqIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgotICAqLwotIAotKyNpZmRlZiBIQVZF X0NPTkZJR19ICi0rI2luY2x1ZGUgPGNvbmZpZy5oPgotKyNlbmRpZgotKwotICNpbmNsdWRlIDx1 bmlzdGQuaD4KLSAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0gI2luY2x1ZGUgPHN5cy93YWl0Lmg+ Ci0gI2luY2x1ZGUgPHNpZ25hbC5oPgotICNpbmNsdWRlIDxsb2NhbGUuaD4KLSAjaW5jbHVkZSA8 c3RyaW5ncy5oPgotKyNpbmNsdWRlIDxzdHJpbmcuaD4KLSAjaW5jbHVkZSAidHlwZXMuaCIKLSAj aW5jbHVkZSAiaWJ1c2ltcGwuaCIKLSAjaW5jbHVkZSAiZGJ1c2ltcGwuaCIKLUBAIC03OSw2ICs4 NCwxMSBAQCBzdHJ1Y3QgX0J1c0lCdXNJbXBsIHsKLSAgICAgLyogZW5naW5lLXNwZWNpZmljIGhv dGtleXMgKi8KLSAgICAgSUJ1c0hvdGtleVByb2ZpbGUgKmVuZ2luZXNfaG90a2V5X3Byb2ZpbGU7 Ci0gICAgIEdIYXNoVGFibGUgICAgICAqaG90a2V5X3RvX2VuZ2luZXNfbWFwOwotKwotKyNpZiBV U0VfQlJJREdFX0hPVEtFWQotKyAgICBJQnVzRW5naW5lRGVzYyAqcHJldl9ob3RrZXlfZW5naW5l OwotKyAgICBndWludCAgICAgICAgICAgeGtiX2dyb3VwX2xlbmd0aDsKLSsjZW5kaWYKLSB9Owot IAotIHN0cnVjdCBfQnVzSUJ1c0ltcGxDbGFzcyB7Ci1AQCAtOTksNiArMTA5LDggQEAgZW51bSB7 Ci0gc3RhdGljIGd1aW50ICAgICAgICAgICAgX3NpZ25hbHNbTEFTVF9TSUdOQUxdID0geyAwIH07 Ci0gKi8KLSAKLStzdGF0aWMgZ2NoYXIgICAgICAgICAgICpfYnJpZGdlX3RyaWdnZXJfa2V5cyA9 IE5VTEw7Ci0rCi0gLyogZnVuY3Rpb25zIHByb3RvdHlwZSAqLwotIHN0YXRpYyB2b2lkICAgICAg YnVzX2lidXNfaW1wbF9kZXN0cm95ICAgICAgICAgICAoQnVzSUJ1c0ltcGwgICAgICAgICppYnVz KTsKLSBzdGF0aWMgdm9pZCAgICAgIGJ1c19pYnVzX2ltcGxfc2VydmljZV9tZXRob2RfY2FsbAot QEAgLTI4NSw2ICsyOTcsMTEyIEBAIF9wYW5lbF9kZXN0cm95X2NiIChCdXNQYW5lbFByb3h5ICpw YW5lbCwKLSAgICAgZ19vYmplY3RfdW5yZWYgKHBhbmVsKTsKLSB9Ci0gCi0rLyoqCi0rICogX2Zv cmVhY2hfcmVtb3ZlX2VuZ2luZV9ob3RrZXk6Ci0rICoKLSsgKiBSZW1vdmUgdGhlIGVuZ2luZS1z cGVjaWZpYyBob3Qga2V5IG9mIHRoZSBlbmdpbmUsIGFuZCB1cGRhdGUgaWJ1cy0+ZW5naW5lc19o b3RrZXlfcHJvZmlsZS4KLSsgKi8KLStnYm9vbGVhbgotK19mb3JlYWNoX3JlbW92ZV9lbmdpbmVf aG90a2V5IChncG9pbnRlciAgICAgICAga2V5LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBncG9pbnRlciAgICAgICAgdmFsdWUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGdwb2ludGVyICAgICAgICBkYXRhKQotK3sKLSsgICAgR1F1YXJrIGV2ZW50ID0gR1BPSU5U RVJfVE9fVUlOVCAodmFsdWUpOwotKyAgICBzdHJ1Y3QgX2ltcGxfYW5kX2Rlc2MgewotKyAgICAg ICAgQnVzSUJ1c0ltcGwgICAgKmlidXM7Ci0rICAgICAgICBJQnVzRW5naW5lRGVzYyAqZGVzYzsK LSsgICAgfSAqaWQgPSAoc3RydWN0IF9pbXBsX2FuZF9kZXNjICopIGRhdGE7Ci0rICAgIEJ1c0lC dXNJbXBsICppYnVzID0gaWQtPmlidXM7Ci0rICAgIElCdXNFbmdpbmVEZXNjICpkZXNjID0gaWQt PmRlc2M7Ci0rICAgIEdMaXN0ICplbmdpbmVfbGlzdDsKLSsKLSsgICAgZ19hc3NlcnQgKGlidXMg IT0gTlVMTCk7Ci0rICAgIGdfYXNzZXJ0IChkZXNjICE9IE5VTEwpOwotKwotKyAgICBpZiAoZXZl bnQgPT0gMCkgewotKyAgICAgICAgcmV0dXJuIEZBTFNFOwotKyAgICB9Ci0rCi0rICAgIGVuZ2lu ZV9saXN0ID0gZ19oYXNoX3RhYmxlX2xvb2t1cCAoaWJ1cy0+aG90a2V5X3RvX2VuZ2luZXNfbWFw LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdVSU5UX1RPX1BPSU5U RVIgKGV2ZW50KSk7Ci0rCi0rICAgIC8qIEFzIHdlIHdpbGwgcmVidWlsZCB0aGUgZW5naW5lcyBo b3RrZXkgbWFwIHdoZW5ldmVyIGFuIGVuZ2luZSB3YXMKLSsgICAgICogYWRkZWQgb3IgcmVtb3Zl ZCwgd2UgZG9uJ3QgbmVlZCB0byBob2xkIGEgcmVmZXJlbmNlIG9mIHRoZSBlbmdpbmUKLSsgICAg ICogaGVyZS4gKi8KLSsgICAgaWYgKGVuZ2luZV9saXN0ICYmIGdfbGlzdF9maW5kIChlbmdpbmVf bGlzdCwgZGVzYykgIT0gTlVMTCkgewotKyAgICAgICAgZW5naW5lX2xpc3QgPSBnX2xpc3RfcmVt b3ZlIChlbmdpbmVfbGlzdCwgZGVzYyk7Ci0rICAgIH0KLSsKLSsgICAgLyogV2UgbmVlZCB0byBz dGVhbCB0aGUgdmFsdWUgYmVmb3JlIGFkZGluZyBpdCBiYWNrLCBvdGhlcndpc2UgaXQgd2lsbAot KyAgICAgKiBiZSBkZXN0cm95ZWQuICovCi0rICAgIGdfaGFzaF90YWJsZV9zdGVhbCAoaWJ1cy0+ aG90a2V5X3RvX2VuZ2luZXNfbWFwLCBHVUlOVF9UT19QT0lOVEVSIChldmVudCkpOwotKwotKyAg ICBpZiAoZW5naW5lX2xpc3QgIT0gTlVMTCkgewotKyAgICAgICAgZ19oYXNoX3RhYmxlX2luc2Vy dCAoaWJ1cy0+aG90a2V5X3RvX2VuZ2luZXNfbWFwLAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgR1VJTlRfVE9fUE9JTlRFUiAoZXZlbnQpLCBlbmdpbmVfbGlzdCk7Ci0rICAgIH0KLSsK LSsgICAgcmV0dXJuIEZBTFNFOwotK30KLSsKLSsvKioKLSsgKiBfYWRkX2VuZ2luZV9ob3RrZXlf d2l0aF9ob3RrZXlzOgotKyAqCi0rICogQ2hlY2sgdGhlIGVuZ2luZS1zcGVjaWZpYyBob3Qga2V5 IG9mIHRoZSBlbmdpbmUsIGFuZCB1cGRhdGUgaWJ1cy0+ZW5naW5lc19ob3RrZXlfcHJvZmlsZS4K LSsgKi8KLStzdGF0aWMgdm9pZAotK19hZGRfZW5naW5lX2hvdGtleV93aXRoX2hvdGtleXMgKElC dXNFbmdpbmVEZXNjICplbmdpbmUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg QnVzSUJ1c0ltcGwgICAgKmlidXMsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgZ2NoYXIgICAgKmhvdGtleXMpCi0rewotKyAgICBnY2hhciAqKmhvdGtleV9saXN0Owot KyAgICBnY2hhciAqKnA7Ci0rICAgIGdjaGFyICpob3RrZXk7Ci0rICAgIEdMaXN0ICplbmdpbmVf bGlzdDsKLSsKLSsgICAgR1F1YXJrIGV2ZW50OwotKyAgICBndWludCBrZXl2YWw7Ci0rICAgIGd1 aW50IG1vZGlmaWVyczsKLSsKLSsgICAgZ19hc3NlcnQgKGVuZ2luZSAhPSBOVUxMKTsKLSsgICAg Z19hc3NlcnQgKGhvdGtleXMgJiYgKmhvdGtleXMpOwotKwotKyAgICBob3RrZXlfbGlzdCA9IGdf c3Ryc3BsaXRfc2V0IChob3RrZXlzLCAiOywiLCAwKTsKLSsKLSsgICAgZm9yIChwID0gaG90a2V5 X2xpc3Q7IHAgJiYgKnA7ICsrcCkgewotKyAgICAgICAgaG90a2V5ID0gZ19zdHJzdHJpcCAoKnAp OwotKyAgICAgICAgaWYgKCEqaG90a2V5IHx8ICFpYnVzX2tleV9ldmVudF9mcm9tX3N0cmluZyAo aG90a2V5LCAma2V5dmFsLCAmbW9kaWZpZXJzKSkgewotKyAgICAgICAgICAgIGNvbnRpbnVlOwot KyAgICAgICAgfQotKwotKyAgICAgICAgLyogSWYgdGhlIGhvdGtleSBhbHJlYWR5IGV4aXN0cywg d2Ugd29uJ3QgbmVlZCB0byBhZGQgaXQgYWdhaW4uICovCi0rICAgICAgICBldmVudCA9IGlidXNf aG90a2V5X3Byb2ZpbGVfbG9va3VwX2hvdGtleSAoaWJ1cy0+ZW5naW5lc19ob3RrZXlfcHJvZmls ZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBr ZXl2YWwsIG1vZGlmaWVycyk7Ci0rICAgICAgICBpZiAoZXZlbnQgPT0gMCkgewotKyAgICAgICAg ICAgIGV2ZW50ID0gZ19xdWFya19mcm9tX3N0cmluZyAoaG90a2V5KTsKLSsgICAgICAgICAgICBp YnVzX2hvdGtleV9wcm9maWxlX2FkZF9ob3RrZXkgKGlidXMtPmVuZ2luZXNfaG90a2V5X3Byb2Zp bGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXl2YWws IG1vZGlmaWVycywgZXZlbnQpOwotKyAgICAgICAgfQotKwotKyAgICAgICAgZW5naW5lX2xpc3Qg PSBnX2hhc2hfdGFibGVfbG9va3VwIChpYnVzLT5ob3RrZXlfdG9fZW5naW5lc19tYXAsCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdVSU5UX1RPX1BPSU5URVIg KGV2ZW50KSk7Ci0rCi0rICAgICAgICAvKiBBcyB3ZSB3aWxsIHJlYnVpbGQgdGhlIGVuZ2luZXMg aG90a2V5IG1hcCB3aGVuZXZlciBhbiBlbmdpbmUgd2FzCi0rICAgICAgICAgKiBhZGRlZCBvciBy ZW1vdmVkLCB3ZSBkb24ndCBuZWVkIHRvIGhvbGQgYSByZWZlcmVuY2Ugb2YgdGhlIGVuZ2luZQot KyAgICAgICAgICogaGVyZS4gKi8KLSsgICAgICAgIGVuZ2luZV9saXN0ID0gZ19saXN0X2FwcGVu ZCAoZW5naW5lX2xpc3QsIGVuZ2luZSk7Ci0rCi0rICAgICAgICAvKiBXZSBuZWVkIHRvIHN0ZWFs IHRoZSB2YWx1ZSBiZWZvcmUgYWRkaW5nIGl0IGJhY2ssIG90aGVyd2lzZSBpdCB3aWxsCi0rICAg ICAgICAgKiBiZSBkZXN0cm95ZWQuICovCi0rICAgICAgICBnX2hhc2hfdGFibGVfc3RlYWwgKGli dXMtPmhvdGtleV90b19lbmdpbmVzX21hcCwgR1VJTlRfVE9fUE9JTlRFUiAoZXZlbnQpKTsKLSsK LSsgICAgICAgIGdfaGFzaF90YWJsZV9pbnNlcnQgKGlidXMtPmhvdGtleV90b19lbmdpbmVzX21h cCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdVSU5UX1RPX1BPSU5URVIgKGV2ZW50 KSwgZW5naW5lX2xpc3QpOwotKyAgICB9Ci0rCi0rICAgIGdfc3RyZnJlZXYgKGhvdGtleV9saXN0 KTsKLSt9Ci0rCi0gc3RhdGljIHZvaWQKLSBfY29uZmlnX3NldF92YWx1ZV9kb25lIChHT2JqZWN0 ICAgICAgKm9iamVjdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBHQXN5bmNSZXN1bHQgKnJl cywKLUBAIC01NzIsNiArNjkwLDY3IEBAIGJ1c19pYnVzX2ltcGxfc2V0X2hvdGtleSAoQnVzSUJ1 c0ltcGwgKmkKLSAKLSB9Ci0gCi0rI2lmIFVTRV9CUklER0VfSE9US0VZCi0rc3RhdGljIGdib29s ZWFuCi0rdXNlX2JyaWRnZV9ob3RrZXkgKEJ1c0lCdXNJbXBsICppYnVzKQotK3sKLSsgICAgR1Zh cmlhbnQgKnZhcmlhbnQgPSBOVUxMOwotKyAgICBnYm9vbGVhbiBfdXNlX2JyaWRnZV9ob3RrZXkg PSBUUlVFOwotKwotKyAgICBnX2Fzc2VydCAoaWJ1cyAhPSBOVUxMKTsKLSsKLSsgICAgaWYgKCFp YnVzLT5jb25maWcpIHsKLSsgICAgICAgIHJldHVybiBUUlVFOwotKyAgICB9Ci0rCi0rICAgIHZh cmlhbnQgPSBpYnVzX2NvbmZpZ19nZXRfdmFsdWUgKGlidXMtPmNvbmZpZywKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgImdlbmVyYWwvaG90a2V5IiwKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgInVzZV9icmlkZ2VfaG90a2V5Iik7Ci0rCi0rICAg IGlmICh2YXJpYW50ICE9IE5VTEwpIHsKLSsgICAgICAgIGdfdmFyaWFudF9nZXQgKHZhcmlhbnQs ICJiIiwgJl91c2VfYnJpZGdlX2hvdGtleSk7Ci0rICAgICAgICBnX3ZhcmlhbnRfdW5yZWYgKHZh cmlhbnQpOwotKyAgICB9Ci0rCi0rICAgIHJldHVybiBfdXNlX2JyaWRnZV9ob3RrZXk7Ci0rfQot KwotK3N0YXRpYyB2b2lkCi0rYnVzX2lidXNfaW1wbF9zZXRfYnJpZGdlX3RyaWdnZXJfa2V5cyAo QnVzSUJ1c0ltcGwgKmlidXMsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgR1F1YXJrICAgICAgIGhvdGtleSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBHVmFyaWFudCAgICAqdmFsdWUpCi0rewotKyAgICBnX2Fzc2VydCAoQlVTX0lTX0lC VVNfSU1QTCAoaWJ1cykpOwotKwotKyAgICBpYnVzX2hvdGtleV9wcm9maWxlX3JlbW92ZV9ob3Rr ZXlfYnlfZXZlbnQgKGlidXMtPmhvdGtleV9wcm9maWxlLCBob3RrZXkpOwotKwotKyAgICBpZiAo dmFsdWUgPT0gTlVMTCkgewotKyAgICAgICAgcmV0dXJuOwotKyAgICB9Ci0rCi0rICAgIEdWYXJp YW50SXRlciBpdGVyOwotKyAgICBnX3ZhcmlhbnRfaXRlcl9pbml0ICgmaXRlciwgdmFsdWUpOwot KyAgICBjb25zdCBnY2hhciAqc3RyID0gTlVMTDsKLSsKLSsgICAgZ19mcmVlIChfYnJpZGdlX3Ry aWdnZXJfa2V5cyk7Ci0rICAgIF9icmlkZ2VfdHJpZ2dlcl9rZXlzID0gTlVMTDsKLSsKLSsgICAg d2hpbGUgKGdfdmFyaWFudF9pdGVyX2xvb3AgKCZpdGVyLCImcyIsICZzdHIpKSB7Ci0rICAgICAg IGlmIChzdHIgIT0gTlVMTCkgewotKyAgICAgICAgICAgZ2NoYXIgKnRtcCA9TlVMTDsKLSsKLSsg ICAgICAgICAgIGlmIChfYnJpZGdlX3RyaWdnZXJfa2V5cykgewotKyAgICAgICAgICAgICAgIHRt cCA9IGdfc3RyZHVwX3ByaW50ZiAoIiVzLCVzIiwgX2JyaWRnZV90cmlnZ2VyX2tleXMsIHN0cik7 Ci0rICAgICAgICAgICB9IGVsc2UgewotKyAgICAgICAgICAgICAgIHRtcCA9IGdfc3RyZHVwIChz dHIpOwotKyAgICAgICAgICAgfQotKyAgICAgICAgICAgZ19mcmVlIChfYnJpZGdlX3RyaWdnZXJf a2V5cyk7Ci0rICAgICAgICAgICBfYnJpZGdlX3RyaWdnZXJfa2V5cyA9IHRtcDsKLSsgICAgICAg fQotKyAgICB9Ci0rfQotKyNlbmRpZgotKwotIC8qKgotICAqIGJ1c19pYnVzX2ltcGxfc2V0X3Ry aWdnZXI6Ci0gICoKLUBAIC01ODMsNyArNzYyLDE1IEBAIGJ1c19pYnVzX2ltcGxfc2V0X3RyaWdn ZXIgKEJ1c0lCdXNJbXBsICoKLSB7Ci0gICAgIEdRdWFyayBob3RrZXkgPSBnX3F1YXJrX2Zyb21f c3RhdGljX3N0cmluZyAoInRyaWdnZXIiKTsKLSAgICAgaWYgKHZhbHVlICE9IE5VTEwpIHsKLSsj aWYgVVNFX0JSSURHRV9IT1RLRVkKLSsgICAgICAgIGlmICh1c2VfYnJpZGdlX2hvdGtleSAoaWJ1 cykpIHsKLSsgICAgICAgICAgICBidXNfaWJ1c19pbXBsX3NldF9icmlkZ2VfdHJpZ2dlcl9rZXlz IChpYnVzLCBob3RrZXksIHZhbHVlKTsKLSsgICAgICAgIH0gZWxzZSB7Ci0rICAgICAgICAgICAg YnVzX2lidXNfaW1wbF9zZXRfaG90a2V5IChpYnVzLCBob3RrZXksIHZhbHVlKTsKLSsgICAgICAg IH0KLSsjZWxzZQotICAgICAgICAgYnVzX2lidXNfaW1wbF9zZXRfaG90a2V5IChpYnVzLCBob3Rr ZXksIHZhbHVlKTsKLSsjZW5kaWYKLSAgICAgfQotICNpZm5kZWYgT1NfQ0hST01FT1MKLSAgICAg ZWxzZSB7Ci1AQCAtNjQ5LDYgKzgzNiw3MiBAQCBidXNfaWJ1c19pbXBsX3NldF9wcmV2aW91c19l bmdpbmUgKEJ1c0lCCi0gICAgIGJ1c19pYnVzX2ltcGxfc2V0X2hvdGtleSAoaWJ1cywgaG90a2V5 LCB2YWx1ZSk7Ci0gfQotIAotKyNpZiBVU0VfQlJJREdFX0hPVEtFWQotK3N0YXRpYyBnaW50Ci0r X2VuZ2luZV9kZXNjX25hbWVfY21wIChJQnVzRW5naW5lRGVzYyAqZGVzYzEsCi0rICAgICAgICAg ICAgICAgICAgICAgICBJQnVzRW5naW5lRGVzYyAqZGVzYzIpCi0rewotKyAgICByZXR1cm4gZ19z dHJjbXAwIChpYnVzX2VuZ2luZV9kZXNjX2dldF9uYW1lIChkZXNjMSksCi0rICAgICAgICAgICAg ICAgICAgICAgIGlidXNfZW5naW5lX2Rlc2NfZ2V0X25hbWUgKGRlc2MyKSk7Ci0rfQotKwotK3N0 YXRpYyB2b2lkCi0rX3NldF9yZWdpc3Rlcl9lbmdpbmVzIChCdXNJQnVzSW1wbCAqaWJ1cywKLSsg ICAgICAgICAgICAgICAgICAgICAgIEdWYXJpYW50ICAgICp2YWx1ZSkKLSt7Ci0rICAgIEdMaXN0 ICplbmdpbmVfbGlzdCA9IE5VTEw7Ci0rCi0rICAgIGdfYXNzZXJ0IChCVVNfSVNfSUJVU19JTVBM IChpYnVzKSk7Ci0rCi0rICAgIGVuZ2luZV9saXN0ID0gaWJ1cy0+cmVnaXN0ZXJfZW5naW5lX2xp c3Q7Ci0rICAgIGlmICh2YWx1ZSAhPSBOVUxMICYmIGdfdmFyaWFudF9jbGFzc2lmeSAodmFsdWUp ID09IEdfVkFSSUFOVF9DTEFTU19BUlJBWSkgewotKyAgICAgICAgR1ZhcmlhbnRJdGVyIGl0ZXI7 Ci0rICAgICAgICBnX3ZhcmlhbnRfaXRlcl9pbml0ICgmaXRlciwgdmFsdWUpOwotKyAgICAgICAg Y29uc3QgZ2NoYXIgKmVuZ2luZV9uYW1lID0gTlVMTDsKLSsgICAgICAgIHdoaWxlIChnX3Zhcmlh bnRfaXRlcl9sb29wICgmaXRlciwgIiZzIiwgJmVuZ2luZV9uYW1lKSkgewotKyAgICAgICAgICAg IElCdXNFbmdpbmVEZXNjICplbmdpbmUgPSBidXNfcmVnaXN0cnlfZmluZF9lbmdpbmVfYnlfbmFt ZSAoaWJ1cy0+cmVnaXN0cnksIGVuZ2luZV9uYW1lKTsKLSsgICAgICAgICAgICBpZiAoZW5naW5l ID09IE5VTEwgfHwgZ19saXN0X2ZpbmQgKGVuZ2luZV9saXN0LCBlbmdpbmUpICE9IE5VTEwpCi0r ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotKyAgICAgICAgICAgIGVuZ2luZV9saXN0ID0gZ19s aXN0X2FwcGVuZCAoZW5naW5lX2xpc3QsIGdfb2JqZWN0X3JlZiAoZW5naW5lKSk7Ci0rICAgICAg ICB9Ci0rICAgIH0gZWxzZSBpZiAodmFsdWUgIT0gTlVMTCkgewotKyAgICAgICAgZ192YXJpYW50 X3VucmVmICh2YWx1ZSk7Ci0rICAgIH0KLSsKLSsgICAgaWJ1cy0+cmVnaXN0ZXJfZW5naW5lX2xp c3QgPSBlbmdpbmVfbGlzdDsKLSsKLSsgICAgaWYgKGVuZ2luZV9saXN0KSB7Ci0rICAgICAgICBC dXNDb21wb25lbnQgKmNvbXBvbmVudCA9IGJ1c19jb21wb25lbnRfZnJvbV9lbmdpbmVfZGVzYyAo KElCdXNFbmdpbmVEZXNjICopIGVuZ2luZV9saXN0LT5kYXRhKTsKLSsgICAgICAgIGlmIChjb21w b25lbnQgJiYgIWJ1c19jb21wb25lbnRfaXNfcnVubmluZyAoY29tcG9uZW50KSkgewotKyAgICAg ICAgICAgIGJ1c19jb21wb25lbnRfc3RhcnQgKGNvbXBvbmVudCwgZ192ZXJib3NlKTsKLSsgICAg ICAgIH0KLSsgICAgfQotK30KLSsKLStzdGF0aWMgdm9pZAotK19zZXRfZGVmYXVsdF9rZXlib2Fy ZF9sYXlvdXRfZW5naW5lcyAoQnVzSUJ1c0ltcGwgKmlidXMpCi0rewotKyAgICBHTGlzdCAqZW5n aW5lcyA9IE5VTEw7Ci0rICAgIEdMaXN0ICpsaXN0OwotKyAgICBHVmFyaWFudEJ1aWxkZXIgYnVp bGRlcjsKLSsKLSsgICAgZ19hc3NlcnQgKEJVU19JU19JQlVTX0lNUEwgKGlidXMpKTsKLSsKLSsg ICAgZW5naW5lcyA9IGJ1c19yZWdpc3RyeV9nZXRfZW5naW5lc19ieV9uYW1lX3ByZWZpeCAoaWJ1 cy0+cmVnaXN0cnksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIERFRkFVTFRfQlJJREdFX0VOR0lORV9OQU1FKTsKLSsgICAgLyogc29ydCBl bmdpbmVzIGJ5IHJhbmsgKi8KLSsgICAgZW5naW5lcyA9IGdfbGlzdF9zb3J0IChlbmdpbmVzLCAo R0NvbXBhcmVGdW5jKSBfZW5naW5lX2Rlc2NfbmFtZV9jbXApOwotKwotKyAgICBnX3ZhcmlhbnRf YnVpbGRlcl9pbml0ICgmYnVpbGRlciwgR19WQVJJQU5UX1RZUEUgKCJhcyIpKTsKLSsgICAgZm9y IChsaXN0ID0gZW5naW5lczsgbGlzdCAhPSBOVUxMOyBsaXN0ID0gbGlzdC0+bmV4dCkgewotKyAg ICAgICAgSUJ1c0VuZ2luZURlc2MgKmRlc2MgPSAoSUJ1c0VuZ2luZURlc2MgKilsaXN0LT5kYXRh OwotKyAgICAgICAgZ192YXJpYW50X2J1aWxkZXJfYWRkICgmYnVpbGRlciwgInMiLCBpYnVzX2Vu Z2luZV9kZXNjX2dldF9uYW1lIChkZXNjKSk7Ci0rICAgIH0KLSsgICAgX3NldF9yZWdpc3Rlcl9l bmdpbmVzIChpYnVzLCBnX3ZhcmlhbnRfYnVpbGRlcl9lbmQgKCZidWlsZGVyKSk7Ci0rICAgIGdf bGlzdF9mcmVlIChlbmdpbmVzKTsKLSt9Ci0rI2VuZGlmCi0rCi0gLyoqCi0gICogYnVzX2lidXNf aW1wbF9zZXRfcHJlbG9hZF9lbmdpbmVzOgotICAqCi1AQCAtNjY4LDYgKzkyMSw5IEBAIGJ1c19p YnVzX2ltcGxfc2V0X3ByZWxvYWRfZW5naW5lcyAoQnVzSUIKLSAgICAgICAgICAgICBfc2V0X3By ZWxvYWRfZW5naW5lcyAoaWJ1cywgdmFsdWUpOwotICAgICAgICAgfQotICAgICB9Ci0rI2lmIFVT RV9CUklER0VfSE9US0VZCi0rICAgIF9zZXRfZGVmYXVsdF9rZXlib2FyZF9sYXlvdXRfZW5naW5l cyAoaWJ1cyk7Ci0rI2VuZGlmCi0gI2Vsc2UKLSAgICAgX3NldF9wcmVsb2FkX2VuZ2luZXMgKGli dXMsIHZhbHVlKTsKLSAjZW5kaWYKLUBAIC0xMjE2LDYgKzE0NzIsNTMgQEAgX2ZpbmRfZW5naW5l X2Rlc2NfYnlfbmFtZSAoQnVzSUJ1c0ltcGwgKgotICAgICByZXR1cm4gTlVMTDsKLSB9Ci0gCi0r I2lmIFVTRV9CUklER0VfSE9US0VZCi0rY29uc3QgZ2NoYXIgKgotK19nZXRfZW5naW5lX2Rlc2Nf aG90a2V5c193aXRoX3N5c3RlbSAoSUJ1c0VuZ2luZURlc2MgKmRlc2MpCi0rewotKyAgICBjb25z dCBnY2hhciAqaG90a2V5cyA9IE5VTEw7Ci0rCi0rICAgIC8qIElmIHRoZSB1c2VyIGN1c3RvbWl6 ZWQgdGhlIHRyaWdnZXIga2V5LCB0aGUgdHJpZ2dlciBrZXkgaXMgdXNlZCBmb3IKLSsgICAgICog YW55IElCdXMgZW5naW5lcy4gKi8KLSsgICAgaWYgKF9icmlkZ2VfdHJpZ2dlcl9rZXlzICE9IE5V TEwgJiYKLSsgICAgICAgICpfYnJpZGdlX3RyaWdnZXJfa2V5cyAhPSAnXDAnICYmCi0rICAgICAg ICBnX3N0cmNtcDAgKF9icmlkZ2VfdHJpZ2dlcl9rZXlzLCAiQ29udHJvbCtzcGFjZSIpICE9IDAp IHsKLSsKLSsgICAgICAgIGhvdGtleXMgPSAoY29uc3QgZ2NoYXIgKikgX2JyaWRnZV90cmlnZ2Vy X2tleXM7Ci0rICAgIH0gZWxzZSBpZiAoZGVzYykgewotKyAgICAgICAgaG90a2V5cyA9IGlidXNf ZW5naW5lX2Rlc2NfZ2V0X2hvdGtleXMgKGRlc2MpOwotKyAgICB9Ci0rCi0rICAgIC8qIElmIGVu Z2luZSBob3RrZXlzIGFyZSBub3QgZGVmaW5lZCBpbiB0aGUgY29tcG9zZSB4bWwgZmlsZSwKLSsg ICAgICogSUJ1cyB0cmlnZ2VyIGtleXMgYXJlIHVzZWQuICovCi0rICAgIGlmICghaG90a2V5cyB8 fCAhKmhvdGtleXMpIHsKLSsgICAgICAgICAgICBob3RrZXlzID0gKGNvbnN0IGdjaGFyICopIF9i cmlkZ2VfdHJpZ2dlcl9rZXlzOwotKyAgICB9Ci0rCi0rICAgIHJldHVybiBob3RrZXlzOwotK30K LSsKLSt2b2lkCi0rX3VwZGF0ZV9ob3RrZXlzX2J5X3ByZXZfZW5naW5lX2Rlc2MgKEJ1c0lCdXNJ bXBsICAgICppYnVzLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJQnVz RW5naW5lRGVzYyAqbmV4dF9kZXNjLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJQnVzRW5naW5lRGVzYyAqcHJldl9kZXNjKQotK3sKLSsgICAgc3RydWN0IF9pbXBsX2Fu ZF9kZXNjIHsKLSsgICAgICAgIEJ1c0lCdXNJbXBsICAgICppYnVzOwotKyAgICAgICAgSUJ1c0Vu Z2luZURlc2MgKmRlc2M7Ci0rICAgIH0gaWQgPSB7aWJ1cywgbmV4dF9kZXNjfTsKLSsgICAgY29u c3QgZ2NoYXIgKmhvdGtleXMgPSBOVUxMOwotKwotKyAgICBob3RrZXlzID0gX2dldF9lbmdpbmVf ZGVzY19ob3RrZXlzX3dpdGhfc3lzdGVtIChwcmV2X2Rlc2MpOwotKyAgICBpZiAoaG90a2V5cyAm JiAqaG90a2V5cykgewotKyAgICAgICAgaWJ1c19ob3RrZXlfcHJvZmlsZV9mb3JlYWNoX2hvdGtl eSAoaWJ1cy0+ZW5naW5lc19ob3RrZXlfcHJvZmlsZSwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF9mb3JlYWNoX3JlbW92ZV9lbmdpbmVfaG90a2V5LAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmlkKTsKLSsgICAgICAg IF9hZGRfZW5naW5lX2hvdGtleV93aXRoX2hvdGtleXMgKG5leHRfZGVzYywgaWJ1cywgaG90a2V5 cyk7Ci0rICAgIH0KLSt9Ci0rI2VuZGlmCi0rCi0gLyoqCi0gICogX2NvbnRleHRfcmVxdWVzdF9l bmdpbmVfY2I6Ci0gICoKLUBAIC0xMjI2LDcgKzE1MjksNTMgQEAgX2NvbnRleHRfcmVxdWVzdF9l bmdpbmVfY2IgKEJ1c0lucHV0Q29udAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBnY2hhciAgICAgKmVuZ2luZV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBC dXNJQnVzSW1wbCAgICAgKmlidXMpCi0gewotLSAgICByZXR1cm4gYnVzX2lidXNfaW1wbF9nZXRf ZW5naW5lX2Rlc2MgKGlidXMsIGVuZ2luZV9uYW1lKTsKLSsgICAgSUJ1c0VuZ2luZURlc2MgKmRl c2MgPSBidXNfaWJ1c19pbXBsX2dldF9lbmdpbmVfZGVzYyAoaWJ1cywgZW5naW5lX25hbWUpOwot KwotKyNpZiBVU0VfQlJJREdFX0hPVEtFWQotKyAgICBJQnVzRW5naW5lRGVzYyAqY3VycmVudF9k ZXNjID0gTlVMTDsKLSsKLSsgICAgaWYgKCF1c2VfYnJpZGdlX2hvdGtleSAoaWJ1cykpIHsKLSsg ICAgICAgIHJldHVybiBkZXNjOwotKyAgICB9Ci0rCi0rICAgIGlmIChjb250ZXh0KSB7Ci0rICAg ICAgICBCdXNFbmdpbmVQcm94eSAqZW5naW5lID0gYnVzX2lucHV0X2NvbnRleHRfZ2V0X2VuZ2lu ZSAoY29udGV4dCk7Ci0rICAgICAgICBpZiAoZW5naW5lICE9IE5VTEwpIHsKLSsgICAgICAgICAg ICBjdXJyZW50X2Rlc2MgPSBidXNfZW5naW5lX3Byb3h5X2dldF9kZXNjIChlbmdpbmUpOwotKyAg ICAgICAgfQotKyAgICB9Ci0rCi0rICAgIGlmICgoKGN1cnJlbnRfZGVzYyA9PSBOVUxMICYmIGRl c2MgIT0gTlVMTCkgfHwKLSsgICAgICAgICAoY3VycmVudF9kZXNjICE9IE5VTEwgJiYgZGVzYyAh PSBOVUxMICYmCi0rICAgICAgICAgIGdfc3RyY21wMCAoaWJ1c19lbmdpbmVfZGVzY19nZXRfbmFt ZSAoY3VycmVudF9kZXNjKSwKLSsgICAgICAgICAgICAgICAgICAgICBpYnVzX2VuZ2luZV9kZXNj X2dldF9uYW1lIChkZXNjKSkgIT0gMCkpICYmCi0rICAgICAgICBnX2FzY2lpX3N0cm5jYXNlY21w IChpYnVzX2VuZ2luZV9kZXNjX2dldF9uYW1lIChkZXNjKSwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIERFRkFVTFRfQlJJREdFX0VOR0lORV9OQU1FLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RybGVuIChERUZBVUxUX0JSSURHRV9FTkdJTkVfTkFNRSkpID09IDApIHsK LSsgICAgICAgIF91cGRhdGVfaG90a2V5c19ieV9wcmV2X2VuZ2luZV9kZXNjIChpYnVzLCBkZXNj LCBjdXJyZW50X2Rlc2MpOwotKyAgICB9Ci0rCi0rICAgIGlmIChjdXJyZW50X2Rlc2MgJiYgZGVz YyAmJgotKyAgICAgICAgZ19zdHJjbXAwIChpYnVzX2VuZ2luZV9kZXNjX2dldF9uYW1lIChjdXJy ZW50X2Rlc2MpLAotKyAgICAgICAgICAgICAgICAgICBpYnVzX2VuZ2luZV9kZXNjX2dldF9uYW1l IChkZXNjKSkgIT0gMCkgewotKyAgICAgICAgaWYgKGNvbnRleHQpIHsKLSsgICAgICAgICAgICBi dXNfaW5wdXRfY29udGV4dF9zZXRfcHJldl9ob3RrZXlfZW5naW5lIChjb250ZXh0LCBjdXJyZW50 X2Rlc2MpOwotKyAgICAgICAgfSBlbHNlIHsKLSsgICAgICAgICAgICBpYnVzLT5wcmV2X2hvdGtl eV9lbmdpbmUgPSBjdXJyZW50X2Rlc2M7Ci0rICAgICAgICB9Ci0rCi0rICAgICAgICAvKiBJZiB0 aGUgcHJldmlvdXMgZW5naW5lIGlzIG5vdCBpbmNsdWRlZCBpbiBlbmdpbmVfbGlzdCBhbmQKLSsg ICAgICAgICAqIHRoZSBjdXJyZW50IGVuZ2luZSBpcyB0aGUgZGVmdWFsdCBicmlkZ2UgZW5naW5l LAotKyAgICAgICAgICogdGhlIGN1cnJlbnQgZW5naW5lIGlzIGFsc28gbm90IGluY2x1ZGVkIGlu IGVuZ2luZV9saXN0LgotKyAgICAgICAgICogU28gdGhlIGVuZ2luZSBpcyBhZGRlZCBoZXJlLiAq LwotKyAgICAgICAgaWYgKGdfYXNjaWlfc3RybmNhc2VjbXAgKGlidXNfZW5naW5lX2Rlc2NfZ2V0 X25hbWUgKGN1cnJlbnRfZGVzYyksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg REVGQVVMVF9CUklER0VfRU5HSU5FX05BTUUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RybGVuIChERUZBVUxUX0JSSURHRV9FTkdJTkVfTkFNRSkpID09IDApIHsKLSsgICAg ICAgICAgICBfdXBkYXRlX2hvdGtleXNfYnlfcHJldl9lbmdpbmVfZGVzYyAoaWJ1cywgY3VycmVu dF9kZXNjLCBkZXNjKTsKLSsgICAgICAgIH0KLSsgICAgfQotKyNlbmRpZgotKyAgICByZXR1cm4g ZGVzYzsKLSB9Ci0gCi0gLyoqCi1AQCAtMTI2NSw4ICsxNjE0LDEzIEBAIGJ1c19pYnVzX2ltcGxf Z2V0X2VuZ2luZV9kZXNjIChCdXNJQnVzSW0KLSAgICAgICAgIGlmICghZGVzYykgewotICAgICAg ICAgICAgIGlmIChpYnVzLT5yZWdpc3Rlcl9lbmdpbmVfbGlzdCkgewotICAgICAgICAgICAgICAg ICBkZXNjID0gKElCdXNFbmdpbmVEZXNjICopIGlidXMtPnJlZ2lzdGVyX2VuZ2luZV9saXN0LT5k YXRhOwotKyNpZiBVU0VfQlJJREdFX0hPVEtFWQotKyAgICAgICAgICAgICAgICBpZiAoZW5naW5l X25hbWUgPT0gTlVMTCkgewotKyAgICAgICAgICAgICAgICAgICAgZGVzYyA9IE5VTEw7Ci0rICAg ICAgICAgICAgICAgIH0KLSsjZW5kaWYKLSAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgZWxz ZSBpZiAoaWJ1cy0+ZW5naW5lX2xpc3QpIHsKLSsgICAgICAgICAgICBpZiAoIWRlc2MgJiYgaWJ1 cy0+ZW5naW5lX2xpc3QpIHsKLSAgICAgICAgICAgICAgICAgZGVzYyA9IChJQnVzRW5naW5lRGVz YyAqKSBpYnVzLT5lbmdpbmVfbGlzdC0+ZGF0YTsKLSAgICAgICAgICAgICB9Ci0gICAgICAgICB9 Ci1AQCAtMTMxMSw5ICsxNjY1LDIwIEBAIGJ1c19pYnVzX2ltcGxfY29udGV4dF9yZXF1ZXN0X3Jv dGF0ZV9lbmcKLSAgICAgZGVzYyA9IGJ1c19lbmdpbmVfcHJveHlfZ2V0X2Rlc2MgKGVuZ2luZSk7 Ci0gCi0gICAgIHAgPSBnX2xpc3RfZmluZCAoaWJ1cy0+cmVnaXN0ZXJfZW5naW5lX2xpc3QsIGRl c2MpOwotKyNpZiBVU0VfQlJJREdFX0hPVEtFWQotKyAgICBpZiAoIXVzZV9icmlkZ2VfaG90a2V5 IChpYnVzKSkgewotKyAgICAgICAgcCA9IE5VTEw7Ci0rICAgIH0KLSsjZW5kaWYKLSAgICAgaWYg KHAgIT0gTlVMTCkgewotICAgICAgICAgaWYgKGlzX25leHQpIHsKLSAgICAgICAgICAgICBwID0g cC0+bmV4dDsKLSsjaWYgVVNFX0JSSURHRV9IT1RLRVkKLSsgICAgICAgICAgICBpZiAocCAmJiBn X2xpc3RfbGVuZ3RoIChpYnVzLT5yZWdpc3Rlcl9lbmdpbmVfbGlzdCkgLQotKyAgICAgICAgICAg ICAgICAgICAgZ19saXN0X2xlbmd0aCAocCkgPj0gaWJ1cy0+eGtiX2dyb3VwX2xlbmd0aCkgewot KyAgICAgICAgICAgICAgICBwID0gTlVMTDsKLSsgICAgICAgICAgICB9Ci0rI2VuZGlmCi0gICAg ICAgICB9IGVsc2UgewotICAgICAgICAgICAgIHAgPSBwLT5wcmV2OwotICAgICAgICAgfQotQEAg LTEzNDMsMTEgKzE3MDgsMjUgQEAgYnVzX2lidXNfaW1wbF9jb250ZXh0X3JlcXVlc3Rfcm90YXRl X2VuZwotICAgICBpZiAocCA9PSBOVUxMICYmIGdfbGlzdF9maW5kIChpYnVzLT5lbmdpbmVfbGlz dCwgZGVzYykgIT0gTlVMTCkgewotICAgICAgICAgaWYgKGlzX25leHQpIHsKLSAgICAgICAgICAg ICBwID0gaWJ1cy0+cmVnaXN0ZXJfZW5naW5lX2xpc3Q7Ci0rI2lmIFVTRV9CUklER0VfSE9US0VZ Ci0rICAgICAgICAgICAgaWYgKCF1c2VfYnJpZGdlX2hvdGtleSAoaWJ1cykpIHsKLSsgICAgICAg ICAgICAgICAgcCA9IE5VTEw7Ci0rICAgICAgICAgICAgfQotKyNlbmRpZgotICAgICAgICAgICAg IGlmIChwID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICAgcCA9IGlidXMtPmVuZ2luZV9saXN0 OwotICAgICAgICAgICAgIH0KLSAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgcCA9IGdf bGlzdF9sYXN0IChpYnVzLT5yZWdpc3Rlcl9lbmdpbmVfbGlzdCk7Ci0rI2lmIFVTRV9CUklER0Vf SE9US0VZCi0rICAgICAgICAgICAgaWYgKCF1c2VfYnJpZGdlX2hvdGtleSAoaWJ1cykpIHsKLSsg ICAgICAgICAgICAgICAgcCA9IE5VTEw7Ci0rICAgICAgICAgICAgfQotKyAgICAgICAgICAgIGVs c2UgaWYgKGlidXMtPnhrYl9ncm91cF9sZW5ndGggPiAwKSB7Ci0rICAgICAgICAgICAgICAgIHAg PSBnX2xpc3RfbnRoIChpYnVzLT5yZWdpc3Rlcl9lbmdpbmVfbGlzdCwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlidXMtPnhrYl9ncm91cF9sZW5ndGggLSAxKTsKLSsgICAgICAg ICAgICB9Ci0rI2VuZGlmCi0gICAgICAgICAgICAgaWYgKHAgPT0gTlVMTCkgewotICAgICAgICAg ICAgICAgICBwID0gZ19saXN0X2xhc3QgKGlidXMtPmVuZ2luZV9saXN0KTsKLSAgICAgICAgICAg ICB9Ci1AQCAtMTM1OCwxNCArMTczNywzMSBAQCBidXNfaWJ1c19pbXBsX2NvbnRleHRfcmVxdWVz dF9yb3RhdGVfZW5nCi0gICAgICAgICBuZXh0X2Rlc2MgPSAoSUJ1c0VuZ2luZURlc2MqKSBwLT5k YXRhOwotICAgICB9Ci0gICAgIGVsc2UgewotKyNpZiBVU0VfQlJJREdFX0hPVEtFWQotKyAgICAg ICAgaWYgKHVzZV9icmlkZ2VfaG90a2V5IChpYnVzKSAmJiBpYnVzLT5yZWdpc3Rlcl9lbmdpbmVf bGlzdCkgewotKyAgICAgICAgICAgIG5leHRfZGVzYyA9IChJQnVzRW5naW5lRGVzYyAqKSBpYnVz LT5yZWdpc3Rlcl9lbmdpbmVfbGlzdC0+ZGF0YTsKLSsgICAgICAgIH0KLSsjZWxzZQotICAgICAg ICAgaWYgKGlidXMtPnJlZ2lzdGVyX2VuZ2luZV9saXN0KSB7Ci0gICAgICAgICAgICAgbmV4dF9k ZXNjID0gKElCdXNFbmdpbmVEZXNjICopIGlidXMtPnJlZ2lzdGVyX2VuZ2luZV9saXN0LT5kYXRh OwotICAgICAgICAgfQotKyNlbmRpZgotICAgICAgICAgZWxzZSBpZiAoaWJ1cy0+ZW5naW5lX2xp c3QpIHsKLSAgICAgICAgICAgICBuZXh0X2Rlc2MgPSAoSUJ1c0VuZ2luZURlc2MgKikgaWJ1cy0+ ZW5naW5lX2xpc3QtPmRhdGE7Ci0gICAgICAgICB9Ci0gICAgIH0KLSAKLSsjaWYgVVNFX0JSSURH RV9IT1RLRVkKLSsgICAgaWYgKHVzZV9icmlkZ2VfaG90a2V5IChpYnVzKSAmJiBkZXNjICE9IG5l eHRfZGVzYykgewotKyAgICAgICAgYnVzX2lucHV0X2NvbnRleHRfc2V0X3ByZXZfaG90a2V5X2Vu Z2luZSAoY29udGV4dCwgZGVzYyk7Ci0rICAgICAgICBpZiAoZGVzYyAhPSBOVUxMICYmCi0rICAg ICAgICAgICAgZ19hc2NpaV9zdHJuY2FzZWNtcCAoaWJ1c19lbmdpbmVfZGVzY19nZXRfbmFtZSAo ZGVzYyksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREVGQVVMVF9CUklER0Vf RU5HSU5FX05BTUUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RybGVuIChE RUZBVUxUX0JSSURHRV9FTkdJTkVfTkFNRSkpID09IDApIHsKLSsgICAgICAgICAgICBfdXBkYXRl X2hvdGtleXNfYnlfcHJldl9lbmdpbmVfZGVzYyAoaWJ1cywgZGVzYywgbmV4dF9kZXNjKTsKLSsg ICAgICAgIH0KLSsgICAgfQotKyNlbmRpZgotICAgICBidXNfaWJ1c19pbXBsX3NldF9jb250ZXh0 X2VuZ2luZV9mcm9tX2Rlc2MgKGlidXMsIGNvbnRleHQsIG5leHRfZGVzYyk7Ci0gfQotIAotQEAg LTEzODcsNyArMTc4Myw5IEBAIGJ1c19pYnVzX2ltcGxfY29udGV4dF9yZXF1ZXN0X3ByZXZpb3Vz X2UKLSAgICAgICAgIGlmICghaWJ1cy0+Z2xvYmFsX3ByZXZpb3VzX2VuZ2luZV9uYW1lKSB7Ci0g ICAgICAgICAgICAgaWJ1cy0+Z2xvYmFsX3ByZXZpb3VzX2VuZ2luZV9uYW1lID0gYnVzX2lidXNf aW1wbF9sb2FkX2dsb2JhbF9wcmV2aW91c19lbmdpbmVfbmFtZV9mcm9tX2NvbmZpZyAoaWJ1cyk7 Ci0gICAgICAgICB9Ci0rI2lmIDAKLSAgICAgICAgIGVuZ2luZV9uYW1lID0gaWJ1cy0+Z2xvYmFs X3ByZXZpb3VzX2VuZ2luZV9uYW1lOwotKyNlbmRpZgotICAgICAgICAgaWYgKGVuZ2luZV9uYW1l ICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAvKiBJZiB0aGUgcHJldmlvdXMgZW5naW5lIGlzIHJl bW92ZWQgZnJvbSB0aGUgZW5naW5lIGxpc3Qgb3IgdGhlCi0gICAgICAgICAgICAgICAgY3VycmVu dCBlbmdpbmUgYW5kIHRoZSBwcmV2aW91cyBlbmdpbmUgYXJlIHRoZSBzYW1lIG9uZSwgZm9yY2UK LUBAIC0xNDQ4LDYgKzE4NDYsOSBAQCBidXNfaWJ1c19pbXBsX3NldF9mb2N1c2VkX2NvbnRleHQg KEJ1c0lCCi0gCi0gICAgIEJ1c0VuZ2luZVByb3h5ICplbmdpbmUgPSBOVUxMOwotICAgICBnYm9v bGVhbiBpc19lbmFibGVkID0gRkFMU0U7Ci0rI2lmIFVTRV9CUklER0VfSE9US0VZCi0rICAgIElC dXNFbmdpbmVEZXNjICpkZXNjID0gTlVMTDsKLSsjZW5kaWYKLSAKLSAgICAgaWYgKGlidXMtPmZv Y3VzZWRfY29udGV4dCkgewotICAgICAgICAgaWYgKGlidXMtPnVzZV9nbG9iYWxfZW5naW5lKSB7 Ci1AQCAtMTQ1NSw2ICsxODU2LDkgQEAgYnVzX2lidXNfaW1wbF9zZXRfZm9jdXNlZF9jb250ZXh0 IChCdXNJQgotICAgICAgICAgICAgIGVuZ2luZSA9IGJ1c19pbnB1dF9jb250ZXh0X2dldF9lbmdp bmUgKGlidXMtPmZvY3VzZWRfY29udGV4dCk7Ci0gICAgICAgICAgICAgaWYgKGVuZ2luZSkgewot ICAgICAgICAgICAgICAgICBpc19lbmFibGVkID0gYnVzX2lucHV0X2NvbnRleHRfaXNfZW5hYmxl ZCAoaWJ1cy0+Zm9jdXNlZF9jb250ZXh0KTsKLSsjaWYgVVNFX0JSSURHRV9IT1RLRVkKLSsgICAg ICAgICAgICAgICAgZGVzYyA9IGJ1c19pbnB1dF9jb250ZXh0X2dldF9wcmV2X2hvdGtleV9lbmdp bmUgKGlidXMtPmZvY3VzZWRfY29udGV4dCk7Ci0rI2VuZGlmCi0gICAgICAgICAgICAgICAgIGdf b2JqZWN0X3JlZiAoZW5naW5lKTsKLSAgICAgICAgICAgICAgICAgYnVzX2lucHV0X2NvbnRleHRf c2V0X2VuZ2luZSAoaWJ1cy0+Zm9jdXNlZF9jb250ZXh0LCBOVUxMKTsKLSAgICAgICAgICAgICB9 Ci1AQCAtMTQ3OSw2ICsxODgzLDkgQEAgYnVzX2lidXNfaW1wbF9zZXRfZm9jdXNlZF9jb250ZXh0 IChCdXNJQgotICAgICAgICAgICAgIGlmIChpc19lbmFibGVkKSB7Ci0gICAgICAgICAgICAgICAg IGJ1c19pbnB1dF9jb250ZXh0X2VuYWJsZSAoY29udGV4dCk7Ci0gICAgICAgICAgICAgfQotKyNp ZiBVU0VfQlJJREdFX0hPVEtFWQotKyAgICAgICAgICAgIGJ1c19pbnB1dF9jb250ZXh0X3NldF9w cmV2X2hvdGtleV9lbmdpbmUgKGlidXMtPmZvY3VzZWRfY29udGV4dCwgZGVzYyk7Ci0rI2VuZGlm Ci0gICAgICAgICAgICAgZ19vYmplY3RfdW5yZWYgKGVuZ2luZSk7Ci0gICAgICAgICB9Ci0gCi1A QCAtMTcwOCw2ICsyMTE1LDI1IEBAIF9jb250ZXh0X2Rpc2FibGVkX2NiIChCdXNJbnB1dENvbnRl eHQgICAKLSB9Ci0gCi0gLyoqCi0rICogX2NvbnRleHRfc2V0X3hrYl9lbmdpbmVzX2NiOgotKyAq Ci0rICogQSBjYWxsYmFjayBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB0aGUgInNldC14a2It ZW5naW5lcyIgc2lnbmFsIGlzIHNlbnQgdG8gdGhlIGNvbnRleHQuCi0rICovCi0rc3RhdGljIHZv aWQKLStfY29udGV4dF9zZXRfeGtiX2VuZ2luZXNfY2IgKEJ1c0lucHV0Q29udGV4dCAgICAqY29u dGV4dCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMaXN0ICAgICAgICAgICAgICAq bGlzdCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1c0lCdXNJbXBsICAgICAgICAq aWJ1cykKLSt7Ci0rICAgIGlmIChsaXN0ID09IE5VTEwpIHsKLSsgICAgICAgIHJldHVybjsKLSsg ICAgfQotKwotKyNpZiBVU0VfQlJJREdFX0hPVEtFWQotKyAgICBpYnVzLT54a2JfZ3JvdXBfbGVu Z3RoID0gZ19saXN0X2xlbmd0aCAobGlzdCk7Ci0rI2VuZGlmCi0rfQotKwotKy8qKgotICAqIGJ1 c19pYnVzX2ltcGxfY3JlYXRlX2lucHV0X2NvbnRleHQ6Ci0gICogQGNsaWVudDogQSBuYW1lIG9m IGEgY2xpZW50LiBlLmcuICJndGstaW0iCi0gICogQHJldHVybnM6IEEgQnVzSW5wdXRDb250ZXh0 IG9iamVjdC4KLUBAIC0xNzM1LDYgKzIxNjEsNyBAQCBidXNfaWJ1c19pbXBsX2NyZWF0ZV9pbnB1 dF9jb250ZXh0IChCdXNJCi0gICAgICAgICB7ICJkZXN0cm95IiwgICAgICAgIEdfQ0FMTEJBQ0sg KF9jb250ZXh0X2Rlc3Ryb3lfY2IpIH0sCi0gICAgICAgICB7ICJlbmFibGVkIiwgICAgICAgIEdf Q0FMTEJBQ0sgKF9jb250ZXh0X2VuYWJsZWRfY2IpIH0sCi0gICAgICAgICB7ICJkaXNhYmxlZCIs ICAgICAgIEdfQ0FMTEJBQ0sgKF9jb250ZXh0X2Rpc2FibGVkX2NiKSB9LAotKyAgICAgICAgeyAi c2V0LXhrYi1lbmdpbmVzIiwgR19DQUxMQkFDSyAoX2NvbnRleHRfc2V0X3hrYl9lbmdpbmVzX2Ni KSB9LAotICAgICB9OwotIAotICAgICBnaW50IGk7Ci1AQCAtMjMxMiw2ICsyNzM5LDkgQEAgYnVz X2lidXNfaW1wbF9maWx0ZXJfa2V5Ym9hcmRfc2hvcnRjdXRzIAotIAotICAgICBHUXVhcmsgZXZl bnQ7Ci0gICAgIEdMaXN0ICplbmdpbmVfbGlzdDsKLSsjaWYgVVNFX0JSSURHRV9IT1RLRVkKLSsg ICAgSUJ1c0VuZ2luZURlc2MgKnByZXZfaG90a2V5X2VuZ2luZSA9IE5VTEw7Ci0rI2VuZGlmCi0g Ci0gICAgIGlmICh0cmlnZ2VyID09IDApIHsKLSAgICAgICAgIHRyaWdnZXIgPSBnX3F1YXJrX2Zy b21fc3RhdGljX3N0cmluZyAoInRyaWdnZXIiKTsKLUBAIC0yMzc3LDYgKzI4MDcsMTIgQEAgYnVz X2lidXNfaW1wbF9maWx0ZXJfa2V5Ym9hcmRfc2hvcnRjdXRzIAotICAgICAgICAgcmV0dXJuIEZB TFNFOwotICAgICB9Ci0gCi0rI2lmIFVTRV9CUklER0VfSE9US0VZCi0rICAgIGlmICghdXNlX2Jy aWRnZV9ob3RrZXkgKGlidXMpKSB7Ci0rICAgICAgICByZXR1cm4gRkFMU0U7Ci0rICAgIH0KLSsj ZW5kaWYKLSsKLSAgICAgLyogVGhlbiB0cnkgZW5naW5lcyBob3RrZXlzLiAqLwotICAgICBldmVu dCA9IGlidXNfaG90a2V5X3Byb2ZpbGVfZmlsdGVyX2tleV9ldmVudCAoaWJ1cy0+ZW5naW5lc19o b3RrZXlfcHJvZmlsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGtleXZhbCwKLUBAIC0yMzk4LDYgKzI4MzQsMjQgQEAgYnVzX2lidXNfaW1wbF9m aWx0ZXJfa2V5Ym9hcmRfc2hvcnRjdXRzIAotIAotICAgICAgICAgZ19hc3NlcnQgKG5ld19lbmdp bmVfZGVzYyk7Ci0gCi0rI2lmIFVTRV9CUklER0VfSE9US0VZCi0rICAgICAgICBpZiAoY29udGV4 dCkgewotKyAgICAgICAgICAgIHByZXZfaG90a2V5X2VuZ2luZSA9IGJ1c19pbnB1dF9jb250ZXh0 X2dldF9wcmV2X2hvdGtleV9lbmdpbmUgKGNvbnRleHQpOwotKyAgICAgICAgICAgIGlmIChwcmV2 X2hvdGtleV9lbmdpbmUgPT0gTlVMTCAmJiBpYnVzLT5wcmV2X2hvdGtleV9lbmdpbmUpIHsKLSsg ICAgICAgICAgICAgICAgcHJldl9ob3RrZXlfZW5naW5lID0gaWJ1cy0+cHJldl9ob3RrZXlfZW5n aW5lOwotKyAgICAgICAgICAgICAgICBidXNfaW5wdXRfY29udGV4dF9zZXRfcHJldl9ob3RrZXlf ZW5naW5lIChjb250ZXh0LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBwcmV2X2hvdGtleV9lbmdpbmUpOwotKyAgICAgICAgICAgIH0K LSsgICAgICAgIH0KLSsKLSsgICAgICAgIC8qIElmIHRoZSBwcmV2aW91cyBlbmdpbmUgaXMgbm90 IGluY2x1ZGVkIGluIGVuZ2luZV9saXN0LAotKyAgICAgICAgICogdGhpcyBlbmFibGVzIGEgbmV3 IGVuZ2luZSBpbnN0ZWFkIG9mIHRvZ2dsaW5nIHRoZSBlbmdpbmVzCi0rICAgICAgICAgKiBzbyBz aG91bGQgbm90IGVuYWJsZSB0aGUgcHJldmlvdXMgZW5naW5lLiAqLwotKyAgICAgICAgaWYgKHBy ZXZfaG90a2V5X2VuZ2luZSAmJgotKyAgICAgICAgICAgIGdfbGlzdF9maW5kIChlbmdpbmVfbGlz dCwgcHJldl9ob3RrZXlfZW5naW5lKSAhPSBOVUxMKSB7Ci0rICAgICAgICAgICAgbmV3X2VuZ2lu ZV9kZXNjID0gcHJldl9ob3RrZXlfZW5naW5lOwotKyAgICAgICAgfQotKyNlbHNlCi0gICAgICAg ICAvKiBGaW5kIG91dCB3aGF0IGVuZ2luZSB3ZSBzaG91bGQgc3dpdGNoIHRvLiBJZiB0aGUgY3Vy cmVudCBlbmdpbmUgaGFzCi0gICAgICAgICAgKiB0aGUgc2FtZSBob3RrZXksIHRoZW4gd2Ugc2hv dWxkIHN3aXRjaCB0byB0aGUgbmV4dCBlbmdpbmUgd2l0aCB0aGUKLSAgICAgICAgICAqIHNhbWUg aG90a2V5IGluIHRoZSBsaXN0LiBPdGhlcndpc2UsIHdlIGp1c3Qgc3dpdGNoIHRvIHRoZSBmaXJz dAotQEAgLTI0MDksOCArMjg2Myw0MyBAQCBidXNfaWJ1c19pbXBsX2ZpbHRlcl9rZXlib2FyZF9z aG9ydGN1dHMgCi0gICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgIH0KLSAgICAg ICAgIH0KLSsjZW5kaWYKLSsKLSsjaWYgVVNFX0JSSURHRV9IT1RLRVkKLSsgICAgICAgIGlmIChj b250ZXh0ID09IE5VTEwpIHsKLSsgICAgICAgICAgICByZXR1cm4gRkFMU0U7Ci0rICAgICAgICB9 Ci0rCi0rICAgICAgICAvKiBUaGlzIG1lYW5zIFJlcXVlc3RFbmdpbmUgc2lnbmFsIG1pZ2h0IGJl IGRvbmUgYnV0IFNldEVuZ2luZSBzaWduYWwKLSsgICAgICAgICAqIGhhcyBub3QgYmVlbiBkb25l IHlldCBieSBpYnVzIHN0YXR1cyBpY29uLiAqLwotKyAgICAgICAgaWYgKGN1cnJlbnRfZW5naW5l X2Rlc2MgPT0gTlVMTCAmJgotKyAgICAgICAgICAgICFidXNfaW5wdXRfY29udGV4dF9pbml0ZWRf ZW5naW5lIChjb250ZXh0KSkgewotKyAgICAgICAgICAgIHJldHVybiBGQUxTRTsKLSsgICAgICAg IH0KLSAKLSAgICAgICAgIGlmIChjdXJyZW50X2VuZ2luZV9kZXNjICE9IG5ld19lbmdpbmVfZGVz YykgewotKyAgICAgICAgICAgIGlmIChjdXJyZW50X2VuZ2luZV9kZXNjKSB7Ci0rICAgICAgICAg ICAgICAgIGlmIChjb250ZXh0KSB7Ci0rICAgICAgICAgICAgICAgICAgICBidXNfaW5wdXRfY29u dGV4dF9zZXRfcHJldl9ob3RrZXlfZW5naW5lIChjb250ZXh0LAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudF9lbmdp bmVfZGVzYyk7Ci0rICAgICAgICAgICAgICAgIH0KLSsgICAgICAgICAgICB9Ci0rCi0rICAgICAg ICAgICAgLyogSWYgdGhlIGN1cnJlbnQgZW5naW5lIGlzIHRoZSBkZWZ1YWx0IGJyaWRnZSBlbmdp bmUsCi0rICAgICAgICAgICAgICogdGhlIGN1cnJlbnQgZW5naW5lIGlzIG5vdCBpbmNsdWRlZCBp biBlbmdpbmVfbGlzdC4KLSsgICAgICAgICAgICAgKiBFLmcuIHByZXYgaXMgQ3RybCtzcGFjZSBh bmQgWmVuYWt1IGFuZCBjdXJyZW50IGlzIEN0cmwrc3BhY2UuCi0rICAgICAgICAgICAgICogU28g dGhlIGVuZ2luZSBpcyBhZGRlZCBoZXJlLiAqLwotKyAgICAgICAgICAgIGlmIChjdXJyZW50X2Vu Z2luZV9kZXNjICE9IE5VTEwgJiYKLSsgICAgICAgICAgICAgICAgZ19hc2NpaV9zdHJuY2FzZWNt cCAoaWJ1c19lbmdpbmVfZGVzY19nZXRfbmFtZSAoY3VycmVudF9lbmdpbmVfZGVzYyksCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERFRkFVTFRfQlJJREdFX0VOR0lORV9O QU1FLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJsZW4gKERFRkFV TFRfQlJJREdFX0VOR0lORV9OQU1FKSkgPT0gMCkgewotKyAgICAgICAgICAgICAgICBfdXBkYXRl X2hvdGtleXNfYnlfcHJldl9lbmdpbmVfZGVzYyAoaWJ1cywKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfZW5naW5lX2Rlc2MsCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdf ZW5naW5lX2Rlc2MpOwotKyAgICAgICAgICAgIH0KLSsjZWxzZQotKyAgICAgICAgaWYgKGN1cnJl bnRfZW5naW5lX2Rlc2MgIT0gbmV3X2VuZ2luZV9kZXNjKSB7Ci0rI2VuZGlmCi0gICAgICAgICAg ICAgYnVzX2lidXNfaW1wbF9zZXRfY29udGV4dF9lbmdpbmVfZnJvbV9kZXNjIChpYnVzLCBjb250 ZXh0LCBuZXdfZW5naW5lX2Rlc2MpOwotICAgICAgICAgfQotIAotQEAgLTI1MTQsNTkgKzMwMDMs NTQgQEAgc3RhdGljIHZvaWQKLSBfYWRkX2VuZ2luZV9ob3RrZXkgKElCdXNFbmdpbmVEZXNjICpl bmdpbmUsIEJ1c0lCdXNJbXBsICppYnVzKQotIHsKLSAgICAgY29uc3QgZ2NoYXIgKmhvdGtleXM7 Ci0tICAgIGdjaGFyICoqaG90a2V5X2xpc3Q7Ci0tICAgIGdjaGFyICoqcDsKLS0gICAgZ2NoYXIg KmhvdGtleTsKLS0gICAgR0xpc3QgKmVuZ2luZV9saXN0OwotLQotLSAgICBHUXVhcmsgZXZlbnQ7 Ci0tICAgIGd1aW50IGtleXZhbDsKLS0gICAgZ3VpbnQgbW9kaWZpZXJzOwotIAotICAgICBpZiAo IWVuZ2luZSkgewotICAgICAgICAgcmV0dXJuOwotICAgICB9Ci0gCi0tICAgIGhvdGtleXMgPSBp YnVzX2VuZ2luZV9kZXNjX2dldF9ob3RrZXlzIChlbmdpbmUpOwotLQotLSAgICBpZiAoIWhvdGtl eXMgfHwgISpob3RrZXlzKSB7Ci0rI2lmIFVTRV9CUklER0VfSE9US0VZCi0rICAgIGlmICghdXNl X2JyaWRnZV9ob3RrZXkgKGlidXMpKSB7Ci0gICAgICAgICByZXR1cm47Ci0gICAgIH0KLSAKLS0g ICAgaG90a2V5X2xpc3QgPSBnX3N0cnNwbGl0X3NldCAoaG90a2V5cywgIjssIiwgMCk7Ci0tCi0t ICAgIGZvciAocCA9IGhvdGtleV9saXN0OyBwICYmICpwOyArK3ApIHsKLS0gICAgICAgIGhvdGtl eSA9IGdfc3Ryc3RyaXAgKCpwKTsKLS0gICAgICAgIGlmICghKmhvdGtleSB8fCAhaWJ1c19rZXlf ZXZlbnRfZnJvbV9zdHJpbmcgKGhvdGtleSwgJmtleXZhbCwgJm1vZGlmaWVycykpIHsKLS0gICAg ICAgICAgICBjb250aW51ZTsKLS0gICAgICAgIH0KLS0KLS0gICAgICAgIC8qIElmIHRoZSBob3Rr ZXkgYWxyZWFkeSBleGlzdHMsIHdlIHdvbid0IG5lZWQgdG8gYWRkIGl0IGFnYWluLiAqLwotLSAg ICAgICAgZXZlbnQgPSBpYnVzX2hvdGtleV9wcm9maWxlX2xvb2t1cF9ob3RrZXkgKGlidXMtPmVu Z2luZXNfaG90a2V5X3Byb2ZpbGUsCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAga2V5dmFsLCBtb2RpZmllcnMpOwotLSAgICAgICAgaWYgKGV2ZW50 ID09IDApIHsKLS0gICAgICAgICAgICBldmVudCA9IGdfcXVhcmtfZnJvbV9zdHJpbmcgKGhvdGtl eSk7Ci0tICAgICAgICAgICAgaWJ1c19ob3RrZXlfcHJvZmlsZV9hZGRfaG90a2V5IChpYnVzLT5l bmdpbmVzX2hvdGtleV9wcm9maWxlLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAga2V5dmFsLCBtb2RpZmllcnMsIGV2ZW50KTsKLS0gICAgICAgIH0KLSsgICAg LyogRG8gbm90IHJlZ2lzdGVyIGhvdGtleXMgZm9yIHRoZSBkZWZhdWx0IGtleW1hcCBlbmdpbmVz Ci0rICAgICAqIGJ1dCByZWdpc3RlciBob3RrZXlzIGZvciBvbmx5IGlucHV0LW1ldGhvZCBlbmdp bmVzCi0rICAgICAqIGluICdSZWdpc3RlckNvbXBvbmVudCcgZGJ1cyBtZXRob2QuCi0rICAgICAq IFRoZSBob3RrZXlzIGZvciBhbiBhY3RpdmF0ZWQga2V5bWFwIGVuZ2luZSB3aWxsIGJlIHJlZ2lz dGVyZWQKLSsgICAgICogaW4gJ1NldEVuZ2luZScgZGJ1cyBtZXRob2QuICovCi0rICAgIGlmIChn X2FzY2lpX3N0cm5jYXNlY21wIChpYnVzX2VuZ2luZV9kZXNjX2dldF9uYW1lIChlbmdpbmUpLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREVGQVVMVF9CUklER0VfRU5HSU5FX05BTUUs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJsZW4gKERFRkFVTFRfQlJJREdFX0VO R0lORV9OQU1FKSkgPT0gMCkgewotKyAgICAgICAgcmV0dXJuOwotKyAgICB9Ci0gCi0tICAgICAg ICBlbmdpbmVfbGlzdCA9IGdfaGFzaF90YWJsZV9sb29rdXAgKGlidXMtPmhvdGtleV90b19lbmdp bmVzX21hcCwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1VJ TlRfVE9fUE9JTlRFUiAoZXZlbnQpKTsKLSsgICAgLyogSWYgdGhlIHVzZXIgY3VzdG9taXplZCB0 aGUgdHJpZ2dlciBrZXksIHRoZSB0cmlnZ2VyIGtleSBpcyB1c2VkIGZvcgotKyAgICAgKiBhbnkg SUJ1cyBlbmdpbmVzLiAqLwotKyAgICBpZiAoX2JyaWRnZV90cmlnZ2VyX2tleXMgIT0gTlVMTCAm JgotKyAgICAgICAgKl9icmlkZ2VfdHJpZ2dlcl9rZXlzICE9ICdcMCcgJiYKLSsgICAgICAgIGdf c3RyY21wMCAoX2JyaWRnZV90cmlnZ2VyX2tleXMsICJDb250cm9sK3NwYWNlIikgIT0gMCkgewot IAotLSAgICAgICAgLyogQXMgd2Ugd2lsbCByZWJ1aWxkIHRoZSBlbmdpbmVzIGhvdGtleSBtYXAg d2hlbmV2ZXIgYW4gZW5naW5lIHdhcwotLSAgICAgICAgICogYWRkZWQgb3IgcmVtb3ZlZCwgd2Ug ZG9uJ3QgbmVlZCB0byBob2xkIGEgcmVmZXJlbmNlIG9mIHRoZSBlbmdpbmUKLS0gICAgICAgICAq IGhlcmUuICovCi0tICAgICAgICBlbmdpbmVfbGlzdCA9IGdfbGlzdF9hcHBlbmQgKGVuZ2luZV9s aXN0LCBlbmdpbmUpOwotKyAgICAgICAgaG90a2V5cyA9IChjb25zdCBnY2hhciAqKSBfYnJpZGdl X3RyaWdnZXJfa2V5czsKLSsgICAgfSBlbHNlIHsKLSsgICAgICAgIGhvdGtleXMgPSBpYnVzX2Vu Z2luZV9kZXNjX2dldF9ob3RrZXlzIChlbmdpbmUpOwotKyAgICB9Ci0rI2Vsc2UKLSsgICAgaG90 a2V5cyA9IGlidXNfZW5naW5lX2Rlc2NfZ2V0X2hvdGtleXMgKGVuZ2luZSk7Ci0rI2VuZGlmCi0g Ci0tICAgICAgICAvKiBXZSBuZWVkIHRvIHN0ZWFsIHRoZSB2YWx1ZSBiZWZvcmUgYWRkaW5nIGl0 IGJhY2ssIG90aGVyd2lzZSBpdCB3aWxsCi0tICAgICAgICAgKiBiZSBkZXN0cm95ZWQuICovCi0t ICAgICAgICBnX2hhc2hfdGFibGVfc3RlYWwgKGlidXMtPmhvdGtleV90b19lbmdpbmVzX21hcCwg R1VJTlRfVE9fUE9JTlRFUiAoZXZlbnQpKTsKLSsjaWYgVVNFX0JSSURHRV9IT1RLRVkKLSsgICAg LyogSWYgZW5naW5lIGhvdGtleXMgYXJlIG5vdCBkZWZpbmVkIGluIHRoZSBjb21wb3NlIHhtbCBm aWxlLCBJQnVzIHRyaWdnZXIKLSsgICAgICoga2V5cyBhcmUgdXNlZC4gKi8KLSsgICAgaWYgKCFo b3RrZXlzIHx8ICEqaG90a2V5cykgewotKyAgICAgICAgaG90a2V5cyA9IChjb25zdCBnY2hhciAq KSBfYnJpZGdlX3RyaWdnZXJfa2V5czsKLSsgICAgfQotKyNlbmRpZgotIAotLSAgICAgICAgZ19o YXNoX3RhYmxlX2luc2VydCAoaWJ1cy0+aG90a2V5X3RvX2VuZ2luZXNfbWFwLAotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgR1VJTlRfVE9fUE9JTlRFUiAoZXZlbnQpLCBlbmdpbmVfbGlz dCk7Ci0rICAgIGlmICghaG90a2V5cyB8fCAhKmhvdGtleXMpIHsKLSsgICAgICAgIHJldHVybjsK LSAgICAgfQotIAotLSAgICBnX3N0cmZyZWV2IChob3RrZXlfbGlzdCk7Ci0rICAgIF9hZGRfZW5n aW5lX2hvdGtleV93aXRoX2hvdGtleXMgKGVuZ2luZSwgaWJ1cywgaG90a2V5cyk7Ci0gfQotIAot IC8qKgotZGlmZiAtLWdpdCBhL2J1cy9pbnB1dGNvbnRleHQuYyBiL2J1cy9pbnB1dGNvbnRleHQu YwotaW5kZXggM2M4MTY4OC4uNThhYjhmNCAxMDA2NDQKLS0tLSBhL2J1cy9pbnB1dGNvbnRleHQu YwotKysrIGIvYnVzL2lucHV0Y29udGV4dC5jCi1AQCAtOTAsNiArOTAsMTIgQEAgc3RydWN0IF9C dXNJbnB1dENvbnRleHQgewotIAotICAgICAvKiBpbmNvbXBsZXRlZCBzZXQgZW5naW5lIGJ5IGRl c2MgcmVxdWVzdCAqLwotICAgICBTZXRFbmdpbmVCeURlc2NEYXRhICpkYXRhOwotKwotKyAgICAv KiBpZiBpbml0IGVuZ2luZSAqLwotKyAgICBnYm9vbGVhbiBpbml0ZWRfZW5naW5lOwotKwotKyAg ICAvKiBwcmV2aW91cyBob3RrZXkgZW5naW5lIGZvciBicmlkZ2UgaG90a2V5IG1vZGUgKi8KLSsg ICAgSUJ1c0VuZ2luZURlc2MgKnByZXZfaG90a2V5X2VuZ2luZTsKLSB9OwotIAotIHN0cnVjdCBf QnVzSW5wdXRDb250ZXh0Q2xhc3MgewotQEAgLTEyMiw2ICsxMjgsNyBAQCBlbnVtIHsKLSAgICAg RElTQUJMRUQsCi0gICAgIEVOR0lORV9DSEFOR0VELAotICAgICBSRVFVRVNUX0VOR0lORSwKLSsg ICAgU0VUX1hLQl9FTkdJTkVTLAotICAgICBMQVNUX1NJR05BTCwKLSB9OwotIAotQEAgLTI2NSw2 ICsyNzIsOSBAQCBzdGF0aWMgY29uc3QgZ2NoYXIgaW50cm9zcGVjdGlvbl94bWxbXSA9Ci0gICAg ICIgICAgPG1ldGhvZCBuYW1lPSdHZXRFbmdpbmUnPiIKLSAgICAgIiAgICAgIDxhcmcgZGlyZWN0 aW9uPSdvdXQnIHR5cGU9J3YnIG5hbWU9J2Rlc2MnIC8+IgotICAgICAiICAgIDwvbWV0aG9kPiIK LSsgICAgIiAgICA8bWV0aG9kIG5hbWU9J1NldFhLQkVuZ2luZXMnPiIKLSsgICAgIiAgICAgIDxh cmcgZGlyZWN0aW9uPSdpbicgdHlwZT0nYXYnIG5hbWU9J2VuZ2luZXMnIC8+IgotKyAgICAiICAg IDwvbWV0aG9kPiIKLSAgICAgIiAgICA8bWV0aG9kIG5hbWU9J1NldFN1cnJvdW5kaW5nVGV4dCc+ IgotICAgICAiICAgICAgPGFyZyBkaXJlY3Rpb249J2luJyB0eXBlPSd2JyBuYW1lPSd0ZXh0JyAv PiIKLSAgICAgIiAgICAgIDxhcmcgZGlyZWN0aW9uPSdpbicgdHlwZT0ndScgbmFtZT0nY3Vyc29y X3BvcycgLz4iCi1AQCAtNTg2LDYgKzU5NiwxNyBAQCBidXNfaW5wdXRfY29udGV4dF9jbGFzc19p bml0IChCdXNJbnB1dENvbnRleHRDbGFzcyAqY2xhc3MpCi0gICAgICAgICAgICAgMSwKLSAgICAg ICAgICAgICBHX1RZUEVfU1RSSU5HKTsKLSAKLSsgICAgY29udGV4dF9zaWduYWxzW1NFVF9YS0Jf RU5HSU5FU10gPQotKyAgICAgICAgZ19zaWduYWxfbmV3IChJXygic2V0LXhrYi1lbmdpbmVzIiks Ci0rICAgICAgICAgICAgR19UWVBFX0ZST01fQ0xBU1MgKGNsYXNzKSwKLSsgICAgICAgICAgICBH X1NJR05BTF9SVU5fTEFTVCwKLSsgICAgICAgICAgICAwLAotKyAgICAgICAgICAgIE5VTEwsIE5V TEwsCi0rICAgICAgICAgICAgYnVzX21hcnNoYWxfVk9JRF9fT0JKRUNULAotKyAgICAgICAgICAg IEdfVFlQRV9OT05FLAotKyAgICAgICAgICAgIDEsCi0rICAgICAgICAgICAgR19UWVBFX1BPSU5U RVIpOwotKwotICAgICB0ZXh0X2VtcHR5ID0gaWJ1c190ZXh0X25ld19mcm9tX3N0cmluZyAoIiIp OwotICAgICBnX29iamVjdF9yZWZfc2luayAodGV4dF9lbXB0eSk7Ci0gICAgIGxvb2t1cF90YWJs ZV9lbXB0eSA9IGlidXNfbG9va3VwX3RhYmxlX25ldyAoOSAvKiBwYWdlIHNpemUgKi8sIDAsIEZB TFNFLCBGQUxTRSk7Ci1AQCAtNjQ4LDYgKzY2OSwxMSBAQCBidXNfaW5wdXRfY29udGV4dF9kZXN0 cm95IChCdXNJbnB1dENvbnRleHQgKmNvbnRleHQpCi0gICAgICAgICBjb250ZXh0LT5jbGllbnQg PSBOVUxMOwotICAgICB9Ci0gCi0rICAgIGlmIChjb250ZXh0LT5wcmV2X2hvdGtleV9lbmdpbmUp IHsKLSsgICAgICAgIGdfb2JqZWN0X3VucmVmIChjb250ZXh0LT5wcmV2X2hvdGtleV9lbmdpbmUp OwotKyAgICAgICAgY29udGV4dC0+cHJldl9ob3RrZXlfZW5naW5lID0gTlVMTDsKLSsgICAgfQot KwotICAgICBJQlVTX09CSkVDVF9DTEFTUyAoYnVzX2lucHV0X2NvbnRleHRfcGFyZW50X2NsYXNz KS0+ZGVzdHJveSAoSUJVU19PQkpFQ1QgKGNvbnRleHQpKTsKLSB9Ci0gCi1AQCAtMTA0OCw2ICsx MDc0LDMyIEBAIF9pY19nZXRfZW5naW5lIChCdXNJbnB1dENvbnRleHQgICAgICAgKmNvbnRleHQs Ci0gfQotIAotIC8qKgotKyAqIF9pY19zZXRfeGtiX2VuZ2luZXM6Ci0rICoKLSsgKiBJbXBsZW1l bnQgdGhlICJTZXRYS0JFbmdpbmVzIiBtZXRob2QgY2FsbCBvZiB0aGUgb3JnLmZyZWVkZXNrdG9w LklCdXMuSW5wdXRDb250ZXh0IGludGVyZmFjZS4KLSsgKi8KLStzdGF0aWMgdm9pZAotK19pY19z ZXRfeGtiX2VuZ2luZXMgKEJ1c0lucHV0Q29udGV4dCAgICAgICAqY29udGV4dCwKLSsgICAgICAg ICAgICAgICAgICAgICBHVmFyaWFudCAgICAgICAgICAgICAgKnBhcmFtZXRlcnMsCi0rICAgICAg ICAgICAgICAgICAgICAgR0RCdXNNZXRob2RJbnZvY2F0aW9uICppbnZvY2F0aW9uKQotK3sKLSsg ICAgR1ZhcmlhbnRJdGVyICppdGVyID0gTlVMTDsKLSsgICAgR1ZhcmlhbnQgKnZhcjsKLSsgICAg R0xpc3QgKmxpc3QgPSBOVUxMOwotKwotKyAgICBnX3ZhcmlhbnRfZ2V0X2NoaWxkIChwYXJhbWV0 ZXJzLCAwLCAiYXYiLCAmaXRlcik7Ci0rICAgIHdoaWxlIChnX3ZhcmlhbnRfaXRlcl9sb29wIChp dGVyLCAidiIsICZ2YXIpKSB7Ci0rICAgICAgICBsaXN0ID0gZ19saXN0X2FwcGVuZCAobGlzdCwg aWJ1c19zZXJpYWxpemFibGVfZGVzZXJpYWxpemUgKHZhcikpOwotKyAgICB9Ci0rICAgIGdfdmFy aWFudF9pdGVyX2ZyZWUgKGl0ZXIpOwotKwotKyAgICBnX3NpZ25hbF9lbWl0IChjb250ZXh0LAot KyAgICAgICAgICAgICAgICAgICBjb250ZXh0X3NpZ25hbHNbU0VUX1hLQl9FTkdJTkVTXSwgMCwK LSsgICAgICAgICAgICAgICAgICAgbGlzdCk7Ci0rICAgIHJldHVybjsKLSt9Ci0rCi0rLyoqCi0g ICogYnVzX2lucHV0X2NvbnRleHRfc2VydmljZV9tZXRob2RfY2FsbDoKLSAgKgotICAqIEhhbmRs ZSBhIEQtQnVzIG1ldGhvZCBjYWxsIHdob3NlIGRlc3RpbmF0aW9uIGFuZCBpbnRlcmZhY2UgbmFt ZSBhcmUgYm90aCAib3JnLmZyZWVkZXNrdG9wLklCdXMuSW5wdXRDb250ZXh0IgotQEAgLTExMjYs NiArMTE3OCw3IEBAIGJ1c19pbnB1dF9jb250ZXh0X3NlcnZpY2VfbWV0aG9kX2NhbGwgKElCdXNT ZXJ2aWNlICAgICAgICAgICAgKnNlcnZpY2UsCi0gICAgICAgICB7ICJJc0VuYWJsZWQiLCAgICAg ICAgIF9pY19pc19lbmFibGVkIH0sCi0gICAgICAgICB7ICJTZXRFbmdpbmUiLCAgICAgICAgIF9p Y19zZXRfZW5naW5lIH0sCi0gICAgICAgICB7ICJHZXRFbmdpbmUiLCAgICAgICAgIF9pY19nZXRf ZW5naW5lIH0sCi0rICAgICAgICB7ICJTZXRYS0JFbmdpbmVzIiwgICAgIF9pY19zZXRfeGtiX2Vu Z2luZXMgfSwKLSAgICAgICAgIHsgIlNldFN1cnJvdW5kaW5nVGV4dCIsIF9pY19zZXRfc3Vycm91 bmRpbmdfdGV4dH0sCi0gICAgIH07Ci0gCi1AQCAtMjIxOCw2ICsyMjcxLDcgQEAgYnVzX2lucHV0 X2NvbnRleHRfc2V0X2VuZ2luZSAoQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0LAotICAgICB9Ci0g ICAgIGVsc2UgewotICAgICAgICAgZ2ludCBpOwotKyAgICAgICAgY29udGV4dC0+aW5pdGVkX2Vu Z2luZSA9IFRSVUU7Ci0gICAgICAgICBjb250ZXh0LT5lbmdpbmUgPSBlbmdpbmU7Ci0gICAgICAg ICBnX29iamVjdF9yZWYgKGNvbnRleHQtPmVuZ2luZSk7Ci0gCi1AQCAtMjU0MiwzICsyNTk2LDMw IEBAIGJ1c19pbnB1dF9jb250ZXh0X2dldF9jbGllbnQgKEJ1c0lucHV0Q29udGV4dCAqY29udGV4 dCkKLSAgICAgZ19hc3NlcnQgKEJVU19JU19JTlBVVF9DT05URVhUIChjb250ZXh0KSk7Ci0gICAg IHJldHVybiBjb250ZXh0LT5jbGllbnQ7Ci0gfQotKwotK2dib29sZWFuCi0rYnVzX2lucHV0X2Nv bnRleHRfaW5pdGVkX2VuZ2luZSAoQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0KQotK3sKLSsgICAg Z19hc3NlcnQgKEJVU19JU19JTlBVVF9DT05URVhUIChjb250ZXh0KSk7Ci0rICAgIHJldHVybiBj b250ZXh0LT5pbml0ZWRfZW5naW5lOwotK30KLSsKLStJQnVzRW5naW5lRGVzYyAqCi0rYnVzX2lu cHV0X2NvbnRleHRfZ2V0X3ByZXZfaG90a2V5X2VuZ2luZSAoQnVzSW5wdXRDb250ZXh0ICpjb250 ZXh0KQotK3sKLSsgICAgZ19hc3NlcnQgKEJVU19JU19JTlBVVF9DT05URVhUIChjb250ZXh0KSk7 Ci0rICAgIHJldHVybiBjb250ZXh0LT5wcmV2X2hvdGtleV9lbmdpbmU7Ci0rfQotKwotK3ZvaWQK LStidXNfaW5wdXRfY29udGV4dF9zZXRfcHJldl9ob3RrZXlfZW5naW5lIChCdXNJbnB1dENvbnRl eHQgKmNvbnRleHQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SUJ1c0VuZ2luZURlc2MgICpkZXNjKQotK3sKLSsgICAgZ19hc3NlcnQgKEJVU19JU19JTlBVVF9D T05URVhUIChjb250ZXh0KSk7Ci0rICAgIGdfYXNzZXJ0IChkZXNjID09IE5VTEwgfHwgSUJVU19J U19FTkdJTkVfREVTQyAoZGVzYykpOwotKwotKyAgICBpZiAoY29udGV4dC0+cHJldl9ob3RrZXlf ZW5naW5lKSB7Ci0rICAgICAgICBnX29iamVjdF91bnJlZiAoY29udGV4dC0+cHJldl9ob3RrZXlf ZW5naW5lKTsKLSsgICAgfQotKyAgICBjb250ZXh0LT5wcmV2X2hvdGtleV9lbmdpbmUgPSBkZXNj ID8gZ19vYmplY3RfcmVmIChkZXNjKSA6IE5VTEw7Ci0rfQotZGlmZiAtLWdpdCBhL2J1cy9pbnB1 dGNvbnRleHQuaCBiL2J1cy9pbnB1dGNvbnRleHQuaAotaW5kZXggYmM0ZTA5Ni4uYzc5ZTAzMyAx MDA2NDQKLS0tLSBhL2J1cy9pbnB1dGNvbnRleHQuaAotKysrIGIvYnVzL2lucHV0Y29udGV4dC5o Ci1AQCAtMjEzLDUgKzIxMywyNyBAQCB2b2lkICAgICAgICAgICAgICAgICBidXNfaW5wdXRfY29u dGV4dF9zZXRfY2FwYWJpbGl0aWVzIChCdXNJbnB1dENvbnRleHQgICAgKmNvbgotICAqLwotIGNv bnN0IGdjaGFyICAgICAgICAgKmJ1c19pbnB1dF9jb250ZXh0X2dldF9jbGllbnQgICAgICAgKEJ1 c0lucHV0Q29udGV4dCAgICAqY29udGV4dCk7Ci0gCi0rLyoqCi0rICogYnVzX2lucHV0X2NvbnRl eHRfaW5pdGVkX2VuZ2luZToKLSsgKiBAcmV0dXJuczogY29udGV4dC0+aW5pdGVkX2VuZ2luZS4K LSsgKi8KLStnYm9vbGVhbiAgICAgICAgICAgICBidXNfaW5wdXRfY29udGV4dF9pbml0ZWRfZW5n aW5lCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0KTsKLSsKLSsvKioKLSsgKiBidXNfaW5wdXRf Y29udGV4dF9nZXRfcHJldl9ob3RrZXlfZW5naW5lOgotKyAqIEByZXR1cm5zOiBjb250ZXh0LT5w cmV2X2hvdGtleV9lbmdpbmUuCi0rICovCi0rSUJ1c0VuZ2luZURlc2MgICAgICAqYnVzX2lucHV0 X2NvbnRleHRfZ2V0X3ByZXZfaG90a2V5X2VuZ2luZQotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEJ1c0lucHV0Q29udGV4dCAqY29udGV4 dCk7Ci0rCi0rLyoqCi0rICogYnVzX2lucHV0X2NvbnRleHRfc2V0X3ByZXZfaG90a2V5X2VuZ2lu ZToKLSsgKiBAZGVzYzogQXNzaWduIHRoZSBkZXNjIHRvIGNvbnRleHQtPnByZXZfaG90a2V5X2Vu Z2luZS4KLSsgKi8KLSt2b2lkICAgICAgICAgICAgICAgICBidXNfaW5wdXRfY29udGV4dF9zZXRf cHJldl9ob3RrZXlfZW5naW5lCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0LAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElCdXNFbmdp bmVEZXNjICAqZGVzYyk7Ci0rCi0gR19FTkRfREVDTFMKLSAjZW5kaWYKLWRpZmYgLS1naXQgYS9i dXMvcmVnaXN0cnkuYyBiL2J1cy9yZWdpc3RyeS5jCi1pbmRleCA3Yjc0NzgxLi4yOGUyYWJmIDEw MDY0NAotLS0tIGEvYnVzL3JlZ2lzdHJ5LmMKLSsrKyBiL2J1cy9yZWdpc3RyeS5jCi1AQCAtMTks NiArMTksMTEgQEAKLSAgKiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBs ZSBQbGFjZSAtIFN1aXRlIDMzMCwKLSAgKiBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KLSAg Ki8KLSsKLSsjaWZkZWYgSEFWRV9DT05GSUdfSAotKyNpbmNsdWRlIDxjb25maWcuaD4KLSsjZW5k aWYKLSsKLSAjaW5jbHVkZSAicmVnaXN0cnkuaCIKLSAjaW5jbHVkZSA8Z2xpYi9nc3RkaW8uaD4K LSAjaW5jbHVkZSA8Z2lvL2dpby5oPgotQEAgLTEwMSw2ICsxMDYsOSBAQCBidXNfcmVnaXN0cnlf aW5pdCAoQnVzUmVnaXN0cnkgKnJlZ2lzdHJ5KQotICAgICByZWdpc3RyeS0+b2JzZXJ2ZWRfcGF0 aHMgPSBOVUxMOwotICAgICByZWdpc3RyeS0+Y29tcG9uZW50cyA9IE5VTEw7Ci0gICAgIHJlZ2lz dHJ5LT5lbmdpbmVfdGFibGUgPSBnX2hhc2hfdGFibGVfbmV3IChnX3N0cl9oYXNoLCBnX3N0cl9l cXVhbCk7Ci0rI2lmIFVTRV9CUklER0VfSE9US0VZCi0rICAgIGdib29sZWFuIGhhc19kZWZhdWx0 X2VuZ2luZSA9IEZBTFNFOwotKyNlbmRpZgotIAotICNpZmRlZiBHX1RIUkVBRFNfRU5BQkxFRAot ICAgICAvKiBJZiBnbGliIHN1cHBvcnRzIHRocmVhZCwgd2UnbGwgY3JlYXRlIGEgdGhyZWFkIHRv IG1vbml0b3IgY2hhbmdlcyBpbiBJTUUKLUBAIC0xNDUsMTIgKzE1Myw0MCBAQCBidXNfcmVnaXN0 cnlfaW5pdCAoQnVzUmVnaXN0cnkgKnJlZ2lzdHJ5KQotICAgICAgICAgR0xpc3QgKnAxOwotICAg ICAgICAgZm9yIChwMSA9IGVuZ2luZXM7IHAxICE9IE5VTEw7IHAxID0gcDEtPm5leHQpIHsKLSAg ICAgICAgICAgICBJQnVzRW5naW5lRGVzYyAqZGVzYyA9IChJQnVzRW5naW5lRGVzYyAqKSBwMS0+ ZGF0YTsKLSsjaWYgVVNFX0JSSURHRV9IT1RLRVkKLSsgICAgICAgICAgICBpZiAoZ19hc2NpaV9z dHJuY2FzZWNtcCAoaWJ1c19lbmdpbmVfZGVzY19nZXRfbmFtZSAoZGVzYyksCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIERFRkFVTFRfQlJJREdFX0VOR0lORV9OQU1FLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJsZW4gKERFRkFVTFRfQlJJ REdFX0VOR0lORV9OQU1FKSkgPT0gMCkgewotKyAgICAgICAgICAgICAgICBoYXNfZGVmYXVsdF9l bmdpbmUgPSBUUlVFOwotKyAgICAgICAgICAgIH0KLSsjZW5kaWYKLSAgICAgICAgICAgICBnX2hh c2hfdGFibGVfaW5zZXJ0IChyZWdpc3RyeS0+ZW5naW5lX3RhYmxlLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChncG9pbnRlcikgaWJ1c19lbmdpbmVfZGVzY19nZXRfbmFtZSAo ZGVzYyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzYyk7Ci0gICAgICAg ICB9Ci0gICAgICAgICBnX2xpc3RfZnJlZSAoZW5naW5lcyk7Ci0gICAgIH0KLSsKLSsjaWYgVVNF X0JSSURHRV9IT1RLRVkKLSsgICAgaWYgKGhhc19kZWZhdWx0X2VuZ2luZSA9PSBGQUxTRSkgewot KyAgICAgICAgYnVzX3JlZ2lzdHJ5X3JlbW92ZV9hbGwgKHJlZ2lzdHJ5KTsKLSsgICAgICAgIGJ1 c19yZWdpc3RyeV9sb2FkIChyZWdpc3RyeSk7Ci0rICAgICAgICBidXNfcmVnaXN0cnlfc2F2ZV9j YWNoZSAocmVnaXN0cnkpOwotKwotKyAgICAgICAgZm9yIChwID0gcmVnaXN0cnktPmNvbXBvbmVu dHM7IHAgIT0gTlVMTDsgcCA9IHAtPm5leHQpIHsKLSsgICAgICAgICAgICBCdXNDb21wb25lbnQg KmNvbXAgPSAoQnVzQ29tcG9uZW50ICopIHAtPmRhdGE7Ci0rICAgICAgICAgICAgR0xpc3QgKmVu Z2luZXMgPSBidXNfY29tcG9uZW50X2dldF9lbmdpbmVzIChjb21wKTsKLSsgICAgICAgICAgICBH TGlzdCAqcDE7Ci0rICAgICAgICAgICAgZm9yIChwMSA9IGVuZ2luZXM7IHAxICE9IE5VTEw7IHAx ID0gcDEtPm5leHQpIHsKLSsgICAgICAgICAgICAgICAgSUJ1c0VuZ2luZURlc2MgKmRlc2MgPSAo SUJ1c0VuZ2luZURlc2MgKikgcDEtPmRhdGE7Ci0rICAgICAgICAgICAgICAgIGdfaGFzaF90YWJs ZV9pbnNlcnQgKHJlZ2lzdHJ5LT5lbmdpbmVfdGFibGUsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChncG9pbnRlcikgaWJ1c19lbmdpbmVfZGVzY19nZXRfbmFtZSAoZGVz YyksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2MpOwotKyAgICAg ICAgICAgIH0KLSsgICAgICAgICAgICBnX2xpc3RfZnJlZSAoZW5naW5lcyk7Ci0rICAgICAgICB9 Ci0rICAgIH0KLSsjZW5kaWYKLSB9Ci0gCi0gc3RhdGljIHZvaWQKLUBAIC01MTYsNiArNTUyLDMx IEBAIGJ1c19yZWdpc3RyeV9nZXRfZW5naW5lc19ieV9sYW5ndWFnZSAoQnVzUmVnaXN0cnkgKnJl Z2lzdHJ5LAotICAgICByZXR1cm4gZW5naW5lczsKLSB9Ci0gCi0rR0xpc3QgKgotK2J1c19yZWdp c3RyeV9nZXRfZW5naW5lc19ieV9uYW1lX3ByZWZpeCAoQnVzUmVnaXN0cnkgKnJlZ2lzdHJ5LAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgKm5h bWVfcHJlZml4KQotK3sKLSsgICAgR0xpc3QgKnAxLCAqcDI7Ci0rICAgIEdMaXN0ICplbmdpbmVz ID0gTlVMTDsKLSsKLSsgICAgZ19hc3NlcnQgKEJVU19JU19SRUdJU1RSWSAocmVnaXN0cnkpKTsK LSsgICAgZ19hc3NlcnQgKG5hbWVfcHJlZml4KTsKLSsKLSsgICAgcDEgPSBidXNfcmVnaXN0cnlf Z2V0X2VuZ2luZXMgKHJlZ2lzdHJ5KTsKLSsKLSsgICAgZm9yIChwMiA9IHAxOyBwMiAhPSBOVUxM OyBwMiA9IHAyLT5uZXh0KSB7Ci0rICAgICAgICBJQnVzRW5naW5lRGVzYyAqZGVzYyA9IChJQnVz RW5naW5lRGVzYyAqKSBwMi0+ZGF0YTsKLSsgICAgICAgIGlmIChnX2FzY2lpX3N0cm5jYXNlY21w IChpYnVzX2VuZ2luZV9kZXNjX2dldF9uYW1lIChkZXNjKSwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBuYW1lX3ByZWZpeCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHJsZW4gKG5hbWVfcHJlZml4KSkgPT0gMCkgewotKyAgICAgICAgICAgIGVuZ2luZXMg PSBnX2xpc3RfYXBwZW5kIChlbmdpbmVzLCBkZXNjKTsKLSsgICAgICAgIH0KLSsgICAgfQotKwot KyAgICBnX2xpc3RfZnJlZSAocDEpOwotKyAgICByZXR1cm4gZW5naW5lczsKLSt9Ci0rCi0gSUJ1 c0VuZ2luZURlc2MgKgotIGJ1c19yZWdpc3RyeV9maW5kX2VuZ2luZV9ieV9uYW1lIChCdXNSZWdp c3RyeSAqcmVnaXN0cnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IGdjaGFyICpuYW1lKQotZGlmZiAtLWdpdCBhL2J1cy9yZWdpc3RyeS5oIGIvYnVzL3JlZ2lzdHJ5 LmgKLWluZGV4IGNkYWJlYzAuLjcyMTE4N2MgMTAwNjQ0Ci0tLS0gYS9idXMvcmVnaXN0cnkuaAot KysrIGIvYnVzL3JlZ2lzdHJ5LmgKLUBAIC03Myw2ICs3MywxNiBAQCBHTGlzdCAgICAgICAgICAg KmJ1c19yZWdpc3RyeV9nZXRfZW5naW5lc19ieV9sYW5ndWFnZQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAqbGFuZ3VhZ2Up OwotIAotIC8qKgotKyAqIGJ1c19yZWdpc3RyeV9nZXRfZW5naW5lc19ieV9uYW1lX3ByZWZpeDoK LSsgKiBAbmFtZV9wcmVmaXg6IGEgcHJlZml4IGluIHRoZSBuYW1lIG9mIElCdXNFbmdpbmVEZXNj LiAKLSsgKiBAcmV0dXJuczogYSBsaXN0IG9mIElCdXNFbmdpbmVEZXNjIG9iamVjdHMgd2hpY2gg aGFzIHRoZSBuYW1lIHByZWZpeC4KLSsgKiAgICAgICAgICAgVGhlIGNhbGxlciBoYXMgdG8gY2Fs bCBnX2xpc3RfZnJlZSBmb3IgdGhlIHJldHVybmVkIGxpc3QuCi0rICovCi0rR0xpc3QgICAgICAg ICAgICpidXNfcmVnaXN0cnlfZ2V0X2VuZ2luZXNfYnlfbmFtZV9wcmVmaXgKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoQnVzUmVnaXN0cnkgICAgKnJl Z2lzdHJ5LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBnY2hhciAgICAqbmFtZV9wcmVmaXgpOwotKwotKy8qKgotICAqIGJ1c19yZWdpc3Ry eV9zdG9wX2FsbF9jb21wb25lbnRzOgotICAqCi0gICogVGVybWluYXRlIGFsbCBjb21wb25lbnQg cHJvY2Vzc2VzLgotZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwotaW5k ZXggMjI3ZTI4ZS4uNzg4ZmJlZiAxMDA2NDQKLS0tLSBhL2NvbmZpZ3VyZS5hYwotKysrIGIvY29u ZmlndXJlLmFjCi1AQCAtNDgzLDYgKzQ4MywzNCBAQCBlbHNlCi0gICAgIGVuYWJsZV9zdXJyb3Vu ZGluZ190ZXh0PSJubyAoZGlzYWJsZWQsIHVzZSAtLWVuYWJsZS1zdXJyb3VuZGluZy10ZXh0IHRv IGVuYWJsZSkiCi0gZmkKLSAKLSsjIE9wdGlvbiBmb3IgYnJpZGdlIGhvdGtleQotK0FDX0FSR19F TkFCTEUoYnJpZGdlLWhvdGtleSwKLSsgICAgQVNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLWJyaWRn ZS1ob3RrZXldLAotKyAgICAgICAgW0VuYWJsZSBicmlkZ2UgaG90a2V5IGluc3RlYWQgb2YgT04v T0ZGIGhvdGtleV0pLAotKyAgICBbZW5hYmxlX2JyaWRnZV9ob3RrZXk9JGVuYWJsZXZhbF0sCi0r ICAgIFtlbmFibGVfYnJpZGdlX2hvdGtleT1ub10KLSspCi0rCi0raWYgdGVzdCB4IiRlbmFibGVf YnJpZGdlX2hvdGtleSIgPSB4InllcyI7IHRoZW4KLSsgICAgVVNFX0JSSURHRV9IT1RLRVk9MQot KyAgICBUUklHR0VSX0hPVEtFWVM9IkNvbnRyb2wrc3BhY2UiCi0rZWxzZQotKyAgICBVU0VfQlJJ REdFX0hPVEtFWT0wCi0rICAgIFRSSUdHRVJfSE9US0VZUz0iQ29udHJvbCtzcGFjZSxaZW5rYWt1 X0hhbmtha3UsQWx0K0thbmppLEFsdCtncmF2ZSxIYW5ndWwsQWx0K1JlbGVhc2UrQWx0X1IiCi0r ICAgIGVuYWJsZV9icmlkZ2VfaG90a2V5PSJubyAoZGlzYWJsZWQsIHVzZSAtLWVuYWJsZS1icmlk Z2UtaG90a2V5IHRvIGVuYWJsZSkiCi0rZmkKLStBQ19TVUJTVChVU0VfQlJJREdFX0hPVEtFWSkK LStBQ19TVUJTVChUUklHR0VSX0hPVEtFWVMpCi0rCi0rIyBEZWZpbmUgZGVmYXVsdCBicmlkZ2Ug ZW5naW5lIG5hbWUKLStBQ19BUkdfV0lUSChicmlkZ2UtZW5naW5lLAotKyAgICBBU19IRUxQX1NU UklORyhbLS13aXRoLWJyaWRnZS1lbmdpbmVbPWJyaWRnZV9lbmdpbmVfbmFtZV1dLAotKyAgICAg ICAgW1NldCBicmlkZ2UgZW5naW5lIG5hbWUgaW4gSU0gYnJpZGdlIGhvdGtleS4gKGRlZmF1bHQ6 IHhrYjpsYXlvdXQ6ZGVmYXVsdDopXSksCi0rICAgIFtERUZBVUxUX0JSSURHRV9FTkdJTkVfTkFN RT0kd2l0aF9icmlkZ2VfZW5naW5lXSwKLSsgICAgW0RFRkFVTFRfQlJJREdFX0VOR0lORV9OQU1F PSJ4a2I6bGF5b3V0OmRlZmF1bHQ6Il0KLSspCi0rQUNfU1VCU1QoREVGQVVMVF9CUklER0VfRU5H SU5FX05BTUUpCi0rCi0gIyBDaGVjayBpc28tY29kZXMuCi0gUEtHX0NIRUNLX01PRFVMRVMoSVNP Q09ERVMsIFsKLSAgICAgaXNvLWNvZGVzCi1AQCAtNTA5LDYgKzUzNyw3IEBAIGJ1cy9NYWtlZmls ZQotIHV0aWwvTWFrZWZpbGUKLSB1dGlsL0lNZGtpdC9NYWtlZmlsZQotIGRhdGEvTWFrZWZpbGUK LStkYXRhL2lidXMuc2NoZW1hcy5pbgotIGRhdGEvaWNvbnMvTWFrZWZpbGUKLSBkYXRhL2tleW1h cHMvTWFrZWZpbGUKLSBkYXRhL2Rjb25mL01ha2VmaWxlCi1AQCAtNTYxLDUgKzU5MCw3IEBAIEJ1 aWxkIG9wdGlvbnM6Ci0gICBObyBzbm9vcGVyIHJlZ2V4ZXMgICAgICAgICIkTk9fU05PT1BFUl9B UFBTIgotICAgUGFuZWwgaWNvbiAgICAgICAgICAgICAgICAiJElCVVNfSUNPTl9LRVlCT0FSRCIK LSAgIEVuYWJsZSBzdXJyb3VuZGluZy10ZXh0ICAgJGVuYWJsZV9zdXJyb3VuZGluZ190ZXh0Ci0r ICBFbmFibGUgYnJpZGdlIGhvdGtleSAgICAgICRlbmFibGVfYnJpZGdlX2hvdGtleQotKyAgRGVm YXVsdCBicmlkZ2UgZW5naW5lICAgICAkREVGQVVMVF9CUklER0VfRU5HSU5FX05BTUUKLSBdKQot IAotZGlmZiAtLWdpdCBhL2RhdGEvTWFrZWZpbGUuYW0gYi9kYXRhL01ha2VmaWxlLmFtCi1pbmRl eCA5OWJlNDFjLi44MjRkYTc2IDEwMDY0NAotLS0tIGEvZGF0YS9NYWtlZmlsZS5hbQotKysrIGIv ZGF0YS9NYWtlZmlsZS5hbQotQEAgLTMwLDcgKzMwLDggQEAgU1VCRElSUyArPSBkY29uZgotIGVu ZGlmCi0gCi0gc2NoZW1hc2RpciA9ICQoR0NPTkZfU0NIRU1BX0ZJTEVfRElSKQotLXNjaGVtYXNf aW5fZmlsZXMgPSBpYnVzLnNjaGVtYXMuaW4KLStzY2hlbWFzX2luX2luX2ZpbGVzID0gaWJ1cy5z Y2hlbWFzLmluLmluCi0rc2NoZW1hc19pbl9maWxlcyA9ICQoc2NoZW1hc19pbl9pbl9maWxlczou c2NoZW1hcy5pbi5pbj0uc2NoZW1hcy5pbikKLSBzY2hlbWFzX0RBVEEgPSAkKHNjaGVtYXNfaW5f ZmlsZXM6LnNjaGVtYXMuaW49LnNjaGVtYXMpCi0gQElOVExUT09MX1NDSEVNQVNfUlVMRUAKLSAK LUBAIC00NSwxMSArNDYsMTIgQEAgaWYgR0NPTkZfU0NIRU1BU19JTlNUQUxMCi0gZW5kaWYKLSAK LSBFWFRSQV9ESVNUID0gXAotLQkkKHNjaGVtYXNfaW5fZmlsZXMpIFwKLSsJJChzY2hlbWFzX2lu X2luX2ZpbGVzKSBcCi0gCSQoTlVMTCkKLSAKLSBESVNUQ0xFQU5GSUxFUyA9IFwKLSAJJChzY2hl bWFzX0RBVEEpIFwKLSsJJChzY2hlbWFzX2luX2ZpbGVzKSBcCi0gCSQoTlVMTCkKLSAKLSAtaW5j bHVkZSAkKHRvcF9zcmNkaXIpL2dpdC5tawotZGlmZiAtLWdpdCBhL2RhdGEvaWJ1cy5zY2hlbWFz LmluIGIvZGF0YS9pYnVzLnNjaGVtYXMuaW4uaW4KLWluZGV4IDg5Nzk1MTUuLjJhMmI0NTkKLS0t LSBhL2RhdGEvaWJ1cy5zY2hlbWFzLmluCi0rKysgYi9kYXRhL2lidXMuc2NoZW1hcy5pbi5pbgot QEAgLTMxLDcgKzMxLDcgQEAKLSAgICAgICA8b3duZXI+aWJ1czwvb3duZXI+Ci0gICAgICAgPHR5 cGU+bGlzdDwvdHlwZT4KLSAgICAgICA8bGlzdF90eXBlPnN0cmluZzwvbGlzdF90eXBlPgotLSAg ICAgIDxkZWZhdWx0PltDb250cm9sK3NwYWNlLFplbmtha3VfSGFua2FrdSxBbHQrS2FuamksQWx0 K2dyYXZlLEhhbmd1bCxBbHQrUmVsZWFzZStBbHRfUl08L2RlZmF1bHQ+Ci0rICAgICAgPGRlZmF1 bHQ+W0BUUklHR0VSX0hPVEtFWVNAXTwvZGVmYXVsdD4KLSAgICAgICA8bG9jYWxlIG5hbWU9IkMi PgotICAgICAgICAgPHNob3J0PlRyaWdnZXIgc2hvcnRjdXQga2V5czwvc2hvcnQ+Ci0gCSAgICA8 bG9uZz5UaGUgc2hvcnRjdXQga2V5cyBmb3IgdHVybmluZyBpbnB1dCBtZXRob2Qgb24gb3Igb2Zm PC9sb25nPgotQEAgLTEwMyw2ICsxMDMsMTkgQEAKLSAgICAgICA8L2xvY2FsZT4KLSAgICAgPC9z Y2hlbWE+Ci0gICAgIDxzY2hlbWE+Ci0rICAgICAgPGtleT4vc2NoZW1hcy9kZXNrdG9wL2lidXMv Z2VuZXJhbC9ob3RrZXkvdXNlX2JyaWRnZV9ob3RrZXk8L2tleT4KLSsgICAgICA8YXBwbHl0bz4v ZGVza3RvcC9pYnVzL2dlbmVyYWwvaG90a2V5L3VzZV9icmlkZ2VfaG90a2V5PC9hcHBseXRvPgot KyAgICAgIDxvd25lcj5pYnVzPC9vd25lcj4KLSsgICAgICA8dHlwZT5ib29sPC90eXBlPgotKyAg ICAgIDxkZWZhdWx0PnRydWU8L2RlZmF1bHQ+Ci0rICAgICAgPGxvY2FsZSBuYW1lPSJDIj4KLSsg ICAgICAgIDxzaG9ydD5Vc2UgYnJpZGdlIGhvdGtleTwvc2hvcnQ+Ci0rCSAgICA8bG9uZz5Vc2Ug dHJpZ2dlciBrZXlzIHRvIHRvZ2dsZSB0aGUgcHJldiBhbmQgbmV4dCBJTSBlbmdpbmVzCi0rICAg ICAgICAgICAgICAgICAgaWYgdHJ1ZS4gVXNlIHRyaWdnZXIga2V5cyB0byB0b2dnbGUgYW4gZW5h YmxlIGFuZCAKLSsgICAgICAgICAgICAgICAgICBkaXNhYmxlZCBJTSBlbmdpbmUgaWYgZmFsc2Uu PC9sb25nPgotKyAgICAgIDwvbG9jYWxlPgotKyAgICA8L3NjaGVtYT4KLSsgICAgPHNjaGVtYT4K LSAgICAgICA8a2V5Pi9zY2hlbWFzL2Rlc2t0b3AvaWJ1cy9wYW5lbC9zaG93PC9rZXk+Ci0gICAg ICAgPGFwcGx5dG8+L2Rlc2t0b3AvaWJ1cy9wYW5lbC9zaG93PC9hcHBseXRvPgotICAgICAgIDxv d25lcj5pYnVzPC9vd25lcj4KLWRpZmYgLS1naXQgYS9pYnVzL19jb25maWcucHkuaW4gYi9pYnVz L19jb25maWcucHkuaW4KLWluZGV4IGE4MzAxMzYuLjRjM2M5ODAgMTAwNjQ0Ci0tLS0gYS9pYnVz L19jb25maWcucHkuaW4KLSsrKyBiL2lidXMvX2NvbmZpZy5weS5pbgotQEAgLTI1LDYgKzI1LDgg QEAgX19hbGxfXyA9ICgKLSAgICAgImdldF9jb3B5cmlnaHQiLAotICAgICAiZ2V0X2xpY2Vuc2Ui LAotICAgICAiZ2V0X0lDT05fS0VZQk9BUkQiLAotKyAgICAidXNlX2JyaWRnZV9ob3RrZXkiLAot KyAgICAiREVGQVVMVF9CUklER0VfRU5HSU5FX05BTUUiLAotICAgICAiSVNPQ09ERVNfUFJFRklY IiwKLSAgICAgIl8iCi0gKQotQEAgLTU1LDQgKzU3LDggQEAgZGVmIGdldF9JQ09OX0tFWUJPQVJE KCk6Ci0gICAgICAgICByZXR1cm4gZmFsbGJhY2tfaWNvbgotICAgICByZXR1cm4gaWNvbgotIAot K2RlZiB1c2VfYnJpZGdlX2hvdGtleSgpOgotKyAgICByZXR1cm4gVHJ1ZSBpZiBAVVNFX0JSSURH RV9IT1RLRVlAID09IDEgZWxzZSBGYWxzZQotKwotK0RFRkFVTFRfQlJJREdFX0VOR0lORV9OQU1F PSdAREVGQVVMVF9CUklER0VfRU5HSU5FX05BTUVAJwotIElTT0NPREVTX1BSRUZJWD0nQElTT0NP REVTX1BSRUZJWEAnCi1kaWZmIC0tZ2l0IGEvaWJ1cy9pbnB1dGNvbnRleHQucHkgYi9pYnVzL2lu cHV0Y29udGV4dC5weQotaW5kZXggNjRhNmJhMi4uYjQ3MWUyMCAxMDA2NDQKLS0tLSBhL2lidXMv aW5wdXRjb250ZXh0LnB5Ci0rKysgYi9pYnVzL2lucHV0Y29udGV4dC5weQotQEAgLTI4LDYgKzI4 LDcgQEAgaW1wb3J0IHN5cwotIGltcG9ydCBnb2JqZWN0Ci0gaW1wb3J0IGRidXMKLSBpbXBvcnQg ZGJ1cy5sb3dsZXZlbAotK2ltcG9ydCBfY29uZmlnCi0gaW1wb3J0IG9iamVjdAotIGltcG9ydCBj b21tb24KLSBpbXBvcnQgc2VyaWFsaXphYmxlCi1AQCAtMjgzLDggKzI4NCwyMiBAQCBjbGFzcyBJ bnB1dENvbnRleHQob2JqZWN0Lk9iamVjdCk6Ci0gICAgICAgICBleGNlcHQ6Ci0gICAgICAgICAg ICAgcmV0dXJuIE5vbmUKLSAKLSsgICAgZGVmIF9faGFuZGxlX2ljX3JlcGx5KHNlbGYpOgotKyAg ICAgICAgcGFzcwotKwotKyAgICBkZWYgX19oYW5kbGVfaWNfZXJyb3Ioc2VsZiwgZSk6Ci0rICAg ICAgICBwcmludCBzZWxmLl9fZ3R5cGVfbmFtZV9fLCBzdHIoZSkKLSsKLSAgICAgZGVmIHNldF9l bmdpbmUoc2VsZiwgZW5naW5lKToKLS0gICAgICAgIHJldHVybiBzZWxmLl9fY29udGV4dC5TZXRF bmdpbmUoZW5naW5lLm5hbWUpCi0rICAgICAgICByZXR1cm4gc2VsZi5fX2NvbnRleHQuU2V0RW5n aW5lKGVuZ2luZS5uYW1lLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICByZXBseV9oYW5kbGVyPXNlbGYuX19oYW5kbGVfaWNfcmVwbHksCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2hhbmRsZXI9c2VsZi5fX2hhbmRsZV9pY19l cnJvcikKLSsKLSsgICAgZGVmIHNldF94a2JfZW5naW5lcyhzZWxmLCBlbmdpbmVzKToKLSsgICAg ICAgIGVuZ2luZXMgPSBtYXAobGFtYmRhIGU6IHNlcmlhbGl6YWJsZS5zZXJpYWxpemVfb2JqZWN0 KGUpLCBlbmdpbmVzKQotKyAgICAgICAgcmV0dXJuIHNlbGYuX19jb250ZXh0LlNldFhLQkVuZ2lu ZXMoZW5naW5lcywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJlcGx5X2hhbmRsZXI9c2VsZi5fX2hhbmRsZV9pY19yZXBseSwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2hhbmRsZXI9c2VsZi5fX2hhbmRsZV9p Y19lcnJvcikKLSAKLSAgICAgZGVmIGludHJvc3BlY3Qoc2VsZik6Ci0gICAgICAgICByZXR1cm4g c2VsZi5fX2NvbnRleHQuSW50cm9zcGVjdCgpCi1kaWZmIC0tZ2l0IGEvaWJ1cy9pbnRlcmZhY2Uv aWlucHV0Y29udGV4dC5weSBiL2lidXMvaW50ZXJmYWNlL2lpbnB1dGNvbnRleHQucHkKLWluZGV4 IDA2Y2U1MTkuLjNiNjU1ZGMgMTAwNjQ0Ci0tLS0gYS9pYnVzL2ludGVyZmFjZS9paW5wdXRjb250 ZXh0LnB5Ci0rKysgYi9pYnVzL2ludGVyZmFjZS9paW5wdXRjb250ZXh0LnB5Ci1AQCAtNzYsOCAr NzYsMTEgQEAgY2xhc3MgSUlucHV0Q29udGV4dChkYnVzLnNlcnZpY2UuT2JqZWN0KToKLSAgICAg QG1ldGhvZChvdXRfc2lnbmF0dXJlPSJ2IikKLSAgICAgZGVmIEdldEVuZ2luZShzZWxmKTogcGFz cwotIAotLSAgICBAbWV0aG9kKGluX3NpZ25hdHVyZT0icyIpCi0tICAgIGRlZiBTZXRFbmdpbmUo c2VsZiwgZW5naW5lX25hbWUpOiBwYXNzCi0rICAgIEBhc3luY19tZXRob2QoaW5fc2lnbmF0dXJl PSJzIikKLSsgICAgZGVmIFNldEVuZ2luZShzZWxmLCBlbmdpbmVfbmFtZSwgcmVwbHlfY2IsIGVy cm9yX2NiKTogcGFzcwotKwotKyAgICBAYXN5bmNfbWV0aG9kKGluX3NpZ25hdHVyZT0iYXYiKQot KyAgICBkZWYgU2V0WEtCRW5naW5lcyhzZWxmLCBlbmdpbmVzLCByZXBseV9jYiwgZXJyb3JfY2Ip OiBwYXNzCi0gCi0gICAgIEBtZXRob2QoKQotICAgICBkZWYgRGVzdHJveShzZWxmKTogcGFzcwot ZGlmZiAtLWdpdCBhL2lidXMveGtieG1sLnB5LmluIGIvaWJ1cy94a2J4bWwucHkuaW4KLWluZGV4 IDk0MDdjMTMuLmJmNjE4MTAgMTAwNjQ0Ci0tLS0gYS9pYnVzL3hrYnhtbC5weS5pbgotKysrIGIv aWJ1cy94a2J4bWwucHkuaW4KLUBAIC0zMyw2ICszMyw4IEBAIGltcG9ydCBlbmdpbmVkZXNjCi0g ZnJvbSB4bWwuc2F4LnNheHV0aWxzIGltcG9ydCBYTUxGaWx0ZXJCYXNlLCBYTUxHZW5lcmF0b3IK LSBmcm9tIHhtbC5zYXguX2V4Y2VwdGlvbnMgaW1wb3J0IFNBWFBhcnNlRXhjZXB0aW9uCi0gZnJv bSBjU3RyaW5nSU8gaW1wb3J0IFN0cmluZ0lPCi0rZnJvbSBfY29uZmlnIGltcG9ydCBERUZBVUxU X0JSSURHRV9FTkdJTkVfTkFNRQotK2Zyb20gX2NvbmZpZyBpbXBvcnQgZ2V0X0lDT05fS0VZQk9B UkQKLSAKLSB0cnk6Ci0gICAgIGZyb20gZ2xpYiBpbXBvcnQgZ2V0X3VzZXJfY29uZmlnX2Rpcgot QEAgLTMxNSw2ICszMTcsOCBAQCBjbGFzcyBYS0JDb25maWdSZWdpc3RyeSgpOgotICAgICAgICAg ICAgIGVuZ2luZV9sYXlvdXQgPSBsYXlvdXQKLSAKLSAgICAgICAgIGljb24gPSAnaWJ1cy1lbmdp bmUnCi0rICAgICAgICBpZiBuYW1lLnN0YXJ0c3dpdGgoREVGQVVMVF9CUklER0VfRU5HSU5FX05B TUUpOgotKyAgICAgICAgICAgIGljb24gPSBnZXRfSUNPTl9LRVlCT0FSRCgpCi0gCi0gICAgICAg ICBlbmdpbmUgPSBlbmdpbmVkZXNjLkVuZ2luZURlc2MobmFtZSwgbG9uZ25hbWUsIGRlc2MsIGxh bmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0xHUEwyLjEnLAot ZGlmZiAtLWdpdCBhL3NldHVwL2VuZ2luZWNvbWJvYm94LnB5IGIvc2V0dXAvZW5naW5lY29tYm9i b3gucHkKLWluZGV4IDczODMxNzcuLmQzNTc1N2QgMTAwNjQ0Ci0tLS0gYS9zZXR1cC9lbmdpbmVj b21ib2JveC5weQotKysrIGIvc2V0dXAvZW5naW5lY29tYm9ib3gucHkKLUBAIC02NCw2ICs2NCw5 IEBAIGNsYXNzIEVuZ2luZUNvbWJvQm94KGd0ay5Db21ib0JveCk6Ci0gICAgICAgICBzZWxmLl9f bW9kZWwuc2V0KGl0ZXIxLCAwLCAwKQotICAgICAgICAgbGFuZyA9IHt9Ci0gICAgICAgICBmb3Ig ZSBpbiBlbmdpbmVzOgotKyAgICAgICAgICAgIGlmIGlidXMudXNlX2JyaWRnZV9ob3RrZXkoKSBh bmQgXAotKyAgICAgICAgICAgICAgIGUubmFtZS5zdGFydHN3aXRoKGlidXMuREVGQVVMVF9CUklE R0VfRU5HSU5FX05BTUUpOgotKyAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAg IGwgPSBpYnVzLmdldF9sYW5ndWFnZV9uYW1lKGUubGFuZ3VhZ2UpCi0gICAgICAgICAgICAgaWYg bCBub3QgaW4gbGFuZzoKLSAgICAgICAgICAgICAgICAgbGFuZ1tsXSA9IFtdCi1kaWZmIC0tZ2l0 IGEvc2V0dXAvZW5naW5ldHJlZXZpZXcucHkgYi9zZXR1cC9lbmdpbmV0cmVldmlldy5weQotaW5k ZXggZjYyMDM2MS4uNjY0ZGM5OSAxMDA2NDQKLS0tLSBhL3NldHVwL2VuZ2luZXRyZWV2aWV3LnB5 Ci0rKysgYi9zZXR1cC9lbmdpbmV0cmVldmlldy5weQotQEAgLTE3Miw4ICsxNzIsMTIgQEAgY2xh c3MgRW5naW5lVHJlZVZpZXcoZ3RrLlRyZWVWaWV3KToKLSAgICAgICAgIGZvciBlIGluIGVuZ2lu ZXM6Ci0gICAgICAgICAgICAgaWYgZSBpbiBzZWxmLl9fZW5naW5lczoKLSAgICAgICAgICAgICAg ICAgY29udGludWUKLS0gICAgICAgICAgICBpdGVyID0gc2VsZi5fX21vZGVsLmFwcGVuZChOb25l KQotLSAgICAgICAgICAgIHNlbGYuX19tb2RlbC5zZXQoaXRlciwgMCwgZSkKLSsgICAgICAgICAg ICBpZiBpYnVzLnVzZV9icmlkZ2VfaG90a2V5KCkgYW5kIFwKLSsgICAgICAgICAgICAgICBlLm5h bWUuc3RhcnRzd2l0aChpYnVzLkRFRkFVTFRfQlJJREdFX0VOR0lORV9OQU1FKToKLSsgICAgICAg ICAgICAgICAgcGFzcwotKyAgICAgICAgICAgIGVsc2U6Ci0rICAgICAgICAgICAgICAgIGl0ZXIg PSBzZWxmLl9fbW9kZWwuYXBwZW5kKE5vbmUpCi0rICAgICAgICAgICAgICAgIHNlbGYuX19tb2Rl bC5zZXQoaXRlciwgMCwgZSkKLSAgICAgICAgICAgICBzZWxmLl9fZW5naW5lcy5hZGQoZSkKLSAg ICAgICAgIHNlbGYuX19lbWl0X2NoYW5nZWQoKQotIAotZGlmZiAtLWdpdCBhL3NldHVwL21haW4u cHkgYi9zZXR1cC9tYWluLnB5Ci1pbmRleCA3ZjRhMDQwLi5hNzczOTQ0IDEwMDY0NAotLS0tIGEv c2V0dXAvbWFpbi5weQotKysrIGIvc2V0dXAvbWFpbi5weQotQEAgLTIxMyw2ICsyMTMsMjIgQEAg Y2xhc3MgU2V0dXAob2JqZWN0KToKLSAgICAgICAgICAgICBzZWxmLl9fY29uZmlnLmdldF92YWx1 ZSgiZ2VuZXJhbCIsICJ1c2VfZ2xvYmFsX2VuZ2luZSIsIEZhbHNlKSkKLSAgICAgICAgIHNlbGYu X19jaGVja2J1dHRvbl91c2VfZ2xvYmFsX2VuZ2luZS5jb25uZWN0KCJ0b2dnbGVkIiwgc2VsZi5f X2NoZWNrYnV0dG9uX3VzZV9nbG9iYWxfZW5naW5lX3RvZ2dsZWRfY2IpCi0gCi0rICAgICAgICAj IGhvdGtleSBzZXR0aW5ncwotKyAgICAgICAgaWYgaWJ1cy51c2VfYnJpZGdlX2hvdGtleSgpOgot KyAgICAgICAgICAgIHNlbGYuX19zZXRfYnJpZGdlX2hvdGtleV9sYWJlbHMoKQotKyAgICAgICAg ICAgIHNlbGYuX19jaGVja2J1dHRvbl91c2Vfb25fb2ZmX2hvdGtleSA9IFwKLSsgICAgICAgICAg ICAgICAgc2VsZi5fX2J1aWxkZXIuZ2V0X29iamVjdCgiY2hlY2tidXR0b25fdXNlX29uX29mZl9o b3RrZXkiKQotKyAgICAgICAgICAgIHNlbGYuX19jaGVja2J1dHRvbl91c2Vfb25fb2ZmX2hvdGtl eS5zZXRfYWN0aXZlKAotKyAgICAgICAgICAgICAgICBub3Qgc2VsZi5fX2NvbmZpZy5nZXRfdmFs dWUoImdlbmVyYWwvaG90a2V5IiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJ1c2VfYnJpZGdlX2hvdGtleSIsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBUcnVlKSkKLSsgICAgICAgICAgICBzZWxmLl9fY2hlY2tidXR0 b25fdXNlX29uX29mZl9ob3RrZXkuY29ubmVjdCgidG9nZ2xlZCIsCi0rICAgICAgICAgICAgICAg IHNlbGYuX19jaGVja2J1dHRvbl91c2Vfb25fb2ZmX2hvdGtleV9jYikKLSsgICAgICAgIGVsc2U6 Ci0rICAgICAgICAgICAgY2hlY2tidXR0b24gPSBzZWxmLl9fYnVpbGRlci5nZXRfb2JqZWN0KCJj aGVja2J1dHRvbl91c2Vfb25fb2ZmX2hvdGtleSIpCi0rICAgICAgICAgICAgY2hlY2tidXR0b24u aGlkZSgpCi0rICAgICAgICAgICAgY2hlY2tidXR0b24uc2V0X25vX3Nob3dfYWxsKFRydWUpCi0r Ci0gICAgICAgICAjIGluaXQgZW5naW5lIHBhZ2UKLSAgICAgICAgIHByZWxvYWRfZW5naW5lX21v ZGUgPSBzZWxmLl9fY29uZmlnLmdldF92YWx1ZSgiZ2VuZXJhbCIsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInByZWxvYWRfZW5naW5lX21v ZGUiLAotQEAgLTUxOSw2ICs1MzUsMzUgQEAgY2xhc3MgU2V0dXAob2JqZWN0KToKLSAgICAgICAg IHZhbHVlID0gc2VsZi5fX2NoZWNrYnV0dG9uX3VzZV9nbG9iYWxfZW5naW5lLmdldF9hY3RpdmUo KQotICAgICAgICAgc2VsZi5fX2NvbmZpZy5zZXRfdmFsdWUoImdlbmVyYWwiLCAidXNlX2dsb2Jh bF9lbmdpbmUiLCB2YWx1ZSkKLSAKLSsgICAgZGVmIF9fY2hlY2tidXR0b25fdXNlX29uX29mZl9o b3RrZXlfY2Ioc2VsZiwgYnV0dG9uKToKLSsgICAgICAgIHZhbHVlID0gc2VsZi5fX2NoZWNrYnV0 dG9uX3VzZV9vbl9vZmZfaG90a2V5LmdldF9hY3RpdmUoKQotKyAgICAgICAgc2VsZi5fX2NvbmZp Zy5zZXRfdmFsdWUoImdlbmVyYWwvaG90a2V5IiwgInVzZV9icmlkZ2VfaG90a2V5IiwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdCB2YWx1ZSkKLSsgICAgICAgIHNlbGYuX19z ZXRfYnJpZGdlX2hvdGtleV9sYWJlbHMoKQotKwotKyAgICBkZWYgX19zZXRfYnJpZGdlX2hvdGtl eV9sYWJlbHMoc2VsZik6Ci0rICAgICAgICBsYWJlbCA9IHNlbGYuX19idWlsZGVyLmdldF9vYmpl Y3QoImxhYmVsX3RyaWdnZXJfaG90a2V5IikKLSsgICAgICAgIGxhYmVsX2VuYWJsZSA9IHNlbGYu X19idWlsZGVyLmdldF9vYmplY3QoImxhYmVsX2VuYWJsZSIpCi0rICAgICAgICBoYm94X2VuYWJs ZSA9IHNlbGYuX19idWlsZGVyLmdldF9vYmplY3QoImhib3hfZW5hYmxlIikKLSsgICAgICAgIGxh YmVsX2Rpc2FibGUgPSBzZWxmLl9fYnVpbGRlci5nZXRfb2JqZWN0KCJsYWJlbF9kaXNhYmxlIikK LSsgICAgICAgIGhib3hfZGlzYWJsZSA9IHNlbGYuX19idWlsZGVyLmdldF9vYmplY3QoImhib3hf ZGlzYWJsZSIpCi0rICAgICAgICBpZiBzZWxmLl9fY29uZmlnLmdldF92YWx1ZSgiZ2VuZXJhbC9o b3RrZXkiLCAidXNlX2JyaWRnZV9ob3RrZXkiLCBUcnVlKToKLSsgICAgICAgICAgICBsYWJlbC5z ZXRfbGFiZWwoXygiVG9nZ2xlIGlucHV0IG1ldGhvZHM6IikpCi0rICAgICAgICAgICAgbGFiZWwu c2V0X3Rvb2x0aXBfdGV4dChfKCJUaGUgc2hvcnRjdXQga2V5cyB0byB0b2dnbGUgIgotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGhlIHByZXZpb3VzIGFuZCBuZXh0IGlu cHV0IG1ldGhvZHMiKSkKLSsgICAgICAgICAgICBsYWJlbF9lbmFibGUuaGlkZSgpCi0rICAgICAg ICAgICAgaGJveF9lbmFibGUuaGlkZSgpCi0rICAgICAgICAgICAgbGFiZWxfZGlzYWJsZS5oaWRl KCkKLSsgICAgICAgICAgICBoYm94X2Rpc2FibGUuaGlkZSgpCi0rICAgICAgICBlbHNlOgotKyAg ICAgICAgICAgIGxhYmVsLnNldF9sYWJlbChfKCJFbmFibGUgb3IgZGlzYWJsZToiKSkKLSsgICAg ICAgICAgICBsYWJlbC5zZXRfdG9vbHRpcF90ZXh0KF8oIlRoZSBzaG9ydGN1dCBrZXlzIGZvciB0 dXJuaW5nICIKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImlucHV0IG1l dGhvZCBvbiBvciBvZmYiKSkKLSsgICAgICAgICAgICBsYWJlbF9lbmFibGUuc2hvdygpCi0rICAg ICAgICAgICAgaGJveF9lbmFibGUuc2hvdygpCi0rICAgICAgICAgICAgbGFiZWxfZGlzYWJsZS5z aG93KCkKLSsgICAgICAgICAgICBoYm94X2Rpc2FibGUuc2hvdygpCi0rCi0gICAgIGRlZiBfX2Nv bmZpZ192YWx1ZV9jaGFuZ2VkX2NiKHNlbGYsIGJ1cywgc2VjdGlvbiwgbmFtZSwgdmFsdWUpOgot ICAgICAgICAgaWYgc2VjdGlvbiA9PSAnZ2VuZXJhbCcgYW5kIG5hbWUgPT0gJ3ByZWxvYWRfZW5n aW5lcyc6Ci0gICAgICAgICAgICAgZW5naW5lcyA9IHNlbGYuX19nZXRfZW5naW5lX2Rlc2NzX2Zy b21fbmFtZXModmFsdWUpCi1kaWZmIC0tZ2l0IGEvc2V0dXAvc2V0dXAudWkgYi9zZXR1cC9zZXR1 cC51aQotaW5kZXggZjFlNmQwYi4uNjcxYjg0YyAxMDA2NDQKLS0tLSBhL3NldHVwL3NldHVwLnVp Ci0rKysgYi9zZXR1cC9zZXR1cC51aQotQEAgLTEwMCw2ICsxMDAsNyBAQAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9Im5fY29sdW1ucyI+MjwvcHJvcGVy dHk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0iY29s dW1uX3NwYWNpbmciPjEyPC9wcm9wZXJ0eT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDxwcm9wZXJ0eSBuYW1lPSJyb3dfc3BhY2luZyI+NjwvcHJvcGVydHk+Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0ibm9fc2hvd19hbGwiPlRydWU8 L3Byb3BlcnR5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNoaWxkPgotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b2JqZWN0IGNsYXNzPSJHdGtMYWJlbCIg aWQ9ImxhYmVsOCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHByb3Bl cnR5IG5hbWU9InZpc2libGUiPlRydWU8L3Byb3BlcnR5PgotQEAgLTIzMiw3ICsyMzMsNyBAQAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3BhY2tpbmc+Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA8L2NoaWxkPgotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPGNoaWxkPgotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b2Jq ZWN0IGNsYXNzPSJHdGtMYWJlbCIgaWQ9ImxhYmVsNyI+Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDxvYmplY3QgY2xhc3M9Ikd0a0xhYmVsIiBpZD0ibGFiZWxfdHJpZ2dlcl9o b3RrZXkiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBu YW1lPSJ2aXNpYmxlIj5UcnVlPC9wcm9wZXJ0eT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0idG9vbHRpcF90ZXh0IiB0cmFuc2xhdGFibGU9Inll cyI+VGhlIHNob3J0Y3V0IGtleXMgZm9yIHR1cm5pbmcgaW5wdXQgbWV0aG9kIG9uIG9yIG9mZjwv cHJvcGVydHk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5 IG5hbWU9InhhbGlnbiI+MDwvcHJvcGVydHk+Ci1AQCAtMjQ0LDcgKzI0NSw3IEBACi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcGFja2luZz4KLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDwvY2hpbGQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA8Y2hpbGQ+Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvYmplY3QgY2xh c3M9Ikd0a0xhYmVsIiBpZD0ibGFiZWwxOCI+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDxvYmplY3QgY2xhc3M9Ikd0a0xhYmVsIiBpZD0ibGFiZWxfZW5hYmxlIj4KLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0idmlzaWJsZSI+ VHJ1ZTwvcHJvcGVydHk+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBy b3BlcnR5IG5hbWU9InhhbGlnbiI+MDwvcHJvcGVydHk+Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9ImxhYmVsIiB0cmFuc2xhdGFibGU9InllcyI+ RW5hYmxlOjwvcHJvcGVydHk+Ci1AQCAtMjU3LDcgKzI1OCw3IEBACi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDwvcGFja2luZz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDwvY2hpbGQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2hpbGQ+ Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvYmplY3QgY2xhc3M9Ikd0a0hC b3giIGlkPSJoYm94MiI+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvYmpl Y3QgY2xhc3M9Ikd0a0hCb3giIGlkPSJoYm94X2VuYWJsZSI+Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9InZpc2libGUiPlRydWU8L3Byb3BlcnR5 PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJz cGFjaW5nIj42PC9wcm9wZXJ0eT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA8Y2hpbGQ+Ci1AQCAtMjkyLDcgKzI5Myw3IEBACi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDwvcGFja2luZz4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwv Y2hpbGQ+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2hpbGQ+Ci0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvYmplY3QgY2xhc3M9Ikd0a0xhYmVsIiBpZD0i bGFiZWwxOSI+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvYmplY3QgY2xh c3M9Ikd0a0xhYmVsIiBpZD0ibGFiZWxfZGlzYWJsZSI+Ci0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9InZpc2libGUiPlRydWU8L3Byb3BlcnR5Pgot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJ4YWxp Z24iPjA8L3Byb3BlcnR5PgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxw cm9wZXJ0eSBuYW1lPSJsYWJlbCIgdHJhbnNsYXRhYmxlPSJ5ZXMiPkRpc2FibGU6PC9wcm9wZXJ0 eT4KLUBAIC0zMDUsNyArMzA2LDcgQEAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgPC9wYWNraW5nPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jaGlsZD4K LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaGlsZD4KLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgPG9iamVjdCBjbGFzcz0iR3RrSEJveCIgaWQ9Imhib3gzIj4K LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9iamVjdCBjbGFzcz0iR3RrSEJv eCIgaWQ9Imhib3hfZGlzYWJsZSI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgPHByb3BlcnR5IG5hbWU9InZpc2libGUiPlRydWU8L3Byb3BlcnR5PgotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJzcGFjaW5nIj42PC9wcm9w ZXJ0eT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2hpbGQ+Ci1AQCAt OTYyLDYgKzk2Myw1OSBAQCBZb3UgbWF5IHVzZSB1cC9kb3duIGJ1dHRvbnMgdG8gY2hhbmdlIGl0 LiZsdDsvaSZndDsmbHQ7L3NtYWxsJmd0OzwvcHJvcGVydHk+Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgPHByb3BlcnR5IG5hbWU9InBvc2l0aW9uIj4xPC9wcm9wZXJ0eT4KLSAgICAgICAgICAg ICAgICAgICAgICAgPC9wYWNraW5nPgotICAgICAgICAgICAgICAgICAgICAgPC9jaGlsZD4KLSsg ICAgICAgICAgICAgICAgICAgIDxjaGlsZD4KLSsgICAgICAgICAgICAgICAgICAgICAgPG9iamVj dCBjbGFzcz0iR3RrRnJhbWUiIGlkPSJmcmFtZTYiPgotKyAgICAgICAgICAgICAgICAgICAgICAg IDxwcm9wZXJ0eSBuYW1lPSJ2aXNpYmxlIj5UcnVlPC9wcm9wZXJ0eT4KLSsgICAgICAgICAgICAg ICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0ibGFiZWxfeGFsaWduIj4wPC9wcm9wZXJ0eT4KLSsg ICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0ic2hhZG93X3R5cGUiPm5vbmU8 L3Byb3BlcnR5PgotKyAgICAgICAgICAgICAgICAgICAgICAgIDxjaGlsZD4KLSsgICAgICAgICAg ICAgICAgICAgICAgICAgIDxvYmplY3QgY2xhc3M9Ikd0a0FsaWdubWVudCIgaWQ9ImFsaWdubWVu dDE0Ij4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9InZpc2li bGUiPlRydWU8L3Byb3BlcnR5PgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVy dHkgbmFtZT0ibGVmdF9wYWRkaW5nIj4xMjwvcHJvcGVydHk+Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDxjaGlsZD4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b2JqZWN0 IGNsYXNzPSJHdGtBbGlnbm1lbnQiIGlkPSJhbGlnbm1lbnQxNSI+Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0idmlzaWJsZSI+VHJ1ZTwvcHJvcGVydHk+ Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0idG9wX3Bh ZGRpbmciPjY8L3Byb3BlcnR5PgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBy b3BlcnR5IG5hbWU9ImxlZnRfcGFkZGluZyI+MTI8L3Byb3BlcnR5PgotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgPGNoaWxkPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA8b2JqZWN0IGNsYXNzPSJHdGtWQm94IiBpZD0idmJveDEwIj4KLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0idmlzaWJsZSI+VHJ1ZTwvcHJv cGVydHk+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5h bWU9Im9yaWVudGF0aW9uIj52ZXJ0aWNhbDwvcHJvcGVydHk+Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9InNwYWNpbmciPjY8L3Byb3BlcnR5Pgot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjaGlsZD4KLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvYmplY3QgY2xhc3M9Ikd0a0NoZWNrQnV0dG9u IiBpZD0iY2hlY2tidXR0b25fdXNlX29uX29mZl9ob3RrZXkiPgotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0ibGFiZWwiIHRyYW5zbGF0YWJs ZT0ieWVzIj5Vc2UgdG9nZ2xlIHNob3J0Y3V0IGtleXMgdG8gZW5hYmxlIG9yIGRpc2FibGUgYW4g aW5wdXQgbWV0aG9kPC9wcm9wZXJ0eT4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPHByb3BlcnR5IG5hbWU9InZpc2libGUiPlRydWU8L3Byb3BlcnR5PgotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0iY2FuX2Zv Y3VzIj5UcnVlPC9wcm9wZXJ0eT4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgPHByb3BlcnR5IG5hbWU9InJlY2VpdmVzX2RlZmF1bHQiPkZhbHNlPC9wcm9wZXJ0eT4K LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9 ImRyYXdfaW5kaWNhdG9yIj5UcnVlPC9wcm9wZXJ0eT4KLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDwvb2JqZWN0PgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgPHBhY2tpbmc+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDxwcm9wZXJ0eSBuYW1lPSJleHBhbmQiPkZhbHNlPC9wcm9wZXJ0eT4KLSsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9ImZpbGwiPkZhbHNl PC9wcm9wZXJ0eT4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBy b3BlcnR5IG5hbWU9InBvc2l0aW9uIj4wPC9wcm9wZXJ0eT4KLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDwvcGFja2luZz4KLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA8L2NoaWxkPgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8 L29iamVjdD4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2hpbGQ+Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vYmplY3Q+Ci0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDwvY2hpbGQ+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICA8L29iamVjdD4K LSsgICAgICAgICAgICAgICAgICAgICAgICA8L2NoaWxkPgotKyAgICAgICAgICAgICAgICAgICAg ICAgIDxjaGlsZCB0eXBlPSJsYWJlbCI+Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICA8b2Jq ZWN0IGNsYXNzPSJHdGtMYWJlbCIgaWQ9ImxhYmVsNTAiPgotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICA8cHJvcGVydHkgbmFtZT0idmlzaWJsZSI+VHJ1ZTwvcHJvcGVydHk+Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJsYWJlbCIgdHJhbnNsYXRhYmxl PSJ5ZXMiPiZsdDtiJmd0O0hvdCBrZXlzIHNldHRpbmcmbHQ7L2ImZ3Q7PC9wcm9wZXJ0eT4KLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgPHByb3BlcnR5IG5hbWU9InVzZV9tYXJrdXAiPlRy dWU8L3Byb3BlcnR5PgotKyAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vYmplY3Q+Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgPC9jaGlsZD4KLSsgICAgICAgICAgICAgICAgICAgICAgPC9v YmplY3Q+Ci0rICAgICAgICAgICAgICAgICAgICAgIDxwYWNraW5nPgotKyAgICAgICAgICAgICAg ICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJleHBhbmQiPkZhbHNlPC9wcm9wZXJ0eT4KLSsgICAg ICAgICAgICAgICAgICAgICAgICA8cHJvcGVydHkgbmFtZT0iZmlsbCI+RmFsc2U8L3Byb3BlcnR5 PgotKyAgICAgICAgICAgICAgICAgICAgICAgIDxwcm9wZXJ0eSBuYW1lPSJwb3NpdGlvbiI+Mjwv cHJvcGVydHk+Ci0rICAgICAgICAgICAgICAgICAgICAgIDwvcGFja2luZz4KLSsgICAgICAgICAg ICAgICAgICAgIDwvY2hpbGQ+Ci0gICAgICAgICAgICAgICAgICAgPC9vYmplY3Q+Ci0gICAgICAg ICAgICAgICAgIDwvY2hpbGQ+Ci0gICAgICAgICAgICAgICA8L29iamVjdD4KLWRpZmYgLS1naXQg YS9zcmMvTWFrZWZpbGUuYW0gYi9zcmMvTWFrZWZpbGUuYW0KLWluZGV4IDY0NTQ1MjIuLjMxOWRm M2MgMTAwNjQ0Ci0tLS0gYS9zcmMvTWFrZWZpbGUuYW0KLSsrKyBiL3NyYy9NYWtlZmlsZS5hbQot QEAgLTM4LDE0ICszOCwxNiBAQCBJTlRST1NQRUNUSU9OX0dJUlMgPQotIENMRUFORklMRVMgPQot IAotICMgQyBwcmVwcm9jZXNzb3IgZmxhZ3MKLS1BTV9DUFBGTEFHUyA9ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCi0tICAgIC1ER19MT0dfRE9NQUlOPVwiSUJVU1wiICAgICAg ICAgICAgICAgICAgICAgXAotLSAgICBAR0xJQjJfQ0ZMQUdTQCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKLS0gICAgQEdPQkpFQ1QyX0NGTEFHU0AgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCi0tICAgIEBHSU8yX0NGTEFHU0AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XAotLSAgICAtRElCVVNfREFUQV9ESVI9XCIkKHBrZ2RhdGFkaXIpXCIgICAgICAgICAgIFwKLS0g ICAgLURJQlVTX0NPTVBJTEFUSU9OICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0tICAgIC1E SVNPQ09ERVNfUFJFRklYPVwiJChJU09DT0RFU19QUkVGSVgpXCIgICAgXAotK0FNX0NQUEZMQUdT ID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKLSsgICAgLURHX0xPR19ET01BSU49XCJJQlVTXCIgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCi0rICAgIEBHTElCMl9DRkxBR1NAICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotKyAgICBAR09CSkVD VDJfQ0ZMQUdTQCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKLSsgICAgQEdJTzJfQ0ZMQUdTQCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCi0rICAgIC1ESUJVU19EQVRBX0RJUj1cIiQocGtnZGF0 YWRpcilcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotKyAgICAtRElCVVNf Q09NUElMQVRJT04gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKLSsgICAgLURJU09DT0RFU19QUkVGSVg9XCIkKElTT0NPREVTX1BSRUZJWClcIiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCi0rICAgIC1EVVNFX0JSSURHRV9IT1RLRVk9JChVU0Vf QlJJREdFX0hPVEtFWSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotKyAgICAtRERFRkFV TFRfQlJJREdFX0VOR0lORV9OQU1FPVwiJChERUZBVUxUX0JSSURHRV9FTkdJTkVfTkFNRSlcIiAg ICAgIFwKLSAgICAgJChOVUxMKQotIAotICMgaWJ1cyBsaWJyYXJ5Ci1kaWZmIC0tZ2l0IGEvc3Jj L2lidXNob3RrZXkuYyBiL3NyYy9pYnVzaG90a2V5LmMKLWluZGV4IDMyZjgzMzguLmJlZjdkZmMg MTAwNjQ0Ci0tLS0gYS9zcmMvaWJ1c2hvdGtleS5jCi0rKysgYi9zcmMvaWJ1c2hvdGtleS5jCi1A QCAtNTYyLDMgKzU2MiwxNCBAQCBpYnVzX2hvdGtleV9wcm9maWxlX2xvb2t1cF9ob3RrZXkgKElC dXNIb3RrZXlQcm9maWxlICpwcm9maWxlLAotIAotICAgICByZXR1cm4gKEdRdWFyaykgR1BPSU5U RVJfVE9fVUlOVCAoZ190cmVlX2xvb2t1cCAocHJpdi0+aG90a2V5cywgJmhvdGtleSkpOwotIH0K LSsKLSt2b2lkCi0raWJ1c19ob3RrZXlfcHJvZmlsZV9mb3JlYWNoX2hvdGtleSAoSUJ1c0hvdGtl eVByb2ZpbGUgKnByb2ZpbGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg R1RyYXZlcnNlRnVuYyAgICAgIGZ1bmMsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ3BvaW50ZXIgICAgICAgICAgIHVzZXJfZGF0YSkKLSt7Ci0rICAgIElCdXNIb3RrZXlQ cm9maWxlUHJpdmF0ZSAqcHJpdjsKLSsgICAgcHJpdiA9IElCVVNfSE9US0VZX1BST0ZJTEVfR0VU X1BSSVZBVEUgKHByb2ZpbGUpOwotKwotKyAgICBnX3RyZWVfZm9yZWFjaCAocHJpdi0+aG90a2V5 cywgZnVuYywgdXNlcl9kYXRhKTsKLSt9Ci1kaWZmIC0tZ2l0IGEvc3JjL2lidXNob3RrZXkuaCBi L3NyYy9pYnVzaG90a2V5LmgKLWluZGV4IDlhMzQxZjYuLjkyZWM2YWYgMTAwNjQ0Ci0tLS0gYS9z cmMvaWJ1c2hvdGtleS5oCi0rKysgYi9zcmMvaWJ1c2hvdGtleS5oCi1AQCAtMTc5LDUgKzE3OSwx NiBAQCBHUXVhcmsgICAgICAgICAgIGlidXNfaG90a2V5X3Byb2ZpbGVfbG9va3VwX2hvdGtleQot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCAg ICAgICAgICAgICAgIGtleXZhbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ3VpbnQgICAgICAgICAgICAgICBtb2RpZmllcnMpOwotIAotKy8qKgot KyAqIGlidXNfaG90a2V5X3Byb2ZpbGVfZm9yZWFjaF9ob3RrZXk6Ci0rICogQHByb2ZpbGU6IEFu IElCdXNIb3RrZXlQcm9maWxlLgotKyAqIEBmdW5jOiAoc2NvcGUgY2FsbCk6IEEgR1RyYXZlcnNl RnVuYyBmb3IgZ190cmVlX3RyYXZlcnNlLgotKyAqIEB1c2VyX2RhdGE6IEEgZ3BvaW50ZXIgZm9y IGdfdHJlZV90cmF2ZXJzZS4KLSsgKi8KLSt2b2lkICAgICAgICAgICAgIGlidXNfaG90a2V5X3By b2ZpbGVfZm9yZWFjaF9ob3RrZXkKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoSUJ1c0hvdGtleVByb2ZpbGUgICpwcm9maWxlLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVHJhdmVyc2VGdW5jICAgICAg IGZ1bmMsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGdwb2ludGVyICAgICAgICAgICAgdXNlcl9kYXRhKTsKLSsKLSBHX0VORF9ERUNMUwotICNlbmRp ZgotZGlmZiAtLWdpdCBhL3NyYy9pYnVzaW5wdXRjb250ZXh0LmMgYi9zcmMvaWJ1c2lucHV0Y29u dGV4dC5jCi1pbmRleCA1NGUzMGFlLi5jMzdhNzFkIDEwMDY0NAotLS0tIGEvc3JjL2lidXNpbnB1 dGNvbnRleHQuYwotKysrIGIvc3JjL2lidXNpbnB1dGNvbnRleHQuYwotQEAgLTEyMTksNiArMTIx OSwzMyBAQCBpYnVzX2lucHV0X2NvbnRleHRfc2V0X2VuZ2luZSAoSUJ1c0lucHV0Q29udGV4dCAq Y29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICk7Ci0gfQotIAotK3ZvaWQKLStpYnVz X2lucHV0X2NvbnRleHRfc2V0X3hrYl9lbmdpbmVzIChJQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0 LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMaXN0ICAgICAgICAgICAg Kmxpc3QpCi0rewotKyAgICBHVmFyaWFudEJ1aWxkZXIgYnVpbGRlcjsKLSsgICAgR0xpc3QgKnA7 Ci0rCi0rICAgIGdfYXNzZXJ0IChJQlVTX0lTX0lOUFVUX0NPTlRFWFQgKGNvbnRleHQpKTsKLSsg ICAgZ19hc3NlcnQgKGxpc3QpOwotKwotKyAgICBnX3ZhcmlhbnRfYnVpbGRlcl9pbml0ICgmYnVp bGRlciwgR19WQVJJQU5UX1RZUEUgKCJhdiIpKTsKLSsgICAgZm9yIChwID0gbGlzdDsgcDsgcCA9 IHAtPm5leHQpIHsKLSsgICAgICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZCAoJmJ1aWxkZXIsICJ2 IiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWJ1c19zZXJpYWxpemFibGVfc2Vy aWFsaXplICgoSUJ1c1NlcmlhbGl6YWJsZSAqKSBwLT5kYXRhKSk7Ci0rICAgIH0KLSsKLSsgICAg Z19kYnVzX3Byb3h5X2NhbGwgKChHREJ1c1Byb3h5ICopIGNvbnRleHQsCi0rICAgICAgICAgICAg ICAgICAgICAgICAiU2V0WEtCRW5naW5lcyIsICAgICAgICAgICAgICAgICAgICAgLyogbWV0aG9k X25hbWUgKi8KLSsgICAgICAgICAgICAgICAgICAgICAgIGdfdmFyaWFudF9uZXcgKCIoYXYpIiwg JmJ1aWxkZXIpLCAgICAvKiBwYXJhbWV0ZXJzICovCi0rICAgICAgICAgICAgICAgICAgICAgICBH X0RCVVNfQ0FMTF9GTEFHU19OT05FLCAgICAgICAgICAgICAgLyogZmxhZ3MgKi8KLSsgICAgICAg ICAgICAgICAgICAgICAgIC0xLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0 aW1lb3V0ICovCi0rICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLyogY2FuY2VsbGFibGUgKi8KLSsgICAgICAgICAgICAgICAgICAgICAg IE5VTEwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBjYWxsYmFjayAqLwotKyAg ICAgICAgICAgICAgICAgICAgICAgTlVMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIHVzZXJfZGF0YSAqLwotKyAgICAgICAgICAgICAgICAgICAgICAgKTsKLSt9Ci0rCi0gI2Rl ZmluZSBERUZJTkVfRlVOQyhuYW1lLCBOYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAotICAgICB2b2lkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAgaWJ1c19pbnB1dF9jb250ZXh0 XyMjbmFtZSAoSUJ1c0lucHV0Q29udGV4dCAqY29udGV4dCkgICAgICAgICAgICAgICBcCi1kaWZm IC0tZ2l0IGEvc3JjL2lidXNpbnB1dGNvbnRleHQuaCBiL3NyYy9pYnVzaW5wdXRjb250ZXh0LmgK LWluZGV4IGJlM2M1MDIuLjQwYjkwMmUgMTAwNjQ0Ci0tLS0gYS9zcmMvaWJ1c2lucHV0Y29udGV4 dC5oCi0rKysgYi9zcmMvaWJ1c2lucHV0Y29udGV4dC5oCi1AQCAtNDk1LDYgKzQ5NSwxOCBAQCB2 b2lkICAgICAgICAgaWJ1c19pbnB1dF9jb250ZXh0X3NldF9lbmdpbmUgIChJQnVzSW5wdXRDb250 ZXh0ICAgKmNvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3QgZ2NoYXIgICAgICAgICpuYW1lKTsKLSAKLSAvKioKLSsgKiBpYnVzX2lucHV0 X2NvbnRleHRfc2V0X3hrYl9lbmdpbmVzOgotKyAqIEBjb250ZXh0OiBBbiBJQnVzSW5wdXRDb250 ZXh0LgotKyAqIEBsaXN0OiAodHJhbnNmZXIgY29udGFpbmVyKSAoZWxlbWVudC10eXBlIElCdXNF bmdpbmVEZXNjKToKLSsgKiAgICAgQSBsaXN0IG9mIHRoZSBlbmdpbmVzLgotKyAqCi0rICogU2V0 IFhLQiBncm91cCBsYXlvdXRzIGZyb20gdGhlIGRlc2t0b3Agc2Vzc2lvbi4KLSsgKi8KLSt2b2lk ICAgICAgICAgaWJ1c19pbnB1dF9jb250ZXh0X3NldF94a2JfZW5naW5lcwotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKElCdXNJbnB1dENvbnRleHQgKmNvbnRl eHQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xpc3Qg ICAgICAgICAgICAqbGlzdCk7Ci0rCi0rLyoqCi0gICogaWJ1c19pbnB1dF9jb250ZXh0X3NldF9z dXJyb3VuZGluZ190ZXh0OgotICAqIEBjb250ZXh0OiBBbiAjSUJ1c0lucHV0Q29udGV4dC4KLSAg KiBAdGV4dDogQW4gI0lCdXNUZXh0IHN1cnJvdW5kaW5nIHRoZSBjdXJyZW50IGN1cnNvciBvbiB0 aGUgYXBwbGljYXRpb24uCi1kaWZmIC0tZ2l0IGEvc3JjL2lidXN1dGlsLmMgYi9zcmMvaWJ1c3V0 aWwuYwotaW5kZXggZGRiNmI5ZS4uNDZkYWIxYSAxMDA2NDQKLS0tLSBhL3NyYy9pYnVzdXRpbC5j Ci0rKysgYi9zcmMvaWJ1c3V0aWwuYwotQEAgLTE0NSwzICsxNDUsMTUgQEAgaWJ1c19nZXRfbGFu Z3VhZ2VfbmFtZShjb25zdCBnY2hhciAqX2xvY2FsZSkgewotICAgICB9Ci0gICAgIHJldHVybiBy ZXR2YWw7Ci0gfQotKwotK2dib29sZWFuCi0raWJ1c191c2VfYnJpZGdlX2hvdGtleSAodm9pZCkK LSt7Ci0rICAgIHJldHVybiAoVVNFX0JSSURHRV9IT1RLRVkgPT0gMSkgPyBUUlVFIDogRkFMU0U7 Ci0rfQotKwotK2NvbnN0IGdjaGFyICoKLStpYnVzX2dldF9kZWZhdWx0X2JyaWRnZV9lbmdpbmVf bmFtZSAodm9pZCkKLSt7Ci0rICAgIHJldHVybiBERUZBVUxUX0JSSURHRV9FTkdJTkVfTkFNRTsK LSt9Ci1kaWZmIC0tZ2l0IGEvc3JjL2lidXN1dGlsLmggYi9zcmMvaWJ1c3V0aWwuaAotaW5kZXgg N2NmMTk5NS4uYTE5ZDE2ZSAxMDA2NDQKLS0tLSBhL3NyYy9pYnVzdXRpbC5oCi0rKysgYi9zcmMv aWJ1c3V0aWwuaAotQEAgLTQzLDQgKzQzLDE4IEBACi0gICovCi0gY29uc3QgZ2NoYXIgKiAgICBp YnVzX2dldF9sYW5ndWFnZV9uYW1lICAgICAgICAgKGNvbnN0IGdjaGFyICAgICpfbG9jYWxlKTsK LSAKLSsvKioKLSsgKiBpYnVzX2J1c191c2VfYnJpZGdlX2hvdGtleToKLSsgKiBAYnVzOiBBbiAj SUJ1c0J1cy4KLSsgKiBAcmV0dXJuczogJVRSVUUgaWYgQGJ1cyB1c2UgYnJpZGdlIGhvdGtleSwg JUZBTFNFIG90aGVyd2lzZS4KLSsgKi8KLStnYm9vbGVhbiAgICAgICAgIGlidXNfdXNlX2JyaWRn ZV9ob3RrZXkgKHZvaWQpOwotKwotKy8qKgotKyAqIGlidXNfYnVzX2dldF9kZWZhdWx0X2JyaWRn ZV9lbmdpbmVfbmFtZToKLSsgKiBAYnVzOiBBbiAjSUJ1c0J1cy4KLSsgKiBAcmV0dXJuczogQSBk ZWZhdWx0IGJyaWRnZSBlbmdpbmUgbmFtZS4KLSsgKi8KLStjb25zdCBnY2hhciAqICAgIGlidXNf Z2V0X2RlZmF1bHRfYnJpZGdlX2VuZ2luZV9uYW1lICh2b2lkKTsKLSsKLSAjZW5kaWYKLWRpZmYg LS1naXQgYS91aS9ndGsvcGFuZWwucHkgYi91aS9ndGsvcGFuZWwucHkKLWluZGV4IDg4MDQ2MzQu LjU0OTM5M2EgMTAwNjQ0Ci0tLS0gYS91aS9ndGsvcGFuZWwucHkKLSsrKyBiL3VpL2d0ay9wYW5l bC5weQotQEAgLTY3LDYgKzY3LDcgQEAgY2xhc3MgUGFuZWwoaWJ1cy5QYW5lbEJhc2UpOgotICAg ICAgICAgc2VsZi5fX2RhdGFfZGlyID0gcGF0aC5qb2luKHNlbGYuX19wcmVmaXgsICJzaGFyZSIs ICJpYnVzIikKLSAgICAgICAgICMgc2VsZi5fX2ljb25zX2RpciA9IHBhdGguam9pbihzZWxmLl9f ZGF0YV9kaXIsICJpY29ucyIpCi0gICAgICAgICBzZWxmLl9fc2V0dXBfY21kID0gcGF0aC5qb2lu KHNlbGYuX19wcmVmaXgsICJiaW4iLCAiaWJ1cy1zZXR1cCIpCi0rICAgICAgICBzZWxmLl9fc2hv dyA9IDAKLSAKLSAgICAgICAgICMgY29ubmVjdCBidXMgc2lnbmFsCi0gICAgICAgICBzZWxmLl9f Y29uZmlnLmNvbm5lY3QoInZhbHVlLWNoYW5nZWQiLCBzZWxmLl9fY29uZmlnX3ZhbHVlX2NoYW5n ZWRfY2IpCi1AQCAtMTMzLDYgKzEzNCwxNCBAQCBjbGFzcyBQYW5lbChpYnVzLlBhbmVsQmFzZSk6 Ci0gICAgICAgICAjIHNlbGYuX19idXMucmVxdWVzdF9uYW1lKGlidXMucGFuZWwuSUJVU19TRVJW SUNFX1BBTkVMLCAwKQotIAotICAgICAgICAgIyBpbml0IHhrYgotKyAgICAgICAgc2VsZi5fX2Rl ZmF1bHRfbGF5b3V0ID0gJ2RlZmF1bHQnCi0rICAgICAgICBzZWxmLl9fZGVmYXVsdF9tb2RlbCA9 ICdkZWZhdWx0JwotKyAgICAgICAgc2VsZi5fX2RlZmF1bHRfb3B0aW9uID0gJ2RlZmF1bHQnCi0r ICAgICAgICBzZWxmLl9fZGlzYWJsZWRfZW5naW5lcyA9IFtdCi0rICAgICAgICBzZWxmLl9fZGlz YWJsZWRfZW5naW5lc19pZCA9IC0xCi0rICAgICAgICBzZWxmLl9fZGlzYWJsZWRfZW5naW5lc19w cmV2X2lkID0gLTEKLSsgICAgICAgIHNlbGYuX19kaXNhYmxlZF9lbmdpbmVzX3N3YXBwZWQgPSAw Ci0rCi0gICAgICAgICBzZWxmLl9feGtibGF5b3V0ID0gaWJ1cy5YS0JMYXlvdXQoc2VsZi5fX2Nv bmZpZykKLSAgICAgICAgIHVzZV94a2IgPSBzZWxmLl9fY29uZmlnLmdldF92YWx1ZSgiZ2VuZXJh bCIsICJ1c2Vfc3lzdGVtX2tleWJvYXJkX2xheW91dCIsIEZhbHNlKQotICAgICAgICAgaWYgbm90 IHVzZV94a2I6Ci1AQCAtMTQyLDExICsxNTEsMTggQEAgY2xhc3MgUGFuZWwoaWJ1cy5QYW5lbEJh c2UpOgotICAgICAgICAgICAgIHZhbHVlID0gJ2RlZmF1bHQnCi0gICAgICAgICBpZiB2YWx1ZSAh PSAnZGVmYXVsdCc6Ci0gICAgICAgICAgICAgc2VsZi5fX3hrYmxheW91dC5zZXRfZGVmYXVsdF9s YXlvdXQodmFsdWUpCi0rICAgICAgICAgICAgaWYgdmFsdWUuZmluZCgnKCcpID49IDA6Ci0rICAg ICAgICAgICAgICAgIFtzZWxmLl9fZGVmYXVsdF9sYXlvdXQsIHNlbGYuX19kZWZhdWx0X21vZGVs XSA9IFwKLSsgICAgICAgICAgICAgICAgICAgIHNlbGYuX194a2JsYXlvdXQuZ2V0X2RlZmF1bHRf bGF5b3V0KCkKLSsgICAgICAgICAgICBlbHNlOgotKyAgICAgICAgICAgICAgICBzZWxmLl9fZGVm YXVsdF9sYXlvdXQgPSB2YWx1ZQotKyAgICAgICAgICAgICAgICBzZWxmLl9fZGVmYXVsdF9tb2Rl bCA9IE5vbmUKLSAgICAgICAgIHZhbHVlID0gc3RyKHNlbGYuX19jb25maWcuZ2V0X3ZhbHVlKCJn ZW5lcmFsIiwgInN5c3RlbV9rZXlib2FyZF9vcHRpb24iLCAnJykpCi0gICAgICAgICBpZiB2YWx1 ZSA9PSAnJzoKLSAgICAgICAgICAgICB2YWx1ZSA9ICdkZWZhdWx0JwotICAgICAgICAgaWYgdmFs dWUgIT0gJ2RlZmF1bHQnOgotICAgICAgICAgICAgIHNlbGYuX194a2JsYXlvdXQuc2V0X2RlZmF1 bHRfb3B0aW9uKHZhbHVlKQotKyAgICAgICAgICAgIHNlbGYuX19kZWZhdWx0X29wdGlvbiA9IHZh bHVlCi0gCi0gICAgIGRlZiBzZXRfY3Vyc29yX2xvY2F0aW9uKHNlbGYsIHgsIHksIHcsIGgpOgot ICAgICAgICAgc2VsZi5fX2NhbmRpZGF0ZV9wYW5lbC5zZXRfY3Vyc29yX2xvY2F0aW9uKHgsIHks IHcsIGgpCi1AQCAtMjMzLDEyICsyNDksMTE5IEBAIGNsYXNzIFBhbmVsKGlidXMuUGFuZWxCYXNl KToKLSAgICAgZGVmIF9fc2V0X2ltX25hbWUoc2VsZiwgbmFtZSk6Ci0gICAgICAgICBzZWxmLl9f bGFuZ3VhZ2VfYmFyLnNldF9pbV9uYW1lKG5hbWUpCi0gCi0rICAgIGRlZiBfX3VzZV9icmlkZ2Vf aG90a2V5KHNlbGYpOgotKyAgICAgICAgaWYgbm90IGlidXMudXNlX2JyaWRnZV9ob3RrZXkoKToK LSsgICAgICAgICAgICByZXR1cm4gRmFsc2UKLSsgICAgICAgIGlmIHNlbGYuX19jb25maWcgPT0g Tm9uZToKLSsgICAgICAgICAgICByZXR1cm4gVHJ1ZQotKyAgICAgICAgcmV0dXJuIHNlbGYuX19j b25maWcuZ2V0X3ZhbHVlKCJnZW5lcmFsL2hvdGtleSIsICJ1c2VfYnJpZGdlX2hvdGtleSIsCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJ1ZSkKLSsKLSsgICAgZGVm IF9fcmVnaXN0cnlfZ2V0X2xhbmdfZnJvbV9sYXlvdXQoc2VsZiwgbGF5b3V0LCBtb2RlbD1Ob25l KToKLSsgICAgICAgIGxhbmdzID0gTm9uZQotKyAgICAgICAgbGFuZyA9ICdlbicKLSsgICAgICAg IHJlZ2lzdHJ5ID0gaWJ1cy5YS0JDb25maWdSZWdpc3RyeSgpCi0rICAgICAgICBnZXRfbGF5b3V0 X2xhbmcgPSByZWdpc3RyeS5nZXRfbGF5b3V0X2xhbmcoKQotKyAgICAgICAgaWYgbW9kZWwgPT0g Jyc6Ci0rICAgICAgICAgICAgbW9kZWwgPSBOb25lCi0rICAgICAgICBpZiBtb2RlbCAhPSBOb25l OgotKyAgICAgICAgICAgIGxhYmVsID0gIiVzKCVzKSIgJSAobGF5b3V0LCBtb2RlbCkKLSsgICAg ICAgICAgICBpZiBsYWJlbCBpbiBnZXRfbGF5b3V0X2xhbmc6Ci0rICAgICAgICAgICAgICAgIGxh bmdzID0gZ2V0X2xheW91dF9sYW5nW2xhYmVsXQotKyAgICAgICAgaWYgbGFuZ3MgPT0gTm9uZToK LSsgICAgICAgICAgICBsYWJlbCA9IGxheW91dAotKyAgICAgICAgICAgIGlmIGxhYmVsIGluIGdl dF9sYXlvdXRfbGFuZzoKLSsgICAgICAgICAgICAgICAgbGFuZ3MgPSBnZXRfbGF5b3V0X2xhbmdb bGFiZWxdCi0rICAgICAgICBpZiBsYW5ncyAhPSBOb25lOgotKyAgICAgICAgICAgIGxhbmcgPSBz dHIobGFuZ3NbMF0pCi0rICAgICAgICByZXR1cm4gbGFuZwotKwotKyAgICBkZWYgX19zZXRfZGVm YXVsdF9sYXlvdXRfZW5naW5lKHNlbGYsIHVzZV9icmlkZ2VfaG90a2V5KToKLSsgICAgICAgIGRl ZmF1bHRfbGF5b3V0ID0gc2VsZi5fX2RlZmF1bHRfbGF5b3V0Ci0rICAgICAgICBkZWZhdWx0X21v ZGVsID0gc2VsZi5fX2RlZmF1bHRfbW9kZWwKLSsgICAgICAgIGlmIGRlZmF1bHRfbGF5b3V0ID09 ICdkZWZhdWx0JzoKLSsgICAgICAgICAgICBkZWZhdWx0X2xheW91dCA9IHNlbGYuX194a2JsYXlv dXQuZ2V0X2RlZmF1bHRfbGF5b3V0KClbMF0KLSsgICAgICAgICAgICBkZWZhdWx0X21vZGVsID0g c2VsZi5fX3hrYmxheW91dC5nZXRfZGVmYXVsdF9sYXlvdXQoKVsxXQotKyAgICAgICAgaWYgZGVm YXVsdF9tb2RlbCA9PSAnZGVmYXVsdCc6Ci0rICAgICAgICAgICAgZGVmYXVsdF9tb2RlbCA9IHNl bGYuX194a2JsYXlvdXQuZ2V0X2RlZmF1bHRfbGF5b3V0KClbMV0KLSsgICAgICAgIGxheW91dHMg PSBkZWZhdWx0X2xheW91dC5zcGxpdCgnLCcpCi0rICAgICAgICBtb2RlbHMgPSBOb25lCi0rICAg ICAgICBpZiBkZWZhdWx0X21vZGVsICE9IE5vbmUgYW5kIGRlZmF1bHRfbW9kZWwgIT0gJyc6Ci0r ICAgICAgICAgICAgbW9kZWxzID0gZGVmYXVsdF9tb2RlbC5zcGxpdCgnLCcpCi0rICAgICAgICBp ZiBsZW4oc2VsZi5fX2Rpc2FibGVkX2VuZ2luZXMpID09IDA6Ci0rICAgICAgICAgICAgZm9yIGks IGxheW91dCBpbiBlbnVtZXJhdGUobGF5b3V0cyk6Ci0rICAgICAgICAgICAgICAgIHJlZ2lzdHJ5 ID0gaWJ1cy5YS0JDb25maWdSZWdpc3RyeSgpCi0rICAgICAgICAgICAgICAgIG1vZGVsID0gTm9u ZQotKyAgICAgICAgICAgICAgICBpZiBtb2RlbHMgIT0gTm9uZSBhbmQgaSA8IGxlbihtb2RlbHMp OgotKyAgICAgICAgICAgICAgICAgICAgbW9kZWwgPSBtb2RlbHNbaV0KLSsgICAgICAgICAgICAg ICAgbGFuZyA9IHNlbGYuX19yZWdpc3RyeV9nZXRfbGFuZ19mcm9tX2xheW91dChsYXlvdXQsIG1v ZGVsKQotKyAgICAgICAgICAgICAgICBtb2RlbCA9IE5vbmUKLSsgICAgICAgICAgICAgICAgaWYg aSA9PSAwOgotKyAgICAgICAgICAgICAgICAgICAgbGF5b3V0ID0gZGVmYXVsdF9sYXlvdXQKLSsg ICAgICAgICAgICAgICAgICAgIG1vZGVsID0gZGVmYXVsdF9tb2RlbAotKyAgICAgICAgICAgICAg ICBlbGlmIG1vZGVscyAhPSBOb25lIGFuZCBpIDwgbGVuKG1vZGVscyk6Ci0rICAgICAgICAgICAg ICAgICAgICBtb2RlbCA9IG1vZGVsc1tpXQotKyAgICAgICAgICAgICAgICBpZiBtb2RlbCA9PSAn JzoKLSsgICAgICAgICAgICAgICAgICAgIG1vZGVsID0gTm9uZQotKyAgICAgICAgICAgICAgICBt b2RlbF9kZXNjID0gXygiRGVmYXVsdCBMYXlvdXQiKQotKyAgICAgICAgICAgICAgICBpZiBpID09 IDA6Ci0rICAgICAgICAgICAgICAgICAgICBsID0gMAotKyAgICAgICAgICAgICAgICAgICAgIyBs YXlvdXQgJ2luJyBhbmQgbW9kZWwgJ2VuZycgaXMgRW5nbGlzaCBsYXlvdXQuCi0rICAgICAgICAg ICAgICAgICAgICBpZiBtb2RlbHMgIT0gTm9uZSBhbmQgbW9kZWwgIT0gJ2VuZyc6Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgZm9yIGogaW4gcmFuZ2UoMCwgbGVuKG1vZGVscykpOgotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsID0gbCArIGxlbihtb2RlbHNbal0pCi0rICAgICAgICAg ICAgICAgICAgICBpZiBsICE9IDA6Ci0rICAgICAgICAgICAgICAgICAgICAgICAgbW9kZWxfZGVz YyA9IG1vZGVsX2Rlc2MgKyAiICgiICsgbW9kZWwgKyAiKSIKLSsgICAgICAgICAgICAgICAgZWxp ZiBtb2RlbCAhPSBOb25lOgotKyAgICAgICAgICAgICAgICAgICAgbW9kZWxfZGVzYyA9IG1vZGVs X2Rlc2MgKyAiICgiICsgbW9kZWwgKyAiKSIKLSsgICAgICAgICAgICAgICAgbmFtZSA9IGlidXMu REVGQVVMVF9CUklER0VfRU5HSU5FX05BTUUgKyAiIyIgKyBzdHIoaSkKLSsgICAgICAgICAgICAg ICAgZW5naW5lID0gcmVnaXN0cnkuZW5naW5lX2Rlc2NfbmV3KGxhbmcsCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXQsCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKCJEZWZhdWx0IExheW91 dCIpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bW9kZWwsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBtb2RlbF9kZXNjLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbmFtZSkKLSsgICAgICAgICAgICAgICAgc2VsZi5fX2Rpc2FibGVkX2VuZ2luZXMu YXBwZW5kKGVuZ2luZSkKLSsgICAgICAgICAgICBzZWxmLl9fZGlzYWJsZWRfZW5naW5lc19pZCA9 IHNlbGYuX194a2JsYXlvdXQuZ2V0X2dyb3VwKCkKLSsgICAgICAgICAgICBpZiB1c2VfYnJpZGdl X2hvdGtleSBhbmQgbGVuKHNlbGYuX19kaXNhYmxlZF9lbmdpbmVzKSA+IDA6Ci0rICAgICAgICAg ICAgICAgIHNlbGYuX19mb2N1c19pYy5zZXRfeGtiX2VuZ2luZXMoc2VsZi5fX2Rpc2FibGVkX2Vu Z2luZXMpCi0rICAgICAgICBpZiBub3QgdXNlX2JyaWRnZV9ob3RrZXk6Ci0rICAgICAgICAgICAg cmV0dXJuCi0rICAgICAgICBpZiBsZW4oc2VsZi5fX2Rpc2FibGVkX2VuZ2luZXMpID4gMDoKLSsg ICAgICAgICAgICBpZiBzZWxmLl9fZm9jdXNfaWMgPT0gTm9uZToKLSsgICAgICAgICAgICAgICAg cmV0dXJuCi0rICAgICAgICAgICAgZW5naW5lID0gc2VsZi5fX2ZvY3VzX2ljLmdldF9lbmdpbmUo KQotKyAgICAgICAgICAgIGlmIGVuZ2luZSA9PSBOb25lOgotKyAgICAgICAgICAgICAgICBpZiBz ZWxmLl9fZGlzYWJsZWRfZW5naW5lc19pZCA8IDA6Ci0rICAgICAgICAgICAgICAgICAgICBzZWxm Ll9fZGlzYWJsZWRfZW5naW5lc19pZCA9IDAKLSsgICAgICAgICAgICAgICAgc2VsZi5fX2ZvY3Vz X2ljLmZvY3VzX2luKCkKLSsgICAgICAgICAgICAgICAgc2VsZi5fX2ZvY3VzX2ljLnNldF9lbmdp bmUoc2VsZi5fX2Rpc2FibGVkX2VuZ2luZXNbc2VsZi5fX2Rpc2FibGVkX2VuZ2luZXNfaWRdKQot KyAgICAgICAgICAgIGVsaWYgZW5naW5lICE9IE5vbmUgYW5kIFwKLSsgICAgICAgICAgICAgICAg IG5vdCBzZWxmLl9fZm9jdXNfaWMuaXNfZW5hYmxlZCgpOgotKyAgICAgICAgICAgICAgICBzZWxm Ll9fZm9jdXNfaWMuZm9jdXNfaW4oKQotKyAgICAgICAgICAgICAgICBzZWxmLl9fZm9jdXNfaWMu ZW5hYmxlKCkKLSsKLSAgICAgZGVmIGZvY3VzX2luKHNlbGYsIGljKToKLSAgICAgICAgIHNlbGYu cmVzZXQoKQotICAgICAgICAgc2VsZi5fX2ZvY3VzX2ljID0gaWJ1cy5JbnB1dENvbnRleHQoc2Vs Zi5fX2J1cywgaWMpCi0gICAgICAgICBlbmFibGVkID0gc2VsZi5fX2ZvY3VzX2ljLmlzX2VuYWJs ZWQoKQotLSAgICAgICAgc2VsZi5fX2xhbmd1YWdlX2Jhci5zZXRfZW5hYmxlZChlbmFibGVkKQot IAotKyAgICAgICAgdXNlX2JyaWRnZV9ob3RrZXkgPSBzZWxmLl9fdXNlX2JyaWRnZV9ob3RrZXko KQotKyAgICAgICAgc2VsZi5fX3NldF9kZWZhdWx0X2xheW91dF9lbmdpbmUodXNlX2JyaWRnZV9o b3RrZXkpCi0rICAgICAgICBpZiB1c2VfYnJpZGdlX2hvdGtleToKLSsgICAgICAgICAgICBpZiBz ZWxmLl9fc2hvdyAhPSAxOgotKyAgICAgICAgICAgICAgICBzZWxmLl9fbGFuZ3VhZ2VfYmFyLnNl dF9lbmFibGVkKGVuYWJsZWQpCi0rICAgICAgICAgICAgZWxpZiBlbmFibGVkOgotKyAgICAgICAg ICAgICAgICBlbmdpbmUgPSBzZWxmLl9fZm9jdXNfaWMuZ2V0X2VuZ2luZSgpCi0rICAgICAgICAg ICAgICAgIGlmIGVuZ2luZSAhPSBOb25lIGFuZCBcCi0rICAgICAgICAgICAgICAgICAgIG5vdCBl bmdpbmUubmFtZS5zdGFydHN3aXRoKGlidXMuREVGQVVMVF9CUklER0VfRU5HSU5FX05BTUUpOgot KyAgICAgICAgICAgICAgICAgICAgc2VsZi5fX2xhbmd1YWdlX2Jhci5zZXRfZW5hYmxlZChlbmFi bGVkKQotKyAgICAgICAgICAgICAgICBlbHNlOgotKyAgICAgICAgICAgICAgICAgICAgc2VsZi5f X2xhbmd1YWdlX2Jhci5zZXRfZW5hYmxlZChGYWxzZSkKLSsgICAgICAgICAgICBlbHNlOgotKyAg ICAgICAgICAgICAgICBzZWxmLl9fbGFuZ3VhZ2VfYmFyLnNldF9lbmFibGVkKEZhbHNlKQotKyAg ICAgICAgZWxzZToKLSsgICAgICAgICAgICBzZWxmLl9fbGFuZ3VhZ2VfYmFyLnNldF9lbmFibGVk KGVuYWJsZWQpCi0gICAgICAgICBpZiBub3QgZW5hYmxlZDoKLSAgICAgICAgICAgICBzZWxmLl9f c2V0X2ltX2ljb24oSUNPTl9LRVlCT0FSRCkKLSAgICAgICAgICAgICBzZWxmLl9fc2V0X2ltX25h bWUoTm9uZSkKLUBAIC0yNDcsMTAgKzM3MCwxMyBAQCBjbGFzcyBQYW5lbChpYnVzLlBhbmVsQmFz ZSk6Ci0gICAgICAgICBlbHNlOgotICAgICAgICAgICAgIGVuZ2luZSA9IHNlbGYuX19mb2N1c19p Yy5nZXRfZW5naW5lKCkKLSAgICAgICAgICAgICBpZiBlbmdpbmU6Ci0tICAgICAgICAgICAgICAg IHNlbGYuX19zZXRfaW1faWNvbihlbmdpbmUuaWNvbikKLSsgICAgICAgICAgICAgICAgaWYgZW5n aW5lLm5hbWUuc3RhcnRzd2l0aChpYnVzLkRFRkFVTFRfQlJJREdFX0VOR0lORV9OQU1FKToKLSsg ICAgICAgICAgICAgICAgICAgIHNlbGYuX19zZXRfaW1faWNvbihJQ09OX0tFWUJPQVJEKQotKyAg ICAgICAgICAgICAgICBlbHNlOgotKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fX3NldF9pbV9p Y29uKGVuZ2luZS5pY29uKQotICAgICAgICAgICAgICAgICBzZWxmLl9fc2V0X2ltX25hbWUoZW5n aW5lLmxvbmduYW1lKQotICAgICAgICAgICAgICAgICBpZiBzZWxmLl9fYnVzLmdldF91c2Vfc3lz X2xheW91dCgpOgotLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fX3hrYmxheW91dC5zZXRfbGF5 b3V0KHNlbGYuX19lbmdpbmVfZ2V0X2xheW91dF93cmFwcGVyKGVuZ2luZSkpCi0rICAgICAgICAg ICAgICAgICAgICBzZWxmLl9feGtibGF5b3V0LnNldF9sYXlvdXQoc2VsZi5fX2VuZ2luZV9nZXRf bGF5b3V0X3dyYXBwZXIoZW5naW5lLCBGYWxzZSkpCi0gICAgICAgICAgICAgZWxzZToKLSAgICAg ICAgICAgICAgICAgc2VsZi5fX3NldF9pbV9pY29uKElDT05fS0VZQk9BUkQpCi0gICAgICAgICAg ICAgICAgIHNlbGYuX19zZXRfaW1fbmFtZShOb25lKQotQEAgLTI3Myw3ICszOTksMjEgQEAgY2xh c3MgUGFuZWwoaWJ1cy5QYW5lbEJhc2UpOgotICAgICAgICAgICAgIHJldHVybgotIAotICAgICAg ICAgZW5hYmxlZCA9IHNlbGYuX19mb2N1c19pYy5pc19lbmFibGVkKCkKLS0gICAgICAgIHNlbGYu X19sYW5ndWFnZV9iYXIuc2V0X2VuYWJsZWQoZW5hYmxlZCkKLSsKLSsgICAgICAgIGlmIHNlbGYu X191c2VfYnJpZGdlX2hvdGtleSgpOgotKyAgICAgICAgICAgIGlmIHNlbGYuX19zaG93ICE9IDE6 Ci0rICAgICAgICAgICAgICAgIHNlbGYuX19sYW5ndWFnZV9iYXIuc2V0X2VuYWJsZWQoZW5hYmxl ZCkKLSsgICAgICAgICAgICBlbGlmIGVuYWJsZWQ6Ci0rICAgICAgICAgICAgICAgIGVuZ2luZSA9 IHNlbGYuX19mb2N1c19pYy5nZXRfZW5naW5lKCkKLSsgICAgICAgICAgICAgICAgaWYgZW5naW5l ICE9IE5vbmUgYW5kIFwKLSsgICAgICAgICAgICAgICAgICAgbm90IGVuZ2luZS5uYW1lLnN0YXJ0 c3dpdGgoaWJ1cy5ERUZBVUxUX0JSSURHRV9FTkdJTkVfTkFNRSk6Ci0rICAgICAgICAgICAgICAg ICAgICBzZWxmLl9fbGFuZ3VhZ2VfYmFyLnNldF9lbmFibGVkKGVuYWJsZWQpCi0rICAgICAgICAg ICAgICAgIGVsc2U6Ci0rICAgICAgICAgICAgICAgICAgICBzZWxmLl9fbGFuZ3VhZ2VfYmFyLnNl dF9lbmFibGVkKEZhbHNlKQotKyAgICAgICAgICAgIGVsc2U6Ci0rICAgICAgICAgICAgICAgIHNl bGYuX19sYW5ndWFnZV9iYXIuc2V0X2VuYWJsZWQoRmFsc2UpCi0rICAgICAgICBlbHNlOgotKyAg ICAgICAgICAgIHNlbGYuX19sYW5ndWFnZV9iYXIuc2V0X2VuYWJsZWQoZW5hYmxlZCkKLSAKLSAg ICAgICAgIGlmIGVuYWJsZWQgPT0gRmFsc2U6Ci0gICAgICAgICAgICAgc2VsZi5yZXNldCgpCi1A QCAtMjg0LDEwICs0MjQsMTMgQEAgY2xhc3MgUGFuZWwoaWJ1cy5QYW5lbEJhc2UpOgotICAgICAg ICAgZWxzZToKLSAgICAgICAgICAgICBlbmdpbmUgPSBzZWxmLl9fZm9jdXNfaWMuZ2V0X2VuZ2lu ZSgpCi0gICAgICAgICAgICAgaWYgZW5naW5lOgotLSAgICAgICAgICAgICAgICBzZWxmLl9fc2V0 X2ltX2ljb24oZW5naW5lLmljb24pCi0rICAgICAgICAgICAgICAgIGlmIGVuZ2luZS5uYW1lLnN0 YXJ0c3dpdGgoaWJ1cy5ERUZBVUxUX0JSSURHRV9FTkdJTkVfTkFNRSk6Ci0rICAgICAgICAgICAg ICAgICAgICBzZWxmLl9fc2V0X2ltX2ljb24oSUNPTl9LRVlCT0FSRCkKLSsgICAgICAgICAgICAg ICAgZWxzZToKLSsgICAgICAgICAgICAgICAgICAgIHNlbGYuX19zZXRfaW1faWNvbihlbmdpbmUu aWNvbikKLSAgICAgICAgICAgICAgICAgc2VsZi5fX3NldF9pbV9uYW1lKGVuZ2luZS5sb25nbmFt ZSkKLSAgICAgICAgICAgICAgICAgaWYgc2VsZi5fX2J1cy5nZXRfdXNlX3N5c19sYXlvdXQoKToK LS0gICAgICAgICAgICAgICAgICAgIHNlbGYuX194a2JsYXlvdXQuc2V0X2xheW91dChzZWxmLl9f ZW5naW5lX2dldF9sYXlvdXRfd3JhcHBlcihlbmdpbmUpKQotKyAgICAgICAgICAgICAgICAgICAg c2VsZi5fX3hrYmxheW91dC5zZXRfbGF5b3V0KHNlbGYuX19lbmdpbmVfZ2V0X2xheW91dF93cmFw cGVyKGVuZ2luZSwgVHJ1ZSkpCi0gICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAg c2VsZi5fX3NldF9pbV9pY29uKElDT05fS0VZQk9BUkQpCi0gICAgICAgICAgICAgICAgIHNlbGYu X19zZXRfaW1fbmFtZShOb25lKQotQEAgLTMxNSw2ICs0NTgsNyBAQCBjbGFzcyBQYW5lbChpYnVz LlBhbmVsQmFzZSk6Ci0gCi0gICAgIGRlZiBfX2NvbmZpZ19sb2FkX3Nob3coc2VsZik6Ci0gICAg ICAgICBzaG93ID0gc2VsZi5fX2NvbmZpZy5nZXRfdmFsdWUoInBhbmVsIiwgInNob3ciLCAwKQot KyAgICAgICAgc2VsZi5fX3Nob3cgPSBzaG93Ci0gICAgICAgICBzZWxmLl9fbGFuZ3VhZ2VfYmFy LnNldF9zaG93KHNob3cpCi0gCi0gICAgIGRlZiBfX2NvbmZpZ19sb2FkX3Bvc2l0aW9uKHNlbGYp OgotQEAgLTQ0Myw2ICs1ODcsMjEgQEAgY2xhc3MgUGFuZWwoaWJ1cy5QYW5lbEJhc2UpOgotICAg ICAjICAgICBtZW51LnNldF90YWtlX2ZvY3VzKEZhbHNlKQotICAgICAjICAgICByZXR1cm4gbWVu dQotIAotKyAgICBkZWYgX19hZGRfZW5naW5lX2luX21lbnUoc2VsZiwgbWVudSwgZW5naW5lLCBp c19ib2xkLCBzaXplKToKLSsgICAgICAgIGxhbmd1YWdlID0gZW5naW5lLmxhbmd1YWdlCi0rICAg ICAgICBsYW5nID0gaWJ1cy5nZXRfbGFuZ3VhZ2VfbmFtZShsYW5ndWFnZSkKLSsgICAgICAgIGl0 ZW0gPSBndGsuSW1hZ2VNZW51SXRlbSgiJXMgLSAlcyIgJSAobGFuZywgZW5naW5lLmxvbmduYW1l KSkKLSsgICAgICAgIGlmIGlzX2JvbGQ6Ci0rICAgICAgICAgICAgZm9yIHdpZGdldCBpbiBpdGVt LmdldF9jaGlsZHJlbigpOgotKyAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHdpZGdldCwg Z3RrLkxhYmVsKToKLSsgICAgICAgICAgICAgICAgICAgIHdpZGdldC5zZXRfbWFya3VwKCI8Yj4l czwvYj4iICUgd2lkZ2V0LmdldF90ZXh0KCkpCi0rICAgICAgICBpZiBlbmdpbmUuaWNvbjoKLSsg ICAgICAgICAgICBpdGVtLnNldF9pbWFnZShfaWNvbi5JY29uV2lkZ2V0KGVuZ2luZS5pY29uLCBz aXplWzBdKSkKLSsgICAgICAgIGVsc2U6Ci0rICAgICAgICAgICAgaXRlbS5zZXRfaW1hZ2UoX2lj b24uSWNvbldpZGdldChJQ09OX0VOR0lORSwgc2l6ZVswXSkpCi0rICAgICAgICBpdGVtLmNvbm5l Y3QoImFjdGl2YXRlIiwgc2VsZi5fX2ltX21lbnVfaXRlbV9hY3RpdmF0ZV9jYiwgZW5naW5lKQot KyAgICAgICAgbWVudS5hZGQoaXRlbSkKLSsKLSAgICAgZGVmIF9fY3JlYXRlX2ltX21lbnUoc2Vs Zik6Ci0gICAgICAgICBlbmdpbmVzID0gc2VsZi5fX2J1cy5saXN0X2FjdGl2ZV9lbmdpbmVzKCkK LSAgICAgICAgIGN1cnJlbnRfZW5naW5lID0gXAotQEAgLTQ1MywyNSArNjEyLDM5IEBAIGNsYXNz IFBhbmVsKGlidXMuUGFuZWxCYXNlKToKLSAgICAgICAgIHNpemUgPSBndGsuaWNvbl9zaXplX2xv b2t1cChndGsuSUNPTl9TSVpFX01FTlUpCi0gICAgICAgICBtZW51ID0gZ3RrLk1lbnUoKQotICAg ICAgICAgZm9yIGksIGVuZ2luZSBpbiBlbnVtZXJhdGUoZW5naW5lcyk6Ci0tICAgICAgICAgICAg bGFuZyA9IGlidXMuZ2V0X2xhbmd1YWdlX25hbWUoZW5naW5lLmxhbmd1YWdlKQotLSAgICAgICAg ICAgIGl0ZW0gPSBndGsuSW1hZ2VNZW51SXRlbSgiJXMgLSAlcyIgJSAobGFuZywgZW5naW5lLmxv bmduYW1lKSkKLS0gICAgICAgICAgICBpZiBjdXJyZW50X2VuZ2luZSBhbmQgY3VycmVudF9lbmdp bmUubmFtZSA9PSBlbmdpbmUubmFtZToKLS0gICAgICAgICAgICAgICAgZm9yIHdpZGdldCBpbiBp dGVtLmdldF9jaGlsZHJlbigpOgotLSAgICAgICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZSh3 aWRnZXQsIGd0ay5MYWJlbCk6Ci0tICAgICAgICAgICAgICAgICAgICAgICAgd2lkZ2V0LnNldF9t YXJrdXAoIjxiPiVzPC9iPiIgJSB3aWRnZXQuZ2V0X3RleHQoKSkKLS0gICAgICAgICAgICBpZiBl bmdpbmUuaWNvbjoKLS0gICAgICAgICAgICAgICAgaXRlbS5zZXRfaW1hZ2UoX2ljb24uSWNvbldp ZGdldChlbmdpbmUuaWNvbiwgc2l6ZVswXSkpCi0tICAgICAgICAgICAgZWxzZToKLS0gICAgICAg ICAgICAgICAgaXRlbS5zZXRfaW1hZ2UoX2ljb24uSWNvbldpZGdldChJQ09OX0VOR0lORSwgc2l6 ZVswXSkpCi0tICAgICAgICAgICAgaXRlbS5jb25uZWN0KCJhY3RpdmF0ZSIsIHNlbGYuX19pbV9t ZW51X2l0ZW1fYWN0aXZhdGVfY2IsIGVuZ2luZSkKLS0gICAgICAgICAgICBtZW51LmFkZChpdGVt KQotKyAgICAgICAgICAgIGlmIGVuZ2luZS5uYW1lLnN0YXJ0c3dpdGgoaWJ1cy5ERUZBVUxUX0JS SURHRV9FTkdJTkVfTkFNRSk6Ci0rICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9fdXNlX2Jy aWRnZV9ob3RrZXkoKToKLSsgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0rICAgICAgICAg ICAgICAgIGlmIGxlbihzZWxmLl9fZGlzYWJsZWRfZW5naW5lcykgPT0gMDoKLSsgICAgICAgICAg ICAgICAgICAgIGNvbnRpbnVlCi0rICAgICAgICAgICAgICAgIGVuZ2luZS5kaXNhYmxlZF9lbmdp bmVzX2lkID0gLTEKLSsgICAgICAgICAgICAgICAgZm9yIGosIGtiX2VuZ2luZSBpbiBlbnVtZXJh dGUoc2VsZi5fX2Rpc2FibGVkX2VuZ2luZXMpOgotKyAgICAgICAgICAgICAgICAgICAgaWYgZW5n aW5lLm5hbWUgPT0ga2JfZW5naW5lLm5hbWU6Ci0rICAgICAgICAgICAgICAgICAgICAgICAgZW5n aW5lLmRpc2FibGVkX2VuZ2luZXNfaWQgPSBqCi0rICAgICAgICAgICAgICAgICAgICAgICAgYnJl YWsKLSsgICAgICAgICAgICAgICAgaWYgZW5naW5lLmRpc2FibGVkX2VuZ2luZXNfaWQgPT0gLTE6 Ci0rICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotKyAgICAgICAgICAgICAgICBrYl9lbmdp bmUgPSBzZWxmLl9fZGlzYWJsZWRfZW5naW5lc1tlbmdpbmUuZGlzYWJsZWRfZW5naW5lc19pZF0K LSsgICAgICAgICAgICAgICAga2JfZW5naW5lLmlzX2JyaWRnZSA9IFRydWUKLSsgICAgICAgICAg ICAgICAga2JfZW5naW5lLmRpc2FibGVkX2VuZ2luZXNfaWQgPSBlbmdpbmUuZGlzYWJsZWRfZW5n aW5lc19pZAotKyAgICAgICAgICAgICAgICBpc19ib2xkID0gVHJ1ZSBpZiAoY3VycmVudF9lbmdp bmUgIT0gTm9uZSBhbmQgXAotKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfZW5naW5l Lm5hbWUgPT0ga2JfZW5naW5lLm5hbWUpIGVsc2UgRmFsc2UKLSsgICAgICAgICAgICAgICAgc2Vs Zi5fX2FkZF9lbmdpbmVfaW5fbWVudShtZW51LCBrYl9lbmdpbmUsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNfYm9sZCwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzaXplKQotKyAgICAgICAgICAgICAgICBjb250aW51ZQot KyAgICAgICAgICAgIGVuZ2luZS5pc19icmlkZ2UgPSBGYWxzZQotKyAgICAgICAgICAgIGlzX2Jv bGQgPSBUcnVlIGlmIChjdXJyZW50X2VuZ2luZSAhPSBOb25lIGFuZCBcCi0rICAgICAgICAgICAg ICAgICAgICBjdXJyZW50X2VuZ2luZS5uYW1lID09IGVuZ2luZS5uYW1lKSBlbHNlIEZhbHNlCi0r ICAgICAgICAgICAgc2VsZi5fX2FkZF9lbmdpbmVfaW5fbWVudShtZW51LCBlbmdpbmUsIGlzX2Jv bGQsIHNpemUpCi0gCi0gICAgICAgICBpdGVtID0gZ3RrLkltYWdlTWVudUl0ZW0oXygiVHVybiBv ZmYgaW5wdXQgbWV0aG9kIikpCi0gICAgICAgICBpdGVtLnNldF9pbWFnZShfaWNvbi5JY29uV2lk Z2V0KCJndGstY2xvc2UiLCBzaXplWzBdKSkKLSAgICAgICAgIGl0ZW0uY29ubmVjdCgiYWN0aXZh dGUiLCBzZWxmLl9faW1fbWVudV9pdGVtX2FjdGl2YXRlX2NiLCBOb25lKQotICAgICAgICAgaWYg c2VsZi5fX2ZvY3VzX2ljID09IE5vbmUgb3Igbm90IHNlbGYuX19mb2N1c19pYy5pc19lbmFibGVk KCk6Ci0gICAgICAgICAgICAgaXRlbS5zZXRfc2Vuc2l0aXZlKEZhbHNlKQotLSAgICAgICAgbWVu dS5hZGQoaXRlbSkKLSsgICAgICAgIGlmIG5vdCBzZWxmLl9fdXNlX2JyaWRnZV9ob3RrZXkoKToK LSsgICAgICAgICAgICBtZW51LmFkZChpdGVtKQotIAotICAgICAgICAgbWVudS5zaG93X2FsbCgp Ci0gICAgICAgICBtZW51LnNldF90YWtlX2ZvY3VzKEZhbHNlKQotQEAgLTUyMyw4ICs2OTYsMjUg QEAgY2xhc3MgUGFuZWwoaWJ1cy5QYW5lbEJhc2UpOgotICAgICAgICAgaWYgbm90IHNlbGYuX19m b2N1c19pYzoKLSAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgIGlmIGVuZ2luZToKLS0gICAg ICAgICAgICBzZWxmLl9fZm9jdXNfaWMuc2V0X2VuZ2luZShlbmdpbmUpCi0rICAgICAgICAgICAg aWYgc2VsZi5fX3VzZV9icmlkZ2VfaG90a2V5KCkgYW5kIGVuZ2luZS5pc19icmlkZ2U6Ci0rICAg ICAgICAgICAgICAgIGVuZ2luZXMgPSBzZWxmLl9fYnVzLmxpc3RfYWN0aXZlX2VuZ2luZXMoKQot KyAgICAgICAgICAgICAgICBjdXJyZW50X2VuZ2luZSA9IFwKLSsgICAgICAgICAgICAgICAgICAg IChzZWxmLl9fZm9jdXNfaWMgIT0gTm9uZSBhbmQgc2VsZi5fX2ZvY3VzX2ljLmdldF9lbmdpbmUo KSkgb3IgXAotKyAgICAgICAgICAgICAgICAgICAgKGVuZ2luZXMgYW5kIGVuZ2luZXNbMF0pIG9y IFwKLSsgICAgICAgICAgICAgICAgICAgIE5vbmUKLSsgICAgICAgICAgICAgICAgaWYgY3VycmVu dF9lbmdpbmUgYW5kIFwKLSsgICAgICAgICAgICAgICAgICAgY3VycmVudF9lbmdpbmUubmFtZS5z dGFydHN3aXRoKGlidXMuREVGQVVMVF9CUklER0VfRU5HSU5FX05BTUUpOgotKyAgICAgICAgICAg ICAgICAgICAgc2VsZi5fX2Rpc2FibGVkX2VuZ2luZXNfcHJldl9pZCA9IHNlbGYuX19kaXNhYmxl ZF9lbmdpbmVzX2lkCi0rICAgICAgICAgICAgICAgICAgICBzZWxmLl9fZGlzYWJsZWRfZW5naW5l c19zd2FwcGVkID0gMgotKyAgICAgICAgICAgICAgICBlbHNlOgotKyAgICAgICAgICAgICAgICAg ICAgc2VsZi5fX2Rpc2FibGVkX2VuZ2luZXNfcHJldl9pZCA9IC0xCi0rICAgICAgICAgICAgICAg IHNlbGYuX19kaXNhYmxlZF9lbmdpbmVzX2lkID0gZW5naW5lLmRpc2FibGVkX2VuZ2luZXNfaWQK LSsgICAgICAgICAgICAgICAgc2VsZi5fX2ZvY3VzX2ljLnNldF9lbmdpbmUoc2VsZi5fX2Rpc2Fi bGVkX2VuZ2luZXNbc2VsZi5fX2Rpc2FibGVkX2VuZ2luZXNfaWRdKQotKyAgICAgICAgICAgIGVs c2U6Ci0rICAgICAgICAgICAgICAgIHNlbGYuX19kaXNhYmxlZF9lbmdpbmVzX3ByZXZfaWQgPSAt MQotKyAgICAgICAgICAgICAgICBzZWxmLl9fZm9jdXNfaWMuc2V0X2VuZ2luZShlbmdpbmUpCi0g ICAgICAgICBlbHNlOgotKyAgICAgICAgICAgIHNlbGYuX19kaXNhYmxlZF9lbmdpbmVzX3ByZXZf aWQgPSAtMQotICAgICAgICAgICAgIHNlbGYuX19mb2N1c19pYy5kaXNhYmxlKCkKLSAKLSAgICAg ZGVmIF9fc3lzX21lbnVfaXRlbV9hY3RpdmF0ZV9jYihzZWxmLCBpdGVtLCBjb21tYW5kKToKLUBA IC01NzMsMTIgKzc2MywxMTMgQEAgY2xhc3MgUGFuZWwoaWJ1cy5QYW5lbEJhc2UpOgotICAgICAg ICAgc2VsZi5fX3NldHVwX3BpZCA9IHBpZAotICAgICAgICAgZ2xpYi5jaGlsZF93YXRjaF9hZGQo c2VsZi5fX3NldHVwX3BpZCwgc2VsZi5fX2NoaWxkX3dhdGNoX2NiKQotIAotLSAgICBkZWYgX19l bmdpbmVfZ2V0X2xheW91dF93cmFwcGVyKHNlbGYsIGVuZ2luZSk6Ci0rICAgIGRlZiBfX2dldF9t b2RlbF9mcm9tX2xheW91dChzZWxmLCBsYXlvdXQpOgotKyAgICAgICAgbGVmdF9icmFja2V0ID0g bGF5b3V0LmZpbmQoJygnKQotKyAgICAgICAgcmlnaHRfYnJhY2tldCA9IGxheW91dC5maW5kKCcp JykKLSsgICAgICAgIGlmIGxlZnRfYnJhY2tldCA+PSAwIGFuZCByaWdodF9icmFja2V0ID4gbGVm dF9icmFja2V0OgotKyAgICAgICAgICAgIHJldHVybiAobGF5b3V0WzpsZWZ0X2JyYWNrZXRdICsg bGF5b3V0W3JpZ2h0X2JyYWNrZXQgKyAxOl0sIFwKLSsgICAgICAgICAgICAgICAgICAgIGxheW91 dFtsZWZ0X2JyYWNrZXQgKyAxOnJpZ2h0X2JyYWNrZXRdKQotKyAgICAgICAgcmV0dXJuIChsYXlv dXQsICJkZWZhdWx0IikKLSsKLSsgICAgZGVmIF9fZ2V0X29wdGlvbl9mcm9tX2xheW91dChzZWxm LCBsYXlvdXQpOgotKyAgICAgICAgbGVmdF9icmFja2V0ID0gbGF5b3V0LmZpbmQoJ1snKQotKyAg ICAgICAgcmlnaHRfYnJhY2tldCA9IGxheW91dC5maW5kKCddJykKLSsgICAgICAgIGlmIGxlZnRf YnJhY2tldCA+PSAwIGFuZCByaWdodF9icmFja2V0ID4gbGVmdF9icmFja2V0OgotKyAgICAgICAg ICAgIHJldHVybiAobGF5b3V0WzpsZWZ0X2JyYWNrZXRdICsgbGF5b3V0W3JpZ2h0X2JyYWNrZXQg KyAxOl0sIFwKLSsgICAgICAgICAgICAgICAgICAgIGxheW91dFtsZWZ0X2JyYWNrZXQgKyAxOnJp Z2h0X2JyYWNrZXRdKQotKyAgICAgICAgcmV0dXJuIChsYXlvdXQsICJkZWZhdWx0IikKLSsKLSsg ICAgZGVmIF9fbWVyZ2VfbW9kZWxzX2FuZF9vcHRpb25zKHNlbGYsIGN1cl9sYXlvdXQsIGVuZ2lu ZV9sYXlvdXQpOgotKyAgICAgICAgb3JpZ19sYXlvdXQgPSBjdXJfbGF5b3V0Ci0rICAgICAgICBl bmdpbmVfbW9kZWwgPSAiZGVmYXVsdCIKLSsgICAgICAgIGVuZ2luZV9vcHRpb24gPSAiZGVmYXVs dCIKLSsgICAgICAgIChlbmdpbmVfbGF5b3V0LCBlbmdpbmVfbW9kZWwpID0gXAotKyAgICAgICAg ICAgIHNlbGYuX19nZXRfbW9kZWxfZnJvbV9sYXlvdXQoZW5naW5lX2xheW91dCkKLSsgICAgICAg IChlbmdpbmVfbGF5b3V0LCBlbmdpbmVfb3B0aW9uKSA9IFwKLSsgICAgICAgICAgICBzZWxmLl9f Z2V0X29wdGlvbl9mcm9tX2xheW91dChlbmdpbmVfbGF5b3V0KQotKyAgICAgICAgaWYgKGVuZ2lu ZV9tb2RlbCA9PSBOb25lIG9yIGVuZ2luZV9tb2RlbCA9PSAiZGVmYXVsdCIpIGFuZCBcCi0rICAg ICAgICAgICAoZW5naW5lX29wdGlvbiA9PSBOb25lIG9yIGVuZ2luZV9vcHRpb24gPT0gImRlZmF1 bHQiKToKLSsgICAgICAgICAgICByZXR1cm4gY3VyX2xheW91dAotKyAgICAgICAgY3VyX21vZGVs ID0gImRlZmF1bHQiCi0rICAgICAgICBjdXJfb3B0aW9uID0gImRlZmF1bHQiCi0rICAgICAgICAo Y3VyX2xheW91dCwgY3VyX21vZGVsKSA9IFwKLSsgICAgICAgICAgICBzZWxmLl9fZ2V0X21vZGVs X2Zyb21fbGF5b3V0KGN1cl9sYXlvdXQpCi0rICAgICAgICAoY3VyX2xheW91dCwgY3VyX29wdGlv bikgPSBcCi0rICAgICAgICAgICAgc2VsZi5fX2dldF9vcHRpb25fZnJvbV9sYXlvdXQoY3VyX2xh eW91dCkKLSsgICAgICAgICMgQ3VycmVudGx5IGltcGxlbWVudGVkIG9wdGlvbnMgb25seS4KLSsg ICAgICAgICMgTWVyZ2luZyBsYXlvdXRzIGFuZCBtb2RlbHMgYXJlIGEgbGl0dGxlIGNvbXBsaWNh dGVkLgotKyAgICAgICAgIyBlLmcuIGphLHJ1ICsgamEoa2FuYSkgPT0gamEscnUsamEoLCxrYW5h KQotKyAgICAgICAgaWYgZW5naW5lX29wdGlvbiAhPSBOb25lIGFuZCBlbmdpbmVfb3B0aW9uICE9 ICJkZWZhdWx0IjoKLSsgICAgICAgICAgICBpZiBjdXJfb3B0aW9uID09IE5vbmUgb3IgY3VyX29w dGlvbiA9PSAiZGVmYXVsdCI6Ci0rICAgICAgICAgICAgICAgIGN1cl9vcHRpb24gPSBlbmdpbmVf b3B0aW9uCi0rICAgICAgICAgICAgZWxpZiBjdXJfb3B0aW9uICE9IE5vbmUgYW5kIGN1cl9vcHRp b24gIT0gImRlZmF1bHQiOgotKyAgICAgICAgICAgICAgICBjdXJfb3B0aW9uID0gIiVzLCVzIiAl IChjdXJfb3B0aW9uLCBlbmdpbmVfb3B0aW9uKQotKyAgICAgICAgICAgIGlmIGN1cl9tb2RlbCAh PSBOb25lIGFuZCBjdXJfbW9kZWwgIT0gImRlZmF1bHQiOgotKyAgICAgICAgICAgICAgICBjdXJf bGF5b3V0ID0gIiVzKCVzKSIgJSAoY3VyX2xheW91dCwgY3VyX21vZGVsKQotKyAgICAgICAgICAg IGlmIGN1cl9vcHRpb24gIT0gTm9uZSBhbmQgY3VyX29wdGlvbiAhPSAiZGVmYXVsdCI6Ci0rICAg ICAgICAgICAgICAgIGN1cl9sYXlvdXQgPSAiJXNbJXNdIiAlIChjdXJfbGF5b3V0LCBjdXJfb3B0 aW9uKQotKyAgICAgICAgICAgIHJldHVybiBjdXJfbGF5b3V0Ci0rICAgICAgICByZXR1cm4gb3Jp Z19sYXlvdXQKLSsKLSsgICAgZGVmIF9fZW5naW5lX2dldF9sYXlvdXRfd3JhcHBlcihzZWxmLCBl bmdpbmUsIGNoYW5nZWRfc3RhdGUpOgotICAgICAgICAgIyBUaGlzIGNvZGUgaXMgZm9yIHRoZSBi YWNrIGNvbXBhdGliaWxpdHkuCi0gICAgICAgICAjIFNob3VsZCB3ZSByZW1vdmUgdGhlIGNvZGVz IGFmdGVyIGFsbCBJTSBlbmdpbmVzIGFyZSBjaGFuZ2VkCi0gICAgICAgICAjIHRvICJkZWZhdWx0 IiBsYXlvdXQ/Ci0tICAgICAgICBpZiBlbmdpbmUubmFtZSAhPSBOb25lIGFuZCBlbmdpbmUubmFt ZS5zdGFydHN3aXRoKCJ4a2I6bGF5b3V0OiIpOgotKyAgICAgICAgaWYgZW5naW5lLm5hbWUgIT0g Tm9uZSBhbmQgZW5naW5lLm5hbWUuc3RhcnRzd2l0aCgieGtiOmxheW91dDoiKSBhbmQgXAotKyAg ICAgICAgICAgbm90IHNlbGYuX191c2VfYnJpZGdlX2hvdGtleSgpOgotKyAgICAgICAgICAgIHJl dHVybiBlbmdpbmUubGF5b3V0Ci0rICAgICAgICBlbGlmIGVuZ2luZS5uYW1lICE9IE5vbmUgYW5k IFwKLSsgICAgICAgICAgICAgZW5naW5lLm5hbWUuc3RhcnRzd2l0aCgieGtiOmxheW91dDoiKSBh bmQgXAotKyAgICAgICAgICAgICBzZWxmLl9fdXNlX2JyaWRnZV9ob3RrZXkoKSBhbmQgXAotKyAg ICAgICAgICAgICBub3QgZW5naW5lLm5hbWUuc3RhcnRzd2l0aChpYnVzLkRFRkFVTFRfQlJJREdF X0VOR0lORV9OQU1FKToKLSAgICAgICAgICAgICByZXR1cm4gZW5naW5lLmxheW91dAotKyAgICAg ICAgZWxpZiBzZWxmLl9fdXNlX2JyaWRnZV9ob3RrZXkoKSBhbmQgXAotKyAgICAgICAgICAgc2Vs Zi5fX2Rpc2FibGVkX2VuZ2luZXNfaWQgPj0gMCBhbmQgXAotKyAgICAgICAgICAgbGVuKHNlbGYu X19kaXNhYmxlZF9lbmdpbmVzKSA+IDAgYW5kIFwKLSsgICAgICAgICAgIHNlbGYuX19kaXNhYmxl ZF9lbmdpbmVzX2lkIDwgbGVuKHNlbGYuX19kaXNhYmxlZF9lbmdpbmVzKToKLSsgICAgICAgICAg ICBpZiBjaGFuZ2VkX3N0YXRlIGFuZCBzZWxmLl9fZGlzYWJsZWRfZW5naW5lc19wcmV2X2lkICE9 IC0xOgotKyAgICAgICAgICAgICAgICAjIHN0YXRlQ2hhbmdlZCBpcyBhbHdheXMgY2FsbGVkIHRy aXBsZSBiZWNhdXNlIHdlIGNoYW5nZQotKyAgICAgICAgICAgICAgICAjIHRoZSBlbmdpbmUuIFNv IHRoZSBmaXJzdCB0d28gY2FsbHMgYXJlIGlnbm9yZWQgaGVyZS4KLSsgICAgICAgICAgICAgICAg IyBTaW5jZSB0aGlzLl9kaXNhYmxlZEVuZ2luZXNQcmV2SUQgbmVlZHMgdG8gYmUgcmVzZXRlZAot KyAgICAgICAgICAgICAgICAjIHRvIC0xIGFuZCBhbmQgc3RhdGVDaGFuZ2VkIGlzIGNhbGxlZCBt dWx0aXBsZSB0aW1lcy4KLSsgICAgICAgICAgICAgICAgIyBlbmdpbmUubGF5b3V0IGlzIG5vdCB1 c2VkLgotKyAgICAgICAgICAgICAgICAjCi0rICAgICAgICAgICAgICAgICMgV2hlbiBzdGF0ZUNo YW5nZWQgaXMgY2FsbGVkIGJ5IENvbnRyb2wgKyBTcGFjZSwKLSsgICAgICAgICAgICAgICAgIyB0 aGlzLl9kaXNhYmxlZEVuZ2luZXNJRCBhbmQgdGhpcy5fZGlzYWJsZWRFbmdpbmVzUHJldklECi0r ICAgICAgICAgICAgICAgICMgYXJlIHRvZ2dsZWQgYmVjYXVzZSB0aGlzLl9kaXNhYmxlZEVuZ2lu ZXNJRCBpcyB0aGUKLSsgICAgICAgICAgICAgICAgIyBjdXJyZW50IFhLQiBncm91cCBpZCBhbmQg dGhpcy5fZGlzYWJsZWRFbmdpbmVzUHJldklECi0rICAgICAgICAgICAgICAgICMgaXMgdGhlIG5l eHQgWEtCIGdyb3VwIGlkLgotKyAgICAgICAgICAgICAgICAjCi0rICAgICAgICAgICAgICAgICMg V2hlbiBzdGF0ZUNoYW5nZWQgaXMgY2FsbGVkIGJ5IGlidXMgYWN0aXZhdGUgbWVudSwKLSsgICAg ICAgICAgICAgICAgIyB0aGlzLl9kaXNhYmxlZEVuZ2luZXNJRCBpcyB0aGUgWEtCIGdyb3VwIGlk LgotKyAgICAgICAgICAgICAgICAjCi0rICAgICAgICAgICAgICAgICMgRklYTUU6IElmIHRoaXMu X2FjdGl2ZUVuZ2luZSBpcyB1c2VkLCBmb2N1c0luIGV2ZW50IGlzCi0rICAgICAgICAgICAgICAg ICMgY2FsbGVkIGJ5IGVpdGhlciBjaG9vc2luZyBpYnVzIG1lbnUgaXRlbSBvciBzd2l0Y2hpbmcK LSsgICAgICAgICAgICAgICAgIyBpbnB1dCBjb250ZXh0cy4KLSsgICAgICAgICAgICAgICAgIyBT byB0aGVyZSBpcyBhIGJ1ZzogQWZ0ZXIgWEtCIGdyb3VwIGlzIHN3aXRjaGVkIGJ5Ci0rICAgICAg ICAgICAgICAgICMgaWJ1cyBtZW51LCBpZiB0aGUgaW5wdXQgY29udGV4dHMgYXJlIHN3aXRjaGVk LCAKLSsgICAgICAgICAgICAgICAgIyB0aGUgbmV4dCB0b2dnbGVkIGlucHV0IG1ldGhvZCBoYXMg bmV4dCBYS0IgZ3JvdXAga2V5bWFwCi0rICAgICAgICAgICAgICAgICMgaW5zdGVhZCBvZiB0aGUg Y3VycmVudCBYS0IgZ3JvdXAga2V5bWFwLgotKyAgICAgICAgICAgICAgICAjIGZvY3VzSW4gZXZl bnQgZG9uJ3Qga25vdyBlaXRoZXIgY2hvb3NpbmcgaWJ1cyBtZW51IG9yCi0rICAgICAgICAgICAg ICAgICMgc3dpdGNoaW5nIGlucHV0IGNvbnRleHRzIGFyZSBoYXBwZW5lZC4KLSsgICAgICAgICAg ICAgICAgaWYgc2VsZi5fX2Rpc2FibGVkX2VuZ2luZXNfc3dhcHBlZCA8IDI6Ci0rICAgICAgICAg ICAgICAgICAgICB4ID0gc2VsZi5fX2Rpc2FibGVkX2VuZ2luZXNfcHJldl9pZAotKyAgICAgICAg ICAgICAgICAgICAgc2VsZi5fX2Rpc2FibGVkX2VuZ2luZXNfcHJldl9pZCA9IHNlbGYuX19kaXNh YmxlZF9lbmdpbmVzX2lkCi0rICAgICAgICAgICAgICAgICAgICBzZWxmLl9fZGlzYWJsZWRfZW5n aW5lc19pZCA9IHgKLSsgICAgICAgICAgICAgICAgICAgIHNlbGYuX19kaXNhYmxlZF9lbmdpbmVz X3N3YXBwZWQgPSBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgaWYgc2VsZi5fX2Rp c2FibGVkX2VuZ2luZXNfc3dhcHBlZCA9PSAwIGVsc2UgMAotKyAgICAgICAgICAgICAgICBlbHNl OgotKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fX2Rpc2FibGVkX2VuZ2luZXNfc3dhcHBlZCA9 IFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fX2Rpc2FibGVkX2VuZ2luZXNf c3dhcHBlZCArIDEgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLl9fZGlz YWJsZWRfZW5naW5lc19zd2FwcGVkIDwgNCBlbHNlIDAKLSsgICAgICAgICAgICByZXR2YWwgPSBz ZWxmLl9fZGlzYWJsZWRfZW5naW5lc1tzZWxmLl9fZGlzYWJsZWRfZW5naW5lc19pZF0ubGF5b3V0 Ci0rICAgICAgICAgICAgIyBlbmdpbmUgaXMgYW4gaW5wdXQtbWV0aG9kIG9yIGEga2V5bWFwIGFu ZCBpZiBlbmdpbmUgaXMKLSsgICAgICAgICAgICAjIGEga2V5bWFwLCB0aGUgbGF5b3V0IGlzIG5v dCAnZGVmYXVsdCcuCi0rICAgICAgICAgICAgIyBpZiBlbmdpbmUgaXMgYW4gaW5wdXQtbWV0aG9k LCB0aGUgbGF5b3V0IGlzIG1lcmdlZCB3aXRoIHRoZQotKyAgICAgICAgICAgICMgY3VycmVudCBY S0Iga2V5bWFwIGhlcmUuCi0rICAgICAgICAgICAgaWYgZW5naW5lLmxheW91dCAhPSBOb25lIGFu ZCBlbmdpbmUubGF5b3V0LnN0YXJ0c3dpdGgoImRlZmF1bHQiKToKLSsgICAgICAgICAgICAgICAg cmV0dXJuIHNlbGYuX19tZXJnZV9tb2RlbHNfYW5kX29wdGlvbnMocmV0dmFsLCBlbmdpbmUubGF5 b3V0KQotKyAgICAgICAgICAgIHJldHVybiByZXR2YWwKLSAgICAgICAgIGVsaWYgZW5naW5lLmxh eW91dCAhPSBOb25lIGFuZCBlbmdpbmUubGF5b3V0LnN0YXJ0c3dpdGgoImRlZmF1bHQiKToKLSAg ICAgICAgICAgICByZXR1cm4gZW5naW5lLmxheW91dAotICAgICAgICAgZWxzZToKLWRpZmYgLS1n aXQgYS94a2IvTWFrZWZpbGUuYW0gYi94a2IvTWFrZWZpbGUuYW0KLWluZGV4IGFkOWNkZDkuLmM0 ZDVhZmIgMTAwNjQ0Ci0tLS0gYS94a2IvTWFrZWZpbGUuYW0KLSsrKyBiL3hrYi9NYWtlZmlsZS5h bQotQEAgLTI4LDYgKzI4LDggQEAgSU5DTFVERVMgPSBcCi0gICAgICAgICAtSSQodG9wX3NyY2Rp cikvc3JjIFwKLSAJLURJQlVTX0xPQ0FMRURJUj1cIiQoZGF0YWRpcikvbG9jYWxlXCIgXAotIAkt RExJQkVYRUNESVI9XCIiJChsaWJleGVjZGlyKSJcIiBcCi0rCS1EVVNFX0JSSURHRV9IT1RLRVk9 JChVU0VfQlJJREdFX0hPVEtFWSkgXAotKwktRERFRkFVTFRfQlJJREdFX0VOR0lORV9OQU1FPVwi JChERUZBVUxUX0JSSURHRV9FTkdJTkVfTkFNRSlcIiBcCi0gICAgICAgICAkKE5VTEwpCi0gCi0g bm9pbnN0X1BST0dSQU1TID0gJChURVNUUykKLWRpZmYgLS1naXQgYS94a2IvaWJ1cy1lbmdpbmUt eGtiLW1haW4uYyBiL3hrYi9pYnVzLWVuZ2luZS14a2ItbWFpbi5jCi1pbmRleCAwZmIwZjBjLi40 Nzg3YmYyIDEwMDY0NAotLS0tIGEveGtiL2lidXMtZW5naW5lLXhrYi1tYWluLmMKLSsrKyBiL3hr Yi9pYnVzLWVuZ2luZS14a2ItbWFpbi5jCi1AQCAtMjkwLDYgKzI5MCw5IEBAIHByaW50X2NvbXBv bmVudCAoKQotICAgICBjb25zdCBnY2hhciAqZGVzYzsKLSAgICAgZ2NoYXIgKm91dHB1dDsKLSAg ICAgR1N0cmluZyAqc3RyOwotKyNpZiBVU0VfQlJJREdFX0hPVEtFWQotKyAgICBpbnQgaTsKLSsj ZW5kaWYKLSAKLSAjaWZkZWYgWEtCTEFZT1VUQ09ORklHX0ZJTEUKLSAgICAgbGF5b3V0X2NvbmZp ZyA9IGlidXNfeGtiX2xheW91dF9jb25maWdfbmV3IChYS0JMQVlPVVRDT05GSUdfRklMRSk7Ci1A QCAtMzAyLDYgKzMwNSwxOSBAQCBwcmludF9jb21wb25lbnQgKCkKLSAgICAgbGF5b3V0X2Rlc2Mg PSAoR0hhc2hUYWJsZSAqKSBpYnVzX3hrYl9jb25maWdfcmVnaXN0cnlfZ2V0X2xheW91dF9kZXNj IChjb25maWdfcmVnaXN0cnkpOwotICAgICB2YXJpYW50X2Rlc2MgPSAoR0hhc2hUYWJsZSAqKSBp YnVzX3hrYl9jb25maWdfcmVnaXN0cnlfZ2V0X3ZhcmlhbnRfZGVzYyAoY29uZmlnX3JlZ2lzdHJ5 KTsKLSAgICAgY29tcG9uZW50ID0gaWJ1c194a2JfY29tcG9uZW50X25ldyAoKTsKLSsjaWYgVVNF X0JSSURHRV9IT1RLRVkKLSsgICAgZm9yIChpID0gMDsgaSA8IDQ7IGkrKykgewotKyAgICAgICAg Z2NoYXIgKm5hbWUgPSBnX3N0cmR1cF9wcmludGYgKCIlcyMlZCIsIERFRkFVTFRfQlJJREdFX0VO R0lORV9OQU1FLCBpKTsKLSsgICAgICAgIGVuZ2luZSA9IGlidXNfeGtiX2VuZ2luZV9kZXNjX25l dyAoImVuZyIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1 cyIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIkRlZmF1 bHQgTGF5b3V0IiksCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IE5VTEwsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEws Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUpOwotKyAg ICAgICAgZ19mcmVlIChuYW1lKTsKLSsgICAgICAgIGlidXNfY29tcG9uZW50X2FkZF9lbmdpbmUg KGNvbXBvbmVudCwgZW5naW5lKTsKLSsgICAgfQotKyNlbmRpZgotICAgICBmb3IgKGtleXMgPSBn X2hhc2hfdGFibGVfZ2V0X2tleXMgKGxheW91dF9saXN0KTsga2V5czsga2V5cyA9IGtleXMtPm5l eHQpIHsKLSAgICAgICAgIGlmIChrZXlzLT5kYXRhID09IE5VTEwpIHsKLSAgICAgICAgICAgICBj b250aW51ZTsKLWRpZmYgLS1naXQgYS94a2IveGtieG1sLmMgYi94a2IveGtieG1sLmMKLWluZGV4 IGQ1OWE5MjkuLjg2YmNmOGYgMTAwNjQ0Ci0tLS0gYS94a2IveGtieG1sLmMKLSsrKyBiL3hrYi94 a2J4bWwuYwotQEAgLTI1LDYgKzI1LDcgQEAKLSAjZW5kaWYKLSAKLSAjaW5jbHVkZSA8Z2xpYi5o PgotKyNpbmNsdWRlIDxzdHJpbmcuaD4KLSAKLSAjaW5jbHVkZSAieGtieG1sLmgiCi0gI2luY2x1 ZGUgImlidXMuaCIKLUBAIC0yNzUsNiArMjc2LDcgQEAgaWJ1c194a2JfZW5naW5lX2Rlc2NfbmV3 IChjb25zdCBnY2hhciAqbAotICAgICBnY2hhciAqZGVzYyA9IE5VTEw7Ci0gICAgIGdjaGFyICpl bmdpbmVfbGF5b3V0ID0gTlVMTDsKLSAgICAgY29uc3QgZ2NoYXIgKm5hbWVfcHJlZml4ID0gInhr YjpsYXlvdXQ6IjsKLSsgICAgY29uc3QgZ2NoYXIgKmljb24gPSAiaWJ1cy1lbmdpbmUiOwotIAot ICAgICBnX3JldHVybl92YWxfaWZfZmFpbCAobGFuZyAhPSBOVUxMICYmIGxheW91dCAhPSBOVUxM LCBOVUxMKTsKLSAKLUBAIC0zMDQsNiArMzA2LDEyIEBAIGlidXNfeGtiX2VuZ2luZV9kZXNjX25l dyAoY29uc3QgZ2NoYXIgKmwKLSAgICAgICAgIGRlc2MgPSBnX3N0cmR1cF9wcmludGYgKCJYS0Ig JXMga2V5Ym9hcmQgbGF5b3V0IiwgbGF5b3V0KTsKLSAgICAgICAgIGVuZ2luZV9sYXlvdXQgPSBn X3N0cmR1cCAobGF5b3V0KTsKLSAgICAgfQotKyNpZiBVU0VfQlJJREdFX0hPVEtFWQotKyAgICBp ZiAoZ19hc2NpaV9zdHJuY2FzZWNtcCAobmFtZSwgREVGQVVMVF9CUklER0VfRU5HSU5FX05BTUUs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJsZW4gKERFRkFVTFRfQlJJREdFX0VO R0lORV9OQU1FKSkgPT0gMCkgewotKyAgICAgICAgaWNvbiA9ICJpbnB1dC1rZXlib2FyZC1zeW1i b2xpYyI7Ci0rICAgIH0KLSsjZW5kaWYKLSAKLSAgICAgZW5naW5lID0gaWJ1c19lbmdpbmVfZGVz Y19uZXcgKG5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nbmFt ZSwKLUBAIC0zMTEsNyArMzE5LDcgQEAgaWJ1c194a2JfZW5naW5lX2Rlc2NfbmV3IChjb25zdCBn Y2hhciAqbAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFuZywKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMR1BMMi4xIiwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdt YWlsLmNvbT4iLAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImlidXMtZW5n aW5lIiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb24sCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmdpbmVfbGF5b3V0KTsKLSAKLSAgICAgZ19m cmVlIChuYW1lKTsKLS0tIAotMS43LjUuNAotCgpkaWZmIC0tZ2l0IGEvaWJ1cy14eC1mMTktcGFz c3dvcmQucGF0Y2ggYi9pYnVzLXh4LWYxOS1wYXNzd29yZC5wYXRjaApkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggZTRkZDc3Yi4uMDAwMDAwMAotLS0gYS9pYnVzLXh4LWYxOS1wYXNzd29y ZC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLWRpZmYgLS1naXQgYS9jbGll bnQvZ3RrMi9pYnVzaW1jb250ZXh0LmMgYi9jbGllbnQvZ3RrMi9pYnVzaW1jb250ZXh0LmMKLWlu ZGV4IGVlZjA2MmMuLmQ2NDRkNjkgMTAwNjQ0Ci0tLS0gYS9jbGllbnQvZ3RrMi9pYnVzaW1jb250 ZXh0LmMKLSsrKyBiL2NsaWVudC9ndGsyL2lidXNpbWNvbnRleHQuYwotQEAgLTg0NSw2ICs4NDUs MTggQEAgaWJ1c19pbV9jb250ZXh0X2ZvY3VzX2luIChHdGtJTUNvbnRleHQgKmNvbnRleHQpCi0g ICAgICAgICByZXR1cm47Ci0gCi0gICAgIC8qIGRvbid0IHNldCBmb2N1cyBvbiBwYXNzd29yZCBl bnRyeSAqLwotKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTiAoMywgNiwgMCkKLSsgICAgewotKyAgICAg ICAgR3RrSW5wdXRQdXJwb3NlIHB1cnBvc2U7Ci0rCi0rICAgICAgICBnX29iamVjdF9nZXQgKEdf T0JKRUNUIChjb250ZXh0KSwKLSsgICAgICAgICAgICAgICAgICAgICAgImlucHV0LXB1cnBvc2Ui LCAmcHVycG9zZSwKLSsgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7Ci0rCi0rICAgICAgICBp ZiAocHVycG9zZSA9PSBHVEtfSU5QVVRfUFVSUE9TRV9QQVNTV09SRCkKLSsgICAgICAgICAgICBy ZXR1cm47Ci0rICAgIH0KLSsjZW5kaWYKLSAgICAgaWYgKGlidXNpbWNvbnRleHQtPmNsaWVudF93 aW5kb3cgIT0gTlVMTCkgewotICAgICAgICAgR3RrV2lkZ2V0ICp3aWRnZXQ7Ci0gCgpkaWZmIC0t Z2l0IGEvaWJ1cy14eC1zZXR1cC1mcmVxdWVudC1sYW5nLnBhdGNoIGIvaWJ1cy14eC1zZXR1cC1m cmVxdWVudC1sYW5nLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNTYwMGM5 Li4wMDAwMDAwCi0tLSBhL2lidXMteHgtc2V0dXAtZnJlcXVlbnQtbGFuZy5wYXRjaAorKysgL2Rl di9udWxsCkBAIC0xLDQxMyArMCwwIEBACi1Gcm9tIDc5NTg3ZjE4Nzk5OGI2ZTg5YzQ3OGFjMjNj N2RiY2JhNTZhOTE2MzcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBmdWppd2FyYXQg PHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci1EYXRlOiBNb24sIDE0IEp1bCAyMDE0IDE2OjIx OjE5ICswOTAwCi1TdWJqZWN0OiBbUEFUQ0hdIEVuYWJsZSBpYnVzLXNldHVwIHRvIHNob3cgdGhl IGZyZXF1ZW50bHkgdXNlZCBsYW5ndWFnZXMKLSBvbmx5IGluIElNRSBsaXN0LgotCi0tLS0KLSBk YXRhL2lidXMuc2NoZW1hcy5pbiAgICB8IDE2OCArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKLSBzZXR1cC9lbmdpbmVjb21ib2JveC5weSB8IDE0OCArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KLSAyIGZpbGVzIGNoYW5nZWQs IDI5MiBpbnNlcnRpb25zKCspLCAyNCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL2RhdGEv aWJ1cy5zY2hlbWFzLmluIGIvZGF0YS9pYnVzLnNjaGVtYXMuaW4KLWluZGV4IDllZTBiMWEuLmM2 MzhlN2QgMTAwNjQ0Ci0tLS0gYS9kYXRhL2lidXMuc2NoZW1hcy5pbgotKysrIGIvZGF0YS9pYnVz LnNjaGVtYXMuaW4KLUBAIC0zODQsNiArMzg0LDE3NCBAQCBzZSxzaSxzayxzeSxzeShrdSksdGgs dGosdHIsdWEsdXosdm4KLSAgICAgICA8L2xvY2FsZT4KLSAgICAgPC9zY2hlbWE+Ci0gICAgIDxz Y2hlbWE+Ci0rICAgICAgPGtleT4vc2NoZW1hcy9kZXNrdG9wL2lidXMvZ2VuZXJhbC94a2JsYXlv dXRjb25maWcvZ3JvdXBfbGlzdDwva2V5PgotKyAgICAgIDxhcHBseXRvPi9kZXNrdG9wL2lidXMv Z2VuZXJhbC94a2JsYXlvdXRjb25maWcvZ3JvdXBfbGlzdDwvYXBwbHl0bz4KLSsgICAgICA8b3du ZXI+aWJ1czwvb3duZXI+Ci0rICAgICAgPHR5cGU+bGlzdDwvdHlwZT4KLSsgICAgICA8bGlzdF90 eXBlPnN0cmluZzwvbGlzdF90eXBlPgotKyAgICAgIDxkZWZhdWx0Plt3ZXN0X2V1cm9wZSxzb3V0 aF9ldXJvcGUsZWFzdF9ldXJvcGUsbm9ydGhfZXVyb3BlLHdlc3RfYXNpYSxjZW50ZXJfYXNpYSxl YXN0X2FzaWEsaW5kaWEsYXVzdHJhbGlhXTwvZGVmYXVsdD4KLSsgICAgICA8bG9jYWxlIG5hbWU9 IkMiPgotKyAgICAgICAgPHNob3J0Pkxpc3Qgb2Ygc3lzdGVtIGtleWJvYXJkIGxheW91dCBncm91 cHMgb24gaWJ1cy1zZXR1cDwvc2hvcnQ+Ci0rICAgICAgICAgICA8bG9uZz5UaGUgZ3JvdXAgbGlz dCBpcyB1c2VkIG5vdCB0byBzaG93IGFsbCB0aGUgc3lzdGVtCi0rICAgICAgICAgICAgICAgICAg a2V5Ym9hcmQgbGF5b3V0cyBieSBkZWZhdWx0LiBUaGUgbGlzdCBpdGVtIHdpbGwgYmUKLSsgICAg ICAgICAgICAgICAgICBhcHBlbmRlZCBhdCB0aGUgZW5kIG9mIGdjb25mIGtleS4gZS5nLgotKyAg ICAgICAgICAgICAgICAgIC4uLi94a2JsYXlvdXRjb25maWcvaXRlbTE8L2xvbmc+Ci0rICAgICAg PC9sb2NhbGU+Ci0rICAgIDwvc2NoZW1hPgotKyAgICA8c2NoZW1hPgotKyAgICAgIDxrZXk+L3Nj aGVtYXMvZGVza3RvcC9pYnVzL2dlbmVyYWwveGtibGF5b3V0Y29uZmlnL3dlc3RfZXVyb3BlPC9r ZXk+Ci0rICAgICAgPGFwcGx5dG8+L2Rlc2t0b3AvaWJ1cy9nZW5lcmFsL3hrYmxheW91dGNvbmZp Zy93ZXN0X2V1cm9wZTwvYXBwbHl0bz4KLSsgICAgICA8b3duZXI+aWJ1czwvb3duZXI+Ci0rICAg ICAgPHR5cGU+bGlzdDwvdHlwZT4KLSsgICAgICA8bGlzdF90eXBlPnN0cmluZzwvbGlzdF90eXBl PgotKyAgICAgIDwhLS0KLSsgICAgICA8ZGVmYXVsdD5bYWQsYmUsYnIsZGUsY2EsY2gsY3osZXMs ZnIsZ24saHUsaWUsaWUoQ2xvR2FlbGFjaCksaXQsbGF0YW0sbmwscHQsc2ksc2tdPC9kZWZhdWx0 PgotKyAgICAgIC0tPgotKyAgICAgIDxkZWZhdWx0PltjYSxjcyxkZSxlbixlcyxmcixnZCxodSxp dCxubCxwdCxzayxzbF08L2RlZmF1bHQ+Ci0rICAgICAgPGxvY2FsZSBuYW1lPSJDIj4KLSsgICAg ICAgIDxzaG9ydD5MaXN0IG9mIEV1cm9wZWFuIGxhbmd1YWdlcyBvbiBpYnVzLXNldHVwPC9zaG9y dD4KLSsgICAgICAgICAgIDxsb25nPmlidXMtc2V0dXAgc2hvd3MgdGhlIGxhbmd1YWdlcyBvbmx5 IGluIGlucHV0IG1ldGhvZCBsaXN0Ci0rICAgICAgICAgICAgICAgICAgd2hlbiB5b3UgcnVuIGli dXMtc2V0dXAgb24gb25lIG9mIHRoZSBsYW5ndWFnZXMuCi0rICAgICAgICAgICAgICAgICAgT3Ro ZXIgbGFuZ3VhZ2VzIGFyZSBoaWRkZW4gdW5kZXIgYW4gZXh0ZW5kZWQgYnV0dG9uLjwvbG9uZz4K LSsgICAgICA8L2xvY2FsZT4KLSsgICAgPC9zY2hlbWE+Ci0rICAgIDxzY2hlbWE+Ci0rICAgICAg PGtleT4vc2NoZW1hcy9kZXNrdG9wL2lidXMvZ2VuZXJhbC94a2JsYXlvdXRjb25maWcvc291dGhf ZXVyb3BlPC9rZXk+Ci0rICAgICAgPGFwcGx5dG8+L2Rlc2t0b3AvaWJ1cy9nZW5lcmFsL3hrYmxh eW91dGNvbmZpZy9zb3V0aF9ldXJvcGU8L2FwcGx5dG8+Ci0rICAgICAgPG93bmVyPmlidXM8L293 bmVyPgotKyAgICAgIDx0eXBlPmxpc3Q8L3R5cGU+Ci0rICAgICAgPGxpc3RfdHlwZT5zdHJpbmc8 L2xpc3RfdHlwZT4KLSsgICAgICA8IS0tCi0rICAgICAgPGRlZmF1bHQ+W2FsLGJhLGJnLGdyLG1l LG1rLG10LHJvLHJzXTwvZGVmYXVsdD4KLSsgICAgICAtLT4KLSsgICAgICA8ZGVmYXVsdD5bYmcs YnMsZWwsbWssbXQscm8sc3Esc3JdPC9kZWZhdWx0PgotKyAgICAgIDxsb2NhbGUgbmFtZT0iQyI+ Ci0rICAgICAgICA8c2hvcnQ+TGlzdCBvZiBFdXJvcGVhbiBsYW5ndWFnZXMgb24gaWJ1cy1zZXR1 cDwvc2hvcnQ+Ci0rICAgICAgICAgICA8bG9uZz5pYnVzLXNldHVwIHNob3dzIHRoZSBsYW5ndWFn ZXMgb25seSBpbiBpbnB1dCBtZXRob2QgbGlzdAotKyAgICAgICAgICAgICAgICAgIHdoZW4geW91 IHJ1biBpYnVzLXNldHVwIG9uIG9uZSBvZiB0aGUgbGFuZ3VhZ2VzLgotKyAgICAgICAgICAgICAg ICAgIE90aGVyIGxhbmd1YWdlcyBhcmUgaGlkZGVuIHVuZGVyIGFuIGV4dGVuZGVkIGJ1dHRvbi48 L2xvbmc+Ci0rICAgICAgPC9sb2NhbGU+Ci0rICAgIDwvc2NoZW1hPgotKyAgICA8c2NoZW1hPgot KyAgICAgIDxrZXk+L3NjaGVtYXMvZGVza3RvcC9pYnVzL2dlbmVyYWwveGtibGF5b3V0Y29uZmln L2Vhc3RfZXVyb3BlPC9rZXk+Ci0rICAgICAgPGFwcGx5dG8+L2Rlc2t0b3AvaWJ1cy9nZW5lcmFs L3hrYmxheW91dGNvbmZpZy9lYXN0X2V1cm9wZTwvYXBwbHl0bz4KLSsgICAgICA8b3duZXI+aWJ1 czwvb3duZXI+Ci0rICAgICAgPHR5cGU+bGlzdDwvdHlwZT4KLSsgICAgICA8bGlzdF90eXBlPnN0 cmluZzwvbGlzdF90eXBlPgotKyAgICAgIDwhLS0KLSsgICAgICA8ZGVmYXVsdD5bYnksZWUsZXBv LGdlLGdlKGRzYiksZ2UocnUpLGdlKG9zKSxocixrZyxreixsdCxsdixwbCxwbChjc2IpLHJ1LHJ1 KGN2KSxydShrb20pLHJ1KHNhaCkscnUodHQpLHJ1KHhhbCksdWEsdXpdPC9kZWZhdWx0PgotKyAg ICAgIC0tPgotKyAgICAgIDxkZWZhdWx0PltiZSxjc2IsY3YsZXQsa2Esa2ssa3ksbHQsbHYscGws cnUsdHQsdWssdXpdPC9kZWZhdWx0PgotKyAgICAgIDxsb2NhbGUgbmFtZT0iQyI+Ci0rICAgICAg ICA8c2hvcnQ+TGlzdCBvZiBFdXJvcGVhbiBsYW5ndWFnZXMgb24gaWJ1cy1zZXR1cDwvc2hvcnQ+ Ci0rICAgICAgICAgICA8bG9uZz5pYnVzLXNldHVwIHNob3dzIHRoZSBsYW5ndWFnZXMgb25seSBp biBpbnB1dCBtZXRob2QgbGlzdAotKyAgICAgICAgICAgICAgICAgIHdoZW4geW91IHJ1biBpYnVz LXNldHVwIG9uIG9uZSBvZiB0aGUgbGFuZ3VhZ2VzLgotKyAgICAgICAgICAgICAgICAgIE90aGVy IGxhbmd1YWdlcyBhcmUgaGlkZGVuIHVuZGVyIGFuIGV4dGVuZGVkIGJ1dHRvbi48L2xvbmc+Ci0r ICAgICAgPC9sb2NhbGU+Ci0rICAgIDwvc2NoZW1hPgotKyAgICA8c2NoZW1hPgotKyAgICAgIDxr ZXk+L3NjaGVtYXMvZGVza3RvcC9pYnVzL2dlbmVyYWwveGtibGF5b3V0Y29uZmlnL25vcnRoX2V1 cm9wZTwva2V5PgotKyAgICAgIDxhcHBseXRvPi9kZXNrdG9wL2lidXMvZ2VuZXJhbC94a2JsYXlv dXRjb25maWcvbm9ydGhfZXVyb3BlPC9hcHBseXRvPgotKyAgICAgIDxvd25lcj5pYnVzPC9vd25l cj4KLSsgICAgICA8dHlwZT5saXN0PC90eXBlPgotKyAgICAgIDxsaXN0X3R5cGU+c3RyaW5nPC9s aXN0X3R5cGU+Ci0rICAgICAgPCEtLQotKyAgICAgIDxkZWZhdWx0PltkayxmaSxmbyxpcyxubyxu byhzbWkpLHNlXTwvZGVmYXVsdD4KLSsgICAgICAtLT4KLSsgICAgICA8ZGVmYXVsdD5bZGEsZmks Zm8saXMsbm8sc2Usc3ZdPC9kZWZhdWx0PgotKyAgICAgIDxsb2NhbGUgbmFtZT0iQyI+Ci0rICAg ICAgICA8c2hvcnQ+TGlzdCBvZiBFdXJvcGVhbiBsYW5ndWFnZXMgb24gaWJ1cy1zZXR1cDwvc2hv cnQ+Ci0rICAgICAgICAgICA8bG9uZz5pYnVzLXNldHVwIHNob3dzIHRoZSBsYW5ndWFnZXMgb25s eSBpbiBpbnB1dCBtZXRob2QgbGlzdAotKyAgICAgICAgICAgICAgICAgIHdoZW4geW91IHJ1biBp YnVzLXNldHVwIG9uIG9uZSBvZiB0aGUgbGFuZ3VhZ2VzLgotKyAgICAgICAgICAgICAgICAgIE90 aGVyIGxhbmd1YWdlcyBhcmUgaGlkZGVuIHVuZGVyIGFuIGV4dGVuZGVkIGJ1dHRvbi48L2xvbmc+ Ci0rICAgICAgPC9sb2NhbGU+Ci0rICAgIDwvc2NoZW1hPgotKyAgICA8c2NoZW1hPgotKyAgICAg IDxrZXk+L3NjaGVtYXMvZGVza3RvcC9pYnVzL2dlbmVyYWwveGtibGF5b3V0Y29uZmlnL3dlc3Rf YXNpYTwva2V5PgotKyAgICAgIDxhcHBseXRvPi9kZXNrdG9wL2lidXMvZ2VuZXJhbC94a2JsYXlv dXRjb25maWcvd2VzdF9hc2lhPC9hcHBseXRvPgotKyAgICAgIDxvd25lcj5pYnVzPC9vd25lcj4K LSsgICAgICA8dHlwZT5saXN0PC90eXBlPgotKyAgICAgIDxsaXN0X3R5cGU+c3RyaW5nPC9saXN0 X3R5cGU+Ci0rICAgICAgPCEtLQotKyAgICAgIDxkZWZhdWx0PlthbSxhcmEsYXosZXQsZ2gsZ2go YWthbiksZ2goZXdlKSxnaChmdWxhKSxnaChnYSksZ2goaGF1c2EpLGlsLGlxLGlxKGt1KSxpcixp cihrdSksbWEsbWEodGlmaW5hZ2gpLG5nLG5nKGhhdXNhKSxuZyxuZyhpZ2JvKSxuZyh5b3J1YmEp LHN5LHN5KGt1KSx0aix0cl08L2RlZmF1bHQ+Ci0rICAgICAgLS0+Ci0rICAgICAgPGRlZmF1bHQ+ W2FtLGFyLGF6LGJlcixmYSxoYSxoZSxoeSxpZyxrdSx0Zyx0cix5b108L2RlZmF1bHQ+Ci0rICAg ICAgPGxvY2FsZSBuYW1lPSJDIj4KLSsgICAgICAgIDxzaG9ydD5MaXN0IG9mIEFzaWFuIGxhbmd1 YWdlcyBvbiBpYnVzLXNldHVwPC9zaG9ydD4KLSsgICAgICAgICAgIDxsb25nPmlidXMtc2V0dXAg c2hvd3MgdGhlIGxhbmd1YWdlcyBvbmx5IGluIGlucHV0IG1ldGhvZCBsaXN0Ci0rICAgICAgICAg ICAgICAgICAgd2hlbiB5b3UgcnVuIGlidXMtc2V0dXAgb24gb25lIG9mIHRoZSBsYW5ndWFnZXMu Ci0rICAgICAgICAgICAgICAgICAgT3RoZXIgbGFuZ3VhZ2VzIGFyZSBoaWRkZW4gdW5kZXIgYW4g ZXh0ZW5kZWQgYnV0dG9uLjwvbG9uZz4KLSsgICAgICA8L2xvY2FsZT4KLSsgICAgPC9zY2hlbWE+ Ci0rICAgIDxzY2hlbWE+Ci0rICAgICAgPGtleT4vc2NoZW1hcy9kZXNrdG9wL2lidXMvZ2VuZXJh bC94a2JsYXlvdXRjb25maWcvY2VudGVyX2FzaWE8L2tleT4KLSsgICAgICA8YXBwbHl0bz4vZGVz a3RvcC9pYnVzL2dlbmVyYWwveGtibGF5b3V0Y29uZmlnL2NlbnRlcl9hc2lhPC9hcHBseXRvPgot KyAgICAgIDxvd25lcj5pYnVzPC9vd25lcj4KLSsgICAgICA8dHlwZT5saXN0PC90eXBlPgotKyAg ICAgIDxsaXN0X3R5cGU+c3RyaW5nPC9saXN0X3R5cGU+Ci0rICAgICAgPCEtLQotKyAgICAgIDxk ZWZhdWx0Pltjbih0aWIpXTwvZGVmYXVsdD4KLSsgICAgICAtLT4KLSsgICAgICA8ZGVmYXVsdD5b Ym8semhdPC9kZWZhdWx0PgotKyAgICAgIDxsb2NhbGUgbmFtZT0iQyI+Ci0rICAgICAgICA8c2hv cnQ+TGlzdCBvZiBBc2lhbiBsYW5ndWFnZXMgb24gaWJ1cy1zZXR1cDwvc2hvcnQ+Ci0rICAgICAg ICAgICA8bG9uZz5pYnVzLXNldHVwIHNob3dzIHRoZSBsYW5ndWFnZXMgb25seSBpbiBpbnB1dCBt ZXRob2QgbGlzdAotKyAgICAgICAgICAgICAgICAgIHdoZW4geW91IHJ1biBpYnVzLXNldHVwIG9u IG9uZSBvZiB0aGUgbGFuZ3VhZ2VzLgotKyAgICAgICAgICAgICAgICAgIE90aGVyIGxhbmd1YWdl cyBhcmUgaGlkZGVuIHVuZGVyIGFuIGV4dGVuZGVkIGJ1dHRvbi48L2xvbmc+Ci0rICAgICAgPC9s b2NhbGU+Ci0rICAgIDwvc2NoZW1hPgotKyAgICA8c2NoZW1hPgotKyAgICAgIDxrZXk+L3NjaGVt YXMvZGVza3RvcC9pYnVzL2dlbmVyYWwveGtibGF5b3V0Y29uZmlnL2Vhc3RfYXNpYTwva2V5Pgot KyAgICAgIDxhcHBseXRvPi9kZXNrdG9wL2lidXMvZ2VuZXJhbC94a2JsYXlvdXRjb25maWcvZWFz dF9hc2lhPC9hcHBseXRvPgotKyAgICAgIDxvd25lcj5pYnVzPC9vd25lcj4KLSsgICAgICA8dHlw ZT5saXN0PC90eXBlPgotKyAgICAgIDxsaXN0X3R5cGU+c3RyaW5nPC9saXN0X3R5cGU+Ci0rICAg ICAgPCEtLQotKyAgICAgIDxkZWZhdWx0PltidCxraCxsYSxtYWwsbW0sdGgsdm5dPC9kZWZhdWx0 PgotKyAgICAgIC0tPgotKyAgICAgIDxkZWZhdWx0PltkeixrbSxsbyxteSx0aCx2aV08L2RlZmF1 bHQ+Ci0rICAgICAgPGxvY2FsZSBuYW1lPSJDIj4KLSsgICAgICAgIDxzaG9ydD5MaXN0IG9mIEFz aWFuIGxhbmd1YWdlcyBvbiBpYnVzLXNldHVwPC9zaG9ydD4KLSsgICAgICAgICAgIDxsb25nPmli dXMtc2V0dXAgc2hvd3MgdGhlIGxhbmd1YWdlcyBvbmx5IGluIGlucHV0IG1ldGhvZCBsaXN0Ci0r ICAgICAgICAgICAgICAgICAgd2hlbiB5b3UgcnVuIGlidXMtc2V0dXAgb24gb25lIG9mIHRoZSBs YW5ndWFnZXMuCi0rICAgICAgICAgICAgICAgICAgT3RoZXIgbGFuZ3VhZ2VzIGFyZSBoaWRkZW4g dW5kZXIgYW4gZXh0ZW5kZWQgYnV0dG9uLjwvbG9uZz4KLSsgICAgICA8L2xvY2FsZT4KLSsgICAg PC9zY2hlbWE+Ci0rICAgIDxzY2hlbWE+Ci0rICAgICAgPGtleT4vc2NoZW1hcy9kZXNrdG9wL2li dXMvZ2VuZXJhbC94a2JsYXlvdXRjb25maWcvaW5kaWE8L2tleT4KLSsgICAgICA8YXBwbHl0bz4v ZGVza3RvcC9pYnVzL2dlbmVyYWwveGtibGF5b3V0Y29uZmlnL2luZGlhPC9hcHBseXRvPgotKyAg ICAgIDxvd25lcj5pYnVzPC9vd25lcj4KLSsgICAgICA8dHlwZT5saXN0PC90eXBlPgotKyAgICAg IDxsaXN0X3R5cGU+c3RyaW5nPC9saXN0X3R5cGU+Ci0rICAgICAgPCEtLQotKyAgICAgIDxkZWZh dWx0PltiZCxpbixpbihiZW4pLGluKGd1aiksaW4oZ3VydSksaW4oamhlbHVtKSxpbihrYW4pLGlu KG1hbCksaW4ob3JpKSxpbih0YW0pLGluKHRlbCksaW4odXJkLXBob25ldGljKSxpbihib2xuYWdy aSksbGssbGsodGFtX3VuaWNvZGUpLG12LG5wLHBrXTwvZGVmYXVsdD4KLSsgICAgICAtLT4KLSsg ICAgICA8ZGVmYXVsdD5bYm4sZHYsZ3UsaGksa24sbWwsbmUsb3IscGEsc2ksdGEsdGUsdXJdPC9k ZWZhdWx0PgotKyAgICAgIDxsb2NhbGUgbmFtZT0iQyI+Ci0rICAgICAgICA8c2hvcnQ+TGlzdCBv ZiBBc2lhbiBsYW5ndWFnZXMgb24gaWJ1cy1zZXR1cDwvc2hvcnQ+Ci0rICAgICAgICAgICA8bG9u Zz5pYnVzLXNldHVwIHNob3dzIHRoZSBsYW5ndWFnZXMgb25seSBpbiBpbnB1dCBtZXRob2QgbGlz dAotKyAgICAgICAgICAgICAgICAgIHdoZW4geW91IHJ1biBpYnVzLXNldHVwIG9uIG9uZSBvZiB0 aGUgbGFuZ3VhZ2VzLgotKyAgICAgICAgICAgICAgICAgIE90aGVyIGxhbmd1YWdlcyBhcmUgaGlk ZGVuIHVuZGVyIGFuIGV4dGVuZGVkIGJ1dHRvbi48L2xvbmc+Ci0rICAgICAgPC9sb2NhbGU+Ci0r ICAgIDwvc2NoZW1hPgotKyAgICA8c2NoZW1hPgotKyAgICAgIDxrZXk+L3NjaGVtYXMvZGVza3Rv cC9pYnVzL2dlbmVyYWwveGtibGF5b3V0Y29uZmlnL2F1c3RyYWxpYTwva2V5PgotKyAgICAgIDxh cHBseXRvPi9kZXNrdG9wL2lidXMvZ2VuZXJhbC94a2JsYXlvdXRjb25maWcvYXVzdHJhbGlhPC9h cHBseXRvPgotKyAgICAgIDxvd25lcj5pYnVzPC9vd25lcj4KLSsgICAgICA8dHlwZT5saXN0PC90 eXBlPgotKyAgICAgIDxsaXN0X3R5cGU+c3RyaW5nPC9saXN0X3R5cGU+Ci0rICAgICAgPCEtLQot KyAgICAgIDxkZWZhdWx0PlttYW9dPC9kZWZhdWx0PgotKyAgICAgIC0tPgotKyAgICAgIDxkZWZh dWx0PlttaV08L2RlZmF1bHQ+Ci0rICAgICAgPGxvY2FsZSBuYW1lPSJDIj4KLSsgICAgICAgIDxz aG9ydD5MaXN0IG9mIEFzaWFuIGxhbmd1YWdlcyBvbiBpYnVzLXNldHVwPC9zaG9ydD4KLSsgICAg ICAgICAgIDxsb25nPmlidXMtc2V0dXAgc2hvd3MgdGhlIGxhbmd1YWdlcyBvbmx5IGluIGlucHV0 IG1ldGhvZCBsaXN0Ci0rICAgICAgICAgICAgICAgICAgd2hlbiB5b3UgcnVuIGlidXMtc2V0dXAg b24gb25lIG9mIHRoZSBsYW5ndWFnZXMuCi0rICAgICAgICAgICAgICAgICAgT3RoZXIgbGFuZ3Vh Z2VzIGFyZSBoaWRkZW4gdW5kZXIgYW4gZXh0ZW5kZWQgYnV0dG9uLjwvbG9uZz4KLSsgICAgICA8 L2xvY2FsZT4KLSsgICAgPC9zY2hlbWE+Ci0rICAgIDxzY2hlbWE+Ci0gICAgICAgPGtleT4vc2No ZW1hcy9kZXNrdG9wL2lidXMvcGFuZWwvY3VzdG9tX2ZvbnQ8L2tleT4KLSAgICAgICA8YXBwbHl0 bz4vZGVza3RvcC9pYnVzL3BhbmVsL2N1c3RvbV9mb250PC9hcHBseXRvPgotICAgICAgIDxvd25l cj5pYnVzPC9vd25lcj4KLWRpZmYgLS1naXQgYS9zZXR1cC9lbmdpbmVjb21ib2JveC5weSBiL3Nl dHVwL2VuZ2luZWNvbWJvYm94LnB5Ci1pbmRleCAyYTJhNjc3Li5hMjAzYjI1IDEwMDY0NAotLS0t IGEvc2V0dXAvZW5naW5lY29tYm9ib3gucHkKLSsrKyBiL3NldHVwL2VuZ2luZWNvbWJvYm94LnB5 Ci1AQCAtMjQsNiArMjQsNyBAQCBpbXBvcnQgbG9jYWxlCi0gaW1wb3J0IGZ1bmN0b29scwotIGlt cG9ydCBzeXMKLSAKLStmcm9tIGdpLnJlcG9zaXRvcnkgaW1wb3J0IEdpbwotIGZyb20gZ2kucmVw b3NpdG9yeSBpbXBvcnQgR09iamVjdAotIGZyb20gZ2kucmVwb3NpdG9yeSBpbXBvcnQgR3RrCi0g ZnJvbSBnaS5yZXBvc2l0b3J5IGltcG9ydCBJQnVzCi1AQCAtNDcsNiArNDgsMTAgQEAgY2xhc3Mg RW5naW5lQ29tYm9Cb3goR3RrLkNvbWJvQm94KToKLSAgICAgICAgIHNlbGYuY29ubmVjdCgibm90 aWZ5OjphY3RpdmUiLCBzZWxmLl9fbm90aWZ5X2FjdGl2ZV9jYikKLSAKLSAgICAgICAgIHNlbGYu X19tb2RlbCA9IE5vbmUKLSsgICAgICAgIHNlbGYuX19hbGxfbW9kZWwgPSBOb25lCi0rICAgICAg ICBzZWxmLl9fc2hvd19zdWJfbGFuZyA9IEZhbHNlCi0rICAgICAgICBzZWxmLl9fc2V0dGluZ3Nf eGtibGF5b3V0Y29uZmlnID0gR2lvLlNldHRpbmdzKAotKyAgICAgICAgICAgICAgICBzY2hlbWEg PSAib3JnLmZyZWVkZXNrdG9wLmlidXMuZ2VuZXJhbC54a2JsYXlvdXRjb25maWciKTsKLSAKLSAg ICAgICAgIHJlbmRlcmVyID0gR3RrLkNlbGxSZW5kZXJlclBpeGJ1ZigpCi0gICAgICAgICByZW5k ZXJlci5zZXRfcHJvcGVydHkoInhhbGlnbiIsIDApCi1AQCAtNjAsMjAgKzY1LDQ1IEBAIGNsYXNz IEVuZ2luZUNvbWJvQm94KEd0ay5Db21ib0JveCk6Ci0gICAgICAgICBzZWxmLnBhY2tfc3RhcnQo cmVuZGVyZXIsIFRydWUpCi0gICAgICAgICBzZWxmLnNldF9jZWxsX2RhdGFfZnVuYyhyZW5kZXJl ciwgc2VsZi5fX25hbWVfY2VsbF9kYXRhX2NiLCBOb25lKQotIAotLSAgICBkZWYgc2V0X2VuZ2lu ZXMoc2VsZiwgZW5naW5lcyk6Ci0tICAgICAgICBzZWxmLl9fbW9kZWwgPSBHdGsuVHJlZVN0b3Jl KG9iamVjdCkKLSsgICAgZGVmIF9fZ2NvbmZfZ2V0X2xhbmdfbGlzdF9mcm9tX2xvY2FsZShzZWxm KToKLSsgICAgICAgIGNvbW1vbl9saXN0ID0gWydlbicsICdPdGhlciddCi0rICAgICAgICBsb2Mg PSBOb25lCi0rICAgICAgICB0cnk6Ci0rICAgICAgICAgICBsb2MgPSBsb2NhbGUuc2V0bG9jYWxl IChsb2NhbGUuTENfQUxMKQotKyAgICAgICAgZXhjZXB0OgotKyAgICAgICAgICAgIHBhc3MKLSsg ICAgICAgIGlmIGxvYyA9PSBOb25lOgotKyAgICAgICAgICAgIHJldHVybiBjb21tb25fbGlzdAot KyAgICAgICAgY3VycmVudF9sYW5nID0gSUJ1cy5nZXRfbGFuZ3VhZ2VfbmFtZShsb2MpCi0rICAg ICAgICBpZiBjdXJyZW50X2xhbmcgPT0gTm9uZToKLSsgICAgICAgICAgICByZXR1cm4gY29tbW9u X2xpc3QKLSsgICAgICAgIGdyb3VwX2xpc3QgPSBzZWxmLl9fc2V0dGluZ3NfeGtibGF5b3V0Y29u ZmlnLmdldF9zdHJ2KCdncm91cC1saXN0JykKLSsgICAgICAgIGlmIGxlbihncm91cF9saXN0KSA9 PSAwOgotKyAgICAgICAgICAgIHJldHVybiBbbG9jXSArIGNvbW1vbl9saXN0Ci0rICAgICAgICBs YW5nX2xpc3QgPSBOb25lCi0rICAgICAgICBmb3IgZ3JvdXAgaW4gZ3JvdXBfbGlzdDoKLSsgICAg ICAgICAgICBncm91cCA9IGdyb3VwLnJlcGxhY2UoJ18nLCAnLScpCi0rICAgICAgICAgICAgbGFu Z3MgPSBzZWxmLl9fc2V0dGluZ3NfeGtibGF5b3V0Y29uZmlnLmdldF9zdHJ2KGdyb3VwKQotKyAg ICAgICAgICAgIGZvciBsYW5nIGluIGxhbmdzOgotKyAgICAgICAgICAgICAgICBpZiBjdXJyZW50 X2xhbmcgPT0gSUJ1cy5nZXRfbGFuZ3VhZ2VfbmFtZShsYW5nKToKLSsgICAgICAgICAgICAgICAg ICAgIGxhbmdfbGlzdCA9IGxhbmdzCi0rICAgICAgICAgICAgICAgICAgICBicmVhawotKyAgICAg ICAgICAgIGlmIGxhbmdfbGlzdCAhPSBOb25lOgotKyAgICAgICAgICAgICAgICBicmVhawotKyAg ICAgICAgaWYgbGFuZ19saXN0ID09IE5vbmU6Ci0rICAgICAgICAgICAgcmV0dXJuIFtsb2NdICsg Y29tbW9uX2xpc3QKLSsgICAgICAgIHJldHVybiBsYW5nX2xpc3QgKyBjb21tb25fbGlzdAotIAot LSAgICAgICAgaXRlcjEgPSBzZWxmLl9fbW9kZWwuYXBwZW5kKE5vbmUpCi0tICAgICAgICBzZWxm Ll9fbW9kZWwuc2V0KGl0ZXIxLCAwLCAwKQotLSAgICAgICAgbGFuZ3MgPSB7fQotLSAgICAgICAg Zm9yIGUgaW4gZW5naW5lczoKLS0gICAgICAgICAgICBsID0gSUJ1cy5nZXRfbGFuZ3VhZ2VfbmFt ZShlLmdldF9sYW5ndWFnZSgpKQotLSAgICAgICAgICAgIGlmIGwgPT0gTm9uZToKLS0gICAgICAg ICAgICAgICAgbCA9ICIiCi0tICAgICAgICAgICAgaWYgbCBub3QgaW4gbGFuZ3M6Ci0tICAgICAg ICAgICAgICAgIGxhbmdzW2xdID0gW10KLS0gICAgICAgICAgICBsYW5nc1tsXS5hcHBlbmQoZSkK LSsgICAgZGVmIF9faGFzX2VuZ2luZV9pbl9sYW5nX2xpc3Qoc2VsZiwgZW5naW5lLCBsYW5nX2xp c3QpOgotKyAgICAgICAgcmV0dmFsID0gRmFsc2UKLSsgICAgICAgIGZvciBsYW5nIGluIGxhbmdf bGlzdDoKLSsgICAgICAgICAgICBpZiBJQnVzLmdldF9sYW5ndWFnZV9uYW1lKGxhbmcpID09IFwK LSsgICAgICAgICAgICAgICAgSUJ1cy5nZXRfbGFuZ3VhZ2VfbmFtZShlbmdpbmUucHJvcHMubGFu Z3VhZ2UpOgotKyAgICAgICAgICAgICAgICByZXR2YWwgPSBUcnVlCi0rICAgICAgICAgICAgICAg IGJyZWFrCi0rICAgICAgICByZXR1cm4gcmV0dmFsCi0gCi0rICAgIGRlZiBfX21vZGVsX2FwcGVu ZF9sYW5ncyhzZWxmLCBtb2RlbCwgbGFuZ3MsIHZpc2libGUpOgotICAgICAgICAga2V5cyA9IGxp c3QobGFuZ3Mua2V5cygpKQotICAgICAgICAga2V5cy5zb3J0KGtleT1mdW5jdG9vbHMuY21wX3Rv X2tleShsb2NhbGUuc3RyY29sbCkpCi0gICAgICAgICBsb2MgPSBsb2NhbGUuZ2V0bG9jYWxlKClb MF0KLUBAIC05MSwyMiArMTIxLDYyIEBAIGNsYXNzIEVuZ2luZUNvbWJvQm94KEd0ay5Db21ib0Jv eCk6Ci0gICAgICAgICAgICAga2V5cy5yZW1vdmUoSUJ1cy5nZXRfbGFuZ3VhZ2VfbmFtZSgiT3Ro ZXIiKSkKLSAgICAgICAgICAgICBrZXlzICs9IFtJQnVzLmdldF9sYW5ndWFnZV9uYW1lKCJPdGhl ciIpXQotICAgICAgICAgZm9yIGwgaW4ga2V5czoKLS0gICAgICAgICAgICBpdGVyMSA9IHNlbGYu X19tb2RlbC5hcHBlbmQoTm9uZSkKLS0gICAgICAgICAgICBzZWxmLl9fbW9kZWwuc2V0KGl0ZXIx LCAwLCBsKQotKyAgICAgICAgICAgIGl0ZXIxID0gbW9kZWwuYXBwZW5kKE5vbmUpCi0rICAgICAg ICAgICAgbW9kZWwuc2V0KGl0ZXIxLCAwLCBsKQotICAgICAgICAgICAgIGRlZiBjbXBfZW5naW5l KGEsIGIpOgotICAgICAgICAgICAgICAgICBpZiBhLmdldF9yYW5rKCkgPT0gYi5nZXRfcmFuaygp OgotICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxvY2FsZS5zdHJjb2xsKGEuZ2V0X2xvbmdu YW1lKCksIGIuZ2V0X2xvbmduYW1lKCkpCi0gICAgICAgICAgICAgICAgIHJldHVybiBpbnQoYi5n ZXRfcmFuaygpIC0gYS5nZXRfcmFuaygpKQotICAgICAgICAgICAgIGxhbmdzW2xdLnNvcnQoa2V5 PWZ1bmN0b29scy5jbXBfdG9fa2V5KGNtcF9lbmdpbmUpKQotICAgICAgICAgICAgIGZvciBlIGlu IGxhbmdzW2xdOgotLSAgICAgICAgICAgICAgICBpdGVyMiA9IHNlbGYuX19tb2RlbC5hcHBlbmQo aXRlcjEpCi0tICAgICAgICAgICAgICAgIHNlbGYuX19tb2RlbC5zZXQoaXRlcjIsIDAsIGUpCi0r ICAgICAgICAgICAgICAgIGl0ZXIyID0gbW9kZWwuYXBwZW5kKGl0ZXIxKQotKyAgICAgICAgICAg ICAgICBtb2RlbC5zZXQoaXRlcjIsIDAsIGUpCi0rCi0rICAgIGRlZiBzZXRfZW5naW5lcyhzZWxm LCBlbmdpbmVzKToKLSsgICAgICAgIHNlbGYuX19tb2RlbCA9IEd0ay5UcmVlU3RvcmUob2JqZWN0 KQotIAotLSAgICAgICAgc2VsZi5zZXRfbW9kZWwoc2VsZi5fX21vZGVsKQotKyAgICAgICAgaXRl cjEgPSBzZWxmLl9fbW9kZWwuYXBwZW5kKE5vbmUpCi0rICAgICAgICBzZWxmLl9fbW9kZWwuc2V0 KGl0ZXIxLCAwLCAwKQotKyAgICAgICAgbGFuZ19saXN0ID0gc2VsZi5fX2djb25mX2dldF9sYW5n X2xpc3RfZnJvbV9sb2NhbGUoKQotKyAgICAgICAgbGFuZyA9IHt9Ci0rICAgICAgICBzdWJfbGFu ZyA9IHt9Ci0rICAgICAgICBmb3IgZSBpbiBlbmdpbmVzOgotKyAgICAgICAgICAgIGwgPSBJQnVz LmdldF9sYW5ndWFnZV9uYW1lKGUucHJvcHMubGFuZ3VhZ2UpCi0rICAgICAgICAgICAgaWYgbGFu Z19saXN0ID09IE5vbmUgb3IgXAotKyAgICAgICAgICAgICAgICBzZWxmLl9faGFzX2VuZ2luZV9p bl9sYW5nX2xpc3QoZSwgbGFuZ19saXN0KToKLSsgICAgICAgICAgICAgICAgaWYgbCBub3QgaW4g bGFuZzoKLSsgICAgICAgICAgICAgICAgICAgIGxhbmdbbF0gPSBbXQotKyAgICAgICAgICAgICAg ICBsYW5nW2xdLmFwcGVuZChlKQotKyAgICAgICAgICAgIGVsc2U6Ci0rICAgICAgICAgICAgICAg IGlmIGwgbm90IGluIHN1Yl9sYW5nOgotKyAgICAgICAgICAgICAgICAgICAgc3ViX2xhbmdbbF0g PSBbXQotKyAgICAgICAgICAgICAgICBzdWJfbGFuZ1tsXS5hcHBlbmQoZSkKLSsKLSsgICAgICAg IHNlbGYuX19tb2RlbF9hcHBlbmRfbGFuZ3Moc2VsZi5fX21vZGVsLCBsYW5nLCBUcnVlKQotKyAg ICAgICAgaXRlcjEgPSBzZWxmLl9fbW9kZWwuYXBwZW5kKE5vbmUpCi0rICAgICAgICBzZWxmLl9f bW9kZWwuc2V0KGl0ZXIxLCAwLCAtMSkKLSsKLSsgICAgICAgIHNlbGYuX19hbGxfbW9kZWwgPSBH dGsuVHJlZVN0b3JlKG9iamVjdCkKLSsgICAgICAgIGl0ZXIxID0gc2VsZi5fX2FsbF9tb2RlbC5h cHBlbmQoTm9uZSkKLSsgICAgICAgIHNlbGYuX19hbGxfbW9kZWwuc2V0KGl0ZXIxLCAwLCAwKQot KyAgICAgICAgc2VsZi5fX21vZGVsX2FwcGVuZF9sYW5ncyhzZWxmLl9fYWxsX21vZGVsLCBsYW5n LCBGYWxzZSkKLSsgICAgICAgIGl0ZXIxID0gc2VsZi5fX2FsbF9tb2RlbC5hcHBlbmQoTm9uZSkK LSsgICAgICAgIHNlbGYuX19hbGxfbW9kZWwuc2V0KGl0ZXIxLCAwLCAtMSkKLSsgICAgICAgIHNl bGYuX19tb2RlbF9hcHBlbmRfbGFuZ3Moc2VsZi5fX2FsbF9tb2RlbCwgc3ViX2xhbmcsIEZhbHNl KQotKwotKyAgICAgICAgc2VsZi5fX3RvZ2dsZV9zdWJfbGFuZygpCi0rCi0rICAgIGRlZiBfX3Rv Z2dsZV9zdWJfbGFuZyhzZWxmKToKLSsgICAgICAgIHNlbGYuc2V0X21vZGVsKE5vbmUpCi0rICAg ICAgICBpZiBzZWxmLl9fc2hvd19zdWJfbGFuZzoKLSsgICAgICAgICAgICBzZWxmLnNldF9tb2Rl bChzZWxmLl9fYWxsX21vZGVsKQotKyAgICAgICAgZWxzZToKLSsgICAgICAgICAgICBzZWxmLnNl dF9tb2RlbChzZWxmLl9fbW9kZWwpCi0gICAgICAgICBzZWxmLnNldF9hY3RpdmUoMCkKLSAKLSAg ICAgZGVmIF9faWNvbl9jZWxsX2RhdGFfY2Ioc2VsZiwgY2VsbGxheW91dCwgcmVuZGVyZXIsIG1v ZGVsLCBpdGVyLCBkYXRhKToKLS0gICAgICAgIGVuZ2luZSA9IHNlbGYuX19tb2RlbC5nZXRfdmFs dWUoaXRlciwgMCkKLSsgICAgICAgIG1vZGVsID0gc2VsZi5nZXRfbW9kZWwoKQotKyAgICAgICAg ZW5naW5lID0gbW9kZWwuZ2V0X3ZhbHVlKGl0ZXIsIDApCi0gCi0gICAgICAgICBpZiBpc2luc3Rh bmNlKGVuZ2luZSwgc3RyKToKLSAgICAgICAgICAgICByZW5kZXJlci5zZXRfcHJvcGVydHkoInZp c2libGUiLCBGYWxzZSkKLUBAIC0xMTUsOCArMTg1LDI1IEBAIGNsYXNzIEVuZ2luZUNvbWJvQm94 KEd0ay5Db21ib0JveCk6Ci0gICAgICAgICAgICAgcmVuZGVyZXIuc2V0X3Byb3BlcnR5KCJ2aXNp YmxlIiwgRmFsc2UpCi0gICAgICAgICAgICAgcmVuZGVyZXIuc2V0X3Byb3BlcnR5KCJzZW5zaXRp dmUiLCBGYWxzZSkKLSAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShlbmdpbmUsIGludCk6Ci0tICAg ICAgICAgICAgcmVuZGVyZXIuc2V0X3Byb3BlcnR5KCJ2aXNpYmxlIiwgRmFsc2UpCi0tICAgICAg ICAgICAgcmVuZGVyZXIuc2V0X3Byb3BlcnR5KCJzZW5zaXRpdmUiLCBGYWxzZSkKLSsgICAgICAg ICAgICBpZiBlbmdpbmUgPT0gMDoKLSsgICAgICAgICAgICAgICAgcmVuZGVyZXIuc2V0X3Byb3Bl cnR5KCJ2aXNpYmxlIiwgRmFsc2UpCi0rICAgICAgICAgICAgICAgIHJlbmRlcmVyLnNldF9wcm9w ZXJ0eSgic2Vuc2l0aXZlIiwgRmFsc2UpCi0rICAgICAgICAgICAgICAgIHJlbmRlcmVyLnNldF9w cm9wZXJ0eSgicGl4YnVmIiwgTm9uZSkKLSsgICAgICAgICAgICBlbGlmIGVuZ2luZSA8IDA6Ci0r ICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9fc2hvd19zdWJfbGFuZzoKLSsgICAgICAgICAg ICAgICAgICAgIHBpeGJ1ZiA9IGxvYWRfaWNvbigiZ28tYm90dG9tIiwgR3RrLkljb25TaXplLkxB UkdFX1RPT0xCQVIpCi0rICAgICAgICAgICAgICAgIGVsc2U6Ci0rICAgICAgICAgICAgICAgICAg ICBwaXhidWYgPSBsb2FkX2ljb24oImdvLXVwIiwgR3RrLkljb25TaXplLkxBUkdFX1RPT0xCQVIp Ci0rICAgICAgICAgICAgICAgIGlmIHBpeGJ1ZiA9PSBOb25lOgotKyAgICAgICAgICAgICAgICAg ICAgcGl4YnVmID0gbG9hZF9pY29uKCJpbWFnZS1taXNzaW5nIiwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBHdGsuSWNvblNpemUuTEFSR0VfVE9PTEJBUikKLSsgICAg ICAgICAgICAgICAgaWYgcGl4YnVmID09IE5vbmU6Ci0rICAgICAgICAgICAgICAgICAgICByZW5k ZXJlci5zZXRfcHJvcGVydHkoInZpc2libGUiLCBGYWxzZSkKLSsgICAgICAgICAgICAgICAgICAg IHJlbmRlcmVyLnNldF9wcm9wZXJ0eSgic2Vuc2l0aXZlIiwgRmFsc2UpCi0rICAgICAgICAgICAg ICAgICAgICByZXR1cm4KLSsgICAgICAgICAgICAgICAgcmVuZGVyZXIuc2V0X3Byb3BlcnR5KCJ2 aXNpYmxlIiwgVHJ1ZSkKLSsgICAgICAgICAgICAgICAgcmVuZGVyZXIuc2V0X3Byb3BlcnR5KCJz ZW5zaXRpdmUiLCBUcnVlKQotKyAgICAgICAgICAgICAgICByZW5kZXJlci5zZXRfcHJvcGVydHko InBpeGJ1ZiIsIHBpeGJ1ZikKLSAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgcmVuZGVyZXIu c2V0X3Byb3BlcnR5KCJ2aXNpYmxlIiwgVHJ1ZSkKLSAgICAgICAgICAgICByZW5kZXJlci5zZXRf cHJvcGVydHkoInNlbnNpdGl2ZSIsIFRydWUpCi1AQCAtMTI0LDcgKzIxMSw4IEBAIGNsYXNzIEVu Z2luZUNvbWJvQm94KEd0ay5Db21ib0JveCk6Ci0gICAgICAgICAgICAgcmVuZGVyZXIuc2V0X3By b3BlcnR5KCJwaXhidWYiLCBwaXhidWYpCi0gCi0gICAgIGRlZiBfX25hbWVfY2VsbF9kYXRhX2Ni KHNlbGYsIGNlbGxsYXlvdXQsIHJlbmRlcmVyLCBtb2RlbCwgaXRlciwgZGF0YSk6Ci0tICAgICAg ICBlbmdpbmUgPSBzZWxmLl9fbW9kZWwuZ2V0X3ZhbHVlKGl0ZXIsIDApCi0rICAgICAgICBtb2Rl bCA9IHNlbGYuZ2V0X21vZGVsKCkKLSsgICAgICAgIGVuZ2luZSA9IG1vZGVsLmdldF92YWx1ZShp dGVyLCAwKQotIAotICAgICAgICAgaWYgaXNpbnN0YW5jZSAoZW5naW5lLCBzdHIpOgotICAgICAg ICAgICAgIHJlbmRlcmVyLnNldF9wcm9wZXJ0eSgic2Vuc2l0aXZlIiwgRmFsc2UpCi1AQCAtMTM2 LDggKzIyNCwxNSBAQCBjbGFzcyBFbmdpbmVDb21ib0JveChHdGsuQ29tYm9Cb3gpOgotICAgICAg ICAgICAgIHJlbmRlcmVyLnNldF9wcm9wZXJ0eSgid2VpZ2h0IiwgUGFuZ28uV2VpZ2h0Lk5PUk1B TCkKLSAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShlbmdpbmUsIGludCk6Ci0gICAgICAgICAgICAg cmVuZGVyZXIuc2V0X3Byb3BlcnR5KCJzZW5zaXRpdmUiLCBUcnVlKQotLSAgICAgICAgICAgIHJl bmRlcmVyLnNldF9wcm9wZXJ0eSgidGV4dCIsIF8oIlNlbGVjdCBhbiBpbnB1dCBtZXRob2QiKSkK LS0gICAgICAgICAgICByZW5kZXJlci5zZXRfcHJvcGVydHkoIndlaWdodCIsIFBhbmdvLldlaWdo dC5OT1JNQUwpCi0rICAgICAgICAgICAgaWYgZW5naW5lID09IDA6Ci0rICAgICAgICAgICAgICAg IHJlbmRlcmVyLnNldF9wcm9wZXJ0eSgidGV4dCIsIF8oIlNlbGVjdCBhbiBpbnB1dCBtZXRob2Qi KSkKLSsgICAgICAgICAgICAgICAgcmVuZGVyZXIuc2V0X3Byb3BlcnR5KCJ3ZWlnaHQiLCBQYW5n by5XZWlnaHQuTk9STUFMKQotKyAgICAgICAgICAgIGVsaWYgZW5naW5lIDwgMDoKLSsgICAgICAg ICAgICAgICAgaWYgbm90IHNlbGYuX19zaG93X3N1Yl9sYW5nOgotKyAgICAgICAgICAgICAgICAg ICAgcmVuZGVyZXIuc2V0X3Byb3BlcnR5KCJ0ZXh0IiwgXygiU2hvdyBhbGwgaW5wdXQgbWV0aG9k cyIpKQotKyAgICAgICAgICAgICAgICBlbHNlOgotKyAgICAgICAgICAgICAgICAgICAgcmVuZGVy ZXIuc2V0X3Byb3BlcnR5KCJ0ZXh0IiwgXygiU2hvdyBvbmx5IGlucHV0IG1ldGhvZHMgZm9yIHlv dXIgcmVnaW9uIikpCi0rICAgICAgICAgICAgICAgIHJlbmRlcmVyLnNldF9wcm9wZXJ0eSgid2Vp Z2h0IiwgUGFuZ28uV2VpZ2h0LkJPTEQpCi0gICAgICAgICBlbHNlOgotICAgICAgICAgICAgIHJl bmRlcmVyLnNldF9wcm9wZXJ0eSgic2Vuc2l0aXZlIiwgVHJ1ZSkKLSAgICAgICAgICAgICByZW5k ZXJlci5zZXRfcHJvcGVydHkoInRleHQiLCBlbmdpbmUuZ2V0X2xvbmduYW1lKCkpCi1AQCAtMTUz LDcgKzI0OCwxMiBAQCBjbGFzcyBFbmdpbmVDb21ib0JveChHdGsuQ29tYm9Cb3gpOgotICAgICAg ICAgICAgIGlmIGkgPT0gMCBvciBpID09IC0xOgotICAgICAgICAgICAgICAgICByZXR1cm4gTm9u ZQotICAgICAgICAgICAgIGl0ZXIgPSBzZWxmLmdldF9hY3RpdmVfaXRlcigpCi0tICAgICAgICAg ICAgcmV0dXJuIHNlbGYuZ2V0X21vZGVsKClbaXRlcl1bMF0KLSsgICAgICAgICAgICBtb2RlbCA9 IHNlbGYuZ2V0X21vZGVsKCkKLSsgICAgICAgICAgICBpZiBtb2RlbFtpdGVyXVswXSA9PSAtMToK LSsgICAgICAgICAgICAgICAgc2VsZi5fX3Nob3dfc3ViX2xhbmcgPSBub3Qgc2VsZi5fX3Nob3df c3ViX2xhbmcKLSsgICAgICAgICAgICAgICAgc2VsZi5fX3RvZ2dsZV9zdWJfbGFuZygpCi0rICAg ICAgICAgICAgICAgIHJldHVybiBOb25lCi0rICAgICAgICAgICAgcmV0dXJuIG1vZGVsW2l0ZXJd WzBdCi0gICAgICAgICBlbHNlOgotICAgICAgICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9yKCd1 bmtub3duIHByb3BlcnR5ICVzJyAlIHByb3BlcnR5Lm5hbWUpCi0gCi0tLSAKLTEuOC41LjMKLQoK ZGlmZiAtLWdpdCBhL2lidXMuc3BlYyBiL2lidXMuc3BlYwppbmRleCAyMDViNWYzLi5jYjNlM2U4 IDEwMDY0NAotLS0gYS9pYnVzLnNwZWMKKysrIGIvaWJ1cy5zcGVjCkBAIC0xLDE1ICsxLDggQEAK LSVnbG9iYWwgd2l0aF9wcmVsb2FkX3hrYl9lbmdpbmUgMQogJWdsb2JhbCB3aXRoX3B5Z29iamVj dDIgMQogJWdsb2JhbCB3aXRoX3B5Z29iamVjdDMgMQogCiAlZ2xvYmFsIHdpdGhfcGtnX2NvbmZp ZyAlKHBrZy1jb25maWcgLS12ZXJzaW9uID4vZGV2L251bGwgMj4mMSAmJiBlY2hvIC1uICIxIiB8 fCBlY2hvIC1uICIwIikKIAotJWlmICgwJXs/ZmVkb3JhfSA+IDE5IHx8IDAlez9yaGVsfSA+IDcp Ci0lZ2xvYmFsIHdpdGhfd2F5bGFuZCAxCi0lZWxzZQotJWdsb2JhbCB3aXRoX3dheWxhbmQgMAot JWVuZGlmCi0KICVpZiAoMCV7P2ZlZG9yYX0gPiAyMCB8fCAwJXs/cmhlbH0gPiA3KQogJWdsb2Jh bCB3aXRoX3B5dGhvbjJfb3ZlcnJpZGVfcGtnIDEKICVlbHNlCkBAIC0xNyw3ICsxMCw2IEBACiAl ZW5kaWYKIAogJWdsb2JhbCBpYnVzX2FwaV92ZXJzaW9uIDEuMAotJWdsb2JhbCBpYnVzX3hrYl92 ZXJzaW9uIDEuNS4wLjIwMTQwMTE0CiAKICMgZm9yIGJ5dGVjb21waWxlIGluICUle19kYXRhZGly fS9pYnVzL3NldHVwCiAlZ2xvYmFsIF9fcHl0aG9uICV7X19weXRob24zfQpAQCAtMzUsOCArMjcs OCBAQAogJWdsb2JhbCBkYnVzX3B5dGhvbl92ZXJzaW9uIDAuODMuMAogCiBOYW1lOiAgICAgICAg ICAgaWJ1cwotVmVyc2lvbjogICAgICAgIDEuNS43Ci1SZWxlYXNlOiAgICAgICAgNyV7P2Rpc3R9 CitWZXJzaW9uOiAgICAgICAgMS41LjgKK1JlbGVhc2U6ICAgICAgICAxJXs/ZGlzdH0KIFN1bW1h cnk6ICAgICAgICBJbnRlbGxpZ2VudCBJbnB1dCBCdXMgZm9yIExpbnV4IE9TCiBMaWNlbnNlOiAg ICAgICAgTEdQTHYyKwogR3JvdXA6ICAgICAgICAgIFN5c3RlbSBFbnZpcm9ubWVudC9MaWJyYXJp ZXMKQEAgLTQ0LDI2ICszNiw4IEBAIFVSTDogICAgICAgICAgICBodHRwOi8vY29kZS5nb29nbGUu Y29tL3AvaWJ1cy8KIFNvdXJjZTA6ICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vaWJ1cy9pYnVz L3JlbGVhc2VzL2Rvd25sb2FkLyV7dmVyc2lvbn0vJXtuYW1lfS0le3ZlcnNpb259LnRhci5negog U291cmNlMTogICAgICAgICV7bmFtZX0teGlucHV0CiBTb3VyY2UyOiAgICAgICAgJXtuYW1lfS5j b25mLjUKLSMgQWN0dWFsIHBhdGggaXMgaHR0cHM6Ly9naXRodWIuY29tLy4uLi8lJXtpYnVzX3hr Yl92ZXJzaW9ufS50YXIuZ3oKLSMgUmVuYW1lZCAlJXtpYnVzX3hrYl92ZXJzaW9ufS50YXIuZ3og dG8gaWJ1cy14a2ItJSV7aWJ1c194a2JfdmVyc2lvbn0udGFyLmd6Ci1Tb3VyY2UzOiAgICAgICAg aHR0cHM6Ly9naXRodWIuY29tL2lidXMvaWJ1cy14a2IvYXJjaGl2ZS9pYnVzLXhrYi0le2lidXNf eGtiX3ZlcnNpb259LnRhci5negogIyBVcHN0cmVhbWVkIHBhdGNoZXMuCiAjIFBhdGNoMDogICAg ICAgICAlJXtuYW1lfS1IRUFELnBhdGNoCi1QYXRjaDA6ICAgICAgICAgJXtuYW1lfS1IRUFELnBh dGNoCi0jIGh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9ODEwMjEx Ci1QYXRjaDE6ICAgICAgICAgJXtuYW1lfS04MTAyMTEtbm8tc3dpdGNoLWJ5LW5vLXRyaWdnZXIu cGF0Y2gKLSMgaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD01NDE0 OTIKLVBhdGNoMjogICAgICAgICAle25hbWV9LTU0MTQ5Mi14a2IucGF0Y2gKLSMgaHR0cHM6Ly9i dWd6aWxsYS5yZWRoYXQuY29tL3Nob3dfYnVnLmNnaT9pZD01MzA3MTEKLVBhdGNoMzogICAgICAg ICAle25hbWV9LTUzMDcxMS1wcmVsb2FkLXN5cy5wYXRjaAotIyBIaWRlIG1pbm9yIGlucHV0IG1l dGhvZCBlbmdpbmVzIG9uIGlidXMtc2V0dXAgYnkgbG9jYWxlCi1QYXRjaDQ6ICAgICAgICAgJXtu YW1lfS14eC1zZXR1cC1mcmVxdWVudC1sYW5nLnBhdGNoCi0KLSMgUmVtb3ZlZCB0aGUgdGFyZ2V0 LgotIyBFdmVuIGlmIGZlZHBrZyBzcnBtJ3MgdGFyZ2V0IGlzIHJoZWwsIGl0IGNhbiBydW4gb24g ZmVkb3JhIGJveC4KLSMgRGlzYWJsZSBJTUUgb24gZ25vbWUtc2hlbGwgcGFzc3dvcmQgZm9yIHRo ZSBiYWNrIGNvbXBhdGlibGl0eS4KLVBhdGNoOTY6ICAgICAgICAle25hbWV9LXh4LWYxOS1wYXNz d29yZC5wYXRjaAotCiAKIEJ1aWxkUmVxdWlyZXM6ICBnZXR0ZXh0LWRldmVsCiBCdWlsZFJlcXVp cmVzOiAgbGlidG9vbApAQCAtODYsMTcgKzYwLDEzIEBAIEJ1aWxkUmVxdWlyZXM6ICBHQ29uZjIt ZGV2ZWwKIEJ1aWxkUmVxdWlyZXM6ICBpbnRsdG9vbAogQnVpbGRSZXF1aXJlczogIGlzby1jb2Rl cy1kZXZlbAogQnVpbGRSZXF1aXJlczogIGxpYm5vdGlmeS1kZXZlbAotJWlmICV3aXRoX3dheWxh bmQKIEJ1aWxkUmVxdWlyZXM6ICBsaWJ3YXlsYW5kLWNsaWVudC1kZXZlbAotJWVuZGlmCiAKIFJl cXVpcmVzOiAgICAgICAle25hbWV9LWxpYnMlez9faXNhfSAgID0gJXt2ZXJzaW9ufS0le3JlbGVh c2V9CiBSZXF1aXJlczogICAgICAgJXtuYW1lfS1ndGsyJXs/X2lzYX0gICA9ICV7dmVyc2lvbn0t JXtyZWxlYXNlfQogUmVxdWlyZXM6ICAgICAgICV7bmFtZX0tZ3RrMyV7P19pc2F9ICAgPSAle3Zl cnNpb259LSV7cmVsZWFzZX0KIFJlcXVpcmVzOiAgICAgICAle25hbWV9LXNldHVwICAgICAgICAg ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci0laWYgJXdpdGhfd2F5bGFuZAogUmVxdWlyZXM6ICAg ICAgICV7bmFtZX0td2F5bGFuZCV7P19pc2F9ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9Ci0lZW5k aWYKIAogUmVxdWlyZXM6ICAgICAgIGlzby1jb2RlcwogUmVxdWlyZXM6ICAgICAgIGRidXMtcHl0 aG9uID49ICV7ZGJ1c19weXRob25fdmVyc2lvbn0KQEAgLTExMyw4ICs4Myw2IEBAIFJlcXVpcmVz OiAgICAgICBweXRob24zLWdvYmplY3QKIFJlcXVpcmVzOiAgICAgICB4b3JnLXgxMS14aW5pdAog IyBmb3Igc2V0eGtibWFwCiBSZXF1aXJlczogICAgICAgeG9yZy14MTEteGtiLXV0aWxzCi0jIFRo ZSBmZWF0dXJlIGluIGlidXMtZ25vbWUzIGlzIHByb3ZpZGVkIGJ5IGdub21lLXNoZWxsLgotT2Jz b2xldGVzOiAgICAgIGlidXMtZ25vbWUzIDwgJXt2ZXJzaW9ufS0le3JlbGVhc2V9CiAKIFJlcXVp cmVzKHBvc3QpOiAgZGVza3RvcC1maWxlLXV0aWxzCiBSZXF1aXJlcyhwb3N0dW4pOiAgZGVza3Rv cC1maWxlLXV0aWxzCkBAIC0xNDIsNyArMTEwLDcgQEAgUmVxdWlyZXM6ICAgICAgIGdvYmplY3Qt aW50cm9zcGVjdGlvbgogVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBsaWJyYXJpZXMgZm9yIElC dXMKIAogJXBhY2thZ2UgZ3RrMgotU3VtbWFyeTogICAgICAgIElCdXMgaW0gbW9kdWxlIGZvciBn dGsyCitTdW1tYXJ5OiAgICAgICAgSUJ1cyBJTSBtb2R1bGUgZm9yIEdUSzIKIEdyb3VwOiAgICAg ICAgICBTeXN0ZW0gRW52aXJvbm1lbnQvTGlicmFyaWVzCiBSZXF1aXJlczogICAgICAgJXtuYW1l fSV7P19pc2F9ICAgICAgICA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQogUmVxdWlyZXM6ICAgICAg ICV7bmFtZX0tbGlicyV7P19pc2F9ICAgPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KQEAgLTE1Miwx NyArMTIwLDE3IEBAIFByb3ZpZGVzOiAgICAgICBpYnVzLWd0ayA9ICV7dmVyc2lvbn0tJXtyZWxl YXNlfQogT2Jzb2xldGVzOiAgICAgIGlidXMtZ3RrIDwgJXt2ZXJzaW9ufS0le3JlbGVhc2V9CiAK ICVkZXNjcmlwdGlvbiBndGsyCi1UaGlzIHBhY2thZ2UgY29udGFpbnMgaWJ1cyBpbSBtb2R1bGUg Zm9yIGd0azIKK1RoaXMgcGFja2FnZSBjb250YWlucyBJQnVzIElNIG1vZHVsZSBmb3IgR1RLMgog CiAlcGFja2FnZSBndGszCi1TdW1tYXJ5OiAgICAgICAgSUJ1cyBpbSBtb2R1bGUgZm9yIGd0azMK K1N1bW1hcnk6ICAgICAgICBJQnVzIElNIG1vZHVsZSBmb3IgR1RLMwogR3JvdXA6ICAgICAgICAg IFN5c3RlbSBFbnZpcm9ubWVudC9MaWJyYXJpZXMKIFJlcXVpcmVzOiAgICAgICAle25hbWV9JXs/ X2lzYX0gICAgICAgID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9CiBSZXF1aXJlczogICAgICAgJXtu YW1lfS1saWJzJXs/X2lzYX0gICA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQogUmVxdWlyZXMocG9z dCk6IGdsaWIyID49ICV7Z2xpYl92ZXJ9CiAKICVkZXNjcmlwdGlvbiBndGszCi1UaGlzIHBhY2th Z2UgY29udGFpbnMgaWJ1cyBpbSBtb2R1bGUgZm9yIGd0azMKK1RoaXMgcGFja2FnZSBjb250YWlu cyBJQnVzIElNIG1vZHVsZSBmb3IgR1RLMwogCiAlaWYgJXdpdGhfcHlnb2JqZWN0MwogJXBhY2th Z2Ugc2V0dXAKQEAgLTE4MSw0MCArMTQ5LDM4IEBAIFRoaXMgaXMgYSBzZXR1cCB1dGlsaXR5IGZv ciBJQnVzLgogCiAlaWYgJXdpdGhfcHlnb2JqZWN0MgogJXBhY2thZ2UgcHlndGsyCi1TdW1tYXJ5 OiAgICAgICAgSUJ1cyBweWd0azIgbGlicmFyeQorU3VtbWFyeTogICAgICAgIElCdXMgUHlHVEsy IGxpYnJhcnkKIEdyb3VwOiAgICAgICAgICBTeXN0ZW0gRW52aXJvbm1lbnQvTGlicmFyaWVzCiBS ZXF1aXJlczogICAgICAgJXtuYW1lfSA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQogUmVxdWlyZXM6 ICAgICAgIHB5Z3RrMgogQnVpbGRBcmNoOiAgICAgIG5vYXJjaAogCiAlZGVzY3JpcHRpb24gcHln dGsyCi1UaGlzIGlzIGEgcHlndGsyIGxpYnJhcnkgZm9yIElCdXMuIE5vdyBtYWpvciBJQnVzIGVu Z2luZXMgdXNlIHB5Z29iamVjdDMKK1RoaXMgaXMgYSBQeUdUSzIgbGlicmFyeSBmb3IgSUJ1cy4g Tm93IG1ham9yIElCdXMgZW5naW5lcyB1c2UgUHlHT2JqZWN0MwogYW5kIHRoaXMgcGFja2FnZSB3 aWxsIGJlIGRlcHJlY2F0ZWQuCiAlZW5kaWYKIAogJWlmICV3aXRoX3B5dGhvbjJfb3ZlcnJpZGVf cGtnCiAlcGFja2FnZSBweTJvdmVycmlkZQotU3VtbWFyeTogICAgICAgIElCdXMgcHl0aG9uMiBv dmVycmlkZSBsaWJyYXJ5CitTdW1tYXJ5OiAgICAgICAgSUJ1cyBQeXRob24yIG92ZXJyaWRlIGxp YnJhcnkKIEdyb3VwOiAgICAgICAgICBTeXN0ZW0gRW52aXJvbm1lbnQvTGlicmFyaWVzCiBSZXF1 aXJlczogICAgICAgJXtuYW1lfS1saWJzJXs/X2lzYX0gICA9ICV7dmVyc2lvbn0tJXtyZWxlYXNl fQogIyBPd25lciBvZiAlJXB5dGhvbjJfc2l0ZWFyY2gvZ2kvb3ZlcnJpZGVzCiBSZXF1aXJlczog ICAgICAgcHlnb2JqZWN0My1iYXNlCiAKICVkZXNjcmlwdGlvbiBweTJvdmVycmlkZQotVGhpcyBp cyBhIHB5dGhvbjIgb3ZlcnJpZGUgbGlicmFyeSBmb3IgSUJ1cy4gVGhlIHB5dGhvbiBmaWxlcyBv dmVycmlkZQotc29tZSBmdW5jdGlvbnMgaW4gZ29iamVjdC1pbnRyb3NwZWN0aW9uLgorVGhpcyBp cyBhIFB5dGhvbjIgb3ZlcnJpZGUgbGlicmFyeSBmb3IgSUJ1cy4gVGhlIFB5dGhvbiBmaWxlcyBv dmVycmlkZQorc29tZSBmdW5jdGlvbnMgaW4gR09iamVjdC1JbnRyb3NwZWN0aW9uLgogJWVuZGlm CiAKLSVpZiAld2l0aF93YXlsYW5kCiAlcGFja2FnZSB3YXlsYW5kCi1TdW1tYXJ5OiAgICAgICAg SUJ1cyBpbSBtb2R1bGUgZm9yIFdheWxhbmQKK1N1bW1hcnk6ICAgICAgICBJQnVzIElNIG1vZHVs ZSBmb3IgV2F5bGFuZAogR3JvdXA6ICAgICAgICAgIFN5c3RlbSBFbnZpcm9ubWVudC9MaWJyYXJp ZXMKIFJlcXVpcmVzOiAgICAgICAle25hbWV9JXs/X2lzYX0gICAgICAgID0gJXt2ZXJzaW9ufS0l e3JlbGVhc2V9CiBSZXF1aXJlczogICAgICAgJXtuYW1lfS1saWJzJXs/X2lzYX0gICA9ICV7dmVy c2lvbn0tJXtyZWxlYXNlfQogCiAlZGVzY3JpcHRpb24gd2F5bGFuZAotVGhpcyBwYWNrYWdlIGNv bnRhaW5zIElCdXMgaW0gbW9kdWxlIGZvciBXYXlsYW5kCi0lZW5kaWYKK1RoaXMgcGFja2FnZSBj b250YWlucyBJQnVzIElNIG1vZHVsZSBmb3IgV2F5bGFuZAogCiAlcGFja2FnZSBkZXZlbAogU3Vt bWFyeTogICAgICAgIERldmVsb3BtZW50IHRvb2xzIGZvciBpYnVzCkBAIC0yMzMsNyArMTk5LDcg QEAgVGhlIGlidXMtZGV2ZWwgcGFja2FnZSBjb250YWlucyB0aGUgaGVhZGVyIGZpbGVzIGFuZCBk ZXZlbG9wZXIKIGRvY3MgZm9yIGlidXMuCiAKICVwYWNrYWdlIGRldmVsLWRvY3MKLVN1bW1hcnk6 ICAgICAgICBEZXZlbG9wZXIgZG9jdW1lbnRzIGZvciBpYnVzCitTdW1tYXJ5OiAgICAgICAgRGV2 ZWxvcGVyIGRvY3VtZW50cyBmb3IgSUJ1cwogR3JvdXA6ICAgICAgICAgIERldmVsb3BtZW50L0xp YnJhcmllcwogJWlmICgwJXs/ZmVkb3JhfSA+PSAxOSB8fCAwJXs/cmhlbH0gPj0gNykKIFJlcXVp cmVzOiAgICAgICAle25hbWV9ICAgICAgICAgICAgICAgID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9 CkBAIC0yNDMsMzkgKzIwOSwxNyBAQCBSZXF1aXJlczogICAgICAgJXtuYW1lfSV7P19pc2F9ICAg ICAgICA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQogJWVuZGlmCiAKICVkZXNjcmlwdGlvbiBkZXZl bC1kb2NzCi1UaGUgaWJ1cy1kZXZlbC1kb2NzIHBhY2thZ2UgY29udGFpbnMgZGV2ZWxvcGVyIGRv Y3VtZW50YXRpb24gZm9yIGlidXMKK1RoZSBpYnVzLWRldmVsLWRvY3MgcGFja2FnZSBjb250YWlu cyBkZXZlbG9wZXIgZG9jdW1lbnRhdGlvbiBmb3IgSUJ1cwogCiAKICVwcmVwCiAlc2V0dXAgLXEK ICMgJSVwYXRjaDAgLXAxCi0lcGF0Y2gwIC1wMQotJWlmICgwJXs/ZmVkb3JhfSA8IDIwICYmIDAl ez9yaGVsfSA8IDgpCi0lcGF0Y2g5NiAtcDEgLWIgLnBhc3N3ZAotJWVuZGlmCi1jcCBjbGllbnQv Z3RrMi9pYnVzaW1jb250ZXh0LmMgY2xpZW50L2d0azMvaWJ1c2ltY29udGV4dC5jIHx8Ci0KLSVw YXRjaDEgLXAxIC1iIC5ub3N3aXRjaAotJWlmICV3aXRoX3ByZWxvYWRfeGtiX2VuZ2luZQotJXBh dGNoMiAtcDEgLWIgLnByZWxvYWQteGtiCi1ybSAtZiBiaW5kaW5ncy92YWxhL2lidXMtMS4wLnZh cGkKLXJtIC1mIGRhdGEvZGNvbmYvMDAtdXBzdHJlYW0tc2V0dGluZ3MKLSVlbmRpZgotJXBhdGNo MyAtcDEgLWIgLnByZWxvYWQtc3lzCi0lcGF0Y2g0IC1wMSAtYiAuc2V0dXAtZnJlcXVlbnQtbGFu ZwotCi16Y2F0ICVTT1VSQ0UzIHwgdGFyIHhmIC0KLVBPUz1gKGNkIGlidXMteGtiLSVpYnVzX3hr Yl92ZXJzaW9uL3BvOyBscyAqLnBvKWAKLWZvciBQTyBpbiAkUE9TCi1kbwotICBjcCBwby8kUE8g cG8vJFBPLm9yaWcKLSAgbXNnY2F0IC0tdXNlLWZpcnN0IHBvLyRQTyBpYnVzLXhrYi0laWJ1c194 a2JfdmVyc2lvbi9wby8kUE8gLW8gcG8vJFBPCi1kb25lCisjIGNwIGNsaWVudC9ndGsyL2lidXNp bWNvbnRleHQuYyBjbGllbnQvZ3RrMy9pYnVzaW1jb250ZXh0LmMgfHwKIAogJWJ1aWxkCi0laWYg JXdpdGhfcHJlbG9hZF94a2JfZW5naW5lCi1hdXRvcmVjb25mIC1mIC1pIC12Ci0lZW5kaWYKKyNh dXRvcmVjb25mIC1mIC1pIC12CisjbWFrZSAtQyB1aS9ndGszIG1haW50YWluZXItY2xlYW4tZ2Vu ZXJpYwogJWNvbmZpZ3VyZSBcCiAgICAgLS1kaXNhYmxlLXN0YXRpYyBcCiAgICAgLS1lbmFibGUt Z3RrMiBcCkBAIC0yODgsMTUgKzIzMiw5IEBAIGF1dG9yZWNvbmYgLWYgLWkgLXYKICVpZiAld2l0 aF9weWdvYmplY3QyCiAgICAgLS1lbmFibGUtcHl0aG9uLWxpYnJhcnkgXAogJWVuZGlmCi0laWYg JXdpdGhfd2F5bGFuZAogICAgIC0tZW5hYmxlLXdheWxhbmQgXAotJWVuZGlmCiAgICAgLS1lbmFi bGUtaW50cm9zcGVjdGlvbgogCi0laWYgJXdpdGhfcHJlbG9hZF94a2JfZW5naW5lCi1tYWtlIC1D IHVpL2d0azMgbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCi0lZW5kaWYKLSMgbWFrZSAtQyBwbyB1 cGRhdGUtZ21vCiBtYWtlICV7P19zbXBfbWZsYWdzfQogCiAlaW5zdGFsbApAQCAtNDQ2LDEwICsz ODQsOCBAQCBmaQogJXB5dGhvbjJfc2l0ZWFyY2gvZ2kvb3ZlcnJpZGVzL0lCdXMucHkqCiAlZW5k aWYKIAotJWlmICV3aXRoX3dheWxhbmQKICVmaWxlcyB3YXlsYW5kCiAle19saWJleGVjZGlyfS9p YnVzLXdheWxhbmQKLSVlbmRpZgogCiAlZmlsZXMgZGV2ZWwKICV7X2xpYmRpcn0vbGliKi5zbwpA QCAtNDY2LDYgKzQwMiwxNCBAQCBmaQogJXtfZGF0YWRpcn0vZ3RrLWRvYy9odG1sLyoKIAogJWNo YW5nZWxvZworKiBUaHUgSnVsIDI0IDIwMTQgVGFrYW8gRnVqaXdhcmEgPHRmdWppd2FyQHJlZGhh dC5jb20+IC0gMS41LjgtMQorLSBCdW1wZWQgdG8gMS41LjgKKy0gRGVsZXRlZCBpYnVzLTgxMDIx MS1uby1zd2l0Y2gtYnktbm8tdHJpZ2dlci5wYXRjaAorLSBEZWxldGVkIGlidXMtNTQxNDkyLXhr Yi5wYXRjaAorLSBEZWxldGVkIGlidXMtNTMwNzExLXByZWxvYWQtc3lzLnBhdGNoCistIERlbGV0 ZWQgaWJ1cy14eC1zZXR1cC1mcmVxdWVudC1sYW5nLnBhdGNoCistIERlbGV0ZWQgaWJ1cy14eC1m MTktcGFzc3dvcmQucGF0Y2gKKwogKiBUdWUgSnVsIDIyIDIwMTQgS2FsZXYgTGVtYmVyIDxrYWxl dmxlbWJlckBnbWFpbC5jb20+IC0gMS41LjctNwogLSBSZWJ1aWx0IGZvciBnb2JqZWN0LWludHJv c3BlY3Rpb24gMS40MS40CiAKCmRpZmYgLS1naXQgYS9zb3VyY2VzIGIvc291cmNlcwppbmRleCAx YjIxYmU3Li5lMzg1NmY3IDEwMDY0NAotLS0gYS9zb3VyY2VzCisrKyBiL3NvdXJjZXMKQEAgLTEs MiArMSBAQAotODdmMjI2OWVmOTUyMzczM2E1NjkzZjBlZDQxMGVhNzEgIGlidXMtMS41LjcudGFy Lmd6Ci1jMGJjNWJlN2YwYzA2OGJlYTFlNDc4NWM1YjYwNjk0YiAgaWJ1cy14a2ItMS41LjAuMjAx NDAxMTQudGFyLmd6CitiOWZjZmEyMGJkN2I1NTViYjRiNDM4ZjcxOWMwZjJmYiAgaWJ1cy0xLjUu OC50YXIuZ3oK