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] gdb-17.2-rebase-f44: [s390x] Backport arch12 support and other s390x fixes (RH BZ 1420304). Date: Sat, 27 Jun 2026 23:58:19 GMT Message-ID: <178260469951.1.666374064619131653.rpms-gdb-4f1de05c3fac@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: gdb-17.2-rebase-f44 X-Git-Rev: 4f1de05c3fac677d47f66cf08f8695ad3f41a168 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2RiCkJyYW5jaCA6 IGdkYi0xNy4yLXJlYmFzZS1mNDQKQ29tbWl0IDogNGYxZGUwNWMzZmFjNjc3ZDQ3ZjY2Y2YwOGY4 Njk1YWQzZjQxYTE2OApBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVk aGF0LmNvbT4KRGF0ZSAgIDogMjAxNy0wOC0xOVQyMjo0MDozMiswMjowMApTdGF0cyAgOiArNDc3 MC8tMzc0IGluIDM4IGZpbGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5v cmcvcnBtcy9nZGIvYy80ZjFkZTA1YzNmYWM2NzdkNDdmNjZjZjA4Zjg2OTVhZDNmNDFhMTY4P2Jy YW5jaD1nZGItMTcuMi1yZWJhc2UtZjQ0CgpMb2c6CltzMzkweF0gQmFja3BvcnQgYXJjaDEyIHN1 cHBvcnQgYW5kIG90aGVyIHMzOTB4IGZpeGVzIChSSCBCWiAxNDIwMzA0KS4KCi0tLQpkaWZmIC0t Z2l0IGEvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTAxb2YzNS5wYXRjaCBiL2dkYi1yaGJ6MTQyMDMw NC1zMzkweC0wMW9mMzUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u MjA2YmRkOQotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0wMW9mMzUu cGF0Y2gKQEAgLTAsMCArMSw2MiBAQAorY29tbWl0IGQ3YWI0OTExZjhhYTNlMWNkMDZlY2U0MGY3 NGQwYjRhNTMyZDZhMTAKK0F1dGhvcjogQW5kcmVhcyBLcmViYmVsIDxrcmViYmVsQGxpbnV4LnZu ZXQuaWJtLmNvbT4KK0RhdGU6ICAgTW9uIE1heSA4IDE5OjEwOjQyIDIwMTcgKzAyMDAKKworICAg IFMvMzkwOiBGaXggaWZ1bmMgbWlzc2luZyBydW50aW1lIHJlbG9jCisgICAgCisgICAgVGhpcyBm aXhlcyBhIHByb2JsZW0gd2l0aCBhIG1pc3NpbmcgUl8zOTBfNjQgcmVsb2MgYWdhaW5zdCAuZGF0 YSBmb3IgYQorICAgIGZ1bmN0aW9uIHBvaW50ZXIgdG8gYW4gaWZ1bmMgZnVuY3Rpb24uCisgICAg CisgICAgTm8gcmVncmVzc2lvbnMgb24gczM5MHguCisgICAgCisgICAgUHVzaGVkIHRvIG1haW5s aW5lLgorICAgIAorICAgIGJmZC9DaGFuZ2VMb2c6CisgICAgCisgICAgMjAxNy0wNS0wOCAgQW5k cmVhcyBLcmViYmVsICA8a3JlYmJlbEBsaW51eC52bmV0LmlibS5jb20+CisgICAgCisgICAgICAg ICAgICAqIGVsZi1zMzkwLWNvbW1vbi5jOiBEb24ndCBjaGVjayBub25fZ290X3JlZiBmbGFnLgor ICAgICAgICAgICAgKiBlbGYzMi1zMzkwLmMgKGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rpb24pOiBM aWtld2lzZS4KKyAgICAgICAgICAgICogZWxmNjQtczM5MC5jIChlbGZfczM5MF9yZWxvY2F0ZV9z ZWN0aW9uKTogTGlrZXdpc2UuCisKKy0tLSBhL2JmZC9lbGYtczM5MC1jb21tb24uYworKysrIGIv YmZkL2VsZi1zMzkwLWNvbW1vbi5jCitAQCAtMTYxLDkgKzE2MSw3IEBAIGtlZXA6CisgICAgICAg aC0+dHlwZSA9IFNUVF9GVU5DOworICAgICB9CisgCistICAvKiBXZSBuZWVkIGR5bmFtaWMgcmVs b2NhdGlvbiBmb3IgU1RUX0dOVV9JRlVOQyBzeW1ib2wgb25seSB3aGVuCistICAgICB0aGVyZSBp cyBhIG5vbi1HT1QgcmVmZXJlbmNlIGluIGEgc2hhcmVkIG9iamVjdC4gICovCistICBpZiAoIWJm ZF9saW5rX3BpYyAoaW5mbykgfHwgIWgtPm5vbl9nb3RfcmVmKQorKyAgaWYgKCFiZmRfbGlua19w aWMgKGluZm8pKQorICAgICAqaGVhZCA9IE5VTEw7CisgCisgICAvKiBGaW5hbGx5LCBhbGxvY2F0 ZSBzcGFjZS4gICovCistLS0gYS9iZmQvZWxmMzItczM5MC5jCisrKysgYi9iZmQvZWxmMzItczM5 MC5jCitAQCAtMjc3NCw3ICsyNzc0LDcgQEAgZWxmX3MzOTBfcmVsb2NhdGVfc2VjdGlvbiAoYmZk ICpvdXRwdXRfYmZkLAorIAkgICAgICAmJiBzMzkwX2lzX2lmdW5jX3N5bWJvbF9wIChoKQorIAkg ICAgICAmJiBoLT5kZWZfcmVndWxhcikKKyAJICAgIHsKKy0JICAgICAgaWYgKCFiZmRfbGlua19w aWMgKGluZm8pIHx8ICFoLT5ub25fZ290X3JlZikKKysJICAgICAgaWYgKCFiZmRfbGlua19waWMg KGluZm8pKQorIAkJeworIAkJICAvKiBGb3IgYSBub24tc2hhcmVkIG9iamVjdCBTVFRfR05VX0lG VU5DIHN5bWJvbCBtdXN0CisgCQkgICAgIGdvIHRocm91Z2ggUExULiAgKi8KKy0tLSBhL2JmZC9l bGY2NC1zMzkwLmMKKysrKyBiL2JmZC9lbGY2NC1zMzkwLmMKK0BAIC0yNzM3LDEwICsyNzM3LDEx IEBAIGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rpb24gKGJmZCAqb3V0cHV0X2JmZCwKKyAJICAgICAg JiYgczM5MF9pc19pZnVuY19zeW1ib2xfcCAoaCkKKyAJICAgICAgJiYgaC0+ZGVmX3JlZ3VsYXIp CisgCSAgICB7CistCSAgICAgIGlmICghYmZkX2xpbmtfcGljIChpbmZvKSB8fCAhaC0+bm9uX2dv dF9yZWYpCisrCSAgICAgIGlmICghYmZkX2xpbmtfcGljIChpbmZvKSkKKyAJCXsKKy0JCSAgLyog Rm9yIGEgbm9uLXNoYXJlZCBvYmplY3QgU1RUX0dOVV9JRlVOQyBzeW1ib2wgbXVzdAorLQkJICAg ICBnbyB0aHJvdWdoIFBMVC4gICovCisrCQkgIC8qIEZvciBhIG5vbi1zaGFyZWQgb2JqZWN0IHRo ZSBzeW1ib2wgd2lsbCBub3QKKysJCSAgICAgY2hhbmdlLiAgSGVuY2Ugd2UgY2FuIHdyaXRlIHRo ZSBhZGRyZXNzIG9mIHRoZQorKwkJICAgICB0YXJnZXQgSVBMVCBzbG90IG5vdy4gICovCisgCQkg IHJlbG9jYXRpb24gPSAoaHRhYi0+ZWxmLmlwbHQtPm91dHB1dF9zZWN0aW9uLT52bWEKKyAJCQkJ KyBodGFiLT5lbGYuaXBsdC0+b3V0cHV0X29mZnNldAorIAkJCQkrIGggLT5wbHQub2Zmc2V0KTsK CmRpZmYgLS1naXQgYS9nZGItcmhiejE0MjAzMDQtczM5MHgtMDJvZjM1LnBhdGNoIGIvZ2RiLXJo YnoxNDIwMzA0LXMzOTB4LTAyb2YzNS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi4yNzdmNTA1Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4 LTAyb2YzNS5wYXRjaApAQCAtMCwwICsxLDQzIEBACitjb21taXQgYTBhMTEwYjBkZDUwNzczNzNj NDEwMmQxNTAyMTMwZWIxNTljMzY2YgorQXV0aG9yOiBBbmRyZWFzIEtyZWJiZWwgPGtyZWJiZWxA bGludXgudm5ldC5pYm0uY29tPgorRGF0ZTogICBXZWQgTWF5IDE3IDEyOjM5OjM5IDIwMTcgKzAy MDAKKworICAgIFMvMzkwOiBGaXggYXJjaCBsZXZlbCBvZiBwY2ttbyBpbnN0cnVjdGlvbi4KKyAg ICAKKyAgICBGaXggd3JvbmcgYXJjaGl0ZWN0dXJlIGxldmVsIG9mIFBDS01PIGluc3RydWN0aW9u LgorICAgIAorICAgIENvbW1pdHRlZCB0byBtYWlubGluZS4KKyAgICAKKyAgICBvcGNvZGVzL0No YW5nZUxvZzoKKyAgICAKKyAgICAyMDE3LTA1LTE3ICBBbmRyZWFzIEtyZWJiZWwgIDxrcmViYmVs QGxpbnV4LnZuZXQuaWJtLmNvbT4KKyAgICAKKyAgICAgICAgICAgICogczM5MC1vcGMudHh0OiBQ Q0tNTyBjaGFuZ2UgYXJjaCBsZXZlbCB0byB6MTk2LgorICAgIAorICAgIGdhcy9DaGFuZ2VMb2c6 CisgICAgCisgICAgMjAxNy0wNS0xNyAgQW5kcmVhcyBLcmViYmVsICA8a3JlYmJlbEBsaW51eC52 bmV0LmlibS5jb20+CisgICAgCisgICAgICAgICAgICAqIHRlc3RzdWl0ZS9nYXMvczM5MC96YXJj aC16MTAuZDogUmVtb3ZlIHBja21vLgorICAgICAgICAgICAgKiB0ZXN0c3VpdGUvZ2FzL3MzOTAv emFyY2gtejEwLnM6IFJlbW92ZSBwY2ttby4KKyAgICAgICAgICAgICogdGVzdHN1aXRlL2dhcy9z MzkwL3phcmNoLXoxOTYuZDogQWRkIHBja21vLgorICAgICAgICAgICAgKiB0ZXN0c3VpdGUvZ2Fz L3MzOTAvemFyY2gtejE5Ni5zOiBBZGQgcGNrbW8uCisKKy0tLSBhL29wY29kZXMvczM5MC1vcGMu dHh0CisrKysgYi9vcGNvZGVzL3MzOTAtb3BjLnR4dAorQEAgLTk3Niw3ICs5NzYsNiBAQCBiMjg2 IHFzaSBTX1JEICJxdWVyeSBzYW1wbGluZyBpbmZvcm1hdGlvbiIgejEwIHphcmNoCisgYjJlMCBz Y2N0ciBSUkVfUlIgInNldCBjcHUgY291bnRlciIgejEwIHphcmNoCisgYjJlMSBzcGN0ciBSUkVf UlIgInNldCBwZXJpcGhlcmFsIGNvdW50ZXIiIHoxMCB6YXJjaAorIGIyODAgbHBwIFNfUkQgImxv YWQgcHJvZ3JhbSBwYXJhbWV0ZXIiIHoxMCB6YXJjaAorLWI5MjggcGNrbW8gUlJFXzAwICJwZXJm b3JtIGNyeXB0b2dyYXBoaWMga2V5IG1hbmFnZW1lbnQgb3BlcmF0aW9uIiB6MTAgemFyY2gKKyAK KyAjIFRoZSBuZXcgaW5zdHJ1Y3Rpb25zIG9mIHRoZSBJQk0gekVudGVycHJpc2UgejE5NgorIGI5 YzggYWhoaHIgUlJGX1IwUlIyICJhZGQgaGlnaCBoaWdoIiB6MTk2IHphcmNoCitAQCAtMTExNiw2 ICsxMTE1LDcgQEAgYjkyYSBrbWYgUlJFX1JSICJjaXBoZXIgbWVzc2FnZSB3aXRoIENGQiIgejE5 NiB6YXJjaAorIGI5MmIga21vIFJSRV9SUiAiY2lwaGVyIG1lc3NhZ2Ugd2l0aCBPRkIiIHoxOTYg emFyY2gKKyBiOTJjIHBjYyBSUkVfMDAgInBlcmZvcm0gY3J5cHRvZ3JhcGhpYyBjb21wdXRhdGlv biIgejE5NiB6YXJjaAorIGI5MmQga21jdHIgUlJGX1IwUlIgImNpcGhlciBtZXNzYWdlIHdpdGgg Y291bnRlciIgejE5NiB6YXJjaAorK2I5MjggcGNrbW8gUlJFXzAwICJwZXJmb3JtIGNyeXB0b2dy YXBoaWMga2V5IG1hbmFnZW1lbnQgb3BlcmF0aW9uIiB6MTk2IHphcmNoCisgCisgIyBUaGUgbmV3 IGluc3RydWN0aW9ucyBvZiB0aGUgSUJNIHpFbnRlcnByaXNlIEVDMTIKKyBiMmVjIGV0bmQgUlJF X1IwICJleHRyYWN0IHRyYW5zYWN0aW9uIG5lc3RpbmcgZGVwdGgiIHpFQzEyIHphcmNoIGh0bQoK ZGlmZiAtLWdpdCBhL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0wM29mMzUucGF0Y2ggYi9nZGItcmhi ejE0MjAzMDQtczM5MHgtMDNvZjM1LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmU5YjFjNWYKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItcmhiejE0MjAzMDQtczM5MHgt MDNvZjM1LnBhdGNoCkBAIC0wLDAgKzEsNTIgQEAKK2NvbW1pdCBiZmNmYmU2MTFiNGQ3ZTY1MDIz NmY4YjhiYTdkMDcwNmNmZTZhMGI3CitBdXRob3I6IEFuZHJlYXMgS3JlYmJlbCA8a3JlYmJlbEBs aW51eC52bmV0LmlibS5jb20+CitEYXRlOiAgIE1vbiBNYXkgMjkgMTI6MzM6MTUgMjAxNyArMDIw MAorCisgICAgUy8zOTA6IFJlbW92ZSBvcHRpb25hbCBvcGVyYW5kIGZsYWcuCisgICAgCisgICAg VGhlIHBlciBvcGVyYW5kIG9wdGlvbmFsIGZsYWcgaGFzbid0IGJlZW4gdXNlZCBmb3IgcXVpdGUg c29tZSB0aW1lLgorICAgIENsZWFudXAgc29tZSByZW1haW5zLgorICAgIAorICAgIGluY2x1ZGUv Q2hhbmdlTG9nOgorICAgIAorICAgIDIwMTctMDUtMzAgIEFuZHJlYXMgS3JlYmJlbCAgPGtyZWJi ZWxAbGludXgudm5ldC5pYm0uY29tPgorICAgIAorICAgICAgICAgICAgKiBvcGNvZGUvczM5MC5o OiBSZW1vdmUgUzM5MF9PUEVSQU5EX09QVElPTkFMLgorICAgIAorICAgIGdhcy9DaGFuZ2VMb2c6 CisgICAgCisgICAgMjAxNy0wNS0zMCAgQW5kcmVhcyBLcmViYmVsICA8a3JlYmJlbEBsaW51eC52 bmV0LmlibS5jb20+CisgICAgCisgICAgICAgICAgICAqIGNvbmZpZy90Yy1zMzkwLmMgKG1kX2dh dGhlcl9vcGVyYW5kcyk6IFJlbW92ZSBjb2RlIGRlYWxpbmcgd2l0aAorICAgICAgICAgICAgUzM5 MF9PUEVSQU5EX09QVElPTkFMLgorCistLS0gYS9pbmNsdWRlL29wY29kZS9zMzkwLmgKKysrKyBi L2luY2x1ZGUvb3Bjb2RlL3MzOTAuaAorQEAgLTE1NiwyMSArMTU2LDE3IEBAIGV4dGVybiBjb25z dCBzdHJ1Y3QgczM5MF9vcGVyYW5kIHMzOTBfb3BlcmFuZHNbXTsKKyAvKiBUaGlzIG9wZXJhbmQg aXMgYSBsZW5ndGguICAqLworICNkZWZpbmUgUzM5MF9PUEVSQU5EX0xFTkdUSCAweDIwMAorIAor LS8qIFRoaXMgb3BlcmFuZCBpcyBvcHRpb25hbC4gT25seSBhIHNpbmdsZSBvcGVyYW5kIGF0IHRo ZSBlbmQgb2YKKy0gICB0aGUgaW5zdHJ1Y3Rpb24gbWF5IGJlIG9wdGlvbmFsLiAgKi8KKy0jZGVm aW5lIFMzOTBfT1BFUkFORF9PUFRJT05BTCAweDQwMAorLQorIC8qIFRoZSBvcGVyYW5kIG5lZWRz IHRvIGJlIGEgdmFsaWQgR1Agb3IgRlAgcmVnaXN0ZXIgcGFpci4gICovCistI2RlZmluZSBTMzkw X09QRVJBTkRfUkVHX1BBSVIgMHg4MDAKKysjZGVmaW5lIFMzOTBfT1BFUkFORF9SRUdfUEFJUiAw eDQwMAorIAorIC8qIFRoaXMgb3BlcmFuZCBuYW1lcyBhIHZlY3RvciByZWdpc3Rlci4gIFRoZSBk aXNhc3NlbWJsZXIgdXNlcyB0aGlzCisgICAgdG8gcHJpbnQgcmVnaXN0ZXIgbmFtZXMgd2l0aCBh IGxlYWRpbmcgJ3YnLiAgKi8KKy0jZGVmaW5lIFMzOTBfT1BFUkFORF9WUiAweDEwMDAKKysjZGVm aW5lIFMzOTBfT1BFUkFORF9WUiAweDgwMAorIAorLSNkZWZpbmUgUzM5MF9PUEVSQU5EX0NQMTYg MHgyMDAwCisrI2RlZmluZSBTMzkwX09QRVJBTkRfQ1AxNiAweDEwMDAKKyAKKy0jZGVmaW5lIFMz OTBfT1BFUkFORF9PUjEgMHg0MDAwCistI2RlZmluZSBTMzkwX09QRVJBTkRfT1IyIDB4ODAwMAor LSNkZWZpbmUgUzM5MF9PUEVSQU5EX09SOCAweDEwMDAwCisrI2RlZmluZSBTMzkwX09QRVJBTkRf T1IxIDB4MjAwMAorKyNkZWZpbmUgUzM5MF9PUEVSQU5EX09SMiAweDQwMDAKKysjZGVmaW5lIFMz OTBfT1BFUkFORF9PUjggMHg4MDAwCisgCisgI2VuZGlmIC8qIFMzOTBfSCAqLwoKZGlmZiAtLWdp dCBhL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0wNG9mMzUucGF0Y2ggYi9nZGItcmhiejE0MjAzMDQt czM5MHgtMDRvZjM1LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZj ZTA4MTgKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItcmhiejE0MjAzMDQtczM5MHgtMDRvZjM1LnBh dGNoCkBAIC0wLDAgKzEsOTcgQEAKK2NvbW1pdCBhMDlmMjU4NjAxN2FlZWQ4MmZhMDdjOGJmZWE2 Yzc1ODU5Mjk1YmQ5CitBdXRob3I6IEFuZHJlYXMgS3JlYmJlbCA8a3JlYmJlbEBsaW51eC52bmV0 LmlibS5jb20+CitEYXRlOiAgIE1vbiBNYXkgMjkgMTI6MzQ6NTYgMjAxNyArMDIwMAorCisgICAg Uy8zOTA6IEltcHJvdmUgZXJyb3IgY2hlY2tpbmcgZm9yIG9wdGlvbmFsIG9wZXJhbmRzCisgICAg CisgICAgU28gZmFyIHdlIG9ubHkgaGFkIGFuIGluc3RydWN0aW9uIGZsYWcgd2hpY2ggbWFkZSBh biBhcmJpdHJhcnkgbnVtYmVyCisgICAgb2Ygb3BlcmFuZHMgb3B0aW9uYWwuICBUaGlzIGxpbWl0 cyBlcnJvciBjaGVja2luZyBjYXBhYmlsaXRpZXMgZm9yCisgICAgaW5zdHJ1Y3Rpb25zIG1hcmtl ZCB0aGF0IHdheS4gIFdpdGggdGhpcyBwYXRjaCB0aGUgb3B0cGFybSBmbGFnIG9ubHkKKyAgICBh bGxvd3MgYSBzaW5nbGUgb3B0aW9uYWwgcGFyYW1ldGVyIGFuZCBhbm90aGVyIG9uZSBpcyBhZGRl ZCAob3B0cGFybTIpCisgICAgYWxsb3dpbmcgMiBvcHRpb25hbCBhcmd1bWVudHMuICBIb3BlZnVs bHkgd2Ugd29uJ3QgbmVlZCBtb3JlIHRoYW4gdGhhdAorICAgIGluIHRoZSBmdXR1cmUuIFNvIGZh ciB0aGVyZSB3aWxsIGJlIG9ubHkgYSBzaW5nbGUgdXNlIG9mIG9wdHBhcm0yLgorICAgIAorICAg IGdhcy9DaGFuZ2VMb2c6CisgICAgCisgICAgMjAxNy0wNS0zMCAgQW5kcmVhcyBLcmViYmVsICA8 a3JlYmJlbEBsaW51eC52bmV0LmlibS5jb20+CisgICAgCisgICAgICAgICAgICAqIGNvbmZpZy90 Yy1zMzkwLmMgKG1kX2dhdGhlcl9vcGVyYW5kcyk6IFN1cHBvcnQgbmV3IG9wdHBhcm0yCisgICAg ICAgICAgICBpbnN0cnVjdGlvbiBmbGFnLgorICAgIAorICAgIGluY2x1ZGUvQ2hhbmdlTG9nOgor ICAgIAorICAgIDIwMTctMDUtMzAgIEFuZHJlYXMgS3JlYmJlbCAgPGtyZWJiZWxAbGludXgudm5l dC5pYm0uY29tPgorICAgIAorICAgICAgICAgICAgKiBvcGNvZGUvczM5MC5oOiBBZGQgbmV3IGlu c3RydWN0aW9uIGZsYWdzIG9wdHBhcm0yLgorICAgIAorICAgIG9wY29kZXMvQ2hhbmdlTG9nOgor ICAgIAorICAgIDIwMTctMDUtMzAgIEFuZHJlYXMgS3JlYmJlbCAgPGtyZWJiZWxAbGludXgudm5l dC5pYm0uY29tPgorICAgIAorICAgICAgICAgICAgKiBzMzkwLWRpcy5jIChzMzkwX3ByaW50X2lu c25fd2l0aF9vcGNvZGUpOiBTdXBwb3J0IG5ldyBvcHRwYXJtMgorICAgICAgICAgICAgaW5zdHJ1 Y3Rpb24gZmxhZy4KKyAgICAgICAgICAgICogczM5MC1ta29wYy5jIChtYWluKTogUmVjb2duaXpl IHRoZSBuZXcgaW5zdHJ1Y3Rpb24gZmxhZyB3aGVuCisgICAgICAgICAgICBwYXJzaW5nIGluc3Ry dWN0aW9uIGxpc3QuCisKKy0tLSBhL2luY2x1ZGUvb3Bjb2RlL3MzOTAuaAorKysrIGIvaW5jbHVk ZS9vcGNvZGUvczM5MC5oCitAQCAtNDgsMTAgKzQ4LDExIEBAIGVudW0gczM5MF9vcGNvZGVfY3B1 X3ZhbAorIAorIC8qIEluc3RydWN0aW9uIHNwZWNpZmljIGZsYWdzLiAgKi8KKyAjZGVmaW5lIFMz OTBfSU5TVFJfRkxBR19PUFRQQVJNIDB4MQorKyNkZWZpbmUgUzM5MF9JTlNUUl9GTEFHX09QVFBB Uk0yIDB4MgorIAorLSNkZWZpbmUgUzM5MF9JTlNUUl9GTEFHX0hUTSAweDIKKy0jZGVmaW5lIFMz OTBfSU5TVFJfRkxBR19WWCAweDQKKy0jZGVmaW5lIFMzOTBfSU5TVFJfRkxBR19GQUNJTElUWV9N QVNLIDB4NgorKyNkZWZpbmUgUzM5MF9JTlNUUl9GTEFHX0hUTSAweDQKKysjZGVmaW5lIFMzOTBf SU5TVFJfRkxBR19WWCAweDgKKysjZGVmaW5lIFMzOTBfSU5TVFJfRkxBR19GQUNJTElUWV9NQVNL IDB4YworIAorIC8qIFRoZSBvcGNvZGUgdGFibGUgaXMgYW4gYXJyYXkgb2Ygc3RydWN0IHMzOTBf b3Bjb2RlLiAgKi8KKyAKKy0tLSBhL29wY29kZXMvczM5MC1kaXMuYworKysrIGIvb3Bjb2Rlcy9z MzkwLWRpcy5jCitAQCAtMjA2LDExICsyMDYsMjAgQEAgczM5MF9wcmludF9pbnNuX3dpdGhfb3Bj b2RlIChiZmRfdm1hIG1lbWFkZHIsCisgCisgICAgICAgLyogRm9yIGluc3RydWN0aW9ucyB3aXRo IGEgbGFzdCBvcHRpb25hbCBvcGVyYW5kIGRvbid0IHByaW50IGl0CisgCSBpZiB6ZXJvLiAgKi8K Ky0gICAgICBpZiAoKG9wY29kZS0+ZmxhZ3MgJiBTMzkwX0lOU1RSX0ZMQUdfT1BUUEFSTSkKKysg ICAgICBpZiAoKG9wY29kZS0+ZmxhZ3MgJiAoUzM5MF9JTlNUUl9GTEFHX09QVFBBUk0gfCBTMzkw X0lOU1RSX0ZMQUdfT1BUUEFSTTIpKQorIAkgICYmIHZhbC51ID09IDAKKyAJICAmJiBvcGluZGV4 WzFdID09IDApCisgCWJyZWFrOworIAorKyAgICAgIGlmICgob3Bjb2RlLT5mbGFncyAmIFMzOTBf SU5TVFJfRkxBR19PUFRQQVJNMikKKysJICAmJiB2YWwudSA9PSAwICYmIG9waW5kZXhbMV0gIT0g MCAmJiBvcGluZGV4WzJdID09IDApCisrCXsKKysJICB1bmlvbiBvcGVyYW5kX3ZhbHVlIG5leHRf b3BfdmFsID0KKysJICAgIHMzOTBfZXh0cmFjdF9vcGVyYW5kIChidWZmZXIsIHMzOTBfb3BlcmFu ZHMgKyBvcGluZGV4WzFdKTsKKysJICBpZiAobmV4dF9vcF92YWwudSA9PSAwKQorKwkgICAgYnJl YWs7CisrCX0KKysKKyAgICAgICBpZiAoZmxhZ3MgJiBTMzkwX09QRVJBTkRfR1BSKQorIAlpbmZv LT5mcHJpbnRmX2Z1bmMgKGluZm8tPnN0cmVhbSwgIiVjJSVyJXUiLCBzZXBhcmF0b3IsIHZhbC51 KTsKKyAgICAgICBlbHNlIGlmIChmbGFncyAmIFMzOTBfT1BFUkFORF9GUFIpCistLS0gYS9vcGNv ZGVzL3MzOTAtbWtvcGMuYworKysrIGIvb3Bjb2Rlcy9zMzkwLW1rb3BjLmMKK0BAIC00MTEsMTIg KzQxMSwxNiBAQCBtYWluICh2b2lkKQorIAkJJiYgKHN0cls3XSA9PSAwIHx8IHN0cls3XSA9PSAn LCcpKSB7CisgCSAgICAgIGZsYWdfYml0cyB8PSBTMzkwX0lOU1RSX0ZMQUdfT1BUUEFSTTsKKyAJ ICAgICAgc3RyICs9IDc7CisrCSAgICB9IGVsc2UgaWYgKHN0cm5jbXAgKHN0ciwgIm9wdHBhcm0y IiwgOCkgPT0gMAorKwkJICAgICAgICYmIChzdHJbOF0gPT0gMCB8fCBzdHJbOF0gPT0gJywnKSkg eworKwkgICAgICBmbGFnX2JpdHMgfD0gUzM5MF9JTlNUUl9GTEFHX09QVFBBUk0yOworKwkgICAg ICBzdHIgKz0gODsKKyAJICAgIH0gZWxzZSBpZiAoc3RybmNtcCAoc3RyLCAiaHRtIiwgMykgPT0g MAorLQkJJiYgKHN0clszXSA9PSAwIHx8IHN0clszXSA9PSAnLCcpKSB7CisrCQkgICAgICAgJiYg KHN0clszXSA9PSAwIHx8IHN0clszXSA9PSAnLCcpKSB7CisgCSAgICAgIGZsYWdfYml0cyB8PSBT MzkwX0lOU1RSX0ZMQUdfSFRNOworIAkgICAgICBzdHIgKz0gMzsKKyAJICAgIH0gZWxzZSBpZiAo c3RybmNtcCAoc3RyLCAidngiLCAyKSA9PSAwCistCQkmJiAoc3RyWzJdID09IDAgfHwgc3RyWzJd ID09ICcsJykpIHsKKysJCSAgICAgICAmJiAoc3RyWzJdID09IDAgfHwgc3RyWzJdID09ICcsJykp IHsKKyAJICAgICAgZmxhZ19iaXRzIHw9IFMzOTBfSU5TVFJfRkxBR19WWDsKKyAJICAgICAgc3Ry ICs9IDI7CisgCSAgICB9IGVsc2UgewoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6MTQyMDMwNC1zMzkw eC0wNW9mMzUucGF0Y2ggYi9nZGItcmhiejE0MjAzMDQtczM5MHgtMDVvZjM1LnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhMzYyYTMKLS0tIC9kZXYvbnVsbAorKysg Yi9nZGItcmhiejE0MjAzMDQtczM5MHgtMDVvZjM1LnBhdGNoCkBAIC0wLDAgKzEsNTggQEAKK2Nv bW1pdCBmZmM2MWM1ZGUxYTVhODllM2UzN2ZiOTM3NjcyNWMzMmE4MzljMzRkCitBdXRob3I6IEFu ZHJlYXMgS3JlYmJlbCA8a3JlYmJlbEBsaW51eC52bmV0LmlibS5jb20+CitEYXRlOiAgIE1vbiBN YXkgMjkgMTI6MzY6NTcgMjAxNyArMDIwMAorCisgICAgUy8zOTA6IEFkZCBpcHRlL2lkdGUgdmFy aWFudHMgd2l0aCBvcHRpb25hbCBvcGVyYW5kcworICAgIAorICAgIFRoaXMgcGF0Y2ggYWRkcyBt aXNzaW5nIHZhcmlhbnRzIG9mIGlwdGUgYW5kIGlkdGUgaW5zdHJ1Y3Rpb25zIGFkZGVkIHdpdGgg bGF0ZXIgQ1BVCisgICAgZ2VuZXJhdGlvbnMuCisgICAgCisgICAgaXB0ZSBnb3QgYW4gb3B0aW9u YWwgb3BlcmFuZCB3aXRoIHoxOTYgYW5kIGFub3RoZXIgb25lIHdpdGggekVDMTIuCisgICAgaWR0 ZSBnb3QgYW4gb3B0aW9uYWwgb3BlcmFuZCB3aXRoIHpFQzEyCisgICAgCisgICAgb3Bjb2Rlcy9D aGFuZ2VMb2c6CisgICAgCisgICAgMjAxNy0wNS0zMCAgQW5kcmVhcyBLcmViYmVsICA8a3JlYmJl bEBsaW51eC52bmV0LmlibS5jb20+CisgICAgCisgICAgICAgICAgICAqIHMzOTAtb3BjLmM6IEFk ZCBuZXcgaWR0ZS9pcHRlIHZhcmlhbnRzLgorICAgICAgICAgICAgKiBzMzkwLW9wYy50eHQ6IExp a2V3aXNlLgorICAgIAorICAgIGdhcy9DaGFuZ2VMb2c6CisgICAgCisgICAgMjAxNy0wNS0zMCAg QW5kcmVhcyBLcmViYmVsICA8a3JlYmJlbEBsaW51eC52bmV0LmlibS5jb20+CisgICAgCisgICAg ICAgICAgICAqIHRlc3RzdWl0ZS9nYXMvczM5MC96YXJjaC16MTk2LmQ6IEFkZCBuZXcgaWR0ZS9p cHRlIHZhcmlhbnRzLgorICAgICAgICAgICAgKiB0ZXN0c3VpdGUvZ2FzL3MzOTAvemFyY2gtejE5 Ni5zOiBMaWtld2lzZS4KKyAgICAgICAgICAgICogdGVzdHN1aXRlL2dhcy9zMzkwL3phcmNoLXpF QzEyLmQ6IExpa2V3aXNlLgorICAgICAgICAgICAgKiB0ZXN0c3VpdGUvZ2FzL3MzOTAvemFyY2gt ekVDMTIuczogTGlrZXdpc2UuCisKKy0tLSBhL29wY29kZXMvczM5MC1vcGMuYworKysrIGIvb3Bj b2Rlcy9zMzkwLW9wYy5jCitAQCAtMzU1LDcgKzM1NSw3IEBAIGNvbnN0IHN0cnVjdCBzMzkwX29w ZXJhbmQgczM5MF9vcGVyYW5kc1tdID0KKyAjZGVmaW5lIElOU1RSX1JSRl9GRVVGRUZFICA0LCB7 IEZFXzI0LEZFXzE2LEZFXzI4LFU0XzIwLDAsMCB9ICAgIC8qIGUuZy4gcWF4dHIgKi8KKyAjZGVm aW5lIElOU1RSX1JSRl9GVUZGMiAgICA0LCB7IEZfMjQsRl8yOCxGXzE2LFU0XzIwLDAsMCB9ICAg ICAgIC8qIGUuZy4gYWR0cmEgKi8KKyAjZGVmaW5lIElOU1RSX1JSRl9GRVVGRUZFMiA0LCB7IEZF XzI0LEZFXzI4LEZFXzE2LFU0XzIwLDAsMCB9ICAgIC8qIGUuZy4gYXh0cmEgKi8KKy0jZGVmaW5l IElOU1RSX1JSRl9SVVJSICAgICA0LCB7IFJfMjQsUl8yOCxSXzE2LFU0XzIwLDAsMCB9ICAgICAg IC8qIGUuZy4gLmluc24gKi8KKysjZGVmaW5lIElOU1RSX1JSRl9SVVJSICAgICA0LCB7IFJfMjQs Ul8yOCxSXzE2LFU0XzIwLDAsMCB9ICAgICAgIC8qIGUuZy4gaXB0ZSAgKi8KKyAjZGVmaW5lIElO U1RSX1JSRl9SVVJSMiAgICA0LCB7IFJfMjQsUl8xNixSXzI4LFU0XzIwLDAsMCB9ICAgICAgIC8q IGUuZy4gbHB0ZWEgKi8KKyAjZGVmaW5lIElOU1RSX1JSRl9SMFJSICAgICA0LCB7IFJfMjQsUl8x NixSXzI4LDAsMCwwIH0gICAgICAgICAgIC8qIGUuZy4gaWR0ZSAgKi8KKyAjZGVmaW5lIElOU1RS X1JSRl9SMFJSMiAgICA0LCB7IFJfMjQsUl8yOCxSXzE2LDAsMCwwIH0gICAgICAgICAgIC8qIGUu Zy4gYXJrICAgKi8KKy0tLSBhL29wY29kZXMvczM5MC1vcGMudHh0CisrKysgYi9vcGNvZGVzL3Mz OTAtb3BjLnR4dAorQEAgLTExMTYsNiArMTExNiw3IEBAIGI5MmIga21vIFJSRV9SUiAiY2lwaGVy IG1lc3NhZ2Ugd2l0aCBPRkIiIHoxOTYgemFyY2gKKyBiOTJjIHBjYyBSUkVfMDAgInBlcmZvcm0g Y3J5cHRvZ3JhcGhpYyBjb21wdXRhdGlvbiIgejE5NiB6YXJjaAorIGI5MmQga21jdHIgUlJGX1Iw UlIgImNpcGhlciBtZXNzYWdlIHdpdGggY291bnRlciIgejE5NiB6YXJjaAorIGI5MjggcGNrbW8g UlJFXzAwICJwZXJmb3JtIGNyeXB0b2dyYXBoaWMga2V5IG1hbmFnZW1lbnQgb3BlcmF0aW9uIiB6 MTk2IHphcmNoCisrYjIyMSBpcHRlIFJSRl9SMFJSMiAiaW52YWxpZGF0ZSBwYWdlIHRhYmxlIGVu dHJ5IiB6MTk2IHphcmNoIG9wdHBhcm0KKyAKKyAjIFRoZSBuZXcgaW5zdHJ1Y3Rpb25zIG9mIHRo ZSBJQk0gekVudGVycHJpc2UgRUMxMgorIGIyZWMgZXRuZCBSUkVfUjAgImV4dHJhY3QgdHJhbnNh Y3Rpb24gbmVzdGluZyBkZXB0aCIgekVDMTIgemFyY2ggaHRtCitAQCAtMTE0Myw2ICsxMTQ0LDgg QEAgZWQwMDAwMDAwMGFhIGNkenQgUlNMX0xSREZVICJjb252ZXJ0IGZyb20gem9uZWQgbG9uZyIg ekVDMTIgemFyY2gKKyBlZDAwMDAwMDAwYWIgY3h6dCBSU0xfTFJERkVVICJjb252ZXJ0IGZyb20g em9uZWQgZXh0ZW5kZWQiIHpFQzEyIHphcmNoCisgZWQwMDAwMDAwMGE4IGN6ZHQgUlNMX0xSREZV ICJjb252ZXJ0IHRvIHpvbmVkIGxvbmciIHpFQzEyIHphcmNoCisgZWQwMDAwMDAwMGE5IGN6eHQg UlNMX0xSREZFVSAiY29udmVydCB0byB6b25lZCBleHRlbmRlZCIgekVDMTIgemFyY2gKKytiOThl IGlkdGUgUlJGX1JVUlIyICJpbnZhbGlkYXRlIGRhdCB0YWJsZSBlbnRyeSIgekVDMTIgemFyY2gg b3B0cGFybQorK2IyMjEgaXB0ZSBSUkZfUlVSUiAiaW52YWxpZGF0ZSBwYWdlIHRhYmxlIGVudHJ5 IiB6RUMxMiB6YXJjaCBvcHRwYXJtMgorIAorICMgVGhlIG5ldyBpbnN0cnVjdGlvbnMgb2YgSUJN IHoxMworIAoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0wNm9mMzUucGF0Y2gg Yi9nZGItcmhiejE0MjAzMDQtczM5MHgtMDZvZjM1LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLmJiNDNjZGYKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItcmhiejE0MjAz MDQtczM5MHgtMDZvZjM1LnBhdGNoCkBAIC0wLDAgKzEsMzEgQEAKK2NvbW1pdCA2N2FhOGJlNGNi NDNjZDk0YmMzMjJmZWQ4YmRiYTQ4YjNjODcxOWM0CitBdXRob3I6IEFuZHJlYXMgS3JlYmJlbCA8 a3JlYmJlbEBsaW51eC52bmV0LmlibS5jb20+CitEYXRlOiAgIE1vbiBNYXkgMjkgMTI6Mzg6MTEg MjAxNyArMDIwMAorCisgICAgUy8zOTA6IEFkZCBtaXNzaW5nIG9wZXJhbmQgdG8gdGIgaW5zdHJ1 Y3Rpb24KKyAgICAKKyAgICBnYXMvQ2hhbmdlTG9nOgorICAgIAorICAgIDIwMTctMDUtMzAgIEFu ZHJlYXMgS3JlYmJlbCAgPGtyZWJiZWxAbGludXgudm5ldC5pYm0uY29tPgorICAgIAorICAgICAg ICAgICAgKiB0ZXN0c3VpdGUvZ2FzL3MzOTAvZXNhLWc1LmQ6IEFkZCBtaXNzaW5nIG9wZXJhbmQg dG8gdGIKKyAgICAgICAgICAgIGluc3RydWN0aW9uLgorICAgICAgICAgICAgKiB0ZXN0c3VpdGUv Z2FzL3MzOTAvZXNhLWc1LnM6IExpa2V3aXNlLgorICAgIAorICAgIG9wY29kZXMvQ2hhbmdlTG9n OgorICAgIAorICAgIDIwMTctMDUtMzAgIEFuZHJlYXMgS3JlYmJlbCAgPGtyZWJiZWxAbGludXgu dm5ldC5pYm0uY29tPgorICAgIAorICAgICAgICAgICAgKiBzMzkwLW9wYy50eHQ6IEFkZCBtaXNz aW5nIG9wZXJhbmQgdG8gdGIgaW5zdHJ1Y3Rpb24uCisKKy0tLSBhL29wY29kZXMvczM5MC1vcGMu dHh0CisrKysgYi9vcGNvZGVzL3MzOTAtb3BjLnR4dAorQEAgLTIyOCw3ICsyMjgsNyBAQCBiMjQ2 IHN0dXJhIFJSRV9SUiAic3RvcmUgdXNpbmcgcmVhbCBhZGRyZXNzIiBnNSBlc2EsemFyY2gKKyAy ZiBzd3IgUlJfRkYgInN1YnRyYWN0IHVubm9ybWFsaXplZCAobG9uZykiIGc1IGVzYSx6YXJjaAor IDM3IHN4ciBSUl9GRUZFICJzdWJ0cmFjdCBub3JtYWxpemVkIChleHQuKSIgZzUgZXNhLHphcmNo CisgYjI0YyB0YXIgUlJFX0FSICJ0ZXN0IGFjY2VzcyIgZzUgZXNhLHphcmNoCistYjIyYyB0YiBS UkVfMFIgInRlc3QgYmxvY2siIGc1IGVzYSx6YXJjaAorK2IyMmMgdGIgUlJFX1JSICJ0ZXN0IGJs b2NrIiBnNSBlc2EsemFyY2gKKyA5MSB0bSBTSV9VUkQgInRlc3QgdW5kZXIgbWFzayIgZzUgZXNh LHphcmNoCisgYjIzNiB0cGkgU19SRCAidGVzdCBwZW5kaW5nIGludGVycnVwdGlvbiIgZzUgZXNh LHphcmNoCisgZTUwMSB0cHJvdCBTU0VfUkRSRCAidGVzdCBwcm90ZWN0aW9uIiBnNSBlc2EsemFy Y2gKCmRpZmYgLS1naXQgYS9nZGItcmhiejE0MjAzMDQtczM5MHgtMDdvZjM1LnBhdGNoIGIvZ2Ri LXJoYnoxNDIwMzA0LXMzOTB4LTA3b2YzNS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi40OTJhODk0Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXJoYnoxNDIwMzA0LXMz OTB4LTA3b2YzNS5wYXRjaApAQCAtMCwwICsxLDUzIEBACitjb21taXQgY2E4N2FlNzQxZmU5Yzhh YWQ5ZGIxYWZiZjEwOWRjMDcwZDAxNjhjZgorQXV0aG9yOiBBbmRyZWFzIEtyZWJiZWwgPGtyZWJi ZWxAbGludXgudm5ldC5pYm0uY29tPgorRGF0ZTogICBNb24gTWF5IDI5IDEyOjM4OjQyIDIwMTcg KzAyMDAKKworICAgIFMvMzkwOiBGaXggaW5zdHJ1Y3Rpb24gdHlwZXMgb2YgY3NkdHIgYW5kIGNz eHRyCisgICAgCisgICAgb3Bjb2Rlcy9DaGFuZ2VMb2c6CisgICAgCisgICAgMjAxNy0wNS0zMCAg QW5kcmVhcyBLcmViYmVsICA8a3JlYmJlbEBsaW51eC52bmV0LmlibS5jb20+CisgICAgCisgICAg ICAgICAgICAqIHMzOTAtb3BjLmM6IEFkZCBuZXcgaW5zdHJ1Y3Rpb24gdHlwZXMgUlJGXzBVUkYg YW5kIFJSRl8wVVJFRkUuCisgICAgICAgICAgICAqIHMzOTAtb3BjLnR4dDogRml4IGluc3RydWN0 aW9uIHR5cHMgb2YgY3NkdHIgYW5kIGNzeHRyLgorICAgIAorICAgIGdhcy9DaGFuZ2VMb2c6Cisg ICAgCisgICAgMjAxNy0wNS0zMCAgQW5kcmVhcyBLcmViYmVsICA8a3JlYmJlbEBsaW51eC52bmV0 LmlibS5jb20+CisgICAgCisgICAgICAgICAgICAqIHRlc3RzdWl0ZS9nYXMvczM5MC96YXJjaC16 OS1lYy5kOiBBZGp1c3QgY3NkdHIgYW5kIGNzeHRyLgorICAgICAgICAgICAgKiB0ZXN0c3VpdGUv Z2FzL3MzOTAvemFyY2gtejktZWMuczogTGlrZXdpc2UuCisKKy0tLSBhL29wY29kZXMvczM5MC1v cGMuYworKysrIGIvb3Bjb2Rlcy9zMzkwLW9wYy5jCitAQCAtMzc0LDYgKzM3NCw4IEBAIGNvbnN0 IHN0cnVjdCBzMzkwX29wZXJhbmQgczM5MF9vcGVyYW5kc1tdID0KKyAjZGVmaW5lIElOU1RSX1JS Rl9VMFJFUiAgICA0LCB7IFJFXzI0LFJfMjgsVTRfMTYsMCwwLDAgfSAgICAgICAgIC8qIGUuZy4g dHJ0ZSAgKi8KKyAjZGVmaW5lIElOU1RSX1JSRl9VMFJFUkUgICA0LCB7IFJFXzI0LFJFXzI4LFU0 XzE2LDAsMCwwIH0gICAgICAgIC8qIGUuZy4gY3UyNCAgKi8KKyAjZGVmaW5lIElOU1RSX1JSRl8w MFJSICAgICA0LCB7IFJfMjQsUl8yOCwwLDAsMCwwIH0gICAgICAgICAgICAgIC8qIGUuZy4gY2xy dG5lICovCisrI2RlZmluZSBJTlNUUl9SUkZfMFVSRiAgICAgNCwgeyBSXzI0LEZfMjgsVTRfMjAs MCwwLDAgfSAgICAgICAgICAvKiBlLmcuIGNzZHRyICAqLworKyNkZWZpbmUgSU5TVFJfUlJGXzBV UkVGRSAgIDQsIHsgUkVfMjQsRkVfMjgsVTRfMjAsMCwwLDAgfSAgICAgICAgLyogZS5nLiBjc3h0 ciAgKi8KKyAjZGVmaW5lIElOU1RSX1JSRl9VVUZSICAgICA0LCB7IEZfMjQsVTRfMTYsUl8yOCxV NF8yMCwwLDAgfSAgICAgIC8qIGUuZy4gY2RndHJhICovCisgI2RlZmluZSBJTlNUUl9SUkZfVVVG RVIgICAgNCwgeyBGRV8yNCxVNF8xNixSXzI4LFU0XzIwLDAsMCB9ICAgICAvKiBlLmcuIGN4ZmJy YSAqLworICNkZWZpbmUgSU5TVFJfUlJGX1VVUkYgICAgIDQsIHsgUl8yNCxVNF8xNixGXzI4LFU0 XzIwLDAsMCB9ICAgICAgLyogZS5nLiBjZ2R0cmEgKi8KK0BAIC01OTAsNiArNTkyLDggQEAgY29u c3Qgc3RydWN0IHMzOTBfb3BlcmFuZCBzMzkwX29wZXJhbmRzW10gPQorICNkZWZpbmUgTUFTS19S UkZfVTBSRVIgICAgeyAweGZmLCAweGZmLCAweDBmLCAweDAwLCAweDAwLCAweDAwIH0KKyAjZGVm aW5lIE1BU0tfUlJGX1UwUkVSRSAgIHsgMHhmZiwgMHhmZiwgMHgwZiwgMHgwMCwgMHgwMCwgMHgw MCB9CisgI2RlZmluZSBNQVNLX1JSRl8wMFJSICAgICB7IDB4ZmYsIDB4ZmYsIDB4ZmYsIDB4MDAs IDB4MDAsIDB4MDAgfQorKyNkZWZpbmUgTUFTS19SUkZfMFVSRiAgICAgeyAweGZmLCAweGZmLCAw eGYwLCAweDAwLCAweDAwLCAweDAwIH0KKysjZGVmaW5lIE1BU0tfUlJGXzBVUkVGRSAgIHsgMHhm ZiwgMHhmZiwgMHhmMCwgMHgwMCwgMHgwMCwgMHgwMCB9CisgI2RlZmluZSBNQVNLX1JSRl9VVUZS ICAgICB7IDB4ZmYsIDB4ZmYsIDB4MDAsIDB4MDAsIDB4MDAsIDB4MDAgfQorICNkZWZpbmUgTUFT S19SUkZfVVVGRVIgICAgeyAweGZmLCAweGZmLCAweDAwLCAweDAwLCAweDAwLCAweDAwIH0KKyAj ZGVmaW5lIE1BU0tfUlJGX1VVUkYgICAgIHsgMHhmZiwgMHhmZiwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMCB9CistLS0gYS9vcGNvZGVzL3MzOTAtb3BjLnR4dAorKysrIGIvb3Bjb2Rlcy9zMzkwLW9w Yy50eHQKK0BAIC04MTcsOCArODE3LDggQEAgYjNmMiBjZHV0ciBSUkVfRlIgImNvbnZlcnQgZnJv bSB1bnNpZ25lZCBiY2QgdG8gbG9uZyBkZnAiIHo5LWVjIHphcmNoCisgYjNmYSBjeHV0ciBSUkVf RkVSICJjb252ZXJ0IGZyb20gdW5zaWduZWQgYmNkIHRvIGV4dGVuZGVkIGRmcCIgejktZWMgemFy Y2gKKyBiM2UxIGNnZHRyIFJSRl9VMFJGICJjb252ZXJ0IGZyb20gbG9uZyBkZnAgdG8gZml4ZWQi IHo5LWVjIHphcmNoCisgYjNlOSBjZ3h0ciBSUkZfVTBSRkUgImNvbnZlcnQgZnJvbSBleHRlbmRl ZCBkZnAgdG8gZml4ZWQiIHo5LWVjIHphcmNoCistYjNlMyBjc2R0ciBSUkVfUkYgImNvbnZlcnQg ZnJvbSBsb25nIGRmcCB0byBzaWduZWQgYmNkIiB6OS1lYyB6YXJjaAorLWIzZWIgY3N4dHIgUlJF X1JGRSAiY29udmVydCBmcm9tIGV4dGVuZGVkIGRmcCB0byBzaWduZWQgYmNkIiB6OS1lYyB6YXJj aAorK2IzZTMgY3NkdHIgUlJGXzBVUkYgImNvbnZlcnQgZnJvbSBsb25nIGRmcCB0byBzaWduZWQg YmNkIiB6OS1lYyB6YXJjaAorK2IzZWIgY3N4dHIgUlJGXzBVUkVGRSAiY29udmVydCBmcm9tIGV4 dGVuZGVkIGRmcCB0byBzaWduZWQgYmNkIiB6OS1lYyB6YXJjaAorIGIzZTIgY3VkdHIgUlJFX1JG ICJjb252ZXJ0IGZyb20gbG9uZyBkZnAgdG8gdW5zaWduZWQgYmNkIiB6OS1lYyB6YXJjaAorIGIz ZWEgY3V4dHIgUlJFX1JGRSAiY29udmVydCBmcm9tIGV4dGVuZGVkIGRmcCB0byB1bnNpZ25lZCBi Y2QiIHo5LWVjIHphcmNoCisgYjNkMSBkZHRyIFJSUl9GMEZGICJkaXZpZGUgbG9uZyBkZnAiIHo5 LWVjIHphcmNoCgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTA4b2YzNS5wYXRj aCBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0wOG9mMzUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uNzAzMzhjMwotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1yaGJ6MTQy MDMwNC1zMzkweC0wOG9mMzUucGF0Y2gKQEAgLTAsMCArMSw3NiBAQAorY29tbWl0IDE5ZmIzMWMw MDYwZjY0NmE5Zjg0YmUxYTg0ZWQxYmVhMDRlN2VkNTcKK0F1dGhvcjogQW5kcmVhcyBLcmViYmVs IDxrcmViYmVsQGxpbnV4LnZuZXQuaWJtLmNvbT4KK0RhdGU6ICAgVGh1IEp1biAxIDEzOjQ2OjE1 IDIwMTcgKzAyMDAKKworICAgIFMvMzkwOiBpZHRlL2lwdGUgZml4ZXMKKyAgICAKKyAgICBMYXRl ciBDUFUgZ2VuZXJhdGlvbnMgYWRkZWQgb3B0aW9uYWwgb3BlcmFuZHMgdG8gdGhlIGlwdGUvaWR0 ZQorICAgIGluc3RydWN0aW9ucy4gIEkndmUgYWRkZWQgdGhlc2Ugd2l0aDoKKyAgICBodHRwczov L3NvdXJjZXdhcmUub3JnL21sL2JpbnV0aWxzLzIwMTctMDUvbXNnMDAzMTYuaHRtbCAuLi4gYnV0 CisgICAgc3VwcG9ydGVkIHRoZSBvcHRpb25hbCBvcGVyYW5kcyBvbmx5IHdpdGggdGhlIHNwZWNp ZmljIGhhcmR3YXJlCisgICAgbGV2ZWxzLiAgSG93ZXZlciwgaXQgaXMgbW9yZSB1c2VmdWwgdG8g aGF2ZSB0aGUgb3B0aW9uYWwgb3BlcmFuZHMKKyAgICBhbHJlYWR5IGluIHRoZSBmaXJzdCB2ZXJz aW9ucy4gIE9mIGNvdXJzZSB0aGV5IG5lZWQgdG8gYmUgemVybyB0aGVyZS4KKyAgICAKKyAgICBS ZWdyZXNzaW9uLXRlc3RlZCB3aXRoIG9uIHMzOTAgYW5kIHMzOTB4LiAgQ29tbWl0dGVkIHRvIG1h aW5saW5lLgorICAgIAorICAgIEJ5ZSwKKyAgICAKKyAgICAtQW5kcmVhcy0KKyAgICAKKyAgICBv cGNvZGVzL0NoYW5nZUxvZzoKKyAgICAKKyAgICAyMDE3LTA2LTAxICBBbmRyZWFzIEtyZWJiZWwg IDxrcmViYmVsQGxpbnV4LnZuZXQuaWJtLmNvbT4KKyAgICAKKyAgICAgICAgICAgICogczM5MC1v cGMudHh0OiBTdXBwb3J0IHRoZSBvcHRpb25hbCBwYXJhbWV0ZXJzIHdpdGggdGhlIGZpcnN0Cisg ICAgICAgICAgICB2ZXJzaW9ucyBvZiBpcHRlL2lkdGUuCisgICAgCisgICAgZ2FzL0NoYW5nZUxv ZzoKKyAgICAKKyAgICAyMDE3LTA2LTAxICBBbmRyZWFzIEtyZWJiZWwgIDxrcmViYmVsQGxpbnV4 LnZuZXQuaWJtLmNvbT4KKyAgICAKKyAgICAgICAgICAgICogdGVzdHN1aXRlL2dhcy9zMzkwL2Vz YS1nNS5kOiBBZGQgaXB0ZSB0ZXN0cy4KKyAgICAgICAgICAgICogdGVzdHN1aXRlL2dhcy9zMzkw L2VzYS1nNS5zOiBMaWtld2lzZS4KKyAgICAgICAgICAgICogdGVzdHN1aXRlL2dhcy9zMzkwL3ph cmNoLXoxOTYuZDogUmVtb3ZlIGlwdGUgdGVzdHMuCisgICAgICAgICAgICAqIHRlc3RzdWl0ZS9n YXMvczM5MC96YXJjaC16MTk2LnM6IExpa2V3aXNlLgorICAgICAgICAgICAgKiB0ZXN0c3VpdGUv Z2FzL3MzOTAvemFyY2gtejk5MC5kOiBBZGQgaWR0ZSB0ZXN0cy4KKyAgICAgICAgICAgICogdGVz dHN1aXRlL2dhcy9zMzkwL3phcmNoLXo5OTAuczogTGlrZXdpc2UuCisgICAgICAgICAgICAqIHRl c3RzdWl0ZS9nYXMvczM5MC96YXJjaC16RUMxMi5kOiBSZW1vdmUgaXB0ZS9pZHRlIHRlc3RzLgor ICAgICAgICAgICAgKiB0ZXN0c3VpdGUvZ2FzL3MzOTAvemFyY2gtekVDMTIuczogTGlrZXdpc2Uu CisKKy0tLSBhL29wY29kZXMvczM5MC1vcGMudHh0CisrKysgYi9vcGNvZGVzL3MzOTAtb3BjLnR4 dAorQEAgLTc5LDcgKzc5LDcgQEAgYjIyNCBpYWMgUlJFX1IwICJpbnNlcnQgYWRkcmVzcyBzcGFj ZSBjb250cm9sIiBnNSBlc2EsemFyY2gKKyBiZiBpY20gUlNfUlVSRCAiaW5zZXJ0IGNoYXJhY3Rl cnMgdW5kZXIgbWFzayIgZzUgZXNhLHphcmNoCisgYjIwYiBpcGsgU18wMCAiaW5zZXJ0IFBTVyBr ZXkiIGc1IGVzYSx6YXJjaAorIGIyMjIgaXBtIFJSRV9SMCAiaW5zZXJ0IHByb2dyYW0gbWFzayIg ZzUgZXNhLHphcmNoCistYjIyMSBpcHRlIFJSRV9SUiAiaW52YWxpZGF0ZSBwYWdlIHRhYmxlIGVu dHJ5IiBnNSBlc2EsemFyY2gKKytiMjIxIGlwdGUgUlJGX1JVUlIgImludmFsaWRhdGUgcGFnZSB0 YWJsZSBlbnRyeSIgZzUgZXNhLHphcmNoIG9wdHBhcm0yCisgYjIyOSBpc2tlIFJSRV9SUiAiaW5z ZXJ0IHN0b3JhZ2Uga2V5IGV4dGVuZGVkIiBnNSBlc2EsemFyY2gKKyBiMjIzIGl2c2sgUlJFX1JS ICJpbnNlcnQgdmlydHVhbCBzdG9yYWdlIGtleSIgZzUgZXNhLHphcmNoCisgNTggbCBSWF9SUlJE ICJsb2FkIiBnNSBlc2EsemFyY2gKK0BAIC03MDAsNyArNzAwLDcgQEAgZWIwMDAwMDAwMDhmIGNs Y2x1IFJTWV9SUlJEICJjb21wYXJlIGxvZ2ljYWwgbG9uZyB1bmljb2RlIHdpdGggbG9uZyBvZmZz ZXQiIHo5OTAKKyBlYjAwMDAwMDAwOTYgbG1oIFJTWV9SUlJEICJsb2FkIG11bHRpcGxlIGhpZ2gi IHo5OTAgemFyY2gKKyAjIG5ldyB6OTkwIGluc3RydWN0aW9ucworIGI5OGEgY3NwZyBSUkVfUlIg ImNvbXBhcmUgYW5kIHN3YXAgYW5kIHB1cmdlIiB6OTkwIHphcmNoCistYjk4ZSBpZHRlIFJSRl9S MFJSICJpbnZhbGlkYXRlIGRhdCB0YWJsZSBlbnRyeSIgejk5MCB6YXJjaAorK2I5OGUgaWR0ZSBS UkZfUlVSUjIgImludmFsaWRhdGUgZGF0IHRhYmxlIGVudHJ5IiB6OTkwIHphcmNoIG9wdHBhcm0K KyBiMzNlIG1hZHIgUlJGX0YwRkYgIm11bHRpcGx5IGFuZCBhZGQgbG9uZyBoZnAiIHo5OTAgZXNh LHphcmNoCisgZWQwMDAwMDAwMDNlIG1hZCBSWEZfRlJSREYgIm11bHRpcGx5IGFuZCBhZGQgbG9u ZyBoZnAiIHo5OTAgZXNhLHphcmNoCisgYjMyZSBtYWVyIFJSRl9GMEZGICJtdWx0aXBseSBhbmQg YWRkIHNob3J0IGhmcCIgejk5MCBlc2EsemFyY2gKK0BAIC0xMTE2LDcgKzExMTYsNiBAQCBiOTJi IGttbyBSUkVfUlIgImNpcGhlciBtZXNzYWdlIHdpdGggT0ZCIiB6MTk2IHphcmNoCisgYjkyYyBw Y2MgUlJFXzAwICJwZXJmb3JtIGNyeXB0b2dyYXBoaWMgY29tcHV0YXRpb24iIHoxOTYgemFyY2gK KyBiOTJkIGttY3RyIFJSRl9SMFJSICJjaXBoZXIgbWVzc2FnZSB3aXRoIGNvdW50ZXIiIHoxOTYg emFyY2gKKyBiOTI4IHBja21vIFJSRV8wMCAicGVyZm9ybSBjcnlwdG9ncmFwaGljIGtleSBtYW5h Z2VtZW50IG9wZXJhdGlvbiIgejE5NiB6YXJjaAorLWIyMjEgaXB0ZSBSUkZfUjBSUjIgImludmFs aWRhdGUgcGFnZSB0YWJsZSBlbnRyeSIgejE5NiB6YXJjaCBvcHRwYXJtCisgCisgIyBUaGUgbmV3 IGluc3RydWN0aW9ucyBvZiB0aGUgSUJNIHpFbnRlcnByaXNlIEVDMTIKKyBiMmVjIGV0bmQgUlJF X1IwICJleHRyYWN0IHRyYW5zYWN0aW9uIG5lc3RpbmcgZGVwdGgiIHpFQzEyIHphcmNoIGh0bQor QEAgLTExNDQsOCArMTE0Myw2IEBAIGVkMDAwMDAwMDBhYSBjZHp0IFJTTF9MUkRGVSAiY29udmVy dCBmcm9tIHpvbmVkIGxvbmciIHpFQzEyIHphcmNoCisgZWQwMDAwMDAwMGFiIGN4enQgUlNMX0xS REZFVSAiY29udmVydCBmcm9tIHpvbmVkIGV4dGVuZGVkIiB6RUMxMiB6YXJjaAorIGVkMDAwMDAw MDBhOCBjemR0IFJTTF9MUkRGVSAiY29udmVydCB0byB6b25lZCBsb25nIiB6RUMxMiB6YXJjaAor IGVkMDAwMDAwMDBhOSBjenh0IFJTTF9MUkRGRVUgImNvbnZlcnQgdG8gem9uZWQgZXh0ZW5kZWQi IHpFQzEyIHphcmNoCistYjk4ZSBpZHRlIFJSRl9SVVJSMiAiaW52YWxpZGF0ZSBkYXQgdGFibGUg ZW50cnkiIHpFQzEyIHphcmNoIG9wdHBhcm0KKy1iMjIxIGlwdGUgUlJGX1JVUlIgImludmFsaWRh dGUgcGFnZSB0YWJsZSBlbnRyeSIgekVDMTIgemFyY2ggb3B0cGFybTIKKyAKKyAjIFRoZSBuZXcg aW5zdHJ1Y3Rpb25zIG9mIElCTSB6MTMKKyAKCmRpZmYgLS1naXQgYS9nZGItcmhiejE0MjAzMDQt czM5MHgtMDlvZjM1LnBhdGNoIGIvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTA5b2YzNS5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZDJmYWRhCi0tLSAvZGV2L251bGwK KysrIGIvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTA5b2YzNS5wYXRjaApAQCAtMCwwICsxLDEyMyBA QAorY29tbWl0IDM3MDRlMzU4OWQzZDE4N2ZiZjc2ZTY4ODM4OGIxYTkyZmQ2MjdjOGQKK0F1dGhv cjogQW5kcmVhcyBLcmViYmVsIDxrcmViYmVsQGxpbnV4LnZuZXQuaWJtLmNvbT4KK0RhdGU6ICAg RnJpIEp1biA5IDExOjE5OjAxIDIwMTcgKzAyMDAKKworICAgIFMvMzkwOiBSZXR1cm4gd2l0aCBh biBlcnJvciBmb3IgYnJva2VuIHRscyByZXdyaXRlcworICAgIAorICAgIGJmZC9DaGFuZ2VMb2c6 CisgICAgCisgICAgMjAxNy0wNi0xMiAgQW5kcmVhcyBLcmViYmVsICA8a3JlYmJlbEBsaW51eC52 bmV0LmlibS5jb20+CisgICAgCisgICAgICAgICAgICAqIGVsZjMyLXMzOTAuYyAoZWxmX3MzOTBf cmVsb2NhdGVfc2VjdGlvbik6IFJldHVybiBmYWxzZSBpbiBjYXNlCisgICAgICAgICAgICB0aGUg cmV3cml0aW5nIGZhaWxzLgorICAgICAgICAgICAgKiBlbGY2NC1zMzkwLmMgKGVsZl9zMzkwX3Jl bG9jYXRlX3NlY3Rpb24pOiBMaWtld2lzZS4KKworLS0tIGEvYmZkL2VsZjMyLXMzOTAuYworKysr IGIvYmZkL2VsZjMyLXMzOTAuYworQEAgLTMyMzEsNyArMzIzMSw2IEBAIGVsZl9zMzkwX3JlbG9j YXRlX3NlY3Rpb24gKGJmZCAqb3V0cHV0X2JmZCwKKyAJCSAgdW5zaWduZWQgaW50IGluc24sIHJ5 OworIAorIAkJICBpbnNuID0gYmZkX2dldF8zMiAoaW5wdXRfYmZkLCBjb250ZW50cyArIHJlbC0+ cl9vZmZzZXQpOworLQkJICByeSA9IDA7CisgCQkgIGlmICgoaW5zbiAmIDB4ZmYwMGYwMDApID09 IDB4NTgwMDAwMDApCisgCQkgICAgLyogbCAlcngsMCglcnksMCkgLT4gbHIgJXJ4LCVyeSArIGJj ciAwLDAgICovCisgCQkgICAgcnkgPSAoaW5zbiAmIDB4MDAwZjAwMDApOworQEAgLTMyNDUsNyAr MzI0NCwxMCBAQCBlbGZfczM5MF9yZWxvY2F0ZV9zZWN0aW9uIChiZmQgKm91dHB1dF9iZmQsCisg CQkgICAgLyogbCAlcngsMCglcjEyLCVyeSkgLT4gbHIgJXJ4LCVyeSArIGJjciAwLDAgICovCisg CQkgICAgcnkgPSAoaW5zbiAmIDB4MDAwMGYwMDApIDw8IDQ7CisgCQkgIGVsc2UKKy0JCSAgICBp bnZhbGlkX3Rsc19pbnNuIChpbnB1dF9iZmQsIGlucHV0X3NlY3Rpb24sIHJlbCk7CisrCQkgICAg eworKwkJICAgICAgaW52YWxpZF90bHNfaW5zbiAoaW5wdXRfYmZkLCBpbnB1dF9zZWN0aW9uLCBy ZWwpOworKwkJICAgICAgcmV0dXJuIEZBTFNFOworKwkJICAgIH0KKyAJCSAgaW5zbiA9IDB4MTgw MDA3MDAgfCAoaW5zbiAmIDB4MDBmMDAwMDApIHwgcnk7CisgCQkgIGJmZF9wdXRfMzIgKG91dHB1 dF9iZmQsIGluc24sIGNvbnRlbnRzICsgcmVsLT5yX29mZnNldCk7CisgCQl9CitAQCAtMzI1OCw3 ICszMjYwLDEwIEBAIGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rpb24gKGJmZCAqb3V0cHV0X2JmZCwK KyAJICAgICAgaWYgKChpbnNuICYgMHhmZjAwMGZmZikgIT0gMHg0ZDAwMDAwMCAmJgorIAkJICAo aW5zbiAmIDB4ZmZmZjAwMDApICE9IDB4YzBlNTAwMDAgJiYKKyAJCSAgKGluc24gJiAweGZmMDAw MDAwKSAhPSAweDBkMDAwMDAwKQorLQkJaW52YWxpZF90bHNfaW5zbiAoaW5wdXRfYmZkLCBpbnB1 dF9zZWN0aW9uLCByZWwpOworKwkJeworKwkJICBpbnZhbGlkX3Rsc19pbnNuIChpbnB1dF9iZmQs IGlucHV0X3NlY3Rpb24sIHJlbCk7CisrCQkgIHJldHVybiBGQUxTRTsKKysJCX0KKyAJICAgICAg aWYgKCFiZmRfbGlua19waWMgKGluZm8pICYmIChoID09IE5VTEwgfHwgaC0+ZHluaW5keCA9PSAt MSkpCisgCQl7CisgCQkgIGlmICgoaW5zbiAmIDB4ZmYwMDAwMDApID09IDB4MGQwMDAwMDApCitA QCAtMzI4Nyw3ICszMjkyLDEwIEBAIGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rpb24gKGJmZCAqb3V0 cHV0X2JmZCwKKyAJCSAgLyogSWYgYmFzciBpcyB1c2VkIGluIHRoZSBwaWMgY2FzZSB0byBpbnZv a2UKKyAJCSAgICAgX3Rsc19nZXRfb2Zmc2V0LCBzb21ldGhpbmcgd2VudCB3cm9uZyBiZWZvcmUu ICAqLworIAkJICBpZiAoKGluc24gJiAweGZmMDAwMDAwKSA9PSAweDBkMDAwMDAwKQorLQkJICAg IGludmFsaWRfdGxzX2luc24gKGlucHV0X2JmZCwgaW5wdXRfc2VjdGlvbiwgcmVsKTsKKysJCSAg ICB7CisrCQkgICAgICBpbnZhbGlkX3Rsc19pbnNuIChpbnB1dF9iZmQsIGlucHV0X3NlY3Rpb24s IHJlbCk7CisrCQkgICAgICByZXR1cm4gRkFMU0U7CisrCQkgICAgfQorIAorIAkJICBpZiAoKGlu c24gJiAweGZmMDAwMDAwKSA9PSAweDRkMDAwMDAwKQorIAkJICAgIHsKK0BAIC0zMzE3LDcgKzMz MjUsMTAgQEAgZWxmX3MzOTBfcmVsb2NhdGVfc2VjdGlvbiAoYmZkICpvdXRwdXRfYmZkLAorIAkJ ICBpZiAoKGluc24gJiAweGZmMDAwZmZmKSAhPSAweDRkMDAwMDAwICYmCisgCQkgICAgICAoaW5z biAmIDB4ZmZmZjAwMDApICE9IDB4YzBlNTAwMDAgJiYKKyAJCSAgICAgIChpbnNuICYgMHhmZjAw MDAwMCkgIT0gMHgwZDAwMDAwMCkKKy0JCSAgICBpbnZhbGlkX3Rsc19pbnNuIChpbnB1dF9iZmQs IGlucHV0X3NlY3Rpb24sIHJlbCk7CisrCQkgICAgeworKwkJICAgICAgaW52YWxpZF90bHNfaW5z biAoaW5wdXRfYmZkLCBpbnB1dF9zZWN0aW9uLCByZWwpOworKwkJICAgICAgcmV0dXJuIEZBTFNF OworKwkJICAgIH0KKyAKKyAJCSAgaWYgKChpbnNuICYgMHhmZjAwMDAwMCkgPT0gMHgwZDAwMDAw MCkKKyAJCSAgICB7CistLS0gYS9iZmQvZWxmNjQtczM5MC5jCisrKysgYi9iZmQvZWxmNjQtczM5 MC5jCitAQCAtMzE5Nyw4ICszMTk3LDEwIEBAIGVsZl9zMzkwX3JlbG9jYXRlX3NlY3Rpb24gKGJm ZCAqb3V0cHV0X2JmZCwKKyAJCSAgaW5zbjAgPSBiZmRfZ2V0XzMyIChpbnB1dF9iZmQsIGNvbnRl bnRzICsgcmVsLT5yX29mZnNldCk7CisgCQkgIGluc24xID0gYmZkX2dldF8xNiAoaW5wdXRfYmZk LCBjb250ZW50cyArIHJlbC0+cl9vZmZzZXQgKyA0KTsKKyAJCSAgaWYgKGluc24xICE9IDB4MDAw NCkKKy0JCSAgICBpbnZhbGlkX3Rsc19pbnNuIChpbnB1dF9iZmQsIGlucHV0X3NlY3Rpb24sIHJl bCk7CistCQkgIHJ5ID0gMDsKKysJCSAgICB7CisrCQkgICAgICBpbnZhbGlkX3Rsc19pbnNuIChp bnB1dF9iZmQsIGlucHV0X3NlY3Rpb24sIHJlbCk7CisrCQkgICAgICByZXR1cm4gRkFMU0U7Cisr CQkgICAgfQorIAkJICBpZiAoKGluc24wICYgMHhmZjAwZjAwMCkgPT0gMHhlMzAwMDAwMCkKKyAJ CSAgICAvKiBsZyAlcngsMCglcnksMCkgLT4gc2xsZyAlcngsJXJ5LDAgICovCisgCQkgICAgcnkg PSAoaW5zbjAgJiAweDAwMGYwMDAwKTsKK0BAIC0zMjEyLDcgKzMyMTQsMTAgQEAgZWxmX3MzOTBf cmVsb2NhdGVfc2VjdGlvbiAoYmZkICpvdXRwdXRfYmZkLAorIAkJICAgIC8qIGxnICVyeCwwKCVy MTIsJXJ5KSAtPiBzbGxnICVyeCwlcnksMCAgKi8KKyAJCSAgICByeSA9IChpbnNuMCAmIDB4MDAw MGYwMDApIDw8IDQ7CisgCQkgIGVsc2UKKy0JCSAgICBpbnZhbGlkX3Rsc19pbnNuIChpbnB1dF9i ZmQsIGlucHV0X3NlY3Rpb24sIHJlbCk7CisrCQkgICAgeworKwkJICAgICAgaW52YWxpZF90bHNf aW5zbiAoaW5wdXRfYmZkLCBpbnB1dF9zZWN0aW9uLCByZWwpOworKwkJICAgICAgcmV0dXJuIEZB TFNFOworKwkJICAgIH0KKyAJCSAgaW5zbjAgPSAweGViMDAwMDAwIHwgKGluc24wICYgMHgwMGYw MDAwMCkgfCByeTsKKyAJCSAgaW5zbjEgPSAweDAwMGQ7CisgCQkgIGJmZF9wdXRfMzIgKG91dHB1 dF9iZmQsIGluc24wLCBjb250ZW50cyArIHJlbC0+cl9vZmZzZXQpOworQEAgLTMyMjYsNyArMzIz MSwxMCBAQCBlbGZfczM5MF9yZWxvY2F0ZV9zZWN0aW9uIChiZmQgKm91dHB1dF9iZmQsCisgCSAg ICAgIGluc24wID0gYmZkX2dldF8zMiAoaW5wdXRfYmZkLCBjb250ZW50cyArIHJlbC0+cl9vZmZz ZXQpOworIAkgICAgICBpbnNuMSA9IGJmZF9nZXRfMTYgKGlucHV0X2JmZCwgY29udGVudHMgKyBy ZWwtPnJfb2Zmc2V0ICsgNCk7CisgCSAgICAgIGlmICgoaW5zbjAgJiAweGZmZmYwMDAwKSAhPSAw eGMwZTUwMDAwKQorLQkJaW52YWxpZF90bHNfaW5zbiAoaW5wdXRfYmZkLCBpbnB1dF9zZWN0aW9u LCByZWwpOworKwkJeworKwkJICBpbnZhbGlkX3Rsc19pbnNuIChpbnB1dF9iZmQsIGlucHV0X3Nl Y3Rpb24sIHJlbCk7CisrCQkgIHJldHVybiBGQUxTRTsKKysJCX0KKyAJICAgICAgaWYgKCFiZmRf bGlua19waWMgKGluZm8pICYmIChoID09IE5VTEwgfHwgaC0+ZHluaW5keCA9PSAtMSkpCisgCQl7 CisgCQkgIC8qIEdELT5MRSB0cmFuc2l0aW9uLgorQEAgLTMyNTMsNyArMzI2MSwxMCBAQCBlbGZf czM5MF9yZWxvY2F0ZV9zZWN0aW9uIChiZmQgKm91dHB1dF9iZmQsCisgCQkgIGluc24wID0gYmZk X2dldF8zMiAoaW5wdXRfYmZkLCBjb250ZW50cyArIHJlbC0+cl9vZmZzZXQpOworIAkJICBpbnNu MSA9IGJmZF9nZXRfMTYgKGlucHV0X2JmZCwgY29udGVudHMgKyByZWwtPnJfb2Zmc2V0ICsgNCk7 CisgCQkgIGlmICgoaW5zbjAgJiAweGZmZmYwMDAwKSAhPSAweGMwZTUwMDAwKQorLQkJICAgIGlu dmFsaWRfdGxzX2luc24gKGlucHV0X2JmZCwgaW5wdXRfc2VjdGlvbiwgcmVsKTsKKysJCSAgICB7 CisrCQkgICAgICBpbnZhbGlkX3Rsc19pbnNuIChpbnB1dF9iZmQsIGlucHV0X3NlY3Rpb24sIHJl bCk7CisrCQkgICAgICByZXR1cm4gRkFMU0U7CisrCQkgICAgfQorIAkJICAvKiBMRC0+TEUgdHJh bnNpdGlvbi4KKyAJCSAgICAgYnJhc2wgJXIxNCxfX3Rsc19nZXRfYWRkckBwbHQgLT4gYnJjbCAw LC4gKi8KKyAJCSAgaW5zbjAgPSAweGMwMDQwMDAwOwoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6MTQy MDMwNC1zMzkweC0xMG9mMzUucGF0Y2ggYi9nZGItcmhiejE0MjAzMDQtczM5MHgtMTBvZjM1LnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2MDQ4NWMKLS0tIC9kZXYv bnVsbAorKysgYi9nZGItcmhiejE0MjAzMDQtczM5MHgtMTBvZjM1LnBhdGNoCkBAIC0wLDAgKzEs MjcwIEBACitjb21taXQgMDU2N2M5ODYxZTExM2E1NzNjYzkwNTAwMmE1OWNiMWJjM2Q3ODQ1MAor QXV0aG9yOiBBbmRyZWFzIEFybmV6IDxhcm5lekBsaW51eC52bmV0LmlibS5jb20+CitEYXRlOiAg IFR1ZSBKdW4gMTMgMTU6MjA6MjUgMjAxNyArMDIwMAorCisgICAgQWRkIHRlc3QgZm9yIG1vZGlm aWFibGUgRFdBUkYgbG9jYXRpb25zCisgICAgCisgICAgVGhpcyBhZGRzIGEgdGVzdCBmb3IgcmVh ZC93cml0ZSBhY2Nlc3MgdG8gdmFyaWFibGVzIHdpdGggdmFyaW91cyB0eXBlcyBvZgorICAgIERX QVJGIGxvY2F0aW9ucy4gIEl0IHVzZXMgcmVnaXN0ZXItIGFuZCBtZW1vcnkgbG9jYXRpb25zIGFu ZCBjb21wb3NpdGUKKyAgICBsb2NhdGlvbnMgd2l0aCByZWdpc3Rlci0gYW5kIG1lbW9yeSBwaWVj ZXMuCisgICAgCisgICAgU2luY2UgdGhlIG5ldyB0ZXN0IGNhbGxzIGdkYl90ZXN0X25vX291dHB1 dCB3aXRoIGNvbW1hbmRzIHRoYXQgY29udGFpbgorICAgIGJyYWNlcywgaXQgaXMgbmVjZXNzYXJ5 IGZvciBzdHJpbmdfdG9fcmVnZXhwIHRvIHF1b3RlIGJyYWNlcyBhcyB3ZWxsLgorICAgIFRoaXMg d2FzIG5vdCBkb25lIGJlZm9yZS4KKyAgICAKKyAgICBnZGIvdGVzdHN1aXRlL0NoYW5nZUxvZzoK KyAgICAKKyAgICAgICAgICAgICogZ2RiLmR3YXJmMi92YXItYWNjZXNzLmM6IE5ldyBmaWxlLgor ICAgICAgICAgICAgKiBnZGIuZHdhcmYyL3Zhci1hY2Nlc3MuZXhwOiBOZXcgdGVzdC4KKyAgICAg ICAgICAgICogbGliL2dkYi11dGlscy5leHAgKHN0cmluZ190b19yZWdleHApOiBRdW90ZSBicmFj ZXMgYXMgd2VsbC4KKworIyMjIGEvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKKyMjIyBiL2dkYi90 ZXN0c3VpdGUvQ2hhbmdlTG9nCisjIyAtMSwzICsxLDkgQEAKKysyMDE3LTA2LTEzICBBbmRyZWFz IEFybmV6ICA8YXJuZXpAbGludXgudm5ldC5pYm0uY29tPgorKworKwkqIGdkYi5kd2FyZjIvdmFy LWFjY2Vzcy5jOiBOZXcgZmlsZS4KKysJKiBnZGIuZHdhcmYyL3Zhci1hY2Nlc3MuZXhwOiBOZXcg dGVzdC4KKysJKiBsaWIvZ2RiLXV0aWxzLmV4cCAoc3RyaW5nX3RvX3JlZ2V4cCk6IFF1b3RlIGJy YWNlcyBhcyB3ZWxsLgorKworIDIwMTctMDYtMTIgIFRvbSBUcm9tZXkgIDx0b21AdHJvbWV5LmNv bT4KKyAKKyAJKiBnZGIuZHdhcmYyL2Zvcm1kYXRhMTYuZXhwOiBBZGQgdGVzdHMuCistLS0gL2Rl di9udWxsCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvdmFyLWFjY2Vzcy5jCitAQCAt MCwwICsxLDI1IEBACisrLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBk ZWJ1Z2dlci4KKysKKysgICBDb3B5cmlnaHQgMjAxNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrICAgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IK KysgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoaXMgcHJv Z3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor KyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZQorKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh bS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisr Y2hhciBidWZbXSA9IHswLCAxLCAyLCAzLCA0LCA1LCA2LCA3fTsKKysKKytpbnQKKyttYWluICh2 b2lkKQorK3sKKysgIGFzbSB2b2xhdGlsZSAoIm1haW5fbGFiZWw6IC5nbG9ibCBtYWluX2xhYmVs Iik7CisrICByZXR1cm4gMDsKKyt9CistLS0gL2Rldi9udWxsCisrKysgYi9nZGIvdGVzdHN1aXRl L2dkYi5kd2FyZjIvdmFyLWFjY2Vzcy5leHAKK0BAIC0wLDAgKzEsMTk3IEBACisrIyBDb3B5cmln aHQgMjAxNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysjIFRoaXMgcHJvZ3Jh bSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5 CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy IHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxh dGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor KyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uCisrCisrIyBUZXN0IHJlYWRpbmcvd3JpdGluZyB2YXJpYWJsZXMgd2l0 aCBub24tdHJpdmlhbCBEV0FSRiBsb2NhdGlvbnMuICBJbgorKyMgcGFydGljdWxhciB0aGUgdGVz dCB1c2VzIHJlZ2lzdGVyLSBhbmQgbWVtb3J5IGxvY2F0aW9ucyBhcyB3ZWxsIGFzCisrIyBjb21w b3NpdGUgbG9jYXRpb25zIHdpdGggcmVnaXN0ZXItIGFuZCBtZW1vcnkgcGllY2VzLgorKworK2xv YWRfbGliIGR3YXJmLmV4cAorKworKyMgVGhpcyB0ZXN0IGNhbiBvbmx5IGJlIHJ1biBvbiB0YXJn ZXRzIHdoaWNoIHN1cHBvcnQgRFdBUkYtMiBhbmQgdXNlIGdhcy4KKytpZiB7IVtkd2FyZjJfc3Vw cG9ydF19IHsKKysgICAgcmV0dXJuIDAKKyt9CisrCisrIyBDaG9vc2Ugc3VpdGFibGUgaW50ZWdl ciByZWdpc3RlcnMgZm9yIHRoZSB0ZXN0LgorKworK3NldCBkd2FyZl9yZWdudW0gezAgMX0KKysK KytpZiB7IFtpc3RhcmdldCAiYWFyY2g2NCotKi0qIl0gfSB7CisrICAgIHNldCByZWduYW1lIHt4 MCB4MX0KKyt9IGVsc2VpZiB7IFtpc3RhcmdldCAiYXJtKi0qLSoiXQorKwkgICB8fCBbaXN0YXJn ZXQgInMzOTAqLSotKiIgXQorKwkgICB8fCBbaXN0YXJnZXQgInBvd2VycGMqLSotKiJdCisrCSAg IHx8IFtpc3RhcmdldCAicnM2MDAwKi0qLWFpeCoiXSB9IHsKKysgICAgc2V0IHJlZ25hbWUge3Iw IHIxfQorK30gZWxzZWlmIHsgW2lzdGFyZ2V0ICJpPzg2LSotKiJdIH0geworKyAgICBzZXQgcmVn bmFtZSB7ZWF4IGVkeH0KKyt9IGVsc2VpZiB7IFtpc3RhcmdldCAieDg2XzY0LSotKiJdIH0gewor KyAgICBzZXQgcmVnbmFtZSB7cmF4IHJkeH0KKyt9IGVsc2UgeworKyAgICB2ZXJib3NlICJTa2lw cGluZyB0ZXN0cyBmb3IgYWNjZXNzaW5nIERXQVJGLWRlc2NyaWJlZCB2YXJpYWJsZXMuIgorKyAg ICByZXR1cm4KKyt9CisrCisrc3RhbmRhcmRfdGVzdGZpbGUgLmMgJHtnZGJfdGVzdF9maWxlX25h bWV9LWR3LlMKKysKKysjIE1ha2Ugc29tZSBEV0FSRiBmb3IgdGhlIHRlc3QuCisrCisrc2V0IGFz bV9maWxlIFtzdGFuZGFyZF9vdXRwdXRfZmlsZSAkc3JjZmlsZTJdCisrRHdhcmY6OmFzc2VtYmxl ICRhc21fZmlsZSB7CisrICAgIGdsb2JhbCBzcmNkaXIgc3ViZGlyIHNyY2ZpbGUKKysgICAgZ2xv YmFsIGR3YXJmX3JlZ251bSByZWduYW1lCisrCisrICAgIHNldCBidWZfdmFyIFtnZGJfdGFyZ2V0 X3N5bWJvbCBidWZdCisrCisrICAgIGN1IHt9IHsKKysJRFdfVEFHX2NvbXBpbGVfdW5pdCB7Cisr CQl7RFdfQVRfbmFtZSB2YXItcGllY2VzLWR3LmN9CisrCQl7RFdfQVRfY29tcF9kaXIgL3RtcH0K KysJfSB7CisrCSAgICBkZWNsYXJlX2xhYmVscyBjaGFyX3R5cGVfbGFiZWwKKysJICAgIGRlY2xh cmVfbGFiZWxzIGludF90eXBlX2xhYmVsIHNob3J0X3R5cGVfbGFiZWwKKysJICAgIGRlY2xhcmVf bGFiZWxzIGFycmF5X2E4X2xhYmVsIHN0cnVjdF9zX2xhYmVsCisrCisrCSAgICAjIGNoYXIKKysJ ICAgIGNoYXJfdHlwZV9sYWJlbDogYmFzZV90eXBlIHsKKysJCXtuYW1lICJjaGFyIn0KKysJCXtl bmNvZGluZyBARFdfQVRFX3Vuc2lnbmVkX2NoYXJ9CisrCQl7Ynl0ZV9zaXplIDEgRFdfRk9STV9z ZGF0YX0KKysJICAgIH0KKysKKysJICAgICMgaW50CisrCSAgICBpbnRfdHlwZV9sYWJlbDogYmFz ZV90eXBlIHsKKysJCXtuYW1lICJpbnQifQorKwkJe2VuY29kaW5nIEBEV19BVEVfc2lnbmVkfQor KwkJe2J5dGVfc2l6ZSA0IERXX0ZPUk1fc2RhdGF9CisrCSAgICB9CisrCisrCSAgICAjIGNoYXIg WzhdCisrCSAgICBhcnJheV9hOF9sYWJlbDogYXJyYXlfdHlwZSB7CisrCQl7dHlwZSA6JGNoYXJf dHlwZV9sYWJlbH0KKysJICAgIH0geworKwkJc3VicmFuZ2VfdHlwZSB7CisrCQkgICAge3R5cGUg OiRpbnRfdHlwZV9sYWJlbH0KKysJCSAgICB7dXBwZXJfYm91bmQgNyBEV19GT1JNX3VkYXRhfQor KwkJfQorKwkgICAgfQorKworKwkgICAgIyBzdHJ1Y3QgcyB7IGNoYXIgYSwgYiwgYywgZDsgfTsK KysJICAgIHN0cnVjdF9zX2xhYmVsOiBzdHJ1Y3R1cmVfdHlwZSB7CisrCQl7bmFtZSAicyJ9Cisr CQl7Ynl0ZV9zaXplIDQgRFdfRk9STV9zZGF0YX0KKysJICAgIH0geworKwkJbWVtYmVyIHsKKysJ CSAgICB7bmFtZSAiYSJ9CisrCQkgICAge3R5cGUgOiRjaGFyX3R5cGVfbGFiZWx9CisrCQkgICAg e2RhdGFfbWVtYmVyX2xvY2F0aW9uIDAgRFdfRk9STV91ZGF0YX0KKysJCX0KKysJCW1lbWJlciB7 CisrCQkgICAge25hbWUgImIifQorKwkJICAgIHt0eXBlIDokY2hhcl90eXBlX2xhYmVsfQorKwkJ ICAgIHtkYXRhX21lbWJlcl9sb2NhdGlvbiAxIERXX0ZPUk1fdWRhdGF9CisrCQl9CisrCQltZW1i ZXIgeworKwkJICAgIHtuYW1lICJjIn0KKysJCSAgICB7dHlwZSA6JGNoYXJfdHlwZV9sYWJlbH0K KysJCSAgICB7ZGF0YV9tZW1iZXJfbG9jYXRpb24gMiBEV19GT1JNX3VkYXRhfQorKwkJfQorKwkJ bWVtYmVyIHsKKysJCSAgICB7bmFtZSAiZCJ9CisrCQkgICAge3R5cGUgOiRjaGFyX3R5cGVfbGFi ZWx9CisrCQkgICAge2RhdGFfbWVtYmVyX2xvY2F0aW9uIDMgRFdfRk9STV91ZGF0YX0KKysJCX0K KysJICAgIH0KKysKKysJICAgIERXX1RBR19zdWJwcm9ncmFtIHsKKysJCXtNQUNST19BVF9mdW5j IHsgbWFpbiAke3NyY2Rpcn0vJHtzdWJkaXJ9LyR7c3JjZmlsZX0gfX0KKysJCXtEV19BVF9leHRl cm5hbCAxIGZsYWd9CisrCSAgICB9IHsKKysJCSMgU2ltcGxlIG1lbW9yeSBsb2NhdGlvbi4KKysJ CURXX1RBR192YXJpYWJsZSB7CisrCQkgICAge25hbWUgImEifQorKwkJICAgIHt0eXBlIDokYXJy YXlfYThfbGFiZWx9CisrCQkgICAge2xvY2F0aW9uIHsKKysJCQlhZGRyICRidWZfdmFyCisrCQkg ICAgfSBTUEVDSUFMX2V4cHJ9CisrCQl9CisrCQkjIE1lbW9yeSBwaWVjZXM6IHR3byBieXRlcyBm cm9tICZidWZbMl0sIGFuZCB0d28gYnl0ZXMKKysJCSMgZnJvbSAmYnVmWzBdLgorKwkJRFdfVEFH X3ZhcmlhYmxlIHsKKysJCSAgICB7bmFtZSAiczEifQorKwkJICAgIHt0eXBlIDokc3RydWN0X3Nf bGFiZWx9CisrCQkgICAge2xvY2F0aW9uIHsKKysJCQlhZGRyICRidWZfdmFyCisrCQkJcGx1c191 Y29uc3QgMgorKwkJCXBpZWNlIDIKKysJCQlhZGRyICRidWZfdmFyCisrCQkJcGllY2UgMgorKwkJ ICAgIH0gU1BFQ0lBTF9leHByfQorKwkJfQorKwkJIyBSZWdpc3Rlci0gYW5kIG1lbW9yeSBwaWVj ZXM6IG9uZSBieXRlIGVhY2ggZnJvbSByMCwKKysJCSMgJmJ1Zls0XSwgcjEsIGFuZCAmYnVmWzVd LgorKwkJRFdfVEFHX3ZhcmlhYmxlIHsKKysJCSAgICB7bmFtZSAiczIifQorKwkJICAgIHt0eXBl IDokc3RydWN0X3NfbGFiZWx9CisrCQkgICAge2xvY2F0aW9uIHsKKysJCQlyZWd4IFtsaW5kZXgg JGR3YXJmX3JlZ251bSAwXQorKwkJCXBpZWNlIDEKKysJCQlhZGRyICIkYnVmX3ZhciArIDQiCisr CQkJcGllY2UgMQorKwkJCXJlZ3ggW2xpbmRleCAkZHdhcmZfcmVnbnVtIDFdCisrCQkJcGllY2Ug MQorKwkJCWFkZHIgIiRidWZfdmFyICsgNSIKKysJCQlwaWVjZSAxCisrCQkgICAgfSBTUEVDSUFM X2V4cHJ9CisrCQl9CisrCSAgICB9CisrCX0KKysgICAgfQorK30KKysKKytpZiB7IFtwcmVwYXJl X2Zvcl90ZXN0aW5nICR7dGVzdGZpbGV9LmV4cCAke3Rlc3RmaWxlfSBcCisrCSAgW2xpc3QgJHNy Y2ZpbGUgJGFzbV9maWxlXSB7bm9kZWJ1Z31dIH0geworKyAgICByZXR1cm4gLTEKKyt9CisrCisr aWYgIVtydW50b19tYWluXSB7CisrICAgIHJldHVybiAtMQorK30KKysKKysjIEJ5dGUtYWxpZ25l ZCBtZW1vcnkgcGllY2VzLgorK2dkYl90ZXN0ICJwcmludC9kIHMxIiAiID0gXFx7YSA9IDIsIGIg PSAzLCBjID0gMCwgZCA9IDFcXH0iIFwKKysgICAgInMxID09IHJlLW9yZGVyZWQgYnVmIgorK2dk Yl90ZXN0X25vX291dHB1dCAic2V0IHZhciBzMS5hID0gNjMiCisrZ2RiX3Rlc3QgInByaW50L2Qg czEiICIgPSBcXHthID0gNjMsIGIgPSAzLCBjID0gMCwgZCA9IDFcXH0iIFwKKysgICAgInZlcmlm eSBzMS5hIgorK2dkYl90ZXN0ICJwcmludC9kIGEiICIgPSBcXHswLCAxLCA2MywgMywgNCwgNSwg NiwgN1xcfSIgXAorKyAgICAidmVyaWZ5IHMxLmEgdGhyb3VnaCBhIgorKworKyMgQnl0ZS1hbGln bmVkIHJlZ2lzdGVyLSBhbmQgbWVtb3J5IHBpZWNlcy4KKytnZGJfdGVzdF9ub19vdXRwdXQgInNl dCB2YXIgXCRbbGluZGV4ICRyZWduYW1lIDBdID0gODEiIFwKKysgICAgImluaXQgcmVnIGZvciBz Mi5hIgorK2dkYl90ZXN0X25vX291dHB1dCAic2V0IHZhciBcJFtsaW5kZXggJHJlZ25hbWUgMV0g PSAyOCIgXAorKyAgICAiaW5pdCByZWcgZm9yIHMyLmMiCisrZ2RiX3Rlc3QgInByaW50L2QgczIi ICIgPSBcXHthID0gODEsIGIgPSA0LCBjID0gMjgsIGQgPSA1XFx9IiBcCisrICAgICJpbml0aWFs aXplZCBzMiBmcm9tIG1lbSBhbmQgcmVncyIKKytnZGJfdGVzdF9ub19vdXRwdXQgInNldCB2YXIg czIuYyArPSBzMi5hICsgczIuYiAtIHMyLmQiCisrZ2RiX3Rlc3QgInByaW50L2QgczIiICIgPSBc XHthID0gODEsIGIgPSA0LCBjID0gMTA4LCBkID0gNVxcfSIgXAorKyAgICAidmVyaWZ5IHMyLmMi CisrZ2RiX3Rlc3QgInByaW50L2QgXCRbbGluZGV4ICRyZWduYW1lIDFdIiAiID0gMTA4IiBcCisr ICAgICJ2ZXJpZnkgczIuYyB0aHJvdWdoIHJlZyIKKytnZGJfdGVzdF9ub19vdXRwdXQgInNldCB2 YXIgczIgPSB7MTkxLCA3MywgMjMxLCAxMjN9IiBcCisrICAgICJyZS1pbml0aWFsaXplIHMyIgor K2dkYl90ZXN0ICJwcmludC9kIHMyIiAgIiA9IFxce2EgPSAxOTEsIGIgPSA3MywgYyA9IDIzMSwg ZCA9IDEyM1xcfSIgXAorKyAgICAidmVyaWZ5IHJlLWluaXRpYWxpemVkIHMyIgorLS0tIGEvZ2Ri L3Rlc3RzdWl0ZS9saWIvZ2RiLXV0aWxzLmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2Ri LXV0aWxzLmV4cAorQEAgLTM0LDYgKzM0LDYgQEAgcHJvYyBnZGJfaW5pdF9jb21tYW5kcyB7fSB7 CisgCisgcHJvYyBzdHJpbmdfdG9fcmVnZXhwIHtzdHJ9IHsKKyAgICAgc2V0IHJlc3VsdCAkc3Ry CistICAgIHJlZ3N1YiAtYWxsIHtbXSorLnwoKV4kXFtcXF19ICRzdHIge1xcJn0gcmVzdWx0Cisr ICAgIHJlZ3N1YiAtYWxsIHtbXSorLnwoKXt9XiRcW1xcXX0gJHN0ciB7XFwmfSByZXN1bHQKKyAg ICAgcmV0dXJuICRyZXN1bHQKKyB9CgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4 LTExb2YzNS5wYXRjaCBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0xMW9mMzUucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjAyZjA5NAotLS0gL2Rldi9udWxsCisrKyBi L2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0xMW9mMzUucGF0Y2gKQEAgLTAsMCArMSwxMDYgQEAKK2Nv bW1pdCBkNWQxMTYzZWZmMjQxNWEwMTg5NWYxY2ZmOGJiZWUzMmIzZjBhYjY2CitBdXRob3I6IEFu ZHJlYXMgQXJuZXogPGFybmV6QGxpbnV4LnZuZXQuaWJtLmNvbT4KK0RhdGU6ICAgVHVlIEp1biAx MyAxNToyMDoyNiAyMDE3ICswMjAwCisKKyAgICB3cml0ZV9waWVjZWRfdmFsdWU6IEZpeCBzaXpl IGNhcHBpbmcgbG9naWMKKyAgICAKKyAgICBBIGZpZWxkIGYgaW4gYSBzdHJ1Y3R1cmUgY29tcG9z ZWQgb2YgRFdBUkYgcGllY2VzIG1heSBiZSBsb2NhdGVkIGluCisgICAgbXVsdGlwbGUgcGllY2Vz LCB3aGVyZSB0aGUgZmlyc3QgYW5kIGxhc3Qgb2YgdGhvc2UgbWF5IGNvbnRhaW4gYml0cyBmcm9t CisgICAgb3RoZXIgZmllbGRzIGFzIHdlbGwuICBTbyB3aGVuIHdyaXRpbmcgdG8gZiwgdGhlIGJl Z2lubmluZyBvZiB0aGUgZmlyc3QKKyAgICBhbmQgdGhlIGVuZCBvZiB0aGUgbGFzdCBvZiB0aG9z ZSBwaWVjZXMgbWF5IGhhdmUgdG8gYmUgc2tpcHBlZC4gIEJ1dCB0aGUKKyAgICBsb2dpYyBpbiB3 cml0ZV9waWVjZWRfdmFsdWUgZm9yIGhhbmRsaW5nIG9uZSBvZiB0aG9zZSBwaWVjZXMgaXMgZmxh d2VkCisgICAgd2hlbiB0aGUgZmlyc3QgYW5kIGxhc3QgcGllY2UgYXJlIHRoZSBzYW1lLCBpLmUu LCBmIGlzIGNvbnRhaW5lZCBpbiBhCisgICAgc2luZ2xlIHBpZWNlOgorICAgIAorICAgICAgPCAt IC0gLSAtIC0gLSAtIC0gLSBwaWVjZV9zaXplIC0gLSAtIC0gLSAtIC0gLSAtIC0+CisgICAgICAr LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgICAg IHwgc2tpcHBlZF9iaXRzIHwgICBmX2JpdHMgICB8IC8gLyAvIC8gLyAvIC8gLyAvIC8gfAorICAg ICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisg ICAgCisgICAgVGhlIGN1cnJlbnQgbG9naWMgZGV0ZXJtaW5lcyB0aGUgc2l6ZSBvZiB0aGUgc3Vi LXBpZWNlIHRvIG9wZXJhdGUgb24gYnkKKyAgICBsaW1pdGluZyB0aGUgcGllY2Ugc2l6ZSB0byB0 aGUgYml0IHNpemUgb2YgZiBhbmQgdGhlbiBzdWJ0cmFjdGluZyB0aGUKKyAgICBza2lwcGVkIGJp dHM6CisgICAgCisgICAgICBtaW4gKHBpZWNlX3NpemUsIGZfYml0cykgLSBza2lwcGVkX2JpdHMK KyAgICAKKyAgICBJbnN0ZWFkIG9mOgorICAgIAorICAgICAgbWluIChwaWVjZV9zaXplIC0gc2tp cHBlZF9iaXRzLCBmX2JpdHMpCisgICAgCisgICAgU28gdGhlIHJlc3VsdGluZyBzdWItcGllY2Ug c2l6ZSBpcyBjb3JydXB0ZWQsIGxlYWRpbmcgdG8gd3JvbmcgaGFuZGxpbmcgb2YKKyAgICB0aGlz IHBpZWNlIGluIHdyaXRlX3BpZWNlZF92YWx1ZS4KKyAgICAKKyAgICBOb3RlIHRoYXQgdGhlIHNh bWUgYnVnIHdhcyBhbHJlYWR5IGZvdW5kIGluIHJlYWRfcGllY2VkX3ZhbHVlIGFuZCBmaXhlZAor ICAgIHRoZXJlIChidXQgbm90IGluIHdyaXRlX3BpZWNlZF92YWx1ZSksIHNlZSBQUiAxNTM5MS4K KyAgICAKKyAgICBUaGlzIHBhdGNoIHN3YXBzIHRoZSBjYWxjdWxhdGlvbnMsIGJyaW5naW5nIHRo ZW0gaW50byB0aGUgc2FtZSAoY29ycmVjdCkKKyAgICBvcmRlciBhcyBpbiByZWFkX3BpZWNlZF92 YWx1ZS4KKyAgICAKKyAgICBnZGIvQ2hhbmdlTG9nOgorICAgIAorICAgICAgICAgICAgKiBkd2Fy ZjJsb2MuYyAod3JpdGVfcGllY2VkX3ZhbHVlKTogRml4IG9yZGVyIG9mIGNhbGN1bGF0aW9ucyBm b3IKKyAgICAgICAgICAgIHNpemUgY2FwcGluZy4KKyAgICAKKyAgICBnZGIvdGVzdHN1aXRlL0No YW5nZUxvZzoKKyAgICAKKyAgICAgICAgICAgICogZ2RiLmR3YXJmMi92YXItcGllY2VzLmV4cDog QWRkIHRlc3QgY2FzZSBmb3IgbW9kaWZ5aW5nIGEKKyAgICAgICAgICAgIHZhcmlhYmxlIGF0IG5v bnplcm8gb2Zmc2V0LgorCisjIyMgYS9nZGIvQ2hhbmdlTG9nCisjIyMgYi9nZGIvQ2hhbmdlTG9n CisjIyAtMSwzICsxLDggQEAKKysyMDE3LTA2LTEzICBBbmRyZWFzIEFybmV6ICA8YXJuZXpAbGlu dXgudm5ldC5pYm0uY29tPgorKworKwkqIGR3YXJmMmxvYy5jICh3cml0ZV9waWVjZWRfdmFsdWUp OiBGaXggb3JkZXIgb2YgY2FsY3VsYXRpb25zIGZvcgorKwlzaXplIGNhcHBpbmcuCisrCisgMjAx Ny0wNi0xMyAgWWFvIFFpICA8eWFvLnFpQGxpbmFyby5vcmc+CisgCisgCSogbWlwcy1saW51eC1u YXQuYzogTW92ZSBpbmNsdWRlIGZlYXR1cmVzL21pcHMqLWxpbnV4LmMgdG8KKy0tLSBhL2dkYi9k d2FyZjJsb2MuYworKysrIGIvZ2RiL2R3YXJmMmxvYy5jCitAQCAtMTk2NCw4ICsxOTY0LDYgQEAg d3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBzdHJ1Y3QgdmFsdWUgKmZyb20p CisgCSAgYml0c190b19za2lwIC09IHRoaXNfc2l6ZV9iaXRzOworIAkgIGNvbnRpbnVlOworIAl9 CistICAgICAgaWYgKHRoaXNfc2l6ZV9iaXRzID4gdHlwZV9sZW4gLSBvZmZzZXQpCistCXRoaXNf c2l6ZV9iaXRzID0gdHlwZV9sZW4gLSBvZmZzZXQ7CisgICAgICAgaWYgKGJpdHNfdG9fc2tpcCA+ IDApCisgCXsKKyAJICBkZXN0X29mZnNldF9iaXRzID0gYml0c190b19za2lwOworQEAgLTE5Nzgs NiArMTk3Niw4IEBAIHdyaXRlX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp0bywgc3RydWN0 IHZhbHVlICpmcm9tKQorIAkgIGRlc3Rfb2Zmc2V0X2JpdHMgPSAwOworIAkgIHNvdXJjZV9vZmZz ZXRfYml0cyA9IG9mZnNldDsKKyAJfQorKyAgICAgIGlmICh0aGlzX3NpemVfYml0cyA+IHR5cGVf bGVuIC0gb2Zmc2V0KQorKwl0aGlzX3NpemVfYml0cyA9IHR5cGVfbGVuIC0gb2Zmc2V0OworIAor ICAgICAgIHRoaXNfc2l6ZSA9ICh0aGlzX3NpemVfYml0cyArIHNvdXJjZV9vZmZzZXRfYml0cyAl IDggKyA3KSAvIDg7CisgICAgICAgc291cmNlX29mZnNldCA9IHNvdXJjZV9vZmZzZXRfYml0cyAv IDg7CisjIyMgYS9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZworIyMjIGIvZ2RiL3Rlc3RzdWl0ZS9D aGFuZ2VMb2cKKyMjIC0xLDUgKzEsMTAgQEAKKyAyMDE3LTA2LTEzICBBbmRyZWFzIEFybmV6ICA8 YXJuZXpAbGludXgudm5ldC5pYm0uY29tPgorIAorKwkqIGdkYi5kd2FyZjIvdmFyLXBpZWNlcy5l eHA6IEFkZCB0ZXN0IGNhc2UgZm9yIG1vZGlmeWluZyBhCisrCXZhcmlhYmxlIGF0IG5vbnplcm8g b2Zmc2V0LgorKworKzIwMTctMDYtMTMgIEFuZHJlYXMgQXJuZXogIDxhcm5lekBsaW51eC52bmV0 LmlibS5jb20+CisrCisgCSogZ2RiLmR3YXJmMi92YXItYWNjZXNzLmM6IE5ldyBmaWxlLgorIAkq IGdkYi5kd2FyZjIvdmFyLWFjY2Vzcy5leHA6IE5ldyB0ZXN0LgorIAkqIGxpYi9nZGItdXRpbHMu ZXhwIChzdHJpbmdfdG9fcmVnZXhwKTogUXVvdGUgYnJhY2VzIGFzIHdlbGwuCistLS0gYS9nZGIv dGVzdHN1aXRlL2dkYi5kd2FyZjIvdmFyLWFjY2Vzcy5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUv Z2RiLmR3YXJmMi92YXItYWNjZXNzLmV4cAorQEAgLTE3OCw2ICsxNzgsMTEgQEAgZ2RiX3Rlc3Qg InByaW50L2QgczEiICIgPSBcXHthID0gNjMsIGIgPSAzLCBjID0gMCwgZCA9IDFcXH0iIFwKKyAg ICAgInZlcmlmeSBzMS5hIgorIGdkYl90ZXN0ICJwcmludC9kIGEiICIgPSBcXHswLCAxLCA2Mywg MywgNCwgNSwgNiwgN1xcfSIgXAorICAgICAidmVyaWZ5IHMxLmEgdGhyb3VnaCBhIgorK2dkYl90 ZXN0X25vX291dHB1dCAic2V0IHZhciBzMS5iID0gNDIiCisrZ2RiX3Rlc3QgInByaW50L2QgczEi ICIgPSBcXHthID0gNjMsIGIgPSA0MiwgYyA9IDAsIGQgPSAxXFx9IiBcCisrICAgICJ2ZXJpZnkg czEuYiIKKytnZGJfdGVzdCAicHJpbnQvZCBhIiAiID0gXFx7MCwgMSwgNjMsIDQyLCA0LCA1LCA2 LCA3XFx9IiBcCisrICAgICJ2ZXJpZnkgczEuYiB0aHJvdWdoIGEiCisgCisgIyBCeXRlLWFsaWdu ZWQgcmVnaXN0ZXItIGFuZCBtZW1vcnkgcGllY2VzLgorIGdkYl90ZXN0X25vX291dHB1dCAic2V0 IHZhciBcJFtsaW5kZXggJHJlZ25hbWUgMF0gPSA4MSIgXAoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6 MTQyMDMwNC1zMzkweC0xMm9mMzUucGF0Y2ggYi9nZGItcmhiejE0MjAzMDQtczM5MHgtMTJvZjM1 LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgxMWQ5ZTYKLS0tIC9k ZXYvbnVsbAorKysgYi9nZGItcmhiejE0MjAzMDQtczM5MHgtMTJvZjM1LnBhdGNoCkBAIC0wLDAg KzEsMTg5IEBACitjb21taXQgZTkzNTIzMjQ1YjcwNGJjMTI2NzA1NjIwOTY5YjQ3MzZiMDAzNTBj NQorQXV0aG9yOiBBbmRyZWFzIEFybmV6IDxhcm5lekBsaW51eC52bmV0LmlibS5jb20+CitEYXRl OiAgIFR1ZSBKdW4gMTMgMTU6MjA6MjYgMjAxNyArMDIwMAorCisgICAgUFIgZ2RiLzIxMjI2OiBU YWtlIERXQVJGIHN0YWNrIHZhbHVlIHBpZWNlcyBmcm9tIExTQiBlbmQKKyAgICAKKyAgICBXaGVu IHRha2luZyBhIERXX09QX3BpZWNlIG9yIERXX09QX2JpdF9waWVjZSBmcm9tIGEgRFdfT1Bfc3Rh Y2tfdmFsdWUsIHRoZQorICAgIGV4aXN0aW5nIGxvZ2ljIGFsd2F5cyB0YWtlcyB0aGUgcGllY2Ug ZnJvbSB0aGUgbG93ZXN0LWFkZHJlc3NlZCBlbmQsIHdoaWNoCisgICAgaXMgd3Jvbmcgb24gYmln LWVuZGlhbiB0YXJnZXRzLiAgVGhlIERXQVJGIHN0YW5kYXJkIHN0YXRlcyB0aGF0IHRoZQorICAg ICJEV19PUF9iaXRfcGllY2Ugb3BlcmF0aW9uIGRlc2NyaWJlcyBhIHNlcXVlbmNlIG9mIGJpdHMg dXNpbmcgdGhlIGxlYXN0CisgICAgc2lnbmlmaWNhbnQgYml0cyBvZiB0aGF0IHZhbHVlIiwgYW5k IHRoaXMgYWxzbyBtYXRjaGVzIHRoZSBjdXJyZW50IGxvZ2ljCisgICAgaW4gR0NDLiAgRm9yIGlu c3RhbmNlLCB0aGUgR0NDIGd1YWxpdHkgdGVzdCBjYXNlIHByNTQ5NzAuYyBmYWlscyBvbiBzMzkw eAorICAgIGJlY2F1c2Ugb2YgdGhpcy4KKyAgICAKKyAgICBUaGlzIGZpeCBhZGp1c3RzIHRoZSBw aWVjZSBhY2NvcmRpbmdseSBvbiBiaWctZW5kaWFuIHRhcmdldHMuICBJdCBpcworICAgIGFzc3Vt ZWQgdGhhdDoKKyAgICAKKyAgICAqIERXX09QX3BpZWNlIHNoYWxsIHRha2UgdGhlIHBpZWNlIGZy b20gdGhlIExTQiBlbmQgYXMgd2VsbDsKKyAgICAKKyAgICAqIHBpZWNlcyByZWFjaGluZyBvdXRz aWRlIHRoZSBzdGFjayB2YWx1ZSBiaXRzIGFyZSBjb25zaWRlcmVkIHVuZGVmaW5lZCwKKyAgICAg IGFuZCBhIHplcm8gdmFsdWUgY2FuIGJlIHVzZWQgaW5zdGVhZC4KKyAgICAKKyAgICBnZGIvQ2hh bmdlTG9nOgorICAgIAorICAgICAgICAgICAgUFIgZ2RiLzIxMjI2CisgICAgICAgICAgICAqIGR3 YXJmMmxvYy5jIChyZWFkX3BpZWNlZF92YWx1ZSk6IEFuY2hvciBzdGFjayB2YWx1ZSBwaWVjZXMg YXQKKyAgICAgICAgICAgIHRoZSBMU0IgZW5kLCBpbmRlcGVuZGVudCBvZiBlbmRpYW5uZXNzLgor ICAgIAorICAgIGdkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nOgorICAgIAorICAgICAgICAgICAgUFIg Z2RiLzIxMjI2CisgICAgICAgICAgICAqIGdkYi5kd2FyZjIvbm9udmFyLWFjY2Vzcy5leHA6IEFk ZCBjaGVja3MgZm9yIHZlcmlmeWluZyB0aGF0CisgICAgICAgICAgICBzdGFjayB2YWx1ZSBwaWVj ZXMgYXJlIHRha2VuIGZyb20gdGhlIExTQiBlbmQuCisKKyMjIyBhL2dkYi9DaGFuZ2VMb2cKKyMj IyBiL2dkYi9DaGFuZ2VMb2cKKyMjIC0xLDUgKzEsMTEgQEAKKyAyMDE3LTA2LTEzICBBbmRyZWFz IEFybmV6ICA8YXJuZXpAbGludXgudm5ldC5pYm0uY29tPgorIAorKwlQUiBnZGIvMjEyMjYKKysJ KiBkd2FyZjJsb2MuYyAocmVhZF9waWVjZWRfdmFsdWUpOiBBbmNob3Igc3RhY2sgdmFsdWUgcGll Y2VzIGF0CisrCXRoZSBMU0IgZW5kLCBpbmRlcGVuZGVudCBvZiBlbmRpYW5uZXNzLgorKworKzIw MTctMDYtMTMgIEFuZHJlYXMgQXJuZXogIDxhcm5lekBsaW51eC52bmV0LmlibS5jb20+CisrCisg CSogZHdhcmYybG9jLmMgKHdyaXRlX3BpZWNlZF92YWx1ZSk6IEZpeCBvcmRlciBvZiBjYWxjdWxh dGlvbnMgZm9yCisgCXNpemUgY2FwcGluZy4KKyAKKy0tLSBhL2dkYi9kd2FyZjJsb2MuYworKysr IGIvZ2RiL2R3YXJmMmxvYy5jCitAQCAtMTg1OCw2ICsxODU4LDEwIEBAIHJlYWRfcGllY2VkX3Zh bHVlIChzdHJ1Y3QgdmFsdWUgKnYpCisgCQlpZiAodW5hdmFpbCkKKyAJCSAgbWFya192YWx1ZV9i aXRzX3VuYXZhaWxhYmxlICh2LCBvZmZzZXQsIHRoaXNfc2l6ZV9iaXRzKTsKKyAJICAgICAgfQor KworKwkgICAgY29weV9iaXR3aXNlIChjb250ZW50cywgZGVzdF9vZmZzZXRfYml0cywKKysJCQkg IGludGVybWVkaWF0ZV9idWZmZXIsIHNvdXJjZV9vZmZzZXRfYml0cyAlIDgsCisrCQkJICB0aGlz X3NpemVfYml0cywgYml0c19iaWdfZW5kaWFuKTsKKyAJICB9CisgCSAgYnJlYWs7CisgCitAQCAt MTg2NiwyNiArMTg3MCwzMCBAQCByZWFkX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQor IAkJCSAgICAgcC0+di5tZW0uaW5fc3RhY2tfbWVtb3J5LAorIAkJCSAgICAgcC0+di5tZW0uYWRk ciArIHNvdXJjZV9vZmZzZXQsCisgCQkJICAgICBidWZmZXIuZGF0YSAoKSwgdGhpc19zaXplKTsK KysJICBjb3B5X2JpdHdpc2UgKGNvbnRlbnRzLCBkZXN0X29mZnNldF9iaXRzLAorKwkJCWludGVy bWVkaWF0ZV9idWZmZXIsIHNvdXJjZV9vZmZzZXRfYml0cyAlIDgsCisrCQkJdGhpc19zaXplX2Jp dHMsIGJpdHNfYmlnX2VuZGlhbik7CisgCSAgYnJlYWs7CisgCisgCWNhc2UgRFdBUkZfVkFMVUVf U1RBQ0s6CisgCSAgeworLQkgICAgc2l6ZV90IG4gPSB0aGlzX3NpemU7CisrCSAgICBzdHJ1Y3Qg b2JqZmlsZSAqb2JqZmlsZSA9IGR3YXJmMl9wZXJfY3Vfb2JqZmlsZSAoYy0+cGVyX2N1KTsKKysJ ICAgIHN0cnVjdCBnZGJhcmNoICpvYmpmaWxlX2dkYmFyY2ggPSBnZXRfb2JqZmlsZV9hcmNoIChv YmpmaWxlKTsKKysJICAgIFVMT05HRVNUIHN0YWNrX3ZhbHVlX3NpemVfYml0cworKwkgICAgICA9 IDggKiBUWVBFX0xFTkdUSCAodmFsdWVfdHlwZSAocC0+di52YWx1ZSkpOworIAorLQkgICAgaWYg KG4gPiBjLT5hZGRyX3NpemUgLSBzb3VyY2Vfb2Zmc2V0KQorLQkgICAgICBuID0gKGMtPmFkZHJf c2l6ZSA+PSBzb3VyY2Vfb2Zmc2V0CistCQkgICA/IGMtPmFkZHJfc2l6ZSAtIHNvdXJjZV9vZmZz ZXQKKy0JCSAgIDogMCk7CistCSAgICBpZiAobiA9PSAwKQorLQkgICAgICB7CistCQkvKiBOb3Ro aW5nLiAgKi8KKy0JICAgICAgfQorLQkgICAgZWxzZQorLQkgICAgICB7CistCQljb25zdCBnZGJf Ynl0ZSAqdmFsX2J5dGVzID0gdmFsdWVfY29udGVudHNfYWxsIChwLT52LnZhbHVlKTsKKysJICAg IC8qIFVzZSB6ZXJvZXMgaWYgcGllY2UgcmVhY2hlcyBiZXlvbmQgc3RhY2sgdmFsdWUuICAqLwor KwkgICAgaWYgKHAtPnNpemUgPiBzdGFja192YWx1ZV9zaXplX2JpdHMpCisrCSAgICAgIGJyZWFr OworIAorLQkJaW50ZXJtZWRpYXRlX2J1ZmZlciA9IHZhbF9ieXRlcyArIHNvdXJjZV9vZmZzZXQ7 CistCSAgICAgIH0KKysJICAgIC8qIFBpZWNlIGlzIGFuY2hvcmVkIGF0IGxlYXN0IHNpZ25pZmlj YW50IGJpdCBlbmQuICAqLworKwkgICAgaWYgKGdkYmFyY2hfYnl0ZV9vcmRlciAob2JqZmlsZV9n ZGJhcmNoKSA9PSBCRkRfRU5ESUFOX0JJRykKKysJICAgICAgc291cmNlX29mZnNldF9iaXRzICs9 IHN0YWNrX3ZhbHVlX3NpemVfYml0cyAtIHAtPnNpemU7CisrCisrCSAgICBjb3B5X2JpdHdpc2Ug KGNvbnRlbnRzLCBkZXN0X29mZnNldF9iaXRzLAorKwkJCSAgdmFsdWVfY29udGVudHNfYWxsIChw LT52LnZhbHVlKSwKKysJCQkgIHNvdXJjZV9vZmZzZXRfYml0cywKKysJCQkgIHRoaXNfc2l6ZV9i aXRzLCBiaXRzX2JpZ19lbmRpYW4pOworIAkgIH0KKyAJICBicmVhazsKKyAKK0BAIC0xODk5LDYg KzE5MDcsMTAgQEAgcmVhZF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdikKKyAJCSAgIDog MCk7CisgCSAgICBpZiAobiAhPSAwKQorIAkgICAgICBpbnRlcm1lZGlhdGVfYnVmZmVyID0gcC0+ di5saXRlcmFsLmRhdGEgKyBzb3VyY2Vfb2Zmc2V0OworKworKwkgICAgY29weV9iaXR3aXNlIChj b250ZW50cywgZGVzdF9vZmZzZXRfYml0cywKKysJCQkgIGludGVybWVkaWF0ZV9idWZmZXIsIHNv dXJjZV9vZmZzZXRfYml0cyAlIDgsCisrCQkJICB0aGlzX3NpemVfYml0cywgYml0c19iaWdfZW5k aWFuKTsKKyAJICB9CisgCSAgYnJlYWs7CisgCitAQCAtMTkxNSwxMiArMTkyNyw2IEBAIHJlYWRf cGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnYpCisgCSAgaW50ZXJuYWxfZXJyb3IgKF9fRklM RV9fLCBfX0xJTkVfXywgXygiaW52YWxpZCBsb2NhdGlvbiB0eXBlIikpOworIAl9CisgCistICAg ICAgaWYgKHAtPmxvY2F0aW9uICE9IERXQVJGX1ZBTFVFX09QVElNSVpFRF9PVVQKKy0JICAmJiBw LT5sb2NhdGlvbiAhPSBEV0FSRl9WQUxVRV9JTVBMSUNJVF9QT0lOVEVSKQorLQljb3B5X2JpdHdp c2UgKGNvbnRlbnRzLCBkZXN0X29mZnNldF9iaXRzLAorLQkJICAgICAgaW50ZXJtZWRpYXRlX2J1 ZmZlciwgc291cmNlX29mZnNldF9iaXRzICUgOCwKKy0JCSAgICAgIHRoaXNfc2l6ZV9iaXRzLCBi aXRzX2JpZ19lbmRpYW4pOworLQorICAgICAgIG9mZnNldCArPSB0aGlzX3NpemVfYml0czsKKyAg ICAgfQorIH0KKyMjIyBhL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCisjIyMgYi9nZGIvdGVzdHN1 aXRlL0NoYW5nZUxvZworIyMgLTEsNSArMSwxMSBAQAorIDIwMTctMDYtMTMgIEFuZHJlYXMgQXJu ZXogIDxhcm5lekBsaW51eC52bmV0LmlibS5jb20+CisgCisrCVBSIGdkYi8yMTIyNgorKwkqIGdk Yi5kd2FyZjIvbm9udmFyLWFjY2Vzcy5leHA6IEFkZCBjaGVja3MgZm9yIHZlcmlmeWluZyB0aGF0 CisrCXN0YWNrIHZhbHVlIHBpZWNlcyBhcmUgdGFrZW4gZnJvbSB0aGUgTFNCIGVuZC4KKysKKysy MDE3LTA2LTEzICBBbmRyZWFzIEFybmV6ICA8YXJuZXpAbGludXgudm5ldC5pYm0uY29tPgorKwor IAkqIGdkYi5kd2FyZjIvdmFyLXBpZWNlcy5leHA6IEFkZCB0ZXN0IGNhc2UgZm9yIG1vZGlmeWlu ZyBhCisgCXZhcmlhYmxlIGF0IG5vbnplcm8gb2Zmc2V0LgorIAorLS0tIGEvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZHdhcmYyL25vbnZhci1hY2Nlc3MuZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5k d2FyZjIvbm9udmFyLWFjY2Vzcy5leHAKK0BAIC0xMjgsMTQgKzEyOCwyNiBAQCBEd2FyZjo6YXNz ZW1ibGUgJGFzbV9maWxlIHsKKyAJCSAgICB7bmFtZSBkZWZfdH0KKyAJCSAgICB7dHlwZSA6JHN0 cnVjdF90X2xhYmVsfQorIAkJICAgIHtsb2NhdGlvbiB7CistCQkJY29uc3QxdSAwCisrCQkJY29u c3QycyAtMTg0CisgCQkJc3RhY2tfdmFsdWUKKyAJCQliaXRfcGllY2UgOSAwCistCQkJY29uc3Qx cyAtMQorKwkJCWNvbnN0NHUgMTc1MjI4NgorIAkJCXN0YWNrX3ZhbHVlCisgCQkJYml0X3BpZWNl IDIzIDAKKyAJCSAgICB9IFNQRUNJQUxfZXhwcn0KKyAJCX0KKysJCSMgQ29tcG9zaXRlIGxvY2F0 aW9uIHdpdGggc29tZSBlbXB0eSBwaWVjZXMuCisrCQlEV19UQUdfdmFyaWFibGUgeworKwkJICAg IHtuYW1lIHBhcnRfZGVmX2F9CisrCQkgICAge3R5cGUgOiRhcnJheV9hOV9sYWJlbH0KKysJCSAg ICB7bG9jYXRpb24geworKwkJCXBpZWNlIDMKKysJCQljb25zdDR1IDB4ZjE5MjczMTQKKysJCQlz dGFja192YWx1ZQorKwkJCXBpZWNlIDQKKysJCQlwaWVjZSAyCisrCQkgICAgfSBTUEVDSUFMX2V4 cHJ9CisrCQl9CisgCQkjIEltcGxpY2l0IGxvY2F0aW9uOiBpbW1lZGlhdGUgdmFsdWUuCisgCQlE V19UQUdfdmFyaWFibGUgeworIAkJICAgIHtuYW1lIGRlZl9pbXBsaWNpdF9zfQorQEAgLTIyMSw5 ICsyMzMsMTIgQEAgZ2RiX3Rlc3QgInByaW50L3ggKmltcGxpY2l0X2JfcHRyIiAiID0gJHZhbCIK KyAKKyAjIEJ5dGUtYWxpZ25lZCBmaWVsZHMsIHBpZWNlZCB0b2dldGhlciBmcm9tIERXQVJGIHN0 YWNrIHZhbHVlcy4KKyBnZGJfdGVzdCAicHJpbnQgZGVmX3MiICIgPSBcXHthID0gMCwgYiA9IC0x XFx9IgorK3N3aXRjaCAkZW5kaWFuIHsgYmlnIHtzZXQgdmFsIDB4OTJ9IGxpdHRsZSB7c2V0IHZh bCAweDczfSB9CisrZ2RiX3Rlc3QgInByaW50L3ggcGFydF9kZWZfYVxbNFxdIiAiID0gJHZhbCIK KytnZGJfdGVzdCAicHJpbnQveCBwYXJ0X2RlZl9hXFs4XF0iICIgPSA8b3B0aW1pemVkIG91dD4i CisgCisgIyBOb24tYnl0ZS1hbGlnbmVkIGZpZWxkcywgcGllY2VkIHRvZ2V0aGVyIGZyb20gRFdB UkYgc3RhY2sgdmFsdWVzLgorLWdkYl90ZXN0ICJwcmludCBkZWZfdCIgIiA9IFxce2EgPSAwLCBi ID0gLTFcXH0iCisrZ2RiX3Rlc3QgInByaW50IGRlZl90IiAiID0gXFx7YSA9IC0xODQsIGIgPSAx NzUyMjg2XFx9IgorIAorICMgU2ltcGxlIHZhcmlhYmxlIHdpdGhvdXQgbG9jYXRpb24uCisgZ2Ri X3Rlc3QgInByaW50IHVuZGVmX2ludCIgIiA9IDxvcHRpbWl6ZWQgb3V0PiIKCmRpZmYgLS1naXQg YS9nZGItcmhiejE0MjAzMDQtczM5MHgtMTNvZjM1LnBhdGNoIGIvZ2RiLXJoYnoxNDIwMzA0LXMz OTB4LTEzb2YzNS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYmRl OTBhCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTEzb2YzNS5wYXRj aApAQCAtMCwwICsxLDcyIEBACitjb21taXQgODA1YWNjYTA0MmFmZWQ4ZTg0MzFjOTJhYjAzMTE2 N2IwMzQ3NTY3NgorQXV0aG9yOiBBbmRyZWFzIEFybmV6IDxhcm5lekBsaW51eC52bmV0LmlibS5j b20+CitEYXRlOiAgIFR1ZSBKdW4gMTMgMTU6MjA6MjYgMjAxNyArMDIwMAorCisgICAgZ2RiL3Rl c3RzdWl0ZTogQWRkICJnZXRfZW5kaWFubmVzcyIgY29udmVuaWVuY2UgcHJvYworICAgIAorICAg IFRoZSB0ZXN0IHN1aXRlIGNvbnRhaW5zIG11bHRpcGxlIGluc3RhbmNlcyBvZiBkZXRlcm1pbmlu ZyB0aGUgdGFyZ2V0J3MKKyAgICBlbmRpYW5uZXNzIHdpdGggR0RCJ3MgInNob3cgZW5kaWFuIiBj b21tYW5kLiAgVGhpcyBwYXRjaCByZXBsYWNlcyB0aGVzZSBieQorICAgIGFuIGludm9jYXRpb24g b2YgYSBuZXcgY29udmVuaWVuY2UgcHJvYyAnZ2V0X2VuZGlhbm5lc3MnLgorICAgIAorICAgIGdk Yi90ZXN0c3VpdGUvQ2hhbmdlTG9nOgorICAgIAorICAgICAgICAgICAgKiBsaWIvZ2RiLmV4cCAo Z2V0X2VuZGlhbm5lc3MpOiBOZXcgcHJvYy4KKyAgICAgICAgICAgICogZ2RiLmFyY2gvYWFyY2g2 NC1mcC5leHA6IFVzZSBpdC4KKyAgICAgICAgICAgICogZ2RiLmFyY2gvYWx0aXZlYy1yZWdzLmV4 cDogTGlrZXdpc2UuCisgICAgICAgICAgICAqIGdkYi5hcmNoL2U1MDAtcmVncy5leHA6IExpa2V3 aXNlLgorICAgICAgICAgICAgKiBnZGIuYXJjaC92c3gtcmVncy5leHA6IExpa2V3aXNlLgorICAg ICAgICAgICAgKiBnZGIuYmFzZS9kdW1wLmV4cDogTGlrZXdpc2UuCisgICAgICAgICAgICAqIGdk Yi5iYXNlL2Z1bmNhcmdzLmV4cDogTGlrZXdpc2UuCisgICAgICAgICAgICAqIGdkYi5iYXNlL2du dV92ZWN0b3IuZXhwOiBMaWtld2lzZS4KKyAgICAgICAgICAgICogZ2RiLmR3YXJmMi9mb3JtZGF0 YTE2LmV4cDogTGlrZXdpc2UuCisgICAgICAgICAgICAqIGdkYi5kd2FyZjIvaW1wbHB0cnBpZWNl LmV4cDogTGlrZXdpc2UuCisgICAgICAgICAgICAqIGdkYi5kd2FyZjIvbm9udmFyLWFjY2Vzcy5l eHA6IExpa2V3aXNlLgorICAgICAgICAgICAgKiBnZGIucHl0aG9uL3B5LWluZmVyaW9yLmV4cDog TGlrZXdpc2UuCisgICAgICAgICAgICAqIGdkYi50cmFjZS91bmF2YWlsYWJsZS1kd2FyZi1waWVj ZS5leHA6IExpa2V3aXNlLgorCisjIyMgYS9nZGIvdGVzdHN1aXRlL0NoYW5nZUxvZworIyMjIGIv Z2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKKyMjIC0xLDUgKzEsMjEgQEAKKyAyMDE3LTA2LTEzICBB bmRyZWFzIEFybmV6ICA8YXJuZXpAbGludXgudm5ldC5pYm0uY29tPgorIAorKwkqIGxpYi9nZGIu ZXhwIChnZXRfZW5kaWFubmVzcyk6IE5ldyBwcm9jLgorKwkqIGdkYi5hcmNoL2FhcmNoNjQtZnAu ZXhwOiBVc2UgaXQuCisrCSogZ2RiLmFyY2gvYWx0aXZlYy1yZWdzLmV4cDogTGlrZXdpc2UuCisr CSogZ2RiLmFyY2gvZTUwMC1yZWdzLmV4cDogTGlrZXdpc2UuCisrCSogZ2RiLmFyY2gvdnN4LXJl Z3MuZXhwOiBMaWtld2lzZS4KKysJKiBnZGIuYmFzZS9kdW1wLmV4cDogTGlrZXdpc2UuCisrCSog Z2RiLmJhc2UvZnVuY2FyZ3MuZXhwOiBMaWtld2lzZS4KKysJKiBnZGIuYmFzZS9nbnVfdmVjdG9y LmV4cDogTGlrZXdpc2UuCisrCSogZ2RiLmR3YXJmMi9mb3JtZGF0YTE2LmV4cDogTGlrZXdpc2Uu CisrCSogZ2RiLmR3YXJmMi9pbXBscHRycGllY2UuZXhwOiBMaWtld2lzZS4KKysJKiBnZGIuZHdh cmYyL25vbnZhci1hY2Nlc3MuZXhwOiBMaWtld2lzZS4KKysJKiBnZGIucHl0aG9uL3B5LWluZmVy aW9yLmV4cDogTGlrZXdpc2UuCisrCSogZ2RiLnRyYWNlL3VuYXZhaWxhYmxlLWR3YXJmLXBpZWNl LmV4cDogTGlrZXdpc2UuCisrCisrMjAxNy0wNi0xMyAgQW5kcmVhcyBBcm5leiAgPGFybmV6QGxp bnV4LnZuZXQuaWJtLmNvbT4KKysKKyAJUFIgZ2RiLzIxMjI2CisgCSogZ2RiLmR3YXJmMi9ub252 YXItYWNjZXNzLmV4cDogQWRkIGNoZWNrcyBmb3IgdmVyaWZ5aW5nIHRoYXQKKyAJc3RhY2sgdmFs dWUgcGllY2VzIGFyZSB0YWtlbiBmcm9tIHRoZSBMU0IgZW5kLgorLS0tIGEvZ2RiL3Rlc3RzdWl0 ZS9saWIvZ2RiLmV4cAorKysrIGIvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAorQEAgLTU2NzEs NiArNTY3MSwxOSBAQCBwcm9jIHNldF9yZW1vdGV0aW1lb3V0IHsgdGltZW91dCB9IHsKKyAgICAg fQorIH0KKyAKKysjIEdldCB0aGUgdGFyZ2V0J3MgY3VycmVudCBlbmRpYW5uZXNzIGFuZCByZXR1 cm4gaXQuCisrcHJvYyBnZXRfZW5kaWFubmVzcyB7IH0geworKyAgICBnbG9iYWwgZ2RiX3Byb21w dAorKworKyAgICBnZGJfdGVzdF9tdWx0aXBsZSAic2hvdyBlbmRpYW4iICJkZXRlcm1pbmUgZW5k aWFubmVzcyIgeworKwktcmUgIi4qIChsaXR0bGV8YmlnKSBlbmRpYW4uKlxyXG4kZ2RiX3Byb21w dCAkIiB7CisrCSAgICAjIFBhc3Mgc2lsZW50bHkuCisrCSAgICByZXR1cm4gJGV4cGVjdF9vdXQo MSxzdHJpbmcpCisrCX0KKysgICAgfQorKyAgICByZXR1cm4gImxpdHRsZSIKKyt9CisrCisgIyBS T09UIGFuZCBGVUxMIGFyZSBmaWxlIG5hbWVzLiAgUmV0dXJucyB0aGUgcmVsYXRpdmUgcGF0aCBm cm9tIFJPT1QKKyAjIHRvIEZVTEwuICBOb3RlIHRoYXQgRlVMTCBtdXN0IGJlIGluIGEgc3ViZGly ZWN0b3J5IG9mIFJPT1QuCisgIyBGb3IgZXhhbXBsZSwgZ2l2ZW4gUk9PVCA9IC91c3IvYmluIGFu ZCBGVUxMID0gL3Vzci9iaW4vbHMsIHRoaXMKCmRpZmYgLS1naXQgYS9nZGItcmhiejE0MjAzMDQt czM5MHgtMTRvZjM1LnBhdGNoIGIvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTE0b2YzNS5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZWNjMzlkCi0tLSAvZGV2L251bGwK KysrIGIvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTE0b2YzNS5wYXRjaApAQCAtMCwwICsxLDcwIEBA Citjb21taXQgYWY1NDdhOTYxNDk2OWUxZDFlYTZmY2VjNmI1OWNkNzdhNjA2MzgwZgorQXV0aG9y OiBBbmRyZWFzIEFybmV6IDxhcm5lekBsaW51eC52bmV0LmlibS5jb20+CitEYXRlOiAgIFR1ZSBK dW4gMTMgMTU6MjA6MjcgMjAxNyArMDIwMAorCisgICAgcmVhZC93cml0ZV9waWVjZWRfdmFsdWU6 IFJlc3BlY3QgdmFsdWUgcGFyZW50J3Mgb2Zmc2V0CisgICAgCisgICAgSW4gdGhlIGNhc2Ugb2Yg dGFyZ2V0aW5nIGEgYml0LWZpZWxkLCByZWFkX3BpZWNlZF92YWx1ZSBhbmQKKyAgICB3cml0ZV9w aWVjZWRfdmFsdWUgY2FsY3VsYXRlIHRoZSBudW1iZXIgb2YgYml0cyBwcmVjZWRpbmcgdGhlIGJp dC1maWVsZAorICAgIHdpdGhvdXQgY29uc2lkZXJpbmcgdGhlIHJlbGF0aXZlIG9mZnNldCBvZiB0 aGUgdmFsdWUncyBwYXJlbnQuICBUaGlzIGlzCisgICAgcmVsZXZhbnQgZm9yIGEgc3RydWN0dXJl IHZhcmlhYmxlIGxpa2UgdGhpczoKKyAgICAKKyAgICAgIHN0cnVjdCBzIHsKKyAgICAgICAgICB1 aW50NjRfdCBmb287CisgICAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAgICAgdWludDMyX3Qg YmFyOworICAgICAgICAgICAgICB1aW50MzJfdCBiZiA6IDEwOyAgLyogPC0tIHRhcmdldCBiaXQt ZmllbGQgKi8KKyAgICAgICAgICB9IGJhejsKKyAgICAgIH0gczsKKyAgICAKKyAgICBJbiB0aGlz IHNjZW5hcmlvLCBpZiAndmFsJyBpcyBhIEdEQiB2YWx1ZSByZXByZXNlbnRpbmcgcy5iYXouYmYs CisgICAgdmFsLT5wYXJlbnQgcmVwcmVzZW50cyB0aGUgd2hvbGUgcy5iYXogc3RydWN0dXJlLCBh bmQgdGhlIGZvbGxvd2luZyBob2xkczoKKyAgICAKKyAgICAgIC0gdmFsdWVfb2Zmc2V0ICh2YWwp ID09IHNpemVvZiBzLmJhei5iYXIgPT0gNAorICAgICAgLSB2YWx1ZV9vZmZzZXQgKHZhbC0+cGFy ZW50KSA9PSBzaXplb2Ygcy5mb28gPT0gOAorICAgIAorICAgIFRoZSBjdXJyZW50IGxvZ2ljIHdv dWxkIG9ubHkgdXNlIHZhbHVlX29mZnNldCh2YWwpLCByZXN1bHRpbmcgaW4gdGhlIHdyb25nCisg ICAgb2Zmc2V0IGludG8gdGhlIHRhcmdldCB2YWx1ZS4gIFRoaXMgaXMgZml4ZWQuCisgICAgCisg ICAgZ2RiL0NoYW5nZUxvZzoKKyAgICAKKyAgICAgICAgICAgICogZHdhcmYybG9jLmMgKHJlYWRf cGllY2VkX3ZhbHVlKTogUmVzcGVjdCBwYXJlbnQgdmFsdWUncyBvZmZzZXQKKyAgICAgICAgICAg IHdoZW4gdGFyZ2V0aW5nIGEgYml0LWZpZWxkLgorICAgICAgICAgICAgKHdyaXRlX3BpZWNlZF92 YWx1ZSk6IExpa2V3aXNlLgorCisjIyMgYS9nZGIvQ2hhbmdlTG9nCisjIyMgYi9nZGIvQ2hhbmdl TG9nCisjIyAtMSw1ICsxLDExIEBACisgMjAxNy0wNi0xMyAgQW5kcmVhcyBBcm5leiAgPGFybmV6 QGxpbnV4LnZuZXQuaWJtLmNvbT4KKyAKKysJKiBkd2FyZjJsb2MuYyAocmVhZF9waWVjZWRfdmFs dWUpOiBSZXNwZWN0IHBhcmVudCB2YWx1ZSdzIG9mZnNldAorKwl3aGVuIHRhcmdldGluZyBhIGJp dC1maWVsZC4KKysJKHdyaXRlX3BpZWNlZF92YWx1ZSk6IExpa2V3aXNlLgorKworKzIwMTctMDYt MTMgIEFuZHJlYXMgQXJuZXogIDxhcm5lekBsaW51eC52bmV0LmlibS5jb20+CisrCisgCSogZHdh cmYybG9jLmMgKHN0cnVjdCBwaWVjZV9jbG9zdXJlKSA8YWRkcl9zaXplPjogUmVtb3ZlIGZpZWxk LgorIAkoYWxsb2NhdGVfcGllY2VfY2xvc3VyZSk6IERyb3AgYWRkcl9zaXplIHBhcmFtZXRlci4K KyAJKGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzY19mdWxsKTogQWRqdXN0IGNhbGwgdG8KKy0tLSBh L2dkYi9kd2FyZjJsb2MuYworKysrIGIvZ2RiL2R3YXJmMmxvYy5jCitAQCAtMTc3Niw3ICsxNzc2 LDggQEAgcmVhZF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdikKKyAgIGJpdHNfdG9fc2tp cCA9IDggKiB2YWx1ZV9vZmZzZXQgKHYpOworICAgaWYgKHZhbHVlX2JpdHNpemUgKHYpKQorICAg ICB7CistICAgICAgYml0c190b19za2lwICs9IHZhbHVlX2JpdHBvcyAodik7CisrICAgICAgYml0 c190b19za2lwICs9ICg4ICogdmFsdWVfb2Zmc2V0ICh2YWx1ZV9wYXJlbnQgKHYpKQorKwkJICAg ICAgICsgdmFsdWVfYml0cG9zICh2KSk7CisgICAgICAgdHlwZV9sZW4gPSB2YWx1ZV9iaXRzaXpl ICh2KTsKKyAgICAgfQorICAgZWxzZQorQEAgLTE5NDYsNyArMTk0Nyw4IEBAIHdyaXRlX3BpZWNl ZF92YWx1ZSAoc3RydWN0IHZhbHVlICp0bywgc3RydWN0IHZhbHVlICpmcm9tKQorICAgYml0c190 b19za2lwID0gOCAqIHZhbHVlX29mZnNldCAodG8pOworICAgaWYgKHZhbHVlX2JpdHNpemUgKHRv KSkKKyAgICAgeworLSAgICAgIGJpdHNfdG9fc2tpcCArPSB2YWx1ZV9iaXRwb3MgKHRvKTsKKysg ICAgICBiaXRzX3RvX3NraXAgKz0gKDggKiB2YWx1ZV9vZmZzZXQgKHZhbHVlX3BhcmVudCAodG8p KQorKwkJICAgICAgICsgdmFsdWVfYml0cG9zICh0bykpOworICAgICAgIHR5cGVfbGVuID0gdmFs dWVfYml0c2l6ZSAodG8pOworICAgICB9CisgICBlbHNlCgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYnox NDIwMzA0LXMzOTB4LTE1b2YzNS5wYXRjaCBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0xNW9mMzUu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWZhNGEyYgotLS0gL2Rl di9udWxsCisrKyBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0xNW9mMzUucGF0Y2gKQEAgLTAsMCAr MSw0MCBAQAorY29tbWl0IGNkYWFjMzIwZmQ2MmJmZjc1NTYyYWFhM2U0NjY0OTRkYzcyZGQxNzUK K0F1dGhvcjogQW5kcmVhcyBBcm5leiA8YXJuZXpAbGludXgudm5ldC5pYm0uY29tPgorRGF0ZTog ICBUdWUgSnVuIDEzIDE1OjIwOjI3IDIwMTcgKzAyMDAKKworICAgIHdyaXRlX3BpZWNlZF92YWx1 ZTogRml4IGNvcHkvcGFzdGUgZXJyb3IgaW4gc2l6ZSBjYWxjdWxhdGlvbgorICAgIAorICAgIElu IHdyaXRlX3BpZWNlZF92YWx1ZSwgdGhlIG51bWJlciBvZiBieXRlcyBjb250YWluaW5nIGEgcG9y dGlvbiBvZiB0aGUKKyAgICBiaXQtZmllbGQgaW4gYSBnaXZlbiBwaWVjZSBpcyBjYWxjdWxhdGVk IHdpdGggdGhlIHdyb25nIHN0YXJ0aW5nIG9mZnNldDsKKyAgICB0aHVzIHRoZSByZXN1bHQgbWF5 IGJlIG9mZiBieSBvbmUuICBUaGlzIGJ1ZyB3YXMgcHJvYmFibHkgaW50cm9kdWNlZCB3aGVuCisg ICAgY29weWluZyB0aGlzIGxvZ2ljIGZyb20gcmVhZF9waWVjZWRfdmFsdWUuICBGaXggaXQuCisg ICAgCisgICAgZ2RiL0NoYW5nZUxvZzoKKyAgICAKKyAgICAgICAgICAgICogZHdhcmYybG9jLmMg KHdyaXRlX3BpZWNlZF92YWx1ZSk6IEZpeCBjb3B5L3Bhc3RlIGVycm9yIGluIHRoZQorICAgICAg ICAgICAgY2FsY3VsYXRpb24gb2YgdGhpc19zaXplLgorCisjIyMgYS9nZGIvQ2hhbmdlTG9nCisj IyMgYi9nZGIvQ2hhbmdlTG9nCisjIyAtMSw1ICsxLDEwIEBACisgMjAxNy0wNi0xMyAgQW5kcmVh cyBBcm5leiAgPGFybmV6QGxpbnV4LnZuZXQuaWJtLmNvbT4KKyAKKysJKiBkd2FyZjJsb2MuYyAo d3JpdGVfcGllY2VkX3ZhbHVlKTogRml4IGNvcHkvcGFzdGUgZXJyb3IgaW4gdGhlCisrCWNhbGN1 bGF0aW9uIG9mIHRoaXNfc2l6ZS4KKysKKysyMDE3LTA2LTEzICBBbmRyZWFzIEFybmV6ICA8YXJu ZXpAbGludXgudm5ldC5pYm0uY29tPgorKworIAkqIGR3YXJmMmxvYy5jIChyZWFkX3BpZWNlZF92 YWx1ZSk6IFJlc3BlY3QgcGFyZW50IHZhbHVlJ3Mgb2Zmc2V0CisgCXdoZW4gdGFyZ2V0aW5nIGEg Yml0LWZpZWxkLgorIAkod3JpdGVfcGllY2VkX3ZhbHVlKTogTGlrZXdpc2UuCistLS0gYS9nZGIv ZHdhcmYybG9jLmMKKysrKyBiL2dkYi9kd2FyZjJsb2MuYworQEAgLTE5ODMsNyArMTk4Myw3IEBA IHdyaXRlX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp0bywgc3RydWN0IHZhbHVlICpmcm9t KQorICAgICAgIGlmICh0aGlzX3NpemVfYml0cyA+IHR5cGVfbGVuIC0gb2Zmc2V0KQorIAl0aGlz X3NpemVfYml0cyA9IHR5cGVfbGVuIC0gb2Zmc2V0OworIAorLSAgICAgIHRoaXNfc2l6ZSA9ICh0 aGlzX3NpemVfYml0cyArIHNvdXJjZV9vZmZzZXRfYml0cyAlIDggKyA3KSAvIDg7CisrICAgICAg dGhpc19zaXplID0gKHRoaXNfc2l6ZV9iaXRzICsgZGVzdF9vZmZzZXRfYml0cyAlIDggKyA3KSAv IDg7CisgICAgICAgc291cmNlX29mZnNldCA9IHNvdXJjZV9vZmZzZXRfYml0cyAvIDg7CisgICAg ICAgZGVzdF9vZmZzZXQgPSBkZXN0X29mZnNldF9iaXRzIC8gODsKKyAgICAgICBpZiAoZGVzdF9v ZmZzZXRfYml0cyAlIDggPT0gMCAmJiBzb3VyY2Vfb2Zmc2V0X2JpdHMgJSA4ID09IDApCgpkaWZm IC0tZ2l0IGEvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTE2b2YzNS5wYXRjaCBiL2dkYi1yaGJ6MTQy MDMwNC1zMzkweC0xNm9mMzUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uYzgyOWQ1MQotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0xNm9m MzUucGF0Y2gKQEAgLTAsMCArMSw0MiBAQAorY29tbWl0IGYxY2M5ODc0MjBkOWQyNDg5ZWI0NTNi ZDFjODcxMzk2NjZjYmU3ZmQKK0F1dGhvcjogQW5kcmVhcyBBcm5leiA8YXJuZXpAbGludXgudm5l dC5pYm0uY29tPgorRGF0ZTogICBUdWUgSnVuIDEzIDE1OjIwOjI3IDIwMTcgKzAyMDAKKworICAg IHdyaXRlX3BpZWNlZF92YWx1ZTogSW5jbHVkZSB0cmFuc2ZlciBzaXplIGluIGJ5dGUtd2lzZSBj aGVjaworICAgIAorICAgIEluIHdyaXRlX3BpZWNlZF92YWx1ZSwgd2hlbiBjaGVja2luZyB3aGV0 aGVyIHRoZSBkYXRhIGNhbiBiZSB0cmFuc2ZlcnJlZAorICAgIGJ5dGUtd2lzZSwgdGhlIGN1cnJl bnQgbG9naWMgdmVyaWZpZXMgdGhlIHNvdXJjZS0gYW5kIGRlc3RpbmF0aW9uIG9mZnNldHMKKyAg ICB0byBiZSBieXRlLWFsaWduZWQsIGJ1dCBub3QgdGhlIHRyYW5zZmVyIHNpemUuICBUaGlzIGlz IGZpeGVkLgorICAgIAorICAgIGdkYi9DaGFuZ2VMb2c6CisgICAgCisgICAgICAgICAgICAqIGR3 YXJmMmxvYy5jICh3cml0ZV9waWVjZWRfdmFsdWUpOiBJbmNsdWRlIHRyYW5zZmVyIHNpemUgaW4K KyAgICAgICAgICAgIGJ5dGUtd2lzZSBjaGVjay4KKworIyMjIGEvZ2RiL0NoYW5nZUxvZworIyMj IGIvZ2RiL0NoYW5nZUxvZworIyMgLTEsNSArMSwxMCBAQAorIDIwMTctMDYtMTMgIEFuZHJlYXMg QXJuZXogIDxhcm5lekBsaW51eC52bmV0LmlibS5jb20+CisgCisrCSogZHdhcmYybG9jLmMgKHdy aXRlX3BpZWNlZF92YWx1ZSk6IEluY2x1ZGUgdHJhbnNmZXIgc2l6ZSBpbgorKwlieXRlLXdpc2Ug Y2hlY2suCisrCisrMjAxNy0wNi0xMyAgQW5kcmVhcyBBcm5leiAgPGFybmV6QGxpbnV4LnZuZXQu aWJtLmNvbT4KKysKKyAJKiBkd2FyZjJsb2MuYyAod3JpdGVfcGllY2VkX3ZhbHVlKTogRml4IGNv cHkvcGFzdGUgZXJyb3IgaW4gdGhlCisgCWNhbGN1bGF0aW9uIG9mIHRoaXNfc2l6ZS4KKyAKKy0t LSBhL2dkYi9kd2FyZjJsb2MuYworKysrIGIvZ2RiL2R3YXJmMmxvYy5jCitAQCAtMTk4Niw3ICsx OTg2LDEwIEBAIHdyaXRlX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp0bywgc3RydWN0IHZh bHVlICpmcm9tKQorICAgICAgIHRoaXNfc2l6ZSA9ICh0aGlzX3NpemVfYml0cyArIGRlc3Rfb2Zm c2V0X2JpdHMgJSA4ICsgNykgLyA4OworICAgICAgIHNvdXJjZV9vZmZzZXQgPSBzb3VyY2Vfb2Zm c2V0X2JpdHMgLyA4OworICAgICAgIGRlc3Rfb2Zmc2V0ID0gZGVzdF9vZmZzZXRfYml0cyAvIDg7 CistICAgICAgaWYgKGRlc3Rfb2Zmc2V0X2JpdHMgJSA4ID09IDAgJiYgc291cmNlX29mZnNldF9i aXRzICUgOCA9PSAwKQorKworKyAgICAgIC8qIENoZWNrIHdoZXRoZXIgdGhlIGRhdGEgY2FuIGJl IHRyYW5zZmVycmVkIGJ5dGUtd2lzZS4gICovCisrICAgICAgaWYgKGRlc3Rfb2Zmc2V0X2JpdHMg JSA4ID09IDAgJiYgc291cmNlX29mZnNldF9iaXRzICUgOCA9PSAwCisrCSAgJiYgdGhpc19zaXpl X2JpdHMgJSA4ID09IDApCisgCXsKKyAJICBzb3VyY2VfYnVmZmVyID0gY29udGVudHMgKyBzb3Vy Y2Vfb2Zmc2V0OworIAkgIG5lZWRfYml0d2lzZSA9IDA7CgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYnox NDIwMzA0LXMzOTB4LTE3b2YzNS5wYXRjaCBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0xN29mMzUu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzM0NTEzMwotLS0gL2Rl di9udWxsCisrKyBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0xN29mMzUucGF0Y2gKQEAgLTAsMCAr MSw0MiBAQAorY29tbWl0IDA3YzljYTNiZDhlNmY4M2JjZWM0OWM5MjJiNTI0MjJjNTM4ZjYwZjcK K0F1dGhvcjogQW5kcmVhcyBBcm5leiA8YXJuZXpAbGludXgudm5ldC5pYm0uY29tPgorRGF0ZTog ICBUdWUgSnVuIDEzIDE1OjIwOjI4IDIwMTcgKzAyMDAKKworICAgIHdyaXRlX3BpZWNlZF92YWx1 ZTogRml4IGJ1ZmZlciBvZmZzZXQgZm9yIG1lbW9yeSBwaWVjZXMKKyAgICAKKyAgICBJbiB3cml0 ZV9waWVjZWRfdmFsdWUsIHdoZW4gdHJhbnNmZXJyaW5nIHRoZSBkYXRhIHRvIHRhcmdldCBtZW1v cnkgdmlhIGEKKyAgICBidWZmZXIsIHRoZSBiaXQgb2Zmc2V0IHdpdGhpbiB0aGUgdGFyZ2V0IHZh bHVlIGlzIG5vdCByZWR1Y2VkIHRvIGl0cworICAgIHN1Yi1ieXRlIGZyYWN0aW9uIGJlZm9yZSB1 c2luZyBpdCBhcyBhIGJpdCBvZmZzZXQgaW50byB0aGUgYnVmZmVyLiAgVGhpcworICAgIGlzIGZp eGVkLgorICAgIAorICAgIGdkYi9DaGFuZ2VMb2c6CisgICAgCisgICAgICAgICAgICAqIGR3YXJm MmxvYy5jICh3cml0ZV9waWVjZWRfdmFsdWUpOiBJbiBEV0FSRl9WQUxVRV9NRU1PUlksCisgICAg ICAgICAgICB0cnVuY2F0ZSBmdWxsIGJ5dGVzIGZyb20gZGVzdF9vZmZzZXRfYml0cyBiZWZvcmUg dXNpbmcgaXQgYXMgYW4KKyAgICAgICAgICAgIG9mZnNldCBpbnRvIHRoZSBidWZmZXIuCisKKyMj IyBhL2dkYi9DaGFuZ2VMb2cKKyMjIyBiL2dkYi9DaGFuZ2VMb2cKKyMjIC0xLDUgKzEsMTEgQEAK KyAyMDE3LTA2LTEzICBBbmRyZWFzIEFybmV6ICA8YXJuZXpAbGludXgudm5ldC5pYm0uY29tPgor IAorKwkqIGR3YXJmMmxvYy5jICh3cml0ZV9waWVjZWRfdmFsdWUpOiBJbiBEV0FSRl9WQUxVRV9N RU1PUlksCisrCXRydW5jYXRlIGZ1bGwgYnl0ZXMgZnJvbSBkZXN0X29mZnNldF9iaXRzIGJlZm9y ZSB1c2luZyBpdCBhcyBhbgorKwlvZmZzZXQgaW50byB0aGUgYnVmZmVyLgorKworKzIwMTctMDYt MTMgIEFuZHJlYXMgQXJuZXogIDxhcm5lekBsaW51eC52bmV0LmlibS5jb20+CisrCisgCSogZHdh cmYybG9jLmMgKHdyaXRlX3BpZWNlZF92YWx1ZSk6IEluY2x1ZGUgdHJhbnNmZXIgc2l6ZSBpbgor IAlieXRlLXdpc2UgY2hlY2suCisgCistLS0gYS9nZGIvZHdhcmYybG9jLmMKKysrKyBiL2dkYi9k d2FyZjJsb2MuYworQEAgLTIwNTgsNyArMjA1OCw3IEBAIHdyaXRlX3BpZWNlZF92YWx1ZSAoc3Ry dWN0IHZhbHVlICp0bywgc3RydWN0IHZhbHVlICpmcm9tKQorIAkgICAgICByZWFkX21lbW9yeSAo cC0+di5tZW0uYWRkciArIGRlc3Rfb2Zmc2V0LCBidWZmZXIuZGF0YSAoKSwgMSk7CisgCSAgICAg IHJlYWRfbWVtb3J5IChwLT52Lm1lbS5hZGRyICsgZGVzdF9vZmZzZXQgKyB0aGlzX3NpemUgLSAx LAorIAkJCSAgICZidWZmZXJbdGhpc19zaXplIC0gMV0sIDEpOworLQkgICAgICBjb3B5X2JpdHdp c2UgKGJ1ZmZlci5kYXRhICgpLCBkZXN0X29mZnNldF9iaXRzLAorKwkgICAgICBjb3B5X2JpdHdp c2UgKGJ1ZmZlci5kYXRhICgpLCBkZXN0X29mZnNldF9iaXRzICUgOCwKKyAJCQkgICAgY29udGVu dHMsIHNvdXJjZV9vZmZzZXRfYml0cywKKyAJCQkgICAgdGhpc19zaXplX2JpdHMsCisgCQkJICAg IGJpdHNfYmlnX2VuZGlhbik7CgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTE4 b2YzNS5wYXRjaCBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0xOG9mMzUucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTUzNjU5MQotLS0gL2Rldi9udWxsCisrKyBiL2dk Yi1yaGJ6MTQyMDMwNC1zMzkweC0xOG9mMzUucGF0Y2gKQEAgLTAsMCArMSwxNjYgQEAKK2NvbW1p dCAzNTliMTliYjI0ZDA0ODc1MGFhNTM2N2FkNTZhMzMyNjczMDBkMWE4CitBdXRob3I6IEFuZHJl YXMgQXJuZXogPGFybmV6QGxpbnV4LnZuZXQuaWJtLmNvbT4KK0RhdGU6ICAgVHVlIEp1biAxMyAx NToyMDoyOCAyMDE3ICswMjAwCisKKyAgICB3cml0ZV9waWVjZWRfdmFsdWU6IFRyYW5zZmVyIGxl YXN0IHNpZ25pZmljYW50IGJpdHMgaW50byBiaXQtZmllbGQKKyAgICAKKyAgICBPbiBiaWctZW5k aWFuIHRhcmdldHMsIHdoZW4gdGFyZ2V0aW5nIGEgYml0LWZpZWxkLCB3cml0ZV9waWVjZWRfdmFs dWUKKyAgICBjdXJyZW50bHkgdHJhbnNmZXJzIHRoZSBzb3VyY2UgdmFsdWUncyAqbW9zdCogc2ln bmlmaWNhbnQgYml0cyB0byB0aGUKKyAgICB0YXJnZXQgdmFsdWUsIGluc3RlYWQgb2YgaXRzIGxl YXN0IHNpZ25pZmljYW50IGJpdHMuICBUaGlzIGlzIGZpeGVkLgorICAgIAorICAgIEluIHBhcnRp Y3VsYXIgdGhlIGZpeCBhZGp1c3RzIHRoZSBpbml0aWFsIHZhbHVlIG9mICdvZmZzZXQnLCB3aGlj aCBjYW4gbm93CisgICAgcG90ZW50aWFsbHkgYmUgbm9uemVyby4gIFRodXMgdGhlIHZhcmlhYmxl ICd0eXBlX2xlbicgaXMgcmVuYW1lZCB0bworICAgICdtYXhfb2Zmc2V0JywgdG8gYXZvaWQgY29u ZnVzaW9uLiAgQW5kIGZvciBjb25zaXN0ZW5jeSwgdGhlIGFmZmVjdGVkIGxvZ2ljCisgICAgdGhh dCB3YXMgbWlycm9yZWQgaW4gcmVhZF9waWVjZWRfdmFsdWUgaXMgY2hhbmdlZCB0aGVyZSBpbiB0 aGUgc2FtZSB3YXkuCisgICAgCisgICAgZ2RiL0NoYW5nZUxvZzoKKyAgICAKKyAgICAgICAgICAg ICogZHdhcmYybG9jLmMgKHdyaXRlX3BpZWNlZF92YWx1ZSk6IFdoZW4gd3JpdGluZyB0byBhIGJp dC1maWVsZCwKKyAgICAgICAgICAgIHRyYW5zZmVyIHRoZSBzb3VyY2UgdmFsdWUncyBsZWFzdCBz aWduaWZpY2FudCBiaXRzLCBpbnN0ZWFkIG9mIGl0cworICAgICAgICAgICAgbG93ZXN0LWFkZHJl c3NlZCBvbmVzLiAgUmVuYW1lIHR5cGVfbGVuIHRvIG1heF9vZmZzZXQuCisgICAgICAgICAgICAo cmVhZF9waWVjZWRfdmFsdWUpOiBNaXJyb3IgYWJvdmUgY2hhbmdlcyB0byB3cml0ZV9waWVjZWRf dmFsdWUgYXMKKyAgICAgICAgICAgIGFwcGxpY2FibGUuCisKKyMjIyBhL2dkYi9DaGFuZ2VMb2cK KyMjIyBiL2dkYi9DaGFuZ2VMb2cKKyMjIC0xLDUgKzEsMTMgQEAKKyAyMDE3LTA2LTEzICBBbmRy ZWFzIEFybmV6ICA8YXJuZXpAbGludXgudm5ldC5pYm0uY29tPgorIAorKwkqIGR3YXJmMmxvYy5j ICh3cml0ZV9waWVjZWRfdmFsdWUpOiBXaGVuIHdyaXRpbmcgdG8gYSBiaXQtZmllbGQsCisrCXRy YW5zZmVyIHRoZSBzb3VyY2UgdmFsdWUncyBsZWFzdCBzaWduaWZpY2FudCBiaXRzLCBpbnN0ZWFk IG9mIGl0cworKwlsb3dlc3QtYWRkcmVzc2VkIG9uZXMuICBSZW5hbWUgdHlwZV9sZW4gdG8gbWF4 X29mZnNldC4KKysJKHJlYWRfcGllY2VkX3ZhbHVlKTogTWlycm9yIGFib3ZlIGNoYW5nZXMgdG8g d3JpdGVfcGllY2VkX3ZhbHVlIGFzCisrCWFwcGxpY2FibGUuCisrCisrMjAxNy0wNi0xMyAgQW5k cmVhcyBBcm5leiAgPGFybmV6QGxpbnV4LnZuZXQuaWJtLmNvbT4KKysKKyAJKiBkd2FyZjJsb2Mu YyAod3JpdGVfcGllY2VkX3ZhbHVlKTogSW4gRFdBUkZfVkFMVUVfTUVNT1JZLAorIAl0cnVuY2F0 ZSBmdWxsIGJ5dGVzIGZyb20gZGVzdF9vZmZzZXRfYml0cyBiZWZvcmUgdXNpbmcgaXQgYXMgYW4K KyAJb2Zmc2V0IGludG8gdGhlIGJ1ZmZlci4KKy0tLSBhL2dkYi9kd2FyZjJsb2MuYworKysrIGIv Z2RiL2R3YXJmMmxvYy5jCitAQCAtMTc1NiwxMiArMTc1NiwxMSBAQCBzdGF0aWMgdm9pZAorIHJl YWRfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnYpCisgeworICAgaW50IGk7CistICBsb25n IG9mZnNldCA9IDA7CisrICBMT05HRVNUIG9mZnNldCA9IDAsIG1heF9vZmZzZXQ7CisgICBVTE9O R0VTVCBiaXRzX3RvX3NraXA7CisgICBnZGJfYnl0ZSAqY29udGVudHM7CisgICBzdHJ1Y3QgcGll Y2VfY2xvc3VyZSAqYworICAgICA9IChzdHJ1Y3QgcGllY2VfY2xvc3VyZSAqKSB2YWx1ZV9jb21w dXRlZF9jbG9zdXJlICh2KTsKKy0gIHNpemVfdCB0eXBlX2xlbjsKKyAgIHNpemVfdCBidWZmZXJf c2l6ZSA9IDA7CisgICBzdGQ6OnZlY3RvcjxnZGJfYnl0ZT4gYnVmZmVyOworICAgaW50IGJpdHNf YmlnX2VuZGlhbgorQEAgLTE3NzgsMTIgKzE3NzcsMTIgQEAgcmVhZF9waWVjZWRfdmFsdWUgKHN0 cnVjdCB2YWx1ZSAqdikKKyAgICAgeworICAgICAgIGJpdHNfdG9fc2tpcCArPSAoOCAqIHZhbHVl X29mZnNldCAodmFsdWVfcGFyZW50ICh2KSkKKyAJCSAgICAgICArIHZhbHVlX2JpdHBvcyAodikp OworLSAgICAgIHR5cGVfbGVuID0gdmFsdWVfYml0c2l6ZSAodik7CisrICAgICAgbWF4X29mZnNl dCA9IHZhbHVlX2JpdHNpemUgKHYpOworICAgICB9CisgICBlbHNlCistICAgIHR5cGVfbGVuID0g OCAqIFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlICh2KSk7CisrICAgIG1heF9vZmZzZXQgPSA4ICog VFlQRV9MRU5HVEggKHZhbHVlX3R5cGUgKHYpKTsKKyAKKy0gIGZvciAoaSA9IDA7IGkgPCBjLT5u X3BpZWNlcyAmJiBvZmZzZXQgPCB0eXBlX2xlbjsgaSsrKQorKyAgZm9yIChpID0gMDsgaSA8IGMt Pm5fcGllY2VzICYmIG9mZnNldCA8IG1heF9vZmZzZXQ7IGkrKykKKyAgICAgeworICAgICAgIHN0 cnVjdCBkd2FyZl9leHByX3BpZWNlICpwID0gJmMtPnBpZWNlc1tpXTsKKyAgICAgICBzaXplX3Qg dGhpc19zaXplLCB0aGlzX3NpemVfYml0czsKK0BAIC0xNzk4LDIwICsxNzk3LDEzIEBAIHJlYWRf cGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnYpCisgCSAgYml0c190b19za2lwIC09IHRoaXNf c2l6ZV9iaXRzOworIAkgIGNvbnRpbnVlOworIAl9CistICAgICAgaWYgKGJpdHNfdG9fc2tpcCA+ IDApCistCXsKKy0JICBkZXN0X29mZnNldF9iaXRzID0gMDsKKy0JICBzb3VyY2Vfb2Zmc2V0X2Jp dHMgPSBiaXRzX3RvX3NraXA7CistCSAgdGhpc19zaXplX2JpdHMgLT0gYml0c190b19za2lwOwor LQkgIGJpdHNfdG9fc2tpcCA9IDA7CistCX0KKy0gICAgICBlbHNlCistCXsKKy0JICBkZXN0X29m ZnNldF9iaXRzID0gb2Zmc2V0OworLQkgIHNvdXJjZV9vZmZzZXRfYml0cyA9IDA7CistCX0KKy0g ICAgICBpZiAodGhpc19zaXplX2JpdHMgPiB0eXBlX2xlbiAtIG9mZnNldCkKKy0JdGhpc19zaXpl X2JpdHMgPSB0eXBlX2xlbiAtIG9mZnNldDsKKysgICAgICBzb3VyY2Vfb2Zmc2V0X2JpdHMgPSBi aXRzX3RvX3NraXA7CisrICAgICAgdGhpc19zaXplX2JpdHMgLT0gYml0c190b19za2lwOworKyAg ICAgIGJpdHNfdG9fc2tpcCA9IDA7CisrICAgICAgZGVzdF9vZmZzZXRfYml0cyA9IG9mZnNldDsK KysKKysgICAgICBpZiAodGhpc19zaXplX2JpdHMgPiBtYXhfb2Zmc2V0IC0gb2Zmc2V0KQorKwl0 aGlzX3NpemVfYml0cyA9IG1heF9vZmZzZXQgLSBvZmZzZXQ7CisgCisgICAgICAgdGhpc19zaXpl ID0gKHRoaXNfc2l6ZV9iaXRzICsgc291cmNlX29mZnNldF9iaXRzICUgOCArIDcpIC8gODsKKyAg ICAgICBzb3VyY2Vfb2Zmc2V0ID0gc291cmNlX29mZnNldF9iaXRzIC8gODsKK0BAIC0xOTMyLDEy ICsxOTI0LDExIEBAIHN0YXRpYyB2b2lkCisgd3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFs dWUgKnRvLCBzdHJ1Y3QgdmFsdWUgKmZyb20pCisgeworICAgaW50IGk7CistICBsb25nIG9mZnNl dCA9IDA7CisgICBVTE9OR0VTVCBiaXRzX3RvX3NraXA7CisrICBMT05HRVNUIG9mZnNldCA9IDAs IG1heF9vZmZzZXQ7CisgICBjb25zdCBnZGJfYnl0ZSAqY29udGVudHM7CisgICBzdHJ1Y3QgcGll Y2VfY2xvc3VyZSAqYworICAgICA9IChzdHJ1Y3QgcGllY2VfY2xvc3VyZSAqKSB2YWx1ZV9jb21w dXRlZF9jbG9zdXJlICh0byk7CistICBzaXplX3QgdHlwZV9sZW47CisgICBzaXplX3QgYnVmZmVy X3NpemUgPSAwOworICAgc3RkOjp2ZWN0b3I8Z2RiX2J5dGU+IGJ1ZmZlcjsKKyAgIGludCBiaXRz X2JpZ19lbmRpYW4KK0BAIC0xOTQ5LDEyICsxOTQwLDIwIEBAIHdyaXRlX3BpZWNlZF92YWx1ZSAo c3RydWN0IHZhbHVlICp0bywgc3RydWN0IHZhbHVlICpmcm9tKQorICAgICB7CisgICAgICAgYml0 c190b19za2lwICs9ICg4ICogdmFsdWVfb2Zmc2V0ICh2YWx1ZV9wYXJlbnQgKHRvKSkKKyAJCSAg ICAgICArIHZhbHVlX2JpdHBvcyAodG8pKTsKKy0gICAgICB0eXBlX2xlbiA9IHZhbHVlX2JpdHNp emUgKHRvKTsKKy0gICAgfQorKyAgICAgIC8qIFVzZSB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgYml0 cyBvZiBGUk9NLiAgKi8KKysgICAgICBpZiAoZ2RiYXJjaF9ieXRlX29yZGVyIChnZXRfdHlwZV9h cmNoICh2YWx1ZV90eXBlIChmcm9tKSkpCisrCSAgPT0gQkZEX0VORElBTl9CSUcpCisrCXsKKysJ ICBtYXhfb2Zmc2V0ID0gOCAqIFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlIChmcm9tKSk7CisrCSAg b2Zmc2V0ID0gbWF4X29mZnNldCAtIHZhbHVlX2JpdHNpemUgKHRvKTsKKysJfQorKyAgICAgIGVs c2UKKysJbWF4X29mZnNldCA9IHZhbHVlX2JpdHNpemUgKHRvKTsKKysgICB9CisgICBlbHNlCist ICAgIHR5cGVfbGVuID0gOCAqIFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlICh0bykpOworKyAgICBt YXhfb2Zmc2V0ID0gOCAqIFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlICh0bykpOworIAorLSAgZm9y IChpID0gMDsgaSA8IGMtPm5fcGllY2VzICYmIG9mZnNldCA8IHR5cGVfbGVuOyBpKyspCisrICBm b3IgKGkgPSAwOyBpIDwgYy0+bl9waWVjZXMgJiYgb2Zmc2V0IDwgbWF4X29mZnNldDsgaSsrKQor ICAgICB7CisgICAgICAgc3RydWN0IGR3YXJmX2V4cHJfcGllY2UgKnAgPSAmYy0+cGllY2VzW2ld OworICAgICAgIHNpemVfdCB0aGlzX3NpemVfYml0cywgdGhpc19zaXplOworQEAgLTE5NjgsMjAg KzE5NjcsMTMgQEAgd3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBzdHJ1Y3Qg dmFsdWUgKmZyb20pCisgCSAgYml0c190b19za2lwIC09IHRoaXNfc2l6ZV9iaXRzOworIAkgIGNv bnRpbnVlOworIAl9CistICAgICAgaWYgKGJpdHNfdG9fc2tpcCA+IDApCistCXsKKy0JICBkZXN0 X29mZnNldF9iaXRzID0gYml0c190b19za2lwOworLQkgIHNvdXJjZV9vZmZzZXRfYml0cyA9IDA7 CistCSAgdGhpc19zaXplX2JpdHMgLT0gYml0c190b19za2lwOworLQkgIGJpdHNfdG9fc2tpcCA9 IDA7CistCX0KKy0gICAgICBlbHNlCistCXsKKy0JICBkZXN0X29mZnNldF9iaXRzID0gMDsKKy0J ICBzb3VyY2Vfb2Zmc2V0X2JpdHMgPSBvZmZzZXQ7CistCX0KKy0gICAgICBpZiAodGhpc19zaXpl X2JpdHMgPiB0eXBlX2xlbiAtIG9mZnNldCkKKy0JdGhpc19zaXplX2JpdHMgPSB0eXBlX2xlbiAt IG9mZnNldDsKKysgICAgICBkZXN0X29mZnNldF9iaXRzID0gYml0c190b19za2lwOworKyAgICAg IHRoaXNfc2l6ZV9iaXRzIC09IGJpdHNfdG9fc2tpcDsKKysgICAgICBiaXRzX3RvX3NraXAgPSAw OworKyAgICAgIHNvdXJjZV9vZmZzZXRfYml0cyA9IG9mZnNldDsKKysKKysgICAgICBpZiAodGhp c19zaXplX2JpdHMgPiBtYXhfb2Zmc2V0IC0gb2Zmc2V0KQorKwl0aGlzX3NpemVfYml0cyA9IG1h eF9vZmZzZXQgLSBvZmZzZXQ7CisgCisgICAgICAgdGhpc19zaXplID0gKHRoaXNfc2l6ZV9iaXRz ICsgZGVzdF9vZmZzZXRfYml0cyAlIDggKyA3KSAvIDg7CisgICAgICAgc291cmNlX29mZnNldCA9 IHNvdXJjZV9vZmZzZXRfYml0cyAvIDg7CgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYnoxNDIwMzA0LXMz OTB4LTE5b2YzNS5wYXRjaCBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0xOW9mMzUucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWI1YjE5MAotLS0gL2Rldi9udWxsCisr KyBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0xOW9mMzUucGF0Y2gKQEAgLTAsMCArMSwxNDIgQEAK K2NvbW1pdCAzYmYzMTAxMTA3MjJiMDNkOWZmOWM0ZjM0ZjU5MjBhOWJlMjg3OGQwCitBdXRob3I6 IEFuZHJlYXMgQXJuZXogPGFybmV6QGxpbnV4LnZuZXQuaWJtLmNvbT4KK0RhdGU6ICAgVHVlIEp1 biAxMyAxNToyMDoyOSAyMDE3ICswMjAwCisKKyAgICBBZGQgRFdBUkYgcGllY2UgdGVzdCBjYXNl cyBmb3IgYml0LWZpZWxkIGFjY2VzcworICAgIAorICAgIFRoaXMgdmVyaWZpZXMgc29tZSBvZiB0 aGUgcHJldmlvdXMgZml4ZXMgdG8gdGhlIGxvZ2ljIGluCisgICAgd3JpdGVfcGllY2VkX3ZhbHVl IHdoZW4gYWNjZXNzaW5nIGJpdC1maWVsZHMuCisgICAgCisgICAgZ2RiL3Rlc3RzdWl0ZS9DaGFu Z2VMb2c6CisgICAgCisgICAgICAgICAgICAqIGdkYi5kd2FyZjIvdmFyLWFjY2Vzcy5leHA6IEFk ZCB0ZXN0cyBmb3IgYWNjZXNzaW5nIGJpdC1maWVsZHMKKyAgICAgICAgICAgIGxvY2F0ZWQgaW4g b25lIG9yIG1vcmUgRFdBUkYgcGllY2VzLgorCisjIyMgYS9nZGIvdGVzdHN1aXRlL0NoYW5nZUxv ZworIyMjIGIvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKKyMjIC0xLDUgKzEsMTAgQEAKKyAyMDE3 LTA2LTEzICBBbmRyZWFzIEFybmV6ICA8YXJuZXpAbGludXgudm5ldC5pYm0uY29tPgorIAorKwkq IGdkYi5kd2FyZjIvdmFyLWFjY2Vzcy5leHA6IEFkZCB0ZXN0cyBmb3IgYWNjZXNzaW5nIGJpdC1m aWVsZHMKKysJbG9jYXRlZCBpbiBvbmUgb3IgbW9yZSBEV0FSRiBwaWVjZXMuCisrCisrMjAxNy0w Ni0xMyAgQW5kcmVhcyBBcm5leiAgPGFybmV6QGxpbnV4LnZuZXQuaWJtLmNvbT4KKysKKyAJKiBs aWIvZ2RiLmV4cCAoZ2V0X2VuZGlhbm5lc3MpOiBOZXcgcHJvYy4KKyAJKiBnZGIuYXJjaC9hYXJj aDY0LWZwLmV4cDogVXNlIGl0LgorIAkqIGdkYi5hcmNoL2FsdGl2ZWMtcmVncy5leHA6IExpa2V3 aXNlLgorLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL3Zhci1hY2Nlc3MuZXhwCisrKysg Yi9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvdmFyLWFjY2Vzcy5leHAKK0BAIC02Miw3ICs2Miw4 IEBAIER3YXJmOjphc3NlbWJsZSAkYXNtX2ZpbGUgeworIAl9IHsKKyAJICAgIGRlY2xhcmVfbGFi ZWxzIGNoYXJfdHlwZV9sYWJlbAorIAkgICAgZGVjbGFyZV9sYWJlbHMgaW50X3R5cGVfbGFiZWwg c2hvcnRfdHlwZV9sYWJlbAorLQkgICAgZGVjbGFyZV9sYWJlbHMgYXJyYXlfYThfbGFiZWwgc3Ry dWN0X3NfbGFiZWwKKysJICAgIGRlY2xhcmVfbGFiZWxzIGFycmF5X2E4X2xhYmVsIHN0cnVjdF9z X2xhYmVsIHN0cnVjdF90X2xhYmVsCisrCSAgICBkZWNsYXJlX2xhYmVscyBzdHJ1Y3Rfc3RfbGFi ZWwKKyAKKyAJICAgICMgY2hhcgorIAkgICAgY2hhcl90eXBlX2xhYmVsOiBiYXNlX3R5cGUgewor QEAgLTExNSw2ICsxMTYsNTEgQEAgRHdhcmY6OmFzc2VtYmxlICRhc21fZmlsZSB7CisgCQl9Cisg CSAgICB9CisgCisrCSAgICAjIHN0cnVjdCB0IHsgaW50IHUsIHg6OSwgeToxMywgejoxMDsgfTsK KysJICAgIHN0cnVjdF90X2xhYmVsOiBzdHJ1Y3R1cmVfdHlwZSB7CisrCQl7bmFtZSAidCJ9Cisr CQl7Ynl0ZV9zaXplIDggRFdfRk9STV9zZGF0YX0KKysJICAgIH0geworKwkJbWVtYmVyIHsKKysJ CSAgICB7bmFtZSAidSJ9CisrCQkgICAge3R5cGUgOiRpbnRfdHlwZV9sYWJlbH0KKysJCX0KKysJ CW1lbWJlciB7CisrCQkgICAge25hbWUgIngifQorKwkJICAgIHt0eXBlIDokaW50X3R5cGVfbGFi ZWx9CisrCQkgICAge2RhdGFfbWVtYmVyX2xvY2F0aW9uIDQgRFdfRk9STV91ZGF0YX0KKysJCSAg ICB7Yml0X3NpemUgOSBEV19GT1JNX3VkYXRhfQorKwkJfQorKwkJbWVtYmVyIHsKKysJCSAgICB7 bmFtZSAieSJ9CisrCQkgICAge3R5cGUgOiRpbnRfdHlwZV9sYWJlbH0KKysJCSAgICB7ZGF0YV9i aXRfb2Zmc2V0IDQxIERXX0ZPUk1fdWRhdGF9CisrCQkgICAge2JpdF9zaXplIDEzIERXX0ZPUk1f dWRhdGF9CisrCQl9CisrCQltZW1iZXIgeworKwkJICAgIHtuYW1lICJ6In0KKysJCSAgICB7dHlw ZSA6JGludF90eXBlX2xhYmVsfQorKwkJICAgIHtkYXRhX2JpdF9vZmZzZXQgNTQgRFdfRk9STV91 ZGF0YX0KKysJCSAgICB7Yml0X3NpemUgMTAgRFdfRk9STV91ZGF0YX0KKysJCX0KKysJICAgIH0K KysKKysJICAgICMgc3RydWN0IHN0IHsgc3RydWN0IHMgczsgc3RydWN0IHQgdDsgfTsKKysJICAg IHN0cnVjdF9zdF9sYWJlbDogc3RydWN0dXJlX3R5cGUgeworKwkJe25hbWUgInN0In0KKysJCXti eXRlX3NpemUgMTIgRFdfRk9STV91ZGF0YX0KKysJICAgIH0geworKwkJbWVtYmVyIHsKKysJCSAg ICB7bmFtZSAicyJ9CisrCQkgICAge3R5cGUgOiRzdHJ1Y3Rfc19sYWJlbH0KKysJCX0KKysJCW1l bWJlciB7CisrCQkgICAge25hbWUgInQifQorKwkJICAgIHt0eXBlIDokc3RydWN0X3RfbGFiZWx9 CisrCQkgICAge2RhdGFfbWVtYmVyX2xvY2F0aW9uIDQgRFdfRk9STV91ZGF0YX0KKysJCX0KKysJ ICAgIH0KKysKKyAJICAgIERXX1RBR19zdWJwcm9ncmFtIHsKKyAJCXtNQUNST19BVF9mdW5jIHsg bWFpbiAke3NyY2Rpcn0vJHtzdWJkaXJ9LyR7c3JjZmlsZX0gfX0KKyAJCXtEV19BVF9leHRlcm5h bCAxIGZsYWd9CitAQCAtMTU2LDYgKzIwMiwxOSBAQCBEd2FyZjo6YXNzZW1ibGUgJGFzbV9maWxl IHsKKyAJCQlwaWVjZSAxCisgCQkgICAgfSBTUEVDSUFMX2V4cHJ9CisgCQl9CisrCQkjIE1lbW9y eSBwaWVjZXMgZm9yIGJpdGZpZWxkIGFjY2VzczogOCBieXRlcyBvcHRpbWl6ZWQKKysJCSMgb3V0 LCAzIGJ5dGVzIGZyb20gJmJ1ZlszXSwgYW5kIDEgYnl0ZSBmcm9tICZidWZbMV0uCisrCQlEV19U QUdfdmFyaWFibGUgeworKwkJICAgIHtuYW1lICJzdDEifQorKwkJICAgIHt0eXBlIDokc3RydWN0 X3N0X2xhYmVsfQorKwkJICAgIHtsb2NhdGlvbiB7CisrCQkJcGllY2UgOAorKwkJCWFkZHIgIiRi dWZfdmFyICsgMyIKKysJCQlwaWVjZSAzCisrCQkJYWRkciAiJGJ1Zl92YXIgKyAxIgorKwkJCXBp ZWNlIDEKKysJCSAgICB9IFNQRUNJQUxfZXhwcn0KKysJCX0KKyAJICAgIH0KKyAJfQorICAgICB9 CitAQCAtMTcwLDYgKzIyOSw5IEBAIGlmICFbcnVudG9fbWFpbl0geworICAgICByZXR1cm4gLTEK KyB9CisgCisrIyBEZXRlcm1pbmUgYnl0ZSBvcmRlci4KKytzZXQgZW5kaWFuIFtnZXRfZW5kaWFu bmVzc10KKysKKyAjIEJ5dGUtYWxpZ25lZCBtZW1vcnkgcGllY2VzLgorIGdkYl90ZXN0ICJwcmlu dC9kIHMxIiAiID0gXFx7YSA9IDIsIGIgPSAzLCBjID0gMCwgZCA9IDFcXH0iIFwKKyAgICAgInMx ID09IHJlLW9yZGVyZWQgYnVmIgorQEAgLTIwMCwzICsyNjIsMjAgQEAgZ2RiX3Rlc3Rfbm9fb3V0 cHV0ICJzZXQgdmFyIHMyID0gezE5MSwgNzMsIDIzMSwgMTIzfSIgXAorICAgICAicmUtaW5pdGlh bGl6ZSBzMiIKKyBnZGJfdGVzdCAicHJpbnQvZCBzMiIgICIgPSBcXHthID0gMTkxLCBiID0gNzMs IGMgPSAyMzEsIGQgPSAxMjNcXH0iIFwKKyAgICAgInZlcmlmeSByZS1pbml0aWFsaXplZCBzMiIK KysKKysjIFVuYWxpZ25lZCBiaXRmaWVsZCBhY2Nlc3MgdGhyb3VnaCBieXRlLWFsaWduZWQgcGll Y2VzLgorK2dkYl90ZXN0X25vX291dHB1dCAic2V0IHZhciBhID0geyAwIH0iCisrZ2RiX3Rlc3Rf bm9fb3V0cHV0ICJzZXQgdmFyIHN0MS50LnggPSAtNyIKKytnZGJfdGVzdF9ub19vdXRwdXQgInNl dCB2YXIgc3QxLnQueiA9IDM0MCIKKytnZGJfdGVzdF9ub19vdXRwdXQgInNldCB2YXIgc3QxLnQu eSA9IDEyMzQiCisrZ2RiX3Rlc3QgInByaW50IHN0MS50IiAiID0gXFx7dSA9IDxvcHRpbWl6ZWQg b3V0PiwgeCA9IC03LCB5ID0gMTIzNCwgeiA9IDM0MFxcfSIgXAorKyAgICAidmVyaWZ5IHN0MS50 IgorK3N3aXRjaCAkZW5kaWFuIHsKKysgICAgbGl0dGxlIHtzZXQgdmFsICIweDU1LCAweDAsIDB4 ZjksIDB4YTUsIDB4OSJ9CisrICAgIGJpZyB7c2V0IHZhbCAiMHg1NCwgMHgwLCAweGZjLCAweDkz LCAweDQ5In0KKyt9CisrIyB8IC0tIHwgejoyLTkgfCAtLSB8IHg6MC03IHwgeDo4IHk6MC02IHwg eTo3LTEyIHo6MC0xIHwgLS0gfCAtLSB8CisrIyAgICAgIFxfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXy8KKysjICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB2YWwKKytnZGJfdGVzdCAicHJpbnQveCBhIiAiID0gXFx7MHgwLCAke3ZhbH0sIDB4MCwgMHgw XFx9IiBcCisrICAgICJ2ZXJpZnkgc3QxIHRocm91Z2ggYSIKCmRpZmYgLS1naXQgYS9nZGItcmhi ejE0MjAzMDQtczM5MHgtMjBvZjM1LnBhdGNoIGIvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTIwb2Yz NS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YzgwNzM1Ci0tLSAv ZGV2L251bGwKKysrIGIvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTIwb2YzNS5wYXRjaApAQCAtMCww ICsxLDc0IEBACitjb21taXQgODQwOTg5YzExMzQzM2MwNjlmNTQ4NzJkN2UwNTFlMTU3MjIwMjMy NgorQXV0aG9yOiBBbmRyZWFzIEFybmV6IDxhcm5lekBsaW51eC52bmV0LmlibS5jb20+CitEYXRl OiAgIFR1ZSBKdW4gMTMgMTU6MjA6MzAgMjAxNyArMDIwMAorCisgICAgcmVhZC93cml0ZV9waWVj ZWRfdmFsdWU6IERyb3AgJ2J1ZmZlcl9zaXplJyB2YXJpYWJsZQorICAgIAorICAgIFdoZW4gdGhl IHZhcmlhYmxlICdidWZmZXJfc2l6ZScgaW4gcmVhZF9waWVjZWRfdmFsdWUgYW5kCisgICAgd3Jp dGVfcGllY2VkX3ZhbHVlIHdhcyBpbnRyb2R1Y2VkLCBpdCB3YXMgbmVlZGVkIGZvciB0cmFja2lu ZyB0aGUgYnVmZmVyJ3MKKyAgICBhbGxvY2F0ZWQgc2l6ZS4gIE5vdyB0aGF0IHRoZSBidWZmZXIn cyBkYXRhIHR5cGUgaGFzIGJlZW4gY2hhbmdlZCB0byBhCisgICAgc3RkOjp2ZWN0b3IsIHRoZSB2 YXJpYWJsZSBpcyBubyBsb25nZXIgbmVjZXNzYXJ5OyBzbyByZW1vdmUgaXQuCisgICAgCisgICAg Z2RiL0NoYW5nZUxvZzoKKyAgICAKKyAgICAgICAgICAgICogZHdhcmYybG9jLmMgKHJlYWRfcGll Y2VkX3ZhbHVlKTogUmVtb3ZlIGJ1ZmZlcl9zaXplIHZhcmlhYmxlLgorICAgICAgICAgICAgKHdy aXRlX3BpZWNlZF92YWx1ZSk6IExpa2V3aXNlLgorCisjIyMgYS9nZGIvQ2hhbmdlTG9nCisjIyMg Yi9nZGIvQ2hhbmdlTG9nCisjIyAtMSw1ICsxLDEwIEBACisgMjAxNy0wNi0xMyAgQW5kcmVhcyBB cm5leiAgPGFybmV6QGxpbnV4LnZuZXQuaWJtLmNvbT4KKyAKKysJKiBkd2FyZjJsb2MuYyAocmVh ZF9waWVjZWRfdmFsdWUpOiBSZW1vdmUgYnVmZmVyX3NpemUgdmFyaWFibGUuCisrCSh3cml0ZV9w aWVjZWRfdmFsdWUpOiBMaWtld2lzZS4KKysKKysyMDE3LTA2LTEzICBBbmRyZWFzIEFybmV6ICA8 YXJuZXpAbGludXgudm5ldC5pYm0uY29tPgorKworIAkqIGR3YXJmMmxvYy5jICh3cml0ZV9waWVj ZWRfdmFsdWUpOiBXaGVuIHdyaXRpbmcgdG8gYSBiaXQtZmllbGQsCisgCXRyYW5zZmVyIHRoZSBz b3VyY2UgdmFsdWUncyBsZWFzdCBzaWduaWZpY2FudCBiaXRzLCBpbnN0ZWFkIG9mIGl0cworIAls b3dlc3QtYWRkcmVzc2VkIG9uZXMuICBSZW5hbWUgdHlwZV9sZW4gdG8gbWF4X29mZnNldC4KKy0t LSBhL2dkYi9kd2FyZjJsb2MuYworKysrIGIvZ2RiL2R3YXJmMmxvYy5jCitAQCAtMTc2MSw3ICsx NzYxLDYgQEAgcmVhZF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdikKKyAgIGdkYl9ieXRl ICpjb250ZW50czsKKyAgIHN0cnVjdCBwaWVjZV9jbG9zdXJlICpjCisgICAgID0gKHN0cnVjdCBw aWVjZV9jbG9zdXJlICopIHZhbHVlX2NvbXB1dGVkX2Nsb3N1cmUgKHYpOworLSAgc2l6ZV90IGJ1 ZmZlcl9zaXplID0gMDsKKyAgIHN0ZDo6dmVjdG9yPGdkYl9ieXRlPiBidWZmZXI7CisgICBpbnQg Yml0c19iaWdfZW5kaWFuCisgICAgID0gZ2RiYXJjaF9iaXRzX2JpZ19lbmRpYW4gKGdldF90eXBl X2FyY2ggKHZhbHVlX3R5cGUgKHYpKSk7CitAQCAtMTgwNiwxMiArMTgwNSw4IEBAIHJlYWRfcGll Y2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnYpCisgCXRoaXNfc2l6ZV9iaXRzID0gbWF4X29mZnNl dCAtIG9mZnNldDsKKyAKKyAgICAgICB0aGlzX3NpemUgPSAodGhpc19zaXplX2JpdHMgKyBzb3Vy Y2Vfb2Zmc2V0X2JpdHMgJSA4ICsgNykgLyA4OworKyAgICAgIGJ1ZmZlci5yZXNlcnZlICh0aGlz X3NpemUpOworICAgICAgIHNvdXJjZV9vZmZzZXQgPSBzb3VyY2Vfb2Zmc2V0X2JpdHMgLyA4Owor LSAgICAgIGlmIChidWZmZXJfc2l6ZSA8IHRoaXNfc2l6ZSkKKy0JeworLQkgIGJ1ZmZlcl9zaXpl ID0gdGhpc19zaXplOworLQkgIGJ1ZmZlci5yZXNlcnZlIChidWZmZXJfc2l6ZSk7CistCX0KKyAg ICAgICBpbnRlcm1lZGlhdGVfYnVmZmVyID0gYnVmZmVyLmRhdGEgKCk7CisgCisgICAgICAgLyog Q29weSBmcm9tIHRoZSBzb3VyY2UgdG8gREVTVF9CVUZGRVIuICAqLworQEAgLTE5MjksNyArMTky NCw2IEBAIHdyaXRlX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp0bywgc3RydWN0IHZhbHVl ICpmcm9tKQorICAgY29uc3QgZ2RiX2J5dGUgKmNvbnRlbnRzOworICAgc3RydWN0IHBpZWNlX2Ns b3N1cmUgKmMKKyAgICAgPSAoc3RydWN0IHBpZWNlX2Nsb3N1cmUgKikgdmFsdWVfY29tcHV0ZWRf Y2xvc3VyZSAodG8pOworLSAgc2l6ZV90IGJ1ZmZlcl9zaXplID0gMDsKKyAgIHN0ZDo6dmVjdG9y PGdkYl9ieXRlPiBidWZmZXI7CisgICBpbnQgYml0c19iaWdfZW5kaWFuCisgICAgID0gZ2RiYXJj aF9iaXRzX2JpZ19lbmRpYW4gKGdldF90eXBlX2FyY2ggKHZhbHVlX3R5cGUgKHRvKSkpOworQEAg LTE5ODgsMTEgKzE5ODIsNyBAQCB3cml0ZV9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdG8s IHN0cnVjdCB2YWx1ZSAqZnJvbSkKKyAJfQorICAgICAgIGVsc2UKKyAJeworLQkgIGlmIChidWZm ZXJfc2l6ZSA8IHRoaXNfc2l6ZSkKKy0JICAgIHsKKy0JICAgICAgYnVmZmVyX3NpemUgPSB0aGlz X3NpemU7CistCSAgICAgIGJ1ZmZlci5yZXNlcnZlIChidWZmZXJfc2l6ZSk7CistCSAgICB9Cisr CSAgYnVmZmVyLnJlc2VydmUgKHRoaXNfc2l6ZSk7CisgCSAgc291cmNlX2J1ZmZlciA9IGJ1ZmZl ci5kYXRhICgpOworIAkgIG5lZWRfYml0d2lzZSA9IDE7CisgCX0KCmRpZmYgLS1naXQgYS9nZGIt cmhiejE0MjAzMDQtczM5MHgtMjFvZjM1LnBhdGNoIGIvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTIx b2YzNS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NWY5YzkxCi0t LSAvZGV2L251bGwKKysrIGIvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTIxb2YzNS5wYXRjaApAQCAt MCwwICsxLDIyNyBAQAorY29tbWl0IDAzYzhhZjE4ZDFhOGYzNTlmZDAyMzY5Njg0OGJkYTQ4ODEx OWRhNjAKK0F1dGhvcjogQW5kcmVhcyBBcm5leiA8YXJuZXpAbGludXgudm5ldC5pYm0uY29tPgor RGF0ZTogICBUdWUgSnVuIDEzIDE1OjIwOjMwIDIwMTcgKzAyMDAKKworICAgIEZpeCBoYW5kbGlu ZyBvZiBEV0FSRiByZWdpc3RlciBwaWVjZXMgb24gYmlnLWVuZGlhbiB0YXJnZXRzCisgICAgCisg ICAgRm9yIGJpZy1lbmRpYW4gdGFyZ2V0cyB0aGUgbG9naWMgaW4gcmVhZC93cml0ZV9waWVjZWRf dmFsdWUgdHJpZXMgdG8gdGFrZQorICAgIGEgcmVnaXN0ZXIgcGllY2UgZnJvbSB0aGUgTFNCIGVu ZC4gIFRoaXMgcmVxdWlyZXMgb2Zmc2V0cyBhbmQgc2l6ZXMgdG8gYmUKKyAgICBhZGp1c3RlZCBh Y2NvcmRpbmdseSwgYW5kIHRoYXQncyB3aGVyZSB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBo YXMgc29tZQorICAgIGlzc3VlczoKKyAgICAKKyAgICAqIFRoZSBmb3JtdWxhcyBmb3IgcmVjYWxj dWxhdGluZyB0aGUgYml0LSBhbmQgYnl0ZS1vZmZzZXRzIGludG8gdGhlCisgICAgICByZWdpc3Rl ciBhcmUgd3JvbmcuICBUaGV5IGp1c3QgaGFwcGVuIHRvIHlpZWxkIGNvcnJlY3QgcmVzdWx0cyBp ZgorICAgICAgZXZlcnl0aGluZyBpcyBieXRlLWFsaWduZWQgYW5kIHRoZSBwaWVjZSdzIGxhc3Qg Ynl0ZSBiZWxvbmdzIHRvIHRoZQorICAgICAgZ2l2ZW4gdmFsdWUuCisgICAgCisgICAgKiBBZnRl ciByZWNhbGN1bGF0aW5nIHRoZSBiaXQgb2Zmc2V0IGludG8gdGhlIHJlZ2lzdGVyLCB0aGUgbnVt YmVyIG9mCisgICAgICBieXRlcyB0byBiZSBjb3BpZWQgZnJvbSB0aGUgcmVnaXN0ZXIgaXMgbm90 IHJlY2FsY3VsYXRlZC4gIE9mIGNvdXJzZQorICAgICAgdGhpcyBkb2VzIG5vdCBtYXR0ZXIgaWYg ZXZlcnl0aGluZyAocGFydGljdWxhcmx5IHRoZSBwaWVjZSBzaXplKSBpcworICAgICAgYnl0ZS1h bGlnbmVkLgorICAgIAorICAgIFRoZXNlIGlzc3VlcyBhcmUgZml4ZWQuICBUaGUgc2l6ZSBjYWxj dWxhdGlvbiBpcyBwZXJmb3JtZWQgd2l0aCBhIG5ldworICAgIGhlbHBlciBmdW5jdGlvbiBiaXRz X3RvX2J5dGVzKCkuCisgICAgCisgICAgZ2RiL0NoYW5nZUxvZzoKKyAgICAKKyAgICAgICAgICAg ICogZHdhcmYybG9jLmMgKGJpdHNfdG9fYnl0ZXMpOiBOZXcgZnVuY3Rpb24uCisgICAgICAgICAg ICAocmVhZF9waWVjZWRfdmFsdWUpOiBGaXggb2Zmc2V0IGNhbGN1bGF0aW9ucyBmb3IgcmVnaXN0 ZXIgcGllY2VzCisgICAgICAgICAgICBvbiBiaWctZW5kaWFuIHRhcmdldHMuCisgICAgICAgICAg ICAod3JpdGVfcGllY2VkX3ZhbHVlKTogTGlrZXdpc2UuCisgICAgCisgICAgZ2RiL3Rlc3RzdWl0 ZS9DaGFuZ2VMb2c6CisgICAgCisgICAgICAgICAgICAqIGdkYi5kd2FyZjIvdmFyLWFjY2Vzcy5l eHA6IEFkZCB0ZXN0IGZvciBub24tYnl0ZS1hbGlnbmVkCisgICAgICAgICAgICByZWdpc3RlciBw aWVjZXMuCisKKyMjIyBhL2dkYi9DaGFuZ2VMb2cKKyMjIyBiL2dkYi9DaGFuZ2VMb2cKKyMjIC0x LDUgKzEsMTIgQEAKKyAyMDE3LTA2LTEzICBBbmRyZWFzIEFybmV6ICA8YXJuZXpAbGludXgudm5l dC5pYm0uY29tPgorIAorKwkqIGR3YXJmMmxvYy5jIChiaXRzX3RvX2J5dGVzKTogTmV3IGZ1bmN0 aW9uLgorKwkocmVhZF9waWVjZWRfdmFsdWUpOiBGaXggb2Zmc2V0IGNhbGN1bGF0aW9ucyBmb3Ig cmVnaXN0ZXIgcGllY2VzCisrCW9uIGJpZy1lbmRpYW4gdGFyZ2V0cy4KKysJKHdyaXRlX3BpZWNl ZF92YWx1ZSk6IExpa2V3aXNlLgorKworKzIwMTctMDYtMTMgIEFuZHJlYXMgQXJuZXogIDxhcm5l ekBsaW51eC52bmV0LmlibS5jb20+CisrCisgCSogZHdhcmYybG9jLmMgKHJlYWRfcGllY2VkX3Zh bHVlKTogUmVtb3ZlIGJ1ZmZlcl9zaXplIHZhcmlhYmxlLgorIAkod3JpdGVfcGllY2VkX3ZhbHVl KTogTGlrZXdpc2UuCisgCistLS0gYS9nZGIvZHdhcmYybG9jLmMKKysrKyBiL2dkYi9kd2FyZjJs b2MuYworQEAgLTE3NTIsNiArMTc1MiwxNSBAQCBjb3B5X2JpdHdpc2VfdGVzdHMgKHZvaWQpCisg CisgI2VuZGlmIC8qIEdEQl9TRUxGX1RFU1QgKi8KKyAKKysvKiBSZXR1cm4gdGhlIG51bWJlciBv ZiBieXRlcyBvdmVybGFwcGluZyBhIGNvbnRpZ3VvdXMgY2h1bmsgb2YgTl9CSVRTCisrICAgYml0 cyB3aG9zZSBmaXJzdCBiaXQgaXMgbG9jYXRlZCBhdCBiaXQgb2Zmc2V0IFNUQVJULiAgKi8KKysK KytzdGF0aWMgc2l6ZV90CisrYml0c190b19ieXRlcyAoVUxPTkdFU1Qgc3RhcnQsIFVMT05HRVNU IG5fYml0cykKKyt7CisrICByZXR1cm4gKHN0YXJ0ICUgOCArIG5fYml0cyArIDcpIC8gODsKKyt9 CisrCisgc3RhdGljIHZvaWQKKyByZWFkX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQor IHsKK0BAIC0xODA0LDcgKzE4MTMsNyBAQCByZWFkX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVl ICp2KQorICAgICAgIGlmICh0aGlzX3NpemVfYml0cyA+IG1heF9vZmZzZXQgLSBvZmZzZXQpCisg CXRoaXNfc2l6ZV9iaXRzID0gbWF4X29mZnNldCAtIG9mZnNldDsKKyAKKy0gICAgICB0aGlzX3Np emUgPSAodGhpc19zaXplX2JpdHMgKyBzb3VyY2Vfb2Zmc2V0X2JpdHMgJSA4ICsgNykgLyA4Owor KyAgICAgIHRoaXNfc2l6ZSA9IGJpdHNfdG9fYnl0ZXMgKHNvdXJjZV9vZmZzZXRfYml0cywgdGhp c19zaXplX2JpdHMpOworICAgICAgIGJ1ZmZlci5yZXNlcnZlICh0aGlzX3NpemUpOworICAgICAg IHNvdXJjZV9vZmZzZXQgPSBzb3VyY2Vfb2Zmc2V0X2JpdHMgLyA4OworICAgICAgIGludGVybWVk aWF0ZV9idWZmZXIgPSBidWZmZXIuZGF0YSAoKTsKK0BAIC0xODE3LDIwICsxODI2LDIwIEBAIHJl YWRfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnYpCisgCSAgICBzdHJ1Y3QgZnJhbWVfaW5m byAqZnJhbWUgPSBmcmFtZV9maW5kX2J5X2lkIChjLT5mcmFtZV9pZCk7CisgCSAgICBzdHJ1Y3Qg Z2RiYXJjaCAqYXJjaCA9IGdldF9mcmFtZV9hcmNoIChmcmFtZSk7CisgCSAgICBpbnQgZ2RiX3Jl Z251bSA9IGR3YXJmX3JlZ190b19yZWdudW1fb3JfZXJyb3IgKGFyY2gsIHAtPnYucmVnbm8pOwor KwkgICAgVUxPTkdFU1QgcmVnX2JpdHMgPSA4ICogcmVnaXN0ZXJfc2l6ZSAoYXJjaCwgZ2RiX3Jl Z251bSk7CisgCSAgICBpbnQgb3B0aW0sIHVuYXZhaWw7CistCSAgICBMT05HRVNUIHJlZ19vZmZz ZXQgPSBzb3VyY2Vfb2Zmc2V0OworIAorIAkgICAgaWYgKGdkYmFyY2hfYnl0ZV9vcmRlciAoYXJj aCkgPT0gQkZEX0VORElBTl9CSUcKKy0JCSYmIHRoaXNfc2l6ZSA8IHJlZ2lzdGVyX3NpemUgKGFy Y2gsIGdkYl9yZWdudW0pKQorKwkJJiYgcC0+c2l6ZSA8IHJlZ19iaXRzKQorIAkgICAgICB7Cisg CQkvKiBCaWctZW5kaWFuLCBhbmQgd2Ugd2FudCBsZXNzIHRoYW4gZnVsbCBzaXplLiAgKi8KKy0J CXJlZ19vZmZzZXQgPSByZWdpc3Rlcl9zaXplIChhcmNoLCBnZGJfcmVnbnVtKSAtIHRoaXNfc2l6 ZTsKKy0JCS8qIFdlIHdhbnQgdGhlIGxvd2VyLW9yZGVyIFRISVNfU0laRV9CSVRTIG9mIHRoZSBi eXRlcworLQkJICAgd2UgZXh0cmFjdCBmcm9tIHRoZSByZWdpc3Rlci4gICovCistCQlzb3VyY2Vf b2Zmc2V0X2JpdHMgKz0gOCAqIHRoaXNfc2l6ZSAtIHRoaXNfc2l6ZV9iaXRzOworKwkJc291cmNl X29mZnNldF9iaXRzICs9IHJlZ19iaXRzIC0gcC0+c2l6ZTsKKyAJICAgICAgfQorKwkgICAgdGhp c19zaXplID0gYml0c190b19ieXRlcyAoc291cmNlX29mZnNldF9iaXRzLCB0aGlzX3NpemVfYml0 cyk7CisrCSAgICBidWZmZXIucmVzZXJ2ZSAodGhpc19zaXplKTsKKyAKKy0JICAgIGlmICghZ2V0 X2ZyYW1lX3JlZ2lzdGVyX2J5dGVzIChmcmFtZSwgZ2RiX3JlZ251bSwgcmVnX29mZnNldCwKKysJ ICAgIGlmICghZ2V0X2ZyYW1lX3JlZ2lzdGVyX2J5dGVzIChmcmFtZSwgZ2RiX3JlZ251bSwKKysJ CQkJCSAgIHNvdXJjZV9vZmZzZXRfYml0cyAvIDgsCisgCQkJCQkgICB0aGlzX3NpemUsIGJ1ZmZl ci5kYXRhICgpLAorIAkJCQkJICAgJm9wdGltLCAmdW5hdmFpbCkpCisgCSAgICAgIHsKK0BAIC0x ODQ0LDcgKzE4NTMsNyBAQCByZWFkX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQorIAkg ICAgICB9CisgCisgCSAgICBjb3B5X2JpdHdpc2UgKGNvbnRlbnRzLCBkZXN0X29mZnNldF9iaXRz LAorLQkJCSAgaW50ZXJtZWRpYXRlX2J1ZmZlciwgc291cmNlX29mZnNldF9iaXRzICUgOCwKKysJ CQkgIGJ1ZmZlci5kYXRhICgpLCBzb3VyY2Vfb2Zmc2V0X2JpdHMgJSA4LAorIAkJCSAgdGhpc19z aXplX2JpdHMsIGJpdHNfYmlnX2VuZGlhbik7CisgCSAgfQorIAkgIGJyZWFrOworQEAgLTE5Njks NyArMTk3OCw3IEBAIHdyaXRlX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp0bywgc3RydWN0 IHZhbHVlICpmcm9tKQorICAgICAgIGlmICh0aGlzX3NpemVfYml0cyA+IG1heF9vZmZzZXQgLSBv ZmZzZXQpCisgCXRoaXNfc2l6ZV9iaXRzID0gbWF4X29mZnNldCAtIG9mZnNldDsKKyAKKy0gICAg ICB0aGlzX3NpemUgPSAodGhpc19zaXplX2JpdHMgKyBkZXN0X29mZnNldF9iaXRzICUgOCArIDcp IC8gODsKKysgICAgICB0aGlzX3NpemUgPSBiaXRzX3RvX2J5dGVzIChkZXN0X29mZnNldF9iaXRz LCB0aGlzX3NpemVfYml0cyk7CisgICAgICAgc291cmNlX29mZnNldCA9IHNvdXJjZV9vZmZzZXRf Yml0cyAvIDg7CisgICAgICAgZGVzdF9vZmZzZXQgPSBkZXN0X29mZnNldF9iaXRzIC8gODsKKyAK K0BAIC0xOTk0LDIwICsyMDAzLDI1IEBAIHdyaXRlX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVl ICp0bywgc3RydWN0IHZhbHVlICpmcm9tKQorIAkgICAgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1l ID0gZnJhbWVfZmluZF9ieV9pZCAoYy0+ZnJhbWVfaWQpOworIAkgICAgc3RydWN0IGdkYmFyY2gg KmFyY2ggPSBnZXRfZnJhbWVfYXJjaCAoZnJhbWUpOworIAkgICAgaW50IGdkYl9yZWdudW0gPSBk d2FyZl9yZWdfdG9fcmVnbnVtX29yX2Vycm9yIChhcmNoLCBwLT52LnJlZ25vKTsKKy0JICAgIGlu dCByZWdfb2Zmc2V0ID0gZGVzdF9vZmZzZXQ7CisrCSAgICBVTE9OR0VTVCByZWdfYml0cyA9IDgg KiByZWdpc3Rlcl9zaXplIChhcmNoLCBnZGJfcmVnbnVtKTsKKyAKKyAJICAgIGlmIChnZGJhcmNo X2J5dGVfb3JkZXIgKGFyY2gpID09IEJGRF9FTkRJQU5fQklHCistCQkmJiB0aGlzX3NpemUgPD0g cmVnaXN0ZXJfc2l6ZSAoYXJjaCwgZ2RiX3JlZ251bSkpCisrCQkmJiBwLT5zaXplIDw9IHJlZ19i aXRzKQorIAkgICAgICB7CisgCQkvKiBCaWctZW5kaWFuLCBhbmQgd2Ugd2FudCBsZXNzIHRoYW4g ZnVsbCBzaXplLiAgKi8KKy0JCXJlZ19vZmZzZXQgPSByZWdpc3Rlcl9zaXplIChhcmNoLCBnZGJf cmVnbnVtKSAtIHRoaXNfc2l6ZTsKKysJCWRlc3Rfb2Zmc2V0X2JpdHMgKz0gcmVnX2JpdHMgLSBw LT5zaXplOworIAkgICAgICB9CisrCSAgICB0aGlzX3NpemUgPSBiaXRzX3RvX2J5dGVzIChkZXN0 X29mZnNldF9iaXRzLCB0aGlzX3NpemVfYml0cyk7CisrCSAgICBidWZmZXIucmVzZXJ2ZSAodGhp c19zaXplKTsKKyAKKy0JICAgIGlmIChuZWVkX2JpdHdpc2UpCisrCSAgICBpZiAoZGVzdF9vZmZz ZXRfYml0cyAlIDggIT0gMCB8fCB0aGlzX3NpemVfYml0cyAlIDggIT0gMCkKKyAJICAgICAgewor KwkJLyogRGF0YSBpcyBjb3BpZWQgbm9uLWJ5dGUtYWxpZ25lZCBpbnRvIHRoZSByZWdpc3Rlci4K KysJCSAgIE5lZWQgc29tZSBiaXRzIGZyb20gb3JpZ2luYWwgcmVnaXN0ZXIgdmFsdWUuICAqLwor IAkJaW50IG9wdGltLCB1bmF2YWlsOworIAorLQkJaWYgKCFnZXRfZnJhbWVfcmVnaXN0ZXJfYnl0 ZXMgKGZyYW1lLCBnZGJfcmVnbnVtLCByZWdfb2Zmc2V0LAorKwkJaWYgKCFnZXRfZnJhbWVfcmVn aXN0ZXJfYnl0ZXMgKGZyYW1lLCBnZGJfcmVnbnVtLAorKwkJCQkJICAgICAgIGRlc3Rfb2Zmc2V0 X2JpdHMgLyA4LAorIAkJCQkJICAgICAgIHRoaXNfc2l6ZSwgYnVmZmVyLmRhdGEgKCksCisgCQkJ CQkgICAgICAgJm9wdGltLCAmdW5hdmFpbCkpCisgCQkgIHsKK0BAIC0yMDIyLDE0ICsyMDM2LDE0 IEBAIHdyaXRlX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp0bywgc3RydWN0IHZhbHVlICpm cm9tKQorIAkJCQkgICAgICJiaXRmaWVsZDsgY29udGFpbmluZyB3b3JkICIKKyAJCQkJICAgICAi aXMgdW5hdmFpbGFibGUiKSk7CisgCQkgIH0KKy0JCWNvcHlfYml0d2lzZSAoYnVmZmVyLmRhdGEg KCksIGRlc3Rfb2Zmc2V0X2JpdHMsCistCQkJICAgICAgY29udGVudHMsIHNvdXJjZV9vZmZzZXRf Yml0cywKKy0JCQkgICAgICB0aGlzX3NpemVfYml0cywKKy0JCQkgICAgICBiaXRzX2JpZ19lbmRp YW4pOworIAkgICAgICB9CisgCistCSAgICBwdXRfZnJhbWVfcmVnaXN0ZXJfYnl0ZXMgKGZyYW1l LCBnZGJfcmVnbnVtLCByZWdfb2Zmc2V0LCAKKy0JCQkJICAgICAgdGhpc19zaXplLCBzb3VyY2Vf YnVmZmVyKTsKKysJICAgIGNvcHlfYml0d2lzZSAoYnVmZmVyLmRhdGEgKCksIGRlc3Rfb2Zmc2V0 X2JpdHMgJSA4LAorKwkJCSAgY29udGVudHMsIHNvdXJjZV9vZmZzZXRfYml0cywKKysJCQkgIHRo aXNfc2l6ZV9iaXRzLCBiaXRzX2JpZ19lbmRpYW4pOworKwkgICAgcHV0X2ZyYW1lX3JlZ2lzdGVy X2J5dGVzIChmcmFtZSwgZ2RiX3JlZ251bSwKKysJCQkJICAgICAgZGVzdF9vZmZzZXRfYml0cyAv IDgsCisrCQkJCSAgICAgIHRoaXNfc2l6ZSwgYnVmZmVyLmRhdGEgKCkpOworIAkgIH0KKyAJICBi cmVhazsKKyAJY2FzZSBEV0FSRl9WQUxVRV9NRU1PUlk6CisjIyMgYS9nZGIvdGVzdHN1aXRlL0No YW5nZUxvZworIyMjIGIvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cKKyMjIC0xLDUgKzEsMTAgQEAK KyAyMDE3LTA2LTEzICBBbmRyZWFzIEFybmV6ICA8YXJuZXpAbGludXgudm5ldC5pYm0uY29tPgor IAorKwkqIGdkYi5kd2FyZjIvdmFyLWFjY2Vzcy5leHA6IEFkZCB0ZXN0IGZvciBub24tYnl0ZS1h bGlnbmVkCisrCXJlZ2lzdGVyIHBpZWNlcy4KKysKKysyMDE3LTA2LTEzICBBbmRyZWFzIEFybmV6 ICA8YXJuZXpAbGludXgudm5ldC5pYm0uY29tPgorKworIAkqIGdkYi5kd2FyZjIvdmFyLWFjY2Vz cy5leHA6IEFkZCB0ZXN0cyBmb3IgYWNjZXNzaW5nIGJpdC1maWVsZHMKKyAJbG9jYXRlZCBpbiBv bmUgb3IgbW9yZSBEV0FSRiBwaWVjZXMuCisgCistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5kd2Fy ZjIvdmFyLWFjY2Vzcy5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi92YXItYWNj ZXNzLmV4cAorQEAgLTIxNSw2ICsyMTUsMTkgQEAgRHdhcmY6OmFzc2VtYmxlICRhc21fZmlsZSB7 CisgCQkJcGllY2UgMQorIAkJICAgIH0gU1BFQ0lBTF9leHByfQorIAkJfQorKwkJIyBSZWdpc3Rl ciBwaWVjZXMgZm9yIGJpdGZpZWxkIGFjY2VzczogNCBieXRlcyBvcHRpbWl6ZWQKKysJCSMgb3V0 LCAzIGJ5dGVzIGZyb20gcjAsIGFuZCAxIGJ5dGUgZnJvbSByMS4KKysJCURXX1RBR192YXJpYWJs ZSB7CisrCQkgICAge25hbWUgInQyIn0KKysJCSAgICB7dHlwZSA6JHN0cnVjdF90X2xhYmVsfQor KwkJICAgIHtsb2NhdGlvbiB7CisrCQkJcGllY2UgNAorKwkJCXJlZ3ggW2xpbmRleCAkZHdhcmZf cmVnbnVtIDBdCisrCQkJcGllY2UgMworKwkJCXJlZ3ggW2xpbmRleCAkZHdhcmZfcmVnbnVtIDFd CisrCQkJcGllY2UgMQorKwkJICAgIH0gU1BFQ0lBTF9leHByfQorKwkJfQorIAkgICAgfQorIAl9 CisgICAgIH0KK0BAIC0yNzksMyArMjkyLDE1IEBAIHN3aXRjaCAkZW5kaWFuIHsKKyAjICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB2YWwKKyBnZGJfdGVzdCAicHJpbnQveCBhIiAiID0gXFx7 MHgwLCAke3ZhbH0sIDB4MCwgMHgwXFx9IiBcCisgICAgICJ2ZXJpZnkgc3QxIHRocm91Z2ggYSIK KysKKytzd2l0Y2ggJGVuZGlhbiB7IGJpZyB7c2V0IHZhbCAweDdmZmN9IGxpdHRsZSB7c2V0IHZh bCAweDNmZmUwMH0gfQorK2dkYl90ZXN0X25vX291dHB1dCAic2V0IHZhciBcJFtsaW5kZXggJHJl Z25hbWUgMF0gPSAkdmFsIiBcCisrICAgICJpbml0IHQyLCBmaXJzdCBwaWVjZSIKKytnZGJfdGVz dF9ub19vdXRwdXQgInNldCB2YXIgXCRbbGluZGV4ICRyZWduYW1lIDFdID0gMCIgXAorKyAgICAi aW5pdCB0Miwgc2Vjb25kIHBpZWNlIgorK2dkYl90ZXN0ICJwcmludC9kIHQyIiAiID0gXFx7dSA9 IDxvcHRpbWl6ZWQgb3V0PiwgeCA9IDAsIHkgPSAtMSwgeiA9IDBcXH0iIFwKKysgICAgImluaXRp YWxpemVkIHQyIGZyb20gcmVncyIKKytnZGJfdGVzdF9ub19vdXRwdXQgInNldCB2YXIgdDIueSA9 IDI2NDEiCisrZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgdmFyIHQyLnogPSAtNDAwIgorK2dkYl90 ZXN0X25vX291dHB1dCAic2V0IHZhciB0Mi54ID0gMjAwIgorK2dkYl90ZXN0ICJwcmludCB0Mi54 ICsgdDIueSArIHQyLnoiICIgPSAyNDQxIgoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6MTQyMDMwNC1z MzkweC0yMm9mMzUucGF0Y2ggYi9nZGItcmhiejE0MjAzMDQtczM5MHgtMjJvZjM1LnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJjYTlmMTAKLS0tIC9kZXYvbnVsbAor KysgYi9nZGItcmhiejE0MjAzMDQtczM5MHgtMjJvZjM1LnBhdGNoCkBAIC0wLDAgKzEsMjIwIEBA Citjb21taXQgMjQyZDMxYWI3YzM5MDFlMDJiZDY4YzE4MjRkMWQzNjEwZTAyNTYyYgorQXV0aG9y OiBBbmRyZWFzIEFybmV6IDxhcm5lekBsaW51eC52bmV0LmlibS5jb20+CitEYXRlOiAgIFR1ZSBK dW4gMTMgMTU6MjA6MzAgMjAxNyArMDIwMAorCisgICAgcmVhZC93cml0ZV9waWVjZWRfdmFsdWU6 IEltcHJvdmUgbG9naWMgZm9yIGJ1ZmZlciBhbGxvY2F0aW9uCisgICAgCisgICAgU28gZmFyIHRo ZSBtYWluIGxvb3AgaW4gcmVhZF9waWVjZWRfdmFsdWUgYW5kIHdyaXRlX3BpZWNlZF92YWx1ZSBp cworICAgIHN0cnVjdHVyZWQgbGlrZSB0aGlzOgorICAgIAorICAgICgxKSBQcmVwYXJlIGEgYnVm ZmVyIGFuZCBzb21lIHZhcmlhYmxlcyB3ZSBtYXkgbmVlZDsKKyAgICAKKyAgICAoMikgZGVwZW5k aW5nIG9uIHRoZSBEV0FSRiBwaWVjZSB0eXBlIHRvIGJlIGhhbmRsZWQsIHVzZSB0aGUgYnVmZmVy IGFuZAorICAgICAgICB0aGUgcHJlcGFyZWQgdmFyaWFibGVzLCBpZ25vcmUgdGhlbSwgb3IgZXZl biByZWNhbGN1bGF0ZSB0aGVtLgorICAgIAorICAgIFRoaXMgYXBwcm9hY2ggcmVkdWNlcyByZWFk YWJpbGl0eSBhbmQgbWF5IGFsc28gbGVhZCB0byB1bm5lY2Vzc2FyeSBjb3B5aW5nCisgICAgb2Yg ZGF0YS4gIFRoaXMgcGF0Y2ggbW92ZXMgdGhlIHByZXBhcmF0aW9ucyB0byB0aGUgcGxhY2VzIHdo ZXJlIHN1ZmZpY2llbnQKKyAgICBpbmZvcm1hdGlvbiBpcyBhdmFpbGFibGUgYW5kIHJlbW92ZXMg c29tZSBvZiB0aGUgdmFyaWFibGVzIGludm9sdmVkLgorICAgIAorICAgIGdkYi9DaGFuZ2VMb2c6 CisgICAgCisgICAgICAgICAgICAqIGR3YXJmMmxvYy5jIChyZWFkX3BpZWNlZF92YWx1ZSk6IE1v dmUgdGhlIGJ1ZmZlciBhbGxvY2F0aW9uIGFuZAorICAgICAgICAgICAgc29tZSBvdGhlciBwcmVw YXJhdGlvbnMgdG8gdGhlIHBsYWNlcyB3aGVyZSBzdWZmaWNpZW50IGluZm9ybWF0aW9uCisgICAg ICAgICAgICBpcyBhdmFpbGFibGUuCisgICAgICAgICAgICAod3JpdGVfcGllY2VkX3ZhbHVlKTog TGlrZXdpc2UuCisKKyMjIyBhL2dkYi9DaGFuZ2VMb2cKKyMjIyBiL2dkYi9DaGFuZ2VMb2cKKyMj IC0xLDUgKzEsMTIgQEAKKyAyMDE3LTA2LTEzICBBbmRyZWFzIEFybmV6ICA8YXJuZXpAbGludXgu dm5ldC5pYm0uY29tPgorIAorKwkqIGR3YXJmMmxvYy5jIChyZWFkX3BpZWNlZF92YWx1ZSk6IE1v dmUgdGhlIGJ1ZmZlciBhbGxvY2F0aW9uIGFuZAorKwlzb21lIG90aGVyIHByZXBhcmF0aW9ucyB0 byB0aGUgcGxhY2VzIHdoZXJlIHN1ZmZpY2llbnQgaW5mb3JtYXRpb24KKysJaXMgYXZhaWxhYmxl LgorKwkod3JpdGVfcGllY2VkX3ZhbHVlKTogTGlrZXdpc2UuCisrCisrMjAxNy0wNi0xMyAgQW5k cmVhcyBBcm5leiAgPGFybmV6QGxpbnV4LnZuZXQuaWJtLmNvbT4KKysKKyAJKiBkd2FyZjJsb2Mu YyAoYml0c190b19ieXRlcyk6IE5ldyBmdW5jdGlvbi4KKyAJKHJlYWRfcGllY2VkX3ZhbHVlKTog Rml4IG9mZnNldCBjYWxjdWxhdGlvbnMgZm9yIHJlZ2lzdGVyIHBpZWNlcworIAlvbiBiaWctZW5k aWFuIHRhcmdldHMuCistLS0gYS9nZGIvZHdhcmYybG9jLmMKKysrKyBiL2dkYi9kd2FyZjJsb2Mu YworQEAgLTE3OTQsOCArMTc5NCw3IEBAIHJlYWRfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUg KnYpCisgICAgIHsKKyAgICAgICBzdHJ1Y3QgZHdhcmZfZXhwcl9waWVjZSAqcCA9ICZjLT5waWVj ZXNbaV07CisgICAgICAgc2l6ZV90IHRoaXNfc2l6ZSwgdGhpc19zaXplX2JpdHM7CistICAgICAg bG9uZyBkZXN0X29mZnNldF9iaXRzLCBzb3VyY2Vfb2Zmc2V0X2JpdHMsIHNvdXJjZV9vZmZzZXQ7 CistICAgICAgY29uc3QgZ2RiX2J5dGUgKmludGVybWVkaWF0ZV9idWZmZXI7CisrICAgICAgbG9u ZyBkZXN0X29mZnNldF9iaXRzLCBzb3VyY2Vfb2Zmc2V0X2JpdHM7CisgCisgICAgICAgLyogQ29t cHV0ZSBzaXplLCBzb3VyY2UsIGFuZCBkZXN0aW5hdGlvbiBvZmZzZXRzIGZvciBjb3B5aW5nLCBp bgorIAkgYml0cy4gICovCitAQCAtMTgxMywxMSArMTgxMiw2IEBAIHJlYWRfcGllY2VkX3ZhbHVl IChzdHJ1Y3QgdmFsdWUgKnYpCisgICAgICAgaWYgKHRoaXNfc2l6ZV9iaXRzID4gbWF4X29mZnNl dCAtIG9mZnNldCkKKyAJdGhpc19zaXplX2JpdHMgPSBtYXhfb2Zmc2V0IC0gb2Zmc2V0OworIAor LSAgICAgIHRoaXNfc2l6ZSA9IGJpdHNfdG9fYnl0ZXMgKHNvdXJjZV9vZmZzZXRfYml0cywgdGhp c19zaXplX2JpdHMpOworLSAgICAgIGJ1ZmZlci5yZXNlcnZlICh0aGlzX3NpemUpOworLSAgICAg IHNvdXJjZV9vZmZzZXQgPSBzb3VyY2Vfb2Zmc2V0X2JpdHMgLyA4OworLSAgICAgIGludGVybWVk aWF0ZV9idWZmZXIgPSBidWZmZXIuZGF0YSAoKTsKKy0KKyAgICAgICAvKiBDb3B5IGZyb20gdGhl IHNvdXJjZSB0byBERVNUX0JVRkZFUi4gICovCisgICAgICAgc3dpdGNoIChwLT5sb2NhdGlvbikK KyAJeworQEAgLTE4NDMsMTMgKzE4MzcsMTEgQEAgcmVhZF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2 YWx1ZSAqdikKKyAJCQkJCSAgIHRoaXNfc2l6ZSwgYnVmZmVyLmRhdGEgKCksCisgCQkJCQkgICAm b3B0aW0sICZ1bmF2YWlsKSkKKyAJICAgICAgeworLQkJLyogSnVzdCBzbyBnYXJiYWdlIGRvZXNu J3QgZXZlciBzaGluZSB0aHJvdWdoLiAgKi8KKy0JCW1lbXNldCAoYnVmZmVyLmRhdGEgKCksIDAs IHRoaXNfc2l6ZSk7CistCisgCQlpZiAob3B0aW0pCisgCQkgIG1hcmtfdmFsdWVfYml0c19vcHRp bWl6ZWRfb3V0ICh2LCBvZmZzZXQsIHRoaXNfc2l6ZV9iaXRzKTsKKyAJCWlmICh1bmF2YWlsKQor IAkJICBtYXJrX3ZhbHVlX2JpdHNfdW5hdmFpbGFibGUgKHYsIG9mZnNldCwgdGhpc19zaXplX2Jp dHMpOworKwkJYnJlYWs7CisgCSAgICAgIH0KKyAKKyAJICAgIGNvcHlfYml0d2lzZSAoY29udGVu dHMsIGRlc3Rfb2Zmc2V0X2JpdHMsCitAQCAtMTg1OSwxMiArMTg1MSwxNSBAQCByZWFkX3BpZWNl ZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQorIAkgIGJyZWFrOworIAorIAljYXNlIERXQVJGX1ZB TFVFX01FTU9SWToKKysJICB0aGlzX3NpemUgPSBiaXRzX3RvX2J5dGVzIChzb3VyY2Vfb2Zmc2V0 X2JpdHMsIHRoaXNfc2l6ZV9iaXRzKTsKKysJICBidWZmZXIucmVzZXJ2ZSAodGhpc19zaXplKTsK KysKKyAJICByZWFkX3ZhbHVlX21lbW9yeSAodiwgb2Zmc2V0LAorIAkJCSAgICAgcC0+di5tZW0u aW5fc3RhY2tfbWVtb3J5LAorLQkJCSAgICAgcC0+di5tZW0uYWRkciArIHNvdXJjZV9vZmZzZXQs CisrCQkJICAgICBwLT52Lm1lbS5hZGRyICsgc291cmNlX29mZnNldF9iaXRzIC8gOCwKKyAJCQkg ICAgIGJ1ZmZlci5kYXRhICgpLCB0aGlzX3NpemUpOworIAkgIGNvcHlfYml0d2lzZSAoY29udGVu dHMsIGRlc3Rfb2Zmc2V0X2JpdHMsCistCQkJaW50ZXJtZWRpYXRlX2J1ZmZlciwgc291cmNlX29m ZnNldF9iaXRzICUgOCwKKysJCQlidWZmZXIuZGF0YSAoKSwgc291cmNlX29mZnNldF9iaXRzICUg OCwKKyAJCQl0aGlzX3NpemVfYml0cywgYml0c19iaWdfZW5kaWFuKTsKKyAJICBicmVhazsKKyAK K0BAIC0xODkyLDE4ICsxODg3LDE4IEBAIHJlYWRfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUg KnYpCisgCisgCWNhc2UgRFdBUkZfVkFMVUVfTElURVJBTDoKKyAJICB7CistCSAgICBzaXplX3Qg biA9IHRoaXNfc2l6ZTsKKysJICAgIFVMT05HRVNUIGxpdGVyYWxfc2l6ZV9iaXRzID0gOCAqIHAt PnYubGl0ZXJhbC5sZW5ndGg7CisrCSAgICBzaXplX3QgbiA9IHRoaXNfc2l6ZV9iaXRzOworIAor LQkgICAgaWYgKG4gPiBwLT52LmxpdGVyYWwubGVuZ3RoIC0gc291cmNlX29mZnNldCkKKy0JICAg ICAgbiA9IChwLT52LmxpdGVyYWwubGVuZ3RoID49IHNvdXJjZV9vZmZzZXQKKy0JCSAgID8gcC0+ di5saXRlcmFsLmxlbmd0aCAtIHNvdXJjZV9vZmZzZXQKKy0JCSAgIDogMCk7CistCSAgICBpZiAo biAhPSAwKQorLQkgICAgICBpbnRlcm1lZGlhdGVfYnVmZmVyID0gcC0+di5saXRlcmFsLmRhdGEg KyBzb3VyY2Vfb2Zmc2V0OworKwkgICAgLyogQ3V0IG9mZiBhdCB0aGUgZW5kIG9mIHRoZSBpbXBs aWNpdCB2YWx1ZS4gICovCisrCSAgICBpZiAoc291cmNlX29mZnNldF9iaXRzID49IGxpdGVyYWxf c2l6ZV9iaXRzKQorKwkgICAgICBicmVhazsKKysJICAgIGlmIChuID4gbGl0ZXJhbF9zaXplX2Jp dHMgLSBzb3VyY2Vfb2Zmc2V0X2JpdHMpCisrCSAgICAgIG4gPSBsaXRlcmFsX3NpemVfYml0cyAt IHNvdXJjZV9vZmZzZXRfYml0czsKKyAKKyAJICAgIGNvcHlfYml0d2lzZSAoY29udGVudHMsIGRl c3Rfb2Zmc2V0X2JpdHMsCistCQkJICBpbnRlcm1lZGlhdGVfYnVmZmVyLCBzb3VyY2Vfb2Zmc2V0 X2JpdHMgJSA4LAorLQkJCSAgdGhpc19zaXplX2JpdHMsIGJpdHNfYmlnX2VuZGlhbik7CisrCQkJ ICBwLT52LmxpdGVyYWwuZGF0YSwgc291cmNlX29mZnNldF9iaXRzLAorKwkJCSAgbiwgYml0c19i aWdfZW5kaWFuKTsKKyAJICB9CisgCSAgYnJlYWs7CisgCitAQCAtMTk2MCw5ICsxOTU1LDcgQEAg d3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBzdHJ1Y3QgdmFsdWUgKmZyb20p CisgICAgIHsKKyAgICAgICBzdHJ1Y3QgZHdhcmZfZXhwcl9waWVjZSAqcCA9ICZjLT5waWVjZXNb aV07CisgICAgICAgc2l6ZV90IHRoaXNfc2l6ZV9iaXRzLCB0aGlzX3NpemU7CistICAgICAgbG9u ZyBkZXN0X29mZnNldF9iaXRzLCBzb3VyY2Vfb2Zmc2V0X2JpdHMsIGRlc3Rfb2Zmc2V0LCBzb3Vy Y2Vfb2Zmc2V0OworLSAgICAgIGludCBuZWVkX2JpdHdpc2U7CistICAgICAgY29uc3QgZ2RiX2J5 dGUgKnNvdXJjZV9idWZmZXI7CisrICAgICAgbG9uZyBkZXN0X29mZnNldF9iaXRzLCBzb3VyY2Vf b2Zmc2V0X2JpdHM7CisgCisgICAgICAgdGhpc19zaXplX2JpdHMgPSBwLT5zaXplOworICAgICAg IGlmIChiaXRzX3RvX3NraXAgPiAwICYmIGJpdHNfdG9fc2tpcCA+PSB0aGlzX3NpemVfYml0cykK K0BAIC0xOTc4LDI0ICsxOTcxLDYgQEAgd3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUg KnRvLCBzdHJ1Y3QgdmFsdWUgKmZyb20pCisgICAgICAgaWYgKHRoaXNfc2l6ZV9iaXRzID4gbWF4 X29mZnNldCAtIG9mZnNldCkKKyAJdGhpc19zaXplX2JpdHMgPSBtYXhfb2Zmc2V0IC0gb2Zmc2V0 OworIAorLSAgICAgIHRoaXNfc2l6ZSA9IGJpdHNfdG9fYnl0ZXMgKGRlc3Rfb2Zmc2V0X2JpdHMs IHRoaXNfc2l6ZV9iaXRzKTsKKy0gICAgICBzb3VyY2Vfb2Zmc2V0ID0gc291cmNlX29mZnNldF9i aXRzIC8gODsKKy0gICAgICBkZXN0X29mZnNldCA9IGRlc3Rfb2Zmc2V0X2JpdHMgLyA4OworLQor LSAgICAgIC8qIENoZWNrIHdoZXRoZXIgdGhlIGRhdGEgY2FuIGJlIHRyYW5zZmVycmVkIGJ5dGUt d2lzZS4gICovCistICAgICAgaWYgKGRlc3Rfb2Zmc2V0X2JpdHMgJSA4ID09IDAgJiYgc291cmNl X29mZnNldF9iaXRzICUgOCA9PSAwCistCSAgJiYgdGhpc19zaXplX2JpdHMgJSA4ID09IDApCist CXsKKy0JICBzb3VyY2VfYnVmZmVyID0gY29udGVudHMgKyBzb3VyY2Vfb2Zmc2V0OworLQkgIG5l ZWRfYml0d2lzZSA9IDA7CistCX0KKy0gICAgICBlbHNlCistCXsKKy0JICBidWZmZXIucmVzZXJ2 ZSAodGhpc19zaXplKTsKKy0JICBzb3VyY2VfYnVmZmVyID0gYnVmZmVyLmRhdGEgKCk7CistCSAg bmVlZF9iaXR3aXNlID0gMTsKKy0JfQorLQorICAgICAgIHN3aXRjaCAocC0+bG9jYXRpb24pCisg CXsKKyAJY2FzZSBEV0FSRl9WQUxVRV9SRUdJU1RFUjoKK0BAIC0yMDQ3LDIxICsyMDIyLDQ0IEBA IHdyaXRlX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp0bywgc3RydWN0IHZhbHVlICpmcm9t KQorIAkgIH0KKyAJICBicmVhazsKKyAJY2FzZSBEV0FSRl9WQUxVRV9NRU1PUlk6CistCSAgaWYg KG5lZWRfYml0d2lzZSkKKy0JICAgIHsKKy0JICAgICAgLyogT25seSB0aGUgZmlyc3QgYW5kIGxh c3QgYnl0ZXMgY2FuIHBvc3NpYmx5IGhhdmUgYW55CistCQkgYml0cyByZXVzZWQuICAqLworLQkg ICAgICByZWFkX21lbW9yeSAocC0+di5tZW0uYWRkciArIGRlc3Rfb2Zmc2V0LCBidWZmZXIuZGF0 YSAoKSwgMSk7CistCSAgICAgIHJlYWRfbWVtb3J5IChwLT52Lm1lbS5hZGRyICsgZGVzdF9vZmZz ZXQgKyB0aGlzX3NpemUgLSAxLAorLQkJCSAgICZidWZmZXJbdGhpc19zaXplIC0gMV0sIDEpOwor LQkgICAgICBjb3B5X2JpdHdpc2UgKGJ1ZmZlci5kYXRhICgpLCBkZXN0X29mZnNldF9iaXRzICUg OCwKKy0JCQkgICAgY29udGVudHMsIHNvdXJjZV9vZmZzZXRfYml0cywKKy0JCQkgICAgdGhpc19z aXplX2JpdHMsCistCQkJICAgIGJpdHNfYmlnX2VuZGlhbik7CistCSAgICB9CisrCSAgeworKwkg ICAgQ09SRV9BRERSIHN0YXJ0X2FkZHIgPSBwLT52Lm1lbS5hZGRyICsgZGVzdF9vZmZzZXRfYml0 cyAvIDg7CisrCisrCSAgICBpZiAoZGVzdF9vZmZzZXRfYml0cyAlIDggPT0gMCAmJiB0aGlzX3Np emVfYml0cyAlIDggPT0gMAorKwkJJiYgc291cmNlX29mZnNldF9iaXRzICUgOCA9PSAwKQorKwkg ICAgICB7CisrCQkvKiBFdmVyeXRoaW5nIGlzIGJ5dGUtYWxpZ25lZDsgbm8gYnVmZmVyIG5lZWRl ZC4gICovCisrCQl3cml0ZV9tZW1vcnkgKHN0YXJ0X2FkZHIsCisrCQkJICAgICAgY29udGVudHMg KyBzb3VyY2Vfb2Zmc2V0X2JpdHMgLyA4LAorKwkJCSAgICAgIHRoaXNfc2l6ZV9iaXRzIC8gOCk7 CisrCQlicmVhazsKKysJICAgICAgfQorKworKwkgICAgdGhpc19zaXplID0gYml0c190b19ieXRl cyAoZGVzdF9vZmZzZXRfYml0cywgdGhpc19zaXplX2JpdHMpOworKwkgICAgYnVmZmVyLnJlc2Vy dmUgKHRoaXNfc2l6ZSk7CisgCistCSAgd3JpdGVfbWVtb3J5IChwLT52Lm1lbS5hZGRyICsgZGVz dF9vZmZzZXQsCistCQkJc291cmNlX2J1ZmZlciwgdGhpc19zaXplKTsKKysJICAgIGlmIChkZXN0 X29mZnNldF9iaXRzICUgOCAhPSAwIHx8IHRoaXNfc2l6ZV9iaXRzICUgOCAhPSAwKQorKwkgICAg ICB7CisrCQlpZiAodGhpc19zaXplIDw9IDgpCisrCQkgIHsKKysJCSAgICAvKiBQZXJmb3JtIGEg c2luZ2xlIHJlYWQgZm9yIHNtYWxsIHNpemVzLiAgKi8KKysJCSAgICByZWFkX21lbW9yeSAoc3Rh cnRfYWRkciwgYnVmZmVyLmRhdGEgKCksIHRoaXNfc2l6ZSk7CisrCQkgIH0KKysJCWVsc2UKKysJ CSAgeworKwkJICAgIC8qIE9ubHkgdGhlIGZpcnN0IGFuZCBsYXN0IGJ5dGVzIGNhbiBwb3NzaWJs eSBoYXZlIGFueQorKwkJICAgICAgIGJpdHMgcmV1c2VkLiAgKi8KKysJCSAgICByZWFkX21lbW9y eSAoc3RhcnRfYWRkciwgYnVmZmVyLmRhdGEgKCksIDEpOworKwkJICAgIHJlYWRfbWVtb3J5IChz dGFydF9hZGRyICsgdGhpc19zaXplIC0gMSwKKysJCQkJICZidWZmZXJbdGhpc19zaXplIC0gMV0s IDEpOworKwkJICB9CisrCSAgICAgIH0KKysKKysJICAgIGNvcHlfYml0d2lzZSAoYnVmZmVyLmRh dGEgKCksIGRlc3Rfb2Zmc2V0X2JpdHMgJSA4LAorKwkJCSAgY29udGVudHMsIHNvdXJjZV9vZmZz ZXRfYml0cywKKysJCQkgIHRoaXNfc2l6ZV9iaXRzLCBiaXRzX2JpZ19lbmRpYW4pOworKwkgICAg d3JpdGVfbWVtb3J5IChzdGFydF9hZGRyLCBidWZmZXIuZGF0YSAoKSwgdGhpc19zaXplKTsKKysJ ICB9CisgCSAgYnJlYWs7CisgCWRlZmF1bHQ6CisgCSAgbWFya192YWx1ZV9ieXRlc19vcHRpbWl6 ZWRfb3V0ICh0bywgMCwgVFlQRV9MRU5HVEggKHZhbHVlX3R5cGUgKHRvKSkpOwoKZGlmZiAtLWdp dCBhL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0yM29mMzUucGF0Y2ggYi9nZGItcmhiejE0MjAzMDQt czM5MHgtMjNvZjM1LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQy NTM3MjkKLS0tIC9kZXYvbnVsbAorKysgYi9nZGItcmhiejE0MjAzMDQtczM5MHgtMjNvZjM1LnBh dGNoCkBAIC0wLDAgKzEsMTY3IEBACitjb21taXQgNjVkODRiNzYxNjRkYzhlYzFhMWYwZjBlMGZk NDE2NjcwNjVmZmQ0ZQorQXV0aG9yOiBBbmRyZWFzIEFybmV6IDxhcm5lekBsaW51eC52bmV0Lmli bS5jb20+CitEYXRlOiAgIFR1ZSBKdW4gMTMgMTU6MjA6MzEgMjAxNyArMDIwMAorCisgICAgUmVz cGVjdCBwaWVjZSBvZmZzZXQgZm9yIERXX09QX2JpdF9waWVjZQorICAgIAorICAgIFNvIGZhciBH REIgaWdub3JlcyB0aGUgcGllY2Ugb2Zmc2V0IG9mIGFsbCBraW5kcyBvZiBEV0FSRiBiaXQKKyAg ICBwaWVjZXMgKERXX09QX2JpdF9waWVjZSkgYW5kIHRyZWF0cyBzdWNoIHBpZWNlcyBhcyBpZiB0 aGUgb2Zmc2V0IHdhcyB6ZXJvLgorICAgIAorICAgIFRoaXMgaXMgZml4ZWQsIGFuZCBhbiBhcHBy b3ByaWF0ZSB0ZXN0IGlzIGFkZGVkLgorICAgIAorICAgIGdkYi9DaGFuZ2VMb2c6CisgICAgCisg ICAgICAgICAgICAqIGR3YXJmMmxvYy5jIChyZWFkX3BpZWNlZF92YWx1ZSk6IFJlc3BlY3QgdGhl IHBpZWNlIG9mZnNldCwgYXMKKyAgICAgICAgICAgIGdpdmVuIGJ5IERXX09QX2JpdF9waWVjZS4K KyAgICAgICAgICAgICh3cml0ZV9waWVjZWRfdmFsdWUpOiBMaWtld2lzZS4KKyAgICAKKyAgICAg IEFuZHJlYXMgQXJuZXogIDxhcm5lekBsaW51eC52bmV0LmlibS5jb20+CisgICAgCisgICAgICAg ICAgICAqIGdkYi5kd2FyZjIvdmFyLWFjY2Vzcy5leHA6IEFkZCB0ZXN0IGZvciBjb21wb3NpdGUg bG9jYXRpb24gd2l0aAorICAgICAgICAgICAgbm9uemVybyBwaWVjZSBvZmZzZXRzLgorCisjIyMg YS9nZGIvQ2hhbmdlTG9nCisjIyMgYi9nZGIvQ2hhbmdlTG9nCisjIyAtMSw1ICsxLDExIEBACisg MjAxNy0wNi0xMyAgQW5kcmVhcyBBcm5leiAgPGFybmV6QGxpbnV4LnZuZXQuaWJtLmNvbT4KKyAK KysJKiBkd2FyZjJsb2MuYyAocmVhZF9waWVjZWRfdmFsdWUpOiBSZXNwZWN0IHRoZSBwaWVjZSBv ZmZzZXQsIGFzCisrCWdpdmVuIGJ5IERXX09QX2JpdF9waWVjZS4KKysJKHdyaXRlX3BpZWNlZF92 YWx1ZSk6IExpa2V3aXNlLgorKworKzIwMTctMDYtMTMgIEFuZHJlYXMgQXJuZXogIDxhcm5lekBs aW51eC52bmV0LmlibS5jb20+CisrCisgCSogZHdhcmYybG9jLmMgKHJlYWRfcGllY2VkX3ZhbHVl KTogTW92ZSB0aGUgYnVmZmVyIGFsbG9jYXRpb24gYW5kCisgCXNvbWUgb3RoZXIgcHJlcGFyYXRp b25zIHRvIHRoZSBwbGFjZXMgd2hlcmUgc3VmZmljaWVudCBpbmZvcm1hdGlvbgorIAlpcyBhdmFp bGFibGUuCistLS0gYS9nZGIvZHdhcmYybG9jLmMKKysrKyBiL2dkYi9kd2FyZjJsb2MuYworQEAg LTE4MjQsMTEgKzE4MjQsMTQgQEAgcmVhZF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdikK KyAJICAgIGludCBvcHRpbSwgdW5hdmFpbDsKKyAKKyAJICAgIGlmIChnZGJhcmNoX2J5dGVfb3Jk ZXIgKGFyY2gpID09IEJGRF9FTkRJQU5fQklHCistCQkmJiBwLT5zaXplIDwgcmVnX2JpdHMpCisr CQkmJiBwLT5vZmZzZXQgKyBwLT5zaXplIDwgcmVnX2JpdHMpCisgCSAgICAgIHsKKyAJCS8qIEJp Zy1lbmRpYW4sIGFuZCB3ZSB3YW50IGxlc3MgdGhhbiBmdWxsIHNpemUuICAqLworLQkJc291cmNl X29mZnNldF9iaXRzICs9IHJlZ19iaXRzIC0gcC0+c2l6ZTsKKysJCXNvdXJjZV9vZmZzZXRfYml0 cyArPSByZWdfYml0cyAtIChwLT5vZmZzZXQgKyBwLT5zaXplKTsKKyAJICAgICAgfQorKwkgICAg ZWxzZQorKwkgICAgICBzb3VyY2Vfb2Zmc2V0X2JpdHMgKz0gcC0+b2Zmc2V0OworKworIAkgICAg dGhpc19zaXplID0gYml0c190b19ieXRlcyAoc291cmNlX29mZnNldF9iaXRzLCB0aGlzX3NpemVf Yml0cyk7CisgCSAgICBidWZmZXIucmVzZXJ2ZSAodGhpc19zaXplKTsKKyAKK0BAIC0xODUxLDYg KzE4NTQsNyBAQCByZWFkX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQorIAkgIGJyZWFr OworIAorIAljYXNlIERXQVJGX1ZBTFVFX01FTU9SWToKKysJICBzb3VyY2Vfb2Zmc2V0X2JpdHMg Kz0gcC0+b2Zmc2V0OworIAkgIHRoaXNfc2l6ZSA9IGJpdHNfdG9fYnl0ZXMgKHNvdXJjZV9vZmZz ZXRfYml0cywgdGhpc19zaXplX2JpdHMpOworIAkgIGJ1ZmZlci5yZXNlcnZlICh0aGlzX3NpemUp OworIAorQEAgLTE4NzEsMTIgKzE4NzUsMTUgQEAgcmVhZF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2 YWx1ZSAqdikKKyAJICAgICAgPSA4ICogVFlQRV9MRU5HVEggKHZhbHVlX3R5cGUgKHAtPnYudmFs dWUpKTsKKyAKKyAJICAgIC8qIFVzZSB6ZXJvZXMgaWYgcGllY2UgcmVhY2hlcyBiZXlvbmQgc3Rh Y2sgdmFsdWUuICAqLworLQkgICAgaWYgKHAtPnNpemUgPiBzdGFja192YWx1ZV9zaXplX2JpdHMp CisrCSAgICBpZiAocC0+b2Zmc2V0ICsgcC0+c2l6ZSA+IHN0YWNrX3ZhbHVlX3NpemVfYml0cykK KyAJICAgICAgYnJlYWs7CisgCisgCSAgICAvKiBQaWVjZSBpcyBhbmNob3JlZCBhdCBsZWFzdCBz aWduaWZpY2FudCBiaXQgZW5kLiAgKi8KKyAJICAgIGlmIChnZGJhcmNoX2J5dGVfb3JkZXIgKG9i amZpbGVfZ2RiYXJjaCkgPT0gQkZEX0VORElBTl9CSUcpCistCSAgICAgIHNvdXJjZV9vZmZzZXRf Yml0cyArPSBzdGFja192YWx1ZV9zaXplX2JpdHMgLSBwLT5zaXplOworKwkgICAgICBzb3VyY2Vf b2Zmc2V0X2JpdHMgKz0gKHN0YWNrX3ZhbHVlX3NpemVfYml0cworKwkJCQkgICAgIC0gcC0+b2Zm c2V0IC0gcC0+c2l6ZSk7CisrCSAgICBlbHNlCisrCSAgICAgIHNvdXJjZV9vZmZzZXRfYml0cyAr PSBwLT5vZmZzZXQ7CisgCisgCSAgICBjb3B5X2JpdHdpc2UgKGNvbnRlbnRzLCBkZXN0X29mZnNl dF9iaXRzLAorIAkJCSAgdmFsdWVfY29udGVudHNfYWxsIChwLT52LnZhbHVlKSwKK0BAIC0xODkx LDYgKzE4OTgsNyBAQCByZWFkX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQorIAkgICAg c2l6ZV90IG4gPSB0aGlzX3NpemVfYml0czsKKyAKKyAJICAgIC8qIEN1dCBvZmYgYXQgdGhlIGVu ZCBvZiB0aGUgaW1wbGljaXQgdmFsdWUuICAqLworKwkgICAgc291cmNlX29mZnNldF9iaXRzICs9 IHAtPm9mZnNldDsKKyAJICAgIGlmIChzb3VyY2Vfb2Zmc2V0X2JpdHMgPj0gbGl0ZXJhbF9zaXpl X2JpdHMpCisgCSAgICAgIGJyZWFrOworIAkgICAgaWYgKG4gPiBsaXRlcmFsX3NpemVfYml0cyAt IHNvdXJjZV9vZmZzZXRfYml0cykKK0BAIC0xOTgxLDExICsxOTg5LDE0IEBAIHdyaXRlX3BpZWNl ZF92YWx1ZSAoc3RydWN0IHZhbHVlICp0bywgc3RydWN0IHZhbHVlICpmcm9tKQorIAkgICAgVUxP TkdFU1QgcmVnX2JpdHMgPSA4ICogcmVnaXN0ZXJfc2l6ZSAoYXJjaCwgZ2RiX3JlZ251bSk7Cisg CisgCSAgICBpZiAoZ2RiYXJjaF9ieXRlX29yZGVyIChhcmNoKSA9PSBCRkRfRU5ESUFOX0JJRwor LQkJJiYgcC0+c2l6ZSA8PSByZWdfYml0cykKKysJCSYmIHAtPm9mZnNldCArIHAtPnNpemUgPCBy ZWdfYml0cykKKyAJICAgICAgeworIAkJLyogQmlnLWVuZGlhbiwgYW5kIHdlIHdhbnQgbGVzcyB0 aGFuIGZ1bGwgc2l6ZS4gICovCistCQlkZXN0X29mZnNldF9iaXRzICs9IHJlZ19iaXRzIC0gcC0+ c2l6ZTsKKysJCWRlc3Rfb2Zmc2V0X2JpdHMgKz0gcmVnX2JpdHMgLSAocC0+b2Zmc2V0ICsgcC0+ c2l6ZSk7CisgCSAgICAgIH0KKysJICAgIGVsc2UKKysJICAgICAgZGVzdF9vZmZzZXRfYml0cyAr PSBwLT5vZmZzZXQ7CisrCisgCSAgICB0aGlzX3NpemUgPSBiaXRzX3RvX2J5dGVzIChkZXN0X29m ZnNldF9iaXRzLCB0aGlzX3NpemVfYml0cyk7CisgCSAgICBidWZmZXIucmVzZXJ2ZSAodGhpc19z aXplKTsKKyAKK0BAIC0yMDIzLDYgKzIwMzQsOCBAQCB3cml0ZV9waWVjZWRfdmFsdWUgKHN0cnVj dCB2YWx1ZSAqdG8sIHN0cnVjdCB2YWx1ZSAqZnJvbSkKKyAJICBicmVhazsKKyAJY2FzZSBEV0FS Rl9WQUxVRV9NRU1PUlk6CisgCSAgeworKwkgICAgZGVzdF9vZmZzZXRfYml0cyArPSBwLT5vZmZz ZXQ7CisrCisgCSAgICBDT1JFX0FERFIgc3RhcnRfYWRkciA9IHAtPnYubWVtLmFkZHIgKyBkZXN0 X29mZnNldF9iaXRzIC8gODsKKyAKKyAJICAgIGlmIChkZXN0X29mZnNldF9iaXRzICUgOCA9PSAw ICYmIHRoaXNfc2l6ZV9iaXRzICUgOCA9PSAwCistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5kd2Fy ZjIvdmFyLWFjY2Vzcy5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi92YXItYWNj ZXNzLmV4cAorQEAgLTIyOCw2ICsyMjgsMjQgQEAgRHdhcmY6OmFzc2VtYmxlICRhc21fZmlsZSB7 CisgCQkJcGllY2UgMQorIAkJICAgIH0gU1BFQ0lBTF9leHByfQorIAkJfQorKwkJIyBPbmUgcGll Y2UgcGVyIGJpdGZpZWxkLCB1c2luZyBwaWVjZSBvZmZzZXRzOiAzMiBiaXRzIG9mCisrCQkjIGFu IGltcGxpY2l0IHZhbHVlLCA5IGJpdHMgb2YgYSBzdGFjayB2YWx1ZSwgMTMgYml0cyBvZgorKwkJ IyByMCwgYW5kIDEwIGJpdHMgb2YgYnVmLgorKwkJRFdfVEFHX3ZhcmlhYmxlIHsKKysJCSAgICB7 bmFtZSAidDMifQorKwkJICAgIHt0eXBlIDokc3RydWN0X3RfbGFiZWx9CisrCQkgICAge2xvY2F0 aW9uIHsKKysJCQlpbXBsaWNpdF92YWx1ZSAweDEyIDB4MzQgMHg1NiAweDc4IDB4OWEKKysJCQli aXRfcGllY2UgMzIgNAorKwkJCWNvbnN0MnMgLTI4MAorKwkJCXN0YWNrX3ZhbHVlCisrCQkJYml0 X3BpZWNlIDkgMgorKwkJCXJlZ3ggW2xpbmRleCAkZHdhcmZfcmVnbnVtIDBdCisrCQkJYml0X3Bp ZWNlIDEzIDE0CisrCQkJYWRkciAkYnVmX3ZhcgorKwkJCWJpdF9waWVjZSAxMCA0MgorKwkJICAg IH0gU1BFQ0lBTF9leHByfQorKwkJfQorIAkgICAgfQorIAl9CisgICAgIH0KK0BAIC0zMDQsMyAr MzIyLDI0IEBAIGdkYl90ZXN0X25vX291dHB1dCAic2V0IHZhciB0Mi55ID0gMjY0MSIKKyBnZGJf dGVzdF9ub19vdXRwdXQgInNldCB2YXIgdDIueiA9IC00MDAiCisgZ2RiX3Rlc3Rfbm9fb3V0cHV0 ICJzZXQgdmFyIHQyLnggPSAyMDAiCisgZ2RiX3Rlc3QgInByaW50IHQyLnggKyB0Mi55ICsgdDIu eiIgIiA9IDI0NDEiCisrCisrIyBCaXRmaWVsZCBhY2Nlc3MgdGhyb3VnaCBwaWVjZXMgd2l0aCBu b256ZXJvIHBpZWNlIG9mZnNldHMuCisrZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgdmFyIFwkW2xp bmRleCAkcmVnbmFtZSAwXSA9IDB4YTgwMDAiIFwKKysgICAgImluaXQgcmVnIGZvciB0My55Igor K2dkYl90ZXN0X25vX291dHB1dCAic2V0IHZhciAqKGNoYXIgXFsyXF0gKikgKGEgKyA1KSA9IHsg NzAsIDgyIH0iIFwKKysgICAgImluaXQgbWVtIGZvciB0My56IgorK3N3aXRjaCAkZW5kaWFuIHsK KysgICAgbGl0dGxlIHtzZXQgdmFsICJ1ID0gLTE0ODQ0MzA1MjcsIHggPSAtNzAsIHkgPSA0Miwg eiA9IDE0NSJ9CisrICAgIGJpZyB7c2V0IHZhbCAidSA9IDU5MTc1MTA0OSwgeCA9IC03MCwgeSA9 IDQyLCB6ID0gMTAxIn0KKyt9CisrZ2RiX3Rlc3QgInByaW50IHQzIiAiID0gXFx7JHZhbFxcfSIg XAorKyAgICAiaW5pdGlhbGl6ZWQgdDMgZnJvbSByZWcgYW5kIG1lbSIKKytnZGJfdGVzdF9ub19v dXRwdXQgInNldCB2YXIgdDMueSA9IC0xIiBcCisrICAgICJvdmVyd3JpdGUgdDMueSIKKytnZGJf dGVzdCAicHJpbnQveCBcJFtsaW5kZXggJHJlZ25hbWUgMF0iICIgPSAweDdmZmMwMDAiIFwKKysg ICAgInZlcmlmeSB0My55IHRocm91Z2ggcmVnIgorK2dkYl90ZXN0X25vX291dHB1dCAic2V0IHZh ciB0My56ID0gLTYxNCIgXAorKyAgICAib3ZlcndyaXRlIHQzLnoiCisrc3dpdGNoICRlbmRpYW4g e2JpZyB7c2V0IHZhbCAiMHg1OSwgMHhhMiJ9IGxpdHRsZSB7c2V0IHZhbCAiMHg2YSwgMHg1NiJ9 fQorK2dkYl90ZXN0ICJwcmludC94ICooY2hhciBcWzJcXSAqKSAoYSArIDUpIiAiID0gXFx7JHZh bFxcfSIgXAorKyAgICAidmVyaWZ5IHQzLnogdGhyb3VnaCBtZW0iCgpkaWZmIC0tZ2l0IGEvZ2Ri LXJoYnoxNDIwMzA0LXMzOTB4LTI0b2YzNS5wYXRjaCBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0y NG9mMzUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGJmMzRmOQot LS0gL2Rldi9udWxsCisrKyBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0yNG9mMzUucGF0Y2gKQEAg LTAsMCArMSwyOTAgQEAKK2NvbW1pdCBmMjM2NTMzZTNjNmEyNjkzYmVhODc5YjJhNGQyNGQxMjI5 ODY0YWM5CitBdXRob3I6IEFuZHJlYXMgQXJuZXogPGFybmV6QGxpbnV4LnZuZXQuaWJtLmNvbT4K K0RhdGU6ICAgVHVlIEp1biAxMyAxNToyMDozMSAyMDE3ICswMjAwCisKKyAgICByZWFkL3dyaXRl X3BpZWNlZF92YWx1ZTogUmVtb3ZlIHVubmVjZXNzYXJ5IHZhcmlhYmxlIGNvcGllcworICAgIAor ICAgIEluIHJlYWRfcGllY2VkX3ZhbHVlJ3MgbWFpbiBsb29wLCB0aGUgdmFyaWFibGVzIGBkZXN0 X29mZnNldF9iaXRzJyBhbmQKKyAgICBgc291cmNlX29mZnNldF9iaXRzJyBhcmUgYmFzaWNhbGx5 IGp1c3QgY29waWVzIG9mIGBvZmZzZXQnIGFuZAorICAgIGBiaXRzX3RvX3NraXAnLCByZXNwZWN0 aXZlbHkuICBJbiB3cml0ZV9waWVjZWRfdmFsdWUgdGhlIGNvcGllcyBhcmUKKyAgICByZXZlcnNl ZC4gIFRoaXMgaXMgbm90IHZlcnkgaGVscGZ1bCB3aGVuIHRyeWluZyB0byBrZWVwIHRoZSBsb2dp YyBiZXR3ZWVuCisgICAgdGhlc2UgZnVuY3Rpb25zIGluIHN5bmMuICBTaW5jZSB0aGUgY29waWVz IGFyZSB1bm5lY2Vzc2FyeSwgdGhpcyBwYXRjaAorICAgIGp1c3QgcmVtb3ZlcyB0aGVtLgorICAg IAorICAgIGdkYi9DaGFuZ2VMb2c6CisgICAgCisgICAgICAgICAgICAqIGR3YXJmMmxvYy5jIChy ZWFkX3BpZWNlZF92YWx1ZSk6IFJlbW92ZSB1bm5lY2Vzc2FyeSB2YXJpYWJsZXMKKyAgICAgICAg ICAgIGRlc3Rfb2Zmc2V0X2JpdHMgYW5kIHNvdXJjZV9vZmZzZXRfYml0cy4KKyAgICAgICAgICAg ICh3cml0ZV9waWVjZWRfdmFsdWUpOiBMaWtld2lzZS4KKworIyMjIGEvZ2RiL0NoYW5nZUxvZwor IyMjIGIvZ2RiL0NoYW5nZUxvZworIyMgLTEsNSArMSwxMSBAQAorIDIwMTctMDYtMTMgIEFuZHJl YXMgQXJuZXogIDxhcm5lekBsaW51eC52bmV0LmlibS5jb20+CisgCisrCSogZHdhcmYybG9jLmMg KHJlYWRfcGllY2VkX3ZhbHVlKTogUmVtb3ZlIHVubmVjZXNzYXJ5IHZhcmlhYmxlcworKwlkZXN0 X29mZnNldF9iaXRzIGFuZCBzb3VyY2Vfb2Zmc2V0X2JpdHMuCisrCSh3cml0ZV9waWVjZWRfdmFs dWUpOiBMaWtld2lzZS4KKysKKysyMDE3LTA2LTEzICBBbmRyZWFzIEFybmV6ICA8YXJuZXpAbGlu dXgudm5ldC5pYm0uY29tPgorKworIAkqIGR3YXJmMmxvYy5jIChyZWFkX3BpZWNlZF92YWx1ZSk6 IFJlc3BlY3QgdGhlIHBpZWNlIG9mZnNldCwgYXMKKyAJZ2l2ZW4gYnkgRFdfT1BfYml0X3BpZWNl LgorIAkod3JpdGVfcGllY2VkX3ZhbHVlKTogTGlrZXdpc2UuCistLS0gYS9nZGIvZHdhcmYybG9j LmMKKysrKyBiL2dkYi9kd2FyZjJsb2MuYworQEAgLTE3OTAsMjUgKzE3OTAsMTYgQEAgcmVhZF9w aWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdikKKyAgIGVsc2UKKyAgICAgbWF4X29mZnNldCA9 IDggKiBUWVBFX0xFTkdUSCAodmFsdWVfdHlwZSAodikpOworIAorLSAgZm9yIChpID0gMDsgaSA8 IGMtPm5fcGllY2VzICYmIG9mZnNldCA8IG1heF9vZmZzZXQ7IGkrKykKKysgIC8qIEFkdmFuY2Ug dG8gdGhlIGZpcnN0IG5vbi1za2lwcGVkIHBpZWNlLiAgKi8KKysgIGZvciAoaSA9IDA7IGkgPCBj LT5uX3BpZWNlcyAmJiBiaXRzX3RvX3NraXAgPj0gYy0+cGllY2VzW2ldLnNpemU7IGkrKykKKysg ICAgYml0c190b19za2lwIC09IGMtPnBpZWNlc1tpXS5zaXplOworKworKyAgZm9yICg7IGkgPCBj LT5uX3BpZWNlcyAmJiBvZmZzZXQgPCBtYXhfb2Zmc2V0OyBpKyspCisgICAgIHsKKyAgICAgICBz dHJ1Y3QgZHdhcmZfZXhwcl9waWVjZSAqcCA9ICZjLT5waWVjZXNbaV07CisgICAgICAgc2l6ZV90 IHRoaXNfc2l6ZSwgdGhpc19zaXplX2JpdHM7CistICAgICAgbG9uZyBkZXN0X29mZnNldF9iaXRz LCBzb3VyY2Vfb2Zmc2V0X2JpdHM7CistCistICAgICAgLyogQ29tcHV0ZSBzaXplLCBzb3VyY2Us IGFuZCBkZXN0aW5hdGlvbiBvZmZzZXRzIGZvciBjb3B5aW5nLCBpbgorLQkgYml0cy4gICovCist ICAgICAgdGhpc19zaXplX2JpdHMgPSBwLT5zaXplOworLSAgICAgIGlmIChiaXRzX3RvX3NraXAg PiAwICYmIGJpdHNfdG9fc2tpcCA+PSB0aGlzX3NpemVfYml0cykKKy0JeworLQkgIGJpdHNfdG9f c2tpcCAtPSB0aGlzX3NpemVfYml0czsKKy0JICBjb250aW51ZTsKKy0JfQorLSAgICAgIHNvdXJj ZV9vZmZzZXRfYml0cyA9IGJpdHNfdG9fc2tpcDsKKy0gICAgICB0aGlzX3NpemVfYml0cyAtPSBi aXRzX3RvX3NraXA7CistICAgICAgYml0c190b19za2lwID0gMDsKKy0gICAgICBkZXN0X29mZnNl dF9iaXRzID0gb2Zmc2V0OworIAorKyAgICAgIHRoaXNfc2l6ZV9iaXRzID0gcC0+c2l6ZSAtIGJp dHNfdG9fc2tpcDsKKyAgICAgICBpZiAodGhpc19zaXplX2JpdHMgPiBtYXhfb2Zmc2V0IC0gb2Zm c2V0KQorIAl0aGlzX3NpemVfYml0cyA9IG1heF9vZmZzZXQgLSBvZmZzZXQ7CisgCitAQCAtMTgy NywxNiArMTgxOCwxNiBAQCByZWFkX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQorIAkJ JiYgcC0+b2Zmc2V0ICsgcC0+c2l6ZSA8IHJlZ19iaXRzKQorIAkgICAgICB7CisgCQkvKiBCaWct ZW5kaWFuLCBhbmQgd2Ugd2FudCBsZXNzIHRoYW4gZnVsbCBzaXplLiAgKi8KKy0JCXNvdXJjZV9v ZmZzZXRfYml0cyArPSByZWdfYml0cyAtIChwLT5vZmZzZXQgKyBwLT5zaXplKTsKKysJCWJpdHNf dG9fc2tpcCArPSByZWdfYml0cyAtIChwLT5vZmZzZXQgKyBwLT5zaXplKTsKKyAJICAgICAgfQor IAkgICAgZWxzZQorLQkgICAgICBzb3VyY2Vfb2Zmc2V0X2JpdHMgKz0gcC0+b2Zmc2V0OworKwkg ICAgICBiaXRzX3RvX3NraXAgKz0gcC0+b2Zmc2V0OworIAorLQkgICAgdGhpc19zaXplID0gYml0 c190b19ieXRlcyAoc291cmNlX29mZnNldF9iaXRzLCB0aGlzX3NpemVfYml0cyk7CisrCSAgICB0 aGlzX3NpemUgPSBiaXRzX3RvX2J5dGVzIChiaXRzX3RvX3NraXAsIHRoaXNfc2l6ZV9iaXRzKTsK KyAJICAgIGJ1ZmZlci5yZXNlcnZlICh0aGlzX3NpemUpOworIAorIAkgICAgaWYgKCFnZXRfZnJh bWVfcmVnaXN0ZXJfYnl0ZXMgKGZyYW1lLCBnZGJfcmVnbnVtLAorLQkJCQkJICAgc291cmNlX29m ZnNldF9iaXRzIC8gOCwKKysJCQkJCSAgIGJpdHNfdG9fc2tpcCAvIDgsCisgCQkJCQkgICB0aGlz X3NpemUsIGJ1ZmZlci5kYXRhICgpLAorIAkJCQkJICAgJm9wdGltLCAmdW5hdmFpbCkpCisgCSAg ICAgIHsKK0BAIC0xODQ2LDI0ICsxODM3LDIzIEBAIHJlYWRfcGllY2VkX3ZhbHVlIChzdHJ1Y3Qg dmFsdWUgKnYpCisgCQkgIG1hcmtfdmFsdWVfYml0c191bmF2YWlsYWJsZSAodiwgb2Zmc2V0LCB0 aGlzX3NpemVfYml0cyk7CisgCQlicmVhazsKKyAJICAgICAgfQorLQorLQkgICAgY29weV9iaXR3 aXNlIChjb250ZW50cywgZGVzdF9vZmZzZXRfYml0cywKKy0JCQkgIGJ1ZmZlci5kYXRhICgpLCBz b3VyY2Vfb2Zmc2V0X2JpdHMgJSA4LAorKwkgICAgY29weV9iaXR3aXNlIChjb250ZW50cywgb2Zm c2V0LAorKwkJCSAgYnVmZmVyLmRhdGEgKCksIGJpdHNfdG9fc2tpcCAlIDgsCisgCQkJICB0aGlz X3NpemVfYml0cywgYml0c19iaWdfZW5kaWFuKTsKKyAJICB9CisgCSAgYnJlYWs7CisgCisgCWNh c2UgRFdBUkZfVkFMVUVfTUVNT1JZOgorLQkgIHNvdXJjZV9vZmZzZXRfYml0cyArPSBwLT5vZmZz ZXQ7CistCSAgdGhpc19zaXplID0gYml0c190b19ieXRlcyAoc291cmNlX29mZnNldF9iaXRzLCB0 aGlzX3NpemVfYml0cyk7CisrCSAgYml0c190b19za2lwICs9IHAtPm9mZnNldDsKKysJICB0aGlz X3NpemUgPSBiaXRzX3RvX2J5dGVzIChiaXRzX3RvX3NraXAsIHRoaXNfc2l6ZV9iaXRzKTsKKyAJ ICBidWZmZXIucmVzZXJ2ZSAodGhpc19zaXplKTsKKyAKKyAJICByZWFkX3ZhbHVlX21lbW9yeSAo diwgb2Zmc2V0LAorIAkJCSAgICAgcC0+di5tZW0uaW5fc3RhY2tfbWVtb3J5LAorLQkJCSAgICAg cC0+di5tZW0uYWRkciArIHNvdXJjZV9vZmZzZXRfYml0cyAvIDgsCisrCQkJICAgICBwLT52Lm1l bS5hZGRyICsgYml0c190b19za2lwIC8gOCwKKyAJCQkgICAgIGJ1ZmZlci5kYXRhICgpLCB0aGlz X3NpemUpOworLQkgIGNvcHlfYml0d2lzZSAoY29udGVudHMsIGRlc3Rfb2Zmc2V0X2JpdHMsCist CQkJYnVmZmVyLmRhdGEgKCksIHNvdXJjZV9vZmZzZXRfYml0cyAlIDgsCisrCSAgY29weV9iaXR3 aXNlIChjb250ZW50cywgb2Zmc2V0LAorKwkJCWJ1ZmZlci5kYXRhICgpLCBiaXRzX3RvX3NraXAg JSA4LAorIAkJCXRoaXNfc2l6ZV9iaXRzLCBiaXRzX2JpZ19lbmRpYW4pOworIAkgIGJyZWFrOwor IAorQEAgLTE4ODAsMTQgKzE4NzAsMTMgQEAgcmVhZF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1 ZSAqdikKKyAKKyAJICAgIC8qIFBpZWNlIGlzIGFuY2hvcmVkIGF0IGxlYXN0IHNpZ25pZmljYW50 IGJpdCBlbmQuICAqLworIAkgICAgaWYgKGdkYmFyY2hfYnl0ZV9vcmRlciAob2JqZmlsZV9nZGJh cmNoKSA9PSBCRkRfRU5ESUFOX0JJRykKKy0JICAgICAgc291cmNlX29mZnNldF9iaXRzICs9IChz dGFja192YWx1ZV9zaXplX2JpdHMKKy0JCQkJICAgICAtIHAtPm9mZnNldCAtIHAtPnNpemUpOwor KwkgICAgICBiaXRzX3RvX3NraXAgKz0gc3RhY2tfdmFsdWVfc2l6ZV9iaXRzIC0gcC0+b2Zmc2V0 IC0gcC0+c2l6ZTsKKyAJICAgIGVsc2UKKy0JICAgICAgc291cmNlX29mZnNldF9iaXRzICs9IHAt Pm9mZnNldDsKKysJICAgICAgYml0c190b19za2lwICs9IHAtPm9mZnNldDsKKyAKKy0JICAgIGNv cHlfYml0d2lzZSAoY29udGVudHMsIGRlc3Rfb2Zmc2V0X2JpdHMsCisrCSAgICBjb3B5X2JpdHdp c2UgKGNvbnRlbnRzLCBvZmZzZXQsCisgCQkJICB2YWx1ZV9jb250ZW50c19hbGwgKHAtPnYudmFs dWUpLAorLQkJCSAgc291cmNlX29mZnNldF9iaXRzLAorKwkJCSAgYml0c190b19za2lwLAorIAkJ CSAgdGhpc19zaXplX2JpdHMsIGJpdHNfYmlnX2VuZGlhbik7CisgCSAgfQorIAkgIGJyZWFrOwor QEAgLTE4OTgsMTQgKzE4ODcsMTQgQEAgcmVhZF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAq dikKKyAJICAgIHNpemVfdCBuID0gdGhpc19zaXplX2JpdHM7CisgCisgCSAgICAvKiBDdXQgb2Zm IGF0IHRoZSBlbmQgb2YgdGhlIGltcGxpY2l0IHZhbHVlLiAgKi8KKy0JICAgIHNvdXJjZV9vZmZz ZXRfYml0cyArPSBwLT5vZmZzZXQ7CistCSAgICBpZiAoc291cmNlX29mZnNldF9iaXRzID49IGxp dGVyYWxfc2l6ZV9iaXRzKQorKwkgICAgYml0c190b19za2lwICs9IHAtPm9mZnNldDsKKysJICAg IGlmIChiaXRzX3RvX3NraXAgPj0gbGl0ZXJhbF9zaXplX2JpdHMpCisgCSAgICAgIGJyZWFrOwor LQkgICAgaWYgKG4gPiBsaXRlcmFsX3NpemVfYml0cyAtIHNvdXJjZV9vZmZzZXRfYml0cykKKy0J ICAgICAgbiA9IGxpdGVyYWxfc2l6ZV9iaXRzIC0gc291cmNlX29mZnNldF9iaXRzOworKwkgICAg aWYgKG4gPiBsaXRlcmFsX3NpemVfYml0cyAtIGJpdHNfdG9fc2tpcCkKKysJICAgICAgbiA9IGxp dGVyYWxfc2l6ZV9iaXRzIC0gYml0c190b19za2lwOworIAorLQkgICAgY29weV9iaXR3aXNlIChj b250ZW50cywgZGVzdF9vZmZzZXRfYml0cywKKy0JCQkgIHAtPnYubGl0ZXJhbC5kYXRhLCBzb3Vy Y2Vfb2Zmc2V0X2JpdHMsCisrCSAgICBjb3B5X2JpdHdpc2UgKGNvbnRlbnRzLCBvZmZzZXQsCisr CQkJICBwLT52LmxpdGVyYWwuZGF0YSwgYml0c190b19za2lwLAorIAkJCSAgbiwgYml0c19iaWdf ZW5kaWFuKTsKKyAJICB9CisgCSAgYnJlYWs7CitAQCAtMTkyNCw2ICsxOTEzLDcgQEAgcmVhZF9w aWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdikKKyAJfQorIAorICAgICAgIG9mZnNldCArPSB0 aGlzX3NpemVfYml0czsKKysgICAgICBiaXRzX3RvX3NraXAgPSAwOworICAgICB9CisgfQorIAor QEAgLTE5NTksMjMgKzE5NDksMTYgQEAgd3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUg KnRvLCBzdHJ1Y3QgdmFsdWUgKmZyb20pCisgICBlbHNlCisgICAgIG1heF9vZmZzZXQgPSA4ICog VFlQRV9MRU5HVEggKHZhbHVlX3R5cGUgKHRvKSk7CisgCistICBmb3IgKGkgPSAwOyBpIDwgYy0+ bl9waWVjZXMgJiYgb2Zmc2V0IDwgbWF4X29mZnNldDsgaSsrKQorKyAgLyogQWR2YW5jZSB0byB0 aGUgZmlyc3Qgbm9uLXNraXBwZWQgcGllY2UuICAqLworKyAgZm9yIChpID0gMDsgaSA8IGMtPm5f cGllY2VzICYmIGJpdHNfdG9fc2tpcCA+PSBjLT5waWVjZXNbaV0uc2l6ZTsgaSsrKQorKyAgICBi aXRzX3RvX3NraXAgLT0gYy0+cGllY2VzW2ldLnNpemU7CisrCisrICBmb3IgKDsgaSA8IGMtPm5f cGllY2VzICYmIG9mZnNldCA8IG1heF9vZmZzZXQ7IGkrKykKKyAgICAgeworICAgICAgIHN0cnVj dCBkd2FyZl9leHByX3BpZWNlICpwID0gJmMtPnBpZWNlc1tpXTsKKyAgICAgICBzaXplX3QgdGhp c19zaXplX2JpdHMsIHRoaXNfc2l6ZTsKKy0gICAgICBsb25nIGRlc3Rfb2Zmc2V0X2JpdHMsIHNv dXJjZV9vZmZzZXRfYml0czsKKy0KKy0gICAgICB0aGlzX3NpemVfYml0cyA9IHAtPnNpemU7Cist ICAgICAgaWYgKGJpdHNfdG9fc2tpcCA+IDAgJiYgYml0c190b19za2lwID49IHRoaXNfc2l6ZV9i aXRzKQorLQl7CistCSAgYml0c190b19za2lwIC09IHRoaXNfc2l6ZV9iaXRzOworLQkgIGNvbnRp bnVlOworLQl9CistICAgICAgZGVzdF9vZmZzZXRfYml0cyA9IGJpdHNfdG9fc2tpcDsKKy0gICAg ICB0aGlzX3NpemVfYml0cyAtPSBiaXRzX3RvX3NraXA7CistICAgICAgYml0c190b19za2lwID0g MDsKKy0gICAgICBzb3VyY2Vfb2Zmc2V0X2JpdHMgPSBvZmZzZXQ7CisgCisrICAgICAgdGhpc19z aXplX2JpdHMgPSBwLT5zaXplIC0gYml0c190b19za2lwOworICAgICAgIGlmICh0aGlzX3NpemVf Yml0cyA+IG1heF9vZmZzZXQgLSBvZmZzZXQpCisgCXRoaXNfc2l6ZV9iaXRzID0gbWF4X29mZnNl dCAtIG9mZnNldDsKKyAKK0BAIC0xOTkyLDIyICsxOTc1LDIyIEBAIHdyaXRlX3BpZWNlZF92YWx1 ZSAoc3RydWN0IHZhbHVlICp0bywgc3RydWN0IHZhbHVlICpmcm9tKQorIAkJJiYgcC0+b2Zmc2V0 ICsgcC0+c2l6ZSA8IHJlZ19iaXRzKQorIAkgICAgICB7CisgCQkvKiBCaWctZW5kaWFuLCBhbmQg d2Ugd2FudCBsZXNzIHRoYW4gZnVsbCBzaXplLiAgKi8KKy0JCWRlc3Rfb2Zmc2V0X2JpdHMgKz0g cmVnX2JpdHMgLSAocC0+b2Zmc2V0ICsgcC0+c2l6ZSk7CisrCQliaXRzX3RvX3NraXAgKz0gcmVn X2JpdHMgLSAocC0+b2Zmc2V0ICsgcC0+c2l6ZSk7CisgCSAgICAgIH0KKyAJICAgIGVsc2UKKy0J ICAgICAgZGVzdF9vZmZzZXRfYml0cyArPSBwLT5vZmZzZXQ7CisrCSAgICAgIGJpdHNfdG9fc2tp cCArPSBwLT5vZmZzZXQ7CisgCistCSAgICB0aGlzX3NpemUgPSBiaXRzX3RvX2J5dGVzIChkZXN0 X29mZnNldF9iaXRzLCB0aGlzX3NpemVfYml0cyk7CisrCSAgICB0aGlzX3NpemUgPSBiaXRzX3Rv X2J5dGVzIChiaXRzX3RvX3NraXAsIHRoaXNfc2l6ZV9iaXRzKTsKKyAJICAgIGJ1ZmZlci5yZXNl cnZlICh0aGlzX3NpemUpOworIAorLQkgICAgaWYgKGRlc3Rfb2Zmc2V0X2JpdHMgJSA4ICE9IDAg fHwgdGhpc19zaXplX2JpdHMgJSA4ICE9IDApCisrCSAgICBpZiAoYml0c190b19za2lwICUgOCAh PSAwIHx8IHRoaXNfc2l6ZV9iaXRzICUgOCAhPSAwKQorIAkgICAgICB7CisgCQkvKiBEYXRhIGlz IGNvcGllZCBub24tYnl0ZS1hbGlnbmVkIGludG8gdGhlIHJlZ2lzdGVyLgorIAkJICAgTmVlZCBz b21lIGJpdHMgZnJvbSBvcmlnaW5hbCByZWdpc3RlciB2YWx1ZS4gICovCisgCQlpbnQgb3B0aW0s IHVuYXZhaWw7CisgCisgCQlpZiAoIWdldF9mcmFtZV9yZWdpc3Rlcl9ieXRlcyAoZnJhbWUsIGdk Yl9yZWdudW0sCistCQkJCQkgICAgICAgZGVzdF9vZmZzZXRfYml0cyAvIDgsCisrCQkJCQkgICAg ICAgYml0c190b19za2lwIC8gOCwKKyAJCQkJCSAgICAgICB0aGlzX3NpemUsIGJ1ZmZlci5kYXRh ICgpLAorIAkJCQkJICAgICAgICZvcHRpbSwgJnVuYXZhaWwpKQorIAkJICB7CitAQCAtMjAyNCwz NCArMjAwNywzNCBAQCB3cml0ZV9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdG8sIHN0cnVj dCB2YWx1ZSAqZnJvbSkKKyAJCSAgfQorIAkgICAgICB9CisgCistCSAgICBjb3B5X2JpdHdpc2Ug KGJ1ZmZlci5kYXRhICgpLCBkZXN0X29mZnNldF9iaXRzICUgOCwKKy0JCQkgIGNvbnRlbnRzLCBz b3VyY2Vfb2Zmc2V0X2JpdHMsCisrCSAgICBjb3B5X2JpdHdpc2UgKGJ1ZmZlci5kYXRhICgpLCBi aXRzX3RvX3NraXAgJSA4LAorKwkJCSAgY29udGVudHMsIG9mZnNldCwKKyAJCQkgIHRoaXNfc2l6 ZV9iaXRzLCBiaXRzX2JpZ19lbmRpYW4pOworIAkgICAgcHV0X2ZyYW1lX3JlZ2lzdGVyX2J5dGVz IChmcmFtZSwgZ2RiX3JlZ251bSwKKy0JCQkJICAgICAgZGVzdF9vZmZzZXRfYml0cyAvIDgsCisr CQkJCSAgICAgIGJpdHNfdG9fc2tpcCAvIDgsCisgCQkJCSAgICAgIHRoaXNfc2l6ZSwgYnVmZmVy LmRhdGEgKCkpOworIAkgIH0KKyAJICBicmVhazsKKyAJY2FzZSBEV0FSRl9WQUxVRV9NRU1PUlk6 CisgCSAgeworLQkgICAgZGVzdF9vZmZzZXRfYml0cyArPSBwLT5vZmZzZXQ7CisrCSAgICBiaXRz X3RvX3NraXAgKz0gcC0+b2Zmc2V0OworIAorLQkgICAgQ09SRV9BRERSIHN0YXJ0X2FkZHIgPSBw LT52Lm1lbS5hZGRyICsgZGVzdF9vZmZzZXRfYml0cyAvIDg7CisrCSAgICBDT1JFX0FERFIgc3Rh cnRfYWRkciA9IHAtPnYubWVtLmFkZHIgKyBiaXRzX3RvX3NraXAgLyA4OworIAorLQkgICAgaWYg KGRlc3Rfb2Zmc2V0X2JpdHMgJSA4ID09IDAgJiYgdGhpc19zaXplX2JpdHMgJSA4ID09IDAKKy0J CSYmIHNvdXJjZV9vZmZzZXRfYml0cyAlIDggPT0gMCkKKysJICAgIGlmIChiaXRzX3RvX3NraXAg JSA4ID09IDAgJiYgdGhpc19zaXplX2JpdHMgJSA4ID09IDAKKysJCSYmIG9mZnNldCAlIDggPT0g MCkKKyAJICAgICAgeworIAkJLyogRXZlcnl0aGluZyBpcyBieXRlLWFsaWduZWQ7IG5vIGJ1ZmZl ciBuZWVkZWQuICAqLworIAkJd3JpdGVfbWVtb3J5IChzdGFydF9hZGRyLAorLQkJCSAgICAgIGNv bnRlbnRzICsgc291cmNlX29mZnNldF9iaXRzIC8gOCwKKysJCQkgICAgICBjb250ZW50cyArIG9m ZnNldCAvIDgsCisgCQkJICAgICAgdGhpc19zaXplX2JpdHMgLyA4KTsKKyAJCWJyZWFrOworIAkg ICAgICB9CisgCistCSAgICB0aGlzX3NpemUgPSBiaXRzX3RvX2J5dGVzIChkZXN0X29mZnNldF9i aXRzLCB0aGlzX3NpemVfYml0cyk7CisrCSAgICB0aGlzX3NpemUgPSBiaXRzX3RvX2J5dGVzIChi aXRzX3RvX3NraXAsIHRoaXNfc2l6ZV9iaXRzKTsKKyAJICAgIGJ1ZmZlci5yZXNlcnZlICh0aGlz X3NpemUpOworIAorLQkgICAgaWYgKGRlc3Rfb2Zmc2V0X2JpdHMgJSA4ICE9IDAgfHwgdGhpc19z aXplX2JpdHMgJSA4ICE9IDApCisrCSAgICBpZiAoYml0c190b19za2lwICUgOCAhPSAwIHx8IHRo aXNfc2l6ZV9iaXRzICUgOCAhPSAwKQorIAkgICAgICB7CisgCQlpZiAodGhpc19zaXplIDw9IDgp CisgCQkgIHsKK0BAIC0yMDY4LDggKzIwNTEsOCBAQCB3cml0ZV9waWVjZWRfdmFsdWUgKHN0cnVj dCB2YWx1ZSAqdG8sIHN0cnVjdCB2YWx1ZSAqZnJvbSkKKyAJCSAgfQorIAkgICAgICB9CisgCist CSAgICBjb3B5X2JpdHdpc2UgKGJ1ZmZlci5kYXRhICgpLCBkZXN0X29mZnNldF9iaXRzICUgOCwK Ky0JCQkgIGNvbnRlbnRzLCBzb3VyY2Vfb2Zmc2V0X2JpdHMsCisrCSAgICBjb3B5X2JpdHdpc2Ug KGJ1ZmZlci5kYXRhICgpLCBiaXRzX3RvX3NraXAgJSA4LAorKwkJCSAgY29udGVudHMsIG9mZnNl dCwKKyAJCQkgIHRoaXNfc2l6ZV9iaXRzLCBiaXRzX2JpZ19lbmRpYW4pOworIAkgICAgd3JpdGVf bWVtb3J5IChzdGFydF9hZGRyLCBidWZmZXIuZGF0YSAoKSwgdGhpc19zaXplKTsKKyAJICB9CitA QCAtMjA3OSw2ICsyMDYyLDcgQEAgd3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnRv LCBzdHJ1Y3QgdmFsdWUgKmZyb20pCisgCSAgYnJlYWs7CisgCX0KKyAgICAgICBvZmZzZXQgKz0g dGhpc19zaXplX2JpdHM7CisrICAgICAgYml0c190b19za2lwID0gMDsKKyAgICAgfQorIH0KKyAK CmRpZmYgLS1naXQgYS9nZGItcmhiejE0MjAzMDQtczM5MHgtMjVvZjM1LnBhdGNoIGIvZ2RiLXJo YnoxNDIwMzA0LXMzOTB4LTI1b2YzNS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi5kZmEzNjZjCi0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4 LTI1b2YzNS5wYXRjaApAQCAtMCwwICsxLDc2IEBACitjb21taXQgMjNmOTQ1YmY4Y2ViZjM0ODE1 NGFmZjQzNzgyZGUyZTE5NzdlOTIzMAorQXV0aG9yOiBBbmRyZWFzIEFybmV6IDxhcm5lekBsaW51 eC52bmV0LmlibS5jb20+CitEYXRlOiAgIFR1ZSBKdW4gMTMgMTU6MjA6MzEgMjAxNyArMDIwMAor CisgICAgRml4IGJpdC0vYnl0ZS1vZmZzZXQgbWlzbWF0Y2ggaW4gcGFyYW1ldGVyIHRvIHJlYWRf dmFsdWVfbWVtb3J5CisgICAgCisgICAgVGhlIGZ1bmN0aW9uIHJlYWRfdmFsdWVfbWVtb3J5IGFj Y2VwdHMgYSBwYXJhbWV0ZXIgZW1iZWRkZWRfb2Zmc2V0IGFuZAorICAgIGV4cGVjdHMgaXQgdG8g cmVwcmVzZW50IHRoZSBieXRlIG9mZnNldCBpbnRvIHRoZSBnaXZlbiB2YWx1ZS4gIEhvd2V2ZXIs CisgICAgdGhlIG9ubHkgaW52b2NhdGlvbiB3aXRoIGEgcG9zc2libHkgbm9uLXplcm8gZW1iZWRk ZWRfb2Zmc2V0IGhhcHBlbnMgaW4KKyAgICByZWFkX3BpZWNlZF92YWx1ZSwgd2hlcmUgYSBiaXQg b2Zmc2V0IGlzIHBhc3NlZCBpbnN0ZWFkLgorICAgIAorICAgIEFkanVzdCB0aGUgaW1wbGVtZW50 YXRpb24gb2YgcmVhZF92YWx1ZV9tZW1vcnkgdG8gbWVldCB0aGUgY2FsbGVyJ3MKKyAgICBleHBl Y3RhdGlvbi4gIFRoaXMgaW1wbGljaXRseSBmaXhlcyB0aGUgaW52b2NhdGlvbiBpbiByZWFkX3Bp ZWNlZF92YWx1ZS4KKyAgICAKKyAgICBnZGIvQ2hhbmdlTG9nOgorICAgIAorICAgICAgICAgICAg KiB2YWxvcHMuYyAocmVhZF92YWx1ZV9tZW1vcnkpOiBDaGFuZ2UgZW1iZWRkZWRfb2Zmc2V0IHRv CisgICAgICAgICAgICByZXByZXNlbnQgYSBiaXQgb2Zmc2V0IGluc3RlYWQgb2YgYSBieXRlIG9m ZnNldC4KKyAgICAgICAgICAgICogdmFsdWUuaCAocmVhZF92YWx1ZV9tZW1vcnkpOiBBZGp1c3Qg Y29tbWVudC4KKworIyMjIGEvZ2RiL0NoYW5nZUxvZworIyMjIGIvZ2RiL0NoYW5nZUxvZworIyMg LTEsNSArMSwxMSBAQAorIDIwMTctMDYtMTMgIEFuZHJlYXMgQXJuZXogIDxhcm5lekBsaW51eC52 bmV0LmlibS5jb20+CisgCisrCSogdmFsb3BzLmMgKHJlYWRfdmFsdWVfbWVtb3J5KTogQ2hhbmdl IGVtYmVkZGVkX29mZnNldCB0bworKwlyZXByZXNlbnQgYSBiaXQgb2Zmc2V0IGluc3RlYWQgb2Yg YSBieXRlIG9mZnNldC4KKysJKiB2YWx1ZS5oIChyZWFkX3ZhbHVlX21lbW9yeSk6IEFkanVzdCBj b21tZW50LgorKworKzIwMTctMDYtMTMgIEFuZHJlYXMgQXJuZXogIDxhcm5lekBsaW51eC52bmV0 LmlibS5jb20+CisrCisgCSogZHdhcmYybG9jLmMgKHJlYWRfcGllY2VkX3ZhbHVlKTogUmVtb3Zl IHVubmVjZXNzYXJ5IHZhcmlhYmxlcworIAlkZXN0X29mZnNldF9iaXRzIGFuZCBzb3VyY2Vfb2Zm c2V0X2JpdHMuCisgCSh3cml0ZV9waWVjZWRfdmFsdWUpOiBMaWtld2lzZS4KKy0tLSBhL2dkYi92 YWxvcHMuYworKysrIGIvZ2RiL3ZhbG9wcy5jCitAQCAtOTU4LDcgKzk1OCw3IEBAIHZhbHVlX2F0 X2xhenkgKHN0cnVjdCB0eXBlICp0eXBlLCBDT1JFX0FERFIgYWRkcikKKyB9CisgCisgdm9pZAor LXJlYWRfdmFsdWVfbWVtb3J5IChzdHJ1Y3QgdmFsdWUgKnZhbCwgTE9OR0VTVCBlbWJlZGRlZF9v ZmZzZXQsCisrcmVhZF92YWx1ZV9tZW1vcnkgKHN0cnVjdCB2YWx1ZSAqdmFsLCBMT05HRVNUIGJp dF9vZmZzZXQsCisgCQkgICBpbnQgc3RhY2ssIENPUkVfQUREUiBtZW1hZGRyLAorIAkJICAgZ2Ri X2J5dGUgKmJ1ZmZlciwgc2l6ZV90IGxlbmd0aCkKKyB7CitAQCAtOTg0LDggKzk4NCw5IEBAIHJl YWRfdmFsdWVfbWVtb3J5IChzdHJ1Y3QgdmFsdWUgKnZhbCwgTE9OR0VTVCBlbWJlZGRlZF9vZmZz ZXQsCisgICAgICAgaWYgKHN0YXR1cyA9PSBUQVJHRVRfWEZFUl9PSykKKyAJLyogbm90aGluZyAq LzsKKyAgICAgICBlbHNlIGlmIChzdGF0dXMgPT0gVEFSR0VUX1hGRVJfVU5BVkFJTEFCTEUpCist CW1hcmtfdmFsdWVfYnl0ZXNfdW5hdmFpbGFibGUgKHZhbCwgZW1iZWRkZWRfb2Zmc2V0ICsgeGZl cmVkX3RvdGFsLAorLQkJCQkgICAgICB4ZmVyZWRfcGFydGlhbCk7CisrCW1hcmtfdmFsdWVfYml0 c191bmF2YWlsYWJsZSAodmFsLCAoeGZlcmVkX3RvdGFsICogSE9TVF9DSEFSX0JJVAorKwkJCQkJ ICAgKyBiaXRfb2Zmc2V0KSwKKysJCQkJICAgICB4ZmVyZWRfcGFydGlhbCAqIEhPU1RfQ0hBUl9C SVQpOworICAgICAgIGVsc2UgaWYgKHN0YXR1cyA9PSBUQVJHRVRfWEZFUl9FT0YpCisgCW1lbW9y eV9lcnJvciAoVEFSR0VUX1hGRVJfRV9JTywgbWVtYWRkciArIHhmZXJlZF90b3RhbCk7CisgICAg ICAgZWxzZQorLS0tIGEvZ2RiL3ZhbHVlLmgKKysrKyBiL2dkYi92YWx1ZS5oCitAQCAtNTgxLDEy ICs1ODEsMTEgQEAgZXh0ZXJuIGludCB2YWx1ZV9jb250ZW50c19lcSAoY29uc3Qgc3RydWN0IHZh bHVlICp2YWwxLCBMT05HRVNUIG9mZnNldDEsCisgCisgLyogUmVhZCBMRU5HVEggYWRkcmVzc2Fi bGUgbWVtb3J5IHVuaXRzIHN0YXJ0aW5nIGF0IE1FTUFERFIgaW50byBCVUZGRVIsCisgICAgd2hp Y2ggaXMgKG9yIHdpbGwgYmUgY29waWVkIHRvKSBWQUwncyBjb250ZW50cyBidWZmZXIgb2Zmc2V0 IGJ5CistICAgRU1CRURERURfT0ZGU0VUICh0aGF0IGlzLCB0byAmVkFMLT5jb250ZW50c1tFTUJF RERFRF9PRkZTRVRdKS4KKy0gICBNYXJrcyB2YWx1ZSBjb250ZW50cyByYW5nZXMgYXMgdW5hdmFp bGFibGUgaWYgdGhlIGNvcnJlc3BvbmRpbmcKKy0gICBtZW1vcnkgaXMgbGlrZXdpc2UgdW5hdmFp bGFibGUuICBTVEFDSyBpbmRpY2F0ZXMgd2hldGhlciB0aGUgbWVtb3J5CistICAgaXMga25vd24g dG8gYmUgc3RhY2sgbWVtb3J5LiAgKi8KKysgICBCSVRfT0ZGU0VUIGJpdHMuICBNYXJrcyB2YWx1 ZSBjb250ZW50cyByYW5nZXMgYXMgdW5hdmFpbGFibGUgaWYKKysgICB0aGUgY29ycmVzcG9uZGlu ZyBtZW1vcnkgaXMgbGlrZXdpc2UgdW5hdmFpbGFibGUuICBTVEFDSyBpbmRpY2F0ZXMKKysgICB3 aGV0aGVyIHRoZSBtZW1vcnkgaXMga25vd24gdG8gYmUgc3RhY2sgbWVtb3J5LiAgKi8KKyAKKy1l eHRlcm4gdm9pZCByZWFkX3ZhbHVlX21lbW9yeSAoc3RydWN0IHZhbHVlICp2YWwsIExPTkdFU1Qg ZW1iZWRkZWRfb2Zmc2V0LAorK2V4dGVybiB2b2lkIHJlYWRfdmFsdWVfbWVtb3J5IChzdHJ1Y3Qg dmFsdWUgKnZhbCwgTE9OR0VTVCBiaXRfb2Zmc2V0LAorIAkJCSAgICAgICBpbnQgc3RhY2ssIENP UkVfQUREUiBtZW1hZGRyLAorIAkJCSAgICAgICBnZGJfYnl0ZSAqYnVmZmVyLCBzaXplX3QgbGVu Z3RoKTsKKyAKCmRpZmYgLS1naXQgYS9nZGItcmhiejE0MjAzMDQtczM5MHgtMjZvZjM1LnBhdGNo IGIvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTI2b2YzNS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi5jNDYwNzk0Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXJoYnoxNDIw MzA0LXMzOTB4LTI2b2YzNS5wYXRjaApAQCAtMCwwICsxLDU2IEBACitjb21taXQgZjY1ZTIwNDQy NWI1YjQ2YTU5MjdkOTUwMWM0MmYyNWQ5OGE4NjZjZQorQXV0aG9yOiBBbmRyZWFzIEFybmV6IDxh cm5lekBsaW51eC52bmV0LmlibS5jb20+CitEYXRlOiAgIFR1ZSBKdW4gMTMgMTU6MjA6MzIgMjAx NyArMDIwMAorCisgICAgd3JpdGVfcGllY2VkX3ZhbHVlOiBOb3RpZnkgbWVtb3J5X2NoYW5nZWQg b2JzZXJ2ZXJzCisgICAgCisgICAgU28gZmFyIHdyaXRlX3BpZWNlZF92YWx1ZSB1c2VzIHdyaXRl X21lbW9yeSB3aGVuIHdyaXRpbmcgbWVtb3J5IHBpZWNlcyB0bworICAgIHRoZSB0YXJnZXQuICBI b3dldmVyLCB0aGlzIGlzIGEgY2FzZSB3aGVyZSBHREIgcG90ZW50aWFsbHkgb3ZlcndyaXRlcyBh CisgICAgd2F0Y2hwb2ludCB2YWx1ZS4gIEluIHN1Y2ggYSBjYXNlIHdyaXRlX21lbW9yeV93aXRo X25vdGlmaWNhdGlvbiBzaG91bGQgYmUKKyAgICB1c2VkIGluc3RlYWQsIHNvIHRoYXQgbWVtb3J5 X2NoYW5nZWQgb2JzZXJ2ZXJzIGdldCBub3RpZmllZC4KKyAgICAKKyAgICBnZGIvQ2hhbmdlTG9n OgorICAgIAorICAgICAgICAgICAgKiBkd2FyZjJsb2MuYyAod3JpdGVfcGllY2VkX3ZhbHVlKTog V2hlbiB3cml0aW5nIHRoZSBkYXRhIGZvciBhCisgICAgICAgICAgICBtZW1vcnkgcGllY2UsIHVz ZSB3cml0ZV9tZW1vcnlfd2l0aF9ub3RpZmljYXRpb24gaW5zdGVhZCBvZgorICAgICAgICAgICAg d3JpdGVfbWVtb3J5LgorCisjIyMgYS9nZGIvQ2hhbmdlTG9nCisjIyMgYi9nZGIvQ2hhbmdlTG9n CisjIyAtMSw1ICsxLDExIEBACisgMjAxNy0wNi0xMyAgQW5kcmVhcyBBcm5leiAgPGFybmV6QGxp bnV4LnZuZXQuaWJtLmNvbT4KKyAKKysJKiBkd2FyZjJsb2MuYyAod3JpdGVfcGllY2VkX3ZhbHVl KTogV2hlbiB3cml0aW5nIHRoZSBkYXRhIGZvciBhCisrCW1lbW9yeSBwaWVjZSwgdXNlIHdyaXRl X21lbW9yeV93aXRoX25vdGlmaWNhdGlvbiBpbnN0ZWFkIG9mCisrCXdyaXRlX21lbW9yeS4KKysK KysyMDE3LTA2LTEzICBBbmRyZWFzIEFybmV6ICA8YXJuZXpAbGludXgudm5ldC5pYm0uY29tPgor KworIAkqIHZhbG9wcy5jIChyZWFkX3ZhbHVlX21lbW9yeSk6IENoYW5nZSBlbWJlZGRlZF9vZmZz ZXQgdG8KKyAJcmVwcmVzZW50IGEgYml0IG9mZnNldCBpbnN0ZWFkIG9mIGEgYnl0ZSBvZmZzZXQu CisgCSogdmFsdWUuaCAocmVhZF92YWx1ZV9tZW1vcnkpOiBBZGp1c3QgY29tbWVudC4KKy0tLSBh L2dkYi9kd2FyZjJsb2MuYworKysrIGIvZ2RiL2R3YXJmMmxvYy5jCitAQCAtMjAyNSw5ICsyMDI1 LDkgQEAgd3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBzdHJ1Y3QgdmFsdWUg KmZyb20pCisgCQkmJiBvZmZzZXQgJSA4ID09IDApCisgCSAgICAgIHsKKyAJCS8qIEV2ZXJ5dGhp bmcgaXMgYnl0ZS1hbGlnbmVkOyBubyBidWZmZXIgbmVlZGVkLiAgKi8KKy0JCXdyaXRlX21lbW9y eSAoc3RhcnRfYWRkciwKKy0JCQkgICAgICBjb250ZW50cyArIG9mZnNldCAvIDgsCistCQkJICAg ICAgdGhpc19zaXplX2JpdHMgLyA4KTsKKysJCXdyaXRlX21lbW9yeV93aXRoX25vdGlmaWNhdGlv biAoc3RhcnRfYWRkciwKKysJCQkJCQljb250ZW50cyArIG9mZnNldCAvIDgsCisrCQkJCQkJdGhp c19zaXplX2JpdHMgLyA4KTsKKyAJCWJyZWFrOworIAkgICAgICB9CisgCitAQCAtMjA1NCw3ICsy MDU0LDggQEAgd3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBzdHJ1Y3QgdmFs dWUgKmZyb20pCisgCSAgICBjb3B5X2JpdHdpc2UgKGJ1ZmZlci5kYXRhICgpLCBiaXRzX3RvX3Nr aXAgJSA4LAorIAkJCSAgY29udGVudHMsIG9mZnNldCwKKyAJCQkgIHRoaXNfc2l6ZV9iaXRzLCBi aXRzX2JpZ19lbmRpYW4pOworLQkgICAgd3JpdGVfbWVtb3J5IChzdGFydF9hZGRyLCBidWZmZXIu ZGF0YSAoKSwgdGhpc19zaXplKTsKKysJICAgIHdyaXRlX21lbW9yeV93aXRoX25vdGlmaWNhdGlv biAoc3RhcnRfYWRkciwgYnVmZmVyLmRhdGEgKCksCisrCQkJCQkgICAgdGhpc19zaXplKTsKKyAJ ICB9CisgCSAgYnJlYWs7CisgCWRlZmF1bHQ6CgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYnoxNDIwMzA0 LXMzOTB4LTI3b2YzNS5wYXRjaCBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0yN29mMzUucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWQxZmEwZQotLS0gL2Rldi9udWxs CisrKyBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0yN29mMzUucGF0Y2gKQEAgLTAsMCArMSw0ODEg QEAKK2NvbW1pdCA1NWFjZGYyMjQyMzcyYWU1MmFiYjI1YzgwZGI4ZTc1ZGY1NTc4YjIzCitBdXRo b3I6IEFuZHJlYXMgQXJuZXogPGFybmV6QGxpbnV4LnZuZXQuaWJtLmNvbT4KK0RhdGU6ICAgVHVl IEp1biAxMyAxNToyMDozMiAyMDE3ICswMjAwCisKKyAgICByZWFkL3dyaXRlX3BpZWNlZF92YWx1 ZTogTWVyZ2UgaW50byBvbmUgZnVuY3Rpb24KKyAgICAKKyAgICBTaW5jZSByZWFkX3BpZWNlZF92 YWx1ZSBhbmQgd3JpdGVfcGllY2VkX3ZhbHVlIHNoYXJlIHNpZ25pZmljYW50IGxvZ2ljLAorICAg IHRoaXMgcGF0Y2ggbWVyZ2VzIHRoZW0gaW50byBhIHNpbmdsZSBmdW5jdGlvbiByd19waWVjZWRf dmFsdWUuCisgICAgCisgICAgZ2RiL0NoYW5nZUxvZzoKKyAgICAKKyAgICAgICAgICAgICogZHdh cmYybG9jLmMgKHJ3X3BpZWNlZF92YWx1ZSk6IE5ldy4gIE1lcmdlIGxvZ2ljIGZyb20uLi4KKyAg ICAgICAgICAgIChyZWFkX3BpZWNlZF92YWx1ZSwgd3JpdGVfcGllY2VkX3ZhbHVlKTogLi4uaGVy ZS4gIFJlZHVjZSB0bworICAgICAgICAgICAgd3JhcHBlcnMgdGhhdCBqdXN0IGNhbGwgcndfcGll Y2VkX3ZhbHVlLgorCisjIyMgYS9nZGIvQ2hhbmdlTG9nCisjIyMgYi9nZGIvQ2hhbmdlTG9nCisj IyAtMSw1ICsxLDExIEBACisgMjAxNy0wNi0xMyAgQW5kcmVhcyBBcm5leiAgPGFybmV6QGxpbnV4 LnZuZXQuaWJtLmNvbT4KKyAKKysJKiBkd2FyZjJsb2MuYyAocndfcGllY2VkX3ZhbHVlKTogTmV3 LiAgTWVyZ2UgbG9naWMgZnJvbS4uLgorKwkocmVhZF9waWVjZWRfdmFsdWUsIHdyaXRlX3BpZWNl ZF92YWx1ZSk6IC4uLmhlcmUuICBSZWR1Y2UgdG8KKysJd3JhcHBlcnMgdGhhdCBqdXN0IGNhbGwg cndfcGllY2VkX3ZhbHVlLgorKworKzIwMTctMDYtMTMgIEFuZHJlYXMgQXJuZXogIDxhcm5lekBs aW51eC52bmV0LmlibS5jb20+CisrCisgCSogZHdhcmYybG9jLmMgKHdyaXRlX3BpZWNlZF92YWx1 ZSk6IFdoZW4gd3JpdGluZyB0aGUgZGF0YSBmb3IgYQorIAltZW1vcnkgcGllY2UsIHVzZSB3cml0 ZV9tZW1vcnlfd2l0aF9ub3RpZmljYXRpb24gaW5zdGVhZCBvZgorIAl3cml0ZV9tZW1vcnkuCist LS0gYS9nZGIvZHdhcmYybG9jLmMKKysrKyBiL2dkYi9kd2FyZjJsb2MuYworQEAgLTE3NjEsMzEg KzE3NjEsNTUgQEAgYml0c190b19ieXRlcyAoVUxPTkdFU1Qgc3RhcnQsIFVMT05HRVNUIG5fYml0 cykKKyAgIHJldHVybiAoc3RhcnQgJSA4ICsgbl9iaXRzICsgNykgLyA4OworIH0KKyAKKysvKiBS ZWFkIG9yIHdyaXRlIGEgcGllY2VkIHZhbHVlIFYuICBJZiBGUk9NICE9IE5VTEwsIG9wZXJhdGUg aW4gIndyaXRlCisrICAgbW9kZSI6IGNvcHkgRlJPTSBpbnRvIHRoZSBwaWVjZXMgY29tcHJpc2lu ZyBWLiAgSWYgRlJPTSA9PSBOVUxMLAorKyAgIG9wZXJhdGUgaW4gInJlYWQgbW9kZSI6IGZldGNo IHRoZSBjb250ZW50cyBvZiB0aGUgKGxhenkpIHZhbHVlIFYgYnkKKysgICBjb21wb3NpbmcgaXQg ZnJvbSBpdHMgcGllY2VzLiAgKi8KKysKKyBzdGF0aWMgdm9pZAorLXJlYWRfcGllY2VkX3ZhbHVl IChzdHJ1Y3QgdmFsdWUgKnYpCisrcndfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnYsIHN0 cnVjdCB2YWx1ZSAqZnJvbSkKKyB7CisgICBpbnQgaTsKKyAgIExPTkdFU1Qgb2Zmc2V0ID0gMCwg bWF4X29mZnNldDsKKyAgIFVMT05HRVNUIGJpdHNfdG9fc2tpcDsKKy0gIGdkYl9ieXRlICpjb250 ZW50czsKKysgIGdkYl9ieXRlICp2X2NvbnRlbnRzOworKyAgY29uc3QgZ2RiX2J5dGUgKmZyb21f Y29udGVudHM7CisgICBzdHJ1Y3QgcGllY2VfY2xvc3VyZSAqYworICAgICA9IChzdHJ1Y3QgcGll Y2VfY2xvc3VyZSAqKSB2YWx1ZV9jb21wdXRlZF9jbG9zdXJlICh2KTsKKyAgIHN0ZDo6dmVjdG9y PGdkYl9ieXRlPiBidWZmZXI7CisgICBpbnQgYml0c19iaWdfZW5kaWFuCisgICAgID0gZ2RiYXJj aF9iaXRzX2JpZ19lbmRpYW4gKGdldF90eXBlX2FyY2ggKHZhbHVlX3R5cGUgKHYpKSk7CisgCist ICBpZiAodmFsdWVfdHlwZSAodikgIT0gdmFsdWVfZW5jbG9zaW5nX3R5cGUgKHYpKQorLSAgICBp bnRlcm5hbF9lcnJvciAoX19GSUxFX18sIF9fTElORV9fLAorLQkJICAgIF8oIlNob3VsZCBub3Qg YmUgYWJsZSB0byBjcmVhdGUgYSBsYXp5IHZhbHVlIHdpdGggIgorLQkJICAgICAgImFuIGVuY2xv c2luZyB0eXBlIikpOworKyAgaWYgKGZyb20gIT0gTlVMTCkKKysgICAgeworKyAgICAgIGZyb21f Y29udGVudHMgPSB2YWx1ZV9jb250ZW50cyAoZnJvbSk7CisrICAgICAgdl9jb250ZW50cyA9IE5V TEw7CisrICAgIH0KKysgIGVsc2UKKysgICAgeworKyAgICAgIGlmICh2YWx1ZV90eXBlICh2KSAh PSB2YWx1ZV9lbmNsb3NpbmdfdHlwZSAodikpCisrCWludGVybmFsX2Vycm9yIChfX0ZJTEVfXywg X19MSU5FX18sCisrCQkJXygiU2hvdWxkIG5vdCBiZSBhYmxlIHRvIGNyZWF0ZSBhIGxhenkgdmFs dWUgd2l0aCAiCisrCQkJICAiYW4gZW5jbG9zaW5nIHR5cGUiKSk7CisrICAgICAgdl9jb250ZW50 cyA9IHZhbHVlX2NvbnRlbnRzX3JhdyAodik7CisrICAgICAgZnJvbV9jb250ZW50cyA9IE5VTEw7 CisrICAgIH0KKyAKKy0gIGNvbnRlbnRzID0gdmFsdWVfY29udGVudHNfcmF3ICh2KTsKKyAgIGJp dHNfdG9fc2tpcCA9IDggKiB2YWx1ZV9vZmZzZXQgKHYpOworICAgaWYgKHZhbHVlX2JpdHNpemUg KHYpKQorICAgICB7CisgICAgICAgYml0c190b19za2lwICs9ICg4ICogdmFsdWVfb2Zmc2V0ICh2 YWx1ZV9wYXJlbnQgKHYpKQorIAkJICAgICAgICsgdmFsdWVfYml0cG9zICh2KSk7CistICAgICAg bWF4X29mZnNldCA9IHZhbHVlX2JpdHNpemUgKHYpOworKyAgICAgIGlmIChmcm9tICE9IE5VTEwK KysJICAmJiAoZ2RiYXJjaF9ieXRlX29yZGVyIChnZXRfdHlwZV9hcmNoICh2YWx1ZV90eXBlIChm cm9tKSkpCisrCSAgICAgID09IEJGRF9FTkRJQU5fQklHKSkKKysJeworKwkgIC8qIFVzZSB0aGUg bGVhc3Qgc2lnbmlmaWNhbnQgYml0cyBvZiBGUk9NLiAgKi8KKysJICBtYXhfb2Zmc2V0ID0gOCAq IFRZUEVfTEVOR1RIICh2YWx1ZV90eXBlIChmcm9tKSk7CisrCSAgb2Zmc2V0ID0gbWF4X29mZnNl dCAtIHZhbHVlX2JpdHNpemUgKHYpOworKwl9CisrICAgICAgZWxzZQorKwltYXhfb2Zmc2V0ID0g dmFsdWVfYml0c2l6ZSAodik7CisgICAgIH0KKyAgIGVsc2UKKyAgICAgbWF4X29mZnNldCA9IDgg KiBUWVBFX0xFTkdUSCAodmFsdWVfdHlwZSAodikpOworQEAgLTE3OTcsMTMgKzE4MjEsMTIgQEAg cmVhZF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdikKKyAgIGZvciAoOyBpIDwgYy0+bl9w aWVjZXMgJiYgb2Zmc2V0IDwgbWF4X29mZnNldDsgaSsrKQorICAgICB7CisgICAgICAgc3RydWN0 IGR3YXJmX2V4cHJfcGllY2UgKnAgPSAmYy0+cGllY2VzW2ldOworLSAgICAgIHNpemVfdCB0aGlz X3NpemUsIHRoaXNfc2l6ZV9iaXRzOworKyAgICAgIHNpemVfdCB0aGlzX3NpemVfYml0cywgdGhp c19zaXplOworIAorICAgICAgIHRoaXNfc2l6ZV9iaXRzID0gcC0+c2l6ZSAtIGJpdHNfdG9fc2tp cDsKKyAgICAgICBpZiAodGhpc19zaXplX2JpdHMgPiBtYXhfb2Zmc2V0IC0gb2Zmc2V0KQorIAl0 aGlzX3NpemVfYml0cyA9IG1heF9vZmZzZXQgLSBvZmZzZXQ7CisgCistICAgICAgLyogQ29weSBm cm9tIHRoZSBzb3VyY2UgdG8gREVTVF9CVUZGRVIuICAqLworICAgICAgIHN3aXRjaCAocC0+bG9j YXRpb24pCisgCXsKKyAJY2FzZSBEV0FSRl9WQUxVRV9SRUdJU1RFUjoKK0BAIC0xODI2LDM5ICsx ODQ5LDEzNyBAQCByZWFkX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQorIAkgICAgdGhp c19zaXplID0gYml0c190b19ieXRlcyAoYml0c190b19za2lwLCB0aGlzX3NpemVfYml0cyk7Cisg CSAgICBidWZmZXIucmVzZXJ2ZSAodGhpc19zaXplKTsKKyAKKy0JICAgIGlmICghZ2V0X2ZyYW1l X3JlZ2lzdGVyX2J5dGVzIChmcmFtZSwgZ2RiX3JlZ251bSwKKy0JCQkJCSAgIGJpdHNfdG9fc2tp cCAvIDgsCistCQkJCQkgICB0aGlzX3NpemUsIGJ1ZmZlci5kYXRhICgpLAorLQkJCQkJICAgJm9w dGltLCAmdW5hdmFpbCkpCisrCSAgICBpZiAoZnJvbSA9PSBOVUxMKQorIAkgICAgICB7CistCQlp ZiAob3B0aW0pCistCQkgIG1hcmtfdmFsdWVfYml0c19vcHRpbWl6ZWRfb3V0ICh2LCBvZmZzZXQs IHRoaXNfc2l6ZV9iaXRzKTsKKy0JCWlmICh1bmF2YWlsKQorLQkJICBtYXJrX3ZhbHVlX2JpdHNf dW5hdmFpbGFibGUgKHYsIG9mZnNldCwgdGhpc19zaXplX2JpdHMpOworLQkJYnJlYWs7CisrCQkv KiBSZWFkIG1vZGUuICAqLworKwkJaWYgKCFnZXRfZnJhbWVfcmVnaXN0ZXJfYnl0ZXMgKGZyYW1l LCBnZGJfcmVnbnVtLAorKwkJCQkJICAgICAgIGJpdHNfdG9fc2tpcCAvIDgsCisrCQkJCQkgICAg ICAgdGhpc19zaXplLCBidWZmZXIuZGF0YSAoKSwKKysJCQkJCSAgICAgICAmb3B0aW0sICZ1bmF2 YWlsKSkKKysJCSAgeworKwkJICAgIGlmIChvcHRpbSkKKysJCSAgICAgIG1hcmtfdmFsdWVfYml0 c19vcHRpbWl6ZWRfb3V0ICh2LCBvZmZzZXQsCisrCQkJCQkJICAgICB0aGlzX3NpemVfYml0cyk7 CisrCQkgICAgaWYgKHVuYXZhaWwpCisrCQkgICAgICBtYXJrX3ZhbHVlX2JpdHNfdW5hdmFpbGFi bGUgKHYsIG9mZnNldCwKKysJCQkJCQkgICB0aGlzX3NpemVfYml0cyk7CisrCQkgICAgYnJlYWs7 CisrCQkgIH0KKysKKysJCWNvcHlfYml0d2lzZSAodl9jb250ZW50cywgb2Zmc2V0LAorKwkJCSAg ICAgIGJ1ZmZlci5kYXRhICgpLCBiaXRzX3RvX3NraXAgJSA4LAorKwkJCSAgICAgIHRoaXNfc2l6 ZV9iaXRzLCBiaXRzX2JpZ19lbmRpYW4pOworKwkgICAgICB9CisrCSAgICBlbHNlCisrCSAgICAg IHsKKysJCS8qIFdyaXRlIG1vZGUuICAqLworKwkJaWYgKGJpdHNfdG9fc2tpcCAlIDggIT0gMCB8 fCB0aGlzX3NpemVfYml0cyAlIDggIT0gMCkKKysJCSAgeworKwkJICAgIC8qIERhdGEgaXMgY29w aWVkIG5vbi1ieXRlLWFsaWduZWQgaW50byB0aGUgcmVnaXN0ZXIuCisrCQkgICAgICAgTmVlZCBz b21lIGJpdHMgZnJvbSBvcmlnaW5hbCByZWdpc3RlciB2YWx1ZS4gICovCisrCQkgICAgZ2V0X2Zy YW1lX3JlZ2lzdGVyX2J5dGVzIChmcmFtZSwgZ2RiX3JlZ251bSwKKysJCQkJCSAgICAgIGJpdHNf dG9fc2tpcCAvIDgsCisrCQkJCQkgICAgICB0aGlzX3NpemUsIGJ1ZmZlci5kYXRhICgpLAorKwkJ CQkJICAgICAgJm9wdGltLCAmdW5hdmFpbCk7CisrCQkgICAgaWYgKG9wdGltKQorKwkJICAgICAg dGhyb3dfZXJyb3IgKE9QVElNSVpFRF9PVVRfRVJST1IsCisrCQkJCSAgIF8oIkNhbid0IGRvIHJl YWQtbW9kaWZ5LXdyaXRlIHRvICIKKysJCQkJICAgICAidXBkYXRlIGJpdGZpZWxkOyBjb250YWlu aW5nIHdvcmQgIgorKwkJCQkgICAgICJoYXMgYmVlbiBvcHRpbWl6ZWQgb3V0IikpOworKwkJICAg IGlmICh1bmF2YWlsKQorKwkJICAgICAgdGhyb3dfZXJyb3IgKE5PVF9BVkFJTEFCTEVfRVJST1Is CisrCQkJCSAgIF8oIkNhbid0IGRvIHJlYWQtbW9kaWZ5LXdyaXRlIHRvICIKKysJCQkJICAgICAi dXBkYXRlIGJpdGZpZWxkOyBjb250YWluaW5nIHdvcmQgIgorKwkJCQkgICAgICJpcyB1bmF2YWls YWJsZSIpKTsKKysJCSAgfQorKworKwkJY29weV9iaXR3aXNlIChidWZmZXIuZGF0YSAoKSwgYml0 c190b19za2lwICUgOCwKKysJCQkgICAgICBmcm9tX2NvbnRlbnRzLCBvZmZzZXQsCisrCQkJICAg ICAgdGhpc19zaXplX2JpdHMsIGJpdHNfYmlnX2VuZGlhbik7CisrCQlwdXRfZnJhbWVfcmVnaXN0 ZXJfYnl0ZXMgKGZyYW1lLCBnZGJfcmVnbnVtLAorKwkJCQkJICBiaXRzX3RvX3NraXAgLyA4LAor KwkJCQkJICB0aGlzX3NpemUsIGJ1ZmZlci5kYXRhICgpKTsKKyAJICAgICAgfQorLQkgICAgY29w eV9iaXR3aXNlIChjb250ZW50cywgb2Zmc2V0LAorLQkJCSAgYnVmZmVyLmRhdGEgKCksIGJpdHNf dG9fc2tpcCAlIDgsCistCQkJICB0aGlzX3NpemVfYml0cywgYml0c19iaWdfZW5kaWFuKTsKKyAJ ICB9CisgCSAgYnJlYWs7CisgCisgCWNhc2UgRFdBUkZfVkFMVUVfTUVNT1JZOgorLQkgIGJpdHNf dG9fc2tpcCArPSBwLT5vZmZzZXQ7CistCSAgdGhpc19zaXplID0gYml0c190b19ieXRlcyAoYml0 c190b19za2lwLCB0aGlzX3NpemVfYml0cyk7CistCSAgYnVmZmVyLnJlc2VydmUgKHRoaXNfc2l6 ZSk7CistCistCSAgcmVhZF92YWx1ZV9tZW1vcnkgKHYsIG9mZnNldCwKKy0JCQkgICAgIHAtPnYu bWVtLmluX3N0YWNrX21lbW9yeSwKKy0JCQkgICAgIHAtPnYubWVtLmFkZHIgKyBiaXRzX3RvX3Nr aXAgLyA4LAorLQkJCSAgICAgYnVmZmVyLmRhdGEgKCksIHRoaXNfc2l6ZSk7CistCSAgY29weV9i aXR3aXNlIChjb250ZW50cywgb2Zmc2V0LAorLQkJCWJ1ZmZlci5kYXRhICgpLCBiaXRzX3RvX3Nr aXAgJSA4LAorLQkJCXRoaXNfc2l6ZV9iaXRzLCBiaXRzX2JpZ19lbmRpYW4pOworKwkgIHsKKysJ ICAgIGJpdHNfdG9fc2tpcCArPSBwLT5vZmZzZXQ7CisrCisrCSAgICBDT1JFX0FERFIgc3RhcnRf YWRkciA9IHAtPnYubWVtLmFkZHIgKyBiaXRzX3RvX3NraXAgLyA4OworKworKwkgICAgaWYgKGJp dHNfdG9fc2tpcCAlIDggPT0gMCAmJiB0aGlzX3NpemVfYml0cyAlIDggPT0gMAorKwkJJiYgb2Zm c2V0ICUgOCA9PSAwKQorKwkgICAgICB7CisrCQkvKiBFdmVyeXRoaW5nIGlzIGJ5dGUtYWxpZ25l ZDsgbm8gYnVmZmVyIG5lZWRlZC4gICovCisrCQlpZiAoZnJvbSAhPSBOVUxMKQorKwkJICB3cml0 ZV9tZW1vcnlfd2l0aF9ub3RpZmljYXRpb24gKHN0YXJ0X2FkZHIsCisrCQkJCQkJICAoZnJvbV9j b250ZW50cworKwkJCQkJCSAgICsgb2Zmc2V0IC8gOCksCisrCQkJCQkJICB0aGlzX3NpemVfYml0 cyAvIDgpOworKwkJZWxzZQorKwkJICByZWFkX3ZhbHVlX21lbW9yeSAodiwgb2Zmc2V0LAorKwkJ CQkgICAgIHAtPnYubWVtLmluX3N0YWNrX21lbW9yeSwKKysJCQkJICAgICBwLT52Lm1lbS5hZGRy ICsgYml0c190b19za2lwIC8gOCwKKysJCQkJICAgICB2X2NvbnRlbnRzICsgb2Zmc2V0IC8gOCwK KysJCQkJICAgICB0aGlzX3NpemVfYml0cyAvIDgpOworKwkJYnJlYWs7CisrCSAgICAgIH0KKysK KysJICAgIHRoaXNfc2l6ZSA9IGJpdHNfdG9fYnl0ZXMgKGJpdHNfdG9fc2tpcCwgdGhpc19zaXpl X2JpdHMpOworKwkgICAgYnVmZmVyLnJlc2VydmUgKHRoaXNfc2l6ZSk7CisrCisrCSAgICBpZiAo ZnJvbSA9PSBOVUxMKQorKwkgICAgICB7CisrCQkvKiBSZWFkIG1vZGUuICAqLworKwkJcmVhZF92 YWx1ZV9tZW1vcnkgKHYsIG9mZnNldCwKKysJCQkJICAgcC0+di5tZW0uaW5fc3RhY2tfbWVtb3J5 LAorKwkJCQkgICBwLT52Lm1lbS5hZGRyICsgYml0c190b19za2lwIC8gOCwKKysJCQkJICAgYnVm ZmVyLmRhdGEgKCksIHRoaXNfc2l6ZSk7CisrCQljb3B5X2JpdHdpc2UgKHZfY29udGVudHMsIG9m ZnNldCwKKysJCQkgICAgICBidWZmZXIuZGF0YSAoKSwgYml0c190b19za2lwICUgOCwKKysJCQkg ICAgICB0aGlzX3NpemVfYml0cywgYml0c19iaWdfZW5kaWFuKTsKKysJICAgICAgfQorKwkgICAg ZWxzZQorKwkgICAgICB7CisrCQkvKiBXcml0ZSBtb2RlLiAgKi8KKysJCWlmIChiaXRzX3RvX3Nr aXAgJSA4ICE9IDAgfHwgdGhpc19zaXplX2JpdHMgJSA4ICE9IDApCisrCQkgIHsKKysJCSAgICBp ZiAodGhpc19zaXplIDw9IDgpCisrCQkgICAgICB7CisrCQkJLyogUGVyZm9ybSBhIHNpbmdsZSBy ZWFkIGZvciBzbWFsbCBzaXplcy4gICovCisrCQkJcmVhZF9tZW1vcnkgKHN0YXJ0X2FkZHIsIGJ1 ZmZlci5kYXRhICgpLAorKwkJCQkgICAgIHRoaXNfc2l6ZSk7CisrCQkgICAgICB9CisrCQkgICAg ZWxzZQorKwkJICAgICAgeworKwkJCS8qIE9ubHkgdGhlIGZpcnN0IGFuZCBsYXN0IGJ5dGVzIGNh biBwb3NzaWJseSBoYXZlCisrCQkJICAgYW55IGJpdHMgcmV1c2VkLiAgKi8KKysJCQlyZWFkX21l bW9yeSAoc3RhcnRfYWRkciwgYnVmZmVyLmRhdGEgKCksIDEpOworKwkJCXJlYWRfbWVtb3J5IChz dGFydF9hZGRyICsgdGhpc19zaXplIC0gMSwKKysJCQkJICAgICAmYnVmZmVyW3RoaXNfc2l6ZSAt IDFdLCAxKTsKKysJCSAgICAgIH0KKysJCSAgfQorKworKwkJY29weV9iaXR3aXNlIChidWZmZXIu ZGF0YSAoKSwgYml0c190b19za2lwICUgOCwKKysJCQkgICAgICBmcm9tX2NvbnRlbnRzLCBvZmZz ZXQsCisrCQkJICAgICAgdGhpc19zaXplX2JpdHMsIGJpdHNfYmlnX2VuZGlhbik7CisrCQl3cml0 ZV9tZW1vcnlfd2l0aF9ub3RpZmljYXRpb24gKHN0YXJ0X2FkZHIsCisrCQkJCQkJYnVmZmVyLmRh dGEgKCksCisrCQkJCQkJdGhpc19zaXplKTsKKysJICAgICAgfQorKwkgIH0KKyAJICBicmVhazsK KyAKKyAJY2FzZSBEV0FSRl9WQUxVRV9TVEFDSzoKKyAJICB7CisrCSAgICBpZiAoZnJvbSAhPSBO VUxMKQorKwkgICAgICB7CisrCQltYXJrX3ZhbHVlX2JpdHNfb3B0aW1pemVkX291dCAodiwgb2Zm c2V0LCB0aGlzX3NpemVfYml0cyk7CisrCQlicmVhazsKKysJICAgICAgfQorKworIAkgICAgc3Ry dWN0IG9iamZpbGUgKm9iamZpbGUgPSBkd2FyZjJfcGVyX2N1X29iamZpbGUgKGMtPnBlcl9jdSk7 CisgCSAgICBzdHJ1Y3QgZ2RiYXJjaCAqb2JqZmlsZV9nZGJhcmNoID0gZ2V0X29iamZpbGVfYXJj aCAob2JqZmlsZSk7CisgCSAgICBVTE9OR0VTVCBzdGFja192YWx1ZV9zaXplX2JpdHMKK0BAIC0x ODc0LDcgKzE5OTUsNyBAQCByZWFkX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQorIAkg ICAgZWxzZQorIAkgICAgICBiaXRzX3RvX3NraXAgKz0gcC0+b2Zmc2V0OworIAorLQkgICAgY29w eV9iaXR3aXNlIChjb250ZW50cywgb2Zmc2V0LAorKwkgICAgY29weV9iaXR3aXNlICh2X2NvbnRl bnRzLCBvZmZzZXQsCisgCQkJICB2YWx1ZV9jb250ZW50c19hbGwgKHAtPnYudmFsdWUpLAorIAkJ CSAgYml0c190b19za2lwLAorIAkJCSAgdGhpc19zaXplX2JpdHMsIGJpdHNfYmlnX2VuZGlhbik7 CitAQCAtMTg4Myw2ICsyMDA0LDEyIEBAIHJlYWRfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUg KnYpCisgCisgCWNhc2UgRFdBUkZfVkFMVUVfTElURVJBTDoKKyAJICB7CisrCSAgICBpZiAoZnJv bSAhPSBOVUxMKQorKwkgICAgICB7CisrCQltYXJrX3ZhbHVlX2JpdHNfb3B0aW1pemVkX291dCAo diwgb2Zmc2V0LCB0aGlzX3NpemVfYml0cyk7CisrCQlicmVhazsKKysJICAgICAgfQorKworIAkg ICAgVUxPTkdFU1QgbGl0ZXJhbF9zaXplX2JpdHMgPSA4ICogcC0+di5saXRlcmFsLmxlbmd0aDsK KyAJICAgIHNpemVfdCBuID0gdGhpc19zaXplX2JpdHM7CisgCitAQCAtMTg5MywxNSArMjAyMCwy MSBAQCByZWFkX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQorIAkgICAgaWYgKG4gPiBs aXRlcmFsX3NpemVfYml0cyAtIGJpdHNfdG9fc2tpcCkKKyAJICAgICAgbiA9IGxpdGVyYWxfc2l6 ZV9iaXRzIC0gYml0c190b19za2lwOworIAorLQkgICAgY29weV9iaXR3aXNlIChjb250ZW50cywg b2Zmc2V0LAorKwkgICAgY29weV9iaXR3aXNlICh2X2NvbnRlbnRzLCBvZmZzZXQsCisgCQkJICBw LT52LmxpdGVyYWwuZGF0YSwgYml0c190b19za2lwLAorIAkJCSAgbiwgYml0c19iaWdfZW5kaWFu KTsKKyAJICB9CisgCSAgYnJlYWs7CisgCistCSAgLyogVGhlc2UgYml0cyBzaG93IHVwIGFzIHpl cm9zIC0tIGJ1dCBkbyBub3QgY2F1c2UgdGhlIHZhbHVlCistCSAgICAgdG8gYmUgY29uc2lkZXJl ZCBvcHRpbWl6ZWQtb3V0LiAgKi8KKyAJY2FzZSBEV0FSRl9WQUxVRV9JTVBMSUNJVF9QT0lOVEVS OgorKwkgICAgaWYgKGZyb20gIT0gTlVMTCkKKysJICAgICAgeworKwkJbWFya192YWx1ZV9iaXRz X29wdGltaXplZF9vdXQgKHYsIG9mZnNldCwgdGhpc19zaXplX2JpdHMpOworKwkJYnJlYWs7Cisr CSAgICAgIH0KKysKKysJICAvKiBUaGVzZSBiaXRzIHNob3cgdXAgYXMgemVyb3MgLS0gYnV0IGRv IG5vdCBjYXVzZSB0aGUgdmFsdWUgdG8KKysJICAgICBiZSBjb25zaWRlcmVkIG9wdGltaXplZC1v dXQuICAqLworIAkgIGJyZWFrOworIAorIAljYXNlIERXQVJGX1ZBTFVFX09QVElNSVpFRF9PVVQ6 CitAQCAtMTkxNywxNTQgKzIwNTAsMTcgQEAgcmVhZF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1 ZSAqdikKKyAgICAgfQorIH0KKyAKKysKKyBzdGF0aWMgdm9pZAorLXdyaXRlX3BpZWNlZF92YWx1 ZSAoc3RydWN0IHZhbHVlICp0bywgc3RydWN0IHZhbHVlICpmcm9tKQorK3JlYWRfcGllY2VkX3Zh bHVlIChzdHJ1Y3QgdmFsdWUgKnYpCisgeworLSAgaW50IGk7CistICBVTE9OR0VTVCBiaXRzX3Rv X3NraXA7CistICBMT05HRVNUIG9mZnNldCA9IDAsIG1heF9vZmZzZXQ7CistICBjb25zdCBnZGJf Ynl0ZSAqY29udGVudHM7CistICBzdHJ1Y3QgcGllY2VfY2xvc3VyZSAqYworLSAgICA9IChzdHJ1 Y3QgcGllY2VfY2xvc3VyZSAqKSB2YWx1ZV9jb21wdXRlZF9jbG9zdXJlICh0byk7CistICBzdGQ6 OnZlY3RvcjxnZGJfYnl0ZT4gYnVmZmVyOworLSAgaW50IGJpdHNfYmlnX2VuZGlhbgorLSAgICA9 IGdkYmFyY2hfYml0c19iaWdfZW5kaWFuIChnZXRfdHlwZV9hcmNoICh2YWx1ZV90eXBlICh0bykp KTsKKy0KKy0gIGNvbnRlbnRzID0gdmFsdWVfY29udGVudHMgKGZyb20pOworLSAgYml0c190b19z a2lwID0gOCAqIHZhbHVlX29mZnNldCAodG8pOworLSAgaWYgKHZhbHVlX2JpdHNpemUgKHRvKSkK Ky0gICAgeworLSAgICAgIGJpdHNfdG9fc2tpcCArPSAoOCAqIHZhbHVlX29mZnNldCAodmFsdWVf cGFyZW50ICh0bykpCistCQkgICAgICAgKyB2YWx1ZV9iaXRwb3MgKHRvKSk7CistICAgICAgLyog VXNlIHRoZSBsZWFzdCBzaWduaWZpY2FudCBiaXRzIG9mIEZST00uICAqLworLSAgICAgIGlmIChn ZGJhcmNoX2J5dGVfb3JkZXIgKGdldF90eXBlX2FyY2ggKHZhbHVlX3R5cGUgKGZyb20pKSkKKy0J ICA9PSBCRkRfRU5ESUFOX0JJRykKKy0JeworLQkgIG1heF9vZmZzZXQgPSA4ICogVFlQRV9MRU5H VEggKHZhbHVlX3R5cGUgKGZyb20pKTsKKy0JICBvZmZzZXQgPSBtYXhfb2Zmc2V0IC0gdmFsdWVf Yml0c2l6ZSAodG8pOworLQl9CistICAgICAgZWxzZQorLQltYXhfb2Zmc2V0ID0gdmFsdWVfYml0 c2l6ZSAodG8pOworLSAgIH0KKy0gIGVsc2UKKy0gICAgbWF4X29mZnNldCA9IDggKiBUWVBFX0xF TkdUSCAodmFsdWVfdHlwZSAodG8pKTsKKy0KKy0gIC8qIEFkdmFuY2UgdG8gdGhlIGZpcnN0IG5v bi1za2lwcGVkIHBpZWNlLiAgKi8KKy0gIGZvciAoaSA9IDA7IGkgPCBjLT5uX3BpZWNlcyAmJiBi aXRzX3RvX3NraXAgPj0gYy0+cGllY2VzW2ldLnNpemU7IGkrKykKKy0gICAgYml0c190b19za2lw IC09IGMtPnBpZWNlc1tpXS5zaXplOworLQorLSAgZm9yICg7IGkgPCBjLT5uX3BpZWNlcyAmJiBv ZmZzZXQgPCBtYXhfb2Zmc2V0OyBpKyspCistICAgIHsKKy0gICAgICBzdHJ1Y3QgZHdhcmZfZXhw cl9waWVjZSAqcCA9ICZjLT5waWVjZXNbaV07CistICAgICAgc2l6ZV90IHRoaXNfc2l6ZV9iaXRz LCB0aGlzX3NpemU7CistCistICAgICAgdGhpc19zaXplX2JpdHMgPSBwLT5zaXplIC0gYml0c190 b19za2lwOworLSAgICAgIGlmICh0aGlzX3NpemVfYml0cyA+IG1heF9vZmZzZXQgLSBvZmZzZXQp CistCXRoaXNfc2l6ZV9iaXRzID0gbWF4X29mZnNldCAtIG9mZnNldDsKKy0KKy0gICAgICBzd2l0 Y2ggKHAtPmxvY2F0aW9uKQorLQl7CistCWNhc2UgRFdBUkZfVkFMVUVfUkVHSVNURVI6CistCSAg eworLQkgICAgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lID0gZnJhbWVfZmluZF9ieV9pZCAoYy0+ ZnJhbWVfaWQpOworLQkgICAgc3RydWN0IGdkYmFyY2ggKmFyY2ggPSBnZXRfZnJhbWVfYXJjaCAo ZnJhbWUpOworLQkgICAgaW50IGdkYl9yZWdudW0gPSBkd2FyZl9yZWdfdG9fcmVnbnVtX29yX2Vy cm9yIChhcmNoLCBwLT52LnJlZ25vKTsKKy0JICAgIFVMT05HRVNUIHJlZ19iaXRzID0gOCAqIHJl Z2lzdGVyX3NpemUgKGFyY2gsIGdkYl9yZWdudW0pOworLQorLQkgICAgaWYgKGdkYmFyY2hfYnl0 ZV9vcmRlciAoYXJjaCkgPT0gQkZEX0VORElBTl9CSUcKKy0JCSYmIHAtPm9mZnNldCArIHAtPnNp emUgPCByZWdfYml0cykKKy0JICAgICAgeworLQkJLyogQmlnLWVuZGlhbiwgYW5kIHdlIHdhbnQg bGVzcyB0aGFuIGZ1bGwgc2l6ZS4gICovCistCQliaXRzX3RvX3NraXAgKz0gcmVnX2JpdHMgLSAo cC0+b2Zmc2V0ICsgcC0+c2l6ZSk7CistCSAgICAgIH0KKy0JICAgIGVsc2UKKy0JICAgICAgYml0 c190b19za2lwICs9IHAtPm9mZnNldDsKKy0KKy0JICAgIHRoaXNfc2l6ZSA9IGJpdHNfdG9fYnl0 ZXMgKGJpdHNfdG9fc2tpcCwgdGhpc19zaXplX2JpdHMpOworLQkgICAgYnVmZmVyLnJlc2VydmUg KHRoaXNfc2l6ZSk7CistCistCSAgICBpZiAoYml0c190b19za2lwICUgOCAhPSAwIHx8IHRoaXNf c2l6ZV9iaXRzICUgOCAhPSAwKQorLQkgICAgICB7CistCQkvKiBEYXRhIGlzIGNvcGllZCBub24t Ynl0ZS1hbGlnbmVkIGludG8gdGhlIHJlZ2lzdGVyLgorLQkJICAgTmVlZCBzb21lIGJpdHMgZnJv bSBvcmlnaW5hbCByZWdpc3RlciB2YWx1ZS4gICovCistCQlpbnQgb3B0aW0sIHVuYXZhaWw7Cist CistCQlpZiAoIWdldF9mcmFtZV9yZWdpc3Rlcl9ieXRlcyAoZnJhbWUsIGdkYl9yZWdudW0sCist CQkJCQkgICAgICAgYml0c190b19za2lwIC8gOCwKKy0JCQkJCSAgICAgICB0aGlzX3NpemUsIGJ1 ZmZlci5kYXRhICgpLAorLQkJCQkJICAgICAgICZvcHRpbSwgJnVuYXZhaWwpKQorLQkJICB7Cist CQkgICAgaWYgKG9wdGltKQorLQkJICAgICAgdGhyb3dfZXJyb3IgKE9QVElNSVpFRF9PVVRfRVJS T1IsCistCQkJCSAgIF8oIkNhbid0IGRvIHJlYWQtbW9kaWZ5LXdyaXRlIHRvICIKKy0JCQkJICAg ICAidXBkYXRlIGJpdGZpZWxkOyBjb250YWluaW5nIHdvcmQgIgorLQkJCQkgICAgICJoYXMgYmVl biBvcHRpbWl6ZWQgb3V0IikpOworLQkJICAgIGlmICh1bmF2YWlsKQorLQkJICAgICAgdGhyb3df ZXJyb3IgKE5PVF9BVkFJTEFCTEVfRVJST1IsCistCQkJCSAgIF8oIkNhbid0IGRvIHJlYWQtbW9k aWZ5LXdyaXRlIHRvIHVwZGF0ZSAiCistCQkJCSAgICAgImJpdGZpZWxkOyBjb250YWluaW5nIHdv cmQgIgorLQkJCQkgICAgICJpcyB1bmF2YWlsYWJsZSIpKTsKKy0JCSAgfQorLQkgICAgICB9Cist CistCSAgICBjb3B5X2JpdHdpc2UgKGJ1ZmZlci5kYXRhICgpLCBiaXRzX3RvX3NraXAgJSA4LAor LQkJCSAgY29udGVudHMsIG9mZnNldCwKKy0JCQkgIHRoaXNfc2l6ZV9iaXRzLCBiaXRzX2JpZ19l bmRpYW4pOworLQkgICAgcHV0X2ZyYW1lX3JlZ2lzdGVyX2J5dGVzIChmcmFtZSwgZ2RiX3JlZ251 bSwKKy0JCQkJICAgICAgYml0c190b19za2lwIC8gOCwKKy0JCQkJICAgICAgdGhpc19zaXplLCBi dWZmZXIuZGF0YSAoKSk7CistCSAgfQorLQkgIGJyZWFrOworLQljYXNlIERXQVJGX1ZBTFVFX01F TU9SWToKKy0JICB7CistCSAgICBiaXRzX3RvX3NraXAgKz0gcC0+b2Zmc2V0OworLQorLQkgICAg Q09SRV9BRERSIHN0YXJ0X2FkZHIgPSBwLT52Lm1lbS5hZGRyICsgYml0c190b19za2lwIC8gODsK Ky0KKy0JICAgIGlmIChiaXRzX3RvX3NraXAgJSA4ID09IDAgJiYgdGhpc19zaXplX2JpdHMgJSA4 ID09IDAKKy0JCSYmIG9mZnNldCAlIDggPT0gMCkKKy0JICAgICAgeworLQkJLyogRXZlcnl0aGlu ZyBpcyBieXRlLWFsaWduZWQ7IG5vIGJ1ZmZlciBuZWVkZWQuICAqLworLQkJd3JpdGVfbWVtb3J5 X3dpdGhfbm90aWZpY2F0aW9uIChzdGFydF9hZGRyLAorLQkJCQkJCWNvbnRlbnRzICsgb2Zmc2V0 IC8gOCwKKy0JCQkJCQl0aGlzX3NpemVfYml0cyAvIDgpOworLQkJYnJlYWs7CistCSAgICAgIH0K Ky0KKy0JICAgIHRoaXNfc2l6ZSA9IGJpdHNfdG9fYnl0ZXMgKGJpdHNfdG9fc2tpcCwgdGhpc19z aXplX2JpdHMpOworLQkgICAgYnVmZmVyLnJlc2VydmUgKHRoaXNfc2l6ZSk7CistCistCSAgICBp ZiAoYml0c190b19za2lwICUgOCAhPSAwIHx8IHRoaXNfc2l6ZV9iaXRzICUgOCAhPSAwKQorLQkg ICAgICB7CistCQlpZiAodGhpc19zaXplIDw9IDgpCistCQkgIHsKKy0JCSAgICAvKiBQZXJmb3Jt IGEgc2luZ2xlIHJlYWQgZm9yIHNtYWxsIHNpemVzLiAgKi8KKy0JCSAgICByZWFkX21lbW9yeSAo c3RhcnRfYWRkciwgYnVmZmVyLmRhdGEgKCksIHRoaXNfc2l6ZSk7CistCQkgIH0KKy0JCWVsc2UK Ky0JCSAgeworLQkJICAgIC8qIE9ubHkgdGhlIGZpcnN0IGFuZCBsYXN0IGJ5dGVzIGNhbiBwb3Nz aWJseSBoYXZlIGFueQorLQkJICAgICAgIGJpdHMgcmV1c2VkLiAgKi8KKy0JCSAgICByZWFkX21l bW9yeSAoc3RhcnRfYWRkciwgYnVmZmVyLmRhdGEgKCksIDEpOworLQkJICAgIHJlYWRfbWVtb3J5 IChzdGFydF9hZGRyICsgdGhpc19zaXplIC0gMSwKKy0JCQkJICZidWZmZXJbdGhpc19zaXplIC0g MV0sIDEpOworLQkJICB9CistCSAgICAgIH0KKysgIHJ3X3BpZWNlZF92YWx1ZSAodiwgTlVMTCk7 CisrfQorIAorLQkgICAgY29weV9iaXR3aXNlIChidWZmZXIuZGF0YSAoKSwgYml0c190b19za2lw ICUgOCwKKy0JCQkgIGNvbnRlbnRzLCBvZmZzZXQsCistCQkJICB0aGlzX3NpemVfYml0cywgYml0 c19iaWdfZW5kaWFuKTsKKy0JICAgIHdyaXRlX21lbW9yeV93aXRoX25vdGlmaWNhdGlvbiAoc3Rh cnRfYWRkciwgYnVmZmVyLmRhdGEgKCksCistCQkJCQkgICAgdGhpc19zaXplKTsKKy0JICB9Cist CSAgYnJlYWs7CistCWRlZmF1bHQ6CistCSAgbWFya192YWx1ZV9ieXRlc19vcHRpbWl6ZWRfb3V0 ICh0bywgMCwgVFlQRV9MRU5HVEggKHZhbHVlX3R5cGUgKHRvKSkpOworLQkgIGJyZWFrOworLQl9 CistICAgICAgb2Zmc2V0ICs9IHRoaXNfc2l6ZV9iaXRzOworLSAgICAgIGJpdHNfdG9fc2tpcCA9 IDA7CistICAgIH0KKytzdGF0aWMgdm9pZAorK3dyaXRlX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZh bHVlICp0bywgc3RydWN0IHZhbHVlICpmcm9tKQorK3sKKysgIHJ3X3BpZWNlZF92YWx1ZSAodG8s IGZyb20pOworIH0KKyAKKyAvKiBBbiBpbXBsZW1lbnRhdGlvbiBvZiBhbiBsdmFsX2Z1bmNzIG1l dGhvZCB0byBzZWUgd2hldGhlciBhIHZhbHVlIGlzCgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYnoxNDIw MzA0LXMzOTB4LTI4b2YzNS5wYXRjaCBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0yOG9mMzUucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjdkZDI4YgotLS0gL2Rldi9u dWxsCisrKyBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0yOG9mMzUucGF0Y2gKQEAgLTAsMCArMSw2 MCBAQAorY29tbWl0IDU1MjRiNTI1MGUzMTlmNDE5MzM2MDU0MjBlOTUyNmZiNzRjZmI5YWUKK0F1 dGhvcjogQW5kcmVhcyBBcm5leiA8YXJuZXpAbGludXgudm5ldC5pYm0uY29tPgorRGF0ZTogICBX ZWQgSnVuIDE0IDE0OjI0OjAzIDIwMTcgKzAyMDAKKworICAgIEZpeCByZWdpc3RlciBzZWxlY3Rp b24gaW4gdmFyLWFjY2Vzcy5leHAKKyAgICAKKyAgICBUaGUgbmV3IHRlc3QgdmFyLWFjY2Vzcy5l eHAgY2F1c2VzIEZBSUxzIG9uIGk2ODYuICBUaGlzIGlzIGJlY2F1c2UgdGhlCisgICAgdGVzdCBj aG9vc2VzIHRoZSB3cm9uZyBuYW1lIGZvciBEV0FSRiByZWdpc3RlciBudW1iZXIgMTogSXQgdXNl cworICAgICJlZHgiICh3aGljaCBjb3JyZXNwb25kcyB0byBEV0FSRiByZWdpc3RlciBudW1iZXIg MiksIGJ1dCBzaG91bGQgaGF2ZSB1c2VkCisgICAgImVjeCIgaW5zdGVhZC4KKyAgICAKKyAgICBB bHNvLCB0aGUgY3VycmVudCBsb2dpYyBpbiB2YXItYWNjZXNzLmV4cCBkb2VzIG5vdCBjb3JyZWN0 bHkgZGlzdGluZ3Vpc2gKKyAgICBiZXR3ZWVuIGEgNjQtYml0IGFuZCBhIDMyLWJpdCBwcm9ncmFt IG9uIGFuIHg4Ni02NCB0YXJnZXQuICBJdCB1c2VzIHRoZQorICAgIDY0LWJpdCByZWdpc3RlciBu YW1lcyBmb3IgYm90aC4KKyAgICAKKyAgICBUaGVzZSBwcm9ibGVtcyBhcmUgZml4ZWQuICBJbiBv cmRlciB0byBhZGRyZXNzIHRoZSBsYXR0ZXIsIHRoZSBjb252ZW5pZW5jZQorICAgIG1hY3JvcyBp c18qX3RhcmdldCBhcmUgZXhwbG9pdGVkIHdoZXJlIGFwcHJvcHJpYXRlLgorICAgIAorICAgIGdk Yi90ZXN0c3VpdGUvQ2hhbmdlTG9nOgorICAgIAorICAgICAgICAgICAgKiBnZGIuZHdhcmYyL3Zh ci1hY2Nlc3MuZXhwOiBVc2UgcmVnaXN0ZXIgbmFtZSBlY3ggaW5zdGVhZCBvZiBlZHgKKyAgICAg ICAgICAgIG9uIDMyLWJpdCB4ODYgdGFyZ2V0cy4gIEV4cGxvaXQgaXNfKl90YXJnZXQgbWFjcm9z IHdoZXJlCisgICAgICAgICAgICBhcHByb3ByaWF0ZS4KKworIyMjIGEvZ2RiL3Rlc3RzdWl0ZS9D aGFuZ2VMb2cKKyMjIyBiL2dkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nCisjIyAtMSwzICsxLDkgQEAK KysyMDE3LTA2LTE0ICBBbmRyZWFzIEFybmV6ICA8YXJuZXpAbGludXgudm5ldC5pYm0uY29tPgor KworKwkqIGdkYi5kd2FyZjIvdmFyLWFjY2Vzcy5leHA6IFVzZSByZWdpc3RlciBuYW1lIGVjeCBp bnN0ZWFkIG9mIGVkeAorKwlvbiAzMi1iaXQgeDg2IHRhcmdldHMuICBFeHBsb2l0IGlzXypfdGFy Z2V0IG1hY3JvcyB3aGVyZQorKwlhcHByb3ByaWF0ZS4KKysKKyAyMDE3LTA2LTEzICBBbmRyZWFz IEFybmV6ICA8YXJuZXpAbGludXgudm5ldC5pYm0uY29tPgorIAorIAkqIGdkYi5kd2FyZjIvdmFy LWFjY2Vzcy5leHA6IEFkZCB0ZXN0IGZvciBub24tYnl0ZS1hbGlnbmVkCistLS0gYS9nZGIvdGVz dHN1aXRlL2dkYi5kd2FyZjIvdmFyLWFjY2Vzcy5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2Ri LmR3YXJmMi92YXItYWNjZXNzLmV4cAorQEAgLTI4LDE2ICsyOCwxNiBAQCBpZiB7IVtkd2FyZjJf c3VwcG9ydF19IHsKKyAKKyBzZXQgZHdhcmZfcmVnbnVtIHswIDF9CisgCistaWYgeyBbaXN0YXJn ZXQgImFhcmNoNjQqLSotKiJdIH0geworK2lmIHsgW2lzX2FhcmNoNjRfdGFyZ2V0XSB9IHsKKyAg ICAgc2V0IHJlZ25hbWUge3gwIHgxfQorLX0gZWxzZWlmIHsgW2lzdGFyZ2V0ICJhcm0qLSotKiJd CisrfSBlbHNlaWYgeyBbaXNfYWFyY2gzMl90YXJnZXRdCisgCSAgIHx8IFtpc3RhcmdldCAiczM5 MCotKi0qIiBdCisgCSAgIHx8IFtpc3RhcmdldCAicG93ZXJwYyotKi0qIl0KKyAJICAgfHwgW2lz dGFyZ2V0ICJyczYwMDAqLSotYWl4KiJdIH0geworICAgICBzZXQgcmVnbmFtZSB7cjAgcjF9Cist fSBlbHNlaWYgeyBbaXN0YXJnZXQgImk/ODYtKi0qIl0gfSB7CistICAgIHNldCByZWduYW1lIHtl YXggZWR4fQorLX0gZWxzZWlmIHsgW2lzdGFyZ2V0ICJ4ODZfNjQtKi0qIl0gfSB7CisrfSBlbHNl aWYgeyBbaXNfeDg2X2xpa2VfdGFyZ2V0XSB9IHsKKysgICAgc2V0IHJlZ25hbWUge2VheCBlY3h9 CisrfSBlbHNlaWYgeyBbaXNfYW1kNjRfcmVnc190YXJnZXRdIH0geworICAgICBzZXQgcmVnbmFt ZSB7cmF4IHJkeH0KKyB9IGVsc2UgeworICAgICB2ZXJib3NlICJTa2lwcGluZyB0ZXN0cyBmb3Ig YWNjZXNzaW5nIERXQVJGLWRlc2NyaWJlZCB2YXJpYWJsZXMuIgoKZGlmZiAtLWdpdCBhL2dkYi1y aGJ6MTQyMDMwNC1zMzkweC0yOW9mMzUucGF0Y2ggYi9nZGItcmhiejE0MjAzMDQtczM5MHgtMjlv ZjM1LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjllOTMxMmUKLS0t IC9kZXYvbnVsbAorKysgYi9nZGItcmhiejE0MjAzMDQtczM5MHgtMjlvZjM1LnBhdGNoCkBAIC0w LDAgKzEsMTk3IEBACitjb21taXQgYjRjYmJlOGY3Mjk0MDcwY2M5M2E3MWFjZTc4ZjEzNDk2NWRk YWQ4MgorQXV0aG9yOiBBbmRyZWFzIEtyZWJiZWwgPGtyZWJiZWxAbGludXgudm5ldC5pYm0uY29t PgorRGF0ZTogICBUaHUgSnVuIDggMTc6MjQ6NTAgMjAxNyArMDIwMAorCisgICAgUy8zOTA6IEFk ZCBzdXBwb3J0IGZvciBwZ3N0ZSBtYXJrZXIKKyAgICAKKyAgICBUaGlzIHBhdGNoIGFkZHMgYSBu ZXcgUy8zOTAgc3BlY2lmaWMgc2VnbWVudCB0eXBlOiBQVF9TMzkwX1BHU1RFLiAgRm9yCisgICAg YmluYXJpZXMgbWFya2VkIHdpdGggdGhhdCBzZWdtZW50IHRoZSBrZXJuZWwgd2lsbCBhbGxvY2F0 ZSA0ayBwYWdlCisgICAgdGFibGVzLiAgVGhlIG9ubHkgdXNlciBzbyBmYXIgd2lsbCBiZSBxZW11 LgorICAgIAorICAgIGxkL0NoYW5nZUxvZzoKKyAgICAKKyAgICAyMDE3LTA2LTIzICBBbmRyZWFz IEtyZWJiZWwgIDxrcmViYmVsQGxpbnV4LnZuZXQuaWJtLmNvbT4KKyAgICAKKyAgICAgICAgICAg ICogTWFrZWZpbGUuaW46IEFkZCBzMzkwLmVtIGFzIGJ1aWxkIGRlcGVuZGVuY3kuCisgICAgICAg ICAgICAqIGVtdWxwYXJhbXMvZWxmNjRfczM5MC5zaCAoRVhUUkFfRU1fRklMRSk6IEFkZCBzMzkw LmVtLgorICAgICAgICAgICAgKiBlbXVsdGVtcGwvczM5MC5lbTogTmV3IGZpbGUuCisgICAgICAg ICAgICAqIGdlbi1kb2MudGV4aTogQWRkIGRvY3VtZW50YXRpb24gZm9yIC0tczM5MC1wZ3N0ZSBv cHRpb24uCisgICAgICAgICAgICAqIGxkLnRleGluZm86IExpa2V3aXNlLgorICAgIAorICAgIGlu Y2x1ZGUvQ2hhbmdlTG9nOgorICAgIAorICAgIDIwMTctMDYtMjMgIEFuZHJlYXMgS3JlYmJlbCAg PGtyZWJiZWxAbGludXgudm5ldC5pYm0uY29tPgorICAgIAorICAgICAgICAgICAgKiBlbGYvczM5 MC5oIChQVF9TMzkwX1BHU1RFKTogRGVmaW5lIG1hY3JvLgorICAgIAorICAgIGJpbnV0aWxzL0No YW5nZUxvZzoKKyAgICAKKyAgICAyMDE3LTA2LTIzICBBbmRyZWFzIEtyZWJiZWwgIDxrcmViYmVs QGxpbnV4LnZuZXQuaWJtLmNvbT4KKyAgICAKKyAgICAgICAgICAgICogcmVhZGVsZi5jIChnZXRf czM5MF9zZWdtZW50X3R5cGUpOiBBZGQgc3VwcG9ydCBmb3IgdGhlIG5ldworICAgICAgICAgICAg c2VnbWVudCB0eXBlIFBUX1MzOTBfUEdTVEUuCisgICAgICAgICAgICAoZ2V0X3NlZ21lbnRfdHlw ZSk6IENhbGwgZ2V0X3MzOTBfc2VnbWVudF90eXBlLgorICAgIAorICAgIGVsZmNwcC9DaGFuZ2VM b2c6CisgICAgCisgICAgMjAxNy0wNi0yMyAgQW5kcmVhcyBLcmViYmVsICA8a3JlYmJlbEBsaW51 eC52bmV0LmlibS5jb20+CisgICAgCisgICAgICAgICAgICAqIGVsZmNwcC5oIChlbnVtIFBUKTog QWRkIFBUX1MzOTBfUEdTVEUgdG8gZW51bS4KKyAgICAKKyAgICBiZmQvQ2hhbmdlTG9nOgorICAg IAorICAgIDIwMTctMDYtMjMgIEFuZHJlYXMgS3JlYmJlbCAgPGtyZWJiZWxAbGludXgudm5ldC5p Ym0uY29tPgorICAgIAorICAgICAgICAgICAgKiBlbGYtczM5MC5oOiBOZXcgZmlsZS4KKyAgICAg ICAgICAgICogZWxmNjQtczM5MC5jIChzdHJ1Y3QgZWxmX3MzOTBfbGlua19oYXNoX3RhYmxlKTog QWRkIHBhcmFtcworICAgICAgICAgICAgZmllbGQuCisgICAgICAgICAgICAoZWxmX3MzOTBfYWRk aXRpb25hbF9wcm9ncmFtX2hlYWRlcnMpOiBOZXcgZnVuY3Rpb24uCisgICAgICAgICAgICAoZWxm X3MzOTBfbW9kaWZ5X3NlZ21lbnRfbWFwKTogTmV3IGZ1bmN0aW9uLgorICAgICAgICAgICAgKGJm ZF9lbGZfczM5MF9zZXRfb3B0aW9ucyk6IE5ldyBmdW5jdGlvbi4KKyAgICAgICAgICAgIChlbGZf YmFja2VuZF9hZGRpdGlvbmFsX3Byb2dyYW1faGVhZGVycykKKyAgICAgICAgICAgIChlbGZfYmFj a2VuZF9tb2RpZnlfc2VnbWVudF9tYXApOiBBZGQgbWFjcm8gZGVmaW5pdGlvbnMuCisKKy0tLSAv ZGV2L251bGwKKysrKyBiL2JmZC9lbGYtczM5MC5oCitAQCAtMCwwICsxLDI5IEBACisrLyogUy8z OTAtc3BlY2lmaWMgc3VwcG9ydCBmb3IgRUxGLgorKyAgIENvcHlyaWdodCAoQykgMjAxNyBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysgICBUaGlzIGZpbGUgaXMgcGFydCBvZiBC RkQsIHRoZSBCaW5hcnkgRmlsZSBEZXNjcmlwdG9yIGxpYnJhcnkuCisrCisrICAgVGhpcyBwcm9n cmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2Rp ZnkKKysgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFzIHB1Ymxpc2hlZCBieQorKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp dGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrICAgKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyc2lvbi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5U QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysg ICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlv dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlCisrICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhl IEZyZWUgU29mdHdhcmUKKysgICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQg LSBGaWZ0aCBGbG9vciwgQm9zdG9uLAorKyAgIE1BIDAyMTEwLTEzMDEsIFVTQS4gICovCisrCisr LyogVXNlZCB0byBwYXNzIGluZm8gYmV0d2VlbiBsZCBhbmQgYmZkLiAgKi8KKytzdHJ1Y3QgczM5 MF9lbGZfcGFyYW1zCisreworKyAgLyogVGVsbCB0aGUga2VybmVsIHRvIGFsbG9jYXRlIDRrIHBh Z2UgdGFibGVzLiAgKi8KKysgIGludCBwZ3N0ZTsKKyt9OworKworK2JmZF9ib29sZWFuIGJmZF9l bGZfczM5MF9zZXRfb3B0aW9ucyAoc3RydWN0IGJmZF9saW5rX2luZm8gKmluZm8sCisrCQkJCSAg ICAgIHN0cnVjdCBzMzkwX2VsZl9wYXJhbXMgKnBhcmFtcyk7CistLS0gYS9iZmQvZWxmNjQtczM5 MC5jCisrKysgYi9iZmQvZWxmNjQtczM5MC5jCitAQCAtMjUsNiArMjUsNyBAQAorICNpbmNsdWRl ICJsaWJiZmQuaCIKKyAjaW5jbHVkZSAiZWxmLWJmZC5oIgorICNpbmNsdWRlICJlbGYvczM5MC5o IgorKyNpbmNsdWRlICJlbGYtczM5MC5oIgorICNpbmNsdWRlIDxzdGRhcmcuaD4KKyAKKyAvKiBJ biBjYXNlIHdlJ3JlIG9uIGEgMzItYml0IG1hY2hpbmUsIGNvbnN0cnVjdCBhIDY0LWJpdCAiLTEi IHZhbHVlCitAQCAtNjYwLDYgKzY2MSw5IEBAIHN0cnVjdCBlbGZfczM5MF9saW5rX2hhc2hfdGFi bGUKKyAKKyAgIC8qIFNtYWxsIGxvY2FsIHN5bSBjYWNoZS4gICovCisgICBzdHJ1Y3Qgc3ltX2Nh Y2hlIHN5bV9jYWNoZTsKKysKKysgIC8qIE9wdGlvbnMgcGFzc2VkIGZyb20gdGhlIGxpbmtlci4g ICovCisrICBzdHJ1Y3QgczM5MF9lbGZfcGFyYW1zICpwYXJhbXM7CisgfTsKKyAKKyAvKiBHZXQg dGhlIHMzOTAgRUxGIGxpbmtlciBoYXNoIHRhYmxlIGZyb20gYSBsaW5rX2luZm8gc3RydWN0dXJl LiAgKi8KK0BAIC0zOTY2LDYgKzM5NzAsNzAgQEAgZWxmNjRfczM5MF9tZXJnZV9wcml2YXRlX2Jm ZF9kYXRhIChiZmQgKmliZmQsIHN0cnVjdCBiZmRfbGlua19pbmZvICppbmZvKQorICAgcmV0dXJu IGVsZl9zMzkwX21lcmdlX29ial9hdHRyaWJ1dGVzIChpYmZkLCBpbmZvKTsKKyB9CisgCisrLyog V2UgbWF5IGFkZCBhIFBUX1MzOTBfUEdTVEUgcHJvZ3JhbSBoZWFkZXIuICAqLworKworK3N0YXRp YyBpbnQKKytlbGZfczM5MF9hZGRpdGlvbmFsX3Byb2dyYW1faGVhZGVycyAoYmZkICphYmZkIEFU VFJJQlVURV9VTlVTRUQsCisrCQkJCSAgICAgc3RydWN0IGJmZF9saW5rX2luZm8gKmluZm8pCisr eworKyAgc3RydWN0IGVsZl9zMzkwX2xpbmtfaGFzaF90YWJsZSAqaHRhYjsKKysKKysgIGh0YWIg PSBlbGZfczM5MF9oYXNoX3RhYmxlIChpbmZvKTsKKysgIHJldHVybiBodGFiLT5wYXJhbXMtPnBn c3RlOworK30KKysKKysKKysvKiBBZGQgdGhlIFBUX1MzOTBfUEdTVEUgcHJvZ3JhbSBoZWFkZXIu ICAqLworKworK3N0YXRpYyBiZmRfYm9vbGVhbgorK2VsZl9zMzkwX21vZGlmeV9zZWdtZW50X21h cCAoYmZkICphYmZkIEFUVFJJQlVURV9VTlVTRUQsCisrCQkJICAgICBzdHJ1Y3QgYmZkX2xpbmtf aW5mbyAqaW5mbykKKyt7CisrICBzdHJ1Y3QgZWxmX3MzOTBfbGlua19oYXNoX3RhYmxlICpodGFi OworKyAgc3RydWN0IGVsZl9zZWdtZW50X21hcCAqbSwgKnBtID0gTlVMTDsKKysKKysgIGh0YWIg PSBlbGZfczM5MF9oYXNoX3RhYmxlIChpbmZvKTsKKysgIGlmICghaHRhYi0+cGFyYW1zLT5wZ3N0 ZSkKKysgICAgcmV0dXJuIFRSVUU7CisrCisrICAvKiBJZiB0aGVyZSBpcyBhbHJlYWR5IGEgUFRf UzM5MF9QR1NURSBoZWFkZXIsIGF2b2lkIGFkZGluZworKyAgICAgYW5vdGhlci4gICovCisrICBt ID0gZWxmX3NlZ19tYXAgKGFiZmQpOworKyAgd2hpbGUgKG0gJiYgbS0+cF90eXBlICE9IFBUX1Mz OTBfUEdTVEUpCisrICAgIHsKKysgICAgICBwbSA9IG07CisrICAgICAgbSA9IG0tPm5leHQ7Cisr ICAgIH0KKysKKysgIGlmIChtKQorKyAgICByZXR1cm4gVFJVRTsKKysKKysgIG0gPSAoc3RydWN0 IGVsZl9zZWdtZW50X21hcCAqKQorKyAgICBiZmRfemFsbG9jIChhYmZkLCBzaXplb2YgKHN0cnVj dCBlbGZfc2VnbWVudF9tYXApKTsKKysgIGlmIChtID09IE5VTEwpCisrICAgIHJldHVybiBGQUxT RTsKKysgIG0tPnBfdHlwZSA9IFBUX1MzOTBfUEdTVEU7CisrICBtLT5jb3VudCA9IDA7CisrICBt LT5uZXh0ID0gTlVMTDsKKysgIGlmIChwbSkKKysgICAgcG0tPm5leHQgPSBtOworKworKyAgcmV0 dXJuIFRSVUU7CisrfQorKworK2JmZF9ib29sZWFuCisrYmZkX2VsZl9zMzkwX3NldF9vcHRpb25z IChzdHJ1Y3QgYmZkX2xpbmtfaW5mbyAqaW5mbywKKysJCQkgIHN0cnVjdCBzMzkwX2VsZl9wYXJh bXMgKnBhcmFtcykKKyt7CisrICBzdHJ1Y3QgZWxmX3MzOTBfbGlua19oYXNoX3RhYmxlICpodGFi OworKworKyAgaHRhYiA9IGVsZl9zMzkwX2hhc2hfdGFibGUgKGluZm8pOworKyAgaHRhYi0+cGFy YW1zID0gcGFyYW1zOworKworKyAgcmV0dXJuIFRSVUU7CisrfQorKworKworIC8qIFdoeSB3YXMg dGhlIGhhc2ggdGFibGUgZW50cnkgc2l6ZSBkZWZpbml0aW9uIGNoYW5nZWQgZnJvbQorICAgIEFS Q0hfU0laRS84IHRvIDQ/IFRoaXMgYnJlYWtzIHRoZSA2NCBiaXQgZHluYW1pYyBsaW5rZXIgYW5k CisgICAgdGhpcyBpcyB0aGUgb25seSByZWFzb24gZm9yIHRoZSBzMzkwX2VsZjY0X3NpemVfaW5m byBzdHJ1Y3R1cmUuICAqLworQEAgLTQwNDYsNiArNDExNCw4IEBAIGNvbnN0IHN0cnVjdCBlbGZf c2l6ZV9pbmZvIHMzOTBfZWxmNjRfc2l6ZV9pbmZvID0KKyAjZGVmaW5lIGVsZl9iYWNrZW5kX3Bs dF9zeW1fdmFsCQkgICAgICBlbGZfczM5MF9wbHRfc3ltX3ZhbAorICNkZWZpbmUgZWxmX2JhY2tl bmRfYWRkX3N5bWJvbF9ob29rICAgICAgICAgICBlbGZfczM5MF9hZGRfc3ltYm9sX2hvb2sKKyAj ZGVmaW5lIGVsZl9iYWNrZW5kX3NvcnRfcmVsb2NzX3AgICAgICAgICAgICAgZWxmX3MzOTBfZWxm X3NvcnRfcmVsb2NzX3AKKysjZGVmaW5lIGVsZl9iYWNrZW5kX2FkZGl0aW9uYWxfcHJvZ3JhbV9o ZWFkZXJzIGVsZl9zMzkwX2FkZGl0aW9uYWxfcHJvZ3JhbV9oZWFkZXJzCisrI2RlZmluZSBlbGZf YmFja2VuZF9tb2RpZnlfc2VnbWVudF9tYXAJICAgICAgZWxmX3MzOTBfbW9kaWZ5X3NlZ21lbnRf bWFwCisgCisgI2RlZmluZSBiZmRfZWxmNjRfbWtvYmplY3QJCWVsZl9zMzkwX21rb2JqZWN0Cisg I2RlZmluZSBlbGZfYmFja2VuZF9vYmplY3RfcAkJZWxmX3MzOTBfb2JqZWN0X3AKKy0tLSBhL2lu Y2x1ZGUvZWxmL3MzOTAuaAorKysrIGIvaW5jbHVkZS9lbGYvczM5MC5oCitAQCAtMzcsNiArMzcs OSBAQAorIAorICNkZWZpbmUgRUZfUzM5MF9ISUdIX0dQUlMgICAgICAgIDB4MDAwMDAwMDEKKyAK KysvKiBSZXF1ZXN0IDRrIHBhZ2UgdGFibGUgc2l6ZS4gICovCisrI2RlZmluZSBQVF9TMzkwX1BH U1RFIChQVF9MT1BST0MgKyAwKQorKworIC8qIFJlbG9jYXRpb24gdHlwZXMuICAqLworIAorIFNU QVJUX1JFTE9DX05VTUJFUlMgKGVsZl9zMzkwX3JlbG9jX3R5cGUpCgpkaWZmIC0tZ2l0IGEvZ2Ri LXJoYnoxNDIwMzA0LXMzOTB4LTMwb2YzNS5wYXRjaCBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0z MG9mMzUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDU2ZTRkMwot LS0gL2Rldi9udWxsCisrKyBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0zMG9mMzUucGF0Y2gKQEAg LTAsMCArMSw4NSBAQAorY29tbWl0IDkzZWM1ZTIzNzY2YTlmNzVhYTQ5NTA3NDhjZjczOTY0MDI4 YThkMWIKK0F1dGhvcjogQW5kcmVhcyBLcmViYmVsIDxrcmViYmVsQGxpbnV4LnZuZXQuaWJtLmNv bT4KK0RhdGU6ICAgTW9uIEp1biAyNiAxMTowMTo1OCAyMDE3ICswMjAwCisKKyAgICBTLzM5MDog Rml4IHRlc3RzdWl0ZSBzZWdmYXVsdCBhZGRlZCB3aXRoIHJlY2VudCBwZ3N0ZSBwYXRjaC4KKyAg ICAKKyAgICBUaGUgcmVjZW50IHBnc3RlIHBhdGNoIGNhdXNlZCBzZXZlcmFsIHRlc3RjYXNlcyB0 byBmYWlsIHdpdGggYQorICAgIHNlZ2ZhdWx0LiAgRml4ZWQgd2l0aCB0aGlzIHBhdGNoIGJ5IGFk ZGluZyBOVUxMIHBvaW50ZXIgY2hlY2tzLgorICAgIAorICAgIHJlZ3Jlc3Npb24tdGVzdGVkIG9u IHMzOTB4LgorICAgIAorICAgIGJmZC9DaGFuZ2VMb2c6CisgICAgCisgICAgMjAxNy0wNi0yNiAg QW5kcmVhcyBLcmViYmVsICA8a3JlYmJlbEBsaW51eC52bmV0LmlibS5jb20+CisgICAgCisgICAg ICAgICAgICAqIGVsZjY0LXMzOTAuYyAoZWxmX3MzOTBfYWRkaXRpb25hbF9wcm9ncmFtX2hlYWRl cnMpOiBBZGQgTlVMTAorICAgICAgICAgICAgcG9pbnRlciBjaGVja3MuCisgICAgICAgICAgICAo ZWxmX3MzOTBfbW9kaWZ5X3NlZ21lbnRfbWFwKTogTGlrZXdpc2UuCisgICAgICAgICAgICAoYmZk X2VsZl9zMzkwX3NldF9vcHRpb25zKTogTGlzZXdpc2UuCisKKyMjIyBhL2JmZC9DaGFuZ2VMb2cK KyMjIyBiL2JmZC9DaGFuZ2VMb2cKKyMjIC0xLDMgKzEsMTAgQEAKKysyMDE3LTA2LTI2ICBBbmRy ZWFzIEtyZWJiZWwgIDxrcmViYmVsQGxpbnV4LnZuZXQuaWJtLmNvbT4KKysKKysJKiBlbGY2NC1z MzkwLmMgKGVsZl9zMzkwX2FkZGl0aW9uYWxfcHJvZ3JhbV9oZWFkZXJzKTogQWRkIE5VTEwKKysJ cG9pbnRlciBjaGVja3MuCisrCShlbGZfczM5MF9tb2RpZnlfc2VnbWVudF9tYXApOiBMaWtld2lz ZS4KKysJKGJmZF9lbGZfczM5MF9zZXRfb3B0aW9ucyk6IExpc2V3aXNlLgorKworIDIwMTctMDYt MjYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAZ21haWwuY29tPgorIAorIAkqIGVsZmxpbmsuYyAoX2Jm ZF9lbGZfbGlua19jcmVhdGVfZHluc3RydGFiKTogRG9uJ3QgbWFrZSBkeW5vYmoKKy0tLSBhL2Jm ZC9lbGY2NC1zMzkwLmMKKysrKyBiL2JmZC9lbGY2NC1zMzkwLmMKK0BAIC0zOTc4LDIyICszOTc4 LDI5IEBAIGVsZl9zMzkwX2FkZGl0aW9uYWxfcHJvZ3JhbV9oZWFkZXJzIChiZmQgKmFiZmQgQVRU UklCVVRFX1VOVVNFRCwKKyB7CisgICBzdHJ1Y3QgZWxmX3MzOTBfbGlua19oYXNoX3RhYmxlICpo dGFiOworIAorLSAgaHRhYiA9IGVsZl9zMzkwX2hhc2hfdGFibGUgKGluZm8pOworLSAgcmV0dXJu IGh0YWItPnBhcmFtcy0+cGdzdGU7CisrICBpZiAoaW5mbykKKysgICAgeworKyAgICAgIGh0YWIg PSBlbGZfczM5MF9oYXNoX3RhYmxlIChpbmZvKTsKKysgICAgICBpZiAoaHRhYikKKysJcmV0dXJu IGh0YWItPnBhcmFtcy0+cGdzdGU7CisrICAgIH0KKysgIHJldHVybiAwOworIH0KKyAKKyAKKyAv KiBBZGQgdGhlIFBUX1MzOTBfUEdTVEUgcHJvZ3JhbSBoZWFkZXIuICAqLworIAorIHN0YXRpYyBi ZmRfYm9vbGVhbgorLWVsZl9zMzkwX21vZGlmeV9zZWdtZW50X21hcCAoYmZkICphYmZkIEFUVFJJ QlVURV9VTlVTRUQsCistCQkJICAgICBzdHJ1Y3QgYmZkX2xpbmtfaW5mbyAqaW5mbykKKytlbGZf czM5MF9tb2RpZnlfc2VnbWVudF9tYXAgKGJmZCAqYWJmZCwgc3RydWN0IGJmZF9saW5rX2luZm8g KmluZm8pCisgeworICAgc3RydWN0IGVsZl9zMzkwX2xpbmtfaGFzaF90YWJsZSAqaHRhYjsKKyAg IHN0cnVjdCBlbGZfc2VnbWVudF9tYXAgKm0sICpwbSA9IE5VTEw7CisgCisrICBpZiAoIWFiZmQg fHwgIWluZm8pCisrICAgIHJldHVybiBUUlVFOworKworICAgaHRhYiA9IGVsZl9zMzkwX2hhc2hf dGFibGUgKGluZm8pOworLSAgaWYgKCFodGFiLT5wYXJhbXMtPnBnc3RlKQorKyAgaWYgKCFodGFi IHx8ICFodGFiLT5wYXJhbXMtPnBnc3RlKQorICAgICByZXR1cm4gVFJVRTsKKyAKKyAgIC8qIElm IHRoZXJlIGlzIGFscmVhZHkgYSBQVF9TMzkwX1BHU1RFIGhlYWRlciwgYXZvaWQgYWRkaW5nCitA QCAtNDAyNyw4ICs0MDM0LDEyIEBAIGJmZF9lbGZfczM5MF9zZXRfb3B0aW9ucyAoc3RydWN0IGJm ZF9saW5rX2luZm8gKmluZm8sCisgeworICAgc3RydWN0IGVsZl9zMzkwX2xpbmtfaGFzaF90YWJs ZSAqaHRhYjsKKyAKKy0gIGh0YWIgPSBlbGZfczM5MF9oYXNoX3RhYmxlIChpbmZvKTsKKy0gIGh0 YWItPnBhcmFtcyA9IHBhcmFtczsKKysgIGlmIChpbmZvKQorKyAgICB7CisrICAgICAgaHRhYiA9 IGVsZl9zMzkwX2hhc2hfdGFibGUgKGluZm8pOworKyAgICAgIGlmIChodGFiKQorKwlodGFiLT5w YXJhbXMgPSBwYXJhbXM7CisrICAgIH0KKyAKKyAgIHJldHVybiBUUlVFOworIH0KCmRpZmYgLS1n aXQgYS9nZGItcmhiejE0MjAzMDQtczM5MHgtMzFvZjM1LnBhdGNoIGIvZ2RiLXJoYnoxNDIwMzA0 LXMzOTB4LTMxb2YzNS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44 NGQwNmU1Ci0tLSAvZGV2L251bGwKKysrIGIvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTMxb2YzNS5w YXRjaApAQCAtMCwwICsxLDE2OSBAQAorY29tbWl0IDg4YWI5MGU4NjBhNDZhMTEyM2ZjZmQxM2Jm ZTUxY2QzNjBlOWMzZjcKK0F1dGhvcjogQW5kcmVhcyBBcm5leiA8YXJuZXpAbGludXgudm5ldC5p Ym0uY29tPgorRGF0ZTogICBUaHUgSnVuIDI5IDEwOjMwOjA5IDIwMTcgKzAyMDAKKworICAgIFMz OTA6IFN1cHBvcnQgZ3VhcmRlZC1zdG9yYWdlIGNvcmUgbm90ZSBzZWN0aW9ucworICAgIAorICAg IE5ld2VyIExpbnV4IGtlcm5lbCB2ZXJzaW9ucyBvZmZlciB0d28gbmV3IHJlZ2lzdGVyIHNldHMg aW4gc3VwcG9ydCBvZiB0aGUKKyAgICB6L0FyY2hpdGVjdHVyZSdzIGd1YXJkZWQgc3RvcmFnZSBm YWNpbGl0eTogTlRfUzM5MF9HU19DQiwgdGhlCisgICAgImd1YXJkZWQtc3RvcmFnZSByZWdpc3Rl cnMiLCBhbmQgTlRfUzM5MF9HU19CQywgdGhlICJndWFyZGVkLXN0b3JhZ2UKKyAgICBicm9hZGNh c3QgY29udHJvbCBibG9jayIuICBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhlIHJlc3Bl Y3RpdmUgY29yZQorICAgIG5vdGVzIHNlY3Rpb25zIHRvIGJpbnV0aWxzLgorICAgIAorICAgIGJm ZC9DaGFuZ2VMb2c6CisgICAgICAgICAgICAqIGVsZi1iZmQuaCAoZWxmY29yZV93cml0ZV9zMzkw X2dzX2NiKTogQWRkIHByb3RvdHlwZS4KKyAgICAgICAgICAgIChlbGZjb3JlX3dyaXRlX3MzOTBf Z3NfYmMpOiBMaWtld2lzZS4KKyAgICAgICAgICAgICogZWxmLmMgKGVsZmNvcmVfZ3Jva19zMzkw X2dzX2NiKTogTmV3IGZ1bmN0aW9uLgorICAgICAgICAgICAgKGVsZmNvcmVfZ3Jva19zMzkwX2dz X2JjKTogTmV3IGZ1bmN0aW9uLgorICAgICAgICAgICAgKGVsZmNvcmVfZ3Jva19ub3RlKTogQ2Fs bCB0aGVtLgorICAgICAgICAgICAgKGVsZmNvcmVfd3JpdGVfczM5MF9nc19jYik6IE5ldyBmdW5j dGlvbi4KKyAgICAgICAgICAgIChlbGZjb3JlX3dyaXRlX3MzOTBfZ3NfYmMpOiBOZXcgZnVuY3Rp b24uCisgICAgICAgICAgICAoZWxmY29yZV93cml0ZV9yZWdpc3Rlcl9ub3RlKTogQ2FsbCB0aGVt LgorICAgIAorICAgIGJpbnV0aWxzL0NoYW5nZUxvZzoKKyAgICAgICAgICAgICogcmVhZGVsZi5j IChnZXRfbm90ZV90eXBlKTogQWRkIE5UX1MzOTBfR1NfQ0IgYW5kIE5UX1MzOTBfR1NfQkMuCisg ICAgCisgICAgaW5jbHVkZS9DaGFuZ2VMb2c6CisgICAgICAgICAgICAqIGVsZi9jb21tb24uaCAo TlRfUzM5MF9HU19DQik6IE5ldyBtYWNyby4KKyAgICAgICAgICAgIChOVF9TMzkwX0dTX0JDKTog TGlrZXdpc2UuCisKKyMjIyBhL2JmZC9DaGFuZ2VMb2cKKyMjIyBiL2JmZC9DaGFuZ2VMb2cKKyMj IC0xLDMgKzEsMTQgQEAKKysyMDE3LTA2LTI5ICBBbmRyZWFzIEFybmV6ICA8YXJuZXpAbGludXgu dm5ldC5pYm0uY29tPgorKworKwkqIGVsZi1iZmQuaCAoZWxmY29yZV93cml0ZV9zMzkwX2dzX2Ni KTogQWRkIHByb3RvdHlwZS4KKysJKGVsZmNvcmVfd3JpdGVfczM5MF9nc19iYyk6IExpa2V3aXNl LgorKwkqIGVsZi5jIChlbGZjb3JlX2dyb2tfczM5MF9nc19jYik6IE5ldyBmdW5jdGlvbi4KKysJ KGVsZmNvcmVfZ3Jva19zMzkwX2dzX2JjKTogTmV3IGZ1bmN0aW9uLgorKwkoZWxmY29yZV9ncm9r X25vdGUpOiBDYWxsIHRoZW0uCisrCShlbGZjb3JlX3dyaXRlX3MzOTBfZ3NfY2IpOiBOZXcgZnVu Y3Rpb24uCisrCShlbGZjb3JlX3dyaXRlX3MzOTBfZ3NfYmMpOiBOZXcgZnVuY3Rpb24uCisrCShl bGZjb3JlX3dyaXRlX3JlZ2lzdGVyX25vdGUpOiBDYWxsIHRoZW0uCisrCisgMjAxNy0wNi0yOCAg SC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorIAorIAkqIGxpYmJmZC5jIChfYmZkX2dl bmVyaWNfZ2V0X3NlY3Rpb25fY29udGVudHMpOiBEb24ndCBjYWxsCistLS0gYS9iZmQvZWxmLWJm ZC5oCisrKysgYi9iZmQvZWxmLWJmZC5oCitAQCAtMjUzMyw2ICsyNTMzLDEwIEBAIGV4dGVybiBj aGFyICplbGZjb3JlX3dyaXRlX3MzOTBfdnhyc19sb3cKKyAgIChiZmQgKiwgY2hhciAqLCBpbnQg KiwgY29uc3Qgdm9pZCAqLCBpbnQpOworIGV4dGVybiBjaGFyICplbGZjb3JlX3dyaXRlX3MzOTBf dnhyc19oaWdoCisgICAoYmZkICosIGNoYXIgKiwgaW50ICosIGNvbnN0IHZvaWQgKiwgaW50KTsK KytleHRlcm4gY2hhciAqZWxmY29yZV93cml0ZV9zMzkwX2dzX2NiCisrICAoYmZkICosIGNoYXIg KiwgaW50ICosIGNvbnN0IHZvaWQgKiwgaW50KTsKKytleHRlcm4gY2hhciAqZWxmY29yZV93cml0 ZV9zMzkwX2dzX2JjCisrICAoYmZkICosIGNoYXIgKiwgaW50ICosIGNvbnN0IHZvaWQgKiwgaW50 KTsKKyBleHRlcm4gY2hhciAqZWxmY29yZV93cml0ZV9hcm1fdmZwCisgICAoYmZkICosIGNoYXIg KiwgaW50ICosIGNvbnN0IHZvaWQgKiwgaW50KTsKKyBleHRlcm4gY2hhciAqZWxmY29yZV93cml0 ZV9hYXJjaF90bHMKKy0tLSBhL2JmZC9lbGYuYworKysrIGIvYmZkL2VsZi5jCitAQCAtOTE5MSw2 ICs5MTkxLDE4IEBAIGVsZmNvcmVfZ3Jva19zMzkwX3Z4cnNfaGlnaCAoYmZkICphYmZkLCBFbGZf SW50ZXJuYWxfTm90ZSAqbm90ZSkKKyB9CisgCisgc3RhdGljIGJmZF9ib29sZWFuCisrZWxmY29y ZV9ncm9rX3MzOTBfZ3NfY2IgKGJmZCAqYWJmZCwgRWxmX0ludGVybmFsX05vdGUgKm5vdGUpCisr eworKyAgcmV0dXJuIGVsZmNvcmVfbWFrZV9ub3RlX3BzZXVkb3NlY3Rpb24gKGFiZmQsICIucmVn LXMzOTAtZ3MtY2IiLCBub3RlKTsKKyt9CisrCisrc3RhdGljIGJmZF9ib29sZWFuCisrZWxmY29y ZV9ncm9rX3MzOTBfZ3NfYmMgKGJmZCAqYWJmZCwgRWxmX0ludGVybmFsX05vdGUgKm5vdGUpCisr eworKyAgcmV0dXJuIGVsZmNvcmVfbWFrZV9ub3RlX3BzZXVkb3NlY3Rpb24gKGFiZmQsICIucmVn LXMzOTAtZ3MtYmMiLCBub3RlKTsKKyt9CisrCisrc3RhdGljIGJmZF9ib29sZWFuCisgZWxmY29y ZV9ncm9rX2FybV92ZnAgKGJmZCAqYWJmZCwgRWxmX0ludGVybmFsX05vdGUgKm5vdGUpCisgewor ICAgcmV0dXJuIGVsZmNvcmVfbWFrZV9ub3RlX3BzZXVkb3NlY3Rpb24gKGFiZmQsICIucmVnLWFy bS12ZnAiLCBub3RlKTsKK0BAIC05NjY4LDYgKzk2ODAsMjAgQEAgZWxmY29yZV9ncm9rX25vdGUg KGJmZCAqYWJmZCwgRWxmX0ludGVybmFsX05vdGUgKm5vdGUpCisgICAgICAgZWxzZQorIAlyZXR1 cm4gVFJVRTsKKyAKKysgICAgY2FzZSBOVF9TMzkwX0dTX0NCOgorKyAgICAgIGlmIChub3RlLT5u YW1lc3ogPT0gNgorKwkgICYmIHN0cmNtcCAobm90ZS0+bmFtZWRhdGEsICJMSU5VWCIpID09IDAp CisrCXJldHVybiBlbGZjb3JlX2dyb2tfczM5MF9nc19iYyAoYWJmZCwgbm90ZSk7CisrICAgICAg ZWxzZQorKwlyZXR1cm4gVFJVRTsKKysKKysgICAgY2FzZSBOVF9TMzkwX0dTX0JDOgorKyAgICAg IGlmIChub3RlLT5uYW1lc3ogPT0gNgorKwkgICYmIHN0cmNtcCAobm90ZS0+bmFtZWRhdGEsICJM SU5VWCIpID09IDApCisrCXJldHVybiBlbGZjb3JlX2dyb2tfczM5MF9nc19jYiAoYWJmZCwgbm90 ZSk7CisrICAgICAgZWxzZQorKwlyZXR1cm4gVFJVRTsKKysKKyAgICAgY2FzZSBOVF9BUk1fVkZQ OgorICAgICAgIGlmIChub3RlLT5uYW1lc3ogPT0gNgorIAkgICYmIHN0cmNtcCAobm90ZS0+bmFt ZWRhdGEsICJMSU5VWCIpID09IDApCitAQCAtMTA3MjgsNiArMTA3NTQsMzIgQEAgZWxmY29yZV93 cml0ZV9zMzkwX3Z4cnNfaGlnaCAoYmZkICphYmZkLAorIH0KKyAKKyBjaGFyICoKKytlbGZjb3Jl X3dyaXRlX3MzOTBfZ3NfY2IgKGJmZCAqYWJmZCwKKysJCQkgIGNoYXIgKmJ1ZiwKKysJCQkgIGlu dCAqYnVmc2l6LAorKwkJCSAgY29uc3Qgdm9pZCAqczM5MF9nc19jYiwKKysJCQkgIGludCBzaXpl KQorK3sKKysgIGNoYXIgKm5vdGVfbmFtZSA9ICJMSU5VWCI7CisrICByZXR1cm4gZWxmY29yZV93 cml0ZV9ub3RlIChhYmZkLCBidWYsIGJ1ZnNpeiwKKysJCQkgICAgIG5vdGVfbmFtZSwgTlRfUzM5 MF9HU19DQiwKKysJCQkgICAgIHMzOTBfZ3NfY2IsIHNpemUpOworK30KKysKKytjaGFyICoKKytl bGZjb3JlX3dyaXRlX3MzOTBfZ3NfYmMgKGJmZCAqYWJmZCwKKysJCQkgIGNoYXIgKmJ1ZiwKKysJ CQkgIGludCAqYnVmc2l6LAorKwkJCSAgY29uc3Qgdm9pZCAqczM5MF9nc19iYywKKysJCQkgIGlu dCBzaXplKQorK3sKKysgIGNoYXIgKm5vdGVfbmFtZSA9ICJMSU5VWCI7CisrICByZXR1cm4gZWxm Y29yZV93cml0ZV9ub3RlIChhYmZkLCBidWYsIGJ1ZnNpeiwKKysJCQkgICAgIG5vdGVfbmFtZSwg TlRfUzM5MF9HU19CQywKKysJCQkgICAgIHMzOTBfZ3NfYmMsIHNpemUpOworK30KKysKKytjaGFy ICoKKyBlbGZjb3JlX3dyaXRlX2FybV92ZnAgKGJmZCAqYWJmZCwKKyAJCSAgICAgICBjaGFyICpi dWYsCisgCQkgICAgICAgaW50ICpidWZzaXosCitAQCAtMTA4MTUsNiArMTA4NjcsMTAgQEAgZWxm Y29yZV93cml0ZV9yZWdpc3Rlcl9ub3RlIChiZmQgKmFiZmQsCisgICAgIHJldHVybiBlbGZjb3Jl X3dyaXRlX3MzOTBfdnhyc19sb3cgKGFiZmQsIGJ1ZiwgYnVmc2l6LCBkYXRhLCBzaXplKTsKKyAg IGlmIChzdHJjbXAgKHNlY3Rpb24sICIucmVnLXMzOTAtdnhycy1oaWdoIikgPT0gMCkKKyAgICAg cmV0dXJuIGVsZmNvcmVfd3JpdGVfczM5MF92eHJzX2hpZ2ggKGFiZmQsIGJ1ZiwgYnVmc2l6LCBk YXRhLCBzaXplKTsKKysgIGlmIChzdHJjbXAgKHNlY3Rpb24sICIucmVnLXMzOTAtZ3MtY2IiKSA9 PSAwKQorKyAgICByZXR1cm4gZWxmY29yZV93cml0ZV9zMzkwX2dzX2NiIChhYmZkLCBidWYsIGJ1 ZnNpeiwgZGF0YSwgc2l6ZSk7CisrICBpZiAoc3RyY21wIChzZWN0aW9uLCAiLnJlZy1zMzkwLWdz LWJjIikgPT0gMCkKKysgICAgcmV0dXJuIGVsZmNvcmVfd3JpdGVfczM5MF9nc19iYyAoYWJmZCwg YnVmLCBidWZzaXosIGRhdGEsIHNpemUpOworICAgaWYgKHN0cmNtcCAoc2VjdGlvbiwgIi5yZWct YXJtLXZmcCIpID09IDApCisgICAgIHJldHVybiBlbGZjb3JlX3dyaXRlX2FybV92ZnAgKGFiZmQs IGJ1ZiwgYnVmc2l6LCBkYXRhLCBzaXplKTsKKyAgIGlmIChzdHJjbXAgKHNlY3Rpb24sICIucmVn LWFhcmNoLXRscyIpID09IDApCisjIyMgYS9pbmNsdWRlL0NoYW5nZUxvZworIyMjIGIvaW5jbHVk ZS9DaGFuZ2VMb2cKKyMjIC0xLDMgKzEsOCBAQAorKzIwMTctMDYtMjkgIEFuZHJlYXMgQXJuZXog IDxhcm5lekBsaW51eC52bmV0LmlibS5jb20+CisrCisrCSogZWxmL2NvbW1vbi5oIChOVF9TMzkw X0dTX0NCKTogTmV3IG1hY3JvLgorKwkoTlRfUzM5MF9HU19CQyk6IExpa2V3aXNlLgorKworIDIw MTctMDYtMjggIFRhbWFyIENocmlzdGluYSAgPHRhbWFyLmNocmlzdGluYUBhcm0uY29tPgorIAor IAkqIG9wY29kZS9hYXJjaDY0Lmg6IChBQVJDSDY0X0ZFQVRVUkVfRE9UUFJPRCk6IE5ldy4KKy0t LSBhL2luY2x1ZGUvZWxmL2NvbW1vbi5oCisrKysgYi9pbmNsdWRlL2VsZi9jb21tb24uaAorQEAg LTU5OCw2ICs1OTgsMTAgQEAKKyAJCQkJCS8qICAgbm90ZSBuYW1lIG11c3QgYmUgIkxJTlVYIi4g ICovCisgI2RlZmluZSBOVF9TMzkwX1ZYUlNfSElHSAkweDMwYQkvKiBTMzkwIHZlY3RvciByZWdp c3RlcnMgMTYtMzEgKi8KKyAJCQkJCS8qICAgbm90ZSBuYW1lIG11c3QgYmUgIkxJTlVYIi4gICov CisrI2RlZmluZSBOVF9TMzkwX0dTX0NCCTB4MzBiCQkvKiBzMzkwIGd1YXJkZWQgc3RvcmFnZSBy ZWdpc3RlcnMgKi8KKysJCQkJCS8qICAgbm90ZSBuYW1lIG11c3QgYmUgIkxJTlVYIi4gICovCisr I2RlZmluZSBOVF9TMzkwX0dTX0JDCTB4MzBjCQkvKiBzMzkwIGd1YXJkZWQgc3RvcmFnZSBicm9h ZGNhc3QgY29udHJvbCBibG9jayAqLworKwkJCQkJLyogICBub3RlIG5hbWUgbXVzdCBiZSAiTElO VVgiLiAgKi8KKyAjZGVmaW5lIE5UX0FSTV9WRlAJMHg0MDAJCS8qIEFSTSBWRlAgcmVnaXN0ZXJz ICovCisgLyogVGhlIGZvbGxvd2luZyBkZWZpbml0aW9ucyBzaG91bGQgcmVhbGx5IHVzZSBOVF9B QVJDSF8uLi4sIGJ1dCBkZWZpbmVkCisgICAgdGhpcyB3YXkgZm9yIGNvbXBhdGliaWxpdHkgd2l0 aCBMaW51eC4gICovCgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTMyb2YzNS5w YXRjaCBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0zMm9mMzUucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uYTdmNjYyNAotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1yaGJ6 MTQyMDMwNC1zMzkweC0zMm9mMzUucGF0Y2gKQEAgLTAsMCArMSwzODAgQEAKK2NvbW1pdCA1NWVm Y2VhYmM2MTQ5ZTk2MTM0YzEwNjc2YWRiMmIxZTc5ZTBhZTEzCitBdXRob3I6IEFuZHJlYXMgQXJu ZXogPGFybmV6QGxpbnV4LnZuZXQuaWJtLmNvbT4KK0RhdGU6ICAgVGh1IEp1bCAxMyAyMDoxNzow MyAyMDE3ICswMjAwCisKKyAgICBTMzkwOiBBZGQgcmVjb3JkL3JlcGxheSBzdXBwb3J0IGZvciBh cmNoMTIgaW5zdHJ1Y3Rpb25zCisgICAgCisgICAgU3VwcG9ydCByZWNvcmQvcmVwbGF5IG9mIHRo ZSB6L0FyY2hpdGVjdHVyZSBpbnN0cnVjdGlvbnMgdGhhdCB3ZXJlCisgICAgaW50cm9kdWNlZCB3 aXRoIGFyY2gxMi4KKyAgICAKKyAgICBnZGIvQ2hhbmdlTG9nOgorICAgIAorICAgICAgICAgICAg KiBzMzkwLWxpbnV4LXRkZXAuYyAoczM5MF9wcm9jZXNzX3JlY29yZCk6IEFkZCBzdXBwb3J0IGZv cgorICAgICAgICAgICAgaW5zdHJ1Y3Rpb25zIG5ldyBpbiBhcmNoMTIuCisKKyMjIyBhL2dkYi9D aGFuZ2VMb2cKKyMjIyBiL2dkYi9DaGFuZ2VMb2cKKyMjIC0xLDMgKzEsOCBAQAorKzIwMTctMDct MTMgIEFuZHJlYXMgQXJuZXogIDxhcm5lekBsaW51eC52bmV0LmlibS5jb20+CisrCisrCSogczM5 MC1saW51eC10ZGVwLmMgKHMzOTBfcHJvY2Vzc19yZWNvcmQpOiBBZGQgc3VwcG9ydCBmb3IKKysJ aW5zdHJ1Y3Rpb25zIG5ldyBpbiBhcmNoMTIuCisrCisgMjAxNy0wNy0xMSAgSm9obiBCYWxkd2lu ICA8amhiQEZyZWVCU0Qub3JnPgorIAorIAkqIGFtZDY0LWJzZC1uYXQuYyAoYW1kNjRic2RfZmV0 Y2hfaW5mZXJpb3JfcmVnaXN0ZXJzKTogVXNlCistLS0gYS9nZGIvczM5MC1saW51eC10ZGVwLmMK KysrKyBiL2dkYi9zMzkwLWxpbnV4LXRkZXAuYworQEAgLTQ5OTIsNiArNDk5Miw4IEBAIGV4Ogor ICAgICAgICAgY2FzZSAweGI5ZTk6IC8qIFNHUksgLSBzdWJ0cmFjdCAqLworICAgICAgICAgY2Fz ZSAweGI5ZWE6IC8qIEFMR1JLIC0gYWRkIGxvZ2ljYWwgKi8KKyAgICAgICAgIGNhc2UgMHhiOWVi OiAvKiBTTEdSSyAtIHN1YnRyYWN0IGxvZ2ljYWwgKi8KKysJY2FzZSAweGI5ZWQ6IC8qIE1TR1JL QyAtIG11bHRpcGx5IHNpbmdsZSA2NHg2NCAtPiA2NCAqLworKwljYXNlIDB4YjlmZDogLyogTVNS S0MgLSBtdWx0aXBseSBzaW5nbGUgMzJ4MzIgLT4gMzIgKi8KKyAgICAgICAgICAgLyogNjQtYml0 IGdwciBkZXN0aW5hdGlvbiArIGZsYWdzICovCisgICAgICAgICAgIGlmIChzMzkwX3JlY29yZF9n cHJfZyAoZ2RiYXJjaCwgcmVnY2FjaGUsIGluaWJbNl0pKQorICAgICAgICAgICAgIHJldHVybiAt MTsKK0BAIC01MDE5LDcgKzUwMjEsNyBAQCBleDoKKyAgICAgICAgIGNhc2UgMHhiOTE0OiAvKiBM R0ZSIC0gbG9hZCAqLworICAgICAgICAgY2FzZSAweGI5MTY6IC8qIExMR0ZSIC0gbG9hZCBsb2dp Y2FsICovCisgICAgICAgICBjYXNlIDB4YjkxNzogLyogTExHVFIgLSBsb2FkIGxvZ2ljYWwgdGhp cnR5IG9uZSBiaXRzICovCistICAgICAgICBjYXNlIDB4YjkxYzogLyogTVNHRlIgLSBsb2FkICov CisrCWNhc2UgMHhiOTFjOiAvKiBNU0dGUiAtIG11bHRpcGx5IHNpbmdsZSA2NDwzMiAqLworICAg ICAgICAgY2FzZSAweGI5NDY6IC8qIEJDVEdSIC0gYnJhbmNoIG9uIGNvdW50ICovCisgICAgICAg ICBjYXNlIDB4Yjk4NDogLyogTExHQ1IgLSBsb2FkIGxvZ2ljYWwgY2hhcmFjdGVyICovCisgICAg ICAgICBjYXNlIDB4Yjk4NTogLyogTExHSFIgLSBsb2FkIGxvZ2ljYWwgaGFsZndvcmQgKi8KK0BA IC01MDM4LDYgKzUwNDAsNyBAQCBleDoKKyAgICAgICAgIGNhc2UgMHhiOTFkOiAvKiBEU0dGUiAt IGRpdmlkZSBzaW5nbGUgKi8KKyAgICAgICAgIGNhc2UgMHhiOTg2OiAvKiBNTEdSIC0gbXVsdGlw bHkgbG9naWNhbCAqLworICAgICAgICAgY2FzZSAweGI5ODc6IC8qIERMR1IgLSBkaXZpZGUgbG9n aWNhbCAqLworKwljYXNlIDB4YjllYzogLyogTUdSSyAtIG11bHRpcGx5IDY0eDY0IC0+IDEyOCAq LworICAgICAgICAgICAvKiA2NC1iaXQgZ3ByIHBhaXIgZGVzdGluYXRpb24gICovCisgICAgICAg ICAgIGlmIChzMzkwX3JlY29yZF9ncHJfZyAoZ2RiYXJjaCwgcmVnY2FjaGUsIGluaWJbNl0pKQor ICAgICAgICAgICAgIHJldHVybiAtMTsKK0BAIC01MTA2LDggKzUxMDksOCBAQCBleDoKKyAgICAg ICAgIC8qIDB4YjkyMi0weGI5MjQgdW5kZWZpbmVkICovCisgICAgICAgICAvKiAweGI5MjUgcHJp dmlsZWdlZCAqLworICAgICAgICAgLyogMHhiOTI4IHByaXZpbGVnZWQgKi8KKy0gICAgICAgIC8q IDB4YjkyOSB1bmRlZmluZWQgKi8KKyAKKysJY2FzZSAweGI5Mjk6IC8qIEtNQSAtIGNpcGhlciBt ZXNzYWdlIHdpdGggYXV0aGVudGljYXRpb24gKi8KKyAgICAgICAgIGNhc2UgMHhiOTJhOiAvKiBL TUYgLSBjaXBoZXIgbWVzc2FnZSB3aXRoIGNpcGhlciBmZWVkYmFjayBbcGFydGlhbF0gKi8KKyAg ICAgICAgIGNhc2UgMHhiOTJiOiAvKiBLTU8gLSBjaXBoZXIgbWVzc2FnZSB3aXRoIG91dHB1dCBm ZWVkYmFjayBbcGFydGlhbF0gKi8KKyAgICAgICAgIGNhc2UgMHhiOTJmOiAvKiBLTUMgLSBjaXBo ZXIgbWVzc2FnZSB3aXRoIGNoYWluaW5nIFtwYXJ0aWFsXSAqLworQEAgLTUxNzAsNiArNTE3Mywx NSBAQCBleDoKKyAgICAgICAgICAgICAgIGlmIChyZWNvcmRfZnVsbF9hcmNoX2xpc3RfYWRkX3Jl ZyAocmVnY2FjaGUsIFMzOTBfUjBfUkVHTlVNICsgKGluaWJbN10gfCAxKSkpCisgICAgICAgICAg ICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICB9CisrCSAgaWYgKHRtcCAhPSAwICYmIGlu c25bMF0gPT0gMHhiOTI5KQorKwkgICAgeworKwkgICAgICBpZiAocmVjb3JkX2Z1bGxfYXJjaF9s aXN0X2FkZF9yZWcgKHJlZ2NhY2hlLAorKwkJCQkJCSBTMzkwX1IwX1JFR05VTSArIGluaWJbNF0p KQorKwkJcmV0dXJuIC0xOworKwkgICAgICBpZiAocmVjb3JkX2Z1bGxfYXJjaF9saXN0X2FkZF9y ZWcgKHJlZ2NhY2hlLAorKwkJCQkJCSBTMzkwX1IwX1JFR05VTSArIChpbmliWzRdIHwgMSkpKQor KwkJcmV0dXJuIC0xOworKwkgICAgfQorICAgICAgICAgICBpZiAocmVjb3JkX2Z1bGxfYXJjaF9s aXN0X2FkZF9yZWcgKHJlZ2NhY2hlLCBTMzkwX1BTV01fUkVHTlVNKSkKKyAgICAgICAgICAgICBy ZXR1cm4gLTE7CisgICAgICAgICAgIGJyZWFrOworQEAgLTU1NzEsMTAgKzU1ODMsMTEgQEAgZXg6 CisgCisgICAgICAgICAvKiAweGI5ZTMgdW5kZWZpbmVkICovCisgICAgICAgICAvKiAweGI5ZTUg dW5kZWZpbmVkICovCistICAgICAgICAvKiAweGI5ZWMtMHhiOWYxIHVuZGVmaW5lZCAqLworKwkv KiAweGI5ZWUtMHhiOWYxIHVuZGVmaW5lZCAqLworICAgICAgICAgLyogMHhiOWYzIHVuZGVmaW5l ZCAqLworICAgICAgICAgLyogMHhiOWY1IHVuZGVmaW5lZCAqLworLSAgICAgICAgLyogMHhiOWZj LTB4YjlmZiB1bmRlZmluZWQgKi8KKysJLyogMHhiOWZjIHVuZGVmaW5lZCAqLworKwkvKiAweGI5 ZmUgLTB4YjlmZiB1bmRlZmluZWQgKi8KKyAKKyAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg IGdvdG8gVU5LTk9XTl9PUDsKK0BAIC01OTYyLDYgKzU5NzUsNyBAQCBleDoKKyAgICAgICBicmVh azsKKyAKKyAgICAgY2FzZSAweGUzOgorKyAgICBjYXNlIDB4ZTY6CisgICAgIGNhc2UgMHhlNzoK KyAgICAgY2FzZSAweGViOgorICAgICBjYXNlIDB4ZWQ6CitAQCAtNjAwNiw2ICs2MDIwLDcgQEAg ZXg6CisgICAgICAgICBjYXNlIDB4ZTMxYzogLyogTVNHRiAtIG11bHRpcGx5IHNpbmdsZSAqLwor ICAgICAgICAgY2FzZSAweGUzMmE6IC8qIExaUkcgLSBsb2FkIGFuZCB6ZXJvIHJpZ2h0bW9zdCBi eXRlICovCisgICAgICAgICBjYXNlIDB4ZTMzYTogLyogTExaUkdGIC0gbG9hZCBsb2dpY2FsIGFu ZCB6ZXJvIHJpZ2h0bW9zdCBieXRlICovCisrCWNhc2UgMHhlMzNjOiAvKiBNR0ggLSBtdWx0aXBs eSBoYWxmd29yZCA2NHgxNm1lbSAtPiA2NCAqLworICAgICAgICAgY2FzZSAweGUzNDY6IC8qIEJD VEcgLSBicmFuY2ggb24gY291bnQgKi8KKyAgICAgICAgIGNhc2UgMHhlMzc3OiAvKiBMR0IgLSBs b2FkIGJ5dGUgKi8KKyAgICAgICAgIGNhc2UgMHhlMzkwOiAvKiBMTEdDIC0gbG9hZCBsb2dpY2Fs IGNoYXJhY3RlciAqLworQEAgLTYwMzYsNiArNjA1MSw3IEBAIGV4OgorIAorICAgICAgICAgY2Fz ZSAweGUzMGQ6IC8qIERTRyAtIGRpdmlkZSBzaW5nbGUgKi8KKyAgICAgICAgIGNhc2UgMHhlMzFk OiAvKiBEU0dGIC0gZGl2aWRlIHNpbmdsZSAqLworKwljYXNlIDB4ZTM4NDogLyogTUcgLSBtdWx0 aXBseSA2NHg2NG1lbSAtPiAxMjggKi8KKyAgICAgICAgIGNhc2UgMHhlMzg2OiAvKiBNTEcgLSBt dWx0aXBseSBsb2dpY2FsICovCisgICAgICAgICBjYXNlIDB4ZTM4NzogLyogRExHIC0gZGl2aWRl IGxvZ2ljYWwgKi8KKyAgICAgICAgIGNhc2UgMHhlMzhmOiAvKiBMUFEgLSBsb2FkIHBhaXIgZnJv bSBxdWFkd29yZCAqLworQEAgLTYwNTcsNiArNjA3Myw5IEBAIGV4OgorICAgICAgICAgLyogMHhl MzEwLTB4ZTMxMSB1bmRlZmluZWQgKi8KKyAKKyAgICAgICAgIGNhc2UgMHhlMzEyOiAvKiBMVCAt IGxvYWQgYW5kIHRlc3QgKi8KKysJY2FzZSAweGUzMzg6IC8qIEFHSCAtIGFkZCBoYWxmd29yZCB0 byA2NCBiaXQgdmFsdWUgKi8KKysJY2FzZSAweGUzMzk6IC8qIFNHSCAtIHN1YnRyYWN0IGhhbGZ3 b3JkIGZyb20gNjQgYml0IHZhbHVlICovCisrCWNhc2UgMHhlMzUzOiAvKiBNU0MgLSBtdWx0aXBs eSBzaW5nbGUgMzJ4MzJtZW0gLT4gMzIgKi8KKyAgICAgICAgIGNhc2UgMHhlMzU0OiAvKiBOWSAt IGFuZCAqLworICAgICAgICAgY2FzZSAweGUzNTY6IC8qIE9ZIC0gb3IgKi8KKyAgICAgICAgIGNh c2UgMHhlMzU3OiAvKiBYWSAtIHhvciAqLworQEAgLTYwNjYsMTMgKzYwODUsMTQgQEAgZXg6Cisg ICAgICAgICBjYXNlIDB4ZTM1ZjogLyogU0xZIC0gc3VidHJhY3QgbG9naWNhbCAqLworICAgICAg ICAgY2FzZSAweGUzN2E6IC8qIEFIWSAtIGFkZCBoYWxmd29yZCAqLworICAgICAgICAgY2FzZSAw eGUzN2I6IC8qIFNIWSAtIHN1YnRyYWN0IGhhbGZ3b3JkICovCisrCWNhc2UgMHhlMzgzOiAvKiBN U0dDIC0gbXVsdGlwbHkgc2luZ2xlIDY0eDY0bWVtIC0+IDY0ICovCisgICAgICAgICBjYXNlIDB4 ZTM5ODogLyogQUxDIC0gYWRkIGxvZ2ljYWwgd2l0aCBjYXJyeSAqLworICAgICAgICAgY2FzZSAw eGUzOTk6IC8qIFNMQiAtIHN1YnRyYWN0IGxvZ2ljYWwgd2l0aCBib3Jyb3cgKi8KKyAgICAgICAg IGNhc2UgMHhlNzI3OiAvKiBMQ0JCIC0gbG9hZCBjb3VudCB0byBibG9jayBib3VuZHVhcnkgKi8K KyAgICAgICAgIGNhc2UgMHhlYjgxOiAvKiBJQ01ZIC0gaW5zZXJ0IGNoYXJhY3RlcnMgdW5kZXIg bWFzayAqLworICAgICAgICAgY2FzZSAweGViZGM6IC8qIFNSQUsgLSBzaGlmdCBsZWZ0IHNpbmds ZSAqLworICAgICAgICAgY2FzZSAweGViZGQ6IC8qIFNMQUsgLSBzaGlmdCBsZWZ0IHNpbmdsZSAq LworLSAgICAgICAgICAvKiAzMi1iaXQgZ3ByIGRlc3RpbmF0aW9uICsgZmxhZ3MgKi8KKysJICAv KiAzMi82NC1iaXQgZ3ByIGRlc3RpbmF0aW9uICsgZmxhZ3MgKi8KKyAgICAgICAgICAgaWYgKHJl Y29yZF9mdWxsX2FyY2hfbGlzdF9hZGRfcmVnIChyZWdjYWNoZSwgUzM5MF9SMF9SRUdOVU0gKyBp bmliWzJdKSkKKyAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgIGlmIChyZWNvcmRf ZnVsbF9hcmNoX2xpc3RfYWRkX3JlZyAocmVnY2FjaGUsIFMzOTBfUFNXTV9SRUdOVU0pKQorQEAg LTYxNjAsNyArNjE4MCw3IEBAIGV4OgorICAgICAgICAgY2FzZSAweGUzMzY6IC8qIFBGRCAtIHBy ZWZldGNoIGRhdGEgKi8KKyAgICAgICAgICAgYnJlYWs7CisgCistICAgICAgICAvKiAweGUzMzct MHhlMzM5IHVuZGVmaW5lZCAqLworKwkvKiAweGUzMzcgdW5kZWZpbmVkICovCisgICAgICAgICAv KiAweGUzM2MtMHhlMzNkIHVuZGVmaW5lZCAqLworIAorICAgICAgICAgY2FzZSAweGUzM2U6IC8q IFNUUlYgLSBzdG9yZSByZXZlcnNlZCAqLworQEAgLTYxODMsOCArNjIwMywxMiBAQCBleDoKKyAg ICAgICAgICAgYnJlYWs7CisgCisgICAgICAgICAvKiAweGUzNDAtMHhlMzQ1IHVuZGVmaW5lZCAq LworLSAgICAgICAgLyogMHhlMzQ3LTB4ZTM0ZiB1bmRlZmluZWQgKi8KKy0gICAgICAgIC8qIDB4 ZTM1Mi0weGUzNTMgdW5kZWZpbmVkICovCisrCisrCWNhc2UgMHhlMzQ3OiAvKiBCSUMgLSBicmFu Y2ggaW5kaXJlY3Qgb24gY29uZGl0aW9uICovCisrCSAgYnJlYWs7CisrCisrCS8qIDB4ZTM0OC0w eGUzNGYgdW5kZWZpbmVkICovCisrCS8qIDB4ZTM1MiB1bmRlZmluZWQgKi8KKyAKKyAgICAgICAg IGNhc2UgMHhlMzVjOiAvKiBNRlkgLSBtdWx0aXBseSAqLworICAgICAgICAgY2FzZSAweGUzOTY6 IC8qIE1MIC0gbXVsdGlwbHkgbG9naWNhbCAqLworQEAgLTYyMTYsMTEgKzYyNDAsMTIgQEAgZXg6 CisgICAgICAgICAgIGJyZWFrOworIAorICAgICAgICAgLyogMHhlMzdkLTB4ZTM3ZiB1bmRlZmlu ZWQgKi8KKy0gICAgICAgIC8qIDB4ZTM4My0weGUzODQgdW5kZWZpbmVkICovCisgCisgICAgICAg ICBjYXNlIDB4ZTM4NTogLyogTEdBVCAtIGxvYWQgYW5kIHRyYXAgKi8KKyAgICAgICAgIGNhc2Ug MHhlMzljOiAvKiBMTEdUQVQgLSBsb2FkIGxvZ2ljYWwgdGhpcnR5IG9uZSBiaXRzIGFuZCB0cmFw ICovCisgICAgICAgICBjYXNlIDB4ZTM5ZDogLyogTExHRkFUIC0gbG9hZCBsb2dpY2FsIGFuZCB0 cmFwICovCisrCWNhc2UgMHhlNjUwOiAvKiBWQ1ZCIC0gdmVjdG9yIGNvbnZlcnQgdG8gYmluYXJ5 IDMyIGJpdCovCisrCWNhc2UgMHhlNjUyOiAvKiBWQ1ZCRyAtIHZlY3RvciBjb252ZXJ0IHRvIGJp bmFyeSA2NCBiaXQqLworICAgICAgICAgY2FzZSAweGU3MjE6IC8qIFZMR1YgLSB2ZWN0b3IgbG9h ZCBnciBmcm9tIHZyIGVsZW1lbnQgKi8KKyAgICAgICAgICAgLyogNjQtYml0IGdwciBkZXN0aW5h dGlvbiArIGZwYyBmb3IgcG9zc2libGUgRFhDIHdyaXRlICovCisgICAgICAgICAgIGlmIChzMzkw X3JlY29yZF9ncHJfZyAoZ2RiYXJjaCwgcmVnY2FjaGUsIGluaWJbMl0pKQorQEAgLTYyNzEsNiAr NjI5NiwxMCBAQCBleDoKKyAgICAgICAgIC8qIDB4ZTNjZSB1bmRlZmluZWQgKi8KKyAgICAgICAg IC8qIDB4ZTNkMC0weGUzZmYgdW5kZWZpbmVkICovCisgCisrCWNhc2UgMHhlNjM0OiAvKiBWUEta IC0gdmVjdG9yIHBhY2sgem9uZWQgKi8KKysJY2FzZSAweGU2MzU6IC8qIFZMUkwgLSB2ZWN0b3Ig bG9hZCByaWdodG1vc3Qgd2l0aCBpbW1lZC4gbGVuZ3RoICovCisrCWNhc2UgMHhlNjM3OiAvKiBW TFJMUiAtIHZlY3RvciBsb2FkIHJpZ2h0bW9zdCB3aXRoIGxlbmd0aCAqLworKwljYXNlIDB4ZTY0 OTogLyogVkxJUCAtIHZlY3RvciBsb2FkIGltbWVkaWF0ZSBkZWNpbWFsICovCisgICAgICAgICBj YXNlIDB4ZTcwMDogLyogVkxFQiAtIHZlY3RvciBsb2FkIGVsZW1lbnQgKi8KKyAgICAgICAgIGNh c2UgMHhlNzAxOiAvKiBWTEVIIC0gdmVjdG9yIGxvYWQgZWxlbWVudCAqLworICAgICAgICAgY2Fz ZSAweGU3MDI6IC8qIFZMRUcgLSB2ZWN0b3IgbG9hZCBlbGVtZW50ICovCitAQCAtNjMxMSw3ICs2 MzQwLDEwIEBAIGV4OgorICAgICAgICAgY2FzZSAweGU3Njk6IC8qIFZOQyAtIHZlY3RvciBhbmQg d2l0aCBjb21wbGVtZW50ICovCisgICAgICAgICBjYXNlIDB4ZTc2YTogLyogVk8gLSB2ZWN0b3Ig b3IgKi8KKyAgICAgICAgIGNhc2UgMHhlNzZiOiAvKiBWTk8gLSB2ZWN0b3Igbm9yICovCisrCWNh c2UgMHhlNzZjOiAvKiBWTlggLSB2ZWN0b3Igbm90IGV4Y2x1c2l2ZSBvciAqLworICAgICAgICAg Y2FzZSAweGU3NmQ6IC8qIFZYIC0gdmVjdG9yIHhvciAqLworKwljYXNlIDB4ZTc2ZTogLyogVk5O IC0gdmVjdG9yIG5hbmQgKi8KKysJY2FzZSAweGU3NmY6IC8qIFZPQyAtIHZlY3RvciBvciB3aXRo IGNvbXBsZW1lbnQgKi8KKyAgICAgICAgIGNhc2UgMHhlNzcwOiAvKiBWRVNMViAtIHZlY3RvciBl bGVtZW50IHNoaWZ0IGxlZnQgKi8KKyAgICAgICAgIGNhc2UgMHhlNzcyOiAvKiBWRVJJTSAtIHZl Y3RvciBlbGVtZW50IHJvdGF0ZSBhbmQgaW5zZXJ0IHVuZGVyIG1hc2sgKi8KKyAgICAgICAgIGNh c2UgMHhlNzczOiAvKiBWRVJMTFYgLSB2ZWN0b3IgZWxlbWVudCByb3RhdGUgbGVmdCBsb2dpY2Fs ICovCitAQCAtNjMyNSwxMSArNjM1NywxNCBAQCBleDoKKyAgICAgICAgIGNhc2UgMHhlNzdlOiAv KiBWU1JBIC0gdmVjdG9yIHNoaWZ0IHJpZ2h0IGFyaXRobWV0aWMgKi8KKyAgICAgICAgIGNhc2Ug MHhlNzdmOiAvKiBWU1JBQiAtIHZlY3RvciBzaGlmdCByaWdodCBhcml0aG1ldGljIGJ5IGJ5dGUg Ki8KKyAgICAgICAgIGNhc2UgMHhlNzg0OiAvKiBWUERJIC0gdmVjdG9yIHBlcm11dGUgZG91Ymxl d29yZCBpbW1lZGlhdGUgKi8KKysJY2FzZSAweGU3ODU6IC8qIFZCUEVSTSAtIHZlY3RvciBiaXQg cGVybXV0ZSAqLworICAgICAgICAgY2FzZSAweGU3OGM6IC8qIFZQRVJNIC0gdmVjdG9yIHBlcm11 dGUgKi8KKyAgICAgICAgIGNhc2UgMHhlNzhkOiAvKiBWU0VMIC0gdmVjdG9yIHNlbGVjdCAqLwor ICAgICAgICAgY2FzZSAweGU3OGU6IC8qIFZGTVMgLSB2ZWN0b3IgZnAgbXVsdGlwbHkgYW5kIHN1 YnRyYWN0ICovCisgICAgICAgICBjYXNlIDB4ZTc4ZjogLyogVkZNQSAtIHZlY3RvciBmcCBtdWx0 aXBseSBhbmQgYWRkICovCisgICAgICAgICBjYXNlIDB4ZTc5NDogLyogVlBLIC0gdmVjdG9yIHBh Y2sgKi8KKysJY2FzZSAweGU3OWU6IC8qIFZGTk1TIC0gdmVjdG9yIGZwIG5lZ2F0aXZlIG11bHRp cGx5IGFuZCBzdWJ0cmFjdCAqLworKwljYXNlIDB4ZTc5ZjogLyogVkZOTUEgLSB2ZWN0b3IgZnAg bmVnYXRpdmUgbXVsdGlwbHkgYW5kIGFkZCAqLworICAgICAgICAgY2FzZSAweGU3YTE6IC8qIFZN TEggLSB2ZWN0b3IgbXVsdGlwbHkgbG9naWNhbCBoaWdoICovCisgICAgICAgICBjYXNlIDB4ZTdh MjogLyogVk1MIC0gdmVjdG9yIG11bHRpcGx5IGxvdyAqLworICAgICAgICAgY2FzZSAweGU3YTM6 IC8qIFZNSCAtIHZlY3RvciBtdWx0aXBseSBoaWdoICovCitAQCAtNjM0NSw2ICs2MzgwLDcgQEAg ZXg6CisgICAgICAgICBjYXNlIDB4ZTdhZTogLyogVk1BRSAtIHZlY3RvciBtdWx0aXBseSBhbmQg YWRkIGV2ZW4gKi8KKyAgICAgICAgIGNhc2UgMHhlN2FmOiAvKiBWTUFPIC0gdmVjdG9yIG11bHRp cGx5IGFuZCBhZGQgb2RkICovCisgICAgICAgICBjYXNlIDB4ZTdiNDogLyogVkdGTSAtIHZlY3Rv ciBHYWxvaXMgZmllbGQgbXVsdGlwbHkgc3VtICovCisrCWNhc2UgMHhlN2I4OiAvKiBWTVNMIC0g dmVjdG9yIG11bHRpcGx5IHN1bSBsb2dpY2FsICovCisgICAgICAgICBjYXNlIDB4ZTdiOTogLyog VkFDQ0MgLSB2ZWN0b3IgYWRkIHdpdGggY2FycnkgY29tcHV0ZSBjYXJyeSAqLworICAgICAgICAg Y2FzZSAweGU3YmI6IC8qIFZBQyAtIHZlY3RvciBhZGQgd2l0aCBjYXJyeSAqLworICAgICAgICAg Y2FzZSAweGU3YmM6IC8qIFZHRk1BIC0gdmVjdG9yIEdhbG9pcyBmaWVsZCBtdWx0aXBseSBzdW0g YW5kIGFjY3VtdWxhdGUgKi8KK0BAIC02MzU0LDggKzYzOTAsOCBAQCBleDoKKyAgICAgICAgIGNh c2UgMHhlN2MxOiAvKiBWQ0RMRyAtIHZlY3RvciBjb252ZXJ0IGZyb20gbG9naWNhbCA2NC1iaXQg Ki8KKyAgICAgICAgIGNhc2UgMHhlN2MyOiAvKiBWQ0dEIC0gdmVjdG9yIGNvbnZlcnQgdG8gZml4 ZWQgNjQtYml0ICovCisgICAgICAgICBjYXNlIDB4ZTdjMzogLyogVkNERyAtIHZlY3RvciBjb252 ZXJ0IGZyb20gZml4ZWQgNjQtYml0ICovCistICAgICAgICBjYXNlIDB4ZTdjNDogLyogVkxERSAt IHZlY3RvciBmcCBsb2FkIGxlbmd0aGVuZWQgKi8KKy0gICAgICAgIGNhc2UgMHhlN2M1OiAvKiBW TEVEIC0gdmVjdG9yIGZwIGxvYWQgcm91bmRlZCAqLworKwljYXNlIDB4ZTdjNDogLyogVkxERS9W RkxMIC0gdmVjdG9yIGZwIGxvYWQgbGVuZ3RoZW5lZCAqLworKwljYXNlIDB4ZTdjNTogLyogVkxF RC9WRkxSIC0gdmVjdG9yIGZwIGxvYWQgcm91bmRlZCAqLworICAgICAgICAgY2FzZSAweGU3Yzc6 IC8qIFZGSSAtIHZlY3RvciBsb2FkIGZwIGludGVnZXIgKi8KKyAgICAgICAgIGNhc2UgMHhlN2Nj OiAvKiBWRlBTTyAtIHZlY3RvciBmcCBwZXJmb3JtIHNpZ24gb3BlcmF0aW9uICovCisgICAgICAg ICBjYXNlIDB4ZTdjZTogLyogVkZTUSAtIHZlY3RvciBmcCBzcXVhcmUgcm9vdCAqLworQEAgLTYz NjksNiArNjQwNSw4IEBAIGV4OgorICAgICAgICAgY2FzZSAweGU3ZTM6IC8qIFZGQSAtIHZlY3Rv ciBmcCBhZGQgKi8KKyAgICAgICAgIGNhc2UgMHhlN2U1OiAvKiBWRkQgLSB2ZWN0b3IgZnAgZGl2 aWRlICovCisgICAgICAgICBjYXNlIDB4ZTdlNzogLyogVkZNIC0gdmVjdG9yIGZwIG11bHRpcGx5 ICovCisrCWNhc2UgMHhlN2VlOiAvKiBWRk1JTiAtIHZlY3RvciBmcCBtaW5pbXVtICovCisrCWNh c2UgMHhlN2VmOiAvKiBWRk1BWCAtIHZlY3RvciBmcCBtYXhpbXVtICovCisgICAgICAgICBjYXNl IDB4ZTdmMDogLyogVkFWR0wgLSB2ZWN0b3IgYXZlcmFnZSBsb2dpY2FsICovCisgICAgICAgICBj YXNlIDB4ZTdmMTogLyogVkFDQyAtIHZlY3RvciBhZGQgYW5kIGNvbXB1dGUgY2FycnkgKi8KKyAg ICAgICAgIGNhc2UgMHhlN2YyOiAvKiBWQVZHIC0gdmVjdG9yIGF2ZXJhZ2UgKi8KK0BAIC02Mzg2 LDYgKzY0MjQsMTQgQEAgZXg6CisgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICBi cmVhazsKKyAKKysJY2FzZSAweGU2M2Q6IC8qIFZTVFJMIC0gdmVjdG9yIHN0b3JlIHJpZ2h0bW9z dCB3aXRoIGltbWVkLiBsZW5ndGggKi8KKysJICBvYWRkciA9IHMzOTBfcmVjb3JkX2NhbGNfZGlz cCAoZ2RiYXJjaCwgcmVnY2FjaGUsIDAsIGluc25bMV0sIDApOworKwkgIGlmIChyZWNvcmRfZnVs bF9hcmNoX2xpc3RfYWRkX21lbSAob2FkZHIsIGluaWJbM10gKyAxKSkKKysJICAgIHJldHVybiAt MTsKKysJICBpZiAocmVjb3JkX2Z1bGxfYXJjaF9saXN0X2FkZF9yZWcgKHJlZ2NhY2hlLCBTMzkw X0ZQQ19SRUdOVU0pKQorKwkgICAgcmV0dXJuIC0xOworKwkgIGJyZWFrOworKworICAgICAgICAg Y2FzZSAweGU3MDg6IC8qIFZTVEVCIC0gdmVjdG9yIHN0b3JlIGVsZW1lbnQgKi8KKyAgICAgICAg ICAgb2FkZHIgPSBzMzkwX3JlY29yZF9jYWxjX2Rpc3AgKGdkYmFyY2gsIHJlZ2NhY2hlLCBpbmli WzNdLCBpbnNuWzFdLCAwKTsKKyAgICAgICAgICAgaWYgKHJlY29yZF9mdWxsX2FyY2hfbGlzdF9h ZGRfbWVtIChvYWRkciwgMSkpCitAQCAtNjQ4MCwxMyArNjUyNiwyMiBAQCBleDoKKyAgICAgICAg ICAgICByZXR1cm4gLTE7CisgICAgICAgICAgIGJyZWFrOworIAorKwljYXNlIDB4ZTYzYzogLyog VlVQS1ogLSB2ZWN0b3IgdW5wYWNrIHpvbmVkICovCisrCSAgb2FkZHIgPSBzMzkwX3JlY29yZF9j YWxjX2Rpc3AgKGdkYmFyY2gsIHJlZ2NhY2hlLCAwLCBpbnNuWzFdLCAwKTsKKysJICBpZiAocmVj b3JkX2Z1bGxfYXJjaF9saXN0X2FkZF9tZW0gKG9hZGRyLCAoaWJ5dGVbMV0gKyAxKSAmIDMxKSkK KysJICAgIHJldHVybiAtMTsKKysJICBpZiAocmVjb3JkX2Z1bGxfYXJjaF9saXN0X2FkZF9yZWcg KHJlZ2NhY2hlLCBTMzkwX1BTV01fUkVHTlVNKSkKKysJICAgIHJldHVybiAtMTsKKysJICBicmVh azsKKysKKysJY2FzZSAweGU2M2Y6IC8qIFZTVFJMUiAtIHZlY3RvciBzdG9yZSByaWdodG1vc3Qg d2l0aCBsZW5ndGggKi8KKyAgICAgICAgIGNhc2UgMHhlNzNmOiAvKiBWU1RMIC0gdmVjdG9yIHN0 b3JlIHdpdGggbGVuZ3RoICovCisgICAgICAgICAgIG9hZGRyID0gczM5MF9yZWNvcmRfY2FsY19k aXNwIChnZGJhcmNoLCByZWdjYWNoZSwgMCwgaW5zblsxXSwgMCk7CisgICAgICAgICAgIHJlZ2Nh Y2hlX3Jhd19yZWFkX3Vuc2lnbmVkIChyZWdjYWNoZSwgUzM5MF9SMF9SRUdOVU0gKyBpbmliWzNd LCAmdG1wKTsKKyAgICAgICAgICAgdG1wICY9IDB4ZmZmZmZmZmZ1OworLSAgICAgICAgICBpZiAo dG1wID4gMTYpCistICAgICAgICAgICAgdG1wID0gMTY7CistICAgICAgICAgIGlmIChyZWNvcmRf ZnVsbF9hcmNoX2xpc3RfYWRkX21lbSAob2FkZHIsIHRtcCkpCisrCSAgaWYgKHRtcCA+IDE1KQor KwkgICAgdG1wID0gMTU7CisrCSAgaWYgKHJlY29yZF9mdWxsX2FyY2hfbGlzdF9hZGRfbWVtIChv YWRkciwgdG1wICsgMSkpCisgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICBpZiAo cmVjb3JkX2Z1bGxfYXJjaF9saXN0X2FkZF9yZWcgKHJlZ2NhY2hlLCBTMzkwX0ZQQ19SRUdOVU0p KQorICAgICAgICAgICAgIHJldHVybiAtMTsKK0BAIC02NDk0LDYgKzY1NDksMTcgQEAgZXg6Cisg CisgICAgICAgICAvKiAweGU3NDctMHhlNzQ5IHVuZGVmaW5lZCAqLworIAorKwljYXNlIDB4ZTY1 ODogLyogVkNWRCAtIHZlY3RvciBjb252ZXJ0IHRvIGRlY2ltYWwgMzIgYml0ICovCisrCWNhc2Ug MHhlNjU5OiAvKiBWU1JQIC0gdmVjdG9yIHNoaWZ0IGFuZCByb3VuZCBkZWNpbWFsICovCisrCWNh c2UgMHhlNjVhOiAvKiBWQ1ZERyAtIHZlY3RvciBjb252ZXJ0IHRvIGRlY2ltYWwgNjQgYml0Ki8K KysJY2FzZSAweGU2NWI6IC8qIFZQU09QIC0gdmVjdG9yIHBlcmZvcm0gc2lnbiBvcGVyYXRpb24g ZGVjaW1hbCAqLworKwljYXNlIDB4ZTY3MTogLyogVkFQIC0gdmVjdG9yIGFkZCBkZWNpbWFsICov CisrCWNhc2UgMHhlNjczOiAvKiBWU1AgLSB2ZWN0b3Igc3VidHJhY3QgZGVjaW1hbCAqLworKwlj YXNlIDB4ZTY3ODogLyogVk1QIC0gdmVjdG9yIG11bHRpcGx5IGRlY2ltYWwgKi8KKysJY2FzZSAw eGU2Nzk6IC8qIFZNU1AgLSB2ZWN0b3IgbXVsdGlwbHkgZGVjaW1hbCAqLworKwljYXNlIDB4ZTY3 YTogLyogVkRQIC0gdmVjdG9yIGRpdmlkZSBkZWNpbWFsICovCisrCWNhc2UgMHhlNjdiOiAvKiBW UlAgLSB2ZWN0b3IgcmVtYWluZGVyIGRlY2ltYWwgKi8KKysJY2FzZSAweGU2N2U6IC8qIFZTRFAg LSB2ZWN0b3Igc2hpZnQgYW5kIGRpdmlkZSBkZWNpbWFsICovCisgICAgICAgICBjYXNlIDB4ZTc0 YTogLyogVkZUQ0kgLSB2ZWN0b3IgZnAgdGVzdCBkYXRhIGNsYXNzIGltbWVkaWF0ZSAqLworICAg ICAgICAgY2FzZSAweGU3NWM6IC8qIFZJU1RSIC0gdmVjdG9yIGlzb2xhdGUgc3RyaW5nICovCisg ICAgICAgICBjYXNlIDB4ZTc4MDogLyogVkZFRSAtIHZlY3RvciBmaW5kIGVsZW1lbnQgZXF1YWwg Ki8KK0BAIC02NTA0LDcgKzY1NzAsNyBAQCBleDoKKyAgICAgICAgIGNhc2UgMHhlNzk3OiAvKiBW UEtTIC0gdmVjdG9yIHBhY2sgc2F0dXJhdGUgKi8KKyAgICAgICAgIGNhc2UgMHhlN2U4OiAvKiBW RkNFIC0gdmVjdG9yIGZwIGNvbXBhcmUgZXF1YWwgKi8KKyAgICAgICAgIGNhc2UgMHhlN2VhOiAv KiBWRkNIRSAtIHZlY3RvciBmcCBjb21wYXJlIGhpZ2ggb3IgZXF1YWwgKi8KKy0gICAgICAgIGNh c2UgMHhlN2ViOiAvKiBWRkNFIC0gdmVjdG9yIGZwIGNvbXBhcmUgaGlnaCAqLworKwljYXNlIDB4 ZTdlYjogLyogVkZDSCAtIHZlY3RvciBmcCBjb21wYXJlIGhpZ2ggKi8KKyAgICAgICAgIGNhc2Ug MHhlN2Y4OiAvKiBWQ0VRIC0gdmVjdG9yIGNvbXBhcmUgZXF1YWwgKi8KKyAgICAgICAgIGNhc2Ug MHhlN2Y5OiAvKiBWQ0hMIC0gdmVjdG9yIGNvbXBhcmUgaGlnaCBsb2dpY2FsICovCisgICAgICAg ICBjYXNlIDB4ZTdmYjogLyogVkNIIC0gdmVjdG9yIGNvbXBhcmUgaGlnaCAqLworQEAgLTY1MTcs NiArNjU4MywxNCBAQCBleDoKKyAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgIGJy ZWFrOworIAorKwljYXNlIDB4ZTY1ZjogLyogVlRQIC0gdmVjdG9yIHRlc3QgZGVjaW1hbCAqLwor KwkgIC8qIGZsYWdzICsgRlBDICovCisrCSAgaWYgKHJlY29yZF9mdWxsX2FyY2hfbGlzdF9hZGRf cmVnIChyZWdjYWNoZSwgUzM5MF9QU1dNX1JFR05VTSkpCisrCSAgICByZXR1cm4gLTE7CisrCSAg aWYgKHJlY29yZF9mdWxsX2FyY2hfbGlzdF9hZGRfcmVnIChyZWdjYWNoZSwgUzM5MF9GUENfUkVH TlVNKSkKKysJICAgIHJldHVybiAtMTsKKysJICBicmVhazsKKysKKyAgICAgICAgIC8qIDB4ZTc0 Yi0weGU3NGMgdW5kZWZpbmVkICovCisgICAgICAgICAvKiAweGU3NGUtMHhlNzRmIHVuZGVmaW5l ZCAqLworICAgICAgICAgLyogMHhlNzUxIHVuZGVmaW5lZCAqLworQEAgLTY1MjQsMjYgKzY1OTgs MjYgQEAgZXg6CisgICAgICAgICAvKiAweGU3NTctMHhlNzViIHVuZGVmaW5lZCAqLworICAgICAg ICAgLyogMHhlNzVkLTB4ZTc1ZSB1bmRlZmluZWQgKi8KKyAgICAgICAgIC8qIDB4ZTc2MyB1bmRl ZmluZWQgKi8KKy0gICAgICAgIC8qIDB4ZTc2YyB1bmRlZmluZWQgKi8KKy0gICAgICAgIC8qIDB4 ZTc2ZS0weGU3NmYgdW5kZWZpbmVkICovCisgICAgICAgICAvKiAweGU3NzEgdW5kZWZpbmVkICov CisgICAgICAgICAvKiAweGU3NzYgdW5kZWZpbmVkICovCisgICAgICAgICAvKiAweGU3NzkgdW5k ZWZpbmVkICovCisgICAgICAgICAvKiAweGU3N2IgdW5kZWZpbmVkICovCisgICAgICAgICAvKiAw eGU3ODMgdW5kZWZpbmVkICovCistICAgICAgICAvKiAweGU3ODUtMHhlNzg5IHVuZGVmaW5lZCAq LworKwkvKiAweGU3ODYtMHhlNzg5IHVuZGVmaW5lZCAqLworICAgICAgICAgLyogMHhlNzhiIHVu ZGVmaW5lZCAqLworICAgICAgICAgLyogMHhlNzkwLTB4ZTc5MyB1bmRlZmluZWQgKi8KKyAgICAg ICAgIC8qIDB4ZTc5NiB1bmRlZmluZWQgKi8KKy0gICAgICAgIC8qIDB4ZTc5OC0weGU3YTAgdW5k ZWZpbmVkICovCistICAgICAgICAvKiAweGU3YTggdW5kZWZpbmVkICovCisrCS8qIDB4ZTc5OC0w eGU3OWQgdW5kZWZpbmVkICovCisrCS8qIDB4ZTdhMCB1bmRlZmluZWQgKi8KKysJLyogMHhlN2E4 IHVuZGVmaW5lZCAqLworICAgICAgICAgLyogMHhlN2IwLTB4ZTdiMyB1bmRlZmluZWQgKi8KKy0g ICAgICAgIC8qIDB4ZTdiNS0weGU3YjggdW5kZWZpbmVkICovCisrCS8qIDB4ZTdiNS0weGU3Yjcg dW5kZWZpbmVkICovCisgICAgICAgICAvKiAweGU3YmEgdW5kZWZpbmVkICovCisgICAgICAgICAv KiAweGU3YmUgdW5kZWZpbmVkICovCisgICAgICAgICAvKiAweGU3YzYgdW5kZWZpbmVkICovCisg ICAgICAgICAvKiAweGU3YzgtMHhlN2M5IHVuZGVmaW5lZCAqLworIAorKwljYXNlIDB4ZTY3Nzog LyogVkNQIC0gdmVjdG9yIGNvbXBhcmUgZGVjaW1hbCAqLworICAgICAgICAgY2FzZSAweGU3Y2E6 IC8qIFdGSyAtIHZlY3RvciBmcCBjb21wYXJlIGFuZCBzaWduYWwgc2NhbGFyICovCisgICAgICAg ICBjYXNlIDB4ZTdjYjogLyogV0ZDIC0gdmVjdG9yIGZwIGNvbXBhcmUgc2NhbGFyICovCisgICAg ICAgICBjYXNlIDB4ZTdkODogLyogVlRNIC0gdmVjdG9yIHRlc3QgdW5kZXIgbWFzayAqLworQEAg LTY1NjgsNyArNjY0Miw3IEBAIGV4OgorICAgICAgICAgLyogMHhlN2U0IHVuZGVmaW5lZCAqLwor ICAgICAgICAgLyogMHhlN2U2IHVuZGVmaW5lZCAqLworICAgICAgICAgLyogMHhlN2U5IHVuZGVm aW5lZCAqLworLSAgICAgICAgLyogMHhlN2VjLTB4ZTdlZiB1bmRlZmluZWQgKi8KKysJLyogMHhl N2VjLTB4ZTdlZCB1bmRlZmluZWQgKi8KKyAgICAgICAgIC8qIDB4ZTdmNCB1bmRlZmluZWQgKi8K KyAgICAgICAgIC8qIDB4ZTdmNiB1bmRlZmluZWQgKi8KKyAgICAgICAgIC8qIDB4ZTdmYSB1bmRl ZmluZWQgKi8KK0BAIC03MDQ4LDggKzcxMjIsNiBAQCBleDoKKyAgICAgICAgIH0KKyAgICAgICBi cmVhazsKKyAKKy0gICAgLyogMHhlNiB1bmRlZmluZWQgKi8KKy0KKyAgICAgY2FzZSAweGVjOgor ICAgICAgIC8qIFJJRS9SSVMvUlJTLWZvcm1hdCBpbnN0cnVjdGlvbiAqLworICAgICAgIHN3aXRj aCAoaWJ5dGVbMF0gPDwgOCB8IGlieXRlWzVdKQoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6MTQyMDMw NC1zMzkweC0zM29mMzUucGF0Y2ggYi9nZGItcmhiejE0MjAzMDQtczM5MHgtMzNvZjM1LnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMxYzAwMjEKLS0tIC9kZXYvbnVs bAorKysgYi9nZGItcmhiejE0MjAzMDQtczM5MHgtMzNvZjM1LnBhdGNoCkBAIC0wLDAgKzEsNDkg QEAKK2NvbW1pdCA0NzgyNmNkYmVjMjU0OGNkMWQyNWFjZjRjZmFmOTA4YWU4OGYzMzI1CitBdXRo b3I6IEFuZHJlYXMgS3JlYmJlbCA8a3JlYmJlbEBsaW51eC52bmV0LmlibS5jb20+CitEYXRlOiAg IEZyaSBKdWwgMjEgMTA6NTQ6MDYgMjAxNyArMDIwMAorCisgICAgUy8zOTA6IFN1cHBvcnQgejE0 IGFzIENQVSBuYW1lLgorICAgIAorICAgIFdpdGggSUJNIHoxNCBvZmZpY2lhbGx5IGFubm91bmNl ZCBJIGNhbiBhZGQgejE0IGFzIENQVSBuYW1lLgorICAgIAorICAgIE5vIHJlZ3Jlc3Npb25zIHdp dGggdGhhdCBwYXRjaCBvbiBzMzkweC4KKyAgICAKKyAgICBnYXMvQ2hhbmdlTG9nOgorICAgIAor ICAgIDIwMTctMDctMjEgIEFuZHJlYXMgS3JlYmJlbCAgPGtyZWJiZWxAbGludXgudm5ldC5pYm0u Y29tPgorICAgIAorICAgICAgICAgICAgKiBjb25maWcvdGMtczM5MC5jIChzMzkwX3BhcnNlX2Nw dSk6IEFkZCB6MTQgYXMgYWx0ZXJuYXRlIENQVQorICAgICAgICAgICAgbmFtZS4KKyAgICAgICAg ICAgICogZG9jL2FzLnRleGluZm86IEFkZCB6MTQgdG8gQ1BVIHN0cmluZyBsaXN0LgorICAgICAg ICAgICAgKiBkb2MvYy1zMzkwLnRleGk6IExpa2V3aXNlLgorICAgIAorICAgIG9wY29kZXMvQ2hh bmdlTG9nOgorICAgIAorICAgIDIwMTctMDctMjEgIEFuZHJlYXMgS3JlYmJlbCAgPGtyZWJiZWxA bGludXgudm5ldC5pYm0uY29tPgorICAgIAorICAgICAgICAgICAgKiBzMzkwLW1rb3BjLmMgKG1h aW4pOiBFbmFibGUgejE0IGFzIENQVSBzdHJpbmcgaW4gdGhlIG9wY29kZQorICAgICAgICAgICAg dGFibGUuCisKKyMjIyBhL29wY29kZXMvQ2hhbmdlTG9nCisjIyMgYi9vcGNvZGVzL0NoYW5nZUxv ZworIyMgLTEsMyArMSw4IEBACisrMjAxNy0wNy0yMSAgQW5kcmVhcyBLcmViYmVsICA8a3JlYmJl bEBsaW51eC52bmV0LmlibS5jb20+CisrCisrCSogczM5MC1ta29wYy5jIChtYWluKTogRW5hYmxl IHoxNCBhcyBDUFUgc3RyaW5nIGluIHRoZSBvcGNvZGUKKysJdGFibGUuCisrCisgMjAxNy0wNy0y MCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KKyAKKyAJKiBwby9kZS5wbzogVXBk YXRlZCBHZXJtYW4gdHJhbnNsYXRpb24uCistLS0gYS9vcGNvZGVzL3MzOTAtbWtvcGMuYworKysr IGIvb3Bjb2Rlcy9zMzkwLW1rb3BjLmMKK0BAIC0zNzQsNyArMzc0LDggQEAgbWFpbiAodm9pZCkK KyAgICAgICBlbHNlIGlmIChzdHJjbXAgKGNwdV9zdHJpbmcsICJ6MTMiKSA9PSAwCisgCSAgICAg ICB8fCBzdHJjbXAgKGNwdV9zdHJpbmcsICJhcmNoMTEiKSA9PSAwKQorIAltaW5fY3B1ID0gUzM5 MF9PUENPREVfWjEzOworLSAgICAgIGVsc2UgaWYgKHN0cmNtcCAoY3B1X3N0cmluZywgImFyY2gx MiIpID09IDApCisrICAgICAgZWxzZSBpZiAoc3RyY21wIChjcHVfc3RyaW5nLCAiejE0IikgPT0g MAorKwkgICAgICAgfHwgc3RyY21wIChjcHVfc3RyaW5nLCAiYXJjaDEyIikgPT0gMCkKKyAJbWlu X2NwdSA9IFMzOTBfT1BDT0RFX0FSQ0gxMjsKKyAgICAgICBlbHNlIHsKKyAJZnByaW50ZiAoc3Rk ZXJyLCAiQ291bGRuJ3QgcGFyc2UgY3B1IHN0cmluZyAlc1xuIiwgY3B1X3N0cmluZyk7CgpkaWZm IC0tZ2l0IGEvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTM0b2YzNS5wYXRjaCBiL2dkYi1yaGJ6MTQy MDMwNC1zMzkweC0zNG9mMzUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uNzU0NjZkNQotLS0gL2Rldi9udWxsCisrKyBiL2dkYi1yaGJ6MTQyMDMwNC1zMzkweC0zNG9m MzUucGF0Y2gKQEAgLTAsMCArMSw1MyBAQAorY29tbWl0IDc5YzEyZmFlZWE1N2U2MTM2NGI2YTdh M2U0MTFiMDk2ZWRjZTk4OWMKK0F1dGhvcjogQW5kcmVhcyBLcmViYmVsIDxrcmViYmVsQGxpbnV4 LnZuZXQuaWJtLmNvbT4KK0RhdGU6ICAgRnJpIEp1bCAyOCAxNzo1OToyNSAyMDE3ICswMjAwCisK KyAgICBTLzM5MDogRml4IHNlZ2ZhdWx0IHdoZW4gbGlua2luZyAtc2hhcmVkIC1ub3N0YXJ0Zmls ZXMKKyAgICAKKyAgICBSZWdyZXNzaW9uLXRlc3RlZCBvbiBzMzkweC4KKyAgICAKKyAgICBiZmQv Q2hhbmdlTG9nOgorICAgIAorICAgIDIwMTctMDctMjggIEFuZHJlYXMgS3JlYmJlbCAgPGtyZWJi ZWxAbGludXgudm5ldC5pYm0uY29tPgorICAgIAorICAgICAgICAgICAgKiBlbGYzMi1zMzkwLmMg KGVsZl9zMzkwX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogQWRkIE5VTEwKKyAgICAgICAgICAg IHBvaW50ZXIgY2hlY2sgZm9yIGh0YWItPmVsZi5pcmVscGx0LgorICAgICAgICAgICAgKiBlbGY2 NC1zMzkwLmMgKGVsZl9zMzkwX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zKTogTGlrZXdpc2UuCisK Ky0tLSBhL2JmZC9lbGYzMi1zMzkwLmMKKysrKyBiL2JmZC9lbGYzMi1zMzkwLmMKK0BAIC0zOTQx LDcgKzM5NDEsOSBAQCBlbGZfczM5MF9maW5pc2hfZHluYW1pY19zZWN0aW9ucyAoYmZkICpvdXRw dXRfYmZkLAorIAkgICAgICBicmVhazsKKyAKKyAJICAgIGNhc2UgRFRfUExUUkVMU1o6CistCSAg ICAgIGR5bi5kX3VuLmRfdmFsID0gaHRhYi0+ZWxmLnNyZWxwbHQtPnNpemUgKyBodGFiLT5lbGYu aXJlbHBsdC0+c2l6ZTsKKysJICAgICAgZHluLmRfdW4uZF92YWwgPSBodGFiLT5lbGYuc3JlbHBs dC0+c2l6ZTsKKysJICAgICAgaWYgKGh0YWItPmVsZi5pcmVscGx0KQorKwkJZHluLmRfdW4uZF92 YWwgKz0gaHRhYi0+ZWxmLmlyZWxwbHQtPnNpemU7CisgCSAgICAgIGJyZWFrOworIAkgICAgfQor IAorLS0tIGEvYmZkL2VsZjY0LXMzOTAuYworKysrIGIvYmZkL2VsZjY0LXMzOTAuYworQEAgLTM3 NDUsNyArMzc0NSw5IEBAIGVsZl9zMzkwX2ZpbmlzaF9keW5hbWljX3NlY3Rpb25zIChiZmQgKm91 dHB1dF9iZmQsCisgCSAgICAgIGJyZWFrOworIAorIAkgICAgY2FzZSBEVF9QTFRSRUxTWjoKKy0J ICAgICAgZHluLmRfdW4uZF92YWwgPSBodGFiLT5lbGYuc3JlbHBsdC0+c2l6ZSArIGh0YWItPmVs Zi5pcmVscGx0LT5zaXplOworKwkgICAgICBkeW4uZF91bi5kX3ZhbCA9IGh0YWItPmVsZi5zcmVs cGx0LT5zaXplOworKwkgICAgICBpZiAoaHRhYi0+ZWxmLmlyZWxwbHQpCisrCQlkeW4uZF91bi5k X3ZhbCArPSBodGFiLT5lbGYuaXJlbHBsdC0+c2l6ZTsKKyAJICAgICAgYnJlYWs7CisgCisgCSAg ICBjYXNlIERUX1JFTEFTWjoKK0BAIC0zNzU2LDcgKzM3NTgsOSBAQCBlbGZfczM5MF9maW5pc2hf ZHluYW1pY19zZWN0aW9ucyAoYmZkICpvdXRwdXRfYmZkLAorIAkJIGxpbmtlciBzY3JpcHQgYXJy YW5nZXMgZm9yIC5yZWxhLnBsdCB0byBmb2xsb3cgYWxsCisgCQkgb3RoZXIgcmVsb2NhdGlvbiBz ZWN0aW9ucywgd2UgZG9uJ3QgaGF2ZSB0byB3b3JyeQorIAkJIGFib3V0IGNoYW5naW5nIHRoZSBE VF9SRUxBIGVudHJ5LiAgKi8KKy0JICAgICAgZHluLmRfdW4uZF92YWwgLT0gaHRhYi0+ZWxmLnNy ZWxwbHQtPnNpemUgKyBodGFiLT5lbGYuaXJlbHBsdC0+c2l6ZTsKKysJICAgICAgZHluLmRfdW4u ZF92YWwgLT0gaHRhYi0+ZWxmLnNyZWxwbHQtPnNpemU7CisrCSAgICAgIGlmIChodGFiLT5lbGYu aXJlbHBsdCkKKysJCWR5bi5kX3VuLmRfdmFsIC09IGh0YWItPmVsZi5pcmVscGx0LT5zaXplOwor IAkgICAgICBicmVhazsKKyAJICAgIH0KKyAKCmRpZmYgLS1naXQgYS9nZGItcmhiejE0MjAzMDQt czM5MHgtMzVvZjM1LnBhdGNoIGIvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTM1b2YzNS5wYXRjaApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMDdlODFmCi0tLSAvZGV2L251bGwK KysrIGIvZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTM1b2YzNS5wYXRjaApAQCAtMCwwICsxLDY3IEBA Citjb21taXQgMWVmNjkyZWEyMzcxNDg3NmNjMzBiMWEzYWIzZWYzM2ExMzY5ZjE3YQorQXV0aG9y OiBBbmRyZWFzIEtyZWJiZWwgPGtyZWJiZWxAbGludXgudm5ldC5pYm0uY29tPgorRGF0ZTogICBU dWUgQXVnIDEgMTU6MTM6NDAgMjAxNyArMDIwMAorCisgICAgUy8zOTA6IEZpeCBjbGFpbWZpbGUg ZmFpbHVyZXMKKyAgICAKKyAgICBUaGlzIGZpeGVzIGEgc2VnZmF1bHQgd2hlbiB0cnlpbmcgdG8g YWNjZXNzIHRoZSBsb2NhbF9wbHQgZmllbGQgaW4gdGhlCisgICAgczM5MCBzcGVjaWZpYyBlbGYg ZGF0YSBhbHRob3VnIHRoZSB1bmRlcmxheWluZyBvYmplY3QgaXMgYSBnZW5lcmljIGVsZgorICAg IG9iamVjdC4KKyAgICAKKyAgICBUaGlzIGZpeGVzIHRoZSBmb2xsb3dpbmcgdGVzdHN1aXRlIGZh aWx1cmVzOgorICAgIAorICAgIDwgRkFJTDogcGx1Z2luIGNsYWltZmlsZSByZXBsYWNlIHN5bWJv bCB3aXRoIHNvdXJjZQorICAgIDwgRkFJTDogcGx1Z2luIGNsYWltZmlsZSByZXNvbHZlIHN5bWJv bCB3aXRoIHNvdXJjZQorICAgIDwgRkFJTDogcGx1Z2luIGNsYWltZmlsZSByZXBsYWNlIGZpbGUg d2l0aCBzb3VyY2UKKyAgICA8IEZBSUw6IHBsdWdpbiBzZXQgc3ltYm9sIHZpc2liaWxpdHkgd2l0 aCBzb3VyY2UKKyAgICA8IEZBSUw6IHBsdWdpbiBpZ25vcmUgbGliIHdpdGggc291cmNlCisgICAg PCBGQUlMOiBwbHVnaW4gY2xhaW1maWxlIHJlcGxhY2UgbGliIHdpdGggc291cmNlCisgICAgPCBG QUlMOiBwbHVnaW4gMiB3aXRoIHNvdXJjZSBsaWIKKyAgICA8IEZBSUw6IGxvYWQgcGx1Z2luIDIg d2l0aCBzb3VyY2UKKyAgICA8IEZBSUw6IHBsdWdpbiAzIHdpdGggc291cmNlIGxpYgorICAgIDwg RkFJTDogbG9hZCBwbHVnaW4gMyB3aXRoIHNvdXJjZQorICAgIAorICAgIGJmZC9DaGFuZ2VMb2c6 CisgICAgCisgICAgMjAxNy0wOC0wMSAgQW5kcmVhcyBLcmViYmVsICA8a3JlYmJlbEBsaW51eC52 bmV0LmlibS5jb20+CisgICAgCisgICAgICAgICAgICAqIGVsZjMyLXMzOTAuYyAoZWxmX3MzOTBf ZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBTa2lwIGlmIGl0CisgICAgICAgICAgICBpc24ndCB0 aGUgUy8zOTAgc3BlY2lmaWMgZWxmIGRhdGEuCisgICAgICAgICAgICAqIGVsZjY0LXMzOTAuYyAo ZWxmX3MzOTBfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KKworIyMjIGEvYmZk L0NoYW5nZUxvZworIyMjIGIvYmZkL0NoYW5nZUxvZworIyMgLTEsMyArMSw5IEBACisrMjAxNy0w OC0wMSAgQW5kcmVhcyBLcmViYmVsICA8a3JlYmJlbEBsaW51eC52bmV0LmlibS5jb20+CisrCisr CSogZWxmMzItczM5MC5jIChlbGZfczM5MF9maW5pc2hfZHluYW1pY19zZWN0aW9ucyk6IFNraXAg aWYgaXQKKysJaXNuJ3QgdGhlIFMvMzkwIHNwZWNpZmljIGVsZiBkYXRhLgorKwkqIGVsZjY0LXMz OTAuYyAoZWxmX3MzOTBfZmluaXNoX2R5bmFtaWNfc2VjdGlvbnMpOiBMaWtld2lzZS4KKysKKyAy MDE3LTA3LTMxICBLdWFuLUxpbiBDaGVuICA8cnVmdXNAYW5kZXN0ZWNoLmNvbT4KKyAKKyAJKiBl bGZ4eC1yaXNjdi5jIChyaXNjdl9lbGZfYWRkX3N1Yl9yZWxvYyk6IE5ldyBmdW5jdGlvbi4KKy0t LSBhL2JmZC9lbGYzMi1zMzkwLmMKKysrKyBiL2JmZC9lbGYzMi1zMzkwLmMKK0BAIC00MDAxLDYg KzQwMDEsOSBAQCBlbGZfczM5MF9maW5pc2hfZHluYW1pY19zZWN0aW9ucyAoYmZkICpvdXRwdXRf YmZkLAorIAorICAgICAgIHN5bXRhYl9oZHIgPSAmZWxmX3N5bXRhYl9oZHIgKGliZmQpOworIAor KyAgICAgIGlmICghaXNfczM5MF9lbGYgKGliZmQpKQorKwljb250aW51ZTsKKysKKyAgICAgICBs b2NhbF9wbHQgPSBlbGZfczM5MF9sb2NhbF9wbHQgKGliZmQpOworICAgICAgIGlmIChsb2NhbF9w bHQgIT0gTlVMTCkKKyAJZm9yIChpID0gMDsgaSA8IHN5bXRhYl9oZHItPnNoX2luZm87IGkrKykK Ky0tLSBhL2JmZC9lbGY2NC1zMzkwLmMKKysrKyBiL2JmZC9lbGY2NC1zMzkwLmMKK0BAIC0zODE0 LDYgKzM4MTQsOSBAQCBlbGZfczM5MF9maW5pc2hfZHluYW1pY19zZWN0aW9ucyAoYmZkICpvdXRw dXRfYmZkLAorIAorICAgICAgIHN5bXRhYl9oZHIgPSAmZWxmX3N5bXRhYl9oZHIgKGliZmQpOwor IAorKyAgICAgIGlmICghaXNfczM5MF9lbGYgKGliZmQpKQorKwljb250aW51ZTsKKysKKyAgICAg ICBsb2NhbF9wbHQgPSBlbGZfczM5MF9sb2NhbF9wbHQgKGliZmQpOworICAgICAgIGlmIChsb2Nh bF9wbHQgIT0gTlVMTCkKKyAJZm9yIChpID0gMDsgaSA8IHN5bXRhYl9oZHItPnNoX2luZm87IGkr KykKCmRpZmYgLS1naXQgYS9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjBvZjI1LnBhdGNoIGIvZ2Ri LXJoYno3OTU0MjQtYml0cG9zLTIwb2YyNS5wYXRjaAppbmRleCA1MThmODdiLi5lOGQ4MTZkIDEw MDY0NAotLS0gYS9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjBvZjI1LnBhdGNoCisrKyBiL2dkYi1y aGJ6Nzk1NDI0LWJpdHBvcy0yMG9mMjUucGF0Y2gKQEAgLTQ2MywxMCArNDYzLDEwIEBAIENvbnRl bnQtVHlwZTogdGV4dC94LXBhdGNoCiBDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CiBD b250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1iaXRwb3MtbWFpbi5wYXRj aAogCi1JbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2FkYS1sYW5nLmMKK0luZGV4OiBn ZGItOC4wL2dkYi9hZGEtbGFuZy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0 MjAub3JpZy9nZGIvYWRhLWxhbmcuYwkyMDE3LTA0LTIwIDIzOjA4OjU0LjE0MjM5NDY3MSArMDIw MAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9hZGEtbGFuZy5jCTIwMTctMDQtMjAgMjM6 MDg6NTYuOTY3NDEwNTkwICswMjAwCistLS0gZ2RiLTguMC5vcmlnL2dkYi9hZGEtbGFuZy5jCTIw MTctMDgtMTkgMjA6MDQ6NTkuNzg1NzgwNTAxICswMjAwCisrKysgZ2RiLTguMC9nZGIvYWRhLWxh bmcuYwkyMDE3LTA4LTE5IDIwOjA1OjEwLjA1Njg3NjU4OSArMDIwMAogQEAgLTc2LDcgKzc2LDcg QEAKICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICpkZXNjX2JvdW5kcyAoc3RydWN0IHZhbHVlICop OwpAQCAtODUwLDEwICs4NTAsMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9h ZGEtbGFuZy5jCiAgICAgICAgaW50IGVsdF9iaXRzaXplID0gVFlQRV9GSUVMRF9CSVRTSVpFICh0 eXBlMCwgMCk7CiAgCiAgICAgICAgVFlQRV9GSUVMRF9CSVRTSVpFIChyZXN1bHQsIDApID0gVFlQ RV9GSUVMRF9CSVRTSVpFICh0eXBlMCwgMCk7Ci1JbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAv Z2RiL2FkYS1sYW5nLmgKK0luZGV4OiBnZGItOC4wL2dkYi9hZGEtbGFuZy5oCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAub3JpZy9nZGIvYWRhLWxhbmcuaAkyMDE3LTA0LTIw IDIzOjA4OjU0LjE0MzM5NDY3NiArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9h ZGEtbGFuZy5oCTIwMTctMDQtMjAgMjM6MDg6NTYuOTY3NDEwNTkwICswMjAwCistLS0gZ2RiLTgu MC5vcmlnL2dkYi9hZGEtbGFuZy5oCTIwMTctMDgtMTkgMjA6MDQ6NTkuNzg2NzgwNTEwICswMjAw CisrKysgZ2RiLTguMC9nZGIvYWRhLWxhbmcuaAkyMDE3LTA4LTE5IDIwOjA1OjEwLjA1Njg3NjU4 OSArMDIwMAogQEAgLTE2OCw3ICsxNjgsNyBAQAogIGV4dGVybiB2b2lkIGFkYV9wcmludF90eXBl ZGVmIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHN5bWJvbCAqbmV3X3N5bWJvbCwKICAJCQkg ICAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSk7CkBAIC04ODEsMTAgKzg4MSwxMCBAQCBJbmRl eDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2FkYS1sYW5nLmgKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0eXBlICopOwogIAog IGV4dGVybiBzdHJ1Y3QgdHlwZSAqYWRhX2NvZXJjZV90b19zaW1wbGVfYXJyYXlfdHlwZSAoc3Ry dWN0IHR5cGUgKik7Ci1JbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2FkYS10eXBlcHJp bnQuYworSW5kZXg6IGdkYi04LjAvZ2RiL2FkYS10eXBlcHJpbnQuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03Ljk5LjkwLjIwMTcwNDIwLm9yaWcvZ2RiL2FkYS10eXBlcHJpbnQuYwkyMDE3LTA0LTIw IDIzOjA4OjU0LjE0MzM5NDY3NiArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9h ZGEtdHlwZXByaW50LmMJMjAxNy0wNC0yMCAyMzowODo1Ni45Njc0MTA1OTAgKzAyMDAKKy0tLSBn ZGItOC4wLm9yaWcvZ2RiL2FkYS10eXBlcHJpbnQuYwkyMDE3LTA4LTE5IDIwOjA0OjU5Ljc4Njc4 MDUxMCArMDIwMAorKysrIGdkYi04LjAvZ2RiL2FkYS10eXBlcHJpbnQuYwkyMDE3LTA4LTE5IDIw OjA1OjEwLjA1Nzg3NjU5OCArMDIwMAogQEAgLTg5MSw4ICs4OTEsOCBAQAogIAkgICAgY29uc3Qg Y2hhciAqbmFtZSA9IGFkYV90eXBlX25hbWUgKHR5cGUpOwogIApAQCAtOTA2LDEwICs5MDYsMTAg QEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9hZGEtdHlwZXByaW50LmMKICAJYnJl YWs7CiAgICAgICAgY2FzZSBUWVBFX0NPREVfRU5VTToKICAJaWYgKHNob3cgPCAwKQotSW5kZXg6 IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9hZGEtdmFscHJpbnQuYworSW5kZXg6IGdkYi04LjAv Z2RiL2FkYS12YWxwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAu b3JpZy9nZGIvYWRhLXZhbHByaW50LmMJMjAxNy0wNC0yMCAyMzowODo1NC4xNDQzOTQ2ODIgKzAy MDAKLSsrKyBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvYWRhLXZhbHByaW50LmMJMjAxNy0wNC0y MCAyMzowODo1Ni45Njg0MTA1OTUgKzAyMDAKKy0tLSBnZGItOC4wLm9yaWcvZ2RiL2FkYS12YWxw cmludC5jCTIwMTctMDgtMTkgMjA6MDQ6NTkuNzg3NzgwNTIwICswMjAwCisrKysgZ2RiLTguMC9n ZGIvYWRhLXZhbHByaW50LmMJMjAxNy0wOC0xOSAyMDowNToxMC4wNTc4NzY1OTggKzAyMDAKIEBA IC0zMywxMSArMzMsMTEgQEAKICAjaW5jbHVkZSAib2JqZmlsZXMuaCIKICAKQEAgLTEwNTQsMTAg KzEwNTQsMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9hZGEtdmFscHJpbnQu YwogIAkgICAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCSAgICAg ICBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9v cHRpb25zICpvcHRpb25zKQotSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9hbm5vdGF0 ZS5jCitJbmRleDogZ2RiLTguMC9nZGIvYW5ub3RhdGUuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 Ljk5LjkwLjIwMTcwNDIwLm9yaWcvZ2RiL2Fubm90YXRlLmMJMjAxNy0wNC0yMCAyMzowODo1NC4x NDQzOTQ2ODIgKzAyMDAKLSsrKyBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvYW5ub3RhdGUuYwky MDE3LTA0LTIwIDIzOjA4OjU2Ljk2ODQxMDU5NSArMDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIv YW5ub3RhdGUuYwkyMDE3LTA4LTE5IDIwOjA0OjU5Ljc4Nzc4MDUyMCArMDIwMAorKysrIGdkYi04 LjAvZ2RiL2Fubm90YXRlLmMJMjAxNy0wOC0xOSAyMDowNToxMC4wNTc4NzY1OTggKzAyMDAKIEBA IC01MzMsMjEgKzUzMywyMSBAQAogIH0KICAMCkBAIC0xMDg0LDEwICsxMDg0LDEwIEBAIEluZGV4 OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvYW5ub3RhdGUuYwogIH0KICAKICB2b2lkCi1JbmRl eDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2Fubm90YXRlLmgKK0luZGV4OiBnZGItOC4wL2dk Yi9hbm5vdGF0ZS5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAub3JpZy9n ZGIvYW5ub3RhdGUuaAkyMDE3LTA0LTIwIDIzOjA4OjU0LjE0NTM5NDY4OCArMDIwMAotKysrIGdk Yi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9hbm5vdGF0ZS5oCTIwMTctMDQtMjAgMjM6MDg6NTYuOTY4 NDEwNTk1ICswMjAwCistLS0gZ2RiLTguMC5vcmlnL2dkYi9hbm5vdGF0ZS5oCTIwMTctMDgtMTkg MjA6MDQ6NTkuNzg4NzgwNTI5ICswMjAwCisrKysgZ2RiLTguMC9nZGIvYW5ub3RhdGUuaAkyMDE3 LTA4LTE5IDIwOjA1OjEwLjA1ODg3NjYwNyArMDIwMAogQEAgLTkyLDggKzkyLDggQEAKICBleHRl cm4gdm9pZCBhbm5vdGF0ZV9mcmFtZV93aGVyZSAodm9pZCk7CiAgZXh0ZXJuIHZvaWQgYW5ub3Rh dGVfZnJhbWVfZW5kICh2b2lkKTsKQEAgLTEwOTksMTEgKzEwOTksMTEgQEAgSW5kZXg6IGdkYi03 Ljk5LjkwLjIwMTcwNDIwL2dkYi9hbm5vdGF0ZS5oCiAgZXh0ZXJuIHZvaWQgYW5ub3RhdGVfZWx0 X3JlcF9lbmQgKHZvaWQpOwogIGV4dGVybiB2b2lkIGFubm90YXRlX2VsdCAodm9pZCk7CiAgZXh0 ZXJuIHZvaWQgYW5ub3RhdGVfYXJyYXlfc2VjdGlvbl9lbmQgKHZvaWQpOwotSW5kZXg6IGdkYi03 Ljk5LjkwLjIwMTcwNDIwL2dkYi9hcm0tbGludXgtbmF0LmMKK0luZGV4OiBnZGItOC4wL2dkYi9h cm0tbGludXgtbmF0LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45OS45MC4yMDE3MDQyMC5vcmln L2dkYi9hcm0tbGludXgtbmF0LmMJMjAxNy0wNC0yMCAyMzowODo1NC4xNDUzOTQ2ODggKzAyMDAK LSsrKyBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvYXJtLWxpbnV4LW5hdC5jCTIwMTctMDQtMjAg MjM6MDg6NTYuOTY5NDEwNjAxICswMjAwCi1AQCAtMTA2NSw3ICsxMDY1LDcgQEAKKy0tLSBnZGIt OC4wLm9yaWcvZ2RiL2FybS1saW51eC1uYXQuYwkyMDE3LTA4LTE5IDIwOjA0OjU5Ljc4ODc4MDUy OSArMDIwMAorKysrIGdkYi04LjAvZ2RiL2FybS1saW51eC1uYXQuYwkyMDE3LTA4LTE5IDIwOjA1 OjEwLjA1ODg3NjYwNyArMDIwMAorQEAgLTEwNjcsNyArMTA2Nyw3IEBACiAgICAgQUREUj8gICov CiAgc3RhdGljIGludAogIGFybV9saW51eF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0 cnVjdCB0YXJnZXRfb3BzICpzZWxmLApAQCAtMTExMiwxMCArMTExMiwxMCBAQCBJbmRleDogZ2Ri LTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2FybS1saW51eC1uYXQuYwogIHsKICAgIGNvbnN0IHN0cnVj dCBhcm1fbGludXhfaHdicF9jYXAgKmNhcCA9IGFybV9saW51eF9nZXRfaHdicF9jYXAgKCk7CiAg ICBDT1JFX0FERFIgbWF4X3dwX2xlbmd0aCwgYWxpZ25lZF9hZGRyOwotSW5kZXg6IGdkYi03Ljk5 LjkwLjIwMTcwNDIwL2dkYi9heC1nZGIuYworSW5kZXg6IGdkYi04LjAvZ2RiL2F4LWdkYi5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAub3JpZy9nZGIvYXgtZ2RiLmMJMjAx Ny0wNC0yMCAyMzowODo1NC4xNDYzOTQ2OTQgKzAyMDAKLSsrKyBnZGItNy45OS45MC4yMDE3MDQy MC9nZGIvYXgtZ2RiLmMJMjAxNy0wNC0yMCAyMzoxMDoyNC4xNTQ5MDE4NzcgKzAyMDAKKy0tLSBn ZGItOC4wLm9yaWcvZ2RiL2F4LWdkYi5jCTIwMTctMDgtMTkgMjA6MDQ6NTkuNzg5NzgwNTM4ICsw MjAwCisrKysgZ2RiLTguMC9nZGIvYXgtZ2RiLmMJMjAxNy0wOC0xOSAyMDowNToxMC4wNTk4NzY2 MTcgKzAyMDAKIEBAIC04MywxMiArODMsMTIgQEAKICBzdGF0aWMgdm9pZCBnZW5fc2lnbl9leHRl bmQgKHN0cnVjdCBhZ2VudF9leHByICosIHN0cnVjdCB0eXBlICopOwogIHN0YXRpYyB2b2lkIGdl bl9leHRlbmQgKHN0cnVjdCBhZ2VudF9leHByICosIHN0cnVjdCB0eXBlICopOwpAQCAtMTIxNCwx MCArMTIxNCwxMCBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2F4LWdkYi5jCiAg ewogICAgaW50IGksIHJzbHQ7CiAgICBpbnQgbmJhc2VzID0gVFlQRV9OX0JBU0VDTEFTU0VTICh0 eXBlKTsKLUluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvYXgtZ2VuZXJhbC5jCitJbmRl eDogZ2RiLTguMC9nZGIvYXgtZ2VuZXJhbC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOTkuOTAu MjAxNzA0MjAub3JpZy9nZGIvYXgtZ2VuZXJhbC5jCTIwMTctMDQtMjAgMjM6MDg6NTQuMTQ3Mzk0 Njk5ICswMjAwCi0rKysgZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2F4LWdlbmVyYWwuYwkyMDE3 LTA0LTIwIDIzOjA4OjU2Ljk3MDQxMDYwNiArMDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvYXgt Z2VuZXJhbC5jCTIwMTctMDgtMTkgMjA6MDQ6NTkuNzg5NzgwNTM4ICswMjAwCisrKysgZ2RiLTgu MC9nZGIvYXgtZ2VuZXJhbC5jCTIwMTctMDgtMTkgMjA6MDU6MTAuMDU5ODc2NjE3ICswMjAwCiBA QCAtMTc3LDcgKzE3Nyw3IEBACiAgCiAgLyogQXBwZW5kIGEgdHJhY2VfcXVpY2sgaW5zdHJ1Y3Rp b24gdG8gRVhQUiwgdG8gcmVjb3JkIE4gYnl0ZXMuICAqLwpAQCAtMTIyNywxMCArMTIyNywxMCBA QCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2F4LWdlbmVyYWwuYwogIHsKICAgIC8q IE4gbXVzdCBmaXQgaW4gYSBieXRlLiAgKi8KICAgIGlmIChuIDwgMCB8fCBuID4gMjU1KQotSW5k ZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9heC5oCitJbmRleDogZ2RiLTguMC9nZGIvYXgu aAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5LjkwLjIwMTcwNDIwLm9yaWcvZ2RiL2F4LmgJMjAx Ny0wNC0yMCAyMzowODo1NC4xNDczOTQ2OTkgKzAyMDAKLSsrKyBnZGItNy45OS45MC4yMDE3MDQy MC9nZGIvYXguaAkyMDE3LTA0LTIwIDIzOjA4OjU2Ljk3MDQxMDYwNiArMDIwMAorLS0tIGdkYi04 LjAub3JpZy9nZGIvYXguaAkyMDE3LTA4LTE5IDIwOjA0OjU5Ljc4OTc4MDUzOCArMDIwMAorKysr IGdkYi04LjAvZ2RiL2F4LmgJMjAxNy0wOC0xOSAyMDowNToxMC4wNTk4NzY2MTcgKzAyMDAKIEBA IC0yMDUsNyArMjA1LDcgQEAKICBleHRlcm4gdm9pZCBheF96ZXJvX2V4dCAoc3RydWN0IGFnZW50 X2V4cHIgKkVYUFIsIGludCBOKTsKICAKQEAgLTEyNDAsMTAgKzEyNDAsMTAgQEAgSW5kZXg6IGdk Yi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9heC5oCiAgCiAgLyogQXBwZW5kIGEgZ290byBvcCB0byBF WFBSLiAgT1AgaXMgdGhlIGFjdHVhbCBvcCAobXVzdCBiZSBhb3BfZ290byBvcgogICAgIGFvcF9p Zl9nb3RvKS4gIFdlIGFzc3VtZSB3ZSBkb24ndCBrbm93IHRoZSB0YXJnZXQgb2Zmc2V0IHlldCwK LUluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvYnJlYWtwb2ludC5jCitJbmRleDogZ2Ri LTguMC9nZGIvYnJlYWtwb2ludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0 MjAub3JpZy9nZGIvYnJlYWtwb2ludC5jCTIwMTctMDQtMjAgMjM6MDg6NTQuMTUxMzk0NzIyICsw MjAwCi0rKysgZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2JyZWFrcG9pbnQuYwkyMDE3LTA0LTIw IDIzOjA4OjU2Ljk3MzQxMDYyMyArMDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvYnJlYWtwb2lu dC5jCTIwMTctMDgtMTkgMjA6MDQ6NTkuNzkyNzgwNTY2ICswMjAwCisrKysgZ2RiLTguMC9nZGIv YnJlYWtwb2ludC5jCTIwMTctMDgtMTkgMjA6MDU6MTAuMDYzODc2NjU0ICswMjAwCiBAQCAtMjIy NSw5ICsyMjI1LDkgQEAKICAJewogIAkgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywK QEAgLTEyNzQsMTAgKzEyNzQsMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9i cmVha3BvaW50LmMKICAJCSAgaW50IG51bV9yZWdzOwogIAogIAkJICBsZW4gPSAodGFyZ2V0X2V4 YWN0X3dhdGNocG9pbnRzCi1JbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2JyZWFrcG9p bnQuaAorSW5kZXg6IGdkYi04LjAvZ2RiL2JyZWFrcG9pbnQuaAogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03Ljk5LjkwLjIwMTcwNDIwLm9yaWcvZ2RiL2JyZWFrcG9pbnQuaAkyMDE3LTA0LTIwIDIzOjA4 OjU0LjE1MjM5NDcyNyArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9icmVha3Bv aW50LmgJMjAxNy0wNC0yMCAyMzowODo1Ni45NzQ0MTA2MjkgKzAyMDAKKy0tLSBnZGItOC4wLm9y aWcvZ2RiL2JyZWFrcG9pbnQuaAkyMDE3LTA4LTE5IDIwOjA0OjU5Ljc5Mzc4MDU3NiArMDIwMAor KysrIGdkYi04LjAvZ2RiL2JyZWFrcG9pbnQuaAkyMDE3LTA4LTE5IDIwOjA1OjEwLjA2Mzg3NjY1 NCArMDIwMAogQEAgLTI1MCw3ICsyNTAsNyBAQAogIAogICAgLyogSWYgdGhpcyBpcyBhIHJhbmdl ZCBicmVha3BvaW50LCB0aGVuIHRoaXMgZmllbGQgY29udGFpbnMgdGhlCkBAIC0xMjk2LDEwICsx Mjk2LDEwIEBAIEluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvYnJlYWtwb2ludC5oCiAg CiAgICAvKiBUeXBlIG9mIGhhcmR3YXJlIHdhdGNocG9pbnQuICAqLwogICAgZW51bSB0YXJnZXRf aHdfYnBfdHlwZSB3YXRjaHBvaW50X3R5cGU7Ci1JbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAv Z2RiL2MtbGFuZy5jCitJbmRleDogZ2RiLTguMC9nZGIvYy1sYW5nLmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy45OS45MC4yMDE3MDQyMC5vcmlnL2dkYi9jLWxhbmcuYwkyMDE3LTA0LTIwIDIzOjA4 OjU0LjE1MjM5NDcyNyArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9jLWxhbmcu YwkyMDE3LTA0LTIwIDIzOjA4OjU2Ljk3NDQxMDYyOSArMDIwMAorLS0tIGdkYi04LjAub3JpZy9n ZGIvYy1sYW5nLmMJMjAxNy0wOC0xOSAyMDowNDo1OS43OTM3ODA1NzYgKzAyMDAKKysrKyBnZGIt OC4wL2dkYi9jLWxhbmcuYwkyMDE3LTA4LTE5IDIwOjA1OjEwLjA2NDg3NjY2MyArMDIwMAogQEAg LTE4Niw3ICsxODYsNyBAQAogIAogIHZvaWQKQEAgLTEzMjcsMTAgKzEzMjcsMTAgQEAgSW5kZXg6 IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9jLWxhbmcuYwogIAogIAkJaWYgKGdldF9kaXNjcmV0 ZV9ib3VuZHMgKFRZUEVfSU5ERVhfVFlQRSAoZXhwZWN0X3R5cGUpLAogIAkJCQkJICZsb3dfYm91 bmQsICZoaWdoX2JvdW5kKSA8IDApCi1JbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2Mt bGFuZy5oCitJbmRleDogZ2RiLTguMC9nZGIvYy1sYW5nLmgKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny45OS45MC4yMDE3MDQyMC5vcmlnL2dkYi9jLWxhbmcuaAkyMDE3LTA0LTIwIDIzOjA4OjU0LjE1 MjM5NDcyNyArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9jLWxhbmcuaAkyMDE3 LTA0LTIwIDIzOjA4OjU2Ljk3NDQxMDYyOSArMDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvYy1s YW5nLmgJMjAxNy0wOC0xOSAyMDowNDo1OS43OTM3ODA1NzYgKzAyMDAKKysrKyBnZGItOC4wL2dk Yi9jLWxhbmcuaAkyMDE3LTA4LTE5IDIwOjA1OjEwLjA2NDg3NjY2MyArMDIwMAogQEAgLTc3LDcg Kzc3LDcgQEAKICAJCQkgICAgIHN0cnVjdCB1aV9maWxlICopOwogIApAQCAtMTM0OSwxMCArMTM0 OSwxMCBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2MtbGFuZy5oCiAgCQkJY29u c3QgY2hhciAqdXNlcl9lbmNvZGluZywKICAJCQlpbnQgZm9yY2VfZWxsaXBzZXMsCiAgCQkJY29u c3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpOwotSW5kZXg6IGdkYi03Ljk5 LjkwLjIwMTcwNDIwL2dkYi9jLXZhbHByaW50LmMKK0luZGV4OiBnZGItOC4wL2dkYi9jLXZhbHBy aW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45OS45MC4yMDE3MDQyMC5vcmlnL2dkYi9jLXZh bHByaW50LmMJMjAxNy0wNC0yMCAyMzowODo1NC4xNTMzOTQ3MzMgKzAyMDAKLSsrKyBnZGItNy45 OS45MC4yMDE3MDQyMC9nZGIvYy12YWxwcmludC5jCTIwMTctMDQtMjAgMjM6MDg6NTYuOTc1NDEw NjM0ICswMjAwCistLS0gZ2RiLTguMC5vcmlnL2dkYi9jLXZhbHByaW50LmMJMjAxNy0wOC0xOSAy MDowNDo1OS43OTQ3ODA1ODUgKzAyMDAKKysrKyBnZGItOC4wL2dkYi9jLXZhbHByaW50LmMJMjAx Ny0wOC0xOSAyMDowNToxMC4wNjQ4NzY2NjMgKzAyMDAKIEBAIC0yNDQsNyArMjQ0LDcgQEAKICAg IGlmIChUWVBFX0xFTkdUSCAodHlwZSkgPiAwICYmIFRZUEVfTEVOR1RIICh1bnJlc29sdmVkX2Vs dHR5cGUpID4gMCkKICAgICAgewpAQCAtMTM5MSwxMCArMTM5MSwxMCBAQCBJbmRleDogZ2RiLTcu OTkuOTAuMjAxNzA0MjAvZ2RiL2MtdmFscHJpbnQuYwogIAkgICAgIHN0cnVjdCB1aV9maWxlICpz dHJlYW0sIGludCByZWN1cnNlLAogIAkgICAgIHN0cnVjdCB2YWx1ZSAqb3JpZ2luYWxfdmFsdWUs CiAgCSAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCi1JbmRl eDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2NwLWFiaS5jCitJbmRleDogZ2RiLTguMC9nZGIv Y3AtYWJpLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45OS45MC4yMDE3MDQyMC5vcmlnL2dkYi9j cC1hYmkuYwkyMDE3LTA0LTIwIDIzOjA4OjU0LjE1MzM5NDczMyArMDIwMAotKysrIGdkYi03Ljk5 LjkwLjIwMTcwNDIwL2dkYi9jcC1hYmkuYwkyMDE3LTA0LTIwIDIzOjA4OjU2Ljk3NTQxMDYzNCAr MDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvY3AtYWJpLmMJMjAxNy0wOC0xOSAyMDowNDo1OS43 OTQ3ODA1ODUgKzAyMDAKKysrKyBnZGItOC4wL2dkYi9jcC1hYmkuYwkyMDE3LTA4LTE5IDIwOjA1 OjEwLjA2NTg3NjY3MyArMDIwMAogQEAgLTY0LDEyICs2NCwxMiBAQAogICAgcmV0dXJuICgqY3Vy cmVudF9jcF9hYmkuaXNfb3BlcmF0b3JfbmFtZSkgKG5hbWUpOwogIH0KQEAgLTE0MTksMTAgKzE0 MTksMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9jcC1hYmkuYwogIHsKICAg IGlmICgoY3VycmVudF9jcF9hYmkudmlydHVhbF9mbl9maWVsZCkgPT0gTlVMTCkKICAgICAgcmV0 dXJuIE5VTEw7Ci1JbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2NwLWFiaS5oCitJbmRl eDogZ2RiLTguMC9nZGIvY3AtYWJpLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45OS45MC4yMDE3 MDQyMC5vcmlnL2dkYi9jcC1hYmkuaAkyMDE3LTA0LTIwIDIzOjA4OjU0LjE1MzM5NDczMyArMDIw MAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9jcC1hYmkuaAkyMDE3LTA0LTIwIDIzOjA4 OjU2Ljk3NTQxMDYzNCArMDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvY3AtYWJpLmgJMjAxNy0w OC0xOSAyMDowNDo1OS43OTQ3ODA1ODUgKzAyMDAKKysrKyBnZGItOC4wL2dkYi9jcC1hYmkuaAky MDE3LTA4LTE5IDIwOjA1OjEwLjA2NTg3NjY3MyArMDIwMAogQEAgLTEwOCw3ICsxMDgsNyBAQAog IAkJCQkJICAgICBzdHJ1Y3QgZm5fZmllbGQgKmYsCiAgCQkJCQkgICAgIGludCBqLApAQCAtMTQ2 NiwxMCArMTQ2NiwxMCBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2NwLWFiaS5o CiAgICB2b2lkICgqcHJpbnRfbWV0aG9kX3B0cikgKGNvbnN0IGdkYl9ieXRlICpjb250ZW50cywK ICAJCQkgICAgc3RydWN0IHR5cGUgKnR5cGUsCiAgCQkJICAgIHN0cnVjdCB1aV9maWxlICpzdHJl YW0pOwotSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9jcC12YWxwcmludC5jCitJbmRl eDogZ2RiLTguMC9nZGIvY3AtdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5Ljkw LjIwMTcwNDIwLm9yaWcvZ2RiL2NwLXZhbHByaW50LmMJMjAxNy0wNC0yMCAyMzowODo1NC4xNTMz OTQ3MzMgKzAyMDAKLSsrKyBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvY3AtdmFscHJpbnQuYwky MDE3LTA0LTIwIDIzOjA4OjU2Ljk3NTQxMDYzNCArMDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIv Y3AtdmFscHJpbnQuYwkyMDE3LTA4LTE5IDIwOjA0OjU5Ljc5NDc4MDU4NSArMDIwMAorKysrIGdk Yi04LjAvZ2RiL2NwLXZhbHByaW50LmMJMjAxNy0wOC0xOSAyMDowNToxMC4wNjU4NzY2NzMgKzAy MDAKIEBAIC0zMzYsNyArMzM2LDcgQEAKICAJCX0KICAJICAgICAgZWxzZSBpZiAoaSA9PSB2cHRy X2ZpZWxkbm8gJiYgdHlwZSA9PSB2cHRyX2Jhc2V0eXBlKQpAQCAtMTQ3OSwxMCArMTQ3OSwxMCBA QCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2NwLXZhbHByaW50LmMKICAJCSAgc3Ry dWN0IHR5cGUgKmlfdHlwZSA9IFRZUEVfRklFTERfVFlQRSAodHlwZSwgaSk7CiAgCiAgCQkgIGlm ICh2YWxwcmludF9jaGVja192YWxpZGl0eSAoc3RyZWFtLCBpX3R5cGUsIGlfb2Zmc2V0LCB2YWwp KQotSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9kLWxhbmcuaAorSW5kZXg6IGdkYi04 LjAvZ2RiL2QtbGFuZy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAub3Jp Zy9nZGIvZC1sYW5nLmgJMjAxNy0wNC0yMCAyMzowODo1NC4xNTMzOTQ3MzMgKzAyMDAKLSsrKyBn ZGItNy45OS45MC4yMDE3MDQyMC9nZGIvZC1sYW5nLmgJMjAxNy0wNC0yMCAyMzowODo1Ni45NzU0 MTA2MzQgKzAyMDAKKy0tLSBnZGItOC4wLm9yaWcvZ2RiL2QtbGFuZy5oCTIwMTctMDgtMTkgMjA6 MDQ6NTkuNzk0NzgwNTg1ICswMjAwCisrKysgZ2RiLTguMC9nZGIvZC1sYW5nLmgJMjAxNy0wOC0x OSAyMDowNToxMC4wNjU4NzY2NzMgKzAyMDAKIEBAIC04MSw3ICs4MSw3IEBACiAgLyogRGVmaW5l ZCBpbiBkLXZhbHByaW50LmMgICovCiAgCkBAIC0xNDkyLDEwICsxNDkyLDEwIEBAIEluZGV4OiBn ZGItNy45OS45MC4yMDE3MDQyMC9nZGIvZC1sYW5nLmgKICAJCQkgc3RydWN0IHVpX2ZpbGUgKnN0 cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkJIHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJCSBjb25zdCBz dHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucyk7Ci1JbmRleDogZ2RiLTcuOTkuOTAu MjAxNzA0MjAvZ2RiL2QtdmFscHJpbnQuYworSW5kZXg6IGdkYi04LjAvZ2RiL2QtdmFscHJpbnQu YwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5LjkwLjIwMTcwNDIwLm9yaWcvZ2RiL2QtdmFscHJp bnQuYwkyMDE3LTA0LTIwIDIzOjA4OjU0LjE1NDM5NDczOSArMDIwMAotKysrIGdkYi03Ljk5Ljkw LjIwMTcwNDIwL2dkYi9kLXZhbHByaW50LmMJMjAxNy0wNC0yMCAyMzowODo1Ni45NzY0MTA2NDAg KzAyMDAKKy0tLSBnZGItOC4wLm9yaWcvZ2RiL2QtdmFscHJpbnQuYwkyMDE3LTA4LTE5IDIwOjA0 OjU5Ljc5NDc4MDU4NSArMDIwMAorKysrIGdkYi04LjAvZ2RiL2QtdmFscHJpbnQuYwkyMDE3LTA4 LTE5IDIwOjA1OjEwLjA2NTg3NjY3MyArMDIwMAogQEAgLTczLDcgKzczLDcgQEAKICAKICAvKiBJ bXBsZW1lbnRzIHRoZSBsYV92YWxfcHJpbnQgcm91dGluZSBmb3IgbGFuZ3VhZ2UgRC4gICovCkBA IC0xNTA1LDYzICsxNTA1LDIwIEBAIEluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvZC12 YWxwcmludC5jCiAgICAgICAgICAgICAgIENPUkVfQUREUiBhZGRyZXNzLCBzdHJ1Y3QgdWlfZmls ZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJICAgICBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAgICAg ICAgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCi1JbmRl eDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2R3YXJmMmxvYy5jCitJbmRleDogZ2RiLTguMC9n ZGIvZHdhcmYybG9jLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45OS45MC4yMDE3MDQyMC5vcmln L2dkYi9kd2FyZjJsb2MuYwkyMDE3LTA0LTIwIDIzOjA4OjU0LjE1NjM5NDc1MCArMDIwMAotKysr IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9kd2FyZjJsb2MuYwkyMDE3LTA0LTIwIDIzOjExOjIz LjEzODI2NjU4MiArMDIwMAotQEAgLTE3NjEsMTIgKzE3NjEsMTIgQEAKLSByZWFkX3BpZWNlZF92 YWx1ZSAoc3RydWN0IHZhbHVlICp2KQotIHsKLSAgIGludCBpOwotLSAgbG9uZyBvZmZzZXQgPSAw OwotKyAgTE9OR0VTVCBvZmZzZXQgPSAwOwotICAgVUxPTkdFU1QgYml0c190b19za2lwOwotICAg Z2RiX2J5dGUgKmNvbnRlbnRzOwotICAgc3RydWN0IHBpZWNlX2Nsb3N1cmUgKmMKLSAgICAgPSAo c3RydWN0IHBpZWNlX2Nsb3N1cmUgKikgdmFsdWVfY29tcHV0ZWRfY2xvc3VyZSAodik7Ci0tICBz aXplX3QgdHlwZV9sZW47Ci0rICBVTE9OR0VTVCB0eXBlX2xlbjsKLSAgIHNpemVfdCBidWZmZXJf c2l6ZSA9IDA7Ci0gICBzdGQ6OnZlY3RvcjxnZGJfYnl0ZT4gYnVmZmVyOwotICAgaW50IGJpdHNf YmlnX2VuZGlhbgotQEAgLTE3OTAsOCArMTc5MCw4IEBACi0gICBmb3IgKGkgPSAwOyBpIDwgYy0+ bl9waWVjZXMgJiYgb2Zmc2V0IDwgdHlwZV9sZW47IGkrKykKLSAgICAgewotICAgICAgIHN0cnVj dCBkd2FyZl9leHByX3BpZWNlICpwID0gJmMtPnBpZWNlc1tpXTsKLS0gICAgICBzaXplX3QgdGhp c19zaXplLCB0aGlzX3NpemVfYml0czsKLS0gICAgICBsb25nIGRlc3Rfb2Zmc2V0X2JpdHMsIHNv dXJjZV9vZmZzZXRfYml0cywgc291cmNlX29mZnNldDsKLSsgICAgICBVTE9OR0VTVCB0aGlzX3Np emUsIHRoaXNfc2l6ZV9iaXRzOwotKyAgICAgIExPTkdFU1QgZGVzdF9vZmZzZXRfYml0cywgc291 cmNlX29mZnNldF9iaXRzLCBzb3VyY2Vfb2Zmc2V0OwotICAgICAgIGNvbnN0IGdkYl9ieXRlICpp bnRlcm1lZGlhdGVfYnVmZmVyOwotIAotICAgICAgIC8qIENvbXB1dGUgc2l6ZSwgc291cmNlLCBh bmQgZGVzdGluYXRpb24gb2Zmc2V0cyBmb3IgY29weWluZywgaW4KLUBAIC0xOTMwLDEyICsxOTMw LDEyIEBACi0gd3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBzdHJ1Y3QgdmFs dWUgKmZyb20pCi0gewotICAgaW50IGk7Ci0tICBsb25nIG9mZnNldCA9IDA7Ci0rICBMT05HRVNU IG9mZnNldCA9IDA7Ci0gICBVTE9OR0VTVCBiaXRzX3RvX3NraXA7Ci0gICBjb25zdCBnZGJfYnl0 ZSAqY29udGVudHM7Ci0gICBzdHJ1Y3QgcGllY2VfY2xvc3VyZSAqYwotICAgICA9IChzdHJ1Y3Qg cGllY2VfY2xvc3VyZSAqKSB2YWx1ZV9jb21wdXRlZF9jbG9zdXJlICh0byk7Ci0tICBzaXplX3Qg dHlwZV9sZW47Ci0rICBVTE9OR0VTVCB0eXBlX2xlbjsKLSAgIHNpemVfdCBidWZmZXJfc2l6ZSA9 IDA7Ci0gICBzdGQ6OnZlY3RvcjxnZGJfYnl0ZT4gYnVmZmVyOwotICAgaW50IGJpdHNfYmlnX2Vu ZGlhbgotQEAgLTE5NTQsOCArMTk1NCw4IEBACi0gICBmb3IgKGkgPSAwOyBpIDwgYy0+bl9waWVj ZXMgJiYgb2Zmc2V0IDwgdHlwZV9sZW47IGkrKykKKy0tLSBnZGItOC4wLm9yaWcvZ2RiL2R3YXJm MmxvYy5jCTIwMTctMDgtMTkgMjA6MDQ6NTkuNzk2NzgwNjA0ICswMjAwCisrKysgZ2RiLTguMC9n ZGIvZHdhcmYybG9jLmMJMjAxNy0wOC0xOSAyMDowNzowMC42OTI5MTE2MDUgKzAyMDAKK0BAIC0x ODI2LDcgKzE4MjYsNyBAQAorICAgZm9yICg7IGkgPCBjLT5uX3BpZWNlcyAmJiBvZmZzZXQgPCBt YXhfb2Zmc2V0OyBpKyspCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgZHdhcmZfZXhwcl9waWVjZSAq cCA9ICZjLT5waWVjZXNbaV07CiAtICAgICAgc2l6ZV90IHRoaXNfc2l6ZV9iaXRzLCB0aGlzX3Np emU7Ci0tICAgICAgbG9uZyBkZXN0X29mZnNldF9iaXRzLCBzb3VyY2Vfb2Zmc2V0X2JpdHMsIGRl c3Rfb2Zmc2V0LCBzb3VyY2Vfb2Zmc2V0OwogKyAgICAgIFVMT05HRVNUIHRoaXNfc2l6ZV9iaXRz LCB0aGlzX3NpemU7Ci0rICAgICAgTE9OR0VTVCBkZXN0X29mZnNldF9iaXRzLCBzb3VyY2Vfb2Zm c2V0X2JpdHMsIGRlc3Rfb2Zmc2V0LCBzb3VyY2Vfb2Zmc2V0OwotICAgICAgIGludCBuZWVkX2Jp dHdpc2U7Ci0gICAgICAgY29uc3QgZ2RiX2J5dGUgKnNvdXJjZV9idWZmZXI7CiAgCi1AQCAtMjA3 NCw3ICsyMDc0LDcgQEAKKyAgICAgICB0aGlzX3NpemVfYml0cyA9IHAtPnNpemUgLSBiaXRzX3Rv X3NraXA7CisgICAgICAgaWYgKHRoaXNfc2l6ZV9iaXRzID4gbWF4X29mZnNldCAtIG9mZnNldCkK K0BAIC0yMDczLDcgKzIwNzMsNyBAQAogIAogIHN0YXRpYyBpbnQKICBjaGVja19waWVjZWRfc3lu dGhldGljX3BvaW50ZXIgKGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsdWUsIExPTkdFU1QgYml0X29m ZnNldCwKQEAgLTE1NzAsNyArMTUyNyw3IEBAIEluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9n ZGIvZHdhcmYybG9jLmMKICB7CiAgICBzdHJ1Y3QgcGllY2VfY2xvc3VyZSAqYwogICAgICA9IChz dHJ1Y3QgcGllY2VfY2xvc3VyZSAqKSB2YWx1ZV9jb21wdXRlZF9jbG9zdXJlICh2YWx1ZSk7Ci1A QCAtMjA4Nyw3ICsyMDg3LDcgQEAKK0BAIC0yMDg2LDcgKzIwODYsNyBAQAogICAgZm9yIChpID0g MDsgaSA8IGMtPm5fcGllY2VzICYmIGJpdF9sZW5ndGggPiAwOyBpKyspCiAgICAgIHsKICAgICAg ICBzdHJ1Y3QgZHdhcmZfZXhwcl9waWVjZSAqcCA9ICZjLT5waWVjZXNbaV07CkBAIC0xNTc5LDcg KzE1MzYsNyBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2R3YXJmMmxvYy5jCiAg CiAgICAgICAgaWYgKGJpdF9vZmZzZXQgPiAwKQogIAl7Ci1AQCAtMjE5NSw4ICsyMTk1LDggQEAK K0BAIC0yMTk0LDggKzIxOTQsOCBAQAogICAgc3RydWN0IHR5cGUgKnR5cGU7CiAgICBzdHJ1Y3Qg ZnJhbWVfaW5mbyAqZnJhbWU7CiAgICBzdHJ1Y3QgZHdhcmYyX2xvY2V4cHJfYmF0b24gYmF0b247 CkBAIC0xNTkwLDcgKzE1NDcsNyBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2R3 YXJmMmxvYy5jCiAgICBzdHJ1Y3QgZHdhcmZfZXhwcl9waWVjZSAqcGllY2UgPSBOVUxMOwogICAg TE9OR0VTVCBieXRlX29mZnNldDsKICAgIGVudW0gYmZkX2VuZGlhbiBieXRlX29yZGVyOwotQEAg LTIyMTMsNyArMjIxMyw3IEBACitAQCAtMjIxMiw3ICsyMjEyLDcgQEAKICAgIGZvciAoaSA9IDA7 IGkgPCBjLT5uX3BpZWNlcyAmJiBiaXRfbGVuZ3RoID4gMDsgaSsrKQogICAgICB7CiAgICAgICAg c3RydWN0IGR3YXJmX2V4cHJfcGllY2UgKnAgPSAmYy0+cGllY2VzW2ldOwpAQCAtMTU5OSw3ICsx NTU2LDcgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9kd2FyZjJsb2MuYwogIAog ICAgICAgIGlmIChiaXRfb2Zmc2V0ID4gMCkKICAJewotQEAgLTI1MDQsOSArMjUwNCw5IEBACitA QCAtMjUwMyw5ICsyNTAzLDkgQEAKICAJY2FzZSBEV0FSRl9WQUxVRV9TVEFDSzoKICAJICB7CiAg CSAgICBzdHJ1Y3QgdmFsdWUgKnZhbHVlID0gY3R4LmZldGNoICgwKTsKQEAgLTE2MTIsMTAgKzE1 NjksMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9kd2FyZjJsb2MuYwogIAkg ICAgc3RydWN0IGdkYmFyY2ggKm9iamZpbGVfZ2RiYXJjaCA9IGdldF9vYmpmaWxlX2FyY2ggKG9i amZpbGUpOwogIAkgICAgc3RydWN0IGNsZWFudXAgKmNsZWFudXA7CiAgCi1JbmRleDogZ2RiLTcu OTkuOTAuMjAxNzA0MjAvZ2RiL2R3YXJmMnJlYWQuYworSW5kZXg6IGdkYi04LjAvZ2RiL2R3YXJm MnJlYWQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5LjkwLjIwMTcwNDIwLm9yaWcvZ2RiL2R3 YXJmMnJlYWQuYwkyMDE3LTA0LTIwIDIzOjA4OjU0LjE2MDM5NDc3MiArMDIwMAotKysrIGdkYi03 Ljk5LjkwLjIwMTcwNDIwL2dkYi9kd2FyZjJyZWFkLmMJMjAxNy0wNC0yMCAyMzowODo1Ni45ODE0 MTA2NjggKzAyMDAKKy0tLSBnZGItOC4wLm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE3LTA4LTE5 IDIwOjA0OjU5LjgwMDc4MDY0MSArMDIwMAorKysrIGdkYi04LjAvZ2RiL2R3YXJmMnJlYWQuYwky MDE3LTA4LTE5IDIwOjA1OjEwLjA3Mjg3NjczOCArMDIwMAogQEAgLTIwNjQsMTIgKzIwNjQsMTIg QEAKICB9CiAgCkBAIC0xNjQ0LDEwICsxNjAxLDEwIEBAIEluZGV4OiBnZGItNy45OS45MC4yMDE3 MDQyMC9nZGIvZHdhcmYycmVhZC5jCiAgCiAgCSAgICAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGll LCBEV19BVF9ieXRlX3NpemUsIGN1KTsKICAJICAgICAgaWYgKGF0dHIpCi1JbmRleDogZ2RiLTcu OTkuOTAuMjAxNzA0MjAvZ2RiL2V2YWwuYworSW5kZXg6IGdkYi04LjAvZ2RiL2V2YWwuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03Ljk5LjkwLjIwMTcwNDIwLm9yaWcvZ2RiL2V2YWwuYwkyMDE3LTA0 LTIwIDIzOjA4OjU0LjE2MjM5NDc4NCArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dk Yi9ldmFsLmMJMjAxNy0wNC0yMCAyMzowODo1Ni45ODI0MTA2NzQgKzAyMDAKKy0tLSBnZGItOC4w Lm9yaWcvZ2RiL2V2YWwuYwkyMDE3LTA4LTE5IDIwOjA0OjU5LjgwMTc4MDY1MSArMDIwMAorKysr IGdkYi04LjAvZ2RiL2V2YWwuYwkyMDE3LTA4LTE5IDIwOjA1OjEwLjA3Mzg3Njc0OCArMDIwMAog QEAgLTI5Nyw3ICsyOTcsOCBAQAogICAgd2hpbGUgKC0tbmFyZ3MgPj0gMCkKICAgICAgewpAQCAt MTcwMCwxMCArMTY1NywxMCBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2V2YWwu YwogIAkgIExPTkdFU1QgbG93X2JvdW5kLCBoaWdoX2JvdW5kLCBpbmRleDsKICAKICAJICBpZiAo Z2V0X2Rpc2NyZXRlX2JvdW5kcyAocmFuZ2VfdHlwZSwgJmxvd19ib3VuZCwgJmhpZ2hfYm91bmQp IDwgMCkKLUluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvZi1sYW5nLmMKK0luZGV4OiBn ZGItOC4wL2dkYi9mLWxhbmcuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5LjkwLjIwMTcwNDIw Lm9yaWcvZ2RiL2YtbGFuZy5jCTIwMTctMDQtMjAgMjM6MDg6NTQuMTYyMzk0Nzg0ICswMjAwCi0r KysgZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2YtbGFuZy5jCTIwMTctMDQtMjAgMjM6MDg6NTYu OTgyNDEwNjc0ICswMjAwCistLS0gZ2RiLTguMC5vcmlnL2dkYi9mLWxhbmcuYwkyMDE3LTA4LTE5 IDIwOjA0OjU5LjgwMTc4MDY1MSArMDIwMAorKysrIGdkYi04LjAvZ2RiL2YtbGFuZy5jCTIwMTct MDgtMTkgMjA6MDU6MTAuMDczODc2NzQ4ICswMjAwCiBAQCAtMTAzLDcgKzEwMyw3IEBACiAgCiAg c3RhdGljIHZvaWQKQEAgLTE3MTMsMTAgKzE2NzAsMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIw MTcwNDIwL2dkYi9mLWxhbmcuYwogIAkgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlv bnMgKm9wdGlvbnMpCiAgewogICAgY29uc3QgY2hhciAqdHlwZV9lbmNvZGluZyA9IGZfZ2V0X2Vu Y29kaW5nICh0eXBlKTsKLUluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvZi1sYW5nLmgK K0luZGV4OiBnZGItOC4wL2dkYi9mLWxhbmcuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5Ljkw LjIwMTcwNDIwLm9yaWcvZ2RiL2YtbGFuZy5oCTIwMTctMDQtMjAgMjM6MDg6NTQuMTYzMzk0Nzg5 ICswMjAwCi0rKysgZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2YtbGFuZy5oCTIwMTctMDQtMjAg MjM6MDg6NTYuOTgyNDEwNjc0ICswMjAwCistLS0gZ2RiLTguMC5vcmlnL2dkYi9mLWxhbmcuaAky MDE3LTA4LTE5IDIwOjA0OjU5LjgwMjc4MDY2MCArMDIwMAorKysrIGdkYi04LjAvZ2RiL2YtbGFu Zy5oCTIwMTctMDgtMTkgMjA6MDU6MTAuMDczODc2NzQ4ICswMjAwCiBAQCAtMzAsNyArMzAsNyBA QAogIGV4dGVybiB2b2lkIGZfcHJpbnRfdHlwZSAoc3RydWN0IHR5cGUgKiwgY29uc3QgY2hhciAq LCBzdHJ1Y3QgdWlfZmlsZSAqLCBpbnQsCiAgCQkJICBpbnQsIGNvbnN0IHN0cnVjdCB0eXBlX3By aW50X29wdGlvbnMgKik7CkBAIC0xNzI2LDEwICsxNjgzLDEwIEBAIEluZGV4OiBnZGItNy45OS45 MC4yMDE3MDQyMC9nZGIvZi1sYW5nLmgKICAJCQkgc3RydWN0IHVpX2ZpbGUgKiwgaW50LAogIAkJ CSBzdHJ1Y3QgdmFsdWUgKiwKICAJCQkgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMg Kik7Ci1JbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2YtdmFscHJpbnQuYworSW5kZXg6 IGdkYi04LjAvZ2RiL2YtdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5LjkwLjIw MTcwNDIwLm9yaWcvZ2RiL2YtdmFscHJpbnQuYwkyMDE3LTA0LTIwIDIzOjA4OjU0LjE2MzM5NDc4 OSArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9mLXZhbHByaW50LmMJMjAxNy0w NC0yMCAyMzowODo1Ni45ODI0MTA2NzQgKzAyMDAKKy0tLSBnZGItOC4wLm9yaWcvZ2RiL2YtdmFs cHJpbnQuYwkyMDE3LTA4LTE5IDIwOjA0OjU5LjgwMjc4MDY2MCArMDIwMAorKysrIGdkYi04LjAv Z2RiL2YtdmFscHJpbnQuYwkyMDE3LTA4LTE5IDIwOjA1OjEwLjA3Mzg3Njc0OCArMDIwMAogQEAg LTM4LDcgKzM4LDcgQEAKICBzdGF0aWMgdm9pZCBpbmZvX2NvbW1vbl9jb21tYW5kIChjaGFyICos IGludCk7CiAgc3RhdGljIHZvaWQgZjc3X2dldF9keW5hbWljX2xlbmd0aF9vZl9hZ2dyZWdhdGUg KHN0cnVjdCB0eXBlICopOwpAQCAtMTc4NiwxMCArMTc0MywxMCBAQCBJbmRleDogZ2RiLTcuOTku OTAuMjAxNzA0MjAvZ2RiL2YtdmFscHJpbnQuYwogIAkgICAgIENPUkVfQUREUiBhZGRyZXNzLCBz dHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJICAgICBzdHJ1Y3QgdmFsdWUg Km9yaWdpbmFsX3ZhbHVlLAogIAkgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25z ICpvcHRpb25zKQotSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9maW5kdmFyLmMKK0lu ZGV4OiBnZGItOC4wL2dkYi9maW5kdmFyLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45OS45MC4y MDE3MDQyMC5vcmlnL2dkYi9maW5kdmFyLmMJMjAxNy0wNC0yMCAyMzowODo1NC4xNjMzOTQ3ODkg KzAyMDAKLSsrKyBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvZmluZHZhci5jCTIwMTctMDQtMjAg MjM6MDg6NTYuOTgzNDEwNjgwICswMjAwCistLS0gZ2RiLTguMC5vcmlnL2dkYi9maW5kdmFyLmMJ MjAxNy0wOC0xOSAyMDowNDo1OS44MDI3ODA2NjAgKzAyMDAKKysrKyBnZGItOC4wL2dkYi9maW5k dmFyLmMJMjAxNy0wOC0xOSAyMDowNToxMC4wNzQ4NzY3NTcgKzAyMDAKIEBAIC04MTcsNyArODE3 LDcgQEAKICBkZWZhdWx0X3ZhbHVlX2Zyb21fcmVnaXN0ZXIgKHN0cnVjdCBnZGJhcmNoICpnZGJh cmNoLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu dCByZWdudW0sIHN0cnVjdCBmcmFtZV9pZCBmcmFtZV9pZCkKQEAgLTE4MTcsMTAgKzE3NzQsMTAg QEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9maW5kdmFyLmMKICAKICAgICAgICAv KiBJZiB0aGUgcmVnaXN0ZXIgbGVuZ3RoIGlzIGxhcmdlciB0aGFuIHRoZSBudW1iZXIgb2YgYnl0 ZXMKICAgICAgICAgICByZW1haW5pbmcgdG8gY29weSwgdGhlbiBvbmx5IGNvcHkgdGhlIGFwcHJv cHJpYXRlIGJ5dGVzLiAgKi8KLUluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvZnJhbWUu YworSW5kZXg6IGdkYi04LjAvZ2RiL2ZyYW1lLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45OS45 MC4yMDE3MDQyMC5vcmlnL2dkYi9mcmFtZS5jCTIwMTctMDQtMjAgMjM6MDg6NTQuMTY0Mzk0Nzk1 ICswMjAwCi0rKysgZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2ZyYW1lLmMJMjAxNy0wNC0yMCAy MzowODo1Ni45ODM0MTA2ODAgKzAyMDAKKy0tLSBnZGItOC4wLm9yaWcvZ2RiL2ZyYW1lLmMJMjAx Ny0wOC0xOSAyMDowNDo1OS44MDM3ODA2NjkgKzAyMDAKKysrKyBnZGItOC4wL2dkYi9mcmFtZS5j CTIwMTctMDgtMTkgMjA6MDU6MTAuMDc0ODc2NzU3ICswMjAwCiBAQCAtMTM3NSw3ICsxMzc1LDcg QEAKICAKICBpbnQKQEAgLTE4MzksMTAgKzE3OTYsMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIw MTcwNDIwL2dkYi9mcmFtZS5jCiAgCiAgICAvKiBDb3B5IHRoZSBkYXRhLiAgKi8KICAgIHdoaWxl IChsZW4gPiAwKQotSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9mcmFtZS5oCitJbmRl eDogZ2RiLTguMC9nZGIvZnJhbWUuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5LjkwLjIwMTcw NDIwLm9yaWcvZ2RiL2ZyYW1lLmgJMjAxNy0wNC0yMCAyMzowODo1NC4xNjQzOTQ3OTUgKzAyMDAK LSsrKyBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvZnJhbWUuaAkyMDE3LTA0LTIwIDIzOjA4OjU2 Ljk4NDQxMDY4NSArMDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvZnJhbWUuaAkyMDE3LTA4LTE5 IDIwOjA0OjU5LjgwMzc4MDY2OSArMDIwMAorKysrIGdkYi04LjAvZ2RiL2ZyYW1lLmgJMjAxNy0w OC0xOSAyMDowNToxMC4wNzQ4NzY3NTcgKzAyMDAKIEBAIC02MDAsNyArNjAwLDcgQEAKICAgICBj b250ZW50cyBhcmUgb3B0aW1pemVkIG91dCBvciB1bmF2YWlsYWJsZSwgc2V0ICpPUFRJTUlaRURQ LAogICAgICpVTkFWQUlMQUJMRVAgYWNjb3JkaW5nbHkuICAqLwpAQCAtMTg1MiwxMSArMTgwOSwx MSBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2ZyYW1lLmgKICAJCQkJICAgICBn ZGJfYnl0ZSAqbXlhZGRyLAogIAkJCQkgICAgIGludCAqb3B0aW1pemVkcCwgaW50ICp1bmF2YWls YWJsZXApOwogIAotSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9nZGJ0eXBlcy5jCitJ bmRleDogZ2RiLTguMC9nZGIvZ2RidHlwZXMuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5Ljkw LjIwMTcwNDIwLm9yaWcvZ2RiL2dkYnR5cGVzLmMJMjAxNy0wNC0yMCAyMzowODo1NC4xNjYzOTQ4 MDYgKzAyMDAKLSsrKyBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvZ2RidHlwZXMuYwkyMDE3LTA0 LTIwIDIzOjA4OjU2Ljk4NTQxMDY5MSArMDIwMAotQEAgLTI4MDgsNyArMjgwOCw3IEBACistLS0g Z2RiLTguMC5vcmlnL2dkYi9nZGJ0eXBlcy5jCTIwMTctMDgtMTkgMjA6MDQ6NTkuODA0NzgwNjc5 ICswMjAwCisrKysgZ2RiLTguMC9nZGIvZ2RidHlwZXMuYwkyMDE3LTA4LTE5IDIwOjA1OjEwLjA3 NTg3Njc2NiArMDIwMAorQEAgLTI4MDcsNyArMjgwNyw3IEBACiAgICAgbGVhc3QgYXMgbG9uZyBh cyBPQkpGSUxFLiAgKi8KICAKICBzdHJ1Y3QgdHlwZSAqCkBAIC0xODY1LDcgKzE4MjIsNyBAQCBJ bmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2dkYnR5cGVzLmMKICAJICAgY29uc3QgY2hh ciAqbmFtZSkKICB7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZTsKLUBAIC0zMTE3LDggKzMxMTcsOCBA QAorQEAgLTMxMTYsOCArMzExNiw4IEBACiAgCiAgc3RhdGljIGludAogIGlzX3VuaXF1ZV9hbmNl c3Rvcl93b3JrZXIgKHN0cnVjdCB0eXBlICpiYXNlLCBzdHJ1Y3QgdHlwZSAqZGNsYXNzLApAQCAt MTg3Niw3ICsxODMzLDcgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9nZGJ0eXBl cy5jCiAgCQkJICAgQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVjdCB2YWx1ZSAqdmFsKQogIHsKICAg IGludCBpLCBjb3VudCA9IDA7Ci1AQCAtMzEyOSw3ICszMTI5LDcgQEAKK0BAIC0zMTI4LDcgKzMx MjgsNyBAQAogICAgZm9yIChpID0gMDsgaSA8IFRZUEVfTl9CQVNFQ0xBU1NFUyAoZGNsYXNzKSAm JiBjb3VudCA8IDI7ICsraSkKICAgICAgewogICAgICAgIHN0cnVjdCB0eXBlICppdGVyOwpAQCAt MTg4NSw3ICsxODQyLDcgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9nZGJ0eXBl cy5jCiAgCiAgICAgICAgaXRlciA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfQkFTRUNMQVNTIChkY2xh c3MsIGkpKTsKICAKLUBAIC0zMTcwLDcgKzMxNzAsNyBAQAorQEAgLTMxNjksNyArMzE2OSw3IEBA CiAgaW50CiAgaXNfdW5pcXVlX2FuY2VzdG9yIChzdHJ1Y3QgdHlwZSAqYmFzZSwgc3RydWN0IHZh bHVlICp2YWwpCiAgewpAQCAtMTg5NCw3ICsxODUxLDcgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIw MTcwNDIwL2dkYi9nZGJ0eXBlcy5jCiAgCiAgICByZXR1cm4gaXNfdW5pcXVlX2FuY2VzdG9yX3dv cmtlciAoYmFzZSwgdmFsdWVfdHlwZSAodmFsKSwgJm9mZnNldCwKICAJCQkJICAgIHZhbHVlX2Nv bnRlbnRzX2Zvcl9wcmludGluZyAodmFsKSwKLUBAIC00NDA5LDcgKzQ0MDksNyBAQAorQEAgLTQ0 MTUsNyArNDQxNSw3IEBACiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIHB1dHNfZmlsdGVyZWQg KCJcbiIpOwpAQCAtMTkwMyw3ICsxODYwLDcgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIw L2dkYi9nZGJ0eXBlcy5jCiAgICBpZiAoVFlQRV9PQkpGSUxFX09XTkVEICh0eXBlKSkKICAgICAg ewogICAgICAgIHByaW50ZmlfZmlsdGVyZWQgKHNwYWNlcywgIm9iamZpbGUgIik7Ci1AQCAtNDg2 OSw3ICs0ODY5LDcgQEAKK0BAIC00ODc1LDcgKzQ4NzUsNyBAQAogIAogIHN0cnVjdCB0eXBlICoK ICBhcmNoX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLApAQCAtMTkxMiwxMCArMTg2OSwx MCBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2dkYnR5cGVzLmMKICB7CiAgICBz dHJ1Y3QgdHlwZSAqdHlwZTsKICAKLUluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvZ2Ri dHlwZXMuaAorSW5kZXg6IGdkYi04LjAvZ2RiL2dkYnR5cGVzLmgKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy45OS45MC4yMDE3MDQyMC5vcmlnL2dkYi9nZGJ0eXBlcy5oCTIwMTctMDQtMjAgMjM6MDg6 NTQuMTY3Mzk0ODEyICswMjAwCi0rKysgZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2dkYnR5cGVz LmgJMjAxNy0wNC0yMCAyMzowODo1Ni45ODU0MTA2OTEgKzAyMDAKKy0tLSBnZGItOC4wLm9yaWcv Z2RiL2dkYnR5cGVzLmgJMjAxNy0wOC0xOSAyMDowNDo1OS44MDU3ODA2ODggKzAyMDAKKysrKyBn ZGItOC4wL2dkYi9nZGJ0eXBlcy5oCTIwMTctMDgtMTkgMjA6MDU6MTAuMDc2ODc2Nzc2ICswMjAw CiBAQCAtNzg3LDcgKzc4Nyw3IEBACiAgICAgICB0eXBlX2xlbmd0aF91bml0cyBmdW5jdGlvbiBz aG91bGQgYmUgdXNlZCBpbiBvcmRlciB0byBnZXQgdGhlIGxlbmd0aAogICAgICAgZXhwcmVzc2Vk IGluIHRhcmdldCBhZGRyZXNzYWJsZSBtZW1vcnkgdW5pdHMuICAqLwpAQCAtMTk0MywxMCArMTkw MCwxMCBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2dkYnR5cGVzLmgKICAJCQkg ICAgICAgY29uc3QgY2hhciAqKTsKICBleHRlcm4gc3RydWN0IHR5cGUgKmFyY2hfaW50ZWdlcl90 eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqLCBpbnQsIGludCwKICAJCQkJICAgICAgIGNvbnN0IGNoYXIg Kik7Ci1JbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2dudS12Mi1hYmkuYworSW5kZXg6 IGdkYi04LjAvZ2RiL2dudS12Mi1hYmkuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5LjkwLjIw MTcwNDIwLm9yaWcvZ2RiL2dudS12Mi1hYmkuYwkyMDE3LTA0LTIwIDIzOjA4OjU0LjE2NzM5NDgx MiArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9nbnUtdjItYWJpLmMJMjAxNy0w NC0yMCAyMzowODo1Ni45ODU0MTA2OTEgKzAyMDAKKy0tLSBnZGItOC4wLm9yaWcvZ2RiL2dudS12 Mi1hYmkuYwkyMDE3LTA4LTE5IDIwOjA0OjU5LjgwNTc4MDY4OCArMDIwMAorKysrIGdkYi04LjAv Z2RiL2dudS12Mi1hYmkuYwkyMDE3LTA4LTE5IDIwOjA1OjEwLjA3Njg3Njc3NiArMDIwMAogQEAg LTgyLDcgKzgyLDcgQEAKICAgICBUWVBFIGlzIHRoZSB0eXBlIGluIHdoaWNoIEYgaXMgbG9jYXRl ZC4gICovCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCkBAIC0xOTg0LDEwICsxOTQxLDEwIEBAIElu ZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvZ251LXYyLWFiaS5jCiAgCSAgICBnbnV2Ml9i YXNlY2xhc3Nfb2Zmc2V0ICh0eXBlLCBpLCB2YWxhZGRyLAogIAkJCQkgICAgZW1iZWRkZWRfb2Zm c2V0LCBhZGRyZXNzLCB2YWwpOwogIAotSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9n bnUtdjMtYWJpLmMKK0luZGV4OiBnZGItOC4wL2dkYi9nbnUtdjMtYWJpLmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy45OS45MC4yMDE3MDQyMC5vcmlnL2dkYi9nbnUtdjMtYWJpLmMJMjAxNy0wNC0y MCAyMzowODo1NC4xNjgzOTQ4MTcgKzAyMDAKLSsrKyBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIv Z251LXYzLWFiaS5jCTIwMTctMDQtMjAgMjM6MDg6NTYuOTg2NDEwNjk3ICswMjAwCistLS0gZ2Ri LTguMC5vcmlnL2dkYi9nbnUtdjMtYWJpLmMJMjAxNy0wOC0xOSAyMDowNDo1OS44MDY3ODA2OTgg KzAyMDAKKysrKyBnZGItOC4wL2dkYi9nbnUtdjMtYWJpLmMJMjAxNy0wOC0xOSAyMDowNToxMC4w Nzc4NzY3ODUgKzAyMDAKIEBAIC0xMDksNyArMTA5LDcgQEAKICB7CiAgICBzdHJ1Y3QgdHlwZSAq dDsKQEAgLTIwNTEsMTAgKzIwMDgsMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dk Yi9nbnUtdjMtYWJpLmMKICAgICAgICBzdHJ1Y3QgdHlwZSAqYmFzZXR5cGU7CiAgCiAgICAgICAg aWYgKEJBU0VUWVBFX1ZJQV9WSVJUVUFMIChkb21haW4sIGkpKQotSW5kZXg6IGdkYi03Ljk5Ljkw LjIwMTcwNDIwL2dkYi9nby1sYW5nLmgKK0luZGV4OiBnZGItOC4wL2dkYi9nby1sYW5nLmgKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy45OS45MC4yMDE3MDQyMC5vcmlnL2dkYi9nby1sYW5nLmgJMjAx Ny0wNC0yMCAyMzowODo1NC4xNjgzOTQ4MTcgKzAyMDAKLSsrKyBnZGItNy45OS45MC4yMDE3MDQy MC9nZGIvZ28tbGFuZy5oCTIwMTctMDQtMjAgMjM6MDg6NTYuOTg2NDEwNjk3ICswMjAwCistLS0g Z2RiLTguMC5vcmlnL2dkYi9nby1sYW5nLmgJMjAxNy0wOC0xOSAyMDowNDo1OS44MDY3ODA2OTgg KzAyMDAKKysrKyBnZGItOC4wL2dkYi9nby1sYW5nLmgJMjAxNy0wOC0xOSAyMDowNToxMC4wNzc4 NzY3ODUgKzAyMDAKIEBAIC04NSw3ICs4NSw3IEBACiAgLyogRGVmaW5lZCBpbiBnby12YWxwcmlu dC5jLiAgKi8KICAKQEAgLTIwNjQsMTAgKzIwMjEsMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIw MTcwNDIwL2dkYi9nby1sYW5nLmgKICAJCQkgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCBy ZWN1cnNlLAogIAkJCSAgc3RydWN0IHZhbHVlICp2YWwsCiAgCQkJICBjb25zdCBzdHJ1Y3QgdmFs dWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucyk7Ci1JbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAv Z2RiL2dvLXZhbHByaW50LmMKK0luZGV4OiBnZGItOC4wL2dkYi9nby12YWxwcmludC5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAub3JpZy9nZGIvZ28tdmFscHJpbnQuYwky MDE3LTA0LTIwIDIzOjA4OjU0LjE2ODM5NDgxNyArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcw NDIwL2dkYi9nby12YWxwcmludC5jCTIwMTctMDQtMjAgMjM6MDg6NTYuOTg2NDEwNjk3ICswMjAw CistLS0gZ2RiLTguMC5vcmlnL2dkYi9nby12YWxwcmludC5jCTIwMTctMDgtMTkgMjA6MDQ6NTku ODA2NzgwNjk4ICswMjAwCisrKysgZ2RiLTguMC9nZGIvZ28tdmFscHJpbnQuYwkyMDE3LTA4LTE5 IDIwOjA1OjEwLjA3Nzg3Njc4NSArMDIwMAogQEAgLTg2LDcgKzg2LDcgQEAKICAvKiBJbXBsZW1l bnRzIHRoZSBsYV92YWxfcHJpbnQgcm91dGluZSBmb3IgbGFuZ3VhZ2UgR28uICAqLwogIApAQCAt MjA3NywxMCArMjAzNCwxMCBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2dvLXZh bHByaW50LmMKICAJICAgICAgQ09SRV9BRERSIGFkZHJlc3MsIHN0cnVjdCB1aV9maWxlICpzdHJl YW0sIGludCByZWN1cnNlLAogIAkgICAgICBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJICAgICAgY29u c3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCi1JbmRleDogZ2RiLTcuOTku OTAuMjAxNzA0MjAvZ2RiL2xhbmd1YWdlLmMKK0luZGV4OiBnZGItOC4wL2dkYi9sYW5ndWFnZS5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAub3JpZy9nZGIvbGFuZ3VhZ2Uu YwkyMDE3LTA0LTIwIDIzOjA4OjU0LjE2ODM5NDgxNyArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIw MTcwNDIwL2dkYi9sYW5ndWFnZS5jCTIwMTctMDQtMjAgMjM6MDg6NTYuOTg2NDEwNjk3ICswMjAw CistLS0gZ2RiLTguMC5vcmlnL2dkYi9sYW5ndWFnZS5jCTIwMTctMDgtMTkgMjA6MDQ6NTkuODA2 NzgwNjk4ICswMjAwCisrKysgZ2RiLTguMC9nZGIvbGFuZ3VhZ2UuYwkyMDE3LTA4LTE5IDIwOjA1 OjEwLjA3Nzg3Njc4NSArMDIwMAogQEAgLTc1Myw3ICs3NTMsNyBAQAogIAogIHN0YXRpYyB2b2lk CkBAIC0yMDk5LDEwICsyMDU2LDEwIEBAIEluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIv bGFuZ3VhZ2UuYwogIAkJICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAog IAkJICAgIHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmlu dF9vcHRpb25zICpvcHRpb25zKQotSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9sYW5n dWFnZS5oCitJbmRleDogZ2RiLTguMC9nZGIvbGFuZ3VhZ2UuaAogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03Ljk5LjkwLjIwMTcwNDIwLm9yaWcvZ2RiL2xhbmd1YWdlLmgJMjAxNy0wNC0yMCAyMzowODo1 NC4xNjkzOTQ4MjMgKzAyMDAKLSsrKyBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvbGFuZ3VhZ2Uu aAkyMDE3LTA0LTIwIDIzOjA4OjU2Ljk4NjQxMDY5NyArMDIwMAorLS0tIGdkYi04LjAub3JpZy9n ZGIvbGFuZ3VhZ2UuaAkyMDE3LTA4LTE5IDIwOjA0OjU5LjgwNjc4MDY5OCArMDIwMAorKysrIGdk Yi04LjAvZ2RiL2xhbmd1YWdlLmgJMjAxNy0wOC0xOSAyMDowNToxMC4wNzc4NzY3ODUgKzAyMDAK IEBAIC0xOTcsNyArMTk3LDcgQEAKICAJCQkgIHN0cnVjdCB1aV9maWxlICogc3RyZWFtKTsKICAK QEAgLTIxMjEsMTAgKzIwNzgsMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9s YW5ndWFnZS5oCiAgCQkJICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJ CQkgIHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJCSAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29w dGlvbnMgKm9wdGlvbnMpOwotSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9tMi1sYW5n LmMKK0luZGV4OiBnZGItOC4wL2dkYi9tMi1sYW5nLmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45 OS45MC4yMDE3MDQyMC5vcmlnL2dkYi9tMi1sYW5nLmMJMjAxNy0wNC0yMCAyMzowODo1NC4xNjkz OTQ4MjMgKzAyMDAKLSsrKyBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvbTItbGFuZy5jCTIwMTct MDQtMjAgMjM6MDg6NTYuOTg3NDEwNzAyICswMjAwCistLS0gZ2RiLTguMC5vcmlnL2dkYi9tMi1s YW5nLmMJMjAxNy0wOC0xOSAyMDowNDo1OS44MDc3ODA3MDcgKzAyMDAKKysrKyBnZGItOC4wL2dk Yi9tMi1sYW5nLmMJMjAxNy0wOC0xOSAyMDowNToxMC4wNzg4NzY3OTUgKzAyMDAKIEBAIC0xMDQs MTAgKzEwNCwxMCBAQAogIAogIHN0YXRpYyB2b2lkCkBAIC0yMTU5LDEwICsyMTE2LDEwIEBAIElu ZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvbTItbGFuZy5jCiAgCSAgaSA9IHJlcDEgLSAx OwogIAkgIHRoaW5nc19wcmludGVkICs9IG9wdGlvbnMtPnJlcGVhdF9jb3VudF90aHJlc2hvbGQ7 CiAgCSAgbmVlZF9jb21tYSA9IDE7Ci1JbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL20y LWxhbmcuaAorSW5kZXg6IGdkYi04LjAvZ2RiL20yLWxhbmcuaAogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03Ljk5LjkwLjIwMTcwNDIwLm9yaWcvZ2RiL20yLWxhbmcuaAkyMDE3LTA0LTIwIDIzOjA4OjU0 LjE2OTM5NDgyMyArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9tMi1sYW5nLmgJ MjAxNy0wNC0yMCAyMzowODo1Ni45ODc0MTA3MDIgKzAyMDAKKy0tLSBnZGItOC4wLm9yaWcvZ2Ri L20yLWxhbmcuaAkyMDE3LTA4LTE5IDIwOjA0OjU5LjgwNzc4MDcwNyArMDIwMAorKysrIGdkYi04 LjAvZ2RiL20yLWxhbmcuaAkyMDE3LTA4LTE5IDIwOjA1OjEwLjA3ODg3Njc5NSArMDIwMAogQEAg LTM0LDcgKzM0LDcgQEAKICBleHRlcm4gaW50IG0yX2lzX2xvbmdfc2V0IChzdHJ1Y3QgdHlwZSAq dHlwZSk7CiAgZXh0ZXJuIGludCBtMl9pc191bmJvdW5kZWRfYXJyYXkgKHN0cnVjdCB0eXBlICp0 eXBlKTsKQEAgLTIxNzIsMTAgKzIxMjksMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIw L2dkYi9tMi1sYW5nLmgKICAJCQkgIHN0cnVjdCB1aV9maWxlICosIGludCwKICAJCQkgIHN0cnVj dCB2YWx1ZSAqLAogIAkJCSAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKik7Ci1J bmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL20yLXR5cGVwcmludC5jCitJbmRleDogZ2Ri LTguMC9nZGIvbTItdHlwZXByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45OS45MC4yMDE3 MDQyMC5vcmlnL2dkYi9tMi10eXBlcHJpbnQuYwkyMDE3LTA0LTIwIDIzOjA4OjU0LjE2OTM5NDgy MyArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9tMi10eXBlcHJpbnQuYwkyMDE3 LTA0LTIwIDIzOjA4OjU2Ljk4NzQxMDcwMiArMDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvbTIt dHlwZXByaW50LmMJMjAxNy0wOC0xOSAyMDowNDo1OS44MDc3ODA3MDcgKzAyMDAKKysrKyBnZGIt OC4wL2dkYi9tMi10eXBlcHJpbnQuYwkyMDE3LTA4LTE5IDIwOjA1OjEwLjA3ODg3Njc5NSArMDIw MAogQEAgLTIzNCw5ICsyMzQsMTIgQEAKICAJICBtMl9wcmludF9ib3VuZHMgKFRZUEVfSU5ERVhf VFlQRSAodHlwZSksIHN0cmVhbSwgc2hvdywgLTEsIDEpOwogIAl9CkBAIC0yMTkyLDEwICsyMTQ5 LDEwIEBAIEluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvbTItdHlwZXByaW50LmMKICAg ICAgfQogICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiXSBPRiAiKTsKICAgIG0yX3ByaW50 X3R5cGUgKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpLCAiIiwgc3RyZWFtLCBzaG93LCBsZXZlbCwg ZmxhZ3MpOwotSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9tMi12YWxwcmludC5jCitJ bmRleDogZ2RiLTguMC9nZGIvbTItdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5 LjkwLjIwMTcwNDIwLm9yaWcvZ2RiL20yLXZhbHByaW50LmMJMjAxNy0wNC0yMCAyMzowODo1NC4x NzAzOTQ4MjkgKzAyMDAKLSsrKyBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvbTItdmFscHJpbnQu YwkyMDE3LTA0LTIwIDIzOjA4OjU2Ljk4NzQxMDcwMiArMDIwMAorLS0tIGdkYi04LjAub3JpZy9n ZGIvbTItdmFscHJpbnQuYwkyMDE3LTA4LTE5IDIwOjA0OjU5LjgwNzc4MDcwNyArMDIwMAorKysr IGdkYi04LjAvZ2RiL20yLXZhbHByaW50LmMJMjAxNy0wOC0xOSAyMDowNToxMC4wNzg4NzY3OTUg KzAyMDAKIEBAIC0zNSw3ICszNSw3IEBACiAgCQkJCSAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0p OwogIHN0YXRpYyB2b2lkCkBAIC0yMjY2LDEwICsyMjIzLDEwIEBAIEluZGV4OiBnZGItNy45OS45 MC4yMDE3MDQyMC9nZGIvbTItdmFscHJpbnQuYwogIAkgIGludCBuZWVkX2NvbW1hID0gMDsKICAK ICAJICBmcHV0c19maWx0ZXJlZCAoInsiLCBzdHJlYW0pOwotSW5kZXg6IGdkYi03Ljk5LjkwLjIw MTcwNDIwL2dkYi9tZW1yYW5nZS5jCitJbmRleDogZ2RiLTguMC9nZGIvbWVtcmFuZ2UuYwogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03Ljk5LjkwLjIwMTcwNDIwLm9yaWcvZ2RiL21lbXJhbmdlLmMJMjAx Ny0wNC0yMCAyMzowODo1NC4xNzAzOTQ4MjkgKzAyMDAKLSsrKyBnZGItNy45OS45MC4yMDE3MDQy MC9nZGIvbWVtcmFuZ2UuYwkyMDE3LTA0LTIwIDIzOjA4OjU2Ljk4NzQxMDcwMiArMDIwMAorLS0t IGdkYi04LjAub3JpZy9nZGIvbWVtcmFuZ2UuYwkyMDE3LTA4LTE5IDIwOjA0OjU5LjgwNzc4MDcw NyArMDIwMAorKysrIGdkYi04LjAvZ2RiL21lbXJhbmdlLmMJMjAxNy0wOC0xOSAyMDowNToxMC4w Nzg4NzY3OTUgKzAyMDAKIEBAIC0yMiw4ICsyMiw4IEBACiAgI2luY2x1ZGUgPGFsZ29yaXRobT4K ICAKQEAgLTIyODEsMTAgKzIyMzgsMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dk Yi9tZW1yYW5nZS5jCiAgewogICAgVUxPTkdFU1QgaCwgbDsKICAKLUluZGV4OiBnZGItNy45OS45 MC4yMDE3MDQyMC9nZGIvbWVtcmFuZ2UuaAorSW5kZXg6IGdkYi04LjAvZ2RiL21lbXJhbmdlLmgK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy45OS45MC4yMDE3MDQyMC5vcmlnL2dkYi9tZW1yYW5nZS5o CTIwMTctMDQtMjAgMjM6MDg6NTQuMTcwMzk0ODI5ICswMjAwCi0rKysgZ2RiLTcuOTkuOTAuMjAx NzA0MjAvZ2RiL21lbXJhbmdlLmgJMjAxNy0wNC0yMCAyMzowODo1Ni45ODc0MTA3MDIgKzAyMDAK Ky0tLSBnZGItOC4wLm9yaWcvZ2RiL21lbXJhbmdlLmgJMjAxNy0wOC0xOSAyMDowNDo1OS44MDg3 ODA3MTYgKzAyMDAKKysrKyBnZGItOC4wL2dkYi9tZW1yYW5nZS5oCTIwMTctMDgtMTkgMjA6MDU6 MTAuMDc5ODc2ODA0ICswMjAwCiBAQCAtMzAsNyArMzAsNyBAQAogICAgQ09SRV9BRERSIHN0YXJ0 OwogIApAQCAtMjMwNSwxMCArMjI2MiwxMCBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAv Z2RiL21lbXJhbmdlLmgKICAKICAvKiBSZXR1cm5zIHRydWUgaWYgQUREUiBpcyBpbiBSQU5HRS4g ICovCiAgCi1JbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL21pcHMtbGludXgtbmF0LmMK K0luZGV4OiBnZGItOC4wL2dkYi9taXBzLWxpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuOTkuOTAuMjAxNzA0MjAub3JpZy9nZGIvbWlwcy1saW51eC1uYXQuYwkyMDE3LTA0LTIwIDIz OjA4OjU0LjE3MDM5NDgyOSArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9taXBz LWxpbnV4LW5hdC5jCTIwMTctMDQtMjAgMjM6MDg6NTYuOTg4NDEwNzA4ICswMjAwCistLS0gZ2Ri LTguMC5vcmlnL2dkYi9taXBzLWxpbnV4LW5hdC5jCTIwMTctMDgtMTkgMjA6MDQ6NTkuODA4Nzgw NzE2ICswMjAwCisrKysgZ2RiLTguMC9nZGIvbWlwcy1saW51eC1uYXQuYwkyMDE3LTA4LTE5IDIw OjA1OjEwLjA3OTg3NjgwNCArMDIwMAogQEAgLTU4NCw3ICs1ODQsNyBAQAogIAogIHN0YXRpYyBp bnQKQEAgLTIzMTgsMTAgKzIyNzUsMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dk Yi9taXBzLWxpbnV4LW5hdC5jCiAgewogICAgc3RydWN0IHB0X3dhdGNoX3JlZ3MgZHVtbXlfcmVn czsKICAgIGludCBpOwotSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9vcGVuY2wtbGFu Zy5jCitJbmRleDogZ2RiLTguMC9nZGIvb3BlbmNsLWxhbmcuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03Ljk5LjkwLjIwMTcwNDIwLm9yaWcvZ2RiL29wZW5jbC1sYW5nLmMJMjAxNy0wNC0yMCAyMzow ODo1NC4xNzEzOTQ4MzQgKzAyMDAKLSsrKyBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvb3BlbmNs LWxhbmcuYwkyMDE3LTA0LTIwIDIzOjA4OjU2Ljk4ODQxMDcwOCArMDIwMAorLS0tIGdkYi04LjAu b3JpZy9nZGIvb3BlbmNsLWxhbmcuYwkyMDE3LTA4LTE5IDIwOjA0OjU5LjgwODc4MDcxNiArMDIw MAorKysrIGdkYi04LjAvZ2RiL29wZW5jbC1sYW5nLmMJMjAxNy0wOC0xOSAyMDowNToxMC4wNzk4 NzY4MDQgKzAyMDAKIEBAIC03OCwxMSArNzgsMTEgQEAKICAKICBzdGF0aWMgc3RydWN0IHR5cGUg KgpAQCAtMjM5MCwxMCArMjM0NywxMCBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2Ri L29wZW5jbC1sYW5nLmMKICAKICAgICAgICBpZiAoIXZhbHVlX2JpdHNfc3ludGhldGljX3BvaW50 ZXIgKGMtPnZhbCwKICAJCQkJCSBjLT5pbmRpY2VzW2ldICogZWxzaXplICsgY29tcF9vZmZzZXQs Ci1JbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3AtbGFuZy5jCitJbmRleDogZ2RiLTgu MC9nZGIvcC1sYW5nLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45OS45MC4yMDE3MDQyMC5vcmln L2dkYi9wLWxhbmcuYwkyMDE3LTA0LTIwIDIzOjA4OjU0LjE3MTM5NDgzNCArMDIwMAotKysrIGdk Yi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9wLWxhbmcuYwkyMDE3LTA0LTIwIDIzOjA4OjU2Ljk4ODQx MDcwOCArMDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvcC1sYW5nLmMJMjAxNy0wOC0xOSAyMDow NDo1OS44MDg3ODA3MTYgKzAyMDAKKysrKyBnZGItOC4wL2dkYi9wLWxhbmcuYwkyMDE3LTA4LTE5 IDIwOjA1OjEwLjA3OTg3NjgwNCArMDIwMAogQEAgLTk1LDggKzk1LDggQEAKICAgICBhcmUgbm90 IG11bHRpcGxlIG9mIFRBUkdFVF9DSEFSX0JJVCB0aGVuIHRoZSByZXN1bHRzIGFyZSB3cm9uZwog ICAgIGJ1dCB0aGlzIGRvZXMgbm90IGhhcHBlbiBmb3IgRnJlZSBQYXNjYWwgbm9yIGZvciBHUEMu ICAqLwpAQCAtMjQ0MSwxMCArMjM5OCwxMCBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAv Z2RiL3AtbGFuZy5jCiAgCSAgaSA9IHJlcDEgLSAxOwogIAkgIHRoaW5nc19wcmludGVkICs9IG9w dGlvbnMtPnJlcGVhdF9jb3VudF90aHJlc2hvbGQ7CiAgCSAgbmVlZF9jb21tYSA9IDE7Ci1JbmRl eDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3AtbGFuZy5oCitJbmRleDogZ2RiLTguMC9nZGIv cC1sYW5nLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45OS45MC4yMDE3MDQyMC5vcmlnL2dkYi9w LWxhbmcuaAkyMDE3LTA0LTIwIDIzOjA4OjU0LjE3MTM5NDgzNCArMDIwMAotKysrIGdkYi03Ljk5 LjkwLjIwMTcwNDIwL2dkYi9wLWxhbmcuaAkyMDE3LTA0LTIwIDIzOjA4OjU2Ljk4ODQxMDcwOCAr MDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvcC1sYW5nLmgJMjAxNy0wOC0xOSAyMDowNDo1OS44 MDk3ODA3MjYgKzAyMDAKKysrKyBnZGItOC4wL2dkYi9wLWxhbmcuaAkyMDE3LTA4LTE5IDIwOjA1 OjEwLjA4MDg3NjgxMyArMDIwMAogQEAgLTM2LDcgKzM2LDcgQEAKICBleHRlcm4gdm9pZCBwYXNj YWxfcHJpbnRfdHlwZWRlZiAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHN5bWJvbCAqLAogIAkJCQkg IHN0cnVjdCB1aV9maWxlICopOwpAQCAtMjQ3MCwxMCArMjQyNywxMCBAQCBJbmRleDogZ2RiLTcu OTkuOTAuMjAxNzA0MjAvZ2RiL3AtbGFuZy5oCiAgCQkJICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVf cHJpbnRfb3B0aW9ucyAqKTsKICAKICBleHRlcm4gc3RydWN0IHR5cGUgKipjb25zdCAocGFzY2Fs X2J1aWx0aW5fdHlwZXNbXSk7Ci1JbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3AtdmFs cHJpbnQuYworSW5kZXg6IGdkYi04LjAvZ2RiL3AtdmFscHJpbnQuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03Ljk5LjkwLjIwMTcwNDIwLm9yaWcvZ2RiL3AtdmFscHJpbnQuYwkyMDE3LTA0LTIwIDIz OjA4OjU0LjE3MTM5NDgzNCArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9wLXZh bHByaW50LmMJMjAxNy0wNC0yMCAyMzowODo1Ni45ODk0MTA3MTMgKzAyMDAKKy0tLSBnZGItOC4w Lm9yaWcvZ2RiL3AtdmFscHJpbnQuYwkyMDE3LTA4LTE5IDIwOjA0OjU5LjgwOTc4MDcyNiArMDIw MAorKysrIGdkYi04LjAvZ2RiL3AtdmFscHJpbnQuYwkyMDE3LTA4LTE5IDIwOjA1OjEwLjA4MDg3 NjgxMyArMDIwMAogQEAgLTU5LDcgKzU5LDcgQEAKICAKICB2b2lkCkBAIC0yNDk0LDEwICsyNDUx LDEwIEBAIEluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvcC12YWxwcmludC5jCiAgICBz dHJ1Y3QgdHlwZSAqY2hhcl90eXBlOwogICAgQ09SRV9BRERSIGFkZHI7CiAgICBpbnQgd2FudF9z cGFjZSA9IDA7Ci1JbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3BwYy1saW51eC1uYXQu YworSW5kZXg6IGdkYi04LjAvZ2RiL3BwYy1saW51eC1uYXQuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03Ljk5LjkwLjIwMTcwNDIwLm9yaWcvZ2RiL3BwYy1saW51eC1uYXQuYwkyMDE3LTA0LTIwIDIz OjA4OjU0LjE3MjM5NDg0MCArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9wcGMt bGludXgtbmF0LmMJMjAxNy0wNC0yMCAyMzowODo1Ni45ODk0MTA3MTMgKzAyMDAKKy0tLSBnZGIt OC4wLm9yaWcvZ2RiL3BwYy1saW51eC1uYXQuYwkyMDE3LTA4LTE5IDIwOjA0OjU5LjgwOTc4MDcy NiArMDIwMAorKysrIGdkYi04LjAvZ2RiL3BwYy1saW51eC1uYXQuYwkyMDE3LTA4LTE5IDIwOjA1 OjEwLjA4MDg3NjgxMyArMDIwMAogQEAgLTE0NDUsNyArMTQ0NSw3IEBACiAgCiAgc3RhdGljIGlu dApAQCAtMjUwNywxMCArMjQ2NCwxMCBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2Ri L3BwYy1saW51eC1uYXQuYwogIHsKICAgIC8qIEhhbmRsZSBzdWItOC1ieXRlIHF1YW50aXRpZXMu ICAqLwogICAgaWYgKGxlbiA8PSAwKQotSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9w cmludGNtZC5jCitJbmRleDogZ2RiLTguMC9nZGIvcHJpbnRjbWQuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03Ljk5LjkwLjIwMTcwNDIwLm9yaWcvZ2RiL3ByaW50Y21kLmMJMjAxNy0wNC0yMCAyMzow ODo1NC4xNzMzOTQ4NDYgKzAyMDAKLSsrKyBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvcHJpbnRj bWQuYwkyMDE3LTA0LTIwIDIzOjA4OjU2Ljk5MDQxMDcxOSArMDIwMAorLS0tIGdkYi04LjAub3Jp Zy9nZGIvcHJpbnRjbWQuYwkyMDE3LTA4LTE5IDIwOjA0OjU5LjgxMDc4MDczNSArMDIwMAorKysr IGdkYi04LjAvZ2RiL3ByaW50Y21kLmMJMjAxNy0wOC0xOSAyMDowNToxMC4wODE4NzY4MjMgKzAy MDAKIEBAIC0yODAsNyArMjgwLDcgQEAKICAJCSBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKQogIHsK QEAgLTI1MjksMTAgKzI0ODYsMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9w cmludGNtZC5jCiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9v cmRlciAoZ2RiYXJjaCk7CiAgCiAgICAvKiBTdHJpbmcgcHJpbnRpbmcgc2hvdWxkIGdvIHRocm91 Z2ggdmFsX3ByaW50X3NjYWxhcl9mb3JtYXR0ZWQuICAqLwotSW5kZXg6IGdkYi03Ljk5LjkwLjIw MTcwNDIwL2dkYi9wcm9jZnMuYworSW5kZXg6IGdkYi04LjAvZ2RiL3Byb2Nmcy5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAub3JpZy9nZGIvcHJvY2ZzLmMJMjAxNy0wNC0y MCAyMzowODo1NC4xNzMzOTQ4NDYgKzAyMDAKLSsrKyBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIv cHJvY2ZzLmMJMjAxNy0wNC0yMCAyMzowODo1Ni45OTE0MTA3MjUgKzAyMDAKKy0tLSBnZGItOC4w Lm9yaWcvZ2RiL3Byb2Nmcy5jCTIwMTctMDgtMTkgMjA6MDQ6NTkuODExNzgwNzQ0ICswMjAwCisr KysgZ2RiLTguMC9nZGIvcHJvY2ZzLmMJMjAxNy0wOC0xOSAyMDowNToxMC4wODI4NzY4MzIgKzAy MDAKIEBAIC00ODY0LDcgKzQ4NjQsNyBAQAogIAogIHN0YXRpYyBpbnQKQEAgLTI1NDIsMTAgKzI0 OTksMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9wcm9jZnMuYwogIHsKICAg IC8qIFRoZSBtYW4gcGFnZSBmb3IgcHJvYyg0KSBvbiBTb2xhcmlzIDIuNiBhbmQgdXAgc2F5cyB0 aGF0IHRoZQogICAgICAgc3lzdGVtIGNhbiBzdXBwb3J0ICJ0aG91c2FuZHMiIG9mIGhhcmR3YXJl IHdhdGNocG9pbnRzLCBidXQgZ2l2ZXMKLUluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIv cmVnY2FjaGUuYworSW5kZXg6IGdkYi04LjAvZ2RiL3JlZ2NhY2hlLmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy45OS45MC4yMDE3MDQyMC5vcmlnL2dkYi9yZWdjYWNoZS5jCTIwMTctMDQtMjAgMjM6 MDg6NTQuMTc0Mzk0ODUxICswMjAwCi0rKysgZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3JlZ2Nh Y2hlLmMJMjAxNy0wNC0yMCAyMzowODo1Ni45OTE0MTA3MjUgKzAyMDAKKy0tLSBnZGItOC4wLm9y aWcvZ2RiL3JlZ2NhY2hlLmMJMjAxNy0wOC0xOSAyMDowNDo1OS44MTE3ODA3NDQgKzAyMDAKKysr KyBnZGItOC4wL2dkYi9yZWdjYWNoZS5jCTIwMTctMDgtMTkgMjA6MDU6MTAuMDgyODc2ODMyICsw MjAwCiBAQCAtOTg4LDcgKzk4OCw3IEBACiAgCiAgc3RhdGljIGVudW0gcmVnaXN0ZXJfc3RhdHVz CkBAIC0yNTkxLDEwICsyNTQ4LDEwIEBAIEluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIv cmVnY2FjaGUuYwogIHsKICAgIHN0cnVjdCByZWdjYWNoZV9kZXNjciAqZGVzY3IgPSByZWdjYWNo ZS0+ZGVzY3I7CiAgCi1JbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3JlZ2NhY2hlLmgK K0luZGV4OiBnZGItOC4wL2dkYi9yZWdjYWNoZS5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOTku OTAuMjAxNzA0MjAub3JpZy9nZGIvcmVnY2FjaGUuaAkyMDE3LTA0LTIwIDIzOjA4OjU0LjE3NDM5 NDg1MSArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9yZWdjYWNoZS5oCTIwMTct MDQtMjAgMjM6MDg6NTYuOTkxNDEwNzI1ICswMjAwCistLS0gZ2RiLTguMC5vcmlnL2dkYi9yZWdj YWNoZS5oCTIwMTctMDgtMTkgMjA6MDQ6NTkuODEyNzgwNzU0ICswMjAwCisrKysgZ2RiLTguMC9n ZGIvcmVnY2FjaGUuaAkyMDE3LTA4LTE5IDIwOjA1OjEwLjA4Mzg3Njg0MSArMDIwMAogQEAgLTk0 LDkgKzk0LDkgQEAKICAKICBleHRlcm4gZW51bSByZWdpc3Rlcl9zdGF0dXMKQEAgLTI2MjIsMTAg KzI1NzksMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9yZWdjYWNoZS5oCiAg CiAgLyogU3BlY2lhbCByb3V0aW5lcyB0byByZWFkL3dyaXRlIHRoZSBQQy4gICovCiAgCi1JbmRl eDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3JlbW90ZS5jCitJbmRleDogZ2RiLTguMC9nZGIv cmVtb3RlLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45OS45MC4yMDE3MDQyMC5vcmlnL2dkYi9y ZW1vdGUuYwkyMDE3LTA0LTIwIDIzOjA4OjU0LjE3NzM5NDg2OCArMDIwMAotKysrIGdkYi03Ljk5 LjkwLjIwMTcwNDIwL2dkYi9yZW1vdGUuYwkyMDE3LTA0LTIwIDIzOjA4OjU2Ljk5MzQxMDczNiAr MDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvcmVtb3RlLmMJMjAxNy0wOC0xOSAyMDowNDo1OS44 MTQ3ODA3NzIgKzAyMDAKKysrKyBnZGItOC4wL2dkYi9yZW1vdGUuYwkyMDE3LTA4LTE5IDIwOjA1 OjEwLjA4NTg3Njg2MCArMDIwMAogQEAgLTk5MTUsNyArOTkxNSw3IEBACiAgCiAgc3RhdGljIGlu dApAQCAtMjYzNSwxMCArMjU5MiwxMCBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2Ri L3JlbW90ZS5jCiAgewogICAgaWYgKHJlbW90ZV9od193YXRjaHBvaW50X2xlbmd0aF9saW1pdCA9 PSAwKQogICAgICByZXR1cm4gMDsKLUluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvc3B1 LW11bHRpYXJjaC5jCitJbmRleDogZ2RiLTguMC9nZGIvc3B1LW11bHRpYXJjaC5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAub3JpZy9nZGIvc3B1LW11bHRpYXJjaC5jCTIw MTctMDQtMjAgMjM6MDg6NTQuMTc3Mzk0ODY4ICswMjAwCi0rKysgZ2RiLTcuOTkuOTAuMjAxNzA0 MjAvZ2RiL3NwdS1tdWx0aWFyY2guYwkyMDE3LTA0LTIwIDIzOjA4OjU2Ljk5NDQxMDc0MiArMDIw MAorLS0tIGdkYi04LjAub3JpZy9nZGIvc3B1LW11bHRpYXJjaC5jCTIwMTctMDgtMTkgMjA6MDQ6 NTkuODE0NzgwNzcyICswMjAwCisrKysgZ2RiLTguMC9nZGIvc3B1LW11bHRpYXJjaC5jCTIwMTct MDgtMTkgMjA6MDU6MTAuMDg1ODc2ODYwICswMjAwCiBAQCAtMTI3LDcgKzEyNyw3IEBACiAgLyog T3ZlcnJpZGUgdGhlIHRvX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCByb3V0aW5lLiAgKi8K ICBzdGF0aWMgaW50CkBAIC0yNjQ4LDEwICsyNjA1LDEwIEBAIEluZGV4OiBnZGItNy45OS45MC4y MDE3MDQyMC9nZGIvc3B1LW11bHRpYXJjaC5jCiAgewogICAgc3RydWN0IHRhcmdldF9vcHMgKm9w c19iZW5lYXRoID0gZmluZF90YXJnZXRfYmVuZWF0aCAoc2VsZik7CiAgCi1JbmRleDogZ2RiLTcu OTkuOTAuMjAxNzA0MjAvZ2RiL3N0YWNrLmMKK0luZGV4OiBnZGItOC4wL2dkYi9zdGFjay5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAub3JpZy9nZGIvc3RhY2suYwkyMDE3 LTA0LTIwIDIzOjA4OjU0LjE3ODM5NDg3NCArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIw L2dkYi9zdGFjay5jCTIwMTctMDQtMjAgMjM6MDg6NTYuOTk0NDEwNzQyICswMjAwCistLS0gZ2Ri LTguMC5vcmlnL2dkYi9zdGFjay5jCTIwMTctMDgtMTkgMjA6MDQ6NTkuODE1NzgwNzgyICswMjAw CisrKysgZ2RiLTguMC9nZGIvc3RhY2suYwkyMDE3LTA4LTE5IDIwOjA1OjEwLjA4Njg3Njg2OSAr MDIwMAogQEAgLTE4OSw3ICsxODksNyBAQAogICAgIGFyZ3VtZW50IChub3QganVzdCB0aGUgZmly c3QgbmFtZWxlc3MgYXJndW1lbnQpLiAgKi8KICAKQEAgLTI2OTAsMTAgKzI2NDcsMTAgQEAgSW5k ZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9zdGFjay5jCiAgCiAgICAgICAgaWYgKGhpZ2hl c3Rfb2Zmc2V0ID09IC0xKQogIAlzdGFydCA9IGdkYmFyY2hfZnJhbWVfYXJnc19za2lwIChnZXRf ZnJhbWVfYXJjaCAoZnJhbWUpKTsKLUluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvc3lt bWlzYy5jCitJbmRleDogZ2RiLTguMC9nZGIvc3ltbWlzYy5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuOTkuOTAuMjAxNzA0MjAub3JpZy9nZGIvc3ltbWlzYy5jCTIwMTctMDQtMjAgMjM6MDg6NTQu MTc4Mzk0ODc0ICswMjAwCi0rKysgZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3N5bW1pc2MuYwky MDE3LTA0LTIwIDIzOjA4OjU2Ljk5NDQxMDc0MiArMDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIv c3ltbWlzYy5jCTIwMTctMDgtMTkgMjA6MDQ6NTkuODE1NzgwNzgyICswMjAwCisrKysgZ2RiLTgu MC9nZGIvc3ltbWlzYy5jCTIwMTctMDgtMTkgMjA6MDU6MTAuMDg2ODc2ODY5ICswMjAwCiBAQCAt NjA0LDExICs2MDQsMTEgQEAKICAKICAJY2FzZSBMT0NfQ09OU1RfQllURVM6CkBAIC0yNzA5LDEw ICsyNjY2LDEwIEBAIEluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvc3ltbWlzYy5jCiAg CSAgICBmb3IgKGkgPSAwOyBpIDwgVFlQRV9MRU5HVEggKHR5cGUpOyBpKyspCiAgCSAgICAgIGZw cmludGZfZmlsdGVyZWQgKG91dGZpbGUsICIgJTAyeCIsCiAgCQkJCSh1bnNpZ25lZCkgU1lNQk9M X1ZBTFVFX0JZVEVTIChzeW1ib2wpW2ldKTsKLUluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9n ZGIvdGFyZ2V0LmMKK0luZGV4OiBnZGItOC4wL2dkYi90YXJnZXQuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03Ljk5LjkwLjIwMTcwNDIwLm9yaWcvZ2RiL3RhcmdldC5jCTIwMTctMDQtMjAgMjM6MDg6 NTQuMTc5Mzk0ODc5ICswMjAwCi0rKysgZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3RhcmdldC5j CTIwMTctMDQtMjAgMjM6MDg6NTYuOTk1NDEwNzQ3ICswMjAwCistLS0gZ2RiLTguMC5vcmlnL2dk Yi90YXJnZXQuYwkyMDE3LTA4LTE5IDIwOjA0OjU5LjgxNjc4MDc5MSArMDIwMAorKysrIGdkYi04 LjAvZ2RiL3RhcmdldC5jCTIwMTctMDgtMTkgMjA6MDU6MTAuMDg3ODc2ODc5ICswMjAwCiBAQCAt NTcsNyArNTcsNyBAQAogIAkJCQkJCSBDT1JFX0FERFIsIENPUkVfQUREUiwgaW50KTsKICAKQEAg LTI3MzEsMTAgKzI2ODgsMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi90YXJn ZXQuYwogIHsKICAgIHJldHVybiAobGVuIDw9IGdkYmFyY2hfcHRyX2JpdCAodGFyZ2V0X2dkYmFy Y2ggKCkpIC8gVEFSR0VUX0NIQVJfQklUKTsKICB9Ci1JbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0 MjAvZ2RiL3RhcmdldC5oCitJbmRleDogZ2RiLTguMC9nZGIvdGFyZ2V0LmgKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy45OS45MC4yMDE3MDQyMC5vcmlnL2dkYi90YXJnZXQuaAkyMDE3LTA0LTIwIDIz OjA4OjU0LjE4MDM5NDg4NSArMDIwMAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi90YXJn ZXQuaAkyMDE3LTA0LTIwIDIzOjA4OjU2Ljk5NjQxMDc1MyArMDIwMAorLS0tIGdkYi04LjAub3Jp Zy9nZGIvdGFyZ2V0LmgJMjAxNy0wOC0xOSAyMDowNDo1OS44MTY3ODA3OTEgKzAyMDAKKysrKyBn ZGItOC4wL2dkYi90YXJnZXQuaAkyMDE3LTA4LTE5IDIwOjA1OjEwLjA4ODg3Njg4OCArMDIwMAog QEAgLTU1NSw3ICs1NTUsNyBAQAogICAgICAvKiBEb2N1bWVudGF0aW9uIG9mIHRoaXMgcm91dGlu ZSBpcyBwcm92aWRlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nCiAgICAgICAgIHRhcmdldF8qIG1h Y3JvLiAgKi8KQEAgLTI3NDQsMTAgKzI3MDEsMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcw NDIwL2dkYi90YXJnZXQuaAogICAgICAgIFRBUkdFVF9ERUZBVUxUX0ZVTkMgKGRlZmF1bHRfcmVn aW9uX29rX2Zvcl9od193YXRjaHBvaW50KTsKICAKICAgICAgaW50ICgqdG9fY2FuX2FjY2VsX3dh dGNocG9pbnRfY29uZGl0aW9uKSAoc3RydWN0IHRhcmdldF9vcHMgKiwKLUluZGV4OiBnZGItNy45 OS45MC4yMDE3MDQyMC9nZGIvdHJhY2Vwb2ludC5jCitJbmRleDogZ2RiLTguMC9nZGIvdHJhY2Vw b2ludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAub3JpZy9nZGIvdHJh Y2Vwb2ludC5jCTIwMTctMDQtMjAgMjM6MDg6NTQuMTgyMzk0ODk2ICswMjAwCi0rKysgZ2RiLTcu OTkuOTAuMjAxNzA0MjAvZ2RiL3RyYWNlcG9pbnQuYwkyMDE3LTA0LTIwIDIzOjA4OjU2Ljk5NzQx MDc1OCArMDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvdHJhY2Vwb2ludC5jCTIwMTctMDgtMTkg MjA6MDQ6NTkuODE3NzgwODAwICswMjAwCisrKysgZ2RiLTguMC9nZGIvdHJhY2Vwb2ludC5jCTIw MTctMDgtMTkgMjA6MDU6MTAuMDg4ODc2ODg4ICswMjAwCiBAQCAtOTA0LDEwICs5MDQsMTAgQEAK ICB2b2lkCiAgY29sbGVjdGlvbl9saXN0OjphZGRfbWVtcmFuZ2UgKHN0cnVjdCBnZGJhcmNoICpn ZGJhcmNoLApAQCAtMjg0MSwxMCArMjc5OCwxMCBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0 MjAvZ2RiL3RyYWNlcG9pbnQuYwogIAl9CiAgICAgICAgaWYgKEJMT0NLX0ZVTkNUSU9OIChibG9j aykpCiAgCWJyZWFrOwotSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi92YWxhcml0aC5j CitJbmRleDogZ2RiLTguMC9nZGIvdmFsYXJpdGguYwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5 LjkwLjIwMTcwNDIwLm9yaWcvZ2RiL3ZhbGFyaXRoLmMJMjAxNy0wNC0yMCAyMzowODo1NC4xODIz OTQ4OTYgKzAyMDAKLSsrKyBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvdmFsYXJpdGguYwkyMDE3 LTA0LTIwIDIzOjA4OjU2Ljk5NzQxMDc1OCArMDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvdmFs YXJpdGguYwkyMDE3LTA4LTE5IDIwOjA0OjU5LjgxODc4MDgxMCArMDIwMAorKysrIGdkYi04LjAv Z2RiL3ZhbGFyaXRoLmMJMjAxNy0wOC0xOSAyMDowNToxMC4wODk4NzY4OTcgKzAyMDAKIEBAIC0x ODgsNyArMTg4LDcgQEAKICAgICB0byBkb3VibGVzLCBidXQgbm8gbG9uZ2VyIGRvZXMuICAqLwog IApAQCAtMjg4NywxMCArMjg0NCwxMCBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2Ri L3ZhbGFyaXRoLmMKICAKICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykKICAgICAgewotSW5k ZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi92YWxvcHMuYworSW5kZXg6IGdkYi04LjAvZ2Ri L3ZhbG9wcy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAub3JpZy9nZGIv dmFsb3BzLmMJMjAxNy0wNC0yMCAyMzowODo1NC4xODQzOTQ5MDggKzAyMDAKLSsrKyBnZGItNy45 OS45MC4yMDE3MDQyMC9nZGIvdmFsb3BzLmMJMjAxNy0wNC0yMCAyMzowODo1Ni45OTg0MTA3NjQg KzAyMDAKKy0tLSBnZGItOC4wLm9yaWcvZ2RiL3ZhbG9wcy5jCTIwMTctMDgtMTkgMjA6MDQ6NTku ODE5NzgwODE5ICswMjAwCisrKysgZ2RiLTguMC9nZGIvdmFsb3BzLmMJMjAxNy0wOC0xOSAyMDow NToxMC4wOTA4NzY5MDcgKzAyMDAKIEBAIC03OSw3ICs3OSw3IEBACiAgCQkJCQkgICBpbnQsIGlu dCk7CiAgCkBAIC0yOTI0LDcgKzI4ODEsNyBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAv Z2RiL3ZhbG9wcy5jCiAgCSAgTE9OR0VTVCBsb3dfYm91bmQsIGhpZ2hfYm91bmQsIG5ld19sZW5n dGg7CiAgCiAgCSAgaWYgKGdldF9kaXNjcmV0ZV9ib3VuZHMgKHJhbmdlX3R5cGUsICZsb3dfYm91 bmQsICZoaWdoX2JvdW5kKSA8IDApCi1AQCAtMTA2NCw3ICsxMDY0LDcgQEAKK0BAIC0xMDY1LDcg KzEwNjUsNyBAQAogICAgICAgIHsKICAJY29uc3QgZ2RiX2J5dGUgKmRlc3RfYnVmZmVyOwogIAlD T1JFX0FERFIgY2hhbmdlZF9hZGRyOwpAQCAtMjkzMyw3ICsyODkwLDcgQEAgSW5kZXg6IGdkYi03 Ljk5LjkwLjIwMTcwNDIwL2dkYi92YWxvcHMuYwogICAgICAgICAgZ2RiX2J5dGUgYnVmZmVyW3Np emVvZiAoTE9OR0VTVCldOwogIAogIAlpZiAodmFsdWVfYml0c2l6ZSAodG92YWwpKQotQEAgLTMz MzksNyArMzMzOSw3IEBACitAQCAtMzM0MCw3ICszMzQwLDcgQEAKICAgICB0aGUgZm9ybSAiRE9N QUlOOjpOQU1FIi4gICovCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCkBAIC0yOTQyLDcgKzI4 OTksNyBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3ZhbG9wcy5jCiAgCQkJCXN0 cnVjdCB0eXBlICpjdXJ0eXBlLCBjb25zdCBjaGFyICpuYW1lLAogIAkJCQlzdHJ1Y3QgdHlwZSAq aW50eXBlLCAKICAJCQkJaW50IHdhbnRfYWRkcmVzcywKLUBAIC0zMzczLDcgKzMzNzMsNyBAQAor QEAgLTMzNzQsNyArMzM3NCw3IEBACiAgCSAgaWYgKHdhbnRfYWRkcmVzcykKICAJICAgIHJldHVy biB2YWx1ZV9mcm9tX2xvbmdlc3QKICAJICAgICAgKGxvb2t1cF9tZW1iZXJwdHJfdHlwZSAoVFlQ RV9GSUVMRF9UWVBFICh0LCBpKSwgZG9tYWluKSwKQEAgLTI5NTEsNyArMjkwOCw3IEBAIEluZGV4 OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvdmFsb3BzLmMKICAJICBlbHNlIGlmIChub3NpZGUg IT0gRVZBTF9OT1JNQUwpCiAgCSAgICByZXR1cm4gYWxsb2NhdGVfdmFsdWUgKFRZUEVfRklFTERf VFlQRSAodCwgaSkpOwogIAkgIGVsc2UKLUBAIC0zNTQxLDcgKzM1NDEsNyBAQAorQEAgLTM1NDIs NyArMzU0Miw3IEBACiAgICBmb3IgKGkgPSBUWVBFX05fQkFTRUNMQVNTRVMgKHQpIC0gMTsgaSA+ PSAwOyBpLS0pCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgdmFsdWUgKnY7CkBAIC0yOTYwLDcgKzI5 MTcsNyBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3ZhbG9wcy5jCiAgCiAgICAg ICAgaWYgKEJBU0VUWVBFX1ZJQV9WSVJUVUFMICh0LCBpKSkKICAJYmFzZV9vZmZzZXQgPSAwOwot QEAgLTM2OTAsNyArMzY5MCw3IEBACitAQCAtMzY5MSw3ICszNjkxLDcgQEAKICBzdHJ1Y3QgdmFs dWUgKgogIHZhbHVlX2Z1bGxfb2JqZWN0IChzdHJ1Y3QgdmFsdWUgKmFyZ3AsIAogIAkJICAgc3Ry dWN0IHR5cGUgKnJ0eXBlLCAKQEAgLTI5NjksMTAgKzI5MjYsMTAgQEAgSW5kZXg6IGdkYi03Ljk5 LjkwLjIwMTcwNDIwL2dkYi92YWxvcHMuYwogIAkJICAgaW50IHh1c2luZ19lbmMpCiAgewogICAg c3RydWN0IHR5cGUgKnJlYWxfdHlwZTsKLUluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIv dmFscHJpbnQuYworSW5kZXg6IGdkYi04LjAvZ2RiL3ZhbHByaW50LmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy45OS45MC4yMDE3MDQyMC5vcmlnL2dkYi92YWxwcmludC5jCTIwMTctMDQtMjAgMjM6 MDg6NTQuMTg1Mzk0OTEzICswMjAwCi0rKysgZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3ZhbHBy aW50LmMJMjAxNy0wNC0yMCAyMzowODo1Ni45OTg0MTA3NjQgKzAyMDAKKy0tLSBnZGItOC4wLm9y aWcvZ2RiL3ZhbHByaW50LmMJMjAxNy0wOC0xOSAyMDowNDo1OS44MjA3ODA4MjggKzAyMDAKKysr KyBnZGItOC4wL2dkYi92YWxwcmludC5jCTIwMTctMDgtMTkgMjA6MDU6MTAuMDkwODc2OTA3ICsw MjAwCiBAQCAtOTMzLDcgKzkzMyw3IEBACiAgCiAgdm9pZApAQCAtMzAzMiwxMCArMjk4OSwxMCBA QCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3ZhbHByaW50LmMKICAJCSAgY29uc3Qg Y2hhciAqZW5jb2RpbmcsIGludCBmb3JjZV9lbGxpcHNlcywKICAJCSAgaW50IHF1b3RlX2NoYXIs IGludCBjX3N0eWxlX3Rlcm1pbmF0b3IsCiAgCQkgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9v cHRpb25zICpvcHRpb25zKQotSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi92YWxwcmlu dC5oCitJbmRleDogZ2RiLTguMC9nZGIvdmFscHJpbnQuaAogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 Ljk5LjkwLjIwMTcwNDIwLm9yaWcvZ2RiL3ZhbHByaW50LmgJMjAxNy0wNC0yMCAyMzowODo1NC4x ODYzOTQ5MTkgKzAyMDAKLSsrKyBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvdmFscHJpbnQuaAky MDE3LTA0LTIwIDIzOjA4OjU2Ljk5ODQxMDc2NCArMDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIv dmFscHJpbnQuaAkyMDE3LTA4LTE5IDIwOjA0OjU5LjgyMDc4MDgyOCArMDIwMAorKysrIGdkYi04 LjAvZ2RiL3ZhbHByaW50LmgJMjAxNy0wOC0xOSAyMDowNToxMC4wOTA4NzY5MDcgKzAyMDAKIEBA IC0xMTksNyArMTE5LDcgQEAKICAJCQkJICAgICAgQ09SRV9BRERSLCBzdHJ1Y3QgdWlfZmlsZSAq LCBpbnQsCiAgCQkJCSAgICAgIHN0cnVjdCB2YWx1ZSAqLApAQCAtMzA3MiwxMCArMzAyOSwxMCBA QCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3ZhbHByaW50LmgKICAJCQkgICAgICBj b25zdCBjaGFyICplbmNvZGluZywgaW50IGZvcmNlX2VsbGlwc2VzLAogIAkJCSAgICAgIGludCBx dW90ZV9jaGFyLCBpbnQgY19zdHlsZV90ZXJtaW5hdG9yLAogIAkJCSAgICAgIGNvbnN0IHN0cnVj dCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKTsKLUluZGV4OiBnZGItNy45OS45MC4yMDE3 MDQyMC9nZGIvdmFsdWUuYworSW5kZXg6IGdkYi04LjAvZ2RiL3ZhbHVlLmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy45OS45MC4yMDE3MDQyMC5vcmlnL2dkYi92YWx1ZS5jCTIwMTctMDQtMjAgMjM6 MDg6NTQuMTg3Mzk0OTI0ICswMjAwCi0rKysgZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3ZhbHVl LmMJMjAxNy0wNC0yMCAyMzowODo1Ni45OTk0MTA3NzAgKzAyMDAKKy0tLSBnZGItOC4wLm9yaWcv Z2RiL3ZhbHVlLmMJMjAxNy0wOC0xOSAyMDowNDo1OS44MjE3ODA4MzggKzAyMDAKKysrKyBnZGIt OC4wL2dkYi92YWx1ZS5jCTIwMTctMDgtMTkgMjA6MDU6MTAuMDkxODc2OTE2ICswMjAwCiBAQCAt MzY3LDcgKzM2Nyw4IEBACiAgfQogIApAQCAtMzEwOSwxMCArMzA2NiwxMCBAQCBJbmRleDogZ2Ri LTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3ZhbHVlLmMKICB7CiAgICBtYXJrX3ZhbHVlX2JpdHNfb3B0 aW1pemVkX291dCAodmFsdWUsCiAgCQkJCSBvZmZzZXQgKiBUQVJHRVRfQ0hBUl9CSVQsCi1JbmRl eDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3ZhbHVlLmgKK0luZGV4OiBnZGItOC4wL2dkYi92 YWx1ZS5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAub3JpZy9nZGIvdmFs dWUuaAkyMDE3LTA0LTIwIDIzOjA4OjU0LjE4NzM5NDkyNCArMDIwMAotKysrIGdkYi03Ljk5Ljkw LjIwMTcwNDIwL2dkYi92YWx1ZS5oCTIwMTctMDQtMjAgMjM6MDg6NTYuOTk5NDEwNzcwICswMjAw CistLS0gZ2RiLTguMC5vcmlnL2dkYi92YWx1ZS5oCTIwMTctMDgtMTkgMjA6MDQ6NTkuODIyNzgw ODQ3ICswMjAwCisrKysgZ2RiLTguMC9nZGIvdmFsdWUuaAkyMDE3LTA4LTE5IDIwOjA1OjEwLjA5 Mjg3NjkyNSArMDIwMAogQEAgLTI0Niw3ICsyNDYsNyBAQAogICAgLyogSWYgbm9uLU5VTEwsIHRo aXMgaXMgdXNlZCB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgaW5kaWNhdGVkIGJpdHMKICAgICAg IG9mIFZBTFVFIGFyZSBhIHN5bnRoZXRpYyBwb2ludGVyLiAgKi8KQEAgLTMxNDEsNyArMzA5OCw3 IEBAIEluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvdmFsdWUuaAogIAogIC8qIE1hcmsg VkFMVUUncyBjb250ZW50IGJpdHMgc3RhcnRpbmcgYXQgT0ZGU0VUIGFuZCBleHRlbmRpbmcgZm9y CiAgICAgTEVOR1RIIGJpdHMgYXMgb3B0aW1pemVkIG91dC4gICovCi1AQCAtODIwLDEyICs4MjEs MTEgQEAKK0BAIC04MTksMTIgKzgyMCwxMSBAQAogIAkJCQkJICAgIGludCBmaWVsZG5vLAogIAkJ CQkJICAgIHN0cnVjdCB0eXBlICphcmdfdHlwZSk7CiAgCkBAIC0zMTU1LDcgKzMxMTIsNyBAQCBJ bmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3ZhbHVlLmgKICAKICBleHRlcm4gc3RydWN0 IHZhbHVlICp2YWx1ZV9jYXN0X3BvaW50ZXJzIChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdmFsdWUg KiwgaW50KTsKICAKLUBAIC0xMTE0LDEwICsxMTE0LDExIEBACitAQCAtMTExMywxMCArMTExMywx MSBAQAogIGV4dGVybiBzdHJ1Y3QgdmFsdWUgKmZpbmRfZnVuY3Rpb25faW5faW5mZXJpb3IgKGNv bnN0IGNoYXIgKiwKICAJCQkJCQlzdHJ1Y3Qgb2JqZmlsZSAqKik7CiAgCkBAIC0zMTY5LDEwICsz MTI2LDEwIEBAIEluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvdmFsdWUuaAogIAogIC8q IFVzZXIgZnVuY3Rpb24gaGFuZGxlci4gICovCiAgCi1JbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0 MjAvZ2RiL3MzOTAtbGludXgtbmF0LmMKK0luZGV4OiBnZGItOC4wL2dkYi9zMzkwLWxpbnV4LW5h dC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAub3JpZy9nZGIvczM5MC1s aW51eC1uYXQuYwkyMDE3LTA0LTIwIDIzOjA4OjU0LjE4ODM5NDkzMCArMDIwMAotKysrIGdkYi03 Ljk5LjkwLjIwMTcwNDIwL2dkYi9zMzkwLWxpbnV4LW5hdC5jCTIwMTctMDQtMjAgMjM6MDg6NTcu MDAwNDEwNzc1ICswMjAwCistLS0gZ2RiLTguMC5vcmlnL2dkYi9zMzkwLWxpbnV4LW5hdC5jCTIw MTctMDgtMTkgMjA6MDQ6NTkuODIyNzgwODQ3ICswMjAwCisrKysgZ2RiLTguMC9nZGIvczM5MC1s aW51eC1uYXQuYwkyMDE3LTA4LTE5IDIwOjA1OjEwLjA5Mjg3NjkyNSArMDIwMAogQEAgLTkwMCw3 ICs5MDAsNyBAQAogIAogIHN0YXRpYyBpbnQKQEAgLTMxODIsMTAgKzMxMzksMTAgQEAgSW5kZXg6 IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9zMzkwLWxpbnV4LW5hdC5jCiAgewogICAgcmV0dXJu IDE7CiAgfQotSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi90YXJnZXQtZGVsZWdhdGVz LmMKK0luZGV4OiBnZGItOC4wL2dkYi90YXJnZXQtZGVsZWdhdGVzLmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy45OS45MC4yMDE3MDQyMC5vcmlnL2dkYi90YXJnZXQtZGVsZWdhdGVzLmMJMjAxNy0w NC0yMCAyMzowODo1NC4xODkzOTQ5MzYgKzAyMDAKLSsrKyBnZGItNy45OS45MC4yMDE3MDQyMC9n ZGIvdGFyZ2V0LWRlbGVnYXRlcy5jCTIwMTctMDQtMjAgMjM6MDg6NTcuMDAwNDEwNzc1ICswMjAw CistLS0gZ2RiLTguMC5vcmlnL2dkYi90YXJnZXQtZGVsZWdhdGVzLmMJMjAxNy0wOC0xOSAyMDow NDo1OS44MjM3ODA4NTYgKzAyMDAKKysrKyBnZGItOC4wL2dkYi90YXJnZXQtZGVsZWdhdGVzLmMJ MjAxNy0wOC0xOSAyMDowNToxMC4wOTM4NzY5MzUgKzAyMDAKIEBAIC03NjAsMTQgKzc2MCwxNCBA QAogIH0KICAKQEAgLTMyMTIsMTAgKzMxNjksMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcw NDIwL2dkYi90YXJnZXQtZGVsZWdhdGVzLmMKICAgIGZwdXRzX3VuZmlsdGVyZWQgKCIpID0gIiwg Z2RiX3N0ZGxvZyk7CiAgICB0YXJnZXRfZGVidWdfcHJpbnRfaW50IChyZXN1bHQpOwogICAgZnB1 dHNfdW5maWx0ZXJlZCAoIlxuIiwgZ2RiX3N0ZGxvZyk7Ci1JbmRleDogZ2RiLTcuOTkuOTAuMjAx NzA0MjAvZ2RiL2FhcmNoNjQtbGludXgtbmF0LmMKK0luZGV4OiBnZGItOC4wL2dkYi9hYXJjaDY0 LWxpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAub3JpZy9n ZGIvYWFyY2g2NC1saW51eC1uYXQuYwkyMDE3LTA0LTIwIDIzOjA4OjU0LjE4OTM5NDkzNiArMDIw MAotKysrIGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCTIwMTct MDQtMjAgMjM6MDg6NTcuMDAxNDEwNzgxICswMjAwCistLS0gZ2RiLTguMC5vcmlnL2dkYi9hYXJj aDY0LWxpbnV4LW5hdC5jCTIwMTctMDgtMTkgMjA6MDQ6NTkuODIzNzgwODU2ICswMjAwCisrKysg Z2RiLTguMC9nZGIvYWFyY2g2NC1saW51eC1uYXQuYwkyMDE3LTA4LTE5IDIwOjA1OjEwLjA5Mzg3 NjkzNSArMDIwMAogQEAgLTcwOCw3ICs3MDgsNyBAQAogIAogIHN0YXRpYyBpbnQKQEAgLTMyMjUs MTAgKzMxODIsMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9hYXJjaDY0LWxp bnV4LW5hdC5jCiAgewogICAgcmV0dXJuIGFhcmNoNjRfbGludXhfcmVnaW9uX29rX2Zvcl93YXRj aHBvaW50IChhZGRyLCBsZW4pOwogIH0KLUluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIv bmF0L3g4Ni1kcmVncy5jCitJbmRleDogZ2RiLTguMC9nZGIvbmF0L3g4Ni1kcmVncy5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAub3JpZy9nZGIvbmF0L3g4Ni1kcmVncy5j CTIwMTctMDQtMjAgMjM6MDg6NTQuMTg5Mzk0OTM2ICswMjAwCi0rKysgZ2RiLTcuOTkuOTAuMjAx NzA0MjAvZ2RiL25hdC94ODYtZHJlZ3MuYwkyMDE3LTA0LTIwIDIzOjA4OjU3LjAwMTQxMDc4MSAr MDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvbmF0L3g4Ni1kcmVncy5jCTIwMTctMDgtMTkgMjA6 MDQ6NTkuODIzNzgwODU2ICswMjAwCisrKysgZ2RiLTguMC9nZGIvbmF0L3g4Ni1kcmVncy5jCTIw MTctMDgtMTkgMjA6MDU6MTAuMDkzODc2OTM1ICswMjAwCiBAQCAtMzg0LDcgKzM4NCw3IEBACiAg CiAgc3RhdGljIGludApAQCAtMzI0NywxMCArMzIwNCwxMCBAQCBJbmRleDogZ2RiLTcuOTkuOTAu MjAxNzA0MjAvZ2RiL25hdC94ODYtZHJlZ3MuYwogIHsKICAgIGludCBucmVnczsKICAKLUluZGV4 OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvY29tcGlsZS9jb21waWxlLWMtc3VwcG9ydC5jCitJ bmRleDogZ2RiLTguMC9nZGIvY29tcGlsZS9jb21waWxlLWMtc3VwcG9ydC5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAub3JpZy9nZGIvY29tcGlsZS9jb21waWxlLWMtc3Vw cG9ydC5jCTIwMTctMDQtMjAgMjM6MDg6NTQuMTg5Mzk0OTM2ICswMjAwCi0rKysgZ2RiLTcuOTku OTAuMjAxNzA0MjAvZ2RiL2NvbXBpbGUvY29tcGlsZS1jLXN1cHBvcnQuYwkyMDE3LTA0LTIwIDIz OjA4OjU3LjAwMTQxMDc4MSArMDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvY29tcGlsZS9jb21w aWxlLWMtc3VwcG9ydC5jCTIwMTctMDgtMTkgMjA6MDQ6NTkuODI0NzgwODY2ICswMjAwCisrKysg Z2RiLTguMC9nZGIvY29tcGlsZS9jb21waWxlLWMtc3VwcG9ydC5jCTIwMTctMDgtMTkgMjA6MDU6 MTAuMDkzODc2OTM1ICswMjAwCiBAQCAtMzA5LDExICszMDksMTEgQEAKICAKICAJICAgICAgZGVm YXVsdDoKQEAgLTMyNjUsMTAgKzMyMjIsMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIw L2dkYi9jb21waWxlL2NvbXBpbGUtYy1zdXBwb3J0LmMKICAJICAgICAgfQogIAkgICAgZnB1dHNf dW5maWx0ZXJlZCAoIjtcbiIsIHN0cmVhbSk7CiAgCi1JbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0 MjAvZ2RiL25hdC94ODYtZHJlZ3MuaAorSW5kZXg6IGdkYi04LjAvZ2RiL25hdC94ODYtZHJlZ3Mu aAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5LjkwLjIwMTcwNDIwLm9yaWcvZ2RiL25hdC94ODYt ZHJlZ3MuaAkyMDE3LTA0LTIwIDIzOjA4OjU0LjE5MDM5NDk0MiArMDIwMAotKysrIGdkYi03Ljk5 LjkwLjIwMTcwNDIwL2dkYi9uYXQveDg2LWRyZWdzLmgJMjAxNy0wNC0yMCAyMzowODo1Ny4wMDE0 MTA3ODEgKzAyMDAKKy0tLSBnZGItOC4wLm9yaWcvZ2RiL25hdC94ODYtZHJlZ3MuaAkyMDE3LTA4 LTE5IDIwOjA0OjU5LjgyNDc4MDg2NiArMDIwMAorKysrIGdkYi04LjAvZ2RiL25hdC94ODYtZHJl Z3MuaAkyMDE3LTA4LTE5IDIwOjA1OjEwLjA5NDg3Njk0NCArMDIwMAogQEAgLTExNiw3ICsxMTYs NyBAQAogIC8qIFJldHVybiBub24temVybyBpZiB3ZSBjYW4gd2F0Y2ggYSBtZW1vcnkgcmVnaW9u IHRoYXQgc3RhcnRzIGF0CiAgICAgYWRkcmVzcyBBRERSIGFuZCB3aG9zZSBsZW5ndGggaXMgTEVO IGJ5dGVzLiAgKi8KQEAgLTMyNzgsMTAgKzMyMzUsMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIw MTcwNDIwL2dkYi9uYXQveDg2LWRyZWdzLmgKICAKICAvKiBJZiB0aGUgaW5mZXJpb3IgaGFzIHNv bWUgYnJlYWsvd2F0Y2hwb2ludCB0aGF0IHRyaWdnZXJlZCwgc2V0IHRoZQogICAgIGFkZHJlc3Mg YXNzb2NpYXRlZCB3aXRoIHRoYXQgYnJlYWsvd2F0Y2hwb2ludCBhbmQgcmV0dXJuIHRydWUuCi1J bmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3g4Ni1uYXQuYworSW5kZXg6IGdkYi04LjAv Z2RiL3g4Ni1uYXQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5LjkwLjIwMTcwNDIwLm9yaWcv Z2RiL3g4Ni1uYXQuYwkyMDE3LTA0LTIwIDIzOjA4OjU0LjE5MDM5NDk0MiArMDIwMAotKysrIGdk Yi03Ljk5LjkwLjIwMTcwNDIwL2dkYi94ODYtbmF0LmMJMjAxNy0wNC0yMCAyMzowODo1Ny4wMDE0 MTA3ODEgKzAyMDAKKy0tLSBnZGItOC4wLm9yaWcvZ2RiL3g4Ni1uYXQuYwkyMDE3LTA4LTE5IDIw OjA0OjU5LjgyNDc4MDg2NiArMDIwMAorKysrIGdkYi04LjAvZ2RiL3g4Ni1uYXQuYwkyMDE3LTA4 LTE5IDIwOjA1OjEwLjA5NDg3Njk0NCArMDIwMAogQEAgLTE3NCw3ICsxNzQsNyBAQAogIAogIHN0 YXRpYyBpbnQKQEAgLTMyOTEsMTAgKzMyNDgsMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcw NDIwL2dkYi94ODYtbmF0LmMKICB7CiAgICBzdHJ1Y3QgeDg2X2RlYnVnX3JlZ19zdGF0ZSAqc3Rh dGUKICAgICAgPSB4ODZfZGVidWdfcmVnX3N0YXRlIChwdGlkX2dldF9waWQgKGluZmVyaW9yX3B0 aWQpKTsKLUluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvcnVzdC1sYW5nLmMKK0luZGV4 OiBnZGItOC4wL2dkYi9ydXN0LWxhbmcuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5LjkwLjIw MTcwNDIwLm9yaWcvZ2RiL3J1c3QtbGFuZy5jCTIwMTctMDQtMjAgMjM6MDg6NTQuMTkwMzk0OTQy ICswMjAwCi0rKysgZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL3J1c3QtbGFuZy5jCTIwMTctMDQt MjAgMjM6MDg6NTcuMDAyNDEwNzg3ICswMjAwCistLS0gZ2RiLTguMC5vcmlnL2dkYi9ydXN0LWxh bmcuYwkyMDE3LTA4LTE5IDIwOjA0OjU5LjgyNDc4MDg2NiArMDIwMAorKysrIGdkYi04LjAvZ2Ri L3J1c3QtbGFuZy5jCTIwMTctMDgtMTkgMjA6MDU6MTAuMDk0ODc2OTQ0ICswMjAwCiBAQCAtNDM5 LDcgKzQzOSw3IEBACiAgCiAgc3RhdGljIHZvaWQKQEAgLTMzMTMsMTAgKzMyNzAsMTAgQEAgSW5k ZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9ydXN0LWxhbmcuYwogIAkJQ09SRV9BRERSIGFk ZHJlc3MsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJc3RydWN0IHZh bHVlICp2YWwsCiAgCQljb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucykK LUluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvYXJjaC11dGlscy5jCitJbmRleDogZ2Ri LTguMC9nZGIvYXJjaC11dGlscy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0 MjAub3JpZy9nZGIvYXJjaC11dGlscy5jCTIwMTctMDQtMjAgMjM6MDg6NTQuMTkxMzk0OTQ3ICsw MjAwCi0rKysgZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2FyY2gtdXRpbHMuYwkyMDE3LTA0LTIw IDIzOjA4OjU3LjAwMjQxMDc4NyArMDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvYXJjaC11dGls cy5jCTIwMTctMDgtMTkgMjA6MDQ6NTkuODI1NzgwODc1ICswMjAwCisrKysgZ2RiLTguMC9nZGIv YXJjaC11dGlscy5jCTIwMTctMDgtMTkgMjA6MDU6MTAuMDk1ODc2OTUzICswMjAwCiBAQCAtMjQ3 LDcgKzI0Nyw3IEBACiAgCiAgY29uc3Qgc3RydWN0IGZsb2F0Zm9ybWF0ICoqCkBAIC0zMzI2LDEw ICszMjgzLDEwIEBAIEluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvYXJjaC11dGlscy5j CiAgewogICAgY29uc3Qgc3RydWN0IGZsb2F0Zm9ybWF0ICoqZm9ybWF0ID0gTlVMTDsKICAKLUlu ZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvYXJjaC11dGlscy5oCitJbmRleDogZ2RiLTgu MC9nZGIvYXJjaC11dGlscy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAu b3JpZy9nZGIvYXJjaC11dGlscy5oCTIwMTctMDQtMjAgMjM6MDg6NTQuMTkxMzk0OTQ3ICswMjAw Ci0rKysgZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2FyY2gtdXRpbHMuaAkyMDE3LTA0LTIwIDIz OjA4OjU3LjAwMjQxMDc4NyArMDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvYXJjaC11dGlscy5o CTIwMTctMDgtMTkgMjA6MDQ6NTkuODI1NzgwODc1ICswMjAwCisrKysgZ2RiLTguMC9nZGIvYXJj aC11dGlscy5oCTIwMTctMDgtMTkgMjA6MDU6MTAuMDk1ODc2OTUzICswMjAwCiBAQCAtMTQ0LDcg KzE0NCw3IEBACiAgLyogRGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiBnZGJhcmNoX2Zsb2F0Zm9y bWF0X2Zvcl90eXBlLiAgKi8KICBleHRlcm4gY29uc3Qgc3RydWN0IGZsb2F0Zm9ybWF0ICoqCkBA IC0zMzM5LDEwICszMjk2LDEwIEBAIEluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvYXJj aC11dGlscy5oCiAgCiAgZXh0ZXJuIENPUkVfQUREUiBnZW5lcmljX3NraXBfdHJhbXBvbGluZV9j b2RlIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsCiAgCQkJCQkgICAgICAgQ09SRV9BRERSIHBj KTsKLUluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvZmluZGNtZC5jCitJbmRleDogZ2Ri LTguMC9nZGIvZmluZGNtZC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAu b3JpZy9nZGIvZmluZGNtZC5jCTIwMTctMDQtMjAgMjM6MDg6NTQuMTkxMzk0OTQ3ICswMjAwCi0r KysgZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2ZpbmRjbWQuYwkyMDE3LTA0LTIwIDIzOjA4OjU3 LjAwMjQxMDc4NyArMDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvZmluZGNtZC5jCTIwMTctMDgt MTkgMjA6MDQ6NTkuODI1NzgwODc1ICswMjAwCisrKysgZ2RiLTguMC9nZGIvZmluZGNtZC5jCTIw MTctMDgtMTkgMjA6MDU6MTAuMDk1ODc2OTUzICswMjAwCiBAQCAtMTgwLDcgKzE4MCw3IEBACiAg CSBuZWVkIHRvIGdyb3cgdGhlIHBhdHRlcm4gYnVmLiAgKi8KICAgICAgICBwYXR0ZXJuX2J1Zl9z aXplX25lZWQgPSAocGF0dGVybl9idWZfZW5kIC0gcGF0dGVybl9idWYKQEAgLTMzNTIsMTAgKzMz MDksMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9maW5kY21kLmMKICAgICAg ICBpZiAocGF0dGVybl9idWZfc2l6ZV9uZWVkID4gcGF0dGVybl9idWZfc2l6ZSkKICAJewogIAkg IHNpemVfdCBjdXJyZW50X29mZnNldCA9IHBhdHRlcm5fYnVmX2VuZCAtIHBhdHRlcm5fYnVmOwot SW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9nZGJhcmNoLmMKK0luZGV4OiBnZGItOC4w L2dkYi9nZGJhcmNoLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy45OS45MC4yMDE3MDQyMC5vcmln L2dkYi9nZGJhcmNoLmMJMjAxNy0wNC0yMCAyMzowODo1NC4xOTIzOTQ5NTMgKzAyMDAKLSsrKyBn ZGItNy45OS45MC4yMDE3MDQyMC9nZGIvZ2RiYXJjaC5jCTIwMTctMDQtMjAgMjM6MDg6NTcuMDAz NDEwNzkyICswMjAwCistLS0gZ2RiLTguMC5vcmlnL2dkYi9nZGJhcmNoLmMJMjAxNy0wOC0xOSAy MDowNDo1OS44MjY3ODA4ODUgKzAyMDAKKysrKyBnZGItOC4wL2dkYi9nZGJhcmNoLmMJMjAxNy0w OC0xOSAyMDowNToxMC4wOTY4NzY5NjMgKzAyMDAKIEBAIC0xODA2LDcgKzE4MDYsNyBAQAogIH0K ICAKQEAgLTMzNjUsMTAgKzMzMjIsMTAgQEAgSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dk Yi9nZGJhcmNoLmMKICB7CiAgICBnZGJfYXNzZXJ0IChnZGJhcmNoICE9IE5VTEwpOwogICAgZ2Ri X2Fzc2VydCAoZ2RiYXJjaC0+ZmxvYXRmb3JtYXRfZm9yX3R5cGUgIT0gTlVMTCk7Ci1JbmRleDog Z2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2dkYmFyY2guaAorSW5kZXg6IGdkYi04LjAvZ2RiL2dk YmFyY2guaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5LjkwLjIwMTcwNDIwLm9yaWcvZ2RiL2dk YmFyY2guaAkyMDE3LTA0LTIwIDIzOjA4OjU0LjE5MjM5NDk1MyArMDIwMAotKysrIGdkYi03Ljk5 LjkwLjIwMTcwNDIwL2dkYi9nZGJhcmNoLmgJMjAxNy0wNC0yMCAyMzowODo1Ny4wMDQ0MTA3OTgg KzAyMDAKKy0tLSBnZGItOC4wLm9yaWcvZ2RiL2dkYmFyY2guaAkyMDE3LTA4LTE5IDIwOjA0OjU5 LjgyNjc4MDg4NSArMDIwMAorKysrIGdkYi04LjAvZ2RiL2dkYmFyY2guaAkyMDE3LTA4LTE5IDIw OjA1OjEwLjA5Njg3Njk2MyArMDIwMAogQEAgLTIwMyw4ICsyMDMsOCBAQAogICAgIE5BTUUsIGlm IG5vbi1OVUxMLCBpcyB0aGUgdHlwZSBuYW1lLCB3aGljaCBtYXkgYmUgdXNlZCB0byBkaXN0aW5n dWlzaAogICAgIGRpZmZlcmVudCB0YXJnZXQgZm9ybWF0cyBvZiB0aGUgc2FtZSBsZW5ndGguICov CkBAIC0zMzgwLDEwICszMzM3LDEwIEBAIEluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIv Z2RiYXJjaC5oCiAgZXh0ZXJuIHZvaWQgc2V0X2dkYmFyY2hfZmxvYXRmb3JtYXRfZm9yX3R5cGUg KHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBnZGJhcmNoX2Zsb2F0Zm9ybWF0X2Zvcl90eXBlX2Z0 eXBlICpmbG9hdGZvcm1hdF9mb3JfdHlwZSk7CiAgCiAgLyogRm9yIG1vc3QgdGFyZ2V0cywgYSBw b2ludGVyIG9uIHRoZSB0YXJnZXQgYW5kIGl0cyByZXByZXNlbnRhdGlvbiBhcyBhbgotSW5kZXg6 IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9nZGJhcmNoLnNoCitJbmRleDogZ2RiLTguMC9nZGIv Z2RiYXJjaC5zaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljk5LjkwLjIwMTcwNDIwLm9yaWcvZ2Ri L2dkYmFyY2guc2gJMjAxNy0wNC0yMCAyMzowODo1NC4xOTMzOTQ5NTggKzAyMDAKLSsrKyBnZGIt Ny45OS45MC4yMDE3MDQyMC9nZGIvZ2RiYXJjaC5zaAkyMDE3LTA0LTIwIDIzOjA4OjU3LjAwNDQx MDc5OCArMDIwMAorLS0tIGdkYi04LjAub3JpZy9nZGIvZ2RiYXJjaC5zaAkyMDE3LTA4LTE5IDIw OjA0OjU5LjgyNzc4MDg5NCArMDIwMAorKysrIGdkYi04LjAvZ2RiL2dkYmFyY2guc2gJMjAxNy0w OC0xOSAyMDowNToxMC4wOTc4NzY5NzIgKzAyMDAKIEBAIC0zOTIsNyArMzkyLDcgQEAKICAjIFJl dHVybnMgdGhlIGZsb2F0aW5nLXBvaW50IGZvcm1hdCB0byBiZSB1c2VkIGZvciB2YWx1ZXMgb2Yg bGVuZ3RoIExFTkdUSC4KICAjIE5BTUUsIGlmIG5vbi1OVUxMLCBpcyB0aGUgdHlwZSBuYW1lLCB3 aGljaCBtYXkgYmUgdXNlZCB0byBkaXN0aW5ndWlzaApAQCAtMzM5MywxMCArMzM1MCwxMCBAQCBJ bmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAvZ2RiL2dkYmFyY2guc2gKICAKICAjIEZvciBtb3N0 IHRhcmdldHMsIGEgcG9pbnRlciBvbiB0aGUgdGFyZ2V0IGFuZCBpdHMgcmVwcmVzZW50YXRpb24g YXMgYW4KICAjIGFkZHJlc3MgaW4gR0RCIGhhdmUgdGhlIHNhbWUgc2l6ZSBhbmQgImxvb2sgdGhl IHNhbWUiLiAgRm9yIHN1Y2ggYQotSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9pMzg2 LXRkZXAuYworSW5kZXg6IGdkYi04LjAvZ2RiL2kzODYtdGRlcC5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuOTkuOTAuMjAxNzA0MjAub3JpZy9nZGIvaTM4Ni10ZGVwLmMJMjAxNy0wNC0yMCAyMzow ODo1NC4xOTQzOTQ5NjQgKzAyMDAKLSsrKyBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvaTM4Ni10 ZGVwLmMJMjAxNy0wNC0yMCAyMzowODo1Ny4wMDU0MTA4MDQgKzAyMDAKKy0tLSBnZGItOC4wLm9y aWcvZ2RiL2kzODYtdGRlcC5jCTIwMTctMDgtMTkgMjA6MDQ6NTkuODI4NzgwOTAzICswMjAwCisr KysgZ2RiLTguMC9nZGIvaTM4Ni10ZGVwLmMJMjAxNy0wOC0xOSAyMDowNToxMC4wOTg4NzY5ODIg KzAyMDAKIEBAIC04MTgwLDcgKzgxODAsNyBAQAogIAogIGNvbnN0IHN0cnVjdCBmbG9hdGZvcm1h dCAqKgpAQCAtMzQwNiwxMCArMzM2MywxMCBAQCBJbmRleDogZ2RiLTcuOTkuOTAuMjAxNzA0MjAv Z2RiL2kzODYtdGRlcC5jCiAgewogICAgaWYgKGxlbiA9PSAxMjggJiYgbmFtZSkKICAgICAgaWYg KHN0cmNtcCAobmFtZSwgIl9fZmxvYXQxMjgiKSA9PSAwCi1JbmRleDogZ2RiLTcuOTkuOTAuMjAx NzA0MjAvZ2RiL3BwYy1saW51eC10ZGVwLmMKK0luZGV4OiBnZGItOC4wL2dkYi9wcGMtbGludXgt dGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOTkuOTAuMjAxNzA0MjAub3JpZy9nZGIvcHBj LWxpbnV4LXRkZXAuYwkyMDE3LTA0LTIwIDIzOjA4OjU0LjE5NTM5NDk3MCArMDIwMAotKysrIGdk Yi03Ljk5LjkwLjIwMTcwNDIwL2dkYi9wcGMtbGludXgtdGRlcC5jCTIwMTctMDQtMjAgMjM6MDg6 NTcuMDA2NDEwODA5ICswMjAwCistLS0gZ2RiLTguMC5vcmlnL2dkYi9wcGMtbGludXgtdGRlcC5j CTIwMTctMDgtMTkgMjA6MDQ6NTkuODI5NzgwOTEzICswMjAwCisrKysgZ2RiLTguMC9nZGIvcHBj LWxpbnV4LXRkZXAuYwkyMDE3LTA4LTE5IDIwOjA1OjEwLjA5ODg3Njk4MiArMDIwMAogQEAgLTE2 MzIsNyArMTYzMiw3IEBACiAgCiAgY29uc3Qgc3RydWN0IGZsb2F0Zm9ybWF0ICoqCkBAIC0zNDE5 LDEwICszMzc2LDEwIEBAIEluZGV4OiBnZGItNy45OS45MC4yMDE3MDQyMC9nZGIvcHBjLWxpbnV4 LXRkZXAuYwogIHsKICAgIGlmIChsZW4gPT0gMTI4ICYmIG5hbWUpCiAgICAgIGlmIChzdHJjbXAg KG5hbWUsICJfX2Zsb2F0MTI4IikgPT0gMAotSW5kZXg6IGdkYi03Ljk5LjkwLjIwMTcwNDIwL2dk Yi90cmFjZXBvaW50LmgKK0luZGV4OiBnZGItOC4wL2dkYi90cmFjZXBvaW50LmgKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy45OS45MC4yMDE3MDQyMC5vcmlnL2dkYi90cmFjZXBvaW50LmgJMjAxNy0w NC0yMCAyMzowODo1NC4xOTUzOTQ5NzAgKzAyMDAKLSsrKyBnZGItNy45OS45MC4yMDE3MDQyMC9n ZGIvdHJhY2Vwb2ludC5oCTIwMTctMDQtMjAgMjM6MDg6NTcuMDA2NDEwODA5ICswMjAwCistLS0g Z2RiLTguMC5vcmlnL2dkYi90cmFjZXBvaW50LmgJMjAxNy0wOC0xOSAyMDowNDo1OS44Mjk3ODA5 MTMgKzAyMDAKKysrKyBnZGItOC4wL2dkYi90cmFjZXBvaW50LmgJMjAxNy0wOC0xOSAyMDowNTox MC4wOTk4NzY5OTEgKzAyMDAKIEBAIC0yNTQsNyArMjU0LDcgQEAKICAgIHZvaWQgYWRkX3JlZ2lz dGVyICh1bnNpZ25lZCBpbnQgcmVnbm8pOwogICAgdm9pZCBhZGRfbWVtcmFuZ2UgKHN0cnVjdCBn ZGJhcmNoICpnZGJhcmNoLAoKZGlmZiAtLWdpdCBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yMW9m MjUucGF0Y2ggYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjFvZjI1LnBhdGNoCmluZGV4IDBmYTdl YWQuLjRlZTdiMjUgMTAwNjQ0Ci0tLSBhL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yMW9mMjUucGF0 Y2gKKysrIGIvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIxb2YyNS5wYXRjaApAQCAtNTIsMTEgKzUy LDExIEBAIENvbnRlbnQtVHlwZTogdGV4dC94LXBhdGNoCiBDb250ZW50LVRyYW5zZmVyLUVuY29k aW5nOiA3Yml0CiBDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1iaXRw b3MtZW5zdXJlLXNpemVfdC5wYXRjaAogCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2Ri L2FscGhhLXRkZXAuYworSW5kZXg6IGdkYi04LjAvZ2RiL2FscGhhLXRkZXAuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjEwLjkwLjIwMTYwMjExLm9yaWcvZ2RiL2FscGhhLXRkZXAuYwkyMDE2LTAy LTExIDIwOjU2OjU5LjIyNDg1MDcyOSArMDEwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dk Yi9hbHBoYS10ZGVwLmMJMjAxNi0wMi0xMSAyMDo1NzowNS4zODU4OTEyMjUgKzAxMDAKLUBAIC00 MTMsNiArNDEzLDEzIEBACistLS0gZ2RiLTguMC5vcmlnL2dkYi9hbHBoYS10ZGVwLmMJMjAxNy0w OC0xOSAyMDowNzo0NS40NjkzMzA0OTYgKzAyMDAKKysrKyBnZGItOC4wL2dkYi9hbHBoYS10ZGVw LmMJMjAxNy0wOC0xOSAyMDowNzo1MC42NzAzNzkxNTIgKzAyMDAKK0BAIC00MTQsNiArNDE0LDEz IEBACiAgICAgIGFjY3VtdWxhdGVfc2l6ZSA9IDA7CiAgICBlbHNlCiAgICAgIGFjY3VtdWxhdGVf c2l6ZSAtPSBzaXplb2YoYXJnX3JlZ19idWZmZXIpOwpAQCAtNzAsMTEgKzcwLDExIEBAIEluZGV4 OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvYWxwaGEtdGRlcC5jCiAgICBzcCAtPSBhY2N1bXVs YXRlX3NpemU7CiAgCiAgICAvKiBLZWVwIHNwIGFsaWduZWQgdG8gYSBtdWx0aXBsZSBvZiAxNiBh cyB0aGUgQUJJIHJlcXVpcmVzLiAgKi8KLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIv Y3AtdmFscHJpbnQuYworSW5kZXg6IGdkYi04LjAvZ2RiL2NwLXZhbHByaW50LmMKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy4xMC45MC4yMDE2MDIxMS5vcmlnL2dkYi9jcC12YWxwcmludC5jCTIwMTYt MDItMTEgMjA6NTY6NTkuMjI0ODUwNzI5ICswMTAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEv Z2RiL2NwLXZhbHByaW50LmMJMjAxNi0wMi0xMSAyMDo1NzowNS4zODU4OTEyMjUgKzAxMDAKLUBA IC01MzYsNiArNTM2LDggQEAKKy0tLSBnZGItOC4wLm9yaWcvZ2RiL2NwLXZhbHByaW50LmMJMjAx Ny0wOC0xOSAyMDowNzo0NS40NzAzMzA1MDUgKzAyMDAKKysrKyBnZGItOC4wL2dkYi9jcC12YWxw cmludC5jCTIwMTctMDgtMTkgMjA6MDc6NTAuNjcwMzc5MTUyICswMjAwCitAQCAtNTM3LDYgKzUz Nyw4IEBACiAgCQkgIGdkYl9ieXRlICpidWY7CiAgCQkgIHN0cnVjdCBjbGVhbnVwICpiYWNrX3Rv OwogIApAQCAtODMsMzIgKzgzLDExIEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIv Y3AtdmFscHJpbnQuYwogIAkJICBidWYgPSAoZ2RiX2J5dGUgKikgeG1hbGxvYyAoVFlQRV9MRU5H VEggKGJhc2VjbGFzcykpOwogIAkJICBiYWNrX3RvID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwgYnVm KTsKICAKLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvZHdhcmYybG9jLmMKK0luZGV4 OiBnZGItOC4wL2dkYi9maW5kY21kLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4xMC45MC4yMDE2 MDIxMS5vcmlnL2dkYi9kd2FyZjJsb2MuYwkyMDE2LTAyLTExIDIwOjU2OjU5LjIyNTg1MDczNiAr MDEwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9kd2FyZjJsb2MuYwkyMDE2LTAyLTEx IDIwOjU3OjA1LjM4Njg5MTIzMSArMDEwMAotQEAgLTE3NDQsNiArMTc0NCw4IEBACi0gCi0gICAg ICAgdGhpc19zaXplID0gKHRoaXNfc2l6ZV9iaXRzICsgc291cmNlX29mZnNldF9iaXRzICUgOCAr IDcpIC8gODsKLSAgICAgICBzb3VyY2Vfb2Zmc2V0ID0gc291cmNlX29mZnNldF9iaXRzIC8gODsK LSsgICAgICB1bG9uZ2VzdF9maXRzX2hvc3Rfb3JfZXJyb3IgKHRoaXNfc2l6ZSk7Ci0rCi0gICAg ICAgaWYgKGJ1ZmZlcl9zaXplIDwgdGhpc19zaXplKQotIAl7Ci0gCSAgYnVmZmVyX3NpemUgPSB0 aGlzX3NpemU7Ci1AQCAtMTkyNiw2ICsxOTI4LDcgQEAKLSAJfQotICAgICAgIGVsc2UKLSAJewot KwkgIHVsb25nZXN0X2ZpdHNfaG9zdF9vcl9lcnJvciAodGhpc19zaXplKTsKLSAJICBpZiAoYnVm ZmVyX3NpemUgPCB0aGlzX3NpemUpCi0gCSAgICB7Ci0gCSAgICAgIGJ1ZmZlcl9zaXplID0gdGhp c19zaXplOwotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9maW5kY21kLmMKLT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy4xMC45MC4yMDE2MDIxMS5vcmlnL2dkYi9maW5kY21kLmMJMjAxNi0w Mi0xMSAyMDo1Njo1OS4yMjY4NTA3NDIgKzAxMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9n ZGIvZmluZGNtZC5jCTIwMTYtMDItMTEgMjA6NTc6MDUuMzg3ODkxMjM4ICswMTAwCi1AQCAtMTg0 LDYgKzE4NCw3IEBACistLS0gZ2RiLTguMC5vcmlnL2dkYi9maW5kY21kLmMJMjAxNy0wOC0xOSAy MDowNzo0NS40NzIzMzA1MjQgKzAyMDAKKysrKyBnZGItOC4wL2dkYi9maW5kY21kLmMJMjAxNy0w OC0xOSAyMDowNzo1MC42NzIzNzkxNzEgKzAyMDAKK0BAIC0xODYsNiArMTg2LDcgQEAKICAJICBz aXplX3QgY3VycmVudF9vZmZzZXQgPSBwYXR0ZXJuX2J1Zl9lbmQgLSBwYXR0ZXJuX2J1ZjsKICAK ICAJICBwYXR0ZXJuX2J1Zl9zaXplID0gcGF0dGVybl9idWZfc2l6ZV9uZWVkICogMjsKQEAgLTEx NiwxMSArOTUsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9maW5kY21kLmMK ICAJICBwYXR0ZXJuX2J1ZiA9IChnZGJfYnl0ZSAqKSB4cmVhbGxvYyAocGF0dGVybl9idWYsIHBh dHRlcm5fYnVmX3NpemUpOwogIAkgIHBhdHRlcm5fYnVmX2VuZCA9IHBhdHRlcm5fYnVmICsgY3Vy cmVudF9vZmZzZXQ7CiAgCX0KLUluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvcC12YWxw cmludC5jCitJbmRleDogZ2RiLTguMC9nZGIvcC12YWxwcmludC5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuMTAuOTAuMjAxNjAyMTEub3JpZy9nZGIvcC12YWxwcmludC5jCTIwMTYtMDItMTEgMjA6 NTY6NTkuMjI2ODUwNzQyICswMTAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3AtdmFs cHJpbnQuYwkyMDE2LTAyLTExIDIwOjU3OjA1LjM4Nzg5MTIzOCArMDEwMAotQEAgLTc2OSw2ICs3 NjksNyBAQAorLS0tIGdkYi04LjAub3JpZy9nZGIvcC12YWxwcmludC5jCTIwMTctMDgtMTkgMjA6 MDc6NDUuNDcyMzMwNTI0ICswMjAwCisrKysgZ2RiLTguMC9nZGIvcC12YWxwcmludC5jCTIwMTct MDgtMTkgMjA6MDc6NTAuNjczMzc5MTgwICswMjAwCitAQCAtNzcyLDYgKzc3Miw3IEBACiAgCSAg ICAgIGdkYl9ieXRlICpidWY7CiAgCSAgICAgIHN0cnVjdCBjbGVhbnVwICpiYWNrX3RvOwogIApA QCAtMTI4LDExICsxMDcsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi9wLXZh bHByaW50LmMKICAJICAgICAgYnVmID0gKGdkYl9ieXRlICopIHhtYWxsb2MgKFRZUEVfTEVOR1RI IChiYXNlY2xhc3MpKTsKICAJICAgICAgYmFja190byA9IG1ha2VfY2xlYW51cCAoeGZyZWUsIGJ1 Zik7CiAgCi1JbmRleDogZ2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3V0aWxzLmMKK0luZGV4OiBn ZGItOC4wL2dkYi91dGlscy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAuMjAxNjAyMTEu b3JpZy9nZGIvdXRpbHMuYwkyMDE2LTAyLTExIDIwOjU2OjU5LjIyNzg1MDc0OSArMDEwMAotKysr IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi91dGlscy5jCTIwMTYtMDItMTEgMjA6NTc6MDUuMzg4 ODkxMjQ0ICswMTAwCi1AQCAtMjgzNyw2ICsyODM3LDE4IEBACistLS0gZ2RiLTguMC5vcmlnL2dk Yi91dGlscy5jCTIwMTctMDgtMTkgMjA6MDc6NDUuNDczMzMwNTMzICswMjAwCisrKysgZ2RiLTgu MC9nZGIvdXRpbHMuYwkyMDE3LTA4LTE5IDIwOjA3OjUwLjY3MzM3OTE4MCArMDIwMAorQEAgLTI3 NzYsNiArMjc3NiwxOCBAQAogICAgcmV0dXJuIGFkZHI7CiAgfQogIApAQCAtMTUxLDExICsxMzAs MTEgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi91dGlscy5jCiAgY2hhciAqCiAg Z2RiX3JlYWxwYXRoIChjb25zdCBjaGFyICpmaWxlbmFtZSkKICB7Ci1JbmRleDogZ2RiLTcuMTAu OTAuMjAxNjAyMTEvZ2RiL3ZhbG9wcy5jCitJbmRleDogZ2RiLTguMC9nZGIvdmFsb3BzLmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy4xMC45MC4yMDE2MDIxMS5vcmlnL2dkYi92YWxvcHMuYwkyMDE2 LTAyLTExIDIwOjU2OjU5LjIyODg1MDc1NSArMDEwMAotKysrIGdkYi03LjEwLjkwLjIwMTYwMjEx L2dkYi92YWxvcHMuYwkyMDE2LTAyLTExIDIwOjU3OjA1LjM4OTg5MTI1MSArMDEwMAotQEAgLTIw NTcsNiArMjA1Nyw3IEBACistLS0gZ2RiLTguMC5vcmlnL2dkYi92YWxvcHMuYwkyMDE3LTA4LTE5 IDIwOjA3OjQ1LjQ3NDMzMDU0MiArMDIwMAorKysrIGdkYi04LjAvZ2RiL3ZhbG9wcy5jCTIwMTct MDgtMTkgMjA6MDc6NTAuNjc0Mzc5MTkwICswMjAwCitAQCAtMjEwMCw2ICsyMTAwLDcgQEAKICAJ ICAgICAgc3RydWN0IGNsZWFudXAgKmJhY2tfdG87CiAgCSAgICAgIENPUkVfQUREUiBhZGRyZXNz OwogIApAQCAtMTYzLDExICsxNDIsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dk Yi92YWxvcHMuYwogIAkgICAgICB0bXAgPSAoZ2RiX2J5dGUgKikgeG1hbGxvYyAoVFlQRV9MRU5H VEggKGJhc2VjbGFzcykpOwogIAkgICAgICBiYWNrX3RvID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwg dG1wKTsKICAJICAgICAgYWRkcmVzcyA9IHZhbHVlX2FkZHJlc3MgKCphcmcxcCk7Ci1JbmRleDog Z2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3ZhbHVlLmMKK0luZGV4OiBnZGItOC4wL2dkYi92YWx1 ZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAuMjAxNjAyMTEub3JpZy9nZGIvdmFsdWUu YwkyMDE2LTAyLTExIDIwOjU2OjU5LjIyOTg1MDc2MiArMDEwMAotKysrIGdkYi03LjEwLjkwLjIw MTYwMjExL2dkYi92YWx1ZS5jCTIwMTYtMDItMTEgMjA6NTg6MzUuMDk1NDgwODc3ICswMTAwCi1A QCAtOTM1LDYgKzkzNSw3IEBACistLS0gZ2RiLTguMC5vcmlnL2dkYi92YWx1ZS5jCTIwMTctMDgt MTkgMjA6MDc6NDUuNDc2MzMwNTYxICswMjAwCisrKysgZ2RiLTguMC9nZGIvdmFsdWUuYwkyMDE3 LTA4LTE5IDIwOjA3OjUwLjY3NTM3OTE5OSArMDIwMAorQEAgLTkzNiw2ICs5MzYsNyBAQAogICAg ICAgZGVzY3JpcHRpb24gY29ycmVjdGx5LiAgKi8KICAgIGNoZWNrX3R5cGVkZWYgKHR5cGUpOwog IApAQCAtMTc1LDcgKzE1NCw3IEBAIEluZGV4OiBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdmFs dWUuYwogICAgdmFsID0gWENORVcgKHN0cnVjdCB2YWx1ZSk7CiAgICB2YWwtPmNvbnRlbnRzID0g TlVMTDsKICAgIHZhbC0+bmV4dCA9IGFsbF92YWx1ZXM7Ci1AQCAtMTAzNCw2ICsxMDM1LDggQEAK K0BAIC0xMDMzLDYgKzEwMzQsOCBAQAogIHN0YXRpYyB2b2lkCiAgYWxsb2NhdGVfdmFsdWVfY29u dGVudHMgKHN0cnVjdCB2YWx1ZSAqdmFsKQogIHsKQEAgLTE4NCw3ICsxNjMsNyBAQCBJbmRleDog Z2RiLTcuMTAuOTAuMjAxNjAyMTEvZ2RiL3ZhbHVlLmMKICAgIGlmICghdmFsLT5jb250ZW50cykK ICAgICAgewogICAgICAgIGNoZWNrX3R5cGVfbGVuZ3RoX2JlZm9yZV9hbGxvYyAodmFsLT5lbmNs b3NpbmdfdHlwZSk7Ci1AQCAtMzA5MCw2ICszMDkzLDcgQEAKK0BAIC0zMDkzLDYgKzMwOTYsNyBA QAogICAgaWYgKFRZUEVfTEVOR1RIIChuZXdfZW5jbF90eXBlKSA+IFRZUEVfTEVOR1RIICh2YWx1 ZV9lbmNsb3NpbmdfdHlwZSAodmFsKSkpCiAgICAgIHsKICAgICAgICBjaGVja190eXBlX2xlbmd0 aF9iZWZvcmVfYWxsb2MgKG5ld19lbmNsX3R5cGUpOwpAQCAtMTkyLDEwICsxNzEsMTAgQEAgSW5k ZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi92YWx1ZS5jCiAgICAgICAgdmFsLT5jb250ZW50 cwogIAk9IChnZGJfYnl0ZSAqKSB4cmVhbGxvYyAodmFsLT5jb250ZW50cywgVFlQRV9MRU5HVEgg KG5ld19lbmNsX3R5cGUpKTsKICAgICAgfQotSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dk Yi92YXgtdGRlcC5jCitJbmRleDogZ2RiLTguMC9nZGIvdmF4LXRkZXAuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjEwLjkwLjIwMTYwMjExLm9yaWcvZ2RiL3ZheC10ZGVwLmMJMjAxNi0wMi0xMSAy MDo1Njo1OS4yMjk4NTA3NjIgKzAxMDAKLSsrKyBnZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvdmF4 LXRkZXAuYwkyMDE2LTAyLTExIDIwOjU3OjA1LjM5MTg5MTI2NCArMDEwMAorLS0tIGdkYi04LjAu b3JpZy9nZGIvdmF4LXRkZXAuYwkyMDE3LTA4LTE5IDIwOjA3OjQ1LjQ3NjMzMDU2MSArMDIwMAor KysrIGdkYi04LjAvZ2RiL3ZheC10ZGVwLmMJMjAxNy0wOC0xOSAyMDowNzo1MC42NzUzNzkxOTkg KzAyMDAKIEBAIC0yMTksNiArMjE5LDcgQEAKICAJICBVTE9OR0VTVCBhZGRyOwogIApAQCAtMjA0 LDExICsxODMsMTEgQEAgSW5kZXg6IGdkYi03LjEwLjkwLjIwMTYwMjExL2dkYi92YXgtdGRlcC5j CiAgCSAgcmVhZF9tZW1vcnkgKGFkZHIsIHJlYWRidWYsIGxlbik7CiAgCX0KICAKLUluZGV4OiBn ZGItNy4xMC45MC4yMDE2MDIxMS9nZGIvZGVmcy5oCitJbmRleDogZ2RiLTguMC9nZGIvZGVmcy5o CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMTAuOTAuMjAxNjAyMTEub3JpZy9nZGIvZGVmcy5oCTIw MTYtMDItMTEgMjA6NTY6NTkuMjI5ODUwNzYyICswMTAwCi0rKysgZ2RiLTcuMTAuOTAuMjAxNjAy MTEvZ2RiL2RlZnMuaAkyMDE2LTAyLTExIDIwOjU3OjA1LjM5MTg5MTI2NCArMDEwMAotQEAgLTY5 MCw0ICs2OTAsNiBAQAorLS0tIGdkYi04LjAub3JpZy9nZGIvZGVmcy5oCTIwMTctMDgtMTkgMjA6 MDc6NDUuNDc2MzMwNTYxICswMjAwCisrKysgZ2RiLTguMC9nZGIvZGVmcy5oCTIwMTctMDgtMTkg MjA6MDc6NTAuNjc2Mzc5MjA4ICswMjAwCitAQCAtNzUwLDQgKzc1MCw2IEBACiAgCiAgI2luY2x1 ZGUgInV0aWxzLmgiCiAgCgpkaWZmIC0tZ2l0IGEvZ2RiLnNwZWMgYi9nZGIuc3BlYwppbmRleCBh MTIzYTQ4Li4yM2M4ZDRjIDEwMDY0NAotLS0gYS9nZGIuc3BlYworKysgYi9nZGIuc3BlYwpAQCAt MjYsNyArMjYsNyBAQCBWZXJzaW9uOiA4LjAKIAogIyBUaGUgcmVsZWFzZSBhbHdheXMgY29udGFp bnMgYSBsZWFkaW5nIHJlc2VydmVkIG51bWJlciwgc3RhcnQgaXQgYXQgMS4KICMgYHVwc3RyZWFt JyBpcyBub3QgYSBwYXJ0IG9mIGBuYW1lJyB0byBzdGF5IGZ1bGx5IHJwbSBkZXBlbmRlbmNpZXMg Y29tcGF0aWJsZSBmb3IgdGhlIHRlc3RpbmcuCi1SZWxlYXNlOiAyMiV7P2Rpc3R9CitSZWxlYXNl OiAyMyV7P2Rpc3R9CiAKIExpY2Vuc2U6IEdQTHYzKyBhbmQgR1BMdjMrIHdpdGggZXhjZXB0aW9u cyBhbmQgR1BMdjIrIGFuZCBHUEx2Misgd2l0aCBleGNlcHRpb25zIGFuZCBHUEwrIGFuZCBMR1BM djIrIGFuZCBMR1BMdjMrIGFuZCBCU0QgYW5kIFB1YmxpYyBEb21haW4gYW5kIEdGREwKIEdyb3Vw OiBEZXZlbG9wbWVudC9EZWJ1Z2dlcnMKQEAgLTY4OSw2ICs2ODksNDMgQEAgUGF0Y2gxMTU1OiBn ZGItcmhiejEzOTgzODctdGFiLWNyYXNoLXRlc3QucGF0Y2gKICM9cHVzaCtqYW4KIFBhdGNoMTE3 MTogdjEuNi4xLWltcGxpY2l0LWZhbGx0aHJvdWdoLnBhdGNoCiAKKyMgW3MzOTB4XSBCYWNrcG9y dCBhcmNoMTIgc3VwcG9ydCBhbmQgb3RoZXIgczM5MHggZml4ZXMgKFJIIEJaIDE0MjAzMDQpLgor UGF0Y2gxMjEwOiBnZGItcmhiejE0MjAzMDQtczM5MHgtMDFvZjM1LnBhdGNoCitQYXRjaDEyMTE6 IGdkYi1yaGJ6MTQyMDMwNC1zMzkweC0wMm9mMzUucGF0Y2gKK1BhdGNoMTIxMjogZ2RiLXJoYnox NDIwMzA0LXMzOTB4LTAzb2YzNS5wYXRjaAorUGF0Y2gxMjEzOiBnZGItcmhiejE0MjAzMDQtczM5 MHgtMDRvZjM1LnBhdGNoCitQYXRjaDEyMTQ6IGdkYi1yaGJ6MTQyMDMwNC1zMzkweC0wNW9mMzUu cGF0Y2gKK1BhdGNoMTIxNTogZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTA2b2YzNS5wYXRjaAorUGF0 Y2gxMjE2OiBnZGItcmhiejE0MjAzMDQtczM5MHgtMDdvZjM1LnBhdGNoCitQYXRjaDEyMTc6IGdk Yi1yaGJ6MTQyMDMwNC1zMzkweC0wOG9mMzUucGF0Y2gKK1BhdGNoMTIxODogZ2RiLXJoYnoxNDIw MzA0LXMzOTB4LTA5b2YzNS5wYXRjaAorUGF0Y2gxMjE5OiBnZGItcmhiejE0MjAzMDQtczM5MHgt MTBvZjM1LnBhdGNoCitQYXRjaDEyMjA6IGdkYi1yaGJ6MTQyMDMwNC1zMzkweC0xMW9mMzUucGF0 Y2gKK1BhdGNoMTIyMTogZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTEyb2YzNS5wYXRjaAorUGF0Y2gx MjIyOiBnZGItcmhiejE0MjAzMDQtczM5MHgtMTNvZjM1LnBhdGNoCitQYXRjaDEyMjM6IGdkYi1y aGJ6MTQyMDMwNC1zMzkweC0xNG9mMzUucGF0Y2gKK1BhdGNoMTIyNDogZ2RiLXJoYnoxNDIwMzA0 LXMzOTB4LTE1b2YzNS5wYXRjaAorUGF0Y2gxMjI1OiBnZGItcmhiejE0MjAzMDQtczM5MHgtMTZv ZjM1LnBhdGNoCitQYXRjaDEyMjY6IGdkYi1yaGJ6MTQyMDMwNC1zMzkweC0xN29mMzUucGF0Y2gK K1BhdGNoMTIyNzogZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTE4b2YzNS5wYXRjaAorUGF0Y2gxMjI4 OiBnZGItcmhiejE0MjAzMDQtczM5MHgtMTlvZjM1LnBhdGNoCitQYXRjaDEyMjk6IGdkYi1yaGJ6 MTQyMDMwNC1zMzkweC0yMG9mMzUucGF0Y2gKK1BhdGNoMTIzMDogZ2RiLXJoYnoxNDIwMzA0LXMz OTB4LTIxb2YzNS5wYXRjaAorUGF0Y2gxMjMxOiBnZGItcmhiejE0MjAzMDQtczM5MHgtMjJvZjM1 LnBhdGNoCitQYXRjaDEyMzI6IGdkYi1yaGJ6MTQyMDMwNC1zMzkweC0yM29mMzUucGF0Y2gKK1Bh dGNoMTIzMzogZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTI0b2YzNS5wYXRjaAorUGF0Y2gxMjM0OiBn ZGItcmhiejE0MjAzMDQtczM5MHgtMjVvZjM1LnBhdGNoCitQYXRjaDEyMzU6IGdkYi1yaGJ6MTQy MDMwNC1zMzkweC0yNm9mMzUucGF0Y2gKK1BhdGNoMTIzNjogZ2RiLXJoYnoxNDIwMzA0LXMzOTB4 LTI3b2YzNS5wYXRjaAorUGF0Y2gxMjM3OiBnZGItcmhiejE0MjAzMDQtczM5MHgtMjhvZjM1LnBh dGNoCitQYXRjaDEyMzg6IGdkYi1yaGJ6MTQyMDMwNC1zMzkweC0yOW9mMzUucGF0Y2gKK1BhdGNo MTIzOTogZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTMwb2YzNS5wYXRjaAorUGF0Y2gxMjQwOiBnZGIt cmhiejE0MjAzMDQtczM5MHgtMzFvZjM1LnBhdGNoCitQYXRjaDEyNDE6IGdkYi1yaGJ6MTQyMDMw NC1zMzkweC0zMm9mMzUucGF0Y2gKK1BhdGNoMTI0MjogZ2RiLXJoYnoxNDIwMzA0LXMzOTB4LTMz b2YzNS5wYXRjaAorUGF0Y2gxMjQzOiBnZGItcmhiejE0MjAzMDQtczM5MHgtMzRvZjM1LnBhdGNo CitQYXRjaDEyNDQ6IGdkYi1yaGJ6MTQyMDMwNC1zMzkweC0zNW9mMzUucGF0Y2gKKwogJWlmIDAl eyE/cmhlbDoxfSB8fCAwJXs/cmhlbH0gPiA2CiAjIFJMX1NUQVRFX0ZFRE9SQV9HREIgd291bGQg bm90IGJlIGZvdW5kIGZvcjoKICMgUGF0Y2g2NDI6IGdkYi1yZWFkbGluZTYyLWFzay1tb3JlLXJo LnBhdGNoCkBAIC0xMDEyLDYgKzEwNDksNDEgQEAgZmluZCAtbmFtZSAiKi5pbmZvKiJ8eGFyZ3Mg cm0gLWYKICVwYXRjaDY5MCAtcDEKICVwYXRjaDY5OCAtcDEKICVwYXRjaDcwMyAtcDEKKyVwYXRj aDEyMTAgLXAxCislcGF0Y2gxMjExIC1wMQorJXBhdGNoMTIxMiAtcDEKKyVwYXRjaDEyMTMgLXAx CislcGF0Y2gxMjE0IC1wMQorJXBhdGNoMTIxNSAtcDEKKyVwYXRjaDEyMTYgLXAxCislcGF0Y2gx MjE3IC1wMQorJXBhdGNoMTIxOCAtcDEKKyVwYXRjaDEyMTkgLXAxCislcGF0Y2gxMjIwIC1wMQor JXBhdGNoMTIyMSAtcDEKKyVwYXRjaDEyMjIgLXAxCislcGF0Y2gxMjIzIC1wMQorJXBhdGNoMTIy NCAtcDEKKyVwYXRjaDEyMjUgLXAxCislcGF0Y2gxMjI2IC1wMQorJXBhdGNoMTIyNyAtcDEKKyVw YXRjaDEyMjggLXAxCislcGF0Y2gxMjI5IC1wMQorJXBhdGNoMTIzMCAtcDEKKyVwYXRjaDEyMzEg LXAxCislcGF0Y2gxMjMyIC1wMQorJXBhdGNoMTIzMyAtcDEKKyVwYXRjaDEyMzQgLXAxCislcGF0 Y2gxMjM1IC1wMQorJXBhdGNoMTIzNiAtcDEKKyVwYXRjaDEyMzcgLXAxCislcGF0Y2gxMjM4IC1w MQorJXBhdGNoMTIzOSAtcDEKKyVwYXRjaDEyNDAgLXAxCislcGF0Y2gxMjQxIC1wMQorJXBhdGNo MTI0MiAtcDEKKyVwYXRjaDEyNDMgLXAxCislcGF0Y2gxMjQ0IC1wMQogJXBhdGNoODExIC1wMQog JXBhdGNoODEyIC1wMQogJXBhdGNoODEzIC1wMQpAQCAtMTY0Myw2ICsxNzE1LDkgQEAgdGhlbgog ZmkKIAogJWNoYW5nZWxvZworKiBTYXQgQXVnIDE5IDIwMTcgSmFuIEtyYXRvY2h2aWwgPGphbi5r cmF0b2NodmlsQHJlZGhhdC5jb20+IC0gOC4wLTIzLmZjMjYKKy0gW3MzOTB4XSBCYWNrcG9ydCBh cmNoMTIgc3VwcG9ydCBhbmQgb3RoZXIgczM5MHggZml4ZXMgKFJIIEJaIDE0MjAzMDQpLgorCiAq IEZyaSBBdWcgMTggMjAxNyBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNv bT4gLSA4LjAtMjIuZmMyNgogLSBCYWNrcG9ydCBhIGZpeCBmb3IgY2xhbmcgJiYgLWdzcGxpdC1k d2FyZiBkZWJ1Z2dlZXMgKFJIIEJaIDE0ODI4OTIpLgogCg==