From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Jan Kratochvil To: git-commits@fedoraproject.org Subject: [rpms/gdb] fix-dup-patch: - Rebase to FSF GDB 7.2.50.20110107 (which is a 7.3 pre-release). Date: Thu, 23 Jul 2026 18:29:43 GMT Message-ID: <178483138371.1.14603952153280014311.rpms-gdb-33ff7091acb3@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: 33ff7091acb35d3cb70b81bc83ee1c846650a603 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGZpeC1kdXAtcGF0Y2gKICAgICAg ICAgICAgQ29tbWl0IDogMzNmZjcwOTFhY2IzNWQzY2I3MGI4MWJjODNlZTFjODQ2NjUwYTYwMwog ICAgICAgICAgICBBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0 LmNvbT4KICAgICAgICAgICAgRGF0ZSAgIDogMjAxMS0wMS0wN1QwOTo0NzoyNyswMTowMAogICAg ICAgICAgICBTdGF0cyAgOiArMjM1NC8tMzI0IGluIDExIGZpbGUocykKICAgICAgICAgICAgVVJM ICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9nZGIvYy8zM2ZmNzA5MWFj YjM1ZDNjYjcwYjgxYmM4M2VlMWM4NDY2NTBhNjAzP2JyYW5jaD1maXgtZHVwLXBhdGNoCgogICAg ICAgICAgICBMb2c6CiAgICAgICAgICAgIC0gUmViYXNlIHRvIEZTRiBHREIgNy4yLjUwLjIwMTEw MTA3ICh3aGljaCBpcyBhIDcuMyBwcmUtcmVsZWFzZSkuCi0gSW1wb3J0IGFyY2hlci10cm9tZXkt cHl0aG9uIChCWiA2NjYxNzcsIGJyYW5jaCB1cGRhdGUgYnkgUGhpbCBNdWxkb29uKS4KCi0tLQpk aWZmIC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25vcmUKaW5kZXggNTkxMDk4NC4uNmM0ZjI4 ZCAxMDA2NDQKLS0tIGEvLmdpdGlnbm9yZQorKysgYi8uZ2l0aWdub3JlCkBAIC0xICsxIEBACi0v Z2RiLTcuMi41MC4yMDExMDEwNC50YXIuYnoyCisvZ2RiLTcuMi41MC4yMDExMDEwNy50YXIuYnoy CgpkaWZmIC0tZ2l0IGEvZ2RiLTYuMy1pYTY0LWdjb3JlLXBhZ2UwLTIwMDUwNDIxLnBhdGNoIGIv Z2RiLTYuMy1pYTY0LWdjb3JlLXBhZ2UwLTIwMDUwNDIxLnBhdGNoCmluZGV4IDBjNDI0NWMuLmVj ZGZiYWUgMTAwNjQ0Ci0tLSBhL2dkYi02LjMtaWE2NC1nY29yZS1wYWdlMC0yMDA1MDQyMS5wYXRj aAorKysgYi9nZGItNi4zLWlhNjQtZ2NvcmUtcGFnZTAtMjAwNTA0MjEucGF0Y2gKQEAgLTEsOCAr MSw4IEBACi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgwMi9nZGIvZ2NvcmUuYworSW5kZXg6IGdk Yi03LjIuNTAuMjAxMTAxMDcvZ2RiL2djb3JlLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUw LjIwMDkwODAyLm9yaWcvZ2RiL2djb3JlLmMJMjAwOS0wOC0wMyAxMjoyNzo1NS4wMDAwMDAwMDAg KzAyMDAKLSsrKyBnZGItNi44LjUwLjIwMDkwODAyL2dkYi9nY29yZS5jCTIwMDktMDgtMDMgMTI6 Mjg6NTYuMDAwMDAwMDAwICswMjAwCi1AQCAtNDc5LDggKzQ3OSwxNCBAQCBnY29yZV9jb3B5X2Nh bGxiYWNrIChiZmQgKm9iZmQsIGFzZWN0aW9uCistLS0gZ2RiLTcuMi41MC4yMDExMDEwNy5vcmln L2dkYi9nY29yZS5jCTIwMTEtMDEtMDUgMjM6MjI6NDkuMDAwMDAwMDAwICswMTAwCisrKysgZ2Ri LTcuMi41MC4yMDExMDEwNy9nZGIvZ2NvcmUuYwkyMDExLTAxLTA3IDA5OjA0OjI4LjAwMDAwMDAw MCArMDEwMAorQEAgLTUzNCw4ICs1MzQsMTQgQEAgZ2NvcmVfY29weV9jYWxsYmFjayAoYmZkICpv YmZkLCBhc2VjdGlvbgogICAgICAgIGlmIChzaXplID4gdG90YWxfc2l6ZSkKICAJc2l6ZSA9IHRv dGFsX3NpemU7CiAgCkBAIC0xNiw1ICsxNiw1IEBAIEluZGV4OiBnZGItNi44LjUwLjIwMDkwODAy L2dkYi9nY29yZS5jCiArCQkgICAgICAiaWE2NCIpCiArCSAgICAgIHx8IGJmZF9zZWN0aW9uX3Zt YSAob2JmZCwgb3NlYykgIT0gMCkpCiAgCXsKLSAJICB3YXJuaW5nIChfKCJNZW1vcnkgcmVhZCBm YWlsZWQgZm9yIGNvcmVmaWxlIHNlY3Rpb24sICVzIGJ5dGVzIGF0ICVzLiIpLAotIAkJICAgcGxv bmdlc3QgKHNpemUpLAorIAkgIHdhcm5pbmcgKF8oIk1lbW9yeSByZWFkIGZhaWxlZCBmb3IgY29y ZWZpbGUgIgorIAkJICAgICAic2VjdGlvbiwgJXMgYnl0ZXMgYXQgJXMuIiksCgpkaWZmIC0tZ2l0 IGEvZ2RiLTYuMy1yZWFkbmV2ZXItMjAwNTA5MDcucGF0Y2ggYi9nZGItNi4zLXJlYWRuZXZlci0y MDA1MDkwNy5wYXRjaAppbmRleCA4MGUzMDY4Li44NmMzMWJmIDEwMDY0NAotLS0gYS9nZGItNi4z LXJlYWRuZXZlci0yMDA1MDkwNy5wYXRjaAorKysgYi9nZGItNi4zLXJlYWRuZXZlci0yMDA1MDkw Ny5wYXRjaApAQCAtMTEsMTAgKzExLDEwIEBACiAKICAgICAgICAgKiBnZGIudGV4aW5mbyAoRmls ZSBPcHRpb25zKTogRG9jdW1lbnQgLS1yZWFkbmV2ZXIuCiAKLUluZGV4OiBnZGItNy4yLjUwLjIw MTAxMjMxL2dkYi9kb2MvZ2RiLnRleGluZm8KK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA3L2dk Yi9kb2MvZ2RiLnRleGluZm8KID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4yLjUwLjIwMTAxMjMxLm9y aWcvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDEwLTEyLTI5IDA5OjAxOjMxLjAwMDAwMDAwMCArMDEw MAotKysrIGdkYi03LjIuNTAuMjAxMDEyMzEvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDExLTAxLTAx IDAwOjU0OjA3LjAwMDAwMDAwMCArMDEwMAorLS0tIGdkYi03LjIuNTAuMjAxMTAxMDcub3JpZy9n ZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTEtMDEtMDcgMDk6MDM6MzguMDAwMDAwMDAwICswMTAwCisr KysgZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTEtMDEtMDcgMDk6 MDQ6NDguMDAwMDAwMDAwICswMTAwCiBAQCAtMTAwNyw2ICsxMDA3LDEyIEBAIFJlYWQgZWFjaCBz eW1ib2wgZmlsZSdzIGVudGlyZSBzeW1ib2wgdGEKICB0aGUgZGVmYXVsdCwgd2hpY2ggaXMgdG8g cmVhZCBpdCBpbmNyZW1lbnRhbGx5IGFzIGl0IGlzIG5lZWRlZC4KICBUaGlzIG1ha2VzIHN0YXJ0 dXAgc2xvd2VyLCBidXQgbWFrZXMgZnV0dXJlIG9wZXJhdGlvbnMgZmFzdGVyLgpAQCAtMjgsMTEg KzI4LDExIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMjMxL2dkYi9kb2MvZ2RiLnRleGluZm8K ICBAZW5kIHRhYmxlCiAgCiAgQG5vZGUgTW9kZSBPcHRpb25zCi1JbmRleDogZ2RiLTcuMi41MC4y MDEwMTIzMS9nZGIvbWFpbi5jCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvbWFpbi5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMi41MC4yMDEwMTIzMS5vcmlnL2dkYi9tYWluLmMJMjAx MS0wMS0wMSAwMDo1MzowOS4wMDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4yLjUwLjIwMTAxMjMx L2dkYi9tYWluLmMJMjAxMS0wMS0wMSAwMDo1NDowNy4wMDAwMDAwMDAgKzAxMDAKLUBAIC0zOTEs NiArMzkxLDcgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKKy0tLSBnZGItNy4yLjUwLjIw MTEwMTA3Lm9yaWcvZ2RiL21haW4uYwkyMDExLTAxLTA3IDA5OjA0OjM5LjAwMDAwMDAwMCArMDEw MAorKysrIGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL21haW4uYwkyMDExLTAxLTA3IDA5OjA1OjAy LjAwMDAwMDAwMCArMDEwMAorQEAgLTM5NSw2ICszOTUsNyBAQCBjYXB0dXJlZF9tYWluICh2b2lk ICpkYXRhKQogICAgICAgIHsieGRiIiwgbm9fYXJndW1lbnQsICZ4ZGJfY29tbWFuZHMsIDF9LAog ICAgICAgIHsiZGJ4Iiwgbm9fYXJndW1lbnQsICZkYnhfY29tbWFuZHMsIDF9LAogICAgICAgIHsi cmVhZG5vdyIsIG5vX2FyZ3VtZW50LCAmcmVhZG5vd19zeW1ib2xfZmlsZXMsIDF9LApAQCAtNDAs MTkgKzQwLDE5IEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMjMxL2dkYi9tYWluLmMKICAgICAg ICB7InIiLCBub19hcmd1bWVudCwgJnJlYWRub3dfc3ltYm9sX2ZpbGVzLCAxfSwKICAgICAgICB7 InF1aWV0Iiwgbm9fYXJndW1lbnQsICZxdWlldCwgMX0sCiAgICAgICAgeyJxIiwgbm9fYXJndW1l bnQsICZxdWlldCwgMX0sCi1AQCAtOTkzLDYgKzk5NCw3IEBAIE9wdGlvbnM6XG5cblwKLSAgIGZw dXRzX3VuZmlsdGVyZWQgKF8oIiBmaWxlLlxuXAorQEAgLTEwNjAsNiArMTA2MSw3IEBAIE9wdGlv bnM6XG5cblwKKyAgIGZwdXRzX3VuZmlsdGVyZWQgKF8oIlwKICAgIC0tcXVpZXQgICAgICAgICAg ICBEbyBub3QgcHJpbnQgdmVyc2lvbiBudW1iZXIgb24gc3RhcnR1cC5cblwKICAgIC0tcmVhZG5v dyAgICAgICAgICBGdWxseSByZWFkIHN5bWJvbCBmaWxlcyBvbiBmaXJzdCBhY2Nlc3MuXG5cCiAr ICAtLXJlYWRuZXZlciAgICAgICAgRG8gbm90IHJlYWQgc3ltYm9sIGZpbGVzLlxuXAogICIpLCBz dHJlYW0pOwogICAgZnB1dHNfdW5maWx0ZXJlZCAoXygiXAogICAgLS1zZT1GSUxFICAgICAgICAg IFVzZSBGSUxFIGFzIHN5bWJvbCBmaWxlIGFuZCBleGVjdXRhYmxlIGZpbGUuXG5cCi1JbmRleDog Z2RiLTcuMi41MC4yMDEwMTIzMS9nZGIvc3ltZmlsZS5jCitJbmRleDogZ2RiLTcuMi41MC4yMDEx MDEwNy9nZGIvc3ltZmlsZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMi41MC4yMDEwMTIzMS5v cmlnL2dkYi9zeW1maWxlLmMJMjAxMC0xMS0yMyAwMTo1OTo1OC4wMDAwMDAwMDAgKzAxMDAKLSsr KyBnZGItNy4yLjUwLjIwMTAxMjMxL2dkYi9zeW1maWxlLmMJMjAxMS0wMS0wMSAwMDo1NDowNy4w MDAwMDAwMDAgKzAxMDAKLUBAIC04MCw2ICs4MCw3IEBAIHN0YXRpYyB2b2lkIGNsZWFyX3N5bXRh Yl91c2Vyc19jbGVhbnVwICgKKy0tLSBnZGItNy4yLjUwLjIwMTEwMTA3Lm9yaWcvZ2RiL3N5bWZp bGUuYwkyMDExLTAxLTA1IDIzOjIyOjUwLjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIuNTAu MjAxMTAxMDcvZ2RiL3N5bWZpbGUuYwkyMDExLTAxLTA3IDA5OjA0OjQ4LjAwMDAwMDAwMCArMDEw MAorQEAgLTgxLDYgKzgxLDcgQEAgc3RhdGljIHZvaWQgY2xlYXJfc3ltdGFiX3VzZXJzX2NsZWFu dXAgKAogIAogIC8qIEdsb2JhbCB2YXJpYWJsZXMgb3duZWQgYnkgdGhpcyBmaWxlICovCiAgaW50 IHJlYWRub3dfc3ltYm9sX2ZpbGVzOwkvKiBSZWFkIGZ1bGwgc3ltYm9scyBpbW1lZGlhdGVseSAq LwpAQCAtNjAsMTAgKzYwLDEwIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMjMxL2dkYi9zeW1m aWxlLmMKICAKICAvKiBFeHRlcm5hbCB2YXJpYWJsZXMgYW5kIGZ1bmN0aW9ucyByZWZlcmVuY2Vk LiAqLwogIAotSW5kZXg6IGdkYi03LjIuNTAuMjAxMDEyMzEvZ2RiL2R3YXJmMnJlYWQuYworSW5k ZXg6IGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL2R3YXJmMnJlYWQuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjIuNTAuMjAxMDEyMzEub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIwMTEtMDEtMDEgMDA6 NDE6NTEuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuMi41MC4yMDEwMTIzMS9nZGIvZHdhcmYy cmVhZC5jCTIwMTEtMDEtMDEgMDA6NTQ6MDcuMDAwMDAwMDAwICswMTAwCistLS0gZ2RiLTcuMi41 MC4yMDExMDEwNy5vcmlnL2dkYi9kd2FyZjJyZWFkLmMJMjAxMS0wMS0wNyAwOTowMzozOC4wMDAw MDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9kd2FyZjJyZWFkLmMJMjAx MS0wMS0wNyAwOTowNDo0OC4wMDAwMDAwMDAgKzAxMDAKIEBAIC01Nyw2ICs1Nyw3IEBACiAgI2lu Y2x1ZGUgInZlYy5oIgogICNpbmNsdWRlICJjLWxhbmcuaCIKQEAgLTcyLDcgKzcyLDcgQEAgSW5k ZXg6IGdkYi03LjIuNTAuMjAxMDEyMzEvZ2RiL2R3YXJmMnJlYWQuYwogIAogICNpbmNsdWRlIDxm Y250bC5oPgogICNpbmNsdWRlICJnZGJfc3RyaW5nLmgiCi1AQCAtMTM0NSw4ICsxMzQ2LDkgQEAg ZHdhcmYyX2hhc19pbmZvIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZQorQEAgLTEzNTAsOCArMTM1 MSw5IEBAIGR3YXJmMl9oYXNfaW5mbyAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUKICAgICAgICBi ZmRfbWFwX292ZXJfc2VjdGlvbnMgKG9iamZpbGUtPm9iZmQsIGR3YXJmMl9sb2NhdGVfc2VjdGlv bnMsIE5VTEwpOwogICAgICAgIGR3YXJmMl9wZXJfb2JqZmlsZS0+b2JqZmlsZSA9IG9iamZpbGU7 CiAgICAgIH0KQEAgLTg0LDEwICs4NCwxMCBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDEwMTIzMS9n ZGIvZHdhcmYycmVhZC5jCiAgfQogIAogIC8qIFdoZW4gbG9hZGluZyBzZWN0aW9ucywgd2UgY2Fu IGVpdGhlciBsb29rIGZvciAiLjxuYW1lPiIsIG9yIGZvcgotSW5kZXg6IGdkYi03LjIuNTAuMjAx MDEyMzEvZ2RiL3RvcC5oCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvdG9wLmgKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy4yLjUwLjIwMTAxMjMxLm9yaWcvZ2RiL3RvcC5oCTIwMTAtMTIt MjkgMDE6NTg6MTQuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuMi41MC4yMDEwMTIzMS9nZGIv dG9wLmgJMjAxMS0wMS0wMSAwMDo1NDoyMS4wMDAwMDAwMDAgKzAxMDAKKy0tLSBnZGItNy4yLjUw LjIwMTEwMTA3Lm9yaWcvZ2RiL3RvcC5oCTIwMTEtMDEtMDEgMTY6MzM6MTguMDAwMDAwMDAwICsw MTAwCisrKysgZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvdG9wLmgJMjAxMS0wMS0wNyAwOTowNDo0 OC4wMDAwMDAwMDAgKzAxMDAKIEBAIC02MSw2ICs2MSw3IEBAIGV4dGVybiB2b2lkIHNldF9wcm9t cHQgKGNoYXIgKik7CiAgCiAgLyogRnJvbSByYW5kb20gcGxhY2VzLiAgKi8KCmRpZmYgLS1naXQg YS9nZGItNi41LWJ6MjE4Mzc5LXNvbGliLXRyYW1wb2xpbmUtbG9va3VwLWxvY2stZml4LnBhdGNo IGIvZ2RiLTYuNS1iejIxODM3OS1zb2xpYi10cmFtcG9saW5lLWxvb2t1cC1sb2NrLWZpeC5wYXRj aAppbmRleCBiN2JiZTQyLi4yZTc4YTNlIDEwMDY0NAotLS0gYS9nZGItNi41LWJ6MjE4Mzc5LXNv bGliLXRyYW1wb2xpbmUtbG9va3VwLWxvY2stZml4LnBhdGNoCisrKyBiL2dkYi02LjUtYnoyMTgz Nzktc29saWItdHJhbXBvbGluZS1sb29rdXAtbG9jay1maXgucGF0Y2gKQEAgLTEsMTMgKzEsMTMg QEAKIGh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9 MjE4Mzc5CiAKIAotSW5kZXg6IGdkYi02LjguNTAuMjAwOTA4MDMvZ2RiL3N5bXRhYi5jCitJbmRl eDogZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvc3ltdGFiLmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ni44LjUwLjIwMDkwODAzLm9yaWcvZ2RiL3N5bXRhYi5jCTIwMDktMDgtMDMgMTY6MDk6MzYuMDAw MDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgwMy9nZGIvc3ltdGFiLmMJMjAwOS0w OC0wMyAxNjoxMzoxMy4wMDAwMDAwMDAgKzAyMDAKLUBAIC0yMjYxLDYgKzIyNjEsMTMgQEAgZmlu ZF9wY19zZWN0X2xpbmUgKENPUkVfQUREUiBwYywgc3RydWN0IAotIAkgIC8qIFNlZSBhYm92ZSBj b21tZW50IGFib3V0IHdoeSB3YXJuaW5nIGlzIGNvbW1lbnRlZCBvdXQgKi8KLSAJICAvKiB3YXJu aW5nICgiSW4gc3R1YiBmb3IgJXM7IHVuYWJsZSB0byBmaW5kIHJlYWwgZnVuY3Rpb24vbGluZSBp bmZvIiwgU1lNQk9MX0xJTktBR0VfTkFNRSAobXN5bWJvbCkpICovIDsKKy0tLSBnZGItNy4yLjUw LjIwMTEwMTA3Lm9yaWcvZ2RiL3N5bXRhYi5jCTIwMTEtMDEtMDcgMDk6MDM6MzguMDAwMDAwMDAw ICswMTAwCisrKysgZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvc3ltdGFiLmMJMjAxMS0wMS0wNyAw OTowNjozMi4wMDAwMDAwMDAgKzAxMDAKK0BAIC0yMDE0LDYgKzIwMTQsMTMgQEAgZmluZF9wY19z ZWN0X2xpbmUgKENPUkVfQUREUiBwYywgc3RydWN0IAorIAkgIC8qIHdhcm5pbmcgKCJJbiBzdHVi IGZvciAlczsgdW5hYmxlIHRvIGZpbmQgcmVhbCBmdW5jdGlvbi9saW5lIGluZm8iLAorIAkgICAg IFNZTUJPTF9MSU5LQUdFX05BTUUgKG1zeW1ib2wpKSAqLyA7CiAgCS8qIGZhbGwgdGhyb3VnaCAq LwogKwkvKiBgbXN5bWJvbCcgdHJhbXBvbGluZSBtYXkgYmUgbG9jYXRlZCBiZWZvcmUgaXRzIC50 ZXh0IHN5bWJvbAogKwkgICBidXQgdGhpcyB0ZXh0IHN5bWJvbCBtYXkgYmUgdGhlIGFkZHJlc3Mg d2Ugd2VyZSBsb29raW5nIGZvci4KCmRpZmYgLS1naXQgYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRl LWNvcmUtYXMtYXJnLnBhdGNoIGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1jb3JlLWFzLWFyZy5w YXRjaAppbmRleCBjOGI4ODgzLi5lNGE1NzY3IDEwMDY0NAotLS0gYS9nZGItNi42LWJ1aWxkaWQt bG9jYXRlLWNvcmUtYXMtYXJnLnBhdGNoCisrKyBiL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUtY29y ZS1hcy1hcmcucGF0Y2gKQEAgLTU4LDEwICs1OCwxMCBAQCBIdHRwOi8vc291cmNld2FyZS5vcmcv bWwvZ2RiLXBhdGNoZXMvMjAxMC0wMS9tc2cwMDUxNy5odG1sCiAJKiBleGVjLmMgKGV4ZWNfZmls ZV9hdHRhY2gpOiBQcmludCBhIG1vcmUgdXNlZnVsIGVycm9yIG1lc3NhZ2UgaWYgdGhlCiAJdXNl ciBkaWQgImdkYiBjb3JlIi4KIAotSW5kZXg6IGdkYi03LjIuNTAuMjAxMDEyMzEvZ2RiL2V4Y2Vw dGlvbnMuaAorSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL2V4Y2VwdGlvbnMuaAogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjIuNTAuMjAxMDEyMzEub3JpZy9nZGIvZXhjZXB0aW9ucy5oCTIw MTAtMDUtMDMgMDE6NTI6MTQuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuMi41MC4yMDEwMTIz MS9nZGIvZXhjZXB0aW9ucy5oCTIwMTEtMDEtMDEgMDE6MTA6NDQuMDAwMDAwMDAwICswMTAwCist LS0gZ2RiLTcuMi41MC4yMDExMDEwNy5vcmlnL2dkYi9leGNlcHRpb25zLmgJMjAxMS0wMS0wNSAy MzoyMjo0OC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9leGNl cHRpb25zLmgJMjAxMS0wMS0wNyAwOTowOToxOC4wMDAwMDAwMDAgKzAxMDAKIEBAIC03OCw2ICs3 OCw5IEBAIGVudW0gZXJyb3JzIHsKICAgIC8qIEZlYXR1cmUgaXMgbm90IHN1cHBvcnRlZCBpbiB0 aGlzIGNvcHkgb2YgR0RCLiAgKi8KICAgIFVOU1VQUE9SVEVEX0VSUk9SLApAQCAtNzIsMTAgKzcy LDEwIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMjMxL2dkYi9leGNlcHRpb25zLmgKICAgIC8q IEFkZCBtb3JlIGVycm9ycyBoZXJlLiAgKi8KICAgIE5SX0VSUk9SUwogIH07Ci1JbmRleDogZ2Ri LTcuMi41MC4yMDEwMTIzMS9nZGIvZXhlYy5jCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDEwNy9n ZGIvZXhlYy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuMi41MC4yMDEwMTIzMS5vcmlnL2dkYi9l eGVjLmMJMjAxMC0wOC0zMSAyMDowODo0My4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNy4yLjUw LjIwMTAxMjMxL2dkYi9leGVjLmMJMjAxMS0wMS0wMSAwMToxMDo0NC4wMDAwMDAwMDAgKzAxMDAK Ky0tLSBnZGItNy4yLjUwLjIwMTEwMTA3Lm9yaWcvZ2RiL2V4ZWMuYwkyMDExLTAxLTA1IDIzOjIy OjQ4LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL2V4ZWMuYwky MDExLTAxLTA3IDA5OjA5OjE4LjAwMDAwMDAwMCArMDEwMAogQEAgLTM0LDYgKzM0LDcgQEAKICAj aW5jbHVkZSAiYXJjaC11dGlscy5oIgogICNpbmNsdWRlICJnZGJ0aHJlYWQuaCIKQEAgLTExNSwx MSArMTE1LDExIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMjMxL2dkYi9leGVjLmMKICAJfQog IAogICAgICAgIC8qIEZJWE1FIC0gVGhpcyBzaG91bGQgb25seSBiZSBydW4gZm9yIFJTNjAwMCwg YnV0IHRoZSBpZmRlZiBpcyBhIHBvb3IKLUluZGV4OiBnZGItNy4yLjUwLjIwMTAxMjMxL2dkYi9t YWluLmMKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9tYWluLmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy4yLjUwLjIwMTAxMjMxLm9yaWcvZ2RiL21haW4uYwkyMDExLTAxLTAxIDAxOjAw OjU0LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjIuNTAuMjAxMDEyMzEvZ2RiL21haW4uYwky MDExLTAxLTAxIDAxOjExOjQ4LjAwMDAwMDAwMCArMDEwMAotQEAgLTI0Miw2ICsyNDIsMzYgQEAg Y2FwdHVyZWRfY29tbWFuZF9sb29wICh2b2lkICpkYXRhKQorLS0tIGdkYi03LjIuNTAuMjAxMTAx MDcub3JpZy9nZGIvbWFpbi5jCTIwMTEtMDEtMDcgMDk6MDU6MDIuMDAwMDAwMDAwICswMTAwCisr KysgZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvbWFpbi5jCTIwMTEtMDEtMDcgMDk6MTA6MTQuMDAw MDAwMDAwICswMTAwCitAQCAtMjQzLDYgKzI0MywzNiBAQCBjYXB0dXJlZF9jb21tYW5kX2xvb3Ag KHZvaWQgKmRhdGEpCiAgICByZXR1cm4gMTsKICB9CiAgCkBAIC0xNTYsNyArMTU2LDcgQEAgSW5k ZXg6IGdkYi03LjIuNTAuMjAxMDEyMzEvZ2RiL21haW4uYwogIHN0YXRpYyBpbnQKICBjYXB0dXJl ZF9tYWluICh2b2lkICpkYXRhKQogIHsKLUBAIC02ODgsNiArNzE4LDggQEAgY2FwdHVyZWRfbWFp biAodm9pZCAqZGF0YSkKK0BAIC03MjYsNiArNzU2LDggQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAq ZGF0YSkKICAJewogIAkgIHN5bWFyZyA9IGFyZ3Zbb3B0aW5kXTsKICAJICBleGVjYXJnID0gYXJn dltvcHRpbmRdOwpAQCAtMTY1LDcgKzE2NSw3IEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMjMx L2dkYi9tYWluLmMKICAJICBvcHRpbmQrKzsKICAJfQogIAotQEAgLTgyOCwxMCArODYwLDI1IEBA IEV4Y2VzcyBjb21tYW5kIGxpbmUgYXJndW1lbnRzIGlnbm9yZWQuICgKK0BAIC04NjcsMTEgKzg5 OSwyNSBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQogICAgICAgICYmIHN5bWFyZyAhPSBO VUxMCiAgICAgICAgJiYgc3RyY21wIChleGVjYXJnLCBzeW1hcmcpID09IDApCiAgICAgIHsKQEAg LTE4NCwxMiArMTg0LDEzIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTAxMjMxL2dkYi9tYWluLmMK ICAgICAgICAvKiBUaGUgZXhlYyBmaWxlIGFuZCB0aGUgc3ltYm9sLWZpbGUgYXJlIHRoZSBzYW1l LiAgSWYgd2UgY2FuJ3QKICAgICAgICAgICBvcGVuIGl0LCBiZXR0ZXIgb25seSBwcmludCBvbmUg ZXJyb3IgbWVzc2FnZS4KIC0gICAgICAgICBjYXRjaF9jb21tYW5kX2Vycm9ycyByZXR1cm5zIG5v bi16ZXJvIG9uIHN1Y2Nlc3MhICAqLwotLSAgICAgIGlmIChjYXRjaF9jb21tYW5kX2Vycm9ycyAo ZXhlY19maWxlX2F0dGFjaCwgZXhlY2FyZywgIWJhdGNoX2ZsYWcsIFJFVFVSTl9NQVNLX0FMTCkp CistICAgICAgaWYgKGNhdGNoX2NvbW1hbmRfZXJyb3JzIChleGVjX2ZpbGVfYXR0YWNoLCBleGVj YXJnLAorLQkJCQkhYmF0Y2hfZmxhZywgUkVUVVJOX01BU0tfQUxMKSkKICsgICAgICAgICBjYXRj aF9jb21tYW5kX2Vycm9ycyByZXR1cm5zIG5vbi16ZXJvIG9uIHN1Y2Nlc3MhCiArCSBEbyBub3Qg bG9hZCBFWEVDQVJHIGFzIGEgc3ltYm9sIGZpbGUgaWYgaXQgaGFzIGJlZW4gYWxyZWFkeSBwcm9j ZXNzZWQKICsJIGFzIGEgY29yZSBmaWxlLiAgKi8KICsgICAgICBpZiAoY2F0Y2hfY29tbWFuZF9l cnJvcnMgKGZ1bmMsIGV4ZWNhcmcsICFiYXRjaF9mbGFnLCBSRVRVUk5fTUFTS19BTEwpCiArCSAg JiYgY29yZV9iZmQgPT0gTlVMTCkKLSAJY2F0Y2hfY29tbWFuZF9lcnJvcnMgKHN5bWJvbF9maWxl X2FkZF9tYWluLCBzeW1hcmcsICFiYXRjaF9mbGFnLCBSRVRVUk5fTUFTS19BTEwpOworIAljYXRj aF9jb21tYW5kX2Vycm9ycyAoc3ltYm9sX2ZpbGVfYWRkX21haW4sIHN5bWFyZywKKyAJCQkgICAg ICAhYmF0Y2hfZmxhZywgUkVUVVJOX01BU0tfQUxMKTsKICAgICAgfQotICAgZWxzZQoKZGlmZiAt LWdpdCBhL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUucGF0Y2ggYi9nZGItNi42LWJ1aWxkaWQtbG9j YXRlLnBhdGNoCmluZGV4IDE5Y2I4YWQuLmUzNTQ0N2MgMTAwNjQ0Ci0tLSBhL2dkYi02LjYtYnVp bGRpZC1sb2NhdGUucGF0Y2gKKysrIGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS5wYXRjaApAQCAt MSw3ICsxLDcgQEAKLUluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA0L2dkYi9jb3JlbG93LmMKK0lu ZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9jb3JlbG93LmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy4yLjUwLjIwMTEwMTA0Lm9yaWcvZ2RiL2NvcmVsb3cuYwkyMDExLTAxLTAxIDE2OjMyOjU5 LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjIuNTAuMjAxMTAxMDQvZ2RiL2NvcmVsb3cuYwky MDExLTAxLTA0IDA2OjE1OjQ5LjAwMDAwMDAwMCArMDEwMAorLS0tIGdkYi03LjIuNTAuMjAxMTAx MDcub3JpZy9nZGIvY29yZWxvdy5jCTIwMTEtMDEtMDUgMjM6MjI6NDcuMDAwMDAwMDAwICswMTAw CisrKysgZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvY29yZWxvdy5jCTIwMTEtMDEtMDcgMDk6MDc6 MDEuMDAwMDAwMDAwICswMTAwCiBAQCAtNDcsNiArNDcsOSBAQAogICNpbmNsdWRlICJmaWxlbmFt ZXMuaCIKICAjaW5jbHVkZSAicHJvZ3NwYWNlLmgiCkBAIC0xMiw3ICsxMiw3IEBAIEluZGV4OiBn ZGItNy4yLjUwLjIwMTEwMTA0L2dkYi9jb3JlbG93LmMKICAKICAKICAjaWZuZGVmIE9fTEFSR0VG SUxFCi1AQCAtMjc3LDYgKzI4MCw1MiBAQCBhZGRfdG9fdGhyZWFkX2xpc3QgKGJmZCAqYWJmZCwg YXNlY3Rpb24gCitAQCAtMjc4LDYgKzI4MSw1MiBAQCBhZGRfdG9fdGhyZWFkX2xpc3QgKGJmZCAq YWJmZCwgYXNlY3Rpb24gCiAgICAgIGluZmVyaW9yX3B0aWQgPSBwdGlkOwkJCS8qIFllcywgbWFr ZSBpdCBjdXJyZW50LiAgKi8KICB9CiAgCkBAIC02NSw3ICs2NSw3IEBAIEluZGV4OiBnZGItNy4y LjUwLjIwMTEwMTA0L2dkYi9jb3JlbG93LmMKICAvKiBUaGlzIHJvdXRpbmUgb3BlbnMgYW5kIHNl dHMgdXAgdGhlIGNvcmUgZmlsZSBiZmQuICAqLwogIAogIHN0YXRpYyB2b2lkCi1AQCAtMzc3LDYg KzQyNiwxMiBAQCBjb3JlX29wZW4gKGNoYXIgKmZpbGVuYW1lLCBpbnQgZnJvbV90dHkpCitAQCAt Mzc5LDYgKzQyOCwxMiBAQCBjb3JlX29wZW4gKGNoYXIgKmZpbGVuYW1lLCBpbnQgZnJvbV90dHkp CiAgICBwdXNoX3RhcmdldCAoJmNvcmVfb3BzKTsKICAgIGRpc2NhcmRfY2xlYW51cHMgKG9sZF9j aGFpbik7CiAgCkBAIC03OCw3ICs3OCw3IEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA0L2dk Yi9jb3JlbG93LmMKICAgIC8qIERvIHRoaXMgYmVmb3JlIGFja25vd2xlZGdpbmcgdGhlIGluZmVy aW9yLCBzbyBpZgogICAgICAgcG9zdF9jcmVhdGVfaW5mZXJpb3IgdGhyb3dzIChjYW4gaGFwcGVu IGVhc2lsbHkgaWYgeW91J3JlIGxvYWRpbmcKICAgICAgIGEgY29yZSBmaWxlIHdpdGggdGhlIHdy b25nIGV4ZWMpLCB3ZSBhcmVuJ3QgbGVmdCB3aXRoIHRocmVhZHMKLUBAIC05MzAsNCArOTg1LDEx IEBAIF9pbml0aWFsaXplX2NvcmVsb3cgKHZvaWQpCitAQCAtOTMyLDQgKzk4NywxMSBAQCBfaW5p dGlhbGl6ZV9jb3JlbG93ICh2b2lkKQogICAgaW5pdF9jb3JlX29wcyAoKTsKICAKICAgIGFkZF90 YXJnZXQgKCZjb3JlX29wcyk7CkBAIC05MCwxMSArOTAsMTEgQEAgSW5kZXg6IGdkYi03LjIuNTAu MjAxMTAxMDQvZ2RiL2NvcmVsb3cuYwogKwkJCSAgIE5VTEwsIE5VTEwsIE5VTEwsCiArCQkJICAg JnNldGxpc3QsICZzaG93bGlzdCk7CiAgfQotSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMDQvZ2Ri L2RvYy9nZGIudGV4aW5mbworSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL2RvYy9nZGIu dGV4aW5mbwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjIuNTAuMjAxMTAxMDQub3JpZy9nZGIvZG9j L2dkYi50ZXhpbmZvCTIwMTEtMDEtMDQgMDY6MTU6MDIuMDAwMDAwMDAwICswMTAwCi0rKysgZ2Ri LTcuMi41MC4yMDExMDEwNC9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTEtMDEtMDQgMDY6MTU6MTQu MDAwMDAwMDAwICswMTAwCi1AQCAtMTUyNjcsNiArMTUyNjcsMjcgQEAgaW5mb3JtYXRpb24gZmls ZXMuCistLS0gZ2RiLTcuMi41MC4yMDExMDEwNy5vcmlnL2dkYi9kb2MvZ2RiLnRleGluZm8JMjAx MS0wMS0wNyAwOTowNDo0OC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTA3 L2dkYi9kb2MvZ2RiLnRleGluZm8JMjAxMS0wMS0wNyAwOTowNzowMS4wMDAwMDAwMDAgKzAxMDAK K0BAIC0xNTI3Nyw2ICsxNTI3NywyNyBAQCBpbmZvcm1hdGlvbiBmaWxlcy4KICAKICBAZW5kIHRh YmxlCiAgCkBAIC0xMjIsMTAgKzEyMiwxMCBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDExMDEwNC9n ZGIvZG9jL2dkYi50ZXhpbmZvCiAgQGNpbmRleCBAY29kZXsuZ251X2RlYnVnbGlua30gc2VjdGlv bnMKICBAY2luZGV4IGRlYnVnIGxpbmsgc2VjdGlvbnMKICBBIGRlYnVnIGxpbmsgaXMgYSBzcGVj aWFsIHNlY3Rpb24gb2YgdGhlIGV4ZWN1dGFibGUgZmlsZSBuYW1lZAotSW5kZXg6IGdkYi03LjIu NTAuMjAxMTAxMDQvZ2RiL3NvbGliLXN2cjQuYworSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMDcv Z2RiL3NvbGliLXN2cjQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjIuNTAuMjAxMTAxMDQub3Jp Zy9nZGIvc29saWItc3ZyNC5jCTIwMTEtMDEtMDQgMDY6MTU6MDEuMDAwMDAwMDAwICswMTAwCi0r KysgZ2RiLTcuMi41MC4yMDExMDEwNC9nZGIvc29saWItc3ZyNC5jCTIwMTEtMDEtMDQgMDY6MTU6 MTQuMDAwMDAwMDAwICswMTAwCistLS0gZ2RiLTcuMi41MC4yMDExMDEwNy5vcmlnL2dkYi9zb2xp Yi1zdnI0LmMJMjAxMS0wMS0wNyAwOTowMzozOC4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4y LjUwLjIwMTEwMTA3L2dkYi9zb2xpYi1zdnI0LmMJMjAxMS0wMS0wNyAwOTowNzowMS4wMDAwMDAw MDAgKzAxMDAKIEBAIC0xMTc5LDkgKzExNzksNDkgQEAgc3ZyNF9jdXJyZW50X3NvcyAodm9pZCkK ICAJCSAgICAgc2FmZV9zdHJlcnJvciAoZXJyY29kZSkpOwogIAkgIGVsc2UKQEAgLTE3OSwxMCAr MTc5LDEwIEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA0L2dkYi9zb2xpYi1zdnI0LmMKICAJ ICAgIH0KICAJICB4ZnJlZSAoYnVmZmVyKTsKICAKLUluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA0 L2dkYi9lbGZyZWFkLmMKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9lbGZyZWFkLmMK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy4yLjUwLjIwMTEwMTA0Lm9yaWcvZ2RiL2VsZnJlYWQuYwky MDExLTAxLTA0IDA2OjE1OjAxLjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjIuNTAuMjAxMTAx MDQvZ2RiL2VsZnJlYWQuYwkyMDExLTAxLTA0IDA2OjE1OjE0LjAwMDAwMDAwMCArMDEwMAorLS0t IGdkYi03LjIuNTAuMjAxMTAxMDcub3JpZy9nZGIvZWxmcmVhZC5jCTIwMTEtMDEtMDcgMDk6MDM6 MzguMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvZWxmcmVhZC5j CTIwMTEtMDEtMDcgMDk6MDc6MzMuMDAwMDAwMDAwICswMTAwCiBAQCAtMzgsNiArMzgsMTAgQEAK ICAjaW5jbHVkZSAiZGVtYW5nbGUuaCIKICAjaW5jbHVkZSAicHN5bXByaXYuaCIKQEAgLTE5NCw3 ICsxOTQsNyBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDExMDEwNC9nZGIvZWxmcmVhZC5jCiAgCiAg ZXh0ZXJuIHZvaWQgX2luaXRpYWxpemVfZWxmcmVhZCAodm9pZCk7CiAgCi1AQCAtODIxLDE2ICs4 MjUsNjUgQEAgcmVzb2x2ZV9nbnVfaWZ1bmMgKGNvbnN0IGNoYXIgKmZ1bmN0aW9uXworQEAgLTgy MywxNiArODI3LDY1IEBAIHJlc29sdmVfZ251X2lmdW5jIChjb25zdCBjaGFyICpmdW5jdGlvbl8K ICAgIHJldHVybiAwOwogIH0KICAKQEAgLTI2Miw3ICsyNjIsNyBAQCBJbmRleDogZ2RiLTcuMi41 MC4yMDExMDEwNC9nZGIvZWxmcmVhZC5jCiAgewogICAgc3RydWN0IGJ1aWxkX2lkICpyZXR2YWw7 CiAgCi1AQCAtODQ2LDYgKzg5OSwzNDggQEAgYnVpbGRfaWRfYmZkX2dldCAoYmZkICphYmZkKQor QEAgLTg0OCw2ICs5MDEsMzQ4IEBAIGJ1aWxkX2lkX2JmZF9nZXQgKGJmZCAqYWJmZCkKICAgIHJl dHVybiByZXR2YWw7CiAgfQogIApAQCAtNjExLDcgKzYxMSw3IEBAIEluZGV4OiBnZGItNy4yLjUw LjIwMTEwMTA0L2dkYi9lbGZyZWFkLmMKICAvKiBSZXR1cm4gaWYgRklMRU5BTUUgaGFzIE5UX0dO VV9CVUlMRF9JRCBtYXRjaGluZyB0aGUgQ0hFQ0sgdmFsdWUuICAqLwogIAogIHN0YXRpYyBpbnQK LUBAIC04NjAsNyArMTI1NSw3IEBAIGJ1aWxkX2lkX3ZlcmlmeSAoY29uc3QgY2hhciAqZmlsZW5h bWUsIHMKK0BAIC04NjIsNyArMTI1Nyw3IEBAIGJ1aWxkX2lkX3ZlcmlmeSAoY29uc3QgY2hhciAq ZmlsZW5hbWUsIHMKICAgIGlmIChhYmZkID09IE5VTEwpCiAgICAgIHJldHVybiAwOwogIApAQCAt NjIwLDcgKzYyMCw3IEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA0L2dkYi9lbGZyZWFkLmMK ICAKICAgIGlmIChmb3VuZCA9PSBOVUxMKQogICAgICB3YXJuaW5nIChfKCJGaWxlIFwiJXNcIiBo YXMgbm8gYnVpbGQtaWQsIGZpbGUgc2tpcHBlZCIpLCBmaWxlbmFtZSk7Ci1AQCAtODc3LDE0ICsx MjcyLDE2IEBAIGJ1aWxkX2lkX3ZlcmlmeSAoY29uc3QgY2hhciAqZmlsZW5hbWUsIHMKK0BAIC04 ODAsMTQgKzEyNzUsMTYgQEAgYnVpbGRfaWRfdmVyaWZ5IChjb25zdCBjaGFyICpmaWxlbmFtZSwg cwogICAgcmV0dXJuIHJldHZhbDsKICB9CiAgCkBAIC02NDEsNyArNjQxLDcgQEAgSW5kZXg6IGdk Yi03LjIuNTAuMjAxMTAxMDQvZ2RiL2VsZnJlYWQuYwogIAogICAgLyogS2VlcCBiYWNrd2FyZCBj b21wYXRpYmlsaXR5IHNvIHRoYXQgREVCVUdfRklMRV9ESVJFQ1RPUlkgYmVpbmcgIiIgd2lsbAog ICAgICAgY2F1c2UgIi8uYnVpbGQtaWQvLi4uIiBsb29rdXBzLiAgKi8KLUBAIC05MTUsNyArMTMx MiwxMCBAQCBidWlsZF9pZF90b19kZWJ1Z19maWxlbmFtZSAoc3RydWN0IGJ1aWxkCitAQCAtOTE4 LDcgKzEzMTUsMTAgQEAgYnVpbGRfaWRfdG9fZGVidWdfZmlsZW5hbWUgKHN0cnVjdCBidWlsZAog IAkqcysrID0gJy8nOwogICAgICAgIHdoaWxlIChzaXplLS0gPiAwKQogIAlzICs9IHNwcmludGYg KHMsICIlMDJ4IiwgKHVuc2lnbmVkKSAqZGF0YSsrKTsKQEAgLTY1Myw3ICs2NTMsNyBAQCBJbmRl eDogZ2RiLTcuMi41MC4yMDExMDEwNC9nZGIvZWxmcmVhZC5jCiAgCiAgICAgICAgLyogbHJlYWxw YXRoKCkgaXMgZXhwZW5zaXZlIGV2ZW4gZm9yIHRoZSB1c3VhbGx5IG5vbi1leGlzdGVudCBmaWxl cy4gICovCiAgICAgICAgaWYgKGFjY2VzcyAobGluaywgRl9PSykgPT0gMCkKLUBAIC05MjgsMjYg KzEzMjgsMjAxIEBAIGJ1aWxkX2lkX3RvX2RlYnVnX2ZpbGVuYW1lIChzdHJ1Y3QgYnVpbGQKK0BA IC05MzEsMjYgKzEzMzEsMjAxIEBAIGJ1aWxkX2lkX3RvX2RlYnVnX2ZpbGVuYW1lIChzdHJ1Y3Qg YnVpbGQKICAJfQogIAogICAgICAgIGlmIChyZXR2YWwgIT0gTlVMTCkKQEAgLTg1OSw3ICs4NTks NyBAQCBJbmRleDogZ2RiLTcuMi41MC4yMDExMDEwNC9nZGIvZWxmcmVhZC5jCiAgICAgICAgeGZy ZWUgKGJ1aWxkX2lkKTsKICAgICAgICAvKiBQcmV2ZW50IGxvb3Bpbmcgb24gYSBzdHJpcHBlZCAu ZGVidWcgZmlsZS4gICovCiAgICAgICAgaWYgKGJ1aWxkX2lkX25hbWUgIT0gTlVMTCAmJiBzdHJj bXAgKGJ1aWxkX2lkX25hbWUsIG9iamZpbGUtPm5hbWUpID09IDApCi1AQCAtOTU3LDcgKzE1MzIs NyBAQCBmaW5kX3NlcGFyYXRlX2RlYnVnX2ZpbGVfYnlfYnVpbGRpZCAoc3RyCitAQCAtOTYwLDcg KzE1MzUsNyBAQCBmaW5kX3NlcGFyYXRlX2RlYnVnX2ZpbGVfYnlfYnVpbGRpZCAoc3RyCiAgCSAg eGZyZWUgKGJ1aWxkX2lkX25hbWUpOwogIAl9CiAgICAgICAgZWxzZSBpZiAoYnVpbGRfaWRfbmFt ZSAhPSBOVUxMKQpAQCAtODY4LDggKzg2OCw4IEBAIEluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA0 L2dkYi9lbGZyZWFkLmMKICAgICAgfQogICAgcmV0dXJuIE5VTEw7CiAgfQotQEAgLTExMzgsOSAr MTcxMywxMCBAQCBlbGZfc3ltZmlsZV9yZWFkIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsCi0gICAg ICBgLmdudV9kZWJ1Z2xpbmsnIG1heSBubyBsb25nZXIgYmUgcHJlc2VudCB3aXRoIGAubm90ZS5n bnUuYnVpbGQtaWQnLiAgKi8KK0BAIC0xMTQ4LDkgKzE3MjMsMTAgQEAgZWxmX3N5bWZpbGVfcmVh ZCAoc3RydWN0IG9iamZpbGUgKm9iamZpbAorICAgICAgYC5ub3RlLmdudS5idWlsZC1pZCcuICAq LwogICAgaWYgKCFvYmpmaWxlX2hhc19wYXJ0aWFsX3N5bWJvbHMgKG9iamZpbGUpKQogICAgICB7 CiAtICAgICAgY2hhciAqZGVidWdmaWxlOwpAQCAtODgxLDcgKzg4MSw3IEBAIEluZGV4OiBnZGIt Ny4yLjUwLjIwMTEwMTA0L2dkYi9lbGZyZWFkLmMKICAKICAgICAgICBpZiAoZGVidWdmaWxlID09 IE5VTEwpCiAgCWRlYnVnZmlsZSA9IGZpbmRfc2VwYXJhdGVfZGVidWdfZmlsZV9ieV9kZWJ1Z2xp bmsgKG9iamZpbGUpOwotQEAgLTExNTIsNiArMTcyOCwxMiBAQCBlbGZfc3ltZmlsZV9yZWFkIChz dHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsCitAQCAtMTE2Miw2ICsxNzM4LDEyIEBAIGVsZl9zeW1maWxl X3JlYWQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWwKICAJICBzeW1ib2xfZmlsZV9hZGRfc2VwYXJh dGUgKGFiZmQsIHN5bWZpbGVfZmxhZ3MsIG9iamZpbGUpOwogIAkgIHhmcmVlIChkZWJ1Z2ZpbGUp OwogIAl9CkBAIC04OTQsNyArODk0LDcgQEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMDQvZ2Ri L2VsZnJlYWQuYwogICAgICB9CiAgfQogIAotQEAgLTEzMjcsNCArMTkwOSwxNiBAQCB2b2lkCitA QCAtMTMzNyw0ICsxOTE5LDE2IEBAIHZvaWQKICBfaW5pdGlhbGl6ZV9lbGZyZWFkICh2b2lkKQog IHsKICAgIGFkZF9zeW10YWJfZm5zICgmZWxmX3N5bV9mbnMpOwpAQCAtOTExLDExICs5MTEsMTEg QEAgSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMDQvZ2RiL2VsZnJlYWQuYwogKwogKyAgb2JzZXJ2 ZXJfYXR0YWNoX2V4ZWN1dGFibGVfY2hhbmdlZCAoZGVidWdfcHJpbnRfZXhlY3V0YWJsZV9jaGFu Z2VkKTsKICB9Ci1JbmRleDogZ2RiLTcuMi41MC4yMDExMDEwNC9nZGIvc3ltZmlsZS5oCitJbmRl eDogZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvc3ltZmlsZS5oCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuMi41MC4yMDExMDEwNC5vcmlnL2dkYi9zeW1maWxlLmgJMjAxMS0wMS0wMSAxNjozMzoxNi4w MDAwMDAwMDAgKzAxMDAKLSsrKyBnZGItNy4yLjUwLjIwMTEwMTA0L2dkYi9zeW1maWxlLmgJMjAx MS0wMS0wNCAwNjoxNToxNC4wMDAwMDAwMDAgKzAxMDAKLUBAIC01NTMsNiArNTUzLDEzIEBAIHZv aWQgZnJlZV9zeW1maWxlX3NlZ21lbnRfZGF0YSAoc3RydWN0IHMKKy0tLSBnZGItNy4yLjUwLjIw MTEwMTA3Lm9yaWcvZ2RiL3N5bWZpbGUuaAkyMDExLTAxLTA1IDIzOjIyOjUzLjAwMDAwMDAwMCAr MDEwMAorKysrIGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL3N5bWZpbGUuaAkyMDExLTAxLTA3IDA5 OjA3OjAxLjAwMDAwMDAwMCArMDEwMAorQEAgLTU1NCw2ICs1NTQsMTMgQEAgdm9pZCBmcmVlX3N5 bWZpbGVfc2VnbWVudF9kYXRhIChzdHJ1Y3QgcwogIAogIGV4dGVybiBzdHJ1Y3QgY2xlYW51cCAq aW5jcmVtZW50X3JlYWRpbmdfc3ltdGFiICh2b2lkKTsKICAKQEAgLTkyOSwxMSArOTI5LDExIEBA IEluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA0L2dkYi9zeW1maWxlLmgKICAvKiBGcm9tIGR3YXJm MnJlYWQuYyAqLwogIAogIGV4dGVybiBpbnQgZHdhcmYyX2hhc19pbmZvIChzdHJ1Y3Qgb2JqZmls ZSAqKTsKLUluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA0L2dkYi90ZXN0c3VpdGUvbGliL2dkYi5l eHAKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy4yLjUwLjIwMTEwMTA0Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9s aWIvZ2RiLmV4cAkyMDExLTAxLTA0IDA2OjE1OjAxLjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03 LjIuNTAuMjAxMTAxMDQvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAkyMDExLTAxLTA0IDA2OjE1 OjE0LjAwMDAwMDAwMCArMDEwMAotQEAgLTEzOTAsNiArMTM5MCwxNiBAQCBwcm9jIGRlZmF1bHRf Z2RiX3N0YXJ0IHsgfSB7CistLS0gZ2RiLTcuMi41MC4yMDExMDEwNy5vcmlnL2dkYi90ZXN0c3Vp dGUvbGliL2dkYi5leHAJMjAxMS0wMS0wNyAwOTowMzozOC4wMDAwMDAwMDAgKzAxMDAKKysrKyBn ZGItNy4yLjUwLjIwMTEwMTA3L2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAJMjAxMS0wMS0wNyAw OTowNzowMS4wMDAwMDAwMDAgKzAxMDAKK0BAIC0xMzkxLDYgKzEzOTEsMTYgQEAgcHJvYyBkZWZh dWx0X2dkYl9zdGFydCB7IH0gewogIAkgICAgd2FybmluZyAiQ291bGRuJ3Qgc2V0IHRoZSB3aWR0 aCB0byAwLiIKICAJfQogICAgICB9CkBAIC05NTAsMTAgKzk1MCwxMCBAQCBJbmRleDogZ2RiLTcu Mi41MC4yMDExMDEwNC9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCiAgICAgIHJldHVybiAwOwog IH0KICAKLUluZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA0L2dkYi90ZXN0c3VpdGUvbGliL21pLXN1 cHBvcnQuZXhwCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvdGVzdHN1aXRlL2xpYi9t aS1zdXBwb3J0LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjIuNTAuMjAxMTAxMDQub3JpZy9n ZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAkyMDExLTAxLTAxIDE2OjMzOjUyLjAwMDAw MDAwMCArMDEwMAotKysrIGdkYi03LjIuNTAuMjAxMTAxMDQvZ2RiL3Rlc3RzdWl0ZS9saWIvbWkt c3VwcG9ydC5leHAJMjAxMS0wMS0wNCAwNjoxNToxNC4wMDAwMDAwMDAgKzAxMDAKKy0tLSBnZGIt Ny4yLjUwLjIwMTEwMTA3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAJMjAx MS0wMS0wMSAxNjozMzo1Mi4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTA3 L2dkYi90ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCTIwMTEtMDEtMDcgMDk6MDc6MDEuMDAw MDAwMDAwICswMTAwCiBAQCAtMjIxLDYgKzIyMSwxNiBAQCBwcm9jIGRlZmF1bHRfbWlfZ2RiX3N0 YXJ0IHsgYXJncyB9IHsKICAJICAgIH0KICAgICAgCX0KQEAgLTk3MSwxMSArOTcxLDExIEBAIElu ZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA0L2dkYi90ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQuZXhw CiAgCiAgICAgIGRldGVjdF9hc3luYwogIAotSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMDQvZ2Ri L29iamZpbGVzLmgKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9vYmpmaWxlcy5oCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuMi41MC4yMDExMDEwNC5vcmlnL2dkYi9vYmpmaWxlcy5oCTIw MTEtMDEtMDEgMTY6MzM6MTIuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuMi41MC4yMDExMDEw NC9nZGIvb2JqZmlsZXMuaAkyMDExLTAxLTA0IDA2OjE1OjE0LjAwMDAwMDAwMCArMDEwMAotQEAg LTQzMyw2ICs0MzMsMTAgQEAgc3RydWN0IG9iamZpbGUKKy0tLSBnZGItNy4yLjUwLjIwMTEwMTA3 Lm9yaWcvZ2RiL29iamZpbGVzLmgJMjAxMS0wMS0wNSAyMzoyMjo0OS4wMDAwMDAwMDAgKzAxMDAK KysrKyBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9vYmpmaWxlcy5oCTIwMTEtMDEtMDcgMDk6MDc6 MDEuMDAwMDAwMDAwICswMTAwCitAQCAtNDM0LDYgKzQzNCwxMCBAQCBzdHJ1Y3Qgb2JqZmlsZQog IAogICNkZWZpbmUgT0JKRl9VU0VSTE9BREVECSgxIDw8IDMpCS8qIFVzZXIgbG9hZGVkICovCiAg CgpkaWZmIC0tZ2l0IGEvZ2RiLWFyY2hlci5wYXRjaCBiL2dkYi1hcmNoZXIucGF0Y2gKaW5kZXgg YjhlNDdhOS4uNjMyMDRkNCAxMDA2NDQKLS0tIGEvZ2RiLWFyY2hlci5wYXRjaAorKysgYi9nZGIt YXJjaGVyLnBhdGNoCkBAIC0yLDE3ICsyLDQ0IEBAIGh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9nZGIv d2lraS9Qcm9qZWN0QXJjaGVyCiBodHRwOi8vc291cmNld2FyZS5vcmcvZ2RiL3dpa2kvQXJjaGVy QnJhbmNoTWFuYWdlbWVudAogCiBHSVQgc25hcHNob3Q6Ci1jb21taXQgMmJlNjEzZWJlZmUzZjNj MmE1YmIzMjljMjA3ZDQzNTAyNGFmN2EyYgorY29tbWl0IGYwNmFjZmRlNGNjNmRmMjFkNGYzNDU0 N2U1ZGUxYTAxNzBlN2IyNjMKIAogYnJhbmNoIGBhcmNoZXInIC0gdGhlIG1lcmdlIG9mIGJyYW5j aGVzOgogYXJjaGVyLWphbmtyYXRvY2h2aWwtdmxhCiBhcmNoZXItamFua3JhdG9jaHZpbC13YXRj aHBvaW50MwogYXJjaGVyLWphbmtyYXRvY2h2aWwtaWZ1bmMKLSNUT0RPPzphcmNoZXItdHJvbWV5 LXB5dGhvbiAobm90IGEgbWVyZ2UpCithcmNoZXItdHJvbWV5LXB5dGhvbgogI1RPRE8/OmFyY2hl ci10cm9tZXktb3B0aW9uYWwtcHN5bXRhYiAoY2hlcnJ5LXBpY2tlZCBmcm9tIHBvc3QtNy4yIG1h c3RlcikKICNUT0RPPzphcmNoZXItdHJvbWV5LXRocmVhZGVkLWR3YXJmCiAKIAorZGlmZiAtLWdp dCBhL2dkYi9NYWtlZmlsZS5pbiBiL2dkYi9NYWtlZmlsZS5pbgoraW5kZXggOTQ1OWRlNC4uOTVj M2I1NyAxMDA2NDQKKy0tLSBhL2dkYi9NYWtlZmlsZS5pbgorKysrIGIvZ2RiL01ha2VmaWxlLmlu CitAQCAtNzgyLDcgKzc4Miw4IEBAIGNvbmZpZy9yczYwMDAvbm0tcnM2MDAwLmggdG9wLmggYnNk LWt2bS5oIGdkYi1zdGFicy5oIHJlZ2dyb3Vwcy5oIFwKKyBhbm5vdGF0ZS5oIHNpbS1yZWduby5o IGRpY3Rpb25hcnkuaCBkZnAuaCBtYWluLmggZnJhbWUtdW53aW5kLmgJXAorIHJlbW90ZS1maWxl aW8uaCBpMzg2LWxpbnV4LXRkZXAuaCB2YXgtdGRlcC5oIG9iamMtbGFuZy5oIFwKKyBzZW50aW5l bC1mcmFtZS5oIGJjYWNoZS5oIHN5bWZpbGUuaCB3aW5kb3dzLXRkZXAuaCBsaW51eC10ZGVwLmgg XAorLWdkYl91c2xlZXAuaCBqaXQuaCB4bWwtc3lzY2FsbC5oIGFkYS1vcGVyYXRvci5pbmMgbWlj cm9ibGF6ZS10ZGVwLmggXAorK2dkYl91c2xlZXAuaCBqaXQuaCBweXRob24vcHl0aG9uLmggcHl0 aG9uL3B5dGhvbi1pbnRlcm5hbC5oIFwKKyt4bWwtc3lzY2FsbC5oIGFkYS1vcGVyYXRvci5pbmMg bWljcm9ibGF6ZS10ZGVwLmggXAorIHBzeW10YWIuaCBwc3ltcHJpdi5oIHByb2dzcGFjZS5oIGJm aW4tdGRlcC5oCisgCisgIyBIZWFkZXIgZmlsZXMgdGhhdCBhbHJlYWR5IGhhdmUgc3JjZGlyIGlu IHRoZW0sIG9yIHdoaWNoIGFyZSBpbiBvYmpkaXIuCitAQCAtMTI4OSw2ICsxMjkwLDEyIEBAIHN0 YW1wLWg6ICQoc3JjZGlyKS9jb25maWcuaW4gY29uZmlnLnN0YXR1cworIAkgIENPTkZJR19MSU5L Uz0gXAorIAkgICQoU0hFTEwpIGNvbmZpZy5zdGF0dXMKKyAKKysuZ2RiaW5pdDogJChzcmNkaXIp L2dkYmluaXQuaW4gY29uZmlnLnN0YXR1cworKwlDT05GSUdfRklMRVM9Ii5nZGJpbml0OmdkYmlu aXQuaW4iIFwKKysJICBDT05GSUdfQ09NTUFORFM9IFwKKysJICBDT05GSUdfSEVBREVSUz0gXAor KwkgICQoU0hFTEwpIGNvbmZpZy5zdGF0dXMKKysKKyBjb25maWcuc3RhdHVzOiAkKHNyY2Rpcikv Y29uZmlndXJlIGNvbmZpZ3VyZS50Z3QgY29uZmlndXJlLmhvc3QKKyAJJChTSEVMTCkgY29uZmln LnN0YXR1cyAtLXJlY2hlY2sKKyAKIGRpZmYgLS1naXQgYS9nZGIvYWRhLWxhbmcuYyBiL2dkYi9h ZGEtbGFuZy5jCiBpbmRleCAzZWZmZjJlLi45OTA5N2JmIDEwMDY0NAogLS0tIGEvZ2RiL2FkYS1s YW5nLmMKQEAgLTMwMyw3ICszMzAsNyBAQCBpbmRleCAwN2Q1YmM3Li5mYWQ4OWIxIDEwMDY0NAog KwogICNlbmRpZiAvKiBCTE9DS19IICovCiBkaWZmIC0tZ2l0IGEvZ2RiL2Jsb2NrZnJhbWUuYyBi L2dkYi9ibG9ja2ZyYW1lLmMKLWluZGV4IDRjZmM2ZTYuLmRjNjRkNTEgMTAwNjQ0CitpbmRleCBi OWFhZjU0Li5lMWYzMjQyIDEwMDY0NAogLS0tIGEvZ2RiL2Jsb2NrZnJhbWUuYwogKysrIGIvZ2Ri L2Jsb2NrZnJhbWUuYwogQEAgLTE2MCw2ICsxNjAsNyBAQCBzdGF0aWMgQ09SRV9BRERSIGNhY2hl X3BjX2Z1bmN0aW9uX2xvdyA9IDA7CkBAIC0zNTQsNyArMzgxLDcgQEAgaW5kZXggNGNmYzZlNi4u ZGM2NGQ1MSAxMDA2NDQKICAKICAgIC8qIElmIHRoZSBtaW5pbWFsIHN5bWJvbCBoYXMgYSBzaXpl LCB1c2UgaXQgZm9yIHRoZSBjYWNoZS4KICAgICAgIE90aGVyd2lzZSB1c2UgdGhlIGxlc3NlciBv ZiB0aGUgbmV4dCBtaW5pbWFsIHN5bWJvbCBpbiB0aGUgc2FtZQotQEAgLTMyNCw3ICszMjgsOCBA QCBmaW5kX3BjX3BhcnRpYWxfZnVuY3Rpb24gKENPUkVfQUREUiBwYywgY2hhciAqKm5hbWUsIENP UkVfQUREUiAqYWRkcmVzcywKK0BAIC0zMjcsNyArMzMxLDggQEAgZmluZF9wY19wYXJ0aWFsX2Z1 bmN0aW9uIChDT1JFX0FERFIgcGMsIGNoYXIgKipuYW1lLCBDT1JFX0FERFIgKmFkZHJlc3MsCiAg CSplbmRhZGRyID0gY2FjaGVfcGNfZnVuY3Rpb25faGlnaDsKICAgICAgfQogIApAQCAtMzY1LDcg KzM5Miw3IEBAIGluZGV4IDRjZmM2ZTYuLmRjNjRkNTEgMTAwNjQ0CiAgCiAgLyogUmV0dXJuIHRo ZSBpbm5lcm1vc3Qgc3RhY2sgZnJhbWUgZXhlY3V0aW5nIGluc2lkZSBvZiBCTE9DSywgb3IgTlVM TAogZGlmZiAtLWdpdCBhL2dkYi9icmVha3BvaW50LmMgYi9nZGIvYnJlYWtwb2ludC5jCi1pbmRl eCA3ODUxNTVjLi42M2Q3MzZmIDEwMDY0NAoraW5kZXggOTdlZmMwYS4uZjYzM2Y1NyAxMDA2NDQK IC0tLSBhL2dkYi9icmVha3BvaW50LmMKICsrKyBiL2dkYi9icmVha3BvaW50LmMKIEBAIC02Miw2 ICs2Miw3IEBACkBAIC0zOTcsNyArNDI0LDcgQEAgaW5kZXggNzg1MTU1Yy4uNjNkNzM2ZiAxMDA2 NDQKICAvKiBBc3N1bWluZyB3ZSdyZSBjcmVhdGluZyBhIHN0YXRpYyB0cmFjZXBvaW50LCBkb2Vz IFMgbG9vayBsaWtlIGEKICAgICBzdGF0aWMgdHJhY2Vwb2ludCBtYXJrZXIgc3BlYyAoIi1tIE1B UktFUl9JRCIpPyAgKi8KICAjZGVmaW5lIGlzX21hcmtlcl9zcGVjKHMpCQkJCQkJXAotQEAgLTEy NzAsNiArMTI3OCwyMiBAQCB3YXRjaHBvaW50X2luX3RocmVhZF9zY29wZSAoc3RydWN0IGJyZWFr cG9pbnQgKmIpCitAQCAtMTI3OCw2ICsxMjg2LDIyIEBAIHdhdGNocG9pbnRfaW5fdGhyZWFkX3Nj b3BlIChzdHJ1Y3QgYnJlYWtwb2ludCAqYikKICAJICAgICAgJiYgIWlzX2V4ZWN1dGluZyAoaW5m ZXJpb3JfcHRpZCkpKTsKICB9CiAgCkBAIC00MjAsNyArNDQ3LDcgQEAgaW5kZXggNzg1MTU1Yy4u NjNkNzM2ZiAxMDA2NDQKICAvKiBBc3N1bWluZyB0aGF0IEIgaXMgYSB3YXRjaHBvaW50OgogICAg IC0gUmVwYXJzZSB3YXRjaHBvaW50IGV4cHJlc3Npb24sIGlmIFJFUEFSU0UgaXMgbm9uLXplcm8K ICAgICAtIEV2YWx1YXRlIGV4cHJlc3Npb24gYW5kIHN0b3JlIHRoZSByZXN1bHQgaW4gQi0+dmFs Ci1AQCAtMTMyOSwxMiArMTM1MywxNyBAQCB1cGRhdGVfd2F0Y2hwb2ludCAoc3RydWN0IGJyZWFr cG9pbnQgKmIsIGludCByZXBhcnNlKQorQEAgLTEzMzcsMTIgKzEzNjEsMTcgQEAgdXBkYXRlX3dh dGNocG9pbnQgKHN0cnVjdCBicmVha3BvaW50ICpiLCBpbnQgcmVwYXJzZSkKICAgIHN0cnVjdCBm cmFtZV9pZCBzYXZlZF9mcmFtZV9pZDsKICAgIGludCBmcmFtZV9zYXZlZDsKICAKQEAgLTQzOCw5 ICs0NjUsOSBAQCBpbmRleCA3ODUxNTVjLi42M2Q3MzZmIDEwMDY0NAogICAgLyogV2UgZG9uJ3Qg ZnJlZSBsb2NhdGlvbnMuICBUaGV5IGFyZSBzdG9yZWQgaW4gYnBfbG9jYXRpb24gYXJyYXkKICAg ICAgIGFuZCB1cGRhdGVfZ2xvYmFsX2xvY2F0aW9ucyB3aWxsIGV2ZW50dWFsbHkgZGVsZXRlIHRo ZW0gYW5kCiAgICAgICByZW1vdmUgYnJlYWtwb2ludHMgaWYgbmVlZGVkLiAgKi8KLUBAIC0xNTM0 LDEzICsxNTYzLDcgQEAgdXBkYXRlX3dhdGNocG9pbnQgKHN0cnVjdCBicmVha3BvaW50ICpiLCBp bnQgcmVwYXJzZSkKLSBXYXRjaHBvaW50ICVkIGRlbGV0ZWQgYmVjYXVzZSB0aGUgcHJvZ3JhbSBo YXMgbGVmdCB0aGUgYmxvY2tcblwKLSBpbiB3aGljaCBpdHMgZXhwcmVzc2lvbiBpcyB2YWxpZC5c biIpLAorQEAgLTE1NDIsMTMgKzE1NzEsNyBAQCB1cGRhdGVfd2F0Y2hwb2ludCAoc3RydWN0IGJy ZWFrcG9pbnQgKmIsIGludCByZXBhcnNlKQorIAkJCSAidGhlIHByb2dyYW0gaGFzIGxlZnQgdGhl IGJsb2NrXG4iCisgCQkJICJpbiB3aGljaCBpdHMgZXhwcmVzc2lvbiBpcyB2YWxpZC5cbiIpLAog IAkJICAgICAgIGItPm51bWJlcik7CiAtICAgICAgaWYgKGItPnJlbGF0ZWRfYnJlYWtwb2ludCkK IC0JewpAQCAtNDUzLDcgKzQ4MCw3IEBAIGluZGV4IDc4NTE1NWMuLjYzZDczNmYgMTAwNjQ0CiAg ICAgIH0KICAKICAgIC8qIFJlc3RvcmUgdGhlIHNlbGVjdGVkIGZyYW1lLiAgKi8KLUBAIC0xOTE2 LDYgKzE5MzksNyBAQCBpbnNlcnRfYnJlYWtwb2ludF9sb2NhdGlvbnMgKHZvaWQpCitAQCAtMTkz MCw2ICsxOTUzLDcgQEAgaW5zZXJ0X2JyZWFrcG9pbnRfbG9jYXRpb25zICh2b2lkKQogICAgaW50 IHZhbCA9IDA7CiAgICBpbnQgZGlzYWJsZWRfYnJlYWtzID0gMDsKICAgIGludCBod19icmVha3Bv aW50X2Vycm9yID0gMDsKQEAgLTQ2MSw3ICs0ODgsNyBAQCBpbmRleCA3ODUxNTVjLi42M2Q3MzZm IDEwMDY0NAogIAogICAgc3RydWN0IHVpX2ZpbGUgKnRtcF9lcnJvcl9zdHJlYW0gPSBtZW1fZmls ZW9wZW4gKCk7CiAgICBzdHJ1Y3QgY2xlYW51cCAqY2xlYW51cHMgPSBtYWtlX2NsZWFudXBfdWlf ZmlsZV9kZWxldGUgKHRtcF9lcnJvcl9zdHJlYW0pOwotQEAgLTE5NDMsOSArMTk2NywxMyBAQCBp bnNlcnRfYnJlYWtwb2ludF9sb2NhdGlvbnMgKHZvaWQpCitAQCAtMTk1Nyw5ICsxOTgxLDEzIEBA IGluc2VydF9icmVha3BvaW50X2xvY2F0aW9ucyAodm9pZCkKICAgICAgICAvKiBGb3IgdGFyZ2V0 cyB0aGF0IHN1cHBvcnQgZ2xvYmFsIGJyZWFrcG9pbnRzLCB0aGVyZSdzIG5vIG5lZWQKICAJIHRv IHNlbGVjdCBhbiBpbmZlcmlvciB0byBpbnNlcnQgYnJlYWtwb2ludCB0by4gIEluIGZhY3QsIGV2 ZW4KICAJIGlmIHdlIGFyZW4ndCBhdHRhY2hlZCB0byBhbnkgcHJvY2VzcyB5ZXQsIHdlIHNob3Vs ZCBzdGlsbApAQCAtNDc3LDcgKzUwNCw3IEBAIGluZGV4IDc4NTE1NWMuLjYzZDczNmYgMTAwNjQ0 CiAgCWNvbnRpbnVlOwogIAogICAgICAgIHZhbCA9IGluc2VydF9icF9sb2NhdGlvbiAoYmwsIHRt cF9lcnJvcl9zdHJlYW0sICZkaXNhYmxlZF9icmVha3MsCi1AQCAtMTk2OSwxMyArMTk5NywxOSBA QCBpbnNlcnRfYnJlYWtwb2ludF9sb2NhdGlvbnMgKHZvaWQpCitAQCAtMTk4MywxMyArMjAxMSwx OSBAQCBpbnNlcnRfYnJlYWtwb2ludF9sb2NhdGlvbnMgKHZvaWQpCiAgCiAgICAgICAgaWYgKGJw dC0+ZGlzcG9zaXRpb24gPT0gZGlzcF9kZWxfYXRfbmV4dF9zdG9wKQogIAljb250aW51ZTsKQEAg LTUwMyw3ICs1MzAsNyBAQCBpbmRleCA3ODUxNTVjLi42M2Q3MzZmIDEwMDY0NAogICAgICAgIGlm IChzb21lX2ZhaWxlZCkKICAJewogIAkgIGZvciAobG9jID0gYnB0LT5sb2M7IGxvYzsgbG9jID0g bG9jLT5uZXh0KQotQEAgLTI1MjUsOCArMjU1OSw3IEBAIHJlbW92ZV9icmVha3BvaW50XzEgKHN0 cnVjdCBicF9sb2NhdGlvbiAqYmwsIGluc2VydGlvbl9zdGF0ZV90IGlzKQorQEAgLTI1MzksOCAr MjU3Myw3IEBAIHJlbW92ZV9icmVha3BvaW50XzEgKHN0cnVjdCBicF9sb2NhdGlvbiAqYmwsIGlu c2VydGlvbl9zdGF0ZV90IGlzKQogICAgICB7CiAgICAgICAgYmwtPmluc2VydGVkID0gKGlzID09 IG1hcmtfaW5zZXJ0ZWQpOwogICAgICAgIHZhbCA9IHRhcmdldF9yZW1vdmVfd2F0Y2hwb2ludCAo YmwtPmFkZHJlc3MsIGJsLT5sZW5ndGgsCkBAIC01MTMsNyArNTQwLDcgQEAgaW5kZXggNzg1MTU1 Yy4uNjNkNzM2ZiAxMDA2NDQKICAKICAgICAgICAvKiBGYWlsdXJlIHRvIHJlbW92ZSBhbnkgb2Yg dGhlIGhhcmR3YXJlIHdhdGNocG9pbnRzIGNvbWVzIGhlcmUuICAqLwogICAgICAgIGlmICgoaXMg PT0gbWFya191bmluc2VydGVkKSAmJiAoYmwtPmluc2VydGVkKSkKLUBAIC0zNDE5LDYgKzM0NTIs OCBAQCBwcmludF9pdF90eXBpY2FsIChicHN0YXQgYnMpCitAQCAtMzQzNiw2ICszNDY5LDggQEAg cHJpbnRfaXRfdHlwaWNhbCAoYnBzdGF0IGJzKQogICAgICBjYXNlIGJwX3RyYWNlcG9pbnQ6CiAg ICAgIGNhc2UgYnBfZmFzdF90cmFjZXBvaW50OgogICAgICBjYXNlIGJwX2ppdF9ldmVudDoKQEAg LTUyMiw3ICs1NDksNyBAQCBpbmRleCA3ODUxNTVjLi42M2Q3MzZmIDEwMDY0NAogICAgICBkZWZh dWx0OgogICAgICAgIHJlc3VsdCA9IFBSSU5UX1VOS05PV047CiAgICAgICAgYnJlYWs7Ci1AQCAt MzY0MCw2ICszNjc1LDggQEAgd2F0Y2hwb2ludF9jaGVjayAodm9pZCAqcCkKK0BAIC0zNjU3LDYg KzM2OTIsOCBAQCB3YXRjaHBvaW50X2NoZWNrICh2b2lkICpwKQogICAgZ2RiX2Fzc2VydCAoYnMt PmJyZWFrcG9pbnRfYXQgIT0gTlVMTCk7CiAgICBiID0gYnMtPmJyZWFrcG9pbnRfYXQ7CiAgCkBA IC01MzEsOCArNTU4LDggQEAgaW5kZXggNzg1MTU1Yy4uNjNkNzM2ZiAxMDA2NDQKICAgIC8qIElm IHRoaXMgaXMgYSBsb2NhbCB3YXRjaHBvaW50LCB3ZSBvbmx5IHdhbnQgdG8gY2hlY2sgaWYgdGhl CiAgICAgICB3YXRjaHBvaW50IGZyYW1lIGlzIGluIHNjb3BlIGlmIHRoZSBjdXJyZW50IHRocmVh ZCBpcyB0aGUgdGhyZWFkCiAgICAgICB0aGF0IHdhcyB1c2VkIHRvIGNyZWF0ZSB0aGUgd2F0Y2hw b2ludC4gICovCi1AQCAtMzc0OCwxMyArMzc4NSw3IEBAIHdhdGNocG9pbnRfY2hlY2sgKHZvaWQg KnApCi0gICAgICAgdWlfb3V0X3RleHQgKHVpb3V0LCAiIGRlbGV0ZWQgYmVjYXVzZSB0aGUgcHJv Z3JhbSBoYXMgbGVmdCB0aGUgYmxvY2sgaW5cblwKK0BAIC0zNzY2LDEzICszODAzLDcgQEAgd2F0 Y2hwb2ludF9jaGVjayAodm9pZCAqcCkKKyAJCSAgICIgZGVsZXRlZCBiZWNhdXNlIHRoZSBwcm9n cmFtIGhhcyBsZWZ0IHRoZSBibG9jayBpblxuXAogIHdoaWNoIGl0cyBleHByZXNzaW9uIGlzIHZh bGlkLlxuIik7ICAgICAKICAKIC0gICAgICBpZiAoYi0+cmVsYXRlZF9icmVha3BvaW50KQpAQCAt NTQ2LDcgKzU3Myw3IEBAIGluZGV4IDc4NTE1NWMuLjYzZDczNmYgMTAwNjQ0CiAgCiAgICAgICAg cmV0dXJuIFdQX0RFTEVURUQ7CiAgICAgIH0KLUBAIC0zOTU4LDkgKzM5ODksNyBAQCBicHN0YXRf Y2hlY2tfd2F0Y2hwb2ludCAoYnBzdGF0IGJzKQorQEAgLTM5NzcsOSArNDAwOCw3IEBAIGJwc3Rh dF9jaGVja193YXRjaHBvaW50IChicHN0YXQgYnMpCiAgCSAgICBjYXNlIDA6CiAgCSAgICAgIC8q IEVycm9yIGZyb20gY2F0Y2hfZXJyb3JzLiAgKi8KICAJICAgICAgcHJpbnRmX2ZpbHRlcmVkIChf KCJXYXRjaHBvaW50ICVkIGRlbGV0ZWQuXG4iKSwgYi0+bnVtYmVyKTsKQEAgLTU1Nyw3ICs1ODQs NyBAQCBpbmRleCA3ODUxNTVjLi42M2Q3MzZmIDEwMDY0NAogIAkgICAgICAvKiBXZSd2ZSBhbHJl YWR5IHByaW50ZWQgd2hhdCBuZWVkcyB0byBiZSBwcmludGVkLiAgKi8KICAJICAgICAgYnMtPnBy aW50X2l0ID0gcHJpbnRfaXRfZG9uZTsKICAJICAgICAgYnJlYWs7Ci1AQCAtNDE2Niw3ICs0MTk1 LDcgQEAgYnBzdGF0X3N0b3Bfc3RhdHVzIChzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqYXNwYWNlLAor QEAgLTQxODUsNyArNDIxNCw3IEBAIGJwc3RhdF9zdG9wX3N0YXR1cyAoc3RydWN0IGFkZHJlc3Nf c3BhY2UgKmFzcGFjZSwKICAJICAgICB3YXRjaHBvaW50IGFzIHRyaWdnZXJlZCBzbyB0aGF0IHdl IHdpbGwgaGFuZGxlIHRoZQogIAkgICAgIG91dC1vZi1zY29wZSBldmVudC4gIFdlJ2xsIGdldCB0 byB0aGUgd2F0Y2hwb2ludCBuZXh0CiAgCSAgICAgaXRlcmF0aW9uLiAgKi8KQEAgLTU2Niw3ICs1 OTMsNyBAQCBpbmRleCA3ODUxNTVjLi42M2Q3MzZmIDEwMDY0NAogIAkgICAgYi0+cmVsYXRlZF9i cmVha3BvaW50LT53YXRjaHBvaW50X3RyaWdnZXJlZCA9IHdhdGNoX3RyaWdnZXJlZF95ZXM7CiAg CX0KICAgICAgfQotQEAgLTQyODgsNyArNDMxNyw3IEBAIGhhbmRsZV9qaXRfZXZlbnQgKHZvaWQp CitAQCAtNDMwNyw3ICs0MzM2LDcgQEAgaGFuZGxlX2ppdF9ldmVudCAodm9pZCkKICAvKiBEZWNp ZGUgd2hhdCBpbmZydW4gbmVlZHMgdG8gZG8gd2l0aCB0aGlzIGJwc3RhdC4gICovCiAgCiAgc3Ry dWN0IGJwc3RhdF93aGF0CkBAIC01NzUsNyArNjAyLDcgQEAgaW5kZXggNzg1MTU1Yy4uNjNkNzM2 ZiAxMDA2NDQKICB7CiAgICBzdHJ1Y3QgYnBzdGF0X3doYXQgcmV0dmFsOwogICAgLyogV2UgbmVl ZCB0byBkZWZlciBjYWxsaW5nIGBzb2xpYl9hZGQnLCBhcyBhZGRpbmcgbmV3IHN5bWJvbHMKLUBA IC00Mjk2LDEyICs0MzI1LDEzIEBAIGJwc3RhdF93aGF0IChicHN0YXQgYnMpCitAQCAtNDMxNSwx MiArNDM0NCwxMyBAQCBicHN0YXRfd2hhdCAoYnBzdGF0IGJzKQogICAgICAgYW5kIGhlbmNlIG1h eSBjbGVhciB1bnByb2Nlc3NlZCBlbnRyaWVzIGluIHRoZSBCUyBjaGFpbi4gICovCiAgICBpbnQg c2hsaWJfZXZlbnQgPSAwOwogICAgaW50IGppdF9ldmVudCA9IDA7CkBAIC01OTAsNyArNjE3LDcg QEAgaW5kZXggNzg1MTU1Yy4uNjNkNzM2ZiAxMDA2NDQKICAgICAgewogICAgICAgIC8qIEV4dHJh Y3QgdGhpcyBCUydzIGFjdGlvbi4gIEFmdGVyIHByb2Nlc3NpbmcgZWFjaCBCUywgd2UgY2hlY2sK ICAJIGlmIGl0cyBhY3Rpb24gb3ZlcnJpZGVzIGFsbCB3ZSd2ZSBzZWVtIHNvIGZhci4gICovCi1A QCAtNDQzMSw2ICs0NDYxLDIwIEBAIGJwc3RhdF93aGF0IChicHN0YXQgYnMpCitAQCAtNDQ1MCw2 ICs0NDgwLDIwIEBAIGJwc3RhdF93aGF0IChicHN0YXQgYnMpCiAgCSAgICAgb3V0IGFscmVhZHku ICAqLwogIAkgIGludGVybmFsX2Vycm9yIChfX0ZJTEVfXywgX19MSU5FX18sCiAgCQkJICBfKCJi cHN0YXRfd2hhdDogdHJhY2Vwb2ludCBlbmNvdW50ZXJlZCIpKTsKQEAgLTYxMSw3ICs2MzgsNyBA QCBpbmRleCA3ODUxNTVjLi42M2Q3MzZmIDEwMDY0NAogIAlkZWZhdWx0OgogIAkgIGludGVybmFs X2Vycm9yIChfX0ZJTEVfXywgX19MSU5FX18sCiAgCQkJICBfKCJicHN0YXRfd2hhdDogdW5oYW5k bGVkIGJwdHlwZSAlZCIpLCAoaW50KSBicHR5cGUpOwotQEAgLTQ0NjgsNiArNDUxMiwyMSBAQCBi cHN0YXRfd2hhdCAoYnBzdGF0IGJzKQorQEAgLTQ0ODcsNiArNDUzMSwyMSBAQCBicHN0YXRfd2hh dCAoYnBzdGF0IGJzKQogICAgICAgIGhhbmRsZV9qaXRfZXZlbnQgKCk7CiAgICAgIH0KICAKQEAg LTYzMyw3ICs2NjAsNyBAQCBpbmRleCA3ODUxNTVjLi42M2Q3MzZmIDEwMDY0NAogICAgcmV0dXJu IHJldHZhbDsKICB9CiAgCi1AQCAtNDU4OSw2ICs0NjQ4LDggQEAgYnB0eXBlX3N0cmluZyAoZW51 bSBicHR5cGUgdHlwZSkKK0BAIC00NjA4LDYgKzQ2NjcsOCBAQCBicHR5cGVfc3RyaW5nIChlbnVt IGJwdHlwZSB0eXBlKQogICAgICB7YnBfZmFzdF90cmFjZXBvaW50LCAiZmFzdCB0cmFjZXBvaW50 In0sCiAgICAgIHticF9zdGF0aWNfdHJhY2Vwb2ludCwgInN0YXRpYyB0cmFjZXBvaW50In0sCiAg ICAgIHticF9qaXRfZXZlbnQsICJqaXQgZXZlbnRzIn0sCkBAIC02NDIsNyArNjY5LDcgQEAgaW5k ZXggNzg1MTU1Yy4uNjNkNzM2ZiAxMDA2NDQKICAgIH07CiAgCiAgICBpZiAoKChpbnQpIHR5cGUg Pj0gKHNpemVvZiAoYnB0eXBlcykgLyBzaXplb2YgKGJwdHlwZXNbMF0pKSkKLUBAIC00NzM2LDYg KzQ3OTcsOCBAQCBwcmludF9vbmVfYnJlYWtwb2ludF9sb2NhdGlvbiAoc3RydWN0IGJyZWFrcG9p bnQgKmIsCitAQCAtNDc1NSw2ICs0ODE2LDggQEAgcHJpbnRfb25lX2JyZWFrcG9pbnRfbG9jYXRp b24gKHN0cnVjdCBicmVha3BvaW50ICpiLAogICAgICAgIGNhc2UgYnBfZmFzdF90cmFjZXBvaW50 OgogICAgICAgIGNhc2UgYnBfc3RhdGljX3RyYWNlcG9pbnQ6CiAgICAgICAgY2FzZSBicF9qaXRf ZXZlbnQ6CkBAIC02NTEsNyArNjc4LDcgQEAgaW5kZXggNzg1MTU1Yy4uNjNkNzM2ZiAxMDA2NDQK ICAJaWYgKG9wdHMuYWRkcmVzc3ByaW50KQogIAkgIHsKICAJICAgIGFubm90YXRlX2ZpZWxkICg0 KTsKLUBAIC01MDE3LDcgKzUwODAsOCBAQCB1c2VyX3NldHRhYmxlX2JyZWFrcG9pbnQgKGNvbnN0 IHN0cnVjdCBicmVha3BvaW50ICpiKQorQEAgLTUwMzYsNyArNTA5OSw4IEBAIHVzZXJfc2V0dGFi bGVfYnJlYWtwb2ludCAoY29uc3Qgc3RydWN0IGJyZWFrcG9pbnQgKmIpCiAgCSAgfHwgYi0+dHlw ZSA9PSBicF9jYXRjaHBvaW50CiAgCSAgfHwgYi0+dHlwZSA9PSBicF9oYXJkd2FyZV9icmVha3Bv aW50CiAgCSAgfHwgaXNfdHJhY2Vwb2ludCAoYikKQEAgLTY2MSw3ICs2ODgsNyBAQCBpbmRleCA3 ODUxNTVjLi42M2Q3MzZmIDEwMDY0NAogIH0KICAKICAvKiBQcmludCBpbmZvcm1hdGlvbiBvbiB1 c2VyIHNldHRhYmxlIGJyZWFrcG9pbnQgKHdhdGNocG9pbnQsIGV0YykKLUBAIC01NDk3LDYgKzU1 NjEsOCBAQCBhbGxvY2F0ZV9icF9sb2NhdGlvbiAoc3RydWN0IGJyZWFrcG9pbnQgKmJwdCkKK0BA IC01NTE4LDYgKzU1ODIsOCBAQCBhbGxvY2F0ZV9icF9sb2NhdGlvbiAoc3RydWN0IGJyZWFrcG9p bnQgKmJwdCkKICAgICAgY2FzZSBicF9sb25nam1wX21hc3RlcjoKICAgICAgY2FzZSBicF9zdGRf dGVybWluYXRlX21hc3RlcjoKICAgICAgY2FzZSBicF9leGNlcHRpb25fbWFzdGVyOgpAQCAtNjcw LDcgKzY5Nyw3IEBAIGluZGV4IDc4NTE1NWMuLjYzZDczNmYgMTAwNjQ0CiAgICAgICAgbG9jLT5s b2NfdHlwZSA9IGJwX2xvY19zb2Z0d2FyZV9icmVha3BvaW50OwogICAgICAgIGJyZWFrOwogICAg ICBjYXNlIGJwX2hhcmR3YXJlX2JyZWFrcG9pbnQ6Ci1AQCAtNTU4Niw2ICs1NjUyLDcgQEAgc2V0 X3Jhd19icmVha3BvaW50X3dpdGhvdXRfbG9jYXRpb24gKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNo LAorQEAgLTU2MDcsNiArNTY3Myw3IEBAIHNldF9yYXdfYnJlYWtwb2ludF93aXRob3V0X2xvY2F0 aW9uIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKICAgIGItPm9wcyA9IE5VTEw7CiAgICBiLT5j b25kaXRpb25fbm90X3BhcnNlZCA9IDA7CiAgICBiLT5weV9icF9vYmplY3QgPSBOVUxMOwpAQCAt Njc4LDcgKzcwNSw3IEBAIGluZGV4IDc4NTE1NWMuLjYzZDczNmYgMTAwNjQ0CiAgCiAgICAvKiBB ZGQgdGhpcyBicmVha3BvaW50IHRvIHRoZSBlbmQgb2YgdGhlIGNoYWluIHNvIHRoYXQgYSBsaXN0 IG9mCiAgICAgICBicmVha3BvaW50cyB3aWxsIGNvbWUgb3V0IGluIG9yZGVyIG9mIGluY3JlYXNp bmcgbnVtYmVycy4gICovCi1AQCAtNTYwNCw3ICs1NjcxLDcgQEAgc2V0X3Jhd19icmVha3BvaW50 X3dpdGhvdXRfbG9jYXRpb24gKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorQEAgLTU2MjUsNyAr NTY5Miw3IEBAIHNldF9yYXdfYnJlYWtwb2ludF93aXRob3V0X2xvY2F0aW9uIChzdHJ1Y3QgZ2Ri YXJjaCAqZ2RiYXJjaCwKICAKICAvKiBJbml0aWFsaXplIGxvYy0+ZnVuY3Rpb25fbmFtZS4gICov CiAgc3RhdGljIHZvaWQKQEAgLTY4Nyw3ICs3MTQsNyBAQCBpbmRleCA3ODUxNTVjLi42M2Q3MzZm IDEwMDY0NAogIHsKICAgIGdkYl9hc3NlcnQgKGxvYy0+b3duZXIgIT0gTlVMTCk7CiAgCi1AQCAt NTYxMiw4ICs1Njc5LDI5IEBAIHNldF9icmVha3BvaW50X2xvY2F0aW9uX2Z1bmN0aW9uIChzdHJ1 Y3QgYnBfbG9jYXRpb24gKmxvYykKK0BAIC01NjMzLDggKzU3MDAsMjkgQEAgc2V0X2JyZWFrcG9p bnRfbG9jYXRpb25fZnVuY3Rpb24gKHN0cnVjdCBicF9sb2NhdGlvbiAqbG9jKQogICAgICAgIHx8 IGxvYy0+b3duZXItPnR5cGUgPT0gYnBfaGFyZHdhcmVfYnJlYWtwb2ludAogICAgICAgIHx8IGlz X3RyYWNlcG9pbnQgKGxvYy0+b3duZXIpKQogICAgICB7CkBAIC03MTksNyArNzQ2LDcgQEAgaW5k ZXggNzg1MTU1Yy4uNjNkNzM2ZiAxMDA2NDQKICAgICAgICBpZiAobG9jLT5mdW5jdGlvbl9uYW1l KQogIAlsb2MtPmZ1bmN0aW9uX25hbWUgPSB4c3RyZHVwIChsb2MtPmZ1bmN0aW9uX25hbWUpOwog ICAgICB9Ci1AQCAtNTY4OCw3ICs1Nzc2LDggQEAgc2V0X3Jhd19icmVha3BvaW50IChzdHJ1Y3Qg Z2RiYXJjaCAqZ2RiYXJjaCwKK0BAIC01NzA5LDcgKzU3OTcsOCBAQCBzZXRfcmF3X2JyZWFrcG9p bnQgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAogICAgYi0+bG9jLT5zZWN0aW9uID0gc2FsLnNl Y3Rpb247CiAgICBiLT5saW5lX251bWJlciA9IHNhbC5saW5lOwogIApAQCAtNzI5LDcgKzc1Niw3 IEBAIGluZGV4IDc4NTE1NWMuLjYzZDczNmYgMTAwNjQ0CiAgCiAgICBicmVha3BvaW50c19jaGFu Z2VkICgpOwogIAotQEAgLTY3NzUsNyArNjg2NCw3IEBAIGNsb25lX21vbWVudGFyeV9icmVha3Bv aW50IChzdHJ1Y3QgYnJlYWtwb2ludCAqb3JpZykKK0BAIC02Nzk5LDcgKzY4ODgsNyBAQCBjbG9u ZV9tb21lbnRhcnlfYnJlYWtwb2ludCAoc3RydWN0IGJyZWFrcG9pbnQgKm9yaWcpCiAgCiAgICBj b3B5ID0gc2V0X3Jhd19icmVha3BvaW50X3dpdGhvdXRfbG9jYXRpb24gKG9yaWctPmdkYmFyY2gs IG9yaWctPnR5cGUpOwogICAgY29weS0+bG9jID0gYWxsb2NhdGVfYnBfbG9jYXRpb24gKGNvcHkp OwpAQCAtNzM4LDcgKzc2NSw3IEBAIGluZGV4IDc4NTE1NWMuLjYzZDczNmYgMTAwNjQ0CiAgCiAg ICBjb3B5LT5sb2MtPmdkYmFyY2ggPSBvcmlnLT5sb2MtPmdkYmFyY2g7CiAgICBjb3B5LT5sb2Mt PnJlcXVlc3RlZF9hZGRyZXNzID0gb3JpZy0+bG9jLT5yZXF1ZXN0ZWRfYWRkcmVzczsKLUBAIC02 ODc0LDYgKzY5NjMsNyBAQCBtZW50aW9uIChzdHJ1Y3QgYnJlYWtwb2ludCAqYikKK0BAIC02ODk5 LDYgKzY5ODgsNyBAQCBtZW50aW9uIChzdHJ1Y3QgYnJlYWtwb2ludCAqYikKICAJZG9fY2xlYW51 cHMgKHVpX291dF9jaGFpbik7CiAgCWJyZWFrOwogICAgICAgIGNhc2UgYnBfYnJlYWtwb2ludDoK QEAgLTc0Niw3ICs3NzMsNyBAQCBpbmRleCA3ODUxNTVjLi42M2Q3MzZmIDEwMDY0NAogIAlpZiAo dWlfb3V0X2lzX21pX2xpa2VfcCAodWlvdXQpKQogIAkgIHsKICAJICAgIHNheV93aGVyZSA9IDA7 Ci1AQCAtNjg4NCw2ICs2OTc0LDggQEAgbWVudGlvbiAoc3RydWN0IGJyZWFrcG9pbnQgKmIpCitA QCAtNjkwOSw2ICs2OTk5LDggQEAgbWVudGlvbiAoc3RydWN0IGJyZWFrcG9pbnQgKmIpCiAgCWVs c2UKICAJICBwcmludGZfZmlsdGVyZWQgKF8oIkJyZWFrcG9pbnQiKSk7CiAgCXByaW50Zl9maWx0 ZXJlZCAoXygiICVkIiksIGItPm51bWJlcik7CkBAIC03NTUsNyArNzgyLDcgQEAgaW5kZXggNzg1 MTU1Yy4uNjNkNzM2ZiAxMDA2NDQKICAJc2F5X3doZXJlID0gMTsKICAJYnJlYWs7CiAgICAgICAg Y2FzZSBicF9oYXJkd2FyZV9icmVha3BvaW50OgotQEAgLTY5NDMsNiArNzAzNSw3IEBAIG1lbnRp b24gKHN0cnVjdCBicmVha3BvaW50ICpiKQorQEAgLTY5NjgsNiArNzA2MCw3IEBAIG1lbnRpb24g KHN0cnVjdCBicmVha3BvaW50ICpiKQogICAgICAgIGNhc2UgYnBfbG9uZ2ptcF9tYXN0ZXI6CiAg ICAgICAgY2FzZSBicF9zdGRfdGVybWluYXRlX21hc3RlcjoKICAgICAgICBjYXNlIGJwX2V4Y2Vw dGlvbl9tYXN0ZXI6CkBAIC03NjMsNyArNzkwLDcgQEAgaW5kZXggNzg1MTU1Yy4uNjNkNzM2ZiAx MDA2NDQKICAJYnJlYWs7CiAgICAgICAgfQogIAotQEAgLTcwMDMsNyArNzA5Niw4IEBAIGFkZF9s b2NhdGlvbl90b19icmVha3BvaW50IChzdHJ1Y3QgYnJlYWtwb2ludCAqYiwKK0BAIC03MDI4LDcg KzcxMjEsOCBAQCBhZGRfbG9jYXRpb25fdG9fYnJlYWtwb2ludCAoc3RydWN0IGJyZWFrcG9pbnQg KmIsCiAgICBnZGJfYXNzZXJ0IChsb2MtPnBzcGFjZSAhPSBOVUxMKTsKICAgIGxvYy0+c2VjdGlv biA9IHNhbC0+c2VjdGlvbjsKICAKQEAgLTc3Myw3ICs4MDAsNyBAQCBpbmRleCA3ODUxNTVjLi42 M2Q3MzZmIDEwMDY0NAogICAgcmV0dXJuIGxvYzsKICB9CiAgDAotQEAgLTgzOTcsNiArODQ5MSw3 IEBAIHdhdGNoX2NvbW1hbmRfMSAoY2hhciAqYXJnLCBpbnQgYWNjZXNzZmxhZywgaW50IGZyb21f dHR5LAorQEAgLTg0MjcsNiArODUyMSw3IEBAIHdhdGNoX2NvbW1hbmRfMSAoY2hhciAqYXJnLCBp bnQgYWNjZXNzZmxhZywgaW50IGZyb21fdHR5LAogICAgYiA9IHNldF9yYXdfYnJlYWtwb2ludF93 aXRob3V0X2xvY2F0aW9uIChOVUxMLCBicF90eXBlKTsKICAgIHNldF9icmVha3BvaW50X251bWJl ciAoaW50ZXJuYWwsIGIpOwogICAgYi0+dGhyZWFkID0gdGhyZWFkOwpAQCAtNzgxLDcgKzgwOCw3 IEBAIGluZGV4IDc4NTE1NWMuLjYzZDczNmYgMTAwNjQ0CiAgICBiLT5kaXNwb3NpdGlvbiA9IGRp c3BfZG9udHRvdWNoOwogICAgYi0+ZXhwID0gZXhwOwogICAgYi0+ZXhwX3ZhbGlkX2Jsb2NrID0g ZXhwX3ZhbGlkX2Jsb2NrOwotQEAgLTk1NTAsNiArOTY0NSw5IEBAIHVwZGF0ZV9nbG9iYWxfbG9j YXRpb25fbGlzdCAoaW50IHNob3VsZF9pbnNlcnQpCitAQCAtOTU4Miw2ICs5Njc3LDkgQEAgdXBk YXRlX2dsb2JhbF9sb2NhdGlvbl9saXN0IChpbnQgc2hvdWxkX2luc2VydCkKICAgICAgICBpbnQg a2VlcF9pbl90YXJnZXQgPSAwOwogICAgICAgIGludCByZW1vdmVkID0gMDsKICAKQEAgLTc5MSw3 ICs4MTgsNyBAQCBpbmRleCA3ODUxNTVjLi42M2Q3MzZmIDEwMDY0NAogICAgICAgIC8qIFNraXAg TE9DUCBlbnRyaWVzIHdoaWNoIHdpbGwgZGVmaW5pdGVseSBuZXZlciBiZSBuZWVkZWQuCiAgCSBT dG9wIGVpdGhlciBhdCBvciBiZWluZyB0aGUgb25lIG1hdGNoaW5nIE9MRF9MT0MuICAqLwogICAg ICAgIHdoaWxlIChsb2NwIDwgYnBfbG9jYXRpb24gKyBicF9sb2NhdGlvbl9jb3VudAotQEAgLTk4 NjUsMTIgKzk5NjMsMjIgQEAgZGVsZXRlX2JyZWFrcG9pbnQgKHN0cnVjdCBicmVha3BvaW50ICpi cHQpCitAQCAtOTg5OCwxMiArOTk5NiwyMiBAQCBkZWxldGVfYnJlYWtwb2ludCAoc3RydWN0IGJy ZWFrcG9pbnQgKmJwdCkKICAKICAgIC8qIEF0IGxlYXN0IGF2b2lkIHRoaXMgc3RhbGUgcmVmZXJl bmNlIHVudGlsIHRoZSByZWZlcmVuY2UgY291bnRpbmcKICAgICAgIG9mIGJyZWFrcG9pbnRzIGdl dHMgcmVzb2x2ZWQuICAqLwpAQCAtODE5LDcgKzg0Niw3IEBAIGluZGV4IDc4NTE1NWMuLjYzZDcz NmYgMTAwNjQ0CiAgICAgIH0KICAKICAgIG9ic2VydmVyX25vdGlmeV9icmVha3BvaW50X2RlbGV0 ZWQgKGJwdC0+bnVtYmVyKTsKLUBAIC0xMDIwMSw2ICsxMDMwOSw5IEBAIHVwZGF0ZV9icmVha3Bv aW50X2xvY2F0aW9ucyAoc3RydWN0IGJyZWFrcG9pbnQgKmIsCitAQCAtMTAyMzQsNiArMTAzNDIs OSBAQCB1cGRhdGVfYnJlYWtwb2ludF9sb2NhdGlvbnMgKHN0cnVjdCBicmVha3BvaW50ICpiLAog ICAgICByZXR1cm47CiAgCiAgICBiLT5sb2MgPSBOVUxMOwpAQCAtODI5LDcgKzg1Niw3IEBAIGlu ZGV4IDc4NTE1NWMuLjYzZDczNmYgMTAwNjQ0CiAgCiAgICBmb3IgKGkgPSAwOyBpIDwgc2Fscy5u ZWx0czsgKytpKQogICAgICB7Ci1AQCAtMTAyMjcsMTEgKzEwMzM4LDcgQEAgdXBkYXRlX2JyZWFr cG9pbnRfbG9jYXRpb25zIChzdHJ1Y3QgYnJlYWtwb2ludCAqYiwKK0BAIC0xMDI2MSwxMSArMTAz NzIsNyBAQCB1cGRhdGVfYnJlYWtwb2ludF9sb2NhdGlvbnMgKHN0cnVjdCBicmVha3BvaW50ICpi LAogIAkgICAgfQogIAl9CiAgCkBAIC04NDIsNyArODY5LDcgQEAgaW5kZXggNzg1MTU1Yy4uNjNk NzM2ZiAxMDA2NDQKICAJYi0+c291cmNlX2ZpbGUgPSB4c3RyZHVwIChzYWxzLnNhbHNbaV0uc3lt dGFiLT5maWxlbmFtZSk7CiAgCiAgICAgICAgaWYgKGItPmxpbmVfbnVtYmVyID09IDApCi1AQCAt MTAzMTQsNiArMTA0MjEsNyBAQCBicmVha3BvaW50X3JlX3NldF9vbmUgKHZvaWQgKmJpbnQpCitA QCAtMTAzNDgsNiArMTA0NTUsNyBAQCBicmVha3BvaW50X3JlX3NldF9vbmUgKHZvaWQgKmJpbnQp CiAgICAgIGNhc2UgYnBfdHJhY2Vwb2ludDoKICAgICAgY2FzZSBicF9mYXN0X3RyYWNlcG9pbnQ6 CiAgICAgIGNhc2UgYnBfc3RhdGljX3RyYWNlcG9pbnQ6CkBAIC04NTAsNyArODc3LDcgQEAgaW5k ZXggNzg1MTU1Yy4uNjNkNzM2ZiAxMDA2NDQKICAgICAgICAvKiBEbyBub3QgYXR0ZW1wdCB0byBy ZS1zZXQgYnJlYWtwb2ludHMgZGlzYWJsZWQgZHVyaW5nIHN0YXJ0dXAuICAqLwogICAgICAgIGlm IChiLT5lbmFibGVfc3RhdGUgPT0gYnBfc3RhcnR1cF9kaXNhYmxlZCkKICAJcmV0dXJuIDA7Ci1A QCAtMTA0ODQsNiArMTA1OTIsNyBAQCBicmVha3BvaW50X3JlX3NldF9vbmUgKHZvaWQgKmJpbnQp CitAQCAtMTA1MTgsNiArMTA2MjYsNyBAQCBicmVha3BvaW50X3JlX3NldF9vbmUgKHZvaWQgKmJp bnQpCiAgICAgIGNhc2UgYnBfZXhjZXB0aW9uOgogICAgICBjYXNlIGJwX2V4Y2VwdGlvbl9yZXN1 bWU6CiAgICAgIGNhc2UgYnBfaml0X2V2ZW50OgpAQCAtODU4LDcgKzg4NSw3IEBAIGluZGV4IDc4 NTE1NWMuLjYzZDczNmYgMTAwNjQ0CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAKLUBAIC0xMDY1 NiwxMSArMTA3NjUsMjUgQEAgbWFwX2JyZWFrcG9pbnRfbnVtYmVycyAoY2hhciAqYXJncywgdm9p ZCAoKmZ1bmN0aW9uKSAoc3RydWN0IGJyZWFrcG9pbnQgKiwKK0BAIC0xMDY5MiwxMSArMTA4MDEs MjUgQEAgbWFwX2JyZWFrcG9pbnRfbnVtYmVycyAoY2hhciAqYXJncywgdm9pZCAoKmZ1bmN0aW9u KSAoc3RydWN0IGJyZWFrcG9pbnQgKiwKICAJICBBTExfQlJFQUtQT0lOVFNfU0FGRSAoYiwgdG1w KQogIAkgICAgaWYgKGItPm51bWJlciA9PSBudW0pCiAgCSAgICAgIHsKQEAgLTg4OCw3ICs5MTUs NyBAQCBpbmRleCA3ODUxNTVjLi42M2Q3MzZmIDEwMDY0NAogIAkJYnJlYWs7CiAgCSAgICAgIH0K ICAJICBpZiAobWF0Y2ggPT0gMCkKLUBAIC0xMTc2OSw2ICsxMTg5MiwyMiBAQCBhbGxfdHJhY2Vw b2ludHMgKCkKK0BAIC0xMTgxMSw2ICsxMTkzNCwyMiBAQCBhbGxfdHJhY2Vwb2ludHMgKCkKICAg IHJldHVybiB0cF92ZWM7CiAgfQogIApAQCAtOTExLDcgKzkzOCw3IEBAIGluZGV4IDc4NTE1NWMu LjYzZDczNmYgMTAwNjQ0CiAgDAogIC8qIFRoaXMgaGVscCBzdHJpbmcgaXMgdXNlZCBmb3IgdGhl IGJyZWFrLCBoYnJlYWssIHRicmVhayBhbmQgdGhicmVhawogICAgIGNvbW1hbmRzLiAgSXQgaXMg ZGVmaW5lZCBhcyBhIG1hY3JvIHRvIHByZXZlbnQgZHVwbGljYXRpb24uCi1AQCAtMTE4NTQsNiAr MTE5OTMsMTA3IEBAIGl0ZXJhdGVfb3Zlcl9icmVha3BvaW50cyAoaW50ICgqY2FsbGJhY2spIChz dHJ1Y3QgYnJlYWtwb2ludCAqLCB2b2lkICopLAorQEAgLTExODk2LDYgKzEyMDM1LDEwNyBAQCBp dGVyYXRlX292ZXJfYnJlYWtwb2ludHMgKGludCAoKmNhbGxiYWNrKSAoc3RydWN0IGJyZWFrcG9p bnQgKiwgdm9pZCAqKSwKICAgIHJldHVybiBOVUxMOwogIH0KICAKQEAgLTEwMTksNyArMTA0Niw3 IEBAIGluZGV4IDc4NTE1NWMuLjYzZDczNmYgMTAwNjQ0CiAgdm9pZAogIF9pbml0aWFsaXplX2Jy ZWFrcG9pbnQgKHZvaWQpCiAgewotQEAgLTEyMzg4LDQgKzEyNjI4LDUgQEAgaW5mZXJpb3IgaW4g YWxsLXN0b3AgbW9kZSwgZ2RiIGJlaGF2ZXMgYXMgaWYgYWx3YXlzLWluc2VydGVkIG1vZGUgaXMg b2ZmLiIpLAorQEAgLTEyNDMwLDQgKzEyNjcwLDUgQEAgaW5mZXJpb3IgaW4gYWxsLXN0b3AgbW9k ZSwgZ2RiIGJlaGF2ZXMgYXMgaWYgYWx3YXlzLWluc2VydGVkIG1vZGUgaXMgb2ZmLiIpLAogICAg YXV0b21hdGljX2hhcmR3YXJlX2JyZWFrcG9pbnRzID0gMTsKICAKICAgIG9ic2VydmVyX2F0dGFj aF9hYm91dF90b19wcm9jZWVkIChicmVha3BvaW50X2Fib3V0X3RvX3Byb2NlZWQpOwpAQCAtMTA0 MCw3ICsxMDY3LDcgQEAgaW5kZXggMmQ4MTVjMi4uNjZiM2VjZSAxMDA2NDQKICAKICAvKiBTdGF0 ZXMgb2YgZW5hYmxlbWVudCBvZiBicmVha3BvaW50LiAgKi8KIGRpZmYgLS1naXQgYS9nZGIvYy10 eXBlcHJpbnQuYyBiL2dkYi9jLXR5cGVwcmludC5jCi1pbmRleCBmZWVlODZkLi4zNjNjNjJiIDEw MDY0NAoraW5kZXggYzg4OTI2NC4uMzE1NWFmNyAxMDA2NDQKIC0tLSBhL2dkYi9jLXR5cGVwcmlu dC5jCiArKysgYi9nZGIvYy10eXBlcHJpbnQuYwogQEAgLTYwOSw5ICs2MDksMTQgQEAgY190eXBl X3ByaW50X3ZhcnNwZWNfc3VmZml4IChzdHJ1Y3QgdHlwZSAqdHlwZSwKQEAgLTEwNjEsOCArMTA4 OCwzOSBAQCBpbmRleCBmZWVlODZkLi4zNjNjNjJiIDEwMDY0NAogIAlmcHJpbnRmX2ZpbHRlcmVk IChzdHJlYW0sICJdIik7CiAgCiAgCWNfdHlwZV9wcmludF92YXJzcGVjX3N1ZmZpeCAoVFlQRV9U QVJHRVRfVFlQRSAodHlwZSksIHN0cmVhbSwKK2RpZmYgLS1naXQgYS9nZGIvZGF0YS1kaXJlY3Rv cnkvTWFrZWZpbGUuaW4gYi9nZGIvZGF0YS1kaXJlY3RvcnkvTWFrZWZpbGUuaW4KK2luZGV4IDU2 NWE4MzcuLmM5ZmYwZGUgMTAwNjQ0CistLS0gYS9nZGIvZGF0YS1kaXJlY3RvcnkvTWFrZWZpbGUu aW4KKysrKyBiL2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgorQEAgLTUxLDExICs1MSwy MyBAQCBTWVNDQUxMU19GSUxFUyA9IFwKKyBQWVRIT05fRElSID0gcHl0aG9uCisgUFlUSE9OX0lO U1RBTExfRElSID0gJChERVNURElSKSQoR0RCX0RBVEFESVIpLyQoUFlUSE9OX0RJUikKKyBQWVRI T05fRklMRVMgPSBcCisrCWdkYi9GcmFtZUl0ZXJhdG9yLnB5IFwKKysJZ2RiL0ZyYW1lV3JhcHBl ci5weSBcCisgCWdkYi9fX2luaXRfXy5weSBcCistCWdkYi90eXBlcy5weSBcCistCWdkYi9wcmlu dGluZy5weSBcCisrCWdkYi9iYWNrdHJhY2UucHkgXAorIAlnZGIvY29tbWFuZC9fX2luaXRfXy5w eSBcCistCWdkYi9jb21tYW5kL3ByZXR0eV9wcmludGVycy5weQorKwlnZGIvY29tbWFuZC9hbGlh cy5weSBcCisrCWdkYi9jb21tYW5kL2JhY2t0cmFjZS5weSBcCisrCWdkYi9jb21tYW5kL2lnbm9y ZV9lcnJvcnMucHkgXAorKwlnZGIvY29tbWFuZC9wYWhvbGUucHkgXAorKwlnZGIvY29tbWFuZC9w cmV0dHlfcHJpbnRlcnMucHkgXAorKwlnZGIvY29tbWFuZC9yZXF1aXJlLnB5IFwKKysJZ2RiL2Nv bW1hbmQvdXB0by5weSBcCisrCWdkYi9mdW5jdGlvbi9fX2luaXRfXy5weSBcCisrCWdkYi9mdW5j dGlvbi9jYWxsZXJfaXMucHkgXAorKwlnZGIvZnVuY3Rpb24vaW5fc2NvcGUucHkgXAorKwlnZGIv cHJpbnRpbmcucHkgXAorKwlnZGIvdHlwZXMucHkKKyAKKyBGTEFHU19UT19QQVNTID0gXAorIAki cHJlZml4PSQocHJlZml4KSIgXAogZGlmZiAtLWdpdCBhL2dkYi9kZWZzLmggYi9nZGIvZGVmcy5o Ci1pbmRleCA5ZDhmNmZjLi4yMjkzNzhhIDEwMDY0NAoraW5kZXggNmE5MGIwOC4uMzFkNTVkZSAx MDA2NDQKIC0tLSBhL2dkYi9kZWZzLmgKICsrKyBiL2dkYi9kZWZzLmgKIEBAIC0zOTgsNiArMzk4 LDggQEAgZXh0ZXJuIHN0cnVjdCBjbGVhbnVwICptYWtlX2NsZWFudXBfcmVzdG9yZV9wYWdlX2lu Zm8gKHZvaWQpOwpAQCAtMTA3NCw4ICsxMTMyLDk4IEBAIGluZGV4IDlkOGY2ZmMuLjIyOTM3OGEg MTAwNjQ0CiAgZXh0ZXJuIGNoYXIgKmdkYl9yZWFscGF0aCAoY29uc3QgY2hhciAqKTsKICBleHRl cm4gY2hhciAqeGZ1bGxwYXRoIChjb25zdCBjaGFyICopOwogIAorZGlmZiAtLWdpdCBhL2dkYi9k b2MvZ2RiLnRleGluZm8gYi9nZGIvZG9jL2dkYi50ZXhpbmZvCitpbmRleCBkNDdhNDg0Li5jODYw Yzg3IDEwMDY0NAorLS0tIGEvZ2RiL2RvYy9nZGIudGV4aW5mbworKysrIGIvZ2RiL2RvYy9nZGIu dGV4aW5mbworQEAgLTExNzcsNiArMTE3NywxNiBAQCBmb3IgcmVtb3RlIGRlYnVnZ2luZy4KKyBS dW4gdXNpbmcgQHZhcntkZXZpY2V9IGZvciB5b3VyIHByb2dyYW0ncyBzdGFuZGFyZCBpbnB1dCBh bmQgb3V0cHV0LgorIEBjIEZJWE1FOiBraW5nZG9uIHRoaW5rcyB0aGVyZSBpcyBtb3JlIHRvIC10 dHkuICBJbnZlc3RpZ2F0ZS4KKyAKKytAaXRlbSAtUAorK0BjaW5kZXggQGNvZGV7LVB9CisrQGl0 ZW14IC0tcHl0aG9uCisrQGNpbmRleCBAY29kZXstLXB5dGhvbn0KKytDaGFuZ2UgaW50ZXJwcmV0 YXRpb24gb2YgY29tbWFuZCBsaW5lIHNvIHRoYXQgdGhlIGFyZ3VtZW50IGltbWVkaWF0ZWx5Cisr Zm9sbG93aW5nIHRoaXMgc3dpdGNoIGlzIHRha2VuIHRvIGJlIHRoZSBuYW1lIG9mIGEgUHl0aG9u IHNjcmlwdCBmaWxlLgorK1RoaXMgb3B0aW9uIHN0b3BzIG9wdGlvbiBwcm9jZXNzaW5nOyBzdWJz ZXF1ZW50IG9wdGlvbnMgYXJlIHBhc3NlZCB0bworK1B5dGhvbiBhcyBAY29kZXtzeXMuYXJndn0u ICBUaGlzIG9wdGlvbiBpcyBvbmx5IGF2YWlsYWJsZSBpZiBQeXRob24KKytzY3JpcHRpbmcgc3Vw cG9ydCB3YXMgZW5hYmxlZCB3aGVuIEB2YWx1ZXtHREJOfSB3YXMgY29uZmlndXJlZC4KKysKKyBA YyByZXNvbHZlIHRoZSBzaXR1YXRpb24gb2YgdGhlc2UgZXZlbnR1YWxseQorIEBpdGVtIC10dWkK KyBAY2luZGV4IEBjb2Rley0tdHVpfQorQEAgLTIwNjY1LDggKzIwNjc1LDYgQEAgY29udGFpbmlu ZyBAY29kZXtlbmR9LiAgRm9yIGV4YW1wbGU6CisgCisgQHNtYWxsZXhhbXBsZQorIChAdmFsdWV7 R0RCUH0pIHB5dGhvbgorLVR5cGUgcHl0aG9uIHNjcmlwdAorLUVuZCB3aXRoIGEgbGluZSBzYXlp bmcganVzdCAiZW5kIi4KKyA+cHJpbnQgMjMKKyA+ZW5kCisgMjMKK0BAIC0yMDY3OSw2ICsyMDY4 NywxNCBAQCBpbiBhIFB5dGhvbiBzY3JpcHQuICBUaGlzIGNhbiBiZSBjb250cm9sbGVkIHVzaW5n IEBjb2Rle21haW50IHNldAorIHB5dGhvbiBwcmludC1zdGFja306IGlmIEBjb2Rle29ufSwgdGhl IGRlZmF1bHQsIHRoZW4gUHl0aG9uIHN0YWNrCisgcHJpbnRpbmcgaXMgZW5hYmxlZDsgaWYgQGNv ZGV7b2ZmfSwgdGhlbiBQeXRob24gc3RhY2sgcHJpbnRpbmcgaXMKKyBkaXNhYmxlZC4KKysKKytA a2luZGV4IG1haW50IHNldCBweXRob24gYXV0by1sb2FkCisrQGl0ZW0gbWFpbnQgc2V0IHB5dGhv biBhdXRvLWxvYWQKKytCeSBkZWZhdWx0LCBAdmFsdWV7R0RCTn0gd2lsbCBhdHRlbXB0IHRvIGF1 dG9tYXRpY2FsbHkgbG9hZCBQeXRob24KKytjb2RlIHdoZW4gYW4gb2JqZWN0IGZpbGUgaXMgb3Bl bmVkLiAgVGhpcyBjYW4gYmUgY29udHJvbGxlZCB1c2luZworK0Bjb2Rle21haW50IHNldCBweXRo b24gYXV0by1sb2FkfTogaWYgQGNvZGV7b259LCB0aGUgZGVmYXVsdCwgdGhlbgorK1B5dGhvbiBh dXRvLWxvYWRpbmcgaXMgZW5hYmxlZDsgaWYgQGNvZGV7b2ZmfSwgdGhlbiBQeXRob24KKythdXRv LWxvYWRpbmcgaXMgZGlzYWJsZWQuCisgQGVuZCB0YWJsZQorIAorIEl0IGlzIGFsc28gcG9zc2li bGUgdG8gZXhlY3V0ZSBhIFB5dGhvbiBzY3JpcHQgZnJvbSB0aGUgQHZhbHVle0dEQk59CitAQCAt MjA3MDAsNiArMjA3MTYsMTQgQEAgYW5kIHRodXMgaXMgYWx3YXlzIGF2YWlsYWJsZS4KKyBAY2lu ZGV4IHB5dGhvbiBhcGkKKyBAY2luZGV4IHByb2dyYW1taW5nIGluIHB5dGhvbgorIAorK1lvdSBj YW4gZ2V0IHF1aWNrIG9ubGluZSBoZWxwIGZvciBAdmFsdWV7R0RCTn0ncyBQeXRob24gQVBJIGJ5 IGlzc3VpbmcKKyt0aGUgY29tbWFuZCBAd3tAa2Jke3B5dGhvbiBoZWxwIChnZGIpfX0uCisrCisr RnVuY3Rpb25zIGFuZCBtZXRob2RzIHdoaWNoIGhhdmUgdHdvIG9yIG1vcmUgb3B0aW9uYWwgYXJn dW1lbnRzIGFsbG93CisrdGhlbSB0byBiZSBzcGVjaWZpZWQgdXNpbmcga2V5d29yZCBzeW50YXgu ICBUaGlzIGFsbG93cyBwYXNzaW5nIHNvbWUKKytvcHRpb25hbCBhcmd1bWVudHMgd2hpbGUgc2tp cHBpbmcgb3RoZXJzLiAgRXhhbXBsZToKKytAd3tAY29kZXtnZGIuc29tZV9mdW5jdGlvbiAoJ2Zv bycsIGJhciA9IDEsIGJheiA9IDIpfX0uCisrCisgQGNpbmRleCBweXRob24gc3Rkb3V0CisgQGNp bmRleCBweXRob24gcGFnaW5hdGlvbgorIEF0IHN0YXJ0dXAsIEB2YWx1ZXtHREJOfSBvdmVycmlk ZXMgUHl0aG9uJ3MgQGNvZGV7c3lzLnN0ZG91dH0gYW5kCitAQCAtMjA3MTEsNyArMjA3MzUsNyBA QCBzaXR1YXRpb24sIGEgUHl0aG9uIEBjb2Rle0tleWJvYXJkSW50ZXJydXB0fSBleGNlcHRpb24g aXMgdGhyb3duLgorIEBtZW51CisgKiBCYXNpYyBQeXRob246OiAgICAgICAgICAgICAgICBCYXNp YyBQeXRob24gRnVuY3Rpb25zLgorICogRXhjZXB0aW9uIEhhbmRsaW5nOjoKKy0qIFZhbHVlcyBG cm9tIEluZmVyaW9yOjoKKysqIFZhbHVlcyBGcm9tIEluZmVyaW9yOjoJUHl0aG9uIHJlcHJlc2Vu dGF0aW9uIG9mIHZhbHVlcy4KKyAqIFR5cGVzIEluIFB5dGhvbjo6ICAgICAgICAgICAgIFB5dGhv biByZXByZXNlbnRhdGlvbiBvZiB0eXBlcy4KKyAqIFByZXR0eSBQcmludGluZyBBUEk6OiAgICAg ICAgIFByZXR0eS1wcmludGluZyB2YWx1ZXMuCisgKiBTZWxlY3RpbmcgUHJldHR5LVByaW50ZXJz OjogICBIb3cgR0RCIGNob29zZXMgYSBwcmV0dHktcHJpbnRlci4KK0BAIC0yMDc3Miw2ICsyMDc5 NiwxMiBAQCBSZXR1cm4gYSBzZXF1ZW5jZSBob2xkaW5nIGFsbCBvZiBAdmFsdWV7R0RCTn0ncyBi cmVha3BvaW50cy4KKyBAeHJlZntCcmVha3BvaW50cyBJbiBQeXRob259LCBmb3IgbW9yZSBpbmZv cm1hdGlvbi4KKyBAZW5kIGRlZnVuCisgCisrQGZpbmRleCBnZGIuYnJlYWtwb2ludHMKKytAZGVm dW4gYnJlYWtwb2ludHMKKytSZXR1cm4gYSBzZXF1ZW5jZSBob2xkaW5nIGFsbCBvZiBAdmFsdWV7 R0RCTn0ncyBicmVha3BvaW50cy4KKytAeHJlZntCcmVha3BvaW50cyBJbiBQeXRob259LCBmb3Ig bW9yZSBpbmZvcm1hdGlvbi4KKytAZW5kIGRlZnVuCisrCisgQGZpbmRleCBnZGIucGFyYW1ldGVy CisgQGRlZnVuIHBhcmFtZXRlciBwYXJhbWV0ZXIKKyBSZXR1cm4gdGhlIHZhbHVlIG9mIGEgQHZh bHVle0dEQk59IHBhcmFtZXRlci4gIEB2YXJ7cGFyYW1ldGVyfSBpcyBhCitAQCAtMjA3ODksNiAr MjA4MTksNyBAQCB0eXBlLCBhbmQgcmV0dXJuZWQuCisgQGRlZnVuIGhpc3RvcnkgbnVtYmVyCisg UmV0dXJuIGEgdmFsdWUgZnJvbSBAdmFsdWV7R0RCTn0ncyB2YWx1ZSBoaXN0b3J5IChAcHhyZWZ7 VmFsdWUKKyBIaXN0b3J5fSkuICBAdmFye251bWJlcn0gaW5kaWNhdGVzIHdoaWNoIGhpc3Rvcnkg ZWxlbWVudCB0byByZXR1cm4uCisrCisgSWYgQHZhcntudW1iZXJ9IGlzIG5lZ2F0aXZlLCB0aGVu IEB2YWx1ZXtHREJOfSB3aWxsIHRha2UgaXRzIGFic29sdXRlIHZhbHVlCisgYW5kIGNvdW50IGJh Y2t3YXJkIGZyb20gdGhlIGxhc3QgZWxlbWVudCAoaS5lLiwgdGhlIG1vc3QgcmVjZW50IGVsZW1l bnQpIHRvCisgZmluZCB0aGUgdmFsdWUgdG8gcmV0dXJuLiAgSWYgQHZhcntudW1iZXJ9IGlzIHpl cm8sIHRoZW4gQHZhbHVle0dEQk59IHdpbGwKIGRpZmYgLS1naXQgYS9nZGIvZG9jL2dkYmludC50 ZXhpbmZvIGIvZ2RiL2RvYy9nZGJpbnQudGV4aW5mbwotaW5kZXggNGExMTJhYS4uN2I2YmVkNCAx MDA2NDQKK2luZGV4IDgxNDljYjkuLjQ4MTI1NTggMTAwNjQ0CiAtLS0gYS9nZGIvZG9jL2dkYmlu dC50ZXhpbmZvCiArKysgYi9nZGIvZG9jL2dkYmludC50ZXhpbmZvCiBAQCAtMjEwNCw2ICsyMTA0 LDE4IEBAIHRpbWUsIGFuZCBzbyB3ZSBhdHRlbXB0IHRvIGhhbmRsZSBzeW1ib2xzIGluY3JlbWVu dGFsbHkuICBGb3IgaW5zdGFuY2UsCkBAIC0xMjA0LDcgKzEzNTIsNyBAQCBpbmRleCA0YTExMmFh Li43YjZiZWQ0IDEwMDY0NAogIAogIEBub2RlIExhbmd1YWdlIFN1cHBvcnQKIGRpZmYgLS1naXQg YS9nZGIvZG9jL29ic2VydmVyLnRleGkgYi9nZGIvZG9jL29ic2VydmVyLnRleGkKLWluZGV4IGUx OWI4ZWQuLjM0M2UxNjAgMTAwNjQ0CitpbmRleCBkMTZjODY1Li5kOGQyNGQ5IDEwMDY0NAogLS0t IGEvZ2RiL2RvYy9vYnNlcnZlci50ZXhpCiArKysgYi9nZGIvZG9jL29ic2VydmVyLnRleGkKIEBA IC0yMjMsNiArMjIzLDExIEBAIEJ5dGVzIGZyb20gQHZhcntkYXRhfSB0byBAdmFye2RhdGF9ICsg QHZhcntsZW59IGhhdmUgYmVlbiB3cml0dGVuCkBAIC0xMjIwLDEwICsxMzY4LDEwIEBAIGluZGV4 IGUxOWI4ZWQuLjM0M2UxNjAgMTAwNjQ0CiAgVGhpcyBvYnNlcnZlciBpcyB1c2VkIGZvciBpbnRl cm5hbCB0ZXN0aW5nLiAgRG8gbm90IHVzZS4gIAogIFNlZSB0ZXN0c3VpdGUvZ2RiLmdkYi9vYnNl cnZlci5leHAuCiBkaWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMmV4cHIuYyBiL2dkYi9kd2FyZjJleHBy LmMKLWluZGV4IDRlZjZkNTUuLjFhMzU4MGEgMTAwNjQ0CitpbmRleCBhYThjOGNmLi41MzdiNjli IDEwMDY0NAogLS0tIGEvZ2RiL2R3YXJmMmV4cHIuYwogKysrIGIvZ2RiL2R3YXJmMmV4cHIuYwot QEAgLTkwMCw2ICs5MDAsMTMgQEAgZXhlY3V0ZV9zdGFja19vcCAoc3RydWN0IGR3YXJmX2V4cHJf Y29udGV4dCAqY3R4LAorQEAgLTkwNCw2ICs5MDQsMTMgQEAgZXhlY3V0ZV9zdGFja19vcCAoc3Ry dWN0IGR3YXJmX2V4cHJfY29udGV4dCAqY3R4LAogIAkgIGN0eC0+ZHdhcmZfY2FsbCAoY3R4LCBy ZXN1bHQpOwogIAkgIGdvdG8gbm9fcHVzaDsKICAKQEAgLTEyNTksMTAgKzE0MDcsMTAgQEAgaW5k ZXggMzg1OGRjOC4uYTE3MjU4NSAxMDA2NDQKICAgIC8qIFRoZSBjdXJyZW50IGRlcHRoIG9mIGR3 YXJmIGV4cHJlc3Npb24gcmVjdXJzaW9uLCB2aWEgRFdfT1BfY2FsbCosCiAgICAgICBEV19PUF9m YnJlZywgRFdfT1BfcHVzaF9vYmplY3RfYWRkcmVzcywgZXRjLiwgYW5kIHRoZSBtYXhpbXVtCiBk aWZmIC0tZ2l0IGEvZ2RiL2R3YXJmMmxvYy5jIGIvZ2RiL2R3YXJmMmxvYy5jCi1pbmRleCAxMmU0 ZGFjLi45NDNiMzdkIDEwMDY0NAoraW5kZXggNGVjMjU0OS4uNjBjMzhlOSAxMDA2NDQKIC0tLSBh L2dkYi9kd2FyZjJsb2MuYwogKysrIGIvZ2RiL2R3YXJmMmxvYy5jCi1AQCAtMTMzLDYgKzEzMyw5 IEBAIHN0cnVjdCBkd2FyZl9leHByX2JhdG9uCitAQCAtMTM0LDYgKzEzNCw5IEBAIHN0cnVjdCBk d2FyZl9leHByX2JhdG9uCiAgewogICAgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lOwogICAgc3Ry dWN0IGR3YXJmMl9wZXJfY3VfZGF0YSAqcGVyX2N1OwpAQCAtMTI3Miw3ICsxNDIwLDcgQEAgaW5k ZXggMTJlNGRhYy4uOTQzYjM3ZCAxMDA2NDQKICB9OwogIAogIC8qIEhlbHBlciBmdW5jdGlvbnMg Zm9yIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVzYy4gICovCi1AQCAtMjAxLDIzICsyMDQsMzMgQEAg ZHdhcmZfZXhwcl9mcmFtZV9iYXNlXzEgKHN0cnVjdCBzeW1ib2wgKmZyYW1lZnVuYywgQ09SRV9B RERSIHBjLAorQEAgLTIwMiwyMyArMjA1LDMzIEBAIGR3YXJmX2V4cHJfZnJhbWVfYmFzZV8xIChz dHJ1Y3Qgc3ltYm9sICpmcmFtZWZ1bmMsIENPUkVfQUREUiBwYywKICAgICAgICBzeW1iYXRvbiA9 IFNZTUJPTF9MT0NBVElPTl9CQVRPTiAoZnJhbWVmdW5jKTsKICAgICAgICAqc3RhcnQgPSBkd2Fy ZjJfZmluZF9sb2NhdGlvbl9leHByZXNzaW9uIChzeW1iYXRvbiwgbGVuZ3RoLCBwYyk7CiAgICAg IH0KQEAgLTEzMTUsNyArMTQ2Myw3IEBAIGluZGV4IDEyZTRkYWMuLjk0M2IzN2QgMTAwNjQ0CiAg fQogIAogIC8qIEhlbHBlciBmdW5jdGlvbiBmb3IgZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjLiAg Q29tcHV0ZXMgdGhlIENGQSBmb3IKLUBAIC0yODQsNiArMjk3LDE1OSBAQCBkd2FyZl9leHByX2R3 YXJmX2NhbGwgKHN0cnVjdCBkd2FyZl9leHByX2NvbnRleHQgKmN0eCwgc2l6ZV90IGRpZV9vZmZz ZXQpCitAQCAtMjg2LDYgKzI5OSwxNTkgQEAgZHdhcmZfZXhwcl9kd2FyZl9jYWxsIChzdHJ1Y3Qg ZHdhcmZfZXhwcl9jb250ZXh0ICpjdHgsIHNpemVfdCBkaWVfb2Zmc2V0KQogIAkJCSAgICBjdHgt PmdldF9mcmFtZV9wYywgY3R4LT5iYXRvbik7CiAgfQogIApAQCAtMTQ3NSw3ICsxNjIzLDcgQEAg aW5kZXggMTJlNGRhYy4uOTQzYjM3ZCAxMDA2NDQKICBzdHJ1Y3QgcGllY2VfY2xvc3VyZQogIHsK ICAgIC8qIFJlZmVyZW5jZSBjb3VudC4gICovCi1AQCAtMTAzOCwxMCArMTIwNCw4IEBAIGR3YXJm Ml9ldmFsdWF0ZV9sb2NfZGVzY19mdWxsIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGZyYW1l X2luZm8gKmZyYW1lLAorQEAgLTEwNDUsMTAgKzEyMTEsOCBAQCBkd2FyZjJfZXZhbHVhdGVfbG9j X2Rlc2NfZnVsbCAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwK ICAJCQkgICAgICAgTE9OR0VTVCBieXRlX29mZnNldCkKICB7CiAgICBzdHJ1Y3QgdmFsdWUgKnJl dHZhbDsKQEAgLTE0ODYsNyArMTYzNCw3IEBAIGluZGV4IDEyZTRkYWMuLjk0M2IzN2QgMTAwNjQ0 CiAgCiAgICBpZiAoYnl0ZV9vZmZzZXQgPCAwKQogICAgICBpbnZhbGlkX3N5bnRoZXRpY19wb2lu dGVyICgpOwotQEAgLTEwNTQsMjUgKzEyMTgsMTAgQEAgZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNj X2Z1bGwgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsCitAQCAt MTA2MSwyNSArMTIyNSwxMCBAQCBkd2FyZjJfZXZhbHVhdGVfbG9jX2Rlc2NfZnVsbCAoc3RydWN0 IHR5cGUgKnR5cGUsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwKICAgICAgICByZXR1cm4gcmV0 dmFsOwogICAgICB9CiAgCkBAIC0xNTE0LDcgKzE2NjIsNyBAQCBpbmRleCAxMmU0ZGFjLi45NDNi MzdkIDEwMDY0NAogICAgaWYgKGN0eC0+bnVtX3BpZWNlcyA+IDApCiAgICAgIHsKICAgICAgICBz dHJ1Y3QgcGllY2VfY2xvc3VyZSAqYzsKLUBAIC0xMTE2LDYgKzEyNjUsMTUgQEAgZHdhcmYyX2V2 YWx1YXRlX2xvY19kZXNjX2Z1bGwgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZnJhbWVfaW5m byAqZnJhbWUsCitAQCAtMTEyMyw2ICsxMjcyLDE1IEBAIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVz Y19mdWxsIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLAogIAkg ICAgQ09SRV9BRERSIGFkZHJlc3MgPSBkd2FyZl9leHByX2ZldGNoX2FkZHJlc3MgKGN0eCwgMCk7 CiAgCSAgICBpbnQgaW5fc3RhY2tfbWVtb3J5ID0gZHdhcmZfZXhwcl9mZXRjaF9pbl9zdGFja19t ZW1vcnkgKGN0eCwgMCk7CiAgCkBAIC0xNTMwLDcgKzE2NzgsNyBAQCBpbmRleCAxMmU0ZGFjLi45 NDNiMzdkIDEwMDY0NAogIAkgICAgcmV0dmFsID0gYWxsb2NhdGVfdmFsdWUgKHR5cGUpOwogIAkg ICAgVkFMVUVfTFZBTCAocmV0dmFsKSA9IGx2YWxfbWVtb3J5OwogIAkgICAgc2V0X3ZhbHVlX2xh enkgKHJldHZhbCwgMSk7Ci1AQCAtMjgxMCwxMSArMjk2OCw1MSBAQCBsb2NsaXN0X3RyYWNlcG9p bnRfdmFyX3JlZiAoc3RydWN0IHN5bWJvbCAqc3ltYm9sLCBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJj aCwKK0BAIC0yODIyLDExICsyOTgwLDUxIEBAIGxvY2xpc3RfdHJhY2Vwb2ludF92YXJfcmVmIChz dHJ1Y3Qgc3ltYm9sICpzeW1ib2wsIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAogIAkJCSBkbGJh dG9uLT5wZXJfY3UpOwogIH0KICAKQEAgLTE2MDQsMTAgKzE3NTIsMTAgQEAgaW5kZXggZWU1MjUw Ni4uNmE3N2MzZiAxMDA2NDQKICAKICAjZW5kaWYgLyogZHdhcmYybG9jLmggKi8KIGRpZmYgLS1n aXQgYS9nZGIvZHdhcmYycmVhZC5jIGIvZ2RiL2R3YXJmMnJlYWQuYwotaW5kZXggODJhMmYwYi4u MzI3MTY0YyAxMDA2NDQKK2luZGV4IDIwMTUxM2QuLmY0OWExNDkgMTAwNjQ0CiAtLS0gYS9nZGIv ZHdhcmYycmVhZC5jCiArKysgYi9nZGIvZHdhcmYycmVhZC5jCi1AQCAtMTIwNiw2ICsxMjA2LDkg QEAgc3RhdGljIHZvaWQgZmlsbF9pbl9sb2NsaXN0X2JhdG9uIChzdHJ1Y3QgZHdhcmYyX2N1ICpj dSwKK0BAIC0xMjExLDYgKzEyMTEsOSBAQCBzdGF0aWMgdm9pZCBmaWxsX2luX2xvY2xpc3RfYmF0 b24gKHN0cnVjdCBkd2FyZjJfY3UgKmN1LAogIAkJCQkgICBzdHJ1Y3QgZHdhcmYyX2xvY2xpc3Rf YmF0b24gKmJhdG9uLAogIAkJCQkgICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyKTsKICAKQEAgLTE2 MTcsNyArMTc2NSw3IEBAIGluZGV4IDgyYTJmMGIuLjMyNzE2NGMgMTAwNjQ0CiAgc3RhdGljIHZv aWQgZHdhcmYyX3N5bWJvbF9tYXJrX2NvbXB1dGVkIChzdHJ1Y3QgYXR0cmlidXRlICphdHRyLAog IAkJCQkJIHN0cnVjdCBzeW1ib2wgKnN5bSwKICAJCQkJCSBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSk7 Ci1AQCAtMTI0MCw2ICsxMjQzLDkgQEAgc3RhdGljIHZvaWQgYWdlX2NhY2hlZF9jb21wX3VuaXRz ICh2b2lkKTsKK0BAIC0xMjQ1LDYgKzEyNDgsOSBAQCBzdGF0aWMgdm9pZCBhZ2VfY2FjaGVkX2Nv bXBfdW5pdHMgKHZvaWQpOwogIAogIHN0YXRpYyB2b2lkIGZyZWVfb25lX2NhY2hlZF9jb21wX3Vu aXQgKHZvaWQgKik7CiAgCkBAIC0xNjI3LDcgKzE3NzUsNyBAQCBpbmRleCA4MmEyZjBiLi4zMjcx NjRjIDEwMDY0NAogIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqc2V0X2RpZV90eXBlIChzdHJ1Y3QgZGll X2luZm8gKiwgc3RydWN0IHR5cGUgKiwKICAJCQkJICBzdHJ1Y3QgZHdhcmYyX2N1ICopOwogIAot QEAgLTEyNjQsNiArMTI3MCw5IEBAIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqZ2V0X2RpZV90eXBlX2F0 X29mZnNldCAodW5zaWduZWQgaW50LAorQEAgLTEyNjksNiArMTI3NSw5IEBAIHN0YXRpYyBzdHJ1 Y3QgdHlwZSAqZ2V0X2RpZV90eXBlX2F0X29mZnNldCAodW5zaWduZWQgaW50LAogIAogIHN0YXRp YyBzdHJ1Y3QgdHlwZSAqZ2V0X2RpZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0 IGR3YXJmMl9jdSAqY3UpOwogIApAQCAtMTYzNyw3ICsxNzg1LDcgQEAgaW5kZXggODJhMmYwYi4u MzI3MTY0YyAxMDA2NDQKICBzdGF0aWMgdm9pZCBkd2FyZjJfcmVsZWFzZV9xdWV1ZSAodm9pZCAq ZHVtbXkpOwogIAogIHN0YXRpYyB2b2lkIHF1ZXVlX2NvbXBfdW5pdCAoc3RydWN0IGR3YXJmMl9w ZXJfY3VfZGF0YSAqcGVyX2N1LAotQEAgLTcyMzcsNiArNzI0NiwyOSBAQCBwcm9jZXNzX2VudW1l cmF0aW9uX3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3Up CitAQCAtNzI2Myw2ICs3MjcyLDI5IEBAIHByb2Nlc3NfZW51bWVyYXRpb25fc2NvcGUgKHN0cnVj dCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIG5ld19zeW1ib2wgKGRp ZSwgdGhpc190eXBlLCBjdSk7CiAgfQogIApAQCAtMTY2Nyw3ICsxODE1LDcgQEAgaW5kZXggODJh MmYwYi4uMzI3MTY0YyAxMDA2NDQKICAvKiBFeHRyYWN0IGFsbCBpbmZvcm1hdGlvbiBmcm9tIGEg RFdfVEFHX2FycmF5X3R5cGUgRElFIGFuZCBwdXQgaXQgaW4KICAgICB0aGUgRElFJ3MgdHlwZSBm aWVsZC4gIEZvciBub3csIHRoaXMgb25seSBoYW5kbGVzIG9uZSBkaW1lbnNpb25hbAogICAgIGFy cmF5cy4gICovCi1AQCAtNzI1MCw3ICs3MjgyLDcgQEAgcmVhZF9hcnJheV90eXBlIChzdHJ1Y3Qg ZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNzI3Niw3ICs3MzA4LDcg QEAgcmVhZF9hcnJheV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9j dSAqY3UpCiAgICBzdHJ1Y3QgdHlwZSAqZWxlbWVudF90eXBlLCAqcmFuZ2VfdHlwZSwgKmluZGV4 X3R5cGU7CiAgICBzdHJ1Y3QgdHlwZSAqKnJhbmdlX3R5cGVzID0gTlVMTDsKICAgIHN0cnVjdCBh dHRyaWJ1dGUgKmF0dHI7CkBAIC0xNjc2LDcgKzE4MjQsNyBAQCBpbmRleCA4MmEyZjBiLi4zMjcx NjRjIDEwMDY0NAogICAgc3RydWN0IGNsZWFudXAgKmJhY2tfdG87CiAgICBjaGFyICpuYW1lOwog IAotQEAgLTczMDMsMTcgKzczMzUsMTEgQEAgcmVhZF9hcnJheV90eXBlIChzdHJ1Y3QgZGllX2lu Zm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNzMyOSwxNyArNzM2MSwxMSBAQCBy ZWFkX2FycmF5X3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpj dSkKICAgIHR5cGUgPSBlbGVtZW50X3R5cGU7CiAgCiAgICBpZiAocmVhZF9hcnJheV9vcmRlciAo ZGllLCBjdSkgPT0gRFdfT1JEX2NvbF9tYWpvcikKQEAgLTE2OTksNyArMTg0Nyw3IEBAIGluZGV4 IDgyYTJmMGIuLjMyNzE2NGMgMTAwNjQ0CiAgCiAgICAvKiBVbmRlcnN0YW5kIER3YXJmMiBzdXBw b3J0IGZvciB2ZWN0b3IgdHlwZXMgKGxpa2UgdGhleSBvY2N1ciBvbgogICAgICAgdGhlIFBvd2Vy UEMgdy8gQWx0aVZlYykuICBHY2MganVzdCBhZGRzIGFub3RoZXIgYXR0cmlidXRlIHRvIHRoZQot QEAgLTc4MDYsMjkgKzc4MzIsMTE0IEBAIHJlYWRfdGFnX3N0cmluZ190eXBlIChzdHJ1Y3QgZGll X2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNzgzNSwyOSArNzg2MSwxMTQg QEAgcmVhZF90YWdfc3RyaW5nX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdh cmYyX2N1ICpjdSkKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X29iamZpbGVfYXJj aCAob2JqZmlsZSk7CiAgICBzdHJ1Y3QgdHlwZSAqdHlwZSwgKnJhbmdlX3R5cGUsICppbmRleF90 eXBlLCAqY2hhcl90eXBlOwogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKQEAgLTE4MjgsNyAr MTk3Niw3IEBAIGluZGV4IDgyYTJmMGIuLjMyNzE2NGMgMTAwNjQ0CiAgICBjaGFyX3R5cGUgPSBs YW5ndWFnZV9zdHJpbmdfY2hhcl90eXBlIChjdS0+bGFuZ3VhZ2VfZGVmbiwgZ2RiYXJjaCk7CiAg ICB0eXBlID0gY3JlYXRlX3N0cmluZ190eXBlIChOVUxMLCBjaGFyX3R5cGUsIHJhbmdlX3R5cGUp OwogIAotQEAgLTgxMTAsOCArODIyMSw3IEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRp ZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTgxMzksOCArODI1MCw3IEBA IHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJf Y3UgKmN1KQogICAgc3RydWN0IHR5cGUgKmJhc2VfdHlwZTsKICAgIHN0cnVjdCB0eXBlICpyYW5n ZV90eXBlOwogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKQEAgLTE4MzgsNyArMTk4Niw3IEBA IGluZGV4IDgyYTJmMGIuLjMyNzE2NGMgMTAwNjQ0CiAgICBjaGFyICpuYW1lOwogICAgTE9OR0VT VCBuZWdhdGl2ZV9tYXNrOwogIAotQEAgLTgxMjQsNDggKzgyMzQsMTI1IEBAIHJlYWRfc3VicmFu Z2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAg LTgxNTMsNDggKzgyNjMsMTI1IEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZv ICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgaWYgKHJhbmdlX3R5cGUpCiAgICAgIHJl dHVybiByYW5nZV90eXBlOwogIApAQCAtMTk5Niw3ICsyMTQ0LDcgQEAgaW5kZXggODJhMmYwYi4u MzI3MTY0YyAxMDA2NDQKICAgICAgfQogIAogICAgLyogRHdhcmYtMiBzcGVjaWZpY2F0aW9ucyBl eHBsaWNpdGx5IGFsbG93cyB0byBjcmVhdGUgc3VicmFuZ2UgdHlwZXMKLUBAIC04MjA3LDIwICs4 Mzk0LDQxIEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVj dCBkd2FyZjJfY3UgKmN1KQorQEAgLTgyMzYsMjAgKzg0MjMsNDEgQEAgcmVhZF9zdWJyYW5nZV90 eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgCX0KICAg ICAgfQogIApAQCAtMjA1MCw3ICsyMTk4LDcgQEAgaW5kZXggODJhMmYwYi4uMzI3MTY0YyAxMDA2 NDQKICAKICAgIG5hbWUgPSBkd2FyZjJfbmFtZSAoZGllLCBjdSk7CiAgICBpZiAobmFtZSkKLUBA IC0xMDY4NiwxMCArMTA4OTQsMTIgQEAgdmFyX2RlY29kZV9sb2NhdGlvbiAoc3RydWN0IGF0dHJp YnV0ZSAqYXR0ciwgc3RydWN0IHN5bWJvbCAqc3ltLAorQEAgLTEwNzI1LDEwICsxMDkzMywxMiBA QCB2YXJfZGVjb2RlX2xvY2F0aW9uIChzdHJ1Y3QgYXR0cmlidXRlICphdHRyLCBzdHJ1Y3Qgc3lt Ym9sICpzeW0sCiAgICAgICAoaS5lLiB3aGVuIHRoZSB2YWx1ZSBvZiBhIHJlZ2lzdGVyIG9yIG1l bW9yeSBsb2NhdGlvbiBpcwogICAgICAgcmVmZXJlbmNlZCwgb3IgYSB0aHJlYWQtbG9jYWwgYmxv Y2ssIGV0Yy4pLiAgVGhlbiBhZ2FpbiwgaXQgbWlnaHQKICAgICAgIG5vdCBiZSB3b3J0aHdoaWxl LiAgSSdtIGFzc3VtaW5nIHRoYXQgaXQgaXNuJ3QgdW5sZXNzIHBlcmZvcm1hbmNlCkBAIC0yMDY1 LDcgKzIyMTMsNyBAQCBpbmRleCA4MmEyZjBiLi4zMjcxNjRjIDEwMDY0NAogIH0KICAKICAvKiBH aXZlbiBhIHBvaW50ZXIgdG8gYSBEV0FSRiBpbmZvcm1hdGlvbiBlbnRyeSwgZmlndXJlIG91dCBp ZiB3ZSBuZWVkCi1AQCAtMTA3MjcsNiArMTA5MzcsOCBAQCBuZXdfc3ltYm9sX2Z1bGwgKHN0cnVj dCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3Us CitAQCAtMTA3NjYsNiArMTA5NzYsOCBAQCBuZXdfc3ltYm9sX2Z1bGwgKHN0cnVjdCBkaWVfaW5m byAqZGllLCBzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UsCiAgICAgICAg ZWxzZQogIAlzeW0gPSBPQlNUQUNLX1pBTExPQyAoJm9iamZpbGUtPm9iamZpbGVfb2JzdGFjaywg c3RydWN0IHN5bWJvbCk7CiAgICAgICAgT0JKU1RBVCAob2JqZmlsZSwgbl9zeW1zKyspOwpAQCAt MjA3NCw3ICsyMjIyLDcgQEAgaW5kZXggODJhMmYwYi4uMzI3MTY0YyAxMDA2NDQKICAKICAgICAg ICAvKiBDYWNoZSB0aGlzIHN5bWJvbCdzIG5hbWUgYW5kIHRoZSBuYW1lJ3MgZGVtYW5nbGVkIGZv cm0gKGlmIGFueSkuICAqLwogICAgICAgIFNZTUJPTF9TRVRfTEFOR1VBR0UgKHN5bSwgY3UtPmxh bmd1YWdlKTsKLUBAIC0xMTQ5NCw2ICsxMTcwNiw5IEBAIHJlYWRfdHlwZV9kaWVfMSAoc3RydWN0 IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTExNTM4LDYgKzExNzUw LDkgQEAgcmVhZF90eXBlX2RpZV8xIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJm Ml9jdSAqY3UpCiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAKQEAgLTIwODQsNyArMjIzMiw3IEBA IGluZGV4IDgyYTJmMGIuLjMyNzE2NGMgMTAwNjQ0CiAgICByZXR1cm4gdGhpc190eXBlOwogIH0K ICAKLUBAIC0xNDI5Miw1OSArMTQ1MDcsOTcgQEAgZmlsbF9pbl9sb2NsaXN0X2JhdG9uIChzdHJ1 Y3QgZHdhcmYyX2N1ICpjdSwKK0BAIC0xNDM1MCw2MCArMTQ1NjUsOTggQEAgZmlsbF9pbl9sb2Ns aXN0X2JhdG9uIChzdHJ1Y3QgZHdhcmYyX2N1ICpjdSwKICAgIGJhdG9uLT5iYXNlX2FkZHJlc3Mg PSBjdS0+YmFzZV9hZGRyZXNzOwogIH0KICAKQEAgLTIxMjksNyArMjI3Nyw4IEBAIGluZGV4IDgy YTJmMGIuLjMyNzE2NGMgMTAwNjQ0CiAgCiAtICAgICAgaWYgKGN1LT5iYXNlX2tub3duID09IDAp CiAtCWNvbXBsYWludCAoJnN5bWZpbGVfY29tcGxhaW50cywKLS0JCSAgIF8oIkxvY2F0aW9uIGxp c3QgdXNlZCB3aXRob3V0IHNwZWNpZnlpbmcgdGhlIENVIGJhc2UgYWRkcmVzcy4iKSk7CistCQkg ICBfKCJMb2NhdGlvbiBsaXN0IHVzZWQgd2l0aG91dCAiCistCQkgICAgICJzcGVjaWZ5aW5nIHRo ZSBDVSBiYXNlIGFkZHJlc3MuIikpOwogK3N0YXRpYyBzdHJ1Y3QgZHdhcmYyX2xvY2xpc3RfYmF0 b24gKgogK2R3YXJmMl9hdHRyX3RvX2xvY2xpc3RfYmF0b24gKHN0cnVjdCBhdHRyaWJ1dGUgKmF0 dHIsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogK3sKQEAgLTIxNTcsNyArMjMwNiw4IEBAIGluZGV4 IDgyYTJmMGIuLjMyNzE2NGMgMTAwNjQ0CiArCiArICBpZiAoY3UtPmJhc2Vfa25vd24gPT0gMCkK ICsgICAgY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLAotKwkgICAgICAgXygiTG9jYXRp b24gbGlzdCB1c2VkIHdpdGhvdXQgc3BlY2lmeWluZyB0aGUgQ1UgYmFzZSBhZGRyZXNzLiIpKTsK KysJICAgICAgIF8oIkxvY2F0aW9uIGxpc3QgdXNlZCB3aXRob3V0ICIKKysJCSAic3BlY2lmeWlu ZyB0aGUgQ1UgYmFzZSBhZGRyZXNzLiIpKTsKICsKICsgIHJldHVybiBiYXRvbjsKICt9CkBAIC0y MjIzLDcgKzIzNzMsNyBAQCBpbmRleCA4MmEyZjBiLi4zMjcxNjRjIDEwMDY0NAogICAgICB9CiAg fQogIAotQEAgLTE0NjkwLDYgKzE0OTQzLDMxIEBAIG9mZnNldF9hbmRfdHlwZV9lcSAoY29uc3Qg dm9pZCAqaXRlbV9saHMsIGNvbnN0IHZvaWQgKml0ZW1fcmhzKQorQEAgLTE0NzQ5LDYgKzE1MDAy LDMxIEBAIG9mZnNldF9hbmRfdHlwZV9lcSAoY29uc3Qgdm9pZCAqaXRlbV9saHMsIGNvbnN0IHZv aWQgKml0ZW1fcmhzKQogICAgcmV0dXJuIG9mc19saHMtPm9mZnNldCA9PSBvZnNfcmhzLT5vZmZz ZXQ7CiAgfQogIApAQCAtMjI1NSw3ICsyNDA1LDcgQEAgaW5kZXggODJhMmYwYi4uMzI3MTY0YyAx MDA2NDQKICAvKiBTZXQgdGhlIHR5cGUgYXNzb2NpYXRlZCB3aXRoIERJRSB0byBUWVBFLiAgU2F2 ZSBpdCBpbiBDVSdzIGhhc2gKICAgICB0YWJsZSBpZiBuZWNlc3NhcnkuICBGb3IgY29udmVuaWVu Y2UsIHJldHVybiBUWVBFLgogIAotQEAgLTE0NzE1LDYgKzE0OTkzLDggQEAgc2V0X2RpZV90eXBl IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBkd2FyZjJf Y3UgKmN1KQorQEAgLTE0Nzc0LDYgKzE1MDUyLDggQEAgc2V0X2RpZV90eXBlIChzdHJ1Y3QgZGll X2luZm8gKmRpZSwgc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAg c3RydWN0IG9iamZpbGUgKm9iamZpbGUgPSBjdS0+b2JqZmlsZTsKICAgIGh0YWJfdCAqdHlwZV9o YXNoX3B0cjsKICAKQEAgLTIyNjUsNyArMjQxNSw3IEBAIGluZGV4IDgyYTJmMGIuLjMyNzE2NGMg MTAwNjQ0CiAgICAgICBpbml0aWFsaXplZCAoaWYgbm90IGFscmVhZHkgc2V0KS4gIFRoZXJlIGFy ZSBhIGZldyB0eXBlcyB3aGVyZQogICAgICAgd2Ugc2hvdWxkIG5vdCBiZSBkb2luZyBzbywgYmVj YXVzZSB0aGUgdHlwZS1zcGVjaWZpYyBhcmVhIGlzCiBkaWZmIC0tZ2l0IGEvZ2RiL2VsZnJlYWQu YyBiL2dkYi9lbGZyZWFkLmMKLWluZGV4IDU5NDRlYjAuLjliMjgzZTEgMTAwNjQ0CitpbmRleCA4 ZDliMGY3Li5jZGIzMjkwIDEwMDY0NAogLS0tIGEvZ2RiL2VsZnJlYWQuYwogKysrIGIvZ2RiL2Vs ZnJlYWQuYwogQEAgLTM3LDYgKzM3LDcgQEAKQEAgLTIyOTgsNyArMjQ0OCw3IEBAIGluZGV4IDU5 NDRlYjAuLjliMjgzZTEgMTAwNjQ0CiAgCQl9CiAgCSAgICAgIGVsc2UgaWYgKChzeW0tPm5hbWVb MF0gPT0gJy4nICYmIHN5bS0+bmFtZVsxXSA9PSAnTCcpCiAgCQkgICAgICAgfHwgKChzeW0tPmZs YWdzICYgQlNGX0xPQ0FMKQotQEAgLTU3Miw2ICs1NzcsMjUwIEBAIGVsZl9zeW10YWJfcmVhZCAo c3RydWN0IG9iamZpbGUgKm9iamZpbGUsIGludCB0eXBlLAorQEAgLTU3NCw2ICs1NzksMjUwIEBA IGVsZl9zeW10YWJfcmVhZCAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIGludCB0eXBlLAogICAg ICB9CiAgfQogIApAQCAtMjU0OSw3ICsyNjk5LDcgQEAgaW5kZXggNTk0NGViMC4uOWIyODNlMSAx MDA2NDQKICBzdHJ1Y3QgYnVpbGRfaWQKICAgIHsKICAgICAgc2l6ZV90IHNpemU7Ci1AQCAtODA2 LDYgKzEwNTUsOCBAQCBlbGZfc3ltZmlsZV9yZWFkIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwg aW50IHN5bWZpbGVfZmxhZ3MpCitAQCAtODE0LDYgKzEwNjMsOCBAQCBlbGZfc3ltZmlsZV9yZWFk IChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgaW50IHN5bWZpbGVfZmxhZ3MpCiAgCSAgICAgICBi ZmRfZXJybXNnIChiZmRfZ2V0X2Vycm9yICgpKSk7CiAgCiAgICAgICAgZWxmX3N5bXRhYl9yZWFk IChvYmpmaWxlLCBTVF9EWU5BTUlDLCBkeW5zeW1jb3VudCwgZHluX3N5bWJvbF90YWJsZSwgMCk7 CkBAIC0yNTU5LDcgKzI3MDksNyBAQCBpbmRleCA1OTQ0ZWIwLi45YjI4M2UxIDEwMDY0NAogIAog ICAgLyogQWRkIHN5bnRoZXRpYyBzeW1ib2xzIC0gZm9yIGluc3RhbmNlLCBuYW1lcyBmb3IgYW55 IFBMVCBlbnRyaWVzLiAgKi8KIGRpZmYgLS1naXQgYS9nZGIvZXZhbC5jIGIvZ2RiL2V2YWwuYwot aW5kZXggZmJkMzY5OC4uNTZkNTFjOCAxMDA2NDQKK2luZGV4IDgzOTQ2MjMuLjNkM2EzMWUgMTAw NjQ0CiAtLS0gYS9nZGIvZXZhbC5jCiArKysgYi9nZGIvZXZhbC5jCiBAQCAtNDQsNiArNDQsNyBA QApAQCAtMjU3OCw3ICsyNzI4LDcgQEAgaW5kZXggZmJkMzY5OC4uNTZkNTFjOCAxMDA2NDQKICAK ICAgIHBjID0gKCpwb3MpKys7CiAgICBvcCA9IGV4cC0+ZWx0c1twY10ub3Bjb2RlOwotQEAgLTE4 MjIsNiArMTgyNCw4IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4 cGVjdF90eXBlLAorQEAgLTE4NDcsNiArMTg0OSw4IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFy ZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAogIAkgICAgICByZXR1cm4gdmFsdWVfemVybyAo YnVpbHRpbl90eXBlIChleHAtPmdkYmFyY2gpLT5idWlsdGluX2ludCwKICAJCQkJIG5vdF9sdmFs KTsKICAJICAgIH0KQEAgLTI1ODcsNyArMjczNyw3IEBAIGluZGV4IGZiZDM2OTguLjU2ZDUxYzgg MTAwNjQ0CiAgCSAgZWxzZSBpZiAoVFlQRV9UQVJHRVRfVFlQRSAoZnR5cGUpKQogIAkgICAgcmV0 dXJuIGFsbG9jYXRlX3ZhbHVlIChUWVBFX1RBUkdFVF9UWVBFIChmdHlwZSkpOwogIAkgIGVsc2UK LUBAIC0xODQ4LDYgKzE4NTIsOCBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0 eXBlICpleHBlY3RfdHlwZSwKK0BAIC0xODc1LDYgKzE4NzksOCBAQCBldmFsdWF0ZV9zdWJleHBf c3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKICAKICAgICAgICAvKiBGaXJzdCBk ZXRlcm1pbmUgdGhlIHR5cGUgY29kZSB3ZSBhcmUgZGVhbGluZyB3aXRoLiAgKi8KICAgICAgICBh cmcxID0gZXZhbHVhdGVfc3ViZXhwIChOVUxMX1RZUEUsIGV4cCwgcG9zLCBub3NpZGUpOwpAQCAt MjU5Niw3ICsyNzQ2LDcgQEAgaW5kZXggZmJkMzY5OC4uNTZkNTFjOCAxMDA2NDQKICAgICAgICB0 eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnMSkpOwogICAgICAgIGNvZGUgPSBU WVBFX0NPREUgKHR5cGUpOwogIAotQEAgLTE4NjgsNiArMTg3NCw3IEBAIGV2YWx1YXRlX3N1YmV4 cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAorQEAgLTE4OTUsNiArMTkwMSw3 IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAog IAkgICAgICBjb2RlID0gVFlQRV9DT0RFICh0eXBlKTsKICAJICAgIH0KICAJfSAKQEAgLTI2MDQs NyArMjc1NCw3IEBAIGluZGV4IGZiZDM2OTguLjU2ZDUxYzggMTAwNjQ0CiAgCiAgICAgICAgc3dp dGNoIChjb2RlKQogIAl7Ci1AQCAtMjMyNSwxMyArMjMzMiwxOSBAQCBldmFsdWF0ZV9zdWJleHBf c3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKK0BAIC0yMzU0LDEzICsyMzYxLDE5 IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90eXBlLAog ICAgICAgIHsKICAJaW50IHN1YnNjcmlwdF9hcnJheVtNQVhfRk9SVFJBTl9ESU1TXTsKICAJaW50 IGFycmF5X3NpemVfYXJyYXlbTUFYX0ZPUlRSQU5fRElNU107CkBAIC0yNjI0LDcgKzI3NzQsNyBA QCBpbmRleCBmYmQzNjk4Li41NmQ1MWM4IDEwMDY0NAogIAl0bXBfdHlwZSA9IGNoZWNrX3R5cGVk ZWYgKHZhbHVlX3R5cGUgKGFyZzEpKTsKICAJbmRpbWVuc2lvbnMgPSBjYWxjX2Y3N19hcnJheV9k aW1zICh0eXBlKTsKICAKLUBAIC0yMzYxLDYgKzIzNzQsOSBAQCBldmFsdWF0ZV9zdWJleHBfc3Rh bmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKK0BAIC0yMzkwLDYgKzI0MDMsOSBAQCBl dmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKICAJICAg IHVwcGVyID0gZjc3X2dldF91cHBlcmJvdW5kICh0bXBfdHlwZSk7CiAgCSAgICBsb3dlciA9IGY3 N19nZXRfbG93ZXJib3VuZCAodG1wX3R5cGUpOwogIApAQCAtMjYzNCw3ICsyNzg0LDcgQEAgaW5k ZXggZmJkMzY5OC4uNTZkNTFjOCAxMDA2NDQKICAJICAgIGFycmF5X3NpemVfYXJyYXlbbmFyZ3Mg LSBpIC0gMV0gPSB1cHBlciAtIGxvd2VyICsgMTsKICAKICAJICAgIC8qIFplcm8tbm9ybWFsaXpl IHN1YnNjcmlwdHMgc28gdGhhdCBvZmZzZXR0aW5nIHdpbGwgd29yay4gKi8KLUBAIC0yMzc5LDEz ICsyMzk1LDI1IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVj dF90eXBlLAorQEAgLTI0MDgsMTMgKzI0MjQsMjUgQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJk IChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCiAgCSAgICAgIHRtcF90eXBlID0gY2hlY2tfdHlw ZWRlZiAoVFlQRV9UQVJHRVRfVFlQRSAodG1wX3R5cGUpKTsKICAJICB9CiAgCkBAIC0yNjY0LDcg KzI4MTQsNyBAQCBpbmRleCBmYmQzNjk4Li41NmQ1MWM4IDEwMDY0NAogIAogIAkvKiBMZXQgdXMg bm93IHBsYXkgYSBkaXJ0eSB0cmljazogd2Ugd2lsbCB0YWtlIGFyZzEgCiAgCSAgIHdoaWNoIGlz IGEgdmFsdWUgbm9kZSBwb2ludGluZyB0byB0aGUgdG9wbW9zdCBsZXZlbAotQEAgLTIzOTUsNyAr MjQyMyw3IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmV4cGVjdF90 eXBlLAorQEAgLTI0MjQsNyArMjQ1Miw3IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3Ry dWN0IHR5cGUgKmV4cGVjdF90eXBlLAogIAkgICByZXR1cm5zIHRoZSBjb3JyZWN0IHR5cGUgdmFs dWUgKi8KICAKICAJZGVwcmVjYXRlZF9zZXRfdmFsdWVfdHlwZSAoYXJnMSwgdG1wX3R5cGUpOwpA QCAtMjY3Myw3ICsyODIzLDcgQEAgaW5kZXggZmJkMzY5OC4uNTZkNTFjOCAxMDA2NDQKICAgICAg ICB9CiAgCiAgICAgIGNhc2UgQklOT1BfTE9HSUNBTF9BTkQ6Ci1AQCAtMjYyOSwxNCArMjY1Nywy MiBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwK K0BAIC0yNjU4LDE1ICsyNjg2LDIzIEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0 IHR5cGUgKmV4cGVjdF90eXBlLAogICAgICAgIGlmIChleHBlY3RfdHlwZSAmJiBUWVBFX0NPREUg KGV4cGVjdF90eXBlKSA9PSBUWVBFX0NPREVfUFRSKQogIAlleHBlY3RfdHlwZSA9IFRZUEVfVEFS R0VUX1RZUEUgKGNoZWNrX3R5cGVkZWYgKGV4cGVjdF90eXBlKSk7CiAgICAgICAgYXJnMSA9IGV2 YWx1YXRlX3N1YmV4cCAoZXhwZWN0X3R5cGUsIGV4cCwgcG9zLCBub3NpZGUpOwpAQCAtMjY4Miw3 ICsyODMyLDggQEAgaW5kZXggZmJkMzY5OC4uNTZkNTFjOCAxMDA2NDQKICAgICAgICB0eXBlID0g Y2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnMSkpOwogICAgICAgIGlmIChUWVBFX0NPREUg KHR5cGUpID09IFRZUEVfQ09ERV9NRVRIT0RQVFIKICAJICB8fCBUWVBFX0NPREUgKHR5cGUpID09 IFRZUEVfQ09ERV9NRU1CRVJQVFIpCi0gCWVycm9yIChfKCJBdHRlbXB0IHRvIGRlcmVmZXJlbmNl IHBvaW50ZXIgdG8gbWVtYmVyIHdpdGhvdXQgYW4gb2JqZWN0IikpOworIAllcnJvciAoXygiQXR0 ZW1wdCB0byBkZXJlZmVyZW5jZSBwb2ludGVyICIKKyAJCSAidG8gbWVtYmVyIHdpdGhvdXQgYW4g b2JqZWN0IikpOwogICAgICAgIGlmIChub3NpZGUgPT0gRVZBTF9TS0lQKQogLQlnb3RvIG5vc2lk ZXJldDsKICsJewpAQCAtMjY5OCw3ICsyODQ5LDcgQEAgaW5kZXggZmJkMzY5OC4uNTZkNTFjOCAx MDA2NDQKICAgICAgICBlbHNlIGlmIChub3NpZGUgPT0gRVZBTF9BVk9JRF9TSURFX0VGRkVDVFMp CiAgCXsKICAJICB0eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnMSkpOwotQEAg LTI2NDUsMTIgKzI2ODEsMTggQEAgZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlw ZSAqZXhwZWN0X3R5cGUsCitAQCAtMjY3NSwxMiArMjcxMSwxOCBAQCBldmFsdWF0ZV9zdWJleHBf c3RhbmRhcmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKICAJICAvKiBJbiBDIHlvdSBjYW4g ZGVyZWZlcmVuY2UgYW4gYXJyYXkgdG8gZ2V0IHRoZSAxc3QgZWx0LiAgKi8KICAJICAgICAgfHwg VFlQRV9DT0RFICh0eXBlKSA9PSBUWVBFX0NPREVfQVJSQVkKICAJICAgICkKQEAgLTI3MjIsNyAr Mjg3Myw3IEBAIGluZGV4IGZiZDM2OTguLjU2ZDUxYzggMTAwNjQ0CiAgCSAgZWxzZQogIAkgICAg ZXJyb3IgKF8oIkF0dGVtcHQgdG8gdGFrZSBjb250ZW50cyBvZiBhIG5vbi1wb2ludGVyIHZhbHVl LiIpKTsKICAJfQotQEAgLTI2NjAsOSArMjcwMiwxNCBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRh cmQgKHN0cnVjdCB0eXBlICpleHBlY3RfdHlwZSwKK0BAIC0yNjkwLDkgKzI3MzIsMTQgQEAgZXZh bHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZXhwZWN0X3R5cGUsCiAgCSBkby4g ICJsb25nIGxvbmciIHZhcmlhYmxlcyBhcmUgcmFyZSBlbm91Z2ggdGhhdAogIAkgQlVJTFRJTl9U WVBFX0xPTkdFU1Qgd291bGQgc2VlbSB0byBiZSBhIG1pc3Rha2UuICAqLwogICAgICAgIGlmIChU WVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9JTlQpCkBAIC0yNzQwLDcgKzI4OTEsNyBAQCBp bmRleCBmYmQzNjk4Li41NmQ1MWM4IDEwMDY0NAogIAogICAgICBjYXNlIFVOT1BfQUREUjoKICAg ICAgICAvKiBDKys6IGNoZWNrIGZvciBhbmQgaGFuZGxlIHBvaW50ZXIgdG8gbWVtYmVycy4gICov Ci1AQCAtMzAwOCw3ICszMDU1LDcgQEAgZXZhbHVhdGVfc3ViZXhwX3dpdGhfY29lcmNpb24gKHN0 cnVjdCBleHByZXNzaW9uICpleHAsCitAQCAtMzA0MCw3ICszMDg3LDcgQEAgZXZhbHVhdGVfc3Vi ZXhwX3dpdGhfY29lcmNpb24gKHN0cnVjdCBleHByZXNzaW9uICpleHAsCiAgewogICAgZW51bSBl eHBfb3Bjb2RlIG9wOwogICAgaW50IHBjOwpAQCAtMjc0OSw3ICsyOTAwLDcgQEAgaW5kZXggZmJk MzY5OC4uNTZkNTFjOCAxMDA2NDQKICAgIHN0cnVjdCBzeW1ib2wgKnZhcjsKICAgIHN0cnVjdCB0 eXBlICp0eXBlOwogIAotQEAgLTMwMTksMTMgKzMwNjYsMTggQEAgZXZhbHVhdGVfc3ViZXhwX3dp dGhfY29lcmNpb24gKHN0cnVjdCBleHByZXNzaW9uICpleHAsCitAQCAtMzA1MSwxMyArMzA5OCwx OCBAQCBldmFsdWF0ZV9zdWJleHBfd2l0aF9jb2VyY2lvbiAoc3RydWN0IGV4cHJlc3Npb24gKmV4 cCwKICAgICAgewogICAgICBjYXNlIE9QX1ZBUl9WQUxVRToKICAgICAgICB2YXIgPSBleHAtPmVs dHNbcGMgKyAyXS5zeW1ib2w7CkBAIC0yNzY5LDcgKzI5MjAsNyBAQCBpbmRleCBmYmQzNjk4Li41 NmQ1MWM4IDEwMDY0NAogIAkgIHJldHVybiB2YWx1ZV9jYXN0IChsb29rdXBfcG9pbnRlcl90eXBl IChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSksCiAgCQkJICAgICB2YWwpOwogIAl9Ci1AQCAtMzA3 Nyw5ICszMTI5LDEzIEBAIGV2YWx1YXRlX3N1YmV4cF9mb3Jfc2l6ZW9mIChzdHJ1Y3QgZXhwcmVz c2lvbiAqZXhwLCBpbnQgKnBvcykKK0BAIC0zMTA5LDkgKzMxNjEsMTMgQEAgZXZhbHVhdGVfc3Vi ZXhwX2Zvcl9zaXplb2YgKHN0cnVjdCBleHByZXNzaW9uICpleHAsIGludCAqcG9zKQogIAogICAg ICBjYXNlIE9QX1ZBUl9WQUxVRToKICAgICAgICAoKnBvcykgKz0gNDsKQEAgLTI4NzAsNyArMzAy MSw3IEBAIGluZGV4IDY2MTgxODguLjk2OGRlN2EgMTAwNjQ0CiAgICAgIHsKICAgICAgY2FzZSBU WVBFX0NPREVfQVJSQVk6CiBkaWZmIC0tZ2l0IGEvZ2RiL2YtdmFscHJpbnQuYyBiL2dkYi9mLXZh bHByaW50LmMKLWluZGV4IDVkYjJlZDcuLmUxMDRlMjEgMTAwNjQ0CitpbmRleCA2NGMwOTg5Li43 ODdiNGFhIDEwMDY0NAogLS0tIGEvZ2RiL2YtdmFscHJpbnQuYwogKysrIGIvZ2RiL2YtdmFscHJp bnQuYwogQEAgLTU0LDE1ICs1NCwxNyBAQCBpbnQgZjc3X2FycmF5X29mZnNldF90YmxbTUFYX0ZP UlRSQU5fRElNUyArIDFdWzJdOwpAQCAtMjkxNyw3ICszMDY4LDcgQEAgaW5kZXggNWRiMmVkNy4u ZTEwNGUyMSAxMDA2NDQKICAgICAgfQogIAogICAgcmV0dXJuIFRZUEVfQVJSQVlfVVBQRVJfQk9V TkRfVkFMVUUgKHR5cGUpOwotQEAgLTEzNCwyNCArMTM5LDI5IEBAIGY3N19jcmVhdGVfYXJyYXlw cmludF9vZmZzZXRfdGJsIChzdHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHVpX2ZpbGUgKnN0cmVh bSkKK0BAIC0xMzUsMjQgKzE0MCwyOSBAQCBmNzdfY3JlYXRlX2FycmF5cHJpbnRfb2Zmc2V0X3Ri bCAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0pCiAgICAgICAgdXBw ZXIgPSBmNzdfZ2V0X3VwcGVyYm91bmQgKHRtcF90eXBlKTsKICAgICAgICBsb3dlciA9IGY3N19n ZXRfbG93ZXJib3VuZCAodG1wX3R5cGUpOwogIApAQCAtMjk1MywxMSArMzEwNCwxMyBAQCBpbmRl eCA1ZGIyZWQ3Li5lMTA0ZTIxIDEwMDY0NAogICAgICB9CiAgfQogIAotQEAgLTE3MiwzNCArMTgy LDM0IEBAIGY3N19wcmludF9hcnJheV8xIChpbnQgbnNzLCBpbnQgbmRpbWVuc2lvbnMsIHN0cnVj dCB0eXBlICp0eXBlLAorQEAgLTE3MywzNiArMTgzLDM0IEBAIGY3N19wcmludF9hcnJheV8xIChp bnQgbnNzLCBpbnQgbmRpbWVuc2lvbnMsIHN0cnVjdCB0eXBlICp0eXBlLAogIAogICAgaWYgKG5z cyAhPSBuZGltZW5zaW9ucykKICAgICAgewotLSAgICAgIGZvciAoaSA9IDA7IChpIDwgRjc3X0RJ TV9TSVpFIChuc3MpICYmICgqZWx0cykgPCBvcHRpb25zLT5wcmludF9tYXgpOyBpKyspCistICAg ICAgZm9yIChpID0gMDsKKy0JICAgKGkgPCBGNzdfRElNX1NJWkUgKG5zcykgJiYgKCplbHRzKSA8 IG9wdGlvbnMtPnByaW50X21heCk7CistCSAgIGkrKykKICsgICAgICBmb3IgKGkgPSAwOyAoaSA8 IEY3N19ESU1fQ09VTlQgKG5zcykgJiYgKCplbHRzKSA8IG9wdGlvbnMtPnByaW50X21heCk7IGkr KykKICAJewogIAkgIGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIiggIik7CkBAIC0yOTk3LDcg KzMxNTAsNyBAQCBpbmRleCA1ZGIyZWQ3Li5lMTA0ZTIxIDEwMDY0NAogIAkgICAgZnByaW50Zl9m aWx0ZXJlZCAoc3RyZWFtLCAiLi4uIik7CiAgCX0KICAgICAgfQotQEAgLTI1Niw2ICsyNjYsOSBA QCBmX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRy LCBpbnQgZW1iZWRkZWRfb2Zmc2V0LAorQEAgLTI2MCw2ICsyNjgsOSBAQCBmX3ZhbF9wcmludCAo c3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLCBpbnQgZW1iZWRkZWRf b2Zmc2V0LAogICAgQ09SRV9BRERSIGFkZHI7CiAgICBpbnQgaW5kZXg7CiAgCkBAIC0zMDA3LDYg KzMxNjAsMTcxIEBAIGluZGV4IDVkYjJlZDcuLmUxMDRlMjEgMTAwNjQ0CiAgICBDSEVDS19UWVBF REVGICh0eXBlKTsKICAgIHN3aXRjaCAoVFlQRV9DT0RFICh0eXBlKSkKICAgICAgeworZGlmZiAt LWdpdCBhL2dkYi9maW5kY21kLmMgYi9nZGIvZmluZGNtZC5jCitpbmRleCBjMjFjMDI4Li40ZmY5 MTc3IDEwMDY0NAorLS0tIGEvZ2RiL2ZpbmRjbWQuYworKysrIGIvZ2RiL2ZpbmRjbWQuYworQEAg LTQ1LDYgKzQ1LDQxIEBAIHB1dF9iaXRzIChiZmRfdWludDY0X3QgZGF0YSwgY2hhciAqYnVmLCBp bnQgYml0cywgYmZkX2Jvb2xlYW4gYmlnX3ApCisgICAgIH0KKyB9CisgCisrLyogQWxsb2NhdGVz IGEgYnVmZmVyIGluICpQQVRURVJOX0JVRiwgd2l0aCBhIGhhcmQtY29kZWQgaW5pdGlhbCBzaXpl IHdoaWNoCisrICAgd2lsbCBiZSByZXR1cm5lZCBpbiAqUEFUVEVSTl9CVUZfU0laRS4gKlBBVFRF Uk5fQlVGX0VORCBwb2ludHMgdG8gdGhlIHNhbWUKKysgICBwbGFjZSBhcyAqUEFUVEVSTl9CVUYs IGluZGljYXRpbmcgdGhhdCB0aGUgYnVmZmVyIGlzIGluaXRpYWxseSBlbXB0eS4gICovCisrCisr dm9pZAorK2FsbG9jYXRlX3BhdHRlcm5fYnVmZmVyIChjaGFyICoqcGF0dGVybl9idWYsIGNoYXIg KipwYXR0ZXJuX2J1Zl9lbmQsCisrCQkJIFVMT05HRVNUICpwYXR0ZXJuX2J1Zl9zaXplKQorK3sK KysjZGVmaW5lIElOSVRJQUxfUEFUVEVSTl9CVUZfU0laRSAxMDAKKysgICpwYXR0ZXJuX2J1Zl9z aXplID0gSU5JVElBTF9QQVRURVJOX0JVRl9TSVpFOworKyAgKnBhdHRlcm5fYnVmID0geG1hbGxv YyAoKnBhdHRlcm5fYnVmX3NpemUpOworKyAgKnBhdHRlcm5fYnVmX2VuZCA9ICpwYXR0ZXJuX2J1 ZjsKKyt9CisrCisrLyogR3Jvd3MgKlBBVFRFUk5fQlVGIGJ5IGEgZmFjdG9yIG9mIHR3byBpZiBp dCdzIG5vdCBsYXJnZSBlbm91Z2ggdG8gaG9sZAorKyAgIFZBTF9CWVRFUyBtb3JlIGJ5dGVzICBv ciBhIDY0LWJpdCB2YWx1ZSwgd2hpY2hldmVyIGlzIGxhcmdlci4KKysgICAqUEFUVEVSTl9CVUZf RU5EIGlzIHVwZGF0ZWQgYXMgbmVjZXNzYXJ5LiAgKi8KKysKKyt2b2lkCisraW5jcmVhc2VfcGF0 dGVybl9idWZmZXIgKGNoYXIgKipwYXR0ZXJuX2J1ZiwgY2hhciAqKnBhdHRlcm5fYnVmX2VuZCwK KysJCQkgVUxPTkdFU1QgKnBhdHRlcm5fYnVmX3NpemUsIGludCB2YWxfYnl0ZXMpCisreworKyAg ICAvKiBLZWVwIGl0IHNpbXBsZSBhbmQgYXNzdW1lIHNpemUgPT0gJ2cnIHdoZW4gd2F0Y2hpbmcg Zm9yIHdoZW4gd2UKKysgICAgICAgbmVlZCB0byBncm93IHRoZSBwYXR0ZXJuIGJ1Zi4gICovCisr ICAgIGlmICgoKnBhdHRlcm5fYnVmX2VuZCAtICpwYXR0ZXJuX2J1ZiArIG1heCAodmFsX2J5dGVz LCBzaXplb2YgKGludDY0X3QpKSkKKysJPiAqcGF0dGVybl9idWZfc2l6ZSkKKysgICAgICB7Cisr CXNpemVfdCBjdXJyZW50X29mZnNldCA9ICpwYXR0ZXJuX2J1Zl9lbmQgLSAqcGF0dGVybl9idWY7 CisrCisrCSpwYXR0ZXJuX2J1Zl9zaXplICo9IDI7CisrCSpwYXR0ZXJuX2J1ZiA9IHhyZWFsbG9j ICgqcGF0dGVybl9idWYsICpwYXR0ZXJuX2J1Zl9zaXplKTsKKysJKnBhdHRlcm5fYnVmX2VuZCA9 ICpwYXR0ZXJuX2J1ZiArIGN1cnJlbnRfb2Zmc2V0OworKyAgICAgIH0KKyt9CisrCisgLyogU3Vi cm91dGluZSBvZiBmaW5kX2NvbW1hbmQgdG8gc2ltcGxpZnkgaXQuCisgICAgUGFyc2UgdGhlIGFy Z3VtZW50cyBvZiB0aGUgImZpbmQiIGNvbW1hbmQuICAqLworIAorQEAgLTYxLDggKzk2LDcgQEAg cGFyc2VfZmluZF9hcmdzIChjaGFyICphcmdzLCBVTE9OR0VTVCAqbWF4X2NvdW50cCwKKyAgIGNo YXIgKnBhdHRlcm5fYnVmOworICAgLyogQ3VycmVudCBzaXplIG9mIHNlYXJjaCBwYXR0ZXJuIGJ1 ZmZlci4KKyAgICAgIFdlIHJlYWxsb2Mgc3BhY2UgYXMgbmVlZGVkLiAgKi8KKy0jZGVmaW5lIElO SVRJQUxfUEFUVEVSTl9CVUZfU0laRSAxMDAKKy0gIFVMT05HRVNUIHBhdHRlcm5fYnVmX3NpemUg PSBJTklUSUFMX1BBVFRFUk5fQlVGX1NJWkU7CisrICBVTE9OR0VTVCBwYXR0ZXJuX2J1Zl9zaXpl OworICAgLyogUG9pbnRlciB0byBvbmUgcGFzdCB0aGUgbGFzdCBpbi11c2UgcGFydCBvZiBwYXR0 ZXJuX2J1Zi4gICovCisgICBjaGFyICpwYXR0ZXJuX2J1Zl9lbmQ7CisgICBVTE9OR0VTVCBwYXR0 ZXJuX2xlbjsKK0BAIC03NSw4ICsxMDksNyBAQCBwYXJzZV9maW5kX2FyZ3MgKGNoYXIgKmFyZ3Ms IFVMT05HRVNUICptYXhfY291bnRwLAorICAgaWYgKGFyZ3MgPT0gTlVMTCkKKyAgICAgZXJyb3Ig KF8oIk1pc3Npbmcgc2VhcmNoIHBhcmFtZXRlcnMuIikpOworIAorLSAgcGF0dGVybl9idWYgPSB4 bWFsbG9jIChwYXR0ZXJuX2J1Zl9zaXplKTsKKy0gIHBhdHRlcm5fYnVmX2VuZCA9IHBhdHRlcm5f YnVmOworKyAgYWxsb2NhdGVfcGF0dGVybl9idWZmZXIgKCZwYXR0ZXJuX2J1ZiwgJnBhdHRlcm5f YnVmX2VuZCwgJnBhdHRlcm5fYnVmX3NpemUpOworICAgb2xkX2NsZWFudXBzID0gbWFrZV9jbGVh bnVwIChmcmVlX2N1cnJlbnRfY29udGVudHMsICZwYXR0ZXJuX2J1Zik7CisgCisgICAvKiBHZXQg c2VhcmNoIGdyYW51bGFyaXR5IGFuZC9vciBtYXggY291bnQgaWYgc3BlY2lmaWVkLgorQEAgLTE3 NiwxNyArMjA5LDkgQEAgcGFyc2VfZmluZF9hcmdzIChjaGFyICphcmdzLCBVTE9OR0VTVCAqbWF4 X2NvdW50cCwKKyAgICAgICB2ID0gcGFyc2VfdG9fY29tbWFfYW5kX2V2YWwgKCZzKTsKKyAgICAg ICB2YWxfYnl0ZXMgPSBUWVBFX0xFTkdUSCAodmFsdWVfdHlwZSAodikpOworIAorLSAgICAgIC8q IEtlZXAgaXQgc2ltcGxlIGFuZCBhc3N1bWUgc2l6ZSA9PSAnZycgd2hlbiB3YXRjaGluZyBmb3Ig d2hlbiB3ZQorLQkgbmVlZCB0byBncm93IHRoZSBwYXR0ZXJuIGJ1Zi4gICovCistICAgICAgaWYg KChwYXR0ZXJuX2J1Zl9lbmQgLSBwYXR0ZXJuX2J1ZiArIG1heCAodmFsX2J5dGVzLCBzaXplb2Yg KGludDY0X3QpKSkKKy0JICA+IHBhdHRlcm5fYnVmX3NpemUpCistCXsKKy0JICBzaXplX3QgY3Vy cmVudF9vZmZzZXQgPSBwYXR0ZXJuX2J1Zl9lbmQgLSBwYXR0ZXJuX2J1ZjsKKysgICAgICBpbmNy ZWFzZV9wYXR0ZXJuX2J1ZmZlciAoJnBhdHRlcm5fYnVmLCAmcGF0dGVybl9idWZfZW5kLAorKwkJ CSAgICAgICAmcGF0dGVybl9idWZfc2l6ZSwgdmFsX2J5dGVzKTsKKyAKKy0JICBwYXR0ZXJuX2J1 Zl9zaXplICo9IDI7CistCSAgcGF0dGVybl9idWYgPSB4cmVhbGxvYyAocGF0dGVybl9idWYsIHBh dHRlcm5fYnVmX3NpemUpOworLQkgIHBhdHRlcm5fYnVmX2VuZCA9IHBhdHRlcm5fYnVmICsgY3Vy cmVudF9vZmZzZXQ7CistCX0KKyAKKyAgICAgICBpZiAoc2l6ZSAhPSAnXDAnKQorIAl7CitAQCAt MjQxLDYgKzI2Niw0NSBAQCBwYXJzZV9maW5kX2FyZ3MgKGNoYXIgKmFyZ3MsIFVMT05HRVNUICpt YXhfY291bnRwLAorICAgZGlzY2FyZF9jbGVhbnVwcyAob2xkX2NsZWFudXBzKTsKKyB9CisgCisr LyogRHJpdmVzIHRhcmdldF9zZWFyY2hfbWVtb3J5IHRvIHN3ZWVwIHRocm91Z2ggdGhlIHNwZWNp ZmllZCBzZWFyY2ggc3BhY2UsCisrICAgcG9zc2libHkgaW4gc2V2ZXJhbCBpdGVyYXRpb25zICh3 aXRoIG9uZSBjYWxsIHRvIHRoaXMgZnVuY3Rpb24gZm9yIGVhY2gKKysgICBpdGVyYXRpb24pLiAg KlNUQVJUX0FERFIgaXMgdGhlIGFkZHJlc3Mgd2hlcmUgdGhlIHNlYXJjaCBzdGFydHMsIGFuZCBp cworKyAgIHVwZGF0ZWQgdG8gdGhlIG5leHQgc3RhcnRpbmcgYWRkcmVzcyB0byBjb250aW51ZSB0 aGUgc2VhcmNoLgorKyAgICpTRUFSQ0hfU1BBQ0VfTEVOIGlzIHRoZSBhbW91bnQgb2YgYnl0ZXMg d2hpY2ggd2lsbCBiZSBzZWFyY2hlZCwgYW5kIGlzCisrICAgdXBkYXRlZCBmb3IgdGhlIG5leHQg aXRlcmF0aW9uLiBQQVRURVJOX0JVRiBob2xkcyB0aGUgcGF0dGVybiB0byBiZSBzZWFyY2hlZAor KyAgIGZvciwgUEFUVEVSTl9MRU4gaXMgdGhlIHNpemUgb2YgdGhlIHBhdHRlcm4gaW4gYnl0ZXMu ICBJZiBhIG1hdGNoIGlzIGZvdW5kLAorKyAgIGl0J3MgYWRkcmVzcyBpcyBwdXQgaW4gKkZPVU5E X0FERFIuCisrCisrICAgUmV0dXJucyAxIGlmIGZvdW5kLCAwIGlmIG5vdCBmb3VuZCwgYW5kIC0x IGlmIHRoZXJlIHdhcyBhbiBlcnJvciByZXF1aXJpbmcKKysgICBoYWx0aW5nIG9mIHRoZSBzZWFy Y2ggKGUuZy4gbWVtb3J5IHJlYWQgZXJyb3IpLiAgKi8KKysKKytpbnQKKytzZWFyY2hfbWVtb3J5 IChDT1JFX0FERFIgKnN0YXJ0X2FkZHIsIFVMT05HRVNUICpzZWFyY2hfc3BhY2VfbGVuLAorKwkg ICAgICAgY29uc3QgY2hhciAqcGF0dGVybl9idWYsIFVMT05HRVNUIHBhdHRlcm5fbGVuLAorKwkg ICAgICAgQ09SRV9BRERSICpmb3VuZF9hZGRyKQorK3sKKysgIC8qIE9mZnNldCBmcm9tIHN0YXJ0 IG9mIHRoaXMgaXRlcmF0aW9uIHRvIHRoZSBuZXh0IGl0ZXJhdGlvbi4gICovCisrICBVTE9OR0VT VCBuZXh0X2l0ZXJfaW5jcjsKKysgIGludCBmb3VuZDsKKysgICAgCisrICBmb3VuZCA9IHRhcmdl dF9zZWFyY2hfbWVtb3J5ICgqc3RhcnRfYWRkciwgKnNlYXJjaF9zcGFjZV9sZW4sCisrCQkJCXBh dHRlcm5fYnVmLCBwYXR0ZXJuX2xlbiwgZm91bmRfYWRkcik7CisrICBpZiAoZm91bmQgPD0gMCkK KysgICAgcmV0dXJuIGZvdW5kOworKworKyAgLyogQmVnaW4gbmV4dCBpdGVyYXRpb24gYXQgb25l IGJ5dGUgcGFzdCB0aGlzIG1hdGNoLiAgKi8KKysgIG5leHRfaXRlcl9pbmNyID0gKCpmb3VuZF9h ZGRyIC0gKnN0YXJ0X2FkZHIpICsgMTsKKysKKysgIC8qIEZvciByb2J1c3RuZXNzLCB3ZSBkb24n dCBsZXQgc2VhcmNoX3NwYWNlX2xlbiBnbyAtdmUgaGVyZS4gICovCisrICBpZiAoKnNlYXJjaF9z cGFjZV9sZW4gPj0gbmV4dF9pdGVyX2luY3IpCisrICAgICpzZWFyY2hfc3BhY2VfbGVuIC09IG5l eHRfaXRlcl9pbmNyOworKyAgZWxzZQorKyAgICAqc2VhcmNoX3NwYWNlX2xlbiA9IDA7CisrICAq c3RhcnRfYWRkciArPSBuZXh0X2l0ZXJfaW5jcjsKKysKKysgIHJldHVybiBmb3VuZDsKKyt9Cisr Cisgc3RhdGljIHZvaWQKKyBmaW5kX2NvbW1hbmQgKGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSkK KyB7CitAQCAtMjcxLDEyICszMzUsMTEgQEAgZmluZF9jb21tYW5kIChjaGFyICphcmdzLCBpbnQg ZnJvbV90dHkpCisgICB3aGlsZSAoc2VhcmNoX3NwYWNlX2xlbiA+PSBwYXR0ZXJuX2xlbgorIAkg JiYgZm91bmRfY291bnQgPCBtYXhfY291bnQpCisgICAgIHsKKy0gICAgICAvKiBPZmZzZXQgZnJv bSBzdGFydCBvZiB0aGlzIGl0ZXJhdGlvbiB0byB0aGUgbmV4dCBpdGVyYXRpb24uICAqLworLSAg ICAgIFVMT05HRVNUIG5leHRfaXRlcl9pbmNyOworICAgICAgIENPUkVfQUREUiBmb3VuZF9hZGRy OworLSAgICAgIGludCBmb3VuZCA9IHRhcmdldF9zZWFyY2hfbWVtb3J5IChzdGFydF9hZGRyLCBz ZWFyY2hfc3BhY2VfbGVuLAorLQkJCQkJcGF0dGVybl9idWYsIHBhdHRlcm5fbGVuLCAmZm91bmRf YWRkcik7CisrICAgICAgaW50IGZvdW5kOworIAorKyAgICAgIGZvdW5kID0gc2VhcmNoX21lbW9y eSAoJnN0YXJ0X2FkZHIsICZzZWFyY2hfc3BhY2VfbGVuLCBwYXR0ZXJuX2J1ZiwKKysJCQkgICAg IHBhdHRlcm5fbGVuLCAmZm91bmRfYWRkcik7CisgICAgICAgaWYgKGZvdW5kIDw9IDApCisgCWJy ZWFrOworIAorQEAgLTI4NCwxNiArMzQ3LDYgQEAgZmluZF9jb21tYW5kIChjaGFyICphcmdzLCBp bnQgZnJvbV90dHkpCisgICAgICAgcHJpbnRmX2ZpbHRlcmVkICgiXG4iKTsKKyAgICAgICArK2Zv dW5kX2NvdW50OworICAgICAgIGxhc3RfZm91bmRfYWRkciA9IGZvdW5kX2FkZHI7CistCistICAg ICAgLyogQmVnaW4gbmV4dCBpdGVyYXRpb24gYXQgb25lIGJ5dGUgcGFzdCB0aGlzIG1hdGNoLiAg Ki8KKy0gICAgICBuZXh0X2l0ZXJfaW5jciA9IChmb3VuZF9hZGRyIC0gc3RhcnRfYWRkcikgKyAx OworLQorLSAgICAgIC8qIEZvciByb2J1c3RuZXNzLCB3ZSBkb24ndCBsZXQgc2VhcmNoX3NwYWNl X2xlbiBnbyAtdmUgaGVyZS4gICovCistICAgICAgaWYgKHNlYXJjaF9zcGFjZV9sZW4gPj0gbmV4 dF9pdGVyX2luY3IpCistCXNlYXJjaF9zcGFjZV9sZW4gLT0gbmV4dF9pdGVyX2luY3I7CistICAg ICAgZWxzZQorLQlzZWFyY2hfc3BhY2VfbGVuID0gMDsKKy0gICAgICBzdGFydF9hZGRyICs9IG5l eHRfaXRlcl9pbmNyOworICAgICB9CisgCisgICAvKiBSZWNvcmQgYW5kIHByaW50IHRoZSByZXN1 bHRzLiAgKi8KIGRpZmYgLS1naXQgYS9nZGIvZmluZHZhci5jIGIvZ2RiL2ZpbmR2YXIuYwogaW5k ZXggNWY5NzQyMi4uMmMyNjcwZSAxMDA2NDQKIC0tLSBhL2dkYi9maW5kdmFyLmMKQEAgLTMyMTgs OCArMzUzNiwyOCBAQCBpbmRleCA1Zjk3NDIyLi4yYzI2NzBlIDEwMDY0NAogICAgICB9CiAgICBl bHNlCiAgICAgIHsKK2RpZmYgLS1naXQgYS9nZGIvZ2RiaW5pdC5pbiBiL2dkYi9nZGJpbml0Lmlu CitpbmRleCBmZmI3ZjUzLi5hMmU3ZTk0IDEwMDY0NAorLS0tIGEvZ2RiL2dkYmluaXQuaW4KKysr KyBiL2dkYi9nZGJpbml0LmluCitAQCAtMSw1ICsxLDE1IEBACisgZWNobyBTZXR0aW5nIHVwIHRo ZSBlbnZpcm9ubWVudCBmb3IgZGVidWdnaW5nIGdkYi5cbgorIAorKyMgU2V0IHVwIHRoZSBQeXRo b24gbGlicmFyeSBhbmQgInJlcXVpcmUiIGNvbW1hbmQuCisrcHl0aG9uCisrZnJvbSBvcy5wYXRo IGltcG9ydCBhYnNwYXRoCisrZ2RiLmRhdGFkaXIgPSBhYnNwYXRoICgnQHNyY2RpckAvcHl0aG9u L2xpYicpCisrZ2RiLnB5dGhvbmxpYmRpciA9IGdkYi5kYXRhZGlyCisrZ2RiLl9fcGF0aF9fID0g W2dkYi5kYXRhZGlyICsgJy9nZGInXQorK3N5cy5wYXRoLmluc2VydCgwLCBnZGIuZGF0YWRpcikK KytlbmQKKytzb3VyY2UgQHNyY2RpckAvcHl0aG9uL2xpYi9nZGIvX19pbml0X18ucHkKKysKKyBz ZXQgY29tcGxhaW50cyAxCisgCisgYiBpbnRlcm5hbF9lcnJvcgogZGlmZiAtLWdpdCBhL2dkYi9n ZGJ0eXBlcy5jIGIvZ2RiL2dkYnR5cGVzLmMKLWluZGV4IGZhYzFlOTguLmNiYzNhZWIgMTAwNjQ0 CitpbmRleCAwMGE3MDc1Li5lYWFkYWMwIDEwMDY0NAogLS0tIGEvZ2RiL2dkYnR5cGVzLmMKICsr KyBiL2dkYi9nZGJ0eXBlcy5jCiBAQCAtMzksNiArMzksOSBAQApAQCAtMzU2NSw3ICszOTAzLDcg QEAgaW5kZXggZmFjMWU5OC4uY2JjM2FlYiAxMDA2NDQKICAKICAgIGlmIChuYW1lKQogICAgICBU WVBFX05BTUUgKHR5cGUpID0gb2JzYXZlc3RyaW5nIChuYW1lLCBzdHJsZW4gKG5hbWUpLAotQEAg LTMxOTQsMzMgKzMzNDEsNDIgQEAgdHlwZV9wYWlyX2VxIChjb25zdCB2b2lkICppdGVtX2xocywg Y29uc3Qgdm9pZCAqaXRlbV9yaHMpCitAQCAtMzE5OSwzMyArMzM0Niw0MiBAQCB0eXBlX3BhaXJf ZXEgKGNvbnN0IHZvaWQgKml0ZW1fbGhzLCBjb25zdCB2b2lkICppdGVtX3JocykKICB9CiAgCiAg LyogQWxsb2NhdGUgdGhlIGhhc2ggdGFibGUgdXNlZCBieSBjb3B5X3R5cGVfcmVjdXJzaXZlIHRv IHdhbGsKQEAgLTM2MjMsMTIgKzM5NjEsMTMgQEAgaW5kZXggZmFjMWU5OC4uY2JjM2FlYiAxMDA2 NDQKICAgICAgcmV0dXJuIHR5cGU7CiAgCiAgICAvKiBUaGlzIHR5cGUgc2hvdWxkbid0IGJlIHBv aW50aW5nIHRvIGFueSB0eXBlcyBpbiBvdGhlciBvYmpmaWxlczsKLUBAIC0zMjM1LDggKzMzOTEs MTAgQEAgY29weV90eXBlX3JlY3Vyc2l2ZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCitAQCAt MzI0MCw5ICszMzk2LDEwIEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0cnVjdCBvYmpmaWxlICpv YmpmaWxlLAogICAgbmV3X3R5cGUgPSBhbGxvY190eXBlX2FyY2ggKGdldF90eXBlX2FyY2ggKHR5 cGUpKTsKICAKICAgIC8qIFdlIG11c3QgYWRkIHRoZSBuZXcgdHlwZSB0byB0aGUgaGFzaCB0YWJs ZSBpbW1lZGlhdGVseSwgaW4gY2FzZQogLSAgICAgd2UgZW5jb3VudGVyIHRoaXMgdHlwZSBhZ2Fp biBkdXJpbmcgYSByZWN1cnNpdmUgY2FsbCBiZWxvdy4gICovCi0tICBzdG9yZWQgPSBvYnN0YWNr X2FsbG9jICgmb2JqZmlsZS0+b2JqZmlsZV9vYnN0YWNrLCBzaXplb2YgKHN0cnVjdCB0eXBlX3Bh aXIpKTsKKy0gIHN0b3JlZAorLSAgICA9IG9ic3RhY2tfYWxsb2MgKCZvYmpmaWxlLT5vYmpmaWxl X29ic3RhY2ssIHNpemVvZiAoc3RydWN0IHR5cGVfcGFpcikpOwogKyAgICAgd2UgZW5jb3VudGVy IHRoaXMgdHlwZSBhZ2FpbiBkdXJpbmcgYSByZWN1cnNpdmUgY2FsbCBiZWxvdy4gIE1lbW9yeSBj b3VsZAogKyAgICAgYmUgYWxsb2NhdGVkIGZyb20gT0JKRklMRSBpbiB0aGUgY2FzZSB3ZSB3aWxs IGJlIHJlbW92aW5nIE9CSkZJTEUsIHRoaXMKICsgICAgIG9wdGltaXphdGlvbiBpcyBtaXNzZWQg YW5kIHhmcmVlIGlzIGNhbGxlZCBmb3IgaXQgZnJvbSBDT1BJRURfVFlQRVMuICAqLwpAQCAtMzYz Niw3ICszOTc1LDcgQEAgaW5kZXggZmFjMWU5OC4uY2JjM2FlYiAxMDA2NDQKICAgIHN0b3JlZC0+ b2xkID0gdHlwZTsKICAgIHN0b3JlZC0+bmV3ID0gbmV3X3R5cGU7CiAgICAqc2xvdCA9IHN0b3Jl ZDsKLUBAIC0zMjQ3LDYgKzM0MDUsMTkgQEAgY29weV90eXBlX3JlY3Vyc2l2ZSAoc3RydWN0IG9i amZpbGUgKm9iamZpbGUsCitAQCAtMzI1Myw2ICszNDEwLDE5IEBAIGNvcHlfdHlwZV9yZWN1cnNp dmUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAogICAgVFlQRV9PQkpGSUxFX09XTkVEIChuZXdf dHlwZSkgPSAwOwogICAgVFlQRV9PV05FUiAobmV3X3R5cGUpLmdkYmFyY2ggPSBnZXRfdHlwZV9h cmNoICh0eXBlKTsKICAKQEAgLTM2NTYsNyArMzk5NSw3IEBAIGluZGV4IGZhYzFlOTguLmNiYzNh ZWIgMTAwNjQ0CiAgICBpZiAoVFlQRV9OQU1FICh0eXBlKSkKICAgICAgVFlQRV9OQU1FIChuZXdf dHlwZSkgPSB4c3RyZHVwIChUWVBFX05BTUUgKHR5cGUpKTsKICAgIGlmIChUWVBFX1RBR19OQU1F ICh0eXBlKSkKLUBAIC0zMjU1LDEyICszNDI2LDQ4IEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0 cnVjdCBvYmpmaWxlICpvYmpmaWxlLAorQEAgLTMyNjEsMTIgKzM0MzEsNDggQEAgY29weV90eXBl X3JlY3Vyc2l2ZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCiAgICBUWVBFX0lOU1RBTkNFX0ZM QUdTIChuZXdfdHlwZSkgPSBUWVBFX0lOU1RBTkNFX0ZMQUdTICh0eXBlKTsKICAgIFRZUEVfTEVO R1RIIChuZXdfdHlwZSkgPSBUWVBFX0xFTkdUSCAodHlwZSk7CiAgCkBAIC0zNzA1LDcgKzQwNDQs NyBAQCBpbmRleCBmYWMxZTk4Li5jYmMzYWViIDEwMDY0NAogICAgICAgIFRZUEVfRklFTERTIChu ZXdfdHlwZSkgPSBYQ0FMTE9DIChuZmllbGRzLCBzdHJ1Y3QgZmllbGQpOwogICAgICAgIGZvciAo aSA9IDA7IGkgPCBuZmllbGRzOyBpKyspCiAgCXsKLUBAIC0zMjY5LDggKzM0NzYsOCBAQCBjb3B5 X3R5cGVfcmVjdXJzaXZlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKK0BAIC0zMjc1LDggKzM0 ODEsOCBAQCBjb3B5X3R5cGVfcmVjdXJzaXZlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKICAJ ICBUWVBFX0ZJRUxEX0JJVFNJWkUgKG5ld190eXBlLCBpKSA9IFRZUEVfRklFTERfQklUU0laRSAo dHlwZSwgaSk7CiAgCSAgaWYgKFRZUEVfRklFTERfVFlQRSAodHlwZSwgaSkpCiAgCSAgICBUWVBF X0ZJRUxEX1RZUEUgKG5ld190eXBlLCBpKQpAQCAtMzcxNiw3ICs0MDU1LDcgQEAgaW5kZXggZmFj MWU5OC4uY2JjM2FlYiAxMDA2NDQKICAJICBpZiAoVFlQRV9GSUVMRF9OQU1FICh0eXBlLCBpKSkK ICAJICAgIFRZUEVfRklFTERfTkFNRSAobmV3X3R5cGUsIGkpID0gCiAgCSAgICAgIHhzdHJkdXAg KFRZUEVfRklFTERfTkFNRSAodHlwZSwgaSkpOwotQEAgLTMyOTcsMjQgKzM1MDQsMTY2IEBAIGNv cHlfdHlwZV9yZWN1cnNpdmUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAorQEAgLTMzMDMsMjQg KzM1MDksMTY2IEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxl LAogIAl9CiAgICAgIH0KICAKQEAgLTM4OTAsNyArNDIyOSw3IEBAIGluZGV4IGZhYzFlOTguLmNi YzNhZWIgMTAwNjQ0CiAgICAvKiBNYXliZSBjb3B5IHRoZSB0eXBlX3NwZWNpZmljIGJpdHMuCiAg CiAgICAgICBOT1RFIGRyb3cvMjAwNS0xMi0wOTogV2UgZG8gbm90IGNvcHkgdGhlIEMrKy1zcGVj aWZpYyBiaXRzIGxpa2UKLUBAIC0zMzMxLDYgKzM2ODAsMTcgQEAgY29weV90eXBlX3JlY3Vyc2l2 ZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCitAQCAtMzMzNyw2ICszNjg1LDE3IEBAIGNvcHlf dHlwZV9yZWN1cnNpdmUgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAogICAgcmV0dXJuIG5ld190 eXBlOwogIH0KICAKQEAgLTM5MDgsNyArNDI0Nyw3IEBAIGluZGV4IGZhYzFlOTguLmNiYzNhZWIg MTAwNjQ0CiAgLyogTWFrZSBhIGNvcHkgb2YgdGhlIGdpdmVuIFRZUEUsIGV4Y2VwdCB0aGF0IHRo ZSBwb2ludGVyICYgcmVmZXJlbmNlCiAgICAgdHlwZXMgYXJlIG5vdCBwcmVzZXJ2ZWQuCiAgICAg Ci1AQCAtMzM1Myw2ICszNzEzLDE5OSBAQCBjb3B5X3R5cGUgKGNvbnN0IHN0cnVjdCB0eXBlICp0 eXBlKQorQEAgLTMzNTksNiArMzcxOCwxOTkgQEAgY29weV90eXBlIChjb25zdCBzdHJ1Y3QgdHlw ZSAqdHlwZSkKICAgIHJldHVybiBuZXdfdHlwZTsKICB9CiAgCkBAIC00MTA4LDcgKzQ0NDcsNyBA QCBpbmRleCBmYWMxZTk4Li5jYmMzYWViIDEwMDY0NAogIAogIC8qIEhlbHBlciBmdW5jdGlvbnMg dG8gaW5pdGlhbGl6ZSBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgdHlwZXMuICAqLwogIAotQEAgLTM3 MDEsNiArNDI1NCw4IEBAIGdkYnR5cGVzX3Bvc3RfaW5pdCAoc3RydWN0IGdkYmFyY2ggKmdkYmFy Y2gpCitAQCAtMzcwNyw2ICs0MjU5LDggQEAgZ2RidHlwZXNfcG9zdF9pbml0IChzdHJ1Y3QgZ2Ri YXJjaCAqZ2RiYXJjaCkKICAgICAgPSBsb29rdXBfcG9pbnRlcl90eXBlIChidWlsdGluX3R5cGUt PmJ1aWx0aW5fdm9pZCk7CiAgICBidWlsdGluX3R5cGUtPmJ1aWx0aW5fZnVuY19wdHIKICAgICAg PSBsb29rdXBfcG9pbnRlcl90eXBlIChsb29rdXBfZnVuY3Rpb25fdHlwZSAoYnVpbHRpbl90eXBl LT5idWlsdGluX3ZvaWQpKTsKQEAgLTQxMTcsNyArNDQ1Niw3IEBAIGluZGV4IGZhYzFlOTguLmNi YzNhZWIgMTAwNjQ0CiAgCiAgICAvKiBUaGlzIHR5cGUgcmVwcmVzZW50cyBhIEdEQiBpbnRlcm5h bCBmdW5jdGlvbi4gICovCiAgICBidWlsdGluX3R5cGUtPmludGVybmFsX2ZuCi1AQCAtMzgxNCw2 ICs0MzY5LDE4IEBAIG9iamZpbGVfdHlwZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCitAQCAt MzgyMCw2ICs0Mzc0LDE4IEBAIG9iamZpbGVfdHlwZSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUp CiAgCQkgIjx0ZXh0IHZhcmlhYmxlLCBubyBkZWJ1ZyBpbmZvPiIsIG9iamZpbGUpOwogICAgVFlQ RV9UQVJHRVRfVFlQRSAob2JqZmlsZV90eXBlLT5ub2RlYnVnX3RleHRfc3ltYm9sKQogICAgICA9 IG9iamZpbGVfdHlwZS0+YnVpbHRpbl9pbnQ7CkBAIC00MTM2LDcgKzQ0NzUsNyBAQCBpbmRleCBm YWMxZTk4Li5jYmMzYWViIDEwMDY0NAogICAgb2JqZmlsZV90eXBlLT5ub2RlYnVnX2RhdGFfc3lt Ym9sCiAgICAgID0gaW5pdF90eXBlIChUWVBFX0NPREVfSU5ULAogIAkJIGdkYmFyY2hfaW50X2Jp dCAoZ2RiYXJjaCkgLyBIT1NUX0NIQVJfQklULCAwLAotQEAgLTM4NjgsNiArNDQzNSwxMSBAQCB2 b2lkCitAQCAtMzg3NCw2ICs0NDQwLDExIEBAIHZvaWQKICBfaW5pdGlhbGl6ZV9nZGJ0eXBlcyAo dm9pZCkKICB7CiAgICBnZGJ0eXBlc19kYXRhID0gZ2RiYXJjaF9kYXRhX3JlZ2lzdGVyX3Bvc3Rf aW5pdCAoZ2RidHlwZXNfcG9zdF9pbml0KTsKQEAgLTQxNDcsOSArNDQ4Niw5IEBAIGluZGV4IGZh YzFlOTguLmNiYzNhZWIgMTAwNjQ0CiArCiAgICBvYmpmaWxlX3R5cGVfZGF0YSA9IHJlZ2lzdGVy X29iamZpbGVfZGF0YSAoKTsKICAKLSAgIGFkZF9zZXRzaG93X3ppbnRlZ2VyX2NtZCAoIm92ZXJs b2FkIiwgbm9fY2xhc3MsICZvdmVybG9hZF9kZWJ1ZywgXygiXAorICAgYWRkX3NldHNob3dfemlu dGVnZXJfY21kICgib3ZlcmxvYWQiLCBub19jbGFzcywgJm92ZXJsb2FkX2RlYnVnLAogZGlmZiAt LWdpdCBhL2dkYi9nZGJ0eXBlcy5oIGIvZ2RiL2dkYnR5cGVzLmgKLWluZGV4IDk4OTg5OTEuLjY1 Mjk5NGMgMTAwNjQ0CitpbmRleCAwMzUzZjk2Li5hMDM1YmFkIDEwMDY0NAogLS0tIGEvZ2RiL2dk YnR5cGVzLmgKICsrKyBiL2dkYi9nZGJ0eXBlcy5oCiBAQCAtMTcwLDYgKzE3MCw3IEBAIGVudW0g dHlwZV9mbGFnX3ZhbHVlCkBAIC00MjM0LDcgKzQ1NzMsNyBAQCBpbmRleCA5ODk4OTkxLi42NTI5 OTRjIDEwMDY0NAogIC8qIENvbnN0YW50IHR5cGUuICBJZiB0aGlzIGlzIHNldCwgdGhlIGNvcnJl c3BvbmRpbmcgdHlwZSBoYXMgYQogICAqIGNvbnN0IG1vZGlmaWVyLgogICAqLwotQEAgLTM4OCwx MSArNDQyLDE5IEBAIHN0cnVjdCBtYWluX3R5cGUKK0BAIC0zODksMTEgKzQ0MywxOSBAQCBzdHJ1 Y3QgbWFpbl90eXBlCiAgICB1bnNpZ25lZCBpbnQgZmxhZ192YXJhcmdzIDogMTsKICAgIHVuc2ln bmVkIGludCBmbGFnX3ZlY3RvciA6IDE7CiAgICB1bnNpZ25lZCBpbnQgZmxhZ19zdHViX3N1cHBv cnRlZCA6IDE7CkBAIC00MjU0LDcgKzQ1OTMsNyBAQCBpbmRleCA5ODk4OTkxLi42NTI5OTRjIDEw MDY0NAogIAogICAgLyogQSBkaXNjcmltaW5hbnQgdGVsbGluZyB1cyB3aGljaCBmaWVsZCBvZiB0 aGUgdHlwZV9zcGVjaWZpYyB1bmlvbgogICAgICAgaXMgYmVpbmcgdXNlZCBmb3IgdGhpcyB0eXBl LCBpZiBhbnkuICAqLwotQEAgLTQ2Niw2ICs1MjgsMjAgQEAgc3RydWN0IG1haW5fdHlwZQorQEAg LTQ2Nyw2ICs1MjksMjAgQEAgc3RydWN0IG1haW5fdHlwZQogIAogICAgc3RydWN0IHR5cGUgKnRh cmdldF90eXBlOwogIApAQCAtNDI3NSw3ICs0NjE0LDcgQEAgaW5kZXggOTg5ODk5MS4uNjUyOTk0 YyAxMDA2NDQKICAgIC8qIEZvciBzdHJ1Y3R1cmUgYW5kIHVuaW9uIHR5cGVzLCBhIGRlc2NyaXB0 aW9uIG9mIGVhY2ggZmllbGQuCiAgICAgICBGb3Igc2V0IGFuZCBwYXNjYWwgYXJyYXkgdHlwZXMs IHRoZXJlIGlzIG9uZSAiZmllbGQiLAogICAgICAgd2hvc2UgdHlwZSBpcyB0aGUgZG9tYWluIHR5 cGUgb2YgdGhlIHNldCBvciBhcnJheS4KLUBAIC01MzksMTMgKzYxNSwzNCBAQCBzdHJ1Y3QgbWFp bl90eXBlCitAQCAtNTQxLDEzICs2MTcsMzQgQEAgc3RydWN0IG1haW5fdHlwZQogIAogICAgICBz dHJ1Y3QgcmFuZ2VfYm91bmRzCiAgICAgIHsKQEAgLTQzMTUsNyArNDY1NCw3IEBAIGluZGV4IDk4 OTg5OTEuLjY1Mjk5NGMgMTAwNjQ0CiAgCiAgICAgICAgLyogRmxhZ3MgaW5kaWNhdGluZyB3aGV0 aGVyIHRoZSB2YWx1ZXMgb2YgbG93IGFuZCBoaWdoIGFyZQogICAgICAgICAgIHZhbGlkLiAgV2hl biB0cnVlLCB0aGUgcmVzcGVjdGl2ZSByYW5nZSB2YWx1ZSBpcwotQEAgLTkxNyw5ICsxMDE0LDkg QEAgZXh0ZXJuIHZvaWQgYWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAoc3RydWN0IHR5cGUgKik7CitA QCAtOTIxLDkgKzEwMTgsOSBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChz dHJ1Y3QgdHlwZSAqKTsKICAjZGVmaW5lIFRZUEVfUE9JTlRFUl9UWVBFKHRoaXN0eXBlKSAodGhp c3R5cGUpLT5wb2ludGVyX3R5cGUKICAjZGVmaW5lIFRZUEVfUkVGRVJFTkNFX1RZUEUodGhpc3R5 cGUpICh0aGlzdHlwZSktPnJlZmVyZW5jZV90eXBlCiAgI2RlZmluZSBUWVBFX0NIQUlOKHRoaXN0 eXBlKSAodGhpc3R5cGUpLT5jaGFpbgpAQCAtNDMyOCw3ICs0NjY3LDcgQEAgaW5kZXggOTg5ODk5 MS4uNjUyOTk0YyAxMDA2NDQKICAgICBjYWxscyBjaGVja190eXBlZGVmLCBUWVBFX0xFTkdUSCAo VkFMVUVfVFlQRSAoWCkpIGlzIHNhZmUuICAqLwogICNkZWZpbmUgVFlQRV9MRU5HVEgodGhpc3R5 cGUpICh0aGlzdHlwZSktPmxlbmd0aAogIC8qIE5vdGUgdGhhdCBUWVBFX0NPREUgY2FuIGJlIFRZ UEVfQ09ERV9UWVBFREVGLCBzbyBpZiB5b3Ugd2FudCB0aGUgcmVhbAotQEAgLTkyNywxMSArMTAy NCwxNiBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1Y3QgdHlwZSAq KTsKK0BAIC05MzEsMTEgKzEwMjgsMTYgQEAgZXh0ZXJuIHZvaWQgYWxsb2NhdGVfZ25hdF9hdXhf dHlwZSAoc3RydWN0IHR5cGUgKik7CiAgI2RlZmluZSBUWVBFX0NPREUodGhpc3R5cGUpIFRZUEVf TUFJTl9UWVBFKHRoaXN0eXBlKS0+Y29kZQogICNkZWZpbmUgVFlQRV9ORklFTERTKHRoaXN0eXBl KSBUWVBFX01BSU5fVFlQRSh0aGlzdHlwZSktPm5maWVsZHMKICAjZGVmaW5lIFRZUEVfRklFTERT KHRoaXN0eXBlKSBUWVBFX01BSU5fVFlQRSh0aGlzdHlwZSktPmZsZHNfYm5kcy5maWVsZHMKQEAg LTQzNDcsNyArNDY4Niw3IEBAIGluZGV4IDk4OTg5OTEuLjY1Mjk5NGMgMTAwNjQ0CiAgI2RlZmlu ZSBUWVBFX0xPV19CT1VORF9VTkRFRklORUQocmFuZ2VfdHlwZSkgXAogICAgIFRZUEVfUkFOR0Vf REFUQShyYW5nZV90eXBlKS0+bG93X3VuZGVmaW5lZAogICNkZWZpbmUgVFlQRV9ISUdIX0JPVU5E X1VOREVGSU5FRChyYW5nZV90eXBlKSBcCi1AQCAtOTQ4LDcgKzEwNTAsMTQgQEAgZXh0ZXJuIHZv aWQgYWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAoc3RydWN0IHR5cGUgKik7CitAQCAtOTUyLDcgKzEw NTQsMTQgQEAgZXh0ZXJuIHZvaWQgYWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAoc3RydWN0IHR5cGUg Kik7CiAgICAgKFRZUEVfSElHSF9CT1VORChUWVBFX0lOREVYX1RZUEUoKGFycmF5dHlwZSkpKSkK ICAKICAjZGVmaW5lIFRZUEVfQVJSQVlfTE9XRVJfQk9VTkRfVkFMVUUoYXJyYXl0eXBlKSBcCkBA IC00MzYzLDcgKzQ3MDIsNyBAQCBpbmRleCA5ODk4OTkxLi42NTI5OTRjIDEwMDY0NAogIAogIC8q IEMrKyAqLwogIAotQEAgLTExNzcsNiArMTI4NiwxMCBAQCBzdHJ1Y3QgYnVpbHRpbl90eXBlCitA QCAtMTE4MSw2ICsxMjkwLDEwIEBAIHN0cnVjdCBidWlsdGluX3R5cGUKICAgICAgICgqKSAoKSBj YW4gc2VydmVyIGFzIGEgZ2VuZXJpYyBmdW5jdGlvbiBwb2ludGVyLiAgKi8KICAgIHN0cnVjdCB0 eXBlICpidWlsdGluX2Z1bmNfcHRyOwogIApAQCAtNDM3NCw3ICs0NzEzLDcgQEAgaW5kZXggOTg5 ODk5MS4uNjUyOTk0YyAxMDA2NDQKICAKICAgIC8qIFNwZWNpYWwtcHVycG9zZSB0eXBlcy4gICov CiAgCi1AQCAtMTIxNyw2ICsxMzMwLDggQEAgc3RydWN0IG9iamZpbGVfdHlwZQorQEAgLTEyMjEs NiArMTMzNCw4IEBAIHN0cnVjdCBvYmpmaWxlX3R5cGUKICAKICAgIC8qIFR5cGVzIHVzZWQgZm9y IHN5bWJvbHMgd2l0aCBubyBkZWJ1ZyBpbmZvcm1hdGlvbi4gICovCiAgICBzdHJ1Y3QgdHlwZSAq bm9kZWJ1Z190ZXh0X3N5bWJvbDsKQEAgLTQzODMsNyArNDcyMiw3IEBAIGluZGV4IDk4OTg5OTEu LjY1Mjk5NGMgMTAwNjQ0CiAgICBzdHJ1Y3QgdHlwZSAqbm9kZWJ1Z19kYXRhX3N5bWJvbDsKICAg IHN0cnVjdCB0eXBlICpub2RlYnVnX3Vua25vd25fc3ltYm9sOwogICAgc3RydWN0IHR5cGUgKm5v ZGVidWdfdGxzX3N5bWJvbDsKLUBAIC0xMzY0LDYgKzE0NzksMTggQEAgZXh0ZXJuIHN0cnVjdCB0 eXBlICpjcmVhdGVfYXJyYXlfdHlwZSAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHR5cGUgKiwKK0BA IC0xMzY4LDYgKzE0ODMsMTggQEAgZXh0ZXJuIHN0cnVjdCB0eXBlICpjcmVhdGVfYXJyYXlfdHlw ZSAoc3RydWN0IHR5cGUgKiwgc3RydWN0IHR5cGUgKiwKICAJCQkJICAgICAgIHN0cnVjdCB0eXBl ICopOwogIGV4dGVybiBzdHJ1Y3QgdHlwZSAqbG9va3VwX2FycmF5X3JhbmdlX3R5cGUgKHN0cnVj dCB0eXBlICosIGludCwgaW50KTsKICAKQEAgLTQ0MDIsNyArNDc0MSw3IEBAIGluZGV4IDk4OTg5 OTEuLjY1Mjk5NGMgMTAwNjQ0CiAgZXh0ZXJuIHN0cnVjdCB0eXBlICpjcmVhdGVfc3RyaW5nX3R5 cGUgKHN0cnVjdCB0eXBlICosIHN0cnVjdCB0eXBlICosCiAgCQkJCQlzdHJ1Y3QgdHlwZSAqKTsK ICBleHRlcm4gc3RydWN0IHR5cGUgKmxvb2t1cF9zdHJpbmdfcmFuZ2VfdHlwZSAoc3RydWN0IHR5 cGUgKiwgaW50LCBpbnQpOwotQEAgLTE0MDksNiArMTUzNiw4IEBAIGV4dGVybiBpbnQgaXNfcHVi bGljX2FuY2VzdG9yIChzdHJ1Y3QgdHlwZSAqLCBzdHJ1Y3QgdHlwZSAqKTsKK0BAIC0xNDEzLDYg KzE1NDAsOCBAQCBleHRlcm4gaW50IGlzX3B1YmxpY19hbmNlc3RvciAoc3RydWN0IHR5cGUgKiwg c3RydWN0IHR5cGUgKik7CiAgCiAgZXh0ZXJuIGludCBpc191bmlxdWVfYW5jZXN0b3IgKHN0cnVj dCB0eXBlICosIHN0cnVjdCB2YWx1ZSAqKTsKICAKQEAgLTQ0MTEsNyArNDc1MCw3IEBAIGluZGV4 IDk4OTg5OTEuLjY1Mjk5NGMgMTAwNjQ0CiAgLyogT3ZlcmxvYWQgcmVzb2x1dGlvbiAqLwogIAog ICNkZWZpbmUgTEVOR1RIX01BVENIKGJ2KSAoKGJ2KS0+cmFua1swXSkKLUBAIC0xNDc5LDEwICsx NjA4LDExIEBAIGV4dGVybiB2b2lkIG1haW50ZW5hbmNlX3ByaW50X3R5cGUgKGNoYXIgKiwgaW50 KTsKK0BAIC0xNDgzLDEwICsxNjEyLDExIEBAIGV4dGVybiB2b2lkIG1haW50ZW5hbmNlX3ByaW50 X3R5cGUgKGNoYXIgKiwgaW50KTsKICAKICBleHRlcm4gaHRhYl90IGNyZWF0ZV9jb3BpZWRfdHlw ZXNfaGFzaCAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUpOwogIApAQCAtNTAyMiwxMCArNTM2MSwx MCBAQCBpbmRleCAxMGZkYzNiLi5lZDZkZTU2IDEwMDY0NAogICAgIHJhdGhlciB0aGFuIHNldHRp bmcgaXQgZGlyZWN0bHkgdG8gY2hlY2sgdGhhdCB0aGUgbGVuZ3RoIGlzIG9ubHkKICAgICBzZXQg b25jZS4gIEl0IGFsc28gZW5hYmxlcyB0aGUgJ21haW50IHNldC9zaG93IHNob3ctZGVidWctcmVn cycgCiBkaWZmIC0tZ2l0IGEvZ2RiL2luZmNhbGwuYyBiL2dkYi9pbmZjYWxsLmMKLWluZGV4IDg1 YjgxNGEuLmYwY2I5MjkgMTAwNjQ0CitpbmRleCA0OGMxODNlLi43MTZmYjY4IDEwMDY0NAogLS0t IGEvZ2RiL2luZmNhbGwuYwogKysrIGIvZ2RiL2luZmNhbGwuYwotQEAgLTIyNSw2ICsyMjUsNTYg QEAgdmFsdWVfYXJnX2NvZXJjZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIHN0cnVjdCB2YWx1 ZSAqYXJnLAorQEAgLTIyOCw2ICsyMjgsNTYgQEAgdmFsdWVfYXJnX2NvZXJjZSAoc3RydWN0IGdk YmFyY2ggKmdkYmFyY2gsIHN0cnVjdCB2YWx1ZSAqYXJnLAogICAgcmV0dXJuIHZhbHVlX2Nhc3Qg KHR5cGUsIGFyZyk7CiAgfQogIApAQCAtNTA4Miw3ICs1NDIxLDcgQEAgaW5kZXggODViODE0YS4u ZjBjYjkyOSAxMDA2NDQKICAvKiBEZXRlcm1pbmUgYSBmdW5jdGlvbidzIGFkZHJlc3MgYW5kIGl0 cyByZXR1cm4gdHlwZSBmcm9tIGl0cyB2YWx1ZS4KICAgICBDYWxscyBlcnJvcigpIGlmIHRoZSBm dW5jdGlvbiBpcyBub3QgdmFsaWQgZm9yIGNhbGxpbmcuICAqLwogIAotQEAgLTIzMyw3ICsyODMs NiBAQCBmaW5kX2Z1bmN0aW9uX2FkZHIgKHN0cnVjdCB2YWx1ZSAqZnVuY3Rpb24sIHN0cnVjdCB0 eXBlICoqcmV0dmFsX3R5cGUpCitAQCAtMjM2LDcgKzI4Niw2IEBAIGZpbmRfZnVuY3Rpb25fYWRk ciAoc3RydWN0IHZhbHVlICpmdW5jdGlvbiwgc3RydWN0IHR5cGUgKipyZXR2YWxfdHlwZSkKICB7 CiAgICBzdHJ1Y3QgdHlwZSAqZnR5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChmdW5j dGlvbikpOwogICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfdHlwZV9hcmNoIChmdHlw ZSk7CkBAIC01MDkwLDcgKzU0MjksNyBAQCBpbmRleCA4NWI4MTRhLi5mMGNiOTI5IDEwMDY0NAog ICAgc3RydWN0IHR5cGUgKnZhbHVlX3R5cGUgPSBOVUxMOwogICAgQ09SRV9BRERSIGZ1bmFkZHI7 CiAgCi1AQCAtMjQxLDI0ICsyOTAsMzQgQEAgZmluZF9mdW5jdGlvbl9hZGRyIChzdHJ1Y3QgdmFs dWUgKmZ1bmN0aW9uLCBzdHJ1Y3QgdHlwZSAqKnJldHZhbF90eXBlKQorQEAgLTI0NCwyNCArMjkz LDM0IEBAIGZpbmRfZnVuY3Rpb25fYWRkciAoc3RydWN0IHZhbHVlICpmdW5jdGlvbiwgc3RydWN0 IHR5cGUgKipyZXR2YWxfdHlwZSkKICAgICAgIHBhcnQgb2YgaXQuICAqLwogIAogICAgLyogRGV0 ZXJtaW5lIGFkZHJlc3MgdG8gY2FsbC4gICovCkBAIC01MTM2LDEwICs1NDc1LDEwIEBAIGluZGV4 IDg1YjgxNGEuLmYwY2I5MjkgMTAwNjQ0CiAgICAgICAgLyogSGFuZGxlIHRoZSBjYXNlIG9mIGZ1 bmN0aW9ucyBsYWNraW5nIGRlYnVnZ2luZyBpbmZvLgogICAgICAgICAgIFRoZWlyIHZhbHVlcyBh cmUgY2hhcmFjdGVycyBzaW5jZSB0aGVpciBhZGRyZXNzZXMgYXJlIGNoYXIgKi8KIGRpZmYgLS1n aXQgYS9nZGIvbGludXgtbmF0LmMgYi9nZGIvbGludXgtbmF0LmMKLWluZGV4IDE0NmJiOGMuLjll MDhlZWUgMTAwNjQ0CitpbmRleCBlNDY3ZTlhLi5kN2I1Mzk2IDEwMDY0NAogLS0tIGEvZ2RiL2xp bnV4LW5hdC5jCiArKysgYi9nZGIvbGludXgtbmF0LmMKLUBAIC0xMjQzLDYgKzEyNDMsNjQgQEAg aXRlcmF0ZV9vdmVyX2x3cHMgKHB0aWRfdCBmaWx0ZXIsCitAQCAtMTI1Nyw2ICsxMjU3LDY0IEBA IGl0ZXJhdGVfb3Zlcl9sd3BzIChwdGlkX3QgZmlsdGVyLAogICAgcmV0dXJuIE5VTEw7CiAgfQog IApAQCAtNTIwNSwxMCArNTU0NCwxMCBAQCBpbmRleCAxNDZiYjhjLi45ZTA4ZWVlIDEwMDY0NAog ICAgIGFub3RoZXIgaW5kaWNhdGVkIGJ5IE5FV19QVElELiAgV2UgY2FuIG9ubHkgc3dpdGNoIHNp bmdsZS10aHJlYWRlZAogICAgIGFwcGxpY2F0aW9ucywgc28gd2Ugb25seSBjcmVhdGUgb25lIG5l dyBMV1AsIGFuZCB0aGUgcHJldmlvdXMgbGlzdAogZGlmZiAtLWdpdCBhL2dkYi9saW51eC1uYXQu aCBiL2dkYi9saW51eC1uYXQuaAotaW5kZXggMjk4N2ZhYi4uMGU1ZjM1MyAxMDA2NDQKK2luZGV4 IDQyY2IyZmMuLjA1YWMxMWQgMTAwNjQ0CiAtLS0gYS9nZGIvbGludXgtbmF0LmgKICsrKyBiL2dk Yi9saW51eC1uYXQuaAotQEAgLTEzOSw2ICsxMzksMTEgQEAgc3RydWN0IGx3cF9pbmZvICppdGVy YXRlX292ZXJfbHdwcyAocHRpZF90IGZpbHRlciwKK0BAIC0xNDAsNiArMTQwLDExIEBAIHN0cnVj dCBsd3BfaW5mbyAqaXRlcmF0ZV9vdmVyX2x3cHMgKHB0aWRfdCBmaWx0ZXIsCiAgCQkJCQkJICAg ICB2b2lkICopLCAKICAJCQkJICAgIHZvaWQgKmRhdGEpOwogIApAQCAtNTIyMCwxMSArNTU1OSwx NjIgQEAgaW5kZXggMjk4N2ZhYi4uMGU1ZjM1MyAxMDA2NDQKICAvKiBDcmVhdGUgYSBwcm90b3R5 cGUgZ2VuZXJpYyBHTlUvTGludXggdGFyZ2V0LiAgVGhlIGNsaWVudCBjYW4KICAgICBvdmVycmlk ZSBpdCB3aXRoIGxvY2FsIG1ldGhvZHMuICAqLwogIHN0cnVjdCB0YXJnZXRfb3BzICogbGludXhf dGFyZ2V0ICh2b2lkKTsKK2RpZmYgLS1naXQgYS9nZGIvbWFpbi5jIGIvZ2RiL21haW4uYworaW5k ZXggNjlmMjI5OC4uNmIyNTMwYiAxMDA2NDQKKy0tLSBhL2dkYi9tYWluLmMKKysrKyBiL2dkYi9t YWluLmMKK0BAIC0zOSw2ICszOSw3IEBACisgCisgI2luY2x1ZGUgImludGVycHMuaCIKKyAjaW5j bHVkZSAibWFpbi5oIgorKyNpbmNsdWRlICJweXRob24vcHl0aG9uLmgiCisgI2luY2x1ZGUgInNv dXJjZS5oIgorICNpbmNsdWRlICJjbGkvY2xpLWNtZHMuaCIKKyAjaW5jbHVkZSAicHl0aG9uL3B5 dGhvbi5oIgorQEAgLTI2MCw2ICsyNjEsOCBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQor ICAgY2hhciAqY2RhcmcgPSBOVUxMOworICAgY2hhciAqdHR5YXJnID0gTlVMTDsKKyAKKysgIGlu dCBweXRob25fc2NyaXB0ID0gMDsKKysKKyAgIC8qIFRoZXNlIGFyZSBzdGF0aWMgc28gdGhhdCB3 ZSBjYW4gdGFrZSB0aGVpciBhZGRyZXNzIGluIGFuCisgICAgICBpbml0aWFsaXplci4gICovCisg ICBzdGF0aWMgaW50IHByaW50X2hlbHA7CitAQCAtNDQ4LDEwICs0NTEsMTQgQEAgY2FwdHVyZWRf bWFpbiAodm9pZCAqZGF0YSkKKyAgICAgICB7ImFyZ3MiLCBub19hcmd1bWVudCwgJnNldF9hcmdz LCAxfSwKKyAgICAgICB7ImwiLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgJ2wnfSwKKyAgICAgICB7 InJldHVybi1jaGlsZC1yZXN1bHQiLCBub19hcmd1bWVudCwgJnJldHVybl9jaGlsZF9yZXN1bHQs IDF9LAorKyNpZiBIQVZFX1BZVEhPTgorKyAgICAgIHsicHl0aG9uIiwgbm9fYXJndW1lbnQsIDAs ICdQJ30sCisrICAgICAgeyJQIiwgbm9fYXJndW1lbnQsIDAsICdQJ30sCisrI2VuZGlmCisgICAg ICAgezAsIG5vX2FyZ3VtZW50LCAwLCAwfQorICAgICB9OworIAorLSAgICB3aGlsZSAoMSkKKysg ICAgd2hpbGUgKCFweXRob25fc2NyaXB0KQorICAgICAgIHsKKyAJaW50IG9wdGlvbl9pbmRleDsK KyAKK0BAIC00NjksNiArNDc2LDkgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKKyAJICBj YXNlIDA6CisgCSAgICAvKiBMb25nIG9wdGlvbiB0aGF0IGp1c3Qgc2V0cyBhIGZsYWcuICAqLwor IAkgICAgYnJlYWs7CisrCSAgY2FzZSAnUCc6CisrCSAgICBweXRob25fc2NyaXB0ID0gMTsKKysJ ICAgIGJyZWFrOworIAkgIGNhc2UgT1BUX1NFOgorIAkgICAgc3ltYXJnID0gb3B0YXJnOworIAkg ICAgZXhlY2FyZyA9IG9wdGFyZzsKK0BAIC02NjMsNyArNjczLDMxIEBAIGNhcHR1cmVkX21haW4g KHZvaWQgKmRhdGEpCisgCisgICAvKiBOb3cgdGhhdCBnZGJfaW5pdCBoYXMgY3JlYXRlZCB0aGUg aW5pdGlhbCBpbmZlcmlvciwgd2UncmUgaW4KKyAgICAgIHBvc2l0aW9uIHRvIHNldCBhcmdzIGZv ciB0aGF0IGluZmVyaW9yLiAgKi8KKy0gIGlmIChzZXRfYXJncykKKysgIGlmIChweXRob25fc2Ny aXB0KQorKyAgICB7CisrICAgICAgLyogVGhlIGZpcnN0IGFyZ3VtZW50IGlzIGEgcHl0aG9uIHNj cmlwdCB0byBldmFsdWF0ZSwgYW5kCisrCSBzdWJzZXF1ZW50IGFyZ3VtZW50cyBhcmUgcGFzc2Vk IHRvIHRoZSBzY3JpcHQgZm9yCisrCSBwcm9jZXNzaW5nIHRoZXJlLiAgKi8KKysgICAgICBpZiAo b3B0aW5kID49IGFyZ2MpCisrCXsKKysJICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRlcnIs CisrCQkJICAgICAgXygiJXM6IFB5dGhvbiBzY3JpcHQgZmlsZSBuYW1lIHJlcXVpcmVkXG4iKSwK KysJCQkgICAgICBhcmd2WzBdKTsKKysJICBleGl0ICgxKTsKKysJfQorKworKyAgICAgIC8qIEZJ WE1FOiBzaG91bGQgaGFuZGxlIGluZmVyaW9yIEkvTyBpbnRlbGxpZ2VudGx5IGhlcmUuCisrCSBF LmcuLCBzaG91bGQgYmUgcG9zc2libGUgdG8gcnVuIGdkYiBpbiBwaXBlbGluZSBhbmQgaGF2ZQor KwkgUHl0aG9uIChhbmQgZ2RiKSBvdXRwdXQgZ28gdG8gc3RkZXJyIG9yIGZpbGU7IGFuZCBpZiBh CisrCSBwcm9tcHQgaXMgbmVlZGVkLCBvcGVuIHRoZSB0dHkuICAqLworKyAgICAgIHF1aWV0ID0g MTsKKysgICAgICAvKiBGSVhNRTogc2hvdWxkIHJlYWQgLmdkYmluaXQgaWYsIGFuZCBvbmx5IGlm LCBhIHByb21wdCBpcworKwkgcmVxdWVzdGVkIGJ5IHRoZSBzY3JpcHQuICBUaG91Z2guLi4gbWF5 YmUgdGhpcyBpcyBub3QKKysJIGlkZWFsPyAgKi8KKysgICAgICAvKiBGSVhNRTogbGlrZXdpc2Us IHJlYWRpbmcgaW4gaGlzdG9yeS4gICovCisrICAgICAgaW5oaWJpdF9nZGJpbml0ID0gMTsKKysg ICAgfQorKyAgZWxzZSBpZiAoc2V0X2FyZ3MpCisgICAgIHsKKyAgICAgICAvKiBUaGUgcmVtYWlu aW5nIG9wdGlvbnMgYXJlIHRoZSBjb21tYW5kLWxpbmUgb3B0aW9ucyBmb3IgdGhlCisgCSBpbmZl cmlvci4gIFRoZSBmaXJzdCBvbmUgaXMgdGhlIHN5bS9leGVjIGZpbGUsIGFuZCB0aGUgcmVzdAor QEAgLTkxMiw3ICs5NDYsOCBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQorIAorICAgLyog UmVhZCBpbiB0aGUgb2xkIGhpc3RvcnkgYWZ0ZXIgYWxsIHRoZSBjb21tYW5kIGZpbGVzIGhhdmUg YmVlbgorICAgICAgcmVhZC4gICovCistICBpbml0X2hpc3RvcnkgKCk7CisrICBpZiAoIXB5dGhv bl9zY3JpcHQpCisrICAgIGluaXRfaGlzdG9yeSAoKTsKKyAKKyAgIGlmIChiYXRjaF9mbGFnKQor ICAgICB7CitAQCAtOTIzLDEzICs5NTgsMjUgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkK KyAgIC8qIFNob3cgdGltZSBhbmQvb3Igc3BhY2UgdXNhZ2UuICAqLworICAgZG9fY2xlYW51cHMg KHByZV9zdGF0X2NoYWluKTsKKyAKKy0gIC8qIE5PVEU6IGNhZ25leS8xOTk5LTExLTA3OiBUaGVy ZSBpcyBwcm9iYWJseSBubyByZWFzb24gZm9yIG5vdAorLSAgICAgbW92aW5nIHRoaXMgbG9vcCBh bmQgdGhlIGNvZGUgZm91bmQgaW4gY2FwdHVyZWRfY29tbWFuZF9sb29wKCkKKy0gICAgIGludG8g dGhlIGNvbW1hbmRfbG9vcCgpIHByb3Blci4gIFRoZSBtYWluIHRoaW5nIGhvbGRpbmcgYmFjayB0 aGF0CistICAgICBjaGFuZ2UgLSBTRVRfVE9QX0xFVkVMKCkgLSBoYXMgYmVlbiBlbGltaW5hdGVk LiAgKi8KKy0gIHdoaWxlICgxKQorKyNpZiBIQVZFX1BZVEhPTgorKyAgaWYgKHB5dGhvbl9zY3Jp cHQpCisgICAgIHsKKy0gICAgICBjYXRjaF9lcnJvcnMgKGNhcHR1cmVkX2NvbW1hbmRfbG9vcCwg MCwgIiIsIFJFVFVSTl9NQVNLX0FMTCk7CisrICAgICAgZXh0ZXJuIGludCBwYWdpbmF0aW9uX2Vu YWJsZWQ7CisrICAgICAgcGFnaW5hdGlvbl9lbmFibGVkID0gMDsKKysgICAgICBydW5fcHl0aG9u X3NjcmlwdCAoYXJnYyAtIG9wdGluZCwgJmFyZ3Zbb3B0aW5kXSk7CisrICAgICAgcmV0dXJuIDE7 CisrICAgIH0KKysgIGVsc2UKKysjZW5kaWYKKysgICAgeworKyAgICAgIC8qIE5PVEU6IGNhZ25l eS8xOTk5LTExLTA3OiBUaGVyZSBpcyBwcm9iYWJseSBubyByZWFzb24gZm9yIG5vdAorKwkgbW92 aW5nIHRoaXMgbG9vcCBhbmQgdGhlIGNvZGUgZm91bmQgaW4gY2FwdHVyZWRfY29tbWFuZF9sb29w KCkKKysJIGludG8gdGhlIGNvbW1hbmRfbG9vcCgpIHByb3Blci4gIFRoZSBtYWluIHRoaW5nIGhv bGRpbmcgYmFjayB0aGF0CisrCSBjaGFuZ2UgLSBTRVRfVE9QX0xFVkVMKCkgLSBoYXMgYmVlbiBl bGltaW5hdGVkLiAqLworKyAgICAgIHdoaWxlICgxKQorKwl7CisrCSAgY2F0Y2hfZXJyb3JzIChj YXB0dXJlZF9jb21tYW5kX2xvb3AsIDAsICIiLCBSRVRVUk5fTUFTS19BTEwpOworKwl9CisgICAg IH0KKyAgIC8qIE5vIGV4aXQgLS0gZXhpdCBpcyB0aHJvdWdoIHF1aXRfY29tbWFuZC4gICovCisg fQorQEAgLTk2MSw3ICsxMDA4LDEyIEBAIHByaW50X2dkYl9oZWxwIChzdHJ1Y3QgdWlfZmlsZSAq c3RyZWFtKQorICAgZnB1dHNfdW5maWx0ZXJlZCAoXygiXAorIFRoaXMgaXMgdGhlIEdOVSBkZWJ1 Z2dlci4gIFVzYWdlOlxuXG5cCisgICAgIGdkYiBbb3B0aW9uc10gW2V4ZWN1dGFibGUtZmlsZSBb Y29yZS1maWxlIG9yIHByb2Nlc3MtaWRdXVxuXAorLSAgICBnZGIgW29wdGlvbnNdIC0tYXJncyBl eGVjdXRhYmxlLWZpbGUgW2luZmVyaW9yLWFyZ3VtZW50cyAuLi5dXG5cblwKKysgICAgZ2RiIFtv cHRpb25zXSAtLWFyZ3MgZXhlY3V0YWJsZS1maWxlIFtpbmZlcmlvci1hcmd1bWVudHMgLi4uXVxu IiksIHN0cmVhbSk7CisrI2lmIEhBVkVfUFlUSE9OCisrICBmcHV0c191bmZpbHRlcmVkIChfKCJc CisrICAgIGdkYiBbb3B0aW9uc10gWy0tcHl0aG9ufC1QXSBzY3JpcHQtZmlsZSBbc2NyaXB0LWFy Z3VtZW50cyAuLi5dXG4iKSwgc3RyZWFtKTsKKysjZW5kaWYKKysgIGZwdXRzX3VuZmlsdGVyZWQg KF8oIlxuXAorIE9wdGlvbnM6XG5cblwKKyAiKSwgc3RyZWFtKTsKKyAgIGZwdXRzX3VuZmlsdGVy ZWQgKF8oIlwKK0BAIC05OTksNyArMTA1MSwxMyBAQCBPcHRpb25zOlxuXG5cCisgICAtLW53CQkg ICAgIERvIG5vdCB1c2UgYSB3aW5kb3cgaW50ZXJmYWNlLlxuXAorICAgLS1ueCAgICAgICAgICAg ICAgIERvIG5vdCByZWFkICIpLCBzdHJlYW0pOworICAgZnB1dHNfdW5maWx0ZXJlZCAoZ2RiaW5p dCwgc3RyZWFtKTsKKy0gIGZwdXRzX3VuZmlsdGVyZWQgKF8oIiBmaWxlLlxuXAorKyAgZnB1dHNf dW5maWx0ZXJlZCAoXygiIGZpbGUuXG4iKSwgc3RyZWFtKTsKKysjaWYgSEFWRV9QWVRIT04KKysg IGZwdXRzX3VuZmlsdGVyZWQgKF8oIlwKKysgIC0tcHl0aG9uLCAtUCAgICAgICBGb2xsb3dpbmcg YXJndW1lbnQgaXMgUHl0aG9uIHNjcmlwdCBmaWxlOyByZW1haW5pbmdcblwKKysgICAgICAgICAg ICAgICAgICAgICBhcmd1bWVudHMgYXJlIHBhc3NlZCB0byBzY3JpcHQuXG4iKSwgc3RyZWFtKTsK KysjZW5kaWYKKysgIGZwdXRzX3VuZmlsdGVyZWQgKF8oIlwKKyAgIC0tcXVpZXQgICAgICAgICAg ICBEbyBub3QgcHJpbnQgdmVyc2lvbiBudW1iZXIgb24gc3RhcnR1cC5cblwKKyAgIC0tcmVhZG5v dyAgICAgICAgICBGdWxseSByZWFkIHN5bWJvbCBmaWxlcyBvbiBmaXJzdCBhY2Nlc3MuXG5cCisg IiksIHN0cmVhbSk7CiBkaWZmIC0tZ2l0IGEvZ2RiL21pL21pLWNtZC12YXIuYyBiL2dkYi9taS9t aS1jbWQtdmFyLmMKLWluZGV4IDE0NzhjYjAuLmM0NDkyYTcgMTAwNjQ0CitpbmRleCA4ZTBmNDEw Li5lMjNmNDgyIDEwMDY0NAogLS0tIGEvZ2RiL21pL21pLWNtZC12YXIuYwogKysrIGIvZ2RiL21p L21pLWNtZC12YXIuYwotQEAgLTcwMiw3ICs3MDIsNiBAQCBtaV9jbWRfdmFyX3VwZGF0ZSAoY2hh ciAqY29tbWFuZCwgY2hhciAqKmFyZ3YsIGludCBhcmdjKQorQEAgLTcwNyw3ICs3MDcsNiBAQCBt aV9jbWRfdmFyX3VwZGF0ZSAoY2hhciAqY29tbWFuZCwgY2hhciAqKmFyZ3YsIGludCBhcmdjKQog ICAgICB9CiAgICBlbHNlCiAgICAgIHsKQEAgLTUyMzMsNyArNTcyMyw3IEBAIGluZGV4IDE0Nzhj YjAuLmM0NDkyYTcgMTAwNjQ0CiAgCiAgICAgICAgdmFyb2JqX3VwZGF0ZV9vbmUgKHZhciwgcHJp bnRfdmFsdWVzLCAxIC8qIGV4cGxpY2l0ICovKTsKIGRpZmYgLS1naXQgYS9nZGIvbWluc3ltcy5j IGIvZ2RiL21pbnN5bXMuYwotaW5kZXggZTg3MDk1NC4uMDQzNmI1NyAxMDA2NDQKK2luZGV4IDc3 MTU5YTUuLmVhOTRjMTMgMTAwNjQ0CiAtLS0gYS9nZGIvbWluc3ltcy5jCiArKysgYi9nZGIvbWlu c3ltcy5jCiBAQCAtMzM4LDggKzMzOCw5IEBAIGxvb2t1cF9taW5pbWFsX3N5bWJvbF90ZXh0IChj b25zdCBjaGFyICpuYW1lLCBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZikKQEAgLTUyODQsNyArNTc3NCw3 IEBAIGluZGV4IGU4NzA5NTQuLjA0MzZiNTcgMTAwNjQ0CiAgCQkgICAgICAgU1lNQk9MX0xJTktB R0VfTkFNRSAodHN5bWJvbCkpID09IDApCiAgCSAgcmV0dXJuIFNZTUJPTF9WQUxVRV9BRERSRVNT IChtc3ltYm9sKTsKIGRpZmYgLS1naXQgYS9nZGIvcC12YWxwcmludC5jIGIvZ2RiL3AtdmFscHJp bnQuYwotaW5kZXggYmQwMWZlYS4uNzdiMTAzMyAxMDA2NDQKK2luZGV4IDUzOTBkZDkuLmMwYTBi MmEgMTAwNjQ0CiAtLS0gYS9nZGIvcC12YWxwcmludC5jCiArKysgYi9nZGIvcC12YWxwcmludC5j CiBAQCAtMzgsNiArMzgsNyBAQApAQCAtNTMyNCwxOSArNTgxNCwxOCBAQCBpbmRleCBiZDAxZmVh Li43N2IxMDMzIDEwMDY0NAogICAgc3dpdGNoIChUWVBFX0NPREUgKHR5cGUpKQogICAgICB7CiAg ICAgIGNhc2UgVFlQRV9DT0RFX0FSUkFZOgotQEAgLTEyNSw4ICsxNDUsOSBAQCBwYXNjYWxfdmFs X3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCitAQCAt MTI1LDggKzE0NSw4IEBAIHBhc2NhbF92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25z dCBnZGJfYnl0ZSAqdmFsYWRkciwKICAJCXsKICAJCSAgaSA9IDA7CiAgCQl9Ci0tCSAgICAgIHZh bF9wcmludF9hcnJheV9lbGVtZW50cyAodHlwZSwgdmFsYWRkciArIGVtYmVkZGVkX29mZnNldCwg YWRkcmVzcywgc3RyZWFtLAotLQkJCQkJcmVjdXJzZSwgb3JpZ2luYWxfdmFsdWUsIG9wdGlvbnMs IGkpOworLQkgICAgICB2YWxfcHJpbnRfYXJyYXlfZWxlbWVudHMgKHR5cGUsIHZhbGFkZHIgKyBl bWJlZGRlZF9vZmZzZXQsCistCQkJCQlhZGRyZXNzLCBzdHJlYW0sIHJlY3Vyc2UsCiArCSAgICAg IHZhbF9wcmludF9hcnJheV9lbGVtZW50cyAoc2F2ZWRfdHlwZSwgdmFsYWRkciArIGVtYmVkZGVk X29mZnNldCwKICsJCQkJCXNhdmVkX2FkZHJlc3MsIHN0cmVhbSwgcmVjdXJzZSwKLSsJCQkJCW9y aWdpbmFsX3ZhbHVlLCBvcHRpb25zLCBpKTsKKyAJCQkJCW9yaWdpbmFsX3ZhbHVlLCBvcHRpb25z LCBpKTsKICAJICAgICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAifSIpOwogIAkgICAgfQot IAkgIGJyZWFrOwotQEAgLTE2NCw2ICsxODUsNyBAQCBwYXNjYWxfdmFsX3ByaW50IChzdHJ1Y3Qg dHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCitAQCAtMTY1LDYgKzE4NSw3IEBA IHBhc2NhbF92YWxfcHJpbnQgKHN0cnVjdCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFs YWRkciwKICAJICAvKiBUcnkgdG8gcHJpbnQgd2hhdCBmdW5jdGlvbiBpdCBwb2ludHMgdG8uICAq LwogIAkgIHByaW50X2FkZHJlc3NfZGVtYW5nbGUgKGdkYmFyY2gsIGFkZHIsIHN0cmVhbSwgZGVt YW5nbGUpOwogIAkgIC8qIFJldHVybiB2YWx1ZSBpcyBpcnJlbGV2YW50IGV4Y2VwdCBmb3Igc3Ry aW5nIHBvaW50ZXJzLiAgKi8KQEAgLTUzNDQsNyArNTgzMyw3IEBAIGluZGV4IGJkMDFmZWEuLjc3 YjEwMzMgMTAwNjQ0CiAgCSAgcmV0dXJuICgwKTsKICAJfQogIAotQEAgLTI1NCw2ICsyNzYsNyBA QCBwYXNjYWxfdmFsX3ByaW50IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZh bGFkZHIsCitAQCAtMjU2LDYgKzI3Nyw3IEBAIHBhc2NhbF92YWxfcHJpbnQgKHN0cnVjdCB0eXBl ICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKICAgICAgICAvKiBSZXR1cm4gbnVtYmVy IG9mIGNoYXJhY3RlcnMgcHJpbnRlZCwgaW5jbHVkaW5nIHRoZSB0ZXJtaW5hdGluZwogIAkgJ1ww JyBpZiB3ZSByZWFjaGVkIHRoZSBlbmQuICB2YWxfcHJpbnRfc3RyaW5nIHRha2VzIGNhcmUgaW5j bHVkaW5nCiAgCSB0aGUgdGVybWluYXRpbmcgJ1wwJyBpZiBuZWNlc3NhcnkuICAqLwpAQCAtNTM1 Miw4ICs1ODQxLDggQEAgaW5kZXggYmQwMWZlYS4uNzdiMTAzMyAxMDA2NDQKICAgICAgICByZXR1 cm4gaTsKICAKICAgICAgICBicmVhazsKLUBAIC01NTYsNiArNTc5LDcgQEAgcGFzY2FsX3ZhbF9w cmludCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAotICAgICAg IGVycm9yIChfKCJJbnZhbGlkIHBhc2NhbCB0eXBlIGNvZGUgJWQgaW4gc3ltYm9sIHRhYmxlLiIp LCBUWVBFX0NPREUgKHR5cGUpKTsKK0BAIC01NzIsNiArNTk0LDcgQEAgcGFzY2FsX3ZhbF9wcmlu dCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAorIAkgICAgIFRZ UEVfQ09ERSAodHlwZSkpOwogICAgICB9CiAgICBnZGJfZmx1c2ggKHN0cmVhbSk7CiArICBkb19j bGVhbnVwcyAoYmFja190byk7CkBAIC01MzYxLDcgKzU4NTAsNyBAQCBpbmRleCBiZDAxZmVhLi43 N2IxMDMzIDEwMDY0NAogIH0KICAMCiBkaWZmIC0tZ2l0IGEvZ2RiL3BhcnNlLmMgYi9nZGIvcGFy c2UuYwotaW5kZXggZGFlZTYzMy4uMWY5YTBkMSAxMDA2NDQKK2luZGV4IDRmMGMxMTEuLjI0M2E5 NGEgMTAwNjQ0CiAtLS0gYS9nZGIvcGFyc2UuYwogKysrIGIvZ2RiL3BhcnNlLmMKIEBAIC00ODcs OSArNDg3LDIxIEBAIHdyaXRlX2V4cF9tc3ltYm9sIChzdHJ1Y3QgbWluaW1hbF9zeW1ib2wgKm1z eW1ib2wpCkBAIC01NDEwLDcgKzU4OTksNyBAQCBpbmRleCBkYWVlNjMzLi4xZjlhMGQxIDEwMDY0 NAogICAgICBkZWZhdWx0OgogICAgICAgIHdyaXRlX2V4cF9lbHRfdHlwZSAob2JqZmlsZV90eXBl IChvYmpmaWxlKS0+bm9kZWJ1Z191bmtub3duX3N5bWJvbCk7CiAgICAgICAgYnJlYWs7Ci1AQCAt MTQ4MSw2ICsxNTAyLDcgQEAgcGFyc2VyX2ZwcmludGYgKEZJTEUgKngsIGNvbnN0IGNoYXIgKnks IC4uLikKK0BAIC0xNDgyLDYgKzE1MDMsNyBAQCBwYXJzZXJfZnByaW50ZiAoRklMRSAqeCwgY29u c3QgY2hhciAqeSwgLi4uKQogIAogIGludAogIG9wZXJhdG9yX2NoZWNrX3N0YW5kYXJkIChzdHJ1 Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgcG9zLApAQCAtNTQxOCw3ICs1OTA3LDcgQEAgaW5kZXgg ZGFlZTYzMy4uMWY5YTBkMSAxMDA2NDQKICAJCQkgaW50ICgqb2JqZmlsZV9mdW5jKSAoc3RydWN0 IG9iamZpbGUgKm9iamZpbGUsCiAgCQkJCQkgICAgICB2b2lkICpkYXRhKSwKICAJCQkgdm9pZCAq ZGF0YSkKLUBAIC0xNTIyLDcgKzE1NDQsNyBAQCBvcGVyYXRvcl9jaGVja19zdGFuZGFyZCAoc3Ry dWN0IGV4cHJlc3Npb24gKmV4cCwgaW50IHBvcywKK0BAIC0xNTIzLDcgKzE1NDUsNyBAQCBvcGVy YXRvcl9jaGVja19zdGFuZGFyZCAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50IHBvcywKICAJ ICAgIHN0cnVjdCB0eXBlICp0eXBlID0gZWx0c1twb3MgKyAyICsgYXJnXS50eXBlOwogIAkgICAg c3RydWN0IG9iamZpbGUgKm9iamZpbGUgPSBUWVBFX09CSkZJTEUgKHR5cGUpOwogIApAQCAtNTQy Nyw3ICs1OTE2LDcgQEAgaW5kZXggZGFlZTYzMy4uMWY5YTBkMSAxMDA2NDQKICAJICAgICAgcmV0 dXJuIDE7CiAgCSAgfQogICAgICAgIH0KLUBAIC0xNTQwLDcgKzE1NjIsOCBAQCBvcGVyYXRvcl9j aGVja19zdGFuZGFyZCAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwgaW50IHBvcywKK0BAIC0xNTQx LDcgKzE1NjMsOCBAQCBvcGVyYXRvcl9jaGVja19zdGFuZGFyZCAoc3RydWN0IGV4cHJlc3Npb24g KmV4cCwgaW50IHBvcywKICAKICAJLyogQ2hlY2sgb2JqZmlsZSB3aGVyZSB0aGUgdmFyaWFibGUg aXRzZWxmIGlzIHBsYWNlZC4KICAJICAgU1lNQk9MX09CSl9TRUNUSU9OIChzeW1ib2wpIG1heSBi ZSBOVUxMLiAgKi8KQEAgLTU0MzcsNyArNTkyNiw3IEBAIGluZGV4IGRhZWU2MzMuLjFmOWEwZDEg MTAwNjQ0CiAgCSAgcmV0dXJuIDE7CiAgCiAgCS8qIENoZWNrIG9iamZpbGUgd2hlcmUgaXMgcGxh Y2VkIHRoZSBjb2RlIHRvdWNoaW5nIHRoZSB2YXJpYWJsZS4gICovCi1AQCAtMTU1MywyNCArMTU3 NiwyNyBAQCBvcGVyYXRvcl9jaGVja19zdGFuZGFyZCAoc3RydWN0IGV4cHJlc3Npb24gKmV4cCwg aW50IHBvcywKK0BAIC0xNTU0LDI0ICsxNTc3LDI3IEBAIG9wZXJhdG9yX2NoZWNrX3N0YW5kYXJk IChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBpbnQgcG9zLAogIAogICAgLyogSW52b2tlIGNhbGxi YWNrcyBmb3IgVFlQRSBhbmQgT0JKRklMRSBpZiB0aGV5IHdlcmUgc2V0IGFzIG5vbi1OVUxMLiAg Ki8KICAKQEAgLTU0NzMsNyArNTk2Miw3IEBAIGluZGV4IGRhZWU2MzMuLjFmOWEwZDEgMTAwNjQ0 CiAgCSAgICAgaW50ICgqb2JqZmlsZV9mdW5jKSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUsIHZv aWQgKmRhdGEpLAogIAkgICAgIHZvaWQgKmRhdGEpCiAgewotQEAgLTE1ODUsNyArMTYxMSw5IEBA IGV4cF9pdGVyYXRlIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAorQEAgLTE1ODYsNyArMTYxMiw5 IEBAIGV4cF9pdGVyYXRlIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLAogIAogICAgICAgIHBvcyA9 IGVuZHBvcyAtIG9wbGVuOwogICAgICAgIGlmIChleHAtPmxhbmd1YWdlX2RlZm4tPmxhX2V4cF9k ZXNjLT5vcGVyYXRvcl9jaGVjayAoZXhwLCBwb3MsCkBAIC01NDg0LDcgKzU5NzMsNyBAQCBpbmRl eCBkYWVlNjMzLi4xZjlhMGQxIDEwMDY0NAogIAlyZXR1cm4gMTsKICAKICAgICAgICBlbmRwb3Mg PSBwb3M7Ci1AQCAtMTYxNiw3ICsxNjQ0LDI2IEBAIGV4cF91c2VzX29iamZpbGUgKHN0cnVjdCBl eHByZXNzaW9uICpleHAsIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQorQEAgLTE2MTcsNyArMTY0 NSwyNiBAQCBleHBfdXNlc19vYmpmaWxlIChzdHJ1Y3QgZXhwcmVzc2lvbiAqZXhwLCBzdHJ1Y3Qg b2JqZmlsZSAqb2JqZmlsZSkKICB7CiAgICBnZGJfYXNzZXJ0IChvYmpmaWxlLT5zZXBhcmF0ZV9k ZWJ1Z19vYmpmaWxlX2JhY2tsaW5rID09IE5VTEwpOwogIApAQCAtNTY4NCwxMCArNjE3MywxMCBA QCBpbmRleCBjYTczMTJiLi41ODY5NmQzIDEwMDY0NAogIAogICAgcmV0dXJuIHJldDsKIGRpZmYg LS1naXQgYS9nZGIvcHJpbnRjbWQuYyBiL2dkYi9wcmludGNtZC5jCi1pbmRleCBlYjNjM2Y5Li5l ZDhkNjdhIDEwMDY0NAoraW5kZXggYjdkM2FkZS4uYTZmYTg2YSAxMDA2NDQKIC0tLSBhL2dkYi9w cmludGNtZC5jCiArKysgYi9nZGIvcHJpbnRjbWQuYwotQEAgLTk3MSw2ICs5NzEsMTEgQEAgcHJp bnRfY29tbWFuZF8xIChjaGFyICpleHAsIGludCBpbnNwZWN0LCBpbnQgdm9pZHByaW50KQorQEAg LTk3Myw2ICs5NzMsMTEgQEAgcHJpbnRfY29tbWFuZF8xIChjaGFyICpleHAsIGludCBpbnNwZWN0 LCBpbnQgdm9pZHByaW50KQogICAgZWxzZQogICAgICB2YWwgPSBhY2Nlc3NfdmFsdWVfaGlzdG9y eSAoMCk7CiAgCkBAIC01Njk5LDcgKzYxODgsNyBAQCBpbmRleCBlYjNjM2Y5Li5lZDhkNjdhIDEw MDY0NAogICAgaWYgKHZvaWRwcmludCB8fCAodmFsICYmIHZhbHVlX3R5cGUgKHZhbCkgJiYKICAJ CSAgICBUWVBFX0NPREUgKHZhbHVlX3R5cGUgKHZhbCkpICE9IFRZUEVfQ09ERV9WT0lEKSkKICAg ICAgewotQEAgLTE0NzEsNiArMTQ3NiwyMiBAQCB4X2NvbW1hbmQgKGNoYXIgKmV4cCwgaW50IGZy b21fdHR5KQorQEAgLTE0NzQsNiArMTQ3OSwyMiBAQCB4X2NvbW1hbmQgKGNoYXIgKmV4cCwgaW50 IGZyb21fdHR5KQogIAlzZXRfaW50ZXJuYWx2YXIgKGxvb2t1cF9pbnRlcm5hbHZhciAoIl9fIiks IGxhc3RfZXhhbWluZV92YWx1ZSk7CiAgICAgIH0KICB9CkBAIC01NzIyLDEzICs2MjExLDExNjMg QEAgaW5kZXggZWIzYzNmOS4uZWQ4ZDY3YSAxMDA2NDQKICAMCiAgCiAgLyogQWRkIGFuIGV4cHJl c3Npb24gdG8gdGhlIGF1dG8tZGlzcGxheSBjaGFpbi4KLUBAIC0yODY5LDQgKzI4OTAsNiBAQCBT aG93IHByaW50aW5nIG9mIHNvdXJjZSBmaWxlbmFtZSBhbmQgbGluZSBudW1iZXIgd2l0aCA8c3lt Ym9sPi4iKSwgTlVMTCwKK0BAIC0yODc0LDQgKzI4OTUsNiBAQCBTaG93IHByaW50aW5nIG9mIHNv dXJjZSBmaWxlbmFtZSBhbmQgbGluZSBudW1iZXIgd2l0aCA8c3ltYm9sPi4iKSwgTlVMTCwKICAg IGFkZF9jb20gKCJldmFsIiwgbm9fY2xhc3MsIGV2YWxfY29tbWFuZCwgXygiXAogIENvbnZlcnQg XCJwcmludGYgZm9ybWF0IHN0cmluZ1wiLCBhcmcxLCBhcmcyLCBhcmczLCAuLi4sIGFyZ24gdG9c blwKICBhIGNvbW1hbmQgbGluZSwgYW5kIGNhbGwgaXQuIikpOwogKwogKyAgb2JzZXJ2ZXJfYXR0 YWNoX21hcmtfdXNlZCAocHJpbnRfdHlwZXNfbWFya191c2VkKTsKICB9CitkaWZmIC0tZ2l0IGEv Z2RiL3B5dGhvbi9saWIvZ2RiL0ZyYW1lSXRlcmF0b3IucHkgYi9nZGIvcHl0aG9uL2xpYi9nZGIv RnJhbWVJdGVyYXRvci5weQorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLjU2 NTQ1NDYKKy0tLSAvZGV2L251bGwKKysrKyBiL2dkYi9weXRob24vbGliL2dkYi9GcmFtZUl0ZXJh dG9yLnB5CitAQCAtMCwwICsxLDMzIEBACisrIyBJdGVyYXRvciBvdmVyIGZyYW1lcy4KKysKKysj IENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K KysKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor KyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K KysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNl ZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisrY2xhc3MgRnJhbWVJdGVyYXRv cjoKKysgICAgIiIiQW4gaXRlcmF0b3IgdGhhdCBpdGVyYXRlcyBvdmVyIGZyYW1lcy4iIiIKKysK KysgICAgZGVmIF9faW5pdF9fIChzZWxmLCBmcmFtZSk6CisrICAgICAgICAiSW5pdGlhbGl6ZSBh IEZyYW1lSXRlcmF0b3IuICBGUkFNRSBpcyB0aGUgc3RhcnRpbmcgZnJhbWUuIgorKyAgICAgICAg c2VsZi5mcmFtZSA9IGZyYW1lCisrCisrICAgIGRlZiBfX2l0ZXJfXyAoc2VsZik6CisrICAgICAg ICByZXR1cm4gc2VsZgorKworKyAgICBkZWYgbmV4dCAoc2VsZik6CisrICAgICAgICByZXN1bHQg PSBzZWxmLmZyYW1lCisrICAgICAgICBpZiByZXN1bHQgaXMgTm9uZToKKysgICAgICAgICAgICBy YWlzZSBTdG9wSXRlcmF0aW9uCisrICAgICAgICBzZWxmLmZyYW1lID0gcmVzdWx0Lm9sZGVyICgp CisrICAgICAgICByZXR1cm4gcmVzdWx0CitkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9saWIvZ2Ri L0ZyYW1lV3JhcHBlci5weSBiL2dkYi9weXRob24vbGliL2dkYi9GcmFtZVdyYXBwZXIucHkKK25l dyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi5iNzkwYTU0CistLS0gL2Rldi9udWxs CisrKysgYi9nZGIvcHl0aG9uL2xpYi9nZGIvRnJhbWVXcmFwcGVyLnB5CitAQCAtMCwwICsxLDEx MiBAQAorKyMgV3JhcHBlciBBUEkgZm9yIGZyYW1lcy4KKysKKysjIENvcHlyaWdodCAoQykgMjAw OCwgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysjIFRoaXMgcHJvZ3Jh bSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5 CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy IHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxh dGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor KyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uCisrCisraW1wb3J0IGdkYgorKworKyMgRklYTUU6IGFyZ3VhYmx5IGFs bCB0aGlzIHNob3VsZCBiZSBvbiBGcmFtZSBzb21laG93LgorK2NsYXNzIEZyYW1lV3JhcHBlcjoK KysgICAgZGVmIF9faW5pdF9fIChzZWxmLCBmcmFtZSk6CisrICAgICAgICBzZWxmLmZyYW1lID0g ZnJhbWU7CisrCisrICAgIGRlZiB3cml0ZV9zeW1ib2wgKHNlbGYsIHN0cmVhbSwgc3ltLCBibG9j ayk6CisrICAgICAgICBpZiBsZW4gKHN5bS5saW5rYWdlX25hbWUpOgorKyAgICAgICAgICAgIG5z eW0sIGlzX2ZpZWxkX29mX3RoaXMgPSBnZGIubG9va3VwX3N5bWJvbCAoc3ltLmxpbmthZ2VfbmFt ZSwgYmxvY2spCisrICAgICAgICAgICAgaWYgbnN5bS5hZGRyX2NsYXNzICE9IGdkYi5TWU1CT0xf TE9DX1JFR0lTVEVSOgorKyAgICAgICAgICAgICAgICBzeW0gPSBuc3ltCisrCisrICAgICAgICBz dHJlYW0ud3JpdGUgKHN5bS5wcmludF9uYW1lICsgIj0iKQorKyAgICAgICAgdHJ5OgorKyAgICAg ICAgICAgIHZhbCA9IHNlbGYucmVhZF92YXIgKHN5bSkKKysgICAgICAgICAgICBpZiB2YWwgIT0g Tm9uZToKKysgICAgICAgICAgICAgICAgdmFsID0gc3RyICh2YWwpCisrICAgICAgICAjIEZJWE1F OiB3b3VsZCBiZSBuaWNlIHRvIGhhdmUgYSBtb3JlIHByZWNpc2UgZXhjZXB0aW9uIGhlcmUuCisr ICAgICAgICBleGNlcHQgUnVudGltZUVycm9yLCB0ZXh0OgorKyAgICAgICAgICAgIHZhbCA9IHRl eHQKKysgICAgICAgIGlmIHZhbCA9PSBOb25lOgorKyAgICAgICAgICAgIHN0cmVhbS53cml0ZSAo Ij8/PyIpCisrICAgICAgICBlbHNlOgorKyAgICAgICAgICAgIHN0cmVhbS53cml0ZSAoc3RyICh2 YWwpKQorKworKyAgICBkZWYgcHJpbnRfZnJhbWVfbG9jYWxzIChzZWxmLCBzdHJlYW0sIGZ1bmMp OgorKyAgICAgICAgaWYgbm90IGZ1bmM6CisrICAgICAgICAgICAgcmV0dXJuCisrCisrICAgICAg ICBmaXJzdCA9IFRydWUKKysgICAgICAgIGJsb2NrID0gZnVuYy52YWx1ZQorKworKyAgICAgICAg Zm9yIHN5bSBpbiBibG9jazoKKysgICAgICAgICAgICBpZiBzeW0uaXNfYXJndW1lbnQ6CisrICAg ICAgICAgICAgICAgIGNvbnRpbnVlOworKworKyAgICAgICAgICAgIHNlbGYud3JpdGVfc3ltYm9s IChzdHJlYW0sIHN5bSwgYmxvY2spCisrICAgICAgICAgICAgc3RyZWFtLndyaXRlICgnXG4nKQor KworKyAgICBkZWYgcHJpbnRfZnJhbWVfYXJncyAoc2VsZiwgc3RyZWFtLCBmdW5jKToKKysgICAg ICAgIGlmIG5vdCBmdW5jOgorKyAgICAgICAgICAgIHJldHVybgorKworKyAgICAgICAgZmlyc3Qg PSBUcnVlCisrICAgICAgICBibG9jayA9IGZ1bmMudmFsdWUKKysKKysgICAgICAgIGZvciBzeW0g aW4gYmxvY2s6CisrICAgICAgICAgICAgaWYgbm90IHN5bS5pc19hcmd1bWVudDoKKysgICAgICAg ICAgICAgICAgY29udGludWU7CisrCisrICAgICAgICAgICAgaWYgbm90IGZpcnN0OgorKyAgICAg ICAgICAgICAgICBzdHJlYW0ud3JpdGUgKCIsICIpCisrCisrICAgICAgICAgICAgc2VsZi53cml0 ZV9zeW1ib2wgKHN0cmVhbSwgc3ltLCBibG9jaykKKysgICAgICAgICAgICBmaXJzdCA9IEZhbHNl CisrCisrICAgICMgRklYTUU6IHRoaXMgc2hvdWxkIHByb2JhYmx5IGp1c3QgYmUgYSBtZXRob2Qg b24gZ2RiLkZyYW1lLgorKyAgICAjIEJ1dCB0aGVuIHdlIG5lZWQgc3RyZWFtIHdyYXBwZXJzLgor KyAgICBkZWYgZGVzY3JpYmUgKHNlbGYsIHN0cmVhbSwgZnVsbCk6CisrICAgICAgICBpZiBzZWxm LnR5cGUgKCkgPT0gZ2RiLkRVTU1ZX0ZSQU1FOgorKyAgICAgICAgICAgIHN0cmVhbS53cml0ZSAo IiA8ZnVuY3Rpb24gY2FsbGVkIGZyb20gZ2RiPlxuIikKKysgICAgICAgIGVsaWYgc2VsZi50eXBl ICgpID09IGdkYi5TSUdUUkFNUF9GUkFNRToKKysgICAgICAgICAgICBzdHJlYW0ud3JpdGUgKCIg PHNpZ25hbCBoYW5kbGVyIGNhbGxlZD5cbiIpCisrICAgICAgICBlbHNlOgorKyAgICAgICAgICAg IHNhbCA9IHNlbGYuZmluZF9zYWwgKCkKKysgICAgICAgICAgICBwYyA9IHNlbGYucGMgKCkKKysg ICAgICAgICAgICBuYW1lID0gc2VsZi5uYW1lICgpCisrICAgICAgICAgICAgaWYgbm90IG5hbWU6 CisrICAgICAgICAgICAgICAgIG5hbWUgPSAiPz8iCisrICAgICAgICAgICAgaWYgcGMgIT0gc2Fs LnBjIG9yIG5vdCBzYWwuc3ltdGFiOgorKyAgICAgICAgICAgICAgICBzdHJlYW0ud3JpdGUgKCIg MHglMDh4IGluIiAlIHBjKQorKyAgICAgICAgICAgIHN0cmVhbS53cml0ZSAoIiAiICsgbmFtZSAr ICIgKCIpCisrCisrICAgICAgICAgICAgZnVuYyA9IHNlbGYuZnVuY3Rpb24gKCkKKysgICAgICAg ICAgICBzZWxmLnByaW50X2ZyYW1lX2FyZ3MgKHN0cmVhbSwgZnVuYykKKysKKysgICAgICAgICAg ICBzdHJlYW0ud3JpdGUgKCIpIikKKysKKysgICAgICAgICAgICBpZiBzYWwuc3ltdGFiIGFuZCBz YWwuc3ltdGFiLmZpbGVuYW1lOgorKyAgICAgICAgICAgICAgICBzdHJlYW0ud3JpdGUgKCIgYXQg IiArIHNhbC5zeW10YWIuZmlsZW5hbWUpCisrICAgICAgICAgICAgICAgIHN0cmVhbS53cml0ZSAo IjoiICsgc3RyIChzYWwubGluZSkpCisrCisrICAgICAgICAgICAgaWYgbm90IHNlbGYubmFtZSAo KSBvciAobm90IHNhbC5zeW10YWIgb3Igbm90IHNhbC5zeW10YWIuZmlsZW5hbWUpOgorKyAgICAg ICAgICAgICAgICBsaWIgPSBnZGIuc29saWJfYWRkcmVzcyAocGMpCisrICAgICAgICAgICAgICAg IGlmIGxpYjoKKysgICAgICAgICAgICAgICAgICAgIHN0cmVhbS53cml0ZSAoIiBmcm9tICIgKyBs aWIpCisrCisrICAgICAgICAgICAgc3RyZWFtLndyaXRlICgiXG4iKQorKworKyAgICAgICAgICAg IGlmIGZ1bGw6CisrICAgICAgICAgICAgICAgIHNlbGYucHJpbnRfZnJhbWVfbG9jYWxzIChzdHJl YW0sIGZ1bmMpCisrCisrICAgIGRlZiBfX2dldGF0dHJfXyAoc2VsZiwgbmFtZSk6CisrICAgICAg ICByZXR1cm4gZ2V0YXR0ciAoc2VsZi5mcmFtZSwgbmFtZSkKK2RpZmYgLS1naXQgYS9nZGIvcHl0 aG9uL2xpYi9nZGIvYmFja3RyYWNlLnB5IGIvZ2RiL3B5dGhvbi9saWIvZ2RiL2JhY2t0cmFjZS5w eQorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLjJiYWFiNWYKKy0tLSAvZGV2 L251bGwKKysrKyBiL2dkYi9weXRob24vbGliL2dkYi9iYWNrdHJhY2UucHkKK0BAIC0wLDAgKzEs NDIgQEAKKysjIEZpbHRlcmluZyBiYWNrdHJhY2UuCisrCisrIyBDb3B5cmlnaHQgKEMpIDIwMDgg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJs aXNoZWQgYnkKKysjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9u IDMgb2YgdGhlIExpY2Vuc2UsIG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz aW9uLgorKyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJl Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25n IHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNl bnNlcy8+LgorKworK2ltcG9ydCBnZGIKKytpbXBvcnQgaXRlcnRvb2xzCisrCisrIyBPdXIgb25s eSBleHBvcnRzLgorK19fYWxsX18gPSBbJ3B1c2hfZnJhbWVfZmlsdGVyJywgJ2NyZWF0ZV9mcmFt ZV9maWx0ZXInXQorKworK2ZyYW1lX2ZpbHRlciA9IE5vbmUKKysKKytkZWYgcHVzaF9mcmFtZV9m aWx0ZXIgKGNvbnN0cnVjdG9yKToKKysgICAgIiIiUmVnaXN0ZXIgYSBuZXcgYmFja3RyYWNlIGZp bHRlciBjbGFzcyB3aXRoIHRoZSAnYmFja3RyYWNlJyBjb21tYW5kLgorK1RoZSBmaWx0ZXIgd2ls bCBiZSBwYXNzZWQgYW4gaXRlcmF0b3IgYXMgYW4gYXJndW1lbnQuICBUaGUgaXRlcmF0b3IKKyt3 aWxsIHJldHVybiBnZGIuRnJhbWUtbGlrZSBvYmplY3RzLiAgVGhlIGZpbHRlciBzaG91bGQgaW4g dHVybiBhY3QgYXMKKythbiBpdGVyYXRvciByZXR1cm5pbmcgc3VjaCBvYmplY3RzLiIiIgorKyAg ICBnbG9iYWwgZnJhbWVfZmlsdGVyCisrICAgIGlmIGZyYW1lX2ZpbHRlciA9PSBOb25lOgorKyAg ICAgICAgZnJhbWVfZmlsdGVyID0gY29uc3RydWN0b3IKKysgICAgZWxzZToKKysgICAgICAgIGZy YW1lX2ZpbHRlciA9IGxhbWJkYSBpdGVyYXRvcjogY29uc3RydWN0b3IgKGZyYW1lX2ZpbHRlciAo aXRlcmF0b3IpKQorKworK2RlZiBjcmVhdGVfZnJhbWVfZmlsdGVyIChpdGVyKToKKysgICAgZ2xv YmFsIGZyYW1lX2ZpbHRlcgorKyAgICBpZiBmcmFtZV9maWx0ZXIgaXMgTm9uZToKKysgICAgICAg IHJldHVybiBpdGVyCisrICAgIHJldHVybiBmcmFtZV9maWx0ZXIgKGl0ZXIpCisrCitkaWZmIC0t Z2l0IGEvZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1hbmQvYWxpYXMucHkgYi9nZGIvcHl0aG9uL2xp Yi9nZGIvY29tbWFuZC9hbGlhcy5weQorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAw MDAuLjk2YjY2MTgKKy0tLSAvZGV2L251bGwKKysrKyBiL2dkYi9weXRob24vbGliL2dkYi9jb21t YW5kL2FsaWFzLnB5CitAQCAtMCwwICsxLDU5IEBACisrIyBBbGlhcyBjb21tYW5kLgorKworKyMg Q29weXJpZ2h0IChDKSAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyMg VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0IHlvdXIgb3B0 aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFO WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl CisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyMKKysj IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRw Oi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKytpbXBvcnQgZ2RiCisrCisrY2xhc3MgQWxp YXNJbXBsZW1lbnRhdGlvbiAoZ2RiLkNvbW1hbmQpOgorKyAgICBkZWYgX19pbml0X18gKHNlbGYs IG5hbWUsIHJlYWwsIGRvYyk6CisrICAgICAgICAjIEhhdmUgdG8gc2V0IF9fZG9jX18gYmVmb3Jl IHRoZSBzdXBlciBpbml0IGNhbGwuCisrICAgICAgICAjIEl0IHdvdWxkIGJlIG5pY2UgaWYgZ2Ri J3MgaGVscCBsb29rZWQgdXAgX19kb2NfXyBkeW5hbWljYWxseS4KKysgICAgICAgIHNlbGYuX19k b2NfXyA9IGRvYworKyAgICAgICAgIyBOb3RlOiBubyBnb29kIHdheSB0byBjb21wbGV0ZSA6KAor KyAgICAgICAgc3VwZXIgKEFsaWFzSW1wbGVtZW50YXRpb24sIHNlbGYpLl9faW5pdF9fIChuYW1l LCBnZGIuQ09NTUFORF9OT05FKQorKyAgICAgICAgc2VsZi5yZWFsID0gcmVhbAorKworKyAgICBk ZWYgaW52b2tlKHNlbGYsIGFyZywgZnJvbV90dHkpOgorKyAgICAgICAgZ2RiLmV4ZWN1dGUgKHNl bGYucmVhbCArICcgJyArIGFyZywgZnJvbV90dHkpCisrCisrY2xhc3MgQWxpYXNDb21tYW5kIChn ZGIuQ29tbWFuZCk6CisrICAgICIiIkFsaWFzIG9uZSBjb21tYW5kIHRvIGFub3RoZXIuCisrSW4g dGhlIHNpbXBsZXN0IGZvcm0sIHRoZSBmaXJzdCB3b3JkIGlzIHRoZSBuYW1lIG9mIHRoZSBhbGlh cywgYW5kCisrdGhlIHJlbWFpbmluZyB3b3JkcyBhcmUgdGhlIHRoZSBleHBhbnNpb24uCisrQW4g Jz0nIGJ5IGl0c2VsZiBjYW4gYmUgdXNlZCB0byBkZWZpbmUgYSBtdWx0aS13b3JkIGFsaWFzOyB3 b3JkcworK2JlZm9yZSB0aGUgJz0nIGFyZSB0aGUgbmFtZSBvZiB0aGUgbmV3IGNvbW1hbmQuIiIi CisrCisrICAgIGRlZiBfX2luaXRfXyAoc2VsZik6CisrICAgICAgICAjIENvbXBsZXRpb24gaXMg bm90IHF1aXRlIHJpZ2h0IGhlcmUuCisrICAgICAgICBzdXBlciAoQWxpYXNDb21tYW5kLCBzZWxm KS5fX2luaXRfXyAoImFsaWFzIiwgZ2RiLkNPTU1BTkRfTk9ORSwKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZGIuQ09NUExFVEVfQ09NTUFORCkKKysKKysg ICAgZGVmIGludm9rZSAoc2VsZiwgYXJnLCBmcm9tX3R0eSk6CisrICAgICAgICBzZWxmLmRvbnRf cmVwZWF0ICgpCisrICAgICAgICAjIFdpdGhvdXQgc29tZSBmb3JtIG9mIHF1b3Rpbmcgd2UgY2Fu J3QgYWxpYXMgYSBtdWx0aS13b3JkCisrICAgICAgICAjIGNvbW1hbmQgdG8gYW5vdGhlciBjb21t YW5kLgorKyAgICAgICAgYXJncyA9IGFyZy5zcGxpdCgpCisrICAgICAgICB0cnk6CisrICAgICAg ICAgICAgc3RhcnQgPSBhcmdzLmluZGV4ICgnPScpCisrICAgICAgICAgICAgZW5kID0gc3RhcnQg KyAxCisrICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKysgICAgICAgICAgICBzdGFydCA9IDEK KysgICAgICAgICAgICBlbmQgPSAxCisrICAgICAgICB0YXJnZXQgPSAiICIuam9pbihhcmdzW2Vu ZDpdKQorKyAgICAgICAgQWxpYXNJbXBsZW1lbnRhdGlvbiAoIiAiLmpvaW4gKGFyZ3NbMDpzdGFy dF0pLCB0YXJnZXQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhpcyBjb21tYW5k IGlzIGFuIGFsaWFzIGZvciAnJXMnLiIgJSB0YXJnZXQpCisrCisrQWxpYXNDb21tYW5kKCkKK2Rp ZmYgLS1naXQgYS9nZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFuZC9iYWNrdHJhY2UucHkgYi9nZGIv cHl0aG9uL2xpYi9nZGIvY29tbWFuZC9iYWNrdHJhY2UucHkKK25ldyBmaWxlIG1vZGUgMTAwNjQ0 CitpbmRleCAwMDAwMDAwLi5lYzlhNTI3CistLS0gL2Rldi9udWxsCisrKysgYi9nZGIvcHl0aG9u L2xpYi9nZGIvY29tbWFuZC9iYWNrdHJhY2UucHkKK0BAIC0wLDAgKzEsMTA2IEBACisrIyBOZXcg YmFja3RyYWNlIGNvbW1hbmQuCisrCisrIyBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0 d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQg YnkKKysjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2Yg dGhlIExpY2Vuc2UsIG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor KyMKKysjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGgg dGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+ LgorKworK2ltcG9ydCBnZGIKKytpbXBvcnQgZ2RiLmJhY2t0cmFjZQorK2ltcG9ydCBpdGVydG9v bHMKKytmcm9tIGdkYi5GcmFtZUl0ZXJhdG9yIGltcG9ydCBGcmFtZUl0ZXJhdG9yCisrZnJvbSBn ZGIuRnJhbWVXcmFwcGVyIGltcG9ydCBGcmFtZVdyYXBwZXIKKytpbXBvcnQgc3lzCisrCisrY2xh c3MgUmV2ZXJzZUJhY2t0cmFjZVBhcmFtZXRlciAoZ2RiLlBhcmFtZXRlcik6CisrICAgICIiIlRo ZSBuZXctYmFja3RyYWNlIGNvbW1hbmQgY2FuIHNob3cgYmFja3RyYWNlcyBpbiAncmV2ZXJzZScg b3JkZXIuCisrVGhpcyBtZWFucyB0aGF0IHRoZSBpbm5lcm1vc3QgZnJhbWUgd2lsbCBiZSBwcmlu dGVkIGxhc3QuCisrTm90ZSB0aGF0IHJldmVyc2UgYmFja3RyYWNlcyBhcmUgbW9yZSBleHBlbnNp dmUgdG8gY29tcHV0ZS4iIiIKKysKKysgICAgc2V0X2RvYyA9ICJFbmFibGUgb3IgZGlzYWJsZSBy ZXZlcnNlIGJhY2t0cmFjZXMuIgorKyAgICBzaG93X2RvYyA9ICJTaG93IHdoZXRoZXIgYmFja3Ry YWNlcyB3aWxsIGJlIHByaW50ZWQgaW4gcmV2ZXJzZSBvcmRlci4iCisrCisrICAgIGRlZiBfX2lu aXRfXyhzZWxmKToKKysgICAgICAgIGdkYi5QYXJhbWV0ZXIuX19pbml0X18gKHNlbGYsICJyZXZl cnNlLWJhY2t0cmFjZSIsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZGIuQ09N TUFORF9TVEFDSywgZ2RiLlBBUkFNX0JPT0xFQU4pCisrICAgICAgICAjIERlZmF1bHQgdG8gY29t cGF0aWJpbGl0eSB3aXRoIGdkYi4KKysgICAgICAgIHNlbGYudmFsdWUgPSBGYWxzZQorKworK2Ns YXNzIEZpbHRlcmluZ0JhY2t0cmFjZSAoZ2RiLkNvbW1hbmQpOgorKyAgICAiIiJQcmludCBiYWNr dHJhY2Ugb2YgYWxsIHN0YWNrIGZyYW1lcywgb3IgaW5uZXJtb3N0IENPVU5UIGZyYW1lcy4KKytX aXRoIGEgbmVnYXRpdmUgYXJndW1lbnQsIHByaW50IG91dGVybW9zdCAtQ09VTlQgZnJhbWVzLgor K1VzZSBvZiB0aGUgJ2Z1bGwnIHF1YWxpZmllciBhbHNvIHByaW50cyB0aGUgdmFsdWVzIG9mIHRo ZSBsb2NhbCB2YXJpYWJsZXMuCisrVXNlIG9mIHRoZSAncmF3JyBxdWFsaWZpZXIgYXZvaWRzIGFu eSBmaWx0ZXJpbmcgYnkgbG9hZGFibGUgbW9kdWxlcy4KKysiIiIKKysKKysgICAgZGVmIF9faW5p dF9fIChzZWxmKToKKysgICAgICAgICMgRklYTUU6IHRoaXMgaXMgbm90IHdvcmtpbmcgcXVpdGUg d2VsbCBlbm91Z2ggdG8gcmVwbGFjZQorKyAgICAgICAgIyAiYmFja3RyYWNlIiB5ZXQuCisrICAg ICAgICBnZGIuQ29tbWFuZC5fX2luaXRfXyAoc2VsZiwgIm5ldy1iYWNrdHJhY2UiLCBnZGIuQ09N TUFORF9TVEFDSykKKysgICAgICAgIHNlbGYucmV2ZXJzZSA9IFJldmVyc2VCYWNrdHJhY2VQYXJh bWV0ZXIoKQorKworKyAgICBkZWYgcmV2ZXJzZV9pdGVyIChzZWxmLCBpdGVyKToKKysgICAgICAg IHJlc3VsdCA9IFtdCisrICAgICAgICBmb3IgaXRlbSBpbiBpdGVyOgorKyAgICAgICAgICAgIHJl c3VsdC5hcHBlbmQgKGl0ZW0pCisrICAgICAgICByZXN1bHQucmV2ZXJzZSgpCisrICAgICAgICBy ZXR1cm4gcmVzdWx0CisrCisrICAgIGRlZiBmaW5hbF9uIChzZWxmLCBpdGVyLCB4KToKKysgICAg ICAgIHJlc3VsdCA9IFtdCisrICAgICAgICBmb3IgaXRlbSBpbiBpdGVyOgorKyAgICAgICAgICAg IHJlc3VsdC5hcHBlbmQgKGl0ZW0pCisrICAgICAgICByZXR1cm4gcmVzdWx0W3g6XQorKworKyAg ICBkZWYgaW52b2tlIChzZWxmLCBhcmcsIGZyb21fdHR5KToKKysgICAgICAgIGkgPSAwCisrICAg ICAgICBjb3VudCA9IDAKKysgICAgICAgIGZpbHRlciA9IFRydWUKKysgICAgICAgIGZ1bGwgPSBG YWxzZQorKworKyAgICAgICAgZm9yIHdvcmQgaW4gYXJnLnNwbGl0ICgiICIpOgorKyAgICAgICAg ICAgIGlmIHdvcmQgPT0gJyc6CisrICAgICAgICAgICAgICAgIGNvbnRpbnVlCisrICAgICAgICAg ICAgZWxpZiB3b3JkID09ICdyYXcnOgorKyAgICAgICAgICAgICAgICBmaWx0ZXIgPSBGYWxzZQor KyAgICAgICAgICAgIGVsaWYgd29yZCA9PSAnZnVsbCc6CisrICAgICAgICAgICAgICAgIGZ1bGwg PSBUcnVlCisrICAgICAgICAgICAgZWxzZToKKysgICAgICAgICAgICAgICAgY291bnQgPSBpbnQg KHdvcmQpCisrCisrICAgICAgICAjIEZJWE1FOiBwcm92aWRlIG9wdGlvbiB0byBzdGFydCBhdCBz ZWxlY3RlZCBmcmFtZQorKyAgICAgICAgIyBIb3dldmVyLCBzaG91bGQgc3RpbGwgbnVtYmVyIGFz IGlmIHN0YXJ0aW5nIGZyb20gbmV3ZXN0CisrCW5ld2VzdF9mcmFtZSA9IGdkYi5zZWxlY3RlZF90 aHJlYWQgKCkubmV3ZXN0X2ZyYW1lICgpCisrICAgICAgICBpdGVyID0gaXRlcnRvb2xzLmltYXAg KEZyYW1lV3JhcHBlciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnJhbWVJdGVy YXRvciAobmV3ZXN0X2ZyYW1lKSkKKysgICAgICAgIGlmIGZpbHRlcjoKKysgICAgICAgICAgICBp dGVyID0gZ2RiLmJhY2t0cmFjZS5jcmVhdGVfZnJhbWVfZmlsdGVyIChpdGVyKQorKworKyAgICAg ICAgIyBOb3cgd3JhcCBpbiBhbiBpdGVyYXRvciB0aGF0IG51bWJlcnMgdGhlIGZyYW1lcy4KKysg ICAgICAgIGl0ZXIgPSBpdGVydG9vbHMuaXppcCAoaXRlcnRvb2xzLmNvdW50ICgwKSwgaXRlcikK KysKKysgICAgICAgICMgUmV2ZXJzZSBpZiB0aGUgdXNlciB3YW50ZWQgdGhhdC4KKysgICAgICAg IGlmIHNlbGYucmV2ZXJzZS52YWx1ZToKKysgICAgICAgICAgICBpdGVyID0gc2VsZi5yZXZlcnNl X2l0ZXIgKGl0ZXIpCisrCisrICAgICAgICAjIEV4dHJhY3Qgc3ViLXJhbmdlIHVzZXIgd2FudHMu CisrICAgICAgICBpZiBjb3VudCA8IDA6CisrICAgICAgICAgICAgaXRlciA9IHNlbGYuZmluYWxf biAoaXRlciwgY291bnQpCisrICAgICAgICBlbGlmIGNvdW50ID4gMDoKKysgICAgICAgICAgICBp dGVyID0gaXRlcnRvb2xzLmlzbGljZSAoaXRlciwgMCwgY291bnQpCisrCisrICAgICAgICBmb3Ig cGFpciBpbiBpdGVyOgorKyAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUgKCIjJS0yZCIgJSBw YWlyWzBdKQorKyAgICAgICAgICAgIHBhaXJbMV0uZGVzY3JpYmUgKHN5cy5zdGRvdXQsIGZ1bGwp CisrCisrRmlsdGVyaW5nQmFja3RyYWNlKCkKK2RpZmYgLS1naXQgYS9nZGIvcHl0aG9uL2xpYi9n ZGIvY29tbWFuZC9pZ25vcmVfZXJyb3JzLnB5IGIvZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1hbmQv aWdub3JlX2Vycm9ycy5weQorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAuLjZm YTQ4ZmYKKy0tLSAvZGV2L251bGwKKysrKyBiL2dkYi9weXRob24vbGliL2dkYi9jb21tYW5kL2ln bm9yZV9lcnJvcnMucHkKK0BAIC0wLDAgKzEsMzcgQEAKKysjIElnbm9yZSBlcnJvcnMgaW4gdXNl ciBjb21tYW5kcy4KKysKKysjIENvcHlyaWdodCAoQykgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KKysKKysjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisrIyBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorKyMgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwg b3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrIworKyMgVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws CisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0u ICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisrCisraW1wb3J0 IGdkYgorKworK2NsYXNzIElnbm9yZUVycm9yc0NvbW1hbmQgKGdkYi5Db21tYW5kKToKKysgICAg IiIiRXhlY3V0ZSBhIHNpbmdsZSBjb21tYW5kLCBpZ25vcmluZyBhbGwgZXJyb3JzLgorK09ubHkg b25lLWxpbmUgY29tbWFuZHMgYXJlIHN1cHBvcnRlZC4KKytUaGlzIGlzIHByaW1hcmlseSB1c2Vm dWwgaW4gc2NyaXB0cy4iIiIKKysKKysgICAgZGVmIF9faW5pdF9fIChzZWxmKToKKysgICAgICAg IHN1cGVyIChJZ25vcmVFcnJvcnNDb21tYW5kLCBzZWxmKS5fX2luaXRfXyAoImlnbm9yZS1lcnJv cnMiLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBnZGIuQ09NTUFORF9PQlNDVVJFLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAjIEZJWE1FLi4uCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdkYi5DT01QTEVURV9DT01NQU5EKQorKworKyAg ICBkZWYgaW52b2tlIChzZWxmLCBhcmcsIGZyb21fdHR5KToKKysgICAgICAgIHRyeToKKysgICAg ICAgICAgICBnZGIuZXhlY3V0ZSAoYXJnLCBmcm9tX3R0eSkKKysgICAgICAgIGV4Y2VwdDoKKysg ICAgICAgICAgICBwYXNzCisrCisrSWdub3JlRXJyb3JzQ29tbWFuZCAoKQorZGlmZiAtLWdpdCBh L2dkYi9weXRob24vbGliL2dkYi9jb21tYW5kL3BhaG9sZS5weSBiL2dkYi9weXRob24vbGliL2dk Yi9jb21tYW5kL3BhaG9sZS5weQorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAu LjIxYTBiZjAKKy0tLSAvZGV2L251bGwKKysrKyBiL2dkYi9weXRob24vbGliL2dkYi9jb21tYW5k L3BhaG9sZS5weQorQEAgLTAsMCArMSw3NSBAQAorKyMgcGFob2xlIGNvbW1hbmQgZm9yIGdkYgor KworKyMgQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMg KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0g aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh aWxzLgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5v dCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKytpbXBvcnQgZ2RiCisr CisrY2xhc3MgUGFob2xlIChnZGIuQ29tbWFuZCk6CisrICAgICIiIlNob3cgdGhlIGhvbGVzIGlu IGEgc3RydWN0dXJlLgorK1RoaXMgY29tbWFuZCB0YWtlcyBhIHNpbmdsZSBhcmd1bWVudCwgYSB0 eXBlIG5hbWUuCisrSXQgcHJpbnRzIHRoZSB0eXBlIGFuZCBkaXNwbGF5cyBjb21tZW50cyBzaG93 aW5nIHdoZXJlIGhvbGVzIGFyZS4iIiIKKysKKysgICAgZGVmIF9faW5pdF9fIChzZWxmKToKKysg ICAgICAgIHN1cGVyIChQYWhvbGUsIHNlbGYpLl9faW5pdF9fICgicGFob2xlIiwgZ2RiLkNPTU1B TkRfTk9ORSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZGIuQ09N UExFVEVfU1lNQk9MKQorKworKyAgICBkZWYgcGFob2xlIChzZWxmLCB0eXBlLCBsZXZlbCwgbmFt ZSk6CisrICAgICAgICBpZiBuYW1lIGlzIE5vbmU6CisrICAgICAgICAgICAgbmFtZSA9ICcnCisr ICAgICAgICB0YWcgPSB0eXBlLnRhZworKyAgICAgICAgaWYgdGFnIGlzIE5vbmU6CisrICAgICAg ICAgICAgdGFnID0gJycKKysgICAgICAgIHByaW50ICclc3N0cnVjdCAlcyB7JyAlICgnICcgKiAo MiAqIGxldmVsKSwgdGFnKQorKyAgICAgICAgYml0cG9zID0gMAorKyAgICAgICAgZm9yIGZpZWxk IGluIHR5cGUuZmllbGRzICgpOgorKyAgICAgICAgICAgICMgU2tpcCBzdGF0aWMgZmllbGRzLgor KyAgICAgICAgICAgIGlmIG5vdCBoYXNhdHRyIChmaWVsZCwgKCdiaXRwb3MnKSk6CisrICAgICAg ICAgICAgICAgIGNvbnRpbnVlCisrCisrICAgICAgICAgICAgZnR5cGUgPSBmaWVsZC50eXBlLnN0 cmlwX3R5cGVkZWZzKCkKKysKKysgICAgICAgICAgICBpZiBiaXRwb3MgIT0gZmllbGQuYml0cG9z OgorKyAgICAgICAgICAgICAgICBob2xlID0gZmllbGQuYml0cG9zIC0gYml0cG9zCisrICAgICAg ICAgICAgICAgIHByaW50ICcgIC8qIFhYWCAlZCBiaXQgaG9sZSwgdHJ5IHRvIHBhY2sgKi8nICUg aG9sZQorKyAgICAgICAgICAgICAgICBiaXRwb3MgPSBmaWVsZC5iaXRwb3MKKysgICAgICAgICAg ICBpZiBmaWVsZC5iaXRzaXplID4gMDoKKysgICAgICAgICAgICAgICAgZmllbGRzaXplID0gZmll bGQuYml0c2l6ZQorKyAgICAgICAgICAgIGVsc2U6CisrICAgICAgICAgICAgICAgICMgVEFSR0VU X0NIQVJfQklUIGhlcmUuLi4KKysgICAgICAgICAgICAgICAgZmllbGRzaXplID0gOCAqIGZ0eXBl LnNpemVvZgorKworKyAgICAgICAgICAgICMgVEFSR0VUX0NIQVJfQklUCisrICAgICAgICAgICAg cHJpbnQgJyAvKiAlM2QgJTNkICovJyAlIChpbnQgKGJpdHBvcyAvIDgpLCBpbnQgKGZpZWxkc2l6 ZSAvIDgpKSwKKysgICAgICAgICAgICBiaXRwb3MgPSBiaXRwb3MgKyBmaWVsZHNpemUKKysKKysg ICAgICAgICAgICBpZiBmdHlwZS5jb2RlID09IGdkYi5UWVBFX0NPREVfU1RSVUNUOgorKyAgICAg ICAgICAgICAgICBzZWxmLnBhaG9sZSAoZnR5cGUsIGxldmVsICsgMSwgZmllbGQubmFtZSkKKysg ICAgICAgICAgICBlbHNlOgorKyAgICAgICAgICAgICAgICBwcmludCAnICcgKiAoMiArIDIgKiBs ZXZlbCksCisrICAgICAgICAgICAgICAgIHByaW50ICclcyAlcycgJSAoc3RyIChmdHlwZSksIGZp ZWxkLm5hbWUpCisrCisrICAgICAgICBwcmludCAnICcgKiAoMTQgKyAyICogbGV2ZWwpLAorKyAg ICAgICAgcHJpbnQgJ30gJXMnICUgbmFtZQorKworKyAgICBkZWYgaW52b2tlIChzZWxmLCBhcmcs IGZyb21fdHR5KToKKysgICAgICAgIHR5cGUgPSBnZGIubG9va3VwX3R5cGUgKGFyZykKKysgICAg ICAgIHR5cGUgPSB0eXBlLnN0cmlwX3R5cGVkZWZzICgpCisrICAgICAgICBpZiB0eXBlLmNvZGUg IT0gZ2RiLlRZUEVfQ09ERV9TVFJVQ1Q6CisrICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yLCAn JXMgaXMgbm90IGEgc3RydWN0IHR5cGUnICUgYXJnCisrICAgICAgICBwcmludCAnICcgKiAxNCwK KysgICAgICAgIHNlbGYucGFob2xlICh0eXBlLCAwLCAnJykKKysKKytQYWhvbGUoKQorZGlmZiAt LWdpdCBhL2dkYi9weXRob24vbGliL2dkYi9jb21tYW5kL3JlcXVpcmUucHkgYi9nZGIvcHl0aG9u L2xpYi9nZGIvY29tbWFuZC9yZXF1aXJlLnB5CituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXgg MDAwMDAwMC4uMWZiYzFlOAorLS0tIC9kZXYvbnVsbAorKysrIGIvZ2RiL3B5dGhvbi9saWIvZ2Ri L2NvbW1hbmQvcmVxdWlyZS5weQorQEAgLTAsMCArMSw1NyBAQAorKyMgRGVtYW5kLWxvYWRpbmcg Y29tbWFuZHMuCisrCisrIyBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCisrCisrIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyMgaXQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKysjIHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vu c2UsIG9yCisrIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKyMKKysjIFRo aXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLAorKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKKysjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKysjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCisrIworKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysjIGFsb25nIHdpdGggdGhpcyBwcm9n cmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorKworK2lt cG9ydCBnZGIKKytpbXBvcnQgb3MKKysKKytjbGFzcyBSZXF1aXJlQ29tbWFuZCAoZ2RiLkNvbW1h bmQpOgorKyAgICAiIiJQcmVmaXggY29tbWFuZCBmb3IgcmVxdWlyaW5nIGZlYXR1cmVzLiIiIgor KworKyAgICBkZWYgX19pbml0X18gKHNlbGYpOgorKyAgICAgICAgc3VwZXIgKFJlcXVpcmVDb21t YW5kLCBzZWxmKS5fX2luaXRfXyAoInJlcXVpcmUiLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZ2RiLkNPTU1BTkRfU1VQUE9SVCwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdkYi5DT01QTEVURV9OT05FLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJ1ZSkKKysK KytjbGFzcyBSZXF1aXJlU3ViY29tbWFuZCAoZ2RiLkNvbW1hbmQpOgorKyAgICAiIiJEZW1hbmQt bG9hZCBhIGNvbW1hbmQgYnkgbmFtZS4iIiIKKysKKysgICAgZGVmIF9faW5pdF9fIChzZWxmLCBu YW1lKToKKysgICAgICAgIHNlbGYuX19kb2NfXyA9ICJEZW1hbmQtbG9hZCBhICVzIGJ5IG5hbWUu IiAlIG5hbWUKKysgICAgICAgIHN1cGVyIChSZXF1aXJlU3ViY29tbWFuZCwgc2VsZikuX19pbml0 X18gKCJyZXF1aXJlICVzIiAlIG5hbWUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBnZGIuQ09NTUFORF9TVVBQT1JUKQorKyAgICAgICAgc2VsZi5u YW1lID0gbmFtZQorKworKyAgICBkZWYgaW52b2tlIChzZWxmLCBhcmcsIGZyb21fdHR5KToKKysg ICAgICAgIGZvciBjbWQgaW4gYXJnLnNwbGl0KCk6CisrICAgICAgICAgICAgZXhlYyAoJ2ltcG9y dCBnZGIuJyArIHNlbGYubmFtZSArICcuJyArIGNtZCwgZ2xvYmFscyAoKSkKKysKKysgICAgZGVm IGNvbXBsZXRlIChzZWxmLCB0ZXh0LCB3b3JkKToKKysgICAgICAgIGRpciA9IGdkYi5weXRob25k aXIgKyAnL2dkYi8nICsgc2VsZi5uYW1lCisrICAgICAgICByZXN1bHQgPSBbXQorKyAgICAgICAg Zm9yIGZpbGUgaW4gb3MubGlzdGRpcihkaXIpOgorKyAgICAgICAgICAgIGlmIG5vdCBmaWxlLnN0 YXJ0c3dpdGggKHdvcmQpIG9yIG5vdCBmaWxlLmVuZHN3aXRoICgnLnB5Jyk6CisrICAgICAgICAg ICAgICAgIGNvbnRpbnVlCisrICAgICAgICAgICAgZmVhdHVyZSA9IGZpbGVbMDotM10KKysgICAg ICAgICAgICBpZiBmZWF0dXJlID09ICdyZXF1aXJlJyBvciBmZWF0dXJlID09ICdfX2luaXRfXyc6 CisrICAgICAgICAgICAgICAgIGNvbnRpbnVlCisrICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCAo ZmVhdHVyZSkKKysgICAgICAgIHJldHVybiByZXN1bHQKKysKKytSZXF1aXJlQ29tbWFuZCgpCisr UmVxdWlyZVN1YmNvbW1hbmQoImNvbW1hbmQiKQorK1JlcXVpcmVTdWJjb21tYW5kKCJmdW5jdGlv biIpCitkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9saWIvZ2RiL2NvbW1hbmQvdXB0by5weSBiL2dk Yi9weXRob24vbGliL2dkYi9jb21tYW5kL3VwdG8ucHkKK25ldyBmaWxlIG1vZGUgMTAwNjQ0Citp bmRleCAwMDAwMDAwLi5mYWY1NGVkCistLS0gL2Rldi9udWxsCisrKysgYi9nZGIvcHl0aG9uL2xp Yi9nZGIvY29tbWFuZC91cHRvLnB5CitAQCAtMCwwICsxLDEyOSBAQAorKyMgdXB0byBjb21tYW5k LgorKworKyMgQ29weXJpZ2h0IChDKSAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LgorKworKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vciBtb2RpZnkKKysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0 IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m CisrIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlCisrIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz LgorKyMKKysjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlCisrIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwg c2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKysKKytpbXBvcnQgZ2RiCisraW1w b3J0IHJlCisrZnJvbSBnZGIuRnJhbWVJdGVyYXRvciBpbXBvcnQgRnJhbWVJdGVyYXRvcgorK2Zy b20gZ2RiLkZyYW1lV3JhcHBlciBpbXBvcnQgRnJhbWVXcmFwcGVyCisrCisrY2xhc3MgVXB0b1By ZWZpeCAoZ2RiLkNvbW1hbmQpOgorKyAgICBkZWYgX19pbml0X18gKHNlbGYpOgorKyAgICAgICAg c3VwZXIgKFVwdG9QcmVmaXgsIHNlbGYpLl9faW5pdF9fICgidXB0byIsIGdkYi5DT01NQU5EX1NU QUNLLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVmaXgg PSBUcnVlKQorKworK2NsYXNzIFVwdG9JbXBsZW1lbnRhdGlvbiAoZ2RiLkNvbW1hbmQpOgorKyAg ICBkZWYgX19pbml0X18gKHNlbGYsIHN1YmNvbW1hbmQpOgorKyAgICAgICAgc3VwZXIgKFVwdG9J bXBsZW1lbnRhdGlvbiwgc2VsZikuX19pbml0X18gKCJ1cHRvICIgKyBzdWJjb21tYW5kLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdkYi5DT01N QU5EX1NUQUNLKQorKworKyAgICBkZWYgc2VhcmNoIChzZWxmKToKKysgICAgICAgIHNhdmVkID0g Z2RiLnNlbGVjdGVkX2ZyYW1lICgpCisrICAgICAgICBpdGVyID0gRnJhbWVJdGVyYXRvciAoc2F2 ZWQpCisrICAgICAgICBmb3VuZCA9IEZhbHNlCisrICAgICAgICB0cnk6CisrICAgICAgICAgICAg Zm9yIGZyYW1lIGluIGl0ZXI6CisrICAgICAgICAgICAgICAgIGZyYW1lLnNlbGVjdCAoKQorKyAg ICAgICAgICAgICAgICB0cnk6CisrICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLmZpbHRlciAo ZnJhbWUpOgorKyAgICAgICAgICAgICAgICAgICAgICAgIHdyYXBwZXIgPSBGcmFtZVdyYXBwZXIg KGZyYW1lKQorKyAgICAgICAgICAgICAgICAgICAgICAgIHdyYXBwZXIuZGVzY3JpYmUgKHN5cy5z dGRvdXQsIEZhbHNlKQorKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybgorKyAgICAgICAg ICAgICAgICBleGNlcHQ6CisrICAgICAgICAgICAgICAgICAgICBwYXNzCisrICAgICAgICBleGNl cHQ6CisrICAgICAgICAgICAgcGFzcworKyAgICAgICAgc2F2ZWQuc2VsZWN0ICgpCisrICAgICAg ICByYWlzZSBSdW50aW1lRXJyb3IsICdDb3VsZCBub3QgZmluZCBhIG1hdGNoaW5nIGZyYW1lJwor KworKyAgICBkZWYgaW52b2tlIChzZWxmLCBhcmcsIGZyb21fdHR5KToKKysgICAgICAgIHNlbGYu cnggPSByZS5jb21waWxlIChhcmcpCisrICAgICAgICBzZWxmLnNlYXJjaCAoKQorKworK2NsYXNz IFVwdG9TeW1ib2xDb21tYW5kIChVcHRvSW1wbGVtZW50YXRpb24pOgorKyAgICAiIiJTZWxlY3Qg YW5kIHByaW50IHNvbWUgY2FsbGluZyBzdGFjayBmcmFtZSwgYmFzZWQgb24gc3ltYm9sLgorK1Ro ZSBhcmd1bWVudCBpcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbi4gIFRoaXMgY29tbWFuZCBtb3ZlcyB1 cCB0aGUKKytzdGFjaywgc3RvcHBpbmcgYXQgdGhlIGZpcnN0IGZyYW1lIHdob3NlIHN5bWJvbCBt YXRjaGVzIHRoZSByZWd1bGFyCisrZXhwcmVzc2lvbi4iIiIKKysKKysgICAgZGVmIF9faW5pdF9f IChzZWxmKToKKysgICAgICAgIHN1cGVyIChVcHRvU3ltYm9sQ29tbWFuZCwgc2VsZikuX19pbml0 X18gKCJzeW1ib2wiKQorKworKyAgICBkZWYgZmlsdGVyIChzZWxmLCBmcmFtZSk6CisrICAgICAg ICBuYW1lID0gZnJhbWUubmFtZSAoKQorKyAgICAgICAgaWYgbmFtZSBpcyBub3QgTm9uZToKKysg ICAgICAgICAgICBpZiBzZWxmLnJ4LnNlYXJjaCAobmFtZSkgaXMgbm90IE5vbmU6CisrICAgICAg ICAgICAgICAgIHJldHVybiBUcnVlCisrICAgICAgICByZXR1cm4gRmFsc2UKKysKKytjbGFzcyBV cHRvU291cmNlQ29tbWFuZCAoVXB0b0ltcGxlbWVudGF0aW9uKToKKysgICAgIiIiU2VsZWN0IGFu ZCBwcmludCBzb21lIGNhbGxpbmcgc3RhY2sgZnJhbWUsIGJhc2VkIG9uIHNvdXJjZSBmaWxlLgor K1RoZSBhcmd1bWVudCBpcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbi4gIFRoaXMgY29tbWFuZCBtb3Zl cyB1cCB0aGUKKytzdGFjaywgc3RvcHBpbmcgYXQgdGhlIGZpcnN0IGZyYW1lIHdob3NlIHNvdXJj ZSBmaWxlIG5hbWUgbWF0Y2hlcyB0aGUKKytyZWd1bGFyIGV4cHJlc3Npb24uIiIiCisrCisrICAg IGRlZiBfX2luaXRfXyAoc2VsZik6CisrICAgICAgICBzdXBlciAoVXB0b1NvdXJjZUNvbW1hbmQs IHNlbGYpLl9faW5pdF9fICgic291cmNlIikKKysKKysgICAgZGVmIGZpbHRlciAoc2VsZiwgZnJh bWUpOgorKyAgICAgICAgbmFtZSA9IGZyYW1lLmZpbmRfc2FsICgpLnN5bXRhYi5maWxlbmFtZQor KyAgICAgICAgaWYgbmFtZSBpcyBub3QgTm9uZToKKysgICAgICAgICAgICBpZiBzZWxmLnJ4LnNl YXJjaCAobmFtZSkgaXMgbm90IE5vbmU6CisrICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisr ICAgICAgICByZXR1cm4gRmFsc2UKKysKKytjbGFzcyBVcHRvT2JqZWN0Q29tbWFuZCAoVXB0b0lt cGxlbWVudGF0aW9uKToKKysgICAgIiIiU2VsZWN0IGFuZCBwcmludCBzb21lIGNhbGxpbmcgc3Rh Y2sgZnJhbWUsIGJhc2VkIG9uIG9iamVjdCBmaWxlLgorK1RoZSBhcmd1bWVudCBpcyBhIHJlZ3Vs YXIgZXhwcmVzc2lvbi4gIFRoaXMgY29tbWFuZCBtb3ZlcyB1cCB0aGUKKytzdGFjaywgc3RvcHBp bmcgYXQgdGhlIGZpcnN0IGZyYW1lIHdob3NlIG9iamVjdCBmaWxlIG5hbWUgbWF0Y2hlcyB0aGUK KytyZWd1bGFyIGV4cHJlc3Npb24uIiIiCisrCisrICAgIGRlZiBfX2luaXRfXyAoc2VsZik6Cisr ICAgICAgICBzdXBlciAoVXB0b09iamVjdENvbW1hbmQsIHNlbGYpLl9faW5pdF9fICgib2JqZWN0 IikKKysKKysgICAgZGVmIGZpbHRlciAoc2VsZiwgZnJhbWUpOgorKyAgICAgICAgbmFtZSA9IGZy YW1lLmZpbmRfc2FsICgpLnN5bXRhYi5vYmpmaWxlLmZpbGVuYW1lCisrICAgICAgICBpZiBuYW1l IGlzIG5vdCBOb25lOgorKyAgICAgICAgICAgIGlmIHNlbGYucnguc2VhcmNoIChuYW1lKSBpcyBu b3QgTm9uZToKKysgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKysgICAgICAgIHJldHVybiBG YWxzZQorKworK2NsYXNzIFVwdG9XaGVyZUNvbW1hbmQgKFVwdG9JbXBsZW1lbnRhdGlvbik6Cisr ICAgICIiIlNlbGVjdCBhbmQgcHJpbnQgc29tZSBjYWxsaW5nIHN0YWNrIGZyYW1lLCBiYXNlZCBv biBleHByZXNzaW9uLgorK1RoZSBhcmd1bWVudCBpcyBhbiBleHByZXNzaW9uLiAgVGhpcyBjb21t YW5kIG1vdmVzIHVwIHRoZSBzdGFjaywKKytwYXJzaW5nIGFuZCBldmFsdWF0aW5nIHRoZSBleHBy ZXNzaW9uIGluIGVhY2ggZnJhbWUuICBUaGlzIHN0b3BzIHdoZW4KKyt0aGUgZXhwcmVzc2lvbiBl dmFsdWF0ZXMgdG8gYSBub24temVybyAodHJ1ZSkgdmFsdWUuIiIiCisrCisrICAgIGRlZiBfX2lu aXRfXyAoc2VsZik6CisrICAgICAgICBzdXBlciAoVXB0b1doZXJlQ29tbWFuZCwgc2VsZikuX19p bml0X18gKCJ3aGVyZSIpCisrCisrICAgIGRlZiBmaWx0ZXIgKHNlbGYsIGZyYW1lKToKKysgICAg ICAgIHRyeToKKysgICAgICAgICAgICBpZiBnZGIucGFyc2VfYW5kX2V2YWwgKHNlbGYuZXhwcmVz c2lvbik6CisrICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisrICAgICAgICBleGNlcHQ6Cisr ICAgICAgICAgICAgcGFzcworKyAgICAgICAgcmV0dXJuIEZhbHNlCisrCisrICAgIGRlZiBpbnZv a2UgKHNlbGYsIGFyZywgZnJvbV90dHkpOgorKyAgICAgICAgc2VsZi5leHByZXNzaW9uID0gYXJn CisrICAgICAgICBzZWxmLnNlYXJjaCAoKQorKworK1VwdG9QcmVmaXggKCkKKytVcHRvU3ltYm9s Q29tbWFuZCAoKQorK1VwdG9Tb3VyY2VDb21tYW5kICgpCisrVXB0b09iamVjdENvbW1hbmQgKCkK KytVcHRvV2hlcmVDb21tYW5kICgpCitkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9saWIvZ2RiL2Z1 bmN0aW9uL19faW5pdF9fLnB5IGIvZ2RiL3B5dGhvbi9saWIvZ2RiL2Z1bmN0aW9uL19faW5pdF9f LnB5CituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uOGIxMzc4OQorLS0tIC9k ZXYvbnVsbAorKysrIGIvZ2RiL3B5dGhvbi9saWIvZ2RiL2Z1bmN0aW9uL19faW5pdF9fLnB5CitA QCAtMCwwICsxIEBACisrCitkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9saWIvZ2RiL2Z1bmN0aW9u L2NhbGxlcl9pcy5weSBiL2dkYi9weXRob24vbGliL2dkYi9mdW5jdGlvbi9jYWxsZXJfaXMucHkK K25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi4yYjljNWM3CistLS0gL2Rldi9u dWxsCisrKysgYi9nZGIvcHl0aG9uL2xpYi9nZGIvZnVuY3Rpb24vY2FsbGVyX2lzLnB5CitAQCAt MCwwICsxLDU4IEBACisrIyBDYWxsZXItaXMgZnVuY3Rpb25zLgorKworKyMgQ29weXJpZ2h0IChD KSAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyMgVGhpcyBwcm9ncmFt IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkK KysjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug YXMgcHVibGlzaGVkIGJ5CisrIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIg dmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgorKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4KKysjCisrIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrIyBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisrIyBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKyMKKysjIFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisr IyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5v cmcvbGljZW5zZXMvPi4KKysKKytpbXBvcnQgZ2RiCisraW1wb3J0IHJlCisrCisrY2xhc3MgQ2Fs bGVySXMgKGdkYi5GdW5jdGlvbik6CisrICAgICIiIlJldHVybiBUcnVlIGlmIHRoZSBjYWxsaW5n IGZ1bmN0aW9uJ3MgbmFtZSBpcyBlcXVhbCB0byBhIHN0cmluZy4KKytUaGlzIGZ1bmN0aW9uIHRh a2VzIG9uZSBvciB0d28gYXJndW1lbnRzLgorK1RoZSBmaXJzdCBhcmd1bWVudCBpcyB0aGUgbmFt ZSBvZiBhIGZ1bmN0aW9uOyBpZiB0aGUgY2FsbGluZyBmdW5jdGlvbidzCisrbmFtZSBpcyBlcXVh bCB0byB0aGlzIGFyZ3VtZW50LCB0aGlzIGZ1bmN0aW9uIHJldHVybnMgVHJ1ZS4KKytUaGUgb3B0 aW9uYWwgc2Vjb25kIGFyZ3VtZW50IHRlbGxzIHRoaXMgZnVuY3Rpb24gaG93IG1hbnkgc3RhY2sg ZnJhbWVzCisrdG8gdHJhdmVyc2UgdG8gZmluZCB0aGUgY2FsbGluZyBmdW5jdGlvbi4gIFRoZSBk ZWZhdWx0IGlzIDEuIiIiCisrCisrICAgIGRlZiBfX2luaXRfXyAoc2VsZik6CisrICAgICAgICBz dXBlciAoQ2FsbGVySXMsIHNlbGYpLl9faW5pdF9fICgiY2FsbGVyX2lzIikKKysKKysgICAgZGVm IGludm9rZSAoc2VsZiwgbmFtZSwgbmZyYW1lcyA9IDEpOgorKyAgICAgICAgZnJhbWUgPSBnZGIu c2VsZWN0ZWRfZnJhbWUgKCkKKysgICAgICAgIHdoaWxlIG5mcmFtZXMgPiAwOgorKyAgICAgICAg ICAgIGZyYW1lID0gZnJhbWUub2xkZXIgKCkKKysgICAgICAgICAgICBuZnJhbWVzID0gbmZyYW1l cyAtIDEKKysgICAgICAgIHJldHVybiBmcmFtZS5uYW1lICgpID09IG5hbWUuc3RyaW5nICgpCisr CisrY2xhc3MgQ2FsbGVyTWF0Y2hlcyAoZ2RiLkZ1bmN0aW9uKToKKysgICAgIiIiUmV0dXJuIFRy dWUgaWYgdGhlIGNhbGxpbmcgZnVuY3Rpb24ncyBuYW1lIG1hdGNoZXMgYSBzdHJpbmcuCisrVGhp cyBmdW5jdGlvbiB0YWtlcyBvbmUgb3IgdHdvIGFyZ3VtZW50cy4KKytUaGUgZmlyc3QgYXJndW1l bnQgaXMgYSByZWd1bGFyIGV4cHJlc3Npb247IGlmIHRoZSBjYWxsaW5nIGZ1bmN0aW9uJ3MKKytu YW1lIGlzIG1hdGNoZWQgYnkgdGhpcyBhcmd1bWVudCwgdGhpcyBmdW5jdGlvbiByZXR1cm5zIFRy dWUuCisrVGhlIG9wdGlvbmFsIHNlY29uZCBhcmd1bWVudCB0ZWxscyB0aGlzIGZ1bmN0aW9uIGhv dyBtYW55IHN0YWNrIGZyYW1lcworK3RvIHRyYXZlcnNlIHRvIGZpbmQgdGhlIGNhbGxpbmcgZnVu Y3Rpb24uICBUaGUgZGVmYXVsdCBpcyAxLiIiIgorKworKyAgICBkZWYgX19pbml0X18gKHNlbGYp OgorKyAgICAgICAgc3VwZXIgKENhbGxlck1hdGNoZXMsIHNlbGYpLl9faW5pdF9fICgiY2FsbGVy X21hdGNoZXMiKQorKworKyAgICBkZWYgaW52b2tlIChzZWxmLCBuYW1lLCBuZnJhbWVzID0gMSk6 CisrICAgICAgICBmcmFtZSA9IGdkYi5zZWxlY3RlZF9mcmFtZSAoKQorKyAgICAgICAgd2hpbGUg bmZyYW1lcyA+IDA6CisrICAgICAgICAgICAgZnJhbWUgPSBmcmFtZS5vbGRlciAoKQorKyAgICAg ICAgICAgIG5mcmFtZXMgPSBuZnJhbWVzIC0gMQorKyAgICAgICAgcmV0dXJuIHJlLm1hdGNoIChu YW1lLnN0cmluZyAoKSwgZnJhbWUubmFtZSAoKSkgaXMgbm90IE5vbmUKKysKKytDYWxsZXJJcygp CisrQ2FsbGVyTWF0Y2hlcygpCitkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9saWIvZ2RiL2Z1bmN0 aW9uL2luX3Njb3BlLnB5IGIvZ2RiL3B5dGhvbi9saWIvZ2RiL2Z1bmN0aW9uL2luX3Njb3BlLnB5 CituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMC4uZGViYjNiYgorLS0tIC9kZXYv bnVsbAorKysrIGIvZ2RiL3B5dGhvbi9saWIvZ2RiL2Z1bmN0aW9uL2luX3Njb3BlLnB5CitAQCAt MCwwICsxLDQ3IEBACisrIyBJbi1zY29wZSBmdW5jdGlvbi4KKysKKysjIENvcHlyaWdodCAoQykg MjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysKKysjIFRoaXMgcHJvZ3JhbSBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Cisr IyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz IHB1Ymxpc2hlZCBieQorKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZl cnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKysjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy IHZlcnNpb24uCisrIworKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyMgTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorKyMgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysjCisrIyBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorKyMg YWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3Jn L2xpY2Vuc2VzLz4uCisrCisraW1wb3J0IGdkYgorKworK2NsYXNzIEluU2NvcGUgKGdkYi5GdW5j dGlvbik6CisrICAgICIiIlJldHVybiBUcnVlIGlmIGFsbCB0aGUgZ2l2ZW4gdmFyaWFibGVzIG9y IG1hY3JvcyBhcmUgaW4gc2NvcGUuCisrVGFrZXMgb25lIGFyZ3VtZW50IGZvciBlYWNoIHZhcmlh YmxlIG5hbWUgdG8gYmUgY2hlY2tlZC4iIiIKKysKKysgICAgZGVmIF9faW5pdF9fIChzZWxmKToK KysJc3VwZXIgKEluU2NvcGUsIHNlbGYpLl9faW5pdF9fICgiaW5fc2NvcGUiKQorKworKyAgICBk ZWYgaW52b2tlIChzZWxmLCAqdmFycyk6CisrICAgICAgICBpZiBsZW4gKHZhcnMpID09IDA6Cisr CSAgICByYWlzZSBUeXBlRXJyb3IsICJpbl9zY29wZSB0YWtlcyBhdCBsZWFzdCBvbmUgYXJndW1l bnQiCisrCisrICAgICAgICAjIGdkYi5WYWx1ZSBpc24ndCBoYXNoYWJsZSBzbyBpdCBjYW4ndCBi ZSBwdXQgaW4gYSBtYXAuCisrCSMgQ29udmVydCB0byBzdHJpbmcgZmlyc3QuCisrCXdhbnRlZCA9 IHNldCAobWFwIChsYW1iZGEgeDogeC5zdHJpbmcgKCksIHZhcnMpKQorKwlmb3VuZCA9IHNldCAo KQorKwlibG9jayA9IGdkYi5zZWxlY3RlZF9mcmFtZSAoKS5ibG9jayAoKQorKwl3aGlsZSBibG9j azoKKysJICAgIGZvciBzeW0gaW4gYmxvY2s6CisrCQlpZiAoc3ltLmlzX2FyZ3VtZW50IG9yIHN5 bS5pc19jb25zdGFudAorKwkJICAgICAgb3Igc3ltLmlzX2Z1bmN0aW9uIG9yIHN5bS5pc192YXJp YWJsZSk6CisrCQkgICAgaWYgc3ltLm5hbWUgaW4gd2FudGVkOgorKwkJCWZvdW5kLmFkZCAoc3lt Lm5hbWUpCisrCisrCSAgICBibG9jayA9IGJsb2NrLnN1cGVyYmxvY2sKKysKKysJcmV0dXJuIHdh bnRlZCA9PSBmb3VuZAorKworK0luU2NvcGUgKCkKK2RpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5 LWNtZC5jIGIvZ2RiL3B5dGhvbi9weS1jbWQuYworaW5kZXggM2RlM2FmMi4uNmE3YTIwYiAxMDA2 NDQKKy0tLSBhL2dkYi9weXRob24vcHktY21kLmMKKysrKyBiL2dkYi9weXRob24vcHktY21kLmMK K0BAIC00OSw4ICs0OSw3IEBAIHN0YXRpYyBzdHJ1Y3QgY21kcHlfY29tcGxldGVyIGNvbXBsZXRl cnNbXSA9CisgCisgI2RlZmluZSBOX0NPTVBMRVRFUlMgKHNpemVvZiAoY29tcGxldGVycykgLyBz aXplb2YgKGNvbXBsZXRlcnNbMF0pKQorIAorLS8qIEEgZ2RiIGNvbW1hbmQuICBGb3IgdGhlIHRp bWUgYmVpbmcgb25seSBvcmRpbmFyeSBjb21tYW5kcyAobm90CistICAgc2V0L3Nob3cgY29tbWFu ZHMpIGFyZSBhbGxvd2VkLiAgKi8KKysvKiBBIGdkYiBjb21tYW5kLiAgKi8KKyBzdHJ1Y3QgY21k cHlfb2JqZWN0CisgeworICAgUHlPYmplY3RfSEVBRAorZGlmZiAtLWdpdCBhL2dkYi9weXRob24v cHktbWVtYnVmLmMgYi9nZGIvcHl0aG9uL3B5LW1lbWJ1Zi5jCituZXcgZmlsZSBtb2RlIDEwMDY0 NAoraW5kZXggMDAwMDAwMC4uN2JjMjk0YworLS0tIC9kZXYvbnVsbAorKysrIGIvZ2RiL3B5dGhv bi9weS1tZW1idWYuYworQEAgLTAsMCArMSwyNjggQEAKKysvKiBQeXRob24gaW50ZXJmYWNlIHRv IHRoZSBpbmZlcmlvciBtZW1vcnkuCisrCisrICAgQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5IEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKworKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9m IEdEQi4KKysKKysgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisrICAgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IK KysgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoaXMgcHJv Z3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor KyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh cnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB UiBQVVJQT1NFLiAgU2VlIHRoZQorKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt b3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKysgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh bS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisr I2luY2x1ZGUgImRlZnMuaCIKKysjaW5jbHVkZSAiZXhjZXB0aW9ucy5oIgorKyNpbmNsdWRlICJn ZGJjb3JlLmgiCisrI2luY2x1ZGUgInB5dGhvbi1pbnRlcm5hbC5oIgorKworK3R5cGVkZWYgc3Ry dWN0IHsKKysgIFB5T2JqZWN0X0hFQUQKKysgIHZvaWQgKmJ1ZmZlcjsKKysKKysgIC8qIFRoZXNl IGFyZSBrZXB0IGp1c3QgZm9yIG1icHlfc3RyLiAgKi8KKysgIENPUkVfQUREUiBhZGRyOworKyAg Q09SRV9BRERSIGxlbmd0aDsKKyt9IG1lbWJ1Zl9vYmplY3Q7CisrCisrc3RhdGljIFB5VHlwZU9i amVjdCBtZW1idWZfb2JqZWN0X3R5cGU7CisrCisrLyogSW1wbGVtZW50YXRpb24gb2YgZ2RiLnJl YWRfbWVtb3J5IChhZGRyZXNzLCBsZW5ndGgpLgorKyAgIFJldHVybnMgYSBQeXRob24gYnVmZmVy IG9iamVjdCB3aXRoIExFTkdUSCBieXRlcyBvZiB0aGUgaW5mZXJpb3IncyBtZW1vcnkKKysgICBh dCBBRERSRVNTLiBCb3RoIGFyZ3VtZW50cyBhcmUgaW50ZWdlcnMuICAqLworKworK1B5T2JqZWN0 ICoKKytnZGJweV9yZWFkX21lbW9yeSAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQor K3sKKysgIGludCBlcnJvciA9IDA7CisrICBDT1JFX0FERFIgYWRkciwgbGVuZ3RoOworKyAgdm9p ZCAqYnVmZmVyID0gTlVMTDsKKysgIG1lbWJ1Zl9vYmplY3QgKm1lbWJ1Zl9vYmo7CisrICBQeU9i amVjdCAqYWRkcl9vYmosICpsZW5ndGhfb2JqOworKyAgc3RydWN0IGNsZWFudXAgKmNsZWFudXBz ID0gTlVMTDsKKysgIHZvbGF0aWxlIHN0cnVjdCBnZGJfZXhjZXB0aW9uIGV4Y2VwdDsKKysKKysg IGlmICghIFB5QXJnX1BhcnNlVHVwbGUgKGFyZ3MsICJPTyIsICZhZGRyX29iaiwgJmxlbmd0aF9v YmopKQorKyAgICByZXR1cm4gTlVMTDsKKysKKysgIFRSWV9DQVRDSCAoZXhjZXB0LCBSRVRVUk5f TUFTS19BTEwpCisrICAgIHsKKysgICAgICBpZiAoIWdldF9hZGRyX2Zyb21fcHl0aG9uIChhZGRy X29iaiwgJmFkZHIpCisrCSAgfHwgIWdldF9hZGRyX2Zyb21fcHl0aG9uIChsZW5ndGhfb2JqLCAm bGVuZ3RoKSkKKysJeworKwkgIGVycm9yID0gMTsKKysJICBicmVhazsKKysJfQorKworKyAgICAg IGJ1ZmZlciA9IHhtYWxsb2MgKGxlbmd0aCk7CisrICAgICAgY2xlYW51cHMgPSBtYWtlX2NsZWFu dXAgKHhmcmVlLCBidWZmZXIpOworKworKyAgICAgIHJlYWRfbWVtb3J5IChhZGRyLCBidWZmZXIs IGxlbmd0aCk7CisrICAgIH0KKysgIEdEQl9QWV9IQU5ETEVfRVhDRVBUSU9OIChleGNlcHQpOwor KworKyAgaWYgKGVycm9yKQorKyAgICByZXR1cm4gTlVMTDsKKysKKysgIGRpc2NhcmRfY2xlYW51 cHMgKGNsZWFudXBzKTsKKysKKysgIG1lbWJ1Zl9vYmogPSBQeU9iamVjdF9OZXcgKG1lbWJ1Zl9v YmplY3QsICZtZW1idWZfb2JqZWN0X3R5cGUpOworKyAgaWYgKG1lbWJ1Zl9vYmogPT0gTlVMTCkK KysgICAgeworKyAgICAgIHhmcmVlIChidWZmZXIpOworKyAgICAgIFB5RXJyX1NldFN0cmluZyAo UHlFeGNfTWVtb3J5RXJyb3IsCisrCQkgICAgICAgIkNvdWxkIG5vdCBhbGxvY2F0ZSBtZW1vcnkg YnVmZmVyIG9iamVjdC4iKTsKKysgICAgICByZXR1cm4gTlVMTDsKKysgICAgfQorKworKyAgbWVt YnVmX29iai0+YnVmZmVyID0gYnVmZmVyOworKyAgbWVtYnVmX29iai0+YWRkciA9IGFkZHI7Cisr ICBtZW1idWZfb2JqLT5sZW5ndGggPSBsZW5ndGg7CisrCisrICByZXR1cm4gUHlCdWZmZXJfRnJv bVJlYWRXcml0ZU9iamVjdCAoKFB5T2JqZWN0ICopIG1lbWJ1Zl9vYmosIDAsCisrCQkJCSAgICAg ICBQeV9FTkRfT0ZfQlVGRkVSKTsKKyt9CisrCisrLyogSW1wbGVtZW50YXRpb24gb2YgZ2RiLndy aXRlX21lbW9yeSAoYWRkcmVzcywgYnVmZmVyIFssIGxlbmd0aF0pLgorKyAgIFdyaXRlcyB0aGUg Y29udGVudHMgb2YgQlVGRkVSIChhIFB5dGhvbiBvYmplY3Qgc3VwcG9ydGluZyB0aGUgcmVhZCBi dWZmZXIKKysgICBwcm90b2NvbCkgYXQgQUREUkVTUyBpbiB0aGUgaW5mZXJpb3IncyBtZW1vcnku ICBXcml0ZSBMRU5HVEggYnl0ZXMgZnJvbQorKyAgIEJVRkZFUiwgb3IgaXRzIGVudGlyZSBjb250 ZW50cyBpZiB0aGUgYXJndW1lbnQgaXMgbm90IHByb3ZpZGVkLiAgVGhlCisrICAgZnVuY3Rpb24g cmV0dXJucyBub3RoaW5nLiAgKi8KKysKKytQeU9iamVjdCAqCisrZ2RicHlfd3JpdGVfbWVtb3J5 IChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCisreworKyAgaW50IGJ1Zl9sZW4sIGVy cm9yID0gMDsKKysgIGNvbnN0IGNoYXIgKmJ1ZmZlcjsKKysgIENPUkVfQUREUiBhZGRyLCBsZW5n dGg7CisrICBQeU9iamVjdCAqYWRkcl9vYmosICpsZW5ndGhfb2JqID0gTlVMTDsKKysgIHZvbGF0 aWxlIHN0cnVjdCBnZGJfZXhjZXB0aW9uIGV4Y2VwdDsKKysKKysgIGlmICghIFB5QXJnX1BhcnNl VHVwbGUgKGFyZ3MsICJPcyN8TyIsICZhZGRyX29iaiwgJmJ1ZmZlciwgJmJ1Zl9sZW4sCisrCQkJ ICAmbGVuZ3RoX29iaikpCisrICAgIHJldHVybiBOVUxMOworKworKyAgVFJZX0NBVENIIChleGNl cHQsIFJFVFVSTl9NQVNLX0FMTCkKKysgICAgeworKyAgICAgIGlmICghZ2V0X2FkZHJfZnJvbV9w eXRob24gKGFkZHJfb2JqLCAmYWRkcikpCisrCXsKKysJICBlcnJvciA9IDE7CisrCSAgYnJlYWs7 CisrCX0KKysgICAgICAKKysgICAgICBpZiAoIWxlbmd0aF9vYmopCisrCWxlbmd0aCA9IGJ1Zl9s ZW47CisrICAgICAgZWxzZSBpZiAoIWdldF9hZGRyX2Zyb21fcHl0aG9uIChsZW5ndGhfb2JqLCAm bGVuZ3RoKSkKKysJeworKwkgIGVycm9yID0gMTsKKysJICBicmVhazsKKysJfQorKworKyAgICAg IHdyaXRlX21lbW9yeSAoYWRkciwgYnVmZmVyLCBsZW5ndGgpOworKyAgICB9CisrICBHREJfUFlf SEFORExFX0VYQ0VQVElPTiAoZXhjZXB0KTsKKysKKysgIGlmIChlcnJvcikKKysgICAgcmV0dXJu IE5VTEw7CisrCisrICBQeV9SRVRVUk5fTk9ORTsKKyt9CisrCisrLyogRGVzdHJ1Y3RvciBvZiBN ZW1idWYgb2JqZWN0cy4gICovCisrCisrc3RhdGljIHZvaWQKKyttYnB5X2RlYWxsb2MgKFB5T2Jq ZWN0ICpzZWxmKQorK3sKKysgIHhmcmVlICgoKG1lbWJ1Zl9vYmplY3QgKikgc2VsZiktPmJ1ZmZl cik7CisrICBzZWxmLT5vYl90eXBlLT50cF9mcmVlIChzZWxmKTsKKyt9CisrCisrLyogUmV0dXJu IGEgZGVzY3JpcHRpb24gb2YgdGhlIE1lbWJ1ZiBvYmplY3QuICAqLworKworK3N0YXRpYyBQeU9i amVjdCAqCisrbWJweV9zdHIgKFB5T2JqZWN0ICpzZWxmKQorK3sKKysgIG1lbWJ1Zl9vYmplY3Qg Km1lbWJ1Zl9vYmogPSAobWVtYnVmX29iamVjdCAqKSBzZWxmOworKworKyAgcmV0dXJuIFB5U3Ry aW5nX0Zyb21Gb3JtYXQgKCJtZW1vcnkgYnVmZmVyIGZvciBhZGRyZXNzICVzLCAlcyBieXRlcyBs b25nIiwKKysJCQkgICAgICBwYWRkcmVzcyAobWVtYnVmX29iai0+YWRkciksCisrCQkJICAgICAg cHVsb25nZXN0IChtZW1idWZfb2JqLT5sZW5ndGgpKTsKKyt9CisrCisrc3RhdGljIFB5X3NzaXpl X3QKKytnZXRfcmVhZF9idWZmZXIgKFB5T2JqZWN0ICpzZWxmLCBQeV9zc2l6ZV90IHNlZ21lbnQs IHZvaWQgKipwdHJwdHIpCisreworKyAgbWVtYnVmX29iamVjdCAqbWVtYnVmX29iaiA9IChtZW1i dWZfb2JqZWN0ICopIHNlbGY7CisrCisrICBpZiAoc2VnbWVudCkKKysgICAgeworKyAgICAgIFB5 RXJyX1NldFN0cmluZyAoUHlFeGNfU3lzdGVtRXJyb3IsCisrCQkgICAgICAgIlRoZSBtZW1vcnkg YnVmZmVyIHN1cHBvcnRzIG9ubHkgb25lIHNlZ21lbnQuIik7CisrICAgICAgcmV0dXJuIC0xOwor KyAgICB9CisrCisrICAqcHRycHRyID0gbWVtYnVmX29iai0+YnVmZmVyOworKworKyAgcmV0dXJu IG1lbWJ1Zl9vYmotPmxlbmd0aDsKKyt9CisrCisrc3RhdGljIFB5X3NzaXplX3QKKytnZXRfd3Jp dGVfYnVmZmVyIChQeU9iamVjdCAqc2VsZiwgUHlfc3NpemVfdCBzZWdtZW50LCB2b2lkICoqcHRy cHRyKQorK3sKKysgIHJldHVybiBnZXRfcmVhZF9idWZmZXIgKHNlbGYsIHNlZ21lbnQsIHB0cnB0 cik7CisrfQorKworK3N0YXRpYyBQeV9zc2l6ZV90CisrZ2V0X3NlZ19jb3VudCAoUHlPYmplY3Qg KnNlbGYsIFB5X3NzaXplX3QgKmxlbnApCisreworKyAgaWYgKGxlbnApCisrICAgICpsZW5wID0g KChtZW1idWZfb2JqZWN0ICopIHNlbGYpLT5sZW5ndGg7CisrCisrICByZXR1cm4gMTsKKyt9Cisr Cisrc3RhdGljIFB5X3NzaXplX3QKKytnZXRfY2hhcl9idWZmZXIgKFB5T2JqZWN0ICpzZWxmLCBQ eV9zc2l6ZV90IHNlZ21lbnQsIGNoYXIgKipwdHJwdHIpCisreworKyAgdm9pZCAqcHRyID0gTlVM TDsKKysgIFB5X3NzaXplX3QgcmV0OworKworKyAgcmV0ID0gZ2V0X3JlYWRfYnVmZmVyIChzZWxm LCBzZWdtZW50LCAmcHRyKTsKKysgICpwdHJwdHIgPSAoY2hhciAqKSBwdHI7CisrCisrICByZXR1 cm4gcmV0OworK30KKysKKysvKiBQeXRob24gZG9lc24ndCBwcm92aWRlIGEgZGVjZW50IHdheSB0 byBnZXQgY29tcGF0aWJpbGl0eSBoZXJlLiAgKi8KKysjaWYgSEFWRV9MSUJQWVRIT04yXzQKKysj ZGVmaW5lIENIQVJCVUZGRVJQUk9DX05BTUUgZ2V0Y2hhcmJ1ZmZlcnByb2MKKysjZWxzZQorKyNk ZWZpbmUgQ0hBUkJVRkZFUlBST0NfTkFNRSBjaGFyYnVmZmVycHJvYworKyNlbmRpZgorKworK3N0 YXRpYyBQeUJ1ZmZlclByb2NzIGJ1ZmZlcl9wcm9jcyA9IHsKKysgIGdldF9yZWFkX2J1ZmZlciwK KysgIGdldF93cml0ZV9idWZmZXIsCisrICBnZXRfc2VnX2NvdW50LAorKyAgLyogVGhlIGNhc3Qg aGVyZSB3b3JrcyBhcm91bmQgYSBkaWZmZXJlbmNlIGJldHdlZW4gUHl0aG9uIDIuNCBhbmQKKysg ICAgIFB5dGhvbiAyLjUuICAqLworKyAgKENIQVJCVUZGRVJQUk9DX05BTUUpIGdldF9jaGFyX2J1 ZmZlcgorK307CisrCisrc3RhdGljIFB5VHlwZU9iamVjdCBtZW1idWZfb2JqZWN0X3R5cGUgPSB7 CisrICBQeU9iamVjdF9IRUFEX0lOSVQgKE5VTEwpCisrICAwLAkJCQkgIC8qb2Jfc2l6ZSovCisr ICAiZ2RiLk1lbWJ1ZiIsCQkJICAvKnRwX25hbWUqLworKyAgc2l6ZW9mIChtZW1idWZfb2JqZWN0 KSwJICAvKnRwX2Jhc2ljc2l6ZSovCisrICAwLAkJCQkgIC8qdHBfaXRlbXNpemUqLworKyAgbWJw eV9kZWFsbG9jLAkJCSAgLyp0cF9kZWFsbG9jKi8KKysgIDAsCQkJCSAgLyp0cF9wcmludCovCisr ICAwLAkJCQkgIC8qdHBfZ2V0YXR0ciovCisrICAwLAkJCQkgIC8qdHBfc2V0YXR0ciovCisrICAw LAkJCQkgIC8qdHBfY29tcGFyZSovCisrICAwLAkJCQkgIC8qdHBfcmVwciovCisrICAwLAkJCQkg IC8qdHBfYXNfbnVtYmVyKi8KKysgIDAsCQkJCSAgLyp0cF9hc19zZXF1ZW5jZSovCisrICAwLAkJ CQkgIC8qdHBfYXNfbWFwcGluZyovCisrICAwLAkJCQkgIC8qdHBfaGFzaCAqLworKyAgMCwJCQkJ ICAvKnRwX2NhbGwqLworKyAgbWJweV9zdHIsCQkJICAvKnRwX3N0ciovCisrICAwLAkJCQkgIC8q dHBfZ2V0YXR0cm8qLworKyAgMCwJCQkJICAvKnRwX3NldGF0dHJvKi8KKysgICZidWZmZXJfcHJv Y3MsCQkgIC8qdHBfYXNfYnVmZmVyKi8KKysgIFB5X1RQRkxBR1NfREVGQVVMVCwJCSAgLyp0cF9m bGFncyovCisrICAiR0RCIG1lbW9yeSBidWZmZXIgb2JqZWN0IiwgCSAgLyp0cF9kb2MqLworKyAg MCwJCQkJICAvKiB0cF90cmF2ZXJzZSAqLworKyAgMCwJCQkJICAvKiB0cF9jbGVhciAqLworKyAg MCwJCQkJICAvKiB0cF9yaWNoY29tcGFyZSAqLworKyAgMCwJCQkJICAvKiB0cF93ZWFrbGlzdG9m ZnNldCAqLworKyAgMCwJCQkJICAvKiB0cF9pdGVyICovCisrICAwLAkJCQkgIC8qIHRwX2l0ZXJu ZXh0ICovCisrICAwLAkJCQkgIC8qIHRwX21ldGhvZHMgKi8KKysgIDAsCQkJCSAgLyogdHBfbWVt YmVycyAqLworKyAgMCwJCQkJICAvKiB0cF9nZXRzZXQgKi8KKysgIDAsCQkJCSAgLyogdHBfYmFz ZSAqLworKyAgMCwJCQkJICAvKiB0cF9kaWN0ICovCisrICAwLAkJCQkgIC8qIHRwX2Rlc2NyX2dl dCAqLworKyAgMCwJCQkJICAvKiB0cF9kZXNjcl9zZXQgKi8KKysgIDAsCQkJCSAgLyogdHBfZGlj dG9mZnNldCAqLworKyAgMCwJCQkJICAvKiB0cF9pbml0ICovCisrICAwLAkJCQkgIC8qIHRwX2Fs bG9jICovCisrICBQeVR5cGVfR2VuZXJpY05ldwkJICAvKiB0cF9uZXcgKi8KKyt9OworKworK3Zv aWQKKytnZGJweV9pbml0aWFsaXplX21lbWJ1ZiAodm9pZCkKKyt7CisrICBpZiAoUHlUeXBlX1Jl YWR5ICgmbWVtYnVmX29iamVjdF90eXBlKSA8IDApCisrICAgIHJldHVybjsKKysKKysgIFB5X0lO Q1JFRiAoJm1lbWJ1Zl9vYmplY3RfdHlwZSk7CisrICBQeU1vZHVsZV9BZGRPYmplY3QgKGdkYl9t b2R1bGUsICJNZW1idWYiLCAoUHlPYmplY3QgKikgJm1lbWJ1Zl9vYmplY3RfdHlwZSk7CisrfQor ZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHktcHJldHR5cHJpbnQuYyBiL2dkYi9weXRob24vcHkt cHJldHR5cHJpbnQuYworaW5kZXggNzUzMmFhNS4uODVmMzk0MCAxMDA2NDQKKy0tLSBhL2dkYi9w eXRob24vcHktcHJldHR5cHJpbnQuYworKysrIGIvZ2RiL3B5dGhvbi9weS1wcmV0dHlwcmludC5j CitAQCAtMjI3LDEwICsyMjcsMTAgQEAgcHJldHR5X3ByaW50X29uZV92YWx1ZSAoUHlPYmplY3Qg KnByaW50ZXIsIHN0cnVjdCB2YWx1ZSAqKm91dF92YWx1ZSkKKyAJICAgICAgJiYgcmVzdWx0ICE9 IFB5X05vbmUpCisgCSAgICB7CisgCSAgICAgICpvdXRfdmFsdWUgPSBjb252ZXJ0X3ZhbHVlX2Zy b21fcHl0aG9uIChyZXN1bHQpOworLQkgICAgICBpZiAoUHlFcnJfT2NjdXJyZWQgKCkpCistCQkq b3V0X3ZhbHVlID0gTlVMTDsKKy0JICAgICAgUHlfREVDUkVGIChyZXN1bHQpOworLQkgICAgICBy ZXN1bHQgPSBOVUxMOworKyAJICAgICAgaWYgKFB5RXJyX09jY3VycmVkICgpKQorKyAJCSpvdXRf dmFsdWUgPSBOVUxMOworKyAJICAgICAgUHlfREVDUkVGIChyZXN1bHQpOworKyAJICAgICAgcmVz dWx0ID0gTlVMTDsKKyAJICAgIH0KKyAJfQorICAgICB9CitAQCAtNzYzLDE0ICs3NjMsNyBAQCBn ZGJweV9nZXRfdmFyb2JqX3ByZXR0eV9wcmludGVyIChzdHJ1Y3QgdmFsdWUgKnZhbHVlKQorIHsK KyAgIFB5T2JqZWN0ICp2YWxfb2JqOworICAgUHlPYmplY3QgKnByZXR0eV9wcmludGVyID0gTlVM TDsKKy0gIHZvbGF0aWxlIHN0cnVjdCBnZGJfZXhjZXB0aW9uIGV4Y2VwdDsKKyAKKy0gIFRSWV9D QVRDSCAoZXhjZXB0LCBSRVRVUk5fTUFTS19BTEwpCistICAgIHsKKy0gICAgICB2YWx1ZSA9IHZh bHVlX2NvcHkgKHZhbHVlKTsKKy0gICAgfQorLSAgR0RCX1BZX0hBTkRMRV9FWENFUFRJT04gKGV4 Y2VwdCk7CistICAKKyAgIHZhbF9vYmogPSB2YWx1ZV90b192YWx1ZV9vYmplY3QgKHZhbHVlKTsK KyAgIGlmICghIHZhbF9vYmopCisgICAgIHJldHVybiBOVUxMOwogZGlmZiAtLWdpdCBhL2dkYi9w eXRob24vcHktdHlwZS5jIGIvZ2RiL3B5dGhvbi9weS10eXBlLmMKIGluZGV4IDlhNmIwNzcuLjY1 NmQzYTEgMTAwNjQ0CiAtLS0gYS9nZGIvcHl0aG9uL3B5LXR5cGUuYwpAQCAtNTkxNiw3ICs3NTU1 LDcgQEAgaW5kZXggOWE2YjA3Ny4uNjU2ZDNhMSAxMDA2NDQKICAKICAMCiBkaWZmIC0tZ2l0IGEv Z2RiL3B5dGhvbi9weS12YWx1ZS5jIGIvZ2RiL3B5dGhvbi9weS12YWx1ZS5jCi1pbmRleCBhZGI3 NjU4Li4xZTFmN2U5IDEwMDY0NAoraW5kZXggMWFhOTQ0My4uNzg2YzQ1YSAxMDA2NDQKIC0tLSBh L2dkYi9weXRob24vcHktdmFsdWUuYwogKysrIGIvZ2RiL3B5dGhvbi9weS12YWx1ZS5jCiBAQCAt MjgsNiArMjgsNyBAQApAQCAtNTkyNyw3ICs3NTY2LDcgQEAgaW5kZXggYWRiNzY1OC4uMWUxZjdl OSAxMDA2NDQKICAKICAjaWZkZWYgSEFWRV9QWVRIT04KICAKLUBAIC0xMjIwLDYgKzEyMjEsMTcg QEAgZ2RicHlfaXNfdmFsdWVfb2JqZWN0IChQeU9iamVjdCAqb2JqKQorQEAgLTEyMjIsNiArMTIy MywxNyBAQCBnZGJweV9pc192YWx1ZV9vYmplY3QgKFB5T2JqZWN0ICpvYmopCiAgICByZXR1cm4g UHlPYmplY3RfVHlwZUNoZWNrIChvYmosICZ2YWx1ZV9vYmplY3RfdHlwZSk7CiAgfQogIApAQCAt NTk0NSw3ICs3NTg0LDcgQEAgaW5kZXggYWRiNzY1OC4uMWUxZjdlOSAxMDA2NDQKICB2b2lkCiAg Z2RicHlfaW5pdGlhbGl6ZV92YWx1ZXMgKHZvaWQpCiAgewotQEAgLTEyMzAsNiArMTI0Miw4IEBA IGdkYnB5X2luaXRpYWxpemVfdmFsdWVzICh2b2lkKQorQEAgLTEyMzIsNiArMTI0NCw4IEBAIGdk YnB5X2luaXRpYWxpemVfdmFsdWVzICh2b2lkKQogICAgUHlNb2R1bGVfQWRkT2JqZWN0IChnZGJf bW9kdWxlLCAiVmFsdWUiLCAoUHlPYmplY3QgKikgJnZhbHVlX29iamVjdF90eXBlKTsKICAKICAg IHZhbHVlc19pbl9weXRob24gPSBOVUxMOwpAQCAtNTk1NCw4ICs3NTkzLDE3NSBAQCBpbmRleCBh ZGI3NjU4Li4xZTFmN2U5IDEwMDY0NAogIH0KICAKICAMCitkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhv bi9weXRob24taW50ZXJuYWwuaCBiL2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgKK2luZGV4 IDgwZDA3NjMuLjAwNDA0MDMgMTAwNjQ0CistLS0gYS9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5h bC5oCisrKysgYi9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCitAQCAtODgsMTAgKzg4LDEx IEBAIHN0cnVjdCBsYW5ndWFnZV9kZWZuOworIHN0cnVjdCBwcm9ncmFtX3NwYWNlOworIAorIGV4 dGVybiBQeU9iamVjdCAqZ2RiX21vZHVsZTsKKy1leHRlcm4gUHlUeXBlT2JqZWN0IHZhbHVlX29i amVjdF90eXBlOworIGV4dGVybiBQeVR5cGVPYmplY3QgYmxvY2tfb2JqZWN0X3R5cGU7CisrZXh0 ZXJuIFB5VHlwZU9iamVjdCB2YWx1ZV9vYmplY3RfdHlwZTsKKyBleHRlcm4gUHlUeXBlT2JqZWN0 IHN5bWJvbF9vYmplY3RfdHlwZTsKKyAKKysvKiBVc2VkIGluIHB5dGhvbi1pbmZlcmlvci5jLiAg Ki8KKyB0eXBlZGVmIHN0cnVjdAorIHsKKyAgIFB5T2JqZWN0X0hFQUQKK0BAIC0xMzMsNiArMTM0 LDEwIEBAIFB5T2JqZWN0ICpibG9ja190b19ibG9ja19vYmplY3QgKHN0cnVjdCBibG9jayAqYmxv Y2ssIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKTsKKyBQeU9iamVjdCAqdmFsdWVfdG9fdmFsdWVf b2JqZWN0IChzdHJ1Y3QgdmFsdWUgKnYpOworIFB5T2JqZWN0ICp0eXBlX3RvX3R5cGVfb2JqZWN0 IChzdHJ1Y3QgdHlwZSAqKTsKKyBQeU9iamVjdCAqZnJhbWVfaW5mb190b19mcmFtZV9vYmplY3Qg KHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSk7CisrUHlPYmplY3QgKmZyYW1lX2luZm9fdG9fZnJh bWVfb2JqZWN0IChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUpOworK3RocmVhZF9vYmplY3QgKmNy ZWF0ZV90aHJlYWRfb2JqZWN0IChzdHJ1Y3QgdGhyZWFkX2luZm8gKnRwKTsKKyt0aHJlYWRfb2Jq ZWN0ICpmaW5kX3RocmVhZF9vYmplY3QgKHB0aWRfdCBwdGlkKTsKKytQeU9iamVjdCAqZmluZF9p bmZlcmlvcl9vYmplY3QgKGludCBwaWQpOworIAorIFB5T2JqZWN0ICpwc3BhY2VfdG9fcHNwYWNl X29iamVjdCAoc3RydWN0IHByb2dyYW1fc3BhY2UgKik7CisgUHlPYmplY3QgKnBzcHlfZ2V0X3By aW50ZXJzIChQeU9iamVjdCAqLCB2b2lkICopOworQEAgLTE1Myw3ICsxNTgsOSBAQCBzdHJ1Y3Qg c3ltdGFiICpzeW10YWJfb2JqZWN0X3RvX3N5bXRhYiAoUHlPYmplY3QgKm9iaik7Cisgc3RydWN0 IHN5bXRhYl9hbmRfbGluZSAqc2FsX29iamVjdF90b19zeW10YWJfYW5kX2xpbmUgKFB5T2JqZWN0 ICpvYmopOworIAorIHZvaWQgZ2RicHlfaW5pdGlhbGl6ZV9hdXRvX2xvYWQgKHZvaWQpOworKwor IHZvaWQgZ2RicHlfaW5pdGlhbGl6ZV92YWx1ZXMgKHZvaWQpOworK3ZvaWQgZ2RicHlfaW5pdGlh bGl6ZV9icmVha3BvaW50cyAodm9pZCk7Cisgdm9pZCBnZGJweV9pbml0aWFsaXplX2ZyYW1lcyAo dm9pZCk7Cisgdm9pZCBnZGJweV9pbml0aWFsaXplX3N5bXRhYnMgKHZvaWQpOworIHZvaWQgZ2Ri cHlfaW5pdGlhbGl6ZV9jb21tYW5kcyAodm9pZCk7CitAQCAtMTYxLDYgKzE2OCw3IEBAIHZvaWQg Z2RicHlfaW5pdGlhbGl6ZV9zeW1ib2xzICh2b2lkKTsKKyB2b2lkIGdkYnB5X2luaXRpYWxpemVf c3ltdGFicyAodm9pZCk7Cisgdm9pZCBnZGJweV9pbml0aWFsaXplX2Jsb2NrcyAodm9pZCk7Cisg dm9pZCBnZGJweV9pbml0aWFsaXplX3R5cGVzICh2b2lkKTsKKyt2b2lkIGdkYnB5X2luaXRpYWxp emVfYmxvY2tzICh2b2lkKTsKKyB2b2lkIGdkYnB5X2luaXRpYWxpemVfZnVuY3Rpb25zICh2b2lk KTsKKyB2b2lkIGdkYnB5X2luaXRpYWxpemVfcHNwYWNlICh2b2lkKTsKKyB2b2lkIGdkYnB5X2lu aXRpYWxpemVfb2JqZmlsZSAodm9pZCk7CitAQCAtMTc4LDYgKzE4NiwxMiBAQCBzdHJ1Y3QgY2xl YW51cCAqZW5zdXJlX3B5dGhvbl9lbnYgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLAorIGV4dGVy biBzdHJ1Y3QgZ2RiYXJjaCAqcHl0aG9uX2dkYmFyY2g7CisgZXh0ZXJuIGNvbnN0IHN0cnVjdCBs YW5ndWFnZV9kZWZuICpweXRob25fbGFuZ3VhZ2U7CisgCisrY2hhciAqZ2RicHlfcGFyc2VfY29t bWFuZF9uYW1lIChjaGFyICp0ZXh0LAorKwkJCQlzdHJ1Y3QgY21kX2xpc3RfZWxlbWVudCAqKipi YXNlX2xpc3QsCisrCQkJCXN0cnVjdCBjbWRfbGlzdF9lbGVtZW50ICoqc3RhcnRfbGlzdCk7Cisr CisrUHlPYmplY3QgKmdkYnB5X3BhcmFtZXRlcl92YWx1ZSAoZW51bSB2YXJfdHlwZXMsIHZvaWQg Kik7CisrCisgLyogVXNlIHRoaXMgYWZ0ZXIgYSBUUllfRVhDRVBUIHRvIHRocm93IHRoZSBhcHBy b3ByaWF0ZSBQeXRob24KKyAgICBleGNlcHRpb24uICAqLworICNkZWZpbmUgR0RCX1BZX0hBTkRM RV9FWENFUFRJT04oRXhjZXB0aW9uKQkJCQlcCitAQCAtMjI1LDEzICsyMzksMTQgQEAgUHlPYmpl Y3QgKmFwcGx5X3Zhcm9ial9wcmV0dHlfcHJpbnRlciAoUHlPYmplY3QgKnByaW50X29iaiwKKyAJ CQkJICAgICAgIHN0cnVjdCB2YWx1ZSAqKnJlcGxhY2VtZW50LAorIAkJCQkgICAgICAgc3RydWN0 IHVpX2ZpbGUgKnN0cmVhbSk7CisgUHlPYmplY3QgKmdkYnB5X2dldF92YXJvYmpfcHJldHR5X3By aW50ZXIgKHN0cnVjdCB2YWx1ZSAqdmFsdWUpOworK1B5T2JqZWN0ICpnZGJweV9pbnN0YW50aWF0 ZV9wcmludGVyIChQeU9iamVjdCAqY29ucywgUHlPYmplY3QgKnZhbHVlKTsKKyBjaGFyICpnZGJw eV9nZXRfZGlzcGxheV9oaW50IChQeU9iamVjdCAqcHJpbnRlcik7CisgUHlPYmplY3QgKmdkYnB5 X2RlZmF1bHRfdmlzdWFsaXplciAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKTsKKyAK Ky1leHRlcm4gUHlPYmplY3QgKmdkYnB5X2RvY19jc3Q7CisgZXh0ZXJuIFB5T2JqZWN0ICpnZGJw eV9jaGlsZHJlbl9jc3Q7CisgZXh0ZXJuIFB5T2JqZWN0ICpnZGJweV90b19zdHJpbmdfY3N0Owor IGV4dGVybiBQeU9iamVjdCAqZ2RicHlfZGlzcGxheV9oaW50X2NzdDsKKytleHRlcm4gUHlPYmpl Y3QgKmdkYnB5X2RvY19jc3Q7CisgZXh0ZXJuIFB5T2JqZWN0ICpnZGJweV9lbmFibGVkX2NzdDsK KyAKKyAvKiBFeGNlcHRpb24gdHlwZXMuICAqLworZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHl0 aG9uLmMgYi9nZGIvcHl0aG9uL3B5dGhvbi5jCitpbmRleCAzNzUwNDJjLi5iNmFmNjQ1IDEwMDY0 NAorLS0tIGEvZ2RiL3B5dGhvbi9weXRob24uYworKysrIGIvZ2RiL3B5dGhvbi9weXRob24uYwor QEAgLTQ5LDggKzQ5LDExIEBAIHN0YXRpYyBpbnQgZ2RicHlfc2hvdWxkX3ByaW50X3N0YWNrID0g MTsKKyAjaW5jbHVkZSAibGluZXNwZWMuaCIKKyAjaW5jbHVkZSAic291cmNlLmgiCisgI2luY2x1 ZGUgInZlcnNpb24uaCIKKysjaW5jbHVkZSAiaW5mZXJpb3IuaCIKKysjaW5jbHVkZSAiZ2RidGhy ZWFkLmgiCisgI2luY2x1ZGUgInRhcmdldC5oIgorICNpbmNsdWRlICJnZGJ0aHJlYWQuaCIKKysj aW5jbHVkZSAiZXZlbnQtdG9wLmgiCisgCisgc3RhdGljIFB5TWV0aG9kRGVmIEdkYk1ldGhvZHNb XTsKKyAKK0BAIC03MjgsNiArNzMxLDUzIEBAIGdkYnB5X3ByaW50X3N0YWNrICh2b2lkKQorIAor IC8qIFJldHVybiB0aGUgY3VycmVudCBQcm9nc3BhY2UuCisgICAgVGhlcmUgYWx3YXlzIGlzIG9u ZS4gICovCisrLyogVHJ1ZSBpZiAnZ2RiIC1QJyB3YXMgdXNlZCwgZmFsc2Ugb3RoZXJ3aXNlLiAg Ki8KKytzdGF0aWMgaW50IHJ1bm5pbmdfcHl0aG9uX3NjcmlwdDsKKysKKysvKiBUcnVlIGlmIHdl IGFyZSBjdXJyZW50bHkgaW4gYSBjYWxsIHRvICdnZGIuY2xpJywgZmFsc2Ugb3RoZXJ3aXNlLiAg Ki8KKytzdGF0aWMgaW50IGluX2NsaTsKKysKKysvKiBFbnRlciB0aGUgY29tbWFuZCBsb29wLiAg Ki8KKysKKytzdGF0aWMgUHlPYmplY3QgKgorK2dkYnB5X2NsaSAoUHlPYmplY3QgKnVudXNlZDEs IFB5T2JqZWN0ICp1bnVzZWQyKQorK3sKKysgIGlmICghIHJ1bm5pbmdfcHl0aG9uX3NjcmlwdCB8 fCBpbl9jbGkpCisrICAgIHJldHVybiBQeUVycl9Gb3JtYXQgKFB5RXhjX1J1bnRpbWVFcnJvciwg ImNhbm5vdCBpbnZva2UgQ0xJIHJlY3Vyc2l2ZWx5Iik7CisrCisrICBpbl9jbGkgPSAxOworKyAg Y2xpX2NvbW1hbmRfbG9vcCAoKTsKKysgIGluX2NsaSA9IDA7CisrCisrICBQeV9SRVRVUk5fTk9O RTsKKyt9CisrCisrLyogU2V0IHVwIHRoZSBQeXRob24gYXJndW1lbnQgdmVjdG9yIGFuZCBldmFs dWF0ZSBhIHNjcmlwdC4gIFRoaXMgaXMKKysgICB1c2VkIHRvIGltcGxlbWVudCAnZ2RiIC1QJy4g ICovCisrCisrdm9pZAorK3J1bl9weXRob25fc2NyaXB0IChpbnQgYXJnYywgY2hhciAqKmFyZ3Yp CisreworKyAgRklMRSAqaW5wdXQ7CisrCisrICAvKiBXZSBuZXZlciBmcmVlIHRoaXMsIHNpbmNl IHdlIHBsYW4gdG8gZXhpdCBhdCB0aGUgZW5kLiAgKi8KKysgIGVuc3VyZV9weXRob25fZW52IChn ZXRfY3VycmVudF9hcmNoICgpLCBjdXJyZW50X2xhbmd1YWdlKTsKKysKKysgIHJ1bm5pbmdfcHl0 aG9uX3NjcmlwdCA9IDE7CisrICBQeVN5c19TZXRBcmd2IChhcmdjIC0gMSwgYXJndiArIDEpOwor KyAgaW5wdXQgPSBmb3BlbiAoYXJndlswXSwgInIiKTsKKysgIGlmICghIGlucHV0KQorKyAgICB7 CisrICAgICAgZnByaW50ZiAoc3RkZXJyLCAiY291bGQgbm90IG9wZW4gJXM6ICVzXG4iLCBhcmd2 WzBdLCBzdHJlcnJvciAoZXJybm8pKTsKKysgICAgICBleGl0ICgxKTsKKysgICAgfQorKyAgUHlS dW5fU2ltcGxlRmlsZSAoaW5wdXQsIGFyZ3ZbMF0pOworKyAgZmNsb3NlIChpbnB1dCk7CisrICBl eGl0ICgwKTsKKyt9CisrCisrDAorKworIAorIHN0YXRpYyBQeU9iamVjdCAqCisgZ2RicHlfZ2V0 X2N1cnJlbnRfcHJvZ3NwYWNlIChQeU9iamVjdCAqdW51c2VkMSwgUHlPYmplY3QgKnVudXNlZDIp CitAQCAtMTEwMiw2ICsxMTUyLDggQEAgc3RhdGljIFB5TWV0aG9kRGVmIEdkYk1ldGhvZHNbXSA9 CisgICAgICJHZXQgYSB2YWx1ZSBmcm9tIGhpc3RvcnkiIH0sCisgICB7ICJleGVjdXRlIiwgKFB5 Q0Z1bmN0aW9uKSBleGVjdXRlX2dkYl9jb21tYW5kLCBNRVRIX1ZBUkFSR1MgfCBNRVRIX0tFWVdP UkRTLAorICAgICAiRXhlY3V0ZSBhIGdkYiBjb21tYW5kIiB9LAorKyAgeyAiY2xpIiwgZ2RicHlf Y2xpLCBNRVRIX05PQVJHUywKKysgICAgIkVudGVyIHRoZSBnZGIgQ0xJIiB9LAorICAgeyAicGFy YW1ldGVyIiwgZ2RicHlfcGFyYW1ldGVyLCBNRVRIX1ZBUkFSR1MsCisgICAgICJSZXR1cm4gYSBn ZGIgcGFyYW1ldGVyJ3MgdmFsdWUiIH0sCisgCitkaWZmIC0tZ2l0IGEvZ2RiL3B5dGhvbi9weXRo b24uaCBiL2dkYi9weXRob24vcHl0aG9uLmgKK2luZGV4IDU4ZDk3ZmMuLjkzZDU2ZWYgMTAwNjQ0 CistLS0gYS9nZGIvcHl0aG9uL3B5dGhvbi5oCisrKysgYi9nZGIvcHl0aG9uL3B5dGhvbi5oCitA QCAtMzAsNiArMzAsOCBAQCB2b2lkIGV2YWxfcHl0aG9uX2Zyb21fY29udHJvbF9jb21tYW5kIChz dHJ1Y3QgY29tbWFuZF9saW5lICopOworIAorIHZvaWQgc291cmNlX3B5dGhvbl9zY3JpcHQgKEZJ TEUgKnN0cmVhbSwgY29uc3QgY2hhciAqZmlsZSk7CisgCisrdm9pZCBydW5fcHl0aG9uX3Njcmlw dCAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsKKysKKyBpbnQgYXBwbHlfdmFsX3ByZXR0eV9wcmlu dGVyIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCisgCQkJICAg ICAgaW50IGVtYmVkZGVkX29mZnNldCwgQ09SRV9BRERSIGFkZHJlc3MsCisgCQkJICAgICAgc3Ry dWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiBkaWZmIC0tZ2l0IGEvZ2RiL3NvbGli LXN2cjQuYyBiL2dkYi9zb2xpYi1zdnI0LmMKLWluZGV4IGVmMDRkZDcuLjUxMmI2ZTQgMTAwNjQ0 CitpbmRleCBkNDVjZDkyLi5mNjk1NWU5IDEwMDY0NAogLS0tIGEvZ2RiL3NvbGliLXN2cjQuYwog KysrIGIvZ2RiL3NvbGliLXN2cjQuYwogQEAgLTEyNzYsNyArMTI3Niw4IEBAIHN2cjRfaW5fZHlu c3ltX3Jlc29sdmVfY29kZSAoQ09SRV9BRERSIHBjKQpAQCAtNTk2OSw3ICs3Nzc1LDcgQEAgaW5k ZXggZWYwNGRkNy4uNTEyYjZlNCAxMDA2NDQKICAKICAvKiBHaXZlbiBhbiBleGVjdXRhYmxlJ3Mg QUJGRCBhbmQgdGFyZ2V0LCBjb21wdXRlIHRoZSBlbnRyeS1wb2ludAogZGlmZiAtLWdpdCBhL2dk Yi9zdGFjay5jIGIvZ2RiL3N0YWNrLmMKLWluZGV4IDFkMjM4MDYuLmMyMGRmNDEgMTAwNjQ0Citp bmRleCA0ZmM2MzRmLi5mNmRmN2VlIDEwMDY0NAogLS0tIGEvZ2RiL3N0YWNrLmMKICsrKyBiL2dk Yi9zdGFjay5jCiBAQCAtMzY2LDYgKzM2Niw3IEBAIHByaW50X2ZyYW1lX2FyZ3MgKHN0cnVjdCBz eW1ib2wgKmZ1bmMsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwKQEAgLTU5OTUsNyArNzgwMSw3 IEBAIGluZGV4IDFkMjM4MDYuLmMyMGRmNDEgMTAwNjQ0CiAgCSAgICAgICAgfQogIAkgICAgICBl bHNlCiBkaWZmIC0tZ2l0IGEvZ2RiL3N5bW1pc2MuYyBiL2dkYi9zeW1taXNjLmMKLWluZGV4IGIy OTJjM2IuLjRkYjY2MjkgMTAwNjQ0CitpbmRleCA3ZjJkMzhhLi43ZDM1ODllIDEwMDY0NAogLS0t IGEvZ2RiL3N5bW1pc2MuYwogKysrIGIvZ2RiL3N5bW1pc2MuYwogQEAgLTI2NCw2ICsyNjQsOSBA QCBkdW1wX21zeW1ib2xzIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgc3RydWN0IHVpX2ZpbGUg Km91dGZpbGUpCkBAIC02MDA5LDEwICs3ODE1LDEwIEBAIGluZGV4IGIyOTJjM2IuLjRkYjY2Mjkg MTAwNjQ0CiAgCSAgbXNfdHlwZSA9ICdTJzsKICAJICBicmVhazsKIGRpZmYgLS1naXQgYS9nZGIv c3ltdGFiLmMgYi9nZGIvc3ltdGFiLmMKLWluZGV4IDRlNjhmMWIuLmU2ZTkxYmEgMTAwNjQ0Citp bmRleCBiZGYzNGQ2Li5mZTJkYzRjIDEwMDY0NAogLS0tIGEvZ2RiL3N5bXRhYi5jCiArKysgYi9n ZGIvc3ltdGFiLmMKLUBAIC0yOTg4LDcgKzI5ODgsNyBAQCBzZWFyY2hfc3ltYm9scyAoY2hhciAq cmVnZXhwLCBkb21haW5fZW51bSBraW5kLCBpbnQgbmZpbGVzLCBjaGFyICpmaWxlc1tdLAorQEAg LTMwMDAsNyArMzAwMCw3IEBAIHNlYXJjaF9zeW1ib2xzIChjaGFyICpyZWdleHAsIGRvbWFpbl9l bnVtIGtpbmQsIGludCBuZmlsZXMsIGNoYXIgKmZpbGVzW10sCiAgICBzdGF0aWMgY29uc3QgZW51 bSBtaW5pbWFsX3N5bWJvbF90eXBlIHR5cGVzM1tdCiAgICAgID0ge21zdF9maWxlX2RhdGEsIG1z dF9zb2xpYl90cmFtcG9saW5lLCBtc3RfYWJzLCBtc3RfdW5rbm93bn07CiAgICBzdGF0aWMgY29u c3QgZW51bSBtaW5pbWFsX3N5bWJvbF90eXBlIHR5cGVzNFtdCkBAIC02MDIyLDcgKzc4MjgsNyBA QCBpbmRleCA0ZTY4ZjFiLi5lNmU5MWJhIDEwMDY0NAogICAgZW51bSBtaW5pbWFsX3N5bWJvbF90 eXBlIG91cnR5cGUyOwogICAgZW51bSBtaW5pbWFsX3N5bWJvbF90eXBlIG91cnR5cGUzOwogZGlm ZiAtLWdpdCBhL2dkYi9zeW10YWIuaCBiL2dkYi9zeW10YWIuaAotaW5kZXggZTg1YjQzMi4uNmQ5 N2Q2ZSAxMDA2NDQKK2luZGV4IDY4NjRiOTYuLjY1MWJkNjcgMTAwNjQ0CiAtLS0gYS9nZGIvc3lt dGFiLmgKICsrKyBiL2dkYi9zeW10YWIuaAogQEAgLTI5MCw2ICsyOTAsOSBAQCBlbnVtIG1pbmlt YWxfc3ltYm9sX3R5cGUKQEAgLTYwMzUsNyArNzg0MSw3IEBAIGluZGV4IGU4NWI0MzIuLjZkOTdk NmUgMTAwNjQ0CiAgICBtc3RfZGF0YSwJCQkvKiBHZW5lcmFsbHkgaW5pdGlhbGl6ZWQgZGF0YSAq LwogICAgbXN0X2JzcywJCQkvKiBHZW5lcmFsbHkgdW5pbml0aWFsaXplZCBkYXRhICovCiAgICBt c3RfYWJzLAkJCS8qIEdlbmVyYWxseSBhYnNvbHV0ZSAobm9ucmVsb2NhdGFibGUpICovCi1AQCAt OTU1LDExICs5NTgsMjUgQEAgZXh0ZXJuIHN0cnVjdCBzeW1ib2wgKmZpbmRfcGNfc2VjdF9mdW5j dGlvbiAoQ09SRV9BRERSLCBzdHJ1Y3Qgb2JqX3NlY3Rpb24gKik7CitAQCAtOTU2LDExICs5NTks MjUgQEAgZXh0ZXJuIHN0cnVjdCBzeW1ib2wgKmZpbmRfcGNfc2VjdF9mdW5jdGlvbiAoQ09SRV9B RERSLCBzdHJ1Y3Qgb2JqX3NlY3Rpb24gKik7CiAgCiAgLyogbG9va3VwIGZ1bmN0aW9uIGZyb20g YWRkcmVzcywgcmV0dXJuIG5hbWUsIHN0YXJ0IGFkZHIgYW5kIGVuZCBhZGRyICovCiAgCkBAIC02 MDYzLDcgKzc4NjksNyBAQCBpbmRleCBlODViNDMyLi42ZDk3ZDZlIDEwMDY0NAogIC8qIGxvb2t1 cCBwYXJ0aWFsIHN5bWJvbCB0YWJsZSBieSBhZGRyZXNzIGFuZCBzZWN0aW9uICovCiAgCiAgZXh0 ZXJuIHN0cnVjdCBzeW10YWIgKmZpbmRfcGNfc2VjdF9zeW10YWJfdmlhX3BhcnRpYWwgKENPUkVf QUREUiwKLUBAIC0xMDM0LDYgKzEwNTEsOCBAQCBleHRlcm4gc3RydWN0IG1pbmltYWxfc3ltYm9s ICpsb29rdXBfbWluaW1hbF9zeW1ib2xfYnlfcGNfbmFtZQorQEAgLTEwMzUsNiArMTA1Miw4IEBA IGV4dGVybiBzdHJ1Y3QgbWluaW1hbF9zeW1ib2wgKmxvb2t1cF9taW5pbWFsX3N5bWJvbF9ieV9w Y19uYW1lCiAgCiAgZXh0ZXJuIHN0cnVjdCBtaW5pbWFsX3N5bWJvbCAqbG9va3VwX21pbmltYWxf c3ltYm9sX2J5X3BjIChDT1JFX0FERFIpOwogIApAQCAtNjA3Miw2ICs3ODc4LDI5IEBAIGluZGV4 IGU4NWI0MzIuLjZkOTdkNmUgMTAwNjQ0CiAgZXh0ZXJuIHN0cnVjdCBtaW5pbWFsX3N5bWJvbCAq CiAgICAgIGxvb2t1cF9taW5pbWFsX3N5bWJvbF9hbmRfb2JqZmlsZSAoY29uc3QgY2hhciAqLAog IAkJCQkgICAgICAgc3RydWN0IG9iamZpbGUgKiopOworZGlmZiAtLWdpdCBhL2dkYi90YXJnZXQu aCBiL2dkYi90YXJnZXQuaAoraW5kZXggYzM0NjI1Yy4uZDRmY2JmYyAxMDA2NDQKKy0tLSBhL2dk Yi90YXJnZXQuaAorKysrIGIvZ2RiL3RhcmdldC5oCitAQCAtMTM3Miw2ICsxMzcyLDE4IEBAIGV4 dGVybiBpbnQgdGFyZ2V0X3NlYXJjaF9tZW1vcnkgKENPUkVfQUREUiBzdGFydF9hZGRyLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVMT05HRVNUIHBhdHRlcm5fbGVuLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPUkVfQUREUiAqZm91bmRfYWRkcnApOwor IAorKy8qIFV0aWxpdHkgZnVuY3Rpb25zIHdoaWNoIGNhbiBiZSB1c2VkIGJ5IHNlYXJjaF9tZW1v cnkgaW1wbGVtZW50YXRpb25zLiAgKi8KKysKKyt2b2lkIGFsbG9jYXRlX3BhdHRlcm5fYnVmZmVy IChjaGFyICoqcGF0dGVybl9idWZwLCBjaGFyICoqcGF0dGVybl9idWZfZW5kLAorKwkJCSAgICAg IFVMT05HRVNUICpwYXR0ZXJuX2J1Zl9zaXplKTsKKysKKyt2b2lkIGluY3JlYXNlX3BhdHRlcm5f YnVmZmVyIChjaGFyICoqcGF0dGVybl9idWZwLCBjaGFyICoqcGF0dGVybl9idWZfZW5kLAorKwkJ CSAgICAgIFVMT05HRVNUICpwYXR0ZXJuX2J1Zl9zaXplLCBpbnQgdmFsX2J5dGVzKTsKKysKKytp bnQgc2VhcmNoX21lbW9yeSAoQ09SRV9BRERSICpzdGFydF9hZGRyLCBVTE9OR0VTVCAqc2VhcmNo X3NwYWNlX2xlbiwKKysJCSAgIGNvbnN0IGNoYXIgKnBhdHRlcm5fYnVmLCBVTE9OR0VTVCBwYXR0 ZXJuX2xlbiwKKysJCSAgIENPUkVfQUREUiAqZm91bmRfYWRkcik7CisrCisgLyogVHJhY2Vwb2lu dC1yZWxhdGVkIG9wZXJhdGlvbnMuICAqLworIAorICNkZWZpbmUgdGFyZ2V0X3RyYWNlX2luaXQo KSBcCiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC94ODZfNjQtdmxhLXBvaW50 ZXItZm9vLlMgYi9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL3g4Nl82NC12bGEtcG9pbnRlci1mb28u UwogbmV3IGZpbGUgbW9kZSAxMDA2NDQKIGluZGV4IDAwMDAwMDAuLjgzZmFhZjYKQEAgLTkwNDcs NiArMTA4NzYsMjEgQEAgaW5kZXggMDAwMDAwMC4uMjI2ZGM1ZAogKyAgaCA9ICdoJwogKyAgY2Fs bCBmb28gKGcsIGgpCiArZW5kCitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZ2RiL3Nl bGZ0ZXN0LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmdkYi9zZWxmdGVzdC5leHAKK2luZGV4IDMw YTcxZGQuLjRiYjhlN2QgMTAwNjQ0CistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5nZGIvc2VsZnRl c3QuZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5nZGIvc2VsZnRlc3QuZXhwCitAQCAtOTIs NiArOTIsMTAgQEAgcHJvYyBkb19zdGVwc19hbmRfbmV4dHMge30geworIAkJc2V0IGRlc2NyaXB0 aW9uICJzdGVwIG92ZXIgdHR5YXJnIGluaXRpYWxpemF0aW9uIgorIAkJc2V0IGNvbW1hbmQgInN0 ZXAiCisgCSAgICB9CisrCSAgICAtcmUgIi4qcHl0aG9uX3NjcmlwdCA9IDAuKiRnZGJfcHJvbXB0 ICQiIHsKKysJCXNldCBkZXNjcmlwdGlvbiAic3RlcCBvdmVyIHB5dGhvbl9zY3JpcHQgaW5pdGlh bGl6YXRpb24iCisrCQlzZXQgY29tbWFuZCAic3RlcCIKKysJICAgIH0KKyAJICAgIC1yZSAiLipw cmVfc3RhdF9jaGFpbiA9IG1ha2VfY29tbWFuZF9zdGF0c19jbGVhbnVwLiokZ2RiX3Byb21wdCAk IiB7CisgCQlzZXQgZGVzY3JpcHRpb24gIm5leHQgb3ZlciBtYWtlX2NvbW1hbmRfc3RhdHNfY2xl YW51cCBhbmQgZXZlcnl0aGluZyBpdCBjYWxscyIKKyAJCXNldCBjb21tYW5kICJuZXh0IgogZGlm ZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLm11bHRpL3dhdGNocG9pbnQtbXVsdGkuYyBiL2dk Yi90ZXN0c3VpdGUvZ2RiLm11bHRpL3dhdGNocG9pbnQtbXVsdGkuYwogbmV3IGZpbGUgbW9kZSAx MDA2NDQKIGluZGV4IDAwMDAwMDAuLjE1M2MxOGIKQEAgLTk2MDksNiArMTE0NTMsMTI0IEBAIGlu ZGV4IDAwMDAwMDAuLjI5NTYwMmQKICsgIHMgOj0gJ3Rlc3QnIzAnc3RyaW5nJzsKICsgIHdyaXRl bG4ocyk7IHsgc2V0IGJyZWFrcG9pbnQgMiBoZXJlIH0KICtlbmQuCitkaWZmIC0tZ2l0IGEvZ2Ri L3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWNtZC5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRo b24vcHktY21kLmV4cAoraW5kZXggNjZkM2U1My4uMGVlNWY2MyAxMDA2NDQKKy0tLSBhL2dkYi90 ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1jbWQuZXhwCisrKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5w eXRob24vcHktY21kLmV4cAorQEAgLTIwLDI0ICsyMCw2IEBAIGlmICR0cmFjZWxldmVsIHRoZW4g eworICAgICBzdHJhY2UgJHRyYWNlbGV2ZWwKKyB9CisgCistIyBVc2FnZTogZ2RiX3B5X3Rlc3Rf bXVsdGlwbGUgTkFNRSBJTlBVVCBSRVNVTFQge0lOUFVUIFJFU1VMVH0uLi4KKy0jIFJ1biBhIHRl c3QgbmFtZWQgTkFNRSwgY29uc2lzdGluZyBvZiBtdWx0aXBsZSBsaW5lcyBvZiBpbnB1dC4KKy0j IEFmdGVyIGVhY2ggaW5wdXQgbGluZSBJTlBVVCwgc2VhcmNoIGZvciByZXN1bHQgbGluZSBSRVNV TFQuCistIyBTdWNjZWVkIGlmIGFsbCByZXN1bHRzIGFyZSBzZWVuOyBmYWlsIG90aGVyd2lzZS4K Ky1wcm9jIGdkYl9weV90ZXN0X211bHRpcGxlIHtuYW1lIGFyZ3N9IHsKKy0gICAgZ2xvYmFsIGdk Yl9wcm9tcHQKKy0gICAgZm9yZWFjaCB7aW5wdXQgcmVzdWx0fSAkYXJncyB7CistCWlmIHtbZ2Ri X3Rlc3RfbXVsdGlwbGUgJGlucHV0ICIkbmFtZSAtICRpbnB1dCIgeworLQkgICAgLXJlICJcW1xy XG5cXSooJHJlc3VsdClcW1xyXG5cXSsoJGdkYl9wcm9tcHQgfCAqPikkIiB7CistCQlwYXNzICIk bmFtZSAtICRpbnB1dCIKKy0JICAgIH0KKy0JfV19IHsKKy0JICAgIHJldHVybiAxCistCX0KKy0g ICAgfQorLSAgICByZXR1cm4gMAorLX0KKy0KKyAjIFN0YXJ0IHdpdGggYSBmcmVzaCBnZGIuCisg CisgZ2RiX2V4aXQKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZnJh bWUuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWZyYW1lLmV4cAoraW5kZXggZTNi NTYyOS4uMmE2M2Q4ZCAxMDA2NDQKKy0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1m cmFtZS5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFtZS5leHAKK0BA IC04Nyw4ICs4Nyw2IEBAIGdkYl90ZXN0ICJweXRob24gcHJpbnQgYmZyYW1lID09IGdkYi5uZXdl c3RfZnJhbWUoKSIgVHJ1ZSBcCisgCisgZ2RiX3Rlc3QgInB5dGhvbiBwcmludCAncmVzdWx0ID0n LCBmMCA9PSBmMSIgIiA9IEZhbHNlIiAidGVzdCBlcXVhbGl0eSBjb21wYXJpc29uIChmYWxzZSki CisgZ2RiX3Rlc3QgInB5dGhvbiBwcmludCAncmVzdWx0ID0nLCBmMCA9PSBmMCIgIiA9IFRydWUi ICJ0ZXN0IGVxdWFsaXR5IGNvbXBhcmlzb24gKHRydWUpIgorLWdkYl90ZXN0ICJweXRob24gcHJp bnQgJ3Jlc3VsdCA9JywgZjAgIT0gZjEiICIgPSBUcnVlIiAidGVzdCBpbmVxdWFsaXR5IGNvbXBh cmlzb24gKHRydWUpIgorLWdkYl90ZXN0ICJweXRob24gcHJpbnQgJ3Jlc3VsdCA9JywgZjAgIT0g ZjAiICIgPSBGYWxzZSIgInRlc3QgaW5lcXVhbGl0eSBjb21wYXJpc29uIChmYWxzZSkiCisgZ2Ri X3Rlc3QgInB5dGhvbiBwcmludCAncmVzdWx0ID0nLCBmMC5pc192YWxpZCAoKSIgIiA9IFRydWUi ICJ0ZXN0IEZyYW1lLmlzX3ZhbGlkIgorIGdkYl90ZXN0ICJweXRob24gcHJpbnQgJ3Jlc3VsdCA9 JywgZjAubmFtZSAoKSIgIiA9IGYyIiAidGVzdCBGcmFtZS5uYW1lIgorIGdkYl90ZXN0ICJweXRo b24gcHJpbnQgJ3Jlc3VsdCA9JywgZjAudHlwZSAoKSA9PSBnZGIuTk9STUFMX0ZSQU1FIiAiID0g VHJ1ZSIgInRlc3QgRnJhbWUudHlwZSIKK0BAIC0xMDMsMyArMTAxLDUgQEAgZ2RiX3Rlc3QgInB5 dGhvbiBwcmludCAncmVzdWx0ID0nLCBmMC5yZWFkX3ZhciAoJ3ZhcmlhYmxlX3doaWNoX3N1cmVs eV9kb2VzbnRfZXgKKyBnZGJfdGVzdCAicHl0aG9uIHByaW50ICdyZXN1bHQgPScsIGYwLnJlYWRf dmFyICgnYScpIiAiID0gMSIgInRlc3QgRnJhbWUucmVhZF92YXIgLSBzdWNjZXNzIgorIAorIGdk Yl90ZXN0ICJweXRob24gcHJpbnQgJ3Jlc3VsdCA9JywgZ2RiLnNlbGVjdGVkX2ZyYW1lICgpID09 IGYxIiAiID0gVHJ1ZSIgInRlc3QgZ2RiLnNlbGVjdGVkX2ZyYW1lIgorKworK2dkYl90ZXN0ICJw eXRob24gcHJpbnQgJ3Jlc3VsdCA9JywgZjAuYmxvY2sgKCkiICI8Z2RiLkJsb2NrIG9iamVjdCBh dCAweFxbXFs6eGRpZ2l0OlxdXF0rPiIgInRlc3QgRnJhbWUuYmxvY2siCitkaWZmIC0tZ2l0IGEv Z2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWZ1bmN0aW9uLmV4cCBiL2dkYi90ZXN0c3VpdGUv Z2RiLnB5dGhvbi9weS1mdW5jdGlvbi5leHAKK2luZGV4IGE1YzgwMjUuLjhhNWRjZGEgMTAwNjQ0 CistLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZnVuY3Rpb24uZXhwCisrKysgYi9n ZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZnVuY3Rpb24uZXhwCitAQCAtMjAsMjQgKzIwLDYg QEAgaWYgJHRyYWNlbGV2ZWwgdGhlbiB7CisgICAgIHN0cmFjZSAkdHJhY2VsZXZlbAorIH0KKyAK Ky0jIFVzYWdlOiBnZGJfcHlfdGVzdF9tdWx0aXBsZSBOQU1FIElOUFVUIFJFU1VMVCB7SU5QVVQg UkVTVUxUfS4uLgorLSMgUnVuIGEgdGVzdCBuYW1lZCBOQU1FLCBjb25zaXN0aW5nIG9mIG11bHRp cGxlIGxpbmVzIG9mIGlucHV0LgorLSMgQWZ0ZXIgZWFjaCBpbnB1dCBsaW5lIElOUFVULCBzZWFy Y2ggZm9yIHJlc3VsdCBsaW5lIFJFU1VMVC4KKy0jIFN1Y2NlZWQgaWYgYWxsIHJlc3VsdHMgYXJl IHNlZW47IGZhaWwgb3RoZXJ3aXNlLgorLXByb2MgZ2RiX3B5X3Rlc3RfbXVsdGlwbGUge25hbWUg YXJnc30geworLSAgICBnbG9iYWwgZ2RiX3Byb21wdAorLSAgICBmb3JlYWNoIHtpbnB1dCByZXN1 bHR9ICRhcmdzIHsKKy0JaWYge1tnZGJfdGVzdF9tdWx0aXBsZSAkaW5wdXQgIiRuYW1lIC0gJGlu cHV0IiB7CistCSAgICAtcmUgIlxbXHJcblxdKigkcmVzdWx0KVxbXHJcblxdKygkZ2RiX3Byb21w dCB8ICo+KSQiIHsKKy0JCXBhc3MgIiRuYW1lIC0gJGlucHV0IgorLQkgICAgfQorLQl9XX0gewor LQkgICAgcmV0dXJuIDEKKy0JfQorLSAgICB9CistICAgIHJldHVybiAwCistfQorLQorICMgU3Rh cnQgd2l0aCBhIGZyZXNoIGdkYi4KKyAKKyBnZGJfZXhpdAorZGlmZiAtLWdpdCBhL2dkYi90ZXN0 c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5leHAgYi9nZGIvdGVzdHN1aXRlL2dkYi5w eXRob24vcHktcHJldHR5cHJpbnQuZXhwCitpbmRleCBlNGE2YzM4Li4wOWFjMDY1IDEwMDY0NAor LS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXByZXR0eXByaW50LmV4cAorKysrIGIv Z2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXByZXR0eXByaW50LmV4cAorQEAgLTk5LDYgKzk5 LDggQEAgcHJvYyBydW5fbGFuZ190ZXN0cyB7bGFuZ30geworIAorICAgICBnZGJfdGVzdCAicHJp bnQgYyIgIiA9IGNvbnRhaW5lciBcImNvbnRhaW5lclwiIHdpdGggMiBlbGVtZW50cyA9IHskbmwg Ki4wLiA9IDIzLCRubCAqLjEuID0gNzIkbmx9IgorIAorKyAgICBnZGJfdGVzdCAicHJpbnQgbnVs bHN0ciIgIlJ1bnRpbWVFcnJvcjogRXJyb3IgcmVhZGluZyBzdHJpbmcgZnJvbSBpbmZlcmlvci4q IgorKworICAgICBnZGJfdGVzdCAicHJpbnQgbnN0eXBlIiAiID0geyRubCAqLjAuID0gNywkbmwg Ki4xLiA9IDQyJG5sfSIKKyAgICAgZ2RiX3Rlc3QgImNvbnRpbnVlIiAiUHJvZ3JhbSBleGl0ZWQg bm9ybWFsbHlcLiIKKyAKK2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHkt dmFsdWUuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXZhbHVlLmV4cAoraW5kZXgg ZTAxMmQ1My4uMWJkOWU1MyAxMDA2NDQKKy0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9w eS12YWx1ZS5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS12YWx1ZS5leHAK K0BAIC0zMTgsNiArMzE4LDE1IEBAIHByb2MgdGVzdF92YWx1ZV9hZnRlcl9kZWF0aCB7fSB7Cisg ICAgICJwcmludCB2YWx1ZSdzIHR5cGUiCisgfQorIAorKyMgUmVncmVzc2lvbiB0ZXN0IGZvciBh IGNhc3QgZmFpbHVyZS4gIFRoZSBidWcgd2FzIHRoYXQgaWYgd2UgY2FzdCBhCisrIyB2YWx1ZSB0 byBpdHMgb3duIHR5cGUsIGdkYiBjb3VsZCBjcmFzaC4gIFRoaXMgaGFwcGVuZWQgYmVjYXVzZSB3 ZQorKyMgY291bGQgZW5kIHVwIGRvdWJsZS1mcmVlaW5nIGEgc3RydWN0IHZhbHVlLgorK3Byb2Mg dGVzdF9jYXN0X3JlZ3Jlc3Npb24ge30geworKyAgZ2RiX3Rlc3QgInB5dGhvbiB2ID0gZ2RiLlZh bHVlKDUpIiAiIiAiY3JlYXRlIHZhbHVlIGZvciBjYXN0IHRlc3QiCisrICBnZGJfdGVzdCAicHl0 aG9uIHYgPSB2LmNhc3Qodi50eXBlKSIgIiIgImNhc3QgdmFsdWUgZm9yIGNhc3QgdGVzdCIKKysg IGdkYl90ZXN0ICJweXRob24gcHJpbnQgdiIgIjUiICJwcmludCB2YWx1ZSBmb3IgY2FzdCB0ZXN0 IgorK30KKysKKyAjIFJlZ3Jlc3Npb24gdGVzdCBmb3IgaW52YWxpZCBzdWJzY3JpcHQgb3BlcmF0 aW9ucy4gIFRoZSBidWcgd2FzIHRoYXQKKyAjIHRoZSB0eXBlIG9mIHRoZSB2YWx1ZSB3YXMgbm90 IGJlaW5nIGNoZWNrZWQgYmVmb3JlIGFsbG93aW5nIGEKKyAjIHN1YnNjcmlwdCBvcGVyYXRpb24g dG8gcHJvY2VlZC4KK0BAIC00NTUsNiArNDY0LDcgQEAgdGVzdF92YWx1ZV9pbl9pbmZlcmlvcgor IHRlc3RfaW5mZXJpb3JfZnVuY3Rpb25fY2FsbAorIHRlc3RfbGF6eV9zdHJpbmdzCisgdGVzdF92 YWx1ZV9hZnRlcl9kZWF0aAorK3Rlc3RfY2FzdF9yZWdyZXNzaW9uCisgCisgIyBUaGUgZm9sbG93 aW5nIHRlc3QgcmVjb21waWxlcyB0aGUgYmluYXJ5IHRvIHRlc3QgZWl0aGVyIEMgb3IgQysrCisg IyB2YWx1ZXMuIAogZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvd2F0Y2hw b2ludC1mb3JrLWNoaWxkLmMgYi9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL3dhdGNocG9pbnQt Zm9yay1jaGlsZC5jCiBuZXcgZmlsZSBtb2RlIDEwMDY0NAogaW5kZXggMDAwMDAwMC4uYTJhZDI5 YQpAQCAtMTAyNjIsNiArMTIyMjQsMTggQEAgaW5kZXggMDAwMDAwMC4uMzFmNzY1NgogKwogK2V4 dGVybiB2b2lkIG1hcmtlciAodm9pZCk7CiArZXh0ZXJuIHZvaWQgZm9ya29mZiAoaW50IG5yKTsK K2RpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9s aWIvZ2RiLmV4cAoraW5kZXggNWEzZjFmYy4uNjI0NjZmOCAxMDA2NDQKKy0tLSBhL2dkYi90ZXN0 c3VpdGUvbGliL2dkYi5leHAKKysrKyBiL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAKK0BAIC0y OCw2ICsyOCw3IEBAIGlmIHskdG9vbCA9PSAiIn0geworIH0KKyAKKyBsb2FkX2xpYiBsaWJnbG9z cy5leHAKKytsb2FkX2xpYiBweXRob24tc3VwcG9ydC5leHAKKyAKKyBnbG9iYWwgR0RCCisgCiBk aWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9saWIvcGFzY2FsLmV4cCBiL2dkYi90ZXN0c3VpdGUv bGliL3Bhc2NhbC5leHAKIGluZGV4IDg5MWRhMzcuLjIzNmM1Y2EgMTAwNjQ0CiAtLS0gYS9nZGIv dGVzdHN1aXRlL2xpYi9wYXNjYWwuZXhwCkBAIC0xMDI5Nyw4ICsxMjI3MSw2NyBAQCBpbmRleCA4 OTFkYTM3Li4yMzZjNWNhIDEwMDY0NAogICAgICB9CiAgICAgIHNldCBwYXNjYWxfaW5pdF9kb25l IDEKICB9ICAgCitkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9saWIvcHl0aG9uLXN1cHBvcnQu ZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9saWIvcHl0aG9uLXN1cHBvcnQuZXhwCituZXcgZmlsZSBtb2Rl IDEwMDY0NAoraW5kZXggMDAwMDAwMC4uYjhlOTgzNgorLS0tIC9kZXYvbnVsbAorKysrIGIvZ2Ri L3Rlc3RzdWl0ZS9saWIvcHl0aG9uLXN1cHBvcnQuZXhwCitAQCAtMCwwICsxLDUzIEBACisrZ2xv YmFsIHB5dGhvbl9zdXBwb3J0ZWRfc2F2ZWQKKysKKysjIFJldHVybiAxIGlmIFB5dGhvbiBzY3Jp cHRpbmcgaXMgc3VwcG9ydGVkIGluIEdEQiwgMCBpZiBub3QuCisrcHJvYyBweXRob25fc3VwcG9y dGVkIHsgfSB7CisrICBnbG9iYWwgZ2RiX3Byb21wdAorKyAgZ2xvYmFsIHB5dGhvbl9zdXBwb3J0 ZWRfc2F2ZWQKKysKKysgIGlmIFtpbmZvIGV4aXN0cyBweXRob25fc3VwcG9ydGVkX3NhdmVkXSB7 CisrICAgICAgdmVyYm9zZSAicHl0aG9uX3N1cHBvcnRlZDogIHJldHVybmluZyBzYXZlZCAkcHl0 aG9uX3N1cHBvcnRlZF9zYXZlZCIgMgorKyAgICAgIHJldHVybiAkcHl0aG9uX3N1cHBvcnRlZF9z YXZlZAorKyAgfQorKworKyAgZ2RiX3Rlc3RfbXVsdGlwbGUgInB5dGhvbiBwcmludCAnaGVsbG8s IHdvcmxkISciICJ2ZXJpZnkgcHl0aG9uIHN1cHBvcnQiIHsKKysgICAgLXJlICJub3Qgc3VwcG9y dGVkLiokZ2RiX3Byb21wdCAkIgl7CisrICAgICAgcmV0dXJuIFtzZXQgcHl0aG9uX3N1cHBvcnRl ZF9zYXZlZCAwXQorKyAgICB9CisrICAgIC1yZSAiJGdkYl9wcm9tcHQgJCIJeworKyAgICAgIHJl dHVybiBbc2V0IHB5dGhvbl9zdXBwb3J0ZWRfc2F2ZWQgMV0KKysgICAgfQorKyAgfQorKworKyAg cmV0dXJuIFtzZXQgcHl0aG9uX3N1cHBvcnRlZF9zYXZlZCAwXQorK30KKysKKysjIFJ1biBhIGNv bW1hbmQgaW4gR0RCLCBhbmQgcmVwb3J0IGEgZmFpbHVyZSBpZiBhIFB5dGhvbiBleGNlcHRpb24g aXMgdGhyb3duLgorKyMgSWYgcmVwb3J0X3Bhc3MgaXMgdHJ1ZSwgcmVwb3J0IGEgcGFzcyBpZiBu byBleGNlcHRpb24gaXMgdGhyb3duLgorK3Byb2MgZ2RiX3B5X3Rlc3Rfc2lsZW50X2NtZCB7Y21k IG5hbWUgcmVwb3J0X3Bhc3N9IHsKKysgIGdsb2JhbCBnZGJfcHJvbXB0CisrCisrICBnZGJfdGVz dF9tdWx0aXBsZSAkY21kICRuYW1lIHsKKysgICAgICAtcmUgIlRyYWNlYmFjay4qJGdkYl9wcm9t cHQgJCIgIHsgZmFpbCAkbmFtZSB9CisrICAgICAgLXJlICIkZ2RiX3Byb21wdCAkIgkgICAgICB7 IGlmICRyZXBvcnRfcGFzcyB7IHBhc3MgJG5hbWUgfSB9CisrICB9CisrfQorKworKyMgVXNhZ2U6 IGdkYl9weV90ZXN0X211bHRpcGxlIE5BTUUgSU5QVVQgUkVTVUxUIHtJTlBVVCBSRVNVTFR9Li4u CisrIyBSdW4gYSB0ZXN0IG5hbWVkIE5BTUUsIGNvbnNpc3Rpbmcgb2YgbXVsdGlwbGUgbGluZXMg b2YgaW5wdXQuCisrIyBBZnRlciBlYWNoIGlucHV0IGxpbmUgSU5QVVQsIHNlYXJjaCBmb3IgcmVz dWx0IGxpbmUgUkVTVUxULgorKyMgU3VjY2VlZCBpZiBhbGwgcmVzdWx0cyBhcmUgc2VlbjsgZmFp bCBvdGhlcndpc2UuCisrcHJvYyBnZGJfcHlfdGVzdF9tdWx0aXBsZSB7bmFtZSBhcmdzfSB7Cisr ICAgIGdsb2JhbCBnZGJfcHJvbXB0CisrCisrICAgIGZvcmVhY2gge2lucHV0IHJlc3VsdH0gJGFy Z3MgeworKwlpZiB7W2dkYl90ZXN0X211bHRpcGxlICRpbnB1dCAiJG5hbWUgLSAkaW5wdXQiIHsK KysJICAgIC1yZSAiXFtcclxuXF0qKCRyZXN1bHQpXFtcclxuXF0rKCRnZGJfcHJvbXB0IHwgKj4p JCIgeworKwkJcGFzcyAiJG5hbWUgLSAkaW5wdXQiCisrCSAgICB9CisrCX1dfSB7CisrCSAgICBy ZXR1cm4gMQorKwl9CisrICAgIH0KKysgICAgcmV0dXJuIDAKKyt9CiBkaWZmIC0tZ2l0IGEvZ2Ri L3RvcC5jIGIvZ2RiL3RvcC5jCi1pbmRleCA3MDJlMDViLi5hNDFjZGM2IDEwMDY0NAoraW5kZXgg ZTBmZWJhNS4uZTg5ODFkZCAxMDA2NDQKIC0tLSBhL2dkYi90b3AuYwogKysrIGIvZ2RiL3RvcC5j CiBAQCAtMzQzLDYgKzM0Myw3IEBAIHZvaWQKQEAgLTEwMzY3LDEwICsxMjQwMCwxMCBAQCBpbmRl eCBhMWM0NGYyLi4wMzZkOTM5IDEwMDY0NAogIAogIHN0YXRpYyB2b2lkCiBkaWZmIC0tZ2l0IGEv Z2RiL3V0aWxzLmMgYi9nZGIvdXRpbHMuYwotaW5kZXggMmI1NTQ0OS4uNmI0ODFjZCAxMDA2NDQK K2luZGV4IDk4NWYyMTkuLmNjYjA2OGUgMTAwNjQ0CiAtLS0gYS9nZGIvdXRpbHMuYwogKysrIGIv Z2RiL3V0aWxzLmMKLUBAIC0yMTk4LDYgKzIxOTgsMzYgQEAgc2V0X2JhdGNoX2ZsYWdfYW5kX21h a2VfY2xlYW51cF9yZXN0b3JlX3BhZ2VfaW5mbyAodm9pZCkKK0BAIC0yMjA2LDYgKzIyMDYsMzYg QEAgc2V0X2JhdGNoX2ZsYWdfYW5kX21ha2VfY2xlYW51cF9yZXN0b3JlX3BhZ2VfaW5mbyAodm9p ZCkKICAgIHJldHVybiBiYWNrX3RvOwogIH0KICAKQEAgLTEwNDA4LDcgKzEyNDQxLDcgQEAgaW5k ZXggMmI1NTQ0OS4uNmI0ODFjZCAxMDA2NDQKICAKICBzdGF0aWMgdm9pZAogZGlmZiAtLWdpdCBh L2dkYi92YWxhcml0aC5jIGIvZ2RiL3ZhbGFyaXRoLmMKLWluZGV4IGYyMDBiMmMuLjQ5MjFiNTQg MTAwNjQ0CitpbmRleCAxOGU4OGI3Li45ZjkwYWNiIDEwMDY0NAogLS0tIGEvZ2RiL3ZhbGFyaXRo LmMKICsrKyBiL2dkYi92YWxhcml0aC5jCiBAQCAtMTY1LDEyICsxNjUsMjYgQEAgdmFsdWVfc3Vi c2NyaXB0IChzdHJ1Y3QgdmFsdWUgKmFycmF5LCBMT05HRVNUIGluZGV4KQpAQCAtMTA1MDIsNyAr MTI1MzUsNyBAQCBpbmRleCBmMjAwYjJjLi40OTIxYjU0IDEwMDY0NAogIH0KICAKIGRpZmYgLS1n aXQgYS9nZGIvdmFsb3BzLmMgYi9nZGIvdmFsb3BzLmMKLWluZGV4IGM2NmM0MWUuLjhkNzYyNTkg MTAwNjQ0CitpbmRleCBmZGJiNzAyLi5mOTNmOTRhIDEwMDY0NAogLS0tIGEvZ2RiL3ZhbG9wcy5j CiArKysgYi9nZGIvdmFsb3BzLmMKIEBAIC0zOCw2ICszOCw3IEBACkBAIC0xMDUxMyw3ICsxMjU0 Niw3IEBAIGluZGV4IGM2NmM0MWUuLjhkNzYyNTkgMTAwNjQ0CiAgCiAgI2luY2x1ZGUgPGVycm5v Lmg+CiAgI2luY2x1ZGUgImdkYl9zdHJpbmcuaCIKLUBAIC05MDEsNiArOTAyLDY1IEBAIHZhbHVl X29uZSAoc3RydWN0IHR5cGUgKnR5cGUsIGVudW0gbHZhbF90eXBlIGx2KQorQEAgLTkwNyw2ICs5 MDgsNjUgQEAgdmFsdWVfb25lIChzdHJ1Y3QgdHlwZSAqdHlwZSwgZW51bSBsdmFsX3R5cGUgbHYp CiAgICByZXR1cm4gdmFsOwogIH0KICAKQEAgLTEwNTc5LDcgKzEyNjEyLDcgQEAgaW5kZXggYzY2 YzQxZS4uOGQ3NjI1OSAxMDA2NDQKICAvKiBIZWxwZXIgZnVuY3Rpb24gZm9yIHZhbHVlX2F0LCB2 YWx1ZV9hdF9sYXp5LCBhbmQgdmFsdWVfYXRfbGF6eV9zdGFjay4gICovCiAgCiAgc3RhdGljIHN0 cnVjdCB2YWx1ZSAqCi1AQCAtOTk5LDE1ICsxMDU5LDIxIEBAIHZhbHVlX2ZldGNoX2xhenkgKHN0 cnVjdCB2YWx1ZSAqdmFsKQorQEAgLTEwMDUsMTUgKzEwNjUsMjEgQEAgdmFsdWVfZmV0Y2hfbGF6 eSAoc3RydWN0IHZhbHVlICp2YWwpCiAgICAgIH0KICAgIGVsc2UgaWYgKFZBTFVFX0xWQUwgKHZh bCkgPT0gbHZhbF9tZW1vcnkpCiAgICAgIHsKQEAgLTEwNjA4LDcgKzEyNjQxLDcgQEAgaW5kZXgg YzY2YzQxZS4uOGQ3NjI1OSAxMDA2NDQKICAJfQogICAgICB9CiAgICBlbHNlIGlmIChWQUxVRV9M VkFMICh2YWwpID09IGx2YWxfcmVnaXN0ZXIpCi1AQCAtMTQxOCw3ICsxNDg0LDE4IEBAIGFkZHJl c3Nfb2ZfdmFyaWFibGUgKHN0cnVjdCBzeW1ib2wgKnZhciwgc3RydWN0IGJsb2NrICpiKQorQEAg LTE0MjcsNyArMTQ5MywxOCBAQCBhZGRyZXNzX29mX3ZhcmlhYmxlIChzdHJ1Y3Qgc3ltYm9sICp2 YXIsIHN0cnVjdCBibG9jayAqYikKICAgIGlmICgoVkFMVUVfTFZBTCAodmFsKSA9PSBsdmFsX21l bW9yeSAmJiB2YWx1ZV9sYXp5ICh2YWwpKQogICAgICAgIHx8IFRZUEVfQ09ERSAodHlwZSkgPT0g VFlQRV9DT0RFX0ZVTkMpCiAgICAgIHsKQEAgLTEwNjI4LDcgKzEyNjYxLDcgQEAgaW5kZXggYzY2 YzQxZS4uOGQ3NjI1OSAxMDA2NDQKICAKICAgICAgICByZXR1cm4gdmFsdWVfZnJvbV9wb2ludGVy IChsb29rdXBfcG9pbnRlcl90eXBlICh0eXBlKSwgYWRkcik7CiAgICAgIH0KLUBAIC0xNTI2LDYg KzE2MDMsNyBAQCBzdHJ1Y3QgdmFsdWUgKgorQEAgLTE1MzUsNiArMTYxMiw3IEBAIHN0cnVjdCB2 YWx1ZSAqCiAgdmFsdWVfY29lcmNlX2FycmF5IChzdHJ1Y3QgdmFsdWUgKmFyZzEpCiAgewogICAg c3RydWN0IHR5cGUgKnR5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcmcxKSk7CkBA IC0xMDYzNiw3ICsxMjY2OSw3IEBAIGluZGV4IGM2NmM0MWUuLjhkNzYyNTkgMTAwNjQ0CiAgCiAg ICAvKiBJZiB0aGUgdXNlciB0cmllcyB0byBkbyBzb21ldGhpbmcgcmVxdWlyaW5nIGEgcG9pbnRl ciB3aXRoIGFuCiAgICAgICBhcnJheSB0aGF0IGhhcyBub3QgeWV0IGJlZW4gcHVzaGVkIHRvIHRo ZSB0YXJnZXQsIHRoZW4gdGhpcyB3b3VsZAotQEAgLTE1MzUsOCArMTYxMywxMiBAQCB2YWx1ZV9j b2VyY2VfYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJnMSkKK0BAIC0xNTQ0LDggKzE2MjIsMTIgQEAg dmFsdWVfY29lcmNlX2FycmF5IChzdHJ1Y3QgdmFsdWUgKmFyZzEpCiAgICBpZiAoVkFMVUVfTFZB TCAoYXJnMSkgIT0gbHZhbF9tZW1vcnkpCiAgICAgIGVycm9yIChfKCJBdHRlbXB0IHRvIHRha2Ug YWRkcmVzcyBvZiB2YWx1ZSBub3QgbG9jYXRlZCBpbiBtZW1vcnkuIikpOwogIApAQCAtMTA2NTEs NyArMTI2ODQsNyBAQCBpbmRleCBjNjZjNDFlLi44ZDc2MjU5IDEwMDY0NAogIAogIC8qIEdpdmVu IGEgdmFsdWUgd2hpY2ggaXMgYSBmdW5jdGlvbiwgcmV0dXJuIGEgdmFsdWUgd2hpY2ggaXMgYSBw b2ludGVyCiBkaWZmIC0tZ2l0IGEvZ2RiL3ZhbHByaW50LmMgYi9nZGIvdmFscHJpbnQuYwotaW5k ZXggMWIxNmYxZi4uZWVmN2Q2MSAxMDA2NDQKK2luZGV4IGQ3OGRmNWMuLmU0ZmU3ZjkgMTAwNjQ0 CiAtLS0gYS9nZGIvdmFscHJpbnQuYwogKysrIGIvZ2RiL3ZhbHByaW50LmMKIEBAIC0zNiw2ICsz Niw3IEBACkBAIC0xMDY2Miw3ICsxMjY5NSw3IEBAIGluZGV4IDFiMTZmMWYuLmVlZjdkNjEgMTAw NjQ0CiAgCiAgI2luY2x1ZGUgPGVycm5vLmg+CiAgCi1AQCAtMjM3LDcgKzIzOCw2IEBAIHNjYWxh cl90eXBlX3AgKHN0cnVjdCB0eXBlICp0eXBlKQorQEAgLTIzOSw3ICsyNDAsNiBAQCBzY2FsYXJf dHlwZV9wIChzdHJ1Y3QgdHlwZSAqdHlwZSkKICAgICAgY2FzZSBUWVBFX0NPREVfU1RSVUNUOgog ICAgICBjYXNlIFRZUEVfQ09ERV9VTklPTjoKICAgICAgY2FzZSBUWVBFX0NPREVfU0VUOgpAQCAt MTA2NzAsNyArMTI3MDMsNyBAQCBpbmRleCAxYjE2ZjFmLi5lZWY3ZDYxIDEwMDY0NAogICAgICBj YXNlIFRZUEVfQ09ERV9CSVRTVFJJTkc6CiAgICAgICAgcmV0dXJuIDA7CiAgICAgIGRlZmF1bHQ6 Ci1AQCAtMTExMSw2ICsxMTExLDcgQEAgdmFsX3ByaW50X2FycmF5X2VsZW1lbnRzIChzdHJ1Y3Qg dHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKnZhbGFkZHIsCitAQCAtMTExNSw2ICsxMTE1LDcg QEAgdmFsX3ByaW50X2FycmF5X2VsZW1lbnRzIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2Ri X2J5dGUgKnZhbGFkZHIsCiAgewogICAgdW5zaWduZWQgaW50IHRoaW5nc19wcmludGVkID0gMDsK ICAgIHVuc2lnbmVkIGxlbjsKQEAgLTEwNjc4LDcgKzEyNzExLDcgQEAgaW5kZXggMWIxNmYxZi4u ZWVmN2Q2MSAxMDA2NDQKICAgIHN0cnVjdCB0eXBlICplbHR0eXBlLCAqaW5kZXhfdHlwZTsKICAg IHVuc2lnbmVkIGVsdGxlbjsKICAgIC8qIFBvc2l0aW9uIG9mIHRoZSBhcnJheSBlbGVtZW50IHdl IGFyZSBleGFtaW5pbmcgdG8gc2VlCi1AQCAtMTExOSw5ICsxMTIwLDMzIEBAIHZhbF9wcmludF9h cnJheV9lbGVtZW50cyAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRy LAorQEAgLTExMjMsOSArMTEyNCwzMyBAQCB2YWxfcHJpbnRfYXJyYXlfZWxlbWVudHMgKHN0cnVj dCB0eXBlICp0eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKICAgIC8qIE51bWJlciBvZiBy ZXBldGl0aW9ucyB3ZSBoYXZlIGRldGVjdGVkIHNvIGZhci4gICovCiAgICB1bnNpZ25lZCBpbnQg cmVwczsKICAgIExPTkdFU1QgbG93X2JvdW5kLCBoaWdoX2JvdW5kOwpAQCAtMTA3MTQsNyArMTI3 NDcsNyBAQCBpbmRleCAxYjE2ZjFmLi5lZWY3ZDYxIDEwMDY0NAogICAgaW5kZXhfdHlwZSA9IFRZ UEVfSU5ERVhfVFlQRSAodHlwZSk7CiAgCiAgICBpZiAoZ2V0X2FycmF5X2JvdW5kcyAodHlwZSwg Jmxvd19ib3VuZCwgJmhpZ2hfYm91bmQpKQotQEAgLTExOTYsNiArMTIyMSw4IEBAIHZhbF9wcmlu dF9hcnJheV9lbGVtZW50cyAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxh ZGRyLAorQEAgLTEyMDAsNiArMTIyNSw4IEBAIHZhbF9wcmludF9hcnJheV9lbGVtZW50cyAoc3Ry dWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLAogICAgICB7CiAgICAgICAg ZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiLi4uIik7CiAgICAgIH0KQEAgLTEwNzI0LDcgKzEy NzU3LDcgQEAgaW5kZXggMWIxNmYxZi4uZWVmN2Q2MSAxMDA2NDQKICAKICAvKiBSZWFkIExFTiBi eXRlcyBvZiB0YXJnZXQgbWVtb3J5IGF0IGFkZHJlc3MgTUVNQUREUiwgcGxhY2luZyB0aGUKIGRp ZmYgLS1naXQgYS9nZGIvdmFsdWUuYyBiL2dkYi92YWx1ZS5jCi1pbmRleCA1ODA2N2U4Li44MmVm ZWYwIDEwMDY0NAoraW5kZXggMWM1MDQyOC4uOWIxYjQzOCAxMDA2NDQKIC0tLSBhL2dkYi92YWx1 ZS5jCiArKysgYi9nZGIvdmFsdWUuYwogQEAgLTM5LDYgKzM5LDcgQEAKQEAgLTEwNzY0LDcgKzEy Nzk3LDcgQEAgaW5kZXggNTgwNjdlOC4uODJlZmVmMCAxMDA2NDQKICB9CiAgCiAgDAotQEAgLTEw MDksNiArMTAxOSwyOSBAQCBzaG93X3ZhbHVlcyAoY2hhciAqbnVtX2V4cCwgaW50IGZyb21fdHR5 KQorQEAgLTEwMTAsNiArMTAyMCwyOSBAQCBzaG93X3ZhbHVlcyAoY2hhciAqbnVtX2V4cCwgaW50 IGZyb21fdHR5KQogICAgICAgIG51bV9leHBbMV0gPSAnXDAnOwogICAgICB9CiAgfQpAQCAtMTA3 OTQsNyArMTI4MjcsNyBAQCBpbmRleCA1ODA2N2U4Li44MmVmZWYwIDEwMDY0NAogIAwKICAvKiBJ bnRlcm5hbCB2YXJpYWJsZXMuICBUaGVzZSBhcmUgdmFyaWFibGVzIHdpdGhpbiB0aGUgZGVidWdn ZXIKICAgICB0aGF0IGhvbGQgdmFsdWVzIGFzc2lnbmVkIGJ5IGRlYnVnZ2VyIGNvbW1hbmRzLgot QEAgLTE1MDMsNiArMTUzNiw0MCBAQCBjYWxsX2ludGVybmFsX2Z1bmN0aW9uIChzdHJ1Y3QgZ2Ri YXJjaCAqZ2RiYXJjaCwKK0BAIC0xNTA1LDYgKzE1MzgsNDAgQEAgY2FsbF9pbnRlcm5hbF9mdW5j dGlvbiAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCiAgICByZXR1cm4gKCppZm4tPmhhbmRsZXIp IChnZGJhcmNoLCBsYW5ndWFnZSwgaWZuLT5jb29raWUsIGFyZ2MsIGFyZ3YpOwogIH0KICAKQEAg LTEwODM1LDcgKzEyODY4LDcgQEAgaW5kZXggNTgwNjdlOC4uODJlZmVmMCAxMDA2NDQKICAvKiBU aGUgJ2Z1bmN0aW9uJyBjb21tYW5kLiAgVGhpcyBkb2VzIG5vdGhpbmcgLS0gaXQgaXMganVzdCBh CiAgICAgcGxhY2Vob2xkZXIgdG8gbGV0ICJoZWxwIGZ1bmN0aW9uIE5BTUUiIHdvcmsuICBUaGlz IGlzIGFsc28gdXNlZCBhcwogICAgIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgc3ViLWNvbW1h bmQgdGhhdCBpcyBjcmVhdGVkIHdoZW4KLUBAIC0xNTUwLDExICsxNjE3LDEwIEBAIHByZXNlcnZl X29uZV92YWx1ZSAoc3RydWN0IHZhbHVlICp2YWx1ZSwgc3RydWN0IG9iamZpbGUgKm9iamZpbGUs CitAQCAtMTU1MiwxMSArMTYxOSwxMCBAQCBwcmVzZXJ2ZV9vbmVfdmFsdWUgKHN0cnVjdCB2YWx1 ZSAqdmFsdWUsIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAogIAkJICAgIGh0YWJfdCBjb3BpZWRf dHlwZXMpCiAgewogICAgaWYgKFRZUEVfT0JKRklMRSAodmFsdWUtPnR5cGUpID09IG9iamZpbGUp CkBAIC0xMDg0OSw3ICsxMjg4Miw3IEBAIGluZGV4IDU4MDY3ZTguLjgyZWZlZjAgMTAwNjQ0CiAg CQkJCQkJIGNvcGllZF90eXBlcyk7CiAgfQogIAotQEAgLTE1NjksMTMgKzE2MzUsMTMgQEAgcHJl c2VydmVfb25lX2ludGVybmFsdmFyIChzdHJ1Y3QgaW50ZXJuYWx2YXIgKnZhciwgc3RydWN0IG9i amZpbGUgKm9iamZpbGUsCitAQCAtMTU3MSwxMyArMTYzNywxMyBAQCBwcmVzZXJ2ZV9vbmVfaW50 ZXJuYWx2YXIgKHN0cnVjdCBpbnRlcm5hbHZhciAqdmFyLCBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmls ZSwKICAgICAgY2FzZSBJTlRFUk5BTFZBUl9JTlRFR0VSOgogICAgICAgIGlmICh2YXItPnUuaW50 ZWdlci50eXBlICYmIFRZUEVfT0JKRklMRSAodmFyLT51LmludGVnZXIudHlwZSkgPT0gb2JqZmls ZSkKICAJdmFyLT51LmludGVnZXIudHlwZQpAQCAtMTA4NjUsNyArMTI4OTgsNyBAQCBpbmRleCA1 ODA2N2U4Li44MmVmZWYwIDEwMDY0NAogICAgICAgIGJyZWFrOwogIAogICAgICBjYXNlIElOVEVS TkFMVkFSX1ZBTFVFOgotQEAgLTI0MzgsNyArMjUwNCwyNCBAQCB2YWx1ZV9mcm9tX2RlY2Zsb2F0 IChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKmRlYykKK0BAIC0yNDQyLDcgKzI1 MDgsMjQgQEAgdmFsdWVfZnJvbV9kZWNmbG9hdCAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdk Yl9ieXRlICpkZWMpCiAgc3RydWN0IHZhbHVlICoKICBjb2VyY2VfcmVmIChzdHJ1Y3QgdmFsdWUg KmFyZykKICB7CkBAIC0xMDg5MSw3ICsxMjkyNCw3IEBAIGluZGV4IDU4MDY3ZTguLjgyZWZlZjAg MTAwNjQ0CiAgCiAgICBpZiAoVFlQRV9DT0RFICh2YWx1ZV90eXBlX2FyZ190bXApID09IFRZUEVf Q09ERV9SRUYpCiAgICAgIGFyZyA9IHZhbHVlX2F0X2xhenkgKFRZUEVfVEFSR0VUX1RZUEUgKHZh bHVlX3R5cGVfYXJnX3RtcCksCi1AQCAtMjUzNiw0ICsyNjE5LDggQEAgVkFSSUFCTEUgaXMgYWxy ZWFkeSBpbml0aWFsaXplZC4iKSk7CitAQCAtMjU0MCw0ICsyNjIzLDggQEAgVkFSSUFCTEUgaXMg YWxyZWFkeSBpbml0aWFsaXplZC4iKSk7CiAgICBhZGRfcHJlZml4X2NtZCAoImZ1bmN0aW9uIiwg bm9fY2xhc3MsIGZ1bmN0aW9uX2NvbW1hbmQsIF8oIlwKICBQbGFjZWhvbGRlciBjb21tYW5kIGZv ciBzaG93aW5nIGhlbHAgb24gY29udmVuaWVuY2UgZnVuY3Rpb25zLiIpLAogIAkJICAmZnVuY3Rp b25saXN0LCAiZnVuY3Rpb24gIiwgMCwgJmNtZGxpc3QpOwpAQCAtMTA5MjQsMTYgKzEyOTU3LDMg QEAgaW5kZXggZTYzNzg0Mi4uNWYzNmFlZiAxMDA2NDQKICAKICAvKiBVc2VyIGZ1bmN0aW9uIGhh bmRsZXIuICAqLwogIAotZGlmZiAtLWdpdCBhL2dkYi92YXJvYmouYyBiL2dkYi92YXJvYmouYwot aW5kZXggZDAyMGZmZi4uMzAzZWNkZiAxMDA2NDQKLS0tLSBhL2dkYi92YXJvYmouYwotKysrIGIv Z2RiL3Zhcm9iai5jCi1AQCAtMjYsNiArMjYsOCBAQAotICNpbmNsdWRlICJnZGJjbWQuaCIKLSAj aW5jbHVkZSAiYmxvY2suaCIKLSAjaW5jbHVkZSAidmFscHJpbnQuaCIKLSsjaW5jbHVkZSAib2Jq ZmlsZXMuaCIKLSsjaW5jbHVkZSAicGFyc2VyLWRlZnMuaCIKLSAKLSAjaW5jbHVkZSAiZ2RiX2Fz c2VydC5oIgotICNpbmNsdWRlICJnZGJfc3RyaW5nLmgiCgpkaWZmIC0tZ2l0IGEvZ2RiLWZvcnRy YW4tY29tbW9uLXJlZHVjZS5wYXRjaCBiL2dkYi1mb3J0cmFuLWNvbW1vbi1yZWR1Y2UucGF0Y2gK aW5kZXggM2I4NDNiOC4uMmRmM2QzYiAxMDA2NDQKLS0tIGEvZ2RiLWZvcnRyYW4tY29tbW9uLXJl ZHVjZS5wYXRjaAorKysgYi9nZGItZm9ydHJhbi1jb21tb24tcmVkdWNlLnBhdGNoCkBAIC0xLDgg KzEsOCBAQAotSW5kZXg6IGdkYi03LjEuOTAuMjAxMDA3MTEvZ2RiL2YtbGFuZy5jCitJbmRleDog Z2RiLTcuMi41MC4yMDExMDEwNy9nZGIvZi1sYW5nLmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy4x LjkwLjIwMTAwNzExLm9yaWcvZ2RiL2YtbGFuZy5jCTIwMTAtMDYtMDMgMDA6NDE6NTUuMDAwMDAw MDAwICswMjAwCi0rKysgZ2RiLTcuMS45MC4yMDEwMDcxMS9nZGIvZi1sYW5nLmMJMjAxMC0wNy0x MyAwMDoyNDowNC4wMDAwMDAwMDAgKzAyMDAKLUBAIC01NiwyMCArNTYsNiBAQCB0eXBlZGVmIHN0 cnVjdCBzYXZlZF9iZl9zeW1udW0gU0FWRURfQkYsCistLS0gZ2RiLTcuMi41MC4yMDExMDEwNy5v cmlnL2dkYi9mLWxhbmcuYwkyMDExLTAxLTA1IDIzOjIyOjQ4LjAwMDAwMDAwMCArMDEwMAorKysr IGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL2YtbGFuZy5jCTIwMTEtMDEtMDcgMDk6MDg6NTIuMDAw MDAwMDAwICswMTAwCitAQCAtNTcsMjAgKzU3LDYgQEAgdHlwZWRlZiBzdHJ1Y3Qgc2F2ZWRfYmZf c3ltbnVtIFNBVkVEX0JGLAogIC8qIExvY2FsIGZ1bmN0aW9ucyAqLwogIAogIGV4dGVybiB2b2lk IF9pbml0aWFsaXplX2ZfbGFuZ3VhZ2UgKHZvaWQpOwpAQCAtMjMsNyArMjMsNyBAQCBJbmRleDog Z2RiLTcuMS45MC4yMDEwMDcxMS9nZGIvZi1sYW5nLmMKICAKICBzdGF0aWMgdm9pZCBmX3ByaW50 Y2hhciAoaW50IGMsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgdWlfZmlsZSAqIHN0cmVhbSk7 CiAgc3RhdGljIHZvaWQgZl9lbWl0X2NoYXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKLUBA IC00NTgsMTg1ICs0NDQsNyBAQCBfaW5pdGlhbGl6ZV9mX2xhbmd1YWdlICh2b2lkKQorQEAgLTQ2 MSwxODUgKzQ0Nyw3IEBAIF9pbml0aWFsaXplX2ZfbGFuZ3VhZ2UgKHZvaWQpCiAgICBhZGRfbGFu Z3VhZ2UgKCZmX2xhbmd1YWdlX2RlZm4pOwogIH0KICAKQEAgLTczLDggKzczLDggQEAgSW5kZXg6 IGdkYi03LjEuOTAuMjAxMDA3MTEvZ2RiL2YtbGFuZy5jCiAtc3RhdGljIFNBVkVEX0JGX1BUUiBz YXZlZF9iZl9saXN0ID0gTlVMTDsJLyogUHRyIHRvICguYmYsZnVuY3Rpb24pIAogLQkJCQkJCSAg IGxpc3QgKi8KIC1zdGF0aWMgU0FWRURfQkZfUFRSIHNhdmVkX2JmX2xpc3RfZW5kID0gTlVMTDsJ LyogUHRyIHRvIGFib3ZlIGxpc3QncyBlbmQgKi8KLS1zdGF0aWMgU0FWRURfQkZfUFRSIGN1cnJl bnRfaGVhZF9iZl9saXN0ID0gTlVMTDsJLyogQ3VycmVudCBoZWFkIG9mIGFib3ZlIGxpc3QKLS0J CQkJCQkJICovCistc3RhdGljIFNBVkVEX0JGX1BUUiBjdXJyZW50X2hlYWRfYmZfbGlzdCA9IE5V TEw7ICAgIC8qIEN1cnJlbnQgaGVhZCBvZgorLQkJCQkJCSAgICAgICBhYm92ZSBsaXN0LiAgKi8K IC0KIC1zdGF0aWMgU0FWRURfQkZfUFRSIHRtcF9iZl9wdHI7CS8qIEdlbmVyaWMgdGVtcG9yYXJ5 IGZvciB1c2UgCiAtCQkJCSAgIGluIG1hY3JvcyAqLwpAQCAtMjA5LDcgKzIwOSw3IEBAIEluZGV4 OiBnZGItNy4xLjkwLjIwMTAwNzExL2dkYi9mLWxhbmcuYwogIAogIC8qIFRoaXMgcm91dGluZSBm aW5kcyB0aGUgZmlyc3QgZW5jb3VudHJlZCBDT01NT04gYmxvY2sgbmFtZWQgIm5hbWUiIAogICAg IHRoYXQgYmVsb25ncyB0byBmdW5jdGlvbiBmdW5jbmFtZSAqLwotQEAgLTY1OSwxOTMgKzQ2Nywz IEBAIGZpbmRfY29tbW9uX2Zvcl9mdW5jdGlvbiAoY2hhciAqbmFtZSwgY2gKK0BAIC02NjIsMTkz ICs0NzAsMyBAQCBmaW5kX2NvbW1vbl9mb3JfZnVuY3Rpb24gKGNoYXIgKm5hbWUsIGNoCiAgICAg IH0KICAgIHJldHVybiAoTlVMTCk7CiAgfQpAQCAtNDAzLDEwICs0MDMsMTAgQEAgSW5kZXg6IGdk Yi03LjEuOTAuMjAxMDA3MTEvZ2RiL2YtbGFuZy5jCiAtICBzYXZlZF9mdW5jdGlvbl9saXN0ID0g TlVMTDsKIC19CiAtI2VuZGlmCi1JbmRleDogZ2RiLTcuMS45MC4yMDEwMDcxMS9nZGIvZi1sYW5n LmgKK0luZGV4OiBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9mLWxhbmcuaAogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjEuOTAuMjAxMDA3MTEub3JpZy9nZGIvZi1sYW5nLmgJMjAxMC0wNy0xMiAyMzow NzozMy4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnZGItNy4xLjkwLjIwMTAwNzExL2dkYi9mLWxhbmcu aAkyMDEwLTA3LTEzIDAwOjI0OjA0LjAwMDAwMDAwMCArMDIwMAorLS0tIGdkYi03LjIuNTAuMjAx MTAxMDcub3JpZy9nZGIvZi1sYW5nLmgJMjAxMS0wMS0wNyAwOTowMzozOC4wMDAwMDAwMDAgKzAx MDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9mLWxhbmcuaAkyMDExLTAxLTA3IDA5OjA3 OjU4LjAwMDAwMDAwMCArMDEwMAogQEAgLTc2LDE0ICs3Niw5IEBAIHR5cGVkZWYgc3RydWN0IHNh dmVkX2Y3N19jb21tb24gU0FWRURfRjcKICB0eXBlZGVmIHN0cnVjdCBjb21tb25fZW50cnkgQ09N TU9OX0VOVFJZLCAqQ09NTU9OX0VOVFJZX1BUUjsKICAKQEAgLTQyMiwxMCArNDIyLDEwIEBAIElu ZGV4OiBnZGItNy4xLjkwLjIwMTAwNzExL2dkYi9mLWxhbmcuaAogICNkZWZpbmUgQkxBTktfQ09N TU9OX05BTUVfT1JJR0lOQUwgIiNCTE5LX0NPTSIJLyogWExGIGFzc2lnbmVkICAqLwogICNkZWZp bmUgQkxBTktfQ09NTU9OX05BTUVfTUY3NyAgICAgIl9fQkxOS19fIgkvKiBNRjc3IGFzc2lnbmVk ICAqLwogICNkZWZpbmUgQkxBTktfQ09NTU9OX05BTUVfTE9DQUwgICAgIl9fQkxBTksiCS8qIExv Y2FsIEdEQiAqLwotSW5kZXg6IGdkYi03LjEuOTAuMjAxMDA3MTEvZ2RiL2YtdmFscHJpbnQuYwor SW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL2YtdmFscHJpbnQuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjEuOTAuMjAxMDA3MTEub3JpZy9nZGIvZi12YWxwcmludC5jCTIwMTAtMDctMTIg MjM6MDc6MzMuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTcuMS45MC4yMDEwMDcxMS9nZGIvZi12 YWxwcmludC5jCTIwMTAtMDctMTMgMDA6MjQ6MjUuMDAwMDAwMDAwICswMjAwCistLS0gZ2RiLTcu Mi41MC4yMDExMDEwNy5vcmlnL2dkYi9mLXZhbHByaW50LmMJMjAxMS0wMS0wNyAwOTowMzozOC4w MDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy4yLjUwLjIwMTEwMTA3L2dkYi9mLXZhbHByaW50LmMJ MjAxMS0wMS0wNyAwOTowNzo1OC4wMDAwMDAwMDAgKzAxMDAKIEBAIC0zNSwxMCArMzUsNiBAQAog ICNpbmNsdWRlICJjb21tYW5kLmgiCiAgI2luY2x1ZGUgImJsb2NrLmgiCkBAIC00MzcsNyArNDM3 LDcgQEAgSW5kZXg6IGdkYi03LjEuOTAuMjAxMDA3MTEvZ2RiL2YtdmFscHJpbnQuYwogIGV4dGVy biB2b2lkIF9pbml0aWFsaXplX2ZfdmFscHJpbnQgKHZvaWQpOwogIHN0YXRpYyB2b2lkIGluZm9f Y29tbW9uX2NvbW1hbmQgKGNoYXIgKiwgaW50KTsKICBzdGF0aWMgdm9pZCBsaXN0X2FsbF92aXNp YmxlX2NvbW1vbnMgKGNoYXIgKik7Ci1AQCAtNjAxLDY3ICs1OTcsNiBAQCBpbmZvX2NvbW1vbl9j b21tYW5kIChjaGFyICpjb21uYW1lLCBpbnQgCitAQCAtNjA0LDY3ICs2MDAsNiBAQCBpbmZvX2Nv bW1vbl9jb21tYW5kIChjaGFyICpjb21uYW1lLCBpbnQgCiAgCQkgICAgIGNvbW5hbWUsIGZ1bm5h bWUpOwogIH0KICAKCmRpZmYgLS1naXQgYS9nZGItdGVzdC1wcC1oaW50LWVycm9yLnBhdGNoIGIv Z2RiLXRlc3QtcHAtaGludC1lcnJvci5wYXRjaAppbmRleCA2ODIxM2EyLi5kZTdiZGJmIDEwMDY0 NAotLS0gYS9nZGItdGVzdC1wcC1oaW50LWVycm9yLnBhdGNoCisrKyBiL2dkYi10ZXN0LXBwLWhp bnQtZXJyb3IucGF0Y2gKQEAgLTI3LDggKzI3LDEwIEBAIGdkYi90ZXN0c3VpdGUvCiAJKiBnZGIu cHl0aG9uL3B5LXByZXR0eXByaW50LnB5IChjbGFzcyBwcF9oaW50X2Vycm9yKTogTmV3LgogCShy ZWdpc3Rlcl9wcmV0dHlfcHJpbnRlcnMpOiBSZWdpc3RlciBpdC4KIAotLS0tIGEvZ2RiL3Rlc3Rz dWl0ZS9nZGIucHl0aG9uL3B5LXByZXR0eXByaW50LmMKLSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2Ri LnB5dGhvbi9weS1wcmV0dHlwcmludC5jCitJbmRleDogZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIv dGVzdHN1aXRlL2dkYi5weXRob24vcHktcHJldHR5cHJpbnQuYworPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdk Yi03LjIuNTAuMjAxMTAxMDcub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktcHJldHR5 cHJpbnQuYwkyMDExLTAxLTAxIDE2OjMzOjQ5LjAwMDAwMDAwMCArMDEwMAorKysrIGdkYi03LjIu NTAuMjAxMTAxMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXByZXR0eXByaW50LmMJMjAx MS0wMS0wNyAwOToxMToxOC4wMDAwMDAwMDAgKzAxMDAKIEBAIC00NCw2ICs0NCwxMCBAQCBzdHJ1 Y3QgbGF6eXN0cmluZyB7CiAgICBjb25zdCBjaGFyICpsYXp5X3N0cjsKICB9OwpAQCAtNDgsOCAr NTAsMTAgQEAgZ2RiL3Rlc3RzdWl0ZS8KICAKICAgIG5zdHlwZS5lbGVtZW50cyA9IG5hcnJheTsK ICAgIG5zdHlwZS5sZW4gPSAwOwotLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXBy ZXR0eXByaW50LmV4cAotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXByZXR0eXBy aW50LmV4cAorSW5kZXg6IGdkYi03LjIuNTAuMjAxMTAxMDcvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0 aG9uL3B5LXByZXR0eXByaW50LmV4cAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjIuNTAuMjAxMTAx MDcub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktcHJldHR5cHJpbnQuZXhwCTIwMTEt MDEtMDcgMDk6MDM6MzguMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuMi41MC4yMDExMDEwNy9n ZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktcHJldHR5cHJpbnQuZXhwCTIwMTEtMDEtMDcgMDk6 MTE6MzIuMDAwMDAwMDAwICswMTAwCiBAQCAtOTcsNiArOTcsOCBAQCBwcm9jIHJ1bl9sYW5nX3Rl c3RzIHtsYW5nfSB7CiAgICAgIGdkYl90ZXN0X25vX291dHB1dCAicHl0aG9uIHBwX2xzX2VuY29k aW5nID0gJ1VURi04JyIKICAgICAgZ2RiX3Rlc3QgInByaW50IGVzdHJpbmcyIiAiXCJlbWJlZGRl ZCBcIiwgPGluY29tcGxldGUgc2VxdWVuY2UgXFxcXDMwMj4iCkBAIC01OCw5ICs2MiwxMSBAQCBn ZGIvdGVzdHN1aXRlLwogKwogICAgICBnZGJfdGVzdCAicHJpbnQgYyIgIiA9IGNvbnRhaW5lciBc ImNvbnRhaW5lclwiIHdpdGggMiBlbGVtZW50cyA9IHskbmwgKi4wLiA9IDIzLCRubCAqLjEuID0g NzIkbmx9IgogIAotICAgICBnZGJfdGVzdCAicHJpbnQgbnN0eXBlIiAiID0geyRubCAqLjAuID0g NywkbmwgKi4xLiA9IDQyJG5sfSIKLS0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1w cmV0dHlwcmludC5weQotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXByZXR0eXBy aW50LnB5CisgICAgIGdkYl90ZXN0ICJwcmludCBudWxsc3RyIiAiUnVudGltZUVycm9yOiBFcnJv ciByZWFkaW5nIHN0cmluZyBmcm9tIGluZmVyaW9yLioiCitJbmRleDogZ2RiLTcuMi41MC4yMDEx MDEwNy9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktcHJldHR5cHJpbnQucHkKKz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKy0tLSBnZGItNy4yLjUwLjIwMTEwMTA3Lm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9u L3B5LXByZXR0eXByaW50LnB5CTIwMTEtMDEtMDEgMTY6MzM6NDkuMDAwMDAwMDAwICswMTAwCisr KysgZ2RiLTcuMi41MC4yMDExMDEwNy9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktcHJldHR5 cHJpbnQucHkJMjAxMS0wMS0wNyAwOToxMToxOC4wMDAwMDAwMDAgKzAxMDAKIEBAIC0xNTYsNiAr MTU2LDE4IEBAIGNsYXNzIHBwX2xzOgogICAgICBkZWYgZGlzcGxheV9oaW50IChzZWxmKToKICAg ICAgICAgIHJldHVybiAnc3RyaW5nJwpAQCAtOTAsNCArOTYsMyBAQCBnZGIvdGVzdHN1aXRlLwog IHByZXR0eV9wcmludGVyc19kaWN0ID0ge30KICAKICByZWdpc3Rlcl9wcmV0dHlfcHJpbnRlcnMg KCkKLQoKZGlmZiAtLWdpdCBhL2dkYi5zcGVjIGIvZ2RiLnNwZWMKaW5kZXggNGM5ZGE0YS4uY2Jm YThiZCAxMDA2NDQKLS0tIGEvZ2RiLnNwZWMKKysrIGIvZ2RiLnNwZWMKQEAgLTIzLDExICsyMywx MSBAQCBOYW1lOiBnZGIlez9fd2l0aF9kZWJ1ZzotZGVidWd9CiAjIFNldCB2ZXJzaW9uIHRvIGNv bnRlbnRzIG9mIGdkYi92ZXJzaW9uLmluLgogIyBOT1RFOiB0aGUgRlNGIGdkYiB2ZXJzaW9ucyBh cmUgbnVtYmVyZWQgTi5NIGZvciBvZmZpY2lhbCByZWxlYXNlcywgbGlrZSA2LjMKICMgYW5kLCBz aW5jZSBKYW51YXJ5IDIwMDUsIFguWS5aLmRhdGUgZm9yIGRhaWx5IHNuYXBzaG90cywgbGlrZSA2 LjMuNTAuMjAwNTAxMTIgIyAoZGFpbHkgc25hcHNob3QgZnJvbSBtYWlsaW5lKSwgb3IgNi4zLjAu MjAwNDAxMTIgKGhlYWQgb2YgdGhlIHJlbGVhc2UgYnJhbmNoKS4KLVZlcnNpb246IDcuMi41MC4y MDExMDEwNAorVmVyc2lvbjogNy4yLjUwLjIwMTEwMTA3CiAKICMgVGhlIHJlbGVhc2UgYWx3YXlz IGNvbnRhaW5zIGEgbGVhZGluZyByZXNlcnZlZCBudW1iZXIsIHN0YXJ0IGl0IGF0IDEuCiAjIGB1 cHN0cmVhbScgaXMgbm90IGEgcGFydCBvZiBgbmFtZScgdG8gc3RheSBmdWxseSBycG0gZGVwZW5k ZW5jaWVzIGNvbXBhdGlibGUgZm9yIHRoZSB0ZXN0aW5nLgotUmVsZWFzZTogNyV7P193aXRoX3Vw c3RyZWFtOi51cHN0cmVhbX0le2Rpc3R9CitSZWxlYXNlOiA4JXs/X3dpdGhfdXBzdHJlYW06LnVw c3RyZWFtfSV7ZGlzdH0KIAogTGljZW5zZTogR1BMdjMrIGFuZCBHUEx2Mysgd2l0aCBleGNlcHRp b25zIGFuZCBHUEx2MisgYW5kIEdQTHYyKyB3aXRoIGV4Y2VwdGlvbnMgYW5kIEdQTCsgYW5kIExH UEx2MisgYW5kIEdGREwgYW5kIEJTRCBhbmQgUHVibGljIERvbWFpbgogR3JvdXA6IERldmVsb3Bt ZW50L0RlYnVnZ2VycwpAQCAtMTEzMiw2ICsxMTMyLDEwIEBAIGZpCiAlZW5kaWYKIAogJWNoYW5n ZWxvZworKiBGcmkgSmFuICA3IDIwMTEgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2NodmlsQHJl ZGhhdC5jb20+IC0gNy4yLjUwLjIwMTEwMTA3LTguZmMxNQorLSBSZWJhc2UgdG8gRlNGIEdEQiA3 LjIuNTAuMjAxMTAxMDcgKHdoaWNoIGlzIGEgNy4zIHByZS1yZWxlYXNlKS4KKy0gSW1wb3J0IGFy Y2hlci10cm9tZXktcHl0aG9uIChCWiA2NjYxNzcsIGJyYW5jaCB1cGRhdGUgYnkgUGhpbCBNdWxk b29uKS4KKwogKiBUdWUgSmFuICA0IDIwMTEgSmFuIEtyYXRvY2h2aWwgPGphbi5rcmF0b2Nodmls QHJlZGhhdC5jb20+IC0gNy4yLjUwLjIwMTEwMTA0LTcuZmMxNQogLSBSZWJhc2UgdG8gRlNGIEdE QiA3LjIuNTAuMjAxMTAxMDQgKHdoaWNoIGlzIGEgNy4zIHByZS1yZWxlYXNlKS4KIC0gTmV3IHRl c3RjYXNlIHB5LXByZXR0eXByaW50LmV4cDpwcmludCBoaW50X2Vycm9yIChmb3IgQlogNjExNTY5 LCBCWiA2MjkyMzYpLgoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IDVlMmEx YzkuLmNjODExNWEgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMSArMSBA QAotMTkwZTAwNzE4OWVhMTUyMmQzNDU1OWY0M2VjNDBlZWQgIGdkYi03LjIuNTAuMjAxMTAxMDQu dGFyLmJ6MgorYTQwOTIwOWU5NWNkNzE3Mjc0NDMxYjJlYWE3N2RhYzAgIGdkYi03LjIuNTAuMjAx MTAxMDcudGFyLmJ6Mgo=