From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Takao Fujiwara To: git-commits@fedoraproject.org Subject: [rpms/ibus] autotool: Added ibus-xx-icon-symbol.patch Date: Sun, 31 May 2026 02:05:11 GMT Message-ID: <178019311168.1.5205865632372561081.rpms-ibus-63b857f037c7@fedoraproject.org> List-ID: X-Git-Repo: rpms/ibus X-Git-Branch: autotool X-Git-Rev: 63b857f037c74b6c91a009b59274099909dc21f1 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvaWJ1cwogICAgICAgICAgICBCcmFuY2ggOiBhdXRvdG9vbAogICAgICAgICAg ICBDb21taXQgOiA2M2I4NTdmMDM3Yzc0YjZjOTFhMDA5YjU5Mjc0MDk5OTA5ZGMyMWYxCiAgICAg ICAgICAgIEF1dGhvciA6IFRha2FvIEZ1aml3YXJhIDx0ZnVqaXdhckByZWRoYXQuY29tPgogICAg ICAgICAgICBEYXRlICAgOiAyMDExLTA2LTIxVDE3OjQ5OjA3KzA5OjAwCiAgICAgICAgICAgIFN0 YXRzICA6ICszMjI4Ly0xMjIxIGluIDEwIGZpbGUocykKICAgICAgICAgICAgVVJMICAgIDogaHR0 cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9pYnVzL2MvNjNiODU3ZjAzN2M3NGI2Yzkx YTAwOWI1OTI3NDA5OTkwOWRjMjFmMT9icmFuY2g9YXV0b3Rvb2wKCiAgICAgICAgICAgIExvZzoK ICAgICAgICAgICAgQWRkZWQgaWJ1cy14eC1pY29uLXN5bWJvbC5wYXRjaAoKLSBBZGRlZCBpYnVz LXh4LWJyaWRnZS1ob3RrZXkucGF0Y2gKCi0tLQpkaWZmIC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5n aXRpZ25vcmUKaW5kZXggNThlZjk4MC4uZjMzY2E2ZSAxMDA2NDQKLS0tIGEvLmdpdGlnbm9yZQor KysgYi8uZ2l0aWdub3JlCkBAIC0xNCwzICsxNCw1IEBAIGlidXMtMS4zLjYudGFyLmd6CiAvaWJ1 c19tYXN0ZXJfZGEucG8KIC9pYnVzLTEuMy45OS4yMDExMDQxOS50YXIuZ3oKIC9nbm9tZS1zaGVs bC1pYnVzLXBsdWdpbnMtMjAxMTA2MDEudGFyLmJ6MgorL2dub21lLXNoZWxsLWlidXMtcGx1Z2lu cy0yMDExMDYyMS50YXIuYnoyCisvaWJ1cy1pbmRpY2F0b3IudGFyLmJ6MgoKZGlmZiAtLWdpdCBh L2lidXMtNDM1ODgwLXN1cnJvdW5kaW5nLXRleHQucGF0Y2ggYi9pYnVzLTQzNTg4MC1zdXJyb3Vu ZGluZy10ZXh0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYmRlNTNjLi4w MDAwMDAwCi0tLSBhL2lidXMtNDM1ODgwLXN1cnJvdW5kaW5nLXRleHQucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwzNzUgKzAsMCBAQAotRnJvbSBjNzJlODE3NzA5OWZiOTA3OWUyZjI5NWMwYmIy MTE4Yjk5OGNiMGU4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogRGFpa2kgVWVubyA8 dWVub0B1bml4dXNlci5vcmc+Ci1EYXRlOiBXZWQsIDEzIEFwciAyMDExIDE2OjI2OjU0ICswOTAw Ci1TdWJqZWN0OiBbUEFUQ0hdIEJhY2twb3J0IGNhcHMgZmVhdHVyZSBmcm9tIHRoZSBGZWRvcmEg aW50ZXJuYWwgcGF0Y2guCi0KLS0tLQotIGNsaWVudC9ndGsyL2lidXNpbWNvbnRleHQuYyB8ICAg MzQgKysrKysrKysrKy0KLSBzcmMvaWJ1c2VuZ2luZWRlc2MuYyAgICAgICAgfCAgMTMyICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKLSBzcmMvaWJ1c2VuZ2luZWRl c2MuaCAgICAgICAgfCAgIDExICsrKysKLSAzIGZpbGVzIGNoYW5nZWQsIDE3MyBpbnNlcnRpb25z KCspLCA0IGRlbGV0aW9ucygtKQotCi1kaWZmIC0tZ2l0IGEvY2xpZW50L2d0azIvaWJ1c2ltY29u dGV4dC5jIGIvY2xpZW50L2d0azIvaWJ1c2ltY29udGV4dC5jCi1pbmRleCBkYzM2NDBlLi4wYWMx YjcwIDEwMDY0NAotLS0tIGEvY2xpZW50L2d0azIvaWJ1c2ltY29udGV4dC5jCi0rKysgYi9jbGll bnQvZ3RrMi9pYnVzaW1jb250ZXh0LmMKLUBAIC02MSw2ICs2MSw3IEBAIHN0cnVjdCBfSUJ1c0lN Q29udGV4dCB7Ci0gICAgIGdib29sZWFuICAgICAgICAgaGFzX2ZvY3VzOwotIAotICAgICBndWlu dDMyICAgICAgICAgIHRpbWU7Ci0rICAgIGd1aW50ICAgICAgICAgICAgc3VwcG9ydGVkX2NhcHM7 Ci0gICAgIGdpbnQgICAgICAgICAgICAgY2FwczsKLSAKLSAgICAgLyogY2FuY2VsbGFibGUgKi8K LUBAIC0xNTAsNiArMTUxLDcgQEAgc3RhdGljIGdib29sZWFuIF9zbGF2ZV9kZWxldGVfc3Vycm91 bmRpbmdfY2IKLSBzdGF0aWMgdm9pZCAgICAgX3JlcXVlc3Rfc3Vycm91bmRpbmdfdGV4dCAgIChJ QnVzSU1Db250ZXh0ICAgICAgKmNvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgICAgICBmb3JjZSk7Ci0gc3RhdGljIHZv aWQgICAgIF9jcmVhdGVfZmFrZV9pbnB1dF9jb250ZXh0ICAodm9pZCk7Ci0rc3RhdGljIHZvaWQg ICAgIF9uZWdvdGlhdGVfY2FwYWJpbGl0aWVzICAgICAoSUJ1c0lNQ29udGV4dCAgICAgICpjb250 ZXh0KTsKLSAKLSAKLSAKLUBAIC01ODAsMTAgKzU4MiwxMSBAQCBpYnVzX2ltX2NvbnRleHRfaW5p dCAoR09iamVjdCAqb2JqKQotICAgICBpYnVzaW1jb250ZXh0LT5oYXNfZm9jdXMgPSBGQUxTRTsK LSAgICAgaWJ1c2ltY29udGV4dC0+dGltZSA9IEdES19DVVJSRU5UX1RJTUU7Ci0gI2lmZGVmIEVO QUJMRV9TVVJST1VORElORwotLSAgICBpYnVzaW1jb250ZXh0LT5jYXBzID0gSUJVU19DQVBfUFJF RURJVF9URVhUIHwgSUJVU19DQVBfRk9DVVMgfCBJQlVTX0NBUF9TVVJST1VORElOR19URVhUOwot KyAgICBpYnVzaW1jb250ZXh0LT5zdXBwb3J0ZWRfY2FwcyA9IElCVVNfQ0FQX1BSRUVESVRfVEVY VCB8IElCVVNfQ0FQX0ZPQ1VTIHwgSUJVU19DQVBfU1VSUk9VTkRJTkdfVEVYVDsKLSAjZWxzZQot LSAgICBpYnVzaW1jb250ZXh0LT5jYXBzID0gSUJVU19DQVBfUFJFRURJVF9URVhUIHwgSUJVU19D QVBfRk9DVVM7Ci0rICAgIGlidXNpbWNvbnRleHQtPnN1cHBvcnRlZF9jYXBzID0gSUJVU19DQVBf UFJFRURJVF9URVhUIHwgSUJVU19DQVBfRk9DVVM7Ci0gI2VuZGlmCi0rICAgIGlidXNpbWNvbnRl eHQtPmNhcHMgPSBpYnVzaW1jb250ZXh0LT5zdXBwb3J0ZWRfY2FwczsKLSAKLSAKLSAgICAgLy8g Q3JlYXRlIHNsYXZlIGltIGNvbnRleHQKLUBAIC05MzAsNiArOTMzLDI3IEBAIGlidXNfaW1fY29u dGV4dF9zZXRfY3Vyc29yX2xvY2F0aW9uIChHdGtJTUNvbnRleHQgKmNvbnRleHQsIEdka1JlY3Rh bmdsZSAqYXJlYSkKLSB9Ci0gCi0gc3RhdGljIHZvaWQKLStfbmVnb3RpYXRlX2NhcGFiaWxpdGll cyAoSUJ1c0lNQ29udGV4dCAqY29udGV4dCkKLSt7Ci0rICAgIGlmIChjb250ZXh0LT5lbmFibGUp IHsKLSsgICAgICAgIElCdXNFbmdpbmVEZXNjICplbmdpbmUgPQotKyAgICAgICAgICAgIGlidXNf aW5wdXRfY29udGV4dF9nZXRfZW5naW5lIChjb250ZXh0LT5pYnVzY29udGV4dCk7Ci0rCi0rICAg ICAgICBpZiAoZW5naW5lKSB7Ci0rICAgICAgICAgICAgY29udGV4dC0+Y2FwcyA9IGNvbnRleHQt PnN1cHBvcnRlZF9jYXBzICYKLSsgICAgICAgICAgICAgICAgaWJ1c19lbmdpbmVfZGVzY19nZXRf cmVxdWlyZXMgKGVuZ2luZSk7Ci0rICAgICAgICAgICAgaWJ1c19pbnB1dF9jb250ZXh0X3NldF9j YXBhYmlsaXRpZXMgKGNvbnRleHQtPmlidXNjb250ZXh0LAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5jYXBzKTsKLSsgICAgICAgIElE RUJVRyAoImVuZ2luZSAlczogc3VwcG9ydGVkIGNhcHMgPSAldSwgZW5naW5lIHdhbnRzID0gJXUs IGNhcHMgPSAldSIsCi0rICAgICAgICAgICAgICAgIGlidXNfZW5naW5lX2Rlc2NfZ2V0X25hbWUg KGVuZ2luZSksCi0rICAgICAgICAgICAgICAgIGNvbnRleHQtPnN1cHBvcnRlZF9jYXBzLAotKyAg ICAgICAgICAgICAgICBpYnVzX2VuZ2luZV9kZXNjX2dldF9yZXF1aXJlcyAoZW5naW5lKSwKLSsg ICAgICAgICAgICAgICAgY29udGV4dC0+Y2Fwcyk7Ci0rICAgICAgICB9Ci0rICAgIH0KLSt9Ci0r Ci0rc3RhdGljIHZvaWQKLSBpYnVzX2ltX2NvbnRleHRfc2V0X3VzZV9wcmVlZGl0IChHdGtJTUNv bnRleHQgKmNvbnRleHQsIGdib29sZWFuIHVzZV9wcmVlZGl0KQotIHsKLSAgICAgSURFQlVHICgi JXMiLCBfX0ZVTkNUSU9OX18pOwotQEAgLTkzOCwxMSArOTYyLDEyIEBAIGlidXNfaW1fY29udGV4 dF9zZXRfdXNlX3ByZWVkaXQgKEd0a0lNQ29udGV4dCAqY29udGV4dCwgZ2Jvb2xlYW4gdXNlX3By ZWVkaXQpCi0gCi0gICAgIGlmKGlidXNpbWNvbnRleHQtPmlidXNjb250ZXh0KSB7Ci0gICAgICAg ICBpZiAodXNlX3ByZWVkaXQpIHsKLS0gICAgICAgICAgICBpYnVzaW1jb250ZXh0LT5jYXBzIHw9 IElCVVNfQ0FQX1BSRUVESVRfVEVYVDsKLSsgICAgICAgICAgICBpYnVzaW1jb250ZXh0LT5zdXBw b3J0ZWRfY2FwcyB8PSBJQlVTX0NBUF9QUkVFRElUX1RFWFQ7Ci0gICAgICAgICB9Ci0gICAgICAg ICBlbHNlIHsKLS0gICAgICAgICAgICBpYnVzaW1jb250ZXh0LT5jYXBzICY9IH5JQlVTX0NBUF9Q UkVFRElUX1RFWFQ7Ci0rICAgICAgICAgICAgaWJ1c2ltY29udGV4dC0+c3VwcG9ydGVkX2NhcHMg Jj0gfklCVVNfQ0FQX1BSRUVESVRfVEVYVDsKLSAgICAgICAgIH0KLSsgICAgICAgIF9uZWdvdGlh dGVfY2FwYWJpbGl0aWVzIChpYnVzaW1jb250ZXh0KTsKLSAgICAgfQotICAgICBndGtfaW1fY29u dGV4dF9zZXRfdXNlX3ByZWVkaXQgKGlidXNpbWNvbnRleHQtPnNsYXZlLCB1c2VfcHJlZWRpdCk7 Ci0gfQotQEAgLTEzMjAsNiArMTM0NSw3IEBAIF9pYnVzX2NvbnRleHRfZW5hYmxlZF9jYiAoSUJ1 c0lucHV0Q29udGV4dCAqaWJ1c2NvbnRleHQsCi0gICAgIElERUJVRyAoIiVzIiwgX19GVU5DVElP Tl9fKTsKLSAKLSAgICAgaWJ1c2ltY29udGV4dC0+ZW5hYmxlID0gVFJVRTsKLSsgICAgX25lZ290 aWF0ZV9jYXBhYmlsaXRpZXMgKGlidXNpbWNvbnRleHQpOwotIAotICAgICAvKiByZXRyaWV2ZSB0 aGUgaW5pdGlhbCBzdXJyb3VuZGluZy10ZXh0IChyZWdhcmRsZXNzIG9mIHdoZXRoZXIKLSAgICAg ICogdGhlIGN1cnJlbnQgSUJ1cyBlbmdpbmUgbmVlZHMgc3Vycm91bmRpbmctdGV4dCkgKi8KLWRp ZmYgLS1naXQgYS9zcmMvaWJ1c2VuZ2luZWRlc2MuYyBiL3NyYy9pYnVzZW5naW5lZGVzYy5jCi1p bmRleCBjYTVlZjYwLi45NTZjZTczIDEwMDY0NAotLS0tIGEvc3JjL2lidXNlbmdpbmVkZXNjLmMK LSsrKyBiL3NyYy9pYnVzZW5naW5lZGVzYy5jCi1AQCAtMjIsNiArMjIsNyBAQAotICNpbmNsdWRl IDxzdGRsaWIuaD4KLSAjaW5jbHVkZSAiaWJ1c2VuZ2luZWRlc2MuaCIKLSAjaW5jbHVkZSAiaWJ1 c3htbC5oIgotKyNpbmNsdWRlICJpYnVzZW51bXR5cGVzLmgiCi0gCi0gZW51bSB7Ci0gICAgIExB U1RfU0lHTkFMLAotQEAgLTM5LDYgKzQwLDcgQEAgZW51bSB7Ci0gICAgIFBST1BfTEFZT1VULAot ICAgICBQUk9QX1JBTkssCi0gICAgIFBST1BfSE9US0VZUywKLSsgICAgUFJPUF9SRVFVSVJFUywK LSB9OwotIAotIAotQEAgLTU0LDYgKzU2LDcgQEAgc3RydWN0IF9JQnVzRW5naW5lRGVzY1ByaXZh dGUgewotICAgICBnY2hhciAgICAgICpsYXlvdXQ7Ci0gICAgIGd1aW50ICAgICAgIHJhbms7Ci0g ICAgIGdjaGFyICAgICAgKmhvdGtleXM7Ci0rICAgIGd1aW50ICAgICAgIHJlcXVpcmVzOwotIH07 Ci0gCi0gI2RlZmluZSBJQlVTX0VOR0lORV9ERVNDX0dFVF9QUklWQVRFKG8pICBcCi1AQCAtNzks OSArODIsMjAgQEAgc3RhdGljIGdib29sZWFuICAgICBpYnVzX2VuZ2luZV9kZXNjX2NvcHkgICAg ICAgICAgIChJQnVzRW5naW5lRGVzYyAgICAgICAgICpkZXMKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IElCdXNFbmdpbmVEZXNjICAg KnNyYyk7Ci0gc3RhdGljIGdib29sZWFuICAgICBpYnVzX2VuZ2luZV9kZXNjX3BhcnNlX3htbF9u b2RlIChJQnVzRW5naW5lRGVzYyAgICAgICAgICpkZXNjLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWE1MTm9kZSAgICAgICAgICAgICAgICAq bm9kZSk7Ci0rc3RhdGljIHZvaWQgICAgICAgICBpYnVzX2VuZ2luZV9kZXNjX291dHB1dF9jYXBh YmlsaXRpZXMKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGd1aW50ICAgICAgICAgICAgICAgICAgIGNhcHMsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHU3RyaW5nICAgICAgICAgICAgICAg ICpvdXRwdXQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBnaW50ICAgICAgICAgICAgICAgICAgICBpbmRlbnQpOwotK3N0YXRpYyBndWludCAg ICAgICAgaWJ1c19lbmdpbmVfZGVzY19wYXJzZV9jYXBhYmlsaXRpZXMKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFhNTE5vZGUgICAgICAgICAg ICAgICAgKm5vZGUpOwotIAotIEdfREVGSU5FX1RZUEUgKElCdXNFbmdpbmVEZXNjLCBpYnVzX2Vu Z2luZV9kZXNjLCBJQlVTX1RZUEVfU0VSSUFMSVpBQkxFKQotIAotKyNkZWZpbmUgREVGQVVMVF9S RVFVSVJFUyAoSUJVU19DQVBfUFJFRURJVF9URVhUIHwgICBcCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICBJQlVTX0NBUF9BVVhJTElBUllfVEVYVCB8IFwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgIElCVVNfQ0FQX0xPT0tVUF9UQUJMRSB8ICAgXAotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgSUJVU19DQVBfRk9DVVMgfCAgICAgICAgICBcCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICBJQlVTX0NBUF9QUk9QRVJUWSkKLSAKLSBzdGF0aWMgdm9pZAotIGlidXNfZW5naW5lX2Rl c2NfY2xhc3NfaW5pdCAoSUJ1c0VuZ2luZURlc2NDbGFzcyAqY2xhc3MpCi1AQCAtMjMyLDYgKzI0 NiwyMSBAQCBpYnVzX2VuZ2luZV9kZXNjX2NsYXNzX2luaXQgKElCdXNFbmdpbmVEZXNjQ2xhc3Mg KmNsYXNzKQotICAgICAgICAgICAgICAgICAgICAgICAgICJUaGUgaG90a2V5cyBvZiBlbmdpbmUg ZGVzY3JpcHRpb24iLAotICAgICAgICAgICAgICAgICAgICAgICAgICIiLAotICAgICAgICAgICAg ICAgICAgICAgICAgIEdfUEFSQU1fUkVBRFdSSVRFIHwgR19QQVJBTV9DT05TVFJVQ1RfT05MWSkp OwotKwotKyAgICAvKioKLSsgICAgICogSUJ1c0VuZ2luZURlc2M6cmVxdWlyZXM6Ci0rICAgICAq Ci0rICAgICAqIFRoZSByZXF1aXJlZCBjYXBhYmlsaXRpZXMgb2YgZW5naW5lIGRlc2NyaXB0aW9u Ci0rICAgICAqLwotKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5IChnb2JqZWN0 X2NsYXNzLAotKyAgICAgICAgICAgICAgICAgICAgUFJPUF9SRVFVSVJFUywKLSsgICAgICAgICAg ICAgICAgICAgIGdfcGFyYW1fc3BlY191aW50ICgicmVxdWlyZXMiLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICJkZXNjcmlwdGlvbiByZXF1aXJlcyIsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgIlRoZSByZXF1aXJlZCBjYXBhYmlsaXRpZXMgb2YgZW5naW5lIGRlc2NyaXB0aW9uIiwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAwLAotKyAgICAgICAgICAgICAgICAgICAgICAgIEdfTUFY VUlOVCwKLSsgICAgICAgICAgICAgICAgICAgICAgICBERUZBVUxUX1JFUVVJUkVTLAotKyAgICAg ICAgICAgICAgICAgICAgICAgIEdfUEFSQU1fUkVBRFdSSVRFIHwgR19QQVJBTV9DT05TVFJVQ1Rf T05MWSkpOwotIH0KLSAKLSBzdGF0aWMgdm9pZAotQEAgLTI0OSw2ICsyNzgsNyBAQCBpYnVzX2Vu Z2luZV9kZXNjX2luaXQgKElCdXNFbmdpbmVEZXNjICpkZXNjKQotICAgICBkZXNjLT5wcml2LT5s YXlvdXQgPSBOVUxMOwotICAgICBkZXNjLT5wcml2LT5yYW5rID0gMDsKLSAgICAgZGVzYy0+cHJp di0+aG90a2V5cyA9IE5VTEw7Ci0rICAgIGRlc2MtPnByaXYtPnJlcXVpcmVzID0gREVGQVVMVF9S RVFVSVJFUzsKLSB9Ci0gCi0gc3RhdGljIHZvaWQKLUBAIC0zMTMsNiArMzQzLDkgQEAgaWJ1c19l bmdpbmVfZGVzY19zZXRfcHJvcGVydHkgKElCdXNFbmdpbmVEZXNjICpkZXNjLAotICAgICAgICAg Z19hc3NlcnQgKGRlc2MtPnByaXYtPmhvdGtleXMgPT0gTlVMTCk7Ci0gICAgICAgICBkZXNjLT5w cml2LT5ob3RrZXlzID0gZ192YWx1ZV9kdXBfc3RyaW5nICh2YWx1ZSk7Ci0gICAgICAgICBicmVh azsKLSsgICAgY2FzZSBQUk9QX1JFUVVJUkVTOgotKyAgICAgICAgZGVzYy0+cHJpdi0+cmVxdWly ZXMgPSBnX3ZhbHVlX2dldF91aW50ICh2YWx1ZSk7Ci0rICAgICAgICBicmVhazsKLSAgICAgZGVm YXVsdDoKLSAgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRCAoZGVzYywg cHJvcF9pZCwgcHNwZWMpOwotICAgICB9Ci1AQCAtMzU1LDYgKzM4OCw5IEBAIGlidXNfZW5naW5l X2Rlc2NfZ2V0X3Byb3BlcnR5IChJQnVzRW5naW5lRGVzYyAqZGVzYywKLSAgICAgY2FzZSBQUk9Q X0hPVEtFWVM6Ci0gICAgICAgICBnX3ZhbHVlX3NldF9zdHJpbmcgKHZhbHVlLCBpYnVzX2VuZ2lu ZV9kZXNjX2dldF9ob3RrZXlzIChkZXNjKSk7Ci0gICAgICAgICBicmVhazsKLSsgICAgY2FzZSBQ Uk9QX1JFUVVJUkVTOgotKyAgICAgICAgZ192YWx1ZV9zZXRfdWludCAodmFsdWUsIGlidXNfZW5n aW5lX2Rlc2NfZ2V0X3JlcXVpcmVzIChkZXNjKSk7Ci0rICAgICAgICBicmVhazsKLSAgICAgZGVm YXVsdDoKLSAgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRCAoZGVzYywg cHJvcF9pZCwgcHNwZWMpOwotICAgICB9Ci1AQCAtMzgyLDkgKzQxOCwyOCBAQCBpYnVzX2VuZ2lu ZV9kZXNjX3NlcmlhbGl6ZSAoSUJ1c0VuZ2luZURlc2MgICpkZXNjLAotICAgICBnX3ZhcmlhbnRf YnVpbGRlcl9hZGQgKGJ1aWxkZXIsICJ1IiwgZGVzYy0+cHJpdi0+cmFuayk7Ci0gICAgIGdfdmFy aWFudF9idWlsZGVyX2FkZCAoYnVpbGRlciwgInMiLCBOT1ROVUxMIChkZXNjLT5wcml2LT5ob3Rr ZXlzKSk7Ci0gI3VuZGVmIE5PVE5VTEwKLSsKLSsgICAgLyogYXBwZW5kIGV4dHJhIHByb3BlcnRp ZXMgKi8KLSsgICAgR1ZhcmlhbnRCdWlsZGVyIGFycmF5OwotKyAgICBnX3ZhcmlhbnRfYnVpbGRl cl9pbml0ICgmYXJyYXksIEdfVkFSSUFOVF9UWVBFICgiYXtzdn0iKSk7Ci0rICAgIGdfdmFyaWFu dF9idWlsZGVyX2FkZCAoJmFycmF5LCAie3N2fSIsICJyZXF1aXJlcyIsIGdfdmFyaWFudF9uZXdf dWludDMyIChkZXNjLT5wcml2LT5yZXF1aXJlcykpOwotKyAgICBnX3ZhcmlhbnRfYnVpbGRlcl9h ZGQgKGJ1aWxkZXIsICJ2IiwgZ192YXJpYW50X2J1aWxkZXJfZW5kICgmYXJyYXkpKTsKLSsKLSAg ICAgcmV0dXJuIFRSVUU7Ci0gfQotIAotK3N0YXRpYyBnYm9vbGVhbgotK2lidXNfZW5naW5lX2Rl c2NfZGVzZXJpYWxpemVfcHJvcGVydHkgKElCdXNFbmdpbmVEZXNjICpkZXNjLAotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICpuYW1lLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdWYXJpYW50ICAgICAgICp2YXJp YW50KQotK3sKLSsgICAgaWYgKGdfc3RyY21wMCAobmFtZSwgInJlcXVpcmVzIikgPT0gMCkgewot KyAgICAgICAgZ192YXJpYW50X2dldCAodmFyaWFudCwgInUiLCAmZGVzYy0+cHJpdi0+cmVxdWly ZXMpOwotKyAgICAgICAgcmV0dXJuIFRSVUU7Ci0rICAgIH0KLSsgICAgcmV0dXJuIEZBTFNFOwot K30KLSsKLSBzdGF0aWMgZ2ludAotIGlidXNfZW5naW5lX2Rlc2NfZGVzZXJpYWxpemUgKElCdXNF bmdpbmVEZXNjICpkZXNjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdWYXJpYW50 ICAgICAgICp2YXJpYW50KQotQEAgLTQwNSw2ICs0NjAsMjMgQEAgaWJ1c19lbmdpbmVfZGVzY19k ZXNlcmlhbGl6ZSAoSUJ1c0VuZ2luZURlc2MgKmRlc2MsCi0gICAgIGdfdmFyaWFudF9nZXRfY2hp bGQgKHZhcmlhbnQsIHJldHZhbCsrLCAidSIsICZkZXNjLT5wcml2LT5yYW5rKTsKLSAgICAgZ192 YXJpYW50X2dldF9jaGlsZCAodmFyaWFudCwgcmV0dmFsKyssICJzIiwgJmRlc2MtPnByaXYtPmhv dGtleXMpOwotIAotKyAgICAvKiBleHRyYWN0IGV4dHJhIHByb3BlcnRpZXMgKi8KLSsgICAgR1Zh cmlhbnRJdGVyIGl0ZXI7Ci0rICAgIEdWYXJpYW50ICpjaGlsZCwgKmFycmF5OwotKwotKyAgICBn X3ZhcmlhbnRfZ2V0X2NoaWxkICh2YXJpYW50LCByZXR2YWwrKywgInYiLCAmYXJyYXkpOwotKyAg ICBnX3ZhcmlhbnRfaXRlcl9pbml0ICgmaXRlciwgYXJyYXkpOwotKyAgICB3aGlsZSAoKGNoaWxk ID0gZ192YXJpYW50X2l0ZXJfbmV4dF92YWx1ZSAoJml0ZXIpKSkgewotKyAgICAgICAgZ2NoYXIg Km5hbWU7Ci0rICAgICAgICBHVmFyaWFudCAqdmFsdWU7Ci0rICAgICAgICBnX3ZhcmlhbnRfZ2V0 IChjaGlsZCwgIntzdn0iLCAmbmFtZSwgJnZhbHVlKTsKLSsgICAgICAgIGlmIChpYnVzX2VuZ2lu ZV9kZXNjX2Rlc2VyaWFsaXplX3Byb3BlcnR5IChkZXNjLCBuYW1lLCB2YWx1ZSkpCi0rICAgICAg ICAgICAgcmV0dmFsKys7Ci0rICAgICAgICBnX2ZyZWUgKG5hbWUpOwotKyAgICAgICAgZ192YXJp YW50X3VucmVmICh2YWx1ZSk7Ci0rICAgICAgICBnX3ZhcmlhbnRfdW5yZWYgKGNoaWxkKTsKLSsg ICAgfQotKwotICAgICByZXR1cm4gcmV0dmFsOwotIH0KLSAKLUBAIC00MjgsNiArNTAwLDcgQEAg aWJ1c19lbmdpbmVfZGVzY19jb3B5IChJQnVzRW5naW5lRGVzYyAgICAgICAqZGVzdCwKLSAgICAg ZGVzdC0+cHJpdi0+bGF5b3V0ICAgICAgICAgICA9IGdfc3RyZHVwIChzcmMtPnByaXYtPmxheW91 dCk7Ci0gICAgIGRlc3QtPnByaXYtPnJhbmsgICAgICAgICAgICAgPSBzcmMtPnByaXYtPnJhbms7 Ci0gICAgIGRlc3QtPnByaXYtPmhvdGtleXMgICAgICAgICAgPSBnX3N0cmR1cCAoc3JjLT5wcml2 LT5ob3RrZXlzKTsKLSsgICAgZGVzdC0+cHJpdi0+cmVxdWlyZXMgICAgICAgICA9IHNyYy0+cHJp di0+cmVxdWlyZXM7Ci0gICAgIHJldHVybiBUUlVFOwotIH0KLSAKLUBAIC00MzksNiArNTEyLDUy IEBAIGlidXNfZW5naW5lX2Rlc2NfY29weSAoSUJ1c0VuZ2luZURlc2MgICAgICAgKmRlc3QsCi0g ICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICB9 Ci0gCi0rc3RhdGljIHZvaWQKLStpYnVzX2VuZ2luZV9kZXNjX291dHB1dF9jYXBhYmlsaXRpZXMg KGd1aW50ICAgIGNhcHMsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH U3RyaW5nICpvdXRwdXQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn aW50ICAgICBpbmRlbnQpCi0rewotKyAgICBHRmxhZ3NDbGFzcyAqZmxhZ3NfY2xhc3M7Ci0rICAg IGdpbnQgaTsKLSsKLSsgICAgZmxhZ3NfY2xhc3MgPSBnX3R5cGVfY2xhc3NfcmVmIChJQlVTX1RZ UEVfQ0FQQUJJTElURSk7Ci0rICAgIGdfcmV0dXJuX2lmX2ZhaWwgKEdfVFlQRV9JU19GTEFHUyAo SUJVU19UWVBFX0NBUEFCSUxJVEUpKTsKLSsgICAgZm9yIChpID0gMDsgaSA8IGZsYWdzX2NsYXNz LT5uX3ZhbHVlczsgaSsrKSB7Ci0rICAgICAgICBHRmxhZ3NWYWx1ZSAqZmxhZ3NfdmFsdWUgPSAm ZmxhZ3NfY2xhc3MtPnZhbHVlc1tpXTsKLSsgICAgICAgIGlmIChjYXBzICYgZmxhZ3NfdmFsdWUt PnZhbHVlKSB7Ci0rICAgICAgICAgICAgZ19zdHJpbmdfYXBwZW5kX2luZGVudCAob3V0cHV0LCBp bmRlbnQgKyAxKTsKLSsgICAgICAgICAgICBnX3N0cmluZ19hcHBlbmRfcHJpbnRmIChvdXRwdXQs ICI8Y2FwYWJpbGl0eT4lczwvY2FwYWJpbGl0eT5cbiIsCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZmxhZ3NfdmFsdWUtPnZhbHVlX25pY2spOwotKyAgICAgICAgfQotKyAg ICB9Ci0rICAgIGdfdHlwZV9jbGFzc191bnJlZiAoZmxhZ3NfY2xhc3MpOwotK30KLSsKLStzdGF0 aWMgZ3VpbnQKLStpYnVzX2VuZ2luZV9kZXNjX3BhcnNlX2NhcGFiaWxpdGllcyAoWE1MTm9kZSAq bm9kZSkKLSt7Ci0rICAgIEdGbGFnc0NsYXNzICpmbGFnc19jbGFzczsKLSsgICAgZ3VpbnQgY2Fw cyA9IDA7Ci0rICAgIEdMaXN0ICpwOwotKwotKyAgICBmbGFnc19jbGFzcyA9IGdfdHlwZV9jbGFz c19yZWYgKElCVVNfVFlQRV9DQVBBQklMSVRFKTsKLSsgICAgZm9yIChwID0gbm9kZS0+c3ViX25v ZGVzOyBwICE9IE5VTEw7IHAgPSBwLT5uZXh0KSB7Ci0rICAgICAgICBYTUxOb2RlICpzdWJfbm9k ZSA9IChYTUxOb2RlICopIHAtPmRhdGE7Ci0rCi0rICAgICAgICBpZiAoZ19zdHJjbXAwIChzdWJf bm9kZS0+bmFtZSwgImNhcGFiaWxpdHkiKSA9PSAwKSB7Ci0rICAgICAgICAgICAgZ2ludCBpOwot KyAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBmbGFnc19jbGFzcy0+bl92YWx1ZXM7IGkrKykg ewotKyAgICAgICAgICAgICAgICBHRmxhZ3NWYWx1ZSAqZmxhZ3NfdmFsdWUgPSAmZmxhZ3NfY2xh c3MtPnZhbHVlc1tpXTsKLSsgICAgICAgICAgICAgICAgaWYgKGdfc3RyY21wMCAoZmxhZ3NfdmFs dWUtPnZhbHVlX25pY2ssIHN1Yl9ub2RlLT50ZXh0KSA9PSAwKQotKyAgICAgICAgICAgICAgICAg ICAgY2FwcyB8PSBmbGFnc192YWx1ZS0+dmFsdWU7Ci0rICAgICAgICAgICAgfQotKyAgICAgICAg fQotKyAgICB9Ci0rICAgIGdfdHlwZV9jbGFzc191bnJlZiAoZmxhZ3NfY2xhc3MpOwotKwotKyAg ICByZXR1cm4gY2FwczsKLSt9Ci0rCi0gdm9pZAotIGlidXNfZW5naW5lX2Rlc2Nfb3V0cHV0IChJ QnVzRW5naW5lRGVzYyAqZGVzYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgR1N0cmluZyAg ICAgICAgKm91dHB1dCwKLUBAIC00NjcsNiArNTg2LDEzIEBAIGlidXNfZW5naW5lX2Rlc2Nfb3V0 cHV0IChJQnVzRW5naW5lRGVzYyAqZGVzYywKLSAgICAgT1VUUFVUX0VOVFJZXzEoaG90a2V5cyk7 Ci0gICAgIGdfc3RyaW5nX2FwcGVuZF9pbmRlbnQgKG91dHB1dCwgaW5kZW50ICsgMSk7Ci0gICAg IGdfc3RyaW5nX2FwcGVuZF9wcmludGYgKG91dHB1dCwgIjxyYW5rPiV1PC9yYW5rPlxuIiwgZGVz Yy0+cHJpdi0+cmFuayk7Ci0rCi0rICAgIGdfc3RyaW5nX2FwcGVuZF9pbmRlbnQgKG91dHB1dCwg aW5kZW50ICsgMSk7Ci0rICAgIGdfc3RyaW5nX2FwcGVuZCAob3V0cHV0LCAiPHJlcXVpcmVzPlxu Iik7Ci0rICAgIGlidXNfZW5naW5lX2Rlc2Nfb3V0cHV0X2NhcGFiaWxpdGllcyAoZGVzYy0+cHJp di0+cmVxdWlyZXMsIG91dHB1dCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpbmRlbnQgKyAyKTsKLSsgICAgZ19zdHJpbmdfYXBwZW5kX2luZGVudCAob3V0cHV0 LCBpbmRlbnQgKyAxKTsKLSsgICAgZ19zdHJpbmdfYXBwZW5kIChvdXRwdXQsICI8L3JlcXVpcmVz PlxuIik7Ci0gI3VuZGVmIE9VVFBVVF9FTlRSWQotICN1bmRlZiBPVVRQVVRfRU5UUllfMQotICAg ICBnX3N0cmluZ19hcHBlbmRfaW5kZW50IChvdXRwdXQsIGluZGVudCk7Ci1AQCAtNTA0LDYgKzYz MCwxMSBAQCBpYnVzX2VuZ2luZV9kZXNjX3BhcnNlX3htbF9ub2RlIChJQnVzRW5naW5lRGVzYyAq ZGVzYywKLSAgICAgICAgICAgICBkZXNjLT5wcml2LT5yYW5rID0gYXRvaSAoc3ViX25vZGUtPnRl eHQpOwotICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgfQotKyAgICAgICAgaWYgKGdf c3RyY21wMCAoc3ViX25vZGUtPm5hbWUgLCAicmVxdWlyZXMiKSA9PSAwKSB7Ci0rICAgICAgICAg ICAgZGVzYy0+cHJpdi0+cmVxdWlyZXMgPQotKyAgICAgICAgICAgICAgICBpYnVzX2VuZ2luZV9k ZXNjX3BhcnNlX2NhcGFiaWxpdGllcyAoc3ViX25vZGUpOwotKyAgICAgICAgICAgIGNvbnRpbnVl OwotKyAgICAgICAgfQotICAgICAgICAgZ193YXJuaW5nICgiPGVuZ2luZXM+IGVsZW1lbnQgY29u dGFpbnMgaW52YWxpZGF0ZSBlbGVtZW50IDwlcz4iLCBzdWJfbm9kZS0+bmFtZSk7Ci0gICAgIH0K LSAgICAgcmV0dXJuIFRSVUU7Ci1AQCAtNTI2LDYgKzY1Nyw3IEBAIElCVVNfRU5HSU5FX0RFU0Nf R0VUX1BST1BFUlRZIChpY29uLCBjb25zdCBnY2hhciAqKQotIElCVVNfRU5HSU5FX0RFU0NfR0VU X1BST1BFUlRZIChsYXlvdXQsIGNvbnN0IGdjaGFyICopCi0gSUJVU19FTkdJTkVfREVTQ19HRVRf UFJPUEVSVFkgKHJhbmssIGd1aW50KQotIElCVVNfRU5HSU5FX0RFU0NfR0VUX1BST1BFUlRZICho b3RrZXlzLCBjb25zdCBnY2hhciAqKQotK0lCVVNfRU5HSU5FX0RFU0NfR0VUX1BST1BFUlRZIChy ZXF1aXJlcywgZ3VpbnQpCi0gI3VuZGVmIElCVVNfRU5HSU5FX0RFU0NfR0VUX1BST1BFUlRZCi0g Ci0gSUJ1c0VuZ2luZURlc2MgKgotZGlmZiAtLWdpdCBhL3NyYy9pYnVzZW5naW5lZGVzYy5oIGIv c3JjL2lidXNlbmdpbmVkZXNjLmgKLWluZGV4IDk3MThiMTUuLjIwOWQ0NjAgMTAwNjQ0Ci0tLS0g YS9zcmMvaWJ1c2VuZ2luZWRlc2MuaAotKysrIGIvc3JjL2lidXNlbmdpbmVkZXNjLmgKLUBAIC05 MCw2ICs5MCw4IEBAIHR5cGVkZWYgc3RydWN0IF9JQnVzRW5naW5lRGVzY0NsYXNzIElCdXNFbmdp bmVEZXNjQ2xhc3M7Ci0gICogdGhlIGZyb250LgotICAqIGhvdGtleXM6IE9uZSBvciBtb3JlIGhv dGtleXMgZm9yIHN3aXRjaGluZyB0byB0aGlzIGVuZ2luZSwgc2VwYXJhdGVkIGJ5Ci0gICogIHNl bWktY29sb24uCi0rICogcmVxdWlyZXM6IENhcGFiaWxpdGllcyB0aGlzIGVuZ2luZSB3aWxsIHV0 aWxpemUuICBUaGUgdmFsdWUgaXMgdGhlCi0rICogdW5pb24gb2YgdGhlIElCdXNDYXBhYmlsaXR5 IGZsYWdzLgotICAqLwotIHN0cnVjdCBfSUJ1c0VuZ2luZURlc2MgewotICAgICBJQnVzU2VyaWFs aXphYmxlIHBhcmVudDsKLUBAIC0yNDksNiArMjUxLDE1IEBAIGd1aW50ICAgICAgICAgICAgaWJ1 c19lbmdpbmVfZGVzY19nZXRfcmFuayAgICAgIChJQnVzRW5naW5lRGVzYyAqaW5mbyk7Ci0gY29u c3QgZ2NoYXIgICAgICppYnVzX2VuZ2luZV9kZXNjX2dldF9ob3RrZXlzICAgKElCdXNFbmdpbmVE ZXNjICppbmZvKTsKLSAKLSAvKioKLSsgKiBpYnVzX2VuZ2luZV9kZXNjX2dldF9yZXF1aXJlczoK LSsgKiBAaW5mbzogQW4gSUJ1c0VuZ2luZURlc2MKLSsgKiBAcmV0dXJuczogcmVxdWVzdCBjYXBh YmlsaXRlcyBwcm9wZXJ0eSBpbiBJQnVzRW5naW5lRGVzYwotKyAqCi0rICogUmV0dXJuIHRoZSBj YXBhYmlsaXRlcyBwcm9wZXJ0eSBpbiBJQnVzRW5naW5lRGVzYy4KLSsgKi8KLStndWludCAgICAg ICAgICAgIGlidXNfZW5naW5lX2Rlc2NfZ2V0X3JlcXVpcmVzICAoSUJ1c0VuZ2luZURlc2MgKmlu Zm8pOwotKwotKy8qKgotICAqIGlidXNfZW5naW5lX2Rlc2Nfb3V0cHV0OgotICAqIEBpbmZvOiBB biBJQnVzRW5naW5lRGVzYwotICAqIEBvdXRwdXQ6IFhNTC1mb3JtYXR0ZWQgSW5wdXQgbWV0aG9k IGVuZ2luZSBkZXNjcmlwdGlvbi4KLS0tIAotMS43LjQuMgotCgpkaWZmIC0tZ2l0IGEvaWJ1cy01 MzA3MTEtcHJlbG9hZC1zeXMucGF0Y2ggYi9pYnVzLTUzMDcxMS1wcmVsb2FkLXN5cy5wYXRjaApp bmRleCBiMDcxZDZlLi43ZGVjNWJhIDEwMDY0NAotLS0gYS9pYnVzLTUzMDcxMS1wcmVsb2FkLXN5 cy5wYXRjaAorKysgYi9pYnVzLTUzMDcxMS1wcmVsb2FkLXN5cy5wYXRjaApAQCAtMSwxMiArMSwx MyBAQAotRnJvbSAwNDc0NTJiZWZmZDdjYjQyOWJmNGRmZWIyMzcxZjEyMGNjODA0MWE2IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSA3ZjgxNDQ1YjNlNjYxM2QxNGY2NDI1MzUwNmEzMDkw OTVhMzdjOGQ3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogZnVqaXdhcmF0IDx0YWth by5mdWppd2FyYTFAZ21haWwuY29tPgotRGF0ZTogRnJpLCAxMSBNYXIgMjAxMSAxNjowNzowOSAr MDkwMAorRGF0ZTogTW9uLCAyMCBKdW4gMjAxMSAxOTowNDo0MiArMDkwMAogU3ViamVjdDogW1BB VENIXSBSZWxvYWQgcHJlbG9hZCBlbmdpbmVzIHVudGlsIHVzZXJzIGN1c3RvbWl6ZSB0aGUgbGlz dC4KIAogVGhlIGlkZWEgaXMsIGlmIHVzZXJzIGRvbid0IGN1c3RvbWl6ZSB0aGUgcHJlbG9hZF9l bmdpbmVzIHdpdGggaWJ1cy1zZXR1cCwKIHVzZXJzIHdvdWxkIHByZWZlciB0byBsb2FkIHRoZSBz eXN0ZW0gZGVmYXVsdCBlbmdpbmVzIGFnYWluIGJ5IGxvZ2luLgogVGhlIGdjb25mIHZhbHVlICdw cmVsb2FkX2VuZ2luZV9tb2RlJyBpcwotSUJVU19QUkVMT0FEX0VOR0lORV9NT0RFX0xBTkdfUkVM QVRJVkUgYnkgZGVmYXVsdC4KK0lCVVNfUFJFTE9BRF9FTkdJTkVfTU9ERV9VU0VSIGJ5IGRlZmF1 bHQgYnV0IHNldAorSUJVU19QUkVMT0FEX0VOR0lORV9NT0RFX0xBTkdfUkVMQVRJVkUgZm9yIHRo ZSBpbml0aWFsIGxvZ2luLgogSWYgcHJlbG9hZF9lbmdpbmVfbW9kZSBpcyBJQlVTX1BSRUxPQURf RU5HSU5FX01PREVfTEFOR19SRUxBVElWRSwKIGlidXMtZGFlbW9uIGxvYWRzIHRoZSBzeXN0ZW0g cHJlbG9hZCBlbmdpbmVzIGJ5IGxhbmdzLgogSWYgcHJlbG9hZF9lbmdpbmVfbW9kZSBpcyBJQlVT X1BSRUxPQURfRU5HSU5FX01PREVfVVNFUiwKQEAgLTE1LDIyICsxNiwyMCBAQCBPbiB0aGUgb3Ro ZXIgaGFuZCwgaWYgdXNlcnMgZW5hYmxlIHRoZSBjdXN0b21pemVkIGVuZ2luZSBjaGVja2J1dHRv bgogb24gaWJ1cy1zZXR1cCwgaWJ1cy1zZXR1cCBzZXRzICdwcmVsb2FkX2VuZ2luZV9tb2RlJyBh cwogSUJVU19QUkVMT0FEX0VOR0lORV9NT0RFX1VTRVIgYW5kIHVzZXJzIGNhbiBjdXN0b21pemUg dGhlIHZhbHVlCiAncHJlbG9hZF9lbmdpbmVzJy4KLUxvYWRpbmcgc3lzdGVtIGRlZmF1bHQgbWF5 IHNwZW5kIHRoZSBzdGFydHVwIHRpbWUuIElmIHlvdSBtaW5kIGl0LAoteW91ciBkaXN0IG1heSBs aWtlIHRvIHB1dCBUUlVFIGluICd1c2VfbG9jYWxfcHJlbG9hZF9lbmdpbmVzJyB2YWx1ZS4KIC0t LQotIGJ1cy9pYnVzaW1wbC5jICAgICAgIHwgIDI4NiArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQotIGRhdGEvaWJ1cy5zY2hlbWFzLmluIHwgICAxMyAr KysKKyBidXMvaWJ1c2ltcGwuYyAgICAgICB8ICA0MDIgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KKyBkYXRhL2lidXMuc2NoZW1hcy5pbiB8ICAgMTMg KysKICBpYnVzL2NvbW1vbi5weSAgICAgICB8ICAgIDYgKwotIHNldHVwL21haW4ucHkgICAgICAg IHwgICAzNyArKysrKystCisgc2V0dXAvbWFpbi5weSAgICAgICAgfCAgIDcwICsrKysrKysrLQog IHNldHVwL3NldHVwLnVpICAgICAgIHwgICAyMSArKystCiAgc3JjL2lidXN0eXBlcy5oICAgICAg fCAgIDEwICsrCi0gNiBmaWxlcyBjaGFuZ2VkLCAyNzkgaW5zZXJ0aW9ucygrKSwgOTQgZGVsZXRp b25zKC0pCisgNiBmaWxlcyBjaGFuZ2VkLCA0MjcgaW5zZXJ0aW9ucygrKSwgOTUgZGVsZXRpb25z KC0pCiAKIGRpZmYgLS1naXQgYS9idXMvaWJ1c2ltcGwuYyBiL2J1cy9pYnVzaW1wbC5jCi1pbmRl eCA4ZDRlYzM2Li4wY2FhOGM3IDEwMDY0NAoraW5kZXggYTdhZTUyYi4uYmI0YjhhZSAxMDA2NDQK IC0tLSBhL2J1cy9pYnVzaW1wbC5jCiArKysgYi9idXMvaWJ1c2ltcGwuYwotQEAgLTE0NCw2ICsx NDQsOSBAQCBzdGF0aWMgdm9pZCAgICAgYnVzX2lidXNfaW1wbF9zZXRfcHJldmlvCitAQCAtMTQ0 LDYgKzE0NCw5IEBAIHN0YXRpYyB2b2lkICAgICBidXNfaWJ1c19pbXBsX3NldF9wcmV2aW91c19l bmdpbmUKICBzdGF0aWMgdm9pZCAgICAgYnVzX2lidXNfaW1wbF9zZXRfcHJlbG9hZF9lbmdpbmVz CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEJ1c0lC dXNJbXBsICAgICAgICAqaWJ1cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgR1ZhcmlhbnQgICAgICAgICAgICp2YWx1ZSk7CkBAIC00MCwxMCArMzks MjggQEAgaW5kZXggOGQ0ZWMzNi4uMGNhYThjNyAxMDA2NDQKICBzdGF0aWMgdm9pZCAgICAgYnVz X2lidXNfaW1wbF9zZXRfdXNlX3N5c19sYXlvdXQKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoQnVzSUJ1c0ltcGwgICAgICAgICppYnVzLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVmFyaWFudCAgICAg ICAgICAgKnZhbHVlKTsKLUBAIC0yODQsNiArMjg3LDE0MiBAQCBfcGFuZWxfZGVzdHJveV9jYiAo QnVzUGFuZWxQcm94eSAqcGFuZWwsCi0gICAgIGdfb2JqZWN0X3VucmVmIChwYW5lbCk7CitAQCAt Mjg1LDYgKzI4OCwyNTkgQEAgX3BhbmVsX2Rlc3Ryb3lfY2IgKEJ1c1BhbmVsUHJveHkgKnBhbmVs LAogIH0KICAKKyBzdGF0aWMgdm9pZAorK19jb25maWdfc2V0X3ZhbHVlX2RvbmUgKEdPYmplY3Qg ICAgICAqb2JqZWN0LAorKyAgICAgICAgICAgICAgICAgICAgICAgIEdBc3luY1Jlc3VsdCAqcmVz LAorKyAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyICAgICAgdXNlcl9kYXRhKQorK3sK KysgICAgSUJ1c0NvbmZpZyAqY29uZmlnID0gKElCdXNDb25maWcgKikgb2JqZWN0OworKyAgICBH VmFyaWFudCAqdmFsdWUgPSAoR1ZhcmlhbnQgKikgdXNlcl9kYXRhOworKyAgICBHRXJyb3IgKmVy cm9yID0gTlVMTDsKKysKKysgICAgZ19hc3NlcnQgKElCVVNfSVNfQ09ORklHIChjb25maWcpKTsK KysKKysgICAgaWYgKCFpYnVzX2NvbmZpZ19zZXRfdmFsdWVfYXN5bmNfZmluaXNoIChjb25maWcs IHJlcywgJmVycm9yKSkgeworKyAgICAgICAgaWYgKGVycm9yKSB7CisrICAgICAgICAgICAgZ19l cnJvcl9mcmVlIChlcnJvcik7CisrICAgICAgICB9CisrICAgIH0KKysgICAgZ192YXJpYW50X3Vu cmVmICh2YWx1ZSk7CisrfQorKwogKyNpZm5kZWYgT1NfQ0hST01FT1MKICtzdGF0aWMgZ2ludAog K19lbmdpbmVfZGVzY19jbXAgKElCdXNFbmdpbmVEZXNjICpkZXNjMSwKQEAgLTU5LDcgKzc2LDcg QEAgaW5kZXggOGQ0ZWMzNi4uMGNhYThjNyAxMDA2NDQKICtfZ2V0X2NvbmZpZ19wcmVsb2FkX2Vu Z2luZV9tb2RlIChCdXNJQnVzSW1wbCAqaWJ1cykKICt7CiArICAgIEdWYXJpYW50ICp2YXJpYW50 ID0gTlVMTDsKLSsgICAgZ2ludCBwcmVsb2FkX2VuZ2luZV9tb2RlID0gSUJVU19QUkVMT0FEX0VO R0lORV9NT0RFX0xBTkdfUkVMQVRJVkU7CisrICAgIGdpbnQgcHJlbG9hZF9lbmdpbmVfbW9kZSA9 IElCVVNfUFJFTE9BRF9FTkdJTkVfTU9ERV9VU0VSOwogKwogKyAgICBnX2Fzc2VydCAoQlVTX0lT X0lCVVNfSU1QTCAoaWJ1cykpOwogKwpAQCAtNjgsNiArODUsMjMgQEAgaW5kZXggOGQ0ZWMzNi4u MGNhYThjNyAxMDA2NDQKICsgICAgfQogKwogKyAgICB2YXJpYW50ID0gaWJ1c19jb25maWdfZ2V0 X3ZhbHVlIChpYnVzLT5jb25maWcsICJnZW5lcmFsIiwKKysgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgInByZWxvYWRfZW5naW5lcyIpOworKyAgICBpZiAodmFyaWFudCA9PSBO VUxMKSB7CisrICAgICAgICAvKiBTZXQgTEFOR19SRUxBVElWRSBtb2RlIGZvciB0aGUgaW5pdGlh bCBsb2dpbiAqLworKyAgICAgICAgcHJlbG9hZF9lbmdpbmVfbW9kZSA9IElCVVNfUFJFTE9BRF9F TkdJTkVfTU9ERV9MQU5HX1JFTEFUSVZFOworKyAgICAgICAgdmFyaWFudCA9IGdfdmFyaWFudF9y ZWZfc2luayAoZ192YXJpYW50X25ldyAoImkiLCBwcmVsb2FkX2VuZ2luZV9tb2RlKSk7CisrICAg ICAgICBpYnVzX2NvbmZpZ19zZXRfdmFsdWVfYXN5bmMgKGlidXMtPmNvbmZpZywgImdlbmVyYWwi LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJlbG9hZF9lbmdpbmVf bW9kZSIsIHZhcmlhbnQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0x LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfY29uZmlnX3NldF92YWx1ZV9kb25lLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50KTsKKysgICAgICAgIHJl dHVybiBwcmVsb2FkX2VuZ2luZV9tb2RlOworKyAgICB9IGVsc2UgeworKyAgICAgICAgZ192YXJp YW50X3VucmVmICh2YXJpYW50KTsKKysgICAgfQorKworKyAgICB2YXJpYW50ID0gaWJ1c19jb25m aWdfZ2V0X3ZhbHVlIChpYnVzLT5jb25maWcsICJnZW5lcmFsIiwKICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgInByZWxvYWRfZW5naW5lX21vZGUiKTsKICsgICAgaWYgKHZh cmlhbnQgIT0gTlVMTCkgewogKyAgICAgICAgaWYgKGdfdmFyaWFudF9jbGFzc2lmeSAodmFyaWFu dCkgPT0gR19WQVJJQU5UX0NMQVNTX0lOVDMyKSB7CkBAIC04MCw2ICsxMTQsODIgQEAgaW5kZXgg OGQ0ZWMzNi4uMGNhYThjNyAxMDA2NDQKICt9CiArI2VuZGlmCiArCisrc3RhdGljIGludAorK19j b21wYXJlX2VuZ2luZV9saXN0X3ZhbHVlIChHVmFyaWFudCAqdmFsdWVfYSwgR1ZhcmlhbnQgKnZh bHVlX2IpCisreworKyAgICBHVmFyaWFudCAqdmFsdWU7CisrICAgIEdWYXJpYW50SXRlciBpdGVy OworKyAgICBjb25zdCBnY2hhciAqZW5naW5lX25hbWUgPSBOVUxMOworKyAgICBnY2hhciAqY29u Y2F0X2VuZ2luZV9uYW1lczsKKysgICAgZ2NoYXIgKmNvbmNhdF9lbmdpbmVfbmFtZXNfYSA9IE5V TEw7CisrICAgIGdjaGFyICpjb25jYXRfZW5naW5lX25hbWVzX2IgPSBOVUxMOworKyAgICBpbnQg cmV0dmFsID0gMDsKKysKKysgICAgdmFsdWUgPSB2YWx1ZV9hOworKyAgICBjb25jYXRfZW5naW5l X25hbWVzID0gTlVMTDsKKysgICAgaWYgKHZhbHVlICE9IE5VTEwgJiYgZ192YXJpYW50X2NsYXNz aWZ5ICh2YWx1ZSkgPT0gR19WQVJJQU5UX0NMQVNTX0FSUkFZKSB7CisrICAgICAgICBnX3Zhcmlh bnRfaXRlcl9pbml0ICgmaXRlciwgdmFsdWUpOworKyAgICAgICAgd2hpbGUgKGdfdmFyaWFudF9p dGVyX2xvb3AgKCZpdGVyLCAiJnMiLCAmZW5naW5lX25hbWUpKSB7CisrICAgICAgICAgICAgZ2No YXIgKnRtcCA9IGdfc3RyZHVwX3ByaW50ZiAoIiVzOjolcyIsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uY2F0X2VuZ2luZV9uYW1lcyA/IGNvbmNhdF9lbmdp bmVfbmFtZXMgOiAiIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBlbmdpbmVfbmFtZSA/IGVuZ2luZV9uYW1lIDogIiIpOworKyAgICAgICAgICAgIGdfZnJlZSAo Y29uY2F0X2VuZ2luZV9uYW1lcyk7CisrICAgICAgICAgICAgY29uY2F0X2VuZ2luZV9uYW1lcyA9 IHRtcDsKKysgICAgICAgIH0KKysgICAgfQorKyAgICBjb25jYXRfZW5naW5lX25hbWVzX2EgPSBj b25jYXRfZW5naW5lX25hbWVzOworKworKyAgICB2YWx1ZSA9IHZhbHVlX2I7CisrICAgIGNvbmNh dF9lbmdpbmVfbmFtZXMgPSBOVUxMOworKyAgICBpZiAodmFsdWUgIT0gTlVMTCAmJiBnX3Zhcmlh bnRfY2xhc3NpZnkgKHZhbHVlKSA9PSBHX1ZBUklBTlRfQ0xBU1NfQVJSQVkpIHsKKysgICAgICAg IGdfdmFyaWFudF9pdGVyX2luaXQgKCZpdGVyLCB2YWx1ZSk7CisrICAgICAgICB3aGlsZSAoZ192 YXJpYW50X2l0ZXJfbG9vcCAoJml0ZXIsICImcyIsICZlbmdpbmVfbmFtZSkpIHsKKysgICAgICAg ICAgICBnY2hhciAqdG1wID0gZ19zdHJkdXBfcHJpbnRmICgiJXM6OiVzIiwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25jYXRfZW5naW5lX25hbWVzID8gY29u Y2F0X2VuZ2luZV9uYW1lcyA6ICIiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGVuZ2luZV9uYW1lID8gZW5naW5lX25hbWUgOiAiIik7CisrICAgICAgICAgICAg Z19mcmVlIChjb25jYXRfZW5naW5lX25hbWVzKTsKKysgICAgICAgICAgICBjb25jYXRfZW5naW5l X25hbWVzID0gdG1wOworKyAgICAgICAgfQorKyAgICB9CisrICAgIGNvbmNhdF9lbmdpbmVfbmFt ZXNfYiA9IGNvbmNhdF9lbmdpbmVfbmFtZXM7CisrCisrICAgIHJldHZhbCA9IGdfc3RyY21wMCAo Y29uY2F0X2VuZ2luZV9uYW1lc19hLCBjb25jYXRfZW5naW5lX25hbWVzX2IpOworKyAgICBnX2Zy ZWUgKGNvbmNhdF9lbmdpbmVfbmFtZXNfYSk7CisrICAgIGdfZnJlZSAoY29uY2F0X2VuZ2luZV9u YW1lc19iKTsKKysgICAgcmV0dXJuIHJldHZhbDsKKyt9CisrCisrc3RhdGljIHZvaWQKKytfcHJl bG9hZF9lbmdpbmVzX2NvbmZpZ19nZXRfdmFsdWVfZG9uZSAoR09iamVjdCAgICAgICpvYmplY3Qs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdBc3luY1Jlc3VsdCAq cmVzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciAg ICAgIHVzZXJfZGF0YSkKKyt7CisrICAgIElCdXNDb25maWcgKmNvbmZpZyA9IChJQnVzQ29uZmln ICopIG9iamVjdDsKKysgICAgR1ZhcmlhbnQgKm5ld192YWx1ZSA9IChHVmFyaWFudCAqKSB1c2Vy X2RhdGE7CisrICAgIEdWYXJpYW50ICp2YWx1ZSA9IE5VTEw7CisrICAgIEdFcnJvciAqZXJyb3Ig PSBOVUxMOworKworKyAgICBnX2Fzc2VydCAoSUJVU19JU19DT05GSUcgKGNvbmZpZykpOworKwor KyAgICB2YWx1ZSA9IGlidXNfY29uZmlnX2dldF92YWx1ZV9hc3luY19maW5pc2ggKGNvbmZpZywg cmVzLCAmZXJyb3IpOworKyAgICBpZiAoZXJyb3IpIHsKKysgICAgICAgIGdfZXJyb3JfZnJlZSAo ZXJyb3IpOworKyAgICB9CisrICAgIGlmIChfY29tcGFyZV9lbmdpbmVfbGlzdF92YWx1ZSAodmFs dWUsIG5ld192YWx1ZSkgIT0gMCkgeworKyAgICAgICAgaWJ1c19jb25maWdfc2V0X3ZhbHVlX2Fz eW5jIChjb25maWcsICJnZW5lcmFsIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgInByZWxvYWRfZW5naW5lcyIsIG5ld192YWx1ZSwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLTEsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE5VTEwsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9jb25maWdf c2V0X3ZhbHVlX2RvbmUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5l d192YWx1ZSk7CisrICAgIH0gZWxzZSBpZiAobmV3X3ZhbHVlKSB7CisrICAgICAgICBnX3Zhcmlh bnRfdW5yZWYgKG5ld192YWx1ZSk7CisrICAgIH0KKysgICAgaWYgKHZhbHVlKSB7CisrICAgICAg ICBnX3ZhcmlhbnRfdW5yZWYgKHZhbHVlKTsKKysgICAgfQorK30KKysKICtzdGF0aWMgdm9pZAog K19zZXRfcHJlbG9hZF9lbmdpbmVzIChCdXNJQnVzSW1wbCAqaWJ1cywKICsgICAgICAgICAgICAg ICAgICAgICAgR1ZhcmlhbnQgICAgKnZhbHVlKQpAQCAtMTAzLDExICsyMTMsMTYgQEAgaW5kZXgg OGQ0ZWMzNi4uMGNhYThjNyAxMDA2NDQKICsgICAgICAgIH0KICsKICsgICAgICAgIGlmIChlbmdp bmVfbGlzdCAhPSBOVUxMICYmCi0rICAgICAgICAgICAgaWJ1cy0+Y29uZmlnICE9IE5VTEwgJiYK LSsgICAgICAgICAgICBpYnVzX2NvbmZpZ19nZXRfdmFsdWUgKGlidXMtPmNvbmZpZywgImdlbmVy YWwiLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInByZWxvYWRfZW5naW5l cyIpID09IE5VTEwpIHsKLSsgICAgICAgICAgICBpYnVzX2NvbmZpZ19zZXRfdmFsdWUgKGlidXMt PmNvbmZpZywgImdlbmVyYWwiLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg InByZWxvYWRfZW5naW5lcyIsIHZhbHVlKTsKKysgICAgICAgICAgICBpYnVzLT5jb25maWcgIT0g TlVMTCkgeworKyAgICAgICAgICAgIC8qIHN5bmMgZnVuY3Rpb24gd2lsbCBlZmZlY3RzIHRoZSBz dGFydHVwIHBlcmZvcm1hbmNlLgorKyAgICAgICAgICAgICAqIFdlJ2QgYWx3YXlzIGxpa2UgdG8g c2F2ZSB0aGUgdmFsdWUgc28gdGhhdCBpYnVzLXNldHVwCisrICAgICAgICAgICAgICogZ2V0IHRo ZSB1cGRhdGVkIGVuZ2luZSBsaXN0LiAqLworKyAgICAgICAgICAgIGlidXNfY29uZmlnX2dldF92 YWx1ZV9hc3luYyAoaWJ1cy0+Y29uZmlnLCAiZ2VuZXJhbCIsCisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAicHJlbG9hZF9lbmdpbmVzIiwKKysgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTlVMTCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF9wcmVsb2FkX2VuZ2luZXNfY29uZmlnX2dldF92YWx1ZV9kb25lLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ192YXJpYW50X3JlZl9zaW5rICh2 YWx1ZSkpOwogKyAgICAgICAgfSBlbHNlIHsKICsgICAgICAgICAgICAvKiBXZSBkb24ndCB1cGRh dGUgcHJlbG9hZF9lbmdpbmVzIHdpdGggYW4gZW1wdHkgc3RyaW5nIGZvciBzYWZldHkuCiArICAg ICAgICAgICAgICogSnVzdCB1bnJlZiB0aGUgZmxvYXRpbmcgdmFsdWUuICovCkBAIC0xODAsMTAg KzI5NSwxMSBAQCBpbmRleCA4ZDRlYzM2Li4wY2FhOGM3IDEwMDY0NAogK30KICsjZW5kaWYKICsK LSBzdGF0aWMgdm9pZAorK3N0YXRpYyB2b2lkCiAgYnVzX2lidXNfaW1wbF9zZXRfaG90a2V5IChC dXNJQnVzSW1wbCAqaWJ1cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdRdWFyayAgICAg ICBob3RrZXksCi1AQCAtMzk0LDM1ICs1MzMsNTAgQEAgc3RhdGljIHZvaWQKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIEdWYXJpYW50ICAgICp2YWx1ZSkKK0BAIC0zOTQsMzUgKzY1MCw1MCBA QCBzdGF0aWMgdm9pZAogIGJ1c19pYnVzX2ltcGxfc2V0X3ByZWxvYWRfZW5naW5lcyAoQnVzSUJ1 c0ltcGwgKmlidXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVmFyaWFu dCAgICAqdmFsdWUpCiAgewpAQCAtMjIwLDE0ICszMzYsMTQgQEAgaW5kZXggOGQ0ZWMzNi4uMGNh YThjNyAxMDA2NDQKICsvKioKICsgKiBidXNfaWJ1c19pbXBsX3NldF9wcmVsb2FkX2VuZ2luZV9t b2RlOgogKyAqCi0rICogQSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiAicHJlbG9hZF9lbmdp bmVzX21vZGUiIGNvbmZpZyBpcyB1cGRhdGVkLgorKyAqIEEgZnVuY3Rpb24gdG8gYmUgY2FsbGVk IHdoZW4gInByZWxvYWRfZW5naW5lX21vZGUiIGNvbmZpZyBpcyB1cGRhdGVkLgogKyAqLwogK3N0 YXRpYyB2b2lkCiArYnVzX2lidXNfaW1wbF9zZXRfcHJlbG9hZF9lbmdpbmVfbW9kZSAoQnVzSUJ1 c0ltcGwgKmlidXMsCiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1Zh cmlhbnQgICAgKnZhbHVlKQogK3sKICsjaWZuZGVmIE9TX0NIUk9NRU9TCi0rICAgIGdpbnQgcHJl bG9hZF9lbmdpbmVfbW9kZSA9IElCVVNfUFJFTE9BRF9FTkdJTkVfTU9ERV9MQU5HX1JFTEFUSVZF OworKyAgICBnaW50IHByZWxvYWRfZW5naW5lX21vZGUgPSBJQlVTX1BSRUxPQURfRU5HSU5FX01P REVfVVNFUjsKICAKIC0gICAgaWYgKGlidXMtPmVuZ2luZV9saXN0KSB7CiAtICAgICAgICBCdXND b21wb25lbnQgKmNvbXBvbmVudCA9IGJ1c19jb21wb25lbnRfZnJvbV9lbmdpbmVfZGVzYyAoKElC dXNFbmdpbmVEZXNjICopIGlidXMtPmVuZ2luZV9saXN0LT5kYXRhKTsKQEAgLTI1Niw3ICszNzIs NyBAQCBpbmRleCA4ZDRlYzM2Li4wY2FhOGM3IDEwMDY0NAogIH0KICAKICAvKioKLUBAIC01MDMs ODkgKzY1Nyw0OCBAQCBidXNfaWJ1c19pbXBsX3NldF91c2VfZ2xvYmFsX2VuZ2luZSAoQnVzCitA QCAtNTAzLDg5ICs3NzQsNDcgQEAgYnVzX2lidXNfaW1wbF9zZXRfdXNlX2dsb2JhbF9lbmdpbmUg KEJ1c0lCdXNJbXBsICppYnVzLAogICAgICB9CiAgfQogIApAQCAtMjc5LDcgKzM5NSw4IEBAIGlu ZGV4IDhkNGVjMzYuLjBjYWE4YzcgMTAwNjQ0CiArICogVGhlIGlkZWEgaXMsIGlmIHVzZXJzIGRv bid0IGN1c3RvbWl6ZSB0aGUgcHJlbG9hZF9lbmdpbmVzIHdpdGggaWJ1cy1zZXR1cCwKICsgKiB1 c2VycyB3b3VsZCBwcmVmZXIgdG8gbG9hZCB0aGUgc3lzdGVtIGRlZmF1bHQgZW5naW5lcyBhZ2Fp biBieSBsb2dpbi4KICsgKiBUaGUgZ2NvbmYgdmFsdWUgJ3ByZWxvYWRfZW5naW5lX21vZGUnIGlz Ci0rICogSUJVU19QUkVMT0FEX0VOR0lORV9NT0RFX1VTRVIgYnkgZGVmYXVsdC4KKysgKiBJQlVT X1BSRUxPQURfRU5HSU5FX01PREVfVVNFUiBieSBkZWZhdWx0IGJ1dCBzZXQKKysgKiBJQlVTX1BS RUxPQURfRU5HSU5FX01PREVfTEFOR19SRUxBVElWRSBmb3IgdGhlIGluaXRpYWwgbG9naW4uCiAr ICogSWYgcHJlbG9hZF9lbmdpbmVfbW9kZSBpcyBJQlVTX1BSRUxPQURfRU5HSU5FX01PREVfTEFO R19SRUxBVElWRSwKICsgKiBpYnVzLWRhZW1vbiBsb2FkcyB0aGUgc3lzdGVtIHByZWxvYWQgZW5n aW5lcyBieSBsYW5ncy4KICsgKiBJZiBwcmVsb2FkX2VuZ2luZV9tb2RlIGlzIElCVVNfUFJFTE9B RF9FTkdJTkVfTU9ERV9VU0VSLApAQCAtMjg4LDggKzQwNSw2IEBAIGluZGV4IDhkNGVjMzYuLjBj YWE4YzcgMTAwNjQ0CiArICogb24gaWJ1cy1zZXR1cCwgaWJ1cy1zZXR1cCBzZXRzICdwcmVsb2Fk X2VuZ2luZV9tb2RlJyBhcwogKyAqIElCVVNfUFJFTE9BRF9FTkdJTkVfTU9ERV9VU0VSIGFuZCB1 c2VycyBjYW4gY3VzdG9taXplIHRoZSB2YWx1ZQogKyAqICdwcmVsb2FkX2VuZ2luZXMnLgotKyAq IExvYWRpbmcgc3lzdGVtIGRlZmF1bHQgbWF5IHNwZW5kIHRoZSBzdGFydHVwIHRpbWUuIElmIHlv dSBtaW5kIGl0LAotKyAqIHlvdXIgZGlzdCBtYXkgbGlrZSB0byBwdXQgVFJVRSBpbiAndXNlX2xv Y2FsX3ByZWxvYWRfZW5naW5lcycgdmFsdWUuCiAgICovCiAgc3RhdGljIHZvaWQKICBidXNfaWJ1 c19pbXBsX3NldF9kZWZhdWx0X3ByZWxvYWRfZW5naW5lcyAoQnVzSUJ1c0ltcGwgKmlidXMpCkBA IC0yOTgsNyArNDEzLDcgQEAgaW5kZXggOGQ0ZWMzNi4uMGNhYThjNyAxMDA2NDQKIC0gICAgZ19h c3NlcnQgKEJVU19JU19JQlVTX0lNUEwgKGlidXMpKTsKIC0KICAgICAgc3RhdGljIGdib29sZWFu IGRvbmUgPSBGQUxTRTsKLSsgICAgZ2ludCBwcmVsb2FkX2VuZ2luZV9tb2RlID0gSUJVU19QUkVM T0FEX0VOR0lORV9NT0RFX0xBTkdfUkVMQVRJVkU7CisrICAgIGdpbnQgcHJlbG9hZF9lbmdpbmVf bW9kZSA9IElCVVNfUFJFTE9BRF9FTkdJTkVfTU9ERV9VU0VSOwogKwogKyAgICBnX2Fzc2VydCAo QlVTX0lTX0lCVVNfSU1QTCAoaWJ1cykpOwogIApAQCAtMzY5LDE2ICs0ODQsMTYgQEAgaW5kZXgg OGQ0ZWMzNi4uMGNhYThjNyAxMDA2NDQKICAjZW5kaWYKICB9CiAgCi1AQCAtNjAxLDYgKzcxNCw3 IEBAIGNvbnN0IHN0YXRpYyBzdHJ1Y3QgeworQEAgLTYwMSw2ICs4MzAsNyBAQCBjb25zdCBzdGF0 aWMgc3RydWN0IHsKICAgICAgeyAiZ2VuZXJhbC9ob3RrZXkiLCAibmV4dF9lbmdpbmVfaW5fbWVu dSIsICAgYnVzX2lidXNfaW1wbF9zZXRfbmV4dF9lbmdpbmVfaW5fbWVudSB9LAogICAgICB7ICJn ZW5lcmFsL2hvdGtleSIsICJwcmV2aW91c19lbmdpbmUiLCAgICAgICBidXNfaWJ1c19pbXBsX3Nl dF9wcmV2aW91c19lbmdpbmUgfSwKICAgICAgeyAiZ2VuZXJhbCIsICJwcmVsb2FkX2VuZ2luZXMi LCAgICAgICAgICAgICAgYnVzX2lidXNfaW1wbF9zZXRfcHJlbG9hZF9lbmdpbmVzIH0sCi0rICAg IHsgImdlbmVyYWwiLCAicHJlbG9hZF9lbmdpbmVzX21vZGUiLCAgICAgICAgIGJ1c19pYnVzX2lt cGxfc2V0X3ByZWxvYWRfZW5naW5lX21vZGUgfSwKKysgICAgeyAiZ2VuZXJhbCIsICJwcmVsb2Fk X2VuZ2luZV9tb2RlIiwgICAgICAgICAgYnVzX2lidXNfaW1wbF9zZXRfcHJlbG9hZF9lbmdpbmVf bW9kZSB9LAogICAgICB7ICJnZW5lcmFsIiwgInVzZV9zeXN0ZW1fa2V5Ym9hcmRfbGF5b3V0Iiwg ICBidXNfaWJ1c19pbXBsX3NldF91c2Vfc3lzX2xheW91dCB9LAogICAgICB7ICJnZW5lcmFsIiwg InVzZV9nbG9iYWxfZW5naW5lIiwgICAgICAgICAgICBidXNfaWJ1c19pbXBsX3NldF91c2VfZ2xv YmFsX2VuZ2luZSB9LAogICAgICB7ICJnZW5lcmFsIiwgImVtYmVkX3ByZWVkaXRfdGV4dCIsICAg ICAgICAgICBidXNfaWJ1c19pbXBsX3NldF9lbWJlZF9wcmVlZGl0X3RleHQgfSwKIGRpZmYgLS1n aXQgYS9kYXRhL2lidXMuc2NoZW1hcy5pbiBiL2RhdGEvaWJ1cy5zY2hlbWFzLmluCi1pbmRleCA3 Y2E0ODk5Li4zOTkyMmEwIDEwMDY0NAoraW5kZXggN2NhNDg5OS4uZDQzMzRlMSAxMDA2NDQKIC0t LSBhL2RhdGEvaWJ1cy5zY2hlbWFzLmluCiArKysgYi9kYXRhL2lidXMuc2NoZW1hcy5pbgogQEAg LTEzLDYgKzEzLDE5IEBACkBAIC0zODksNyArNTA0LDcgQEAgaW5kZXggN2NhNDg5OS4uMzk5MjJh MCAxMDA2NDQKICsgICAgICA8YXBwbHl0bz4vZGVza3RvcC9pYnVzL2dlbmVyYWwvcHJlbG9hZF9l bmdpbmVfbW9kZTwvYXBwbHl0bz4KICsgICAgICA8b3duZXI+aWJ1czwvb3duZXI+CiArICAgICAg PHR5cGU+aW50PC90eXBlPgotKyAgICAgIDxkZWZhdWx0PjE8L2RlZmF1bHQ+CisrICAgICAgPGRl ZmF1bHQ+MDwvZGVmYXVsdD4KICsgICAgICA8bG9jYWxlIG5hbWU9IkMiPgogKyAgICAgICAgPHNo b3J0PlByZWxvYWQgZW5naW5lIG1vZGU8L3Nob3J0PgogKyAgICAgICAgICAgPGxvbmc+UHJlbG9h ZCBlbmdpbmVzIGFyZSBsb2FkZWQgd2l0aCB0aGlzIG1vZGUuCkBAIC00MDIsNyArNTE3LDcgQEAg aW5kZXggN2NhNDg5OS4uMzk5MjJhMCAxMDA2NDQKICAgICAgICA8YXBwbHl0bz4vZGVza3RvcC9p YnVzL2dlbmVyYWwvaG90a2V5L3RyaWdnZXI8L2FwcGx5dG8+CiAgICAgICAgPG93bmVyPmlidXM8 L293bmVyPgogZGlmZiAtLWdpdCBhL2lidXMvY29tbW9uLnB5IGIvaWJ1cy9jb21tb24ucHkKLWlu ZGV4IGUxMDVmMTguLjIwYzA3MTAgMTAwNjQ0CitpbmRleCA2NDgzYWFlLi4xMjdlZDkzIDEwMDY0 NAogLS0tIGEvaWJ1cy9jb21tb24ucHkKICsrKyBiL2lidXMvY29tbW9uLnB5CiBAQCAtNDAsNiAr NDAsOCBAQCBfX2FsbF9fID0gKApAQCAtNDI2LDEwICs1NDEsMTggQEAgaW5kZXggZTEwNWYxOC4u MjBjMDcxMCAxMDA2NDQKICAgICAgcGFzcwogIAogZGlmZiAtLWdpdCBhL3NldHVwL21haW4ucHkg Yi9zZXR1cC9tYWluLnB5Ci1pbmRleCA3ZjRhMDQwLi45Y2RjZTAyIDEwMDY0NAoraW5kZXggN2Y0 YTA0MC4uMTkyZmI4OCAxMDA2NDQKIC0tLSBhL3NldHVwL21haW4ucHkKICsrKyBiL3NldHVwL21h aW4ucHkKLUBAIC0yMTMsMTUgKzIxMywyMiBAQCBjbGFzcyBTZXR1cChvYmplY3QpOgorQEAgLTky LDYgKzkyLDcgQEAgY2xhc3MgU2V0dXAob2JqZWN0KToKKyAgICAgICAgICMga2V5Ym9hcmQgc2hv cnRjdXQKKyAgICAgICAgICMgdHJpZ2dlcgorICAgICAgICAgc2VsZi5fX2NvbmZpZyA9IHNlbGYu X19idXMuZ2V0X2NvbmZpZygpCisrICAgICAgICBzZWxmLl9fY29uZmlnLmNvbm5lY3QoInZhbHVl LWNoYW5nZWQiLCBzZWxmLl9fY29uZmlnX3ZhbHVlX2NoYW5nZWRfY2IpCisgICAgICAgICBzaG9y dGN1dHMgPSBzZWxmLl9fY29uZmlnLmdldF92YWx1ZSgKKyAgICAgICAgICAgICAgICAgICAgICAg ICAiZ2VuZXJhbC9ob3RrZXkiLCAidHJpZ2dlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAg aWJ1cy5DT05GSUdfR0VORVJBTF9TSE9SVENVVF9UUklHR0VSX0RFRkFVTFQpCitAQCAtMjEzLDE1 ICsyMTQsMjIgQEAgY2xhc3MgU2V0dXAob2JqZWN0KToKICAgICAgICAgIHNlbGYuX19jaGVja2J1 dHRvbl91c2VfZ2xvYmFsX2VuZ2luZS5jb25uZWN0KCJ0b2dnbGVkIiwgc2VsZi5fX2NoZWNrYnV0 dG9uX3VzZV9nbG9iYWxfZW5naW5lX3RvZ2dsZWRfY2IpCiAgCiAgICAgICAgICAjIGluaXQgZW5n aW5lIHBhZ2UKQEAgLTQ1Nyw3ICs1ODAsNyBAQCBpbmRleCA3ZjRhMDQwLi45Y2RjZTAyIDEwMDY0 NAogIAogICAgICAgICAgc2VsZi5fX3RyZWV2aWV3ID0gc2VsZi5fX2J1aWxkZXIuZ2V0X29iamVj dCgidHJlZXZpZXdfZW5naW5lcyIpCiAgICAgICAgICBzZWxmLl9fdHJlZXZpZXcuc2V0X2VuZ2lu ZXMoZW5naW5lcykKLUBAIC0yNjUsNiArMjcyLDEzIEBAIGNsYXNzIFNldHVwKG9iamVjdCk6CitA QCAtMjY1LDYgKzI3MywyNiBAQCBjbGFzcyBTZXR1cChvYmplY3QpOgogICAgICAgICAgICAgIGVu Z2luZV9uYW1lcyA9IG1hcChsYW1iZGEgZTogZS5uYW1lLCBlbmdpbmVzKQogICAgICAgICAgICAg IHNlbGYuX19jb25maWcuc2V0X2xpc3QoImdlbmVyYWwiLCAicHJlbG9hZF9lbmdpbmVzIiwgZW5n aW5lX25hbWVzLCAicyIpCiAgCkBAIC00NjgsMTAgKzU5MSwyMyBAQCBpbmRleCA3ZjRhMDQwLi45 Y2RjZTAyIDEwMDY0NAogKyAgICAgICAgZW5naW5lcyA9IFt0bXBfZGljdFtuYW1lXSBmb3IgbmFt ZSBpbiBlbmdpbmVfbmFtZXMgaWYgbmFtZSBpbiB0bXBfZGljdF0KICsgICAgICAgIHJldHVybiBl bmdpbmVzCiArCisrICAgIGRlZiBfX2NvbXBhcmVfZGVzY3Moc2VsZiwgZW5naW5lc19hLCBlbmdp bmVzX2IpOgorKyAgICAgICAgZW5naW5lcyA9IGVuZ2luZXNfYQorKyAgICAgICAgY29uY2F0X2Vu Z2luZV9uYW1lcyA9ICIiCisrICAgICAgICBmb3IgZW5naW5lIGluIGVuZ2luZXM6CisrICAgICAg ICAgICAgY29uY2F0X2VuZ2luZV9uYW1lcyA9ICIlczo6JXMiICUgKGNvbmNhdF9lbmdpbmVfbmFt ZXMsIGVuZ2luZS5uYW1lKQorKyAgICAgICAgY29uY2F0X2VuZ2luZV9uYW1lc19hID0gY29uY2F0 X2VuZ2luZV9uYW1lcworKyAgICAgICAgZW5naW5lcyA9IGVuZ2luZXNfYgorKyAgICAgICAgY29u Y2F0X2VuZ2luZV9uYW1lcyA9ICIiCisrICAgICAgICBmb3IgZW5naW5lIGluIGVuZ2luZXM6Cisr ICAgICAgICAgICAgY29uY2F0X2VuZ2luZV9uYW1lcyA9ICIlczo6JXMiICUgKGNvbmNhdF9lbmdp bmVfbmFtZXMsIGVuZ2luZS5uYW1lKQorKyAgICAgICAgY29uY2F0X2VuZ2luZV9uYW1lc19iID0g Y29uY2F0X2VuZ2luZV9uYW1lcworKyAgICAgICAgcmV0dXJuIGNvbmNhdF9lbmdpbmVfbmFtZXNf YSA9PSBjb25jYXRfZW5naW5lX25hbWVzX2IKKysKICAgICAgZGVmIF9fYnV0dG9uX2VuZ2luZV9h ZGRfY2Ioc2VsZiwgYnV0dG9uKToKICAgICAgICAgIGVuZ2luZSA9IHNlbGYuX19jb21ib2JveC5n ZXRfYWN0aXZlX2VuZ2luZSgpCiAgICAgICAgICBzZWxmLl9fdHJlZXZpZXcuYXBwZW5kX2VuZ2lu ZShlbmdpbmUpCi1AQCAtMjc2LDYgKzI5MCwxOSBAQCBjbGFzcyBTZXR1cChvYmplY3QpOgorQEAg LTI3Niw2ICszMDQsMzIgQEAgY2xhc3MgU2V0dXAob2JqZWN0KToKICAgICAgICAgICAgICBhYm91 dC5ydW4oKQogICAgICAgICAgICAgIGFib3V0LmRlc3Ryb3koKQogIApAQCAtNDgzLDYgKzYxOSwx OSBAQCBpbmRleCA3ZjRhMDQwLi45Y2RjZTAyIDEwMDY0NAogKyAgICAgICAgICAgIHNlbGYuX19i dWlsZGVyLmdldF9vYmplY3QoImhib3hfY3VzdG9taXplX2FjdGl2ZV9pbnB1dF9tZXRob2RzIiku c2V0X3NlbnNpdGl2ZShUcnVlKQogKyAgICAgICAgICAgIHNlbGYuX190cmVldmlldy5ub3RpZnko ImVuZ2luZXMiKQogKyAgICAgICAgZWxzZToKKysgICAgICAgICAgICBtZXNzYWdlID0gXygiVGhl IGxpc3Qgb2YgeW91ciBzYXZlZCBpbnB1dCBtZXRob2RzIHdpbGwgYmUgIiBcCisrICAgICAgICAg ICAgICAgICAgICAgICAgImNsZWFyZWQgaW1tZWRpYXRlbHkgYW5kIHRoZSBsaXN0IHdpbGwgYmUg IiBcCisrICAgICAgICAgICAgICAgICAgICAgICAgImNvbmZpZ3VyZWQgYnkgdGhlIGxvZ2luIGxh bmd1YWdlIGV2ZXJ5IHRpbWUuICIgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICJEbyB5b3Ug YWdyZWUgd2l0aCB0aGlzPyIpCisrICAgICAgICAgICAgZGxnID0gZ3RrLk1lc3NhZ2VEaWFsb2co dHlwZSA9IGd0ay5NRVNTQUdFX1FVRVNUSU9OLAorKyAgICAgICAgICAgICAgICAgICAgYnV0dG9u cyA9IGd0ay5CVVRUT05TX1lFU19OTywKKysgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VfZm9y bWF0ID0gbWVzc2FnZSkKKysgICAgICAgICAgICBpZCA9IGRsZy5ydW4oKQorKyAgICAgICAgICAg IGRsZy5kZXN0cm95KCkKKysgICAgICAgICAgICBzZWxmLl9fZmx1c2hfZ3RrX2V2ZW50cygpCisr ICAgICAgICAgICAgaWYgaWQgIT0gZ3RrLlJFU1BPTlNFX1lFUzoKKysgICAgICAgICAgICAgICAg YnV0dG9uLnNldF9hY3RpdmUoVHJ1ZSkKKysgICAgICAgICAgICAgICAgcmV0dXJuCiArICAgICAg ICAgICAgc2VsZi5fX2NvbmZpZy5zZXRfdmFsdWUoImdlbmVyYWwiLAogKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJwcmVsb2FkX2VuZ2luZV9tb2RlIiwKICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpYnVzLmNvbW1vbi5QUkVMT0FEX0VOR0lORV9NT0RF X0xBTkdfUkVMQVRJVkUpCkBAIC00OTEsNiArNjQwLDE5IEBAIGluZGV4IDdmNGEwNDAuLjljZGNl MDIgMTAwNjQ0CiAgICAgIGRlZiBfX2luaXRfYnVzKHNlbGYpOgogICAgICAgICAgdHJ5OgogICAg ICAgICAgICAgIHNlbGYuX19idXMgPSBpYnVzLkJ1cygpCitAQCAtNDY2LDcgKzUyMCwxMSBAQCBj bGFzcyBTZXR1cChvYmplY3QpOgorICAgICAgICAgc2VsZi5fX2NvbmZpZy5zZXRfdmFsdWUoImdl bmVyYWwiLCAidXNlX2dsb2JhbF9lbmdpbmUiLCB2YWx1ZSkKKyAKKyAgICAgZGVmIF9fY29uZmln X3ZhbHVlX2NoYW5nZWRfY2Ioc2VsZiwgYnVzLCBzZWN0aW9uLCBuYW1lLCB2YWx1ZSk6CistICAg ICAgICBwYXNzCisrICAgICAgICBpZiBzZWN0aW9uID09ICdnZW5lcmFsJyBhbmQgbmFtZSA9PSAn cHJlbG9hZF9lbmdpbmVzJzoKKysgICAgICAgICAgICBlbmdpbmVzID0gc2VsZi5fX2dldF9lbmdp bmVfZGVzY3NfZnJvbV9uYW1lcyh2YWx1ZSkKKysgICAgICAgICAgICBjdXJyZW50X2VuZ2luZXMg PSBzZWxmLl9fdHJlZXZpZXcuZ2V0X2VuZ2luZXMoKQorKyAgICAgICAgICAgIGlmIHNlbGYuX19j b21wYXJlX2Rlc2NzKGVuZ2luZXMsIGN1cnJlbnRfZW5naW5lcykgPT0gRmFsc2U6CisrICAgICAg ICAgICAgICAgIHNlbGYuX190cmVldmlldy5zZXRfZW5naW5lcyhlbmdpbmVzKQorIAorICAgICBk ZWYgX19jb25maWdfcmVsb2FkZWRfY2Ioc2VsZiwgYnVzKToKKyAgICAgICAgIHBhc3MKIGRpZmYg LS1naXQgYS9zZXR1cC9zZXR1cC51aSBiL3NldHVwL3NldHVwLnVpCiBpbmRleCBmMWU2ZDBiLi41 NjJjMDkxIDEwMDY0NAogLS0tIGEvc2V0dXAvc2V0dXAudWkKQEAgLTUzOCwxMSArNzAwLDExIEBA IGluZGV4IGYxZTZkMGIuLjU2MmMwOTEgMTAwNjQ0CiAgICAgICAgICAgICAgICAgICAgICA8L2No aWxkPgogICAgICAgICAgICAgICAgICAgIDwvb2JqZWN0PgogZGlmZiAtLWdpdCBhL3NyYy9pYnVz dHlwZXMuaCBiL3NyYy9pYnVzdHlwZXMuaAotaW5kZXggMDM1ZDEyNC4uMGE5ZDdiMiAxMDA2NDQK K2luZGV4IDZhMzE4NDcuLjE0YjQ0ZmMgMTAwNjQ0CiAtLS0gYS9zcmMvaWJ1c3R5cGVzLmgKICsr KyBiL3NyYy9pYnVzdHlwZXMuaAotQEAgLTE3Nyw2ICsxNzcsMTYgQEAgdHlwZWRlZiBlbnVtIHsK LSB9IElCdXNCdXNSZXF1ZXN0TmFtZVJlcGx5OworQEAgLTE4Niw2ICsxODYsMTYgQEAgdHlwZWRl ZiBlbnVtIHsKKyB9IElCdXNFcnJvcjsKICAKICAvKioKICsgKiBJQnVzUHJlbG9hZEVuZ2luZU1v ZGU6CkBAIC01NTksNSArNzIxLDUgQEAgaW5kZXggMDM1ZDEyNC4uMGE5ZDdiMiAxMDA2NDQKICAg KiBAeDogeCBjb29yZGluYXRlLgogICAqIEB5OiB5IGNvb3JkaW5hdGUuCiAtLSAKLTEuNy40LjEK KzEuNy40LjQKIAoKZGlmZiAtLWdpdCBhL2lidXMtNTQxNDkyLXhrYi5wYXRjaCBiL2lidXMtNTQx NDkyLXhrYi5wYXRjaAppbmRleCA5MTAwZDQ4Li4yMWYwNjk0IDEwMDY0NAotLS0gYS9pYnVzLTU0 MTQ5Mi14a2IucGF0Y2gKKysrIGIvaWJ1cy01NDE0OTIteGtiLnBhdGNoCkBAIC0xLDYgKzEsNiBA QAotRnJvbSBiNmI4M2U5NDg0YWJhZDkxMDI3MWIxNTIyMmQzZjc2ZjIwNmExZmY2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQorRnJvbSA3ZmFiOTBhOTk2MmQzYjRmOGVmZjQwY2YwODkzOTg3MzU3 NWQxNTNlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJvbTogZnVqaXdhcmF0IDx0YWthby5m dWppd2FyYTFAZ21haWwuY29tPgotRGF0ZTogV2VkLCAxIEp1biAyMDExIDE4OjI0OjEwICswOTAw CitEYXRlOiBUdWUsIDIxIEp1biAyMDExIDExOjM0OjUyICswOTAwCiBTdWJqZWN0OiBbUEFUQ0hd IEFkZCBYS0IgbGF5b3V0cwogCiAtLS0KQEAgLTEyLDMwICsxMiwzNiBAQCBTdWJqZWN0OiBbUEFU Q0hdIEFkZCBYS0IgbGF5b3V0cwogIGlidXMvX19pbml0X18ucHkgICAgICAgICAgIHwgICAgMiAr CiAgaWJ1cy9idXMucHkgICAgICAgICAgICAgICAgfCAgICAzICsKICBpYnVzL2ludGVyZmFjZS9p aWJ1cy5weSAgICB8ICAgIDMgKwotIGlidXMveGtibGF5b3V0LnB5LmluICAgICAgIHwgIDIyNSAr KysrKysrKysrKysrKwotIGlidXMveGtieG1sLnB5LmluICAgICAgICAgIHwgIDQxMyArKysrKysr KysrKysrKysrKysrKysrKysrKworIGlidXMveGtibGF5b3V0LnB5LmluICAgICAgIHwgIDIyNSAr KysrKysrKysrKysrKysrCisgaWJ1cy94a2J4bWwucHkuaW4gICAgICAgICAgfCAgNDEzICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKwogIHNldHVwL01ha2VmaWxlLmFtICAgICAgICAgIHwg ICAgMSArCiAgc2V0dXAvZW5naW5lY29tYm9ib3gucHkgICAgfCAgICA3ICstCiAgc2V0dXAvbWFp bi5weSAgICAgICAgICAgICAgfCAgICAzICsKLSBzZXR1cC9zZXR1cC51aSAgICAgICAgICAgICB8 ICA2MDkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCi0gc2V0dXAveGti c2V0dXAucHkgICAgICAgICAgfCAgNDU0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisg c2V0dXAvc2V0dXAudWkgICAgICAgICAgICAgfCAgNjA5ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKystCisgc2V0dXAveGtic2V0dXAucHkgICAgICAgICAgfCAgNDU0 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKworIHNyYy9NYWtlZmlsZS5hbSAgICAg ICAgICAgIHwgICAgNSArCisgc3JjL2lidXMuaCAgICAgICAgICAgICAgICAgfCAgICAxICsKICBz cmMvaWJ1c2ZhY3RvcnkuYyAgICAgICAgICB8ICAgMjEgKystCiAgc3JjL2lidXNmYWN0b3J5Lmgg ICAgICAgICAgfCAgICA1ICstCisgc3JjL2lidXN4a2J4bWwuYyAgICAgICAgICAgfCAgNDQwICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisgc3JjL2lidXN4a2J4bWwuaCAgICAgICAg ICAgfCAgMTcyICsrKysrKysrKysrKysKICB1aS9ndGsvcGFuZWwucHkgICAgICAgICAgICB8ICAg MzkgKysrCi0geGtiL01ha2VmaWxlLmFtICAgICAgICAgICAgfCAgMTA0ICsrKysrKysKLSB4a2Iv aWJ1cy1lbmdpbmUteGtiLW1haW4uYyB8ICAzOTcgKysrKysrKysrKysrKysrKysrKysrKysrKwot IHhrYi9pYnVzLWVuZ2luZS14a2ItbWFpbi5oIHwgICA0NiArKysKLSB4a2IvaWJ1cy14a2ItbWFp bi5jICAgICAgICB8ICAxMDUgKysrKysrKwotIHhrYi94a2JsYXlvdXQueG1sLmluICAgICAgIHwg ICAxNiArCisgeGtiL01ha2VmaWxlLmFtICAgICAgICAgICAgfCAgMTA0ICsrKysrKysrCisgeGti L2lidXMtZW5naW5lLXhrYi1tYWluLmMgfCAgMzk3ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrCisgeGtiL2lidXMtZW5naW5lLXhrYi1tYWluLmggfCAgIDQ2ICsrKysKKyB4a2IvaWJ1cy14 a2ItbWFpbi5jICAgICAgICB8ICAxMTIgKysrKysrKysKKyB4a2IveGtibGF5b3V0LnhtbC5pbiAg ICAgICB8ICAgMTYgKysKICB4a2IveGtibGF5b3V0Y29uZmlnLnhtbC5pbiB8ICAgIDYgKwotIHhr Yi94a2JsaWIuYyAgICAgICAgICAgICAgIHwgIDMwMyArKysrKysrKysrKysrKysrKysrCi0geGti L3hrYmxpYi5oICAgICAgICAgICAgICAgfCAgIDQwICsrKwotIHhrYi94a2J4bWwuYyAgICAgICAg ICAgICAgIHwgIDY5NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KwotIHhrYi94a2J4bWwuaCAgICAgICAgICAgICAgIHwgIDE4OSArKysrKysrKysrKysKLSAyOCBm aWxlcyBjaGFuZ2VkLCAzODA4IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCisgeGtiL3hr YmxpYi5jICAgICAgICAgICAgICAgfCAgMzI3ICsrKysrKysrKysrKysrKysrKysrKysrKworIHhr Yi94a2JsaWIuaCAgICAgICAgICAgICAgIHwgICA0MSArKysKKyB4a2IveGtieG1sLmMgICAgICAg ICAgICAgICB8ICAzMzUgKysrKysrKysrKysrKysrKysrKysrKysrCisgeGtiL3hrYnhtbC5oICAg ICAgICAgICAgICAgfCAgMTEwICsrKysrKysrCisgMzIgZmlsZXMgY2hhbmdlZCwgNDAxOCBpbnNl cnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQogIGNyZWF0ZSBtb2RlIDEwMDY0NCBpYnVzL3hrYmxh eW91dC5weS5pbgogIGNyZWF0ZSBtb2RlIDEwMDY0NCBpYnVzL3hrYnhtbC5weS5pbgogIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzZXR1cC94a2JzZXR1cC5weQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMv aWJ1c3hrYnhtbC5jCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pYnVzeGtieG1sLmgKICBjcmVh dGUgbW9kZSAxMDA2NDQgeGtiL01ha2VmaWxlLmFtCiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHhrYi9p YnVzLWVuZ2luZS14a2ItbWFpbi5jCiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHhrYi9pYnVzLWVuZ2lu ZS14a2ItbWFpbi5oCkBAIC00OCw3ICs1NCw3IEBAIFN1YmplY3Q6IFtQQVRDSF0gQWRkIFhLQiBs YXlvdXRzCiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHhrYi94a2J4bWwuaAogCiBkaWZmIC0tZ2l0IGEv TWFrZWZpbGUuYW0gYi9NYWtlZmlsZS5hbQotaW5kZXggMjljNTdlMS4uZGJlMGI2YiAxMDA2NDQK K2luZGV4IDdiZTU1OGIuLjU5ZmJhYmIgMTAwNjQ0CiAtLS0gYS9NYWtlZmlsZS5hbQogKysrIGIv TWFrZWZpbGUuYW0KIEBAIC00Miw2ICs0MiwxMiBAQCBEQUVNT05fRElSUyA9ICAgICAgIFwKQEAg LTczLDcgKzc5LDcgQEAgaW5kZXggMjljNTdlMS4uZGJlMGI2YiAxMDA2NDQKICAJJChOVUxMKQog IAogZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwotaW5kZXggOGRhOGM2 ZS4uY2UxNTI2YyAxMDA2NDQKK2luZGV4IDU1NDRkZmEuLjg1ZTVlMzAgMTAwNjQ0CiAtLS0gYS9j b25maWd1cmUuYWMKICsrKyBiL2NvbmZpZ3VyZS5hYwogQEAgLTE4NSw2ICsxODUsNjAgQEAgZWxz ZQpAQCAtMjk3LDcgKzMwMyw3IEBAIGluZGV4IDY3OGQ1MTcuLjdkZTU2ZmMgMTAwNjQ0CiAgCiBk aWZmIC0tZ2l0IGEvaWJ1cy94a2JsYXlvdXQucHkuaW4gYi9pYnVzL3hrYmxheW91dC5weS5pbgog bmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLjYwOTdlZDEKK2luZGV4IDAwMDAw MDAuLjYzN2Y2YzEKIC0tLSAvZGV2L251bGwKICsrKyBiL2lidXMveGtibGF5b3V0LnB5LmluCiBA QCAtMCwwICsxLDIyNSBAQApAQCAtMzA1LDkgKzMxMSw5IEBAIGluZGV4IDAwMDAwMDAuLjYwOTdl ZDEKICsjCiArIyBpYnVzIC0gVGhlIElucHV0IEJ1cwogKyMKLSsjIENvcHlyaWdodCAoYykgMjAx MCBUYWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KLSsjIENvcHlyaWdo dCAoYykgMjAwNy0yMDEwIFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgotKyMg Q29weXJpZ2h0IChjKSAyMDA3LTIwMTAgUmVkIEhhdCwgSW5jLgorKyMgQ29weXJpZ2h0IChjKSAy MDExIFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgorKyMgQ29weXJp Z2h0IChjKSAyMDExIFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgorKyMgQ29w eXJpZ2h0IChjKSAyMDExIFJlZCBIYXQsIEluYy4KICsjCiArIyBUaGlzIGxpYnJhcnkgaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiArIyBtb2RpZnkgaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0zNzEs NiArMzc3LDE2IEBAIGluZGV4IDAwMDAwMDAuLjYwOTdlZDEKICsgICAgICAgIG9wdGlvbiA9ICcs Jy5qb2luKG9wdGlvbl9hcnJheSkKICsgICAgICAgIHJldHVybiAobGF5b3V0LCBvcHRpb24pCiAr CisrICAgIGRlZiBfX2dldF9vdXRwdXRfZnJvbV9jbWRsaW5lKHNlbGYsIGFyZywgc3RyaW5nKToK KysgICAgICAgIGV4ZWNfY29tbWFuZCA9ICIlcyAlcyIgJSAoc2VsZi5fX2NvbW1hbmQsIGFyZykK KysgICAgICAgIHJldHZhbCA9IE5vbmUKKysgICAgICAgIGZvciBsaW5lIGluIG9zLnBvcGVuKGV4 ZWNfY29tbWFuZCkucmVhZGxpbmVzKCk6CisrICAgICAgICAgICAgbGluZSA9IGxpbmUuc3RyaXAo KQorKyAgICAgICAgICAgIGlmIGxpbmUuc3RhcnRzd2l0aChzdHJpbmcpOgorKyAgICAgICAgICAg ICAgICByZXR2YWwgPSBsaW5lW2xlbihzdHJpbmcpOl0KKysgICAgICAgICAgICAgICAgYnJlYWsK KysgICAgICAgIHJldHVybiByZXR2YWwKKysKICsgICAgZGVmIHVzZV94a2Ioc2VsZiwgZW5hYmxl KToKICsgICAgICAgIGlmIHNlbGYuX19jb21tYW5kID09IE5vbmU6CiArICAgICAgICAgICAgcmV0 dXJuCkBAIC0zNzksMzggKzM5NSwyMiBAQCBpbmRleCAwMDAwMDAwLi42MDk3ZWQxCiArICAgIGRl ZiBnZXRfbGF5b3V0KHNlbGYpOgogKyAgICAgICAgaWYgbm90IHNlbGYuX191c2VfeGtiOgogKyAg ICAgICAgICAgIHJldHVybiBOb25lCi0rICAgICAgICBleGVjX2NvbW1hbmQgPSAiJXMgJXMiICUg KHNlbGYuX19jb21tYW5kLCAiLS1nZXQiKQotKyAgICAgICAgcmV0dmFsID0gTm9uZQotKyAgICAg ICAgZm9yIGxpbmUgaW4gb3MucG9wZW4oZXhlY19jb21tYW5kKS5yZWFkbGluZXMoKToKLSsgICAg ICAgICAgICBsaW5lID0gbGluZS5zdHJpcCgpCi0rICAgICAgICAgICAgaWYgbGluZS5zdGFydHN3 aXRoKCJsYXlvdXQ6ICIpOgotKyAgICAgICAgICAgICAgICByZXR2YWwgPSBsaW5lW2xlbigibGF5 b3V0OiAiKTpdCi0rICAgICAgICAgICAgICAgIGJyZWFrCi0rICAgICAgICByZXR1cm4gcmV0dmFs CisrICAgICAgICByZXR1cm4gc2VsZi5fX2dldF9vdXRwdXRfZnJvbV9jbWRsaW5lKCItLWdldCIs ICJsYXlvdXQ6ICIpCiArCiArICAgIGRlZiBnZXRfbW9kZWwoc2VsZik6CiArICAgICAgICBpZiBu b3Qgc2VsZi5fX3VzZV94a2I6CiArICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSsgICAgICAgIGV4 ZWNfY29tbWFuZCA9ICIlcyAlcyIgJSAoc2VsZi5fX2NvbW1hbmQsICItLWdldCIpCi0rICAgICAg ICByZXR2YWwgPSBOb25lCi0rICAgICAgICBmb3IgbGluZSBpbiBvcy5wb3BlbihleGVjX2NvbW1h bmQpLnJlYWRsaW5lcygpOgotKyAgICAgICAgICAgIGxpbmUgPSBsaW5lLnN0cmlwKCkKLSsgICAg ICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoIm1vZGVsOiAiKToKLSsgICAgICAgICAgICAgICAg cmV0dmFsID0gbGluZVtsZW4oIm1vZGVsOiAiKTpdCi0rICAgICAgICAgICAgICAgIGJyZWFrCi0r ICAgICAgICByZXR1cm4gcmV0dmFsCisrICAgICAgICByZXR1cm4gc2VsZi5fX2dldF9vdXRwdXRf ZnJvbV9jbWRsaW5lKCItLWdldCIsICJtb2RlbDogIikKICsKICsgICAgZGVmIGdldF9vcHRpb24o c2VsZik6CiArICAgICAgICBpZiBub3Qgc2VsZi5fX3VzZV94a2I6CiArICAgICAgICAgICAgcmV0 dXJuIE5vbmUKLSsgICAgICAgIGV4ZWNfY29tbWFuZCA9ICIlcyAlcyIgJSAoc2VsZi5fX2NvbW1h bmQsICItLWdldCIpCi0rICAgICAgICByZXR2YWwgPSBOb25lCi0rICAgICAgICBmb3IgbGluZSBp biBvcy5wb3BlbihleGVjX2NvbW1hbmQpLnJlYWRsaW5lcygpOgotKyAgICAgICAgICAgIGxpbmUg PSBsaW5lLnN0cmlwKCkKLSsgICAgICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoIm9wdGlvbjog Iik6Ci0rICAgICAgICAgICAgICAgIHJldHZhbCA9IGxpbmVbbGVuKCJvcHRpb246ICIpOl0KLSsg ICAgICAgICAgICAgICAgYnJlYWsKLSsgICAgICAgIHJldHVybiByZXR2YWwKKysgICAgICAgIHJl dHVybiBzZWxmLl9fZ2V0X291dHB1dF9mcm9tX2NtZGxpbmUoIi0tZ2V0IiwgIm9wdGlvbjogIikK KysKKysgICAgZGVmIGdldF9ncm91cChzZWxmKToKKysgICAgICAgIGlmIG5vdCBzZWxmLl9fdXNl X3hrYjoKKysgICAgICAgICAgICByZXR1cm4gMAorKyAgICAgICAgcmV0dXJuIGludChzZWxmLl9f Z2V0X291dHB1dF9mcm9tX2NtZGxpbmUoIi0tZ2V0LWdyb3VwIiwgImdyb3VwOiAiKSkKICsKICsg ICAgZGVmIHNldF9sYXlvdXQoc2VsZiwgbGF5b3V0PSJkZWZhdWx0IiwgbW9kZWw9ImRlZmF1bHQi LCBvcHRpb249ImRlZmF1bHQiKToKICsgICAgICAgIGlmIG5vdCBzZWxmLl9fdXNlX3hrYjoKQEAg LTUyMCw2ICs1MjAsMTIgQEAgaW5kZXggMDAwMDAwMC4uNjA5N2VkMQogKyAgICAgICAgICAgIHNl bGYuX19kZWZhdWx0X29wdGlvbiA9IG9wdGlvbgogKyAgICAgICAgICAgIHNlbGYuX190aW1lX2xh Z19zZXNzaW9uX3hrYl9vcHRpb24gPSBGYWxzZQogKworKyAgICBkZWYgZ2V0X2RlZmF1bHRfbGF5 b3V0KHNlbGYpOgorKyAgICAgICAgcmV0dXJuIFtzZWxmLl9fZGVmYXVsdF9sYXlvdXQsIHNlbGYu X19kZWZhdWx0X21vZGVsXTsKKysKKysgICAgZGVmIGdldF9kZWZhdWx0X29wdGlvbihzZWxmKToK KysgICAgICAgIHJldHVybiBzZWxmLl9fZGVmYXVsdF9vcHRpb24KKysKICsgICAgZGVmIHJlbG9h ZF9kZWZhdWx0X2xheW91dChzZWxmKToKICsgICAgICAgIGlmIG5vdCBzZWxmLl9fdXNlX3hrYjoK ICsgICAgICAgICAgICByZXR1cm4KQEAgLTUyOCw3ICs1MzQsNyBAQCBpbmRleCAwMDAwMDAwLi42 MDk3ZWQxCiArICAgICAgICBzZWxmLl9fZGVmYXVsdF9vcHRpb24gPSBzZWxmLmdldF9vcHRpb24o KQogZGlmZiAtLWdpdCBhL2lidXMveGtieG1sLnB5LmluIGIvaWJ1cy94a2J4bWwucHkuaW4KIG5l dyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi41N2Y1NGRhCitpbmRleCAwMDAwMDAw Li43ZTVhNDRlCiAtLS0gL2Rldi9udWxsCiArKysgYi9pYnVzL3hrYnhtbC5weS5pbgogQEAgLTAs MCArMSw0MTMgQEAKQEAgLTUzNiw5ICs1NDIsOSBAQCBpbmRleCAwMDAwMDAwLi41N2Y1NGRhCiAr IwogKyMgaWJ1cyAtIFRoZSBJbnB1dCBCdXMKICsjCi0rIyBDb3B5cmlnaHQgKGMpIDIwMTAgVGFr YW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci0rIyBDb3B5cmlnaHQgKGMp IDIwMDctMjAxMCBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KLSsjIENvcHly aWdodCAoYykgMjAwNy0yMDEwIFJlZCBIYXQsIEluYy4KKysjIENvcHlyaWdodCAoYykgMjAxMSBU YWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KKysjIENvcHlyaWdodCAo YykgMjAxMSBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KKysjIENvcHlyaWdo dCAoYykgMjAxMSBSZWQgSGF0LCBJbmMuCiArIwogKyMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKyMgbW9kaWZ5IGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtMTY2NCw3ICsx NjcwLDcgQEAgaW5kZXggMGE2OWRmOC4uZjFlNmQwYiAxMDA2NDQKICA8L2ludGVyZmFjZT4KIGRp ZmYgLS1naXQgYS9zZXR1cC94a2JzZXR1cC5weSBiL3NldHVwL3hrYnNldHVwLnB5CiBuZXcgZmls ZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uNzRkNTIxMgoraW5kZXggMDAwMDAwMC4uMTY4 NWJmZgogLS0tIC9kZXYvbnVsbAogKysrIGIvc2V0dXAveGtic2V0dXAucHkKIEBAIC0wLDAgKzEs NDU0IEBACkBAIC0xNjcyLDkgKzE2NzgsOSBAQCBpbmRleCAwMDAwMDAwLi43NGQ1MjEyCiArIwog KyMgaWJ1cyAtIFRoZSBJbnB1dCBCdXMKICsjCi0rIyBDb3B5cmlnaHQgKGMpIDIwMTAgVGFrYW8g RnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci0rIyBDb3B5cmlnaHQgKGMpIDIw MDctMjAxMCBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KLSsjIENvcHlyaWdo dCAoYykgMjAwNy0yMDEwIFJlZCBIYXQsIEluYy4KKysjIENvcHlyaWdodCAoYykgMjAxMSBUYWth byBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KKysjIENvcHlyaWdodCAoYykg MjAxMSBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KKysjIENvcHlyaWdodCAo YykgMjAxMSBSZWQgSGF0LCBJbmMuCiArIwogKyMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKyMgbW9kaWZ5IGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtMjEyMiw2ICsyMTI4 LDM0IEBAIGluZGV4IDAwMDAwMDAuLjc0ZDUyMTIKICsgICAgICAgICAgICAgICAgbGFiZWwuc2V0 X3RleHQobGFiZWwuZ2V0X3RleHQoKSkKICsgICAgICAgIGV4cGFuZGVyLnNldF9kYXRhKCJjaGVj a2VkIiwgY2hlY2tlZCkKICsKK2RpZmYgLS1naXQgYS9zcmMvTWFrZWZpbGUuYW0gYi9zcmMvTWFr ZWZpbGUuYW0KK2luZGV4IGE1M2JkMjMuLjY0NTQ1MjIgMTAwNjQ0CistLS0gYS9zcmMvTWFrZWZp bGUuYW0KKysrKyBiL3NyYy9NYWtlZmlsZS5hbQorQEAgLTE4NCw2ICsxODQsMTEgQEAgdHlwZWxp YnNfREFUQSA9ICQoSU5UUk9TUEVDVElPTl9HSVJTOi5naXI9LnR5cGVsaWIpCisgQ0xFQU5GSUxF UyArPSAkKGRpc3RfZ2lyX0RBVEEpICQodHlwZWxpYnNfREFUQSkKKyBlbmRpZgorIAorK2lmIEVO QUJMRV9YS0IKKytpYnVzX3NvdXJjZXMgKz0gaWJ1c3hrYnhtbC5jCisraWJ1c19oZWFkZXJzICs9 IGlidXN4a2J4bWwuaAorK2VuZGlmCisrCisgIyBnZW4gZW51bSB0eXBlcworIGlidXNlbnVtdHlw ZXMuaDogJChpYnVzX2hlYWRlcnMpIGlidXNlbnVtdHlwZXMuaC50ZW1wbGF0ZQorIAkkKEFNX1Zf R0VOKSAoIHRvcF9idWlsZGRpcj1gY2QgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGA7IFwKK2RpZmYg LS1naXQgYS9zcmMvaWJ1cy5oIGIvc3JjL2lidXMuaAoraW5kZXggYzQwOGYzZC4uNmJiOWZmNSAx MDA2NDQKKy0tLSBhL3NyYy9pYnVzLmgKKysrKyBiL3NyYy9pYnVzLmgKK0BAIC00NCw2ICs0NCw3 IEBACisgI2luY2x1ZGUgPGlidXNrZXltYXAuaD4KKyAjaW5jbHVkZSA8aWJ1c2VudW10eXBlcy5o PgorICNpbmNsdWRlIDxpYnVzaG90a2V5Lmg+CisrI2luY2x1ZGUgPGlidXN4a2J4bWwuaD4KKyAj aW5jbHVkZSA8aWJ1c3htbC5oPgorICNpbmNsdWRlIDxpYnVzZW5naW5lZGVzYy5oPgorICNpbmNs dWRlIDxpYnVzb2JzZXJ2ZWRwYXRoLmg+CiBkaWZmIC0tZ2l0IGEvc3JjL2lidXNmYWN0b3J5LmMg Yi9zcmMvaWJ1c2ZhY3RvcnkuYwogaW5kZXggMTFkOWE2ZC4uNzc3MDIxNiAxMDA2NDQKIC0tLSBh L3NyYy9pYnVzZmFjdG9yeS5jCkBAIC0yMjAyLDIxOSArMjIzNiwxOCBAQCBpbmRleCA0N2MwNmUw Li4xMDIwODFjIDEwMDY0NAogIH07CiAgCiAgLyoqCi1kaWZmIC0tZ2l0IGEvdWkvZ3RrL3BhbmVs LnB5IGIvdWkvZ3RrL3BhbmVsLnB5Ci1pbmRleCA5MGJlMWQ1Li5kZTY0OTIwIDEwMDY0NAotLS0t IGEvdWkvZ3RrL3BhbmVsLnB5Ci0rKysgYi91aS9ndGsvcGFuZWwucHkKLUBAIC0xMzIsNiArMTMy LDIyIEBAIGNsYXNzIFBhbmVsKGlidXMuUGFuZWxCYXNlKToKLSAgICAgICAgIHNlbGYuX19jb25m aWdfbG9hZF9zaG93X2ltX25hbWUoKQotICAgICAgICAgIyBzZWxmLl9fYnVzLnJlcXVlc3RfbmFt ZShpYnVzLnBhbmVsLklCVVNfU0VSVklDRV9QQU5FTCwgMCkKLSAKLSsgICAgICAgICMgaW5pdCB4 a2IKLSsgICAgICAgIHNlbGYuX194a2JsYXlvdXQgPSBpYnVzLlhLQkxheW91dChzZWxmLl9fY29u ZmlnKQotKyAgICAgICAgdXNlX3hrYiA9IHNlbGYuX19jb25maWcuZ2V0X3ZhbHVlKCJnZW5lcmFs IiwgInVzZV9zeXN0ZW1fa2V5Ym9hcmRfbGF5b3V0IiwgRmFsc2UpCi0rICAgICAgICBpZiBub3Qg dXNlX3hrYjoKLSsgICAgICAgICAgICBzZWxmLl9feGtibGF5b3V0LnVzZV94a2IodXNlX3hrYikK LSsgICAgICAgIHZhbHVlID0gc3RyKHNlbGYuX19jb25maWcuZ2V0X3ZhbHVlKCJnZW5lcmFsIiwg InN5c3RlbV9rZXlib2FyZF9sYXlvdXQiLCAnJykpCi0rICAgICAgICBpZiB2YWx1ZSA9PSAnJzoK LSsgICAgICAgICAgICB2YWx1ZSA9ICdkZWZhdWx0JwotKyAgICAgICAgaWYgdmFsdWUgIT0gJ2Rl ZmF1bHQnOgotKyAgICAgICAgICAgIHNlbGYuX194a2JsYXlvdXQuc2V0X2RlZmF1bHRfbGF5b3V0 KHZhbHVlKQotKyAgICAgICAgdmFsdWUgPSBzdHIoc2VsZi5fX2NvbmZpZy5nZXRfdmFsdWUoImdl bmVyYWwiLCAic3lzdGVtX2tleWJvYXJkX29wdGlvbiIsICcnKSkKLSsgICAgICAgIGlmIHZhbHVl ID09ICcnOgotKyAgICAgICAgICAgIHZhbHVlID0gJ2RlZmF1bHQnCi0rICAgICAgICBpZiB2YWx1 ZSAhPSAnZGVmYXVsdCc6Ci0rICAgICAgICAgICAgc2VsZi5fX3hrYmxheW91dC5zZXRfZGVmYXVs dF9vcHRpb24odmFsdWUpCi0rCi0gICAgIGRlZiBzZXRfY3Vyc29yX2xvY2F0aW9uKHNlbGYsIHgs IHksIHcsIGgpOgotICAgICAgICAgc2VsZi5fX2NhbmRpZGF0ZV9wYW5lbC5zZXRfY3Vyc29yX2xv Y2F0aW9uKHgsIHksIHcsIGgpCi0gCi1AQCAtMjI2LDE0ICsyNDIsMjAgQEAgY2xhc3MgUGFuZWwo aWJ1cy5QYW5lbEJhc2UpOgotICAgICAgICAgaWYgbm90IGVuYWJsZWQ6Ci0gICAgICAgICAgICAg c2VsZi5fX3NldF9pbV9pY29uKElDT05fS0VZQk9BUkQpCi0gICAgICAgICAgICAgc2VsZi5fX3Nl dF9pbV9uYW1lKE5vbmUpCi0rICAgICAgICAgICAgaWYgc2VsZi5fX2J1cy5nZXRfdXNlX3N5c19s YXlvdXQoKToKLSsgICAgICAgICAgICAgICAgc2VsZi5fX3hrYmxheW91dC5zZXRfbGF5b3V0KCkK LSAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgZW5naW5lID0gc2VsZi5fX2ZvY3VzX2ljLmdl dF9lbmdpbmUoKQotICAgICAgICAgICAgIGlmIGVuZ2luZToKLSAgICAgICAgICAgICAgICAgc2Vs Zi5fX3NldF9pbV9pY29uKGVuZ2luZS5pY29uKQotICAgICAgICAgICAgICAgICBzZWxmLl9fc2V0 X2ltX25hbWUoZW5naW5lLmxvbmduYW1lKQotKyAgICAgICAgICAgICAgICBpZiBzZWxmLl9fYnVz LmdldF91c2Vfc3lzX2xheW91dCgpOgotKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fX3hrYmxh eW91dC5zZXRfbGF5b3V0KHNlbGYuX19lbmdpbmVfZ2V0X2xheW91dF93cmFwcGVyKGVuZ2luZSkp Ci0gICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgc2VsZi5fX3NldF9pbV9pY29u KElDT05fS0VZQk9BUkQpCi0gICAgICAgICAgICAgICAgIHNlbGYuX19zZXRfaW1fbmFtZShOb25l KQotKyAgICAgICAgICAgICAgICBpZiBzZWxmLl9fYnVzLmdldF91c2Vfc3lzX2xheW91dCgpOgot KyAgICAgICAgICAgICAgICAgICAgc2VsZi5fX3hrYmxheW91dC5zZXRfbGF5b3V0KCkKLSAgICAg ICAgIHNlbGYuX19sYW5ndWFnZV9iYXIuZm9jdXNfaW4oKQotIAotICAgICBkZWYgZm9jdXNfb3V0 KHNlbGYsIGljKToKLUBAIC0yNDMsNiArMjY1LDggQEAgY2xhc3MgUGFuZWwoaWJ1cy5QYW5lbEJh c2UpOgotICAgICAgICAgc2VsZi5fX2xhbmd1YWdlX2Jhci5mb2N1c19vdXQoKQotICAgICAgICAg c2VsZi5fX3NldF9pbV9pY29uKElDT05fS0VZQk9BUkQpCi0gICAgICAgICBzZWxmLl9fc2V0X2lt X25hbWUoTm9uZSkKLSsgICAgICAgIGlmIHNlbGYuX19idXMuZ2V0X3VzZV9zeXNfbGF5b3V0KCk6 Ci0rICAgICAgICAgICAgc2VsZi5fX3hrYmxheW91dC5zZXRfbGF5b3V0KCkKLSAKLSAgICAgZGVm IHN0YXRlX2NoYW5nZWQoc2VsZik6Ci0gICAgICAgICBpZiBub3Qgc2VsZi5fX2ZvY3VzX2ljOgot QEAgLTI1NSwxNCArMjc5LDIwIEBAIGNsYXNzIFBhbmVsKGlidXMuUGFuZWxCYXNlKToKLSAgICAg ICAgICAgICBzZWxmLnJlc2V0KCkKLSAgICAgICAgICAgICBzZWxmLl9fc2V0X2ltX2ljb24oSUNP Tl9LRVlCT0FSRCkKLSAgICAgICAgICAgICBzZWxmLl9fc2V0X2ltX25hbWUoTm9uZSkKLSsgICAg ICAgICAgICBpZiBzZWxmLl9fYnVzLmdldF91c2Vfc3lzX2xheW91dCgpOgotKyAgICAgICAgICAg ICAgICBzZWxmLl9feGtibGF5b3V0LnNldF9sYXlvdXQoKQotICAgICAgICAgZWxzZToKLSAgICAg ICAgICAgICBlbmdpbmUgPSBzZWxmLl9fZm9jdXNfaWMuZ2V0X2VuZ2luZSgpCi0gICAgICAgICAg ICAgaWYgZW5naW5lOgotICAgICAgICAgICAgICAgICBzZWxmLl9fc2V0X2ltX2ljb24oZW5naW5l Lmljb24pCi0gICAgICAgICAgICAgICAgIHNlbGYuX19zZXRfaW1fbmFtZShlbmdpbmUubG9uZ25h bWUpCi0rICAgICAgICAgICAgICAgIGlmIHNlbGYuX19idXMuZ2V0X3VzZV9zeXNfbGF5b3V0KCk6 Ci0rICAgICAgICAgICAgICAgICAgICBzZWxmLl9feGtibGF5b3V0LnNldF9sYXlvdXQoc2VsZi5f X2VuZ2luZV9nZXRfbGF5b3V0X3dyYXBwZXIoZW5naW5lKSkKLSAgICAgICAgICAgICBlbHNlOgot ICAgICAgICAgICAgICAgICBzZWxmLl9fc2V0X2ltX2ljb24oSUNPTl9LRVlCT0FSRCkKLSAgICAg ICAgICAgICAgICAgc2VsZi5fX3NldF9pbV9uYW1lKE5vbmUpCi0rICAgICAgICAgICAgICAgIGlm IHNlbGYuX19idXMuZ2V0X3VzZV9zeXNfbGF5b3V0KCk6Ci0rICAgICAgICAgICAgICAgICAgICBz ZWxmLl9feGtibGF5b3V0LnNldF9sYXlvdXQoKQotIAotIAotICAgICBkZWYgcmVzZXQoc2VsZik6 Ci1AQCAtNTQyLDMgKzU3MiwxMiBAQCBjbGFzcyBQYW5lbChpYnVzLlBhbmVsQmFzZSk6Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzPWdsaWIuU1BBV05fRE9fTk9UX1JFQVBf Q0hJTEQpWzBdCi0gICAgICAgICBzZWxmLl9fc2V0dXBfcGlkID0gcGlkCi0gICAgICAgICBnbGli LmNoaWxkX3dhdGNoX2FkZChzZWxmLl9fc2V0dXBfcGlkLCBzZWxmLl9fY2hpbGRfd2F0Y2hfY2Ip Ci0rCi0rICAgIGRlZiBfX2VuZ2luZV9nZXRfbGF5b3V0X3dyYXBwZXIoc2VsZiwgZW5naW5lKToK LSsgICAgICAgICMgVGhpcyBjb2RlIGlzIGZvciB0aGUgYmFjayBjb21wYXRpYmlsaXR5LgotKyAg ICAgICAgIyBTaG91bGQgd2UgcmVtb3ZlIHRoZSBjb2RlcyBhZnRlciBhbGwgSU0gZW5naW5lcyBh cmUgY2hhbmdlZAotKyAgICAgICAgIyB0byAiZGVmYXVsdCIgbGF5b3V0PwotKyAgICAgICAgaWYg ZW5naW5lLm5hbWUgIT0gTm9uZSBhbmQgZW5naW5lLm5hbWUuc3RhcnRzd2l0aCgieGtiOmxheW91 dDoiKToKLSsgICAgICAgICAgICByZXR1cm4gZW5naW5lLmxheW91dAotKyAgICAgICAgZWxzZToK LSsgICAgICAgICAgICByZXR1cm4gImRlZmF1bHQiCi1kaWZmIC0tZ2l0IGEveGtiL01ha2VmaWxl LmFtIGIveGtiL01ha2VmaWxlLmFtCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAw MC4uNjRiMWZjOAotLS0tIC9kZXYvbnVsbAotKysrIGIveGtiL01ha2VmaWxlLmFtCi1AQCAtMCww ICsxLDEwNCBAQAotKyMgdmltOnNldCBub2V0IHRzPTQ6Ci0rIwotKyMgaWJ1cyAtIFRoZSBJbnB1 dCBCdXMKLSsjCi0rIyBDb3B5cmlnaHQgKEMpIDIwMTAgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1 aml3YXJhMUBnbWFpbC5jb20+Ci0rIyBDb3B5cmlnaHQgKGMpIDIwMDctMjAxMCBQZW5nIEh1YW5n IDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KLSsjIENvcHlyaWdodCAoYykgMjAwNy0yMDEwIFJl ZCBIYXQsIEluYy4KLSsjCi0rIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0rIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0rIyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSsjIHZlcnNpb24gMiBvZiB0 aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsjCi0r IyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rIyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsjCi0rIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2 ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0rIyBMaWNlbnNlIGFs b25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZQotKyMgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwKLSsjIEJv c3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQotKwotK2xpYmlidXMgPSAkKHRvcF9idWlsZGRpcikv c3JjL2xpYmlidXMtQElCVVNfQVBJX1ZFUlNJT05ALmxhCi0rCi0rSU5DTFVERVMgPSBcCi0rICAg ICAgICAtSSQodG9wX3NyY2RpcikgXAotKyAgICAgICAgLUkkKHRvcF9zcmNkaXIpL3NyYyBcCi0r CS1ESUJVU19MT0NBTEVESVI9XCIkKGRhdGFkaXIpL2xvY2FsZVwiIFwKLSsJLURMSUJFWEVDRElS PVwiIiQobGliZXhlY2RpcikiXCIgXAotKyAgICAgICAgJChOVUxMKQotKwotK25vaW5zdF9QUk9H UkFNUyA9ICQoVEVTVFMpCi0rbGliZXhlY19QUk9HUkFNUyA9Ci0rRVhUUkFfRElTVCA9Ci0rRElT VENMRUFORklMRVMgPQotKwotK2lmIEVOQUJMRV9YS0IKLStsaWJleGVjX1BST0dSQU1TICs9IGli dXMteGtiCi0raWJ1c194a2JfU09VUkNFUyA9IFwKLSsJaWJ1cy14a2ItbWFpbi5jIFwKLSsJeGti bGliLmggXAotKwl4a2JsaWIuYyBcCi0rCSQoTlVMTCkKLStpYnVzX3hrYl9DRkxBR1MgPSBcCi0r CUBYS0JfQ0ZMQUdTQCBcCi0rCUBYMTFfQ0ZMQUdTQCBcCi0rCUBHTElCMl9DRkxBR1NAIFwKLSsJ JChOVUxMKQotK2lidXNfeGtiX0xEQUREID0gXAotKwlAWEtCX0xJQlNAIFwKLSsJQFgxMV9MSUJT QCBcCi0rCUBHTElCMl9MSUJTQCBcCi0rCSQobGliaWJ1cykgXAotKwkkKE5VTEwpCi0rCi0rbGli ZXhlY19QUk9HUkFNUyArPSBpYnVzLWVuZ2luZS14a2IKLStpYnVzX2VuZ2luZV94a2JfU09VUkNF UyA9IFwKLSsgICAgICAgIGlidXMtZW5naW5lLXhrYi1tYWluLmMgXAotKyAgICAgICAgaWJ1cy1l bmdpbmUteGtiLW1haW4uaCBcCi0rICAgICAgICB4a2J4bWwuYyBcCi0rICAgICAgICB4a2J4bWwu aCBcCi0rICAgICAgICAkKE5VTEwpCi0raWJ1c19lbmdpbmVfeGtiX0NGTEFHUyA9IFwKLSsJQEdM SUIyX0NGTEFHU0AgXAotKwlAR09CSkVDVDJfQ0ZMQUdTQCBcCi0rCUBHQ09ORl9DRkxBR1NAIFwK LSsgICAgICAgICQoTlVMTCkKLStpYnVzX2VuZ2luZV94a2JfTERBREQgPSBcCi0rCUBHTElCMl9M SUJTQCBcCi0rCUBHT0JKRUNUMl9MSUJTQCBcCi0rCUBHQ09ORl9MSUJTQCBcCi0rCSQobGliaWJ1 cykgXAotKyAgICAgICAgJChOVUxMKQotKwotK3hrYmxheW91dGRpciA9ICQoZGF0YWRpcikvaWJ1 cy9jb21wb25lbnQKLSt4a2JsYXlvdXRfaW5fZmlsZXMgPSB4a2JsYXlvdXQueG1sLmluCi0reGti bGF5b3V0X0RBVEEgPSAkKHhrYmxheW91dF9pbl9maWxlczoueG1sLmluPS54bWwpCi0rCi0reGti bGF5b3V0Y29uZmlnZGlyID0gJChkYXRhZGlyKS9pYnVzL3hrYgotK3hrYmxheW91dGNvbmZpZ19p bl9maWxlcyA9IHhrYmxheW91dGNvbmZpZy54bWwuaW4KLSt4a2JsYXlvdXRjb25maWdfREFUQSA9 ICQoeGtibGF5b3V0Y29uZmlnX2luX2ZpbGVzOi54bWwuaW49LnhtbCkKLSsKLSslLnhtbCA6ICUu eG1sLmluCi0rCUBzZWQgLWUgInN8XEBsaWJleGVjZGlyXEB8JChsaWJleGVjZGlyKXxnIiBcCi0r CSAgICAgLWUgInN8XEBkYXRhZGlyXEB8JChkYXRhZGlyKXxnIiBcCi0rCSAgICAgLWUgInN8XEBY S0JfUFJFTE9BRF9MQVlPVVRTXEB8JChYS0JfUFJFTE9BRF9MQVlPVVRTKXxnIiBcCi0rCSQ8ID4g JEAKLSsKLStJTkNMVURFUyArPSBcCi0rCS1EWEtCTEFZT1VUQ09ORklHX0ZJTEU9XCIiJCh4a2Js YXlvdXRjb25maWdkaXIpLyQoeGtibGF5b3V0Y29uZmlnX0RBVEEpIlwiIFwKLSsJJChOVUxMKQot KwotK0VYVFJBX0RJU1QgKz0gXAotKyAgICAgICAgJCh4a2JsYXlvdXRfaW5fZmlsZXMpIFwKLSsg ICAgICAgICQoeGtibGF5b3V0Y29uZmlnX2luX2ZpbGVzKSBcCi0rICAgICAgICAkKE5VTEwpCi0r Ci0rRElTVENMRUFORklMRVMgKz0gXAotKyAgICAgICAgJCh4a2JsYXlvdXRfREFUQSkgXAotKyAg ICAgICAgJCh4a2JsYXlvdXRjb25maWdfREFUQSkgXAotKyAgICAgICAgJChOVUxMKQotKwotK2Vu ZGlmCi1kaWZmIC0tZ2l0IGEveGtiL2lidXMtZW5naW5lLXhrYi1tYWluLmMgYi94a2IvaWJ1cy1l bmdpbmUteGtiLW1haW4uYworZGlmZiAtLWdpdCBhL3NyYy9pYnVzeGtieG1sLmMgYi9zcmMvaWJ1 c3hrYnhtbC5jCiBuZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uZTE4NjFlOAor aW5kZXggMDAwMDAwMC4uYzYzMGViOQogLS0tIC9kZXYvbnVsbAotKysrIGIveGtiL2lidXMtZW5n aW5lLXhrYi1tYWluLmMKLUBAIC0wLDAgKzEsMzk3IEBACisrKysgYi9zcmMvaWJ1c3hrYnhtbC5j CitAQCAtMCwwICsxLDQ0MCBAQAogKy8qIC0qLSBtb2RlOiBDOyBjLWJhc2ljLW9mZnNldDogNDsg aW5kZW50LXRhYnMtbW9kZTogbmlsOyAtKi0gKi8KICsvKiB2aW06c2V0IGV0IHN0cz00OiAqLwog Ky8qIGJ1cyAtIFRoZSBJbnB1dCBCdXMKLSsgKiBDb3B5cmlnaHQgKEMpIDIwMTAgVGFrYW8gRnVq aXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci0rICogQ29weXJpZ2h0IChDKSAyMDA4 LTIwMTAgUGVuZyBIdWFuZyA8c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+Ci0rICogQ29weXJpZ2h0 IChDKSAyMDA4LTIwMTAgUmVkIEhhdCwgSW5jLgorKyAqIENvcHlyaWdodCAoQykgMjAxMSBUYWth byBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KKysgKiBDb3B5cmlnaHQgKEMp IDIwMTEgUGVuZyBIdWFuZyA8c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+CisrICogQ29weXJpZ2h0 IChDKSAyMDExIFJlZCBIYXQsIEluYy4KICsgKgogKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICsgKiBtb2RpZnkgaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC0yNDM1LDI5 ICsyMjY4LDg1NCBAQCBpbmRleCAwMDAwMDAwLi5lMTg2MWU4CiArI2luY2x1ZGUgPGNvbmZpZy5o PgogKyNlbmRpZgogKwotKyNpbmNsdWRlIDxnY29uZi9nY29uZi1jbGllbnQuaD4KLSsjaW5jbHVk ZSA8aWJ1cy5oPgotKyNpbmNsdWRlIDxzdGRsaWIuaD4KKysjaW5jbHVkZSA8Z2xpYi5oPgogKwot KyNpZmRlZiBFTkFCTEVfTkxTCi0rI2luY2x1ZGUgPGxvY2FsZS5oPgotKyNlbmRpZgorKyNpbmNs dWRlICJpYnVzLmgiCiArCi0rI2luY2x1ZGUgImlidXMtZW5naW5lLXhrYi1tYWluLmgiCi0rI2lu Y2x1ZGUgInhrYnhtbC5oIgorKyNpZm5kZWYgWEtCX1JVTEVTX1hNTF9GSUxFCisrI2RlZmluZSBY S0JfUlVMRVNfWE1MX0ZJTEUgIi91c3Ivc2hhcmUvWDExL3hrYi9ydWxlcy9ldmRldi54bWwiCisr I2VuZGlmCiArCi0rI2RlZmluZSBJQlVTX1RZUEVfWEtCX0VOR0lORSAoaWJ1c194a2JfZW5naW5l X2dldF90eXBlICgpKQorKyNkZWZpbmUgSUJVU19YS0JfQ09ORklHX1JFR0lTVFJZX0dFVF9QUklW QVRFKG8pICBcCisrICAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURSAoKG8pLCBJQlVTX1RZ UEVfWEtCX0NPTkZJR19SRUdJU1RSWSwgSUJ1c1hLQkNvbmZpZ1JlZ2lzdHJ5UHJpdmF0ZSkpCiAr Ci0rc3RhdGljIElCdXNCdXMgKmJ1cyA9IE5VTEw7Ci0rc3RhdGljIElCdXNGYWN0b3J5ICpmYWN0 b3J5ID0gTlVMTDsKLStzdGF0aWMgSUJ1c0VuZ2luZUNsYXNzICpwYXJlbnRfY2xhc3MgPSBOVUxM OwotK3N0YXRpYyBnYm9vbGVhbiBpYnVzID0gRkFMU0U7Ci0rc3RhdGljIGdib29sZWFuIHhtbCA9 IEZBTFNFOworK3R5cGVkZWYgc3RydWN0IF9JQnVzWEtCQ29uZmlnUmVnaXN0cnlQcml2YXRlIElC dXNYS0JDb25maWdSZWdpc3RyeVByaXZhdGU7CiArCi0rc3RhdGljIGNvbnN0IEdPcHRpb25FbnRy eSBlbnRyaWVzW10gPQotK3sKLSsgICAgeyAiaWJ1cyIsICdpJywgMCwgR19PUFRJT05fQVJHX05P TkUsICZpYnVzLCAiY29tcG9uZW50IGlzIGV4ZWN1dGVkIGJ5IGlidXMiLCBOVUxMIH0sCi0rICAg IHsgInhtbCIsICd4JywgMCwgR19PUFRJT05fQVJHX05PTkUsICZ4bWwsICJwcmludCBjb21wb25l bnQgeG1sIiwgTlVMTCB9LAorK3N0cnVjdCBfSUJ1c1hLQkNvbmZpZ1JlZ2lzdHJ5UHJpdmF0ZSB7 CisrICAgIEdIYXNoVGFibGUgKmxheW91dF9saXN0OworKyAgICBHSGFzaFRhYmxlICpsYXlvdXRf bGFuZzsKKysgICAgR0hhc2hUYWJsZSAqbGF5b3V0X2Rlc2M7CisrICAgIEdIYXNoVGFibGUgKnZh cmlhbnRfZGVzYzsKKyt9OworKworKworKy8qIGZ1bmN0aW9ucyBwcm90b3R5cGUgKi8KKytzdGF0 aWMgdm9pZCAgICAgICAgIGlidXNfeGtiX2NvbmZpZ19yZWdpc3RyeV9kZXN0cm95CisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJQnVzWEtCQ29uZmlnUmVnaXN0 cnkgKnhrYl9jb25maWcpOworKworK0dfREVGSU5FX1RZUEUgKElCdXNYS0JDb25maWdSZWdpc3Ry eSwgaWJ1c194a2JfY29uZmlnX3JlZ2lzdHJ5LCBJQlVTX1RZUEVfT0JKRUNUKQorKworK3N0YXRp YyB2b2lkCisrcGFyc2VfeGtiX3htbF9sYW5ndWFnZWxpc3Rfbm9kZSAoSUJ1c1hLQkNvbmZpZ1Jl Z2lzdHJ5UHJpdmF0ZSAqcHJpdiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBY TUxOb2RlICpwYXJlbnRfbm9kZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25zdCBnY2hhciAqbGF5b3V0X25hbWUpCisreworKyAgICBYTUxOb2RlICpub2RlID0gcGFyZW50 X25vZGU7CisrICAgIFhNTE5vZGUgKnN1Yl9ub2RlOworKyAgICBHTGlzdCAqcDsKKysgICAgR0xp c3QgKmxhbmdfbGlzdCA9IE5VTEw7CisrCisrICAgIGdfYXNzZXJ0IChub2RlICE9IE5VTEwpOwor KyAgICBnX2Fzc2VydCAobGF5b3V0X25hbWUgIT0gTlVMTCk7CisrICAgIGZvciAocCA9IG5vZGUt PnN1Yl9ub2RlczsgcDsgcCA9IHAtPm5leHQpIHsKKysgICAgICAgIHN1Yl9ub2RlID0gKFhNTE5v ZGUgKikgcC0+ZGF0YTsKKysgICAgICAgIGlmIChnX3N0cmNtcDAgKHN1Yl9ub2RlLT5uYW1lLCAi aXNvNjM5SWQiKSA9PSAwKSB7CisrICAgICAgICAgICAgbGFuZ19saXN0ID0gZ19saXN0X2FwcGVu ZCAobGFuZ19saXN0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChn cG9pbnRlcikgZ19zdHJkdXAgKHN1Yl9ub2RlLT50ZXh0KSk7CisrICAgICAgICAgICAgY29udGlu dWU7CisrICAgICAgICB9CisrICAgIH0KKysgICAgaWYgKGxhbmdfbGlzdCA9PSBOVUxMKSB7Cisr ICAgICAgICAvKiBzb21lIG5vZGVzIGhhdmUgbm8gbGFuZyAqLworKyAgICAgICAgcmV0dXJuOwor KyAgICB9CisrICAgIGlmIChnX2hhc2hfdGFibGVfbG9va3VwIChwcml2LT5sYXlvdXRfbGFuZywg bGF5b3V0X25hbWUpICE9IE5VTEwpIHsKKysgICAgICAgIGdfd2FybmluZyAoImR1cGxpY2F0ZWQg bmFtZSAlcyBleGlzdHMiLCBsYXlvdXRfbmFtZSk7CisrICAgICAgICByZXR1cm47CisrICAgIH0K KysgICAgZ19oYXNoX3RhYmxlX2luc2VydCAocHJpdi0+bGF5b3V0X2xhbmcsCisrICAgICAgICAg ICAgICAgICAgICAgICAgIChncG9pbnRlcikgZ19zdHJkdXAgKGxheW91dF9uYW1lKSwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgKGdwb2ludGVyKSBsYW5nX2xpc3QpOworK30KKysKKytzdGF0 aWMgY29uc3QgZ2NoYXIgKgorK3BhcnNlX3hrYl94bWxfY29uZmlnaXRlbV9ub2RlIChJQnVzWEtC Q29uZmlnUmVnaXN0cnlQcml2YXRlICpwcml2LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBYTUxOb2RlICpwYXJlbnRfbm9kZSkKKyt7CisrICAgIFhNTE5vZGUgKm5vZGUgPSBwYXJl bnRfbm9kZTsKKysgICAgWE1MTm9kZSAqc3ViX25vZGU7CisrICAgIEdMaXN0ICpwOworKyAgICBn Y2hhciAqbmFtZSA9IE5VTEw7CisrICAgIGdjaGFyICpkZXNjcmlwdGlvbiA9IE5VTEw7CisrCisr ICAgIGdfYXNzZXJ0IChub2RlICE9IE5VTEwpOworKyAgICBmb3IgKHAgPSBub2RlLT5zdWJfbm9k ZXM7IHA7IHAgPSBwLT5uZXh0KSB7CisrICAgICAgICBzdWJfbm9kZSA9IChYTUxOb2RlICopIHAt PmRhdGE7CisrICAgICAgICBpZiAoZ19zdHJjbXAwIChzdWJfbm9kZS0+bmFtZSwgIm5hbWUiKSA9 PSAwKSB7CisrICAgICAgICAgICAgbmFtZSA9IHN1Yl9ub2RlLT50ZXh0OworKyAgICAgICAgICAg IGNvbnRpbnVlOworKyAgICAgICAgfQorKyAgICAgICAgaWYgKGdfc3RyY21wMCAoc3ViX25vZGUt Pm5hbWUsICJkZXNjcmlwdGlvbiIpID09IDApIHsKKysgICAgICAgICAgICBkZXNjcmlwdGlvbiA9 IHN1Yl9ub2RlLT50ZXh0OworKyAgICAgICAgICAgIGNvbnRpbnVlOworKyAgICAgICAgfQorKyAg ICAgICAgaWYgKGdfc3RyY21wMCAoc3ViX25vZGUtPm5hbWUsICJsYW5ndWFnZUxpc3QiKSA9PSAw KSB7CisrICAgICAgICAgICAgaWYgKG5hbWUgPT0gTlVMTCkgeworKyAgICAgICAgICAgICAgICBn X3dhcm5pbmcgKCJsYXlvdXQgbmFtZSBpcyBOVUxMIGluIG5vZGUgJXMiLCBub2RlLT5uYW1lKTsK KysgICAgICAgICAgICAgICAgY29udGludWU7CisrICAgICAgICAgICAgfQorKyAgICAgICAgICAg IHBhcnNlX3hrYl94bWxfbGFuZ3VhZ2VsaXN0X25vZGUgKHByaXYsIHN1Yl9ub2RlLCBuYW1lKTsK KysgICAgICAgICAgICBjb250aW51ZTsKKysgICAgICAgIH0KKysgICAgfQorKyAgICBpZiAobmFt ZSA9PSBOVUxMKSB7CisrICAgICAgICBnX3dhcm5pbmcgKCJObyBuYW1lIGluIGxheW91dCBub2Rl Iik7CisrICAgICAgICByZXR1cm4gTlVMTDsKKysgICAgfQorKyAgICBpZiAoZ19oYXNoX3RhYmxl X2xvb2t1cCAocHJpdi0+bGF5b3V0X2Rlc2MsIG5hbWUpICE9IE5VTEwpIHsKKysgICAgICAgIGdf d2FybmluZyAoImR1cGxpY2F0ZWQgbmFtZSAlcyBleGlzdHMiLCBuYW1lKTsKKysgICAgICAgIHJl dHVybiBuYW1lOworKyAgICB9CisrICAgIGdfaGFzaF90YWJsZV9pbnNlcnQgKHByaXYtPmxheW91 dF9kZXNjLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAoZ3BvaW50ZXIpIGdfc3RyZHVwIChu YW1lKSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgKGdwb2ludGVyKSBnX3N0cmR1cCAoZGVz Y3JpcHRpb24pKTsKKysKKysgICAgcmV0dXJuIG5hbWU7CisrfQorKworK3N0YXRpYyBjb25zdCBn Y2hhciAqCisrcGFyc2VfeGtiX3htbF92YXJpYW50X2NvbmZpZ2l0ZW1fbm9kZSAoSUJ1c1hLQkNv bmZpZ1JlZ2lzdHJ5UHJpdmF0ZSAqcHJpdiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg WE1MTm9kZSAqcGFyZW50X25vZGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IGdjaGFyICpsYXlvdXRfbmFtZSkKKyt7CisrICAgIFhNTE5vZGUgKm5vZGUgPSBwYXJlbnRfbm9k ZTsKKysgICAgWE1MTm9kZSAqc3ViX25vZGU7CisrICAgIEdMaXN0ICpwOworKyAgICBnY2hhciAq bmFtZSA9IE5VTEw7CisrICAgIGdjaGFyICpkZXNjcmlwdGlvbiA9IE5VTEw7CisrICAgIGdjaGFy ICp2YXJpYW50X2xhbmdfbmFtZSA9IE5VTEw7CisrCisrICAgIGdfYXNzZXJ0IChub2RlICE9IE5V TEwpOworKyAgICBnX2Fzc2VydCAobGF5b3V0X25hbWUgIT0gTlVMTCk7CisrICAgIGZvciAocCA9 IG5vZGUtPnN1Yl9ub2RlczsgcDsgcCA9IHAtPm5leHQpIHsKKysgICAgICAgIHN1Yl9ub2RlID0g KFhNTE5vZGUgKikgcC0+ZGF0YTsKKysgICAgICAgIGlmIChnX3N0cmNtcDAgKHN1Yl9ub2RlLT5u YW1lLCAibmFtZSIpID09IDApIHsKKysgICAgICAgICAgICBuYW1lID0gc3ViX25vZGUtPnRleHQ7 CisrICAgICAgICAgICAgY29udGludWU7CisrICAgICAgICB9CisrICAgICAgICBpZiAoZ19zdHJj bXAwIChzdWJfbm9kZS0+bmFtZSwgImRlc2NyaXB0aW9uIikgPT0gMCkgeworKyAgICAgICAgICAg IGRlc2NyaXB0aW9uID0gc3ViX25vZGUtPnRleHQ7CisrICAgICAgICAgICAgY29udGludWU7Cisr ICAgICAgICB9CisrICAgICAgICBpZiAoZ19zdHJjbXAwIChzdWJfbm9kZS0+bmFtZSwgImxhbmd1 YWdlTGlzdCIpID09IDApIHsKKysgICAgICAgICAgICBpZiAobmFtZSA9PSBOVUxMKSB7CisrICAg ICAgICAgICAgICAgIGdfd2FybmluZyAoImxheW91dCBuYW1lIGlzIE5VTEwgaW4gbm9kZSAlcyIs IG5vZGUtPm5hbWUpOworKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKysgICAgICAgICAgICB9 CisrICAgICAgICAgICAgdmFyaWFudF9sYW5nX25hbWUgPSBnX3N0cmR1cF9wcmludGYgKCIlcygl cykiLCBsYXlvdXRfbmFtZSwgbmFtZSk7CisrICAgICAgICAgICAgcGFyc2VfeGtiX3htbF9sYW5n dWFnZWxpc3Rfbm9kZSAocHJpdiwgc3ViX25vZGUsIHZhcmlhbnRfbGFuZ19uYW1lKTsKKysgICAg ICAgICAgICBnX2ZyZWUgKHZhcmlhbnRfbGFuZ19uYW1lKTsKKysgICAgICAgICAgICBjb250aW51 ZTsKKysgICAgICAgIH0KKysgICAgfQorKyAgICBpZiAobmFtZSA9PSBOVUxMKSB7CisrICAgICAg ICBnX3dhcm5pbmcgKCJObyBuYW1lIGluIGxheW91dCBub2RlIik7CisrICAgICAgICByZXR1cm4g TlVMTDsKKysgICAgfQorKyAgICBpZiAoZ19oYXNoX3RhYmxlX2xvb2t1cCAocHJpdi0+dmFyaWFu dF9kZXNjLCBuYW1lKSAhPSBOVUxMKSB7CisrICAgICAgICAvKiBUaGlzIGlzIGFuIGV4cGVjdGVk IGNhc2UuICovCisrICAgICAgICByZXR1cm4gbmFtZTsKKysgICAgfQorKyAgICBnX2hhc2hfdGFi bGVfaW5zZXJ0IChwcml2LT52YXJpYW50X2Rlc2MsCisrICAgICAgICAgICAgICAgICAgICAgICAg IChncG9pbnRlcikgZ19zdHJkdXAgKG5hbWUpLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAo Z3BvaW50ZXIpIGdfc3RyZHVwIChkZXNjcmlwdGlvbikpOworKyAgICByZXR1cm4gbmFtZTsKKyt9 CisrCisrc3RhdGljIGNvbnN0IGdjaGFyICoKKytwYXJzZV94a2JfeG1sX3ZhcmlhbnRfbm9kZSAo SUJ1c1hLQkNvbmZpZ1JlZ2lzdHJ5UHJpdmF0ZSAqcHJpdiwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgWE1MTm9kZSAqcGFyZW50X25vZGUsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGdjaGFyICpsYXlvdXRfbmFtZSkKKyt7CisrICAgIFhNTE5vZGUgKm5vZGUgPSBw YXJlbnRfbm9kZTsKKysgICAgWE1MTm9kZSAqc3ViX25vZGU7CisrICAgIEdMaXN0ICpwOworKyAg ICBjb25zdCBnY2hhciAqdmFyaWFudF9uYW1lID0gTlVMTDsKKysKKysgICAgZ19hc3NlcnQgKG5v ZGUgIT0gTlVMTCk7CisrICAgIGdfYXNzZXJ0IChsYXlvdXRfbmFtZSAhPSBOVUxMKTsKKysgICAg Zm9yIChwID0gbm9kZS0+c3ViX25vZGVzOyBwOyBwID0gcC0+bmV4dCkgeworKyAgICAgICAgc3Vi X25vZGUgPSAoWE1MTm9kZSAqKSBwLT5kYXRhOworKyAgICAgICAgaWYgKGdfc3RyY21wMCAoc3Vi X25vZGUtPm5hbWUsICJjb25maWdJdGVtIikgPT0gMCkgeworKyAgICAgICAgICAgIHZhcmlhbnRf bmFtZSA9IHBhcnNlX3hrYl94bWxfdmFyaWFudF9jb25maWdpdGVtX25vZGUgKHByaXYsIHN1Yl9u b2RlLCBsYXlvdXRfbmFtZSk7CisrICAgICAgICAgICAgY29udGludWU7CisrICAgICAgICB9Cisr ICAgIH0KKysgICAgcmV0dXJuIHZhcmlhbnRfbmFtZTsKKyt9CisrCisrc3RhdGljIEdMaXN0ICoK KytwYXJzZV94a2JfeG1sX3ZhcmlhbnRsaXN0X25vZGUgKElCdXNYS0JDb25maWdSZWdpc3RyeVBy aXZhdGUgKnByaXYsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYTUxOb2RlICpw YXJlbnRfbm9kZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFy ICpsYXlvdXRfbmFtZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMaXN0ICp2 YXJpYW50X2xpc3QpCisreworKyAgICBYTUxOb2RlICpub2RlID0gcGFyZW50X25vZGU7CisrICAg IFhNTE5vZGUgKnN1Yl9ub2RlOworKyAgICBHTGlzdCAqcDsKKysgICAgY29uc3QgZ2NoYXIgKnZh cmlhbnRfbmFtZSA9IE5VTEw7CisrCisrICAgIGdfYXNzZXJ0IChub2RlICE9IE5VTEwpOworKyAg ICBnX2Fzc2VydCAobGF5b3V0X25hbWUgIT0gTlVMTCk7CisrICAgIGZvciAocCA9IG5vZGUtPnN1 Yl9ub2RlczsgcDsgcCA9IHAtPm5leHQpIHsKKysgICAgICAgIHN1Yl9ub2RlID0gKFhNTE5vZGUg KikgcC0+ZGF0YTsKKysgICAgICAgIGlmIChnX3N0cmNtcDAgKHN1Yl9ub2RlLT5uYW1lLCAidmFy aWFudCIpID09IDApIHsKKysgICAgICAgICAgICB2YXJpYW50X25hbWUgPSBwYXJzZV94a2JfeG1s X3ZhcmlhbnRfbm9kZSAocHJpdiwgc3ViX25vZGUsIGxheW91dF9uYW1lKTsKKysgICAgICAgICAg ICBpZiAodmFyaWFudF9uYW1lICE9IE5VTEwpIHsKKysgICAgICAgICAgICAgICAgdmFyaWFudF9s aXN0ID0gZ19saXN0X2FwcGVuZCAodmFyaWFudF9saXN0LAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoZ3BvaW50ZXIpIGdfc3RyZHVwICh2YXJpYW50X25h bWUpKTsKKysgICAgICAgICAgICB9CisrICAgICAgICAgICAgY29udGludWU7CisrICAgICAgICB9 CisrICAgIH0KKysgICAgcmV0dXJuIHZhcmlhbnRfbGlzdDsKKyt9CisrCisrc3RhdGljIHZvaWQK KytwYXJzZV94a2JfeG1sX2xheW91dF9ub2RlIChJQnVzWEtCQ29uZmlnUmVnaXN0cnlQcml2YXRl ICpwcml2LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFhNTE5vZGUgKnBhcmVudF9ub2Rl KQorK3sKKysgICAgWE1MTm9kZSAqbm9kZSA9IHBhcmVudF9ub2RlOworKyAgICBYTUxOb2RlICpz dWJfbm9kZTsKKysgICAgR0xpc3QgKnA7CisrICAgIGNvbnN0IGdjaGFyICpuYW1lID0gTlVMTDsK KysgICAgR0xpc3QgKnZhcmlhbnRfbGlzdCA9IE5VTEw7CisrCisrICAgIGdfYXNzZXJ0IChub2Rl ICE9IE5VTEwpOworKyAgICBmb3IgKHAgPSBub2RlLT5zdWJfbm9kZXM7IHA7IHAgPSBwLT5uZXh0 KSB7CisrICAgICAgICBzdWJfbm9kZSA9IChYTUxOb2RlICopIHAtPmRhdGE7CisrICAgICAgICBp ZiAoZ19zdHJjbXAwIChzdWJfbm9kZS0+bmFtZSwgImNvbmZpZ0l0ZW0iKSA9PSAwKSB7CisrICAg ICAgICAgICAgbmFtZSA9IHBhcnNlX3hrYl94bWxfY29uZmlnaXRlbV9ub2RlIChwcml2LCBzdWJf bm9kZSk7CisrICAgICAgICAgICAgY29udGludWU7CisrICAgICAgICB9CisrICAgICAgICBpZiAo Z19zdHJjbXAwIChzdWJfbm9kZS0+bmFtZSwgInZhcmlhbnRMaXN0IikgPT0gMCkgeworKyAgICAg ICAgICAgIGlmIChuYW1lID09IE5VTEwpIHsKKysgICAgICAgICAgICAgICAgZ193YXJuaW5nICgi bGF5b3V0IG5hbWUgaXMgTlVMTCBpbiBub2RlICVzIiwgbm9kZS0+bmFtZSk7CisrICAgICAgICAg ICAgICAgIGNvbnRpbnVlOworKyAgICAgICAgICAgIH0KKysgICAgICAgICAgICB2YXJpYW50X2xp c3QgPSBwYXJzZV94a2JfeG1sX3ZhcmlhbnRsaXN0X25vZGUgKHByaXYsIHN1Yl9ub2RlLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bmFtZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHZhcmlhbnRfbGlzdCk7CisrICAgICAgICAgICAgY29udGludWU7CisrICAgICAg ICB9CisrICAgIH0KKysgICAgaWYgKGdfaGFzaF90YWJsZV9sb29rdXAgKHByaXYtPmxheW91dF9s aXN0LCBuYW1lKSAhPSBOVUxMKSB7CisrICAgICAgICBnX3dhcm5pbmcgKCJkdXBsaWNhdGVkIG5h bWUgJXMgZXhpc3RzIiwgbmFtZSk7CisrICAgICAgICByZXR1cm47CisrICAgIH0KKysgICAgZ19o YXNoX3RhYmxlX2luc2VydCAocHJpdi0+bGF5b3V0X2xpc3QsCisrICAgICAgICAgICAgICAgICAg ICAgICAgIChncG9pbnRlcikgZ19zdHJkdXAgKG5hbWUpLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAoZ3BvaW50ZXIpIHZhcmlhbnRfbGlzdCk7CisrfQorKworK3N0YXRpYyB2b2lkCisrcGFy c2VfeGtiX3htbF90b3Bfbm9kZSAoSUJ1c1hLQkNvbmZpZ1JlZ2lzdHJ5UHJpdmF0ZSAqcHJpdiwK KysgICAgICAgICAgICAgICAgICAgICAgICBYTUxOb2RlICpwYXJlbnRfbm9kZSkKKyt7CisrICAg IFhNTE5vZGUgKm5vZGUgPSBwYXJlbnRfbm9kZTsKKysgICAgWE1MTm9kZSAqc3ViX25vZGU7Cisr ICAgIEdMaXN0ICpwOworKworKyAgICBnX2Fzc2VydCAocHJpdiAhPSBOVUxMKTsKKysgICAgZ19h c3NlcnQgKG5vZGUgIT0gTlVMTCk7CisrCisrICAgIGlmIChnX3N0cmNtcDAgKG5vZGUtPm5hbWUs ICJ4a2JDb25maWdSZWdpc3RyeSIpICE9IDApIHsKKysgICAgICAgIGdfd2FybmluZyAoIm5vZGUg aGFzIG5vIHhrYkNvbmZpZ1JlZ2lzdHJ5IG5hbWUiKTsKKysgICAgICAgIHJldHVybjsKKysgICAg fQorKyAgICBmb3IgKHAgPSBub2RlLT5zdWJfbm9kZXM7IHA7IHAgPSBwLT5uZXh0KSB7CisrICAg ICAgICBzdWJfbm9kZSA9IChYTUxOb2RlICopIHAtPmRhdGE7CisrICAgICAgICBpZiAoZ19zdHJj bXAwIChzdWJfbm9kZS0+bmFtZSwgImxheW91dExpc3QiKSA9PSAwKSB7CisrICAgICAgICAgICAg YnJlYWs7CisrICAgICAgICB9CisrICAgIH0KKysgICAgaWYgKHAgPT0gTlVMTCkgeworKyAgICAg ICAgZ193YXJuaW5nICgieGtiQ29uZmlnUmVnaXN0cnkgbm9kZSBoYXMgbm8gbGF5b3V0TGlzdCBu b2RlIik7CisrICAgICAgICByZXR1cm47CisrICAgIH0KKysgICAgbm9kZSA9IHN1Yl9ub2RlOwor KyAgICBmb3IgKHAgPSBub2RlLT5zdWJfbm9kZXM7IHA7IHAgPSBwLT5uZXh0KSB7CisrICAgICAg ICBzdWJfbm9kZSA9IChYTUxOb2RlICopIHAtPmRhdGE7CisrICAgICAgICBpZiAoZ19zdHJjbXAw IChzdWJfbm9kZS0+bmFtZSwgImxheW91dCIpID09IDApIHsKKysgICAgICAgICAgICBwYXJzZV94 a2JfeG1sX2xheW91dF9ub2RlIChwcml2LCBzdWJfbm9kZSk7CisrICAgICAgICAgICAgY29udGlu dWU7CisrICAgICAgICB9CisrICAgIH0KKyt9CisrCisrc3RhdGljIHZvaWQKKytmcmVlX2xhbmdf bGlzdCAoR0xpc3QgKmxpc3QpCisreworKyAgICBHTGlzdCAqbCA9IGxpc3Q7CisrICAgIHdoaWxl IChsKSB7CisrICAgICAgICBnX2ZyZWUgKGwtPmRhdGEpOworKyAgICAgICAgbC0+ZGF0YSA9IE5V TEw7CisrICAgICAgICBsID0gbC0+bmV4dDsKKysgICAgfQorKyAgICBnX2xpc3RfZnJlZSAobGlz dCk7CisrfQorKworK3N0YXRpYyB2b2lkCisrcGFyc2VfeGtiX2NvbmZpZ19yZWdpc3RyeV9maWxl IChJQnVzWEtCQ29uZmlnUmVnaXN0cnlQcml2YXRlICpwcml2LAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgKmZpbGUpCisreworKyAgICBYTUxOb2RlICpub2Rl OworKworKyAgICBnX2Fzc2VydCAoZmlsZSAhPSBOVUxMKTsKKysKKysgICAgcHJpdi0+bGF5b3V0 X2xpc3QgPSBnX2hhc2hfdGFibGVfbmV3X2Z1bGwgKGdfc3RyX2hhc2gsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR0VxdWFsRnVuYykgZ19zdHJfZXF1 YWwsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR0Rl c3Ryb3lOb3RpZnkpIGdfZnJlZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChHRGVzdHJveU5vdGlmeSkgZnJlZV9sYW5nX2xpc3QpOworKyAgICBwcml2 LT5sYXlvdXRfZGVzYyA9IGdfaGFzaF90YWJsZV9uZXdfZnVsbCAoZ19zdHJfaGFzaCwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHRXF1YWxGdW5jKSBn X3N0cl9lcXVhbCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChHRGVzdHJveU5vdGlmeSkgZ19mcmVlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKEdEZXN0cm95Tm90aWZ5KSBnX2ZyZWUpOworKyAgICBwcml2 LT5sYXlvdXRfbGFuZyA9IGdfaGFzaF90YWJsZV9uZXdfZnVsbCAoZ19zdHJfaGFzaCwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHRXF1YWxGdW5jKSBn X3N0cl9lcXVhbCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChHRGVzdHJveU5vdGlmeSkgZ19mcmVlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKEdEZXN0cm95Tm90aWZ5KSBmcmVlX2xhbmdfbGlzdCk7Cisr ICAgIHByaXYtPnZhcmlhbnRfZGVzYyA9IGdfaGFzaF90YWJsZV9uZXdfZnVsbCAoZ19zdHJfaGFz aCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHRXF1 YWxGdW5jKSBnX3N0cl9lcXVhbCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChHRGVzdHJveU5vdGlmeSkgZ19mcmVlLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEdEZXN0cm95Tm90aWZ5KSBnX2ZyZWUpOwor KyAgICBub2RlID0gaWJ1c194bWxfcGFyc2VfZmlsZSAoZmlsZSk7CisrICAgIHBhcnNlX3hrYl94 bWxfdG9wX25vZGUgKHByaXYsIG5vZGUpOworKyAgICBpYnVzX3htbF9mcmVlIChub2RlKTsKKyt9 CisrCisrc3RhdGljIHZvaWQKKytpYnVzX3hrYl9jb25maWdfcmVnaXN0cnlfaW5pdCAoSUJ1c1hL QkNvbmZpZ1JlZ2lzdHJ5ICp4a2JfY29uZmlnKQorK3sKKysgICAgSUJ1c1hLQkNvbmZpZ1JlZ2lz dHJ5UHJpdmF0ZSAqcHJpdjsKKysgICAgY29uc3QgZ2NoYXIgKmZpbGUgPSBYS0JfUlVMRVNfWE1M X0ZJTEU7CisrCisrICAgIHByaXYgPSBJQlVTX1hLQl9DT05GSUdfUkVHSVNUUllfR0VUX1BSSVZB VEUgKHhrYl9jb25maWcpOworKyAgICBwYXJzZV94a2JfY29uZmlnX3JlZ2lzdHJ5X2ZpbGUgKHBy aXYsIGZpbGUpOworK30KKysKKytzdGF0aWMgdm9pZAorK2lidXNfeGtiX2NvbmZpZ19yZWdpc3Ry eV9kZXN0cm95IChJQnVzWEtCQ29uZmlnUmVnaXN0cnkgKnhrYl9jb25maWcpCisreworKyAgICBJ QnVzWEtCQ29uZmlnUmVnaXN0cnlQcml2YXRlICpwcml2OworKworKyAgICBnX3JldHVybl9pZl9m YWlsICh4a2JfY29uZmlnICE9IE5VTEwpOworKworKyAgICBwcml2ID0gSUJVU19YS0JfQ09ORklH X1JFR0lTVFJZX0dFVF9QUklWQVRFICh4a2JfY29uZmlnKTsKKysKKysgICAgZ19oYXNoX3RhYmxl X2Rlc3Ryb3kgKHByaXYtPmxheW91dF9saXN0KTsKKysgICAgcHJpdi0+bGF5b3V0X2xpc3QgPSBO VUxMOworKyAgICBnX2hhc2hfdGFibGVfZGVzdHJveSAocHJpdi0+bGF5b3V0X2xhbmcpOworKyAg ICBwcml2LT5sYXlvdXRfbGFuZz0gTlVMTDsKKysgICAgZ19oYXNoX3RhYmxlX2Rlc3Ryb3kgKHBy aXYtPmxheW91dF9kZXNjKTsKKysgICAgcHJpdi0+bGF5b3V0X2Rlc2M9IE5VTEw7CisrICAgIGdf aGFzaF90YWJsZV9kZXN0cm95IChwcml2LT52YXJpYW50X2Rlc2MpOworKyAgICBwcml2LT52YXJp YW50X2Rlc2MgPSBOVUxMOworKworKyAgICBJQlVTX09CSkVDVF9DTEFTUyhpYnVzX3hrYl9jb25m aWdfcmVnaXN0cnlfcGFyZW50X2NsYXNzKS0+ZGVzdHJveSAoSUJVU19PQkpFQ1QgKHhrYl9jb25m aWcpKTsKKyt9CisrCisrc3RhdGljIHZvaWQKKytpYnVzX3hrYl9jb25maWdfcmVnaXN0cnlfY2xh c3NfaW5pdCAoSUJ1c1hLQkNvbmZpZ1JlZ2lzdHJ5Q2xhc3MgKmtsYXNzKQorK3sKKysgICAgSUJ1 c09iamVjdENsYXNzICppYnVzX29iamVjdF9jbGFzcyA9IElCVVNfT0JKRUNUX0NMQVNTIChrbGFz cyk7CisrCisrICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZSAoa2xhc3MsIHNpemVvZiAoSUJ1 c1hLQkNvbmZpZ1JlZ2lzdHJ5UHJpdmF0ZSkpOworKworKyAgICBpYnVzX29iamVjdF9jbGFzcy0+ ZGVzdHJveSA9IChJQnVzT2JqZWN0RGVzdHJveUZ1bmMpIGlidXNfeGtiX2NvbmZpZ19yZWdpc3Ry eV9kZXN0cm95OworK30KKysKKytJQnVzWEtCQ29uZmlnUmVnaXN0cnkgKgorK2lidXNfeGtiX2Nv bmZpZ19yZWdpc3RyeV9uZXcgKHZvaWQpCisreworKyAgICBJQnVzWEtCQ29uZmlnUmVnaXN0cnkg KnhrYl9jb25maWc7CisrCisrICAgIHhrYl9jb25maWcgPSBJQlVTX1hLQl9DT05GSUdfUkVHSVNU UlkgKGdfb2JqZWN0X25ldyAoSUJVU19UWVBFX1hLQl9DT05GSUdfUkVHSVNUUlksIE5VTEwpKTsK KysgICAgcmV0dXJuIHhrYl9jb25maWc7CisrfQorKworKyNkZWZpbmUgVEFCTEVfRlVOQyhmaWVs ZF9uYW1lKSBjb25zdCBHSGFzaFRhYmxlICogICAgICAgICAgICAgICAgICAgICAgIFwKKytpYnVz X3hrYl9jb25maWdfcmVnaXN0cnlfZ2V0XyMjZmllbGRfbmFtZSAgKElCdXNYS0JDb25maWdSZWdp c3RyeSAqeGtiX2NvbmZpZykgXAorK3sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgSUJ1c1hLQkNvbmZp Z1JlZ2lzdHJ5UHJpdmF0ZSAqcHJpdjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorKyAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoeGtiX2NvbmZp ZyAhPSBOVUxMLCBOVUxMKTsgICAgICAgICAgICAgICAgICAgIFwKKysgICAgcHJpdiA9IElCVVNf WEtCX0NPTkZJR19SRUdJU1RSWV9HRVRfUFJJVkFURSAoeGtiX2NvbmZpZyk7ICAgICAgICAgICBc CisrICAgIHJldHVybiBwcml2LT5maWVsZF9uYW1lOyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXAorK30KKysKKytUQUJMRV9GVU5DIChsYXlvdXRfbGlzdCkKKytU QUJMRV9GVU5DIChsYXlvdXRfbGFuZykKKytUQUJMRV9GVU5DIChsYXlvdXRfZGVzYykKKytUQUJM RV9GVU5DICh2YXJpYW50X2Rlc2MpCisrCisrI3VuZGVmIFRBQkxFX0ZVTkMKKysKKysjZGVmaW5l IFRBQkxFX0xPT0tVUF9MSVNUX0ZVTkMoZmllbGRfbmFtZSwgdmFsdWUpIEdMaXN0ICogICAgICAg ICAgICAgICBcCisraWJ1c194a2JfY29uZmlnX3JlZ2lzdHJ5XyMjZmllbGRfbmFtZSMjX2dldF8j I3ZhbHVlICAoSUJ1c1hLQkNvbmZpZ1JlZ2lzdHJ5ICp4a2JfY29uZmlnLCBjb25zdCBnY2hhciAq a2V5KSBcCisreyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICBHSGFzaFRhYmxlICp0YWJsZTsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgR0xpc3Qg Kmxpc3QgPSBOVUxMOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICB0YWJsZSA9IChHSGFzaFRhYmxlICopICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgICAgIGli dXNfeGtiX2NvbmZpZ19yZWdpc3RyeV9nZXRfIyNmaWVsZF9uYW1lICh4a2JfY29uZmlnKTsgICAg ICAgICBcCisrICAgIGxpc3QgPSAoR0xpc3QgKikgZ19oYXNoX3RhYmxlX2xvb2t1cCAodGFibGUs IGtleSk7ICAgICAgICAgICAgICAgICAgXAorKyAgICByZXR1cm4gZ19saXN0X2NvcHkgKGxpc3Qp OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyt9CisrCisrI2Rl ZmluZSBUQUJMRV9MT09LVVBfU1RSSU5HX0ZVTkMoZmllbGRfbmFtZSwgdmFsdWUpIGdjaGFyICog ICAgICAgICAgICAgXAorK2lidXNfeGtiX2NvbmZpZ19yZWdpc3RyeV8jI2ZpZWxkX25hbWUjI19n ZXRfIyN2YWx1ZSAgKElCdXNYS0JDb25maWdSZWdpc3RyeSAqeGtiX2NvbmZpZywgY29uc3QgZ2No YXIgKmtleSkgXAorK3sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgR0hhc2hUYWJsZSAqdGFibGU7ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgIGNv bnN0IGdjaGFyICpkZXNjID0gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysgICAgdGFibGUgPSAoR0hhc2hUYWJsZSAq KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrICAgICAg ICBpYnVzX3hrYl9jb25maWdfcmVnaXN0cnlfZ2V0XyMjZmllbGRfbmFtZSAoeGtiX2NvbmZpZyk7 ICAgICAgICAgXAorKyAgICBkZXNjID0gKGNvbnN0IGdjaGFyICopIGdfaGFzaF90YWJsZV9sb29r dXAgKHRhYmxlLCBrZXkpOyAgICAgICAgICAgIFwKKysgICAgcmV0dXJuIGdfc3RyZHVwIChkZXNj KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrfQorKwor K1RBQkxFX0xPT0tVUF9MSVNUX0ZVTkMgKGxheW91dF9saXN0LCB2YXJpYW50cykKKytUQUJMRV9M T09LVVBfTElTVF9GVU5DIChsYXlvdXRfbGFuZywgbGFuZ3MpCisrVEFCTEVfTE9PS1VQX1NUUklO R19GVU5DIChsYXlvdXRfZGVzYywgZGVzYykKKytUQUJMRV9MT09LVVBfU1RSSU5HX0ZVTkMgKHZh cmlhbnRfZGVzYywgZGVzYykKKysKKysjdW5kZWYgVEFCTEVfTE9PS1VQX0xJU1RfRlVOQworKyN1 bmRlZiBUQUJMRV9MT09LVVBfU1RSSU5HX0ZVTkMKK2RpZmYgLS1naXQgYS9zcmMvaWJ1c3hrYnht bC5oIGIvc3JjL2lidXN4a2J4bWwuaAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAw MDAuLjY5ODZiNWMKKy0tLSAvZGV2L251bGwKKysrKyBiL3NyYy9pYnVzeGtieG1sLmgKK0BAIC0w LDAgKzEsMTcyIEBACisrLyogLSotIG1vZGU6IEM7IGMtYmFzaWMtb2Zmc2V0OiA0OyBpbmRlbnQt dGFicy1tb2RlOiBuaWw7IC0qLSAqLworKy8qIHZpbTpzZXQgZXQgc3RzPTQ6ICovCisrLyogYnVz IC0gVGhlIElucHV0IEJ1cworKyAqIENvcHlyaWdodCAoQykgMjAxMSBUYWthbyBGdWppd2FyYSA8 dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KKysgKiBDb3B5cmlnaHQgKEMpIDIwMTEgUGVuZyBI dWFuZyA8c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+CisrICogQ29weXJpZ2h0IChDKSAyMDExIFJl ZCBIYXQsIEluYy4KKysgKgorKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKysgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICogTGljZW5zZSBhcyBwdWJsaXNo ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisrICogdmVyc2lvbiAy IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor KyAqCisrICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsCisrICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuCSBTZWUgdGhlIEdOVQorKyAqIExlc3NlciBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrICoKKysgKiBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisr ICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUK KysgKiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1 aXRlIDMzMCwKKysgKiBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKysgKi8KKysjaWZuZGVm IF9fSUJVU19YS0JYTUxfSF8KKysjZGVmaW5lIF9fSUJVU19YS0JYTUxfSF8KKysKKysjaW5jbHVk ZSAiaWJ1cy5oIgorKworKy8qCisrICogVHlwZSBtYWNyb3MuCisrICovCisrLyogZGVmaW5lIElC dXNYS0JDb25maWdSZWdpc3RyeSBtYWNyb3MgKi8KKysjZGVmaW5lIElCVVNfVFlQRV9YS0JfQ09O RklHX1JFR0lTVFJZICAgICAgICAgICAgICAgICAgIFwKKysgICAgKGlidXNfeGtiX2NvbmZpZ19y ZWdpc3RyeV9nZXRfdHlwZSAoKSkKKysjZGVmaW5lIElCVVNfWEtCX0NPTkZJR19SRUdJU1RSWShv YmopICAgICAgICAgICAgICAgICAgIFwKKysgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNU ICgob2JqKSwgSUJVU19UWVBFX1hLQl9DT05GSUdfUkVHSVNUUlksIElCdXNYS0JDb25maWdSZWdp c3RyeSkpCisrI2RlZmluZSBJQlVTX1hLQl9DT05GSUdfUkVHSVNUUllfQ0xBU1Moa2xhc3MpICAg ICAgICAgICBcCisrICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCAoKGtsYXNzKSwgSUJVU19U WVBFX1hLQl9DT05GSUdfUkVHSVNUUlksIElCdXNYS0JDb25maWdSZWdpc3RyeUNsYXNzKSkKKysj ZGVmaW5lIElCVVNfSVNfWEtCX0NPTkZJR19SRUdJU1RSWShvYmopICAgICAgICAgICAgICAgIFwK KysgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgob2JqKSwgSUJVU19UWVBFX1hLQl9D T05GSUdfUkVHSVNUUlkpKQorKyNkZWZpbmUgSUJVU19JU19YS0JfQ09ORklHX1JFR0lTVFJZX0NM QVNTKGtsYXNzKSAgICAgICAgXAorKyAgICAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUgKChrbGFz cyksIElCVVNfVFlQRV9YS0JfQ09ORklHX1JFR0lTVFJZKSkKKysjZGVmaW5lIElCVVNfWEtCX0NP TkZJR19SRUdJU1RSWV9HRVRfQ0xBU1Mob2JqKSAgICAgICAgIFwKKysgICAgKEdfVFlQRV9JTlNU QU5DRV9HRVRfQ0xBU1MgKChvYmopLCBJQlVTX1RZUEVfWEtCX0NPTkZJR19SRUdJU1RSWSwgSUJ1 c1hLQkNvbmZpZ1JlZ2lzdHJ5Q2xhc3MpKQorKworK0dfQkVHSU5fREVDTFMKKysKKyt0eXBlZGVm IHN0cnVjdCBfSUJ1c1hLQkNvbmZpZ1JlZ2lzdHJ5IElCdXNYS0JDb25maWdSZWdpc3RyeTsKKyt0 eXBlZGVmIHN0cnVjdCBfSUJ1c1hLQkNvbmZpZ1JlZ2lzdHJ5Q2xhc3MgSUJ1c1hLQkNvbmZpZ1Jl Z2lzdHJ5Q2xhc3M7CisrCisrc3RydWN0IF9JQnVzWEtCQ29uZmlnUmVnaXN0cnkgeworKyAgICBJ QnVzT2JqZWN0IHBhcmVudDsKKyt9OworKworK3N0cnVjdCBfSUJ1c1hLQkNvbmZpZ1JlZ2lzdHJ5 Q2xhc3MgeworKyAgICBJQnVzT2JqZWN0Q2xhc3MgcGFyZW50OworKyAgICAvKiBzaWduYWxzICov CisrICAgIC8qPCBwcml2YXRlID4qLworKyAgICAvKiBwYWRkaW5nICovCisrICAgIGdwb2ludGVy IHBkdW1teVs4XTsKKyt9OworKworKworK0dUeXBlICAgICAgICAgICAgaWJ1c194a2JfY29uZmln X3JlZ2lzdHJ5X2dldF90eXBlCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICh2b2lkKTsKKysKKysvKioKKysgKiBpYnVzX3hrYl9jb25maWdfcmVnaXN0 cnlfbmV3OgorKyAqIEByZXR1cm5zOiBBIG5ld2x5IGFsbG9jYXRlZCBJQnVzWEtCQ29uZmlnUmVn aXN0cnkKKysgKgorKyAqIE5ldyBhbiBJQnVzWEtCQ29uZmlnUmVnaXN0cnkuCisrICovCisrSUJ1 c1hLQkNvbmZpZ1JlZ2lzdHJ5ICoKKysgICAgICAgICAgICAgICAgIGlidXNfeGtiX2NvbmZpZ19y ZWdpc3RyeV9uZXcKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKHZvaWQpOworKworKy8qKgorKyAqIGlidXNfeGtiX2NvbmZpZ19yZWdpc3RyeV9nZXRf bGF5b3V0X2xpc3Q6IChza2lwKQorKyAqIEB4a2JfY29uZmlnOiBBbiBJQnVzWEtCQ29uZmlnUmVn aXN0cnkuCisrICogQHJldHVybnM6IEEgY29uc3QgR0hhc2hUYWJsZQorKyAqCisrICogYSBjb25z dCBHSGFzaFRhYmxlCisrICovCisrY29uc3QgR0hhc2hUYWJsZSAqCisrICAgICAgICAgICAgICAg ICBpYnVzX3hrYl9jb25maWdfcmVnaXN0cnlfZ2V0X2xheW91dF9saXN0CisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJQnVzWEtCQ29uZmlnUmVnaXN0 cnkgKnhrYl9jb25maWcpOworKworKy8qKgorKyAqIGlidXNfeGtiX2NvbmZpZ19yZWdpc3RyeV9n ZXRfbGF5b3V0X2xhbmc6IChza2lwKQorKyAqIEB4a2JfY29uZmlnOiBBbiBJQnVzWEtCQ29uZmln UmVnaXN0cnkuCisrICogQHJldHVybnM6IEEgY29uc3QgR0hhc2hUYWJsZQorKyAqCisrICogYSBj b25zdCBHSGFzaFRhYmxlCisrICovCisrY29uc3QgR0hhc2hUYWJsZSAqCisrICAgICAgICAgICAg ICAgICBpYnVzX3hrYl9jb25maWdfcmVnaXN0cnlfZ2V0X2xheW91dF9sYW5nCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJQnVzWEtCQ29uZmlnUmVn aXN0cnkgKnhrYl9jb25maWcpOworKworKy8qKgorKyAqIGlidXNfeGtiX2NvbmZpZ19yZWdpc3Ry eV9nZXRfbGF5b3V0X2Rlc2M6IChza2lwKQorKyAqIEB4a2JfY29uZmlnOiBBbiBJQnVzWEtCQ29u ZmlnUmVnaXN0cnkuCisrICogQHJldHVybnM6IEEgY29uc3QgR0hhc2hUYWJsZQorKyAqCisrICog YSBjb25zdCBHSGFzaFRhYmxlCisrICovCisrY29uc3QgR0hhc2hUYWJsZSAqCisrICAgICAgICAg ICAgICAgICBpYnVzX3hrYl9jb25maWdfcmVnaXN0cnlfZ2V0X2xheW91dF9kZXNjCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJQnVzWEtCQ29uZmln UmVnaXN0cnkgKnhrYl9jb25maWcpOworKworKy8qKgorKyAqIGlidXNfeGtiX2NvbmZpZ19yZWdp c3RyeV9nZXRfdmFyaWFudF9kZXNjOiAoc2tpcCkKKysgKiBAeGtiX2NvbmZpZzogQW4gSUJ1c1hL QkNvbmZpZ1JlZ2lzdHJ5LgorKyAqIEByZXR1cm5zOiBBIGNvbnN0IEdIYXNoVGFibGUKKysgKgor KyAqIGEgY29uc3QgR0hhc2hUYWJsZQorKyAqLworK2NvbnN0IEdIYXNoVGFibGUgKgorKyAgICAg ICAgICAgICAgICAgaWJ1c194a2JfY29uZmlnX3JlZ2lzdHJ5X2dldF92YXJpYW50X2Rlc2MKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKElCdXNYS0JD b25maWdSZWdpc3RyeSAqeGtiX2NvbmZpZyk7CisrCisrLyoqCisrICogaWJ1c194a2JfY29uZmln X3JlZ2lzdHJ5X2xheW91dF9saXN0X2dldF92YXJpYW50czoKKysgKiBAeGtiX2NvbmZpZzogQW4g SUJ1c1hLQkNvbmZpZ1JlZ2lzdHJ5LgorKyAqIEBsYXlvdXQ6IEEgbGF5b3V0LgorKyAqIEByZXR1 cm5zOiAodHJhbnNmZXIgY29udGFpbmVyKSAoZWxlbWVudC10eXBlIHV0ZjgpOiBBIEdMaXN0Cisr ICoKKysgKiBhIEdMaXN0CisrICovCisrR0xpc3QgKgorKyAgICAgICAgICAgICAgICAgaWJ1c194 a2JfY29uZmlnX3JlZ2lzdHJ5X2xheW91dF9saXN0X2dldF92YXJpYW50cworKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSUJ1c1hLQkNvbmZpZ1JlZ2lz dHJ5ICp4a2JfY29uZmlnLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICpsYXlvdXQpOworKworKy8qKgorKyAq IGlidXNfeGtiX2NvbmZpZ19yZWdpc3RyeV9sYXlvdXRfbGFuZ19nZXRfbGFuZ3M6CisrICogQHhr Yl9jb25maWc6IEFuIElCdXNYS0JDb25maWdSZWdpc3RyeS4KKysgKiBAbGF5b3V0OiBBIGxheW91 dC4KKysgKiBAcmV0dXJuczogKHRyYW5zZmVyIGNvbnRhaW5lcikgKGVsZW1lbnQtdHlwZSB1dGY4 KTogQSBHTGlzdAorKyAqCisrICogYSBHTGlzdAorKyAqLworK0dMaXN0ICoKKysgICAgICAgICAg ICAgICAgIGlidXNfeGtiX2NvbmZpZ19yZWdpc3RyeV9sYXlvdXRfbGFuZ19nZXRfbGFuZ3MKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKElCdXNYS0JD b25maWdSZWdpc3RyeSAqeGtiX2NvbmZpZywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAqbGF5b3V0KTsKKysK KysvKioKKysgKiBpYnVzX3hrYl9jb25maWdfcmVnaXN0cnlfbGF5b3V0X2Rlc2NfZ2V0X2Rlc2M6 CisrICogQHhrYl9jb25maWc6IEFuIElCdXNYS0JDb25maWdSZWdpc3RyeS4KKysgKiBAbGF5b3V0 OiBBIGxheW91dC4KKysgKiBAcmV0dXJuczogQSBsYXlvdXQgZGVzY3JpcHRpb24KKysgKgorKyAq IGEgbGF5b3V0IGRlc2NyaXB0aW9uCisrICovCisrZ2NoYXIgKgorKyAgICAgICAgICAgICAgICAg aWJ1c194a2JfY29uZmlnX3JlZ2lzdHJ5X2xheW91dF9kZXNjX2dldF9kZXNjCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJQnVzWEtCQ29uZmlnUmVn aXN0cnkgKnhrYl9jb25maWcsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgKmxheW91dCk7CisrCisrLyoqCisr ICogaWJ1c194a2JfY29uZmlnX3JlZ2lzdHJ5X3ZhcmlhbnRfZGVzY19nZXRfZGVzYzoKKysgKiBA eGtiX2NvbmZpZzogQW4gSUJ1c1hLQkNvbmZpZ1JlZ2lzdHJ5LgorKyAqIEB2YXJpYW50OiBBIHZh cmlhbnQuCisrICogQHJldHVybnM6IEEgdmFyaWFudCBkZXNjcmlwdGlvbgorKyAqCisrICogYSB2 YXJpYW50IGRlc2NyaXB0aW9uCisrICovCisrZ2NoYXIgKgorKyAgICAgICAgICAgICAgICAgaWJ1 c194a2JfY29uZmlnX3JlZ2lzdHJ5X3ZhcmlhbnRfZGVzY19nZXRfZGVzYworKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoSUJ1c1hLQkNvbmZpZ1JlZ2lz dHJ5ICp4a2JfY29uZmlnLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICp2YXJpYW50KTsKKytHX0VORF9ERUNM UworKyNlbmRpZgorZGlmZiAtLWdpdCBhL3VpL2d0ay9wYW5lbC5weSBiL3VpL2d0ay9wYW5lbC5w eQoraW5kZXggOTBiZTFkNS4uZGU2NDkyMCAxMDA2NDQKKy0tLSBhL3VpL2d0ay9wYW5lbC5weQor KysrIGIvdWkvZ3RrL3BhbmVsLnB5CitAQCAtMTMyLDYgKzEzMiwyMiBAQCBjbGFzcyBQYW5lbChp YnVzLlBhbmVsQmFzZSk6CisgICAgICAgICBzZWxmLl9fY29uZmlnX2xvYWRfc2hvd19pbV9uYW1l KCkKKyAgICAgICAgICMgc2VsZi5fX2J1cy5yZXF1ZXN0X25hbWUoaWJ1cy5wYW5lbC5JQlVTX1NF UlZJQ0VfUEFORUwsIDApCisgCisrICAgICAgICAjIGluaXQgeGtiCisrICAgICAgICBzZWxmLl9f eGtibGF5b3V0ID0gaWJ1cy5YS0JMYXlvdXQoc2VsZi5fX2NvbmZpZykKKysgICAgICAgIHVzZV94 a2IgPSBzZWxmLl9fY29uZmlnLmdldF92YWx1ZSgiZ2VuZXJhbCIsICJ1c2Vfc3lzdGVtX2tleWJv YXJkX2xheW91dCIsIEZhbHNlKQorKyAgICAgICAgaWYgbm90IHVzZV94a2I6CisrICAgICAgICAg ICAgc2VsZi5fX3hrYmxheW91dC51c2VfeGtiKHVzZV94a2IpCisrICAgICAgICB2YWx1ZSA9IHN0 cihzZWxmLl9fY29uZmlnLmdldF92YWx1ZSgiZ2VuZXJhbCIsICJzeXN0ZW1fa2V5Ym9hcmRfbGF5 b3V0IiwgJycpKQorKyAgICAgICAgaWYgdmFsdWUgPT0gJyc6CisrICAgICAgICAgICAgdmFsdWUg PSAnZGVmYXVsdCcKKysgICAgICAgIGlmIHZhbHVlICE9ICdkZWZhdWx0JzoKKysgICAgICAgICAg ICBzZWxmLl9feGtibGF5b3V0LnNldF9kZWZhdWx0X2xheW91dCh2YWx1ZSkKKysgICAgICAgIHZh bHVlID0gc3RyKHNlbGYuX19jb25maWcuZ2V0X3ZhbHVlKCJnZW5lcmFsIiwgInN5c3RlbV9rZXli b2FyZF9vcHRpb24iLCAnJykpCisrICAgICAgICBpZiB2YWx1ZSA9PSAnJzoKKysgICAgICAgICAg ICB2YWx1ZSA9ICdkZWZhdWx0JworKyAgICAgICAgaWYgdmFsdWUgIT0gJ2RlZmF1bHQnOgorKyAg ICAgICAgICAgIHNlbGYuX194a2JsYXlvdXQuc2V0X2RlZmF1bHRfb3B0aW9uKHZhbHVlKQorKwor ICAgICBkZWYgc2V0X2N1cnNvcl9sb2NhdGlvbihzZWxmLCB4LCB5LCB3LCBoKToKKyAgICAgICAg IHNlbGYuX19jYW5kaWRhdGVfcGFuZWwuc2V0X2N1cnNvcl9sb2NhdGlvbih4LCB5LCB3LCBoKQor IAorQEAgLTIyNiwxNCArMjQyLDIwIEBAIGNsYXNzIFBhbmVsKGlidXMuUGFuZWxCYXNlKToKKyAg ICAgICAgIGlmIG5vdCBlbmFibGVkOgorICAgICAgICAgICAgIHNlbGYuX19zZXRfaW1faWNvbihJ Q09OX0tFWUJPQVJEKQorICAgICAgICAgICAgIHNlbGYuX19zZXRfaW1fbmFtZShOb25lKQorKyAg ICAgICAgICAgIGlmIHNlbGYuX19idXMuZ2V0X3VzZV9zeXNfbGF5b3V0KCk6CisrICAgICAgICAg ICAgICAgIHNlbGYuX194a2JsYXlvdXQuc2V0X2xheW91dCgpCisgICAgICAgICBlbHNlOgorICAg ICAgICAgICAgIGVuZ2luZSA9IHNlbGYuX19mb2N1c19pYy5nZXRfZW5naW5lKCkKKyAgICAgICAg ICAgICBpZiBlbmdpbmU6CisgICAgICAgICAgICAgICAgIHNlbGYuX19zZXRfaW1faWNvbihlbmdp bmUuaWNvbikKKyAgICAgICAgICAgICAgICAgc2VsZi5fX3NldF9pbV9uYW1lKGVuZ2luZS5sb25n bmFtZSkKKysgICAgICAgICAgICAgICAgaWYgc2VsZi5fX2J1cy5nZXRfdXNlX3N5c19sYXlvdXQo KToKKysgICAgICAgICAgICAgICAgICAgIHNlbGYuX194a2JsYXlvdXQuc2V0X2xheW91dChzZWxm Ll9fZW5naW5lX2dldF9sYXlvdXRfd3JhcHBlcihlbmdpbmUpKQorICAgICAgICAgICAgIGVsc2U6 CisgICAgICAgICAgICAgICAgIHNlbGYuX19zZXRfaW1faWNvbihJQ09OX0tFWUJPQVJEKQorICAg ICAgICAgICAgICAgICBzZWxmLl9fc2V0X2ltX25hbWUoTm9uZSkKKysgICAgICAgICAgICAgICAg aWYgc2VsZi5fX2J1cy5nZXRfdXNlX3N5c19sYXlvdXQoKToKKysgICAgICAgICAgICAgICAgICAg IHNlbGYuX194a2JsYXlvdXQuc2V0X2xheW91dCgpCisgICAgICAgICBzZWxmLl9fbGFuZ3VhZ2Vf YmFyLmZvY3VzX2luKCkKKyAKKyAgICAgZGVmIGZvY3VzX291dChzZWxmLCBpYyk6CitAQCAtMjQz LDYgKzI2NSw4IEBAIGNsYXNzIFBhbmVsKGlidXMuUGFuZWxCYXNlKToKKyAgICAgICAgIHNlbGYu X19sYW5ndWFnZV9iYXIuZm9jdXNfb3V0KCkKKyAgICAgICAgIHNlbGYuX19zZXRfaW1faWNvbihJ Q09OX0tFWUJPQVJEKQorICAgICAgICAgc2VsZi5fX3NldF9pbV9uYW1lKE5vbmUpCisrICAgICAg ICBpZiBzZWxmLl9fYnVzLmdldF91c2Vfc3lzX2xheW91dCgpOgorKyAgICAgICAgICAgIHNlbGYu X194a2JsYXlvdXQuc2V0X2xheW91dCgpCisgCisgICAgIGRlZiBzdGF0ZV9jaGFuZ2VkKHNlbGYp OgorICAgICAgICAgaWYgbm90IHNlbGYuX19mb2N1c19pYzoKK0BAIC0yNTUsMTQgKzI3OSwyMCBA QCBjbGFzcyBQYW5lbChpYnVzLlBhbmVsQmFzZSk6CisgICAgICAgICAgICAgc2VsZi5yZXNldCgp CisgICAgICAgICAgICAgc2VsZi5fX3NldF9pbV9pY29uKElDT05fS0VZQk9BUkQpCisgICAgICAg ICAgICAgc2VsZi5fX3NldF9pbV9uYW1lKE5vbmUpCisrICAgICAgICAgICAgaWYgc2VsZi5fX2J1 cy5nZXRfdXNlX3N5c19sYXlvdXQoKToKKysgICAgICAgICAgICAgICAgc2VsZi5fX3hrYmxheW91 dC5zZXRfbGF5b3V0KCkKKyAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgZW5naW5lID0gc2Vs Zi5fX2ZvY3VzX2ljLmdldF9lbmdpbmUoKQorICAgICAgICAgICAgIGlmIGVuZ2luZToKKyAgICAg ICAgICAgICAgICAgc2VsZi5fX3NldF9pbV9pY29uKGVuZ2luZS5pY29uKQorICAgICAgICAgICAg ICAgICBzZWxmLl9fc2V0X2ltX25hbWUoZW5naW5lLmxvbmduYW1lKQorKyAgICAgICAgICAgICAg ICBpZiBzZWxmLl9fYnVzLmdldF91c2Vfc3lzX2xheW91dCgpOgorKyAgICAgICAgICAgICAgICAg ICAgc2VsZi5fX3hrYmxheW91dC5zZXRfbGF5b3V0KHNlbGYuX19lbmdpbmVfZ2V0X2xheW91dF93 cmFwcGVyKGVuZ2luZSkpCisgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgc2Vs Zi5fX3NldF9pbV9pY29uKElDT05fS0VZQk9BUkQpCisgICAgICAgICAgICAgICAgIHNlbGYuX19z ZXRfaW1fbmFtZShOb25lKQorKyAgICAgICAgICAgICAgICBpZiBzZWxmLl9fYnVzLmdldF91c2Vf c3lzX2xheW91dCgpOgorKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fX3hrYmxheW91dC5zZXRf bGF5b3V0KCkKKyAKKyAKKyAgICAgZGVmIHJlc2V0KHNlbGYpOgorQEAgLTU0MiwzICs1NzIsMTIg QEAgY2xhc3MgUGFuZWwoaWJ1cy5QYW5lbEJhc2UpOgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBmbGFncz1nbGliLlNQQVdOX0RPX05PVF9SRUFQX0NISUxEKVswXQorICAgICAgICAg c2VsZi5fX3NldHVwX3BpZCA9IHBpZAorICAgICAgICAgZ2xpYi5jaGlsZF93YXRjaF9hZGQoc2Vs Zi5fX3NldHVwX3BpZCwgc2VsZi5fX2NoaWxkX3dhdGNoX2NiKQorKworKyAgICBkZWYgX19lbmdp bmVfZ2V0X2xheW91dF93cmFwcGVyKHNlbGYsIGVuZ2luZSk6CisrICAgICAgICAjIFRoaXMgY29k ZSBpcyBmb3IgdGhlIGJhY2sgY29tcGF0aWJpbGl0eS4KKysgICAgICAgICMgU2hvdWxkIHdlIHJl bW92ZSB0aGUgY29kZXMgYWZ0ZXIgYWxsIElNIGVuZ2luZXMgYXJlIGNoYW5nZWQKKysgICAgICAg ICMgdG8gImRlZmF1bHQiIGxheW91dD8KKysgICAgICAgIGlmIGVuZ2luZS5uYW1lICE9IE5vbmUg YW5kIGVuZ2luZS5uYW1lLnN0YXJ0c3dpdGgoInhrYjpsYXlvdXQ6Iik6CisrICAgICAgICAgICAg cmV0dXJuIGVuZ2luZS5sYXlvdXQKKysgICAgICAgIGVsc2U6CisrICAgICAgICAgICAgcmV0dXJu ICJkZWZhdWx0IgorZGlmZiAtLWdpdCBhL3hrYi9NYWtlZmlsZS5hbSBiL3hrYi9NYWtlZmlsZS5h bQorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLmFkOWNkZDkKKy0tLSAvZGV2 L251bGwKKysrKyBiL3hrYi9NYWtlZmlsZS5hbQorQEAgLTAsMCArMSwxMDQgQEAKKysjIHZpbTpz ZXQgbm9ldCB0cz00OgorKyMKKysjIGlidXMgLSBUaGUgSW5wdXQgQnVzCisrIworKyMgQ29weXJp Z2h0IChDKSAyMDExIFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgor KyMgQ29weXJpZ2h0IChjKSAyMDExIFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29t PgorKyMgQ29weXJpZ2h0IChjKSAyMDExIFJlZCBIYXQsIEluYy4KKysjCisrIyBUaGlzIGxpYnJh cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrIyBt b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj CisrIyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIKKysjIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisr IyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysj CisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdl bmVyYWwgUHVibGljCisrIyBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3Qs IHdyaXRlIHRvIHRoZQorKyMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1w bGUgUGxhY2UsIFN1aXRlIDMzMCwKKysjIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQorKwor K2xpYmlidXMgPSAkKHRvcF9idWlsZGRpcikvc3JjL2xpYmlidXMtQElCVVNfQVBJX1ZFUlNJT05A LmxhCisrCisrSU5DTFVERVMgPSBcCisrICAgICAgICAtSSQodG9wX3NyY2RpcikgXAorKyAgICAg ICAgLUkkKHRvcF9zcmNkaXIpL3NyYyBcCisrCS1ESUJVU19MT0NBTEVESVI9XCIkKGRhdGFkaXIp L2xvY2FsZVwiIFwKKysJLURMSUJFWEVDRElSPVwiIiQobGliZXhlY2RpcikiXCIgXAorKyAgICAg ICAgJChOVUxMKQorKworK25vaW5zdF9QUk9HUkFNUyA9ICQoVEVTVFMpCisrbGliZXhlY19QUk9H UkFNUyA9CisrRVhUUkFfRElTVCA9CisrRElTVENMRUFORklMRVMgPQorKworK2lmIEVOQUJMRV9Y S0IKKytsaWJleGVjX1BST0dSQU1TICs9IGlidXMteGtiCisraWJ1c194a2JfU09VUkNFUyA9IFwK KysJaWJ1cy14a2ItbWFpbi5jIFwKKysJeGtibGliLmggXAorKwl4a2JsaWIuYyBcCisrCSQoTlVM TCkKKytpYnVzX3hrYl9DRkxBR1MgPSBcCisrCUBYS0JfQ0ZMQUdTQCBcCisrCUBYMTFfQ0ZMQUdT QCBcCisrCUBHTElCMl9DRkxBR1NAIFwKKysJJChOVUxMKQorK2lidXNfeGtiX0xEQUREID0gXAor KwlAWEtCX0xJQlNAIFwKKysJQFgxMV9MSUJTQCBcCisrCUBHTElCMl9MSUJTQCBcCisrCSQobGli aWJ1cykgXAorKwkkKE5VTEwpCisrCisrbGliZXhlY19QUk9HUkFNUyArPSBpYnVzLWVuZ2luZS14 a2IKKytpYnVzX2VuZ2luZV94a2JfU09VUkNFUyA9IFwKKysgICAgICAgIGlidXMtZW5naW5lLXhr Yi1tYWluLmMgXAorKyAgICAgICAgaWJ1cy1lbmdpbmUteGtiLW1haW4uaCBcCisrICAgICAgICB4 a2J4bWwuYyBcCisrICAgICAgICB4a2J4bWwuaCBcCisrICAgICAgICAkKE5VTEwpCisraWJ1c19l bmdpbmVfeGtiX0NGTEFHUyA9IFwKKysJQEdMSUIyX0NGTEFHU0AgXAorKwlAR09CSkVDVDJfQ0ZM QUdTQCBcCisrCUBHQ09ORl9DRkxBR1NAIFwKKysgICAgICAgICQoTlVMTCkKKytpYnVzX2VuZ2lu ZV94a2JfTERBREQgPSBcCisrCUBHTElCMl9MSUJTQCBcCisrCUBHT0JKRUNUMl9MSUJTQCBcCisr CUBHQ09ORl9MSUJTQCBcCisrCSQobGliaWJ1cykgXAorKyAgICAgICAgJChOVUxMKQorKworK3hr YmxheW91dGRpciA9ICQoZGF0YWRpcikvaWJ1cy9jb21wb25lbnQKKyt4a2JsYXlvdXRfaW5fZmls ZXMgPSB4a2JsYXlvdXQueG1sLmluCisreGtibGF5b3V0X0RBVEEgPSAkKHhrYmxheW91dF9pbl9m aWxlczoueG1sLmluPS54bWwpCisrCisreGtibGF5b3V0Y29uZmlnZGlyID0gJChkYXRhZGlyKS9p YnVzL3hrYgorK3hrYmxheW91dGNvbmZpZ19pbl9maWxlcyA9IHhrYmxheW91dGNvbmZpZy54bWwu aW4KKyt4a2JsYXlvdXRjb25maWdfREFUQSA9ICQoeGtibGF5b3V0Y29uZmlnX2luX2ZpbGVzOi54 bWwuaW49LnhtbCkKKysKKyslLnhtbCA6ICUueG1sLmluCisrCUBzZWQgLWUgInN8XEBsaWJleGVj ZGlyXEB8JChsaWJleGVjZGlyKXxnIiBcCisrCSAgICAgLWUgInN8XEBkYXRhZGlyXEB8JChkYXRh ZGlyKXxnIiBcCisrCSAgICAgLWUgInN8XEBYS0JfUFJFTE9BRF9MQVlPVVRTXEB8JChYS0JfUFJF TE9BRF9MQVlPVVRTKXxnIiBcCisrCSQ8ID4gJEAKKysKKytJTkNMVURFUyArPSBcCisrCS1EWEtC TEFZT1VUQ09ORklHX0ZJTEU9XCIiJCh4a2JsYXlvdXRjb25maWdkaXIpLyQoeGtibGF5b3V0Y29u ZmlnX0RBVEEpIlwiIFwKKysJJChOVUxMKQorKworK0VYVFJBX0RJU1QgKz0gXAorKyAgICAgICAg JCh4a2JsYXlvdXRfaW5fZmlsZXMpIFwKKysgICAgICAgICQoeGtibGF5b3V0Y29uZmlnX2luX2Zp bGVzKSBcCisrICAgICAgICAkKE5VTEwpCisrCisrRElTVENMRUFORklMRVMgKz0gXAorKyAgICAg ICAgJCh4a2JsYXlvdXRfREFUQSkgXAorKyAgICAgICAgJCh4a2JsYXlvdXRjb25maWdfREFUQSkg XAorKyAgICAgICAgJChOVUxMKQorKworK2VuZGlmCitkaWZmIC0tZ2l0IGEveGtiL2lidXMtZW5n aW5lLXhrYi1tYWluLmMgYi94a2IvaWJ1cy1lbmdpbmUteGtiLW1haW4uYworbmV3IGZpbGUgbW9k ZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLjVkNzQ4Y2MKKy0tLSAvZGV2L251bGwKKysrKyBiL3hr Yi9pYnVzLWVuZ2luZS14a2ItbWFpbi5jCitAQCAtMCwwICsxLDM5NyBAQAorKy8qIC0qLSBtb2Rl OiBDOyBjLWJhc2ljLW9mZnNldDogNDsgaW5kZW50LXRhYnMtbW9kZTogbmlsOyAtKi0gKi8KKysv KiB2aW06c2V0IGV0IHN0cz00OiAqLworKy8qIGJ1cyAtIFRoZSBJbnB1dCBCdXMKKysgKiBDb3B5 cmlnaHQgKEMpIDIwMTEgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+ CisrICogQ29weXJpZ2h0IChDKSAyMDExIFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwu Y29tPgorKyAqIENvcHlyaWdodCAoQykgMjAxMSBSZWQgSGF0LCBJbmMuCisrICoKKysgKiBUaGlz IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y CisrICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs IFB1YmxpYworKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IGVpdGhlcgorKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysgKgorKyAqIFRoaXMgbGlicmFyeSBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAqIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m CisrICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF LgkgU2VlIHRoZSBHTlUKKysgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y ZSBkZXRhaWxzLgorKyAqCisrICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlz IGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlCisrICogRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisrICogQm9zdG9uLCBNQSAw MjExMS0xMzA3LCBVU0EuCisrICovCisrI2lmZGVmIEhBVkVfQ09ORklHX0gKKysjaW5jbHVkZSA8 Y29uZmlnLmg+CisrI2VuZGlmCisrCisrI2luY2x1ZGUgPGdjb25mL2djb25mLWNsaWVudC5oPgor KyNpbmNsdWRlIDxpYnVzLmg+CisrI2luY2x1ZGUgPHN0ZGxpYi5oPgorKworKyNpZmRlZiBFTkFC TEVfTkxTCisrI2luY2x1ZGUgPGxvY2FsZS5oPgorKyNlbmRpZgorKworKyNpbmNsdWRlICJpYnVz LWVuZ2luZS14a2ItbWFpbi5oIgorKyNpbmNsdWRlICJ4a2J4bWwuaCIKKysKKysjZGVmaW5lIElC VVNfVFlQRV9YS0JfRU5HSU5FIChpYnVzX3hrYl9lbmdpbmVfZ2V0X3R5cGUgKCkpCisrCisrc3Rh dGljIElCdXNCdXMgKmJ1cyA9IE5VTEw7Cisrc3RhdGljIElCdXNGYWN0b3J5ICpmYWN0b3J5ID0g TlVMTDsKKytzdGF0aWMgSUJ1c0VuZ2luZUNsYXNzICpwYXJlbnRfY2xhc3MgPSBOVUxMOworK3N0 YXRpYyBnYm9vbGVhbiBpYnVzID0gRkFMU0U7Cisrc3RhdGljIGdib29sZWFuIHhtbCA9IEZBTFNF OworKworK3N0YXRpYyBjb25zdCBHT3B0aW9uRW50cnkgZW50cmllc1tdID0KKyt7CisrICAgIHsg ImlidXMiLCAnaScsIDAsIEdfT1BUSU9OX0FSR19OT05FLCAmaWJ1cywgImNvbXBvbmVudCBpcyBl eGVjdXRlZCBieSBpYnVzIiwgTlVMTCB9LAorKyAgICB7ICJ4bWwiLCAneCcsIDAsIEdfT1BUSU9O X0FSR19OT05FLCAmeG1sLCAicHJpbnQgY29tcG9uZW50IHhtbCIsIE5VTEwgfSwKICsgICAgeyBO VUxMIH0sCiArfTsKICsKQEAgLTI4MDgsMTYgKzM0NjYsMTYgQEAgaW5kZXggMDAwMDAwMC4uZTE4 NjFlOAogK30KIGRpZmYgLS1naXQgYS94a2IvaWJ1cy1lbmdpbmUteGtiLW1haW4uaCBiL3hrYi9p YnVzLWVuZ2luZS14a2ItbWFpbi5oCiBuZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAw MC4uODAwNzYzMQoraW5kZXggMDAwMDAwMC4uYzE3Yzg1NwogLS0tIC9kZXYvbnVsbAogKysrIGIv eGtiL2lidXMtZW5naW5lLXhrYi1tYWluLmgKIEBAIC0wLDAgKzEsNDYgQEAKICsvKiAtKi0gbW9k ZTogQzsgYy1iYXNpYy1vZmZzZXQ6IDQ7IGluZGVudC10YWJzLW1vZGU6IG5pbDsgLSotICovCiAr LyogdmltOnNldCBldCBzdHM9NDogKi8KICsvKiBidXMgLSBUaGUgSW5wdXQgQnVzCi0rICogQ29w eXJpZ2h0IChDKSAyMDEwIFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29t PgotKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDEwIFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdA Z21haWwuY29tPgotKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDEwIFJlZCBIYXQsIEluYy4KKysg KiBDb3B5cmlnaHQgKEMpIDIwMTEgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFp bC5jb20+CisrICogQ29weXJpZ2h0IChDKSAyMDExIFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdA Z21haWwuY29tPgorKyAqIENvcHlyaWdodCAoQykgMjAxMSBSZWQgSGF0LCBJbmMuCiArICoKICsg KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yCiArICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBH ZW5lcmFsIFB1YmxpYwpAQCAtMjg2MCwxNiArMzUxOCwxNiBAQCBpbmRleCAwMDAwMDAwLi44MDA3 NjMxCiArI2VuZGlmCiBkaWZmIC0tZ2l0IGEveGtiL2lidXMteGtiLW1haW4uYyBiL3hrYi9pYnVz LXhrYi1tYWluLmMKIG5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi45ZGI3ZDBh CitpbmRleCAwMDAwMDAwLi5lZjU3NTUzCiAtLS0gL2Rldi9udWxsCiArKysgYi94a2IvaWJ1cy14 a2ItbWFpbi5jCi1AQCAtMCwwICsxLDEwNSBAQAorQEAgLTAsMCArMSwxMTIgQEAKICsvKiAtKi0g bW9kZTogQzsgYy1iYXNpYy1vZmZzZXQ6IDQ7IGluZGVudC10YWJzLW1vZGU6IG5pbDsgLSotICov CiArLyogdmltOnNldCBldCBzdHM9NDogKi8KICsvKiBidXMgLSBUaGUgSW5wdXQgQnVzCi0rICog Q29weXJpZ2h0IChDKSAyMDEwIFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwu Y29tPgotKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDEwIFBlbmcgSHVhbmcgPHNoYXduLnAuaHVh bmdAZ21haWwuY29tPgotKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDEwIFJlZCBIYXQsIEluYy4K KysgKiBDb3B5cmlnaHQgKEMpIDIwMTEgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBn bWFpbC5jb20+CisrICogQ29weXJpZ2h0IChDKSAyMDExIFBlbmcgSHVhbmcgPHNoYXduLnAuaHVh bmdAZ21haWwuY29tPgorKyAqIENvcHlyaWdodCAoQykgMjAxMSBSZWQgSGF0LCBJbmMuCiArICoK ICsgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yCiArICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl ciBHZW5lcmFsIFB1YmxpYwpAQCAtMjkwMiw5ICszNTYwLDExIEBAIGluZGV4IDAwMDAwMDAuLjlk YjdkMGEKICsjaW5jbHVkZSAieGtibGliLmgiCiArCiArc3RhdGljIGdib29sZWFuIGdldF9sYXlv dXQgPSBGQUxTRTsKKytzdGF0aWMgZ2Jvb2xlYW4gZ2V0X2dyb3VwID0gRkFMU0U7CiArc3RhdGlj IGdjaGFyICpsYXlvdXQgPSBOVUxMOwogK3N0YXRpYyBnY2hhciAqbW9kZWwgPSBOVUxMOwogK3N0 YXRpYyBnY2hhciAqb3B0aW9uID0gTlVMTDsKKytzdGF0aWMgaW50IGdyb3VwID0gMDsKICsKICtz dGF0aWMgY29uc3QgR09wdGlvbkVudHJ5IGVudHJpZXNbXSA9CiArewpAQCAtMjkxMyw2ICszNTcz LDcgQEAgaW5kZXggMDAwMDAwMC4uOWRiN2QwYQogKyAgICB7ICJsYXlvdXQiLCAnbCcsIDAsIEdf T1BUSU9OX0FSR19TVFJJTkcsICZsYXlvdXQsIE5fKCJTZXQgeGtiIGxheW91dCIpLCAibGF5b3V0 IiB9LAogKyAgICB7ICJtb2RlbCIsICdtJywgMCwgR19PUFRJT05fQVJHX1NUUklORywgJm1vZGVs LCBOXygiU2V0IHhrYiBtb2RlbCIpLCAibW9kZWwiIH0sCiArICAgIHsgIm9wdGlvbiIsICdvJywg MCwgR19PUFRJT05fQVJHX1NUUklORywgJm9wdGlvbiwgTl8oIlNldCB4a2Igb3B0aW9uIiksICJv cHRpb24iIH0sCisrICAgIHsgImdldC1ncm91cCIsICdHJywgMCwgR19PUFRJT05fQVJHX05PTkUs ICZnZXRfZ3JvdXAsIE5fKCJHZXQgY3VycmVudCB4a2Igc3RhdGUiKSwgTlVMTCB9LAogKyAgICB7 IE5VTEwgfSwKICt9OwogKwpAQCAtMjk2NCw2ICszNjI1LDEwIEBAIGluZGV4IDAwMDAwMDAuLjlk YjdkMGEKICsgICAgICAgIGdfZnJlZSAobW9kZWwpOwogKyAgICAgICAgZ19mcmVlIChvcHRpb24p OwogKyAgICB9CisrICAgIGlmIChnZXRfZ3JvdXApIHsKKysgICAgICAgIGdyb3VwID0gaWJ1c194 a2JfZ2V0X2N1cnJlbnRfZ3JvdXAgKCk7CisrICAgICAgICBnX3ByaW50ZiAoImdyb3VwOiAlZFxu IiwgZ3JvdXApOworKyAgICB9CiArCiArICAgIGlidXNfeGtiX2Zpbml0ICgpOwogKwpAQCAtMzAw NSwxNiArMzY3MCwxNiBAQCBpbmRleCAwMDAwMDAwLi5iMTIxMmQxCiArPC94a2JsYXlvdXQ+CiBk aWZmIC0tZ2l0IGEveGtiL3hrYmxpYi5jIGIveGtiL3hrYmxpYi5jCiBuZXcgZmlsZSBtb2RlIDEw MDY0NAotaW5kZXggMDAwMDAwMC4uNjQwZjc4MworaW5kZXggMDAwMDAwMC4uMjkzY2RhZgogLS0t IC9kZXYvbnVsbAogKysrIGIveGtiL3hrYmxpYi5jCi1AQCAtMCwwICsxLDMwMyBAQAorQEAgLTAs MCArMSwzMjcgQEAKICsvKiAtKi0gbW9kZTogQzsgYy1iYXNpYy1vZmZzZXQ6IDQ7IGluZGVudC10 YWJzLW1vZGU6IG5pbDsgLSotICovCiArLyogdmltOnNldCBldCBzdHM9NDogKi8KICsvKiBidXMg LSBUaGUgSW5wdXQgQnVzCi0rICogQ29weXJpZ2h0IChDKSAyMDEwIFRha2FvIEZ1aml3YXJhIDx0 YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotKyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDEwIFBl bmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgotKyAqIENvcHlyaWdodCAoQykgMjAw OC0yMDEwIFJlZCBIYXQsIEluYy4KKysgKiBDb3B5cmlnaHQgKEMpIDIwMTEgVGFrYW8gRnVqaXdh cmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CisrICogQ29weXJpZ2h0IChDKSAyMDExIFBl bmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgorKyAqIENvcHlyaWdodCAoQykgMjAx MSBSZWQgSGF0LCBJbmMuCiArICoKICsgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiArICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAtMzI5Miw3ICszOTU3LDcg QEAgaW5kZXggMDAwMDAwMC4uNjQwZjc4MwogKwogKyAgICBpZiAoZGVmYXVsdF9sYXlvdXRzID09 IE5VTEwpIHsKICsgICAgICAgIGdfd2FybmluZyAoIllvdXIgc3lzdGVtIHNlZW1zIG5vdCB0byBz dXBwb3J0IFhLQi4iKTsKLSsgICAgICAgIHJldHVybiBOVUxMOworKyAgICAgICAgcmV0dXJuIEZB TFNFOwogKyAgICB9CiArCiArICAgIGlmIChsYXlvdXRzID09IE5VTEwgfHwgZ19zdHJjbXAwIChs YXlvdXRzLCAiZGVmYXVsdCIpID09IDApIHsKQEAgLTMzMTIsMTggKzM5NzcsNDIgQEAgaW5kZXgg MDAwMDAwMC4uNjQwZjc4MwogKwogKyAgICByZXR1cm4gcmV0dmFsOwogK30KKysKKytpbnQKKytp YnVzX3hrYl9nZXRfY3VycmVudF9ncm91cCAodm9pZCkKKyt7CisrICAgIERpc3BsYXkgKnhkaXNw bGF5ID0gZ2V0X3hkaXNwbGF5IChOVUxMKTsKKysgICAgWGtiU3RhdGVSZWMgc3RhdGU7CisrCisr ICAgIGlmIChkZWZhdWx0X2xheW91dHMgPT0gTlVMTCkgeworKyAgICAgICAgZ193YXJuaW5nICgi WW91ciBzeXN0ZW0gc2VlbXMgbm90IHRvIHN1cHBvcnQgWEtCLiIpOworKyAgICAgICAgcmV0dXJu IDA7CisrICAgIH0KKysKKysgICAgaWYgKHhkaXNwbGF5ID09IE5VTEwpIHsKKysgICAgICAgIGdf d2FybmluZyAoImlidXMteGtiIGlzIG5vdCBpbml0aWFsaXplZC4iKTsKKysgICAgICAgIHJldHVy biAwOworKyAgICB9CisrCisrICAgIGlmIChYa2JHZXRTdGF0ZSAoeGRpc3BsYXksIFhrYlVzZUNv cmVLYmQsICZzdGF0ZSkgIT0gU3VjY2VzcykgeworKyAgICAgICAgZ193YXJuaW5nICgiQ291bGQg bm90IGdldCBzdGF0ZSIpOworKyAgICAgICAgcmV0dXJuIDA7CisrICAgIH0KKysKKysgICAgcmV0 dXJuIHN0YXRlLmdyb3VwOworK30KIGRpZmYgLS1naXQgYS94a2IveGtibGliLmggYi94a2IveGti bGliLmgKIG5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi4wOWQ1MDZkCitpbmRl eCAwMDAwMDAwLi4xNWU1ZDE4CiAtLS0gL2Rldi9udWxsCiArKysgYi94a2IveGtibGliLmgKLUBA IC0wLDAgKzEsNDAgQEAKK0BAIC0wLDAgKzEsNDEgQEAKICsvKiAtKi0gbW9kZTogQzsgYy1iYXNp Yy1vZmZzZXQ6IDQ7IGluZGVudC10YWJzLW1vZGU6IG5pbDsgLSotICovCiArLyogdmltOnNldCBl dCBzdHM9NDogKi8KICsvKiBidXMgLSBUaGUgSW5wdXQgQnVzCi0rICogQ29weXJpZ2h0IChDKSAy MDEwIFRha2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotKyAqIENvcHly aWdodCAoQykgMjAwOC0yMDEwIFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgot KyAqIENvcHlyaWdodCAoQykgMjAwOC0yMDEwIFJlZCBIYXQsIEluYy4KKysgKiBDb3B5cmlnaHQg KEMpIDIwMTEgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CisrICog Q29weXJpZ2h0IChDKSAyMDExIFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgor KyAqIENvcHlyaWdodCAoQykgMjAxMSBSZWQgSGF0LCBJbmMuCiArICoKICsgKiBUaGlzIGxpYnJh cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiArICog bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp YwpAQCAtMzM1NSwyMSArNDA0NCwyMiBAQCBpbmRleCAwMDAwMDAwLi4wOWQ1MDZkCiArZ2Jvb2xl YW4gICAgICAgICBpYnVzX3hrYl9zZXRfbGF5b3V0ICAgICAgICAgICAgIChjb25zdCBjaGFyICps YXlvdXRzLAogKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgY2hhciAqdmFyaWFudHMsCiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpvcHRpb25zKTsKKytpbnQgICAgICAgICAg ICAgIGlidXNfeGtiX2dldF9jdXJyZW50X2dyb3VwICAgICAgKHZvaWQpOwogKwogK0dfRU5EX0RF Q0xTCiArI2VuZGlmCiBkaWZmIC0tZ2l0IGEveGtiL3hrYnhtbC5jIGIveGtiL3hrYnhtbC5jCiBu ZXcgZmlsZSBtb2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uZjU1ODJmZgoraW5kZXggMDAwMDAw MC4uMmNlN2JjZgogLS0tIC9kZXYvbnVsbAogKysrIGIveGtiL3hrYnhtbC5jCi1AQCAtMCwwICsx LDY5NiBAQAorQEAgLTAsMCArMSwzMzUgQEAKICsvKiAtKi0gbW9kZTogQzsgYy1iYXNpYy1vZmZz ZXQ6IDQ7IGluZGVudC10YWJzLW1vZGU6IG5pbDsgLSotICovCiArLyogdmltOnNldCBldCBzdHM9 NDogKi8KICsvKiBidXMgLSBUaGUgSW5wdXQgQnVzCi0rICogQ29weXJpZ2h0IChDKSAyMDEwIFRh a2FvIEZ1aml3YXJhIDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotKyAqIENvcHlyaWdodCAo QykgMjAwOC0yMDEwIFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgotKyAqIENv cHlyaWdodCAoQykgMjAwOC0yMDEwIFJlZCBIYXQsIEluYy4KKysgKiBDb3B5cmlnaHQgKEMpIDIw MTEgVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CisrICogQ29weXJp Z2h0IChDKSAyMDExIFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgorKyAqIENv cHlyaWdodCAoQykgMjAxMSBSZWQgSGF0LCBJbmMuCiArICoKICsgKiBUaGlzIGxpYnJhcnkgaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiArICogbW9kaWZ5 IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwpAQCAt MzM5MiwyOTQgKzQwODIsMjkgQEAgaW5kZXggMDAwMDAwMC4uZjU1ODJmZgogKwogKyNpbmNsdWRl IDxnbGliLmg+CiArCi0rI2luY2x1ZGUgInhrYnhtbC5oIgotKyNpbmNsdWRlICJpYnVzLmgiCi0r Ci0rI2lmbmRlZiBYS0JfUlVMRVNfWE1MX0ZJTEUKLSsjZGVmaW5lIFhLQl9SVUxFU19YTUxfRklM RSAiL3Vzci9zaGFyZS9YMTEveGtiL3J1bGVzL2V2ZGV2LnhtbCIKLSsjZW5kaWYKLSsKLSsjZGVm aW5lIElCVVNfWEtCX0NPTkZJR19SRUdJU1RSWV9HRVRfUFJJVkFURShvKSAgXAotKyAgIChHX1RZ UEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUgKChvKSwgSUJVU19UWVBFX1hLQl9DT05GSUdfUkVHSVNU UlksIElCdXNYS0JDb25maWdSZWdpc3RyeVByaXZhdGUpKQotKyNkZWZpbmUgSUJVU19YS0JfTEFZ T1VUX0NPTkZJR19HRVRfUFJJVkFURShvKSAgXAotKyAgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BS SVZBVEUgKChvKSwgSUJVU19UWVBFX1hLQl9MQVlPVVRfQ09ORklHLCBJQnVzWEtCTGF5b3V0Q29u ZmlnUHJpdmF0ZSkpCi0rCi0rdHlwZWRlZiBzdHJ1Y3QgX0lCdXNYS0JDb25maWdSZWdpc3RyeVBy aXZhdGUgSUJ1c1hLQkNvbmZpZ1JlZ2lzdHJ5UHJpdmF0ZTsKLSt0eXBlZGVmIHN0cnVjdCBfSUJ1 c1hLQkxheW91dENvbmZpZ1ByaXZhdGUgSUJ1c1hLQkxheW91dENvbmZpZ1ByaXZhdGU7Ci0rCi0r ZW51bSB7Ci0rICAgIFBST1BfMCwKLSsgICAgUFJPUF9TWVNURU1fQ09ORklHX0ZJTEUsCi0rfTsK LSsKLStzdHJ1Y3QgX0lCdXNYS0JDb25maWdSZWdpc3RyeVByaXZhdGUgewotKyAgICBHSGFzaFRh YmxlICpsYXlvdXRfbGlzdDsKLSsgICAgR0hhc2hUYWJsZSAqbGF5b3V0X2xhbmc7Ci0rICAgIEdI YXNoVGFibGUgKmxheW91dF9kZXNjOwotKyAgICBHSGFzaFRhYmxlICp2YXJpYW50X2Rlc2M7Ci0r fTsKLSsKLStzdHJ1Y3QgX0lCdXNYS0JMYXlvdXRDb25maWdQcml2YXRlIHsKLSsgICAgZ2NoYXIg KnN5c3RlbV9jb25maWdfZmlsZTsKLSsgICAgR0xpc3QgKnByZWxvYWRfbGF5b3V0czsKLSt9Owot KwotKy8qIGZ1bmN0aW9ucyBwcm90b3R5cGUgKi8KLStzdGF0aWMgdm9pZCAgICAgICAgIGlidXNf eGtiX2NvbmZpZ19yZWdpc3RyeV9kZXN0cm95Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChJQnVzWEtCQ29uZmlnUmVnaXN0cnkgKnhrYl9jb25maWcpOwotK3N0 YXRpYyB2b2lkICAgICAgICAgaWJ1c194a2JfbGF5b3V0X2NvbmZpZ19kZXN0cm95Ci0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJQnVzWEtCTGF5b3V0Q29uZmln ICp4a2JfbGF5b3V0X2NvbmZpZyk7Ci0rCi0rR19ERUZJTkVfVFlQRSAoSUJ1c1hLQkNvbmZpZ1Jl Z2lzdHJ5LCBpYnVzX3hrYl9jb25maWdfcmVnaXN0cnksIElCVVNfVFlQRV9PQkpFQ1QpCi0rR19E RUZJTkVfVFlQRSAoSUJ1c1hLQkxheW91dENvbmZpZywgaWJ1c194a2JfbGF5b3V0X2NvbmZpZywg SUJVU19UWVBFX09CSkVDVCkKLSsKLStzdGF0aWMgdm9pZAotK3BhcnNlX3hrYl94bWxfbGFuZ3Vh Z2VsaXN0X25vZGUgKElCdXNYS0JDb25maWdSZWdpc3RyeVByaXZhdGUgKnByaXYsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgWE1MTm9kZSAqcGFyZW50X25vZGUsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgKmxheW91dF9uYW1lKQotK3sK LSsgICAgWE1MTm9kZSAqbm9kZSA9IHBhcmVudF9ub2RlOwotKyAgICBYTUxOb2RlICpzdWJfbm9k ZTsKLSsgICAgR0xpc3QgKnA7Ci0rICAgIEdMaXN0ICpsYW5nX2xpc3QgPSBOVUxMOwotKwotKyAg ICBnX2Fzc2VydCAobm9kZSAhPSBOVUxMKTsKLSsgICAgZ19hc3NlcnQgKGxheW91dF9uYW1lICE9 IE5VTEwpOwotKyAgICBmb3IgKHAgPSBub2RlLT5zdWJfbm9kZXM7IHA7IHAgPSBwLT5uZXh0KSB7 Ci0rICAgICAgICBzdWJfbm9kZSA9IChYTUxOb2RlICopIHAtPmRhdGE7Ci0rICAgICAgICBpZiAo Z19zdHJjbXAwIChzdWJfbm9kZS0+bmFtZSwgImlzbzYzOUlkIikgPT0gMCkgewotKyAgICAgICAg ICAgIGxhbmdfbGlzdCA9IGdfbGlzdF9hcHBlbmQgKGxhbmdfbGlzdCwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoZ3BvaW50ZXIpIGdfc3RyZHVwIChzdWJfbm9kZS0+ dGV4dCkpOwotKyAgICAgICAgICAgIGNvbnRpbnVlOwotKyAgICAgICAgfQotKyAgICB9Ci0rICAg IGlmIChsYW5nX2xpc3QgPT0gTlVMTCkgewotKyAgICAgICAgLyogc29tZSBub2RlcyBoYXZlIG5v IGxhbmcgKi8KLSsgICAgICAgIHJldHVybjsKLSsgICAgfQotKyAgICBpZiAoZ19oYXNoX3RhYmxl X2xvb2t1cCAocHJpdi0+bGF5b3V0X2xhbmcsIGxheW91dF9uYW1lKSAhPSBOVUxMKSB7Ci0rICAg ICAgICBnX3dhcm5pbmcgKCJkdXBsaWNhdGVkIG5hbWUgJXMgZXhpc3RzIiwgbGF5b3V0X25hbWUp OwotKyAgICAgICAgcmV0dXJuOwotKyAgICB9Ci0rICAgIGdfaGFzaF90YWJsZV9pbnNlcnQgKHBy aXYtPmxheW91dF9sYW5nLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAoZ3BvaW50ZXIpIGdf c3RyZHVwIChsYXlvdXRfbmFtZSksCi0rICAgICAgICAgICAgICAgICAgICAgICAgIChncG9pbnRl cikgbGFuZ19saXN0KTsKLSt9Ci0rCi0rc3RhdGljIGNvbnN0IGdjaGFyICoKLStwYXJzZV94a2Jf eG1sX2NvbmZpZ2l0ZW1fbm9kZSAoSUJ1c1hLQkNvbmZpZ1JlZ2lzdHJ5UHJpdmF0ZSAqcHJpdiwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWE1MTm9kZSAqcGFyZW50X25vZGUpCi0r ewotKyAgICBYTUxOb2RlICpub2RlID0gcGFyZW50X25vZGU7Ci0rICAgIFhNTE5vZGUgKnN1Yl9u b2RlOwotKyAgICBHTGlzdCAqcDsKLSsgICAgZ2NoYXIgKm5hbWUgPSBOVUxMOwotKyAgICBnY2hh ciAqZGVzY3JpcHRpb24gPSBOVUxMOwotKwotKyAgICBnX2Fzc2VydCAobm9kZSAhPSBOVUxMKTsK LSsgICAgZm9yIChwID0gbm9kZS0+c3ViX25vZGVzOyBwOyBwID0gcC0+bmV4dCkgewotKyAgICAg ICAgc3ViX25vZGUgPSAoWE1MTm9kZSAqKSBwLT5kYXRhOwotKyAgICAgICAgaWYgKGdfc3RyY21w MCAoc3ViX25vZGUtPm5hbWUsICJuYW1lIikgPT0gMCkgewotKyAgICAgICAgICAgIG5hbWUgPSBz dWJfbm9kZS0+dGV4dDsKLSsgICAgICAgICAgICBjb250aW51ZTsKLSsgICAgICAgIH0KLSsgICAg ICAgIGlmIChnX3N0cmNtcDAgKHN1Yl9ub2RlLT5uYW1lLCAiZGVzY3JpcHRpb24iKSA9PSAwKSB7 Ci0rICAgICAgICAgICAgZGVzY3JpcHRpb24gPSBzdWJfbm9kZS0+dGV4dDsKLSsgICAgICAgICAg ICBjb250aW51ZTsKLSsgICAgICAgIH0KLSsgICAgICAgIGlmIChnX3N0cmNtcDAgKHN1Yl9ub2Rl LT5uYW1lLCAibGFuZ3VhZ2VMaXN0IikgPT0gMCkgewotKyAgICAgICAgICAgIGlmIChuYW1lID09 IE5VTEwpIHsKLSsgICAgICAgICAgICAgICAgZ193YXJuaW5nICgibGF5b3V0IG5hbWUgaXMgTlVM TCBpbiBub2RlICVzIiwgbm9kZS0+bmFtZSk7Ci0rICAgICAgICAgICAgICAgIGNvbnRpbnVlOwot KyAgICAgICAgICAgIH0KLSsgICAgICAgICAgICBwYXJzZV94a2JfeG1sX2xhbmd1YWdlbGlzdF9u b2RlIChwcml2LCBzdWJfbm9kZSwgbmFtZSk7Ci0rICAgICAgICAgICAgY29udGludWU7Ci0rICAg ICAgICB9Ci0rICAgIH0KLSsgICAgaWYgKG5hbWUgPT0gTlVMTCkgewotKyAgICAgICAgZ193YXJu aW5nICgiTm8gbmFtZSBpbiBsYXlvdXQgbm9kZSIpOwotKyAgICAgICAgcmV0dXJuIE5VTEw7Ci0r ICAgIH0KLSsgICAgaWYgKGdfaGFzaF90YWJsZV9sb29rdXAgKHByaXYtPmxheW91dF9kZXNjLCBu YW1lKSAhPSBOVUxMKSB7Ci0rICAgICAgICBnX3dhcm5pbmcgKCJkdXBsaWNhdGVkIG5hbWUgJXMg ZXhpc3RzIiwgbmFtZSk7Ci0rICAgICAgICByZXR1cm4gbmFtZTsKLSsgICAgfQotKyAgICBnX2hh c2hfdGFibGVfaW5zZXJ0IChwcml2LT5sYXlvdXRfZGVzYywKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgKGdwb2ludGVyKSBnX3N0cmR1cCAobmFtZSksCi0rICAgICAgICAgICAgICAgICAgICAg ICAgIChncG9pbnRlcikgZ19zdHJkdXAgKGRlc2NyaXB0aW9uKSk7Ci0rCi0rICAgIHJldHVybiBu YW1lOwotK30KLSsKLStzdGF0aWMgY29uc3QgZ2NoYXIgKgotK3BhcnNlX3hrYl94bWxfdmFyaWFu dF9jb25maWdpdGVtX25vZGUgKElCdXNYS0JDb25maWdSZWdpc3RyeVByaXZhdGUgKnByaXYsCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhNTE5vZGUgKnBhcmVudF9ub2RlLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqbGF5b3V0X25hbWUpCi0rewotKyAg ICBYTUxOb2RlICpub2RlID0gcGFyZW50X25vZGU7Ci0rICAgIFhNTE5vZGUgKnN1Yl9ub2RlOwot KyAgICBHTGlzdCAqcDsKLSsgICAgZ2NoYXIgKm5hbWUgPSBOVUxMOwotKyAgICBnY2hhciAqZGVz Y3JpcHRpb24gPSBOVUxMOwotKyAgICBnY2hhciAqdmFyaWFudF9sYW5nX25hbWUgPSBOVUxMOwot KwotKyAgICBnX2Fzc2VydCAobm9kZSAhPSBOVUxMKTsKLSsgICAgZ19hc3NlcnQgKGxheW91dF9u YW1lICE9IE5VTEwpOwotKyAgICBmb3IgKHAgPSBub2RlLT5zdWJfbm9kZXM7IHA7IHAgPSBwLT5u ZXh0KSB7Ci0rICAgICAgICBzdWJfbm9kZSA9IChYTUxOb2RlICopIHAtPmRhdGE7Ci0rICAgICAg ICBpZiAoZ19zdHJjbXAwIChzdWJfbm9kZS0+bmFtZSwgIm5hbWUiKSA9PSAwKSB7Ci0rICAgICAg ICAgICAgbmFtZSA9IHN1Yl9ub2RlLT50ZXh0OwotKyAgICAgICAgICAgIGNvbnRpbnVlOwotKyAg ICAgICAgfQotKyAgICAgICAgaWYgKGdfc3RyY21wMCAoc3ViX25vZGUtPm5hbWUsICJkZXNjcmlw dGlvbiIpID09IDApIHsKLSsgICAgICAgICAgICBkZXNjcmlwdGlvbiA9IHN1Yl9ub2RlLT50ZXh0 OwotKyAgICAgICAgICAgIGNvbnRpbnVlOwotKyAgICAgICAgfQotKyAgICAgICAgaWYgKGdfc3Ry Y21wMCAoc3ViX25vZGUtPm5hbWUsICJsYW5ndWFnZUxpc3QiKSA9PSAwKSB7Ci0rICAgICAgICAg ICAgaWYgKG5hbWUgPT0gTlVMTCkgewotKyAgICAgICAgICAgICAgICBnX3dhcm5pbmcgKCJsYXlv dXQgbmFtZSBpcyBOVUxMIGluIG5vZGUgJXMiLCBub2RlLT5uYW1lKTsKLSsgICAgICAgICAgICAg ICAgY29udGludWU7Ci0rICAgICAgICAgICAgfQotKyAgICAgICAgICAgIHZhcmlhbnRfbGFuZ19u YW1lID0gZ19zdHJkdXBfcHJpbnRmICgiJXMoJXMpIiwgbGF5b3V0X25hbWUsIG5hbWUpOwotKyAg ICAgICAgICAgIHBhcnNlX3hrYl94bWxfbGFuZ3VhZ2VsaXN0X25vZGUgKHByaXYsIHN1Yl9ub2Rl LCB2YXJpYW50X2xhbmdfbmFtZSk7Ci0rICAgICAgICAgICAgZ19mcmVlICh2YXJpYW50X2xhbmdf bmFtZSk7Ci0rICAgICAgICAgICAgY29udGludWU7Ci0rICAgICAgICB9Ci0rICAgIH0KLSsgICAg aWYgKG5hbWUgPT0gTlVMTCkgewotKyAgICAgICAgZ193YXJuaW5nICgiTm8gbmFtZSBpbiBsYXlv dXQgbm9kZSIpOwotKyAgICAgICAgcmV0dXJuIE5VTEw7Ci0rICAgIH0KLSsgICAgaWYgKGdfaGFz aF90YWJsZV9sb29rdXAgKHByaXYtPnZhcmlhbnRfZGVzYywgbmFtZSkgIT0gTlVMTCkgewotKyAg ICAgICAgLyogVGhpcyBpcyBhbiBleHBlY3RlZCBjYXNlLiAqLwotKyAgICAgICAgcmV0dXJuIG5h bWU7Ci0rICAgIH0KLSsgICAgZ19oYXNoX3RhYmxlX2luc2VydCAocHJpdi0+dmFyaWFudF9kZXNj LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAoZ3BvaW50ZXIpIGdfc3RyZHVwIChuYW1lKSwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgKGdwb2ludGVyKSBnX3N0cmR1cCAoZGVzY3JpcHRp b24pKTsKLSsgICAgcmV0dXJuIG5hbWU7Ci0rfQotKwotK3N0YXRpYyBjb25zdCBnY2hhciAqCi0r cGFyc2VfeGtiX3htbF92YXJpYW50X25vZGUgKElCdXNYS0JDb25maWdSZWdpc3RyeVByaXZhdGUg KnByaXYsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhNTE5vZGUgKnBhcmVudF9ub2Rl LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqbGF5b3V0X25hbWUp Ci0rewotKyAgICBYTUxOb2RlICpub2RlID0gcGFyZW50X25vZGU7Ci0rICAgIFhNTE5vZGUgKnN1 Yl9ub2RlOwotKyAgICBHTGlzdCAqcDsKLSsgICAgY29uc3QgZ2NoYXIgKnZhcmlhbnRfbmFtZSA9 IE5VTEw7Ci0rCi0rICAgIGdfYXNzZXJ0IChub2RlICE9IE5VTEwpOwotKyAgICBnX2Fzc2VydCAo bGF5b3V0X25hbWUgIT0gTlVMTCk7Ci0rICAgIGZvciAocCA9IG5vZGUtPnN1Yl9ub2RlczsgcDsg cCA9IHAtPm5leHQpIHsKLSsgICAgICAgIHN1Yl9ub2RlID0gKFhNTE5vZGUgKikgcC0+ZGF0YTsK LSsgICAgICAgIGlmIChnX3N0cmNtcDAgKHN1Yl9ub2RlLT5uYW1lLCAiY29uZmlnSXRlbSIpID09 IDApIHsKLSsgICAgICAgICAgICB2YXJpYW50X25hbWUgPSBwYXJzZV94a2JfeG1sX3ZhcmlhbnRf Y29uZmlnaXRlbV9ub2RlIChwcml2LCBzdWJfbm9kZSwgbGF5b3V0X25hbWUpOwotKyAgICAgICAg ICAgIGNvbnRpbnVlOwotKyAgICAgICAgfQotKyAgICB9Ci0rICAgIHJldHVybiB2YXJpYW50X25h bWU7Ci0rfQotKwotK3N0YXRpYyBHTGlzdCAqCi0rcGFyc2VfeGtiX3htbF92YXJpYW50bGlzdF9u b2RlIChJQnVzWEtCQ29uZmlnUmVnaXN0cnlQcml2YXRlICpwcml2LAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgWE1MTm9kZSAqcGFyZW50X25vZGUsCi0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqbGF5b3V0X25hbWUsCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBHTGlzdCAqdmFyaWFudF9saXN0KQotK3sKLSsgICAgWE1MTm9k ZSAqbm9kZSA9IHBhcmVudF9ub2RlOwotKyAgICBYTUxOb2RlICpzdWJfbm9kZTsKLSsgICAgR0xp c3QgKnA7Ci0rICAgIGNvbnN0IGdjaGFyICp2YXJpYW50X25hbWUgPSBOVUxMOwotKwotKyAgICBn X2Fzc2VydCAobm9kZSAhPSBOVUxMKTsKLSsgICAgZ19hc3NlcnQgKGxheW91dF9uYW1lICE9IE5V TEwpOwotKyAgICBmb3IgKHAgPSBub2RlLT5zdWJfbm9kZXM7IHA7IHAgPSBwLT5uZXh0KSB7Ci0r ICAgICAgICBzdWJfbm9kZSA9IChYTUxOb2RlICopIHAtPmRhdGE7Ci0rICAgICAgICBpZiAoZ19z dHJjbXAwIChzdWJfbm9kZS0+bmFtZSwgInZhcmlhbnQiKSA9PSAwKSB7Ci0rICAgICAgICAgICAg dmFyaWFudF9uYW1lID0gcGFyc2VfeGtiX3htbF92YXJpYW50X25vZGUgKHByaXYsIHN1Yl9ub2Rl LCBsYXlvdXRfbmFtZSk7Ci0rICAgICAgICAgICAgaWYgKHZhcmlhbnRfbmFtZSAhPSBOVUxMKSB7 Ci0rICAgICAgICAgICAgICAgIHZhcmlhbnRfbGlzdCA9IGdfbGlzdF9hcHBlbmQgKHZhcmlhbnRf bGlzdCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdw b2ludGVyKSBnX3N0cmR1cCAodmFyaWFudF9uYW1lKSk7Ci0rICAgICAgICAgICAgfQotKyAgICAg ICAgICAgIGNvbnRpbnVlOwotKyAgICAgICAgfQotKyAgICB9Ci0rICAgIHJldHVybiB2YXJpYW50 X2xpc3Q7Ci0rfQorKyNpbmNsdWRlICJ4a2J4bWwuaCIKKysjaW5jbHVkZSAiaWJ1cy5oIgogKwot K3N0YXRpYyB2b2lkCi0rcGFyc2VfeGtiX3htbF9sYXlvdXRfbm9kZSAoSUJ1c1hLQkNvbmZpZ1Jl Z2lzdHJ5UHJpdmF0ZSAqcHJpdiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICBYTUxOb2Rl ICpwYXJlbnRfbm9kZSkKLSt7Ci0rICAgIFhNTE5vZGUgKm5vZGUgPSBwYXJlbnRfbm9kZTsKLSsg ICAgWE1MTm9kZSAqc3ViX25vZGU7Ci0rICAgIEdMaXN0ICpwOwotKyAgICBjb25zdCBnY2hhciAq bmFtZSA9IE5VTEw7Ci0rICAgIEdMaXN0ICp2YXJpYW50X2xpc3QgPSBOVUxMOworKyNkZWZpbmUg SUJVU19YS0JfTEFZT1VUX0NPTkZJR19HRVRfUFJJVkFURShvKSAgXAorKyAgIChHX1RZUEVfSU5T VEFOQ0VfR0VUX1BSSVZBVEUgKChvKSwgSUJVU19UWVBFX1hLQl9MQVlPVVRfQ09ORklHLCBJQnVz WEtCTGF5b3V0Q29uZmlnUHJpdmF0ZSkpCiArCi0rICAgIGdfYXNzZXJ0IChub2RlICE9IE5VTEwp OwotKyAgICBmb3IgKHAgPSBub2RlLT5zdWJfbm9kZXM7IHA7IHAgPSBwLT5uZXh0KSB7Ci0rICAg ICAgICBzdWJfbm9kZSA9IChYTUxOb2RlICopIHAtPmRhdGE7Ci0rICAgICAgICBpZiAoZ19zdHJj bXAwIChzdWJfbm9kZS0+bmFtZSwgImNvbmZpZ0l0ZW0iKSA9PSAwKSB7Ci0rICAgICAgICAgICAg bmFtZSA9IHBhcnNlX3hrYl94bWxfY29uZmlnaXRlbV9ub2RlIChwcml2LCBzdWJfbm9kZSk7Ci0r ICAgICAgICAgICAgY29udGludWU7Ci0rICAgICAgICB9Ci0rICAgICAgICBpZiAoZ19zdHJjbXAw IChzdWJfbm9kZS0+bmFtZSwgInZhcmlhbnRMaXN0IikgPT0gMCkgewotKyAgICAgICAgICAgIGlm IChuYW1lID09IE5VTEwpIHsKLSsgICAgICAgICAgICAgICAgZ193YXJuaW5nICgibGF5b3V0IG5h bWUgaXMgTlVMTCBpbiBub2RlICVzIiwgbm9kZS0+bmFtZSk7Ci0rICAgICAgICAgICAgICAgIGNv bnRpbnVlOwotKyAgICAgICAgICAgIH0KLSsgICAgICAgICAgICB2YXJpYW50X2xpc3QgPSBwYXJz ZV94a2JfeG1sX3ZhcmlhbnRsaXN0X25vZGUgKHByaXYsIHN1Yl9ub2RlLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHZhcmlhbnRfbGlzdCk7Ci0rICAgICAgICAgICAgY29udGludWU7Ci0rICAgICAgICB9Ci0rICAg IH0KLSsgICAgaWYgKGdfaGFzaF90YWJsZV9sb29rdXAgKHByaXYtPmxheW91dF9saXN0LCBuYW1l KSAhPSBOVUxMKSB7Ci0rICAgICAgICBnX3dhcm5pbmcgKCJkdXBsaWNhdGVkIG5hbWUgJXMgZXhp c3RzIiwgbmFtZSk7Ci0rICAgICAgICByZXR1cm47Ci0rICAgIH0KLSsgICAgZ19oYXNoX3RhYmxl X2luc2VydCAocHJpdi0+bGF5b3V0X2xpc3QsCi0rICAgICAgICAgICAgICAgICAgICAgICAgIChn cG9pbnRlcikgZ19zdHJkdXAgKG5hbWUpLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAoZ3Bv aW50ZXIpIHZhcmlhbnRfbGlzdCk7Ci0rfQorK3R5cGVkZWYgc3RydWN0IF9JQnVzWEtCTGF5b3V0 Q29uZmlnUHJpdmF0ZSBJQnVzWEtCTGF5b3V0Q29uZmlnUHJpdmF0ZTsKICsKLStzdGF0aWMgdm9p ZAotK3BhcnNlX3hrYl94bWxfdG9wX25vZGUgKElCdXNYS0JDb25maWdSZWdpc3RyeVByaXZhdGUg KnByaXYsCi0rICAgICAgICAgICAgICAgICAgICAgICAgWE1MTm9kZSAqcGFyZW50X25vZGUpCi0r ewotKyAgICBYTUxOb2RlICpub2RlID0gcGFyZW50X25vZGU7Ci0rICAgIFhNTE5vZGUgKnN1Yl9u b2RlOwotKyAgICBHTGlzdCAqcDsKKytlbnVtIHsKKysgICAgUFJPUF8wLAorKyAgICBQUk9QX1NZ U1RFTV9DT05GSUdfRklMRSwKKyt9OwogKwotKyAgICBnX2Fzc2VydCAocHJpdiAhPSBOVUxMKTsK LSsgICAgZ19hc3NlcnQgKG5vZGUgIT0gTlVMTCk7Cisrc3RydWN0IF9JQnVzWEtCTGF5b3V0Q29u ZmlnUHJpdmF0ZSB7CisrICAgIGdjaGFyICpzeXN0ZW1fY29uZmlnX2ZpbGU7CisrICAgIEdMaXN0 ICpwcmVsb2FkX2xheW91dHM7CisrfTsKICsKLSsgICAgaWYgKGdfc3RyY21wMCAobm9kZS0+bmFt ZSwgInhrYkNvbmZpZ1JlZ2lzdHJ5IikgIT0gMCkgewotKyAgICAgICAgZ193YXJuaW5nICgibm9k ZSBoYXMgbm8geGtiQ29uZmlnUmVnaXN0cnkgbmFtZSIpOwotKyAgICAgICAgcmV0dXJuOwotKyAg ICB9Ci0rICAgIGZvciAocCA9IG5vZGUtPnN1Yl9ub2RlczsgcDsgcCA9IHAtPm5leHQpIHsKLSsg ICAgICAgIHN1Yl9ub2RlID0gKFhNTE5vZGUgKikgcC0+ZGF0YTsKLSsgICAgICAgIGlmIChnX3N0 cmNtcDAgKHN1Yl9ub2RlLT5uYW1lLCAibGF5b3V0TGlzdCIpID09IDApIHsKLSsgICAgICAgICAg ICBicmVhazsKLSsgICAgICAgIH0KLSsgICAgfQotKyAgICBpZiAocCA9PSBOVUxMKSB7Ci0rICAg ICAgICBnX3dhcm5pbmcgKCJ4a2JDb25maWdSZWdpc3RyeSBub2RlIGhhcyBubyBsYXlvdXRMaXN0 IG5vZGUiKTsKLSsgICAgICAgIHJldHVybjsKLSsgICAgfQotKyAgICBub2RlID0gc3ViX25vZGU7 Ci0rICAgIGZvciAocCA9IG5vZGUtPnN1Yl9ub2RlczsgcDsgcCA9IHAtPm5leHQpIHsKLSsgICAg ICAgIHN1Yl9ub2RlID0gKFhNTE5vZGUgKikgcC0+ZGF0YTsKLSsgICAgICAgIGlmIChnX3N0cmNt cDAgKHN1Yl9ub2RlLT5uYW1lLCAibGF5b3V0IikgPT0gMCkgewotKyAgICAgICAgICAgIHBhcnNl X3hrYl94bWxfbGF5b3V0X25vZGUgKHByaXYsIHN1Yl9ub2RlKTsKLSsgICAgICAgICAgICBjb250 aW51ZTsKLSsgICAgICAgIH0KLSsgICAgfQotK30KKysvKiBmdW5jdGlvbnMgcHJvdG90eXBlICov Cisrc3RhdGljIHZvaWQgICAgICAgICBpYnVzX3hrYl9sYXlvdXRfY29uZmlnX2Rlc3Ryb3kKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKElCdXNYS0JMYXlvdXRD b25maWcgKnhrYl9sYXlvdXRfY29uZmlnKTsKKysKKytHX0RFRklORV9UWVBFIChJQnVzWEtCTGF5 b3V0Q29uZmlnLCBpYnVzX3hrYl9sYXlvdXRfY29uZmlnLCBJQlVTX1RZUEVfT0JKRUNUKQogKwog K3N0YXRpYyB2b2lkCiArZnJlZV9sYW5nX2xpc3QgKEdMaXN0ICpsaXN0KQpAQCAtMzY5MywzNSAr NDExOCw2IEBAIGluZGV4IDAwMDAwMDAuLmY1NTgyZmYKICsgICAgZ19saXN0X2ZyZWUgKGxpc3Qp OwogK30KICsKLStzdGF0aWMgdm9pZAotK3BhcnNlX3hrYl9jb25maWdfcmVnaXN0cnlfZmlsZSAo SUJ1c1hLQkNvbmZpZ1JlZ2lzdHJ5UHJpdmF0ZSAqcHJpdiwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IGdjaGFyICpmaWxlKQotK3sKLSsgICAgWE1MTm9kZSAqbm9kZTsK LSsKLSsgICAgZ19hc3NlcnQgKGZpbGUgIT0gTlVMTCk7Ci0rCi0rICAgIHByaXYtPmxheW91dF9s aXN0ID0gZ19oYXNoX3RhYmxlX25ld19mdWxsIChnX3N0cl9oYXNoLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEdFcXVhbEZ1bmMpIGdfc3RyX2VxdWFs LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEdEZXN0 cm95Tm90aWZ5KSBnX2ZyZWUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoR0Rlc3Ryb3lOb3RpZnkpIGZyZWVfbGFuZ19saXN0KTsKLSsgICAgcHJpdi0+ bGF5b3V0X2Rlc2MgPSBnX2hhc2hfdGFibGVfbmV3X2Z1bGwgKGdfc3RyX2hhc2gsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR0VxdWFsRnVuYykgZ19z dHJfZXF1YWwsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoR0Rlc3Ryb3lOb3RpZnkpIGdfZnJlZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChHRGVzdHJveU5vdGlmeSkgZ19mcmVlKTsKLSsgICAgcHJpdi0+ bGF5b3V0X2xhbmcgPSBnX2hhc2hfdGFibGVfbmV3X2Z1bGwgKGdfc3RyX2hhc2gsCi0rICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR0VxdWFsRnVuYykgZ19z dHJfZXF1YWwsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoR0Rlc3Ryb3lOb3RpZnkpIGdfZnJlZSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChHRGVzdHJveU5vdGlmeSkgZnJlZV9sYW5nX2xpc3QpOwotKyAg ICBwcml2LT52YXJpYW50X2Rlc2MgPSBnX2hhc2hfdGFibGVfbmV3X2Z1bGwgKGdfc3RyX2hhc2gs Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoR0VxdWFs RnVuYykgZ19zdHJfZXF1YWwsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoR0Rlc3Ryb3lOb3RpZnkpIGdfZnJlZSwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChHRGVzdHJveU5vdGlmeSkgZ19mcmVlKTsKLSsg ICAgbm9kZSA9IGlidXNfeG1sX3BhcnNlX2ZpbGUgKGZpbGUpOwotKyAgICBwYXJzZV94a2JfeG1s X3RvcF9ub2RlIChwcml2LCBub2RlKTsKLSsgICAgaWJ1c194bWxfZnJlZSAobm9kZSk7Ci0rfQot KwogK3N0YXRpYyBHTGlzdCAqCiArcGFyc2VfeGtibGF5b3V0Y29uZmlnX2ZpbGUgKGdjaGFyICpw YXRoKQogK3sKQEAgLTM3OTQsNDcgKzQxOTAsNiBAQCBpbmRleCAwMDAwMDAwLi5mNTU4MmZmCiAr fQogKwogK3N0YXRpYyB2b2lkCi0raWJ1c194a2JfY29uZmlnX3JlZ2lzdHJ5X2luaXQgKElCdXNY S0JDb25maWdSZWdpc3RyeSAqeGtiX2NvbmZpZykKLSt7Ci0rICAgIElCdXNYS0JDb25maWdSZWdp c3RyeVByaXZhdGUgKnByaXY7Ci0rICAgIGNvbnN0IGdjaGFyICpmaWxlID0gWEtCX1JVTEVTX1hN TF9GSUxFOwotKwotKyAgICBwcml2ID0gSUJVU19YS0JfQ09ORklHX1JFR0lTVFJZX0dFVF9QUklW QVRFICh4a2JfY29uZmlnKTsKLSsgICAgcGFyc2VfeGtiX2NvbmZpZ19yZWdpc3RyeV9maWxlIChw cml2LCBmaWxlKTsKLSt9Ci0rCi0rc3RhdGljIHZvaWQKLStpYnVzX3hrYl9jb25maWdfcmVnaXN0 cnlfZGVzdHJveSAoSUJ1c1hLQkNvbmZpZ1JlZ2lzdHJ5ICp4a2JfY29uZmlnKQotK3sKLSsgICAg SUJ1c1hLQkNvbmZpZ1JlZ2lzdHJ5UHJpdmF0ZSAqcHJpdjsKLSsKLSsgICAgZ19yZXR1cm5faWZf ZmFpbCAoeGtiX2NvbmZpZyAhPSBOVUxMKTsKLSsKLSsgICAgcHJpdiA9IElCVVNfWEtCX0NPTkZJ R19SRUdJU1RSWV9HRVRfUFJJVkFURSAoeGtiX2NvbmZpZyk7Ci0rCi0rICAgIGdfaGFzaF90YWJs ZV9kZXN0cm95IChwcml2LT5sYXlvdXRfbGlzdCk7Ci0rICAgIHByaXYtPmxheW91dF9saXN0ID0g TlVMTDsKLSsgICAgZ19oYXNoX3RhYmxlX2Rlc3Ryb3kgKHByaXYtPmxheW91dF9sYW5nKTsKLSsg ICAgcHJpdi0+bGF5b3V0X2xhbmc9IE5VTEw7Ci0rICAgIGdfaGFzaF90YWJsZV9kZXN0cm95IChw cml2LT5sYXlvdXRfZGVzYyk7Ci0rICAgIHByaXYtPmxheW91dF9kZXNjPSBOVUxMOwotKyAgICBn X2hhc2hfdGFibGVfZGVzdHJveSAocHJpdi0+dmFyaWFudF9kZXNjKTsKLSsgICAgcHJpdi0+dmFy aWFudF9kZXNjID0gTlVMTDsKLSsKLSsgICAgSUJVU19PQkpFQ1RfQ0xBU1MoaWJ1c194a2JfY29u ZmlnX3JlZ2lzdHJ5X3BhcmVudF9jbGFzcyktPmRlc3Ryb3kgKElCVVNfT0JKRUNUICh4a2JfY29u ZmlnKSk7Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0raWJ1c194a2JfY29uZmlnX3JlZ2lzdHJ5X2Ns YXNzX2luaXQgKElCdXNYS0JDb25maWdSZWdpc3RyeUNsYXNzICprbGFzcykKLSt7Ci0rICAgIElC dXNPYmplY3RDbGFzcyAqaWJ1c19vYmplY3RfY2xhc3MgPSBJQlVTX09CSkVDVF9DTEFTUyAoa2xh c3MpOwotKwotKyAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUgKGtsYXNzLCBzaXplb2YgKElC dXNYS0JDb25maWdSZWdpc3RyeVByaXZhdGUpKTsKLSsKLSsgICAgaWJ1c19vYmplY3RfY2xhc3Mt PmRlc3Ryb3kgPSAoSUJ1c09iamVjdERlc3Ryb3lGdW5jKSBpYnVzX3hrYl9jb25maWdfcmVnaXN0 cnlfZGVzdHJveTsKLSt9Ci0rCi0rc3RhdGljIHZvaWQKICtpYnVzX3hrYl9sYXlvdXRfY29uZmln X2luaXQgKElCdXNYS0JMYXlvdXRDb25maWcgKnhrYl9sYXlvdXRfY29uZmlnKQogK3sKICsgICAg SUJ1c1hLQkxheW91dENvbmZpZ1ByaXZhdGUgKnByaXY7CkBAIC0zOTQ1LDMyICs0MzAwLDYgQEAg aW5kZXggMDAwMDAwMC4uZjU1ODJmZgogKyAgICAgICAgICAgICAgICAgICAgICAgIEdfUEFSQU1f UkVBRFdSSVRFIHwgR19QQVJBTV9DT05TVFJVQ1RfT05MWSkpOwogK30KICsKLStJQnVzWEtCQ29u ZmlnUmVnaXN0cnkgKgotK2lidXNfeGtiX2NvbmZpZ19yZWdpc3RyeV9uZXcgKHZvaWQpCi0rewot KyAgICBJQnVzWEtCQ29uZmlnUmVnaXN0cnkgKnhrYl9jb25maWc7Ci0rCi0rICAgIHhrYl9jb25m aWcgPSBJQlVTX1hLQl9DT05GSUdfUkVHSVNUUlkgKGdfb2JqZWN0X25ldyAoSUJVU19UWVBFX1hL Ql9DT05GSUdfUkVHSVNUUlksIE5VTEwpKTsKLSsgICAgcmV0dXJuIHhrYl9jb25maWc7Ci0rfQot KwotKyNkZWZpbmUgVEFCTEVfRlVOQyhmaWVsZF9uYW1lKSBjb25zdCBHSGFzaFRhYmxlICogICAg ICAgICAgICAgICAgICAgICAgIFwKLStpYnVzX3hrYl9jb25maWdfcmVnaXN0cnlfZ2V0XyMjZmll bGRfbmFtZSAgKElCdXNYS0JDb25maWdSZWdpc3RyeSAqeGtiX2NvbmZpZykgXAotK3sgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKLSsgICAgSUJ1c1hLQkNvbmZpZ1JlZ2lzdHJ5UHJpdmF0ZSAqcHJpdjsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotKyAgICBnX3Jl dHVybl92YWxfaWZfZmFpbCAoeGtiX2NvbmZpZyAhPSBOVUxMLCBOVUxMKTsgICAgICAgICAgICAg ICAgICAgIFwKLSsgICAgcHJpdiA9IElCVVNfWEtCX0NPTkZJR19SRUdJU1RSWV9HRVRfUFJJVkFU RSAoeGtiX2NvbmZpZyk7ICAgICAgICAgICBcCi0rICAgIHJldHVybiBwcml2LT5maWVsZF9uYW1l OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotK30KLSsKLStU QUJMRV9GVU5DIChsYXlvdXRfbGlzdCkKLStUQUJMRV9GVU5DIChsYXlvdXRfbGFuZykKLStUQUJM RV9GVU5DIChsYXlvdXRfZGVzYykKLStUQUJMRV9GVU5DICh2YXJpYW50X2Rlc2MpCi0rCi0rI3Vu ZGVmIFRBQkxFX0ZVTkMKLSsKICtJQnVzQ29tcG9uZW50ICoKICtpYnVzX3hrYl9jb21wb25lbnRf bmV3ICh2b2lkKQogK3sKQEAgLTQwNjIsMTYgKzQzOTEsMTYgQEAgaW5kZXggMDAwMDAwMC4uZjU1 ODJmZgogK30KIGRpZmYgLS1naXQgYS94a2IveGtieG1sLmggYi94a2IveGtieG1sLmgKIG5ldyBm aWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAwMDAwLi5mNDg1OGZhCitpbmRleCAwMDAwMDAwLi41 NjgxMWVmCiAtLS0gL2Rldi9udWxsCiArKysgYi94a2IveGtieG1sLmgKLUBAIC0wLDAgKzEsMTg5 IEBACitAQCAtMCwwICsxLDExMCBAQAogKy8qIC0qLSBtb2RlOiBDOyBjLWJhc2ljLW9mZnNldDog NDsgaW5kZW50LXRhYnMtbW9kZTogbmlsOyAtKi0gKi8KICsvKiB2aW06c2V0IGV0IHN0cz00OiAq LwogKy8qIGJ1cyAtIFRoZSBJbnB1dCBCdXMKLSsgKiBDb3B5cmlnaHQgKEMpIDIwMTAgVGFrYW8g RnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+Ci0rICogQ29weXJpZ2h0IChDKSAy MDA4LTIwMTAgUGVuZyBIdWFuZyA8c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+Ci0rICogQ29weXJp Z2h0IChDKSAyMDA4LTIwMTAgUmVkIEhhdCwgSW5jLgorKyAqIENvcHlyaWdodCAoQykgMjAxMSBU YWthbyBGdWppd2FyYSA8dGFrYW8uZnVqaXdhcmExQGdtYWlsLmNvbT4KKysgKiBDb3B5cmlnaHQg KEMpIDIwMTEgUGVuZyBIdWFuZyA8c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+CisrICogQ29weXJp Z2h0IChDKSAyMDExIFJlZCBIYXQsIEluYy4KICsgKgogKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICsgKiBtb2RpZnkgaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCkBAIC00MDg4 LDI4ICs0NDE3LDE0IEBAIGluZGV4IDAwMDAwMDAuLmY0ODU4ZmEKICsgKiBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKICsgKiBCb3N0 b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KICsgKi8KLSsjaWZuZGVmIF9fSUJVU19YS0JfSF8KLSsj ZGVmaW5lIF9fSUJVU19YS0JfSF8KKysjaWZuZGVmIF9fWEtCWE1MX0hfCisrI2RlZmluZSBfX1hL QlhNTF9IXwogKwogKyNpbmNsdWRlICJpYnVzLmgiCiArCiArLyoKICsgKiBUeXBlIG1hY3Jvcy4K ICsgKi8KLSsvKiBkZWZpbmUgSUJ1c1hLQkNvbmZpZ1JlZ2lzdHJ5IG1hY3JvcyAqLwotKyNkZWZp bmUgSUJVU19UWVBFX1hLQl9DT05GSUdfUkVHSVNUUlkgICAgICAgICAgICAgICAgICAgXAotKyAg ICAoaWJ1c194a2JfY29uZmlnX3JlZ2lzdHJ5X2dldF90eXBlICgpKQotKyNkZWZpbmUgSUJVU19Y S0JfQ09ORklHX1JFR0lTVFJZKG9iaikgICAgICAgICAgICAgICAgICAgXAotKyAgICAoR19UWVBF X0NIRUNLX0lOU1RBTkNFX0NBU1QgKChvYmopLCBJQlVTX1RZUEVfWEtCX0NPTkZJR19SRUdJU1RS WSwgSUJ1c1hLQkNvbmZpZ1JlZ2lzdHJ5KSkKLSsjZGVmaW5lIElCVVNfWEtCX0NPTkZJR19SRUdJ U1RSWV9DTEFTUyhrbGFzcykgICAgICAgICAgIFwKLSsgICAgKEdfVFlQRV9DSEVDS19DTEFTU19D QVNUICgoa2xhc3MpLCBJQlVTX1RZUEVfWEtCX0NPTkZJR19SRUdJU1RSWSwgSUJ1c1hLQkNvbmZp Z1JlZ2lzdHJ5Q2xhc3MpKQotKyNkZWZpbmUgSUJVU19JU19YS0JfQ09ORklHX1JFR0lTVFJZKG9i aikgICAgICAgICAgICAgICAgXAotKyAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChv YmopLCBJQlVTX1RZUEVfWEtCX0NPTkZJR19SRUdJU1RSWSkpCi0rI2RlZmluZSBJQlVTX0lTX1hL Ql9DT05GSUdfUkVHSVNUUllfQ0xBU1Moa2xhc3MpICAgICAgICBcCi0rICAgIChHX1RZUEVfQ0hF Q0tfQ0xBU1NfVFlQRSAoKGtsYXNzKSwgSUJVU19UWVBFX1hLQl9DT05GSUdfUkVHSVNUUlkpKQot KyNkZWZpbmUgSUJVU19YS0JfQ09ORklHX1JFR0lTVFJZX0dFVF9DTEFTUyhvYmopICAgICAgICAg XAotKyAgICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUyAoKG9iaiksIElCVVNfVFlQRV9YS0Jf Q09ORklHX1JFR0lTVFJZLCBJQnVzWEtCQ29uZmlnUmVnaXN0cnlDbGFzcykpCi0rCiArLyogZGVm aW5lIElCdXNYS0JMYXlvdXRDb25maWcgbWFjcm9zICovCiArI2RlZmluZSBJQlVTX1RZUEVfWEtC X0xBWU9VVF9DT05GSUcgICAgICAgICAgICAgICAgICAgICBcCiArICAgIChpYnVzX3hrYl9sYXlv dXRfY29uZmlnX2dldF90eXBlICgpKQpAQCAtNDEyNiwyMyArNDQ0MSw5IEBAIGluZGV4IDAwMDAw MDAuLmY0ODU4ZmEKICsKICtHX0JFR0lOX0RFQ0xTCiArCi0rdHlwZWRlZiBzdHJ1Y3QgX0lCdXNY S0JDb25maWdSZWdpc3RyeSBJQnVzWEtCQ29uZmlnUmVnaXN0cnk7Ci0rdHlwZWRlZiBzdHJ1Y3Qg X0lCdXNYS0JDb25maWdSZWdpc3RyeUNsYXNzIElCdXNYS0JDb25maWdSZWdpc3RyeUNsYXNzOwog K3R5cGVkZWYgc3RydWN0IF9JQnVzWEtCTGF5b3V0Q29uZmlnIElCdXNYS0JMYXlvdXRDb25maWc7 CiArdHlwZWRlZiBzdHJ1Y3QgX0lCdXNYS0JMYXlvdXRDb25maWdDbGFzcyBJQnVzWEtCTGF5b3V0 Q29uZmlnQ2xhc3M7CiArCi0rc3RydWN0IF9JQnVzWEtCQ29uZmlnUmVnaXN0cnkgewotKyAgICBJ QnVzT2JqZWN0IHBhcmVudDsKLSt9OwotKwotK3N0cnVjdCBfSUJ1c1hLQkNvbmZpZ1JlZ2lzdHJ5 Q2xhc3MgewotKyAgICBJQnVzT2JqZWN0Q2xhc3MgcGFyZW50OwotKyAgICAvKiBzaWduYWxzICov Ci0rICAgIC8qPCBwcml2YXRlID4qLwotKyAgICAvKiBwYWRkaW5nICovCi0rICAgIGdwb2ludGVy IHBkdW1teVs4XTsKLSt9OwotKwogK3N0cnVjdCBfSUJ1c1hLQkxheW91dENvbmZpZyB7CiArICAg IElCdXNPYmplY3QgcGFyZW50OwogK307CkBAIC00MTU2LDU3ICs0NDU3LDYgQEAgaW5kZXggMDAw MDAwMC4uZjQ4NThmYQogK307CiArCiArCi0rR1R5cGUgICAgICAgICAgICBpYnVzX3hrYl9jb25m aWdfcmVnaXN0cnlfZ2V0X3R5cGUKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKHZvaWQpOwotKy8qKgotKyAqIGlidXNfeGtiX2NvbmZpZ19yZWdpc3Ry eV9uZXc6Ci0rICogQHJldHVybnM6IEEgbmV3bHkgYWxsb2NhdGVkIElCdXNYS0JDb25maWdSZWdp c3RyeQotKyAqCi0rICogTmV3IGFuIElCdXNYS0JDb25maWdSZWdpc3RyeS4KLSsgKi8KLStJQnVz WEtCQ29uZmlnUmVnaXN0cnkgKgotKyAgICAgICAgICAgICAgICAgaWJ1c194a2JfY29uZmlnX3Jl Z2lzdHJ5X25ldwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAodm9pZCk7Ci0rLyoqCi0rICogaWJ1c194a2JfY29uZmlnX3JlZ2lzdHJ5X2dldF9sYXlv dXRfbGlzdDoKLSsgKiBAeGtiX2NvbmZpZzogQW4gSUJ1c1hLQkNvbmZpZ1JlZ2lzdHJ5LgotKyAq IEByZXR1cm5zOiBBIGNvbnN0IEdIYXNoVGFibGUKLSsgKgotKyAqIGEgY29uc3QgR0hhc2hUYWJs ZQotKyAqLwotK2NvbnN0IEdIYXNoVGFibGUgKgotKyAgICAgICAgICAgICAgICAgaWJ1c194a2Jf Y29uZmlnX3JlZ2lzdHJ5X2dldF9sYXlvdXRfbGlzdAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoSUJ1c1hLQkNvbmZpZ1JlZ2lzdHJ5ICp4a2JfY29u ZmlnKTsKLSsvKioKLSsgKiBpYnVzX3hrYl9jb25maWdfcmVnaXN0cnlfZ2V0X2xheW91dF9sYW5n OgotKyAqIEB4a2JfY29uZmlnOiBBbiBJQnVzWEtCQ29uZmlnUmVnaXN0cnkuCi0rICogQHJldHVy bnM6IEEgY29uc3QgR0hhc2hUYWJsZQotKyAqCi0rICogYSBjb25zdCBHSGFzaFRhYmxlCi0rICov Ci0rY29uc3QgR0hhc2hUYWJsZSAqCi0rICAgICAgICAgICAgICAgICBpYnVzX3hrYl9jb25maWdf cmVnaXN0cnlfZ2V0X2xheW91dF9sYW5nCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChJQnVzWEtCQ29uZmlnUmVnaXN0cnkgKnhrYl9jb25maWcpOwot Ky8qKgotKyAqIGlidXNfeGtiX2NvbmZpZ19yZWdpc3RyeV9nZXRfbGF5b3V0X2Rlc2M6Ci0rICog QHhrYl9jb25maWc6IEFuIElCdXNYS0JDb25maWdSZWdpc3RyeS4KLSsgKiBAcmV0dXJuczogQSBj b25zdCBHSGFzaFRhYmxlCi0rICoKLSsgKiBhIGNvbnN0IEdIYXNoVGFibGUKLSsgKi8KLStjb25z dCBHSGFzaFRhYmxlICoKLSsgICAgICAgICAgICAgICAgIGlidXNfeGtiX2NvbmZpZ19yZWdpc3Ry eV9nZXRfbGF5b3V0X2Rlc2MKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKElCdXNYS0JDb25maWdSZWdpc3RyeSAqeGtiX2NvbmZpZyk7Ci0rLyoqCi0r ICogaWJ1c194a2JfY29uZmlnX3JlZ2lzdHJ5X2dldF92YXJpYW50X2Rlc2M6Ci0rICogQHhrYl9j b25maWc6IEFuIElCdXNYS0JDb25maWdSZWdpc3RyeS4KLSsgKiBAcmV0dXJuczogQSBjb25zdCBH SGFzaFRhYmxlCi0rICoKLSsgKiBhIGNvbnN0IEdIYXNoVGFibGUKLSsgKi8KLStjb25zdCBHSGFz aFRhYmxlICoKLSsgICAgICAgICAgICAgICAgIGlidXNfeGtiX2NvbmZpZ19yZWdpc3RyeV9nZXRf dmFyaWFudF9kZXNjCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChJQnVzWEtCQ29uZmlnUmVnaXN0cnkgKnhrYl9jb25maWcpOwogKy8qKgogKyAqIGli dXNfeGtiX2NvbXBvbmVudF9uZXc6CiArICogQHJldHVybnM6IEEgbmV3bHkgYWxsb2NhdGVkIElC dXNDb21wb25lbnQuCgpkaWZmIC0tZ2l0IGEvaWJ1cy1IRUFELnBhdGNoIGIvaWJ1cy1IRUFELnBh dGNoCmluZGV4IGM2YThkYTUuLjRiZTg5NjAgMTAwNjQ0Ci0tLSBhL2lidXMtSEVBRC5wYXRjaAor KysgYi9pYnVzLUhFQUQucGF0Y2gKQEAgLTIyNiwzICsyMjYsNzQ0IEBAIGluZGV4IDBlOTQxOGUu LjM5YWQ3ODQgMTAwNjQ0CiAtLSAKIDEuNy40LjQKIAorRnJvbSBkMDU5MTMyODg1ZDNjOTA2NDdm MDhmMzA4M2UzOWRhYTlmODJiNzAwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogUnlv IE9ub2RlcmEgPG9ub2RlcmFAY2xlYXItY29kZS5jb20+CitEYXRlOiBUdWUsIDE3IE1heSAyMDEx IDIwOjA3OjQwICswOTAwCitTdWJqZWN0OiBbUEFUQ0hdIGZpeCB3cm9uZyBmb3J3YXJkIGtleSBl dmVudCBzaWduYXR1cmUKKworLS0tCisgaWJ1cy9lbmdpbmUucHkgICAgICAgICAgICB8ICAgIDQg KystLQorIGlidXMvaW50ZXJmYWNlL2llbmdpbmUucHkgfCAgICA0ICsrLS0KKyAyIGZpbGVzIGNo YW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2li dXMvZW5naW5lLnB5IGIvaWJ1cy9lbmdpbmUucHkKK2luZGV4IDhjYmNlZTMuLmZlNWRkOTggMTAw NjQ0CistLS0gYS9pYnVzL2VuZ2luZS5weQorKysrIGIvaWJ1cy9lbmdpbmUucHkKK0BAIC0xMTQs OCArMTE0LDggQEAgY2xhc3MgRW5naW5lQmFzZShvYmplY3QuT2JqZWN0KToKKyAgICAgICAgIHRl eHQgPSBzZXJpYWxpemFibGUuc2VyaWFsaXplX29iamVjdCh0ZXh0KQorICAgICAgICAgcmV0dXJu IHNlbGYuX19wcm94eS5Db21taXRUZXh0KHRleHQpCisgCistICAgIGRlZiBmb3J3YXJkX2tleV9l dmVudChzZWxmLCBrZXl2YWwsIHN0YXRlKToKKy0gICAgICAgIHJldHVybiBzZWxmLl9fcHJveHku Rm9yd2FyZEtleUV2ZW50KGtleXZhbCwgc3RhdGUpCisrICAgIGRlZiBmb3J3YXJkX2tleV9ldmVu dChzZWxmLCBrZXl2YWwsIGtleWNvZGUsIHN0YXRlKToKKysgICAgICAgIHJldHVybiBzZWxmLl9f cHJveHkuRm9yd2FyZEtleUV2ZW50KGtleXZhbCwga2V5Y29kZSwgc3RhdGUpCisgCisgICAgIGRl ZiB1cGRhdGVfcHJlZWRpdF90ZXh0KHNlbGYsIHRleHQsIGN1cnNvcl9wb3MsIHZpc2libGUsIG1v ZGU9Y29tbW9uLklCVVNfRU5HSU5FX1BSRUVESVRfQ0xFQVIpOgorICAgICAgICAgdGV4dCA9IHNl cmlhbGl6YWJsZS5zZXJpYWxpemVfb2JqZWN0KHRleHQpCitkaWZmIC0tZ2l0IGEvaWJ1cy9pbnRl cmZhY2UvaWVuZ2luZS5weSBiL2lidXMvaW50ZXJmYWNlL2llbmdpbmUucHkKK2luZGV4IDBlMGY0 ZWUuLjllMGQ5ODEgMTAwNjQ0CistLS0gYS9pYnVzL2ludGVyZmFjZS9pZW5naW5lLnB5CisrKysg Yi9pYnVzL2ludGVyZmFjZS9pZW5naW5lLnB5CitAQCAtMTA0LDggKzEwNCw4IEBAIGNsYXNzIElF bmdpbmUoZGJ1cy5zZXJ2aWNlLk9iamVjdCk6CisgICAgIEBzaWduYWwoc2lnbmF0dXJlPSJ2IikK KyAgICAgZGVmIENvbW1pdFRleHQoc2VsZiwgdGV4dCk6IHBhc3MKKyAKKy0gICAgQHNpZ25hbChz aWduYXR1cmU9InV1IikKKy0gICAgZGVmIEZvcndhcmRLZXlFdmVudChzZWxmLCBrZXl2YWwsIHN0 YXRlKTogcGFzcworKyAgICBAc2lnbmFsKHNpZ25hdHVyZT0idXV1IikKKysgICAgZGVmIEZvcndh cmRLZXlFdmVudChzZWxmLCBrZXl2YWwsIGtleWNvZGUsIHN0YXRlKTogcGFzcworIAorICAgICBA c2lnbmFsKHNpZ25hdHVyZT0idnVidSIpCisgICAgIGRlZiBVcGRhdGVQcmVlZGl0VGV4dChzZWxm LCB0ZXh0LCBjdXJzb3JfcG9zLCB2aXNpYmxlLCBtb2RlKTogcGFzcworLS0gCisxLjcuNC40CisK K0Zyb20gZDNlNzUwZWFiNmRiNzAzNWY0OTRmY2RiMzI4Yjg3YjI5MjNlMzNhMiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKK0Zyb206IFl1c3VrZSBTYXRvIDx5dXN1a2VzQGNocm9taXVtLm9yZz4K K0RhdGU6IFdlZCwgMSBKdW4gMjAxMSAyMzozNzoxNCArMDkwMAorU3ViamVjdDogW1BBVENIXSBT ZW5kIHRoZSBuZXcgY2FwYWJpbGl0aWVzIHRvIGlidXMtZGFlbW9uIGluCisgaWJ1c19pbV9jb250 ZXh0X3NldF91c2VfcHJlZWRpdC4KKworQlVHPW5vbmUKK1RFU1Q9bm9uZQorCitSZXZpZXcgVVJM OiBodHRwOi8vY29kZXJldmlldy5hcHBzcG90LmNvbS80NTI5MTAzCistLS0KKyBjbGllbnQvZ3Rr Mi9pYnVzaW1jb250ZXh0LmMgfCAgICAyICsrCisgMSBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlv bnMoKyksIDAgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9jbGllbnQvZ3RrMi9pYnVzaW1j b250ZXh0LmMgYi9jbGllbnQvZ3RrMi9pYnVzaW1jb250ZXh0LmMKK2luZGV4IGViYWUwOWQuLjRh ODk0YjAgMTAwNjQ0CistLS0gYS9jbGllbnQvZ3RrMi9pYnVzaW1jb250ZXh0LmMKKysrKyBiL2Ns aWVudC9ndGsyL2lidXNpbWNvbnRleHQuYworQEAgLTk0Miw2ICs5NDIsOCBAQCBpYnVzX2ltX2Nv bnRleHRfc2V0X3VzZV9wcmVlZGl0IChHdGtJTUNvbnRleHQgKmNvbnRleHQsIGdib29sZWFuIHVz ZV9wcmVlZGl0KQorICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgaWJ1c2ltY29udGV4dC0+ Y2FwcyAmPSB+SUJVU19DQVBfUFJFRURJVF9URVhUOworICAgICAgICAgfQorKyAgICAgICAgaWJ1 c19pbnB1dF9jb250ZXh0X3NldF9jYXBhYmlsaXRpZXMgKGlidXNpbWNvbnRleHQtPmlidXNjb250 ZXh0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlidXNp bWNvbnRleHQtPmNhcHMpOworICAgICB9CisgICAgIGd0a19pbV9jb250ZXh0X3NldF91c2VfcHJl ZWRpdCAoaWJ1c2ltY29udGV4dC0+c2xhdmUsIHVzZV9wcmVlZGl0KTsKKyB9CistLSAKKzEuNy40 LjQKKworRnJvbSA1MjQyNWRhYTUzN2EzMmJlZDE3ODE5NThlMWVmNjJkYmYxOTlhZDhiIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogUGVuZyBIdWFuZyA8c2hhd24ucC5odWFuZ0BnbWFp bC5jb20+CitEYXRlOiBNb24sIDYgSnVuIDIwMTEgMDk6MzA6MjcgLTA0MDAKK1N1YmplY3Q6IFtQ QVRDSF0gRml4IFB5dGhvbiBpbnB1dCBjb250ZXh0IGJpbmRpbmcuCisKK0V4cG9ydCAiZm9yd2Fy ZC1rZXktZXZlbnQiIGFuZCAiZGVsZXRlLXN1cnJvdW5kaW5nLXRleHQiIHNpZ25hbHMgdG8gUHl0 aG9uOyBjbGVhciBfX25lZWRzX3N1cnJvdW5kaW5nX3RleHQgcHJvcGVydHkgb24gImVuYWJsZWQi IGFuZCAiZGlzYWJsZWQiIHNpZ25hbHMuCisKK0JVRz1ub25lCitURVNUPWJyaWVmbHkgdGVzdGVk LCBhdCBsZWFzdCBJIGRvbid0IHNlZSBhbnkgcmVncmVzc2lvbgorCitSZXZpZXcgVVJMOiBodHRw Oi8vY29kZXJldmlldy5hcHBzcG90LmNvbS80NDM3MDYyCistLS0KKyBpYnVzL2lucHV0Y29udGV4 dC5weSAgICAgICAgICAgIHwgICAyNiArKysrKysrKysrKysrKysrKysrKysrKysrLQorIGlidXMv aW50ZXJmYWNlL2lpbnB1dGNvbnRleHQucHkgfCAgICAzICsrKworIDIgZmlsZXMgY2hhbmdlZCwg MjggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2lidXMvaW5w dXRjb250ZXh0LnB5IGIvaWJ1cy9pbnB1dGNvbnRleHQucHkKK2luZGV4IGQxNDM3MjcuLmNlZWI1 NmQgMTAwNjQ0CistLS0gYS9pYnVzL2lucHV0Y29udGV4dC5weQorKysrIGIvaWJ1cy9pbnB1dGNv bnRleHQucHkKK0BAIC0xMTYsNiArMTE2LDE2IEBAIGNsYXNzIElucHV0Q29udGV4dChvYmplY3Qu T2JqZWN0KToKKyAgICAgICAgICAgICBnb2JqZWN0LlRZUEVfTk9ORSwKKyAgICAgICAgICAgICAo KQorICAgICAgICAgKSwKKysgICAgICAgICJmb3J3YXJkLWtleS1ldmVudCIgOiAoCisrICAgICAg ICAgICAgZ29iamVjdC5TSUdOQUxfUlVOX0xBU1QsCisrICAgICAgICAgICAgZ29iamVjdC5UWVBF X05PTkUsCisrICAgICAgICAgICAgKGdvYmplY3QuVFlQRV9VSU5ULCBnb2JqZWN0LlRZUEVfVUlO VCwgZ29iamVjdC5UWVBFX1VJTlQpCisrICAgICAgICApLAorKyAgICAgICAgImRlbGV0ZS1zdXJy b3VuZGluZy10ZXh0IiA6ICgKKysgICAgICAgICAgICBnb2JqZWN0LlNJR05BTF9SVU5fTEFTVCwK KysgICAgICAgICAgICBnb2JqZWN0LlRZUEVfTk9ORSwKKysgICAgICAgICAgICAoZ29iamVjdC5U WVBFX0lOVCwgZ29iamVjdC5UWVBFX1VJTlQpCisrICAgICAgICApLAorICAgICB9CisgCisgICAg IGRlZiBfX2luaXRfXyhzZWxmLCBidXMsIHBhdGgsIHdhdGNoX3NpZ25hbHM9RmFsc2UpOgorQEAg LTE0Miw4ICsxNTIsMTQgQEAgY2xhc3MgSW5wdXRDb250ZXh0KG9iamVjdC5PYmplY3QpOgorICAg ICAgICAgc2VsZi5fX3NpZ25hbF9tYXRjaGVzLmFwcGVuZChtKQorICAgICAgICAgbSA9IHNlbGYu X19jb250ZXh0LmNvbm5lY3RfdG9fc2lnbmFsKCJSZXF1aXJlU3Vycm91bmRpbmdUZXh0Iiwgc2Vs Zi5fX3JlcXVpcmVfc3Vycm91bmRpbmdfdGV4dF9jYikKKyAgICAgICAgIHNlbGYuX19zaWduYWxf bWF0Y2hlcy5hcHBlbmQobSkKKysgICAgICAgIG0gPSBzZWxmLl9fY29udGV4dC5jb25uZWN0X3Rv X3NpZ25hbCgiRW5hYmxlZCIsIHNlbGYuX19lbmFibGVkX2NiKQorKyAgICAgICAgc2VsZi5fX3Np Z25hbF9tYXRjaGVzLmFwcGVuZChtKQorKyAgICAgICAgbSA9IHNlbGYuX19jb250ZXh0LmNvbm5l Y3RfdG9fc2lnbmFsKCJEaXNhYmxlZCIsIHNlbGYuX19kaXNhYmxlZF9jYikKKysgICAgICAgIHNl bGYuX19zaWduYWxfbWF0Y2hlcy5hcHBlbmQobSkKKyAKKy0gICAgICAgIG0gPSBzZWxmLl9fY29u dGV4dC5jb25uZWN0X3RvX3NpZ25hbCgiRW5hYmxlZCIsICAgICAgICAgICAgIGxhbWJkYSAqYXJn czogc2VsZi5lbWl0KCJlbmFibGVkIikpCisrICAgICAgICBtID0gc2VsZi5fX2NvbnRleHQuY29u bmVjdF90b19zaWduYWwoIkZvcndhcmRLZXlFdmVudCIsICAgICAgICAgICAgbGFtYmRhICphcmdz OiBzZWxmLmVtaXQoImZvcndhcmQta2V5LWV2ZW50IiwgKmFyZ3MpKQorKyAgICAgICAgc2VsZi5f X3NpZ25hbF9tYXRjaGVzLmFwcGVuZChtKQorKyAgICAgICAgbSA9IHNlbGYuX19jb250ZXh0LmNv bm5lY3RfdG9fc2lnbmFsKCJEZWxldGVTdXJyb3VuZGluZ1RleHQiLCAgICAgICAgICAgIGxhbWJk YSAqYXJnczogc2VsZi5lbWl0KCJkZWxldGUtc3Vycm91bmRpbmctdGV4dCIsICphcmdzKSkKKyAg ICAgICAgIHNlbGYuX19zaWduYWxfbWF0Y2hlcy5hcHBlbmQobSkKKyAgICAgICAgIG0gPSBzZWxm Ll9fY29udGV4dC5jb25uZWN0X3RvX3NpZ25hbCgiRGlzYWJsZWQiLCAgICAgICAgICAgIGxhbWJk YSAqYXJnczogc2VsZi5lbWl0KCJkaXNhYmxlZCIpKQorICAgICAgICAgc2VsZi5fX3NpZ25hbF9t YXRjaGVzLmFwcGVuZChtKQorQEAgLTE2OCw2ICsxODQsMTQgQEAgY2xhc3MgSW5wdXRDb250ZXh0 KG9iamVjdC5PYmplY3QpOgorICAgICAgICAgbSA9IHNlbGYuX19jb250ZXh0LmNvbm5lY3RfdG9f c2lnbmFsKCJDdXJzb3JEb3duTG9va3VwVGFibGUiLCBsYW1iZGEgKmFyZ3M6IHNlbGYuZW1pdCgi Y3Vyc29yLWRvd24tbG9va3VwLXRhYmxlIikpCisgICAgICAgICBzZWxmLl9fc2lnbmFsX21hdGNo ZXMuYXBwZW5kKG0pCisgCisrICAgIGRlZiBfX2VuYWJsZWRfY2Ioc2VsZiwgKmFyZ3MpOgorKyAg ICAgICAgc2VsZi5fX25lZWRzX3N1cnJvdW5kaW5nX3RleHQgPSBGYWxzZQorKyAgICAgICAgc2Vs Zi5lbWl0KCJlbmFibGVkIikKKysKKysgICAgZGVmIF9fZGlzYWJsZWRfY2Ioc2VsZiwgKmFyZ3Mp OgorKyAgICAgICAgc2VsZi5fX25lZWRzX3N1cnJvdW5kaW5nX3RleHQgPSBGYWxzZQorKyAgICAg ICAgc2VsZi5lbWl0KCJkaXNhYmxlZCIpCisrCisgICAgIGRlZiBfX2NvbW1pdF90ZXh0X2NiKHNl bGYsICphcmdzKToKKyAgICAgICAgIHRleHQgPSBzZXJpYWxpemFibGUuZGVzZXJpYWxpemVfb2Jq ZWN0KGFyZ3NbMF0pCisgICAgICAgICBzZWxmLmVtaXQoImNvbW1pdC10ZXh0IiwgdGV4dCkKK2Rp ZmYgLS1naXQgYS9pYnVzL2ludGVyZmFjZS9paW5wdXRjb250ZXh0LnB5IGIvaWJ1cy9pbnRlcmZh Y2UvaWlucHV0Y29udGV4dC5weQoraW5kZXggMmRiMWM5Yi4uMWQzY2QyYSAxMDA2NDQKKy0tLSBh L2lidXMvaW50ZXJmYWNlL2lpbnB1dGNvbnRleHQucHkKKysrKyBiL2lidXMvaW50ZXJmYWNlL2lp bnB1dGNvbnRleHQucHkKK0BAIC05NSw2ICs5NSw5IEBAIGNsYXNzIElJbnB1dENvbnRleHQoZGJ1 cy5zZXJ2aWNlLk9iamVjdCk6CisgICAgIEBzaWduYWwoc2lnbmF0dXJlPSJ1dXUiKQorICAgICBk ZWYgRm9yd2FyZEtleUV2ZW50KHNlbGYsIGtleXZhbCwga2V5Y29kZSwgc3RhdGUpOiBwYXNzCisg CisrICAgIEBzaWduYWwoc2lnbmF0dXJlPSJpdSIpCisrICAgIGRlZiBEZWxldGVTdXJyb3VuZGlu Z1RleHQoc2VsZiwgb2Zmc2V0X2Zyb21fY3Vyc29yLCBuY2hhcnMpOiBwYXNzCisrCisgICAgIEBz aWduYWwoc2lnbmF0dXJlPSJ2dWIiKQorICAgICBkZWYgVXBkYXRlUHJlZWRpdFRleHQoc2VsZiwg dGV4dCwgY3Vyc29yX3BvcywgdmlzaWJsZSk6IHBhc3MKKyAKKy0tIAorMS43LjQuNAorCitGcm9t IDU5Y2U2NzVlMzM1ZTU5OWVkMThkNzRhYjg4NDliOWE1ZmU3NWQ0YmUgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCitGcm9tOiBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWlsLmNvbT4KK0Rh dGU6IE1vbiwgMTMgSnVuIDIwMTEgMTM6MTg6MjkgLTA0MDAKK1N1YmplY3Q6IFtQQVRDSF0gRml4 IHNvbWUgcmFjZSBjb25kaXRpb24gYmV0d2VlbiBpZGxlIGFuZCB0aW1lb3V0CisgZXZlbnRzLiBB bHNvIGZpeCBhIG1lbW9yeSBsZWFrLgorCitCVUc9aHR0cDovL2Nyb3NidWcuY29tLzE2Mzg3CitU RVNUPUxpbnV4IGRlc2t0b3AKKworUmV2aWV3IFVSTDogaHR0cDovL2NvZGVyZXZpZXcuYXBwc3Bv dC5jb20vNDU2ODA3MgorLS0tCisgYnVzL2VuZ2luZXByb3h5LmMgfCAgIDQ2ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KKyAxIGZpbGVzIGNoYW5nZWQsIDMw IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvYnVzL2VuZ2lu ZXByb3h5LmMgYi9idXMvZW5naW5lcHJveHkuYworaW5kZXggMGM2ZjQ1ZC4uZjc0YWYxMiAxMDA2 NDQKKy0tLSBhL2J1cy9lbmdpbmVwcm94eS5jCisrKysgYi9idXMvZW5naW5lcHJveHkuYworQEAg LTYwMyw3ICs2MDMsOCBAQCBidXNfZW5naW5lX3Byb3h5X25ld19pbnRlcm5hbCAoY29uc3QgZ2No YXIgICAgICpwYXRoLAorICAgICBnX2Fzc2VydCAoSUJVU19JU19FTkdJTkVfREVTQyAoZGVzYykp OworICAgICBnX2Fzc2VydCAoR19JU19EQlVTX0NPTk5FQ1RJT04gKGNvbm5lY3Rpb24pKTsKKyAK Ky0KKysgICAgR0RCdXNQcm94eUZsYWdzIGZsYWdzID0gR19EQlVTX1BST1hZX0ZMQUdTX0RPX05P VF9BVVRPX1NUQVJUIHwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19EQlVTX1BST1hZ X0ZMQUdTX0RPX05PVF9MT0FEX1BST1BFUlRJRVM7CisgICAgIEJ1c0VuZ2luZVByb3h5ICplbmdp bmUgPQorICAgICAgICAgKEJ1c0VuZ2luZVByb3h5ICopIGdfaW5pdGFibGVfbmV3IChCVVNfVFlQ RV9FTkdJTkVfUFJPWFksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE5VTEwsCitAQCAtNjEzLDcgKzYxNCw3IEBAIGJ1c19lbmdpbmVfcHJveHlfbmV3X2ludGVy bmFsIChjb25zdCBnY2hhciAgICAgKnBhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJnLWludGVyZmFjZS1uYW1lIiwgIElCVVNfSU5URVJGQUNFX0VOR0lO RSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImctb2JqZWN0 LXBhdGgiLCAgICAgcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgImctZGVmYXVsdC10aW1lb3V0IiwgZ19nZGJ1c190aW1lb3V0LAorLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZy1mbGFncyIsICAgICAgICAgICBHX0RC VVNfUFJPWFlfRkxBR1NfRE9fTk9UX0FVVE9fU1RBUlQgfCBHX0RCVVNfUFJPWFlfRkxBR1NfRE9f Tk9UX0xPQURfUFJPUEVSVElFUywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgImctZmxhZ3MiLCAgICAgICAgICAgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAgICBjb25zdCBnY2hhciAqbGF5b3V0 ID0gaWJ1c19lbmdpbmVfZGVzY19nZXRfbGF5b3V0IChkZXNjKTsKKyAgICAgaWYgKGxheW91dCAh PSBOVUxMICYmIGxheW91dFswXSAhPSAnXDAnKSB7CitAQCAtNjM4LDI0ICs2MzksMzMgQEAgc3Rh dGljIHZvaWQKKyBlbmdpbmVfcHJveHlfbmV3X2RhdGFfZnJlZSAoRW5naW5lUHJveHlOZXdEYXRh ICpkYXRhKQorIHsKKyAgICAgaWYgKGRhdGEtPnNpbXBsZSAhPSBOVUxMKSB7CistICAgICAgICBp ZiAoZGF0YS0+aGFuZGxlcl9pZCAhPSAwKQorLSAgICAgICAgICAgIGdfc2lnbmFsX2hhbmRsZXJf ZGlzY29ubmVjdCAoZGF0YS0+Y29tcG9uZW50LCBkYXRhLT5oYW5kbGVyX2lkKTsKKyAgICAgICAg IGdfb2JqZWN0X3VucmVmIChkYXRhLT5zaW1wbGUpOworICAgICB9CisgCistICAgIGlmIChkYXRh LT5jb21wb25lbnQgIT0gTlVMTCkKKysgICAgaWYgKGRhdGEtPmRlc2MgIT0gTlVMTCkgeworKyAg ICAgICAgZ19vYmplY3RfdW5yZWYgKGRhdGEtPmRlc2MpOworKyAgICB9CisrCisrICAgIGlmIChk YXRhLT5jb21wb25lbnQgIT0gTlVMTCkgeworKyAgICAgICAgaWYgKGRhdGEtPmhhbmRsZXJfaWQg IT0gMCkgeworKyAgICAgICAgICAgIGdfc2lnbmFsX2hhbmRsZXJfZGlzY29ubmVjdCAoZGF0YS0+ Y29tcG9uZW50LCBkYXRhLT5oYW5kbGVyX2lkKTsKKysgICAgICAgIH0KKyAgICAgICAgIGdfb2Jq ZWN0X3VucmVmIChkYXRhLT5jb21wb25lbnQpOworKyAgICB9CisgCistICAgIGlmIChkYXRhLT5m YWN0b3J5ICE9IE5VTEwpCisrICAgIGlmIChkYXRhLT5mYWN0b3J5ICE9IE5VTEwpIHsKKyAgICAg ICAgIGdfb2JqZWN0X3VucmVmIChkYXRhLT5mYWN0b3J5KTsKKysgICAgfQorIAorLSAgICBpZiAo ZGF0YS0+dGltZW91dF9pZCAhPSAwKQorKyAgICBpZiAoZGF0YS0+dGltZW91dF9pZCAhPSAwKSB7 CisgICAgICAgICBnX3NvdXJjZV9yZW1vdmUgKGRhdGEtPnRpbWVvdXRfaWQpOworKyAgICB9Cisg CisgICAgIGlmIChkYXRhLT5jYW5jZWxsYWJsZSAhPSBOVUxMKSB7CistICAgICAgICBpZiAoZGF0 YS0+Y2FuY2VsbGVkX2hhbmRsZXJfaWQgIT0gMCkKKysgICAgICAgIGlmIChkYXRhLT5jYW5jZWxs ZWRfaGFuZGxlcl9pZCAhPSAwKSB7CisgICAgICAgICAgICAgZ19jYW5jZWxsYWJsZV9kaXNjb25u ZWN0IChkYXRhLT5jYW5jZWxsYWJsZSwKKy0gICAgICAgICAgICAgICAgZGF0YS0+Y2FuY2VsbGVk X2hhbmRsZXJfaWQpOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0 YS0+Y2FuY2VsbGVkX2hhbmRsZXJfaWQpOworKyAgICAgICAgfQorICAgICAgICAgZ19vYmplY3Rf dW5yZWYgKGRhdGEtPmNhbmNlbGxhYmxlKTsKKyAgICAgfQorIAorQEAgLTc3Miw3ICs3ODIsOCBA QCB0aW1lb3V0X2NiIChFbmdpbmVQcm94eU5ld0RhdGEgKmRhdGEpCisgLyoqCisgICogY2FuY2Vs bGVkX2NiOgorICAqCistICogQSBjYWxsYmFjayBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiBz b21lb25lIGNhbGxzIGdfY2FuY2VsbGFibGVfY2FuY2VsKCkgZm9yIHRoZSBjYW5jZWxsYWJsZSBv YmplY3QgZm9yIGJ1c19lbmdpbmVfcHJveHlfbmV3LgorKyAqIEEgY2FsbGJhY2sgZnVuY3Rpb24g dG8gYmUgY2FsbGVkIHdoZW4gc29tZW9uZSBjYWxscyBnX2NhbmNlbGxhYmxlX2NhbmNlbCgpCisr ICogZm9yIHRoZSBjYW5jZWxsYWJsZSBvYmplY3QgZm9yIGJ1c19lbmdpbmVfcHJveHlfbmV3Lgor ICAqIENhbGwgdGhlIEdBc3luY1JlYWR5Q2FsbGJhY2suCisgICovCisgc3RhdGljIGdib29sZWFu CitAQCAtNzkzLDggKzgwNCwxMiBAQCBzdGF0aWMgdm9pZAorIGNhbmNlbGxlZF9jYiAoR0NhbmNl bGxhYmxlICAgICAgICpjYW5jZWxsYWJsZSwKKyAgICAgICAgICAgICAgIEVuZ2luZVByb3h5TmV3 RGF0YSAqZGF0YSkKKyB7CistICAgIC8qIENhbmNlbCB0aGUgYnVzX2VuZ2luZV9wcm94eV9uZXco KSBpbiBpZGxlIHRvIGF2b2lkIGRlYWRsb2NrICovCistICAgIGdfaWRsZV9hZGQgKChHU291cmNl RnVuYykgY2FuY2VsbGVkX2lkbGVfY2IsIGRhdGEpOworKyAgICAvKiBDYW5jZWwgdGhlIGJ1c19l bmdpbmVfcHJveHlfbmV3KCkgaW4gaWRsZSB0byBhdm9pZCBkZWFkbG9jay4KKysgICAgICogQW5k IHVzZSBISUdIIHByaW9yaXR5IHRvIGF2b2lkIHRpbWVvdXQgZXZlbnQgaGFwcGVuaW5nIGJlZm9y ZQorKyAgICAgKiBpZGxlIGNhbGxiYWNrLiAqLworKyAgICBnX2lkbGVfYWRkX2Z1bGwgKEdfUFJJ T1JJVFlfSElHSCwKKysgICAgICAgICAgICAgICAgICAgIChHU291cmNlRnVuYykgY2FuY2VsbGVk X2lkbGVfY2IsCisrICAgICAgICAgICAgICAgICAgICBkYXRhLCBOVUxMKTsKKyB9CisgCisgdm9p ZAorQEAgLTgzMSwxMyArODQ2LDEyIEBAIGJ1c19lbmdpbmVfcHJveHlfbmV3IChJQnVzRW5naW5l RGVzYyAgICAgICpkZXNjLAorICAgICBkYXRhLT5zaW1wbGUgPSBzaW1wbGU7CisgICAgIGRhdGEt PnRpbWVvdXQgPSB0aW1lb3V0OworIAorLSAgICBnX29iamVjdF9zZXRfZGF0YSAoKEdPYmplY3Qg KilkYXRhLT5zaW1wbGUsICJFbmdpbmVQcm94eU5ld0RhdGEiLCBkYXRhKTsKKy0KKyAgICAgZGF0 YS0+ZmFjdG9yeSA9IGJ1c19jb21wb25lbnRfZ2V0X2ZhY3RvcnkgKGRhdGEtPmNvbXBvbmVudCk7 CisgCisgICAgIGlmIChkYXRhLT5mYWN0b3J5ID09IE5VTEwpIHsKKy0gICAgICAgIC8qIFRoZSBm YWN0b3J5IGlzIG5vdCByZWFkeSB5ZXQuIENyZWF0ZSB0aGUgZmFjdG9yeSBmaXJzdCwgYW5kIHdh aXQgZm9yIHRoZSAibm90aWZ5OjpmYWN0b3J5IiBzaWduYWwuCistICAgICAgICAgKiBJbiB0aGUg aGFuZGxlciBvZiAibm90aWZ5OjpmYWN0b3J5Iiwgd2UnbGwgY3JlYXRlIHRoZSBlbmdpbmUgcHJv eHkuICovCisrICAgICAgICAvKiBUaGUgZmFjdG9yeSBpcyBub3QgcmVhZHkgeWV0LiBDcmVhdGUg dGhlIGZhY3RvcnkgZmlyc3QsIGFuZCB3YWl0IGZvcgorKyAgICAgICAgICogdGhlICJub3RpZnk6 OmZhY3RvcnkiIHNpZ25hbC4gSW4gdGhlIGhhbmRsZXIgb2YgIm5vdGlmeTo6ZmFjdG9yeSIsCisr ICAgICAgICAgKiB3ZSdsbCBjcmVhdGUgdGhlIGVuZ2luZSBwcm94eS4gKi8KKyAgICAgICAgIGRh dGEtPmhhbmRsZXJfaWQgPSBnX3NpZ25hbF9jb25uZWN0IChkYXRhLT5jb21wb25lbnQsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5vdGlmeTo6ZmFjdG9y eSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19DQUxM QkFDSyAobm90aWZ5X2ZhY3RvcnlfY2IpLAorLS0gCisxLjcuNC40CisKK0Zyb20gZmM5ZGVkZWMz MGY3MjRlOTFlN2IzYmI5MTExMTc3ZTk2YjU4ZWU0MyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK K0Zyb206IFBlbmcgSHVhbmcgPHNoYXduLnAuaHVhbmdAZ21haWwuY29tPgorRGF0ZTogV2VkLCAx NSBKdW4gMjAxMSAxMDozODoxNyAtMDQwMAorU3ViamVjdDogW1BBVENIXSBBZGQgSUJVU19FUlJP UiBkb21haW4gYW5kIHJlcGx5IElCVVNfRVJST1JfTk9fRU5HSU5FCisgaW4gb3JnLmZyZWVkZXNr dG9wLklCdXMuSW5wdXRDb250ZXh0LkdldEVuZ2luZQorCitCVUc9Tm9uZQorVEVTVD1NYW51YWxs eQorCitSZXZpZXcgVVJMOiBodHRwOi8vY29kZXJldmlldy5hcHBzcG90LmNvbS80NTI4MTQwCist LS0KKyBidXMvaW5wdXRjb250ZXh0LmMgICAgICAgICAgICAgICAgfCAgICA3ICsrKystCisgc3Jj L01ha2VmaWxlLmFtICAgICAgICAgICAgICAgICAgIHwgICAgMiArCisgc3JjL2lidXMuaCAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgMSArCisgc3JjL2lidXNlcnJvci5jICAgICAgICAgICAg ICAgICAgIHwgICA0MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKKyBzcmMvaWJ1 c2Vycm9yLmggICAgICAgICAgICAgICAgICAgfCAgIDQ2ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKKyBzcmMvaWJ1c2lucHV0Y29udGV4dC5jICAgICAgICAgICAgfCAgIDE1 ICsrKysrKysrKy0tCisgc3JjL2lidXNzaGFyZS5jICAgICAgICAgICAgICAgICAgIHwgICAgMSAr Cisgc3JjL2lidXN0eXBlcy5oICAgICAgICAgICAgICAgICAgIHwgICAgOSArKysrKysrCisgc3Jj L3Rlc3RzL2lidXMtZ2ktaW5wdXRjb250ZXh0LnB5IHwgICAzNCArKysrKysrKysrKysrKysrKysr KysrKysrKysKKyA5IGZpbGVzIGNoYW5nZWQsIDE1MSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9u cygtKQorIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaWJ1c2Vycm9yLmMKKyBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjL2lidXNlcnJvci5oCisgY3JlYXRlIG1vZGUgMTAwNzU1IHNyYy90ZXN0cy9pYnVz LWdpLWlucHV0Y29udGV4dC5weQorCitkaWZmIC0tZ2l0IGEvYnVzL2lucHV0Y29udGV4dC5jIGIv YnVzL2lucHV0Y29udGV4dC5jCitpbmRleCBiYWQ5MGVjLi4xNTY3YzVmIDEwMDY0NAorLS0tIGEv YnVzL2lucHV0Y29udGV4dC5jCisrKysgYi9idXMvaW5wdXRjb250ZXh0LmMKK0BAIC0xMDQwLDgg KzEwNDAsMTEgQEAgX2ljX2dldF9lbmdpbmUgKEJ1c0lucHV0Q29udGV4dCAgICAgICAqY29udGV4 dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBnX3ZhcmlhbnRfbmV3ICgiKHYpIiwgaWJ1c19z ZXJpYWxpemFibGVfc2VyaWFsaXplICgoSUJ1c1NlcmlhbGl6YWJsZSAqKWRlc2MpKSk7CisgICAg IH0KKyAgICAgZWxzZSB7CistICAgICAgICBnX2RidXNfbWV0aG9kX2ludm9jYXRpb25fcmV0dXJu X2Vycm9yIChpbnZvY2F0aW9uLCBHX0RCVVNfRVJST1IsIEdfREJVU19FUlJPUl9GQUlMRUQsCist ICAgICAgICAgICAgICAgICAgICAgICAgIklucHV0IGNvbnRleHQgZG9lcyBub3QgaGF2ZSBlbmdp bmUuIik7CisrICAgICAgICBnX2RidXNfbWV0aG9kX2ludm9jYXRpb25fcmV0dXJuX2Vycm9yICgK KysgICAgICAgICAgICAgICAgaW52b2NhdGlvbiwKKysgICAgICAgICAgICAgICAgSUJVU19FUlJP UiwKKysgICAgICAgICAgICAgICAgSUJVU19FUlJPUl9OT19FTkdJTkUsCisrICAgICAgICAgICAg ICAgICJJbnB1dCBjb250ZXh0IGRvZXMgbm90IGhhdmUgZW5naW5lLiIpOworICAgICB9CisgfQor IAorZGlmZiAtLWdpdCBhL3NyYy9NYWtlZmlsZS5hbSBiL3NyYy9NYWtlZmlsZS5hbQoraW5kZXgg NjMyZmM3Mi4uYTUzYmQyMyAxMDA2NDQKKy0tLSBhL3NyYy9NYWtlZmlsZS5hbQorKysrIGIvc3Jj L01ha2VmaWxlLmFtCitAQCAtNzAsNiArNzAsNyBAQCBpYnVzX3NvdXJjZXMgPSAgICAgICAgICAg ICAgXAorICAgICBpYnVzc2VydmljZS5jICAgICAgICAgICBcCisgICAgIGlidXNmYWN0b3J5LmMg ICAgICAgICAgIFwKKyAgICAgaWJ1c2VuZ2luZS5jICAgICAgICAgICAgXAorKyAgICBpYnVzZXJy b3IuYwkJCQlcCisgICAgIGlidXN0ZXh0LmMgICAgICAgICAgICAgIFwKKyAgICAgaWJ1c2tleW1h cC5jICAgICAgICAgICAgXAorICAgICBpYnVzYXR0cmlidXRlLmMgICAgICAgICBcCitAQCAtMTE0 LDYgKzExNSw3IEBAIGlidXNfaGVhZGVycyA9ICAgICAgICAgICAgICBcCisgICAgIGlidXNzZXJ2 aWNlLmggICAgICAgICAgIFwKKyAgICAgaWJ1c2ZhY3RvcnkuaCAgICAgICAgICAgXAorICAgICBp YnVzZW5naW5lLmggICAgICAgICAgICBcCisrICAgIGlidXNlcnJvci5oCQkJCVwKKyAgICAgaWJ1 c3RleHQuaCAgICAgICAgICAgICAgXAorICAgICBpYnVza2V5bWFwLmggICAgICAgICAgICBcCisg ICAgIGlidXNhdHRyaWJ1dGUuaCAgICAgICAgIFwKK2RpZmYgLS1naXQgYS9zcmMvaWJ1cy5oIGIv c3JjL2lidXMuaAoraW5kZXggOGRmNzE2MC4uYzQwOGYzZCAxMDA2NDQKKy0tLSBhL3NyYy9pYnVz LmgKKysrKyBiL3NyYy9pYnVzLmgKK0BAIC0zNSw2ICszNSw3IEBACisgI2luY2x1ZGUgPGlidXNz ZXJ2aWNlLmg+CisgI2luY2x1ZGUgPGlidXNmYWN0b3J5Lmg+CisgI2luY2x1ZGUgPGlidXNlbmdp bmUuaD4KKysjaW5jbHVkZSA8aWJ1c2Vycm9yLmg+CisgI2luY2x1ZGUgPGlidXNwcm9wZXJ0eS5o PgorICNpbmNsdWRlIDxpYnVzcHJvcGxpc3QuaD4KKyAjaW5jbHVkZSA8aWJ1c2xvb2t1cHRhYmxl Lmg+CitkaWZmIC0tZ2l0IGEvc3JjL2lidXNlcnJvci5jIGIvc3JjL2lidXNlcnJvci5jCituZXcg ZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uYzUwYzE2NAorLS0tIC9kZXYvbnVsbAor KysrIGIvc3JjL2lidXNlcnJvci5jCitAQCAtMCwwICsxLDQxIEBACisrLyogLSotIG1vZGU6IEM7 IGMtYmFzaWMtb2Zmc2V0OiA0OyBpbmRlbnQtdGFicy1tb2RlOiBuaWw7IC0qLSAqLworKy8qIHZp bTpzZXQgZXQgc3RzPTQ6ICovCisrLyogaWJ1cyAtIFRoZSBJbnB1dCBCdXMKKysgKiBDb3B5cmln aHQgKEMpIDIwMTEgUGVuZyBIdWFuZyA8c2hhd24ucC5odWFuZ0BnbWFpbC5jb20+CisrICoKKysg KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yCisrICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBH ZW5lcmFsIFB1YmxpYworKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb247IGVpdGhlcgorKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysgKgorKyAqIFRoaXMgbGlicmFy eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAq IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh bnR5IG9mCisrICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLgkgU2VlIHRoZSBHTlUKKysgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm b3IgbW9yZSBkZXRhaWxzLgorKyAqCisrICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAqIExpY2Vuc2UgYWxvbmcgd2l0 aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlCisrICogRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisrICogQm9zdG9u LCBNQSAwMjExMS0xMzA3LCBVU0EuCisrICovCisrCisrI2luY2x1ZGUgImlidXNlcnJvci5oIgor KworKyNpbmNsdWRlIDxnaW8vZ2lvLmg+CisrI2luY2x1ZGUgImlidXN0eXBlcy5oIgorKworK3N0 YXRpYyBjb25zdCBHREJ1c0Vycm9yRW50cnkgaWJ1c19lcnJvcl9lbnRyaWVzW10gPQorK3sKKysg ICAgeyBJQlVTX0VSUk9SX05PX0VOR0lORSwgICAgICAgICAib3JnLmZyZWVkZXNrdG9wLklCdXMu RXJyb3IuTm9FbmdpbmUiIH0sCisrfTsKKysKKytHUXVhcmsKKytpYnVzX2Vycm9yX3F1YXJrICh2 b2lkKQorK3sKKysgICAgc3RhdGljIHZvbGF0aWxlIGdzaXplIHF1YXJrX3ZvbGF0aWxlID0gMDsK KysgICAgZ19kYnVzX2Vycm9yX3JlZ2lzdGVyX2Vycm9yX2RvbWFpbiAoImlidXMtZXJyb3ItcXVh cmsiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcXVhcmtfdm9s YXRpbGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlidXNfZXJy b3JfZW50cmllcywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR19O X0VMRU1FTlRTIChpYnVzX2Vycm9yX2VudHJpZXMpKTsKKysgICAgcmV0dXJuIChHUXVhcmspIHF1 YXJrX3ZvbGF0aWxlOworK30KK2RpZmYgLS1naXQgYS9zcmMvaWJ1c2Vycm9yLmggYi9zcmMvaWJ1 c2Vycm9yLmgKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi43NWM2NGI5Cist LS0gL2Rldi9udWxsCisrKysgYi9zcmMvaWJ1c2Vycm9yLmgKK0BAIC0wLDAgKzEsNDYgQEAKKysv KiAtKi0gbW9kZTogQzsgYy1iYXNpYy1vZmZzZXQ6IDQ7IGluZGVudC10YWJzLW1vZGU6IG5pbDsg LSotICovCisrLyogdmltOnNldCBldCBzdHM9NDogKi8KKysvKiBpYnVzIC0gVGhlIElucHV0IEJ1 cworKyAqIENvcHlyaWdodCAoQykgMjAxMSBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdtYWls LmNvbT4KKysgKgorKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKysgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisrICogdmVyc2lvbiAyIG9mIHRo ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyAqCisr ICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi ZSB1c2VmdWwsCisrICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl IGltcGxpZWQgd2FycmFudHkgb2YKKysgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UuCSBTZWUgdGhlIEdOVQorKyAqIExlc3NlciBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrICoKKysgKiBZb3Ugc2hvdWxkIGhhdmUg cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICogTGlj ZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUKKysgKiBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMz MCwKKysgKiBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKysgKi8KKysKKysjaWYgIWRlZmlu ZWQgKF9fSUJVU19IX0lOU0lERV9fKSAmJiAhZGVmaW5lZCAoSUJVU19DT01QSUxBVElPTikKKysj ZXJyb3IgIk9ubHkgPGlidXMuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5IgorKyNlbmRpZgor KworKy8qKgorKyAqIFNFQ1RJT046IGlidXNzaGFyZQorKyAqIEBzaG9ydF9kZXNjcmlwdGlvbjog U2hhcmVkIHV0aWxpdHkgZnVuY3Rpb25zIGFuZCBkZWZpbml0aW9uLgorKyAqIEBzdGFiaWxpdHk6 IFN0YWJsZQorKyAqCisrICogVGhpcyBmaWxlIGRlZmluZXMgc29tZSB1dGlsaXR5IGZ1bmN0aW9u cyBhbmQgZGVmaW5pdGlvbgorKyAqIHdoaWNoIGFyZSBzaGFyZWQgYW1vbmcgaWJ1cyBjb21wb25l bnQgYW5kIHNlcnZpY2VzLgorKyAqLworKworKyNpZm5kZWYgX19JQlVTX0VSUk9SX0hfCisrI2Rl ZmluZSBfX0lCVVNfRVJST1JfSF8KKysKKysjaW5jbHVkZSA8Z2xpYi5oPgorKworK0dfQkVHSU5f REVDTFMKKysKKysjZGVmaW5lIElCVVNfRVJST1IgaWJ1c19lcnJvcl9xdWFyaygpCisrR1F1YXJr IGlidXNfZXJyb3JfcXVhcmsgKHZvaWQpOworKworK0dfRU5EX0RFQ0xTCisrI2VuZGlmCitkaWZm IC0tZ2l0IGEvc3JjL2lidXNpbnB1dGNvbnRleHQuYyBiL3NyYy9pYnVzaW5wdXRjb250ZXh0LmMK K2luZGV4IGU2Zjk3ZTguLjc4ZDQ1NGUgMTAwNjQ0CistLS0gYS9zcmMvaWJ1c2lucHV0Y29udGV4 dC5jCisrKysgYi9zcmMvaWJ1c2lucHV0Y29udGV4dC5jCitAQCAtMjcsNiArMjcsNyBAQAorICNp bmNsdWRlICJpYnVzYXR0cmlidXRlLmgiCisgI2luY2x1ZGUgImlidXNsb29rdXB0YWJsZS5oIgor ICNpbmNsdWRlICJpYnVzcHJvcGxpc3QuaCIKKysjaW5jbHVkZSAiaWJ1c2Vycm9yLmgiCisgCisg I2RlZmluZSBJQlVTX0lOUFVUX0NPTlRFWFRfR0VUX1BSSVZBVEUobykgIFwKKyAgICAoR19UWVBF X0lOU1RBTkNFX0dFVF9QUklWQVRFICgobyksIElCVVNfVFlQRV9JTlBVVF9DT05URVhULCBJQnVz SW5wdXRDb250ZXh0UHJpdmF0ZSkpCitAQCAtMTE2NCw3ICsxMTY1LDcgQEAgSUJ1c0VuZ2luZURl c2MgKgorIGlidXNfaW5wdXRfY29udGV4dF9nZXRfZW5naW5lIChJQnVzSW5wdXRDb250ZXh0ICpj b250ZXh0KQorIHsKKyAgICAgZ19hc3NlcnQgKElCVVNfSVNfSU5QVVRfQ09OVEVYVCAoY29udGV4 dCkpOworLSAgICBHVmFyaWFudCAqcmVzdWx0OworKyAgICBHVmFyaWFudCAqcmVzdWx0ID0gTlVM TDsKKyAgICAgR0Vycm9yICplcnJvciA9IE5VTEw7CisgICAgIHJlc3VsdCA9IGdfZGJ1c19wcm94 eV9jYWxsX3N5bmMgKChHREJ1c1Byb3h5ICopIGNvbnRleHQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJHZXRFbmdpbmUiLCAgICAgICAgICAgICAgIC8qIG1ldGhvZF9u YW1lICovCitAQCAtMTE3NCw5ICsxMTc1LDE3IEBAIGlidXNfaW5wdXRfY29udGV4dF9nZXRfZW5n aW5lIChJQnVzSW5wdXRDb250ZXh0ICpjb250ZXh0KQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAvKiBjYW5jZWxsYWJsZSAq LworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZXJyb3IgICAgICAgICAg ICAgICAgICAgICAvKiBlcnJvciAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICApOworLQorICAgICBpZiAocmVzdWx0ID09IE5VTEwpIHsKKy0gICAgICAgIGdfd2Fybmlu ZyAoIiVzLkdldEVuZ2luZTogJXMiLCBJQlVTX0lOVEVSRkFDRV9JTlBVVF9DT05URVhULCBlcnJv ci0+bWVzc2FnZSk7CisrICAgICAgICBpZiAoZ19lcnJvcl9tYXRjaGVzIChlcnJvciwgSUJVU19F UlJPUiwgSUJVU19FUlJPUl9OT19FTkdJTkUpKSB7CisrICAgICAgICAgICAgZ19kZWJ1ZyAoIiVz LkdldEVuZ2luZTogJXMiLAorKyAgICAgICAgICAgICAgICAgICAgIElCVVNfSU5URVJGQUNFX0lO UFVUX0NPTlRFWFQsCisrICAgICAgICAgICAgICAgICAgICAgZXJyb3ItPm1lc3NhZ2UpOworKyAg ICAgICAgfQorKyAgICAgICAgZWxzZSB7CisrICAgICAgICAgICAgZ193YXJuaW5nICgiJXMuR2V0 RW5naW5lOiAlcyIsCisrICAgICAgICAgICAgICAgICAgICAgICBJQlVTX0lOVEVSRkFDRV9JTlBV VF9DT05URVhULAorKyAgICAgICAgICAgICAgICAgICAgICAgZXJyb3ItPm1lc3NhZ2UpOworKyAg ICAgICAgfQorICAgICAgICAgZ19lcnJvcl9mcmVlIChlcnJvcik7CisgICAgICAgICByZXR1cm4g TlVMTDsKKyAgICAgfQorZGlmZiAtLWdpdCBhL3NyYy9pYnVzc2hhcmUuYyBiL3NyYy9pYnVzc2hh cmUuYworaW5kZXggMWI4YWUyYS4uMTlmOWY2NSAxMDA2NDQKKy0tLSBhL3NyYy9pYnVzc2hhcmUu YworKysrIGIvc3JjL2lidXNzaGFyZS5jCitAQCAtMzE4LDYgKzMxOCw3IEBAIHZvaWQKKyBpYnVz X2luaXQgKHZvaWQpCisgeworICAgICBnX3R5cGVfaW5pdCAoKTsKKysgICAgSUJVU19FUlJPUjsK KyAgICAgSUJVU19UWVBFX1RFWFQ7CisgICAgIElCVVNfVFlQRV9BVFRSSUJVVEU7CisgICAgIElC VVNfVFlQRV9BVFRSX0xJU1Q7CitkaWZmIC0tZ2l0IGEvc3JjL2lidXN0eXBlcy5oIGIvc3JjL2li dXN0eXBlcy5oCitpbmRleCA2YTMxODQ3Li44MTQ2NzE5IDEwMDY0NAorLS0tIGEvc3JjL2lidXN0 eXBlcy5oCisrKysgYi9zcmMvaWJ1c3R5cGVzLmgKK0BAIC0xNzcsNiArMTc3LDE1IEBAIHR5cGVk ZWYgZW51bSB7CisgfSBJQnVzQnVzUmVxdWVzdE5hbWVSZXBseTsKKyAKKyAvKioKKysgKiBJQnVz RXJyb3I6CisrICogQElCVVNfRVJST1JfTk9fRU5HSU5FOgorKyAqIFRoZXJlIGlzIG5vIGVuZ2lu ZSBhc3NvY2lhdGVkIHdpdGggaW5wdXQgY29udGV4dC4KKysgKi8KKyt0eXBlZGVmIGVudW0gewor KyAgICBJQlVTX0VSUk9SX05PX0VOR0lORSwKKyt9IElCdXNFcnJvcjsKKysKKysvKioKKyAgKiBJ QnVzUmVjdGFuZ2xlOgorICAqIEB4OiB4IGNvb3JkaW5hdGUuCisgICogQHk6IHkgY29vcmRpbmF0 ZS4KK2RpZmYgLS1naXQgYS9zcmMvdGVzdHMvaWJ1cy1naS1pbnB1dGNvbnRleHQucHkgYi9zcmMv dGVzdHMvaWJ1cy1naS1pbnB1dGNvbnRleHQucHkKK25ldyBmaWxlIG1vZGUgMTAwNzU1CitpbmRl eCAwMDAwMDAwLi44MGZiOTdiCistLS0gL2Rldi9udWxsCisrKysgYi9zcmMvdGVzdHMvaWJ1cy1n aS1pbnB1dGNvbnRleHQucHkKK0BAIC0wLDAgKzEsMzQgQEAKKysjIS91c3IvYmluL2VudiBweXRo b24KKysjIHZpbTpzZXQgZXQgc3RzPTQgc3c9NDoKKysjCisrIyBpYnVzIC0gVGhlIElucHV0IEJ1 cworKyMKKysjIENvcHlyaWdodCAoYykgMjAxMSBQZW5nIEh1YW5nIDxzaGF3bi5wLmh1YW5nQGdt YWlsLmNvbT4KKysjCisrIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrIyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKysjIHZlcnNpb24gMiBvZiB0aGUg TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBU aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs aWVkIHdhcnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrIyBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrIyBMaWNlbnNlIGFsb25n IHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZQorKyMgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwKKysjIEJvc3Rv biwgTUEgIDAyMTExLTEzMDcgIFVTQQorKworKworK2ltcG9ydCBnbGliCisraW1wb3J0IGdpbwor K2Zyb20gZ2kucmVwb3NpdG9yeSBpbXBvcnQgSUJ1cworK0lCdXMuaW5pdCgpCisrbWFpbiA9IGds aWIuTWFpbkxvb3AoKQorK2J1cyA9IElCdXMuQnVzKCkKKytpYyA9IGJ1cy5jcmVhdGVfaW5wdXRf Y29udGV4dCgiaWJ1cy10ZXN0IikKKytpYy5nZXRfZW5naW5lKCkKKytpYy5nZXRfZW5naW5lKCkK KytpYy5nZXRfZW5naW5lKCkKKytpYy5nZXRfZW5naW5lKCkKKy0tIAorMS43LjQuNAorCitGcm9t IGFlYzk3YWMwOTA5ODBkZmNkN2VlZWY1NWMxNzU1ZjZjZDNmODdhMDEgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCitGcm9tOiBEYWlraSBVZW5vIDxkYWlraS51ZW5vQGdtYWlsLmNvbT4KK0RhdGU6 IFNhdCwgMTggSnVuIDIwMTEgMDA6MDM6MDcgLTA0MDAKK1N1YmplY3Q6IFtQQVRDSF0gU2ltcGxp Znkgc3Vycm91bmRpbmctdGV4dCBpbml0aWFsaXphdGlvbi4KKworQ3VycmVudGx5IHRoZSBpbW1v ZHVsZSB0cmllcyB0byByZXRyaWV2ZSBzdXJyb3VuZGluZy10ZXh0IHVuY29uZGl0aW9uYWxseQor b24gZm9jdXNfaW4gYW5kIGVuYWJsZWQuICBUaGVzZSBjYWxscyBjb3VsZCBiZSBlbGltaW5hdGVk IGlmIGVuZ2luZSB3ZXJlCithYmxlIHRvIHByb2NsYWltIHRoYXQgaXQgd2lsbCBuZWVkIHN1cnJv dW5kaW5nLXRleHQuCisKK1RoaXMgcGF0Y2ggZXh0ZW5kcyBpYnVzX2VuZ2luZV9nZXRfc3Vycm91 bmRpbmdfdGV4dCgpIHRvIGFsbG93IHRoaXMuCitFbmdpbmVzIHRoYXQgbmVlZCBzdXJyb3VuZGlu Zy10ZXh0IGFyZSBleHBlY3RlZCB0byBoYXZlOgorCisgICAgLyogSW5kaWNhdGUgd2Ugd2lsbCB1 c2Ugc3Vycm91bmRpbmctdGV4dC4gKi8KKyAgICBpYnVzX2VuZ2luZV9nZXRfc3Vycm91bmRpbmdf dGV4dCAoZW5naW5lLCBOVUxMLCBOVUxMKTsKKworaW4gdGhlaXIgZW5hYmxlKCkgbWV0aG9kLiAg VGhpcyB3b3VsZCB3b3JrIGJlY2F1c2UgZW5hYmxlKCkgaXMgY2FsbGVkIGJlZm9yZQorU2V0Q2Fw YWJpbGl0aWVzIERCdXMgY2FsbC4KKworQlVHPW5vbmUKK1RFU1Q9bWFudWFsbHkgd2l0aCBpYnVz LW0xN24sIHdpdGggdGhlIGFib3ZlIGNoYW5nZS4KKworUmV2aWV3IFVSTDogaHR0cDovL2NvZGVy ZXZpZXcuYXBwc3BvdC5jb20vNDYxMzA0MworUGF0Y2ggZnJvbSBEYWlraSBVZW5vIDxkYWlraS51 ZW5vQGdtYWlsLmNvbT4uCistLS0KKyBjbGllbnQvZ3RrMi9pYnVzaW1jb250ZXh0LmMgfCAgIDIz ICsrKysrKysrKy0tLS0tLS0tLS0tLS0tCisgc3JjL2lidXNlbmdpbmUuYyAgICAgICAgICAgIHwg ICAxMCArKysrKystLS0tCisgc3JjL2lidXNlbmdpbmUuaCAgICAgICAgICAgIHwgICAgOSArKysr KysrLS0KKyAzIGZpbGVzIGNoYW5nZWQsIDIyIGluc2VydGlvbnMoKyksIDIwIGRlbGV0aW9ucygt KQorCitkaWZmIC0tZ2l0IGEvY2xpZW50L2d0azIvaWJ1c2ltY29udGV4dC5jIGIvY2xpZW50L2d0 azIvaWJ1c2ltY29udGV4dC5jCitpbmRleCBlYzc2NGVmLi5hNGU3YTE2IDEwMDY0NAorLS0tIGEv Y2xpZW50L2d0azIvaWJ1c2ltY29udGV4dC5jCisrKysgYi9jbGllbnQvZ3RrMi9pYnVzaW1jb250 ZXh0LmMKK0BAIC0xNDcsOCArMTQ3LDcgQEAgc3RhdGljIGdib29sZWFuIF9zbGF2ZV9kZWxldGVf c3Vycm91bmRpbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGdpbnQgICAgICAgICAgICAgICAgb2Zmc2V0X2Zyb21fY3Vyc29yLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50ICAgICAgICAgICAgICAgbmNoYXJz LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElCdXNJTUNv bnRleHQgICAgICAqY29udGV4dCk7Cistc3RhdGljIHZvaWQgICAgIF9yZXF1ZXN0X3N1cnJvdW5k aW5nX3RleHQgICAoSUJ1c0lNQ29udGV4dCAgICAgICpjb250ZXh0LAorLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICAgICAgZm9yY2Up OworK3N0YXRpYyB2b2lkICAgICBfcmVxdWVzdF9zdXJyb3VuZGluZ190ZXh0ICAgKElCdXNJTUNv bnRleHQgICAgICAqY29udGV4dCk7Cisgc3RhdGljIHZvaWQgICAgIF9jcmVhdGVfZmFrZV9pbnB1 dF9jb250ZXh0ICAodm9pZCk7CisgCisgCitAQCAtMjYzLDE3ICsyNjIsMTMgQEAgX3Byb2Nlc3Nf a2V5X2V2ZW50X2RvbmUgKEdPYmplY3QgICAgICAqbworIC8qIGVtaXQgInJldHJpZXZlLXN1cnJv dW5kaW5nIiBnbGliIHNpZ25hbCBvZiBHdGtJTUNvbnRleHQsIGlmCisgICogY29udGV4dC0+Y2Fw cyBoYXMgSUJVU19DQVBfU1VSUk9VTkRJTkdfVEVYVCBhbmQgdGhlIGN1cnJlbnQgSUJ1cworICAq IGVuZ2luZSBuZWVkcyBzdXJyb3VuZGluZy10ZXh0LgorLSAqCistICogaWYgImZvcmNlIiBpcyBU UlVFLCBlbWl0IHRoZSBzaWduYWwgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZQorLSAqIGVuZ2lu ZSBuZWVkcyBzdXJyb3VuZGluZy10ZXh0LgorICAqLworIHN0YXRpYyB2b2lkCistX3JlcXVlc3Rf c3Vycm91bmRpbmdfdGV4dCAoSUJ1c0lNQ29udGV4dCAqY29udGV4dCwgZ2Jvb2xlYW4gZm9yY2Up CisrX3JlcXVlc3Rfc3Vycm91bmRpbmdfdGV4dCAoSUJ1c0lNQ29udGV4dCAqY29udGV4dCkKKyB7 CistICAgIGlmIChjb250ZXh0LT5lbmFibGUgJiYKKysgICAgaWYgKGNvbnRleHQgJiYgY29udGV4 dC0+ZW5hYmxlICYmCisgICAgICAgICAoY29udGV4dC0+Y2FwcyAmIElCVVNfQ0FQX1NVUlJPVU5E SU5HX1RFWFQpICE9IDAgJiYKKy0gICAgICAgIChmb3JjZSB8fAorLSAgICAgICAgIGlidXNfaW5w dXRfY29udGV4dF9uZWVkc19zdXJyb3VuZGluZ190ZXh0IChjb250ZXh0LT5pYnVzY29udGV4dCkp KSB7CisrICAgICAgICBpYnVzX2lucHV0X2NvbnRleHRfbmVlZHNfc3Vycm91bmRpbmdfdGV4dCAo Y29udGV4dC0+aWJ1c2NvbnRleHQpKSB7CisgICAgICAgICBnYm9vbGVhbiByZXR1cm5fdmFsdWU7 CisgICAgICAgICBJREVCVUcgKCJyZXF1ZXN0aW5nIHN1cnJvdW5kaW5nIHRleHQiKTsKKyAgICAg ICAgIGdfc2lnbmFsX2VtaXQgKGNvbnRleHQsIF9zaWduYWxfcmV0cmlldmVfc3Vycm91bmRpbmdf aWQsIDAsCitAQCAtMzY4LDkgKzM2Myw4IEBAIF9rZXlfc25vb3Blcl9jYiAoR3RrV2lkZ2V0ICAg KndpZGdldCwKKyAKKyAgICAgfSB3aGlsZSAoMCk7CisgCistICAgIF9yZXF1ZXN0X3N1cnJvdW5k aW5nX3RleHQgKGlidXNpbWNvbnRleHQsIEZBTFNFKTsKKy0KKyAgICAgaWYgKGlidXNpbWNvbnRl eHQgIT0gTlVMTCkgeworKyAgICAgICAgX3JlcXVlc3Rfc3Vycm91bmRpbmdfdGV4dCAoaWJ1c2lt Y29udGV4dCk7CisgICAgICAgICBpYnVzaW1jb250ZXh0LT50aW1lID0gZXZlbnQtPnRpbWU7Cisg ICAgIH0KKyAKK0BAIC02ODAsNyArNjc0LDcgQEAgaWJ1c19pbV9jb250ZXh0X2ZpbHRlcl9rZXlw cmVzcyAoR3RrSU1DbworICAgICAgICAgaWYgKGlidXNpbWNvbnRleHQtPmNsaWVudF93aW5kb3cg PT0gTlVMTCAmJiBldmVudC0+d2luZG93ICE9IE5VTEwpCisgICAgICAgICAgICAgZ3RrX2ltX2Nv bnRleHRfc2V0X2NsaWVudF93aW5kb3cgKChHdGtJTUNvbnRleHQgKilpYnVzaW1jb250ZXh0LCBl dmVudC0+d2luZG93KTsKKyAKKy0gICAgICAgIF9yZXF1ZXN0X3N1cnJvdW5kaW5nX3RleHQgKGli dXNpbWNvbnRleHQsIEZBTFNFKTsKKysgICAgICAgIF9yZXF1ZXN0X3N1cnJvdW5kaW5nX3RleHQg KGlidXNpbWNvbnRleHQpOworIAorICAgICAgICAgaWYgKGlidXNpbWNvbnRleHQgIT0gTlVMTCkg eworICAgICAgICAgICAgIGlidXNpbWNvbnRleHQtPnRpbWUgPSBldmVudC0+dGltZTsKK0BAIC03 NjMsNyArNzU3LDcgQEAgaWJ1c19pbV9jb250ZXh0X2ZvY3VzX2luIChHdGtJTUNvbnRleHQgKgor IAorICAgICAvKiByZXRyaWV2ZSB0aGUgaW5pdGlhbCBzdXJyb3VuZGluZy10ZXh0IChyZWdhcmRs ZXNzIG9mIHdoZXRoZXIKKyAgICAgICogdGhlIGN1cnJlbnQgSUJ1cyBlbmdpbmUgbmVlZHMgc3Vy cm91bmRpbmctdGV4dCkgKi8KKy0gICAgX3JlcXVlc3Rfc3Vycm91bmRpbmdfdGV4dCAoaWJ1c2lt Y29udGV4dCwgVFJVRSk7CisrICAgIF9yZXF1ZXN0X3N1cnJvdW5kaW5nX3RleHQgKGlidXNpbWNv bnRleHQpOworIAorICAgICBnX29iamVjdF9hZGRfd2Vha19wb2ludGVyICgoR09iamVjdCAqKSBj b250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ3BvaW50ZXIgKikgJl9m b2N1c19pbV9jb250ZXh0KTsKK0BAIC0xMDAwLDcgKzk5Niw3IEBAIF9pYnVzX2NvbnRleHRfY29t bWl0X3RleHRfY2IgKElCdXNJbnB1dEMKKyAKKyAgICAgZ19zaWduYWxfZW1pdCAoaWJ1c2ltY29u dGV4dCwgX3NpZ25hbF9jb21taXRfaWQsIDAsIHRleHQtPnRleHQpOworIAorLSAgICBfcmVxdWVz dF9zdXJyb3VuZGluZ190ZXh0IChpYnVzaW1jb250ZXh0LCBGQUxTRSk7CisrICAgIF9yZXF1ZXN0 X3N1cnJvdW5kaW5nX3RleHQgKGlidXNpbWNvbnRleHQpOworIH0KKyAKKyBzdGF0aWMgZ2Jvb2xl YW4KK0BAIC0xMjk2LDcgKzEyOTIsNyBAQCBfaWJ1c19jb250ZXh0X3Nob3dfcHJlZWRpdF90ZXh0 X2NiIChJQnVzCisgICAgIGdfc2lnbmFsX2VtaXQgKGlidXNpbWNvbnRleHQsIF9zaWduYWxfcHJl ZWRpdF9zdGFydF9pZCwgMCk7CisgICAgIGdfc2lnbmFsX2VtaXQgKGlidXNpbWNvbnRleHQsIF9z aWduYWxfcHJlZWRpdF9jaGFuZ2VkX2lkLCAwKTsKKyAKKy0gICAgX3JlcXVlc3Rfc3Vycm91bmRp bmdfdGV4dCAoaWJ1c2ltY29udGV4dCwgRkFMU0UpOworKyAgICBfcmVxdWVzdF9zdXJyb3VuZGlu Z190ZXh0IChpYnVzaW1jb250ZXh0KTsKKyB9CisgCisgc3RhdGljIHZvaWQKK0BAIC0xMzIzLDcg KzEzMTksNyBAQCBfaWJ1c19jb250ZXh0X2VuYWJsZWRfY2IgKElCdXNJbnB1dENvbnRlCisgCisg ICAgIC8qIHJldHJpZXZlIHRoZSBpbml0aWFsIHN1cnJvdW5kaW5nLXRleHQgKHJlZ2FyZGxlc3Mg b2Ygd2hldGhlcgorICAgICAgKiB0aGUgY3VycmVudCBJQnVzIGVuZ2luZSBuZWVkcyBzdXJyb3Vu ZGluZy10ZXh0KSAqLworLSAgICBfcmVxdWVzdF9zdXJyb3VuZGluZ190ZXh0IChpYnVzaW1jb250 ZXh0LCBUUlVFKTsKKysgICAgX3JlcXVlc3Rfc3Vycm91bmRpbmdfdGV4dCAoaWJ1c2ltY29udGV4 dCk7CisgfQorIAorIHN0YXRpYyB2b2lkCitkaWZmIC0tZ2l0IGEvc3JjL2lidXNlbmdpbmUuYyBi L3NyYy9pYnVzZW5naW5lLmMKK2luZGV4IGY1NDViZWYuLjYyMGQwN2YgMTAwNjQ0CistLS0gYS9z cmMvaWJ1c2VuZ2luZS5jCisrKysgYi9zcmMvaWJ1c2VuZ2luZS5jCitAQCAtMTM4MiwxMyArMTM4 MiwxNSBAQCBpYnVzX2VuZ2luZV9nZXRfc3Vycm91bmRpbmdfdGV4dCAoSUJ1c0VuZ2luZSAgICpl bmdpbmUsCisgICAgIElCdXNFbmdpbmVQcml2YXRlICpwcml2OworIAorICAgICBnX3JldHVybl9p Zl9mYWlsIChJQlVTX0lTX0VOR0lORSAoZW5naW5lKSk7CistICAgIGdfcmV0dXJuX2lmX2ZhaWwg KHRleHQgIT0gTlVMTCk7CistICAgIGdfcmV0dXJuX2lmX2ZhaWwgKGN1cnNvcl9wb3MgIT0gTlVM TCk7CisrICAgIGdfcmV0dXJuX2lmX2ZhaWwgKCh0ZXh0ICE9IE5VTEwgJiYgY3Vyc29yX3BvcyAh PSBOVUxMKSB8fAorKyAgICAgICAgICAgICAgICAgICAgICAodGV4dCA9PSBOVUxMICYmIGN1cnNv cl9wb3MgPT0gTlVMTCkpOworIAorICAgICBwcml2ID0gSUJVU19FTkdJTkVfR0VUX1BSSVZBVEUg KGVuZ2luZSk7CisgCistICAgICp0ZXh0ID0gZ19vYmplY3RfcmVmIChwcml2LT5zdXJyb3VuZGlu Z190ZXh0KTsKKy0gICAgKmN1cnNvcl9wb3MgPSBwcml2LT5zdXJyb3VuZGluZ19jdXJzb3JfcG9z OworKyAgICBpZiAodGV4dCAmJiBjdXJzb3JfcG9zKSB7CisrICAgICAgICAqdGV4dCA9IGdfb2Jq ZWN0X3JlZiAocHJpdi0+c3Vycm91bmRpbmdfdGV4dCk7CisrICAgICAgICAqY3Vyc29yX3BvcyA9 IHByaXYtPnN1cnJvdW5kaW5nX2N1cnNvcl9wb3M7CisrICAgIH0KKyAKKyAgICAgLyogdGVsbCB0 aGUgY2xpZW50IHRoYXQgdGhpcyBlbmdpbmUgd2lsbCB1dGlsaXplIHN1cnJvdW5kaW5nLXRleHQK KyAgICAgICogZmVhdHVyZSwgd2hpY2ggY2F1c2VzIHBlcmlvZGljYWwgdXBkYXRlLiAgTm90ZSB0 aGF0IHRoZSBjbGllbnQKK2RpZmYgLS1naXQgYS9zcmMvaWJ1c2VuZ2luZS5oIGIvc3JjL2lidXNl bmdpbmUuaAoraW5kZXggMjliOGYxZC4uNmRhMzQyYSAxMDA2NDQKKy0tLSBhL3NyYy9pYnVzZW5n aW5lLmgKKysrKyBiL3NyYy9pYnVzZW5naW5lLmgKK0BAIC00MDcsMTEgKzQwNywxNiBAQCB2b2lk IGlidXNfZW5naW5lX2RlbGV0ZV9zdXJyb3VuZGluZ190ZXh0KElCdXNFbmdpbmUgICAgICAgICAq ZW5naW5lLAorIC8qKgorICAqIGlidXNfZW5naW5lX2dldF9zdXJyb3VuZGluZ190ZXh0OgorICAq IEBlbmdpbmU6IEFuIElCdXNFbmdpbmUuCistICogQHRleHQ6IExvY2F0aW9uIHRvIHN0b3JlIHN1 cnJvdW5kaW5nIHRleHQuCistICogQGN1cnNvcl9wb3M6IEN1cnNvciBwb3NpdGlvbiBpbiBjaGFy YWN0ZXJzIGluIEB0ZXh0LgorKyAqIEB0ZXh0OiAoYWxsb3ctbm9uZSk6IExvY2F0aW9uIHRvIHN0 b3JlIHN1cnJvdW5kaW5nIHRleHQuCisrICogQGN1cnNvcl9wb3M6IChhbGxvdy1ub25lKTogQ3Vy c29yIHBvc2l0aW9uIGluIGNoYXJhY3RlcnMgaW4gQHRleHQuCisgICoKKyAgKiBHZXQgc3Vycm91 bmRpbmcgdGV4dC4KKyAgKgorKyAqIEl0IGlzIGFsc28gdXNlZCB0byB0ZWxsIHRoZSBpbnB1dC1j b250ZXh0IHRoYXQgdGhlIGVuZ2luZSB3aWxsCisrICogdXRpbGl6ZSBzdXJyb3VuZGluZy10ZXh0 LiAgSW4gdGhhdCBjYXNlLCBpdCBtdXN0IGJlIGNhbGxlZCBpbgorKyAqICNJQnVzRW5naW5lOjpl bmFibGUgaGFuZGxlciwgd2l0aCBib3RoIEB0ZXh0IGFuZCBAY3Vyc29yIHNldCB0bworKyAqICVO VUxMLgorKyAqCisgICogQHNlZV9hbHNvICNJQnVzRW5naW5lOjpzZXQtc3Vycm91bmRpbmctdGV4 dAorICAqLworIHZvaWQgaWJ1c19lbmdpbmVfZ2V0X3N1cnJvdW5kaW5nX3RleHQoSUJ1c0VuZ2lu ZSAgICAgICAgICplbmdpbmUsCistLSAKKzEuNy40LjQKKwoKZGlmZiAtLWdpdCBhL2lidXMteHgt YnJpZGdlLWhvdGtleS5wYXRjaCBiL2lidXMteHgtYnJpZGdlLWhvdGtleS5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MjRkZDgxCi0tLSAvZGV2L251bGwKKysrIGIv aWJ1cy14eC1icmlkZ2UtaG90a2V5LnBhdGNoCkBAIC0wLDAgKzEsODc0IEBACitGcm9tIGEzYTdi MzY0NDEwNTExYjNhMTdmMmIxNTY2YmE0YzRjNGYwZGUyY2YgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCitGcm9tOiBmdWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CitEYXRlOiBU dWUsIDIxIEp1biAyMDExIDE3OjAwOjU0ICswOTAwCitTdWJqZWN0OiBbUEFUQ0hdIEFkZCBhIGJy aWRnZSBob3RrZXkgd2hpY2ggdXNlIHByZXYtbmV4dCBlbmdpbmVzIGluc3RlYWQKKyBvZiBvbi1v ZmYuCisKKy0tLQorIGJ1cy9NYWtlZmlsZS5hbSAgICAgICAgICAgIHwgICAyMCArKy0tCisgYnVz L2lidXNpbXBsLmMgICAgICAgICAgICAgfCAgMjQ0ICsrKysrKysrKysrKysrKysrKysrKysrKysr KystLS0tLS0tLS0tCisgYnVzL3JlZ2lzdHJ5LmMgICAgICAgICAgICAgfCAgIDM1ICsrKysrKwor IGNvbmZpZ3VyZS5hYyAgICAgICAgICAgICAgIHwgICAzMSArKysrKworIGRhdGEvTWFrZWZpbGUu YW0gICAgICAgICAgIHwgICAgNiArLQorIGRhdGEvaWJ1cy5zY2hlbWFzLmluICAgICAgIHwgIDI4 NiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGRhdGEvaWJ1 cy5zY2hlbWFzLmluLmluICAgIHwgIDI4NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKworIGlidXMvX2NvbmZpZy5weS5pbiAgICAgICAgIHwgICAgNiArCisgaWJ1 cy9pbnB1dGNvbnRleHQucHkgICAgICAgfCAgICA0ICsKKyBzcmMvTWFrZWZpbGUuYW0gICAgICAg ICAgICB8ICAgIDEgKworIHNyYy9pYnVzYnVzLmMgICAgICAgICAgICAgIHwgICAgNiArCisgc3Jj L2lidXNidXMuaCAgICAgICAgICAgICAgfCAgICA5ICsrCisgc3JjL2lidXNlbmdpbmVkZXNjLmMg ICAgICAgfCAgICA0ICsKKyBzcmMvaWJ1c2hvdGtleS5jICAgICAgICAgICB8ICAgMTEgKysKKyBz cmMvaWJ1c2hvdGtleS5oICAgICAgICAgICB8ICAgMTEgKysKKyB1aS9ndGsvcGFuZWwucHkgICAg ICAgICAgICB8ICAgNjAgKysrKysrKysrLQorIHhrYi9NYWtlZmlsZS5hbSAgICAgICAgICAgIHwg ICAgMiArCisgeGtiL2lidXMtZW5naW5lLXhrYi1tYWluLmMgfCAgICA4ICsrCisgeGtiL3hrYnht bC5jICAgICAgICAgICAgICAgfCAgICA4ICstCisgMTkgZmlsZXMgY2hhbmdlZCwgNjc3IGluc2Vy dGlvbnMoKyksIDM2MSBkZWxldGlvbnMoLSkKKyBkZWxldGUgbW9kZSAxMDA2NDQgZGF0YS9pYnVz LnNjaGVtYXMuaW4KKyBjcmVhdGUgbW9kZSAxMDA2NDQgZGF0YS9pYnVzLnNjaGVtYXMuaW4uaW4K KworZGlmZiAtLWdpdCBhL2J1cy9NYWtlZmlsZS5hbSBiL2J1cy9NYWtlZmlsZS5hbQoraW5kZXgg MDc0YjQ1Ni4uMGVmYWExYiAxMDA2NDQKKy0tLSBhL2J1cy9NYWtlZmlsZS5hbQorKysrIGIvYnVz L01ha2VmaWxlLmFtCitAQCAtMjksMTUgKzI5LDE3IEBAIElOQ0xVREVTID0gICAgICAgICAgICAg ICAgXAorIAktSSQodG9wX2J1aWxkZGlyKS9zcmMgXAorIAkkKE5VTEwpCisgCistQU1fQ0ZMQUdT ID0gICAgICAgICAgICAgICAgICAgICAgICBcCistCUBHTElCMl9DRkxBR1NAICAgICAgICAgICAg ICAgICBcCistCUBHSU8yX0NGTEFHU0AgICAgICAgICAgICAgICAgICBcCistCUBHVEhSRUFEMl9D RkxBR1NAICAgICAgICAgICAgICBcCistCS1ER19MT0dfRE9NQUlOPVwiSUJVU1wiICAgICAgICBc CistCS1EUEtHREFUQURJUj1cIiQocGtnZGF0YWRpcilcIiBcCistCS1ETElCRVhFQ0RJUj1cIiQo bGliZXhlY2RpcilcIiBcCistCS1EQklORElSPVwiQGJpbmRpckBcIiAgICAgICAgICBcCistCSQo SU5DTFVERVMpICAgICAgICAgICAgICAgICAgICBcCisrQU1fQ0ZMQUdTID0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisrCUBHTElC Ml9DRkxBR1NAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKysJQEdJTzJfQ0ZMQUdTQCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAorKwlAR1RIUkVBRDJfQ0ZMQUdTQCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCisrCS1ER19MT0dfRE9NQUlOPVwiSUJVU1wiICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKysJLURQS0dEQVRBRElSPVwiJChw a2dkYXRhZGlyKVwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKwktRExJQkVY RUNESVI9XCIkKGxpYmV4ZWNkaXIpXCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CisrCS1EQklORElSPVwiQGJpbmRpckBcIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKKysJLURVU0VfQlJJREdFX0hPVEtFWT0kKFVTRV9CUklER0VfSE9US0VZKSAg ICAgICAgICAgICAgICAgICAgICAgXAorKwktRERFRkFVTFRfQlJJREdFX0VOR0lORV9OQU1FPVwi JChERUZBVUxUX0JSSURHRV9FTkdJTkVfTkFNRSlcIiBcCisrCSQoSU5DTFVERVMpICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAJJChOVUxMKQor IEFNX0xEQUREID0gICAgICAgICAgICAgICAgICBcCisgCUBHT0JKRUNUMl9MSUJTQCAgICAgICAg IFwKK2RpZmYgLS1naXQgYS9idXMvaWJ1c2ltcGwuYyBiL2J1cy9pYnVzaW1wbC5jCitpbmRleCAz OGQ2ZDExLi4zYjJkNTM5IDEwMDY0NAorLS0tIGEvYnVzL2lidXNpbXBsLmMKKysrKyBiL2J1cy9p YnVzaW1wbC5jCitAQCAtMjAsNiArMjAsMTAgQEAKKyAgKiBCb3N0b24sIE1BIDAyMTExLTEzMDcs IFVTQS4KKyAgKi8KKyAKKysjaWZkZWYgSEFWRV9DT05GSUdfSAorKyNpbmNsdWRlIDxjb25maWcu aD4KKysjZW5kaWYKKysKKyAjaW5jbHVkZSA8dW5pc3RkLmg+CisgI2luY2x1ZGUgPHN5cy90eXBl cy5oPgorICNpbmNsdWRlIDxzeXMvd2FpdC5oPgorQEAgLTc5LDYgKzgzLDggQEAgc3RydWN0IF9C dXNJQnVzSW1wbCB7CisgICAgIC8qIGVuZ2luZS1zcGVjaWZpYyBob3RrZXlzICovCisgICAgIElC dXNIb3RrZXlQcm9maWxlICplbmdpbmVzX2hvdGtleV9wcm9maWxlOworICAgICBHSGFzaFRhYmxl ICAgICAgKmhvdGtleV90b19lbmdpbmVzX21hcDsKKysKKysgICAgSUJ1c0VuZ2luZURlc2MgKnBy ZXZfaG90a2V5X2VuZ2luZTsKKyB9OworIAorIHN0cnVjdCBfQnVzSUJ1c0ltcGxDbGFzcyB7CitA QCAtMjg1LDYgKzI5MSwzMCBAQCBfcGFuZWxfZGVzdHJveV9jYiAoQnVzUGFuZWxQcm94eSAqcGFu ZWwsCisgICAgIGdfb2JqZWN0X3VucmVmIChwYW5lbCk7CisgfQorIAorK3N0YXRpYyBJQnVzRW5n aW5lRGVzYyAqCisrX2ZpbmRfZW5naW5lX2Rlc2NfYnlfbmFtZSAoQnVzSUJ1c0ltcGwgKmlidXMs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgKmVuZ2luZV9uYW1lKQor K3sKKysgICAgSUJ1c0VuZ2luZURlc2MgKmRlc2MgPSBOVUxMOworKyAgICBHTGlzdCAqcDsKKysK KysgICAgLyogZmluZCBlbmdpbmUgaW4gcmVnaXN0ZXJlZCBlbmdpbmUgbGlzdCAqLworKyAgICBm b3IgKHAgPSBpYnVzLT5yZWdpc3Rlcl9lbmdpbmVfbGlzdDsgcCAhPSBOVUxMOyBwID0gcC0+bmV4 dCkgeworKyAgICAgICAgZGVzYyA9IChJQnVzRW5naW5lRGVzYyAqKSBwLT5kYXRhOworKyAgICAg ICAgaWYgKGdfc3RyY21wMCAoaWJ1c19lbmdpbmVfZGVzY19nZXRfbmFtZSAoZGVzYyksIGVuZ2lu ZV9uYW1lKSA9PSAwKQorKyAgICAgICAgICAgIHJldHVybiBkZXNjOworKyAgICB9CisrCisrICAg IC8qIGZpbmQgZW5naW5lIGluIHByZWxvYWQgZW5naW5lIGxpc3QgKi8KKysgICAgZm9yIChwID0g aWJ1cy0+ZW5naW5lX2xpc3Q7IHAgIT0gTlVMTDsgcCA9IHAtPm5leHQpIHsKKysgICAgICAgIGRl c2MgPSAoSUJ1c0VuZ2luZURlc2MgKikgcC0+ZGF0YTsKKysgICAgICAgIGlmIChnX3N0cmNtcDAg KGlidXNfZW5naW5lX2Rlc2NfZ2V0X25hbWUgKGRlc2MpLCBlbmdpbmVfbmFtZSkgPT0gMCkKKysg ICAgICAgICAgICByZXR1cm4gZGVzYzsKKysgICAgfQorKworKyAgICByZXR1cm4gTlVMTDsKKyt9 CisrCisgc3RhdGljIHZvaWQKKyBfY29uZmlnX3NldF92YWx1ZV9kb25lIChHT2JqZWN0ICAgICAg Km9iamVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBHQXN5bmNSZXN1bHQgKnJlcywKK0BA IC00NzUsOCArNTA1LDE3IEBAIF9zZXRfcHJlbG9hZF9lbmdpbmVzIChCdXNJQnVzSW1wbCAqaWJ1 cywKKyAgICAgICAgIGdfdmFyaWFudF91bnJlZiAodmFsdWUpOworICAgICB9CisgCistICAgIGdf bGlzdF9mb3JlYWNoIChlbmdpbmVfbGlzdCwgKEdGdW5jKSBnX29iamVjdF9yZWYsIE5VTEwpOwor ICAgICBpYnVzLT5lbmdpbmVfbGlzdCA9IGVuZ2luZV9saXN0OworKyNpZiBVU0VfQlJJREdFX0hP VEtFWQorKyAgICBpZiAoX2ZpbmRfZW5naW5lX2Rlc2NfYnlfbmFtZSAoaWJ1cywgREVGQVVMVF9C UklER0VfRU5HSU5FX05BTUUpID09IE5VTEwpIHsKKysgICAgICAgIElCdXNFbmdpbmVEZXNjICpl bmdpbmUgPSBidXNfcmVnaXN0cnlfZmluZF9lbmdpbmVfYnlfbmFtZSAoaWJ1cy0+cmVnaXN0cnks CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIERFRkFVTFRfQlJJREdFX0VOR0lORV9OQU1FKTsKKysgICAgICAgIGdfYXNz ZXJ0IChlbmdpbmUgIT0gTlVMTCk7CisrICAgICAgICBlbmdpbmVfbGlzdCA9IGdfbGlzdF9hcHBl bmQgKGVuZ2luZV9saXN0LCBlbmdpbmUpOworKyAgICAgICAgaWJ1cy0+ZW5naW5lX2xpc3QgPSBl bmdpbmVfbGlzdDsKKysgICAgfQorKyNlbmRpZgorKyAgICBnX2xpc3RfZm9yZWFjaCAoZW5naW5l X2xpc3QsIChHRnVuYykgZ19vYmplY3RfcmVmLCBOVUxMKTsKKyAKKyAgICAgaWYgKGlidXMtPmVu Z2luZV9saXN0KSB7CisgICAgICAgICBCdXNDb21wb25lbnQgKmNvbXBvbmVudCA9IGJ1c19jb21w b25lbnRfZnJvbV9lbmdpbmVfZGVzYyAoKElCdXNFbmdpbmVEZXNjICopIGlidXMtPmVuZ2luZV9s aXN0LT5kYXRhKTsKK0BAIC0xMTgyLDI4ICsxMjIxLDExMCBAQCBfaWJ1c19nZXRfYWRkcmVzcyAo QnVzSUJ1c0ltcGwgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGdfdmFyaWFudF9uZXcgKCIocykiLCBidXNfc2VydmVyX2dldF9hZGRyZXNzICgp KSk7CisgfQorIAorLXN0YXRpYyBJQnVzRW5naW5lRGVzYyAqCistX2ZpbmRfZW5naW5lX2Rlc2Nf YnlfbmFtZSAoQnVzSUJ1c0ltcGwgKmlidXMsCistICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgZ2NoYXIgKmVuZ2luZV9uYW1lKQorLXsKKy0gICAgSUJ1c0VuZ2luZURlc2MgKmRlc2Mg PSBOVUxMOworLSAgICBHTGlzdCAqcDsKKysvKioKKysgKiBfZm9yZWFjaF9yZW1vdmVfZW5naW5l X2hvdGtleToKKysgKgorKyAqIFJlbW92ZSB0aGUgZW5naW5lLXNwZWNpZmljIGhvdCBrZXkgb2Yg dGhlIGVuZ2luZSwgYW5kIHVwZGF0ZSBpYnVzLT5lbmdpbmVzX2hvdGtleV9wcm9maWxlLgorKyAq LworK2dib29sZWFuCisrX2ZvcmVhY2hfcmVtb3ZlX2VuZ2luZV9ob3RrZXkgKGdwb2ludGVyICAg ICAgICBrZXksCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyICAgICAg ICB2YWx1ZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgICAgICAg IGRhdGEpCisreworKyAgICBHUXVhcmsgZXZlbnQgPSBHUE9JTlRFUl9UT19VSU5UICh2YWx1ZSk7 CisrICAgIHN0cnVjdCBfaW1wbF9hbmRfZGVzYyB7CisrICAgICAgICBCdXNJQnVzSW1wbCAgICAq aWJ1czsKKysgICAgICAgIElCdXNFbmdpbmVEZXNjICpkZXNjOworKyAgICB9ICppZCA9IChzdHJ1 Y3QgX2ltcGxfYW5kX2Rlc2MgKikgZGF0YTsKKysgICAgQnVzSUJ1c0ltcGwgKmlidXMgPSBpZC0+ aWJ1czsKKysgICAgSUJ1c0VuZ2luZURlc2MgKmRlc2MgPSBpZC0+ZGVzYzsKKysgICAgR0xpc3Qg KmVuZ2luZV9saXN0OworIAorLSAgICAvKiBmaW5kIGVuZ2luZSBpbiByZWdpc3RlcmVkIGVuZ2lu ZSBsaXN0ICovCistICAgIGZvciAocCA9IGlidXMtPnJlZ2lzdGVyX2VuZ2luZV9saXN0OyBwICE9 IE5VTEw7IHAgPSBwLT5uZXh0KSB7CistICAgICAgICBkZXNjID0gKElCdXNFbmdpbmVEZXNjICop IHAtPmRhdGE7CistICAgICAgICBpZiAoZ19zdHJjbXAwIChpYnVzX2VuZ2luZV9kZXNjX2dldF9u YW1lIChkZXNjKSwgZW5naW5lX25hbWUpID09IDApCistICAgICAgICAgICAgcmV0dXJuIGRlc2M7 CisrICAgIGdfYXNzZXJ0IChpYnVzICE9IE5VTEwpOworKyAgICBnX2Fzc2VydCAoZGVzYyAhPSBO VUxMKTsKKysKKysgICAgaWYgKGV2ZW50ID09IDApIHsKKysgICAgICAgIHJldHVybiBGQUxTRTsK KyAgICAgfQorIAorLSAgICAvKiBmaW5kIGVuZ2luZSBpbiBwcmVsb2FkIGVuZ2luZSBsaXN0ICov CistICAgIGZvciAocCA9IGlidXMtPmVuZ2luZV9saXN0OyBwICE9IE5VTEw7IHAgPSBwLT5uZXh0 KSB7CistICAgICAgICBkZXNjID0gKElCdXNFbmdpbmVEZXNjICopIHAtPmRhdGE7CistICAgICAg ICBpZiAoZ19zdHJjbXAwIChpYnVzX2VuZ2luZV9kZXNjX2dldF9uYW1lIChkZXNjKSwgZW5naW5l X25hbWUpID09IDApCistICAgICAgICAgICAgcmV0dXJuIGRlc2M7CisrICAgIGVuZ2luZV9saXN0 ID0gZ19oYXNoX3RhYmxlX2xvb2t1cCAoaWJ1cy0+aG90a2V5X3RvX2VuZ2luZXNfbWFwLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdVSU5UX1RPX1BPSU5URVIgKGV2 ZW50KSk7CisrCisrICAgIC8qIEFzIHdlIHdpbGwgcmVidWlsZCB0aGUgZW5naW5lcyBob3RrZXkg bWFwIHdoZW5ldmVyIGFuIGVuZ2luZSB3YXMKKysgICAgICogYWRkZWQgb3IgcmVtb3ZlZCwgd2Ug ZG9uJ3QgbmVlZCB0byBob2xkIGEgcmVmZXJlbmNlIG9mIHRoZSBlbmdpbmUKKysgICAgICogaGVy ZS4gKi8KKysgICAgaWYgKGVuZ2luZV9saXN0ICYmIGdfbGlzdF9maW5kIChlbmdpbmVfbGlzdCwg ZGVzYykgIT0gTlVMTCkgeworKyAgICAgICAgZW5naW5lX2xpc3QgPSBnX2xpc3RfcmVtb3ZlIChl bmdpbmVfbGlzdCwgZGVzYyk7CisgICAgIH0KKyAKKy0gICAgcmV0dXJuIE5VTEw7CisrICAgIC8q IFdlIG5lZWQgdG8gc3RlYWwgdGhlIHZhbHVlIGJlZm9yZSBhZGRpbmcgaXQgYmFjaywgb3RoZXJ3 aXNlIGl0IHdpbGwKKysgICAgICogYmUgZGVzdHJveWVkLiAqLworKyAgICBnX2hhc2hfdGFibGVf c3RlYWwgKGlidXMtPmhvdGtleV90b19lbmdpbmVzX21hcCwgR1VJTlRfVE9fUE9JTlRFUiAoZXZl bnQpKTsKKysKKysgICAgaWYgKGVuZ2luZV9saXN0ICE9IE5VTEwpIHsKKysgICAgICAgIGdfaGFz aF90YWJsZV9pbnNlcnQgKGlidXMtPmhvdGtleV90b19lbmdpbmVzX21hcCwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEdVSU5UX1RPX1BPSU5URVIgKGV2ZW50KSwgZW5naW5lX2xpc3Qp OworKyAgICB9CisrCisrICAgIHJldHVybiBGQUxTRTsKKyt9CisrCisrLyoqCisrICogX2FkZF9l bmdpbmVfaG90a2V5X3dpdGhfaG90a2V5czoKKysgKgorKyAqIENoZWNrIHRoZSBlbmdpbmUtc3Bl Y2lmaWMgaG90IGtleSBvZiB0aGUgZW5naW5lLCBhbmQgdXBkYXRlIGlidXMtPmVuZ2luZXNfaG90 a2V5X3Byb2ZpbGUuCisrICovCisrc3RhdGljIHZvaWQKKytfYWRkX2VuZ2luZV9ob3RrZXlfd2l0 aF9ob3RrZXlzIChJQnVzRW5naW5lRGVzYyAqZW5naW5lLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEJ1c0lCdXNJbXBsICAgICppYnVzLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICpob3RrZXlzKQorK3sKKysgICAgZ2NoYXIgKipo b3RrZXlfbGlzdDsKKysgICAgZ2NoYXIgKipwOworKyAgICBnY2hhciAqaG90a2V5OworKyAgICBH TGlzdCAqZW5naW5lX2xpc3Q7CisrCisrICAgIEdRdWFyayBldmVudDsKKysgICAgZ3VpbnQga2V5 dmFsOworKyAgICBndWludCBtb2RpZmllcnM7CisrCisrICAgIGdfYXNzZXJ0IChlbmdpbmUgIT0g TlVMTCk7CisrICAgIGdfYXNzZXJ0IChob3RrZXlzICYmICpob3RrZXlzKTsKKysKKysgICAgaG90 a2V5X2xpc3QgPSBnX3N0cnNwbGl0X3NldCAoaG90a2V5cywgIjssIiwgMCk7CisrCisrICAgIGZv ciAocCA9IGhvdGtleV9saXN0OyBwICYmICpwOyArK3ApIHsKKysgICAgICAgIGhvdGtleSA9IGdf c3Ryc3RyaXAgKCpwKTsKKysgICAgICAgIGlmICghKmhvdGtleSB8fCAhaWJ1c19rZXlfZXZlbnRf ZnJvbV9zdHJpbmcgKGhvdGtleSwgJmtleXZhbCwgJm1vZGlmaWVycykpIHsKKysgICAgICAgICAg ICBjb250aW51ZTsKKysgICAgICAgIH0KKysKKysgICAgICAgIC8qIElmIHRoZSBob3RrZXkgYWxy ZWFkeSBleGlzdHMsIHdlIHdvbid0IG5lZWQgdG8gYWRkIGl0IGFnYWluLiAqLworKyAgICAgICAg ZXZlbnQgPSBpYnVzX2hvdGtleV9wcm9maWxlX2xvb2t1cF9ob3RrZXkgKGlidXMtPmVuZ2luZXNf aG90a2V5X3Byb2ZpbGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAga2V5dmFsLCBtb2RpZmllcnMpOworKyAgICAgICAgaWYgKGV2ZW50ID09IDAp IHsKKysgICAgICAgICAgICBldmVudCA9IGdfcXVhcmtfZnJvbV9zdHJpbmcgKGhvdGtleSk7Cisr ICAgICAgICAgICAgaWJ1c19ob3RrZXlfcHJvZmlsZV9hZGRfaG90a2V5IChpYnVzLT5lbmdpbmVz X2hvdGtleV9wcm9maWxlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAga2V5dmFsLCBtb2RpZmllcnMsIGV2ZW50KTsKKysgICAgICAgIH0KKysKKysgICAgICAg IGVuZ2luZV9saXN0ID0gZ19oYXNoX3RhYmxlX2xvb2t1cCAoaWJ1cy0+aG90a2V5X3RvX2VuZ2lu ZXNfbWFwLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVUlO VF9UT19QT0lOVEVSIChldmVudCkpOworKworKyAgICAgICAgLyogQXMgd2Ugd2lsbCByZWJ1aWxk IHRoZSBlbmdpbmVzIGhvdGtleSBtYXAgd2hlbmV2ZXIgYW4gZW5naW5lIHdhcworKyAgICAgICAg ICogYWRkZWQgb3IgcmVtb3ZlZCwgd2UgZG9uJ3QgbmVlZCB0byBob2xkIGEgcmVmZXJlbmNlIG9m IHRoZSBlbmdpbmUKKysgICAgICAgICAqIGhlcmUuICovCisrICAgICAgICBlbmdpbmVfbGlzdCA9 IGdfbGlzdF9hcHBlbmQgKGVuZ2luZV9saXN0LCBlbmdpbmUpOworKworKyAgICAgICAgLyogV2Ug bmVlZCB0byBzdGVhbCB0aGUgdmFsdWUgYmVmb3JlIGFkZGluZyBpdCBiYWNrLCBvdGhlcndpc2Ug aXQgd2lsbAorKyAgICAgICAgICogYmUgZGVzdHJveWVkLiAqLworKyAgICAgICAgZ19oYXNoX3Rh YmxlX3N0ZWFsIChpYnVzLT5ob3RrZXlfdG9fZW5naW5lc19tYXAsIEdVSU5UX1RPX1BPSU5URVIg KGV2ZW50KSk7CisrCisrICAgICAgICBnX2hhc2hfdGFibGVfaW5zZXJ0IChpYnVzLT5ob3RrZXlf dG9fZW5naW5lc19tYXAsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVUlOVF9UT19Q T0lOVEVSIChldmVudCksIGVuZ2luZV9saXN0KTsKKysgICAgfQorKworKyAgICBnX3N0cmZyZWV2 IChob3RrZXlfbGlzdCk7CisgfQorIAorIC8qKgorQEAgLTEyMTYsNyArMTMzNywzOSBAQCBfY29u dGV4dF9yZXF1ZXN0X2VuZ2luZV9jYiAoQnVzSW5wdXRDb250CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAqZW5naW5lX25hbWUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEJ1c0lCdXNJbXBsICAgICAqaWJ1cykKKyB7CistICAgIHJldHVybiBidXNf aWJ1c19pbXBsX2dldF9lbmdpbmVfZGVzYyAoaWJ1cywgZW5naW5lX25hbWUpOworKyAgICBJQnVz RW5naW5lRGVzYyAqZGVzYyA9IGJ1c19pYnVzX2ltcGxfZ2V0X2VuZ2luZV9kZXNjIChpYnVzLCBl bmdpbmVfbmFtZSk7CisrICAgIHN0cnVjdCBfaW1wbF9hbmRfZGVzYyB7CisrICAgICAgICBCdXNJ QnVzSW1wbCAgICAqaWJ1czsKKysgICAgICAgIElCdXNFbmdpbmVEZXNjICpkZXNjOworKyAgICB9 IGlkID0ge2lidXMsIGRlc2N9OworKworKyNpZiBVU0VfQlJJREdFX0hPVEtFWQorKyAgICBJQnVz RW5naW5lRGVzYyAqY3VycmVudF9kZXNjID0gTlVMTDsKKysgICAgaWYgKGNvbnRleHQpIHsKKysg ICAgICAgIEJ1c0VuZ2luZVByb3h5ICplbmdpbmUgPSBidXNfaW5wdXRfY29udGV4dF9nZXRfZW5n aW5lIChjb250ZXh0KTsKKysgICAgICAgIGlmIChlbmdpbmUgIT0gTlVMTCkgeworKyAgICAgICAg ICAgIGN1cnJlbnRfZGVzYyA9IGJ1c19lbmdpbmVfcHJveHlfZ2V0X2Rlc2MgKGVuZ2luZSk7Cisr ICAgICAgICB9CisrICAgIH0KKysgICAgaWYgKGN1cnJlbnRfZGVzYykgeworKyAgICAgICAgaWJ1 cy0+cHJldl9ob3RrZXlfZW5naW5lID0gY3VycmVudF9kZXNjOworKyAgICB9CisrICAgIGlmIChj dXJyZW50X2Rlc2MgIT0gTlVMTCAmJiBkZXNjICE9IE5VTEwgJiYKKysgICAgICAgIGdfc3RyY21w MCAoaWJ1c19lbmdpbmVfZGVzY19nZXRfbmFtZSAoY3VycmVudF9kZXNjKSwKKysgICAgICAgICAg ICAgICAgICAgaWJ1c19lbmdpbmVfZGVzY19nZXRfbmFtZSAoZGVzYykpICE9IDAgJiYKKysgICAg ICAgIGdfc3RyY21wMCAoaWJ1c19lbmdpbmVfZGVzY19nZXRfbmFtZSAoZGVzYyksCisrICAgICAg ICAgICAgICAgICAgIERFRkFVTFRfQlJJREdFX0VOR0lORV9OQU1FKSA9PSAwKSB7CisrICAgICAg ICBjb25zdCBnY2hhciAqaG90a2V5cyA9IGlidXNfZW5naW5lX2Rlc2NfZ2V0X2hvdGtleXMgKGN1 cnJlbnRfZGVzYyk7CisrICAgICAgICBpZiAoIWhvdGtleXMgfHwgISpob3RrZXlzKSB7CisrICAg ICAgICAgICAgaG90a2V5cyA9ICJDb250cm9sK3NwYWNlIjsKKysgICAgICAgIH0KKysgICAgICAg IGlidXNfaG90a2V5X3Byb2ZpbGVfZm9yZWFjaF9ob3RrZXkgKGlidXMtPmVuZ2luZXNfaG90a2V5 X3Byb2ZpbGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBf Zm9yZWFjaF9yZW1vdmVfZW5naW5lX2hvdGtleSwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICZpZCk7CisrICAgICAgICBfYWRkX2VuZ2luZV9ob3RrZXlfd2l0 aF9ob3RrZXlzIChkZXNjLCBpYnVzLCBob3RrZXlzKTsKKysgICAgfQorKyNlbmRpZgorKyAgICBy ZXR1cm4gZGVzYzsKKyB9CisgCisgLyoqCitAQCAtMjM1Nyw2ICsyNTEwLDExIEBAIGJ1c19pYnVz X2ltcGxfZmlsdGVyX2tleWJvYXJkX3Nob3J0Y3V0cyAKKyAgICAgICAgICAqIHRoZSBzYW1lIGhv dGtleSwgdGhlbiB3ZSBzaG91bGQgc3dpdGNoIHRvIHRoZSBuZXh0IGVuZ2luZSB3aXRoIHRoZQor ICAgICAgICAgICogc2FtZSBob3RrZXkgaW4gdGhlIGxpc3QuIE90aGVyd2lzZSwgd2UganVzdCBz d2l0Y2ggdG8gdGhlIGZpcnN0CisgICAgICAgICAgKiBlbmdpbmUgaW4gdGhlIGxpc3QuICovCisr I2lmIFVTRV9CUklER0VfSE9US0VZCisrICAgICAgICBpZiAoaWJ1cy0+cHJldl9ob3RrZXlfZW5n aW5lKSB7CisrICAgICAgICAgICAgbmV3X2VuZ2luZV9kZXNjID0gaWJ1cy0+cHJldl9ob3RrZXlf ZW5naW5lOworKyAgICAgICAgfQorKyNlbHNlCisgICAgICAgICBHTGlzdCAqcCA9IGVuZ2luZV9s aXN0OworICAgICAgICAgZm9yICg7IHAtPm5leHQgIT0gTlVMTDsgcCA9IHAtPm5leHQpIHsKKyAg ICAgICAgICAgICBpZiAoY3VycmVudF9lbmdpbmVfZGVzYyA9PSAoSUJ1c0VuZ2luZURlc2MgKikg cC0+ZGF0YSkgeworQEAgLTIzNjQsOSArMjUyMiwxNCBAQCBidXNfaWJ1c19pbXBsX2ZpbHRlcl9r ZXlib2FyZF9zaG9ydGN1dHMgCisgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg IH0KKyAgICAgICAgIH0KKysjZW5kaWYKKyAKKyAgICAgICAgIGlmIChjdXJyZW50X2VuZ2luZV9k ZXNjICE9IG5ld19lbmdpbmVfZGVzYykgeworKyAgICAgICAgICAgIGlidXMtPnByZXZfaG90a2V5 X2VuZ2luZSA9IGN1cnJlbnRfZW5naW5lX2Rlc2M7CisgICAgICAgICAgICAgYnVzX2lidXNfaW1w bF9zZXRfY29udGV4dF9lbmdpbmVfZnJvbV9kZXNjIChpYnVzLCBjb250ZXh0LCBuZXdfZW5naW5l X2Rlc2MpOworKyAgICAgICAgfSBlbHNlIHsKKysgICAgICAgICAgICBnX3dhcm5pbmcgKCJUaGUg ZW5naW5lICVzIGlzIHJlZ2lzdGVyZWQgdHdpY2UgaW4gaG90a2V5cyIsCisrICAgICAgICAgICAg ICAgICAgICAgICBpYnVzX2VuZ2luZV9kZXNjX2dldF9uYW1lIChjdXJyZW50X2VuZ2luZV9kZXNj KSk7CisgICAgICAgICB9CisgCisgICAgICAgICByZXR1cm4gVFJVRTsKK0BAIC0yNDcwLDE0ICsy NjMzLDYgQEAgc3RhdGljIHZvaWQKKyBfYWRkX2VuZ2luZV9ob3RrZXkgKElCdXNFbmdpbmVEZXNj ICplbmdpbmUsIEJ1c0lCdXNJbXBsICppYnVzKQorIHsKKyAgICAgY29uc3QgZ2NoYXIgKmhvdGtl eXM7CistICAgIGdjaGFyICoqaG90a2V5X2xpc3Q7CistICAgIGdjaGFyICoqcDsKKy0gICAgZ2No YXIgKmhvdGtleTsKKy0gICAgR0xpc3QgKmVuZ2luZV9saXN0OworLQorLSAgICBHUXVhcmsgZXZl bnQ7CistICAgIGd1aW50IGtleXZhbDsKKy0gICAgZ3VpbnQgbW9kaWZpZXJzOworIAorICAgICBp ZiAoIWVuZ2luZSkgeworICAgICAgICAgcmV0dXJuOworQEAgLTI0ODksNDAgKzI2NDQsNyBAQCBf YWRkX2VuZ2luZV9ob3RrZXkgKElCdXNFbmdpbmVEZXNjICplbmdpCisgICAgICAgICByZXR1cm47 CisgICAgIH0KKyAKKy0gICAgaG90a2V5X2xpc3QgPSBnX3N0cnNwbGl0X3NldCAoaG90a2V5cywg IjssIiwgMCk7CistCistICAgIGZvciAocCA9IGhvdGtleV9saXN0OyBwICYmICpwOyArK3ApIHsK Ky0gICAgICAgIGhvdGtleSA9IGdfc3Ryc3RyaXAgKCpwKTsKKy0gICAgICAgIGlmICghKmhvdGtl eSB8fCAhaWJ1c19rZXlfZXZlbnRfZnJvbV9zdHJpbmcgKGhvdGtleSwgJmtleXZhbCwgJm1vZGlm aWVycykpIHsKKy0gICAgICAgICAgICBjb250aW51ZTsKKy0gICAgICAgIH0KKy0KKy0gICAgICAg IC8qIElmIHRoZSBob3RrZXkgYWxyZWFkeSBleGlzdHMsIHdlIHdvbid0IG5lZWQgdG8gYWRkIGl0 IGFnYWluLiAqLworLSAgICAgICAgZXZlbnQgPSBpYnVzX2hvdGtleV9wcm9maWxlX2xvb2t1cF9o b3RrZXkgKGlidXMtPmVuZ2luZXNfaG90a2V5X3Byb2ZpbGUsCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5dmFsLCBtb2RpZmllcnMpOworLSAg ICAgICAgaWYgKGV2ZW50ID09IDApIHsKKy0gICAgICAgICAgICBldmVudCA9IGdfcXVhcmtfZnJv bV9zdHJpbmcgKGhvdGtleSk7CistICAgICAgICAgICAgaWJ1c19ob3RrZXlfcHJvZmlsZV9hZGRf aG90a2V5IChpYnVzLT5lbmdpbmVzX2hvdGtleV9wcm9maWxlLAorLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5dmFsLCBtb2RpZmllcnMsIGV2ZW50KTsKKy0g ICAgICAgIH0KKy0KKy0gICAgICAgIGVuZ2luZV9saXN0ID0gZ19oYXNoX3RhYmxlX2xvb2t1cCAo aWJ1cy0+aG90a2V5X3RvX2VuZ2luZXNfbWFwLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBHVUlOVF9UT19QT0lOVEVSIChldmVudCkpOworLQorLSAgICAgICAg LyogQXMgd2Ugd2lsbCByZWJ1aWxkIHRoZSBlbmdpbmVzIGhvdGtleSBtYXAgd2hlbmV2ZXIgYW4g ZW5naW5lIHdhcworLSAgICAgICAgICogYWRkZWQgb3IgcmVtb3ZlZCwgd2UgZG9uJ3QgbmVlZCB0 byBob2xkIGEgcmVmZXJlbmNlIG9mIHRoZSBlbmdpbmUKKy0gICAgICAgICAqIGhlcmUuICovCist ICAgICAgICBlbmdpbmVfbGlzdCA9IGdfbGlzdF9hcHBlbmQgKGVuZ2luZV9saXN0LCBlbmdpbmUp OworLQorLSAgICAgICAgLyogV2UgbmVlZCB0byBzdGVhbCB0aGUgdmFsdWUgYmVmb3JlIGFkZGlu ZyBpdCBiYWNrLCBvdGhlcndpc2UgaXQgd2lsbAorLSAgICAgICAgICogYmUgZGVzdHJveWVkLiAq LworLSAgICAgICAgZ19oYXNoX3RhYmxlX3N0ZWFsIChpYnVzLT5ob3RrZXlfdG9fZW5naW5lc19t YXAsIEdVSU5UX1RPX1BPSU5URVIgKGV2ZW50KSk7CistCistICAgICAgICBnX2hhc2hfdGFibGVf aW5zZXJ0IChpYnVzLT5ob3RrZXlfdG9fZW5naW5lc19tYXAsCistICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBHVUlOVF9UT19QT0lOVEVSIChldmVudCksIGVuZ2luZV9saXN0KTsKKy0gICAg fQorLQorLSAgICBnX3N0cmZyZWV2IChob3RrZXlfbGlzdCk7CisrICAgIF9hZGRfZW5naW5lX2hv dGtleV93aXRoX2hvdGtleXMgKGVuZ2luZSwgaWJ1cywgaG90a2V5cyk7CisgfQorIAorIC8qKgor ZGlmZiAtLWdpdCBhL2J1cy9yZWdpc3RyeS5jIGIvYnVzL3JlZ2lzdHJ5LmMKK2luZGV4IGJjNjY4 MGQuLmY0N2Y3MjcgMTAwNjQ0CistLS0gYS9idXMvcmVnaXN0cnkuYworKysrIGIvYnVzL3JlZ2lz dHJ5LmMKK0BAIC0xOSw2ICsxOSwxMSBAQAorICAqIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAorICAqIEJvc3RvbiwgTUEgMDIxMTEt MTMwNywgVVNBLgorICAqLworKworKyNpZmRlZiBIQVZFX0NPTkZJR19ICisrI2luY2x1ZGUgPGNv bmZpZy5oPgorKyNlbmRpZgorKworICNpbmNsdWRlICJyZWdpc3RyeS5oIgorICNpbmNsdWRlIDxn bGliL2dzdGRpby5oPgorICNpbmNsdWRlIDxnaW8vZ2lvLmg+CitAQCAtMTAxLDYgKzEwNiw5IEBA IGJ1c19yZWdpc3RyeV9pbml0IChCdXNSZWdpc3RyeSAqcmVnaXN0cnkpCisgICAgIHJlZ2lzdHJ5 LT5vYnNlcnZlZF9wYXRocyA9IE5VTEw7CisgICAgIHJlZ2lzdHJ5LT5jb21wb25lbnRzID0gTlVM TDsKKyAgICAgcmVnaXN0cnktPmVuZ2luZV90YWJsZSA9IGdfaGFzaF90YWJsZV9uZXcgKGdfc3Ry X2hhc2gsIGdfc3RyX2VxdWFsKTsKKysjaWYgVVNFX0JSSURHRV9IT1RLRVkKKysgICAgZ2Jvb2xl YW4gaGFzX2RlZmF1bHRfZW5naW5lID0gRkFMU0U7CisrI2VuZGlmCisgCisgI2lmZGVmIEdfVEhS RUFEU19FTkFCTEVECisgICAgIC8qIElmIGdsaWIgc3VwcG9ydHMgdGhyZWFkLCB3ZSdsbCBjcmVh dGUgYSB0aHJlYWQgdG8gbW9uaXRvciBjaGFuZ2VzIGluIElNRQorQEAgLTE0NSwxMiArMTUzLDM5 IEBAIGJ1c19yZWdpc3RyeV9pbml0IChCdXNSZWdpc3RyeSAqcmVnaXN0cnkpCisgICAgICAgICBH TGlzdCAqcDE7CisgICAgICAgICBmb3IgKHAxID0gZW5naW5lczsgcDEgIT0gTlVMTDsgcDEgPSBw MS0+bmV4dCkgeworICAgICAgICAgICAgIElCdXNFbmdpbmVEZXNjICpkZXNjID0gKElCdXNFbmdp bmVEZXNjICopIHAxLT5kYXRhOworKyNpZiBVU0VfQlJJREdFX0hPVEtFWQorKyAgICAgICAgICAg IGlmIChnX3N0cmNtcDAgKGlidXNfZW5naW5lX2Rlc2NfZ2V0X25hbWUgKGRlc2MpLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIERFRkFVTFRfQlJJREdFX0VOR0lORV9OQU1FKSA9PSAwKSB7 CisrICAgICAgICAgICAgICAgIGhhc19kZWZhdWx0X2VuZ2luZSA9IFRSVUU7CisrICAgICAgICAg ICAgfQorKyNlbmRpZgorICAgICAgICAgICAgIGdfaGFzaF90YWJsZV9pbnNlcnQgKHJlZ2lzdHJ5 LT5lbmdpbmVfdGFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdwb2lu dGVyKSBpYnVzX2VuZ2luZV9kZXNjX2dldF9uYW1lIChkZXNjKSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBkZXNjKTsKKyAgICAgICAgIH0KKyAgICAgICAgIGdfbGlzdF9mcmVl IChlbmdpbmVzKTsKKyAgICAgfQorKworKyNpZiBVU0VfQlJJREdFX0hPVEtFWQorKyAgICBpZiAo aGFzX2RlZmF1bHRfZW5naW5lID09IEZBTFNFKSB7CisrICAgICAgICBidXNfcmVnaXN0cnlfcmVt b3ZlX2FsbCAocmVnaXN0cnkpOworKyAgICAgICAgYnVzX3JlZ2lzdHJ5X2xvYWQgKHJlZ2lzdHJ5 KTsKKysgICAgICAgIGJ1c19yZWdpc3RyeV9zYXZlX2NhY2hlIChyZWdpc3RyeSk7CisrCisrICAg ICAgICBmb3IgKHAgPSByZWdpc3RyeS0+Y29tcG9uZW50czsgcCAhPSBOVUxMOyBwID0gcC0+bmV4 dCkgeworKyAgICAgICAgICAgIEJ1c0NvbXBvbmVudCAqY29tcCA9IChCdXNDb21wb25lbnQgKikg cC0+ZGF0YTsKKysgICAgICAgICAgICBHTGlzdCAqZW5naW5lcyA9IGJ1c19jb21wb25lbnRfZ2V0 X2VuZ2luZXMgKGNvbXApOworKyAgICAgICAgICAgIEdMaXN0ICpwMTsKKysgICAgICAgICAgICBm b3IgKHAxID0gZW5naW5lczsgcDEgIT0gTlVMTDsgcDEgPSBwMS0+bmV4dCkgeworKyAgICAgICAg ICAgICAgICBJQnVzRW5naW5lRGVzYyAqZGVzYyA9IChJQnVzRW5naW5lRGVzYyAqKSBwMS0+ZGF0 YTsKKysgICAgICAgICAgICAgICAgZ19oYXNoX3RhYmxlX2luc2VydCAocmVnaXN0cnktPmVuZ2lu ZV90YWJsZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdwb2ludGVy KSBpYnVzX2VuZ2luZV9kZXNjX2dldF9uYW1lIChkZXNjKSwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZGVzYyk7CisrICAgICAgICAgICAgfQorKyAgICAgICAgICAgIGdf bGlzdF9mcmVlIChlbmdpbmVzKTsKKysgICAgICAgIH0KKysgICAgfQorKyNlbmRpZgorIH0KKyAK KyBzdGF0aWMgdm9pZAorZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwor aW5kZXggODVlNWUzMC4uYTY5NzRkNCAxMDA2NDQKKy0tLSBhL2NvbmZpZ3VyZS5hYworKysrIGIv Y29uZmlndXJlLmFjCitAQCAtNDM4LDYgKzQzOCwzNCBAQCBlbHNlCisgICAgIGVuYWJsZV9zdXJy b3VuZGluZ190ZXh0PSJubyAoZGlzYWJsZWQsIHVzZSAtLWVuYWJsZS1zdXJyb3VuZGluZy10ZXh0 IHRvIGVuYWJsZSkiCisgZmkKKyAKKysjIG9wdGlvbiBmb3IgYnJpZGdlIGhvdGtleQorK0FDX0FS R19FTkFCTEUoYnJpZGdlLWhvdGtleSwKKysgICAgQVNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLWJy aWRnZS1ob3RrZXldLAorKyAgICAgICAgW0VuYWJsZSBicmlkZ2UgaG90a2V5IGluc3RlYWQgb2Yg T04vT0ZGIGhvdGtleV0pLAorKyAgICBbZW5hYmxlX2JyaWRnZV9ob3RrZXk9JGVuYWJsZXZhbF0s CisrICAgIFtlbmFibGVfYnJpZGdlX2hvdGtleT1ub10KKyspCisrCisraWYgdGVzdCB4IiRlbmFi bGVfYnJpZGdlX2hvdGtleSIgPSB4InllcyI7IHRoZW4KKysgICAgVVNFX0JSSURHRV9IT1RLRVk9 MQorKyAgICBUUklHR0VSX0hPVEtFWVM9IiIKKytlbHNlCisrICAgIFVTRV9CUklER0VfSE9US0VZ PTAKKysgICAgVFJJR0dFUl9IT1RLRVlTPSJDb250cm9sK3NwYWNlLFplbmtha3VfSGFua2FrdSxB bHQrS2FuamksQWx0K2dyYXZlLEhhbmd1bCxBbHQrUmVsZWFzZStBbHRfUiIKKysgICAgZW5hYmxl X2JyaWRnZV9ob3RrZXk9Im5vIChkaXNhYmxlZCwgdXNlIC0tZW5hYmxlLWJyaWRnZS1ob3RrZXkg dG8gZW5hYmxlKSIKKytmaQorK0FDX1NVQlNUKFVTRV9CUklER0VfSE9US0VZKQorK0FDX1NVQlNU KFRSSUdHRVJfSE9US0VZUykKKysKKysjIGRlZmluZSBkZWZhdWx0IGJyaWRnZSBlbmdpbmUgbmFt ZQorK0FDX0FSR19XSVRIKGJyaWRnZS1lbmdpbmUsCisrICAgIEFTX0hFTFBfU1RSSU5HKFstLXdp dGgtYnJpZGdlLWVuZ2luZVs9YnJpZGdlX2VuZ2luZV9uYW1lXV0sCisrICAgICAgICBbU2V0IGJy aWRnZSBlbmdpbmUgbmFtZSBpbiBJTSBicmlkZ2UgaG90a2V5LiAoZGVmYXVsdDogeGtiOmxheW91 dDpkZWZhdWx0KV0pLAorKyAgICBbREVGQVVMVF9CUklER0VfRU5HSU5FX05BTUU9JHdpdGhfYnJp ZGdlX2VuZ2luZV0sCisrICAgIFtERUZBVUxUX0JSSURHRV9FTkdJTkVfTkFNRT0ieGtiOmxheW91 dDpkZWZhdWx0Il0KKyspCisrQUNfU1VCU1QoREVGQVVMVF9CUklER0VfRU5HSU5FX05BTUUpCisr CisgIyBjaGVjayBpc28tY29kZXMKKyBQS0dfQ0hFQ0tfTU9EVUxFUyhJU09DT0RFUywgWworICAg ICBpc28tY29kZXMKK0BAIC00NjQsNiArNDkyLDcgQEAgYnVzL01ha2VmaWxlCisgdXRpbC9NYWtl ZmlsZQorIHV0aWwvSU1ka2l0L01ha2VmaWxlCisgZGF0YS9NYWtlZmlsZQorK2RhdGEvaWJ1cy5z Y2hlbWFzLmluCisgZGF0YS9pY29ucy9NYWtlZmlsZQorIGRhdGEva2V5bWFwcy9NYWtlZmlsZQor IGRvY3MvTWFrZWZpbGUKK0BAIC01MTIsNSArNTQxLDcgQEAgQnVpbGQgb3B0aW9uczoKKyAgIE5v IHNub29wZXIgcmVnZXhlcyAgICAgICAgIiROT19TTk9PUEVSX0FQUFMiCisgICBQYW5lbCBpY29u ICAgICAgICAgICAgICAgICIkSUJVU19JQ09OX0tFWUJPQVJEIgorICAgRW5hYmxlIHN1cnJvdW5k aW5nLXRleHQgICAkZW5hYmxlX3N1cnJvdW5kaW5nX3RleHQKKysgIEVuYWJsZSBicmlkZ2UgaG90 a2V5ICAgICAgJGVuYWJsZV9icmlkZ2VfaG90a2V5CisrICBEZWZhdWx0IGJyaWRnZSBlbmdpbmUg ICAgICRERUZBVUxUX0JSSURHRV9FTkdJTkVfTkFNRQorIF0pCisgCitkaWZmIC0tZ2l0IGEvZGF0 YS9NYWtlZmlsZS5hbSBiL2RhdGEvTWFrZWZpbGUuYW0KK2luZGV4IGJhOWY0YmIuLmE5MDllNWIg MTAwNjQ0CistLS0gYS9kYXRhL01ha2VmaWxlLmFtCisrKysgYi9kYXRhL01ha2VmaWxlLmFtCitA QCAtMjYsNyArMjYsOCBAQCBTVUJESVJTID0gXAorIAkkKE5VTEwpCisgCisgc2NoZW1hc2RpciA9 ICQoR0NPTkZfU0NIRU1BX0ZJTEVfRElSKQorLXNjaGVtYXNfaW5fZmlsZXMgPSBpYnVzLnNjaGVt YXMuaW4KKytzY2hlbWFzX2luX2luX2ZpbGVzID0gaWJ1cy5zY2hlbWFzLmluLmluCisrc2NoZW1h c19pbl9maWxlcyA9ICQoc2NoZW1hc19pbl9pbl9maWxlczouc2NoZW1hcy5pbi5pbj0uc2NoZW1h cy5pbikKKyBzY2hlbWFzX0RBVEEgPSAkKHNjaGVtYXNfaW5fZmlsZXM6LnNjaGVtYXMuaW49LnNj aGVtYXMpCisgQElOVExUT09MX1NDSEVNQVNfUlVMRUAKKyAKK0BAIC00MSwxMSArNDIsMTIgQEAg aWYgR0NPTkZfU0NIRU1BU19JTlNUQUxMCisgZW5kaWYKKyAKKyBFWFRSQV9ESVNUID0gXAorLQkk KHNjaGVtYXNfaW5fZmlsZXMpIFwKKysJJChzY2hlbWFzX2luX2luX2ZpbGVzKSBcCisgCSQoTlVM TCkKKyAKKyBESVNUQ0xFQU5GSUxFUyA9IFwKKyAJJChzY2hlbWFzX0RBVEEpIFwKKysJJChzY2hl bWFzX2luX2ZpbGVzKSBcCisgCSQoTlVMTCkKKyAKKyAtaW5jbHVkZSAkKHRvcF9zcmNkaXIpL2dp dC5taworZGlmZiAtLWdpdCBhL2RhdGEvaWJ1cy5zY2hlbWFzLmluIGIvZGF0YS9pYnVzLnNjaGVt YXMuaW4uaW4KK2luZGV4IDdjYTQ4OTkuLjQyZDkyOTcKKy0tLSBhL2RhdGEvaWJ1cy5zY2hlbWFz LmluCisrKysgYi9kYXRhL2lidXMuc2NoZW1hcy5pbi5pbgorQEAgLTMxLDcgKzMxLDcgQEAKKyAg ICAgICA8b3duZXI+aWJ1czwvb3duZXI+CisgICAgICAgPHR5cGU+bGlzdDwvdHlwZT4KKyAgICAg ICA8bGlzdF90eXBlPnN0cmluZzwvbGlzdF90eXBlPgorLSAgICAgIDxkZWZhdWx0PltDb250cm9s K3NwYWNlLFplbmtha3VfSGFua2FrdSxBbHQrS2FuamksQWx0K2dyYXZlLEhhbmd1bCxBbHQrUmVs ZWFzZStBbHRfUl08L2RlZmF1bHQ+CisrICAgICAgPGRlZmF1bHQ+W0BUUklHR0VSX0hPVEtFWVNA XTwvZGVmYXVsdD4KKyAgICAgICA8bG9jYWxlIG5hbWU9IkMiPgorICAgICAgICAgPHNob3J0PlRy aWdnZXIgc2hvcnRjdXQga2V5czwvc2hvcnQ+CisgCSAgICA8bG9uZz5UaGUgc2hvcnRjdXQga2V5 cyBmb3IgdHVybmluZyBpbnB1dCBtZXRob2Qgb24gb3Igb2ZmPC9sb25nPgorZGlmZiAtLWdpdCBh L2lidXMvX2NvbmZpZy5weS5pbiBiL2lidXMvX2NvbmZpZy5weS5pbgoraW5kZXggYTgzMDEzNi4u NGMzYzk4MCAxMDA2NDQKKy0tLSBhL2lidXMvX2NvbmZpZy5weS5pbgorKysrIGIvaWJ1cy9fY29u ZmlnLnB5LmluCitAQCAtMjUsNiArMjUsOCBAQCBfX2FsbF9fID0gKAorICAgICAiZ2V0X2NvcHly aWdodCIsCisgICAgICJnZXRfbGljZW5zZSIsCisgICAgICJnZXRfSUNPTl9LRVlCT0FSRCIsCisr ICAgICJ1c2VfYnJpZGdlX2hvdGtleSIsCisrICAgICJERUZBVUxUX0JSSURHRV9FTkdJTkVfTkFN RSIsCisgICAgICJJU09DT0RFU19QUkVGSVgiLAorICAgICAiXyIKKyApCitAQCAtNTEsNCArNTMs OCBAQCBkZWYgZ2V0X0lDT05fS0VZQk9BUkQoKToKKyAgICAgICAgIGljb24gPSAnaWJ1cy1rZXli b2FyZCcKKyAgICAgcmV0dXJuIGljb24KKyAKKytkZWYgdXNlX2JyaWRnZV9ob3RrZXkoKToKKysg ICAgcmV0dXJuIFRydWUgaWYgQFVTRV9CUklER0VfSE9US0VZQCA9PSAxIGVsc2UgRmFsc2UKKysK KytERUZBVUxUX0JSSURHRV9FTkdJTkVfTkFNRT0nQERFRkFVTFRfQlJJREdFX0VOR0lORV9OQU1F QCcKKyBJU09DT0RFU19QUkVGSVg9J0BJU09DT0RFU19QUkVGSVhAJworZGlmZiAtLWdpdCBhL2li dXMvaW5wdXRjb250ZXh0LnB5IGIvaWJ1cy9pbnB1dGNvbnRleHQucHkKK2luZGV4IGNlZWI1NmQu LjI2OTRmYTMgMTAwNjQ0CistLS0gYS9pYnVzL2lucHV0Y29udGV4dC5weQorKysrIGIvaWJ1cy9p bnB1dGNvbnRleHQucHkKK0BAIC0yOCw2ICsyOCw3IEBAIGltcG9ydCBzeXMKKyBpbXBvcnQgZ29i amVjdAorIGltcG9ydCBkYnVzCisgaW1wb3J0IGRidXMubG93bGV2ZWwKKytpbXBvcnQgX2NvbmZp ZworIGltcG9ydCBvYmplY3QKKyBpbXBvcnQgY29tbW9uCisgaW1wb3J0IHNlcmlhbGl6YWJsZQor QEAgLTI4Miw2ICsyODMsOSBAQCBjbGFzcyBJbnB1dENvbnRleHQob2JqZWN0Lk9iamVjdCk6Cisg ICAgIGRlZiBzZXRfZW5naW5lKHNlbGYsIGVuZ2luZSk6CisgICAgICAgICByZXR1cm4gc2VsZi5f X2NvbnRleHQuU2V0RW5naW5lKGVuZ2luZS5uYW1lKQorIAorKyAgICBkZWYgc2V0X2JyaWRnZV9l bmdpbmUoc2VsZik6CisrICAgICAgICByZXR1cm4gc2VsZi5fX2NvbnRleHQuU2V0RW5naW5lKF9j b25maWcuREVGQVVMVF9CUklER0VfRU5HSU5FX05BTUUpCisrCisgICAgIGRlZiBpbnRyb3NwZWN0 KHNlbGYpOgorICAgICAgICAgcmV0dXJuIHNlbGYuX19jb250ZXh0LkludHJvc3BlY3QoKQorIAor ZGlmZiAtLWdpdCBhL3NyYy9NYWtlZmlsZS5hbSBiL3NyYy9NYWtlZmlsZS5hbQoraW5kZXggNjQ1 NDUyMi4uNDQzYjBkYiAxMDA2NDQKKy0tLSBhL3NyYy9NYWtlZmlsZS5hbQorKysrIGIvc3JjL01h a2VmaWxlLmFtCitAQCAtNDYsNiArNDYsNyBAQCBBTV9DUFBGTEFHUyA9ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCisgICAgIC1ESUJVU19EQVRBX0RJUj1cIiQocGtnZGF0YWRp cilcIiAgICAgICAgICAgXAorICAgICAtRElCVVNfQ09NUElMQVRJT04gICAgICAgICAgICAgICAg ICAgICAgICAgIFwKKyAgICAgLURJU09DT0RFU19QUkVGSVg9XCIkKElTT0NPREVTX1BSRUZJWClc IiAgICBcCisrICAgIC1EVVNFX0JSSURHRV9IT1RLRVk9JChVU0VfQlJJREdFX0hPVEtFWSkgICAg XAorICAgICAkKE5VTEwpCisgCisgIyBpYnVzIGxpYnJhcnkKK2RpZmYgLS1naXQgYS9zcmMvaWJ1 c2J1cy5jIGIvc3JjL2lidXNidXMuYworaW5kZXggMzlhZDc4NC4uNWE4ZjlhOSAxMDA2NDQKKy0t LSBhL3NyYy9pYnVzYnVzLmMKKysrKyBiL3NyYy9pYnVzYnVzLmMKK0BAIC0xOTAyLDMgKzE5MDIs OSBAQCBpYnVzX2J1c19jYWxsX2FzeW5jIChJQnVzQnVzICAgICAgICAgICAgKmJ1cywKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKEdBc3luY1JlYWR5Q2FsbGJhY2spIGlidXNfYnVzX2Nh bGxfYXN5bmNfZG9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2ltcGxlKTsKKyB9 CisrCisrZ2Jvb2xlYW4KKytpYnVzX2J1c191c2VfYnJpZGdlX2hvdGtleSAoSUJ1c0J1cyAqYnVz KQorK3sKKysgICAgcmV0dXJuIChVU0VfQlJJREdFX0hPVEtFWSA9PSAxKSA/IFRSVUUgOiBGQUxT RTsKKyt9CitkaWZmIC0tZ2l0IGEvc3JjL2lidXNidXMuaCBiL3NyYy9pYnVzYnVzLmgKK2luZGV4 IDc3ZDM5MTYuLjRiZGY3NjAgMTAwNjQ0CistLS0gYS9zcmMvaWJ1c2J1cy5oCisrKysgYi9zcmMv aWJ1c2J1cy5oCitAQCAtOTcxLDUgKzk3MSwxNCBAQCB2b2lkICAgICAgICAgaWJ1c19idXNfc2V0 X3dhdGNoX2lidXNfc2lnbmFsCisgICovCisgSUJ1c0NvbmZpZyAgKmlidXNfYnVzX2dldF9jb25m aWcgICAgICAgIChJQnVzQnVzICAgICAgICAqYnVzKTsKKyAKKysvKioKKysgKiBpYnVzX2J1c191 c2VfYnJpZGdlX2hvdGtleToKKysgKiBAYnVzOiBBbiAjSUJ1c0J1cy4KKysgKiBAcmV0dXJuczog JVRSVUUgaWYgQGJ1cyB1c2UgYnJpZGdlIGhvdGtleSwgJUZBTFNFIG90aGVyd2lzZS4KKysgKgor KyAqIFJldHVybiAlVFJVRSBpZiBAYnVzIHVzZSBicmlkZ2UgaG90a2V5LgorKyAqLworK2dib29s ZWFuICAgICBpYnVzX2J1c191c2VfYnJpZGdlX2hvdGtleSAoSUJ1c0J1cyAqYnVzKTsKKysKKyBH X0VORF9ERUNMUworICNlbmRpZgorZGlmZiAtLWdpdCBhL3NyYy9pYnVzZW5naW5lZGVzYy5jIGIv c3JjL2lidXNlbmdpbmVkZXNjLmMKK2luZGV4IGQzODAwZTEuLmE5ZTY4YmUgMTAwNjQ0CistLS0g YS9zcmMvaWJ1c2VuZ2luZWRlc2MuYworKysrIGIvc3JjL2lidXNlbmdpbmVkZXNjLmMKK0BAIC0y MzMsNyArMjMzLDExIEBAIGlidXNfZW5naW5lX2Rlc2NfY2xhc3NfaW5pdCAoSUJ1c0VuZ2luZURl c2NDbGFzcyAqY2xhc3MpCisgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5n ICgiaG90a2V5cyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIGhvdGtl eXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICJUaGUgaG90a2V5cyBvZiBlbmdpbmUgZGVz Y3JpcHRpb24iLAorKyNpZiBVU0VfQlJJREdFX0hPVEtFWQorKyAgICAgICAgICAgICAgICAgICAg ICAgICJDb250cm9sK3NwYWNlIiwKKysjZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICIi LAorKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICAgICAgIEdfUEFSQU1fUkVBRFdSSVRFIHwg R19QQVJBTV9DT05TVFJVQ1RfT05MWSkpOworIAorICAgICAvKioKK2RpZmYgLS1naXQgYS9zcmMv aWJ1c2hvdGtleS5jIGIvc3JjL2lidXNob3RrZXkuYworaW5kZXggMzJmODMzOC4uYmVmN2RmYyAx MDA2NDQKKy0tLSBhL3NyYy9pYnVzaG90a2V5LmMKKysrKyBiL3NyYy9pYnVzaG90a2V5LmMKK0BA IC01NjIsMyArNTYyLDE0IEBAIGlidXNfaG90a2V5X3Byb2ZpbGVfbG9va3VwX2hvdGtleSAoSUJ1 c0hvdGtleVByb2ZpbGUgKnByb2ZpbGUsCisgCisgICAgIHJldHVybiAoR1F1YXJrKSBHUE9JTlRF Ul9UT19VSU5UIChnX3RyZWVfbG9va3VwIChwcml2LT5ob3RrZXlzLCAmaG90a2V5KSk7CisgfQor KworK3ZvaWQKKytpYnVzX2hvdGtleV9wcm9maWxlX2ZvcmVhY2hfaG90a2V5IChJQnVzSG90a2V5 UHJvZmlsZSAqcHJvZmlsZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH VHJhdmVyc2VGdW5jICAgICAgZnVuYywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBncG9pbnRlciAgICAgICAgICAgdXNlcl9kYXRhKQorK3sKKysgICAgSUJ1c0hvdGtleVBy b2ZpbGVQcml2YXRlICpwcml2OworKyAgICBwcml2ID0gSUJVU19IT1RLRVlfUFJPRklMRV9HRVRf UFJJVkFURSAocHJvZmlsZSk7CisrCisrICAgIGdfdHJlZV9mb3JlYWNoIChwcml2LT5ob3RrZXlz LCBmdW5jLCB1c2VyX2RhdGEpOworK30KK2RpZmYgLS1naXQgYS9zcmMvaWJ1c2hvdGtleS5oIGIv c3JjL2lidXNob3RrZXkuaAoraW5kZXggOWEzNDFmNi4uOTJlYzZhZiAxMDA2NDQKKy0tLSBhL3Ny Yy9pYnVzaG90a2V5LmgKKysrKyBiL3NyYy9pYnVzaG90a2V5LmgKK0BAIC0xNzksNSArMTc5LDE2 IEBAIEdRdWFyayAgICAgICAgICAgaWJ1c19ob3RrZXlfcHJvZmlsZV9sb29rdXBfaG90a2V5Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50ICAg ICAgICAgICAgICAga2V5dmFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBndWludCAgICAgICAgICAgICAgIG1vZGlmaWVycyk7CisgCisrLyoqCisr ICogaWJ1c19ob3RrZXlfcHJvZmlsZV9mb3JlYWNoX2hvdGtleToKKysgKiBAcHJvZmlsZTogQW4g SUJ1c0hvdGtleVByb2ZpbGUuCisrICogQGZ1bmM6IChzY29wZSBjYWxsKTogQSBHVHJhdmVyc2VG dW5jIGZvciBnX3RyZWVfdHJhdmVyc2UuCisrICogQHVzZXJfZGF0YTogQSBncG9pbnRlciBmb3Ig Z190cmVlX3RyYXZlcnNlLgorKyAqLworK3ZvaWQgICAgICAgICAgICAgaWJ1c19ob3RrZXlfcHJv ZmlsZV9mb3JlYWNoX2hvdGtleQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChJQnVzSG90a2V5UHJvZmlsZSAgKnByb2ZpbGUsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdUcmF2ZXJzZUZ1bmMgICAgICAg ZnVuYywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Z3BvaW50ZXIgICAgICAgICAgICB1c2VyX2RhdGEpOworKworIEdfRU5EX0RFQ0xTCisgI2VuZGlm CitkaWZmIC0tZ2l0IGEvdWkvZ3RrL3BhbmVsLnB5IGIvdWkvZ3RrL3BhbmVsLnB5CitpbmRleCBk ZTY0OTIwLi43ZjJlZGNkIDEwMDY0NAorLS0tIGEvdWkvZ3RrL3BhbmVsLnB5CisrKysgYi91aS9n dGsvcGFuZWwucHkKK0BAIC0xMzMsNiArMTMzLDExIEBAIGNsYXNzIFBhbmVsKGlidXMuUGFuZWxC YXNlKToKKyAgICAgICAgICMgc2VsZi5fX2J1cy5yZXF1ZXN0X25hbWUoaWJ1cy5wYW5lbC5JQlVT X1NFUlZJQ0VfUEFORUwsIDApCisgCisgICAgICAgICAjIGluaXQgeGtiCisrICAgICAgICBzZWxm Ll9fZGVmYXVsdF9sYXlvdXQgPSAnZGVmYXVsdCcKKysgICAgICAgIHNlbGYuX19kZWZhdWx0X21v ZGVsID0gJ2RlZmF1bHQnCisrICAgICAgICBzZWxmLl9fZGVmYXVsdF9vcHRpb24gPSAnZGVmYXVs dCcKKysgICAgICAgIHNlbGYuX19kaXNhYmxlZF9lbmdpbmUgPSBOb25lCisrCisgICAgICAgICBz ZWxmLl9feGtibGF5b3V0ID0gaWJ1cy5YS0JMYXlvdXQoc2VsZi5fX2NvbmZpZykKKyAgICAgICAg IHVzZV94a2IgPSBzZWxmLl9fY29uZmlnLmdldF92YWx1ZSgiZ2VuZXJhbCIsICJ1c2Vfc3lzdGVt X2tleWJvYXJkX2xheW91dCIsIEZhbHNlKQorICAgICAgICAgaWYgbm90IHVzZV94a2I6CitAQCAt MTQyLDExICsxNDcsMTggQEAgY2xhc3MgUGFuZWwoaWJ1cy5QYW5lbEJhc2UpOgorICAgICAgICAg ICAgIHZhbHVlID0gJ2RlZmF1bHQnCisgICAgICAgICBpZiB2YWx1ZSAhPSAnZGVmYXVsdCc6Cisg ICAgICAgICAgICAgc2VsZi5fX3hrYmxheW91dC5zZXRfZGVmYXVsdF9sYXlvdXQodmFsdWUpCisr ICAgICAgICAgICAgaWYgdmFsdWUuZmluZCgnKCcpID49IDA6CisrICAgICAgICAgICAgICAgIHNl bGYuX19kZWZhdWx0X2xheW91dCA9IHZhbHVlLnNwbGl0KCcoJylbMF0KKysgICAgICAgICAgICAg ICAgc2VsZi5fX2RlZmF1bHRfbW9kZWwgPSB2YWx1ZS5zcGxpdCgnKCcpWzFdLnNwbGl0KCcpJylb MF0KKysgICAgICAgICAgICBlbHNlOgorKyAgICAgICAgICAgICAgICBzZWxmLl9fZGVmYXVsdF9s YXlvdXQgPSB2YWx1ZQorKyAgICAgICAgICAgICAgICBzZWxmLl9fZGVmYXVsdF9tb2RlbCA9IE5v bmUKKyAgICAgICAgIHZhbHVlID0gc3RyKHNlbGYuX19jb25maWcuZ2V0X3ZhbHVlKCJnZW5lcmFs IiwgInN5c3RlbV9rZXlib2FyZF9vcHRpb24iLCAnJykpCisgICAgICAgICBpZiB2YWx1ZSA9PSAn JzoKKyAgICAgICAgICAgICB2YWx1ZSA9ICdkZWZhdWx0JworICAgICAgICAgaWYgdmFsdWUgIT0g J2RlZmF1bHQnOgorICAgICAgICAgICAgIHNlbGYuX194a2JsYXlvdXQuc2V0X2RlZmF1bHRfb3B0 aW9uKHZhbHVlKQorKyAgICAgICAgICAgIHNlbGYuX19kZWZhdWx0X29wdGlvbiA9IHZhbHVlCisg CisgICAgIGRlZiBzZXRfY3Vyc29yX2xvY2F0aW9uKHNlbGYsIHgsIHksIHcsIGgpOgorICAgICAg ICAgc2VsZi5fX2NhbmRpZGF0ZV9wYW5lbC5zZXRfY3Vyc29yX2xvY2F0aW9uKHgsIHksIHcsIGgp CitAQCAtMjMzLDYgKzI0NSw0MSBAQCBjbGFzcyBQYW5lbChpYnVzLlBhbmVsQmFzZSk6CisgICAg IGRlZiBfX3NldF9pbV9uYW1lKHNlbGYsIG5hbWUpOgorICAgICAgICAgc2VsZi5fX2xhbmd1YWdl X2Jhci5zZXRfaW1fbmFtZShuYW1lKQorIAorKyAgICBkZWYgX19zZXRfZGVmYXVsdF9sYXlvdXRf ZW5naW5lKHNlbGYpOgorKyAgICAgICAgZGVmYXVsdF9sYXlvdXQgPSBzZWxmLl9fZGVmYXVsdF9s YXlvdXQKKysgICAgICAgIGRlZmF1bHRfbW9kZWwgPSBzZWxmLl9fZGVmYXVsdF9tb2RlbAorKyAg ICAgICAgaWYgZGVmYXVsdF9sYXlvdXQgPT0gJ2RlZmF1bHQnOgorKyAgICAgICAgICAgIGRlZmF1 bHRfbGF5b3V0ID0gc2VsZi5fX3hrYmxheW91dC5nZXRfZGVmYXVsdF9sYXlvdXQoKVswXQorKyAg ICAgICAgICAgIGRlZmF1bHRfbW9kZWwgPSBOb25lCisrICAgICAgICBpZiBkZWZhdWx0X21vZGVs ID09ICdkZWZhdWx0JzoKKysgICAgICAgICAgICBkZWZhdWx0X21vZGVsID0gc2VsZi5fX3hrYmxh eW91dC5nZXRfZGVmYXVsdF9sYXlvdXQoKVsxXQorKyAgICAgICAgbGF5b3V0cyA9IGRlZmF1bHRf bGF5b3V0LnNwbGl0KCcsJykKKysgICAgICAgIGdyb3VwID0gc2VsZi5fX3hrYmxheW91dC5nZXRf Z3JvdXAoKQorKyAgICAgICAgbGF5b3V0ID0gbGF5b3V0c1tncm91cF0KKysgICAgICAgIG1vZGVs ID0gTm9uZQorKyAgICAgICAgaWYgZGVmYXVsdF9tb2RlbCAhPSBOb25lIGFuZCBkZWZhdWx0X21v ZGVsICE9ICcnOgorKyAgICAgICAgICAgIG1vZGVscyA9IGRlZmF1bHRfbW9kZWwuc3BsaXQoJywn KQorKyAgICAgICAgICAgIGlmIGdyb3VwIDwgbW9kZWxzLmxlbmd0aDoKKysgICAgICAgICAgICAg ICAgbW9kZWwgPSBtb2RlbHNbZ3JvdXBdCisrICAgICAgICByZWdpc3RyeSA9IGlidXMuWEtCQ29u ZmlnUmVnaXN0cnkoKQorKyAgICAgICAgbGFuZ3MgPSByZWdpc3RyeS5nZXRfbGF5b3V0X2xhbmco KVtsYXlvdXRdCisrICAgICAgICBsYW5nID0gJ2VuJworKyAgICAgICAgaW1faWNvbiA9IGxheW91 dFs6Ml0KKysgICAgICAgIGlmIGxhbmdzICE9IE5vbmU6CisrICAgICAgICAgICAgaW1faWNvbiA9 IGxhbmdzWzBdWzoyXQorKyAgICAgICAgICAgIGxhbmcgPSBzdHIobGFuZ3NbMF0pCisrICAgICAg ICBpZiBzZWxmLl9fZGlzYWJsZWRfZW5naW5lID09IE5vbmU6CisrICAgICAgICAgICAgc2VsZi5f X2Rpc2FibGVkX2VuZ2luZSA9IHJlZ2lzdHJ5LmVuZ2luZV9kZXNjX25ldyhsYW5nLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5fX2RlZmF1bHRfbGF5b3V0LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0RlZmF1bHQgTGF5b3V0JywKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRl ZmF1bHRfbW9kZWwsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBOb25lKQorKyAgICAgICAgaWYgc2VsZi5fX2ZvY3VzX2ljICE9 IE5vbmU6CisrICAgICAgICAgICAgcHJldl9lbmdpbmUgPSBzZWxmLl9fZm9jdXNfaWMuZ2V0X2Vu Z2luZSgpCisrICAgICAgICBpZiBwcmV2X2VuZ2luZSA9PSBOb25lIG9yIFwKKysgICAgICAgICAg IHByZXZfZW5naW5lLm5hbWUgIT0gc2VsZi5fX2Rpc2FibGVkX2VuZ2luZS5uYW1lOgorKyAgICAg ICAgICAgIHNlbGYuX19mb2N1c19pYy5zZXRfYnJpZGdlX2VuZ2luZSgpCisrCisgICAgIGRlZiBm b2N1c19pbihzZWxmLCBpYyk6CisgICAgICAgICBzZWxmLnJlc2V0KCkKKyAgICAgICAgIHNlbGYu X19mb2N1c19pYyA9IGlidXMuSW5wdXRDb250ZXh0KHNlbGYuX19idXMsIGljKQorQEAgLTI0MCw2 ICsyODcsOSBAQCBjbGFzcyBQYW5lbChpYnVzLlBhbmVsQmFzZSk6CisgICAgICAgICBzZWxmLl9f bGFuZ3VhZ2VfYmFyLnNldF9lbmFibGVkKGVuYWJsZWQpCisgCisgICAgICAgICBpZiBub3QgZW5h YmxlZDoKKysgICAgICAgICAgICBpZiBpYnVzLnVzZV9icmlkZ2VfaG90a2V5KCk6CisrICAgICAg ICAgICAgICAgIHNlbGYuX19zZXRfZGVmYXVsdF9sYXlvdXRfZW5naW5lKCkKKysKKyAgICAgICAg ICAgICBzZWxmLl9fc2V0X2ltX2ljb24oSUNPTl9LRVlCT0FSRCkKKyAgICAgICAgICAgICBzZWxm Ll9fc2V0X2ltX25hbWUoTm9uZSkKKyAgICAgICAgICAgICBpZiBzZWxmLl9fYnVzLmdldF91c2Vf c3lzX2xheW91dCgpOgorQEAgLTQ1Myw3ICs1MDMsMTIgQEAgY2xhc3MgUGFuZWwoaWJ1cy5QYW5l bEJhc2UpOgorICAgICAgICAgc2l6ZSA9IGd0ay5pY29uX3NpemVfbG9va3VwKGd0ay5JQ09OX1NJ WkVfTUVOVSkKKyAgICAgICAgIG1lbnUgPSBndGsuTWVudSgpCisgICAgICAgICBmb3IgaSwgZW5n aW5lIGluIGVudW1lcmF0ZShlbmdpbmVzKToKKy0gICAgICAgICAgICBsYW5nID0gaWJ1cy5nZXRf bGFuZ3VhZ2VfbmFtZShlbmdpbmUubGFuZ3VhZ2UpCisrICAgICAgICAgICAgbGFuZ3VhZ2UgPSBl bmdpbmUubGFuZ3VhZ2UKKysgICAgICAgICAgICBpZiBpYnVzLnVzZV9icmlkZ2VfaG90a2V5KCkg YW5kIFwKKysgICAgICAgICAgICAgICAgZW5naW5lLm5hbWUgPT0gaWJ1cy5ERUZBVUxUX0JSSURH RV9FTkdJTkVfTkFNRSBhbmQgXAorKyAgICAgICAgICAgICAgICBzZWxmLl9fZGlzYWJsZWRfZW5n aW5lICE9IE5vbmU6CisrICAgICAgICAgICAgICAgIGxhbmd1YWdlID0gc2VsZi5fX2Rpc2FibGVk X2VuZ2luZS5sYW5ndWFnZQorKyAgICAgICAgICAgIGxhbmcgPSBpYnVzLmdldF9sYW5ndWFnZV9u YW1lKGxhbmd1YWdlKQorICAgICAgICAgICAgIGl0ZW0gPSBndGsuSW1hZ2VNZW51SXRlbSgiJXMg LSAlcyIgJSAobGFuZywgZW5naW5lLmxvbmduYW1lKSkKKyAgICAgICAgICAgICBpZiBjdXJyZW50 X2VuZ2luZSBhbmQgY3VycmVudF9lbmdpbmUubmFtZSA9PSBlbmdpbmUubmFtZToKKyAgICAgICAg ICAgICAgICAgZm9yIHdpZGdldCBpbiBpdGVtLmdldF9jaGlsZHJlbigpOgorQEAgLTQ3MSw3ICs1 MjYsOCBAQCBjbGFzcyBQYW5lbChpYnVzLlBhbmVsQmFzZSk6CisgICAgICAgICBpdGVtLmNvbm5l Y3QoImFjdGl2YXRlIiwgc2VsZi5fX2ltX21lbnVfaXRlbV9hY3RpdmF0ZV9jYiwgTm9uZSkKKyAg ICAgICAgIGlmIHNlbGYuX19mb2N1c19pYyA9PSBOb25lIG9yIG5vdCBzZWxmLl9fZm9jdXNfaWMu aXNfZW5hYmxlZCgpOgorICAgICAgICAgICAgIGl0ZW0uc2V0X3NlbnNpdGl2ZShGYWxzZSkKKy0g ICAgICAgIG1lbnUuYWRkKGl0ZW0pCisrICAgICAgICBpZiBub3QgaWJ1cy51c2VfYnJpZGdlX2hv dGtleSgpOgorKyAgICAgICAgICAgIG1lbnUuYWRkKGl0ZW0pCisgCisgICAgICAgICBtZW51LnNo b3dfYWxsKCkKKyAgICAgICAgIG1lbnUuc2V0X3Rha2VfZm9jdXMoRmFsc2UpCitkaWZmIC0tZ2l0 IGEveGtiL01ha2VmaWxlLmFtIGIveGtiL01ha2VmaWxlLmFtCitpbmRleCBhZDljZGQ5Li5jNGQ1 YWZiIDEwMDY0NAorLS0tIGEveGtiL01ha2VmaWxlLmFtCisrKysgYi94a2IvTWFrZWZpbGUuYW0K K0BAIC0yOCw2ICsyOCw4IEBAIElOQ0xVREVTID0gXAorICAgICAgICAgLUkkKHRvcF9zcmNkaXIp L3NyYyBcCisgCS1ESUJVU19MT0NBTEVESVI9XCIkKGRhdGFkaXIpL2xvY2FsZVwiIFwKKyAJLURM SUJFWEVDRElSPVwiIiQobGliZXhlY2RpcikiXCIgXAorKwktRFVTRV9CUklER0VfSE9US0VZPSQo VVNFX0JSSURHRV9IT1RLRVkpIFwKKysJLURERUZBVUxUX0JSSURHRV9FTkdJTkVfTkFNRT1cIiQo REVGQVVMVF9CUklER0VfRU5HSU5FX05BTUUpXCIgXAorICAgICAgICAgJChOVUxMKQorIAorIG5v aW5zdF9QUk9HUkFNUyA9ICQoVEVTVFMpCitkaWZmIC0tZ2l0IGEveGtiL2lidXMtZW5naW5lLXhr Yi1tYWluLmMgYi94a2IvaWJ1cy1lbmdpbmUteGtiLW1haW4uYworaW5kZXggNWQ3NDhjYy4uYTgw ZjM0OSAxMDA2NDQKKy0tLSBhL3hrYi9pYnVzLWVuZ2luZS14a2ItbWFpbi5jCisrKysgYi94a2Iv aWJ1cy1lbmdpbmUteGtiLW1haW4uYworQEAgLTI4OCw2ICsyODgsMTQgQEAgcHJpbnRfY29tcG9u ZW50ICgpCisgICAgIGxheW91dF9kZXNjID0gKEdIYXNoVGFibGUgKikgaWJ1c194a2JfY29uZmln X3JlZ2lzdHJ5X2dldF9sYXlvdXRfZGVzYyAoY29uZmlnX3JlZ2lzdHJ5KTsKKyAgICAgdmFyaWFu dF9kZXNjID0gKEdIYXNoVGFibGUgKikgaWJ1c194a2JfY29uZmlnX3JlZ2lzdHJ5X2dldF92YXJp YW50X2Rlc2MgKGNvbmZpZ19yZWdpc3RyeSk7CisgICAgIGNvbXBvbmVudCA9IGlidXNfeGtiX2Nv bXBvbmVudF9uZXcgKCk7CisrI2lmIFVTRV9CUklER0VfSE9US0VZCisrICAgIGVuZ2luZSA9IGli dXNfeGtiX2VuZ2luZV9kZXNjX25ldyAoImVuIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiZGVmYXVsdCIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIkRlZmF1bHQgTGF5b3V0IiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBOVUxMLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IE5VTEwpOworKyAgICBpYnVzX2NvbXBvbmVudF9hZGRfZW5naW5lIChjb21wb25lbnQsIGVuZ2lu ZSk7CisrI2VuZGlmCisgICAgIGZvciAoa2V5cyA9IGdfaGFzaF90YWJsZV9nZXRfa2V5cyAobGF5 b3V0X2xpc3QpOyBrZXlzOyBrZXlzID0ga2V5cy0+bmV4dCkgeworICAgICAgICAgaWYgKGtleXMt PmRhdGEgPT0gTlVMTCkgeworICAgICAgICAgICAgIGNvbnRpbnVlOworZGlmZiAtLWdpdCBhL3hr Yi94a2J4bWwuYyBiL3hrYi94a2J4bWwuYworaW5kZXggMmNlN2JjZi4uZGU2NjQ4ZiAxMDA2NDQK Ky0tLSBhL3hrYi94a2J4bWwuYworKysrIGIveGtiL3hrYnhtbC5jCitAQCAtMjczLDYgKzI3Myw3 IEBAIGlidXNfeGtiX2VuZ2luZV9kZXNjX25ldyAoY29uc3QgZ2NoYXIgKmxhbmcsCisgICAgIGdj aGFyICpsb25nbmFtZSA9IE5VTEw7CisgICAgIGdjaGFyICpkZXNjID0gTlVMTDsKKyAgICAgZ2No YXIgKmVuZ2luZV9sYXlvdXQgPSBOVUxMOworKyAgICBjb25zdCBnY2hhciAqaWNvbiA9ICJpYnVz LWVuZ2luZSI7CisgCisgICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChsYW5nICE9IE5VTEwgJiYg bGF5b3V0ICE9IE5VTEwsIE5VTEwpOworIAorQEAgLTI5NCw2ICsyOTUsMTEgQEAgaWJ1c194a2Jf ZW5naW5lX2Rlc2NfbmV3IChjb25zdCBnY2hhciAqbGFuZywKKyAgICAgICAgIGRlc2MgPSBnX3N0 cmR1cF9wcmludGYgKCJYS0IgJXMga2V5Ym9hcmQgbGF5b3V0IiwgbGF5b3V0KTsKKyAgICAgICAg IGVuZ2luZV9sYXlvdXQgPSBnX3N0cmR1cCAobGF5b3V0KTsKKyAgICAgfQorKyNpZiBVU0VfQlJJ REdFX0hPVEtFWQorKyAgICBpZiAoZ19zdHJjbXAwIChuYW1lLCBERUZBVUxUX0JSSURHRV9FTkdJ TkVfTkFNRSkgPT0gMCkgeworKyAgICAgICAgaWNvbiA9ICJpbnB1dC1rZXlib2FyZC1zeW1ib2xp YyI7CisrICAgIH0KKysjZW5kaWYKKyAKKyAgICAgZW5naW5lID0gaWJ1c19lbmdpbmVfZGVzY19u ZXcgKG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nbmFtZSwK K0BAIC0zMDEsNyArMzA3LDcgQEAgaWJ1c194a2JfZW5naW5lX2Rlc2NfbmV3IChjb25zdCBnY2hh ciAqbGFuZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhbmcsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTEdQTDIuMSIsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiVGFrYW8gRnVqaXdhcmEgPHRha2FvLmZ1aml3YXJhMUBn bWFpbC5jb20+IiwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpYnVzLWVu Z2luZSIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5naW5lX2xheW91dCk7CisgCisgICAgIGdf ZnJlZSAobmFtZSk7CistLSAKKzEuNy40LjQKKwoKZGlmZiAtLWdpdCBhL2lidXMteHgtaWNvbi1z eW1ib2wucGF0Y2ggYi9pYnVzLXh4LWljb24tc3ltYm9sLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLmViMDgwMmQKLS0tIC9kZXYvbnVsbAorKysgYi9pYnVzLXh4LWlj b24tc3ltYm9sLnBhdGNoCkBAIC0wLDAgKzEsMzMxIEBACitGcm9tIGVjMDJkNjQ2ZGNjZDIxM2Ux MzA5MDExMTYwZDlkNzNhMjYxNzQwNDQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBm dWppd2FyYXQgPHRha2FvLmZ1aml3YXJhMUBnbWFpbC5jb20+CitEYXRlOiBNb24sIDIwIEp1biAy MDExIDE5OjEwOjIxICswOTAwCitTdWJqZWN0OiBbUEFUQ0hdIEFkZCBpY29uX3N5bWJvbCBwcm9w ZXJ0eSBpbiBJQnVzRW5naW5lRGVzYy4KKworLS0tCisgYnVzL2VuZ2luZXByb3h5LmMgICAgICAg ICB8ICAgMjIgKysrKysrKysrKysrKysrCisgYnVzL2lidXNpbXBsLmMgICAgICAgICAgICB8ICAg MzMgKysrKysrKysrKysrKysrKysrKysrKworIGJ1cy9pYnVzaW1wbC5oICAgICAgICAgICAgfCAg ICA0ICsrKworIGlidXMvZW5naW5lLnB5ICAgICAgICAgICAgfCAgICAzICsrCisgaWJ1cy9pbnRl cmZhY2UvaWVuZ2luZS5weSB8ICAgIDMgKysKKyBzcmMvaWJ1c2VuZ2luZWRlc2MuYyAgICAgIHwg ICA2NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKKyBzcmMv aWJ1c2VuZ2luZWRlc2MuaCAgICAgIHwgICAxMCArKysrKysrCisgNyBmaWxlcyBjaGFuZ2VkLCAx NDEgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2J1cy9lbmdp bmVwcm94eS5jIGIvYnVzL2VuZ2luZXByb3h5LmMKK2luZGV4IGY3NGFmMTIuLjVjMGNiYjIgMTAw NjQ0CistLS0gYS9idXMvZW5naW5lcHJveHkuYworKysrIGIvYnVzL2VuZ2luZXByb3h5LmMKK0BA IC01OTEsNiArNTkxLDI4IEBAIGJ1c19lbmdpbmVfcHJveHlfZ19zaWduYWwgKEdEQnVzUHJveHkg ICpwcm94eSwKKyAgICAgICAgIHJldHVybjsKKyAgICAgfQorIAorKyAgICBpZiAoZ19zdHJjbXAw IChzaWduYWxfbmFtZSwgIlNldEljb25TeW1ib2wiKSA9PSAwKSB7CisrICAgICAgICBjb25zdCBn Y2hhciAqbmFtZSA9IE5VTEw7CisrICAgICAgICBnY2hhciAqaWNvbl9zeW1ib2wgPSBOVUxMOwor KyAgICAgICAgR1ZhbHVlIHZhbHVlID0geyAwLCB9OworKworKyAgICAgICAgbmFtZSA9IGlidXNf ZW5naW5lX2Rlc2NfZ2V0X25hbWUgKGVuZ2luZS0+ZGVzYyk7CisrICAgICAgICBnX3JldHVybl9p Zl9mYWlsIChuYW1lICE9IE5VTEwpOworKyAgICAgICAgZ192YXJpYW50X2dldCAocGFyYW1ldGVy cywgIihzKSIsICZpY29uX3N5bWJvbCk7CisrICAgICAgICBnX3JldHVybl9pZl9mYWlsIChpY29u X3N5bWJvbCAhPSBOVUxMKTsKKysKKysgICAgICAgIGdfdmFsdWVfaW5pdCAoJnZhbHVlLCBHX1RZ UEVfU1RSSU5HKTsKKysgICAgICAgIGdfdmFsdWVfc2V0X3N0cmluZyAoJnZhbHVlLCBpY29uX3N5 bWJvbCk7CisrICAgICAgICBnX29iamVjdF9zZXRfcHJvcGVydHkgKEdfT0JKRUNUIChlbmdpbmUt PmRlc2MpLCAiaWNvbl9zeW1ib2wiLCAmdmFsdWUpOworKyAgICAgICAgZ192YWx1ZV91bnNldCAo JnZhbHVlKTsKKysKKysgICAgICAgIGJ1c19pYnVzX2ltcGxfc2V0X2ljb25fc3ltYm9sX3dpdGhf ZW5naW5lX25hbWUgKEJVU19ERUZBVUxUX0lCVVMsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbl9zeW1ib2wpOworKyAg ICAgICAgZ19mcmVlIChpY29uX3N5bWJvbCk7CisrICAgICAgICByZXR1cm47CisrICAgIH0KKysK KyAgICAgZ19yZXR1cm5faWZfcmVhY2hlZCAoKTsKKyB9CisgCitkaWZmIC0tZ2l0IGEvYnVzL2li dXNpbXBsLmMgYi9idXMvaWJ1c2ltcGwuYworaW5kZXggYjM1NmIyYy4uMzhkNmQxMSAxMDA2NDQK Ky0tLSBhL2J1cy9pYnVzaW1wbC5jCisrKysgYi9idXMvaWJ1c2ltcGwuYworQEAgLTIzNDIsMyAr MjM0MiwzNiBAQCBidXNfaWJ1c19pbXBsX2dldF9mb2N1c2VkX2lucHV0X2NvbnRleHQgKEJ1c0lC dXNJbXBsICppYnVzKQorIAorICAgICByZXR1cm4gaWJ1cy0+Zm9jdXNlZF9jb250ZXh0OworIH0K KysKKyt2b2lkCisrYnVzX2lidXNfaW1wbF9zZXRfaWNvbl9zeW1ib2xfd2l0aF9lbmdpbmVfbmFt ZSAoQnVzSUJ1c0ltcGwgKmlidXMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgKm5hbWUsCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgKmljb25fc3ltYm9sKQorK3sK KysgICAgSUJ1c0VuZ2luZURlc2MgKmRlc2MgPSBOVUxMOworKyAgICBHVmFsdWUgdmFsdWUgPSB7 IDAsIH07CisrCisrICAgIGdfYXNzZXJ0IChCVVNfSVNfSUJVU19JTVBMIChpYnVzKSk7CisrICAg IGdfYXNzZXJ0IChuYW1lICE9IE5VTEwpOworKyAgICBnX2Fzc2VydCAoaWNvbl9zeW1ib2wgIT0g TlVMTCk7CisrCisrICAgIGRlc2MgPSBidXNfaWJ1c19pbXBsX2dldF9lbmdpbmVfZGVzYyAoaWJ1 cywgbmFtZSk7CisrCisrICAgIGlmIChkZXNjID09IE5VTEwpIHsKKysgICAgICAgIHJldHVybjsK KysgICAgfQorKworKyAgICBnX3ZhbHVlX2luaXQgKCZ2YWx1ZSwgR19UWVBFX1NUUklORyk7Cisr ICAgIGdfdmFsdWVfc2V0X3N0cmluZyAoJnZhbHVlLCBpY29uX3N5bWJvbCk7CisrICAgIGdfb2Jq ZWN0X3NldF9wcm9wZXJ0eSAoR19PQkpFQ1QgKGRlc2MpLCAiaWNvbl9zeW1ib2wiLCAmdmFsdWUp OworKyAgICBnX3ZhbHVlX3Vuc2V0ICgmdmFsdWUpOworKworKyAgICAvKiBVcGRhdGUgc3RhdHVz IGljb24uCisrICAgICAqICJlbmFibGVkIiBzaWduYWwgaXMgY2F1Z2h0IGJ5IGlidXMtPnBhbmVs IGFuZCBpYnVzLT5wYW5lbCBjYWxscworKyAgICAgKiBTdGF0ZUNoYW5nZWQgZGJ1cyBtZXRob2Qu ICovCisrICAgIGlmIChpYnVzLT5wYW5lbCAmJiBpYnVzLT5mb2N1c2VkX2NvbnRleHQpIHsKKysg ICAgICAgIGlmIChidXNfaW5wdXRfY29udGV4dF9pc19lbmFibGVkIChpYnVzLT5mb2N1c2VkX2Nv bnRleHQpKSB7CisrICAgICAgICAgICAgYnVzX2lucHV0X2NvbnRleHRfZW5hYmxlIChpYnVzLT5m b2N1c2VkX2NvbnRleHQpOworKyAgICAgICAgfQorKyAgICB9CisrfQorZGlmZiAtLWdpdCBhL2J1 cy9pYnVzaW1wbC5oIGIvYnVzL2lidXNpbXBsLmgKK2luZGV4IDQyZWRiZjguLjRmMzdjYmMgMTAw NjQ0CistLS0gYS9idXMvaWJ1c2ltcGwuaAorKysrIGIvYnVzL2lidXNpbXBsLmgKK0BAIC05OSw2 ICs5OSwxMCBAQCBnYm9vbGVhbiAgICAgICAgIGJ1c19pYnVzX2ltcGxfaXNfZW1iZWRfcHJlZWRp dF90ZXh0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChCdXNJQnVzSW1wbCAgICAgICAgKmlidXMpOworIEJ1c0lucHV0Q29udGV4dCAqYnVzX2li dXNfaW1wbF9nZXRfZm9jdXNlZF9pbnB1dF9jb250ZXh0CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChCdXNJQnVzSW1wbCAgICAgICAgKmlidXMp OworK3ZvaWQgICAgICAgICAgICAgYnVzX2lidXNfaW1wbF9zZXRfaWNvbl9zeW1ib2xfd2l0aF9l bmdpbmVfbmFtZQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoQnVzSUJ1c0ltcGwgICAgICAgICppYnVzLAorKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICpuYW1l LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgZ2NoYXIgICAgICAgICppY29uX3N5bWJvbCk7CisgCisgR19FTkRfREVDTFMKKyAjZW5k aWYKK2RpZmYgLS1naXQgYS9pYnVzL2VuZ2luZS5weSBiL2lidXMvZW5naW5lLnB5CitpbmRleCBm ZTVkZDk4Li5lODI3NDA4IDEwMDY0NAorLS0tIGEvaWJ1cy9lbmdpbmUucHkKKysrKyBiL2lidXMv ZW5naW5lLnB5CitAQCAtMTc2LDYgKzE3Niw5IEBAIGNsYXNzIEVuZ2luZUJhc2Uob2JqZWN0Lk9i amVjdCk6CisgICAgICAgICBzZWxmLl9fcHJveHkgPSBOb25lCisgICAgICAgICBzdXBlcihFbmdp bmVCYXNlLHNlbGYpLmRvX2Rlc3Ryb3koKQorIAorKyAgICBkZWYgc2V0X2ljb25fc3ltYm9sKHNl bGYsIGljb25fc3ltYm9sKToKKysgICAgICAgIHJldHVybiBzZWxmLl9fcHJveHkuU2V0SWNvblN5 bWJvbChpY29uX3N5bWJvbCkKKysKKyAKKyBjbGFzcyBFbmdpbmVQcm94eShpbnRlcmZhY2UuSUVu Z2luZSk6CisgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBlbmdpbmUsIGNvbm4sIG9iamVjdF9wYXRo KToKK2RpZmYgLS1naXQgYS9pYnVzL2ludGVyZmFjZS9pZW5naW5lLnB5IGIvaWJ1cy9pbnRlcmZh Y2UvaWVuZ2luZS5weQoraW5kZXggOWUwZDk4MS4uN2NlZmNkZiAxMDA2NDQKKy0tLSBhL2lidXMv aW50ZXJmYWNlL2llbmdpbmUucHkKKysrKyBiL2lidXMvaW50ZXJmYWNlL2llbmdpbmUucHkKK0BA IC0xNTcsMyArMTU3LDYgQEAgY2xhc3MgSUVuZ2luZShkYnVzLnNlcnZpY2UuT2JqZWN0KToKKyAK KyAgICAgQHNpZ25hbCgpCisgICAgIGRlZiBSZXF1aXJlU3Vycm91bmRpbmdUZXh0KHNlbGYpOiBw YXNzCisrCisrICAgIEBzaWduYWwoc2lnbmF0dXJlPSJzIikKKysgICAgZGVmIFNldEljb25TeW1i b2woc2VsZiwgaWNvbl9zeW1ib2wpOiBwYXNzCitkaWZmIC0tZ2l0IGEvc3JjL2lidXNlbmdpbmVk ZXNjLmMgYi9zcmMvaWJ1c2VuZ2luZWRlc2MuYworaW5kZXggY2E1ZWY2MC4uZDM4MDBlMSAxMDA2 NDQKKy0tLSBhL3NyYy9pYnVzZW5naW5lZGVzYy5jCisrKysgYi9zcmMvaWJ1c2VuZ2luZWRlc2Mu YworQEAgLTIyLDYgKzIyLDcgQEAKKyAjaW5jbHVkZSA8c3RkbGliLmg+CisgI2luY2x1ZGUgImli dXNlbmdpbmVkZXNjLmgiCisgI2luY2x1ZGUgImlidXN4bWwuaCIKKysjaW5jbHVkZSAiaWJ1c2Vu dW10eXBlcy5oIgorIAorIGVudW0geworICAgICBMQVNUX1NJR05BTCwKK0BAIC0zOSw2ICs0MCw3 IEBAIGVudW0geworICAgICBQUk9QX0xBWU9VVCwKKyAgICAgUFJPUF9SQU5LLAorICAgICBQUk9Q X0hPVEtFWVMsCisrICAgIFBST1BfSUNPTl9TWU1CT0wsCisgfTsKKyAKKyAKK0BAIC01NCw2ICs1 Niw3IEBAIHN0cnVjdCBfSUJ1c0VuZ2luZURlc2NQcml2YXRlIHsKKyAgICAgZ2NoYXIgICAgICAq bGF5b3V0OworICAgICBndWludCAgICAgICByYW5rOworICAgICBnY2hhciAgICAgICpob3RrZXlz OworKyAgICBnY2hhciAgICAgICppY29uX3N5bWJvbDsKKyB9OworIAorICNkZWZpbmUgSUJVU19F TkdJTkVfREVTQ19HRVRfUFJJVkFURShvKSAgXAorQEAgLTIzMiw2ICsyMzUsMTkgQEAgaWJ1c19l bmdpbmVfZGVzY19jbGFzc19pbml0IChJQnVzRW5naW5lRGVzY0NsYXNzICpjbGFzcykKKyAgICAg ICAgICAgICAgICAgICAgICAgICAiVGhlIGhvdGtleXMgb2YgZW5naW5lIGRlc2NyaXB0aW9uIiwK KyAgICAgICAgICAgICAgICAgICAgICAgICAiIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBH X1BBUkFNX1JFQURXUklURSB8IEdfUEFSQU1fQ09OU1RSVUNUX09OTFkpKTsKKysKKysgICAgLyoq CisrICAgICAqIElCdXNFbmdpbmVEZXNjOmljb25fc3ltYm9sOgorKyAgICAgKgorKyAgICAgKiBU aGUgc3ltYm9sIGNoYXJzIG9mIGVuZ2luZSBkZXNjcmlwdGlvbiBpbnN0ZWFkIG9mIGljb24gaW1h Z2UKKysgICAgICovCisrICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkgKGdvYmpl Y3RfY2xhc3MsCisrICAgICAgICAgICAgICAgICAgICBQUk9QX0lDT05fU1lNQk9MLAorKyAgICAg ICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZyAoImljb25fc3ltYm9sIiwKKysgICAg ICAgICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24gaWNvbl9zeW1ib2wiLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICJUaGUgaWNvbiBzeW1ib2wgY2hhcnMgb2YgZW5naW5lIGRlc2NyaXB0 aW9uIiwKKysgICAgICAgICAgICAgICAgICAgICAgICAiIiwKKysgICAgICAgICAgICAgICAgICAg ICAgICBHX1BBUkFNX1JFQURXUklURSB8IEdfUEFSQU1fQ09OU1RSVUNUKSk7CisgfQorIAorIHN0 YXRpYyB2b2lkCitAQCAtMjQ5LDYgKzI2NSw3IEBAIGlidXNfZW5naW5lX2Rlc2NfaW5pdCAoSUJ1 c0VuZ2luZURlc2MgKmRlc2MpCisgICAgIGRlc2MtPnByaXYtPmxheW91dCA9IE5VTEw7CisgICAg IGRlc2MtPnByaXYtPnJhbmsgPSAwOworICAgICBkZXNjLT5wcml2LT5ob3RrZXlzID0gTlVMTDsK KysgICAgZGVzYy0+cHJpdi0+aWNvbl9zeW1ib2wgPSBOVUxMOworIH0KKyAKKyBzdGF0aWMgdm9p ZAorQEAgLTI2Myw2ICsyODAsNyBAQCBpYnVzX2VuZ2luZV9kZXNjX2Rlc3Ryb3kgKElCdXNFbmdp bmVEZXNjICpkZXNjKQorICAgICBnX2ZyZWUgKGRlc2MtPnByaXYtPmljb24pOworICAgICBnX2Zy ZWUgKGRlc2MtPnByaXYtPmxheW91dCk7CisgICAgIGdfZnJlZSAoZGVzYy0+cHJpdi0+aG90a2V5 cyk7CisrICAgIGdfZnJlZSAoZGVzYy0+cHJpdi0+aWNvbl9zeW1ib2wpOworIAorICAgICBJQlVT X09CSkVDVF9DTEFTUyAoaWJ1c19lbmdpbmVfZGVzY19wYXJlbnRfY2xhc3MpLT5kZXN0cm95IChJ QlVTX09CSkVDVCAoZGVzYykpOworIH0KK0BAIC0zMTMsNiArMzMxLDEwIEBAIGlidXNfZW5naW5l X2Rlc2Nfc2V0X3Byb3BlcnR5IChJQnVzRW5naW5lRGVzYyAqZGVzYywKKyAgICAgICAgIGdfYXNz ZXJ0IChkZXNjLT5wcml2LT5ob3RrZXlzID09IE5VTEwpOworICAgICAgICAgZGVzYy0+cHJpdi0+ aG90a2V5cyA9IGdfdmFsdWVfZHVwX3N0cmluZyAodmFsdWUpOworICAgICAgICAgYnJlYWs7Cisr ICAgIGNhc2UgUFJPUF9JQ09OX1NZTUJPTDoKKysgICAgICAgIGdfZnJlZSAoZGVzYy0+cHJpdi0+ aWNvbl9zeW1ib2wpOworKyAgICAgICAgZGVzYy0+cHJpdi0+aWNvbl9zeW1ib2wgPSBnX3ZhbHVl X2R1cF9zdHJpbmcgKHZhbHVlKTsKKysgICAgICAgIGJyZWFrOworICAgICBkZWZhdWx0OgorICAg ICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEIChkZXNjLCBwcm9wX2lkLCBw c3BlYyk7CisgICAgIH0KK0BAIC0zNTUsNiArMzc3LDkgQEAgaWJ1c19lbmdpbmVfZGVzY19nZXRf cHJvcGVydHkgKElCdXNFbmdpbmVEZXNjICpkZXNjLAorICAgICBjYXNlIFBST1BfSE9US0VZUzoK KyAgICAgICAgIGdfdmFsdWVfc2V0X3N0cmluZyAodmFsdWUsIGlidXNfZW5naW5lX2Rlc2NfZ2V0 X2hvdGtleXMgKGRlc2MpKTsKKyAgICAgICAgIGJyZWFrOworKyAgICBjYXNlIFBST1BfSUNPTl9T WU1CT0w6CisrICAgICAgICBnX3ZhbHVlX3NldF9zdHJpbmcgKHZhbHVlLCBpYnVzX2VuZ2luZV9k ZXNjX2dldF9pY29uX3N5bWJvbCAoZGVzYykpOworKyAgICAgICAgYnJlYWs7CisgICAgIGRlZmF1 bHQ6CisgICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQgKGRlc2MsIHBy b3BfaWQsIHBzcGVjKTsKKyAgICAgfQorQEAgLTM4Miw5ICs0MDcsMjggQEAgaWJ1c19lbmdpbmVf ZGVzY19zZXJpYWxpemUgKElCdXNFbmdpbmVEZXNjICAqZGVzYywKKyAgICAgZ192YXJpYW50X2J1 aWxkZXJfYWRkIChidWlsZGVyLCAidSIsIGRlc2MtPnByaXYtPnJhbmspOworICAgICBnX3Zhcmlh bnRfYnVpbGRlcl9hZGQgKGJ1aWxkZXIsICJzIiwgTk9UTlVMTCAoZGVzYy0+cHJpdi0+aG90a2V5 cykpOworICN1bmRlZiBOT1ROVUxMCisrCisrICAgIC8qIGFwcGVuZCBleHRyYSBwcm9wZXJ0aWVz ICovCisrICAgIEdWYXJpYW50QnVpbGRlciBhcnJheTsKKysgICAgZ192YXJpYW50X2J1aWxkZXJf aW5pdCAoJmFycmF5LCBHX1ZBUklBTlRfVFlQRSAoImF7c3Z9IikpOworKyAgICBnX3ZhcmlhbnRf YnVpbGRlcl9hZGQgKCZhcnJheSwgIntzdn0iLCAiaWNvbl9zeW1ib2wiLCBnX3ZhcmlhbnRfbmV3 X3N0cmluZyAoZGVzYy0+cHJpdi0+aWNvbl9zeW1ib2wpKTsKKysgICAgZ192YXJpYW50X2J1aWxk ZXJfYWRkIChidWlsZGVyLCAidiIsIGdfdmFyaWFudF9idWlsZGVyX2VuZCAoJmFycmF5KSk7Cisr CisgICAgIHJldHVybiBUUlVFOworIH0KKyAKKytzdGF0aWMgZ2Jvb2xlYW4KKytpYnVzX2VuZ2lu ZV9kZXNjX2Rlc2VyaWFsaXplX3Byb3BlcnR5IChJQnVzRW5naW5lRGVzYyAqZGVzYywKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAqbmFtZSwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVmFyaWFudCAgICAgICAq dmFyaWFudCkKKyt7CisrICAgIGlmIChnX3N0cmNtcDAgKG5hbWUsICJpY29uX3N5bWJvbCIpID09 IDApIHsKKysgICAgICAgIGdfdmFyaWFudF9nZXQgKHZhcmlhbnQsICJzIiwgJmRlc2MtPnByaXYt Pmljb25fc3ltYm9sKTsKKysgICAgICAgIHJldHVybiBUUlVFOworKyAgICB9CisrICAgIHJldHVy biBGQUxTRTsKKyt9CisrCisgc3RhdGljIGdpbnQKKyBpYnVzX2VuZ2luZV9kZXNjX2Rlc2VyaWFs aXplIChJQnVzRW5naW5lRGVzYyAqZGVzYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBHVmFyaWFudCAgICAgICAqdmFyaWFudCkKK0BAIC00MDUsNiArNDQ5LDIzIEBAIGlidXNfZW5n aW5lX2Rlc2NfZGVzZXJpYWxpemUgKElCdXNFbmdpbmVEZXNjICpkZXNjLAorICAgICBnX3Zhcmlh bnRfZ2V0X2NoaWxkICh2YXJpYW50LCByZXR2YWwrKywgInUiLCAmZGVzYy0+cHJpdi0+cmFuayk7 CisgICAgIGdfdmFyaWFudF9nZXRfY2hpbGQgKHZhcmlhbnQsIHJldHZhbCsrLCAicyIsICZkZXNj LT5wcml2LT5ob3RrZXlzKTsKKyAKKysgICAgLyogZXh0cmFjdCBleHRyYSBwcm9wZXJ0aWVzICov CisrICAgIEdWYXJpYW50SXRlciBpdGVyOworKyAgICBHVmFyaWFudCAqY2hpbGQsICphcnJheTsK KysKKysgICAgZ192YXJpYW50X2dldF9jaGlsZCAodmFyaWFudCwgcmV0dmFsKyssICJ2IiwgJmFy cmF5KTsKKysgICAgZ192YXJpYW50X2l0ZXJfaW5pdCAoJml0ZXIsIGFycmF5KTsKKysgICAgd2hp bGUgKChjaGlsZCA9IGdfdmFyaWFudF9pdGVyX25leHRfdmFsdWUgKCZpdGVyKSkpIHsKKysgICAg ICAgIGdjaGFyICpuYW1lOworKyAgICAgICAgR1ZhcmlhbnQgKnZhbHVlOworKyAgICAgICAgZ192 YXJpYW50X2dldCAoY2hpbGQsICJ7c3Z9IiwgJm5hbWUsICZ2YWx1ZSk7CisrICAgICAgICBpZiAo aWJ1c19lbmdpbmVfZGVzY19kZXNlcmlhbGl6ZV9wcm9wZXJ0eSAoZGVzYywgbmFtZSwgdmFsdWUp KQorKyAgICAgICAgICAgIHJldHZhbCsrOworKyAgICAgICAgZ19mcmVlIChuYW1lKTsKKysgICAg ICAgIGdfdmFyaWFudF91bnJlZiAodmFsdWUpOworKyAgICAgICAgZ192YXJpYW50X3VucmVmIChj aGlsZCk7CisrICAgIH0KKysKKyAgICAgcmV0dXJuIHJldHZhbDsKKyB9CisgCitAQCAtNDI4LDYg KzQ4OSw3IEBAIGlidXNfZW5naW5lX2Rlc2NfY29weSAoSUJ1c0VuZ2luZURlc2MgICAgICAgKmRl c3QsCisgICAgIGRlc3QtPnByaXYtPmxheW91dCAgICAgICAgICAgPSBnX3N0cmR1cCAoc3JjLT5w cml2LT5sYXlvdXQpOworICAgICBkZXN0LT5wcml2LT5yYW5rICAgICAgICAgICAgID0gc3JjLT5w cml2LT5yYW5rOworICAgICBkZXN0LT5wcml2LT5ob3RrZXlzICAgICAgICAgID0gZ19zdHJkdXAg KHNyYy0+cHJpdi0+aG90a2V5cyk7CisrICAgIGRlc3QtPnByaXYtPmljb25fc3ltYm9sICAgICAg PSBnX3N0cmR1cCAoc3JjLT5wcml2LT5pY29uX3N5bWJvbCk7CisgICAgIHJldHVybiBUUlVFOwor IH0KKyAKK0BAIC00NjUsNiArNTI3LDcgQEAgaWJ1c19lbmdpbmVfZGVzY19vdXRwdXQgKElCdXNF bmdpbmVEZXNjICpkZXNjLAorICAgICBPVVRQVVRfRU5UUllfMShpY29uKTsKKyAgICAgT1VUUFVU X0VOVFJZXzEobGF5b3V0KTsKKyAgICAgT1VUUFVUX0VOVFJZXzEoaG90a2V5cyk7CisrICAgIE9V VFBVVF9FTlRSWV8xKGljb25fc3ltYm9sKTsKKyAgICAgZ19zdHJpbmdfYXBwZW5kX2luZGVudCAo b3V0cHV0LCBpbmRlbnQgKyAxKTsKKyAgICAgZ19zdHJpbmdfYXBwZW5kX3ByaW50ZiAob3V0cHV0 LCAiPHJhbms+JXU8L3Jhbms+XG4iLCBkZXNjLT5wcml2LT5yYW5rKTsKKyAjdW5kZWYgT1VUUFVU X0VOVFJZCitAQCAtNDk4LDYgKzU2MSw3IEBAIGlidXNfZW5naW5lX2Rlc2NfcGFyc2VfeG1sX25v ZGUgKElCdXNFbmdpbmVEZXNjICpkZXNjLAorICAgICAgICAgUEFSU0VfRU5UUllfMShpY29uKTsK KyAgICAgICAgIFBBUlNFX0VOVFJZXzEobGF5b3V0KTsKKyAgICAgICAgIFBBUlNFX0VOVFJZXzEo aG90a2V5cyk7CisrICAgICAgICBQQVJTRV9FTlRSWV8xKGljb25fc3ltYm9sKTsKKyAjdW5kZWYg UEFSU0VfRU5UUlkKKyAjdW5kZWYgUEFSU0VfRU5UUllfMQorICAgICAgICAgaWYgKGdfc3RyY21w MCAoc3ViX25vZGUtPm5hbWUgLCAicmFuayIpID09IDApIHsKK0BAIC01MjYsNiArNTkwLDcgQEAg SUJVU19FTkdJTkVfREVTQ19HRVRfUFJPUEVSVFkgKGljb24sIGNvbnN0IGdjaGFyICopCisgSUJV U19FTkdJTkVfREVTQ19HRVRfUFJPUEVSVFkgKGxheW91dCwgY29uc3QgZ2NoYXIgKikKKyBJQlVT X0VOR0lORV9ERVNDX0dFVF9QUk9QRVJUWSAocmFuaywgZ3VpbnQpCisgSUJVU19FTkdJTkVfREVT Q19HRVRfUFJPUEVSVFkgKGhvdGtleXMsIGNvbnN0IGdjaGFyICopCisrSUJVU19FTkdJTkVfREVT Q19HRVRfUFJPUEVSVFkgKGljb25fc3ltYm9sLCBjb25zdCBnY2hhciAqKQorICN1bmRlZiBJQlVT X0VOR0lORV9ERVNDX0dFVF9QUk9QRVJUWQorIAorIElCdXNFbmdpbmVEZXNjICoKK0BAIC01NzMs NiArNjM4LDcgQEAgaWJ1c19lbmdpbmVfZGVzY19uZXdfdmFyYXJncyAoY29uc3QgZ2NoYXIgKmZp cnN0X3Byb3BlcnR5X25hbWUsIC4uLikKKyAgICAgZ19hc3NlcnQgKGRlc2MtPnByaXYtPmljb24p OworICAgICBnX2Fzc2VydCAoZGVzYy0+cHJpdi0+bGF5b3V0KTsKKyAgICAgZ19hc3NlcnQgKGRl c2MtPnByaXYtPmhvdGtleXMpOworKyAgICBnX2Fzc2VydCAoZGVzYy0+cHJpdi0+aWNvbl9zeW1i b2wpOworIAorICAgICByZXR1cm4gZGVzYzsKKyB9CitkaWZmIC0tZ2l0IGEvc3JjL2lidXNlbmdp bmVkZXNjLmggYi9zcmMvaWJ1c2VuZ2luZWRlc2MuaAoraW5kZXggOTcxOGIxNS4uZTMxOTRjMyAx MDA2NDQKKy0tLSBhL3NyYy9pYnVzZW5naW5lZGVzYy5oCisrKysgYi9zcmMvaWJ1c2VuZ2luZWRl c2MuaAorQEAgLTI0OSw2ICsyNDksMTYgQEAgZ3VpbnQgICAgICAgICAgICBpYnVzX2VuZ2luZV9k ZXNjX2dldF9yYW5rICAgICAgKElCdXNFbmdpbmVEZXNjICppbmZvKTsKKyBjb25zdCBnY2hhciAg ICAgKmlidXNfZW5naW5lX2Rlc2NfZ2V0X2hvdGtleXMgICAoSUJ1c0VuZ2luZURlc2MgKmluZm8p OworIAorIC8qKgorKyAqIGlidXNfZW5naW5lX2Rlc2NfZ2V0X2ljb25fc3ltYm9sOgorKyAqIEBp bmZvOiBBbiBJQnVzRW5naW5lRGVzYworKyAqIEByZXR1cm5zOiBpY29uX3N5bWJvbCBwcm9wZXJ0 eSBpbiBJQnVzRW5naW5lRGVzYworKyAqCisrICogUmV0dXJuIHRoZSBpY29uX3N5bWJvbCBwcm9w ZXJ0eSBpbiBJQnVzRW5naW5lRGVzYy4gSXQgc2hvdWxkIG5vdCBiZSBmcmVlZC4KKysgKi8KKytj b25zdCBnY2hhciAgICAgKmlidXNfZW5naW5lX2Rlc2NfZ2V0X2ljb25fc3ltYm9sCisrICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKElCdXNFbmdpbmVEZXNj ICppbmZvKTsKKysKKysvKioKKyAgKiBpYnVzX2VuZ2luZV9kZXNjX291dHB1dDoKKyAgKiBAaW5m bzogQW4gSUJ1c0VuZ2luZURlc2MKKyAgKiBAb3V0cHV0OiBYTUwtZm9ybWF0dGVkIElucHV0IG1l dGhvZCBlbmdpbmUgZGVzY3JpcHRpb24uCistLSAKKzEuNy40LjQKKwoKZGlmZiAtLWdpdCBhL2li dXMteHgtc2V0dXAtZnJlcXVlbnQtbGFuZy5wYXRjaCBiL2lidXMteHgtc2V0dXAtZnJlcXVlbnQt bGFuZy5wYXRjaAppbmRleCBhMDE5ZmE4Li5hNjU5NDllIDEwMDY0NAotLS0gYS9pYnVzLXh4LXNl dHVwLWZyZXF1ZW50LWxhbmcucGF0Y2gKKysrIGIvaWJ1cy14eC1zZXR1cC1mcmVxdWVudC1sYW5n LnBhdGNoCkBAIC0xLDYgKzEsNiBAQAotRnJvbSAyMzEyODVkNmQ5ZTFiMGI4NjhlZGI4NDJiNDZj MzA5NzRhNWM1MTdhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbSA3MzVhNGQ5OGFjMDU3 ZGVkMzE3ZGFlOWI4NTc3N2NlNTZkOGFmMGZkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQogRnJv bTogZnVqaXdhcmF0IDx0YWthby5mdWppd2FyYTFAZ21haWwuY29tPgotRGF0ZTogV2VkLCAyNSBN YXkgMjAxMSAxODo1MjoyNSArMDkwMAorRGF0ZTogTW9uLCAyMCBKdW4gMjAxMSAxOTowNDo1MSAr MDkwMAogU3ViamVjdDogW1BBVENIXSBFbmFibGUgaWJ1cy1zZXR1cCB0byBzaG93IHRoZSBmcmVx dWVudGx5IHVzZWQgbGFuZ3VhZ2VzCiAgb25seSBpbiBJTUUgbGlzdC4KIApAQCAtMTAsMTAgKzEw LDEwIEBAIFN1YmplY3Q6IFtQQVRDSF0gRW5hYmxlIGlidXMtc2V0dXAgdG8gc2hvdyB0aGUgZnJl cXVlbnRseSB1c2VkIGxhbmd1YWdlcwogIHNldHVwL21haW4ucHkgICAgICAgICAgIHwgICAgMSAr CiAgMyBmaWxlcyBjaGFuZ2VkLCAzMDAgaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRpb25zKC0pCiAK LWRpZmYgLS1naXQgYS9kYXRhL2lidXMuc2NoZW1hcy5pbiBiL2RhdGEvaWJ1cy5zY2hlbWFzLmlu Ci1pbmRleCAzOTkyMmEwLi4yZTMzYjJjIDEwMDY0NAotLS0tIGEvZGF0YS9pYnVzLnNjaGVtYXMu aW4KLSsrKyBiL2RhdGEvaWJ1cy5zY2hlbWFzLmluCitkaWZmIC0tZ2l0IGEvZGF0YS9pYnVzLnNj aGVtYXMuaW4uaW4gYi9kYXRhL2lidXMuc2NoZW1hcy5pbi5pbgoraW5kZXggZDQzMzRlMS4uNWVm MmFjMiAxMDA2NDQKKy0tLSBhL2RhdGEvaWJ1cy5zY2hlbWFzLmluLmluCisrKysgYi9kYXRhL2li dXMuc2NoZW1hcy5pbi5pbgogQEAgLTIzOSw2ICsyMzksMTc0IEBACiAgICAgICAgPC9sb2NhbGU+ CiAgICAgIDwvc2NoZW1hPgpAQCAtNDEzLDEwICs0MTMsMTAgQEAgaW5kZXggNzM4MzE3Ny4uYmZm MjQwNyAxMDA2NDQKICAgICAgICAgIHJldHVybiBzZWxmLl9fdGl0bGUKICAKIGRpZmYgLS1naXQg YS9zZXR1cC9tYWluLnB5IGIvc2V0dXAvbWFpbi5weQotaW5kZXggOWNkY2UwMi4uNTIwMTEzOSAx MDA2NDQKK2luZGV4IDE5MmZiODguLjVhMDE3MGQgMTAwNjQ0CiAtLS0gYS9zZXR1cC9tYWluLnB5 CiArKysgYi9zZXR1cC9tYWluLnB5Ci1AQCAtMjI2LDYgKzIyNiw3IEBAIGNsYXNzIFNldHVwKG9i amVjdCk6CitAQCAtMjI3LDYgKzIyNyw3IEBAIGNsYXNzIFNldHVwKG9iamVjdCk6CiAgICAgICAg ICBidXR0b24uY29ubmVjdCgidG9nZ2xlZCIsIHNlbGYuX19jaGVja2J1dHRvbl9wcmVsb2FkX2Vu Z2luZV9tb2RlX3RvZ2dsZWRfY2IpCiAgICAgICAgICBzZWxmLl9fZW5naW5lcyA9IHNlbGYuX19i dXMubGlzdF9lbmdpbmVzKCkKICAgICAgICAgIHNlbGYuX19jb21ib2JveCA9IHNlbGYuX19idWls ZGVyLmdldF9vYmplY3QoImNvbWJvYm94X2VuZ2luZXMiKQoKZGlmZiAtLWdpdCBhL2lidXMuc3Bl YyBiL2lidXMuc3BlYwppbmRleCAxNWEyMGY2Li41OTJkMzZiIDEwMDY0NAotLS0gYS9pYnVzLnNw ZWMKKysrIGIvaWJ1cy5zcGVjCkBAIC0xMyw3ICsxMyw3IEBACiAKIE5hbWU6ICAgICAgIGlidXMK IFZlcnNpb246ICAgIDEuMy45OS4yMDExMDQxOQotUmVsZWFzZTogICAgMiV7P2Rpc3R9CitSZWxl YXNlOiAgICAzJXs/ZGlzdH0KIFN1bW1hcnk6ICAgIEludGVsbGlnZW50IElucHV0IEJ1cyBmb3Ig TGludXggT1MKIExpY2Vuc2U6ICAgIExHUEx2MisKIEdyb3VwOiAgICAgIFN5c3RlbSBFbnZpcm9u bWVudC9MaWJyYXJpZXMKQEAgLTIxLDE0ICsyMSwxNiBAQCBVUkw6ICAgICAgICBodHRwOi8vY29k ZS5nb29nbGUuY29tL3AvaWJ1cy8KIFNvdXJjZTA6ICAgIGh0dHA6Ly9pYnVzLmdvb2dsZWNvZGUu Y29tL2ZpbGVzLyV7bmFtZX0tJXt2ZXJzaW9ufS50YXIuZ3oKIFNvdXJjZTE6ICAgIHhpbnB1dC1p YnVzCiAlaWYgJWhhdmVfZ2pzZmlsZQotU291cmNlMjogICAgaHR0cDovL2Z1aml3YXJhLmZlZG9y YXBlb3BsZS5vcmcvaWJ1cy9nbm9tZS1zaGVsbC9nbm9tZS1zaGVsbC1pYnVzLXBsdWdpbnMtMjAx MTA2MDEudGFyLmJ6MgorU291cmNlMjogICAgaHR0cDovL2Z1aml3YXJhLmZlZG9yYXBlb3BsZS5v cmcvaWJ1cy9nbm9tZS1zaGVsbC9nbm9tZS1zaGVsbC1pYnVzLXBsdWdpbnMtMjAxMTA2MjEudGFy LmJ6MgogJWVuZGlmCiBTb3VyY2UzOiAgICBodHRwczovL3d3dy50cmFuc2lmZXgubmV0L3Byb2pl Y3RzL3AvaWJ1cy9yZXNvdXJjZS9tYXN0ZXIvbC9kYS9kb3dubG9hZC9pYnVzX21hc3Rlcl9kYS5w bworU291cmNlNDogICAgaHR0cDovL3Vlbm8uZmVkb3JhcGVvcGxlLm9yZy9pYnVzLWluZGljYXRv ci9pYnVzLWluZGljYXRvci50YXIuYnoyCiBQYXRjaDA6ICAgICBpYnVzLUhFQUQucGF0Y2gKLVBh dGNoMTogICAgIGlidXMtNDM1ODgwLXN1cnJvdW5kaW5nLXRleHQucGF0Y2gKLVBhdGNoMjogICAg IGlidXMtNTQxNDkyLXhrYi5wYXRjaAotUGF0Y2gzOiAgICAgaWJ1cy01MzA3MTEtcHJlbG9hZC1z eXMucGF0Y2gKLVBhdGNoNDogICAgIGlidXMteHgtc2V0dXAtZnJlcXVlbnQtbGFuZy5wYXRjaAor UGF0Y2gxOiAgICAgaWJ1cy01MzA3MTEtcHJlbG9hZC1zeXMucGF0Y2gKK1BhdGNoMjogICAgIGli dXMteHgtaWNvbi1zeW1ib2wucGF0Y2gKK1BhdGNoMzogICAgIGlidXMtNTQxNDkyLXhrYi5wYXRj aAorUGF0Y2g0OiAgICAgaWJ1cy14eC1icmlkZ2UtaG90a2V5LnBhdGNoCitQYXRjaDU6ICAgICBp YnVzLXh4LXNldHVwLWZyZXF1ZW50LWxhbmcucGF0Y2gKIAogIyBXb3JrYXJvdW5kIGZvciBveHln ZW4tZ3RrIGljb24gdGhlbWUgdW50aWwgYnVnIDY5OTEwMyBpcyBmaXhlZC4KIFBhdGNoOTE6ICAg IGlidXMtNzExNjMyLWZlZG9yYS1mYWxsYmFjay1pY29uLnBhdGNoCkBAIC0xMjEsNiArMTIzLDIx IEBAIFJlcXVpcmVzKHBvc3QpOiBnbGliMiA+PSAle2dsaWJfdmVyfQogJWRlc2NyaXB0aW9uIGd0 azMKIFRoaXMgcGFja2FnZSBjb250YWlucyBpYnVzIGltIG1vZHVsZSBmb3IgZ3RrMwogCislcGFj a2FnZSBnbm9tZTMKK1N1bW1hcnk6ICAgIElCdXMgZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIGZvciBH Tk9NRTMKK0dyb3VwOiAgICAgIFN5c3RlbSBFbnZpcm9ubWVudC9MaWJyYXJpZXMKK1JlcXVpcmVz OiAgICV7bmFtZX0gPSAle3ZlcnNpb259LSV7cmVsZWFzZX0KK1JlcXVpcmVzOiAgICV7bmFtZX0t bGlicyA9ICV7dmVyc2lvbn0tJXtyZWxlYXNlfQorUmVxdWlyZXM6ICAgZ25vbWUtc2hlbGwKKwor JWRlc2NyaXB0aW9uIGdub21lMworVGhpcyBpcyBhIHRyYW5zaXRpb25hbCBwYWNrYWdlIHdoaWNo IGFsbG93cyB1c2VycyB0byB0cnkgb3V0IG5ldyBJQnVzCitHVUkgZm9yIEdOT01FMyBpbiBkZXZl bG9wbWVudC4gIE5vdGUgdGhhdCB0aGlzIHBhY2thZ2Ugd2lsbCBiZSBtYXJrZWQKK2FzIG9ic29s ZXRlIG9uY2UgdGhlIGludGVncmF0aW9uIGhhcyBjb21wbGV0ZWQgaW4gdGhlIEdOT01FMyB1cHN0 cmVhbS4KKworJWRlc2NyaXB0aW9uIGdub21lMworVGhpcyBwYWNrYWdlIGNvbnRhaW5zIGlidXMg aW0gbW9kdWxlIGZvciBndGszCisKICVwYWNrYWdlIGRldmVsCiBTdW1tYXJ5OiAgICBEZXZlbG9w bWVudCB0b29scyBmb3IgaWJ1cwogR3JvdXA6ICAgICAgRGV2ZWxvcG1lbnQvTGlicmFyaWVzCkBA IC0xNTAsMTggKzE2NywxOSBAQCBzZWQgLWkgXAogICAtZSAic3xDb25maWcuSUJVU19YS0J8Jy91 c3IvbGliZXhlYy9pYnVzLXhrYid8IiBcCiAgIC1lICJzfENvbmZpZy5IQVZFX0lCVVNfWEtCfHRy dWV8IiBcCiAgIGpzL3VpL3N0YXR1cy9pYnVzL3hrYkxheW91dC5qcworYnpjYXQgJVNPVVJDRTQg fCB0YXIgeGYgLQogJWVuZGlmCiBjcCAlU09VUkNFMyBwby9kYS5wbwogJXBhdGNoMCAtcDEKLSMg c3RhcnQgc3Vycm91bmRpbmcgcGF0Y2gKLSVwYXRjaDEgLXAxIC1iIC5zdXJyb3VuZGluZwogY3Ag Y2xpZW50L2d0azIvaWJ1c2ltY29udGV4dC5jIGNsaWVudC9ndGszL2lidXNpbWNvbnRleHQuYwot IyBlbmQgc3Vycm91bmRpbmcgcGF0Y2gKKyVwYXRjaDEgLXAxIC1iIC5wcmVsb2FkLXN5cworJXBh dGNoMiAtcDEgLWIgLmljb24tc3ltYm9sCiAlaWYgJWhhdmVfbGlieGtiZmlsZQotJXBhdGNoMiAt cDEgLWIgLnhrYgorJXBhdGNoMyAtcDEgLWIgLnhrYgogJWVuZGlmCi0lcGF0Y2gzIC1wMSAtYiAu cHJlbG9hZC1zeXMKLSVwYXRjaDQgLXAxIC1iIC5zZXR1cC1mcmVxdWVudC1sYW5nCittdiBkYXRh L2lidXMuc2NoZW1hcy5pbiBkYXRhL2lidXMuc2NoZW1hcy5pbi5pbgorJXBhdGNoNCAtcDEgLWIg LmJyaWRnZS1rZXkKKyVwYXRjaDUgLXAxIC1iIC5zZXR1cC1mcmVxdWVudC1sYW5nCiAKICVwYXRj aDkxIC1wMSAtYiAuZmFsbGJhY2staWNvbgogCkBAIC0xODAsNiArMTk4LDcgQEAgYXV0b21ha2Ug LWEgLWMgLWYKICAgICAtLWRpc2FibGUtZ3RrLWRvYyBcCiAgICAgLS13aXRoLW5vLXNub29wZXIt YXBwcz0nZ25vbWUtZG8sRG8uKixmaXJlZm94LiosLipjaHJvbWUuKiwuKmNocm9taXVtLionIFwK ICAgICAtLWVuYWJsZS1zdXJyb3VuZGluZy10ZXh0IFwKKyAgICAtLWVuYWJsZS1icmlkZ2UtaG90 a2V5IFwKICAgICAtLWVuYWJsZS1pbnRyb3NwZWN0aW9uCiAKICMgbWFrZSAtQyBwbyB1cGRhdGUt Z21vCkBAIC0yMTUsMTkgKzIzNCwxMSBAQCBkZXNrdG9wLWZpbGUtaW5zdGFsbCAtLWRlbGV0ZS1v cmlnaW5hbCAgICAgICAgICBcCiAgICRSUE1fQlVJTERfUk9PVCV7X2RhdGFkaXJ9L2FwcGxpY2F0 aW9ucy8qCiAKICVpZiAlaGF2ZV9nanNmaWxlCi1jcCAtUiBqcy91aS9zdGF0dXMvaWJ1cyAkUlBN X0JVSUxEX1JPT1Qle19kYXRhZGlyfS9pYnVzL3VpL2dqcy1nLXMKLWNhdCA+PiAkUlBNX0JVSUxE X1JPT1Qle19kYXRhZGlyfS9pYnVzL3VpL2dqcy1nLXMvUkVBRE1FIDw8X0VPRgotSUJ1cyBQYW5l bCBmb3IgR05PTUUtU2hlbGwKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLVRoaXMgaXMg YW4gYWxwaGEgdmVyc2lvbiBvZiBJQnVzIFBhbmVsIGZvciBHTk9NRS1TaGVsbC4KLVRoZXNlIGZp bGVzIHVuZGVyIHRoaXMgZGlyZWN0b3J5IGFyZSBwcmVwYXJlZCBmb3IgdGhlIHRlc3QgcHVycG9z ZS4KLUl0IGlzIHBsYW5uZWQgdG8gaW50ZWdyYXRlIHRoZSBmaWxlcyBpbnRvIGdub21lLXNoZWxs IGZpbmFsbHkuCi1QbGVhc2UgcmVmZXIgdGhlIGluc3RhbGxhdGlvbjoKLWh0dHBzOi8vZmVkb3Jh cHJvamVjdC5vcmcvd2lraS9JMThOL0lucHV0TWV0aG9kcyNHTk9NRS1TaGVsbAotQnVnIFJlcG9y dDoKLWh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9NjU3MTY1Ci1f RU9GCisjIGh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9NjU3MTY1 CitpbnN0YWxsIC1kbSA3NTUgJFJQTV9CVUlMRF9ST09UJXtfZGF0YWRpcn0vZ25vbWUtc2hlbGwK K2NwIC1SIGpzICRSUE1fQlVJTERfUk9PVCV7X2RhdGFkaXJ9L2dub21lLXNoZWxsCitpbnN0YWxs IC1kbSA3NTUgJFJQTV9CVUlMRF9ST09UJXtfZGF0YWRpcn0vZ25vbWUtc2hlbGwvZXh0ZW5zaW9u cworY3AgLVIgaWJ1cy1pbmRpY2F0b3JAZXhhbXBsZS5jb20gJFJQTV9CVUlMRF9ST09UJXtfZGF0 YWRpcn0vZ25vbWUtc2hlbGwvZXh0ZW5zaW9ucwogJWVuZGlmCiAKICMgRklYTUU6IG5vIHZlcnNp b24gbnVtYmVyCkBAIC0zMjMsNiArMzM0LDExIEBAIGZpCiAlZGVmYXR0cigtLHJvb3Qscm9vdCwt KQogJXtfbGliZGlyfS9ndGstMy4wLyV7Z3RrM19iaW5hcnlfdmVyc2lvbn0vaW1tb2R1bGVzL2lt LWlidXMuc28KIAorJWZpbGVzIGdub21lMworJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKKyV7X2Rh dGFkaXJ9L2dub21lLXNoZWxsL2pzL3VpL3N0YXR1cy9pYnVzCisle19kYXRhZGlyfS9nbm9tZS1z aGVsbC9leHRlbnNpb25zL2lidXMtaW5kaWNhdG9yQGV4YW1wbGUuY29tCisKICVmaWxlcyBkZXZl bAogJWRlZmF0dHIoLSxyb290LHJvb3QsLSkKICV7X2xpYmRpcn0vbGliKi5zbwpAQCAtMzM3LDkg KzM1MywxNCBAQCBmaQogJXtfZGF0YWRpcn0vZ3RrLWRvYy9odG1sLyoKIAogJWNoYW5nZWxvZwot KiBXZWQgSnVuIDA4IDIwMTEgVGFrYW8gRnVqaXdhcmEgPHRmdWppd2FyQHJlZGhhdC5jb20+IC0g MS4zLjk5LjIwMTEwNDE5LTIKKyogTW9uIEp1biAyMCAyMDExIFRha2FvIEZ1aml3YXJhIDx0ZnVq aXdhckByZWRoYXQuY29tPiAtIDEuMy45OS4yMDExMDQxOS0zCistIFVwZGF0ZWQgaWJ1cy1IRUFE LnBhdGNoIGZvciB1cHN0cmVhbS4KKy0gUmVtb3ZlZCBpYnVzLTQzNTg4MC1zdXJyb3VuZGluZy10 ZXh0LnBhdGNoIGFzIHVwc3RyZWFtLgogLSBBZGRlZCBpYnVzLTcxMTYzMi1mZWRvcmEtZmFsbGJh Y2staWNvbi5wYXRjaAogICBGaXhlZCBTRUdWIHdpdGggbm8gaWNvbiBpbiBveHlnZW4tZ3RrIGlj b24gdGhlbWUuCistIEFkZGVkIGlidXMteHgtaWNvbi1zeW1ib2wucGF0Y2gKKy0gQWRkZWQgaWJ1 cy14eC1icmlkZ2UtaG90a2V5LnBhdGNoCistIEFkZGVkIHRyYW5zaXRpb25hbCBpYnVzLWdub21l MyBwYWNrYWdlLgogCiAqIFRodSBNYXkgMjYgMjAxMSBUYWthbyBGdWppd2FyYSA8dGZ1aml3YXJA cmVkaGF0LmNvbT4gLSAxLjMuOTkuMjAxMTA0MTktMQogLSBVcGRhdGVkIHRvIDEuMy45OS4yMDEx MDQxOQoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IGE5MmNiYjguLjBiMzU1 ODQgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMSwzICsxLDQgQEAKIGQ0 ZjI3MjlmZWNiOTJhZTZiNDFmMjZjNzcwYjFhNzcyICBpYnVzLTEuMy45OS4yMDExMDQxOS50YXIu Z3oKLTY0ZTU1NjM2NGVlNjE5ZDUxZTgwMzk3MDg2YjFkMjQ0ICBnbm9tZS1zaGVsbC1pYnVzLXBs dWdpbnMtMjAxMTA2MDEudGFyLmJ6MgorZWNkM2EzMjBmYWNhOTA2YjFiOGVkYWFlMTk4OGY1MTIg IGdub21lLXNoZWxsLWlidXMtcGx1Z2lucy0yMDExMDYyMS50YXIuYnoyCiA2OThjOTBlZGYwZjAz NzQ4OGUxYWE5Njk4MDRlODkxZiAgaWJ1c19tYXN0ZXJfZGEucG8KKzIzNzU2ZDI1MTA5NzQ1YmRj MWMzYTU0ZGIzNzBkMjEwICBpYnVzLWluZGljYXRvci50YXIuYnoyCg==