From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] fix-dup-patch: [s390x] Backport arch12 support and other s390x fixes (RH BZ 1420304). Date: Thu, 23 Jul 2026 18:32:59 GMT Message-ID: <178483157984.1.4950574244451703479.rpms-gdb-4f1de05c3fac@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: 4f1de05c3fac677d47f66cf08f8695ad3f41a168 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2RiCkJyYW5jaCA6 IGZpeC1kdXAtcGF0Y2gKQ29tbWl0IDogNGYxZGUwNWMzZmFjNjc3ZDQ3ZjY2Y2YwOGY4Njk1YWQz ZjQxYTE2OApBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNv bT4KRGF0ZSAgIDogMjAxNy0wOC0xOVQyMjo0MDozMiswMjowMApTdGF0cyAgOiArNDc3MC8tMzc0 IGluIDM4IGZpbGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBt cy9nZGIvYy80ZjFkZTA1YzNmYWM2NzdkNDdmNjZjZjA4Zjg2OTVhZDNmNDFhMTY4P2JyYW5jaD1m aXgtZHVwLXBhdGNoCgpMb2c6CltzMzkweF0gQmFja3BvcnQgYXJjaDEyIHN1cHBvcnQgYW5kIG90 aGVyIHMzOTB4IGZpeGVzIChSSCBCWiAxNDIwMzA0KS4KCi0tLQpkaWZmIC0tZ2l0IGEvZ2RiLXJo YnoxNDIwMzA0LXMzOTB4LTAxb2YzNS5wYXRjaCBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0wMW9m MzUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjA2YmRkOQotLS0g L2Rldi9udWxsCisrKyBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0wMW9mMzUucGF0Y2gKQEAgLTAs MCArMSw2MiBAQAorY29tbWl0IGQ3YWI0OTExZjhhYTNlMWNkMDZlY2U0MGY3NGQwYjRhNTMyZDZh MTAKK0F1dGhvcjogQW5kcmVhcyBLcmViYmVsIDxrcmViYmVsQGxpbnV4LnZuZXQuaWJtLmNvbT4K K0RhdGU6ICAgTW9uIE1heSA4IDE5OjEwOjQyIDIwMTcgKzAyMDAKKworICAgIFMvMzkwOiBGaXgg aWZ1bmMgbWlzc2luZyBydW50aW1lIHJlbG9jCisgICAgCisgICAgVGhpcyBmaXhlcyBhIHByb2Js ZW0gd2l0aCBhIG1pc3NpbmcgUl8zOTBfNjQgcmVsb2MgYWdhaW5zdCAuZGF0YSBmb3IgYQorICAg IGZ1bmN0aW9uIHBvaW50ZXIgdG8gYW4gaWZ1bmMgZnVuY3Rpb24uCisgICAgCisgICAgTm8gcmVn cmVzc2lvbnMgb24gczM5MHguCisgICAgCisgICAgUHVzaGVkIHRvIG1haW5saW5lLgorICAgIAor ICAgIGJmZC9DaGFuZ2VMb2c6CisgICAgCisgICAgMjAxNy0wNS0wOCAgQW5kcmVhcyBLcmViYmVs ICA8a3JlYmJlbEBsaW51eC52bmV0LmlibS5jb20+CisgICAgCisgICAgICAgICAgICAqIGVsZi1z MzkwLWNvbW1vbi5jOiBEb24ndCBjaGVjayBub25fZ290X3JlZiBmbGFnLgorICAgICAgICAgICAg KiBlbGYzMi1zMzkwLmMgKGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KKyAg ICAgICAgICAgICogZWxmNjQtczM5MC5jIChlbGZfczM5MF9yZWxvY2F0ZV9zZWN0aW9uKTogTGlr ZXdpc2UuCisKKy0tLSBhL2JmZC9lbGYtczM5MC1jb21tb24uYworKysrIGIvYmZkL2VsZi1zMzkw LWNvbW1vbi5jCitAQCAtMTYxLDkgKzE2MSw3IEBAIGtlZXA6CisgICAgICAgaC0+dHlwZSA9IFNU VF9GVU5DOworICAgICB9CisgCistICAvKiBXZSBuZWVkIGR5bmFtaWMgcmVsb2NhdGlvbiBmb3Ig U1RUX0dOVV9JRlVOQyBzeW1ib2wgb25seSB3aGVuCistICAgICB0aGVyZSBpcyBhIG5vbi1HT1Qg cmVmZXJlbmNlIGluIGEgc2hhcmVkIG9iamVjdC4gICovCistICBpZiAoIWJmZF9saW5rX3BpYyAo aW5mbykgfHwgIWgtPm5vbl9nb3RfcmVmKQorKyAgaWYgKCFiZmRfbGlua19waWMgKGluZm8pKQor ICAgICAqaGVhZCA9IE5VTEw7CisgCisgICAvKiBGaW5hbGx5LCBhbGxvY2F0ZSBzcGFjZS4gICov CistLS0gYS9iZmQvZWxmMzItczM5MC5jCisrKysgYi9iZmQvZWxmMzItczM5MC5jCitAQCAtMjc3 NCw3ICsyNzc0LDcgQEAgZWxmX3MzOTBfcmVsb2NhdGVfc2VjdGlvbiAoYmZkICpvdXRwdXRfYmZk LAorIAkgICAgICAmJiBzMzkwX2lzX2lmdW5jX3N5bWJvbF9wIChoKQorIAkgICAgICAmJiBoLT5k ZWZfcmVndWxhcikKKyAJICAgIHsKKy0JICAgICAgaWYgKCFiZmRfbGlua19waWMgKGluZm8pIHx8 ICFoLT5ub25fZ290X3JlZikKKysJICAgICAgaWYgKCFiZmRfbGlua19waWMgKGluZm8pKQorIAkJ eworIAkJICAvKiBGb3IgYSBub24tc2hhcmVkIG9iamVjdCBTVFRfR05VX0lGVU5DIHN5bWJvbCBt dXN0CisgCQkgICAgIGdvIHRocm91Z2ggUExULiAgKi8KKy0tLSBhL2JmZC9lbGY2NC1zMzkwLmMK KysrKyBiL2JmZC9lbGY2NC1zMzkwLmMKK0BAIC0yNzM3LDEwICsyNzM3LDExIEBAIGVsZl9zMzkw X3JlbG9jYXRlX3NlY3Rpb24gKGJmZCAqb3V0cHV0X2JmZCwKKyAJICAgICAgJiYgczM5MF9pc19p ZnVuY19zeW1ib2xfcCAoaCkKKyAJICAgICAgJiYgaC0+ZGVmX3JlZ3VsYXIpCisgCSAgICB7Cist CSAgICAgIGlmICghYmZkX2xpbmtfcGljIChpbmZvKSB8fCAhaC0+bm9uX2dvdF9yZWYpCisrCSAg ICAgIGlmICghYmZkX2xpbmtfcGljIChpbmZvKSkKKyAJCXsKKy0JCSAgLyogRm9yIGEgbm9uLXNo YXJlZCBvYmplY3QgU1RUX0dOVV9JRlVOQyBzeW1ib2wgbXVzdAorLQkJICAgICBnbyB0aHJvdWdo IFBMVC4gICovCisrCQkgIC8qIEZvciBhIG5vbi1zaGFyZWQgb2JqZWN0IHRoZSBzeW1ib2wgd2ls bCBub3QKKysJCSAgICAgY2hhbmdlLiAgSGVuY2Ugd2UgY2FuIHdyaXRlIHRoZSBhZGRyZXNzIG9m IHRoZQorKwkJICAgICB0YXJnZXQgSVBMVCBzbG90IG5vdy4gICovCisgCQkgIHJlbG9jYXRpb24g PSAoaHRhYi0+ZWxmLmlwbHQtPm91dHB1dF9zZWN0aW9uLT52bWEKKyAJCQkJKyBodGFiLT5lbGYu aXBsdC0+b3V0cHV0X29mZnNldAorIAkJCQkrIGggLT5wbHQub2Zmc2V0KTsKCmRpZmYgLS1naXQg YS9nZGItcmhiejE0MjAzMDQtczM5MHgtMDJvZjM1LnBhdGNoIGIvZ2RiLXJoYnoxNDIwMzA0LXMz OTB4LTAyb2YzNS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNzdm NTA1Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTAyb2YzNS5wYXRj aApAQCAtMCwwICsxLDQzIEBACitjb21taXQgYTBhMTEwYjBkZDUwNzczNzNjNDEwMmQxNTAyMTMw ZWIxNTljMzY2YgorQXV0aG9yOiBBbmRyZWFzIEtyZWJiZWwgPGtyZWJiZWxAbGludXgudm5ldC5p Ym0uY29tPgorRGF0ZTogICBXZWQgTWF5IDE3IDEyOjM5OjM5IDIwMTcgKzAyMDAKKworICAgIFMv MzkwOiBGaXggYXJjaCBsZXZlbCBvZiBwY2ttbyBpbnN0cnVjdGlvbi4KKyAgICAKKyAgICBGaXgg d3JvbmcgYXJjaGl0ZWN0dXJlIGxldmVsIG9mIFBDS01PIGluc3RydWN0aW9uLgorICAgIAorICAg IENvbW1pdHRlZCB0byBtYWlubGluZS4KKyAgICAKKyAgICBvcGNvZGVzL0NoYW5nZUxvZzoKKyAg ICAKKyAgICAyMDE3LTA1LTE3ICBBbmRyZWFzIEtyZWJiZWwgIDxrcmViYmVsQGxpbnV4LnZuZXQu aWJtLmNvbT4KKyAgICAKKyAgICAgICAgICAgICogczM5MC1vcGMudHh0OiBQQ0tNTyBjaGFuZ2Ug YXJjaCBsZXZlbCB0byB6MTk2LgorICAgIAorICAgIGdhcy9DaGFuZ2VMb2c6CisgICAgCisgICAg MjAxNy0wNS0xNyAgQW5kcmVhcyBLcmViYmVsICA8a3JlYmJlbEBsaW51eC52bmV0LmlibS5jb20+ CisgICAgCisgICAgICAgICAgICAqIHRlc3RzdWl0ZS9nYXMvczM5MC96YXJjaC16MTAuZDogUmVt b3ZlIHBja21vLgorICAgICAgICAgICAgKiB0ZXN0c3VpdGUvZ2FzL3MzOTAvemFyY2gtejEwLnM6 IFJlbW92ZSBwY2ttby4KKyAgICAgICAgICAgICogdGVzdHN1aXRlL2dhcy9zMzkwL3phcmNoLXox OTYuZDogQWRkIHBja21vLgorICAgICAgICAgICAgKiB0ZXN0c3VpdGUvZ2FzL3MzOTAvemFyY2gt ejE5Ni5zOiBBZGQgcGNrbW8uCisKKy0tLSBhL29wY29kZXMvczM5MC1vcGMudHh0CisrKysgYi9v cGNvZGVzL3MzOTAtb3BjLnR4dAorQEAgLTk3Niw3ICs5NzYsNiBAQCBiMjg2IHFzaSBTX1JEICJx dWVyeSBzYW1wbGluZyBpbmZvcm1hdGlvbiIgejEwIHphcmNoCisgYjJlMCBzY2N0ciBSUkVfUlIg InNldCBjcHUgY291bnRlciIgejEwIHphcmNoCisgYjJlMSBzcGN0ciBSUkVfUlIgInNldCBwZXJp cGhlcmFsIGNvdW50ZXIiIHoxMCB6YXJjaAorIGIyODAgbHBwIFNfUkQgImxvYWQgcHJvZ3JhbSBw YXJhbWV0ZXIiIHoxMCB6YXJjaAorLWI5MjggcGNrbW8gUlJFXzAwICJwZXJmb3JtIGNyeXB0b2dy YXBoaWMga2V5IG1hbmFnZW1lbnQgb3BlcmF0aW9uIiB6MTAgemFyY2gKKyAKKyAjIFRoZSBuZXcg aW5zdHJ1Y3Rpb25zIG9mIHRoZSBJQk0gekVudGVycHJpc2UgejE5NgorIGI5YzggYWhoaHIgUlJG X1IwUlIyICJhZGQgaGlnaCBoaWdoIiB6MTk2IHphcmNoCitAQCAtMTExNiw2ICsxMTE1LDcgQEAg YjkyYSBrbWYgUlJFX1JSICJjaXBoZXIgbWVzc2FnZSB3aXRoIENGQiIgejE5NiB6YXJjaAorIGI5 MmIga21vIFJSRV9SUiAiY2lwaGVyIG1lc3NhZ2Ugd2l0aCBPRkIiIHoxOTYgemFyY2gKKyBiOTJj IHBjYyBSUkVfMDAgInBlcmZvcm0gY3J5cHRvZ3JhcGhpYyBjb21wdXRhdGlvbiIgejE5NiB6YXJj aAorIGI5MmQga21jdHIgUlJGX1IwUlIgImNpcGhlciBtZXNzYWdlIHdpdGggY291bnRlciIgejE5 NiB6YXJjaAorK2I5MjggcGNrbW8gUlJFXzAwICJwZXJmb3JtIGNyeXB0b2dyYXBoaWMga2V5IG1h bmFnZW1lbnQgb3BlcmF0aW9uIiB6MTk2IHphcmNoCisgCisgIyBUaGUgbmV3IGluc3RydWN0aW9u cyBvZiB0aGUgSUJNIHpFbnRlcnByaXNlIEVDMTIKKyBiMmVjIGV0bmQgUlJFX1IwICJleHRyYWN0 IHRyYW5zYWN0aW9uIG5lc3RpbmcgZGVwdGgiIHpFQzEyIHphcmNoIGh0bQoKZGlmZiAtLWdpdCBh L2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0wM29mMzUucGF0Y2ggYi9nZGItcmhiejE0MjAzMDQtczM5 MHgtMDNvZjM1LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5YjFj NWYKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItcmhiejE0MjAzMDQtczM5MHgtMDNvZjM1LnBhdGNo CkBAIC0wLDAgKzEsNTIgQEAKK2NvbW1pdCBiZmNmYmU2MTFiNGQ3ZTY1MDIzNmY4YjhiYTdkMDcw NmNmZTZhMGI3CitBdXRob3I6IEFuZHJlYXMgS3JlYmJlbCA8a3JlYmJlbEBsaW51eC52bmV0Lmli bS5jb20+CitEYXRlOiAgIE1vbiBNYXkgMjkgMTI6MzM6MTUgMjAxNyArMDIwMAorCisgICAgUy8z OTA6IFJlbW92ZSBvcHRpb25hbCBvcGVyYW5kIGZsYWcuCisgICAgCisgICAgVGhlIHBlciBvcGVy YW5kIG9wdGlvbmFsIGZsYWcgaGFzbid0IGJlZW4gdXNlZCBmb3IgcXVpdGUgc29tZSB0aW1lLgor ICAgIENsZWFudXAgc29tZSByZW1haW5zLgorICAgIAorICAgIGluY2x1ZGUvQ2hhbmdlTG9nOgor ICAgIAorICAgIDIwMTctMDUtMzAgIEFuZHJlYXMgS3JlYmJlbCAgPGtyZWJiZWxAbGludXgudm5l dC5pYm0uY29tPgorICAgIAorICAgICAgICAgICAgKiBvcGNvZGUvczM5MC5oOiBSZW1vdmUgUzM5 MF9PUEVSQU5EX09QVElPTkFMLgorICAgIAorICAgIGdhcy9DaGFuZ2VMb2c6CisgICAgCisgICAg MjAxNy0wNS0zMCAgQW5kcmVhcyBLcmViYmVsICA8a3JlYmJlbEBsaW51eC52bmV0LmlibS5jb20+ CisgICAgCisgICAgICAgICAgICAqIGNvbmZpZy90Yy1zMzkwLmMgKG1kX2dhdGhlcl9vcGVyYW5k cyk6IFJlbW92ZSBjb2RlIGRlYWxpbmcgd2l0aAorICAgICAgICAgICAgUzM5MF9PUEVSQU5EX09Q VElPTkFMLgorCistLS0gYS9pbmNsdWRlL29wY29kZS9zMzkwLmgKKysrKyBiL2luY2x1ZGUvb3Bj b2RlL3MzOTAuaAorQEAgLTE1NiwyMSArMTU2LDE3IEBAIGV4dGVybiBjb25zdCBzdHJ1Y3QgczM5 MF9vcGVyYW5kIHMzOTBfb3BlcmFuZHNbXTsKKyAvKiBUaGlzIG9wZXJhbmQgaXMgYSBsZW5ndGgu ICAqLworICNkZWZpbmUgUzM5MF9PUEVSQU5EX0xFTkdUSCAweDIwMAorIAorLS8qIFRoaXMgb3Bl cmFuZCBpcyBvcHRpb25hbC4gT25seSBhIHNpbmdsZSBvcGVyYW5kIGF0IHRoZSBlbmQgb2YKKy0g ICB0aGUgaW5zdHJ1Y3Rpb24gbWF5IGJlIG9wdGlvbmFsLiAgKi8KKy0jZGVmaW5lIFMzOTBfT1BF UkFORF9PUFRJT05BTCAweDQwMAorLQorIC8qIFRoZSBvcGVyYW5kIG5lZWRzIHRvIGJlIGEgdmFs aWQgR1Agb3IgRlAgcmVnaXN0ZXIgcGFpci4gICovCistI2RlZmluZSBTMzkwX09QRVJBTkRfUkVH X1BBSVIgMHg4MDAKKysjZGVmaW5lIFMzOTBfT1BFUkFORF9SRUdfUEFJUiAweDQwMAorIAorIC8q IFRoaXMgb3BlcmFuZCBuYW1lcyBhIHZlY3RvciByZWdpc3Rlci4gIFRoZSBkaXNhc3NlbWJsZXIg dXNlcyB0aGlzCisgICAgdG8gcHJpbnQgcmVnaXN0ZXIgbmFtZXMgd2l0aCBhIGxlYWRpbmcgJ3Yn LiAgKi8KKy0jZGVmaW5lIFMzOTBfT1BFUkFORF9WUiAweDEwMDAKKysjZGVmaW5lIFMzOTBfT1BF UkFORF9WUiAweDgwMAorIAorLSNkZWZpbmUgUzM5MF9PUEVSQU5EX0NQMTYgMHgyMDAwCisrI2Rl ZmluZSBTMzkwX09QRVJBTkRfQ1AxNiAweDEwMDAKKyAKKy0jZGVmaW5lIFMzOTBfT1BFUkFORF9P UjEgMHg0MDAwCistI2RlZmluZSBTMzkwX09QRVJBTkRfT1IyIDB4ODAwMAorLSNkZWZpbmUgUzM5 MF9PUEVSQU5EX09SOCAweDEwMDAwCisrI2RlZmluZSBTMzkwX09QRVJBTkRfT1IxIDB4MjAwMAor KyNkZWZpbmUgUzM5MF9PUEVSQU5EX09SMiAweDQwMDAKKysjZGVmaW5lIFMzOTBfT1BFUkFORF9P UjggMHg4MDAwCisgCisgI2VuZGlmIC8qIFMzOTBfSCAqLwoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6 MTQyMDMwNC1zMzkweC0wNG9mMzUucGF0Y2ggYi9nZGItcmhiejE0MjAzMDQtczM5MHgtMDRvZjM1 LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjZTA4MTgKLS0tIC9k ZXYvbnVsbAorKysgYi9nZGItcmhiejE0MjAzMDQtczM5MHgtMDRvZjM1LnBhdGNoCkBAIC0wLDAg KzEsOTcgQEAKK2NvbW1pdCBhMDlmMjU4NjAxN2FlZWQ4MmZhMDdjOGJmZWE2Yzc1ODU5Mjk1YmQ5 CitBdXRob3I6IEFuZHJlYXMgS3JlYmJlbCA8a3JlYmJlbEBsaW51eC52bmV0LmlibS5jb20+CitE YXRlOiAgIE1vbiBNYXkgMjkgMTI6MzQ6NTYgMjAxNyArMDIwMAorCisgICAgUy8zOTA6IEltcHJv dmUgZXJyb3IgY2hlY2tpbmcgZm9yIG9wdGlvbmFsIG9wZXJhbmRzCisgICAgCisgICAgU28gZmFy IHdlIG9ubHkgaGFkIGFuIGluc3RydWN0aW9uIGZsYWcgd2hpY2ggbWFkZSBhbiBhcmJpdHJhcnkg bnVtYmVyCisgICAgb2Ygb3BlcmFuZHMgb3B0aW9uYWwuICBUaGlzIGxpbWl0cyBlcnJvciBjaGVj a2luZyBjYXBhYmlsaXRpZXMgZm9yCisgICAgaW5zdHJ1Y3Rpb25zIG1hcmtlZCB0aGF0IHdheS4g IFdpdGggdGhpcyBwYXRjaCB0aGUgb3B0cGFybSBmbGFnIG9ubHkKKyAgICBhbGxvd3MgYSBzaW5n bGUgb3B0aW9uYWwgcGFyYW1ldGVyIGFuZCBhbm90aGVyIG9uZSBpcyBhZGRlZCAob3B0cGFybTIp CisgICAgYWxsb3dpbmcgMiBvcHRpb25hbCBhcmd1bWVudHMuICBIb3BlZnVsbHkgd2Ugd29uJ3Qg bmVlZCBtb3JlIHRoYW4gdGhhdAorICAgIGluIHRoZSBmdXR1cmUuIFNvIGZhciB0aGVyZSB3aWxs IGJlIG9ubHkgYSBzaW5nbGUgdXNlIG9mIG9wdHBhcm0yLgorICAgIAorICAgIGdhcy9DaGFuZ2VM b2c6CisgICAgCisgICAgMjAxNy0wNS0zMCAgQW5kcmVhcyBLcmViYmVsICA8a3JlYmJlbEBsaW51 eC52bmV0LmlibS5jb20+CisgICAgCisgICAgICAgICAgICAqIGNvbmZpZy90Yy1zMzkwLmMgKG1k X2dhdGhlcl9vcGVyYW5kcyk6IFN1cHBvcnQgbmV3IG9wdHBhcm0yCisgICAgICAgICAgICBpbnN0 cnVjdGlvbiBmbGFnLgorICAgIAorICAgIGluY2x1ZGUvQ2hhbmdlTG9nOgorICAgIAorICAgIDIw MTctMDUtMzAgIEFuZHJlYXMgS3JlYmJlbCAgPGtyZWJiZWxAbGludXgudm5ldC5pYm0uY29tPgor ICAgIAorICAgICAgICAgICAgKiBvcGNvZGUvczM5MC5oOiBBZGQgbmV3IGluc3RydWN0aW9uIGZs YWdzIG9wdHBhcm0yLgorICAgIAorICAgIG9wY29kZXMvQ2hhbmdlTG9nOgorICAgIAorICAgIDIw MTctMDUtMzAgIEFuZHJlYXMgS3JlYmJlbCAgPGtyZWJiZWxAbGludXgudm5ldC5pYm0uY29tPgor ICAgIAorICAgICAgICAgICAgKiBzMzkwLWRpcy5jIChzMzkwX3ByaW50X2luc25fd2l0aF9vcGNv ZGUpOiBTdXBwb3J0IG5ldyBvcHRwYXJtMgorICAgICAgICAgICAgaW5zdHJ1Y3Rpb24gZmxhZy4K KyAgICAgICAgICAgICogczM5MC1ta29wYy5jIChtYWluKTogUmVjb2duaXplIHRoZSBuZXcgaW5z dHJ1Y3Rpb24gZmxhZyB3aGVuCisgICAgICAgICAgICBwYXJzaW5nIGluc3RydWN0aW9uIGxpc3Qu CisKKy0tLSBhL2luY2x1ZGUvb3Bjb2RlL3MzOTAuaAorKysrIGIvaW5jbHVkZS9vcGNvZGUvczM5 MC5oCitAQCAtNDgsMTAgKzQ4LDExIEBAIGVudW0gczM5MF9vcGNvZGVfY3B1X3ZhbAorIAorIC8q IEluc3RydWN0aW9uIHNwZWNpZmljIGZsYWdzLiAgKi8KKyAjZGVmaW5lIFMzOTBfSU5TVFJfRkxB R19PUFRQQVJNIDB4MQorKyNkZWZpbmUgUzM5MF9JTlNUUl9GTEFHX09QVFBBUk0yIDB4MgorIAor LSNkZWZpbmUgUzM5MF9JTlNUUl9GTEFHX0hUTSAweDIKKy0jZGVmaW5lIFMzOTBfSU5TVFJfRkxB R19WWCAweDQKKy0jZGVmaW5lIFMzOTBfSU5TVFJfRkxBR19GQUNJTElUWV9NQVNLIDB4NgorKyNk ZWZpbmUgUzM5MF9JTlNUUl9GTEFHX0hUTSAweDQKKysjZGVmaW5lIFMzOTBfSU5TVFJfRkxBR19W WCAweDgKKysjZGVmaW5lIFMzOTBfSU5TVFJfRkxBR19GQUNJTElUWV9NQVNLIDB4YworIAorIC8q IFRoZSBvcGNvZGUgdGFibGUgaXMgYW4gYXJyYXkgb2Ygc3RydWN0IHMzOTBfb3Bjb2RlLiAgKi8K KyAKKy0tLSBhL29wY29kZXMvczM5MC1kaXMuYworKysrIGIvb3Bjb2Rlcy9zMzkwLWRpcy5jCitA QCAtMjA2LDExICsyMDYsMjAgQEAgczM5MF9wcmludF9pbnNuX3dpdGhfb3Bjb2RlIChiZmRfdm1h IG1lbWFkZHIsCisgCisgICAgICAgLyogRm9yIGluc3RydWN0aW9ucyB3aXRoIGEgbGFzdCBvcHRp b25hbCBvcGVyYW5kIGRvbid0IHByaW50IGl0CisgCSBpZiB6ZXJvLiAgKi8KKy0gICAgICBpZiAo KG9wY29kZS0+ZmxhZ3MgJiBTMzkwX0lOU1RSX0ZMQUdfT1BUUEFSTSkKKysgICAgICBpZiAoKG9w Y29kZS0+ZmxhZ3MgJiAoUzM5MF9JTlNUUl9GTEFHX09QVFBBUk0gfCBTMzkwX0lOU1RSX0ZMQUdf T1BUUEFSTTIpKQorIAkgICYmIHZhbC51ID09IDAKKyAJICAmJiBvcGluZGV4WzFdID09IDApCisg CWJyZWFrOworIAorKyAgICAgIGlmICgob3Bjb2RlLT5mbGFncyAmIFMzOTBfSU5TVFJfRkxBR19P UFRQQVJNMikKKysJICAmJiB2YWwudSA9PSAwICYmIG9waW5kZXhbMV0gIT0gMCAmJiBvcGluZGV4 WzJdID09IDApCisrCXsKKysJICB1bmlvbiBvcGVyYW5kX3ZhbHVlIG5leHRfb3BfdmFsID0KKysJ ICAgIHMzOTBfZXh0cmFjdF9vcGVyYW5kIChidWZmZXIsIHMzOTBfb3BlcmFuZHMgKyBvcGluZGV4 WzFdKTsKKysJICBpZiAobmV4dF9vcF92YWwudSA9PSAwKQorKwkgICAgYnJlYWs7CisrCX0KKysK KyAgICAgICBpZiAoZmxhZ3MgJiBTMzkwX09QRVJBTkRfR1BSKQorIAlpbmZvLT5mcHJpbnRmX2Z1 bmMgKGluZm8tPnN0cmVhbSwgIiVjJSVyJXUiLCBzZXBhcmF0b3IsIHZhbC51KTsKKyAgICAgICBl bHNlIGlmIChmbGFncyAmIFMzOTBfT1BFUkFORF9GUFIpCistLS0gYS9vcGNvZGVzL3MzOTAtbWtv cGMuYworKysrIGIvb3Bjb2Rlcy9zMzkwLW1rb3BjLmMKK0BAIC00MTEsMTIgKzQxMSwxNiBAQCBt YWluICh2b2lkKQorIAkJJiYgKHN0cls3XSA9PSAwIHx8IHN0cls3XSA9PSAnLCcpKSB7CisgCSAg ICAgIGZsYWdfYml0cyB8PSBTMzkwX0lOU1RSX0ZMQUdfT1BUUEFSTTsKKyAJICAgICAgc3RyICs9 IDc7CisrCSAgICB9IGVsc2UgaWYgKHN0cm5jbXAgKHN0ciwgIm9wdHBhcm0yIiwgOCkgPT0gMAor KwkJICAgICAgICYmIChzdHJbOF0gPT0gMCB8fCBzdHJbOF0gPT0gJywnKSkgeworKwkgICAgICBm bGFnX2JpdHMgfD0gUzM5MF9JTlNUUl9GTEFHX09QVFBBUk0yOworKwkgICAgICBzdHIgKz0gODsK KyAJICAgIH0gZWxzZSBpZiAoc3RybmNtcCAoc3RyLCAiaHRtIiwgMykgPT0gMAorLQkJJiYgKHN0 clszXSA9PSAwIHx8IHN0clszXSA9PSAnLCcpKSB7CisrCQkgICAgICAgJiYgKHN0clszXSA9PSAw IHx8IHN0clszXSA9PSAnLCcpKSB7CisgCSAgICAgIGZsYWdfYml0cyB8PSBTMzkwX0lOU1RSX0ZM QUdfSFRNOworIAkgICAgICBzdHIgKz0gMzsKKyAJICAgIH0gZWxzZSBpZiAoc3RybmNtcCAoc3Ry LCAidngiLCAyKSA9PSAwCistCQkmJiAoc3RyWzJdID09IDAgfHwgc3RyWzJdID09ICcsJykpIHsK KysJCSAgICAgICAmJiAoc3RyWzJdID09IDAgfHwgc3RyWzJdID09ICcsJykpIHsKKyAJICAgICAg ZmxhZ19iaXRzIHw9IFMzOTBfSU5TVFJfRkxBR19WWDsKKyAJICAgICAgc3RyICs9IDI7CisgCSAg ICB9IGVsc2UgewoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0wNW9mMzUucGF0 Y2ggYi9nZGItcmhiejE0MjAzMDQtczM5MHgtMDVvZjM1LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLmVhMzYyYTMKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItcmhiejE0 MjAzMDQtczM5MHgtMDVvZjM1LnBhdGNoCkBAIC0wLDAgKzEsNTggQEAKK2NvbW1pdCBmZmM2MWM1 ZGUxYTVhODllM2UzN2ZiOTM3NjcyNWMzMmE4MzljMzRkCitBdXRob3I6IEFuZHJlYXMgS3JlYmJl bCA8a3JlYmJlbEBsaW51eC52bmV0LmlibS5jb20+CitEYXRlOiAgIE1vbiBNYXkgMjkgMTI6MzY6 NTcgMjAxNyArMDIwMAorCisgICAgUy8zOTA6IEFkZCBpcHRlL2lkdGUgdmFyaWFudHMgd2l0aCBv cHRpb25hbCBvcGVyYW5kcworICAgIAorICAgIFRoaXMgcGF0Y2ggYWRkcyBtaXNzaW5nIHZhcmlh bnRzIG9mIGlwdGUgYW5kIGlkdGUgaW5zdHJ1Y3Rpb25zIGFkZGVkIHdpdGggbGF0ZXIgQ1BVCisg ICAgZ2VuZXJhdGlvbnMuCisgICAgCisgICAgaXB0ZSBnb3QgYW4gb3B0aW9uYWwgb3BlcmFuZCB3 aXRoIHoxOTYgYW5kIGFub3RoZXIgb25lIHdpdGggekVDMTIuCisgICAgaWR0ZSBnb3QgYW4gb3B0 aW9uYWwgb3BlcmFuZCB3aXRoIHpFQzEyCisgICAgCisgICAgb3Bjb2Rlcy9DaGFuZ2VMb2c6Cisg ICAgCisgICAgMjAxNy0wNS0zMCAgQW5kcmVhcyBLcmViYmVsICA8a3JlYmJlbEBsaW51eC52bmV0 LmlibS5jb20+CisgICAgCisgICAgICAgICAgICAqIHMzOTAtb3BjLmM6IEFkZCBuZXcgaWR0ZS9p cHRlIHZhcmlhbnRzLgorICAgICAgICAgICAgKiBzMzkwLW9wYy50eHQ6IExpa2V3aXNlLgorICAg IAorICAgIGdhcy9DaGFuZ2VMb2c6CisgICAgCisgICAgMjAxNy0wNS0zMCAgQW5kcmVhcyBLcmVi YmVsICA8a3JlYmJlbEBsaW51eC52bmV0LmlibS5jb20+CisgICAgCisgICAgICAgICAgICAqIHRl c3RzdWl0ZS9nYXMvczM5MC96YXJjaC16MTk2LmQ6IEFkZCBuZXcgaWR0ZS9pcHRlIHZhcmlhbnRz LgorICAgICAgICAgICAgKiB0ZXN0c3VpdGUvZ2FzL3MzOTAvemFyY2gtejE5Ni5zOiBMaWtld2lz ZS4KKyAgICAgICAgICAgICogdGVzdHN1aXRlL2dhcy9zMzkwL3phcmNoLXpFQzEyLmQ6IExpa2V3 aXNlLgorICAgICAgICAgICAgKiB0ZXN0c3VpdGUvZ2FzL3MzOTAvemFyY2gtekVDMTIuczogTGlr ZXdpc2UuCisKKy0tLSBhL29wY29kZXMvczM5MC1vcGMuYworKysrIGIvb3Bjb2Rlcy9zMzkwLW9w Yy5jCitAQCAtMzU1LDcgKzM1NSw3IEBAIGNvbnN0IHN0cnVjdCBzMzkwX29wZXJhbmQgczM5MF9v cGVyYW5kc1tdID0KKyAjZGVmaW5lIElOU1RSX1JSRl9GRVVGRUZFICA0LCB7IEZFXzI0LEZFXzE2 LEZFXzI4LFU0XzIwLDAsMCB9ICAgIC8qIGUuZy4gcWF4dHIgKi8KKyAjZGVmaW5lIElOU1RSX1JS Rl9GVUZGMiAgICA0LCB7IEZfMjQsRl8yOCxGXzE2LFU0XzIwLDAsMCB9ICAgICAgIC8qIGUuZy4g YWR0cmEgKi8KKyAjZGVmaW5lIElOU1RSX1JSRl9GRVVGRUZFMiA0LCB7IEZFXzI0LEZFXzI4LEZF XzE2LFU0XzIwLDAsMCB9ICAgIC8qIGUuZy4gYXh0cmEgKi8KKy0jZGVmaW5lIElOU1RSX1JSRl9S VVJSICAgICA0LCB7IFJfMjQsUl8yOCxSXzE2LFU0XzIwLDAsMCB9ICAgICAgIC8qIGUuZy4gLmlu c24gKi8KKysjZGVmaW5lIElOU1RSX1JSRl9SVVJSICAgICA0LCB7IFJfMjQsUl8yOCxSXzE2LFU0 XzIwLDAsMCB9ICAgICAgIC8qIGUuZy4gaXB0ZSAgKi8KKyAjZGVmaW5lIElOU1RSX1JSRl9SVVJS MiAgICA0LCB7IFJfMjQsUl8xNixSXzI4LFU0XzIwLDAsMCB9ICAgICAgIC8qIGUuZy4gbHB0ZWEg Ki8KKyAjZGVmaW5lIElOU1RSX1JSRl9SMFJSICAgICA0LCB7IFJfMjQsUl8xNixSXzI4LDAsMCww IH0gICAgICAgICAgIC8qIGUuZy4gaWR0ZSAgKi8KKyAjZGVmaW5lIElOU1RSX1JSRl9SMFJSMiAg ICA0LCB7IFJfMjQsUl8yOCxSXzE2LDAsMCwwIH0gICAgICAgICAgIC8qIGUuZy4gYXJrICAgKi8K Ky0tLSBhL29wY29kZXMvczM5MC1vcGMudHh0CisrKysgYi9vcGNvZGVzL3MzOTAtb3BjLnR4dAor QEAgLTExMTYsNiArMTExNiw3IEBAIGI5MmIga21vIFJSRV9SUiAiY2lwaGVyIG1lc3NhZ2Ugd2l0 aCBPRkIiIHoxOTYgemFyY2gKKyBiOTJjIHBjYyBSUkVfMDAgInBlcmZvcm0gY3J5cHRvZ3JhcGhp YyBjb21wdXRhdGlvbiIgejE5NiB6YXJjaAorIGI5MmQga21jdHIgUlJGX1IwUlIgImNpcGhlciBt ZXNzYWdlIHdpdGggY291bnRlciIgejE5NiB6YXJjaAorIGI5MjggcGNrbW8gUlJFXzAwICJwZXJm b3JtIGNyeXB0b2dyYXBoaWMga2V5IG1hbmFnZW1lbnQgb3BlcmF0aW9uIiB6MTk2IHphcmNoCisr YjIyMSBpcHRlIFJSRl9SMFJSMiAiaW52YWxpZGF0ZSBwYWdlIHRhYmxlIGVudHJ5IiB6MTk2IHph cmNoIG9wdHBhcm0KKyAKKyAjIFRoZSBuZXcgaW5zdHJ1Y3Rpb25zIG9mIHRoZSBJQk0gekVudGVy cHJpc2UgRUMxMgorIGIyZWMgZXRuZCBSUkVfUjAgImV4dHJhY3QgdHJhbnNhY3Rpb24gbmVzdGlu ZyBkZXB0aCIgekVDMTIgemFyY2ggaHRtCitAQCAtMTE0Myw2ICsxMTQ0LDggQEAgZWQwMDAwMDAw MGFhIGNkenQgUlNMX0xSREZVICJjb252ZXJ0IGZyb20gem9uZWQgbG9uZyIgekVDMTIgemFyY2gK KyBlZDAwMDAwMDAwYWIgY3h6dCBSU0xfTFJERkVVICJjb252ZXJ0IGZyb20gem9uZWQgZXh0ZW5k ZWQiIHpFQzEyIHphcmNoCisgZWQwMDAwMDAwMGE4IGN6ZHQgUlNMX0xSREZVICJjb252ZXJ0IHRv IHpvbmVkIGxvbmciIHpFQzEyIHphcmNoCisgZWQwMDAwMDAwMGE5IGN6eHQgUlNMX0xSREZFVSAi Y29udmVydCB0byB6b25lZCBleHRlbmRlZCIgekVDMTIgemFyY2gKKytiOThlIGlkdGUgUlJGX1JV UlIyICJpbnZhbGlkYXRlIGRhdCB0YWJsZSBlbnRyeSIgekVDMTIgemFyY2ggb3B0cGFybQorK2Iy MjEgaXB0ZSBSUkZfUlVSUiAiaW52YWxpZGF0ZSBwYWdlIHRhYmxlIGVudHJ5IiB6RUMxMiB6YXJj aCBvcHRwYXJtMgorIAorICMgVGhlIG5ldyBpbnN0cnVjdGlvbnMgb2YgSUJNIHoxMworIAoKZGlm ZiAtLWdpdCBhL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0wNm9mMzUucGF0Y2ggYi9nZGItcmhiejE0 MjAzMDQtczM5MHgtMDZvZjM1LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLmJiNDNjZGYKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItcmhiejE0MjAzMDQtczM5MHgtMDZv ZjM1LnBhdGNoCkBAIC0wLDAgKzEsMzEgQEAKK2NvbW1pdCA2N2FhOGJlNGNiNDNjZDk0YmMzMjJm ZWQ4YmRiYTQ4YjNjODcxOWM0CitBdXRob3I6IEFuZHJlYXMgS3JlYmJlbCA8a3JlYmJlbEBsaW51 eC52bmV0LmlibS5jb20+CitEYXRlOiAgIE1vbiBNYXkgMjkgMTI6Mzg6MTEgMjAxNyArMDIwMAor CisgICAgUy8zOTA6IEFkZCBtaXNzaW5nIG9wZXJhbmQgdG8gdGIgaW5zdHJ1Y3Rpb24KKyAgICAK KyAgICBnYXMvQ2hhbmdlTG9nOgorICAgIAorICAgIDIwMTctMDUtMzAgIEFuZHJlYXMgS3JlYmJl bCAgPGtyZWJiZWxAbGludXgudm5ldC5pYm0uY29tPgorICAgIAorICAgICAgICAgICAgKiB0ZXN0 c3VpdGUvZ2FzL3MzOTAvZXNhLWc1LmQ6IEFkZCBtaXNzaW5nIG9wZXJhbmQgdG8gdGIKKyAgICAg ICAgICAgIGluc3RydWN0aW9uLgorICAgICAgICAgICAgKiB0ZXN0c3VpdGUvZ2FzL3MzOTAvZXNh LWc1LnM6IExpa2V3aXNlLgorICAgIAorICAgIG9wY29kZXMvQ2hhbmdlTG9nOgorICAgIAorICAg IDIwMTctMDUtMzAgIEFuZHJlYXMgS3JlYmJlbCAgPGtyZWJiZWxAbGludXgudm5ldC5pYm0uY29t PgorICAgIAorICAgICAgICAgICAgKiBzMzkwLW9wYy50eHQ6IEFkZCBtaXNzaW5nIG9wZXJhbmQg dG8gdGIgaW5zdHJ1Y3Rpb24uCisKKy0tLSBhL29wY29kZXMvczM5MC1vcGMudHh0CisrKysgYi9v cGNvZGVzL3MzOTAtb3BjLnR4dAorQEAgLTIyOCw3ICsyMjgsNyBAQCBiMjQ2IHN0dXJhIFJSRV9S UiAic3RvcmUgdXNpbmcgcmVhbCBhZGRyZXNzIiBnNSBlc2EsemFyY2gKKyAyZiBzd3IgUlJfRkYg InN1YnRyYWN0IHVubm9ybWFsaXplZCAobG9uZykiIGc1IGVzYSx6YXJjaAorIDM3IHN4ciBSUl9G RUZFICJzdWJ0cmFjdCBub3JtYWxpemVkIChleHQuKSIgZzUgZXNhLHphcmNoCisgYjI0YyB0YXIg UlJFX0FSICJ0ZXN0IGFjY2VzcyIgZzUgZXNhLHphcmNoCistYjIyYyB0YiBSUkVfMFIgInRlc3Qg YmxvY2siIGc1IGVzYSx6YXJjaAorK2IyMmMgdGIgUlJFX1JSICJ0ZXN0IGJsb2NrIiBnNSBlc2Es emFyY2gKKyA5MSB0bSBTSV9VUkQgInRlc3QgdW5kZXIgbWFzayIgZzUgZXNhLHphcmNoCisgYjIz NiB0cGkgU19SRCAidGVzdCBwZW5kaW5nIGludGVycnVwdGlvbiIgZzUgZXNhLHphcmNoCisgZTUw MSB0cHJvdCBTU0VfUkRSRCAidGVzdCBwcm90ZWN0aW9uIiBnNSBlc2EsemFyY2gKCmRpZmYgLS1n aXQgYS9nZGItcmhiejE0MjAzMDQtczM5MHgtMDdvZjM1LnBhdGNoIGIvZ2RiLXJoYnoxNDIwMzA0 LXMzOTB4LTA3b2YzNS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40 OTJhODk0Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTA3b2YzNS5w YXRjaApAQCAtMCwwICsxLDUzIEBACitjb21taXQgY2E4N2FlNzQxZmU5YzhhYWQ5ZGIxYWZiZjEw OWRjMDcwZDAxNjhjZgorQXV0aG9yOiBBbmRyZWFzIEtyZWJiZWwgPGtyZWJiZWxAbGludXgudm5l dC5pYm0uY29tPgorRGF0ZTogICBNb24gTWF5IDI5IDEyOjM4OjQyIDIwMTcgKzAyMDAKKworICAg IFMvMzkwOiBGaXggaW5zdHJ1Y3Rpb24gdHlwZXMgb2YgY3NkdHIgYW5kIGNzeHRyCisgICAgCisg ICAgb3Bjb2Rlcy9DaGFuZ2VMb2c6CisgICAgCisgICAgMjAxNy0wNS0zMCAgQW5kcmVhcyBLcmVi YmVsICA8a3JlYmJlbEBsaW51eC52bmV0LmlibS5jb20+CisgICAgCisgICAgICAgICAgICAqIHMz OTAtb3BjLmM6IEFkZCBuZXcgaW5zdHJ1Y3Rpb24gdHlwZXMgUlJGXzBVUkYgYW5kIFJSRl8wVVJF RkUuCisgICAgICAgICAgICAqIHMzOTAtb3BjLnR4dDogRml4IGluc3RydWN0aW9uIHR5cHMgb2Yg Y3NkdHIgYW5kIGNzeHRyLgorICAgIAorICAgIGdhcy9DaGFuZ2VMb2c6CisgICAgCisgICAgMjAx Ny0wNS0zMCAgQW5kcmVhcyBLcmViYmVsICA8a3JlYmJlbEBsaW51eC52bmV0LmlibS5jb20+Cisg ICAgCisgICAgICAgICAgICAqIHRlc3RzdWl0ZS9nYXMvczM5MC96YXJjaC16OS1lYy5kOiBBZGp1 c3QgY3NkdHIgYW5kIGNzeHRyLgorICAgICAgICAgICAgKiB0ZXN0c3VpdGUvZ2FzL3MzOTAvemFy Y2gtejktZWMuczogTGlrZXdpc2UuCisKKy0tLSBhL29wY29kZXMvczM5MC1vcGMuYworKysrIGIv b3Bjb2Rlcy9zMzkwLW9wYy5jCitAQCAtMzc0LDYgKzM3NCw4IEBAIGNvbnN0IHN0cnVjdCBzMzkw X29wZXJhbmQgczM5MF9vcGVyYW5kc1tdID0KKyAjZGVmaW5lIElOU1RSX1JSRl9VMFJFUiAgICA0 LCB7IFJFXzI0LFJfMjgsVTRfMTYsMCwwLDAgfSAgICAgICAgIC8qIGUuZy4gdHJ0ZSAgKi8KKyAj ZGVmaW5lIElOU1RSX1JSRl9VMFJFUkUgICA0LCB7IFJFXzI0LFJFXzI4LFU0XzE2LDAsMCwwIH0g ICAgICAgIC8qIGUuZy4gY3UyNCAgKi8KKyAjZGVmaW5lIElOU1RSX1JSRl8wMFJSICAgICA0LCB7 IFJfMjQsUl8yOCwwLDAsMCwwIH0gICAgICAgICAgICAgIC8qIGUuZy4gY2xydG5lICovCisrI2Rl ZmluZSBJTlNUUl9SUkZfMFVSRiAgICAgNCwgeyBSXzI0LEZfMjgsVTRfMjAsMCwwLDAgfSAgICAg ICAgICAvKiBlLmcuIGNzZHRyICAqLworKyNkZWZpbmUgSU5TVFJfUlJGXzBVUkVGRSAgIDQsIHsg UkVfMjQsRkVfMjgsVTRfMjAsMCwwLDAgfSAgICAgICAgLyogZS5nLiBjc3h0ciAgKi8KKyAjZGVm aW5lIElOU1RSX1JSRl9VVUZSICAgICA0LCB7IEZfMjQsVTRfMTYsUl8yOCxVNF8yMCwwLDAgfSAg ICAgIC8qIGUuZy4gY2RndHJhICovCisgI2RlZmluZSBJTlNUUl9SUkZfVVVGRVIgICAgNCwgeyBG RV8yNCxVNF8xNixSXzI4LFU0XzIwLDAsMCB9ICAgICAvKiBlLmcuIGN4ZmJyYSAqLworICNkZWZp bmUgSU5TVFJfUlJGX1VVUkYgICAgIDQsIHsgUl8yNCxVNF8xNixGXzI4LFU0XzIwLDAsMCB9ICAg ICAgLyogZS5nLiBjZ2R0cmEgKi8KK0BAIC01OTAsNiArNTkyLDggQEAgY29uc3Qgc3RydWN0IHMz OTBfb3BlcmFuZCBzMzkwX29wZXJhbmRzW10gPQorICNkZWZpbmUgTUFTS19SUkZfVTBSRVIgICAg eyAweGZmLCAweGZmLCAweDBmLCAweDAwLCAweDAwLCAweDAwIH0KKyAjZGVmaW5lIE1BU0tfUlJG X1UwUkVSRSAgIHsgMHhmZiwgMHhmZiwgMHgwZiwgMHgwMCwgMHgwMCwgMHgwMCB9CisgI2RlZmlu ZSBNQVNLX1JSRl8wMFJSICAgICB7IDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4MDAsIDB4MDAsIDB4MDAg fQorKyNkZWZpbmUgTUFTS19SUkZfMFVSRiAgICAgeyAweGZmLCAweGZmLCAweGYwLCAweDAwLCAw eDAwLCAweDAwIH0KKysjZGVmaW5lIE1BU0tfUlJGXzBVUkVGRSAgIHsgMHhmZiwgMHhmZiwgMHhm MCwgMHgwMCwgMHgwMCwgMHgwMCB9CisgI2RlZmluZSBNQVNLX1JSRl9VVUZSICAgICB7IDB4ZmYs IDB4ZmYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgfQorICNkZWZpbmUgTUFTS19SUkZfVVVGRVIg ICAgeyAweGZmLCAweGZmLCAweDAwLCAweDAwLCAweDAwLCAweDAwIH0KKyAjZGVmaW5lIE1BU0tf UlJGX1VVUkYgICAgIHsgMHhmZiwgMHhmZiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMCB9CistLS0g YS9vcGNvZGVzL3MzOTAtb3BjLnR4dAorKysrIGIvb3Bjb2Rlcy9zMzkwLW9wYy50eHQKK0BAIC04 MTcsOCArODE3LDggQEAgYjNmMiBjZHV0ciBSUkVfRlIgImNvbnZlcnQgZnJvbSB1bnNpZ25lZCBi Y2QgdG8gbG9uZyBkZnAiIHo5LWVjIHphcmNoCisgYjNmYSBjeHV0ciBSUkVfRkVSICJjb252ZXJ0 IGZyb20gdW5zaWduZWQgYmNkIHRvIGV4dGVuZGVkIGRmcCIgejktZWMgemFyY2gKKyBiM2UxIGNn ZHRyIFJSRl9VMFJGICJjb252ZXJ0IGZyb20gbG9uZyBkZnAgdG8gZml4ZWQiIHo5LWVjIHphcmNo CisgYjNlOSBjZ3h0ciBSUkZfVTBSRkUgImNvbnZlcnQgZnJvbSBleHRlbmRlZCBkZnAgdG8gZml4 ZWQiIHo5LWVjIHphcmNoCistYjNlMyBjc2R0ciBSUkVfUkYgImNvbnZlcnQgZnJvbSBsb25nIGRm cCB0byBzaWduZWQgYmNkIiB6OS1lYyB6YXJjaAorLWIzZWIgY3N4dHIgUlJFX1JGRSAiY29udmVy dCBmcm9tIGV4dGVuZGVkIGRmcCB0byBzaWduZWQgYmNkIiB6OS1lYyB6YXJjaAorK2IzZTMgY3Nk dHIgUlJGXzBVUkYgImNvbnZlcnQgZnJvbSBsb25nIGRmcCB0byBzaWduZWQgYmNkIiB6OS1lYyB6 YXJjaAorK2IzZWIgY3N4dHIgUlJGXzBVUkVGRSAiY29udmVydCBmcm9tIGV4dGVuZGVkIGRmcCB0 byBzaWduZWQgYmNkIiB6OS1lYyB6YXJjaAorIGIzZTIgY3VkdHIgUlJFX1JGICJjb252ZXJ0IGZy b20gbG9uZyBkZnAgdG8gdW5zaWduZWQgYmNkIiB6OS1lYyB6YXJjaAorIGIzZWEgY3V4dHIgUlJF X1JGRSAiY29udmVydCBmcm9tIGV4dGVuZGVkIGRmcCB0byB1bnNpZ25lZCBiY2QiIHo5LWVjIHph cmNoCisgYjNkMSBkZHRyIFJSUl9GMEZGICJkaXZpZGUgbG9uZyBkZnAiIHo5LWVjIHphcmNoCgpk aWZmIC0tZ2l0IGEvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTA4b2YzNS5wYXRjaCBiL2dkYi1yaGJ6 MTQyMDMwNC1zMzkweC0wOG9mMzUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uNzAzMzhjMwotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0w OG9mMzUucGF0Y2gKQEAgLTAsMCArMSw3NiBAQAorY29tbWl0IDE5ZmIzMWMwMDYwZjY0NmE5Zjg0 YmUxYTg0ZWQxYmVhMDRlN2VkNTcKK0F1dGhvcjogQW5kcmVhcyBLcmViYmVsIDxrcmViYmVsQGxp bnV4LnZuZXQuaWJtLmNvbT4KK0RhdGU6ICAgVGh1IEp1biAxIDEzOjQ2OjE1IDIwMTcgKzAyMDAK KworICAgIFMvMzkwOiBpZHRlL2lwdGUgZml4ZXMKKyAgICAKKyAgICBMYXRlciBDUFUgZ2VuZXJh dGlvbnMgYWRkZWQgb3B0aW9uYWwgb3BlcmFuZHMgdG8gdGhlIGlwdGUvaWR0ZQorICAgIGluc3Ry dWN0aW9ucy4gIEkndmUgYWRkZWQgdGhlc2Ugd2l0aDoKKyAgICBodHRwczovL3NvdXJjZXdhcmUu b3JnL21sL2JpbnV0aWxzLzIwMTctMDUvbXNnMDAzMTYuaHRtbCAuLi4gYnV0CisgICAgc3VwcG9y dGVkIHRoZSBvcHRpb25hbCBvcGVyYW5kcyBvbmx5IHdpdGggdGhlIHNwZWNpZmljIGhhcmR3YXJl CisgICAgbGV2ZWxzLiAgSG93ZXZlciwgaXQgaXMgbW9yZSB1c2VmdWwgdG8gaGF2ZSB0aGUgb3B0 aW9uYWwgb3BlcmFuZHMKKyAgICBhbHJlYWR5IGluIHRoZSBmaXJzdCB2ZXJzaW9ucy4gIE9mIGNv dXJzZSB0aGV5IG5lZWQgdG8gYmUgemVybyB0aGVyZS4KKyAgICAKKyAgICBSZWdyZXNzaW9uLXRl c3RlZCB3aXRoIG9uIHMzOTAgYW5kIHMzOTB4LiAgQ29tbWl0dGVkIHRvIG1haW5saW5lLgorICAg IAorICAgIEJ5ZSwKKyAgICAKKyAgICAtQW5kcmVhcy0KKyAgICAKKyAgICBvcGNvZGVzL0NoYW5n ZUxvZzoKKyAgICAKKyAgICAyMDE3LTA2LTAxICBBbmRyZWFzIEtyZWJiZWwgIDxrcmViYmVsQGxp bnV4LnZuZXQuaWJtLmNvbT4KKyAgICAKKyAgICAgICAgICAgICogczM5MC1vcGMudHh0OiBTdXBw b3J0IHRoZSBvcHRpb25hbCBwYXJhbWV0ZXJzIHdpdGggdGhlIGZpcnN0CisgICAgICAgICAgICB2 ZXJzaW9ucyBvZiBpcHRlL2lkdGUuCisgICAgCisgICAgZ2FzL0NoYW5nZUxvZzoKKyAgICAKKyAg ICAyMDE3LTA2LTAxICBBbmRyZWFzIEtyZWJiZWwgIDxrcmViYmVsQGxpbnV4LnZuZXQuaWJtLmNv bT4KKyAgICAKKyAgICAgICAgICAgICogdGVzdHN1aXRlL2dhcy9zMzkwL2VzYS1nNS5kOiBBZGQg aXB0ZSB0ZXN0cy4KKyAgICAgICAgICAgICogdGVzdHN1aXRlL2dhcy9zMzkwL2VzYS1nNS5zOiBM aWtld2lzZS4KKyAgICAgICAgICAgICogdGVzdHN1aXRlL2dhcy9zMzkwL3phcmNoLXoxOTYuZDog UmVtb3ZlIGlwdGUgdGVzdHMuCisgICAgICAgICAgICAqIHRlc3RzdWl0ZS9nYXMvczM5MC96YXJj aC16MTk2LnM6IExpa2V3aXNlLgorICAgICAgICAgICAgKiB0ZXN0c3VpdGUvZ2FzL3MzOTAvemFy Y2gtejk5MC5kOiBBZGQgaWR0ZSB0ZXN0cy4KKyAgICAgICAgICAgICogdGVzdHN1aXRlL2dhcy9z MzkwL3phcmNoLXo5OTAuczogTGlrZXdpc2UuCisgICAgICAgICAgICAqIHRlc3RzdWl0ZS9nYXMv czM5MC96YXJjaC16RUMxMi5kOiBSZW1vdmUgaXB0ZS9pZHRlIHRlc3RzLgorICAgICAgICAgICAg KiB0ZXN0c3VpdGUvZ2FzL3MzOTAvemFyY2gtekVDMTIuczogTGlrZXdpc2UuCisKKy0tLSBhL29w Y29kZXMvczM5MC1vcGMudHh0CisrKysgYi9vcGNvZGVzL3MzOTAtb3BjLnR4dAorQEAgLTc5LDcg Kzc5LDcgQEAgYjIyNCBpYWMgUlJFX1IwICJpbnNlcnQgYWRkcmVzcyBzcGFjZSBjb250cm9sIiBn NSBlc2EsemFyY2gKKyBiZiBpY20gUlNfUlVSRCAiaW5zZXJ0IGNoYXJhY3RlcnMgdW5kZXIgbWFz ayIgZzUgZXNhLHphcmNoCisgYjIwYiBpcGsgU18wMCAiaW5zZXJ0IFBTVyBrZXkiIGc1IGVzYSx6 YXJjaAorIGIyMjIgaXBtIFJSRV9SMCAiaW5zZXJ0IHByb2dyYW0gbWFzayIgZzUgZXNhLHphcmNo CistYjIyMSBpcHRlIFJSRV9SUiAiaW52YWxpZGF0ZSBwYWdlIHRhYmxlIGVudHJ5IiBnNSBlc2Es emFyY2gKKytiMjIxIGlwdGUgUlJGX1JVUlIgImludmFsaWRhdGUgcGFnZSB0YWJsZSBlbnRyeSIg ZzUgZXNhLHphcmNoIG9wdHBhcm0yCisgYjIyOSBpc2tlIFJSRV9SUiAiaW5zZXJ0IHN0b3JhZ2Ug a2V5IGV4dGVuZGVkIiBnNSBlc2EsemFyY2gKKyBiMjIzIGl2c2sgUlJFX1JSICJpbnNlcnQgdmly dHVhbCBzdG9yYWdlIGtleSIgZzUgZXNhLHphcmNoCisgNTggbCBSWF9SUlJEICJsb2FkIiBnNSBl c2EsemFyY2gKK0BAIC03MDAsNyArNzAwLDcgQEAgZWIwMDAwMDAwMDhmIGNsY2x1IFJTWV9SUlJE ICJjb21wYXJlIGxvZ2ljYWwgbG9uZyB1bmljb2RlIHdpdGggbG9uZyBvZmZzZXQiIHo5OTAKKyBl YjAwMDAwMDAwOTYgbG1oIFJTWV9SUlJEICJsb2FkIG11bHRpcGxlIGhpZ2giIHo5OTAgemFyY2gK KyAjIG5ldyB6OTkwIGluc3RydWN0aW9ucworIGI5OGEgY3NwZyBSUkVfUlIgImNvbXBhcmUgYW5k IHN3YXAgYW5kIHB1cmdlIiB6OTkwIHphcmNoCistYjk4ZSBpZHRlIFJSRl9SMFJSICJpbnZhbGlk YXRlIGRhdCB0YWJsZSBlbnRyeSIgejk5MCB6YXJjaAorK2I5OGUgaWR0ZSBSUkZfUlVSUjIgImlu dmFsaWRhdGUgZGF0IHRhYmxlIGVudHJ5IiB6OTkwIHphcmNoIG9wdHBhcm0KKyBiMzNlIG1hZHIg UlJGX0YwRkYgIm11bHRpcGx5IGFuZCBhZGQgbG9uZyBoZnAiIHo5OTAgZXNhLHphcmNoCisgZWQw MDAwMDAwMDNlIG1hZCBSWEZfRlJSREYgIm11bHRpcGx5IGFuZCBhZGQgbG9uZyBoZnAiIHo5OTAg ZXNhLHphcmNoCisgYjMyZSBtYWVyIFJSRl9GMEZGICJtdWx0aXBseSBhbmQgYWRkIHNob3J0IGhm cCIgejk5MCBlc2EsemFyY2gKK0BAIC0xMTE2LDcgKzExMTYsNiBAQCBiOTJiIGttbyBSUkVfUlIg ImNpcGhlciBtZXNzYWdlIHdpdGggT0ZCIiB6MTk2IHphcmNoCisgYjkyYyBwY2MgUlJFXzAwICJw ZXJmb3JtIGNyeXB0b2dyYXBoaWMgY29tcHV0YXRpb24iIHoxOTYgemFyY2gKKyBiOTJkIGttY3Ry IFJSRl9SMFJSICJjaXBoZXIgbWVzc2FnZSB3aXRoIGNvdW50ZXIiIHoxOTYgemFyY2gKKyBiOTI4 IHBja21vIFJSRV8wMCAicGVyZm9ybSBjcnlwdG9ncmFwaGljIGtleSBtYW5hZ2VtZW50IG9wZXJh dGlvbiIgejE5NiB6YXJjaAorLWIyMjEgaXB0ZSBSUkZfUjBSUjIgImludmFsaWRhdGUgcGFnZSB0 YWJsZSBlbnRyeSIgejE5NiB6YXJjaCBvcHRwYXJtCisgCisgIyBUaGUgbmV3IGluc3RydWN0aW9u cyBvZiB0aGUgSUJNIHpFbnRlcnByaXNlIEVDMTIKKyBiMmVjIGV0bmQgUlJFX1IwICJleHRyYWN0 IHRyYW5zYWN0aW9uIG5lc3RpbmcgZGVwdGgiIHpFQzEyIHphcmNoIGh0bQorQEAgLTExNDQsOCAr MTE0Myw2IEBAIGVkMDAwMDAwMDBhYSBjZHp0IFJTTF9MUkRGVSAiY29udmVydCBmcm9tIHpvbmVk IGxvbmciIHpFQzEyIHphcmNoCisgZWQwMDAwMDAwMGFiIGN4enQgUlNMX0xSREZFVSAiY29udmVy dCBmcm9tIHpvbmVkIGV4dGVuZGVkIiB6RUMxMiB6YXJjaAorIGVkMDAwMDAwMDBhOCBjemR0IFJT TF9MUkRGVSAiY29udmVydCB0byB6b25lZCBsb25nIiB6RUMxMiB6YXJjaAorIGVkMDAwMDAwMDBh OSBjenh0IFJTTF9MUkRGRVUgImNvbnZlcnQgdG8gem9uZWQgZXh0ZW5kZWQiIHpFQzEyIHphcmNo CistYjk4ZSBpZHRlIFJSRl9SVVJSMiAiaW52YWxpZGF0ZSBkYXQgdGFibGUgZW50cnkiIHpFQzEy IHphcmNoIG9wdHBhcm0KKy1iMjIxIGlwdGUgUlJGX1JVUlIgImludmFsaWRhdGUgcGFnZSB0YWJs ZSBlbnRyeSIgekVDMTIgemFyY2ggb3B0cGFybTIKKyAKKyAjIFRoZSBuZXcgaW5zdHJ1Y3Rpb25z IG9mIElCTSB6MTMKKyAKCmRpZmYgLS1naXQgYS9nZGItcmhiejE0MjAzMDQtczM5MHgtMDlvZjM1 LnBhdGNoIGIvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTA5b2YzNS5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDJmYWRhCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXJo YnoxNDIwMzA0LXMzOTB4LTA5b2YzNS5wYXRjaApAQCAtMCwwICsxLDEyMyBAQAorY29tbWl0IDM3 MDRlMzU4OWQzZDE4N2ZiZjc2ZTY4ODM4OGIxYTkyZmQ2MjdjOGQKK0F1dGhvcjogQW5kcmVhcyBL cmViYmVsIDxrcmViYmVsQGxpbnV4LnZuZXQuaWJtLmNvbT4KK0RhdGU6ICAgRnJpIEp1biA5IDEx OjE5OjAxIDIwMTcgKzAyMDAKKworICAgIFMvMzkwOiBSZXR1cm4gd2l0aCBhbiBlcnJvciBmb3Ig YnJva2VuIHRscyByZXdyaXRlcworICAgIAorICAgIGJmZC9DaGFuZ2VMb2c6CisgICAgCisgICAg MjAxNy0wNi0xMiAgQW5kcmVhcyBLcmViYmVsICA8a3JlYmJlbEBsaW51eC52bmV0LmlibS5jb20+ CisgICAgCisgICAgICAgICAgICAqIGVsZjMyLXMzOTAuYyAoZWxmX3MzOTBfcmVsb2NhdGVfc2Vj dGlvbik6IFJldHVybiBmYWxzZSBpbiBjYXNlCisgICAgICAgICAgICB0aGUgcmV3cml0aW5nIGZh aWxzLgorICAgICAgICAgICAgKiBlbGY2NC1zMzkwLmMgKGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rp b24pOiBMaWtld2lzZS4KKworLS0tIGEvYmZkL2VsZjMyLXMzOTAuYworKysrIGIvYmZkL2VsZjMy LXMzOTAuYworQEAgLTMyMzEsNyArMzIzMSw2IEBAIGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rpb24g KGJmZCAqb3V0cHV0X2JmZCwKKyAJCSAgdW5zaWduZWQgaW50IGluc24sIHJ5OworIAorIAkJICBp bnNuID0gYmZkX2dldF8zMiAoaW5wdXRfYmZkLCBjb250ZW50cyArIHJlbC0+cl9vZmZzZXQpOwor LQkJICByeSA9IDA7CisgCQkgIGlmICgoaW5zbiAmIDB4ZmYwMGYwMDApID09IDB4NTgwMDAwMDAp CisgCQkgICAgLyogbCAlcngsMCglcnksMCkgLT4gbHIgJXJ4LCVyeSArIGJjciAwLDAgICovCisg CQkgICAgcnkgPSAoaW5zbiAmIDB4MDAwZjAwMDApOworQEAgLTMyNDUsNyArMzI0NCwxMCBAQCBl bGZfczM5MF9yZWxvY2F0ZV9zZWN0aW9uIChiZmQgKm91dHB1dF9iZmQsCisgCQkgICAgLyogbCAl cngsMCglcjEyLCVyeSkgLT4gbHIgJXJ4LCVyeSArIGJjciAwLDAgICovCisgCQkgICAgcnkgPSAo aW5zbiAmIDB4MDAwMGYwMDApIDw8IDQ7CisgCQkgIGVsc2UKKy0JCSAgICBpbnZhbGlkX3Rsc19p bnNuIChpbnB1dF9iZmQsIGlucHV0X3NlY3Rpb24sIHJlbCk7CisrCQkgICAgeworKwkJICAgICAg aW52YWxpZF90bHNfaW5zbiAoaW5wdXRfYmZkLCBpbnB1dF9zZWN0aW9uLCByZWwpOworKwkJICAg ICAgcmV0dXJuIEZBTFNFOworKwkJICAgIH0KKyAJCSAgaW5zbiA9IDB4MTgwMDA3MDAgfCAoaW5z biAmIDB4MDBmMDAwMDApIHwgcnk7CisgCQkgIGJmZF9wdXRfMzIgKG91dHB1dF9iZmQsIGluc24s IGNvbnRlbnRzICsgcmVsLT5yX29mZnNldCk7CisgCQl9CitAQCAtMzI1OCw3ICszMjYwLDEwIEBA IGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rpb24gKGJmZCAqb3V0cHV0X2JmZCwKKyAJICAgICAgaWYg KChpbnNuICYgMHhmZjAwMGZmZikgIT0gMHg0ZDAwMDAwMCAmJgorIAkJICAoaW5zbiAmIDB4ZmZm ZjAwMDApICE9IDB4YzBlNTAwMDAgJiYKKyAJCSAgKGluc24gJiAweGZmMDAwMDAwKSAhPSAweDBk MDAwMDAwKQorLQkJaW52YWxpZF90bHNfaW5zbiAoaW5wdXRfYmZkLCBpbnB1dF9zZWN0aW9uLCBy ZWwpOworKwkJeworKwkJICBpbnZhbGlkX3Rsc19pbnNuIChpbnB1dF9iZmQsIGlucHV0X3NlY3Rp b24sIHJlbCk7CisrCQkgIHJldHVybiBGQUxTRTsKKysJCX0KKyAJICAgICAgaWYgKCFiZmRfbGlu a19waWMgKGluZm8pICYmIChoID09IE5VTEwgfHwgaC0+ZHluaW5keCA9PSAtMSkpCisgCQl7Cisg CQkgIGlmICgoaW5zbiAmIDB4ZmYwMDAwMDApID09IDB4MGQwMDAwMDApCitAQCAtMzI4Nyw3ICsz MjkyLDEwIEBAIGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rpb24gKGJmZCAqb3V0cHV0X2JmZCwKKyAJ CSAgLyogSWYgYmFzciBpcyB1c2VkIGluIHRoZSBwaWMgY2FzZSB0byBpbnZva2UKKyAJCSAgICAg X3Rsc19nZXRfb2Zmc2V0LCBzb21ldGhpbmcgd2VudCB3cm9uZyBiZWZvcmUuICAqLworIAkJICBp ZiAoKGluc24gJiAweGZmMDAwMDAwKSA9PSAweDBkMDAwMDAwKQorLQkJICAgIGludmFsaWRfdGxz X2luc24gKGlucHV0X2JmZCwgaW5wdXRfc2VjdGlvbiwgcmVsKTsKKysJCSAgICB7CisrCQkgICAg ICBpbnZhbGlkX3Rsc19pbnNuIChpbnB1dF9iZmQsIGlucHV0X3NlY3Rpb24sIHJlbCk7CisrCQkg ICAgICByZXR1cm4gRkFMU0U7CisrCQkgICAgfQorIAorIAkJICBpZiAoKGluc24gJiAweGZmMDAw MDAwKSA9PSAweDRkMDAwMDAwKQorIAkJICAgIHsKK0BAIC0zMzE3LDcgKzMzMjUsMTAgQEAgZWxm X3MzOTBfcmVsb2NhdGVfc2VjdGlvbiAoYmZkICpvdXRwdXRfYmZkLAorIAkJICBpZiAoKGluc24g JiAweGZmMDAwZmZmKSAhPSAweDRkMDAwMDAwICYmCisgCQkgICAgICAoaW5zbiAmIDB4ZmZmZjAw MDApICE9IDB4YzBlNTAwMDAgJiYKKyAJCSAgICAgIChpbnNuICYgMHhmZjAwMDAwMCkgIT0gMHgw ZDAwMDAwMCkKKy0JCSAgICBpbnZhbGlkX3Rsc19pbnNuIChpbnB1dF9iZmQsIGlucHV0X3NlY3Rp b24sIHJlbCk7CisrCQkgICAgeworKwkJICAgICAgaW52YWxpZF90bHNfaW5zbiAoaW5wdXRfYmZk LCBpbnB1dF9zZWN0aW9uLCByZWwpOworKwkJICAgICAgcmV0dXJuIEZBTFNFOworKwkJICAgIH0K KyAKKyAJCSAgaWYgKChpbnNuICYgMHhmZjAwMDAwMCkgPT0gMHgwZDAwMDAwMCkKKyAJCSAgICB7 CistLS0gYS9iZmQvZWxmNjQtczM5MC5jCisrKysgYi9iZmQvZWxmNjQtczM5MC5jCitAQCAtMzE5 Nyw4ICszMTk3LDEwIEBAIGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rpb24gKGJmZCAqb3V0cHV0X2Jm ZCwKKyAJCSAgaW5zbjAgPSBiZmRfZ2V0XzMyIChpbnB1dF9iZmQsIGNvbnRlbnRzICsgcmVsLT5y X29mZnNldCk7CisgCQkgIGluc24xID0gYmZkX2dldF8xNiAoaW5wdXRfYmZkLCBjb250ZW50cyAr IHJlbC0+cl9vZmZzZXQgKyA0KTsKKyAJCSAgaWYgKGluc24xICE9IDB4MDAwNCkKKy0JCSAgICBp bnZhbGlkX3Rsc19pbnNuIChpbnB1dF9iZmQsIGlucHV0X3NlY3Rpb24sIHJlbCk7CistCQkgIHJ5 ID0gMDsKKysJCSAgICB7CisrCQkgICAgICBpbnZhbGlkX3Rsc19pbnNuIChpbnB1dF9iZmQsIGlu cHV0X3NlY3Rpb24sIHJlbCk7CisrCQkgICAgICByZXR1cm4gRkFMU0U7CisrCQkgICAgfQorIAkJ ICBpZiAoKGluc24wICYgMHhmZjAwZjAwMCkgPT0gMHhlMzAwMDAwMCkKKyAJCSAgICAvKiBsZyAl cngsMCglcnksMCkgLT4gc2xsZyAlcngsJXJ5LDAgICovCisgCQkgICAgcnkgPSAoaW5zbjAgJiAw eDAwMGYwMDAwKTsKK0BAIC0zMjEyLDcgKzMyMTQsMTAgQEAgZWxmX3MzOTBfcmVsb2NhdGVfc2Vj dGlvbiAoYmZkICpvdXRwdXRfYmZkLAorIAkJICAgIC8qIGxnICVyeCwwKCVyMTIsJXJ5KSAtPiBz bGxnICVyeCwlcnksMCAgKi8KKyAJCSAgICByeSA9IChpbnNuMCAmIDB4MDAwMGYwMDApIDw8IDQ7 CisgCQkgIGVsc2UKKy0JCSAgICBpbnZhbGlkX3Rsc19pbnNuIChpbnB1dF9iZmQsIGlucHV0X3Nl Y3Rpb24sIHJlbCk7CisrCQkgICAgeworKwkJICAgICAgaW52YWxpZF90bHNfaW5zbiAoaW5wdXRf YmZkLCBpbnB1dF9zZWN0aW9uLCByZWwpOworKwkJICAgICAgcmV0dXJuIEZBTFNFOworKwkJICAg IH0KKyAJCSAgaW5zbjAgPSAweGViMDAwMDAwIHwgKGluc24wICYgMHgwMGYwMDAwMCkgfCByeTsK KyAJCSAgaW5zbjEgPSAweDAwMGQ7CisgCQkgIGJmZF9wdXRfMzIgKG91dHB1dF9iZmQsIGluc24w LCBjb250ZW50cyArIHJlbC0+cl9vZmZzZXQpOworQEAgLTMyMjYsNyArMzIzMSwxMCBAQCBlbGZf czM5MF9yZWxvY2F0ZV9zZWN0aW9uIChiZmQgKm91dHB1dF9iZmQsCisgCSAgICAgIGluc24wID0g YmZkX2dldF8zMiAoaW5wdXRfYmZkLCBjb250ZW50cyArIHJlbC0+cl9vZmZzZXQpOworIAkgICAg ICBpbnNuMSA9IGJmZF9nZXRfMTYgKGlucHV0X2JmZCwgY29udGVudHMgKyByZWwtPnJfb2Zmc2V0 ICsgNCk7CisgCSAgICAgIGlmICgoaW5zbjAgJiAweGZmZmYwMDAwKSAhPSAweGMwZTUwMDAwKQor LQkJaW52YWxpZF90bHNfaW5zbiAoaW5wdXRfYmZkLCBpbnB1dF9zZWN0aW9uLCByZWwpOworKwkJ eworKwkJICBpbnZhbGlkX3Rsc19pbnNuIChpbnB1dF9iZmQsIGlucHV0X3NlY3Rpb24sIHJlbCk7 CisrCQkgIHJldHVybiBGQUxTRTsKKysJCX0KKyAJICAgICAgaWYgKCFiZmRfbGlua19waWMgKGlu Zm8pICYmIChoID09IE5VTEwgfHwgaC0+ZHluaW5keCA9PSAtMSkpCisgCQl7CisgCQkgIC8qIEdE LT5MRSB0cmFuc2l0aW9uLgorQEAgLTMyNTMsNyArMzI2MSwxMCBAQCBlbGZfczM5MF9yZWxvY2F0 ZV9zZWN0aW9uIChiZmQgKm91dHB1dF9iZmQsCisgCQkgIGluc24wID0gYmZkX2dldF8zMiAoaW5w dXRfYmZkLCBjb250ZW50cyArIHJlbC0+cl9vZmZzZXQpOworIAkJICBpbnNuMSA9IGJmZF9nZXRf MTYgKGlucHV0X2JmZCwgY29udGVudHMgKyByZWwtPnJfb2Zmc2V0ICsgNCk7CisgCQkgIGlmICgo aW5zbjAgJiAweGZmZmYwMDAwKSAhPSAweGMwZTUwMDAwKQorLQkJICAgIGludmFsaWRfdGxzX2lu c24gKGlucHV0X2JmZCwgaW5wdXRfc2VjdGlvbiwgcmVsKTsKKysJCSAgICB7CisrCQkgICAgICBp bnZhbGlkX3Rsc19pbnNuIChpbnB1dF9iZmQsIGlucHV0X3NlY3Rpb24sIHJlbCk7CisrCQkgICAg ICByZXR1cm4gRkFMU0U7CisrCQkgICAgfQorIAkJICAvKiBMRC0+TEUgdHJhbnNpdGlvbi4KKyAJ CSAgICAgYnJhc2wgJXIxNCxfX3Rsc19nZXRfYWRkckBwbHQgLT4gYnJjbCAwLC4gKi8KKyAJCSAg aW5zbjAgPSAweGMwMDQwMDAwOwoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0x MG9mMzUucGF0Y2ggYi9nZGItcmhiejE0MjAzMDQtczM5MHgtMTBvZjM1LnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2MDQ4NWMKLS0tIC9kZXYvbnVsbAorKysgYi9n ZGItcmhiejE0MjAzMDQtczM5MHgtMTBvZjM1LnBhdGNoCkBAIC0wLDAgKzEsMjcwIEBACitjb21t aXQgMDU2N2M5ODYxZTExM2E1NzNjYzkwNTAwMmE1OWNiMWJjM2Q3ODQ1MAorQXV0aG9yOiBBbmRy ZWFzIEFybmV6IDxhcm5lekBsaW51eC52bmV0LmlibS5jb20+CitEYXRlOiAgIFR1ZSBKdW4gMTMg MTU6MjA6MjUgMjAxNyArMDIwMAorCisgICAgQWRkIHRlc3QgZm9yIG1vZGlmaWFibGUgRFdBUkYg bG9jYXRpb25zCisgICAgCisgICAgVGhpcyBhZGRzIGEgdGVzdCBmb3IgcmVhZC93cml0ZSBhY2Nl c3MgdG8gdmFyaWFibGVzIHdpdGggdmFyaW91cyB0eXBlcyBvZgorICAgIERXQVJGIGxvY2F0aW9u cy4gIEl0IHVzZXMgcmVnaXN0ZXItIGFuZCBtZW1vcnkgbG9jYXRpb25zIGFuZCBjb21wb3NpdGUK KyAgICBsb2NhdGlvbnMgd2l0aCByZWdpc3Rlci0gYW5kIG1lbW9yeSBwaWVjZXMuCisgICAgCisg ICAgU2luY2UgdGhlIG5ldyB0ZXN0IGNhbGxzIGdkYl90ZXN0X25vX291dHB1dCB3aXRoIGNvbW1h bmRzIHRoYXQgY29udGFpbgorICAgIGJyYWNlcywgaXQgaXMgbmVjZXNzYXJ5IGZvciBzdHJpbmdf dG9fcmVnZXhwIHRvIHF1b3RlIGJyYWNlcyBhcyB3ZWxsLgorICAgIFRoaXMgd2FzIG5vdCBkb25l IGJlZm9yZS4KKyAgICAKKyAgICBnZGIvdGVzdHN1aXRlL0NoYW5nZUxvZzoKKyAgICAKKyAgICAg ICAgICAgICogZ2RiLmR3YXJmMi92YXItYWNjZXNzLmM6IE5ldyBmaWxlLgorICAgICAgICAgICAg KiBnZGIuZHdhcmYyL3Zhci1hY2Nlc3MuZXhwOiBOZXcgdGVzdC4KKyAgICAgICAgICAgICogbGli L2dkYi11dGlscy5leHAgKHN0cmluZ190b19yZWdleHApOiBRdW90ZSBicmFjZXMgYXMgd2VsbC4K KworIyMjIGEvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKKyMjIyBiL2dkYi90ZXN0c3VpdGUvQ2hh bmdlTG9nCisjIyAtMSwzICsxLDkgQEAKKysyMDE3LTA2LTEzICBBbmRyZWFzIEFybmV6ICA8YXJu ZXpAbGludXgudm5ldC5pYm0uY29tPgorKworKwkqIGdkYi5kd2FyZjIvdmFyLWFjY2Vzcy5jOiBO ZXcgZmlsZS4KKysJKiBnZGIuZHdhcmYyL3Zhci1hY2Nlc3MuZXhwOiBOZXcgdGVzdC4KKysJKiBs aWIvZ2RiLXV0aWxzLmV4cCAoc3RyaW5nX3RvX3JlZ2V4cCk6IFF1b3RlIGJyYWNlcyBhcyB3ZWxs LgorKworIDIwMTctMDYtMTIgIFRvbSBUcm9tZXkgIDx0b21AdHJvbWV5LmNvbT4KKyAKKyAJKiBn ZGIuZHdhcmYyL2Zvcm1kYXRhMTYuZXhwOiBBZGQgdGVzdHMuCistLS0gL2Rldi9udWxsCisrKysg Yi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvdmFyLWFjY2Vzcy5jCitAQCAtMCwwICsxLDI1IEBA CisrLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KKysK KysgICBDb3B5cmlnaHQgMjAxNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysg ICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrICAgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysgICAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisr ICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZQorKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu CisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UKKysgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwg c2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrY2hhciBidWZbXSA9 IHswLCAxLCAyLCAzLCA0LCA1LCA2LCA3fTsKKysKKytpbnQKKyttYWluICh2b2lkKQorK3sKKysg IGFzbSB2b2xhdGlsZSAoIm1haW5fbGFiZWw6IC5nbG9ibCBtYWluX2xhYmVsIik7CisrICByZXR1 cm4gMDsKKyt9CistLS0gL2Rldi9udWxsCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIv dmFyLWFjY2Vzcy5leHAKK0BAIC0wLDAgKzEsMTk3IEBACisrIyBDb3B5cmlnaHQgMjAxNyBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBv ZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u CisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2 ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0 aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz Lz4uCisrCisrIyBUZXN0IHJlYWRpbmcvd3JpdGluZyB2YXJpYWJsZXMgd2l0aCBub24tdHJpdmlh bCBEV0FSRiBsb2NhdGlvbnMuICBJbgorKyMgcGFydGljdWxhciB0aGUgdGVzdCB1c2VzIHJlZ2lz dGVyLSBhbmQgbWVtb3J5IGxvY2F0aW9ucyBhcyB3ZWxsIGFzCisrIyBjb21wb3NpdGUgbG9jYXRp b25zIHdpdGggcmVnaXN0ZXItIGFuZCBtZW1vcnkgcGllY2VzLgorKworK2xvYWRfbGliIGR3YXJm LmV4cAorKworKyMgVGhpcyB0ZXN0IGNhbiBvbmx5IGJlIHJ1biBvbiB0YXJnZXRzIHdoaWNoIHN1 cHBvcnQgRFdBUkYtMiBhbmQgdXNlIGdhcy4KKytpZiB7IVtkd2FyZjJfc3VwcG9ydF19IHsKKysg ICAgcmV0dXJuIDAKKyt9CisrCisrIyBDaG9vc2Ugc3VpdGFibGUgaW50ZWdlciByZWdpc3RlcnMg Zm9yIHRoZSB0ZXN0LgorKworK3NldCBkd2FyZl9yZWdudW0gezAgMX0KKysKKytpZiB7IFtpc3Rh cmdldCAiYWFyY2g2NCotKi0qIl0gfSB7CisrICAgIHNldCByZWduYW1lIHt4MCB4MX0KKyt9IGVs c2VpZiB7IFtpc3RhcmdldCAiYXJtKi0qLSoiXQorKwkgICB8fCBbaXN0YXJnZXQgInMzOTAqLSot KiIgXQorKwkgICB8fCBbaXN0YXJnZXQgInBvd2VycGMqLSotKiJdCisrCSAgIHx8IFtpc3Rhcmdl dCAicnM2MDAwKi0qLWFpeCoiXSB9IHsKKysgICAgc2V0IHJlZ25hbWUge3IwIHIxfQorK30gZWxz ZWlmIHsgW2lzdGFyZ2V0ICJpPzg2LSotKiJdIH0geworKyAgICBzZXQgcmVnbmFtZSB7ZWF4IGVk eH0KKyt9IGVsc2VpZiB7IFtpc3RhcmdldCAieDg2XzY0LSotKiJdIH0geworKyAgICBzZXQgcmVn bmFtZSB7cmF4IHJkeH0KKyt9IGVsc2UgeworKyAgICB2ZXJib3NlICJTa2lwcGluZyB0ZXN0cyBm b3IgYWNjZXNzaW5nIERXQVJGLWRlc2NyaWJlZCB2YXJpYWJsZXMuIgorKyAgICByZXR1cm4KKyt9 CisrCisrc3RhbmRhcmRfdGVzdGZpbGUgLmMgJHtnZGJfdGVzdF9maWxlX25hbWV9LWR3LlMKKysK KysjIE1ha2Ugc29tZSBEV0FSRiBmb3IgdGhlIHRlc3QuCisrCisrc2V0IGFzbV9maWxlIFtzdGFu ZGFyZF9vdXRwdXRfZmlsZSAkc3JjZmlsZTJdCisrRHdhcmY6OmFzc2VtYmxlICRhc21fZmlsZSB7 CisrICAgIGdsb2JhbCBzcmNkaXIgc3ViZGlyIHNyY2ZpbGUKKysgICAgZ2xvYmFsIGR3YXJmX3Jl Z251bSByZWduYW1lCisrCisrICAgIHNldCBidWZfdmFyIFtnZGJfdGFyZ2V0X3N5bWJvbCBidWZd CisrCisrICAgIGN1IHt9IHsKKysJRFdfVEFHX2NvbXBpbGVfdW5pdCB7CisrCQl7RFdfQVRfbmFt ZSB2YXItcGllY2VzLWR3LmN9CisrCQl7RFdfQVRfY29tcF9kaXIgL3RtcH0KKysJfSB7CisrCSAg ICBkZWNsYXJlX2xhYmVscyBjaGFyX3R5cGVfbGFiZWwKKysJICAgIGRlY2xhcmVfbGFiZWxzIGlu dF90eXBlX2xhYmVsIHNob3J0X3R5cGVfbGFiZWwKKysJICAgIGRlY2xhcmVfbGFiZWxzIGFycmF5 X2E4X2xhYmVsIHN0cnVjdF9zX2xhYmVsCisrCisrCSAgICAjIGNoYXIKKysJICAgIGNoYXJfdHlw ZV9sYWJlbDogYmFzZV90eXBlIHsKKysJCXtuYW1lICJjaGFyIn0KKysJCXtlbmNvZGluZyBARFdf QVRFX3Vuc2lnbmVkX2NoYXJ9CisrCQl7Ynl0ZV9zaXplIDEgRFdfRk9STV9zZGF0YX0KKysJICAg IH0KKysKKysJICAgICMgaW50CisrCSAgICBpbnRfdHlwZV9sYWJlbDogYmFzZV90eXBlIHsKKysJ CXtuYW1lICJpbnQifQorKwkJe2VuY29kaW5nIEBEV19BVEVfc2lnbmVkfQorKwkJe2J5dGVfc2l6 ZSA0IERXX0ZPUk1fc2RhdGF9CisrCSAgICB9CisrCisrCSAgICAjIGNoYXIgWzhdCisrCSAgICBh cnJheV9hOF9sYWJlbDogYXJyYXlfdHlwZSB7CisrCQl7dHlwZSA6JGNoYXJfdHlwZV9sYWJlbH0K KysJICAgIH0geworKwkJc3VicmFuZ2VfdHlwZSB7CisrCQkgICAge3R5cGUgOiRpbnRfdHlwZV9s YWJlbH0KKysJCSAgICB7dXBwZXJfYm91bmQgNyBEV19GT1JNX3VkYXRhfQorKwkJfQorKwkgICAg fQorKworKwkgICAgIyBzdHJ1Y3QgcyB7IGNoYXIgYSwgYiwgYywgZDsgfTsKKysJICAgIHN0cnVj dF9zX2xhYmVsOiBzdHJ1Y3R1cmVfdHlwZSB7CisrCQl7bmFtZSAicyJ9CisrCQl7Ynl0ZV9zaXpl IDQgRFdfRk9STV9zZGF0YX0KKysJICAgIH0geworKwkJbWVtYmVyIHsKKysJCSAgICB7bmFtZSAi YSJ9CisrCQkgICAge3R5cGUgOiRjaGFyX3R5cGVfbGFiZWx9CisrCQkgICAge2RhdGFfbWVtYmVy X2xvY2F0aW9uIDAgRFdfRk9STV91ZGF0YX0KKysJCX0KKysJCW1lbWJlciB7CisrCQkgICAge25h bWUgImIifQorKwkJICAgIHt0eXBlIDokY2hhcl90eXBlX2xhYmVsfQorKwkJICAgIHtkYXRhX21l bWJlcl9sb2NhdGlvbiAxIERXX0ZPUk1fdWRhdGF9CisrCQl9CisrCQltZW1iZXIgeworKwkJICAg IHtuYW1lICJjIn0KKysJCSAgICB7dHlwZSA6JGNoYXJfdHlwZV9sYWJlbH0KKysJCSAgICB7ZGF0 YV9tZW1iZXJfbG9jYXRpb24gMiBEV19GT1JNX3VkYXRhfQorKwkJfQorKwkJbWVtYmVyIHsKKysJ CSAgICB7bmFtZSAiZCJ9CisrCQkgICAge3R5cGUgOiRjaGFyX3R5cGVfbGFiZWx9CisrCQkgICAg e2RhdGFfbWVtYmVyX2xvY2F0aW9uIDMgRFdfRk9STV91ZGF0YX0KKysJCX0KKysJICAgIH0KKysK KysJICAgIERXX1RBR19zdWJwcm9ncmFtIHsKKysJCXtNQUNST19BVF9mdW5jIHsgbWFpbiAke3Ny Y2Rpcn0vJHtzdWJkaXJ9LyR7c3JjZmlsZX0gfX0KKysJCXtEV19BVF9leHRlcm5hbCAxIGZsYWd9 CisrCSAgICB9IHsKKysJCSMgU2ltcGxlIG1lbW9yeSBsb2NhdGlvbi4KKysJCURXX1RBR192YXJp YWJsZSB7CisrCQkgICAge25hbWUgImEifQorKwkJICAgIHt0eXBlIDokYXJyYXlfYThfbGFiZWx9 CisrCQkgICAge2xvY2F0aW9uIHsKKysJCQlhZGRyICRidWZfdmFyCisrCQkgICAgfSBTUEVDSUFM X2V4cHJ9CisrCQl9CisrCQkjIE1lbW9yeSBwaWVjZXM6IHR3byBieXRlcyBmcm9tICZidWZbMl0s IGFuZCB0d28gYnl0ZXMKKysJCSMgZnJvbSAmYnVmWzBdLgorKwkJRFdfVEFHX3ZhcmlhYmxlIHsK KysJCSAgICB7bmFtZSAiczEifQorKwkJICAgIHt0eXBlIDokc3RydWN0X3NfbGFiZWx9CisrCQkg ICAge2xvY2F0aW9uIHsKKysJCQlhZGRyICRidWZfdmFyCisrCQkJcGx1c191Y29uc3QgMgorKwkJ CXBpZWNlIDIKKysJCQlhZGRyICRidWZfdmFyCisrCQkJcGllY2UgMgorKwkJICAgIH0gU1BFQ0lB TF9leHByfQorKwkJfQorKwkJIyBSZWdpc3Rlci0gYW5kIG1lbW9yeSBwaWVjZXM6IG9uZSBieXRl IGVhY2ggZnJvbSByMCwKKysJCSMgJmJ1Zls0XSwgcjEsIGFuZCAmYnVmWzVdLgorKwkJRFdfVEFH X3ZhcmlhYmxlIHsKKysJCSAgICB7bmFtZSAiczIifQorKwkJICAgIHt0eXBlIDokc3RydWN0X3Nf bGFiZWx9CisrCQkgICAge2xvY2F0aW9uIHsKKysJCQlyZWd4IFtsaW5kZXggJGR3YXJmX3JlZ251 bSAwXQorKwkJCXBpZWNlIDEKKysJCQlhZGRyICIkYnVmX3ZhciArIDQiCisrCQkJcGllY2UgMQor KwkJCXJlZ3ggW2xpbmRleCAkZHdhcmZfcmVnbnVtIDFdCisrCQkJcGllY2UgMQorKwkJCWFkZHIg IiRidWZfdmFyICsgNSIKKysJCQlwaWVjZSAxCisrCQkgICAgfSBTUEVDSUFMX2V4cHJ9CisrCQl9 CisrCSAgICB9CisrCX0KKysgICAgfQorK30KKysKKytpZiB7IFtwcmVwYXJlX2Zvcl90ZXN0aW5n ICR7dGVzdGZpbGV9LmV4cCAke3Rlc3RmaWxlfSBcCisrCSAgW2xpc3QgJHNyY2ZpbGUgJGFzbV9m aWxlXSB7bm9kZWJ1Z31dIH0geworKyAgICByZXR1cm4gLTEKKyt9CisrCisraWYgIVtydW50b19t YWluXSB7CisrICAgIHJldHVybiAtMQorK30KKysKKysjIEJ5dGUtYWxpZ25lZCBtZW1vcnkgcGll Y2VzLgorK2dkYl90ZXN0ICJwcmludC9kIHMxIiAiID0gXFx7YSA9IDIsIGIgPSAzLCBjID0gMCwg ZCA9IDFcXH0iIFwKKysgICAgInMxID09IHJlLW9yZGVyZWQgYnVmIgorK2dkYl90ZXN0X25vX291 dHB1dCAic2V0IHZhciBzMS5hID0gNjMiCisrZ2RiX3Rlc3QgInByaW50L2QgczEiICIgPSBcXHth ID0gNjMsIGIgPSAzLCBjID0gMCwgZCA9IDFcXH0iIFwKKysgICAgInZlcmlmeSBzMS5hIgorK2dk Yl90ZXN0ICJwcmludC9kIGEiICIgPSBcXHswLCAxLCA2MywgMywgNCwgNSwgNiwgN1xcfSIgXAor KyAgICAidmVyaWZ5IHMxLmEgdGhyb3VnaCBhIgorKworKyMgQnl0ZS1hbGlnbmVkIHJlZ2lzdGVy LSBhbmQgbWVtb3J5IHBpZWNlcy4KKytnZGJfdGVzdF9ub19vdXRwdXQgInNldCB2YXIgXCRbbGlu ZGV4ICRyZWduYW1lIDBdID0gODEiIFwKKysgICAgImluaXQgcmVnIGZvciBzMi5hIgorK2dkYl90 ZXN0X25vX291dHB1dCAic2V0IHZhciBcJFtsaW5kZXggJHJlZ25hbWUgMV0gPSAyOCIgXAorKyAg ICAiaW5pdCByZWcgZm9yIHMyLmMiCisrZ2RiX3Rlc3QgInByaW50L2QgczIiICIgPSBcXHthID0g ODEsIGIgPSA0LCBjID0gMjgsIGQgPSA1XFx9IiBcCisrICAgICJpbml0aWFsaXplZCBzMiBmcm9t IG1lbSBhbmQgcmVncyIKKytnZGJfdGVzdF9ub19vdXRwdXQgInNldCB2YXIgczIuYyArPSBzMi5h ICsgczIuYiAtIHMyLmQiCisrZ2RiX3Rlc3QgInByaW50L2QgczIiICIgPSBcXHthID0gODEsIGIg PSA0LCBjID0gMTA4LCBkID0gNVxcfSIgXAorKyAgICAidmVyaWZ5IHMyLmMiCisrZ2RiX3Rlc3Qg InByaW50L2QgXCRbbGluZGV4ICRyZWduYW1lIDFdIiAiID0gMTA4IiBcCisrICAgICJ2ZXJpZnkg czIuYyB0aHJvdWdoIHJlZyIKKytnZGJfdGVzdF9ub19vdXRwdXQgInNldCB2YXIgczIgPSB7MTkx LCA3MywgMjMxLCAxMjN9IiBcCisrICAgICJyZS1pbml0aWFsaXplIHMyIgorK2dkYl90ZXN0ICJw cmludC9kIHMyIiAgIiA9IFxce2EgPSAxOTEsIGIgPSA3MywgYyA9IDIzMSwgZCA9IDEyM1xcfSIg XAorKyAgICAidmVyaWZ5IHJlLWluaXRpYWxpemVkIHMyIgorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9s aWIvZ2RiLXV0aWxzLmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLXV0aWxzLmV4cAor QEAgLTM0LDYgKzM0LDYgQEAgcHJvYyBnZGJfaW5pdF9jb21tYW5kcyB7fSB7CisgCisgcHJvYyBz dHJpbmdfdG9fcmVnZXhwIHtzdHJ9IHsKKyAgICAgc2V0IHJlc3VsdCAkc3RyCistICAgIHJlZ3N1 YiAtYWxsIHtbXSorLnwoKV4kXFtcXF19ICRzdHIge1xcJn0gcmVzdWx0CisrICAgIHJlZ3N1YiAt YWxsIHtbXSorLnwoKXt9XiRcW1xcXX0gJHN0ciB7XFwmfSByZXN1bHQKKyAgICAgcmV0dXJuICRy ZXN1bHQKKyB9CgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTExb2YzNS5wYXRj aCBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0xMW9mMzUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uYjAyZjA5NAotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1yaGJ6MTQy MDMwNC1zMzkweC0xMW9mMzUucGF0Y2gKQEAgLTAsMCArMSwxMDYgQEAKK2NvbW1pdCBkNWQxMTYz ZWZmMjQxNWEwMTg5NWYxY2ZmOGJiZWUzMmIzZjBhYjY2CitBdXRob3I6IEFuZHJlYXMgQXJuZXog PGFybmV6QGxpbnV4LnZuZXQuaWJtLmNvbT4KK0RhdGU6ICAgVHVlIEp1biAxMyAxNToyMDoyNiAy MDE3ICswMjAwCisKKyAgICB3cml0ZV9waWVjZWRfdmFsdWU6IEZpeCBzaXplIGNhcHBpbmcgbG9n aWMKKyAgICAKKyAgICBBIGZpZWxkIGYgaW4gYSBzdHJ1Y3R1cmUgY29tcG9zZWQgb2YgRFdBUkYg cGllY2VzIG1heSBiZSBsb2NhdGVkIGluCisgICAgbXVsdGlwbGUgcGllY2VzLCB3aGVyZSB0aGUg Zmlyc3QgYW5kIGxhc3Qgb2YgdGhvc2UgbWF5IGNvbnRhaW4gYml0cyBmcm9tCisgICAgb3RoZXIg ZmllbGRzIGFzIHdlbGwuICBTbyB3aGVuIHdyaXRpbmcgdG8gZiwgdGhlIGJlZ2lubmluZyBvZiB0 aGUgZmlyc3QKKyAgICBhbmQgdGhlIGVuZCBvZiB0aGUgbGFzdCBvZiB0aG9zZSBwaWVjZXMgbWF5 IGhhdmUgdG8gYmUgc2tpcHBlZC4gIEJ1dCB0aGUKKyAgICBsb2dpYyBpbiB3cml0ZV9waWVjZWRf dmFsdWUgZm9yIGhhbmRsaW5nIG9uZSBvZiB0aG9zZSBwaWVjZXMgaXMgZmxhd2VkCisgICAgd2hl biB0aGUgZmlyc3QgYW5kIGxhc3QgcGllY2UgYXJlIHRoZSBzYW1lLCBpLmUuLCBmIGlzIGNvbnRh aW5lZCBpbiBhCisgICAgc2luZ2xlIHBpZWNlOgorICAgIAorICAgICAgPCAtIC0gLSAtIC0gLSAt IC0gLSBwaWVjZV9zaXplIC0gLSAtIC0gLSAtIC0gLSAtIC0+CisgICAgICArLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgICAgIHwgc2tpcHBlZF9i aXRzIHwgICBmX2JpdHMgICB8IC8gLyAvIC8gLyAvIC8gLyAvIC8gfAorICAgICAgKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgICAgCisgICAgVGhl IGN1cnJlbnQgbG9naWMgZGV0ZXJtaW5lcyB0aGUgc2l6ZSBvZiB0aGUgc3ViLXBpZWNlIHRvIG9w ZXJhdGUgb24gYnkKKyAgICBsaW1pdGluZyB0aGUgcGllY2Ugc2l6ZSB0byB0aGUgYml0IHNpemUg b2YgZiBhbmQgdGhlbiBzdWJ0cmFjdGluZyB0aGUKKyAgICBza2lwcGVkIGJpdHM6CisgICAgCisg ICAgICBtaW4gKHBpZWNlX3NpemUsIGZfYml0cykgLSBza2lwcGVkX2JpdHMKKyAgICAKKyAgICBJ bnN0ZWFkIG9mOgorICAgIAorICAgICAgbWluIChwaWVjZV9zaXplIC0gc2tpcHBlZF9iaXRzLCBm X2JpdHMpCisgICAgCisgICAgU28gdGhlIHJlc3VsdGluZyBzdWItcGllY2Ugc2l6ZSBpcyBjb3Jy dXB0ZWQsIGxlYWRpbmcgdG8gd3JvbmcgaGFuZGxpbmcgb2YKKyAgICB0aGlzIHBpZWNlIGluIHdy aXRlX3BpZWNlZF92YWx1ZS4KKyAgICAKKyAgICBOb3RlIHRoYXQgdGhlIHNhbWUgYnVnIHdhcyBh bHJlYWR5IGZvdW5kIGluIHJlYWRfcGllY2VkX3ZhbHVlIGFuZCBmaXhlZAorICAgIHRoZXJlIChi dXQgbm90IGluIHdyaXRlX3BpZWNlZF92YWx1ZSksIHNlZSBQUiAxNTM5MS4KKyAgICAKKyAgICBU aGlzIHBhdGNoIHN3YXBzIHRoZSBjYWxjdWxhdGlvbnMsIGJyaW5naW5nIHRoZW0gaW50byB0aGUg c2FtZSAoY29ycmVjdCkKKyAgICBvcmRlciBhcyBpbiByZWFkX3BpZWNlZF92YWx1ZS4KKyAgICAK KyAgICBnZGIvQ2hhbmdlTG9nOgorICAgIAorICAgICAgICAgICAgKiBkd2FyZjJsb2MuYyAod3Jp dGVfcGllY2VkX3ZhbHVlKTogRml4IG9yZGVyIG9mIGNhbGN1bGF0aW9ucyBmb3IKKyAgICAgICAg ICAgIHNpemUgY2FwcGluZy4KKyAgICAKKyAgICBnZGIvdGVzdHN1aXRlL0NoYW5nZUxvZzoKKyAg ICAKKyAgICAgICAgICAgICogZ2RiLmR3YXJmMi92YXItcGllY2VzLmV4cDogQWRkIHRlc3QgY2Fz ZSBmb3IgbW9kaWZ5aW5nIGEKKyAgICAgICAgICAgIHZhcmlhYmxlIGF0IG5vbnplcm8gb2Zmc2V0 LgorCisjIyMgYS9nZGIvQ2hhbmdlTG9nCisjIyMgYi9nZGIvQ2hhbmdlTG9nCisjIyAtMSwzICsx LDggQEAKKysyMDE3LTA2LTEzICBBbmRyZWFzIEFybmV6ICA8YXJuZXpAbGludXgudm5ldC5pYm0u Y29tPgorKworKwkqIGR3YXJmMmxvYy5jICh3cml0ZV9waWVjZWRfdmFsdWUpOiBGaXggb3JkZXIg b2YgY2FsY3VsYXRpb25zIGZvcgorKwlzaXplIGNhcHBpbmcuCisrCisgMjAxNy0wNi0xMyAgWWFv IFFpICA8eWFvLnFpQGxpbmFyby5vcmc+CisgCisgCSogbWlwcy1saW51eC1uYXQuYzogTW92ZSBp bmNsdWRlIGZlYXR1cmVzL21pcHMqLWxpbnV4LmMgdG8KKy0tLSBhL2dkYi9kd2FyZjJsb2MuYwor KysrIGIvZ2RiL2R3YXJmMmxvYy5jCitAQCAtMTk2NCw4ICsxOTY0LDYgQEAgd3JpdGVfcGllY2Vk X3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBzdHJ1Y3QgdmFsdWUgKmZyb20pCisgCSAgYml0c190 b19za2lwIC09IHRoaXNfc2l6ZV9iaXRzOworIAkgIGNvbnRpbnVlOworIAl9CistICAgICAgaWYg KHRoaXNfc2l6ZV9iaXRzID4gdHlwZV9sZW4gLSBvZmZzZXQpCistCXRoaXNfc2l6ZV9iaXRzID0g dHlwZV9sZW4gLSBvZmZzZXQ7CisgICAgICAgaWYgKGJpdHNfdG9fc2tpcCA+IDApCisgCXsKKyAJ ICBkZXN0X29mZnNldF9iaXRzID0gYml0c190b19za2lwOworQEAgLTE5NzgsNiArMTk3Niw4IEBA IHdyaXRlX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp0bywgc3RydWN0IHZhbHVlICpmcm9t KQorIAkgIGRlc3Rfb2Zmc2V0X2JpdHMgPSAwOworIAkgIHNvdXJjZV9vZmZzZXRfYml0cyA9IG9m ZnNldDsKKyAJfQorKyAgICAgIGlmICh0aGlzX3NpemVfYml0cyA+IHR5cGVfbGVuIC0gb2Zmc2V0 KQorKwl0aGlzX3NpemVfYml0cyA9IHR5cGVfbGVuIC0gb2Zmc2V0OworIAorICAgICAgIHRoaXNf c2l6ZSA9ICh0aGlzX3NpemVfYml0cyArIHNvdXJjZV9vZmZzZXRfYml0cyAlIDggKyA3KSAvIDg7 CisgICAgICAgc291cmNlX29mZnNldCA9IHNvdXJjZV9vZmZzZXRfYml0cyAvIDg7CisjIyMgYS9n ZGIvdGVzdHN1aXRlL0NoYW5nZUxvZworIyMjIGIvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKKyMj IC0xLDUgKzEsMTAgQEAKKyAyMDE3LTA2LTEzICBBbmRyZWFzIEFybmV6ICA8YXJuZXpAbGludXgu dm5ldC5pYm0uY29tPgorIAorKwkqIGdkYi5kd2FyZjIvdmFyLXBpZWNlcy5leHA6IEFkZCB0ZXN0 IGNhc2UgZm9yIG1vZGlmeWluZyBhCisrCXZhcmlhYmxlIGF0IG5vbnplcm8gb2Zmc2V0LgorKwor KzIwMTctMDYtMTMgIEFuZHJlYXMgQXJuZXogIDxhcm5lekBsaW51eC52bmV0LmlibS5jb20+Cisr CisgCSogZ2RiLmR3YXJmMi92YXItYWNjZXNzLmM6IE5ldyBmaWxlLgorIAkqIGdkYi5kd2FyZjIv dmFyLWFjY2Vzcy5leHA6IE5ldyB0ZXN0LgorIAkqIGxpYi9nZGItdXRpbHMuZXhwIChzdHJpbmdf dG9fcmVnZXhwKTogUXVvdGUgYnJhY2VzIGFzIHdlbGwuCistLS0gYS9nZGIvdGVzdHN1aXRlL2dk Yi5kd2FyZjIvdmFyLWFjY2Vzcy5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi92 YXItYWNjZXNzLmV4cAorQEAgLTE3OCw2ICsxNzgsMTEgQEAgZ2RiX3Rlc3QgInByaW50L2QgczEi ICIgPSBcXHthID0gNjMsIGIgPSAzLCBjID0gMCwgZCA9IDFcXH0iIFwKKyAgICAgInZlcmlmeSBz MS5hIgorIGdkYl90ZXN0ICJwcmludC9kIGEiICIgPSBcXHswLCAxLCA2MywgMywgNCwgNSwgNiwg N1xcfSIgXAorICAgICAidmVyaWZ5IHMxLmEgdGhyb3VnaCBhIgorK2dkYl90ZXN0X25vX291dHB1 dCAic2V0IHZhciBzMS5iID0gNDIiCisrZ2RiX3Rlc3QgInByaW50L2QgczEiICIgPSBcXHthID0g NjMsIGIgPSA0MiwgYyA9IDAsIGQgPSAxXFx9IiBcCisrICAgICJ2ZXJpZnkgczEuYiIKKytnZGJf dGVzdCAicHJpbnQvZCBhIiAiID0gXFx7MCwgMSwgNjMsIDQyLCA0LCA1LCA2LCA3XFx9IiBcCisr ICAgICJ2ZXJpZnkgczEuYiB0aHJvdWdoIGEiCisgCisgIyBCeXRlLWFsaWduZWQgcmVnaXN0ZXIt IGFuZCBtZW1vcnkgcGllY2VzLgorIGdkYl90ZXN0X25vX291dHB1dCAic2V0IHZhciBcJFtsaW5k ZXggJHJlZ25hbWUgMF0gPSA4MSIgXAoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6MTQyMDMwNC1zMzkw eC0xMm9mMzUucGF0Y2ggYi9nZGItcmhiejE0MjAzMDQtczM5MHgtMTJvZjM1LnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgxMWQ5ZTYKLS0tIC9kZXYvbnVsbAorKysg Yi9nZGItcmhiejE0MjAzMDQtczM5MHgtMTJvZjM1LnBhdGNoCkBAIC0wLDAgKzEsMTg5IEBACitj b21taXQgZTkzNTIzMjQ1YjcwNGJjMTI2NzA1NjIwOTY5YjQ3MzZiMDAzNTBjNQorQXV0aG9yOiBB bmRyZWFzIEFybmV6IDxhcm5lekBsaW51eC52bmV0LmlibS5jb20+CitEYXRlOiAgIFR1ZSBKdW4g MTMgMTU6MjA6MjYgMjAxNyArMDIwMAorCisgICAgUFIgZ2RiLzIxMjI2OiBUYWtlIERXQVJGIHN0 YWNrIHZhbHVlIHBpZWNlcyBmcm9tIExTQiBlbmQKKyAgICAKKyAgICBXaGVuIHRha2luZyBhIERX X09QX3BpZWNlIG9yIERXX09QX2JpdF9waWVjZSBmcm9tIGEgRFdfT1Bfc3RhY2tfdmFsdWUsIHRo ZQorICAgIGV4aXN0aW5nIGxvZ2ljIGFsd2F5cyB0YWtlcyB0aGUgcGllY2UgZnJvbSB0aGUgbG93 ZXN0LWFkZHJlc3NlZCBlbmQsIHdoaWNoCisgICAgaXMgd3Jvbmcgb24gYmlnLWVuZGlhbiB0YXJn ZXRzLiAgVGhlIERXQVJGIHN0YW5kYXJkIHN0YXRlcyB0aGF0IHRoZQorICAgICJEV19PUF9iaXRf cGllY2Ugb3BlcmF0aW9uIGRlc2NyaWJlcyBhIHNlcXVlbmNlIG9mIGJpdHMgdXNpbmcgdGhlIGxl YXN0CisgICAgc2lnbmlmaWNhbnQgYml0cyBvZiB0aGF0IHZhbHVlIiwgYW5kIHRoaXMgYWxzbyBt YXRjaGVzIHRoZSBjdXJyZW50IGxvZ2ljCisgICAgaW4gR0NDLiAgRm9yIGluc3RhbmNlLCB0aGUg R0NDIGd1YWxpdHkgdGVzdCBjYXNlIHByNTQ5NzAuYyBmYWlscyBvbiBzMzkweAorICAgIGJlY2F1 c2Ugb2YgdGhpcy4KKyAgICAKKyAgICBUaGlzIGZpeCBhZGp1c3RzIHRoZSBwaWVjZSBhY2NvcmRp bmdseSBvbiBiaWctZW5kaWFuIHRhcmdldHMuICBJdCBpcworICAgIGFzc3VtZWQgdGhhdDoKKyAg ICAKKyAgICAqIERXX09QX3BpZWNlIHNoYWxsIHRha2UgdGhlIHBpZWNlIGZyb20gdGhlIExTQiBl bmQgYXMgd2VsbDsKKyAgICAKKyAgICAqIHBpZWNlcyByZWFjaGluZyBvdXRzaWRlIHRoZSBzdGFj ayB2YWx1ZSBiaXRzIGFyZSBjb25zaWRlcmVkIHVuZGVmaW5lZCwKKyAgICAgIGFuZCBhIHplcm8g dmFsdWUgY2FuIGJlIHVzZWQgaW5zdGVhZC4KKyAgICAKKyAgICBnZGIvQ2hhbmdlTG9nOgorICAg IAorICAgICAgICAgICAgUFIgZ2RiLzIxMjI2CisgICAgICAgICAgICAqIGR3YXJmMmxvYy5jIChy ZWFkX3BpZWNlZF92YWx1ZSk6IEFuY2hvciBzdGFjayB2YWx1ZSBwaWVjZXMgYXQKKyAgICAgICAg ICAgIHRoZSBMU0IgZW5kLCBpbmRlcGVuZGVudCBvZiBlbmRpYW5uZXNzLgorICAgIAorICAgIGdk Yi90ZXN0c3VpdGUvQ2hhbmdlTG9nOgorICAgIAorICAgICAgICAgICAgUFIgZ2RiLzIxMjI2Cisg ICAgICAgICAgICAqIGdkYi5kd2FyZjIvbm9udmFyLWFjY2Vzcy5leHA6IEFkZCBjaGVja3MgZm9y IHZlcmlmeWluZyB0aGF0CisgICAgICAgICAgICBzdGFjayB2YWx1ZSBwaWVjZXMgYXJlIHRha2Vu IGZyb20gdGhlIExTQiBlbmQuCisKKyMjIyBhL2dkYi9DaGFuZ2VMb2cKKyMjIyBiL2dkYi9DaGFu Z2VMb2cKKyMjIC0xLDUgKzEsMTEgQEAKKyAyMDE3LTA2LTEzICBBbmRyZWFzIEFybmV6ICA8YXJu ZXpAbGludXgudm5ldC5pYm0uY29tPgorIAorKwlQUiBnZGIvMjEyMjYKKysJKiBkd2FyZjJsb2Mu YyAocmVhZF9waWVjZWRfdmFsdWUpOiBBbmNob3Igc3RhY2sgdmFsdWUgcGllY2VzIGF0CisrCXRo ZSBMU0IgZW5kLCBpbmRlcGVuZGVudCBvZiBlbmRpYW5uZXNzLgorKworKzIwMTctMDYtMTMgIEFu ZHJlYXMgQXJuZXogIDxhcm5lekBsaW51eC52bmV0LmlibS5jb20+CisrCisgCSogZHdhcmYybG9j LmMgKHdyaXRlX3BpZWNlZF92YWx1ZSk6IEZpeCBvcmRlciBvZiBjYWxjdWxhdGlvbnMgZm9yCisg CXNpemUgY2FwcGluZy4KKyAKKy0tLSBhL2dkYi9kd2FyZjJsb2MuYworKysrIGIvZ2RiL2R3YXJm MmxvYy5jCitAQCAtMTg1OCw2ICsxODU4LDEwIEBAIHJlYWRfcGllY2VkX3ZhbHVlIChzdHJ1Y3Qg dmFsdWUgKnYpCisgCQlpZiAodW5hdmFpbCkKKyAJCSAgbWFya192YWx1ZV9iaXRzX3VuYXZhaWxh YmxlICh2LCBvZmZzZXQsIHRoaXNfc2l6ZV9iaXRzKTsKKyAJICAgICAgfQorKworKwkgICAgY29w eV9iaXR3aXNlIChjb250ZW50cywgZGVzdF9vZmZzZXRfYml0cywKKysJCQkgIGludGVybWVkaWF0 ZV9idWZmZXIsIHNvdXJjZV9vZmZzZXRfYml0cyAlIDgsCisrCQkJICB0aGlzX3NpemVfYml0cywg Yml0c19iaWdfZW5kaWFuKTsKKyAJICB9CisgCSAgYnJlYWs7CisgCitAQCAtMTg2NiwyNiArMTg3 MCwzMCBAQCByZWFkX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQorIAkJCSAgICAgcC0+ di5tZW0uaW5fc3RhY2tfbWVtb3J5LAorIAkJCSAgICAgcC0+di5tZW0uYWRkciArIHNvdXJjZV9v ZmZzZXQsCisgCQkJICAgICBidWZmZXIuZGF0YSAoKSwgdGhpc19zaXplKTsKKysJICBjb3B5X2Jp dHdpc2UgKGNvbnRlbnRzLCBkZXN0X29mZnNldF9iaXRzLAorKwkJCWludGVybWVkaWF0ZV9idWZm ZXIsIHNvdXJjZV9vZmZzZXRfYml0cyAlIDgsCisrCQkJdGhpc19zaXplX2JpdHMsIGJpdHNfYmln X2VuZGlhbik7CisgCSAgYnJlYWs7CisgCisgCWNhc2UgRFdBUkZfVkFMVUVfU1RBQ0s6CisgCSAg eworLQkgICAgc2l6ZV90IG4gPSB0aGlzX3NpemU7CisrCSAgICBzdHJ1Y3Qgb2JqZmlsZSAqb2Jq ZmlsZSA9IGR3YXJmMl9wZXJfY3Vfb2JqZmlsZSAoYy0+cGVyX2N1KTsKKysJICAgIHN0cnVjdCBn ZGJhcmNoICpvYmpmaWxlX2dkYmFyY2ggPSBnZXRfb2JqZmlsZV9hcmNoIChvYmpmaWxlKTsKKysJ ICAgIFVMT05HRVNUIHN0YWNrX3ZhbHVlX3NpemVfYml0cworKwkgICAgICA9IDggKiBUWVBFX0xF TkdUSCAodmFsdWVfdHlwZSAocC0+di52YWx1ZSkpOworIAorLQkgICAgaWYgKG4gPiBjLT5hZGRy X3NpemUgLSBzb3VyY2Vfb2Zmc2V0KQorLQkgICAgICBuID0gKGMtPmFkZHJfc2l6ZSA+PSBzb3Vy Y2Vfb2Zmc2V0CistCQkgICA/IGMtPmFkZHJfc2l6ZSAtIHNvdXJjZV9vZmZzZXQKKy0JCSAgIDog MCk7CistCSAgICBpZiAobiA9PSAwKQorLQkgICAgICB7CistCQkvKiBOb3RoaW5nLiAgKi8KKy0J ICAgICAgfQorLQkgICAgZWxzZQorLQkgICAgICB7CistCQljb25zdCBnZGJfYnl0ZSAqdmFsX2J5 dGVzID0gdmFsdWVfY29udGVudHNfYWxsIChwLT52LnZhbHVlKTsKKysJICAgIC8qIFVzZSB6ZXJv ZXMgaWYgcGllY2UgcmVhY2hlcyBiZXlvbmQgc3RhY2sgdmFsdWUuICAqLworKwkgICAgaWYgKHAt PnNpemUgPiBzdGFja192YWx1ZV9zaXplX2JpdHMpCisrCSAgICAgIGJyZWFrOworIAorLQkJaW50 ZXJtZWRpYXRlX2J1ZmZlciA9IHZhbF9ieXRlcyArIHNvdXJjZV9vZmZzZXQ7CistCSAgICAgIH0K KysJICAgIC8qIFBpZWNlIGlzIGFuY2hvcmVkIGF0IGxlYXN0IHNpZ25pZmljYW50IGJpdCBlbmQu ICAqLworKwkgICAgaWYgKGdkYmFyY2hfYnl0ZV9vcmRlciAob2JqZmlsZV9nZGJhcmNoKSA9PSBC RkRfRU5ESUFOX0JJRykKKysJICAgICAgc291cmNlX29mZnNldF9iaXRzICs9IHN0YWNrX3ZhbHVl X3NpemVfYml0cyAtIHAtPnNpemU7CisrCisrCSAgICBjb3B5X2JpdHdpc2UgKGNvbnRlbnRzLCBk ZXN0X29mZnNldF9iaXRzLAorKwkJCSAgdmFsdWVfY29udGVudHNfYWxsIChwLT52LnZhbHVlKSwK KysJCQkgIHNvdXJjZV9vZmZzZXRfYml0cywKKysJCQkgIHRoaXNfc2l6ZV9iaXRzLCBiaXRzX2Jp Z19lbmRpYW4pOworIAkgIH0KKyAJICBicmVhazsKKyAKK0BAIC0xODk5LDYgKzE5MDcsMTAgQEAg cmVhZF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdikKKyAJCSAgIDogMCk7CisgCSAgICBp ZiAobiAhPSAwKQorIAkgICAgICBpbnRlcm1lZGlhdGVfYnVmZmVyID0gcC0+di5saXRlcmFsLmRh dGEgKyBzb3VyY2Vfb2Zmc2V0OworKworKwkgICAgY29weV9iaXR3aXNlIChjb250ZW50cywgZGVz dF9vZmZzZXRfYml0cywKKysJCQkgIGludGVybWVkaWF0ZV9idWZmZXIsIHNvdXJjZV9vZmZzZXRf Yml0cyAlIDgsCisrCQkJICB0aGlzX3NpemVfYml0cywgYml0c19iaWdfZW5kaWFuKTsKKyAJICB9 CisgCSAgYnJlYWs7CisgCitAQCAtMTkxNSwxMiArMTkyNyw2IEBAIHJlYWRfcGllY2VkX3ZhbHVl IChzdHJ1Y3QgdmFsdWUgKnYpCisgCSAgaW50ZXJuYWxfZXJyb3IgKF9fRklMRV9fLCBfX0xJTkVf XywgXygiaW52YWxpZCBsb2NhdGlvbiB0eXBlIikpOworIAl9CisgCistICAgICAgaWYgKHAtPmxv Y2F0aW9uICE9IERXQVJGX1ZBTFVFX09QVElNSVpFRF9PVVQKKy0JICAmJiBwLT5sb2NhdGlvbiAh PSBEV0FSRl9WQUxVRV9JTVBMSUNJVF9QT0lOVEVSKQorLQljb3B5X2JpdHdpc2UgKGNvbnRlbnRz LCBkZXN0X29mZnNldF9iaXRzLAorLQkJICAgICAgaW50ZXJtZWRpYXRlX2J1ZmZlciwgc291cmNl X29mZnNldF9iaXRzICUgOCwKKy0JCSAgICAgIHRoaXNfc2l6ZV9iaXRzLCBiaXRzX2JpZ19lbmRp YW4pOworLQorICAgICAgIG9mZnNldCArPSB0aGlzX3NpemVfYml0czsKKyAgICAgfQorIH0KKyMj IyBhL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCisjIyMgYi9nZGIvdGVzdHN1aXRlL0NoYW5nZUxv ZworIyMgLTEsNSArMSwxMSBAQAorIDIwMTctMDYtMTMgIEFuZHJlYXMgQXJuZXogIDxhcm5lekBs aW51eC52bmV0LmlibS5jb20+CisgCisrCVBSIGdkYi8yMTIyNgorKwkqIGdkYi5kd2FyZjIvbm9u dmFyLWFjY2Vzcy5leHA6IEFkZCBjaGVja3MgZm9yIHZlcmlmeWluZyB0aGF0CisrCXN0YWNrIHZh bHVlIHBpZWNlcyBhcmUgdGFrZW4gZnJvbSB0aGUgTFNCIGVuZC4KKysKKysyMDE3LTA2LTEzICBB bmRyZWFzIEFybmV6ICA8YXJuZXpAbGludXgudm5ldC5pYm0uY29tPgorKworIAkqIGdkYi5kd2Fy ZjIvdmFyLXBpZWNlcy5leHA6IEFkZCB0ZXN0IGNhc2UgZm9yIG1vZGlmeWluZyBhCisgCXZhcmlh YmxlIGF0IG5vbnplcm8gb2Zmc2V0LgorIAorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYy L25vbnZhci1hY2Nlc3MuZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvbm9udmFy LWFjY2Vzcy5leHAKK0BAIC0xMjgsMTQgKzEyOCwyNiBAQCBEd2FyZjo6YXNzZW1ibGUgJGFzbV9m aWxlIHsKKyAJCSAgICB7bmFtZSBkZWZfdH0KKyAJCSAgICB7dHlwZSA6JHN0cnVjdF90X2xhYmVs fQorIAkJICAgIHtsb2NhdGlvbiB7CistCQkJY29uc3QxdSAwCisrCQkJY29uc3QycyAtMTg0Cisg CQkJc3RhY2tfdmFsdWUKKyAJCQliaXRfcGllY2UgOSAwCistCQkJY29uc3QxcyAtMQorKwkJCWNv bnN0NHUgMTc1MjI4NgorIAkJCXN0YWNrX3ZhbHVlCisgCQkJYml0X3BpZWNlIDIzIDAKKyAJCSAg ICB9IFNQRUNJQUxfZXhwcn0KKyAJCX0KKysJCSMgQ29tcG9zaXRlIGxvY2F0aW9uIHdpdGggc29t ZSBlbXB0eSBwaWVjZXMuCisrCQlEV19UQUdfdmFyaWFibGUgeworKwkJICAgIHtuYW1lIHBhcnRf ZGVmX2F9CisrCQkgICAge3R5cGUgOiRhcnJheV9hOV9sYWJlbH0KKysJCSAgICB7bG9jYXRpb24g eworKwkJCXBpZWNlIDMKKysJCQljb25zdDR1IDB4ZjE5MjczMTQKKysJCQlzdGFja192YWx1ZQor KwkJCXBpZWNlIDQKKysJCQlwaWVjZSAyCisrCQkgICAgfSBTUEVDSUFMX2V4cHJ9CisrCQl9Cisg CQkjIEltcGxpY2l0IGxvY2F0aW9uOiBpbW1lZGlhdGUgdmFsdWUuCisgCQlEV19UQUdfdmFyaWFi bGUgeworIAkJICAgIHtuYW1lIGRlZl9pbXBsaWNpdF9zfQorQEAgLTIyMSw5ICsyMzMsMTIgQEAg Z2RiX3Rlc3QgInByaW50L3ggKmltcGxpY2l0X2JfcHRyIiAiID0gJHZhbCIKKyAKKyAjIEJ5dGUt YWxpZ25lZCBmaWVsZHMsIHBpZWNlZCB0b2dldGhlciBmcm9tIERXQVJGIHN0YWNrIHZhbHVlcy4K KyBnZGJfdGVzdCAicHJpbnQgZGVmX3MiICIgPSBcXHthID0gMCwgYiA9IC0xXFx9IgorK3N3aXRj aCAkZW5kaWFuIHsgYmlnIHtzZXQgdmFsIDB4OTJ9IGxpdHRsZSB7c2V0IHZhbCAweDczfSB9Cisr Z2RiX3Rlc3QgInByaW50L3ggcGFydF9kZWZfYVxbNFxdIiAiID0gJHZhbCIKKytnZGJfdGVzdCAi cHJpbnQveCBwYXJ0X2RlZl9hXFs4XF0iICIgPSA8b3B0aW1pemVkIG91dD4iCisgCisgIyBOb24t Ynl0ZS1hbGlnbmVkIGZpZWxkcywgcGllY2VkIHRvZ2V0aGVyIGZyb20gRFdBUkYgc3RhY2sgdmFs dWVzLgorLWdkYl90ZXN0ICJwcmludCBkZWZfdCIgIiA9IFxce2EgPSAwLCBiID0gLTFcXH0iCisr Z2RiX3Rlc3QgInByaW50IGRlZl90IiAiID0gXFx7YSA9IC0xODQsIGIgPSAxNzUyMjg2XFx9Igor IAorICMgU2ltcGxlIHZhcmlhYmxlIHdpdGhvdXQgbG9jYXRpb24uCisgZ2RiX3Rlc3QgInByaW50 IHVuZGVmX2ludCIgIiA9IDxvcHRpbWl6ZWQgb3V0PiIKCmRpZmYgLS1naXQgYS9nZGItcmhiejE0 MjAzMDQtczM5MHgtMTNvZjM1LnBhdGNoIGIvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTEzb2YzNS5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYmRlOTBhCi0tLSAvZGV2 L251bGwKKysrIGIvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTEzb2YzNS5wYXRjaApAQCAtMCwwICsx LDcyIEBACitjb21taXQgODA1YWNjYTA0MmFmZWQ4ZTg0MzFjOTJhYjAzMTE2N2IwMzQ3NTY3Ngor QXV0aG9yOiBBbmRyZWFzIEFybmV6IDxhcm5lekBsaW51eC52bmV0LmlibS5jb20+CitEYXRlOiAg IFR1ZSBKdW4gMTMgMTU6MjA6MjYgMjAxNyArMDIwMAorCisgICAgZ2RiL3Rlc3RzdWl0ZTogQWRk ICJnZXRfZW5kaWFubmVzcyIgY29udmVuaWVuY2UgcHJvYworICAgIAorICAgIFRoZSB0ZXN0IHN1 aXRlIGNvbnRhaW5zIG11bHRpcGxlIGluc3RhbmNlcyBvZiBkZXRlcm1pbmluZyB0aGUgdGFyZ2V0 J3MKKyAgICBlbmRpYW5uZXNzIHdpdGggR0RCJ3MgInNob3cgZW5kaWFuIiBjb21tYW5kLiAgVGhp cyBwYXRjaCByZXBsYWNlcyB0aGVzZSBieQorICAgIGFuIGludm9jYXRpb24gb2YgYSBuZXcgY29u dmVuaWVuY2UgcHJvYyAnZ2V0X2VuZGlhbm5lc3MnLgorICAgIAorICAgIGdkYi90ZXN0c3VpdGUv Q2hhbmdlTG9nOgorICAgIAorICAgICAgICAgICAgKiBsaWIvZ2RiLmV4cCAoZ2V0X2VuZGlhbm5l c3MpOiBOZXcgcHJvYy4KKyAgICAgICAgICAgICogZ2RiLmFyY2gvYWFyY2g2NC1mcC5leHA6IFVz ZSBpdC4KKyAgICAgICAgICAgICogZ2RiLmFyY2gvYWx0aXZlYy1yZWdzLmV4cDogTGlrZXdpc2Uu CisgICAgICAgICAgICAqIGdkYi5hcmNoL2U1MDAtcmVncy5leHA6IExpa2V3aXNlLgorICAgICAg ICAgICAgKiBnZGIuYXJjaC92c3gtcmVncy5leHA6IExpa2V3aXNlLgorICAgICAgICAgICAgKiBn ZGIuYmFzZS9kdW1wLmV4cDogTGlrZXdpc2UuCisgICAgICAgICAgICAqIGdkYi5iYXNlL2Z1bmNh cmdzLmV4cDogTGlrZXdpc2UuCisgICAgICAgICAgICAqIGdkYi5iYXNlL2dudV92ZWN0b3IuZXhw OiBMaWtld2lzZS4KKyAgICAgICAgICAgICogZ2RiLmR3YXJmMi9mb3JtZGF0YTE2LmV4cDogTGlr ZXdpc2UuCisgICAgICAgICAgICAqIGdkYi5kd2FyZjIvaW1wbHB0cnBpZWNlLmV4cDogTGlrZXdp c2UuCisgICAgICAgICAgICAqIGdkYi5kd2FyZjIvbm9udmFyLWFjY2Vzcy5leHA6IExpa2V3aXNl LgorICAgICAgICAgICAgKiBnZGIucHl0aG9uL3B5LWluZmVyaW9yLmV4cDogTGlrZXdpc2UuCisg ICAgICAgICAgICAqIGdkYi50cmFjZS91bmF2YWlsYWJsZS1kd2FyZi1waWVjZS5leHA6IExpa2V3 aXNlLgorCisjIyMgYS9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZworIyMjIGIvZ2RiL3Rlc3RzdWl0 ZS9DaGFuZ2VMb2cKKyMjIC0xLDUgKzEsMjEgQEAKKyAyMDE3LTA2LTEzICBBbmRyZWFzIEFybmV6 ICA8YXJuZXpAbGludXgudm5ldC5pYm0uY29tPgorIAorKwkqIGxpYi9nZGIuZXhwIChnZXRfZW5k aWFubmVzcyk6IE5ldyBwcm9jLgorKwkqIGdkYi5hcmNoL2FhcmNoNjQtZnAuZXhwOiBVc2UgaXQu CisrCSogZ2RiLmFyY2gvYWx0aXZlYy1yZWdzLmV4cDogTGlrZXdpc2UuCisrCSogZ2RiLmFyY2gv ZTUwMC1yZWdzLmV4cDogTGlrZXdpc2UuCisrCSogZ2RiLmFyY2gvdnN4LXJlZ3MuZXhwOiBMaWtl d2lzZS4KKysJKiBnZGIuYmFzZS9kdW1wLmV4cDogTGlrZXdpc2UuCisrCSogZ2RiLmJhc2UvZnVu Y2FyZ3MuZXhwOiBMaWtld2lzZS4KKysJKiBnZGIuYmFzZS9nbnVfdmVjdG9yLmV4cDogTGlrZXdp c2UuCisrCSogZ2RiLmR3YXJmMi9mb3JtZGF0YTE2LmV4cDogTGlrZXdpc2UuCisrCSogZ2RiLmR3 YXJmMi9pbXBscHRycGllY2UuZXhwOiBMaWtld2lzZS4KKysJKiBnZGIuZHdhcmYyL25vbnZhci1h Y2Nlc3MuZXhwOiBMaWtld2lzZS4KKysJKiBnZGIucHl0aG9uL3B5LWluZmVyaW9yLmV4cDogTGlr ZXdpc2UuCisrCSogZ2RiLnRyYWNlL3VuYXZhaWxhYmxlLWR3YXJmLXBpZWNlLmV4cDogTGlrZXdp c2UuCisrCisrMjAxNy0wNi0xMyAgQW5kcmVhcyBBcm5leiAgPGFybmV6QGxpbnV4LnZuZXQuaWJt LmNvbT4KKysKKyAJUFIgZ2RiLzIxMjI2CisgCSogZ2RiLmR3YXJmMi9ub252YXItYWNjZXNzLmV4 cDogQWRkIGNoZWNrcyBmb3IgdmVyaWZ5aW5nIHRoYXQKKyAJc3RhY2sgdmFsdWUgcGllY2VzIGFy ZSB0YWtlbiBmcm9tIHRoZSBMU0IgZW5kLgorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4 cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAorQEAgLTU2NzEsNiArNTY3MSwxOSBA QCBwcm9jIHNldF9yZW1vdGV0aW1lb3V0IHsgdGltZW91dCB9IHsKKyAgICAgfQorIH0KKyAKKysj IEdldCB0aGUgdGFyZ2V0J3MgY3VycmVudCBlbmRpYW5uZXNzIGFuZCByZXR1cm4gaXQuCisrcHJv YyBnZXRfZW5kaWFubmVzcyB7IH0geworKyAgICBnbG9iYWwgZ2RiX3Byb21wdAorKworKyAgICBn ZGJfdGVzdF9tdWx0aXBsZSAic2hvdyBlbmRpYW4iICJkZXRlcm1pbmUgZW5kaWFubmVzcyIgewor KwktcmUgIi4qIChsaXR0bGV8YmlnKSBlbmRpYW4uKlxyXG4kZ2RiX3Byb21wdCAkIiB7CisrCSAg ICAjIFBhc3Mgc2lsZW50bHkuCisrCSAgICByZXR1cm4gJGV4cGVjdF9vdXQoMSxzdHJpbmcpCisr CX0KKysgICAgfQorKyAgICByZXR1cm4gImxpdHRsZSIKKyt9CisrCisgIyBST09UIGFuZCBGVUxM IGFyZSBmaWxlIG5hbWVzLiAgUmV0dXJucyB0aGUgcmVsYXRpdmUgcGF0aCBmcm9tIFJPT1QKKyAj IHRvIEZVTEwuICBOb3RlIHRoYXQgRlVMTCBtdXN0IGJlIGluIGEgc3ViZGlyZWN0b3J5IG9mIFJP T1QuCisgIyBGb3IgZXhhbXBsZSwgZ2l2ZW4gUk9PVCA9IC91c3IvYmluIGFuZCBGVUxMID0gL3Vz ci9iaW4vbHMsIHRoaXMKCmRpZmYgLS1naXQgYS9nZGItcmhiejE0MjAzMDQtczM5MHgtMTRvZjM1 LnBhdGNoIGIvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTE0b2YzNS5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZWNjMzlkCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXJo YnoxNDIwMzA0LXMzOTB4LTE0b2YzNS5wYXRjaApAQCAtMCwwICsxLDcwIEBACitjb21taXQgYWY1 NDdhOTYxNDk2OWUxZDFlYTZmY2VjNmI1OWNkNzdhNjA2MzgwZgorQXV0aG9yOiBBbmRyZWFzIEFy bmV6IDxhcm5lekBsaW51eC52bmV0LmlibS5jb20+CitEYXRlOiAgIFR1ZSBKdW4gMTMgMTU6MjA6 MjcgMjAxNyArMDIwMAorCisgICAgcmVhZC93cml0ZV9waWVjZWRfdmFsdWU6IFJlc3BlY3QgdmFs dWUgcGFyZW50J3Mgb2Zmc2V0CisgICAgCisgICAgSW4gdGhlIGNhc2Ugb2YgdGFyZ2V0aW5nIGEg Yml0LWZpZWxkLCByZWFkX3BpZWNlZF92YWx1ZSBhbmQKKyAgICB3cml0ZV9waWVjZWRfdmFsdWUg Y2FsY3VsYXRlIHRoZSBudW1iZXIgb2YgYml0cyBwcmVjZWRpbmcgdGhlIGJpdC1maWVsZAorICAg IHdpdGhvdXQgY29uc2lkZXJpbmcgdGhlIHJlbGF0aXZlIG9mZnNldCBvZiB0aGUgdmFsdWUncyBw YXJlbnQuICBUaGlzIGlzCisgICAgcmVsZXZhbnQgZm9yIGEgc3RydWN0dXJlIHZhcmlhYmxlIGxp a2UgdGhpczoKKyAgICAKKyAgICAgIHN0cnVjdCBzIHsKKyAgICAgICAgICB1aW50NjRfdCBmb287 CisgICAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAgICAgdWludDMyX3QgYmFyOworICAgICAg ICAgICAgICB1aW50MzJfdCBiZiA6IDEwOyAgLyogPC0tIHRhcmdldCBiaXQtZmllbGQgKi8KKyAg ICAgICAgICB9IGJhejsKKyAgICAgIH0gczsKKyAgICAKKyAgICBJbiB0aGlzIHNjZW5hcmlvLCBp ZiAndmFsJyBpcyBhIEdEQiB2YWx1ZSByZXByZXNlbnRpbmcgcy5iYXouYmYsCisgICAgdmFsLT5w YXJlbnQgcmVwcmVzZW50cyB0aGUgd2hvbGUgcy5iYXogc3RydWN0dXJlLCBhbmQgdGhlIGZvbGxv d2luZyBob2xkczoKKyAgICAKKyAgICAgIC0gdmFsdWVfb2Zmc2V0ICh2YWwpID09IHNpemVvZiBz LmJhei5iYXIgPT0gNAorICAgICAgLSB2YWx1ZV9vZmZzZXQgKHZhbC0+cGFyZW50KSA9PSBzaXpl b2Ygcy5mb28gPT0gOAorICAgIAorICAgIFRoZSBjdXJyZW50IGxvZ2ljIHdvdWxkIG9ubHkgdXNl IHZhbHVlX29mZnNldCh2YWwpLCByZXN1bHRpbmcgaW4gdGhlIHdyb25nCisgICAgb2Zmc2V0IGlu dG8gdGhlIHRhcmdldCB2YWx1ZS4gIFRoaXMgaXMgZml4ZWQuCisgICAgCisgICAgZ2RiL0NoYW5n ZUxvZzoKKyAgICAKKyAgICAgICAgICAgICogZHdhcmYybG9jLmMgKHJlYWRfcGllY2VkX3ZhbHVl KTogUmVzcGVjdCBwYXJlbnQgdmFsdWUncyBvZmZzZXQKKyAgICAgICAgICAgIHdoZW4gdGFyZ2V0 aW5nIGEgYml0LWZpZWxkLgorICAgICAgICAgICAgKHdyaXRlX3BpZWNlZF92YWx1ZSk6IExpa2V3 aXNlLgorCisjIyMgYS9nZGIvQ2hhbmdlTG9nCisjIyMgYi9nZGIvQ2hhbmdlTG9nCisjIyAtMSw1 ICsxLDExIEBACisgMjAxNy0wNi0xMyAgQW5kcmVhcyBBcm5leiAgPGFybmV6QGxpbnV4LnZuZXQu aWJtLmNvbT4KKyAKKysJKiBkd2FyZjJsb2MuYyAocmVhZF9waWVjZWRfdmFsdWUpOiBSZXNwZWN0 IHBhcmVudCB2YWx1ZSdzIG9mZnNldAorKwl3aGVuIHRhcmdldGluZyBhIGJpdC1maWVsZC4KKysJ KHdyaXRlX3BpZWNlZF92YWx1ZSk6IExpa2V3aXNlLgorKworKzIwMTctMDYtMTMgIEFuZHJlYXMg QXJuZXogIDxhcm5lekBsaW51eC52bmV0LmlibS5jb20+CisrCisgCSogZHdhcmYybG9jLmMgKHN0 cnVjdCBwaWVjZV9jbG9zdXJlKSA8YWRkcl9zaXplPjogUmVtb3ZlIGZpZWxkLgorIAkoYWxsb2Nh dGVfcGllY2VfY2xvc3VyZSk6IERyb3AgYWRkcl9zaXplIHBhcmFtZXRlci4KKyAJKGR3YXJmMl9l dmFsdWF0ZV9sb2NfZGVzY19mdWxsKTogQWRqdXN0IGNhbGwgdG8KKy0tLSBhL2dkYi9kd2FyZjJs b2MuYworKysrIGIvZ2RiL2R3YXJmMmxvYy5jCitAQCAtMTc3Niw3ICsxNzc2LDggQEAgcmVhZF9w aWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdikKKyAgIGJpdHNfdG9fc2tpcCA9IDggKiB2YWx1 ZV9vZmZzZXQgKHYpOworICAgaWYgKHZhbHVlX2JpdHNpemUgKHYpKQorICAgICB7CistICAgICAg Yml0c190b19za2lwICs9IHZhbHVlX2JpdHBvcyAodik7CisrICAgICAgYml0c190b19za2lwICs9 ICg4ICogdmFsdWVfb2Zmc2V0ICh2YWx1ZV9wYXJlbnQgKHYpKQorKwkJICAgICAgICsgdmFsdWVf Yml0cG9zICh2KSk7CisgICAgICAgdHlwZV9sZW4gPSB2YWx1ZV9iaXRzaXplICh2KTsKKyAgICAg fQorICAgZWxzZQorQEAgLTE5NDYsNyArMTk0Nyw4IEBAIHdyaXRlX3BpZWNlZF92YWx1ZSAoc3Ry dWN0IHZhbHVlICp0bywgc3RydWN0IHZhbHVlICpmcm9tKQorICAgYml0c190b19za2lwID0gOCAq IHZhbHVlX29mZnNldCAodG8pOworICAgaWYgKHZhbHVlX2JpdHNpemUgKHRvKSkKKyAgICAgewor LSAgICAgIGJpdHNfdG9fc2tpcCArPSB2YWx1ZV9iaXRwb3MgKHRvKTsKKysgICAgICBiaXRzX3Rv X3NraXAgKz0gKDggKiB2YWx1ZV9vZmZzZXQgKHZhbHVlX3BhcmVudCAodG8pKQorKwkJICAgICAg ICsgdmFsdWVfYml0cG9zICh0bykpOworICAgICAgIHR5cGVfbGVuID0gdmFsdWVfYml0c2l6ZSAo dG8pOworICAgICB9CisgICBlbHNlCgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4 LTE1b2YzNS5wYXRjaCBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0xNW9mMzUucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWZhNGEyYgotLS0gL2Rldi9udWxsCisrKyBi L2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0xNW9mMzUucGF0Y2gKQEAgLTAsMCArMSw0MCBAQAorY29t bWl0IGNkYWFjMzIwZmQ2MmJmZjc1NTYyYWFhM2U0NjY0OTRkYzcyZGQxNzUKK0F1dGhvcjogQW5k cmVhcyBBcm5leiA8YXJuZXpAbGludXgudm5ldC5pYm0uY29tPgorRGF0ZTogICBUdWUgSnVuIDEz IDE1OjIwOjI3IDIwMTcgKzAyMDAKKworICAgIHdyaXRlX3BpZWNlZF92YWx1ZTogRml4IGNvcHkv cGFzdGUgZXJyb3IgaW4gc2l6ZSBjYWxjdWxhdGlvbgorICAgIAorICAgIEluIHdyaXRlX3BpZWNl ZF92YWx1ZSwgdGhlIG51bWJlciBvZiBieXRlcyBjb250YWluaW5nIGEgcG9ydGlvbiBvZiB0aGUK KyAgICBiaXQtZmllbGQgaW4gYSBnaXZlbiBwaWVjZSBpcyBjYWxjdWxhdGVkIHdpdGggdGhlIHdy b25nIHN0YXJ0aW5nIG9mZnNldDsKKyAgICB0aHVzIHRoZSByZXN1bHQgbWF5IGJlIG9mZiBieSBv bmUuICBUaGlzIGJ1ZyB3YXMgcHJvYmFibHkgaW50cm9kdWNlZCB3aGVuCisgICAgY29weWluZyB0 aGlzIGxvZ2ljIGZyb20gcmVhZF9waWVjZWRfdmFsdWUuICBGaXggaXQuCisgICAgCisgICAgZ2Ri L0NoYW5nZUxvZzoKKyAgICAKKyAgICAgICAgICAgICogZHdhcmYybG9jLmMgKHdyaXRlX3BpZWNl ZF92YWx1ZSk6IEZpeCBjb3B5L3Bhc3RlIGVycm9yIGluIHRoZQorICAgICAgICAgICAgY2FsY3Vs YXRpb24gb2YgdGhpc19zaXplLgorCisjIyMgYS9nZGIvQ2hhbmdlTG9nCisjIyMgYi9nZGIvQ2hh bmdlTG9nCisjIyAtMSw1ICsxLDEwIEBACisgMjAxNy0wNi0xMyAgQW5kcmVhcyBBcm5leiAgPGFy bmV6QGxpbnV4LnZuZXQuaWJtLmNvbT4KKyAKKysJKiBkd2FyZjJsb2MuYyAod3JpdGVfcGllY2Vk X3ZhbHVlKTogRml4IGNvcHkvcGFzdGUgZXJyb3IgaW4gdGhlCisrCWNhbGN1bGF0aW9uIG9mIHRo aXNfc2l6ZS4KKysKKysyMDE3LTA2LTEzICBBbmRyZWFzIEFybmV6ICA8YXJuZXpAbGludXgudm5l dC5pYm0uY29tPgorKworIAkqIGR3YXJmMmxvYy5jIChyZWFkX3BpZWNlZF92YWx1ZSk6IFJlc3Bl Y3QgcGFyZW50IHZhbHVlJ3Mgb2Zmc2V0CisgCXdoZW4gdGFyZ2V0aW5nIGEgYml0LWZpZWxkLgor IAkod3JpdGVfcGllY2VkX3ZhbHVlKTogTGlrZXdpc2UuCistLS0gYS9nZGIvZHdhcmYybG9jLmMK KysrKyBiL2dkYi9kd2FyZjJsb2MuYworQEAgLTE5ODMsNyArMTk4Myw3IEBAIHdyaXRlX3BpZWNl ZF92YWx1ZSAoc3RydWN0IHZhbHVlICp0bywgc3RydWN0IHZhbHVlICpmcm9tKQorICAgICAgIGlm ICh0aGlzX3NpemVfYml0cyA+IHR5cGVfbGVuIC0gb2Zmc2V0KQorIAl0aGlzX3NpemVfYml0cyA9 IHR5cGVfbGVuIC0gb2Zmc2V0OworIAorLSAgICAgIHRoaXNfc2l6ZSA9ICh0aGlzX3NpemVfYml0 cyArIHNvdXJjZV9vZmZzZXRfYml0cyAlIDggKyA3KSAvIDg7CisrICAgICAgdGhpc19zaXplID0g KHRoaXNfc2l6ZV9iaXRzICsgZGVzdF9vZmZzZXRfYml0cyAlIDggKyA3KSAvIDg7CisgICAgICAg c291cmNlX29mZnNldCA9IHNvdXJjZV9vZmZzZXRfYml0cyAvIDg7CisgICAgICAgZGVzdF9vZmZz ZXQgPSBkZXN0X29mZnNldF9iaXRzIC8gODsKKyAgICAgICBpZiAoZGVzdF9vZmZzZXRfYml0cyAl IDggPT0gMCAmJiBzb3VyY2Vfb2Zmc2V0X2JpdHMgJSA4ID09IDApCgpkaWZmIC0tZ2l0IGEvZ2Ri LXJoYnoxNDIwMzA0LXMzOTB4LTE2b2YzNS5wYXRjaCBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0x Nm9mMzUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzgyOWQ1MQot LS0gL2Rldi9udWxsCisrKyBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0xNm9mMzUucGF0Y2gKQEAg LTAsMCArMSw0MiBAQAorY29tbWl0IGYxY2M5ODc0MjBkOWQyNDg5ZWI0NTNiZDFjODcxMzk2NjZj YmU3ZmQKK0F1dGhvcjogQW5kcmVhcyBBcm5leiA8YXJuZXpAbGludXgudm5ldC5pYm0uY29tPgor RGF0ZTogICBUdWUgSnVuIDEzIDE1OjIwOjI3IDIwMTcgKzAyMDAKKworICAgIHdyaXRlX3BpZWNl ZF92YWx1ZTogSW5jbHVkZSB0cmFuc2ZlciBzaXplIGluIGJ5dGUtd2lzZSBjaGVjaworICAgIAor ICAgIEluIHdyaXRlX3BpZWNlZF92YWx1ZSwgd2hlbiBjaGVja2luZyB3aGV0aGVyIHRoZSBkYXRh IGNhbiBiZSB0cmFuc2ZlcnJlZAorICAgIGJ5dGUtd2lzZSwgdGhlIGN1cnJlbnQgbG9naWMgdmVy aWZpZXMgdGhlIHNvdXJjZS0gYW5kIGRlc3RpbmF0aW9uIG9mZnNldHMKKyAgICB0byBiZSBieXRl LWFsaWduZWQsIGJ1dCBub3QgdGhlIHRyYW5zZmVyIHNpemUuICBUaGlzIGlzIGZpeGVkLgorICAg IAorICAgIGdkYi9DaGFuZ2VMb2c6CisgICAgCisgICAgICAgICAgICAqIGR3YXJmMmxvYy5jICh3 cml0ZV9waWVjZWRfdmFsdWUpOiBJbmNsdWRlIHRyYW5zZmVyIHNpemUgaW4KKyAgICAgICAgICAg IGJ5dGUtd2lzZSBjaGVjay4KKworIyMjIGEvZ2RiL0NoYW5nZUxvZworIyMjIGIvZ2RiL0NoYW5n ZUxvZworIyMgLTEsNSArMSwxMCBAQAorIDIwMTctMDYtMTMgIEFuZHJlYXMgQXJuZXogIDxhcm5l ekBsaW51eC52bmV0LmlibS5jb20+CisgCisrCSogZHdhcmYybG9jLmMgKHdyaXRlX3BpZWNlZF92 YWx1ZSk6IEluY2x1ZGUgdHJhbnNmZXIgc2l6ZSBpbgorKwlieXRlLXdpc2UgY2hlY2suCisrCisr MjAxNy0wNi0xMyAgQW5kcmVhcyBBcm5leiAgPGFybmV6QGxpbnV4LnZuZXQuaWJtLmNvbT4KKysK KyAJKiBkd2FyZjJsb2MuYyAod3JpdGVfcGllY2VkX3ZhbHVlKTogRml4IGNvcHkvcGFzdGUgZXJy b3IgaW4gdGhlCisgCWNhbGN1bGF0aW9uIG9mIHRoaXNfc2l6ZS4KKyAKKy0tLSBhL2dkYi9kd2Fy ZjJsb2MuYworKysrIGIvZ2RiL2R3YXJmMmxvYy5jCitAQCAtMTk4Niw3ICsxOTg2LDEwIEBAIHdy aXRlX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp0bywgc3RydWN0IHZhbHVlICpmcm9tKQor ICAgICAgIHRoaXNfc2l6ZSA9ICh0aGlzX3NpemVfYml0cyArIGRlc3Rfb2Zmc2V0X2JpdHMgJSA4 ICsgNykgLyA4OworICAgICAgIHNvdXJjZV9vZmZzZXQgPSBzb3VyY2Vfb2Zmc2V0X2JpdHMgLyA4 OworICAgICAgIGRlc3Rfb2Zmc2V0ID0gZGVzdF9vZmZzZXRfYml0cyAvIDg7CistICAgICAgaWYg KGRlc3Rfb2Zmc2V0X2JpdHMgJSA4ID09IDAgJiYgc291cmNlX29mZnNldF9iaXRzICUgOCA9PSAw KQorKworKyAgICAgIC8qIENoZWNrIHdoZXRoZXIgdGhlIGRhdGEgY2FuIGJlIHRyYW5zZmVycmVk IGJ5dGUtd2lzZS4gICovCisrICAgICAgaWYgKGRlc3Rfb2Zmc2V0X2JpdHMgJSA4ID09IDAgJiYg c291cmNlX29mZnNldF9iaXRzICUgOCA9PSAwCisrCSAgJiYgdGhpc19zaXplX2JpdHMgJSA4ID09 IDApCisgCXsKKyAJICBzb3VyY2VfYnVmZmVyID0gY29udGVudHMgKyBzb3VyY2Vfb2Zmc2V0Owor IAkgIG5lZWRfYml0d2lzZSA9IDA7CgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4 LTE3b2YzNS5wYXRjaCBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0xN29mMzUucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzM0NTEzMwotLS0gL2Rldi9udWxsCisrKyBi L2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0xN29mMzUucGF0Y2gKQEAgLTAsMCArMSw0MiBAQAorY29t bWl0IDA3YzljYTNiZDhlNmY4M2JjZWM0OWM5MjJiNTI0MjJjNTM4ZjYwZjcKK0F1dGhvcjogQW5k cmVhcyBBcm5leiA8YXJuZXpAbGludXgudm5ldC5pYm0uY29tPgorRGF0ZTogICBUdWUgSnVuIDEz IDE1OjIwOjI4IDIwMTcgKzAyMDAKKworICAgIHdyaXRlX3BpZWNlZF92YWx1ZTogRml4IGJ1ZmZl ciBvZmZzZXQgZm9yIG1lbW9yeSBwaWVjZXMKKyAgICAKKyAgICBJbiB3cml0ZV9waWVjZWRfdmFs dWUsIHdoZW4gdHJhbnNmZXJyaW5nIHRoZSBkYXRhIHRvIHRhcmdldCBtZW1vcnkgdmlhIGEKKyAg ICBidWZmZXIsIHRoZSBiaXQgb2Zmc2V0IHdpdGhpbiB0aGUgdGFyZ2V0IHZhbHVlIGlzIG5vdCBy ZWR1Y2VkIHRvIGl0cworICAgIHN1Yi1ieXRlIGZyYWN0aW9uIGJlZm9yZSB1c2luZyBpdCBhcyBh IGJpdCBvZmZzZXQgaW50byB0aGUgYnVmZmVyLiAgVGhpcworICAgIGlzIGZpeGVkLgorICAgIAor ICAgIGdkYi9DaGFuZ2VMb2c6CisgICAgCisgICAgICAgICAgICAqIGR3YXJmMmxvYy5jICh3cml0 ZV9waWVjZWRfdmFsdWUpOiBJbiBEV0FSRl9WQUxVRV9NRU1PUlksCisgICAgICAgICAgICB0cnVu Y2F0ZSBmdWxsIGJ5dGVzIGZyb20gZGVzdF9vZmZzZXRfYml0cyBiZWZvcmUgdXNpbmcgaXQgYXMg YW4KKyAgICAgICAgICAgIG9mZnNldCBpbnRvIHRoZSBidWZmZXIuCisKKyMjIyBhL2dkYi9DaGFu Z2VMb2cKKyMjIyBiL2dkYi9DaGFuZ2VMb2cKKyMjIC0xLDUgKzEsMTEgQEAKKyAyMDE3LTA2LTEz ICBBbmRyZWFzIEFybmV6ICA8YXJuZXpAbGludXgudm5ldC5pYm0uY29tPgorIAorKwkqIGR3YXJm MmxvYy5jICh3cml0ZV9waWVjZWRfdmFsdWUpOiBJbiBEV0FSRl9WQUxVRV9NRU1PUlksCisrCXRy dW5jYXRlIGZ1bGwgYnl0ZXMgZnJvbSBkZXN0X29mZnNldF9iaXRzIGJlZm9yZSB1c2luZyBpdCBh cyBhbgorKwlvZmZzZXQgaW50byB0aGUgYnVmZmVyLgorKworKzIwMTctMDYtMTMgIEFuZHJlYXMg QXJuZXogIDxhcm5lekBsaW51eC52bmV0LmlibS5jb20+CisrCisgCSogZHdhcmYybG9jLmMgKHdy aXRlX3BpZWNlZF92YWx1ZSk6IEluY2x1ZGUgdHJhbnNmZXIgc2l6ZSBpbgorIAlieXRlLXdpc2Ug Y2hlY2suCisgCistLS0gYS9nZGIvZHdhcmYybG9jLmMKKysrKyBiL2dkYi9kd2FyZjJsb2MuYwor QEAgLTIwNTgsNyArMjA1OCw3IEBAIHdyaXRlX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp0 bywgc3RydWN0IHZhbHVlICpmcm9tKQorIAkgICAgICByZWFkX21lbW9yeSAocC0+di5tZW0uYWRk ciArIGRlc3Rfb2Zmc2V0LCBidWZmZXIuZGF0YSAoKSwgMSk7CisgCSAgICAgIHJlYWRfbWVtb3J5 IChwLT52Lm1lbS5hZGRyICsgZGVzdF9vZmZzZXQgKyB0aGlzX3NpemUgLSAxLAorIAkJCSAgICZi dWZmZXJbdGhpc19zaXplIC0gMV0sIDEpOworLQkgICAgICBjb3B5X2JpdHdpc2UgKGJ1ZmZlci5k YXRhICgpLCBkZXN0X29mZnNldF9iaXRzLAorKwkgICAgICBjb3B5X2JpdHdpc2UgKGJ1ZmZlci5k YXRhICgpLCBkZXN0X29mZnNldF9iaXRzICUgOCwKKyAJCQkgICAgY29udGVudHMsIHNvdXJjZV9v ZmZzZXRfYml0cywKKyAJCQkgICAgdGhpc19zaXplX2JpdHMsCisgCQkJICAgIGJpdHNfYmlnX2Vu ZGlhbik7CgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTE4b2YzNS5wYXRjaCBi L2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0xOG9mMzUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uZTUzNjU5MQotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1yaGJ6MTQyMDMw NC1zMzkweC0xOG9mMzUucGF0Y2gKQEAgLTAsMCArMSwxNjYgQEAKK2NvbW1pdCAzNTliMTliYjI0 ZDA0ODc1MGFhNTM2N2FkNTZhMzMyNjczMDBkMWE4CitBdXRob3I6IEFuZHJlYXMgQXJuZXogPGFy bmV6QGxpbnV4LnZuZXQuaWJtLmNvbT4KK0RhdGU6ICAgVHVlIEp1biAxMyAxNToyMDoyOCAyMDE3 ICswMjAwCisKKyAgICB3cml0ZV9waWVjZWRfdmFsdWU6IFRyYW5zZmVyIGxlYXN0IHNpZ25pZmlj YW50IGJpdHMgaW50byBiaXQtZmllbGQKKyAgICAKKyAgICBPbiBiaWctZW5kaWFuIHRhcmdldHMs IHdoZW4gdGFyZ2V0aW5nIGEgYml0LWZpZWxkLCB3cml0ZV9waWVjZWRfdmFsdWUKKyAgICBjdXJy ZW50bHkgdHJhbnNmZXJzIHRoZSBzb3VyY2UgdmFsdWUncyAqbW9zdCogc2lnbmlmaWNhbnQgYml0 cyB0byB0aGUKKyAgICB0YXJnZXQgdmFsdWUsIGluc3RlYWQgb2YgaXRzIGxlYXN0IHNpZ25pZmlj YW50IGJpdHMuICBUaGlzIGlzIGZpeGVkLgorICAgIAorICAgIEluIHBhcnRpY3VsYXIgdGhlIGZp eCBhZGp1c3RzIHRoZSBpbml0aWFsIHZhbHVlIG9mICdvZmZzZXQnLCB3aGljaCBjYW4gbm93Cisg ICAgcG90ZW50aWFsbHkgYmUgbm9uemVyby4gIFRodXMgdGhlIHZhcmlhYmxlICd0eXBlX2xlbicg aXMgcmVuYW1lZCB0bworICAgICdtYXhfb2Zmc2V0JywgdG8gYXZvaWQgY29uZnVzaW9uLiAgQW5k IGZvciBjb25zaXN0ZW5jeSwgdGhlIGFmZmVjdGVkIGxvZ2ljCisgICAgdGhhdCB3YXMgbWlycm9y ZWQgaW4gcmVhZF9waWVjZWRfdmFsdWUgaXMgY2hhbmdlZCB0aGVyZSBpbiB0aGUgc2FtZSB3YXku CisgICAgCisgICAgZ2RiL0NoYW5nZUxvZzoKKyAgICAKKyAgICAgICAgICAgICogZHdhcmYybG9j LmMgKHdyaXRlX3BpZWNlZF92YWx1ZSk6IFdoZW4gd3JpdGluZyB0byBhIGJpdC1maWVsZCwKKyAg ICAgICAgICAgIHRyYW5zZmVyIHRoZSBzb3VyY2UgdmFsdWUncyBsZWFzdCBzaWduaWZpY2FudCBi aXRzLCBpbnN0ZWFkIG9mIGl0cworICAgICAgICAgICAgbG93ZXN0LWFkZHJlc3NlZCBvbmVzLiAg UmVuYW1lIHR5cGVfbGVuIHRvIG1heF9vZmZzZXQuCisgICAgICAgICAgICAocmVhZF9waWVjZWRf dmFsdWUpOiBNaXJyb3IgYWJvdmUgY2hhbmdlcyB0byB3cml0ZV9waWVjZWRfdmFsdWUgYXMKKyAg ICAgICAgICAgIGFwcGxpY2FibGUuCisKKyMjIyBhL2dkYi9DaGFuZ2VMb2cKKyMjIyBiL2dkYi9D aGFuZ2VMb2cKKyMjIC0xLDUgKzEsMTMgQEAKKyAyMDE3LTA2LTEzICBBbmRyZWFzIEFybmV6ICA8 YXJuZXpAbGludXgudm5ldC5pYm0uY29tPgorIAorKwkqIGR3YXJmMmxvYy5jICh3cml0ZV9waWVj ZWRfdmFsdWUpOiBXaGVuIHdyaXRpbmcgdG8gYSBiaXQtZmllbGQsCisrCXRyYW5zZmVyIHRoZSBz b3VyY2UgdmFsdWUncyBsZWFzdCBzaWduaWZpY2FudCBiaXRzLCBpbnN0ZWFkIG9mIGl0cworKwls b3dlc3QtYWRkcmVzc2VkIG9uZXMuICBSZW5hbWUgdHlwZV9sZW4gdG8gbWF4X29mZnNldC4KKysJ KHJlYWRfcGllY2VkX3ZhbHVlKTogTWlycm9yIGFib3ZlIGNoYW5nZXMgdG8gd3JpdGVfcGllY2Vk X3ZhbHVlIGFzCisrCWFwcGxpY2FibGUuCisrCisrMjAxNy0wNi0xMyAgQW5kcmVhcyBBcm5leiAg PGFybmV6QGxpbnV4LnZuZXQuaWJtLmNvbT4KKysKKyAJKiBkd2FyZjJsb2MuYyAod3JpdGVfcGll Y2VkX3ZhbHVlKTogSW4gRFdBUkZfVkFMVUVfTUVNT1JZLAorIAl0cnVuY2F0ZSBmdWxsIGJ5dGVz IGZyb20gZGVzdF9vZmZzZXRfYml0cyBiZWZvcmUgdXNpbmcgaXQgYXMgYW4KKyAJb2Zmc2V0IGlu dG8gdGhlIGJ1ZmZlci4KKy0tLSBhL2dkYi9kd2FyZjJsb2MuYworKysrIGIvZ2RiL2R3YXJmMmxv Yy5jCitAQCAtMTc1NiwxMiArMTc1NiwxMSBAQCBzdGF0aWMgdm9pZAorIHJlYWRfcGllY2VkX3Zh bHVlIChzdHJ1Y3QgdmFsdWUgKnYpCisgeworICAgaW50IGk7CistICBsb25nIG9mZnNldCA9IDA7 CisrICBMT05HRVNUIG9mZnNldCA9IDAsIG1heF9vZmZzZXQ7CisgICBVTE9OR0VTVCBiaXRzX3Rv X3NraXA7CisgICBnZGJfYnl0ZSAqY29udGVudHM7CisgICBzdHJ1Y3QgcGllY2VfY2xvc3VyZSAq YworICAgICA9IChzdHJ1Y3QgcGllY2VfY2xvc3VyZSAqKSB2YWx1ZV9jb21wdXRlZF9jbG9zdXJl ICh2KTsKKy0gIHNpemVfdCB0eXBlX2xlbjsKKyAgIHNpemVfdCBidWZmZXJfc2l6ZSA9IDA7Cisg ICBzdGQ6OnZlY3RvcjxnZGJfYnl0ZT4gYnVmZmVyOworICAgaW50IGJpdHNfYmlnX2VuZGlhbgor QEAgLTE3NzgsMTIgKzE3NzcsMTIgQEAgcmVhZF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAq dikKKyAgICAgeworICAgICAgIGJpdHNfdG9fc2tpcCArPSAoOCAqIHZhbHVlX29mZnNldCAodmFs dWVfcGFyZW50ICh2KSkKKyAJCSAgICAgICArIHZhbHVlX2JpdHBvcyAodikpOworLSAgICAgIHR5 cGVfbGVuID0gdmFsdWVfYml0c2l6ZSAodik7CisrICAgICAgbWF4X29mZnNldCA9IHZhbHVlX2Jp dHNpemUgKHYpOworICAgICB9CisgICBlbHNlCistICAgIHR5cGVfbGVuID0gOCAqIFRZUEVfTEVO R1RIICh2YWx1ZV90eXBlICh2KSk7CisrICAgIG1heF9vZmZzZXQgPSA4ICogVFlQRV9MRU5HVEgg KHZhbHVlX3R5cGUgKHYpKTsKKyAKKy0gIGZvciAoaSA9IDA7IGkgPCBjLT5uX3BpZWNlcyAmJiBv ZmZzZXQgPCB0eXBlX2xlbjsgaSsrKQorKyAgZm9yIChpID0gMDsgaSA8IGMtPm5fcGllY2VzICYm IG9mZnNldCA8IG1heF9vZmZzZXQ7IGkrKykKKyAgICAgeworICAgICAgIHN0cnVjdCBkd2FyZl9l eHByX3BpZWNlICpwID0gJmMtPnBpZWNlc1tpXTsKKyAgICAgICBzaXplX3QgdGhpc19zaXplLCB0 aGlzX3NpemVfYml0czsKK0BAIC0xNzk4LDIwICsxNzk3LDEzIEBAIHJlYWRfcGllY2VkX3ZhbHVl IChzdHJ1Y3QgdmFsdWUgKnYpCisgCSAgYml0c190b19za2lwIC09IHRoaXNfc2l6ZV9iaXRzOwor IAkgIGNvbnRpbnVlOworIAl9CistICAgICAgaWYgKGJpdHNfdG9fc2tpcCA+IDApCistCXsKKy0J ICBkZXN0X29mZnNldF9iaXRzID0gMDsKKy0JICBzb3VyY2Vfb2Zmc2V0X2JpdHMgPSBiaXRzX3Rv X3NraXA7CistCSAgdGhpc19zaXplX2JpdHMgLT0gYml0c190b19za2lwOworLQkgIGJpdHNfdG9f c2tpcCA9IDA7CistCX0KKy0gICAgICBlbHNlCistCXsKKy0JICBkZXN0X29mZnNldF9iaXRzID0g b2Zmc2V0OworLQkgIHNvdXJjZV9vZmZzZXRfYml0cyA9IDA7CistCX0KKy0gICAgICBpZiAodGhp c19zaXplX2JpdHMgPiB0eXBlX2xlbiAtIG9mZnNldCkKKy0JdGhpc19zaXplX2JpdHMgPSB0eXBl X2xlbiAtIG9mZnNldDsKKysgICAgICBzb3VyY2Vfb2Zmc2V0X2JpdHMgPSBiaXRzX3RvX3NraXA7 CisrICAgICAgdGhpc19zaXplX2JpdHMgLT0gYml0c190b19za2lwOworKyAgICAgIGJpdHNfdG9f c2tpcCA9IDA7CisrICAgICAgZGVzdF9vZmZzZXRfYml0cyA9IG9mZnNldDsKKysKKysgICAgICBp ZiAodGhpc19zaXplX2JpdHMgPiBtYXhfb2Zmc2V0IC0gb2Zmc2V0KQorKwl0aGlzX3NpemVfYml0 cyA9IG1heF9vZmZzZXQgLSBvZmZzZXQ7CisgCisgICAgICAgdGhpc19zaXplID0gKHRoaXNfc2l6 ZV9iaXRzICsgc291cmNlX29mZnNldF9iaXRzICUgOCArIDcpIC8gODsKKyAgICAgICBzb3VyY2Vf b2Zmc2V0ID0gc291cmNlX29mZnNldF9iaXRzIC8gODsKK0BAIC0xOTMyLDEyICsxOTI0LDExIEBA IHN0YXRpYyB2b2lkCisgd3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBzdHJ1 Y3QgdmFsdWUgKmZyb20pCisgeworICAgaW50IGk7CistICBsb25nIG9mZnNldCA9IDA7CisgICBV TE9OR0VTVCBiaXRzX3RvX3NraXA7CisrICBMT05HRVNUIG9mZnNldCA9IDAsIG1heF9vZmZzZXQ7 CisgICBjb25zdCBnZGJfYnl0ZSAqY29udGVudHM7CisgICBzdHJ1Y3QgcGllY2VfY2xvc3VyZSAq YworICAgICA9IChzdHJ1Y3QgcGllY2VfY2xvc3VyZSAqKSB2YWx1ZV9jb21wdXRlZF9jbG9zdXJl ICh0byk7CistICBzaXplX3QgdHlwZV9sZW47CisgICBzaXplX3QgYnVmZmVyX3NpemUgPSAwOwor ICAgc3RkOjp2ZWN0b3I8Z2RiX2J5dGU+IGJ1ZmZlcjsKKyAgIGludCBiaXRzX2JpZ19lbmRpYW4K K0BAIC0xOTQ5LDEyICsxOTQwLDIwIEBAIHdyaXRlX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVl ICp0bywgc3RydWN0IHZhbHVlICpmcm9tKQorICAgICB7CisgICAgICAgYml0c190b19za2lwICs9 ICg4ICogdmFsdWVfb2Zmc2V0ICh2YWx1ZV9wYXJlbnQgKHRvKSkKKyAJCSAgICAgICArIHZhbHVl X2JpdHBvcyAodG8pKTsKKy0gICAgICB0eXBlX2xlbiA9IHZhbHVlX2JpdHNpemUgKHRvKTsKKy0g ICAgfQorKyAgICAgIC8qIFVzZSB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgYml0cyBvZiBGUk9NLiAg Ki8KKysgICAgICBpZiAoZ2RiYXJjaF9ieXRlX29yZGVyIChnZXRfdHlwZV9hcmNoICh2YWx1ZV90 eXBlIChmcm9tKSkpCisrCSAgPT0gQkZEX0VORElBTl9CSUcpCisrCXsKKysJICBtYXhfb2Zmc2V0 ID0gOCAqIFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlIChmcm9tKSk7CisrCSAgb2Zmc2V0ID0gbWF4 X29mZnNldCAtIHZhbHVlX2JpdHNpemUgKHRvKTsKKysJfQorKyAgICAgIGVsc2UKKysJbWF4X29m ZnNldCA9IHZhbHVlX2JpdHNpemUgKHRvKTsKKysgICB9CisgICBlbHNlCistICAgIHR5cGVfbGVu ID0gOCAqIFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlICh0bykpOworKyAgICBtYXhfb2Zmc2V0ID0g OCAqIFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlICh0bykpOworIAorLSAgZm9yIChpID0gMDsgaSA8 IGMtPm5fcGllY2VzICYmIG9mZnNldCA8IHR5cGVfbGVuOyBpKyspCisrICBmb3IgKGkgPSAwOyBp IDwgYy0+bl9waWVjZXMgJiYgb2Zmc2V0IDwgbWF4X29mZnNldDsgaSsrKQorICAgICB7CisgICAg ICAgc3RydWN0IGR3YXJmX2V4cHJfcGllY2UgKnAgPSAmYy0+cGllY2VzW2ldOworICAgICAgIHNp emVfdCB0aGlzX3NpemVfYml0cywgdGhpc19zaXplOworQEAgLTE5NjgsMjAgKzE5NjcsMTMgQEAg d3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBzdHJ1Y3QgdmFsdWUgKmZyb20p CisgCSAgYml0c190b19za2lwIC09IHRoaXNfc2l6ZV9iaXRzOworIAkgIGNvbnRpbnVlOworIAl9 CistICAgICAgaWYgKGJpdHNfdG9fc2tpcCA+IDApCistCXsKKy0JICBkZXN0X29mZnNldF9iaXRz ID0gYml0c190b19za2lwOworLQkgIHNvdXJjZV9vZmZzZXRfYml0cyA9IDA7CistCSAgdGhpc19z aXplX2JpdHMgLT0gYml0c190b19za2lwOworLQkgIGJpdHNfdG9fc2tpcCA9IDA7CistCX0KKy0g ICAgICBlbHNlCistCXsKKy0JICBkZXN0X29mZnNldF9iaXRzID0gMDsKKy0JICBzb3VyY2Vfb2Zm c2V0X2JpdHMgPSBvZmZzZXQ7CistCX0KKy0gICAgICBpZiAodGhpc19zaXplX2JpdHMgPiB0eXBl X2xlbiAtIG9mZnNldCkKKy0JdGhpc19zaXplX2JpdHMgPSB0eXBlX2xlbiAtIG9mZnNldDsKKysg ICAgICBkZXN0X29mZnNldF9iaXRzID0gYml0c190b19za2lwOworKyAgICAgIHRoaXNfc2l6ZV9i aXRzIC09IGJpdHNfdG9fc2tpcDsKKysgICAgICBiaXRzX3RvX3NraXAgPSAwOworKyAgICAgIHNv dXJjZV9vZmZzZXRfYml0cyA9IG9mZnNldDsKKysKKysgICAgICBpZiAodGhpc19zaXplX2JpdHMg PiBtYXhfb2Zmc2V0IC0gb2Zmc2V0KQorKwl0aGlzX3NpemVfYml0cyA9IG1heF9vZmZzZXQgLSBv ZmZzZXQ7CisgCisgICAgICAgdGhpc19zaXplID0gKHRoaXNfc2l6ZV9iaXRzICsgZGVzdF9vZmZz ZXRfYml0cyAlIDggKyA3KSAvIDg7CisgICAgICAgc291cmNlX29mZnNldCA9IHNvdXJjZV9vZmZz ZXRfYml0cyAvIDg7CgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTE5b2YzNS5w YXRjaCBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0xOW9mMzUucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uOWI1YjE5MAotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1yaGJ6 MTQyMDMwNC1zMzkweC0xOW9mMzUucGF0Y2gKQEAgLTAsMCArMSwxNDIgQEAKK2NvbW1pdCAzYmYz MTAxMTA3MjJiMDNkOWZmOWM0ZjM0ZjU5MjBhOWJlMjg3OGQwCitBdXRob3I6IEFuZHJlYXMgQXJu ZXogPGFybmV6QGxpbnV4LnZuZXQuaWJtLmNvbT4KK0RhdGU6ICAgVHVlIEp1biAxMyAxNToyMDoy OSAyMDE3ICswMjAwCisKKyAgICBBZGQgRFdBUkYgcGllY2UgdGVzdCBjYXNlcyBmb3IgYml0LWZp ZWxkIGFjY2VzcworICAgIAorICAgIFRoaXMgdmVyaWZpZXMgc29tZSBvZiB0aGUgcHJldmlvdXMg Zml4ZXMgdG8gdGhlIGxvZ2ljIGluCisgICAgd3JpdGVfcGllY2VkX3ZhbHVlIHdoZW4gYWNjZXNz aW5nIGJpdC1maWVsZHMuCisgICAgCisgICAgZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6CisgICAg CisgICAgICAgICAgICAqIGdkYi5kd2FyZjIvdmFyLWFjY2Vzcy5leHA6IEFkZCB0ZXN0cyBmb3Ig YWNjZXNzaW5nIGJpdC1maWVsZHMKKyAgICAgICAgICAgIGxvY2F0ZWQgaW4gb25lIG9yIG1vcmUg RFdBUkYgcGllY2VzLgorCisjIyMgYS9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZworIyMjIGIvZ2Ri L3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKKyMjIC0xLDUgKzEsMTAgQEAKKyAyMDE3LTA2LTEzICBBbmRy ZWFzIEFybmV6ICA8YXJuZXpAbGludXgudm5ldC5pYm0uY29tPgorIAorKwkqIGdkYi5kd2FyZjIv dmFyLWFjY2Vzcy5leHA6IEFkZCB0ZXN0cyBmb3IgYWNjZXNzaW5nIGJpdC1maWVsZHMKKysJbG9j YXRlZCBpbiBvbmUgb3IgbW9yZSBEV0FSRiBwaWVjZXMuCisrCisrMjAxNy0wNi0xMyAgQW5kcmVh cyBBcm5leiAgPGFybmV6QGxpbnV4LnZuZXQuaWJtLmNvbT4KKysKKyAJKiBsaWIvZ2RiLmV4cCAo Z2V0X2VuZGlhbm5lc3MpOiBOZXcgcHJvYy4KKyAJKiBnZGIuYXJjaC9hYXJjaDY0LWZwLmV4cDog VXNlIGl0LgorIAkqIGdkYi5hcmNoL2FsdGl2ZWMtcmVncy5leHA6IExpa2V3aXNlLgorLS0tIGEv Z2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL3Zhci1hY2Nlc3MuZXhwCisrKysgYi9nZGIvdGVzdHN1 aXRlL2dkYi5kd2FyZjIvdmFyLWFjY2Vzcy5leHAKK0BAIC02Miw3ICs2Miw4IEBAIER3YXJmOjph c3NlbWJsZSAkYXNtX2ZpbGUgeworIAl9IHsKKyAJICAgIGRlY2xhcmVfbGFiZWxzIGNoYXJfdHlw ZV9sYWJlbAorIAkgICAgZGVjbGFyZV9sYWJlbHMgaW50X3R5cGVfbGFiZWwgc2hvcnRfdHlwZV9s YWJlbAorLQkgICAgZGVjbGFyZV9sYWJlbHMgYXJyYXlfYThfbGFiZWwgc3RydWN0X3NfbGFiZWwK KysJICAgIGRlY2xhcmVfbGFiZWxzIGFycmF5X2E4X2xhYmVsIHN0cnVjdF9zX2xhYmVsIHN0cnVj dF90X2xhYmVsCisrCSAgICBkZWNsYXJlX2xhYmVscyBzdHJ1Y3Rfc3RfbGFiZWwKKyAKKyAJICAg ICMgY2hhcgorIAkgICAgY2hhcl90eXBlX2xhYmVsOiBiYXNlX3R5cGUgeworQEAgLTExNSw2ICsx MTYsNTEgQEAgRHdhcmY6OmFzc2VtYmxlICRhc21fZmlsZSB7CisgCQl9CisgCSAgICB9CisgCisr CSAgICAjIHN0cnVjdCB0IHsgaW50IHUsIHg6OSwgeToxMywgejoxMDsgfTsKKysJICAgIHN0cnVj dF90X2xhYmVsOiBzdHJ1Y3R1cmVfdHlwZSB7CisrCQl7bmFtZSAidCJ9CisrCQl7Ynl0ZV9zaXpl IDggRFdfRk9STV9zZGF0YX0KKysJICAgIH0geworKwkJbWVtYmVyIHsKKysJCSAgICB7bmFtZSAi dSJ9CisrCQkgICAge3R5cGUgOiRpbnRfdHlwZV9sYWJlbH0KKysJCX0KKysJCW1lbWJlciB7Cisr CQkgICAge25hbWUgIngifQorKwkJICAgIHt0eXBlIDokaW50X3R5cGVfbGFiZWx9CisrCQkgICAg e2RhdGFfbWVtYmVyX2xvY2F0aW9uIDQgRFdfRk9STV91ZGF0YX0KKysJCSAgICB7Yml0X3NpemUg OSBEV19GT1JNX3VkYXRhfQorKwkJfQorKwkJbWVtYmVyIHsKKysJCSAgICB7bmFtZSAieSJ9Cisr CQkgICAge3R5cGUgOiRpbnRfdHlwZV9sYWJlbH0KKysJCSAgICB7ZGF0YV9iaXRfb2Zmc2V0IDQx IERXX0ZPUk1fdWRhdGF9CisrCQkgICAge2JpdF9zaXplIDEzIERXX0ZPUk1fdWRhdGF9CisrCQl9 CisrCQltZW1iZXIgeworKwkJICAgIHtuYW1lICJ6In0KKysJCSAgICB7dHlwZSA6JGludF90eXBl X2xhYmVsfQorKwkJICAgIHtkYXRhX2JpdF9vZmZzZXQgNTQgRFdfRk9STV91ZGF0YX0KKysJCSAg ICB7Yml0X3NpemUgMTAgRFdfRk9STV91ZGF0YX0KKysJCX0KKysJICAgIH0KKysKKysJICAgICMg c3RydWN0IHN0IHsgc3RydWN0IHMgczsgc3RydWN0IHQgdDsgfTsKKysJICAgIHN0cnVjdF9zdF9s YWJlbDogc3RydWN0dXJlX3R5cGUgeworKwkJe25hbWUgInN0In0KKysJCXtieXRlX3NpemUgMTIg RFdfRk9STV91ZGF0YX0KKysJICAgIH0geworKwkJbWVtYmVyIHsKKysJCSAgICB7bmFtZSAicyJ9 CisrCQkgICAge3R5cGUgOiRzdHJ1Y3Rfc19sYWJlbH0KKysJCX0KKysJCW1lbWJlciB7CisrCQkg ICAge25hbWUgInQifQorKwkJICAgIHt0eXBlIDokc3RydWN0X3RfbGFiZWx9CisrCQkgICAge2Rh dGFfbWVtYmVyX2xvY2F0aW9uIDQgRFdfRk9STV91ZGF0YX0KKysJCX0KKysJICAgIH0KKysKKyAJ ICAgIERXX1RBR19zdWJwcm9ncmFtIHsKKyAJCXtNQUNST19BVF9mdW5jIHsgbWFpbiAke3NyY2Rp cn0vJHtzdWJkaXJ9LyR7c3JjZmlsZX0gfX0KKyAJCXtEV19BVF9leHRlcm5hbCAxIGZsYWd9CitA QCAtMTU2LDYgKzIwMiwxOSBAQCBEd2FyZjo6YXNzZW1ibGUgJGFzbV9maWxlIHsKKyAJCQlwaWVj ZSAxCisgCQkgICAgfSBTUEVDSUFMX2V4cHJ9CisgCQl9CisrCQkjIE1lbW9yeSBwaWVjZXMgZm9y IGJpdGZpZWxkIGFjY2VzczogOCBieXRlcyBvcHRpbWl6ZWQKKysJCSMgb3V0LCAzIGJ5dGVzIGZy b20gJmJ1ZlszXSwgYW5kIDEgYnl0ZSBmcm9tICZidWZbMV0uCisrCQlEV19UQUdfdmFyaWFibGUg eworKwkJICAgIHtuYW1lICJzdDEifQorKwkJICAgIHt0eXBlIDokc3RydWN0X3N0X2xhYmVsfQor KwkJICAgIHtsb2NhdGlvbiB7CisrCQkJcGllY2UgOAorKwkJCWFkZHIgIiRidWZfdmFyICsgMyIK KysJCQlwaWVjZSAzCisrCQkJYWRkciAiJGJ1Zl92YXIgKyAxIgorKwkJCXBpZWNlIDEKKysJCSAg ICB9IFNQRUNJQUxfZXhwcn0KKysJCX0KKyAJICAgIH0KKyAJfQorICAgICB9CitAQCAtMTcwLDYg KzIyOSw5IEBAIGlmICFbcnVudG9fbWFpbl0geworICAgICByZXR1cm4gLTEKKyB9CisgCisrIyBE ZXRlcm1pbmUgYnl0ZSBvcmRlci4KKytzZXQgZW5kaWFuIFtnZXRfZW5kaWFubmVzc10KKysKKyAj IEJ5dGUtYWxpZ25lZCBtZW1vcnkgcGllY2VzLgorIGdkYl90ZXN0ICJwcmludC9kIHMxIiAiID0g XFx7YSA9IDIsIGIgPSAzLCBjID0gMCwgZCA9IDFcXH0iIFwKKyAgICAgInMxID09IHJlLW9yZGVy ZWQgYnVmIgorQEAgLTIwMCwzICsyNjIsMjAgQEAgZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgdmFy IHMyID0gezE5MSwgNzMsIDIzMSwgMTIzfSIgXAorICAgICAicmUtaW5pdGlhbGl6ZSBzMiIKKyBn ZGJfdGVzdCAicHJpbnQvZCBzMiIgICIgPSBcXHthID0gMTkxLCBiID0gNzMsIGMgPSAyMzEsIGQg PSAxMjNcXH0iIFwKKyAgICAgInZlcmlmeSByZS1pbml0aWFsaXplZCBzMiIKKysKKysjIFVuYWxp Z25lZCBiaXRmaWVsZCBhY2Nlc3MgdGhyb3VnaCBieXRlLWFsaWduZWQgcGllY2VzLgorK2dkYl90 ZXN0X25vX291dHB1dCAic2V0IHZhciBhID0geyAwIH0iCisrZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJz ZXQgdmFyIHN0MS50LnggPSAtNyIKKytnZGJfdGVzdF9ub19vdXRwdXQgInNldCB2YXIgc3QxLnQu eiA9IDM0MCIKKytnZGJfdGVzdF9ub19vdXRwdXQgInNldCB2YXIgc3QxLnQueSA9IDEyMzQiCisr Z2RiX3Rlc3QgInByaW50IHN0MS50IiAiID0gXFx7dSA9IDxvcHRpbWl6ZWQgb3V0PiwgeCA9IC03 LCB5ID0gMTIzNCwgeiA9IDM0MFxcfSIgXAorKyAgICAidmVyaWZ5IHN0MS50IgorK3N3aXRjaCAk ZW5kaWFuIHsKKysgICAgbGl0dGxlIHtzZXQgdmFsICIweDU1LCAweDAsIDB4ZjksIDB4YTUsIDB4 OSJ9CisrICAgIGJpZyB7c2V0IHZhbCAiMHg1NCwgMHgwLCAweGZjLCAweDkzLCAweDQ5In0KKyt9 CisrIyB8IC0tIHwgejoyLTkgfCAtLSB8IHg6MC03IHwgeDo4IHk6MC02IHwgeTo3LTEyIHo6MC0x IHwgLS0gfCAtLSB8CisrIyAgICAgIFxfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXy8KKysjICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwKKytnZGJf dGVzdCAicHJpbnQveCBhIiAiID0gXFx7MHgwLCAke3ZhbH0sIDB4MCwgMHgwXFx9IiBcCisrICAg ICJ2ZXJpZnkgc3QxIHRocm91Z2ggYSIKCmRpZmYgLS1naXQgYS9nZGItcmhiejE0MjAzMDQtczM5 MHgtMjBvZjM1LnBhdGNoIGIvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTIwb2YzNS5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YzgwNzM1Ci0tLSAvZGV2L251bGwKKysr IGIvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTIwb2YzNS5wYXRjaApAQCAtMCwwICsxLDc0IEBACitj b21taXQgODQwOTg5YzExMzQzM2MwNjlmNTQ4NzJkN2UwNTFlMTU3MjIwMjMyNgorQXV0aG9yOiBB bmRyZWFzIEFybmV6IDxhcm5lekBsaW51eC52bmV0LmlibS5jb20+CitEYXRlOiAgIFR1ZSBKdW4g MTMgMTU6MjA6MzAgMjAxNyArMDIwMAorCisgICAgcmVhZC93cml0ZV9waWVjZWRfdmFsdWU6IERy b3AgJ2J1ZmZlcl9zaXplJyB2YXJpYWJsZQorICAgIAorICAgIFdoZW4gdGhlIHZhcmlhYmxlICdi dWZmZXJfc2l6ZScgaW4gcmVhZF9waWVjZWRfdmFsdWUgYW5kCisgICAgd3JpdGVfcGllY2VkX3Zh bHVlIHdhcyBpbnRyb2R1Y2VkLCBpdCB3YXMgbmVlZGVkIGZvciB0cmFja2luZyB0aGUgYnVmZmVy J3MKKyAgICBhbGxvY2F0ZWQgc2l6ZS4gIE5vdyB0aGF0IHRoZSBidWZmZXIncyBkYXRhIHR5cGUg aGFzIGJlZW4gY2hhbmdlZCB0byBhCisgICAgc3RkOjp2ZWN0b3IsIHRoZSB2YXJpYWJsZSBpcyBu byBsb25nZXIgbmVjZXNzYXJ5OyBzbyByZW1vdmUgaXQuCisgICAgCisgICAgZ2RiL0NoYW5nZUxv ZzoKKyAgICAKKyAgICAgICAgICAgICogZHdhcmYybG9jLmMgKHJlYWRfcGllY2VkX3ZhbHVlKTog UmVtb3ZlIGJ1ZmZlcl9zaXplIHZhcmlhYmxlLgorICAgICAgICAgICAgKHdyaXRlX3BpZWNlZF92 YWx1ZSk6IExpa2V3aXNlLgorCisjIyMgYS9nZGIvQ2hhbmdlTG9nCisjIyMgYi9nZGIvQ2hhbmdl TG9nCisjIyAtMSw1ICsxLDEwIEBACisgMjAxNy0wNi0xMyAgQW5kcmVhcyBBcm5leiAgPGFybmV6 QGxpbnV4LnZuZXQuaWJtLmNvbT4KKyAKKysJKiBkd2FyZjJsb2MuYyAocmVhZF9waWVjZWRfdmFs dWUpOiBSZW1vdmUgYnVmZmVyX3NpemUgdmFyaWFibGUuCisrCSh3cml0ZV9waWVjZWRfdmFsdWUp OiBMaWtld2lzZS4KKysKKysyMDE3LTA2LTEzICBBbmRyZWFzIEFybmV6ICA8YXJuZXpAbGludXgu dm5ldC5pYm0uY29tPgorKworIAkqIGR3YXJmMmxvYy5jICh3cml0ZV9waWVjZWRfdmFsdWUpOiBX aGVuIHdyaXRpbmcgdG8gYSBiaXQtZmllbGQsCisgCXRyYW5zZmVyIHRoZSBzb3VyY2UgdmFsdWUn cyBsZWFzdCBzaWduaWZpY2FudCBiaXRzLCBpbnN0ZWFkIG9mIGl0cworIAlsb3dlc3QtYWRkcmVz c2VkIG9uZXMuICBSZW5hbWUgdHlwZV9sZW4gdG8gbWF4X29mZnNldC4KKy0tLSBhL2dkYi9kd2Fy ZjJsb2MuYworKysrIGIvZ2RiL2R3YXJmMmxvYy5jCitAQCAtMTc2MSw3ICsxNzYxLDYgQEAgcmVh ZF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdikKKyAgIGdkYl9ieXRlICpjb250ZW50czsK KyAgIHN0cnVjdCBwaWVjZV9jbG9zdXJlICpjCisgICAgID0gKHN0cnVjdCBwaWVjZV9jbG9zdXJl ICopIHZhbHVlX2NvbXB1dGVkX2Nsb3N1cmUgKHYpOworLSAgc2l6ZV90IGJ1ZmZlcl9zaXplID0g MDsKKyAgIHN0ZDo6dmVjdG9yPGdkYl9ieXRlPiBidWZmZXI7CisgICBpbnQgYml0c19iaWdfZW5k aWFuCisgICAgID0gZ2RiYXJjaF9iaXRzX2JpZ19lbmRpYW4gKGdldF90eXBlX2FyY2ggKHZhbHVl X3R5cGUgKHYpKSk7CitAQCAtMTgwNiwxMiArMTgwNSw4IEBAIHJlYWRfcGllY2VkX3ZhbHVlIChz dHJ1Y3QgdmFsdWUgKnYpCisgCXRoaXNfc2l6ZV9iaXRzID0gbWF4X29mZnNldCAtIG9mZnNldDsK KyAKKyAgICAgICB0aGlzX3NpemUgPSAodGhpc19zaXplX2JpdHMgKyBzb3VyY2Vfb2Zmc2V0X2Jp dHMgJSA4ICsgNykgLyA4OworKyAgICAgIGJ1ZmZlci5yZXNlcnZlICh0aGlzX3NpemUpOworICAg ICAgIHNvdXJjZV9vZmZzZXQgPSBzb3VyY2Vfb2Zmc2V0X2JpdHMgLyA4OworLSAgICAgIGlmIChi dWZmZXJfc2l6ZSA8IHRoaXNfc2l6ZSkKKy0JeworLQkgIGJ1ZmZlcl9zaXplID0gdGhpc19zaXpl OworLQkgIGJ1ZmZlci5yZXNlcnZlIChidWZmZXJfc2l6ZSk7CistCX0KKyAgICAgICBpbnRlcm1l ZGlhdGVfYnVmZmVyID0gYnVmZmVyLmRhdGEgKCk7CisgCisgICAgICAgLyogQ29weSBmcm9tIHRo ZSBzb3VyY2UgdG8gREVTVF9CVUZGRVIuICAqLworQEAgLTE5MjksNyArMTkyNCw2IEBAIHdyaXRl X3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp0bywgc3RydWN0IHZhbHVlICpmcm9tKQorICAg Y29uc3QgZ2RiX2J5dGUgKmNvbnRlbnRzOworICAgc3RydWN0IHBpZWNlX2Nsb3N1cmUgKmMKKyAg ICAgPSAoc3RydWN0IHBpZWNlX2Nsb3N1cmUgKikgdmFsdWVfY29tcHV0ZWRfY2xvc3VyZSAodG8p OworLSAgc2l6ZV90IGJ1ZmZlcl9zaXplID0gMDsKKyAgIHN0ZDo6dmVjdG9yPGdkYl9ieXRlPiBi dWZmZXI7CisgICBpbnQgYml0c19iaWdfZW5kaWFuCisgICAgID0gZ2RiYXJjaF9iaXRzX2JpZ19l bmRpYW4gKGdldF90eXBlX2FyY2ggKHZhbHVlX3R5cGUgKHRvKSkpOworQEAgLTE5ODgsMTEgKzE5 ODIsNyBAQCB3cml0ZV9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdG8sIHN0cnVjdCB2YWx1 ZSAqZnJvbSkKKyAJfQorICAgICAgIGVsc2UKKyAJeworLQkgIGlmIChidWZmZXJfc2l6ZSA8IHRo aXNfc2l6ZSkKKy0JICAgIHsKKy0JICAgICAgYnVmZmVyX3NpemUgPSB0aGlzX3NpemU7CistCSAg ICAgIGJ1ZmZlci5yZXNlcnZlIChidWZmZXJfc2l6ZSk7CistCSAgICB9CisrCSAgYnVmZmVyLnJl c2VydmUgKHRoaXNfc2l6ZSk7CisgCSAgc291cmNlX2J1ZmZlciA9IGJ1ZmZlci5kYXRhICgpOwor IAkgIG5lZWRfYml0d2lzZSA9IDE7CisgCX0KCmRpZmYgLS1naXQgYS9nZGItcmhiejE0MjAzMDQt czM5MHgtMjFvZjM1LnBhdGNoIGIvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTIxb2YzNS5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NWY5YzkxCi0tLSAvZGV2L251bGwK KysrIGIvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTIxb2YzNS5wYXRjaApAQCAtMCwwICsxLDIyNyBA QAorY29tbWl0IDAzYzhhZjE4ZDFhOGYzNTlmZDAyMzY5Njg0OGJkYTQ4ODExOWRhNjAKK0F1dGhv cjogQW5kcmVhcyBBcm5leiA8YXJuZXpAbGludXgudm5ldC5pYm0uY29tPgorRGF0ZTogICBUdWUg SnVuIDEzIDE1OjIwOjMwIDIwMTcgKzAyMDAKKworICAgIEZpeCBoYW5kbGluZyBvZiBEV0FSRiBy ZWdpc3RlciBwaWVjZXMgb24gYmlnLWVuZGlhbiB0YXJnZXRzCisgICAgCisgICAgRm9yIGJpZy1l bmRpYW4gdGFyZ2V0cyB0aGUgbG9naWMgaW4gcmVhZC93cml0ZV9waWVjZWRfdmFsdWUgdHJpZXMg dG8gdGFrZQorICAgIGEgcmVnaXN0ZXIgcGllY2UgZnJvbSB0aGUgTFNCIGVuZC4gIFRoaXMgcmVx dWlyZXMgb2Zmc2V0cyBhbmQgc2l6ZXMgdG8gYmUKKyAgICBhZGp1c3RlZCBhY2NvcmRpbmdseSwg YW5kIHRoYXQncyB3aGVyZSB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBoYXMgc29tZQorICAg IGlzc3VlczoKKyAgICAKKyAgICAqIFRoZSBmb3JtdWxhcyBmb3IgcmVjYWxjdWxhdGluZyB0aGUg Yml0LSBhbmQgYnl0ZS1vZmZzZXRzIGludG8gdGhlCisgICAgICByZWdpc3RlciBhcmUgd3Jvbmcu ICBUaGV5IGp1c3QgaGFwcGVuIHRvIHlpZWxkIGNvcnJlY3QgcmVzdWx0cyBpZgorICAgICAgZXZl cnl0aGluZyBpcyBieXRlLWFsaWduZWQgYW5kIHRoZSBwaWVjZSdzIGxhc3QgYnl0ZSBiZWxvbmdz IHRvIHRoZQorICAgICAgZ2l2ZW4gdmFsdWUuCisgICAgCisgICAgKiBBZnRlciByZWNhbGN1bGF0 aW5nIHRoZSBiaXQgb2Zmc2V0IGludG8gdGhlIHJlZ2lzdGVyLCB0aGUgbnVtYmVyIG9mCisgICAg ICBieXRlcyB0byBiZSBjb3BpZWQgZnJvbSB0aGUgcmVnaXN0ZXIgaXMgbm90IHJlY2FsY3VsYXRl ZC4gIE9mIGNvdXJzZQorICAgICAgdGhpcyBkb2VzIG5vdCBtYXR0ZXIgaWYgZXZlcnl0aGluZyAo cGFydGljdWxhcmx5IHRoZSBwaWVjZSBzaXplKSBpcworICAgICAgYnl0ZS1hbGlnbmVkLgorICAg IAorICAgIFRoZXNlIGlzc3VlcyBhcmUgZml4ZWQuICBUaGUgc2l6ZSBjYWxjdWxhdGlvbiBpcyBw ZXJmb3JtZWQgd2l0aCBhIG5ldworICAgIGhlbHBlciBmdW5jdGlvbiBiaXRzX3RvX2J5dGVzKCku CisgICAgCisgICAgZ2RiL0NoYW5nZUxvZzoKKyAgICAKKyAgICAgICAgICAgICogZHdhcmYybG9j LmMgKGJpdHNfdG9fYnl0ZXMpOiBOZXcgZnVuY3Rpb24uCisgICAgICAgICAgICAocmVhZF9waWVj ZWRfdmFsdWUpOiBGaXggb2Zmc2V0IGNhbGN1bGF0aW9ucyBmb3IgcmVnaXN0ZXIgcGllY2VzCisg ICAgICAgICAgICBvbiBiaWctZW5kaWFuIHRhcmdldHMuCisgICAgICAgICAgICAod3JpdGVfcGll Y2VkX3ZhbHVlKTogTGlrZXdpc2UuCisgICAgCisgICAgZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6 CisgICAgCisgICAgICAgICAgICAqIGdkYi5kd2FyZjIvdmFyLWFjY2Vzcy5leHA6IEFkZCB0ZXN0 IGZvciBub24tYnl0ZS1hbGlnbmVkCisgICAgICAgICAgICByZWdpc3RlciBwaWVjZXMuCisKKyMj IyBhL2dkYi9DaGFuZ2VMb2cKKyMjIyBiL2dkYi9DaGFuZ2VMb2cKKyMjIC0xLDUgKzEsMTIgQEAK KyAyMDE3LTA2LTEzICBBbmRyZWFzIEFybmV6ICA8YXJuZXpAbGludXgudm5ldC5pYm0uY29tPgor IAorKwkqIGR3YXJmMmxvYy5jIChiaXRzX3RvX2J5dGVzKTogTmV3IGZ1bmN0aW9uLgorKwkocmVh ZF9waWVjZWRfdmFsdWUpOiBGaXggb2Zmc2V0IGNhbGN1bGF0aW9ucyBmb3IgcmVnaXN0ZXIgcGll Y2VzCisrCW9uIGJpZy1lbmRpYW4gdGFyZ2V0cy4KKysJKHdyaXRlX3BpZWNlZF92YWx1ZSk6IExp a2V3aXNlLgorKworKzIwMTctMDYtMTMgIEFuZHJlYXMgQXJuZXogIDxhcm5lekBsaW51eC52bmV0 LmlibS5jb20+CisrCisgCSogZHdhcmYybG9jLmMgKHJlYWRfcGllY2VkX3ZhbHVlKTogUmVtb3Zl IGJ1ZmZlcl9zaXplIHZhcmlhYmxlLgorIAkod3JpdGVfcGllY2VkX3ZhbHVlKTogTGlrZXdpc2Uu CisgCistLS0gYS9nZGIvZHdhcmYybG9jLmMKKysrKyBiL2dkYi9kd2FyZjJsb2MuYworQEAgLTE3 NTIsNiArMTc1MiwxNSBAQCBjb3B5X2JpdHdpc2VfdGVzdHMgKHZvaWQpCisgCisgI2VuZGlmIC8q IEdEQl9TRUxGX1RFU1QgKi8KKyAKKysvKiBSZXR1cm4gdGhlIG51bWJlciBvZiBieXRlcyBvdmVy bGFwcGluZyBhIGNvbnRpZ3VvdXMgY2h1bmsgb2YgTl9CSVRTCisrICAgYml0cyB3aG9zZSBmaXJz dCBiaXQgaXMgbG9jYXRlZCBhdCBiaXQgb2Zmc2V0IFNUQVJULiAgKi8KKysKKytzdGF0aWMgc2l6 ZV90CisrYml0c190b19ieXRlcyAoVUxPTkdFU1Qgc3RhcnQsIFVMT05HRVNUIG5fYml0cykKKyt7 CisrICByZXR1cm4gKHN0YXJ0ICUgOCArIG5fYml0cyArIDcpIC8gODsKKyt9CisrCisgc3RhdGlj IHZvaWQKKyByZWFkX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQorIHsKK0BAIC0xODA0 LDcgKzE4MTMsNyBAQCByZWFkX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQorICAgICAg IGlmICh0aGlzX3NpemVfYml0cyA+IG1heF9vZmZzZXQgLSBvZmZzZXQpCisgCXRoaXNfc2l6ZV9i aXRzID0gbWF4X29mZnNldCAtIG9mZnNldDsKKyAKKy0gICAgICB0aGlzX3NpemUgPSAodGhpc19z aXplX2JpdHMgKyBzb3VyY2Vfb2Zmc2V0X2JpdHMgJSA4ICsgNykgLyA4OworKyAgICAgIHRoaXNf c2l6ZSA9IGJpdHNfdG9fYnl0ZXMgKHNvdXJjZV9vZmZzZXRfYml0cywgdGhpc19zaXplX2JpdHMp OworICAgICAgIGJ1ZmZlci5yZXNlcnZlICh0aGlzX3NpemUpOworICAgICAgIHNvdXJjZV9vZmZz ZXQgPSBzb3VyY2Vfb2Zmc2V0X2JpdHMgLyA4OworICAgICAgIGludGVybWVkaWF0ZV9idWZmZXIg PSBidWZmZXIuZGF0YSAoKTsKK0BAIC0xODE3LDIwICsxODI2LDIwIEBAIHJlYWRfcGllY2VkX3Zh bHVlIChzdHJ1Y3QgdmFsdWUgKnYpCisgCSAgICBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUgPSBm cmFtZV9maW5kX2J5X2lkIChjLT5mcmFtZV9pZCk7CisgCSAgICBzdHJ1Y3QgZ2RiYXJjaCAqYXJj aCA9IGdldF9mcmFtZV9hcmNoIChmcmFtZSk7CisgCSAgICBpbnQgZ2RiX3JlZ251bSA9IGR3YXJm X3JlZ190b19yZWdudW1fb3JfZXJyb3IgKGFyY2gsIHAtPnYucmVnbm8pOworKwkgICAgVUxPTkdF U1QgcmVnX2JpdHMgPSA4ICogcmVnaXN0ZXJfc2l6ZSAoYXJjaCwgZ2RiX3JlZ251bSk7CisgCSAg ICBpbnQgb3B0aW0sIHVuYXZhaWw7CistCSAgICBMT05HRVNUIHJlZ19vZmZzZXQgPSBzb3VyY2Vf b2Zmc2V0OworIAorIAkgICAgaWYgKGdkYmFyY2hfYnl0ZV9vcmRlciAoYXJjaCkgPT0gQkZEX0VO RElBTl9CSUcKKy0JCSYmIHRoaXNfc2l6ZSA8IHJlZ2lzdGVyX3NpemUgKGFyY2gsIGdkYl9yZWdu dW0pKQorKwkJJiYgcC0+c2l6ZSA8IHJlZ19iaXRzKQorIAkgICAgICB7CisgCQkvKiBCaWctZW5k aWFuLCBhbmQgd2Ugd2FudCBsZXNzIHRoYW4gZnVsbCBzaXplLiAgKi8KKy0JCXJlZ19vZmZzZXQg PSByZWdpc3Rlcl9zaXplIChhcmNoLCBnZGJfcmVnbnVtKSAtIHRoaXNfc2l6ZTsKKy0JCS8qIFdl IHdhbnQgdGhlIGxvd2VyLW9yZGVyIFRISVNfU0laRV9CSVRTIG9mIHRoZSBieXRlcworLQkJICAg d2UgZXh0cmFjdCBmcm9tIHRoZSByZWdpc3Rlci4gICovCistCQlzb3VyY2Vfb2Zmc2V0X2JpdHMg Kz0gOCAqIHRoaXNfc2l6ZSAtIHRoaXNfc2l6ZV9iaXRzOworKwkJc291cmNlX29mZnNldF9iaXRz ICs9IHJlZ19iaXRzIC0gcC0+c2l6ZTsKKyAJICAgICAgfQorKwkgICAgdGhpc19zaXplID0gYml0 c190b19ieXRlcyAoc291cmNlX29mZnNldF9iaXRzLCB0aGlzX3NpemVfYml0cyk7CisrCSAgICBi dWZmZXIucmVzZXJ2ZSAodGhpc19zaXplKTsKKyAKKy0JICAgIGlmICghZ2V0X2ZyYW1lX3JlZ2lz dGVyX2J5dGVzIChmcmFtZSwgZ2RiX3JlZ251bSwgcmVnX29mZnNldCwKKysJICAgIGlmICghZ2V0 X2ZyYW1lX3JlZ2lzdGVyX2J5dGVzIChmcmFtZSwgZ2RiX3JlZ251bSwKKysJCQkJCSAgIHNvdXJj ZV9vZmZzZXRfYml0cyAvIDgsCisgCQkJCQkgICB0aGlzX3NpemUsIGJ1ZmZlci5kYXRhICgpLAor IAkJCQkJICAgJm9wdGltLCAmdW5hdmFpbCkpCisgCSAgICAgIHsKK0BAIC0xODQ0LDcgKzE4NTMs NyBAQCByZWFkX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQorIAkgICAgICB9CisgCisg CSAgICBjb3B5X2JpdHdpc2UgKGNvbnRlbnRzLCBkZXN0X29mZnNldF9iaXRzLAorLQkJCSAgaW50 ZXJtZWRpYXRlX2J1ZmZlciwgc291cmNlX29mZnNldF9iaXRzICUgOCwKKysJCQkgIGJ1ZmZlci5k YXRhICgpLCBzb3VyY2Vfb2Zmc2V0X2JpdHMgJSA4LAorIAkJCSAgdGhpc19zaXplX2JpdHMsIGJp dHNfYmlnX2VuZGlhbik7CisgCSAgfQorIAkgIGJyZWFrOworQEAgLTE5NjksNyArMTk3OCw3IEBA IHdyaXRlX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp0bywgc3RydWN0IHZhbHVlICpmcm9t KQorICAgICAgIGlmICh0aGlzX3NpemVfYml0cyA+IG1heF9vZmZzZXQgLSBvZmZzZXQpCisgCXRo aXNfc2l6ZV9iaXRzID0gbWF4X29mZnNldCAtIG9mZnNldDsKKyAKKy0gICAgICB0aGlzX3NpemUg PSAodGhpc19zaXplX2JpdHMgKyBkZXN0X29mZnNldF9iaXRzICUgOCArIDcpIC8gODsKKysgICAg ICB0aGlzX3NpemUgPSBiaXRzX3RvX2J5dGVzIChkZXN0X29mZnNldF9iaXRzLCB0aGlzX3NpemVf Yml0cyk7CisgICAgICAgc291cmNlX29mZnNldCA9IHNvdXJjZV9vZmZzZXRfYml0cyAvIDg7Cisg ICAgICAgZGVzdF9vZmZzZXQgPSBkZXN0X29mZnNldF9iaXRzIC8gODsKKyAKK0BAIC0xOTk0LDIw ICsyMDAzLDI1IEBAIHdyaXRlX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp0bywgc3RydWN0 IHZhbHVlICpmcm9tKQorIAkgICAgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lID0gZnJhbWVfZmlu ZF9ieV9pZCAoYy0+ZnJhbWVfaWQpOworIAkgICAgc3RydWN0IGdkYmFyY2ggKmFyY2ggPSBnZXRf ZnJhbWVfYXJjaCAoZnJhbWUpOworIAkgICAgaW50IGdkYl9yZWdudW0gPSBkd2FyZl9yZWdfdG9f cmVnbnVtX29yX2Vycm9yIChhcmNoLCBwLT52LnJlZ25vKTsKKy0JICAgIGludCByZWdfb2Zmc2V0 ID0gZGVzdF9vZmZzZXQ7CisrCSAgICBVTE9OR0VTVCByZWdfYml0cyA9IDggKiByZWdpc3Rlcl9z aXplIChhcmNoLCBnZGJfcmVnbnVtKTsKKyAKKyAJICAgIGlmIChnZGJhcmNoX2J5dGVfb3JkZXIg KGFyY2gpID09IEJGRF9FTkRJQU5fQklHCistCQkmJiB0aGlzX3NpemUgPD0gcmVnaXN0ZXJfc2l6 ZSAoYXJjaCwgZ2RiX3JlZ251bSkpCisrCQkmJiBwLT5zaXplIDw9IHJlZ19iaXRzKQorIAkgICAg ICB7CisgCQkvKiBCaWctZW5kaWFuLCBhbmQgd2Ugd2FudCBsZXNzIHRoYW4gZnVsbCBzaXplLiAg Ki8KKy0JCXJlZ19vZmZzZXQgPSByZWdpc3Rlcl9zaXplIChhcmNoLCBnZGJfcmVnbnVtKSAtIHRo aXNfc2l6ZTsKKysJCWRlc3Rfb2Zmc2V0X2JpdHMgKz0gcmVnX2JpdHMgLSBwLT5zaXplOworIAkg ICAgICB9CisrCSAgICB0aGlzX3NpemUgPSBiaXRzX3RvX2J5dGVzIChkZXN0X29mZnNldF9iaXRz LCB0aGlzX3NpemVfYml0cyk7CisrCSAgICBidWZmZXIucmVzZXJ2ZSAodGhpc19zaXplKTsKKyAK Ky0JICAgIGlmIChuZWVkX2JpdHdpc2UpCisrCSAgICBpZiAoZGVzdF9vZmZzZXRfYml0cyAlIDgg IT0gMCB8fCB0aGlzX3NpemVfYml0cyAlIDggIT0gMCkKKyAJICAgICAgeworKwkJLyogRGF0YSBp cyBjb3BpZWQgbm9uLWJ5dGUtYWxpZ25lZCBpbnRvIHRoZSByZWdpc3Rlci4KKysJCSAgIE5lZWQg c29tZSBiaXRzIGZyb20gb3JpZ2luYWwgcmVnaXN0ZXIgdmFsdWUuICAqLworIAkJaW50IG9wdGlt LCB1bmF2YWlsOworIAorLQkJaWYgKCFnZXRfZnJhbWVfcmVnaXN0ZXJfYnl0ZXMgKGZyYW1lLCBn ZGJfcmVnbnVtLCByZWdfb2Zmc2V0LAorKwkJaWYgKCFnZXRfZnJhbWVfcmVnaXN0ZXJfYnl0ZXMg KGZyYW1lLCBnZGJfcmVnbnVtLAorKwkJCQkJICAgICAgIGRlc3Rfb2Zmc2V0X2JpdHMgLyA4LAor IAkJCQkJICAgICAgIHRoaXNfc2l6ZSwgYnVmZmVyLmRhdGEgKCksCisgCQkJCQkgICAgICAgJm9w dGltLCAmdW5hdmFpbCkpCisgCQkgIHsKK0BAIC0yMDIyLDE0ICsyMDM2LDE0IEBAIHdyaXRlX3Bp ZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp0bywgc3RydWN0IHZhbHVlICpmcm9tKQorIAkJCQkg ICAgICJiaXRmaWVsZDsgY29udGFpbmluZyB3b3JkICIKKyAJCQkJICAgICAiaXMgdW5hdmFpbGFi bGUiKSk7CisgCQkgIH0KKy0JCWNvcHlfYml0d2lzZSAoYnVmZmVyLmRhdGEgKCksIGRlc3Rfb2Zm c2V0X2JpdHMsCistCQkJICAgICAgY29udGVudHMsIHNvdXJjZV9vZmZzZXRfYml0cywKKy0JCQkg ICAgICB0aGlzX3NpemVfYml0cywKKy0JCQkgICAgICBiaXRzX2JpZ19lbmRpYW4pOworIAkgICAg ICB9CisgCistCSAgICBwdXRfZnJhbWVfcmVnaXN0ZXJfYnl0ZXMgKGZyYW1lLCBnZGJfcmVnbnVt LCByZWdfb2Zmc2V0LCAKKy0JCQkJICAgICAgdGhpc19zaXplLCBzb3VyY2VfYnVmZmVyKTsKKysJ ICAgIGNvcHlfYml0d2lzZSAoYnVmZmVyLmRhdGEgKCksIGRlc3Rfb2Zmc2V0X2JpdHMgJSA4LAor KwkJCSAgY29udGVudHMsIHNvdXJjZV9vZmZzZXRfYml0cywKKysJCQkgIHRoaXNfc2l6ZV9iaXRz LCBiaXRzX2JpZ19lbmRpYW4pOworKwkgICAgcHV0X2ZyYW1lX3JlZ2lzdGVyX2J5dGVzIChmcmFt ZSwgZ2RiX3JlZ251bSwKKysJCQkJICAgICAgZGVzdF9vZmZzZXRfYml0cyAvIDgsCisrCQkJCSAg ICAgIHRoaXNfc2l6ZSwgYnVmZmVyLmRhdGEgKCkpOworIAkgIH0KKyAJICBicmVhazsKKyAJY2Fz ZSBEV0FSRl9WQUxVRV9NRU1PUlk6CisjIyMgYS9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZworIyMj IGIvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKKyMjIC0xLDUgKzEsMTAgQEAKKyAyMDE3LTA2LTEz ICBBbmRyZWFzIEFybmV6ICA8YXJuZXpAbGludXgudm5ldC5pYm0uY29tPgorIAorKwkqIGdkYi5k d2FyZjIvdmFyLWFjY2Vzcy5leHA6IEFkZCB0ZXN0IGZvciBub24tYnl0ZS1hbGlnbmVkCisrCXJl Z2lzdGVyIHBpZWNlcy4KKysKKysyMDE3LTA2LTEzICBBbmRyZWFzIEFybmV6ICA8YXJuZXpAbGlu dXgudm5ldC5pYm0uY29tPgorKworIAkqIGdkYi5kd2FyZjIvdmFyLWFjY2Vzcy5leHA6IEFkZCB0 ZXN0cyBmb3IgYWNjZXNzaW5nIGJpdC1maWVsZHMKKyAJbG9jYXRlZCBpbiBvbmUgb3IgbW9yZSBE V0FSRiBwaWVjZXMuCisgCistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvdmFyLWFjY2Vz cy5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi92YXItYWNjZXNzLmV4cAorQEAg LTIxNSw2ICsyMTUsMTkgQEAgRHdhcmY6OmFzc2VtYmxlICRhc21fZmlsZSB7CisgCQkJcGllY2Ug MQorIAkJICAgIH0gU1BFQ0lBTF9leHByfQorIAkJfQorKwkJIyBSZWdpc3RlciBwaWVjZXMgZm9y IGJpdGZpZWxkIGFjY2VzczogNCBieXRlcyBvcHRpbWl6ZWQKKysJCSMgb3V0LCAzIGJ5dGVzIGZy b20gcjAsIGFuZCAxIGJ5dGUgZnJvbSByMS4KKysJCURXX1RBR192YXJpYWJsZSB7CisrCQkgICAg e25hbWUgInQyIn0KKysJCSAgICB7dHlwZSA6JHN0cnVjdF90X2xhYmVsfQorKwkJICAgIHtsb2Nh dGlvbiB7CisrCQkJcGllY2UgNAorKwkJCXJlZ3ggW2xpbmRleCAkZHdhcmZfcmVnbnVtIDBdCisr CQkJcGllY2UgMworKwkJCXJlZ3ggW2xpbmRleCAkZHdhcmZfcmVnbnVtIDFdCisrCQkJcGllY2Ug MQorKwkJICAgIH0gU1BFQ0lBTF9leHByfQorKwkJfQorIAkgICAgfQorIAl9CisgICAgIH0KK0BA IC0yNzksMyArMjkyLDE1IEBAIHN3aXRjaCAkZW5kaWFuIHsKKyAjICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB2YWwKKyBnZGJfdGVzdCAicHJpbnQveCBhIiAiID0gXFx7MHgwLCAke3ZhbH0s IDB4MCwgMHgwXFx9IiBcCisgICAgICJ2ZXJpZnkgc3QxIHRocm91Z2ggYSIKKysKKytzd2l0Y2gg JGVuZGlhbiB7IGJpZyB7c2V0IHZhbCAweDdmZmN9IGxpdHRsZSB7c2V0IHZhbCAweDNmZmUwMH0g fQorK2dkYl90ZXN0X25vX291dHB1dCAic2V0IHZhciBcJFtsaW5kZXggJHJlZ25hbWUgMF0gPSAk dmFsIiBcCisrICAgICJpbml0IHQyLCBmaXJzdCBwaWVjZSIKKytnZGJfdGVzdF9ub19vdXRwdXQg InNldCB2YXIgXCRbbGluZGV4ICRyZWduYW1lIDFdID0gMCIgXAorKyAgICAiaW5pdCB0Miwgc2Vj b25kIHBpZWNlIgorK2dkYl90ZXN0ICJwcmludC9kIHQyIiAiID0gXFx7dSA9IDxvcHRpbWl6ZWQg b3V0PiwgeCA9IDAsIHkgPSAtMSwgeiA9IDBcXH0iIFwKKysgICAgImluaXRpYWxpemVkIHQyIGZy b20gcmVncyIKKytnZGJfdGVzdF9ub19vdXRwdXQgInNldCB2YXIgdDIueSA9IDI2NDEiCisrZ2Ri X3Rlc3Rfbm9fb3V0cHV0ICJzZXQgdmFyIHQyLnogPSAtNDAwIgorK2dkYl90ZXN0X25vX291dHB1 dCAic2V0IHZhciB0Mi54ID0gMjAwIgorK2dkYl90ZXN0ICJwcmludCB0Mi54ICsgdDIueSArIHQy LnoiICIgPSAyNDQxIgoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0yMm9mMzUu cGF0Y2ggYi9nZGItcmhiejE0MjAzMDQtczM5MHgtMjJvZjM1LnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjYTlmMTAKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItcmhi ejE0MjAzMDQtczM5MHgtMjJvZjM1LnBhdGNoCkBAIC0wLDAgKzEsMjIwIEBACitjb21taXQgMjQy ZDMxYWI3YzM5MDFlMDJiZDY4YzE4MjRkMWQzNjEwZTAyNTYyYgorQXV0aG9yOiBBbmRyZWFzIEFy bmV6IDxhcm5lekBsaW51eC52bmV0LmlibS5jb20+CitEYXRlOiAgIFR1ZSBKdW4gMTMgMTU6MjA6 MzAgMjAxNyArMDIwMAorCisgICAgcmVhZC93cml0ZV9waWVjZWRfdmFsdWU6IEltcHJvdmUgbG9n aWMgZm9yIGJ1ZmZlciBhbGxvY2F0aW9uCisgICAgCisgICAgU28gZmFyIHRoZSBtYWluIGxvb3Ag aW4gcmVhZF9waWVjZWRfdmFsdWUgYW5kIHdyaXRlX3BpZWNlZF92YWx1ZSBpcworICAgIHN0cnVj dHVyZWQgbGlrZSB0aGlzOgorICAgIAorICAgICgxKSBQcmVwYXJlIGEgYnVmZmVyIGFuZCBzb21l IHZhcmlhYmxlcyB3ZSBtYXkgbmVlZDsKKyAgICAKKyAgICAoMikgZGVwZW5kaW5nIG9uIHRoZSBE V0FSRiBwaWVjZSB0eXBlIHRvIGJlIGhhbmRsZWQsIHVzZSB0aGUgYnVmZmVyIGFuZAorICAgICAg ICB0aGUgcHJlcGFyZWQgdmFyaWFibGVzLCBpZ25vcmUgdGhlbSwgb3IgZXZlbiByZWNhbGN1bGF0 ZSB0aGVtLgorICAgIAorICAgIFRoaXMgYXBwcm9hY2ggcmVkdWNlcyByZWFkYWJpbGl0eSBhbmQg bWF5IGFsc28gbGVhZCB0byB1bm5lY2Vzc2FyeSBjb3B5aW5nCisgICAgb2YgZGF0YS4gIFRoaXMg cGF0Y2ggbW92ZXMgdGhlIHByZXBhcmF0aW9ucyB0byB0aGUgcGxhY2VzIHdoZXJlIHN1ZmZpY2ll bnQKKyAgICBpbmZvcm1hdGlvbiBpcyBhdmFpbGFibGUgYW5kIHJlbW92ZXMgc29tZSBvZiB0aGUg dmFyaWFibGVzIGludm9sdmVkLgorICAgIAorICAgIGdkYi9DaGFuZ2VMb2c6CisgICAgCisgICAg ICAgICAgICAqIGR3YXJmMmxvYy5jIChyZWFkX3BpZWNlZF92YWx1ZSk6IE1vdmUgdGhlIGJ1ZmZl ciBhbGxvY2F0aW9uIGFuZAorICAgICAgICAgICAgc29tZSBvdGhlciBwcmVwYXJhdGlvbnMgdG8g dGhlIHBsYWNlcyB3aGVyZSBzdWZmaWNpZW50IGluZm9ybWF0aW9uCisgICAgICAgICAgICBpcyBh dmFpbGFibGUuCisgICAgICAgICAgICAod3JpdGVfcGllY2VkX3ZhbHVlKTogTGlrZXdpc2UuCisK KyMjIyBhL2dkYi9DaGFuZ2VMb2cKKyMjIyBiL2dkYi9DaGFuZ2VMb2cKKyMjIC0xLDUgKzEsMTIg QEAKKyAyMDE3LTA2LTEzICBBbmRyZWFzIEFybmV6ICA8YXJuZXpAbGludXgudm5ldC5pYm0uY29t PgorIAorKwkqIGR3YXJmMmxvYy5jIChyZWFkX3BpZWNlZF92YWx1ZSk6IE1vdmUgdGhlIGJ1ZmZl ciBhbGxvY2F0aW9uIGFuZAorKwlzb21lIG90aGVyIHByZXBhcmF0aW9ucyB0byB0aGUgcGxhY2Vz IHdoZXJlIHN1ZmZpY2llbnQgaW5mb3JtYXRpb24KKysJaXMgYXZhaWxhYmxlLgorKwkod3JpdGVf cGllY2VkX3ZhbHVlKTogTGlrZXdpc2UuCisrCisrMjAxNy0wNi0xMyAgQW5kcmVhcyBBcm5leiAg PGFybmV6QGxpbnV4LnZuZXQuaWJtLmNvbT4KKysKKyAJKiBkd2FyZjJsb2MuYyAoYml0c190b19i eXRlcyk6IE5ldyBmdW5jdGlvbi4KKyAJKHJlYWRfcGllY2VkX3ZhbHVlKTogRml4IG9mZnNldCBj YWxjdWxhdGlvbnMgZm9yIHJlZ2lzdGVyIHBpZWNlcworIAlvbiBiaWctZW5kaWFuIHRhcmdldHMu CistLS0gYS9nZGIvZHdhcmYybG9jLmMKKysrKyBiL2dkYi9kd2FyZjJsb2MuYworQEAgLTE3OTQs OCArMTc5NCw3IEBAIHJlYWRfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnYpCisgICAgIHsK KyAgICAgICBzdHJ1Y3QgZHdhcmZfZXhwcl9waWVjZSAqcCA9ICZjLT5waWVjZXNbaV07CisgICAg ICAgc2l6ZV90IHRoaXNfc2l6ZSwgdGhpc19zaXplX2JpdHM7CistICAgICAgbG9uZyBkZXN0X29m ZnNldF9iaXRzLCBzb3VyY2Vfb2Zmc2V0X2JpdHMsIHNvdXJjZV9vZmZzZXQ7CistICAgICAgY29u c3QgZ2RiX2J5dGUgKmludGVybWVkaWF0ZV9idWZmZXI7CisrICAgICAgbG9uZyBkZXN0X29mZnNl dF9iaXRzLCBzb3VyY2Vfb2Zmc2V0X2JpdHM7CisgCisgICAgICAgLyogQ29tcHV0ZSBzaXplLCBz b3VyY2UsIGFuZCBkZXN0aW5hdGlvbiBvZmZzZXRzIGZvciBjb3B5aW5nLCBpbgorIAkgYml0cy4g ICovCitAQCAtMTgxMywxMSArMTgxMiw2IEBAIHJlYWRfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFs dWUgKnYpCisgICAgICAgaWYgKHRoaXNfc2l6ZV9iaXRzID4gbWF4X29mZnNldCAtIG9mZnNldCkK KyAJdGhpc19zaXplX2JpdHMgPSBtYXhfb2Zmc2V0IC0gb2Zmc2V0OworIAorLSAgICAgIHRoaXNf c2l6ZSA9IGJpdHNfdG9fYnl0ZXMgKHNvdXJjZV9vZmZzZXRfYml0cywgdGhpc19zaXplX2JpdHMp OworLSAgICAgIGJ1ZmZlci5yZXNlcnZlICh0aGlzX3NpemUpOworLSAgICAgIHNvdXJjZV9vZmZz ZXQgPSBzb3VyY2Vfb2Zmc2V0X2JpdHMgLyA4OworLSAgICAgIGludGVybWVkaWF0ZV9idWZmZXIg PSBidWZmZXIuZGF0YSAoKTsKKy0KKyAgICAgICAvKiBDb3B5IGZyb20gdGhlIHNvdXJjZSB0byBE RVNUX0JVRkZFUi4gICovCisgICAgICAgc3dpdGNoIChwLT5sb2NhdGlvbikKKyAJeworQEAgLTE4 NDMsMTMgKzE4MzcsMTEgQEAgcmVhZF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdikKKyAJ CQkJCSAgIHRoaXNfc2l6ZSwgYnVmZmVyLmRhdGEgKCksCisgCQkJCQkgICAmb3B0aW0sICZ1bmF2 YWlsKSkKKyAJICAgICAgeworLQkJLyogSnVzdCBzbyBnYXJiYWdlIGRvZXNuJ3QgZXZlciBzaGlu ZSB0aHJvdWdoLiAgKi8KKy0JCW1lbXNldCAoYnVmZmVyLmRhdGEgKCksIDAsIHRoaXNfc2l6ZSk7 CistCisgCQlpZiAob3B0aW0pCisgCQkgIG1hcmtfdmFsdWVfYml0c19vcHRpbWl6ZWRfb3V0ICh2 LCBvZmZzZXQsIHRoaXNfc2l6ZV9iaXRzKTsKKyAJCWlmICh1bmF2YWlsKQorIAkJICBtYXJrX3Zh bHVlX2JpdHNfdW5hdmFpbGFibGUgKHYsIG9mZnNldCwgdGhpc19zaXplX2JpdHMpOworKwkJYnJl YWs7CisgCSAgICAgIH0KKyAKKyAJICAgIGNvcHlfYml0d2lzZSAoY29udGVudHMsIGRlc3Rfb2Zm c2V0X2JpdHMsCitAQCAtMTg1OSwxMiArMTg1MSwxNSBAQCByZWFkX3BpZWNlZF92YWx1ZSAoc3Ry dWN0IHZhbHVlICp2KQorIAkgIGJyZWFrOworIAorIAljYXNlIERXQVJGX1ZBTFVFX01FTU9SWToK KysJICB0aGlzX3NpemUgPSBiaXRzX3RvX2J5dGVzIChzb3VyY2Vfb2Zmc2V0X2JpdHMsIHRoaXNf c2l6ZV9iaXRzKTsKKysJICBidWZmZXIucmVzZXJ2ZSAodGhpc19zaXplKTsKKysKKyAJICByZWFk X3ZhbHVlX21lbW9yeSAodiwgb2Zmc2V0LAorIAkJCSAgICAgcC0+di5tZW0uaW5fc3RhY2tfbWVt b3J5LAorLQkJCSAgICAgcC0+di5tZW0uYWRkciArIHNvdXJjZV9vZmZzZXQsCisrCQkJICAgICBw LT52Lm1lbS5hZGRyICsgc291cmNlX29mZnNldF9iaXRzIC8gOCwKKyAJCQkgICAgIGJ1ZmZlci5k YXRhICgpLCB0aGlzX3NpemUpOworIAkgIGNvcHlfYml0d2lzZSAoY29udGVudHMsIGRlc3Rfb2Zm c2V0X2JpdHMsCistCQkJaW50ZXJtZWRpYXRlX2J1ZmZlciwgc291cmNlX29mZnNldF9iaXRzICUg OCwKKysJCQlidWZmZXIuZGF0YSAoKSwgc291cmNlX29mZnNldF9iaXRzICUgOCwKKyAJCQl0aGlz X3NpemVfYml0cywgYml0c19iaWdfZW5kaWFuKTsKKyAJICBicmVhazsKKyAKK0BAIC0xODkyLDE4 ICsxODg3LDE4IEBAIHJlYWRfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnYpCisgCisgCWNh c2UgRFdBUkZfVkFMVUVfTElURVJBTDoKKyAJICB7CistCSAgICBzaXplX3QgbiA9IHRoaXNfc2l6 ZTsKKysJICAgIFVMT05HRVNUIGxpdGVyYWxfc2l6ZV9iaXRzID0gOCAqIHAtPnYubGl0ZXJhbC5s ZW5ndGg7CisrCSAgICBzaXplX3QgbiA9IHRoaXNfc2l6ZV9iaXRzOworIAorLQkgICAgaWYgKG4g PiBwLT52LmxpdGVyYWwubGVuZ3RoIC0gc291cmNlX29mZnNldCkKKy0JICAgICAgbiA9IChwLT52 LmxpdGVyYWwubGVuZ3RoID49IHNvdXJjZV9vZmZzZXQKKy0JCSAgID8gcC0+di5saXRlcmFsLmxl bmd0aCAtIHNvdXJjZV9vZmZzZXQKKy0JCSAgIDogMCk7CistCSAgICBpZiAobiAhPSAwKQorLQkg ICAgICBpbnRlcm1lZGlhdGVfYnVmZmVyID0gcC0+di5saXRlcmFsLmRhdGEgKyBzb3VyY2Vfb2Zm c2V0OworKwkgICAgLyogQ3V0IG9mZiBhdCB0aGUgZW5kIG9mIHRoZSBpbXBsaWNpdCB2YWx1ZS4g ICovCisrCSAgICBpZiAoc291cmNlX29mZnNldF9iaXRzID49IGxpdGVyYWxfc2l6ZV9iaXRzKQor KwkgICAgICBicmVhazsKKysJICAgIGlmIChuID4gbGl0ZXJhbF9zaXplX2JpdHMgLSBzb3VyY2Vf b2Zmc2V0X2JpdHMpCisrCSAgICAgIG4gPSBsaXRlcmFsX3NpemVfYml0cyAtIHNvdXJjZV9vZmZz ZXRfYml0czsKKyAKKyAJICAgIGNvcHlfYml0d2lzZSAoY29udGVudHMsIGRlc3Rfb2Zmc2V0X2Jp dHMsCistCQkJICBpbnRlcm1lZGlhdGVfYnVmZmVyLCBzb3VyY2Vfb2Zmc2V0X2JpdHMgJSA4LAor LQkJCSAgdGhpc19zaXplX2JpdHMsIGJpdHNfYmlnX2VuZGlhbik7CisrCQkJICBwLT52LmxpdGVy YWwuZGF0YSwgc291cmNlX29mZnNldF9iaXRzLAorKwkJCSAgbiwgYml0c19iaWdfZW5kaWFuKTsK KyAJICB9CisgCSAgYnJlYWs7CisgCitAQCAtMTk2MCw5ICsxOTU1LDcgQEAgd3JpdGVfcGllY2Vk X3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBzdHJ1Y3QgdmFsdWUgKmZyb20pCisgICAgIHsKKyAg ICAgICBzdHJ1Y3QgZHdhcmZfZXhwcl9waWVjZSAqcCA9ICZjLT5waWVjZXNbaV07CisgICAgICAg c2l6ZV90IHRoaXNfc2l6ZV9iaXRzLCB0aGlzX3NpemU7CistICAgICAgbG9uZyBkZXN0X29mZnNl dF9iaXRzLCBzb3VyY2Vfb2Zmc2V0X2JpdHMsIGRlc3Rfb2Zmc2V0LCBzb3VyY2Vfb2Zmc2V0Owor LSAgICAgIGludCBuZWVkX2JpdHdpc2U7CistICAgICAgY29uc3QgZ2RiX2J5dGUgKnNvdXJjZV9i dWZmZXI7CisrICAgICAgbG9uZyBkZXN0X29mZnNldF9iaXRzLCBzb3VyY2Vfb2Zmc2V0X2JpdHM7 CisgCisgICAgICAgdGhpc19zaXplX2JpdHMgPSBwLT5zaXplOworICAgICAgIGlmIChiaXRzX3Rv X3NraXAgPiAwICYmIGJpdHNfdG9fc2tpcCA+PSB0aGlzX3NpemVfYml0cykKK0BAIC0xOTc4LDI0 ICsxOTcxLDYgQEAgd3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBzdHJ1Y3Qg dmFsdWUgKmZyb20pCisgICAgICAgaWYgKHRoaXNfc2l6ZV9iaXRzID4gbWF4X29mZnNldCAtIG9m ZnNldCkKKyAJdGhpc19zaXplX2JpdHMgPSBtYXhfb2Zmc2V0IC0gb2Zmc2V0OworIAorLSAgICAg IHRoaXNfc2l6ZSA9IGJpdHNfdG9fYnl0ZXMgKGRlc3Rfb2Zmc2V0X2JpdHMsIHRoaXNfc2l6ZV9i aXRzKTsKKy0gICAgICBzb3VyY2Vfb2Zmc2V0ID0gc291cmNlX29mZnNldF9iaXRzIC8gODsKKy0g ICAgICBkZXN0X29mZnNldCA9IGRlc3Rfb2Zmc2V0X2JpdHMgLyA4OworLQorLSAgICAgIC8qIENo ZWNrIHdoZXRoZXIgdGhlIGRhdGEgY2FuIGJlIHRyYW5zZmVycmVkIGJ5dGUtd2lzZS4gICovCist ICAgICAgaWYgKGRlc3Rfb2Zmc2V0X2JpdHMgJSA4ID09IDAgJiYgc291cmNlX29mZnNldF9iaXRz ICUgOCA9PSAwCistCSAgJiYgdGhpc19zaXplX2JpdHMgJSA4ID09IDApCistCXsKKy0JICBzb3Vy Y2VfYnVmZmVyID0gY29udGVudHMgKyBzb3VyY2Vfb2Zmc2V0OworLQkgIG5lZWRfYml0d2lzZSA9 IDA7CistCX0KKy0gICAgICBlbHNlCistCXsKKy0JICBidWZmZXIucmVzZXJ2ZSAodGhpc19zaXpl KTsKKy0JICBzb3VyY2VfYnVmZmVyID0gYnVmZmVyLmRhdGEgKCk7CistCSAgbmVlZF9iaXR3aXNl ID0gMTsKKy0JfQorLQorICAgICAgIHN3aXRjaCAocC0+bG9jYXRpb24pCisgCXsKKyAJY2FzZSBE V0FSRl9WQUxVRV9SRUdJU1RFUjoKK0BAIC0yMDQ3LDIxICsyMDIyLDQ0IEBAIHdyaXRlX3BpZWNl ZF92YWx1ZSAoc3RydWN0IHZhbHVlICp0bywgc3RydWN0IHZhbHVlICpmcm9tKQorIAkgIH0KKyAJ ICBicmVhazsKKyAJY2FzZSBEV0FSRl9WQUxVRV9NRU1PUlk6CistCSAgaWYgKG5lZWRfYml0d2lz ZSkKKy0JICAgIHsKKy0JICAgICAgLyogT25seSB0aGUgZmlyc3QgYW5kIGxhc3QgYnl0ZXMgY2Fu IHBvc3NpYmx5IGhhdmUgYW55CistCQkgYml0cyByZXVzZWQuICAqLworLQkgICAgICByZWFkX21l bW9yeSAocC0+di5tZW0uYWRkciArIGRlc3Rfb2Zmc2V0LCBidWZmZXIuZGF0YSAoKSwgMSk7Cist CSAgICAgIHJlYWRfbWVtb3J5IChwLT52Lm1lbS5hZGRyICsgZGVzdF9vZmZzZXQgKyB0aGlzX3Np emUgLSAxLAorLQkJCSAgICZidWZmZXJbdGhpc19zaXplIC0gMV0sIDEpOworLQkgICAgICBjb3B5 X2JpdHdpc2UgKGJ1ZmZlci5kYXRhICgpLCBkZXN0X29mZnNldF9iaXRzICUgOCwKKy0JCQkgICAg Y29udGVudHMsIHNvdXJjZV9vZmZzZXRfYml0cywKKy0JCQkgICAgdGhpc19zaXplX2JpdHMsCist CQkJICAgIGJpdHNfYmlnX2VuZGlhbik7CistCSAgICB9CisrCSAgeworKwkgICAgQ09SRV9BRERS IHN0YXJ0X2FkZHIgPSBwLT52Lm1lbS5hZGRyICsgZGVzdF9vZmZzZXRfYml0cyAvIDg7CisrCisr CSAgICBpZiAoZGVzdF9vZmZzZXRfYml0cyAlIDggPT0gMCAmJiB0aGlzX3NpemVfYml0cyAlIDgg PT0gMAorKwkJJiYgc291cmNlX29mZnNldF9iaXRzICUgOCA9PSAwKQorKwkgICAgICB7CisrCQkv KiBFdmVyeXRoaW5nIGlzIGJ5dGUtYWxpZ25lZDsgbm8gYnVmZmVyIG5lZWRlZC4gICovCisrCQl3 cml0ZV9tZW1vcnkgKHN0YXJ0X2FkZHIsCisrCQkJICAgICAgY29udGVudHMgKyBzb3VyY2Vfb2Zm c2V0X2JpdHMgLyA4LAorKwkJCSAgICAgIHRoaXNfc2l6ZV9iaXRzIC8gOCk7CisrCQlicmVhazsK KysJICAgICAgfQorKworKwkgICAgdGhpc19zaXplID0gYml0c190b19ieXRlcyAoZGVzdF9vZmZz ZXRfYml0cywgdGhpc19zaXplX2JpdHMpOworKwkgICAgYnVmZmVyLnJlc2VydmUgKHRoaXNfc2l6 ZSk7CisgCistCSAgd3JpdGVfbWVtb3J5IChwLT52Lm1lbS5hZGRyICsgZGVzdF9vZmZzZXQsCist CQkJc291cmNlX2J1ZmZlciwgdGhpc19zaXplKTsKKysJICAgIGlmIChkZXN0X29mZnNldF9iaXRz ICUgOCAhPSAwIHx8IHRoaXNfc2l6ZV9iaXRzICUgOCAhPSAwKQorKwkgICAgICB7CisrCQlpZiAo dGhpc19zaXplIDw9IDgpCisrCQkgIHsKKysJCSAgICAvKiBQZXJmb3JtIGEgc2luZ2xlIHJlYWQg Zm9yIHNtYWxsIHNpemVzLiAgKi8KKysJCSAgICByZWFkX21lbW9yeSAoc3RhcnRfYWRkciwgYnVm ZmVyLmRhdGEgKCksIHRoaXNfc2l6ZSk7CisrCQkgIH0KKysJCWVsc2UKKysJCSAgeworKwkJICAg IC8qIE9ubHkgdGhlIGZpcnN0IGFuZCBsYXN0IGJ5dGVzIGNhbiBwb3NzaWJseSBoYXZlIGFueQor KwkJICAgICAgIGJpdHMgcmV1c2VkLiAgKi8KKysJCSAgICByZWFkX21lbW9yeSAoc3RhcnRfYWRk ciwgYnVmZmVyLmRhdGEgKCksIDEpOworKwkJICAgIHJlYWRfbWVtb3J5IChzdGFydF9hZGRyICsg dGhpc19zaXplIC0gMSwKKysJCQkJICZidWZmZXJbdGhpc19zaXplIC0gMV0sIDEpOworKwkJICB9 CisrCSAgICAgIH0KKysKKysJICAgIGNvcHlfYml0d2lzZSAoYnVmZmVyLmRhdGEgKCksIGRlc3Rf b2Zmc2V0X2JpdHMgJSA4LAorKwkJCSAgY29udGVudHMsIHNvdXJjZV9vZmZzZXRfYml0cywKKysJ CQkgIHRoaXNfc2l6ZV9iaXRzLCBiaXRzX2JpZ19lbmRpYW4pOworKwkgICAgd3JpdGVfbWVtb3J5 IChzdGFydF9hZGRyLCBidWZmZXIuZGF0YSAoKSwgdGhpc19zaXplKTsKKysJICB9CisgCSAgYnJl YWs7CisgCWRlZmF1bHQ6CisgCSAgbWFya192YWx1ZV9ieXRlc19vcHRpbWl6ZWRfb3V0ICh0bywg MCwgVFlQRV9MRU5HVEggKHZhbHVlX3R5cGUgKHRvKSkpOwoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6 MTQyMDMwNC1zMzkweC0yM29mMzUucGF0Y2ggYi9nZGItcmhiejE0MjAzMDQtczM5MHgtMjNvZjM1 LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQyNTM3MjkKLS0tIC9k ZXYvbnVsbAorKysgYi9nZGItcmhiejE0MjAzMDQtczM5MHgtMjNvZjM1LnBhdGNoCkBAIC0wLDAg KzEsMTY3IEBACitjb21taXQgNjVkODRiNzYxNjRkYzhlYzFhMWYwZjBlMGZkNDE2NjcwNjVmZmQ0 ZQorQXV0aG9yOiBBbmRyZWFzIEFybmV6IDxhcm5lekBsaW51eC52bmV0LmlibS5jb20+CitEYXRl OiAgIFR1ZSBKdW4gMTMgMTU6MjA6MzEgMjAxNyArMDIwMAorCisgICAgUmVzcGVjdCBwaWVjZSBv ZmZzZXQgZm9yIERXX09QX2JpdF9waWVjZQorICAgIAorICAgIFNvIGZhciBHREIgaWdub3JlcyB0 aGUgcGllY2Ugb2Zmc2V0IG9mIGFsbCBraW5kcyBvZiBEV0FSRiBiaXQKKyAgICBwaWVjZXMgKERX X09QX2JpdF9waWVjZSkgYW5kIHRyZWF0cyBzdWNoIHBpZWNlcyBhcyBpZiB0aGUgb2Zmc2V0IHdh cyB6ZXJvLgorICAgIAorICAgIFRoaXMgaXMgZml4ZWQsIGFuZCBhbiBhcHByb3ByaWF0ZSB0ZXN0 IGlzIGFkZGVkLgorICAgIAorICAgIGdkYi9DaGFuZ2VMb2c6CisgICAgCisgICAgICAgICAgICAq IGR3YXJmMmxvYy5jIChyZWFkX3BpZWNlZF92YWx1ZSk6IFJlc3BlY3QgdGhlIHBpZWNlIG9mZnNl dCwgYXMKKyAgICAgICAgICAgIGdpdmVuIGJ5IERXX09QX2JpdF9waWVjZS4KKyAgICAgICAgICAg ICh3cml0ZV9waWVjZWRfdmFsdWUpOiBMaWtld2lzZS4KKyAgICAKKyAgICAgIEFuZHJlYXMgQXJu ZXogIDxhcm5lekBsaW51eC52bmV0LmlibS5jb20+CisgICAgCisgICAgICAgICAgICAqIGdkYi5k d2FyZjIvdmFyLWFjY2Vzcy5leHA6IEFkZCB0ZXN0IGZvciBjb21wb3NpdGUgbG9jYXRpb24gd2l0 aAorICAgICAgICAgICAgbm9uemVybyBwaWVjZSBvZmZzZXRzLgorCisjIyMgYS9nZGIvQ2hhbmdl TG9nCisjIyMgYi9nZGIvQ2hhbmdlTG9nCisjIyAtMSw1ICsxLDExIEBACisgMjAxNy0wNi0xMyAg QW5kcmVhcyBBcm5leiAgPGFybmV6QGxpbnV4LnZuZXQuaWJtLmNvbT4KKyAKKysJKiBkd2FyZjJs b2MuYyAocmVhZF9waWVjZWRfdmFsdWUpOiBSZXNwZWN0IHRoZSBwaWVjZSBvZmZzZXQsIGFzCisr CWdpdmVuIGJ5IERXX09QX2JpdF9waWVjZS4KKysJKHdyaXRlX3BpZWNlZF92YWx1ZSk6IExpa2V3 aXNlLgorKworKzIwMTctMDYtMTMgIEFuZHJlYXMgQXJuZXogIDxhcm5lekBsaW51eC52bmV0Lmli bS5jb20+CisrCisgCSogZHdhcmYybG9jLmMgKHJlYWRfcGllY2VkX3ZhbHVlKTogTW92ZSB0aGUg YnVmZmVyIGFsbG9jYXRpb24gYW5kCisgCXNvbWUgb3RoZXIgcHJlcGFyYXRpb25zIHRvIHRoZSBw bGFjZXMgd2hlcmUgc3VmZmljaWVudCBpbmZvcm1hdGlvbgorIAlpcyBhdmFpbGFibGUuCistLS0g YS9nZGIvZHdhcmYybG9jLmMKKysrKyBiL2dkYi9kd2FyZjJsb2MuYworQEAgLTE4MjQsMTEgKzE4 MjQsMTQgQEAgcmVhZF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdikKKyAJICAgIGludCBv cHRpbSwgdW5hdmFpbDsKKyAKKyAJICAgIGlmIChnZGJhcmNoX2J5dGVfb3JkZXIgKGFyY2gpID09 IEJGRF9FTkRJQU5fQklHCistCQkmJiBwLT5zaXplIDwgcmVnX2JpdHMpCisrCQkmJiBwLT5vZmZz ZXQgKyBwLT5zaXplIDwgcmVnX2JpdHMpCisgCSAgICAgIHsKKyAJCS8qIEJpZy1lbmRpYW4sIGFu ZCB3ZSB3YW50IGxlc3MgdGhhbiBmdWxsIHNpemUuICAqLworLQkJc291cmNlX29mZnNldF9iaXRz ICs9IHJlZ19iaXRzIC0gcC0+c2l6ZTsKKysJCXNvdXJjZV9vZmZzZXRfYml0cyArPSByZWdfYml0 cyAtIChwLT5vZmZzZXQgKyBwLT5zaXplKTsKKyAJICAgICAgfQorKwkgICAgZWxzZQorKwkgICAg ICBzb3VyY2Vfb2Zmc2V0X2JpdHMgKz0gcC0+b2Zmc2V0OworKworIAkgICAgdGhpc19zaXplID0g Yml0c190b19ieXRlcyAoc291cmNlX29mZnNldF9iaXRzLCB0aGlzX3NpemVfYml0cyk7CisgCSAg ICBidWZmZXIucmVzZXJ2ZSAodGhpc19zaXplKTsKKyAKK0BAIC0xODUxLDYgKzE4NTQsNyBAQCBy ZWFkX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQorIAkgIGJyZWFrOworIAorIAljYXNl IERXQVJGX1ZBTFVFX01FTU9SWToKKysJICBzb3VyY2Vfb2Zmc2V0X2JpdHMgKz0gcC0+b2Zmc2V0 OworIAkgIHRoaXNfc2l6ZSA9IGJpdHNfdG9fYnl0ZXMgKHNvdXJjZV9vZmZzZXRfYml0cywgdGhp c19zaXplX2JpdHMpOworIAkgIGJ1ZmZlci5yZXNlcnZlICh0aGlzX3NpemUpOworIAorQEAgLTE4 NzEsMTIgKzE4NzUsMTUgQEAgcmVhZF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdikKKyAJ ICAgICAgPSA4ICogVFlQRV9MRU5HVEggKHZhbHVlX3R5cGUgKHAtPnYudmFsdWUpKTsKKyAKKyAJ ICAgIC8qIFVzZSB6ZXJvZXMgaWYgcGllY2UgcmVhY2hlcyBiZXlvbmQgc3RhY2sgdmFsdWUuICAq LworLQkgICAgaWYgKHAtPnNpemUgPiBzdGFja192YWx1ZV9zaXplX2JpdHMpCisrCSAgICBpZiAo cC0+b2Zmc2V0ICsgcC0+c2l6ZSA+IHN0YWNrX3ZhbHVlX3NpemVfYml0cykKKyAJICAgICAgYnJl YWs7CisgCisgCSAgICAvKiBQaWVjZSBpcyBhbmNob3JlZCBhdCBsZWFzdCBzaWduaWZpY2FudCBi aXQgZW5kLiAgKi8KKyAJICAgIGlmIChnZGJhcmNoX2J5dGVfb3JkZXIgKG9iamZpbGVfZ2RiYXJj aCkgPT0gQkZEX0VORElBTl9CSUcpCistCSAgICAgIHNvdXJjZV9vZmZzZXRfYml0cyArPSBzdGFj a192YWx1ZV9zaXplX2JpdHMgLSBwLT5zaXplOworKwkgICAgICBzb3VyY2Vfb2Zmc2V0X2JpdHMg Kz0gKHN0YWNrX3ZhbHVlX3NpemVfYml0cworKwkJCQkgICAgIC0gcC0+b2Zmc2V0IC0gcC0+c2l6 ZSk7CisrCSAgICBlbHNlCisrCSAgICAgIHNvdXJjZV9vZmZzZXRfYml0cyArPSBwLT5vZmZzZXQ7 CisgCisgCSAgICBjb3B5X2JpdHdpc2UgKGNvbnRlbnRzLCBkZXN0X29mZnNldF9iaXRzLAorIAkJ CSAgdmFsdWVfY29udGVudHNfYWxsIChwLT52LnZhbHVlKSwKK0BAIC0xODkxLDYgKzE4OTgsNyBA QCByZWFkX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQorIAkgICAgc2l6ZV90IG4gPSB0 aGlzX3NpemVfYml0czsKKyAKKyAJICAgIC8qIEN1dCBvZmYgYXQgdGhlIGVuZCBvZiB0aGUgaW1w bGljaXQgdmFsdWUuICAqLworKwkgICAgc291cmNlX29mZnNldF9iaXRzICs9IHAtPm9mZnNldDsK KyAJICAgIGlmIChzb3VyY2Vfb2Zmc2V0X2JpdHMgPj0gbGl0ZXJhbF9zaXplX2JpdHMpCisgCSAg ICAgIGJyZWFrOworIAkgICAgaWYgKG4gPiBsaXRlcmFsX3NpemVfYml0cyAtIHNvdXJjZV9vZmZz ZXRfYml0cykKK0BAIC0xOTgxLDExICsxOTg5LDE0IEBAIHdyaXRlX3BpZWNlZF92YWx1ZSAoc3Ry dWN0IHZhbHVlICp0bywgc3RydWN0IHZhbHVlICpmcm9tKQorIAkgICAgVUxPTkdFU1QgcmVnX2Jp dHMgPSA4ICogcmVnaXN0ZXJfc2l6ZSAoYXJjaCwgZ2RiX3JlZ251bSk7CisgCisgCSAgICBpZiAo Z2RiYXJjaF9ieXRlX29yZGVyIChhcmNoKSA9PSBCRkRfRU5ESUFOX0JJRworLQkJJiYgcC0+c2l6 ZSA8PSByZWdfYml0cykKKysJCSYmIHAtPm9mZnNldCArIHAtPnNpemUgPCByZWdfYml0cykKKyAJ ICAgICAgeworIAkJLyogQmlnLWVuZGlhbiwgYW5kIHdlIHdhbnQgbGVzcyB0aGFuIGZ1bGwgc2l6 ZS4gICovCistCQlkZXN0X29mZnNldF9iaXRzICs9IHJlZ19iaXRzIC0gcC0+c2l6ZTsKKysJCWRl c3Rfb2Zmc2V0X2JpdHMgKz0gcmVnX2JpdHMgLSAocC0+b2Zmc2V0ICsgcC0+c2l6ZSk7CisgCSAg ICAgIH0KKysJICAgIGVsc2UKKysJICAgICAgZGVzdF9vZmZzZXRfYml0cyArPSBwLT5vZmZzZXQ7 CisrCisgCSAgICB0aGlzX3NpemUgPSBiaXRzX3RvX2J5dGVzIChkZXN0X29mZnNldF9iaXRzLCB0 aGlzX3NpemVfYml0cyk7CisgCSAgICBidWZmZXIucmVzZXJ2ZSAodGhpc19zaXplKTsKKyAKK0BA IC0yMDIzLDYgKzIwMzQsOCBAQCB3cml0ZV9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdG8s IHN0cnVjdCB2YWx1ZSAqZnJvbSkKKyAJICBicmVhazsKKyAJY2FzZSBEV0FSRl9WQUxVRV9NRU1P Ulk6CisgCSAgeworKwkgICAgZGVzdF9vZmZzZXRfYml0cyArPSBwLT5vZmZzZXQ7CisrCisgCSAg ICBDT1JFX0FERFIgc3RhcnRfYWRkciA9IHAtPnYubWVtLmFkZHIgKyBkZXN0X29mZnNldF9iaXRz IC8gODsKKyAKKyAJICAgIGlmIChkZXN0X29mZnNldF9iaXRzICUgOCA9PSAwICYmIHRoaXNfc2l6 ZV9iaXRzICUgOCA9PSAwCistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvdmFyLWFjY2Vz cy5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi92YXItYWNjZXNzLmV4cAorQEAg LTIyOCw2ICsyMjgsMjQgQEAgRHdhcmY6OmFzc2VtYmxlICRhc21fZmlsZSB7CisgCQkJcGllY2Ug MQorIAkJICAgIH0gU1BFQ0lBTF9leHByfQorIAkJfQorKwkJIyBPbmUgcGllY2UgcGVyIGJpdGZp ZWxkLCB1c2luZyBwaWVjZSBvZmZzZXRzOiAzMiBiaXRzIG9mCisrCQkjIGFuIGltcGxpY2l0IHZh bHVlLCA5IGJpdHMgb2YgYSBzdGFjayB2YWx1ZSwgMTMgYml0cyBvZgorKwkJIyByMCwgYW5kIDEw IGJpdHMgb2YgYnVmLgorKwkJRFdfVEFHX3ZhcmlhYmxlIHsKKysJCSAgICB7bmFtZSAidDMifQor KwkJICAgIHt0eXBlIDokc3RydWN0X3RfbGFiZWx9CisrCQkgICAge2xvY2F0aW9uIHsKKysJCQlp bXBsaWNpdF92YWx1ZSAweDEyIDB4MzQgMHg1NiAweDc4IDB4OWEKKysJCQliaXRfcGllY2UgMzIg NAorKwkJCWNvbnN0MnMgLTI4MAorKwkJCXN0YWNrX3ZhbHVlCisrCQkJYml0X3BpZWNlIDkgMgor KwkJCXJlZ3ggW2xpbmRleCAkZHdhcmZfcmVnbnVtIDBdCisrCQkJYml0X3BpZWNlIDEzIDE0Cisr CQkJYWRkciAkYnVmX3ZhcgorKwkJCWJpdF9waWVjZSAxMCA0MgorKwkJICAgIH0gU1BFQ0lBTF9l eHByfQorKwkJfQorIAkgICAgfQorIAl9CisgICAgIH0KK0BAIC0zMDQsMyArMzIyLDI0IEBAIGdk Yl90ZXN0X25vX291dHB1dCAic2V0IHZhciB0Mi55ID0gMjY0MSIKKyBnZGJfdGVzdF9ub19vdXRw dXQgInNldCB2YXIgdDIueiA9IC00MDAiCisgZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgdmFyIHQy LnggPSAyMDAiCisgZ2RiX3Rlc3QgInByaW50IHQyLnggKyB0Mi55ICsgdDIueiIgIiA9IDI0NDEi CisrCisrIyBCaXRmaWVsZCBhY2Nlc3MgdGhyb3VnaCBwaWVjZXMgd2l0aCBub256ZXJvIHBpZWNl IG9mZnNldHMuCisrZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgdmFyIFwkW2xpbmRleCAkcmVnbmFt ZSAwXSA9IDB4YTgwMDAiIFwKKysgICAgImluaXQgcmVnIGZvciB0My55IgorK2dkYl90ZXN0X25v X291dHB1dCAic2V0IHZhciAqKGNoYXIgXFsyXF0gKikgKGEgKyA1KSA9IHsgNzAsIDgyIH0iIFwK KysgICAgImluaXQgbWVtIGZvciB0My56IgorK3N3aXRjaCAkZW5kaWFuIHsKKysgICAgbGl0dGxl IHtzZXQgdmFsICJ1ID0gLTE0ODQ0MzA1MjcsIHggPSAtNzAsIHkgPSA0MiwgeiA9IDE0NSJ9Cisr ICAgIGJpZyB7c2V0IHZhbCAidSA9IDU5MTc1MTA0OSwgeCA9IC03MCwgeSA9IDQyLCB6ID0gMTAx In0KKyt9CisrZ2RiX3Rlc3QgInByaW50IHQzIiAiID0gXFx7JHZhbFxcfSIgXAorKyAgICAiaW5p dGlhbGl6ZWQgdDMgZnJvbSByZWcgYW5kIG1lbSIKKytnZGJfdGVzdF9ub19vdXRwdXQgInNldCB2 YXIgdDMueSA9IC0xIiBcCisrICAgICJvdmVyd3JpdGUgdDMueSIKKytnZGJfdGVzdCAicHJpbnQv eCBcJFtsaW5kZXggJHJlZ25hbWUgMF0iICIgPSAweDdmZmMwMDAiIFwKKysgICAgInZlcmlmeSB0 My55IHRocm91Z2ggcmVnIgorK2dkYl90ZXN0X25vX291dHB1dCAic2V0IHZhciB0My56ID0gLTYx NCIgXAorKyAgICAib3ZlcndyaXRlIHQzLnoiCisrc3dpdGNoICRlbmRpYW4ge2JpZyB7c2V0IHZh bCAiMHg1OSwgMHhhMiJ9IGxpdHRsZSB7c2V0IHZhbCAiMHg2YSwgMHg1NiJ9fQorK2dkYl90ZXN0 ICJwcmludC94ICooY2hhciBcWzJcXSAqKSAoYSArIDUpIiAiID0gXFx7JHZhbFxcfSIgXAorKyAg ICAidmVyaWZ5IHQzLnogdGhyb3VnaCBtZW0iCgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYnoxNDIwMzA0 LXMzOTB4LTI0b2YzNS5wYXRjaCBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0yNG9mMzUucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGJmMzRmOQotLS0gL2Rldi9udWxs CisrKyBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0yNG9mMzUucGF0Y2gKQEAgLTAsMCArMSwyOTAg QEAKK2NvbW1pdCBmMjM2NTMzZTNjNmEyNjkzYmVhODc5YjJhNGQyNGQxMjI5ODY0YWM5CitBdXRo b3I6IEFuZHJlYXMgQXJuZXogPGFybmV6QGxpbnV4LnZuZXQuaWJtLmNvbT4KK0RhdGU6ICAgVHVl IEp1biAxMyAxNToyMDozMSAyMDE3ICswMjAwCisKKyAgICByZWFkL3dyaXRlX3BpZWNlZF92YWx1 ZTogUmVtb3ZlIHVubmVjZXNzYXJ5IHZhcmlhYmxlIGNvcGllcworICAgIAorICAgIEluIHJlYWRf cGllY2VkX3ZhbHVlJ3MgbWFpbiBsb29wLCB0aGUgdmFyaWFibGVzIGBkZXN0X29mZnNldF9iaXRz JyBhbmQKKyAgICBgc291cmNlX29mZnNldF9iaXRzJyBhcmUgYmFzaWNhbGx5IGp1c3QgY29waWVz IG9mIGBvZmZzZXQnIGFuZAorICAgIGBiaXRzX3RvX3NraXAnLCByZXNwZWN0aXZlbHkuICBJbiB3 cml0ZV9waWVjZWRfdmFsdWUgdGhlIGNvcGllcyBhcmUKKyAgICByZXZlcnNlZC4gIFRoaXMgaXMg bm90IHZlcnkgaGVscGZ1bCB3aGVuIHRyeWluZyB0byBrZWVwIHRoZSBsb2dpYyBiZXR3ZWVuCisg ICAgdGhlc2UgZnVuY3Rpb25zIGluIHN5bmMuICBTaW5jZSB0aGUgY29waWVzIGFyZSB1bm5lY2Vz c2FyeSwgdGhpcyBwYXRjaAorICAgIGp1c3QgcmVtb3ZlcyB0aGVtLgorICAgIAorICAgIGdkYi9D aGFuZ2VMb2c6CisgICAgCisgICAgICAgICAgICAqIGR3YXJmMmxvYy5jIChyZWFkX3BpZWNlZF92 YWx1ZSk6IFJlbW92ZSB1bm5lY2Vzc2FyeSB2YXJpYWJsZXMKKyAgICAgICAgICAgIGRlc3Rfb2Zm c2V0X2JpdHMgYW5kIHNvdXJjZV9vZmZzZXRfYml0cy4KKyAgICAgICAgICAgICh3cml0ZV9waWVj ZWRfdmFsdWUpOiBMaWtld2lzZS4KKworIyMjIGEvZ2RiL0NoYW5nZUxvZworIyMjIGIvZ2RiL0No YW5nZUxvZworIyMgLTEsNSArMSwxMSBAQAorIDIwMTctMDYtMTMgIEFuZHJlYXMgQXJuZXogIDxh cm5lekBsaW51eC52bmV0LmlibS5jb20+CisgCisrCSogZHdhcmYybG9jLmMgKHJlYWRfcGllY2Vk X3ZhbHVlKTogUmVtb3ZlIHVubmVjZXNzYXJ5IHZhcmlhYmxlcworKwlkZXN0X29mZnNldF9iaXRz IGFuZCBzb3VyY2Vfb2Zmc2V0X2JpdHMuCisrCSh3cml0ZV9waWVjZWRfdmFsdWUpOiBMaWtld2lz ZS4KKysKKysyMDE3LTA2LTEzICBBbmRyZWFzIEFybmV6ICA8YXJuZXpAbGludXgudm5ldC5pYm0u Y29tPgorKworIAkqIGR3YXJmMmxvYy5jIChyZWFkX3BpZWNlZF92YWx1ZSk6IFJlc3BlY3QgdGhl IHBpZWNlIG9mZnNldCwgYXMKKyAJZ2l2ZW4gYnkgRFdfT1BfYml0X3BpZWNlLgorIAkod3JpdGVf cGllY2VkX3ZhbHVlKTogTGlrZXdpc2UuCistLS0gYS9nZGIvZHdhcmYybG9jLmMKKysrKyBiL2dk Yi9kd2FyZjJsb2MuYworQEAgLTE3OTAsMjUgKzE3OTAsMTYgQEAgcmVhZF9waWVjZWRfdmFsdWUg KHN0cnVjdCB2YWx1ZSAqdikKKyAgIGVsc2UKKyAgICAgbWF4X29mZnNldCA9IDggKiBUWVBFX0xF TkdUSCAodmFsdWVfdHlwZSAodikpOworIAorLSAgZm9yIChpID0gMDsgaSA8IGMtPm5fcGllY2Vz ICYmIG9mZnNldCA8IG1heF9vZmZzZXQ7IGkrKykKKysgIC8qIEFkdmFuY2UgdG8gdGhlIGZpcnN0 IG5vbi1za2lwcGVkIHBpZWNlLiAgKi8KKysgIGZvciAoaSA9IDA7IGkgPCBjLT5uX3BpZWNlcyAm JiBiaXRzX3RvX3NraXAgPj0gYy0+cGllY2VzW2ldLnNpemU7IGkrKykKKysgICAgYml0c190b19z a2lwIC09IGMtPnBpZWNlc1tpXS5zaXplOworKworKyAgZm9yICg7IGkgPCBjLT5uX3BpZWNlcyAm JiBvZmZzZXQgPCBtYXhfb2Zmc2V0OyBpKyspCisgICAgIHsKKyAgICAgICBzdHJ1Y3QgZHdhcmZf ZXhwcl9waWVjZSAqcCA9ICZjLT5waWVjZXNbaV07CisgICAgICAgc2l6ZV90IHRoaXNfc2l6ZSwg dGhpc19zaXplX2JpdHM7CistICAgICAgbG9uZyBkZXN0X29mZnNldF9iaXRzLCBzb3VyY2Vfb2Zm c2V0X2JpdHM7CistCistICAgICAgLyogQ29tcHV0ZSBzaXplLCBzb3VyY2UsIGFuZCBkZXN0aW5h dGlvbiBvZmZzZXRzIGZvciBjb3B5aW5nLCBpbgorLQkgYml0cy4gICovCistICAgICAgdGhpc19z aXplX2JpdHMgPSBwLT5zaXplOworLSAgICAgIGlmIChiaXRzX3RvX3NraXAgPiAwICYmIGJpdHNf dG9fc2tpcCA+PSB0aGlzX3NpemVfYml0cykKKy0JeworLQkgIGJpdHNfdG9fc2tpcCAtPSB0aGlz X3NpemVfYml0czsKKy0JICBjb250aW51ZTsKKy0JfQorLSAgICAgIHNvdXJjZV9vZmZzZXRfYml0 cyA9IGJpdHNfdG9fc2tpcDsKKy0gICAgICB0aGlzX3NpemVfYml0cyAtPSBiaXRzX3RvX3NraXA7 CistICAgICAgYml0c190b19za2lwID0gMDsKKy0gICAgICBkZXN0X29mZnNldF9iaXRzID0gb2Zm c2V0OworIAorKyAgICAgIHRoaXNfc2l6ZV9iaXRzID0gcC0+c2l6ZSAtIGJpdHNfdG9fc2tpcDsK KyAgICAgICBpZiAodGhpc19zaXplX2JpdHMgPiBtYXhfb2Zmc2V0IC0gb2Zmc2V0KQorIAl0aGlz X3NpemVfYml0cyA9IG1heF9vZmZzZXQgLSBvZmZzZXQ7CisgCitAQCAtMTgyNywxNiArMTgxOCwx NiBAQCByZWFkX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQorIAkJJiYgcC0+b2Zmc2V0 ICsgcC0+c2l6ZSA8IHJlZ19iaXRzKQorIAkgICAgICB7CisgCQkvKiBCaWctZW5kaWFuLCBhbmQg d2Ugd2FudCBsZXNzIHRoYW4gZnVsbCBzaXplLiAgKi8KKy0JCXNvdXJjZV9vZmZzZXRfYml0cyAr PSByZWdfYml0cyAtIChwLT5vZmZzZXQgKyBwLT5zaXplKTsKKysJCWJpdHNfdG9fc2tpcCArPSBy ZWdfYml0cyAtIChwLT5vZmZzZXQgKyBwLT5zaXplKTsKKyAJICAgICAgfQorIAkgICAgZWxzZQor LQkgICAgICBzb3VyY2Vfb2Zmc2V0X2JpdHMgKz0gcC0+b2Zmc2V0OworKwkgICAgICBiaXRzX3Rv X3NraXAgKz0gcC0+b2Zmc2V0OworIAorLQkgICAgdGhpc19zaXplID0gYml0c190b19ieXRlcyAo c291cmNlX29mZnNldF9iaXRzLCB0aGlzX3NpemVfYml0cyk7CisrCSAgICB0aGlzX3NpemUgPSBi aXRzX3RvX2J5dGVzIChiaXRzX3RvX3NraXAsIHRoaXNfc2l6ZV9iaXRzKTsKKyAJICAgIGJ1ZmZl ci5yZXNlcnZlICh0aGlzX3NpemUpOworIAorIAkgICAgaWYgKCFnZXRfZnJhbWVfcmVnaXN0ZXJf Ynl0ZXMgKGZyYW1lLCBnZGJfcmVnbnVtLAorLQkJCQkJICAgc291cmNlX29mZnNldF9iaXRzIC8g OCwKKysJCQkJCSAgIGJpdHNfdG9fc2tpcCAvIDgsCisgCQkJCQkgICB0aGlzX3NpemUsIGJ1ZmZl ci5kYXRhICgpLAorIAkJCQkJICAgJm9wdGltLCAmdW5hdmFpbCkpCisgCSAgICAgIHsKK0BAIC0x ODQ2LDI0ICsxODM3LDIzIEBAIHJlYWRfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnYpCisg CQkgIG1hcmtfdmFsdWVfYml0c191bmF2YWlsYWJsZSAodiwgb2Zmc2V0LCB0aGlzX3NpemVfYml0 cyk7CisgCQlicmVhazsKKyAJICAgICAgfQorLQorLQkgICAgY29weV9iaXR3aXNlIChjb250ZW50 cywgZGVzdF9vZmZzZXRfYml0cywKKy0JCQkgIGJ1ZmZlci5kYXRhICgpLCBzb3VyY2Vfb2Zmc2V0 X2JpdHMgJSA4LAorKwkgICAgY29weV9iaXR3aXNlIChjb250ZW50cywgb2Zmc2V0LAorKwkJCSAg YnVmZmVyLmRhdGEgKCksIGJpdHNfdG9fc2tpcCAlIDgsCisgCQkJICB0aGlzX3NpemVfYml0cywg Yml0c19iaWdfZW5kaWFuKTsKKyAJICB9CisgCSAgYnJlYWs7CisgCisgCWNhc2UgRFdBUkZfVkFM VUVfTUVNT1JZOgorLQkgIHNvdXJjZV9vZmZzZXRfYml0cyArPSBwLT5vZmZzZXQ7CistCSAgdGhp c19zaXplID0gYml0c190b19ieXRlcyAoc291cmNlX29mZnNldF9iaXRzLCB0aGlzX3NpemVfYml0 cyk7CisrCSAgYml0c190b19za2lwICs9IHAtPm9mZnNldDsKKysJICB0aGlzX3NpemUgPSBiaXRz X3RvX2J5dGVzIChiaXRzX3RvX3NraXAsIHRoaXNfc2l6ZV9iaXRzKTsKKyAJICBidWZmZXIucmVz ZXJ2ZSAodGhpc19zaXplKTsKKyAKKyAJICByZWFkX3ZhbHVlX21lbW9yeSAodiwgb2Zmc2V0LAor IAkJCSAgICAgcC0+di5tZW0uaW5fc3RhY2tfbWVtb3J5LAorLQkJCSAgICAgcC0+di5tZW0uYWRk ciArIHNvdXJjZV9vZmZzZXRfYml0cyAvIDgsCisrCQkJICAgICBwLT52Lm1lbS5hZGRyICsgYml0 c190b19za2lwIC8gOCwKKyAJCQkgICAgIGJ1ZmZlci5kYXRhICgpLCB0aGlzX3NpemUpOworLQkg IGNvcHlfYml0d2lzZSAoY29udGVudHMsIGRlc3Rfb2Zmc2V0X2JpdHMsCistCQkJYnVmZmVyLmRh dGEgKCksIHNvdXJjZV9vZmZzZXRfYml0cyAlIDgsCisrCSAgY29weV9iaXR3aXNlIChjb250ZW50 cywgb2Zmc2V0LAorKwkJCWJ1ZmZlci5kYXRhICgpLCBiaXRzX3RvX3NraXAgJSA4LAorIAkJCXRo aXNfc2l6ZV9iaXRzLCBiaXRzX2JpZ19lbmRpYW4pOworIAkgIGJyZWFrOworIAorQEAgLTE4ODAs MTQgKzE4NzAsMTMgQEAgcmVhZF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdikKKyAKKyAJ ICAgIC8qIFBpZWNlIGlzIGFuY2hvcmVkIGF0IGxlYXN0IHNpZ25pZmljYW50IGJpdCBlbmQuICAq LworIAkgICAgaWYgKGdkYmFyY2hfYnl0ZV9vcmRlciAob2JqZmlsZV9nZGJhcmNoKSA9PSBCRkRf RU5ESUFOX0JJRykKKy0JICAgICAgc291cmNlX29mZnNldF9iaXRzICs9IChzdGFja192YWx1ZV9z aXplX2JpdHMKKy0JCQkJICAgICAtIHAtPm9mZnNldCAtIHAtPnNpemUpOworKwkgICAgICBiaXRz X3RvX3NraXAgKz0gc3RhY2tfdmFsdWVfc2l6ZV9iaXRzIC0gcC0+b2Zmc2V0IC0gcC0+c2l6ZTsK KyAJICAgIGVsc2UKKy0JICAgICAgc291cmNlX29mZnNldF9iaXRzICs9IHAtPm9mZnNldDsKKysJ ICAgICAgYml0c190b19za2lwICs9IHAtPm9mZnNldDsKKyAKKy0JICAgIGNvcHlfYml0d2lzZSAo Y29udGVudHMsIGRlc3Rfb2Zmc2V0X2JpdHMsCisrCSAgICBjb3B5X2JpdHdpc2UgKGNvbnRlbnRz LCBvZmZzZXQsCisgCQkJICB2YWx1ZV9jb250ZW50c19hbGwgKHAtPnYudmFsdWUpLAorLQkJCSAg c291cmNlX29mZnNldF9iaXRzLAorKwkJCSAgYml0c190b19za2lwLAorIAkJCSAgdGhpc19zaXpl X2JpdHMsIGJpdHNfYmlnX2VuZGlhbik7CisgCSAgfQorIAkgIGJyZWFrOworQEAgLTE4OTgsMTQg KzE4ODcsMTQgQEAgcmVhZF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdikKKyAJICAgIHNp emVfdCBuID0gdGhpc19zaXplX2JpdHM7CisgCisgCSAgICAvKiBDdXQgb2ZmIGF0IHRoZSBlbmQg b2YgdGhlIGltcGxpY2l0IHZhbHVlLiAgKi8KKy0JICAgIHNvdXJjZV9vZmZzZXRfYml0cyArPSBw LT5vZmZzZXQ7CistCSAgICBpZiAoc291cmNlX29mZnNldF9iaXRzID49IGxpdGVyYWxfc2l6ZV9i aXRzKQorKwkgICAgYml0c190b19za2lwICs9IHAtPm9mZnNldDsKKysJICAgIGlmIChiaXRzX3Rv X3NraXAgPj0gbGl0ZXJhbF9zaXplX2JpdHMpCisgCSAgICAgIGJyZWFrOworLQkgICAgaWYgKG4g PiBsaXRlcmFsX3NpemVfYml0cyAtIHNvdXJjZV9vZmZzZXRfYml0cykKKy0JICAgICAgbiA9IGxp dGVyYWxfc2l6ZV9iaXRzIC0gc291cmNlX29mZnNldF9iaXRzOworKwkgICAgaWYgKG4gPiBsaXRl cmFsX3NpemVfYml0cyAtIGJpdHNfdG9fc2tpcCkKKysJICAgICAgbiA9IGxpdGVyYWxfc2l6ZV9i aXRzIC0gYml0c190b19za2lwOworIAorLQkgICAgY29weV9iaXR3aXNlIChjb250ZW50cywgZGVz dF9vZmZzZXRfYml0cywKKy0JCQkgIHAtPnYubGl0ZXJhbC5kYXRhLCBzb3VyY2Vfb2Zmc2V0X2Jp dHMsCisrCSAgICBjb3B5X2JpdHdpc2UgKGNvbnRlbnRzLCBvZmZzZXQsCisrCQkJICBwLT52Lmxp dGVyYWwuZGF0YSwgYml0c190b19za2lwLAorIAkJCSAgbiwgYml0c19iaWdfZW5kaWFuKTsKKyAJ ICB9CisgCSAgYnJlYWs7CitAQCAtMTkyNCw2ICsxOTEzLDcgQEAgcmVhZF9waWVjZWRfdmFsdWUg KHN0cnVjdCB2YWx1ZSAqdikKKyAJfQorIAorICAgICAgIG9mZnNldCArPSB0aGlzX3NpemVfYml0 czsKKysgICAgICBiaXRzX3RvX3NraXAgPSAwOworICAgICB9CisgfQorIAorQEAgLTE5NTksMjMg KzE5NDksMTYgQEAgd3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBzdHJ1Y3Qg dmFsdWUgKmZyb20pCisgICBlbHNlCisgICAgIG1heF9vZmZzZXQgPSA4ICogVFlQRV9MRU5HVEgg KHZhbHVlX3R5cGUgKHRvKSk7CisgCistICBmb3IgKGkgPSAwOyBpIDwgYy0+bl9waWVjZXMgJiYg b2Zmc2V0IDwgbWF4X29mZnNldDsgaSsrKQorKyAgLyogQWR2YW5jZSB0byB0aGUgZmlyc3Qgbm9u LXNraXBwZWQgcGllY2UuICAqLworKyAgZm9yIChpID0gMDsgaSA8IGMtPm5fcGllY2VzICYmIGJp dHNfdG9fc2tpcCA+PSBjLT5waWVjZXNbaV0uc2l6ZTsgaSsrKQorKyAgICBiaXRzX3RvX3NraXAg LT0gYy0+cGllY2VzW2ldLnNpemU7CisrCisrICBmb3IgKDsgaSA8IGMtPm5fcGllY2VzICYmIG9m ZnNldCA8IG1heF9vZmZzZXQ7IGkrKykKKyAgICAgeworICAgICAgIHN0cnVjdCBkd2FyZl9leHBy X3BpZWNlICpwID0gJmMtPnBpZWNlc1tpXTsKKyAgICAgICBzaXplX3QgdGhpc19zaXplX2JpdHMs IHRoaXNfc2l6ZTsKKy0gICAgICBsb25nIGRlc3Rfb2Zmc2V0X2JpdHMsIHNvdXJjZV9vZmZzZXRf Yml0czsKKy0KKy0gICAgICB0aGlzX3NpemVfYml0cyA9IHAtPnNpemU7CistICAgICAgaWYgKGJp dHNfdG9fc2tpcCA+IDAgJiYgYml0c190b19za2lwID49IHRoaXNfc2l6ZV9iaXRzKQorLQl7Cist CSAgYml0c190b19za2lwIC09IHRoaXNfc2l6ZV9iaXRzOworLQkgIGNvbnRpbnVlOworLQl9Cist ICAgICAgZGVzdF9vZmZzZXRfYml0cyA9IGJpdHNfdG9fc2tpcDsKKy0gICAgICB0aGlzX3NpemVf Yml0cyAtPSBiaXRzX3RvX3NraXA7CistICAgICAgYml0c190b19za2lwID0gMDsKKy0gICAgICBz b3VyY2Vfb2Zmc2V0X2JpdHMgPSBvZmZzZXQ7CisgCisrICAgICAgdGhpc19zaXplX2JpdHMgPSBw LT5zaXplIC0gYml0c190b19za2lwOworICAgICAgIGlmICh0aGlzX3NpemVfYml0cyA+IG1heF9v ZmZzZXQgLSBvZmZzZXQpCisgCXRoaXNfc2l6ZV9iaXRzID0gbWF4X29mZnNldCAtIG9mZnNldDsK KyAKK0BAIC0xOTkyLDIyICsxOTc1LDIyIEBAIHdyaXRlX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZh bHVlICp0bywgc3RydWN0IHZhbHVlICpmcm9tKQorIAkJJiYgcC0+b2Zmc2V0ICsgcC0+c2l6ZSA8 IHJlZ19iaXRzKQorIAkgICAgICB7CisgCQkvKiBCaWctZW5kaWFuLCBhbmQgd2Ugd2FudCBsZXNz IHRoYW4gZnVsbCBzaXplLiAgKi8KKy0JCWRlc3Rfb2Zmc2V0X2JpdHMgKz0gcmVnX2JpdHMgLSAo cC0+b2Zmc2V0ICsgcC0+c2l6ZSk7CisrCQliaXRzX3RvX3NraXAgKz0gcmVnX2JpdHMgLSAocC0+ b2Zmc2V0ICsgcC0+c2l6ZSk7CisgCSAgICAgIH0KKyAJICAgIGVsc2UKKy0JICAgICAgZGVzdF9v ZmZzZXRfYml0cyArPSBwLT5vZmZzZXQ7CisrCSAgICAgIGJpdHNfdG9fc2tpcCArPSBwLT5vZmZz ZXQ7CisgCistCSAgICB0aGlzX3NpemUgPSBiaXRzX3RvX2J5dGVzIChkZXN0X29mZnNldF9iaXRz LCB0aGlzX3NpemVfYml0cyk7CisrCSAgICB0aGlzX3NpemUgPSBiaXRzX3RvX2J5dGVzIChiaXRz X3RvX3NraXAsIHRoaXNfc2l6ZV9iaXRzKTsKKyAJICAgIGJ1ZmZlci5yZXNlcnZlICh0aGlzX3Np emUpOworIAorLQkgICAgaWYgKGRlc3Rfb2Zmc2V0X2JpdHMgJSA4ICE9IDAgfHwgdGhpc19zaXpl X2JpdHMgJSA4ICE9IDApCisrCSAgICBpZiAoYml0c190b19za2lwICUgOCAhPSAwIHx8IHRoaXNf c2l6ZV9iaXRzICUgOCAhPSAwKQorIAkgICAgICB7CisgCQkvKiBEYXRhIGlzIGNvcGllZCBub24t Ynl0ZS1hbGlnbmVkIGludG8gdGhlIHJlZ2lzdGVyLgorIAkJICAgTmVlZCBzb21lIGJpdHMgZnJv bSBvcmlnaW5hbCByZWdpc3RlciB2YWx1ZS4gICovCisgCQlpbnQgb3B0aW0sIHVuYXZhaWw7Cisg CisgCQlpZiAoIWdldF9mcmFtZV9yZWdpc3Rlcl9ieXRlcyAoZnJhbWUsIGdkYl9yZWdudW0sCist CQkJCQkgICAgICAgZGVzdF9vZmZzZXRfYml0cyAvIDgsCisrCQkJCQkgICAgICAgYml0c190b19z a2lwIC8gOCwKKyAJCQkJCSAgICAgICB0aGlzX3NpemUsIGJ1ZmZlci5kYXRhICgpLAorIAkJCQkJ ICAgICAgICZvcHRpbSwgJnVuYXZhaWwpKQorIAkJICB7CitAQCAtMjAyNCwzNCArMjAwNywzNCBA QCB3cml0ZV9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdG8sIHN0cnVjdCB2YWx1ZSAqZnJv bSkKKyAJCSAgfQorIAkgICAgICB9CisgCistCSAgICBjb3B5X2JpdHdpc2UgKGJ1ZmZlci5kYXRh ICgpLCBkZXN0X29mZnNldF9iaXRzICUgOCwKKy0JCQkgIGNvbnRlbnRzLCBzb3VyY2Vfb2Zmc2V0 X2JpdHMsCisrCSAgICBjb3B5X2JpdHdpc2UgKGJ1ZmZlci5kYXRhICgpLCBiaXRzX3RvX3NraXAg JSA4LAorKwkJCSAgY29udGVudHMsIG9mZnNldCwKKyAJCQkgIHRoaXNfc2l6ZV9iaXRzLCBiaXRz X2JpZ19lbmRpYW4pOworIAkgICAgcHV0X2ZyYW1lX3JlZ2lzdGVyX2J5dGVzIChmcmFtZSwgZ2Ri X3JlZ251bSwKKy0JCQkJICAgICAgZGVzdF9vZmZzZXRfYml0cyAvIDgsCisrCQkJCSAgICAgIGJp dHNfdG9fc2tpcCAvIDgsCisgCQkJCSAgICAgIHRoaXNfc2l6ZSwgYnVmZmVyLmRhdGEgKCkpOwor IAkgIH0KKyAJICBicmVhazsKKyAJY2FzZSBEV0FSRl9WQUxVRV9NRU1PUlk6CisgCSAgeworLQkg ICAgZGVzdF9vZmZzZXRfYml0cyArPSBwLT5vZmZzZXQ7CisrCSAgICBiaXRzX3RvX3NraXAgKz0g cC0+b2Zmc2V0OworIAorLQkgICAgQ09SRV9BRERSIHN0YXJ0X2FkZHIgPSBwLT52Lm1lbS5hZGRy ICsgZGVzdF9vZmZzZXRfYml0cyAvIDg7CisrCSAgICBDT1JFX0FERFIgc3RhcnRfYWRkciA9IHAt PnYubWVtLmFkZHIgKyBiaXRzX3RvX3NraXAgLyA4OworIAorLQkgICAgaWYgKGRlc3Rfb2Zmc2V0 X2JpdHMgJSA4ID09IDAgJiYgdGhpc19zaXplX2JpdHMgJSA4ID09IDAKKy0JCSYmIHNvdXJjZV9v ZmZzZXRfYml0cyAlIDggPT0gMCkKKysJICAgIGlmIChiaXRzX3RvX3NraXAgJSA4ID09IDAgJiYg dGhpc19zaXplX2JpdHMgJSA4ID09IDAKKysJCSYmIG9mZnNldCAlIDggPT0gMCkKKyAJICAgICAg eworIAkJLyogRXZlcnl0aGluZyBpcyBieXRlLWFsaWduZWQ7IG5vIGJ1ZmZlciBuZWVkZWQuICAq LworIAkJd3JpdGVfbWVtb3J5IChzdGFydF9hZGRyLAorLQkJCSAgICAgIGNvbnRlbnRzICsgc291 cmNlX29mZnNldF9iaXRzIC8gOCwKKysJCQkgICAgICBjb250ZW50cyArIG9mZnNldCAvIDgsCisg CQkJICAgICAgdGhpc19zaXplX2JpdHMgLyA4KTsKKyAJCWJyZWFrOworIAkgICAgICB9CisgCist CSAgICB0aGlzX3NpemUgPSBiaXRzX3RvX2J5dGVzIChkZXN0X29mZnNldF9iaXRzLCB0aGlzX3Np emVfYml0cyk7CisrCSAgICB0aGlzX3NpemUgPSBiaXRzX3RvX2J5dGVzIChiaXRzX3RvX3NraXAs IHRoaXNfc2l6ZV9iaXRzKTsKKyAJICAgIGJ1ZmZlci5yZXNlcnZlICh0aGlzX3NpemUpOworIAor LQkgICAgaWYgKGRlc3Rfb2Zmc2V0X2JpdHMgJSA4ICE9IDAgfHwgdGhpc19zaXplX2JpdHMgJSA4 ICE9IDApCisrCSAgICBpZiAoYml0c190b19za2lwICUgOCAhPSAwIHx8IHRoaXNfc2l6ZV9iaXRz ICUgOCAhPSAwKQorIAkgICAgICB7CisgCQlpZiAodGhpc19zaXplIDw9IDgpCisgCQkgIHsKK0BA IC0yMDY4LDggKzIwNTEsOCBAQCB3cml0ZV9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdG8s IHN0cnVjdCB2YWx1ZSAqZnJvbSkKKyAJCSAgfQorIAkgICAgICB9CisgCistCSAgICBjb3B5X2Jp dHdpc2UgKGJ1ZmZlci5kYXRhICgpLCBkZXN0X29mZnNldF9iaXRzICUgOCwKKy0JCQkgIGNvbnRl bnRzLCBzb3VyY2Vfb2Zmc2V0X2JpdHMsCisrCSAgICBjb3B5X2JpdHdpc2UgKGJ1ZmZlci5kYXRh ICgpLCBiaXRzX3RvX3NraXAgJSA4LAorKwkJCSAgY29udGVudHMsIG9mZnNldCwKKyAJCQkgIHRo aXNfc2l6ZV9iaXRzLCBiaXRzX2JpZ19lbmRpYW4pOworIAkgICAgd3JpdGVfbWVtb3J5IChzdGFy dF9hZGRyLCBidWZmZXIuZGF0YSAoKSwgdGhpc19zaXplKTsKKyAJICB9CitAQCAtMjA3OSw2ICsy MDYyLDcgQEAgd3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBzdHJ1Y3QgdmFs dWUgKmZyb20pCisgCSAgYnJlYWs7CisgCX0KKyAgICAgICBvZmZzZXQgKz0gdGhpc19zaXplX2Jp dHM7CisrICAgICAgYml0c190b19za2lwID0gMDsKKyAgICAgfQorIH0KKyAKCmRpZmYgLS1naXQg YS9nZGItcmhiejE0MjAzMDQtczM5MHgtMjVvZjM1LnBhdGNoIGIvZ2RiLXJoYnoxNDIwMzA0LXMz OTB4LTI1b2YzNS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZmEz NjZjCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTI1b2YzNS5wYXRj aApAQCAtMCwwICsxLDc2IEBACitjb21taXQgMjNmOTQ1YmY4Y2ViZjM0ODE1NGFmZjQzNzgyZGUy ZTE5NzdlOTIzMAorQXV0aG9yOiBBbmRyZWFzIEFybmV6IDxhcm5lekBsaW51eC52bmV0LmlibS5j b20+CitEYXRlOiAgIFR1ZSBKdW4gMTMgMTU6MjA6MzEgMjAxNyArMDIwMAorCisgICAgRml4IGJp dC0vYnl0ZS1vZmZzZXQgbWlzbWF0Y2ggaW4gcGFyYW1ldGVyIHRvIHJlYWRfdmFsdWVfbWVtb3J5 CisgICAgCisgICAgVGhlIGZ1bmN0aW9uIHJlYWRfdmFsdWVfbWVtb3J5IGFjY2VwdHMgYSBwYXJh bWV0ZXIgZW1iZWRkZWRfb2Zmc2V0IGFuZAorICAgIGV4cGVjdHMgaXQgdG8gcmVwcmVzZW50IHRo ZSBieXRlIG9mZnNldCBpbnRvIHRoZSBnaXZlbiB2YWx1ZS4gIEhvd2V2ZXIsCisgICAgdGhlIG9u bHkgaW52b2NhdGlvbiB3aXRoIGEgcG9zc2libHkgbm9uLXplcm8gZW1iZWRkZWRfb2Zmc2V0IGhh cHBlbnMgaW4KKyAgICByZWFkX3BpZWNlZF92YWx1ZSwgd2hlcmUgYSBiaXQgb2Zmc2V0IGlzIHBh c3NlZCBpbnN0ZWFkLgorICAgIAorICAgIEFkanVzdCB0aGUgaW1wbGVtZW50YXRpb24gb2YgcmVh ZF92YWx1ZV9tZW1vcnkgdG8gbWVldCB0aGUgY2FsbGVyJ3MKKyAgICBleHBlY3RhdGlvbi4gIFRo aXMgaW1wbGljaXRseSBmaXhlcyB0aGUgaW52b2NhdGlvbiBpbiByZWFkX3BpZWNlZF92YWx1ZS4K KyAgICAKKyAgICBnZGIvQ2hhbmdlTG9nOgorICAgIAorICAgICAgICAgICAgKiB2YWxvcHMuYyAo cmVhZF92YWx1ZV9tZW1vcnkpOiBDaGFuZ2UgZW1iZWRkZWRfb2Zmc2V0IHRvCisgICAgICAgICAg ICByZXByZXNlbnQgYSBiaXQgb2Zmc2V0IGluc3RlYWQgb2YgYSBieXRlIG9mZnNldC4KKyAgICAg ICAgICAgICogdmFsdWUuaCAocmVhZF92YWx1ZV9tZW1vcnkpOiBBZGp1c3QgY29tbWVudC4KKwor IyMjIGEvZ2RiL0NoYW5nZUxvZworIyMjIGIvZ2RiL0NoYW5nZUxvZworIyMgLTEsNSArMSwxMSBA QAorIDIwMTctMDYtMTMgIEFuZHJlYXMgQXJuZXogIDxhcm5lekBsaW51eC52bmV0LmlibS5jb20+ CisgCisrCSogdmFsb3BzLmMgKHJlYWRfdmFsdWVfbWVtb3J5KTogQ2hhbmdlIGVtYmVkZGVkX29m ZnNldCB0bworKwlyZXByZXNlbnQgYSBiaXQgb2Zmc2V0IGluc3RlYWQgb2YgYSBieXRlIG9mZnNl dC4KKysJKiB2YWx1ZS5oIChyZWFkX3ZhbHVlX21lbW9yeSk6IEFkanVzdCBjb21tZW50LgorKwor KzIwMTctMDYtMTMgIEFuZHJlYXMgQXJuZXogIDxhcm5lekBsaW51eC52bmV0LmlibS5jb20+Cisr CisgCSogZHdhcmYybG9jLmMgKHJlYWRfcGllY2VkX3ZhbHVlKTogUmVtb3ZlIHVubmVjZXNzYXJ5 IHZhcmlhYmxlcworIAlkZXN0X29mZnNldF9iaXRzIGFuZCBzb3VyY2Vfb2Zmc2V0X2JpdHMuCisg CSh3cml0ZV9waWVjZWRfdmFsdWUpOiBMaWtld2lzZS4KKy0tLSBhL2dkYi92YWxvcHMuYworKysr IGIvZ2RiL3ZhbG9wcy5jCitAQCAtOTU4LDcgKzk1OCw3IEBAIHZhbHVlX2F0X2xhenkgKHN0cnVj dCB0eXBlICp0eXBlLCBDT1JFX0FERFIgYWRkcikKKyB9CisgCisgdm9pZAorLXJlYWRfdmFsdWVf bWVtb3J5IChzdHJ1Y3QgdmFsdWUgKnZhbCwgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsCisrcmVh ZF92YWx1ZV9tZW1vcnkgKHN0cnVjdCB2YWx1ZSAqdmFsLCBMT05HRVNUIGJpdF9vZmZzZXQsCisg CQkgICBpbnQgc3RhY2ssIENPUkVfQUREUiBtZW1hZGRyLAorIAkJICAgZ2RiX2J5dGUgKmJ1ZmZl ciwgc2l6ZV90IGxlbmd0aCkKKyB7CitAQCAtOTg0LDggKzk4NCw5IEBAIHJlYWRfdmFsdWVfbWVt b3J5IChzdHJ1Y3QgdmFsdWUgKnZhbCwgTE9OR0VTVCBlbWJlZGRlZF9vZmZzZXQsCisgICAgICAg aWYgKHN0YXR1cyA9PSBUQVJHRVRfWEZFUl9PSykKKyAJLyogbm90aGluZyAqLzsKKyAgICAgICBl bHNlIGlmIChzdGF0dXMgPT0gVEFSR0VUX1hGRVJfVU5BVkFJTEFCTEUpCistCW1hcmtfdmFsdWVf Ynl0ZXNfdW5hdmFpbGFibGUgKHZhbCwgZW1iZWRkZWRfb2Zmc2V0ICsgeGZlcmVkX3RvdGFsLAor LQkJCQkgICAgICB4ZmVyZWRfcGFydGlhbCk7CisrCW1hcmtfdmFsdWVfYml0c191bmF2YWlsYWJs ZSAodmFsLCAoeGZlcmVkX3RvdGFsICogSE9TVF9DSEFSX0JJVAorKwkJCQkJICAgKyBiaXRfb2Zm c2V0KSwKKysJCQkJICAgICB4ZmVyZWRfcGFydGlhbCAqIEhPU1RfQ0hBUl9CSVQpOworICAgICAg IGVsc2UgaWYgKHN0YXR1cyA9PSBUQVJHRVRfWEZFUl9FT0YpCisgCW1lbW9yeV9lcnJvciAoVEFS R0VUX1hGRVJfRV9JTywgbWVtYWRkciArIHhmZXJlZF90b3RhbCk7CisgICAgICAgZWxzZQorLS0t IGEvZ2RiL3ZhbHVlLmgKKysrKyBiL2dkYi92YWx1ZS5oCitAQCAtNTgxLDEyICs1ODEsMTEgQEAg ZXh0ZXJuIGludCB2YWx1ZV9jb250ZW50c19lcSAoY29uc3Qgc3RydWN0IHZhbHVlICp2YWwxLCBM T05HRVNUIG9mZnNldDEsCisgCisgLyogUmVhZCBMRU5HVEggYWRkcmVzc2FibGUgbWVtb3J5IHVu aXRzIHN0YXJ0aW5nIGF0IE1FTUFERFIgaW50byBCVUZGRVIsCisgICAgd2hpY2ggaXMgKG9yIHdp bGwgYmUgY29waWVkIHRvKSBWQUwncyBjb250ZW50cyBidWZmZXIgb2Zmc2V0IGJ5CistICAgRU1C RURERURfT0ZGU0VUICh0aGF0IGlzLCB0byAmVkFMLT5jb250ZW50c1tFTUJFRERFRF9PRkZTRVRd KS4KKy0gICBNYXJrcyB2YWx1ZSBjb250ZW50cyByYW5nZXMgYXMgdW5hdmFpbGFibGUgaWYgdGhl IGNvcnJlc3BvbmRpbmcKKy0gICBtZW1vcnkgaXMgbGlrZXdpc2UgdW5hdmFpbGFibGUuICBTVEFD SyBpbmRpY2F0ZXMgd2hldGhlciB0aGUgbWVtb3J5CistICAgaXMga25vd24gdG8gYmUgc3RhY2sg bWVtb3J5LiAgKi8KKysgICBCSVRfT0ZGU0VUIGJpdHMuICBNYXJrcyB2YWx1ZSBjb250ZW50cyBy YW5nZXMgYXMgdW5hdmFpbGFibGUgaWYKKysgICB0aGUgY29ycmVzcG9uZGluZyBtZW1vcnkgaXMg bGlrZXdpc2UgdW5hdmFpbGFibGUuICBTVEFDSyBpbmRpY2F0ZXMKKysgICB3aGV0aGVyIHRoZSBt ZW1vcnkgaXMga25vd24gdG8gYmUgc3RhY2sgbWVtb3J5LiAgKi8KKyAKKy1leHRlcm4gdm9pZCBy ZWFkX3ZhbHVlX21lbW9yeSAoc3RydWN0IHZhbHVlICp2YWwsIExPTkdFU1QgZW1iZWRkZWRfb2Zm c2V0LAorK2V4dGVybiB2b2lkIHJlYWRfdmFsdWVfbWVtb3J5IChzdHJ1Y3QgdmFsdWUgKnZhbCwg TE9OR0VTVCBiaXRfb2Zmc2V0LAorIAkJCSAgICAgICBpbnQgc3RhY2ssIENPUkVfQUREUiBtZW1h ZGRyLAorIAkJCSAgICAgICBnZGJfYnl0ZSAqYnVmZmVyLCBzaXplX3QgbGVuZ3RoKTsKKyAKCmRp ZmYgLS1naXQgYS9nZGItcmhiejE0MjAzMDQtczM5MHgtMjZvZjM1LnBhdGNoIGIvZ2RiLXJoYnox NDIwMzA0LXMzOTB4LTI2b2YzNS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi5jNDYwNzk0Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTI2 b2YzNS5wYXRjaApAQCAtMCwwICsxLDU2IEBACitjb21taXQgZjY1ZTIwNDQyNWI1YjQ2YTU5Mjdk OTUwMWM0MmYyNWQ5OGE4NjZjZQorQXV0aG9yOiBBbmRyZWFzIEFybmV6IDxhcm5lekBsaW51eC52 bmV0LmlibS5jb20+CitEYXRlOiAgIFR1ZSBKdW4gMTMgMTU6MjA6MzIgMjAxNyArMDIwMAorCisg ICAgd3JpdGVfcGllY2VkX3ZhbHVlOiBOb3RpZnkgbWVtb3J5X2NoYW5nZWQgb2JzZXJ2ZXJzCisg ICAgCisgICAgU28gZmFyIHdyaXRlX3BpZWNlZF92YWx1ZSB1c2VzIHdyaXRlX21lbW9yeSB3aGVu IHdyaXRpbmcgbWVtb3J5IHBpZWNlcyB0bworICAgIHRoZSB0YXJnZXQuICBIb3dldmVyLCB0aGlz IGlzIGEgY2FzZSB3aGVyZSBHREIgcG90ZW50aWFsbHkgb3ZlcndyaXRlcyBhCisgICAgd2F0Y2hw b2ludCB2YWx1ZS4gIEluIHN1Y2ggYSBjYXNlIHdyaXRlX21lbW9yeV93aXRoX25vdGlmaWNhdGlv biBzaG91bGQgYmUKKyAgICB1c2VkIGluc3RlYWQsIHNvIHRoYXQgbWVtb3J5X2NoYW5nZWQgb2Jz ZXJ2ZXJzIGdldCBub3RpZmllZC4KKyAgICAKKyAgICBnZGIvQ2hhbmdlTG9nOgorICAgIAorICAg ICAgICAgICAgKiBkd2FyZjJsb2MuYyAod3JpdGVfcGllY2VkX3ZhbHVlKTogV2hlbiB3cml0aW5n IHRoZSBkYXRhIGZvciBhCisgICAgICAgICAgICBtZW1vcnkgcGllY2UsIHVzZSB3cml0ZV9tZW1v cnlfd2l0aF9ub3RpZmljYXRpb24gaW5zdGVhZCBvZgorICAgICAgICAgICAgd3JpdGVfbWVtb3J5 LgorCisjIyMgYS9nZGIvQ2hhbmdlTG9nCisjIyMgYi9nZGIvQ2hhbmdlTG9nCisjIyAtMSw1ICsx LDExIEBACisgMjAxNy0wNi0xMyAgQW5kcmVhcyBBcm5leiAgPGFybmV6QGxpbnV4LnZuZXQuaWJt LmNvbT4KKyAKKysJKiBkd2FyZjJsb2MuYyAod3JpdGVfcGllY2VkX3ZhbHVlKTogV2hlbiB3cml0 aW5nIHRoZSBkYXRhIGZvciBhCisrCW1lbW9yeSBwaWVjZSwgdXNlIHdyaXRlX21lbW9yeV93aXRo X25vdGlmaWNhdGlvbiBpbnN0ZWFkIG9mCisrCXdyaXRlX21lbW9yeS4KKysKKysyMDE3LTA2LTEz ICBBbmRyZWFzIEFybmV6ICA8YXJuZXpAbGludXgudm5ldC5pYm0uY29tPgorKworIAkqIHZhbG9w cy5jIChyZWFkX3ZhbHVlX21lbW9yeSk6IENoYW5nZSBlbWJlZGRlZF9vZmZzZXQgdG8KKyAJcmVw cmVzZW50IGEgYml0IG9mZnNldCBpbnN0ZWFkIG9mIGEgYnl0ZSBvZmZzZXQuCisgCSogdmFsdWUu aCAocmVhZF92YWx1ZV9tZW1vcnkpOiBBZGp1c3QgY29tbWVudC4KKy0tLSBhL2dkYi9kd2FyZjJs b2MuYworKysrIGIvZ2RiL2R3YXJmMmxvYy5jCitAQCAtMjAyNSw5ICsyMDI1LDkgQEAgd3JpdGVf cGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBzdHJ1Y3QgdmFsdWUgKmZyb20pCisgCQkm JiBvZmZzZXQgJSA4ID09IDApCisgCSAgICAgIHsKKyAJCS8qIEV2ZXJ5dGhpbmcgaXMgYnl0ZS1h bGlnbmVkOyBubyBidWZmZXIgbmVlZGVkLiAgKi8KKy0JCXdyaXRlX21lbW9yeSAoc3RhcnRfYWRk ciwKKy0JCQkgICAgICBjb250ZW50cyArIG9mZnNldCAvIDgsCistCQkJICAgICAgdGhpc19zaXpl X2JpdHMgLyA4KTsKKysJCXdyaXRlX21lbW9yeV93aXRoX25vdGlmaWNhdGlvbiAoc3RhcnRfYWRk ciwKKysJCQkJCQljb250ZW50cyArIG9mZnNldCAvIDgsCisrCQkJCQkJdGhpc19zaXplX2JpdHMg LyA4KTsKKyAJCWJyZWFrOworIAkgICAgICB9CisgCitAQCAtMjA1NCw3ICsyMDU0LDggQEAgd3Jp dGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBzdHJ1Y3QgdmFsdWUgKmZyb20pCisg CSAgICBjb3B5X2JpdHdpc2UgKGJ1ZmZlci5kYXRhICgpLCBiaXRzX3RvX3NraXAgJSA4LAorIAkJ CSAgY29udGVudHMsIG9mZnNldCwKKyAJCQkgIHRoaXNfc2l6ZV9iaXRzLCBiaXRzX2JpZ19lbmRp YW4pOworLQkgICAgd3JpdGVfbWVtb3J5IChzdGFydF9hZGRyLCBidWZmZXIuZGF0YSAoKSwgdGhp c19zaXplKTsKKysJICAgIHdyaXRlX21lbW9yeV93aXRoX25vdGlmaWNhdGlvbiAoc3RhcnRfYWRk ciwgYnVmZmVyLmRhdGEgKCksCisrCQkJCQkgICAgdGhpc19zaXplKTsKKyAJICB9CisgCSAgYnJl YWs7CisgCWRlZmF1bHQ6CgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTI3b2Yz NS5wYXRjaCBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0yN29mMzUucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWQxZmEwZQotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1y aGJ6MTQyMDMwNC1zMzkweC0yN29mMzUucGF0Y2gKQEAgLTAsMCArMSw0ODEgQEAKK2NvbW1pdCA1 NWFjZGYyMjQyMzcyYWU1MmFiYjI1YzgwZGI4ZTc1ZGY1NTc4YjIzCitBdXRob3I6IEFuZHJlYXMg QXJuZXogPGFybmV6QGxpbnV4LnZuZXQuaWJtLmNvbT4KK0RhdGU6ICAgVHVlIEp1biAxMyAxNToy MDozMiAyMDE3ICswMjAwCisKKyAgICByZWFkL3dyaXRlX3BpZWNlZF92YWx1ZTogTWVyZ2UgaW50 byBvbmUgZnVuY3Rpb24KKyAgICAKKyAgICBTaW5jZSByZWFkX3BpZWNlZF92YWx1ZSBhbmQgd3Jp dGVfcGllY2VkX3ZhbHVlIHNoYXJlIHNpZ25pZmljYW50IGxvZ2ljLAorICAgIHRoaXMgcGF0Y2gg bWVyZ2VzIHRoZW0gaW50byBhIHNpbmdsZSBmdW5jdGlvbiByd19waWVjZWRfdmFsdWUuCisgICAg CisgICAgZ2RiL0NoYW5nZUxvZzoKKyAgICAKKyAgICAgICAgICAgICogZHdhcmYybG9jLmMgKHJ3 X3BpZWNlZF92YWx1ZSk6IE5ldy4gIE1lcmdlIGxvZ2ljIGZyb20uLi4KKyAgICAgICAgICAgIChy ZWFkX3BpZWNlZF92YWx1ZSwgd3JpdGVfcGllY2VkX3ZhbHVlKTogLi4uaGVyZS4gIFJlZHVjZSB0 bworICAgICAgICAgICAgd3JhcHBlcnMgdGhhdCBqdXN0IGNhbGwgcndfcGllY2VkX3ZhbHVlLgor CisjIyMgYS9nZGIvQ2hhbmdlTG9nCisjIyMgYi9nZGIvQ2hhbmdlTG9nCisjIyAtMSw1ICsxLDEx IEBACisgMjAxNy0wNi0xMyAgQW5kcmVhcyBBcm5leiAgPGFybmV6QGxpbnV4LnZuZXQuaWJtLmNv bT4KKyAKKysJKiBkd2FyZjJsb2MuYyAocndfcGllY2VkX3ZhbHVlKTogTmV3LiAgTWVyZ2UgbG9n aWMgZnJvbS4uLgorKwkocmVhZF9waWVjZWRfdmFsdWUsIHdyaXRlX3BpZWNlZF92YWx1ZSk6IC4u LmhlcmUuICBSZWR1Y2UgdG8KKysJd3JhcHBlcnMgdGhhdCBqdXN0IGNhbGwgcndfcGllY2VkX3Zh bHVlLgorKworKzIwMTctMDYtMTMgIEFuZHJlYXMgQXJuZXogIDxhcm5lekBsaW51eC52bmV0Lmli bS5jb20+CisrCisgCSogZHdhcmYybG9jLmMgKHdyaXRlX3BpZWNlZF92YWx1ZSk6IFdoZW4gd3Jp dGluZyB0aGUgZGF0YSBmb3IgYQorIAltZW1vcnkgcGllY2UsIHVzZSB3cml0ZV9tZW1vcnlfd2l0 aF9ub3RpZmljYXRpb24gaW5zdGVhZCBvZgorIAl3cml0ZV9tZW1vcnkuCistLS0gYS9nZGIvZHdh cmYybG9jLmMKKysrKyBiL2dkYi9kd2FyZjJsb2MuYworQEAgLTE3NjEsMzEgKzE3NjEsNTUgQEAg Yml0c190b19ieXRlcyAoVUxPTkdFU1Qgc3RhcnQsIFVMT05HRVNUIG5fYml0cykKKyAgIHJldHVy biAoc3RhcnQgJSA4ICsgbl9iaXRzICsgNykgLyA4OworIH0KKyAKKysvKiBSZWFkIG9yIHdyaXRl IGEgcGllY2VkIHZhbHVlIFYuICBJZiBGUk9NICE9IE5VTEwsIG9wZXJhdGUgaW4gIndyaXRlCisr ICAgbW9kZSI6IGNvcHkgRlJPTSBpbnRvIHRoZSBwaWVjZXMgY29tcHJpc2luZyBWLiAgSWYgRlJP TSA9PSBOVUxMLAorKyAgIG9wZXJhdGUgaW4gInJlYWQgbW9kZSI6IGZldGNoIHRoZSBjb250ZW50 cyBvZiB0aGUgKGxhenkpIHZhbHVlIFYgYnkKKysgICBjb21wb3NpbmcgaXQgZnJvbSBpdHMgcGll Y2VzLiAgKi8KKysKKyBzdGF0aWMgdm9pZAorLXJlYWRfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFs dWUgKnYpCisrcndfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnYsIHN0cnVjdCB2YWx1ZSAq ZnJvbSkKKyB7CisgICBpbnQgaTsKKyAgIExPTkdFU1Qgb2Zmc2V0ID0gMCwgbWF4X29mZnNldDsK KyAgIFVMT05HRVNUIGJpdHNfdG9fc2tpcDsKKy0gIGdkYl9ieXRlICpjb250ZW50czsKKysgIGdk Yl9ieXRlICp2X2NvbnRlbnRzOworKyAgY29uc3QgZ2RiX2J5dGUgKmZyb21fY29udGVudHM7Cisg ICBzdHJ1Y3QgcGllY2VfY2xvc3VyZSAqYworICAgICA9IChzdHJ1Y3QgcGllY2VfY2xvc3VyZSAq KSB2YWx1ZV9jb21wdXRlZF9jbG9zdXJlICh2KTsKKyAgIHN0ZDo6dmVjdG9yPGdkYl9ieXRlPiBi dWZmZXI7CisgICBpbnQgYml0c19iaWdfZW5kaWFuCisgICAgID0gZ2RiYXJjaF9iaXRzX2JpZ19l bmRpYW4gKGdldF90eXBlX2FyY2ggKHZhbHVlX3R5cGUgKHYpKSk7CisgCistICBpZiAodmFsdWVf dHlwZSAodikgIT0gdmFsdWVfZW5jbG9zaW5nX3R5cGUgKHYpKQorLSAgICBpbnRlcm5hbF9lcnJv ciAoX19GSUxFX18sIF9fTElORV9fLAorLQkJICAgIF8oIlNob3VsZCBub3QgYmUgYWJsZSB0byBj cmVhdGUgYSBsYXp5IHZhbHVlIHdpdGggIgorLQkJICAgICAgImFuIGVuY2xvc2luZyB0eXBlIikp OworKyAgaWYgKGZyb20gIT0gTlVMTCkKKysgICAgeworKyAgICAgIGZyb21fY29udGVudHMgPSB2 YWx1ZV9jb250ZW50cyAoZnJvbSk7CisrICAgICAgdl9jb250ZW50cyA9IE5VTEw7CisrICAgIH0K KysgIGVsc2UKKysgICAgeworKyAgICAgIGlmICh2YWx1ZV90eXBlICh2KSAhPSB2YWx1ZV9lbmNs b3NpbmdfdHlwZSAodikpCisrCWludGVybmFsX2Vycm9yIChfX0ZJTEVfXywgX19MSU5FX18sCisr CQkJXygiU2hvdWxkIG5vdCBiZSBhYmxlIHRvIGNyZWF0ZSBhIGxhenkgdmFsdWUgd2l0aCAiCisr CQkJICAiYW4gZW5jbG9zaW5nIHR5cGUiKSk7CisrICAgICAgdl9jb250ZW50cyA9IHZhbHVlX2Nv bnRlbnRzX3JhdyAodik7CisrICAgICAgZnJvbV9jb250ZW50cyA9IE5VTEw7CisrICAgIH0KKyAK Ky0gIGNvbnRlbnRzID0gdmFsdWVfY29udGVudHNfcmF3ICh2KTsKKyAgIGJpdHNfdG9fc2tpcCA9 IDggKiB2YWx1ZV9vZmZzZXQgKHYpOworICAgaWYgKHZhbHVlX2JpdHNpemUgKHYpKQorICAgICB7 CisgICAgICAgYml0c190b19za2lwICs9ICg4ICogdmFsdWVfb2Zmc2V0ICh2YWx1ZV9wYXJlbnQg KHYpKQorIAkJICAgICAgICsgdmFsdWVfYml0cG9zICh2KSk7CistICAgICAgbWF4X29mZnNldCA9 IHZhbHVlX2JpdHNpemUgKHYpOworKyAgICAgIGlmIChmcm9tICE9IE5VTEwKKysJICAmJiAoZ2Ri YXJjaF9ieXRlX29yZGVyIChnZXRfdHlwZV9hcmNoICh2YWx1ZV90eXBlIChmcm9tKSkpCisrCSAg ICAgID09IEJGRF9FTkRJQU5fQklHKSkKKysJeworKwkgIC8qIFVzZSB0aGUgbGVhc3Qgc2lnbmlm aWNhbnQgYml0cyBvZiBGUk9NLiAgKi8KKysJICBtYXhfb2Zmc2V0ID0gOCAqIFRZUEVfTEVOR1RI ICh2YWx1ZV90eXBlIChmcm9tKSk7CisrCSAgb2Zmc2V0ID0gbWF4X29mZnNldCAtIHZhbHVlX2Jp dHNpemUgKHYpOworKwl9CisrICAgICAgZWxzZQorKwltYXhfb2Zmc2V0ID0gdmFsdWVfYml0c2l6 ZSAodik7CisgICAgIH0KKyAgIGVsc2UKKyAgICAgbWF4X29mZnNldCA9IDggKiBUWVBFX0xFTkdU SCAodmFsdWVfdHlwZSAodikpOworQEAgLTE3OTcsMTMgKzE4MjEsMTIgQEAgcmVhZF9waWVjZWRf dmFsdWUgKHN0cnVjdCB2YWx1ZSAqdikKKyAgIGZvciAoOyBpIDwgYy0+bl9waWVjZXMgJiYgb2Zm c2V0IDwgbWF4X29mZnNldDsgaSsrKQorICAgICB7CisgICAgICAgc3RydWN0IGR3YXJmX2V4cHJf cGllY2UgKnAgPSAmYy0+cGllY2VzW2ldOworLSAgICAgIHNpemVfdCB0aGlzX3NpemUsIHRoaXNf c2l6ZV9iaXRzOworKyAgICAgIHNpemVfdCB0aGlzX3NpemVfYml0cywgdGhpc19zaXplOworIAor ICAgICAgIHRoaXNfc2l6ZV9iaXRzID0gcC0+c2l6ZSAtIGJpdHNfdG9fc2tpcDsKKyAgICAgICBp ZiAodGhpc19zaXplX2JpdHMgPiBtYXhfb2Zmc2V0IC0gb2Zmc2V0KQorIAl0aGlzX3NpemVfYml0 cyA9IG1heF9vZmZzZXQgLSBvZmZzZXQ7CisgCistICAgICAgLyogQ29weSBmcm9tIHRoZSBzb3Vy Y2UgdG8gREVTVF9CVUZGRVIuICAqLworICAgICAgIHN3aXRjaCAocC0+bG9jYXRpb24pCisgCXsK KyAJY2FzZSBEV0FSRl9WQUxVRV9SRUdJU1RFUjoKK0BAIC0xODI2LDM5ICsxODQ5LDEzNyBAQCBy ZWFkX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQorIAkgICAgdGhpc19zaXplID0gYml0 c190b19ieXRlcyAoYml0c190b19za2lwLCB0aGlzX3NpemVfYml0cyk7CisgCSAgICBidWZmZXIu cmVzZXJ2ZSAodGhpc19zaXplKTsKKyAKKy0JICAgIGlmICghZ2V0X2ZyYW1lX3JlZ2lzdGVyX2J5 dGVzIChmcmFtZSwgZ2RiX3JlZ251bSwKKy0JCQkJCSAgIGJpdHNfdG9fc2tpcCAvIDgsCistCQkJ CQkgICB0aGlzX3NpemUsIGJ1ZmZlci5kYXRhICgpLAorLQkJCQkJICAgJm9wdGltLCAmdW5hdmFp bCkpCisrCSAgICBpZiAoZnJvbSA9PSBOVUxMKQorIAkgICAgICB7CistCQlpZiAob3B0aW0pCist CQkgIG1hcmtfdmFsdWVfYml0c19vcHRpbWl6ZWRfb3V0ICh2LCBvZmZzZXQsIHRoaXNfc2l6ZV9i aXRzKTsKKy0JCWlmICh1bmF2YWlsKQorLQkJICBtYXJrX3ZhbHVlX2JpdHNfdW5hdmFpbGFibGUg KHYsIG9mZnNldCwgdGhpc19zaXplX2JpdHMpOworLQkJYnJlYWs7CisrCQkvKiBSZWFkIG1vZGUu ICAqLworKwkJaWYgKCFnZXRfZnJhbWVfcmVnaXN0ZXJfYnl0ZXMgKGZyYW1lLCBnZGJfcmVnbnVt LAorKwkJCQkJICAgICAgIGJpdHNfdG9fc2tpcCAvIDgsCisrCQkJCQkgICAgICAgdGhpc19zaXpl LCBidWZmZXIuZGF0YSAoKSwKKysJCQkJCSAgICAgICAmb3B0aW0sICZ1bmF2YWlsKSkKKysJCSAg eworKwkJICAgIGlmIChvcHRpbSkKKysJCSAgICAgIG1hcmtfdmFsdWVfYml0c19vcHRpbWl6ZWRf b3V0ICh2LCBvZmZzZXQsCisrCQkJCQkJICAgICB0aGlzX3NpemVfYml0cyk7CisrCQkgICAgaWYg KHVuYXZhaWwpCisrCQkgICAgICBtYXJrX3ZhbHVlX2JpdHNfdW5hdmFpbGFibGUgKHYsIG9mZnNl dCwKKysJCQkJCQkgICB0aGlzX3NpemVfYml0cyk7CisrCQkgICAgYnJlYWs7CisrCQkgIH0KKysK KysJCWNvcHlfYml0d2lzZSAodl9jb250ZW50cywgb2Zmc2V0LAorKwkJCSAgICAgIGJ1ZmZlci5k YXRhICgpLCBiaXRzX3RvX3NraXAgJSA4LAorKwkJCSAgICAgIHRoaXNfc2l6ZV9iaXRzLCBiaXRz X2JpZ19lbmRpYW4pOworKwkgICAgICB9CisrCSAgICBlbHNlCisrCSAgICAgIHsKKysJCS8qIFdy aXRlIG1vZGUuICAqLworKwkJaWYgKGJpdHNfdG9fc2tpcCAlIDggIT0gMCB8fCB0aGlzX3NpemVf Yml0cyAlIDggIT0gMCkKKysJCSAgeworKwkJICAgIC8qIERhdGEgaXMgY29waWVkIG5vbi1ieXRl LWFsaWduZWQgaW50byB0aGUgcmVnaXN0ZXIuCisrCQkgICAgICAgTmVlZCBzb21lIGJpdHMgZnJv bSBvcmlnaW5hbCByZWdpc3RlciB2YWx1ZS4gICovCisrCQkgICAgZ2V0X2ZyYW1lX3JlZ2lzdGVy X2J5dGVzIChmcmFtZSwgZ2RiX3JlZ251bSwKKysJCQkJCSAgICAgIGJpdHNfdG9fc2tpcCAvIDgs CisrCQkJCQkgICAgICB0aGlzX3NpemUsIGJ1ZmZlci5kYXRhICgpLAorKwkJCQkJICAgICAgJm9w dGltLCAmdW5hdmFpbCk7CisrCQkgICAgaWYgKG9wdGltKQorKwkJICAgICAgdGhyb3dfZXJyb3Ig KE9QVElNSVpFRF9PVVRfRVJST1IsCisrCQkJCSAgIF8oIkNhbid0IGRvIHJlYWQtbW9kaWZ5LXdy aXRlIHRvICIKKysJCQkJICAgICAidXBkYXRlIGJpdGZpZWxkOyBjb250YWluaW5nIHdvcmQgIgor KwkJCQkgICAgICJoYXMgYmVlbiBvcHRpbWl6ZWQgb3V0IikpOworKwkJICAgIGlmICh1bmF2YWls KQorKwkJICAgICAgdGhyb3dfZXJyb3IgKE5PVF9BVkFJTEFCTEVfRVJST1IsCisrCQkJCSAgIF8o IkNhbid0IGRvIHJlYWQtbW9kaWZ5LXdyaXRlIHRvICIKKysJCQkJICAgICAidXBkYXRlIGJpdGZp ZWxkOyBjb250YWluaW5nIHdvcmQgIgorKwkJCQkgICAgICJpcyB1bmF2YWlsYWJsZSIpKTsKKysJ CSAgfQorKworKwkJY29weV9iaXR3aXNlIChidWZmZXIuZGF0YSAoKSwgYml0c190b19za2lwICUg OCwKKysJCQkgICAgICBmcm9tX2NvbnRlbnRzLCBvZmZzZXQsCisrCQkJICAgICAgdGhpc19zaXpl X2JpdHMsIGJpdHNfYmlnX2VuZGlhbik7CisrCQlwdXRfZnJhbWVfcmVnaXN0ZXJfYnl0ZXMgKGZy YW1lLCBnZGJfcmVnbnVtLAorKwkJCQkJICBiaXRzX3RvX3NraXAgLyA4LAorKwkJCQkJICB0aGlz X3NpemUsIGJ1ZmZlci5kYXRhICgpKTsKKyAJICAgICAgfQorLQkgICAgY29weV9iaXR3aXNlIChj b250ZW50cywgb2Zmc2V0LAorLQkJCSAgYnVmZmVyLmRhdGEgKCksIGJpdHNfdG9fc2tpcCAlIDgs CistCQkJICB0aGlzX3NpemVfYml0cywgYml0c19iaWdfZW5kaWFuKTsKKyAJICB9CisgCSAgYnJl YWs7CisgCisgCWNhc2UgRFdBUkZfVkFMVUVfTUVNT1JZOgorLQkgIGJpdHNfdG9fc2tpcCArPSBw LT5vZmZzZXQ7CistCSAgdGhpc19zaXplID0gYml0c190b19ieXRlcyAoYml0c190b19za2lwLCB0 aGlzX3NpemVfYml0cyk7CistCSAgYnVmZmVyLnJlc2VydmUgKHRoaXNfc2l6ZSk7CistCistCSAg cmVhZF92YWx1ZV9tZW1vcnkgKHYsIG9mZnNldCwKKy0JCQkgICAgIHAtPnYubWVtLmluX3N0YWNr X21lbW9yeSwKKy0JCQkgICAgIHAtPnYubWVtLmFkZHIgKyBiaXRzX3RvX3NraXAgLyA4LAorLQkJ CSAgICAgYnVmZmVyLmRhdGEgKCksIHRoaXNfc2l6ZSk7CistCSAgY29weV9iaXR3aXNlIChjb250 ZW50cywgb2Zmc2V0LAorLQkJCWJ1ZmZlci5kYXRhICgpLCBiaXRzX3RvX3NraXAgJSA4LAorLQkJ CXRoaXNfc2l6ZV9iaXRzLCBiaXRzX2JpZ19lbmRpYW4pOworKwkgIHsKKysJICAgIGJpdHNfdG9f c2tpcCArPSBwLT5vZmZzZXQ7CisrCisrCSAgICBDT1JFX0FERFIgc3RhcnRfYWRkciA9IHAtPnYu bWVtLmFkZHIgKyBiaXRzX3RvX3NraXAgLyA4OworKworKwkgICAgaWYgKGJpdHNfdG9fc2tpcCAl IDggPT0gMCAmJiB0aGlzX3NpemVfYml0cyAlIDggPT0gMAorKwkJJiYgb2Zmc2V0ICUgOCA9PSAw KQorKwkgICAgICB7CisrCQkvKiBFdmVyeXRoaW5nIGlzIGJ5dGUtYWxpZ25lZDsgbm8gYnVmZmVy IG5lZWRlZC4gICovCisrCQlpZiAoZnJvbSAhPSBOVUxMKQorKwkJICB3cml0ZV9tZW1vcnlfd2l0 aF9ub3RpZmljYXRpb24gKHN0YXJ0X2FkZHIsCisrCQkJCQkJICAoZnJvbV9jb250ZW50cworKwkJ CQkJCSAgICsgb2Zmc2V0IC8gOCksCisrCQkJCQkJICB0aGlzX3NpemVfYml0cyAvIDgpOworKwkJ ZWxzZQorKwkJICByZWFkX3ZhbHVlX21lbW9yeSAodiwgb2Zmc2V0LAorKwkJCQkgICAgIHAtPnYu bWVtLmluX3N0YWNrX21lbW9yeSwKKysJCQkJICAgICBwLT52Lm1lbS5hZGRyICsgYml0c190b19z a2lwIC8gOCwKKysJCQkJICAgICB2X2NvbnRlbnRzICsgb2Zmc2V0IC8gOCwKKysJCQkJICAgICB0 aGlzX3NpemVfYml0cyAvIDgpOworKwkJYnJlYWs7CisrCSAgICAgIH0KKysKKysJICAgIHRoaXNf c2l6ZSA9IGJpdHNfdG9fYnl0ZXMgKGJpdHNfdG9fc2tpcCwgdGhpc19zaXplX2JpdHMpOworKwkg ICAgYnVmZmVyLnJlc2VydmUgKHRoaXNfc2l6ZSk7CisrCisrCSAgICBpZiAoZnJvbSA9PSBOVUxM KQorKwkgICAgICB7CisrCQkvKiBSZWFkIG1vZGUuICAqLworKwkJcmVhZF92YWx1ZV9tZW1vcnkg KHYsIG9mZnNldCwKKysJCQkJICAgcC0+di5tZW0uaW5fc3RhY2tfbWVtb3J5LAorKwkJCQkgICBw LT52Lm1lbS5hZGRyICsgYml0c190b19za2lwIC8gOCwKKysJCQkJICAgYnVmZmVyLmRhdGEgKCks IHRoaXNfc2l6ZSk7CisrCQljb3B5X2JpdHdpc2UgKHZfY29udGVudHMsIG9mZnNldCwKKysJCQkg ICAgICBidWZmZXIuZGF0YSAoKSwgYml0c190b19za2lwICUgOCwKKysJCQkgICAgICB0aGlzX3Np emVfYml0cywgYml0c19iaWdfZW5kaWFuKTsKKysJICAgICAgfQorKwkgICAgZWxzZQorKwkgICAg ICB7CisrCQkvKiBXcml0ZSBtb2RlLiAgKi8KKysJCWlmIChiaXRzX3RvX3NraXAgJSA4ICE9IDAg fHwgdGhpc19zaXplX2JpdHMgJSA4ICE9IDApCisrCQkgIHsKKysJCSAgICBpZiAodGhpc19zaXpl IDw9IDgpCisrCQkgICAgICB7CisrCQkJLyogUGVyZm9ybSBhIHNpbmdsZSByZWFkIGZvciBzbWFs bCBzaXplcy4gICovCisrCQkJcmVhZF9tZW1vcnkgKHN0YXJ0X2FkZHIsIGJ1ZmZlci5kYXRhICgp LAorKwkJCQkgICAgIHRoaXNfc2l6ZSk7CisrCQkgICAgICB9CisrCQkgICAgZWxzZQorKwkJICAg ICAgeworKwkJCS8qIE9ubHkgdGhlIGZpcnN0IGFuZCBsYXN0IGJ5dGVzIGNhbiBwb3NzaWJseSBo YXZlCisrCQkJICAgYW55IGJpdHMgcmV1c2VkLiAgKi8KKysJCQlyZWFkX21lbW9yeSAoc3RhcnRf YWRkciwgYnVmZmVyLmRhdGEgKCksIDEpOworKwkJCXJlYWRfbWVtb3J5IChzdGFydF9hZGRyICsg dGhpc19zaXplIC0gMSwKKysJCQkJICAgICAmYnVmZmVyW3RoaXNfc2l6ZSAtIDFdLCAxKTsKKysJ CSAgICAgIH0KKysJCSAgfQorKworKwkJY29weV9iaXR3aXNlIChidWZmZXIuZGF0YSAoKSwgYml0 c190b19za2lwICUgOCwKKysJCQkgICAgICBmcm9tX2NvbnRlbnRzLCBvZmZzZXQsCisrCQkJICAg ICAgdGhpc19zaXplX2JpdHMsIGJpdHNfYmlnX2VuZGlhbik7CisrCQl3cml0ZV9tZW1vcnlfd2l0 aF9ub3RpZmljYXRpb24gKHN0YXJ0X2FkZHIsCisrCQkJCQkJYnVmZmVyLmRhdGEgKCksCisrCQkJ CQkJdGhpc19zaXplKTsKKysJICAgICAgfQorKwkgIH0KKyAJICBicmVhazsKKyAKKyAJY2FzZSBE V0FSRl9WQUxVRV9TVEFDSzoKKyAJICB7CisrCSAgICBpZiAoZnJvbSAhPSBOVUxMKQorKwkgICAg ICB7CisrCQltYXJrX3ZhbHVlX2JpdHNfb3B0aW1pemVkX291dCAodiwgb2Zmc2V0LCB0aGlzX3Np emVfYml0cyk7CisrCQlicmVhazsKKysJICAgICAgfQorKworIAkgICAgc3RydWN0IG9iamZpbGUg Km9iamZpbGUgPSBkd2FyZjJfcGVyX2N1X29iamZpbGUgKGMtPnBlcl9jdSk7CisgCSAgICBzdHJ1 Y3QgZ2RiYXJjaCAqb2JqZmlsZV9nZGJhcmNoID0gZ2V0X29iamZpbGVfYXJjaCAob2JqZmlsZSk7 CisgCSAgICBVTE9OR0VTVCBzdGFja192YWx1ZV9zaXplX2JpdHMKK0BAIC0xODc0LDcgKzE5OTUs NyBAQCByZWFkX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQorIAkgICAgZWxzZQorIAkg ICAgICBiaXRzX3RvX3NraXAgKz0gcC0+b2Zmc2V0OworIAorLQkgICAgY29weV9iaXR3aXNlIChj b250ZW50cywgb2Zmc2V0LAorKwkgICAgY29weV9iaXR3aXNlICh2X2NvbnRlbnRzLCBvZmZzZXQs CisgCQkJICB2YWx1ZV9jb250ZW50c19hbGwgKHAtPnYudmFsdWUpLAorIAkJCSAgYml0c190b19z a2lwLAorIAkJCSAgdGhpc19zaXplX2JpdHMsIGJpdHNfYmlnX2VuZGlhbik7CitAQCAtMTg4Myw2 ICsyMDA0LDEyIEBAIHJlYWRfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnYpCisgCisgCWNh c2UgRFdBUkZfVkFMVUVfTElURVJBTDoKKyAJICB7CisrCSAgICBpZiAoZnJvbSAhPSBOVUxMKQor KwkgICAgICB7CisrCQltYXJrX3ZhbHVlX2JpdHNfb3B0aW1pemVkX291dCAodiwgb2Zmc2V0LCB0 aGlzX3NpemVfYml0cyk7CisrCQlicmVhazsKKysJICAgICAgfQorKworIAkgICAgVUxPTkdFU1Qg bGl0ZXJhbF9zaXplX2JpdHMgPSA4ICogcC0+di5saXRlcmFsLmxlbmd0aDsKKyAJICAgIHNpemVf dCBuID0gdGhpc19zaXplX2JpdHM7CisgCitAQCAtMTg5MywxNSArMjAyMCwyMSBAQCByZWFkX3Bp ZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQorIAkgICAgaWYgKG4gPiBsaXRlcmFsX3NpemVf Yml0cyAtIGJpdHNfdG9fc2tpcCkKKyAJICAgICAgbiA9IGxpdGVyYWxfc2l6ZV9iaXRzIC0gYml0 c190b19za2lwOworIAorLQkgICAgY29weV9iaXR3aXNlIChjb250ZW50cywgb2Zmc2V0LAorKwkg ICAgY29weV9iaXR3aXNlICh2X2NvbnRlbnRzLCBvZmZzZXQsCisgCQkJICBwLT52LmxpdGVyYWwu ZGF0YSwgYml0c190b19za2lwLAorIAkJCSAgbiwgYml0c19iaWdfZW5kaWFuKTsKKyAJICB9Cisg CSAgYnJlYWs7CisgCistCSAgLyogVGhlc2UgYml0cyBzaG93IHVwIGFzIHplcm9zIC0tIGJ1dCBk byBub3QgY2F1c2UgdGhlIHZhbHVlCistCSAgICAgdG8gYmUgY29uc2lkZXJlZCBvcHRpbWl6ZWQt b3V0LiAgKi8KKyAJY2FzZSBEV0FSRl9WQUxVRV9JTVBMSUNJVF9QT0lOVEVSOgorKwkgICAgaWYg KGZyb20gIT0gTlVMTCkKKysJICAgICAgeworKwkJbWFya192YWx1ZV9iaXRzX29wdGltaXplZF9v dXQgKHYsIG9mZnNldCwgdGhpc19zaXplX2JpdHMpOworKwkJYnJlYWs7CisrCSAgICAgIH0KKysK KysJICAvKiBUaGVzZSBiaXRzIHNob3cgdXAgYXMgemVyb3MgLS0gYnV0IGRvIG5vdCBjYXVzZSB0 aGUgdmFsdWUgdG8KKysJICAgICBiZSBjb25zaWRlcmVkIG9wdGltaXplZC1vdXQuICAqLworIAkg IGJyZWFrOworIAorIAljYXNlIERXQVJGX1ZBTFVFX09QVElNSVpFRF9PVVQ6CitAQCAtMTkxNywx NTQgKzIwNTAsMTcgQEAgcmVhZF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdikKKyAgICAg fQorIH0KKyAKKysKKyBzdGF0aWMgdm9pZAorLXdyaXRlX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZh bHVlICp0bywgc3RydWN0IHZhbHVlICpmcm9tKQorK3JlYWRfcGllY2VkX3ZhbHVlIChzdHJ1Y3Qg dmFsdWUgKnYpCisgeworLSAgaW50IGk7CistICBVTE9OR0VTVCBiaXRzX3RvX3NraXA7CistICBM T05HRVNUIG9mZnNldCA9IDAsIG1heF9vZmZzZXQ7CistICBjb25zdCBnZGJfYnl0ZSAqY29udGVu dHM7CistICBzdHJ1Y3QgcGllY2VfY2xvc3VyZSAqYworLSAgICA9IChzdHJ1Y3QgcGllY2VfY2xv c3VyZSAqKSB2YWx1ZV9jb21wdXRlZF9jbG9zdXJlICh0byk7CistICBzdGQ6OnZlY3RvcjxnZGJf Ynl0ZT4gYnVmZmVyOworLSAgaW50IGJpdHNfYmlnX2VuZGlhbgorLSAgICA9IGdkYmFyY2hfYml0 c19iaWdfZW5kaWFuIChnZXRfdHlwZV9hcmNoICh2YWx1ZV90eXBlICh0bykpKTsKKy0KKy0gIGNv bnRlbnRzID0gdmFsdWVfY29udGVudHMgKGZyb20pOworLSAgYml0c190b19za2lwID0gOCAqIHZh bHVlX29mZnNldCAodG8pOworLSAgaWYgKHZhbHVlX2JpdHNpemUgKHRvKSkKKy0gICAgeworLSAg ICAgIGJpdHNfdG9fc2tpcCArPSAoOCAqIHZhbHVlX29mZnNldCAodmFsdWVfcGFyZW50ICh0bykp CistCQkgICAgICAgKyB2YWx1ZV9iaXRwb3MgKHRvKSk7CistICAgICAgLyogVXNlIHRoZSBsZWFz dCBzaWduaWZpY2FudCBiaXRzIG9mIEZST00uICAqLworLSAgICAgIGlmIChnZGJhcmNoX2J5dGVf b3JkZXIgKGdldF90eXBlX2FyY2ggKHZhbHVlX3R5cGUgKGZyb20pKSkKKy0JICA9PSBCRkRfRU5E SUFOX0JJRykKKy0JeworLQkgIG1heF9vZmZzZXQgPSA4ICogVFlQRV9MRU5HVEggKHZhbHVlX3R5 cGUgKGZyb20pKTsKKy0JICBvZmZzZXQgPSBtYXhfb2Zmc2V0IC0gdmFsdWVfYml0c2l6ZSAodG8p OworLQl9CistICAgICAgZWxzZQorLQltYXhfb2Zmc2V0ID0gdmFsdWVfYml0c2l6ZSAodG8pOwor LSAgIH0KKy0gIGVsc2UKKy0gICAgbWF4X29mZnNldCA9IDggKiBUWVBFX0xFTkdUSCAodmFsdWVf dHlwZSAodG8pKTsKKy0KKy0gIC8qIEFkdmFuY2UgdG8gdGhlIGZpcnN0IG5vbi1za2lwcGVkIHBp ZWNlLiAgKi8KKy0gIGZvciAoaSA9IDA7IGkgPCBjLT5uX3BpZWNlcyAmJiBiaXRzX3RvX3NraXAg Pj0gYy0+cGllY2VzW2ldLnNpemU7IGkrKykKKy0gICAgYml0c190b19za2lwIC09IGMtPnBpZWNl c1tpXS5zaXplOworLQorLSAgZm9yICg7IGkgPCBjLT5uX3BpZWNlcyAmJiBvZmZzZXQgPCBtYXhf b2Zmc2V0OyBpKyspCistICAgIHsKKy0gICAgICBzdHJ1Y3QgZHdhcmZfZXhwcl9waWVjZSAqcCA9 ICZjLT5waWVjZXNbaV07CistICAgICAgc2l6ZV90IHRoaXNfc2l6ZV9iaXRzLCB0aGlzX3NpemU7 CistCistICAgICAgdGhpc19zaXplX2JpdHMgPSBwLT5zaXplIC0gYml0c190b19za2lwOworLSAg ICAgIGlmICh0aGlzX3NpemVfYml0cyA+IG1heF9vZmZzZXQgLSBvZmZzZXQpCistCXRoaXNfc2l6 ZV9iaXRzID0gbWF4X29mZnNldCAtIG9mZnNldDsKKy0KKy0gICAgICBzd2l0Y2ggKHAtPmxvY2F0 aW9uKQorLQl7CistCWNhc2UgRFdBUkZfVkFMVUVfUkVHSVNURVI6CistCSAgeworLQkgICAgc3Ry dWN0IGZyYW1lX2luZm8gKmZyYW1lID0gZnJhbWVfZmluZF9ieV9pZCAoYy0+ZnJhbWVfaWQpOwor LQkgICAgc3RydWN0IGdkYmFyY2ggKmFyY2ggPSBnZXRfZnJhbWVfYXJjaCAoZnJhbWUpOworLQkg ICAgaW50IGdkYl9yZWdudW0gPSBkd2FyZl9yZWdfdG9fcmVnbnVtX29yX2Vycm9yIChhcmNoLCBw LT52LnJlZ25vKTsKKy0JICAgIFVMT05HRVNUIHJlZ19iaXRzID0gOCAqIHJlZ2lzdGVyX3NpemUg KGFyY2gsIGdkYl9yZWdudW0pOworLQorLQkgICAgaWYgKGdkYmFyY2hfYnl0ZV9vcmRlciAoYXJj aCkgPT0gQkZEX0VORElBTl9CSUcKKy0JCSYmIHAtPm9mZnNldCArIHAtPnNpemUgPCByZWdfYml0 cykKKy0JICAgICAgeworLQkJLyogQmlnLWVuZGlhbiwgYW5kIHdlIHdhbnQgbGVzcyB0aGFuIGZ1 bGwgc2l6ZS4gICovCistCQliaXRzX3RvX3NraXAgKz0gcmVnX2JpdHMgLSAocC0+b2Zmc2V0ICsg cC0+c2l6ZSk7CistCSAgICAgIH0KKy0JICAgIGVsc2UKKy0JICAgICAgYml0c190b19za2lwICs9 IHAtPm9mZnNldDsKKy0KKy0JICAgIHRoaXNfc2l6ZSA9IGJpdHNfdG9fYnl0ZXMgKGJpdHNfdG9f c2tpcCwgdGhpc19zaXplX2JpdHMpOworLQkgICAgYnVmZmVyLnJlc2VydmUgKHRoaXNfc2l6ZSk7 CistCistCSAgICBpZiAoYml0c190b19za2lwICUgOCAhPSAwIHx8IHRoaXNfc2l6ZV9iaXRzICUg OCAhPSAwKQorLQkgICAgICB7CistCQkvKiBEYXRhIGlzIGNvcGllZCBub24tYnl0ZS1hbGlnbmVk IGludG8gdGhlIHJlZ2lzdGVyLgorLQkJICAgTmVlZCBzb21lIGJpdHMgZnJvbSBvcmlnaW5hbCBy ZWdpc3RlciB2YWx1ZS4gICovCistCQlpbnQgb3B0aW0sIHVuYXZhaWw7CistCistCQlpZiAoIWdl dF9mcmFtZV9yZWdpc3Rlcl9ieXRlcyAoZnJhbWUsIGdkYl9yZWdudW0sCistCQkJCQkgICAgICAg Yml0c190b19za2lwIC8gOCwKKy0JCQkJCSAgICAgICB0aGlzX3NpemUsIGJ1ZmZlci5kYXRhICgp LAorLQkJCQkJICAgICAgICZvcHRpbSwgJnVuYXZhaWwpKQorLQkJICB7CistCQkgICAgaWYgKG9w dGltKQorLQkJICAgICAgdGhyb3dfZXJyb3IgKE9QVElNSVpFRF9PVVRfRVJST1IsCistCQkJCSAg IF8oIkNhbid0IGRvIHJlYWQtbW9kaWZ5LXdyaXRlIHRvICIKKy0JCQkJICAgICAidXBkYXRlIGJp dGZpZWxkOyBjb250YWluaW5nIHdvcmQgIgorLQkJCQkgICAgICJoYXMgYmVlbiBvcHRpbWl6ZWQg b3V0IikpOworLQkJICAgIGlmICh1bmF2YWlsKQorLQkJICAgICAgdGhyb3dfZXJyb3IgKE5PVF9B VkFJTEFCTEVfRVJST1IsCistCQkJCSAgIF8oIkNhbid0IGRvIHJlYWQtbW9kaWZ5LXdyaXRlIHRv IHVwZGF0ZSAiCistCQkJCSAgICAgImJpdGZpZWxkOyBjb250YWluaW5nIHdvcmQgIgorLQkJCQkg ICAgICJpcyB1bmF2YWlsYWJsZSIpKTsKKy0JCSAgfQorLQkgICAgICB9CistCistCSAgICBjb3B5 X2JpdHdpc2UgKGJ1ZmZlci5kYXRhICgpLCBiaXRzX3RvX3NraXAgJSA4LAorLQkJCSAgY29udGVu dHMsIG9mZnNldCwKKy0JCQkgIHRoaXNfc2l6ZV9iaXRzLCBiaXRzX2JpZ19lbmRpYW4pOworLQkg ICAgcHV0X2ZyYW1lX3JlZ2lzdGVyX2J5dGVzIChmcmFtZSwgZ2RiX3JlZ251bSwKKy0JCQkJICAg ICAgYml0c190b19za2lwIC8gOCwKKy0JCQkJICAgICAgdGhpc19zaXplLCBidWZmZXIuZGF0YSAo KSk7CistCSAgfQorLQkgIGJyZWFrOworLQljYXNlIERXQVJGX1ZBTFVFX01FTU9SWToKKy0JICB7 CistCSAgICBiaXRzX3RvX3NraXAgKz0gcC0+b2Zmc2V0OworLQorLQkgICAgQ09SRV9BRERSIHN0 YXJ0X2FkZHIgPSBwLT52Lm1lbS5hZGRyICsgYml0c190b19za2lwIC8gODsKKy0KKy0JICAgIGlm IChiaXRzX3RvX3NraXAgJSA4ID09IDAgJiYgdGhpc19zaXplX2JpdHMgJSA4ID09IDAKKy0JCSYm IG9mZnNldCAlIDggPT0gMCkKKy0JICAgICAgeworLQkJLyogRXZlcnl0aGluZyBpcyBieXRlLWFs aWduZWQ7IG5vIGJ1ZmZlciBuZWVkZWQuICAqLworLQkJd3JpdGVfbWVtb3J5X3dpdGhfbm90aWZp Y2F0aW9uIChzdGFydF9hZGRyLAorLQkJCQkJCWNvbnRlbnRzICsgb2Zmc2V0IC8gOCwKKy0JCQkJ CQl0aGlzX3NpemVfYml0cyAvIDgpOworLQkJYnJlYWs7CistCSAgICAgIH0KKy0KKy0JICAgIHRo aXNfc2l6ZSA9IGJpdHNfdG9fYnl0ZXMgKGJpdHNfdG9fc2tpcCwgdGhpc19zaXplX2JpdHMpOwor LQkgICAgYnVmZmVyLnJlc2VydmUgKHRoaXNfc2l6ZSk7CistCistCSAgICBpZiAoYml0c190b19z a2lwICUgOCAhPSAwIHx8IHRoaXNfc2l6ZV9iaXRzICUgOCAhPSAwKQorLQkgICAgICB7CistCQlp ZiAodGhpc19zaXplIDw9IDgpCistCQkgIHsKKy0JCSAgICAvKiBQZXJmb3JtIGEgc2luZ2xlIHJl YWQgZm9yIHNtYWxsIHNpemVzLiAgKi8KKy0JCSAgICByZWFkX21lbW9yeSAoc3RhcnRfYWRkciwg YnVmZmVyLmRhdGEgKCksIHRoaXNfc2l6ZSk7CistCQkgIH0KKy0JCWVsc2UKKy0JCSAgeworLQkJ ICAgIC8qIE9ubHkgdGhlIGZpcnN0IGFuZCBsYXN0IGJ5dGVzIGNhbiBwb3NzaWJseSBoYXZlIGFu eQorLQkJICAgICAgIGJpdHMgcmV1c2VkLiAgKi8KKy0JCSAgICByZWFkX21lbW9yeSAoc3RhcnRf YWRkciwgYnVmZmVyLmRhdGEgKCksIDEpOworLQkJICAgIHJlYWRfbWVtb3J5IChzdGFydF9hZGRy ICsgdGhpc19zaXplIC0gMSwKKy0JCQkJICZidWZmZXJbdGhpc19zaXplIC0gMV0sIDEpOworLQkJ ICB9CistCSAgICAgIH0KKysgIHJ3X3BpZWNlZF92YWx1ZSAodiwgTlVMTCk7CisrfQorIAorLQkg ICAgY29weV9iaXR3aXNlIChidWZmZXIuZGF0YSAoKSwgYml0c190b19za2lwICUgOCwKKy0JCQkg IGNvbnRlbnRzLCBvZmZzZXQsCistCQkJICB0aGlzX3NpemVfYml0cywgYml0c19iaWdfZW5kaWFu KTsKKy0JICAgIHdyaXRlX21lbW9yeV93aXRoX25vdGlmaWNhdGlvbiAoc3RhcnRfYWRkciwgYnVm ZmVyLmRhdGEgKCksCistCQkJCQkgICAgdGhpc19zaXplKTsKKy0JICB9CistCSAgYnJlYWs7Cist CWRlZmF1bHQ6CistCSAgbWFya192YWx1ZV9ieXRlc19vcHRpbWl6ZWRfb3V0ICh0bywgMCwgVFlQ RV9MRU5HVEggKHZhbHVlX3R5cGUgKHRvKSkpOworLQkgIGJyZWFrOworLQl9CistICAgICAgb2Zm c2V0ICs9IHRoaXNfc2l6ZV9iaXRzOworLSAgICAgIGJpdHNfdG9fc2tpcCA9IDA7CistICAgIH0K KytzdGF0aWMgdm9pZAorK3dyaXRlX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp0bywgc3Ry dWN0IHZhbHVlICpmcm9tKQorK3sKKysgIHJ3X3BpZWNlZF92YWx1ZSAodG8sIGZyb20pOworIH0K KyAKKyAvKiBBbiBpbXBsZW1lbnRhdGlvbiBvZiBhbiBsdmFsX2Z1bmNzIG1ldGhvZCB0byBzZWUg d2hldGhlciBhIHZhbHVlIGlzCgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTI4 b2YzNS5wYXRjaCBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0yOG9mMzUucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjdkZDI4YgotLS0gL2Rldi9udWxsCisrKyBiL2dk Yi1yaGJ6MTQyMDMwNC1zMzkweC0yOG9mMzUucGF0Y2gKQEAgLTAsMCArMSw2MCBAQAorY29tbWl0 IDU1MjRiNTI1MGUzMTlmNDE5MzM2MDU0MjBlOTUyNmZiNzRjZmI5YWUKK0F1dGhvcjogQW5kcmVh cyBBcm5leiA8YXJuZXpAbGludXgudm5ldC5pYm0uY29tPgorRGF0ZTogICBXZWQgSnVuIDE0IDE0 OjI0OjAzIDIwMTcgKzAyMDAKKworICAgIEZpeCByZWdpc3RlciBzZWxlY3Rpb24gaW4gdmFyLWFj Y2Vzcy5leHAKKyAgICAKKyAgICBUaGUgbmV3IHRlc3QgdmFyLWFjY2Vzcy5leHAgY2F1c2VzIEZB SUxzIG9uIGk2ODYuICBUaGlzIGlzIGJlY2F1c2UgdGhlCisgICAgdGVzdCBjaG9vc2VzIHRoZSB3 cm9uZyBuYW1lIGZvciBEV0FSRiByZWdpc3RlciBudW1iZXIgMTogSXQgdXNlcworICAgICJlZHgi ICh3aGljaCBjb3JyZXNwb25kcyB0byBEV0FSRiByZWdpc3RlciBudW1iZXIgMiksIGJ1dCBzaG91 bGQgaGF2ZSB1c2VkCisgICAgImVjeCIgaW5zdGVhZC4KKyAgICAKKyAgICBBbHNvLCB0aGUgY3Vy cmVudCBsb2dpYyBpbiB2YXItYWNjZXNzLmV4cCBkb2VzIG5vdCBjb3JyZWN0bHkgZGlzdGluZ3Vp c2gKKyAgICBiZXR3ZWVuIGEgNjQtYml0IGFuZCBhIDMyLWJpdCBwcm9ncmFtIG9uIGFuIHg4Ni02 NCB0YXJnZXQuICBJdCB1c2VzIHRoZQorICAgIDY0LWJpdCByZWdpc3RlciBuYW1lcyBmb3IgYm90 aC4KKyAgICAKKyAgICBUaGVzZSBwcm9ibGVtcyBhcmUgZml4ZWQuICBJbiBvcmRlciB0byBhZGRy ZXNzIHRoZSBsYXR0ZXIsIHRoZSBjb252ZW5pZW5jZQorICAgIG1hY3JvcyBpc18qX3RhcmdldCBh cmUgZXhwbG9pdGVkIHdoZXJlIGFwcHJvcHJpYXRlLgorICAgIAorICAgIGdkYi90ZXN0c3VpdGUv Q2hhbmdlTG9nOgorICAgIAorICAgICAgICAgICAgKiBnZGIuZHdhcmYyL3Zhci1hY2Nlc3MuZXhw OiBVc2UgcmVnaXN0ZXIgbmFtZSBlY3ggaW5zdGVhZCBvZiBlZHgKKyAgICAgICAgICAgIG9uIDMy LWJpdCB4ODYgdGFyZ2V0cy4gIEV4cGxvaXQgaXNfKl90YXJnZXQgbWFjcm9zIHdoZXJlCisgICAg ICAgICAgICBhcHByb3ByaWF0ZS4KKworIyMjIGEvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKKyMj IyBiL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCisjIyAtMSwzICsxLDkgQEAKKysyMDE3LTA2LTE0 ICBBbmRyZWFzIEFybmV6ICA8YXJuZXpAbGludXgudm5ldC5pYm0uY29tPgorKworKwkqIGdkYi5k d2FyZjIvdmFyLWFjY2Vzcy5leHA6IFVzZSByZWdpc3RlciBuYW1lIGVjeCBpbnN0ZWFkIG9mIGVk eAorKwlvbiAzMi1iaXQgeDg2IHRhcmdldHMuICBFeHBsb2l0IGlzXypfdGFyZ2V0IG1hY3JvcyB3 aGVyZQorKwlhcHByb3ByaWF0ZS4KKysKKyAyMDE3LTA2LTEzICBBbmRyZWFzIEFybmV6ICA8YXJu ZXpAbGludXgudm5ldC5pYm0uY29tPgorIAorIAkqIGdkYi5kd2FyZjIvdmFyLWFjY2Vzcy5leHA6 IEFkZCB0ZXN0IGZvciBub24tYnl0ZS1hbGlnbmVkCistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5k d2FyZjIvdmFyLWFjY2Vzcy5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi92YXIt YWNjZXNzLmV4cAorQEAgLTI4LDE2ICsyOCwxNiBAQCBpZiB7IVtkd2FyZjJfc3VwcG9ydF19IHsK KyAKKyBzZXQgZHdhcmZfcmVnbnVtIHswIDF9CisgCistaWYgeyBbaXN0YXJnZXQgImFhcmNoNjQq LSotKiJdIH0geworK2lmIHsgW2lzX2FhcmNoNjRfdGFyZ2V0XSB9IHsKKyAgICAgc2V0IHJlZ25h bWUge3gwIHgxfQorLX0gZWxzZWlmIHsgW2lzdGFyZ2V0ICJhcm0qLSotKiJdCisrfSBlbHNlaWYg eyBbaXNfYWFyY2gzMl90YXJnZXRdCisgCSAgIHx8IFtpc3RhcmdldCAiczM5MCotKi0qIiBdCisg CSAgIHx8IFtpc3RhcmdldCAicG93ZXJwYyotKi0qIl0KKyAJICAgfHwgW2lzdGFyZ2V0ICJyczYw MDAqLSotYWl4KiJdIH0geworICAgICBzZXQgcmVnbmFtZSB7cjAgcjF9CistfSBlbHNlaWYgeyBb aXN0YXJnZXQgImk/ODYtKi0qIl0gfSB7CistICAgIHNldCByZWduYW1lIHtlYXggZWR4fQorLX0g ZWxzZWlmIHsgW2lzdGFyZ2V0ICJ4ODZfNjQtKi0qIl0gfSB7CisrfSBlbHNlaWYgeyBbaXNfeDg2 X2xpa2VfdGFyZ2V0XSB9IHsKKysgICAgc2V0IHJlZ25hbWUge2VheCBlY3h9CisrfSBlbHNlaWYg eyBbaXNfYW1kNjRfcmVnc190YXJnZXRdIH0geworICAgICBzZXQgcmVnbmFtZSB7cmF4IHJkeH0K KyB9IGVsc2UgeworICAgICB2ZXJib3NlICJTa2lwcGluZyB0ZXN0cyBmb3IgYWNjZXNzaW5nIERX QVJGLWRlc2NyaWJlZCB2YXJpYWJsZXMuIgoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6MTQyMDMwNC1z MzkweC0yOW9mMzUucGF0Y2ggYi9nZGItcmhiejE0MjAzMDQtczM5MHgtMjlvZjM1LnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllOTMxMmUKLS0tIC9kZXYvbnVsbAor KysgYi9nZGItcmhiejE0MjAzMDQtczM5MHgtMjlvZjM1LnBhdGNoCkBAIC0wLDAgKzEsMTk3IEBA Citjb21taXQgYjRjYmJlOGY3Mjk0MDcwY2M5M2E3MWFjZTc4ZjEzNDk2NWRkYWQ4MgorQXV0aG9y OiBBbmRyZWFzIEtyZWJiZWwgPGtyZWJiZWxAbGludXgudm5ldC5pYm0uY29tPgorRGF0ZTogICBU aHUgSnVuIDggMTc6MjQ6NTAgMjAxNyArMDIwMAorCisgICAgUy8zOTA6IEFkZCBzdXBwb3J0IGZv ciBwZ3N0ZSBtYXJrZXIKKyAgICAKKyAgICBUaGlzIHBhdGNoIGFkZHMgYSBuZXcgUy8zOTAgc3Bl Y2lmaWMgc2VnbWVudCB0eXBlOiBQVF9TMzkwX1BHU1RFLiAgRm9yCisgICAgYmluYXJpZXMgbWFy a2VkIHdpdGggdGhhdCBzZWdtZW50IHRoZSBrZXJuZWwgd2lsbCBhbGxvY2F0ZSA0ayBwYWdlCisg ICAgdGFibGVzLiAgVGhlIG9ubHkgdXNlciBzbyBmYXIgd2lsbCBiZSBxZW11LgorICAgIAorICAg IGxkL0NoYW5nZUxvZzoKKyAgICAKKyAgICAyMDE3LTA2LTIzICBBbmRyZWFzIEtyZWJiZWwgIDxr cmViYmVsQGxpbnV4LnZuZXQuaWJtLmNvbT4KKyAgICAKKyAgICAgICAgICAgICogTWFrZWZpbGUu aW46IEFkZCBzMzkwLmVtIGFzIGJ1aWxkIGRlcGVuZGVuY3kuCisgICAgICAgICAgICAqIGVtdWxw YXJhbXMvZWxmNjRfczM5MC5zaCAoRVhUUkFfRU1fRklMRSk6IEFkZCBzMzkwLmVtLgorICAgICAg ICAgICAgKiBlbXVsdGVtcGwvczM5MC5lbTogTmV3IGZpbGUuCisgICAgICAgICAgICAqIGdlbi1k b2MudGV4aTogQWRkIGRvY3VtZW50YXRpb24gZm9yIC0tczM5MC1wZ3N0ZSBvcHRpb24uCisgICAg ICAgICAgICAqIGxkLnRleGluZm86IExpa2V3aXNlLgorICAgIAorICAgIGluY2x1ZGUvQ2hhbmdl TG9nOgorICAgIAorICAgIDIwMTctMDYtMjMgIEFuZHJlYXMgS3JlYmJlbCAgPGtyZWJiZWxAbGlu dXgudm5ldC5pYm0uY29tPgorICAgIAorICAgICAgICAgICAgKiBlbGYvczM5MC5oIChQVF9TMzkw X1BHU1RFKTogRGVmaW5lIG1hY3JvLgorICAgIAorICAgIGJpbnV0aWxzL0NoYW5nZUxvZzoKKyAg ICAKKyAgICAyMDE3LTA2LTIzICBBbmRyZWFzIEtyZWJiZWwgIDxrcmViYmVsQGxpbnV4LnZuZXQu aWJtLmNvbT4KKyAgICAKKyAgICAgICAgICAgICogcmVhZGVsZi5jIChnZXRfczM5MF9zZWdtZW50 X3R5cGUpOiBBZGQgc3VwcG9ydCBmb3IgdGhlIG5ldworICAgICAgICAgICAgc2VnbWVudCB0eXBl IFBUX1MzOTBfUEdTVEUuCisgICAgICAgICAgICAoZ2V0X3NlZ21lbnRfdHlwZSk6IENhbGwgZ2V0 X3MzOTBfc2VnbWVudF90eXBlLgorICAgIAorICAgIGVsZmNwcC9DaGFuZ2VMb2c6CisgICAgCisg ICAgMjAxNy0wNi0yMyAgQW5kcmVhcyBLcmViYmVsICA8a3JlYmJlbEBsaW51eC52bmV0LmlibS5j b20+CisgICAgCisgICAgICAgICAgICAqIGVsZmNwcC5oIChlbnVtIFBUKTogQWRkIFBUX1MzOTBf UEdTVEUgdG8gZW51bS4KKyAgICAKKyAgICBiZmQvQ2hhbmdlTG9nOgorICAgIAorICAgIDIwMTct MDYtMjMgIEFuZHJlYXMgS3JlYmJlbCAgPGtyZWJiZWxAbGludXgudm5ldC5pYm0uY29tPgorICAg IAorICAgICAgICAgICAgKiBlbGYtczM5MC5oOiBOZXcgZmlsZS4KKyAgICAgICAgICAgICogZWxm NjQtczM5MC5jIChzdHJ1Y3QgZWxmX3MzOTBfbGlua19oYXNoX3RhYmxlKTogQWRkIHBhcmFtcwor ICAgICAgICAgICAgZmllbGQuCisgICAgICAgICAgICAoZWxmX3MzOTBfYWRkaXRpb25hbF9wcm9n cmFtX2hlYWRlcnMpOiBOZXcgZnVuY3Rpb24uCisgICAgICAgICAgICAoZWxmX3MzOTBfbW9kaWZ5 X3NlZ21lbnRfbWFwKTogTmV3IGZ1bmN0aW9uLgorICAgICAgICAgICAgKGJmZF9lbGZfczM5MF9z ZXRfb3B0aW9ucyk6IE5ldyBmdW5jdGlvbi4KKyAgICAgICAgICAgIChlbGZfYmFja2VuZF9hZGRp dGlvbmFsX3Byb2dyYW1faGVhZGVycykKKyAgICAgICAgICAgIChlbGZfYmFja2VuZF9tb2RpZnlf c2VnbWVudF9tYXApOiBBZGQgbWFjcm8gZGVmaW5pdGlvbnMuCisKKy0tLSAvZGV2L251bGwKKysr KyBiL2JmZC9lbGYtczM5MC5oCitAQCAtMCwwICsxLDI5IEBACisrLyogUy8zOTAtc3BlY2lmaWMg c3VwcG9ydCBmb3IgRUxGLgorKyAgIENvcHlyaWdodCAoQykgMjAxNyBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KKysKKysgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBCRkQsIHRoZSBCaW5h cnkgRmlsZSBEZXNjcmlwdG9yIGxpYnJhcnkuCisrCisrICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUg c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysgICBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieQorKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9u IDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy c2lvbi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysgICBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrICAg YWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdh cmUKKysgICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQgLSBGaWZ0aCBGbG9v ciwgQm9zdG9uLAorKyAgIE1BIDAyMTEwLTEzMDEsIFVTQS4gICovCisrCisrLyogVXNlZCB0byBw YXNzIGluZm8gYmV0d2VlbiBsZCBhbmQgYmZkLiAgKi8KKytzdHJ1Y3QgczM5MF9lbGZfcGFyYW1z CisreworKyAgLyogVGVsbCB0aGUga2VybmVsIHRvIGFsbG9jYXRlIDRrIHBhZ2UgdGFibGVzLiAg Ki8KKysgIGludCBwZ3N0ZTsKKyt9OworKworK2JmZF9ib29sZWFuIGJmZF9lbGZfczM5MF9zZXRf b3B0aW9ucyAoc3RydWN0IGJmZF9saW5rX2luZm8gKmluZm8sCisrCQkJCSAgICAgIHN0cnVjdCBz MzkwX2VsZl9wYXJhbXMgKnBhcmFtcyk7CistLS0gYS9iZmQvZWxmNjQtczM5MC5jCisrKysgYi9i ZmQvZWxmNjQtczM5MC5jCitAQCAtMjUsNiArMjUsNyBAQAorICNpbmNsdWRlICJsaWJiZmQuaCIK KyAjaW5jbHVkZSAiZWxmLWJmZC5oIgorICNpbmNsdWRlICJlbGYvczM5MC5oIgorKyNpbmNsdWRl ICJlbGYtczM5MC5oIgorICNpbmNsdWRlIDxzdGRhcmcuaD4KKyAKKyAvKiBJbiBjYXNlIHdlJ3Jl IG9uIGEgMzItYml0IG1hY2hpbmUsIGNvbnN0cnVjdCBhIDY0LWJpdCAiLTEiIHZhbHVlCitAQCAt NjYwLDYgKzY2MSw5IEBAIHN0cnVjdCBlbGZfczM5MF9saW5rX2hhc2hfdGFibGUKKyAKKyAgIC8q IFNtYWxsIGxvY2FsIHN5bSBjYWNoZS4gICovCisgICBzdHJ1Y3Qgc3ltX2NhY2hlIHN5bV9jYWNo ZTsKKysKKysgIC8qIE9wdGlvbnMgcGFzc2VkIGZyb20gdGhlIGxpbmtlci4gICovCisrICBzdHJ1 Y3QgczM5MF9lbGZfcGFyYW1zICpwYXJhbXM7CisgfTsKKyAKKyAvKiBHZXQgdGhlIHMzOTAgRUxG IGxpbmtlciBoYXNoIHRhYmxlIGZyb20gYSBsaW5rX2luZm8gc3RydWN0dXJlLiAgKi8KK0BAIC0z OTY2LDYgKzM5NzAsNzAgQEAgZWxmNjRfczM5MF9tZXJnZV9wcml2YXRlX2JmZF9kYXRhIChiZmQg KmliZmQsIHN0cnVjdCBiZmRfbGlua19pbmZvICppbmZvKQorICAgcmV0dXJuIGVsZl9zMzkwX21l cmdlX29ial9hdHRyaWJ1dGVzIChpYmZkLCBpbmZvKTsKKyB9CisgCisrLyogV2UgbWF5IGFkZCBh IFBUX1MzOTBfUEdTVEUgcHJvZ3JhbSBoZWFkZXIuICAqLworKworK3N0YXRpYyBpbnQKKytlbGZf czM5MF9hZGRpdGlvbmFsX3Byb2dyYW1faGVhZGVycyAoYmZkICphYmZkIEFUVFJJQlVURV9VTlVT RUQsCisrCQkJCSAgICAgc3RydWN0IGJmZF9saW5rX2luZm8gKmluZm8pCisreworKyAgc3RydWN0 IGVsZl9zMzkwX2xpbmtfaGFzaF90YWJsZSAqaHRhYjsKKysKKysgIGh0YWIgPSBlbGZfczM5MF9o YXNoX3RhYmxlIChpbmZvKTsKKysgIHJldHVybiBodGFiLT5wYXJhbXMtPnBnc3RlOworK30KKysK KysKKysvKiBBZGQgdGhlIFBUX1MzOTBfUEdTVEUgcHJvZ3JhbSBoZWFkZXIuICAqLworKworK3N0 YXRpYyBiZmRfYm9vbGVhbgorK2VsZl9zMzkwX21vZGlmeV9zZWdtZW50X21hcCAoYmZkICphYmZk IEFUVFJJQlVURV9VTlVTRUQsCisrCQkJICAgICBzdHJ1Y3QgYmZkX2xpbmtfaW5mbyAqaW5mbykK Kyt7CisrICBzdHJ1Y3QgZWxmX3MzOTBfbGlua19oYXNoX3RhYmxlICpodGFiOworKyAgc3RydWN0 IGVsZl9zZWdtZW50X21hcCAqbSwgKnBtID0gTlVMTDsKKysKKysgIGh0YWIgPSBlbGZfczM5MF9o YXNoX3RhYmxlIChpbmZvKTsKKysgIGlmICghaHRhYi0+cGFyYW1zLT5wZ3N0ZSkKKysgICAgcmV0 dXJuIFRSVUU7CisrCisrICAvKiBJZiB0aGVyZSBpcyBhbHJlYWR5IGEgUFRfUzM5MF9QR1NURSBo ZWFkZXIsIGF2b2lkIGFkZGluZworKyAgICAgYW5vdGhlci4gICovCisrICBtID0gZWxmX3NlZ19t YXAgKGFiZmQpOworKyAgd2hpbGUgKG0gJiYgbS0+cF90eXBlICE9IFBUX1MzOTBfUEdTVEUpCisr ICAgIHsKKysgICAgICBwbSA9IG07CisrICAgICAgbSA9IG0tPm5leHQ7CisrICAgIH0KKysKKysg IGlmIChtKQorKyAgICByZXR1cm4gVFJVRTsKKysKKysgIG0gPSAoc3RydWN0IGVsZl9zZWdtZW50 X21hcCAqKQorKyAgICBiZmRfemFsbG9jIChhYmZkLCBzaXplb2YgKHN0cnVjdCBlbGZfc2VnbWVu dF9tYXApKTsKKysgIGlmIChtID09IE5VTEwpCisrICAgIHJldHVybiBGQUxTRTsKKysgIG0tPnBf dHlwZSA9IFBUX1MzOTBfUEdTVEU7CisrICBtLT5jb3VudCA9IDA7CisrICBtLT5uZXh0ID0gTlVM TDsKKysgIGlmIChwbSkKKysgICAgcG0tPm5leHQgPSBtOworKworKyAgcmV0dXJuIFRSVUU7Cisr fQorKworK2JmZF9ib29sZWFuCisrYmZkX2VsZl9zMzkwX3NldF9vcHRpb25zIChzdHJ1Y3QgYmZk X2xpbmtfaW5mbyAqaW5mbywKKysJCQkgIHN0cnVjdCBzMzkwX2VsZl9wYXJhbXMgKnBhcmFtcykK Kyt7CisrICBzdHJ1Y3QgZWxmX3MzOTBfbGlua19oYXNoX3RhYmxlICpodGFiOworKworKyAgaHRh YiA9IGVsZl9zMzkwX2hhc2hfdGFibGUgKGluZm8pOworKyAgaHRhYi0+cGFyYW1zID0gcGFyYW1z OworKworKyAgcmV0dXJuIFRSVUU7CisrfQorKworKworIC8qIFdoeSB3YXMgdGhlIGhhc2ggdGFi bGUgZW50cnkgc2l6ZSBkZWZpbml0aW9uIGNoYW5nZWQgZnJvbQorICAgIEFSQ0hfU0laRS84IHRv IDQ/IFRoaXMgYnJlYWtzIHRoZSA2NCBiaXQgZHluYW1pYyBsaW5rZXIgYW5kCisgICAgdGhpcyBp cyB0aGUgb25seSByZWFzb24gZm9yIHRoZSBzMzkwX2VsZjY0X3NpemVfaW5mbyBzdHJ1Y3R1cmUu ICAqLworQEAgLTQwNDYsNiArNDExNCw4IEBAIGNvbnN0IHN0cnVjdCBlbGZfc2l6ZV9pbmZvIHMz OTBfZWxmNjRfc2l6ZV9pbmZvID0KKyAjZGVmaW5lIGVsZl9iYWNrZW5kX3BsdF9zeW1fdmFsCQkg ICAgICBlbGZfczM5MF9wbHRfc3ltX3ZhbAorICNkZWZpbmUgZWxmX2JhY2tlbmRfYWRkX3N5bWJv bF9ob29rICAgICAgICAgICBlbGZfczM5MF9hZGRfc3ltYm9sX2hvb2sKKyAjZGVmaW5lIGVsZl9i YWNrZW5kX3NvcnRfcmVsb2NzX3AgICAgICAgICAgICAgZWxmX3MzOTBfZWxmX3NvcnRfcmVsb2Nz X3AKKysjZGVmaW5lIGVsZl9iYWNrZW5kX2FkZGl0aW9uYWxfcHJvZ3JhbV9oZWFkZXJzIGVsZl9z MzkwX2FkZGl0aW9uYWxfcHJvZ3JhbV9oZWFkZXJzCisrI2RlZmluZSBlbGZfYmFja2VuZF9tb2Rp Znlfc2VnbWVudF9tYXAJICAgICAgZWxmX3MzOTBfbW9kaWZ5X3NlZ21lbnRfbWFwCisgCisgI2Rl ZmluZSBiZmRfZWxmNjRfbWtvYmplY3QJCWVsZl9zMzkwX21rb2JqZWN0CisgI2RlZmluZSBlbGZf YmFja2VuZF9vYmplY3RfcAkJZWxmX3MzOTBfb2JqZWN0X3AKKy0tLSBhL2luY2x1ZGUvZWxmL3Mz OTAuaAorKysrIGIvaW5jbHVkZS9lbGYvczM5MC5oCitAQCAtMzcsNiArMzcsOSBAQAorIAorICNk ZWZpbmUgRUZfUzM5MF9ISUdIX0dQUlMgICAgICAgIDB4MDAwMDAwMDEKKyAKKysvKiBSZXF1ZXN0 IDRrIHBhZ2UgdGFibGUgc2l6ZS4gICovCisrI2RlZmluZSBQVF9TMzkwX1BHU1RFIChQVF9MT1BS T0MgKyAwKQorKworIC8qIFJlbG9jYXRpb24gdHlwZXMuICAqLworIAorIFNUQVJUX1JFTE9DX05V TUJFUlMgKGVsZl9zMzkwX3JlbG9jX3R5cGUpCgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYnoxNDIwMzA0 LXMzOTB4LTMwb2YzNS5wYXRjaCBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0zMG9mMzUucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDU2ZTRkMwotLS0gL2Rldi9udWxs CisrKyBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0zMG9mMzUucGF0Y2gKQEAgLTAsMCArMSw4NSBA QAorY29tbWl0IDkzZWM1ZTIzNzY2YTlmNzVhYTQ5NTA3NDhjZjczOTY0MDI4YThkMWIKK0F1dGhv cjogQW5kcmVhcyBLcmViYmVsIDxrcmViYmVsQGxpbnV4LnZuZXQuaWJtLmNvbT4KK0RhdGU6ICAg TW9uIEp1biAyNiAxMTowMTo1OCAyMDE3ICswMjAwCisKKyAgICBTLzM5MDogRml4IHRlc3RzdWl0 ZSBzZWdmYXVsdCBhZGRlZCB3aXRoIHJlY2VudCBwZ3N0ZSBwYXRjaC4KKyAgICAKKyAgICBUaGUg cmVjZW50IHBnc3RlIHBhdGNoIGNhdXNlZCBzZXZlcmFsIHRlc3RjYXNlcyB0byBmYWlsIHdpdGgg YQorICAgIHNlZ2ZhdWx0LiAgRml4ZWQgd2l0aCB0aGlzIHBhdGNoIGJ5IGFkZGluZyBOVUxMIHBv aW50ZXIgY2hlY2tzLgorICAgIAorICAgIHJlZ3Jlc3Npb24tdGVzdGVkIG9uIHMzOTB4LgorICAg IAorICAgIGJmZC9DaGFuZ2VMb2c6CisgICAgCisgICAgMjAxNy0wNi0yNiAgQW5kcmVhcyBLcmVi YmVsICA8a3JlYmJlbEBsaW51eC52bmV0LmlibS5jb20+CisgICAgCisgICAgICAgICAgICAqIGVs ZjY0LXMzOTAuYyAoZWxmX3MzOTBfYWRkaXRpb25hbF9wcm9ncmFtX2hlYWRlcnMpOiBBZGQgTlVM TAorICAgICAgICAgICAgcG9pbnRlciBjaGVja3MuCisgICAgICAgICAgICAoZWxmX3MzOTBfbW9k aWZ5X3NlZ21lbnRfbWFwKTogTGlrZXdpc2UuCisgICAgICAgICAgICAoYmZkX2VsZl9zMzkwX3Nl dF9vcHRpb25zKTogTGlzZXdpc2UuCisKKyMjIyBhL2JmZC9DaGFuZ2VMb2cKKyMjIyBiL2JmZC9D aGFuZ2VMb2cKKyMjIC0xLDMgKzEsMTAgQEAKKysyMDE3LTA2LTI2ICBBbmRyZWFzIEtyZWJiZWwg IDxrcmViYmVsQGxpbnV4LnZuZXQuaWJtLmNvbT4KKysKKysJKiBlbGY2NC1zMzkwLmMgKGVsZl9z MzkwX2FkZGl0aW9uYWxfcHJvZ3JhbV9oZWFkZXJzKTogQWRkIE5VTEwKKysJcG9pbnRlciBjaGVj a3MuCisrCShlbGZfczM5MF9tb2RpZnlfc2VnbWVudF9tYXApOiBMaWtld2lzZS4KKysJKGJmZF9l bGZfczM5MF9zZXRfb3B0aW9ucyk6IExpc2V3aXNlLgorKworIDIwMTctMDYtMjYgIEFsYW4gTW9k cmEgIDxhbW9kcmFAZ21haWwuY29tPgorIAorIAkqIGVsZmxpbmsuYyAoX2JmZF9lbGZfbGlua19j cmVhdGVfZHluc3RydGFiKTogRG9uJ3QgbWFrZSBkeW5vYmoKKy0tLSBhL2JmZC9lbGY2NC1zMzkw LmMKKysrKyBiL2JmZC9lbGY2NC1zMzkwLmMKK0BAIC0zOTc4LDIyICszOTc4LDI5IEBAIGVsZl9z MzkwX2FkZGl0aW9uYWxfcHJvZ3JhbV9oZWFkZXJzIChiZmQgKmFiZmQgQVRUUklCVVRFX1VOVVNF RCwKKyB7CisgICBzdHJ1Y3QgZWxmX3MzOTBfbGlua19oYXNoX3RhYmxlICpodGFiOworIAorLSAg aHRhYiA9IGVsZl9zMzkwX2hhc2hfdGFibGUgKGluZm8pOworLSAgcmV0dXJuIGh0YWItPnBhcmFt cy0+cGdzdGU7CisrICBpZiAoaW5mbykKKysgICAgeworKyAgICAgIGh0YWIgPSBlbGZfczM5MF9o YXNoX3RhYmxlIChpbmZvKTsKKysgICAgICBpZiAoaHRhYikKKysJcmV0dXJuIGh0YWItPnBhcmFt cy0+cGdzdGU7CisrICAgIH0KKysgIHJldHVybiAwOworIH0KKyAKKyAKKyAvKiBBZGQgdGhlIFBU X1MzOTBfUEdTVEUgcHJvZ3JhbSBoZWFkZXIuICAqLworIAorIHN0YXRpYyBiZmRfYm9vbGVhbgor LWVsZl9zMzkwX21vZGlmeV9zZWdtZW50X21hcCAoYmZkICphYmZkIEFUVFJJQlVURV9VTlVTRUQs CistCQkJICAgICBzdHJ1Y3QgYmZkX2xpbmtfaW5mbyAqaW5mbykKKytlbGZfczM5MF9tb2RpZnlf c2VnbWVudF9tYXAgKGJmZCAqYWJmZCwgc3RydWN0IGJmZF9saW5rX2luZm8gKmluZm8pCisgewor ICAgc3RydWN0IGVsZl9zMzkwX2xpbmtfaGFzaF90YWJsZSAqaHRhYjsKKyAgIHN0cnVjdCBlbGZf c2VnbWVudF9tYXAgKm0sICpwbSA9IE5VTEw7CisgCisrICBpZiAoIWFiZmQgfHwgIWluZm8pCisr ICAgIHJldHVybiBUUlVFOworKworICAgaHRhYiA9IGVsZl9zMzkwX2hhc2hfdGFibGUgKGluZm8p OworLSAgaWYgKCFodGFiLT5wYXJhbXMtPnBnc3RlKQorKyAgaWYgKCFodGFiIHx8ICFodGFiLT5w YXJhbXMtPnBnc3RlKQorICAgICByZXR1cm4gVFJVRTsKKyAKKyAgIC8qIElmIHRoZXJlIGlzIGFs cmVhZHkgYSBQVF9TMzkwX1BHU1RFIGhlYWRlciwgYXZvaWQgYWRkaW5nCitAQCAtNDAyNyw4ICs0 MDM0LDEyIEBAIGJmZF9lbGZfczM5MF9zZXRfb3B0aW9ucyAoc3RydWN0IGJmZF9saW5rX2luZm8g KmluZm8sCisgeworICAgc3RydWN0IGVsZl9zMzkwX2xpbmtfaGFzaF90YWJsZSAqaHRhYjsKKyAK Ky0gIGh0YWIgPSBlbGZfczM5MF9oYXNoX3RhYmxlIChpbmZvKTsKKy0gIGh0YWItPnBhcmFtcyA9 IHBhcmFtczsKKysgIGlmIChpbmZvKQorKyAgICB7CisrICAgICAgaHRhYiA9IGVsZl9zMzkwX2hh c2hfdGFibGUgKGluZm8pOworKyAgICAgIGlmIChodGFiKQorKwlodGFiLT5wYXJhbXMgPSBwYXJh bXM7CisrICAgIH0KKyAKKyAgIHJldHVybiBUUlVFOworIH0KCmRpZmYgLS1naXQgYS9nZGItcmhi ejE0MjAzMDQtczM5MHgtMzFvZjM1LnBhdGNoIGIvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTMxb2Yz NS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NGQwNmU1Ci0tLSAv ZGV2L251bGwKKysrIGIvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTMxb2YzNS5wYXRjaApAQCAtMCww ICsxLDE2OSBAQAorY29tbWl0IDg4YWI5MGU4NjBhNDZhMTEyM2ZjZmQxM2JmZTUxY2QzNjBlOWMz ZjcKK0F1dGhvcjogQW5kcmVhcyBBcm5leiA8YXJuZXpAbGludXgudm5ldC5pYm0uY29tPgorRGF0 ZTogICBUaHUgSnVuIDI5IDEwOjMwOjA5IDIwMTcgKzAyMDAKKworICAgIFMzOTA6IFN1cHBvcnQg Z3VhcmRlZC1zdG9yYWdlIGNvcmUgbm90ZSBzZWN0aW9ucworICAgIAorICAgIE5ld2VyIExpbnV4 IGtlcm5lbCB2ZXJzaW9ucyBvZmZlciB0d28gbmV3IHJlZ2lzdGVyIHNldHMgaW4gc3VwcG9ydCBv ZiB0aGUKKyAgICB6L0FyY2hpdGVjdHVyZSdzIGd1YXJkZWQgc3RvcmFnZSBmYWNpbGl0eTogTlRf UzM5MF9HU19DQiwgdGhlCisgICAgImd1YXJkZWQtc3RvcmFnZSByZWdpc3RlcnMiLCBhbmQgTlRf UzM5MF9HU19CQywgdGhlICJndWFyZGVkLXN0b3JhZ2UKKyAgICBicm9hZGNhc3QgY29udHJvbCBi bG9jayIuICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIHJlc3BlY3RpdmUgY29yZQor ICAgIG5vdGVzIHNlY3Rpb25zIHRvIGJpbnV0aWxzLgorICAgIAorICAgIGJmZC9DaGFuZ2VMb2c6 CisgICAgICAgICAgICAqIGVsZi1iZmQuaCAoZWxmY29yZV93cml0ZV9zMzkwX2dzX2NiKTogQWRk IHByb3RvdHlwZS4KKyAgICAgICAgICAgIChlbGZjb3JlX3dyaXRlX3MzOTBfZ3NfYmMpOiBMaWtl d2lzZS4KKyAgICAgICAgICAgICogZWxmLmMgKGVsZmNvcmVfZ3Jva19zMzkwX2dzX2NiKTogTmV3 IGZ1bmN0aW9uLgorICAgICAgICAgICAgKGVsZmNvcmVfZ3Jva19zMzkwX2dzX2JjKTogTmV3IGZ1 bmN0aW9uLgorICAgICAgICAgICAgKGVsZmNvcmVfZ3Jva19ub3RlKTogQ2FsbCB0aGVtLgorICAg ICAgICAgICAgKGVsZmNvcmVfd3JpdGVfczM5MF9nc19jYik6IE5ldyBmdW5jdGlvbi4KKyAgICAg ICAgICAgIChlbGZjb3JlX3dyaXRlX3MzOTBfZ3NfYmMpOiBOZXcgZnVuY3Rpb24uCisgICAgICAg ICAgICAoZWxmY29yZV93cml0ZV9yZWdpc3Rlcl9ub3RlKTogQ2FsbCB0aGVtLgorICAgIAorICAg IGJpbnV0aWxzL0NoYW5nZUxvZzoKKyAgICAgICAgICAgICogcmVhZGVsZi5jIChnZXRfbm90ZV90 eXBlKTogQWRkIE5UX1MzOTBfR1NfQ0IgYW5kIE5UX1MzOTBfR1NfQkMuCisgICAgCisgICAgaW5j bHVkZS9DaGFuZ2VMb2c6CisgICAgICAgICAgICAqIGVsZi9jb21tb24uaCAoTlRfUzM5MF9HU19D Qik6IE5ldyBtYWNyby4KKyAgICAgICAgICAgIChOVF9TMzkwX0dTX0JDKTogTGlrZXdpc2UuCisK KyMjIyBhL2JmZC9DaGFuZ2VMb2cKKyMjIyBiL2JmZC9DaGFuZ2VMb2cKKyMjIC0xLDMgKzEsMTQg QEAKKysyMDE3LTA2LTI5ICBBbmRyZWFzIEFybmV6ICA8YXJuZXpAbGludXgudm5ldC5pYm0uY29t PgorKworKwkqIGVsZi1iZmQuaCAoZWxmY29yZV93cml0ZV9zMzkwX2dzX2NiKTogQWRkIHByb3Rv dHlwZS4KKysJKGVsZmNvcmVfd3JpdGVfczM5MF9nc19iYyk6IExpa2V3aXNlLgorKwkqIGVsZi5j IChlbGZjb3JlX2dyb2tfczM5MF9nc19jYik6IE5ldyBmdW5jdGlvbi4KKysJKGVsZmNvcmVfZ3Jv a19zMzkwX2dzX2JjKTogTmV3IGZ1bmN0aW9uLgorKwkoZWxmY29yZV9ncm9rX25vdGUpOiBDYWxs IHRoZW0uCisrCShlbGZjb3JlX3dyaXRlX3MzOTBfZ3NfY2IpOiBOZXcgZnVuY3Rpb24uCisrCShl bGZjb3JlX3dyaXRlX3MzOTBfZ3NfYmMpOiBOZXcgZnVuY3Rpb24uCisrCShlbGZjb3JlX3dyaXRl X3JlZ2lzdGVyX25vdGUpOiBDYWxsIHRoZW0uCisrCisgMjAxNy0wNi0yOCAgSC5KLiBMdSAgPGhv bmdqaXUubHVAaW50ZWwuY29tPgorIAorIAkqIGxpYmJmZC5jIChfYmZkX2dlbmVyaWNfZ2V0X3Nl Y3Rpb25fY29udGVudHMpOiBEb24ndCBjYWxsCistLS0gYS9iZmQvZWxmLWJmZC5oCisrKysgYi9i ZmQvZWxmLWJmZC5oCitAQCAtMjUzMyw2ICsyNTMzLDEwIEBAIGV4dGVybiBjaGFyICplbGZjb3Jl X3dyaXRlX3MzOTBfdnhyc19sb3cKKyAgIChiZmQgKiwgY2hhciAqLCBpbnQgKiwgY29uc3Qgdm9p ZCAqLCBpbnQpOworIGV4dGVybiBjaGFyICplbGZjb3JlX3dyaXRlX3MzOTBfdnhyc19oaWdoCisg ICAoYmZkICosIGNoYXIgKiwgaW50ICosIGNvbnN0IHZvaWQgKiwgaW50KTsKKytleHRlcm4gY2hh ciAqZWxmY29yZV93cml0ZV9zMzkwX2dzX2NiCisrICAoYmZkICosIGNoYXIgKiwgaW50ICosIGNv bnN0IHZvaWQgKiwgaW50KTsKKytleHRlcm4gY2hhciAqZWxmY29yZV93cml0ZV9zMzkwX2dzX2Jj CisrICAoYmZkICosIGNoYXIgKiwgaW50ICosIGNvbnN0IHZvaWQgKiwgaW50KTsKKyBleHRlcm4g Y2hhciAqZWxmY29yZV93cml0ZV9hcm1fdmZwCisgICAoYmZkICosIGNoYXIgKiwgaW50ICosIGNv bnN0IHZvaWQgKiwgaW50KTsKKyBleHRlcm4gY2hhciAqZWxmY29yZV93cml0ZV9hYXJjaF90bHMK Ky0tLSBhL2JmZC9lbGYuYworKysrIGIvYmZkL2VsZi5jCitAQCAtOTE5MSw2ICs5MTkxLDE4IEBA IGVsZmNvcmVfZ3Jva19zMzkwX3Z4cnNfaGlnaCAoYmZkICphYmZkLCBFbGZfSW50ZXJuYWxfTm90 ZSAqbm90ZSkKKyB9CisgCisgc3RhdGljIGJmZF9ib29sZWFuCisrZWxmY29yZV9ncm9rX3MzOTBf Z3NfY2IgKGJmZCAqYWJmZCwgRWxmX0ludGVybmFsX05vdGUgKm5vdGUpCisreworKyAgcmV0dXJu IGVsZmNvcmVfbWFrZV9ub3RlX3BzZXVkb3NlY3Rpb24gKGFiZmQsICIucmVnLXMzOTAtZ3MtY2Ii LCBub3RlKTsKKyt9CisrCisrc3RhdGljIGJmZF9ib29sZWFuCisrZWxmY29yZV9ncm9rX3MzOTBf Z3NfYmMgKGJmZCAqYWJmZCwgRWxmX0ludGVybmFsX05vdGUgKm5vdGUpCisreworKyAgcmV0dXJu IGVsZmNvcmVfbWFrZV9ub3RlX3BzZXVkb3NlY3Rpb24gKGFiZmQsICIucmVnLXMzOTAtZ3MtYmMi LCBub3RlKTsKKyt9CisrCisrc3RhdGljIGJmZF9ib29sZWFuCisgZWxmY29yZV9ncm9rX2FybV92 ZnAgKGJmZCAqYWJmZCwgRWxmX0ludGVybmFsX05vdGUgKm5vdGUpCisgeworICAgcmV0dXJuIGVs ZmNvcmVfbWFrZV9ub3RlX3BzZXVkb3NlY3Rpb24gKGFiZmQsICIucmVnLWFybS12ZnAiLCBub3Rl KTsKK0BAIC05NjY4LDYgKzk2ODAsMjAgQEAgZWxmY29yZV9ncm9rX25vdGUgKGJmZCAqYWJmZCwg RWxmX0ludGVybmFsX05vdGUgKm5vdGUpCisgICAgICAgZWxzZQorIAlyZXR1cm4gVFJVRTsKKyAK KysgICAgY2FzZSBOVF9TMzkwX0dTX0NCOgorKyAgICAgIGlmIChub3RlLT5uYW1lc3ogPT0gNgor KwkgICYmIHN0cmNtcCAobm90ZS0+bmFtZWRhdGEsICJMSU5VWCIpID09IDApCisrCXJldHVybiBl bGZjb3JlX2dyb2tfczM5MF9nc19iYyAoYWJmZCwgbm90ZSk7CisrICAgICAgZWxzZQorKwlyZXR1 cm4gVFJVRTsKKysKKysgICAgY2FzZSBOVF9TMzkwX0dTX0JDOgorKyAgICAgIGlmIChub3RlLT5u YW1lc3ogPT0gNgorKwkgICYmIHN0cmNtcCAobm90ZS0+bmFtZWRhdGEsICJMSU5VWCIpID09IDAp CisrCXJldHVybiBlbGZjb3JlX2dyb2tfczM5MF9nc19jYiAoYWJmZCwgbm90ZSk7CisrICAgICAg ZWxzZQorKwlyZXR1cm4gVFJVRTsKKysKKyAgICAgY2FzZSBOVF9BUk1fVkZQOgorICAgICAgIGlm IChub3RlLT5uYW1lc3ogPT0gNgorIAkgICYmIHN0cmNtcCAobm90ZS0+bmFtZWRhdGEsICJMSU5V WCIpID09IDApCitAQCAtMTA3MjgsNiArMTA3NTQsMzIgQEAgZWxmY29yZV93cml0ZV9zMzkwX3Z4 cnNfaGlnaCAoYmZkICphYmZkLAorIH0KKyAKKyBjaGFyICoKKytlbGZjb3JlX3dyaXRlX3MzOTBf Z3NfY2IgKGJmZCAqYWJmZCwKKysJCQkgIGNoYXIgKmJ1ZiwKKysJCQkgIGludCAqYnVmc2l6LAor KwkJCSAgY29uc3Qgdm9pZCAqczM5MF9nc19jYiwKKysJCQkgIGludCBzaXplKQorK3sKKysgIGNo YXIgKm5vdGVfbmFtZSA9ICJMSU5VWCI7CisrICByZXR1cm4gZWxmY29yZV93cml0ZV9ub3RlIChh YmZkLCBidWYsIGJ1ZnNpeiwKKysJCQkgICAgIG5vdGVfbmFtZSwgTlRfUzM5MF9HU19DQiwKKysJ CQkgICAgIHMzOTBfZ3NfY2IsIHNpemUpOworK30KKysKKytjaGFyICoKKytlbGZjb3JlX3dyaXRl X3MzOTBfZ3NfYmMgKGJmZCAqYWJmZCwKKysJCQkgIGNoYXIgKmJ1ZiwKKysJCQkgIGludCAqYnVm c2l6LAorKwkJCSAgY29uc3Qgdm9pZCAqczM5MF9nc19iYywKKysJCQkgIGludCBzaXplKQorK3sK KysgIGNoYXIgKm5vdGVfbmFtZSA9ICJMSU5VWCI7CisrICByZXR1cm4gZWxmY29yZV93cml0ZV9u b3RlIChhYmZkLCBidWYsIGJ1ZnNpeiwKKysJCQkgICAgIG5vdGVfbmFtZSwgTlRfUzM5MF9HU19C QywKKysJCQkgICAgIHMzOTBfZ3NfYmMsIHNpemUpOworK30KKysKKytjaGFyICoKKyBlbGZjb3Jl X3dyaXRlX2FybV92ZnAgKGJmZCAqYWJmZCwKKyAJCSAgICAgICBjaGFyICpidWYsCisgCQkgICAg ICAgaW50ICpidWZzaXosCitAQCAtMTA4MTUsNiArMTA4NjcsMTAgQEAgZWxmY29yZV93cml0ZV9y ZWdpc3Rlcl9ub3RlIChiZmQgKmFiZmQsCisgICAgIHJldHVybiBlbGZjb3JlX3dyaXRlX3MzOTBf dnhyc19sb3cgKGFiZmQsIGJ1ZiwgYnVmc2l6LCBkYXRhLCBzaXplKTsKKyAgIGlmIChzdHJjbXAg KHNlY3Rpb24sICIucmVnLXMzOTAtdnhycy1oaWdoIikgPT0gMCkKKyAgICAgcmV0dXJuIGVsZmNv cmVfd3JpdGVfczM5MF92eHJzX2hpZ2ggKGFiZmQsIGJ1ZiwgYnVmc2l6LCBkYXRhLCBzaXplKTsK KysgIGlmIChzdHJjbXAgKHNlY3Rpb24sICIucmVnLXMzOTAtZ3MtY2IiKSA9PSAwKQorKyAgICBy ZXR1cm4gZWxmY29yZV93cml0ZV9zMzkwX2dzX2NiIChhYmZkLCBidWYsIGJ1ZnNpeiwgZGF0YSwg c2l6ZSk7CisrICBpZiAoc3RyY21wIChzZWN0aW9uLCAiLnJlZy1zMzkwLWdzLWJjIikgPT0gMCkK KysgICAgcmV0dXJuIGVsZmNvcmVfd3JpdGVfczM5MF9nc19iYyAoYWJmZCwgYnVmLCBidWZzaXos IGRhdGEsIHNpemUpOworICAgaWYgKHN0cmNtcCAoc2VjdGlvbiwgIi5yZWctYXJtLXZmcCIpID09 IDApCisgICAgIHJldHVybiBlbGZjb3JlX3dyaXRlX2FybV92ZnAgKGFiZmQsIGJ1ZiwgYnVmc2l6 LCBkYXRhLCBzaXplKTsKKyAgIGlmIChzdHJjbXAgKHNlY3Rpb24sICIucmVnLWFhcmNoLXRscyIp ID09IDApCisjIyMgYS9pbmNsdWRlL0NoYW5nZUxvZworIyMjIGIvaW5jbHVkZS9DaGFuZ2VMb2cK KyMjIC0xLDMgKzEsOCBAQAorKzIwMTctMDYtMjkgIEFuZHJlYXMgQXJuZXogIDxhcm5lekBsaW51 eC52bmV0LmlibS5jb20+CisrCisrCSogZWxmL2NvbW1vbi5oIChOVF9TMzkwX0dTX0NCKTogTmV3 IG1hY3JvLgorKwkoTlRfUzM5MF9HU19CQyk6IExpa2V3aXNlLgorKworIDIwMTctMDYtMjggIFRh bWFyIENocmlzdGluYSAgPHRhbWFyLmNocmlzdGluYUBhcm0uY29tPgorIAorIAkqIG9wY29kZS9h YXJjaDY0Lmg6IChBQVJDSDY0X0ZFQVRVUkVfRE9UUFJPRCk6IE5ldy4KKy0tLSBhL2luY2x1ZGUv ZWxmL2NvbW1vbi5oCisrKysgYi9pbmNsdWRlL2VsZi9jb21tb24uaAorQEAgLTU5OCw2ICs1OTgs MTAgQEAKKyAJCQkJCS8qICAgbm90ZSBuYW1lIG11c3QgYmUgIkxJTlVYIi4gICovCisgI2RlZmlu ZSBOVF9TMzkwX1ZYUlNfSElHSAkweDMwYQkvKiBTMzkwIHZlY3RvciByZWdpc3RlcnMgMTYtMzEg Ki8KKyAJCQkJCS8qICAgbm90ZSBuYW1lIG11c3QgYmUgIkxJTlVYIi4gICovCisrI2RlZmluZSBO VF9TMzkwX0dTX0NCCTB4MzBiCQkvKiBzMzkwIGd1YXJkZWQgc3RvcmFnZSByZWdpc3RlcnMgKi8K KysJCQkJCS8qICAgbm90ZSBuYW1lIG11c3QgYmUgIkxJTlVYIi4gICovCisrI2RlZmluZSBOVF9T MzkwX0dTX0JDCTB4MzBjCQkvKiBzMzkwIGd1YXJkZWQgc3RvcmFnZSBicm9hZGNhc3QgY29udHJv bCBibG9jayAqLworKwkJCQkJLyogICBub3RlIG5hbWUgbXVzdCBiZSAiTElOVVgiLiAgKi8KKyAj ZGVmaW5lIE5UX0FSTV9WRlAJMHg0MDAJCS8qIEFSTSBWRlAgcmVnaXN0ZXJzICovCisgLyogVGhl IGZvbGxvd2luZyBkZWZpbml0aW9ucyBzaG91bGQgcmVhbGx5IHVzZSBOVF9BQVJDSF8uLi4sIGJ1 dCBkZWZpbmVkCisgICAgdGhpcyB3YXkgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBMaW51eC4gICov CgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTMyb2YzNS5wYXRjaCBiL2dkYi1y aGJ6MTQyMDMwNC1zMzkweC0zMm9mMzUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uYTdmNjYyNAotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkw eC0zMm9mMzUucGF0Y2gKQEAgLTAsMCArMSwzODAgQEAKK2NvbW1pdCA1NWVmY2VhYmM2MTQ5ZTk2 MTM0YzEwNjc2YWRiMmIxZTc5ZTBhZTEzCitBdXRob3I6IEFuZHJlYXMgQXJuZXogPGFybmV6QGxp bnV4LnZuZXQuaWJtLmNvbT4KK0RhdGU6ICAgVGh1IEp1bCAxMyAyMDoxNzowMyAyMDE3ICswMjAw CisKKyAgICBTMzkwOiBBZGQgcmVjb3JkL3JlcGxheSBzdXBwb3J0IGZvciBhcmNoMTIgaW5zdHJ1 Y3Rpb25zCisgICAgCisgICAgU3VwcG9ydCByZWNvcmQvcmVwbGF5IG9mIHRoZSB6L0FyY2hpdGVj dHVyZSBpbnN0cnVjdGlvbnMgdGhhdCB3ZXJlCisgICAgaW50cm9kdWNlZCB3aXRoIGFyY2gxMi4K KyAgICAKKyAgICBnZGIvQ2hhbmdlTG9nOgorICAgIAorICAgICAgICAgICAgKiBzMzkwLWxpbnV4 LXRkZXAuYyAoczM5MF9wcm9jZXNzX3JlY29yZCk6IEFkZCBzdXBwb3J0IGZvcgorICAgICAgICAg ICAgaW5zdHJ1Y3Rpb25zIG5ldyBpbiBhcmNoMTIuCisKKyMjIyBhL2dkYi9DaGFuZ2VMb2cKKyMj IyBiL2dkYi9DaGFuZ2VMb2cKKyMjIC0xLDMgKzEsOCBAQAorKzIwMTctMDctMTMgIEFuZHJlYXMg QXJuZXogIDxhcm5lekBsaW51eC52bmV0LmlibS5jb20+CisrCisrCSogczM5MC1saW51eC10ZGVw LmMgKHMzOTBfcHJvY2Vzc19yZWNvcmQpOiBBZGQgc3VwcG9ydCBmb3IKKysJaW5zdHJ1Y3Rpb25z IG5ldyBpbiBhcmNoMTIuCisrCisgMjAxNy0wNy0xMSAgSm9obiBCYWxkd2luICA8amhiQEZyZWVC U0Qub3JnPgorIAorIAkqIGFtZDY0LWJzZC1uYXQuYyAoYW1kNjRic2RfZmV0Y2hfaW5mZXJpb3Jf cmVnaXN0ZXJzKTogVXNlCistLS0gYS9nZGIvczM5MC1saW51eC10ZGVwLmMKKysrKyBiL2dkYi9z MzkwLWxpbnV4LXRkZXAuYworQEAgLTQ5OTIsNiArNDk5Miw4IEBAIGV4OgorICAgICAgICAgY2Fz ZSAweGI5ZTk6IC8qIFNHUksgLSBzdWJ0cmFjdCAqLworICAgICAgICAgY2FzZSAweGI5ZWE6IC8q IEFMR1JLIC0gYWRkIGxvZ2ljYWwgKi8KKyAgICAgICAgIGNhc2UgMHhiOWViOiAvKiBTTEdSSyAt IHN1YnRyYWN0IGxvZ2ljYWwgKi8KKysJY2FzZSAweGI5ZWQ6IC8qIE1TR1JLQyAtIG11bHRpcGx5 IHNpbmdsZSA2NHg2NCAtPiA2NCAqLworKwljYXNlIDB4YjlmZDogLyogTVNSS0MgLSBtdWx0aXBs eSBzaW5nbGUgMzJ4MzIgLT4gMzIgKi8KKyAgICAgICAgICAgLyogNjQtYml0IGdwciBkZXN0aW5h dGlvbiArIGZsYWdzICovCisgICAgICAgICAgIGlmIChzMzkwX3JlY29yZF9ncHJfZyAoZ2RiYXJj aCwgcmVnY2FjaGUsIGluaWJbNl0pKQorICAgICAgICAgICAgIHJldHVybiAtMTsKK0BAIC01MDE5 LDcgKzUwMjEsNyBAQCBleDoKKyAgICAgICAgIGNhc2UgMHhiOTE0OiAvKiBMR0ZSIC0gbG9hZCAq LworICAgICAgICAgY2FzZSAweGI5MTY6IC8qIExMR0ZSIC0gbG9hZCBsb2dpY2FsICovCisgICAg ICAgICBjYXNlIDB4YjkxNzogLyogTExHVFIgLSBsb2FkIGxvZ2ljYWwgdGhpcnR5IG9uZSBiaXRz ICovCistICAgICAgICBjYXNlIDB4YjkxYzogLyogTVNHRlIgLSBsb2FkICovCisrCWNhc2UgMHhi OTFjOiAvKiBNU0dGUiAtIG11bHRpcGx5IHNpbmdsZSA2NDwzMiAqLworICAgICAgICAgY2FzZSAw eGI5NDY6IC8qIEJDVEdSIC0gYnJhbmNoIG9uIGNvdW50ICovCisgICAgICAgICBjYXNlIDB4Yjk4 NDogLyogTExHQ1IgLSBsb2FkIGxvZ2ljYWwgY2hhcmFjdGVyICovCisgICAgICAgICBjYXNlIDB4 Yjk4NTogLyogTExHSFIgLSBsb2FkIGxvZ2ljYWwgaGFsZndvcmQgKi8KK0BAIC01MDM4LDYgKzUw NDAsNyBAQCBleDoKKyAgICAgICAgIGNhc2UgMHhiOTFkOiAvKiBEU0dGUiAtIGRpdmlkZSBzaW5n bGUgKi8KKyAgICAgICAgIGNhc2UgMHhiOTg2OiAvKiBNTEdSIC0gbXVsdGlwbHkgbG9naWNhbCAq LworICAgICAgICAgY2FzZSAweGI5ODc6IC8qIERMR1IgLSBkaXZpZGUgbG9naWNhbCAqLworKwlj YXNlIDB4YjllYzogLyogTUdSSyAtIG11bHRpcGx5IDY0eDY0IC0+IDEyOCAqLworICAgICAgICAg ICAvKiA2NC1iaXQgZ3ByIHBhaXIgZGVzdGluYXRpb24gICovCisgICAgICAgICAgIGlmIChzMzkw X3JlY29yZF9ncHJfZyAoZ2RiYXJjaCwgcmVnY2FjaGUsIGluaWJbNl0pKQorICAgICAgICAgICAg IHJldHVybiAtMTsKK0BAIC01MTA2LDggKzUxMDksOCBAQCBleDoKKyAgICAgICAgIC8qIDB4Yjky Mi0weGI5MjQgdW5kZWZpbmVkICovCisgICAgICAgICAvKiAweGI5MjUgcHJpdmlsZWdlZCAqLwor ICAgICAgICAgLyogMHhiOTI4IHByaXZpbGVnZWQgKi8KKy0gICAgICAgIC8qIDB4YjkyOSB1bmRl ZmluZWQgKi8KKyAKKysJY2FzZSAweGI5Mjk6IC8qIEtNQSAtIGNpcGhlciBtZXNzYWdlIHdpdGgg YXV0aGVudGljYXRpb24gKi8KKyAgICAgICAgIGNhc2UgMHhiOTJhOiAvKiBLTUYgLSBjaXBoZXIg bWVzc2FnZSB3aXRoIGNpcGhlciBmZWVkYmFjayBbcGFydGlhbF0gKi8KKyAgICAgICAgIGNhc2Ug MHhiOTJiOiAvKiBLTU8gLSBjaXBoZXIgbWVzc2FnZSB3aXRoIG91dHB1dCBmZWVkYmFjayBbcGFy dGlhbF0gKi8KKyAgICAgICAgIGNhc2UgMHhiOTJmOiAvKiBLTUMgLSBjaXBoZXIgbWVzc2FnZSB3 aXRoIGNoYWluaW5nIFtwYXJ0aWFsXSAqLworQEAgLTUxNzAsNiArNTE3MywxNSBAQCBleDoKKyAg ICAgICAgICAgICAgIGlmIChyZWNvcmRfZnVsbF9hcmNoX2xpc3RfYWRkX3JlZyAocmVnY2FjaGUs IFMzOTBfUjBfUkVHTlVNICsgKGluaWJbN10gfCAxKSkpCisgICAgICAgICAgICAgICAgIHJldHVy biAtMTsKKyAgICAgICAgICAgICB9CisrCSAgaWYgKHRtcCAhPSAwICYmIGluc25bMF0gPT0gMHhi OTI5KQorKwkgICAgeworKwkgICAgICBpZiAocmVjb3JkX2Z1bGxfYXJjaF9saXN0X2FkZF9yZWcg KHJlZ2NhY2hlLAorKwkJCQkJCSBTMzkwX1IwX1JFR05VTSArIGluaWJbNF0pKQorKwkJcmV0dXJu IC0xOworKwkgICAgICBpZiAocmVjb3JkX2Z1bGxfYXJjaF9saXN0X2FkZF9yZWcgKHJlZ2NhY2hl LAorKwkJCQkJCSBTMzkwX1IwX1JFR05VTSArIChpbmliWzRdIHwgMSkpKQorKwkJcmV0dXJuIC0x OworKwkgICAgfQorICAgICAgICAgICBpZiAocmVjb3JkX2Z1bGxfYXJjaF9saXN0X2FkZF9yZWcg KHJlZ2NhY2hlLCBTMzkwX1BTV01fUkVHTlVNKSkKKyAgICAgICAgICAgICByZXR1cm4gLTE7Cisg ICAgICAgICAgIGJyZWFrOworQEAgLTU1NzEsMTAgKzU1ODMsMTEgQEAgZXg6CisgCisgICAgICAg ICAvKiAweGI5ZTMgdW5kZWZpbmVkICovCisgICAgICAgICAvKiAweGI5ZTUgdW5kZWZpbmVkICov CistICAgICAgICAvKiAweGI5ZWMtMHhiOWYxIHVuZGVmaW5lZCAqLworKwkvKiAweGI5ZWUtMHhi OWYxIHVuZGVmaW5lZCAqLworICAgICAgICAgLyogMHhiOWYzIHVuZGVmaW5lZCAqLworICAgICAg ICAgLyogMHhiOWY1IHVuZGVmaW5lZCAqLworLSAgICAgICAgLyogMHhiOWZjLTB4YjlmZiB1bmRl ZmluZWQgKi8KKysJLyogMHhiOWZjIHVuZGVmaW5lZCAqLworKwkvKiAweGI5ZmUgLTB4YjlmZiB1 bmRlZmluZWQgKi8KKyAKKyAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgIGdvdG8gVU5LTk9X Tl9PUDsKK0BAIC01OTYyLDYgKzU5NzUsNyBAQCBleDoKKyAgICAgICBicmVhazsKKyAKKyAgICAg Y2FzZSAweGUzOgorKyAgICBjYXNlIDB4ZTY6CisgICAgIGNhc2UgMHhlNzoKKyAgICAgY2FzZSAw eGViOgorICAgICBjYXNlIDB4ZWQ6CitAQCAtNjAwNiw2ICs2MDIwLDcgQEAgZXg6CisgICAgICAg ICBjYXNlIDB4ZTMxYzogLyogTVNHRiAtIG11bHRpcGx5IHNpbmdsZSAqLworICAgICAgICAgY2Fz ZSAweGUzMmE6IC8qIExaUkcgLSBsb2FkIGFuZCB6ZXJvIHJpZ2h0bW9zdCBieXRlICovCisgICAg ICAgICBjYXNlIDB4ZTMzYTogLyogTExaUkdGIC0gbG9hZCBsb2dpY2FsIGFuZCB6ZXJvIHJpZ2h0 bW9zdCBieXRlICovCisrCWNhc2UgMHhlMzNjOiAvKiBNR0ggLSBtdWx0aXBseSBoYWxmd29yZCA2 NHgxNm1lbSAtPiA2NCAqLworICAgICAgICAgY2FzZSAweGUzNDY6IC8qIEJDVEcgLSBicmFuY2gg b24gY291bnQgKi8KKyAgICAgICAgIGNhc2UgMHhlMzc3OiAvKiBMR0IgLSBsb2FkIGJ5dGUgKi8K KyAgICAgICAgIGNhc2UgMHhlMzkwOiAvKiBMTEdDIC0gbG9hZCBsb2dpY2FsIGNoYXJhY3RlciAq LworQEAgLTYwMzYsNiArNjA1MSw3IEBAIGV4OgorIAorICAgICAgICAgY2FzZSAweGUzMGQ6IC8q IERTRyAtIGRpdmlkZSBzaW5nbGUgKi8KKyAgICAgICAgIGNhc2UgMHhlMzFkOiAvKiBEU0dGIC0g ZGl2aWRlIHNpbmdsZSAqLworKwljYXNlIDB4ZTM4NDogLyogTUcgLSBtdWx0aXBseSA2NHg2NG1l bSAtPiAxMjggKi8KKyAgICAgICAgIGNhc2UgMHhlMzg2OiAvKiBNTEcgLSBtdWx0aXBseSBsb2dp Y2FsICovCisgICAgICAgICBjYXNlIDB4ZTM4NzogLyogRExHIC0gZGl2aWRlIGxvZ2ljYWwgKi8K KyAgICAgICAgIGNhc2UgMHhlMzhmOiAvKiBMUFEgLSBsb2FkIHBhaXIgZnJvbSBxdWFkd29yZCAq LworQEAgLTYwNTcsNiArNjA3Myw5IEBAIGV4OgorICAgICAgICAgLyogMHhlMzEwLTB4ZTMxMSB1 bmRlZmluZWQgKi8KKyAKKyAgICAgICAgIGNhc2UgMHhlMzEyOiAvKiBMVCAtIGxvYWQgYW5kIHRl c3QgKi8KKysJY2FzZSAweGUzMzg6IC8qIEFHSCAtIGFkZCBoYWxmd29yZCB0byA2NCBiaXQgdmFs dWUgKi8KKysJY2FzZSAweGUzMzk6IC8qIFNHSCAtIHN1YnRyYWN0IGhhbGZ3b3JkIGZyb20gNjQg Yml0IHZhbHVlICovCisrCWNhc2UgMHhlMzUzOiAvKiBNU0MgLSBtdWx0aXBseSBzaW5nbGUgMzJ4 MzJtZW0gLT4gMzIgKi8KKyAgICAgICAgIGNhc2UgMHhlMzU0OiAvKiBOWSAtIGFuZCAqLworICAg ICAgICAgY2FzZSAweGUzNTY6IC8qIE9ZIC0gb3IgKi8KKyAgICAgICAgIGNhc2UgMHhlMzU3OiAv KiBYWSAtIHhvciAqLworQEAgLTYwNjYsMTMgKzYwODUsMTQgQEAgZXg6CisgICAgICAgICBjYXNl IDB4ZTM1ZjogLyogU0xZIC0gc3VidHJhY3QgbG9naWNhbCAqLworICAgICAgICAgY2FzZSAweGUz N2E6IC8qIEFIWSAtIGFkZCBoYWxmd29yZCAqLworICAgICAgICAgY2FzZSAweGUzN2I6IC8qIFNI WSAtIHN1YnRyYWN0IGhhbGZ3b3JkICovCisrCWNhc2UgMHhlMzgzOiAvKiBNU0dDIC0gbXVsdGlw bHkgc2luZ2xlIDY0eDY0bWVtIC0+IDY0ICovCisgICAgICAgICBjYXNlIDB4ZTM5ODogLyogQUxD IC0gYWRkIGxvZ2ljYWwgd2l0aCBjYXJyeSAqLworICAgICAgICAgY2FzZSAweGUzOTk6IC8qIFNM QiAtIHN1YnRyYWN0IGxvZ2ljYWwgd2l0aCBib3Jyb3cgKi8KKyAgICAgICAgIGNhc2UgMHhlNzI3 OiAvKiBMQ0JCIC0gbG9hZCBjb3VudCB0byBibG9jayBib3VuZHVhcnkgKi8KKyAgICAgICAgIGNh c2UgMHhlYjgxOiAvKiBJQ01ZIC0gaW5zZXJ0IGNoYXJhY3RlcnMgdW5kZXIgbWFzayAqLworICAg ICAgICAgY2FzZSAweGViZGM6IC8qIFNSQUsgLSBzaGlmdCBsZWZ0IHNpbmdsZSAqLworICAgICAg ICAgY2FzZSAweGViZGQ6IC8qIFNMQUsgLSBzaGlmdCBsZWZ0IHNpbmdsZSAqLworLSAgICAgICAg ICAvKiAzMi1iaXQgZ3ByIGRlc3RpbmF0aW9uICsgZmxhZ3MgKi8KKysJICAvKiAzMi82NC1iaXQg Z3ByIGRlc3RpbmF0aW9uICsgZmxhZ3MgKi8KKyAgICAgICAgICAgaWYgKHJlY29yZF9mdWxsX2Fy Y2hfbGlzdF9hZGRfcmVnIChyZWdjYWNoZSwgUzM5MF9SMF9SRUdOVU0gKyBpbmliWzJdKSkKKyAg ICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgIGlmIChyZWNvcmRfZnVsbF9hcmNoX2xp c3RfYWRkX3JlZyAocmVnY2FjaGUsIFMzOTBfUFNXTV9SRUdOVU0pKQorQEAgLTYxNjAsNyArNjE4 MCw3IEBAIGV4OgorICAgICAgICAgY2FzZSAweGUzMzY6IC8qIFBGRCAtIHByZWZldGNoIGRhdGEg Ki8KKyAgICAgICAgICAgYnJlYWs7CisgCistICAgICAgICAvKiAweGUzMzctMHhlMzM5IHVuZGVm aW5lZCAqLworKwkvKiAweGUzMzcgdW5kZWZpbmVkICovCisgICAgICAgICAvKiAweGUzM2MtMHhl MzNkIHVuZGVmaW5lZCAqLworIAorICAgICAgICAgY2FzZSAweGUzM2U6IC8qIFNUUlYgLSBzdG9y ZSByZXZlcnNlZCAqLworQEAgLTYxODMsOCArNjIwMywxMiBAQCBleDoKKyAgICAgICAgICAgYnJl YWs7CisgCisgICAgICAgICAvKiAweGUzNDAtMHhlMzQ1IHVuZGVmaW5lZCAqLworLSAgICAgICAg LyogMHhlMzQ3LTB4ZTM0ZiB1bmRlZmluZWQgKi8KKy0gICAgICAgIC8qIDB4ZTM1Mi0weGUzNTMg dW5kZWZpbmVkICovCisrCisrCWNhc2UgMHhlMzQ3OiAvKiBCSUMgLSBicmFuY2ggaW5kaXJlY3Qg b24gY29uZGl0aW9uICovCisrCSAgYnJlYWs7CisrCisrCS8qIDB4ZTM0OC0weGUzNGYgdW5kZWZp bmVkICovCisrCS8qIDB4ZTM1MiB1bmRlZmluZWQgKi8KKyAKKyAgICAgICAgIGNhc2UgMHhlMzVj OiAvKiBNRlkgLSBtdWx0aXBseSAqLworICAgICAgICAgY2FzZSAweGUzOTY6IC8qIE1MIC0gbXVs dGlwbHkgbG9naWNhbCAqLworQEAgLTYyMTYsMTEgKzYyNDAsMTIgQEAgZXg6CisgICAgICAgICAg IGJyZWFrOworIAorICAgICAgICAgLyogMHhlMzdkLTB4ZTM3ZiB1bmRlZmluZWQgKi8KKy0gICAg ICAgIC8qIDB4ZTM4My0weGUzODQgdW5kZWZpbmVkICovCisgCisgICAgICAgICBjYXNlIDB4ZTM4 NTogLyogTEdBVCAtIGxvYWQgYW5kIHRyYXAgKi8KKyAgICAgICAgIGNhc2UgMHhlMzljOiAvKiBM TEdUQVQgLSBsb2FkIGxvZ2ljYWwgdGhpcnR5IG9uZSBiaXRzIGFuZCB0cmFwICovCisgICAgICAg ICBjYXNlIDB4ZTM5ZDogLyogTExHRkFUIC0gbG9hZCBsb2dpY2FsIGFuZCB0cmFwICovCisrCWNh c2UgMHhlNjUwOiAvKiBWQ1ZCIC0gdmVjdG9yIGNvbnZlcnQgdG8gYmluYXJ5IDMyIGJpdCovCisr CWNhc2UgMHhlNjUyOiAvKiBWQ1ZCRyAtIHZlY3RvciBjb252ZXJ0IHRvIGJpbmFyeSA2NCBiaXQq LworICAgICAgICAgY2FzZSAweGU3MjE6IC8qIFZMR1YgLSB2ZWN0b3IgbG9hZCBnciBmcm9tIHZy IGVsZW1lbnQgKi8KKyAgICAgICAgICAgLyogNjQtYml0IGdwciBkZXN0aW5hdGlvbiArIGZwYyBm b3IgcG9zc2libGUgRFhDIHdyaXRlICovCisgICAgICAgICAgIGlmIChzMzkwX3JlY29yZF9ncHJf ZyAoZ2RiYXJjaCwgcmVnY2FjaGUsIGluaWJbMl0pKQorQEAgLTYyNzEsNiArNjI5NiwxMCBAQCBl eDoKKyAgICAgICAgIC8qIDB4ZTNjZSB1bmRlZmluZWQgKi8KKyAgICAgICAgIC8qIDB4ZTNkMC0w eGUzZmYgdW5kZWZpbmVkICovCisgCisrCWNhc2UgMHhlNjM0OiAvKiBWUEtaIC0gdmVjdG9yIHBh Y2sgem9uZWQgKi8KKysJY2FzZSAweGU2MzU6IC8qIFZMUkwgLSB2ZWN0b3IgbG9hZCByaWdodG1v c3Qgd2l0aCBpbW1lZC4gbGVuZ3RoICovCisrCWNhc2UgMHhlNjM3OiAvKiBWTFJMUiAtIHZlY3Rv ciBsb2FkIHJpZ2h0bW9zdCB3aXRoIGxlbmd0aCAqLworKwljYXNlIDB4ZTY0OTogLyogVkxJUCAt IHZlY3RvciBsb2FkIGltbWVkaWF0ZSBkZWNpbWFsICovCisgICAgICAgICBjYXNlIDB4ZTcwMDog LyogVkxFQiAtIHZlY3RvciBsb2FkIGVsZW1lbnQgKi8KKyAgICAgICAgIGNhc2UgMHhlNzAxOiAv KiBWTEVIIC0gdmVjdG9yIGxvYWQgZWxlbWVudCAqLworICAgICAgICAgY2FzZSAweGU3MDI6IC8q IFZMRUcgLSB2ZWN0b3IgbG9hZCBlbGVtZW50ICovCitAQCAtNjMxMSw3ICs2MzQwLDEwIEBAIGV4 OgorICAgICAgICAgY2FzZSAweGU3Njk6IC8qIFZOQyAtIHZlY3RvciBhbmQgd2l0aCBjb21wbGVt ZW50ICovCisgICAgICAgICBjYXNlIDB4ZTc2YTogLyogVk8gLSB2ZWN0b3Igb3IgKi8KKyAgICAg ICAgIGNhc2UgMHhlNzZiOiAvKiBWTk8gLSB2ZWN0b3Igbm9yICovCisrCWNhc2UgMHhlNzZjOiAv KiBWTlggLSB2ZWN0b3Igbm90IGV4Y2x1c2l2ZSBvciAqLworICAgICAgICAgY2FzZSAweGU3NmQ6 IC8qIFZYIC0gdmVjdG9yIHhvciAqLworKwljYXNlIDB4ZTc2ZTogLyogVk5OIC0gdmVjdG9yIG5h bmQgKi8KKysJY2FzZSAweGU3NmY6IC8qIFZPQyAtIHZlY3RvciBvciB3aXRoIGNvbXBsZW1lbnQg Ki8KKyAgICAgICAgIGNhc2UgMHhlNzcwOiAvKiBWRVNMViAtIHZlY3RvciBlbGVtZW50IHNoaWZ0 IGxlZnQgKi8KKyAgICAgICAgIGNhc2UgMHhlNzcyOiAvKiBWRVJJTSAtIHZlY3RvciBlbGVtZW50 IHJvdGF0ZSBhbmQgaW5zZXJ0IHVuZGVyIG1hc2sgKi8KKyAgICAgICAgIGNhc2UgMHhlNzczOiAv KiBWRVJMTFYgLSB2ZWN0b3IgZWxlbWVudCByb3RhdGUgbGVmdCBsb2dpY2FsICovCitAQCAtNjMy NSwxMSArNjM1NywxNCBAQCBleDoKKyAgICAgICAgIGNhc2UgMHhlNzdlOiAvKiBWU1JBIC0gdmVj dG9yIHNoaWZ0IHJpZ2h0IGFyaXRobWV0aWMgKi8KKyAgICAgICAgIGNhc2UgMHhlNzdmOiAvKiBW U1JBQiAtIHZlY3RvciBzaGlmdCByaWdodCBhcml0aG1ldGljIGJ5IGJ5dGUgKi8KKyAgICAgICAg IGNhc2UgMHhlNzg0OiAvKiBWUERJIC0gdmVjdG9yIHBlcm11dGUgZG91Ymxld29yZCBpbW1lZGlh dGUgKi8KKysJY2FzZSAweGU3ODU6IC8qIFZCUEVSTSAtIHZlY3RvciBiaXQgcGVybXV0ZSAqLwor ICAgICAgICAgY2FzZSAweGU3OGM6IC8qIFZQRVJNIC0gdmVjdG9yIHBlcm11dGUgKi8KKyAgICAg ICAgIGNhc2UgMHhlNzhkOiAvKiBWU0VMIC0gdmVjdG9yIHNlbGVjdCAqLworICAgICAgICAgY2Fz ZSAweGU3OGU6IC8qIFZGTVMgLSB2ZWN0b3IgZnAgbXVsdGlwbHkgYW5kIHN1YnRyYWN0ICovCisg ICAgICAgICBjYXNlIDB4ZTc4ZjogLyogVkZNQSAtIHZlY3RvciBmcCBtdWx0aXBseSBhbmQgYWRk ICovCisgICAgICAgICBjYXNlIDB4ZTc5NDogLyogVlBLIC0gdmVjdG9yIHBhY2sgKi8KKysJY2Fz ZSAweGU3OWU6IC8qIFZGTk1TIC0gdmVjdG9yIGZwIG5lZ2F0aXZlIG11bHRpcGx5IGFuZCBzdWJ0 cmFjdCAqLworKwljYXNlIDB4ZTc5ZjogLyogVkZOTUEgLSB2ZWN0b3IgZnAgbmVnYXRpdmUgbXVs dGlwbHkgYW5kIGFkZCAqLworICAgICAgICAgY2FzZSAweGU3YTE6IC8qIFZNTEggLSB2ZWN0b3Ig bXVsdGlwbHkgbG9naWNhbCBoaWdoICovCisgICAgICAgICBjYXNlIDB4ZTdhMjogLyogVk1MIC0g dmVjdG9yIG11bHRpcGx5IGxvdyAqLworICAgICAgICAgY2FzZSAweGU3YTM6IC8qIFZNSCAtIHZl Y3RvciBtdWx0aXBseSBoaWdoICovCitAQCAtNjM0NSw2ICs2MzgwLDcgQEAgZXg6CisgICAgICAg ICBjYXNlIDB4ZTdhZTogLyogVk1BRSAtIHZlY3RvciBtdWx0aXBseSBhbmQgYWRkIGV2ZW4gKi8K KyAgICAgICAgIGNhc2UgMHhlN2FmOiAvKiBWTUFPIC0gdmVjdG9yIG11bHRpcGx5IGFuZCBhZGQg b2RkICovCisgICAgICAgICBjYXNlIDB4ZTdiNDogLyogVkdGTSAtIHZlY3RvciBHYWxvaXMgZmll bGQgbXVsdGlwbHkgc3VtICovCisrCWNhc2UgMHhlN2I4OiAvKiBWTVNMIC0gdmVjdG9yIG11bHRp cGx5IHN1bSBsb2dpY2FsICovCisgICAgICAgICBjYXNlIDB4ZTdiOTogLyogVkFDQ0MgLSB2ZWN0 b3IgYWRkIHdpdGggY2FycnkgY29tcHV0ZSBjYXJyeSAqLworICAgICAgICAgY2FzZSAweGU3YmI6 IC8qIFZBQyAtIHZlY3RvciBhZGQgd2l0aCBjYXJyeSAqLworICAgICAgICAgY2FzZSAweGU3YmM6 IC8qIFZHRk1BIC0gdmVjdG9yIEdhbG9pcyBmaWVsZCBtdWx0aXBseSBzdW0gYW5kIGFjY3VtdWxh dGUgKi8KK0BAIC02MzU0LDggKzYzOTAsOCBAQCBleDoKKyAgICAgICAgIGNhc2UgMHhlN2MxOiAv KiBWQ0RMRyAtIHZlY3RvciBjb252ZXJ0IGZyb20gbG9naWNhbCA2NC1iaXQgKi8KKyAgICAgICAg IGNhc2UgMHhlN2MyOiAvKiBWQ0dEIC0gdmVjdG9yIGNvbnZlcnQgdG8gZml4ZWQgNjQtYml0ICov CisgICAgICAgICBjYXNlIDB4ZTdjMzogLyogVkNERyAtIHZlY3RvciBjb252ZXJ0IGZyb20gZml4 ZWQgNjQtYml0ICovCistICAgICAgICBjYXNlIDB4ZTdjNDogLyogVkxERSAtIHZlY3RvciBmcCBs b2FkIGxlbmd0aGVuZWQgKi8KKy0gICAgICAgIGNhc2UgMHhlN2M1OiAvKiBWTEVEIC0gdmVjdG9y IGZwIGxvYWQgcm91bmRlZCAqLworKwljYXNlIDB4ZTdjNDogLyogVkxERS9WRkxMIC0gdmVjdG9y IGZwIGxvYWQgbGVuZ3RoZW5lZCAqLworKwljYXNlIDB4ZTdjNTogLyogVkxFRC9WRkxSIC0gdmVj dG9yIGZwIGxvYWQgcm91bmRlZCAqLworICAgICAgICAgY2FzZSAweGU3Yzc6IC8qIFZGSSAtIHZl Y3RvciBsb2FkIGZwIGludGVnZXIgKi8KKyAgICAgICAgIGNhc2UgMHhlN2NjOiAvKiBWRlBTTyAt IHZlY3RvciBmcCBwZXJmb3JtIHNpZ24gb3BlcmF0aW9uICovCisgICAgICAgICBjYXNlIDB4ZTdj ZTogLyogVkZTUSAtIHZlY3RvciBmcCBzcXVhcmUgcm9vdCAqLworQEAgLTYzNjksNiArNjQwNSw4 IEBAIGV4OgorICAgICAgICAgY2FzZSAweGU3ZTM6IC8qIFZGQSAtIHZlY3RvciBmcCBhZGQgKi8K KyAgICAgICAgIGNhc2UgMHhlN2U1OiAvKiBWRkQgLSB2ZWN0b3IgZnAgZGl2aWRlICovCisgICAg ICAgICBjYXNlIDB4ZTdlNzogLyogVkZNIC0gdmVjdG9yIGZwIG11bHRpcGx5ICovCisrCWNhc2Ug MHhlN2VlOiAvKiBWRk1JTiAtIHZlY3RvciBmcCBtaW5pbXVtICovCisrCWNhc2UgMHhlN2VmOiAv KiBWRk1BWCAtIHZlY3RvciBmcCBtYXhpbXVtICovCisgICAgICAgICBjYXNlIDB4ZTdmMDogLyog VkFWR0wgLSB2ZWN0b3IgYXZlcmFnZSBsb2dpY2FsICovCisgICAgICAgICBjYXNlIDB4ZTdmMTog LyogVkFDQyAtIHZlY3RvciBhZGQgYW5kIGNvbXB1dGUgY2FycnkgKi8KKyAgICAgICAgIGNhc2Ug MHhlN2YyOiAvKiBWQVZHIC0gdmVjdG9yIGF2ZXJhZ2UgKi8KK0BAIC02Mzg2LDYgKzY0MjQsMTQg QEAgZXg6CisgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICBicmVhazsKKyAKKysJ Y2FzZSAweGU2M2Q6IC8qIFZTVFJMIC0gdmVjdG9yIHN0b3JlIHJpZ2h0bW9zdCB3aXRoIGltbWVk LiBsZW5ndGggKi8KKysJICBvYWRkciA9IHMzOTBfcmVjb3JkX2NhbGNfZGlzcCAoZ2RiYXJjaCwg cmVnY2FjaGUsIDAsIGluc25bMV0sIDApOworKwkgIGlmIChyZWNvcmRfZnVsbF9hcmNoX2xpc3Rf YWRkX21lbSAob2FkZHIsIGluaWJbM10gKyAxKSkKKysJICAgIHJldHVybiAtMTsKKysJICBpZiAo cmVjb3JkX2Z1bGxfYXJjaF9saXN0X2FkZF9yZWcgKHJlZ2NhY2hlLCBTMzkwX0ZQQ19SRUdOVU0p KQorKwkgICAgcmV0dXJuIC0xOworKwkgIGJyZWFrOworKworICAgICAgICAgY2FzZSAweGU3MDg6 IC8qIFZTVEVCIC0gdmVjdG9yIHN0b3JlIGVsZW1lbnQgKi8KKyAgICAgICAgICAgb2FkZHIgPSBz MzkwX3JlY29yZF9jYWxjX2Rpc3AgKGdkYmFyY2gsIHJlZ2NhY2hlLCBpbmliWzNdLCBpbnNuWzFd LCAwKTsKKyAgICAgICAgICAgaWYgKHJlY29yZF9mdWxsX2FyY2hfbGlzdF9hZGRfbWVtIChvYWRk ciwgMSkpCitAQCAtNjQ4MCwxMyArNjUyNiwyMiBAQCBleDoKKyAgICAgICAgICAgICByZXR1cm4g LTE7CisgICAgICAgICAgIGJyZWFrOworIAorKwljYXNlIDB4ZTYzYzogLyogVlVQS1ogLSB2ZWN0 b3IgdW5wYWNrIHpvbmVkICovCisrCSAgb2FkZHIgPSBzMzkwX3JlY29yZF9jYWxjX2Rpc3AgKGdk YmFyY2gsIHJlZ2NhY2hlLCAwLCBpbnNuWzFdLCAwKTsKKysJICBpZiAocmVjb3JkX2Z1bGxfYXJj aF9saXN0X2FkZF9tZW0gKG9hZGRyLCAoaWJ5dGVbMV0gKyAxKSAmIDMxKSkKKysJICAgIHJldHVy biAtMTsKKysJICBpZiAocmVjb3JkX2Z1bGxfYXJjaF9saXN0X2FkZF9yZWcgKHJlZ2NhY2hlLCBT MzkwX1BTV01fUkVHTlVNKSkKKysJICAgIHJldHVybiAtMTsKKysJICBicmVhazsKKysKKysJY2Fz ZSAweGU2M2Y6IC8qIFZTVFJMUiAtIHZlY3RvciBzdG9yZSByaWdodG1vc3Qgd2l0aCBsZW5ndGgg Ki8KKyAgICAgICAgIGNhc2UgMHhlNzNmOiAvKiBWU1RMIC0gdmVjdG9yIHN0b3JlIHdpdGggbGVu Z3RoICovCisgICAgICAgICAgIG9hZGRyID0gczM5MF9yZWNvcmRfY2FsY19kaXNwIChnZGJhcmNo LCByZWdjYWNoZSwgMCwgaW5zblsxXSwgMCk7CisgICAgICAgICAgIHJlZ2NhY2hlX3Jhd19yZWFk X3Vuc2lnbmVkIChyZWdjYWNoZSwgUzM5MF9SMF9SRUdOVU0gKyBpbmliWzNdLCAmdG1wKTsKKyAg ICAgICAgICAgdG1wICY9IDB4ZmZmZmZmZmZ1OworLSAgICAgICAgICBpZiAodG1wID4gMTYpCist ICAgICAgICAgICAgdG1wID0gMTY7CistICAgICAgICAgIGlmIChyZWNvcmRfZnVsbF9hcmNoX2xp c3RfYWRkX21lbSAob2FkZHIsIHRtcCkpCisrCSAgaWYgKHRtcCA+IDE1KQorKwkgICAgdG1wID0g MTU7CisrCSAgaWYgKHJlY29yZF9mdWxsX2FyY2hfbGlzdF9hZGRfbWVtIChvYWRkciwgdG1wICsg MSkpCisgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICBpZiAocmVjb3JkX2Z1bGxf YXJjaF9saXN0X2FkZF9yZWcgKHJlZ2NhY2hlLCBTMzkwX0ZQQ19SRUdOVU0pKQorICAgICAgICAg ICAgIHJldHVybiAtMTsKK0BAIC02NDk0LDYgKzY1NDksMTcgQEAgZXg6CisgCisgICAgICAgICAv KiAweGU3NDctMHhlNzQ5IHVuZGVmaW5lZCAqLworIAorKwljYXNlIDB4ZTY1ODogLyogVkNWRCAt IHZlY3RvciBjb252ZXJ0IHRvIGRlY2ltYWwgMzIgYml0ICovCisrCWNhc2UgMHhlNjU5OiAvKiBW U1JQIC0gdmVjdG9yIHNoaWZ0IGFuZCByb3VuZCBkZWNpbWFsICovCisrCWNhc2UgMHhlNjVhOiAv KiBWQ1ZERyAtIHZlY3RvciBjb252ZXJ0IHRvIGRlY2ltYWwgNjQgYml0Ki8KKysJY2FzZSAweGU2 NWI6IC8qIFZQU09QIC0gdmVjdG9yIHBlcmZvcm0gc2lnbiBvcGVyYXRpb24gZGVjaW1hbCAqLwor KwljYXNlIDB4ZTY3MTogLyogVkFQIC0gdmVjdG9yIGFkZCBkZWNpbWFsICovCisrCWNhc2UgMHhl NjczOiAvKiBWU1AgLSB2ZWN0b3Igc3VidHJhY3QgZGVjaW1hbCAqLworKwljYXNlIDB4ZTY3ODog LyogVk1QIC0gdmVjdG9yIG11bHRpcGx5IGRlY2ltYWwgKi8KKysJY2FzZSAweGU2Nzk6IC8qIFZN U1AgLSB2ZWN0b3IgbXVsdGlwbHkgZGVjaW1hbCAqLworKwljYXNlIDB4ZTY3YTogLyogVkRQIC0g dmVjdG9yIGRpdmlkZSBkZWNpbWFsICovCisrCWNhc2UgMHhlNjdiOiAvKiBWUlAgLSB2ZWN0b3Ig cmVtYWluZGVyIGRlY2ltYWwgKi8KKysJY2FzZSAweGU2N2U6IC8qIFZTRFAgLSB2ZWN0b3Igc2hp ZnQgYW5kIGRpdmlkZSBkZWNpbWFsICovCisgICAgICAgICBjYXNlIDB4ZTc0YTogLyogVkZUQ0kg LSB2ZWN0b3IgZnAgdGVzdCBkYXRhIGNsYXNzIGltbWVkaWF0ZSAqLworICAgICAgICAgY2FzZSAw eGU3NWM6IC8qIFZJU1RSIC0gdmVjdG9yIGlzb2xhdGUgc3RyaW5nICovCisgICAgICAgICBjYXNl IDB4ZTc4MDogLyogVkZFRSAtIHZlY3RvciBmaW5kIGVsZW1lbnQgZXF1YWwgKi8KK0BAIC02NTA0 LDcgKzY1NzAsNyBAQCBleDoKKyAgICAgICAgIGNhc2UgMHhlNzk3OiAvKiBWUEtTIC0gdmVjdG9y IHBhY2sgc2F0dXJhdGUgKi8KKyAgICAgICAgIGNhc2UgMHhlN2U4OiAvKiBWRkNFIC0gdmVjdG9y IGZwIGNvbXBhcmUgZXF1YWwgKi8KKyAgICAgICAgIGNhc2UgMHhlN2VhOiAvKiBWRkNIRSAtIHZl Y3RvciBmcCBjb21wYXJlIGhpZ2ggb3IgZXF1YWwgKi8KKy0gICAgICAgIGNhc2UgMHhlN2ViOiAv KiBWRkNFIC0gdmVjdG9yIGZwIGNvbXBhcmUgaGlnaCAqLworKwljYXNlIDB4ZTdlYjogLyogVkZD SCAtIHZlY3RvciBmcCBjb21wYXJlIGhpZ2ggKi8KKyAgICAgICAgIGNhc2UgMHhlN2Y4OiAvKiBW Q0VRIC0gdmVjdG9yIGNvbXBhcmUgZXF1YWwgKi8KKyAgICAgICAgIGNhc2UgMHhlN2Y5OiAvKiBW Q0hMIC0gdmVjdG9yIGNvbXBhcmUgaGlnaCBsb2dpY2FsICovCisgICAgICAgICBjYXNlIDB4ZTdm YjogLyogVkNIIC0gdmVjdG9yIGNvbXBhcmUgaGlnaCAqLworQEAgLTY1MTcsNiArNjU4MywxNCBA QCBleDoKKyAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgIGJyZWFrOworIAorKwlj YXNlIDB4ZTY1ZjogLyogVlRQIC0gdmVjdG9yIHRlc3QgZGVjaW1hbCAqLworKwkgIC8qIGZsYWdz ICsgRlBDICovCisrCSAgaWYgKHJlY29yZF9mdWxsX2FyY2hfbGlzdF9hZGRfcmVnIChyZWdjYWNo ZSwgUzM5MF9QU1dNX1JFR05VTSkpCisrCSAgICByZXR1cm4gLTE7CisrCSAgaWYgKHJlY29yZF9m dWxsX2FyY2hfbGlzdF9hZGRfcmVnIChyZWdjYWNoZSwgUzM5MF9GUENfUkVHTlVNKSkKKysJICAg IHJldHVybiAtMTsKKysJICBicmVhazsKKysKKyAgICAgICAgIC8qIDB4ZTc0Yi0weGU3NGMgdW5k ZWZpbmVkICovCisgICAgICAgICAvKiAweGU3NGUtMHhlNzRmIHVuZGVmaW5lZCAqLworICAgICAg ICAgLyogMHhlNzUxIHVuZGVmaW5lZCAqLworQEAgLTY1MjQsMjYgKzY1OTgsMjYgQEAgZXg6Cisg ICAgICAgICAvKiAweGU3NTctMHhlNzViIHVuZGVmaW5lZCAqLworICAgICAgICAgLyogMHhlNzVk LTB4ZTc1ZSB1bmRlZmluZWQgKi8KKyAgICAgICAgIC8qIDB4ZTc2MyB1bmRlZmluZWQgKi8KKy0g ICAgICAgIC8qIDB4ZTc2YyB1bmRlZmluZWQgKi8KKy0gICAgICAgIC8qIDB4ZTc2ZS0weGU3NmYg dW5kZWZpbmVkICovCisgICAgICAgICAvKiAweGU3NzEgdW5kZWZpbmVkICovCisgICAgICAgICAv KiAweGU3NzYgdW5kZWZpbmVkICovCisgICAgICAgICAvKiAweGU3NzkgdW5kZWZpbmVkICovCisg ICAgICAgICAvKiAweGU3N2IgdW5kZWZpbmVkICovCisgICAgICAgICAvKiAweGU3ODMgdW5kZWZp bmVkICovCistICAgICAgICAvKiAweGU3ODUtMHhlNzg5IHVuZGVmaW5lZCAqLworKwkvKiAweGU3 ODYtMHhlNzg5IHVuZGVmaW5lZCAqLworICAgICAgICAgLyogMHhlNzhiIHVuZGVmaW5lZCAqLwor ICAgICAgICAgLyogMHhlNzkwLTB4ZTc5MyB1bmRlZmluZWQgKi8KKyAgICAgICAgIC8qIDB4ZTc5 NiB1bmRlZmluZWQgKi8KKy0gICAgICAgIC8qIDB4ZTc5OC0weGU3YTAgdW5kZWZpbmVkICovCist ICAgICAgICAvKiAweGU3YTggdW5kZWZpbmVkICovCisrCS8qIDB4ZTc5OC0weGU3OWQgdW5kZWZp bmVkICovCisrCS8qIDB4ZTdhMCB1bmRlZmluZWQgKi8KKysJLyogMHhlN2E4IHVuZGVmaW5lZCAq LworICAgICAgICAgLyogMHhlN2IwLTB4ZTdiMyB1bmRlZmluZWQgKi8KKy0gICAgICAgIC8qIDB4 ZTdiNS0weGU3YjggdW5kZWZpbmVkICovCisrCS8qIDB4ZTdiNS0weGU3YjcgdW5kZWZpbmVkICov CisgICAgICAgICAvKiAweGU3YmEgdW5kZWZpbmVkICovCisgICAgICAgICAvKiAweGU3YmUgdW5k ZWZpbmVkICovCisgICAgICAgICAvKiAweGU3YzYgdW5kZWZpbmVkICovCisgICAgICAgICAvKiAw eGU3YzgtMHhlN2M5IHVuZGVmaW5lZCAqLworIAorKwljYXNlIDB4ZTY3NzogLyogVkNQIC0gdmVj dG9yIGNvbXBhcmUgZGVjaW1hbCAqLworICAgICAgICAgY2FzZSAweGU3Y2E6IC8qIFdGSyAtIHZl Y3RvciBmcCBjb21wYXJlIGFuZCBzaWduYWwgc2NhbGFyICovCisgICAgICAgICBjYXNlIDB4ZTdj YjogLyogV0ZDIC0gdmVjdG9yIGZwIGNvbXBhcmUgc2NhbGFyICovCisgICAgICAgICBjYXNlIDB4 ZTdkODogLyogVlRNIC0gdmVjdG9yIHRlc3QgdW5kZXIgbWFzayAqLworQEAgLTY1NjgsNyArNjY0 Miw3IEBAIGV4OgorICAgICAgICAgLyogMHhlN2U0IHVuZGVmaW5lZCAqLworICAgICAgICAgLyog MHhlN2U2IHVuZGVmaW5lZCAqLworICAgICAgICAgLyogMHhlN2U5IHVuZGVmaW5lZCAqLworLSAg ICAgICAgLyogMHhlN2VjLTB4ZTdlZiB1bmRlZmluZWQgKi8KKysJLyogMHhlN2VjLTB4ZTdlZCB1 bmRlZmluZWQgKi8KKyAgICAgICAgIC8qIDB4ZTdmNCB1bmRlZmluZWQgKi8KKyAgICAgICAgIC8q IDB4ZTdmNiB1bmRlZmluZWQgKi8KKyAgICAgICAgIC8qIDB4ZTdmYSB1bmRlZmluZWQgKi8KK0BA IC03MDQ4LDggKzcxMjIsNiBAQCBleDoKKyAgICAgICAgIH0KKyAgICAgICBicmVhazsKKyAKKy0g ICAgLyogMHhlNiB1bmRlZmluZWQgKi8KKy0KKyAgICAgY2FzZSAweGVjOgorICAgICAgIC8qIFJJ RS9SSVMvUlJTLWZvcm1hdCBpbnN0cnVjdGlvbiAqLworICAgICAgIHN3aXRjaCAoaWJ5dGVbMF0g PDwgOCB8IGlieXRlWzVdKQoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0zM29m MzUucGF0Y2ggYi9nZGItcmhiejE0MjAzMDQtczM5MHgtMzNvZjM1LnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMxYzAwMjEKLS0tIC9kZXYvbnVsbAorKysgYi9nZGIt cmhiejE0MjAzMDQtczM5MHgtMzNvZjM1LnBhdGNoCkBAIC0wLDAgKzEsNDkgQEAKK2NvbW1pdCA0 NzgyNmNkYmVjMjU0OGNkMWQyNWFjZjRjZmFmOTA4YWU4OGYzMzI1CitBdXRob3I6IEFuZHJlYXMg S3JlYmJlbCA8a3JlYmJlbEBsaW51eC52bmV0LmlibS5jb20+CitEYXRlOiAgIEZyaSBKdWwgMjEg MTA6NTQ6MDYgMjAxNyArMDIwMAorCisgICAgUy8zOTA6IFN1cHBvcnQgejE0IGFzIENQVSBuYW1l LgorICAgIAorICAgIFdpdGggSUJNIHoxNCBvZmZpY2lhbGx5IGFubm91bmNlZCBJIGNhbiBhZGQg ejE0IGFzIENQVSBuYW1lLgorICAgIAorICAgIE5vIHJlZ3Jlc3Npb25zIHdpdGggdGhhdCBwYXRj aCBvbiBzMzkweC4KKyAgICAKKyAgICBnYXMvQ2hhbmdlTG9nOgorICAgIAorICAgIDIwMTctMDct MjEgIEFuZHJlYXMgS3JlYmJlbCAgPGtyZWJiZWxAbGludXgudm5ldC5pYm0uY29tPgorICAgIAor ICAgICAgICAgICAgKiBjb25maWcvdGMtczM5MC5jIChzMzkwX3BhcnNlX2NwdSk6IEFkZCB6MTQg YXMgYWx0ZXJuYXRlIENQVQorICAgICAgICAgICAgbmFtZS4KKyAgICAgICAgICAgICogZG9jL2Fz LnRleGluZm86IEFkZCB6MTQgdG8gQ1BVIHN0cmluZyBsaXN0LgorICAgICAgICAgICAgKiBkb2Mv Yy1zMzkwLnRleGk6IExpa2V3aXNlLgorICAgIAorICAgIG9wY29kZXMvQ2hhbmdlTG9nOgorICAg IAorICAgIDIwMTctMDctMjEgIEFuZHJlYXMgS3JlYmJlbCAgPGtyZWJiZWxAbGludXgudm5ldC5p Ym0uY29tPgorICAgIAorICAgICAgICAgICAgKiBzMzkwLW1rb3BjLmMgKG1haW4pOiBFbmFibGUg ejE0IGFzIENQVSBzdHJpbmcgaW4gdGhlIG9wY29kZQorICAgICAgICAgICAgdGFibGUuCisKKyMj IyBhL29wY29kZXMvQ2hhbmdlTG9nCisjIyMgYi9vcGNvZGVzL0NoYW5nZUxvZworIyMgLTEsMyAr MSw4IEBACisrMjAxNy0wNy0yMSAgQW5kcmVhcyBLcmViYmVsICA8a3JlYmJlbEBsaW51eC52bmV0 LmlibS5jb20+CisrCisrCSogczM5MC1ta29wYy5jIChtYWluKTogRW5hYmxlIHoxNCBhcyBDUFUg c3RyaW5nIGluIHRoZSBvcGNvZGUKKysJdGFibGUuCisrCisgMjAxNy0wNy0yMCAgTmljayBDbGlm dG9uICA8bmlja2NAcmVkaGF0LmNvbT4KKyAKKyAJKiBwby9kZS5wbzogVXBkYXRlZCBHZXJtYW4g dHJhbnNsYXRpb24uCistLS0gYS9vcGNvZGVzL3MzOTAtbWtvcGMuYworKysrIGIvb3Bjb2Rlcy9z MzkwLW1rb3BjLmMKK0BAIC0zNzQsNyArMzc0LDggQEAgbWFpbiAodm9pZCkKKyAgICAgICBlbHNl IGlmIChzdHJjbXAgKGNwdV9zdHJpbmcsICJ6MTMiKSA9PSAwCisgCSAgICAgICB8fCBzdHJjbXAg KGNwdV9zdHJpbmcsICJhcmNoMTEiKSA9PSAwKQorIAltaW5fY3B1ID0gUzM5MF9PUENPREVfWjEz OworLSAgICAgIGVsc2UgaWYgKHN0cmNtcCAoY3B1X3N0cmluZywgImFyY2gxMiIpID09IDApCisr ICAgICAgZWxzZSBpZiAoc3RyY21wIChjcHVfc3RyaW5nLCAiejE0IikgPT0gMAorKwkgICAgICAg fHwgc3RyY21wIChjcHVfc3RyaW5nLCAiYXJjaDEyIikgPT0gMCkKKyAJbWluX2NwdSA9IFMzOTBf T1BDT0RFX0FSQ0gxMjsKKyAgICAgICBlbHNlIHsKKyAJZnByaW50ZiAoc3RkZXJyLCAiQ291bGRu J3QgcGFyc2UgY3B1IHN0cmluZyAlc1xuIiwgY3B1X3N0cmluZyk7CgpkaWZmIC0tZ2l0IGEvZ2Ri LXJoYnoxNDIwMzA0LXMzOTB4LTM0b2YzNS5wYXRjaCBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0z NG9mMzUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzU0NjZkNQot LS0gL2Rldi9udWxsCisrKyBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0zNG9mMzUucGF0Y2gKQEAg LTAsMCArMSw1MyBAQAorY29tbWl0IDc5YzEyZmFlZWE1N2U2MTM2NGI2YTdhM2U0MTFiMDk2ZWRj ZTk4OWMKK0F1dGhvcjogQW5kcmVhcyBLcmViYmVsIDxrcmViYmVsQGxpbnV4LnZuZXQuaWJtLmNv bT4KK0RhdGU6ICAgRnJpIEp1bCAyOCAxNzo1OToyNSAyMDE3ICswMjAwCisKKyAgICBTLzM5MDog Rml4IHNlZ2ZhdWx0IHdoZW4gbGlua2luZyAtc2hhcmVkIC1ub3N0YXJ0ZmlsZXMKKyAgICAKKyAg ICBSZWdyZXNzaW9uLXRlc3RlZCBvbiBzMzkweC4KKyAgICAKKyAgICBiZmQvQ2hhbmdlTG9nOgor ICAgIAorICAgIDIwMTctMDctMjggIEFuZHJlYXMgS3JlYmJlbCAgPGtyZWJiZWxAbGludXgudm5l dC5pYm0uY29tPgorICAgIAorICAgICAgICAgICAgKiBlbGYzMi1zMzkwLmMgKGVsZl9zMzkwX2Zp bmlzaF9keW5hbWljX3NlY3Rpb25zKTogQWRkIE5VTEwKKyAgICAgICAgICAgIHBvaW50ZXIgY2hl Y2sgZm9yIGh0YWItPmVsZi5pcmVscGx0LgorICAgICAgICAgICAgKiBlbGY2NC1zMzkwLmMgKGVs Zl9zMzkwX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCisKKy0tLSBhL2JmZC9l bGYzMi1zMzkwLmMKKysrKyBiL2JmZC9lbGYzMi1zMzkwLmMKK0BAIC0zOTQxLDcgKzM5NDEsOSBA QCBlbGZfczM5MF9maW5pc2hfZHluYW1pY19zZWN0aW9ucyAoYmZkICpvdXRwdXRfYmZkLAorIAkg ICAgICBicmVhazsKKyAKKyAJICAgIGNhc2UgRFRfUExUUkVMU1o6CistCSAgICAgIGR5bi5kX3Vu LmRfdmFsID0gaHRhYi0+ZWxmLnNyZWxwbHQtPnNpemUgKyBodGFiLT5lbGYuaXJlbHBsdC0+c2l6 ZTsKKysJICAgICAgZHluLmRfdW4uZF92YWwgPSBodGFiLT5lbGYuc3JlbHBsdC0+c2l6ZTsKKysJ ICAgICAgaWYgKGh0YWItPmVsZi5pcmVscGx0KQorKwkJZHluLmRfdW4uZF92YWwgKz0gaHRhYi0+ ZWxmLmlyZWxwbHQtPnNpemU7CisgCSAgICAgIGJyZWFrOworIAkgICAgfQorIAorLS0tIGEvYmZk L2VsZjY0LXMzOTAuYworKysrIGIvYmZkL2VsZjY0LXMzOTAuYworQEAgLTM3NDUsNyArMzc0NSw5 IEBAIGVsZl9zMzkwX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zIChiZmQgKm91dHB1dF9iZmQsCisg CSAgICAgIGJyZWFrOworIAorIAkgICAgY2FzZSBEVF9QTFRSRUxTWjoKKy0JICAgICAgZHluLmRf dW4uZF92YWwgPSBodGFiLT5lbGYuc3JlbHBsdC0+c2l6ZSArIGh0YWItPmVsZi5pcmVscGx0LT5z aXplOworKwkgICAgICBkeW4uZF91bi5kX3ZhbCA9IGh0YWItPmVsZi5zcmVscGx0LT5zaXplOwor KwkgICAgICBpZiAoaHRhYi0+ZWxmLmlyZWxwbHQpCisrCQlkeW4uZF91bi5kX3ZhbCArPSBodGFi LT5lbGYuaXJlbHBsdC0+c2l6ZTsKKyAJICAgICAgYnJlYWs7CisgCisgCSAgICBjYXNlIERUX1JF TEFTWjoKK0BAIC0zNzU2LDcgKzM3NTgsOSBAQCBlbGZfczM5MF9maW5pc2hfZHluYW1pY19zZWN0 aW9ucyAoYmZkICpvdXRwdXRfYmZkLAorIAkJIGxpbmtlciBzY3JpcHQgYXJyYW5nZXMgZm9yIC5y ZWxhLnBsdCB0byBmb2xsb3cgYWxsCisgCQkgb3RoZXIgcmVsb2NhdGlvbiBzZWN0aW9ucywgd2Ug ZG9uJ3QgaGF2ZSB0byB3b3JyeQorIAkJIGFib3V0IGNoYW5naW5nIHRoZSBEVF9SRUxBIGVudHJ5 LiAgKi8KKy0JICAgICAgZHluLmRfdW4uZF92YWwgLT0gaHRhYi0+ZWxmLnNyZWxwbHQtPnNpemUg KyBodGFiLT5lbGYuaXJlbHBsdC0+c2l6ZTsKKysJICAgICAgZHluLmRfdW4uZF92YWwgLT0gaHRh Yi0+ZWxmLnNyZWxwbHQtPnNpemU7CisrCSAgICAgIGlmIChodGFiLT5lbGYuaXJlbHBsdCkKKysJ CWR5bi5kX3VuLmRfdmFsIC09IGh0YWItPmVsZi5pcmVscGx0LT5zaXplOworIAkgICAgICBicmVh azsKKyAJICAgIH0KKyAKCmRpZmYgLS1naXQgYS9nZGItcmhiejE0MjAzMDQtczM5MHgtMzVvZjM1 LnBhdGNoIGIvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTM1b2YzNS5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMDdlODFmCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXJo YnoxNDIwMzA0LXMzOTB4LTM1b2YzNS5wYXRjaApAQCAtMCwwICsxLDY3IEBACitjb21taXQgMWVm NjkyZWEyMzcxNDg3NmNjMzBiMWEzYWIzZWYzM2ExMzY5ZjE3YQorQXV0aG9yOiBBbmRyZWFzIEty ZWJiZWwgPGtyZWJiZWxAbGludXgudm5ldC5pYm0uY29tPgorRGF0ZTogICBUdWUgQXVnIDEgMTU6 MTM6NDAgMjAxNyArMDIwMAorCisgICAgUy8zOTA6IEZpeCBjbGFpbWZpbGUgZmFpbHVyZXMKKyAg ICAKKyAgICBUaGlzIGZpeGVzIGEgc2VnZmF1bHQgd2hlbiB0cnlpbmcgdG8gYWNjZXNzIHRoZSBs b2NhbF9wbHQgZmllbGQgaW4gdGhlCisgICAgczM5MCBzcGVjaWZpYyBlbGYgZGF0YSBhbHRob3Vn IHRoZSB1bmRlcmxheWluZyBvYmplY3QgaXMgYSBnZW5lcmljIGVsZgorICAgIG9iamVjdC4KKyAg ICAKKyAgICBUaGlzIGZpeGVzIHRoZSBmb2xsb3dpbmcgdGVzdHN1aXRlIGZhaWx1cmVzOgorICAg IAorICAgIDwgRkFJTDogcGx1Z2luIGNsYWltZmlsZSByZXBsYWNlIHN5bWJvbCB3aXRoIHNvdXJj ZQorICAgIDwgRkFJTDogcGx1Z2luIGNsYWltZmlsZSByZXNvbHZlIHN5bWJvbCB3aXRoIHNvdXJj ZQorICAgIDwgRkFJTDogcGx1Z2luIGNsYWltZmlsZSByZXBsYWNlIGZpbGUgd2l0aCBzb3VyY2UK KyAgICA8IEZBSUw6IHBsdWdpbiBzZXQgc3ltYm9sIHZpc2liaWxpdHkgd2l0aCBzb3VyY2UKKyAg ICA8IEZBSUw6IHBsdWdpbiBpZ25vcmUgbGliIHdpdGggc291cmNlCisgICAgPCBGQUlMOiBwbHVn aW4gY2xhaW1maWxlIHJlcGxhY2UgbGliIHdpdGggc291cmNlCisgICAgPCBGQUlMOiBwbHVnaW4g MiB3aXRoIHNvdXJjZSBsaWIKKyAgICA8IEZBSUw6IGxvYWQgcGx1Z2luIDIgd2l0aCBzb3VyY2UK KyAgICA8IEZBSUw6IHBsdWdpbiAzIHdpdGggc291cmNlIGxpYgorICAgIDwgRkFJTDogbG9hZCBw bHVnaW4gMyB3aXRoIHNvdXJjZQorICAgIAorICAgIGJmZC9DaGFuZ2VMb2c6CisgICAgCisgICAg MjAxNy0wOC0wMSAgQW5kcmVhcyBLcmViYmVsICA8a3JlYmJlbEBsaW51eC52bmV0LmlibS5jb20+ CisgICAgCisgICAgICAgICAgICAqIGVsZjMyLXMzOTAuYyAoZWxmX3MzOTBfZmluaXNoX2R5bmFt aWNfc2VjdGlvbnMpOiBTa2lwIGlmIGl0CisgICAgICAgICAgICBpc24ndCB0aGUgUy8zOTAgc3Bl Y2lmaWMgZWxmIGRhdGEuCisgICAgICAgICAgICAqIGVsZjY0LXMzOTAuYyAoZWxmX3MzOTBfZmlu aXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KKworIyMjIGEvYmZkL0NoYW5nZUxvZwor IyMjIGIvYmZkL0NoYW5nZUxvZworIyMgLTEsMyArMSw5IEBACisrMjAxNy0wOC0wMSAgQW5kcmVh cyBLcmViYmVsICA8a3JlYmJlbEBsaW51eC52bmV0LmlibS5jb20+CisrCisrCSogZWxmMzItczM5 MC5jIChlbGZfczM5MF9maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6IFNraXAgaWYgaXQKKysJaXNu J3QgdGhlIFMvMzkwIHNwZWNpZmljIGVsZiBkYXRhLgorKwkqIGVsZjY0LXMzOTAuYyAoZWxmX3Mz OTBfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KKysKKyAyMDE3LTA3LTMxICBL dWFuLUxpbiBDaGVuICA8cnVmdXNAYW5kZXN0ZWNoLmNvbT4KKyAKKyAJKiBlbGZ4eC1yaXNjdi5j IChyaXNjdl9lbGZfYWRkX3N1Yl9yZWxvYyk6IE5ldyBmdW5jdGlvbi4KKy0tLSBhL2JmZC9lbGYz Mi1zMzkwLmMKKysrKyBiL2JmZC9lbGYzMi1zMzkwLmMKK0BAIC00MDAxLDYgKzQwMDEsOSBAQCBl bGZfczM5MF9maW5pc2hfZHluYW1pY19zZWN0aW9ucyAoYmZkICpvdXRwdXRfYmZkLAorIAorICAg ICAgIHN5bXRhYl9oZHIgPSAmZWxmX3N5bXRhYl9oZHIgKGliZmQpOworIAorKyAgICAgIGlmICgh aXNfczM5MF9lbGYgKGliZmQpKQorKwljb250aW51ZTsKKysKKyAgICAgICBsb2NhbF9wbHQgPSBl bGZfczM5MF9sb2NhbF9wbHQgKGliZmQpOworICAgICAgIGlmIChsb2NhbF9wbHQgIT0gTlVMTCkK KyAJZm9yIChpID0gMDsgaSA8IHN5bXRhYl9oZHItPnNoX2luZm87IGkrKykKKy0tLSBhL2JmZC9l bGY2NC1zMzkwLmMKKysrKyBiL2JmZC9lbGY2NC1zMzkwLmMKK0BAIC0zODE0LDYgKzM4MTQsOSBA QCBlbGZfczM5MF9maW5pc2hfZHluYW1pY19zZWN0aW9ucyAoYmZkICpvdXRwdXRfYmZkLAorIAor ICAgICAgIHN5bXRhYl9oZHIgPSAmZWxmX3N5bXRhYl9oZHIgKGliZmQpOworIAorKyAgICAgIGlm ICghaXNfczM5MF9lbGYgKGliZmQpKQorKwljb250aW51ZTsKKysKKyAgICAgICBsb2NhbF9wbHQg PSBlbGZfczM5MF9sb2NhbF9wbHQgKGliZmQpOworICAgICAgIGlmIChsb2NhbF9wbHQgIT0gTlVM TCkKKyAJZm9yIChpID0gMDsgaSA8IHN5bXRhYl9oZHItPnNoX2luZm87IGkrKykKCmRpZmYgLS1n aXQgYS9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjBvZjI1LnBhdGNoIGIvZ2RiLXJoYno3OTU0MjQt Yml0cG9zLTIwb2YyNS5wYXRjaAppbmRleCA1MThmODdiLi5lOGQ4MTZkIDEwMDY0NAotLS0gYS9n ZGItcmhiejc5NTQyNC1iaXRwb3MtMjBvZjI1LnBhdGNoCisrKyBiL2dkYi1yaGJ6Nzk1NDI0LWJp dHBvcy0yMG9mMjUucGF0Y2gKQEAgLTQ2MywxMCArNDYzLDEwIEBAIENvbnRlbnQtVHlwZTogdGV4 dC94LXBhdGNoCiBDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CiBDb250ZW50LURpc3Bv c2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1iaXRwb3MtbWFpbi5wYXRjaAogCi1JbmRleDog Z2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2FkYS1sYW5nLmMKK0luZGV4OiBnZGItOC4wL2dkYi9h ZGEtbGFuZy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAub3JpZy9nZGIv YWRhLWxhbmcuYwkyMDE3LTA0LTIwIDIzOjA4OjU0LjE0MjM5NDY3MSArMDIwMAotKysrIGdkYi03 Ljk5LjkwLjIwMTcwNDIwL2dkYi9hZGEtbGFuZy5jCTIwMTctMDQtMjAgMjM6MDg6NTYuOTY3NDEw NTkwICswMjAwCistLS0gZ2RiLTguMC5vcmlnL2dkYi9hZGEtbGFuZy5jCTIwMTctMDgtMTkgMjA6 MDQ6NTkuNzg1NzgwNTAxICswMjAwCisrKysgZ2RiLTguMC9nZGIvYWRhLWxhbmcuYwkyMDE3LTA4 LTE5IDIwOjA1OjEwLjA1Njg3NjU4OSArMDIwMAogQEAgLTc2LDcgKzc2LDcgQEAKICAKICBzdGF0 aWMgc3RydWN0IHZhbHVlICpkZXNjX2JvdW5kcyAoc3RydWN0IHZhbHVlICopOwpAQCAtODUwLDEw ICs4NTAsMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9hZGEtbGFuZy5jCiAg ICAgICAgaW50IGVsdF9iaXRzaXplID0gVFlQRV9GSUVMRF9CSVRTSVpFICh0eXBlMCwgMCk7CiAg CiAgICAgICAgVFlQRV9GSUVMRF9CSVRTSVpFIChyZXN1bHQsIDApID0gVFlQRV9GSUVMRF9CSVRT SVpFICh0eXBlMCwgMCk7Ci1JbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2FkYS1sYW5n LmgKK0luZGV4OiBnZGItOC4wL2dkYi9hZGEtbGFuZy5oCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu OTkuOTAuMjAxNzA0MjAub3JpZy9nZGIvYWRhLWxhbmcuaAkyMDE3LTA0LTIwIDIzOjA4OjU0LjE0 MzM5NDY3NiArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9hZGEtbGFuZy5oCTIw MTctMDQtMjAgMjM6MDg6NTYuOTY3NDEwNTkwICswMjAwCistLS0gZ2RiLTguMC5vcmlnL2dkYi9h ZGEtbGFuZy5oCTIwMTctMDgtMTkgMjA6MDQ6NTkuNzg2NzgwNTEwICswMjAwCisrKysgZ2RiLTgu MC9nZGIvYWRhLWxhbmcuaAkyMDE3LTA4LTE5IDIwOjA1OjEwLjA1Njg3NjU4OSArMDIwMAogQEAg LTE2OCw3ICsxNjgsNyBAQAogIGV4dGVybiB2b2lkIGFkYV9wcmludF90eXBlZGVmIChzdHJ1Y3Qg dHlwZSAqdHlwZSwgc3RydWN0IHN5bWJvbCAqbmV3X3N5bWJvbCwKICAJCQkgICAgICAgc3RydWN0 IHVpX2ZpbGUgKnN0cmVhbSk7CkBAIC04ODEsMTAgKzg4MSwxMCBAQCBJbmRleDogZ2RiLTcuOTku OTAuMjAxNzA0MjAvZ2RiL2FkYS1sYW5nLmgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0eXBlICopOwogIAogIGV4dGVybiBzdHJ1 Y3QgdHlwZSAqYWRhX2NvZXJjZV90b19zaW1wbGVfYXJyYXlfdHlwZSAoc3RydWN0IHR5cGUgKik7 Ci1JbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2FkYS10eXBlcHJpbnQuYworSW5kZXg6 IGdkYi04LjAvZ2RiL2FkYS10eXBlcHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5Ljkw LjIwMTcwNDIwLm9yaWcvZ2RiL2FkYS10eXBlcHJpbnQuYwkyMDE3LTA0LTIwIDIzOjA4OjU0LjE0 MzM5NDY3NiArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9hZGEtdHlwZXByaW50 LmMJMjAxNy0wNC0yMCAyMzowODo1Ni45Njc0MTA1OTAgKzAyMDAKKy0tLSBnZGItOC4wLm9yaWcv Z2RiL2FkYS10eXBlcHJpbnQuYwkyMDE3LTA4LTE5IDIwOjA0OjU5Ljc4Njc4MDUxMCArMDIwMAor KysrIGdkYi04LjAvZ2RiL2FkYS10eXBlcHJpbnQuYwkyMDE3LTA4LTE5IDIwOjA1OjEwLjA1Nzg3 NjU5OCArMDIwMAogQEAgLTg5MSw4ICs4OTEsOCBAQAogIAkgICAgY29uc3QgY2hhciAqbmFtZSA9 IGFkYV90eXBlX25hbWUgKHR5cGUpOwogIApAQCAtOTA2LDEwICs5MDYsMTAgQEAgSW5kZXg6IGdk Yi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9hZGEtdHlwZXByaW50LmMKICAJYnJlYWs7CiAgICAgICAg Y2FzZSBUWVBFX0NPREVfRU5VTToKICAJaWYgKHNob3cgPCAwKQotSW5kZXg6IGdkYi03Ljk5Ljkw LjIwMTcwNDIwL2dkYi9hZGEtdmFscHJpbnQuYworSW5kZXg6IGdkYi04LjAvZ2RiL2FkYS12YWxw cmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAub3JpZy9nZGIvYWRh LXZhbHByaW50LmMJMjAxNy0wNC0yMCAyMzowODo1NC4xNDQzOTQ2ODIgKzAyMDAKLSsrKyBnZGIt Ny45OS45MC4yMDE3MDQyMC9nZGIvYWRhLXZhbHByaW50LmMJMjAxNy0wNC0yMCAyMzowODo1Ni45 Njg0MTA1OTUgKzAyMDAKKy0tLSBnZGItOC4wLm9yaWcvZ2RiL2FkYS12YWxwcmludC5jCTIwMTct MDgtMTkgMjA6MDQ6NTkuNzg3NzgwNTIwICswMjAwCisrKysgZ2RiLTguMC9nZGIvYWRhLXZhbHBy aW50LmMJMjAxNy0wOC0xOSAyMDowNToxMC4wNTc4NzY1OTggKzAyMDAKIEBAIC0zMywxMSArMzMs MTEgQEAKICAjaW5jbHVkZSAib2JqZmlsZXMuaCIKICAKQEAgLTEwNTQsMTAgKzEwNTQsMTAgQEAg SW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9hZGEtdmFscHJpbnQuYwogIAkgICAgICAg c3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCSAgICAgICBzdHJ1Y3QgdmFs dWUgKnZhbCwKICAJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRp b25zKQotSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9hbm5vdGF0ZS5jCitJbmRleDog Z2RiLTguMC9nZGIvYW5ub3RhdGUuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5LjkwLjIwMTcw NDIwLm9yaWcvZ2RiL2Fubm90YXRlLmMJMjAxNy0wNC0yMCAyMzowODo1NC4xNDQzOTQ2ODIgKzAy MDAKLSsrKyBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvYW5ub3RhdGUuYwkyMDE3LTA0LTIwIDIz OjA4OjU2Ljk2ODQxMDU5NSArMDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvYW5ub3RhdGUuYwky MDE3LTA4LTE5IDIwOjA0OjU5Ljc4Nzc4MDUyMCArMDIwMAorKysrIGdkYi04LjAvZ2RiL2Fubm90 YXRlLmMJMjAxNy0wOC0xOSAyMDowNToxMC4wNTc4NzY1OTggKzAyMDAKIEBAIC01MzMsMjEgKzUz MywyMSBAQAogIH0KICAMCkBAIC0xMDg0LDEwICsxMDg0LDEwIEBAIEluZGV4OiBnZGItNy45OS45 MC4yMDE3MDQyMC9nZGIvYW5ub3RhdGUuYwogIH0KICAKICB2b2lkCi1JbmRleDogZ2RiLTcuOTku OTAuMjAxNzA0MjAvZ2RiL2Fubm90YXRlLmgKK0luZGV4OiBnZGItOC4wL2dkYi9hbm5vdGF0ZS5o CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAub3JpZy9nZGIvYW5ub3RhdGUu aAkyMDE3LTA0LTIwIDIzOjA4OjU0LjE0NTM5NDY4OCArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIw MTcwNDIwL2dkYi9hbm5vdGF0ZS5oCTIwMTctMDQtMjAgMjM6MDg6NTYuOTY4NDEwNTk1ICswMjAw CistLS0gZ2RiLTguMC5vcmlnL2dkYi9hbm5vdGF0ZS5oCTIwMTctMDgtMTkgMjA6MDQ6NTkuNzg4 NzgwNTI5ICswMjAwCisrKysgZ2RiLTguMC9nZGIvYW5ub3RhdGUuaAkyMDE3LTA4LTE5IDIwOjA1 OjEwLjA1ODg3NjYwNyArMDIwMAogQEAgLTkyLDggKzkyLDggQEAKICBleHRlcm4gdm9pZCBhbm5v dGF0ZV9mcmFtZV93aGVyZSAodm9pZCk7CiAgZXh0ZXJuIHZvaWQgYW5ub3RhdGVfZnJhbWVfZW5k ICh2b2lkKTsKQEAgLTEwOTksMTEgKzEwOTksMTEgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcw NDIwL2dkYi9hbm5vdGF0ZS5oCiAgZXh0ZXJuIHZvaWQgYW5ub3RhdGVfZWx0X3JlcF9lbmQgKHZv aWQpOwogIGV4dGVybiB2b2lkIGFubm90YXRlX2VsdCAodm9pZCk7CiAgZXh0ZXJuIHZvaWQgYW5u b3RhdGVfYXJyYXlfc2VjdGlvbl9lbmQgKHZvaWQpOwotSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcw NDIwL2dkYi9hcm0tbGludXgtbmF0LmMKK0luZGV4OiBnZGItOC4wL2dkYi9hcm0tbGludXgtbmF0 LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45OS45MC4yMDE3MDQyMC5vcmlnL2dkYi9hcm0tbGlu dXgtbmF0LmMJMjAxNy0wNC0yMCAyMzowODo1NC4xNDUzOTQ2ODggKzAyMDAKLSsrKyBnZGItNy45 OS45MC4yMDE3MDQyMC9nZGIvYXJtLWxpbnV4LW5hdC5jCTIwMTctMDQtMjAgMjM6MDg6NTYuOTY5 NDEwNjAxICswMjAwCi1AQCAtMTA2NSw3ICsxMDY1LDcgQEAKKy0tLSBnZGItOC4wLm9yaWcvZ2Ri L2FybS1saW51eC1uYXQuYwkyMDE3LTA4LTE5IDIwOjA0OjU5Ljc4ODc4MDUyOSArMDIwMAorKysr IGdkYi04LjAvZ2RiL2FybS1saW51eC1uYXQuYwkyMDE3LTA4LTE5IDIwOjA1OjEwLjA1ODg3NjYw NyArMDIwMAorQEAgLTEwNjcsNyArMTA2Nyw3IEBACiAgICAgQUREUj8gICovCiAgc3RhdGljIGlu dAogIGFybV9saW51eF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRf b3BzICpzZWxmLApAQCAtMTExMiwxMCArMTExMiwxMCBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAx NzA0MjAvZ2RiL2FybS1saW51eC1uYXQuYwogIHsKICAgIGNvbnN0IHN0cnVjdCBhcm1fbGludXhf aHdicF9jYXAgKmNhcCA9IGFybV9saW51eF9nZXRfaHdicF9jYXAgKCk7CiAgICBDT1JFX0FERFIg bWF4X3dwX2xlbmd0aCwgYWxpZ25lZF9hZGRyOwotSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIw L2dkYi9heC1nZGIuYworSW5kZXg6IGdkYi04LjAvZ2RiL2F4LWdkYi5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAub3JpZy9nZGIvYXgtZ2RiLmMJMjAxNy0wNC0yMCAyMzow ODo1NC4xNDYzOTQ2OTQgKzAyMDAKLSsrKyBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvYXgtZ2Ri LmMJMjAxNy0wNC0yMCAyMzoxMDoyNC4xNTQ5MDE4NzcgKzAyMDAKKy0tLSBnZGItOC4wLm9yaWcv Z2RiL2F4LWdkYi5jCTIwMTctMDgtMTkgMjA6MDQ6NTkuNzg5NzgwNTM4ICswMjAwCisrKysgZ2Ri LTguMC9nZGIvYXgtZ2RiLmMJMjAxNy0wOC0xOSAyMDowNToxMC4wNTk4NzY2MTcgKzAyMDAKIEBA IC04MywxMiArODMsMTIgQEAKICBzdGF0aWMgdm9pZCBnZW5fc2lnbl9leHRlbmQgKHN0cnVjdCBh Z2VudF9leHByICosIHN0cnVjdCB0eXBlICopOwogIHN0YXRpYyB2b2lkIGdlbl9leHRlbmQgKHN0 cnVjdCBhZ2VudF9leHByICosIHN0cnVjdCB0eXBlICopOwpAQCAtMTIxNCwxMCArMTIxNCwxMCBA QCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2F4LWdkYi5jCiAgewogICAgaW50IGks IHJzbHQ7CiAgICBpbnQgbmJhc2VzID0gVFlQRV9OX0JBU0VDTEFTU0VTICh0eXBlKTsKLUluZGV4 OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvYXgtZ2VuZXJhbC5jCitJbmRleDogZ2RiLTguMC9n ZGIvYXgtZ2VuZXJhbC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAub3Jp Zy9nZGIvYXgtZ2VuZXJhbC5jCTIwMTctMDQtMjAgMjM6MDg6NTQuMTQ3Mzk0Njk5ICswMjAwCi0r KysgZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2F4LWdlbmVyYWwuYwkyMDE3LTA0LTIwIDIzOjA4 OjU2Ljk3MDQxMDYwNiArMDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvYXgtZ2VuZXJhbC5jCTIw MTctMDgtMTkgMjA6MDQ6NTkuNzg5NzgwNTM4ICswMjAwCisrKysgZ2RiLTguMC9nZGIvYXgtZ2Vu ZXJhbC5jCTIwMTctMDgtMTkgMjA6MDU6MTAuMDU5ODc2NjE3ICswMjAwCiBAQCAtMTc3LDcgKzE3 Nyw3IEBACiAgCiAgLyogQXBwZW5kIGEgdHJhY2VfcXVpY2sgaW5zdHJ1Y3Rpb24gdG8gRVhQUiwg dG8gcmVjb3JkIE4gYnl0ZXMuICAqLwpAQCAtMTIyNywxMCArMTIyNywxMCBAQCBJbmRleDogZ2Ri LTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2F4LWdlbmVyYWwuYwogIHsKICAgIC8qIE4gbXVzdCBmaXQg aW4gYSBieXRlLiAgKi8KICAgIGlmIChuIDwgMCB8fCBuID4gMjU1KQotSW5kZXg6IGdkYi03Ljk5 LjkwLjIwMTcwNDIwL2dkYi9heC5oCitJbmRleDogZ2RiLTguMC9nZGIvYXguaAogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03Ljk5LjkwLjIwMTcwNDIwLm9yaWcvZ2RiL2F4LmgJMjAxNy0wNC0yMCAyMzow ODo1NC4xNDczOTQ2OTkgKzAyMDAKLSsrKyBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvYXguaAky MDE3LTA0LTIwIDIzOjA4OjU2Ljk3MDQxMDYwNiArMDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIv YXguaAkyMDE3LTA4LTE5IDIwOjA0OjU5Ljc4OTc4MDUzOCArMDIwMAorKysrIGdkYi04LjAvZ2Ri L2F4LmgJMjAxNy0wOC0xOSAyMDowNToxMC4wNTk4NzY2MTcgKzAyMDAKIEBAIC0yMDUsNyArMjA1 LDcgQEAKICBleHRlcm4gdm9pZCBheF96ZXJvX2V4dCAoc3RydWN0IGFnZW50X2V4cHIgKkVYUFIs IGludCBOKTsKICAKQEAgLTEyNDAsMTAgKzEyNDAsMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIw MTcwNDIwL2dkYi9heC5oCiAgCiAgLyogQXBwZW5kIGEgZ290byBvcCB0byBFWFBSLiAgT1AgaXMg dGhlIGFjdHVhbCBvcCAobXVzdCBiZSBhb3BfZ290byBvcgogICAgIGFvcF9pZl9nb3RvKS4gIFdl IGFzc3VtZSB3ZSBkb24ndCBrbm93IHRoZSB0YXJnZXQgb2Zmc2V0IHlldCwKLUluZGV4OiBnZGIt Ny45OS45MC4yMDE3MDQyMC9nZGIvYnJlYWtwb2ludC5jCitJbmRleDogZ2RiLTguMC9nZGIvYnJl YWtwb2ludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAub3JpZy9nZGIv YnJlYWtwb2ludC5jCTIwMTctMDQtMjAgMjM6MDg6NTQuMTUxMzk0NzIyICswMjAwCi0rKysgZ2Ri LTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2JyZWFrcG9pbnQuYwkyMDE3LTA0LTIwIDIzOjA4OjU2Ljk3 MzQxMDYyMyArMDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvYnJlYWtwb2ludC5jCTIwMTctMDgt MTkgMjA6MDQ6NTkuNzkyNzgwNTY2ICswMjAwCisrKysgZ2RiLTguMC9nZGIvYnJlYWtwb2ludC5j CTIwMTctMDgtMTkgMjA6MDU6MTAuMDYzODc2NjU0ICswMjAwCiBAQCAtMjIyNSw5ICsyMjI1LDkg QEAKICAJewogIAkgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywKQEAgLTEyNzQsMTAg KzEyNzQsMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9icmVha3BvaW50LmMK ICAJCSAgaW50IG51bV9yZWdzOwogIAogIAkJICBsZW4gPSAodGFyZ2V0X2V4YWN0X3dhdGNocG9p bnRzCi1JbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2JyZWFrcG9pbnQuaAorSW5kZXg6 IGdkYi04LjAvZ2RiL2JyZWFrcG9pbnQuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5LjkwLjIw MTcwNDIwLm9yaWcvZ2RiL2JyZWFrcG9pbnQuaAkyMDE3LTA0LTIwIDIzOjA4OjU0LjE1MjM5NDcy NyArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9icmVha3BvaW50LmgJMjAxNy0w NC0yMCAyMzowODo1Ni45NzQ0MTA2MjkgKzAyMDAKKy0tLSBnZGItOC4wLm9yaWcvZ2RiL2JyZWFr cG9pbnQuaAkyMDE3LTA4LTE5IDIwOjA0OjU5Ljc5Mzc4MDU3NiArMDIwMAorKysrIGdkYi04LjAv Z2RiL2JyZWFrcG9pbnQuaAkyMDE3LTA4LTE5IDIwOjA1OjEwLjA2Mzg3NjY1NCArMDIwMAogQEAg LTI1MCw3ICsyNTAsNyBAQAogIAogICAgLyogSWYgdGhpcyBpcyBhIHJhbmdlZCBicmVha3BvaW50 LCB0aGVuIHRoaXMgZmllbGQgY29udGFpbnMgdGhlCkBAIC0xMjk2LDEwICsxMjk2LDEwIEBAIElu ZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvYnJlYWtwb2ludC5oCiAgCiAgICAvKiBUeXBl IG9mIGhhcmR3YXJlIHdhdGNocG9pbnQuICAqLwogICAgZW51bSB0YXJnZXRfaHdfYnBfdHlwZSB3 YXRjaHBvaW50X3R5cGU7Ci1JbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2MtbGFuZy5j CitJbmRleDogZ2RiLTguMC9nZGIvYy1sYW5nLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45OS45 MC4yMDE3MDQyMC5vcmlnL2dkYi9jLWxhbmcuYwkyMDE3LTA0LTIwIDIzOjA4OjU0LjE1MjM5NDcy NyArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9jLWxhbmcuYwkyMDE3LTA0LTIw IDIzOjA4OjU2Ljk3NDQxMDYyOSArMDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvYy1sYW5nLmMJ MjAxNy0wOC0xOSAyMDowNDo1OS43OTM3ODA1NzYgKzAyMDAKKysrKyBnZGItOC4wL2dkYi9jLWxh bmcuYwkyMDE3LTA4LTE5IDIwOjA1OjEwLjA2NDg3NjY2MyArMDIwMAogQEAgLTE4Niw3ICsxODYs NyBAQAogIAogIHZvaWQKQEAgLTEzMjcsMTAgKzEzMjcsMTAgQEAgSW5kZXg6IGdkYi03Ljk5Ljkw LjIwMTcwNDIwL2dkYi9jLWxhbmcuYwogIAogIAkJaWYgKGdldF9kaXNjcmV0ZV9ib3VuZHMgKFRZ UEVfSU5ERVhfVFlQRSAoZXhwZWN0X3R5cGUpLAogIAkJCQkJICZsb3dfYm91bmQsICZoaWdoX2Jv dW5kKSA8IDApCi1JbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2MtbGFuZy5oCitJbmRl eDogZ2RiLTguMC9nZGIvYy1sYW5nLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45OS45MC4yMDE3 MDQyMC5vcmlnL2dkYi9jLWxhbmcuaAkyMDE3LTA0LTIwIDIzOjA4OjU0LjE1MjM5NDcyNyArMDIw MAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9jLWxhbmcuaAkyMDE3LTA0LTIwIDIzOjA4 OjU2Ljk3NDQxMDYyOSArMDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvYy1sYW5nLmgJMjAxNy0w OC0xOSAyMDowNDo1OS43OTM3ODA1NzYgKzAyMDAKKysrKyBnZGItOC4wL2dkYi9jLWxhbmcuaAky MDE3LTA4LTE5IDIwOjA1OjEwLjA2NDg3NjY2MyArMDIwMAogQEAgLTc3LDcgKzc3LDcgQEAKICAJ CQkgICAgIHN0cnVjdCB1aV9maWxlICopOwogIApAQCAtMTM0OSwxMCArMTM0OSwxMCBAQCBJbmRl eDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2MtbGFuZy5oCiAgCQkJY29uc3QgY2hhciAqdXNl cl9lbmNvZGluZywKICAJCQlpbnQgZm9yY2VfZWxsaXBzZXMsCiAgCQkJY29uc3Qgc3RydWN0IHZh bHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpOwotSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIw L2dkYi9jLXZhbHByaW50LmMKK0luZGV4OiBnZGItOC4wL2dkYi9jLXZhbHByaW50LmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy45OS45MC4yMDE3MDQyMC5vcmlnL2dkYi9jLXZhbHByaW50LmMJMjAx Ny0wNC0yMCAyMzowODo1NC4xNTMzOTQ3MzMgKzAyMDAKLSsrKyBnZGItNy45OS45MC4yMDE3MDQy MC9nZGIvYy12YWxwcmludC5jCTIwMTctMDQtMjAgMjM6MDg6NTYuOTc1NDEwNjM0ICswMjAwCist LS0gZ2RiLTguMC5vcmlnL2dkYi9jLXZhbHByaW50LmMJMjAxNy0wOC0xOSAyMDowNDo1OS43OTQ3 ODA1ODUgKzAyMDAKKysrKyBnZGItOC4wL2dkYi9jLXZhbHByaW50LmMJMjAxNy0wOC0xOSAyMDow NToxMC4wNjQ4NzY2NjMgKzAyMDAKIEBAIC0yNDQsNyArMjQ0LDcgQEAKICAgIGlmIChUWVBFX0xF TkdUSCAodHlwZSkgPiAwICYmIFRZUEVfTEVOR1RIICh1bnJlc29sdmVkX2VsdHR5cGUpID4gMCkK ICAgICAgewpAQCAtMTM5MSwxMCArMTM5MSwxMCBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0 MjAvZ2RiL2MtdmFscHJpbnQuYwogIAkgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCBy ZWN1cnNlLAogIAkgICAgIHN0cnVjdCB2YWx1ZSAqb3JpZ2luYWxfdmFsdWUsCiAgCSAgICAgY29u c3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCi1JbmRleDogZ2RiLTcuOTku OTAuMjAxNzA0MjAvZ2RiL2NwLWFiaS5jCitJbmRleDogZ2RiLTguMC9nZGIvY3AtYWJpLmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy45OS45MC4yMDE3MDQyMC5vcmlnL2dkYi9jcC1hYmkuYwkyMDE3 LTA0LTIwIDIzOjA4OjU0LjE1MzM5NDczMyArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIw L2dkYi9jcC1hYmkuYwkyMDE3LTA0LTIwIDIzOjA4OjU2Ljk3NTQxMDYzNCArMDIwMAorLS0tIGdk Yi04LjAub3JpZy9nZGIvY3AtYWJpLmMJMjAxNy0wOC0xOSAyMDowNDo1OS43OTQ3ODA1ODUgKzAy MDAKKysrKyBnZGItOC4wL2dkYi9jcC1hYmkuYwkyMDE3LTA4LTE5IDIwOjA1OjEwLjA2NTg3NjY3 MyArMDIwMAogQEAgLTY0LDEyICs2NCwxMiBAQAogICAgcmV0dXJuICgqY3VycmVudF9jcF9hYmku aXNfb3BlcmF0b3JfbmFtZSkgKG5hbWUpOwogIH0KQEAgLTE0MTksMTAgKzE0MTksMTAgQEAgSW5k ZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9jcC1hYmkuYwogIHsKICAgIGlmICgoY3VycmVu dF9jcF9hYmkudmlydHVhbF9mbl9maWVsZCkgPT0gTlVMTCkKICAgICAgcmV0dXJuIE5VTEw7Ci1J bmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2NwLWFiaS5oCitJbmRleDogZ2RiLTguMC9n ZGIvY3AtYWJpLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45OS45MC4yMDE3MDQyMC5vcmlnL2dk Yi9jcC1hYmkuaAkyMDE3LTA0LTIwIDIzOjA4OjU0LjE1MzM5NDczMyArMDIwMAotKysrIGdkYi03 Ljk5LjkwLjIwMTcwNDIwL2dkYi9jcC1hYmkuaAkyMDE3LTA0LTIwIDIzOjA4OjU2Ljk3NTQxMDYz NCArMDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvY3AtYWJpLmgJMjAxNy0wOC0xOSAyMDowNDo1 OS43OTQ3ODA1ODUgKzAyMDAKKysrKyBnZGItOC4wL2dkYi9jcC1hYmkuaAkyMDE3LTA4LTE5IDIw OjA1OjEwLjA2NTg3NjY3MyArMDIwMAogQEAgLTEwOCw3ICsxMDgsNyBAQAogIAkJCQkJICAgICBz dHJ1Y3QgZm5fZmllbGQgKmYsCiAgCQkJCQkgICAgIGludCBqLApAQCAtMTQ2NiwxMCArMTQ2Niwx MCBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2NwLWFiaS5oCiAgICB2b2lkICgq cHJpbnRfbWV0aG9kX3B0cikgKGNvbnN0IGdkYl9ieXRlICpjb250ZW50cywKICAJCQkgICAgc3Ry dWN0IHR5cGUgKnR5cGUsCiAgCQkJICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0pOwotSW5kZXg6 IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9jcC12YWxwcmludC5jCitJbmRleDogZ2RiLTguMC9n ZGIvY3AtdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5LjkwLjIwMTcwNDIwLm9y aWcvZ2RiL2NwLXZhbHByaW50LmMJMjAxNy0wNC0yMCAyMzowODo1NC4xNTMzOTQ3MzMgKzAyMDAK LSsrKyBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvY3AtdmFscHJpbnQuYwkyMDE3LTA0LTIwIDIz OjA4OjU2Ljk3NTQxMDYzNCArMDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvY3AtdmFscHJpbnQu YwkyMDE3LTA4LTE5IDIwOjA0OjU5Ljc5NDc4MDU4NSArMDIwMAorKysrIGdkYi04LjAvZ2RiL2Nw LXZhbHByaW50LmMJMjAxNy0wOC0xOSAyMDowNToxMC4wNjU4NzY2NzMgKzAyMDAKIEBAIC0zMzYs NyArMzM2LDcgQEAKICAJCX0KICAJICAgICAgZWxzZSBpZiAoaSA9PSB2cHRyX2ZpZWxkbm8gJiYg dHlwZSA9PSB2cHRyX2Jhc2V0eXBlKQpAQCAtMTQ3OSwxMCArMTQ3OSwxMCBAQCBJbmRleDogZ2Ri LTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2NwLXZhbHByaW50LmMKICAJCSAgc3RydWN0IHR5cGUgKmlf dHlwZSA9IFRZUEVfRklFTERfVFlQRSAodHlwZSwgaSk7CiAgCiAgCQkgIGlmICh2YWxwcmludF9j aGVja192YWxpZGl0eSAoc3RyZWFtLCBpX3R5cGUsIGlfb2Zmc2V0LCB2YWwpKQotSW5kZXg6IGdk Yi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9kLWxhbmcuaAorSW5kZXg6IGdkYi04LjAvZ2RiL2QtbGFu Zy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAub3JpZy9nZGIvZC1sYW5n LmgJMjAxNy0wNC0yMCAyMzowODo1NC4xNTMzOTQ3MzMgKzAyMDAKLSsrKyBnZGItNy45OS45MC4y MDE3MDQyMC9nZGIvZC1sYW5nLmgJMjAxNy0wNC0yMCAyMzowODo1Ni45NzU0MTA2MzQgKzAyMDAK Ky0tLSBnZGItOC4wLm9yaWcvZ2RiL2QtbGFuZy5oCTIwMTctMDgtMTkgMjA6MDQ6NTkuNzk0Nzgw NTg1ICswMjAwCisrKysgZ2RiLTguMC9nZGIvZC1sYW5nLmgJMjAxNy0wOC0xOSAyMDowNToxMC4w NjU4NzY2NzMgKzAyMDAKIEBAIC04MSw3ICs4MSw3IEBACiAgLyogRGVmaW5lZCBpbiBkLXZhbHBy aW50LmMgICovCiAgCkBAIC0xNDkyLDEwICsxNDkyLDEwIEBAIEluZGV4OiBnZGItNy45OS45MC4y MDE3MDQyMC9nZGIvZC1sYW5nLmgKICAJCQkgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJl Y3Vyc2UsCiAgCQkJIHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWVf cHJpbnRfb3B0aW9ucyAqb3B0aW9ucyk7Ci1JbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2Ri L2QtdmFscHJpbnQuYworSW5kZXg6IGdkYi04LjAvZ2RiL2QtdmFscHJpbnQuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03Ljk5LjkwLjIwMTcwNDIwLm9yaWcvZ2RiL2QtdmFscHJpbnQuYwkyMDE3LTA0 LTIwIDIzOjA4OjU0LjE1NDM5NDczOSArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dk Yi9kLXZhbHByaW50LmMJMjAxNy0wNC0yMCAyMzowODo1Ni45NzY0MTA2NDAgKzAyMDAKKy0tLSBn ZGItOC4wLm9yaWcvZ2RiL2QtdmFscHJpbnQuYwkyMDE3LTA4LTE5IDIwOjA0OjU5Ljc5NDc4MDU4 NSArMDIwMAorKysrIGdkYi04LjAvZ2RiL2QtdmFscHJpbnQuYwkyMDE3LTA4LTE5IDIwOjA1OjEw LjA2NTg3NjY3MyArMDIwMAogQEAgLTczLDcgKzczLDcgQEAKICAKICAvKiBJbXBsZW1lbnRzIHRo ZSBsYV92YWxfcHJpbnQgcm91dGluZSBmb3IgbGFuZ3VhZ2UgRC4gICovCkBAIC0xNTA1LDYzICsx NTA1LDIwIEBAIEluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvZC12YWxwcmludC5jCiAg ICAgICAgICAgICAgIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBp bnQgcmVjdXJzZSwKICAJICAgICBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAgICAgICAgICAgICAgY29u c3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCi1JbmRleDogZ2RiLTcuOTku OTAuMjAxNzA0MjAvZ2RiL2R3YXJmMmxvYy5jCitJbmRleDogZ2RiLTguMC9nZGIvZHdhcmYybG9j LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45OS45MC4yMDE3MDQyMC5vcmlnL2dkYi9kd2FyZjJs b2MuYwkyMDE3LTA0LTIwIDIzOjA4OjU0LjE1NjM5NDc1MCArMDIwMAotKysrIGdkYi03Ljk5Ljkw LjIwMTcwNDIwL2dkYi9kd2FyZjJsb2MuYwkyMDE3LTA0LTIwIDIzOjExOjIzLjEzODI2NjU4MiAr MDIwMAotQEAgLTE3NjEsMTIgKzE3NjEsMTIgQEAKLSByZWFkX3BpZWNlZF92YWx1ZSAoc3RydWN0 IHZhbHVlICp2KQotIHsKLSAgIGludCBpOwotLSAgbG9uZyBvZmZzZXQgPSAwOwotKyAgTE9OR0VT VCBvZmZzZXQgPSAwOwotICAgVUxPTkdFU1QgYml0c190b19za2lwOwotICAgZ2RiX2J5dGUgKmNv bnRlbnRzOwotICAgc3RydWN0IHBpZWNlX2Nsb3N1cmUgKmMKLSAgICAgPSAoc3RydWN0IHBpZWNl X2Nsb3N1cmUgKikgdmFsdWVfY29tcHV0ZWRfY2xvc3VyZSAodik7Ci0tICBzaXplX3QgdHlwZV9s ZW47Ci0rICBVTE9OR0VTVCB0eXBlX2xlbjsKLSAgIHNpemVfdCBidWZmZXJfc2l6ZSA9IDA7Ci0g ICBzdGQ6OnZlY3RvcjxnZGJfYnl0ZT4gYnVmZmVyOwotICAgaW50IGJpdHNfYmlnX2VuZGlhbgot QEAgLTE3OTAsOCArMTc5MCw4IEBACi0gICBmb3IgKGkgPSAwOyBpIDwgYy0+bl9waWVjZXMgJiYg b2Zmc2V0IDwgdHlwZV9sZW47IGkrKykKLSAgICAgewotICAgICAgIHN0cnVjdCBkd2FyZl9leHBy X3BpZWNlICpwID0gJmMtPnBpZWNlc1tpXTsKLS0gICAgICBzaXplX3QgdGhpc19zaXplLCB0aGlz X3NpemVfYml0czsKLS0gICAgICBsb25nIGRlc3Rfb2Zmc2V0X2JpdHMsIHNvdXJjZV9vZmZzZXRf Yml0cywgc291cmNlX29mZnNldDsKLSsgICAgICBVTE9OR0VTVCB0aGlzX3NpemUsIHRoaXNfc2l6 ZV9iaXRzOwotKyAgICAgIExPTkdFU1QgZGVzdF9vZmZzZXRfYml0cywgc291cmNlX29mZnNldF9i aXRzLCBzb3VyY2Vfb2Zmc2V0OwotICAgICAgIGNvbnN0IGdkYl9ieXRlICppbnRlcm1lZGlhdGVf YnVmZmVyOwotIAotICAgICAgIC8qIENvbXB1dGUgc2l6ZSwgc291cmNlLCBhbmQgZGVzdGluYXRp b24gb2Zmc2V0cyBmb3IgY29weWluZywgaW4KLUBAIC0xOTMwLDEyICsxOTMwLDEyIEBACi0gd3Jp dGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBzdHJ1Y3QgdmFsdWUgKmZyb20pCi0g ewotICAgaW50IGk7Ci0tICBsb25nIG9mZnNldCA9IDA7Ci0rICBMT05HRVNUIG9mZnNldCA9IDA7 Ci0gICBVTE9OR0VTVCBiaXRzX3RvX3NraXA7Ci0gICBjb25zdCBnZGJfYnl0ZSAqY29udGVudHM7 Ci0gICBzdHJ1Y3QgcGllY2VfY2xvc3VyZSAqYwotICAgICA9IChzdHJ1Y3QgcGllY2VfY2xvc3Vy ZSAqKSB2YWx1ZV9jb21wdXRlZF9jbG9zdXJlICh0byk7Ci0tICBzaXplX3QgdHlwZV9sZW47Ci0r ICBVTE9OR0VTVCB0eXBlX2xlbjsKLSAgIHNpemVfdCBidWZmZXJfc2l6ZSA9IDA7Ci0gICBzdGQ6 OnZlY3RvcjxnZGJfYnl0ZT4gYnVmZmVyOwotICAgaW50IGJpdHNfYmlnX2VuZGlhbgotQEAgLTE5 NTQsOCArMTk1NCw4IEBACi0gICBmb3IgKGkgPSAwOyBpIDwgYy0+bl9waWVjZXMgJiYgb2Zmc2V0 IDwgdHlwZV9sZW47IGkrKykKKy0tLSBnZGItOC4wLm9yaWcvZ2RiL2R3YXJmMmxvYy5jCTIwMTct MDgtMTkgMjA6MDQ6NTkuNzk2NzgwNjA0ICswMjAwCisrKysgZ2RiLTguMC9nZGIvZHdhcmYybG9j LmMJMjAxNy0wOC0xOSAyMDowNzowMC42OTI5MTE2MDUgKzAyMDAKK0BAIC0xODI2LDcgKzE4MjYs NyBAQAorICAgZm9yICg7IGkgPCBjLT5uX3BpZWNlcyAmJiBvZmZzZXQgPCBtYXhfb2Zmc2V0OyBp KyspCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgZHdhcmZfZXhwcl9waWVjZSAqcCA9ICZjLT5waWVj ZXNbaV07CiAtICAgICAgc2l6ZV90IHRoaXNfc2l6ZV9iaXRzLCB0aGlzX3NpemU7Ci0tICAgICAg bG9uZyBkZXN0X29mZnNldF9iaXRzLCBzb3VyY2Vfb2Zmc2V0X2JpdHMsIGRlc3Rfb2Zmc2V0LCBz b3VyY2Vfb2Zmc2V0OwogKyAgICAgIFVMT05HRVNUIHRoaXNfc2l6ZV9iaXRzLCB0aGlzX3NpemU7 Ci0rICAgICAgTE9OR0VTVCBkZXN0X29mZnNldF9iaXRzLCBzb3VyY2Vfb2Zmc2V0X2JpdHMsIGRl c3Rfb2Zmc2V0LCBzb3VyY2Vfb2Zmc2V0OwotICAgICAgIGludCBuZWVkX2JpdHdpc2U7Ci0gICAg ICAgY29uc3QgZ2RiX2J5dGUgKnNvdXJjZV9idWZmZXI7CiAgCi1AQCAtMjA3NCw3ICsyMDc0LDcg QEAKKyAgICAgICB0aGlzX3NpemVfYml0cyA9IHAtPnNpemUgLSBiaXRzX3RvX3NraXA7CisgICAg ICAgaWYgKHRoaXNfc2l6ZV9iaXRzID4gbWF4X29mZnNldCAtIG9mZnNldCkKK0BAIC0yMDczLDcg KzIwNzMsNyBAQAogIAogIHN0YXRpYyBpbnQKICBjaGVja19waWVjZWRfc3ludGhldGljX3BvaW50 ZXIgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUsIExPTkdFU1QgYml0X29mZnNldCwKQEAgLTE1 NzAsNyArMTUyNyw3IEBAIEluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvZHdhcmYybG9j LmMKICB7CiAgICBzdHJ1Y3QgcGllY2VfY2xvc3VyZSAqYwogICAgICA9IChzdHJ1Y3QgcGllY2Vf Y2xvc3VyZSAqKSB2YWx1ZV9jb21wdXRlZF9jbG9zdXJlICh2YWx1ZSk7Ci1AQCAtMjA4Nyw3ICsy MDg3LDcgQEAKK0BAIC0yMDg2LDcgKzIwODYsNyBAQAogICAgZm9yIChpID0gMDsgaSA8IGMtPm5f cGllY2VzICYmIGJpdF9sZW5ndGggPiAwOyBpKyspCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgZHdh cmZfZXhwcl9waWVjZSAqcCA9ICZjLT5waWVjZXNbaV07CkBAIC0xNTc5LDcgKzE1MzYsNyBAQCBJ bmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2R3YXJmMmxvYy5jCiAgCiAgICAgICAgaWYg KGJpdF9vZmZzZXQgPiAwKQogIAl7Ci1AQCAtMjE5NSw4ICsyMTk1LDggQEAKK0BAIC0yMTk0LDgg KzIxOTQsOCBAQAogICAgc3RydWN0IHR5cGUgKnR5cGU7CiAgICBzdHJ1Y3QgZnJhbWVfaW5mbyAq ZnJhbWU7CiAgICBzdHJ1Y3QgZHdhcmYyX2xvY2V4cHJfYmF0b24gYmF0b247CkBAIC0xNTkwLDcg KzE1NDcsNyBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2R3YXJmMmxvYy5jCiAg ICBzdHJ1Y3QgZHdhcmZfZXhwcl9waWVjZSAqcGllY2UgPSBOVUxMOwogICAgTE9OR0VTVCBieXRl X29mZnNldDsKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyOwotQEAgLTIyMTMsNyArMjIx Myw3IEBACitAQCAtMjIxMiw3ICsyMjEyLDcgQEAKICAgIGZvciAoaSA9IDA7IGkgPCBjLT5uX3Bp ZWNlcyAmJiBiaXRfbGVuZ3RoID4gMDsgaSsrKQogICAgICB7CiAgICAgICAgc3RydWN0IGR3YXJm X2V4cHJfcGllY2UgKnAgPSAmYy0+cGllY2VzW2ldOwpAQCAtMTU5OSw3ICsxNTU2LDcgQEAgSW5k ZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9kd2FyZjJsb2MuYwogIAogICAgICAgIGlmIChi aXRfb2Zmc2V0ID4gMCkKICAJewotQEAgLTI1MDQsOSArMjUwNCw5IEBACitAQCAtMjUwMyw5ICsy NTAzLDkgQEAKICAJY2FzZSBEV0FSRl9WQUxVRV9TVEFDSzoKICAJICB7CiAgCSAgICBzdHJ1Y3Qg dmFsdWUgKnZhbHVlID0gY3R4LmZldGNoICgwKTsKQEAgLTE2MTIsMTAgKzE1NjksMTAgQEAgSW5k ZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9kd2FyZjJsb2MuYwogIAkgICAgc3RydWN0IGdk YmFyY2ggKm9iamZpbGVfZ2RiYXJjaCA9IGdldF9vYmpmaWxlX2FyY2ggKG9iamZpbGUpOwogIAkg ICAgc3RydWN0IGNsZWFudXAgKmNsZWFudXA7CiAgCi1JbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0 MjAvZ2RiL2R3YXJmMnJlYWQuYworSW5kZXg6IGdkYi04LjAvZ2RiL2R3YXJmMnJlYWQuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03Ljk5LjkwLjIwMTcwNDIwLm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwky MDE3LTA0LTIwIDIzOjA4OjU0LjE2MDM5NDc3MiArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcw NDIwL2dkYi9kd2FyZjJyZWFkLmMJMjAxNy0wNC0yMCAyMzowODo1Ni45ODE0MTA2NjggKzAyMDAK Ky0tLSBnZGItOC4wLm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE3LTA4LTE5IDIwOjA0OjU5Ljgw MDc4MDY0MSArMDIwMAorKysrIGdkYi04LjAvZ2RiL2R3YXJmMnJlYWQuYwkyMDE3LTA4LTE5IDIw OjA1OjEwLjA3Mjg3NjczOCArMDIwMAogQEAgLTIwNjQsMTIgKzIwNjQsMTIgQEAKICB9CiAgCkBA IC0xNjQ0LDEwICsxNjAxLDEwIEBAIEluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvZHdh cmYycmVhZC5jCiAgCiAgCSAgICAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9ieXRl X3NpemUsIGN1KTsKICAJICAgICAgaWYgKGF0dHIpCi1JbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0 MjAvZ2RiL2V2YWwuYworSW5kZXg6IGdkYi04LjAvZ2RiL2V2YWwuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03Ljk5LjkwLjIwMTcwNDIwLm9yaWcvZ2RiL2V2YWwuYwkyMDE3LTA0LTIwIDIzOjA4OjU0 LjE2MjM5NDc4NCArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9ldmFsLmMJMjAx Ny0wNC0yMCAyMzowODo1Ni45ODI0MTA2NzQgKzAyMDAKKy0tLSBnZGItOC4wLm9yaWcvZ2RiL2V2 YWwuYwkyMDE3LTA4LTE5IDIwOjA0OjU5LjgwMTc4MDY1MSArMDIwMAorKysrIGdkYi04LjAvZ2Ri L2V2YWwuYwkyMDE3LTA4LTE5IDIwOjA1OjEwLjA3Mzg3Njc0OCArMDIwMAogQEAgLTI5Nyw3ICsy OTcsOCBAQAogICAgd2hpbGUgKC0tbmFyZ3MgPj0gMCkKICAgICAgewpAQCAtMTcwMCwxMCArMTY1 NywxMCBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2V2YWwuYwogIAkgIExPTkdF U1QgbG93X2JvdW5kLCBoaWdoX2JvdW5kLCBpbmRleDsKICAKICAJICBpZiAoZ2V0X2Rpc2NyZXRl X2JvdW5kcyAocmFuZ2VfdHlwZSwgJmxvd19ib3VuZCwgJmhpZ2hfYm91bmQpIDwgMCkKLUluZGV4 OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvZi1sYW5nLmMKK0luZGV4OiBnZGItOC4wL2dkYi9m LWxhbmcuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5LjkwLjIwMTcwNDIwLm9yaWcvZ2RiL2Yt bGFuZy5jCTIwMTctMDQtMjAgMjM6MDg6NTQuMTYyMzk0Nzg0ICswMjAwCi0rKysgZ2RiLTcuOTku OTAuMjAxNzA0MjAvZ2RiL2YtbGFuZy5jCTIwMTctMDQtMjAgMjM6MDg6NTYuOTgyNDEwNjc0ICsw MjAwCistLS0gZ2RiLTguMC5vcmlnL2dkYi9mLWxhbmcuYwkyMDE3LTA4LTE5IDIwOjA0OjU5Ljgw MTc4MDY1MSArMDIwMAorKysrIGdkYi04LjAvZ2RiL2YtbGFuZy5jCTIwMTctMDgtMTkgMjA6MDU6 MTAuMDczODc2NzQ4ICswMjAwCiBAQCAtMTAzLDcgKzEwMyw3IEBACiAgCiAgc3RhdGljIHZvaWQK QEAgLTE3MTMsMTAgKzE2NzAsMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9m LWxhbmcuYwogIAkgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMp CiAgewogICAgY29uc3QgY2hhciAqdHlwZV9lbmNvZGluZyA9IGZfZ2V0X2VuY29kaW5nICh0eXBl KTsKLUluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvZi1sYW5nLmgKK0luZGV4OiBnZGIt OC4wL2dkYi9mLWxhbmcuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5LjkwLjIwMTcwNDIwLm9y aWcvZ2RiL2YtbGFuZy5oCTIwMTctMDQtMjAgMjM6MDg6NTQuMTYzMzk0Nzg5ICswMjAwCi0rKysg Z2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2YtbGFuZy5oCTIwMTctMDQtMjAgMjM6MDg6NTYuOTgy NDEwNjc0ICswMjAwCistLS0gZ2RiLTguMC5vcmlnL2dkYi9mLWxhbmcuaAkyMDE3LTA4LTE5IDIw OjA0OjU5LjgwMjc4MDY2MCArMDIwMAorKysrIGdkYi04LjAvZ2RiL2YtbGFuZy5oCTIwMTctMDgt MTkgMjA6MDU6MTAuMDczODc2NzQ4ICswMjAwCiBAQCAtMzAsNyArMzAsNyBAQAogIGV4dGVybiB2 b2lkIGZfcHJpbnRfdHlwZSAoc3RydWN0IHR5cGUgKiwgY29uc3QgY2hhciAqLCBzdHJ1Y3QgdWlf ZmlsZSAqLCBpbnQsCiAgCQkJICBpbnQsIGNvbnN0IHN0cnVjdCB0eXBlX3ByaW50X29wdGlvbnMg Kik7CkBAIC0xNzI2LDEwICsxNjgzLDEwIEBAIEluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9n ZGIvZi1sYW5nLmgKICAJCQkgc3RydWN0IHVpX2ZpbGUgKiwgaW50LAogIAkJCSBzdHJ1Y3QgdmFs dWUgKiwKICAJCQkgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7Ci1JbmRleDog Z2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2YtdmFscHJpbnQuYworSW5kZXg6IGdkYi04LjAvZ2Ri L2YtdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5LjkwLjIwMTcwNDIwLm9yaWcv Z2RiL2YtdmFscHJpbnQuYwkyMDE3LTA0LTIwIDIzOjA4OjU0LjE2MzM5NDc4OSArMDIwMAotKysr IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9mLXZhbHByaW50LmMJMjAxNy0wNC0yMCAyMzowODo1 Ni45ODI0MTA2NzQgKzAyMDAKKy0tLSBnZGItOC4wLm9yaWcvZ2RiL2YtdmFscHJpbnQuYwkyMDE3 LTA4LTE5IDIwOjA0OjU5LjgwMjc4MDY2MCArMDIwMAorKysrIGdkYi04LjAvZ2RiL2YtdmFscHJp bnQuYwkyMDE3LTA4LTE5IDIwOjA1OjEwLjA3Mzg3Njc0OCArMDIwMAogQEAgLTM4LDcgKzM4LDcg QEAKICBzdGF0aWMgdm9pZCBpbmZvX2NvbW1vbl9jb21tYW5kIChjaGFyICosIGludCk7CiAgc3Rh dGljIHZvaWQgZjc3X2dldF9keW5hbWljX2xlbmd0aF9vZl9hZ2dyZWdhdGUgKHN0cnVjdCB0eXBl ICopOwpAQCAtMTc4NiwxMCArMTc0MywxMCBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAv Z2RiL2YtdmFscHJpbnQuYwogIAkgICAgIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdWlfZmls ZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJICAgICBzdHJ1Y3QgdmFsdWUgKm9yaWdpbmFsX3Zh bHVlLAogIAkgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQot SW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9maW5kdmFyLmMKK0luZGV4OiBnZGItOC4w L2dkYi9maW5kdmFyLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45OS45MC4yMDE3MDQyMC5vcmln L2dkYi9maW5kdmFyLmMJMjAxNy0wNC0yMCAyMzowODo1NC4xNjMzOTQ3ODkgKzAyMDAKLSsrKyBn ZGItNy45OS45MC4yMDE3MDQyMC9nZGIvZmluZHZhci5jCTIwMTctMDQtMjAgMjM6MDg6NTYuOTgz NDEwNjgwICswMjAwCistLS0gZ2RiLTguMC5vcmlnL2dkYi9maW5kdmFyLmMJMjAxNy0wOC0xOSAy MDowNDo1OS44MDI3ODA2NjAgKzAyMDAKKysrKyBnZGItOC4wL2dkYi9maW5kdmFyLmMJMjAxNy0w OC0xOSAyMDowNToxMC4wNzQ4NzY3NTcgKzAyMDAKIEBAIC04MTcsNyArODE3LDcgQEAKICBkZWZh dWx0X3ZhbHVlX2Zyb21fcmVnaXN0ZXIgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBzdHJ1Y3Qg dHlwZSAqdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZWdudW0sIHN0 cnVjdCBmcmFtZV9pZCBmcmFtZV9pZCkKQEAgLTE4MTcsMTAgKzE3NzQsMTAgQEAgSW5kZXg6IGdk Yi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9maW5kdmFyLmMKICAKICAgICAgICAvKiBJZiB0aGUgcmVn aXN0ZXIgbGVuZ3RoIGlzIGxhcmdlciB0aGFuIHRoZSBudW1iZXIgb2YgYnl0ZXMKICAgICAgICAg ICByZW1haW5pbmcgdG8gY29weSwgdGhlbiBvbmx5IGNvcHkgdGhlIGFwcHJvcHJpYXRlIGJ5dGVz LiAgKi8KLUluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvZnJhbWUuYworSW5kZXg6IGdk Yi04LjAvZ2RiL2ZyYW1lLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45OS45MC4yMDE3MDQyMC5v cmlnL2dkYi9mcmFtZS5jCTIwMTctMDQtMjAgMjM6MDg6NTQuMTY0Mzk0Nzk1ICswMjAwCi0rKysg Z2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2ZyYW1lLmMJMjAxNy0wNC0yMCAyMzowODo1Ni45ODM0 MTA2ODAgKzAyMDAKKy0tLSBnZGItOC4wLm9yaWcvZ2RiL2ZyYW1lLmMJMjAxNy0wOC0xOSAyMDow NDo1OS44MDM3ODA2NjkgKzAyMDAKKysrKyBnZGItOC4wL2dkYi9mcmFtZS5jCTIwMTctMDgtMTkg MjA6MDU6MTAuMDc0ODc2NzU3ICswMjAwCiBAQCAtMTM3NSw3ICsxMzc1LDcgQEAKICAKICBpbnQK QEAgLTE4MzksMTAgKzE3OTYsMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9m cmFtZS5jCiAgCiAgICAvKiBDb3B5IHRoZSBkYXRhLiAgKi8KICAgIHdoaWxlIChsZW4gPiAwKQot SW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9mcmFtZS5oCitJbmRleDogZ2RiLTguMC9n ZGIvZnJhbWUuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5LjkwLjIwMTcwNDIwLm9yaWcvZ2Ri L2ZyYW1lLmgJMjAxNy0wNC0yMCAyMzowODo1NC4xNjQzOTQ3OTUgKzAyMDAKLSsrKyBnZGItNy45 OS45MC4yMDE3MDQyMC9nZGIvZnJhbWUuaAkyMDE3LTA0LTIwIDIzOjA4OjU2Ljk4NDQxMDY4NSAr MDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvZnJhbWUuaAkyMDE3LTA4LTE5IDIwOjA0OjU5Ljgw Mzc4MDY2OSArMDIwMAorKysrIGdkYi04LjAvZ2RiL2ZyYW1lLmgJMjAxNy0wOC0xOSAyMDowNTox MC4wNzQ4NzY3NTcgKzAyMDAKIEBAIC02MDAsNyArNjAwLDcgQEAKICAgICBjb250ZW50cyBhcmUg b3B0aW1pemVkIG91dCBvciB1bmF2YWlsYWJsZSwgc2V0ICpPUFRJTUlaRURQLAogICAgICpVTkFW QUlMQUJMRVAgYWNjb3JkaW5nbHkuICAqLwpAQCAtMTg1MiwxMSArMTgwOSwxMSBAQCBJbmRleDog Z2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2ZyYW1lLmgKICAJCQkJICAgICBnZGJfYnl0ZSAqbXlh ZGRyLAogIAkJCQkgICAgIGludCAqb3B0aW1pemVkcCwgaW50ICp1bmF2YWlsYWJsZXApOwogIAot SW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9nZGJ0eXBlcy5jCitJbmRleDogZ2RiLTgu MC9nZGIvZ2RidHlwZXMuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5LjkwLjIwMTcwNDIwLm9y aWcvZ2RiL2dkYnR5cGVzLmMJMjAxNy0wNC0yMCAyMzowODo1NC4xNjYzOTQ4MDYgKzAyMDAKLSsr KyBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvZ2RidHlwZXMuYwkyMDE3LTA0LTIwIDIzOjA4OjU2 Ljk4NTQxMDY5MSArMDIwMAotQEAgLTI4MDgsNyArMjgwOCw3IEBACistLS0gZ2RiLTguMC5vcmln L2dkYi9nZGJ0eXBlcy5jCTIwMTctMDgtMTkgMjA6MDQ6NTkuODA0NzgwNjc5ICswMjAwCisrKysg Z2RiLTguMC9nZGIvZ2RidHlwZXMuYwkyMDE3LTA4LTE5IDIwOjA1OjEwLjA3NTg3Njc2NiArMDIw MAorQEAgLTI4MDcsNyArMjgwNyw3IEBACiAgICAgbGVhc3QgYXMgbG9uZyBhcyBPQkpGSUxFLiAg Ki8KICAKICBzdHJ1Y3QgdHlwZSAqCkBAIC0xODY1LDcgKzE4MjIsNyBAQCBJbmRleDogZ2RiLTcu OTkuOTAuMjAxNzA0MjAvZ2RiL2dkYnR5cGVzLmMKICAJICAgY29uc3QgY2hhciAqbmFtZSkKICB7 CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZTsKLUBAIC0zMTE3LDggKzMxMTcsOCBAQAorQEAgLTMxMTYs OCArMzExNiw4IEBACiAgCiAgc3RhdGljIGludAogIGlzX3VuaXF1ZV9hbmNlc3Rvcl93b3JrZXIg KHN0cnVjdCB0eXBlICpiYXNlLCBzdHJ1Y3QgdHlwZSAqZGNsYXNzLApAQCAtMTg3Niw3ICsxODMz LDcgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9nZGJ0eXBlcy5jCiAgCQkJICAg Q09SRV9BRERSIGFkZHJlc3MsIHN0cnVjdCB2YWx1ZSAqdmFsKQogIHsKICAgIGludCBpLCBjb3Vu dCA9IDA7Ci1AQCAtMzEyOSw3ICszMTI5LDcgQEAKK0BAIC0zMTI4LDcgKzMxMjgsNyBAQAogICAg Zm9yIChpID0gMDsgaSA8IFRZUEVfTl9CQVNFQ0xBU1NFUyAoZGNsYXNzKSAmJiBjb3VudCA8IDI7 ICsraSkKICAgICAgewogICAgICAgIHN0cnVjdCB0eXBlICppdGVyOwpAQCAtMTg4NSw3ICsxODQy LDcgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9nZGJ0eXBlcy5jCiAgCiAgICAg ICAgaXRlciA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfQkFTRUNMQVNTIChkY2xhc3MsIGkpKTsKICAK LUBAIC0zMTcwLDcgKzMxNzAsNyBAQAorQEAgLTMxNjksNyArMzE2OSw3IEBACiAgaW50CiAgaXNf dW5pcXVlX2FuY2VzdG9yIChzdHJ1Y3QgdHlwZSAqYmFzZSwgc3RydWN0IHZhbHVlICp2YWwpCiAg ewpAQCAtMTg5NCw3ICsxODUxLDcgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9n ZGJ0eXBlcy5jCiAgCiAgICByZXR1cm4gaXNfdW5pcXVlX2FuY2VzdG9yX3dvcmtlciAoYmFzZSwg dmFsdWVfdHlwZSAodmFsKSwgJm9mZnNldCwKICAJCQkJICAgIHZhbHVlX2NvbnRlbnRzX2Zvcl9w cmludGluZyAodmFsKSwKLUBAIC00NDA5LDcgKzQ0MDksNyBAQAorQEAgLTQ0MTUsNyArNDQxNSw3 IEBACiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIHB1dHNfZmlsdGVyZWQgKCJcbiIpOwpAQCAt MTkwMyw3ICsxODYwLDcgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9nZGJ0eXBl cy5jCiAgICBpZiAoVFlQRV9PQkpGSUxFX09XTkVEICh0eXBlKSkKICAgICAgewogICAgICAgIHBy aW50ZmlfZmlsdGVyZWQgKHNwYWNlcywgIm9iamZpbGUgIik7Ci1AQCAtNDg2OSw3ICs0ODY5LDcg QEAKK0BAIC00ODc1LDcgKzQ4NzUsNyBAQAogIAogIHN0cnVjdCB0eXBlICoKICBhcmNoX3R5cGUg KHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLApAQCAtMTkxMiwxMCArMTg2OSwxMCBAQCBJbmRleDog Z2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2dkYnR5cGVzLmMKICB7CiAgICBzdHJ1Y3QgdHlwZSAq dHlwZTsKICAKLUluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvZ2RidHlwZXMuaAorSW5k ZXg6IGdkYi04LjAvZ2RiL2dkYnR5cGVzLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45OS45MC4y MDE3MDQyMC5vcmlnL2dkYi9nZGJ0eXBlcy5oCTIwMTctMDQtMjAgMjM6MDg6NTQuMTY3Mzk0ODEy ICswMjAwCi0rKysgZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2dkYnR5cGVzLmgJMjAxNy0wNC0y MCAyMzowODo1Ni45ODU0MTA2OTEgKzAyMDAKKy0tLSBnZGItOC4wLm9yaWcvZ2RiL2dkYnR5cGVz LmgJMjAxNy0wOC0xOSAyMDowNDo1OS44MDU3ODA2ODggKzAyMDAKKysrKyBnZGItOC4wL2dkYi9n ZGJ0eXBlcy5oCTIwMTctMDgtMTkgMjA6MDU6MTAuMDc2ODc2Nzc2ICswMjAwCiBAQCAtNzg3LDcg Kzc4Nyw3IEBACiAgICAgICB0eXBlX2xlbmd0aF91bml0cyBmdW5jdGlvbiBzaG91bGQgYmUgdXNl ZCBpbiBvcmRlciB0byBnZXQgdGhlIGxlbmd0aAogICAgICAgZXhwcmVzc2VkIGluIHRhcmdldCBh ZGRyZXNzYWJsZSBtZW1vcnkgdW5pdHMuICAqLwpAQCAtMTk0MywxMCArMTkwMCwxMCBAQCBJbmRl eDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2dkYnR5cGVzLmgKICAJCQkgICAgICAgY29uc3Qg Y2hhciAqKTsKICBleHRlcm4gc3RydWN0IHR5cGUgKmFyY2hfaW50ZWdlcl90eXBlIChzdHJ1Y3Qg Z2RiYXJjaCAqLCBpbnQsIGludCwKICAJCQkJICAgICAgIGNvbnN0IGNoYXIgKik7Ci1JbmRleDog Z2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2dudS12Mi1hYmkuYworSW5kZXg6IGdkYi04LjAvZ2Ri L2dudS12Mi1hYmkuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5LjkwLjIwMTcwNDIwLm9yaWcv Z2RiL2dudS12Mi1hYmkuYwkyMDE3LTA0LTIwIDIzOjA4OjU0LjE2NzM5NDgxMiArMDIwMAotKysr IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9nbnUtdjItYWJpLmMJMjAxNy0wNC0yMCAyMzowODo1 Ni45ODU0MTA2OTEgKzAyMDAKKy0tLSBnZGItOC4wLm9yaWcvZ2RiL2dudS12Mi1hYmkuYwkyMDE3 LTA4LTE5IDIwOjA0OjU5LjgwNTc4MDY4OCArMDIwMAorKysrIGdkYi04LjAvZ2RiL2dudS12Mi1h YmkuYwkyMDE3LTA4LTE5IDIwOjA1OjEwLjA3Njg3Njc3NiArMDIwMAogQEAgLTgyLDcgKzgyLDcg QEAKICAgICBUWVBFIGlzIHRoZSB0eXBlIGluIHdoaWNoIEYgaXMgbG9jYXRlZC4gICovCiAgc3Rh dGljIHN0cnVjdCB2YWx1ZSAqCkBAIC0xOTg0LDEwICsxOTQxLDEwIEBAIEluZGV4OiBnZGItNy45 OS45MC4yMDE3MDQyMC9nZGIvZ251LXYyLWFiaS5jCiAgCSAgICBnbnV2Ml9iYXNlY2xhc3Nfb2Zm c2V0ICh0eXBlLCBpLCB2YWxhZGRyLAogIAkJCQkgICAgZW1iZWRkZWRfb2Zmc2V0LCBhZGRyZXNz LCB2YWwpOwogIAotSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9nbnUtdjMtYWJpLmMK K0luZGV4OiBnZGItOC4wL2dkYi9nbnUtdjMtYWJpLmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45 OS45MC4yMDE3MDQyMC5vcmlnL2dkYi9nbnUtdjMtYWJpLmMJMjAxNy0wNC0yMCAyMzowODo1NC4x NjgzOTQ4MTcgKzAyMDAKLSsrKyBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvZ251LXYzLWFiaS5j CTIwMTctMDQtMjAgMjM6MDg6NTYuOTg2NDEwNjk3ICswMjAwCistLS0gZ2RiLTguMC5vcmlnL2dk Yi9nbnUtdjMtYWJpLmMJMjAxNy0wOC0xOSAyMDowNDo1OS44MDY3ODA2OTggKzAyMDAKKysrKyBn ZGItOC4wL2dkYi9nbnUtdjMtYWJpLmMJMjAxNy0wOC0xOSAyMDowNToxMC4wNzc4NzY3ODUgKzAy MDAKIEBAIC0xMDksNyArMTA5LDcgQEAKICB7CiAgICBzdHJ1Y3QgdHlwZSAqdDsKQEAgLTIwNTEs MTAgKzIwMDgsMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9nbnUtdjMtYWJp LmMKICAgICAgICBzdHJ1Y3QgdHlwZSAqYmFzZXR5cGU7CiAgCiAgICAgICAgaWYgKEJBU0VUWVBF X1ZJQV9WSVJUVUFMIChkb21haW4sIGkpKQotSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dk Yi9nby1sYW5nLmgKK0luZGV4OiBnZGItOC4wL2dkYi9nby1sYW5nLmgKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy45OS45MC4yMDE3MDQyMC5vcmlnL2dkYi9nby1sYW5nLmgJMjAxNy0wNC0yMCAyMzow ODo1NC4xNjgzOTQ4MTcgKzAyMDAKLSsrKyBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvZ28tbGFu Zy5oCTIwMTctMDQtMjAgMjM6MDg6NTYuOTg2NDEwNjk3ICswMjAwCistLS0gZ2RiLTguMC5vcmln L2dkYi9nby1sYW5nLmgJMjAxNy0wOC0xOSAyMDowNDo1OS44MDY3ODA2OTggKzAyMDAKKysrKyBn ZGItOC4wL2dkYi9nby1sYW5nLmgJMjAxNy0wOC0xOSAyMDowNToxMC4wNzc4NzY3ODUgKzAyMDAK IEBAIC04NSw3ICs4NSw3IEBACiAgLyogRGVmaW5lZCBpbiBnby12YWxwcmludC5jLiAgKi8KICAK QEAgLTIwNjQsMTAgKzIwMjEsMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9n by1sYW5nLmgKICAJCQkgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJ CSAgc3RydWN0IHZhbHVlICp2YWwsCiAgCQkJICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0 aW9ucyAqb3B0aW9ucyk7Ci1JbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2dvLXZhbHBy aW50LmMKK0luZGV4OiBnZGItOC4wL2dkYi9nby12YWxwcmludC5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuOTkuOTAuMjAxNzA0MjAub3JpZy9nZGIvZ28tdmFscHJpbnQuYwkyMDE3LTA0LTIwIDIz OjA4OjU0LjE2ODM5NDgxNyArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9nby12 YWxwcmludC5jCTIwMTctMDQtMjAgMjM6MDg6NTYuOTg2NDEwNjk3ICswMjAwCistLS0gZ2RiLTgu MC5vcmlnL2dkYi9nby12YWxwcmludC5jCTIwMTctMDgtMTkgMjA6MDQ6NTkuODA2NzgwNjk4ICsw MjAwCisrKysgZ2RiLTguMC9nZGIvZ28tdmFscHJpbnQuYwkyMDE3LTA4LTE5IDIwOjA1OjEwLjA3 Nzg3Njc4NSArMDIwMAogQEAgLTg2LDcgKzg2LDcgQEAKICAvKiBJbXBsZW1lbnRzIHRoZSBsYV92 YWxfcHJpbnQgcm91dGluZSBmb3IgbGFuZ3VhZ2UgR28uICAqLwogIApAQCAtMjA3NywxMCArMjAz NCwxMCBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2dvLXZhbHByaW50LmMKICAJ ICAgICAgQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1 cnNlLAogIAkgICAgICBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJICAgICAgY29uc3Qgc3RydWN0IHZh bHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCi1JbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAv Z2RiL2xhbmd1YWdlLmMKK0luZGV4OiBnZGItOC4wL2dkYi9sYW5ndWFnZS5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAub3JpZy9nZGIvbGFuZ3VhZ2UuYwkyMDE3LTA0LTIw IDIzOjA4OjU0LjE2ODM5NDgxNyArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9s YW5ndWFnZS5jCTIwMTctMDQtMjAgMjM6MDg6NTYuOTg2NDEwNjk3ICswMjAwCistLS0gZ2RiLTgu MC5vcmlnL2dkYi9sYW5ndWFnZS5jCTIwMTctMDgtMTkgMjA6MDQ6NTkuODA2NzgwNjk4ICswMjAw CisrKysgZ2RiLTguMC9nZGIvbGFuZ3VhZ2UuYwkyMDE3LTA4LTE5IDIwOjA1OjEwLjA3Nzg3Njc4 NSArMDIwMAogQEAgLTc1Myw3ICs3NTMsNyBAQAogIAogIHN0YXRpYyB2b2lkCkBAIC0yMDk5LDEw ICsyMDU2LDEwIEBAIEluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvbGFuZ3VhZ2UuYwog IAkJICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJICAgIHN0cnVj dCB2YWx1ZSAqdmFsLAogIAkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpv cHRpb25zKQotSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9sYW5ndWFnZS5oCitJbmRl eDogZ2RiLTguMC9nZGIvbGFuZ3VhZ2UuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5LjkwLjIw MTcwNDIwLm9yaWcvZ2RiL2xhbmd1YWdlLmgJMjAxNy0wNC0yMCAyMzowODo1NC4xNjkzOTQ4MjMg KzAyMDAKLSsrKyBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvbGFuZ3VhZ2UuaAkyMDE3LTA0LTIw IDIzOjA4OjU2Ljk4NjQxMDY5NyArMDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvbGFuZ3VhZ2Uu aAkyMDE3LTA4LTE5IDIwOjA0OjU5LjgwNjc4MDY5OCArMDIwMAorKysrIGdkYi04LjAvZ2RiL2xh bmd1YWdlLmgJMjAxNy0wOC0xOSAyMDowNToxMC4wNzc4NzY3ODUgKzAyMDAKIEBAIC0xOTcsNyAr MTk3LDcgQEAKICAJCQkgIHN0cnVjdCB1aV9maWxlICogc3RyZWFtKTsKICAKQEAgLTIxMjEsMTAg KzIwNzgsMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9sYW5ndWFnZS5oCiAg CQkJICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJCQkgIHN0cnVjdCB2 YWx1ZSAqdmFsLAogIAkJCSAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlv bnMpOwotSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9tMi1sYW5nLmMKK0luZGV4OiBn ZGItOC4wL2dkYi9tMi1sYW5nLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45OS45MC4yMDE3MDQy MC5vcmlnL2dkYi9tMi1sYW5nLmMJMjAxNy0wNC0yMCAyMzowODo1NC4xNjkzOTQ4MjMgKzAyMDAK LSsrKyBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvbTItbGFuZy5jCTIwMTctMDQtMjAgMjM6MDg6 NTYuOTg3NDEwNzAyICswMjAwCistLS0gZ2RiLTguMC5vcmlnL2dkYi9tMi1sYW5nLmMJMjAxNy0w OC0xOSAyMDowNDo1OS44MDc3ODA3MDcgKzAyMDAKKysrKyBnZGItOC4wL2dkYi9tMi1sYW5nLmMJ MjAxNy0wOC0xOSAyMDowNToxMC4wNzg4NzY3OTUgKzAyMDAKIEBAIC0xMDQsMTAgKzEwNCwxMCBA QAogIAogIHN0YXRpYyB2b2lkCkBAIC0yMTU5LDEwICsyMTE2LDEwIEBAIEluZGV4OiBnZGItNy45 OS45MC4yMDE3MDQyMC9nZGIvbTItbGFuZy5jCiAgCSAgaSA9IHJlcDEgLSAxOwogIAkgIHRoaW5n c19wcmludGVkICs9IG9wdGlvbnMtPnJlcGVhdF9jb3VudF90aHJlc2hvbGQ7CiAgCSAgbmVlZF9j b21tYSA9IDE7Ci1JbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL20yLWxhbmcuaAorSW5k ZXg6IGdkYi04LjAvZ2RiL20yLWxhbmcuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5LjkwLjIw MTcwNDIwLm9yaWcvZ2RiL20yLWxhbmcuaAkyMDE3LTA0LTIwIDIzOjA4OjU0LjE2OTM5NDgyMyAr MDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9tMi1sYW5nLmgJMjAxNy0wNC0yMCAy MzowODo1Ni45ODc0MTA3MDIgKzAyMDAKKy0tLSBnZGItOC4wLm9yaWcvZ2RiL20yLWxhbmcuaAky MDE3LTA4LTE5IDIwOjA0OjU5LjgwNzc4MDcwNyArMDIwMAorKysrIGdkYi04LjAvZ2RiL20yLWxh bmcuaAkyMDE3LTA4LTE5IDIwOjA1OjEwLjA3ODg3Njc5NSArMDIwMAogQEAgLTM0LDcgKzM0LDcg QEAKICBleHRlcm4gaW50IG0yX2lzX2xvbmdfc2V0IChzdHJ1Y3QgdHlwZSAqdHlwZSk7CiAgZXh0 ZXJuIGludCBtMl9pc191bmJvdW5kZWRfYXJyYXkgKHN0cnVjdCB0eXBlICp0eXBlKTsKQEAgLTIx NzIsMTAgKzIxMjksMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9tMi1sYW5n LmgKICAJCQkgIHN0cnVjdCB1aV9maWxlICosIGludCwKICAJCQkgIHN0cnVjdCB2YWx1ZSAqLAog IAkJCSAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7Ci1JbmRleDogZ2RiLTcu OTkuOTAuMjAxNzA0MjAvZ2RiL20yLXR5cGVwcmludC5jCitJbmRleDogZ2RiLTguMC9nZGIvbTIt dHlwZXByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45OS45MC4yMDE3MDQyMC5vcmlnL2dk Yi9tMi10eXBlcHJpbnQuYwkyMDE3LTA0LTIwIDIzOjA4OjU0LjE2OTM5NDgyMyArMDIwMAotKysr IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9tMi10eXBlcHJpbnQuYwkyMDE3LTA0LTIwIDIzOjA4 OjU2Ljk4NzQxMDcwMiArMDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvbTItdHlwZXByaW50LmMJ MjAxNy0wOC0xOSAyMDowNDo1OS44MDc3ODA3MDcgKzAyMDAKKysrKyBnZGItOC4wL2dkYi9tMi10 eXBlcHJpbnQuYwkyMDE3LTA4LTE5IDIwOjA1OjEwLjA3ODg3Njc5NSArMDIwMAogQEAgLTIzNCw5 ICsyMzQsMTIgQEAKICAJICBtMl9wcmludF9ib3VuZHMgKFRZUEVfSU5ERVhfVFlQRSAodHlwZSks IHN0cmVhbSwgc2hvdywgLTEsIDEpOwogIAl9CkBAIC0yMTkyLDEwICsyMTQ5LDEwIEBAIEluZGV4 OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvbTItdHlwZXByaW50LmMKICAgICAgfQogICAgZnBy aW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiXSBPRiAiKTsKICAgIG0yX3ByaW50X3R5cGUgKFRZUEVf VEFSR0VUX1RZUEUgKHR5cGUpLCAiIiwgc3RyZWFtLCBzaG93LCBsZXZlbCwgZmxhZ3MpOwotSW5k ZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9tMi12YWxwcmludC5jCitJbmRleDogZ2RiLTgu MC9nZGIvbTItdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5LjkwLjIwMTcwNDIw Lm9yaWcvZ2RiL20yLXZhbHByaW50LmMJMjAxNy0wNC0yMCAyMzowODo1NC4xNzAzOTQ4MjkgKzAy MDAKLSsrKyBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvbTItdmFscHJpbnQuYwkyMDE3LTA0LTIw IDIzOjA4OjU2Ljk4NzQxMDcwMiArMDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvbTItdmFscHJp bnQuYwkyMDE3LTA4LTE5IDIwOjA0OjU5LjgwNzc4MDcwNyArMDIwMAorKysrIGdkYi04LjAvZ2Ri L20yLXZhbHByaW50LmMJMjAxNy0wOC0xOSAyMDowNToxMC4wNzg4NzY3OTUgKzAyMDAKIEBAIC0z NSw3ICszNSw3IEBACiAgCQkJCSAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0pOwogIHN0YXRpYyB2 b2lkCkBAIC0yMjY2LDEwICsyMjIzLDEwIEBAIEluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9n ZGIvbTItdmFscHJpbnQuYwogIAkgIGludCBuZWVkX2NvbW1hID0gMDsKICAKICAJICBmcHV0c19m aWx0ZXJlZCAoInsiLCBzdHJlYW0pOwotSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9t ZW1yYW5nZS5jCitJbmRleDogZ2RiLTguMC9nZGIvbWVtcmFuZ2UuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03Ljk5LjkwLjIwMTcwNDIwLm9yaWcvZ2RiL21lbXJhbmdlLmMJMjAxNy0wNC0yMCAyMzow ODo1NC4xNzAzOTQ4MjkgKzAyMDAKLSsrKyBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvbWVtcmFu Z2UuYwkyMDE3LTA0LTIwIDIzOjA4OjU2Ljk4NzQxMDcwMiArMDIwMAorLS0tIGdkYi04LjAub3Jp Zy9nZGIvbWVtcmFuZ2UuYwkyMDE3LTA4LTE5IDIwOjA0OjU5LjgwNzc4MDcwNyArMDIwMAorKysr IGdkYi04LjAvZ2RiL21lbXJhbmdlLmMJMjAxNy0wOC0xOSAyMDowNToxMC4wNzg4NzY3OTUgKzAy MDAKIEBAIC0yMiw4ICsyMiw4IEBACiAgI2luY2x1ZGUgPGFsZ29yaXRobT4KICAKQEAgLTIyODEs MTAgKzIyMzgsMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9tZW1yYW5nZS5j CiAgewogICAgVUxPTkdFU1QgaCwgbDsKICAKLUluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9n ZGIvbWVtcmFuZ2UuaAorSW5kZXg6IGdkYi04LjAvZ2RiL21lbXJhbmdlLmgKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy45OS45MC4yMDE3MDQyMC5vcmlnL2dkYi9tZW1yYW5nZS5oCTIwMTctMDQtMjAg MjM6MDg6NTQuMTcwMzk0ODI5ICswMjAwCi0rKysgZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL21l bXJhbmdlLmgJMjAxNy0wNC0yMCAyMzowODo1Ni45ODc0MTA3MDIgKzAyMDAKKy0tLSBnZGItOC4w Lm9yaWcvZ2RiL21lbXJhbmdlLmgJMjAxNy0wOC0xOSAyMDowNDo1OS44MDg3ODA3MTYgKzAyMDAK KysrKyBnZGItOC4wL2dkYi9tZW1yYW5nZS5oCTIwMTctMDgtMTkgMjA6MDU6MTAuMDc5ODc2ODA0 ICswMjAwCiBAQCAtMzAsNyArMzAsNyBAQAogICAgQ09SRV9BRERSIHN0YXJ0OwogIApAQCAtMjMw NSwxMCArMjI2MiwxMCBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL21lbXJhbmdl LmgKICAKICAvKiBSZXR1cm5zIHRydWUgaWYgQUREUiBpcyBpbiBSQU5HRS4gICovCiAgCi1JbmRl eDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL21pcHMtbGludXgtbmF0LmMKK0luZGV4OiBnZGIt OC4wL2dkYi9taXBzLWxpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAx NzA0MjAub3JpZy9nZGIvbWlwcy1saW51eC1uYXQuYwkyMDE3LTA0LTIwIDIzOjA4OjU0LjE3MDM5 NDgyOSArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9taXBzLWxpbnV4LW5hdC5j CTIwMTctMDQtMjAgMjM6MDg6NTYuOTg4NDEwNzA4ICswMjAwCistLS0gZ2RiLTguMC5vcmlnL2dk Yi9taXBzLWxpbnV4LW5hdC5jCTIwMTctMDgtMTkgMjA6MDQ6NTkuODA4NzgwNzE2ICswMjAwCisr KysgZ2RiLTguMC9nZGIvbWlwcy1saW51eC1uYXQuYwkyMDE3LTA4LTE5IDIwOjA1OjEwLjA3OTg3 NjgwNCArMDIwMAogQEAgLTU4NCw3ICs1ODQsNyBAQAogIAogIHN0YXRpYyBpbnQKQEAgLTIzMTgs MTAgKzIyNzUsMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9taXBzLWxpbnV4 LW5hdC5jCiAgewogICAgc3RydWN0IHB0X3dhdGNoX3JlZ3MgZHVtbXlfcmVnczsKICAgIGludCBp OwotSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9vcGVuY2wtbGFuZy5jCitJbmRleDog Z2RiLTguMC9nZGIvb3BlbmNsLWxhbmcuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5LjkwLjIw MTcwNDIwLm9yaWcvZ2RiL29wZW5jbC1sYW5nLmMJMjAxNy0wNC0yMCAyMzowODo1NC4xNzEzOTQ4 MzQgKzAyMDAKLSsrKyBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvb3BlbmNsLWxhbmcuYwkyMDE3 LTA0LTIwIDIzOjA4OjU2Ljk4ODQxMDcwOCArMDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvb3Bl bmNsLWxhbmcuYwkyMDE3LTA4LTE5IDIwOjA0OjU5LjgwODc4MDcxNiArMDIwMAorKysrIGdkYi04 LjAvZ2RiL29wZW5jbC1sYW5nLmMJMjAxNy0wOC0xOSAyMDowNToxMC4wNzk4NzY4MDQgKzAyMDAK IEBAIC03OCwxMSArNzgsMTEgQEAKICAKICBzdGF0aWMgc3RydWN0IHR5cGUgKgpAQCAtMjM5MCwx MCArMjM0NywxMCBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL29wZW5jbC1sYW5n LmMKICAKICAgICAgICBpZiAoIXZhbHVlX2JpdHNfc3ludGhldGljX3BvaW50ZXIgKGMtPnZhbCwK ICAJCQkJCSBjLT5pbmRpY2VzW2ldICogZWxzaXplICsgY29tcF9vZmZzZXQsCi1JbmRleDogZ2Ri LTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3AtbGFuZy5jCitJbmRleDogZ2RiLTguMC9nZGIvcC1sYW5n LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45OS45MC4yMDE3MDQyMC5vcmlnL2dkYi9wLWxhbmcu YwkyMDE3LTA0LTIwIDIzOjA4OjU0LjE3MTM5NDgzNCArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIw MTcwNDIwL2dkYi9wLWxhbmcuYwkyMDE3LTA0LTIwIDIzOjA4OjU2Ljk4ODQxMDcwOCArMDIwMAor LS0tIGdkYi04LjAub3JpZy9nZGIvcC1sYW5nLmMJMjAxNy0wOC0xOSAyMDowNDo1OS44MDg3ODA3 MTYgKzAyMDAKKysrKyBnZGItOC4wL2dkYi9wLWxhbmcuYwkyMDE3LTA4LTE5IDIwOjA1OjEwLjA3 OTg3NjgwNCArMDIwMAogQEAgLTk1LDggKzk1LDggQEAKICAgICBhcmUgbm90IG11bHRpcGxlIG9m IFRBUkdFVF9DSEFSX0JJVCB0aGVuIHRoZSByZXN1bHRzIGFyZSB3cm9uZwogICAgIGJ1dCB0aGlz IGRvZXMgbm90IGhhcHBlbiBmb3IgRnJlZSBQYXNjYWwgbm9yIGZvciBHUEMuICAqLwpAQCAtMjQ0 MSwxMCArMjM5OCwxMCBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3AtbGFuZy5j CiAgCSAgaSA9IHJlcDEgLSAxOwogIAkgIHRoaW5nc19wcmludGVkICs9IG9wdGlvbnMtPnJlcGVh dF9jb3VudF90aHJlc2hvbGQ7CiAgCSAgbmVlZF9jb21tYSA9IDE7Ci1JbmRleDogZ2RiLTcuOTku OTAuMjAxNzA0MjAvZ2RiL3AtbGFuZy5oCitJbmRleDogZ2RiLTguMC9nZGIvcC1sYW5nLmgKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy45OS45MC4yMDE3MDQyMC5vcmlnL2dkYi9wLWxhbmcuaAkyMDE3 LTA0LTIwIDIzOjA4OjU0LjE3MTM5NDgzNCArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIw L2dkYi9wLWxhbmcuaAkyMDE3LTA0LTIwIDIzOjA4OjU2Ljk4ODQxMDcwOCArMDIwMAorLS0tIGdk Yi04LjAub3JpZy9nZGIvcC1sYW5nLmgJMjAxNy0wOC0xOSAyMDowNDo1OS44MDk3ODA3MjYgKzAy MDAKKysrKyBnZGItOC4wL2dkYi9wLWxhbmcuaAkyMDE3LTA4LTE5IDIwOjA1OjEwLjA4MDg3Njgx MyArMDIwMAogQEAgLTM2LDcgKzM2LDcgQEAKICBleHRlcm4gdm9pZCBwYXNjYWxfcHJpbnRfdHlw ZWRlZiAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHN5bWJvbCAqLAogIAkJCQkgIHN0cnVjdCB1aV9m aWxlICopOwpAQCAtMjQ3MCwxMCArMjQyNywxMCBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0 MjAvZ2RiL3AtbGFuZy5oCiAgCQkJICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9u cyAqKTsKICAKICBleHRlcm4gc3RydWN0IHR5cGUgKipjb25zdCAocGFzY2FsX2J1aWx0aW5fdHlw ZXNbXSk7Ci1JbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3AtdmFscHJpbnQuYworSW5k ZXg6IGdkYi04LjAvZ2RiL3AtdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5Ljkw LjIwMTcwNDIwLm9yaWcvZ2RiL3AtdmFscHJpbnQuYwkyMDE3LTA0LTIwIDIzOjA4OjU0LjE3MTM5 NDgzNCArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9wLXZhbHByaW50LmMJMjAx Ny0wNC0yMCAyMzowODo1Ni45ODk0MTA3MTMgKzAyMDAKKy0tLSBnZGItOC4wLm9yaWcvZ2RiL3At dmFscHJpbnQuYwkyMDE3LTA4LTE5IDIwOjA0OjU5LjgwOTc4MDcyNiArMDIwMAorKysrIGdkYi04 LjAvZ2RiL3AtdmFscHJpbnQuYwkyMDE3LTA4LTE5IDIwOjA1OjEwLjA4MDg3NjgxMyArMDIwMAog QEAgLTU5LDcgKzU5LDcgQEAKICAKICB2b2lkCkBAIC0yNDk0LDEwICsyNDUxLDEwIEBAIEluZGV4 OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvcC12YWxwcmludC5jCiAgICBzdHJ1Y3QgdHlwZSAq Y2hhcl90eXBlOwogICAgQ09SRV9BRERSIGFkZHI7CiAgICBpbnQgd2FudF9zcGFjZSA9IDA7Ci1J bmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3BwYy1saW51eC1uYXQuYworSW5kZXg6IGdk Yi04LjAvZ2RiL3BwYy1saW51eC1uYXQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5LjkwLjIw MTcwNDIwLm9yaWcvZ2RiL3BwYy1saW51eC1uYXQuYwkyMDE3LTA0LTIwIDIzOjA4OjU0LjE3MjM5 NDg0MCArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9wcGMtbGludXgtbmF0LmMJ MjAxNy0wNC0yMCAyMzowODo1Ni45ODk0MTA3MTMgKzAyMDAKKy0tLSBnZGItOC4wLm9yaWcvZ2Ri L3BwYy1saW51eC1uYXQuYwkyMDE3LTA4LTE5IDIwOjA0OjU5LjgwOTc4MDcyNiArMDIwMAorKysr IGdkYi04LjAvZ2RiL3BwYy1saW51eC1uYXQuYwkyMDE3LTA4LTE5IDIwOjA1OjEwLjA4MDg3Njgx MyArMDIwMAogQEAgLTE0NDUsNyArMTQ0NSw3IEBACiAgCiAgc3RhdGljIGludApAQCAtMjUwNywx MCArMjQ2NCwxMCBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3BwYy1saW51eC1u YXQuYwogIHsKICAgIC8qIEhhbmRsZSBzdWItOC1ieXRlIHF1YW50aXRpZXMuICAqLwogICAgaWYg KGxlbiA8PSAwKQotSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9wcmludGNtZC5jCitJ bmRleDogZ2RiLTguMC9nZGIvcHJpbnRjbWQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5Ljkw LjIwMTcwNDIwLm9yaWcvZ2RiL3ByaW50Y21kLmMJMjAxNy0wNC0yMCAyMzowODo1NC4xNzMzOTQ4 NDYgKzAyMDAKLSsrKyBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvcHJpbnRjbWQuYwkyMDE3LTA0 LTIwIDIzOjA4OjU2Ljk5MDQxMDcxOSArMDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvcHJpbnRj bWQuYwkyMDE3LTA4LTE5IDIwOjA0OjU5LjgxMDc4MDczNSArMDIwMAorKysrIGdkYi04LjAvZ2Ri L3ByaW50Y21kLmMJMjAxNy0wOC0xOSAyMDowNToxMC4wODE4NzY4MjMgKzAyMDAKIEBAIC0yODAs NyArMjgwLDcgQEAKICAJCSBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKQogIHsKQEAgLTI1MjksMTAg KzI0ODYsMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9wcmludGNtZC5jCiAg ICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJj aCk7CiAgCiAgICAvKiBTdHJpbmcgcHJpbnRpbmcgc2hvdWxkIGdvIHRocm91Z2ggdmFsX3ByaW50 X3NjYWxhcl9mb3JtYXR0ZWQuICAqLwotSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9w cm9jZnMuYworSW5kZXg6IGdkYi04LjAvZ2RiL3Byb2Nmcy5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuOTkuOTAuMjAxNzA0MjAub3JpZy9nZGIvcHJvY2ZzLmMJMjAxNy0wNC0yMCAyMzowODo1NC4x NzMzOTQ4NDYgKzAyMDAKLSsrKyBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvcHJvY2ZzLmMJMjAx Ny0wNC0yMCAyMzowODo1Ni45OTE0MTA3MjUgKzAyMDAKKy0tLSBnZGItOC4wLm9yaWcvZ2RiL3By b2Nmcy5jCTIwMTctMDgtMTkgMjA6MDQ6NTkuODExNzgwNzQ0ICswMjAwCisrKysgZ2RiLTguMC9n ZGIvcHJvY2ZzLmMJMjAxNy0wOC0xOSAyMDowNToxMC4wODI4NzY4MzIgKzAyMDAKIEBAIC00ODY0 LDcgKzQ4NjQsNyBAQAogIAogIHN0YXRpYyBpbnQKQEAgLTI1NDIsMTAgKzI0OTksMTAgQEAgSW5k ZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9wcm9jZnMuYwogIHsKICAgIC8qIFRoZSBtYW4g cGFnZSBmb3IgcHJvYyg0KSBvbiBTb2xhcmlzIDIuNiBhbmQgdXAgc2F5cyB0aGF0IHRoZQogICAg ICAgc3lzdGVtIGNhbiBzdXBwb3J0ICJ0aG91c2FuZHMiIG9mIGhhcmR3YXJlIHdhdGNocG9pbnRz LCBidXQgZ2l2ZXMKLUluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvcmVnY2FjaGUuYwor SW5kZXg6IGdkYi04LjAvZ2RiL3JlZ2NhY2hlLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45OS45 MC4yMDE3MDQyMC5vcmlnL2dkYi9yZWdjYWNoZS5jCTIwMTctMDQtMjAgMjM6MDg6NTQuMTc0Mzk0 ODUxICswMjAwCi0rKysgZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3JlZ2NhY2hlLmMJMjAxNy0w NC0yMCAyMzowODo1Ni45OTE0MTA3MjUgKzAyMDAKKy0tLSBnZGItOC4wLm9yaWcvZ2RiL3JlZ2Nh Y2hlLmMJMjAxNy0wOC0xOSAyMDowNDo1OS44MTE3ODA3NDQgKzAyMDAKKysrKyBnZGItOC4wL2dk Yi9yZWdjYWNoZS5jCTIwMTctMDgtMTkgMjA6MDU6MTAuMDgyODc2ODMyICswMjAwCiBAQCAtOTg4 LDcgKzk4OCw3IEBACiAgCiAgc3RhdGljIGVudW0gcmVnaXN0ZXJfc3RhdHVzCkBAIC0yNTkxLDEw ICsyNTQ4LDEwIEBAIEluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvcmVnY2FjaGUuYwog IHsKICAgIHN0cnVjdCByZWdjYWNoZV9kZXNjciAqZGVzY3IgPSByZWdjYWNoZS0+ZGVzY3I7CiAg Ci1JbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3JlZ2NhY2hlLmgKK0luZGV4OiBnZGIt OC4wL2dkYi9yZWdjYWNoZS5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAu b3JpZy9nZGIvcmVnY2FjaGUuaAkyMDE3LTA0LTIwIDIzOjA4OjU0LjE3NDM5NDg1MSArMDIwMAot KysrIGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9yZWdjYWNoZS5oCTIwMTctMDQtMjAgMjM6MDg6 NTYuOTkxNDEwNzI1ICswMjAwCistLS0gZ2RiLTguMC5vcmlnL2dkYi9yZWdjYWNoZS5oCTIwMTct MDgtMTkgMjA6MDQ6NTkuODEyNzgwNzU0ICswMjAwCisrKysgZ2RiLTguMC9nZGIvcmVnY2FjaGUu aAkyMDE3LTA4LTE5IDIwOjA1OjEwLjA4Mzg3Njg0MSArMDIwMAogQEAgLTk0LDkgKzk0LDkgQEAK ICAKICBleHRlcm4gZW51bSByZWdpc3Rlcl9zdGF0dXMKQEAgLTI2MjIsMTAgKzI1NzksMTAgQEAg SW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9yZWdjYWNoZS5oCiAgCiAgLyogU3BlY2lh bCByb3V0aW5lcyB0byByZWFkL3dyaXRlIHRoZSBQQy4gICovCiAgCi1JbmRleDogZ2RiLTcuOTku OTAuMjAxNzA0MjAvZ2RiL3JlbW90ZS5jCitJbmRleDogZ2RiLTguMC9nZGIvcmVtb3RlLmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy45OS45MC4yMDE3MDQyMC5vcmlnL2dkYi9yZW1vdGUuYwkyMDE3 LTA0LTIwIDIzOjA4OjU0LjE3NzM5NDg2OCArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIw L2dkYi9yZW1vdGUuYwkyMDE3LTA0LTIwIDIzOjA4OjU2Ljk5MzQxMDczNiArMDIwMAorLS0tIGdk Yi04LjAub3JpZy9nZGIvcmVtb3RlLmMJMjAxNy0wOC0xOSAyMDowNDo1OS44MTQ3ODA3NzIgKzAy MDAKKysrKyBnZGItOC4wL2dkYi9yZW1vdGUuYwkyMDE3LTA4LTE5IDIwOjA1OjEwLjA4NTg3Njg2 MCArMDIwMAogQEAgLTk5MTUsNyArOTkxNSw3IEBACiAgCiAgc3RhdGljIGludApAQCAtMjYzNSwx MCArMjU5MiwxMCBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3JlbW90ZS5jCiAg ewogICAgaWYgKHJlbW90ZV9od193YXRjaHBvaW50X2xlbmd0aF9saW1pdCA9PSAwKQogICAgICBy ZXR1cm4gMDsKLUluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvc3B1LW11bHRpYXJjaC5j CitJbmRleDogZ2RiLTguMC9nZGIvc3B1LW11bHRpYXJjaC5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuOTkuOTAuMjAxNzA0MjAub3JpZy9nZGIvc3B1LW11bHRpYXJjaC5jCTIwMTctMDQtMjAgMjM6 MDg6NTQuMTc3Mzk0ODY4ICswMjAwCi0rKysgZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3NwdS1t dWx0aWFyY2guYwkyMDE3LTA0LTIwIDIzOjA4OjU2Ljk5NDQxMDc0MiArMDIwMAorLS0tIGdkYi04 LjAub3JpZy9nZGIvc3B1LW11bHRpYXJjaC5jCTIwMTctMDgtMTkgMjA6MDQ6NTkuODE0NzgwNzcy ICswMjAwCisrKysgZ2RiLTguMC9nZGIvc3B1LW11bHRpYXJjaC5jCTIwMTctMDgtMTkgMjA6MDU6 MTAuMDg1ODc2ODYwICswMjAwCiBAQCAtMTI3LDcgKzEyNyw3IEBACiAgLyogT3ZlcnJpZGUgdGhl IHRvX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCByb3V0aW5lLiAgKi8KICBzdGF0aWMgaW50 CkBAIC0yNjQ4LDEwICsyNjA1LDEwIEBAIEluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIv c3B1LW11bHRpYXJjaC5jCiAgewogICAgc3RydWN0IHRhcmdldF9vcHMgKm9wc19iZW5lYXRoID0g ZmluZF90YXJnZXRfYmVuZWF0aCAoc2VsZik7CiAgCi1JbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0 MjAvZ2RiL3N0YWNrLmMKK0luZGV4OiBnZGItOC4wL2dkYi9zdGFjay5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAub3JpZy9nZGIvc3RhY2suYwkyMDE3LTA0LTIwIDIzOjA4 OjU0LjE3ODM5NDg3NCArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9zdGFjay5j CTIwMTctMDQtMjAgMjM6MDg6NTYuOTk0NDEwNzQyICswMjAwCistLS0gZ2RiLTguMC5vcmlnL2dk Yi9zdGFjay5jCTIwMTctMDgtMTkgMjA6MDQ6NTkuODE1NzgwNzgyICswMjAwCisrKysgZ2RiLTgu MC9nZGIvc3RhY2suYwkyMDE3LTA4LTE5IDIwOjA1OjEwLjA4Njg3Njg2OSArMDIwMAogQEAgLTE4 OSw3ICsxODksNyBAQAogICAgIGFyZ3VtZW50IChub3QganVzdCB0aGUgZmlyc3QgbmFtZWxlc3Mg YXJndW1lbnQpLiAgKi8KICAKQEAgLTI2OTAsMTAgKzI2NDcsMTAgQEAgSW5kZXg6IGdkYi03Ljk5 LjkwLjIwMTcwNDIwL2dkYi9zdGFjay5jCiAgCiAgICAgICAgaWYgKGhpZ2hlc3Rfb2Zmc2V0ID09 IC0xKQogIAlzdGFydCA9IGdkYmFyY2hfZnJhbWVfYXJnc19za2lwIChnZXRfZnJhbWVfYXJjaCAo ZnJhbWUpKTsKLUluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvc3ltbWlzYy5jCitJbmRl eDogZ2RiLTguMC9nZGIvc3ltbWlzYy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAx NzA0MjAub3JpZy9nZGIvc3ltbWlzYy5jCTIwMTctMDQtMjAgMjM6MDg6NTQuMTc4Mzk0ODc0ICsw MjAwCi0rKysgZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3N5bW1pc2MuYwkyMDE3LTA0LTIwIDIz OjA4OjU2Ljk5NDQxMDc0MiArMDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvc3ltbWlzYy5jCTIw MTctMDgtMTkgMjA6MDQ6NTkuODE1NzgwNzgyICswMjAwCisrKysgZ2RiLTguMC9nZGIvc3ltbWlz Yy5jCTIwMTctMDgtMTkgMjA6MDU6MTAuMDg2ODc2ODY5ICswMjAwCiBAQCAtNjA0LDExICs2MDQs MTEgQEAKICAKICAJY2FzZSBMT0NfQ09OU1RfQllURVM6CkBAIC0yNzA5LDEwICsyNjY2LDEwIEBA IEluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvc3ltbWlzYy5jCiAgCSAgICBmb3IgKGkg PSAwOyBpIDwgVFlQRV9MRU5HVEggKHR5cGUpOyBpKyspCiAgCSAgICAgIGZwcmludGZfZmlsdGVy ZWQgKG91dGZpbGUsICIgJTAyeCIsCiAgCQkJCSh1bnNpZ25lZCkgU1lNQk9MX1ZBTFVFX0JZVEVT IChzeW1ib2wpW2ldKTsKLUluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvdGFyZ2V0LmMK K0luZGV4OiBnZGItOC4wL2dkYi90YXJnZXQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5Ljkw LjIwMTcwNDIwLm9yaWcvZ2RiL3RhcmdldC5jCTIwMTctMDQtMjAgMjM6MDg6NTQuMTc5Mzk0ODc5 ICswMjAwCi0rKysgZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3RhcmdldC5jCTIwMTctMDQtMjAg MjM6MDg6NTYuOTk1NDEwNzQ3ICswMjAwCistLS0gZ2RiLTguMC5vcmlnL2dkYi90YXJnZXQuYwky MDE3LTA4LTE5IDIwOjA0OjU5LjgxNjc4MDc5MSArMDIwMAorKysrIGdkYi04LjAvZ2RiL3Rhcmdl dC5jCTIwMTctMDgtMTkgMjA6MDU6MTAuMDg3ODc2ODc5ICswMjAwCiBAQCAtNTcsNyArNTcsNyBA QAogIAkJCQkJCSBDT1JFX0FERFIsIENPUkVfQUREUiwgaW50KTsKICAKQEAgLTI3MzEsMTAgKzI2 ODgsMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi90YXJnZXQuYwogIHsKICAg IHJldHVybiAobGVuIDw9IGdkYmFyY2hfcHRyX2JpdCAodGFyZ2V0X2dkYmFyY2ggKCkpIC8gVEFS R0VUX0NIQVJfQklUKTsKICB9Ci1JbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3Rhcmdl dC5oCitJbmRleDogZ2RiLTguMC9nZGIvdGFyZ2V0LmgKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45 OS45MC4yMDE3MDQyMC5vcmlnL2dkYi90YXJnZXQuaAkyMDE3LTA0LTIwIDIzOjA4OjU0LjE4MDM5 NDg4NSArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi90YXJnZXQuaAkyMDE3LTA0 LTIwIDIzOjA4OjU2Ljk5NjQxMDc1MyArMDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvdGFyZ2V0 LmgJMjAxNy0wOC0xOSAyMDowNDo1OS44MTY3ODA3OTEgKzAyMDAKKysrKyBnZGItOC4wL2dkYi90 YXJnZXQuaAkyMDE3LTA4LTE5IDIwOjA1OjEwLjA4ODg3Njg4OCArMDIwMAogQEAgLTU1NSw3ICs1 NTUsNyBAQAogICAgICAvKiBEb2N1bWVudGF0aW9uIG9mIHRoaXMgcm91dGluZSBpcyBwcm92aWRl ZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nCiAgICAgICAgIHRhcmdldF8qIG1hY3JvLiAgKi8KQEAg LTI3NDQsMTAgKzI3MDEsMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi90YXJn ZXQuaAogICAgICAgIFRBUkdFVF9ERUZBVUxUX0ZVTkMgKGRlZmF1bHRfcmVnaW9uX29rX2Zvcl9o d193YXRjaHBvaW50KTsKICAKICAgICAgaW50ICgqdG9fY2FuX2FjY2VsX3dhdGNocG9pbnRfY29u ZGl0aW9uKSAoc3RydWN0IHRhcmdldF9vcHMgKiwKLUluZGV4OiBnZGItNy45OS45MC4yMDE3MDQy MC9nZGIvdHJhY2Vwb2ludC5jCitJbmRleDogZ2RiLTguMC9nZGIvdHJhY2Vwb2ludC5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAub3JpZy9nZGIvdHJhY2Vwb2ludC5jCTIw MTctMDQtMjAgMjM6MDg6NTQuMTgyMzk0ODk2ICswMjAwCi0rKysgZ2RiLTcuOTkuOTAuMjAxNzA0 MjAvZ2RiL3RyYWNlcG9pbnQuYwkyMDE3LTA0LTIwIDIzOjA4OjU2Ljk5NzQxMDc1OCArMDIwMAor LS0tIGdkYi04LjAub3JpZy9nZGIvdHJhY2Vwb2ludC5jCTIwMTctMDgtMTkgMjA6MDQ6NTkuODE3 NzgwODAwICswMjAwCisrKysgZ2RiLTguMC9nZGIvdHJhY2Vwb2ludC5jCTIwMTctMDgtMTkgMjA6 MDU6MTAuMDg4ODc2ODg4ICswMjAwCiBAQCAtOTA0LDEwICs5MDQsMTAgQEAKICB2b2lkCiAgY29s bGVjdGlvbl9saXN0OjphZGRfbWVtcmFuZ2UgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLApAQCAt Mjg0MSwxMCArMjc5OCwxMCBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3RyYWNl cG9pbnQuYwogIAl9CiAgICAgICAgaWYgKEJMT0NLX0ZVTkNUSU9OIChibG9jaykpCiAgCWJyZWFr OwotSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi92YWxhcml0aC5jCitJbmRleDogZ2Ri LTguMC9nZGIvdmFsYXJpdGguYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5LjkwLjIwMTcwNDIw Lm9yaWcvZ2RiL3ZhbGFyaXRoLmMJMjAxNy0wNC0yMCAyMzowODo1NC4xODIzOTQ4OTYgKzAyMDAK LSsrKyBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvdmFsYXJpdGguYwkyMDE3LTA0LTIwIDIzOjA4 OjU2Ljk5NzQxMDc1OCArMDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvdmFsYXJpdGguYwkyMDE3 LTA4LTE5IDIwOjA0OjU5LjgxODc4MDgxMCArMDIwMAorKysrIGdkYi04LjAvZ2RiL3ZhbGFyaXRo LmMJMjAxNy0wOC0xOSAyMDowNToxMC4wODk4NzY4OTcgKzAyMDAKIEBAIC0xODgsNyArMTg4LDcg QEAKICAgICB0byBkb3VibGVzLCBidXQgbm8gbG9uZ2VyIGRvZXMuICAqLwogIApAQCAtMjg4Nywx MCArMjg0NCwxMCBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3ZhbGFyaXRoLmMK ICAKICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykKICAgICAgewotSW5kZXg6IGdkYi03Ljk5 LjkwLjIwMTcwNDIwL2dkYi92YWxvcHMuYworSW5kZXg6IGdkYi04LjAvZ2RiL3ZhbG9wcy5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAub3JpZy9nZGIvdmFsb3BzLmMJMjAx Ny0wNC0yMCAyMzowODo1NC4xODQzOTQ5MDggKzAyMDAKLSsrKyBnZGItNy45OS45MC4yMDE3MDQy MC9nZGIvdmFsb3BzLmMJMjAxNy0wNC0yMCAyMzowODo1Ni45OTg0MTA3NjQgKzAyMDAKKy0tLSBn ZGItOC4wLm9yaWcvZ2RiL3ZhbG9wcy5jCTIwMTctMDgtMTkgMjA6MDQ6NTkuODE5NzgwODE5ICsw MjAwCisrKysgZ2RiLTguMC9nZGIvdmFsb3BzLmMJMjAxNy0wOC0xOSAyMDowNToxMC4wOTA4NzY5 MDcgKzAyMDAKIEBAIC03OSw3ICs3OSw3IEBACiAgCQkJCQkgICBpbnQsIGludCk7CiAgCkBAIC0y OTI0LDcgKzI4ODEsNyBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3ZhbG9wcy5j CiAgCSAgTE9OR0VTVCBsb3dfYm91bmQsIGhpZ2hfYm91bmQsIG5ld19sZW5ndGg7CiAgCiAgCSAg aWYgKGdldF9kaXNjcmV0ZV9ib3VuZHMgKHJhbmdlX3R5cGUsICZsb3dfYm91bmQsICZoaWdoX2Jv dW5kKSA8IDApCi1AQCAtMTA2NCw3ICsxMDY0LDcgQEAKK0BAIC0xMDY1LDcgKzEwNjUsNyBAQAog ICAgICAgIHsKICAJY29uc3QgZ2RiX2J5dGUgKmRlc3RfYnVmZmVyOwogIAlDT1JFX0FERFIgY2hh bmdlZF9hZGRyOwpAQCAtMjkzMyw3ICsyODkwLDcgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcw NDIwL2dkYi92YWxvcHMuYwogICAgICAgICAgZ2RiX2J5dGUgYnVmZmVyW3NpemVvZiAoTE9OR0VT VCldOwogIAogIAlpZiAodmFsdWVfYml0c2l6ZSAodG92YWwpKQotQEAgLTMzMzksNyArMzMzOSw3 IEBACitAQCAtMzM0MCw3ICszMzQwLDcgQEAKICAgICB0aGUgZm9ybSAiRE9NQUlOOjpOQU1FIi4g ICovCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCkBAIC0yOTQyLDcgKzI4OTksNyBAQCBJbmRl eDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3ZhbG9wcy5jCiAgCQkJCXN0cnVjdCB0eXBlICpj dXJ0eXBlLCBjb25zdCBjaGFyICpuYW1lLAogIAkJCQlzdHJ1Y3QgdHlwZSAqaW50eXBlLCAKICAJ CQkJaW50IHdhbnRfYWRkcmVzcywKLUBAIC0zMzczLDcgKzMzNzMsNyBAQAorQEAgLTMzNzQsNyAr MzM3NCw3IEBACiAgCSAgaWYgKHdhbnRfYWRkcmVzcykKICAJICAgIHJldHVybiB2YWx1ZV9mcm9t X2xvbmdlc3QKICAJICAgICAgKGxvb2t1cF9tZW1iZXJwdHJfdHlwZSAoVFlQRV9GSUVMRF9UWVBF ICh0LCBpKSwgZG9tYWluKSwKQEAgLTI5NTEsNyArMjkwOCw3IEBAIEluZGV4OiBnZGItNy45OS45 MC4yMDE3MDQyMC9nZGIvdmFsb3BzLmMKICAJICBlbHNlIGlmIChub3NpZGUgIT0gRVZBTF9OT1JN QUwpCiAgCSAgICByZXR1cm4gYWxsb2NhdGVfdmFsdWUgKFRZUEVfRklFTERfVFlQRSAodCwgaSkp OwogIAkgIGVsc2UKLUBAIC0zNTQxLDcgKzM1NDEsNyBAQAorQEAgLTM1NDIsNyArMzU0Miw3IEBA CiAgICBmb3IgKGkgPSBUWVBFX05fQkFTRUNMQVNTRVMgKHQpIC0gMTsgaSA+PSAwOyBpLS0pCiAg ICAgIHsKICAgICAgICBzdHJ1Y3QgdmFsdWUgKnY7CkBAIC0yOTYwLDcgKzI5MTcsNyBAQCBJbmRl eDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3ZhbG9wcy5jCiAgCiAgICAgICAgaWYgKEJBU0VU WVBFX1ZJQV9WSVJUVUFMICh0LCBpKSkKICAJYmFzZV9vZmZzZXQgPSAwOwotQEAgLTM2OTAsNyAr MzY5MCw3IEBACitAQCAtMzY5MSw3ICszNjkxLDcgQEAKICBzdHJ1Y3QgdmFsdWUgKgogIHZhbHVl X2Z1bGxfb2JqZWN0IChzdHJ1Y3QgdmFsdWUgKmFyZ3AsIAogIAkJICAgc3RydWN0IHR5cGUgKnJ0 eXBlLCAKQEAgLTI5NjksMTAgKzI5MjYsMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIw L2dkYi92YWxvcHMuYwogIAkJICAgaW50IHh1c2luZ19lbmMpCiAgewogICAgc3RydWN0IHR5cGUg KnJlYWxfdHlwZTsKLUluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvdmFscHJpbnQuYwor SW5kZXg6IGdkYi04LjAvZ2RiL3ZhbHByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45OS45 MC4yMDE3MDQyMC5vcmlnL2dkYi92YWxwcmludC5jCTIwMTctMDQtMjAgMjM6MDg6NTQuMTg1Mzk0 OTEzICswMjAwCi0rKysgZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3ZhbHByaW50LmMJMjAxNy0w NC0yMCAyMzowODo1Ni45OTg0MTA3NjQgKzAyMDAKKy0tLSBnZGItOC4wLm9yaWcvZ2RiL3ZhbHBy aW50LmMJMjAxNy0wOC0xOSAyMDowNDo1OS44MjA3ODA4MjggKzAyMDAKKysrKyBnZGItOC4wL2dk Yi92YWxwcmludC5jCTIwMTctMDgtMTkgMjA6MDU6MTAuMDkwODc2OTA3ICswMjAwCiBAQCAtOTMz LDcgKzkzMyw3IEBACiAgCiAgdm9pZApAQCAtMzAzMiwxMCArMjk4OSwxMCBAQCBJbmRleDogZ2Ri LTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3ZhbHByaW50LmMKICAJCSAgY29uc3QgY2hhciAqZW5jb2Rp bmcsIGludCBmb3JjZV9lbGxpcHNlcywKICAJCSAgaW50IHF1b3RlX2NoYXIsIGludCBjX3N0eWxl X3Rlcm1pbmF0b3IsCiAgCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRp b25zKQotSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi92YWxwcmludC5oCitJbmRleDog Z2RiLTguMC9nZGIvdmFscHJpbnQuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5LjkwLjIwMTcw NDIwLm9yaWcvZ2RiL3ZhbHByaW50LmgJMjAxNy0wNC0yMCAyMzowODo1NC4xODYzOTQ5MTkgKzAy MDAKLSsrKyBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvdmFscHJpbnQuaAkyMDE3LTA0LTIwIDIz OjA4OjU2Ljk5ODQxMDc2NCArMDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvdmFscHJpbnQuaAky MDE3LTA4LTE5IDIwOjA0OjU5LjgyMDc4MDgyOCArMDIwMAorKysrIGdkYi04LjAvZ2RiL3ZhbHBy aW50LmgJMjAxNy0wOC0xOSAyMDowNToxMC4wOTA4NzY5MDcgKzAyMDAKIEBAIC0xMTksNyArMTE5 LDcgQEAKICAJCQkJICAgICAgQ09SRV9BRERSLCBzdHJ1Y3QgdWlfZmlsZSAqLCBpbnQsCiAgCQkJ CSAgICAgIHN0cnVjdCB2YWx1ZSAqLApAQCAtMzA3MiwxMCArMzAyOSwxMCBAQCBJbmRleDogZ2Ri LTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3ZhbHByaW50LmgKICAJCQkgICAgICBjb25zdCBjaGFyICpl bmNvZGluZywgaW50IGZvcmNlX2VsbGlwc2VzLAogIAkJCSAgICAgIGludCBxdW90ZV9jaGFyLCBp bnQgY19zdHlsZV90ZXJtaW5hdG9yLAogIAkJCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmlu dF9vcHRpb25zICpvcHRpb25zKTsKLUluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvdmFs dWUuYworSW5kZXg6IGdkYi04LjAvZ2RiL3ZhbHVlLmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45 OS45MC4yMDE3MDQyMC5vcmlnL2dkYi92YWx1ZS5jCTIwMTctMDQtMjAgMjM6MDg6NTQuMTg3Mzk0 OTI0ICswMjAwCi0rKysgZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3ZhbHVlLmMJMjAxNy0wNC0y MCAyMzowODo1Ni45OTk0MTA3NzAgKzAyMDAKKy0tLSBnZGItOC4wLm9yaWcvZ2RiL3ZhbHVlLmMJ MjAxNy0wOC0xOSAyMDowNDo1OS44MjE3ODA4MzggKzAyMDAKKysrKyBnZGItOC4wL2dkYi92YWx1 ZS5jCTIwMTctMDgtMTkgMjA6MDU6MTAuMDkxODc2OTE2ICswMjAwCiBAQCAtMzY3LDcgKzM2Nyw4 IEBACiAgfQogIApAQCAtMzEwOSwxMCArMzA2NiwxMCBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAx NzA0MjAvZ2RiL3ZhbHVlLmMKICB7CiAgICBtYXJrX3ZhbHVlX2JpdHNfb3B0aW1pemVkX291dCAo dmFsdWUsCiAgCQkJCSBvZmZzZXQgKiBUQVJHRVRfQ0hBUl9CSVQsCi1JbmRleDogZ2RiLTcuOTku OTAuMjAxNzA0MjAvZ2RiL3ZhbHVlLmgKK0luZGV4OiBnZGItOC4wL2dkYi92YWx1ZS5oCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAub3JpZy9nZGIvdmFsdWUuaAkyMDE3LTA0 LTIwIDIzOjA4OjU0LjE4NzM5NDkyNCArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dk Yi92YWx1ZS5oCTIwMTctMDQtMjAgMjM6MDg6NTYuOTk5NDEwNzcwICswMjAwCistLS0gZ2RiLTgu MC5vcmlnL2dkYi92YWx1ZS5oCTIwMTctMDgtMTkgMjA6MDQ6NTkuODIyNzgwODQ3ICswMjAwCisr KysgZ2RiLTguMC9nZGIvdmFsdWUuaAkyMDE3LTA4LTE5IDIwOjA1OjEwLjA5Mjg3NjkyNSArMDIw MAogQEAgLTI0Niw3ICsyNDYsNyBAQAogICAgLyogSWYgbm9uLU5VTEwsIHRoaXMgaXMgdXNlZCB0 byBkZXRlcm1pbmUgd2hldGhlciB0aGUgaW5kaWNhdGVkIGJpdHMKICAgICAgIG9mIFZBTFVFIGFy ZSBhIHN5bnRoZXRpYyBwb2ludGVyLiAgKi8KQEAgLTMxNDEsNyArMzA5OCw3IEBAIEluZGV4OiBn ZGItNy45OS45MC4yMDE3MDQyMC9nZGIvdmFsdWUuaAogIAogIC8qIE1hcmsgVkFMVUUncyBjb250 ZW50IGJpdHMgc3RhcnRpbmcgYXQgT0ZGU0VUIGFuZCBleHRlbmRpbmcgZm9yCiAgICAgTEVOR1RI IGJpdHMgYXMgb3B0aW1pemVkIG91dC4gICovCi1AQCAtODIwLDEyICs4MjEsMTEgQEAKK0BAIC04 MTksMTIgKzgyMCwxMSBAQAogIAkJCQkJICAgIGludCBmaWVsZG5vLAogIAkJCQkJICAgIHN0cnVj dCB0eXBlICphcmdfdHlwZSk7CiAgCkBAIC0zMTU1LDcgKzMxMTIsNyBAQCBJbmRleDogZ2RiLTcu OTkuOTAuMjAxNzA0MjAvZ2RiL3ZhbHVlLmgKICAKICBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1 ZV9jYXN0X3BvaW50ZXJzIChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdmFsdWUgKiwgaW50KTsKICAK LUBAIC0xMTE0LDEwICsxMTE0LDExIEBACitAQCAtMTExMywxMCArMTExMywxMSBAQAogIGV4dGVy biBzdHJ1Y3QgdmFsdWUgKmZpbmRfZnVuY3Rpb25faW5faW5mZXJpb3IgKGNvbnN0IGNoYXIgKiwK ICAJCQkJCQlzdHJ1Y3Qgb2JqZmlsZSAqKik7CiAgCkBAIC0zMTY5LDEwICszMTI2LDEwIEBAIElu ZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvdmFsdWUuaAogIAogIC8qIFVzZXIgZnVuY3Rp b24gaGFuZGxlci4gICovCiAgCi1JbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3MzOTAt bGludXgtbmF0LmMKK0luZGV4OiBnZGItOC4wL2dkYi9zMzkwLWxpbnV4LW5hdC5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAub3JpZy9nZGIvczM5MC1saW51eC1uYXQuYwky MDE3LTA0LTIwIDIzOjA4OjU0LjE4ODM5NDkzMCArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcw NDIwL2dkYi9zMzkwLWxpbnV4LW5hdC5jCTIwMTctMDQtMjAgMjM6MDg6NTcuMDAwNDEwNzc1ICsw MjAwCistLS0gZ2RiLTguMC5vcmlnL2dkYi9zMzkwLWxpbnV4LW5hdC5jCTIwMTctMDgtMTkgMjA6 MDQ6NTkuODIyNzgwODQ3ICswMjAwCisrKysgZ2RiLTguMC9nZGIvczM5MC1saW51eC1uYXQuYwky MDE3LTA4LTE5IDIwOjA1OjEwLjA5Mjg3NjkyNSArMDIwMAogQEAgLTkwMCw3ICs5MDAsNyBAQAog IAogIHN0YXRpYyBpbnQKQEAgLTMxODIsMTAgKzMxMzksMTAgQEAgSW5kZXg6IGdkYi03Ljk5Ljkw LjIwMTcwNDIwL2dkYi9zMzkwLWxpbnV4LW5hdC5jCiAgewogICAgcmV0dXJuIDE7CiAgfQotSW5k ZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi90YXJnZXQtZGVsZWdhdGVzLmMKK0luZGV4OiBn ZGItOC4wL2dkYi90YXJnZXQtZGVsZWdhdGVzLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45OS45 MC4yMDE3MDQyMC5vcmlnL2dkYi90YXJnZXQtZGVsZWdhdGVzLmMJMjAxNy0wNC0yMCAyMzowODo1 NC4xODkzOTQ5MzYgKzAyMDAKLSsrKyBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvdGFyZ2V0LWRl bGVnYXRlcy5jCTIwMTctMDQtMjAgMjM6MDg6NTcuMDAwNDEwNzc1ICswMjAwCistLS0gZ2RiLTgu MC5vcmlnL2dkYi90YXJnZXQtZGVsZWdhdGVzLmMJMjAxNy0wOC0xOSAyMDowNDo1OS44MjM3ODA4 NTYgKzAyMDAKKysrKyBnZGItOC4wL2dkYi90YXJnZXQtZGVsZWdhdGVzLmMJMjAxNy0wOC0xOSAy MDowNToxMC4wOTM4NzY5MzUgKzAyMDAKIEBAIC03NjAsMTQgKzc2MCwxNCBAQAogIH0KICAKQEAg LTMyMTIsMTAgKzMxNjksMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi90YXJn ZXQtZGVsZWdhdGVzLmMKICAgIGZwdXRzX3VuZmlsdGVyZWQgKCIpID0gIiwgZ2RiX3N0ZGxvZyk7 CiAgICB0YXJnZXRfZGVidWdfcHJpbnRfaW50IChyZXN1bHQpOwogICAgZnB1dHNfdW5maWx0ZXJl ZCAoIlxuIiwgZ2RiX3N0ZGxvZyk7Ci1JbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2Fh cmNoNjQtbGludXgtbmF0LmMKK0luZGV4OiBnZGItOC4wL2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAub3JpZy9nZGIvYWFyY2g2NC1s aW51eC1uYXQuYwkyMDE3LTA0LTIwIDIzOjA4OjU0LjE4OTM5NDkzNiArMDIwMAotKysrIGdkYi03 Ljk5LjkwLjIwMTcwNDIwL2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCTIwMTctMDQtMjAgMjM6MDg6 NTcuMDAxNDEwNzgxICswMjAwCistLS0gZ2RiLTguMC5vcmlnL2dkYi9hYXJjaDY0LWxpbnV4LW5h dC5jCTIwMTctMDgtMTkgMjA6MDQ6NTkuODIzNzgwODU2ICswMjAwCisrKysgZ2RiLTguMC9nZGIv YWFyY2g2NC1saW51eC1uYXQuYwkyMDE3LTA4LTE5IDIwOjA1OjEwLjA5Mzg3NjkzNSArMDIwMAog QEAgLTcwOCw3ICs3MDgsNyBAQAogIAogIHN0YXRpYyBpbnQKQEAgLTMyMjUsMTAgKzMxODIsMTAg QEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCiAg ewogICAgcmV0dXJuIGFhcmNoNjRfbGludXhfcmVnaW9uX29rX2Zvcl93YXRjaHBvaW50IChhZGRy LCBsZW4pOwogIH0KLUluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvbmF0L3g4Ni1kcmVn cy5jCitJbmRleDogZ2RiLTguMC9nZGIvbmF0L3g4Ni1kcmVncy5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuOTkuOTAuMjAxNzA0MjAub3JpZy9nZGIvbmF0L3g4Ni1kcmVncy5jCTIwMTctMDQtMjAg MjM6MDg6NTQuMTg5Mzk0OTM2ICswMjAwCi0rKysgZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL25h dC94ODYtZHJlZ3MuYwkyMDE3LTA0LTIwIDIzOjA4OjU3LjAwMTQxMDc4MSArMDIwMAorLS0tIGdk Yi04LjAub3JpZy9nZGIvbmF0L3g4Ni1kcmVncy5jCTIwMTctMDgtMTkgMjA6MDQ6NTkuODIzNzgw ODU2ICswMjAwCisrKysgZ2RiLTguMC9nZGIvbmF0L3g4Ni1kcmVncy5jCTIwMTctMDgtMTkgMjA6 MDU6MTAuMDkzODc2OTM1ICswMjAwCiBAQCAtMzg0LDcgKzM4NCw3IEBACiAgCiAgc3RhdGljIGlu dApAQCAtMzI0NywxMCArMzIwNCwxMCBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2Ri L25hdC94ODYtZHJlZ3MuYwogIHsKICAgIGludCBucmVnczsKICAKLUluZGV4OiBnZGItNy45OS45 MC4yMDE3MDQyMC9nZGIvY29tcGlsZS9jb21waWxlLWMtc3VwcG9ydC5jCitJbmRleDogZ2RiLTgu MC9nZGIvY29tcGlsZS9jb21waWxlLWMtc3VwcG9ydC5jCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcu OTkuOTAuMjAxNzA0MjAub3JpZy9nZGIvY29tcGlsZS9jb21waWxlLWMtc3VwcG9ydC5jCTIwMTct MDQtMjAgMjM6MDg6NTQuMTg5Mzk0OTM2ICswMjAwCi0rKysgZ2RiLTcuOTkuOTAuMjAxNzA0MjAv Z2RiL2NvbXBpbGUvY29tcGlsZS1jLXN1cHBvcnQuYwkyMDE3LTA0LTIwIDIzOjA4OjU3LjAwMTQx MDc4MSArMDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvY29tcGlsZS9jb21waWxlLWMtc3VwcG9y dC5jCTIwMTctMDgtMTkgMjA6MDQ6NTkuODI0NzgwODY2ICswMjAwCisrKysgZ2RiLTguMC9nZGIv Y29tcGlsZS9jb21waWxlLWMtc3VwcG9ydC5jCTIwMTctMDgtMTkgMjA6MDU6MTAuMDkzODc2OTM1 ICswMjAwCiBAQCAtMzA5LDExICszMDksMTEgQEAKICAKICAJICAgICAgZGVmYXVsdDoKQEAgLTMy NjUsMTAgKzMyMjIsMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9jb21waWxl L2NvbXBpbGUtYy1zdXBwb3J0LmMKICAJICAgICAgfQogIAkgICAgZnB1dHNfdW5maWx0ZXJlZCAo IjtcbiIsIHN0cmVhbSk7CiAgCi1JbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL25hdC94 ODYtZHJlZ3MuaAorSW5kZXg6IGdkYi04LjAvZ2RiL25hdC94ODYtZHJlZ3MuaAogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03Ljk5LjkwLjIwMTcwNDIwLm9yaWcvZ2RiL25hdC94ODYtZHJlZ3MuaAkyMDE3 LTA0LTIwIDIzOjA4OjU0LjE5MDM5NDk0MiArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIw L2dkYi9uYXQveDg2LWRyZWdzLmgJMjAxNy0wNC0yMCAyMzowODo1Ny4wMDE0MTA3ODEgKzAyMDAK Ky0tLSBnZGItOC4wLm9yaWcvZ2RiL25hdC94ODYtZHJlZ3MuaAkyMDE3LTA4LTE5IDIwOjA0OjU5 LjgyNDc4MDg2NiArMDIwMAorKysrIGdkYi04LjAvZ2RiL25hdC94ODYtZHJlZ3MuaAkyMDE3LTA4 LTE5IDIwOjA1OjEwLjA5NDg3Njk0NCArMDIwMAogQEAgLTExNiw3ICsxMTYsNyBAQAogIC8qIFJl dHVybiBub24temVybyBpZiB3ZSBjYW4gd2F0Y2ggYSBtZW1vcnkgcmVnaW9uIHRoYXQgc3RhcnRz IGF0CiAgICAgYWRkcmVzcyBBRERSIGFuZCB3aG9zZSBsZW5ndGggaXMgTEVOIGJ5dGVzLiAgKi8K QEAgLTMyNzgsMTAgKzMyMzUsMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9u YXQveDg2LWRyZWdzLmgKICAKICAvKiBJZiB0aGUgaW5mZXJpb3IgaGFzIHNvbWUgYnJlYWsvd2F0 Y2hwb2ludCB0aGF0IHRyaWdnZXJlZCwgc2V0IHRoZQogICAgIGFkZHJlc3MgYXNzb2NpYXRlZCB3 aXRoIHRoYXQgYnJlYWsvd2F0Y2hwb2ludCBhbmQgcmV0dXJuIHRydWUuCi1JbmRleDogZ2RiLTcu OTkuOTAuMjAxNzA0MjAvZ2RiL3g4Ni1uYXQuYworSW5kZXg6IGdkYi04LjAvZ2RiL3g4Ni1uYXQu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5LjkwLjIwMTcwNDIwLm9yaWcvZ2RiL3g4Ni1uYXQu YwkyMDE3LTA0LTIwIDIzOjA4OjU0LjE5MDM5NDk0MiArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIw MTcwNDIwL2dkYi94ODYtbmF0LmMJMjAxNy0wNC0yMCAyMzowODo1Ny4wMDE0MTA3ODEgKzAyMDAK Ky0tLSBnZGItOC4wLm9yaWcvZ2RiL3g4Ni1uYXQuYwkyMDE3LTA4LTE5IDIwOjA0OjU5LjgyNDc4 MDg2NiArMDIwMAorKysrIGdkYi04LjAvZ2RiL3g4Ni1uYXQuYwkyMDE3LTA4LTE5IDIwOjA1OjEw LjA5NDg3Njk0NCArMDIwMAogQEAgLTE3NCw3ICsxNzQsNyBAQAogIAogIHN0YXRpYyBpbnQKQEAg LTMyOTEsMTAgKzMyNDgsMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi94ODYt bmF0LmMKICB7CiAgICBzdHJ1Y3QgeDg2X2RlYnVnX3JlZ19zdGF0ZSAqc3RhdGUKICAgICAgPSB4 ODZfZGVidWdfcmVnX3N0YXRlIChwdGlkX2dldF9waWQgKGluZmVyaW9yX3B0aWQpKTsKLUluZGV4 OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvcnVzdC1sYW5nLmMKK0luZGV4OiBnZGItOC4wL2dk Yi9ydXN0LWxhbmcuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5LjkwLjIwMTcwNDIwLm9yaWcv Z2RiL3J1c3QtbGFuZy5jCTIwMTctMDQtMjAgMjM6MDg6NTQuMTkwMzk0OTQyICswMjAwCi0rKysg Z2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3J1c3QtbGFuZy5jCTIwMTctMDQtMjAgMjM6MDg6NTcu MDAyNDEwNzg3ICswMjAwCistLS0gZ2RiLTguMC5vcmlnL2dkYi9ydXN0LWxhbmcuYwkyMDE3LTA4 LTE5IDIwOjA0OjU5LjgyNDc4MDg2NiArMDIwMAorKysrIGdkYi04LjAvZ2RiL3J1c3QtbGFuZy5j CTIwMTctMDgtMTkgMjA6MDU6MTAuMDk0ODc2OTQ0ICswMjAwCiBAQCAtNDM5LDcgKzQzOSw3IEBA CiAgCiAgc3RhdGljIHZvaWQKQEAgLTMzMTMsMTAgKzMyNzAsMTAgQEAgSW5kZXg6IGdkYi03Ljk5 LjkwLjIwMTcwNDIwL2dkYi9ydXN0LWxhbmcuYwogIAkJQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVj dCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJc3RydWN0IHZhbHVlICp2YWwsCiAg CQljb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykKLUluZGV4OiBnZGIt Ny45OS45MC4yMDE3MDQyMC9nZGIvYXJjaC11dGlscy5jCitJbmRleDogZ2RiLTguMC9nZGIvYXJj aC11dGlscy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAub3JpZy9nZGIv YXJjaC11dGlscy5jCTIwMTctMDQtMjAgMjM6MDg6NTQuMTkxMzk0OTQ3ICswMjAwCi0rKysgZ2Ri LTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2FyY2gtdXRpbHMuYwkyMDE3LTA0LTIwIDIzOjA4OjU3LjAw MjQxMDc4NyArMDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvYXJjaC11dGlscy5jCTIwMTctMDgt MTkgMjA6MDQ6NTkuODI1NzgwODc1ICswMjAwCisrKysgZ2RiLTguMC9nZGIvYXJjaC11dGlscy5j CTIwMTctMDgtMTkgMjA6MDU6MTAuMDk1ODc2OTUzICswMjAwCiBAQCAtMjQ3LDcgKzI0Nyw3IEBA CiAgCiAgY29uc3Qgc3RydWN0IGZsb2F0Zm9ybWF0ICoqCkBAIC0zMzI2LDEwICszMjgzLDEwIEBA IEluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvYXJjaC11dGlscy5jCiAgewogICAgY29u c3Qgc3RydWN0IGZsb2F0Zm9ybWF0ICoqZm9ybWF0ID0gTlVMTDsKICAKLUluZGV4OiBnZGItNy45 OS45MC4yMDE3MDQyMC9nZGIvYXJjaC11dGlscy5oCitJbmRleDogZ2RiLTguMC9nZGIvYXJjaC11 dGlscy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAub3JpZy9nZGIvYXJj aC11dGlscy5oCTIwMTctMDQtMjAgMjM6MDg6NTQuMTkxMzk0OTQ3ICswMjAwCi0rKysgZ2RiLTcu OTkuOTAuMjAxNzA0MjAvZ2RiL2FyY2gtdXRpbHMuaAkyMDE3LTA0LTIwIDIzOjA4OjU3LjAwMjQx MDc4NyArMDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvYXJjaC11dGlscy5oCTIwMTctMDgtMTkg MjA6MDQ6NTkuODI1NzgwODc1ICswMjAwCisrKysgZ2RiLTguMC9nZGIvYXJjaC11dGlscy5oCTIw MTctMDgtMTkgMjA6MDU6MTAuMDk1ODc2OTUzICswMjAwCiBAQCAtMTQ0LDcgKzE0NCw3IEBACiAg LyogRGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiBnZGJhcmNoX2Zsb2F0Zm9ybWF0X2Zvcl90eXBl LiAgKi8KICBleHRlcm4gY29uc3Qgc3RydWN0IGZsb2F0Zm9ybWF0ICoqCkBAIC0zMzM5LDEwICsz Mjk2LDEwIEBAIEluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvYXJjaC11dGlscy5oCiAg CiAgZXh0ZXJuIENPUkVfQUREUiBnZW5lcmljX3NraXBfdHJhbXBvbGluZV9jb2RlIChzdHJ1Y3Qg ZnJhbWVfaW5mbyAqZnJhbWUsCiAgCQkJCQkgICAgICAgQ09SRV9BRERSIHBjKTsKLUluZGV4OiBn ZGItNy45OS45MC4yMDE3MDQyMC9nZGIvZmluZGNtZC5jCitJbmRleDogZ2RiLTguMC9nZGIvZmlu ZGNtZC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAub3JpZy9nZGIvZmlu ZGNtZC5jCTIwMTctMDQtMjAgMjM6MDg6NTQuMTkxMzk0OTQ3ICswMjAwCi0rKysgZ2RiLTcuOTku OTAuMjAxNzA0MjAvZ2RiL2ZpbmRjbWQuYwkyMDE3LTA0LTIwIDIzOjA4OjU3LjAwMjQxMDc4NyAr MDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvZmluZGNtZC5jCTIwMTctMDgtMTkgMjA6MDQ6NTku ODI1NzgwODc1ICswMjAwCisrKysgZ2RiLTguMC9nZGIvZmluZGNtZC5jCTIwMTctMDgtMTkgMjA6 MDU6MTAuMDk1ODc2OTUzICswMjAwCiBAQCAtMTgwLDcgKzE4MCw3IEBACiAgCSBuZWVkIHRvIGdy b3cgdGhlIHBhdHRlcm4gYnVmLiAgKi8KICAgICAgICBwYXR0ZXJuX2J1Zl9zaXplX25lZWQgPSAo cGF0dGVybl9idWZfZW5kIC0gcGF0dGVybl9idWYKQEAgLTMzNTIsMTAgKzMzMDksMTAgQEAgSW5k ZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9maW5kY21kLmMKICAgICAgICBpZiAocGF0dGVy bl9idWZfc2l6ZV9uZWVkID4gcGF0dGVybl9idWZfc2l6ZSkKICAJewogIAkgIHNpemVfdCBjdXJy ZW50X29mZnNldCA9IHBhdHRlcm5fYnVmX2VuZCAtIHBhdHRlcm5fYnVmOwotSW5kZXg6IGdkYi03 Ljk5LjkwLjIwMTcwNDIwL2dkYi9nZGJhcmNoLmMKK0luZGV4OiBnZGItOC4wL2dkYi9nZGJhcmNo LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45OS45MC4yMDE3MDQyMC5vcmlnL2dkYi9nZGJhcmNo LmMJMjAxNy0wNC0yMCAyMzowODo1NC4xOTIzOTQ5NTMgKzAyMDAKLSsrKyBnZGItNy45OS45MC4y MDE3MDQyMC9nZGIvZ2RiYXJjaC5jCTIwMTctMDQtMjAgMjM6MDg6NTcuMDAzNDEwNzkyICswMjAw CistLS0gZ2RiLTguMC5vcmlnL2dkYi9nZGJhcmNoLmMJMjAxNy0wOC0xOSAyMDowNDo1OS44MjY3 ODA4ODUgKzAyMDAKKysrKyBnZGItOC4wL2dkYi9nZGJhcmNoLmMJMjAxNy0wOC0xOSAyMDowNTox MC4wOTY4NzY5NjMgKzAyMDAKIEBAIC0xODA2LDcgKzE4MDYsNyBAQAogIH0KICAKQEAgLTMzNjUs MTAgKzMzMjIsMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9nZGJhcmNoLmMK ICB7CiAgICBnZGJfYXNzZXJ0IChnZGJhcmNoICE9IE5VTEwpOwogICAgZ2RiX2Fzc2VydCAoZ2Ri YXJjaC0+ZmxvYXRmb3JtYXRfZm9yX3R5cGUgIT0gTlVMTCk7Ci1JbmRleDogZ2RiLTcuOTkuOTAu MjAxNzA0MjAvZ2RiL2dkYmFyY2guaAorSW5kZXg6IGdkYi04LjAvZ2RiL2dkYmFyY2guaAogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03Ljk5LjkwLjIwMTcwNDIwLm9yaWcvZ2RiL2dkYmFyY2guaAkyMDE3 LTA0LTIwIDIzOjA4OjU0LjE5MjM5NDk1MyArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIw L2dkYi9nZGJhcmNoLmgJMjAxNy0wNC0yMCAyMzowODo1Ny4wMDQ0MTA3OTggKzAyMDAKKy0tLSBn ZGItOC4wLm9yaWcvZ2RiL2dkYmFyY2guaAkyMDE3LTA4LTE5IDIwOjA0OjU5LjgyNjc4MDg4NSAr MDIwMAorKysrIGdkYi04LjAvZ2RiL2dkYmFyY2guaAkyMDE3LTA4LTE5IDIwOjA1OjEwLjA5Njg3 Njk2MyArMDIwMAogQEAgLTIwMyw4ICsyMDMsOCBAQAogICAgIE5BTUUsIGlmIG5vbi1OVUxMLCBp cyB0aGUgdHlwZSBuYW1lLCB3aGljaCBtYXkgYmUgdXNlZCB0byBkaXN0aW5ndWlzaAogICAgIGRp ZmZlcmVudCB0YXJnZXQgZm9ybWF0cyBvZiB0aGUgc2FtZSBsZW5ndGguICovCkBAIC0zMzgwLDEw ICszMzM3LDEwIEBAIEluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvZ2RiYXJjaC5oCiAg ZXh0ZXJuIHZvaWQgc2V0X2dkYmFyY2hfZmxvYXRmb3JtYXRfZm9yX3R5cGUgKHN0cnVjdCBnZGJh cmNoICpnZGJhcmNoLCBnZGJhcmNoX2Zsb2F0Zm9ybWF0X2Zvcl90eXBlX2Z0eXBlICpmbG9hdGZv cm1hdF9mb3JfdHlwZSk7CiAgCiAgLyogRm9yIG1vc3QgdGFyZ2V0cywgYSBwb2ludGVyIG9uIHRo ZSB0YXJnZXQgYW5kIGl0cyByZXByZXNlbnRhdGlvbiBhcyBhbgotSW5kZXg6IGdkYi03Ljk5Ljkw LjIwMTcwNDIwL2dkYi9nZGJhcmNoLnNoCitJbmRleDogZ2RiLTguMC9nZGIvZ2RiYXJjaC5zaAog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03Ljk5LjkwLjIwMTcwNDIwLm9yaWcvZ2RiL2dkYmFyY2guc2gJ MjAxNy0wNC0yMCAyMzowODo1NC4xOTMzOTQ5NTggKzAyMDAKLSsrKyBnZGItNy45OS45MC4yMDE3 MDQyMC9nZGIvZ2RiYXJjaC5zaAkyMDE3LTA0LTIwIDIzOjA4OjU3LjAwNDQxMDc5OCArMDIwMAor LS0tIGdkYi04LjAub3JpZy9nZGIvZ2RiYXJjaC5zaAkyMDE3LTA4LTE5IDIwOjA0OjU5LjgyNzc4 MDg5NCArMDIwMAorKysrIGdkYi04LjAvZ2RiL2dkYmFyY2guc2gJMjAxNy0wOC0xOSAyMDowNTox MC4wOTc4NzY5NzIgKzAyMDAKIEBAIC0zOTIsNyArMzkyLDcgQEAKICAjIFJldHVybnMgdGhlIGZs b2F0aW5nLXBvaW50IGZvcm1hdCB0byBiZSB1c2VkIGZvciB2YWx1ZXMgb2YgbGVuZ3RoIExFTkdU SC4KICAjIE5BTUUsIGlmIG5vbi1OVUxMLCBpcyB0aGUgdHlwZSBuYW1lLCB3aGljaCBtYXkgYmUg dXNlZCB0byBkaXN0aW5ndWlzaApAQCAtMzM5MywxMCArMzM1MCwxMCBAQCBJbmRleDogZ2RiLTcu OTkuOTAuMjAxNzA0MjAvZ2RiL2dkYmFyY2guc2gKICAKICAjIEZvciBtb3N0IHRhcmdldHMsIGEg cG9pbnRlciBvbiB0aGUgdGFyZ2V0IGFuZCBpdHMgcmVwcmVzZW50YXRpb24gYXMgYW4KICAjIGFk ZHJlc3MgaW4gR0RCIGhhdmUgdGhlIHNhbWUgc2l6ZSBhbmQgImxvb2sgdGhlIHNhbWUiLiAgRm9y IHN1Y2ggYQotSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9pMzg2LXRkZXAuYworSW5k ZXg6IGdkYi04LjAvZ2RiL2kzODYtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOTkuOTAu MjAxNzA0MjAub3JpZy9nZGIvaTM4Ni10ZGVwLmMJMjAxNy0wNC0yMCAyMzowODo1NC4xOTQzOTQ5 NjQgKzAyMDAKLSsrKyBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvaTM4Ni10ZGVwLmMJMjAxNy0w NC0yMCAyMzowODo1Ny4wMDU0MTA4MDQgKzAyMDAKKy0tLSBnZGItOC4wLm9yaWcvZ2RiL2kzODYt dGRlcC5jCTIwMTctMDgtMTkgMjA6MDQ6NTkuODI4NzgwOTAzICswMjAwCisrKysgZ2RiLTguMC9n ZGIvaTM4Ni10ZGVwLmMJMjAxNy0wOC0xOSAyMDowNToxMC4wOTg4NzY5ODIgKzAyMDAKIEBAIC04 MTgwLDcgKzgxODAsNyBAQAogIAogIGNvbnN0IHN0cnVjdCBmbG9hdGZvcm1hdCAqKgpAQCAtMzQw NiwxMCArMzM2MywxMCBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2kzODYtdGRl cC5jCiAgewogICAgaWYgKGxlbiA9PSAxMjggJiYgbmFtZSkKICAgICAgaWYgKHN0cmNtcCAobmFt ZSwgIl9fZmxvYXQxMjgiKSA9PSAwCi1JbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3Bw Yy1saW51eC10ZGVwLmMKK0luZGV4OiBnZGItOC4wL2dkYi9wcGMtbGludXgtdGRlcC5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAub3JpZy9nZGIvcHBjLWxpbnV4LXRkZXAu YwkyMDE3LTA0LTIwIDIzOjA4OjU0LjE5NTM5NDk3MCArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIw MTcwNDIwL2dkYi9wcGMtbGludXgtdGRlcC5jCTIwMTctMDQtMjAgMjM6MDg6NTcuMDA2NDEwODA5 ICswMjAwCistLS0gZ2RiLTguMC5vcmlnL2dkYi9wcGMtbGludXgtdGRlcC5jCTIwMTctMDgtMTkg MjA6MDQ6NTkuODI5NzgwOTEzICswMjAwCisrKysgZ2RiLTguMC9nZGIvcHBjLWxpbnV4LXRkZXAu YwkyMDE3LTA4LTE5IDIwOjA1OjEwLjA5ODg3Njk4MiArMDIwMAogQEAgLTE2MzIsNyArMTYzMiw3 IEBACiAgCiAgY29uc3Qgc3RydWN0IGZsb2F0Zm9ybWF0ICoqCkBAIC0zNDE5LDEwICszMzc2LDEw IEBAIEluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvcHBjLWxpbnV4LXRkZXAuYwogIHsK ICAgIGlmIChsZW4gPT0gMTI4ICYmIG5hbWUpCiAgICAgIGlmIChzdHJjbXAgKG5hbWUsICJfX2Zs b2F0MTI4IikgPT0gMAotSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi90cmFjZXBvaW50 LmgKK0luZGV4OiBnZGItOC4wL2dkYi90cmFjZXBvaW50LmgKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny45OS45MC4yMDE3MDQyMC5vcmlnL2dkYi90cmFjZXBvaW50LmgJMjAxNy0wNC0yMCAyMzowODo1 NC4xOTUzOTQ5NzAgKzAyMDAKLSsrKyBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvdHJhY2Vwb2lu dC5oCTIwMTctMDQtMjAgMjM6MDg6NTcuMDA2NDEwODA5ICswMjAwCistLS0gZ2RiLTguMC5vcmln L2dkYi90cmFjZXBvaW50LmgJMjAxNy0wOC0xOSAyMDowNDo1OS44Mjk3ODA5MTMgKzAyMDAKKysr KyBnZGItOC4wL2dkYi90cmFjZXBvaW50LmgJMjAxNy0wOC0xOSAyMDowNToxMC4wOTk4NzY5OTEg KzAyMDAKIEBAIC0yNTQsNyArMjU0LDcgQEAKICAgIHZvaWQgYWRkX3JlZ2lzdGVyICh1bnNpZ25l ZCBpbnQgcmVnbm8pOwogICAgdm9pZCBhZGRfbWVtcmFuZ2UgKHN0cnVjdCBnZGJhcmNoICpnZGJh cmNoLAoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yMW9mMjUucGF0Y2ggYi9n ZGItcmhiejc5NTQyNC1iaXRwb3MtMjFvZjI1LnBhdGNoCmluZGV4IDBmYTdlYWQuLjRlZTdiMjUg MTAwNjQ0Ci0tLSBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yMW9mMjUucGF0Y2gKKysrIGIvZ2Ri LXJoYno3OTU0MjQtYml0cG9zLTIxb2YyNS5wYXRjaApAQCAtNTIsMTEgKzUyLDExIEBAIENvbnRl bnQtVHlwZTogdGV4dC94LXBhdGNoCiBDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CiBD b250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1iaXRwb3MtZW5zdXJlLXNp emVfdC5wYXRjaAogCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2FscGhhLXRkZXAu YworSW5kZXg6IGdkYi04LjAvZ2RiL2FscGhhLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjEwLjkwLjIwMTYwMjExLm9yaWcvZ2RiL2FscGhhLXRkZXAuYwkyMDE2LTAyLTExIDIwOjU2OjU5 LjIyNDg1MDcyOSArMDEwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9hbHBoYS10ZGVw LmMJMjAxNi0wMi0xMSAyMDo1NzowNS4zODU4OTEyMjUgKzAxMDAKLUBAIC00MTMsNiArNDEzLDEz IEBACistLS0gZ2RiLTguMC5vcmlnL2dkYi9hbHBoYS10ZGVwLmMJMjAxNy0wOC0xOSAyMDowNzo0 NS40NjkzMzA0OTYgKzAyMDAKKysrKyBnZGItOC4wL2dkYi9hbHBoYS10ZGVwLmMJMjAxNy0wOC0x OSAyMDowNzo1MC42NzAzNzkxNTIgKzAyMDAKK0BAIC00MTQsNiArNDE0LDEzIEBACiAgICAgIGFj Y3VtdWxhdGVfc2l6ZSA9IDA7CiAgICBlbHNlCiAgICAgIGFjY3VtdWxhdGVfc2l6ZSAtPSBzaXpl b2YoYXJnX3JlZ19idWZmZXIpOwpAQCAtNzAsMTEgKzcwLDExIEBAIEluZGV4OiBnZGItNy4xMC45 MC4yMDE2MDIxMS9nZGIvYWxwaGEtdGRlcC5jCiAgICBzcCAtPSBhY2N1bXVsYXRlX3NpemU7CiAg CiAgICAvKiBLZWVwIHNwIGFsaWduZWQgdG8gYSBtdWx0aXBsZSBvZiAxNiBhcyB0aGUgQUJJIHJl cXVpcmVzLiAgKi8KLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvY3AtdmFscHJpbnQu YworSW5kZXg6IGdkYi04LjAvZ2RiL2NwLXZhbHByaW50LmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny4xMC45MC4yMDE2MDIxMS5vcmlnL2dkYi9jcC12YWxwcmludC5jCTIwMTYtMDItMTEgMjA6NTY6 NTkuMjI0ODUwNzI5ICswMTAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2NwLXZhbHBy aW50LmMJMjAxNi0wMi0xMSAyMDo1NzowNS4zODU4OTEyMjUgKzAxMDAKLUBAIC01MzYsNiArNTM2 LDggQEAKKy0tLSBnZGItOC4wLm9yaWcvZ2RiL2NwLXZhbHByaW50LmMJMjAxNy0wOC0xOSAyMDow Nzo0NS40NzAzMzA1MDUgKzAyMDAKKysrKyBnZGItOC4wL2dkYi9jcC12YWxwcmludC5jCTIwMTct MDgtMTkgMjA6MDc6NTAuNjcwMzc5MTUyICswMjAwCitAQCAtNTM3LDYgKzUzNyw4IEBACiAgCQkg IGdkYl9ieXRlICpidWY7CiAgCQkgIHN0cnVjdCBjbGVhbnVwICpiYWNrX3RvOwogIApAQCAtODMs MzIgKzgzLDExIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvY3AtdmFscHJpbnQu YwogIAkJICBidWYgPSAoZ2RiX2J5dGUgKikgeG1hbGxvYyAoVFlQRV9MRU5HVEggKGJhc2VjbGFz cykpOwogIAkJICBiYWNrX3RvID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwgYnVmKTsKICAKLUluZGV4 OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvZHdhcmYybG9jLmMKK0luZGV4OiBnZGItOC4wL2dk Yi9maW5kY21kLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC45MC4yMDE2MDIxMS5vcmlnL2dk Yi9kd2FyZjJsb2MuYwkyMDE2LTAyLTExIDIwOjU2OjU5LjIyNTg1MDczNiArMDEwMAotKysrIGdk Yi03LjEwLjkwLjIwMTYwMjExL2dkYi9kd2FyZjJsb2MuYwkyMDE2LTAyLTExIDIwOjU3OjA1LjM4 Njg5MTIzMSArMDEwMAotQEAgLTE3NDQsNiArMTc0NCw4IEBACi0gCi0gICAgICAgdGhpc19zaXpl ID0gKHRoaXNfc2l6ZV9iaXRzICsgc291cmNlX29mZnNldF9iaXRzICUgOCArIDcpIC8gODsKLSAg ICAgICBzb3VyY2Vfb2Zmc2V0ID0gc291cmNlX29mZnNldF9iaXRzIC8gODsKLSsgICAgICB1bG9u Z2VzdF9maXRzX2hvc3Rfb3JfZXJyb3IgKHRoaXNfc2l6ZSk7Ci0rCi0gICAgICAgaWYgKGJ1ZmZl cl9zaXplIDwgdGhpc19zaXplKQotIAl7Ci0gCSAgYnVmZmVyX3NpemUgPSB0aGlzX3NpemU7Ci1A QCAtMTkyNiw2ICsxOTI4LDcgQEAKLSAJfQotICAgICAgIGVsc2UKLSAJewotKwkgIHVsb25nZXN0 X2ZpdHNfaG9zdF9vcl9lcnJvciAodGhpc19zaXplKTsKLSAJICBpZiAoYnVmZmVyX3NpemUgPCB0 aGlzX3NpemUpCi0gCSAgICB7Ci0gCSAgICAgIGJ1ZmZlcl9zaXplID0gdGhpc19zaXplOwotSW5k ZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9maW5kY21kLmMKLT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy4xMC45MC4yMDE2MDIxMS5vcmlnL2dkYi9maW5kY21kLmMJMjAxNi0wMi0xMSAyMDo1Njo1 OS4yMjY4NTA3NDIgKzAxMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvZmluZGNtZC5j CTIwMTYtMDItMTEgMjA6NTc6MDUuMzg3ODkxMjM4ICswMTAwCi1AQCAtMTg0LDYgKzE4NCw3IEBA CistLS0gZ2RiLTguMC5vcmlnL2dkYi9maW5kY21kLmMJMjAxNy0wOC0xOSAyMDowNzo0NS40NzIz MzA1MjQgKzAyMDAKKysrKyBnZGItOC4wL2dkYi9maW5kY21kLmMJMjAxNy0wOC0xOSAyMDowNzo1 MC42NzIzNzkxNzEgKzAyMDAKK0BAIC0xODYsNiArMTg2LDcgQEAKICAJICBzaXplX3QgY3VycmVu dF9vZmZzZXQgPSBwYXR0ZXJuX2J1Zl9lbmQgLSBwYXR0ZXJuX2J1ZjsKICAKICAJICBwYXR0ZXJu X2J1Zl9zaXplID0gcGF0dGVybl9idWZfc2l6ZV9uZWVkICogMjsKQEAgLTExNiwxMSArOTUsMTEg QEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9maW5kY21kLmMKICAJICBwYXR0ZXJu X2J1ZiA9IChnZGJfYnl0ZSAqKSB4cmVhbGxvYyAocGF0dGVybl9idWYsIHBhdHRlcm5fYnVmX3Np emUpOwogIAkgIHBhdHRlcm5fYnVmX2VuZCA9IHBhdHRlcm5fYnVmICsgY3VycmVudF9vZmZzZXQ7 CiAgCX0KLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvcC12YWxwcmludC5jCitJbmRl eDogZ2RiLTguMC9nZGIvcC12YWxwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAu MjAxNjAyMTEub3JpZy9nZGIvcC12YWxwcmludC5jCTIwMTYtMDItMTEgMjA6NTY6NTkuMjI2ODUw NzQyICswMTAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3AtdmFscHJpbnQuYwkyMDE2 LTAyLTExIDIwOjU3OjA1LjM4Nzg5MTIzOCArMDEwMAotQEAgLTc2OSw2ICs3NjksNyBAQAorLS0t IGdkYi04LjAub3JpZy9nZGIvcC12YWxwcmludC5jCTIwMTctMDgtMTkgMjA6MDc6NDUuNDcyMzMw NTI0ICswMjAwCisrKysgZ2RiLTguMC9nZGIvcC12YWxwcmludC5jCTIwMTctMDgtMTkgMjA6MDc6 NTAuNjczMzc5MTgwICswMjAwCitAQCAtNzcyLDYgKzc3Miw3IEBACiAgCSAgICAgIGdkYl9ieXRl ICpidWY7CiAgCSAgICAgIHN0cnVjdCBjbGVhbnVwICpiYWNrX3RvOwogIApAQCAtMTI4LDExICsx MDcsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9wLXZhbHByaW50LmMKICAJ ICAgICAgYnVmID0gKGdkYl9ieXRlICopIHhtYWxsb2MgKFRZUEVfTEVOR1RIIChiYXNlY2xhc3Mp KTsKICAJICAgICAgYmFja190byA9IG1ha2VfY2xlYW51cCAoeGZyZWUsIGJ1Zik7CiAgCi1JbmRl eDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3V0aWxzLmMKK0luZGV4OiBnZGItOC4wL2dkYi91 dGlscy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAuMjAxNjAyMTEub3JpZy9nZGIvdXRp bHMuYwkyMDE2LTAyLTExIDIwOjU2OjU5LjIyNzg1MDc0OSArMDEwMAotKysrIGdkYi03LjEwLjkw LjIwMTYwMjExL2dkYi91dGlscy5jCTIwMTYtMDItMTEgMjA6NTc6MDUuMzg4ODkxMjQ0ICswMTAw Ci1AQCAtMjgzNyw2ICsyODM3LDE4IEBACistLS0gZ2RiLTguMC5vcmlnL2dkYi91dGlscy5jCTIw MTctMDgtMTkgMjA6MDc6NDUuNDczMzMwNTMzICswMjAwCisrKysgZ2RiLTguMC9nZGIvdXRpbHMu YwkyMDE3LTA4LTE5IDIwOjA3OjUwLjY3MzM3OTE4MCArMDIwMAorQEAgLTI3NzYsNiArMjc3Niwx OCBAQAogICAgcmV0dXJuIGFkZHI7CiAgfQogIApAQCAtMTUxLDExICsxMzAsMTEgQEAgSW5kZXg6 IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi91dGlscy5jCiAgY2hhciAqCiAgZ2RiX3JlYWxwYXRo IChjb25zdCBjaGFyICpmaWxlbmFtZSkKICB7Ci1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEv Z2RiL3ZhbG9wcy5jCitJbmRleDogZ2RiLTguMC9nZGIvdmFsb3BzLmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy4xMC45MC4yMDE2MDIxMS5vcmlnL2dkYi92YWxvcHMuYwkyMDE2LTAyLTExIDIwOjU2 OjU5LjIyODg1MDc1NSArMDEwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi92YWxvcHMu YwkyMDE2LTAyLTExIDIwOjU3OjA1LjM4OTg5MTI1MSArMDEwMAotQEAgLTIwNTcsNiArMjA1Nyw3 IEBACistLS0gZ2RiLTguMC5vcmlnL2dkYi92YWxvcHMuYwkyMDE3LTA4LTE5IDIwOjA3OjQ1LjQ3 NDMzMDU0MiArMDIwMAorKysrIGdkYi04LjAvZ2RiL3ZhbG9wcy5jCTIwMTctMDgtMTkgMjA6MDc6 NTAuNjc0Mzc5MTkwICswMjAwCitAQCAtMjEwMCw2ICsyMTAwLDcgQEAKICAJICAgICAgc3RydWN0 IGNsZWFudXAgKmJhY2tfdG87CiAgCSAgICAgIENPUkVfQUREUiBhZGRyZXNzOwogIApAQCAtMTYz LDExICsxNDIsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi92YWxvcHMuYwog IAkgICAgICB0bXAgPSAoZ2RiX2J5dGUgKikgeG1hbGxvYyAoVFlQRV9MRU5HVEggKGJhc2VjbGFz cykpOwogIAkgICAgICBiYWNrX3RvID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwgdG1wKTsKICAJICAg ICAgYWRkcmVzcyA9IHZhbHVlX2FkZHJlc3MgKCphcmcxcCk7Ci1JbmRleDogZ2RiLTcuMTAuOTAu MjAxNjAyMTEvZ2RiL3ZhbHVlLmMKK0luZGV4OiBnZGItOC4wL2dkYi92YWx1ZS5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuMTAuOTAuMjAxNjAyMTEub3JpZy9nZGIvdmFsdWUuYwkyMDE2LTAyLTEx IDIwOjU2OjU5LjIyOTg1MDc2MiArMDEwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi92 YWx1ZS5jCTIwMTYtMDItMTEgMjA6NTg6MzUuMDk1NDgwODc3ICswMTAwCi1AQCAtOTM1LDYgKzkz NSw3IEBACistLS0gZ2RiLTguMC5vcmlnL2dkYi92YWx1ZS5jCTIwMTctMDgtMTkgMjA6MDc6NDUu NDc2MzMwNTYxICswMjAwCisrKysgZ2RiLTguMC9nZGIvdmFsdWUuYwkyMDE3LTA4LTE5IDIwOjA3 OjUwLjY3NTM3OTE5OSArMDIwMAorQEAgLTkzNiw2ICs5MzYsNyBAQAogICAgICAgZGVzY3JpcHRp b24gY29ycmVjdGx5LiAgKi8KICAgIGNoZWNrX3R5cGVkZWYgKHR5cGUpOwogIApAQCAtMTc1LDcg KzE1NCw3IEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdmFsdWUuYwogICAgdmFs ID0gWENORVcgKHN0cnVjdCB2YWx1ZSk7CiAgICB2YWwtPmNvbnRlbnRzID0gTlVMTDsKICAgIHZh bC0+bmV4dCA9IGFsbF92YWx1ZXM7Ci1AQCAtMTAzNCw2ICsxMDM1LDggQEAKK0BAIC0xMDMzLDYg KzEwMzQsOCBAQAogIHN0YXRpYyB2b2lkCiAgYWxsb2NhdGVfdmFsdWVfY29udGVudHMgKHN0cnVj dCB2YWx1ZSAqdmFsKQogIHsKQEAgLTE4NCw3ICsxNjMsNyBAQCBJbmRleDogZ2RiLTcuMTAuOTAu MjAxNjAyMTEvZ2RiL3ZhbHVlLmMKICAgIGlmICghdmFsLT5jb250ZW50cykKICAgICAgewogICAg ICAgIGNoZWNrX3R5cGVfbGVuZ3RoX2JlZm9yZV9hbGxvYyAodmFsLT5lbmNsb3NpbmdfdHlwZSk7 Ci1AQCAtMzA5MCw2ICszMDkzLDcgQEAKK0BAIC0zMDkzLDYgKzMwOTYsNyBAQAogICAgaWYgKFRZ UEVfTEVOR1RIIChuZXdfZW5jbF90eXBlKSA+IFRZUEVfTEVOR1RIICh2YWx1ZV9lbmNsb3Npbmdf dHlwZSAodmFsKSkpCiAgICAgIHsKICAgICAgICBjaGVja190eXBlX2xlbmd0aF9iZWZvcmVfYWxs b2MgKG5ld19lbmNsX3R5cGUpOwpAQCAtMTkyLDEwICsxNzEsMTAgQEAgSW5kZXg6IGdkYi03LjEw LjkwLjIwMTYwMjExL2dkYi92YWx1ZS5jCiAgICAgICAgdmFsLT5jb250ZW50cwogIAk9IChnZGJf Ynl0ZSAqKSB4cmVhbGxvYyAodmFsLT5jb250ZW50cywgVFlQRV9MRU5HVEggKG5ld19lbmNsX3R5 cGUpKTsKICAgICAgfQotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi92YXgtdGRlcC5j CitJbmRleDogZ2RiLTguMC9nZGIvdmF4LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjEw LjkwLjIwMTYwMjExLm9yaWcvZ2RiL3ZheC10ZGVwLmMJMjAxNi0wMi0xMSAyMDo1Njo1OS4yMjk4 NTA3NjIgKzAxMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdmF4LXRkZXAuYwkyMDE2 LTAyLTExIDIwOjU3OjA1LjM5MTg5MTI2NCArMDEwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvdmF4 LXRkZXAuYwkyMDE3LTA4LTE5IDIwOjA3OjQ1LjQ3NjMzMDU2MSArMDIwMAorKysrIGdkYi04LjAv Z2RiL3ZheC10ZGVwLmMJMjAxNy0wOC0xOSAyMDowNzo1MC42NzUzNzkxOTkgKzAyMDAKIEBAIC0y MTksNiArMjE5LDcgQEAKICAJICBVTE9OR0VTVCBhZGRyOwogIApAQCAtMjA0LDExICsxODMsMTEg QEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi92YXgtdGRlcC5jCiAgCSAgcmVhZF9t ZW1vcnkgKGFkZHIsIHJlYWRidWYsIGxlbik7CiAgCX0KICAKLUluZGV4OiBnZGItNy4xMC45MC4y MDE2MDIxMS9nZGIvZGVmcy5oCitJbmRleDogZ2RiLTguMC9nZGIvZGVmcy5oCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuMTAuOTAuMjAxNjAyMTEub3JpZy9nZGIvZGVmcy5oCTIwMTYtMDItMTEgMjA6 NTY6NTkuMjI5ODUwNzYyICswMTAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL2RlZnMu aAkyMDE2LTAyLTExIDIwOjU3OjA1LjM5MTg5MTI2NCArMDEwMAotQEAgLTY5MCw0ICs2OTAsNiBA QAorLS0tIGdkYi04LjAub3JpZy9nZGIvZGVmcy5oCTIwMTctMDgtMTkgMjA6MDc6NDUuNDc2MzMw NTYxICswMjAwCisrKysgZ2RiLTguMC9nZGIvZGVmcy5oCTIwMTctMDgtMTkgMjA6MDc6NTAuNjc2 Mzc5MjA4ICswMjAwCitAQCAtNzUwLDQgKzc1MCw2IEBACiAgCiAgI2luY2x1ZGUgInV0aWxzLmgi CiAgCgpkaWZmIC0tZ2l0IGEvZ2RiLnNwZWMgYi9nZGIuc3BlYwppbmRleCBhMTIzYTQ4Li4yM2M4 ZDRjIDEwMDY0NAotLS0gYS9nZGIuc3BlYworKysgYi9nZGIuc3BlYwpAQCAtMjYsNyArMjYsNyBA QCBWZXJzaW9uOiA4LjAKIAogIyBUaGUgcmVsZWFzZSBhbHdheXMgY29udGFpbnMgYSBsZWFkaW5n IHJlc2VydmVkIG51bWJlciwgc3RhcnQgaXQgYXQgMS4KICMgYHVwc3RyZWFtJyBpcyBub3QgYSBw YXJ0IG9mIGBuYW1lJyB0byBzdGF5IGZ1bGx5IHJwbSBkZXBlbmRlbmNpZXMgY29tcGF0aWJsZSBm b3IgdGhlIHRlc3RpbmcuCi1SZWxlYXNlOiAyMiV7P2Rpc3R9CitSZWxlYXNlOiAyMyV7P2Rpc3R9 CiAKIExpY2Vuc2U6IEdQTHYzKyBhbmQgR1BMdjMrIHdpdGggZXhjZXB0aW9ucyBhbmQgR1BMdjIr IGFuZCBHUEx2Misgd2l0aCBleGNlcHRpb25zIGFuZCBHUEwrIGFuZCBMR1BMdjIrIGFuZCBMR1BM djMrIGFuZCBCU0QgYW5kIFB1YmxpYyBEb21haW4gYW5kIEdGREwKIEdyb3VwOiBEZXZlbG9wbWVu dC9EZWJ1Z2dlcnMKQEAgLTY4OSw2ICs2ODksNDMgQEAgUGF0Y2gxMTU1OiBnZGItcmhiejEzOTgz ODctdGFiLWNyYXNoLXRlc3QucGF0Y2gKICM9cHVzaCtqYW4KIFBhdGNoMTE3MTogdjEuNi4xLWlt cGxpY2l0LWZhbGx0aHJvdWdoLnBhdGNoCiAKKyMgW3MzOTB4XSBCYWNrcG9ydCBhcmNoMTIgc3Vw cG9ydCBhbmQgb3RoZXIgczM5MHggZml4ZXMgKFJIIEJaIDE0MjAzMDQpLgorUGF0Y2gxMjEwOiBn ZGItcmhiejE0MjAzMDQtczM5MHgtMDFvZjM1LnBhdGNoCitQYXRjaDEyMTE6IGdkYi1yaGJ6MTQy MDMwNC1zMzkweC0wMm9mMzUucGF0Y2gKK1BhdGNoMTIxMjogZ2RiLXJoYnoxNDIwMzA0LXMzOTB4 LTAzb2YzNS5wYXRjaAorUGF0Y2gxMjEzOiBnZGItcmhiejE0MjAzMDQtczM5MHgtMDRvZjM1LnBh dGNoCitQYXRjaDEyMTQ6IGdkYi1yaGJ6MTQyMDMwNC1zMzkweC0wNW9mMzUucGF0Y2gKK1BhdGNo MTIxNTogZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTA2b2YzNS5wYXRjaAorUGF0Y2gxMjE2OiBnZGIt cmhiejE0MjAzMDQtczM5MHgtMDdvZjM1LnBhdGNoCitQYXRjaDEyMTc6IGdkYi1yaGJ6MTQyMDMw NC1zMzkweC0wOG9mMzUucGF0Y2gKK1BhdGNoMTIxODogZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTA5 b2YzNS5wYXRjaAorUGF0Y2gxMjE5OiBnZGItcmhiejE0MjAzMDQtczM5MHgtMTBvZjM1LnBhdGNo CitQYXRjaDEyMjA6IGdkYi1yaGJ6MTQyMDMwNC1zMzkweC0xMW9mMzUucGF0Y2gKK1BhdGNoMTIy MTogZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTEyb2YzNS5wYXRjaAorUGF0Y2gxMjIyOiBnZGItcmhi ejE0MjAzMDQtczM5MHgtMTNvZjM1LnBhdGNoCitQYXRjaDEyMjM6IGdkYi1yaGJ6MTQyMDMwNC1z MzkweC0xNG9mMzUucGF0Y2gKK1BhdGNoMTIyNDogZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTE1b2Yz NS5wYXRjaAorUGF0Y2gxMjI1OiBnZGItcmhiejE0MjAzMDQtczM5MHgtMTZvZjM1LnBhdGNoCitQ YXRjaDEyMjY6IGdkYi1yaGJ6MTQyMDMwNC1zMzkweC0xN29mMzUucGF0Y2gKK1BhdGNoMTIyNzog Z2RiLXJoYnoxNDIwMzA0LXMzOTB4LTE4b2YzNS5wYXRjaAorUGF0Y2gxMjI4OiBnZGItcmhiejE0 MjAzMDQtczM5MHgtMTlvZjM1LnBhdGNoCitQYXRjaDEyMjk6IGdkYi1yaGJ6MTQyMDMwNC1zMzkw eC0yMG9mMzUucGF0Y2gKK1BhdGNoMTIzMDogZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTIxb2YzNS5w YXRjaAorUGF0Y2gxMjMxOiBnZGItcmhiejE0MjAzMDQtczM5MHgtMjJvZjM1LnBhdGNoCitQYXRj aDEyMzI6IGdkYi1yaGJ6MTQyMDMwNC1zMzkweC0yM29mMzUucGF0Y2gKK1BhdGNoMTIzMzogZ2Ri LXJoYnoxNDIwMzA0LXMzOTB4LTI0b2YzNS5wYXRjaAorUGF0Y2gxMjM0OiBnZGItcmhiejE0MjAz MDQtczM5MHgtMjVvZjM1LnBhdGNoCitQYXRjaDEyMzU6IGdkYi1yaGJ6MTQyMDMwNC1zMzkweC0y Nm9mMzUucGF0Y2gKK1BhdGNoMTIzNjogZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTI3b2YzNS5wYXRj aAorUGF0Y2gxMjM3OiBnZGItcmhiejE0MjAzMDQtczM5MHgtMjhvZjM1LnBhdGNoCitQYXRjaDEy Mzg6IGdkYi1yaGJ6MTQyMDMwNC1zMzkweC0yOW9mMzUucGF0Y2gKK1BhdGNoMTIzOTogZ2RiLXJo YnoxNDIwMzA0LXMzOTB4LTMwb2YzNS5wYXRjaAorUGF0Y2gxMjQwOiBnZGItcmhiejE0MjAzMDQt czM5MHgtMzFvZjM1LnBhdGNoCitQYXRjaDEyNDE6IGdkYi1yaGJ6MTQyMDMwNC1zMzkweC0zMm9m MzUucGF0Y2gKK1BhdGNoMTI0MjogZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTMzb2YzNS5wYXRjaAor UGF0Y2gxMjQzOiBnZGItcmhiejE0MjAzMDQtczM5MHgtMzRvZjM1LnBhdGNoCitQYXRjaDEyNDQ6 IGdkYi1yaGJ6MTQyMDMwNC1zMzkweC0zNW9mMzUucGF0Y2gKKwogJWlmIDAleyE/cmhlbDoxfSB8 fCAwJXs/cmhlbH0gPiA2CiAjIFJMX1NUQVRFX0ZFRE9SQV9HREIgd291bGQgbm90IGJlIGZvdW5k IGZvcjoKICMgUGF0Y2g2NDI6IGdkYi1yZWFkbGluZTYyLWFzay1tb3JlLXJoLnBhdGNoCkBAIC0x MDEyLDYgKzEwNDksNDEgQEAgZmluZCAtbmFtZSAiKi5pbmZvKiJ8eGFyZ3Mgcm0gLWYKICVwYXRj aDY5MCAtcDEKICVwYXRjaDY5OCAtcDEKICVwYXRjaDcwMyAtcDEKKyVwYXRjaDEyMTAgLXAxCisl cGF0Y2gxMjExIC1wMQorJXBhdGNoMTIxMiAtcDEKKyVwYXRjaDEyMTMgLXAxCislcGF0Y2gxMjE0 IC1wMQorJXBhdGNoMTIxNSAtcDEKKyVwYXRjaDEyMTYgLXAxCislcGF0Y2gxMjE3IC1wMQorJXBh dGNoMTIxOCAtcDEKKyVwYXRjaDEyMTkgLXAxCislcGF0Y2gxMjIwIC1wMQorJXBhdGNoMTIyMSAt cDEKKyVwYXRjaDEyMjIgLXAxCislcGF0Y2gxMjIzIC1wMQorJXBhdGNoMTIyNCAtcDEKKyVwYXRj aDEyMjUgLXAxCislcGF0Y2gxMjI2IC1wMQorJXBhdGNoMTIyNyAtcDEKKyVwYXRjaDEyMjggLXAx CislcGF0Y2gxMjI5IC1wMQorJXBhdGNoMTIzMCAtcDEKKyVwYXRjaDEyMzEgLXAxCislcGF0Y2gx MjMyIC1wMQorJXBhdGNoMTIzMyAtcDEKKyVwYXRjaDEyMzQgLXAxCislcGF0Y2gxMjM1IC1wMQor JXBhdGNoMTIzNiAtcDEKKyVwYXRjaDEyMzcgLXAxCislcGF0Y2gxMjM4IC1wMQorJXBhdGNoMTIz OSAtcDEKKyVwYXRjaDEyNDAgLXAxCislcGF0Y2gxMjQxIC1wMQorJXBhdGNoMTI0MiAtcDEKKyVw YXRjaDEyNDMgLXAxCislcGF0Y2gxMjQ0IC1wMQogJXBhdGNoODExIC1wMQogJXBhdGNoODEyIC1w MQogJXBhdGNoODEzIC1wMQpAQCAtMTY0Myw2ICsxNzE1LDkgQEAgdGhlbgogZmkKIAogJWNoYW5n ZWxvZworKiBTYXQgQXVnIDE5IDIwMTcgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJl ZGhhdC5jb20+IC0gOC4wLTIzLmZjMjYKKy0gW3MzOTB4XSBCYWNrcG9ydCBhcmNoMTIgc3VwcG9y dCBhbmQgb3RoZXIgczM5MHggZml4ZXMgKFJIIEJaIDE0MjAzMDQpLgorCiAqIEZyaSBBdWcgMTgg MjAxNyBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA4LjAtMjIu ZmMyNgogLSBCYWNrcG9ydCBhIGZpeCBmb3IgY2xhbmcgJiYgLWdzcGxpdC1kd2FyZiBkZWJ1Z2dl ZXMgKFJIIEJaIDE0ODI4OTIpLgogCg==