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: Takao Fujiwara To: git-commits@fedoraproject.org Subject: [rpms/ibus] autotool: Fix covscan reviews Date: Sun, 31 May 2026 02:07:35 GMT Message-ID: <178019325575.1.16429223152493929315.rpms-ibus-c6a1a6e7123b@fedoraproject.org> List-ID: X-Git-Repo: rpms/ibus X-Git-Branch: autotool X-Git-Rev: c6a1a6e7123bfe6bf6ef4874a6702d6c7748b7d2 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvaWJ1cwogICAgICAgICAgICBCcmFuY2ggOiBhdXRvdG9vbAogICAgICAgICAg ICBDb21taXQgOiBjNmExYTZlNzEyM2JmZTZiZjZlZjQ4NzRhNjcwMmQ2Yzc3NDhiN2QyCiAgICAg ICAgICAgIEF1dGhvciA6IFRha2FvIEZ1aml3YXJhIDx0ZnVqaXdhckByZWRoYXQuY29tPgogICAg ICAgICAgICBEYXRlICAgOiAyMDIxLTA1LTI0VDA4OjU2OjQwKzA5OjAwCiAgICAgICAgICAgIFN0 YXRzICA6ICsxODI4Ly0xIGluIDIgZmlsZShzKQogICAgICAgICAgICBVUkwgICAgOiBodHRwczov L3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL2lidXMvYy9jNmExYTZlNzEyM2JmZTZiZjZlZjQ4 NzRhNjcwMmQ2Yzc3NDhiN2QyP2JyYW5jaD1hdXRvdG9vbAoKICAgICAgICAgICAgTG9nOgogICAg ICAgICAgICBGaXggY292c2NhbiByZXZpZXdzCgotIEFsc28gaW1wbGVtZW50IGlidXNfaW1fY29u dGV4dF9zZXRfc3Vycm91bmRpbmdfd2l0aF9zZWxlY3Rpb24oKQoKLS0tCmRpZmYgLS1naXQgYS9p YnVzLUhFQUQucGF0Y2ggYi9pYnVzLUhFQUQucGF0Y2gKaW5kZXggNDQ4Njk5NC4uYWFlM2UyMSAx MDA2NDQKLS0tIGEvaWJ1cy1IRUFELnBhdGNoCisrKyBiL2lidXMtSEVBRC5wYXRjaApAQCAtMjMw LDMgKzIzMCwxODIwIEBAIGluZGV4IGUxNTMwODFkLi42MTE5NDgxNiAxMDA2NDQKIC0tIAogMi4y OC4wCiAKK0Zyb20gNjVmNzA5YmIzYTA5NGEwMzFhZDdhN2E4MDJhMTJiZDlhYjdjMjdlMiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IGZ1aml3YXJhdCA8dGFrYW8uZnVqaXdhcmExQGdt YWlsLmNvbT4KK0RhdGU6IFN1biwgMjMgTWF5IDIwMjEgMjM6MDk6MjYgKzA5MDAKK1N1YmplY3Q6 IFtQQVRDSF0gRml4IGNvZGUgcmV2aWV3cworCistLS0KKyBidXMvaWJ1c2ltcGwuYyAgICAgICAg ICAgICAgICB8ICAyMyArKysrLS0KKyBidXMvc2VydmVyLmMgICAgICAgICAgICAgICAgICB8ICAx MCArLS0KKyBjbGllbnQvZ3RrMi9pYnVzaW1jb250ZXh0LmMgICB8ICAgOCArKworIGNsaWVudC93 YXlsYW5kL21haW4uYyAgICAgICAgIHwgICA5ICsrLQorIGNsaWVudC94MTEvbWFpbi5jICAgICAg ICAgICAgIHwgIDIyICsrKy0tCisgY29uZi9kY29uZi9tYWluLmMgICAgICAgICAgICAgfCAgIDcg Ky0KKyBwb3J0YWwvcG9ydGFsLmMgICAgICAgICAgICAgICB8ICAgNyArLQorIHNldHVwL2lidXMt c2V0dXAuaW4gICAgICAgICAgIHwgICAyICstCisgc3JjL2Vtb2ppLXBhcnNlci5jICAgICAgICAg ICAgfCAgNDYgKysrKysrLS0tLS0KKyBzcmMvaWJ1c2FjY2VsZ3JvdXAuYyAgICAgICAgICB8ICAg MiArLQorIHNyYy9pYnVzYnVzLmMgICAgICAgICAgICAgICAgIHwgIDEwICsrLQorIHNyYy9pYnVz Y29tcG9zZXRhYmxlLmMgICAgICAgIHwgIDkxICsrKysrKysrKysrKysrKysrKy0tLQorIHNyYy9p YnVzZW1vamkuYyAgICAgICAgICAgICAgIHwgICA4ICstCisgc3JjL2lidXNlbmdpbmVzaW1wbGUu YyAgICAgICAgfCAgMjEgKysrLS0KKyBzcmMvaWJ1c2hvdGtleS5jICAgICAgICAgICAgICB8ICAg NCArLQorIHNyYy9pYnVzcmVnaXN0cnkuYyAgICAgICAgICAgIHwgICA5ICsrLQorIHNyYy9pYnVz c2hhcmUuYyAgICAgICAgICAgICAgIHwgIDM2ICsrKysrLS0tLQorIHNyYy9pYnVzdGV4dC5jICAg ICAgICAgICAgICAgIHwgICA1ICstCisgc3JjL2lidXN1bmljb2RlLmMgICAgICAgICAgICAgfCAg MTcgKysrLQorIHNyYy90ZXN0cy9pYnVzLWNvbXBvc2UuYyAgICAgIHwgICA2ICstCisgc3JjL3Rl c3RzL2lidXMta2V5cHJlc3MuYyAgICAgfCAgIDMgKy0KKyBzcmMvdW5pY29kZS1wYXJzZXIuYyAg ICAgICAgICB8ICA1MiArKysrKystLS0tLS0KKyB1dGlsL0lNZGtpdC9GcmFtZU1nci5jICAgICAg ICB8ICAzNCArKysrKysrLQorIHV0aWwvSU1ka2l0L2kxOG5JYy5jICAgICAgICAgIHwgIDQxICsr KysrKysrLS0KKyB1dGlsL0lNZGtpdC9pMThuTWV0aG9kLmMgICAgICB8ICAyNCArKysrKy0KKyB1 dGlsL0lNZGtpdC9pMThuT2Zmc2V0Q2FjaGUuYyB8ICAgMiArLQorIHV0aWwvSU1ka2l0L2kxOG5Q dEhkci5jICAgICAgIHwgMTQ3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0KKyB1 dGlsL0lNZGtpdC9pMThuVXRpbC5jICAgICAgICB8ICAyMCArKysrKworIHV0aWwvSU1ka2l0L2kx OG5YLmMgICAgICAgICAgIHwgIDI5ICsrKystLS0KKyAyOSBmaWxlcyBjaGFuZ2VkLCA1MjMgaW5z ZXJ0aW9ucygrKSwgMTcyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvYnVzL2lidXNpbXBs LmMgYi9idXMvaWJ1c2ltcGwuYworaW5kZXggZTQzMmU4NDkuLjQ5YTEzOGZlIDEwMDY0NAorLS0t IGEvYnVzL2lidXNpbXBsLmMKKysrKyBiL2J1cy9pYnVzaW1wbC5jCitAQCAtMiw4ICsyLDggQEAK KyAvKiB2aW06c2V0IGV0IHN0cz00OiAqLworIC8qIGlidXMgLSBUaGUgSW5wdXQgQnVzCisgICog Q29weXJpZ2h0IChDKSAyMDA4LTIwMTMgUGVuZyBIdWFuZyA8c2hhd24ucC5odWFuZ0BnbWFpbC5j b20+CistICogQ29weXJpZ2h0IChDKSAyMDExLTIwMjAgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1 aml3YXJhMUBnbWFpbC5jb20+CistICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMjAgUmVkIEhhdCwg SW5jLgorKyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDIxIFRha2FvIEZ1aml3YXJhIDx0YWthby5m dWppd2FyYTFAZ21haWwuY29tPgorKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDIxIFJlZCBIYXQs IEluYy4KKyAgKgorICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCitAQCAtNjI0LDcgKzYyNCw2IEBAIGJ1c19pYnVz X2ltcGxfZGVzdHJveSAoQnVzSUJ1c0ltcGwgKmlidXMpCisgCisgICAgIGdfbGlzdF9mb3JlYWNo IChpYnVzLT5jb21wb25lbnRzLCAoR0Z1bmMpIGJ1c19jb21wb25lbnRfc3RvcCwgTlVMTCk7Cisg CistICAgIHBpZCA9IDA7CisgICAgIHRpbWVvdXQgPSAwOworICAgICBmbGFnID0gRkFMU0U7Cisg ICAgIHdoaWxlICgxKSB7CitAQCAtMTE5MCw2ICsxMTg5LDcgQEAgX2lidXNfZ2V0X2N1cnJlbnRf aW5wdXRfY29udGV4dCAoQnVzSUJ1c0ltcGwgICAgICppYnVzLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEdEQnVzQ29ubmVjdGlvbiAqY29ubmVjdGlvbiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBHRXJyb3IgICAgICAgICAqKmVycm9yKQorIHsKKysgICAg R1ZhcmlhbnQgKnJldHZhbCA9IE5VTEw7CisgICAgIGlmIChlcnJvcikgeworICAgICAgICAgKmVy cm9yID0gTlVMTDsKKyAgICAgfQorQEAgLTEyMDQsOCArMTIwNCwxNCBAQCBfaWJ1c19nZXRfY3Vy cmVudF9pbnB1dF9jb250ZXh0IChCdXNJQnVzSW1wbCAgICAgKmlidXMsCisgICAgICAgICBjb25z dCBnY2hhciAqcGF0aCA9IGlidXNfc2VydmljZV9nZXRfb2JqZWN0X3BhdGggKAorICAgICAgICAg ICAgICAgICAoSUJ1c1NlcnZpY2UgKikgaWJ1cy0+Zm9jdXNlZF9jb250ZXh0KTsKKyAgICAgICAg IC8qIHRoZSBmb3JtYXQtc3RyaW5nICdvJyBpcyBmb3IgYSBELUJ1cyBvYmplY3QgcGF0aC4gKi8K Ky0gICAgICAgIHJldHVybiBnX3ZhcmlhbnRfbmV3X29iamVjdF9wYXRoIChwYXRoKTsKKysgICAg ICAgIHJldHZhbCA9IGdfdmFyaWFudF9uZXdfb2JqZWN0X3BhdGggKHBhdGgpOworKyAgICAgICAg aWYgKCFyZXR2YWwpIHsKKysgICAgICAgICAgICBnX3NldF9lcnJvciAoZXJyb3IsIEdfREJVU19F UlJPUiwgR19EQlVTX0VSUk9SX0ZBSUxFRCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgIkNv dWxkIG5vdCBnZXQgb2JqZWN0IHBhdGggZnJvbSAlcyIsCisrICAgICAgICAgICAgICAgICAgICAg ICAgIHBhdGggPyBwYXRoIDogIihudWxsKSIpOworKyAgICAgICAgfQorICAgICB9CisrICAgIHJl dHVybiByZXR2YWw7CisgfQorIAorIHN0YXRpYyB2b2lkCitAQCAtMTU3Miw2ICsxNTc4LDcgQEAg X2lidXNfZ2V0X2dsb2JhbF9lbmdpbmUgKEJ1c0lCdXNJbXBsICAgICAqaWJ1cywKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgR0Vycm9yICAgICAgICAgKiplcnJvcikKKyB7CisgICAgIElCdXNF bmdpbmVEZXNjICpkZXNjID0gTlVMTDsKKysgICAgR1ZhcmlhbnQgKnJldHZhbCA9IE5VTEw7Cisg CisgICAgIGlmIChlcnJvcikgeworICAgICAgICAgKmVycm9yID0gTlVMTDsKK0BAIC0xNTkyLDcg KzE1OTksMTMgQEAgX2lidXNfZ2V0X2dsb2JhbF9lbmdpbmUgKEJ1c0lCdXNJbXBsICAgICAqaWJ1 cywKKyAgICAgICAgIEdWYXJpYW50ICp2YXJpYW50ID0gaWJ1c19zZXJpYWxpemFibGVfc2VyaWFs aXplICgKKyAgICAgICAgICAgICAgICAgKElCdXNTZXJpYWxpemFibGUgKikgZGVzYyk7CisgICAg ICAgICAvLyBTZXQgdHlwZSAidiIgZm9yIGludHJvc3BlY3Rpb25feG1sLgorLSAgICAgICAgcmV0 dXJuIGdfdmFyaWFudF9uZXdfdmFyaWFudCAodmFyaWFudCk7CisrICAgICAgICByZXR2YWwgPSBn X3ZhcmlhbnRfbmV3X3ZhcmlhbnQgKHZhcmlhbnQpOworKyAgICAgICAgaWYgKCFyZXR2YWwpIHsK KysgICAgICAgICAgICBnX3NldF9lcnJvciAoZXJyb3IsCisrICAgICAgICAgICAgICAgICAgICAg ICAgIEdfREJVU19FUlJPUiwgR19EQlVTX0VSUk9SX0ZBSUxFRCwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgIkZhaWxlZCB0byBzZXJpYWxpemUgZW5naW5lIGRlc2MuIik7CisrICAgICAgICB9 CisrICAgICAgICByZXR1cm4gcmV0dmFsOworICAgICB9IHdoaWxlICgwKTsKKyAKKyAgICAgZ19z ZXRfZXJyb3IgKGVycm9yLAorZGlmZiAtLWdpdCBhL2J1cy9zZXJ2ZXIuYyBiL2J1cy9zZXJ2ZXIu YworaW5kZXggNmM5ZTJjMDIuLmU4ZDBjZTJiIDEwMDY0NAorLS0tIGEvYnVzL3NlcnZlci5jCisr KysgYi9idXMvc2VydmVyLmMKK0BAIC0yLDggKzIsOCBAQAorIC8qIHZpbTpzZXQgZXQgc3RzPTQ6 ICovCisgLyogYnVzIC0gVGhlIElucHV0IEJ1cworICAqIENvcHlyaWdodCAoQykgMjAwOC0yMDEw IFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgorLSAqIENvcHlyaWdodCAoQykg MjAxMS0yMDE5IFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgorLSAq IENvcHlyaWdodCAoQykgMjAwOC0yMDE5IFJlZCBIYXQsIEluYy4KKysgKiBDb3B5cmlnaHQgKEMp IDIwMTEtMjAyMSBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KKysg KiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAyMSBSZWQgSGF0LCBJbmMuCisgICoKKyAgKiBUaGlzIGxp YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1 YmxpYworQEAgLTIyLDEyICsyMiwxMSBAQAorICAqLworICNpbmNsdWRlICJzZXJ2ZXIuaCIKKyAK Ky0jaW5jbHVkZSA8ZXJybm8uaD4KKyAjaW5jbHVkZSA8Z2xpYi9nc3RkaW8uaD4KKyAjaW5jbHVk ZSA8Z2lvL2dpby5oPgorLSNpbmNsdWRlIDxzdGRsaWIuaD4KKy0jaW5jbHVkZSA8ZmNudGwuaD4K KyAjaW5jbHVkZSA8ZXJybm8uaD4KKysjaW5jbHVkZSA8ZmNudGwuaD4KKysjaW5jbHVkZSA8c3Rk bGliLmg+CisgI2luY2x1ZGUgPHN0cmluZy5oPgorIAorICNpbmNsdWRlICJkYnVzaW1wbC5oIgor QEAgLTI4Miw2ICsyODEsNyBAQCBidXNfc2VydmVyX2luaXQgKHZvaWQpCisgICAgICAgICAgKiBg Y2htb2RgIHJ1bnMgZm9yIHRoZSBsYXN0IGRpcmVjdG9yeSBvbmx5IG5vdCB0byBjaGFuZ2UgdGhl IG1vZGVzCisgICAgICAgICAgKiBvZiB0aGUgcGFyZW50IGRpcmVjdG9yaWVzLiBFLmcuICIvdG1w L2lidXMiLgorICAgICAgICAgICovCisrICAgICAgICBlcnJubyA9IDA7CisgICAgICAgICBpZiAo Z19ta2Rpcl93aXRoX3BhcmVudHMgKHVuaXhfZGlyLCAwNzAwKSAhPSAwKSB7CisgICAgICAgICAg ICAgZ19lcnJvciAoIm1rZGlyIGlzIGZhaWxlZCBpbjogJXM6ICVzIiwKKyAgICAgICAgICAgICAg ICAgICAgICB1bml4X2RpciwgZ19zdHJlcnJvciAoZXJybm8pKTsKK2RpZmYgLS1naXQgYS9jbGll bnQvZ3RrMi9pYnVzaW1jb250ZXh0LmMgYi9jbGllbnQvZ3RrMi9pYnVzaW1jb250ZXh0LmMKK2lu ZGV4IDYxMTk0ODE2Li5lN2NlNTM2MyAxMDA2NDQKKy0tLSBhL2NsaWVudC9ndGsyL2lidXNpbWNv bnRleHQuYworKysrIGIvY2xpZW50L2d0azIvaWJ1c2ltY29udGV4dC5jCitAQCAtMzg1LDcgKzM4 NSw5IEBAIF9wcm9jZXNzX2tleV9ldmVudF9kb25lIChHT2JqZWN0ICAgICAgKm9iamVjdCwKKyAK KyAgICAgUHJvY2Vzc0tleUV2ZW50RGF0YSAqZGF0YSA9IChQcm9jZXNzS2V5RXZlbnREYXRhICop dXNlcl9kYXRhOworICAgICBHZGtFdmVudCAqZXZlbnQgPSBkYXRhLT5ldmVudDsKKysjaWYgR1RL X0NIRUNLX1ZFUlNJT04gKDMsIDk4LCA0KQorICAgICBJQnVzSU1Db250ZXh0ICppYnVzaW1jb250 ZXh0ID0gZGF0YS0+aWJ1c2ltY29udGV4dDsKKysjZW5kaWYKKyAgICAgR0Vycm9yICplcnJvciA9 IE5VTEw7CisgCisgICAgIGdfc2xpY2VfZnJlZSAoUHJvY2Vzc0tleUV2ZW50RGF0YSwgZGF0YSk7 CitAQCAtMTYzNCw2ICsxNjM2LDcgQEAgZ2V0X3NlbGVjdGlvbl9hbmNob3JfcG9pbnQgKElCdXNJ TUNvbnRleHQgKmlidXNpbWNvbnRleHQsCisgICAgIHJldHVybiBhbmNob3I7CisgfQorIAorKyNp ZiAhR1RLX0NIRUNLX1ZFUlNJT04gKDQsIDEsIDIpCisgc3RhdGljIHZvaWQKKyBpYnVzX2ltX2Nv bnRleHRfc2V0X3N1cnJvdW5kaW5nIChHdGtJTUNvbnRleHQgICpjb250ZXh0LAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgKnRleHQsCitAQCAtMTY0Niw2 ICsxNjQ5LDcgQEAgaWJ1c19pbV9jb250ZXh0X3NldF9zdXJyb3VuZGluZyAoR3RrSU1Db250ZXh0 ICAqY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY3Vyc29yX2luZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjdXJzb3JfaW5kZXgpOworIH0KKysjZW5kaWYKKyAKKyBzdGF0 aWMgdm9pZAorIGlidXNfaW1fY29udGV4dF9zZXRfc3Vycm91bmRpbmdfd2l0aF9zZWxlY3Rpb24g KEd0a0lNQ29udGV4dCAgKmNvbnRleHQsCitAQCAtMTg1MSw3ICsxODU1LDExIEBAIF9jcmVhdGVf Z2RrX2V2ZW50IChJQnVzSU1Db250ZXh0ICppYnVzaW1jb250ZXh0LAorICAgICAgICAgaWYgKGV2 ZW50LT5zdGF0ZSAmIEdES19DT05UUk9MX01BU0spIHsKKyAgICAgICAgICAgICBpZiAoKGMgPj0g J0AnICYmIGMgPCAnXDE3NycpIHx8IGMgPT0gJyAnKSBjICY9IDB4MUY7CisgICAgICAgICAgICAg ZWxzZSBpZiAoYyA9PSAnMicpIHsKKysjaWYgR0xJQl9DSEVDS19WRVJTSU9OICgyLCA2OCwgMCkK KysgICAgICAgICAgICAgICAgZXZlbnQtPnN0cmluZyA9IGdfbWVtZHVwMiAoIlwwXDAiLCAyKTsK KysjZWxzZQorICAgICAgICAgICAgICAgICBldmVudC0+c3RyaW5nID0gZ19tZW1kdXAgKCJcMFww IiwgMik7CisrI2VuZGlmCisgICAgICAgICAgICAgICAgIGV2ZW50LT5sZW5ndGggPSAxOworICAg ICAgICAgICAgICAgICBidWZbMF0gPSAnXDAnOworICAgICAgICAgICAgICAgICBnb3RvIG91dDsK K2RpZmYgLS1naXQgYS9jbGllbnQvd2F5bGFuZC9tYWluLmMgYi9jbGllbnQvd2F5bGFuZC9tYWlu LmMKK2luZGV4IGQ4NmJhYjllLi4xZjk5YzgwNCAxMDA2NDQKKy0tLSBhL2NsaWVudC93YXlsYW5k L21haW4uYworKysrIGIvY2xpZW50L3dheWxhbmQvbWFpbi5jCitAQCAtMSw3ICsxLDcgQEAKKyAv KiAtKi0gbW9kZTogQzsgYy1iYXNpYy1vZmZzZXQ6IDQ7IGluZGVudC10YWJzLW1vZGU6IG5pbDsg LSotICovCisgLyogdmltOnNldCBldCBzdHM9NDogKi8KKyAvKiBpYnVzIC0gVGhlIElucHV0IEJ1 cworLSAqIENvcHlyaWdodCAoQykgMjAxOSBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmEx QGdtYWlsLmNvbT4KKysgKiBDb3B5cmlnaHQgKEMpIDIwMTktMjAyMSBUYWthbyBGdWppd2FyYSA8 dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KKyAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSW50ZWwg Q29ycG9yYXRpb24KKyAgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOSBSZWQgSGF0LCBJbmMuCisg ICoKK0BAIC0zMzksMTYgKzMzOSwxOSBAQCBpbnB1dF9tZXRob2Rfa2V5Ym9hcmRfa2V5bWFwICh2 b2lkICAgICAgICAgICAgICAgKmRhdGEsCisgeworICAgICBJQnVzV2F5bGFuZElNICp3bGltID0g ZGF0YTsKKyAgICAgR01hcHBlZEZpbGUgKm1hcDsKKy0gICAgR0Vycm9yICplcnJvcjsKKysgICAg R0Vycm9yICplcnJvciA9IE5VTEw7CisgCisgICAgIGlmIChmb3JtYXQgIT0gV0xfS0VZQk9BUkRf S0VZTUFQX0ZPUk1BVF9YS0JfVjEpIHsKKyAgICAgICAgIGNsb3NlKGZkKTsKKyAgICAgICAgIHJl dHVybjsKKyAgICAgfQorIAorLSAgICBlcnJvciA9IE5VTEw7CisgICAgIG1hcCA9IGdfbWFwcGVk X2ZpbGVfbmV3X2Zyb21fZmQgKGZkLCBGQUxTRSwgJmVycm9yKTsKKyAgICAgaWYgKG1hcCA9PSBO VUxMKSB7CisrICAgICAgICBpZiAoZXJyb3IpIHsKKysgICAgICAgICAgICBnX3dhcm5pbmcgKCJG YWlsZWQgdG8gbWFwIGZpbGUgZmQgJXMiLCBlcnJvci0+bWVzc2FnZSk7CisrICAgICAgICAgICAg Z19lcnJvcl9mcmVlIChlcnJvcik7CisrICAgICAgICB9CisgICAgICAgICBjbG9zZSAoZmQpOwor ICAgICAgICAgcmV0dXJuOworICAgICB9CitkaWZmIC0tZ2l0IGEvY2xpZW50L3gxMS9tYWluLmMg Yi9jbGllbnQveDExL21haW4uYworaW5kZXggYzllZTE3NGQuLmZmZDc3NmZkIDEwMDY0NAorLS0t IGEvY2xpZW50L3gxMS9tYWluLmMKKysrKyBiL2NsaWVudC94MTEvbWFpbi5jCitAQCAtMiw3ICsy LDcgQEAKKyAvKiB2aW06c2V0IGV0IHN0cz00OiAqLworIC8qIGlidXMKKyAgKiBDb3B5cmlnaHQg KEMpIDIwMDctMjAxNSBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KKy0gKiBD b3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdt YWlsLmNvbT4KKysgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAyMSBUYWthbyBGdWppd2FyYSA8dGFr YW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KKyAgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAxNSBSZWQg SGF0LCBJbmMuCisgICoKKyAgKiBtYWluLmM6CitAQCAtMjI5LDEyICsyMjksMTMgQEAgX3hpbV9w cmVlZGl0X2NhbGxiYWNrX2RyYXcgKFhJTVMgeGltcywgWDExSUMgKngxMWljLCBjb25zdCBnY2hh ciAqcHJlZWRpdF9zdHJpbmcKKyAgICAgICAgIH0KKyAgICAgfQorIAorLSAgICBmb3IgKGkgPSAw OyBpIDwgbGVuOyBpKyspIHsKKysgICAgZm9yIChpID0gMDsgZmVlZGJhY2sgJiYgaSA8IGxlbjsg aSsrKSB7CisgICAgICAgICBpZiAoZmVlZGJhY2tbaV0gPT0gMCkgeworICAgICAgICAgICAgIGZl ZWRiYWNrW2ldID0gWElNVW5kZXJsaW5lOworICAgICAgICAgfQorICAgICB9CistICAgIGZlZWRi YWNrW2xlbl0gPSAwOworKyAgICBpZiAoZmVlZGJhY2spCisrICAgICAgICBmZWVkYmFja1tsZW5d ID0gMDsKKyAKKyAgICAgcGNiLm1ham9yX2NvZGUgPSBYSU1fUFJFRURJVF9EUkFXOworICAgICBw Y2IuY29ubmVjdF9pZCA9IHgxMWljLT5jb25uZWN0X2lkOworQEAgLTczNiw5ICs3MzcsMjAgQEAg eGltX2dldF9pY192YWx1ZXMgKFhJTVMgeGltcywgSU1DaGFuZ2VJQ1N0cnVjdCAqY2FsbF9kYXRh KQorIAorICAgICBmb3IgKGkgPSAwOyBpIDwgKGludCkgY2FsbF9kYXRhLT5pY19hdHRyX251bTsg KytpLCArK2ljX2F0dHIpIHsKKyAgICAgICAgIGlmIChnX3N0cmNtcDAgKFhORmlsdGVyRXZlbnRz LCBpY19hdHRyLT5uYW1lKSA9PSAwKSB7CisrICAgICAgICAgICAgLyogaWNfYXR0ci0+dmFsdWUg d2lsbCBiZSBmcmVlZCBpbiBzZXJ2ZXIgc2lkZSBhbmQgaWdub3JlCisrICAgICAgICAgICAgICog bGVhayBvZiBtYWxsb2Mgd2l0aCAtV2FuYWx5emVyLW1hbGxvYy1sZWFrIGZsYWdzIGluIGdjYyAx MS4wLjEKKysgICAgICAgICAgICAgKi8KKysjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKKysj cHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XYW5hbHl6ZXItbWFsbG9jLWxlYWsiCisg ICAgICAgICAgICAgaWNfYXR0ci0+dmFsdWUgPSAodm9pZCAqKSBtYWxsb2MgKHNpemVvZiAoQ0FS RDMyKSk7CistICAgICAgICAgICAgKihDQVJEMzIgKikgaWNfYXR0ci0+dmFsdWUgPSBLZXlQcmVz c01hc2sgfCBLZXlSZWxlYXNlTWFzazsKKy0gICAgICAgICAgICBpY19hdHRyLT52YWx1ZV9sZW5n dGggPSBzaXplb2YgKENBUkQzMik7CisrICAgICAgICAgICAgaWYgKGljX2F0dHItPnZhbHVlKSB7 CisrICAgICAgICAgICAgICAgICooQ0FSRDMyICopIGljX2F0dHItPnZhbHVlID0gS2V5UHJlc3NN YXNrIHwgS2V5UmVsZWFzZU1hc2s7CisrICAgICAgICAgICAgICAgIGljX2F0dHItPnZhbHVlX2xl bmd0aCA9IHNpemVvZiAoQ0FSRDMyKTsKKysgICAgICAgICAgICB9IGVsc2UgeworKyAgICAgICAg ICAgICAgICBnX3dhcm5pbmcgKCJGYWlsZWQgdG8gbWFsbG9jIik7CisrICAgICAgICAgICAgICAg IGljX2F0dHItPnZhbHVlX2xlbmd0aCA9IDA7CisrICAgICAgICAgICAgfQorKyNwcmFnbWEgR0ND IGRpYWdub3N0aWMgcG9wCisgICAgICAgICB9CisgICAgIH0KKyAKK2RpZmYgLS1naXQgYS9jb25m L2Rjb25mL21haW4uYyBiL2NvbmYvZGNvbmYvbWFpbi5jCitpbmRleCBlNjg3ODQyNC4uMGQ3OGI5 N2QgMTAwNjQ0CistLS0gYS9jb25mL2Rjb25mL21haW4uYworKysrIGIvY29uZi9kY29uZi9tYWlu LmMKK0BAIC0yLDcgKzIsOCBAQAorIC8qIHZpbTpzZXQgZXQgc3RzPTQ6ICovCisgLyogaWJ1cyAt IFRoZSBJbnB1dCBCdXMKKyAgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxMCBQZW5nIEh1YW5nIDxz aGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KKy0gKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxMCBSZWQg SGF0LCBJbmMuCisrICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMjEgVGFrYW8gRnVqaXdhcmEgPHRh a2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CisrICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMjEgUmVk IEhhdCwgSW5jLgorICAqCisgICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKK0BAIC03MCw3ICs3MSw5IEBAIG1haW4g KGdpbnQgYXJnYywgZ2NoYXIgKiphcmd2KQorICAgICBHT3B0aW9uQ29udGV4dCAqY29udGV4dDsK KyAKKyAgICAgc2V0bG9jYWxlIChMQ19BTEwsICIiKTsKKy0gICAgZ19zZXRlbnYgKCJEQ09ORl9Q Uk9GSUxFIiwgImlidXMiLCBGQUxTRSk7CisrICAgIGVycm5vID0gMDsKKysgICAgaWYgKCFnX3Nl dGVudiAoIkRDT05GX1BST0ZJTEUiLCAiaWJ1cyIsIEZBTFNFKSkKKysgICAgICAgIGdfd2Fybmlu ZyAoIkZhaWxlZCBzZXRlbnYgJXMiLCBlcnJubyA/IHN0cmVycm9yIChlcnJubykgOiAiKG51bGwp Iik7CisgCisgICAgIGNvbnRleHQgPSBnX29wdGlvbl9jb250ZXh0X25ldyAoIi0gaWJ1cyBkY29u ZiBjb21wb25lbnQiKTsKKyAKK2RpZmYgLS1naXQgYS9wb3J0YWwvcG9ydGFsLmMgYi9wb3J0YWwv cG9ydGFsLmMKK2luZGV4IGU3OGJjOTJmLi4yMTNlMmJhNiAxMDA2NDQKKy0tLSBhL3BvcnRhbC9w b3J0YWwuYworKysrIGIvcG9ydGFsL3BvcnRhbC5jCitAQCAtMSw3ICsxLDcgQEAKKyAvKiAtKi0g bW9kZTogQzsgYy1iYXNpYy1vZmZzZXQ6IDQ7IGluZGVudC10YWJzLW1vZGU6IG5pbDsgLSotICov CisgLyogdmltOnNldCBldCBzdHM9NDogKi8KKyAvKiBpYnVzIC0gVGhlIElucHV0IEJ1cworLSAq IENvcHlyaWdodCAoQykgMjAxNy0yMDE5IFJlZCBIYXQsIEluYy4KKysgKiBDb3B5cmlnaHQgKEMp IDIwMTctMjAyMSBSZWQgSGF0LCBJbmMuCisgICoKKyAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICogbW9kaWZ5IGl0IHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworQEAgLTUwOCw3 ICs1MDgsNiBAQCBjcmVhdGVfaW5wdXRfY29udGV4dF9kb25lIChJQnVzQnVzICAgICAgICAgICAg ICAgKmJ1cywKKyAgICAgaWYgKHBvcnRhbF9jb250ZXh0ID09IE5VTEwpIHsKKyAgICAgICAgIGdf ZGJ1c19tZXRob2RfaW52b2NhdGlvbl9yZXR1cm5fZ2Vycm9yIChpbnZvY2F0aW9uLCBlcnJvcik7 CisgICAgICAgICBnX2Vycm9yX2ZyZWUgKGVycm9yKTsKKy0gICAgICAgIGdfb2JqZWN0X3VucmVm IChwb3J0YWxfY29udGV4dCk7CisgICAgICAgICByZXR1cm47CisgICAgIH0KKyAKK0BAIC02NTYs OCArNjU1LDEwIEBAIG1haW4gKGdpbnQgYXJnYywgZ2NoYXIgKiphcmd2KQorICAgICAgICAgZXhp dCAoLTEpOworICAgICB9CisgCisrICAgICBlcnJubyA9IDA7CisgICAgIC8qIEF2b2lkIGV2ZW4g bG9hZGluZyBndmZzIHRvIGF2b2lkIGFjY2lkZW50YWwgY29uZnVzaW9uICovCistICAgIGdfc2V0 ZW52ICgiR0lPX1VTRV9WRlMiLCAibG9jYWwiLCBUUlVFKTsKKysgICAgaWYgKCFnX3NldGVudiAo IkdJT19VU0VfVkZTIiwgImxvY2FsIiwgVFJVRSkpCisrICAgICAgICBnX3dhcm5pbmcgKCJGYWls ZWQgc2V0ZW52ICVzIiwgZXJybm8gPyBzdHJlcnJvciAoZXJybm8pIDogIihudWxsKSIpOworIAor ICAgICBpYnVzX2luaXQgKCk7CisgCitkaWZmIC0tZ2l0IGEvc2V0dXAvaWJ1cy1zZXR1cC5pbiBi L3NldHVwL2lidXMtc2V0dXAuaW4KK2luZGV4IDRhNjgzMGFmLi40NzRjZThhOCAxMDA2NDQKKy0t LSBhL3NldHVwL2lidXMtc2V0dXAuaW4KKysrKyBiL3NldHVwL2lidXMtc2V0dXAuaW4KK0BAIC0y Nyw1ICsyNyw1IEBAIGV4cG9ydCBJQlVTX1BSRUZJWD1AcHJlZml4QAorIGV4cG9ydCBJQlVTX0RB VEFST09URElSPUBkYXRhcm9vdGRpckAKKyBleHBvcnQgSUJVU19MT0NBTEVESVI9QGxvY2FsZWRp ckAKKyBleHBvcnQgSUJVU19MSUJFWEVDRElSPSR7bGliZXhlY2Rpcn0KKy1leGVjICR7UFlUSE9O Oi1AUFlUSE9OQH0gQHByZWZpeEAvc2hhcmUvaWJ1cy9zZXR1cC9tYWluLnB5ICRACisrZXhlYyAk e1BZVEhPTjotQFBZVEhPTkB9IEBwcmVmaXhAL3NoYXJlL2lidXMvc2V0dXAvbWFpbi5weSAiJEAi CisgCitkaWZmIC0tZ2l0IGEvc3JjL2Vtb2ppLXBhcnNlci5jIGIvc3JjL2Vtb2ppLXBhcnNlci5j CitpbmRleCBiMTE3YjFiNC4uMzZkMzZlMDUgMTAwNjQ0CistLS0gYS9zcmMvZW1vamktcGFyc2Vy LmMKKysrKyBiL3NyYy9lbW9qaS1wYXJzZXIuYworQEAgLTEsNyArMSw3IEBACisgLyogLSotIG1v ZGU6IEM7IGMtYmFzaWMtb2Zmc2V0OiA0OyBpbmRlbnQtdGFicy1tb2RlOiBuaWw7IC0qLSAqLwor IC8qIHZpbTpzZXQgZXQgc3RzPTQ6ICovCisgLyogaWJ1cyAtIFRoZSBJbnB1dCBCdXMKKy0gKiBD b3B5cmlnaHQgKEMpIDIwMTYtMjAyMCBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdt YWlsLmNvbT4KKysgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAyMSBUYWthbyBGdWppd2FyYSA8dGFr YW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KKyAgKiBDb3B5cmlnaHQgKEMpIDIwMTYgUmVkIEhhdCwg SW5jLgorICAqCisgICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vcgorQEAgLTI5MSwxMSArMjkxLDkgQEAgZW1vamlfZGF0YV9uZXdf b2JqZWN0IChFbW9qaURhdGEgKmRhdGEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgImFubm90YXRpb25zIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRh LT5hbm5vdGF0aW9ucywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVzY3Jp cHRpb24iLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtPmRlc2NyaXB0 aW9uID8gZGF0YS0+ZGVzY3JpcHRpb24KKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDogZ19zdHJkdXAgKCIiKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkYXRhLT5kZXNjcmlwdGlvbiA/IGRhdGEtPmRlc2NyaXB0aW9uIDogIiIsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgImNhdGVnb3J5IiwKKy0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBkYXRhLT5jYXRlZ29yeSA/IGRhdGEtPmNhdGVnb3J5CistICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGdfc3RyZHVwICgiIiksCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS0+Y2F0ZWdvcnkgPyBkYXRhLT5jYXRl Z29yeSA6ICIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAg ICBkYXRhLT5saXN0ID0gZ19zbGlzdF9hcHBlbmQgKGRhdGEtPmxpc3QsIGVtb2ppKTsKKyB9CitA QCAtNjA4LDcgKzYwNiw3IEBAIHVuaWNvZGVfZW1vamlfdGVzdF9wYXJzZV9saW5lIChjb25zdCBn Y2hhciAqbGluZSwKKyAgICAgICAgIHJldHVybiBGQUxTRTsKKyAgICAgfQorICAgICB1bmljb2Rl X2Vtb2ppX3Rlc3RfcGFyc2VfZGVzY3JpcHRpb24gKHNlZ21lbnRzWzFdLCBkYXRhKTsKKy0gICAg Z19zdHJmcmVldiAoc2VnbWVudHMpOworKyAgICBnX2NsZWFyX3BvaW50ZXIgKCZzZWdtZW50cywg Z19zdHJmcmVldik7CisgICAgIGlmIChkYXRhLT5hbm5vdGF0aW9ucyA9PSBOVUxMKSB7CisgICAg ICAgICBpZiAoZGF0YS0+c3ViY2F0ZWdvcnkpIHsKKyAgICAgICAgICAgICBpbnQgaTsKK0BAIC02 MzEsNyArNjI5LDcgQEAgdW5pY29kZV9lbW9qaV90ZXN0X3BhcnNlX2xpbmUgKGNvbnN0IGdjaGFy ICpsaW5lLAorICAgICAgICAgICAgICAgICBkYXRhLT5hbm5vdGF0aW9ucyA9IGdfc2xpc3RfYXBw ZW5kIChkYXRhLT5hbm5vdGF0aW9ucywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZ19zdHJkdXAgKHNlZ21lbnRzW2ldKSk7CisgICAgICAgICAg ICAgfQorLSAgICAgICAgICAgIGdfc3RyZnJlZXYgKHNlZ21lbnRzKTsKKysgICAgICAgICAgICBn X2NsZWFyX3BvaW50ZXIgKCZzZWdtZW50cywgZ19zdHJmcmVldik7CisgICAgICAgICB9IGVsc2Ug eworICAgICAgICAgICAgIGdfd2FybmluZyAoIk5vIHN1YmNhdGVnb3J5IGxpbmVcbiIpOworICAg ICAgICAgICAgIGdvdG8gZmFpbGVkX3RvX3BhcnNlX3VuaWNvZGVfZW1vamlfdGVzdF9saW5lOwor QEAgLTY3Miw3ICs2NzAsNyBAQCB1bmljb2RlX2Vtb2ppX3Rlc3RfcGFyc2VfZmlsZSAoY29uc3Qg Z2NoYXIgKmZpbGVuYW1lLAorICAgICAgICAgICAgICAgICAgICBmaWxlbmFtZSwgZXJyb3IgPyBl cnJvci0+bWVzc2FnZSA6ICIiKTsKKyAgICAgICAgIGdvdG8gZmFpbGVkX3RvX3BhcnNlX3VuaWNv ZGVfZW1vamlfdGVzdDsKKyAgICAgfQorLSAgICBoZWFkID0gZW5kID0gY29udGVudDsKKysgICAg ZW5kID0gY29udGVudDsKKyAgICAgd2hpbGUgKCplbmQgPT0gJ1xuJyAmJiBlbmQgLSBjb250ZW50 IDwgbGVuZ3RoKSB7CisgICAgICAgICBlbmQrKzsKKyAgICAgICAgIG4rKzsKK0BAIC0xMTAwLDEw ICsxMDk4LDEyIEBAIHN0YXRpYyB2b2lkCisgY2F0ZWdvcnlfbGlzdF9kdW1wIChjb25zdCBnY2hh ciAqY2F0ZWdvcnksCisgICAgICAgICAgICAgICAgICAgICBHU3RyaW5nICAgICAqYnVmZikKKyB7 CisrICAgIGdjaGFyICpsaW5lOworICAgICBnX3JldHVybl9pZl9mYWlsIChidWZmICE9IE5VTEwp OworIAorLSAgICBjb25zdCBnY2hhciAqbGluZSA9IGdfc3RyZHVwX3ByaW50ZiAoIiAgICBOXyhc IiVzXCIpLFxuIiwgY2F0ZWdvcnkpOworKyAgICBsaW5lID0gZ19zdHJkdXBfcHJpbnRmICgiICAg IE5fKFwiJXNcIiksXG4iLCBjYXRlZ29yeSk7CisgICAgIGdfc3RyaW5nX2FwcGVuZCAoYnVmZiwg bGluZSk7CisrICAgIGdfZnJlZSAobGluZSk7CisgfQorIAorIHN0YXRpYyB2b2lkCitAQCAtMTEx Myw3ICsxMTEzLDcgQEAgY2F0ZWdvcnlfZmlsZV9zYXZlIChjb25zdCBnY2hhciAqZmlsZW5hbWUs CisgICAgIGdjaGFyICpjb250ZW50ID0gTlVMTDsKKyAgICAgZ3NpemUgbGVuZ3RoID0gMDsKKyAg ICAgR0Vycm9yICplcnJvciA9IE5VTEw7CistICAgIGdjaGFyICpwOworKyAgICBnY2hhciAqcCwg KnN1YnN0cjsKKyAgICAgR1N0cmluZyAqYnVmZiA9IE5VTEw7CisgICAgIGludCBpOworICAgICBH U0xpc3QgKmxpc3RfY2F0ZWdvcmllcyA9IE5VTEw7CitAQCAtMTEzOSwyNCArMTEzOSwyOCBAQCBj YXRlZ29yeV9maWxlX3NhdmUgKGNvbnN0IGdjaGFyICpmaWxlbmFtZSwKKyAgICAgICAgICAgICBi cmVhazsKKyAgICAgfQorICAgICBpZiAocCAhPSBOVUxMKSB7CistICAgICAgICBnX3N0cmluZ19h cHBlbmQgKGJ1ZmYsIGdfc3RybmR1cCAoY29udGVudCwgcCAtIGNvbnRlbnQpKTsKKysgICAgICAg IHN1YnN0ciA9IGdfc3RybmR1cCAoY29udGVudCwgcCAtIGNvbnRlbnQpOworKyAgICAgICAgZ19z dHJpbmdfYXBwZW5kIChidWZmLCBzdWJzdHIpOworKyAgICAgICAgZ19mcmVlIChzdWJzdHIpOwor ICAgICAgICAgZ19zdHJpbmdfYXBwZW5kX2MgKGJ1ZmYsICdcbicpOworICAgICB9CisgICAgIGdf Y2xlYXJfcG9pbnRlciAoJmNvbnRlbnQsIGdfZnJlZSk7CisgCistICAgIGdfc3RyaW5nX2FwcGVu ZCAoYnVmZiwgZ19zdHJkdXAgKCJcbiIpKTsKKy0gICAgZ19zdHJpbmdfYXBwZW5kIChidWZmLCBn X3N0cmR1cF9wcmludGYgKCIvKiBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGJ5ICVzLiAqLyIsIF9f RklMRV9fKSk7CistICAgIGdfc3RyaW5nX2FwcGVuZCAoYnVmZiwgZ19zdHJkdXAgKCJcbiIpKTsK Ky0gICAgZ19zdHJpbmdfYXBwZW5kIChidWZmLCBnX3N0cmR1cCAoImluY2x1ZGUgPGdsaWIvZ2kx OG4uaD5cbiIpKTsKKy0gICAgZ19zdHJpbmdfYXBwZW5kIChidWZmLCBnX3N0cmR1cCAoIlxuIikp OworLSAgICBnX3N0cmluZ19hcHBlbmQgKGJ1ZmYsIGdfc3RyZHVwICgiI2lmbmRlZiBfX0lCVVNf RU1PSklfR0VOX0hfXG4iKSk7CistICAgIGdfc3RyaW5nX2FwcGVuZCAoYnVmZiwgZ19zdHJkdXAg KCIjZGVmaW5lIF9fSUJVU19FTU9KSV9HRU5fSF9cbiIpKTsKKy0gICAgZ19zdHJpbmdfYXBwZW5k IChidWZmLCBnX3N0cmR1cCAoImNvbnN0IHN0YXRpYyBjaGFyICp1bmljb2RlX2Vtb2ppX2NhdGVn b3JpZXNbXSA9IHtcbiIpKTsKKysgICAgZ19zdHJpbmdfYXBwZW5kIChidWZmLCAiXG4iKTsKKysg ICAgc3Vic3RyID0gZ19zdHJkdXBfcHJpbnRmICgiLyogVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBi eSAlcy4gKi8iLCBfX0ZJTEVfXyk7CisrICAgIGdfc3RyaW5nX2FwcGVuZCAoYnVmZiwgc3Vic3Ry KTsKKysgICAgZ19mcmVlIChzdWJzdHIpOworKyAgICBnX3N0cmluZ19hcHBlbmQgKGJ1ZmYsICJc biIpOworKyAgICBnX3N0cmluZ19hcHBlbmQgKGJ1ZmYsICJpbmNsdWRlIDxnbGliL2dpMThuLmg+ XG4iKTsKKysgICAgZ19zdHJpbmdfYXBwZW5kIChidWZmLCAiXG4iKTsKKysgICAgZ19zdHJpbmdf YXBwZW5kIChidWZmLCAiI2lmbmRlZiBfX0lCVVNfRU1PSklfR0VOX0hfXG4iKTsKKysgICAgZ19z dHJpbmdfYXBwZW5kIChidWZmLCAiI2RlZmluZSBfX0lCVVNfRU1PSklfR0VOX0hfXG4iKTsKKysg ICAgZ19zdHJpbmdfYXBwZW5kIChidWZmLCAiY29uc3Qgc3RhdGljIGNoYXIgKnVuaWNvZGVfZW1v amlfY2F0ZWdvcmllc1tdID0ge1xuIik7CisgICAgIGxpc3RfY2F0ZWdvcmllcyA9IGdfc2xpc3Rf c29ydCAobGlzdF9jYXRlZ29yaWVzLCAoR0NvbXBhcmVGdW5jKWdfc3RyY21wMCk7CisgICAgIGdf c2xpc3RfZm9yZWFjaCAobGlzdF9jYXRlZ29yaWVzLCAoR0Z1bmMpY2F0ZWdvcnlfbGlzdF9kdW1w LCBidWZmKTsKKyAgICAgZ19zbGlzdF9mcmVlIChsaXN0X2NhdGVnb3JpZXMpOworLSAgICBnX3N0 cmluZ19hcHBlbmQgKGJ1ZmYsIGdfc3RyZHVwICgifTtcbiIpKTsKKy0gICAgZ19zdHJpbmdfYXBw ZW5kIChidWZmLCBnX3N0cmR1cCAoIiNlbmRpZlxuIikpOworKyAgICBnX3N0cmluZ19hcHBlbmQg KGJ1ZmYsICJ9O1xuIik7CisrICAgIGdfc3RyaW5nX2FwcGVuZCAoYnVmZiwgIiNlbmRpZlxuIik7 CisgCisgICAgIGlmICghZ19maWxlX3NldF9jb250ZW50cyAoZmlsZW5hbWUsIGJ1ZmYtPnN0ciwg LTEsICZlcnJvcikpIHsKKyAgICAgICAgIGdfd2FybmluZyAoIkZhaWxlZCB0byBzYXZlIGVtb2pp IGNhdGVnb3J5IGZpbGUgJXM6ICVzIiwgZmlsZW5hbWUsIGVycm9yLT5tZXNzYWdlKTsKK2RpZmYg LS1naXQgYS9zcmMvaWJ1c2FjY2VsZ3JvdXAuYyBiL3NyYy9pYnVzYWNjZWxncm91cC5jCitpbmRl eCA4YTgxNTk3ZS4uZWYyZDM5NzYgMTAwNjQ0CistLS0gYS9zcmMvaWJ1c2FjY2VsZ3JvdXAuYwor KysrIGIvc3JjL2lidXNhY2NlbGdyb3VwLmMKK0BAIC00NjgsNyArNDY4LDcgQEAgaWJ1c19hY2Nl bGVyYXRvcl9uYW1lIChndWludCAgICAgICAgICAgIGFjY2VsZXJhdG9yX2tleSwKKyAgICAgaWYg KGFjY2VsZXJhdG9yX21vZHMgJiBJQlVTX1NVUEVSX01BU0spCisgICAgICAgICBsICs9IHNpemVv ZiAodGV4dF9zdXBlcikgLSAxOworIAorLSAgICBhY2NlbGVyYXRvciA9IGdfbmV3IChnY2hhciwg bCArIDEpOworKyAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoKGFjY2VsZXJhdG9yID0gZ19uZXcg KGdjaGFyLCBsICsgMSkpLCBOVUxMKTsKKyAKKyAgICAgYWNjZWxlcmF0b3JfbW9kcyA9IHNhdmVk X21vZHM7CisgICAgIGwgPSAwOworZGlmZiAtLWdpdCBhL3NyYy9pYnVzYnVzLmMgYi9zcmMvaWJ1 c2J1cy5jCitpbmRleCBiN2ZmYmI0Ny4uZTliMGJjYmIgMTAwNjQ0CistLS0gYS9zcmMvaWJ1c2J1 cy5jCisrKysgYi9zcmMvaWJ1c2J1cy5jCitAQCAtMiw3ICsyLDcgQEAKKyAvKiB2aW06c2V0IGV0 IHN0cz00OiAqLworIC8qIGlidXMgLSBUaGUgSW5wdXQgQnVzCisgICogQ29weXJpZ2h0IChDKSAy MDA4LTIwMTUgUGVuZyBIdWFuZyA8c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+CistICogQ29weXJp Z2h0IChDKSAyMDE1LTIwMTkgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5j b20+CisrICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMjEgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1 aml3YXJhMUBnbWFpbC5jb20+CisgICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMTYgUmVkIEhhdCwg SW5jLgorICAqCisgICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vcgorQEAgLTU1NSwxMiArNTU1LDE4IEBAIGlidXNfYnVzX2luaXQg KElCdXNCdXMgKmJ1cykKKyAKKyAgICAgcGF0aCA9IGdfcGF0aF9nZXRfZGlybmFtZSAoaWJ1c19n ZXRfc29ja2V0X3BhdGggKCkpOworIAorLSAgICBnX21rZGlyX3dpdGhfcGFyZW50cyAocGF0aCwg MDcwMCk7CisrICAgIGVycm5vID0gMDsKKysgICAgaWYgKGdfbWtkaXJfd2l0aF9wYXJlbnRzIChw YXRoLCAwNzAwKSkgeworKyAgICAgICAgZ193YXJuaW5nICgiRmFpbGVkIHRvIG1rZGlyICVzOiAl cyIsIHBhdGgsIGdfc3RyZXJyb3IgKGVycm5vKSk7CisrICAgICAgICBnX2ZyZWUgKHBhdGgpOwor KyAgICAgICAgcmV0dXJuOworKyAgICB9CisgCisgICAgIGlmIChzdGF0IChwYXRoLCAmYnVmKSA9 PSAwKSB7CisgICAgICAgICBpZiAoYnVmLnN0X3VpZCAhPSBnZXR1aWQgKCkpIHsKKyAgICAgICAg ICAgICBnX3dhcm5pbmcgKCJUaGUgb3duZXIgb2YgJXMgaXMgbm90ICVzISIsCisgICAgICAgICAg ICAgICAgICAgICAgICBwYXRoLCBpYnVzX2dldF91c2VyX25hbWUgKCkpOworKyAgICAgICAgICAg IGdfZnJlZSAocGF0aCk7CisgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgfQorICAgICAg ICAgaWYgKGJ1Zi5zdF9tb2RlICE9IChTX0lGRElSIHwgU19JUldYVSkpIHsKK2RpZmYgLS1naXQg YS9zcmMvaWJ1c2NvbXBvc2V0YWJsZS5jIGIvc3JjL2lidXNjb21wb3NldGFibGUuYworaW5kZXgg ZWYyMDQ2OWMuLjY4NWFjNzE3IDEwMDY0NAorLS0tIGEvc3JjL2lidXNjb21wb3NldGFibGUuYwor KysrIGIvc3JjL2lidXNjb21wb3NldGFibGUuYworQEAgLTEsNyArMSw3IEBACisgLyogLSotIG1v ZGU6IEM7IGMtYmFzaWMtb2Zmc2V0OiA0OyBpbmRlbnQtdGFicy1tb2RlOiBuaWw7IC0qLSAqLwor IC8qIGlidXMgLSBUaGUgSW5wdXQgQnVzCisgICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTQgUGVu ZyBIdWFuZyA8c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+CistICogQ29weXJpZ2h0IChDKSAyMDEz LTIwMTkgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CisrICogQ29w eXJpZ2h0IChDKSAyMDEzLTIwMjEgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFp bC5jb20+CisgICoKKyAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworQEAgLTEwOCw2ICsxMDgsNyBAQCBwYXJzZV9j b21wb3NlX3ZhbHVlIChJQnVzQ29tcG9zZURhdGEgICpjb21wb3NlX2RhdGEsCisgICAgIH0KKyAg ICAgKytoZWFkOworICAgICBwID0gaGVhZDsKKysgICAgZW5kID0gTlVMTDsKKyAgICAgd2hpbGUg KCgqcCAhPSAnXDAnKSAmJiAoZW5kID0gc3RyY2hyIChwLCAnXCInKSkpIHsKKyAgICAgICAgIGlm ICgqKGVuZCAtIDEpID09ICdcXCcgJiYgKihlbmQgLSAyKSA9PSAnXFwnKQorICAgICAgICAgICAg IGJyZWFrOworQEAgLTUxNiwxMCArNTE3LDEwIEBAIGlidXNfY29tcG9zZV9oYXNoX2dldF9jYWNo ZV9wYXRoIChndWludDMyIGhhc2gpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi aWJ1cyIsICJjb21wb3NlIiwgTlVMTCk7CisgICAgIH0KKyAgICAgcGF0aCA9IGdfYnVpbGRfZmls ZW5hbWUgKGRpciwgYmFzZW5hbWUsIE5VTEwpOworLSAgICBpZiAoZ19ta2Rpcl93aXRoX3BhcmVu dHMgKGRpciwgMDc1NSkgIT0gMCkgeworLSAgICAgICAgZ193YXJuaW5nICgiRmFpbGVkIHRvIG1r ZGlyICVzIiwgZGlyKTsKKy0gICAgICAgIGdfZnJlZSAocGF0aCk7CistICAgICAgICBwYXRoID0g TlVMTDsKKysgICAgZXJybm8gPSAwOworKyAgICBpZiAoZ19ta2Rpcl93aXRoX3BhcmVudHMgKGRp ciwgMDc1NSkpIHsKKysgICAgICAgIGdfd2FybmluZyAoIkZhaWxlZCB0byBta2RpciAlczogJXMi LCBkaXIsIGdfc3RyZXJyb3IgKGVycm5vKSk7CisrICAgICAgICBnX2NsZWFyX3BvaW50ZXIgKCZw YXRoLCBnX2ZyZWUpOworICAgICB9CisgCisgICAgIGdfZnJlZSAoZGlyKTsKK0BAIC04MTIsMTAg KzgxMywxNCBAQCBpYnVzX2NvbXBvc2VfdGFibGVfZGVzZXJpYWxpemUgKGNvbnN0IGdjaGFyICpj b250ZW50cywKKyAgICAgICAgIH0KKyAgICAgfQorICAgICBpZiAoZGF0YV9sZW5ndGgpIHsKKy0g ICAgICAgIHJldHZhbC0+cHJpdi0+ZGF0YV9zZWNvbmQgPSBnX25ldyAoZ3VpbnQzMiwgZGF0YV9s ZW5ndGgpOworLSAgICAgICAgbWVtY3B5IChyZXR2YWwtPnByaXYtPmRhdGFfc2Vjb25kLAorLSAg ICAgICAgICAgICAgICBkYXRhXzMyYml0X3NlY29uZCwgZGF0YV9sZW5ndGggKiBzaXplb2YgKGd1 aW50MzIpKTsKKy0gICAgICAgIHJldHZhbC0+cHJpdi0+c2Vjb25kX3NpemUgPSBzZWNvbmRfc2l6 ZTsKKysgICAgICAgIGlmICgocmV0dmFsLT5wcml2LT5kYXRhX3NlY29uZCA9IGdfbmV3IChndWlu dDMyLCBkYXRhX2xlbmd0aCkpKSB7CisrICAgICAgICAgICAgbWVtY3B5IChyZXR2YWwtPnByaXYt PmRhdGFfc2Vjb25kLAorKyAgICAgICAgICAgICAgICAgICAgZGF0YV8zMmJpdF9zZWNvbmQsIGRh dGFfbGVuZ3RoICogc2l6ZW9mIChndWludDMyKSk7CisrICAgICAgICAgICAgcmV0dmFsLT5wcml2 LT5zZWNvbmRfc2l6ZSA9IHNlY29uZF9zaXplOworKyAgICAgICAgfSBlbHNlIHsKKysgICAgICAg ICAgICBnX3dhcm5pbmcgKCJGYWlsZWQgZ19uZXciKTsKKysgICAgICAgICAgICByZXR2YWwtPnBy aXYtPnNlY29uZF9zaXplID0gMDsKKysgICAgICAgIH0KKyAgICAgfQorIAorIAorQEAgLTkxMCw2 ICs5MTUsNDMgQEAgaWJ1c19jb21wb3NlX3RhYmxlX25ld193aXRoX2xpc3QgKEdMaXN0ICAgKmNv bXBvc2VfbGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICAgICAg bl9pbmRleF9zdHJpZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50 MzIgIGhhc2gpCisgeworKyAgICAvKiBAaWJ1c19jb21wb3NlX3NlcXM6IEluY2x1ZGUgYm90aCBj b21wb3NlIHNlcXVlbmNlIGFuZCB0aGUgdmFsdWUoY29tcG9zZQorKyAgICAgKiAgICAgb3V0cHV0 KSBhcyB0aGUgdHJhZGl0aW9uIEdUSy4gVGhlIHZhbHVlIGlzIG9uZSBjaGFyYWN0ZXIgb25seQor KyAgICAgKiAgICAgYW5kIHdpdGhpbiAxNmJpdC4gSS5lLiBBbGwgY29tcG9zZSBzZXF1ZW5jZXMg YW5kIHRoZSB2YWx1ZXMKKysgICAgICogICAgIGFyZSAxNmJpdC4KKysgICAgICogQGlidXNfY29t cG9zZV9zZXFzXzMyYml0X3NlY29uZDogSW5jbHVkZSB0aGUgY29tcG9zZSB2YWx1ZXMgb25seS4K KysgICAgICogICAgIFRoZSBsZW5ndGggb2YgdmFsdWVzIGJ5IGNvbXBvc2Ugc2VxdWVuY2UgaXMg bW9yZSB0aGFuIG9uZSBjaGFyYWNzdGVyCisrICAgICAqICAgICBvciBvbmUgb2YgdGhlIHZhbHVl cyBpcyBvdXRzaWRlIDE2Yml0IGJ1dCB3aXRoaW4gMzJiaXQuCisrICAgICAqICAgICBTb21lIHZh bHVlcyBjb3VsZCBiZSBtb3JlIHRoYW4gb25lIGNoYXJhY3RlciBhbmQgRW1vamkgY2hhcmFjdGVy CisrICAgICAqICAgICBjb3VsZCBiZSBvdXRzaWRlIDE2Yml0LgorKyAgICAgKiAgICAgU2VlIGFs c28gaWJ1cy9zcmMvdGVzdHMvaWJ1cy1jb21wb3NlLmVtb2ppIGZpbGUgZm9yIGUuZy4KKysgICAg ICogQGlidXNfY29tcG9zZV9zZXFzXzMyYml0X2ZpcnN0OiBJbmNsdWRlIHRoZSBjb21wb3NlIHNl cXVlbmNlIG9ubHkgaW4KKysgICAgICogICAgIGNhc2UgdGhlIHZhbHVlIGlzIGluY2x1ZGVkIGlu IEBpYnVzX2NvbXBvc2Vfc2Vxc18zMmJpdF9zZWNvbmQuCisrICAgICAqIEBzX3NpemVfdG90YWw6 IFRoZSBudW1iZXIgb2YgY29tcG9zZSBzZXF1ZW5jZXMuCisrICAgICAqIEBzX3NpemVfMTZiaXQ6 IFRoZSBudW1iZXIgb2YgY29tcG9zZSBzZXF1ZW5jZXMgd2hvc2UgdmFsdWUgaXMgb25lCisrICAg ICAqICAgICBjaGFyYWN0ZXIgb25seSBhbmQgd2l0aGluIDE2Yml0LiBJLmUuIHRoZSBudW1iZXIg b2YgdGhlIGNvbXBvc2UKKysgICAgICogICAgIHNlcXVlbmNlIGluIEBpYnVzX2NvbXBvc2Vfc2Vx cyBpcyBAQHNfc2l6ZV8xNmJpdC4gQW5kCisrICAgICAqICAgICBAc19zaXplX3RvdGFsIC0gQHNf c2l6ZV8xNmJpdCBpcyB0aGUgbnVtYmVyIG9mIHRoZSBjb21wb3NlIHNlcXVlbmNlCisrICAgICAq ICAgICBpbiBAaWJ1c19jb21wb3NlX3NlcXNfMzJiaXRfZmlyc3QuCisrICAgICAqIEB2X3NpemVf MzJiaXQ6IFRoZSB0b3RhbCBudW1iZXIgb2YgY29tcG9zZSB2YWx1ZXMuIEVhY2ggbGVuZ3RoIG9m IHRoZQorKyAgICAgKiAgICAgdmFsdWVzIGlzIG1vcmUgdGhhbiBvbmUgY2hhcmFjdGVyIG9yIG9u ZSBvZiB0aGUgdmFsdWUgaXMKKysgICAgICogICAgIG91dHNpZGUgMTZiaXQgYnV0IHdpdGhpbiAz MmJpdC4gSS5lLiBUaGUgc2l6ZSBvZgorKyAgICAgKiAgICAgQGlidXNfY29tcG9zZV9zZXFzXzMy Yml0X3NlY29uZCBpcyBAdl9zaXplXzMyYml0LgorKyAgICAgKiBAdl9pbmRleF8zMmJpdDogRWFj aCBpbmRleCBvZiB0aGUgY29tcG9zZSB2YWx1ZXMgaW4KKysgICAgICogICAgIEBpYnVzX2NvbXBv c2Vfc2Vxc18zMmJpdF9zZWNvbmQgYW5kIHRoaXMgaXMgbm90IGEgZml4ZWQgdmFsdWUgaW4KKysg ICAgICogICAgIHRoaXMgQVBJLiBJZiBhIGNvbXBvc2Ugc2VxdWVuY2UgaXMgZm91bmQgaW4KKysg ICAgICogICAgIEBpYnVzX2NvbXBvc2Vfc2Vxc18zMmJpdF9maXJzdCBhbmQgdGhlIG5leHQgdmFs dWUgaXMgMCwgMCBpcyBsaW5lZAorKyAgICAgKiAgICAgaW4gQGlidXNfY29tcG9zZV9zZXFzXzMy Yml0X2ZpcnN0IHVudGlsIEBtYXhfY29tcG9zZV9sZW4gYWZ0ZXIKKysgICAgICogICAgIHRoZSBm b3VuZCBjb21wb3NlIHNlcXVlbmNlLiBBbmQgdGhlIG5leHQgdmFsdWUgaXMgdGhlIGxlbmd0aCBv ZgorKyAgICAgKiAgICAgdGhlIGNvbXBvc2UgdmFsdWVzIGFuZCB0aGUgbmV4dCB2YWx1ZSBpcyB0 aGUgQHZfaW5kZXhfMzJiaXQsIGkuZS4KKysgICAgICogICAgIHRoZSBpbmRleCBvZiBAaWJ1c19j b21wb3NlX3NlcXNfMzJiaXRfc2Vjb25kLgorKyAgICAgKiAgICAgRS5nLiB0aGUgZm9sbG93aW5n IGxpbmUgY291bGQgYmUgZm91bmQgaW4KKysgICAgICogICAgIEBpYnVzX2NvbXBvc2Vfc2Vxc18z MmJpdF9maXJzdDoKKysgICAgICogICAgICAgICAuLi4sICJVMTdmZiIsICIwIiwgIjAiLCAiMCIs ICIwIiwgMiwgMTAwLCAuLi4KKysgICAgICogICAgIEBpYnVzX2NvbXBvc2Vfc2Vxc18zMmJpdF9z ZWNvbmRbMTAwXSBpcyAi4Z624Z+GIiAgYW5kIHRoZSBjaGFyYWN0ZXIKKysgICAgICogICAgIGxl bmd0aCBpcyAyLgorKyAgICAgKiAgICAgQG1heF9jb21wb3NlX2xlbiBpcyA1IGFuZCBAbl9pbmRl eF9zdHJpZGUgaXMgNy4KKysgICAgICovCisgICAgIGdzaXplIHNfc2l6ZV90b3RhbCwgc19zaXpl XzE2Yml0LCB2X3NpemVfMzJiaXQsIHZfaW5kZXhfMzJiaXQ7CisgICAgIGd1aW50IG4gPSAwLCBt ID0gMDsKKyAgICAgaW50IGksIGo7CitAQCAtOTM1LDEzICs5NzcsMjUgQEAgaWJ1c19jb21wb3Nl X3RhYmxlX25ld193aXRoX2xpc3QgKEdMaXN0ICAgKmNvbXBvc2VfbGlzdCwKKyAgICAgICAgIH0K KyAgICAgfQorIAorLSAgICBpZiAoc19zaXplXzE2Yml0KQorKyAgICBpZiAoc19zaXplXzE2Yml0 KSB7CisgICAgICAgICBpYnVzX2NvbXBvc2Vfc2VxcyA9IGdfbmV3IChndWludDE2LCBzX3NpemVf MTZiaXQgKiBuX2luZGV4X3N0cmlkZSk7CisrICAgICAgICBpZiAoIWlidXNfY29tcG9zZV9zZXFz KSB7CisrICAgICAgICAgICAgZ193YXJuaW5nICgiRmFpbGVkIGdfbmV3Iik7CisrICAgICAgICAg ICAgcmV0dXJuIE5VTEw7CisrICAgICAgICB9CisrICAgIH0KKyAgICAgaWYgKHNfc2l6ZV90b3Rh bCA+IHNfc2l6ZV8xNmJpdCkgeworICAgICAgICAgaWJ1c19jb21wb3NlX3NlcXNfMzJiaXRfZmly c3QgPQorICAgICAgICAgICAgICAgICBnX25ldyAoZ3VpbnQxNiwKKyAgICAgICAgICAgICAgICAg ICAgICAgIChzX3NpemVfdG90YWwgLSBzX3NpemVfMTZiaXQpICogbl9pbmRleF9zdHJpZGUpOwor ICAgICAgICAgaWJ1c19jb21wb3NlX3NlcXNfMzJiaXRfc2Vjb25kID0gZ19uZXcgKGd1aW50MzIs IHZfc2l6ZV8zMmJpdCk7CisrICAgICAgICBpZiAoIWlidXNfY29tcG9zZV9zZXFzXzMyYml0X2Zp cnN0IHx8ICFpYnVzX2NvbXBvc2Vfc2Vxc18zMmJpdF9zZWNvbmQpIHsKKysgICAgICAgICAgICBn X3dhcm5pbmcgKCJGYWlsZWQgZ19uZXciKTsKKysgICAgICAgICAgICBnX2ZyZWUgKGlidXNfY29t cG9zZV9zZXFzKTsKKysgICAgICAgICAgICBnX2ZyZWUgKGlidXNfY29tcG9zZV9zZXFzXzMyYml0 X2ZpcnN0KTsKKysgICAgICAgICAgICBnX2ZyZWUgKGlidXNfY29tcG9zZV9zZXFzXzMyYml0X3Nl Y29uZCk7CisrICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisrICAgICAgICB9CisgICAgIH0KKyAK KyAgICAgdl9pbmRleF8zMmJpdCA9IDA7CitAQCAtOTUxLDMyICsxMDA1LDQ1IEBAIGlidXNfY29t cG9zZV90YWJsZV9uZXdfd2l0aF9saXN0IChHTGlzdCAgICpjb21wb3NlX2xpc3QsCisgCisgICAg ICAgICBpc18zMmJpdCA9IHVuaWNoYXJfbGVuZ3RoIChjb21wb3NlX2RhdGEtPnZhbHVlcykgPiAx ID8gVFJVRSA6CisgICAgICAgICAgICAgICAgIGNvbXBvc2VfZGF0YS0+dmFsdWVzWzBdID49IDB4 RkZGRiA/IFRSVUUgOiBGQUxTRTsKKysgICAgICAgIGlmIChpc18zMmJpdCkgeworKyAgICAgICAg ICAgIGdfYXNzZXJ0IChpYnVzX2NvbXBvc2Vfc2Vxc18zMmJpdF9maXJzdCk7CisrICAgICAgICAg ICAgZ19hc3NlcnQgKGlidXNfY29tcG9zZV9zZXFzXzMyYml0X3NlY29uZCk7CisrICAgICAgICB9 CisgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbWF4X2NvbXBvc2VfbGVuOyBpKyspIHsKKyAgICAg ICAgICAgICBpZiAoY29tcG9zZV9kYXRhLT5zZXF1ZW5jZVtpXSA9PSAwKSB7CisgICAgICAgICAg ICAgICAgIGZvciAoaiA9IGk7IGogPCBtYXhfY29tcG9zZV9sZW47IGorKykgeworLSAgICAgICAg ICAgICAgICAgICAgaWYgKGlzXzMyYml0KQorKyAgICAgICAgICAgICAgICAgICAgaWYgKGlzXzMy Yml0KSB7CisrICAgICAgICAgICAgICAgICAgICAgICAgZ19hc3NlcnQgKG0gPCAoc19zaXplX3Rv dGFsIC0gc19zaXplXzE2Yml0KQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq IG5faW5kZXhfc3RyaWRlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICBpYnVzX2NvbXBvc2Vf c2Vxc18zMmJpdF9maXJzdFttKytdID0gMDsKKy0gICAgICAgICAgICAgICAgICAgIGVsc2UKKysg ICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisrICAgICAgICAgICAgICAgICAgICAgICAgZ19h c3NlcnQgKG4gPCBzX3NpemVfMTZiaXQgKiBuX2luZGV4X3N0cmlkZSk7CisgICAgICAgICAgICAg ICAgICAgICAgICAgaWJ1c19jb21wb3NlX3NlcXNbbisrXSA9IDA7CisrICAgICAgICAgICAgICAg ICAgICB9CisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg ICAgICAgICAgfQorICAgICAgICAgICAgIGlmIChpc18zMmJpdCkgeworKyAgICAgICAgICAgICAg ICBnX2Fzc2VydCAobSA8IChzX3NpemVfdG90YWwgLSBzX3NpemVfMTZiaXQpICogbl9pbmRleF9z dHJpZGUpOworICAgICAgICAgICAgICAgICBpYnVzX2NvbXBvc2Vfc2Vxc18zMmJpdF9maXJzdFtt KytdID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAoZ3VpbnQxNikgY29tcG9zZV9kYXRhLT5z ZXF1ZW5jZVtpXTsKKyAgICAgICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICAgICAgICBnX2Fz c2VydCAobiA8IHNfc2l6ZV8xNmJpdCAqIG5faW5kZXhfc3RyaWRlKTsKKyAgICAgICAgICAgICAg ICAgaWJ1c19jb21wb3NlX3NlcXNbbisrXSA9IChndWludDE2KSBjb21wb3NlX2RhdGEtPnNlcXVl bmNlW2ldOworICAgICAgICAgICAgIH0KKyAgICAgICAgIH0KKyAgICAgICAgIGlmIChpc18zMmJp dCkgeworICAgICAgICAgICAgIGZvciAoaiA9IDA7IGNvbXBvc2VfZGF0YS0+dmFsdWVzW2pdOyBq KyspIHsKKysgICAgICAgICAgICAgICAgZ19hc3NlcnQgKHZfaW5kZXhfMzJiaXQgKyBqIDwgIHZf c2l6ZV8zMmJpdCk7CisgICAgICAgICAgICAgICAgIGlidXNfY29tcG9zZV9zZXFzXzMyYml0X3Nl Y29uZFt2X2luZGV4XzMyYml0ICsgal0gPQorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBv c2VfZGF0YS0+dmFsdWVzW2pdOworICAgICAgICAgICAgIH0KKysgICAgICAgICAgICBnX2Fzc2Vy dCAobSArIDEgPCAoc19zaXplX3RvdGFsIC0gc19zaXplXzE2Yml0KSAqIG5faW5kZXhfc3RyaWRl KTsKKyAgICAgICAgICAgICBpYnVzX2NvbXBvc2Vfc2Vxc18zMmJpdF9maXJzdFttKytdID0gajsK KyAgICAgICAgICAgICBpYnVzX2NvbXBvc2Vfc2Vxc18zMmJpdF9maXJzdFttKytdID0gdl9pbmRl eF8zMmJpdDsKKyAgICAgICAgICAgICB2X2luZGV4XzMyYml0ICs9IGo7CisgICAgICAgICB9IGVs c2UgeworKyAgICAgICAgICAgIGdfYXNzZXJ0IChuICsgMSA8IHNfc2l6ZV8xNmJpdCAqIG5faW5k ZXhfc3RyaWRlKTsKKyAgICAgICAgICAgICBpYnVzX2NvbXBvc2Vfc2Vxc1tuKytdID0gKGd1aW50 MTYpIGNvbXBvc2VfZGF0YS0+dmFsdWVzWzBdOworICAgICAgICAgICAgIGlidXNfY29tcG9zZV9z ZXFzW24rK10gPSAwOworICAgICAgICAgfQorZGlmZiAtLWdpdCBhL3NyYy9pYnVzZW1vamkuYyBi L3NyYy9pYnVzZW1vamkuYworaW5kZXggYWU4OTA3YTIuLmRmOTcyNjRiIDEwMDY0NAorLS0tIGEv c3JjL2lidXNlbW9qaS5jCisrKysgYi9zcmMvaWJ1c2Vtb2ppLmMKK0BAIC0xLDcgKzEsNyBAQAor IC8qIC0qLSBtb2RlOiBDOyBjLWJhc2ljLW9mZnNldDogNDsgaW5kZW50LXRhYnMtbW9kZTogbmls OyAtKi0gKi8KKyAvKiB2aW06c2V0IGV0IHN0cz00OiAqLworIC8qIGJ1cyAtIFRoZSBJbnB1dCBC dXMKKy0gKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAxOSBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVq aXdhcmExQGdtYWlsLmNvbT4KKysgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMSBUYWthbyBGdWpp d2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KKyAgKiBDb3B5cmlnaHQgKEMpIDIwMTct MjAxOSBSZWQgSGF0LCBJbmMuCisgICoKKyAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCitAQCAtNDk3LDcgKzQ5NywxMSBAQCBp YnVzX2Vtb2ppX2RhdGFfc2F2ZSAoY29uc3QgZ2NoYXIgKnBhdGgsCisgCisgICAgIGRpciA9IGdf cGF0aF9nZXRfZGlybmFtZSAocGF0aCk7CisgICAgIGlmIChnX3N0cmNtcDAgKGRpciwgIi4iKSAh PSAwICYmIGdfc3RhdCAoZGlyLCAmYnVmKSAhPSAwKSB7CistICAgICAgICBnX21rZGlyX3dpdGhf cGFyZW50cyAoZGlyLCAwNzc3KTsKKysgICAgICAgIGVycm5vID0gMDsKKysgICAgICAgIGlmIChn X21rZGlyX3dpdGhfcGFyZW50cyAoZGlyLCAwNzc3KSkgeworKyAgICAgICAgICAgIGdfd2Fybmlu ZyAoIkZhaWxlZCBta2RpciAlczogJXMiLCBkaXIsIGdfc3RyZXJyb3IgKGVycm5vKSk7CisrICAg ICAgICAgICAgcmV0dXJuOworKyAgICAgICAgfQorICAgICB9CisgICAgIGdfZnJlZSAoZGlyKTsK KyAgICAgaWYgKCFnX2ZpbGVfc2V0X2NvbnRlbnRzIChwYXRoLCBjb250ZW50cywgbGVuZ3RoLCAm ZXJyb3IpKSB7CitkaWZmIC0tZ2l0IGEvc3JjL2lidXNlbmdpbmVzaW1wbGUuYyBiL3NyYy9pYnVz ZW5naW5lc2ltcGxlLmMKK2luZGV4IDQzYmQ1MjgzLi42ZGJjMzljNyAxMDA2NDQKKy0tLSBhL3Ny Yy9pYnVzZW5naW5lc2ltcGxlLmMKKysrKyBiL3NyYy9pYnVzZW5naW5lc2ltcGxlLmMKK0BAIC0y LDcgKzIsNyBAQAorIC8qIHZpbTpzZXQgZXQgc3RzPTQ6ICovCisgLyogaWJ1cyAtIFRoZSBJbnB1 dCBCdXMKKyAgKiBDb3B5cmlnaHQgKEMpIDIwMTQgUGVuZyBIdWFuZyA8c2hhd24ucC5odWFuZ0Bn bWFpbC5jb20+CistICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTkgVGFrYW8gRnVqaXdhcmEgPHRh a2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CisrICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMjEgVGFr YW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CisgICogQ29weXJpZ2h0IChD KSAyMDE0LTIwMTcgUmVkIEhhdCwgSW5jLgorICAqCisgICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorQEAgLTQ2NiwxMSArNDY2 LDE1IEBAIGNoZWNrX2hleCAoSUJ1c0VuZ2luZVNpbXBsZSAqc2ltcGxlLAorIAorICAgICAgICAg Y2ggPSBpYnVzX2tleXZhbF90b191bmljb2RlIChwcml2LT5jb21wb3NlX2J1ZmZlcltpXSk7Cisg CistICAgICAgICBpZiAoY2ggPT0gMCkKKysgICAgICAgIGlmIChjaCA9PSAwKSB7CisrICAgICAg ICAgICAgZ19zdHJpbmdfZnJlZSAoc3RyLCBUUlVFKTsKKyAgICAgICAgICAgICByZXR1cm4gRkFM U0U7CisrICAgICAgICB9CisgCistICAgICAgICBpZiAoIWdfdW5pY2hhcl9pc3hkaWdpdCAoY2gp KQorKyAgICAgICAgaWYgKCFnX3VuaWNoYXJfaXN4ZGlnaXQgKGNoKSkgeworKyAgICAgICAgICAg IGdfc3RyaW5nX2ZyZWUgKHN0ciwgVFJVRSk7CisgICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwor KyAgICAgICAgfQorIAorICAgICAgICAgYnVmW2dfdW5pY2hhcl90b191dGY4IChjaCwgYnVmKV0g PSAnXDAnOworIAorQEAgLTQ4Nyw4ICs0OTEsOSBAQCBjaGVja19oZXggKElCdXNFbmdpbmVTaW1w bGUgKnNpbXBsZSwKKyAgICAgaWYgKG5wdHIgLSBzdHItPnN0ciA8IHN0ci0+bGVuKSB7CisgICAg ICAgICBnX3N0cmluZ19mcmVlIChzdHIsIFRSVUUpOworICAgICAgICAgcmV0dXJuIEZBTFNFOwor LSAgICB9IGVsc2UKKysgICAgfSBlbHNlIHsKKyAgICAgICAgIGdfc3RyaW5nX2ZyZWUgKHN0ciwg VFJVRSk7CisrICAgIH0KKyAKKyAgICAgaWYgKGdfdW5pY2hhcl92YWxpZGF0ZSAobikpIHsKKyAg ICAgICAgIHByaXYtPnRlbnRhdGl2ZV9tYXRjaCA9IG47CitAQCAtNTU5LDExICs1NjQsMTUgQEAg Y2hlY2tfZW1vamlfdGFibGUgKElCdXNFbmdpbmVTaW1wbGUgICAgICAgKnNpbXBsZSwKKyAKKyAg ICAgICAgIGNoID0gaWJ1c19rZXl2YWxfdG9fdW5pY29kZSAocHJpdi0+Y29tcG9zZV9idWZmZXJb aV0pOworIAorLSAgICAgICAgaWYgKGNoID09IDApCisrICAgICAgICBpZiAoY2ggPT0gMCkgewor KyAgICAgICAgICAgIGdfc3RyaW5nX2ZyZWUgKHN0ciwgVFJVRSk7CisgICAgICAgICAgICAgcmV0 dXJuIEZBTFNFOworKyAgICAgICAgfQorIAorLSAgICAgICAgaWYgKCFnX3VuaWNoYXJfaXNwcmlu dCAoY2gpKQorKyAgICAgICAgaWYgKCFnX3VuaWNoYXJfaXNwcmludCAoY2gpKSB7CisrICAgICAg ICAgICAgZ19zdHJpbmdfZnJlZSAoc3RyLCBUUlVFKTsKKyAgICAgICAgICAgICByZXR1cm4gRkFM U0U7CisrICAgICAgICB9CisgCisgICAgICAgICBidWZbZ191bmljaGFyX3RvX3V0ZjggKGNoLCBi dWYpXSA9ICdcMCc7CisgCitkaWZmIC0tZ2l0IGEvc3JjL2lidXNob3RrZXkuYyBiL3NyYy9pYnVz aG90a2V5LmMKK2luZGV4IGQ0YWI3YzIzLi5lNzJiODMwNSAxMDA2NDQKKy0tLSBhL3NyYy9pYnVz aG90a2V5LmMKKysrKyBiL3NyYy9pYnVzaG90a2V5LmMKK0BAIC0yLDcgKzIsNyBAQAorIC8qIHZp bTpzZXQgZXQgc3RzPTQ6ICovCisgLyogSUJ1cyAtIFRoZSBJbnB1dCBCdXMKKyAgKiBDb3B5cmln aHQgKEMpIDIwMDgtMjAxMCBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KKy0g KiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAxOSBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmEx QGdtYWlsLmNvbT4KKysgKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAyMSBUYWthbyBGdWppd2FyYSA8 dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KKyAgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxOSBS ZWQgSGF0LCBJbmMuCisgICoKKyAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCitAQCAtMzczLDYgKzM3Myw4IEBAIGlidXNfaG90 a2V5X3Byb2ZpbGVfYWRkX2hvdGtleSAoSUJ1c0hvdGtleVByb2ZpbGUgKnByb2ZpbGUsCisgICAg ICAgICBwLT5ldmVudCA9IGV2ZW50OworICAgICB9CisgCisrICAgIGlmICghcCkKKysgICAgICAg IHJldHVybiBGQUxTRTsKKyAgICAgcC0+aG90a2V5cyA9IGdfbGlzdF9hcHBlbmQgKHAtPmhvdGtl eXMsIGhvdGtleSk7CisgCisgICAgIHJldHVybiBUUlVFOworZGlmZiAtLWdpdCBhL3NyYy9pYnVz cmVnaXN0cnkuYyBiL3NyYy9pYnVzcmVnaXN0cnkuYworaW5kZXggMzM4NmE1ZDEuLjIzYzVjYTFi IDEwMDY0NAorLS0tIGEvc3JjL2lidXNyZWdpc3RyeS5jCisrKysgYi9zcmMvaWJ1c3JlZ2lzdHJ5 LmMKK0BAIC0yLDcgKzIsNyBAQAorIC8qIHZpbTpzZXQgZXQgc3RzPTQ6ICovCisgLyogYnVzIC0g VGhlIElucHV0IEJ1cworICAqIENvcHlyaWdodCAoQykgMjAxNSBQZW5nIEh1YW5nIDxzaGF3bi5w Lmh1YW5nQGdtYWlsLmNvbT4KKy0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAyMCBUYWthbyBGdWpp d2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KKysgKiBDb3B5cmlnaHQgKEMpIDIwMTUt MjAyMSBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KKyAgKiBDb3B5 cmlnaHQgKEMpIDIwMTUtMjAyMCBSZWQgSGF0LCBJbmMuCisgICoKKyAgKiBUaGlzIGxpYnJhcnkg aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCitAQCAtNDM4 LDcgKzQzOCwxMiBAQCBpYnVzX3JlZ2lzdHJ5X3NhdmVfY2FjaGVfZmlsZSAoSUJ1c1JlZ2lzdHJ5 ICpyZWdpc3RyeSwKKyAgICAgZ19hc3NlcnQgKGZpbGVuYW1lICE9IE5VTEwpOworIAorICAgICBj YWNoZWRpciA9IGdfcGF0aF9nZXRfZGlybmFtZSAoZmlsZW5hbWUpOworLSAgICBnX21rZGlyX3dp dGhfcGFyZW50cyAoY2FjaGVkaXIsIDA3NzUpOworKyAgICBlcnJubyA9IDA7CisrICAgIGlmIChn X21rZGlyX3dpdGhfcGFyZW50cyAoY2FjaGVkaXIsIDA3NzUpKSB7CisrICAgICAgICBnX3dhcm5p bmcgKCJGYWlsZWQgdG8gbWtkaXIgJXM6ICVzIiwgY2FjaGVkaXIsIGdfc3RyZXJyb3IgKGVycm5v KSk7CisrICAgICAgICBnX2ZyZWUgKGNhY2hlZGlyKTsKKysgICAgICAgIHJldHVybiBGQUxTRTsK KysgICAgfQorICAgICBnX2ZyZWUgKGNhY2hlZGlyKTsKKyAKKyAgICAgdmFyaWFudCA9IGlidXNf c2VyaWFsaXphYmxlX3NlcmlhbGl6ZSAoSUJVU19TRVJJQUxJWkFCTEUgKHJlZ2lzdHJ5KSk7Citk aWZmIC0tZ2l0IGEvc3JjL2lidXNzaGFyZS5jIGIvc3JjL2lidXNzaGFyZS5jCitpbmRleCBlMGVm MmNlMC4uODk3NDUxMWEgMTAwNjQ0CistLS0gYS9zcmMvaWJ1c3NoYXJlLmMKKysrKyBiL3NyYy9p YnVzc2hhcmUuYworQEAgLTIsNyArMiw3IEBACisgLyogdmltOnNldCBldCBzdHM9NDogKi8KKyAv KiBpYnVzIC0gVGhlIElucHV0IEJ1cworICAqIENvcHlyaWdodCAoQykgMjAwOC0yMDEwIFBlbmcg SHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgorLSAqIENvcHlyaWdodCAoQykgMjAxNS0y MDE4IFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgorKyAqIENvcHly aWdodCAoQykgMjAxNS0yMDIxIFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwu Y29tPgorICAqIENvcHlyaWdodCAoQykgMjAwOC0yMDE4IFJlZCBIYXQsIEluYy4KKyAgKgorICAq IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IKK0BAIC0xOTcsMjIgKzE5NywxNyBAQCBpYnVzX2dldF9hZGRyZXNzICh2b2lkKQorICAg ICBGSUxFICpwZjsKKyAKKyAgICAgLyogZnJlZSBhZGRyZXNzICovCistICAgIGlmIChhZGRyZXNz ICE9IE5VTEwpIHsKKy0gICAgICAgIGdfZnJlZSAoYWRkcmVzcyk7CistICAgICAgICBhZGRyZXNz ID0gTlVMTDsKKy0gICAgfQorKyAgICBnX2NsZWFyX3BvaW50ZXIgKCZhZGRyZXNzLCBnX2ZyZWUp OworIAorICAgICAvKiBnZXQgYWRkcmVzcyBmcm9tIGVudiB2YXJpYWJsZSAqLworICAgICBhZGRy ZXNzID0gZ19zdHJkdXAgKGdfZ2V0ZW52ICgiSUJVU19BRERSRVNTIikpOworLSAgICBpZiAoYWRk cmVzcykgeworKyAgICBpZiAoYWRkcmVzcykKKyAgICAgICAgIHJldHVybiBhZGRyZXNzOworLSAg ICB9CisgCisgICAgIC8qIHJlYWQgYWRkcmVzcyBmcm9tIH4vLmNvbmZpZy9pYnVzL2J1cy9zb2tl dGZpbGUgKi8KKyAgICAgcGYgPSBmb3BlbiAoaWJ1c19nZXRfc29ja2V0X3BhdGggKCksICJyIik7 CistICAgIGlmIChwZiA9PSBOVUxMKSB7CisrICAgIGlmIChwZiA9PSBOVUxMKQorICAgICAgICAg cmV0dXJuIE5VTEw7CistICAgIH0KKyAKKyAgICAgd2hpbGUgKCFmZW9mIChwZikpIHsKKyAgICAg ICAgIGdjaGFyICpwID0gYnVmZmVyOworQEAgLTIyNCwxMSArMjE5LDEyIEBAIGlidXNfZ2V0X2Fk ZHJlc3MgKHZvaWQpCisgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAvKiBwYXJzZSBJ QlVTX0FERFJFU1MgKi8KKyAgICAgICAgIGlmIChzdHJuY21wIChwLCAiSUJVU19BRERSRVNTPSIs IHNpemVvZiAoIklCVVNfQUREUkVTUz0iKSAtIDEpID09IDApIHsKKy0gICAgICAgICAgICBhZGRy ZXNzID0gcCArIHNpemVvZiAoIklCVVNfQUREUkVTUz0iKSAtIDE7CistICAgICAgICAgICAgZm9y IChwID0gKGdjaGFyICopYWRkcmVzczsgKnAgIT0gJ1xuJyAmJiAqcCAhPSAnXDAnOyBwKyspOwor KyAgICAgICAgICAgIGdjaGFyICpoZWFkID0gcCArIHNpemVvZiAoIklCVVNfQUREUkVTUz0iKSAt IDE7CisrICAgICAgICAgICAgZm9yIChwID0gaGVhZDsgKnAgIT0gJ1xuJyAmJiAqcCAhPSAnXDAn OyBwKyspOworICAgICAgICAgICAgIGlmICgqcCA9PSAnXG4nKQorICAgICAgICAgICAgICAgICAq cCA9ICdcMCc7CistICAgICAgICAgICAgYWRkcmVzcyA9IGdfc3RyZHVwIChhZGRyZXNzKTsKKysg ICAgICAgICAgICBnX2ZyZWUgKGFkZHJlc3MpOworKyAgICAgICAgICAgIGFkZHJlc3MgPSBnX3N0 cmR1cCAoaGVhZCk7CisgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICB9CisgCitAQCAt MjQxLDkgKzIzNyw4IEBAIGlidXNfZ2V0X2FkZHJlc3MgKHZvaWQpCisgICAgIH0KKyAgICAgZmNs b3NlIChwZik7CisgCistICAgIGlmIChwaWQgPT0gLTEgfHwga2lsbCAocGlkLCAwKSAhPSAwKSB7 CisrICAgIGlmIChwaWQgPT0gLTEgfHwga2lsbCAocGlkLCAwKSAhPSAwKQorICAgICAgICAgcmV0 dXJuIE5VTEw7CistICAgIH0KKyAKKyAgICAgcmV0dXJuIGFkZHJlc3M7CisgfQorQEAgLTI1Niwx MCArMjUxLDE5IEBAIGlidXNfd3JpdGVfYWRkcmVzcyAoY29uc3QgZ2NoYXIgKmFkZHJlc3MpCisg ICAgIGdfcmV0dXJuX2lmX2ZhaWwgKGFkZHJlc3MgIT0gTlVMTCk7CisgCisgICAgIHBhdGggPSBn X3BhdGhfZ2V0X2Rpcm5hbWUgKGlidXNfZ2V0X3NvY2tldF9wYXRoICgpKTsKKy0gICAgZ19ta2Rp cl93aXRoX3BhcmVudHMgKHBhdGgsIDA3MDApOworKyAgICBlcnJubyA9IDA7CisrICAgIGlmIChn X21rZGlyX3dpdGhfcGFyZW50cyAocGF0aCwgMDcwMCkpIHsKKysgICAgICAgIGdfd2FybmluZyAo IkZhaWxlZCB0byBta2RpciAlczogJXMiLCBwYXRoLCBnX3N0cmVycm9yIChlcnJubykpOworKyAg ICAgICAgZ19mcmVlIChwYXRoKTsKKysgICAgICAgIHJldHVybjsKKysgICAgfQorICAgICBnX2Zy ZWUgKHBhdGgpOworIAorLSAgICBnX3VubGluayAoaWJ1c19nZXRfc29ja2V0X3BhdGggKCkpOwor KyAgICBlcnJubyA9IDA7CisrICAgIGlmIChnX3VubGluayAoaWJ1c19nZXRfc29ja2V0X3BhdGgg KCkpKSB7CisrICAgICAgICBnX3dhcm5pbmcgKCJGYWlsZWQgdG8gdW5saW5rICVzOiAlcyIsCisr ICAgICAgICAgICAgICAgICAgIGlidXNfZ2V0X3NvY2tldF9wYXRoICgpLCBnX3N0cmVycm9yIChl cnJubykpOworKyAgICB9CisgICAgIHBmID0gZm9wZW4gKGlidXNfZ2V0X3NvY2tldF9wYXRoICgp LCAidyIpOworICAgICBnX3JldHVybl9pZl9mYWlsIChwZiAhPSBOVUxMKTsKKyAKK2RpZmYgLS1n aXQgYS9zcmMvaWJ1c3RleHQuYyBiL3NyYy9pYnVzdGV4dC5jCitpbmRleCBhNWUzYzQzYi4uZWQw ZmU2NjYgMTAwNjQ0CistLS0gYS9zcmMvaWJ1c3RleHQuYworKysrIGIvc3JjL2lidXN0ZXh0LmMK K0BAIC0yLDcgKzIsOCBAQAorIC8qIHZpbTpzZXQgZXQgc3RzPTQ6ICovCisgLyogSUJ1cyAtIFRo ZSBJbnB1dCBCdXMKKyAgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxMCBQZW5nIEh1YW5nIDxzaGF3 bi5wLmh1YW5nQGdtYWlsLmNvbT4KKy0gKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxMCBSZWQgSGF0 LCBJbmMuCisrICogQ29weXJpZ2h0IChDKSAyMDExLTIwMjEgVGFrYW8gRnVqaXdhcmEgPHRha2Fv LmZ1aml3YXJhMUBnbWFpbC5jb20+CisrICogQ29weXJpZ2h0IChDKSAyMDA4LTIwMjEgUmVkIEhh dCwgSW5jLgorICAqCisgICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKK0BAIC0yMjAsNyArMjIxLDcgQEAgaWJ1c190 ZXh0X25ld19mcm9tX3VuaWNoYXIgKGd1bmljaGFyIGMpCisgICAgIHRleHQ9IGdfb2JqZWN0X25l dyAoSUJVU19UWVBFX1RFWFQsIE5VTEwpOworIAorICAgICB0ZXh0LT5pc19zdGF0aWMgPSBGQUxT RTsKKy0gICAgdGV4dC0+dGV4dCA9IChnY2hhciAqKWdfbWFsbG9jICgxMik7CisrICAgIGdfcmV0 dXJuX3ZhbF9pZl9mYWlsICgodGV4dC0+dGV4dCA9IChnY2hhciAqKWdfbWFsbG9jICgxMikpLCBO VUxMKTsKKyAgICAgbGVuID0gZ191bmljaGFyX3RvX3V0ZjggKGMsIHRleHQtPnRleHQpOworICAg ICB0ZXh0LT50ZXh0W2xlbl0gPSAgMDsKKyAKK2RpZmYgLS1naXQgYS9zcmMvaWJ1c3VuaWNvZGUu YyBiL3NyYy9pYnVzdW5pY29kZS5jCitpbmRleCA5ZTZmNmIyYi4uZjdhODk3ZDEgMTAwNjQ0Cist LS0gYS9zcmMvaWJ1c3VuaWNvZGUuYworKysrIGIvc3JjL2lidXN1bmljb2RlLmMKK0BAIC0xLDgg KzEsOCBAQAorIC8qIC0qLSBtb2RlOiBDOyBjLWJhc2ljLW9mZnNldDogNDsgaW5kZW50LXRhYnMt bW9kZTogbmlsOyAtKi0gKi8KKyAvKiB2aW06c2V0IGV0IHN0cz00OiAqLworIC8qIGJ1cyAtIFRo ZSBJbnB1dCBCdXMKKy0gKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAxOSBUYWthbyBGdWppd2FyYSA8 dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KKy0gKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAxOSBS ZWQgSGF0LCBJbmMuCisrICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMjEgVGFrYW8gRnVqaXdhcmEg PHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CisrICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMjEg UmVkIEhhdCwgSW5jLgorICAqCisgICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKK0BAIC00NzIsNyArNDcyLDEyIEBA IGlidXNfdW5pY29kZV9kYXRhX3NhdmUgKGNvbnN0IGdjaGFyICpwYXRoLAorIAorICAgICBkaXIg PSBnX3BhdGhfZ2V0X2Rpcm5hbWUgKHBhdGgpOworICAgICBpZiAoZ19zdHJjbXAwIChkaXIsICIu IikgIT0gMCAmJiBnX3N0YXQgKGRpciwgJmJ1ZikgIT0gMCkgeworLSAgICAgICAgZ19ta2Rpcl93 aXRoX3BhcmVudHMgKGRpciwgMDc3Nyk7CisrICAgICAgICBlcnJubyA9IDA7CisrICAgICAgICBp ZiAoZ19ta2Rpcl93aXRoX3BhcmVudHMgKGRpciwgMDc3NykpIHsKKysgICAgICAgICAgICBnX3dh cm5pbmcgKCJGYWlsZWQgdG8gbWtkaXIgJXM6ICVzIiwgZGlyLCBnX3N0cmVycm9yIChlcnJubykp OworKyAgICAgICAgICAgIHJldHVybjsKKysgICAgICAgIH0KKysKKyAgICAgfQorICAgICBnX2Zy ZWUgKGRpcik7CisgICAgIGlmICghZ19maWxlX3NldF9jb250ZW50cyAocGF0aCwgY29udGVudHMs IGxlbmd0aCwgJmVycm9yKSkgeworQEAgLTk2Nyw3ICs5NzIsMTEgQEAgaWJ1c191bmljb2RlX2Js b2NrX3NhdmUgKGNvbnN0IGdjaGFyICpwYXRoLAorIAorICAgICBkaXIgPSBnX3BhdGhfZ2V0X2Rp cm5hbWUgKHBhdGgpOworICAgICBpZiAoZ19zdHJjbXAwIChkaXIsICIuIikgIT0gMCAmJiBnX3N0 YXQgKGRpciwgJmJ1ZikgIT0gMCkgeworLSAgICAgICAgZ19ta2Rpcl93aXRoX3BhcmVudHMgKGRp ciwgMDc3Nyk7CisrICAgICAgICBlcnJubyA9IDA7CisrICAgICAgICBpZiAoZ19ta2Rpcl93aXRo X3BhcmVudHMgKGRpciwgMDc3NykpIHsKKysgICAgICAgICAgICBnX3dhcm5pbmcgKCJGYWlsZWQg dG8gbWtkaXIgJXM6ICVzIiwgZGlyLCBnX3N0cmVycm9yIChlcnJubykpOworKyAgICAgICAgICAg IHJldHVybjsKKysgICAgICAgIH0KKyAgICAgfQorICAgICBnX2ZyZWUgKGRpcik7CisgICAgIGlm ICghZ19maWxlX3NldF9jb250ZW50cyAocGF0aCwgY29udGVudHMsIGxlbmd0aCwgJmVycm9yKSkg eworZGlmZiAtLWdpdCBhL3NyYy90ZXN0cy9pYnVzLWNvbXBvc2UuYyBiL3NyYy90ZXN0cy9pYnVz LWNvbXBvc2UuYworaW5kZXggNGI0YzU2ZTcuLjgxYmZjNjliIDEwMDY0NAorLS0tIGEvc3JjL3Rl c3RzL2lidXMtY29tcG9zZS5jCisrKysgYi9zcmMvdGVzdHMvaWJ1cy1jb21wb3NlLmMKK0BAIC0z NjAsMTEgKzM2MCwxMyBAQCBtYWluIChpbnQgYXJnYywgY2hhciAqYXJndltdKQorICAgICAvKiBB dm9pZCBhIHdhcm5pbmcgb2YgIkFULVNQSTogQ291bGQgbm90IG9idGFpbiBkZXNrdG9wIHBhdGgg b3IgbmFtZSIKKyAgICAgICogd2l0aCBndGtfbWFpbigpLgorICAgICAgKi8KKy0gICAgZ19zZXRl bnYgKCJOT19BVF9CUklER0UiLCAiMSIsIFRSVUUpOworKyAgICBpZiAoIWdfc2V0ZW52ICgiTk9f QVRfQlJJREdFIiwgIjEiLCBUUlVFKSkKKysgICAgICAgIGdfbWVzc2FnZSAoIkZhaWxlZCBzZXRl bnYgTk9fQVRfQlJJREdFXG4iKTsKKyAgICAgZ190ZXN0X2luaXQgKCZhcmdjLCAmYXJndiwgTlVM TCk7CisgICAgIGd0a19pbml0ICgmYXJnYywgJmFyZ3YpOworIAorLSAgICBtX3NyY2RpciA9IGFy Z2MgPiAxID8gZ19zdHJkdXAgKGFyZ3ZbMV0pIDogZ19zdHJkdXAgKCIuIik7CisrICAgIG1fc3Jj ZGlyID0gKGFyZ2MgPiAxICYmIHN0cmxlbiAoYXJndlsxXSkgPCBGSUxFTkFNRV9NQVgpCisrICAg ICAgICAgICAgPyBnX3N0cmR1cCAoYXJndlsxXSkgOiBnX3N0cmR1cCAoIi4iKTsKKyAgICAgbV9j b21wb3NlX2ZpbGUgPSBnX3N0cmR1cCAoZ19nZXRlbnYgKCJDT01QT1NFX0ZJTEUiKSk7CisgI2lm IEdMSUJfQ0hFQ0tfVkVSU0lPTiAoMiwgNTgsIDApCisgICAgIHRlc3RfbmFtZSA9IGdfZ2V0X2xh bmd1YWdlX25hbWVzX3dpdGhfY2F0ZWdvcnkgKCJMQ19DVFlQRSIpWzBdOworZGlmZiAtLWdpdCBh L3NyYy90ZXN0cy9pYnVzLWtleXByZXNzLmMgYi9zcmMvdGVzdHMvaWJ1cy1rZXlwcmVzcy5jCitp bmRleCBkZDFiMDA0Mi4uYmFiMDUzOTggMTAwNjQ0CistLS0gYS9zcmMvdGVzdHMvaWJ1cy1rZXlw cmVzcy5jCisrKysgYi9zcmMvdGVzdHMvaWJ1cy1rZXlwcmVzcy5jCitAQCAtMjkxLDcgKzI5MSw4 IEBAIG1haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pCisgICAgIC8qIEF2b2lkIGEgd2Fybmlu ZyBvZiAiQVQtU1BJOiBDb3VsZCBub3Qgb2J0YWluIGRlc2t0b3AgcGF0aCBvciBuYW1lIgorICAg ICAgKiB3aXRoIGd0a19tYWluKCkuCisgICAgICAqLworLSAgICBnX3NldGVudiAoIk5PX0FUX0JS SURHRSIsICIxIiwgVFJVRSk7CisrICAgIGlmICghZ19zZXRlbnYgKCJOT19BVF9CUklER0UiLCAi MSIsIFRSVUUpKQorKyAgICAgICAgZ19tZXNzYWdlICgiRmFpbGVkIHNldGVudiBOT19BVF9CUklE R0VcbiIpOworICAgICBnX3Rlc3RfaW5pdCAoJmFyZ2MsICZhcmd2LCBOVUxMKTsKKyAgICAgZ3Rr X2luaXQgKCZhcmdjLCAmYXJndik7CisgCitkaWZmIC0tZ2l0IGEvc3JjL3VuaWNvZGUtcGFyc2Vy LmMgYi9zcmMvdW5pY29kZS1wYXJzZXIuYworaW5kZXggYjQzMDNlYTguLjJjNGViNjc3IDEwMDY0 NAorLS0tIGEvc3JjL3VuaWNvZGUtcGFyc2VyLmMKKysrKyBiL3NyYy91bmljb2RlLXBhcnNlci5j CitAQCAtMSw4ICsxLDggQEAKKyAvKiAtKi0gbW9kZTogQzsgYy1iYXNpYy1vZmZzZXQ6IDQ7IGlu ZGVudC10YWJzLW1vZGU6IG5pbDsgLSotICovCisgLyogdmltOnNldCBldCBzdHM9NDogKi8KKyAv KiBpYnVzIC0gVGhlIElucHV0IEJ1cworLSAqIENvcHlyaWdodCAoQykgMjAxOCBUYWthbyBGdWpp d2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KKy0gKiBDb3B5cmlnaHQgKEMpIDIwMTgg UmVkIEhhdCwgSW5jLgorKyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDIxIFRha2FvIEZ1aml3YXJh IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgorKyAqIENvcHlyaWdodCAoQykgMjAxOC0yMDIx IFJlZCBIYXQsIEluYy4KKyAgKgorICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5 b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl cm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCitAQCAtNzYsMTEgKzc2LDkgQEAg dW5pY29kZV9kYXRhX25ld19vYmplY3QgKFVuaWNvZGVEYXRhICpkYXRhKQorICAgICAgICAgICAg IGlidXNfdW5pY29kZV9kYXRhX25ldyAoImNvZGUiLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZGF0YS0+Y29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJuYW1lIiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtPm5h bWUgPyBnX3N0cmR1cCAoZGF0YS0+bmFtZSkKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgOiBnX3N0cmR1cCAoIiIpLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZGF0YS0+bmFtZSA/IGRhdGEtPm5hbWUgOiAiIiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJhbGlhcyIsCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkYXRhLT5hbGlhcyA/IGdfc3RyZHVwIChkYXRhLT5hbGlhcykKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBnX3N0cmR1cCAoIiIpLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS0+YWxpYXMgPyBkYXRhLT5hbGlh cyA6ICIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisgICAg IGRhdGEtPmxpc3QgPSBnX3NsaXN0X2FwcGVuZCAoZGF0YS0+bGlzdCwgdW5pY29kZSk7CisgfQor QEAgLTk4LDggKzk2LDcgQEAgdW5pY29kZV9ibG9ja19uZXdfb2JqZWN0IChVbmljb2RlRGF0YSAq ZGF0YSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZW5kIiwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLT5lbmQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiLAorLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRhdGEtPm5hbWUgPyBnX3N0cmR1cCAoZGF0YS0+bmFtZSkKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBnX3N0cmR1cCAoIiIpLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtPm5hbWUgPyBkYXRhLT5uYW1l IDogIiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyAgICAg ZGF0YS0+bGlzdCA9IGdfc2xpc3RfYXBwZW5kIChkYXRhLT5saXN0LCBibG9jayk7CisgfQorQEAg LTI4NSw3ICsyODIsNyBAQCB1Y2RfcGFyc2VfZmlsZSAoY29uc3QgZ2NoYXIgKmZpbGVuYW1lLAor ICAgICAgICAgICAgICAgICAgICBmaWxlbmFtZSwgZXJyb3IgPyBlcnJvci0+bWVzc2FnZSA6ICIi KTsKKyAgICAgICAgIGdvdG8gZmFpbGVkX3RvX3BhcnNlX3VjZF9uYW1lc19saXN0OworICAgICB9 CistICAgIGhlYWQgPSBlbmQgPSBjb250ZW50OworKyAgICBlbmQgPSBjb250ZW50OworICAgICB3 aGlsZSAoKmVuZCA9PSAnXG4nICYmIGVuZCAtIGNvbnRlbnQgPCBsZW5ndGgpIHsKKyAgICAgICAg IGVuZCsrOworICAgICAgICAgbisrOworQEAgLTM1Miw2ICszNDksNyBAQCBzdGF0aWMgdm9pZAor IGJsb2NrX2xpc3RfZHVtcCAoSUJ1c1VuaWNvZGVCbG9jayAqYmxvY2ssCisgICAgICAgICAgICAg ICAgICBHU3RyaW5nICAgICAgICAgICpidWZmKQorIHsKKysgICAgZ2NoYXIgKmxpbmU7CisgICAg IGdfcmV0dXJuX2lmX2ZhaWwgKGJ1ZmYgIT0gTlVMTCk7CisgCisgICAgIGdfc3RyaW5nX2FwcGVu ZCAoYnVmZiwgIiAgICAvKiBUUkFOU0xBVE9SUzogWW91IG1pZ2h0IHJlZmVyIHRoZSAiICAgICAg ICAgXAorQEAgLTM1OSw5ICszNTcsMTAgQEAgYmxvY2tfbGlzdF9kdW1wIChJQnVzVW5pY29kZUJs b2NrICpibG9jaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgICAg ICAgICB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6XG4iICAgICBcCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIiAgICAgICBtc2dtZXJnZSAtQyBndWNoYXJtYXAucG8gaWJ1cy5wbyAiICAgICAg ICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpYnVzLnBvdCAqL1xuIik7CistICAg IGdjaGFyICpsaW5lID0gZ19zdHJkdXBfcHJpbnRmICgiICAgIE5fKFwiJXNcIiksXG4iLAorLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWJ1c191bmljb2RlX2Jsb2NrX2dldF9u YW1lIChibG9jaykpOworKyAgICBsaW5lID0gZ19zdHJkdXBfcHJpbnRmICgiICAgIE5fKFwiJXNc IiksXG4iLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpYnVzX3VuaWNvZGVfYmxvY2tf Z2V0X25hbWUgKGJsb2NrKSk7CisgICAgIGdfc3RyaW5nX2FwcGVuZCAoYnVmZiwgbGluZSk7Cisr ICAgIGdfZnJlZSAobGluZSk7CisgfQorIAorIHN0YXRpYyB2b2lkCitAQCAtMzcxLDcgKzM3MCw3 IEBAIHVjZF9ibG9ja190cmFuc2xhdGFibGVfc2F2ZSAoY29uc3QgZ2NoYXIgKmZpbGVuYW1lLAor ICAgICBnY2hhciAqY29udGVudCA9IE5VTEw7CisgICAgIGdzaXplIGxlbmd0aCA9IDA7CisgICAg IEdFcnJvciAqZXJyb3IgPSBOVUxMOworLSAgICBnY2hhciAqcDsKKysgICAgZ2NoYXIgKnAsICpz dWJzdHI7CisgICAgIEdTdHJpbmcgKmJ1ZmYgPSBOVUxMOworICAgICBpbnQgaTsKKyAgICAgR1NM aXN0ICpsaXN0ID0gYmxvY2tzX2xpc3Q7CitAQCAtMzkyLDI1ICszOTEsMzAgQEAgdWNkX2Jsb2Nr X3RyYW5zbGF0YWJsZV9zYXZlIChjb25zdCBnY2hhciAqZmlsZW5hbWUsCisgICAgICAgICAgICAg YnJlYWs7CisgICAgIH0KKyAgICAgaWYgKHAgIT0gTlVMTCkgeworLSAgICAgICAgZ19zdHJpbmdf YXBwZW5kIChidWZmLCBnX3N0cm5kdXAgKGNvbnRlbnQsIHAgLSBjb250ZW50KSk7CisrICAgICAg ICBzdWJzdHIgPSBnX3N0cm5kdXAgKGNvbnRlbnQsIHAgLSBjb250ZW50KTsKKysgICAgICAgIGdf c3RyaW5nX2FwcGVuZCAoYnVmZiwgc3Vic3RyKTsKKysgICAgICAgIGdfZnJlZSAoc3Vic3RyKTsK KyAgICAgICAgIGdfc3RyaW5nX2FwcGVuZF9jIChidWZmLCAnXG4nKTsKKyAgICAgfQorICAgICBn X2NsZWFyX3BvaW50ZXIgKCZjb250ZW50LCBnX2ZyZWUpOworIAorLSAgICBnX3N0cmluZ19hcHBl bmQgKGJ1ZmYsIGdfc3RyZHVwICgiXG4iKSk7CistICAgIGdfc3RyaW5nX2FwcGVuZCAoYnVmZiwg Z19zdHJkdXBfcHJpbnRmICgiLyogVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBieSAlcy4gKi8iLCBf X0ZJTEVfXykpOworLSAgICBnX3N0cmluZ19hcHBlbmQgKGJ1ZmYsIGdfc3RyZHVwICgiXG4iKSk7 CistICAgIGdfc3RyaW5nX2FwcGVuZCAoYnVmZiwgZ19zdHJkdXAgKCJpbmNsdWRlIDxnbGliL2dp MThuLmg+XG4iKSk7CistICAgIGdfc3RyaW5nX2FwcGVuZCAoYnVmZiwgZ19zdHJkdXAgKCJcbiIp KTsKKy0gICAgZ19zdHJpbmdfYXBwZW5kIChidWZmLCBnX3N0cmR1cCAoIiNpZm5kZWYgX19JQlVT X1VOSUNPREVfR0VOX0hfXG4iKSk7CistICAgIGdfc3RyaW5nX2FwcGVuZCAoYnVmZiwgZ19zdHJk dXAgKCIjZGVmaW5lIF9fSUJVU19VTklDT0RFX0dFTl9IX1xuIikpOworLSAgICBnX3N0cmluZ19h cHBlbmQgKGJ1ZmYsIGdfc3RyZHVwICgiY29uc3Qgc3RhdGljIGNoYXIgKnVuaWNvZGVfYmxvY2tz W10gPSB7XG4iKSk7CisrICAgIGdfc3RyaW5nX2FwcGVuZCAoYnVmZiwgIlxuIik7CisrICAgIHN1 YnN0ciA9IGdfc3RyZHVwX3ByaW50ZiAoIi8qIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgYnkgJXMu ICovIiwgX19GSUxFX18pOworKyAgICBnX3N0cmluZ19hcHBlbmQgKGJ1ZmYsIHN1YnN0cik7Cisr ICAgIGdfZnJlZSAoc3Vic3RyKTsKKysgICAgZ19zdHJpbmdfYXBwZW5kIChidWZmLCAiXG4iKTsK KysgICAgZ19zdHJpbmdfYXBwZW5kIChidWZmLCAiaW5jbHVkZSA8Z2xpYi9naTE4bi5oPlxuIik7 CisrICAgIGdfc3RyaW5nX2FwcGVuZCAoYnVmZiwgIlxuIik7CisrICAgIGdfc3RyaW5nX2FwcGVu ZCAoYnVmZiwgIiNpZm5kZWYgX19JQlVTX1VOSUNPREVfR0VOX0hfXG4iKTsKKysgICAgZ19zdHJp bmdfYXBwZW5kIChidWZmLCAiI2RlZmluZSBfX0lCVVNfVU5JQ09ERV9HRU5fSF9cbiIpOworKyAg ICBnX3N0cmluZ19hcHBlbmQgKGJ1ZmYsICJjb25zdCBzdGF0aWMgY2hhciAqdW5pY29kZV9ibG9j a3NbXSA9IHtcbiIpOworICAgICBnX3NsaXN0X2ZvcmVhY2ggKGxpc3QsIChHRnVuYylibG9ja19s aXN0X2R1bXAsIGJ1ZmYpOworLSAgICBnX3N0cmluZ19hcHBlbmQgKGJ1ZmYsIGdfc3RyZHVwICgi fTtcbiIpKTsKKy0gICAgZ19zdHJpbmdfYXBwZW5kIChidWZmLCBnX3N0cmR1cCAoIiNlbmRpZlxu IikpOworKyAgICBnX3N0cmluZ19hcHBlbmQgKGJ1ZmYsICJ9O1xuIik7CisrICAgIGdfc3RyaW5n X2FwcGVuZCAoYnVmZiwgIiNlbmRpZlxuIik7CisgCisgICAgIGlmICghZ19maWxlX3NldF9jb250 ZW50cyAoZmlsZW5hbWUsIGJ1ZmYtPnN0ciwgLTEsICZlcnJvcikpIHsKKy0gICAgICAgIGdfd2Fy bmluZyAoIkZhaWxlZCB0byBzYXZlIGVtb2ppIGNhdGVnb3J5IGZpbGUgJXM6ICVzIiwgZmlsZW5h bWUsIGVycm9yLT5tZXNzYWdlKTsKKysgICAgICAgIGdfd2FybmluZyAoIkZhaWxlZCB0byBzYXZl IGVtb2ppIGNhdGVnb3J5IGZpbGUgJXM6ICVzIiwKKysgICAgICAgICAgICAgICAgICAgZmlsZW5h bWUsIGVycm9yLT5tZXNzYWdlKTsKKyAgICAgICAgIGdfZXJyb3JfZnJlZSAoZXJyb3IpOworICAg ICB9CisgCitkaWZmIC0tZ2l0IGEvdXRpbC9JTWRraXQvRnJhbWVNZ3IuYyBiL3V0aWwvSU1ka2l0 L0ZyYW1lTWdyLmMKK2luZGV4IDBlOTFiNzhlLi44MGQwMTlhMCAxMDA2NDQKKy0tLSBhL3V0aWwv SU1ka2l0L0ZyYW1lTWdyLmMKKysrKyBiL3V0aWwvSU1ka2l0L0ZyYW1lTWdyLmMKK0BAIC04NTEs NyArODUxLDcgQEAgc3RhdGljIEJvb2wgX0ZyYW1lTWdyUHJvY2Vzc1BhZGRpbmcgKEZyYW1lTWdy IGZtLCBGbVN0YXR1cyogc3RhdHVzKQorICAgICAgICAgICAgIHJldHVybiBUcnVlOworICAgICAg ICAgfQorICAgICAgICAgLyplbmRpZiovCistICAgICAgICBuZXh0X3R5cGUgPSBGcmFtZUluc3RH ZXROZXh0VHlwZSAoZm0tPmZpLCAmaW5mbyk7CisrICAgICAgICBGcmFtZUluc3RHZXROZXh0VHlw ZSAoZm0tPmZpLCAmaW5mbyk7CisgICAgICAgICBmbS0+aWR4ICs9IGluZm8ubnVtOworICAgICAg ICAgaWYgKChmaXRyID0gX0ZyYW1lSXRlckNvdW50ZXJJbmNyIChmbS0+aXRlcnMsIGluZm8ubnVt KSkpCisgICAgICAgICAgICAgX0ZyYW1lTWdyUmVtb3ZlSXRlciAoZm0sIGZpdHIpOworQEAgLTE1 MjUsNiArMTUyNSwxMSBAQCBzdGF0aWMgSXRlciBJdGVySW5pdCAoWGltRnJhbWUgZnJhbWUsIGlu dCBjb3VudCkKKyAgICAgcmVnaXN0ZXIgWGltRnJhbWVUeXBlIHR5cGU7CisgCisgICAgIGl0ID0g KEl0ZXIpIFhtYWxsb2MgKHNpemVvZiAoSXRlclJlYykpOworKyAgICBpZiAoIWl0KSB7CisrICAg ICAgICBmcHJpbnRmIChzdGRlcnIsICIoWElNLUlNZGtpdCkgV0FSTklORzogbWFsbG9jIGZhaWxl ZCBpbiAlczolZC5cbiIsCisrICAgICAgICAgICAgICAgICBfX0ZJTEVfXywgX19MSU5FX18pOwor KyAgICAgICAgcmV0dXJuIE5VTEw7CisrICAgIH0KKyAgICAgaXQtPnRlbXBsYXRlID0gZnJhbWU7 CisgICAgIGl0LT5tYXhfY291bnQgPSAoY291bnQgPT0gTk9fVkFMVUUpICA/ICAwICA6ICBjb3Vu dDsKKyAgICAgaXQtPmFsbG93X2V4cGFuc2lvbiA9IChjb3VudCA9PSBOT19WQUxVRSk7CitAQCAt MTY2OSw4ICsxNjc0LDE1IEBAIHN0YXRpYyBCb29sIEl0ZXJJc0xvb3BFbmQgKEl0ZXIgaXQsIEJv b2wgKm15c2VsZikKKyAKKyBzdGF0aWMgWGltRnJhbWVUeXBlIEl0ZXJHZXROZXh0VHlwZSAoSXRl ciBpdCwgWGltRnJhbWVUeXBlSW5mbyBpbmZvKQorIHsKKy0gICAgWGltRnJhbWVUeXBlIHR5cGUg PSBpdC0+dGVtcGxhdGUtPnR5cGU7CisrICAgIFhpbUZyYW1lVHlwZSB0eXBlOworKworKyAgICBp ZiAoIWl0IHx8ICFpdC0+dGVtcGxhdGUpIHsKKysgICAgICAgIGZwcmludGYgKHN0ZGVyciwgIihY SU0tSU1ka2l0KSBXQVJOSU5HOiBtYWxsb2MgZmFpbGVkIGluICVzOiVkLlxuIiwKKysgICAgICAg ICAgICAgICAgIF9fRklMRV9fLCBfX0xJTkVfXyk7CisrCXJldHVybiAoWGltRnJhbWVUeXBlKSBO VUxMOworKyAgICB9CisgCisrICAgIHR5cGUgPSBpdC0+dGVtcGxhdGUtPnR5cGU7CisgICAgIGlm IChpdC0+c3RhcnRfY291bnRlcikKKyAgICAgeworICAgICAgICAgKCppdC0+c3RhcnRfd2F0Y2hf cHJvYykgKGl0LCBpdC0+Y2xpZW50X2RhdGEpOworQEAgLTE3NjYsNyArMTc3OCwxNSBAQCBzdGF0 aWMgWGltRnJhbWVUeXBlIEl0ZXJHZXROZXh0VHlwZSAoSXRlciBpdCwgWGltRnJhbWVUeXBlSW5m byBpbmZvKQorIAorIHN0YXRpYyBYaW1GcmFtZVR5cGUgSXRlclBlZWtOZXh0VHlwZSAoSXRlciBp dCwgWGltRnJhbWVUeXBlSW5mbyBpbmZvKQorIHsKKy0gICAgWGltRnJhbWVUeXBlIHR5cGUgPSBp dC0+dGVtcGxhdGUtPnR5cGU7CisrICAgIFhpbUZyYW1lVHlwZSB0eXBlOworKworKyAgICBpZiAo IWl0LT50ZW1wbGF0ZSkgeworKyAgICAgICAgZnByaW50ZiAoc3RkZXJyLCAiKFhJTS1JTWRraXQp IFdBUk5JTkc6IGRlcmVmZXJlbmNlIHBvaW50ZXIgJXM6JWQuXG4iLAorKyAgICAgICAgICAgICAg ICAgX19GSUxFX18sIF9fTElORV9fKTsKKysgICAgICAgIHJldHVybiAoWGltRnJhbWVUeXBlKSBO VUxMOworKyAgICB9CisrCisrICAgIHR5cGUgPSBpdC0+dGVtcGxhdGUtPnR5cGU7CisgCisgICAg IGlmICghaXQtPmFsbG93X2V4cGFuc2lvbiAgJiYgIGl0LT5jdXJfbm8gPj0gaXQtPm1heF9jb3Vu dCkKKyAgICAgICAgIHJldHVybiAoRU9MKTsKK0BAIC0xODY2LDYgKzE4ODYsOSBAQCBzdGF0aWMg Rm1TdGF0dXMgSXRlclNldFNpemUgKEl0ZXIgaXQsIGludCBudW0pCisgICAgICAgICAgICAgICAg ICAgICBkci5udW0gPSBOT19WQUxVRTsKKyAgICAgICAgICAgICAgICAgICAgIGQgPSBDaGFpbk1n clNldERhdGEgKCZpdC0+Y20sIGksIGRyKTsKKyAgICAgICAgICAgICAgICAgfQorKyAgICAgICAg ICAgICAgICBpZiAoIWQpIHsKKysgICAgICAgICAgICAgICAgICAgIHJldHVybiBGbU5vTW9yZURh dGE7CisrICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgLyplbmRpZiovCisgICAg ICAgICAgICAgICAgIGlmIChkLT5udW0gPT0gTk9fVkFMVUUpCisgICAgICAgICAgICAgICAgIHsK K0BAIC0yMjU0LDYgKzIyNzcsMTEgQEAgc3RhdGljIEV4dHJhRGF0YSBDaGFpbk1nclNldERhdGEg KENoYWluTWdyIGNtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeHRyYURh dGFSZWMgZGF0YSkKKyB7CisgICAgIENoYWluIGN1ciA9IChDaGFpbikgWG1hbGxvYyAoc2l6ZW9m IChDaGFpblJlYykpOworKyAgICBpZiAoIWN1cikgeworKyAgICAgICAgZnByaW50ZiAoc3RkZXJy LCAiKFhJTS1JTWRraXQpIFdBUk5JTkc6IG1hbGxvYyBmYWlsZWQgaW4gJXM6JWQuXG4iLAorKyAg ICAgICAgICAgICAgICAgX19GSUxFX18sIF9fTElORV9fKTsKKysgICAgICAgIHJldHVybiBOVUxM OworKyAgICB9CisgCisgICAgIGN1ci0+ZnJhbWVfbm8gPSBmcmFtZV9ubzsKKyAgICAgY3VyLT5k ID0gZGF0YTsKK2RpZmYgLS1naXQgYS91dGlsL0lNZGtpdC9pMThuSWMuYyBiL3V0aWwvSU1ka2l0 L2kxOG5JYy5jCitpbmRleCAyODk4MzdhNi4uMTRhM2RjNTEgMTAwNjQ0CistLS0gYS91dGlsL0lN ZGtpdC9pMThuSWMuYworKysrIGIvdXRpbC9JTWRraXQvaTE4bkljLmMKK0BAIC00NzAsMTMgKzQ3 MCwxNiBAQCBzdGF0aWMgWElDQXR0cmlidXRlICpDcmVhdGVOZXN0ZWRMaXN0IChDQVJEMTYgYXR0 cl9pZCwKKyAgICAgLyplbmRmb3IqLworICAgICAKKyAgICAgbmVzdF9saXN0ID0gKFhJQ0F0dHJp YnV0ZSAqKSBtYWxsb2MgKHNpemVvZiAoWElDQXR0cmlidXRlKSk7CistICAgIGlmIChuZXN0X2xp c3QgPT0gTlVMTCkKKysgICAgaWYgKG5lc3RfbGlzdCA9PSBOVUxMKSB7CisrICAgICAgICBYRnJl ZSAodmFsdWVzKTsKKyAgICAgICAgIHJldHVybiBOVUxMOworKyAgICB9CisgICAgIC8qZW5kaWYq LworICAgICBtZW1zZXQgKG5lc3RfbGlzdCwgMCwgc2l6ZW9mIChYSUNBdHRyaWJ1dGUpKTsKKyAg ICAgbmVzdF9saXN0LT52YWx1ZSA9ICh2b2lkICopIG1hbGxvYyAodmFsdWVfbGVuZ3RoKTsKKyAg ICAgaWYgKG5lc3RfbGlzdC0+dmFsdWUgPT0gTlVMTCkgeworICAgICAgICAgWEZyZWUgKG5lc3Rf bGlzdCk7CisrICAgICAgICBYRnJlZSAodmFsdWVzKTsKKyAgICAgICAgIHJldHVybiBOVUxMOwor ICAgICB9CisgICAgIC8qZW5kaWYqLworQEAgLTUzOSw3ICs1NDIsMTMgQEAgc3RhdGljIGludCBH ZXRJQ1ZhbHVlIChYaTE4biBpMThuX2NvcmUsCisgICAgICAgICAgICAgICAgICAgICBhdHRyX3Jl dFtuXS5hdHRyaWJ1dGVfaWQgPSB4aWNfYXR0cltqXS5hdHRyaWJ1dGVfaWQ7CisgICAgICAgICAg ICAgICAgICAgICBhdHRyX3JldFtuXS5uYW1lX2xlbmd0aCA9IHhpY19hdHRyW2pdLmxlbmd0aDsK KyAgICAgICAgICAgICAgICAgICAgIGF0dHJfcmV0W25dLm5hbWUgPSBtYWxsb2MgKHhpY19hdHRy W2pdLmxlbmd0aCArIDEpOworLQkJICAgIHN0cmNweShhdHRyX3JldFtuXS5uYW1lLCB4aWNfYXR0 cltqXS5uYW1lKTsKKysgICAgICAgICAgICAgICAgICAgIGlmICghYXR0cl9yZXRbbl0ubmFtZSkg eworKyAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYgKHN0ZGVyciwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiKFhJTS1JTWRraXQpIFdBUk5JTkc6IG1hbGxvYyBmYWls ZWQgaW4gJXM6JWQuXG4iLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fRklM RV9fLCBfX0xJTkVfXyk7CisrICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworKyAgICAgICAg ICAgICAgICAgICAgICAgIHN0cmNweShhdHRyX3JldFtuXS5uYW1lLCB4aWNfYXR0cltqXS5uYW1l KTsKKysgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgIGF0dHJfcmV0 W25dLnR5cGUgPSB4aWNfYXR0cltqXS50eXBlOworICAgICAgICAgICAgICAgICAgICAgbisrOwor ICAgICAgICAgICAgICAgICAgICAgaSsrOworQEAgLTU2MCw3ICs1NjksMTMgQEAgc3RhdGljIGlu dCBHZXRJQ1ZhbHVlIChYaTE4biBpMThuX2NvcmUsCisgICAgICAgICAgICAgICAgIGF0dHJfcmV0 W25dLmF0dHJpYnV0ZV9pZCA9IHhpY19hdHRyW2pdLmF0dHJpYnV0ZV9pZDsKKyAgICAgICAgICAg ICAgICAgYXR0cl9yZXRbbl0ubmFtZV9sZW5ndGggPSB4aWNfYXR0cltqXS5sZW5ndGg7CisgICAg ICAgICAgICAgICAgIGF0dHJfcmV0W25dLm5hbWUgPSBtYWxsb2MgKHhpY19hdHRyW2pdLmxlbmd0 aCArIDEpOworLQkJc3RyY3B5KGF0dHJfcmV0W25dLm5hbWUsIHhpY19hdHRyW2pdLm5hbWUpOwor KyAgICAgICAgICAgICAgICBpZiAoIWF0dHJfcmV0W25dLm5hbWUpIHsKKysgICAgICAgICAgICAg ICAgICAgIGZwcmludGYgKHN0ZGVyciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIo WElNLUlNZGtpdCkgV0FSTklORzogbWFsbG9jIGZhaWxlZCBpbiAlczolZC5cbiIsCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBfX0ZJTEVfXywgX19MSU5FX18pOworKyAgICAgICAgICAg ICAgICB9IGVsc2UgeworKwkJICAgIHN0cmNweShhdHRyX3JldFtuXS5uYW1lLCB4aWNfYXR0cltq XS5uYW1lKTsKKysgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICBhdHRyX3JldFtu XS50eXBlID0geGljX2F0dHJbal0udHlwZTsKKyAgICAgICAgICAgICAgICAgbisrOworICAgICAg ICAgICAgICAgICBicmVhazsKK0BAIC03MDAsMTAgKzcxNSwxNSBAQCB2b2lkIF9YaTE4bkNoYW5n ZUlDIChYSU1TIGltcywKKyAgICAgICAgIGF0dHJpYl9saXN0W2F0dHJpYl9udW1dLnZhbHVlX2xl bmd0aCA9IHZhbHVlX2xlbmd0aDsKKyAgICAgICAgIEZyYW1lTWdyR2V0VG9rZW4gKGZtLCB2YWx1 ZSk7CisgICAgICAgICBhdHRyaWJfbGlzdFthdHRyaWJfbnVtXS52YWx1ZSA9ICh2b2lkICopIG1h bGxvYyAodmFsdWVfbGVuZ3RoICsgMSk7CistICAgICAgICBtZW1tb3ZlIChhdHRyaWJfbGlzdFth dHRyaWJfbnVtXS52YWx1ZSwgdmFsdWUsIHZhbHVlX2xlbmd0aCk7CistCSgoY2hhciAqKWF0dHJp Yl9saXN0W2F0dHJpYl9udW1dLnZhbHVlKVt2YWx1ZV9sZW5ndGhdID0gJ1wwJzsKKysgICAgICAg IGlmICghYXR0cmliX2xpc3RbYXR0cmliX251bV0udmFsdWUpIHsKKysgICAgICAgICAgICBmcHJp bnRmIChzdGRlcnIsICIoWElNLUlNZGtpdCkgV0FSTklORzogbWFsbG9jIGZhaWxlZCBpbiAlczol ZC5cbiIsCisrICAgICAgICAgICAgICAgICAgICAgX19GSUxFX18sIF9fTElORV9fKTsKKysgICAg ICAgIH0gZWxzZSB7CisrICAgICAgICAgICAgbWVtbW92ZSAoYXR0cmliX2xpc3RbYXR0cmliX251 bV0udmFsdWUsIHZhbHVlLCB2YWx1ZV9sZW5ndGgpOworKyAgICAgICAgICAgICgoY2hhciAqKWF0 dHJpYl9saXN0W2F0dHJpYl9udW1dLnZhbHVlKVt2YWx1ZV9sZW5ndGhdID0gJ1wwJzsKKysgICAg ICAgICAgICB0b3RhbF92YWx1ZV9sZW5ndGggKz0gKHZhbHVlX2xlbmd0aCArIDEpOworKyAgICAg ICAgfQorICAgICAgICAgYXR0cmliX251bSsrOworLSAgICAgICAgdG90YWxfdmFsdWVfbGVuZ3Ro ICs9ICh2YWx1ZV9sZW5ndGggKyAxKTsKKyAgICAgfQorICAgICAvKmVuZHdoaWxlKi8KKyAKK0BA IC05MTcsNiArOTM3LDEyIEBAIHZvaWQgX1hpMThuR2V0SUMgKFhJTVMgaW1zLCBJTVByb3RvY29s ICpjYWxsX2RhdGEsIHVuc2lnbmVkIGNoYXIgKnApCisgICAgIEZyYW1lTWdyR2V0VG9rZW4gKGZt LCBieXRlX2xlbmd0aCk7CisgCisgICAgIGF0dHJJRF9saXN0ID0gKENBUkQxNiAqKSBtYWxsb2Mg KHNpemVvZiAoQ0FSRDE2KSpJQ19TSVpFKTsgIC8qIGJvZ3VzICovCisrICAgIGlmICghYXR0cklE X2xpc3QpIHsKKysgICAgICAgIGZwcmludGYgKHN0ZGVyciwgIihYSU0tSU1ka2l0KSBXQVJOSU5H OiBtYWxsb2MgZmFpbGVkIGluICVzOiVkLlxuIiwKKysgICAgICAgICAgICAgICAgIF9fRklMRV9f LCBfX0xJTkVfXyk7CisrICAgICAgICBGcmFtZU1nckZyZWUgKGZtKTsKKysgICAgICAgIHJldHVy bjsKKysgICAgfQorICAgICBtZW1zZXQgKGF0dHJJRF9saXN0LCAwLCBzaXplb2YgKENBUkQxNikq SUNfU0laRSk7CisgCisgICAgIG51bWJlciA9IDA7CitAQCAtMTAyNiw3ICsxMDUyLDcgQEAgdm9p ZCBfWGkxOG5HZXRJQyAoWElNUyBpbXMsIElNUHJvdG9jb2wgKmNhbGxfZGF0YSwgdW5zaWduZWQg Y2hhciAqcCkKKyAgICAgeworICAgICAgICAgX1hpMThuU2VuZE1lc3NhZ2UgKGltcywgY29ubmVj dF9pZCwgWElNX0VSUk9SLCAwLCAwLCAwKTsKKyAgICAgICAgIFhGcmVlIChhdHRySURfbGlzdCk7 CistICAgICAgICBGcmFtZU1nckZyZWUgKGZtKTsKKysgICAgICAgIGdvdG8gX1hpMThuR2V0SUNf ZmluaXQ7CisgICAgICAgICByZXR1cm47CisgICAgIH0KKyAgICAgLyplbmRpZiovCitAQCAtMTA5 Nyw2ICsxMTIzLDcgQEAgdm9pZCBfWGkxOG5HZXRJQyAoWElNUyBpbXMsIElNUHJvdG9jb2wgKmNh bGxfZGF0YSwgdW5zaWduZWQgY2hhciAqcCkKKyAgICAgfQorICAgICAvKmVuZGZvciovCisgICAg IAorK19YaTE4bkdldElDX2Zpbml0OgorICAgICBpZiAocHJlZWRpdF9yZXQpCisgICAgIHsKKyAg ICAgICAgIFhGcmVlIChwcmVlZGl0X3JldC0+dmFsdWUpOworZGlmZiAtLWdpdCBhL3V0aWwvSU1k a2l0L2kxOG5NZXRob2QuYyBiL3V0aWwvSU1ka2l0L2kxOG5NZXRob2QuYworaW5kZXggMzZkZDI4 YWMuLjljNDRlN2ZlIDEwMDY0NAorLS0tIGEvdXRpbC9JTWRraXQvaTE4bk1ldGhvZC5jCisrKysg Yi91dGlsL0lNZGtpdC9pMThuTWV0aG9kLmMKK0BAIC0xNjYsOCArMTY2LDE0IEBAIHN0YXRpYyBC b29sIEdldEVuY29kaW5ncyhYaTE4biBpMThuX2NvcmUsIFhJTUVuY29kaW5ncyAqKnBfZW5jb2Rp bmcpCisgICAgIHsKKyAgICAgICAgICgqcF9lbmNvZGluZyktPnN1cHBvcnRlZF9lbmNvZGluZ3Nb aV0KKyAgICAgICAgICAgICA9IChjaGFyICopIG1hbGxvYyAoc3RybGVuIChwLT5zdXBwb3J0ZWRf ZW5jb2RpbmdzW2ldKSArIDEpOworLSAgICAgICAgc3RyY3B5ICgoKnBfZW5jb2RpbmcpLT5zdXBw b3J0ZWRfZW5jb2RpbmdzW2ldLAorLSAgICAgICAgICAgICAgICBwLT5zdXBwb3J0ZWRfZW5jb2Rp bmdzW2ldKTsKKysgICAgICAgIGlmICghKCgqcF9lbmNvZGluZyktPnN1cHBvcnRlZF9lbmNvZGlu Z3NbaV0pKSB7CisrICAgICAgICAgICAgZnByaW50ZiAoc3RkZXJyLCAiKFhJTS1JTWRraXQpIFdB Uk5JTkc6IG1hbGxvYyBmYWlsZWQgaW4gJXM6JWQuXG4iLAorKyAgICAgICAgICAgICAgICAgICAg IF9fRklMRV9fLCBfX0xJTkVfXyk7CisrCisrICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICAg IHN0cmNweSAoKCpwX2VuY29kaW5nKS0+c3VwcG9ydGVkX2VuY29kaW5nc1tpXSwKKysgICAgICAg ICAgICAgICAgICAgIHAtPnN1cHBvcnRlZF9lbmNvZGluZ3NbaV0pOworKyAgICAgICAgfQorICAg ICB9CisgICAgIC8qZW5kaWYqLworICAgICByZXR1cm4gVHJ1ZTsKK0BAIC0xODcsMTEgKzE5Mywx NyBAQCBzdGF0aWMgY2hhciAqUGFyc2VBcmdzIChYaTE4biBpMThuX2NvcmUsIGludCBtb2RlLCBY SU1BcmcgKmFyZ3MpCisgICAgICAgICAgICAgICAgIGlmIChhZGRyZXNzLT5pbXZhbHVlX21hc2sg JiBJMThOX0lNX0xPQ0FMRSkKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJTUxvY2FsZTsK KyAgICAgICAgICAgICAgICAgLyplbmRpZiovCisrICAgICAgICAgICAgICAgIC8qIGFkZHJlc3Mt PmltX2xvY2FsZSB3aWxsIGJlIHJlbGVhc2VkIGxhdGVyIGFuZCBkb24ndCBuZWVkCisrICAgICAg ICAgICAgICAgICAqIC1XYW5hbHl6ZXItbWFsbG9jLWxlYWsgZmxhZyBpbiBnY2MgMTEuMC4xLgor KyAgICAgICAgICAgICAgICAgKi8KKysjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKKysjcHJh Z21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XYW5hbHl6ZXItbWFsbG9jLWxlYWsiCisgICAg ICAgICAgICAgICAgIGFkZHJlc3MtPmltX2xvY2FsZSA9IChjaGFyICopIG1hbGxvYyAoc3RybGVu IChwLT52YWx1ZSkgKyAxKTsKKyAgICAgICAgICAgICAgICAgaWYgKCFhZGRyZXNzLT5pbV9sb2Nh bGUpCisgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSU1Mb2NhbGU7CisgICAgICAgICAgICAg ICAgIC8qZW5kaWYqLworICAgICAgICAgICAgICAgICBzdHJjcHkgKGFkZHJlc3MtPmltX2xvY2Fs ZSwgcC0+dmFsdWUpOworKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICAg ICAgIGFkZHJlc3MtPmltdmFsdWVfbWFzayB8PSBJMThOX0lNX0xPQ0FMRTsKKyAgICAgICAgICAg ICB9CisgICAgICAgICAgICAgZWxzZSBpZiAoc3RyY21wIChwLT5uYW1lLCBJTVNlcnZlclRyYW5z cG9ydCkgPT0gMCkKK0BAIC0xOTksMTEgKzIxMSwxNCBAQCBzdGF0aWMgY2hhciAqUGFyc2VBcmdz IChYaTE4biBpMThuX2NvcmUsIGludCBtb2RlLCBYSU1BcmcgKmFyZ3MpCisgICAgICAgICAgICAg ICAgIGlmIChhZGRyZXNzLT5pbXZhbHVlX21hc2sgJiBJMThOX0lNX0FERFJFU1MpCisgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gSU1TZXJ2ZXJUcmFuc3BvcnQ7CisgICAgICAgICAgICAgICAg IC8qZW5kaWYqLworKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAorKyNwcmFnbWEgR0NDIGRp YWdub3N0aWMgaWdub3JlZCAiLVdhbmFseXplci1tYWxsb2MtbGVhayIKKyAgICAgICAgICAgICAg ICAgYWRkcmVzcy0+aW1fYWRkciA9IChjaGFyICopIG1hbGxvYyAoc3RybGVuIChwLT52YWx1ZSkg KyAxKTsKKyAgICAgICAgICAgICAgICAgaWYgKCFhZGRyZXNzLT5pbV9hZGRyKQorICAgICAgICAg ICAgICAgICAgICAgcmV0dXJuIElNU2VydmVyVHJhbnNwb3J0OworICAgICAgICAgICAgICAgICAv KmVuZGlmKi8KKyAgICAgICAgICAgICAgICAgc3RyY3B5KGFkZHJlc3MtPmltX2FkZHIsIHAtPnZh bHVlKTsKKysjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHBvcAorICAgICAgICAgICAgICAgICBhZGRy ZXNzLT5pbXZhbHVlX21hc2sgfD0gSTE4Tl9JTV9BRERSRVNTOworICAgICAgICAgICAgIH0KKyAg ICAgICAgICAgICBlbHNlIGlmIChzdHJjbXAgKHAtPm5hbWUsIElNU2VydmVyTmFtZSkgPT0gMCkK K0BAIC0yMTEsMTEgKzIyNiwxNCBAQCBzdGF0aWMgY2hhciAqUGFyc2VBcmdzIChYaTE4biBpMThu X2NvcmUsIGludCBtb2RlLCBYSU1BcmcgKmFyZ3MpCisgICAgICAgICAgICAgICAgIGlmIChhZGRy ZXNzLT5pbXZhbHVlX21hc2sgJiBJMThOX0lNX05BTUUpCisgICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gSU1TZXJ2ZXJOYW1lOworICAgICAgICAgICAgICAgICAvKmVuZGlmKi8KKysjcHJhZ21h IEdDQyBkaWFnbm9zdGljIHB1c2gKKysjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1X YW5hbHl6ZXItbWFsbG9jLWxlYWsiCisgICAgICAgICAgICAgICAgIGFkZHJlc3MtPmltX25hbWUg PSAoY2hhciAqKSBtYWxsb2MgKHN0cmxlbiAocC0+dmFsdWUpICsgMSk7CisgICAgICAgICAgICAg ICAgIGlmICghYWRkcmVzcy0+aW1fbmFtZSkKKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiBJ TVNlcnZlck5hbWU7CisgICAgICAgICAgICAgICAgIC8qZW5kaWYqLworICAgICAgICAgICAgICAg ICBzdHJjcHkgKGFkZHJlc3MtPmltX25hbWUsIHAtPnZhbHVlKTsKKysjcHJhZ21hIEdDQyBkaWFn bm9zdGljIHBvcAorICAgICAgICAgICAgICAgICBhZGRyZXNzLT5pbXZhbHVlX21hc2sgfD0gSTE4 Tl9JTV9OQU1FOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBlbHNlIGlmIChzdHJjbXAg KHAtPm5hbWUsIElNU2VydmVyV2luZG93KSA9PSAwKQorQEAgLTY5OCw3ICs3MTYsNyBAQCBzdGF0 aWMgdm9pZCBSZXR1cm5TZWxlY3Rpb25Ob3RpZnkgKFhpMThuIGkxOG5fY29yZSwgWFNlbGVjdGlv blJlcXVlc3RFdmVudCAqZXYpCisgeworICAgICBYRXZlbnQgZXZlbnQ7CisgICAgIERpc3BsYXkg KmRweSA9IGkxOG5fY29yZS0+YWRkcmVzcy5kcHk7CistICAgIGNoYXIgYnVmWzQwOTZdOworKyAg ICBjaGFyIGJ1Zls0MDk2XSA9IHsgJ1wwJywgfTsKKyAKKyAgICAgZXZlbnQudHlwZSA9IFNlbGVj dGlvbk5vdGlmeTsKKyAgICAgZXZlbnQueHNlbGVjdGlvbi5yZXF1ZXN0b3IgPSBldi0+cmVxdWVz dG9yOworZGlmZiAtLWdpdCBhL3V0aWwvSU1ka2l0L2kxOG5PZmZzZXRDYWNoZS5jIGIvdXRpbC9J TWRraXQvaTE4bk9mZnNldENhY2hlLmMKK2luZGV4IGQ1Mzc5MDUxLi5lMmZlOGM2YiAxMDA2NDQK Ky0tLSBhL3V0aWwvSU1ka2l0L2kxOG5PZmZzZXRDYWNoZS5jCisrKysgYi91dGlsL0lNZGtpdC9p MThuT2Zmc2V0Q2FjaGUuYworQEAgLTk0LDcgKzk0LDcgQEAgdm9pZCBfWGkxOG5TZXRQcm9wZXJ0 eU9mZnNldCAoWGkxOG5PZmZzZXRDYWNoZSAqb2Zmc2V0X2NhY2hlLCBBdG9tIGtleSwKKyAgICAg fQorIAorICAgICBhc3NlcnQgKGRhdGEgIT0gTlVMTCk7CistICAgIGlmIChvZmZzZXRfY2FjaGUt PnNpemUgPiAwKSB7CisrICAgIGlmIChvZmZzZXRfY2FjaGUtPnNpemUgPiAwICYmIGkgPCBvZmZz ZXRfY2FjaGUtPmNhcGFjaXR5KSB7CisgICAgICAgICBkYXRhW2ldLmtleSA9IGtleTsKKyAgICAg ICAgIGRhdGFbaV0ub2Zmc2V0ID0gb2Zmc2V0OworICAgICB9CitkaWZmIC0tZ2l0IGEvdXRpbC9J TWRraXQvaTE4blB0SGRyLmMgYi91dGlsL0lNZGtpdC9pMThuUHRIZHIuYworaW5kZXggZWFlZWVl MWMuLjM2N2NjMWU3IDEwMDY0NAorLS0tIGEvdXRpbC9JTWRraXQvaTE4blB0SGRyLmMKKysrKyBi L3V0aWwvSU1ka2l0L2kxOG5QdEhkci5jCitAQCAtMTgxLDggKzE4MSwxMyBAQCBzdGF0aWMgdm9p ZCBPcGVuTWVzc2FnZVByb2MoWElNUyBpbXMsIElNUHJvdG9jb2wgKmNhbGxfZGF0YSwgdW5zaWdu ZWQgY2hhciAqcCkKKyAgICAgRnJhbWVNZ3JHZXRUb2tlbiAoZm0sIG5hbWUpOworICAgICBpbW9w ZW4tPmxhbmcubGVuZ3RoID0gc3RyX2xlbmd0aDsKKyAgICAgaW1vcGVuLT5sYW5nLm5hbWUgPSBt YWxsb2MgKHN0cl9sZW5ndGggKyAxKTsKKy0gICAgc3RybmNweSAoaW1vcGVuLT5sYW5nLm5hbWUs IG5hbWUsIHN0cl9sZW5ndGgpOworLSAgICBpbW9wZW4tPmxhbmcubmFtZVtzdHJfbGVuZ3RoXSA9 IChjaGFyKSAwOworKyAgICBpZiAoIWltb3Blbi0+bGFuZy5uYW1lKSB7CisrICAgICAgICBmcHJp bnRmIChzdGRlcnIsICIoWElNLUlNZGtpdCkgV0FSTklORzogbWFsbG9jIGZhaWxlZCBpbiAlczol ZC5cbiIsCisrICAgICAgICAgICAgICAgICBfX0ZJTEVfXywgX19MSU5FX18pOworKyAgICB9IGVs c2UgeworKyAgICAgICAgc3RybmNweSAoaW1vcGVuLT5sYW5nLm5hbWUsIG5hbWUsIHN0cl9sZW5n dGgpOworKyAgICAgICAgaW1vcGVuLT5sYW5nLm5hbWVbc3RyX2xlbmd0aF0gPSAoY2hhcikgMDsK KysgICAgfQorIAorICAgICBGcmFtZU1nckZyZWUgKGZtKTsKKyAKK0BAIC0zMzksNyArMzQ0LDcg QEAgc3RhdGljIFhJTUV4dCAqTWFrZUV4dGVuc2lvbkxpc3QgKFhpMThuIGkxOG5fY29yZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG51bWJlciwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpyZXBseV9udW1iZXIpCisgeworLSAgICBYSU1F eHQgKmV4dF9saXN0OworKyAgICBYSU1FeHQgKmV4dF9saXN0ID0gTlVMTDsKKyAgICAgWElNRXh0 ICppbV9leHQgPSAoWElNRXh0ICopIGkxOG5fY29yZS0+YWRkcmVzcy5leHRlbnNpb247CisgICAg IGludCBpbV9leHRfbGVuID0gaTE4bl9jb3JlLT5hZGRyZXNzLmV4dF9udW07CisgICAgIGludCBp OworQEAgLTM1OCw3ICszNjMsOCBAQCBzdGF0aWMgWElNRXh0ICpNYWtlRXh0ZW5zaW9uTGlzdCAo WGkxOG4gaTE4bl9jb3JlLAorICAgICAgICAgeworICAgICAgICAgICAgIGZvciAoaiA9IDA7ICBq IDwgKGludCkgbnVtYmVyOyAgaisrKQorICAgICAgICAgICAgIHsKKy0gICAgICAgICAgICAgICAg aWYgKHN0cmNtcCAobGliX2V4dGVuc2lvbltqXS5uYW1lLCBpbV9leHRbaV0ubmFtZSkgPT0gMCkK KysgICAgICAgICAgICAgICAgaWYgKGxpYl9leHRlbnNpb25bal0ubmFtZQorKyAgICAgICAgICAg ICAgICAgICAgJiYgc3RyY21wIChsaWJfZXh0ZW5zaW9uW2pdLm5hbWUsIGltX2V4dFtpXS5uYW1l KSA9PSAwKQorICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAoKnJlcGx5 X251bWJlcikrKzsKKyAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworQEAgLTM4OSw3ICszOTUs MTMgQEAgc3RhdGljIFhJTUV4dCAqTWFrZUV4dGVuc2lvbkxpc3QgKFhpMThuIGkxOG5fY29yZSwK KyAgICAgICAgICAgICBleHRfbGlzdFtpXS5taW5vcl9vcGNvZGUgPSBpbV9leHRbaV0ubWlub3Jf b3Bjb2RlOworICAgICAgICAgICAgIGV4dF9saXN0W2ldLmxlbmd0aCA9IGltX2V4dFtpXS5sZW5n dGg7CisgICAgICAgICAgICAgZXh0X2xpc3RbaV0ubmFtZSA9IG1hbGxvYyAoaW1fZXh0W2ldLmxl bmd0aCArIDEpOworLSAgICAgICAgICAgIHN0cmNweSAoZXh0X2xpc3RbaV0ubmFtZSwgaW1fZXh0 W2ldLm5hbWUpOworKyAgICAgICAgICAgIGlmICghZXh0X2xpc3RbaV0ubmFtZSkgeworKyAgICAg ICAgICAgICAgICBmcHJpbnRmIChzdGRlcnIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICIo WElNLUlNZGtpdCkgV0FSTklORzogbWFsbG9jIGZhaWxlZCBpbiAlczolZC5cbiIsCisrICAgICAg ICAgICAgICAgICAgICAgICAgIF9fRklMRV9fLCBfX0xJTkVfXyk7CisrICAgICAgICAgICAgfSBl bHNlIHsKKysgICAgICAgICAgICAgICAgc3RyY3B5IChleHRfbGlzdFtpXS5uYW1lLCBpbV9leHRb aV0ubmFtZSk7CisrICAgICAgICAgICAgfQorICAgICAgICAgfQorICAgICAgICAgLyplbmRmb3Iq LworICAgICB9CitAQCAtNDAxLDEzICs0MTMsMjAgQEAgc3RhdGljIFhJTUV4dCAqTWFrZUV4dGVu c2lvbkxpc3QgKFhpMThuIGkxOG5fY29yZSwKKyAgICAgICAgIHsKKyAgICAgICAgICAgICBmb3Ig KGogPSAwOyAgaiA8IChpbnQpbnVtYmVyOyAgaisrKQorICAgICAgICAgICAgIHsKKy0gICAgICAg ICAgICAgICAgaWYgKHN0cmNtcCAobGliX2V4dGVuc2lvbltqXS5uYW1lLCBpbV9leHRbaV0ubmFt ZSkgPT0gMCkKKysgICAgICAgICAgICAgICAgaWYgKGxpYl9leHRlbnNpb25bal0ubmFtZQorKyAg ICAgICAgICAgICAgICAgICAgJiYgc3RyY21wIChsaWJfZXh0ZW5zaW9uW2pdLm5hbWUsIGltX2V4 dFtpXS5uYW1lKSA9PSAwKQorICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAg ICBleHRfbGlzdFtuXS5tYWpvcl9vcGNvZGUgPSBpbV9leHRbaV0ubWFqb3Jfb3Bjb2RlOworICAg ICAgICAgICAgICAgICAgICAgZXh0X2xpc3Rbbl0ubWlub3Jfb3Bjb2RlID0gaW1fZXh0W2ldLm1p bm9yX29wY29kZTsKKyAgICAgICAgICAgICAgICAgICAgIGV4dF9saXN0W25dLmxlbmd0aCA9IGlt X2V4dFtpXS5sZW5ndGg7CisgICAgICAgICAgICAgICAgICAgICBleHRfbGlzdFtuXS5uYW1lID0g bWFsbG9jIChpbV9leHRbaV0ubGVuZ3RoICsgMSk7CistICAgICAgICAgICAgICAgICAgICBzdHJj cHkgKGV4dF9saXN0W25dLm5hbWUsIGltX2V4dFtpXS5uYW1lKTsKKysgICAgICAgICAgICAgICAg ICAgIGlmICghZXh0X2xpc3Rbbl0ubmFtZSkgeworKyAgICAgICAgICAgICAgICAgICAgICAgIGZw cmludGYgKHN0ZGVyciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKFhJTS1J TWRraXQpIFdBUk5JTkc6IG1hbGxvYyBmYWlsZWQgaW4gJXM6JWQuXG4iLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF9fRklMRV9fLCBfX0xJTkVfXyk7CisrICAgICAgICAgICAg ICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICAgICAgICAgICAgICAgIHN0cmNweSAoZXh0X2xp c3Rbbl0ubmFtZSwgaW1fZXh0W2ldLm5hbWUpOworKyAgICAgICAgICAgICAgICAgICAgfQorICAg ICAgICAgICAgICAgICAgICAgbisrOworICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg ICAgICAgICAgICAgIH0KK0BAIC00NTAsNiArNDY5LDExIEBAIHN0YXRpYyB2b2lkIFF1ZXJ5RXh0 ZW5zaW9uTWVzc2FnZVByb2MgKFhJTVMgaW1zLAorICAgICBGcmFtZU1nckdldFRva2VuIChmbSwg aW5wdXRfbWV0aG9kX0lEKTsKKyAgICAgRnJhbWVNZ3JHZXRUb2tlbiAoZm0sIGJ5dGVfbGVuZ3Ro KTsKKyAgICAgcXVlcnlfZXh0LT5leHRlbnNpb24gPSAoWElNU3RyICopIG1hbGxvYyAoc2l6ZW9m IChYSU1TdHIpKjEwKTsKKysgICAgaWYgKCFxdWVyeV9leHQtPmV4dGVuc2lvbikgeworKyAgICAg ICAgZnByaW50ZiAoc3RkZXJyLCAiKFhJTS1JTWRraXQpIFdBUk5JTkc6IG1hbGxvYyBmYWlsZWQg aW4gJXM6JWQuXG4iLAorKyAgICAgICAgICAgICAgICAgX19GSUxFX18sIF9fTElORV9fKTsKKysg ICAgICAgIHJldHVybjsKKysgICAgfQorICAgICBtZW1zZXQgKHF1ZXJ5X2V4dC0+ZXh0ZW5zaW9u LCAwLCBzaXplb2YgKFhJTVN0cikqMTApOworICAgICBudW1iZXIgPSAwOworICAgICB3aGlsZSAo RnJhbWVNZ3JJc0l0ZXJMb29wRW5kIChmbSwgJnN0YXR1cykgPT0gRmFsc2UpCitAQCAtNDYxLDkg KzQ4NSwyMCBAQCBzdGF0aWMgdm9pZCBRdWVyeUV4dGVuc2lvbk1lc3NhZ2VQcm9jIChYSU1TIGlt cywKKyAgICAgICAgIEZyYW1lTWdyU2V0U2l6ZSAoZm0sIHN0cl9sZW5ndGgpOworICAgICAgICAg cXVlcnlfZXh0LT5leHRlbnNpb25bbnVtYmVyXS5sZW5ndGggPSBzdHJfbGVuZ3RoOworICAgICAg ICAgRnJhbWVNZ3JHZXRUb2tlbiAoZm0sIG5hbWUpOworKyAgICAgICAgLyogSSBkb24ndCBrbm93 IHdoeSBleHRlbnNpb25bbnVtYmVyXS5uYW1lIGlzIGRldGVjdGVkIGFzIGxlYWsKKysgICAgICAg ICAqIHdpdGggLVdhbmFseXplci1tYWxsb2MtbGVhayBvcHRpb24gaW4gZ2NjIDExLjAuMS4KKysg ICAgICAgICAqLworKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAorKyNwcmFnbWEgR0NDIGRp YWdub3N0aWMgaWdub3JlZCAiLVdhbmFseXplci1tYWxsb2MtbGVhayIKKyAgICAgICAgIHF1ZXJ5 X2V4dC0+ZXh0ZW5zaW9uW251bWJlcl0ubmFtZSA9IG1hbGxvYyAoc3RyX2xlbmd0aCArIDEpOwor LSAgICAgICAgc3RybmNweSAocXVlcnlfZXh0LT5leHRlbnNpb25bbnVtYmVyXS5uYW1lLCBuYW1l LCBzdHJfbGVuZ3RoKTsKKy0gICAgICAgIHF1ZXJ5X2V4dC0+ZXh0ZW5zaW9uW251bWJlcl0ubmFt ZVtzdHJfbGVuZ3RoXSA9IChjaGFyKSAwOworKyAgICAgICAgaWYgKCFxdWVyeV9leHQtPmV4dGVu c2lvbltudW1iZXJdLm5hbWUpIHsKKysgICAgICAgICAgICBmcHJpbnRmIChzdGRlcnIsICIoWElN LUlNZGtpdCkgV0FSTklORzogbWFsbG9jIGZhaWxlZCBpbiAlczolZC5cbiIsCisrICAgICAgICAg ICAgICAgICAgICAgX19GSUxFX18sIF9fTElORV9fKTsKKysgICAgICAgIH0gZWxzZSB7CisrICAg ICAgICAgICAgc3RybmNweSAocXVlcnlfZXh0LT5leHRlbnNpb25bbnVtYmVyXS5uYW1lLCBuYW1l LCBzdHJfbGVuZ3RoKTsKKysgICAgICAgICAgICBxdWVyeV9leHQtPmV4dGVuc2lvbltudW1iZXJd Lm5hbWVbc3RyX2xlbmd0aF0gPSAoY2hhcikgMDsKKysgICAgICAgIH0KKysjcHJhZ21hIEdDQyBk aWFnbm9zdGljIHBvcAorICAgICAgICAgbnVtYmVyKys7CisgICAgIH0KKyAgICAgLyplbmR3aGls ZSovCitAQCAtNDkwLDYgKzUyNSw4IEBAIHN0YXRpYyB2b2lkIFF1ZXJ5RXh0ZW5zaW9uTWVzc2Fn ZVByb2MgKFhJTVMgaW1zLAorICAgICAgICAgWEZyZWUgKHF1ZXJ5X2V4dC0+ZXh0ZW5zaW9uW2ld Lm5hbWUpOworICAgICAvKmVuZGZvciovCisgICAgIFhGcmVlIChxdWVyeV9leHQtPmV4dGVuc2lv bik7CisrICAgIGlmICghZXh0X2xpc3QpCisrICAgICAgICByZXR1cm47CisgCisgICAgIGZtID0g RnJhbWVNZ3JJbml0IChxdWVyeV9leHRlbnNpb25fcmVwbHlfZnIsCisgICAgICAgICAgICAgICAg ICAgICAgICBOVUxMLAorQEAgLTUwMSw3ICs1MzgsMTAgQEAgc3RhdGljIHZvaWQgUXVlcnlFeHRl bnNpb25NZXNzYWdlUHJvYyAoWElNUyBpbXMsCisgICAgIC8qIHNldCBsZW5ndGggb2YgQkFSUkFZ IGl0ZW0gaW4gZXh0X2ZyICovCisgICAgIGZvciAoaSA9IDA7ICBpIDwgcmVwbHlfbnVtYmVyOyAg aSsrKQorICAgICB7CistICAgICAgICBzdHJfc2l6ZSA9IHN0cmxlbiAoZXh0X2xpc3RbaV0ubmFt ZSk7CisrICAgICAgICBpZiAoZXh0X2xpc3RbaV0ubmFtZSkKKysgICAgICAgICAgICBzdHJfc2l6 ZSA9IHN0cmxlbiAoZXh0X2xpc3RbaV0ubmFtZSk7CisrICAgICAgICBlbHNlCisrICAgICAgICAg ICAgc3RyX3NpemUgPSAwOworICAgICAgICAgRnJhbWVNZ3JTZXRTaXplIChmbSwgc3RyX3NpemUp OworICAgICB9CisgICAgIC8qZW5kZm9yKi8KK0BAIC03MDAsNyArNzQwLDEzIEBAIHN0YXRpYyBY SU1BdHRyaWJ1dGUgKk1ha2VJTUF0dHJpYnV0ZUxpc3QgKFhpMThuIGkxOG5fY29yZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdmFsdWVfbGVuZ3RoKTsKKyAgICAgICAg ICAgICAgICAgYXR0cmliX2xpc3RbbGlzdF9udW1dLnZhbHVlX2xlbmd0aCA9IHZhbHVlX2xlbmd0 aDsKKyAgICAgICAgICAgICAgICAgYXR0cmliX2xpc3RbbGlzdF9udW1dLnZhbHVlID0gKHZvaWQg KikgbWFsbG9jICh2YWx1ZV9sZW5ndGgpOworLSAgICAgICAgICAgICAgICBtZW1zZXQoYXR0cmli X2xpc3RbbGlzdF9udW1dLnZhbHVlLCAwLCB2YWx1ZV9sZW5ndGgpOworKyAgICAgICAgICAgICAg ICBpZiAoYXR0cmliX2xpc3RbbGlzdF9udW1dLnZhbHVlKSB7CisrICAgICAgICAgICAgICAgICAg ICBtZW1zZXQoYXR0cmliX2xpc3RbbGlzdF9udW1dLnZhbHVlLCAwLCB2YWx1ZV9sZW5ndGgpOwor KyAgICAgICAgICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICAgICAgICAgICAgZnByaW50ZiAo c3RkZXJyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIihYSU0tSU1ka2l0KSBXQVJO SU5HOiBtYWxsb2MgZmFpbGVkIGluICVzOiVkLlxuIiwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF9fRklMRV9fLCBfX0xJTkVfXyk7CisrICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICAgICAgR2V0SU1WYWx1ZUZyb21OYW1lIChpMThuX2NvcmUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29ubmVjdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhdHRyaWJfbGlzdFtsaXN0X251bV0udmFsdWUsCitAQCAtNzM3LDEwICs3 ODMsMTAgQEAgc3RhdGljIHZvaWQgR2V0SU1WYWx1ZXNNZXNzYWdlUHJvYyAoWElNUyBpbXMsCisg ICAgIHJlZ2lzdGVyIGludCBpOworICAgICByZWdpc3RlciBpbnQgajsKKyAgICAgaW50IG51bWJl cjsKKy0gICAgQ0FSRDE2ICppbV9hdHRySURfbGlzdDsKKy0gICAgY2hhciAqKm5hbWVfbGlzdDsK KysgICAgQ0FSRDE2ICppbV9hdHRySURfbGlzdCA9IE5VTEw7CisrICAgIGNoYXIgKipuYW1lX2xp c3QgPSBOVUxMOworICAgICBDQVJEMTYgbmFtZV9udW1iZXI7CistICAgIFhJTUF0dHJpYnV0ZSAq aW1fYXR0cmlidXRlX2xpc3Q7CisrICAgIFhJTUF0dHJpYnV0ZSAqaW1fYXR0cmlidXRlX2xpc3Qg PSBOVUxMOworICAgICBJTUdldElNVmFsdWVzU3RydWN0ICpnZXRpbSA9IChJTUdldElNVmFsdWVz U3RydWN0ICopJmNhbGxfZGF0YS0+Z2V0aW07CisgICAgIENBUkQxNiBjb25uZWN0X2lkID0gY2Fs bF9kYXRhLT5hbnkuY29ubmVjdF9pZDsKKyAgICAgQ0FSRDE2IGlucHV0X21ldGhvZF9JRDsKK0BA IC03NTMsOCArNzk5LDE4IEBAIHN0YXRpYyB2b2lkIEdldElNVmFsdWVzTWVzc2FnZVByb2MgKFhJ TVMgaW1zLAorICAgICBGcmFtZU1nckdldFRva2VuIChmbSwgaW5wdXRfbWV0aG9kX0lEKTsKKyAg ICAgRnJhbWVNZ3JHZXRUb2tlbiAoZm0sIGJ5dGVfbGVuZ3RoKTsKKyAgICAgaW1fYXR0cklEX2xp c3QgPSAoQ0FSRDE2ICopIG1hbGxvYyAoc2l6ZW9mIChDQVJEMTYpKjIwKTsKKysgICAgaWYgKCFp bV9hdHRySURfbGlzdCkgeworKyAgICAgICAgZnByaW50ZiAoc3RkZXJyLCAiKFhJTS1JTWRraXQp IFdBUk5JTkc6IG1hbGxvYyBmYWlsZWQgaW4gJXM6JWQuXG4iLAorKyAgICAgICAgICAgICAgICAg X19GSUxFX18sIF9fTElORV9fKTsKKysgICAgICAgIGdvdG8gR2V0SU1WYWx1ZXNNZXNzYWdlUHJv Y19maW5pdDsKKysgICAgfQorICAgICBtZW1zZXQgKGltX2F0dHJJRF9saXN0LCAwLCBzaXplb2Yg KENBUkQxNikqMjApOworICAgICBuYW1lX2xpc3QgPSAoY2hhciAqKiltYWxsb2Moc2l6ZW9mKGNo YXIgKikgKiAyMCk7CisrICAgIGlmICghbmFtZV9saXN0KSB7CisrICAgICAgICBmcHJpbnRmIChz dGRlcnIsICIoWElNLUlNZGtpdCkgV0FSTklORzogbWFsbG9jIGZhaWxlZCBpbiAlczolZC5cbiIs CisrICAgICAgICAgICAgICAgICBfX0ZJTEVfXywgX19MSU5FX18pOworKyAgICAgICAgZ290byBH ZXRJTVZhbHVlc01lc3NhZ2VQcm9jX2Zpbml0OworKyAgICB9CisgICAgIG1lbXNldChuYW1lX2xp c3QsIDAsIHNpemVvZihjaGFyICopICogMjApOworICAgICBudW1iZXIgPSAwOworICAgICB3aGls ZSAoRnJhbWVNZ3JJc0l0ZXJMb29wRW5kIChmbSwgJnN0YXR1cykgPT0gRmFsc2UpCitAQCAtNzky LDggKzg0OCwxMSBAQCBzdGF0aWMgdm9pZCBHZXRJTVZhbHVlc01lc3NhZ2VQcm9jIChYSU1TIGlt cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbV9hdHRy SURfbGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm bnVtYmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZs aXN0X2xlbik7CistICAgIGlmIChpbV9hdHRySURfbGlzdCkKKy0gICAgICAgIFhGcmVlIChpbV9h dHRySURfbGlzdCk7CisrICAgIGlmICghaW1fYXR0cmlidXRlX2xpc3QpIHsKKysgICAgICAgIGZw cmludGYgKHN0ZGVyciwgIihYSU0tSU1ka2l0KSBXQVJOSU5HOiBtYWxsb2MgZmFpbGVkIGluICVz OiVkLlxuIiwKKysgICAgICAgICAgICAgICAgIF9fRklMRV9fLCBfX0xJTkVfXyk7CisrICAgICAg ICBnb3RvIEdldElNVmFsdWVzTWVzc2FnZVByb2NfZmluaXQ7CisrICAgIH0KKyAgICAgLyplbmRp ZiovCisgCisgICAgIGZtID0gRnJhbWVNZ3JJbml0IChnZXRfaW1fdmFsdWVzX3JlcGx5X2ZyLAor QEAgLTgxNSwxMSArODc0LDcgQEAgc3RhdGljIHZvaWQgR2V0SU1WYWx1ZXNNZXNzYWdlUHJvYyAo WElNUyBpbXMsCisgICAgIGlmICghcmVwbHkpCisgICAgIHsKKyAgICAgICAgIF9YaTE4blNlbmRN ZXNzYWdlIChpbXMsIGNvbm5lY3RfaWQsIFhJTV9FUlJPUiwgMCwgMCwgMCk7CistICAgICAgICBG cmFtZU1nckZyZWUgKGZtKTsKKy0gICAgICAgIGZvciAoaSA9IDA7IGkgPCBpdGVyX2NvdW50OyBp KyspCistICAgICAgICAgICAgWEZyZWUoaW1fYXR0cmlidXRlX2xpc3RbaV0udmFsdWUpOworLSAg ICAgICAgWEZyZWUgKGltX2F0dHJpYnV0ZV9saXN0KTsKKy0gICAgICAgIHJldHVybjsKKysgICAg ICAgIGdvdG8gR2V0SU1WYWx1ZXNNZXNzYWdlUHJvY19maW5pdDsKKyAgICAgfQorICAgICAvKmVu ZGlmKi8KKyAgICAgbWVtc2V0IChyZXBseSwgMCwgdG90YWxfc2l6ZSk7CitAQCAtODQwLDEyICs4 OTUsMTcgQEAgc3RhdGljIHZvaWQgR2V0SU1WYWx1ZXNNZXNzYWdlUHJvYyAoWElNUyBpbXMsCisg ICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAgcmVwbHks CisgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbF9zaXplKTsKKy0gICAgRnJhbWVNZ3JGcmVl IChmbSk7CisgICAgIFhGcmVlIChyZXBseSk7CisgCistICAgIGZvciAoaSA9IDA7IGkgPCBpdGVy X2NvdW50OyBpKyspCistICAgICAgICBYRnJlZShpbV9hdHRyaWJ1dGVfbGlzdFtpXS52YWx1ZSk7 CistICAgIFhGcmVlIChpbV9hdHRyaWJ1dGVfbGlzdCk7CisrR2V0SU1WYWx1ZXNNZXNzYWdlUHJv Y19maW5pdDoKKysgICAgaWYgKGltX2F0dHJJRF9saXN0KQorKyAgICAgICAgWEZyZWUgKGltX2F0 dHJJRF9saXN0KTsKKysgICAgaWYgKGltX2F0dHJpYnV0ZV9saXN0KSB7CisrICAgICAgICBmb3Ig KGkgPSAwOyBpIDwgaXRlcl9jb3VudDsgaSsrKQorKyAgICAgICAgICAgIFhGcmVlKGltX2F0dHJp YnV0ZV9saXN0W2ldLnZhbHVlKTsKKysgICAgICAgIFhGcmVlIChpbV9hdHRyaWJ1dGVfbGlzdCk7 CisrICAgIH0KKysgICAgRnJhbWVNZ3JGcmVlIChmbSk7CisgfQorIAorIHN0YXRpYyB2b2lkIENy ZWF0ZUlDTWVzc2FnZVByb2MgKFhJTVMgaW1zLAorQEAgLTE0MzUsNiArMTQ5NSwxMSBAQCBzdGF0 aWMgdm9pZCBFbmNvZGluZ05lZ290aWF0b25NZXNzYWdlUHJvYyAoWElNUyBpbXMsCisgICAgIGlm IChieXRlX2xlbmd0aCA+IDApCisgICAgIHsKKyAgICAgICAgIGVuY19uZWdvLT5lbmNvZGluZyA9 IChYSU1TdHIgKikgbWFsbG9jIChzaXplb2YgKFhJTVN0cikqMTApOworKyAgICAgICAgaWYgKCFl bmNfbmVnby0+ZW5jb2RpbmcpIHsKKysgICAgICAgICAgICBmcHJpbnRmIChzdGRlcnIsICIoWElN LUlNZGtpdCkgV0FSTklORzogbWFsbG9jIGZhaWxlZCBpbiAlczolZC5cbiIsCisrICAgICAgICAg ICAgICAgICAgICAgX19GSUxFX18sIF9fTElORV9fKTsKKysgICAgICAgICAgICBnb3RvIEVuY29k aW5nTmVnb3RpYXRvbk1lc3NhZ2VQcm9jX2Zpbml0OworKyAgICAgICAgfQorICAgICAgICAgbWVt c2V0IChlbmNfbmVnby0+ZW5jb2RpbmcsIDAsIHNpemVvZiAoWElNU3RyKSoxMCk7CisgICAgICAg ICBpID0gMDsKKyAgICAgICAgIHdoaWxlIChGcmFtZU1ncklzSXRlckxvb3BFbmQgKGZtLCAmc3Rh dHVzKSA9PSBGYWxzZSkKK0BAIC0xNDQ2LDkgKzE1MTEsMjEgQEAgc3RhdGljIHZvaWQgRW5jb2Rp bmdOZWdvdGlhdG9uTWVzc2FnZVByb2MgKFhJTVMgaW1zLAorICAgICAgICAgICAgIEZyYW1lTWdy U2V0U2l6ZSAoZm0sIHN0cl9sZW5ndGgpOworICAgICAgICAgICAgIGVuY19uZWdvLT5lbmNvZGlu Z1tpXS5sZW5ndGggPSBzdHJfbGVuZ3RoOworICAgICAgICAgICAgIEZyYW1lTWdyR2V0VG9rZW4g KGZtLCBuYW1lKTsKKysgICAgICAgICAgICAvKiBJIGRvbid0IGtub3cgd2h5IGVuY29kaW5nW2ld Lm5hbWUgaXMgZGV0ZWN0ZWQgYXMgbGVhaworKyAgICAgICAgICAgICAqIHdpdGggLVdhbmFseXpl ci1tYWxsb2MtbGVhayBvcHRpb24gaW4gZ2NjIDExLjAuMS4KKysgICAgICAgICAgICAgKi8KKysj cHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKKysjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9y ZWQgIi1XYW5hbHl6ZXItbWFsbG9jLWxlYWsiCisgICAgICAgICAgICAgZW5jX25lZ28tPmVuY29k aW5nW2ldLm5hbWUgPSBtYWxsb2MgKHN0cl9sZW5ndGggKyAxKTsKKysgICAgICAgICAgICBpZiAo IShlbmNfbmVnby0+ZW5jb2RpbmdbaV0ubmFtZSkpIHsKKysgICAgICAgICAgICAgICAgZnByaW50 ZiAoc3RkZXJyLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAiKFhJTS1JTWRraXQpIFdBUk5J Tkc6IG1hbGxvYyBmYWlsZWQgaW4gJXM6JWQuXG4iLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICBfX0ZJTEVfXywgX19MSU5FX18pOworKyAgICAgICAgICAgICAgICBnb3RvIEVuY29kaW5nTmVn b3RpYXRvbk1lc3NhZ2VQcm9jX2Zpbml0OworKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICBz dHJuY3B5IChlbmNfbmVnby0+ZW5jb2RpbmdbaV0ubmFtZSwgbmFtZSwgc3RyX2xlbmd0aCk7Cisg ICAgICAgICAgICAgZW5jX25lZ28tPmVuY29kaW5nW2ldLm5hbWVbc3RyX2xlbmd0aF0gPSAnXDAn OworKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCisgICAgICAgICAgICAgaSsrOworICAgICAg ICAgfQorICAgICAgICAgLyplbmR3aGlsZSovCitAQCAtMTQ2MCwyMCArMTUzNywzNyBAQCBzdGF0 aWMgdm9pZCBFbmNvZGluZ05lZ290aWF0b25NZXNzYWdlUHJvYyAoWElNUyBpbXMsCisgICAgIGlm IChieXRlX2xlbmd0aCA+IDApCisgICAgIHsKKyAgICAgICAgIGVuY19uZWdvLT5lbmNvZGluZ2lu Zm8gPSAoWElNU3RyICopIG1hbGxvYyAoc2l6ZW9mIChYSU1TdHIpKjEwKTsKKysgICAgICAgIGlm ICghZW5jX25lZ28tPmVuY29kaW5naW5mbykgeworKyAgICAgICAgICAgIGZwcmludGYgKHN0ZGVy ciwgIihYSU0tSU1ka2l0KSBXQVJOSU5HOiBtYWxsb2MgZmFpbGVkIGluICVzOiVkLlxuIiwKKysg ICAgICAgICAgICAgICAgICAgICBfX0ZJTEVfXywgX19MSU5FX18pOworKyAgICAgICAgICAgIGdv dG8gRW5jb2RpbmdOZWdvdGlhdG9uTWVzc2FnZVByb2NfZmluaXQ7CisrICAgICAgICB9CisgICAg ICAgICBtZW1zZXQgKGVuY19uZWdvLT5lbmNvZGluZ2luZm8sIDAsIHNpemVvZiAoWElNU3RyKSox MCk7CisgICAgICAgICBpID0gMDsKKyAgICAgICAgIHdoaWxlIChGcmFtZU1ncklzSXRlckxvb3BF bmQgKGZtLCAmc3RhdHVzKSA9PSBGYWxzZSkKKyAgICAgICAgIHsKKyAgICAgICAgICAgICBjaGFy ICpuYW1lOworICAgICAgICAgICAgIGludCBzdHJfbGVuZ3RoOworLSAgICAgICAgICAgIAorKwor ICAgICAgICAgICAgIEZyYW1lTWdyR2V0VG9rZW4gKGZtLCBzdHJfbGVuZ3RoKTsKKyAgICAgICAg ICAgICBGcmFtZU1nclNldFNpemUgKGZtLCBzdHJfbGVuZ3RoKTsKKyAgICAgICAgICAgICBlbmNf bmVnby0+ZW5jb2RpbmdpbmZvW2ldLmxlbmd0aCA9IHN0cl9sZW5ndGg7CisgICAgICAgICAgICAg RnJhbWVNZ3JHZXRUb2tlbiAoZm0sIG5hbWUpOworKyAgICAgICAgICAgIC8qIEkgZG9uJ3Qga25v dyB3aHkgZW5jb2RpbmdpbmZvW2ldLm5hbWUgaXMgZGV0ZWN0ZWQgYXMgbGVhaworKyAgICAgICAg ICAgICAqIHdpdGggLVdhbmFseXplci1tYWxsb2MtbGVhayBvcHRpb24gaW4gZ2NjIDExLjAuMS4K KysgICAgICAgICAgICAgKi8KKysjcHJhZ21hIEdDQyBkaWFnbm9zdGljIHB1c2gKKysjcHJhZ21h IEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XYW5hbHl6ZXItbWFsbG9jLWxlYWsiCisgICAgICAg ICAgICAgZW5jX25lZ28tPmVuY29kaW5naW5mb1tpXS5uYW1lID0gbWFsbG9jIChzdHJfbGVuZ3Ro ICsgMSk7CisrICAgICAgICAgICAgaWYgKCFlbmNfbmVnby0+ZW5jb2RpbmdpbmZvW2ldLm5hbWUp IHsKKysgICAgICAgICAgICAgICAgZnByaW50ZiAoc3RkZXJyLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAiKFhJTS1JTWRraXQpIFdBUk5JTkc6IG1hbGxvYyBmYWlsZWQgaW4gJXM6JWQuXG4i LAorKyAgICAgICAgICAgICAgICAgICAgICAgICBfX0ZJTEVfXywgX19MSU5FX18pOworKyAgICAg ICAgICAgICAgICBnb3RvIEVuY29kaW5nTmVnb3RpYXRvbk1lc3NhZ2VQcm9jX2Zpbml0OworKyAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICBzdHJuY3B5IChlbmNfbmVnby0+ZW5jb2RpbmdpbmZv W2ldLm5hbWUsIG5hbWUsIHN0cl9sZW5ndGgpOworICAgICAgICAgICAgIGVuY19uZWdvLT5lbmNv ZGluZ2luZm9baV0ubmFtZVtzdHJfbGVuZ3RoXSA9ICdcMCc7CisrI3ByYWdtYSBHQ0MgZGlhZ25v c3RpYyBwb3AKKyAgICAgICAgICAgICBpKys7CisgICAgICAgICB9CisgICAgICAgICAvKmVuZHdo aWxlKi8KK0BAIC0xNTI0LDYgKzE2MTgsNyBAQCBzdGF0aWMgdm9pZCBFbmNvZGluZ05lZ290aWF0 b25NZXNzYWdlUHJvYyAoWElNUyBpbXMsCisgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbF9z aXplKTsKKyAgICAgWEZyZWUgKHJlcGx5KTsKKyAKKytFbmNvZGluZ05lZ290aWF0b25NZXNzYWdl UHJvY19maW5pdDoKKyAgICAgLyogZnJlZSBkYXRhIGZvciBlbmNvZGluZyBsaXN0ICovCisgICAg IGlmIChlbmNfbmVnby0+ZW5jb2RpbmcpCisgICAgIHsKK2RpZmYgLS1naXQgYS91dGlsL0lNZGtp dC9pMThuVXRpbC5jIGIvdXRpbC9JTWRraXQvaTE4blV0aWwuYworaW5kZXggMTA5ZGNkZjkuLmM2 MjE1NGU3IDEwMDY0NAorLS0tIGEvdXRpbC9JTWRraXQvaTE4blV0aWwuYworKysrIGIvdXRpbC9J TWRraXQvaTE4blV0aWwuYworQEAgLTQ2LDYgKzQ2LDggQEAgX1hpMThuTmVlZFN3YXAgKFhpMThu IGkxOG5fY29yZSwgQ0FSRDE2IGNvbm5lY3RfaWQpCisgICAgIENBUkQ4IGltX2J5dGVPcmRlciA9 IGkxOG5fY29yZS0+YWRkcmVzcy5pbV9ieXRlT3JkZXI7CisgICAgIFhpMThuQ2xpZW50ICpjbGll bnQgPSBfWGkxOG5GaW5kQ2xpZW50IChpMThuX2NvcmUsIGNvbm5lY3RfaWQpOworIAorKyAgICBp ZiAoIWNsaWVudCkKKysgICAgICAgIHJldHVybiBUcnVlOworICAgICByZXR1cm4gKGNsaWVudC0+ Ynl0ZV9vcmRlciAhPSBpbV9ieXRlT3JkZXIpOworIH0KKyAKK0BAIC02Nyw2ICs2OSwxMSBAQCBY aTE4bkNsaWVudCAqX1hpMThuTmV3Q2xpZW50KFhpMThuIGkxOG5fY29yZSkKKyAJbmV3X2Nvbm5l Y3RfaWQgPSArK2Nvbm5lY3RfaWQ7CisgICAgIH0KKyAgICAgLyplbmRpZiovCisrICAgIGlmICgh Y2xpZW50KSB7CisrICAgICAgICBmcHJpbnRmIChzdGRlcnIsICIoWElNLUlNZGtpdCkgV0FSTklO RzogbWFsbG9jIGZhaWxlZCBpbiAlczolZC5cbiIsCisrICAgICAgICAgICAgICAgICBfX0ZJTEVf XywgX19MSU5FX18pOworKyAgICAgICAgcmV0dXJuIE5VTEw7CisrICAgIH0KKyAgICAgbWVtc2V0 IChjbGllbnQsIDAsIHNpemVvZiAoWGkxOG5DbGllbnQpKTsKKyAgICAgY2xpZW50LT5jb25uZWN0 X2lkID0gbmV3X2Nvbm5lY3RfaWQ7CisgICAgIGNsaWVudC0+cGVuZGluZyA9IChYSU1QZW5kaW5n ICopIE5VTEw7CitAQCAtMTEzLDcgKzEyMCwxNCBAQCB2b2lkIF9YaTE4bkRlbGV0ZUNsaWVudCAo WGkxOG4gaTE4bl9jb3JlLCBDQVJEMTYgY29ubmVjdF9pZCkKKyAgICAgICAgICAgICAgICAgY2Nw MC0+bmV4dCA9IGNjcC0+bmV4dDsKKyAgICAgICAgICAgICAvKmVuZGlmKi8KKyAgICAgICAgICAg ICAvKiBwdXQgaXQgYmFjayB0byBmcmVlIGxpc3QgKi8KKysgICAgICAgICAgICAvKiBnY2MgMTEu MC4xIHdhcm5zIGRlcmVmZXJlbmNlIG9mIE5VTEwgd2l0aAorKyAgICAgICAgICAgICAqIC1XYW5h bHl6ZXItbnVsbC1kZXJlZmVyZW5jZSBvcHRpb24KKysgICAgICAgICAgICAgKiBidXQgdGFyZ2V0 IHNob3VsZCBub3QgYmUgTlVMTC4KKysgICAgICAgICAgICAgKi8KKysjcHJhZ21hIEdDQyBkaWFn bm9zdGljIHB1c2gKKysjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XYW5hbHl6ZXIt bnVsbC1kZXJlZmVyZW5jZSIKKyAgICAgICAgICAgICB0YXJnZXQtPm5leHQgPSBpMThuX2NvcmUt PmFkZHJlc3MuZnJlZV9jbGllbnRzOworKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCisgICAg ICAgICAgICAgaTE4bl9jb3JlLT5hZGRyZXNzLmZyZWVfY2xpZW50cyA9IHRhcmdldDsKKyAgICAg ICAgICAgICByZXR1cm47CisgICAgICAgICB9CitAQCAtMTYxLDYgKzE3NSwxMiBAQCB2b2lkIF9Y aTE4blNlbmRNZXNzYWdlIChYSU1TIGltcywKKyAKKyAgICAgcmVwbHlfbGVuZ3RoID0gaGVhZGVy X3NpemUgKyBsZW5ndGg7CisgICAgIHJlcGx5ID0gKHVuc2lnbmVkIGNoYXIgKikgbWFsbG9jIChy ZXBseV9sZW5ndGgpOworKyAgICBpZiAoIXJlcGx5KSB7CisrICAgICAgICBfWGkxOG5TZW5kTWVz c2FnZSAoaW1zLCBjb25uZWN0X2lkLCBYSU1fRVJST1IsIDAsIDAsIDApOworKyAgICAgICAgWEZy ZWUgKHJlcGx5X2hkcik7CisrICAgICAgICBGcmFtZU1nckZyZWUgKGZtKTsKKysgICAgICAgIHJl dHVybjsKKysgICAgfQorICAgICByZXBseXAgPSByZXBseTsKKyAgICAgbWVtbW92ZSAocmVwbHks IHJlcGx5X2hkciwgaGVhZGVyX3NpemUpOworICAgICByZXBseXAgKz0gaGVhZGVyX3NpemU7Citk aWZmIC0tZ2l0IGEvdXRpbC9JTWRraXQvaTE4blguYyBiL3V0aWwvSU1ka2l0L2kxOG5YLmMKK2lu ZGV4IDVlNWMxNWZhLi4xNTJmYzRlOCAxMDA2NDQKKy0tLSBhL3V0aWwvSU1ka2l0L2kxOG5YLmMK KysrKyBiL3V0aWwvSU1ka2l0L2kxOG5YLmMKK0BAIC01OCwxNiArNTgsMjEgQEAgc3RhdGljIFhD bGllbnQgKk5ld1hDbGllbnQgKFhpMThuIGkxOG5fY29yZSwgV2luZG93IG5ld19jbGllbnQpCisg ICAgIFhDbGllbnQgKnhfY2xpZW50OworIAorICAgICB4X2NsaWVudCA9IChYQ2xpZW50ICopIG1h bGxvYyAoc2l6ZW9mIChYQ2xpZW50KSk7CistICAgIHhfY2xpZW50LT5jbGllbnRfd2luID0gbmV3 X2NsaWVudDsKKy0gICAgeF9jbGllbnQtPmFjY2VwdF93aW4gPSBYQ3JlYXRlU2ltcGxlV2luZG93 IChkcHksCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg RGVmYXVsdFJvb3RXaW5kb3coZHB5KSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAwLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDAsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMSwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAxLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDEsCistICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwK Ky0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKTsKKysg ICAgaWYgKCF4X2NsaWVudCkgeworKyAgICAgICAgZnByaW50ZiAoc3RkZXJyLCAiKFhJTS1JTWRr aXQpIFdBUk5JTkc6IG1hbGxvYyBmYWlsZWQgaW4gJXM6JWQuXG4iLAorKyAgICAgICAgICAgICAg ICAgX19GSUxFX18sIF9fTElORV9fKTsKKysgICAgfSBlbHNlIHsKKysgICAgICAgIHhfY2xpZW50 LT5jbGllbnRfd2luID0gbmV3X2NsaWVudDsKKysgICAgICAgIHhfY2xpZW50LT5hY2NlcHRfd2lu ID0gWENyZWF0ZVNpbXBsZVdpbmRvdyAoZHB5LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0Um9vdFdpbmRvdyhkcHkpLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKTsKKysgICAg fQorICAgICBjbGllbnQtPnRyYW5zX3JlYyA9IHhfY2xpZW50OworICAgICByZXR1cm4gKChYQ2xp ZW50ICopIHhfY2xpZW50KTsKKyB9CitAQCAtMjE5LDcgKzIyNCw3IEBAIHN0YXRpYyB2b2lkIFJl YWRYQ29ubmVjdE1lc3NhZ2UgKFhJTVMgaW1zLCBYQ2xpZW50TWVzc2FnZUV2ZW50ICpldikKKyAg ICAgfQorICAgICAvKmVuZGlmKi8KKyAgICAgX1hSZWdpc3RlckZpbHRlckJ5VHlwZSAoZHB5LAor LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB4X2NsaWVudC0+YWNjZXB0X3dpbiwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgeF9jbGllbnQgPyB4X2NsaWVudC0+YWNjZXB0X3dpbiA6 IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsaWVudE1lc3NhZ2UsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIENsaWVudE1lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFdhaXRYSU1Qcm90b2NvbCwKK0BAIC0yMjksNyArMjM0LDcgQEAgc3RhdGljIHZv aWQgUmVhZFhDb25uZWN0TWVzc2FnZSAoWElNUyBpbXMsIFhDbGllbnRNZXNzYWdlRXZlbnQgKmV2 KQorICAgICBldmVudC54Y2xpZW50LndpbmRvdyA9IG5ld19jbGllbnQ7CisgICAgIGV2ZW50Lnhj bGllbnQubWVzc2FnZV90eXBlID0gc3BlYy0+Y29ubmVjdF9yZXF1ZXN0OworICAgICBldmVudC54 Y2xpZW50LmZvcm1hdCA9IDMyOworLSAgICBldmVudC54Y2xpZW50LmRhdGEubFswXSA9IHhfY2xp ZW50LT5hY2NlcHRfd2luOworKyAgICBldmVudC54Y2xpZW50LmRhdGEubFswXSA9IHhfY2xpZW50 ID8geF9jbGllbnQtPmFjY2VwdF93aW4gOiAwOworICAgICBldmVudC54Y2xpZW50LmRhdGEubFsx XSA9IG1ham9yX3ZlcnNpb247CisgICAgIGV2ZW50LnhjbGllbnQuZGF0YS5sWzJdID0gbWlub3Jf dmVyc2lvbjsKKyAgICAgZXZlbnQueGNsaWVudC5kYXRhLmxbM10gPSBYQ01fREFUQV9MSU1JVDsK Ky0tIAorMi4yOC4wCisKCmRpZmYgLS1naXQgYS9pYnVzLnNwZWMgYi9pYnVzLnNwZWMKaW5kZXgg OGM0OTNkOC4uMWQwZWQ0OCAxMDA2NDQKLS0tIGEvaWJ1cy5zcGVjCisrKyBiL2lidXMuc3BlYwpA QCAtMzgsNyArMzgsNyBAQAogCiBOYW1lOiAgICAgICAgICAgaWJ1cwogVmVyc2lvbjogICAgICAg IDEuNS4yNAotUmVsZWFzZTogICAgICAgIDMlez9kaXN0fQorUmVsZWFzZTogICAgICAgIDQlez9k aXN0fQogU3VtbWFyeTogICAgICAgIEludGVsbGlnZW50IElucHV0IEJ1cyBmb3IgTGludXggT1MK IExpY2Vuc2U6ICAgICAgICBMR1BMdjIrCiBVUkw6ICAgICAgICAgICAgaHR0cHM6Ly9naXRodWIu Y29tL2lidXMvJW5hbWUvd2lraQpAQCAtMjY2LDYgKzI2Niw4IEBAIHRoZSBmdW5jdGlvbmFsaXR5 IG9mIHRoZSBpbnN0YWxsZWQgJXtuYW1lfSBwYWNrYWdlLgogIyBjcCBjbGllbnQvZ3RrMi9pYnVz aW1jb250ZXh0LmMgY2xpZW50L2d0azMvaWJ1c2ltY29udGV4dC5jIHx8IDoKICMgY3AgY2xpZW50 L2d0azIvaWJ1c2ltLmMgY2xpZW50L2d0azMvaWJ1c2ltLmMgfHwgOgogIyBjcCBjbGllbnQvZ3Rr Mi9pYnVzaW1jb250ZXh0LmMgY2xpZW50L2d0azQvaWJ1c2ltY29udGV4dC5jIHx8IDoKK2NwIGNs aWVudC9ndGsyL2lidXNpbWNvbnRleHQuYyBjbGllbnQvZ3RrMy9pYnVzaW1jb250ZXh0LmMgfHwg OgorY3AgY2xpZW50L2d0azIvaWJ1c2ltY29udGV4dC5jIGNsaWVudC9ndGs0L2lidXNpbWNvbnRl eHQuYyB8fCA6CiAKIAogIyBwcmVwIHRlc3QKQEAgLTM0MCw2ICszNDIsMTAgQEAgZWNobyAiTm9E aXNwbGF5PXRydWUiID4+ICRSUE1fQlVJTERfUk9PVCV7X2RhdGFkaXJ9L2FwcGxpY2F0aW9ucy9v cmcuZnJlZWRlc2t0b3AKICVlbmRpZgogI2VjaG8gIlgtR05PTUUtQXV0b3N0YXJ0LWVuYWJsZWQ9 ZmFsc2UiID4+ICRSUE1fQlVJTERfUk9PVCUle19zeXNjb25mZGlyfS94ZGcvYXV0b3N0YXJ0L2li dXMuZGVza3RvcAogCitIQVNfUFJFRklYPSQoZ3JlcCBwcmVmaXggJFJQTV9CVUlMRF9ST09UJXtf YmluZGlyfS9pYnVzLXNldHVwIHwgd2MgLWwpCitbIHgiJEhBU19QUkVGSVgiID09IHgxIF0gJiYg XAorICBzZWQgLWkgLWUgJy9wcmVmaXgvZCcgJFJQTV9CVUlMRF9ST09UJXtfYmluZGlyfS9pYnVz LXNldHVwCisKIGRlc2t0b3AtZmlsZS1pbnN0YWxsIC0tZGVsZXRlLW9yaWdpbmFsICAgICAgICAg IFwKICAgLS1kaXIgJFJQTV9CVUlMRF9ST09UJXtfZGF0YWRpcn0vYXBwbGljYXRpb25zIFwKICAg JFJQTV9CVUlMRF9ST09UJXtfZGF0YWRpcn0vYXBwbGljYXRpb25zLyoKQEAgLTQ4OCw2ICs0OTQs MTAgQEAgZGNvbmYgdXBkYXRlIHx8IDoKICV7X2RhdGFkaXJ9L2luc3RhbGxlZC10ZXN0cy9pYnVz CiAKICVjaGFuZ2Vsb2cKKyogRnJpIE1heSAyMSAyMDIxIFRha2FvIEZ1aml3YXJhIDx0ZnVqaXdh ckByZWRoYXQuY29tPiAtIDEuNS4yNC00CistIEZpeCBjb3ZzY2FuIHJldmlld3MKKy0gSW1wbGVt ZW50IGlidXNfaW1fY29udGV4dF9zZXRfc3Vycm91bmRpbmdfd2l0aF9zZWxlY3Rpb24oKQorCiAq IFNhdCBNYXIgMjAgMjAyMSBUYWthbyBGdWppd2FyYSA8dGZ1aml3YXJAcmVkaGF0LmNvbT4gLSAx LjUuMjQtMwogLSBEb24ndCBvdXRwdXQgRkFJTCBpZiB0aGUgYWN0dWFsIGZhaWx1cmUgaXMgMCBm b3IgRmVkb3JhIENJCiAK