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: Jan Grulich To: git-commits@fedoraproject.org Subject: [rpms/kdevelop-python] f43: Fix build against Python 3.8 Date: Sat, 04 Jul 2026 11:13:47 GMT Message-ID: <178316362754.1.11930533013996701392.rpms-kdevelop-python-846207629525@fedoraproject.org> List-ID: X-Git-Repo: rpms/kdevelop-python X-Git-Branch: f43 X-Git-Rev: 846207629525674e99906a62dbfd46e4e0e5284b QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMva2RldmVsb3AtcHl0 aG9uCkJyYW5jaCA6IGY0MwpDb21taXQgOiA4NDYyMDc2Mjk1MjU2NzRlOTk5MDZhNjJkYmZkNDZl NGUwZTUyODRiCkF1dGhvciA6IEphbiBHcnVsaWNoIDxqZ3J1bGljaEByZWRoYXQuY29tPgpEYXRl ICAgOiAyMDE5LTEwLTI0VDA3OjMyOjUxKzAyOjAwClN0YXRzICA6ICs1MzYvLTAgaW4gMiBmaWxl KHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMva2RldmVsb3At cHl0aG9uL2MvODQ2MjA3NjI5NTI1Njc0ZTk5OTA2YTYyZGJmZDQ2ZTRlMGU1Mjg0Yj9icmFuY2g9 ZjQzCgpMb2c6CkZpeCBidWlsZCBhZ2FpbnN0IFB5dGhvbiAzLjgKCi0tLQpkaWZmIC0tZ2l0IGEv a2Rldi1weXRob24tcHl0aG9uMzgucGF0Y2ggYi9rZGV2LXB5dGhvbi1weXRob24zOC5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZTFjMzFjCi0tLSAvZGV2L251bGwK KysrIGIva2Rldi1weXRob24tcHl0aG9uMzgucGF0Y2gKQEAgLTAsMCArMSw1MjkgQEAKK2RpZmYg LS1naXQgYS9DTWFrZUxpc3RzLnR4dCBiL0NNYWtlTGlzdHMudHh0CitpbmRleCA2ZjllNDY1YmE0 YjUzNDE3ODIxYWYwNDIyYTIwZmE2ZTI5Mjg1NDM0Li4wOWIwODlkZDY5NGZlYzE4ZTU1N2QyZTFl MTEwZWRjMTUyN2NlNzk2IDEwMDY0NAorLS0tIGEvQ01ha2VMaXN0cy50eHQKKysrKyBiL0NNYWtl TGlzdHMudHh0CitAQCAtMzEsNyArMzEsNyBAQCBhZGRfZGVmaW5pdGlvbnMoIC1EVFJBTlNMQVRJ T05fRE9NQUlOPVwia2RldnB5dGhvblwiICkKKworICMgQ01ha2UgbG9va3MgZm9yIGV4YWN0bHkg dGhlIHNwZWNpZmllZCB2ZXJzaW9uIGZpcnN0IGFuZCBpZ25vcmVzIG5ld2VyIHZlcnNpb25zLgor ICMgVG8gYXZvaWQgdGhhdCwgc3RhcnQgbG9va2luZyBmb3IgdGhlIG5ld2VzdCBzdXBwb3J0ZWQg dmVyc2lvbiBhbmQgd29yayBkb3duLgorLXNldChQeXRob25fQURESVRJT05BTF9WRVJTSU9OUyAz LjcgMy42IDMuNSAzLjQpCisrc2V0KFB5dGhvbl9BRERJVElPTkFMX1ZFUlNJT05TIDMuOCAzLjcg My42IDMuNSAzLjQpCisgZm9yZWFjaChfUFlUSE9OX1YgJHtQeXRob25fQURESVRJT05BTF9WRVJT SU9OU30pCisgICAgIGZpbmRfcGFja2FnZShQeXRob25JbnRlcnAgJHtfUFlUSE9OX1Z9KQorICAg ICBpZiAoIFBZVEhPTklOVEVSUF9GT1VORCApCitAQCAtNDksNyArNDksNyBAQCBpZiAoIFBZVEhP TklOVEVSUF9GT1VORCBBTkQgUFlUSE9OX1ZFUlNJT05fU1RSSU5HIFZFUlNJT05fR1JFQVRFUiAi My40IiApCisgZW5kaWYoKQorCisgaWYgKCBOT1QgUFlUSE9OTElCU19GT1VORCBPUiBQWVRIT05M SUJTX1ZFUlNJT05fU1RSSU5HIFZFUlNJT05fTEVTUyAiMy40LjMiICkKKy0gICAgbWVzc2FnZShG QVRBTF9FUlJPUiAiUHl0aG9uID49IDMuNC4zIGJ1dCA8IDMuOCB3aXRoIC0tZW5hYmxlLXNoYXJl ZCBpcyByZXF1aXJlZCB0byBidWlsZCBrZGV2LXB5dGhvbiIpCisrICAgIG1lc3NhZ2UoRkFUQUxf RVJST1IgIlB5dGhvbiA+PSAzLjQuMyBidXQgPCAzLjkgd2l0aCAtLWVuYWJsZS1zaGFyZWQgaXMg cmVxdWlyZWQgdG8gYnVpbGQga2Rldi1weXRob24iKQorIGVuZGlmKCkKKworIGNvbmZpZ3VyZV9m aWxlKGtkZXZweXRob252ZXJzaW9uLmguY21ha2UgIiR7Q01BS0VfQ1VSUkVOVF9CSU5BUllfRElS fS9rZGV2cHl0aG9udmVyc2lvbi5oIiBAT05MWSkKK2RpZmYgLS1naXQgYS9kdWNoYWluL2RlY2xh cmF0aW9uYnVpbGRlci5jcHAgYi9kdWNoYWluL2RlY2xhcmF0aW9uYnVpbGRlci5jcHAKK2luZGV4 IGUzY2IyYjljNWM4NDIzZjQyOGRmZTQyMGE2YjY5MjY3NDViNGZjYzguLjYxZTE0NGM1OTY2ZDMy OGQyODlmMTJjYmE5OWVhOWUyNjhlODQzMGYgMTAwNjQ0CistLS0gYS9kdWNoYWluL2RlY2xhcmF0 aW9uYnVpbGRlci5jcHAKKysrKyBiL2R1Y2hhaW4vZGVjbGFyYXRpb25idWlsZGVyLmNwcAorQEAg LTEzNTQsNiArMTM1NCwxNCBAQCB2b2lkIERlY2xhcmF0aW9uQnVpbGRlcjo6dmlzaXRBbm5vdGF0 aW9uQXNzaWdubWVudChBbm5vdGF0aW9uQXNzaWdubWVudEFzdCogbm9kZQorICAgICBhc3NpZ25U b1Vua25vd24obm9kZS0+dGFyZ2V0LCBhc3NpZ25UeXBlKTsKKyB9CisKKyt2b2lkIERlY2xhcmF0 aW9uQnVpbGRlcjo6dmlzaXRBc3NpZ25tZW50RXhwcmVzc2lvbihBc3NpZ25tZW50RXhwcmVzc2lv bkFzdCogbm9kZSkgeworKyAgICBBc3REZWZhdWx0VmlzaXRvcjo6dmlzaXRBc3NpZ25tZW50RXhw cmVzc2lvbihub2RlKTsKKysKKysgICAgRXhwcmVzc2lvblZpc2l0b3IgdihjdXJyZW50Q29udGV4 dCgpKTsKKysgICAgdi52aXNpdE5vZGUobm9kZS0+dmFsdWUpOworKyAgICBhc3NpZ25Ub1Vua25v d24obm9kZS0+dGFyZ2V0LCB2Lmxhc3RUeXBlKCkpOworK30KKysKKyB2b2lkIERlY2xhcmF0aW9u QnVpbGRlcjo6dmlzaXRDbGFzc0RlZmluaXRpb24oIENsYXNzRGVmaW5pdGlvbkFzdCogbm9kZSAp CisgeworICAgICB2aXNpdE5vZGVMaXN0KG5vZGUtPmRlY29yYXRvcnMpOworQEAgLTE3NDUsNyAr MTc1Myw3IEBAIHZvaWQgRGVjbGFyYXRpb25CdWlsZGVyOjp2aXNpdEFyZ3VtZW50cyggQXJndW1l bnRzQXN0KiBub2RlICkKKyAgICAgaW50IHBhcmFtZXRlcnNDb3VudCA9IG5vZGUtPmFyZ3VtZW50 cy5sZW5ndGgoKTsKKyAgICAgaW50IGZpcnN0RGVmYXVsdFBhcmFtZXRlck9mZnNldCA9IHBhcmFt ZXRlcnNDb3VudCAtIGRlZmF1bHRQYXJhbWV0ZXJzQ291bnQ7CisgICAgIGludCBjdXJyZW50SW5k ZXggPSAwOworLSAgICBmb3JlYWNoICggQXJnQXN0KiBhcmcsIG5vZGUtPmFyZ3VtZW50cyArIG5v ZGUtPmt3b25seWFyZ3MgKSB7CisrICAgIGZvcmVhY2ggKCBBcmdBc3QqIGFyZywgbm9kZS0+cG9z b25seWFyZ3MgKyBub2RlLT5hcmd1bWVudHMgKyBub2RlLT5rd29ubHlhcmdzICkgeworICAgICAg ICAgLy8gSXRlcmF0ZSBvdmVyIGFsbCB0aGUgZnVuY3Rpb24ncyBhcmd1bWVudHMsIGNyZWF0ZSBk ZWNsYXJhdGlvbnMsIGFuZCBhZGQgdGhlIGFyZ3VtZW50cworICAgICAgICAgLy8gdG8gdGhlIGZ1 bmN0aW9ucyBGdW5jdGlvblR5cGUuCisgICAgICAgICBjdXJyZW50SW5kZXggKz0gMTsKK2RpZmYg LS1naXQgYS9kdWNoYWluL2RlY2xhcmF0aW9uYnVpbGRlci5oIGIvZHVjaGFpbi9kZWNsYXJhdGlv bmJ1aWxkZXIuaAoraW5kZXggYWRlZTZkNmQ1NTJhYTAzODA5MTBlNGY2ZmIyNmI3NjA3MDRmZWI1 MC4uMTk5MmI3ODE1ZWJjNDAxMGU5ZDM1MjMxYTUzODc5NDQ5MDkwNmVjYiAxMDA2NDQKKy0tLSBh L2R1Y2hhaW4vZGVjbGFyYXRpb25idWlsZGVyLmgKKysrKyBiL2R1Y2hhaW4vZGVjbGFyYXRpb25i dWlsZGVyLmgKK0BAIC05MCw2ICs5MCw3IEBAIHByb3RlY3RlZDoKKyAgICAgdm9pZCB2aXNpdEZ1 bmN0aW9uRGVmaW5pdGlvbihGdW5jdGlvbkRlZmluaXRpb25Bc3QqIG5vZGUpIG92ZXJyaWRlOwor ICAgICB2b2lkIHZpc2l0QXNzaWdubWVudChBc3NpZ25tZW50QXN0KiBub2RlKSBvdmVycmlkZTsK KyAgICAgdm9pZCB2aXNpdEFubm90YXRpb25Bc3NpZ25tZW50KEFubm90YXRpb25Bc3NpZ25tZW50 QXN0KiBub2RlKSBvdmVycmlkZTsKKysgICAgdm9pZCB2aXNpdEFzc2lnbm1lbnRFeHByZXNzaW9u KEFzc2lnbm1lbnRFeHByZXNzaW9uQXN0KiBub2RlKSBvdmVycmlkZTsKKyAgICAgdm9pZCB2aXNp dEZvcihGb3JBc3QqIG5vZGUpIG92ZXJyaWRlOworICAgICB2b2lkIHZpc2l0SW1wb3J0KEltcG9y dEFzdCogbm9kZSkgb3ZlcnJpZGU7CisgICAgIHZvaWQgdmlzaXRJbXBvcnRGcm9tKEltcG9ydEZy b21Bc3QqIG5vZGUpIG92ZXJyaWRlOworZGlmZiAtLWdpdCBhL2R1Y2hhaW4vZXhwcmVzc2lvbnZp c2l0b3IuY3BwIGIvZHVjaGFpbi9leHByZXNzaW9udmlzaXRvci5jcHAKK2luZGV4IDVjNTI4NmFl Yjc2ZjIwMjYzZWQ1OGI0NDU4YmRjNmE1OTYzZmY1YzguLjA1NWM1YjQ5ODY0N2EwNjYzYzc1MjBm OGI1MzhkZDcyYjU1MzZlYzkgMTAwNjQ0CistLS0gYS9kdWNoYWluL2V4cHJlc3Npb252aXNpdG9y LmNwcAorKysrIGIvZHVjaGFpbi9leHByZXNzaW9udmlzaXRvci5jcHAKK0BAIC03NTcsNSArNzU3 LDkgQEAgdm9pZCBFeHByZXNzaW9uVmlzaXRvcjo6dmlzaXRCb29sZWFuT3BlcmF0aW9uKFB5dGhv bjo6Qm9vbGVhbk9wZXJhdGlvbkFzdCogbm9kZSkKKyAgICAgZW5jb3VudGVyKHJlc3VsdCk7Cisg fQorCisrdm9pZCBFeHByZXNzaW9uVmlzaXRvcjo6dmlzaXRBc3NpZ25tZW50RXhwcmVzc2lvbihQ eXRob246OkFzc2lnbm1lbnRFeHByZXNzaW9uQXN0KiBub2RlKSB7CisrICAgIHZpc2l0Tm9kZShu b2RlLT52YWx1ZSk7CisrfQorKworIH0KKworZGlmZiAtLWdpdCBhL2R1Y2hhaW4vZXhwcmVzc2lv bnZpc2l0b3IuaCBiL2R1Y2hhaW4vZXhwcmVzc2lvbnZpc2l0b3IuaAoraW5kZXggMjVjYTIzMTkz OGQ0NjAzNzBlYTU5MWVhYzcyNDllMDk4YjMxMzg2ZC4uYTU2NDgxYWQzN2JmOTNlOTdhMzJlZjg5 OTkxNmQwM2IwY2JmYzJlZiAxMDA2NDQKKy0tLSBhL2R1Y2hhaW4vZXhwcmVzc2lvbnZpc2l0b3Iu aAorKysrIGIvZHVjaGFpbi9leHByZXNzaW9udmlzaXRvci5oCitAQCAtODEsNiArODEsNyBAQCBw dWJsaWM6CisgICAgIHZvaWQgdmlzaXRTZXRDb21wcmVoZW5zaW9uKFNldENvbXByZWhlbnNpb25B c3QqIG5vZGUpIG92ZXJyaWRlOworICAgICB2b2lkIHZpc2l0SWZFeHByZXNzaW9uKElmRXhwcmVz c2lvbkFzdCogbm9kZSkgb3ZlcnJpZGU7CisgICAgIHZvaWQgdmlzaXROYW1lQ29uc3RhbnQoTmFt ZUNvbnN0YW50QXN0KiBub2RlKSBvdmVycmlkZTsKKysgICAgdm9pZCB2aXNpdEFzc2lnbm1lbnRF eHByZXNzaW9uKEFzc2lnbm1lbnRFeHByZXNzaW9uQXN0KiBub2RlKSBvdmVycmlkZTsKKworICAg ICAvKioKKyAgICAgICogQGJyaWVmIENoZWNrcyBmb3IgbWFnaWMgZG9jc3RyaW5ncyB0aGF0IG92 ZXJyaWRlIGEgY2FsbCdzIHJldHVybiB0eXBlLgorZGlmZiAtLWdpdCBhL2R1Y2hhaW4vdGVzdHMv cHlkdWNoYWludGVzdC5jcHAgYi9kdWNoYWluL3Rlc3RzL3B5ZHVjaGFpbnRlc3QuY3BwCitpbmRl eCA3MTQyZWQyYjIwMjZiOTllNDQzODZjNDc1ODlhZjA2M2RhZTAzMTcyLi4xN2JhMzRlNTM2NjJl YWE5NjFjNTRiNTU2YWRjZTFkYzc0OTc3MmMyIDEwMDY0NAorLS0tIGEvZHVjaGFpbi90ZXN0cy9w eWR1Y2hhaW50ZXN0LmNwcAorKysrIGIvZHVjaGFpbi90ZXN0cy9weWR1Y2hhaW50ZXN0LmNwcAor QEAgLTgzOCw2ICs4MzgsNyBAQCB2b2lkIFB5RFVDaGFpblRlc3Q6OnRlc3RUeXBlcygpCisgICAg IFFFWFBFQ1RfRkFJTCgiaW5pdF9jbGFzc19ub19kZWNsIiwgImFsaWFzaW5nIGluZm8gbG9zdCIs IENvbnRpbnVlKTsKKyAgICAgUUVYUEVDVF9GQUlMKCJwcm9wZXJ0eV93cm9uZyIsICJ2aXNpdENh bGwgdXNlcyBkZWNsYXJhdGlvbiBpZiBubyB0eXBlIiwgQ29udGludWUpOworICAgICBRRVhQRUNU X0ZBSUwoInByb3BlcnR5X3NldHRlciIsICJ2ZXJ5IGJhc2ljIHByb3BlcnR5IHN1cHBvcnQiLCBD b250aW51ZSk7CisrICAgIFFFWFBFQ1RfRkFJTCgiYXNzaWdubWVudF9leHByX2NvbnRleHQiLCAi bm90IGltcGxlbWVudGVkIiwgQ29udGludWUpOworICAgICBRQ09NUEFSRSh2aXNpdG9yLT5mb3Vu ZCwgdHJ1ZSk7CisgfQorCitAQCAtMTMwMiw2ICsxMzAzLDIxIEBAIHZvaWQgUHlEVUNoYWluVGVz dDo6dGVzdFR5cGVzX2RhdGEoKQorICAgICAgICAgIiAgICAgICAgZGVmIGZvbyhzZWxmLCBjY2M9 YWFhLCBkZGQ9YmJiKTpcbiIgLy8gc2VsZi5iYmIgaXMgdmlzaWJsZSBoZXJlLCBGb28oKS5hYWEg aXNuJ3QuCisgICAgICAgICAiICAgICAgICAgICAgcmV0dXJuIGNjYywgZGRkXG4iCisgICAgICAg ICAiY2hlY2ttZSA9IEZvbygpLkJhcigpLmZvbygpXG4iIDw8ICJ0dXBsZSBvZiAoc3RyLCBpbnQp IjsKKysjaWYgUFlUSE9OX1ZFUlNJT04gPj0gUVRfVkVSU0lPTl9DSEVDSygzLCA4LCAwKQorKyAg ICBRVGVzdDo6bmV3Um93KCJhc3NpZ25tZW50X2V4cHJfd2hpbGUiKSA8PAorKyAgICAgICAgImZp bGUgPSBvcGVuKCdmb28udHh0JylcbiIKKysgICAgICAgICJ3aGlsZSBxIDo9IGZpbGUucmVhZGxp bmUoKTpcbiIKKysgICAgICAgICIgICAgY2hlY2ttZSA9IHFcbiIgPDwgInN0ciI7CisrICAgIFFU ZXN0OjpuZXdSb3coImFzc2lnbm1lbnRfZXhwcl9jb21wcmVoZW5zaW9uIikgPDwKKysgICAgICAg ICJjaGVja21lID0gW3ogZm9yIHEgaW4gKDEsIDIsIDMpIGlmICh6IDo9IHEgJSAyKV0iIDw8ICJs aXN0IG9mIGludCI7CisrICAgIFFUZXN0OjpuZXdSb3coImFzc2lnbm1lbnRfZXhwcl9jb250ZXh0 IikgPDwKKysgICAgICAgICJhID0gW3ogZm9yIHEgaW4gKDEsIDIsIDMpIGlmICh6IDo9IHEgJSAy KV1cbiIKKysgICAgICAgICJjaGVja21lID0geiIgPDwgImludCI7CisrICAgIFFUZXN0OjpuZXdS b3coInBvc2l0aW9uYWxfcGFyYW1zIikgPDwKKysgICAgImRlZiBmb28oYSwgYiwgLywgYywgZCk6 XG4iCisrICAgICIgICAgcmV0dXJuIGEsIGIsIGMsIGRcbiIKKysgICAgImNoZWNrbWUgPSBmb28o MTAsICd4JywgMi4zLCBkPSd5JylcbiIgPDwgInR1cGxlIG9mIChpbnQsIHN0ciwgZmxvYXQsIHN0 cikiOworKyNlbmRpZgorIH0KKworIHR5cGVkZWYgUVBhaXI8RGVjbGFyYXRpb24qLCBpbnQ+IHBh aXI7CitAQCAtMTc4MCw2ICsxNzk2LDkgQEAgdm9pZCBQeURVQ2hhaW5UZXN0Ojp0ZXN0VmFyaWFi bGVDcmVhdGlvbl9kYXRhKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IFFTdHJpbmdMaXN0 eyJpbnQiLCAiaW50IiwgImZsb2F0In07CisgICAgIFFUZXN0OjpuZXdSb3coImZvcl9sb29wX3R1 cGxlIikgPDwgImZvciBhIGluIDEsIDI6IHBhc3MiIDw8IFFTdHJpbmdMaXN0eyJhIn0gPDwgUVN0 cmluZ0xpc3R7ImludCJ9OworICAgICBRVGVzdDo6bmV3Um93KCJmb3JfbG9vcF9kaWN0IikgPDwg ImZvciBhIGluIHsnZm9vJzogMX06IHBhc3MiIDw8IFFTdHJpbmdMaXN0eyJhIn0gPDwgUVN0cmlu Z0xpc3R7InN0ciJ9OworKyNpZiBQWVRIT05fVkVSU0lPTiA+PSBRVF9WRVJTSU9OX0NIRUNLKDMs IDgsIDApCisrICAgIFFUZXN0OjpuZXdSb3coImFzc2lnbm1lbnRfZXhwciIpIDw8ICJhID0gKGIg Oj0gMTApIiA8PCBRU3RyaW5nTGlzdHsiYSIsICJiIn0gPDwgUVN0cmluZ0xpc3R7ImludCIsICJp bnQifTsKKysjZW5kaWYKKyB9CisKKyB2b2lkIFB5RFVDaGFpblRlc3Q6OnRlc3RDbGVhbnVwTXVs dGlwbGVQYXNzZXMoKQorZGlmZiAtLWdpdCBhL3BhcnNlci9hc3QuY3BwIGIvcGFyc2VyL2FzdC5j cHAKK2luZGV4IDk4OTJiMTg0MDY4MDc5ZjkyMjkyZWUzZDk5NmEwYjcxNDQ4MWI2NWMuLmNkNTcw ZDM2ZjM0ZWZlNmVjMDllMjM2Y2I0NjlkMzY0MDJkNTA3MDAgMTAwNjQ0CistLS0gYS9wYXJzZXIv YXN0LmNwcAorKysrIGIvcGFyc2VyL2FzdC5jcHAKK0BAIC0xNjMsNiArMTYzLDExIEBAIEV4cHJl c3Npb25Bc3Q6OkV4cHJlc3Npb25Bc3QoQXN0KiBwYXJlbnQsIEFzdFR5cGUgdHlwZSk6IEFzdChw YXJlbnQsIHR5cGUpLCB2YWx1CisKKyB9CisKKytBc3NpZ25tZW50RXhwcmVzc2lvbkFzdDo6QXNz aWdubWVudEV4cHJlc3Npb25Bc3QoQXN0KiBwYXJlbnQpOiBFeHByZXNzaW9uQXN0KHBhcmVudCwg QXN0OjpBc3NpZ25tZW50RXhwcmVzc2lvbkFzdFR5cGUpLCB2YWx1ZShudWxscHRyKQorK3sKKysK Kyt9CisrCisgWWllbGRGcm9tQXN0OjpZaWVsZEZyb21Bc3QoQXN0KiBwYXJlbnQpIDogRXhwcmVz c2lvbkFzdChwYXJlbnQsIEFzdDo6WWllbGRGcm9tQXN0VHlwZSkKKyB7CisKK0BAIC0yNDgsNyAr MjUzLDcgQEAgTmFtZUNvbnN0YW50QXN0OjpOYW1lQ29uc3RhbnRBc3QoQXN0KiBwYXJlbnQpOiBF eHByZXNzaW9uQXN0KHBhcmVudCwgQXN0OjpOYW1lQ28KKworIH0KKworLU51bWJlckFzdDo6TnVt YmVyQXN0KEFzdCogcGFyZW50KTogRXhwcmVzc2lvbkFzdChwYXJlbnQsIEFzdDo6TnVtYmVyQXN0 VHlwZSksIHZhbHVlKDApCisrTnVtYmVyQXN0OjpOdW1iZXJBc3QoQXN0KiBwYXJlbnQpOiBFeHBy ZXNzaW9uQXN0KHBhcmVudCwgQXN0OjpOdW1iZXJBc3RUeXBlKSwgdmFsdWUoMCksIGlzSW50KGZh bHNlKQorIHsKKworIH0KK2RpZmYgLS1naXQgYS9wYXJzZXIvYXN0LmggYi9wYXJzZXIvYXN0LmgK K2luZGV4IDM3OGFmMGJkMDMxMDZiNWMwY2VmOTU4Y2E4YjgxNTMwNTQ0YmVmMTIuLjY1ZmVmMWNk NGIyNmNkYjI0YmNjNTM2OTJmYjk3ODM2NDE3YWJmYjYgMTAwNjQ0CistLS0gYS9wYXJzZXIvYXN0 LmgKKysrKyBiL3BhcnNlci9hc3QuaAorQEAgLTEzMSw2ICsxMzEsNyBAQCBwdWJsaWM6CisgICAg ICAgICBTbGljZUFzdFR5cGUsCisgICAgICAgICBFbGxpcHNpc0FzdFR5cGUsCisgICAgICAgICBJ bmRleEFzdFR5cGUsCisrICAgICAgICBBc3NpZ25tZW50RXhwcmVzc2lvbkFzdFR5cGUsCisgICAg ICAgICBMYXN0RXhwcmVzc2lvblR5cGUsIC8vIGtlZXAgdGhpcyBhdCB0aGUgZW5kIG9mIHRoZSBl eHByIGFzdCBsaXN0CisKKyAgICAgICAgIENvZGVBc3RUeXBlLAorQEAgLTQ1Nyw2ICs0NTgsMTMg QEAgcHVibGljOgorICAgICBFeHByZXNzaW9uQXN0KiB2YWx1ZTsgLy8gV0FSTklORyB0aGlzIGlz IG5vdCBzZXQgaW4gbW9zdCBjYXNlcyEKKyB9OworCisrY2xhc3MgS0RFVlBZVEhPTlBBUlNFUl9F WFBPUlQgQXNzaWdubWVudEV4cHJlc3Npb25Bc3QgOiBwdWJsaWMgRXhwcmVzc2lvbkFzdCB7Cisr cHVibGljOgorKyAgICBBc3NpZ25tZW50RXhwcmVzc2lvbkFzdChBc3QqIHBhcmVudCk7CisrICAg IEV4cHJlc3Npb25Bc3QqIHRhcmdldDsKKysgICAgRXhwcmVzc2lvbkFzdCogdmFsdWU7CisrfTsK KysKKyBjbGFzcyBLREVWUFlUSE9OUEFSU0VSX0VYUE9SVCBBd2FpdEFzdCA6IHB1YmxpYyBFeHBy ZXNzaW9uQXN0IHsKKyBwdWJsaWM6CisgICAgIEF3YWl0QXN0KEFzdCogcGFyZW50KTsKK0BAIC03 NDMsNiArNzUxLDcgQEAgcHVibGljOgorICAgICBBcmd1bWVudHNBc3QoQXN0KiBwYXJlbnQpOwor ICAgICBRTGlzdDxBcmdBc3QqPiBhcmd1bWVudHM7CisgICAgIFFMaXN0PEFyZ0FzdCo+IGt3b25s eWFyZ3M7CisrICAgIFFMaXN0PEFyZ0FzdCo+IHBvc29ubHlhcmdzOworICAgICBRTGlzdDxFeHBy ZXNzaW9uQXN0Kj4gZGVmYXVsdFZhbHVlczsKKyAgICAgQXJnQXN0KiB2YXJhcmc7CisgICAgIEFy Z0FzdCoga3dhcmc7CitkaWZmIC0tZ2l0IGEvcGFyc2VyL2FzdGJ1aWxkZXIuY3BwIGIvcGFyc2Vy L2FzdGJ1aWxkZXIuY3BwCitpbmRleCBhMWNjZDY4ZGQzNzhkY2ZjMGUyMTE3ZjI1YWM4ODc3NDY3 NzBkN2Q5Li5hZDJlMGRjZTgyMWI3NDZkYmRhMjc5MzgwNzE2ZjUwY2JmNjE3ZTM4IDEwMDY0NAor LS0tIGEvcGFyc2VyL2FzdGJ1aWxkZXIuY3BwCisrKysgYi9wYXJzZXIvYXN0YnVpbGRlci5jcHAK K0BAIC0xMDEsNyArMTAxLDEzIEBAIENvZGVBc3Q6OlB0ciBBc3RCdWlsZGVyOjpwYXJzZShjb25z dCBRVXJsJiBmaWxlbmFtZSwgUVN0cmluZyAmY29udGVudHMpCisgICAgIFB5dGhvbkluaXRpYWxp emVyIHB5SW5pdGVyKHB5SW5pdExvY2spOworICAgICBQeUFyZW5hKiBhcmVuYSA9IHB5SW5pdGVy LmFyZW5hOworCisrI2lmIFBZVEhPTl9WRVJTSU9OID49IFFUX1ZFUlNJT05fQ0hFQ0soMywgOCwg MCkKKysgICAgUHlDb21waWxlckZsYWdzIGZsYWdzOworKyAgICBmbGFncy5jZl9mbGFncyA9IFB5 Q0ZfU09VUkNFX0lTX1VURjggfCBQeUNGX0lHTk9SRV9DT09LSUUgfCBQeUNGX09OTFlfQVNUOwor KyAgICBmbGFncy5jZl9mZWF0dXJlX3ZlcnNpb24gPSA3OworKyNlbHNlCisgICAgIFB5Q29tcGls ZXJGbGFncyBmbGFncyA9IHtQeUNGX1NPVVJDRV9JU19VVEY4IHwgUHlDRl9JR05PUkVfQ09PS0lF fTsKKysjZW5kaWYKKworICAgICBDeXRob25TeW50YXhSZW1vdmVyIGN5dGhvblN5bnRheFJlbW92 ZXI7CisKK2RpZmYgLS1naXQgYS9wYXJzZXIvYXN0ZGVmYXVsdHZpc2l0b3IuY3BwIGIvcGFyc2Vy L2FzdGRlZmF1bHR2aXNpdG9yLmNwcAoraW5kZXggNWRiMWY2ZjE2YmEzMWVmZjIwMDZjMTMyMDcz NTY1MGM1YzljNTZkOC4uY2RkMzFiYmZmOWE0NDA2ZWVmZGEzYzEwZmQwYmIxNWMzNjI2MDA4YyAx MDA2NDQKKy0tLSBhL3BhcnNlci9hc3RkZWZhdWx0dmlzaXRvci5jcHAKKysrKyBiL3BhcnNlci9h c3RkZWZhdWx0dmlzaXRvci5jcHAKK0BAIC0yOTIsNiArMjkyLDEyIEBAIHZvaWQgQXN0RGVmYXVs dFZpc2l0b3I6OnZpc2l0QW5ub3RhdGlvbkFzc2lnbm1lbnQoQW5ub3RhdGlvbkFzc2lnbm1lbnRB c3QqIG5vZGUpCisgICAgIHZpc2l0Tm9kZShub2RlLT52YWx1ZSk7CisgfQorCisrdm9pZCBBc3RE ZWZhdWx0VmlzaXRvcjo6dmlzaXRBc3NpZ25tZW50RXhwcmVzc2lvbihBc3NpZ25tZW50RXhwcmVz c2lvbkFzdCogbm9kZSkKKyt7CisrICAgIHZpc2l0Tm9kZShub2RlLT50YXJnZXQpOworKyAgICB2 aXNpdE5vZGUobm9kZS0+dmFsdWUpOworK30KKysKKyB2b2lkIEFzdERlZmF1bHRWaXNpdG9yOjp2 aXNpdEJpbmFyeU9wZXJhdGlvbihCaW5hcnlPcGVyYXRpb25Bc3QqIG5vZGUpCisgeworICAgICB2 aXNpdE5vZGUobm9kZS0+bGhzKTsKK2RpZmYgLS1naXQgYS9wYXJzZXIvYXN0ZGVmYXVsdHZpc2l0 b3IuaCBiL3BhcnNlci9hc3RkZWZhdWx0dmlzaXRvci5oCitpbmRleCBlOGUwZDNkZTcyNjIyZDkw M2EyYWFlNjg5NTE5NGMyZjkzOTE0NDAyLi5hYTFmNTQwYzk3NTNmZDBkOTkxMWI2NTY1NDgxMzVl NzAzMGY2ZmVlIDEwMDY0NAorLS0tIGEvcGFyc2VyL2FzdGRlZmF1bHR2aXNpdG9yLmgKKysrKyBi L3BhcnNlci9hc3RkZWZhdWx0dmlzaXRvci5oCitAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6Cisg ICAgIHZvaWQgdmlzaXRBc3NpZ25tZW50KEFzc2lnbm1lbnRBc3QqIG5vZGUpIG92ZXJyaWRlOwor ICAgICB2b2lkIHZpc2l0QXVnbWVudGVkQXNzaWdubWVudChBdWdtZW50ZWRBc3NpZ25tZW50QXN0 KiBub2RlKSBvdmVycmlkZTsKKyAgICAgdm9pZCB2aXNpdEFubm90YXRpb25Bc3NpZ25tZW50KEFu bm90YXRpb25Bc3NpZ25tZW50QXN0KiBub2RlKSBvdmVycmlkZTsKKysgICAgdm9pZCB2aXNpdEFz c2lnbm1lbnRFeHByZXNzaW9uKEFzc2lnbm1lbnRFeHByZXNzaW9uQXN0KiBub2RlKSBvdmVycmlk ZTsKKyAgICAgdm9pZCB2aXNpdEZvcihGb3JBc3QqIG5vZGUpIG92ZXJyaWRlOworICAgICB2b2lk IHZpc2l0V2hpbGUoV2hpbGVBc3QqIG5vZGUpIG92ZXJyaWRlOworICAgICB2b2lkIHZpc2l0SWYo SWZBc3QqIG5vZGUpIG92ZXJyaWRlOworQEAgLTEyMiw2ICsxMjMsNyBAQCBwdWJsaWM6CisgICAg IHZvaWQgdmlzaXRBc3NpZ25tZW50KEFzc2lnbm1lbnRBc3QqIG5vZGUpIG92ZXJyaWRlIHsgQXN0 RGVmYXVsdFZpc2l0b3I6OnZpc2l0QXNzaWdubWVudChub2RlKTsgZGVsZXRlIG5vZGU7IH0KKyAg ICAgdm9pZCB2aXNpdEF1Z21lbnRlZEFzc2lnbm1lbnQoQXVnbWVudGVkQXNzaWdubWVudEFzdCog bm9kZSkgb3ZlcnJpZGUgeyBBc3REZWZhdWx0VmlzaXRvcjo6dmlzaXRBdWdtZW50ZWRBc3NpZ25t ZW50KG5vZGUpOyBkZWxldGUgbm9kZTsgfQorICAgICB2b2lkIHZpc2l0QW5ub3RhdGlvbkFzc2ln bm1lbnQoQW5ub3RhdGlvbkFzc2lnbm1lbnRBc3QqIG5vZGUpIG92ZXJyaWRlIHsgQXN0RGVmYXVs dFZpc2l0b3I6OnZpc2l0QW5ub3RhdGlvbkFzc2lnbm1lbnQobm9kZSk7IGRlbGV0ZSBub2RlOyB9 CisrICAgIHZvaWQgdmlzaXRBc3NpZ25tZW50RXhwcmVzc2lvbihBc3NpZ25tZW50RXhwcmVzc2lv bkFzdCogbm9kZSkgb3ZlcnJpZGUgeyBBc3REZWZhdWx0VmlzaXRvcjo6dmlzaXRBc3NpZ25tZW50 RXhwcmVzc2lvbihub2RlKTsgZGVsZXRlIG5vZGU7IH0KKyAgICAgdm9pZCB2aXNpdEZvcihGb3JB c3QqIG5vZGUpIG92ZXJyaWRlIHsgQXN0RGVmYXVsdFZpc2l0b3I6OnZpc2l0Rm9yKG5vZGUpOyBk ZWxldGUgbm9kZTsgfQorICAgICB2b2lkIHZpc2l0V2hpbGUoV2hpbGVBc3QqIG5vZGUpIG92ZXJy aWRlIHsgQXN0RGVmYXVsdFZpc2l0b3I6OnZpc2l0V2hpbGUobm9kZSk7IGRlbGV0ZSBub2RlOyB9 CisgICAgIHZvaWQgdmlzaXRJZihJZkFzdCogbm9kZSkgb3ZlcnJpZGUgeyBBc3REZWZhdWx0Vmlz aXRvcjo6dmlzaXRJZihub2RlKTsgZGVsZXRlIG5vZGU7IH0KK2RpZmYgLS1naXQgYS9wYXJzZXIv YXN0dmlzaXRvci5jcHAgYi9wYXJzZXIvYXN0dmlzaXRvci5jcHAKK2luZGV4IGFjZTdkNjE5MmIx YmFhNzBiOWY1MjcxM2UyMmNjOGQxZjY3MWNmMWIuLjUxYzVhMWM1ZjEzMWZhMDViYzU3MGU2Yjc0 ZmM0ODY2NjIzZDUyZWQgMTAwNjQ0CistLS0gYS9wYXJzZXIvYXN0dmlzaXRvci5jcHAKKysrKyBi L3BhcnNlci9hc3R2aXNpdG9yLmNwcAorQEAgLTQ3LDYgKzQ3LDcgQEAgdm9pZCBBc3RWaXNpdG9y Ojp2aXNpdE5vZGUoQXN0KiBub2RlKQorICAgICAgICAgY2FzZSBBc3Q6OkFzc2lnbm1lbnRBc3RU eXBlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLT52aXNpdEFzc2lnbm1lbnQoc3Rh dGljX2Nhc3Q8QXNzaWdubWVudEFzdCo+KG5vZGUpKTsgYnJlYWs7CisgICAgICAgICBjYXNlIEFz dDo6QXVnbWVudGVkQXNzaWdubWVudEFzdFR5cGU6ICAgICAgICAgICAgICAgICAgIHRoaXMtPnZp c2l0QXVnbWVudGVkQXNzaWdubWVudChzdGF0aWNfY2FzdDxBdWdtZW50ZWRBc3NpZ25tZW50QXN0 Kj4obm9kZSkpOyBicmVhazsKKyAgICAgICAgIGNhc2UgQXN0OjpBbm5vdGF0aW9uQXNzaWdubWVu dEFzdFR5cGU6ICAgICAgICAgICAgICAgICAgdGhpcy0+dmlzaXRBbm5vdGF0aW9uQXNzaWdubWVu dChzdGF0aWNfY2FzdDxBbm5vdGF0aW9uQXNzaWdubWVudEFzdCo+KG5vZGUpKTsgYnJlYWs7Cisr ICAgICAgICBjYXNlIEFzdDo6QXNzaWdubWVudEV4cHJlc3Npb25Bc3RUeXBlOiAgICAgICAgICAg ICAgICAgIHRoaXMtPnZpc2l0QXNzaWdubWVudEV4cHJlc3Npb24oc3RhdGljX2Nhc3Q8QXNzaWdu bWVudEV4cHJlc3Npb25Bc3QqPihub2RlKSk7IGJyZWFrOworICAgICAgICAgY2FzZSBBc3Q6OkZv ckFzdFR5cGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLT52aXNpdEZv cihzdGF0aWNfY2FzdDxGb3JBc3QqPihub2RlKSk7IGJyZWFrOworICAgICAgICAgY2FzZSBBc3Q6 OldoaWxlQXN0VHlwZTogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLT52aXNp dFdoaWxlKHN0YXRpY19jYXN0PFdoaWxlQXN0Kj4obm9kZSkpOyBicmVhazsKKyAgICAgICAgIGNh c2UgQXN0OjpJZkFzdFR5cGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhp cy0+dmlzaXRJZihzdGF0aWNfY2FzdDxJZkFzdCo+KG5vZGUpKTsgYnJlYWs7CitkaWZmIC0tZ2l0 IGEvcGFyc2VyL2FzdHZpc2l0b3IuaCBiL3BhcnNlci9hc3R2aXNpdG9yLmgKK2luZGV4IDE5MDhl OWRkOTg2NGMyZGQxYzRjZDMzZDZkYjFlMjViZThkNDg3ZmIuLjUxYWE0N2I0YjgyMDIyNWEyYTM5 NTA5MmJjNDBmNjlmMzc5YzQxOTYgMTAwNjQ0CistLS0gYS9wYXJzZXIvYXN0dmlzaXRvci5oCisr KysgYi9wYXJzZXIvYXN0dmlzaXRvci5oCitAQCAtNjEsNiArNjEsNyBAQCBwdWJsaWM6CisgICAg IHZpcnR1YWwgdm9pZCB2aXNpdEFzc2lnbm1lbnQoQXNzaWdubWVudEFzdCogbm9kZSkgeyBRX1VO VVNFRChub2RlKTsgfTsKKyAgICAgdmlydHVhbCB2b2lkIHZpc2l0QXVnbWVudGVkQXNzaWdubWVu dChBdWdtZW50ZWRBc3NpZ25tZW50QXN0KiBub2RlKSB7IFFfVU5VU0VEKG5vZGUpOyB9OworICAg ICB2aXJ0dWFsIHZvaWQgdmlzaXRBbm5vdGF0aW9uQXNzaWdubWVudChBbm5vdGF0aW9uQXNzaWdu bWVudEFzdCogbm9kZSkgeyBRX1VOVVNFRChub2RlKTsgfTsKKysgICAgdmlydHVhbCB2b2lkIHZp c2l0QXNzaWdubWVudEV4cHJlc3Npb24oQXNzaWdubWVudEV4cHJlc3Npb25Bc3QqIG5vZGUpIHsg UV9VTlVTRUQobm9kZSk7IH07CisgICAgIHZpcnR1YWwgdm9pZCB2aXNpdEZvcihGb3JBc3QqIG5v ZGUpIHsgUV9VTlVTRUQobm9kZSk7IH07CisgICAgIHZpcnR1YWwgdm9pZCB2aXNpdFdoaWxlKFdo aWxlQXN0KiBub2RlKSB7IFFfVU5VU0VEKG5vZGUpOyB9OworICAgICB2aXJ0dWFsIHZvaWQgdmlz aXRJZihJZkFzdCogbm9kZSkgeyBRX1VOVVNFRChub2RlKTsgfTsKK2RpZmYgLS1naXQgYS9wYXJz ZXIvY29udmVyc2lvbkdlbmVyYXRvci5weSBiL3BhcnNlci9jb252ZXJzaW9uR2VuZXJhdG9yLnB5 CitpbmRleCA5ZDY1Y2MwZDk5MTViZDZjMGNmYTRlYTM3ZmQzMTM2YThjMThlOWQyLi42NjA1NTk1 M2VmNGUzY2M5ODk2YTEzYmQ1OWNiNjQxYzkzYTJjNTg5IDEwMDY0NAorLS0tIGEvcGFyc2VyL2Nv bnZlcnNpb25HZW5lcmF0b3IucHkKKysrKyBiL3BhcnNlci9jb252ZXJzaW9uR2VuZXJhdG9yLnB5 CitAQCAtOSw3ICs5LDcgQEAKKworIGltcG9ydCBzeXMKKworLWNvbnRlbnRzID0gb3BlbigncHl0 aG9uMzYuc2RlZicpLnJlYWQoKS5yZXBsYWNlKCJcbiIsICIiKS5zcGxpdCgnOzsnKQorK2NvbnRl bnRzID0gb3BlbigncHl0aG9uMzguc2RlZicpLnJlYWQoKS5yZXBsYWNlKCJcbiIsICIiKS5zcGxp dCgnOzsnKQorCisgZnVuY19zdHJ1Y3R1cmUgPSAnJycKKyAgICAgQXN0KiB2aXNpdE5vZGUoJXtS VUxFX0ZPUn0qIG5vZGUpIHsKK0BAIC00NSw3ICs0NSw2IEBAIHNpbXBsZV9mdW5jX3N0cnVjdHVy ZSA9ICcnJworCisgc3dpdGNoX2xpbmUgPSAnJycgICAgICAgIGNhc2UgJXtLSU5EfTogeworICV7 QUNUSU9OU30KKy0gICAgICAgICAgICAgICAgcmVzdWx0ID0gdjsKKyAgICAgICAgICAgICAgICAg YnJlYWs7CisgICAgICAgICAgICAgfScnJworCitAQCAtMTM5LDYgKzEzOCw3IEBAIGZvciBydWxl IGluIGNvbnRlbnRzOgorICAgICAgICAgcmVzdWx0c1tydWxlX2Zvcl0gPSBsaXN0KCkKKworICAg ICBjdXJyZW50X2FjdGlvbnMgPSBsaXN0KCkKKysgICAgY3JlYXRlZF92ID0gRmFsc2UKKyAgICAg Zm9yIGFjdGlvbiBpbiBhY3Rpb25zOgorICAgICAgICAgY29tbWFuZCA9IGFjdGlvbi5zcGxpdCgn fCcpWzBdCisgICAgICAgICB0cnk6CitAQCAtMjA0LDE0ICsyMDQsMTcgQEAgZm9yIHJ1bGUgaW4g Y29udGVudHM6CisgICAgICAgICBlbGlmIGNvbW1hbmQgPT0gJ2NyZWF0ZSc6CisgICAgICAgICAg ICAgYXN0VHlwZSA9IGFyZ3VtZW50cworICAgICAgICAgICAgIGN1cnJlbnRfYWN0aW9ucy5hcHBl bmQoY3JlYXRlX2FzdF9saW5lLnJlcGxhY2UoJyV7QVNUX1RZUEV9JywgYXN0VHlwZSkpCistCisr ICAgICAgICAgICAgY3JlYXRlZF92ID0gVHJ1ZQorKworICAgICBpZiBjb2RlOgorICAgICAgICAg Y3VycmVudF9hY3Rpb25zLmFwcGVuZChjb2RlKTsKKy0KKysKKyAgICAgY3VycmVudF9hY3Rpb25z ID0gIlxuIi5qb2luKGN1cnJlbnRfYWN0aW9ucykKKyAgICAgaWYga2luZCA9PSAnYW55JzoKKyAg ICAgICAgIGN1cnJlbnRfc3RtdCA9IGN1cnJlbnRfYWN0aW9ucworICAgICBlbHNlOgorKyAgICAg ICAgaWYgY3JlYXRlZF92OgorKyAgICAgICAgICAgIGN1cnJlbnRfYWN0aW9ucyArPSAiXG4gICAg ICAgICAgICAgICAgcmVzdWx0ID0gdjsiCisgICAgICAgICBjdXJyZW50X3N0bXQgPSBzd2l0Y2hf bGluZS5yZXBsYWNlKCcle0tJTkR9Jywga2luZCkucmVwbGFjZSgnJXtBQ1RJT05TfScsIGN1cnJl bnRfYWN0aW9ucykKKyAgICAgaWYgYmVmb3JlX3ZlcnNpb246CisgICAgICAgICB2ZXJzaW9uX2Nw cF9pZiA9ICgiI2lmIFBZVEhPTl9WRVJTSU9OIDwgUVRfVkVSU0lPTl9DSEVDSyglZCwgJWQsIDAp XG4iCitkaWZmIC0tZ2l0IGEvcGFyc2VyL2dlbmVyYXRlZC5oIGIvcGFyc2VyL2dlbmVyYXRlZC5o CitpbmRleCA5MDYxZGViMDM5YmJlNjQxOGRkODU0YzI2OWVlMjQyNzM0MTE3YTRjLi5lMTEzNmY4 NDNkMzc4MGJlZmZkNDE5OGU0ZmM0MzQ4NWY1YWM4YTk1IDEwMDY0NAorLS0tIGEvcGFyc2VyL2dl bmVyYXRlZC5oCisrKysgYi9wYXJzZXIvZ2VuZXJhdGVkLmgKK0BAIC03NiwxMiArNzYsMjMgQEAg cHJpdmF0ZToKKyAgICAgQXN0KiB2aXNpdE5vZGUoX2FyZ3VtZW50cyogbm9kZSkgeworICAgICAg ICAgYm9vbCByYW5nZXNfY29waWVkID0gZmFsc2U7IFFfVU5VU0VEKHJhbmdlc19jb3BpZWQpOwor ICAgICAgICAgaWYgKCAhIG5vZGUgKSByZXR1cm4gbnVsbHB0cjsKKysjaWYgUFlUSE9OX1ZFUlNJ T04gPCBRVF9WRVJTSU9OX0NIRUNLKDMsIDgsIDApCisgICAgICAgICAgICAgICAgIEFyZ3VtZW50 c0FzdCogdiA9IG5ldyAgQXJndW1lbnRzQXN0KHBhcmVudCgpKTsKKyAgICAgICAgICAgICBub2Rl U3RhY2sucHVzaCh2KTsgdi0+dmFyYXJnID0gc3RhdGljX2Nhc3Q8QXJnQXN0Kj4odmlzaXROb2Rl KG5vZGUtPnZhcmFyZykpOyBub2RlU3RhY2sucG9wKCk7CisgICAgICAgICAgICAgbm9kZVN0YWNr LnB1c2godik7IHYtPmt3YXJnID0gc3RhdGljX2Nhc3Q8QXJnQXN0Kj4odmlzaXROb2RlKG5vZGUt Pmt3YXJnKSk7IG5vZGVTdGFjay5wb3AoKTsKKyAgICAgICAgICAgICBub2RlU3RhY2sucHVzaCh2 KTsgdi0+YXJndW1lbnRzID0gdmlzaXROb2RlTGlzdDxfYXJnLCBBcmdBc3Q+KG5vZGUtPmFyZ3Mp OyBub2RlU3RhY2sucG9wKCk7CisgICAgICAgICAgICAgbm9kZVN0YWNrLnB1c2godik7IHYtPmRl ZmF1bHRWYWx1ZXMgPSB2aXNpdE5vZGVMaXN0PF9leHByLCBFeHByZXNzaW9uQXN0Pihub2RlLT5k ZWZhdWx0cyk7IG5vZGVTdGFjay5wb3AoKTsKKyAgICAgICAgICAgICBub2RlU3RhY2sucHVzaCh2 KTsgdi0+a3dvbmx5YXJncyA9IHZpc2l0Tm9kZUxpc3Q8X2FyZywgQXJnQXN0Pihub2RlLT5rd29u bHlhcmdzKTsgbm9kZVN0YWNrLnBvcCgpOworKyNlbmRpZgorKyNpZiBQWVRIT05fVkVSU0lPTiA+ PSBRVF9WRVJTSU9OX0NIRUNLKDMsIDgsIDApCisrICAgICAgICAgICAgICAgIEFyZ3VtZW50c0Fz dCogdiA9IG5ldyAgQXJndW1lbnRzQXN0KHBhcmVudCgpKTsKKysgICAgICAgICAgICBub2RlU3Rh Y2sucHVzaCh2KTsgdi0+dmFyYXJnID0gc3RhdGljX2Nhc3Q8QXJnQXN0Kj4odmlzaXROb2RlKG5v ZGUtPnZhcmFyZykpOyBub2RlU3RhY2sucG9wKCk7CisrICAgICAgICAgICAgbm9kZVN0YWNrLnB1 c2godik7IHYtPmt3YXJnID0gc3RhdGljX2Nhc3Q8QXJnQXN0Kj4odmlzaXROb2RlKG5vZGUtPmt3 YXJnKSk7IG5vZGVTdGFjay5wb3AoKTsKKysgICAgICAgICAgICBub2RlU3RhY2sucHVzaCh2KTsg di0+YXJndW1lbnRzID0gdmlzaXROb2RlTGlzdDxfYXJnLCBBcmdBc3Q+KG5vZGUtPmFyZ3MpOyBu b2RlU3RhY2sucG9wKCk7CisrICAgICAgICAgICAgbm9kZVN0YWNrLnB1c2godik7IHYtPmRlZmF1 bHRWYWx1ZXMgPSB2aXNpdE5vZGVMaXN0PF9leHByLCBFeHByZXNzaW9uQXN0Pihub2RlLT5kZWZh dWx0cyk7IG5vZGVTdGFjay5wb3AoKTsKKysgICAgICAgICAgICBub2RlU3RhY2sucHVzaCh2KTsg di0+a3dvbmx5YXJncyA9IHZpc2l0Tm9kZUxpc3Q8X2FyZywgQXJnQXN0Pihub2RlLT5rd29ubHlh cmdzKTsgbm9kZVN0YWNrLnBvcCgpOworKyAgICAgICAgICAgIG5vZGVTdGFjay5wdXNoKHYpOyB2 LT5wb3Nvbmx5YXJncyA9IHZpc2l0Tm9kZUxpc3Q8X2FyZywgQXJnQXN0Pihub2RlLT5wb3Nvbmx5 YXJncyk7IG5vZGVTdGFjay5wb3AoKTsKKysjZW5kaWYKKyAgICAgICAgIHJldHVybiB2OworICAg ICB9CisKK0BAIC0yODAsMTggKzI5MSwyMiBAQCBwcml2YXRlOgorICAgICAgICAgICAgICAgICBi cmVhazsKKyAgICAgICAgICAgICB9CisgI2VuZGlmCisrI2lmIFBZVEhPTl9WRVJTSU9OIDwgUVRf VkVSU0lPTl9DSEVDSygzLCA4LCAwKQorICAgICAgICAgY2FzZSBOdW1fa2luZDogeworICAgICAg ICAgICAgICAgICBOdW1iZXJBc3QqIHYgPSBuZXcgIE51bWJlckFzdChwYXJlbnQoKSk7CisgIHYt PmlzSW50ID0gUHlMb25nX0NoZWNrKG5vZGUtPnYuTnVtLm4pOyB2LT52YWx1ZSA9IFB5TG9uZ19B c0xvbmcobm9kZS0+di5OdW0ubik7CisgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHY7CisgICAg ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgIH0KKysjZW5kaWYKKysjaWYgUFlUSE9O X1ZFUlNJT04gPCBRVF9WRVJTSU9OX0NIRUNLKDMsIDgsIDApCisgICAgICAgICBjYXNlIFN0cl9r aW5kOiB7CisgICAgICAgICAgICAgICAgIFN0cmluZ0FzdCogdiA9IG5ldyAgU3RyaW5nQXN0KHBh cmVudCgpKTsKKyAgICAgICAgICAgICAgICAgdi0+dmFsdWUgPSBQeVVuaWNvZGVPYmplY3RUb1FT dHJpbmcobm9kZS0+di5TdHIucyk7CisgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHY7CisgICAg ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgIH0KKysjZW5kaWYKKyAjaWYgUFlUSE9O X1ZFUlNJT04gPj0gUVRfVkVSU0lPTl9DSEVDSygzLCA2LCAwKQorICAgICAgICAgY2FzZSBKb2lu ZWRTdHJfa2luZDogeworICAgICAgICAgICAgICAgICBKb2luZWRTdHJpbmdBc3QqIHYgPSBuZXcg IEpvaW5lZFN0cmluZ0FzdChwYXJlbnQoKSk7CitAQCAtMzEwLDEyICszMjUsMTQgQEAgcHJpdmF0 ZToKKyAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgfQorICNlbmRpZgorKyNp ZiBQWVRIT05fVkVSU0lPTiA8IFFUX1ZFUlNJT05fQ0hFQ0soMywgOCwgMCkKKyAgICAgICAgIGNh c2UgQnl0ZXNfa2luZDogeworICAgICAgICAgICAgICAgICBCeXRlc0FzdCogdiA9IG5ldyAgQnl0 ZXNBc3QocGFyZW50KCkpOworICAgICAgICAgICAgICAgICB2LT52YWx1ZSA9IFB5VW5pY29kZU9i amVjdFRvUVN0cmluZyhub2RlLT52LkJ5dGVzLnMpOworICAgICAgICAgICAgICAgICByZXN1bHQg PSB2OworICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICB9CisrI2VuZGlmCisg ICAgICAgICBjYXNlIEF0dHJpYnV0ZV9raW5kOiB7CisgICAgICAgICAgICAgICAgIEF0dHJpYnV0 ZUFzdCogdiA9IG5ldyAgQXR0cmlidXRlQXN0KHBhcmVudCgpKTsKKyAgICAgICAgICAgICAgICAg di0+YXR0cmlidXRlID0gbm9kZS0+di5BdHRyaWJ1dGUuYXR0ciA/IG5ldyBQeXRob246OklkZW50 aWZpZXIoUHlVbmljb2RlT2JqZWN0VG9RU3RyaW5nKG5vZGUtPnYuQXR0cmlidXRlLmF0dHIpKSA6 IG51bGxwdHI7CitAQCAtMzc0LDIzICszOTEsNDIgQEAgcHJpdmF0ZToKKyAgICAgICAgICAgICAg ICAgcmVzdWx0ID0gdjsKKyAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgfQor KyNpZiBQWVRIT05fVkVSU0lPTiA8IFFUX1ZFUlNJT05fQ0hFQ0soMywgOCwgMCkKKyAgICAgICAg IGNhc2UgRWxsaXBzaXNfa2luZDogeworICAgICAgICAgICAgICAgICBFbGxpcHNpc0FzdCogdiA9 IG5ldyAgRWxsaXBzaXNBc3QocGFyZW50KCkpOworICAgICAgICAgICAgICAgICByZXN1bHQgPSB2 OworICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICB9CisrI2VuZGlmCisrI2lm IFBZVEhPTl9WRVJTSU9OIDwgUVRfVkVSU0lPTl9DSEVDSygzLCA4LCAwKQorICAgICAgICAgY2Fz ZSBOYW1lQ29uc3RhbnRfa2luZDogeworICAgICAgICAgICAgICAgICBOYW1lQ29uc3RhbnRBc3Qq IHYgPSBuZXcgIE5hbWVDb25zdGFudEFzdChwYXJlbnQoKSk7CisgICAgICAgICAgICAgICAgIHYt PnZhbHVlID0gbm9kZS0+di5OYW1lQ29uc3RhbnQudmFsdWUgPT0gUHlfTm9uZSA/IE5hbWVDb25z dGFudEFzdDo6Tm9uZSA6IG5vZGUtPnYuTmFtZUNvbnN0YW50LnZhbHVlID09IFB5X0ZhbHNlID8g TmFtZUNvbnN0YW50QXN0OjpGYWxzZSA6IE5hbWVDb25zdGFudEFzdDo6VHJ1ZTsKKyAgICAgICAg ICAgICAgICAgcmVzdWx0ID0gdjsKKyAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg ICAgfQorKyNlbmRpZgorICAgICAgICAgY2FzZSBZaWVsZEZyb21fa2luZDogeworICAgICAgICAg ICAgICAgICBZaWVsZEZyb21Bc3QqIHYgPSBuZXcgIFlpZWxkRnJvbUFzdChwYXJlbnQoKSk7Cisg ICAgICAgICAgICAgICAgIG5vZGVTdGFjay5wdXNoKHYpOyB2LT52YWx1ZSA9IHN0YXRpY19jYXN0 PEV4cHJlc3Npb25Bc3QqPih2aXNpdE5vZGUobm9kZS0+di5ZaWVsZEZyb20udmFsdWUpKTsgbm9k ZVN0YWNrLnBvcCgpOworICAgICAgICAgICAgICAgICByZXN1bHQgPSB2OworICAgICAgICAgICAg ICAgICBicmVhazsKKyAgICAgICAgICAgICB9CisrI2lmIFBZVEhPTl9WRVJTSU9OID49IFFUX1ZF UlNJT05fQ0hFQ0soMywgOCwgMCkKKysgICAgICAgIGNhc2UgQ29uc3RhbnRfa2luZDogeworK1B5 T2JqZWN0ICp2YWx1ZSA9IG5vZGUtPnYuQ29uc3RhbnQudmFsdWU7aWYgKHZhbHVlID09IFB5X05v bmUpIHsgICAgTmFtZUNvbnN0YW50QXN0KiB2ID0gbmV3IE5hbWVDb25zdGFudEFzdChwYXJlbnQo KSk7ICAgIHYtPnZhbHVlID0gTmFtZUNvbnN0YW50QXN0OjpOb25lOyAgICByZXN1bHQgPSB2O31l bHNlIGlmICh2YWx1ZSA9PSBQeV9UcnVlKSB7ICAgIE5hbWVDb25zdGFudEFzdCogdiA9IG5ldyAg TmFtZUNvbnN0YW50QXN0KHBhcmVudCgpKTsgICAgdi0+dmFsdWUgPSBOYW1lQ29uc3RhbnRBc3Q6 OlRydWU7ICAgIHJlc3VsdCA9IHY7fWVsc2UgaWYgKHZhbHVlID09IFB5X0ZhbHNlKSB7ICAgIE5h bWVDb25zdGFudEFzdCogdiA9IG5ldyAgTmFtZUNvbnN0YW50QXN0KHBhcmVudCgpKTsgICAgdi0+ dmFsdWUgPSBOYW1lQ29uc3RhbnRBc3Q6OkZhbHNlOyAgICByZXN1bHQgPSB2O31lbHNlIGlmICh2 YWx1ZS0+b2JfdHlwZSA9PSAmUHlMb25nX1R5cGUpIHsgICAgTnVtYmVyQXN0KiB2ID0gbmV3IE51 bWJlckFzdChwYXJlbnQoKSk7ICAgIHYtPmlzSW50ID0gdHJ1ZTsgICAgdi0+dmFsdWUgPSBQeUxv bmdfQXNMb25nKHZhbHVlKTsgICAgcmVzdWx0ID0gdjt9ZWxzZSBpZiAodmFsdWUtPm9iX3R5cGUg PT0gJlB5RmxvYXRfVHlwZSB8fCB2YWx1ZS0+b2JfdHlwZSA9PSAmUHlDb21wbGV4X1R5cGUpIHsg ICAgcmVzdWx0ID0gbmV3IE51bWJlckFzdChwYXJlbnQoKSk7fWVsc2UgaWYgKHZhbHVlLT5vYl90 eXBlID09ICZQeVVuaWNvZGVfVHlwZSkgeyAgICBTdHJpbmdBc3QqIHYgPSBuZXcgU3RyaW5nQXN0 KHBhcmVudCgpKTsgICAgdi0+dmFsdWUgPSBQeVVuaWNvZGVPYmplY3RUb1FTdHJpbmcodmFsdWUp OyAgICByZXN1bHQgPSB2O31lbHNlIGlmICh2YWx1ZS0+b2JfdHlwZSA9PSAmUHlCeXRlc19UeXBl KSB7ICAgIHJlc3VsdCA9IG5ldyBCeXRlc0FzdChwYXJlbnQoKSk7fWVsc2UgaWYgKHZhbHVlLT5v Yl90eXBlID09ICZQeUVsbGlwc2lzX1R5cGUpIHsgICAgcmVzdWx0ID0gbmV3IEVsbGlwc2lzQXN0 KHBhcmVudCgpKTt9ZWxzZSB7ICAgIHFXYXJuaW5nKCkgPDwgIlVuaGFuZGxlZCBjb25zdGFudCB0 eXBlOiAiIDw8IHZhbHVlLT5vYl90eXBlLT50cF9uYW1lOyAgICBRX0FTU0VSVChmYWxzZSk7fTsK KysgICAgICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICAgICAgfQorKyNlbmRpZgorKyNpZiBQ WVRIT05fVkVSU0lPTiA+PSBRVF9WRVJTSU9OX0NIRUNLKDMsIDgsIDApCisrICAgICAgICBjYXNl IE5hbWVkRXhwcl9raW5kOiB7CisrICAgICAgICAgICAgICAgIEFzc2lnbm1lbnRFeHByZXNzaW9u QXN0KiB2ID0gbmV3ICBBc3NpZ25tZW50RXhwcmVzc2lvbkFzdChwYXJlbnQoKSk7CisrICAgICAg ICAgICAgICAgIG5vZGVTdGFjay5wdXNoKHYpOyB2LT50YXJnZXQgPSBzdGF0aWNfY2FzdDxFeHBy ZXNzaW9uQXN0Kj4odmlzaXROb2RlKG5vZGUtPnYuTmFtZWRFeHByLnRhcmdldCkpOyBub2RlU3Rh Y2sucG9wKCk7CisrICAgICAgICAgICAgICAgIG5vZGVTdGFjay5wdXNoKHYpOyB2LT52YWx1ZSA9 IHN0YXRpY19jYXN0PEV4cHJlc3Npb25Bc3QqPih2aXNpdE5vZGUobm9kZS0+di5OYW1lZEV4cHIu dmFsdWUpKTsgbm9kZVN0YWNrLnBvcCgpOworKyAgICAgICAgICAgICAgICByZXN1bHQgPSB2Owor KyAgICAgICAgICAgICAgICBicmVhazsKKysgICAgICAgICAgICB9CisrI2VuZGlmCisgICAgICAg ICBkZWZhdWx0OgorICAgICAgICAgICAgIHFXYXJuaW5nKCkgPDwgIlVuc3VwcG9ydGVkIF9leHBy IEFTVCB0eXBlOiAiIDw8IG5vZGUtPmtpbmQ7CisgICAgICAgICAgICAgUV9BU1NFUlQoZmFsc2Up OworZGlmZiAtLWdpdCBhL3BhcnNlci9weXRob24zNi5zZGVmIGIvcGFyc2VyL3B5dGhvbjM4LnNk ZWYKK3NpbWlsYXJpdHkgaW5kZXggODIlCityZW5hbWUgZnJvbSBwYXJzZXIvcHl0aG9uMzYuc2Rl ZgorcmVuYW1lIHRvIHBhcnNlci9weXRob24zOC5zZGVmCitpbmRleCBmNTNmZjFjNzlhNTExN2Qy MGRlMzdlNThhYWQzMzk1NWIxNWViNGFhLi4zMGQ5Zjk1YWJhNGNlMzE1NGE3MDA3M2E3MmNkNzEz Yzk3MmM1M2EzIDEwMDY0NAorLS0tIGEvcGFyc2VyL3B5dGhvbjM2LnNkZWYKKysrKyBiL3BhcnNl ci9weXRob24zOC5zZGVmCitAQCAtNzMsMjAgKzczLDYyIEBAIGlmIChub2RlLT52LkNhbGwua3dh cmdzKSB7CisgICAgIHYtPmtleXdvcmRzLmFwcGVuZChrd2FyZ3MpOworICAgICBub2RlU3RhY2su cG9wKCk7CisgfTs7CistUlVMRV9GT1IgX2V4cHI7S0lORCBOdW1fa2luZDtBQ1RJT05TIGNyZWF0 ZXxOdW1iZXJBc3Q7Q09ERSB2LT5pc0ludCA9IFB5TG9uZ19DaGVjayhub2RlLT52Lk51bS5uKTsg di0+dmFsdWUgPSBQeUxvbmdfQXNMb25nKG5vZGUtPnYuTnVtLm4pOzsKKy1SVUxFX0ZPUiBfZXhw cjtLSU5EIFN0cl9raW5kO0FDVElPTlMgY3JlYXRlfFN0cmluZ0FzdCBzZXR8dmFsdWUkPnM7Owor K1JVTEVfRk9SIF9leHByO0tJTkQgTnVtX2tpbmQ7QUNUSU9OUyBjcmVhdGV8TnVtYmVyQXN0O0JF Rk9SRSAzLjg7Q09ERSB2LT5pc0ludCA9IFB5TG9uZ19DaGVjayhub2RlLT52Lk51bS5uKTsgdi0+ dmFsdWUgPSBQeUxvbmdfQXNMb25nKG5vZGUtPnYuTnVtLm4pOzsKKytSVUxFX0ZPUiBfZXhwcjtL SU5EIFN0cl9raW5kO0FDVElPTlMgY3JlYXRlfFN0cmluZ0FzdCBzZXR8dmFsdWUkPnM7QkVGT1JF IDMuODs7CisgUlVMRV9GT1IgX2V4cHI7S0lORCBKb2luZWRTdHJfa2luZDtBQ1RJT05TIGNyZWF0 ZXxKb2luZWRTdHJpbmdBc3Qgc2V0fHZhbHVlcz0+RXhwcmVzc2lvbkFzdCx2YWx1ZXM7U0lOQ0Ug My42OzsKKyBSVUxFX0ZPUiBfZXhwcjtLSU5EIEZvcm1hdHRlZFZhbHVlX2tpbmQ7QUNUSU9OUyBj cmVhdGV8Rm9ybWF0dGVkVmFsdWVBc3Qgc2V0fHZhbHVlLT5FeHByZXNzaW9uQXN0LHZhbHVlIHNl dHxjb252ZXJzaW9uOj5jb252ZXJzaW9uIHNldHxmb3JtYXRTcGVjLT5FeHByZXNzaW9uQXN0LGZv cm1hdF9zcGVjO1NJTkNFIDMuNjs7CistUlVMRV9GT1IgX2V4cHI7S0lORCBCeXRlc19raW5kO0FD VElPTlMgY3JlYXRlfEJ5dGVzQXN0IHNldHx2YWx1ZSQ+czs7CisrUlVMRV9GT1IgX2V4cHI7S0lO RCBCeXRlc19raW5kO0FDVElPTlMgY3JlYXRlfEJ5dGVzQXN0IHNldHx2YWx1ZSQ+cztCRUZPUkUg My44OzsKKyBSVUxFX0ZPUiBfZXhwcjtLSU5EIEF0dHJpYnV0ZV9raW5kO0FDVElPTlMgY3JlYXRl fEF0dHJpYnV0ZUFzdCBzZXR8YXR0cmlidXRlfj5hdHRyIHNldHx2YWx1ZS0+RXhwcmVzc2lvbkFz dCx2YWx1ZSBzZXR8Y29udGV4dCo+Q29udGV4dCxjdHg7OworIFJVTEVfRk9SIF9leHByO0tJTkQg U3Vic2NyaXB0X2tpbmQ7QUNUSU9OUyBjcmVhdGV8U3Vic2NyaXB0QXN0IHNldHx2YWx1ZS0+RXhw cmVzc2lvbkFzdCx2YWx1ZSBzZXR8c2xpY2UtPlNsaWNlQXN0LHNsaWNlIHNldHxjb250ZXh0Kj5D b250ZXh0LGN0eDs7CisgUlVMRV9GT1IgX2V4cHI7S0lORCBTdGFycmVkX2tpbmQ7QUNUSU9OUyBj cmVhdGV8U3RhcnJlZEFzdCBzZXR8dmFsdWUtPkV4cHJlc3Npb25Bc3QsdmFsdWUgc2V0fGNvbnRl eHQqPkNvbnRleHQsY3R4OzsKKyBSVUxFX0ZPUiBfZXhwcjtLSU5EIE5hbWVfa2luZDtBQ1RJT05T IGNyZWF0ZXxOYW1lQXN0IHNldHxpZGVudGlmaWVyfj5pZCBzZXR8Y29udGV4dCo+Q29udGV4dCxj dHg7OworIFJVTEVfRk9SIF9leHByO0tJTkQgTGlzdF9raW5kO0FDVElPTlMgY3JlYXRlfExpc3RB c3Qgc2V0fGVsZW1lbnRzPT5FeHByZXNzaW9uQXN0LGVsdHMgc2V0fGNvbnRleHQqPkNvbnRleHQs Y3R4OzsKKyBSVUxFX0ZPUiBfZXhwcjtLSU5EIFR1cGxlX2tpbmQ7QUNUSU9OUyBjcmVhdGV8VHVw bGVBc3Qgc2V0fGVsZW1lbnRzPT5FeHByZXNzaW9uQXN0LGVsdHMgc2V0fGNvbnRleHQqPkNvbnRl eHQsY3R4OzsKKy1SVUxFX0ZPUiBfZXhwcjtLSU5EIEVsbGlwc2lzX2tpbmQ7QUNUSU9OUyBjcmVh dGV8RWxsaXBzaXNBc3Q7OworLVJVTEVfRk9SIF9leHByO0tJTkQgTmFtZUNvbnN0YW50X2tpbmQ7 QUNUSU9OUyBjcmVhdGV8TmFtZUNvbnN0YW50QXN0IHNldHx2YWx1ZV8+dmFsdWU7OworK1JVTEVf Rk9SIF9leHByO0tJTkQgRWxsaXBzaXNfa2luZDtBQ1RJT05TIGNyZWF0ZXxFbGxpcHNpc0FzdDtC RUZPUkUgMy44OzsKKytSVUxFX0ZPUiBfZXhwcjtLSU5EIE5hbWVDb25zdGFudF9raW5kO0FDVElP TlMgY3JlYXRlfE5hbWVDb25zdGFudEFzdCBzZXR8dmFsdWVfPnZhbHVlO0JFRk9SRSAzLjg7Owor IFJVTEVfRk9SIF9leHByO0tJTkQgWWllbGRGcm9tX2tpbmQ7QUNUSU9OUyBjcmVhdGV8WWllbGRG cm9tQXN0IHNldHx2YWx1ZS0+RXhwcmVzc2lvbkFzdCx2YWx1ZTs7CisrUlVMRV9GT1IgX2V4cHI7 S0lORCBDb25zdGFudF9raW5kO0FDVElPTlM7U0lOQ0UgMy44O0NPREUKKytQeU9iamVjdCAqdmFs dWUgPSBub2RlLT52LkNvbnN0YW50LnZhbHVlOworK2lmICh2YWx1ZSA9PSBQeV9Ob25lKSB7Cisr ICAgIE5hbWVDb25zdGFudEFzdCogdiA9IG5ldyBOYW1lQ29uc3RhbnRBc3QocGFyZW50KCkpOwor KyAgICB2LT52YWx1ZSA9IE5hbWVDb25zdGFudEFzdDo6Tm9uZTsKKysgICAgcmVzdWx0ID0gdjsK Kyt9CisrZWxzZSBpZiAodmFsdWUgPT0gUHlfVHJ1ZSkgeworKyAgICBOYW1lQ29uc3RhbnRBc3Qq IHYgPSBuZXcgIE5hbWVDb25zdGFudEFzdChwYXJlbnQoKSk7CisrICAgIHYtPnZhbHVlID0gTmFt ZUNvbnN0YW50QXN0OjpUcnVlOworKyAgICByZXN1bHQgPSB2OworK30KKytlbHNlIGlmICh2YWx1 ZSA9PSBQeV9GYWxzZSkgeworKyAgICBOYW1lQ29uc3RhbnRBc3QqIHYgPSBuZXcgIE5hbWVDb25z dGFudEFzdChwYXJlbnQoKSk7CisrICAgIHYtPnZhbHVlID0gTmFtZUNvbnN0YW50QXN0OjpGYWxz ZTsKKysgICAgcmVzdWx0ID0gdjsKKyt9CisrZWxzZSBpZiAodmFsdWUtPm9iX3R5cGUgPT0gJlB5 TG9uZ19UeXBlKSB7CisrICAgIE51bWJlckFzdCogdiA9IG5ldyBOdW1iZXJBc3QocGFyZW50KCkp OworKyAgICB2LT5pc0ludCA9IHRydWU7CisrICAgIHYtPnZhbHVlID0gUHlMb25nX0FzTG9uZyh2 YWx1ZSk7CisrICAgIHJlc3VsdCA9IHY7CisrfQorK2Vsc2UgaWYgKHZhbHVlLT5vYl90eXBlID09 ICZQeUZsb2F0X1R5cGUgfHwgdmFsdWUtPm9iX3R5cGUgPT0gJlB5Q29tcGxleF9UeXBlKSB7Cisr ICAgIHJlc3VsdCA9IG5ldyBOdW1iZXJBc3QocGFyZW50KCkpOworK30KKytlbHNlIGlmICh2YWx1 ZS0+b2JfdHlwZSA9PSAmUHlVbmljb2RlX1R5cGUpIHsKKysgICAgU3RyaW5nQXN0KiB2ID0gbmV3 IFN0cmluZ0FzdChwYXJlbnQoKSk7CisrICAgIHYtPnZhbHVlID0gUHlVbmljb2RlT2JqZWN0VG9R U3RyaW5nKHZhbHVlKTsKKysgICAgcmVzdWx0ID0gdjsKKyt9CisrZWxzZSBpZiAodmFsdWUtPm9i X3R5cGUgPT0gJlB5Qnl0ZXNfVHlwZSkgeworKyAgICByZXN1bHQgPSBuZXcgQnl0ZXNBc3QocGFy ZW50KCkpOworK30KKytlbHNlIGlmICh2YWx1ZS0+b2JfdHlwZSA9PSAmUHlFbGxpcHNpc19UeXBl KSB7CisrICAgIHJlc3VsdCA9IG5ldyBFbGxpcHNpc0FzdChwYXJlbnQoKSk7CisrfQorK2Vsc2Ug eworKyAgICBxV2FybmluZygpIDw8ICJVbmhhbmRsZWQgY29uc3RhbnQgdHlwZTogIiA8PCB2YWx1 ZS0+b2JfdHlwZS0+dHBfbmFtZTsKKysgICAgUV9BU1NFUlQoZmFsc2UpOworK307OworK1JVTEVf Rk9SIF9leHByO0tJTkQgTmFtZWRFeHByX2tpbmQ7QUNUSU9OUyBjcmVhdGV8QXNzaWdubWVudEV4 cHJlc3Npb25Bc3Qgc2V0fHRhcmdldC0+RXhwcmVzc2lvbkFzdCx0YXJnZXQgc2V0fHZhbHVlLT5F eHByZXNzaW9uQXN0LHZhbHVlO1NJTkNFIDMuODs7CisKKyBSVUxFX0ZPUiBfc2xpY2U7S0lORCBT bGljZV9raW5kO0FDVElPTlMgY3JlYXRlfFNsaWNlQXN0IHNldHxsb3dlci0+RXhwcmVzc2lvbkFz dCxsb3dlciBzZXR8dXBwZXItPkV4cHJlc3Npb25Bc3QsdXBwZXIgc2V0fHN0ZXAtPkV4cHJlc3Np b25Bc3Qsc3RlcDs7CisgUlVMRV9GT1IgX3NsaWNlO0tJTkQgRXh0U2xpY2Vfa2luZDtBQ1RJT05T IGNyZWF0ZXxFeHRlbmRlZFNsaWNlQXN0IHNldHxkaW1zPT5TbGljZUFzdCxkaW1zOzsKK0BAIC05 NSw3ICsxMzcsOCBAQCBSVUxFX0ZPUiBfc2xpY2U7S0lORCBJbmRleF9raW5kO0FDVElPTlMgY3Jl YXRlfEluZGV4QXN0IHNldHx2YWx1ZS0+RXhwcmVzc2lvbkFzdAorCisgUlVMRV9GT1IgX2NvbXBy ZWhlbnNpb247S0lORCBhbnk7QUNUSU9OUyBjcmVhdGV8Q29tcHJlaGVuc2lvbkFzdCBzZXR8dGFy Z2V0LT5FeHByZXNzaW9uQXN0LHRhcmdldCBzZXR8aXRlcmF0b3ItPkV4cHJlc3Npb25Bc3QsaXRl ciBzZXR8Y29uZGl0aW9ucz0+RXhwcmVzc2lvbkFzdCxpZnM7OworIFJVTEVfRk9SIF9leGNlcHRo YW5kbGVyO0tJTkQgRXhjZXB0SGFuZGxlcl9raW5kO0FDVElPTlMgY3JlYXRlfEV4Y2VwdGlvbkhh bmRsZXJBc3Qgc2V0fHR5cGUtPkV4cHJlc3Npb25Bc3QsdHlwZSBzZXR8bmFtZX4+bmFtZSBzZXR8 Ym9keT0+QXN0LGJvZHk7OworLVJVTEVfRk9SIF9hcmd1bWVudHM7S0lORCBhbnk7QUNUSU9OUyBj cmVhdGV8QXJndW1lbnRzQXN0IHNldHx2YXJhcmctPkFyZ0FzdCx2YXJhcmcgc2V0fGt3YXJnLT5B cmdBc3Qsa3dhcmcgc2V0fGFyZ3VtZW50cz0+QXJnQXN0LGFyZ3Mgc2V0fGRlZmF1bHRWYWx1ZXM9 PkV4cHJlc3Npb25Bc3QsZGVmYXVsdHMgc2V0fGt3b25seWFyZ3M9PkFyZ0FzdCxrd29ubHlhcmdz OzsKKytSVUxFX0ZPUiBfYXJndW1lbnRzO0tJTkQgYW55O0FDVElPTlMgY3JlYXRlfEFyZ3VtZW50 c0FzdCBzZXR8dmFyYXJnLT5BcmdBc3QsdmFyYXJnIHNldHxrd2FyZy0+QXJnQXN0LGt3YXJnIHNl dHxhcmd1bWVudHM9PkFyZ0FzdCxhcmdzIHNldHxkZWZhdWx0VmFsdWVzPT5FeHByZXNzaW9uQXN0 LGRlZmF1bHRzIHNldHxrd29ubHlhcmdzPT5BcmdBc3Qsa3dvbmx5YXJncztCRUZPUkUgMy44OzsK KytSVUxFX0ZPUiBfYXJndW1lbnRzO0tJTkQgYW55O0FDVElPTlMgY3JlYXRlfEFyZ3VtZW50c0Fz dCBzZXR8dmFyYXJnLT5BcmdBc3QsdmFyYXJnIHNldHxrd2FyZy0+QXJnQXN0LGt3YXJnIHNldHxh cmd1bWVudHM9PkFyZ0FzdCxhcmdzIHNldHxkZWZhdWx0VmFsdWVzPT5FeHByZXNzaW9uQXN0LGRl ZmF1bHRzIHNldHxrd29ubHlhcmdzPT5BcmdBc3Qsa3dvbmx5YXJncyBzZXR8cG9zb25seWFyZ3M9 PkFyZ0FzdCxwb3Nvbmx5YXJncztTSU5DRSAzLjg7OworIFJVTEVfRk9SIF9hcmc7S0lORCBhbnk7 QUNUSU9OUyBjcmVhdGV8QXJnQXN0IHNldHxhcmd1bWVudE5hbWV+PmFyZyBzZXR8YW5ub3RhdGlv bi0+RXhwcmVzc2lvbkFzdCxhbm5vdGF0aW9uOzsKKyBSVUxFX0ZPUiBfa2V5d29yZDtLSU5EIGFu eTtBQ1RJT05TIGNyZWF0ZXxLZXl3b3JkQXN0IHNldHxhcmd1bWVudE5hbWV+PmFyZyBzZXR8dmFs dWUtPkV4cHJlc3Npb25Bc3QsdmFsdWU7OworIFJVTEVfRk9SIF9hbGlhcztLSU5EIGFueTtBQ1RJ T05TIGNyZWF0ZXxBbGlhc0FzdCBzZXR8bmFtZX4+bmFtZSBzZXR8YXNOYW1lfj5hc25hbWU7Owor ZGlmZiAtLWdpdCBhL3BhcnNlci90ZXN0cy9weWFzdHRlc3QuY3BwIGIvcGFyc2VyL3Rlc3RzL3B5 YXN0dGVzdC5jcHAKK2luZGV4IDRmZDVmNGViZDViZTJkNDI1ZDZhMzIxYWQwNTExZjdmM2QwZGRi NDIuLmMyOGY2ZmNlMDgwOWY0MzU4YTcyNDg4ZTc1ZGMyYTdmOGUwNTAwYzQgMTAwNjQ0CistLS0g YS9wYXJzZXIvdGVzdHMvcHlhc3R0ZXN0LmNwcAorKysrIGIvcGFyc2VyL3Rlc3RzL3B5YXN0dGVz dC5jcHAKK0BAIC0yMzgsNiArMjM4LDExIEBAIHZvaWQgUHlBc3RUZXN0Ojp0ZXN0RXhwcmVzc2lv bnNfZGF0YSgpCisgICAgICAgICAiICAgICAgICoqe2V4dDogc2VsZi5yZXNfZXh0ZW5zaW9uIGZv ciBleHQgaW4gc2VsZi5fcmNfZXh0ZW5zaW9ucyArIHNlbGYuX21jX2V4dGVuc2lvbnN9LFxuIgor ICAgICAifSI7CisgI2VuZGlmCisrI2lmIFBZVEhPTl9WRVJTSU9OID49IFFUX1ZFUlNJT05fQ0hF Q0soMywgOCwgMCkKKysgICAgUVRlc3Q6Om5ld1JvdygiYXNzaWdubWVudF9leHByXzEiKSA8PCAi YSA9IChiIDo9IDEwKSI7CisrICAgIFFUZXN0OjpuZXdSb3coImFzc2lnbm1lbnRfZXhwcl8yIikg PDwgImEgPSBbcSBmb3IgeiBpbiAoMSwgMiwgMykgaWYgKHEgOj0gMip6KV0iOworKyAgICBRVGVz dDo6bmV3Um93KCJwb3NpdGlvbmFsX3BhcmFtcyIpIDw8ICJkZWYgZm9vKGEsIGIsIC8sIGMsIGQs ICosIGUpOiBwYXNzIjsKKysjZW5kaWYKKyB9CisKKyB2b2lkIFB5QXN0VGVzdDo6dGVzdENvcnJl Y3RlZEZ1bmNSYW5nZXMoKQoKZGlmZiAtLWdpdCBhL2tkZXZlbG9wLXB5dGhvbi5zcGVjIGIva2Rl dmVsb3AtcHl0aG9uLnNwZWMKaW5kZXggMDcwNDNmYi4uYzEwNTk2NCAxMDA2NDQKLS0tIGEva2Rl dmVsb3AtcHl0aG9uLnNwZWMKKysrIGIva2RldmVsb3AtcHl0aG9uLnNwZWMKQEAgLTI2LDYgKzI2 LDkgQEAgUGF0Y2gxOiAgICAga2Rldi1weXRob24tMS43LjAtcHkzLWRvYy1zeW50YXgucGF0Y2gK ICMgRml4IHN5bnRheCBlcnJvciBkdWUgdG8gYXN5bmMgYmVpbmcgYSByZXNlcnZlZCBrZXl3b3Jk IGluIHB5dGhvbjMuNwogUGF0Y2gyOiAgICAga2Rldi1weXRob25fYXN5bmMucGF0Y2gKIAorIyBG aXggYnVpbGQgYWdhaW5zdCBQeXRob24gMy44CitQYXRjaDM6ICAgICBrZGV2LXB5dGhvbi1weXRo b24zOC5wYXRjaAorCiBTdW1tYXJ5OiAgICBQeXRob24gMyBQbHVnaW4gZm9yIEtEZXZlbG9wCiBV Ukw6ICAgICAgICBodHRwczovL3d3dy5rZGV2ZWxvcC5vcmcvCiAKQEAgLTY3LDYgKzcwLDcgQEAg UHl0aG9uIDMgbGFuZ3VhZ2Ugc3VwcG9ydCBmb3IgdGhlIEtEZXZlbG9wIEludGVncmF0ZWQgRGV2 ZWxvcG1lbnQgRW52aXJvbm1lbnQuCiAlcGF0Y2gxIC1wMQogIyBhc3luYwogJXBhdGNoMiAtcDEK KyVwYXRjaDMgLXAxCiAKICVidWlsZAogbWtkaXIgJXtfdGFyZ2V0X3BsYXRmb3JtfQpAQCAtMTAy LDYgKzEwNiw5IEBAIHJtIC1mICV7YnVpbGRyb290fSV7X2RhdGFkaXJ9L2tkZXZweXRob25zdXBw b3J0L2RvY3VtZW50YXRpb25fZmlsZXMvUHlLREU0L3BhcnNlCiAle19kYXRhZGlyfS9tZXRhaW5m by9vcmcua2RlLmtkZXYtcHl0aG9uLm1ldGFpbmZvLnhtbAogCiAlY2hhbmdlbG9nCisqIFRodSBP Y3QgMjQgMjAxOSBKYW4gR3J1bGljaCA8amdydWxpY2hAcmVkaGF0LmNvbT4gLSA1LjQuMy0yCist IEJ1aWxkIGFnYWluc3QgUHl0aG9uIDMuOAorCiAqIFR1ZSBPY3QgMjIgMjAxOSBKYW4gR3J1bGlj aCA8amdydWxpY2hAcmVkaGF0LmNvbT4gLSA1LjQuMy0xCiAtIDUuNC4zCiAK