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: Mattias Ellert To: git-commits@fedoraproject.org Subject: [rpms/nordugrid-arc] f43: Support OpenSSL 4 Date: Mon, 07 Sep 2026 08:38:25 GMT Message-ID: <178877030502.1.10421029241909517394.rpms-nordugrid-arc-d66c8b17f5ff@fedoraproject.org> List-ID: X-Git-Repo: rpms/nordugrid-arc X-Git-Branch: f43 X-Git-Rev: d66c8b17f5ff053f1c1f0e27f56e6ad928e79277 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvbm9yZHVncmlkLWFy YwpCcmFuY2ggOiBmNDMKQ29tbWl0IDogZDY2YzhiMTdmNWZmMDUzZjFjMWYwZTI3ZjU2ZTZhZDky OGU3OTI3NwpBdXRob3IgOiBNYXR0aWFzIEVsbGVydCA8bWF0dGlhcy5lbGxlcnRAcGh5c2ljcy51 dS5zZT4KRGF0ZSAgIDogMjAyNi0wNi0xOFQxOToyMjozMyswMjowMApTdGF0cyAgOiArNTY1Ly0x NCBpbiAyIGZpbGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBt cy9ub3JkdWdyaWQtYXJjL2MvZDY2YzhiMTdmNWZmMDUzZjFjMWYwZTI3ZjU2ZTZhZDkyOGU3OTI3 Nz9icmFuY2g9ZjQzCgpMb2c6ClN1cHBvcnQgT3BlblNTTCA0CgotLS0KZGlmZiAtLWdpdCBhLzAw MDEtU3VwcG9ydC1PcGVuU1NMLTQucGF0Y2ggYi8wMDAxLVN1cHBvcnQtT3BlblNTTC00LnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxMjg5ZjcKLS0tIC9kZXYvbnVs bAorKysgYi8wMDAxLVN1cHBvcnQtT3BlblNTTC00LnBhdGNoCkBAIC0wLDAgKzEsNTQ3IEBACitG cm9tIDIxYjcxNDVkM2YxYTk0MDhjYzZmYzhmNGYyNWMzZDAwNjQ3OGEyNzkgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCitGcm9tOiBNYXR0aWFzIEVsbGVydCA8bWF0dGlhcy5lbGxlcnRAcGh5c2lj cy51dS5zZT4KK0RhdGU6IFRodSwgMTggSnVuIDIwMjYgMTg6NTY6MjkgKzAyMDAKK1N1YmplY3Q6 IFtQQVRDSF0gU3VwcG9ydCBPcGVuU1NMIDQKKworLS0tCisgc3JjL2NsaWVudHMvY29tcHV0ZS9h cmN0ZXN0LmNwcCAgICAgICAgICAgICAgIHwgIDQgKysKKyBzcmMvaGVkL2xpYnMvY3JlZGVudGlh bC9DZXJ0VXRpbC5jcHAgICAgICAgICAgfCAyOCArKysrKy0tLQorIHNyYy9oZWQvbGlicy9jcmVk ZW50aWFsL0NyZWRlbnRpYWwuY3BwICAgICAgICB8IDY2ICsrKysrKysrKystLS0tLS0tLS0KKyBz cmMvaGVkL2xpYnMvY3JlZGVudGlhbC9Qcm94eWNlcnRpbmZvLmNwcCAgICAgfCAgNiArLQorIHNy Yy9oZWQvbGlicy9jcmVkZW50aWFsL1ZPTVNVdGlsLmNwcCAgICAgICAgICB8IDQwICsrKysrKy0t LS0tCisgLi4uL2xpYnMvZGVsZWdhdGlvbi9EZWxlZ2F0aW9uSW50ZXJmYWNlLmNwcCAgIHwgMTUg KysrLS0KKyBzcmMvaGVkL21jYy90bHMvRGVsZWdhdGlvbkNvbGxlY3Rvci5jcHAgICAgICAgfCAg NCArLQorIHNyYy9oZWQvbWNjL3Rscy9QYXlsb2FkVExTTUNDLmNwcCAgICAgICAgICAgICB8ICA2 ICstCisgOCBmaWxlcyBjaGFuZ2VkLCA5NiBpbnNlcnRpb25zKCspLCA3MyBkZWxldGlvbnMoLSkK KworZGlmZiAtLWdpdCBhL3NyYy9jbGllbnRzL2NvbXB1dGUvYXJjdGVzdC5jcHAgYi9zcmMvY2xp ZW50cy9jb21wdXRlL2FyY3Rlc3QuY3BwCitpbmRleCAxODRiN2U1MTguLjAyNGEwMzM4YSAxMDA2 NDQKKy0tLSBhL3NyYy9jbGllbnRzL2NvbXB1dGUvYXJjdGVzdC5jcHAKKysrKyBiL3NyYy9jbGll bnRzL2NvbXB1dGUvYXJjdGVzdC5jcHAKK0BAIC0zMzcsNyArMzM3LDExIEBAIGludCBkdW1wam9i ZGVzY3JpcHRpb25fYXJjdGVzdF9sZWdhY3koY29uc3QgQXJjOjpVc2VyQ29uZmlnJiB1c2VyY2Zn LCBBcmM6OkV4ZWN1Cisgc3RhdGljIGJvb2wgZ2V0X2hhc2hfdmFsdWUoY29uc3QgQXJjOjpDcmVk ZW50aWFsJiBjLCBzdGQ6OnN0cmluZyYgaGFzaF9zdHIpIHsKKyAgIFg1MDkqIGNlcnQgPSBjLkdl dENlcnQoKTsKKyAgIGlmKCFjZXJ0KSByZXR1cm4gZmFsc2U7CisrI2lmIChPUEVOU1NMX1ZFUlNJ T05fTlVNQkVSIDwgMHgzMDAwMDAwMEwpCisgICBYNTA5X05BTUUqIGNlcnRfbmFtZSA9IFg1MDlf Z2V0X3N1YmplY3RfbmFtZShjZXJ0KTsKKysjZWxzZQorKyAgY29uc3QgWDUwOV9OQU1FKiBjZXJ0 X25hbWUgPSBYNTA5X2dldF9zdWJqZWN0X25hbWUoY2VydCk7CisrI2VuZGlmCisgICBpZighY2Vy dF9uYW1lKSByZXR1cm4gZmFsc2U7CisgCisgICBjaGFyIGhhc2hbMzJdOworZGlmZiAtLWdpdCBh L3NyYy9oZWQvbGlicy9jcmVkZW50aWFsL0NlcnRVdGlsLmNwcCBiL3NyYy9oZWQvbGlicy9jcmVk ZW50aWFsL0NlcnRVdGlsLmNwcAoraW5kZXggMDc3NmVlNzE2Li41NTIxN2VjNWMgMTAwNjQ0Cist LS0gYS9zcmMvaGVkL2xpYnMvY3JlZGVudGlhbC9DZXJ0VXRpbC5jcHAKKysrKyBiL3NyYy9oZWQv bGlicy9jcmVkZW50aWFsL0NlcnRVdGlsLmNwcAorQEAgLTMwNiw4ICszMDYsMTIgQEAgc3RhdGlj IGludCB2ZXJpZnlfY2VydF9hZGRpdGlvbmFsKFg1MDkqIGNlcnQsIFg1MDlfU1RPUkVfQ1RYKiBz dG9yZV9jdHgsIHN0ZDo6c3QKKyAKKyBzdGF0aWMgYm9vbCBjb2xsZWN0X3Byb3h5X2luZm8oc3Rk OjpzdHJpbmcmIHByb3h5X3BvbGljeSwgWDUwOSogY2VydCkgeworICAgLyoqQ2hlY2sgdGhlIHBy b3h5IGNlcnRpZmljYXRlIGluZm9tYXRpb24gZXh0ZW5zaW9uKi8KKysjaWYgKE9QRU5TU0xfVkVS U0lPTl9OVU1CRVIgPCAweDQwMDAwMDAwTCkKKyAgIFg1MDlfRVhURU5TSU9OKiBleHQ7CistICBB U04xX09CSkVDVCogZXh0ZW5zaW9uX29iajsKKysjZWxzZQorKyAgY29uc3QgWDUwOV9FWFRFTlNJ T04qIGV4dDsKKysjZW5kaWYKKysgIGNvbnN0IEFTTjFfT0JKRUNUKiBleHRlbnNpb25fb2JqOwor ICAgaW50IGk7CisgICBmb3IgKGk9MDtpPFg1MDlfZ2V0X2V4dF9jb3VudChjZXJ0KTtpKyspIHsK KyAgICAgZXh0ID0gKFg1MDlfRVhURU5TSU9OICopIFg1MDlfZ2V0X2V4dChjZXJ0LGkpOworQEAg LTM1OCwxMCArMzYyLDEwIEBAIHN0YXRpYyBib29sIGNvbGxlY3RfcHJveHlfaW5mbyhzdGQ6OnN0 cmluZyYgcHJveHlfcG9saWN5LCBYNTA5KiBjZXJ0KSB7CisgICAgICAgICAgICAgICBwcm94eV9w b2xpY3kuY2xlYXIoKTsKKyAgICAgICAgICAgICAgIGlmKChwcm94eWNlcnRpbmZvLT5wcm94eVBv bGljeSkgJiYKKyAgICAgICAgICAgICAgICAgIChwcm94eWNlcnRpbmZvLT5wcm94eVBvbGljeS0+ cG9saWN5KSAmJgorLSAgICAgICAgICAgICAgICAgKHByb3h5Y2VydGluZm8tPnByb3h5UG9saWN5 LT5wb2xpY3ktPmRhdGEpKSB7CisrICAgICAgICAgICAgICAgICBBU04xX1NUUklOR19nZXQwX2Rh dGEocHJveHljZXJ0aW5mby0+cHJveHlQb2xpY3ktPnBvbGljeSkpIHsKKyAgICAgICAgICAgICAg ICAgcHJveHlfcG9saWN5LmFwcGVuZCgKKy0gICAgICAgICAgICAgICAgICAgKGNoYXIgY29uc3Qq KShwcm94eWNlcnRpbmZvLT5wcm94eVBvbGljeS0+cG9saWN5LT5kYXRhKSwKKy0gICAgICAgICAg ICAgICAgICAgcHJveHljZXJ0aW5mby0+cHJveHlQb2xpY3ktPnBvbGljeS0+bGVuZ3RoKTsKKysg ICAgICAgICAgICAgICAgICAgKGNoYXIgY29uc3QqKSBBU04xX1NUUklOR19nZXQwX2RhdGEocHJv eHljZXJ0aW5mby0+cHJveHlQb2xpY3ktPnBvbGljeSksCisrICAgICAgICAgICAgICAgICAgIEFT TjFfU1RSSU5HX2xlbmd0aChwcm94eWNlcnRpbmZvLT5wcm94eVBvbGljeS0+cG9saWN5KSk7Cisg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAvKiBVc2UgOiBhcyBzZXBhcmF0b3IgZm9y IHBvbGljaWVzIHBhcnNlZCBmcm9tIGRpZmZlcmVudCBwcm94eSBjZXJ0aWZpY2F0ZSovCisgICAg ICAgICAgICAgICAvKiAhISEhIFRha2luZyBpbnQgYWNjb3VudCBwcmV2aW91cyBwcm94eV9wb2xp Y3kuY2xlYXIoKSAhISEhCitAQCAtMzg3LDggKzM5MSwxMiBAQCBib29sIGNoZWNrX2NlcnRfdHlw ZShYNTA5KiBjZXJ0LCBjZXJ0VHlwZSYgdHlwZSkgeworICAgYm9vbCByZXQgPSBmYWxzZTsKKyAg IHR5cGUgPSBDRVJUX1RZUEVfRUVDOworIAorLSAgQVNOMV9TVFJJTkcqIGRhdGE7CisrICBjb25z dCBBU04xX1NUUklORyogZGF0YTsKKysjaWYgKE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIgPCAweDQw MDAwMDAwTCkKKyAgIFg1MDlfRVhURU5TSU9OKiBjZXJ0aW5mb19leHQ7CisrI2Vsc2UKKysgIGNv bnN0IFg1MDlfRVhURU5TSU9OKiBjZXJ0aW5mb19leHQ7CisrI2VuZGlmCisgICBpbnQgcG9saWN5 bmlkOworICAgUFJPWFlfQ0VSVF9JTkZPX0VYVEVOU0lPTiogY2VydGluZm9fb3BlbnNzbCA9IE5V TEw7CisgCitAQCAtNDA0LDggKzQxMiw4IEBAIGJvb2wgY2hlY2tfY2VydF90eXBlKFg1MDkqIGNl cnQsIGNlcnRUeXBlJiB0eXBlKSB7CisgICB9CisgCisgICBYNTA5X05BTUUqIGlzc3VlciA9IE5V TEw7CistICBYNTA5X05BTUUqIHN1YmplY3QgPSBYNTA5X2dldF9zdWJqZWN0X25hbWUoY2VydCk7 CistICBYNTA5X05BTUVfRU5UUlkgKiBuYW1lX2VudHJ5ID0gTlVMTDsKKysgIGNvbnN0IFg1MDlf TkFNRSogc3ViamVjdCA9IFg1MDlfZ2V0X3N1YmplY3RfbmFtZShjZXJ0KTsKKysgIGNvbnN0IFg1 MDlfTkFNRV9FTlRSWSAqIG5hbWVfZW50cnkgPSBOVUxMOworICAgaWYoIXN1YmplY3QpIGdvdG8g ZXJyOworICAgbmFtZV9lbnRyeSA9IFg1MDlfTkFNRV9nZXRfZW50cnkoc3ViamVjdCwgWDUwOV9O QU1FX2VudHJ5X2NvdW50KHN1YmplY3QpLTEpOworICAgaWYoIW5hbWVfZW50cnkpIGdvdG8gZXJy OworQEAgLTQxMyw4ICs0MjEsOCBAQCBib29sIGNoZWNrX2NlcnRfdHlwZShYNTA5KiBjZXJ0LCBj ZXJ0VHlwZSYgdHlwZSkgeworICAgICAvKiB0aGUgbmFtZSBlbnRyeSBpcyBvZiB0aGUgdHlwZTog Y29tbW9uIG5hbWUgKi8KKyAgICAgZGF0YSA9IFg1MDlfTkFNRV9FTlRSWV9nZXRfZGF0YShuYW1l X2VudHJ5KTsKKyAgICAgaWYoIWRhdGEpIGdvdG8gZXJyOworLSAgICBpZiAoZGF0YS0+bGVuZ3Ro ID09IDUgJiYgIW1lbWNtcChkYXRhLT5kYXRhLCJwcm94eSIsNSkpIHsgdHlwZSA9IENFUlRfVFlQ RV9HU0lfMl9QUk9YWTsgfQorLSAgICBlbHNlIGlmKGRhdGEtPmxlbmd0aCA9PSAxMyAmJiAhbWVt Y21wKGRhdGEtPmRhdGEsImxpbWl0ZWQgcHJveHkiLDEzKSkgeyB0eXBlID0gQ0VSVF9UWVBFX0dT SV8yX0xJTUlURURfUFJPWFk7IH0KKysgICAgaWYgKEFTTjFfU1RSSU5HX2xlbmd0aChkYXRhKSA9 PSA1ICYmICFtZW1jbXAoQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKGRhdGEpLCJwcm94eSIsNSkpIHsg dHlwZSA9IENFUlRfVFlQRV9HU0lfMl9QUk9YWTsgfQorKyAgICBlbHNlIGlmKEFTTjFfU1RSSU5H X2xlbmd0aChkYXRhKSA9PSAxMyAmJiAhbWVtY21wKEFTTjFfU1RSSU5HX2dldDBfZGF0YShkYXRh KSwibGltaXRlZCBwcm94eSIsMTMpKSB7IHR5cGUgPSBDRVJUX1RZUEVfR1NJXzJfTElNSVRFRF9Q Uk9YWTsgfQorICAgICBlbHNlIGlmKChpbmRleCA9IFg1MDlfZ2V0X2V4dF9ieV9OSUQoY2VydCwg TklEX3Byb3h5Q2VydEluZm8sIC0xKSkgIT0gLTEpIHsKKyAgICAgICBjZXJ0aW5mb19leHQgPSBY NTA5X2dldF9leHQoY2VydCxpbmRleCk7CisgICAgICAgaWYoWDUwOV9FWFRFTlNJT05fZ2V0X2Ny aXRpY2FsKGNlcnRpbmZvX2V4dCkpIHsKK0BAIC00NTMsNyArNDYxLDcgQEAgYm9vbCBjaGVja19j ZXJ0X3R5cGUoWDUwOSogY2VydCwgY2VydFR5cGUmIHR5cGUpIHsKKyAgICAgWDUwOV9OQU1FX0VO VFJZKiBuZXdfbmFtZV9lbnRyeSA9IE5VTEw7CisgICAgIGlmKHR5cGUgIT0gQ0VSVF9UWVBFX0VF QyAmJiB0eXBlICE9IENFUlRfVFlQRV9DQSkgeworICAgICAgIGlzc3VlciA9IFg1MDlfTkFNRV9k dXAoWDUwOV9nZXRfaXNzdWVyX25hbWUoY2VydCkpOworLSAgICAgIG5ld19uYW1lX2VudHJ5ID0g WDUwOV9OQU1FX0VOVFJZX2NyZWF0ZV9ieV9OSUQoTlVMTCwgTklEX2NvbW1vbk5hbWUsIFZfQVNO MV9BUFBfQ0hPT1NFLCBkYXRhLT5kYXRhLCAtMSk7CisrICAgICAgbmV3X25hbWVfZW50cnkgPSBY NTA5X05BTUVfRU5UUllfY3JlYXRlX2J5X05JRChOVUxMLCBOSURfY29tbW9uTmFtZSwgVl9BU04x X0FQUF9DSE9PU0UsIEFTTjFfU1RSSU5HX2dldDBfZGF0YShkYXRhKSwgLTEpOworICAgICAgIGlm KCFuZXdfbmFtZV9lbnRyeSkgZ290byBlcnI7CisgICAgICAgWDUwOV9OQU1FX2FkZF9lbnRyeShp c3N1ZXIsbmV3X25hbWVfZW50cnksWDUwOV9OQU1FX2VudHJ5X2NvdW50KGlzc3VlciksMCk7Cisg ICAgICAgWDUwOV9OQU1FX0VOVFJZX2ZyZWUobmV3X25hbWVfZW50cnkpOworZGlmZiAtLWdpdCBh L3NyYy9oZWQvbGlicy9jcmVkZW50aWFsL0NyZWRlbnRpYWwuY3BwIGIvc3JjL2hlZC9saWJzL2Ny ZWRlbnRpYWwvQ3JlZGVudGlhbC5jcHAKK2luZGV4IDYwOWY5YTM0ZC4uNDM5NDk2ZWNhIDEwMDY0 NAorLS0tIGEvc3JjL2hlZC9saWJzL2NyZWRlbnRpYWwvQ3JlZGVudGlhbC5jcHAKKysrKyBiL3Ny Yy9oZWQvbGlicy9jcmVkZW50aWFsL0NyZWRlbnRpYWwuY3BwCitAQCAtNzksMTUgKzc5LDE1IEBA IG5hbWVzcGFjZSBBcmMgeworICAgICBFUlJfcHJpbnRfZXJyb3JzX2NiKCZzc2xfZXJyX2NiLCAm Q3JlZGVudGlhbExvZ2dlcik7CisgICB9CisgCistICBUaW1lIGFzbjFfdG9fdXRjdGltZShjb25z dCBBU04xX1VUQ1RJTUUgKnMpIHsKKysgIFRpbWUgYXNuMV90b191dGN0aW1lKGNvbnN0IEFTTjFf VElNRSAqcykgeworICAgICBpZihzID09IE5VTEwpIHJldHVybiBUaW1lKCk7CisgICAgIHN0ZDo6 c3RyaW5nIHRfc3RyOworLSAgICBpZihzLT50eXBlID09IFZfQVNOMV9VVENUSU1FKSB7CisrICAg IGlmKEFTTjFfU1RSSU5HX3R5cGUocykgPT0gVl9BU04xX1VUQ1RJTUUpIHsKKyAgICAgICB0X3N0 ci5hcHBlbmQoIjIwIik7CistICAgICAgdF9zdHIuYXBwZW5kKChjaGFyKikocy0+ZGF0YSkpOwor KyAgICAgIHRfc3RyLmFwcGVuZCgoY29uc3QgY2hhciopIEFTTjFfU1RSSU5HX2dldDBfZGF0YShz KSk7CisgICAgIH0KKyAgICAgZWxzZSB7Ly9WX0FTTjFfR0VORVJBTElaRURUSU1FCistICAgICAg dF9zdHIuYXBwZW5kKChjaGFyKikocy0+ZGF0YSkpOworKyAgICAgIHRfc3RyLmFwcGVuZCgoY29u c3QgY2hhciopIEFTTjFfU1RSSU5HX2dldDBfZGF0YShzKSk7CisgICAgIH0KKyAgICAgcmV0dXJu IFRpbWUodF9zdHIpOworICAgfQorQEAgLTEyNCw3ICsxMjQsNyBAQCBuYW1lc3BhY2UgQXJjIHsK KyAgIC8vR2V0IHRoZSBsaWZlIHRpbWUgb2YgdGhlIGNyZWRlbnRpYWwKKyAgIHZvaWQgQ3JlZGVu dGlhbDo6R2V0TGlmZXRpbWUoU1RBQ0tfT0YoWDUwOSkgY29uc3QgKiBjZXJ0Y2hhaW4sIFg1MDkg Y29uc3QgKiBjZXJ0LCBUaW1lJiBzdGFydCwgUGVyaW9kICZsaWZldGltZSkgeworICAgICBUaW1l IHN0YXJ0X3RpbWUoLTEpLCBlbmRfdGltZSgtMSk7CistICAgIEFTTjFfVVRDVElNRSogYXRpbWUg PSBOVUxMOworKyAgICBjb25zdCBBU04xX1VUQ1RJTUUqIGF0aW1lID0gTlVMTDsKKyAKKyAgICAg aWYoY2VydCA9PSBOVUxMKSB7CisgICAgICAgc3RhcnQgPSBUaW1lKCk7CitAQCAtMTM1LDIwICsx MzUsMjAgQEAgbmFtZXNwYWNlIEFyYyB7CisgICAgIGlmKGNlcnRjaGFpbikgZm9yIChpbnQgbiA9 IDA7IG4gPCBza19YNTA5X251bShjZXJ0Y2hhaW4pOyBuKyspIHsKKyAgICAgICBYNTA5KiB0bXBf Y2VydCA9IHNrX1g1MDlfdmFsdWUoY2VydGNoYWluLCBuKTsKKyAKKy0gICAgICBhdGltZSA9IFg1 MDlfZ2V0bV9ub3RBZnRlcih0bXBfY2VydCk7CisrICAgICAgYXRpbWUgPSBYNTA5X2dldDBfbm90 QWZ0ZXIodG1wX2NlcnQpOworICAgICAgIFRpbWUgZSA9IGFzbjFfdG9fdXRjdGltZShhdGltZSk7 CisgICAgICAgaWYgKGVuZF90aW1lID09IFRpbWUoLTEpIHx8IGUgPCBlbmRfdGltZSkgeyBlbmRf dGltZSA9IGU7IH0KKyAKKy0gICAgICBhdGltZSA9IFg1MDlfZ2V0bV9ub3RCZWZvcmUodG1wX2Nl cnQpOworKyAgICAgIGF0aW1lID0gWDUwOV9nZXQwX25vdEJlZm9yZSh0bXBfY2VydCk7CisgICAg ICAgVGltZSBzID0gYXNuMV90b191dGN0aW1lKGF0aW1lKTsKKyAgICAgICBpZiAoc3RhcnRfdGlt ZSA9PSBUaW1lKC0xKSB8fCBzID4gc3RhcnRfdGltZSkgeyBzdGFydF90aW1lID0gczsgfQorICAg ICB9CisgCistICAgIGF0aW1lID0gWDUwOV9nZXRtX25vdEFmdGVyKGNlcnQpOworKyAgICBhdGlt ZSA9IFg1MDlfZ2V0MF9ub3RBZnRlcihjZXJ0KTsKKyAgICAgVGltZSBlID0gYXNuMV90b191dGN0 aW1lKGF0aW1lKTsKKyAgICAgaWYgKGVuZF90aW1lID09IFRpbWUoLTEpIHx8IGUgPCBlbmRfdGlt ZSkgeyBlbmRfdGltZSA9IGU7IH0KKyAKKy0gICAgYXRpbWUgPSBYNTA5X2dldG1fbm90QmVmb3Jl KGNlcnQpOworKyAgICBhdGltZSA9IFg1MDlfZ2V0MF9ub3RCZWZvcmUoY2VydCk7CisgICAgIFRp bWUgcyA9IGFzbjFfdG9fdXRjdGltZShhdGltZSk7CisgICAgIGlmIChzdGFydF90aW1lID09IFRp bWUoLTEpIHx8IHMgPiBzdGFydF90aW1lKSB7IHN0YXJ0X3RpbWUgPSBzOyB9CisgCitAQCAtMjQ5 LDcgKzI0OSw3IEBAIG5hbWVzcGFjZSBBcmMgeworICAgfQorIAorICAgc3RkOjpzdHJpbmcgQ3Jl ZGVudGlhbDo6R2V0RE4odm9pZCkgY29uc3QgeworLSAgICBYNTA5X05BTUUgKnN1YmplY3QgPSBO VUxMOworKyAgICBjb25zdCBYNTA5X05BTUUgKnN1YmplY3QgPSBOVUxMOworICAgICBpZighY2Vy dF8pIHJldHVybiAiIjsKKyAgICAgc3ViamVjdCA9IFg1MDlfZ2V0X3N1YmplY3RfbmFtZShjZXJ0 Xyk7CisgICAgIHN0ZDo6c3RyaW5nIHN0cjsKK0BAIC0yNjksMTkgKzI2OSwxNyBAQCBuYW1lc3Bh Y2UgQXJjIHsKKyAgICAgaWYoIWNlcnRfKSByZXR1cm4gIiI7CisgICAgIHN1YmplY3QgPSBYNTA5 X05BTUVfZHVwKFg1MDlfZ2V0X3N1YmplY3RfbmFtZShjZXJ0XykpOworIAorLSAgICBBU04xX1NU UklORyogZW50cnk7CisrICAgIGNvbnN0IEFTTjFfU1RSSU5HKiBlbnRyeTsKKyAgICAgc3RkOjpz dHJpbmcgZW50cnlfc3RyOworICAgICBmb3IoOzspIHsKKy0gICAgICBYNTA5X05BTUVfRU5UUlkg Km5lID0gWDUwOV9OQU1FX2dldF9lbnRyeShzdWJqZWN0LCBYNTA5X05BTUVfZW50cnlfY291bnQo c3ViamVjdCktMSk7CisrICAgICAgY29uc3QgWDUwOV9OQU1FX0VOVFJZICpuZSA9IFg1MDlfTkFN RV9nZXRfZW50cnkoc3ViamVjdCwgWDUwOV9OQU1FX2VudHJ5X2NvdW50KHN1YmplY3QpLTEpOwor ICAgICAgIGlmICghT0JKX2NtcChYNTA5X05BTUVfRU5UUllfZ2V0X29iamVjdChuZSksT0JKX25p ZDJvYmooTklEX2NvbW1vbk5hbWUpKSkgeworICAgICAgICAgZW50cnkgPSBYNTA5X05BTUVfRU5U UllfZ2V0X2RhdGEobmUpOworLSAgICAgICAgZW50cnlfc3RyLmFzc2lnbigoY29uc3QgY2hhciop KGVudHJ5LT5kYXRhKSwgKHN0ZDo6c2l6ZV90KShlbnRyeS0+bGVuZ3RoKSk7CisrICAgICAgICBl bnRyeV9zdHIuYXNzaWduKChjb25zdCBjaGFyKikgQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKGVudHJ5 KSwgKHN0ZDo6c2l6ZV90KSBBU04xX1NUUklOR19sZW5ndGgoZW50cnkpKTsKKyAgICAgICAgIGlm KGVudHJ5X3N0ciA9PSAicHJveHkiIHx8IGVudHJ5X3N0ciA9PSAibGltaXRlZCBwcm94eSIgfHwK KyAgICAgICAgICAgIGVudHJ5X3N0ci5maW5kX2ZpcnN0X25vdF9vZigiMDEyMzQ1Njc4OSIpID09 IHN0ZDo6c3RyaW5nOjpucG9zKSB7CisgICAgICAgICAgIC8vRHJvcCB0aGUgbmFtZSBlbnRyeSAi cHJveHkiLCAibGltaXRlZCBwcm94eSIsIG9yIHRoZSByYW5kb20gZGlnaXRhbChSRkMpCistICAg ICAgICAgIG5lID0gWDUwOV9OQU1FX2RlbGV0ZV9lbnRyeShzdWJqZWN0LCBYNTA5X05BTUVfZW50 cnlfY291bnQoc3ViamVjdCktMSk7CistICAgICAgICAgIFg1MDlfTkFNRV9FTlRSWV9mcmVlKG5l KTsKKy0gICAgICAgICAgbmUgPSBOVUxMOworKyAgICAgICAgICBYNTA5X05BTUVfRU5UUllfZnJl ZShYNTA5X05BTUVfZGVsZXRlX2VudHJ5KHN1YmplY3QsIFg1MDlfTkFNRV9lbnRyeV9jb3VudChz dWJqZWN0KS0xKSk7CisgICAgICAgICB9CisgICAgICAgICBlbHNlIGJyZWFrOworICAgICAgIH0K K0BAIC0zMDUsNyArMzAzLDcgQEAgbmFtZXNwYWNlIEFyYyB7CisgICB9CisgCisgICBzdGQ6OnN0 cmluZyBDcmVkZW50aWFsOjpHZXRJc3N1ZXJOYW1lKHZvaWQpIGNvbnN0IHsKKy0gICAgWDUwOV9O QU1FICppc3N1ZXIgPSBOVUxMOworKyAgICBjb25zdCBYNTA5X05BTUUgKmlzc3VlciA9IE5VTEw7 CisgICAgIGlmKCFjZXJ0XykgcmV0dXJuICIiOworICAgICBpc3N1ZXIgPSBYNTA5X2dldF9pc3N1 ZXJfbmFtZShjZXJ0Xyk7CisgICAgIHN0ZDo6c3RyaW5nIHN0cjsKK0BAIC0zMjcsNyArMzI1LDcg QEAgbmFtZXNwYWNlIEFyYyB7CisgICAgICAgLy8gVGhpcyB3b3JrcyBldmVuIGlmIGxhc3QgY2Vy dCBvbiBjaGFpbiBpcyBDQQorICAgICAgIC8vIGl0c2VsZiBiZWNhdXNlIENBIGlzIHNlbGYtc2ln bmVkLgorICAgICAgIFg1MDkgKmNhY2VydCA9IHNrX1g1MDlfdmFsdWUoY2VydF9jaGFpbl8sIG51 bS0xKTsKKy0gICAgICBYNTA5X05BTUUgKmNhbmFtZSA9IFg1MDlfZ2V0X2lzc3Vlcl9uYW1lKGNh Y2VydCk7CisrICAgICAgY29uc3QgWDUwOV9OQU1FICpjYW5hbWUgPSBYNTA5X2dldF9pc3N1ZXJf bmFtZShjYWNlcnQpOworICAgICAgIGlmKGNhbmFtZSE9TlVMTCkgeworICAgICAgICAgY2hhciog YnVmID0gWDUwOV9OQU1FX29uZWxpbmUoY2FuYW1lLE5VTEwsMCk7CisgICAgICAgICBpZihidWYp IHsKK0BAIC0xMTU4LDE2ICsxMTU2LDEyIEBAIG5hbWVzcGFjZSBBcmMgeworICAgICAgIHJldHVy biBOVUxMOworICAgICB9CisgCistICAgIC8vQVNOMV9PQ1RFVF9TVFJJTkdfc2V0KGV4dF9vY3Qs IGRhdGEuY19zdHIoKSwgZGF0YS5zaXplKCkpOworLSAgICBleHRfb2N0LT5kYXRhID0gKHVuc2ln bmVkIGNoYXIqKSBtYWxsb2MoZGF0YS5zaXplKCkpOworLSAgICBpZighKGV4dF9vY3QtPmRhdGEp KSB7CisrICAgIGlmIChBU04xX09DVEVUX1NUUklOR19zZXQoZXh0X29jdCwgKGNvbnN0IHVuc2ln bmVkIGNoYXIgKikgZGF0YS5jX3N0cigpLCBkYXRhLnNpemUoKSkgPT0gMCkgeworICAgICAgIENy ZWRlbnRpYWxMb2dnZXIubXNnKEVSUk9SLCAiQ2FuIG5vdCBhbGxvY2F0ZSBtZW1vcnkgZm9yIGV4 dGVuc2lvbiBmb3IgcHJveHkgY2VydGlmaWNhdGUiKTsKKyAgICAgICBpZihleHRfb2N0KSBBU04x X09DVEVUX1NUUklOR19mcmVlKGV4dF9vY3QpOworICAgICAgIGlmKGV4dF9vYmopIEFTTjFfT0JK RUNUX2ZyZWUoZXh0X29iaik7CisgICAgICAgcmV0dXJuIE5VTEw7CisgICAgIH0KKy0gICAgbWVt Y3B5KGV4dF9vY3QtPmRhdGEsIGRhdGEuY19zdHIoKSwgZGF0YS5zaXplKCkpOworLSAgICBleHRf b2N0LT5sZW5ndGggPSBkYXRhLnNpemUoKTsKKyAKKyAgICAgWDUwOV9FWFRFTlNJT04qIGV4dCA9 IE5VTEw7CisgICAgIGlmICghKGV4dCA9IFg1MDlfRVhURU5TSU9OX2NyZWF0ZV9ieV9PQkooTlVM TCwgZXh0X29iaiwgY3JpdCwgZXh0X29jdCkpKSB7CitAQCAtMTcwOCwxNCArMTcwMiwxNCBAQCBu YW1lc3BhY2UgQXJjIHsKKyAgICAgcmVxX2V4dGVuc2lvbnMgPSBYNTA5X1JFUV9nZXRfZXh0ZW5z aW9ucyhyZXFfKTsKKyAgICAgZm9yKGk9MDtpPHNrX1g1MDlfRVhURU5TSU9OX251bShyZXFfZXh0 ZW5zaW9ucyk7aSsrKSB7CisgICAgICAgWDUwOV9FWFRFTlNJT04qIGV4dCA9IHNrX1g1MDlfRVhU RU5TSU9OX3ZhbHVlKHJlcV9leHRlbnNpb25zLGkpOworLSAgICAgIEFTTjFfT0JKRUNUKiBleHRl bnNpb25fb2lkID0gWDUwOV9FWFRFTlNJT05fZ2V0X29iamVjdChleHQpOworKyAgICAgIGNvbnN0 IEFTTjFfT0JKRUNUKiBleHRlbnNpb25fb2lkID0gWDUwOV9FWFRFTlNJT05fZ2V0X29iamVjdChl eHQpOworICAgICAgIGludCBuaWQgPSBPQkpfb2JqMm5pZChleHRlbnNpb25fb2lkKTsKKyAgICAg ICBpZihuaWQgPT0gTklEX3Byb3h5Q2VydEluZm8pIHsKKyAgICAgICAgIGlmKHByb3h5X2NlcnRf aW5mb18pIHsKKyAgICAgICAgICAgUFJPWFlfQ0VSVF9JTkZPX0VYVEVOU0lPTl9mcmVlKHByb3h5 X2NlcnRfaW5mb18pOworICAgICAgICAgICBwcm94eV9jZXJ0X2luZm9fID0gTlVMTDsKKyAgICAg ICAgIH0KKy0gICAgICAgIEFTTjFfT0NURVRfU1RSSU5HKiBkYXRhID0gWDUwOV9FWFRFTlNJT05f Z2V0X2RhdGEoZXh0KTsKKysgICAgICAgIGNvbnN0IEFTTjFfT0NURVRfU1RSSU5HKiBkYXRhID0g WDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0KTsKKyAgICAgICAgIGlmKCFkYXRhKSB7CisgICAg ICAgICAgICBDcmVkZW50aWFsTG9nZ2VyLm1zZyhFUlJPUiwgIk1pc3NpbmcgZGF0YSBpbiBERVIg ZW5jb2RlZCBQUk9YWV9DRVJUX0lORk9fRVhURU5TSU9OIGV4dGVuc2lvbiIpOworICAgICAgICAg ICAgTG9nRXJyb3IoKTsgZ290byBlcnI7CitAQCAtMTk1NCw3ICsxOTQ4LDExIEBAIGVycjoKKyAg ICAgaW50IG51bTsKKyAgICAgaWYgKChudW0gPSBYNTA5X2dldF9leHRfY291bnQoY2VydF8pKSA+ IDApIHsKKyAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bTsgaSsrKSB7CisrI2lmIChPUEVO U1NMX1ZFUlNJT05fTlVNQkVSIDwgMHg0MDAwMDAwMEwpCisgICAgICAgICBYNTA5X0VYVEVOU0lP TiAqZXh0OworKyNlbHNlCisrICAgICAgICBjb25zdCBYNTA5X0VYVEVOU0lPTiAqZXh0OworKyNl bmRpZgorICAgICAgICAgY29uc3QgY2hhciAqZXh0bmFtZTsKKyAKKyAgICAgICAgIGV4dCA9IFg1 MDlfZ2V0X2V4dChjZXJ0XywgaSk7CitAQCAtMTk3MCwxOCArMTk2OCwxOCBAQCBlcnI6CisgICAg ICAgICAgIC8vR2V0IHg1MDkgZXh0ZW5zaW9uIG1ldGhvZCBzdHJ1Y3R1cmUKKyAgICAgICAgICAg aWYgKCEobWV0aG9kID0gKFg1MDlWM19FWFRfTUVUSE9EICopKFg1MDlWM19FWFRfZ2V0KGV4dCkp KSkgYnJlYWs7CisgCistICAgICAgICAgIEFTTjFfT0NURVRfU1RSSU5HKiBleHR2YWx1ZSA9IFg1 MDlfRVhURU5TSU9OX2dldF9kYXRhKGV4dCk7CistICAgICAgICAgIGV4dF92YWx1ZV9kYXRhID0g ZXh0dmFsdWUtPmRhdGE7CisrICAgICAgICAgIGNvbnN0IEFTTjFfT0NURVRfU1RSSU5HKiBleHR2 YWx1ZSA9IFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKGV4dCk7CisrICAgICAgICAgIGV4dF92YWx1 ZV9kYXRhID0gQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKGV4dHZhbHVlKTsKKyAKKyAgICAgICAgICAg Ly9EZWNvZGUgQVNOMSBpdGVtIGluIGRhdGEKKyAgICAgICAgICAgaWYgKG1ldGhvZC0+aXQpIHsK KyAgICAgICAgICAgICAgICAvL05ldyBzdHlsZSBBU04xCistICAgICAgICAgICAgICAgZXh0c3Ry ID0gQVNOMV9pdGVtX2QyaShOVUxMLCAmZXh0X3ZhbHVlX2RhdGEsIGV4dHZhbHVlLT5sZW5ndGgs CisrICAgICAgICAgICAgICAgZXh0c3RyID0gQVNOMV9pdGVtX2QyaShOVUxMLCAmZXh0X3ZhbHVl X2RhdGEsIEFTTjFfU1RSSU5HX2xlbmd0aChleHR2YWx1ZSksCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBBU04xX0lURU1fcHRyKG1ldGhvZC0+aXQpKTsKKyAgICAgICAg ICAgfQorICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvL09sZCBzdHlsZSBBU04x CistICAgICAgICAgICAgICAgZXh0c3RyID0gbWV0aG9kLT5kMmkoTlVMTCwgJmV4dF92YWx1ZV9k YXRhLCBleHR2YWx1ZS0+bGVuZ3RoKTsKKysgICAgICAgICAgICAgICBleHRzdHIgPSBtZXRob2Qt PmQyaShOVUxMLCAmZXh0X3ZhbHVlX2RhdGEsIEFTTjFfU1RSSU5HX2xlbmd0aChleHR2YWx1ZSkp OworICAgICAgICAgICB9CisgCisgICAgICAgICAgIHZhbCA9IG1ldGhvZC0+aTJ2KG1ldGhvZCwg ZXh0c3RyLCBOVUxMKTsKK0BAIC0yMTAwLDEyICsyMDk4LDE2IEBAIGVycjoKKyAKKyAgICAgcG9z aXRpb24gPSBYNTA5X2dldF9leHRfYnlfTklEKGlzc3VlciwgTklEX2V4dF9rZXlfdXNhZ2UsIC0x KTsKKyAgICAgaWYocG9zaXRpb24gPiAtMSkgeworLSAgICAgIFg1MDlfRVhURU5TSU9OKiBleHQg PSBOVUxMOworLSAgICAgIGlmKCEoZXh0ID0gWDUwOV9nZXRfZXh0KGlzc3VlciwgcG9zaXRpb24p KSkgeworKyNpZiAoT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA8IDB4MzAwMDAwMDBMKQorKyAgICAg IFg1MDlfRVhURU5TSU9OKiBleHQwOworKyNlbHNlCisrICAgICAgY29uc3QgWDUwOV9FWFRFTlNJ T04qIGV4dDA7CisrI2VuZGlmCisrICAgICAgaWYoIShleHQwID0gWDUwOV9nZXRfZXh0KGlzc3Vl ciwgcG9zaXRpb24pKSkgeworICAgICAgICAgQ3JlZGVudGlhbExvZ2dlci5tc2coRVJST1IsICJD YW4gbm90IGdldCBleHRlbmRlZCBLZXlVc2FnZSBleHRlbnNpb24gZnJvbSBpc3N1ZXIgY2VydGlm aWNhdGUiKTsKKyAgICAgICAgIExvZ0Vycm9yKCk7IGdvdG8gZXJyOworICAgICAgIH0KKy0gICAg ICBleHQgPSBYNTA5X0VYVEVOU0lPTl9kdXAoZXh0KTsKKysgICAgICBYNTA5X0VYVEVOU0lPTiog ZXh0ID0gWDUwOV9FWFRFTlNJT05fZHVwKGV4dDApOworICAgICAgIGlmKCFleHQpIHsKKyAgICAg ICAgIENyZWRlbnRpYWxMb2dnZXIubXNnKEVSUk9SLCAiQ2FuIG5vdCBjb3B5IGV4dGVuZGVkIEtl eVVzYWdlIGV4dGVuc2lvbiIpOworICAgICAgICAgTG9nRXJyb3IoKTsgZ290byBlcnI7CitkaWZm IC0tZ2l0IGEvc3JjL2hlZC9saWJzL2NyZWRlbnRpYWwvUHJveHljZXJ0aW5mby5jcHAgYi9zcmMv aGVkL2xpYnMvY3JlZGVudGlhbC9Qcm94eWNlcnRpbmZvLmNwcAoraW5kZXggYWYyNGFmZDVlLi42 ZjBmMjE0ZjcgMTAwNjQ0CistLS0gYS9zcmMvaGVkL2xpYnMvY3JlZGVudGlhbC9Qcm94eWNlcnRp bmZvLmNwcAorKysrIGIvc3JjL2hlZC9saWJzL2NyZWRlbnRpYWwvUHJveHljZXJ0aW5mby5jcHAK K0BAIC01NCwxMiArNTQsMTIgQEAgaW50IFBST1hZX1BPTElDWV9zZXRfcG9saWN5KFBST1hZX1BP TElDWSAqIHByb3h5cG9saWN5LCB1bnNpZ25lZCBjaGFyICogcG9saWN5LAorIHVuc2lnbmVkIGNo YXIgKiBQUk9YWV9QT0xJQ1lfZ2V0X3BvbGljeShQUk9YWV9QT0xJQ1kgKiBwcm94eXBvbGljeSwg aW50ICogbGVuZ3RoKSB7CisgICAvKiBhc3N1cmUgZmllbGQgcG9saWN5IGlzIHNldCAqLworICAg aWYocHJveHlwb2xpY3ktPnBvbGljeSkgeworLSAgICAqbGVuZ3RoID0gcHJveHlwb2xpY3ktPnBv bGljeS0+bGVuZ3RoOworKyAgICAqbGVuZ3RoID0gQVNOMV9TVFJJTkdfbGVuZ3RoKHByb3h5cG9s aWN5LT5wb2xpY3kpOworICAgICAvKiBhc3N1cmUgQVNOMV9PQ1RFVF9TVFJJTkcgaXMgZnVsbCAq LworLSAgICBpZiAoKmxlbmd0aD4wICYmIHByb3h5cG9saWN5LT5wb2xpY3ktPmRhdGEpIHsKKysg ICAgaWYgKCpsZW5ndGggPiAwICYmIEFTTjFfU1RSSU5HX2dldDBfZGF0YShwcm94eXBvbGljeS0+ cG9saWN5KSkgeworICAgICAgIHVuc2lnbmVkIGNoYXIgKiBjb3B5ID0gKHVuc2lnbmVkIGNoYXIq KSBtYWxsb2MoKmxlbmd0aCk7CisgICAgICAgaWYoY29weSkgeworLSAgICAgICAgbWVtY3B5KGNv cHksIHByb3h5cG9saWN5LT5wb2xpY3ktPmRhdGEsICpsZW5ndGgpOworKyAgICAgICAgbWVtY3B5 KGNvcHksIEFTTjFfU1RSSU5HX2dldDBfZGF0YShwcm94eXBvbGljeS0+cG9saWN5KSwgKmxlbmd0 aCk7CisgICAgICAgICByZXR1cm4gY29weTsKKyAgICAgICB9CisgICAgIH0KK2RpZmYgLS1naXQg YS9zcmMvaGVkL2xpYnMvY3JlZGVudGlhbC9WT01TVXRpbC5jcHAgYi9zcmMvaGVkL2xpYnMvY3Jl ZGVudGlhbC9WT01TVXRpbC5jcHAKK2luZGV4IDJiNGYxMzM1Zi4uOGE0YTU4ZWE4IDEwMDY0NAor LS0tIGEvc3JjL2hlZC9saWJzL2NyZWRlbnRpYWwvVk9NU1V0aWwuY3BwCisrKysgYi9zcmMvaGVk L2xpYnMvY3JlZGVudGlhbC9WT01TVXRpbC5jcHAKK0BAIC04MTgsNyArODE4LDcgQEAgZXJyOgor ICAgICAgIC8vIGNvbnN0X2Nhc3QgaGFjayBkdWUgdG8gbWlzc2luZyBzZXQgbWV0aG9kCisgICAg ICAgY29uc3QgQVNOMV9CSVRfU1RSSU5HKiBic3RyID0gWDUwOV9BQ0VSVF9nZXQwX2lzc3VlclVJ RChhKTsKKyAgICAgICBpZihic3RyKQorLSAgICAgICAgQVNOMV9CSVRfU1RSSU5HX3NldChjb25z dF9jYXN0PEFTTjFfQklUX1NUUklORyo+KGJzdHIpLCB1aWQtPmRhdGEsIHVpZC0+bGVuZ3RoKTsK KysgICAgICAgIEFTTjFfQklUX1NUUklOR19zZXQoY29uc3RfY2FzdDxBU04xX0JJVF9TVFJJTkcq Pihic3RyKSwgY29uc3RfY2FzdDx1bnNpZ25lZCBjaGFyKj4oQVNOMV9TVFJJTkdfZ2V0MF9kYXRh KHVpZCkpLCBBU04xX1NUUklOR19sZW5ndGgodWlkKSk7CisgICAgIH0KKyAKKyAgICAgaWYoYWxn MSkgeworQEAgLTE0NTUsNyArMTQ1NSw3IEBAIGVycjoKKyAgICAgR0VORVJBTF9OQU1FICpkYXRh ID0gc2tfR0VORVJBTF9OQU1FX3ZhbHVlKE9TU0xfSUVURl9BVFRSX1NZTlRBWF9nZXQwX3BvbGlj eUF1dGhvcml0eShjYXBhdHRyKSwgMCk7CisgICAgIGlmIChkYXRhICYmIGRhdGEtPnR5cGUgPT0g R0VOX1VSSSkgeworICAgICAgIHN0ZDo6c3RyaW5nIHZvbmFtZSgiL3ZvbmFtZT0iKTsKKy0gICAg ICB2b25hbWUuYXBwZW5kKChjb25zdCBjaGFyKikoZGF0YS0+ZC5pYTUtPmRhdGEpLCBkYXRhLT5k LmlhNS0+bGVuZ3RoKTsKKysgICAgICB2b25hbWUuYXBwZW5kKChjb25zdCBjaGFyKikgQVNOMV9T VFJJTkdfZ2V0MF9kYXRhKGRhdGEtPmQuaWE1KSwgQVNOMV9TVFJJTkdfbGVuZ3RoKGRhdGEtPmQu aWE1KSk7CisgICAgICAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBwb3MgPSB2b25hbWUuZmluZCgi Oi8vIik7CisgICAgICAgaWYocG9zICE9IHN0ZDo6c3RyaW5nOjpucG9zKSB7CisgICAgICAgICB2 b25hbWUucmVwbGFjZShwb3MsMywiL2hvc3RuYW1lPSIpOworQEAgLTE0NzksNyArMTQ3OSw3IEBA IGVycjoKKyAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICB9CisgCistICAgICAgc3RkOjpz dHJpbmcgZnFhbigoY29uc3QgY2hhciopKGNhcG5hbWUtPmRhdGEpLCBjYXBuYW1lLT5sZW5ndGgp OworKyAgICAgIHN0ZDo6c3RyaW5nIGZxYW4oKGNvbnN0IGNoYXIqKSBBU04xX1NUUklOR19nZXQw X2RhdGEoY2FwbmFtZSksIEFTTjFfU1RSSU5HX2xlbmd0aChjYXBuYW1lKSk7CisgCisgICAgICAg Ly8gaWYgdGhlIGF0dHJpYnV0ZSBpcyBsaWtlOiAva25vd2FyYy5ldS9Sb2xlPU5VTEwvQ2FwYWJp bGl0eT1OVUxMCisgICAgICAgLy8gb3IgL2tub3dhcmMuZXUvUm9sZT10ZXN0ZXIvQ2FwYWJpbGl0 eT1OVUxMCitAQCAtMTUzMyw3ICsxNTMzLDcgQEAgZXJyOgorICAgICAgIFNUQUNLX09GKEFDX0FU VFJJQlVURSkgKmF0dHMgPSBob2xkZXItPmF0dHJpYnV0ZXM7CisgCisgICAgICAgZ24gPSBza19H RU5FUkFMX05BTUVfdmFsdWUoaG9sZGVyLT5ncmFudG9yLCAwKTsKKy0gICAgICBncmFudG9yLmFz c2lnbigoY29uc3QgY2hhciopKGduLT5kLmlhNS0+ZGF0YSksIGduLT5kLmlhNS0+bGVuZ3RoKTsK KysgICAgICBncmFudG9yLmFzc2lnbigoY29uc3QgY2hhciopIEFTTjFfU1RSSU5HX2dldDBfZGF0 YShnbi0+ZC5pYTUpLCBBU04xX1NUUklOR19sZW5ndGgoZ24tPmQuaWE1KSk7CisgICAgICAgaWYo Z3JhbnRvci5lbXB0eSgpKSB7CisgICAgICAgICBDcmVkZW50aWFsTG9nZ2VyLm1zZyhFUlJPUiwi Vk9NUzogdGhlIGdyYW50b3IgYXR0cmlidXRlIGlzIGVtcHR5Iik7CisgICAgICAgICBzdGF0dXMg fD0gVk9NU0FDSW5mbzo6SW50ZXJuYWxQYXJzaW5nRmFpbGVkOworQEAgLTE1NTEsMTggKzE1NTEs MTggQEAgZXJyOgorICAgICAgICAgc3RkOjpzdHJpbmcgYXR0cmlidXRlOworICAgICAgICAgQUNf QVRUUklCVVRFICphdCA9IHNrX0FDX0FUVFJJQlVURV92YWx1ZShhdHRzLCBqKTsKKyAKKy0gICAg ICAgIG5hbWUuYXNzaWduKChjb25zdCBjaGFyKikoYXQtPm5hbWUtPmRhdGEpLCBhdC0+bmFtZS0+ bGVuZ3RoKTsKKysgICAgICAgIG5hbWUuYXNzaWduKChjb25zdCBjaGFyKikgQVNOMV9TVFJJTkdf Z2V0MF9kYXRhKGF0LT5uYW1lKSwgQVNOMV9TVFJJTkdfbGVuZ3RoKGF0LT5uYW1lKSk7CisgICAg ICAgICBpZihuYW1lLmVtcHR5KCkpIHsKKyAgICAgICAgICAgQ3JlZGVudGlhbExvZ2dlci5tc2co RVJST1IsIlZPTVM6IHRoZSBhdHRyaWJ1dGUgbmFtZSBpcyBlbXB0eSIpOworICAgICAgICAgICBz dGF0dXMgfD0gVk9NU0FDSW5mbzo6SW50ZXJuYWxQYXJzaW5nRmFpbGVkOworICAgICAgICAgICBy ZXR1cm4gZmFsc2U7CisgICAgICAgICB9CistICAgICAgICB2YWx1ZS5hc3NpZ24oKGNvbnN0IGNo YXIqKShhdC0+dmFsdWUtPmRhdGEpLCBhdC0+dmFsdWUtPmxlbmd0aCk7CisrICAgICAgICB2YWx1 ZS5hc3NpZ24oKGNvbnN0IGNoYXIqKSBBU04xX1NUUklOR19nZXQwX2RhdGEoYXQtPnZhbHVlKSwg QVNOMV9TVFJJTkdfbGVuZ3RoKGF0LT52YWx1ZSkpOworICAgICAgICAgaWYodmFsdWUuZW1wdHko KSkgeworICAgICAgICAgICBDcmVkZW50aWFsTG9nZ2VyLm1zZyhXQVJOSU5HLCJWT01TOiB0aGUg YXR0cmlidXRlIHZhbHVlIGZvciAlcyBpcyBlbXB0eSIsIG5hbWUuY19zdHIoKSk7CisgICAgICAg ICAgIC8vcmV0dXJuIGZhbHNlOworICAgICAgICAgfQorLSAgICAgICAgcXVhbGlmaWVyLmFzc2ln bigoY29uc3QgY2hhciopKGF0LT5xdWFsaWZpZXItPmRhdGEpLCBhdC0+cXVhbGlmaWVyLT5sZW5n dGgpOworKyAgICAgICAgcXVhbGlmaWVyLmFzc2lnbigoY29uc3QgY2hhciopIEFTTjFfU1RSSU5H X2dldDBfZGF0YShhdC0+cXVhbGlmaWVyKSwgQVNOMV9TVFJJTkdfbGVuZ3RoKGF0LT5xdWFsaWZp ZXIpKTsKKyAgICAgICAgIGlmKHF1YWxpZmllci5lbXB0eSgpKSB7CisgICAgICAgICAgIENyZWRl bnRpYWxMb2dnZXIubXNnKEVSUk9SLCJWT01TOiB0aGUgYXR0cmlidXRlIHF1YWxpZmllciBpcyBl bXB0eSIpOworICAgICAgICAgICBzdGF0dXMgfD0gVk9NU0FDSW5mbzo6SW50ZXJuYWxQYXJzaW5n RmFpbGVkOworQEAgLTE3OTQsMTQgKzE3OTQsMTQgQEAgZXJyOgorICAgICAgICAgaWYgKGlzcykg eworICAgICAgICAgICBpZiAoa2V5LT5rZXlpZCkgeworICAgICAgICAgICAgIHVuc2lnbmVkIGNo YXIgaGFzaGVkWzIwXTsKKy0gICAgICAgICAgICBBU04xX0JJVF9TVFJJTkcqIHBrZXlzdHIgPSBY NTA5X2dldDBfcHVia2V5X2JpdHN0cihpc3MpOworLSAgICAgICAgICAgIGlmICghU0hBMShwa2V5 c3RyLT5kYXRhLAorLSAgICAgICAgICAgICAgICAgICAgICBwa2V5c3RyLT5sZW5ndGgsCisrICAg ICAgICAgICAgY29uc3QgQVNOMV9CSVRfU1RSSU5HKiBwa2V5c3RyID0gWDUwOV9nZXQwX3B1Ymtl eV9iaXRzdHIoaXNzKTsKKysgICAgICAgICAgICBpZiAoIVNIQTEoQVNOMV9TVFJJTkdfZ2V0MF9k YXRhKHBrZXlzdHIpLAorKyAgICAgICAgICAgICAgICAgICAgICBBU04xX1NUUklOR19sZW5ndGgo cGtleXN0ciksCisgICAgICAgICAgICAgICAgICAgICAgIGhhc2hlZCkpCisgICAgICAgICAgICAg ICBrZXllcnIgPSB0cnVlOworIAorLSAgICAgICAgICAgIGlmICgobWVtY21wKGtleS0+a2V5aWQt PmRhdGEsIGhhc2hlZCwgMjApICE9IDApICYmCistICAgICAgICAgICAgICAgIChrZXktPmtleWlk LT5sZW5ndGggPT0gMjApKQorKyAgICAgICAgICAgIGlmICgobWVtY21wKEFTTjFfU1RSSU5HX2dl dDBfZGF0YShrZXktPmtleWlkKSwgaGFzaGVkLCAyMCkgIT0gMCkgJiYKKysgICAgICAgICAgICAg ICAgKEFTTjFfU1RSSU5HX2xlbmd0aChrZXktPmtleWlkKSA9PSAyMCkpCisgICAgICAgICAgICAg ICBrZXllcnIgPSB0cnVlOworICAgICAgICAgICB9CisgICAgICAgICAgIGVsc2UgeworQEAgLTE4 MzgsOCArMTgzOCw4IEBAIGVycjoKKyAgIH0KKyAKKyAgIHN0YXRpYyB0aW1lX3QgQVNOMV9HRU5F UkFMSVpFRFRJTUVfZ2V0KGNvbnN0IEFTTjFfR0VORVJBTElaRURUSU1FKiBjb25zdCBzKSB7Cist ICAgIGlmICgocyA9PSBOVUxMKSB8fCAocy0+ZGF0YSA9PSBOVUxMKSB8fCAocy0+bGVuZ3RoID09 IDApKSByZXR1cm4gQXJjOjpUaW1lOjpVTkRFRklORUQ7CistICAgIHN0ZDo6c3RyaW5nIHN0cigo Y2hhciBjb25zdCAqKShzLT5kYXRhKSwgcy0+bGVuZ3RoKTsKKysgICAgaWYgKChzID09IE5VTEwp IHx8IChBU04xX1NUUklOR19nZXQwX2RhdGEocykgPT0gTlVMTCkgfHwgKEFTTjFfU1RSSU5HX2xl bmd0aChzKSA9PSAwKSkgcmV0dXJuIEFyYzo6VGltZTo6VU5ERUZJTkVEOworKyAgICBzdGQ6OnN0 cmluZyBzdHIoKGNoYXIgY29uc3QgKikgQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKHMpLCBBU04xX1NU UklOR19sZW5ndGgocykpOworICAgICBBcmM6OlRpbWUgdChzdHIpOworICAgICByZXR1cm4gdC5H ZXRUaW1lKCk7CisgICB9CitAQCAtMjA1MCw3ICsyMDUwLDcgQEAgZXJyOgorICAgICBjdGltZSAr PSAzMDA7CisgICAgIGR0aW1lID0gY3RpbWUtNjAwOworIAorLSAgICBpZiAoKHN0YXJ0LT50eXBl ICE9IFZfQVNOMV9HRU5FUkFMSVpFRFRJTUUpIHx8IChlbmQtPnR5cGUgIT0gVl9BU04xX0dFTkVS QUxJWkVEVElNRSkpIHsKKysgICAgaWYgKChBU04xX1NUUklOR190eXBlKHN0YXJ0KSAhPSBWX0FT TjFfR0VORVJBTElaRURUSU1FKSB8fCAoQVNOMV9TVFJJTkdfdHlwZShlbmQpICE9IFZfQVNOMV9H RU5FUkFMSVpFRFRJTUUpKSB7CisgICAgICAgQ3JlZGVudGlhbExvZ2dlci5tc2coRVJST1IsIlZP TVM6IHVuc3VwcG9ydGVkIHRpbWUgZm9ybWF0IGluIEFDIC0gZXhwZWN0aW5nIEdFTkVSQUxJWkVE IFRJTUUiKTsKKyAgICAgICBzdGF0dXMgfD0gVk9NU0FDSW5mbzo6QUNQYXJzaW5nRmFpbGVkOwor ICAgICAgIHJldHVybiBmYWxzZTsgLy8gPworQEAgLTIxODEsNyArMjE4MSw3IEBAIGVycjoKKyAg ICAgICB9CisgICAgIH0KKyAKKy0gICAgaWYgKFg1MDlfQUNFUlRfZ2V0MF9zZXJpYWxOdW1iZXIo YWMpLT5sZW5ndGggPiAyMCkgeworKyAgICBpZiAoQVNOMV9TVFJJTkdfbGVuZ3RoKFg1MDlfQUNF UlRfZ2V0MF9zZXJpYWxOdW1iZXIoYWMpKSA+IDIwKSB7CisgICAgICAgQ3JlZGVudGlhbExvZ2dl ci5tc2coRVJST1IsIlZPTVM6IHRoZSBzZXJpYWwgbnVtYmVyIG9mIEFDIElORk8gaXMgdG9vIGxv bmcgLSBleHBlY3Rpbmcgbm8gbW9yZSB0aGFuIDIwIG9jdGV0cyIpOworICAgICAgIHN0YXR1cyB8 PSBWT01TQUNJbmZvOjpJbnRlcm5hbFBhcnNpbmdGYWlsZWQ7CisgICAgICAgcmV0dXJuIGZhbHNl OworQEAgLTIyNjEsNyArMjI2MSw3IEBAIGVycjoKKyAgICAgICByZXR1cm4gZmFsc2U7CisgICAg IH0KKyAKKy0gICAgc3RkOjpzdHJpbmcgdm9uYW1lKChjb25zdCBjaGFyICopbmFtZS0+ZC5pYTUt PmRhdGEsIDAsIG5hbWUtPmQuaWE1LT5sZW5ndGgpOworKyAgICBzdGQ6OnN0cmluZyB2b25hbWUo KGNvbnN0IGNoYXIgKikgQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKG5hbWUtPmQuaWE1KSwgMCwgQVNO MV9TVFJJTkdfbGVuZ3RoKG5hbWUtPmQuaWE1KSk7CisgICAgIHN0ZDo6c3RyaW5nOjpzaXplX3R5 cGUgY3BvcyA9IHZvbmFtZS5maW5kKCI6Ly8iKTsKKyAgICAgc3RkOjpzdHJpbmcgaG9zdG5hbWU7 CisgICAgIGlmIChjcG9zICE9IHN0ZDo6c3RyaW5nOjpucG9zKSB7CitAQCAtMjMxNCw3ICsyMzE0 LDExIEBAIGVycjoKKyAgICAgaW50IG5pZCA9IDA7CisgICAgIGludCBwb3NpdGlvbiA9IDA7Cisg ICAgIGJvb2wgY3JpdGljYWwgPSBmYWxzZTsKKysjaWYgKE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIg PCAweDQwMDAwMDAwTCkKKyAgICAgWDUwOV9FWFRFTlNJT04gKiBleHQ7CisrI2Vsc2UKKysgICAg Y29uc3QgWDUwOV9FWFRFTlNJT04gKiBleHQ7CisrI2VuZGlmCisgICAgIEFDX1NFUSogYWNsaXN0 ID0gTlVMTDsKKyAgICAgbmlkID0gT0JKX3R4dDJuaWQoYWNzZXFPSUQpOworICAgICBwb3NpdGlv biA9IFg1MDlfZ2V0X2V4dF9ieV9OSUQoaG9sZGVyLCBuaWQsIC0xKTsKK0BAIC0yNjc1LDcgKzI2 NzksNyBAQCBlcnI6CisgICAgIGV4dCA9IFg1MDlWM19FWFRfY29uZl9uaWQoTlVMTCwgTlVMTCwg T0JKX3R4dDJuaWQoYWNzZXFPSUQpLCAoY2hhciopKGFjX3NlcS5jX3N0cigpKSk7CisgICAgIGlm KGV4dCE9TlVMTCkgeworICAgICAgIGFzbjEuY2xlYXIoKTsKKy0gICAgICBhc24xLmFzc2lnbigo Y29uc3QgY2hhciopKFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKGV4dCktPmRhdGEpLCBYNTA5X0VY VEVOU0lPTl9nZXRfZGF0YShleHQpLT5sZW5ndGgpOworKyAgICAgIGFzbjEuYXNzaWduKChjb25z dCBjaGFyKikgQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKGV4 dCkpLCBBU04xX1NUUklOR19sZW5ndGgoWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0KSkpOwor ICAgICAgIHJldCA9IHRydWU7CisgICAgICAgWDUwOV9FWFRFTlNJT05fZnJlZShleHQpOworICAg ICB9CitkaWZmIC0tZ2l0IGEvc3JjL2hlZC9saWJzL2RlbGVnYXRpb24vRGVsZWdhdGlvbkludGVy ZmFjZS5jcHAgYi9zcmMvaGVkL2xpYnMvZGVsZWdhdGlvbi9EZWxlZ2F0aW9uSW50ZXJmYWNlLmNw cAoraW5kZXggYWQ2MWU0MGQwLi5hOWRmODc5ZGIgMTAwNjQ0CistLS0gYS9zcmMvaGVkL2xpYnMv ZGVsZWdhdGlvbi9EZWxlZ2F0aW9uSW50ZXJmYWNlLmNwcAorKysrIGIvc3JjL2hlZC9saWJzL2Rl bGVnYXRpb24vRGVsZWdhdGlvbkludGVyZmFjZS5jcHAKK0BAIC0yMTQsOCArMjE0LDggQEAgZXJy OgorIAorIHN0YXRpYyBUaW1lIGFzbjFfdG9fdGltZShjb25zdCBBU04xX1VUQ1RJTUUgKnMpIHsK KyAgIGlmKHMgIT0gTlVMTCkgeworLSAgICBpZihzLT50eXBlID09IFZfQVNOMV9VVENUSU1FKSBy ZXR1cm4gVGltZShzdGQ6OnN0cmluZygiMjAiKSsoKGNoYXIqKShzLT5kYXRhKSkpOworLSAgICBp ZihzLT50eXBlID09IFZfQVNOMV9HRU5FUkFMSVpFRFRJTUUpIHJldHVybiBUaW1lKHN0ZDo6c3Ry aW5nKChjaGFyKikocy0+ZGF0YSkpKTsKKysgICAgaWYoQVNOMV9TVFJJTkdfdHlwZShzKSA9PSBW X0FTTjFfVVRDVElNRSkgcmV0dXJuIFRpbWUoc3RkOjpzdHJpbmcoIjIwIikrKChjb25zdCBjaGFy KikoQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKHMpKSkpOworKyAgICBpZihBU04xX1NUUklOR190eXBl KHMpID09IFZfQVNOMV9HRU5FUkFMSVpFRFRJTUUpIHJldHVybiBUaW1lKHN0ZDo6c3RyaW5nKChj b25zdCBjaGFyKikoQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKHMpKSkpOworICAgfQorICAgcmV0dXJu IFRpbWUoVGltZTo6VU5ERUZJTkVEKTsKKyB9CitAQCAtNjQ4LDYgKzY0OCwxMSBAQCBzdGQ6OnN0 cmluZyBEZWxlZ2F0aW9uUHJvdmlkZXI6OkRlbGVnYXRlKGNvbnN0IHN0ZDo6c3RyaW5nJiByZXF1 ZXN0LGNvbnN0IERlbGVnYQorICAgUFJPWFlfUE9MSUNZIHByb3h5X3BvbGljeTsKKyAgIGNvbnN0 IEVWUF9NRCAqZGlnZXN0ID0gRVZQX3NoYTI1NigpOworICAgWDUwOV9OQU1FICpzdWJqZWN0ID0g TlVMTDsKKysjaWYgKE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIgPCAweDMwMDAwMDAwTCkKKysgIFg1 MDlfTkFNRSAqc3ViamVjdF9jID0gTlVMTDsKKysjZWxzZQorKyAgY29uc3QgWDUwOV9OQU1FICpz dWJqZWN0X2MgPSBOVUxMOworKyNlbmRpZgorICAgY29uc3QgY2hhciogbmVlZF9leHQgPSAiY3Jp dGljYWwsZGlnaXRhbFNpZ25hdHVyZSxrZXlFbmNpcGhlcm1lbnQiOworICAgc3RkOjpzdHJpbmcg cHJveHlfY247CisgICBzdGQ6OnN0cmluZyByZXM7CitAQCAtODE0LDkgKzgxOSw5IEBAIHN0ZDo6 c3RyaW5nIERlbGVnYXRpb25Qcm92aWRlcjo6RGVsZWdhdGUoY29uc3Qgc3RkOjpzdHJpbmcmIHJl cXVlc3QsY29uc3QgRGVsZWdhCisgICAgICAgICB9IFBST1hZX1BPTElDWTsKKyAgICovCisgCist ICBzdWJqZWN0PVg1MDlfZ2V0X3N1YmplY3RfbmFtZSgoWDUwOSopY2VydF8pOworLSAgaWYoIXN1 YmplY3QpIGdvdG8gZXJyOworLSAgc3ViamVjdD1YNTA5X05BTUVfZHVwKHN1YmplY3QpOworKyAg c3ViamVjdF9jPVg1MDlfZ2V0X3N1YmplY3RfbmFtZSgoWDUwOSopY2VydF8pOworKyAgaWYoIXN1 YmplY3RfYykgZ290byBlcnI7CisrICBzdWJqZWN0PVg1MDlfTkFNRV9kdXAoc3ViamVjdF9jKTsK KyAgIGlmKCFzdWJqZWN0KSBnb3RvIGVycjsKKyAgIGlmKCFYNTA5X3NldF9pc3N1ZXJfbmFtZShj ZXJ0LHN1YmplY3QpKSBnb3RvIGVycjsKKyAgIGlmKCFYNTA5X05BTUVfYWRkX2VudHJ5X2J5X05J RChzdWJqZWN0LE5JRF9jb21tb25OYW1lLE1CU1RSSU5HX0FTQywodW5zaWduZWQgY2hhciopKHBy b3h5X2NuLmNfc3RyKCkpLHByb3h5X2NuLmxlbmd0aCgpLC0xLDApKSBnb3RvIGVycjsKK2RpZmYg LS1naXQgYS9zcmMvaGVkL21jYy90bHMvRGVsZWdhdGlvbkNvbGxlY3Rvci5jcHAgYi9zcmMvaGVk L21jYy90bHMvRGVsZWdhdGlvbkNvbGxlY3Rvci5jcHAKK2luZGV4IDVkOWMwNGRmYy4uMmRjYmI2 NmI0IDEwMDY0NAorLS0tIGEvc3JjL2hlZC9tY2MvdGxzL0RlbGVnYXRpb25Db2xsZWN0b3IuY3Bw CisrKysgYi9zcmMvaGVkL21jYy90bHMvRGVsZWdhdGlvbkNvbGxlY3Rvci5jcHAKK0BAIC00NSw4 ICs0NSw4IEBAIHN0YXRpYyBib29sIGdldF9wcm94eV9wb2xpY3koWDUwOSogY2VydCxEZWxlZ2F0 aW9uTXVsdGlTZWNBdHRyKiBzYXR0cikgeworICAgICB9OyBicmVhazsKKyAgICAgY2FzZSBOSURf aWRfcHBsX2FueUxhbmd1YWdlOiB7IC8vIEhlcmUgd2Ugc3RvcmUgQVJDIHBvbGljeQorICAgICAg IC8vIEVpdGhlciB0aGlzIGlzIEFSQyBwb2xpY3kgaXMgZGV0ZXJtaW5lZCBieSBleGFtaW5pbmcg Y29udGVudAorLSAgICAgIGNvbnN0IGNoYXIqIHBvbGljeV9zdHIgPSAoY29uc3QgY2hhciAqKShw Y2ktPnByb3h5UG9saWN5LT5wb2xpY3ktPmRhdGEpOworLSAgICAgIGludCBwb2xpY3lfbGVuZ3Ro ID0gcGNpLT5wcm94eVBvbGljeS0+cG9saWN5LT5sZW5ndGg7CisrICAgICAgY29uc3QgY2hhciog cG9saWN5X3N0ciA9IChjb25zdCBjaGFyICopIEFTTjFfU1RSSU5HX2dldDBfZGF0YShwY2ktPnBy b3h5UG9saWN5LT5wb2xpY3kpOworKyAgICAgIGludCBwb2xpY3lfbGVuZ3RoID0gQVNOMV9TVFJJ TkdfbGVuZ3RoKHBjaS0+cHJveHlQb2xpY3ktPnBvbGljeSk7CisgICAgICAgaWYoKHBvbGljeV9z dHIgPT0gTlVMTCkgfHwgKHBvbGljeV9sZW5ndGggPD0gMCkpIHsKKyAgICAgICAgIGxvZ2dlci5t c2coREVCVUcsIlByb3h5IHdpdGggZW1wdHkgcG9saWN5ICAtIGZhaWwgb24gdW5yZWNvZ25pemVk IHBvbGljeSIpOworICAgICAgICAgYnJlYWs7CitkaWZmIC0tZ2l0IGEvc3JjL2hlZC9tY2MvdGxz L1BheWxvYWRUTFNNQ0MuY3BwIGIvc3JjL2hlZC9tY2MvdGxzL1BheWxvYWRUTFNNQ0MuY3BwCitp bmRleCA4MWFkOWQ3MWYuLjM1OGZhYzg0NCAxMDA2NDQKKy0tLSBhL3NyYy9oZWQvbWNjL3Rscy9Q YXlsb2FkVExTTUNDLmNwcAorKysrIGIvc3JjL2hlZC9tY2MvdGxzL1BheWxvYWRUTFNNQ0MuY3Bw CitAQCAtMjAsMTIgKzIwLDEyIEBAIGludCBQYXlsb2FkVExTTUNDOjpleF9kYXRhX2luZGV4XyA9 IC0xOworIFRpbWUgYXNuMV90b191dGN0aW1lKGNvbnN0IEFTTjFfVVRDVElNRSAqcykgeworICAg c3RkOjpzdHJpbmcgdF9zdHI7CisgICBpZighcykgcmV0dXJuIFRpbWUoKTsKKy0gIGlmKHMtPnR5 cGUgPT0gVl9BU04xX1VUQ1RJTUUpIHsKKysgIGlmKEFTTjFfU1RSSU5HX3R5cGUocykgPT0gVl9B U04xX1VUQ1RJTUUpIHsKKyAgICAgdF9zdHIuYXBwZW5kKCIyMCIpOworLSAgICB0X3N0ci5hcHBl bmQoKGNoYXIqKShzLT5kYXRhKSk7CisrICAgIHRfc3RyLmFwcGVuZCgoY29uc3QgY2hhciopIEFT TjFfU1RSSU5HX2dldDBfZGF0YShzKSk7CisgICB9CisgICBlbHNlIHsvL1ZfQVNOMV9HRU5FUkFM SVpFRFRJTUUKKy0gICAgdF9zdHIuYXBwZW5kKChjaGFyKikocy0+ZGF0YSkpOworKyAgICB0X3N0 ci5hcHBlbmQoKGNvbnN0IGNoYXIqKSBBU04xX1NUUklOR19nZXQwX2RhdGEocykpOworICAgfQor ICAgcmV0dXJuIFRpbWUodF9zdHIpOworIH0KKy0tIAorMi41NC4wCisKCmRpZmYgLS1naXQgYS9u b3JkdWdyaWQtYXJjLnNwZWMgYi9ub3JkdWdyaWQtYXJjLnNwZWMKaW5kZXggY2E5OTdhZC4uYWE1 YmM3NyAxMDA2NDQKLS0tIGEvbm9yZHVncmlkLWFyYy5zcGVjCisrKyBiL25vcmR1Z3JpZC1hcmMu c3BlYwpAQCAtMzQsNyArMzQsMTAgQEAgU291cmNlOgkJaHR0cHM6Ly9kb3dubG9hZC5ub3JkdWdy aWQub3JnL3BhY2thZ2VzLyV7bmFtZX0vcmVsZWFzZXMvJXt2ZXJzaW9ufS9zcmMKICMJCWh0dHBz Oi8vZ2l0aHViLmNvbS9ub3JkdWdyaWQvYXJjL3B1bGwvMTUKICMJCWh0dHBzOi8vc291cmNlLmNv ZGVyZWZpbmVyeS5vcmcvbm9yZHVncmlkL2FyYy8tL21lcmdlX3JlcXVlc3RzLzE5NjQKIFBhdGNo MDoJCTAwMDEtSGFuZGxlLVB5dGhvbi1tdWx0aS1waGFzZS1pbml0aWFsaXphdGlvbi1zdXBwb3J0 LWluLS5wYXRjaAorIwkJaHR0cHM6Ly9zb3VyY2UuY29kZXJlZmluZXJ5Lm9yZy9ub3JkdWdyaWQv YXJjLy0vbWVyZ2VfcmVxdWVzdHMvMTk3MQogUGF0Y2gxOgkJMDAwMS1GaXgtY29tcGlsYXRpb24t d2l0aC1QeXRob24tMy4xNS5wYXRjaAorIwkJaHR0cHM6Ly9zb3VyY2UuY29kZXJlZmluZXJ5Lm9y Zy9ub3JkdWdyaWQvYXJjLy0vbWVyZ2VfcmVxdWVzdHMvMTk5NworUGF0Y2gyOgkJMDAwMS1TdXBw b3J0LU9wZW5TU0wtNC5wYXRjaAogCiAjCQlQYWNrYWdlcyBkcm9wcGVkIHdpdGhvdXQgcmVwbGFj ZW1lbnRzCiBPYnNvbGV0ZXM6CSV7bmFtZX0tYXJjcHJveHlhbHQgPCA2LjAuMApAQCAtNzEsMTAg Kzc0LDEwIEBAIEJ1aWxkUmVxdWlyZXM6CXN5c3RlbWQtcnBtLW1hY3JvcwogQnVpbGRSZXF1aXJl czoJc3lzdGVtZC1kZXZlbAogQnVpbGRSZXF1aXJlczoJbGlidXVpZC1kZXZlbAogQnVpbGRSZXF1 aXJlczoJZ2V0dGV4dC1kZXZlbAotQnVpbGRSZXF1aXJlczoJcHl0aG9uJXtweXRob24zX3BrZ3Zl cnNpb259LWRldmVsCi1CdWlsZFJlcXVpcmVzOglweXRob24le3B5dGhvbjNfcGtndmVyc2lvbn0t cGlwCi1CdWlsZFJlcXVpcmVzOglweXRob24le3B5dGhvbjNfcGtndmVyc2lvbn0tc2V0dXB0b29s cwotQnVpbGRSZXF1aXJlczoJcHl0aG9uJXtweXRob24zX3BrZ3ZlcnNpb259LXdoZWVsCitCdWls ZFJlcXVpcmVzOglweXRob24zLWRldmVsCitCdWlsZFJlcXVpcmVzOglweXRob24zLXBpcAorQnVp bGRSZXF1aXJlczoJcHl0aG9uMy1zZXR1cHRvb2xzCitCdWlsZFJlcXVpcmVzOglweXRob24zLXdo ZWVsCiAlaWYgJXt3aXRoX3B5bGludH0KIEJ1aWxkUmVxdWlyZXM6CXB5bGludAogJWVuZGlmCkBA IC00NTAsNyArNDUzLDcgQEAgc2l0ZXMsIHRvIGJlIHVzZWQgd2l0aCBhIGxvY2FsIGluc3RhbGxh dGlvbiBvZiB0aGUgQVJDIENvbnRyb2wgVG93ZXIuCiAlcGFja2FnZSBwbHVnaW5zLXB5dGhvbgog U3VtbWFyeToJQVJDIFB5dGhvbiBkZXBlbmRlbnQgcGx1Z2luCiBSZXF1aXJlczoJJXtuYW1lfSA9 ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQotUmVxdWlyZXM6CXB5dGhvbiV7cHl0aG9uM19wa2d2ZXJz aW9ufS0le25hbWV9ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9CitSZXF1aXJlczoJcHl0aG9uMy0l e25hbWV9ID0gJXt2ZXJzaW9ufS0le3JlbGVhc2V9CiAKICVkZXNjcmlwdGlvbiBwbHVnaW5zLXB5 dGhvbgogTm9yZHVHcmlkIGlzIGEgY29sbGFib3JhdGlvbiBhaW1pbmcgYXQgZGV2ZWxvcG1lbnQs IG1haW50ZW5hbmNlIGFuZApAQCAtNDc3LDEyICs0ODAsMTIgQEAgQ29ubmVjdG9yIChBUkMpLgog CiBIZWFkZXIgZmlsZXMgYW5kIGxpYnJhcmllcyBuZWVkZWQgdG8gZGV2ZWxvcCBhcHBsaWNhdGlv bnMgdXNpbmcgQVJDLgogCi0lcGFja2FnZSAtbiBweXRob24le3B5dGhvbjNfcGtndmVyc2lvbn0t JXtuYW1lfQorJXBhY2thZ2UgLW4gcHl0aG9uMy0le25hbWV9CiBTdW1tYXJ5OglBUkMgUHl0aG9u IDMgd3JhcHBlcgotJXs/cHl0aG9uX3Byb3ZpZGU6JXB5dGhvbl9wcm92aWRlIHB5dGhvbiV7cHl0 aG9uM19wa2d2ZXJzaW9ufS0le25hbWV9fQorJXs/cHl0aG9uX3Byb3ZpZGU6JXB5dGhvbl9wcm92 aWRlIHB5dGhvbjMtJXtuYW1lfX0KIFJlcXVpcmVzOgkle25hbWV9ID0gJXt2ZXJzaW9ufS0le3Jl bGVhc2V9CiAKLSVkZXNjcmlwdGlvbiAtbiBweXRob24le3B5dGhvbjNfcGtndmVyc2lvbn0tJXtu YW1lfQorJWRlc2NyaXB0aW9uIC1uIHB5dGhvbjMtJXtuYW1lfQogTm9yZHVHcmlkIGlzIGEgY29s bGFib3JhdGlvbiBhaW1pbmcgYXQgZGV2ZWxvcG1lbnQsIG1haW50ZW5hbmNlIGFuZAogc3VwcG9y dCBvZiB0aGUgbWlkZGxld2FyZSwga25vd24gYXMgdGhlIEFkdmFuY2VkIFJlc291cmNlCiBDb25u ZWN0b3IgKEFSQykuCkBAIC01MjksMTIgKzUzMiwxMiBAQCBDb25uZWN0b3IgKEFSQykuCiBUaGlz IHBhY2thZ2UgY29udGFpbnMgdGhlIG9wdGlvbmFsIGNvbXBvbmVudHMgdGhhdCBwcm92aWRlIG5l dyBqb2IKIG1hbmFnZW1lbnQgZmVhdHVyZXMgb24gdGhlIHdvcmtlciBub2RlcyAoV04pLgogCi0l cGFja2FnZSAtbiBweXRob24le3B5dGhvbjNfcGtndmVyc2lvbn0tYXJjcmVzdAorJXBhY2thZ2Ug LW4gcHl0aG9uMy1hcmNyZXN0CiBTdW1tYXJ5OglBUkMgUkVTVCBjbGllbnQKLSV7P3B5dGhvbl9w cm92aWRlOiVweXRob25fcHJvdmlkZSBweXRob24le3B5dGhvbjNfcGtndmVyc2lvbn0tYXJjcmVz dH0KKyV7P3B5dGhvbl9wcm92aWRlOiVweXRob25fcHJvdmlkZSBweXRob24zLWFyY3Jlc3R9CiBC dWlsZEFyY2g6CW5vYXJjaAogCi0lZGVzY3JpcHRpb24gLW4gcHl0aG9uJXtweXRob24zX3BrZ3Zl cnNpb259LWFyY3Jlc3QKKyVkZXNjcmlwdGlvbiAtbiBweXRob24zLWFyY3Jlc3QKIE5vcmR1R3Jp ZCBpcyBhIGNvbGxhYm9yYXRpb24gYWltaW5nIGF0IGRldmVsb3BtZW50LCBtYWludGVuYW5jZSBh bmQKIHN1cHBvcnQgb2YgdGhlIG1pZGRsZXdhcmUsIGtub3duIGFzIHRoZSBBZHZhbmNlZCBSZXNv dXJjZQogQ29ubmVjdG9yIChBUkMpLgpAQCAtNTU4LDYgKzU2MSw3IEBAIHB1Ymxpc2hlcyBtZXRy aWNzIGFib3V0IGpvYnMgYW5kIGRhdGFzdGFnaW5nIG9uIHRoZSBBUkMtQ0UuCiAlc2V0dXAgLXEK ICVwYXRjaCAtUDAgLXAxCiAlcGF0Y2ggLVAxIC1wMQorJXBhdGNoIC1QMiAtcDEKIAogJWJ1aWxk CiBhdXRvcmVjb25mIC12IC1mIC1pCkBAIC0xMTEyLDcgKzExMTYsNyBAQCBzZW1hbmFnZSBmY29u dGV4dCAtYSAtdCBzbGFwZF92YXJfcnVuX3QgIi92YXIvcnVuL2FyYy9iZGlpL2RiKC8uKik/IiAy Pi9kZXYvbnVsbAogJXtfYmluZGlyfS9hcmNwbHVnaW4KICVkb2MgJXtfbWFuZGlyfS9tYW4xL2Fy Y3BsdWdpbi4xKgogCi0lZmlsZXMgLW4gcHl0aG9uJXtweXRob24zX3BrZ3ZlcnNpb259LSV7bmFt ZX0KKyVmaWxlcyAtbiBweXRob24zLSV7bmFtZX0KICV7cHl0aG9uM19zaXRlYXJjaH0vX2FyYy4q c28KICV7cHl0aG9uM19zaXRlYXJjaH0vJXtwa2dkaXJ9L1teX3BdKi5weQogJXtweXRob24zX3Np dGVhcmNofS8le3BrZ2Rpcn0vX19weWNhY2hlX18vW15fcF0qLioKQEAgLTExMjcsNyArMTEzMSw3 IEBAIHNlbWFuYWdlIGZjb250ZXh0IC1hIC10IHNsYXBkX3Zhcl9ydW5fdCAiL3Zhci9ydW4vYXJj L2JkaWkvZGIoLy4qKT8iIDI+L2Rldi9udWxsCiAlZmlsZXMgd24KICVhdHRyKDQ3NTUscm9vdCxy b290KSAle19iaW5kaXJ9L2FyYy1qb2ItY2dyb3VwCiAKLSVmaWxlcyAtbiBweXRob24le3B5dGhv bjNfcGtndmVyc2lvbn0tYXJjcmVzdAorJWZpbGVzIC1uIHB5dGhvbjMtYXJjcmVzdAogJXtweXRo b24zX3NpdGVsaWJ9L3B5YXJjcmVzdAogJXtweXRob24zX3NpdGVsaWJ9L3B5YXJjcmVzdC0qLiot aW5mbwogJXtfYmluZGlyfS9hcmNyZXN0CkBAIC0xMTQzLDcgKzExNDcsNyBAQCBzZW1hbmFnZSBm Y29udGV4dCAtYSAtdCBzbGFwZF92YXJfcnVuX3QgIi92YXIvcnVuL2FyYy9iZGlpL2RiKC8uKik/ IiAyPi9kZXYvbnVsbAogLSBSZWJ1aWx0IGZvciBQeXRob24gMy4xNQogCiAqIFR1ZSBNYXkgMTkg MjAyNiBNYXR0aWFzIEVsbGVydCA8bWF0dGlhcy5lbGxlcnRAcGh5c2ljcy51dS5zZT4gLSA3LjEu Mi0xCi0tIFVwZGF0ZSB0byB2ZXJzaW9uIDcuMS4KKy0gVXBkYXRlIHRvIHZlcnNpb24gNy4xLjIK IAogKiBXZWQgQXByIDIyIDIwMjYgTWF0dGlhcyBFbGxlcnQgPG1hdHRpYXMuZWxsZXJ0QHBoeXNp Y3MudXUuc2U+IC0gNy4xLjEtNQogLSBSZWJ1aWx0IGZvciB4cm9vdGQgNgo=