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: =?utf-8?q?Kren=C5=BEelok_Franti=C5=A1ek_=3Cfkrenzel=40redhat=2Ecom=3E?= To: git-commits@fedoraproject.org Subject: [rpms/nss] rawhide: Cherry-pick remaining confirmed patches from RHEL nss-3.124 Date: Fri, 21 Aug 2026 11:21:17 GMT Message-ID: <178731127753.1.3970567500217179951.rpms-nss-ee18cf1cde5c@fedoraproject.org> List-ID: X-Git-Repo: rpms/nss X-Git-Branch: rawhide X-Git-Rev: ee18cf1cde5c422bca0f4519cb6e1a5e118d2bf9 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvbnNzCiAgICAgICAgICAgIEJyYW5jaCA6IHJhd2hpZGUKICAgICAgICAgICAg Q29tbWl0IDogZWUxOGNmMWNkZTVjNDIyYmNhMGY0NTE5Y2I2ZTFhNWUxMThkMmJmOQogICAgICAg ICAgICBBdXRob3IgOiBLcmVuxb5lbG9rIEZyYW50acWhZWsgPGZrcmVuemVsQHJlZGhhdC5jb20+ CiAgICAgICAgICAgIERhdGUgICA6IDIwMjYtMDgtMjBUMTM6NDM6MzgrMDI6MDAKICAgICAgICAg ICAgU3RhdHMgIDogKzg0OS8tMCBpbiA0IGZpbGUocykKICAgICAgICAgICAgVVJMICAgIDogaHR0 cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9uc3MvYy9lZTE4Y2YxY2RlNWM0MjJiY2Ew ZjQ1MTljYjZlMWE1ZTExOGQyYmY5P2JyYW5jaD1yYXdoaWRlCgogICAgICAgICAgICBMb2c6CiAg ICAgICAgICAgIENoZXJyeS1waWNrIHJlbWFpbmluZyBjb25maXJtZWQgcGF0Y2hlcyBmcm9tIFJI RUwgbnNzLTMuMTI0CgpMaW5lLWxldmVsIGRpZmYgYWdhaW5zdCBOU1MgMy4xMjcgc291cmNlIGNv bmZpcm1lZCBhbGwgdGhyZWUgYWJzZW50OgoKLSBuc3MtMy4xMjQtZmlwcy1rZXktaW1wb3J0LWZp eDogYWRkIGZvcmNlLW1vZGUgdG8KICBwazExX0ltcG9ydFN5bUtleVdpdGhUZW1wbCBzbyB1bndy YXAgcGF0aHMgY2FuIGltcG9ydCBzeW1tZXRyaWMga2V5cwogIGludG8gYSBGSVBTIHRva2VuIHZp YSBDS01fQ09OQ0FURU5BVEVfREFUQV9BTkRfQkFTRSB3aGVuIGRpcmVjdAogIGltcG9ydCBmYWls cwotIG5zcy0zLjEyNC1maXgtcHViLWtleS1pbXBvcnQtZW5jYXBzdWxhdGU6IGZpeCBQSzExX0Vu Y2Fwc3VsYXRlIHRvCiAgaW1wb3J0IHRoZSBwdWJsaWMga2V5IG9udG8gdGhlIHNsb3QgYmVmb3Jl IHVzZSBpbnN0ZWFkIG9mIHJlbHlpbmcgb24KICBwdWJLZXktPnBrY3MxMUlEOyBmaXggTlVMTCBz bG90IGhhbmRsaW5nIGFuZCB3aW5jeCBpbiBEZWNhcHN1bGF0ZQotIG5zcy0zLjEyNC1hbGxvdy1o YXNoLW92ZXJyaWRlLXBzczogYWxsb3cgUFNTIGhhc2ggYWxnb3JpdGhtIG92ZXJyaWRlCiAgaW5z dGVhZCBvZiBoYXJkLWZhaWxpbmcgb24gaGFzaCBtaXNtYXRjaDsgZml4IHNlY19EZWNvZGVSU0FQ U1NQYXJhbXMKICB0byB0b2xlcmF0ZSBlbXB0eSBwYXJhbXMKCi0tLQpkaWZmIC0tZ2l0IGEvbnNz LTMuMTI0LWFsbG93LWhhc2gtb3ZlcnJpZGUtcHNzLnBhdGNoIGIvbnNzLTMuMTI0LWFsbG93LWhh c2gtb3ZlcnJpZGUtcHNzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjllNTQ0M2EKLS0tIC9kZXYvbnVsbAorKysgYi9uc3MtMy4xMjQtYWxsb3ctaGFzaC1vdmVycmlk ZS1wc3MucGF0Y2gKQEAgLTAsMCArMSw0ODkgQEAKKyMgSEcgY2hhbmdlc2V0IHBhdGNoCisjIFVz ZXIgUm9iZXJ0IFJlbHllYSA8cnJlbHllYUByZWRoYXQuY29tPgorIyBEYXRlIDE3ODE2MzUyMzkg MjUyMDAKKyMgICAgICBUdWUgSnVuIDE2IDExOjQwOjM5IDIwMjYgLTA3MDAKKyMgQnJhbmNoIE5T U18zXzEyNF9CUkFOQ0gKKyMgTm9kZSBJRCBjODUxMTBlMGY3YmE0OGVmNDRjOWI1MzVhOWMzYmNj Zjc4Zjg0MTZkCisjIFBhcmVudCAgNGIwZTNmMzNhMmU3NmE3N2UzNmI0MzVlYjNjYzFlYjA2ZjE0 MjQ5ZAorbnNzLTMuMTI0LWFsbG93LWhhc2gtb3ZlcnJpZGUtcHNzLnBhdGNoCisKK2RpZmYgLS1n aXQgYS9jbWQvY2VydHV0aWwvY2VydHV0aWwuYyBiL2NtZC9jZXJ0dXRpbC9jZXJ0dXRpbC5jCist LS0gYS9jbWQvY2VydHV0aWwvY2VydHV0aWwuYworKysrIGIvY21kL2NlcnR1dGlsL2NlcnR1dGls LmMKK0BAIC0yMjgsMTYgKzIyOCwyMCBAQCBDZXJ0UmVxKFNFQ0tFWVByaXZhdGVLZXkgKnByaXZr LCBTRUNLRVlQCisgICAgICAgICByZXR1cm4gU0VDRmFpbHVyZTsKKyAgICAgfQorIAorICAgICAv KiBDaGFuZ2UgY2VydCB0eXBlIHRvIFJTQS1QU1MsIGlmIGRlc2lyZWQuICovCisgICAgIGlmIChw c3NDZXJ0aWZpY2F0ZSkgeworICAgICAgICAgLyogZm9yY2UgYSBQU1Mgc2lnbmF0dXJlLiBXZSBj YW4gZG8gYSBQU1Mgc2lnbmF0dXJlIHdpdGggYW4KKyAgICAgICAgICAqIFJTQSBrZXksIHRoaXMg d2lsbCBmb3JjZSB1cyB0byBnZW5lcmF0ZSBhIFBTUyBzaWduYXR1cmUgKi8KKyAgICAgICAgIHNp Z25BbGdUYWcgPSBTRUNfT0lEX1BLQ1MxX1JTQV9QU1NfU0lHTkFUVVJFOworKyAgICAgICAgLyog d2UgYXJlIHJldXNpbmcgYW4gYWxnb3JpdGhtIGlkLCBwcmV2ZW50IHRoZSBhc3NlcnQgd2hlbiB3 ZSB0cnkKKysgICAgICAgICAqIHRvIHNldCB0aGUgcGFyYW1ldGVycyBvZiB0aGF0IGFsZ29yaXRo bSBpZCAqLworKyAgICAgICAgc3BraS0+YWxnb3JpdGhtLnBhcmFtZXRlcnMuZGF0YSA9IE5VTEw7 CisrICAgICAgICBzcGtpLT5hbGdvcml0aG0ucGFyYW1ldGVycy5sZW4gPSAwOworICAgICAgICAg Lyogb3ZlcnJpZGUgdGhlIFNQS0kgYWxnb3JpdGhtIGlkLiAqLworICAgICAgICAgcnYgPSBTRUNf Q3JlYXRlU2lnbmF0dXJlQWxnb3JpdGhtSUQoYXJlbmEsICZzcGtpLT5hbGdvcml0aG0sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduQWxnVGFnLCBoYXNo QWxnVGFnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVM TCwgTlVMTCwgcHViayk7CisgICAgICAgICBpZiAocnYgIT0gU0VDU3VjY2VzcykgeworICAgICAg ICAgICAgIFBPUlRfRnJlZUFyZW5hKGFyZW5hLCBQUl9GQUxTRSk7CisgICAgICAgICAgICAgU0VD S0VZX0Rlc3Ryb3lTdWJqZWN0UHVibGljS2V5SW5mbyhzcGtpKTsKKyAgICAgICAgICAgICBTRUNV X1ByaW50RXJyb3IocHJvZ05hbWUsICJ1bmFibGUgdG8gc2V0IGFsZ29yaXRobSBJRCIpOworZGlm ZiAtLWdpdCBhL2d0ZXN0cy9jcnlwdG9oaV9ndGVzdC9jcnlwdG9oaV91bml0dGVzdC5jYyBiL2d0 ZXN0cy9jcnlwdG9oaV9ndGVzdC9jcnlwdG9oaV91bml0dGVzdC5jYworLS0tIGEvZ3Rlc3RzL2Ny eXB0b2hpX2d0ZXN0L2NyeXB0b2hpX3VuaXR0ZXN0LmNjCisrKysgYi9ndGVzdHMvY3J5cHRvaGlf Z3Rlc3QvY3J5cHRvaGlfdW5pdHRlc3QuY2MKK0BAIC0xMDUsMTcgKzEwNSwxNyBAQCBjbGFzcyBT aWduUGFyYW1zVGVzdEYgOiBwdWJsaWMgOjp0ZXN0aW5nCisgICAgIFNFQ0l0ZW0gKnNhbHRMZW5n dGhJdGVtID0KKyAgICAgICAgIFNFQ19BU04xRW5jb2RlSW50ZWdlcihhcmVuYV8uZ2V0KCksICZw YXJhbXMtPnNhbHRMZW5ndGgsIHNhbHRMZW5ndGgpOworICAgICBBU1NFUlRfRVEoJnBhcmFtcy0+ c2FsdExlbmd0aCwgc2FsdExlbmd0aEl0ZW0pOworICAgfQorIAorICAgdm9pZCBDaGVja0hhc2hB bGcoU0VDS0VZUlNBUFNTUGFyYW1zICpwYXJhbXMsIFNFQ09pZFRhZyBoYXNoQWxnVGFnKSB7Cisg ICAgIC8vIElmIGhhc2ggYWxnb3JpdGhtIGlzIFNIQS0xLCBpdCBtdXN0IGJlIG9taXR0ZWQgaW4g dGhlIHBhcmFtZXRlcnMKKyAgICAgaWYgKGhhc2hBbGdUYWcgPT0gU0VDX09JRF9TSEExKSB7Cist ICAgICAgRVhQRUNUX0VRKG51bGxwdHIsIHBhcmFtcy0+aGFzaEFsZyk7CisrICAgICAgRVhQRUNU X0VRKG51bGxwdHIsIHBhcmFtcy0+aGFzaEFsZykgPDwgIm9pZD09IiA8PCBTRUNPSURfRmluZE9J RFRhZ0Rlc2NyaXB0aW9uKFNFQ09JRF9HZXRBbGdvcml0aG1UYWcocGFyYW1zLT5oYXNoQWxnKSk7 CisgICAgIH0gZWxzZSB7CisgICAgICAgRVhQRUNUX05FKG51bGxwdHIsIHBhcmFtcy0+aGFzaEFs Zyk7CisgICAgICAgRVhQRUNUX0VRKGhhc2hBbGdUYWcsIFNFQ09JRF9HZXRBbGdvcml0aG1UYWco cGFyYW1zLT5oYXNoQWxnKSk7CisgICAgIH0KKyAgIH0KKyAKKyAgIHZvaWQgQ2hlY2tNYXNrQWxn KFNFQ0tFWVJTQVBTU1BhcmFtcyAqcGFyYW1zLCBTRUNPaWRUYWcgaGFzaEFsZ1RhZykgeworICAg ICBTRUNTdGF0dXMgcnY7CitAQCAtMjI1LDIyICsyMjUsMTYgQEAgVEVTVF9QKFNpZ25QYXJhbXNU ZXN0LCBDcmVhdGVSc2FQc3MpIHsKKyAgIH0gZWxzZSB7CisgICAgIHNyY1BhcmFtcyA9IE5VTEw7 CisgICB9CisgCisgICBTRUNJdGVtICpwYXJhbXMgPSBTRUNfQ3JlYXRlU2lnbmF0dXJlQWxnb3Jp dGhtUGFyYW1ldGVycygKKyAgICAgICBhcmVuYV8uZ2V0KCksIG51bGxwdHIsIFNFQ19PSURfUEtD UzFfUlNBX1BTU19TSUdOQVRVUkUsIGhhc2hBbGcsCisgICAgICAgc3JjUGFyYW1zLCBwcml2a18u Z2V0KCkpOworIAorLSAgaWYgKGhhc2hBbGcgIT0gU0VDX09JRF9VTktOT1dOICYmIHNyY0hhc2hB bGcgIT0gU0VDX09JRF9VTktOT1dOICYmCistICAgICAgaGFzaEFsZyAhPSBzcmNIYXNoQWxnKSB7 CistICAgIEVYUEVDVF9FUShudWxscHRyLCBwYXJhbXMpOworLSAgICByZXR1cm47CistICB9Cist CisgICBFWFBFQ1RfTkUobnVsbHB0ciwgcGFyYW1zKTsKKyAKKyAgIFNFQ0tFWVJTQVBTU1BhcmFt cyBwc3NQYXJhbXM7CisgICBQT1JUX01lbXNldCgmcHNzUGFyYW1zLCAwLCBzaXplb2YocHNzUGFy YW1zKSk7CisgICBTRUNTdGF0dXMgcnYgPQorICAgICAgIFNFQ19RdWlja0RFUkRlY29kZUl0ZW0o YXJlbmFfLmdldCgpLCAmcHNzUGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U0VDX0FTTjFfR0VUKFNFQ0tFWV9SU0FQU1NQYXJhbXNUZW1wbGF0ZSksIHBhcmFtcyk7CisgICBB U1NFUlRfRVEoU0VDU3VjY2VzcywgcnYpOworQEAgLTI5NCw4MyArMjg4LDEwMCBAQCBURVNUX1Ao U2lnblBhcmFtc1Rlc3QsIENyZWF0ZVJzYVBzc1dpdGhFCisgCisgVEVTVF9QKFNpZ25QYXJhbXNU ZXN0LCBDcmVhdGVSc2FQc3NXaXRoSW52YWxpZEhhc2hBbGcpIHsKKyAgIFNFQ09pZFRhZyBzcmNI YXNoQWxnID0gc3RkOjpnZXQ8MT4oR2V0UGFyYW0oKSk7CisgCisgICBTRUNJdGVtICpzcmNQYXJh bXM7CisgICBpZiAoc3JjSGFzaEFsZyAhPSBTRUNfT0lEX1VOS05PV04pIHsKKyAgICAgU0VDS0VZ UlNBUFNTUGFyYW1zIHBzc1BhcmFtczsKKyAgICAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoCist ICAgICAgICBDcmVhdGVQc3NQYXJhbXMoJnBzc1BhcmFtcywgc3JjSGFzaEFsZywgc3JjSGFzaEFs ZykpOworKyAgICAgICAgQ3JlYXRlUHNzUGFyYW1zKCZwc3NQYXJhbXMsIFNFQ19PSURfTUQ1LCBT RUNfT0lEX01ENSkpOworICAgICBzcmNQYXJhbXMgPSBTRUNfQVNOMUVuY29kZUl0ZW0oYXJlbmFf LmdldCgpLCBudWxscHRyLCAmcHNzUGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgU0VDX0FTTjFfR0VUKFNFQ0tFWV9SU0FQU1NQYXJhbXNUZW1wbGF0ZSkpOworICAg ICBBU1NFUlRfTkUobnVsbHB0ciwgc3JjUGFyYW1zKTsKKyAgIH0gZWxzZSB7CisgICAgIHNyY1Bh cmFtcyA9IE5VTEw7CisgICB9CisgCisgICBTRUNJdGVtICpwYXJhbXMgPSBTRUNfQ3JlYXRlU2ln bmF0dXJlQWxnb3JpdGhtUGFyYW1ldGVycygKKy0gICAgICBhcmVuYV8uZ2V0KCksIG51bGxwdHIs IFNFQ19PSURfUEtDUzFfUlNBX1BTU19TSUdOQVRVUkUsIFNFQ19PSURfTUQ1LAorKyAgICAgIGFy ZW5hXy5nZXQoKSwgbnVsbHB0ciwgU0VDX09JRF9QS0NTMV9SU0FfUFNTX1NJR05BVFVSRSwgc3Jj SGFzaEFsZywKKyAgICAgICBzcmNQYXJhbXMsIHByaXZrXy5nZXQoKSk7CisgCistICBFWFBFQ1Rf RVEobnVsbHB0ciwgcGFyYW1zKTsKKysgIC8qIG92ZXJyaWRlIGludmFsaWQgaGFzaCB3aXRoIHZh bGlkIGhhc2ggKi8KKysgIEVYUEVDVF9ORShudWxscHRyLCBwYXJhbXMpOworKyAgLyogYXNzZXJ0 IHBhcmFtcyAtPmhhc2hBbGcgIT0gU0VDX09JRF9NRDUgKi8KKyB9CisgCisgVEVTVF9QKFNpZ25Q YXJhbXNTb3VyY2VUZXN0LCBDcmVhdGVSc2FQc3NXaXRoSW52YWxpZEhhc2hBbGcpIHsKKyAgIFNF Q09pZFRhZyBoYXNoQWxnID0gR2V0UGFyYW0oKTsKKyAKKyAgIFNFQ0l0ZW0gKnNyY1BhcmFtczsK KyAgIFNFQ0tFWVJTQVBTU1BhcmFtcyBwc3NQYXJhbXM7CisgICBBU1NFUlRfTk9fRkFUQUxfRkFJ TFVSRSgKKy0gICAgICBDcmVhdGVQc3NQYXJhbXMoJnBzc1BhcmFtcywgU0VDX09JRF9NRDUsIFNF Q19PSURfTUQ1KSk7CisrICAgICAgQ3JlYXRlUHNzUGFyYW1zKCZwc3NQYXJhbXMsIGhhc2hBbGcs IGhhc2hBbGcpKTsKKyAgIHNyY1BhcmFtcyA9IFNFQ19BU04xRW5jb2RlSXRlbShhcmVuYV8uZ2V0 KCksIG51bGxwdHIsICZwc3NQYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgU0VDX0FTTjFfR0VUKFNFQ0tFWV9SU0FQU1NQYXJhbXNUZW1wbGF0ZSkpOworICAgQVNTRVJU X05FKG51bGxwdHIsIHNyY1BhcmFtcyk7CisgCisgICBTRUNJdGVtICpwYXJhbXMgPSBTRUNfQ3Jl YXRlU2lnbmF0dXJlQWxnb3JpdGhtUGFyYW1ldGVycygKKy0gICAgICBhcmVuYV8uZ2V0KCksIG51 bGxwdHIsIFNFQ19PSURfUEtDUzFfUlNBX1BTU19TSUdOQVRVUkUsIGhhc2hBbGcsCisrICAgICAg YXJlbmFfLmdldCgpLCBudWxscHRyLCBTRUNfT0lEX1BLQ1MxX1JTQV9QU1NfU0lHTkFUVVJFLCBT RUNfT0lEX01ENCwKKyAgICAgICBzcmNQYXJhbXMsIHByaXZrXy5nZXQoKSk7CisgCisgICBFWFBF Q1RfRVEobnVsbHB0ciwgcGFyYW1zKTsKKyB9CisgCisgVEVTVF9QKFNpZ25QYXJhbXNTb3VyY2VU ZXN0LCBDcmVhdGVSc2FQc3NXaXRoSW52YWxpZFNhbHRMZW5ndGgpIHsKKyAgIFNFQ09pZFRhZyBo YXNoQWxnID0gR2V0UGFyYW0oKTsKKyAKKyAgIFNFQ0l0ZW0gKnNyY1BhcmFtczsKKyAgIFNFQ0tF WVJTQVBTU1BhcmFtcyBwc3NQYXJhbXM7CisgICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRSgKKy0g ICAgICBDcmVhdGVQc3NQYXJhbXMoJnBzc1BhcmFtcywgU0VDX09JRF9TSEE1MTIsIFNFQ19PSURf U0hBNTEyLCAxMDApKTsKKysgICAgICBDcmVhdGVQc3NQYXJhbXMoJnBzc1BhcmFtcywgU0VDX09J RF9TSEE1MTIsIFNFQ19PSURfU0hBNTEyLCAxMTApKTsKKyAgIHNyY1BhcmFtcyA9IFNFQ19BU04x RW5jb2RlSXRlbShhcmVuYV8uZ2V0KCksIG51bGxwdHIsICZwc3NQYXJhbXMsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgU0VDX0FTTjFfR0VUKFNFQ0tFWV9SU0FQU1NQYXJhbXNU ZW1wbGF0ZSkpOworICAgQVNTRVJUX05FKG51bGxwdHIsIHNyY1BhcmFtcyk7CisgCisgICBTRUNJ dGVtICpwYXJhbXMgPSBTRUNfQ3JlYXRlU2lnbmF0dXJlQWxnb3JpdGhtUGFyYW1ldGVycygKKyAg ICAgICBhcmVuYV8uZ2V0KCksIG51bGxwdHIsIFNFQ19PSURfUEtDUzFfUlNBX1BTU19TSUdOQVRV UkUsIGhhc2hBbGcsCisgICAgICAgc3JjUGFyYW1zLCBwcml2a18uZ2V0KCkpOworIAorICAgRVhQ RUNUX0VRKG51bGxwdHIsIHBhcmFtcyk7CisgfQorIAorIFRFU1RfUChTaWduUGFyYW1zU291cmNl VGVzdCwgQ3JlYXRlUnNhUHNzV2l0aEhhc2hNaXNtYXRjaCkgeworICAgU0VDT2lkVGFnIGhhc2hB bGcgPSBHZXRQYXJhbSgpOworIAorICAgU0VDSXRlbSAqc3JjUGFyYW1zOworICAgU0VDS0VZUlNB UFNTUGFyYW1zIHBzc1BhcmFtczsKKysgIGlmICgoaGFzaEFsZyA9PSAgU0VDX09JRF9VTktOT1dO KSB8fCAoaGFzaEFsZyA9PSBTRUNfT0lEX1NIQTUxMikpIHsKKysgICAgaGFzaEFsZyA9IFNFQ19P SURfU0hBMTsKKysgIH0KKyAgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKAorLSAgICAgIENyZWF0 ZVBzc1BhcmFtcygmcHNzUGFyYW1zLCBTRUNfT0lEX1NIQTI1NiwgU0VDX09JRF9TSEE1MTIpKTsK KysgICAgICBDcmVhdGVQc3NQYXJhbXMoJnBzc1BhcmFtcywgaGFzaEFsZywgU0VDX09JRF9TSEE1 MTIpKTsKKyAgIHNyY1BhcmFtcyA9IFNFQ19BU04xRW5jb2RlSXRlbShhcmVuYV8uZ2V0KCksIG51 bGxwdHIsICZwc3NQYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VD X0FTTjFfR0VUKFNFQ0tFWV9SU0FQU1NQYXJhbXNUZW1wbGF0ZSkpOworICAgQVNTRVJUX05FKG51 bGxwdHIsIHNyY1BhcmFtcyk7CisgCisgICBTRUNJdGVtICpwYXJhbXMgPSBTRUNfQ3JlYXRlU2ln bmF0dXJlQWxnb3JpdGhtUGFyYW1ldGVycygKKy0gICAgICBhcmVuYV8uZ2V0KCksIG51bGxwdHIs IFNFQ19PSURfUEtDUzFfUlNBX1BTU19TSUdOQVRVUkUsIGhhc2hBbGcsCisrICAgICAgYXJlbmFf LmdldCgpLCBudWxscHRyLCBTRUNfT0lEX1BLQ1MxX1JTQV9QU1NfU0lHTkFUVVJFLCBTRUNfT0lE X1VOS05PV04sCisgICAgICAgc3JjUGFyYW1zLCBwcml2a18uZ2V0KCkpOworIAorLSAgRVhQRUNU X0VRKG51bGxwdHIsIHBhcmFtcyk7CisrICBFWFBFQ1RfTkUobnVsbHB0ciwgcGFyYW1zKTsKKysK KysgIFBPUlRfTWVtc2V0KCZwc3NQYXJhbXMsIDAsIHNpemVvZihwc3NQYXJhbXMpKTsKKysgIFNF Q1N0YXR1cyBydiA9CisrICAgICAgU0VDX1F1aWNrREVSRGVjb2RlSXRlbShhcmVuYV8uZ2V0KCks ICZwc3NQYXJhbXMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRUNfQVNOMV9HRVQo U0VDS0VZX1JTQVBTU1BhcmFtc1RlbXBsYXRlKSwgcGFyYW1zKTsKKysgIEFTU0VSVF9FUShTRUNT dWNjZXNzLCBydik7CisrICBBU1NFUlRfTk9fRkFUQUxfRkFJTFVSRShDaGVja0hhc2hBbGcoJnBz c1BhcmFtcywgaGFzaEFsZykpOworKyAgQVNTRVJUX05PX0ZBVEFMX0ZBSUxVUkUoQ2hlY2tNYXNr QWxnKCZwc3NQYXJhbXMsIGhhc2hBbGcpKTsKKysgIEFTU0VSVF9OT19GQVRBTF9GQUlMVVJFKENo ZWNrU2FsdExlbmd0aCgmcHNzUGFyYW1zLCBoYXNoQWxnKSk7CisrCisrICAvLyBUaGUgZGVmYXVs dCB0cmFpbGVyIGZpZWxkICgxKSBtdXN0IGJlIG9taXR0ZWQKKysgIEVYUEVDVF9FUShudWxscHRy LCBwc3NQYXJhbXMudHJhaWxlckZpZWxkLmRhdGEpOworIH0KKyAKKyBJTlNUQU5USUFURV9URVNU X1NVSVRFX1AoCisgICAgIFNpZ25QYXJhbXNUZXN0Q2FzZXMsIFNpZ25QYXJhbXNUZXN0LAorICAg ICA6OnRlc3Rpbmc6OkNvbWJpbmUoOjp0ZXN0aW5nOjpWYWx1ZXMoU0VDX09JRF9VTktOT1dOLCBT RUNfT0lEX1NIQTEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT RUNfT0lEX1NIQTIyNCwgU0VDX09JRF9TSEEyNTYsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTRUNfT0lEX1NIQTM4NCwgU0VDX09JRF9TSEE1MTIpLAorICAgICAg ICAgICAgICAgICAgICAgICAgOjp0ZXN0aW5nOjpWYWx1ZXMoU0VDX09JRF9VTktOT1dOLCBTRUNf T0lEX1NIQTEsCitkaWZmIC0tZ2l0IGEvbGliL2NyeXB0b2hpL3NlY2tleS5jIGIvbGliL2NyeXB0 b2hpL3NlY2tleS5jCistLS0gYS9saWIvY3J5cHRvaGkvc2Vja2V5LmMKKysrKyBiL2xpYi9jcnlw dG9oaS9zZWNrZXkuYworQEAgLTI4NzYsMjEgKzI4NzYsMjMgQEAgc2VjX0RlY29kZVJTQVBTU1Bh cmFtcyhQTEFyZW5hUG9vbCAqYXJlbgorICAgICBTRUNLRVlSU0FQU1NQYXJhbXMgcHNzUGFyYW1z OworICAgICBTRUNPaWRUYWcgaGFzaEFsZzsKKyAgICAgU0VDT2lkVGFnIG1hc2tIYXNoQWxnOwor ICAgICB1bnNpZ25lZCBsb25nIHNhbHRMZW5ndGg7CisgICAgIHVuc2lnbmVkIGxvbmcgdHJhaWxl ckZpZWxkOworICAgICBTRUNTdGF0dXMgcnY7CisgCisgICAgIFBPUlRfTWVtc2V0KCZwc3NQYXJh bXMsIDAsIHNpemVvZihwc3NQYXJhbXMpKTsKKy0gICAgcnYgPSBTRUNfUXVpY2tERVJEZWNvZGVJ dGVtKGFyZW5hLCAmcHNzUGFyYW1zLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg U0VDS0VZX1JTQVBTU1BhcmFtc1RlbXBsYXRlLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcGFyYW1zKTsKKy0gICAgaWYgKHJ2ICE9IFNFQ1N1Y2Nlc3MpIHsKKy0gICAgICAgIHJl dHVybiBydjsKKysgICAgaWYgKHBhcmFtcyAmJiAocGFyYW1zLT5sZW4gIT0gMCkpIHsKKysgICAg ICAgIHJ2ID0gU0VDX1F1aWNrREVSRGVjb2RlSXRlbShhcmVuYSwgJnBzc1BhcmFtcywKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRUNLRVlfUlNBUFNTUGFyYW1zVGVtcGxh dGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zKTsKKysgICAg ICAgIGlmIChydiAhPSBTRUNTdWNjZXNzKSB7CisrICAgICAgICAgICAgcmV0dXJuIHJ2OworKyAg ICAgICAgfQorICAgICB9CisgCisgICAgIGlmIChwc3NQYXJhbXMuaGFzaEFsZykgeworICAgICAg ICAgaGFzaEFsZyA9IFNFQ09JRF9HZXRBbGdvcml0aG1UYWcocHNzUGFyYW1zLmhhc2hBbGcpOwor ICAgICB9IGVsc2UgeworICAgICAgICAgaGFzaEFsZyA9IFNFQ19PSURfU0hBMTsgLyogZGVmYXVs dCwgU0hBLTEgKi8KKyAgICAgfQorIAorZGlmZiAtLWdpdCBhL2xpYi9jcnlwdG9oaS9zZWNzaWdu LmMgYi9saWIvY3J5cHRvaGkvc2Vjc2lnbi5jCistLS0gYS9saWIvY3J5cHRvaGkvc2Vjc2lnbi5j CisrKysgYi9saWIvY3J5cHRvaGkvc2Vjc2lnbi5jCitAQCAtODE0LDE2ICs4MTQsMTggQEAgc2Vj X0NyZWF0ZVJTQVBTU1BhcmFtZXRlcnMoUExBcmVuYVBvb2wgKgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFNFQ09pZFRhZyBoYXNoQWxnVGFnLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IFNFQ0l0ZW0gKnBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBp bnQgbW9kQnl0ZXMpCisgeworICAgICBTRUNLRVlSU0FQU1NQYXJhbXMgcHNzUGFyYW1zOworICAg ICBpbnQgaGFzaExlbmd0aDsKKyAgICAgdW5zaWduZWQgbG9uZyBzYWx0TGVuZ3RoOworICAgICBQ UkJvb2wgZGVmYXVsdFNIQTEgPSBQUl9GQUxTRTsKKysgICAgUFJCb29sIG92ZXJXcml0ZUhhc2gg PSBQUl9UUlVFOworKyAgICBQUkJvb2wgb3ZlcldyaXRlTWFzayA9IFBSX1RSVUU7CisgICAgIFNF Q1N0YXR1cyBydjsKKyAKKyAgICAgUE9SVF9NZW1zZXQoJnBzc1BhcmFtcywgMCwgc2l6ZW9mKHBz c1BhcmFtcykpOworIAorICAgICBpZiAocGFyYW1zICYmIHBhcmFtcy0+ZGF0YSkgeworICAgICAg ICAgLyogVGhlIHBhcmFtZXRlcnMgZmllbGQgc2hvdWxkIGVpdGhlciBiZSBlbXB0eSBvciBjb250 YWluCisgICAgICAgICAgKiB2YWxpZCBSU0EtUFNTIHBhcmFtZXRlcnMgKi8KKyAgICAgICAgIFBP UlRfQXNzZXJ0KCEocGFyYW1zLT5sZW4gPT0gMiAmJgorQEAgLTgzMSwxNiArODMzLDE4IEBAIHNl Y19DcmVhdGVSU0FQU1NQYXJhbWV0ZXJzKFBMQXJlbmFQb29sICoKKyAgICAgICAgICAgICAgICAg ICAgICAgcGFyYW1zLT5kYXRhWzFdID09IDApKTsKKyAgICAgICAgIHJ2ID0gU0VDX1F1aWNrREVS RGVjb2RlSXRlbShhcmVuYSwgJnBzc1BhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBTRUNLRVlfUlNBUFNTUGFyYW1zVGVtcGxhdGUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcGFyYW1zKTsKKyAgICAgICAgIGlmIChydiAhPSBTRUNTdWNj ZXNzKSB7CisgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgICB9CisgICAgICAgICBk ZWZhdWx0U0hBMSA9IFBSX1RSVUU7CisrICAgICAgICBvdmVyV3JpdGVIYXNoID0gUFJfRkFMU0U7 CisrICAgICAgICBvdmVyV3JpdGVNYXNrID0gUFJfRkFMU0U7CisgICAgIH0KKyAKKyAgICAgaWYg KHBzc1BhcmFtcy50cmFpbGVyRmllbGQuZGF0YSkgeworICAgICAgICAgdW5zaWduZWQgbG9uZyB0 cmFpbGVyRmllbGQ7CisgCisgICAgICAgICBydiA9IFNFQ19BU04xRGVjb2RlSW50ZWdlcigoU0VD SXRlbSAqKSZwc3NQYXJhbXMudHJhaWxlckZpZWxkLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJnRyYWlsZXJGaWVsZCk7CisgICAgICAgICBpZiAocnYgIT0gU0VDU3VjY2Vz cykgeworQEAgLTg1MSwxOSArODU1LDIxIEBAIHNlY19DcmVhdGVSU0FQU1NQYXJhbWV0ZXJzKFBM QXJlbmFQb29sICoKKyAgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgIH0KKyAgICAg fQorIAorICAgICAvKiBEZXRlcm1pbmUgdGhlIGhhc2ggYWxnb3JpdGhtIHRvIHVzZSwgYmFzZWQg b24gaGFzaEFsZ1RhZyBhbmQKKyAgICAgICogcHNzUGFyYW1zLmhhc2hBbGc7IHRoZXJlIGFyZSA2 ICBjYXNlcy4KKyAgICAgICogIGNhc2U6CisgICAgICAqICAxKSBXZSBoYXZlIHBhcmFtcyBhbmQg cGFyYW1zLmhhc2hBbGcgYW5kIHdlIGhhdmUgYSBzcGVjaWZpZWQgaGFzaEFsZ1RhZywKKy0gICAg ICogIG1ha2Ugc3VyZSB0aGF0IGhhc2hBbGdUYWcgc3BlY2lmaWVkIGJ5IHRoZSBhcHBpY2F0aW9u IG1hdGNoZXMuCisrICAgICAqICBtYWtlIHN1cmUgdGhhdCBoYXNoQWxnVGFnIHNwZWNpZmllZCBi eSB0aGUgYXBwaWNhdGlvbiBtYXRjaGVzLCBvdGhlcnNpemUgd2UKKysgICAgICogIG92ZXJ3cml0 ZSBwYXJhbXMuaGFzaEFsZyB3aXRoIGhhc2hBbGdUYWcuCisgICAgICAqICAyKSBXZSBoYXZlIHBh cmFtcywgYnV0IG5vIHBhcmFtcy5oYXNoQWxnIGFuZCB3ZSBoYXZlIGEgc3BlY2lmaWVkCistICAg ICAqICBoYXNoQWxnLCBtYWtlIHN1cmUgdGhlIGhhc2hBbGdUYWcgbWF0Y2hlcyBTRUNfT0lEX1NI QTEuCisrICAgICAqICBoYXNoQWxnLCBtYWtlIHN1cmUgdGhlIGhhc2hBbGdUYWcgbWF0Y2hlcyBT RUNfT0lEX1NIQTEsIG90aGVyd2lzZSB3ZQorKyAgICAgKiAgb3ZlcndyaXRlIHBhcmFtcy5oYXNo QWxnIHdpdGggaGFzaEFsZ1RhZy4uCisgICAgICAqICAzKSB3ZSBkaWQgbm90IHNwZWNpZnkgYW55 IHBhcmFtZXRlcnMgYnV0IHdlIGRpZCBzcGVjaWZpZWQKKyAgICAgICogIGEgaGFzaEFsZ1RhZy4g VXNlIHRoZSBzcGVjaWZpZWQgaGFzaCBhbGd0YWcuCisgICAgICAqICA0KSBXZSBoYXZlIHBhcmFt cyBhbmQgcGFyYW1zLmhhc2hBbGcgYW5kIHdlIGRpZCBub3Qgc3BlY2lmeSBhCisgICAgICAqICBo YXNoQWxnVGFnLCB1c2UgdGhlIGhhc2hBbGcgZnJvbSB0aGUgcGFyYW1ldGVyLgorICAgICAgKiAg NSkgV2UgaGF2ZSBwYXJhbXMsIGJ1dCBubyBwYXJhbXMuaGFzaEFsZyBhbmQgd2UgZGlkIG5vdCBz cGVjaWZ5IGEKKyAgICAgICogIGhhc2hBbGdUYWcsIHVzZSB0aGUgU0VDX09JRF9TSEExCisgICAg ICAqICA2KSBXZSBkaWQgbm90IHNwZWNpZnkgYW55IHBhcmFtZXRlcnMsIG5vciBkaWQgd2Ugc3Bl Y2lmeSBhCisgICAgICAqICBoYXNoQWxnVGFnLCB1c2UgdGhlIGtleSBzaXplIHRvIHNlbGVjdCBh biBhcHByb3ByaWF0ZSBoYXNoQWxnLgorQEAgLTg3MywzNiArODc5LDQyIEBAIHNlY19DcmVhdGVS U0FQU1NQYXJhbWV0ZXJzKFBMQXJlbmFQb29sICoKKyAKKyAgICAgICAgIGlmIChwc3NQYXJhbXMu aGFzaEFsZykgeworICAgICAgICAgICAgIHRhZyA9IFNFQ09JRF9HZXRBbGdvcml0aG1UYWcocHNz UGFyYW1zLmhhc2hBbGcpOworICAgICAgICAgfSBlbHNlIGlmIChkZWZhdWx0U0hBMSkgeworICAg ICAgICAgICAgIHRhZyA9IFNFQ19PSURfU0hBMTsKKyAgICAgICAgIH0KKyAKKyAgICAgICAgIGlm ICh0YWcgIT0gU0VDX09JRF9VTktOT1dOICYmIHRhZyAhPSBoYXNoQWxnVGFnKSB7CistICAgICAg ICAgICAgUE9SVF9TZXRFcnJvcihTRUNfRVJST1JfSU5WQUxJRF9BUkdTKTsKKy0gICAgICAgICAg ICByZXR1cm4gTlVMTDsKKysgICAgICAgICAgICBvdmVyV3JpdGVIYXNoID0gUFJfVFJVRTsKKyAg ICAgICAgIH0KKyAgICAgfSBlbHNlIGlmIChoYXNoQWxnVGFnID09IFNFQ19PSURfVU5LTk9XTikg eworICAgICAgICAgaWYgKHBzc1BhcmFtcy5oYXNoQWxnKSB7CisgICAgICAgICAgICAgaGFzaEFs Z1RhZyA9IFNFQ09JRF9HZXRBbGdvcml0aG1UYWcocHNzUGFyYW1zLmhhc2hBbGcpOworICAgICAg ICAgfSBlbHNlIGlmIChkZWZhdWx0U0hBMSkgeworICAgICAgICAgICAgIGhhc2hBbGdUYWcgPSBT RUNfT0lEX1NIQTE7CisgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgIC8qIEZpbmQgYSBz dWl0YWJsZSBoYXNoIGFsZ29yaXRobSBiYXNlZCBvbiB0aGUgTklTVCByZWNvbW1lbmRhdGlvbiAq LworICAgICAgICAgICAgIGlmIChtb2RCeXRlcyA8PSAzODQpIHsgLyogMTI4LCBpbiBOSVNUIDgw MC01NywgUGFydCAxICovCisgICAgICAgICAgICAgICAgIGhhc2hBbGdUYWcgPSBTRUNfT0lEX1NI QTI1NjsKKyAgICAgICAgICAgICB9IGVsc2UgaWYgKG1vZEJ5dGVzIDw9IDk2MCkgeyAvKiAxOTIs IE5JU1QgODAwLTU3LCBQYXJ0IDEgKi8KKyAgICAgICAgICAgICAgICAgaGFzaEFsZ1RhZyA9IFNF Q19PSURfU0hBMzg0OworICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgIGhh c2hBbGdUYWcgPSBTRUNfT0lEX1NIQTUxMjsKKyAgICAgICAgICAgICB9CisrICAgICAgICAgICAg b3ZlcldyaXRlSGFzaCA9IFBSX1RSVUU7CisgICAgICAgICB9CisgICAgIH0KKyAKKysgICAgLyog aGFuZGxlIHRoZSBjYXNlIHdoZXJlIHRoZSBwYXJhbXMgaW52YWxpZGx5IGVuY29kZWQgU0VDX09J RF9TSEExLiBUaGlzCisrICAgICAqIHdpbGwgZm9yY2UgdGhlIGNvcnJlY3QgZW5jb2RpbmcgKi8K KysgICAgaWYgKChoYXNoQWxnVGFnID09IFNFQ19PSURfU0hBMSkgJiYgcHNzUGFyYW1zLmhhc2hB bGcpIHsKKysgICAgICAgIG92ZXJXcml0ZUhhc2ggPSBQUl9UUlVFOworKyAgICB9CisrCisgICAg IC8qIGV4cGxpY2l0bHkgcmVzdHJpY3QgaGFzaEFsZyB0byBTSEEyIHZhcmlhbnRzICovCisgICAg IGlmIChoYXNoQWxnVGFnICE9IFNFQ19PSURfU0hBMSAmJiBoYXNoQWxnVGFnICE9IFNFQ19PSURf U0hBMjI0ICYmCisgICAgICAgICBoYXNoQWxnVGFnICE9IFNFQ19PSURfU0hBMjU2ICYmIGhhc2hB bGdUYWcgIT0gU0VDX09JRF9TSEEzODQgJiYKKyAgICAgICAgIGhhc2hBbGdUYWcgIT0gU0VDX09J RF9TSEE1MTIpIHsKKyAgICAgICAgIFBPUlRfU2V0RXJyb3IoU0VDX0VSUk9SX0lOVkFMSURfQUxH T1JJVEhNKTsKKyAgICAgICAgIHJldHVybiBOVUxMOworICAgICB9CisgCitAQCAtOTI3LDIzICs5 MzksMjQgQEAgc2VjX0NyZWF0ZVJTQVBTU1BhcmFtZXRlcnMoUExBcmVuYVBvb2wgKgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwc3NQYXJhbXMubWFza0FsZy0+cGFyYW1l dGVycyk7CisgICAgICAgICBpZiAocnYgIT0gU0VDU3VjY2VzcykgeworICAgICAgICAgICAgIHJl dHVybiBOVUxMOworICAgICAgICAgfQorIAorICAgICAgICAgLyogRm9sbG93aW5nIHRoZSByZWNv bW1lbmRhdGlvbiBpbiBSRkMgNDA1NSwgYXNzdW1lIHRoZSBoYXNoCisgICAgICAgICAgKiBhbGdv cml0aG0gaWRlbnRpY2FsIHRvIHBzc1BhcmFtLmhhc2hBbGcgKi8KKyAgICAgICAgIGlmIChTRUNP SURfR2V0QWxnb3JpdGhtVGFnKCZtYXNrSGFzaEFsZykgIT0gaGFzaEFsZ1RhZykgeworLSAgICAg ICAgICAgIFBPUlRfU2V0RXJyb3IoU0VDX0VSUk9SX0lOVkFMSURfQUxHT1JJVEhNKTsKKy0gICAg ICAgICAgICByZXR1cm4gTlVMTDsKKysgICAgICAgICAgICBvdmVyV3JpdGVNYXNrID0gUFJfVFJV RTsKKysgICAgICAgIH0KKysgICAgICAgIGlmIChoYXNoQWxnVGFnID09IFNFQ19PSURfU0hBMSkg eworKyAgICAgICAgICAgIG92ZXJXcml0ZU1hc2sgPSBQUl9UUlVFOworICAgICAgICAgfQorICAg ICB9IGVsc2UgaWYgKGRlZmF1bHRTSEExKSB7CisgICAgICAgICBpZiAoaGFzaEFsZ1RhZyAhPSBT RUNfT0lEX1NIQTEpIHsKKy0gICAgICAgICAgICBQT1JUX1NldEVycm9yKFNFQ19FUlJPUl9JTlZB TElEX0FMR09SSVRITSk7CistICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisrICAgICAgICAgICAg b3ZlcldyaXRlTWFzayA9IFBSX1RSVUU7CisgICAgICAgICB9CisgICAgIH0KKyAKKyAgICAgaGFz aExlbmd0aCA9IEhBU0hfUmVzdWx0TGVuQnlPaWRUYWcoaGFzaEFsZ1RhZyk7CisgCisgICAgIGlm IChtb2RCeXRlcyA8IGhhc2hMZW5ndGggKyAyKSB7CisgICAgICAgICBQT1JUX1NldEVycm9yKFNF Q19FUlJPUl9JTlZBTElEX0FSR1MpOworICAgICAgICAgcmV0dXJuIE5VTEw7CitAQCAtOTYxLDQy ICs5NzQsMzggQEAgc2VjX0NyZWF0ZVJTQVBTU1BhcmFtZXRlcnMoUExBcmVuYVBvb2wgKgorICAg ICAgICAgICAgIFBPUlRfU2V0RXJyb3IoU0VDX0VSUk9SX0lOVkFMSURfQVJHUyk7CisgICAgICAg ICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgICB9CisgICAgIH0gZWxzZSBpZiAoZGVmYXVsdFNI QTEpIHsKKyAgICAgICAgIHNhbHRMZW5ndGggPSAyMDsKKyAgICAgfQorIAorICAgICAvKiBGaWxs IGluIHRoZSBwYXJhbWV0ZXJzICovCistICAgIGlmIChwc3NQYXJhbXMuaGFzaEFsZykgeworKyAg ICBpZiAob3ZlcldyaXRlSGFzaCkgeworICAgICAgICAgaWYgKGhhc2hBbGdUYWcgPT0gU0VDX09J RF9TSEExKSB7CisgICAgICAgICAgICAgLyogT21pdCBoYXNoQWxnIGlmIHRoZSB0aGUgYWxnb3Jp dGhtIGlzIFNIQS0xIChkZWZhdWx0KSAqLworICAgICAgICAgICAgIHBzc1BhcmFtcy5oYXNoQWxn ID0gTlVMTDsKKy0gICAgICAgIH0KKy0gICAgfSBlbHNlIHsKKy0gICAgICAgIGlmIChoYXNoQWxn VGFnICE9IFNFQ19PSURfU0hBMSkgeworKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICBw c3NQYXJhbXMuaGFzaEFsZyA9IFBPUlRfQXJlbmFaQWxsb2MoYXJlbmEsIHNpemVvZihTRUNBbGdv cml0aG1JRCkpOworICAgICAgICAgICAgIGlmICghcHNzUGFyYW1zLmhhc2hBbGcpIHsKKyAgICAg ICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIHJ2 ID0gU0VDT0lEX1NldEFsZ29yaXRobUlEKGFyZW5hLCBwc3NQYXJhbXMuaGFzaEFsZywgaGFzaEFs Z1RhZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyAg ICAgICAgICAgICBpZiAocnYgIT0gU0VDU3VjY2VzcykgeworICAgICAgICAgICAgICAgICByZXR1 cm4gTlVMTDsKKyAgICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgIH0KKyAKKy0gICAgaWYg KHBzc1BhcmFtcy5tYXNrQWxnKSB7CisrICAgIGlmIChvdmVyV3JpdGVNYXNrKSB7CisgICAgICAg ICBpZiAoaGFzaEFsZ1RhZyA9PSBTRUNfT0lEX1NIQTEpIHsKKyAgICAgICAgICAgICAvKiBPbWl0 IG1hc2tBbGcgaWYgdGhlIHRoZSBhbGdvcml0aG0gaXMgU0hBLTEgKGRlZmF1bHQpICovCisgICAg ICAgICAgICAgcHNzUGFyYW1zLm1hc2tBbGcgPSBOVUxMOworLSAgICAgICAgfQorLSAgICB9IGVs c2UgeworLSAgICAgICAgaWYgKGhhc2hBbGdUYWcgIT0gU0VDX09JRF9TSEExKSB7CisrICAgICAg ICB9IGVsc2UgeworICAgICAgICAgICAgIFNFQ0l0ZW0gKmhhc2hBbGdJdGVtOworIAorICAgICAg ICAgICAgIFBPUlRfQXNzZXJ0KHBzc1BhcmFtcy5oYXNoQWxnICE9IE5VTEwpOworIAorICAgICAg ICAgICAgIGhhc2hBbGdJdGVtID0gU0VDX0FTTjFFbmNvZGVJdGVtKGFyZW5hLCBOVUxMLCBwc3NQ YXJhbXMuaGFzaEFsZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTRUNfQVNOMV9HRVQoU0VDT0lEX0FsZ29yaXRobUlEVGVtcGxhdGUpKTsKKyAgICAgICAg ICAgICBpZiAoIWhhc2hBbGdJdGVtKSB7CisgICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwor QEAgLTEwODYsMTcgKzEwOTUsMTYgQEAgU0VDX0NyZWF0ZVNpZ25hdHVyZUFsZ29yaXRobVBhcmFt ZXRlcnMoUAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFNF Q0l0ZW0gKnBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBTRUNLRVlQcml2YXRlS2V5ICprZXkpCisgeworICAgICBQT1JUX1NldEVycm9yKDApOwor ICAgICBzd2l0Y2ggKHNpZ25BbGdUYWcpIHsKKyAgICAgICAgIGNhc2UgU0VDX09JRF9QS0NTMV9S U0FfUFNTX1NJR05BVFVSRToKKyAgICAgICAgICAgICByZXR1cm4gU0VDX0NyZWF0ZVJTQVBTU1Bh cmFtZXRlcnMoYXJlbmEsIHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaGFzaEFsZ1RhZywgcGFyYW1zLCBrZXksIE5VTEwpOworLQorICAgICAg ICAgZGVmYXVsdDoKKyAgICAgICAgICAgICBpZiAocGFyYW1zID09IE5VTEwpCisgICAgICAgICAg ICAgICAgIHJldHVybiBOVUxMOworICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gTlVMTCkKKyAg ICAgICAgICAgICAgICAgcmVzdWx0ID0gU0VDSVRFTV9BbGxvY0l0ZW0oYXJlbmEsIE5VTEwsIDAp OworICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgICBy ZXR1cm4gTlVMTDsKKyAgICAgICAgICAgICB9CitAQCAtMTExMiwxNiArMTEyMCwxOSBAQCBTRUNf Q3JlYXRlVmVyaWZ5QWxnb3JpdGhtUGFyYW1ldGVycyhQTEFyCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgU0VDT2lkVGFnIHNpZ25BbGdUYWcsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgU0VDT2lkVGFnIGhhc2hBbGdUYWcsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU0VDSXRlbSAqcGFyYW1zLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFNFQ0tFWVB1YmxpY0tleSAqa2V5KQor IHsKKyAgICAgUE9SVF9TZXRFcnJvcigwKTsKKyAgICAgc3dpdGNoIChzaWduQWxnVGFnKSB7Cisg ICAgICAgICBjYXNlIFNFQ19PSURfUEtDUzFfUlNBX1BTU19TSUdOQVRVUkU6CisrICAgICAgICAg ICAgaWYgKChoYXNoQWxnVGFnID09IFNFQ19PSURfVU5LTk9XTikgJiYgKChwYXJhbXMgPT0gTlVM TCkgfHwgKHBhcmFtcy0+bGVuID09IDApKSl7CisrICAgICAgICAgICAgICAgIHJldHVybiBOVUxM OworKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICByZXR1cm4gU0VDX0NyZWF0ZVJTQVBTU1Bh cmFtZXRlcnMoYXJlbmEsIHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaGFzaEFsZ1RhZywgcGFyYW1zLCBOVUxMLCBrZXkpOworIAorICAgICAg ICAgZGVmYXVsdDoKKyAgICAgICAgICAgICBpZiAocGFyYW1zID09IE5VTEwpCisgICAgICAgICAg ICAgICAgIHJldHVybiBOVUxMOworICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gTlVMTCkKKyAg ICAgICAgICAgICAgICAgcmVzdWx0ID0gU0VDSVRFTV9BbGxvY0l0ZW0oYXJlbmEsIE5VTEwsIDAp OworZGlmZiAtLWdpdCBhL3Rlc3RzL2NlcnQvY2VydC5zaCBiL3Rlc3RzL2NlcnQvY2VydC5zaAor LS0tIGEvdGVzdHMvY2VydC9jZXJ0LnNoCisrKysgYi90ZXN0cy9jZXJ0L2NlcnQuc2gKK0BAIC0y MjM0LDIwICsyMjM0LDE4IEBAIEVPRgorICAgIyBTaWduYXR1cmU6IFJTQS1QU1MgKHdpdGggY29u ZmxpY3RpbmcgaGFzaCBhbGdvcml0aG0pCisgICBDRVJUTkFNRT0iVGVzdFVzZXItcnNhLXBzczci CisgCisgICBDVV9BQ1RJT049IkdlbmVyYXRlIENlcnQgUmVxdWVzdCBmb3IgJENFUlROQU1FIgor ICAgQ1VfU1VCSkVDVD0iQ049JENFUlROQU1FLCBFPSR7Q0VSVE5BTUV9QGV4YW1wbGUuY29tLCBP PUJPR1VTIE5TUywgTD1Nb3VudGFpbiBWaWV3LCBTVD1DYWxpZm9ybmlhLCBDPVVTIgorICAgY2Vy dHUgLVIgLWQgIiR7UFJPRklMRURJUn0iIC1mICIke1JfUFdGSUxFfSIgLXogIiR7Ul9OT0lTRV9G SUxFfSIgLS1wc3MgLW8gcmVxICAyPiYxCisgCisgICBDVV9BQ1RJT049IlNpZ24gJHtDRVJUTkFN RX0ncyBSZXF1ZXN0IgorLSAgUkVURVhQRUNURUQ9MjU1CisgICBjZXJ0dSAtQyAtYyAiVGVzdENB LXJzYS1wc3MiIC0tcHNzLXNpZ24gLVogU0hBNTEyIC1tICIke0NFUlRTRVJJQUx9IiAtdiA2MCAt ZCAiJHtQX1JfQ0FESVJ9IiBcCisgICAgICAgICAtaSByZXEgLW8gIiR7Q0VSVE5BTUV9LmNlcnQi IC1mICIke1JfUFdGSUxFfSIgIiQxIiAyPiYxCistICBSRVRFWFBFQ1RFRD0wCisgCisgICBDRVJU U0VSSUFMPWBleHByICRDRVJUU0VSSUFMICsgMWAKKyAKKyAgICMgU3ViamVjdCBjZXJ0aWZpY2F0 ZTogUlNBLVBTUworICAgIyBJc3N1ZXIgY2VydGlmaWNhdGU6IFJTQS1QU1MKKyAgICMgU2lnbmF0 dXJlOiBSU0EtUFNTICh3aXRoIGNvbXBhdGlibGUgaGFzaCBhbGdvcml0aG0pCisgICBDRVJUTkFN RT0iVGVzdFVzZXItcnNhLXBzczgiCisgCitAQCAtMjM0NSwyMCArMjM0MywxOCBAQCBFT0YKKyAg ICMgU2lnbmF0dXJlOiBSU0EtUFNTICh3aXRoIGNvbmZsaWN0aW5nIGhhc2ggYWxnb3JpdGhtLCBk ZWZhdWx0IHBhcmFtZXRlcnMpCisgICBDRVJUTkFNRT0iVGVzdFVzZXItcnNhLXBzczExIgorIAor ICAgQ1VfQUNUSU9OPSJHZW5lcmF0ZSBDZXJ0IFJlcXVlc3QgZm9yICRDRVJUTkFNRSIKKyAgIENV X1NVQkpFQ1Q9IkNOPSRDRVJUTkFNRSwgRT0ke0NFUlROQU1FfUBleGFtcGxlLmNvbSwgTz1CT0dV UyBOU1MsIEw9TW91bnRhaW4gVmlldywgU1Q9Q2FsaWZvcm5pYSwgQz1VUyIKKyAgIGNlcnR1IC1S IC1kICIke1BST0ZJTEVESVJ9IiAtZiAiJHtSX1BXRklMRX0iIC16ICIke1JfTk9JU0VfRklMRX0i IC0tcHNzIC1vIHJlcSAgMj4mMQorIAorICAgQ1VfQUNUSU9OPSJTaWduICR7Q0VSVE5BTUV9J3Mg UmVxdWVzdCIKKy0gIFJFVEVYUEVDVEVEPTI1NQorICAgY2VydHUgLUMgLWMgIlRlc3RDQS1yc2Et cHNzLXNoYTEiIC0tcHNzLXNpZ24gLVogU0hBMjU2IC1tICIke0NFUlRTRVJJQUx9IiAtdiA2MCAt ZCAiJHtQX1JfQ0FESVJ9IiBcCisgICAgICAgICAtaSByZXEgLW8gIiR7Q0VSVE5BTUV9LmNlcnQi IC1mICIke1JfUFdGSUxFfSIgIiQxIiAyPiYxCistICBSRVRFWFBFQ1RFRD0wCisgfQorIAorIGNl cnRfdGVzdF9vcnBoYW5fa2V5X2RlbGV0ZSgpCisgeworICAgQ1VfQUNUSU9OPSJDcmVhdGUgb3Jw aGFuIGtleSBpbiBzZXJ2ZXJkaXIiCisgICBjZXJ0dSAtRyAtayBlYyAtcSBuaXN0cDI1NiAtZiAi JHtSX1BXRklMRX0iIC16ICR7Ul9OT0lTRV9GSUxFfSAtZCAke1BST0ZJTEVESVJ9CisgICAjIExl dCdzIGdldCB0aGUga2V5IElEIG9mIHRoZSBmaXJzdCBvcnBoYW4ga2V5LgorICAgIyBUaGUgb3V0 cHV0IG9mIGNlcnR1dGlsIC1LIChsaXN0IGtleXMpIGlzbid0IHdlbGwgZm9ybWF0dGVkLgoKZGlm ZiAtLWdpdCBhL25zcy0zLjEyNC1maXBzLWtleS1pbXBvcnQtZml4LnBhdGNoIGIvbnNzLTMuMTI0 LWZpcHMta2V5LWltcG9ydC1maXgucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uMzQ2ZGFhNQotLS0gL2Rldi9udWxsCisrKyBiL25zcy0zLjEyNC1maXBzLWtleS1pbXBv cnQtZml4LnBhdGNoCkBAIC0wLDAgKzEsMTM3IEBACitkaWZmIC0tZ2l0IGEvbGliL3BrMTF3cmFw L3BrMTFza2V5LmMgYi9saWIvcGsxMXdyYXAvcGsxMXNrZXkuYworLS0tIGEvbGliL3BrMTF3cmFw L3BrMTFza2V5LmMKKysrKyBiL2xpYi9wazExd3JhcC9wazExc2tleS5jCitAQCAtNDM2LDExICs0 MzYsMTEgQEAKKyB9CisgCisgc3RhdGljIFBLMTFTeW1LZXkgKgorIHBrMTFfSW1wb3J0U3ltS2V5 V2l0aFRlbXBsKFBLMTFTbG90SW5mbyAqc2xvdCwgQ0tfTUVDSEFOSVNNX1RZUEUgdHlwZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQSzExT3JpZ2luIG9yaWdpbiwgUFJCb29sIGlzVG9r ZW4sIENLX0FUVFJJQlVURSAqa2V5VGVtcGxhdGUsCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgdW5zaWduZWQgaW50IHRlbXBsYXRlQ291bnQsIFNFQ0l0ZW0gKmtleSwgdm9pZCAqd2luY3gp CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHRlbXBsYXRlQ291bnQs IFNFQ0l0ZW0gKmtleSwgUFJCb29sIGZvcmNlLCB2b2lkICp3aW5jeCkKKyB7CisgICAgIFBLMTFT eW1LZXkgKnN5bUtleTsKKyAgICAgU0VDU3RhdHVzIHJ2OworIAorICAgICBzeW1LZXkgPSBwazEx X0NyZWF0ZVN5bUtleShzbG90LCB0eXBlLCAhaXNUb2tlbiwgUFJfVFJVRSwgd2luY3gpOworQEAg LTQ2MSwxNiArNDYxLDY1IEBACisgICAgIHN5bUtleS0+b3JpZ2luID0gb3JpZ2luOworIAorICAg ICAvKiBpbXBvcnQgdGhlIGtleXMgKi8KKyAgICAgcnYgPSBQSzExX0NyZWF0ZU5ld09iamVjdChz bG90LCBzeW1LZXktPnNlc3Npb24sIGtleVRlbXBsYXRlLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHRlbXBsYXRlQ291bnQsIGlzVG9rZW4sICZzeW1LZXktPm9iamVjdElEKTsKKy0g ICAgaWYgKHJ2ICE9IFNFQ1N1Y2Nlc3MpIHsKKysgICAgaWYgKHJ2ID09IFNFQ1N1Y2Nlc3MpIHsK KysgICAgICAgIHJldHVybiBzeW1LZXk7CisrICAgIH0KKysgICAgLyogd2UgZmFpbGVkIHRvIGNy ZWF0ZSB0aGUga2V5LCBpZiBmb3JjZSBpc24ndCBzZXQsIHdlIGp1c3QgZmFpbCBub3cgKi8KKysg ICAgaWYgKCFmb3JjZSkgeworKyAgICAgICAgUEsxMV9GcmVlU3ltS2V5KHN5bUtleSk7CisrICAg ICAgICByZXR1cm4gTlVMTDsKKysgICAgfQorKyAgICAvKiBpZiBmb3JjZSBpcyBzZXQsIHdlIGFy ZSBzaW11bGF0aW5nIGFuIHVud3JhcCwgcHJvYmFibHkgZnJvbSBhbm90aGVyIHRva2VuLCB3ZQor KyAgICAgKiBhcmUgcHJvYmFibHkgaGVyZSBiZWNhdXNlIHdlIGFyZSB0cnlpbmcgdG8gaW1wb3J0 IGludG8gYSBGSVBTIHRva2VuLiBOb3JtYWxseQorKyAgICAgKiB3ZSB3b3VsZCB3YW50IHRoaXMg dG8gZmFpbCwgYnV0IHRoZSBhcHBsaWNhdGlvbiBnb3QgaGVyZSBiZWNhdXNlIHRoZXkgYXJlIHVz aW5nCisrICAgICAqIHVud3JhcCwgd2hpY2ggaXMgdGhlIGNvcnJlY3Qgd2F5IHRvICBkbyB0aGlz LCBzbyB0cnkgdG8gaW1wb3J0IHRoZSBrZXkgaW50bworKyAgICAgKiB0aGUgRklQUyB0b2tlbiBt eSBoYW5kICovCisrICAgIC8qIGZpcnN0IGdlbmVyYXRlIGEgc2VlZCBrZXkgKi8KKysgICAgUEsx MVN5bUtleSAqc2VlZEtleSA9IFBLMTFfS2V5R2VuKHNsb3QsIENLTV9TSEEyNTZfSE1BQywgTlVM TCwgMjU2LCB3aW5jeCk7CisrCisrICAgIGlmIChzZWVkS2V5ID09IE5VTEwpIHsKKyAgICAgICAg IFBLMTFfRnJlZVN5bUtleShzeW1LZXkpOworICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgIH0K KyAKKy0gICAgcmV0dXJuIHN5bUtleTsKKysgICAgLyogbm93IGFwcGVuZCBvdXIga2V5IGRhdGEg dG8gdGhlIHNlZWQga2V5IGFuZCB0cnVuY2F0ZSB0aGUgc2VlZCBrZXkgKi8KKysgICAgQ0tfS0VZ X0RFUklWQVRJT05fU1RSSU5HX0RBVEEgcGFyYW1zID0geyAwIH07CisrICAgIENLX01FQ0hBTklT TSBtZWNoYW5pc20gPSB7IDAsIE5VTEwsIDAgfTsKKysgICAgcGFyYW1zLnBEYXRhID0ga2V5LT5k YXRhOworKyAgICBwYXJhbXMudWxMZW4gPSBrZXktPmxlbjsKKysgICAgbWVjaGFuaXNtLm1lY2hh bmlzbSA9IENLTV9DT05DQVRFTkFURV9EQVRBX0FORF9CQVNFOworKyAgICBtZWNoYW5pc20ucFBh cmFtZXRlciA9ICZwYXJhbXM7CisrICAgIG1lY2hhbmlzbS51bFBhcmFtZXRlckxlbiA9IHNpemVv ZihwYXJhbXMpOworKworKyAgICAvKiBkZXJpdmUgcmVtb3ZlZCB0aGUgQ0tBX1ZBTFVFX0xFTiBi ZWZvcmUgaXQgY2FsbGVkIHVzLCBidXQgbm93IHdlIG5lZWQKKysgICAgICogaXQgYmFjay4gV2Ug a25vdyB0aGVyZSBpcyBzcGFjZSBpbiB0aGUgdGVtcGxhdGUgYmVjYXVzZSBkZXJpdmUgbGVhdmVz CisrICAgICAqIHNwYWNlIGZvciB0aGUgQ0tBX1ZBTFVFX0xFTiBhdHRyaWJ1dGUuIEFueSBvdGhl ciBjYWxsZXJzIHRoYXQgc2V0IGZvcmNlCisrICAgICAqIHNob3VsZCBhbHNvIG1ha2Ugc3VyZSB0 aGVyZSBpcyBzcGFjZSBmb3IgdGhlIENLQV9WQUxVRV9MRU4gKi8KKysgICAgQ0tfVUxPTkcgdmFs dWVMZW47IC8qIERvbid0IGRlZmluZSB0aGlzIGluIHRoZSAnaWYnIHN0YXRlbWVudCwgYmVjYXVz ZSBpdAorKyAgICAgICAgICAgICAgICAgICAgICAgICogd291bGQgZ28gb3V0IG9mIHNjb3BlIGJl Zm9yZSB3ZSB1c2UgaXQgKi8KKysgICAgaWYgKCFwazExX0ZpbmRBdHRySW5UZW1wbGF0ZShrZXlU ZW1wbGF0ZSwgdGVtcGxhdGVDb3VudCwgQ0tBX1ZBTFVFX0xFTikpIHsKKysgICAgICAgIHZhbHVl TGVuID0gKENLX1VMT05HKWtleS0+bGVuOworKyAgICAgICAga2V5VGVtcGxhdGVbdGVtcGxhdGVD b3VudF0udHlwZSA9IENLQV9WQUxVRV9MRU47CisrICAgICAgICBrZXlUZW1wbGF0ZVt0ZW1wbGF0 ZUNvdW50XS5wVmFsdWUgPSAodm9pZCAqKSZ2YWx1ZUxlbjsKKysgICAgICAgIGtleVRlbXBsYXRl W3RlbXBsYXRlQ291bnRdLnVsVmFsdWVMZW4gPSBzaXplb2YodmFsdWVMZW4pOworKyAgICAgICAg dGVtcGxhdGVDb3VudCsrOworKyAgICB9CisrCisrICAgIENLX1JWIGNydiA9IFBLMTFfR0VUVEFC KHNsb3QpLT5DX0Rlcml2ZUtleShzeW1LZXktPnNlc3Npb24sICZtZWNoYW5pc20sCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWVkS2V5LT5vYmplY3RJ RCwga2V5VGVtcGxhdGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0ZW1wbGF0ZUNvdW50LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJnN5bUtleS0+b2JqZWN0SUQpOworKyAgICBQSzExX0ZyZWVTeW1LZXko c2VlZEtleSk7CisrICAgIGlmIChjcnYgPT0gQ0tSX09LKSB7CisrICAgICAgICByZXR1cm4gc3lt S2V5OworKyAgICB9CisrCisrICAgIFBLMTFfRnJlZVN5bUtleShzeW1LZXkpOworKyAgICByZXR1 cm4gTlVMTDsKKyB9CisgCisgLyoKKyAgKiB0dXJuIGtleSBiaXRzIGludG8gYW4gYXBwcm9wcmlh dGUga2V5IG9iamVjdAorICAqLworQEAgLTUwNCwxMSArNTUzLDExIEBACisgICAgIHRlbXBsYXRl Q291bnQgPSBhdHRycyAtIGtleVRlbXBsYXRlOworICAgICBQUl9BU1NFUlQodGVtcGxhdGVDb3Vu dCArIDEgPD0gc2l6ZW9mKGtleVRlbXBsYXRlKSAvIHNpemVvZihDS19BVFRSSUJVVEUpKTsKKyAK KyAgICAga2V5VHlwZSA9IFBLMTFfR2V0S2V5VHlwZSh0eXBlLCBrZXktPmxlbik7CisgICAgIHN5 bUtleSA9IHBrMTFfSW1wb3J0U3ltS2V5V2l0aFRlbXBsKHNsb3QsIHR5cGUsIG9yaWdpbiwgUFJf RkFMU0UsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleVRlbXBs YXRlLCB0ZW1wbGF0ZUNvdW50LCBrZXksIHdpbmN4KTsKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAga2V5VGVtcGxhdGUsIHRlbXBsYXRlQ291bnQsIGtleSwgUFJfRkFM U0UsIHdpbmN4KTsKKyAgICAgcmV0dXJuIHN5bUtleTsKKyB9CisgLyogSW1wb3J0IGEgUEtDUyAj MTEgZGF0YSBvYmplY3QgYW5kIHJldHVybiBpdCBhcyBhIGtleS4gVGhpcyBrZXkgaXMKKyAgKiBv bmx5IHVzZWZ1bCBpbiBhIGxpbWl0ZWQgbnVtYmVyIG9mIG1lY2hhbmlzbXMsIHN1Y2ggYXMgSEtE Ri4gKi8KKyBQSzExU3ltS2V5ICoKK0BAIC01ODMsMTEgKzYzMiwxMSBAQAorICAgICB0ZW1wbGF0 ZUNvdW50ID0gYXR0cnMgLSBrZXlUZW1wbGF0ZTsKKyAgICAgUFJfQVNTRVJUKHRlbXBsYXRlQ291 bnQgKyAxIDw9IHNpemVvZihrZXlUZW1wbGF0ZSkgLyBzaXplb2YoQ0tfQVRUUklCVVRFKSk7Cisg CisgICAgIGtleVR5cGUgPSBQSzExX0dldEtleVR5cGUodHlwZSwga2V5LT5sZW4pOworICAgICBz eW1LZXkgPSBwazExX0ltcG9ydFN5bUtleVdpdGhUZW1wbChzbG90LCB0eXBlLCBvcmlnaW4sIGlz UGVybSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5VGVtcGxh dGUsIHRlbXBsYXRlQ291bnQsIGtleSwgd2luY3gpOworKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBrZXlUZW1wbGF0ZSwgdGVtcGxhdGVDb3VudCwga2V5LCBQUl9GQUxT RSwgd2luY3gpOworICAgICBpZiAoc3ltS2V5ICYmIGlzUGVybSkgeworICAgICAgICAgc3ltS2V5 LT5vd25lciA9IFBSX0ZBTFNFOworICAgICB9CisgICAgIHJldHVybiBzeW1LZXk7CisgfQorQEAg LTI2NjcsMTEgKzI3MTYsMTEgQEAKKyAgICAgb3V0S2V5LnR5cGUgPSBzaUJ1ZmZlcjsKKyAKKyAg ICAgaWYgKFBLMTFfRG9lc01lY2hhbmlzbShzbG90LCB0YXJnZXQpKSB7CisgICAgICAgICBzeW1L ZXkgPSBwazExX0ltcG9ydFN5bUtleVdpdGhUZW1wbChzbG90LCB0YXJnZXQsIFBLMTFfT3JpZ2lu VW53cmFwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNQ ZXJtLCBrZXlUZW1wbGF0ZSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHRlbXBsYXRlQ291bnQsICZvdXRLZXksIHdpbmN4KTsKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlQ291bnQsICZvdXRLZXksIFBSX1RS VUUsIHdpbmN4KTsKKyAgICAgfSBlbHNlIHsKKyAgICAgICAgIHNsb3QgPSBQSzExX0dldEJlc3RT bG90KHRhcmdldCwgd2luY3gpOworICAgICAgICAgaWYgKHNsb3QgPT0gTlVMTCkgeworICAgICAg ICAgICAgIFBPUlRfU2V0RXJyb3IoU0VDX0VSUk9SX05PX01PRFVMRSk7CisgICAgICAgICAgICAg UE9SVF9GcmVlKG91dEtleS5kYXRhKTsKK0BAIC0yNjc5LDExICsyNzI4LDExIEBACisgICAgICAg ICAgICAgICAgICpjcnZwID0gQ0tSX0RFVklDRV9FUlJPUjsKKyAgICAgICAgICAgICByZXR1cm4g TlVMTDsKKyAgICAgICAgIH0KKyAgICAgICAgIHN5bUtleSA9IHBrMTFfSW1wb3J0U3ltS2V5V2l0 aFRlbXBsKHNsb3QsIHRhcmdldCwgUEsxMV9PcmlnaW5VbndyYXAsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1Blcm0sIGtleVRlbXBsYXRlLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGVDb3VudCwgJm91 dEtleSwgd2luY3gpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdGVtcGxhdGVDb3VudCwgJm91dEtleSwgUFJfVFJVRSwgd2luY3gpOworICAgICAgICAgUEsx MV9GcmVlU2xvdChzbG90KTsKKyAgICAgfQorICAgICBQT1JUX0ZyZWUob3V0S2V5LmRhdGEpOwor IAorICAgICBpZiAoY3J2cCkKKwoKZGlmZiAtLWdpdCBhL25zcy0zLjEyNC1maXgtcHViLWtleS1p bXBvcnQtZW5jYXBzdWxhdGUucGF0Y2ggYi9uc3MtMy4xMjQtZml4LXB1Yi1rZXktaW1wb3J0LWVu Y2Fwc3VsYXRlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5Y2Nj YzcKLS0tIC9kZXYvbnVsbAorKysgYi9uc3MtMy4xMjQtZml4LXB1Yi1rZXktaW1wb3J0LWVuY2Fw c3VsYXRlLnBhdGNoCkBAIC0wLDAgKzEsMjE3IEBACisjIEhHIGNoYW5nZXNldCBwYXRjaAorIyBV c2VyIFJvYmVydCBSZWx5ZWEgPHJyZWx5ZWFAcmVkaGF0LmNvbT4KKyMgRGF0ZSAxNzgxMDI5NzIw IDI1MjAwCisjICAgICAgVHVlIEp1biAwOSAxMToyODo0MCAyMDI2IC0wNzAwCisjIEJyYW5jaCBO U1NfM18xMjRfQlJBTkNICisjIE5vZGUgSUQgMWUwNTY1Zjk1OGM5ZTljZTQ3MTNhMTllZWVlMzU0 MTI4NjEzM2ZiNgorIyBQYXJlbnQgIGQ5YmExNDg3YzdjNjgyMTE1NGVkZDk3MmM4OGNlY2JhMWQ0 NTg1MDMKK25zcy0zLjEyNC1maXgtcHViLWtleS1pbXBvcnQtZW5jYXBzdWxhdGUucGF0Y2gKKwor ZGlmZiAtLWdpdCBhL2xpYi9wazExd3JhcC9wazExc2tleS5jIGIvbGliL3BrMTF3cmFwL3BrMTFz a2V5LmMKKy0tLSBhL2xpYi9wazExd3JhcC9wazExc2tleS5jCisrKysgYi9saWIvcGsxMXdyYXAv cGsxMXNrZXkuYworQEAgLTMxMjQsMzMgKzMxMjQsNTQgQEAgU0VDU3RhdHVzCisgUEsxMV9FbmNh cHN1bGF0ZShTRUNLRVlQdWJsaWNLZXkgKnB1YktleSwgQ0tfTUVDSEFOSVNNX1RZUEUgdGFyZ2V0 LAorICAgICAgICAgICAgICAgICAgUEsxMUF0dHJGbGFncyBhdHRyRmxhZ3MsIENLX0ZMQUdTIG9w RmxhZ3MsCisgICAgICAgICAgICAgICAgICBQSzExU3ltS2V5ICoqb3V0S2V5LCBTRUNJdGVtICoq b3V0Q2lwaGVydGV4dCkKKyB7CisgICAgIFBPUlRfQXNzZXJ0KHB1YktleSk7CisgICAgIFBPUlRf QXNzZXJ0KG91dEtleSk7CisgICAgIFBPUlRfQXNzZXJ0KG91dENpcGhlcnRleHQpOworIAorLSAg ICBQSzExU2xvdEluZm8gKnNsb3QgPSBwdWJLZXktPnBrY3MxMVNsb3Q7CisgCisgICAgIFBLMTFT eW1LZXkgKnNoYXJlZFNlY3JldCA9IE5VTEw7CisgICAgIFNFQ0l0ZW0gKmNpcGhlcnRleHQgPSBO VUxMOworIAorICAgICBDS19BVFRSSUJVVEUga2V5VGVtcGxhdGVbTUFYX1RFTVBMX0FUVFJTXTsK KyAgICAgdW5zaWduZWQgaW50IHRlbXBsYXRlQ291bnQ7CisgCisrCisgICAgIENLX0FUVFJJQlVU RSAqYXR0cnM7CisgICAgIENLX0JCT09MIGNrdHJ1ZSA9IENLX1RSVUU7CisgICAgIENLX0JCT09M IGNrZmFsc2UgPSBDS19GQUxTRTsKKyAgICAgQ0tfT0JKRUNUX0NMQVNTIGtleUNsYXNzID0gQ0tP X1NFQ1JFVF9LRVk7CisgICAgIENLX0tFWV9UWVBFIGtleVR5cGUgPSBDS0tfR0VORVJJQ19TRUNS RVQ7CisgICAgIENLX01FQ0hBTklTTV9UWVBFIGtlbVR5cGUgPSBwazExX21hcEtlbUtleVR5cGUo cHViS2V5LT5rZXlUeXBlKTsKKyAgICAgQ0tfTUVDSEFOSVNNIG1lY2ggPSB7IGtlbVR5cGUsIE5V TEwsIDAgfTsKKyAgICAgQ0tfVUxPTkcgY2lwaGVydGV4dExlbiA9IDA7CistICAgIENLX1JWIGNy djsKKysgICAgQ0tfUlYgY3J2ID0gQ0tSX09LOworKworKyAgICBQSzExU2xvdEluZm8gKnNsb3Qg PSBwdWJLZXktPnBrY3MxMVNsb3Q7CisrCisrICAgIGlmIChzbG90ID09IE5VTEwpIHsKKysgICAg ICAgIENLX01FQ0hBTklTTV9UWVBFIG1lY2hzW10gPSB7IGtlbVR5cGUsIHRhcmdldH07CisrICAg ICAgICBDS19VTE9ORyBtZWNoX2NvdW50ID0gUFJfQVJSQVlfU0laRShtZWNocyk7CisrICAgICAg ICBzbG90ID0gUEsxMV9HZXRCZXN0U2xvdE11bHRpcGxlKG1lY2hzLCBtZWNoX2NvdW50LCBOVUxM IC8qc2lnaCovKTsKKysgICAgfSBlbHNlIHsKKysgICAgICAgIC8qIHNob3VsZCB3ZSBjaGVjayBp ZiB0aGUgc2xvdCBjYW4gZG8gdGFyZ2V0IGFuZCBrZW10eXBlCisrICAgICAgICAgKiBoZXJlIGFu ZCBtb3ZlIHRoZSBwdWJsaWMga2V5IGlmIGl0IGNhbid0PyAqLworKyAgICAgICAgc2xvdCA9IFBL MTFfUmVmZXJlbmNlU2xvdChzbG90KTsKKysgICAgfQorKyAgICBpZiAoc2xvdCA9PSBOVUxMKSB7 CisrICAgICAgICBnb3RvIGxvc2VyOyAvKiBlcnJvciBhbHJlYWR5IHNldCAqLworKyAgICB9Cisr CisrICAgIENLX09CSkVDVF9IQU5ETEUgaWQgPSBQSzExX0ltcG9ydFB1YmxpY0tleShzbG90LCBw dWJLZXksIFBSX0ZBTFNFKTsKKysKKysgICAgaWYgKGlkID09IENLX0lOVkFMSURfSEFORExFKSB7 CisrICAgICAgICBnb3RvIGxvc2VyOyAvKiBlcnJvciBhbHJlYWR5IHNldCAqLworKyAgICB9Cisg CisgICAgIC8qIHNldCB1cCB0aGUgdGFyZ2V0IGtleSB0ZW1wbGF0ZSAqLworICAgICBhdHRycyA9 IGtleVRlbXBsYXRlOworICAgICBQSzExX1NFVEFUVFJTKGF0dHJzLCBDS0FfQ0xBU1MsICZrZXlD bGFzcywgc2l6ZW9mKGtleUNsYXNzKSk7CisgICAgIGF0dHJzKys7CisgCisgICAgIFBLMTFfU0VU QVRUUlMoYXR0cnMsIENLQV9LRVlfVFlQRSwgJmtleVR5cGUsIHNpemVvZihrZXlUeXBlKSk7Cisg ICAgIGF0dHJzKys7CitAQCAtMzE2MiwzMCArMzE4MywzMCBAQCBQSzExX0VuY2Fwc3VsYXRlKFNF Q0tFWVB1YmxpY0tleSAqcHViS2V5CisgICAgIFBSX0FTU0VSVCh0ZW1wbGF0ZUNvdW50IDw9IHNp emVvZihrZXlUZW1wbGF0ZSkgLyBzaXplb2YoQ0tfQVRUUklCVVRFKSk7CisgCisgICAgICpvdXRL ZXkgPSBOVUxMOworICAgICAqb3V0Q2lwaGVydGV4dCA9IE5VTEw7CisgCisgICAgIC8qIGNyZWF0 ZSBhIHN0cnV4dHVyZSBmb3IgdGhlIHRhcmdldCBrZXkgKi8KKyAgICAgc2hhcmVkU2VjcmV0ID0g cGsxMV9DcmVhdGVTeW1LZXkoc2xvdCwgdGFyZ2V0LCBQUl9UUlVFLCBQUl9UUlVFLCBOVUxMKTsK KyAgICAgaWYgKHNoYXJlZFNlY3JldCA9PSBOVUxMKSB7CistICAgICAgICBQT1JUX1NldEVycm9y KFNFQ19FUlJPUl9OT19NRU1PUlkpOworLSAgICAgICAgcmV0dXJuIFNFQ0ZhaWx1cmU7CisrICAg ICAgICBjcnYgPSBDS1JfSE9TVF9NRU1PUlk7CisrICAgICAgICBnb3RvIGxvc2VyOworICAgICB9 CisgICAgIHNoYXJlZFNlY3JldC0+b3JpZ2luID0gUEsxMV9PcmlnaW5EZXJpdmU7CisgCisgICAg IC8qIHRoaXMgcGF0aCBpcyBLRU0gbWVjaGFuaXNtIGFnbm9zdGljICovCisgICAgIGlmIChQSzEx X0NoZWNrUEtDUzExVmVyc2lvbihzbG90LCAzLCAyLCBQUl9UUlVFKSA+PSAwKSB7CisgICAgICAg ICBwazExX0VudGVyS2V5TW9uaXRvcihzaGFyZWRTZWNyZXQpOworICAgICAgICAgLyogZ2V0IHRo ZSBsZW5ndGggdGhlIG5vcm1hbCBQS0NTICMxMSB3YXkuIFRoaXMgd29ya3Mgbm8gbWF0dGVyCisg ICAgICAgICAgKiB3aGF0IHRoZSBLRU0gaXMgYW5kIHdlIGRvbid0IGhhdmUgdG8gdHJ5IHRvIGd1 ZXNzIHRoZSBLRU0gbGVuZ3RoCisgICAgICAgICAgKiBmcm9tIHRoZSBrZXkgKi8KKyAgICAgICAg IGNydiA9IFBLMTFfR0VUVEFCKHNsb3QpLT5DX0VuY2Fwc3VsYXRlS2V5KHNoYXJlZFNlY3JldC0+ c2Vzc2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICZtZWNoLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcHViS2V5LT5wa2NzMTFJRCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAga2V5VGVtcGxhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZUNvdW50LAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjaXBoZXJ0ZXh0TGVuLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnNoYXJlZFNl Y3JldC0+b2JqZWN0SUQpOworICAgICAgICAgcGsxMV9FeGl0S2V5TW9uaXRvcihzaGFyZWRTZWNy ZXQpOworICAgICAgICAgaWYgKChjcnYgIT0gQ0tSX09LKSAmJiAoY3J2ICE9IENLUl9CVUZGRVJf VE9PX1NNQUxMKSAmJgorICAgICAgICAgICAgIChjcnYgIT0gQ0tSX0tFWV9TSVpFX1JBTkdFKSkg eworQEAgLTMxOTcsMTcgKzMyMTgsMTcgQEAgUEsxMV9FbmNhcHN1bGF0ZShTRUNLRVlQdWJsaWNL ZXkgKnB1YktleQorICAgICAgICAgICAgIGdvdG8gbG9zZXI7CisgICAgICAgICB9CisgICAgICAg ICBwazExX0VudGVyS2V5TW9uaXRvcihzaGFyZWRTZWNyZXQpOworICAgICAgICAgLyogTm93IGRv IHRoZSBlbmNhcHN1bGF0ZSAqLworICAgICAgICAgLyogTk9URTogdGhlIFBLQ1MgIzExIG9yZGVy IG9mIHRoZSBwYXJhbWV0ZXJzIGlzIGRpZmZlcmVudCBmcm9tCisgICAgICAgICAgKiB0aGUgdmVu ZG9yIGludGVyZmFjZSAqLworICAgICAgICAgY3J2ID0gUEsxMV9HRVRUQUIoc2xvdCktPkNfRW5j YXBzdWxhdGVLZXkoc2hhcmVkU2VjcmV0LT5zZXNzaW9uLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1lY2gsCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJLZXktPnBrY3MxMUlELAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlUZW1wbGF0ZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBs YXRlQ291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjaXBoZXJ0ZXh0LT5kYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJmNpcGhlcnRleHRMZW4sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2hhcmVkU2VjcmV0LT5vYmplY3RJRCk7Cisg ICAgICAgICBwazExX0V4aXRLZXlNb25pdG9yKHNoYXJlZFNlY3JldCk7CisgICAgICAgICBpZiAo Y3J2ICE9IENLUl9PSykgeworICAgICAgICAgICAgIGdvdG8gbG9zZXI7CitAQCAtMzIyOCwyMSAr MzI0OSwyMSBAQCBQSzExX0VuY2Fwc3VsYXRlKFNFQ0tFWVB1YmxpY0tleSAqcHViS2V5CisgICAg ICAgICBpZiAoY3J2ICE9IENLUl9PSykgeworICAgICAgICAgICAgIGdvdG8gbG9zZXI7CisgICAg ICAgICB9CisgICAgICAgICBLRU1JbnRlcmZhY2VGdW5jdGlvbnMgPSAoQ0tfTlNTX0tFTV9GVU5D VElPTlMgKikoS0VNSW50ZXJmYWNlLT5wRnVuY3Rpb25MaXN0KTsKKyAKKyAgICAgICAgIC8qIHRo ZSBvbGQgQVBJIGV4cGVjdGVkIHRoZSBwYXJhbWV0ZXIgc2V0IGFzIGEgcGFyYW1ldGVyLCB0aGUK KyAgICAgICAgICAqIHBrY3MxMSB2My4yIGdldHMgaXQgZnJvbSB0aGUga2V5ICovCisgICAgICAg ICBrZW1QYXJhbWV0ZXJTZXQgPSBQSzExX1JlYWRVTG9uZ0F0dHJpYnV0ZShzbG90LAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHViS2V5LT5wa2Nz MTFJRCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Q0tBX05TU19QQVJBTUVURVJfU0VUKTsKKyAgICAgICAgIGlmIChrZW1QYXJhbWV0ZXJTZXQgPT0g Q0tfVU5BVkFJTEFCTEVfSU5GT1JNQVRJT04pIHsKKyAgICAgICAgICAgICBrZW1QYXJhbWV0ZXJT ZXQgPSBQSzExX1JlYWRVTG9uZ0F0dHJpYnV0ZShzbG90LAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YktleS0+cGtjczExSUQsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0tB X1BBUkFNRVRFUl9TRVQpOworICAgICAgICAgICAgIGlmIChrZW1QYXJhbWV0ZXJTZXQgPT0gQ0tf VU5BVkFJTEFCTEVfSU5GT1JNQVRJT04pIHsKKyAgICAgICAgICAgICAgICAgY3J2ID0gQ0tSX1BV QkxJQ19LRVlfSU5WQUxJRDsKKyAgICAgICAgICAgICAgICAgZ290byBsb3NlcjsKKyAgICAgICAg ICAgICB9CisgICAgICAgICB9CisgICAgICAgICAvKiBUaGUgb2xkIGludGVyZmFjZSBvbmx5IGV2 ZXIgc3VwcG9ydGVkIEtZQkVSNzY4IGFuZCBNTEtFTTc2OAorICAgICAgICAgICogU09NRSB2ZXJz aW9ucyBvZiBSSEVMIGhhcyBNTEtFTTEwMjQgIHN1cHBvcnQsIGlmIHdlIHdhbnQgdG8KK0BAIC0z MjU5LDM5ICszMjgwLDQ4IEBAIFBLMTFfRW5jYXBzdWxhdGUoU0VDS0VZUHVibGljS2V5ICpwdWJL ZXkKKyAgICAgICAgIGlmIChjaXBoZXJ0ZXh0ID09IE5VTEwpIHsKKyAgICAgICAgICAgICBjcnYg PSBDS1JfSE9TVF9NRU1PUlk7CisgICAgICAgICAgICAgZ290byBsb3NlcjsKKyAgICAgICAgIH0K KyAKKyAgICAgICAgIHBrMTFfRW50ZXJLZXlNb25pdG9yKHNoYXJlZFNlY3JldCk7CisgICAgICAg ICBjcnYgPSBLRU1JbnRlcmZhY2VGdW5jdGlvbnMtPkNfRW5jYXBzdWxhdGUoc2hhcmVkU2VjcmV0 LT5zZXNzaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICZtZWNoLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHB1YktleS0+cGtjczExSUQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAga2V5VGVtcGxhdGUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGVDb3VudCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2hhcmVkU2VjcmV0 LT5vYmplY3RJRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjaXBoZXJ0ZXh0LT5kYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICZjaXBoZXJ0ZXh0TGVuKTsKKyAgICAgICAgIHBrMTFfRXhp dEtleU1vbml0b3Ioc2hhcmVkU2VjcmV0KTsKKyAgICAgICAgIGlmIChjcnYgIT0gQ0tSX09LKSB7 CisgICAgICAgICAgICAgZ290byBsb3NlcjsKKyAgICAgICAgIH0KKyAKKyAgICAgICAgIFBPUlRf QXNzZXJ0KGNpcGhlcnRleHRMZW4gPT0gY2lwaGVydGV4dC0+bGVuKTsKKyAgICAgfQorIAorKyAg ICBQSzExX0ZyZWVTbG90KHNsb3QpOworKworICAgICAqb3V0S2V5ID0gc2hhcmVkU2VjcmV0Owor ICAgICAqb3V0Q2lwaGVydGV4dCA9IGNpcGhlcnRleHQ7CisgCisgICAgIHJldHVybiBTRUNTdWNj ZXNzOworIAorIGxvc2VyOgorLSAgICBQSzExX0ZyZWVTeW1LZXkoc2hhcmVkU2VjcmV0KTsKKysg ICAgaWYgKHNsb3QpIHsKKysgICAgICAgIFBLMTFfRnJlZVNsb3Qoc2xvdCk7CisrICAgIH0KKysg ICAgaWYgKHNoYXJlZFNlY3JldCkgeworKyAgICAgICAgUEsxMV9GcmVlU3ltS2V5KHNoYXJlZFNl Y3JldCk7CisrICAgIH0KKyAgICAgU0VDSVRFTV9GcmVlSXRlbShjaXBoZXJ0ZXh0LCBQUl9UUlVF KTsKKy0gICAgUE9SVF9TZXRFcnJvcihQSzExX01hcEVycm9yKGNydikpOworKyAgICBpZiAoY3J2 ICE9IENLUl9PSykgeworKyAgICAgICAgUE9SVF9TZXRFcnJvcihQSzExX01hcEVycm9yKGNydikp OworKyAgICB9CisgICAgIHJldHVybiBTRUNGYWlsdXJlOworIH0KKyAKKyBTRUNTdGF0dXMKKyBQ SzExX0RlY2Fwc3VsYXRlKFNFQ0tFWVByaXZhdGVLZXkgKnByaXZLZXksIGNvbnN0IFNFQ0l0ZW0g KmNpcGhlcnRleHQsCisgICAgICAgICAgICAgICAgICBDS19NRUNIQU5JU01fVFlQRSB0YXJnZXQs IFBLMTFBdHRyRmxhZ3MgYXR0ckZsYWdzLAorICAgICAgICAgICAgICAgICAgQ0tfRkxBR1Mgb3BG bGFncywgUEsxMVN5bUtleSAqKm91dEtleSkKKyB7CitAQCAtMzMxMiwxNyArMzM0MiwxNyBAQCBQ SzExX0RlY2Fwc3VsYXRlKFNFQ0tFWVByaXZhdGVLZXkgKnByaXZLCisgICAgIENLX09CSkVDVF9D TEFTUyBrZXlDbGFzcyA9IENLT19TRUNSRVRfS0VZOworICAgICBDS19LRVlfVFlQRSBrZXlUeXBl ID0gQ0tLX0dFTkVSSUNfU0VDUkVUOworICAgICBDS19NRUNIQU5JU01fVFlQRSBrZW1UeXBlID0g cGsxMV9tYXBLZW1LZXlUeXBlKHByaXZLZXktPmtleVR5cGUpOworICAgICBDS19NRUNIQU5JU00g bWVjaCA9IHsga2VtVHlwZSwgTlVMTCwgMCB9OworIAorICAgICBDS19SViBjcnY7CisgCisgICAg ICpvdXRLZXkgPSBOVUxMOworLSAgICBzaGFyZWRTZWNyZXQgPSBwazExX0NyZWF0ZVN5bUtleShz bG90LCB0YXJnZXQsIFBSX1RSVUUsIFBSX1RSVUUsIE5VTEwpOworKyAgICBzaGFyZWRTZWNyZXQg PSBwazExX0NyZWF0ZVN5bUtleShzbG90LCB0YXJnZXQsIFBSX1RSVUUsIFBSX1RSVUUsIHByaXZL ZXktPndpbmN4KTsKKyAgICAgaWYgKHNoYXJlZFNlY3JldCA9PSBOVUxMKSB7CisgICAgICAgICBQ T1JUX1NldEVycm9yKFNFQ19FUlJPUl9OT19NRU1PUlkpOworICAgICAgICAgcmV0dXJuIFNFQ0Zh aWx1cmU7CisgICAgIH0KKyAgICAgc2hhcmVkU2VjcmV0LT5vcmlnaW4gPSBQSzExX09yaWdpblVu d3JhcDsKKyAKKyAgICAgYXR0cnMgPSBrZXlUZW1wbGF0ZTsKKyAgICAgUEsxMV9TRVRBVFRSUyhh dHRycywgQ0tBX0NMQVNTLCAma2V5Q2xhc3MsIHNpemVvZihrZXlDbGFzcykpOwoKZGlmZiAtLWdp dCBhL25zcy5zcGVjIGIvbnNzLnNwZWMKaW5kZXggMTIwNzNiZi4uNjcwYzNkZSAxMDA2NDQKLS0t IGEvbnNzLnNwZWMKKysrIGIvbnNzLnNwZWMKQEAgLTE1Miw2ICsxNTIsMTIgQEAgUGF0Y2g0Mjog ICAgICAgICAgbnNzLTMuMTI0LWFubm9jaGVjay5maXgucGF0Y2gKIFBhdGNoNTA6ICAgICAgICAg IG5zcy0zLjExMC1kaXNzYWJsZV90ZXN0LXNzbF9wb2xpY3lfcGtpeF9vc2NwLnBhdGNoCiAjIEZp eCBFZDI1NTE5L0VkNDQ4IGtleSBzdG9yYWdlIGFuZCBkaXNwbGF5IGluIHNlY3V0aWwvc29mdG9r ZW4KIFBhdGNoNTE6ICAgICAgICAgIG5zcy0zLjEyNC1maXgtZWQta2V5LXN0b3JhZ2UucGF0Y2gK KyMgRklQUy1jb21wYXRpYmxlIHN5bW1ldHJpYyBrZXkgaW1wb3J0IHZpYSBDS01fQ09OQ0FURU5B VEVfREFUQV9BTkRfQkFTRQorUGF0Y2g1MjogICAgICAgICAgbnNzLTMuMTI0LWZpcHMta2V5LWlt cG9ydC1maXgucGF0Y2gKKyMgRml4IFBLMTFfRW5jYXBzdWxhdGUgdG8gaW1wb3J0IHRoZSBwdWJs aWMga2V5IGJlZm9yZSB1c2UgYW5kIGhhbmRsZSBOVUxMIHNsb3QKK1BhdGNoNTM6ICAgICAgICAg IG5zcy0zLjEyNC1maXgtcHViLWtleS1pbXBvcnQtZW5jYXBzdWxhdGUucGF0Y2gKKyMgQWxsb3cg UFNTIGhhc2ggYWxnb3JpdGhtIG92ZXJyaWRlIGluc3RlYWQgb2YgZmFpbGluZyBvbiBtaXNtYXRj aAorUGF0Y2g1NDogICAgICAgICAgbnNzLTMuMTI0LWFsbG93LWhhc2gtb3ZlcnJpZGUtcHNzLnBh dGNoCiAKICMgTUwtRFNBIHN1cHBvcnQgcGF0Y2hlcyB0aGF0IGhhdmVuJ3QgbWFkZSBpdCB0byB0 aGUgMy4xMTguMSByZWxlYXNlCiBQYXRjaDYwOiAgICAgICAgICBuc3MtMy4xMTgtbWwtZHNhLWxl YW5jcnlwdG8ucGF0Y2gK