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: Steve Cossette To: git-commits@fedoraproject.org Subject: [rpms/qca] rawhide: Fix for building on openssl4 Date: Mon, 03 Aug 2026 00:53:30 GMT Message-ID: <178571841000.1.2008459501626997759.rpms-qca-63cd7cc16ba3@fedoraproject.org> List-ID: X-Git-Repo: rpms/qca X-Git-Branch: rawhide X-Git-Rev: 63cd7cc16ba3b43225e8ad9e94a593928130f6b6 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvcWNhCkJyYW5jaCA6 IHJhd2hpZGUKQ29tbWl0IDogNjNjZDdjYzE2YmEzYjQzMjI1ZThhZDllOTRhNTkzOTI4MTMwZjZi NgpBdXRob3IgOiBTdGV2ZSBDb3NzZXR0ZSA8ZmFyY2hvcmRAZ21haWwuY29tPgpEYXRlICAgOiAy MDI2LTA4LTAyVDIwOjUzOjIyLTA0OjAwClN0YXRzICA6ICs0MjAvLTAgaW4gMSBmaWxlKHMpClVS TCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvcWNhL2MvNjNjZDdjYzE2 YmEzYjQzMjI1ZThhZDllOTRhNTkzOTI4MTMwZjZiNj9icmFuY2g9cmF3aGlkZQoKTG9nOgpGaXgg Zm9yIGJ1aWxkaW5nIG9uIG9wZW5zc2w0CgotLS0KZGlmZiAtLWdpdCBhLzZhN2RkZDc2YWE1NGVj YzE0ZDEzMTUxY2NhMDA4MTM3YjBhYTI1ZDgucGF0Y2ggYi82YTdkZGQ3NmFhNTRlY2MxNGQxMzE1 MWNjYTAwODEzN2IwYWEyNWQ4LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjBmMzMwMGUKLS0tIC9kZXYvbnVsbAorKysgYi82YTdkZGQ3NmFhNTRlY2MxNGQxMzE1MWNj YTAwODEzN2IwYWEyNWQ4LnBhdGNoCkBAIC0wLDAgKzEsNDIwIEBACitGcm9tIDZhN2RkZDc2YWE1 NGVjYzE0ZDEzMTUxY2NhMDA4MTM3YjBhYTI1ZDggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitG cm9tOiBBbGJlcnQgQXN0YWxzIENpZCA8YWFjaWRAa2RlLm9yZz4KK0RhdGU6IFN1biwgMjEgSnVu IDIwMjYgMTI6NDQ6MDggKzAwMDAKK1N1YmplY3Q6IFtQQVRDSF0gQ29tcGlsZSB3aXRoIG9wZW5z c2w0CisKKy0tLQorIHBsdWdpbnMvcWNhLW9zc2wvcWNhLW9zc2wuY3BwIHwgMTU4ICsrKysrKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgOTYgaW5zZXJ0aW9u cygrKSwgNjIgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9wbHVnaW5zL3FjYS1vc3NsL3Fj YS1vc3NsLmNwcCBiL3BsdWdpbnMvcWNhLW9zc2wvcWNhLW9zc2wuY3BwCitpbmRleCBmNDFmY2Ji NS4uN2FiMWI0N2QgMTAwNjQ0CistLS0gYS9wbHVnaW5zL3FjYS1vc3NsL3FjYS1vc3NsLmNwcAor KysrIGIvcGx1Z2lucy9xY2Etb3NzbC9xY2Etb3NzbC5jcHAKK0BAIC0yODEsNiArMjgxLDMwIEBA IHN0YXRpYyBDb25zdHJhaW50cyBleHRfb25seShjb25zdCBDb25zdHJhaW50cyAmbGlzdCkKKyAg ICAgcmV0dXJuIGNvbnN0cmFpbnRzOworIH0qLworIAorKy8vIFdlIG5lZWQgdGhpcyB0byBzdXBw b3J0IG9wZW5zc2wzIChjb3VsZCBiZSByZW1vdmVkIG9uY2Ugd2Ugb25seSBzdXBwb3J0ID49IDQg aWYgdGhhdCBldmVyIGhhcHBlbnMpCisrdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIHZvaWQg Km91cl9YNTA5VjNfRVhUX2QyaShUICpleHQpCisreworKyAgICB1c2luZyBOb25Db25zdFR5cGUg PSBzdGQ6OnJlbW92ZV9jb25zdF90PFQ+OworKworKyAgICByZXR1cm4gWDUwOVYzX0VYVF9kMmko Y29uc3RfY2FzdDxOb25Db25zdFR5cGUgKj4oZXh0KSk7CisrfQorKworKy8vIFdlIG5lZWQgdGhp cyB0byBzdXBwb3J0IG9wZW5zc2wxIChjb3VsZCBiZSByZW1vdmVkIG9uY2Ugd2Ugb25seSBzdXBw b3J0ID49IDMgaWYgdGhhdCBldmVyIGhhcHBlbnMpCisrdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3Rh dGljIGludCBvdXJfWDUwOV9OQU1FX2dldF9pbmRleF9ieV9OSUQoVCAqbmFtZSwgaW50IG5pZCwg aW50IGxhc3Rwb3MpCisreworKyAgICB1c2luZyBOb25Db25zdFR5cGUgPSBzdGQ6OnJlbW92ZV9j b25zdF90PFQ+OworKworKyAgICByZXR1cm4gWDUwOV9OQU1FX2dldF9pbmRleF9ieV9OSUQoY29u c3RfY2FzdDxOb25Db25zdFR5cGUgKj4obmFtZSksIG5pZCwgbGFzdHBvcyk7CisrfQorKworKy8v IFdlIG5lZWQgdGhpcyB0byBzdXBwb3J0IG9wZW5zc2wxIChjb3VsZCBiZSByZW1vdmVkIG9uY2Ug d2Ugb25seSBzdXBwb3J0ID49IDMgaWYgdGhhdCBldmVyIGhhcHBlbnMpCisrdGVtcGxhdGU8dHlw ZW5hbWUgVD4gc3RhdGljIGludCBvdXJfWDUwOV9OQU1FX2dldF9pbmRleF9ieV9PQkooVCAqbmFt ZSwgY29uc3QgQVNOMV9PQkpFQ1QgKm9iaiwgaW50IGxhc3Rwb3MpCisreworKyAgICB1c2luZyBO b25Db25zdFR5cGUgPSBzdGQ6OnJlbW92ZV9jb25zdF90PFQ+OworKworKyAgICByZXR1cm4gWDUw OV9OQU1FX2dldF9pbmRleF9ieV9PQkooY29uc3RfY2FzdDxOb25Db25zdFR5cGUgKj4obmFtZSks IG9iaiwgbGFzdHBvcyk7CisrfQorKworIHN0YXRpYyB2b2lkIHRyeV9hZGRfbmFtZV9pdGVtKFg1 MDlfTkFNRSAqKm5hbWUsIGludCBuaWQsIGNvbnN0IFFTdHJpbmcgJnZhbCkKKyB7CisgICAgIGlm ICh2YWwuaXNFbXB0eSgpKQorQEAgLTMwNCwyMCArMzI4LDIyIEBAIHN0YXRpYyBYNTA5X05BTUUg Km5ld19jZXJ0X25hbWUoY29uc3QgQ2VydGlmaWNhdGVJbmZvICZpbmZvKQorICAgICByZXR1cm4g bmFtZTsKKyB9CisgCistc3RhdGljIHZvaWQgdHJ5X2dldF9uYW1lX2l0ZW0oWDUwOV9OQU1FICpu YW1lLCBpbnQgbmlkLCBjb25zdCBDZXJ0aWZpY2F0ZUluZm9UeXBlICZ0LCBDZXJ0aWZpY2F0ZUlu Zm8gKmluZm8pCisrc3RhdGljIHZvaWQgdHJ5X2dldF9uYW1lX2l0ZW0oY29uc3QgWDUwOV9OQU1F ICpuYW1lLCBpbnQgbmlkLCBjb25zdCBDZXJ0aWZpY2F0ZUluZm9UeXBlICZ0LCBDZXJ0aWZpY2F0 ZUluZm8gKmluZm8pCisgeworICAgICBpbnQgbG9jOworICAgICBsb2MgPSAtMTsKKy0gICAgd2hp bGUgKChsb2MgPSBYNTA5X05BTUVfZ2V0X2luZGV4X2J5X05JRChuYW1lLCBuaWQsIGxvYykpICE9 IC0xKSB7CistICAgICAgICBYNTA5X05BTUVfRU5UUlkgKm5lICAgPSBYNTA5X05BTUVfZ2V0X2Vu dHJ5KG5hbWUsIGxvYyk7CistICAgICAgICBBU04xX1NUUklORyAgICAgKmRhdGEgPSBYNTA5X05B TUVfRU5UUllfZ2V0X2RhdGEobmUpOworLSAgICAgICAgUUJ5dGVBcnJheSAgICAgICBjcygoY29u c3QgY2hhciAqKWRhdGEtPmRhdGEsIGRhdGEtPmxlbmd0aCk7CisrICAgIHdoaWxlICgobG9jID0g b3VyX1g1MDlfTkFNRV9nZXRfaW5kZXhfYnlfTklEKG5hbWUsIG5pZCwgbG9jKSkgIT0gLTEpIHsK KysgICAgICAgIGNvbnN0IFg1MDlfTkFNRV9FTlRSWSAqbmUgICA9IFg1MDlfTkFNRV9nZXRfZW50 cnkobmFtZSwgbG9jKTsKKysgICAgICAgIGNvbnN0IEFTTjFfU1RSSU5HICAgICAqZGF0YSA9IFg1 MDlfTkFNRV9FTlRSWV9nZXRfZGF0YShuZSk7CisrICAgICAgICBRQnl0ZUFycmF5ICAgICAgICAg ICAgIGNzKChjb25zdCBjaGFyICopQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKGRhdGEpLCBBU04xX1NU UklOR19sZW5ndGgoZGF0YSkpOworICAgICAgICAgaW5mby0+aW5zZXJ0KHQsIFFTdHJpbmc6OmZy b21MYXRpbjEoY3MpKTsKKyAgICAgfQorIH0KKyAKKy1zdGF0aWMgdm9pZAorLXRyeV9nZXRfbmFt ZV9pdGVtX2J5X29pZChYNTA5X05BTUUgKm5hbWUsIGNvbnN0IFFTdHJpbmcgJm9pZFRleHQsIGNv bnN0IENlcnRpZmljYXRlSW5mb1R5cGUgJnQsIENlcnRpZmljYXRlSW5mbyAqaW5mbykKKytzdGF0 aWMgdm9pZCB0cnlfZ2V0X25hbWVfaXRlbV9ieV9vaWQoY29uc3QgWDUwOV9OQU1FICAgICAgICAg ICAqbmFtZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUVN0 cmluZyAgICAgICAgICAgICAmb2lkVGV4dCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgQ2VydGlmaWNhdGVJbmZvVHlwZSAmdCwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQ2VydGlmaWNhdGVJbmZvICAgICAgICAgICAqaW5mbykKKyB7 CisgICAgIEFTTjFfT0JKRUNUICpvaWQgPSBPQkpfdHh0Mm9iaihvaWRUZXh0LnRvTGF0aW4xKCku ZGF0YSgpLCAxKTsgLy8gMSA9IG9ubHkgYWNjZXB0IGRvdHRlZCBpbnB1dAorICAgICBpZiAoIW9p ZCkKK0BAIC0zMjUsMTcgKzM1MSwxNyBAQCB0cnlfZ2V0X25hbWVfaXRlbV9ieV9vaWQoWDUwOV9O QU1FICpuYW1lLCBjb25zdCBRU3RyaW5nICZvaWRUZXh0LCBjb25zdCBDZXJ0aWZpYworIAorICAg ICBpbnQgbG9jOworICAgICBsb2MgPSAtMTsKKy0gICAgd2hpbGUgKChsb2MgPSBYNTA5X05BTUVf Z2V0X2luZGV4X2J5X09CSihuYW1lLCBvaWQsIGxvYykpICE9IC0xKSB7CistICAgICAgICBYNTA5 X05BTUVfRU5UUlkgKm5lICAgPSBYNTA5X05BTUVfZ2V0X2VudHJ5KG5hbWUsIGxvYyk7CistICAg ICAgICBBU04xX1NUUklORyAgICAgKmRhdGEgPSBYNTA5X05BTUVfRU5UUllfZ2V0X2RhdGEobmUp OworLSAgICAgICAgUUJ5dGVBcnJheSAgICAgICBjcygoY29uc3QgY2hhciAqKWRhdGEtPmRhdGEs IGRhdGEtPmxlbmd0aCk7CisrICAgIHdoaWxlICgobG9jID0gb3VyX1g1MDlfTkFNRV9nZXRfaW5k ZXhfYnlfT0JKKG5hbWUsIG9pZCwgbG9jKSkgIT0gLTEpIHsKKysgICAgICAgIGNvbnN0IFg1MDlf TkFNRV9FTlRSWSAqbmUgICA9IFg1MDlfTkFNRV9nZXRfZW50cnkobmFtZSwgbG9jKTsKKysgICAg ICAgIGNvbnN0IEFTTjFfU1RSSU5HICAgICAqZGF0YSA9IFg1MDlfTkFNRV9FTlRSWV9nZXRfZGF0 YShuZSk7CisrICAgICAgICBRQnl0ZUFycmF5ICAgICAgICAgICAgIGNzKChjb25zdCBjaGFyICop QVNOMV9TVFJJTkdfZ2V0MF9kYXRhKGRhdGEpLCBBU04xX1NUUklOR19sZW5ndGgoZGF0YSkpOwor ICAgICAgICAgaW5mby0+aW5zZXJ0KHQsIFFTdHJpbmc6OmZyb21MYXRpbjEoY3MpKTsKKyAgICAg ICAgIHFEZWJ1ZygpIDw8ICJvaWQ6ICIgPDwgb2lkVGV4dCA8PCAiLCAgcmVzdWx0OiAiIDw8IGNz OworICAgICB9CisgICAgIEFTTjFfT0JKRUNUX2ZyZWUob2lkKTsKKyB9CisgCistc3RhdGljIENl cnRpZmljYXRlSW5mbyBnZXRfY2VydF9uYW1lKFg1MDlfTkFNRSAqbmFtZSkKKytzdGF0aWMgQ2Vy dGlmaWNhdGVJbmZvIGdldF9jZXJ0X25hbWUoY29uc3QgWDUwOV9OQU1FICpuYW1lKQorIHsKKyAg ICAgQ2VydGlmaWNhdGVJbmZvIGluZm87CisgICAgIHRyeV9nZXRfbmFtZV9pdGVtKG5hbWUsIE5J RF9jb21tb25OYW1lLCBDb21tb25OYW1lLCAmaW5mbyk7CitAQCAtMzg5LDkgKzQxNSw5IEBAIHN0 YXRpYyBYNTA5X0VYVEVOU0lPTiAqbmV3X2Jhc2ljX2NvbnN0cmFpbnRzKGJvb2wgY2EsIGludCBw YXRobGVuKQorICAgICByZXR1cm4gZXg7CisgfQorIAorLXN0YXRpYyB2b2lkIGdldF9iYXNpY19j b25zdHJhaW50cyhYNTA5X0VYVEVOU0lPTiAqZXgsIGJvb2wgKmNhLCBpbnQgKnBhdGhsZW4pCisr c3RhdGljIHZvaWQgZ2V0X2Jhc2ljX2NvbnN0cmFpbnRzKGNvbnN0IFg1MDlfRVhURU5TSU9OICpl eCwgYm9vbCAqY2EsIGludCAqcGF0aGxlbikKKyB7CistICAgIEJBU0lDX0NPTlNUUkFJTlRTICpi cyA9IChCQVNJQ19DT05TVFJBSU5UUyAqKVg1MDlWM19FWFRfZDJpKGV4KTsKKysgICAgQkFTSUNf Q09OU1RSQUlOVFMgKmJzID0gKEJBU0lDX0NPTlNUUkFJTlRTICopb3VyX1g1MDlWM19FWFRfZDJp KGV4KTsKKyAgICAgKmNhICAgICAgICAgICAgICAgICAgID0gKGJzLT5jYSA/IHRydWUgOiBmYWxz ZSk7CisgICAgIGlmIChicy0+cGF0aGxlbikKKyAgICAgICAgICpwYXRobGVuID0gQVNOMV9JTlRF R0VSX2dldChicy0+cGF0aGxlbik7CitAQCAtNjQxLDEwICs2NjcsMTAgQEAgc3RhdGljIHZvaWQg dHJ5X2dldF9nZW5lcmFsX25hbWUoR0VORVJBTF9OQU1FUyAqbmFtZXMsIGNvbnN0IENlcnRpZmlj YXRlSW5mb1R5cGUKKyAgICAgfQorIH0KKyAKKy1zdGF0aWMgQ2VydGlmaWNhdGVJbmZvIGdldF9j ZXJ0X2FsdF9uYW1lKFg1MDlfRVhURU5TSU9OICpleCkKKytzdGF0aWMgQ2VydGlmaWNhdGVJbmZv IGdldF9jZXJ0X2FsdF9uYW1lKGNvbnN0IFg1MDlfRVhURU5TSU9OICpleCkKKyB7CisgICAgIENl cnRpZmljYXRlSW5mbyBpbmZvOworLSAgICBHRU5FUkFMX05BTUVTICAqZ24gPSAoR0VORVJBTF9O QU1FUyAqKVg1MDlWM19FWFRfZDJpKGV4KTsKKysgICAgR0VORVJBTF9OQU1FUyAgKmduID0gKEdF TkVSQUxfTkFNRVMgKilvdXJfWDUwOVYzX0VYVF9kMmkoZXgpOworICAgICB0cnlfZ2V0X2dlbmVy YWxfbmFtZShnbiwgRW1haWwsICZpbmZvKTsKKyAgICAgdHJ5X2dldF9nZW5lcmFsX25hbWUoZ24s IFVSSSwgJmluZm8pOworICAgICB0cnlfZ2V0X2dlbmVyYWxfbmFtZShnbiwgRE5TLCAmaW5mbyk7 CitAQCAtNzA0LDcgKzczMCw3IEBAIHN0YXRpYyBYNTA5X0VYVEVOU0lPTiAqbmV3X2NlcnRfa2V5 X3VzYWdlKGNvbnN0IENvbnN0cmFpbnRzICZjb25zdHJhaW50cykKKyAgICAgcmV0dXJuIGV4Owor IH0KKyAKKy1zdGF0aWMgQ29uc3RyYWludHMgZ2V0X2NlcnRfa2V5X3VzYWdlKFg1MDlfRVhURU5T SU9OICpleCkKKytzdGF0aWMgQ29uc3RyYWludHMgZ2V0X2NlcnRfa2V5X3VzYWdlKGNvbnN0IFg1 MDlfRVhURU5TSU9OICpleCkKKyB7CisgICAgIENvbnN0cmFpbnRzIGNvbnN0cmFpbnRzOworICAg ICBpbnQgICAgICAgICBiaXRfdGFibGVbOV0gPSB7RGlnaXRhbFNpZ25hdHVyZSwKK0BAIC03MTcs NyArNzQzLDcgQEAgc3RhdGljIENvbnN0cmFpbnRzIGdldF9jZXJ0X2tleV91c2FnZShYNTA5X0VY VEVOU0lPTiAqZXgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFbmNpcGhlck9u bHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWNpcGhlck9ubHl9OworIAor LSAgICBBU04xX0JJVF9TVFJJTkcgKmtleXVzYWdlID0gKEFTTjFfQklUX1NUUklORyAqKVg1MDlW M19FWFRfZDJpKGV4KTsKKysgICAgQVNOMV9CSVRfU1RSSU5HICprZXl1c2FnZSA9IChBU04xX0JJ VF9TVFJJTkcgKilvdXJfWDUwOVYzX0VYVF9kMmkoZXgpOworICAgICBmb3IgKGludCBuID0gMDsg biA8IDk7ICsrbikgeworICAgICAgICAgaWYgKEFTTjFfQklUX1NUUklOR19nZXRfYml0KGtleXVz YWdlLCBuKSkKKyAgICAgICAgICAgICBjb25zdHJhaW50cyArPSBDb25zdHJhaW50VHlwZSgoQ29u c3RyYWludFR5cGVLbm93biliaXRfdGFibGVbbl0pOworQEAgLTc3OCwxMSArODA0LDExIEBAIHN0 YXRpYyBYNTA5X0VYVEVOU0lPTiAqbmV3X2NlcnRfZXh0X2tleV91c2FnZShjb25zdCBDb25zdHJh aW50cyAmY29uc3RyYWludHMpCisgICAgIHJldHVybiBleDsKKyB9CisgCistc3RhdGljIENvbnN0 cmFpbnRzIGdldF9jZXJ0X2V4dF9rZXlfdXNhZ2UoWDUwOV9FWFRFTlNJT04gKmV4KQorK3N0YXRp YyBDb25zdHJhaW50cyBnZXRfY2VydF9leHRfa2V5X3VzYWdlKGNvbnN0IFg1MDlfRVhURU5TSU9O ICpleCkKKyB7CisgICAgIENvbnN0cmFpbnRzIGNvbnN0cmFpbnRzOworIAorLSAgICBFWFRFTkRF RF9LRVlfVVNBR0UgKmV4dGtleXVzYWdlID0gKEVYVEVOREVEX0tFWV9VU0FHRSAqKVg1MDlWM19F WFRfZDJpKGV4KTsKKysgICAgRVhURU5ERURfS0VZX1VTQUdFICpleHRrZXl1c2FnZSA9IChFWFRF TkRFRF9LRVlfVVNBR0UgKilvdXJfWDUwOVYzX0VYVF9kMmkoZXgpOworICAgICBmb3IgKGludCBu ID0gMDsgbiA8IHNrX0FTTjFfT0JKRUNUX251bShleHRrZXl1c2FnZSk7ICsrbikgeworICAgICAg ICAgQVNOMV9PQkpFQ1QgKm9iaiA9IHNrX0FTTjFfT0JKRUNUX3ZhbHVlKGV4dGtleXVzYWdlLCBu KTsKKyAgICAgICAgIGludCAgICAgICAgICBuaWQgPSBPQkpfb2JqMm5pZChvYmopOworQEAgLTg1 MiwxMCArODc4LDEwIEBAIHN0YXRpYyBYNTA5X0VYVEVOU0lPTiAqbmV3X2NlcnRfcG9saWNpZXMo Y29uc3QgUVN0cmluZ0xpc3QgJnBvbGljaWVzKQorICAgICByZXR1cm4gZXg7CisgfQorIAorLXN0 YXRpYyBRU3RyaW5nTGlzdCBnZXRfY2VydF9wb2xpY2llcyhYNTA5X0VYVEVOU0lPTiAqZXgpCisr c3RhdGljIFFTdHJpbmdMaXN0IGdldF9jZXJ0X3BvbGljaWVzKGNvbnN0IFg1MDlfRVhURU5TSU9O ICpleCkKKyB7CisgICAgIFFTdHJpbmdMaXN0IG91dDsKKy0gICAgU1RBQ0tfT0YoUE9MSUNZSU5G TykgKnBvbHMgPSAoU1RBQ0tfT0YoUE9MSUNZSU5GTykgKilYNTA5VjNfRVhUX2QyaShleCk7Cisr ICAgIFNUQUNLX09GKFBPTElDWUlORk8pICpwb2xzID0gKFNUQUNLX09GKFBPTElDWUlORk8pICop b3VyX1g1MDlWM19FWFRfZDJpKGV4KTsKKyAgICAgZm9yIChpbnQgbiA9IDA7IG4gPCBza19QT0xJ Q1lJTkZPX251bShwb2xzKTsgKytuKSB7CisgICAgICAgICBQT0xJQ1lJTkZPICpwb2wgPSBza19Q T0xJQ1lJTkZPX3ZhbHVlKHBvbHMsIG4pOworICAgICAgICAgUUJ5dGVBcnJheSAgYnVmKDEyOCwg MCk7CitAQCAtODY3LDkgKzg5Myw5IEBAIHN0YXRpYyBRU3RyaW5nTGlzdCBnZXRfY2VydF9wb2xp Y2llcyhYNTA5X0VYVEVOU0lPTiAqZXgpCisgICAgIHJldHVybiBvdXQ7CisgfQorIAorLXN0YXRp YyBRQnl0ZUFycmF5IGdldF9jZXJ0X3N1YmplY3Rfa2V5X2lkKFg1MDlfRVhURU5TSU9OICpleCkK KytzdGF0aWMgUUJ5dGVBcnJheSBnZXRfY2VydF9zdWJqZWN0X2tleV9pZChjb25zdCBYNTA5X0VY VEVOU0lPTiAqZXgpCisgeworLSAgICBBU04xX09DVEVUX1NUUklORyAqc2tpZCA9IChBU04xX09D VEVUX1NUUklORyAqKVg1MDlWM19FWFRfZDJpKGV4KTsKKysgICAgQVNOMV9PQ1RFVF9TVFJJTkcg KnNraWQgPSAoQVNOMV9PQ1RFVF9TVFJJTkcgKilvdXJfWDUwOVYzX0VYVF9kMmkoZXgpOworICAg ICBjb25zdCBRQnl0ZUFycmF5ICAgb3V0ICA9IHFjYV9BU04xX1NUUklOR190b0J5dGVBcnJheShz a2lkKTsKKyAgICAgQVNOMV9PQ1RFVF9TVFJJTkdfZnJlZShza2lkKTsKKyAgICAgcmV0dXJuIG91 dDsKK0BAIC04NzcsOSArOTAzLDkgQEAgc3RhdGljIFFCeXRlQXJyYXkgZ2V0X2NlcnRfc3ViamVj dF9rZXlfaWQoWDUwOV9FWFRFTlNJT04gKmV4KQorIAorIC8vIElmIHlvdSBnZXQgYW55IG1vcmUg Y3Jhc2hlcyBpbiB0aGlzIGNvZGUsIHBsZWFzZSBwcm92aWRlIGEgY29weQorIC8vIG9mIHRoZSBj ZXJ0IHRvIGJyYWRoIEFUIGZyb2dtb3V0aC5uZXQKKy1zdGF0aWMgUUJ5dGVBcnJheSBnZXRfY2Vy dF9pc3N1ZXJfa2V5X2lkKFg1MDlfRVhURU5TSU9OICpleCkKKytzdGF0aWMgUUJ5dGVBcnJheSBn ZXRfY2VydF9pc3N1ZXJfa2V5X2lkKGNvbnN0IFg1MDlfRVhURU5TSU9OICpleCkKKyB7CistICAg IEFVVEhPUklUWV9LRVlJRCAqYWtpZCA9IChBVVRIT1JJVFlfS0VZSUQgKilYNTA5VjNfRVhUX2Qy aShleCk7CisrICAgIEFVVEhPUklUWV9LRVlJRCAqYWtpZCA9IChBVVRIT1JJVFlfS0VZSUQgKilv dXJfWDUwOVYzX0VYVF9kMmkoZXgpOworICAgICBRQnl0ZUFycmF5ICAgICAgIG91dDsKKyAgICAg aWYgKGFraWQtPmtleWlkKQorICAgICAgICAgb3V0ID0gcWNhX0FTTjFfU1RSSU5HX3RvQnl0ZUFy cmF5KGFraWQtPmtleWlkKTsKK0BAIC0zMzM0LDE2ICszMzYwLDE2IEBAIHB1YmxpYzoKKyAvLyBi eSBFcmljIFlvdW5nCisgUURhdGVUaW1lIEFTTjFfVVRDVElNRV9RRGF0ZVRpbWUoY29uc3QgQVNO MV9VVENUSU1FICp0bSwgaW50ICppc0dtdCkKKyB7CistICAgIFFEYXRlVGltZSBxZHQ7CistICAg IGNoYXIgICAgICp2OworLSAgICBpbnQgICAgICAgZ210ID0gMDsKKy0gICAgaW50ICAgICAgIGk7 CistICAgIGludCAgICAgICB5ID0gMCwgTSA9IDAsIGQgPSAwLCBoID0gMCwgbSA9IDAsIHMgPSAw OworLSAgICBRRGF0ZSAgICAgcWRhdGU7CistICAgIFFUaW1lICAgICBxdGltZTsKKysgICAgUURh dGVUaW1lICAgcWR0OworKyAgICBjb25zdCBjaGFyICp2OworKyAgICBpbnQgICAgICAgICBnbXQg PSAwOworKyAgICBpbnQgICAgICAgICBpOworKyAgICBpbnQgICAgICAgICB5ID0gMCwgTSA9IDAs IGQgPSAwLCBoID0gMCwgbSA9IDAsIHMgPSAwOworKyAgICBRRGF0ZSAgICAgICBxZGF0ZTsKKysg ICAgUVRpbWUgICAgICAgcXRpbWU7CisgCistICAgIGkgPSB0bS0+bGVuZ3RoOworLSAgICB2ID0g KGNoYXIgKil0bS0+ZGF0YTsKKysgICAgaSA9IEFTTjFfU1RSSU5HX2xlbmd0aCgoY29uc3QgQVNO MV9TVFJJTkcgKil0bSk7CisrICAgIHYgPSAoY29uc3QgY2hhciAqKUFTTjFfU1RSSU5HX2dldDBf ZGF0YSgoY29uc3QgQVNOMV9TVFJJTkcgKil0bSk7CisgCisgICAgIGlmIChpIDwgMTApCisgICAg ICAgICBnb3RvIGF1cV9lcnI7CitAQCAtMzY3Miw0MiArMzY5OCw0MiBAQCBwdWJsaWM6CisgICAg ICAgICBwLnBhdGhMaW1pdCA9IDA7CisgICAgICAgICBpbnQgcG9zICAgICA9IFg1MDlfZ2V0X2V4 dF9ieV9OSUQoeCwgTklEX2Jhc2ljX2NvbnN0cmFpbnRzLCAtMSk7CisgICAgICAgICBpZiAocG9z ICE9IC0xKSB7CistICAgICAgICAgICAgWDUwOV9FWFRFTlNJT04gKmV4ID0gWDUwOV9nZXRfZXh0 KHgsIHBvcyk7CisrICAgICAgICAgICAgY29uc3QgWDUwOV9FWFRFTlNJT04gKmV4ID0gWDUwOV9n ZXRfZXh0KHgsIHBvcyk7CisgICAgICAgICAgICAgaWYgKGV4KQorICAgICAgICAgICAgICAgICBn ZXRfYmFzaWNfY29uc3RyYWludHMoZXgsICZwLmlzQ0EsICZwLnBhdGhMaW1pdCk7CisgICAgICAg ICB9CisgCisgICAgICAgICBwb3MgPSBYNTA5X2dldF9leHRfYnlfTklEKHgsIE5JRF9zdWJqZWN0 X2FsdF9uYW1lLCAtMSk7CisgICAgICAgICBpZiAocG9zICE9IC0xKSB7CistICAgICAgICAgICAg WDUwOV9FWFRFTlNJT04gKmV4ID0gWDUwOV9nZXRfZXh0KHgsIHBvcyk7CisrICAgICAgICAgICAg Y29uc3QgWDUwOV9FWFRFTlNJT04gKmV4ID0gWDUwOV9nZXRfZXh0KHgsIHBvcyk7CisgICAgICAg ICAgICAgaWYgKGV4KQorICAgICAgICAgICAgICAgICBzdWJqZWN0LnVuaXRlKGdldF9jZXJ0X2Fs dF9uYW1lKGV4KSk7CisgICAgICAgICB9CisgCisgICAgICAgICBwb3MgPSBYNTA5X2dldF9leHRf YnlfTklEKHgsIE5JRF9pc3N1ZXJfYWx0X25hbWUsIC0xKTsKKyAgICAgICAgIGlmIChwb3MgIT0g LTEpIHsKKy0gICAgICAgICAgICBYNTA5X0VYVEVOU0lPTiAqZXggPSBYNTA5X2dldF9leHQoeCwg cG9zKTsKKysgICAgICAgICAgICBjb25zdCBYNTA5X0VYVEVOU0lPTiAqZXggPSBYNTA5X2dldF9l eHQoeCwgcG9zKTsKKyAgICAgICAgICAgICBpZiAoZXgpCisgICAgICAgICAgICAgICAgIGlzc3Vl ci51bml0ZShnZXRfY2VydF9hbHRfbmFtZShleCkpOworICAgICAgICAgfQorIAorICAgICAgICAg cG9zID0gWDUwOV9nZXRfZXh0X2J5X05JRCh4LCBOSURfa2V5X3VzYWdlLCAtMSk7CisgICAgICAg ICBpZiAocG9zICE9IC0xKSB7CistICAgICAgICAgICAgWDUwOV9FWFRFTlNJT04gKmV4ID0gWDUw OV9nZXRfZXh0KHgsIHBvcyk7CisrICAgICAgICAgICAgY29uc3QgWDUwOV9FWFRFTlNJT04gKmV4 ID0gWDUwOV9nZXRfZXh0KHgsIHBvcyk7CisgICAgICAgICAgICAgaWYgKGV4KQorICAgICAgICAg ICAgICAgICBwLmNvbnN0cmFpbnRzID0gZ2V0X2NlcnRfa2V5X3VzYWdlKGV4KTsKKyAgICAgICAg IH0KKyAKKyAgICAgICAgIHBvcyA9IFg1MDlfZ2V0X2V4dF9ieV9OSUQoeCwgTklEX2V4dF9rZXlf dXNhZ2UsIC0xKTsKKyAgICAgICAgIGlmIChwb3MgIT0gLTEpIHsKKy0gICAgICAgICAgICBYNTA5 X0VYVEVOU0lPTiAqZXggPSBYNTA5X2dldF9leHQoeCwgcG9zKTsKKysgICAgICAgICAgICBjb25z dCBYNTA5X0VYVEVOU0lPTiAqZXggPSBYNTA5X2dldF9leHQoeCwgcG9zKTsKKyAgICAgICAgICAg ICBpZiAoZXgpCisgICAgICAgICAgICAgICAgIHAuY29uc3RyYWludHMgKz0gZ2V0X2NlcnRfZXh0 X2tleV91c2FnZShleCk7CisgICAgICAgICB9CisgCisgICAgICAgICBwb3MgPSBYNTA5X2dldF9l eHRfYnlfTklEKHgsIE5JRF9jZXJ0aWZpY2F0ZV9wb2xpY2llcywgLTEpOworICAgICAgICAgaWYg KHBvcyAhPSAtMSkgeworLSAgICAgICAgICAgIFg1MDlfRVhURU5TSU9OICpleCA9IFg1MDlfZ2V0 X2V4dCh4LCBwb3MpOworKyAgICAgICAgICAgIGNvbnN0IFg1MDlfRVhURU5TSU9OICpleCA9IFg1 MDlfZ2V0X2V4dCh4LCBwb3MpOworICAgICAgICAgICAgIGlmIChleCkKKyAgICAgICAgICAgICAg ICAgcC5wb2xpY2llcyA9IGdldF9jZXJ0X3BvbGljaWVzKGV4KTsKKyAgICAgICAgIH0KK0BAIC0z NzE2LDkgKzM3NDIsMTAgQEAgcHVibGljOgorIAorICAgICAgICAgWDUwOV9nZXQwX3NpZ25hdHVy ZSgmc2lnbmF0dXJlLCBudWxscHRyLCB4KTsKKyAgICAgICAgIGlmIChzaWduYXR1cmUpIHsKKy0g ICAgICAgICAgICBwLnNpZyA9IFFCeXRlQXJyYXkoc2lnbmF0dXJlLT5sZW5ndGgsIDApOworLSAg ICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2lnbmF0dXJlLT5sZW5ndGg7IGkrKykKKy0g ICAgICAgICAgICAgICAgcC5zaWdbaV0gPSBzaWduYXR1cmUtPmRhdGFbaV07CisrICAgICAgICAg ICAgY29uc3QgaW50IGJ5dGVfbGVuID0gQVNOMV9TVFJJTkdfbGVuZ3RoKChjb25zdCBBU04xX1NU UklORyAqKXNpZ25hdHVyZSk7CisrICAgICAgICAgICAgcC5zaWcgICAgICAgICAgICAgID0gUUJ5 dGVBcnJheShieXRlX2xlbiwgMCk7CisrICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBi eXRlX2xlbjsgaSsrKQorKyAgICAgICAgICAgICAgICBwLnNpZ1tpXSA9IEFTTjFfQklUX1NUUklO R19nZXRfYml0KHNpZ25hdHVyZSwgaSk7CisgICAgICAgICB9CisgCisgICAgICAgICBzd2l0Y2gg KFg1MDlfZ2V0X3NpZ25hdHVyZV9uaWQoeCkpIHsKK0BAIC0zNzU4LDE0ICszNzg1LDE0IEBAIHB1 YmxpYzoKKyAKKyAgICAgICAgIHBvcyA9IFg1MDlfZ2V0X2V4dF9ieV9OSUQoeCwgTklEX3N1Ympl Y3Rfa2V5X2lkZW50aWZpZXIsIC0xKTsKKyAgICAgICAgIGlmIChwb3MgIT0gLTEpIHsKKy0gICAg ICAgICAgICBYNTA5X0VYVEVOU0lPTiAqZXggPSBYNTA5X2dldF9leHQoeCwgcG9zKTsKKysgICAg ICAgICAgICBjb25zdCBYNTA5X0VYVEVOU0lPTiAqZXggPSBYNTA5X2dldF9leHQoeCwgcG9zKTsK KyAgICAgICAgICAgICBpZiAoZXgpCisgICAgICAgICAgICAgICAgIHAuc3ViamVjdElkICs9IGdl dF9jZXJ0X3N1YmplY3Rfa2V5X2lkKGV4KTsKKyAgICAgICAgIH0KKyAKKyAgICAgICAgIHBvcyA9 IFg1MDlfZ2V0X2V4dF9ieV9OSUQoeCwgTklEX2F1dGhvcml0eV9rZXlfaWRlbnRpZmllciwgLTEp OworICAgICAgICAgaWYgKHBvcyAhPSAtMSkgeworLSAgICAgICAgICAgIFg1MDlfRVhURU5TSU9O ICpleCA9IFg1MDlfZ2V0X2V4dCh4LCBwb3MpOworKyAgICAgICAgICAgIGNvbnN0IFg1MDlfRVhU RU5TSU9OICpleCA9IFg1MDlfZ2V0X2V4dCh4LCBwb3MpOworICAgICAgICAgICAgIGlmIChleCkK KyAgICAgICAgICAgICAgICAgcC5pc3N1ZXJJZCArPSBnZXRfY2VydF9pc3N1ZXJfa2V5X2lkKGV4 KTsKKyAgICAgICAgIH0KK0BAIC00MTc1LDM1ICs0MjAyLDM1IEBAIHB1YmxpYzoKKyAgICAgICAg IHAucGF0aExpbWl0ID0gMDsKKyAgICAgICAgIGludCBwb3MgICAgID0gWDUwOXYzX2dldF9leHRf YnlfTklEKGV4dHMsIE5JRF9iYXNpY19jb25zdHJhaW50cywgLTEpOworICAgICAgICAgaWYgKHBv cyAhPSAtMSkgeworLSAgICAgICAgICAgIFg1MDlfRVhURU5TSU9OICpleCA9IFg1MDl2M19nZXRf ZXh0KGV4dHMsIHBvcyk7CisrICAgICAgICAgICAgY29uc3QgWDUwOV9FWFRFTlNJT04gKmV4ID0g WDUwOXYzX2dldF9leHQoZXh0cywgcG9zKTsKKyAgICAgICAgICAgICBpZiAoZXgpCisgICAgICAg ICAgICAgICAgIGdldF9iYXNpY19jb25zdHJhaW50cyhleCwgJnAuaXNDQSwgJnAucGF0aExpbWl0 KTsKKyAgICAgICAgIH0KKyAKKyAgICAgICAgIHBvcyA9IFg1MDl2M19nZXRfZXh0X2J5X05JRChl eHRzLCBOSURfc3ViamVjdF9hbHRfbmFtZSwgLTEpOworICAgICAgICAgaWYgKHBvcyAhPSAtMSkg eworLSAgICAgICAgICAgIFg1MDlfRVhURU5TSU9OICpleCA9IFg1MDl2M19nZXRfZXh0KGV4dHMs IHBvcyk7CisrICAgICAgICAgICAgY29uc3QgWDUwOV9FWFRFTlNJT04gKmV4ID0gWDUwOXYzX2dl dF9leHQoZXh0cywgcG9zKTsKKyAgICAgICAgICAgICBpZiAoZXgpCisgICAgICAgICAgICAgICAg IHN1YmplY3QudW5pdGUoZ2V0X2NlcnRfYWx0X25hbWUoZXgpKTsKKyAgICAgICAgIH0KKyAKKyAg ICAgICAgIHBvcyA9IFg1MDl2M19nZXRfZXh0X2J5X05JRChleHRzLCBOSURfa2V5X3VzYWdlLCAt MSk7CisgICAgICAgICBpZiAocG9zICE9IC0xKSB7CistICAgICAgICAgICAgWDUwOV9FWFRFTlNJ T04gKmV4ID0gWDUwOXYzX2dldF9leHQoZXh0cywgcG9zKTsKKysgICAgICAgICAgICBjb25zdCBY NTA5X0VYVEVOU0lPTiAqZXggPSBYNTA5djNfZ2V0X2V4dChleHRzLCBwb3MpOworICAgICAgICAg ICAgIGlmIChleCkKKyAgICAgICAgICAgICAgICAgcC5jb25zdHJhaW50cyA9IGdldF9jZXJ0X2tl eV91c2FnZShleCk7CisgICAgICAgICB9CisgCisgICAgICAgICBwb3MgPSBYNTA5djNfZ2V0X2V4 dF9ieV9OSUQoZXh0cywgTklEX2V4dF9rZXlfdXNhZ2UsIC0xKTsKKyAgICAgICAgIGlmIChwb3Mg IT0gLTEpIHsKKy0gICAgICAgICAgICBYNTA5X0VYVEVOU0lPTiAqZXggPSBYNTA5djNfZ2V0X2V4 dChleHRzLCBwb3MpOworKyAgICAgICAgICAgIGNvbnN0IFg1MDlfRVhURU5TSU9OICpleCA9IFg1 MDl2M19nZXRfZXh0KGV4dHMsIHBvcyk7CisgICAgICAgICAgICAgaWYgKGV4KQorICAgICAgICAg ICAgICAgICBwLmNvbnN0cmFpbnRzICs9IGdldF9jZXJ0X2V4dF9rZXlfdXNhZ2UoZXgpOworICAg ICAgICAgfQorIAorICAgICAgICAgcG9zID0gWDUwOXYzX2dldF9leHRfYnlfTklEKGV4dHMsIE5J RF9jZXJ0aWZpY2F0ZV9wb2xpY2llcywgLTEpOworICAgICAgICAgaWYgKHBvcyAhPSAtMSkgewor LSAgICAgICAgICAgIFg1MDlfRVhURU5TSU9OICpleCA9IFg1MDl2M19nZXRfZXh0KGV4dHMsIHBv cyk7CisrICAgICAgICAgICAgY29uc3QgWDUwOV9FWFRFTlNJT04gKmV4ID0gWDUwOXYzX2dldF9l eHQoZXh0cywgcG9zKTsKKyAgICAgICAgICAgICBpZiAoZXgpCisgICAgICAgICAgICAgICAgIHAu cG9saWNpZXMgPSBnZXRfY2VydF9wb2xpY2llcyhleCk7CisgICAgICAgICB9CitAQCAtNDIxNCw5 ICs0MjQxLDEwIEBAIHB1YmxpYzoKKyAKKyAgICAgICAgIFg1MDlfUkVRX2dldDBfc2lnbmF0dXJl KHgsICZzaWduYXR1cmUsIG51bGxwdHIpOworICAgICAgICAgaWYgKHNpZ25hdHVyZSkgeworLSAg ICAgICAgICAgIHAuc2lnID0gUUJ5dGVBcnJheShzaWduYXR1cmUtPmxlbmd0aCwgMCk7CistICAg ICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaWduYXR1cmUtPmxlbmd0aDsgaSsrKQorLSAg ICAgICAgICAgICAgICBwLnNpZ1tpXSA9IHNpZ25hdHVyZS0+ZGF0YVtpXTsKKysgICAgICAgICAg ICBjb25zdCBpbnQgYnl0ZV9sZW4gPSBBU04xX1NUUklOR19sZW5ndGgoKGNvbnN0IEFTTjFfU1RS SU5HICopc2lnbmF0dXJlKTsKKysgICAgICAgICAgICBwLnNpZyAgICAgICAgICAgICAgPSBRQnl0 ZUFycmF5KGJ5dGVfbGVuLCAwKTsKKysgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IGJ5 dGVfbGVuOyBpKyspCisrICAgICAgICAgICAgICAgIHAuc2lnW2ldID0gQVNOMV9CSVRfU1RSSU5H X2dldF9iaXQoc2lnbmF0dXJlLCBpKTsKKyAgICAgICAgIH0KKyAKKyAgICAgICAgIHN3aXRjaCAo WDUwOV9SRVFfZ2V0X3NpZ25hdHVyZV9uaWQoeCkpIHsKK0BAIC00MzYzLDkgKzQzOTEsOSBAQCBw dWJsaWM6CisgICAgICAgICAgICAgUUNBOjpDUkxFbnRyeTo6UmVhc29uIHJlYXNvbiA9IFFDQTo6 Q1JMRW50cnk6OlVuc3BlY2lmaWVkOworICAgICAgICAgICAgIGludCAgICAgICAgICAgICAgICAg ICBwb3MgICAgPSBYNTA5X1JFVk9LRURfZ2V0X2V4dF9ieV9OSUQocmV2LCBOSURfY3JsX3JlYXNv biwgLTEpOworICAgICAgICAgICAgIGlmIChwb3MgIT0gLTEpIHsKKy0gICAgICAgICAgICAgICAg WDUwOV9FWFRFTlNJT04gKmV4ID0gWDUwOV9SRVZPS0VEX2dldF9leHQocmV2LCBwb3MpOworKyAg ICAgICAgICAgICAgICBjb25zdCBYNTA5X0VYVEVOU0lPTiAqZXggPSBYNTA5X1JFVk9LRURfZ2V0 X2V4dChyZXYsIHBvcyk7CisgICAgICAgICAgICAgICAgIGlmIChleCkgeworLSAgICAgICAgICAg ICAgICAgICAgQVNOMV9FTlVNRVJBVEVEICpyZXN1bHQgPSAoQVNOMV9FTlVNRVJBVEVEICopWDUw OVYzX0VYVF9kMmkoZXgpOworKyAgICAgICAgICAgICAgICAgICAgQVNOMV9FTlVNRVJBVEVEICpy ZXN1bHQgPSAoQVNOMV9FTlVNRVJBVEVEICopb3VyX1g1MDlWM19FWFRfZDJpKGV4KTsKKyAgICAg ICAgICAgICAgICAgICAgIHN3aXRjaCAoQVNOMV9FTlVNRVJBVEVEX2dldChyZXN1bHQpKSB7Cisg ICAgICAgICAgICAgICAgICAgICBjYXNlIENSTF9SRUFTT05fVU5TUEVDSUZJRUQ6CisgICAgICAg ICAgICAgICAgICAgICAgICAgcmVhc29uID0gUUNBOjpDUkxFbnRyeTo6VW5zcGVjaWZpZWQ7CitA QCAtNDQxMiw5ICs0NDQwLDEwIEBAIHB1YmxpYzoKKyAKKyAgICAgICAgIFg1MDlfQ1JMX2dldDBf c2lnbmF0dXJlKHgsICZzaWduYXR1cmUsIG51bGxwdHIpOworICAgICAgICAgaWYgKHNpZ25hdHVy ZSkgeworLSAgICAgICAgICAgIHAuc2lnID0gUUJ5dGVBcnJheShzaWduYXR1cmUtPmxlbmd0aCwg MCk7CistICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaWduYXR1cmUtPmxlbmd0aDsg aSsrKQorLSAgICAgICAgICAgICAgICBwLnNpZ1tpXSA9IHNpZ25hdHVyZS0+ZGF0YVtpXTsKKysg ICAgICAgICAgICBjb25zdCBpbnQgYnl0ZV9sZW4gPSBBU04xX1NUUklOR19sZW5ndGgoKGNvbnN0 IEFTTjFfU1RSSU5HICopc2lnbmF0dXJlKTsKKysgICAgICAgICAgICBwLnNpZyAgICAgICAgICAg ICAgPSBRQnl0ZUFycmF5KGJ5dGVfbGVuLCAwKTsKKysgICAgICAgICAgICBmb3IgKGludCBpID0g MDsgaSA8IGJ5dGVfbGVuOyBpKyspCisrICAgICAgICAgICAgICAgIHAuc2lnW2ldID0gQVNOMV9C SVRfU1RSSU5HX2dldF9iaXQoc2lnbmF0dXJlLCBpKTsKKyAgICAgICAgIH0KKyAKKyAgICAgICAg IHN3aXRjaCAoWDUwOV9DUkxfZ2V0X3NpZ25hdHVyZV9uaWQoeCkpIHsKK0BAIC00NDU0LDcgKzQ0 ODMsNyBAQCBwdWJsaWM6CisgCisgICAgICAgICBpbnQgcG9zID0gWDUwOV9DUkxfZ2V0X2V4dF9i eV9OSUQoeCwgTklEX2F1dGhvcml0eV9rZXlfaWRlbnRpZmllciwgLTEpOworICAgICAgICAgaWYg KHBvcyAhPSAtMSkgeworLSAgICAgICAgICAgIFg1MDlfRVhURU5TSU9OICpleCA9IFg1MDlfQ1JM X2dldF9leHQoeCwgcG9zKTsKKysgICAgICAgICAgICBjb25zdCBYNTA5X0VYVEVOU0lPTiAqZXgg PSBYNTA5X0NSTF9nZXRfZXh0KHgsIHBvcyk7CisgICAgICAgICAgICAgaWYgKGV4KQorICAgICAg ICAgICAgICAgICBwLmlzc3VlcklkICs9IGdldF9jZXJ0X2lzc3Vlcl9rZXlfaWQoZXgpOworICAg ICAgICAgfQorQEAgLTQ0NjIsOSArNDQ5MSw5IEBAIHB1YmxpYzoKKyAgICAgICAgIHAubnVtYmVy ID0gLTE7CisgICAgICAgICBwb3MgICAgICA9IFg1MDlfQ1JMX2dldF9leHRfYnlfTklEKHgsIE5J RF9jcmxfbnVtYmVyLCAtMSk7CisgICAgICAgICBpZiAocG9zICE9IC0xKSB7CistICAgICAgICAg ICAgWDUwOV9FWFRFTlNJT04gKmV4ID0gWDUwOV9DUkxfZ2V0X2V4dCh4LCBwb3MpOworKyAgICAg ICAgICAgIGNvbnN0IFg1MDlfRVhURU5TSU9OICpleCA9IFg1MDlfQ1JMX2dldF9leHQoeCwgcG9z KTsKKyAgICAgICAgICAgICBpZiAoZXgpIHsKKy0gICAgICAgICAgICAgICAgQVNOMV9JTlRFR0VS ICpyZXN1bHQgPSAoQVNOMV9JTlRFR0VSICopWDUwOVYzX0VYVF9kMmkoZXgpOworKyAgICAgICAg ICAgICAgICBBU04xX0lOVEVHRVIgKnJlc3VsdCA9IChBU04xX0lOVEVHRVIgKilvdXJfWDUwOVYz X0VYVF9kMmkoZXgpOworICAgICAgICAgICAgICAgICBwLm51bWJlciAgICAgICAgICAgICA9IEFT TjFfSU5URUdFUl9nZXQocmVzdWx0KTsKKyAgICAgICAgICAgICAgICAgQVNOMV9JTlRFR0VSX2Zy ZWUocmVzdWx0KTsKKyAgICAgICAgICAgICB9CitAQCAtNDk5NCwxMiArNTAyMywxNyBAQCBwdWJs aWM6CisgICAgICAgICBzd2l0Y2ggKHZlcnNpb24pIHsKKyAjaWZuZGVmIE9QRU5TU0xfTk9fU1NM M19NRVRIT0QKKyAgICAgICAgIGNhc2UgVExTOjpTU0xfdjM6CisrI2lmIChPUEVOU1NMX1ZFUlNJ T05fTlVNQkVSID49IDB4NDAwMDAwMDBMKQorKyAgICAgICAgICAgIC8vIFRoZXJlIGlzIG5vIHNz bDMgaW4gb3BlbnNzbDQKKysgICAgICAgICAgICByZXR1cm4ge307CisrI2Vsc2UKKyAgICAgICAg ICAgICAvLyBIZXJlIHNob3VsZCBiZSB1c2VkIFRMU19jbGllbnRfbWV0aG9kKCkgYnV0IG9uIEZl ZG9yYQorICAgICAgICAgICAgIC8vIGl0IGRvZXNuJ3QgcmV0dXJuIGFueSBTU0wgY2lwaGVycy4K KyAgICAgICAgICAgICBjdHggPSBTU0xfQ1RYX25ldyhTU0x2M19jbGllbnRfbWV0aG9kKCkpOwor ICAgICAgICAgICAgIFNTTF9DVFhfc2V0X21pbl9wcm90b192ZXJzaW9uKGN0eCwgU1NMM19WRVJT SU9OKTsKKyAgICAgICAgICAgICBTU0xfQ1RYX3NldF9tYXhfcHJvdG9fdmVyc2lvbihjdHgsIFNT TDNfVkVSU0lPTik7CisgICAgICAgICAgICAgYnJlYWs7CisrI2VuZGlmCisgI2VuZGlmCisgICAg ICAgICBjYXNlIFRMUzo6VExTX3YxOgorICAgICAgICAgICAgIGN0eCA9IFNTTF9DVFhfbmV3KFRM U19jbGllbnRfbWV0aG9kKCkpOworLS0gCitHaXRMYWIKKwo=