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: Orion Poplawski To: git-commits@fedoraproject.org Subject: [rpms/opencv] opencv5: Add upstream patches for VTK 9.0 support (bz#1840977) Date: Fri, 28 Aug 2026 13:31:36 GMT Message-ID: <178792389698.1.3725771776015161953.rpms-opencv-656fd9bcc5d0@fedoraproject.org> List-ID: X-Git-Repo: rpms/opencv X-Git-Branch: opencv5 X-Git-Rev: 656fd9bcc5d0eb5b238be19495758383abc5c498 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvb3BlbmN2CkJyYW5j aCA6IG9wZW5jdjUKQ29tbWl0IDogNjU2ZmQ5YmNjNWQwZWI1YjIzOGJlMTk0OTU3NTgzODNhYmM1 YzQ5OApBdXRob3IgOiBPcmlvbiBQb3BsYXdza2kgPG9yaW9uQG53cmEuY29tPgpEYXRlICAgOiAy MDIwLTA2LTAyVDIwOjMyOjIyLTA2OjAwClN0YXRzICA6ICs1NDAvLTcgaW4gMyBmaWxlKHMpClVS TCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvb3BlbmN2L2MvNjU2ZmQ5 YmNjNWQwZWI1YjIzOGJlMTk0OTU3NTgzODNhYmM1YzQ5OD9icmFuY2g9b3BlbmN2NQoKTG9nOgpB ZGQgdXBzdHJlYW0gcGF0Y2hlcyBmb3IgVlRLIDkuMCBzdXBwb3J0IChieiMxODQwOTc3KQoKLS0t CmRpZmYgLS1naXQgYS8xNzQzMS5wYXRjaCBiLzE3NDMxLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjg2MGE5YjQKLS0tIC9kZXYvbnVsbAorKysgYi8xNzQzMS5wYXRj aApAQCAtMCwwICsxLDI0IEBACitGcm9tIDc4NTZmMTQ1NThmMzcwMjFjMWQ1Yjc2YWRlNDBhYzc4 ZTU5YTQyMmQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBNYWtzaW0gU2hhYnVuaW4g PG1ha3NpbS5zaGFidW5pbkBnbWFpbC5jb20+CitEYXRlOiBTYXQsIDMwIE1heSAyMDIwIDA2OjA3 OjM5ICswMzAwCitTdWJqZWN0OiBbUEFUQ0hdIEFkZGVkIFZUSyA5IHN1cHBvcnQKKworLS0tCisg Y21ha2UvT3BlbkNWRGV0ZWN0VlRLLmNtYWtlIHwgNyArKysrKysrCisgMSBmaWxlIGNoYW5nZWQs IDcgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvY21ha2UvT3BlbkNWRGV0ZWN0VlRLLmNt YWtlIGIvY21ha2UvT3BlbkNWRGV0ZWN0VlRLLmNtYWtlCitpbmRleCAwZjJiOTU4NGUxMi4uMjNk MTdjMzUyNDEgMTAwNjQ0CistLS0gYS9jbWFrZS9PcGVuQ1ZEZXRlY3RWVEsuY21ha2UKKysrKyBi L2NtYWtlL09wZW5DVkRldGVjdFZUSy5jbWFrZQorQEAgLTEsMyArMSwxMCBAQAorKyMgVlRLIDku MAorK2ZpbmRfcGFja2FnZShWVEsgUVVJRVQgTkFNRVMgdnRrIENPTVBPTkVOVFMgSW50ZXJhY3Rp b25TdHlsZSBSZW5kZXJpbmdMT0QgSU9QTFkgRmlsdGVyc1RleHR1cmUgUmVuZGVyaW5nRnJlZVR5 cGUgSU9FeHBvcnQgSU9HZW9tZXRyeSBGaWx0ZXJzRXh0cmFjdGlvbiBSZW5kZXJpbmdDb3JlIE5P X01PRFVMRSkKKytpZihWVEtfRk9VTkQpCisrICBzZXQoSEFWRV9WVEsgT04pCisrICByZXR1cm4o KQorK2VuZGlmKCkKKysKKyAjIFZUSyA2LnggY29tcG9uZW50cworIGZpbmRfcGFja2FnZShWVEsg UVVJRVQgQ09NUE9ORU5UUyB2dGtJbnRlcmFjdGlvblN0eWxlIHZ0a1JlbmRlcmluZ0xPRCB2dGtJ T1BMWSB2dGtGaWx0ZXJzVGV4dHVyZSB2dGtSZW5kZXJpbmdGcmVlVHlwZSB2dGtJT0V4cG9ydCBO T19NT0RVTEUpCisgSUYoVlRLX0ZPVU5EKQoKZGlmZiAtLWdpdCBhLzI1NDkucGF0Y2ggYi8yNTQ5 LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkNjY5MTgKLS0tIC9k ZXYvbnVsbAorKysgYi8yNTQ5LnBhdGNoCkBAIC0wLDAgKzEsNTA3IEBACitGcm9tIGM0YjNiOTIw NDYxZjljNzIwN2Q0YzE4NGE1YmVkZjc2MDhhNTFlZDEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CitGcm9tOiBNYWtzaW0gU2hhYnVuaW4gPG1ha3NpbS5zaGFidW5pbkBnbWFpbC5jb20+CitEYXRl OiBTYXQsIDMwIE1heSAyMDIwIDA2OjA5OjAyICswMzAwCitTdWJqZWN0OiBbUEFUQ0ggMS8zXSBB ZGRlZCBWVEsgOSBzdXBwb3J0CisKKy0tLQorIG1vZHVsZXMvdml6L0NNYWtlTGlzdHMudHh0ICAg ICAgICAgICB8ICA0ICsrKy0KKyBtb2R1bGVzL3Zpei9zcmMvcHJlY29tcC5ocHAgICAgICAgICAg fCAgOCArKysrKysrLQorIG1vZHVsZXMvdml6L3NyYy90eXBlcy5jcHAgICAgICAgICAgICB8ICAz ICsrLQorIG1vZHVsZXMvdml6L3NyYy92aXppbXBsLmNwcCAgICAgICAgICB8IDEzICsrKysrKysr KysrLS0KKyBtb2R1bGVzL3Zpei9zcmMvdnRrL3Z0a09CSldyaXRlci5jcHAgfCAxNCArKysrKysr KystLS0tLQorIG1vZHVsZXMvdml6L3NyYy92dGsvdnRrWFlaUmVhZGVyLmNwcCB8ICAyICstCisg bW9kdWxlcy92aXovc3JjL3Z0ay92dGtYWVpXcml0ZXIuY3BwIHwgIDIgKy0KKyA3IGZpbGVzIGNo YW5nZWQsIDM0IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEv bW9kdWxlcy92aXovQ01ha2VMaXN0cy50eHQgYi9tb2R1bGVzL3Zpei9DTWFrZUxpc3RzLnR4dAor aW5kZXggODlhOWMzZTA5OC4uMzQyNmUxZGQyNiAxMDA2NDQKKy0tLSBhL21vZHVsZXMvdml6L0NN YWtlTGlzdHMudHh0CisrKysgYi9tb2R1bGVzL3Zpei9DTWFrZUxpc3RzLnR4dAorQEAgLTMsNyAr Myw5IEBAIGlmKE5PVCBIQVZFX1ZUSykKKyBlbmRpZigpCisgCisgc2V0KHRoZV9kZXNjcmlwdGlv biAiVml6IikKKy1pbmNsdWRlKCR7VlRLX1VTRV9GSUxFfSkKKytpZihWVEtfVkVSU0lPTiBWRVJT SU9OX0xFU1MgOC45MCkKKysgIGluY2x1ZGUoJHtWVEtfVVNFX0ZJTEV9KQorK2VuZGlmKCkKKyAK KyBpZihOT1QgQlVJTERfU0hBUkVEX0xJQlMpCisgICAjIFdlIG9ic2VydmVkIGNvbmZsaWN0IGJl dHdlZW4gYnVpbHRpbiAzcmRwYXJ0eSBsaWJyYXJpZXMgYW5kCitkaWZmIC0tZ2l0IGEvbW9kdWxl cy92aXovc3JjL3ByZWNvbXAuaHBwIGIvbW9kdWxlcy92aXovc3JjL3ByZWNvbXAuaHBwCitpbmRl eCBmOTJmZGI2YWMyLi40YzRiZjdjNTk5IDEwMDY0NAorLS0tIGEvbW9kdWxlcy92aXovc3JjL3By ZWNvbXAuaHBwCisrKysgYi9tb2R1bGVzL3Zpei9zcmMvcHJlY29tcC5ocHAKK0BAIC0xMzMsNyAr MTMzLDggQEAKKyAjaW5jbHVkZSA8dnRrQ29sb3JUcmFuc2ZlckZ1bmN0aW9uLmg+CisgI2luY2x1 ZGUgPHZ0a1N0cmVhbWluZ0RlbWFuZERyaXZlblBpcGVsaW5lLmg+CisgI2luY2x1ZGUgPHZ0a0xp Z2h0Lmg+CistI2luY2x1ZGUgInZ0a0NhbGxiYWNrQ29tbWFuZC5oIgorKyNpbmNsdWRlIDx2dGtD YWxsYmFja0NvbW1hbmQuaD4KKysjaW5jbHVkZSA8dnRrVmVyc2lvbi5oPgorIAorICNpZiAhZGVm aW5lZChfV0lOMzIpIHx8IGRlZmluZWQoX19DWUdXSU5fXykKKyAjIGluY2x1ZGUgPHVuaXN0ZC5o PiAvKiB1bmxpbmsgKi8KK0BAIC0xNDksNiArMTUwLDExIEBACisgI2luY2x1ZGUgInZ0ay92dGtU cmFqZWN0b3J5U291cmNlLmgiCisgI2luY2x1ZGUgInZ0ay92dGtJbWFnZU1hdFNvdXJjZS5oIgor IAorKyNpZiBWVEtfTUFKT1JfVkVSU0lPTiA+PSA5CisrdHlwZWRlZiB2dGtJZFR5cGUgY29uc3Qg KiBDZWxsSXRlclQ7CisrI2Vsc2UKKyt0eXBlZGVmIHZ0a0lkVHlwZSAqIENlbGxJdGVyVDsKKysj ZW5kaWYKKyAKKyAjaW5jbHVkZSA8b3BlbmN2Mi9jb3JlLmhwcD4KKyAjaW5jbHVkZSA8b3BlbmN2 Mi92aXouaHBwPgorZGlmZiAtLWdpdCBhL21vZHVsZXMvdml6L3NyYy90eXBlcy5jcHAgYi9tb2R1 bGVzL3Zpei9zcmMvdHlwZXMuY3BwCitpbmRleCA2NTU3MWExOTJlLi4wZTE0NDc3ODkxIDEwMDY0 NAorLS0tIGEvbW9kdWxlcy92aXovc3JjL3R5cGVzLmNwcAorKysrIGIvbW9kdWxlcy92aXovc3Jj L3R5cGVzLmNwcAorQEAgLTEwMCw3ICsxMDAsOCBAQCBjdjo6dml6OjpNZXNoIGN2Ojp2aXo6Ok1l c2g6OmxvYWQoY29uc3QgU3RyaW5nJiBmaWxlLCBpbnQgdHlwZSkKKyAgICAgaW50KiBwb2x5X3B0 ciA9IG1lc2gucG9seWdvbnMucHRyPGludD4oKTsKKyAKKyAgICAgcG9seWdvbnMtPkluaXRUcmF2 ZXJzYWwoKTsKKy0gICAgdnRrSWRUeXBlIG5yX2NlbGxfcG9pbnRzLCAqY2VsbF9wb2ludHM7Cisr ICAgIHZ0a0lkVHlwZSBucl9jZWxsX3BvaW50czsKKysgICAgQ2VsbEl0ZXJUIGNlbGxfcG9pbnRz OworICAgICB3aGlsZSAocG9seWdvbnMtPkdldE5leHRDZWxsKG5yX2NlbGxfcG9pbnRzLCBjZWxs X3BvaW50cykpCisgICAgIHsKKyAgICAgICAgICpwb2x5X3B0cisrID0gbnJfY2VsbF9wb2ludHM7 CitkaWZmIC0tZ2l0IGEvbW9kdWxlcy92aXovc3JjL3ZpemltcGwuY3BwIGIvbW9kdWxlcy92aXov c3JjL3ZpemltcGwuY3BwCitpbmRleCAyYzI5MWMwNTY5Li4yYzdjZTk5N2E0IDEwMDY0NAorLS0t IGEvbW9kdWxlcy92aXovc3JjL3ZpemltcGwuY3BwCisrKysgYi9tb2R1bGVzL3Zpei9zcmMvdml6 aW1wbC5jcHAKK0BAIC01NSw4ICs1NSwxNyBAQCBjdjo6dml6OjpWaXozZDo6Vml6SW1wbDo6Vml6 SW1wbChjb25zdCBTdHJpbmcgJm5hbWUpIDogc3Bpbl9vbmNlX3N0YXRlXyhmYWxzZSksCisgCisg ICAgIC8vIENyZWF0ZSByZW5kZXIgd2luZG93CisgICAgIHdpbmRvd18gPSB2dGtTbWFydFBvaW50 ZXI8dnRrUmVuZGVyV2luZG93Pjo6TmV3KCk7CistICAgIGN2OjpWZWMyaSB3aW5kb3dfc2l6ZSA9 IGN2OjpWZWMyaSh3aW5kb3dfLT5HZXRTY3JlZW5TaXplKCkpIC8gMjsKKy0gICAgd2luZG93Xy0+ U2V0U2l6ZSh3aW5kb3dfc2l6ZS52YWwpOworKyAgICBpbnQgKiBzeiA9IHdpbmRvd18tPkdldFNj cmVlblNpemUoKTsKKysgICAgaWYgKHN6KQorKyAgICB7CisrICAgICAgICBjdjo6VmVjMmkgd2lu ZG93X3NpemUgPSBjdjo6VmVjMmkoc3opIC8gMjsKKysgICAgICAgIHdpbmRvd18tPlNldFNpemUo d2luZG93X3NpemUudmFsKTsKKysgICAgfQorKyAgICBlbHNlCisrICAgIHsKKysgICAgICAgIGlu dCBuZXdfc3pbMl0gPSB7IDY0MCwgNDgwIH07CisrICAgICAgICB3aW5kb3dfLT5TZXRTaXplKG5l d19zeik7CisrICAgIH0KKyAgICAgd2luZG93Xy0+QWRkUmVuZGVyZXIocmVuZGVyZXJfKTsKKyAK KyAgICAgLy8gQ3JlYXRlIHRoZSBpbnRlcmFjdG9yIHN0eWxlCitkaWZmIC0tZ2l0IGEvbW9kdWxl cy92aXovc3JjL3Z0ay92dGtPQkpXcml0ZXIuY3BwIGIvbW9kdWxlcy92aXovc3JjL3Z0ay92dGtP QkpXcml0ZXIuY3BwCitpbmRleCAyOTZiNmViMDY1Li4yZTU3NjRmYzI3IDEwMDY0NAorLS0tIGEv bW9kdWxlcy92aXovc3JjL3Z0ay92dGtPQkpXcml0ZXIuY3BwCisrKysgYi9tb2R1bGVzL3Zpei9z cmMvdnRrL3Z0a09CSldyaXRlci5jcHAKK0BAIC03Miw3ICs3Miw3IEBAIHZvaWQgY3Y6OnZpejo6 dnRrT0JKV3JpdGVyOjpXcml0ZURhdGEoKQorICAgICB9CisgCisgICAgIHZ0a0RlYnVnTWFjcm8o PDwiT3BlbmluZyB2dGsgZmlsZSBmb3Igd3JpdGluZy4uLiIpOworLSAgICBvc3RyZWFtICpvdXRm aWxlcCA9IG5ldyBvZnN0cmVhbSh0aGlzLT5GaWxlTmFtZSwgaW9zOjpvdXQpOworKyAgICBzdGQ6 Om9zdHJlYW0gKm91dGZpbGVwID0gbmV3IHN0ZDo6b2ZzdHJlYW0odGhpcy0+RmlsZU5hbWUsIGlv czo6b3V0KTsKKyAgICAgaWYgKG91dGZpbGVwLT5mYWlsKCkpCisgICAgIHsKKyAgICAgICAgIHZ0 a0Vycm9yTWFjcm8oPDwgIlVuYWJsZSB0byBvcGVuIGZpbGU6ICI8PCB0aGlzLT5GaWxlTmFtZSk7 CitAQCAtMTI3LDcgKzEyNyw4IEBAIHZvaWQgY3Y6OnZpejo6dnRrT0JKV3JpdGVyOjpXcml0ZURh dGEoKQorICAgICAvLyB3cml0ZSBvdXQgdmVydHMgaWYgYW55CisgICAgIGlmIChpbnB1dC0+R2V0 TnVtYmVyT2ZWZXJ0cygpID4gMCkKKyAgICAgeworLSAgICAgICAgdnRrSWRUeXBlIG5wdHMgPSAw LCAqaW5kZXggPSAwOworKyAgICAgICAgdnRrSWRUeXBlIG5wdHMgPSAwOworKyAgICAgICAgQ2Vs bEl0ZXJUIGluZGV4ID0gMDsKKyAgICAgICAgIHZ0a0NlbGxBcnJheSAqY2VsbHMgPSBpbnB1dC0+ R2V0VmVydHMoKTsKKyAgICAgICAgIGZvciAoY2VsbHMtPkluaXRUcmF2ZXJzYWwoKTsgY2VsbHMt PkdldE5leHRDZWxsKG5wdHMsIGluZGV4KTsgKQorICAgICAgICAgeworQEAgLTE0MSw3ICsxNDIs OCBAQCB2b2lkIGN2Ojp2aXo6OnZ0a09CSldyaXRlcjo6V3JpdGVEYXRhKCkKKyAgICAgLy8gd3Jp dGUgb3V0IGxpbmVzIGlmIGFueQorICAgICBpZiAoaW5wdXQtPkdldE51bWJlck9mTGluZXMoKSA+ IDApCisgICAgIHsKKy0gICAgICAgIHZ0a0lkVHlwZSBucHRzID0gMCwgKmluZGV4ID0gMDsKKysg ICAgICAgIHZ0a0lkVHlwZSBucHRzID0gMDsKKysgICAgICAgIENlbGxJdGVyVCBpbmRleCA9IDA7 CisgICAgICAgICB2dGtDZWxsQXJyYXkgKmNlbGxzID0gaW5wdXQtPkdldExpbmVzKCk7CisgICAg ICAgICBmb3IgKGNlbGxzLT5Jbml0VHJhdmVyc2FsKCk7IGNlbGxzLT5HZXROZXh0Q2VsbChucHRz LCBpbmRleCk7ICkKKyAgICAgICAgIHsKK0BAIC0xNjIsNyArMTY0LDggQEAgdm9pZCBjdjo6dml6 Ojp2dGtPQkpXcml0ZXI6OldyaXRlRGF0YSgpCisgICAgIC8vIHdyaXRlIG91dCBwb2x5cyBpZiBh bnkKKyAgICAgaWYgKGlucHV0LT5HZXROdW1iZXJPZlBvbHlzKCkgPiAwKQorICAgICB7CistICAg ICAgICB2dGtJZFR5cGUgbnB0cyA9IDAsICppbmRleCA9IDA7CisrICAgICAgICB2dGtJZFR5cGUg bnB0cyA9IDA7CisrICAgICAgICBDZWxsSXRlclQgaW5kZXggPSAwOworICAgICAgICAgdnRrQ2Vs bEFycmF5ICpjZWxscyA9IGlucHV0LT5HZXRQb2x5cygpOworICAgICAgICAgZm9yIChjZWxscy0+ SW5pdFRyYXZlcnNhbCgpOyBjZWxscy0+R2V0TmV4dENlbGwobnB0cywgaW5kZXgpOyApCisgICAg ICAgICB7CitAQCAtMTkxLDcgKzE5NCw4IEBAIHZvaWQgY3Y6OnZpejo6dnRrT0JKV3JpdGVyOjpX cml0ZURhdGEoKQorICAgICAvLyB3cml0ZSBvdXQgdHN0cmlwcyBpZiBhbnkKKyAgICAgaWYgKGlu cHV0LT5HZXROdW1iZXJPZlN0cmlwcygpID4gMCkKKyAgICAgeworLSAgICAgICAgdnRrSWRUeXBl IG5wdHMgPSAwLCAqaW5kZXggPSAwOworKyAgICAgICAgdnRrSWRUeXBlIG5wdHMgPSAwOworKyAg ICAgICAgQ2VsbEl0ZXJUIGluZGV4ID0gMDsKKyAgICAgICAgIHZ0a0NlbGxBcnJheSAqY2VsbHMg PSBpbnB1dC0+R2V0U3RyaXBzKCk7CisgICAgICAgICBmb3IgKGNlbGxzLT5Jbml0VHJhdmVyc2Fs KCk7IGNlbGxzLT5HZXROZXh0Q2VsbChucHRzLCBpbmRleCk7ICkKKyAgICAgICAgIHsKK2RpZmYg LS1naXQgYS9tb2R1bGVzL3Zpei9zcmMvdnRrL3Z0a1hZWlJlYWRlci5jcHAgYi9tb2R1bGVzL3Zp ei9zcmMvdnRrL3Z0a1hZWlJlYWRlci5jcHAKK2luZGV4IDU3NzI2ZWFlOWIuLjNiOTI2NWZlZDYg MTAwNjQ0CistLS0gYS9tb2R1bGVzL3Zpei9zcmMvdnRrL3Z0a1hZWlJlYWRlci5jcHAKKysrKyBi L21vZHVsZXMvdml6L3NyYy92dGsvdnRrWFlaUmVhZGVyLmNwcAorQEAgLTc3LDcgKzc3LDcgQEAg aW50IGN2Ojp2aXo6OnZ0a1hZWlJlYWRlcjo6UmVxdWVzdERhdGEodnRrSW5mb3JtYXRpb24qLCB2 dGtJbmZvcm1hdGlvblZlY3RvcioqLAorICAgICB9CisgCisgICAgIC8vIE9wZW4gdGhlIGlucHV0 IGZpbGUuCistICAgIGlmc3RyZWFtIGZpbih0aGlzLT5GaWxlTmFtZSk7CisrICAgIHN0ZDo6aWZz dHJlYW0gZmluKHRoaXMtPkZpbGVOYW1lKTsKKyAgICAgaWYoIWZpbikKKyAgICAgeworICAgICAg ICAgdnRrRXJyb3JNYWNybygiRXJyb3Igb3BlbmluZyBmaWxlICIgPDwgdGhpcy0+RmlsZU5hbWUp OworZGlmZiAtLWdpdCBhL21vZHVsZXMvdml6L3NyYy92dGsvdnRrWFlaV3JpdGVyLmNwcCBiL21v ZHVsZXMvdml6L3NyYy92dGsvdnRrWFlaV3JpdGVyLmNwcAoraW5kZXggY2Y5NWUzYzZhMC4uNTZh MjZiMzhhMCAxMDA2NDQKKy0tLSBhL21vZHVsZXMvdml6L3NyYy92dGsvdnRrWFlaV3JpdGVyLmNw cAorKysrIGIvbW9kdWxlcy92aXovc3JjL3Z0ay92dGtYWVpXcml0ZXIuY3BwCitAQCAtNjksNyAr NjksNyBAQCB2b2lkIGN2Ojp2aXo6OnZ0a1hZWldyaXRlcjo6V3JpdGVEYXRhKCkKKyAgICAgfQor IAorICAgICB2dGtEZWJ1Z01hY3JvKDw8Ik9wZW5pbmcgdnRrIGZpbGUgZm9yIHdyaXRpbmcuLi4i KTsKKy0gICAgb3N0cmVhbSAqb3V0ZmlsZXAgPSBuZXcgb2ZzdHJlYW0odGhpcy0+RmlsZU5hbWUs IGlvczo6b3V0KTsKKysgICAgc3RkOjpvc3RyZWFtICpvdXRmaWxlcCA9IG5ldyBzdGQ6Om9mc3Ry ZWFtKHRoaXMtPkZpbGVOYW1lLCBpb3M6Om91dCk7CisgICAgIGlmIChvdXRmaWxlcC0+ZmFpbCgp KQorICAgICB7CisgICAgICAgICB2dGtFcnJvck1hY3JvKDw8ICJVbmFibGUgdG8gb3BlbiBmaWxl OiAiPDwgdGhpcy0+RmlsZU5hbWUpOworCitGcm9tIDQyODFkZjdmZTAwOTBjMDNiNmE0MGRiNDQy OTJiYTYyNjgyMzljYmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBNYWtzaW0gU2hh YnVuaW4gPG1ha3NpbS5zaGFidW5pbkBnbWFpbC5jb20+CitEYXRlOiBUdWUsIDIgSnVuIDIwMjAg MTk6MjE6MTkgKzAzMDAKK1N1YmplY3Q6IFtQQVRDSCAyLzNdIHZpejogdGVzdHMgYXJlIG5vbi1p bnRlcmFjdGl2ZSBub3cKKworLS0tCisgbW9kdWxlcy92aXovdGVzdC90ZXN0X3R1dG9yaWFsMi5j cHAgfCAgNCArLS0KKyBtb2R1bGVzL3Zpei90ZXN0L3Rlc3RfdHV0b3JpYWwzLmNwcCB8ICAyICst CisgbW9kdWxlcy92aXovdGVzdC90ZXN0X3ZpejNkLmNwcCAgICAgfCAgMiArLQorIG1vZHVsZXMv dml6L3Rlc3QvdGVzdHNfc2ltcGxlLmNwcCAgIHwgNTYgKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0KKyA0IGZpbGVzIGNoYW5nZWQsIDMyIGluc2VydGlvbnMoKyksIDMyIGRlbGV0aW9ucygt KQorCitkaWZmIC0tZ2l0IGEvbW9kdWxlcy92aXovdGVzdC90ZXN0X3R1dG9yaWFsMi5jcHAgYi9t b2R1bGVzL3Zpei90ZXN0L3Rlc3RfdHV0b3JpYWwyLmNwcAoraW5kZXggNmIyOTcyZjBhZi4uYTRi NWI5OTU4MiAxMDA2NDQKKy0tLSBhL21vZHVsZXMvdml6L3Rlc3QvdGVzdF90dXRvcmlhbDIuY3Bw CisrKysgYi9tb2R1bGVzL3Zpei90ZXN0L3Rlc3RfdHV0b3JpYWwyLmNwcAorQEAgLTI4LDcgKzI4 LDcgQEAgc3RhdGljIHZvaWQgdHV0b3JpYWwyKCkKKyAgICAgLy8vIFJvZHJpZ3VlcyB2ZWN0b3IK KyAgICAgVmVjM2Qgcm90X3ZlYyA9IFZlYzNkOjphbGwoMCk7CisgICAgIGRvdWJsZSB0cmFuc2xh dGlvbl9waGFzZSA9IDAuMCwgdHJhbnNsYXRpb24gPSAwLjA7CistICAgIHdoaWxlKCFteVdpbmRv dy53YXNTdG9wcGVkKCkpCisrICAgIGZvcih1bnNpZ25lZCBudW0gPSAwOyBudW0gPCA1MDsgKytu dW0pCisgICAgIHsKKyAgICAgICAgIC8qIFJvdGF0aW9uIHVzaW5nIHJvZHJpZ3VlcyAqLworICAg ICAgICAgLy8vIFJvdGF0ZSBhcm91bmQgKDEsMSwxKQorQEAgLTQ1LDcgKzQ1LDcgQEAgc3RhdGlj IHZvaWQgdHV0b3JpYWwyKCkKKyAKKyAgICAgICAgIG15V2luZG93LnNldFdpZGdldFBvc2UoIkN1 YmUgV2lkZ2V0IiwgcG9zZSk7CisgCistICAgICAgICBteVdpbmRvdy5zcGluT25jZSgxLCB0cnVl KTsKKysgICAgICAgIG15V2luZG93LnNwaW5PbmNlKDEwMCwgdHJ1ZSk7CisgICAgIH0KKyB9Cisg CitkaWZmIC0tZ2l0IGEvbW9kdWxlcy92aXovdGVzdC90ZXN0X3R1dG9yaWFsMy5jcHAgYi9tb2R1 bGVzL3Zpei90ZXN0L3Rlc3RfdHV0b3JpYWwzLmNwcAoraW5kZXggMjMyMTMwZjBhNi4uMzJlMzNi MTkwMiAxMDA2NDQKKy0tLSBhL21vZHVsZXMvdml6L3Rlc3QvdGVzdF90dXRvcmlhbDMuY3BwCisr KysgYi9tb2R1bGVzL3Zpei90ZXN0L3Rlc3RfdHV0b3JpYWwzLmNwcAorQEAgLTQ4LDcgKzQ4LDcg QEAgc3RhdGljIHZvaWQgdHV0b3JpYWwzKGJvb2wgY2FtZXJhX3BvdikKKyAgICAgICAgIG15V2lu ZG93LnNldFZpZXdlclBvc2UoY2FtZXJhX3Bvc2UpOworIAorICAgICAvLy8gU3RhcnQgZXZlbnQg bG9vcC4KKy0gICAgbXlXaW5kb3cuc3BpbigpOworKyAgICBteVdpbmRvdy5zcGluT25jZSg1MDAs IHRydWUpOworIH0KKyAKKyBURVNUKFZpeiwgdHV0b3JpYWwzX2dsb2JhbF92aWV3KQorZGlmZiAt LWdpdCBhL21vZHVsZXMvdml6L3Rlc3QvdGVzdF92aXozZC5jcHAgYi9tb2R1bGVzL3Zpei90ZXN0 L3Rlc3Rfdml6M2QuY3BwCitpbmRleCBjZGY4YTAwYWQ3Li40YWIwNWMzZTBhIDEwMDY0NAorLS0t IGEvbW9kdWxlcy92aXovdGVzdC90ZXN0X3ZpejNkLmNwcAorKysrIGIvbW9kdWxlcy92aXovdGVz dC90ZXN0X3ZpejNkLmNwcAorQEAgLTU5LDcgKzU5LDcgQEAgVEVTVChWaXpfdml6M2QsIERJU0FC TEVEX2RldmVsb3ApCisgICAgIC8vY3Y6Ok1hdCBjbG91ZCA9IGN2Ojp2aXo6OnJlYWRDbG91ZChn ZXRfZHJhZ29uX3BseV9maWxlX3BhdGgoKSk7CisgICAgIC8vLS0tLT4+Pj4+IDwvdG9fdGVzdF9p bl9mdXR1cmU+CisgCistICAgIHZpei5zcGluKCk7CisrICAgIHZpei5zcGluT25jZSg1MDAsIHRy dWUpOworIH0KKyAKKyB9fSAvLyBuYW1lc3BhY2UKK2RpZmYgLS1naXQgYS9tb2R1bGVzL3Zpei90 ZXN0L3Rlc3RzX3NpbXBsZS5jcHAgYi9tb2R1bGVzL3Zpei90ZXN0L3Rlc3RzX3NpbXBsZS5jcHAK K2luZGV4IDEyZDY5NmRmYmEuLjU1ODQ0ODNmNGYgMTAwNjQ0CistLS0gYS9tb2R1bGVzL3Zpei90 ZXN0L3Rlc3RzX3NpbXBsZS5jcHAKKysrKyBiL21vZHVsZXMvdml6L3Rlc3QvdGVzdHNfc2ltcGxl LmNwcAorQEAgLTU2LDcgKzU2LDcgQEAgVEVTVChWaXosIHNob3dfY2xvdWRfYmx1YmVycnkpCisg ICAgIHZpei5zaG93V2lkZ2V0KCJkcmFnb24iLCBXQ2xvdWQoZHJhZ29uX2Nsb3VkLCBDb2xvcjo6 Ymx1YmVycnkoKSksIHBvc2UpOworIAorICAgICB2aXouc2hvd1dpZGdldCgidGV4dDJkIiwgV1Rl eHQoIkJsdWJlcnJ5IGNsb3VkIiwgUG9pbnQoMjAsIDIwKSwgMjAsIENvbG9yOjpncmVlbigpKSk7 CistICAgIHZpei5zcGluKCk7CisrICAgIHZpei5zcGluT25jZSg1MDAsIHRydWUpOworIH0KKyAK KyBURVNUKFZpeiwgc2hvd19jbG91ZF9yYW5kb21fY29sb3IpCitAQCAtNzMsNyArNzMsNyBAQCBU RVNUKFZpeiwgc2hvd19jbG91ZF9yYW5kb21fY29sb3IpCisgICAgIHZpei5zaG93V2lkZ2V0KCJj b29zeXMiLCBXQ29vcmRpbmF0ZVN5c3RlbSgpKTsKKyAgICAgdml6LnNob3dXaWRnZXQoImRyYWdv biIsIFdDbG91ZChkcmFnb25fY2xvdWQsIGNvbG9ycyksIHBvc2UpOworICAgICB2aXouc2hvd1dp ZGdldCgidGV4dDJkIiwgV1RleHQoIlJhbmRvbSBjb2xvciBjbG91ZCIsIFBvaW50KDIwLCAyMCks IDIwLCBDb2xvcjo6Z3JlZW4oKSkpOworLSAgICB2aXouc3BpbigpOworKyAgICB2aXouc3Bpbk9u Y2UoNTAwLCB0cnVlKTsKKyB9CisgCisgVEVTVChWaXosIHNob3dfY2xvdWRfbWFza2VkKQorQEAg LTkxLDcgKzkxLDcgQEAgVEVTVChWaXosIHNob3dfY2xvdWRfbWFza2VkKQorICAgICB2aXouc2hv d1dpZGdldCgiY29vc3lzIiwgV0Nvb3JkaW5hdGVTeXN0ZW0oKSk7CisgICAgIHZpei5zaG93V2lk Z2V0KCJkcmFnb24iLCBXQ2xvdWQoZHJhZ29uX2Nsb3VkKSwgcG9zZSk7CisgICAgIHZpei5zaG93 V2lkZ2V0KCJ0ZXh0MmQiLCBXVGV4dCgiTmFuIG1hc2tlZCBjbG91ZCIsIFBvaW50KDIwLCAyMCks IDIwLCBDb2xvcjo6Z3JlZW4oKSkpOworLSAgICB2aXouc3BpbigpOworKyAgICB2aXouc3Bpbk9u Y2UoNTAwLCB0cnVlKTsKKyB9CisgCisgVEVTVChWaXosIHNob3dfY2xvdWRfY29sbGVjdGlvbikK K0BAIC0xMDksNyArMTA5LDcgQEAgVEVTVChWaXosIHNob3dfY2xvdWRfY29sbGVjdGlvbikKKyAg ICAgdml6LnNob3dXaWRnZXQoImNvb3N5cyIsIFdDb29yZGluYXRlU3lzdGVtKCkpOworICAgICB2 aXouc2hvd1dpZGdldCgiY2NvbCIsIGNjb2wpOworICAgICB2aXouc2hvd1dpZGdldCgidGV4dDJk IiwgV1RleHQoIkNsb3VkIGNvbGxlY3Rpb24iLCBQb2ludCgyMCwgMjApLCAyMCwgQ29sb3I6Omdy ZWVuKCkpKTsKKy0gICAgdml6LnNwaW4oKTsKKysgICAgdml6LnNwaW5PbmNlKDUwMCwgdHJ1ZSk7 CisgfQorIAorIFRFU1QoVml6LCBzaG93X3BhaW50ZWRfY2xvdWRzKQorQEAgLTEyNCw3ICsxMjQs NyBAQCBURVNUKFZpeiwgc2hvd19wYWludGVkX2Nsb3VkcykKKyAgICAgdml6LnNob3dXaWRnZXQo ImNsb3VkMyIsIFdQYWludGVkQ2xvdWQoY2xvdWQsIFZlYzNkKDAuMCwgMC4wLCAtMS4wKSwgVmVj M2QoMC4wLCAwLjAsIDEuMCksIENvbG9yOjpibHVlKCksIENvbG9yOjpyZWQoKSkpOworICAgICB2 aXouc2hvd1dpZGdldCgiYXJyb3ciLCBXQXJyb3coVmVjM2QoMC4wLCAxLjAsIC0xLjApLCBWZWMz ZCgwLjAsIDEuMCwgMS4wKSwgMC4wMDksIENvbG9yOjpyYXNwYmVycnkoKSkpOworICAgICB2aXou c2hvd1dpZGdldCgidGV4dDJkIiwgV1RleHQoIlBhaW50ZWQgY2xvdWRzIiwgUG9pbnQoMjAsIDIw KSwgMjAsIENvbG9yOjpncmVlbigpKSk7CistICAgIHZpei5zcGluKCk7CisrICAgIHZpei5zcGlu T25jZSg1MDAsIHRydWUpOworIH0KKyAKKyBURVNUKFZpeiwgc2hvd19tZXNoKQorQEAgLTEzNyw3 ICsxMzcsNyBAQCBURVNUKFZpeiwgc2hvd19tZXNoKQorICAgICB2aXouc2hvd1dpZGdldCgiY29v c3lzIiwgV0Nvb3JkaW5hdGVTeXN0ZW0oKSk7CisgICAgIHZpei5zaG93V2lkZ2V0KCJtZXNoIiwg V01lc2gobWVzaCksIHBvc2UpOworICAgICB2aXouc2hvd1dpZGdldCgidGV4dDJkIiwgV1RleHQo Ikp1c3QgbWVzaCIsIFBvaW50KDIwLCAyMCksIDIwLCBDb2xvcjo6Z3JlZW4oKSkpOworLSAgICB2 aXouc3BpbigpOworKyAgICB2aXouc3Bpbk9uY2UoNTAwLCB0cnVlKTsKKyB9CisgCisgVEVTVChW aXosIHNob3dfbWVzaF9yYW5kb21fY29sb3JzKQorQEAgLTE1Miw3ICsxNTIsNyBAQCBURVNUKFZp eiwgc2hvd19tZXNoX3JhbmRvbV9jb2xvcnMpCisgICAgIHZpei5zaG93V2lkZ2V0KCJtZXNoIiwg V01lc2gobWVzaCksIHBvc2UpOworICAgICB2aXouc2V0UmVuZGVyaW5nUHJvcGVydHkoIm1lc2gi LCBTSEFESU5HLCBTSEFESU5HX1BIT05HKTsKKyAgICAgdml6LnNob3dXaWRnZXQoInRleHQyZCIs IFdUZXh0KCJSYW5kb20gY29sb3IgbWVzaCIsIFBvaW50KDIwLCAyMCksIDIwLCBDb2xvcjo6Z3Jl ZW4oKSkpOworLSAgICB2aXouc3BpbigpOworKyAgICB2aXouc3Bpbk9uY2UoNTAwLCB0cnVlKTsK KyB9CisgCisgVEVTVChWaXosIHNob3dfd2lkZ2V0X21lcmdlcikKK0BAIC0xNzMsNyArMTczLDcg QEAgVEVTVChWaXosIHNob3dfd2lkZ2V0X21lcmdlcikKKyAgICAgdml6LnNob3dXaWRnZXQoImNv byIsIFdDb29yZGluYXRlU3lzdGVtKCkpOworICAgICB2aXouc2hvd1dpZGdldCgibWVyZ2VyIiwg bWVyZ2VyKTsKKyAgICAgdml6LnNob3dXaWRnZXQoInRleHQyZCIsIFdUZXh0KCJXaWRnZXQgbWVy Z2VyIiwgUG9pbnQoMjAsIDIwKSwgMjAsIENvbG9yOjpncmVlbigpKSk7CistICAgIHZpei5zcGlu KCk7CisrICAgIHZpei5zcGluT25jZSg1MDAsIHRydWUpOworIH0KKyAKKyBURVNUKFZpeiwgc2hv d190ZXh0dXJlZF9tZXNoKQorQEAgLTIxMCw3ICsyMTAsNyBAQCBURVNUKFZpeiwgc2hvd190ZXh0 dXJlZF9tZXNoKQorICAgICB2aXouc2hvd1dpZGdldCgibWVzaCIsIFdNZXNoKG1lc2gpKTsKKyAg ICAgdml6LnNldFJlbmRlcmluZ1Byb3BlcnR5KCJtZXNoIiwgU0hBRElORywgU0hBRElOR19QSE9O Ryk7CisgICAgIHZpei5zaG93V2lkZ2V0KCJ0ZXh0MmQiLCBXVGV4dCgiVGV4dHVyZWQgbWVzaCIs IFBvaW50KDIwLCAyMCksIDIwLCBDb2xvcjo6Z3JlZW4oKSkpOworLSAgICB2aXouc3BpbigpOwor KyAgICB2aXouc3Bpbk9uY2UoNTAwLCB0cnVlKTsKKyB9CisgCisgVEVTVChWaXosIHNob3dfcG9s eWxpbmUpCitAQCAtMjI5LDcgKzIyOSw3IEBAIFRFU1QoVml6LCBzaG93X3BvbHlsaW5lKQorICAg ICB2aXouc2hvd1dpZGdldCgicG9seWxpbmUiLCBXUG9seUxpbmUocG9seWxpbmUsIGNvbG9ycykp OworICAgICB2aXouc2hvd1dpZGdldCgiY29vc3lzIiwgV0Nvb3JkaW5hdGVTeXN0ZW0oKSk7Cisg ICAgIHZpei5zaG93V2lkZ2V0KCJ0ZXh0MmQiLCBXVGV4dCgiUG9seWxpbmUiLCBQb2ludCgyMCwg MjApLCAyMCwgQ29sb3I6OmdyZWVuKCkpKTsKKy0gICAgdml6LnNwaW4oKTsKKysgICAgdml6LnNw aW5PbmNlKDUwMCwgdHJ1ZSk7CisgfQorIAorIFRFU1QoVml6LCBzaG93X3NhbXBsZWRfbm9ybWFs cykKK0BAIC0yNDQsNyArMjQ0LDcgQEAgVEVTVChWaXosIHNob3dfc2FtcGxlZF9ub3JtYWxzKQor ICAgICB2aXouc2hvd1dpZGdldCgibm9ybWFscyIsIFdDbG91ZE5vcm1hbHMobWVzaC5jbG91ZCwg bWVzaC5ub3JtYWxzLCAzMCwgMC4xZiwgQ29sb3I6OmdyZWVuKCkpLCBwb3NlKTsKKyAgICAgdml6 LnNldFJlbmRlcmluZ1Byb3BlcnR5KCJub3JtYWxzIiwgTElORV9XSURUSCwgMi4wKTsKKyAgICAg dml6LnNob3dXaWRnZXQoInRleHQyZCIsIFdUZXh0KCJDbG91ZCBvciBtZXNoIG5vcm1hbHMiLCBQ b2ludCgyMCwgMjApLCAyMCwgQ29sb3I6OmdyZWVuKCkpKTsKKy0gICAgdml6LnNwaW4oKTsKKysg ICAgdml6LnNwaW5PbmNlKDUwMCwgdHJ1ZSk7CisgfQorIAorIFRFU1QoVml6LCBzaG93X2Nsb3Vk X3NoYWRlZF9ieV9ub3JtYWxzKQorQEAgLTI2MCw3ICsyNjAsNyBAQCBURVNUKFZpeiwgc2hvd19j bG91ZF9zaGFkZWRfYnlfbm9ybWFscykKKyAgICAgVml6M2Qgdml6KCJzaG93X2Nsb3VkX3NoYWRl ZF9ieV9ub3JtYWxzIik7CisgICAgIHZpei5zaG93V2lkZ2V0KCJjbG91ZCIsIGNsb3VkLCBwb3Nl KTsKKyAgICAgdml6LnNob3dXaWRnZXQoInRleHQyZCIsIFdUZXh0KCJDbG91ZCBzaGFkZWQgYnkg bm9ybWFscyIsIFBvaW50KDIwLCAyMCksIDIwLCBDb2xvcjo6Z3JlZW4oKSkpOworLSAgICB2aXou c3BpbigpOworKyAgICB2aXouc3Bpbk9uY2UoNTAwLCB0cnVlKTsKKyB9CisgCisgVEVTVChWaXos IHNob3dfdHJhamVjdG9yaWVzKQorQEAgLTI4NywxNSArMjg3LDE1IEBAIFRFU1QoVml6LCBzaG93 X3RyYWplY3RvcmllcykKKyAgICAgdml6LnNob3dXaWRnZXQoInRleHQyZCIsIFdUZXh0KCJEaWZm ZXJlbnQga2luZHMgb2Ygc3VwcG9ydGVkIHRyYWplY3RvcmllcyIsIFBvaW50KDIwLCAyMCksIDIw LCBDb2xvcjo6Z3JlZW4oKSkpOworIAorICAgICBpbnQgaSA9IDA7CistICAgIHdoaWxlKCF2aXou d2FzU3RvcHBlZCgpKQorKyAgICBmb3IodW5zaWduZWQgbnVtID0gMDsgbnVtIDwgNTA7ICsrbnVt KQorICAgICB7CisgICAgICAgICBkb3VibGUgYSA9IC0taSAlIDM2MDsKKyAgICAgICAgIFZlYzNk IHBvc2Uoc2luKGEgKiBDVl9QSS8xODApLCAwLjcsIGNvcyhhICogQ1ZfUEkvMTgwKSk7CisgICAg ICAgICB2aXouc2V0Vmlld2VyUG9zZShtYWtlQ2FtZXJhUG9zZShwb3NlICogNy41LCBWZWMzZCgw LjAsIDAuNSwgMC4wKSwgVmVjM2QoMC4wLCAwLjEsIDAuMCkpKTsKKy0gICAgICAgIHZpei5zcGlu T25jZSgyMCwgdHJ1ZSk7CisrICAgICAgICB2aXouc3Bpbk9uY2UoMTAwLCB0cnVlKTsKKyAgICAg fQorICAgICB2aXoucmVzZXRDYW1lcmEoKTsKKy0gICAgdml6LnNwaW4oKTsKKysgICAgdml6LnNw aW5PbmNlKDUwMCwgdHJ1ZSk7CisgfQorIAorIFRFU1QoVml6LCBzaG93X3RyYWplY3RvcnlfcmVw b3NpdGlvbikKK0BAIC0zMDYsNyArMzA2LDcgQEAgVEVTVChWaXosIHNob3dfdHJhamVjdG9yeV9y ZXBvc2l0aW9uKQorICAgICB2aXouc2hvd1dpZGdldCgiY29vcyIsIFdDb29yZGluYXRlU3lzdGVt KCkpOworICAgICB2aXouc2hvd1dpZGdldCgic3ViMyIsIFdUcmFqZWN0b3J5KE1hdChwYXRoKS5y b3dSYW5nZSgwLCAoaW50KXBhdGguc2l6ZSgpLzMpLCBXVHJhamVjdG9yeTo6Qk9USCwgMC4yLCBD b2xvcjo6YnJvd24oKSksIHBhdGguZnJvbnQoKS5pbnYoKSk7CisgICAgIHZpei5zaG93V2lkZ2V0 KCJ0ZXh0MmQiLCBXVGV4dCgiVHJhamVjdG9yeSByZXNwb3NpdGlvbiB0byBvcmlnaW4iLCBQb2lu dCgyMCwgMjApLCAyMCwgQ29sb3I6OmdyZWVuKCkpKTsKKy0gICAgdml6LnNwaW4oKTsKKysgICAg dml6LnNwaW5PbmNlKDUwMCwgdHJ1ZSk7CisgfQorIAorIFRFU1QoVml6LCBzaG93X2NhbWVyYV9w b3NpdGlvbnMpCitAQCAtMzMwLDcgKzMzMCw3IEBAIFRFU1QoVml6LCBzaG93X2NhbWVyYV9wb3Np dGlvbnMpCisgICAgIHZpei5zaG93V2lkZ2V0KCJwb3MzIiwgV0NhbWVyYVBvc2l0aW9uKDAuNzUp LCBwb3Nlc1sxXSk7CisgICAgIHZpei5zaG93V2lkZ2V0KCJwb3M0IiwgV0NhbWVyYVBvc2l0aW9u KEssIGdyYXksIDMsIENvbG9yOjppbmRpZ28oKSksIHBvc2VzWzFdKTsKKyAgICAgdml6LnNob3dX aWRnZXQoInRleHQyZCIsIFdUZXh0KCJDYW1lcmEgcG9zaXRpb25zIHdpdGggaW1hZ2VzIiwgUG9p bnQoMjAsIDIwKSwgMjAsIENvbG9yOjpncmVlbigpKSk7CistICAgIHZpei5zcGluKCk7CisrICAg IHZpei5zcGluT25jZSg1MDAsIHRydWUpOworIH0KKyAKKyBURVNUKFZpeiwgc2hvd19vdmVybGF5 X2ltYWdlKQorQEAgLTM1MywxNiArMzUzLDE2IEBAIFRFU1QoVml6LCBzaG93X292ZXJsYXlfaW1h Z2UpCisgICAgIHZpei5zaG93V2lkZ2V0KCJ0ZXh0MmQiLCBXVGV4dCgiT3ZlcmxheSBpbWFnZXMi LCBQb2ludCgyMCwgMjApLCAyMCwgQ29sb3I6OmdyZWVuKCkpKTsKKyAKKyAgICAgaW50IGkgPSAw OworLSAgICB3aGlsZSghdml6Lndhc1N0b3BwZWQoKSkKKysgICAgZm9yKHVuc2lnbmVkIG51bSA9 IDA7IG51bSA8IDUwOyArK251bSkKKyAgICAgeworICAgICAgICAgZG91YmxlIGEgPSArK2kgJSAz NjA7CisgICAgICAgICBWZWMzZCBwb3NlKHNpbihhICogQ1ZfUEkvMTgwKSwgMC43LCBjb3MoYSAq IENWX1BJLzE4MCkpOworICAgICAgICAgdml6LnNldFZpZXdlclBvc2UobWFrZUNhbWVyYVBvc2Uo cG9zZSAqIDMsIFZlYzNkKDAuMCwgMC41LCAwLjApLCBWZWMzZCgwLjAsIDAuMSwgMC4wKSkpOwor ICAgICAgICAgdml6LmdldFdpZGdldCgiaW1nMSIpLmNhc3Q8V0ltYWdlT3ZlcmxheT4oKS5zZXRJ bWFnZShsZW5hICogcG93KHNpbihpKjEwKkNWX1BJLzE4MCkgKiAwLjUgKyAwLjUsIDEuMCkpOwor LSAgICAgICAgdml6LnNwaW5PbmNlKDEsIHRydWUpOworKyAgICAgICAgdml6LnNwaW5PbmNlKDEw MCwgdHJ1ZSk7CisgICAgIH0KKyAgICAgdml6LnNob3dXaWRnZXQoInRleHQyZCIsIFdUZXh0KCJP dmVybGF5IGltYWdlcyAoc3RvcHBlZCkiLCBQb2ludCgyMCwgMjApLCAyMCwgQ29sb3I6OmdyZWVu KCkpKTsKKy0gICAgdml6LnNwaW4oKTsKKysgICAgdml6LnNwaW5PbmNlKDUwMCwgdHJ1ZSk7Cisg fQorIAorIAorQEAgLTM3Niw3ICszNzYsNyBAQCBURVNUKFZpeiwgc2hvd19pbWFnZV9tZXRob2Qp CisgICAgIHZpei5zaG93SW1hZ2UobGVuYSwgbGVuYS5zaXplKCkpOworICAgICB2aXouc3Bpbk9u Y2UoMTUwMCwgdHJ1ZSk7CisgCistICAgIGN2Ojp2aXo6Omltc2hvdygic2hvd19pbWFnZV9tZXRo b2QiLCBtYWtlX2dyYXkobGVuYSkpLnNwaW4oKTsKKysgICAgY3Y6OnZpejo6aW1zaG93KCJzaG93 X2ltYWdlX21ldGhvZCIsIG1ha2VfZ3JheShsZW5hKSkuc3Bpbk9uY2UoNTAwLCB0cnVlKTsKKyB9 CisgCisgVEVTVChWaXosIHNob3dfaW1hZ2VfM2QpCitAQCAtMzk4LDEzICszOTgsMTMgQEAgVEVT VChWaXosIHNob3dfaW1hZ2VfM2QpCisgICAgIHZpei5zaG93V2lkZ2V0KCJ0ZXh0MmQiLCBXVGV4 dCgiSW1hZ2VzIGluIDNEIiwgUG9pbnQoMjAsIDIwKSwgMjAsIENvbG9yOjpncmVlbigpKSk7Cisg CisgICAgIGludCBpID0gMDsKKy0gICAgd2hpbGUoIXZpei53YXNTdG9wcGVkKCkpCisrICAgIGZv cih1bnNpZ25lZCBudW0gPSAwOyBudW0gPCA1MDsgKytudW0pCisgICAgIHsKKyAgICAgICAgIHZp ei5nZXRXaWRnZXQoImltZzAiKS5jYXN0PFdJbWFnZTNEPigpLnNldEltYWdlKGxlbmEgKiBwb3co c2luKGkrKyo3LjUqQ1ZfUEkvMTgwKSAqIDAuNSArIDAuNSwgMS4wKSk7CistICAgICAgICB2aXou c3Bpbk9uY2UoMSwgdHJ1ZSk7CisrICAgICAgICB2aXouc3Bpbk9uY2UoMTAwLCB0cnVlKTsKKyAg ICAgfQorICAgICB2aXouc2hvd1dpZGdldCgidGV4dDJkIiwgV1RleHQoIkltYWdlcyBpbiAzRCAo c3RvcHBlZCkiLCBQb2ludCgyMCwgMjApLCAyMCwgQ29sb3I6OmdyZWVuKCkpKTsKKy0gICAgdml6 LnNwaW4oKTsKKysgICAgdml6LnNwaW5PbmNlKDUwMCwgdHJ1ZSk7CisgfQorIAorIFRFU1QoVml6 LCBzaG93X3NpbXBsZV93aWRnZXRzKQorQEAgLTQzMSwxMCArNDMxLDEwIEBAIFRFU1QoVml6LCBz aG93X3NpbXBsZV93aWRnZXRzKQorIAorICAgICB2aXouc2hvd1dpZGdldCgiZ3JpZDEiLCBXR3Jp ZChWZWMyaSg3LDcpLCBWZWMyZDo6YWxsKDAuNzUpLCBDb2xvcjo6Z3JheSgpKSwgQWZmaW5lM2Qo KS50cmFuc2xhdGUoVmVjM2QoMC4wLCAwLjAsIC0xLjApKSk7CisgCistICAgIHZpei5zcGluKCk7 CisrICAgIHZpei5zcGluT25jZSg1MDAsIHRydWUpOworICAgICB2aXouZ2V0V2lkZ2V0KCJ0ZXh0 MmQiKS5jYXN0PFdUZXh0PigpLnNldFRleHQoIkRpZmZlcmVudCBzaW1wbGUgd2lkZ2V0cyAodXBk YXRlZCkiKTsKKyAgICAgdml6LmdldFdpZGdldCgidGV4dDNkIikuY2FzdDxXVGV4dDNEPigpLnNl dFRleHQoIlVwZGF0ZWQgdGV4dCAzRCIpOworLSAgICB2aXouc3BpbigpOworKyAgICB2aXouc3Bp bk9uY2UoNTAwLCB0cnVlKTsKKyB9CisgCisgVEVTVChWaXosIHNob3dfZm9sbG93ZXIpCitAQCAt NDQ2LDkgKzQ0Niw5IEBAIFRFU1QoVml6LCBzaG93X2ZvbGxvd2VyKQorICAgICB2aXouc2hvd1dp ZGdldCgidDNkXzIiLCBXVGV4dDNEKCJTaW1wbGUgM0QgZm9sbG93ZXIiLCBQb2ludDNkKC0wLjUs IC0wLjUsIDAuNSksIDAuMTI1LCB0cnVlLCAgQ29sb3I6OmdyZWVuKCkpKTsKKyAgICAgdml6LnNo b3dXaWRnZXQoInRleHQyZCIsIFdUZXh0KCJGb2xsb3dlcjogdGV4dCBhbHdheXMgZmFjaW5nIGNh bWVyYSIsIFBvaW50KDIwLCAyMCksIDIwLCBDb2xvcjo6Z3JlZW4oKSkpOworICAgICB2aXouc2V0 QmFja2dyb3VuZE1lc2hMYWIoKTsKKy0gICAgdml6LnNwaW4oKTsKKysgICAgdml6LnNwaW5PbmNl KDUwMCwgdHJ1ZSk7CisgICAgIHZpei5nZXRXaWRnZXQoInQzZF8yIikuY2FzdDxXVGV4dDNEPigp LnNldFRleHQoIlVwZGF0ZWQgZm9sbG93ZXIgM0QiKTsKKy0gICAgdml6LnNwaW4oKTsKKysgICAg dml6LnNwaW5PbmNlKDUwMCwgdHJ1ZSk7CisgfQorIAorIH19IC8vIG5hbWVzcGFjZQorCitGcm9t IGY0NmM2Y2FkYmU3NTFiMmRiZjYwYjM0ZTg1YWFmNTc1NTExZTk3OTQgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCitGcm9tOiBNYWtzaW0gU2hhYnVuaW4gPG1ha3NpbS5zaGFidW5pbkBnbWFpbC5j b20+CitEYXRlOiBUdWUsIDIgSnVuIDIwMjAgMjI6NDY6NTMgKzAzMDAKK1N1YmplY3Q6IFtQQVRD SCAzLzNdIGZpeHVwISBBZGRlZCBWVEsgOSBzdXBwb3J0CisKKy0tLQorIG1vZHVsZXMvdml6L0NN YWtlTGlzdHMudHh0IHwgMTIgKysrKysrKystLS0tCisgbW9kdWxlcy92aXovc3JjL3R5cGVzLmNw cCAgfCAgMSArCisgMiBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25z KC0pCisKK2RpZmYgLS1naXQgYS9tb2R1bGVzL3Zpei9DTWFrZUxpc3RzLnR4dCBiL21vZHVsZXMv dml6L0NNYWtlTGlzdHMudHh0CitpbmRleCAzNDI2ZTFkZDI2Li5jZDIyNTk2MGNlIDEwMDY0NAor LS0tIGEvbW9kdWxlcy92aXovQ01ha2VMaXN0cy50eHQKKysrKyBiL21vZHVsZXMvdml6L0NNYWtl TGlzdHMudHh0CitAQCAtMyw5ICszLDYgQEAgaWYoTk9UIEhBVkVfVlRLKQorIGVuZGlmKCkKKyAK KyBzZXQodGhlX2Rlc2NyaXB0aW9uICJWaXoiKQorLWlmKFZUS19WRVJTSU9OIFZFUlNJT05fTEVT UyA4LjkwKQorLSAgaW5jbHVkZSgke1ZUS19VU0VfRklMRX0pCistZW5kaWYoKQorIAorIGlmKE5P VCBCVUlMRF9TSEFSRURfTElCUykKKyAgICMgV2Ugb2JzZXJ2ZWQgY29uZmxpY3QgYmV0d2VlbiBi dWlsdGluIDNyZHBhcnR5IGxpYnJhcmllcyBhbmQKK0BAIC0zNyw3ICszNCwxNCBAQCBvY3ZfYWRk X2FjY3VyYWN5X3Rlc3RzKCkKKyBvY3ZfYWRkX3BlcmZfdGVzdHMoKQorIG9jdl9hZGRfc2FtcGxl cyhvcGVuY3ZfaW1ncHJvYyBvcGVuY3ZfY2FsaWIzZCBvcGVuY3ZfZmVhdHVyZXMyZCBvcGVuY3Zf Zmxhbm4pCisgCistb2N2X3RhcmdldF9saW5rX2xpYnJhcmllcygke3RoZV9tb2R1bGV9IFBSSVZB VEUgJHtWVEtfTElCUkFSSUVTfSkKKysKKytpZiAoVlRLX1ZFUlNJT04gVkVSU0lPTl9MRVNTICI4 LjkwLjAiKQorKyAgaW5jbHVkZSgke1ZUS19VU0VfRklMRX0pCisrICBvY3ZfdGFyZ2V0X2xpbmtf bGlicmFyaWVzKCR7dGhlX21vZHVsZX0gUFJJVkFURSAke1ZUS19MSUJSQVJJRVN9KQorK2Vsc2Ug KCkKKysgIG9jdl90YXJnZXRfbGlua19saWJyYXJpZXMoJHt0aGVfbW9kdWxlfSBQUklWQVRFICR7 VlRLX0xJQlJBUklFU30pCisrICB2dGtfbW9kdWxlX2F1dG9pbml0KFRBUkdFVFMgJHt0aGVfbW9k dWxlfSBNT0RVTEVTICR7VlRLX0xJQlJBUklFU30pCisrZW5kaWYoKQorIAorIGlmKEFQUExFIEFO RCBCVUlMRF9vcGVuY3Zfdml6KQorICAgb2N2X3RhcmdldF9saW5rX2xpYnJhcmllcygke3RoZV9t b2R1bGV9IFBSSVZBVEUgIi1mcmFtZXdvcmsgQ29jb2EiKQorZGlmZiAtLWdpdCBhL21vZHVsZXMv dml6L3NyYy90eXBlcy5jcHAgYi9tb2R1bGVzL3Zpei9zcmMvdHlwZXMuY3BwCitpbmRleCAwZTE0 NDc3ODkxLi5lOWE0NzBjZjgzIDEwMDY0NAorLS0tIGEvbW9kdWxlcy92aXovc3JjL3R5cGVzLmNw cAorKysrIGIvbW9kdWxlcy92aXovc3JjL3R5cGVzLmNwcAorQEAgLTk3LDYgKzk3LDcgQEAgY3Y6 OnZpejo6TWVzaCBjdjo6dml6OjpNZXNoOjpsb2FkKGNvbnN0IFN0cmluZyYgZmlsZSwgaW50IHR5 cGUpCisgICAgIC8vIE5vdyBoYW5kbGUgdGhlIHBvbHlnb25zCisgICAgIHZ0a1NtYXJ0UG9pbnRl cjx2dGtDZWxsQXJyYXk+IHBvbHlnb25zID0gcG9seWRhdGEtPkdldFBvbHlzKCk7CisgICAgIG1l c2gucG9seWdvbnMuY3JlYXRlKDEsIHBvbHlnb25zLT5HZXRTaXplKCksIENWXzMyU0MxKTsKKysg ICAgbWVzaC5wb2x5Z29ucyA9IDA7CisgICAgIGludCogcG9seV9wdHIgPSBtZXNoLnBvbHlnb25z LnB0cjxpbnQ+KCk7CisgCisgICAgIHBvbHlnb25zLT5Jbml0VHJhdmVyc2FsKCk7CgpkaWZmIC0t Z2l0IGEvb3BlbmN2LnNwZWMgYi9vcGVuY3Yuc3BlYwppbmRleCBlZDZkMzAwLi4xZmZlNmI5IDEw MDY0NAotLS0gYS9vcGVuY3Yuc3BlYworKysgYi9vcGVuY3Yuc3BlYwpAQCAtMzEsMTIgKzMxLDcg QEAKICViY29uZF93aXRoICAgICBhdGxhcwogJWJjb25kX3dpdGhvdXQgIG9wZW5ibGFzCiAlYmNv bmRfd2l0aG91dCAgZ2RjbQotI2lmIDAlez9mZWRvcmF9ID4gMjkKLSNiY29uZF93aXRob3V0ICB2 dGsKLSNlbHNlCi0jVlRLIHN1cHBvcnQgZGlzYWJsZWQuIEluY29tcGF0aWJsZSBjb21iaW5hdGlv bjogT3BlbkNWICsgUXQ1IGFuZCBWVEsgdmVyLjcuMS4xICsgUXQ0IGluIDw9IEYyOQotJWJjb25k X3dpdGggIHZ0awotI2VuZGlmCislYmNvbmRfd2l0aG91dCAgdnRrCiAKICVpZmFyY2ggeDg2XzY0 CiAlYmNvbmRfd2l0aG91dCAgbGlibWZ4CkBAIC02MCw3ICs1NSw3IEBACiAKIE5hbWU6ICAgICAg ICAgICBvcGVuY3YKIFZlcnNpb246ICAgICAgICA0LjMuMAotUmVsZWFzZTogICAgICAgIDElez9k aXN0fQorUmVsZWFzZTogICAgICAgIDIlez9kaXN0fQogU3VtbWFyeTogICAgICAgIENvbGxlY3Rp b24gb2YgYWxnb3JpdGhtcyBmb3IgY29tcHV0ZXIgdmlzaW9uCiAjIFRoaXMgaXMgbm9ybWFsIHRo cmVlIGNsYXVzZSBCU0QuCiBMaWNlbnNlOiAgICAgICAgQlNECkBAIC03Niw2ICs3MSw4IEBAIFNv dXJjZTM6ICAgICAgICBmYWNlX2xhbmRtYXJrX21vZGVsLmRhdC54egogU291cmNlNDogICAgICAg IGI2MjRiOTk1ZWM5YzQzOWNiYzJlOWU2ZWU5NDBkM2EyLXYwLjEuMWYuemlwCiAKIFBhdGNoMDog ICAgICAgICBvcGVuY3YtNC4xLjAtaW5zdGFsbF8zcmRwYXJ0eV9saWNlbnNlcy5wYXRjaAorUGF0 Y2gxOiAgICAgICAgIGh0dHBzOi8vcGF0Y2gtZGlmZi5naXRodWJ1c2VyY29udGVudC5jb20vcmF3 L29wZW5jdi9vcGVuY3YvcHVsbC8xNzQzMS5wYXRjaAorUGF0Y2gyOiAgICAgICAgIGh0dHBzOi8v cGF0Y2gtZGlmZi5naXRodWJ1c2VyY29udGVudC5jb20vcmF3L29wZW5jdi9vcGVuY3ZfY29udHJp Yi9wdWxsLzI1NDkucGF0Y2gKICMgQ29tbWVudCBvdXQgcmVtb3ZlZCB2dWxrYW4gc3ltYm9scwog UGF0Y2gzOiAgICAgICAgIG9wZW5jdl92dWxrYW4ucGF0Y2gKIApAQCAtMjUyLDkgKzI0OSwxMSBA QCBwb3BkICY+L2Rldi9udWxsCiAlZW5kaWYKIAogJXBhdGNoMCAtcDEgLWIgLmluc3RhbGxfM3Jk cGFydHlfbGljZW5zZXMKKyVwYXRjaDEgLXAxCiAlcGF0Y2gzIC1wMQogCiBwdXNoZCAle25hbWV9 X2NvbnRyaWItJXt2ZXJzaW9ufQorJXBhdGNoMiAtcDEKIHBvcGQKIAogIyBJbnN0YWxsIEFERSwg bmVlZGVkIGZvciBvcGVuY3ZfZ2FwaQpAQCAtNDY5LDYgKzQ2OCw5IEBAIHBvcGQKICV7X2xpYmRp cn0vbGlib3BlbmN2X3hwaG90by5zby4le2FiaXZlcn0qCiAKICVjaGFuZ2Vsb2cKKyogVHVlIEp1 biAwMiAyMDIwIE9yaW9uIFBvcGxhd3NraSA8b3Jpb25AbndyYS5jb20+IC0gNC4zLjAtMgorLSBB ZGQgdXBzdHJlYW0gcGF0Y2hlcyBmb3IgVlRLIDkuMCBzdXBwb3J0IChieiMxODQwOTc3KQorCiAq IEZyaSBNYXkgMjggMjAyMCBOaWNvbGFzIENoYXV2ZXQgPGt3aXphcnRAZ21haWwuY29tPiAtIDQu My4wLTEKIC0gVXBkYXRlIHRvIDQuMy4wCiAK