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.9.50.20150531 (pre-7.10 trunk snapshot). Date: Thu, 23 Jul 2026 18:31:46 GMT Message-ID: <178483150680.1.2522424088352937662.rpms-gdb-32f92b2e340e@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: 32f92b2e340ea417a5951d7a25eb747051afa0f4 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2RiCkJyYW5jaCA6 IGZpeC1kdXAtcGF0Y2gKQ29tbWl0IDogMzJmOTJiMmUzNDBlYTQxN2E1OTUxZDdhMjVlYjc0NzA1 MWFmYTBmNApBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNv bT4KRGF0ZSAgIDogMjAxNS0wNS0zMVQyMDo0NzoyMSswMjowMApTdGF0cyAgOiArMTIyOC8tMjYw OSBpbiAzMiBmaWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3Jw bXMvZ2RiL2MvMzJmOTJiMmUzNDBlYTQxN2E1OTUxZDdhMjVlYjc0NzA1MWFmYTBmND9icmFuY2g9 Zml4LWR1cC1wYXRjaAoKTG9nOgpSZWJhc2UgdG8gRlNGIEdEQiA3LjkuNTAuMjAxNTA1MzEgKHBy ZS03LjEwIHRydW5rIHNuYXBzaG90KS4KCi0tLQpkaWZmIC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5n aXRpZ25vcmUKaW5kZXggNTRiZDgzMi4uZTU4NDY3YiAxMDA2NDQKLS0tIGEvLmdpdGlnbm9yZQor KysgYi8uZ2l0aWdub3JlCkBAIC0xLDIgKzEsMiBAQAogL2dkYi1saWJzdGRjKystdjMtcHl0aG9u LXIxNTU5NzgudGFyLmJ6MgotL2dkYi03LjkuMS50YXIueHoKKy9nZGItNy45LjUwLjIwMTUwNTMx LnRhci54egoKZGlmZiAtLWdpdCBhL2dkYi02LjMtcmVhZG5ldmVyLTIwMDUwOTA3LnBhdGNoIGIv Z2RiLTYuMy1yZWFkbmV2ZXItMjAwNTA5MDcucGF0Y2gKaW5kZXggMWU5YWRkZi4uOGVlYjU5YyAx MDA2NDQKLS0tIGEvZ2RiLTYuMy1yZWFkbmV2ZXItMjAwNTA5MDcucGF0Y2gKKysrIGIvZ2RiLTYu My1yZWFkbmV2ZXItMjAwNTA5MDcucGF0Y2gKQEAgLTExLDEwICsxMSwxMCBAQAogCiAgICAgICAg ICogZ2RiLnRleGluZm8gKEZpbGUgT3B0aW9ucyk6IERvY3VtZW50IC0tcmVhZG5ldmVyLgogCi1J bmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZG9jL2dkYi50ZXhpbmZvCitJbmRleDogZ2Ri LTcuOS41MC4yMDE1MDUyMC9nZGIvZG9jL2dkYi50ZXhpbmZvCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9kb2MvZ2RiLnRleGluZm8JMjAxNS0wMS0wMSAxNzow MTowOC4zMDg4ODEyOTIgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9kb2MvZ2Ri LnRleGluZm8JMjAxNS0wMS0wMSAxNzowMToxMC4zMDI4ODAxMjYgKzAxMDAKKy0tLSBnZGItNy45 LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDE1LTA1LTMxIDE2OjM0OjU4 LjQzNjM3OTY2MyArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2RvYy9nZGIudGV4 aW5mbwkyMDE1LTA1LTMxIDE2OjM1OjAzLjQ1MjQxNjM4MSArMDIwMAogQEAgLTEwMzIsNiArMTAz MiwxMiBAQCBSZWFkIGVhY2ggc3ltYm9sIGZpbGUncyBlbnRpcmUgc3ltYm9sIHRhCiAgdGhlIGRl ZmF1bHQsIHdoaWNoIGlzIHRvIHJlYWQgaXQgaW5jcmVtZW50YWxseSBhcyBpdCBpcyBuZWVkZWQu CiAgVGhpcyBtYWtlcyBzdGFydHVwIHNsb3dlciwgYnV0IG1ha2VzIGZ1dHVyZSBvcGVyYXRpb25z IGZhc3Rlci4KQEAgLTI4LDE5ICsyOCwxOSBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvZG9jL2dkYi50ZXhpbmZvCiAgQGVuZCB0YWJsZQogIAogIEBub2RlIE1vZGUgT3B0aW9ucwot SW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL21haW4uYworSW5kZXg6IGdkYi03LjkuNTAu MjAxNTA1MjAvZ2RiL21haW4uYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgu b3JpZy9nZGIvbWFpbi5jCTIwMTUtMDEtMDEgMTc6MDE6MDguMzEyODgxMjkwICswMTAwCi0rKysg Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbWFpbi5jCTIwMTUtMDEtMDEgMTc6MDE6MTAuMzAzODgw MTI1ICswMTAwCi1AQCAtNTkwLDYgKzU5MCw3IEBAIGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEp Ci0gICAgICAgeyJ4ZGIiLCBub19hcmd1bWVudCwgJnhkYl9jb21tYW5kcywgMX0sCistLS0gZ2Ri LTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9tYWluLmMJMjAxNS0wNS0zMSAxNjozNDo1OC40Mzkz Nzk2ODUgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9tYWluLmMJMjAxNS0wNS0z MSAxNjozNToyMC41NDc1NDE1MTggKzAyMDAKK0BAIC02MDQsNiArNjA0LDcgQEAgY2FwdHVyZWRf bWFpbiAodm9pZCAqZGF0YSkKKyAgICAgICB7InR1aSIsIG5vX2FyZ3VtZW50LCAwLCBPUFRfVFVJ fSwKICAgICAgICB7ImRieCIsIG5vX2FyZ3VtZW50LCAmZGJ4X2NvbW1hbmRzLCAxfSwKICAgICAg ICB7InJlYWRub3ciLCBub19hcmd1bWVudCwgJnJlYWRub3dfc3ltYm9sX2ZpbGVzLCAxfSwKICsg ICAgICB7InJlYWRuZXZlciIsIG5vX2FyZ3VtZW50LCAmcmVhZG5ldmVyX3N5bWJvbF9maWxlcywg MX0sCiAgICAgICAgeyJyIiwgbm9fYXJndW1lbnQsICZyZWFkbm93X3N5bWJvbF9maWxlcywgMX0s CiAgICAgICAgeyJxdWlldCIsIG5vX2FyZ3VtZW50LCAmcXVpZXQsIDF9LAogICAgICAgIHsicSIs IG5vX2FyZ3VtZW50LCAmcXVpZXQsIDF9LAotQEAgLTEyNDUsNiArMTI0Niw3IEBAIFNlbGVjdGlv biBvZiBkZWJ1Z2dlZSBhbmQgaXRzIGZpbGVzOlxuXG4KK0BAIC0xMjUzLDYgKzEyNTQsNyBAQCBT ZWxlY3Rpb24gb2YgZGVidWdnZWUgYW5kIGl0cyBmaWxlczpcblxuCiAgICAtLXNlPUZJTEUgICAg ICAgICAgVXNlIEZJTEUgYXMgc3ltYm9sIGZpbGUgYW5kIGV4ZWN1dGFibGUgZmlsZS5cblwKICAg IC0tc3ltYm9scz1TWU1GSUxFICBSZWFkIHN5bWJvbHMgZnJvbSBTWU1GSUxFLlxuXAogICAgLS1y ZWFkbm93ICAgICAgICAgIEZ1bGx5IHJlYWQgc3ltYm9sIGZpbGVzIG9uIGZpcnN0IGFjY2Vzcy5c blwKQEAgLTQ4LDEwICs0OCwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbWFp bi5jCiAgICAtLXdyaXRlICAgICAgICAgICAgU2V0IHdyaXRpbmcgaW50byBleGVjdXRhYmxlIGFu ZCBjb3JlIGZpbGVzLlxuXG5cCiAgIiksIHN0cmVhbSk7CiAgICBmcHV0c191bmZpbHRlcmVkIChf KCJcCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvc3ltZmlsZS5jCitJbmRleDogZ2Ri LTcuOS41MC4yMDE1MDUyMC9nZGIvc3ltZmlsZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41 MC4yMDE0MTIyOC5vcmlnL2dkYi9zeW1maWxlLmMJMjAxNS0wMS0wMSAxNzowMTowOC4zMTM4ODEy ODkgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9zeW1maWxlLmMJMjAxNS0wMS0w MSAxNzowMToxMC4zMDQ4ODAxMjUgKzAxMDAKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcv Z2RiL3N5bWZpbGUuYwkyMDE1LTA1LTMxIDE2OjM0OjU4LjQ0MDM3OTY5MiArMDIwMAorKysrIGdk Yi03LjkuNTAuMjAxNTA1MjAvZ2RiL3N5bWZpbGUuYwkyMDE1LTA1LTMxIDE2OjM1OjAzLjQ1NDQx NjM5NSArMDIwMAogQEAgLTgwLDYgKzgwLDcgQEAgc3RhdGljIHZvaWQgY2xlYXJfc3ltdGFiX3Vz ZXJzX2NsZWFudXAgKAogIAogIC8qIEdsb2JhbCB2YXJpYWJsZXMgb3duZWQgYnkgdGhpcyBmaWxl LiAgKi8KQEAgLTYwLDEwICs2MCwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIv c3ltZmlsZS5jCiAgCiAgLyogRnVuY3Rpb25zIHRoaXMgZmlsZSBkZWZpbmVzLiAgKi8KICAKLUlu ZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9kd2FyZjJyZWFkLmMKK0luZGV4OiBnZGItNy45 LjUwLjIwMTUwNTIwL2dkYi9kd2FyZjJyZWFkLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUw LjIwMTQxMjI4Lm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE1LTAxLTAxIDE3OjAxOjA4LjMxOTg4 MTI4NSArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2R3YXJmMnJlYWQuYwkyMDE1 LTAxLTAxIDE3OjAxOjI2Ljg4ODg3MDUxMSArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAu b3JpZy9nZGIvZHdhcmYycmVhZC5jCTIwMTUtMDUtMzEgMTY6MzQ6NTguNDQ2Mzc5NzM2ICswMjAw CisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZHdhcmYycmVhZC5jCTIwMTUtMDUtMzEgMTY6 MzU6MDMuNDU5NDE2NDMyICswMjAwCiBAQCAtNjksNiArNjksNyBAQAogICNpbmNsdWRlICJzb3Vy Y2UuaCIKICAjaW5jbHVkZSAiZmlsZXN0dWZmLmgiCkBAIC03Miw3ICs3Miw3IEBAIEluZGV4OiBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi9kd2FyZjJyZWFkLmMKICAKICAjaW5jbHVkZSA8ZmNudGwu aD4KICAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci1AQCAtMTk4OSw3ICsxOTkwLDggQEAgZHdhcmYy X2hhc19pbmZvIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZQorQEAgLTIwNTAsNyArMjA1MSw4IEBA IGR3YXJmMl9oYXNfaW5mbyAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICh2b2lkICopIG5hbWVzKTsKICAgICAgICBkd2FyZjJfcGVyX29iamZp bGUtPm9iamZpbGUgPSBvYmpmaWxlOwogICAgICB9CkBAIC04MiwxMCArODIsMTAgQEAgSW5kZXg6 IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2R3YXJmMnJlYWQuYwogIAkgICYmIGR3YXJmMl9wZXJf b2JqZmlsZS0+aW5mby5zLmFzZWN0aW9uICE9IE5VTEwKICAJICAmJiAhZHdhcmYyX3Blcl9vYmpm aWxlLT5hYmJyZXYuaXNfdmlydHVhbAogIAkgICYmIGR3YXJmMl9wZXJfb2JqZmlsZS0+YWJicmV2 LnMuYXNlY3Rpb24gIT0gTlVMTCk7Ci1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdG9w LmgKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90b3AuaAogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvdG9wLmgJMjAxNS0wMS0wMSAxNzowMTowOC4z MjA4ODEyODQgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90b3AuaAkyMDE1LTAx LTAxIDE3OjAxOjEwLjMxMDg4MDEyMSArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3Jp Zy9nZGIvdG9wLmgJMjAxNS0wNS0zMSAxNjozNDo1OC40NDgzNzk3NTEgKzAyMDAKKysrKyBnZGIt Ny45LjUwLjIwMTUwNTIwL2dkYi90b3AuaAkyMDE1LTA1LTMxIDE2OjM1OjAzLjQ1OTQxNjQzMiAr MDIwMAogQEAgLTY3LDYgKzY3LDcgQEAgZXh0ZXJuIHZvaWQgc2V0X3Byb21wdCAoY29uc3QgY2hh ciAqcyk7CiAgCiAgLyogRnJvbSByYW5kb20gcGxhY2VzLiAgKi8KCmRpZmYgLS1naXQgYS9nZGIt Ni4zLXRlc3QtcGllLTIwMDUwMTA3LnBhdGNoIGIvZ2RiLTYuMy10ZXN0LXBpZS0yMDA1MDEwNy5w YXRjaAppbmRleCAxYmQxMWVmLi45YjcyZmY4IDEwMDY0NAotLS0gYS9nZGItNi4zLXRlc3QtcGll LTIwMDUwMTA3LnBhdGNoCisrKyBiL2dkYi02LjMtdGVzdC1waWUtMjAwNTAxMDcucGF0Y2gKQEAg LTEsNDAgKzEsMzkgQEAKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUv Y29uZmlndXJlLmFjCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2Nv bmZpZ3VyZS5hYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIv dGVzdHN1aXRlL2NvbmZpZ3VyZS5hYwkyMDE1LTAxLTAxIDE3OjAwOjI2LjEyMzkwODk0OCArMDEw MAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9jb25maWd1cmUuYWMJMjAx NS0wMS0wMSAxNzowMDo0My4xNjg4OTc3NzMgKzAxMDAKLUBAIC0xMDYsNiArMTA2LDYgQEAgQUNf T1VUUFVUKFtNYWtlZmlsZSBcCi0gICBnZGIuaHAvZ2RiLmFDQy9NYWtlZmlsZSBnZGIuaHAvZ2Ri LmNvbXBhdC9NYWtlZmlsZSBcCi0gICBnZGIuaHAvZ2RiLmRlZmVjdHMvTWFrZWZpbGUgZ2RiLmd1 aWxlL01ha2VmaWxlIGdkYi5saW5lc3BlYy9NYWtlZmlsZSBcCistLS0gZ2RiLTcuOS41MC4yMDE1 MDUyMC5vcmlnL2dkYi90ZXN0c3VpdGUvY29uZmlndXJlLmFjCTIwMTUtMDUtMzEgMTY6MzQ6MDIu Mzk2OTY5NDUwICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2Nv bmZpZ3VyZS5hYwkyMDE1LTA1LTMxIDE2OjM0OjMzLjQ0MzE5NjcxMSArMDIwMAorQEAgLTExNCw1 ICsxMTQsNSBAQCBBQ19PVVRQVVQoW01ha2VmaWxlIFwKKyAgIGdkYi5ndWlsZS9NYWtlZmlsZSBn ZGIubGluZXNwZWMvTWFrZWZpbGUgXAogICAgZ2RiLm1pL01ha2VmaWxlIGdkYi5tb2R1bGEyL01h a2VmaWxlIGdkYi5tdWx0aS9NYWtlZmlsZSBcCi0tICBnZGIub2JqYy9NYWtlZmlsZSBnZGIub3Bl bmNsL01ha2VmaWxlIGdkYi5vcHQvTWFrZWZpbGUgZ2RiLnBhc2NhbC9NYWtlZmlsZSBcCi0rICBn ZGIub2JqYy9NYWtlZmlsZSBnZGIub3BlbmNsL01ha2VmaWxlIGdkYi5vcHQvTWFrZWZpbGUgZ2Ri LnBhc2NhbC9NYWtlZmlsZSBnZGIucGllL01ha2VmaWxlIFwKLSAgIGdkYi5wZXJmL01ha2VmaWxl IGdkYi5weXRob24vTWFrZWZpbGUgZ2RiLnJldmVyc2UvTWFrZWZpbGUgZ2RiLnN0YWJzL01ha2Vm aWxlIFwKKyAgIGdkYi5vYmpjL01ha2VmaWxlIGdkYi5vcGVuY2wvTWFrZWZpbGUgZ2RiLm9wdC9N YWtlZmlsZSBnZGIucGFzY2FsL01ha2VmaWxlIFwKKy0gIGdkYi5wZXJmL01ha2VmaWxlIGdkYi5w eXRob24vTWFrZWZpbGUgZ2RiLnJldmVyc2UvTWFrZWZpbGUgZ2RiLnN0YWJzL01ha2VmaWxlIFwK KysgIGdkYi5wZXJmL01ha2VmaWxlIGdkYi5waWUvTWFrZWZpbGUgZ2RiLnB5dGhvbi9NYWtlZmls ZSBnZGIucmV2ZXJzZS9NYWtlZmlsZSBnZGIuc3RhYnMvTWFrZWZpbGUgXAogICAgZ2RiLnRocmVh ZHMvTWFrZWZpbGUgZ2RiLnRyYWNlL01ha2VmaWxlIGdkYi54bWwvTWFrZWZpbGVdKQotSW5kZXg6 IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9jb25maWd1cmUKK0luZGV4OiBnZGIt Ny45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvY29uZmlndXJlCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi90ZXN0c3VpdGUvY29uZmlndXJlCTIwMTUtMDEt MDEgMTc6MDA6MjYuMTI0OTA4OTQ3ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIv dGVzdHN1aXRlL2NvbmZpZ3VyZQkyMDE1LTAxLTAxIDE3OjAwOjU5LjQ2Nzg4NzA4OCArMDEwMAot QEAgLTM0NTgsNyArMzQ1OCw3IEBAIGlmIHRlc3QgIiR7YnVpbGR9IiA9ICIke2hvc3R9IiAtYSAi JHtob3MKLSBmaQorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvdGVzdHN1aXRlL2Nv bmZpZ3VyZQkyMDE1LTA1LTMxIDE2OjMzOjUzLjE1NDkwMTc5OCArMDIwMAorKysrIGdkYi03Ljku NTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9jb25maWd1cmUJMjAxNS0wNS0zMSAxNjozNDo0OC42 NTQzMDgwNTcgKzAyMDAKK0BAIC0zNTE0LDcgKzM1MTQsNyBAQCBwcm9ncmFtX3RyYW5zZm9ybV9u YW1lPWAkYXNfZWNobyAiJHByb2dyCisgYWNfY29uZmlnX2ZpbGVzPSIkYWNfY29uZmlnX2ZpbGVz IGxpYi9wZHRyYWNlIgogIAogIAotLWFjX2NvbmZpZ19maWxlcz0iJGFjX2NvbmZpZ19maWxlcyBN YWtlZmlsZSBnZGIuYWRhL01ha2VmaWxlIGdkYi5hcmNoL01ha2VmaWxlIGdkYi5hc20vTWFrZWZp bGUgZ2RiLmJhc2UvTWFrZWZpbGUgZ2RiLmJ0cmFjZS9NYWtlZmlsZSBnZGIuY2VsbC9NYWtlZmls ZSBnZGIuY29tcGlsZS9NYWtlZmlsZSBnZGIuY3AvTWFrZWZpbGUgZ2RiLmRpc2FzbS9NYWtlZmls ZSBnZGIuZHdhcmYyL01ha2VmaWxlIGdkYi5kbGFuZy9NYWtlZmlsZSBnZGIuZm9ydHJhbi9NYWtl ZmlsZSBnZGIuZ2RiL01ha2VmaWxlIGdkYi5nby9NYWtlZmlsZSBnZGIuc2VydmVyL01ha2VmaWxl IGdkYi5qYXZhL01ha2VmaWxlIGdkYi5ocC9NYWtlZmlsZSBnZGIuaHAvZ2RiLm9iamRiZy9NYWtl ZmlsZSBnZGIuaHAvZ2RiLmJhc2UtaHAvTWFrZWZpbGUgZ2RiLmhwL2dkYi5hQ0MvTWFrZWZpbGUg Z2RiLmhwL2dkYi5jb21wYXQvTWFrZWZpbGUgZ2RiLmhwL2dkYi5kZWZlY3RzL01ha2VmaWxlIGdk Yi5ndWlsZS9NYWtlZmlsZSBnZGIubGluZXNwZWMvTWFrZWZpbGUgZ2RiLm1pL01ha2VmaWxlIGdk Yi5tb2R1bGEyL01ha2VmaWxlIGdkYi5tdWx0aS9NYWtlZmlsZSBnZGIub2JqYy9NYWtlZmlsZSBn ZGIub3BlbmNsL01ha2VmaWxlIGdkYi5vcHQvTWFrZWZpbGUgZ2RiLnBhc2NhbC9NYWtlZmlsZSBn ZGIucGVyZi9NYWtlZmlsZSBnZGIucHl0aG9uL01ha2VmaWxlIGdkYi5yZXZlcnNlL01ha2VmaWxl IGdkYi5zdGFicy9NYWtlZmlsZSBnZGIudGhyZWFkcy9NYWtlZmlsZSBnZGIudHJhY2UvTWFrZWZp bGUgZ2RiLnhtbC9NYWtlZmlsZSIKLSthY19jb25maWdfZmlsZXM9IiRhY19jb25maWdfZmlsZXMg TWFrZWZpbGUgZ2RiLmFkYS9NYWtlZmlsZSBnZGIuYXJjaC9NYWtlZmlsZSBnZGIuYXNtL01ha2Vm aWxlIGdkYi5iYXNlL01ha2VmaWxlIGdkYi5idHJhY2UvTWFrZWZpbGUgZ2RiLmNlbGwvTWFrZWZp bGUgZ2RiLmNvbXBpbGUvTWFrZWZpbGUgZ2RiLmNwL01ha2VmaWxlIGdkYi5kaXNhc20vTWFrZWZp bGUgZ2RiLmR3YXJmMi9NYWtlZmlsZSBnZGIuZGxhbmcvTWFrZWZpbGUgZ2RiLmZvcnRyYW4vTWFr ZWZpbGUgZ2RiLmdkYi9NYWtlZmlsZSBnZGIuZ28vTWFrZWZpbGUgZ2RiLnNlcnZlci9NYWtlZmls ZSBnZGIuamF2YS9NYWtlZmlsZSBnZGIuaHAvTWFrZWZpbGUgZ2RiLmhwL2dkYi5vYmpkYmcvTWFr ZWZpbGUgZ2RiLmhwL2dkYi5iYXNlLWhwL01ha2VmaWxlIGdkYi5ocC9nZGIuYUNDL01ha2VmaWxl IGdkYi5ocC9nZGIuY29tcGF0L01ha2VmaWxlIGdkYi5ocC9nZGIuZGVmZWN0cy9NYWtlZmlsZSBn ZGIuZ3VpbGUvTWFrZWZpbGUgZ2RiLmxpbmVzcGVjL01ha2VmaWxlIGdkYi5taS9NYWtlZmlsZSBn ZGIubW9kdWxhMi9NYWtlZmlsZSBnZGIubXVsdGkvTWFrZWZpbGUgZ2RiLm9iamMvTWFrZWZpbGUg Z2RiLm9wZW5jbC9NYWtlZmlsZSBnZGIub3B0L01ha2VmaWxlIGdkYi5wYXNjYWwvTWFrZWZpbGUg Z2RiLnBpZS9NYWtlZmlsZSBnZGIucGVyZi9NYWtlZmlsZSBnZGIucHl0aG9uL01ha2VmaWxlIGdk Yi5yZXZlcnNlL01ha2VmaWxlIGdkYi5zdGFicy9NYWtlZmlsZSBnZGIudGhyZWFkcy9NYWtlZmls ZSBnZGIudHJhY2UvTWFrZWZpbGUgZ2RiLnhtbC9NYWtlZmlsZSIKKy1hY19jb25maWdfZmlsZXM9 IiRhY19jb25maWdfZmlsZXMgTWFrZWZpbGUgZ2RiLmFkYS9NYWtlZmlsZSBnZGIuYXJjaC9NYWtl ZmlsZSBnZGIuYXNtL01ha2VmaWxlIGdkYi5iYXNlL01ha2VmaWxlIGdkYi5idHJhY2UvTWFrZWZp bGUgZ2RiLmNlbGwvTWFrZWZpbGUgZ2RiLmNvbXBpbGUvTWFrZWZpbGUgZ2RiLmNwL01ha2VmaWxl IGdkYi5kaXNhc20vTWFrZWZpbGUgZ2RiLmR3YXJmMi9NYWtlZmlsZSBnZGIuZGxhbmcvTWFrZWZp bGUgZ2RiLmZvcnRyYW4vTWFrZWZpbGUgZ2RiLmdkYi9NYWtlZmlsZSBnZGIuZ28vTWFrZWZpbGUg Z2RiLnNlcnZlci9NYWtlZmlsZSBnZGIuamF2YS9NYWtlZmlsZSBnZGIuZ3VpbGUvTWFrZWZpbGUg Z2RiLmxpbmVzcGVjL01ha2VmaWxlIGdkYi5taS9NYWtlZmlsZSBnZGIubW9kdWxhMi9NYWtlZmls ZSBnZGIubXVsdGkvTWFrZWZpbGUgZ2RiLm9iamMvTWFrZWZpbGUgZ2RiLm9wZW5jbC9NYWtlZmls ZSBnZGIub3B0L01ha2VmaWxlIGdkYi5wYXNjYWwvTWFrZWZpbGUgZ2RiLnBlcmYvTWFrZWZpbGUg Z2RiLnB5dGhvbi9NYWtlZmlsZSBnZGIucmV2ZXJzZS9NYWtlZmlsZSBnZGIuc3RhYnMvTWFrZWZp bGUgZ2RiLnRocmVhZHMvTWFrZWZpbGUgZ2RiLnRyYWNlL01ha2VmaWxlIGdkYi54bWwvTWFrZWZp bGUiCisrYWNfY29uZmlnX2ZpbGVzPSIkYWNfY29uZmlnX2ZpbGVzIE1ha2VmaWxlIGdkYi5hZGEv TWFrZWZpbGUgZ2RiLmFyY2gvTWFrZWZpbGUgZ2RiLmFzbS9NYWtlZmlsZSBnZGIuYmFzZS9NYWtl ZmlsZSBnZGIuYnRyYWNlL01ha2VmaWxlIGdkYi5jZWxsL01ha2VmaWxlIGdkYi5jb21waWxlL01h a2VmaWxlIGdkYi5jcC9NYWtlZmlsZSBnZGIuZGlzYXNtL01ha2VmaWxlIGdkYi5kd2FyZjIvTWFr ZWZpbGUgZ2RiLmRsYW5nL01ha2VmaWxlIGdkYi5mb3J0cmFuL01ha2VmaWxlIGdkYi5nZGIvTWFr ZWZpbGUgZ2RiLmdvL01ha2VmaWxlIGdkYi5zZXJ2ZXIvTWFrZWZpbGUgZ2RiLmphdmEvTWFrZWZp bGUgZ2RiLmd1aWxlL01ha2VmaWxlIGdkYi5saW5lc3BlYy9NYWtlZmlsZSBnZGIubWkvTWFrZWZp bGUgZ2RiLm1vZHVsYTIvTWFrZWZpbGUgZ2RiLm11bHRpL01ha2VmaWxlIGdkYi5vYmpjL01ha2Vm aWxlIGdkYi5vcGVuY2wvTWFrZWZpbGUgZ2RiLm9wdC9NYWtlZmlsZSBnZGIucGFzY2FsL01ha2Vm aWxlIGdkYi5wZXJmL01ha2VmaWxlIGdkYi5waWUvTWFrZWZpbGUgZ2RiLnB5dGhvbi9NYWtlZmls ZSBnZGIucmV2ZXJzZS9NYWtlZmlsZSBnZGIuc3RhYnMvTWFrZWZpbGUgZ2RiLnRocmVhZHMvTWFr ZWZpbGUgZ2RiLnRyYWNlL01ha2VmaWxlIGdkYi54bWwvTWFrZWZpbGUiCiAgCiAgY2F0ID5jb25m Y2FjaGUgPDxcX0FDRU9GCiAgIyBUaGlzIGZpbGUgaXMgYSBzaGVsbCBzY3JpcHQgdGhhdCBjYWNo ZXMgdGhlIHJlc3VsdHMgb2YgY29uZmlndXJlCi1AQCAtNDE5MCw2ICs0MTkwLDcgQEAgZG8KLSAg ICAgImdkYi5vcGVuY2wvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgZ2Ri Lm9wZW5jbC9NYWtlZmlsZSIgOzsKK0BAIC00MjQyLDYgKzQyNDIsNyBAQCBkbwogICAgICAiZ2Ri Lm9wdC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBnZGIub3B0L01ha2Vm aWxlIiA7OwogICAgICAiZ2RiLnBhc2NhbC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJ R19GSUxFUyBnZGIucGFzY2FsL01ha2VmaWxlIiA7OwotKyAgICAiZ2RiLnBpZS9NYWtlZmlsZSIp IENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBnZGIucGllL01ha2VmaWxlIiA7OwogICAgICAi Z2RiLnBlcmYvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgZ2RiLnBlcmYv TWFrZWZpbGUiIDs7CisrICAgICJnZGIucGllL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09O RklHX0ZJTEVTIGdkYi5waWUvTWFrZWZpbGUiIDs7CiAgICAgICJnZGIucHl0aG9uL01ha2VmaWxl IikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGdkYi5weXRob24vTWFrZWZpbGUiIDs7CiAg ICAgICJnZGIucmV2ZXJzZS9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBn ZGIucmV2ZXJzZS9NYWtlZmlsZSIgOzsKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90 ZXN0c3VpdGUvZ2RiLnBpZS9hdHRhY2guYworICAgICAiZ2RiLnN0YWJzL01ha2VmaWxlIikgQ09O RklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGdkYi5zdGFicy9NYWtlZmlsZSIgOzsKK0luZGV4OiBn ZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9hdHRhY2guYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAot KysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaC5jCTIw MTUtMDEtMDEgMTc6MDA6NDMuMTY5ODk3NzczICswMTAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUy MC9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYXR0YWNoLmMJMjAxNS0wNS0zMSAxNjozNDowMi4zOTg5 Njk0NjUgKzAyMDAKIEBAIC0wLDAgKzEsMjAgQEAKICsvKiBUaGlzIHByb2dyYW0gaXMgaW50ZW5k ZWQgdG8gYmUgc3RhcnRlZCBvdXRzaWRlIG9mIGdkYiwgYW5kIHRoZW4KICsgICBhdHRhY2hlZCB0 byBieSBnZGIuICBUaHVzLCBpdCBzaW1wbHkgc3BpbnMgaW4gYSBsb29wLiAgVGhlIGxvb3AKQEAg LTU2LDEwICs1NSwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRl L2dkYi5waWUvYXR0YWNoLmMKICsgICAgfQogKyAgcmV0dXJuIDA7CiArfQotSW5kZXg6IGdkYi03 LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaDIuYworSW5kZXg6IGdk Yi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaDIuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAot KysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaDIuYwky MDE1LTAxLTAxIDE3OjAwOjQzLjE3MDg5Nzc3MiArMDEwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1 MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2F0dGFjaDIuYwkyMDE1LTA1LTMxIDE2OjM0OjAyLjM5 ODk2OTQ2NSArMDIwMAogQEAgLTAsMCArMSwyNCBAQAogKy8qIFRoaXMgcHJvZ3JhbSBpcyBpbnRl bmRlZCB0byBiZSBzdGFydGVkIG91dHNpZGUgb2YgZ2RiLCBhbmQgdGhlbgogKyAgIGF0dGFjaGVk IHRvIGJ5IGdkYi4gIFRodXMsIGl0IHNpbXBseSBzcGlucyBpbiBhIGxvb3AuICBUaGUgbG9vcApA QCAtODUsMTAgKzg0LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3Vp dGUvZ2RiLnBpZS9hdHRhY2gyLmMKICsgICAgfQogKyAgcmV0dXJuICgwKTsKICt9Ci1JbmRleDog Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJlYWsuYworSW5kZXg6 IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2JyZWFrLmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAK LSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9icmVhay5jCTIw MTUtMDEtMDEgMTc6MDA6NDMuMTcwODk3NzcyICswMTAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUy MC9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYnJlYWsuYwkyMDE1LTA1LTMxIDE2OjM0OjAyLjM5OTk2 OTQ3MiArMDIwMAogQEAgLTAsMCArMSwxNDYgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQg b2YgR0RCLCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtMjM2LDEwICsyMzUsMTAgQEAgSW5kZXg6 IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2JyZWFrLmMKICsgICAg fQogKyAgcmV0dXJuIDA7CiArfQotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3Rz dWl0ZS9nZGIucGllL2JyZWFrMS5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVz dHN1aXRlL2dkYi5waWUvYnJlYWsxLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0w MS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi90ZXN0c3VpdGUvZ2RiLnBpZS9icmVhazEuYwkyMDE1LTAxLTAxIDE3OjAwOjQzLjE3MDg5Nzc3 MiArMDEwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2Jy ZWFrMS5jCTIwMTUtMDUtMzEgMTY6MzQ6MDIuMzk5OTY5NDcyICswMjAwCiBAQCAtMCwwICsxLDQ0 IEBACiArLyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4K ICsKQEAgLTI4NSwxMCArMjg0LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90 ZXN0c3VpdGUvZ2RiLnBpZS9icmVhazEuYwogK3ZvaWQgbWFya2VyMyAoYSwgYikgY2hhciAqYSwg KmI7IHt9CS8qIHNldCBicmVha3BvaW50IDE4IGhlcmUgKi8KICt2b2lkIG1hcmtlcjQgKGQpIGxv bmcgZDsge30JCS8qIHNldCBicmVha3BvaW50IDEzIGhlcmUgKi8KICsjZW5kaWYKLUluZGV4OiBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9jb3JlbWFrZXIuYworSW5k ZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2NvcmVtYWtlci5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAw ICswMDAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5waWUvY29y ZW1ha2VyLmMJMjAxNS0wMS0wMSAxNzowMDo0My4xNzA4OTc3NzIgKzAxMDAKKysrKyBnZGItNy45 LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9jb3JlbWFrZXIuYwkyMDE1LTA1LTMx IDE2OjM0OjAyLjM5OTk2OTQ3MiArMDIwMAogQEAgLTAsMCArMSwxNDIgQEAKICsvKiBDb3B5cmln aHQgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5OQogKyAgIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgpAQCAtNDMyLDEwICs0MzEsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAu MjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL2NvcmVtYWtlci5jCiArICByZXR1cm4gMDsK ICt9CiArCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5waWUv YXR0YWNoLmV4cAorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIu cGllL2F0dGFjaC5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDow MDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3Vp dGUvZ2RiLnBpZS9hdHRhY2guZXhwCTIwMTUtMDEtMDEgMTc6MDA6NDMuMTcxODk3NzcxICswMTAw CisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYXR0YWNoLmV4 cAkyMDE1LTA1LTMxIDE2OjM0OjAyLjQwMDk2OTQ4MCArMDIwMAogQEAgLTAsMCArMSw0MTcgQEAK ICsjICAgQ29weXJpZ2h0IDE5OTcsIDE5OTksIDIwMDIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCiArCkBAIC04NTQsMTAgKzg1MywxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvdGVzdHN1aXRlL2dkYi5waWUvYXR0YWNoLmV4cAogK2RvX2NhbGxfYXR0YWNoX3Rlc3Rz CiArCiArcmV0dXJuIDAKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUv Z2RiLnBpZS9icmVhay5leHAKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3Vp dGUvZ2RiLnBpZS9icmVhay5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0w MSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90 ZXN0c3VpdGUvZ2RiLnBpZS9icmVhay5leHAJMjAxNS0wMS0wMSAxNzowMDo0My4xNzI4OTc3NzEg KzAxMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLnBpZS9icmVh ay5leHAJMjAxNS0wNS0zMSAxNjozNDowMi40MDE5Njk0ODcgKzAyMDAKIEBAIC0wLDAgKzEsOTYy IEBACiArIyAgIENvcHlyaWdodCAxOTg4LCAxOTkwLCAxOTkxLCAxOTkyLCAxOTk0LCAxOTk1LCAx OTk2LCAxOTk3LCAxOTk4LCAxOTk5LAogKyMgICAyMDAwLCAyMDAyLCAyMDAzLCAyMDA0CkBAIC0x ODIxLDEwICsxODIwLDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3Vp dGUvZ2RiLnBpZS9icmVhay5leHAKICsgICAgc2VuZF9nZGIgInNldCBhcmdzIG1haW5cbiIKICsg ICAgZ2RiX2V4cGVjdCAtcmUgIi4qJGdkYl9wcm9tcHQgJCIge30KICt9Ci1JbmRleDogZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5waWUvY29yZWZpbGUuZXhwCitJbmRleDog Z2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5waWUvY29yZWZpbGUuZXhwCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICsw MDAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5waWUvY29yZWZp bGUuZXhwCTIwMTUtMDEtMDEgMTc6MDA6NDMuMTcyODk3NzcxICswMTAwCisrKysgZ2RiLTcuOS41 MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5waWUvY29yZWZpbGUuZXhwCTIwMTUtMDUtMzEg MTY6MzQ6MDIuNDAxOTY5NDg3ICswMjAwCiBAQCAtMCwwICsxLDIzMyBAQAogKyMgQ29weXJpZ2h0 IDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAKICsj IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgpAQCAtMjA1OSwxMCArMjA1OCwxMCBAQCBJ bmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5waWUvY29yZWZpbGUu ZXhwCiArZ2RiX3Rlc3QgInVwIiAiI1xbMC05XF0qICpcWzAtOXhhLWZIJ1xdKiBpbiAuKiBcXCgu KlxcKS4qIiAidXAgaW4gY29yZWZpbGUuZXhwIChyZWluaXQpIgogKwogK2dkYl90ZXN0ICJjb3Jl IiAiTm8gY29yZSBmaWxlIG5vdy4iCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVz dHN1aXRlL2dkYi5waWUvTWFrZWZpbGUuaW4KK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dk Yi90ZXN0c3VpdGUvZ2RiLnBpZS9NYWtlZmlsZS5pbgogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVs bAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIucGllL01ha2VmaWxlLmluCTIwMTUtMDEtMDEgMTc6MDA6 NDMuMTcyODk3NzcxICswMTAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRl L2dkYi5waWUvTWFrZWZpbGUuaW4JMjAxNS0wNS0zMSAxNjozNDowMi40MDE5Njk0ODcgKzAyMDAK IEBAIC0wLDAgKzEsMTkgQEAKICtWUEFUSCA9IEBzcmNkaXJACiArc3JjZGlyID0gQHNyY2RpckAK CmRpZmYgLS1naXQgYS9nZGItNi41LWJ6MTkwODEwLWdkYnNlcnZlci1hcmNoLWFkdmljZS5wYXRj aCBiL2dkYi02LjUtYnoxOTA4MTAtZ2Ric2VydmVyLWFyY2gtYWR2aWNlLnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNzAyMzI3Li4wMDAwMDAwCi0tLSBhL2dkYi02LjUtYnox OTA4MTAtZ2Ric2VydmVyLWFyY2gtYWR2aWNlLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjgg KzAsMCBAQAotaHR0cHM6Ly9idWd6aWxsYS5yZWRoYXQuY29tL2J1Z3ppbGxhL3Nob3dfYnVnLmNn aT9pZD0xOTA4MTAKLQotCi0yMDA2LTA5LTI2ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2No dmlsQHJlZGhhdC5jb20+Ci0KLQkqIHJlbW90ZS5jIChyZW1vdGVfd2FpdCk6IFN1Z2dlc3Rpb24g b24gY3Jhc2ggZHVlIHRvIG5vbm1hdGNoaW5nIHRhcmdldC4KLQkocmVtb3RlX2FzeW5jX3dhaXQp OiBMaWtld2lzZS4KLQotCi1JbmRleDogZ2RiLTYuOC41MC4yMDA5MDgxOC9nZGIvcmVtb3RlLmMK LT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNi44LjUwLjIwMDkwODE4Lm9yaWcvZ2RiL3JlbW90ZS5jCTIw MDktMDgtMTggMjE6MDA6MzUuMDAwMDAwMDAwICswMjAwCi0rKysgZ2RiLTYuOC41MC4yMDA5MDgx OC9nZGIvcmVtb3RlLmMJMjAwOS0wOC0xOCAyMTowNDo0Ni4wMDAwMDAwMDAgKzAyMDAKLUBAIC00 NDA4LDggKzQ0MDgsMTMgQEAgUGFja2V0OiAnJXMnXG4iKSwKLSAJICAgICAgVkVDX3NhZmVfcHVz aCAoY2FjaGVkX3JlZ190LCBldmVudC0+cmVnY2FjaGUsICZjYWNoZWRfcmVnKTsKLSAJICAgIH0K LSAKLSsJICAvKiBJdCBtYXkgYWxzbyBvY2N1ciBvbiBhbWQ2NCB3aGljaCBkZWZhdWx0cyB0byAz Mi1iaXQgaTM4NgotKwkgICAgIHRhcmdldC4gIGdkYnNlcnZlcigxKSBpcyBub3QgYXdhcmUgb2Yg dGhlIGBzZXQgYXJjaGl0ZWN0dXJlJwotKwkgICAgIG5hbWUgaXRzZWxmIGFzIGl0IGlzIG5vdCB1 c2luZyBsaWJiZmQuICAqLwotIAkgIGlmICgqcCAhPSAnOycpCi0tCSAgICBlcnJvciAoXygiUmVt b3RlIHJlZ2lzdGVyIGJhZGx5IGZvcm1hdHRlZDogJXNcbmhlcmU6ICVzIiksCi0rCSAgICBlcnJv ciAoXygiUmVtb3RlIHJlZ2lzdGVyIGJhZGx5IGZvcm1hdHRlZDogJXNcbmhlcmU6ICVzIgotKwkJ ICAgICAiXG5UcnkgdG8gbG9hZCB0aGUgZXhlY3V0YWJsZSBieSBgZmlsZScgZmlyc3QsIgotKwkJ ICAgICAiXG55b3UgbWF5IGFsc28gY2hlY2sgYHNldC9zaG93IGFyY2hpdGVjdHVyZScuIiksCi0g CQkgICBidWYsIHApOwotIAkgICsrcDsKLSAJfQoKZGlmZiAtLWdpdCBhL2dkYi02LjYtYnVpbGRp ZC1sb2NhdGUtY29yZS1hcy1hcmcucGF0Y2ggYi9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLWNvcmUt YXMtYXJnLnBhdGNoCmluZGV4IGM5OGU2ODYuLjUyM2I3ZTAgMTAwNjQ0Ci0tLSBhL2dkYi02LjYt YnVpbGRpZC1sb2NhdGUtY29yZS1hcy1hcmcucGF0Y2gKKysrIGIvZ2RiLTYuNi1idWlsZGlkLWxv Y2F0ZS1jb3JlLWFzLWFyZy5wYXRjaApAQCAtNTgsMTAgKzU4LDEwIEBAIEh0dHA6Ly9zb3VyY2V3 YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDEwLTAxL21zZzAwNTE3Lmh0bWwKIAkqIGV4ZWMuYyAo ZXhlY19maWxlX2F0dGFjaCk6IFByaW50IGEgbW9yZSB1c2VmdWwgZXJyb3IgbWVzc2FnZSBpZiB0 aGUKIAl1c2VyIGRpZCAiZ2RiIGNvcmUiLgogCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvZXhlYy5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUzMS9nZGIvZXhlYy5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9leGVjLmMJMjAxNS0wMS0wMyAy MzoxODozOC4wOTc0Mjc5MDggKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9leGVj LmMJMjAxNS0wMS0wMyAyMzoxOTowMi40NDg1NTYzOTEgKzAxMDAKKy0tLSBnZGItNy45LjUwLjIw MTUwNTMxLm9yaWcvZ2RiL2V4ZWMuYwkyMDE1LTA1LTMxIDAzOjQ4OjI5LjAwMDAwMDAwMCArMDIw MAorKysrIGdkYi03LjkuNTAuMjAxNTA1MzEvZ2RiL2V4ZWMuYwkyMDE1LTA1LTMxIDIwOjA3OjM1 LjA5Mjg3ODY4NSArMDIwMAogQEAgLTM1LDYgKzM1LDcgQEAKICAjaW5jbHVkZSAicHJvZ3NwYWNl LmgiCiAgI2luY2x1ZGUgImdkYl9iZmQuaCIKQEAgLTcwLDcgKzcwLDcgQEAgSW5kZXg6IGdkYi03 LjguNTAuMjAxNDEyMjgvZ2RiL2V4ZWMuYwogIAogICNpbmNsdWRlIDxmY250bC5oPgogICNpbmNs dWRlICJyZWFkbGluZS9yZWFkbGluZS5oIgotQEAgLTIyMiwxMiArMjIzLDI3IEBAIGV4ZWNfZmls ZV9hdHRhY2ggKGNvbnN0IGNoYXIgKmZpbGVuYW1lLAorQEAgLTI5OCwxMiArMjk5LDI3IEBAIGV4 ZWNfZmlsZV9hdHRhY2ggKGNvbnN0IGNoYXIgKmZpbGVuYW1lLAogIAogICAgICAgIGlmICghYmZk X2NoZWNrX2Zvcm1hdF9tYXRjaGVzIChleGVjX2JmZCwgYmZkX29iamVjdCwgJm1hdGNoaW5nKSkK ICAJewpAQCAtMTAxLDExICsxMDEsMTEgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L2V4ZWMuYwogIAl9CiAgCiAgICAgICAgaWYgKGJ1aWxkX3NlY3Rpb25fdGFibGUgKGV4ZWNfYmZk LCAmc2VjdGlvbnMsICZzZWN0aW9uc19lbmQpKQotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL21haW4uYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MzEvZ2RiL21haW4uYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvbWFpbi5jCTIwMTUtMDEtMDMg MjM6MTg6MzguMDk4NDI3OTEzICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbWFp bi5jCTIwMTUtMDEtMDMgMjM6MjI6MTAuMTU3NTQ2NzkyICswMTAwCi1AQCAtNDI2LDYgKzQyNiwz NiBAQCB0eXBlZGVmIHN0cnVjdCBjbWRhcmcgeworLS0tIGdkYi03LjkuNTAuMjAxNTA1MzEub3Jp Zy9nZGIvbWFpbi5jCTIwMTUtMDUtMzEgMjA6MDc6MzQuMTgzODcyODI0ICswMjAwCisrKysgZ2Ri LTcuOS41MC4yMDE1MDUzMS9nZGIvbWFpbi5jCTIwMTUtMDUtMzEgMjA6MTA6MDUuMDk1ODQ1OTM1 ICswMjAwCitAQCAtNDM1LDYgKzQzNSwzNyBAQCB0eXBlZGVmIHN0cnVjdCBjbWRhcmcgewogIC8q IERlZmluZSB0eXBlIFZFQyAoY21kYXJnX3MpLiAgKi8KICBERUZfVkVDX08gKGNtZGFyZ19zKTsK ICAKQEAgLTEyMCwxMSArMTIwLDExIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9t YWluLmMKICsKICsgIGdkYl9hc3NlcnQgKGV4ZWNfYmZkID09IE5VTEwpOwogKwotKyAgVFJZX0NB VENIIChlLCBSRVRVUk5fTUFTS19BTEwpCisrICBUUlkKICsgICAgewogKyAgICAgIGV4ZWNfZmls ZV9hdHRhY2ggKGZpbGVuYW1lLCBmcm9tX3R0eSk7CiArICAgIH0KLSsgIGlmIChlLnJlYXNvbiA8 IDApCisrICBDQVRDSCAoZSwgUkVUVVJOX01BU0tfQUxMKQogKyAgICB7CiArICAgICAgaWYgKGUu ZXJyb3IgPT0gSVNfQ09SRV9FUlJPUikKICsJewpAQCAtMTM3LDEyICsxMzcsMTMgQEAgSW5kZXg6 IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL21haW4uYwogKwl9CiArICAgICAgdGhyb3dfZXhjZXB0 aW9uIChlKTsKICsgICAgfQorKyAgRU5EX0NBVENICiArfQogKwogIHN0YXRpYyBpbnQKICBjYXB0 dXJlZF9tYWluICh2b2lkICpkYXRhKQogIHsKLUBAIC05MTAsNiArOTQwLDggQEAgY2FwdHVyZWRf bWFpbiAodm9pZCAqZGF0YSkKK0BAIC05MjMsNiArOTU0LDggQEAgY2FwdHVyZWRfbWFpbiAodm9p ZCAqZGF0YSkKICAJewogIAkgIHN5bWFyZyA9IGFyZ3Zbb3B0aW5kXTsKICAJICBleGVjYXJnID0g YXJndltvcHRpbmRdOwpAQCAtMTUxLDcgKzE1Miw3IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi9tYWluLmMKICAJICBvcHRpbmQrKzsKICAJfQogIAotQEAgLTEwNjksMTEgKzExMDEs MjYgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKK0BAIC0xMDgwLDExICsxMTEzLDI1IEBA IGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCiAgICAgICAgJiYgc3ltYXJnICE9IE5VTEwKICAg ICAgICAmJiBzdHJjbXAgKGV4ZWNhcmcsIHN5bWFyZykgPT0gMCkKICAgICAgewpAQCAtMTcxLDIz ICsxNzIsMjIgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL21haW4uYwogICAgICAg ICAgIG9wZW4gaXQsIGJldHRlciBvbmx5IHByaW50IG9uZSBlcnJvciBtZXNzYWdlLgogLSAgICAg ICAgIGNhdGNoX2NvbW1hbmRfZXJyb3JzIHJldHVybnMgbm9uLXplcm8gb24gc3VjY2VzcyEgICov CiAtICAgICAgaWYgKGNhdGNoX2NvbW1hbmRfZXJyb3JzX2NvbnN0IChleGVjX2ZpbGVfYXR0YWNo LCBleGVjYXJnLAotLQkJCQkgICAgICAhYmF0Y2hfZmxhZywgUkVUVVJOX01BU0tfQUxMKSkKKy0J CQkJICAgICAgIWJhdGNoX2ZsYWcpKQogKyAgICAgICAgIGNhdGNoX2NvbW1hbmRfZXJyb3JzIHJl dHVybnMgbm9uLXplcm8gb24gc3VjY2VzcyEKICsJIERvIG5vdCBsb2FkIEVYRUNBUkcgYXMgYSBz eW1ib2wgZmlsZSBpZiBpdCBoYXMgYmVlbiBhbHJlYWR5IHByb2Nlc3NlZAogKwkgYXMgYSBjb3Jl IGZpbGUuICAqLwotKyAgICAgIGlmIChjYXRjaF9jb21tYW5kX2Vycm9yc19jb25zdCAoZnVuYywg ZXhlY2FyZywgIWJhdGNoX2ZsYWcsCi0rCQkJCSAgICAgIFJFVFVSTl9NQVNLX0FMTCkKKysgICAg ICBpZiAoY2F0Y2hfY29tbWFuZF9lcnJvcnNfY29uc3QgKGZ1bmMsIGV4ZWNhcmcsICFiYXRjaF9m bGFnKQogKwkgICYmIGNvcmVfYmZkID09IE5VTEwpCiAgCWNhdGNoX2NvbW1hbmRfZXJyb3JzX2Nv bnN0IChzeW1ib2xfZmlsZV9hZGRfbWFpbiwgc3ltYXJnLAotIAkJCQkgICAgIWJhdGNoX2ZsYWcs IFJFVFVSTl9NQVNLX0FMTCk7CisgCQkJCSAgICAhYmF0Y2hfZmxhZyk7CiAgICAgIH0KLUluZGV4 OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jb21tb24vY29tbW9uLWV4Y2VwdGlvbnMuaAorSW5k ZXg6IGdkYi03LjkuNTAuMjAxNTA1MzEvZ2RiL2NvbW1vbi9jb21tb24tZXhjZXB0aW9ucy5oCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9jb21tb24vY29tbW9u LWV4Y2VwdGlvbnMuaAkyMDE1LTAxLTAzIDIzOjE4OjM4LjA5NzQyNzkwOCArMDEwMAotKysrIGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL2NvbW1vbi9jb21tb24tZXhjZXB0aW9ucy5oCTIwMTUtMDEt MDMgMjM6MTk6MDIuNDQ5NTU2Mzk2ICswMTAwCi1AQCAtOTksNiArOTksOSBAQCBlbnVtIGVycm9y cyB7Ci0gICAvKiBSZXF1ZXN0ZWQgZmVhdHVyZSwgbWV0aG9kLCBtZWNoYW5pc20sIGV0Yy4gaXMg bm90IHN1cHBvcnRlZC4gICovCi0gICBOT1RfU1VQUE9SVEVEX0VSUk9SLAorLS0tIGdkYi03Ljku NTAuMjAxNTA1MzEub3JpZy9nZGIvY29tbW9uL2NvbW1vbi1leGNlcHRpb25zLmgJMjAxNS0wNS0z MSAwMzo0ODoyOS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTMxL2dkYi9j b21tb24vY29tbW9uLWV4Y2VwdGlvbnMuaAkyMDE1LTA1LTMxIDIwOjA3OjM1LjA5Mzg3ODY5MiAr MDIwMAorQEAgLTEwNSw2ICsxMDUsOSBAQCBlbnVtIGVycm9ycyB7CisgICAgICAiX0VSUk9SIiBp cyBhcHBlbmRlZCB0byB0aGUgbmFtZS4gICovCisgICBNQVhfQ09NUExFVElPTlNfUkVBQ0hFRF9F UlJPUiwKICAKICsgIC8qIEF0dGVtcHQgdG8gbG9hZCBhIGNvcmUgZmlsZSBhcyBleGVjdXRhYmxl LiAgKi8KICsgIElTX0NPUkVfRVJST1IsCgpkaWZmIC0tZ2l0IGEvZ2RiLTYuNi1idWlsZGlkLWxv Y2F0ZS1zb2xpYi1taXNzaW5nLWlkcy5wYXRjaCBiL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUtc29s aWItbWlzc2luZy1pZHMucGF0Y2gKaW5kZXggOWFkN2ZjYi4uNWQzMTRlMCAxMDA2NDQKLS0tIGEv Z2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1zb2xpYi1taXNzaW5nLWlkcy5wYXRjaAorKysgYi9nZGIt Ni42LWJ1aWxkaWQtbG9jYXRlLXNvbGliLW1pc3NpbmctaWRzLnBhdGNoCkBAIC05LDEyICs5LDEy IEBAIEluZGV4OiBnZGItNy41LjUwLjIwMTMwMzEwL2dkYi9zb2xpYi1zdnI0LmMKIC0Jc3RydWN0 IGVsZl9idWlsZF9pZCAqYnVpbGRfaWQ7CiArCXN0cnVjdCBlbGZfYnVpbGRfaWQgKmJ1aWxkX2lk ID0gTlVMTDsKICAKLSAJc3RybmNweSAobmV3LT5zb19vcmlnaW5hbF9uYW1lLCBidWZmZXIsIFNP X05BTUVfTUFYX1BBVEhfU0laRSAtIDEpOwotIAluZXctPnNvX29yaWdpbmFsX25hbWVbU09fTkFN RV9NQVhfUEFUSF9TSVpFIC0gMV0gPSAnXDAnOworIAlzdHJuY3B5IChuZXdvYmotPnNvX29yaWdp bmFsX25hbWUsIGJ1ZmZlciwgU09fTkFNRV9NQVhfUEFUSF9TSVpFIC0gMSk7CisgCW5ld29iai0+ c29fb3JpZ2luYWxfbmFtZVtTT19OQU1FX01BWF9QQVRIX1NJWkUgLSAxXSA9ICdcMCc7CiAgCS8q IE1heSBnZXQgb3ZlcndyaXR0ZW4gYmVsb3cuICAqLwotIAlzdHJjcHkgKG5ldy0+c29fbmFtZSwg bmV3LT5zb19vcmlnaW5hbF9uYW1lKTsKKyAJc3RyY3B5IChuZXdvYmotPnNvX25hbWUsIG5ld29i ai0+c29fb3JpZ2luYWxfbmFtZSk7CiAgCi0tCWJ1aWxkX2lkID0gYnVpbGRfaWRfYWRkcl9nZXQg KG5ldy0+bG1faW5mby0+bF9sZCk7CistCWJ1aWxkX2lkID0gYnVpbGRfaWRfYWRkcl9nZXQgKG5l d29iai0+bG1faW5mby0+bF9sZCk7CiArCS8qIEluIHRoZSBjYXNlIHRoZSBtYWluIGV4ZWN1dGFi bGUgd2FzIGZvdW5kIGFjY29yZGluZyB0byBpdHMgYnVpbGQtaWQKICsJICAgKGZyb20gYSBjb3Jl IGZpbGUpIHByZXZlbnQgbG9hZGluZyBhIGRpZmZlcmVudCBidWlsZCBvZiBhIGxpYnJhcnkKICsJ ICAgd2l0aCBhY2NpZGVudGFsbHkgdGhlIHNhbWUgU09fTkFNRS4KQEAgLTI4LDcgKzI4LDcgQEAg SW5kZXg6IGdkYi03LjUuNTAuMjAxMzAzMTAvZ2RiL3NvbGliLXN2cjQuYwogKwkgICB0byB0aGUg b25seSBleGlzdGluZyBmaWxlIGxvYWRlZCB0aGF0IHRpbWUgLSB0aGUgZXhlY3V0YWJsZS4gICov CiArCWlmIChzeW1maWxlX29iamZpbGUgIT0gTlVMTAogKwkgICAgJiYgKHN5bWZpbGVfb2JqZmls ZS0+ZmxhZ3MgJiBPQkpGX0JVSUxEX0lEX0NPUkVfTE9BREVEKSAhPSAwKQotKwkgIGJ1aWxkX2lk ID0gYnVpbGRfaWRfYWRkcl9nZXQgKG5ldy0+bG1faW5mby0+bF9sZCk7CisrCSAgYnVpbGRfaWQg PSBidWlsZF9pZF9hZGRyX2dldCAobmV3b2JqLT5sbV9pbmZvLT5sX2xkKTsKICAJaWYgKGJ1aWxk X2lkICE9IE5VTEwpCiAgCSAgewogIAkgICAgY2hhciAqbmFtZSwgKmJ1aWxkX2lkX2ZpbGVuYW1l OwpAQCAtMzcsNyArMzcsNyBAQCBJbmRleDogZ2RiLTcuNS41MC4yMDEzMDMxMC9nZGIvc29saWIt c3ZyNC5jCiAgCSAgICAgIH0KICAJICAgIGVsc2UKIC0JICAgICAgewotLQkJZGVidWdfcHJpbnRf bWlzc2luZyAobmV3LT5zb19uYW1lLCBidWlsZF9pZF9maWxlbmFtZSk7CistCQlkZWJ1Z19wcmlu dF9taXNzaW5nIChuZXdvYmotPnNvX25hbWUsIGJ1aWxkX2lkX2ZpbGVuYW1lKTsKIC0KIC0JCS8q IEluIHRoZSBjYXNlIHRoZSBtYWluIGV4ZWN1dGFibGUgd2FzIGZvdW5kIGFjY29yZGluZyB0bwog LQkJICAgaXRzIGJ1aWxkLWlkIChmcm9tIGEgY29yZSBmaWxlKSBwcmV2ZW50IGxvYWRpbmcKQEAg LTUxLDkgKzUxLDkgQEAgSW5kZXg6IGdkYi03LjUuNTAuMjAxMzAzMTAvZ2RiL3NvbGliLXN2cjQu YwogLQkJaWYgKHN5bWZpbGVfb2JqZmlsZSAhPSBOVUxMCiAtCQkgICAgJiYgKHN5bWZpbGVfb2Jq ZmlsZS0+ZmxhZ3MKIC0JCQkmIE9CSkZfQlVJTERfSURfQ09SRV9MT0FERUQpICE9IDApCi0tCQkg IG5ldy0+c29fbmFtZVswXSA9IDA7CistCQkgIG5ld29iai0+c29fbmFtZVswXSA9IDA7CiAtCSAg ICAgIH0KLSsJICAgICAgZGVidWdfcHJpbnRfbWlzc2luZyAobmV3LT5zb19uYW1lLCBidWlsZF9p ZF9maWxlbmFtZSk7CisrCSAgICAgIGRlYnVnX3ByaW50X21pc3NpbmcgKG5ld29iai0+c29fbmFt ZSwgYnVpbGRfaWRfZmlsZW5hbWUpOwogIAogIAkgICAgeGZyZWUgKGJ1aWxkX2lkX2ZpbGVuYW1l KTsKICAJICAgIHhmcmVlIChidWlsZF9pZCk7CgpkaWZmIC0tZ2l0IGEvZ2RiLTYuNi1idWlsZGlk LWxvY2F0ZS5wYXRjaCBiL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUucGF0Y2gKaW5kZXggNzFkZTRk MC4uZTkyOGVkMCAxMDA2NDQKLS0tIGEvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS5wYXRjaAorKysg Yi9nZGItNi42LWJ1aWxkaWQtbG9jYXRlLnBhdGNoCkBAIC0xLDcgKzEsNyBAQAotSW5kZXg6IGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL2NvcmVsb3cuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1 MjAvZ2RiL2NvcmVsb3cuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3Jp Zy9nZGIvY29yZWxvdy5jCTIwMTUtMDEtMDMgMjM6MTE6NTQuMDE4MjcwMDkwICswMTAwCi0rKysg Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvY29yZWxvdy5jCTIwMTUtMDEtMDMgMjM6MTI6MDguNjkx MzQ5NDU0ICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9jb3JlbG93LmMJ MjAxNS0wNS0zMSAxNjozODo1NS4xMjMxMTIyMjcgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUw NTIwL2dkYi9jb3JlbG93LmMJMjAxNS0wNS0zMSAxNjozODo1Ny42MDExMzAzNjYgKzAyMDAKIEBA IC00NSw2ICs0NSwxMCBAQAogICNpbmNsdWRlICJnZGJfYmZkLmgiCiAgI2luY2x1ZGUgImNvbXBs ZXRlci5oIgpAQCAtNjcsNyArNjcsNyBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIv Y29yZWxvdy5jCiAgLyogVGhpcyByb3V0aW5lIG9wZW5zIGFuZCBzZXRzIHVwIHRoZSBjb3JlIGZp bGUgYmZkLiAgKi8KICAKICBzdGF0aWMgdm9pZAotQEAgLTQwNSw2ICs0NTYsMTQgQEAgY29yZV9v cGVuIChjb25zdCBjaGFyICphcmcsIGludCBmcm9tX3R0eQorQEAgLTQwNCw2ICs0NTUsMTQgQEAg Y29yZV9vcGVuIChjb25zdCBjaGFyICphcmcsIGludCBmcm9tX3R0eQogIAlzd2l0Y2hfdG9fdGhy ZWFkICh0aHJlYWQtPnB0aWQpOwogICAgICB9CiAgCkBAIC04Miw3ICs4Miw3IEBAIEluZGV4OiBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jb3JlbG93LmMKICAgIHBvc3RfY3JlYXRlX2luZmVyaW9y ICgmY29yZV9vcHMsIGZyb21fdHR5KTsKICAKICAgIC8qIE5vdyBnbyB0aHJvdWdoIHRoZSB0YXJn ZXQgc3RhY2sgbG9va2luZyBmb3IgdGhyZWFkcyBzaW5jZSB0aGVyZQotQEAgLTEwMzUsNCArMTA5 NCwxMSBAQCBfaW5pdGlhbGl6ZV9jb3JlbG93ICh2b2lkKQorQEAgLTEwNTgsNCArMTExNywxMSBA QCBfaW5pdGlhbGl6ZV9jb3JlbG93ICh2b2lkKQogICAgaW5pdF9jb3JlX29wcyAoKTsKICAKICAg IGFkZF90YXJnZXRfd2l0aF9jb21wbGV0ZXIgKCZjb3JlX29wcywgZmlsZW5hbWVfY29tcGxldGVy KTsKQEAgLTk0LDExICs5NCwxMSBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvY29y ZWxvdy5jCiArCQkJICAgTlVMTCwgTlVMTCwgTlVMTCwKICsJCQkgICAmc2V0bGlzdCwgJnNob3ds aXN0KTsKICB9Ci1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZG9jL2dkYi50ZXhpbmZv CitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZG9jL2dkYi50ZXhpbmZvCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9kb2MvZ2RiLnRleGluZm8JMjAx NS0wMS0wMyAyMzoxMTo1NC4wMTgyNzAwOTAgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4 L2dkYi9kb2MvZ2RiLnRleGluZm8JMjAxNS0wMS0wMyAyMzoxMjowOC43MDEzNDk1MDkgKzAxMDAK LUBAIC0xNzkzMCw2ICsxNzkzMCwyNyBAQCBpbmZvcm1hdGlvbiBmaWxlcy4KKy0tLSBnZGItNy45 LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDE1LTA1LTMxIDE2OjM4OjU1 LjEzNzExMjMzMCArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2RvYy9nZGIudGV4 aW5mbwkyMDE1LTA1LTMxIDE2OjM4OjU3LjYxMjEzMDQ0NyArMDIwMAorQEAgLTE4MjU0LDYgKzE4 MjU0LDI3IEBAIGluZm9ybWF0aW9uIGZpbGVzLgogIAogIEBlbmQgdGFibGUKICAKQEAgLTEyNiwx MCArMTI2LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9kb2MvZ2RiLnRleGlu Zm8KICBAY2luZGV4IEBjb2Rley5nbnVfZGVidWdsaW5rfSBzZWN0aW9ucwogIEBjaW5kZXggZGVi dWcgbGluayBzZWN0aW9ucwogIEEgZGVidWcgbGluayBpcyBhIHNwZWNpYWwgc2VjdGlvbiBvZiB0 aGUgZXhlY3V0YWJsZSBmaWxlIG5hbWVkCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIv c29saWItc3ZyNC5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvc29saWItc3ZyNC5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9zb2xpYi1zdnI0 LmMJMjAxNS0wMS0wMyAyMzoxMTo1NC4wMTgyNzAwOTAgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi9zb2xpYi1zdnI0LmMJMjAxNS0wMS0wMyAyMzoxMjowOC43MDIzNDk1MTQgKzAx MDAKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL3NvbGliLXN2cjQuYwkyMDE1LTA1 LTMxIDE2OjM4OjU1LjE0MjExMjM2NiArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2Ri L3NvbGliLXN2cjQuYwkyMDE1LTA1LTMxIDE2OjQwOjMzLjU5MzgxOTcwMiArMDIwMAogQEAgLTQ1 LDYgKzQ1LDcgQEAKICAjaW5jbHVkZSAiYXV4di5oIgogICNpbmNsdWRlICJnZGJfYmZkLmgiCkBA IC0xMzgsMjIgKzEzOCwyMiBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvc29saWIt c3ZyNC5jCiAgCiAgc3RhdGljIHN0cnVjdCBsaW5rX21hcF9vZmZzZXRzICpzdnI0X2ZldGNoX2xp bmtfbWFwX29mZnNldHMgKHZvaWQpOwogIHN0YXRpYyBpbnQgc3ZyNF9oYXZlX2xpbmtfbWFwX29m ZnNldHMgKHZvaWQpOwotQEAgLTEzNjYsOSArMTM2Nyw1MiBAQCBzdnI0X3JlYWRfc29fbGlzdCAo Q09SRV9BRERSIGxtLCBDT1JFX0FECitAQCAtMTM3OSw5ICsxMzgwLDUyIEBAIHN2cjRfcmVhZF9z b19saXN0IChDT1JFX0FERFIgbG0sIENPUkVfQUQKICAJICBjb250aW51ZTsKICAJfQogIAotLSAg ICAgIHN0cm5jcHkgKG5ldy0+c29fbmFtZSwgYnVmZmVyLCBTT19OQU1FX01BWF9QQVRIX1NJWkUg LSAxKTsKLS0gICAgICBuZXctPnNvX25hbWVbU09fTkFNRV9NQVhfUEFUSF9TSVpFIC0gMV0gPSAn XDAnOwotLSAgICAgIHN0cmNweSAobmV3LT5zb19vcmlnaW5hbF9uYW1lLCBuZXctPnNvX25hbWUp OworLSAgICAgIHN0cm5jcHkgKG5ld29iai0+c29fbmFtZSwgYnVmZmVyLCBTT19OQU1FX01BWF9Q QVRIX1NJWkUgLSAxKTsKKy0gICAgICBuZXdvYmotPnNvX25hbWVbU09fTkFNRV9NQVhfUEFUSF9T SVpFIC0gMV0gPSAnXDAnOworLSAgICAgIHN0cmNweSAobmV3b2JqLT5zb19vcmlnaW5hbF9uYW1l LCBuZXdvYmotPnNvX25hbWUpOwogKyAgICAgIHsKICsJc3RydWN0IGVsZl9idWlsZF9pZCAqYnVp bGRfaWQ7CiArCi0rCXN0cm5jcHkgKG5ldy0+c29fb3JpZ2luYWxfbmFtZSwgYnVmZmVyLCBTT19O QU1FX01BWF9QQVRIX1NJWkUgLSAxKTsKLSsJbmV3LT5zb19vcmlnaW5hbF9uYW1lW1NPX05BTUVf TUFYX1BBVEhfU0laRSAtIDFdID0gJ1wwJzsKKysJc3RybmNweSAobmV3b2JqLT5zb19vcmlnaW5h bF9uYW1lLCBidWZmZXIsIFNPX05BTUVfTUFYX1BBVEhfU0laRSAtIDEpOworKwluZXdvYmotPnNv X29yaWdpbmFsX25hbWVbU09fTkFNRV9NQVhfUEFUSF9TSVpFIC0gMV0gPSAnXDAnOwogKwkvKiBN YXkgZ2V0IG92ZXJ3cml0dGVuIGJlbG93LiAgKi8KLSsJc3RyY3B5IChuZXctPnNvX25hbWUsIG5l dy0+c29fb3JpZ2luYWxfbmFtZSk7CisrCXN0cmNweSAobmV3b2JqLT5zb19uYW1lLCBuZXdvYmot PnNvX29yaWdpbmFsX25hbWUpOwogKwotKwlidWlsZF9pZCA9IGJ1aWxkX2lkX2FkZHJfZ2V0IChu ZXctPmxtX2luZm8tPmxfbGQpOworKwlidWlsZF9pZCA9IGJ1aWxkX2lkX2FkZHJfZ2V0IChuZXdv YmotPmxtX2luZm8tPmxfbGQpOwogKwlpZiAoYnVpbGRfaWQgIT0gTlVMTCkKICsJICB7CiArCSAg ICBjaGFyICpuYW1lLCAqYnVpbGRfaWRfZmlsZW5hbWU7CkBAIC0xNjMsMTMgKzE2MywxMyBAQCBJ bmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvc29saWItc3ZyNC5jCiArCSAgICBuYW1lID0g YnVpbGRfaWRfdG9fZmlsZW5hbWUgKGJ1aWxkX2lkLCAmYnVpbGRfaWRfZmlsZW5hbWUpOwogKwkg ICAgaWYgKG5hbWUgIT0gTlVMTCkKICsJICAgICAgewotKwkJc3RybmNweSAobmV3LT5zb19uYW1l LCBuYW1lLCBTT19OQU1FX01BWF9QQVRIX1NJWkUgLSAxKTsKLSsJCW5ldy0+c29fbmFtZVtTT19O QU1FX01BWF9QQVRIX1NJWkUgLSAxXSA9ICdcMCc7CisrCQlzdHJuY3B5IChuZXdvYmotPnNvX25h bWUsIG5hbWUsIFNPX05BTUVfTUFYX1BBVEhfU0laRSAtIDEpOworKwkJbmV3b2JqLT5zb19uYW1l W1NPX05BTUVfTUFYX1BBVEhfU0laRSAtIDFdID0gJ1wwJzsKICsJCXhmcmVlIChuYW1lKTsKICsJ ICAgICAgfQogKwkgICAgZWxzZQogKwkgICAgICB7Ci0rCQlkZWJ1Z19wcmludF9taXNzaW5nIChu ZXctPnNvX25hbWUsIGJ1aWxkX2lkX2ZpbGVuYW1lKTsKKysJCWRlYnVnX3ByaW50X21pc3Npbmcg KG5ld29iai0+c29fbmFtZSwgYnVpbGRfaWRfZmlsZW5hbWUpOwogKwogKwkJLyogSW4gdGhlIGNh c2UgdGhlIG1haW4gZXhlY3V0YWJsZSB3YXMgZm91bmQgYWNjb3JkaW5nIHRvCiArCQkgICBpdHMg YnVpbGQtaWQgKGZyb20gYSBjb3JlIGZpbGUpIHByZXZlbnQgbG9hZGluZwpAQCAtMTgzLDcgKzE4 Myw3IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9zb2xpYi1zdnI0LmMKICsJCWlm IChzeW1maWxlX29iamZpbGUgIT0gTlVMTAogKwkJICAgICYmIChzeW1maWxlX29iamZpbGUtPmZs YWdzCiArCQkJJiBPQkpGX0JVSUxEX0lEX0NPUkVfTE9BREVEKSAhPSAwKQotKwkJICBuZXctPnNv X25hbWVbMF0gPSAwOworKwkJICBuZXdvYmotPnNvX25hbWVbMF0gPSAwOwogKwkgICAgICB9CiAr CiArCSAgICB4ZnJlZSAoYnVpbGRfaWRfZmlsZW5hbWUpOwpAQCAtMTk0LDExICsxOTQsMTEgQEAg SW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3NvbGliLXN2cjQuYwogICAgICAgIHhmcmVl IChidWZmZXIpOwogIAogICAgICAgIC8qIElmIHRoaXMgZW50cnkgaGFzIG5vIG5hbWUsIG9yIGl0 cyBuYW1lIG1hdGNoZXMgdGhlIG5hbWUKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9l bGZyZWFkLmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9lbGZyZWFkLmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2VsZnJlYWQuYwkyMDE1LTAx LTAzIDIzOjExOjU0LjAxODI3MDA5MCArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L2VsZnJlYWQuYwkyMDE1LTAxLTAzIDIzOjEyOjA4LjcwMzM0OTUxOSArMDEwMAotQEAgLTEzMzks OSArMTMzOSwxMCBAQCBlbGZfc3ltZmlsZV9yZWFkIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsCist LS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9lbGZyZWFkLmMJMjAxNS0wNS0zMSAxNjoz ODo1NS4xNDMxMTIzNzQgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9lbGZyZWFk LmMJMjAxNS0wNS0zMSAxNjozODo1Ny42MTQxMzA0NjIgKzAyMDAKK0BAIC0xMzQxLDkgKzEzNDEs MTAgQEAgZWxmX3N5bWZpbGVfcmVhZCAoc3RydWN0IG9iamZpbGUgKm9iamZpbAogIAkgICAmJiBv YmpmaWxlLT5zZXBhcmF0ZV9kZWJ1Z19vYmpmaWxlID09IE5VTEwKICAJICAgJiYgb2JqZmlsZS0+ c2VwYXJhdGVfZGVidWdfb2JqZmlsZV9iYWNrbGluayA9PSBOVUxMKQogICAgICB7CkBAIC0yMTEs NyArMjExLDcgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2VsZnJlYWQuYwogIAog ICAgICAgIGlmIChkZWJ1Z2ZpbGUgPT0gTlVMTCkKICAJZGVidWdmaWxlID0gZmluZF9zZXBhcmF0 ZV9kZWJ1Z19maWxlX2J5X2RlYnVnbGluayAob2JqZmlsZSk7Ci1AQCAtMTM1NSw2ICsxMzU2LDEy IEBAIGVsZl9zeW1maWxlX3JlYWQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWwKK0BAIC0xMzU3LDYg KzEzNTgsMTIgQEAgZWxmX3N5bWZpbGVfcmVhZCAoc3RydWN0IG9iamZpbGUgKm9iamZpbAogIAkg IHN5bWJvbF9maWxlX2FkZF9zZXBhcmF0ZSAoYWJmZCwgZGVidWdmaWxlLCBzeW1maWxlX2ZsYWdz LCBvYmpmaWxlKTsKICAJICBkb19jbGVhbnVwcyAoY2xlYW51cCk7CiAgCX0KQEAgLTIyNCwxMSAr MjI0LDExIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9lbGZyZWFkLmMKICAgICAg fQogIH0KICAKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9zeW1maWxlLmgKK0luZGV4 OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9zeW1maWxlLmgKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3N5bWZpbGUuaAkyMDE1LTAxLTAzIDIzOjExOjU0LjAx ODI3MDA5MCArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3N5bWZpbGUuaAkyMDE1 LTAxLTAzIDIzOjEyOjA4LjcwMzM0OTUxOSArMDEwMAotQEAgLTU3NCw2ICs1NzQsMTAgQEAgdm9p ZCBleHBhbmRfc3ltdGFic19tYXRjaGluZyAoZXhwYW5kX3N5bQorLS0tIGdkYi03LjkuNTAuMjAx NTA1MjAub3JpZy9nZGIvc3ltZmlsZS5oCTIwMTUtMDUtMzEgMTY6Mzg6NTUuMTQzMTEyMzc0ICsw MjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvc3ltZmlsZS5oCTIwMTUtMDUtMzEgMTY6 Mzg6NTcuNjE0MTMwNDYyICswMjAwCitAQCAtNTg0LDYgKzU4NCwxMCBAQCB2b2lkIGV4cGFuZF9z eW10YWJzX21hdGNoaW5nIChleHBhbmRfc3ltCiAgdm9pZCBtYXBfc3ltYm9sX2ZpbGVuYW1lcyAo c3ltYm9sX2ZpbGVuYW1lX2Z0eXBlICpmdW4sIHZvaWQgKmRhdGEsCiAgCQkJICAgaW50IG5lZWRf ZnVsbG5hbWUpOwogIApAQCAtMjM5LDExICsyMzksMTEgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL3N5bWZpbGUuaAogIC8qIEZyb20gZHdhcmYycmVhZC5jICovCiAgCiAgLyogTmFt ZXMgZm9yIGEgZHdhcmYyIGRlYnVnZ2luZyBzZWN0aW9uLiAgVGhlIGZpZWxkIE5PUk1BTCBpcyB0 aGUgbm9ybWFsCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2xpYi9n ZGIuZXhwCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2xpYi9nZGIu ZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi90ZXN0c3Vp dGUvbGliL2dkYi5leHAJMjAxNS0wMS0wMyAyMzoxMTo1NC4wMTgyNzAwOTAgKzAxMDAKLSsrKyBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAJMjAxNS0wMS0wMyAy MzoxMjowOC43MDQzNDk1MjUgKzAxMDAKLUBAIC0xNTIyLDYgKzE1MjIsMTYgQEAgcHJvYyBkZWZh dWx0X2dkYl9zdGFydCB7IH0geworLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvdGVz dHN1aXRlL2xpYi9nZGIuZXhwCTIwMTUtMDUtMzEgMTY6Mzg6NTUuMTQ1MTEyMzg4ICswMjAwCisr KysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMTUtMDUt MzEgMTY6Mzg6NTcuNjE1MTMwNDY5ICswMjAwCitAQCAtMTU3Myw2ICsxNTczLDE2IEBAIHByb2Mg ZGVmYXVsdF9nZGJfc3RhcnQgeyB9IHsKICAJICAgIHdhcm5pbmcgIkNvdWxkbid0IHNldCB0aGUg d2lkdGggdG8gMC4iCiAgCX0KICAgICAgfQpAQCAtMjYwLDEwICsyNjAsMTAgQEAgSW5kZXg6IGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9saWIvZ2RiLmV4cAogICAgICByZXR1cm4g MAogIH0KICAKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvbGliL21p LXN1cHBvcnQuZXhwCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2xp Yi9taS1zdXBwb3J0LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3Jp Zy9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAkyMDE1LTAxLTAzIDIzOjExOjU0LjAx ODI3MDA5MCArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9saWIv bWktc3VwcG9ydC5leHAJMjAxNS0wMS0wMyAyMzoxMjowOC43MDUzNDk1MzAgKzAxMDAKKy0tLSBn ZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAJ MjAxNS0wNS0zMSAxNjozODo1NS4xNDYxMTIzOTYgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUw NTIwL2dkYi90ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCTIwMTUtMDUtMzEgMTY6Mzg6NTcu NjE2MTMwNDc2ICswMjAwCiBAQCAtMjE0LDYgKzIxNCwxNiBAQCBwcm9jIGRlZmF1bHRfbWlfZ2Ri X3N0YXJ0IHsgYXJncyB9IHsKICAJICAgIHdhcm5pbmcgIkNvdWxkbid0IHNldCB0aGUgd2lkdGgg dG8gMC4iCiAgCX0KQEAgLTI4MSwxMCArMjgxLDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi90ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCiAgICAgICMgSWYgYWxsb3dpbmcg dGhlIGluZmVyaW9yIHRvIGhhdmUgaXRzIG93biBQVFkgdGhlbiBhc3NpZ24gdGhlIGluZmVyaW9y CiAgICAgICMgaXRzIG93biB0ZXJtaW5hbCBkZXZpY2UgaGVyZS4KICAgICAgaWYgeyAkc2VwYXJh dGVfaW5mZXJpb3JfcHR5IH0gewotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL29iamZp bGVzLmgKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9vYmpmaWxlcy5oCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9vYmpmaWxlcy5oCTIwMTUtMDEt MDMgMjM6MTE6NTQuMDE4MjcwMDkwICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIv b2JqZmlsZXMuaAkyMDE1LTAxLTAzIDIzOjEyOjA4LjcwNTM0OTUzMCArMDEwMAorLS0tIGdkYi03 LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvb2JqZmlsZXMuaAkyMDE1LTA1LTMxIDE2OjM4OjU1LjE0 NzExMjQwMyArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL29iamZpbGVzLmgJMjAx NS0wNS0zMSAxNjozODo1Ny42MTYxMzA0NzYgKzAyMDAKIEBAIC00NTksNiArNDU5LDEwIEBAIHN0 cnVjdCBvYmpmaWxlCiAgCiAgI2RlZmluZSBPQkpGX05PVF9GSUxFTkFNRSAoMSA8PCA2KQpAQCAt Mjk2LDEwICsyOTYsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL29iamZpbGVz LmgKICAvKiBEZWNsYXJhdGlvbnMgZm9yIGZ1bmN0aW9ucyBkZWZpbmVkIGluIG9iamZpbGVzLmMg Ki8KICAKICBleHRlcm4gc3RydWN0IG9iamZpbGUgKmFsbG9jYXRlX29iamZpbGUgKGJmZCAqLCBj b25zdCBjaGFyICpuYW1lLCBpbnQpOwotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS9jb3JlZmlsZS5leHAKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIw L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhwCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhw CTIwMTUtMDEtMDMgMjM6MTE6NTQuMDE4MjcwMDkwICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2NvcmVmaWxlLmV4cAkyMDE1LTAxLTAzIDIzOjEy OjA4LjcwNTM0OTUzMCArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvdGVz dHN1aXRlL2dkYi5iYXNlL2NvcmVmaWxlLmV4cAkyMDE1LTA1LTMxIDE2OjM4OjU1LjE0NzExMjQw MyArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9j b3JlZmlsZS5leHAJMjAxNS0wNS0zMSAxNjozODo1Ny42MTYxMzA0NzYgKzAyMDAKIEBAIC0yOTMs MyArMjkzLDMzIEBAIGdkYl90ZXN0X211bHRpcGxlICJjb3JlLWZpbGUgJGNvcmVmaWxlIgogIAlw YXNzICR0ZXN0CiAgICAgIH0KQEAgLTMzNCwxNCArMzM0LDE0IEBAIEluZGV4OiBnZGItNy44LjUw LjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhwCiArICAgIGdkYl90 ZXN0ICJpbmZvIGZpbGVzIiAiTG9jYWwgZXhlYyBmaWxlOlxyXG5cWyBcdFxdKmBbc3RyaW5nX3Rv X3JlZ2V4cCAkZGVidWdkaXIvJGJ1aWxkaWRdJywgZmlsZSB0eXBlIC4qIgogKyAgICBwYXNzICR3 aG9sZXRlc3QKICt9Ci1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYnVpbGQtaWQuYwor SW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2J1aWxkLWlkLmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2J1aWxkLWlkLmMJMjAxNS0wMS0wMyAyMzox MTo1NC4wMTgyNzAwOTAgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9idWlsZC1p ZC5jCTIwMTUtMDEtMDMgMjM6MTI6NDAuNzkyNTIzMDg1ICswMTAwCi1AQCAtMjYsMTEgKzI2LDY0 IEBACi0gI2luY2x1ZGUgInN5bWZpbGUuaCIKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcv Z2RiL2J1aWxkLWlkLmMJMjAxNS0wNS0zMSAxNjozODo1NS4xNDgxMTI0MTAgKzAyMDAKKysrKyBn ZGItNy45LjUwLjIwMTUwNTIwL2dkYi9idWlsZC1pZC5jCTIwMTUtMDUtMzEgMTY6NDU6MzUuMDI1 NzIyMTQyICswMjAwCitAQCAtMjcsMTEgKzI3LDYzIEBACiAgI2luY2x1ZGUgIm9iamZpbGVzLmgi CiAgI2luY2x1ZGUgImZpbGVuYW1lcy5oIgorICNpbmNsdWRlICJnZGJjb3JlLmgiCiArI2luY2x1 ZGUgImxpYmJmZC5oIgogKyNpbmNsdWRlICJnZGJjb3JlLmgiCiArI2luY2x1ZGUgImdkYmNtZC5o IgpAQCAtMzU5LDggKzM1OSw2IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9idWls ZC1pZC5jCiArICBmcHJpbnRmX2ZpbHRlcmVkIChmaWxlLCBfKCJWZXJib3NpdHkgbGV2ZWwgb2Yg dGhlIGJ1aWxkLWlkIGxvY2F0b3IgaXMgJXMuXG4iKSwKICsJCSAgICB2YWx1ZSk7CiArfQotIAot LS8qIFNlZSBidWlsZC1pZC5oLiAgKi8KICsvKiBMb2NhdGUgTlRfR05VX0JVSUxEX0lEIGFuZCBy ZXR1cm4gaXRzIG1hdGNoaW5nIGRlYnVnIGZpbGVuYW1lLgogKyAgIEZJWE1FOiBOT1RFIGRlY29k aW5nIHNob3VsZCBiZSB1bmlmaWVkIHdpdGggdGhlIEJGRCBjb3JlIG5vdGVzIGRlY29kaW5nLiAg Ki8KICsKQEAgLTM4OSwyMyArMzg3LDIzIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi9idWlsZC1pZC5jCiArCSAgcmV0dmFsID0geG1hbGxvYyAoc2l6ZW9mICpyZXR2YWwgLSAxICsg c2l6ZSk7CiArCSAgcmV0dmFsLT5zaXplID0gc2l6ZTsKICsJICBtZW1jcHkgKHJldHZhbC0+ZGF0 YSwgZGF0YSwgc2l6ZSk7Ci0gCisrCiArCSAgcmV0dXJuIHJldHZhbDsKICsJfQogKyAgICAgIHAg PSBkZXNjZGF0YSArIEJGRF9BTElHTiAoZGVzY3N6LCA0KTsKICsgICAgfQogKyAgcmV0dXJuIE5V TEw7CiArfQotKwotKy8qIFNlZSBidWlsZC1pZC5oLiAgKi8KLSsgCisgCisgLyogU2VlIGJ1aWxk LWlkLmguICAqLworIAogIGNvbnN0IHN0cnVjdCBlbGZfYnVpbGRfaWQgKgogLWJ1aWxkX2lkX2Jm ZF9nZXQgKGJmZCAqYWJmZCkKICtidWlsZF9pZF9iZmRfc2hkcl9nZXQgKGJmZCAqYWJmZCkKICB7 CiAgICBpZiAoIWJmZF9jaGVja19mb3JtYXQgKGFiZmQsIGJmZF9vYmplY3QpCiAgICAgICAgfHwg YmZkX2dldF9mbGF2b3VyIChhYmZkKSAhPSBiZmRfdGFyZ2V0X2VsZl9mbGF2b3VyCi1AQCAtNDQs NiArOTcsMzQ4IEBAIGJ1aWxkX2lkX2JmZF9nZXQgKGJmZCAqYWJmZCkKK0BAIC00NSw2ICs5Nywz NDggQEAgYnVpbGRfaWRfYmZkX2dldCAoYmZkICphYmZkKQogICAgcmV0dXJuIGVsZl90ZGF0YSAo YWJmZCktPmJ1aWxkX2lkOwogIH0KICAKQEAgLTc1NCw3ICs3NTIsNyBAQCBJbmRleDogZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvYnVpbGQtaWQuYwogIC8qIFNlZSBidWlsZC1pZC5oLiAgKi8KICAK ICBpbnQKLUBAIC01Miw3ICs0NDcsNyBAQCBidWlsZF9pZF92ZXJpZnkgKGJmZCAqYWJmZCwgc2l6 ZV90IGNoZWNrCitAQCAtNTMsNyArNDQ3LDcgQEAgYnVpbGRfaWRfdmVyaWZ5IChiZmQgKmFiZmQs IHNpemVfdCBjaGVjawogICAgY29uc3Qgc3RydWN0IGVsZl9idWlsZF9pZCAqZm91bmQ7CiAgICBp bnQgcmV0dmFsID0gMDsKICAKQEAgLTc2Myw3ICs3NjEsNyBAQCBJbmRleDogZ2RiLTcuOC41MC4y MDE0MTIyOC9nZGIvYnVpbGQtaWQuYwogIAogICAgaWYgKGZvdW5kID09IE5VTEwpCiAgICAgIHdh cm5pbmcgKF8oIkZpbGUgXCIlc1wiIGhhcyBubyBidWlsZC1pZCwgZmlsZSBza2lwcGVkIiksCi1A QCAtNjcsMjAgKzQ2Miw1NiBAQCBidWlsZF9pZF92ZXJpZnkgKGJmZCAqYWJmZCwgc2l6ZV90IGNo ZWNrCitAQCAtNjgsMjAgKzQ2Miw1NiBAQCBidWlsZF9pZF92ZXJpZnkgKGJmZCAqYWJmZCwgc2l6 ZV90IGNoZWNrCiAgICByZXR1cm4gcmV0dmFsOwogIH0KICAKQEAgLTgyNCw3ICs4MjIsNyBAQCBJ bmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYnVpbGQtaWQuYwogIAogICAgLyogS2VlcCBi YWNrd2FyZCBjb21wYXRpYmlsaXR5IHNvIHRoYXQgREVCVUdfRklMRV9ESVJFQ1RPUlkgYmVpbmcg IiIgd2lsbAogICAgICAgY2F1c2UgIi8uYnVpbGQtaWQvLi4uIiBsb29rdXBzLiAgKi8KLUBAIC05 Myw4ICs1MjQsMTEgQEAgYnVpbGRfaWRfdG9fZGVidWdfYmZkIChzaXplX3QgYnVpbGRfaWRfbAor QEAgLTk0LDggKzUyNCwxMSBAQCBidWlsZF9pZF90b19kZWJ1Z19iZmQgKHNpemVfdCBidWlsZF9p ZF9sCiAgICAgICAgc2l6ZV90IGRlYnVnZGlyX2xlbiA9IHN0cmxlbiAoZGVidWdkaXIpOwogICAg ICAgIGNvbnN0IGdkYl9ieXRlICpkYXRhID0gYnVpbGRfaWQ7CiAgICAgICAgc2l6ZV90IHNpemUg PSBidWlsZF9pZF9sZW47CkBAIC04MzcsNyArODM1LDcgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL2J1aWxkLWlkLmMKICAKICAgICAgICBtZW1jcHkgKGxpbmssIGRlYnVnZGlyLCBk ZWJ1Z2Rpcl9sZW4pOwogICAgICAgIHMgPSAmbGlua1tkZWJ1Z2Rpcl9sZW5dOwotQEAgLTEwOCw0 NCArNTQyLDI4MiBAQCBidWlsZF9pZF90b19kZWJ1Z19iZmQgKHNpemVfdCBidWlsZF9pZF9sCitA QCAtMTA5LDQ0ICs1NDIsMjgyIEBAIGJ1aWxkX2lkX3RvX2RlYnVnX2JmZCAoc2l6ZV90IGJ1aWxk X2lkX2wKICAJKnMrKyA9ICcvJzsKICAgICAgICB3aGlsZSAoc2l6ZS0tID4gMCkKICAJcyArPSBz cHJpbnRmIChzLCAiJTAyeCIsICh1bnNpZ25lZCkgKmRhdGErKyk7CkBAIC04ODQsNyArODgyLDcg QEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2J1aWxkLWlkLmMKICsJICAgIGNvbnRp bnVlOwogKwogKwkgIC8qIFdlIGV4cGVjdCB0byBiZSBzaWxlbnQgb24gdGhlIG5vbi1leGlzdGlu ZyBmaWxlcy4gICovCi0rCSAgYWJmZCA9IGdkYl9iZmRfb3Blbl9tYXliZV9yZW1vdGUgKGZpbGVu YW1lKTsKKysJICBhYmZkID0gZ2RiX2JmZF9vcGVuIChmaWxlbmFtZSwgZ251dGFyZ2V0LCAtMSk7 CiArCSAgaWYgKGFiZmQgPT0gTlVMTCkKICsJICAgIHsKICsJICAgICAgeGZyZWUgKGZpbGVuYW1l KTsKQEAgLTg5Nyw3ICs4OTUsNyBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYnVp bGQtaWQuYwogKwkgICAgYnJlYWs7CiAgCiAtICAgICAgLyogV2UgZXhwZWN0IHRvIGJlIHNpbGVu dCBvbiB0aGUgbm9uLWV4aXN0aW5nIGZpbGVzLiAgKi8KLS0gICAgICBhYmZkID0gZ2RiX2JmZF9v cGVuX21heWJlX3JlbW90ZSAoZmlsZW5hbWUpOworLSAgICAgIGFiZmQgPSBnZGJfYmZkX29wZW4g KGZpbGVuYW1lLCBnbnV0YXJnZXQsIC0xKTsKIC0gICAgICBpZiAoYWJmZCA9PSBOVUxMKQogLQlj b250aW51ZTsKICsJICBnZGJfYmZkX3VucmVmIChhYmZkKTsKQEAgLTExMzcsNyArMTEzNSw3IEBA IEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9idWlsZC1pZC5jCiAgICAgICAgLyogUHJl dmVudCBsb29waW5nIG9uIGEgc3RyaXBwZWQgLmRlYnVnIGZpbGUuICAqLwogICAgICAgIGlmIChh YmZkICE9IE5VTEwKICAJICAmJiBmaWxlbmFtZV9jbXAgKGJmZF9nZXRfZmlsZW5hbWUgKGFiZmQp LAotQEAgLTE2NSwzICs4MzcsMjEgQEAgZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlX2J5X2J1aWxk aWQgKHN0cgorQEAgLTE2NiwzICs4MzcsMjEgQEAgZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlX2J5 X2J1aWxkaWQgKHN0cgogICAgICB9CiAgICByZXR1cm4gTlVMTDsKICB9CkBAIC0xMTU5LDEwICsx MTU3LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9idWlsZC1pZC5jCiArCiAr ICBvYnNlcnZlcl9hdHRhY2hfZXhlY3V0YWJsZV9jaGFuZ2VkIChkZWJ1Z19wcmludF9leGVjdXRh YmxlX2NoYW5nZWQpOwogK30KLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9idWlsZC1p ZC5oCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvYnVpbGQtaWQuaAogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvYnVpbGQtaWQuaAkyMDE1LTAxLTAz IDIzOjExOjU0LjAxODI3MDA5MCArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2J1 aWxkLWlkLmgJMjAxNS0wMS0wMyAyMzoxMjowOC43MDYzNDk1MzYgKzAxMDAKKy0tLSBnZGItNy45 LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2J1aWxkLWlkLmgJMjAxNS0wNS0zMSAxNjozODo1NS4xNDkx MTI0MTggKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9idWlsZC1pZC5oCTIwMTUt MDUtMzEgMTY6Mzg6NTcuNjE4MTMwNDkxICswMjAwCiBAQCAtMjAsOSArMjAsMTAgQEAKICAjaWZu ZGVmIEJVSUxEX0lEX0gKICAjZGVmaW5lIEJVSUxEX0lEX0gKQEAgLTExOTcsMTEgKzExOTUsMTEg QEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2J1aWxkLWlkLmgKICsJCQkJCSAgICAg ICBjaGFyICoqYnVpbGRfaWRfZmlsZW5hbWVfcmV0dXJuKTsKICAKICAjZW5kaWYgLyogQlVJTERf SURfSCAqLwotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2R3YXJmMnJlYWQuYworSW5k ZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2R3YXJmMnJlYWQuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIwMTUtMDEtMDMgMjM6 MTE6NTQuMDE4MjcwMDkwICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZHdhcmYy cmVhZC5jCTIwMTUtMDEtMDMgMjM6MTI6MDguNzExMzQ5NTYzICswMTAwCi1AQCAtMjQ0Myw3ICsy NDQzLDcgQEAgZHdhcmYyX2dldF9kd3pfZmlsZSAodm9pZCkKKy0tLSBnZGItNy45LjUwLjIwMTUw NTIwLm9yaWcvZ2RiL2R3YXJmMnJlYWQuYwkyMDE1LTA1LTMxIDE2OjM4OjU1LjE1NjExMjQ2OSAr MDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2R3YXJmMnJlYWQuYwkyMDE1LTA1LTMx IDE2OjM4OjU3LjYyMzEzMDUyOCArMDIwMAorQEAgLTI1MDQsNyArMjUwNCw3IEBAIGR3YXJmMl9n ZXRfZHd6X2ZpbGUgKHZvaWQpCiAgICAgIH0KICAKICAgIGlmIChkd3pfYmZkID09IE5VTEwpCkBA IC0xMjEwLDIwICsxMjA4LDIwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9kd2Fy ZjJyZWFkLmMKICAKICAgIGlmIChkd3pfYmZkID09IE5VTEwpCiAgICAgIGVycm9yIChfKCJjb3Vs ZCBub3QgZmluZCAnLmdudV9kZWJ1Z2FsdGxpbmsnIGZpbGUgZm9yICVzIiksCi1JbmRleDogZ2Ri LTcuOC41MC4yMDE0MTIyOC9nZGIvcHl0aG9uL3B5LW9iamZpbGUuYworSW5kZXg6IGdkYi03Ljku NTAuMjAxNTA1MjAvZ2RiL3B5dGhvbi9weS1vYmpmaWxlLmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3B5dGhvbi9weS1vYmpmaWxlLmMJMjAxNS0wMS0wMyAy MzoxMTo1NC4wMTgyNzAwOTAgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9weXRo b24vcHktb2JqZmlsZS5jCTIwMTUtMDEtMDMgMjM6MTI6MDguNzEyMzQ5NTY4ICswMTAwCi1AQCAt MTE4LDcgKzExOCw3IEBAIG9iamZweV9nZXRfYnVpbGRfaWQgKFB5T2JqZWN0ICpzZWxmLCB2b2kK Ky0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL3B5dGhvbi9weS1vYmpmaWxlLmMJMjAx NS0wNS0zMSAxNjozODo1NS4xNTcxMTI0NzYgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIw L2dkYi9weXRob24vcHktb2JqZmlsZS5jCTIwMTUtMDUtMzEgMTY6Mzg6NTcuNjIzMTMwNTI4ICsw MjAwCitAQCAtMTQwLDcgKzE0MCw3IEBAIG9iamZweV9nZXRfYnVpbGRfaWQgKFB5T2JqZWN0ICpz ZWxmLCB2b2kKICAKLSAgIFRSWV9DQVRDSCAoZXhjZXB0LCBSRVRVUk5fTUFTS19BTEwpCisgICBU UlkKICAgICAgewogLSAgICAgIGJ1aWxkX2lkID0gYnVpbGRfaWRfYmZkX2dldCAob2JqZmlsZS0+ b2JmZCk7CiArICAgICAgYnVpbGRfaWQgPSBidWlsZF9pZF9iZmRfc2hkcl9nZXQgKG9iamZpbGUt Pm9iZmQpOwogICAgICB9Ci0gICBHREJfUFlfSEFORExFX0VYQ0VQVElPTiAoZXhjZXB0KTsKLSAK LUBAIC00NjcsNyArNDY3LDcgQEAgb2JqZnB5X2xvb2t1cF9vYmpmaWxlX2J5X2J1aWxkX2lkIChj b25zdAorICAgQ0FUQ0ggKGV4Y2VwdCwgUkVUVVJOX01BU0tfQUxMKQorICAgICB7CitAQCAtNTQ5 LDcgKzU0OSw3IEBAIG9iamZweV9sb29rdXBfb2JqZmlsZV9ieV9idWlsZF9pZCAoY29uc3QKICAg ICAgICAvKiBEb24ndCByZXR1cm4gc2VwYXJhdGUgZGVidWcgZmlsZXMuICAqLwogICAgICAgIGlm IChvYmpmaWxlLT5zZXBhcmF0ZV9kZWJ1Z19vYmpmaWxlX2JhY2tsaW5rICE9IE5VTEwpCiAgCWNv bnRpbnVlOwoKZGlmZiAtLWdpdCBhL2dkYi02LjYtYnoyMzUxOTctZm9yay1kZXRhY2gtaW5mby5w YXRjaCBiL2dkYi02LjYtYnoyMzUxOTctZm9yay1kZXRhY2gtaW5mby5wYXRjaAppbmRleCA4ZGYy OTI0Li4yNmM5MjhkIDEwMDY0NAotLS0gYS9nZGItNi42LWJ6MjM1MTk3LWZvcmstZGV0YWNoLWlu Zm8ucGF0Y2gKKysrIGIvZ2RiLTYuNi1iejIzNTE5Ny1mb3JrLWRldGFjaC1pbmZvLnBhdGNoCkBA IC0zLDEwICszLDEwIEBACiAJUG9ydCB0byBHREItNi44cHJlLgogCVJlbW92ZSB0aGUgYFsnIGNo YXJhY3RlciBmcm9tIHRoZSBHREItNi44IGRlZmF1bHQgbWVzc2FnZS4KIAotSW5kZXg6IGdkYi03 LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9mb3JrLWRldGFjaC5jCitJbmRl eDogZ2RiLTcuOS41MC4yMDE1MDUzMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2ZvcmstZGV0YWNo LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAw MDAgKzAwMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uv Zm9yay1kZXRhY2guYwkyMDE1LTAxLTA2IDE5OjMxOjQwLjcwMzk4ODUzNCArMDEwMAorKysrIGdk Yi03LjkuNTAuMjAxNTA1MzEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9mb3JrLWRldGFjaC5jCTIw MTUtMDUtMzEgMTg6MjM6NDkuMDA4NDUwNzE2ICswMjAwCiBAQCAtMCwwICsxLDU3IEBACiArLyog VGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4KICsKQEAgLTY1 LDEwICs2NSwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dk Yi5iYXNlL2ZvcmstZGV0YWNoLmMKICsgICAgfQogKyAgcmV0dXJuIDA7CiArfQotSW5kZXg6IGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9mb3JrLWRldGFjaC5leHAK K0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTMxL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZm9yay1k ZXRhY2guZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAu MDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dk Yi5iYXNlL2ZvcmstZGV0YWNoLmV4cAkyMDE1LTAxLTA2IDE5OjMxOjQwLjcwNDk4ODUzOCArMDEw MAorKysrIGdkYi03LjkuNTAuMjAxNTA1MzEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9mb3JrLWRl dGFjaC5leHAJMjAxNS0wNS0zMSAxODoyMzo0OS4wMDg0NTA3MTYgKzAyMDAKIEBAIC0wLDAgKzEs MzYgQEAKICsjIENvcHlyaWdodCAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgog KwpAQCAtMTA2LDE2ICsxMDYsMTYgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS9mb3JrLWRldGFjaC5leHAKICtnZGJfdGVzdCAiIiBcCiArICAgICAg ICAgIkRldGFjaGluZyBhZnRlciBmb3JrIGZyb20gY2hpbGQgcHJvY2Vzcy4qXFxcW0luZmVyaW9y IC4qIGV4aXRlZCBub3JtYWxseVxcXF0iIFwKICsgICAgICAgICAiSW5mbyBtZXNzYWdlIGNhdWdo dCIKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9pbmZydW4uYworSW5kZXg6IGdkYi03 LjkuNTAuMjAxNTA1MzEvZ2RiL2luZnJ1bi5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4y MDE0MTIyOC5vcmlnL2dkYi9pbmZydW4uYwkyMDE1LTAxLTA2IDE5OjMxOjQwLjI2Mjk4NjY0NCAr MDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2luZnJ1bi5jCTIwMTUtMDEtMDYgMTk6 NDM6NTQuODY1MjE5MDk2ICswMTAwCi1AQCAtNDU2LDcgKzQ1Niw3IEBAIGhvbGRpbmcgdGhlIGNo aWxkIHN0b3BwZWQuICBUcnkgXCJzZXQgZGUKKy0tLSBnZGItNy45LjUwLjIwMTUwNTMxLm9yaWcv Z2RiL2luZnJ1bi5jCTIwMTUtMDUtMzEgMTg6MjM6NDEuNzAzNDA1NjE3ICswMjAwCisrKysgZ2Ri LTcuOS41MC4yMDE1MDUzMS9nZGIvaW5mcnVuLmMJMjAxNS0wNS0zMSAxODoyMzo0OS4wMTE0NTA3 MzUgKzAyMDAKK0BAIC00NDMsNyArNDQzLDcgQEAgaG9sZGluZyB0aGUgY2hpbGQgc3RvcHBlZC4g IFRyeSBcInNldCBkZQogIAkgICAgICByZW1vdmVfYnJlYWtwb2ludHNfcGlkIChwdGlkX2dldF9w aWQgKGluZmVyaW9yX3B0aWQpKTsKICAJICAgIH0KICAKIC0JICBpZiAoaW5mb192ZXJib3NlIHx8 IGRlYnVnX2luZnJ1bikKICsJICBpZiAoMSAvKiBGZWRvcmEgQnVnIDIzNTE5NyAqLyB8fCBpbmZv X3ZlcmJvc2UgfHwgZGVidWdfaW5mcnVuKQogIAkgICAgewotIAkgICAgICB0YXJnZXRfdGVybWlu YWxfb3Vyc19mb3Jfb3V0cHV0ICgpOwotIAkgICAgICBmcHJpbnRmX2ZpbHRlcmVkIChnZGJfc3Rk bG9nLAorIAkgICAgICAvKiBFbnN1cmUgdGhhdCB3ZSBoYXZlIGEgcHJvY2VzcyBwdGlkLiAgKi8K KyAJICAgICAgcHRpZF90IHByb2Nlc3NfcHRpZCA9IHBpZF90b19wdGlkIChwdGlkX2dldF9waWQg KGNoaWxkX3B0aWQpKTsKCmRpZmYgLS1naXQgYS9nZGItNi42LXNjaGVkdWxlcl9sb2NraW5nLXN0 ZXAtc3ctd2F0Y2hwb2ludHMyLnBhdGNoIGIvZ2RiLTYuNi1zY2hlZHVsZXJfbG9ja2luZy1zdGVw LXN3LXdhdGNocG9pbnRzMi5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDIz YTdmZi4uMDAwMDAwMAotLS0gYS9nZGItNi42LXNjaGVkdWxlcl9sb2NraW5nLXN0ZXAtc3ctd2F0 Y2hwb2ludHMyLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjE3ICswLDAgQEAKLTIwMDctMDYt MjUgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLQotCSogaW5m ZXJpb3IuaCAoZW51bSByZXN1bWVfc3RlcCk6IE5ldyBkZWZpbml0aW9uLgotCShyZXN1bWUpOiBD aGFuZ2UgU1RFUCBwYXJhbWV0ZXIgdHlwZSB0byBFTlVNIFJFU1VNRV9TVEVQLgotCSogaW5mcnVu LmMgKHJlc3VtZSk6IExpa2V3aXNlLiAgRXh0ZW5kIGRlYnVnIHByaW50aW5nIG9mIHRoZSBTVEVQ Ci0JcGFyYW1ldGVyLiAgTG9jayB0aGUgc2NoZWR1bGVyIG9ubHkgZm9yIGludGVudGlvbmFsIHN0 ZXBwaW5nLgotCShwcm9jZWVkKTogUmVwbGFjZSB0aGUgdmFyaWFibGUgT05FU1RFUCB3aXRoIHRy aXN0YXRlIFJFU1VNRV9TVEVQLgotCVNldCB0aGUgdGhpcmQgUkVTVU1FX1NURVAgc3RhdGUgYWNj b3JkaW5nIHRvIEJQU1RBVF9TSE9VTERfU1RFUC4KLQkoY3VycmVudGx5X3N0ZXBwaW5nKTogQ2hh bmdlIHRoZSByZXR1cm4gdHlwZSB0byBFTlVNIFJFU1VNRV9TVEVQLgotCVJldHVybiBSRVNVTUVf U1RFUF9ORUVERUQgaWYgaXQgaXMganVzdCBkdWUgdG8gQlBTVEFUX1NIT1VMRF9TVEVQLgotCSog bGludXgtbmF0LmMgKHNlbGVjdF9zaW5nbGVzdGVwX2x3cF9jYWxsYmFjayk6IERvIG5vdCBmb2N1 cyBvbgotCXRoZSBzb2Z0d2FyZSB3YXRjaHBvaW50IGV2ZW50cy4KLQkqIGxpbnV4LW5hdC5oIChz dHJ1Y3QgbHdwX2luZm8pOiBSZWRlY2xhcmUgU1RFUCBhcyBFTlVNIFJFU1VNRV9TVEVQLgotCi0y MDA3LTEwLTE5ICBKYW4gS3JhdG9jaHZpbCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0K LQkqIGluZnJ1bi5jIChwcm9jZWVkKTogUkVTVU1FX1NURVAgaW5pdGlhbGl6ZWQgZm9yIG5vbi1z dGVwcGluZy4KLQlSRVNVTUVfU1RFUCBzZXQgYWNjb3JkaW5nIHRvIFNURVAgb25seSBhdCB0aGUg ZW5kIG9mIHRoZSBmdW5jdGlvbi4KLQotMjAwOC0wMi0yNCAgSmFuIEtyYXRvY2h2aWwgIDxqYW4u a3JhdG9jaHZpbEByZWRoYXQuY29tPgotCi0JUG9ydCB0byBHREItNi44cHJlLgotCi1JbmRleDog Z2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvaW5mcnVuLmMKLT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44 LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL2luZnJ1bi5jCTIwMTUtMDEtMjUgMDg6MzY6MTYuNjUxNzE2 MTU5ICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvaW5mcnVuLmMJMjAxNS0wMS0y NSAwODozNjoyNi40OTE3NTg1NzEgKzAxMDAKLUBAIC04Niw3ICs4Niw3IEBAIHN0YXRpYyB2b2lk IGZvbGxvd19pbmZlcmlvcl9yZXNldF9icmVha3AKLSBzdGF0aWMgdm9pZCBzZXRfc2NoZWRsb2Nr X2Z1bmMgKGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSwKLSAJCQkJc3RydWN0IGNtZF9saXN0X2Vs ZW1lbnQgKmMpOwotIAotLXN0YXRpYyBpbnQgY3VycmVudGx5X3N0ZXBwaW5nIChzdHJ1Y3QgdGhy ZWFkX2luZm8gKnRwKTsKLStzdGF0aWMgZW51bSByZXN1bWVfc3RlcCBjdXJyZW50bHlfc3RlcHBp bmcgKHN0cnVjdCB0aHJlYWRfaW5mbyAqdHApOwotIAotIHN0YXRpYyB2b2lkIHhkYl9oYW5kbGVf Y29tbWFuZCAoY2hhciAqYXJncywgaW50IGZyb21fdHR5KTsKLSAKLUBAIC0xOTk4LDcgKzE5OTgs NyBAQCB1c2VyX3Zpc2libGVfcmVzdW1lX3B0aWQgKGludCBzdGVwKQotICAgICAgIHJlc3VtZV9w dGlkID0gaW5mZXJpb3JfcHRpZDsKLSAgICAgfQotICAgZWxzZSBpZiAoKHNjaGVkdWxlcl9tb2Rl ID09IHNjaGVkbG9ja19vbikKLS0JICAgfHwgKHNjaGVkdWxlcl9tb2RlID09IHNjaGVkbG9ja19z dGVwICYmIHN0ZXApKQotKwkgICB8fCAoc2NoZWR1bGVyX21vZGUgPT0gc2NoZWRsb2NrX3N0ZXAg JiYgc3RlcCA9PSBSRVNVTUVfU1RFUF9VU0VSKSkKLSAgICAgewotICAgICAgIC8qIFVzZXItc2V0 dGFibGUgJ3NjaGVkdWxlcicgbW9kZSByZXF1aXJlcyBzb2xvIHRocmVhZCByZXN1bWUuICAqLwot ICAgICAgIHJlc3VtZV9wdGlkID0gaW5mZXJpb3JfcHRpZDsKLUBAIC0yMDIyLDcgKzIwMjIsNyBA QCB1c2VyX3Zpc2libGVfcmVzdW1lX3B0aWQgKGludCBzdGVwKQotICAgIFNURVAgbm9uemVybyBp ZiB3ZSBzaG91bGQgc3RlcCAoemVybyB0byBjb250aW51ZSBpbnN0ZWFkKS4KLSAgICBTSUcgaXMg dGhlIHNpZ25hbCB0byBnaXZlIHRoZSBpbmZlcmlvciAoemVybyBmb3Igbm9uZSkuICAqLwotIHZv aWQKLS1yZXN1bWUgKGludCBzdGVwLCBlbnVtIGdkYl9zaWduYWwgc2lnKQotK3Jlc3VtZSAoZW51 bSByZXN1bWVfc3RlcCBzdGVwLCBlbnVtIGdkYl9zaWduYWwgc2lnKQotIHsKLSAgIHN0cnVjdCBj bGVhbnVwICpvbGRfY2xlYW51cHMgPSBtYWtlX2NsZWFudXAgKHJlc3VtZV9jbGVhbnVwcywgMCk7 Ci0gICBzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlID0gZ2V0X2N1cnJlbnRfcmVnY2FjaGUgKCk7 Ci1AQCAtMjA2NCw5ICsyMDY0LDEzIEBAIHJlc3VtZSAoaW50IHN0ZXAsIGVudW0gZ2RiX3NpZ25h bCBzaWcpCi0gCi0gICBpZiAoZGVidWdfaW5mcnVuKQotICAgICBmcHJpbnRmX3VuZmlsdGVyZWQg KGdkYl9zdGRsb2csCi0tCQkJImluZnJ1bjogcmVzdW1lIChzdGVwPSVkLCBzaWduYWw9JXMpLCAi Ci0rCQkJImluZnJ1bjogcmVzdW1lIChzdGVwPSVzLCBzaWduYWw9JXMpLCAiCi0gCQkJInRyYXBf ZXhwZWN0ZWQ9JWQsIGN1cnJlbnQgdGhyZWFkIFslc10gYXQgJXNcbiIsCi0tCQkJc3RlcCwgZ2Ri X3NpZ25hbF90b19zeW1ib2xfc3RyaW5nIChzaWcpLAotKwkJCShzdGVwID09IFJFU1VNRV9TVEVQ X0NPTlRJTlVFCi0rCQkJID8gIlJFU1VNRV9TVEVQX0NPTlRJTlVFIgotKwkJCSA6IChzdGVwID09 IFJFU1VNRV9TVEVQX1VTRVIgPyAiUkVTVU1FX1NURVBfVVNFUiIKLSsJCQkJCQkgICAgIDogIlJF U1VNRV9TVEVQX05FRURFRCIpKSwKLSsJCQlnZGJfc2lnbmFsX3RvX3N5bWJvbF9zdHJpbmcgKHNp ZyksCi0gCQkJdHAtPmNvbnRyb2wudHJhcF9leHBlY3RlZCwKLSAJCQl0YXJnZXRfcGlkX3RvX3N0 ciAoaW5mZXJpb3JfcHRpZCksCi0gCQkJcGFkZHJlc3MgKGdkYmFyY2gsIHBjKSk7Ci1AQCAtMjU0 Myw2ICsyNTQ3LDcgQEAgcHJvY2VlZCAoQ09SRV9BRERSIGFkZHIsIGVudW0gZ2RiX3NpZ25hbAot ICAgc3RydWN0IHRocmVhZF9pbmZvICp0cDsKLSAgIENPUkVfQUREUiBwYzsKLSAgIHN0cnVjdCBh ZGRyZXNzX3NwYWNlICphc3BhY2U7Ci0rICBlbnVtIHJlc3VtZV9zdGVwIHJlc3VtZV9zdGVwID0g UkVTVU1FX1NURVBfQ09OVElOVUU7Ci0gCi0gICAvKiBJZiB3ZSdyZSBzdG9wcGVkIGF0IGEgZm9y ay92Zm9yaywgZm9sbG93IHRoZSBicmFuY2ggc2V0IGJ5IHRoZQotICAgICAgInNldCBmb2xsb3ct Zm9yay1tb2RlIiBjb21tYW5kOyBvdGhlcndpc2UsIHdlJ2xsIGp1c3QgcHJvY2VlZAotQEAgLTI1 ODYsMTMgKzI1OTEsMTkgQEAgcHJvY2VlZCAoQ09SRV9BRERSIGFkZHIsIGVudW0gZ2RiX3NpZ25h bAotIAkgICBOb3RlLCB3ZSBkb24ndCBkbyB0aGlzIGluIHJldmVyc2UsIGJlY2F1c2Ugd2Ugd29u J3QKLSAJICAgYWN0dWFsbHkgYmUgZXhlY3V0aW5nIHRoZSBicmVha3BvaW50IGluc24gYW55d2F5 LgotIAkgICBXZSdsbCBiZSAodW4tKWV4ZWN1dGluZyB0aGUgcHJldmlvdXMgaW5zdHJ1Y3Rpb24u ICAqLwotKwl7Ci0gCXRwLT5zdGVwcGluZ19vdmVyX2JyZWFrcG9pbnQgPSAxOwotKwlyZXN1bWVf c3RlcCA9IFJFU1VNRV9TVEVQX1VTRVI7Ci0rCX0KLSAgICAgICBlbHNlIGlmIChnZGJhcmNoX3Np bmdsZV9zdGVwX3Rocm91Z2hfZGVsYXlfcCAoZ2RiYXJjaCkKLSAJICAgICAgICYmIGdkYmFyY2hf c2luZ2xlX3N0ZXBfdGhyb3VnaF9kZWxheSAoZ2RiYXJjaCwKLSAJCQkJCQkgICAgIGdldF9jdXJy ZW50X2ZyYW1lICgpKSkKLSAJLyogV2Ugc3RlcHBlZCBvbnRvIGFuIGluc3RydWN0aW9uIHRoYXQg bmVlZHMgdG8gYmUgc3RlcHBlZAotIAkgICBhZ2FpbiBiZWZvcmUgcmUtaW5zZXJ0aW5nIHRoZSBi cmVha3BvaW50LCBkbyBzby4gICovCi0rCXsKLSAJdHAtPnN0ZXBwaW5nX292ZXJfYnJlYWtwb2lu dCA9IDE7Ci0rCXJlc3VtZV9zdGVwID0gUkVTVU1FX1NURVBfVVNFUjsKLSsJfQotICAgICB9Ci0g ICBlbHNlCi0gICAgIHsKLUBAIC0yNjQ3LDYgKzI2NTgsNyBAQCBwcm9jZWVkIChDT1JFX0FERFIg YWRkciwgZW51bSBnZGJfc2lnbmFsCi0gCSAgdHAtPnByZXZfcGMgPSByZWdjYWNoZV9yZWFkX3Bj IChnZXRfY3VycmVudF9yZWdjYWNoZSAoKSk7Ci0gCSAgc3dpdGNoX3RvX3RocmVhZCAoc3RlcF9v dmVyLT5wdGlkKTsKLSAJICB0cCA9IHN0ZXBfb3ZlcjsKLSsJICByZXN1bWVfc3RlcCA9IFJFU1VN RV9TVEVQX1VTRVI7Ci0gCX0KLSAgICAgfQotIAotQEAgLTI2OTksOSArMjcxMSwxMyBAQCBwcm9j ZWVkIChDT1JFX0FERFIgYWRkciwgZW51bSBnZGJfc2lnbmFsCi0gICAgICBjb3JyZWN0bHkgd2hl biB0aGUgaW5mZXJpb3IgaXMgc3RvcHBlZC4gICovCi0gICB0cC0+cHJldl9wYyA9IHJlZ2NhY2hl X3JlYWRfcGMgKGdldF9jdXJyZW50X3JlZ2NhY2hlICgpKTsKLSAKLSsgIGlmICh0cC0+Y29udHJv bC50cmFwX2V4cGVjdGVkIHx8IHN0ZXApCi0rICAgIHJlc3VtZV9zdGVwID0gUkVTVU1FX1NURVBf VVNFUjsKLSsgIGlmIChyZXN1bWVfc3RlcCA9PSBSRVNVTUVfU1RFUF9DT05USU5VRSAmJiBicHN0 YXRfc2hvdWxkX3N0ZXAgKCkpCi0rICAgIHJlc3VtZV9zdGVwID0gUkVTVU1FX1NURVBfTkVFREVE OwotKwotICAgLyogUmVzdW1lIGluZmVyaW9yLiAgKi8KLS0gIHJlc3VtZSAodHAtPmNvbnRyb2wu dHJhcF9leHBlY3RlZCB8fCBzdGVwIHx8IGJwc3RhdF9zaG91bGRfc3RlcCAoKSwKLS0JICB0cC0+ c3VzcGVuZC5zdG9wX3NpZ25hbCk7Ci0rICByZXN1bWUgKHJlc3VtZV9zdGVwLCB0cC0+c3VzcGVu ZC5zdG9wX3NpZ25hbCk7Ci0gCi0gICAvKiBXYWl0IGZvciBpdCB0byBzdG9wIChpZiBub3Qgc3Rh bmRhbG9uZSkKLSAgICAgIGFuZCBpbiBhbnkgY2FzZSBkZWNvZGUgd2h5IGl0IHN0b3BwZWQsIGFu ZCBhY3QgYWNjb3JkaW5nbHkuICAqLwotQEAgLTU2ODQsMTQgKzU3MDAsMTYgQEAgc3dpdGNoX2Jh Y2tfdG9fc3RlcHBlZF90aHJlYWQgKHN0cnVjdCBleAotIAotIC8qIElzIHRocmVhZCBUUCBpbiB0 aGUgbWlkZGxlIG9mIHNpbmdsZS1zdGVwcGluZz8gICovCi0gCi0tc3RhdGljIGludAotK3N0YXRp YyBlbnVtIHJlc3VtZV9zdGVwCi0gY3VycmVudGx5X3N0ZXBwaW5nIChzdHJ1Y3QgdGhyZWFkX2lu Zm8gKnRwKQotIHsKLS0gIHJldHVybiAoKHRwLT5jb250cm9sLnN0ZXBfcmFuZ2VfZW5kCi0rICBp ZiAgICAgKCh0cC0+Y29udHJvbC5zdGVwX3JhbmdlX2VuZAotIAkgICAmJiB0cC0+Y29udHJvbC5z dGVwX3Jlc3VtZV9icmVha3BvaW50ID09IE5VTEwpCi0tCSAgfHwgdHAtPmNvbnRyb2wudHJhcF9l eHBlY3RlZAotLQkgIHx8IHRwLT5zdGVwcGVkX2JyZWFrcG9pbnQKLS0JICB8fCBicHN0YXRfc2hv dWxkX3N0ZXAgKCkpOwotKwkgIHx8IHRwLT5jb250cm9sLnRyYXBfZXhwZWN0ZWQpCi0rICAgIHJl dHVybiBSRVNVTUVfU1RFUF9VU0VSOwotKyAgaWYgICAgICAgIChicHN0YXRfc2hvdWxkX3N0ZXAg KCkpCi0rICAgIHJldHVybiBSRVNVTUVfU1RFUF9ORUVERUQ7Ci0rICByZXR1cm4gUkVTVU1FX1NU RVBfQ09OVElOVUU7Ci0gfQotIAotIC8qIEluZmVyaW9yIGhhcyBzdGVwcGVkIGludG8gYSBzdWJy b3V0aW5lIGNhbGwgd2l0aCBzb3VyY2UgY29kZSB0aGF0Ci1JbmRleDogZ2RiLTcuOC45MC4yMDE1 MDEyNS9nZGIvbGludXgtbmF0LmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMTI1 Lm9yaWcvZ2RiL2xpbnV4LW5hdC5jCTIwMTUtMDEtMjUgMDg6MzY6MTYuNjUzNzE2MTY4ICswMTAw Ci0rKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvbGludXgtbmF0LmMJMjAxNS0wMS0yNSAwODoz NjoyNi40OTI3NTg1NzYgKzAxMDAKLUBAIC0yNjQ4LDcgKzI2NDgsMTEgQEAgc3RhdGljIGludAot IHNlbGVjdF9zaW5nbGVzdGVwX2x3cF9jYWxsYmFjayAoc3RydWN0IGx3cF9pbmZvICpscCwgdm9p ZCAqZGF0YSkKLSB7Ci0gICBpZiAobHAtPmxhc3RfcmVzdW1lX2tpbmQgPT0gcmVzdW1lX3N0ZXAK LS0gICAgICAmJiBscC0+c3RhdHVzICE9IDApCi0rICAgICAgJiYgbHAtPnN0YXR1cyAhPSAwCi0r ICAgICAgLyogV2UgZG8gbm90IGZvY3VzIG9uIHNvZnR3YXJlIHdhdGNocG9pbnRzIGFzIHdlIHdv dWxkIG5vdCBjYXRjaAotKwkgU1RFUFBJTkdfUEFTVF9TSU5HTEVTVEVQX0JSRUFLUE9JTlQgYnJl YWtwb2ludHMgaW4gc29tZSBvdGhlciB0aHJlYWQKLSsJIGFzIHRoZXkgd291bGQgcmVtYWluIHBl bmRpbmcgZHVlIHRvIGBQdXNoIGJhY2sgYnJlYWtwb2ludCBmb3IgJXMnLiAgKi8KLSsgICAgICAm JiBscC0+c3RlcCA9PSBSRVNVTUVfU1RFUF9VU0VSKQotICAgICByZXR1cm4gMTsKLSAgIGVsc2UK LSAgICAgcmV0dXJuIDA7Ci1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvbGludXgtbmF0 LmgKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL2xpbnV4LW5h dC5oCTIwMTUtMDEtMjUgMDg6MzY6MTYuNjUzNzE2MTY4ICswMTAwCi0rKysgZ2RiLTcuOC45MC4y MDE1MDEyNS9nZGIvbGludXgtbmF0LmgJMjAxNS0wMS0yNSAwODozNjo0NC45NDg4MzgxMjYgKzAx MDAKLUBAIC0xOCw2ICsxOCw3IEBACi0gICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBu b3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLwotIAotICNpbmNsdWRl ICJ0YXJnZXQuaCIKLSsjaW5jbHVkZSAiaW5mcnVuLmgiCi0gCi0gI2luY2x1ZGUgPHNpZ25hbC5o PgotIAotQEAgLTg4LDggKzg5LDggQEAgc3RydWN0IGx3cF9pbmZvCi0gICAgICBydW5uaW5nIGFu ZCBub3Qgc3RlcHBpbmcsIHRoaXMgaXMgMC4gICovCi0gICBDT1JFX0FERFIgc3RvcF9wYzsKLSAK LS0gIC8qIE5vbi16ZXJvIGlmIHdlIHdlcmUgc3RlcHBpbmcgdGhpcyBMV1AuICAqLwotLSAgaW50 IHN0ZXA7Ci0rICAvKiBUaGUga2luZCBvZiBzdGVwcGluZyBvZiB0aGlzIExXUC4gICovCi0rICBl bnVtIHJlc3VtZV9zdGVwIHN0ZXA7Ci0gCi0gICAvKiBUaGUgcmVhc29uIHRoZSBMV1AgbGFzdCBz dG9wcGVkLCBpZiB3ZSBuZWVkIHRvIHRyYWNrIGl0Ci0gICAgICAoYnJlYWtwb2ludCwgd2F0Y2hw b2ludCwgZXRjLikgICovCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvaW5mcnVuLmgK LT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL2luZnJ1bi5oCTIw MTUtMDEtMjUgMDg6MzY6MTYuNjU0NzE2MTcyICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDEy NS9nZGIvaW5mcnVuLmgJMjAxNS0wMS0yNSAwODozNjoyNi40OTM3NTg1ODAgKzAxMDAKLUBAIC05 Miw3ICs5MiwxNCBAQCBleHRlcm4gdm9pZCBwcm9jZWVkIChDT1JFX0FERFIsIGVudW0gZ2RiCi0g Ci0gLyogVGhlIGByZXN1bWUnIHJvdXRpbmUgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGluIHNwZWNp YWwgY2lyY3Vtc3RhbmNlcy4KLSAgICBOb3JtYWxseSwgdXNlIGBwcm9jZWVkJywgd2hpY2ggaGFu ZGxlcyBhIGxvdCBvZiBib29ra2VlcGluZy4gICovCi0tZXh0ZXJuIHZvaWQgcmVzdW1lIChpbnQs IGVudW0gZ2RiX3NpZ25hbCk7Ci0rZW51bSByZXN1bWVfc3RlcAotKyAgewotKyAgICAvKiBjdXJy ZW50bHlfc3RlcHBpbmcgKCkgc2hvdWxkIHJldHVybiBub24temVybyBmb3Igbm9uLWNvbnRpbnVl LiAgKi8KLSsgICAgUkVTVU1FX1NURVBfQ09OVElOVUUgPSAwLAotKyAgICBSRVNVTUVfU1RFUF9V U0VSLCAgICAgICAgICAvKiBTdGVwcGluZyBpcyBpbnRlbnRpb25hbCBieSB0aGUgdXNlci4gICov Ci0rICAgIFJFU1VNRV9TVEVQX05FRURFRCAgICAgICAgIC8qIFN0ZXBwaW5nIG9ubHkgZm9yIHNv ZnR3YXJlIHdhdGNocG9pbnRzLiAgKi8KLSsgIH07Ci0rZXh0ZXJuIHZvaWQgcmVzdW1lIChlbnVt IHJlc3VtZV9zdGVwLCBlbnVtIGdkYl9zaWduYWwpOwotIAotIC8qIFJldHVybiBhIHB0aWQgcmVw cmVzZW50aW5nIHRoZSBzZXQgb2YgdGhyZWFkcyB0aGF0IHdlIHdpbGwgcHJvY2VlZCwKLSAgICBp biB0aGUgcGVyc3BlY3RpdmUgb2YgdGhlIHVzZXIvZnJvbnRlbmQuICAqLwotSW5kZXg6IGdkYi03 LjguOTAuMjAxNTAxMjUvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9zaWduYWwtd2hpbGUtc3Rl cHBpbmctb3Zlci1icC1vdGhlci10aHJlYWQuZXhwCi09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45 MC4yMDE1MDEyNS5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLnRocmVhZHMvc2lnbmFsLXdoaWxlLXN0 ZXBwaW5nLW92ZXItYnAtb3RoZXItdGhyZWFkLmV4cAkyMDE1LTAxLTI1IDA4OjM2OjE2LjY1NDcx NjE3MiArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhy ZWFkcy9zaWduYWwtd2hpbGUtc3RlcHBpbmctb3Zlci1icC1vdGhlci10aHJlYWQuZXhwCTIwMTUt MDEtMjUgMDg6MzY6MjYuNDkzNzU4NTgwICswMTAwCi1AQCAtOTcsNyArOTcsNyBAQCBnZGJfdGVz dCAic2V0IGRlYnVnIGluZnJ1biAxIgotIAotIGdkYl90ZXN0IFwKLSAgICAgInN0ZXAiIFwKLS0g ICAgIi4qbmVlZCB0byBzdGVwLW92ZXIuKnJlc3VtZSBcXChzdGVwPTEuKnNpZ25hbCBhcnJpdmVk IHdoaWxlIHN0ZXBwaW5nIG92ZXIgYnJlYWtwb2ludC4qc3dpdGNoaW5nIGJhY2sgdG8gc3RlcHBl ZCB0aHJlYWQuKnN0ZXBwZWQgdG8gYSBkaWZmZXJlbnQgbGluZS4qY2FsbG1lLioiIFwKLSsgICAg Ii4qbmVlZCB0byBzdGVwLW92ZXIuKnJlc3VtZSBcXChzdGVwPVJFU1VNRV9TVEVQX1VTRVIuKnNp Z25hbCBhcnJpdmVkIHdoaWxlIHN0ZXBwaW5nIG92ZXIgYnJlYWtwb2ludC4qc3dpdGNoaW5nIGJh Y2sgdG8gc3RlcHBlZCB0aHJlYWQuKnN0ZXBwZWQgdG8gYSBkaWZmZXJlbnQgbGluZS4qY2FsbG1l LioiIFwKLSAgICAgInN0ZXAiCi0gCi0gc2V0IGNudF9hZnRlciBbZ2V0X3ZhbHVlICJhcmdzXFsk bXlfbnVtYmVyXF0iICJnZXQgY291bnQgYWZ0ZXIgc3RlcCJdCgpkaWZmIC0tZ2l0IGEvZ2RiLTYu OC1hdHRhY2gtc2lnbmFsbGVkLWRldGFjaC1zdG9wcGVkLnBhdGNoIGIvZ2RiLTYuOC1hdHRhY2gt c2lnbmFsbGVkLWRldGFjaC1zdG9wcGVkLnBhdGNoCmluZGV4IGZkNjYwNzMuLjdjMjYxOGIgMTAw NjQ0Ci0tLSBhL2dkYi02LjgtYXR0YWNoLXNpZ25hbGxlZC1kZXRhY2gtc3RvcHBlZC5wYXRjaAor KysgYi9nZGItNi44LWF0dGFjaC1zaWduYWxsZWQtZGV0YWNoLXN0b3BwZWQucGF0Y2gKQEAgLTEs OCArMSw4IEBACi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvbGludXgtbmF0LmMKK0lu ZGV4OiBnZGItNy45LjUwLjIwMTUwNTMxL2dkYi9saW51eC1uYXQuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjguOTAuMjAxNTAxMjUub3JpZy9nZGIvbGludXgtbmF0LmMJMjAxNS0wMS0yNSAwODo0 Mjo0OS4zODE0MDg4OTkgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9saW51eC1u YXQuYwkyMDE1LTAxLTI1IDA4OjQzOjE2LjM3ODUyNTMyMiArMDEwMAotQEAgLTE3NCw2ICsxNzQs OSBAQCBibG9ja2VkLiAgKi8KKy0tLSBnZGItNy45LjUwLjIwMTUwNTMxLm9yaWcvZ2RiL2xpbnV4 LW5hdC5jCTIwMTUtMDUtMzEgMTg6MjM6NTYuMTQ3NDk0NzkwICswMjAwCisrKysgZ2RiLTcuOS41 MC4yMDE1MDUzMS9nZGIvbGludXgtbmF0LmMJMjAxNS0wNS0zMSAxODoyNDowMS45MzU1MzA3NTkg KzAyMDAKK0BAIC0xNjgsNiArMTY4LDkgQEAgYmxvY2tlZC4gICovCiAgc3RhdGljIHN0cnVjdCB0 YXJnZXRfb3BzICpsaW51eF9vcHM7CiAgc3RhdGljIHN0cnVjdCB0YXJnZXRfb3BzIGxpbnV4X29w c19zYXZlZDsKICAKQEAgLTEyLDcgKzEyLDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUv Z2RiL2xpbnV4LW5hdC5jCiAgLyogVGhlIG1ldGhvZCB0byBjYWxsLCBpZiBhbnksIHdoZW4gYSBu ZXcgdGhyZWFkIGlzIGF0dGFjaGVkLiAgKi8KICBzdGF0aWMgdm9pZCAoKmxpbnV4X25hdF9uZXdf dGhyZWFkKSAoc3RydWN0IGx3cF9pbmZvICopOwogIAotQEAgLTkyNCw2ICs5MjcsNyBAQCBsaW51 eF9uYXRfcG9zdF9hdHRhY2hfd2FpdCAocHRpZF90IHB0aWQsCitAQCAtOTgxLDYgKzk4NCw3IEBA IGxpbnV4X25hdF9wb3N0X2F0dGFjaF93YWl0IChwdGlkX3QgcHRpZCwKICAgICAgICBpZiAoZGVi dWdfbGludXhfbmF0KQogIAlmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRsb2csCiAgCQkJICAg ICJMTlBBVzogQXR0YWNoaW5nIHRvIGEgc3RvcHBlZCBwcm9jZXNzXG4iKTsKQEAgLTIwLDcgKzIw LDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2xpbnV4LW5hdC5jCiAgCiAgICAg ICAgLyogVGhlIHByb2Nlc3MgaXMgZGVmaW5pdGVseSBzdG9wcGVkLiAgSXQgaXMgaW4gYSBqb2Ig Y29udHJvbAogIAkgc3RvcCwgdW5sZXNzIHRoZSBrZXJuZWwgcHJlZGF0ZXMgdGhlIFRBU0tfU1RP UFBFRCAvCi1AQCAtMTQyNCw2ICsxNDI4LDkgQEAgZ2V0X3BlbmRpbmdfc3RhdHVzIChzdHJ1Y3Qg bHdwX2luZm8gKmxwLAorQEAgLTE0NjgsNiArMTQ3Miw5IEBAIGdldF9wZW5kaW5nX3N0YXR1cyAo c3RydWN0IGx3cF9pbmZvICpscCwKICAJCQkgICAgZ2RiX3NpZ25hbF90b19zdHJpbmcgKHNpZ25v KSk7CiAgICAgIH0KICAKQEAgLTMwLDcgKzMwLDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAx MjUvZ2RiL2xpbnV4LW5hdC5jCiAgICByZXR1cm4gMDsKICB9CiAgCi1AQCAtMTUzNyw2ICsxNTQ0 LDggQEAgbGludXhfbmF0X2RldGFjaCAoc3RydWN0IHRhcmdldF9vcHMgKm9wcworQEAgLTE1ODEs NiArMTU4OCw4IEBAIGxpbnV4X25hdF9kZXRhY2ggKHN0cnVjdCB0YXJnZXRfb3BzICpvcHMKICAg ICAgfQogICAgZWxzZQogICAgICBsaW51eF9vcHMtPnRvX2RldGFjaCAob3BzLCBhcmdzLCBmcm9t X3R0eSk7CkBAIC0zOSw3ICszOSw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9s aW51eC1uYXQuYwogIH0KICAKICAvKiBSZXN1bWUgZXhlY3V0aW9uIG9mIHRoZSBpbmZlcmlvciBw cm9jZXNzLiAgSWYgU1RFUCBpcyBub256ZXJvLAotQEAgLTE3NDEsNiArMTc1MCwxNCBAQCBsaW51 eF9uYXRfcmVzdW1lIChzdHJ1Y3QgdGFyZ2V0X29wcyAqb3BzCitAQCAtMTgzOSw2ICsxODQ4LDE0 IEBAIGxpbnV4X25hdF9yZXN1bWUgKHN0cnVjdCB0YXJnZXRfb3BzICpvcHMKICAgICAgICByZXR1 cm47CiAgICAgIH0KICAKQEAgLTU0LDcgKzU0LDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAx MjUvZ2RiL2xpbnV4LW5hdC5jCiAgICBpZiAocmVzdW1lX21hbnkpCiAgICAgIGl0ZXJhdGVfb3Zl cl9sd3BzIChwdGlkLCBsaW51eF9uYXRfcmVzdW1lX2NhbGxiYWNrLCBscCk7CiAgCi1AQCAtMzcy Myw2ICszNzQwLDggQEAgbGludXhfbmF0X21vdXJuX2luZmVyaW9yIChzdHJ1Y3QgdGFyZ2V0Xwor QEAgLTM5MzUsNiArMzk1Miw4IEBAIGxpbnV4X25hdF9tb3Vybl9pbmZlcmlvciAoc3RydWN0IHRh cmdldF8KICAKICAgIC8qIExldCB0aGUgYXJjaC1zcGVjaWZpYyBuYXRpdmUgY29kZSBrbm93IHRo aXMgcHJvY2VzcyBpcyBnb25lLiAgKi8KICAgIGxpbnV4X25hdF9mb3JnZXRfcHJvY2VzcyAocGlk KTsKQEAgLTYzLDEwICs2MywxMCBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvbGlu dXgtbmF0LmMKICB9CiAgCiAgLyogQ29udmVydCBhIG5hdGl2ZS9ob3N0IHNpZ2luZm8gb2JqZWN0 LCBpbnRvL2Zyb20gdGhlIHNpZ2luZm8gaW4gdGhlCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDEy NS9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL2F0dGFjaC1zdG9wcGVkLmV4cAorSW5kZXg6IGdk Yi03LjkuNTAuMjAxNTA1MzEvZ2RiL3Rlc3RzdWl0ZS9nZGIudGhyZWFkcy9hdHRhY2gtc3RvcHBl ZC5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL3Rlc3Rz dWl0ZS9nZGIudGhyZWFkcy9hdHRhY2gtc3RvcHBlZC5leHAJMjAxNS0wMS0yNSAwODo0Mjo0OS4z ODI0MDg5MDMgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi90ZXN0c3VpdGUvZ2Ri LnRocmVhZHMvYXR0YWNoLXN0b3BwZWQuZXhwCTIwMTUtMDEtMjUgMDg6NDM6MTYuMzc5NTI1MzI3 ICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUzMS5vcmlnL2dkYi90ZXN0c3VpdGUvZ2RiLnRo cmVhZHMvYXR0YWNoLXN0b3BwZWQuZXhwCTIwMTUtMDUtMzEgMTg6MjM6NTYuMTQ4NDk0Nzk2ICsw MjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUzMS9nZGIvdGVzdHN1aXRlL2dkYi50aHJlYWRzL2F0 dGFjaC1zdG9wcGVkLmV4cAkyMDE1LTA1LTMxIDE4OjI0OjAxLjkzNTUzMDc1OSArMDIwMAogQEAg LTYxLDcgKzYxLDY1IEBAIHByb2MgY29yZWZ1bmMgeyB0aHJlYWR0eXBlIH0gewogICAgICBnZGJf cmVpbml0aWFsaXplX2RpciAkc3JjZGlyLyRzdWJkaXIKICAgICAgZ2RiX2xvYWQgJHtiaW5maWxl fQpAQCAtMTM0LDEyICsxMzQsMTIgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL3Rl c3RzdWl0ZS9nZGIudGhyZWFkcy9hdHRhY2gtc3RvcHBlZC5leHAKICAgICAgICAgCiAgICAgIHNl dCB0ZXN0ICIkdGhyZWFkdHlwZTogYXR0YWNoMiB0byBzdG9wcGVkLCBhZnRlciBzZXR0aW5nIGZp bGUiCiAgICAgIGdkYl90ZXN0X211bHRpcGxlICJhdHRhY2ggJHRlc3RwaWQiICIkdGVzdCIgewot SW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2luZnJ1bi5jCitJbmRleDogZ2RiLTcuOS41 MC4yMDE1MDUzMS9nZGIvaW5mcnVuLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUw MTI1Lm9yaWcvZ2RiL2luZnJ1bi5jCTIwMTUtMDEtMjUgMDg6NDI6NDkuMzg1NDA4OTE2ICswMTAw Ci0rKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvaW5mcnVuLmMJMjAxNS0wMS0yNSAwODo0Mzox Ni4zODE1MjUzMzUgKzAxMDAKLUBAIC02MDAsNiArNjAwLDExIEBAIGhvbGRpbmcgdGhlIGNoaWxk IHN0b3BwZWQuICBUcnkgXCJzZXQgZGUKLSAJCQkJY2hpbGRfcGlkKTsKKy0tLSBnZGItNy45LjUw LjIwMTUwNTMxLm9yaWcvZ2RiL2luZnJ1bi5jCTIwMTUtMDUtMzEgMTg6MjM6NTYuMTUwNDk0ODA5 ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUzMS9nZGIvaW5mcnVuLmMJMjAxNS0wNS0zMSAx ODoyNDowMS45Mzg1MzA3NzggKzAyMDAKK0BAIC01OTEsNiArNTkxLDExIEBAIGhvbGRpbmcgdGhl IGNoaWxkIHN0b3BwZWQuICBUcnkgXCJzZXQgZGUKKyAJCQkJdGFyZ2V0X3BpZF90b19zdHIgKHBy b2Nlc3NfcHRpZCkpOwogIAkgICAgfQogIAogKwkgIC8qIFdlIHNob3VsZCBjaGVjayBQSURfV0FT X1NUT1BQRUQgYW5kIGRldGFjaCBpdCBzdG9wcGVkIGFjY29yZGluZ2x5LgoKZGlmZiAtLWdpdCBh L2dkYi02LjgtYno0NTcxODctbGFyZ2VmaWxlLXRlc3QucGF0Y2ggYi9nZGItNi44LWJ6NDU3MTg3 LWxhcmdlZmlsZS10ZXN0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMmQ2 Y2Y4Li4wMDAwMDAwCi0tLSBhL2dkYi02LjgtYno0NTcxODctbGFyZ2VmaWxlLXRlc3QucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSwxMDUgKzAsMCBAQAotLS0tIC9kZXYvbnVsbAkyMDA5LTA0LTE5 IDE0OjQ5OjAwLjk3NDY0ODM4OSArMDIwMAotKysrIGdkYi02LjgvZ2RiL3Rlc3RzdWl0ZS9nZGIu YXJjaC9pMzg2LWJpYXJjaC1jb3JlLmV4cAkyMDA5LTA0LTE5IDE2OjMwOjEyLjAwMDAwMDAwMCAr MDIwMAotQEAgLTAsMCArMSw2MSBAQAotKyMgVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwg dGhlIEdOVSBkZWJ1Z2dlci4KLSsKLSsjIENvcHlyaWdodCAyMDA5IEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsjIGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rIyB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl LCBvcgotKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsjCi0rIyBUaGlz IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlCi0rIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLgotKyMKLSsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh bTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotKyMgRm91bmRhdGlvbiwgSW5j LiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVT QS4gIAotKwotKyMgVGVzdCBhYmlsaXR5IHRvIGxvYWQgYW4gZWxmNjQtaTM4NiBjb3JlIGZpbGUu ICBUaGUgcHJvdmlkZWQgY29yZSBmaWxlIHdhcwotKyMgZWxmNjQteDg2NjQgb25lIGJ1dCBpdCBn b3QgYmluYXJ5IHBhdGNoZWQgdG8gaTM4NjoKLSsjIEVsZjMyX0VoZHIuZV9tYWNoaW5lIEAweDEy Li4weDEzCi0rIyBFbGY2NF9FaGRyLmVfbWFjaGluZSBAMHgxMi4uMHgxMwotKyMgI2RlZmluZSBF TV8zODYgICAgICAgICAgIDMgICAgICAgICAgICAgIC8qIEludGVsIDgwMzg2ICovCi0rIyAjZGVm aW5lIEVNX1g4Nl82NCAgICAgICA2MiAgICAgICAgICAgICAgLyogQU1EIHg4Ni02NCBhcmNoaXRl Y3R1cmUgKi8KLSsjIHBhdGNoIEAweDEyOiAweDNFIC0+IDB4MDMKLSsKLStpZiB7ICFbaXN0YXJn ZXQgImk/ODYtKi0qIl0gJiYgIVtpc3RhcmdldCAieDg2XzY0LSotKiJdIH0gdGhlbiB7Ci0rICAg IHZlcmJvc2UgIlNraXBwaW5nIGkzODYtYmlhcmNoLWNvcmUgdGVzdC4iCi0rICAgIHJldHVybgot K30KLSsKLStzZXQgdGVzdGZpbGUgImkzODYtYmlhcmNoLWNvcmUiCi0rc2V0IGNvcmViejJ1dWZp bGUgJHtzcmNkaXJ9LyR7c3ViZGlyfS8ke3Rlc3RmaWxlfS5jb3JlLmJ6Mi51dQotK3NldCBjb3Jl ZmlsZSAke29iamRpcn0vJHtzdWJkaXJ9LyR7dGVzdGZpbGV9LmNvcmUKLSsjIEVudHJ5IHBvaW50 IG9mIHRoZSBvcmlnaW5hbCBleGVjdXRhYmxlLgotK3NldCBhZGRyZXNzIDB4NDAwMDc4Ci0rCi0r aWYge1tjYXRjaCAic3lzdGVtIFwidXVkZWNvZGUgLW8gLSAke2NvcmViejJ1dWZpbGV9IHwgYnpp cDIgLWRjID4ke2NvcmVmaWxlfVwiIl0gIT0gMH0gewotKyAgICB1bnRlc3RlZCAiZmFpbGVkIHV1 ZGVjb2RlIG9yIGJ6aXAyIgotKyAgICByZXR1cm4gLTEKLSt9Ci0rZmlsZSBzdGF0ICR7Y29yZWZp bGV9IGNvcmVzdGF0Ci0raWYgeyRjb3Jlc3RhdChzaXplKSAhPSAxMDI0MDB9IHsKLSsgICAgdW50 ZXN0ZWQgInV1ZGVjb2RlIG9yIGJ6aXAyIHByb2R1Y2UgaW52YWxpZCByZXN1bHQiCi0rICAgIHJl dHVybiAtMQotK30KLSsKLStnZGJfZXhpdAotK2dkYl9zdGFydAotK2dkYl9yZWluaXRpYWxpemVf ZGlyICRzcmNkaXIvJHN1YmRpcgotKwotKyMgV3JvbmdseSBidWlsdCBHREIgY29tcGxhaW5zIGJ5 OgotKyMgIi4uLiIgaXMgbm90IGEgY29yZSBkdW1wOiBGaWxlIGZvcm1hdCBub3QgcmVjb2duaXpl ZAotKyMgQXMgdGhlIHByb3ZpZGVkIHRlc3QgY29yZSBoYXMgNjRiaXQgUFJTVEFUVVMgaTM4NiBi dWlsdCBHREIgY2Fubm90IHBhcnNlIGl0LgotKyMgVGhpcyBpcyBqdXN0IGEgcHJvYmxlbSBvZiB0 aGUgdGVzdCBjYXJlLCByZWFsLXdvcmxkIGVsZjY0LWkzODYgZmlsZSB3aWxsIGhhdmUKLSsjIDMy Yml0IFBSU1RBVFVTLiAgT25lIGNhbm5vdCBwcmVwYXJlIGVsZjY0LWkzODYgY29yZSBmaWxlIGZy b20gZWxmMzItaTM4NiBieQotKyMgb2JqY29weSBhcyBpdCBjb3JydXB0cyB0aGUgY29yZSBmaWxl IGJleW9uZCBhbGwgcmVjb2duaXRpb24uCi0rIyAiXHJcbkNvcmUgd2FzIGdlbmVyYXRlZCBieSBg XFteXHJcblxdKidcXC5cclxuUHJvZ3JhbSB0ZXJtaW5hdGVkIHdpdGggc2lnbmFsIDExLCBTZWdt ZW50YXRpb24gZmF1bHRcXC5cclxuLioiCi0rZ2RiX3Rlc3QgImNvcmUtZmlsZSAke2NvcmVmaWxl fSIKLSsKLStnZGJfdGVzdCAieC9pICRhZGRyZXNzIiAiXHJcblxbIFx0XF0qJGFkZHJlc3M6XFsg XHRcXSpobHRcWyBcdFxdKiIgIi50ZXh0IGlzIHJlYWRhYmxlIgotLS0tIC9kZXYvbnVsbAkyMDA5 LTA0LTE5IDE0OjQ5OjAwLjk3NDY0ODM4OSArMDIwMAotKysrIGdkYi02LjgvZ2RiL3Rlc3RzdWl0 ZS9nZGIuYXJjaC9pMzg2LWJpYXJjaC1jb3JlLlMJMjAwOS0wNC0xOSAxNDo1MjoyOC4wMDAwMDAw MDAgKzAyMDAKLUBAIC0wLDAgKzEsMjIgQEAKLSsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2Yg R0RCLCB0aGUgR05VIGRlYnVnZ2VyLgotKwotKyAgIENvcHlyaWdodCAyMDA5IEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgotKyAgCi0rICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdh cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsgICBpdCB1bmRlciB0 aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi eQotKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2Yg dGhlIExpY2Vuc2UsIG9yCi0rICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K LSsgIAotKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAotKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyAgIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rICAKLSsgICBZb3Ugc2hvdWxkIGhhdmUg cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotKyAgIGFs b25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJl Ci0rICAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0 b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KLSsgKi8KLSsKLSsJLmdsb2JsIF9zdGFydAotK19zdGFy dDoKLSsJaGx0Ci0tLS0gL2Rldi9udWxsCTIwMDktMDQtMTkgMTQ6NDk6MDAuOTc0NjQ4Mzg5ICsw MjAwCi0rKysgZ2RiLTYuOC9nZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2kzODYtYmlhcmNoLWNvcmUu Y29yZS5iejIudXUJMjAwOS0wNC0xOSAxNTowMjoxMi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAg KzEsMTMgQEAKLStiZWdpbiA2MDAgaTM4Ni1iaWFyY2gtY29yZS5jb3JlLmJ6MgotK00wRUlILjMl ITYyOTM2MWBQMVxQYCEpP19fX19fXDknQCI4USk2UDM4MCc5QCcmI2AwREBgYCJgYCUoYGAKLStN QGAjYCIhPChMYCVGIig6JEdIMTM6OkYtKU0mRCZVLEFEOmAtLSMpTTAmRlQwWFI5LS0sKUQ5YFAo US0mCi0rTSIsKC0mRmBgMDIpJTM4SFRdMFRgJkFIYGBgJ0hAYGBUXj45VCooLCgiJilTRWA+YDlA K0dQPVssTilLQgotK00nSThCTChMXU41VENZXCVWXS8/REIuQk4qVVonVUBdVE43LV1VSjVcXyUw UVRUPCowODYjJU1IVDdYVkoKLStNOUQiK0MhIjIqTDo4RDFYUEQhYC0tTUAqWFQxSDVSRllOJiko ITBQMCM6YEk6OzI7JDVNJlwqOSIwQCU6Ci0rTUtAWFtUKClNKTlON2BEJFZBIV42MyklLDtAOExU YCg3XEsmWzdHO1U6IkI2JyFHRys0NkFMT1pGLjJGLQotK00hQD5DKiU4NlgkLV1DMmBLRTtIRylV TCg5MTNWUjJHXTBCRDpKPVpfYEdAUyxgVyUuOFJNUy0jNVA6SjAKLStNQUoyXDgmWD9AREU7VUY2 OFFITTwsRGAoJzo6SjY1L1M6UEFHKlItMDlbIjhEQkkpJ1ZdWS5bKC9BTSpMCi0rTSJYX09eVjsl RlkuUzZRXUZNPUQzNz41RiwlNC1GMVpGIyxDRkpWVTtIKl5JVDwoJTxWYC4zMiRgSlVbIgotKy9H YDY4P1w3PEQ0WDQpYDAsJD8sYAotK2AKLStlbmQKCmRpZmYgLS1naXQgYS9nZGItNi44LXF1aXQt bmV2ZXItYWJvcnRzLnBhdGNoIGIvZ2RiLTYuOC1xdWl0LW5ldmVyLWFib3J0cy5wYXRjaAppbmRl eCAzZTYzN2M5Li5mNTczYzEwIDEwMDY0NAotLS0gYS9nZGItNi44LXF1aXQtbmV2ZXItYWJvcnRz LnBhdGNoCisrKyBiL2dkYi02LjgtcXVpdC1uZXZlci1hYm9ydHMucGF0Y2gKQEAgLTUsMTEgKzUs MTEgQEAgU29tZSBvZiB0aGUgdGhyZWFkcyBtYXkgbm90IGJlIHByb3Blcmx5IFBUUkFDRV9ERVRB Q0hlZCB3aGljaCBodXJ0cyBpZiB0aGV5CiBzaG91bGQgaGF2ZSBiZWVuIGRldGFjaGVkIHdpdGgg U0lHU1RPUCAoYXMgdGhleSBhcmUgYWNjaWRlbnRhbGx5IGxlZnQgcnVubmluZwogb24gdGhlIGRl YnVnZ2VyIHRlcm1pbmF0aW9uKS4KIAotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2Rl ZnMuaAorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2RlZnMuaAogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjcuOTAuMjAxNDA2MTMub3JpZy9nZGIvZGVmcy5oCTIwMTQtMDYtMTMgMjM6MTA6 MTguODc2NjIzMDE4ICswMjAwCi0rKysgZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZGVmcy5oCTIw MTQtMDYtMTMgMjM6MTA6NTIuNDUwNjYwNTA1ICswMjAwCi1AQCAtMTc0LDYgKzE3NCw3IEBAIGV4 dGVybiB2b2lkIHNldF9xdWl0X2ZsYWcgKHZvaWQpOworLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAu b3JpZy9nZGIvZGVmcy5oCTIwMTUtMDUtMzEgMTg6MDY6MjQuNTc5MDAyNzU3ICswMjAwCisrKysg Z2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZGVmcy5oCTIwMTUtMDUtMzEgMTg6MDY6MjkuMjUzMDMx NjEzICswMjAwCitAQCAtMTQ1LDYgKzE0NSw3IEBAIGV4dGVybiB2b2lkIHNldF9xdWl0X2ZsYWcg KHZvaWQpOwogIC8qIEZsYWcgdGhhdCBmdW5jdGlvbiBxdWl0IHNob3VsZCBjYWxsIHF1aXRfZm9y Y2UuICAqLwogIGV4dGVybiB2b2xhdGlsZSBpbnQgc3luY19xdWl0X2ZvcmNlX3J1bjsKICAKQEAg LTE3LDEzICsxNywxMyBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0MDYxMy9nZGIvZGVmcy5oCiAg ZXh0ZXJuIGludCBpbW1lZGlhdGVfcXVpdDsKICAKICBleHRlcm4gdm9pZCBxdWl0ICh2b2lkKTsK LUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi90b3AuYworSW5kZXg6IGdkYi03LjkuNTAu MjAxNTA1MjAvZ2RiL3RvcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNy45MC4yMDE0MDYxMy5v cmlnL2dkYi90b3AuYwkyMDE0LTA2LTEzIDIzOjEwOjE1LjkxMDYxOTcxNSArMDIwMAotKysrIGdk Yi03LjcuOTAuMjAxNDA2MTMvZ2RiL3RvcC5jCTIwMTQtMDYtMTMgMjM6MTA6MTguODc3NjIzMDIw ICswMjAwCi1AQCAtMTM3OCw3ICsxMzc4LDkgQEAgcXVpdF9mb3JjZSAoY2hhciAqYXJncywgaW50 IGZyb21fdHR5KQotICAgaWYgKGV4LnJlYXNvbiA8IDApIFwKLSAgICAgZXhjZXB0aW9uX3ByaW50 IChnZGJfc3RkZXJyLCBleCkKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL3RvcC5j CTIwMTUtMDUtMzEgMTg6MDY6MjQuNTgwMDAyNzYzICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1 MDUyMC9nZGIvdG9wLmMJMjAxNS0wNS0zMSAxODowNjoyOS4yNTQwMzE2MTkgKzAyMDAKK0BAIC0x NDYzLDcgKzE0NjMsOSBAQCBxdWl0X2ZvcmNlIChjaGFyICphcmdzLCBpbnQgZnJvbV90dHkpCisg ICBxdC5hcmdzID0gYXJnczsKKyAgIHF0LmZyb21fdHR5ID0gZnJvbV90dHk7CiAgCiAtICAvKiBX ZSB3YW50IHRvIGhhbmRsZSBhbnkgcXVpdCBlcnJvcnMgYW5kIGV4aXQgcmVnYXJkbGVzcy4gICov CiArICAvKiBXZSB3YW50IHRvIGhhbmRsZSBhbnkgcXVpdCBlcnJvcnMgYW5kIGV4aXQgcmVnYXJk bGVzcyBidXQgd2Ugc2hvdWxkIG5ldmVyCkBAIC0zMSwxMiArMzEsMTIgQEAgSW5kZXg6IGdkYi03 LjcuOTAuMjAxNDA2MTMvZ2RiL3RvcC5jCiArICBxdWl0X2ZsYWdfY2xlYW51cCA9IDE7CiAgCiAg ICAvKiBHZXQgb3V0IG9mIHRmaW5kIG1vZGUsIGFuZCBraWxsIG9yIGRldGFjaCBhbGwgaW5mZXJp b3JzLiAgKi8KLSAgIERPX1RSWQotSW5kZXg6IGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL3V0aWxz LmMKKyAgIFRSWQorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3V0aWxzLmMKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy43LjkwLjIwMTQwNjEzLm9yaWcvZ2RiL3V0aWxzLmMJMjAxNC0wNi0x MyAyMzoxMDoxOC44Nzg2MjMwMjEgKzAyMDAKLSsrKyBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi91 dGlscy5jCTIwMTQtMDYtMTMgMjM6MTA6MzguMzA3NjQ0NjUyICswMjAwCi1AQCAtMTI1LDYgKzEy NSwxMSBAQCBpbnQgam9iX2NvbnRyb2w7CistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dk Yi91dGlscy5jCTIwMTUtMDUtMzEgMTg6MDY6MjQuNTgyMDAyNzc2ICswMjAwCisrKysgZ2RiLTcu OS41MC4yMDE1MDUyMC9nZGIvdXRpbHMuYwkyMDE1LTA1LTMxIDE4OjA2OjI5LjI1NTAzMTYyNSAr MDIwMAorQEAgLTEyMiw2ICsxMjIsMTEgQEAgaW50IGpvYl9jb250cm9sOwogIAogIGludCBpbW1l ZGlhdGVfcXVpdDsKICAKQEAgLTQ4LDExICs0OCwxMSBAQCBJbmRleDogZ2RiLTcuNy45MC4yMDE0 MDYxMy9nZGIvdXRpbHMuYwogIC8qIE5vbnplcm8gbWVhbnMgdGhhdCBzdHJpbmdzIHdpdGggY2hh cmFjdGVyIHZhbHVlcyA+MHg3RiBzaG91bGQgYmUgcHJpbnRlZAogICAgIGFzIG9jdGFsIGVzY2Fw ZXMuICBaZXJvIG1lYW5zIGp1c3QgcHJpbnQgdGhlIHZhbHVlIChlLmcuIGl0J3MgYW4KICAgICBp bnRlcm5hdGlvbmFsIGNoYXJhY3RlciwgYW5kIHRoZSB0ZXJtaW5hbCBvciB3aW5kb3cgY2FuIGNv cGUuKSAgKi8KLUluZGV4OiBnZGItNy43LjkwLjIwMTQwNjEzL2dkYi9leHRlbnNpb24uYworSW5k ZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2V4dGVuc2lvbi5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuNy45MC4yMDE0MDYxMy5vcmlnL2dkYi9leHRlbnNpb24uYwkyMDE0LTA2LTEzIDAzOjU5 OjM2LjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03LjcuOTAuMjAxNDA2MTMvZ2RiL2V4dGVuc2lv bi5jCTIwMTQtMDYtMTMgMjM6MTE6MzIuNDM0NzA0ODUzICswMjAwCi1AQCAtODE3LDYgKzgxNyw5 IEBAIGNoZWNrX3F1aXRfZmxhZyAodm9pZCkKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcv Z2RiL2V4dGVuc2lvbi5jCTIwMTUtMDUtMzEgMTg6MDY6MjQuNTgyMDAyNzc2ICswMjAwCisrKysg Z2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZXh0ZW5zaW9uLmMJMjAxNS0wNS0zMSAxODowNjoyOS4y NTYwMzE2MzIgKzAyMDAKK0BAIC04MzMsNiArODMzLDkgQEAgY2hlY2tfcXVpdF9mbGFnICh2b2lk KQogICAgaW50IGksIHJlc3VsdCA9IDA7CiAgICBjb25zdCBzdHJ1Y3QgZXh0ZW5zaW9uX2xhbmd1 YWdlX2RlZm4gKmV4dGxhbmc7CiAgCgpkaWZmIC0tZ2l0IGEvZ2RiLTcuMi41MC1zcGFyYy1hZGQt d29ya2Fyb3VuZC10by1icm9rZW4tZGVidWctZmlsZXMucGF0Y2ggYi9nZGItNy4yLjUwLXNwYXJj LWFkZC13b3JrYXJvdW5kLXRvLWJyb2tlbi1kZWJ1Zy1maWxlcy5wYXRjaAppbmRleCBjNTkzN2Yz Li4zZTE0YTU3IDEwMDY0NAotLS0gYS9nZGItNy4yLjUwLXNwYXJjLWFkZC13b3JrYXJvdW5kLXRv LWJyb2tlbi1kZWJ1Zy1maWxlcy5wYXRjaAorKysgYi9nZGItNy4yLjUwLXNwYXJjLWFkZC13b3Jr YXJvdW5kLXRvLWJyb2tlbi1kZWJ1Zy1maWxlcy5wYXRjaApAQCAtMSwxMSArMSwxMSBAQAotSW5k ZXg6IGdkYi03LjYuOTAuMjAxNDAxMjcvZ2RiL2dkYl9iZmQuYworSW5kZXg6IGdkYi03LjkuNTAu MjAxNTA1MjAvZ2RiL2dkYl9iZmQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjYuOTAuMjAxNDAx Mjcub3JpZy9nZGIvZ2RiX2JmZC5jCTIwMTQtMDItMDYgMTc6Mzk6NDYuMzcwMDk2MjkwICswMTAw Ci0rKysgZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvZ2RiX2JmZC5jCTIwMTQtMDItMDYgMTc6NDA6 MTQuOTk2MTI3MjQ3ICswMTAwCi1AQCAtMjksMTIgKzI5LDE0IEBACi0gI2lmZGVmIEhBVkVfWkxJ Ql9ICi0gI2luY2x1ZGUgPHpsaWIuaD4KLSAjZW5kaWYKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIw Lm9yaWcvZ2RiL2dkYl9iZmQuYwkyMDE1LTA1LTMxIDE3OjAyOjU3Ljc0MjMwMzA4NiArMDIwMAor KysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2dkYl9iZmQuYwkyMDE1LTA1LTMxIDE3OjAzOjIw LjE0NTQ0NDQ4MCArMDIwMAorQEAgLTI0LDEyICsyNCwxNCBAQAorICNpbmNsdWRlICJoYXNodGFi LmgiCisgI2luY2x1ZGUgImZpbGVzdHVmZi5oIgorICNpbmNsdWRlICJ2ZWMuaCIKICsjaWZuZGVm IF9fc3BhcmNfXwogICNpZmRlZiBIQVZFX01NQVAKICAjaW5jbHVkZSA8c3lzL21tYW4uaD4KQEAg LTE0LDEwICsxNCwxMCBAQCBJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvZ2RiX2JmZC5j CiAgI2VuZGlmCiAgI2VuZGlmCiArI2VuZGlmCisgI2luY2x1ZGUgInRhcmdldC5oIgorICNpbmNs dWRlICJnZGIvZmlsZWlvLmgiCiAgCi0gdHlwZWRlZiBiZmQgKmJmZHA7Ci0gREVGX1ZFQ19QIChi ZmRwKTsKLUBAIC0yMTAsNiArMjEyLDcgQEAgZnJlZV9vbmVfYmZkX3NlY3Rpb24gKGJmZCAqYWJm ZCwgYXNlY3RpbworQEAgLTQwOCw2ICs0MTAsNyBAQCBmcmVlX29uZV9iZmRfc2VjdGlvbiAoYmZk ICphYmZkLCBhc2VjdGlvCiAgCiAgICBpZiAoc2VjdCAhPSBOVUxMICYmIHNlY3QtPmRhdGEgIT0g TlVMTCkKICAgICAgewpAQCAtMjUsNyArMjUsNyBAQCBJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEy Ny9nZGIvZ2RiX2JmZC5jCiAgI2lmZGVmIEhBVkVfTU1BUAogICAgICAgIGlmIChzZWN0LT5tYXBf YWRkciAhPSBOVUxMKQogIAl7Ci1AQCAtMjIwLDYgKzIyMyw3IEBAIGZyZWVfb25lX2JmZF9zZWN0 aW9uIChiZmQgKmFiZmQsIGFzZWN0aW8KK0BAIC00MTgsNiArNDIxLDcgQEAgZnJlZV9vbmVfYmZk X3NlY3Rpb24gKGJmZCAqYWJmZCwgYXNlY3RpbwogIAl9CiAgICAgICAgZWxzZQogICNlbmRpZgpA QCAtMzMsNyArMzMsNyBAQCBJbmRleDogZ2RiLTcuNi45MC4yMDE0MDEyNy9nZGIvZ2RiX2JmZC5j CiAgCXhmcmVlIChzZWN0LT5kYXRhKTsKICAgICAgfQogIH0KLUBAIC0zNzEsNiArMzc1LDcgQEAg Z2RiX2JmZF9tYXBfc2VjdGlvbiAoYXNlY3Rpb24gKnNlY3RwLCBiZgorQEAgLTU2OSw2ICs1NzMs NyBAQCBnZGJfYmZkX21hcF9zZWN0aW9uIChhc2VjdGlvbiAqc2VjdHAsIGJmCiAgICBpZiAoZGVz Y3JpcHRvci0+ZGF0YSAhPSBOVUxMKQogICAgICBnb3RvIGRvbmU7CiAgCkBAIC00MSw3ICs0MSw3 IEBAIEluZGV4OiBnZGItNy42LjkwLjIwMTQwMTI3L2dkYi9nZGJfYmZkLmMKICAjaWZkZWYgSEFW RV9NTUFQCiAgICBpZiAoIWJmZF9pc19zZWN0aW9uX2NvbXByZXNzZWQgKGFiZmQsIHNlY3RwKSkK ICAgICAgewotQEAgLTQwNSw2ICs0MTAsNyBAQCBnZGJfYmZkX21hcF9zZWN0aW9uIChhc2VjdGlv biAqc2VjdHAsIGJmCitAQCAtNjAzLDYgKzYwOCw3IEBAIGdkYl9iZmRfbWFwX3NlY3Rpb24gKGFz ZWN0aW9uICpzZWN0cCwgYmYKICAJfQogICAgICB9CiAgI2VuZGlmIC8qIEhBVkVfTU1BUCAqLwoK ZGlmZiAtLWdpdCBhL2dkYi1hcmNoZXItcGllLWFkZG9ucy5wYXRjaCBiL2dkYi1hcmNoZXItcGll LWFkZG9ucy5wYXRjaAppbmRleCA4ZjdjZGVhLi44NWE2OTY3IDEwMDY0NAotLS0gYS9nZGItYXJj aGVyLXBpZS1hZGRvbnMucGF0Y2gKKysrIGIvZ2RiLWFyY2hlci1waWUtYWRkb25zLnBhdGNoCkBA IC0xLDggKzEsOCBAQAotSW5kZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2dkYnR5cGVzLmgK K0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9nZGJ0eXBlcy5oCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuNy41MC4yMDE0MDYwOS5vcmlnL2dkYi9nZGJ0eXBlcy5oCTIwMTQtMDYtMTMgMjA6 MjM6NTUuMjEwNjI2NDI3ICswMjAwCi0rKysgZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvZ2RidHlw ZXMuaAkyMDE0LTA2LTEzIDIwOjI0OjI2LjE1NjY1ODYyMiArMDIwMAotQEAgLTQ0MCw2ICs0NDAs NyBAQCBlbnVtIGZpZWxkX2xvY19raW5kCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dk Yi9nZGJ0eXBlcy5oCTIwMTUtMDUtMzEgMTY6NTU6MjkuNzIzNDc1NDg1ICswMjAwCisrKysgZ2Ri LTcuOS41MC4yMDE1MDUyMC9nZGIvZ2RidHlwZXMuaAkyMDE1LTA1LTMxIDE2OjU1OjQ5LjcxNjYw MTY2OSArMDIwMAorQEAgLTQ2Miw2ICs0NjIsNyBAQCBlbnVtIGZpZWxkX2xvY19raW5kCiAgICB7 CiAgICAgIEZJRUxEX0xPQ19LSU5EX0JJVFBPUywJLyoqPCBiaXRwb3MgKi8KICAgICAgRklFTERf TE9DX0tJTkRfRU5VTVZBTCwJLyoqPCBlbnVtdmFsICovCkBAIC0xMCwxNSArMTAsMTUgQEAgSW5k ZXg6IGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL2dkYnR5cGVzLmgKICAgICAgRklFTERfTE9DX0tJ TkRfUEhZU0FERFIsCS8qKjwgcGh5c2FkZHIgKi8KICAgICAgRklFTERfTE9DX0tJTkRfUEhZU05B TUUsCS8qKjwgcGh5c25hbWUgKi8KICAgICAgRklFTERfTE9DX0tJTkRfRFdBUkZfQkxPQ0sJLyoq PCBkd2FyZl9ibG9jayAqLwotQEAgLTYxNyw2ICs2MTgsNyBAQCBzdHJ1Y3QgbWFpbl90eXBlCi0g CSAgIGZpZWxkLiAgT3RoZXJ3aXNlLCBwaHlzbmFtZSBpcyB0aGUgbWFuZ2xlZCBsYWJlbCBvZiB0 aGUKLSAJICAgc3RhdGljIGZpZWxkLiAgKi8KK0BAIC01MTMsNiArNTE0LDcgQEAgdW5pb24gZmll bGRfbG9jYXRpb24KKyAgICAgIGZpZWxkLiAgT3RoZXJ3aXNlLCBwaHlzbmFtZSBpcyB0aGUgbWFu Z2xlZCBsYWJlbCBvZiB0aGUKKyAgICAgIHN0YXRpYyBmaWVsZC4gICovCiAgCi0rCS8qIFRoaXMg YWRkcmVzcyBpcyB1bnJlbG9jYXRlZCBieSB0aGUgb2JqZmlsZSdzIEFOT0ZGU0VULiAgKi8KLSAJ Q09SRV9BRERSIHBoeXNhZGRyOwotIAljb25zdCBjaGFyICpwaHlzbmFtZTsKKysgIC8qIFRoaXMg YWRkcmVzcyBpcyB1bnJlbG9jYXRlZCBieSB0aGUgb2JqZmlsZSdzIEFOT0ZGU0VULiAgKi8KKyAg IENPUkVfQUREUiBwaHlzYWRkcjsKKyAgIGNvbnN0IGNoYXIgKnBoeXNuYW1lOwogIAotQEAgLTEy NjIsNiArMTI2NCw3IEBAIGV4dGVybiB2b2lkIGFsbG9jYXRlX2duYXRfYXV4X3R5cGUgKHN0cnUK K0BAIC0xMzg2LDYgKzEzODgsNyBAQCBleHRlcm4gdm9pZCBzZXRfdHlwZV92cHRyX2Jhc2V0eXBl IChzdHJ1CiAgI2RlZmluZSBGSUVMRF9FTlVNVkFMX0xWQUwodGhpc2ZsZCkgKCh0aGlzZmxkKS5s b2MuZW51bXZhbCkKICAjZGVmaW5lIEZJRUxEX0VOVU1WQUwodGhpc2ZsZCkgKEZJRUxEX0VOVU1W QUxfTFZBTCAodGhpc2ZsZCkgKyAwKQogICNkZWZpbmUgRklFTERfU1RBVElDX1BIWVNOQU1FKHRo aXNmbGQpICgodGhpc2ZsZCkubG9jLnBoeXNuYW1lKQpAQCAtMjYsNyArMjYsNyBAQCBJbmRleDog Z2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvZ2RidHlwZXMuaAogICNkZWZpbmUgRklFTERfU1RBVElD X1BIWVNBRERSKHRoaXNmbGQpICgodGhpc2ZsZCkubG9jLnBoeXNhZGRyKQogICNkZWZpbmUgRklF TERfRFdBUkZfQkxPQ0sodGhpc2ZsZCkgKCh0aGlzZmxkKS5sb2MuZHdhcmZfYmxvY2spCiAgI2Rl ZmluZSBTRVRfRklFTERfQklUUE9TKHRoaXNmbGQsIGJpdHBvcykJCQlcCi1AQCAtMTI3Myw2ICsx Mjc2LDcgQEAgZXh0ZXJuIHZvaWQgYWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAoc3RydQorQEAgLTEz OTcsNiArMTQwMCw3IEBAIGV4dGVybiB2b2lkIHNldF90eXBlX3ZwdHJfYmFzZXR5cGUgKHN0cnUK ICAjZGVmaW5lIFNFVF9GSUVMRF9QSFlTTkFNRSh0aGlzZmxkLCBuYW1lKQkJCVwKICAgIChGSUVM RF9MT0NfS0lORCAodGhpc2ZsZCkgPSBGSUVMRF9MT0NfS0lORF9QSFlTTkFNRSwJCVwKICAgICBG SUVMRF9TVEFUSUNfUEhZU05BTUUgKHRoaXNmbGQpID0gKG5hbWUpKQpAQCAtMzQsNyArMzQsNyBA QCBJbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvZ2RidHlwZXMuaAogICNkZWZpbmUgU0VU X0ZJRUxEX1BIWVNBRERSKHRoaXNmbGQsIGFkZHIpCQkJXAogICAgKEZJRUxEX0xPQ19LSU5EICh0 aGlzZmxkKSA9IEZJRUxEX0xPQ19LSU5EX1BIWVNBRERSLAkJXAogICAgIEZJRUxEX1NUQVRJQ19Q SFlTQUREUiAodGhpc2ZsZCkgPSAoYWRkcikpCi1AQCAtMTI4OSw2ICsxMjkzLDcgQEAgZXh0ZXJu IHZvaWQgYWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAoc3RydQorQEAgLTE0MTMsNiArMTQxNyw3IEBA IGV4dGVybiB2b2lkIHNldF90eXBlX3ZwdHJfYmFzZXR5cGUgKHN0cnUKICAjZGVmaW5lIFRZUEVf RklFTERfQklUUE9TKHRoaXN0eXBlLCBuKSBGSUVMRF9CSVRQT1MgKFRZUEVfRklFTEQgKHRoaXN0 eXBlLCBuKSkKICAjZGVmaW5lIFRZUEVfRklFTERfRU5VTVZBTCh0aGlzdHlwZSwgbikgRklFTERf RU5VTVZBTCAoVFlQRV9GSUVMRCAodGhpc3R5cGUsIG4pKQogICNkZWZpbmUgVFlQRV9GSUVMRF9T VEFUSUNfUEhZU05BTUUodGhpc3R5cGUsIG4pIEZJRUxEX1NUQVRJQ19QSFlTTkFNRSAoVFlQRV9G SUVMRCAodGhpc3R5cGUsIG4pKQpAQCAtNDIsMTAgKzQyLDEwIEBAIEluZGV4OiBnZGItNy43LjUw LjIwMTQwNjA5L2dkYi9nZGJ0eXBlcy5oCiAgI2RlZmluZSBUWVBFX0ZJRUxEX1NUQVRJQ19QSFlT QUREUih0aGlzdHlwZSwgbikgRklFTERfU1RBVElDX1BIWVNBRERSIChUWVBFX0ZJRUxEICh0aGlz dHlwZSwgbikpCiAgI2RlZmluZSBUWVBFX0ZJRUxEX0RXQVJGX0JMT0NLKHRoaXN0eXBlLCBuKSBG SUVMRF9EV0FSRl9CTE9DSyAoVFlQRV9GSUVMRCAodGhpc3R5cGUsIG4pKQogICNkZWZpbmUgVFlQ RV9GSUVMRF9BUlRJRklDSUFMKHRoaXN0eXBlLCBuKSBGSUVMRF9BUlRJRklDSUFMKFRZUEVfRklF TEQodGhpc3R5cGUsbikpCi1JbmRleDogZ2RiLTcuNy41MC4yMDE0MDYwOS9nZGIvanYtbGFuZy5j CitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvanYtbGFuZy5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuNy41MC4yMDE0MDYwOS5vcmlnL2dkYi9qdi1sYW5nLmMJMjAxNC0wNi0xMyAyMDoy Mzo1NS4yMTE2MjY0MjggKzAyMDAKLSsrKyBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9qdi1sYW5n LmMJMjAxNC0wNi0xMyAyMDoyMzo1Ni4yNzg2Mjc1MzQgKzAyMDAKKy0tLSBnZGItNy45LjUwLjIw MTUwNTIwLm9yaWcvZ2RiL2p2LWxhbmcuYwkyMDE1LTA1LTMxIDE2OjU1OjI5LjcyNDQ3NTQ5MSAr MDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2p2LWxhbmcuYwkyMDE1LTA1LTMxIDE2 OjU1OjMwLjgyMDQ4MjQwOCArMDIwMAogQEAgLTQyNyw3ICs0MjcsOCBAQCBqYXZhX2xpbmtfY2xh c3NfdHlwZSAoc3RydWN0IGdkYmFyY2ggKmdkCiAgCiAgICBmaWVsZHMgPSBOVUxMOwpAQCAtNjYs MTEgKzY2LDExIEBAIEluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi9qdi1sYW5nLmMKICAg ICAgICBlbHNlCiAgCVNFVF9GSUVMRF9CSVRQT1MgKFRZUEVfRklFTEQgKHR5cGUsIGkpLCA4ICog Ym9mZnNldCk7CiAgICAgICAgaWYgKGFjY2ZsYWdzICYgMHg4MDAwKQkvKiBGSUVMRF9VTlJFU09M VkVEX0ZMQUcgKi8KLUluZGV4OiBnZGItNy43LjUwLjIwMTQwNjA5L2dkYi92YWx1ZS5jCitJbmRl eDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdmFsdWUuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjcuNTAuMjAxNDA2MDkub3JpZy9nZGIvdmFsdWUuYwkyMDE0LTA2LTEzIDIwOjIzOjU1LjIxMjYy NjQyOSArMDIwMAotKysrIGdkYi03LjcuNTAuMjAxNDA2MDkvZ2RiL3ZhbHVlLmMJMjAxNC0wNi0x MyAyMDoyMzo1Ni4yNzk2Mjc1MzUgKzAyMDAKLUBAIC0yNzgzLDcgKzI3ODMsOCBAQCB2YWx1ZV9z dGF0aWNfZmllbGQgKHN0cnVjdCB0eXBlICp0eXBlLCBpCistLS0gZ2RiLTcuOS41MC4yMDE1MDUy MC5vcmlnL2dkYi92YWx1ZS5jCTIwMTUtMDUtMzEgMTY6NTU6MjkuNzI1NDc1NDk3ICswMjAwCisr KysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdmFsdWUuYwkyMDE1LTA1LTMxIDE2OjU1OjMwLjgy MTQ4MjQxNSArMDIwMAorQEAgLTI5NTEsNyArMjk1MSw4IEBAIHZhbHVlX3N0YXRpY19maWVsZCAo c3RydWN0IHR5cGUgKnR5cGUsIGkKICAgICAgewogICAgICBjYXNlIEZJRUxEX0xPQ19LSU5EX1BI WVNBRERSOgogICAgICAgIHJldHZhbCA9IHZhbHVlX2F0X2xhenkgKFRZUEVfRklFTERfVFlQRSAo dHlwZSwgZmllbGRubyksCgpkaWZmIC0tZ2l0IGEvZ2RiLWFyY2hlci5wYXRjaCBiL2dkYi1hcmNo ZXIucGF0Y2gKaW5kZXggN2U3NmQ3Yi4uYWVmMWRjZiAxMDA2NDQKLS0tIGEvZ2RiLWFyY2hlci5w YXRjaAorKysgYi9nZGItYXJjaGVyLnBhdGNoCkBAIC0yLDcgKzIsNyBAQCBodHRwOi8vc291cmNl d2FyZS5vcmcvZ2RiL3dpa2kvUHJvamVjdEFyY2hlcgogaHR0cDovL3NvdXJjZXdhcmUub3JnL2dk Yi93aWtpL0FyY2hlckJyYW5jaE1hbmFnZW1lbnQKIAogR0lUIHNuYXBzaG90OgotY29tbWl0IGQx YTA5YmYyZjhlN2UzZjc1MmExYmJlYmExMzViYzA4MGJmMGM4NjUKK2NvbW1pdCBjOGE4NDEzZTE2 MGQ5MzVjMTJjYmM2ZTQ4NGRkOGI3YWI4MGY1ZjYyCiAKIHRyb21leS9weXRob24KIApAQCAtMTYs MTAgKzE2LDEwIEBAIGluZGV4IDAwMDAwMDAuLjE3M2I4ZWEKICtUaGlzIGJyYW5jaCBvcmlnaW5h bGx5IGhlbGQgdGhlIFB5dGhvbiBjb2RlIGZvciBnZGIuICBJdCBzdGlsbCBleGlzdHMKICtiZWNh dXNlIGEgc21hbGwgYW1vdW50IG9mIGNvZGUgaGVyZSBoYXMgbm90IHlldCBiZWVuIG1lcmdlZCB1 cHN0cmVhbS4KIGRpZmYgLS1naXQgYS9nZGIvTWFrZWZpbGUuaW4gYi9nZGIvTWFrZWZpbGUuaW4K LWluZGV4IGJlNjliNmYuLmE0NDgzZTQgMTAwNjQ0CitpbmRleCA5NTEwNGVmLi5hOWIxOThhIDEw MDY0NAogLS0tIGEvZ2RiL01ha2VmaWxlLmluCiArKysgYi9nZGIvTWFrZWZpbGUuaW4KLUBAIC0x NTE1LDYgKzE1MTUsMTIgQEAgc3RhbXAtaDogJChzcmNkaXIpL2NvbmZpZy5pbiBjb25maWcuc3Rh dHVzCitAQCAtMTUzNCw2ICsxNTM0LDEyIEBAIHN0YW1wLWg6ICQoc3JjZGlyKS9jb25maWcuaW4g Y29uZmlnLnN0YXR1cwogIAkgIENPTkZJR19MSU5LUz0gXAogIAkgICQoU0hFTEwpIGNvbmZpZy5z dGF0dXMKICAKQEAgLTMzLDExICszMywxMSBAQCBpbmRleCBiZTY5YjZmLi5hNDQ4M2U0IDEwMDY0 NAogIAkkKFNIRUxMKSBjb25maWcuc3RhdHVzIC0tcmVjaGVjawogIAogZGlmZiAtLWdpdCBhL2dk Yi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbiBiL2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmls ZS5pbgotaW5kZXggMDBjNzBiYi4uZjkzZmZkZCAxMDA2NDQKK2luZGV4IDMwY2ZkMTcuLmU5Nzdi MzAgMTAwNjQ0CiAtLS0gYS9nZGIvZGF0YS1kaXJlY3RvcnkvTWFrZWZpbGUuaW4KICsrKyBiL2dk Yi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgotQEAgLTY0LDcgKzY0LDEwIEBAIFBZVEhPTl9G SUxFX0xJU1QgPSBcCi0gCWdkYi9wcmludGluZy5weSBcCitAQCAtNjUsNyArNjUsMTAgQEAgUFlU SE9OX0ZJTEVfTElTVCA9IFwKKyAJZ2RiL3Vud2luZGVyLnB5IFwKICAJZ2RiL3Byb21wdC5weSBc CiAgCWdkYi94bWV0aG9kLnB5IFwKICsJZ2RiL3R5cGVzLnB5IFwKQEAgLTQ2LDggKzQ2LDggQEAg aW5kZXggMDBjNzBiYi4uZjkzZmZkZCAxMDA2NDQKICsJZ2RiL2NvbW1hbmQvcGFob2xlLnB5IFwK ICAJZ2RiL2NvbW1hbmQveG1ldGhvZHMucHkgXAogIAlnZGIvY29tbWFuZC9mcmFtZV9maWx0ZXJz LnB5IFwKLSAJZ2RiL2NvbW1hbmQvdHlwZV9wcmludGVycy5weSBcCi1AQCAtNzQsNiArNzcsOCBA QCBQWVRIT05fRklMRV9MSVNUID0gXAorIAlnZGIvY29tbWFuZC91bndpbmRlcnMucHkgXAorQEAg LTc2LDYgKzc5LDggQEAgUFlUSE9OX0ZJTEVfTElTVCA9IFwKICAJZ2RiL2Z1bmN0aW9uL19faW5p dF9fLnB5IFwKICAJZ2RiL2Z1bmN0aW9uL2NhbGxlcl9pcy5weSBcCiAgCWdkYi9mdW5jdGlvbi9z dHJmbnMucHkgXApAQCAtNTcsNyArNTcsNyBAQCBpbmRleCAwMGM3MGJiLi5mOTNmZmRkIDEwMDY0 NAogIAlnZGIvcHJpbnRlci9ib3VuZF9yZWdpc3RlcnMucHkKICAKIGRpZmYgLS1naXQgYS9nZGIv ZG9jL2dkYi50ZXhpbmZvIGIvZ2RiL2RvYy9nZGIudGV4aW5mbwotaW5kZXggZTA4NmMzMy4uNWRm ZWIxZCAxMDA2NDQKK2luZGV4IDE2NjUzNzIuLmM0Y2FmZmMgMTAwNjQ0CiAtLS0gYS9nZGIvZG9j L2dkYi50ZXhpbmZvCiArKysgYi9nZGIvZG9jL2dkYi50ZXhpbmZvCiBAQCAtMTIyNSw2ICsxMjI1 LDE2IEBAIGZvciByZW1vdGUgZGVidWdnaW5nLgpAQCAtNzgsNyArNzgsNyBAQCBpbmRleCBlMDg2 YzMzLi41ZGZlYjFkIDEwMDY0NAogIEBpdGVtIC10dWkKICBAY2luZGV4IEBjb2Rley0tdHVpfQog ZGlmZiAtLWdpdCBhL2dkYi9kb2MvcHl0aG9uLnRleGkgYi9nZGIvZG9jL3B5dGhvbi50ZXhpCi1p bmRleCAyMzRjZTVjLi5lOTQwMTI1IDEwMDY0NAoraW5kZXggNTdlYzIyZS4uMTNiZWIwNSAxMDA2 NDQKIC0tLSBhL2dkYi9kb2MvcHl0aG9uLnRleGkKICsrKyBiL2dkYi9kb2MvcHl0aG9uLnRleGkK IEBAIC04OCw4ICs4OCw2IEBAIGNvbnRhaW5pbmcgQGNvZGV7ZW5kfS4gIEZvciBleGFtcGxlOgpA QCAtMTExLDcgKzExMSw3IEBAIGluZGV4IDA1YTM4YjIuLjk4MDFmZGYgMTAwNjQ0CiAgICBzZXQg dmFyaWFibGUgJGdkYl9pbml0X2RvbmUgPSAxCiAgCiBkaWZmIC0tZ2l0IGEvZ2RiL21haW4uYyBi L2dkYi9tYWluLmMKLWluZGV4IGFjY2Q5MjcuLmVkMjExZjYgMTAwNjQ0CitpbmRleCBhZWNkNjBh Li5kMGY3ODM0IDEwMDY0NAogLS0tIGEvZ2RiL21haW4uYwogKysrIGIvZ2RiL21haW4uYwogQEAg LTMzLDYgKzMzLDcgQEAKQEAgLTEyMiw3ICsxMjIsNyBAQCBpbmRleCBhY2NkOTI3Li5lZDIxMWY2 IDEwMDY0NAogICNpbmNsdWRlICJzb3VyY2UuaCIKICAjaW5jbHVkZSAiY2xpL2NsaS1jbWRzLmgi CiAgI2luY2x1ZGUgIm9iamZpbGVzLmgiCi1AQCAtNDQ0LDYgKzQ0NSw4IEBAIGNhcHR1cmVkX21h aW4gKHZvaWQgKmRhdGEpCitAQCAtNDUzLDYgKzQ1NCw4IEBAIGNhcHR1cmVkX21haW4gKHZvaWQg KmRhdGEpCiAgICBjaGFyICpjZGFyZyA9IE5VTEw7CiAgICBjaGFyICp0dHlhcmcgPSBOVUxMOwog IApAQCAtMTMxLDcgKzEzMSw3IEBAIGluZGV4IGFjY2Q5MjcuLmVkMjExZjYgMTAwNjQ0CiAgICAv KiBUaGVzZSBhcmUgc3RhdGljIHNvIHRoYXQgd2UgY2FuIHRha2UgdGhlaXIgYWRkcmVzcyBpbiBh bgogICAgICAgaW5pdGlhbGl6ZXIuICAqLwogICAgc3RhdGljIGludCBwcmludF9oZWxwOwotQEAg LTY0OSwxMCArNjUyLDE0IEBAIGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCitAQCAtNjYzLDEw ICs2NjYsMTQgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKICAgICAgICB7ImFyZ3MiLCBu b19hcmd1bWVudCwgJnNldF9hcmdzLCAxfSwKICAgICAgICB7ImwiLCByZXF1aXJlZF9hcmd1bWVu dCwgMCwgJ2wnfSwKICAgICAgICB7InJldHVybi1jaGlsZC1yZXN1bHQiLCBub19hcmd1bWVudCwg JnJldHVybl9jaGlsZF9yZXN1bHQsIDF9LApAQCAtMTQ3LDcgKzE0Nyw3IEBAIGluZGV4IGFjY2Q5 MjcuLmVkMjExZjYgMTAwNjQ0CiAgICAgICAgewogIAlpbnQgb3B0aW9uX2luZGV4OwogIAotQEAg LTY3MCw2ICs2NzcsOSBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQorQEAgLTY4NCw2ICs2 OTEsOSBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQogIAkgIGNhc2UgMDoKICAJICAgIC8q IExvbmcgb3B0aW9uIHRoYXQganVzdCBzZXRzIGEgZmxhZy4gICovCiAgCSAgICBicmVhazsKQEAg LTE1Nyw3ICsxNTcsNyBAQCBpbmRleCBhY2NkOTI3Li5lZDIxMWY2IDEwMDY0NAogIAkgIGNhc2Ug T1BUX1NFOgogIAkgICAgc3ltYXJnID0gb3B0YXJnOwogIAkgICAgZXhlY2FyZyA9IG9wdGFyZzsK LUBAIC04NTEsNyArODYxLDMxIEBAIGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCitAQCAtODY0 LDcgKzg3NCwzMSBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQogIAogICAgLyogTm93IHRo YXQgZ2RiX2luaXQgaGFzIGNyZWF0ZWQgdGhlIGluaXRpYWwgaW5mZXJpb3IsIHdlJ3JlIGluCiAg ICAgICBwb3NpdGlvbiB0byBzZXQgYXJncyBmb3IgdGhhdCBpbmZlcmlvci4gICovCkBAIC0xOTAs NyArMTkwLDcgQEAgaW5kZXggYWNjZDkyNy4uZWQyMTFmNiAxMDA2NDQKICAgICAgewogICAgICAg IC8qIFRoZSByZW1haW5pbmcgb3B0aW9ucyBhcmUgdGhlIGNvbW1hbmQtbGluZSBvcHRpb25zIGZv ciB0aGUKICAJIGluZmVyaW9yLiAgVGhlIGZpcnN0IG9uZSBpcyB0aGUgc3ltL2V4ZWMgZmlsZSwg YW5kIHRoZSByZXN0Ci1AQCAtMTEyOSw3ICsxMTYzLDggQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAq ZGF0YSkKK0BAIC0xMTM3LDcgKzExNzEsOCBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQog IAogICAgLyogUmVhZCBpbiB0aGUgb2xkIGhpc3RvcnkgYWZ0ZXIgYWxsIHRoZSBjb21tYW5kIGZp bGVzIGhhdmUgYmVlbgogICAgICAgcmVhZC4gICovCkBAIC0yMDAsNyArMjAwLDcgQEAgaW5kZXgg YWNjZDkyNy4uZWQyMTFmNiAxMDA2NDQKICAKICAgIGlmIChiYXRjaF9mbGFnKQogICAgICB7Ci1A QCAtMTE0MCwxMyArMTE3NSwyNSBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQorQEAgLTEx NDgsMTMgKzExODMsMjUgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKICAgIC8qIFNob3cg dGltZSBhbmQvb3Igc3BhY2UgdXNhZ2UuICAqLwogICAgZG9fY2xlYW51cHMgKHByZV9zdGF0X2No YWluKTsKICAKQEAgLTIzMiw3ICsyMzIsNyBAQCBpbmRleCBhY2NkOTI3Li5lZDIxMWY2IDEwMDY0 NAogICAgICB9CiAgICAvKiBObyBleGl0IC0tIGV4aXQgaXMgdGhyb3VnaCBxdWl0X2NvbW1hbmQu ICAqLwogIH0KLUBAIC0xMTgwLDYgKzEyMjcsMTIgQEAgcHJpbnRfZ2RiX2hlbHAgKHN0cnVjdCB1 aV9maWxlICpzdHJlYW0pCitAQCAtMTE4OCw2ICsxMjM1LDEyIEBAIHByaW50X2dkYl9oZWxwIChz dHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKQogICAgZnB1dHNfdW5maWx0ZXJlZCAoXygiXAogIFRoaXMg aXMgdGhlIEdOVSBkZWJ1Z2dlci4gIFVzYWdlOlxuXG5cCiAgICAgIGdkYiBbb3B0aW9uc10gW2V4 ZWN1dGFibGUtZmlsZSBbY29yZS1maWxlIG9yIHByb2Nlc3MtaWRdXVxuXApAQCAtMjQ1LDEwICsy NDUsMTAgQEAgaW5kZXggYWNjZDkyNy4uZWQyMTFmNiAxMDA2NDQKICAgICAgZ2RiIFtvcHRpb25z XSAtLWFyZ3MgZXhlY3V0YWJsZS1maWxlIFtpbmZlcmlvci1hcmd1bWVudHMgLi4uXVxuXG5cCiAg IiksIHN0cmVhbSk7CiAgICBmcHV0c191bmZpbHRlcmVkIChfKCJcCi1AQCAtMTIyNSw2ICsxMjc4 LDEzIEBAIE91dHB1dCBhbmQgdXNlciBpbnRlcmZhY2UgY29udHJvbDpcblxuXAorQEAgLTEyMzIs NiArMTI4NSwxMyBAQCBPdXRwdXQgYW5kIHVzZXIgaW50ZXJmYWNlIGNvbnRyb2w6XG5cblwKKyAj ZW5kaWYKICAgIGZwdXRzX3VuZmlsdGVyZWQgKF8oIlwKICAgIC0tZGJ4ICAgICAgICAgICAgICBE QlggY29tcGF0aWJpbGl0eSBtb2RlLlxuXAotICAgLS14ZGIgICAgICAgICAgICAgIFhEQiBjb21w YXRpYmlsaXR5IG1vZGUuXG5cCiArIiksIHN0cmVhbSk7CiArI2lmIEhBVkVfUFlUSE9OCiArICBm cHV0c191bmZpbHRlcmVkIChfKCJcCkBAIC00NDMsNyArNDQzLDcgQEAgaW5kZXggMDAwMDAwMC4u ODc0MjY4MAogKwogK0luU2NvcGUgKCkKIGRpZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5dGhvbi5j IGIvZ2RiL3B5dGhvbi9weXRob24uYwotaW5kZXggYjFkODI4My4uNTRhMmQ5YiAxMDA2NDQKK2lu ZGV4IDRmODhiMGUuLjg3MGExYmEgMTAwNjQ0CiAtLS0gYS9nZGIvcHl0aG9uL3B5dGhvbi5jCiAr KysgYi9nZGIvcHl0aG9uL3B5dGhvbi5jCiBAQCAtOTMsNiArOTMsOCBAQCBjb25zdCBzdHJ1Y3Qg ZXh0ZW5zaW9uX2xhbmd1YWdlX2RlZm4gZXh0ZW5zaW9uX2xhbmd1YWdlX3B5dGhvbiA9CkBAIC00 NTUsNyArNDU1LDcgQEAgaW5kZXggYjFkODI4My4uNTRhMmQ5YiAxMDA2NDQKICAjaW5jbHVkZSAi dGFyZ2V0LmgiCiAgI2luY2x1ZGUgImdkYnRocmVhZC5oIgogICNpbmNsdWRlICJpbnRlcnBzLmgi Ci1AQCAtMTIyMCw2ICsxMjIyLDgzIEBAIGdkYnB5X3ByaW50X3N0YWNrICh2b2lkKQorQEAgLTEy NjIsNiArMTI2NCw4MyBAQCBnZGJweV9wcmludF9zdGFjayAodm9pZCkKICAKICAvKiBSZXR1cm4g dGhlIGN1cnJlbnQgUHJvZ3NwYWNlLgogICAgIFRoZXJlIGFsd2F5cyBpcyBvbmUuICAqLwpAQCAt NTM5LDcgKzUzOSw3IEBAIGluZGV4IGIxZDgyODMuLjU0YTJkOWIgMTAwNjQ0CiAgCiAgc3RhdGlj IFB5T2JqZWN0ICoKICBnZGJweV9nZXRfY3VycmVudF9wcm9nc3BhY2UgKFB5T2JqZWN0ICp1bnVz ZWQxLCBQeU9iamVjdCAqdW51c2VkMikKLUBAIC0xOTEzLDYgKzE5OTIsOCBAQCBzdGF0aWMgUHlN ZXRob2REZWYgR2RiTWV0aG9kc1tdID0KK0BAIC0xOTgyLDYgKzIwNjEsOCBAQCBQeU1ldGhvZERl ZiBweXRob25fR2RiTWV0aG9kc1tdID0KICBFdmFsdWF0ZSBjb21tYW5kLCBhIHN0cmluZywgYXMg YSBnZGIgQ0xJIGNvbW1hbmQuICBPcHRpb25hbGx5IHJldHVybnNcblwKICBhIFB5dGhvbiBTdHJp bmcgY29udGFpbmluZyB0aGUgb3V0cHV0IG9mIHRoZSBjb21tYW5kIGlmIHRvX3N0cmluZyBpc1xu XAogIHNldCB0byBUcnVlLiIgfSwKQEAgLTU0OSw3ICs1NDksNyBAQCBpbmRleCBiMWQ4MjgzLi41 NGEyZDliIDEwMDY0NAogICAgICAiUmV0dXJuIGEgZ2RiIHBhcmFtZXRlcidzIHZhbHVlIiB9LAog IAogZGlmZiAtLWdpdCBhL2dkYi9weXRob24vcHl0aG9uLmggYi9nZGIvcHl0aG9uL3B5dGhvbi5o Ci1pbmRleCA5ZTk5OTkyLi5jNzc2ZTU5IDEwMDY0NAoraW5kZXggZTZiZmNjYS4uNjg4ZGFhMyAx MDA2NDQKIC0tLSBhL2dkYi9weXRob24vcHl0aG9uLmgKICsrKyBiL2dkYi9weXRob24vcHl0aG9u LmgKIEBAIC0yNSw0ICsyNSw2IEBACkBAIC01NjAsNyArNTYwLDcgQEAgaW5kZXggOWU5OTk5Mi4u Yzc3NmU1OSAxMDA2NDQKICsKICAjZW5kaWYgLyogR0RCX1BZVEhPTl9IICovCiBkaWZmIC0tZ2l0 IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZ2RiL3NlbGZ0ZXN0LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2Ri LmdkYi9zZWxmdGVzdC5leHAKLWluZGV4IDBiMTFlMTIuLmUzNWU4MjkgMTAwNjQ0CitpbmRleCA5 ZjI1YTQ4Li44OGIwODQyIDEwMDY0NAogLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZ2RiL3NlbGZ0 ZXN0LmV4cAogKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuZ2RiL3NlbGZ0ZXN0LmV4cAogQEAgLTky LDYgKzkyLDEwIEBAIHByb2MgZG9fc3RlcHNfYW5kX25leHRzIHt9IHsKQEAgLTU3NSw3ICs1NzUs NyBAQCBpbmRleCAwYjExZTEyLi5lMzVlODI5IDEwMDY0NAogIAkJc2V0IGRlc2NyaXB0aW9uICJu ZXh0IG92ZXIgbWFrZV9jb21tYW5kX3N0YXRzX2NsZWFudXAgYW5kIGV2ZXJ5dGhpbmcgaXQgY2Fs bHMiCiAgCQlzZXQgY29tbWFuZCAibmV4dCIKIGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dk Yi5weXRob24vcHktZnJhbWUuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWZyYW1l LmV4cAotaW5kZXggZTQ3ZjM0MC4uYTdlMGE1MiAxMDA2NDQKK2luZGV4IDMzZmRiZTUuLjI2NGQw MGYgMTAwNjQ0CiAtLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZnJhbWUuZXhwCiAr KysgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZnJhbWUuZXhwCiBAQCAtOTUsNiArOTUs OCBAQCBnZGJfdGVzdCAicHl0aG9uIHByaW50ICgncmVzdWx0ID0gJXMnICUgZjAucmVhZF92YXIg KCdhJykpIiAiID0gMSIgInRlc3QgRnJhbWUucgpAQCAtNTg4LDcgKzU4OCw3IEBAIGluZGV4IGU0 N2YzNDAuLmE3ZTBhNTIgMTAwNjQ0CiAgZ2RiX3Rlc3QgInB5dGhvbiBwcmludCAoJ3Jlc3VsdCA9 ICVzJyAlIChnZGIuc2VsZWN0ZWRfZnJhbWUgKCkucmVhZF9yZWdpc3RlciAoJ3NwJykgPT0gZ2Ri LnBhcnNlX2FuZF9ldmFsICgnXCRzcCcpKSkiIFwKICAgICIgPSBUcnVlIiBcCiBkaWZmIC0tZ2l0 IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXZhbHVlLmV4cCBiL2dkYi90ZXN0c3VpdGUv Z2RiLnB5dGhvbi9weS12YWx1ZS5leHAKLWluZGV4IGYwODFmZjAuLjU4Y2NlMDkgMTAwNjQ0Citp bmRleCBiYWExN2I3Li40NWFkNjdlIDEwMDY0NAogLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0 aG9uL3B5LXZhbHVlLmV4cAogKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXZhbHVl LmV4cAogQEAgLTM4OCw2ICszODgsMTUgQEAgcHJvYyB0ZXN0X3ZhbHVlX2FmdGVyX2RlYXRoIHt9 IHsKCmRpZmYgLS1naXQgYS9nZGItYXR0YWNoLWZhaWwtcmVhc29ucy01b2Y1LnBhdGNoIGIvZ2Ri LWF0dGFjaC1mYWlsLXJlYXNvbnMtNW9mNS5wYXRjaAppbmRleCAxODE5OGM1Li5iY2Q0YTMzIDEw MDY0NAotLS0gYS9nZGItYXR0YWNoLWZhaWwtcmVhc29ucy01b2Y1LnBhdGNoCisrKyBiL2dkYi1h dHRhY2gtZmFpbC1yZWFzb25zLTVvZjUucGF0Y2gKQEAgLTM3LDEwICszNywxMCBAQCBnZGIvZ2Ri c2VydmVyLwogCShsaW51eF9jcmVhdGVfaW5mZXJpb3IsIGxpbnV4X3RyYWNlZm9ya19jaGlsZCk6 IENhbGwgaXQgaW5zdGVhZCBvZgogCWRpcmVjdCBwdHJhY2UuCiAKLUluZGV4OiBnZGItNy44Ljkw LjIwMTUwMTI1L2dkYi9uYXQvbGludXgtcHRyYWNlLmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUw NTIwL2dkYi9uYXQvbGludXgtcHRyYWNlLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIw MTUwMTI1Lm9yaWcvZ2RiL25hdC9saW51eC1wdHJhY2UuYwkyMDE1LTAxLTI1IDA4OjM2OjU1Ljcx MDg4NDUxMSArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL25hdC9saW51eC1wdHJh Y2UuYwkyMDE1LTAxLTI1IDA4OjM4OjQzLjE1NzM0NzYyNyArMDEwMAorLS0tIGdkYi03LjkuNTAu MjAxNTA1MjAub3JpZy9nZGIvbmF0L2xpbnV4LXB0cmFjZS5jCTIwMTUtMDUtMzEgMTg6MTY6NTQu MzQ4ODkwNzQ2ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvbmF0L2xpbnV4LXB0 cmFjZS5jCTIwMTUtMDUtMzEgMTg6MTc6MTkuNTg0MDQ2NTQwICswMjAwCiBAQCAtMjUsNiArMjUs MTAgQEAKICAKICAjaW5jbHVkZSA8c3RkaW50Lmg+CkBAIC00OSwxMCArNDksMTAgQEAgSW5kZXg6 IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL25hdC9saW51eC1wdHJhY2UuYwogKyMgaW5jbHVkZSA8 c2VsaW51eC9zZWxpbnV4Lmg+CiArI2VuZGlmIC8qIEhBVkVfU0VMSU5VWF9TRUxJTlVYX0ggKi8K ICsKLSAvKiBTdG9yZXMgdGhlIGN1cnJlbnRseSBzdXBwb3J0ZWQgcHRyYWNlIG9wdGlvbnMuICBB IHZhbHVlIG9mCi0gICAgLTEgbWVhbnMgd2UgZGlkIG5vdCBjaGVjayBmb3IgZmVhdHVyZXMgeWV0 LiAgQSB2YWx1ZSBvZiAwIG1lYW5zCi0gICAgdGhlcmUgYXJlIG5vIHN1cHBvcnRlZCBmZWF0dXJl cy4gICovCi1AQCAtNTMsNiArNTcsOCBAQCBsaW51eF9wdHJhY2VfYXR0YWNoX2ZhaWxfcmVhc29u IChwaWRfdCBwCisgLyogU3RvcmVzIHRoZSBwdHJhY2Ugb3B0aW9ucyBzdXBwb3J0ZWQgYnkgdGhl IHJ1bm5pbmcga2VybmVsLgorICAgIEEgdmFsdWUgb2YgLTEgbWVhbnMgd2UgZGlkIG5vdCBjaGVj ayBmb3IgZmVhdHVyZXMgeWV0LiAgQSB2YWx1ZQorICAgIG9mIDAgbWVhbnMgdGhlcmUgYXJlIG5v IHN1cHBvcnRlZCBmZWF0dXJlcy4gICovCitAQCAtNDksNiArNTMsOCBAQCBsaW51eF9wdHJhY2Vf YXR0YWNoX2ZhaWxfcmVhc29uIChwaWRfdCBwCiAgICAgIGJ1ZmZlcl94bWxfcHJpbnRmIChidWZm ZXIsIF8oInByb2Nlc3MgJWQgaXMgYSB6b21iaWUgIgogIAkJCQkgIi0gdGhlIHByb2Nlc3MgaGFz IGFscmVhZHkgdGVybWluYXRlZCIpLAogIAkJICAgICAgIChpbnQpIHBpZCk7CkBAIC02MSw3ICs2 MSw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9uYXQvbGludXgtcHRyYWNlLmMK ICB9CiAgCiAgLyogU2VlIGxpbnV4LXB0cmFjZS5oLiAgKi8KLUBAIC01OTUsNiArNjAxLDIyIEBA IGxpbnV4X3B0cmFjZV9pbml0X3dhcm5pbmdzICh2b2lkKQorQEAgLTU4Myw2ICs1ODksMjIgQEAg bGludXhfcHRyYWNlX2luaXRfd2FybmluZ3MgKHZvaWQpCiAgICBsaW51eF9wdHJhY2VfdGVzdF9y ZXRfdG9fbnggKCk7CiAgfQogIApAQCAtODEsMjYgKzgxLDI2IEBAIEluZGV4OiBnZGItNy44Ljkw LjIwMTUwMTI1L2dkYi9uYXQvbGludXgtcHRyYWNlLmMKICsjZW5kaWYgLyogSEFWRV9MSUJTRUxJ TlVYICovCiArfQogKwotIC8qIFNldCBhZGRpdGlvbmFsIHB0cmFjZSBmbGFncyB0byB1c2UuICBT b21lIHN1Y2ggZmxhZ3MgbWF5IGJlIGNoZWNrZWQKLSAgICBieSB0aGUgaW1wbGVtZW50YXRpb24g YWJvdmUuICBUaGlzIGZ1bmN0aW9uIG11c3QgYmUgY2FsbGVkIGJlZm9yZQotICAgIGFueSBvdGhl ciBmdW5jdGlvbiBpbiB0aGlzIGZpbGU7IG90aGVyd2lzZSB0aGUgZmxhZ3MgbWF5IG5vdCB0YWtl Ci1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvbmF0L2xpbnV4LXB0cmFjZS5oCisgLyog RXh0cmFjdCBleHRlbmRlZCBwdHJhY2UgZXZlbnQgZnJvbSB3YWl0IHN0YXR1cy4gICovCisgCisg aW50CitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvbmF0L2xpbnV4LXB0cmFjZS5oCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9uYXQvbGludXgtcHRy YWNlLmgJMjAxNS0wMS0yNSAwODozNzowMi44MDA5MTUwNzEgKzAxMDAKLSsrKyBnZGItNy44Ljkw LjIwMTUwMTI1L2dkYi9uYXQvbGludXgtcHRyYWNlLmgJMjAxNS0wMS0yNSAwODozODoxNi41NjUy MzMwMDkgKzAxMDAKLUBAIC05OCw2ICs5OCw3IEBAIGV4dGVybiB2b2lkIGxpbnV4X3B0cmFjZV9h dHRhY2hfZmFpbF9yZWEKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL25hdC9saW51 eC1wdHJhY2UuaAkyMDE1LTA1LTMxIDE4OjE2OjU0LjM0ODg5MDc0NiArMDIwMAorKysrIGdkYi03 LjkuNTAuMjAxNTA1MjAvZ2RiL25hdC9saW51eC1wdHJhY2UuaAkyMDE1LTA1LTMxIDE4OjE3OjE5 LjU4NDA0NjU0MCArMDIwMAorQEAgLTE0OSw2ICsxNDksNyBAQCBleHRlcm4gdm9pZCBsaW51eF9w dHJhY2VfYXR0YWNoX2ZhaWxfcmVhCiAgZXh0ZXJuIGNoYXIgKmxpbnV4X3B0cmFjZV9hdHRhY2hf ZmFpbF9yZWFzb25fc3RyaW5nIChwdGlkX3QgcHRpZCwgaW50IGVycik7CiAgCiAgZXh0ZXJuIHZv aWQgbGludXhfcHRyYWNlX2luaXRfd2FybmluZ3MgKHZvaWQpOwogK2V4dGVybiB2b2lkIGxpbnV4 X3B0cmFjZV9jcmVhdGVfd2FybmluZ3MgKHN0cnVjdCBidWZmZXIgKmJ1ZmZlcik7CisgZXh0ZXJu IHZvaWQgbGludXhfY2hlY2tfcHRyYWNlX2ZlYXR1cmVzICh2b2lkKTsKICBleHRlcm4gdm9pZCBs aW51eF9lbmFibGVfZXZlbnRfcmVwb3J0aW5nIChwaWRfdCBwaWQsIGludCBhdHRhY2hlZCk7CiAg ZXh0ZXJuIHZvaWQgbGludXhfZGlzYWJsZV9ldmVudF9yZXBvcnRpbmcgKHBpZF90IHBpZCk7Ci0g ZXh0ZXJuIGludCBsaW51eF9zdXBwb3J0c190cmFjZWZvcmsgKHZvaWQpOwotSW5kZXg6IGdkYi03 LjguOTAuMjAxNTAxMjUvZ2RiL2NvbmZpZ3VyZS5hYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1 MjAvZ2RiL2NvbmZpZ3VyZS5hYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguOTAuMjAxNTAxMjUu b3JpZy9nZGIvY29uZmlndXJlLmFjCTIwMTUtMDEtMjUgMDg6MzY6NTUuNzEyODg0NTIwICswMTAw Ci0rKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvY29uZmlndXJlLmFjCTIwMTUtMDEtMjUgMDg6 Mzc6MDIuODAxOTE1MDc1ICswMTAwCi1AQCAtMjExNyw2ICsyMTE3LDEwIEBAIGNhc2UgJGhvc3Rf b3MgaW4KKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2NvbmZpZ3VyZS5hYwkyMDE1 LTA1LTMxIDE4OjE2OjU0LjM0ODg5MDc0NiArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAv Z2RiL2NvbmZpZ3VyZS5hYwkyMDE1LTA1LTMxIDE4OjE3OjE5LjU4NTA0NjU0NiArMDIwMAorQEAg LTIxMzAsNiArMjEzMCwxMCBAQCBjYXNlICRob3N0X29zIGluCiAgZXNhYwogIEFDX0RFRklORV9V TlFVT1RFRChHREJJTklULCIkZ2RiaW5pdCIsW1RoZSAuZ2RiaW5pdCBmaWxlbmFtZS5dKQogIApA QCAtMTExLDExICsxMTEsMTEgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2NvbmZp Z3VyZS5hYwogIGRubCBIYW5kbGUgb3B0aW9uYWwgZmVhdHVyZXMgdGhhdCBjYW4gYmUgZW5hYmxl ZC4KICAKICAjIFN1cHBvcnQgZm9yIC0td2l0aC1zeXNyb290IGlzIGEgY29weSBvZiBHREJfQUNf V0lUSF9ESVIsCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvZ2Ric2VydmVyL2NvbmZp Z3VyZS5hYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2dkYnNlcnZlci9jb25maWd1 cmUuYWMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL2dkYnNl cnZlci9jb25maWd1cmUuYWMJMjAxNS0wMS0yNSAwODozNjo1NS43MTI4ODQ1MjAgKzAxMDAKLSsr KyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlLmFjCTIwMTUtMDEt MjUgMDg6Mzc6MDIuODAxOTE1MDc1ICswMTAwCi1AQCAtNDYxLDYgKzQ2MSwxMCBAQCBpZiAkd2Fu dF9pcGEgOyB0aGVuCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9nZGJzZXJ2ZXIv Y29uZmlndXJlLmFjCTIwMTUtMDUtMzEgMTg6MTY6NTQuMzQ4ODkwNzQ2ICswMjAwCisrKysgZ2Ri LTcuOS41MC4yMDE1MDUyMC9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZS5hYwkyMDE1LTA1LTMxIDE4 OjE3OjE5LjU4NTA0NjU0NiArMDIwMAorQEAgLTQ5OSw2ICs0OTksMTAgQEAgaWYgJHdhbnRfaXBh IDsgdGhlbgogICAgIGZpCiAgZmkKICAKQEAgLTEyNiwxMSArMTI2LDExIEBAIEluZGV4OiBnZGIt Ny44LjkwLjIwMTUwMTI1L2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlLmFjCiAgQUNfU1VCU1QoR0RC U0VSVkVSX0RFUEZJTEVTKQogIEFDX1NVQlNUKEdEQlNFUlZFUl9MSUJTKQogIEFDX1NVQlNUKHNy dl94bWxidWlsdGluKQotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2dkYnNlcnZlci9s aW51eC1sb3cuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2dkYnNlcnZlci9saW51 eC1sb3cuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguOTAuMjAxNTAxMjUub3JpZy9nZGIvZ2Ri c2VydmVyL2xpbnV4LWxvdy5jCTIwMTUtMDEtMjUgMDg6MzY6NTUuNzE0ODg0NTI5ICswMTAwCi0r KysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCTIwMTUtMDEt MjUgMDg6Mzc6MDIuODAzOTE1MDg0ICswMTAwCi1AQCAtNTkxLDYgKzU5MSwyOSBAQCBhZGRfbHdw IChwdGlkX3QgcHRpZCkKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2dkYnNlcnZl ci9saW51eC1sb3cuYwkyMDE1LTA1LTMxIDE4OjE2OjU0LjM0ODg5MDc0NiArMDIwMAorKysrIGdk Yi03LjkuNTAuMjAxNTA1MjAvZ2RiL2dkYnNlcnZlci9saW51eC1sb3cuYwkyMDE1LTA1LTMxIDE4 OjE3OjE5LjU4NzA0NjU1OCArMDIwMAorQEAgLTc0OSw2ICs3NDksMjkgQEAgYWRkX2x3cCAocHRp ZF90IHB0aWQpCiAgICByZXR1cm4gbHdwOwogIH0KICAKQEAgLTE2MCw3ICsxNjAsNyBAQCBJbmRl eDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvZ2Ric2VydmVyL2xpbnV4LWxvdy5jCiAgLyogU3Rh cnQgYW4gaW5mZXJpb3IgcHJvY2VzcyBhbmQgcmV0dXJucyBpdHMgcGlkLgogICAgIEFMTEFSR1Mg aXMgYSB2ZWN0b3Igb2YgcHJvZ3JhbS1uYW1lIGFuZCBhcmdzLiAqLwogIAotQEAgLTYzMiw3ICs2 NTUsNyBAQCBsaW51eF9jcmVhdGVfaW5mZXJpb3IgKGNoYXIgKnByb2dyYW0sIGNoCitAQCAtNzcy LDcgKzc5NSw3IEBAIGxpbnV4X2NyZWF0ZV9pbmZlcmlvciAoY2hhciAqcHJvZ3JhbSwgY2gKICAg IGlmIChwaWQgPT0gMCkKICAgICAgewogICAgICAgIGNsb3NlX21vc3RfZmRzICgpOwpAQCAtMTY5 LDExICsxNjksMTEgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2dkYnNlcnZlci9s aW51eC1sb3cuYwogIAogICNpZm5kZWYgX19BTkRST0lEX18gLyogQmlvbmljIGRvZXNuJ3QgdXNl IFNJR1JUTUlOIHRoZSB3YXkgZ2xpYmMgZG9lcy4gICovCiAgICAgICAgc2lnbmFsIChfX1NJR1JU TUlOICsgMSwgU0lHX0RGTCk7Ci1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvaW5mLXB0 cmFjZS5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvaW5mLXB0cmFjZS5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9pbmYtcHRyYWNlLmMJMjAx NS0wMS0yNSAwODozNjo1NS43MTU4ODQ1MzMgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMTI1 L2dkYi9pbmYtcHRyYWNlLmMJMjAxNS0wMS0yNSAwODozNzowMi44MDM5MTUwODQgKzAxMDAKLUBA IC02Nyw3ICs2NywxNSBAQCBzdGF0aWMgdm9pZAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3Jp Zy9nZGIvaW5mLXB0cmFjZS5jCTIwMTUtMDUtMzEgMTg6MTY6NTQuMzQ4ODkwNzQ2ICswMjAwCisr KysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvaW5mLXB0cmFjZS5jCTIwMTUtMDUtMzEgMTg6MTc6 MTkuNTg4MDQ2NTY1ICswMjAwCitAQCAtNzksNyArNzksMTUgQEAgc3RhdGljIHZvaWQKICBpbmZf cHRyYWNlX21lICh2b2lkKQogIHsKICAgIC8qICJUcmFjZSBtZSwgRHIuIE1lbW9yeSEiICAqLwpA QCAtMTg5LDM2ICsxODksMjggQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2luZi1w dHJhY2UuYwogIH0KICAKICAvKiBTdGFydCBhIG5ldyBpbmZlcmlvciBVbml4IGNoaWxkIHByb2Nl c3MuICBFWEVDX0ZJTEUgaXMgdGhlIGZpbGUgdG8KLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1 L2dkYi9saW51eC1uYXQuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2xpbnV4LW5h dC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDEyNS5vcmlnL2dkYi9saW51eC1u YXQuYwkyMDE1LTAxLTI1IDA4OjM2OjU1LjcxNzg4NDU0MSArMDEwMAotKysrIGdkYi03LjguOTAu MjAxNTAxMjUvZ2RiL2xpbnV4LW5hdC5jCTIwMTUtMDEtMjUgMDg6Mzc6NTIuMDU0MTI3MzYyICsw MTAwCi1AQCAtMTEwOSw2ICsxMTA5LDcgQEAgbGludXhfbmF0X2NyZWF0ZV9pbmZlcmlvciAoc3Ry dWN0IHRhcmdldAotICNpZmRlZiBIQVZFX1BFUlNPTkFMSVRZCi0gICBpbnQgcGVyc29uYWxpdHlf b3JpZyA9IDAsIHBlcnNvbmFsaXR5X3NldCA9IDA7Ci0gI2VuZGlmIC8qIEhBVkVfUEVSU09OQUxJ VFkgKi8KKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2xpbnV4LW5hdC5jCTIwMTUt MDUtMzEgMTg6MTY6NTQuMzQ4ODkwNzQ2ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvbGludXgtbmF0LmMJMjAxNS0wNS0zMSAxODoxNzo1Ni4yMTQyNzI2ODMgKzAyMDAKK0BAIC0x MTc5LDYgKzExNzksNyBAQCBsaW51eF9uYXRfY3JlYXRlX2luZmVyaW9yIChzdHJ1Y3QgdGFyZ2V0 CisgeworICAgc3RydWN0IGNsZWFudXAgKnJlc3RvcmVfcGVyc29uYWxpdHkKKyAgICAgPSBtYXli ZV9kaXNhYmxlX2FkZHJlc3Nfc3BhY2VfcmFuZG9taXphdGlvbiAoZGlzYWJsZV9yYW5kb21pemF0 aW9uKTsKICsgIHZvbGF0aWxlIHN0cnVjdCBnZGJfZXhjZXB0aW9uIGV4OwogIAogICAgLyogVGhl IGZvcmtfY2hpbGQgbWVjaGFuaXNtIGlzIHN5bmNocm9ub3VzIGFuZCBjYWxscyB0YXJnZXRfd2Fp dCwgc28KICAgICAgIHdlIGhhdmUgdG8gbWFzayB0aGUgYXN5bmMgbW9kZS4gICovCi1AQCAtMTEz Myw3ICsxMTM0LDEwIEBAIGxpbnV4X25hdF9jcmVhdGVfaW5mZXJpb3IgKHN0cnVjdCB0YXJnZXQK K0BAIC0xMTg2LDcgKzExODcsMjggQEAgbGludXhfbmF0X2NyZWF0ZV9pbmZlcmlvciAoc3RydWN0 IHRhcmdldAogICAgLyogTWFrZSBzdXJlIHdlIHJlcG9ydCBhbGwgc2lnbmFscyBkdXJpbmcgc3Rh cnR1cC4gICovCiAgICBsaW51eF9uYXRfcGFzc19zaWduYWxzIChvcHMsIDAsIE5VTEwpOwogIAog LSAgbGludXhfb3BzLT50b19jcmVhdGVfaW5mZXJpb3IgKG9wcywgZXhlY19maWxlLCBhbGxhcmdz LCBlbnYsIGZyb21fdHR5KTsKLSsgIFRSWV9DQVRDSCAoZXgsIFJFVFVSTl9NQVNLX0VSUk9SKQor KyAgVFJZCiArICAgIHsKICsgICAgICBsaW51eF9vcHMtPnRvX2NyZWF0ZV9pbmZlcmlvciAob3Bz LCBleGVjX2ZpbGUsIGFsbGFyZ3MsIGVudiwgZnJvbV90dHkpOwogKyAgICB9Ci0gCi0gI2lmZGVm IEhBVkVfUEVSU09OQUxJVFkKLSAgIGlmIChwZXJzb25hbGl0eV9zZXQpCi1AQCAtMTE0NSw2ICsx MTQ5LDI0IEBAIGxpbnV4X25hdF9jcmVhdGVfaW5mZXJpb3IgKHN0cnVjdCB0YXJnZXQKLSAJCSBz YWZlX3N0cmVycm9yIChlcnJubykpOwotICAgICB9Ci0gI2VuZGlmIC8qIEhBVkVfUEVSU09OQUxJ VFkgKi8KLSsKLSsgIGlmIChleC5yZWFzb24gPCAwKQorKyAgQ0FUQ0ggKGV4LCBSRVRVUk5fTUFT S19FUlJPUikKICsgICAgewogKyAgICAgIHN0cnVjdCBidWZmZXIgYnVmZmVyOwogKyAgICAgIGNo YXIgKm1lc3NhZ2UsICpidWZmZXJfczsKQEAgLTIzNSwxNCArMjI3LDE1IEBAIEluZGV4OiBnZGIt Ny44LjkwLjIwMTUwMTI1L2dkYi9saW51eC1uYXQuYwogKwogKyAgICAgIHRocm93X2Vycm9yIChl eC5lcnJvciwgIiVzJXMiLCBidWZmZXJfcywgbWVzc2FnZSk7CiArICAgIH0KLSB9CisrICBFTkRf Q0FUQ0gKICAKLSAvKiBDYWxsYmFjayBmb3IgbGludXhfcHJvY19hdHRhY2hfdGdpZF90aHJlYWRz LiAgQXR0YWNoIHRvIFBUSUQgaWYgbm90Ci1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIv Y29uZmlnLmluCisgICBkb19jbGVhbnVwcyAocmVzdG9yZV9wZXJzb25hbGl0eSk7CisgfQorSW5k ZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2NvbmZpZy5pbgogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjguOTAuMjAxNTAxMjUub3JpZy9nZGIvY29uZmlnLmluCTIwMTUtMDEtMjUgMDg6MzY6NTUu NzE4ODg0NTQ2ICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDEyNS9nZGIvY29uZmlnLmluCTIw MTUtMDEtMjUgMDg6Mzc6MDIuODA1OTE1MDkyICswMTAwCi1AQCAtMjEzLDYgKzIxMyw5IEBACist LS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9jb25maWcuaW4JMjAxNS0wNS0zMSAxODox Njo1NC4zNDg4OTA3NDYgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9jb25maWcu aW4JMjAxNS0wNS0zMSAxODoxNzoxOS41ODkwNDY1NzEgKzAyMDAKK0BAIC0yNjEsNiArMjYxLDkg QEAKICAvKiBEZWZpbmUgaWYgbGlicnBtIGxpYnJhcnkgaXMgYmVpbmcgdXNlZC4gKi8KICAjdW5k ZWYgSEFWRV9MSUJSUE0KICAKQEAgLTI1Miw3ICsyNDUsNyBAQCBJbmRleDogZ2RiLTcuOC45MC4y MDE1MDEyNS9nZGIvY29uZmlnLmluCiAgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxs aWJ1bndpbmQtaWE2NC5oPiBoZWFkZXIgZmlsZS4gKi8KICAjdW5kZWYgSEFWRV9MSUJVTldJTkRf SUE2NF9ICiAgCi1AQCAtMzQyLDYgKzM0NSw5IEBACitAQCAtMzkzLDYgKzM5Niw5IEBACiAgLyog RGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzY21fbmV3X3Ntb2InIGZ1bmN0aW9uLiAqLwog ICN1bmRlZiBIQVZFX1NDTV9ORVdfU01PQgogIApAQCAtMjYyLDExICsyNTUsMTEgQEAgSW5kZXg6 IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2NvbmZpZy5pbgogIC8qIERlZmluZSB0byAxIGlmIHlv dSBoYXZlIHRoZSBgc2V0bG9jYWxlJyBmdW5jdGlvbi4gKi8KICAjdW5kZWYgSEFWRV9TRVRMT0NB TEUKICAKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9jb25maWd1cmUKK0luZGV4OiBn ZGItNy45LjUwLjIwMTUwNTIwL2dkYi9jb25maWd1cmUKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44 LjkwLjIwMTUwMTI1Lm9yaWcvZ2RiL2NvbmZpZ3VyZQkyMDE1LTAxLTI1IDA4OjM2OjU1LjcyMjg4 NDU2MyArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2NvbmZpZ3VyZQkyMDE1LTAx LTI1IDA4OjM3OjAyLjgwOTkxNTExMCArMDEwMAotQEAgLTEzMjcwLDYgKzEzMjcwLDY0IEBAIGNh dCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2Ri L2NvbmZpZ3VyZQkyMDE1LTA1LTMxIDE4OjE2OjU0LjM0ODg5MDc0NiArMDIwMAorKysrIGdkYi03 LjkuNTAuMjAxNTA1MjAvZ2RiL2NvbmZpZ3VyZQkyMDE1LTA1LTMxIDE4OjE3OjE5LjU5NDA0NjYw MiArMDIwMAorQEAgLTEzNzMwLDYgKzEzNzMwLDY0IEBAIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNF T0YKICBfQUNFT0YKICAKICAKQEAgLTMzMSwxMSArMzI0LDExIEBAIEluZGV4OiBnZGItNy44Ljkw LjIwMTUwMTI1L2dkYi9jb25maWd1cmUKICAKICAjIFN1cHBvcnQgZm9yIC0td2l0aC1zeXNyb290 IGlzIGEgY29weSBvZiBHREJfQUNfV0lUSF9ESVIsCiAgIyBleGNlcHQgdGhhdCB0aGUgYXJndW1l bnQgdG8gLS13aXRoLXN5c3Jvb3QgaXMgb3B0aW9uYWwuCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1 MDEyNS9nZGIvZ2Ric2VydmVyL2NvbmZpZy5pbgorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAv Z2RiL2dkYnNlcnZlci9jb25maWcuaW4KID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUw MTI1Lm9yaWcvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4JMjAxNS0wMS0yNSAwODozNjo1NS43MjQ4 ODQ1NzIgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9nZGJzZXJ2ZXIvY29uZmln LmluCTIwMTUtMDEtMjUgMDg6Mzc6MDIuODA5OTE1MTEwICswMTAwCi1AQCAtNzUsNiArNzUsOSBA QAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvZ2Ric2VydmVyL2NvbmZpZy5pbgky MDE1LTA1LTMxIDE4OjE2OjU0LjM0ODg5MDc0NiArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1 MjAvZ2RiL2dkYnNlcnZlci9jb25maWcuaW4JMjAxNS0wNS0zMSAxODoxNzoxOS41OTQwNDY2MDIg KzAyMDAKK0BAIC0xMTMsNiArMTEzLDkgQEAKICAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0 aGUgYG1jaGVjaycgbGlicmFyeSAoLWxtY2hlY2spLiAqLwogICN1bmRlZiBIQVZFX0xJQk1DSEVD SwogIApAQCAtMzQ1LDcgKzMzOCw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI1L2dkYi9n ZGJzZXJ2ZXIvY29uZmlnLmluCiAgLyogRGVmaW5lIGlmIHRoZSB0YXJnZXQgc3VwcG9ydHMgYnJh bmNoIHRyYWNpbmcuICovCiAgI3VuZGVmIEhBVkVfTElOVVhfQlRSQUNFCiAgCi1AQCAtMTQyLDYg KzE0NSw5IEBACitAQCAtMTg2LDYgKzE4OSw5IEBACiAgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhh dmUgdGhlIGBwd3JpdGUnIGZ1bmN0aW9uLiAqLwogICN1bmRlZiBIQVZFX1BXUklURQogIApAQCAt MzU1LDExICszNDgsMTEgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2dkYnNlcnZl ci9jb25maWcuaW4KICAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHNndHR5Lmg+IGhl YWRlciBmaWxlLiAqLwogICN1bmRlZiBIQVZFX1NHVFRZX0gKICAKLUluZGV4OiBnZGItNy44Ljkw LjIwMTUwMTI1L2dkYi9nZGJzZXJ2ZXIvY29uZmlndXJlCitJbmRleDogZ2RiLTcuOS41MC4yMDE1 MDUyMC9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZQogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguOTAu MjAxNTAxMjUub3JpZy9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZQkyMDE1LTAxLTI1IDA4OjM2OjU1 LjcyNjg4NDU4MCArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAxMjUvZ2RiL2dkYnNlcnZlci9j b25maWd1cmUJMjAxNS0wMS0yNSAwODozNzowMi44MTE5MTUxMTggKzAxMDAKLUBAIC02MTk5LDYg KzYxOTksNjQgQEAgaWYgJHdhbnRfaXBhIDsgdGhlbgorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAu b3JpZy9nZGIvZ2Ric2VydmVyL2NvbmZpZ3VyZQkyMDE1LTA1LTMxIDE4OjE2OjU0LjM0ODg5MDc0 NiArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2dkYnNlcnZlci9jb25maWd1cmUJ MjAxNS0wNS0zMSAxODoxNzoxOS41OTYwNDY2MTQgKzAyMDAKK0BAIC03MDIyLDYgKzcwMjIsNjQg QEAgaWYgJHdhbnRfaXBhIDsgdGhlbgogICAgIGZpCiAgZmkKICAKCmRpZmYgLS1naXQgYS9nZGIt YnRyb2J1c3QucGF0Y2ggYi9nZGItYnRyb2J1c3QucGF0Y2gKaW5kZXggYTI5N2JlZS4uYjc5Nzcy MyAxMDA2NDQKLS0tIGEvZ2RiLWJ0cm9idXN0LnBhdGNoCisrKyBiL2dkYi1idHJvYnVzdC5wYXRj aApAQCAtMywxOSArMywxOSBAQCBwcmludGVkLCBidXQgYSBkZWZhdWx0IGJhY2t0cmFjZSB3aWxs IG9jY3VyIGluIHRoaXMgY2FzZS4KIAogLS0KIAotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMTQv Z2RiL3B5dGhvbi9weS1mcmFtZWZpbHRlci5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvcHl0aG9uL3B5LWZyYW1lZmlsdGVyLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIw MTUwMjE0Lm9yaWcvZ2RiL3B5dGhvbi9weS1mcmFtZWZpbHRlci5jCTIwMTUtMDItMTQgMTc6MzU6 MTIuMjc3NjUzMjAwICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDIxNC9nZGIvcHl0aG9uL3B5 LWZyYW1lZmlsdGVyLmMJMjAxNS0wMi0xNCAxNzozNjoxNS43Mzc5NTM3ODkgKzAxMDAKLUBAIC0x NTA2LDYgKzE1MDYsNyBAQCBnZGJweV9hcHBseV9mcmFtZV9maWx0ZXIgKGNvbnN0IHN0cnVjdCBl Ci0gICB2b2xhdGlsZSBzdHJ1Y3QgZ2RiX2V4Y2VwdGlvbiBleGNlcHQ7CistLS0gZ2RiLTcuOS41 MC4yMDE1MDUyMC5vcmlnL2dkYi9weXRob24vcHktZnJhbWVmaWx0ZXIuYwkyMDE1LTA1LTMxIDE3 OjM2OjM0LjY4MTk1MjUzMCArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3B5dGhv bi9weS1mcmFtZWZpbHRlci5jCTIwMTUtMDUtMzEgMTc6NTU6MDEuODg0Nzg4MDMxICswMjAwCitA QCAtMTUyMyw2ICsxNTIzLDcgQEAgZ2RicHlfYXBwbHlfZnJhbWVfZmlsdGVyIChjb25zdCBzdHJ1 Y3QgZQorICAgUHlPYmplY3QgKml0ZXJhYmxlOwogICAgUHlPYmplY3QgKml0ZW07CiAgICBodGFi X3QgbGV2ZWxzX3ByaW50ZWQ7CiArICBpbnQgY291bnRfcHJpbnRlZCA9IDA7CiAgCiAgICBpZiAo IWdkYl9weXRob25faW5pdGlhbGl6ZWQpCiAgICAgIHJldHVybiBFWFRfTEFOR19CVF9OT19GSUxU RVJTOwotQEAgLTE1MjUsMjQgKzE1MjYsNyBAQCBnZGJweV9hcHBseV9mcmFtZV9maWx0ZXIgKGNv bnN0IHN0cnVjdCBlCitAQCAtMTU0MywyNCArMTU0NCw3IEBAIGdkYnB5X2FwcGx5X2ZyYW1lX2Zp bHRlciAoY29uc3Qgc3RydWN0IGUKICAgIGl0ZXJhYmxlID0gYm9vdHN0cmFwX3B5dGhvbl9mcmFt ZV9maWx0ZXJzIChmcmFtZSwgZnJhbWVfbG93LCBmcmFtZV9oaWdoKTsKICAKICAgIGlmIChpdGVy YWJsZSA9PSBOVUxMKQpAQCAtNDEsNyArNDEsNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIx NC9nZGIvcHl0aG9uL3B5LWZyYW1lZmlsdGVyLmMKICAKICAgIC8qIElmIGl0ZXJhYmxlIGlzIE5v bmUsIHRoZW4gdGhlcmUgYXJlIG5vIGZyYW1lIGZpbHRlcnMgcmVnaXN0ZXJlZC4KICAgICAgIElm IHRoaXMgaXMgdGhlIGNhc2UsIGRlZmVyIHRvIGRlZmF1bHQgR0RCIHByaW50aW5nIHJvdXRpbmVz IGluIE1JCi1AQCAtMTU3MywxNSArMTU1Nyw0MCBAQCBnZGJweV9hcHBseV9mcmFtZV9maWx0ZXIg KGNvbnN0IHN0cnVjdCBlCitAQCAtMTU5MSwxNSArMTU3NSw0MCBAQCBnZGJweV9hcHBseV9mcmFt ZV9maWx0ZXIgKGNvbnN0IHN0cnVjdCBlCiAgCSBlcnJvciBhbmQgY29udGludWUgd2l0aCBvdGhl ciBmcmFtZXMuICAqLwogICAgICAgIGlmIChzdWNjZXNzID09IEVYVF9MQU5HX0JUX0VSUk9SKQog IAlnZGJweV9wcmludF9zdGFjayAoKTsKCmRpZmYgLS1naXQgYS9nZGItYno1NDE4NjYtcndhdGNo LWJlZm9yZS1ydW4ucGF0Y2ggYi9nZGItYno1NDE4NjYtcndhdGNoLWJlZm9yZS1ydW4ucGF0Y2gK aW5kZXggOTU4MjlmOS4uODNiM2EzNSAxMDA2NDQKLS0tIGEvZ2RiLWJ6NTQxODY2LXJ3YXRjaC1i ZWZvcmUtcnVuLnBhdGNoCisrKyBiL2dkYi1iejU0MTg2Ni1yd2F0Y2gtYmVmb3JlLXJ1bi5wYXRj aApAQCAtMSwyMCArMSwyMCBAQAotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2NvbmZp Zy9pMzg2L2xpbnV4NjQubWgKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9jb25maWcv aTM4Ni9saW51eDY0Lm1oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmln L2dkYi9jb25maWcvaTM4Ni9saW51eDY0Lm1oCTIwMTUtMDEtMDEgMTc6MTI6NTMuOTY1NDcyMjI3 ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvY29uZmlnL2kzODYvbGludXg2NC5t aAkyMDE1LTAxLTAxIDE3OjEyOjU1LjM2NzQ3MTQxNCArMDEwMAotQEAgLTYsNyArNiw3IEBAIE5B VERFUEZJTEVTPSBpbmYtcHRyYWNlLm8gZm9yay1jaGlsZC5vIFwKLSAJcHJvYy1zZXJ2aWNlLm8g bGludXgtdGhyZWFkLWRiLm8gbGludXgtZm9yay5vIFwKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIw Lm9yaWcvZ2RiL2NvbmZpZy9pMzg2L2xpbnV4NjQubWgJMjAxNS0wNS0zMSAxNjo1OTozNC4yNTgw MTg4MjcgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9jb25maWcvaTM4Ni9saW51 eDY0Lm1oCTIwMTUtMDUtMzEgMTY6NTk6NDcuNzc5MTA0MTYzICswMjAwCitAQCAtNyw3ICs3LDcg QEAgTkFUREVQRklMRVM9IGluZi1wdHJhY2UubyBmb3JrLWNoaWxkLm8gXAogIAlsaW51eC1wcm9j ZnMubyBsaW51eC1wdHJhY2UubyBsaW51eC1idHJhY2UubyBcCi0gCWxpbnV4LXdhaXRwaWQubwor IAlsaW51eC13YWl0cGlkLm8gbGludXgtcGVyc29uYWxpdHkubyB4ODYtbGludXgubyBcCisgCXg4 Ni1saW51eC1kcmVncy5vCiAtTkFUX0ZJTEU9IGNvbmZpZy9ubS1saW51eC5oCiArTkFUX0ZJTEU9 IG5tLWxpbnV4NjQuaAogIE5BVF9DREVQUyA9ICQoc3JjZGlyKS9wcm9jLXNlcnZpY2UubGlzdAog IAogICMgVGhlIGR5bmFtaWNhbGx5IGxvYWRlZCBsaWJ0aHJlYWRfZGIgbmVlZHMgYWNjZXNzIHRv IHN5bWJvbHMgaW4gdGhlCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvY29uZmlnL2kz ODYvbGludXgubWgKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9jb25maWcvaTM4Ni9s aW51eC5taAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvY29u ZmlnL2kzODYvbGludXgubWgJMjAxNS0wMS0wMSAxNzoxMjo1NS4zNjc0NzE0MTQgKzAxMDAKLSsr KyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jb25maWcvaTM4Ni9saW51eC5taAkyMDE1LTAxLTAx IDE3OjEzOjA3LjU2ODQ2NDM0MiArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9n ZGIvY29uZmlnL2kzODYvbGludXgubWgJMjAxNS0wNS0zMSAxNjo1NjoxMi44Njk3NDc3OTYgKzAy MDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9jb25maWcvaTM4Ni9saW51eC5taAkyMDE1 LTA1LTMxIDE2OjU5OjM0LjI1OTAxODgzMyArMDIwMAogQEAgLTEsNiArMSw2IEBACiAgIyBIb3N0 OiBJbnRlbCAzODYgcnVubmluZyBHTlUvTGludXguCiAgCkBAIC0yMywxMCArMjMsMTAgQEAgSW5k ZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2NvbmZpZy9pMzg2L2xpbnV4Lm1oCiAgTkFUREVQ RklMRVM9IGluZi1wdHJhY2UubyBmb3JrLWNoaWxkLm8gXAogIAl4ODYtbmF0Lm8geDg2LWRyZWdz Lm8gaTM4Ni1saW51eC1uYXQubyB4ODYtbGludXgtbmF0Lm8gXAogIAlwcm9jLXNlcnZpY2UubyBs aW51eC10aHJlYWQtZGIubyBcCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvY29uZmln L2kzODYvbm0tbGludXguaAorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2NvbmZpZy9p Mzg2L25tLWxpbnV4LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDow MDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jb25maWcv aTM4Ni9ubS1saW51eC5oCTIwMTUtMDEtMDEgMTc6MTI6NTUuMzY4NDcxNDE0ICswMTAwCisrKysg Z2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvY29uZmlnL2kzODYvbm0tbGludXguaAkyMDE1LTA1LTMx IDE2OjU5OjM0LjI1OTAxODgzMyArMDIwMAogQEAgLTAsMCArMSwyOCBAQAogKy8qIE5hdGl2ZSBz dXBwb3J0IGZvciBHTlUvTGludXggaTM4Ni4KICsKQEAgLTU2LDEwICs1NiwxMCBAQCBJbmRleDog Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvY29uZmlnL2kzODYvbm0tbGludXguaAogKyNkZWZpbmUg dGFyZ2V0X2Nhbl91c2VfaGFyZHdhcmVfd2F0Y2hwb2ludCh0eXBlLCBjbnQsIG90KSAxCiArCiAr I2VuZGlmIC8qIE5NX0xJTlVYNjRfSCAqLwotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L2NvbmZpZy9pMzg2L25tLWxpbnV4NjQuaAorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2Ri L2NvbmZpZy9pMzg2L25tLWxpbnV4NjQuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcw LTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL2NvbmZpZy9pMzg2L25tLWxpbnV4NjQuaAkyMDE1LTAxLTAxIDE3OjEyOjU1LjM2ODQ3MTQx NCArMDEwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2NvbmZpZy9pMzg2L25tLWxpbnV4 NjQuaAkyMDE1LTA1LTMxIDE2OjU5OjM0LjI1OTAxODgzMyArMDIwMAogQEAgLTAsMCArMSwyOCBA QAogKy8qIE5hdGl2ZSBzdXBwb3J0IGZvciBHTlUvTGludXggYW1kNjQuCiArCkBAIC04OSwyNiAr ODksMjYgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2NvbmZpZy9pMzg2L25tLWxp bnV4NjQuaAogKyNkZWZpbmUgdGFyZ2V0X2Nhbl91c2VfaGFyZHdhcmVfd2F0Y2hwb2ludCh0eXBl LCBjbnQsIG90KSAxCiArCiArI2VuZGlmIC8qIE5NX0xJTlVYNjRfSCAqLwotSW5kZXg6IGdkYi03 LjguNTAuMjAxNDEyMjgvZ2RiL3RhcmdldC5oCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvdGFyZ2V0LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2Ri L3RhcmdldC5oCTIwMTUtMDEtMDEgMTc6MTI6NTMuOTY3NDcyMjI2ICswMTAwCi0rKysgZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvdGFyZ2V0LmgJMjAxNS0wMS0wMSAxNzoxMjo1NS4zNjg0NzE0MTQg KzAxMDAKLUBAIC0xNzU0LDkgKzE3NTQsMTEgQEAgZXh0ZXJuIGNoYXIgKnRhcmdldF90aHJlYWRf bmFtZSAoc3RydWN0Ci0gICAgYnBfaGFyZHdhcmVfYnJlYWtwb2ludC4gIENOVCBpcyB0aGUgbnVt YmVyIG9mIHN1Y2ggd2F0Y2hwb2ludHMgdXNlZCBzbyBmYXIKLSAgICAoaW5jbHVkaW5nIHRoaXMg b25lPykuICBPVEhFUlRZUEUgaXMgd2hvIGtub3dzIHdoYXQuLi4gICovCistLS0gZ2RiLTcuOS41 MC4yMDE1MDUyMC5vcmlnL2dkYi90YXJnZXQuaAkyMDE1LTA1LTMxIDE2OjU5OjM0LjI2MDAxODgz OSArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3RhcmdldC5oCTIwMTUtMDUtMzEg MTc6MDA6MTEuMDY3MjUxMTQzICswMjAwCitAQCAtMTgyMCw5ICsxODIwLDExIEBAIGV4dGVybiBj aGFyICp0YXJnZXRfdGhyZWFkX25hbWUgKHN0cnVjdAorICAgIENOVCBpcyB0aGUgbnVtYmVyIG9m IHN1Y2ggd2F0Y2hwb2ludHMgdXNlZCBzbyBmYXIsIGluY2x1ZGluZyB0aGlzCisgICAgb25lLiAg T1RIRVJUWVBFIGlzIHdobyBrbm93cyB3aGF0Li4uICAqLwogIAogKyNpZm5kZWYgdGFyZ2V0X2Nh bl91c2VfaGFyZHdhcmVfd2F0Y2hwb2ludAogICNkZWZpbmUgdGFyZ2V0X2Nhbl91c2VfaGFyZHdh cmVfd2F0Y2hwb2ludChUWVBFLENOVCxPVEhFUlRZUEUpIFwKICAgKCpjdXJyZW50X3RhcmdldC50 b19jYW5fdXNlX2h3X2JyZWFrcG9pbnQpICgmY3VycmVudF90YXJnZXQsICBcCi0gCQkJCQkgICAg IFRZUEUsIENOVCwgT1RIRVJUWVBFKTsKKyAJCQkJCSAgICAgVFlQRSwgQ05ULCBPVEhFUlRZUEUp CiArI2VuZGlmCiAgCiAgLyogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGRlYnVnIHJlZ2lzdGVycyBu ZWVkZWQgdG8gd2F0Y2ggdGhlIGdpdmVuCiAgICAgbWVtb3J5IHJlZ2lvbiwgb3IgemVybyBpZiBu b3Qgc3VwcG9ydGVkLiAgKi8KLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2Uvd2F0Y2hwb2ludC1ody1iZWZvcmUtcnVuLmV4cAorSW5kZXg6IGdkYi03Ljku NTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS93YXRjaHBvaW50LWh3LWJlZm9yZS1y dW4uZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAw MDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5i YXNlL3dhdGNocG9pbnQtaHctYmVmb3JlLXJ1bi5leHAJMjAxNS0wMS0wMSAxNzoxMjo1NS4zNjk0 NzE0MTMgKzAxMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2Uvd2F0Y2hwb2ludC1ody1iZWZvcmUtcnVuLmV4cAkyMDE1LTA1LTMxIDE2OjU5OjM0LjI2MTAx ODg0NiArMDIwMAogQEAgLTAsMCArMSw0MCBAQAogKyMgQ29weXJpZ2h0IDIwMDksIDIwMTAgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCgpkaWZmIC0tZ2l0IGEvZ2RiLWR0cy1yaGVs Ni1weXRob24tY29tcGF0LnBhdGNoIGIvZ2RiLWR0cy1yaGVsNi1weXRob24tY29tcGF0LnBhdGNo CmluZGV4IDc0OWUyY2YuLjgzODhjODYgMTAwNjQ0Ci0tLSBhL2dkYi1kdHMtcmhlbDYtcHl0aG9u LWNvbXBhdC5wYXRjaAorKysgYi9nZGItZHRzLXJoZWw2LXB5dGhvbi1jb21wYXQucGF0Y2gKQEAg LTEsOSArMSw5IEBACiBodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lk PTEwMjAwMDQKIAotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2RhdGEtZGlyZWN0b3J5 L01ha2VmaWxlLmluCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZGF0YS1kaXJlY3Rv cnkvTWFrZWZpbGUuaW4KID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcv Z2RiL2RhdGEtZGlyZWN0b3J5L01ha2VmaWxlLmluCTIwMTUtMDEtMDUgMjI6NTE6MTAuNzA3NzU2 ODEwICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvZGF0YS1kaXJlY3RvcnkvTWFr ZWZpbGUuaW4JMjAxNS0wMS0wNSAyMjo1MTo0OC42MDg5MjMxMzkgKzAxMDAKKy0tLSBnZGItNy45 LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2RhdGEtZGlyZWN0b3J5L01ha2VmaWxlLmluCTIwMTUtMDUt MzEgMTg6MDU6NDMuMDQ2NzQ2MzUxICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv ZGF0YS1kaXJlY3RvcnkvTWFrZWZpbGUuaW4JMjAxNS0wNS0zMSAxODowNTo1OC40ODM4NDE2NTUg KzAyMDAKIEBAIC02MCw2ICs2MCw4IEBAIFBZVEhPTl9GSUxFX0xJU1QgPSBcCiAgCWdkYi9mcmFt ZXMucHkgXAogIAlnZGIvRnJhbWVJdGVyYXRvci5weSBcCkBAIC0xMiw4ICsxMiw4IEBAIEluZGV4 OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9kYXRhLWRpcmVjdG9yeS9NYWtlZmlsZS5pbgogKwln ZGIvYmFja3RyYWNlLnB5IFwKICAJZ2RiL3R5cGVzLnB5IFwKICAJZ2RiL3ByaW50aW5nLnB5IFwK LSAJZ2RiL3Byb21wdC5weSBcCi1AQCAtNzQsNiArNzYsNyBAQCBQWVRIT05fRklMRV9MSVNUID0g XAorIAlnZGIvdW53aW5kZXIucHkgXAorQEAgLTc2LDYgKzc4LDcgQEAgUFlUSE9OX0ZJTEVfTElT VCA9IFwKICAJZ2RiL2NvbW1hbmQvcHJldHR5X3ByaW50ZXJzLnB5IFwKICAJZ2RiL2NvbW1hbmQv cHJvbXB0LnB5IFwKICAJZ2RiL2NvbW1hbmQvZXhwbG9yZS5weSBcCkBAIC0yMSwxMCArMjEsMTAg QEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2RhdGEtZGlyZWN0b3J5L01ha2VmaWxl LmluCiAgCWdkYi9mdW5jdGlvbi9fX2luaXRfXy5weSBcCiAgCWdkYi9mdW5jdGlvbi9jYWxsZXJf aXMucHkgXAogIAlnZGIvZnVuY3Rpb24vc3RyZm5zLnB5IFwKLUluZGV4OiBnZGItNy44LjUwLjIw MTQxMjI4L2dkYi9weXRob24vbGliL2dkYi9GcmFtZVdyYXBwZXIucHkKK0luZGV4OiBnZGItNy45 LjUwLjIwMTUwNTIwL2dkYi9weXRob24vbGliL2dkYi9GcmFtZVdyYXBwZXIucHkKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsr KyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9weXRob24vbGliL2dkYi9GcmFtZVdyYXBwZXIucHkJ MjAxNS0wMS0wNSAyMjo1MToyNC43MDY4MTgyNDUgKzAxMDAKKysrKyBnZGItNy45LjUwLjIwMTUw NTIwL2dkYi9weXRob24vbGliL2dkYi9GcmFtZVdyYXBwZXIucHkJMjAxNS0wNS0zMSAxODowNTo1 OC40ODQ4NDE2NjEgKzAyMDAKIEBAIC0wLDAgKzEsMTIyIEBACiArIyBXcmFwcGVyIEFQSSBmb3Ig ZnJhbWVzLgogKwpAQCAtMTQ4LDEwICsxNDgsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEy MjgvZ2RiL3B5dGhvbi9saWIvZ2RiL0ZyYW1lV3JhcHBlci5weQogKwogKyAgICBkZWYgX19nZXRh dHRyX18gKHNlbGYsIG5hbWUpOgogKyAgICAgICAgcmV0dXJuIGdldGF0dHIgKHNlbGYuZnJhbWUs IG5hbWUpCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcHl0aG9uL2xpYi9nZGIvYmFj a3RyYWNlLnB5CitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0aG9uL2xpYi9nZGIv YmFja3RyYWNlLnB5CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6 MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcHl0aG9uL2xp Yi9nZGIvYmFja3RyYWNlLnB5CTIwMTUtMDEtMDUgMjI6NTE6MjQuNzA2ODE4MjQ1ICswMTAwCisr KysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0aG9uL2xpYi9nZGIvYmFja3RyYWNlLnB5CTIw MTUtMDUtMzEgMTg6MDU6NTguNDg0ODQxNjYxICswMjAwCiBAQCAtMCwwICsxLDQyIEBACiArIyBG aWx0ZXJpbmcgYmFja3RyYWNlLgogKwpAQCAtMTk1LDEwICsxOTUsMTAgQEAgSW5kZXg6IGdkYi03 LjguNTAuMjAxNDEyMjgvZ2RiL3B5dGhvbi9saWIvZ2RiL2JhY2t0cmFjZS5weQogKyAgICAgICAg cmV0dXJuIGl0ZXIKICsgICAgcmV0dXJuIG9sZF9mcmFtZV9maWx0ZXIgKGl0ZXIpCiArCi1JbmRl eDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcHl0aG9uL2xpYi9nZGIvY29tbWFuZC9iYWNrdHJh Y2UucHkKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9weXRob24vbGliL2dkYi9jb21t YW5kL2JhY2t0cmFjZS5weQogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAw OjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3B5dGhv bi9saWIvZ2RiL2NvbW1hbmQvYmFja3RyYWNlLnB5CTIwMTUtMDEtMDUgMjI6NTE6MjQuNzA3ODE4 MjQ5ICswMTAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0aG9uL2xpYi9nZGIvY29t bWFuZC9iYWNrdHJhY2UucHkJMjAxNS0wNS0zMSAxODowNTo1OC40ODQ4NDE2NjEgKzAyMDAKIEBA IC0wLDAgKzEsMTA2IEBACiArIyBOZXcgYmFja3RyYWNlIGNvbW1hbmQuCiArCgpkaWZmIC0tZ2l0 IGEvZ2RiLWVuYWJsZS1jb3VudC1jcmFzaC5wYXRjaCBiL2dkYi1lbmFibGUtY291bnQtY3Jhc2gu cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRjZGQ1YmEuLjAwMDAwMDAKLS0t IGEvZ2RiLWVuYWJsZS1jb3VudC1jcmFzaC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDg1ICsw LDAgQEAKLWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDEzLTA2L21zZzAw Nzg4Lmh0bWwKLVN1YmplY3Q6IFtQQVRDSF0gImVuYWJsZSBjb3VudCIgdXNlciBpbnB1dCBlcnJv ciBoYW5kbGluZyAoUFIgZ2RiLzE1Njc4KQotCi1UeXBpbmcgImVuYWJsZSBjb3VudCIgYnkgaXRz ZWxmIGNyYXNoZXMgR0RCLiBBbHNvLCBpZiB5b3Ugb21pdCB0aGUKLWJyZWFrcG9pbnQgbnVtYmVy L3JhbmdlLCB0aGUgZXJyb3IgbWVzc2FnZSBpcyBub3QgdmVyeSBjbGVhcjoKLQotKGdkYikgZW5h YmxlIGNvdW50IDIKLXdhcm5pbmc6IGJhZCBicmVha3BvaW50IG51bWJlciBhdCBvciBuZWFyICcn Ci0oZ2RiKSBlbmFibGUgY291bnQKLVNlZ21lbnRhdGlvbiBmYXVsdCAoY29yZSBkdW1wZWQpCi0K LVdpdGggdGhpcyBwYXRjaCwgdGhlIGVycm9yIG1lc3NhZ2VzIGFyZSBzbGlnaHRseSBtb3JlIGhl bHBmdWw6Ci0KLShnZGIpIGVuYWJsZSBjb3VudCAyCi1Bcmd1bWVudCByZXF1aXJlZCAob25lIG9y IG1vcmUgYnJlYWtwb2ludCBudW1iZXJzKS4KLShnZGIpIGVuYWJsZSBjb3VudAotQXJndW1lbnQg cmVxdWlyZWQgKGhpdCBjb3VudCkuCi0KLVRoZXkgYXJlIG5vdCBhcyBoZWxwZnVsIHRvIHRoZSB1 c2VyIGFzIEkgd291bGQgbGlrZSwgYnV0IGl0J3MgYmV0dGVyCi10aGFuIGNyYXNoaW5nLiBTdWdn ZXN0aW9ucyBhcmUgd2VsY29tZS4KLQotU2ltb24KLQotZ2RiL0NoYW5nZUxvZzoKLTIwMTMtMDYt MjYgIFNpbW9uIE1hcmNoaSAgPHNpbW9uLm1hcmNoaUBlcmljc3Nvbi5jb20+Ci0KLQkqIGJyZWFr cG9pbnQuYyAobWFwX2JyZWFrcG9pbnRfbnVtYmVycyk6IENoZWNrIGZvciBlbXB0eSBhcmdzCi0J c3RyaW5nLgotCShlbmFibGVfY291bnRfY29tbWFuZCk6IENoZWNrIGFyZ3MgZm9yIE5VTEwgdmFs dWUuCi0KLWdkYi90ZXN0c3VpdGUvQ2hhbmdlTG9nOgotMjAxMy0wNi0yNiAgU2ltb24gTWFyY2hp ICA8c2ltb24ubWFyY2hpQGVyaWNzc29uLmNvbT4KLQotCSogZ2RiLmJhc2UvZW5hLWRpcy1ici5l eHA6IFRlc3QgImVuYWJsZSBjb3VudCIgZm9yIGJhZCB1c2VyIGlucHV0LgotLS0tCi0gZ2RiL2Jy ZWFrcG9pbnQuYyAgICAgICAgICAgICAgICAgICAgICB8IDkgKysrKysrKy0tCi0gZ2RiL3Rlc3Rz dWl0ZS9nZGIuYmFzZS9lbmEtZGlzLWJyLmV4cCB8IDggKysrKysrKysKLSAyIGZpbGVzIGNoYW5n ZWQsIDE1IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLUluZGV4OiBnZGItNy44LjUw LjIwMTQxMjI4L2dkYi9icmVha3BvaW50LmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIw MTQxMjI4Lm9yaWcvZ2RiL2JyZWFrcG9pbnQuYwkyMDE1LTAxLTA1IDIyOjIxOjQ3LjYzMTgwMTU1 OCArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2JyZWFrcG9pbnQuYwkyMDE1LTAx LTA1IDIyOjI2OjEzLjE2NTAwNTA0OSArMDEwMAotQEAgLTE0ODQ5LDcgKzE0ODQ5LDcgQEAgbWFw X2JyZWFrcG9pbnRfbnVtYmVycyAoY2hhciAqYXJncywgdm9pZAotICAgaW50IG1hdGNoOwotICAg c3RydWN0IGdldF9udW1iZXJfb3JfcmFuZ2Vfc3RhdGUgc3RhdGU7Ci0gCi0tICBpZiAoYXJncyA9 PSAwKQotKyAgaWYgKGFyZ3MgPT0gMCB8fCAqYXJncyA9PSAnXDAnKQotICAgICBlcnJvcl9ub19h cmcgKF8oIm9uZSBvciBtb3JlIGJyZWFrcG9pbnQgbnVtYmVycyIpKTsKLSAKLSAgIGluaXRfbnVt YmVyX29yX3JhbmdlICgmc3RhdGUsIGFyZ3MpOwotQEAgLTE1MTg2LDcgKzE1MTg2LDEyIEBAIGRv X21hcF9lbmFibGVfY291bnRfYnJlYWtwb2ludCAoc3RydWN0IGIKLSBzdGF0aWMgdm9pZAotIGVu YWJsZV9jb3VudF9jb21tYW5kIChjaGFyICphcmdzLCBpbnQgZnJvbV90dHkpCi0gewotLSAgaW50 IGNvdW50ID0gZ2V0X251bWJlciAoJmFyZ3MpOwotKyAgaW50IGNvdW50OwotKwotKyAgaWYgKGFy Z3MgPT0gTlVMTCkKLSsgICAgZXJyb3Jfbm9fYXJnIChfKCJoaXQgY291bnQiKSk7Ci0rCi0rICBj b3VudCA9IGdldF9udW1iZXIgKCZhcmdzKTsKLSAKLSAgIG1hcF9icmVha3BvaW50X251bWJlcnMg KGFyZ3MsIGRvX21hcF9lbmFibGVfY291bnRfYnJlYWtwb2ludCwgJmNvdW50KTsKLSB9Ci1JbmRl eDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2VuYS1kaXMtYnIu ZXhwCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi90ZXN0c3Vp dGUvZ2RiLmJhc2UvZW5hLWRpcy1ici5leHAJMjAxNS0wMS0wNSAyMjoyNjoxMy4xNjUwMDUwNDkg KzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvZW5h LWRpcy1ici5leHAJMjAxNS0wMS0wNSAyMjoyNjo1MS4zNTcxNzgxNTAgKzAxMDAKLUBAIC0xNTEs NiArMTUxLDE0IEBAIHNldCBicCBbYnJlYWtfYXQgJGJwX2xvY2F0aW9uNyAibGluZSAkYnAKLSAK LSBzZXQgYnAyIFticmVha19hdCBtYXJrZXIxICIgbGluZSAkYnBfbG9jYXRpb24xNSJdCi0gCi0r Z2RiX3Rlc3QgImVuYWJsZSBjb3VudCIgXAotKyAgICAiQXJndW1lbnQgcmVxdWlyZWQgXFwoaGl0 IGNvdW50XFwpXFwuIiBcCi0rICAgICJlbmFibGUgY291bnQgbWlzc2luZyBhcmd1bWVudHMiCi0r Ci0rZ2RiX3Rlc3QgImVuYWJsZSBjb3VudCAyIiBcCi0rICAgICJBcmd1bWVudCByZXF1aXJlZCBc XChvbmUgb3IgbW9yZSBicmVha3BvaW50IG51bWJlcnNcXClcXC4iIFwKLSsgICAgImVuYWJsZSBj b3VudCBtaXNzaW5nIGxhc3QgYXJndW1lbnQiCi0rCi0gZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJlbmFi bGUgY291bnQgMiAkYnAiICJkaXNhYmxlIGJyZWFrIHdpdGggY291bnQiCi0gCi0gZ2RiX3Rlc3Qg ImNvbnRpbnVlIiBcCgpkaWZmIC0tZ2l0IGEvZ2RiLWdsaWJjLXZkc28td29ya2Fyb3VuZC5wYXRj aCBiL2dkYi1nbGliYy12ZHNvLXdvcmthcm91bmQucGF0Y2gKaW5kZXggNDg2NDZkNy4uNjAxY2Yy YSAxMDA2NDQKLS0tIGEvZ2RiLWdsaWJjLXZkc28td29ya2Fyb3VuZC5wYXRjaAorKysgYi9nZGIt Z2xpYmMtdmRzby13b3JrYXJvdW5kLnBhdGNoCkBAIC0xMSwxMSArMTEsMTMgQEAgZ2RiLwogCVdv cmsgYXJvdW5kIFBSIGxpYmMvMTMwOTcuCiAJKiBzb2xpYi5jICh1cGRhdGVfc29saWJfbGlzdCk6 IElnbm9yZSAibGludXgtdmRzby5zby4xIi4KIAotLS0tIGEvZ2RiL3NvbGliLmMKLSsrKyBiL2dk Yi9zb2xpYi5jCi1AQCAtNzgzLDggKzc4MywxMSBAQCB1cGRhdGVfc29saWJfbGlzdCAoaW50IGZy b21fdHR5LCBzdHJ1Y3QgdGFyZ2V0X29wcyAqdGFyZ2V0KQorSW5kZXg6IGdkYi03LjkuNTAuMjAx NTA1MjAvZ2RiL3NvbGliLmMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9y aWcvZ2RiL3NvbGliLmMJMjAxNS0wNS0zMSAxNzowNDoxNi44NzA4MDI0OTMgKzAyMDAKKysrKyBn ZGItNy45LjUwLjIwMTUwNTIwL2dkYi9zb2xpYi5jCTIwMTUtMDUtMzEgMTc6MDQ6MzguODI0OTQx MDU0ICswMjAwCitAQCAtODkzLDggKzg5MywxMSBAQCB1cGRhdGVfc29saWJfbGlzdCAoaW50IGZy b21fdHR5LCBzdHJ1Y3QKICAKLSAJICBUUllfQ0FUQ0ggKGUsIFJFVFVSTl9NQVNLX0VSUk9SKQor IAkgIFRSWQogIAkgICAgewogLQkgICAgICAvKiBGaWxsIGluIHRoZSByZXN0IG9mIHRoZSBgc3Ry dWN0IHNvX2xpc3QnIG5vZGUuICAqLwogLQkgICAgICBpZiAoIXNvbGliX21hcF9zZWN0aW9ucyAo aSkpCkBAIC0yNyw0ICsyOSwzIEBAIGdkYi8KICAJCXsKICAJCSAgbm90X2ZvdW5kKys7CiAgCQkg IGlmIChub3RfZm91bmRfZmlsZW5hbWUgPT0gTlVMTCkKLQoKZGlmZiAtLWdpdCBhL2dkYi1uby1k Zy1leHRyYWN0LXJlc3VsdHMtcHkucGF0Y2ggYi9nZGItbm8tZGctZXh0cmFjdC1yZXN1bHRzLXB5 LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MGUxZmVhLi4wMDAwMDAwCi0t LSBhL2dkYi1uby1kZy1leHRyYWN0LXJlc3VsdHMtcHkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAt MSw1ODkgKzAsMCBAQAotZGlmZiAtZHVwIC1ydU5wIGdkYi03LjguOTAuMjAxNTAyMDItb3JpZy9n ZGIvdGVzdHN1aXRlL2RnLWV4dHJhY3QtcmVzdWx0cy5weSBnZGItNy44LjkwLjIwMTUwMjAyL2dk Yi90ZXN0c3VpdGUvZGctZXh0cmFjdC1yZXN1bHRzLnB5Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIw Mi1vcmlnL2dkYi90ZXN0c3VpdGUvZGctZXh0cmFjdC1yZXN1bHRzLnB5CTIwMTUtMDItMDIgMDI6 NTg6MjkuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvdGVzdHN1 aXRlL2RnLWV4dHJhY3QtcmVzdWx0cy5weQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCAr MDEwMAotQEAgLTEsNTg1ICswLDAgQEAKLS0jIS91c3IvYmluL3B5dGhvbgotLSMKLS0jIENvcHly aWdodCAoQykgMjAxNC0yMDE1IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotLSMKLS0j IFRoaXMgc2NyaXB0IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vciBtb2RpZnkKLS0jIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0tIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uOyBlaXRoZXIgdmVyc2lvbiAzLCBvciAoYXQgeW91ciBvcHRpb24pCi0tIyBhbnkgbGF0ZXIg dmVyc2lvbi4KLS0KLS1pbXBvcnQgc3lzCi0taW1wb3J0IGdldG9wdAotLWltcG9ydCByZQotLWlt cG9ydCBpbwotLWZyb20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lCi0tZnJvbSBvcGVyYXRvciBp bXBvcnQgYXR0cmdldHRlcgotLQotLSMgVHJ1ZSBpZiB1bnJlY29nbmlzZWQgbGluZXMgc2hvdWxk IGNhdXNlIGEgZmF0YWwgZXJyb3IuICBNaWdodCB3YW50IHRvIHR1cm4KLS0jIHRoaXMgb24gYnkg ZGVmYXVsdCBsYXRlci4KLS1zdHJpY3QgPSBGYWxzZQotLQotLSMgVHJ1ZSBpZiB0aGUgb3JkZXIg b2YgLmxvZyBzZWdtZW50cyBzaG91bGQgbWF0Y2ggdGhlIC5zdW0gZmlsZSwgZmFsc2UgaWYKLS0j IHRoZXkgc2hvdWxkIGtlZXAgdGhlIG9yaWdpbmFsIG9yZGVyLgotLXNvcnRfbG9ncyA9IFRydWUK LS0KLS0jIEEgdmVyc2lvbiBvZiBvcGVuKCkgdGhhdCBpcyBzYWZlIGFnYWluc3Qgd2hhdGV2ZXIg YmluYXJ5IG91dHB1dAotLSMgbWlnaHQgYmUgYWRkZWQgdG8gdGhlIGxvZy4KLS1kZWYgc2FmZV9v cGVuIChmaWxlbmFtZSk6Ci0tICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgotLSAg ICAgICAgcmV0dXJuIG9wZW4gKGZpbGVuYW1lLCAncicsIGVycm9ycyA9ICdzdXJyb2dhdGVlc2Nh cGUnKQotLSAgICByZXR1cm4gb3BlbiAoZmlsZW5hbWUsICdyJykKLS0KLS0jIEZvcmNlIHN0ZG91 dCB0byBoYW5kbGUgZXNjYXBlIHNlcXVlbmNlcyBmcm9tIGEgc2FmZV9vcGVuIGZpbGUuCi0taWYg c3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6Ci0tICAgIHN5cy5zdGRvdXQgPSBpby5UZXh0SU9X cmFwcGVyIChzeXMuc3Rkb3V0LmJ1ZmZlciwKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGVycm9ycyA9ICdzdXJyb2dhdGVlc2NhcGUnKQotLQotLWNsYXNzIE5hbWVkOgotLSAg ICBkZWYgX19pbml0X18gKHNlbGYsIG5hbWUpOgotLSAgICAgICAgc2VsZi5uYW1lID0gbmFtZQot LQotLWNsYXNzIFRvb2xSdW4gKE5hbWVkKToKLS0gICAgZGVmIF9faW5pdF9fIChzZWxmLCBuYW1l KToKLS0gICAgICAgIE5hbWVkLl9faW5pdF9fIChzZWxmLCBuYW1lKQotLSAgICAgICAgIyBUaGUg dmFyaWF0aW9ucyBydW4gZm9yIHRoaXMgdG9vbCwgbWFwcGVkIGJ5IC0tdGFyZ2V0X2JvYXJkIG5h bWUuCi0tICAgICAgICBzZWxmLnZhcmlhdGlvbnMgPSBkaWN0KCkKLS0KLS0gICAgIyBSZXR1cm4g dGhlIFZhcmlhdGlvblJ1biBmb3IgdmFyaWF0aW9uIE5BTUUuCi0tICAgIGRlZiBnZXRfdmFyaWF0 aW9uIChzZWxmLCBuYW1lKToKLS0gICAgICAgIGlmIG5hbWUgbm90IGluIHNlbGYudmFyaWF0aW9u czoKLS0gICAgICAgICAgICBzZWxmLnZhcmlhdGlvbnNbbmFtZV0gPSBWYXJpYXRpb25SdW4gKG5h bWUpCi0tICAgICAgICByZXR1cm4gc2VsZi52YXJpYXRpb25zW25hbWVdCi0tCi0tY2xhc3MgVmFy aWF0aW9uUnVuIChOYW1lZCk6Ci0tICAgIGRlZiBfX2luaXRfXyAoc2VsZiwgbmFtZSk6Ci0tICAg ICAgICBOYW1lZC5fX2luaXRfXyAoc2VsZiwgbmFtZSkKLS0gICAgICAgICMgQSBzZWdtZW50IG9m IHRleHQgYmVmb3JlIHRoZSBoYXJuZXNzIHJ1bnMgc3RhcnQsIGRlc2NyaWJpbmcgd2hpY2gKLS0g ICAgICAgICMgYmFzZWJvYXJkIGZpbGVzIHdlcmUgbG9hZGVkIGZvciB0aGUgdGFyZ2V0LgotLSAg ICAgICAgc2VsZi5oZWFkZXIgPSBOb25lCi0tICAgICAgICAjIFRoZSBoYXJuZXNzZXMgcnVuIGZv ciB0aGlzIHZhcmlhdGlvbiwgbWFwcGVkIGJ5IGZpbGVuYW1lLgotLSAgICAgICAgc2VsZi5oYXJu ZXNzZXMgPSBkaWN0KCkKLS0gICAgICAgICMgQSBsaXN0IGdpdmluZyB0aGUgbnVtYmVyIG9mIHRp bWVzIGVhY2ggdHlwZSBvZiByZXN1bHQgaGFzCi0tICAgICAgICAjIGJlZW4gc2Vlbi4KLS0gICAg ICAgIHNlbGYuY291bnRzID0gW10KLS0KLS0gICAgIyBSZXR1cm4gdGhlIEhhcm5lc3NSdW4gZm9y IGhhcm5lc3MgTkFNRS4KLS0gICAgZGVmIGdldF9oYXJuZXNzIChzZWxmLCBuYW1lKToKLS0gICAg ICAgIGlmIG5hbWUgbm90IGluIHNlbGYuaGFybmVzc2VzOgotLSAgICAgICAgICAgIHNlbGYuaGFy bmVzc2VzW25hbWVdID0gSGFybmVzc1J1biAobmFtZSkKLS0gICAgICAgIHJldHVybiBzZWxmLmhh cm5lc3Nlc1tuYW1lXQotLQotLWNsYXNzIEhhcm5lc3NSdW4gKE5hbWVkKToKLS0gICAgZGVmIF9f aW5pdF9fIChzZWxmLCBuYW1lKToKLS0gICAgICAgIE5hbWVkLl9faW5pdF9fIChzZWxmLCBuYW1l KQotLSAgICAgICAgIyBTZWdtZW50cyBvZiB0ZXh0IHRoYXQgbWFrZSB1cCB0aGUgaGFybmVzcyBy dW4sIG1hcHBlZCBieSBhIHRlc3QtYmFzZWQKLS0gICAgICAgICMga2V5IHRoYXQgY2FuIGJlIHVz ZWQgdG8gb3JkZXIgdGhlbS4KLS0gICAgICAgIHNlbGYuc2VnbWVudHMgPSBkaWN0KCkKLS0gICAg ICAgICMgU2VnbWVudHMgb2YgdGV4dCB0aGF0IG1ha2UgdXAgdGhlIGhhcm5lc3MgcnVuIGJ1dCB3 aGljaCBoYXZlCi0tICAgICAgICAjIG5vIHJlY29nbml6ZWQgdGVzdCByZXN1bHRzLiAgVGhlc2Ug YXJlIHR5cGljYWxseSBoYXJuZXNzZXMgdGhhdAotLSAgICAgICAgIyBhcmUgY29tcGxldGVseSBz a2lwcGVkIGZvciB0aGUgdGFyZ2V0LgotLSAgICAgICAgc2VsZi5lbXB0eSA9IFtdCi0tICAgICAg ICAjIEEgbGlzdCBvZiByZXN1bHRzLiAgRWFjaCBlbnRyeSBpcyBhIHBhaXIgaW4gd2hpY2ggdGhl IGZpcnN0IGVsZW1lbnQKLS0gICAgICAgICMgaXMgYSB1bmlxdWUgc29ydGluZyBrZXkgYW5kIGlu IHdoaWNoIHRoZSBzZWNvbmQgaXMgdGhlIGZ1bGwKLS0gICAgICAgICMgUEFTUy9GQUlMIGxpbmUu Ci0tICAgICAgICBzZWxmLnJlc3VsdHMgPSBbXQotLQotLSAgICAjIEFkZCBhIHNlZ21lbnQgb2Yg dGV4dCB0byB0aGUgaGFybmVzcyBydW4uICBJZiB0aGUgc2VnbWVudCBpbmNsdWRlcwotLSAgICAj IHRlc3QgcmVzdWx0cywgS0VZIGlzIGFuIGV4YW1wbGUgb2Ygb25lIG9mIHRoZW0sIGFuZCBjYW4g YmUgdXNlZCB0bwotLSAgICAjIGNvbWJpbmUgdGhlIGluZGl2aWR1YWwgc2VnbWVudHMgaW4gb3Jk ZXIuICBJZiB0aGUgc2VnbWVudCBoYXMgbm8KLS0gICAgIyB0ZXN0IHJlc3VsdHMgKGUuZy4gYmVj YXVzZSB0aGUgaGFybmVzcyBkb2Vzbid0IGRvIGFueXRoaW5nIGZvciB0aGUKLS0gICAgIyBjdXJy ZW50IGNvbmZpZ3VyYXRpb24pIHRoZW4gS0VZIGlzIE5vbmUgaW5zdGVhZC4gIEluIHRoYXQgY2Fz ZQotLSAgICAjIGp1c3QgY29sbGVjdCB0aGUgc2VnbWVudHMgaW4gdGhlIG9yZGVyIHRoYXQgd2Ug c2VlIHRoZW0uCi0tICAgIGRlZiBhZGRfc2VnbWVudCAoc2VsZiwga2V5LCBzZWdtZW50KToKLS0g ICAgICAgIGlmIGtleToKLS0gICAgICAgICAgICBhc3NlcnQga2V5IG5vdCBpbiBzZWxmLnNlZ21l bnRzCi0tICAgICAgICAgICAgc2VsZi5zZWdtZW50c1trZXldID0gc2VnbWVudAotLSAgICAgICAg ZWxzZToKLS0gICAgICAgICAgICBzZWxmLmVtcHR5LmFwcGVuZCAoc2VnbWVudCkKLS0KLS1jbGFz cyBTZWdtZW50OgotLSAgICBkZWYgX19pbml0X18gKHNlbGYsIGZpbGVuYW1lLCBzdGFydCk6Ci0t ICAgICAgICBzZWxmLmZpbGVuYW1lID0gZmlsZW5hbWUKLS0gICAgICAgIHNlbGYuc3RhcnQgPSBz dGFydAotLSAgICAgICAgc2VsZi5saW5lcyA9IDAKLS0KLS1jbGFzcyBQcm9nOgotLSAgICBkZWYg X19pbml0X18gKHNlbGYpOgotLSAgICAgICAgIyBUaGUgdmFyaWF0aW9ucyBzcGVjaWZpZWQgb24g dGhlIGNvbW1hbmQgbGluZS4KLS0gICAgICAgIHNlbGYudmFyaWF0aW9ucyA9IFtdCi0tICAgICAg ICAjIFRoZSB2YXJpYXRpb25zIHNlZW4gaW4gdGhlIGlucHV0IGZpbGVzLgotLSAgICAgICAgc2Vs Zi5rbm93bl92YXJpYXRpb25zID0gc2V0KCkKLS0gICAgICAgICMgVGhlIHRvb2xzIHNwZWNpZmll ZCBvbiB0aGUgY29tbWFuZCBsaW5lLgotLSAgICAgICAgc2VsZi50b29scyA9IFtdCi0tICAgICAg ICAjIFdoZXRoZXIgdG8gY3JlYXRlIC5zdW0gcmF0aGVyIHRoYW4gLmxvZyBvdXRwdXQuCi0tICAg ICAgICBzZWxmLmRvX3N1bSA9IFRydWUKLS0gICAgICAgICMgUmVnZXhwcyB1c2VkIHdoaWxlIHBh cnNpbmcuCi0tICAgICAgICBzZWxmLnRlc3RfcnVuX3JlID0gcmUuY29tcGlsZSAocideVGVzdCBS dW4gQnkgKFxTKykgb24gKC4qKSQnKQotLSAgICAgICAgc2VsZi50b29sX3JlID0gcmUuY29tcGls ZSAocideXHRcdD09PSAoLiopIHRlc3RzID09PSQnKQotLSAgICAgICAgc2VsZi5yZXN1bHRfcmUg PSByZS5jb21waWxlIChyJ14oUEFTU3xYUEFTU3xGQUlMfFhGQUlMfFVOUkVTT0xWRUQnCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHInfFdBUk5JTkd8RVJST1J8VU5TVVBQ T1JURUR8VU5URVNURUQnCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHIn fEtGQUlMKTpccyooLispJykKLS0gICAgICAgIHNlbGYuY29tcGxldGVkX3JlID0gcmUuY29tcGls ZSAocicuKiBjb21wbGV0ZWQgYXQgKC4qKScpCi0tICAgICAgICAjIFBpZWNlcyBvZiB0ZXh0IHRv IHdyaXRlIGF0IHRoZSBoZWFkIG9mIHRoZSBvdXRwdXQuCi0tICAgICAgICAjIHN0YXJ0X2xpbmUg aXMgYSBwYWlyIGluIHdoaWNoIHRoZSBmaXJzdCBlbGVtZW50IGlzIGEgZGF0ZXRpbWUKLS0gICAg ICAgICMgYW5kIGluIHdoaWNoIHRoZSBzZWNvbmQgaXMgdGhlIGFzc29jaWF0ZWQgJ1Rlc3QgUnVu IEJ5JyBsaW5lLgotLSAgICAgICAgc2VsZi5zdGFydF9saW5lID0gTm9uZQotLSAgICAgICAgc2Vs Zi5uYXRpdmVfbGluZSA9ICcnCi0tICAgICAgICBzZWxmLnRhcmdldF9saW5lID0gJycKLS0gICAg ICAgIHNlbGYuaG9zdF9saW5lID0gJycKLS0gICAgICAgIHNlbGYuYWNhdHNfcHJlbWFibGUgPSAn JwotLSAgICAgICAgIyBQaWVjZXMgb2YgdGV4dCB0byB3cml0ZSBhdCB0aGUgZW5kIG9mIHRoZSBv dXRwdXQuCi0tICAgICAgICAjIGVuZF9saW5lIGlzIGxpa2Ugc3RhcnRfbGluZSBidXQgZm9yIHRo ZSAncnVudGVzdCBjb21wbGV0ZWQnIGxpbmUuCi0tICAgICAgICBzZWxmLmFjYXRzX2ZhaWx1cmVz ID0gW10KLS0gICAgICAgIHNlbGYudmVyc2lvbl9vdXRwdXQgPSAnJwotLSAgICAgICAgc2VsZi5l bmRfbGluZSA9IE5vbmUKLS0gICAgICAgICMgS25vd24gc3VtbWFyeSB0eXBlcy4KLS0gICAgICAg IHNlbGYuY291bnRfbmFtZXMgPSBbCi0tICAgICAgICAgICAgJyMgb2YgZXhwZWN0ZWQgcGFzc2Vz XHRcdCcsCi0tICAgICAgICAgICAgJyMgb2YgdW5leHBlY3RlZCBmYWlsdXJlc1x0JywKLS0gICAg ICAgICAgICAnIyBvZiB1bmV4cGVjdGVkIHN1Y2Nlc3Nlc1x0JywKLS0gICAgICAgICAgICAnIyBv ZiBleHBlY3RlZCBmYWlsdXJlc1x0XHQnLAotLSAgICAgICAgICAgICcjIG9mIHVua25vd24gc3Vj Y2Vzc2VzXHRcdCcsCi0tICAgICAgICAgICAgJyMgb2Yga25vd24gZmFpbHVyZXNcdFx0JywKLS0g ICAgICAgICAgICAnIyBvZiB1bnRlc3RlZCB0ZXN0Y2FzZXNcdFx0JywKLS0gICAgICAgICAgICAn IyBvZiB1bnJlc29sdmVkIHRlc3RjYXNlc1x0JywKLS0gICAgICAgICAgICAnIyBvZiB1bnN1cHBv cnRlZCB0ZXN0c1x0XHQnCi0tICAgICAgICBdCi0tICAgICAgICBzZWxmLnJ1bnMgPSBkaWN0KCkK LS0KLS0gICAgZGVmIHVzYWdlIChzZWxmKToKLS0gICAgICAgIG5hbWUgPSBzeXMuYXJndlswXQot LSAgICAgICAgc3lzLnN0ZGVyci53cml0ZSAoJ1VzYWdlOiAnICsgbmFtZQotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgKyAnJycgWy10IHRvb2xdIFstbCB2YXJpYW50LWxpc3RdIFstTF0gbG9n LW9yLXN1bS1maWxlIC4uLgotLQotLSAgICB0b29sICAgICAgICAgICBUaGUgdG9vbCAoZS5nLiBn KyssIGxpYmZmaSkgZm9yIHdoaWNoIHRvIGNyZWF0ZSBhCi0tICAgICAgICAgICAgICAgICAgIG5l dyB0ZXN0IHN1bW1hcnkgZmlsZS4gIElmIG5vdCBzcGVjaWZpZWQgdGhlbiBvdXRwdXQKLS0gICAg ICAgICAgICAgICAgICAgaXMgY3JlYXRlZCBmb3IgYWxsIHRvb2xzLgotLSAgICB2YXJpYW50LWxp c3QgICBPbmUgb3IgbW9yZSB0ZXN0IHZhcmlhbnQgbmFtZXMuICBJZiB0aGUgbGlzdCBpcwotLSAg ICAgICAgICAgICAgICAgICBub3Qgc3BlY2lmaWVkIHRoZW4gb25lIGlzIGNvbnN0cnVjdGVkIGZy b20gYWxsCi0tICAgICAgICAgICAgICAgICAgIHZhcmlhbnRzIGluIHRoZSBmaWxlcyBmb3IgPHRv b2w+LgotLSAgICBzdW0tZmlsZSAgICAgICBBIHRlc3Qgc3VtbWFyeSBmaWxlIHdpdGggdGhlIGZv cm1hdCBvZiB0aG9zZQotLSAgICAgICAgICAgICAgICAgICBjcmVhdGVkIGJ5IHJ1bnRlc3QgZnJv bSBEZWphR251LgotLSAgICBJZiAtTCBpcyB1c2VkLCBtZXJnZSAqLmxvZyBmaWxlcyBpbnN0ZWFk IG9mICouc3VtLiAgSW4gdGhpcwotLSAgICBtb2RlIHRoZSBleGFjdCBvcmRlciBvZiBsaW5lcyBt YXkgbm90IGJlIHByZXNlcnZlZCwganVzdCBkaWZmZXJlbnQKLS0gICAgUnVubmluZyAqLmV4cCBj aHVua3Mgc2hvdWxkIGJlIGluIGNvcnJlY3Qgb3JkZXIuCi0tJycnKQotLSAgICAgICAgc3lzLmV4 aXQgKDEpCi0tCi0tICAgIGRlZiBmYXRhbCAoc2VsZiwgd2hhdCwgc3RyaW5nKToKLS0gICAgICAg IGlmIG5vdCB3aGF0OgotLSAgICAgICAgICAgIHdoYXQgPSBzeXMuYXJndlswXQotLSAgICAgICAg c3lzLnN0ZGVyci53cml0ZSAod2hhdCArICc6ICcgKyBzdHJpbmcgKyAnXG4nKQotLSAgICAgICAg c3lzLmV4aXQgKDEpCi0tCi0tICAgICMgUGFyc2UgdGhlIGNvbW1hbmQtbGluZSBhcmd1bWVudHMu Ci0tICAgIGRlZiBwYXJzZV9jbWRsaW5lIChzZWxmKToKLS0gICAgICAgIHRyeToKLS0gICAgICAg ICAgICAob3B0aW9ucywgc2VsZi5maWxlcykgPSBnZXRvcHQuZ2V0b3B0IChzeXMuYXJndlsxOl0s ICdsOnQ6TCcpCi0tICAgICAgICAgICAgaWYgbGVuIChzZWxmLmZpbGVzKSA9PSAwOgotLSAgICAg ICAgICAgICAgICBzZWxmLnVzYWdlKCkKLS0gICAgICAgICAgICBmb3IgKG9wdGlvbiwgdmFsdWUp IGluIG9wdGlvbnM6Ci0tICAgICAgICAgICAgICAgIGlmIG9wdGlvbiA9PSAnLWwnOgotLSAgICAg ICAgICAgICAgICAgICAgc2VsZi52YXJpYXRpb25zLmFwcGVuZCAodmFsdWUpCi0tICAgICAgICAg ICAgICAgIGVsaWYgb3B0aW9uID09ICctdCc6Ci0tICAgICAgICAgICAgICAgICAgICBzZWxmLnRv b2xzLmFwcGVuZCAodmFsdWUpCi0tICAgICAgICAgICAgICAgIGVsc2U6Ci0tICAgICAgICAgICAg ICAgICAgICBzZWxmLmRvX3N1bSA9IEZhbHNlCi0tICAgICAgICBleGNlcHQgZ2V0b3B0LkdldG9w dEVycm9yIGFzIGU6Ci0tICAgICAgICAgICAgc2VsZi5mYXRhbCAoTm9uZSwgZS5tc2cpCi0tCi0t ICAgICMgVHJ5IHRvIHBhcnNlIHRpbWUgc3RyaW5nIFRJTUUsIHJldHVybmluZyBhbiBhcmJpdHJh cnkgdGltZSBvbiBmYWlsdXJlLgotLSAgICAjIEdldHRpbmcgdGhpcyByaWdodCBpcyBqdXN0IGEg bmljZS10by1oYXZlIHNvIGZhaWx1cmVzIHNob3VsZCBiZSBzaWxlbnQuCi0tICAgIGRlZiBwYXJz ZV90aW1lIChzZWxmLCB0aW1lKToKLS0gICAgICAgIHRyeToKLS0gICAgICAgICAgICByZXR1cm4g ZGF0ZXRpbWUuc3RycHRpbWUgKHRpbWUsICclYycpCi0tICAgICAgICBleGNlcHQgVmFsdWVFcnJv cjoKLS0gICAgICAgICAgICByZXR1cm4gZGF0ZXRpbWUubm93KCkKLS0KLS0gICAgIyBQYXJzZSBh biBpbnRlZ2VyIGFuZCBhYm9ydCBvbiBmYWlsdXJlLgotLSAgICBkZWYgcGFyc2VfaW50IChzZWxm LCBmaWxlbmFtZSwgdmFsdWUpOgotLSAgICAgICAgdHJ5OgotLSAgICAgICAgICAgIHJldHVybiBp bnQgKHZhbHVlKQotLSAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6Ci0tICAgICAgICAgICAgc2Vs Zi5mYXRhbCAoZmlsZW5hbWUsICdleHBlY3RlZCBhbiBpbnRlZ2VyLCBnb3Q6ICcgKyB2YWx1ZSkK LS0KLS0gICAgIyBSZXR1cm4gYSBsaXN0IHRoYXQgcmVwcmVzZW50cyBubyB0ZXN0IHJlc3VsdHMu Ci0tICAgIGRlZiB6ZXJvX2NvdW50cyAoc2VsZik6Ci0tICAgICAgICByZXR1cm4gWzAgZm9yIHgg aW4gc2VsZi5jb3VudF9uYW1lc10KLS0KLS0gICAgIyBSZXR1cm4gdGhlIFRvb2xSdW4gZm9yIHRv b2wgTkFNRS4KLS0gICAgZGVmIGdldF90b29sIChzZWxmLCBuYW1lKToKLS0gICAgICAgIGlmIG5h bWUgbm90IGluIHNlbGYucnVuczoKLS0gICAgICAgICAgICBzZWxmLnJ1bnNbbmFtZV0gPSBUb29s UnVuIChuYW1lKQotLSAgICAgICAgcmV0dXJuIHNlbGYucnVuc1tuYW1lXQotLQotLSAgICAjIEFk ZCB0aGUgcmVzdWx0IGNvdW50cyBpbiBsaXN0IEZST01DIHRvIFRPQy4KLS0gICAgZGVmIGFjY3Vt dWxhdGVfY291bnRzIChzZWxmLCB0b2MsIGZyb21jKToKLS0gICAgICAgIGZvciBpIGluIHJhbmdl IChsZW4gKHNlbGYuY291bnRfbmFtZXMpKToKLS0gICAgICAgICAgICB0b2NbaV0gKz0gZnJvbWNb aV0KLS0KLS0gICAgIyBQYXJzZSB0aGUgbGlzdCBvZiB2YXJpYXRpb25zIGFmdGVyICdTY2hlZHVs ZSBvZiB2YXJpYXRpb25zOicuCi0tICAgICMgUmV0dXJuIHRoZSBudW1iZXIgc2Vlbi4KLS0gICAg ZGVmIHBhcnNlX3ZhcmlhdGlvbnMgKHNlbGYsIGZpbGVuYW1lLCBmaWxlKToKLS0gICAgICAgIG51 bV92YXJpYXRpb25zID0gMAotLSAgICAgICAgd2hpbGUgVHJ1ZToKLS0gICAgICAgICAgICBsaW5l ID0gZmlsZS5yZWFkbGluZSgpCi0tICAgICAgICAgICAgaWYgbGluZSA9PSAnJzoKLS0gICAgICAg ICAgICAgICAgc2VsZi5mYXRhbCAoZmlsZW5hbWUsICdjb3VsZCBub3QgcGFyc2UgdmFyaWF0aW9u IGxpc3QnKQotLSAgICAgICAgICAgIGlmIGxpbmUgPT0gJ1xuJzoKLS0gICAgICAgICAgICAgICAg YnJlYWsKLS0gICAgICAgICAgICBzZWxmLmtub3duX3ZhcmlhdGlvbnMuYWRkIChsaW5lLnN0cmlw KCkpCi0tICAgICAgICAgICAgbnVtX3ZhcmlhdGlvbnMgKz0gMQotLSAgICAgICAgcmV0dXJuIG51 bV92YXJpYXRpb25zCi0tCi0tICAgICMgUGFyc2UgZnJvbSB0aGUgZmlyc3QgbGluZSBhZnRlciAn UnVubmluZyB0YXJnZXQgLi4uJyB0byB0aGUgZW5kCi0tICAgICMgb2YgdGhlIHJ1bidzIHN1bW1h cnkuCi0tICAgIGRlZiBwYXJzZV9ydW4gKHNlbGYsIGZpbGVuYW1lLCBmaWxlLCB0b29sLCB2YXJp YXRpb24sIG51bV92YXJpYXRpb25zKToKLS0gICAgICAgIGhlYWRlciA9IE5vbmUKLS0gICAgICAg IGhhcm5lc3MgPSBOb25lCi0tICAgICAgICBzZWdtZW50ID0gTm9uZQotLSAgICAgICAgZmluYWxf dXNpbmcgPSAwCi0tCi0tICAgICAgICAjIElmIHRoaXMgaXMgdGhlIGZpcnN0IHJ1biBmb3IgdGhp cyB2YXJpYXRpb24sIGFkZCBhbnkgdGV4dCBiZWZvcmUKLS0gICAgICAgICMgdGhlIGZpcnN0IGhh cm5lc3MgdG8gdGhlIGhlYWRlci4KLS0gICAgICAgIGlmIG5vdCB2YXJpYXRpb24uaGVhZGVyOgot LSAgICAgICAgICAgIHNlZ21lbnQgPSBTZWdtZW50IChmaWxlbmFtZSwgZmlsZS50ZWxsKCkpCi0t ICAgICAgICAgICAgdmFyaWF0aW9uLmhlYWRlciA9IHNlZ21lbnQKLS0KLS0gICAgICAgICMgUGFy c2UgdXAgdW50aWwgdGhlIGZpcnN0IGxpbmUgb2YgdGhlIHN1bW1hcnkuCi0tICAgICAgICBpZiBu dW1fdmFyaWF0aW9ucyA9PSAxOgotLSAgICAgICAgICAgIGVuZCA9ICdcdFx0PT09ICcgKyB0b29s Lm5hbWUgKyAnIFN1bW1hcnkgPT09XG4nCi0tICAgICAgICBlbHNlOgotLSAgICAgICAgICAgIGVu ZCA9ICgnXHRcdD09PSAnICsgdG9vbC5uYW1lICsgJyBTdW1tYXJ5IGZvciAnCi0tICAgICAgICAg ICAgICAgICAgICsgdmFyaWF0aW9uLm5hbWUgKyAnID09PVxuJykKLS0gICAgICAgIHdoaWxlIFRy dWU6Ci0tICAgICAgICAgICAgbGluZSA9IGZpbGUucmVhZGxpbmUoKQotLSAgICAgICAgICAgIGlm IGxpbmUgPT0gJyc6Ci0tICAgICAgICAgICAgICAgIHNlbGYuZmF0YWwgKGZpbGVuYW1lLCAnbm8g cmVjb2duaXNlZCBzdW1tYXJ5IGxpbmUnKQotLSAgICAgICAgICAgIGlmIGxpbmUgPT0gZW5kOgot LSAgICAgICAgICAgICAgICBicmVhawotLQotLSAgICAgICAgICAgICMgTG9vayBmb3IgdGhlIHN0 YXJ0IG9mIGEgbmV3IGhhcm5lc3MuCi0tICAgICAgICAgICAgaWYgbGluZS5zdGFydHN3aXRoICgn UnVubmluZyAnKSBhbmQgbGluZS5lbmRzd2l0aCAoJyAuLi5cbicpOgotLSAgICAgICAgICAgICAg ICAjIENsb3NlIG9mZiB0aGUgY3VycmVudCBoYXJuZXNzIHNlZ21lbnQsIGlmIGFueS4KLS0gICAg ICAgICAgICAgICAgaWYgaGFybmVzczoKLS0gICAgICAgICAgICAgICAgICAgIHNlZ21lbnQubGlu ZXMgLT0gZmluYWxfdXNpbmcKLS0gICAgICAgICAgICAgICAgICAgIGhhcm5lc3MuYWRkX3NlZ21l bnQgKGZpcnN0X2tleSwgc2VnbWVudCkKLS0gICAgICAgICAgICAgICAgbmFtZSA9IGxpbmVbbGVu ICgnUnVubmluZyAnKTotbGVuKCcgLi4uXG4nKV0KLS0gICAgICAgICAgICAgICAgaGFybmVzcyA9 IHZhcmlhdGlvbi5nZXRfaGFybmVzcyAobmFtZSkKLS0gICAgICAgICAgICAgICAgc2VnbWVudCA9 IFNlZ21lbnQgKGZpbGVuYW1lLCBmaWxlLnRlbGwoKSkKLS0gICAgICAgICAgICAgICAgZmlyc3Rf a2V5ID0gTm9uZQotLSAgICAgICAgICAgICAgICBmaW5hbF91c2luZyA9IDAKLS0gICAgICAgICAg ICAgICAgY29udGludWUKLS0KLS0gICAgICAgICAgICAjIFJlY29yZCB0ZXN0IHJlc3VsdHMuICBB c3NvY2lhdGUgdGhlIGZpcnN0IHRlc3QgcmVzdWx0IHdpdGgKLS0gICAgICAgICAgICAjIHRoZSBo YXJuZXNzIHNlZ21lbnQsIHNvIHRoYXQgaWYgYSBydW4gZm9yIGEgcGFydGljdWxhciBoYXJuZXNz Ci0tICAgICAgICAgICAgIyBoYXMgYmVlbiBzcGxpdCB1cCwgd2UgY2FuIHJlYXNzZW1ibGUgdGhl IGluZGl2aWR1YWwgc2VnbWVudHMKLS0gICAgICAgICAgICAjIGluIGEgc2Vuc2libGUgb3JkZXIu Ci0tICAgICAgICAgICAgIwotLSAgICAgICAgICAgICMgZGVqYWdudSBzb21ldGltZXMgaXNzdWVz IHdhcm5pbmdzIGFib3V0IHRoZSB0ZXN0aW5nIGVudmlyb25tZW50Ci0tICAgICAgICAgICAgIyBi ZWZvcmUgcnVubmluZyBhbnkgdGVzdHMuICBUcmVhdCB0aGVtIGFzIHBhcnQgb2YgdGhlIGhlYWRl cgotLSAgICAgICAgICAgICMgcmF0aGVyIHRoYW4gYXMgYSB0ZXN0IHJlc3VsdC4KLS0gICAgICAg ICAgICBtYXRjaCA9IHNlbGYucmVzdWx0X3JlLm1hdGNoIChsaW5lKQotLSAgICAgICAgICAgIGlm IG1hdGNoIGFuZCAoaGFybmVzcyBvciBub3QgbGluZS5zdGFydHN3aXRoICgnV0FSTklORzonKSk6 Ci0tICAgICAgICAgICAgICAgIGlmIG5vdCBoYXJuZXNzOgotLSAgICAgICAgICAgICAgICAgICAg c2VsZi5mYXRhbCAoZmlsZW5hbWUsICdzYXcgdGVzdCByZXN1bHQgYmVmb3JlIGhhcm5lc3MgbmFt ZScpCi0tICAgICAgICAgICAgICAgIG5hbWUgPSBtYXRjaC5ncm91cCAoMikKLS0gICAgICAgICAg ICAgICAgIyBVZ2x5IGhhY2sgdG8gZ2V0IHRoZSByaWdodCBvcmRlciBmb3IgZ2ZvcnRyYW4uCi0t ICAgICAgICAgICAgICAgIGlmIG5hbWUuc3RhcnRzd2l0aCAoJ2dmb3J0cmFuLmRnL2c3Ny8nKToK LS0gICAgICAgICAgICAgICAgICAgIG5hbWUgPSAnaCcgKyBuYW1lCi0tICAgICAgICAgICAgICAg IGtleSA9IChuYW1lLCBsZW4gKGhhcm5lc3MucmVzdWx0cykpCi0tICAgICAgICAgICAgICAgIGhh cm5lc3MucmVzdWx0cy5hcHBlbmQgKChrZXksIGxpbmUpKQotLSAgICAgICAgICAgICAgICBpZiBu b3QgZmlyc3Rfa2V5IGFuZCBzb3J0X2xvZ3M6Ci0tICAgICAgICAgICAgICAgICAgICBmaXJzdF9r ZXkgPSBrZXkKLS0KLS0gICAgICAgICAgICAjICdVc2luZyAuLi4nIGxpbmVzIGFyZSBvbmx5IGlu dGVyZXN0aW5nIGluIGEgaGVhZGVyLiAgU3BsaXR0aW5nCi0tICAgICAgICAgICAgIyB0aGUgdGVz dCB1cCBpbnRvIHBhcmFsbGVsIHJ1bnMgbGVhZHMgdG8gbW9yZSAnVXNpbmcgLi4uJyBsaW5lcwot LSAgICAgICAgICAgICMgdGhhbiB0aGVyZSB3b3VsZCBiZSBpbiBhIHNpbmdsZSBsb2cuCi0tICAg ICAgICAgICAgaWYgbGluZS5zdGFydHN3aXRoICgnVXNpbmcgJyk6Ci0tICAgICAgICAgICAgICAg IGZpbmFsX3VzaW5nICs9IDEKLS0gICAgICAgICAgICBlbHNlOgotLSAgICAgICAgICAgICAgICBm aW5hbF91c2luZyA9IDAKLS0KLS0gICAgICAgICAgICAjIEFkZCBvdGhlciB0ZXh0IHRvIHRoZSBj dXJyZW50IHNlZ21lbnQsIGlmIGFueS4KLS0gICAgICAgICAgICBpZiBzZWdtZW50OgotLSAgICAg ICAgICAgICAgICBzZWdtZW50LmxpbmVzICs9IDEKLS0KLS0gICAgICAgICMgQ2xvc2Ugb2ZmIHRo ZSBmaW5hbCBoYXJuZXNzIHNlZ21lbnQsIGlmIGFueS4KLS0gICAgICAgIGlmIGhhcm5lc3M6Ci0t ICAgICAgICAgICAgc2VnbWVudC5saW5lcyAtPSBmaW5hbF91c2luZwotLSAgICAgICAgICAgIGhh cm5lc3MuYWRkX3NlZ21lbnQgKGZpcnN0X2tleSwgc2VnbWVudCkKLS0KLS0gICAgICAgICMgUGFy c2UgdGhlIHJlc3Qgb2YgdGhlIHN1bW1hcnkgKHRoZSAnIyBvZiAnIGxpbmVzKS4KLS0gICAgICAg IGlmIGxlbiAodmFyaWF0aW9uLmNvdW50cykgPT0gMDoKLS0gICAgICAgICAgICB2YXJpYXRpb24u Y291bnRzID0gc2VsZi56ZXJvX2NvdW50cygpCi0tICAgICAgICB3aGlsZSBUcnVlOgotLSAgICAg ICAgICAgIGJlZm9yZSA9IGZpbGUudGVsbCgpCi0tICAgICAgICAgICAgbGluZSA9IGZpbGUucmVh ZGxpbmUoKQotLSAgICAgICAgICAgIGlmIGxpbmUgPT0gJyc6Ci0tICAgICAgICAgICAgICAgIGJy ZWFrCi0tICAgICAgICAgICAgaWYgbGluZSA9PSAnXG4nOgotLSAgICAgICAgICAgICAgICBjb250 aW51ZQotLSAgICAgICAgICAgIGlmIG5vdCBsaW5lLnN0YXJ0c3dpdGggKCcjICcpOgotLSAgICAg ICAgICAgICAgICBmaWxlLnNlZWsgKGJlZm9yZSkKLS0gICAgICAgICAgICAgICAgYnJlYWsKLS0g ICAgICAgICAgICBmb3VuZCA9IEZhbHNlCi0tICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UgKGxl biAoc2VsZi5jb3VudF9uYW1lcykpOgotLSAgICAgICAgICAgICAgICBpZiBsaW5lLnN0YXJ0c3dp dGggKHNlbGYuY291bnRfbmFtZXNbaV0pOgotLSAgICAgICAgICAgICAgICAgICAgY291bnQgPSBs aW5lW2xlbiAoc2VsZi5jb3VudF9uYW1lc1tpXSk6LTFdLnN0cmlwKCkKLS0gICAgICAgICAgICAg ICAgICAgIHZhcmlhdGlvbi5jb3VudHNbaV0gKz0gc2VsZi5wYXJzZV9pbnQgKGZpbGVuYW1lLCBj b3VudCkKLS0gICAgICAgICAgICAgICAgICAgIGZvdW5kID0gVHJ1ZQotLSAgICAgICAgICAgICAg ICAgICAgYnJlYWsKLS0gICAgICAgICAgICBpZiBub3QgZm91bmQ6Ci0tICAgICAgICAgICAgICAg IHNlbGYuZmF0YWwgKGZpbGVuYW1lLCAndW5rbm93biB0ZXN0IHJlc3VsdDogJyArIGxpbmVbOi0x XSkKLS0KLS0gICAgIyBQYXJzZSBhbiBhY2F0cyBydW4sIHdoaWNoIHVzZXMgYSBkaWZmZXJlbnQg Zm9ybWF0IGZyb20gZGVqYWdudS4KLS0gICAgIyBXZSBoYXZlIGp1c3Qgc2tpcHBlZCBvdmVyICc9 PT0gYWNhdHMgY29uZmlndXJhdGlvbiA9PT0nLgotLSAgICBkZWYgcGFyc2VfYWNhdHNfcnVuIChz ZWxmLCBmaWxlbmFtZSwgZmlsZSk6Ci0tICAgICAgICAjIFBhcnNlIHRoZSBwcmVhbWJsZSwgd2hp Y2ggZGVzY3JpYmVzIHRoZSBjb25maWd1cmF0aW9uIGFuZCBsb2dzCi0tICAgICAgICAjIHRoZSBj cmVhdGlvbiBvZiBzdXBwb3J0IGZpbGVzLgotLSAgICAgICAgcmVjb3JkID0gKHNlbGYuYWNhdHNf cHJlbWFibGUgPT0gJycpCi0tICAgICAgICBpZiByZWNvcmQ6Ci0tICAgICAgICAgICAgc2VsZi5h Y2F0c19wcmVtYWJsZSA9ICdcdFx0PT09IGFjYXRzIGNvbmZpZ3VyYXRpb24gPT09XG4nCi0tICAg ICAgICB3aGlsZSBUcnVlOgotLSAgICAgICAgICAgIGxpbmUgPSBmaWxlLnJlYWRsaW5lKCkKLS0g ICAgICAgICAgICBpZiBsaW5lID09ICcnOgotLSAgICAgICAgICAgICAgICBzZWxmLmZhdGFsIChm aWxlbmFtZSwgJ2NvdWxkIG5vdCBwYXJzZSBhY2F0cyBwcmVhbWJsZScpCi0tICAgICAgICAgICAg aWYgbGluZSA9PSAnXHRcdD09PSBhY2F0cyB0ZXN0cyA9PT1cbic6Ci0tICAgICAgICAgICAgICAg IGJyZWFrCi0tICAgICAgICAgICAgaWYgcmVjb3JkOgotLSAgICAgICAgICAgICAgICBzZWxmLmFj YXRzX3ByZW1hYmxlICs9IGxpbmUKLS0KLS0gICAgICAgICMgUGFyc2UgdGhlIHRlc3QgcmVzdWx0 cyB0aGVtc2VsdmVzLCB1c2luZyBhIGR1bW15IHZhcmlhdGlvbiBuYW1lLgotLSAgICAgICAgdG9v bCA9IHNlbGYuZ2V0X3Rvb2wgKCdhY2F0cycpCi0tICAgICAgICB2YXJpYXRpb24gPSB0b29sLmdl dF92YXJpYXRpb24gKCdub25lJykKLS0gICAgICAgIHNlbGYucGFyc2VfcnVuIChmaWxlbmFtZSwg ZmlsZSwgdG9vbCwgdmFyaWF0aW9uLCAxKQotLQotLSAgICAgICAgIyBQYXJzZSB0aGUgZmFpbHVy ZSBsaXN0LgotLSAgICAgICAgd2hpbGUgVHJ1ZToKLS0gICAgICAgICAgICBiZWZvcmUgPSBmaWxl LnRlbGwoKQotLSAgICAgICAgICAgIGxpbmUgPSBmaWxlLnJlYWRsaW5lKCkKLS0gICAgICAgICAg ICBpZiBsaW5lLnN0YXJ0c3dpdGggKCcqKiogRkFJTFVSRVM6ICcpOgotLSAgICAgICAgICAgICAg ICBzZWxmLmFjYXRzX2ZhaWx1cmVzLmFwcGVuZCAobGluZVtsZW4gKCcqKiogRkFJTFVSRVM6ICcp Oi0xXSkKLS0gICAgICAgICAgICAgICAgY29udGludWUKLS0gICAgICAgICAgICBmaWxlLnNlZWsg KGJlZm9yZSkKLS0gICAgICAgICAgICBicmVhawotLQotLSAgICAjIFBhcnNlIHRoZSBmaW5hbCBz dW1tYXJ5IGF0IHRoZSBlbmQgb2YgYSBsb2cgaW4gb3JkZXIgdG8gY2FwdHVyZQotLSAgICAjIHRo ZSB2ZXJzaW9uIG91dHB1dCB0aGF0IGZvbGxvd3MgaXQuCi0tICAgIGRlZiBwYXJzZV9maW5hbF9z dW1tYXJ5IChzZWxmLCBmaWxlbmFtZSwgZmlsZSk6Ci0tICAgICAgICByZWNvcmQgPSAoc2VsZi52 ZXJzaW9uX291dHB1dCA9PSAnJykKLS0gICAgICAgIHdoaWxlIFRydWU6Ci0tICAgICAgICAgICAg bGluZSA9IGZpbGUucmVhZGxpbmUoKQotLSAgICAgICAgICAgIGlmIGxpbmUgPT0gJyc6Ci0tICAg ICAgICAgICAgICAgIGJyZWFrCi0tICAgICAgICAgICAgaWYgbGluZS5zdGFydHN3aXRoICgnIyBv ZiAnKToKLS0gICAgICAgICAgICAgICAgY29udGludWUKLS0gICAgICAgICAgICBpZiByZWNvcmQ6 Ci0tICAgICAgICAgICAgICAgIHNlbGYudmVyc2lvbl9vdXRwdXQgKz0gbGluZQotLSAgICAgICAg ICAgIGlmIGxpbmUgPT0gJ1xuJzoKLS0gICAgICAgICAgICAgICAgYnJlYWsKLS0KLS0gICAgIyBQ YXJzZSBhIC5sb2cgb3IgLnN1bSBmaWxlLgotLSAgICBkZWYgcGFyc2VfZmlsZSAoc2VsZiwgZmls ZW5hbWUsIGZpbGUpOgotLSAgICAgICAgdG9vbCA9IE5vbmUKLS0gICAgICAgIHRhcmdldCA9IE5v bmUKLS0gICAgICAgIG51bV92YXJpYXRpb25zID0gMQotLSAgICAgICAgd2hpbGUgVHJ1ZToKLS0g ICAgICAgICAgICBsaW5lID0gZmlsZS5yZWFkbGluZSgpCi0tICAgICAgICAgICAgaWYgbGluZSA9 PSAnJzoKLS0gICAgICAgICAgICAgICAgcmV0dXJuCi0tCi0tICAgICAgICAgICAgIyBQYXJzZSB0 aGUgbGlzdCBvZiB2YXJpYXRpb25zLCB3aGljaCBjb21lcyBiZWZvcmUgdGhlIHRlc3QKLS0gICAg ICAgICAgICAjIHJ1bnMgdGhlbXNlbHZlcy4KLS0gICAgICAgICAgICBpZiBsaW5lLnN0YXJ0c3dp dGggKCdTY2hlZHVsZSBvZiB2YXJpYXRpb25zOicpOgotLSAgICAgICAgICAgICAgICBudW1fdmFy aWF0aW9ucyA9IHNlbGYucGFyc2VfdmFyaWF0aW9ucyAoZmlsZW5hbWUsIGZpbGUpCi0tICAgICAg ICAgICAgICAgIGNvbnRpbnVlCi0tCi0tICAgICAgICAgICAgIyBQYXJzZSBhIHRlc3RzdWl0ZSBy dW4gZm9yIG9uZSB0b29sL3ZhcmlhdGlvbiBjb21iaW5hdGlvbi4KLS0gICAgICAgICAgICBpZiBs aW5lLnN0YXJ0c3dpdGggKCdSdW5uaW5nIHRhcmdldCAnKToKLS0gICAgICAgICAgICAgICAgbmFt ZSA9IGxpbmVbbGVuICgnUnVubmluZyB0YXJnZXQgJyk6LTFdCi0tICAgICAgICAgICAgICAgIGlm IG5vdCB0b29sOgotLSAgICAgICAgICAgICAgICAgICAgc2VsZi5mYXRhbCAoZmlsZW5hbWUsICdj b3VsZCBub3QgcGFyc2UgdG9vbCBuYW1lJykKLS0gICAgICAgICAgICAgICAgaWYgbmFtZSBub3Qg aW4gc2VsZi5rbm93bl92YXJpYXRpb25zOgotLSAgICAgICAgICAgICAgICAgICAgc2VsZi5mYXRh bCAoZmlsZW5hbWUsICd1bmtub3duIHRhcmdldDogJyArIG5hbWUpCi0tICAgICAgICAgICAgICAg IHNlbGYucGFyc2VfcnVuIChmaWxlbmFtZSwgZmlsZSwgdG9vbCwKLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHRvb2wuZ2V0X3ZhcmlhdGlvbiAobmFtZSksCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBudW1fdmFyaWF0aW9ucykKLS0gICAgICAgICAgICAgICAgIyBJ ZiB0aGVyZSBpcyBvbmx5IG9uZSB2YXJpYXRpb24gdGhlbiB0aGVyZSBpcyBubyBzZXBhcmF0ZQot LSAgICAgICAgICAgICAgICAjIHN1bW1hcnkgZm9yIGl0LiAgUmVjb3JkIGFueSBmb2xsb3dpbmcg dmVyc2lvbiBvdXRwdXQuCi0tICAgICAgICAgICAgICAgIGlmIG51bV92YXJpYXRpb25zID09IDE6 Ci0tICAgICAgICAgICAgICAgICAgICBzZWxmLnBhcnNlX2ZpbmFsX3N1bW1hcnkgKGZpbGVuYW1l LCBmaWxlKQotLSAgICAgICAgICAgICAgICBjb250aW51ZQotLQotLSAgICAgICAgICAgICMgUGFy c2UgdGhlIHN0YXJ0IGxpbmUuICBJbiB0aGUgY2FzZSB3aGVyZSBzZXZlcmFsIGZpbGVzIGFyZSBi ZWluZwotLSAgICAgICAgICAgICMgcGFyc2VkLCBwaWNrIHRoZSBvbmUgd2l0aCB0aGUgZWFybGll c3QgdGltZS4KLS0gICAgICAgICAgICBtYXRjaCA9IHNlbGYudGVzdF9ydW5fcmUubWF0Y2ggKGxp bmUpCi0tICAgICAgICAgICAgaWYgbWF0Y2g6Ci0tICAgICAgICAgICAgICAgIHRpbWUgPSBzZWxm LnBhcnNlX3RpbWUgKG1hdGNoLmdyb3VwICgyKSkKLS0gICAgICAgICAgICAgICAgaWYgbm90IHNl bGYuc3RhcnRfbGluZSBvciBzZWxmLnN0YXJ0X2xpbmVbMF0gPiB0aW1lOgotLSAgICAgICAgICAg ICAgICAgICAgc2VsZi5zdGFydF9saW5lID0gKHRpbWUsIGxpbmUpCi0tICAgICAgICAgICAgICAg IGNvbnRpbnVlCi0tCi0tICAgICAgICAgICAgIyBQYXJzZSB0aGUgZm9ybSB1c2VkIGZvciBuYXRp dmUgdGVzdGluZy4KLS0gICAgICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGggKCdOYXRpdmUgY29u ZmlndXJhdGlvbiBpcyAnKToKLS0gICAgICAgICAgICAgICAgc2VsZi5uYXRpdmVfbGluZSA9IGxp bmUKLS0gICAgICAgICAgICAgICAgY29udGludWUKLS0KLS0gICAgICAgICAgICAjIFBhcnNlIHRo ZSB0YXJnZXQgdHJpcGxldC4KLS0gICAgICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGggKCdUYXJn ZXQgaXMgJyk6Ci0tICAgICAgICAgICAgICAgIHNlbGYudGFyZ2V0X2xpbmUgPSBsaW5lCi0tICAg ICAgICAgICAgICAgIGNvbnRpbnVlCi0tCi0tICAgICAgICAgICAgIyBQYXJzZSB0aGUgaG9zdCB0 cmlwbGV0LgotLSAgICAgICAgICAgIGlmIGxpbmUuc3RhcnRzd2l0aCAoJ0hvc3QgICBpcyAnKToK LS0gICAgICAgICAgICAgICAgc2VsZi5ob3N0X2xpbmUgPSBsaW5lCi0tICAgICAgICAgICAgICAg IGNvbnRpbnVlCi0tCi0tICAgICAgICAgICAgIyBQYXJzZSB0aGUgYWNhdHMgcHJlbWFibGUuCi0t ICAgICAgICAgICAgaWYgbGluZSA9PSAnXHRcdD09PSBhY2F0cyBjb25maWd1cmF0aW9uID09PVxu JzoKLS0gICAgICAgICAgICAgICAgc2VsZi5wYXJzZV9hY2F0c19ydW4gKGZpbGVuYW1lLCBmaWxl KQotLSAgICAgICAgICAgICAgICBjb250aW51ZQotLQotLSAgICAgICAgICAgICMgUGFyc2UgdGhl IHRvb2wgbmFtZS4KLS0gICAgICAgICAgICBtYXRjaCA9IHNlbGYudG9vbF9yZS5tYXRjaCAobGlu ZSkKLS0gICAgICAgICAgICBpZiBtYXRjaDoKLS0gICAgICAgICAgICAgICAgdG9vbCA9IHNlbGYu Z2V0X3Rvb2wgKG1hdGNoLmdyb3VwICgxKSkKLS0gICAgICAgICAgICAgICAgY29udGludWUKLS0K LS0gICAgICAgICAgICAjIFNraXAgb3ZlciB0aGUgZmluYWwgc3VtbWFyeSAod2hpY2ggd2UgaW5z dGVhZCBjcmVhdGUgZnJvbQotLSAgICAgICAgICAgICMgaW5kaXZpZHVhbCBydW5zKSBhbmQgcGFy c2UgdGhlIHZlcnNpb24gb3V0cHV0LgotLSAgICAgICAgICAgIGlmIHRvb2wgYW5kIGxpbmUgPT0g J1x0XHQ9PT0gJyArIHRvb2wubmFtZSArICcgU3VtbWFyeSA9PT1cbic6Ci0tICAgICAgICAgICAg ICAgIGlmIGZpbGUucmVhZGxpbmUoKSAhPSAnXG4nOgotLSAgICAgICAgICAgICAgICAgICAgc2Vs Zi5mYXRhbCAoZmlsZW5hbWUsICdleHBlY3RlZCBibGFuayBsaW5lIGFmdGVyIHN1bW1hcnknKQot LSAgICAgICAgICAgICAgICBzZWxmLnBhcnNlX2ZpbmFsX3N1bW1hcnkgKGZpbGVuYW1lLCBmaWxl KQotLSAgICAgICAgICAgICAgICBjb250aW51ZQotLQotLSAgICAgICAgICAgICMgUGFyc2UgdGhl IGNvbXBsZXRpb24gbGluZS4gIEluIHRoZSBjYXNlIHdoZXJlIHNldmVyYWwgZmlsZXMKLS0gICAg ICAgICAgICAjIGFyZSBiZWluZyBwYXJzZWQsIHBpY2sgdGhlIG9uZSB3aXRoIHRoZSBsYXRlc3Qg dGltZS4KLS0gICAgICAgICAgICBtYXRjaCA9IHNlbGYuY29tcGxldGVkX3JlLm1hdGNoIChsaW5l KQotLSAgICAgICAgICAgIGlmIG1hdGNoOgotLSAgICAgICAgICAgICAgICB0aW1lID0gc2VsZi5w YXJzZV90aW1lIChtYXRjaC5ncm91cCAoMSkpCi0tICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxm LmVuZF9saW5lIG9yIHNlbGYuZW5kX2xpbmVbMF0gPCB0aW1lOgotLSAgICAgICAgICAgICAgICAg ICAgc2VsZi5lbmRfbGluZSA9ICh0aW1lLCBsaW5lKQotLSAgICAgICAgICAgICAgICBjb250aW51 ZQotLQotLSAgICAgICAgICAgICMgU2FuaXR5IGNoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IGltcG9y dGFudCB0ZXh0IGRvZXNuJ3QgZ2V0Ci0tICAgICAgICAgICAgIyBkcm9wcGVkIGFjY2lkZW50YWxs eS4KLS0gICAgICAgICAgICBpZiBzdHJpY3QgYW5kIGxpbmUuc3RyaXAoKSAhPSAnJzoKLS0gICAg ICAgICAgICAgICAgc2VsZi5mYXRhbCAoZmlsZW5hbWUsICd1bnJlY29nbmlzZWQgbGluZTogJyAr IGxpbmVbOi0xXSkKLS0KLS0gICAgIyBPdXRwdXQgYSBzZWdtZW50IG9mIHRleHQuCi0tICAgIGRl ZiBvdXRwdXRfc2VnbWVudCAoc2VsZiwgc2VnbWVudCk6Ci0tICAgICAgICB3aXRoIHNhZmVfb3Bl biAoc2VnbWVudC5maWxlbmFtZSkgYXMgZmlsZToKLS0gICAgICAgICAgICBmaWxlLnNlZWsgKHNl Z21lbnQuc3RhcnQpCi0tICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UgKHNlZ21lbnQubGluZXMp OgotLSAgICAgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlIChmaWxlLnJlYWRsaW5lKCkpCi0t Ci0tICAgICMgT3V0cHV0IGEgc3VtbWFyeSBnaXZpbmcgdGhlIG51bWJlciBvZiB0aW1lcyBlYWNo IHR5cGUgb2YgcmVzdWx0IGhhcwotLSAgICAjIGJlZW4gc2Vlbi4KLS0gICAgZGVmIG91dHB1dF9z dW1tYXJ5IChzZWxmLCB0b29sLCBjb3VudHMpOgotLSAgICAgICAgZm9yIGkgaW4gcmFuZ2UgKGxl biAoc2VsZi5jb3VudF9uYW1lcykpOgotLSAgICAgICAgICAgIG5hbWUgPSBzZWxmLmNvdW50X25h bWVzW2ldCi0tICAgICAgICAgICAgIyBkZWphZ251IG9ubHkgcHJpbnRzIHJlc3VsdCB0eXBlcyB0 aGF0IHdlcmUgc2VlbiBhdCBsZWFzdCBvbmNlLAotLSAgICAgICAgICAgICMgYnV0IGFjYXRzIGFs d2F5cyBwcmludHMgYSBudW1iZXIgb2YgdW5leHBlY3RlZCBmYWlsdXJlcy4KLS0gICAgICAgICAg ICBpZiAoY291bnRzW2ldID4gMAotLSAgICAgICAgICAgICAgICBvciAodG9vbC5uYW1lID09ICdh Y2F0cycKLS0gICAgICAgICAgICAgICAgICAgIGFuZCBuYW1lLnN0YXJ0c3dpdGggKCcjIG9mIHVu ZXhwZWN0ZWQgZmFpbHVyZXMnKSkpOgotLSAgICAgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRl ICgnJXMlZFxuJyAlIChuYW1lLCBjb3VudHNbaV0pKQotLQotLSAgICAjIE91dHB1dCB1bmlmaWVk IC5sb2cgb3IgLnN1bSBpbmZvcm1hdGlvbiBmb3IgYSBwYXJ0aWN1bGFyIHZhcmlhdGlvbiwKLS0g ICAgIyB3aXRoIGEgc3VtbWFyeSBhdCB0aGUgZW5kLgotLSAgICBkZWYgb3V0cHV0X3ZhcmlhdGlv biAoc2VsZiwgdG9vbCwgdmFyaWF0aW9uKToKLS0gICAgICAgIHNlbGYub3V0cHV0X3NlZ21lbnQg KHZhcmlhdGlvbi5oZWFkZXIpCi0tICAgICAgICBmb3IgaGFybmVzcyBpbiBzb3J0ZWQgKHZhcmlh dGlvbi5oYXJuZXNzZXMudmFsdWVzKCksCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGtleSA9IGF0dHJnZXR0ZXIgKCduYW1lJykpOgotLSAgICAgICAgICAgIHN5cy5zdGRvdXQud3Jp dGUgKCdSdW5uaW5nICcgKyBoYXJuZXNzLm5hbWUgKyAnIC4uLlxuJykKLS0gICAgICAgICAgICBp ZiBzZWxmLmRvX3N1bToKLS0gICAgICAgICAgICAgICAgaGFybmVzcy5yZXN1bHRzLnNvcnQoKQot LSAgICAgICAgICAgICAgICBmb3IgKGtleSwgbGluZSkgaW4gaGFybmVzcy5yZXN1bHRzOgotLSAg ICAgICAgICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSAobGluZSkKLS0gICAgICAgICAgICBl bHNlOgotLSAgICAgICAgICAgICAgICAjIFJlYXJyYW5nZSB0aGUgbG9nIHNlZ21lbnRzIGludG8g dGVzdCBvcmRlciAoYnV0IHdpdGhvdXQKLS0gICAgICAgICAgICAgICAgIyByZWFycmFuZ2luZyB0 ZXh0IHdpdGhpbiB0aG9zZSBzZWdtZW50cykuCi0tICAgICAgICAgICAgICAgIGZvciBrZXkgaW4g c29ydGVkIChoYXJuZXNzLnNlZ21lbnRzLmtleXMoKSk6Ci0tICAgICAgICAgICAgICAgICAgICBz ZWxmLm91dHB1dF9zZWdtZW50IChoYXJuZXNzLnNlZ21lbnRzW2tleV0pCi0tICAgICAgICAgICAg ICAgIGZvciBzZWdtZW50IGluIGhhcm5lc3MuZW1wdHk6Ci0tICAgICAgICAgICAgICAgICAgICBz ZWxmLm91dHB1dF9zZWdtZW50IChzZWdtZW50KQotLSAgICAgICAgaWYgbGVuIChzZWxmLnZhcmlh dGlvbnMpID4gMToKLS0gICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlICgnXHRcdD09PSAnICsg dG9vbC5uYW1lICsgJyBTdW1tYXJ5IGZvciAnCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKyB2YXJpYXRpb24ubmFtZSArICcgPT09XG5cbicpCi0tICAgICAgICAgICAgc2VsZi5vdXRw dXRfc3VtbWFyeSAodG9vbCwgdmFyaWF0aW9uLmNvdW50cykKLS0KLS0gICAgIyBPdXRwdXQgdW5p ZmllZCAubG9nIG9yIC5zdW0gaW5mb3JtYXRpb24gZm9yIGEgcGFydGljdWxhciB0b29sLAotLSAg ICAjIHdpdGggYSBzdW1tYXJ5IGF0IHRoZSBlbmQuCi0tICAgIGRlZiBvdXRwdXRfdG9vbCAoc2Vs ZiwgdG9vbCk6Ci0tICAgICAgICBjb3VudHMgPSBzZWxmLnplcm9fY291bnRzKCkKLS0gICAgICAg IGlmIHRvb2wubmFtZSA9PSAnYWNhdHMnOgotLSAgICAgICAgICAgICMgYWNhdHMgZG9lc24ndCB1 c2UgdmFyaWF0aW9ucywgc28ganVzdCBvdXRwdXQgZXZlcnl0aGluZy4KLS0gICAgICAgICAgICAj IEl0IGFsc28gaGFzIGEgZGlmZmVyZW50IGFwcHJvYWNoIHRvIHdoaXRlc3BhY2UuCi0tICAgICAg ICAgICAgc3lzLnN0ZG91dC53cml0ZSAoJ1x0XHQ9PT0gJyArIHRvb2wubmFtZSArICcgdGVzdHMg PT09XG4nKQotLSAgICAgICAgICAgIGZvciB2YXJpYXRpb24gaW4gdG9vbC52YXJpYXRpb25zLnZh bHVlcygpOgotLSAgICAgICAgICAgICAgICBzZWxmLm91dHB1dF92YXJpYXRpb24gKHRvb2wsIHZh cmlhdGlvbikKLS0gICAgICAgICAgICAgICAgc2VsZi5hY2N1bXVsYXRlX2NvdW50cyAoY291bnRz LCB2YXJpYXRpb24uY291bnRzKQotLSAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUgKCdcdFx0 PT09ICcgKyB0b29sLm5hbWUgKyAnIFN1bW1hcnkgPT09XG4nKQotLSAgICAgICAgZWxzZToKLS0g ICAgICAgICAgICAjIE91dHB1dCB0aGUgcmVzdWx0cyBpbiB0aGUgdXN1YWwgZGVqYWdudSBydW50 ZXN0IGZvcm1hdC4KLS0gICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlICgnXG5cdFx0PT09ICcg KyB0b29sLm5hbWUgKyAnIHRlc3RzID09PVxuXG4nCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJ1NjaGVkdWxlIG9mIHZhcmlhdGlvbnM6XG4nKQotLSAgICAgICAgICAgIGZvciBuYW1l IGluIHNlbGYudmFyaWF0aW9uczoKLS0gICAgICAgICAgICAgICAgaWYgbmFtZSBpbiB0b29sLnZh cmlhdGlvbnM6Ci0tICAgICAgICAgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlICgnICAgICcg KyBuYW1lICsgJ1xuJykKLS0gICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlICgnXG4nKQotLSAg ICAgICAgICAgIGZvciBuYW1lIGluIHNlbGYudmFyaWF0aW9uczoKLS0gICAgICAgICAgICAgICAg aWYgbmFtZSBpbiB0b29sLnZhcmlhdGlvbnM6Ci0tICAgICAgICAgICAgICAgICAgICB2YXJpYXRp b24gPSB0b29sLnZhcmlhdGlvbnNbbmFtZV0KLS0gICAgICAgICAgICAgICAgICAgIHN5cy5zdGRv dXQud3JpdGUgKCdSdW5uaW5nIHRhcmdldCAnCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArIHZhcmlhdGlvbi5uYW1lICsgJ1xuJykKLS0gICAgICAgICAgICAgICAgICAg IHNlbGYub3V0cHV0X3ZhcmlhdGlvbiAodG9vbCwgdmFyaWF0aW9uKQotLSAgICAgICAgICAgICAg ICAgICAgc2VsZi5hY2N1bXVsYXRlX2NvdW50cyAoY291bnRzLCB2YXJpYXRpb24uY291bnRzKQot LSAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUgKCdcblx0XHQ9PT0gJyArIHRvb2wubmFtZSAr ICcgU3VtbWFyeSA9PT1cblxuJykKLS0gICAgICAgIHNlbGYub3V0cHV0X3N1bW1hcnkgKHRvb2ws IGNvdW50cykKLS0KLS0gICAgZGVmIG1haW4gKHNlbGYpOgotLSAgICAgICAgc2VsZi5wYXJzZV9j bWRsaW5lKCkKLS0gICAgICAgIHRyeToKLS0gICAgICAgICAgICAjIFBhcnNlIHRoZSBpbnB1dCBm aWxlcy4KLS0gICAgICAgICAgICBmb3IgZmlsZW5hbWUgaW4gc2VsZi5maWxlczoKLS0gICAgICAg ICAgICAgICAgd2l0aCBzYWZlX29wZW4gKGZpbGVuYW1lKSBhcyBmaWxlOgotLSAgICAgICAgICAg ICAgICAgICAgc2VsZi5wYXJzZV9maWxlIChmaWxlbmFtZSwgZmlsZSkKLS0KLS0gICAgICAgICAg ICAjIERlY2lkZSB3aGF0IHRvIG91dHB1dC4KLS0gICAgICAgICAgICBpZiBsZW4gKHNlbGYudmFy aWF0aW9ucykgPT0gMDoKLS0gICAgICAgICAgICAgICAgc2VsZi52YXJpYXRpb25zID0gc29ydGVk IChzZWxmLmtub3duX3ZhcmlhdGlvbnMpCi0tICAgICAgICAgICAgZWxzZToKLS0gICAgICAgICAg ICAgICAgZm9yIG5hbWUgaW4gc2VsZi52YXJpYXRpb25zOgotLSAgICAgICAgICAgICAgICAgICAg aWYgbmFtZSBub3QgaW4gc2VsZi5rbm93bl92YXJpYXRpb25zOgotLSAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuZmF0YWwgKE5vbmUsICdubyByZXN1bHRzIGZvciAnICsgbmFtZSkKLS0gICAg ICAgICAgICBpZiBsZW4gKHNlbGYudG9vbHMpID09IDA6Ci0tICAgICAgICAgICAgICAgIHNlbGYu dG9vbHMgPSBzb3J0ZWQgKHNlbGYucnVucy5rZXlzKCkpCi0tCi0tICAgICAgICAgICAgIyBPdXRw dXQgdGhlIGhlYWRlci4KLS0gICAgICAgICAgICBpZiBzZWxmLnN0YXJ0X2xpbmU6Ci0tICAgICAg ICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUgKHNlbGYuc3RhcnRfbGluZVsxXSkKLS0gICAgICAg ICAgICBzeXMuc3Rkb3V0LndyaXRlIChzZWxmLm5hdGl2ZV9saW5lKQotLSAgICAgICAgICAgIHN5 cy5zdGRvdXQud3JpdGUgKHNlbGYudGFyZ2V0X2xpbmUpCi0tICAgICAgICAgICAgc3lzLnN0ZG91 dC53cml0ZSAoc2VsZi5ob3N0X2xpbmUpCi0tICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSAo c2VsZi5hY2F0c19wcmVtYWJsZSkKLS0KLS0gICAgICAgICAgICAjIE91dHB1dCB0aGUgbWFpbiBi b2R5LgotLSAgICAgICAgICAgIGZvciBuYW1lIGluIHNlbGYudG9vbHM6Ci0tICAgICAgICAgICAg ICAgIGlmIG5hbWUgbm90IGluIHNlbGYucnVuczoKLS0gICAgICAgICAgICAgICAgICAgIHNlbGYu ZmF0YWwgKE5vbmUsICdubyByZXN1bHRzIGZvciAnICsgbmFtZSkKLS0gICAgICAgICAgICAgICAg c2VsZi5vdXRwdXRfdG9vbCAoc2VsZi5ydW5zW25hbWVdKQotLQotLSAgICAgICAgICAgICMgT3V0 cHV0IHRoZSBmb290ZXIuCi0tICAgICAgICAgICAgaWYgbGVuIChzZWxmLmFjYXRzX2ZhaWx1cmVz KSA+IDA6Ci0tICAgICAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUgKCcqKiogRkFJTFVSRVM6 ICcKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyAnICcuam9pbiAoc2VsZi5h Y2F0c19mYWlsdXJlcykgKyAnXG4nKQotLSAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUgKHNl bGYudmVyc2lvbl9vdXRwdXQpCi0tICAgICAgICAgICAgaWYgc2VsZi5lbmRfbGluZToKLS0gICAg ICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSAoc2VsZi5lbmRfbGluZVsxXSkKLS0gICAgICAg IGV4Y2VwdCBJT0Vycm9yIGFzIGU6Ci0tICAgICAgICAgICAgc2VsZi5mYXRhbCAoZS5maWxlbmFt ZSwgZS5zdHJlcnJvcikKLS0KLS1Qcm9nKCkubWFpbigpCgpkaWZmIC0tZ2l0IGEvZ2RiLXB5dGhv bi1naWwucGF0Y2ggYi9nZGItcHl0aG9uLWdpbC5wYXRjaAppbmRleCBiMmQ5ZGU5Li4xZTNiMGI5 IDEwMDY0NAotLS0gYS9nZGItcHl0aG9uLWdpbC5wYXRjaAorKysgYi9nZGItcHl0aG9uLWdpbC5w YXRjaApAQCAtMSw3ICsxLDggQEAKLWRpZmYgLWR1cCAtcnVOcCBnZGItNy44LW9yaWcvZ2RiL2Rv Yy9weXRob24udGV4aSBnZGItNy44L2dkYi9kb2MvcHl0aG9uLnRleGkKLS0tLSBnZGItNy44LW9y aWcvZ2RiL2RvYy9weXRob24udGV4aQkyMDE0LTA4LTEzIDIyOjA0OjE0LjE2MjQ0MTI3MSArMDIw MAotKysrIGdkYi03LjgvZ2RiL2RvYy9weXRob24udGV4aQkyMDE0LTA4LTEzIDIyOjA3OjIwLjg5 NDY0Mzg1MyArMDIwMAotQEAgLTIyOCw2ICsyMjgsMTQgQEAgcmV0dXJuZWQgYXMgYSBzdHJpbmcu ICBUaGUgZGVmYXVsdCBpcyBAYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2RvYy9w eXRob24udGV4aQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIv ZG9jL3B5dGhvbi50ZXhpCTIwMTUtMDUtMzEgMTc6NTc6MTIuNDMxNTkzOTgzICswMjAwCisrKysg Z2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZG9jL3B5dGhvbi50ZXhpCTIwMTUtMDUtMzEgMTc6NTc6 MTQuNjU0NjA3NzA4ICswMjAwCitAQCAtMjI5LDYgKzIyOSwxNCBAQCByZXR1cm5lZCBhcyBhIHN0 cmluZy4gIFRoZSBkZWZhdWx0IGlzIEBjCiAgcmV0dXJuIHZhbHVlIGlzIEBjb2Rle05vbmV9LiAg SWYgQHZhcnt0b19zdHJpbmd9IGlzIEBjb2Rle1RydWV9LCB0aGUKICBAdmFsdWV7R0RCTn0gdmly dHVhbCB0ZXJtaW5hbCB3aWxsIGJlIHRlbXBvcmFyaWx5IHNldCB0byB1bmxpbWl0ZWQgd2lkdGgK ICBhbmQgaGVpZ2h0LCBhbmQgaXRzIHBhZ2luYXRpb24gd2lsbCBiZSBkaXNhYmxlZDsgQHB4cmVm e1NjcmVlbiBTaXplfS4KQEAgLTE2LDEwICsxNywxMSBAQCBkaWZmIC1kdXAgLXJ1TnAgZ2RiLTcu OC1vcmlnL2dkYi9kb2MvcHl0aG9uLnRleGkgZ2RiLTcuOC9nZGIvZG9jL3B5dGhvbi50ZXhpCiAg QGVuZCBkZWZ1bgogIAogIEBmaW5kZXggZ2RiLmJyZWFrcG9pbnRzCi1kaWZmIC1kdXAgLXJ1TnAg Z2RiLTcuOC1vcmlnL2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmggZ2RiLTcuOC9nZGIvcHl0 aG9uL3B5dGhvbi1pbnRlcm5hbC5oCi0tLS0gZ2RiLTcuOC1vcmlnL2dkYi9weXRob24vcHl0aG9u LWludGVybmFsLmgJMjAxNC0wOC0xMyAyMjowNDoxNC44MzU0NDE5NzcgKzAyMDAKLSsrKyBnZGIt Ny44L2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgJMjAxNC0wOC0xMyAyMjowNzoyMC44OTU2 NDM4NjcgKzAyMDAKLUBAIC0xNDMsNiArMTQzLDggQEAgdHlwZWRlZiBpbnQgUHlfc3NpemVfdDsK K0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmgK Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL3B5dGhvbi9weXRo b24taW50ZXJuYWwuaAkyMDE1LTA1LTMxIDE3OjU3OjEyLjQzMjU5Mzk4OSArMDIwMAorKysrIGdk Yi03LjkuNTAuMjAxNTA1MjAvZ2RiL3B5dGhvbi9weXRob24taW50ZXJuYWwuaAkyMDE1LTA1LTMx IDE3OjU3OjE0LjY1NDYwNzcwOCArMDIwMAorQEAgLTE0Miw2ICsxNDIsOCBAQCB0eXBlZGVmIGlu dCBQeV9zc2l6ZV90OwogICNkZWZpbmUgUHlHSUxTdGF0ZV9SZWxlYXNlKEFSRykgKCh2b2lkKShB UkcpKQogICNkZWZpbmUgUHlFdmFsX0luaXRUaHJlYWRzKCkKICAjZGVmaW5lIFB5VGhyZWFkU3Rh dGVfU3dhcChBUkcpICgodm9pZCkoQVJHKSkKQEAgLTI4LDE4ICszMCwxOCBAQCBkaWZmIC1kdXAg LXJ1TnAgZ2RiLTcuOC1vcmlnL2dkYi9weXRob24vcHl0aG9uLWludGVybmFsLmggZ2RiLTcuOC9n ZGIvcHl0aG9uL3B5dAogICNkZWZpbmUgUHlFdmFsX1JlbGVhc2VMb2NrKCkKICAjZW5kaWYKICAK LWRpZmYgLWR1cCAtcnVOcCBnZGItNy44LW9yaWcvZ2RiL3B5dGhvbi9weXRob24uYyBnZGItNy44 L2dkYi9weXRob24vcHl0aG9uLmMKLS0tLSBnZGItNy44LW9yaWcvZ2RiL3B5dGhvbi9weXRob24u YwkyMDE0LTA4LTEzIDIyOjA0OjE0LjE2NDQ0MTI3MyArMDIwMAotKysrIGdkYi03LjgvZ2RiL3B5 dGhvbi9weXRob24uYwkyMDE0LTA4LTEzIDIyOjA3OjIwLjg5NTY0Mzg2NyArMDIwMAotQEAgLTYy MCwxNCArNjIwLDE5IEBAIGV4ZWN1dGVfZ2RiX2NvbW1hbmQgKFB5T2JqZWN0ICpzZWxmLCBQeU8K K0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9weXRob24vcHl0aG9uLmMKKz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL3B5dGhvbi9weXRob24uYwkyMDE1 LTA1LTMxIDE3OjU3OjE0LjY1NjYwNzcyMCArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAv Z2RiL3B5dGhvbi9weXRob24uYwkyMDE1LTA1LTMxIDE4OjAyOjA4Ljg5MTQyNDIyNyArMDIwMAor QEAgLTYyNywxMyArNjI3LDE4IEBAIGV4ZWN1dGVfZ2RiX2NvbW1hbmQgKFB5T2JqZWN0ICpzZWxm LCBQeU8KICB7CiAgICBjb25zdCBjaGFyICphcmc7CiAgICBQeU9iamVjdCAqZnJvbV90dHlfb2Jq ID0gTlVMTCwgKnRvX3N0cmluZ19vYmogPSBOVUxMOwogLSAgaW50IGZyb21fdHR5LCB0b19zdHJp bmc7CistICBzdGF0aWMgY2hhciAqa2V5d29yZHNbXSA9IHsiY29tbWFuZCIsICJmcm9tX3R0eSIs ICJ0b19zdHJpbmciLCBOVUxMIH07CiArICBQeU9iamVjdCAqcmVsZWFzZV9naWxfb2JqID0gTlVM TDsKICsgIGludCBmcm9tX3R0eSwgdG9fc3RyaW5nLCByZWxlYXNlX2dpbDsKLSAgIHZvbGF0aWxl IHN0cnVjdCBnZGJfZXhjZXB0aW9uIGV4Y2VwdDsKLS0gIHN0YXRpYyBjaGFyICprZXl3b3Jkc1td ID0geyJjb21tYW5kIiwgImZyb21fdHR5IiwgInRvX3N0cmluZyIsIE5VTEwgfTsKICsgIHN0YXRp YyBjaGFyICprZXl3b3Jkc1tdID0geyJjb21tYW5kIiwgImZyb21fdHR5IiwgInRvX3N0cmluZyIs CiArCQkJICAgICAicmVsZWFzZV9naWwiLCBOVUxMIH07CiAgICBjaGFyICpyZXN1bHQgPSBOVUxM OwpAQCAtNTUsNyArNTcsNyBAQCBkaWZmIC1kdXAgLXJ1TnAgZ2RiLTcuOC1vcmlnL2dkYi9weXRo b24vcHl0aG9uLmMgZ2RiLTcuOC9nZGIvcHl0aG9uL3B5dGhvbi5jCiAgICAgIHJldHVybiBOVUxM OwogIAogICAgZnJvbV90dHkgPSAwOwotQEAgLTY0OCwxMiArNjUyLDI4IEBAIGV4ZWN1dGVfZ2Ri X2NvbW1hbmQgKFB5T2JqZWN0ICpzZWxmLCBQeU8KK0BAIC02NTQsMTIgKzY1OSwyOCBAQCBleGVj dXRlX2dkYl9jb21tYW5kIChQeU9iamVjdCAqc2VsZiwgUHlPCiAgICAgICAgdG9fc3RyaW5nID0g Y21wOwogICAgICB9CiAgCkBAIC02OCw3ICs3MCw3IEBAIGRpZmYgLWR1cCAtcnVOcCBnZGItNy44 LW9yaWcvZ2RiL3B5dGhvbi9weXRob24uYyBnZGItNy44L2dkYi9weXRob24vcHl0aG9uLmMKICsg ICAgICByZWxlYXNlX2dpbCA9IGNtcDsKICsgICAgfQogKwotICAgVFJZX0NBVENIIChleGNlcHQs IFJFVFVSTl9NQVNLX0FMTCkKKyAgIFRSWQogICAgICB7CiAgICAgICAgLyogQ29weSB0aGUgYXJn dW1lbnQgdGV4dCBpbiBjYXNlIHRoZSBjb21tYW5kIG1vZGlmaWVzIGl0LiAgKi8KICAgICAgICBj aGFyICpjb3B5ID0geHN0cmR1cCAoYXJnKTsKQEAgLTg0LDcgKzg2LDcgQEAgZGlmZiAtZHVwIC1y dU5wIGdkYi03Ljgtb3JpZy9nZGIvcHl0aG9uL3B5dGhvbi5jIGdkYi03LjgvZ2RiL3B5dGhvbi9w eXRob24uYwogICAgICAgIG1ha2VfY2xlYW51cF9yZXN0b3JlX2ludGVnZXIgKCZpbnRlcnByZXRl cl9hc3luYyk7CiAgICAgICAgaW50ZXJwcmV0ZXJfYXN5bmMgPSAwOwogIAotQEAgLTY2Niw5ICs2 ODYsMjEgQEAgZXhlY3V0ZV9nZGJfY29tbWFuZCAoUHlPYmplY3QgKnNlbGYsIFB5TworQEAgLTY3 MiwxMSArNjkzLDIzIEBAIGV4ZWN1dGVfZ2RiX2NvbW1hbmQgKFB5T2JqZWN0ICpzZWxmLCBQeU8K ICAJICBleGVjdXRlX2NvbW1hbmQgKGNvcHksIGZyb21fdHR5KTsKICAJfQogIApAQCAtOTQsMjIg Kzk2LDI1IEBAIGRpZmYgLWR1cCAtcnVOcCBnZGItNy44LW9yaWcvZ2RiL3B5dGhvbi9weXRob24u YyBnZGItNy44L2dkYi9weXRob24vcHl0aG9uLmMKICsKICAgICAgICBkb19jbGVhbnVwcyAoY2xl YW51cCk7CiAgICAgIH0KLS0gIEdEQl9QWV9IQU5ETEVfRVhDRVBUSU9OIChleGNlcHQpOwotKyAg aWYgKGV4Y2VwdC5yZWFzb24gPCAwKQotKyAgICB7Ci0rICAgICAgLyogUmVhY3F1aXJlIHRoZSBH SUwgaWYgaXQgd2FzIHJlbGVhc2VkIGVhcmxpZXIuICAqLwotKyAgICAgIGlmIChyZWxlYXNlX2dp bCkKLSsJUHlFdmFsX1Jlc3RvcmVUaHJlYWQgKHN0YXRlKTsKLSsKLSsgICAgICBnZGJweV9jb252 ZXJ0X2V4Y2VwdGlvbiAoZXhjZXB0KTsKLSsgICAgICByZXR1cm4gTlVMTDsKLSsgICAgfQorICAg Q0FUQ0ggKGV4Y2VwdCwgUkVUVVJOX01BU0tfQUxMKQorICAgICB7CistICAgICAgR0RCX1BZX0hB TkRMRV9FWENFUFRJT04gKGV4Y2VwdCk7CisrICAgICAgaWYgKGV4Y2VwdC5yZWFzb24gPCAwKQor Kwl7CisrCSAgLyogUmVhY3F1aXJlIHRoZSBHSUwgaWYgaXQgd2FzIHJlbGVhc2VkIGVhcmxpZXIu ICAqLworKwkgIGlmIChyZWxlYXNlX2dpbCkKKysJICAgIFB5RXZhbF9SZXN0b3JlVGhyZWFkIChz dGF0ZSk7CisrCisrCSAgZ2RicHlfY29udmVydF9leGNlcHRpb24gKGV4Y2VwdCk7CisrCSAgcmV0 dXJuIE5VTEw7CisrCX0KKyAgICAgfQorICAgRU5EX0NBVENICiAgCi0gICAvKiBEbyBhbnkgY29t bWFuZHMgYXR0YWNoZWQgdG8gYnJlYWtwb2ludCB3ZSBzdG9wcGVkIGF0LiAgKi8KLSAgIGJwc3Rh dF9kb19hY3Rpb25zICgpOwotZGlmZiAtZHVwIC1ydU5wIGdkYi03Ljgtb3JpZy9nZGIvdGVzdHN1 aXRlL2dkYi5weXRob24vcHktZ2lsLW10aHJlYWQuYyBnZGItNy44L2dkYi90ZXN0c3VpdGUvZ2Ri LnB5dGhvbi9weS1naWwtbXRocmVhZC5jCi0tLS0gZ2RiLTcuOC1vcmlnL2dkYi90ZXN0c3VpdGUv Z2RiLnB5dGhvbi9weS1naWwtbXRocmVhZC5jCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAw ICswMTAwCi0rKysgZ2RiLTcuOC9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZ2lsLW10aHJl YWQuYwkyMDE0LTA4LTEzIDIyOjMzOjA1LjA1MjY0ODkxMiArMDIwMAorSW5kZXg6IGdkYi03Ljku NTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWdpbC1tdGhyZWFkLmMKKz09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAw MDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1n aWwtbXRocmVhZC5jCTIwMTUtMDUtMzEgMTc6NTc6MTQuNjU2NjA3NzIwICswMjAwCiBAQCAtMCww ICsxLDEyIEBACiArI2luY2x1ZGUgPHN0ZGlvLmg+CiArCkBAIC0xMjMsOSArMTI4LDEwIEBAIGRp ZmYgLWR1cCAtcnVOcCBnZGItNy44LW9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWdp bC1tdGhyZWFkLmMgZ2RiLTcuOC9nCiArICAgICAgcHJpbnRmICgiU2xlZXBpbmcgJWRcbiIsIGkp OwogKyAgICB9CiArfQotZGlmZiAtZHVwIC1ydU5wIGdkYi03Ljgtb3JpZy9nZGIvdGVzdHN1aXRl L2dkYi5weXRob24vcHktZ2lsLW10aHJlYWQuZXhwIGdkYi03LjgvZ2RiL3Rlc3RzdWl0ZS9nZGIu cHl0aG9uL3B5LWdpbC1tdGhyZWFkLmV4cAotLS0tIGdkYi03Ljgtb3JpZy9nZGIvdGVzdHN1aXRl L2dkYi5weXRob24vcHktZ2lsLW10aHJlYWQuZXhwCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAw MDAwICswMTAwCi0rKysgZ2RiLTcuOC9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZ2lsLW10 aHJlYWQuZXhwCTIwMTQtMDgtMTMgMjI6MzM6MDAuNjYwNjQxMzAwICswMjAwCitJbmRleDogZ2Ri LTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZ2lsLW10aHJlYWQu ZXhwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CistLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAw MDAwICswMDAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5weXRo b24vcHktZ2lsLW10aHJlYWQuZXhwCTIwMTUtMDUtMzEgMTc6NTc6MTQuNjU3NjA3NzI2ICswMjAw CiBAQCAtMCwwICsxLDY5IEBACiArIyBDb3B5cmlnaHQgKEMpIDIwMTQgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xOTYsOSArMjAyLDEwIEBAIGRpZmYgLWR1cCAtcnVOcCBn ZGItNy44LW9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWdpbC1tdGhyZWFkLmV4cCBn ZGItNy44CiArCX0KICsgICAgfQogK30KLWRpZmYgLWR1cCAtcnVOcCBnZGItNy44LW9yaWcvZ2Ri L3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LWdpbC1tdGhyZWFkLnB5IGdkYi03LjgvZ2RiL3Rlc3Rz dWl0ZS9nZGIucHl0aG9uL3B5LWdpbC1tdGhyZWFkLnB5Ci0tLS0gZ2RiLTcuOC1vcmlnL2dkYi90 ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1naWwtbXRocmVhZC5weQkxOTcwLTAxLTAxIDAxOjAwOjAw LjAwMDAwMDAwMCArMDEwMAotKysrIGdkYi03LjgvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5 LWdpbC1tdGhyZWFkLnB5CTIwMTQtMDgtMTMgMjI6MzM6MDguOTk2NjU0MzIwICswMjAwCitJbmRl eDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktZ2lsLW10 aHJlYWQucHkKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKy0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4w MDAwMDAwMDAgKzAwMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2Ri LnB5dGhvbi9weS1naWwtbXRocmVhZC5weQkyMDE1LTA1LTMxIDE3OjU3OjE0LjY1NzYwNzcyNiAr MDIwMAogQEAgLTAsMCArMSwyMiBAQAogK2ltcG9ydCB0aHJlYWQKICtpbXBvcnQgdGltZQoKZGlm ZiAtLWdpdCBhL2dkYi1weXRob24zLXB5X2hhc2hfdC0zMmJpdC5wYXRjaCBiL2dkYi1weXRob24z LXB5X2hhc2hfdC0zMmJpdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWQz YTZmNi4uMDAwMDAwMAotLS0gYS9nZGItcHl0aG9uMy1weV9oYXNoX3QtMzJiaXQucGF0Y2gKKysr IC9kZXYvbnVsbApAQCAtMSwxNzUgKzAsMCBAQAotaHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dk Yi1wYXRjaGVzLzIwMTUtMDIvbXNnMDAwOTEuaHRtbAotU3ViamVjdDogW3BhdGNoXSBGaXggUHl0 aG9uIDMgYnVpbGQgZXJyb3Igb24gMzItYml0IGhvc3RzCi0KLQotLS1aUHQ0cng4RkZqTENHN2Rk Ci1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTIwMjItanAKLUNvbnRlbnQt RGlzcG9zaXRpb246IGlubGluZQotCi1IaSwKLQotb24gRmVkb3JhIFJhd2hpZGUgKD09MjIpIGk2 ODYgdXNpbmcgLS13aXRoLXB5dGhvbj0vdXNyL2Jpbi9weXRob24zIG9uZSBnZXRzOgotCi1nY2Mg LWcgICAtSS4gLUkuIC1JLi9jb21tb24gLUkuL2NvbmZpZyAtRExPQ0FMRURJUj0iXCIvdXNyL2xv Y2FsL3NoYXJlL2xvY2FsZVwiIiAtREhBVkVfQ09ORklHX0ggLUkuLy4uL2luY2x1ZGUvb3Bjb2Rl IC1JLi8uLi9vcGNvZGVzLy4uIC1JLi8uLi9yZWFkbGluZS8uLiAtSS4uL2JmZCAtSS4vLi4vYmZk IC1JLi8uLi9pbmNsdWRlIC1JLi4vbGliZGVjbnVtYmVyIC1JLi8uLi9saWJkZWNudW1iZXIgIC1J Li9nbnVsaWIvaW1wb3J0IC1JYnVpbGQtZ251bGliL2ltcG9ydCAgIC1EVFVJPTEgICAtcHRocmVh ZCAtSS91c3IvaW5jbHVkZS9ndWlsZS8yLjAgIC1JL3Vzci9pbmNsdWRlL3B5dGhvbjMuNG0gLUkv dXNyL2luY2x1ZGUvcHl0aG9uMy40bSAtV2FsbCAtV2RlY2xhcmF0aW9uLWFmdGVyLXN0YXRlbWVu dCAtV3BvaW50ZXItYXJpdGggLVdwb2ludGVyLXNpZ24gLVduby11bnVzZWQgLVd1bnVzZWQtdmFs dWUgLVd1bnVzZWQtZnVuY3Rpb24gLVduby1zd2l0Y2ggLVduby1jaGFyLXN1YnNjcmlwdHMgLVdt aXNzaW5nLXByb3RvdHlwZXMgLVdkZWNsYXJhdGlvbi1hZnRlci1zdGF0ZW1lbnQgLVdlbXB0eS1i b2R5IC1XbWlzc2luZy1wYXJhbWV0ZXItdHlwZSAtV29sZC1zdHlsZS1kZWNsYXJhdGlvbiAtV29s ZC1zdHlsZS1kZWZpbml0aW9uIC1XZm9ybWF0LW5vbmxpdGVyYWwgLVdlcnJvciAtYyAtbyBweS12 YWx1ZS5vIC1NVCBweS12YWx1ZS5vIC1NTUQgLU1QIC1NRiAuZGVwcy9weS12YWx1ZS5UcG8gLWZu by1zdHJpY3QtYWxpYXNpbmcgLUROREVCVUcgLWZ3cmFwdiAuL3B5dGhvbi9weS12YWx1ZS5jCi0u L3B5dGhvbi9weS12YWx1ZS5jOjE2OTY6MzogZXJyb3I6IGluaXRpYWxpemF0aW9uIGZyb20gaW5j b21wYXRpYmxlIHBvaW50ZXIgdHlwZSBbLVdlcnJvcl0KLSAgIHZhbHB5X2hhc2gsICAgICAgICAg ICAgLyp0cF9oYXNoKi8KLSAgIF4KLS4vcHl0aG9uL3B5LXZhbHVlLmM6MTY5NjozOiBlcnJvcjog KG5lYXIgaW5pdGlhbGl6YXRpb24gZm9yIBskQiFGGyhCdmFsdWVfb2JqZWN0X3R5cGUudHBfaGFz aBskQiFHGyhCKSBbLVdlcnJvcl0KLWNjMTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMg ZXJyb3JzCi1NYWtlZmlsZToyNjI4OiByZWNpcGUgZm9yIHRhcmdldCAncHktdmFsdWUubycgZmFp bGVkCi0KLVRoaXMgaXMgYmVjYXVzZSBpbiBQeXRob24gMiB0cF9oYXNoIHdhczoKLQl0eXBlZGVm IGxvbmcgKCpoYXNoZnVuYykoUHlPYmplY3QgKik7Ci13aGlsZSBpbiBQeXRob24gMyB0cF9oYXNo IGlzOgotCXR5cGVkZWYgUHlfaGFzaF90ICgqaGFzaGZ1bmMpKFB5T2JqZWN0ICopOwotCi1QeV9o YXNoX3QgaXMgaW50IGZvciAzMi1iaXQgaG9zdHMgYW5kIGxvbmcgZm9yIDY0LWJpdCBob3N0cy4g IFdoaWxlIG9uIDMyLWJpdAotaG9zdHMgc2l6ZW9mKGxvbmcpPT1zaXplb2YoaW50KSBzdGlsbCB0 aGUgaGFzaGZ1bmMgdHlwZSBpcyBmb3JtYWxseQotaW5jb21wYXRpYmxlLiAgQXMgdGhpcyBwYXRj aCBzaG91bGQgaGF2ZSBubyBjb21waWxlZCBjb2RlIGNoYW5nZSBpdCBpcyBub3QKLXJlYWxseSBu ZWNlc3NhcnkgZm9yIGdkYi03LjksIGl0IHdvdWxkIGZpeCB0aGVyZSBqdXN0IHRoaXMgbm9uLWZh dGFsCi1jb21waWxhdGlvbiB3YXJuaW5nOgotCS4vcHl0aG9uL3B5LXZhbHVlLmM6MTY5NjozOiB3 YXJuaW5nOiBpbml0aWFsaXphdGlvbiBmcm9tIGluY29tcGF0aWJsZSBwb2ludGVyIHR5cGUKLQkg ICB2YWxweV9oYXNoLCAgICAgICAgICAgIC8qdHBfaGFzaCovCi0JICAgXgotCS4vcHl0aG9uL3B5 LXZhbHVlLmM6MTY5NjozOiB3YXJuaW5nOiAobmVhciBpbml0aWFsaXphdGlvbiBmb3IgGyRCIUYb KEJ2YWx1ZV9vYmplY3RfdHlwZS50cF9oYXNoGyRCIUcbKEIpCi0KLUEgcXVlc3Rpb24gaXMgd2hl dGhlciB0aGUgYXV0b2NvbmYgdGVzdCBpc24ndCBhbiBvdmVya2lsbC4gIE9uZSBjb3VsZCB1c2UK LWluc3RlYWQganVzdDoKLQkjaWYgUFlUSE9OX0FCSV9WRVJTSU9OID49IDMKLUFsc28gb25lIGNv dWxkIHVzZSB0aGF0ICNpZiBlaXRoZXIganVzdCBhdCB0aGUgdmFscHlfaGFzaCgpIGRlZmluaXRp b24gb3Igb25lCi1jb3VsZCBwcm92aWRlIFB5X2hhc2hfdCBpbiBnZGIvZGVmcy5oIG9yIG9uZSBj b3VsZCBwcm92aWRlIHNvbWUgR0RCX1B5X2hhc2hfdAotaW4gZ2RiL2RlZnMuaC4KLQotVGVzdGVk IGNvbXBpbGF0aW9uIHdpdGg6Ci0JcHl0aG9uLWRldmVsLTIuNy45LTQuZmMyMi54ODZfNjQKLQlw eXRob24tZGV2ZWwtMi43LjktNC5mYzIyLmk2ODYKLQlweXRob24zLWRldmVsLTMuNC4yLTQuZmMy Mi54ODZfNjQKLQlweXRob24zLWRldmVsLTMuNC4yLTQuZmMyMi5pNjg2Ci0KLQotSmFuCi0KLS0t WlB0NHJ4OEZGakxDRzdkZAotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFz Y2lpCi1Db250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmU7IGZpbGVuYW1lPTEKLQotZ2RiLwotMjAx NS0wMi0wNCAgSmFuIEtyYXRvY2h2aWwgIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgotCi0J KiBjb25maWd1cmUuYWMgPCIke2hhdmVfbGlicHl0aG9ufSIgIT0gbm8+OiBEZWZpbmUgUHlfaGFz aF90LgotCSogcHl0aG9uL3B5LXZhbHVlLmMgKHZhbHB5X2ZldGNoX2xhenkpOiBVc2UgaXQuICBS ZW1vdmUgY2FzdCB0byB0aGUKLQlyZXR1cm4gdHlwZS4KLQkqIGNvbmZpZy5pbjogUmVnZW5lcmF0 ZS4KLQkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KLQotZGlmZiAtLWdpdCBhL2dkYi9jb25maWcu aW4gYi9nZGIvY29uZmlnLmluCi1pbmRleCA4MDZjYmFjLi40NGFjZmFjIDEwMDY0NAotLS0tIGEv Z2RiL2NvbmZpZy5pbgotKysrIGIvZ2RiL2NvbmZpZy5pbgotQEAgLTYxNyw2ICs2MTcsOSBAQAot IC8qIERlZmluZSBpZiB0aGUgcHl0aG9uIGRpcmVjdG9yeSBzaG91bGQgYmUgcmVsb2NhdGVkIHdo ZW4gR0RCIGlzIG1vdmVkLiAqLwotICN1bmRlZiBQWVRIT05fUEFUSF9SRUxPQ0FUQUJMRQotIAot Ky8qIFByb3ZpZGUgUHl0aG9uIDMgUHlfaGFzaF90IGZvciBQeXRob24gMi4gKi8KLSsjdW5kZWYg UHlfaGFzaF90Ci0rCi0gLyogUmVsb2NhdGVkIGRpcmVjdG9yeSBmb3Igc291cmNlIGZpbGVzLiAq LwotICN1bmRlZiBSRUxPQ19TUkNESVIKLSAKLWRpZmYgLS1naXQgYS9nZGIvY29uZmlndXJlIGIv Z2RiL2NvbmZpZ3VyZQotaW5kZXggOTYzMmY5YS4uNjVmNWIyYyAxMDA3NTUKLS0tLSBhL2dkYi9j b25maWd1cmUKLSsrKyBiL2dkYi9jb25maWd1cmUKLUBAIC04NzQ5LDYgKzg3NDksNDUgQEAgcm0g LWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLSAgIHsgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAke3B5dGhvbl9oYXNfdGhyZWFkc30iID4mNQot ICRhc19lY2hvICIke3B5dGhvbl9oYXNfdGhyZWFkc30iID4mNjsgfQotICAgQ1BQRkxBR1M9IiR7 c2F2ZWRfQ1BQRkxBR1N9IgotKwotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiBjaGVja2luZyBmb3IgUHlfaGFzaF90IiA+JjUKLSskYXNfZWNob19uICJjaGVja2lu ZyBmb3IgUHlfaGFzaF90Li4uICIgPiY2OyB9Ci0raWYgdGVzdCAiJHtnZGJfY3ZfUHlfaGFzaF90 K3NldH0iID0gc2V0OyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxz ZQotKyAgb2xkX0NGTEFHUz0iJENGTEFHUyIKLSsgICAgQ0ZMQUdTPSIkQ0ZMQUdTICRQWVRIT05f Q0ZMQUdTIgotKyAgICBvbGRfQ1BQRkxBR1M9IiRDUFBGTEFHUyIKLSsgICAgQ1BQRkxBR1M9IiRD UFBGTEFHUyAkUFlUSE9OX0NQUEZMQUdTIgotKyAgICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9G ID5jb25mdGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxQ eXRob24uaD4KLStpbnQKLSttYWluICgpCi0rewotK1B5X2hhc2hfdCB2YXI7Ci0rICA7Ci0rICBy ZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0raWYgYWNfZm5fY190cnlfY29tcGlsZSAiJExJTkVOTyI7 IHRoZW4gOgotKyAgZ2RiX2N2X1B5X2hhc2hfdD15ZXMKLStlbHNlCi0rICBnZGJfY3ZfUHlfaGFz aF90PW5vCi0rCi0rZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2Jq ZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsgICAgQ1BQRkxBR1M9IiRvbGRfQ1BQRkxBR1MiCi0rICAg IENGTEFHUz0iJG9sZF9DRkxBR1MiCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IHJlc3VsdDogJGdkYl9jdl9QeV9oYXNoX3QiID4mNQotKyRhc19lY2hv ICIkZ2RiX2N2X1B5X2hhc2hfdCIgPiY2OyB9Ci0rICBpZiB0ZXN0ICJ4JGdkYl9jdl9QeV9oYXNo X3QiID0gInhubyI7IHRoZW4KLSsKLSskYXNfZWNobyAiI2RlZmluZSBQeV9oYXNoX3QgbG9uZyIg Pj5jb25mZGVmcy5oCi0rCi0rICBmaQotIGVsc2UKLSAgICMgRXZlbiBpZiBQeXRob24gc3VwcG9y dCBpcyBub3QgY29tcGlsZWQgaW4sIHdlIG5lZWQgdG8gaGF2ZSB0aGlzIGZpbGUKLSAgICMgaW5j bHVkZWQgc28gdGhhdCB0aGUgInB5dGhvbiIgY29tbWFuZCwgZXQuYWwuLCBzdGlsbCBleGlzdHMu Ci1kaWZmIC0tZ2l0IGEvZ2RiL2NvbmZpZ3VyZS5hYyBiL2dkYi9jb25maWd1cmUuYWMKLWluZGV4 IGRmYzY5NDcuLmYzMzViN2IgMTAwNjQ0Ci0tLS0gYS9nZGIvY29uZmlndXJlLmFjCi0rKysgYi9n ZGIvY29uZmlndXJlLmFjCi1AQCAtMTAxNiw2ICsxMDE2LDI1IEBAIGlmIHRlc3QgIiR7aGF2ZV9s aWJweXRob259IiAhPSBubzsgdGhlbgotICAgXV0pLCBbcHl0aG9uX2hhc190aHJlYWRzPW5vXSwg W3B5dGhvbl9oYXNfdGhyZWFkcz15ZXNdKQotICAgQUNfTVNHX1JFU1VMVCgke3B5dGhvbl9oYXNf dGhyZWFkc30pCi0gICBDUFBGTEFHUz0iJHtzYXZlZF9DUFBGTEFHU30iCi0rCi0rICBBQ19DQUNI RV9DSEVDSyhbZm9yIFB5X2hhc2hfdF0sIGdkYl9jdl9QeV9oYXNoX3QsCi0rICAgIG9sZF9DRkxB R1M9IiRDRkxBR1MiCi0rICAgIENGTEFHUz0iJENGTEFHUyAkUFlUSE9OX0NGTEFHUyIKLSsgICAg b2xkX0NQUEZMQUdTPSIkQ1BQRkxBR1MiCi0rICAgIENQUEZMQUdTPSIkQ1BQRkxBR1MgJFBZVEhP Tl9DUFBGTEFHUyIKLSsgICAgQUNfVFJZX0NPTVBJTEUoCi0rICAgICAgWyNpbmNsdWRlIDxQeXRo b24uaD5dLAotKyAgICAgIFtQeV9oYXNoX3QgdmFyO10sCi0rICAgICAgZ2RiX2N2X1B5X2hhc2hf dD15ZXMsCi0rICAgICAgZ2RiX2N2X1B5X2hhc2hfdD1ubwotKyAgICApCi0rICAgIENQUEZMQUdT PSIkb2xkX0NQUEZMQUdTIgotKyAgICBDRkxBR1M9IiRvbGRfQ0ZMQUdTIgotKyAgKQotKyAgaWYg dGVzdCAieCRnZGJfY3ZfUHlfaGFzaF90IiA9ICJ4bm8iOyB0aGVuCi0rICAgIEFDX0RFRklORShQ eV9oYXNoX3QsIGxvbmcsCi0rCSAgICAgIFtQcm92aWRlIFB5dGhvbiAzIFB5X2hhc2hfdCBmb3Ig UHl0aG9uIDIuXSkKLSsgIGZpCi0gZWxzZQotICAgIyBFdmVuIGlmIFB5dGhvbiBzdXBwb3J0IGlz IG5vdCBjb21waWxlZCBpbiwgd2UgbmVlZCB0byBoYXZlIHRoaXMgZmlsZQotICAgIyBpbmNsdWRl ZCBzbyB0aGF0IHRoZSAicHl0aG9uIiBjb21tYW5kLCBldC5hbC4sIHN0aWxsIGV4aXN0cy4KLWRp ZmYgLS1naXQgYS9nZGIvcHl0aG9uL3B5LXZhbHVlLmMgYi9nZGIvcHl0aG9uL3B5LXZhbHVlLmMK LWluZGV4IDRjNGQzNmUuLjVhMTM3NzcgMTAwNjQ0Ci0tLS0gYS9nZGIvcHl0aG9uL3B5LXZhbHVl LmMKLSsrKyBiL2dkYi9weXRob24vcHktdmFsdWUuYwotQEAgLTg5NSwxMCArODk1LDEwIEBAIHZh bHB5X2ZldGNoX2xhenkgKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKLSAKLSAvKiBD YWxjdWxhdGUgYW5kIHJldHVybiB0aGUgYWRkcmVzcyBvZiB0aGUgUHlPYmplY3QgYXMgdGhlIHZh bHVlIG9mCi0gICAgdGhlIGJ1aWx0aW4gX19oYXNoX18gY2FsbC4gICovCi0tc3RhdGljIGxvbmcK LStzdGF0aWMgUHlfaGFzaF90Ci0gdmFscHlfaGFzaCAoUHlPYmplY3QgKnNlbGYpCi0gewotLSAg cmV0dXJuIChsb25nKSAoaW50cHRyX3QpIHNlbGY7Ci0rICByZXR1cm4gKGludHB0cl90KSBzZWxm OwotIH0KLSAKLSBlbnVtIHZhbHB5X29wY29kZQoKZGlmZiAtLWdpdCBhL2dkYi1weXRob24zLXRl c3RzdWl0ZS5wYXRjaCBiL2dkYi1weXRob24zLXRlc3RzdWl0ZS5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggOTk4MTc3Ny4uMDAwMDAwMAotLS0gYS9nZGItcHl0aG9uMy10ZXN0 c3VpdGUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi1odHRwOi8vc291cmNl d2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxNS0wMi9tc2cwMDM2MS5odG1sCi1TdWJqZWN0OiBQ UiBweXRob24vMTc5MjcgKFB5dGhvbiAzIHRlc3RzdWl0ZSBjb21wYXRhYmlsaXR5KQotCi1UaGlz IHBhdGNoIHVwZGF0ZXMgdGhlIFB5dGhvbiB0ZXN0c3VpdGUgdG8gbWFpbnRhaW4gUHl0aG9uIDMK LWNvbXBhdGliaWxpdHkuICBJJ2xsIGNoZWNrIGl0IGluIHVuZGVyIHRoZSBvYnZpb3VzIHRvbW9y cm93IChpZgotbm9ib2R5IG9iamVjdHMgb3RoZXJ3aXNlLikKLQotQ2hlZXJzCi0KLVBoaWwKLQot Ci0yMDE1LTAyLTE2ICBQaGlsIE11bGRvb24gIDxwbXVsZG9vbkByZWRoYXQuY29tPgotCi0gICAg UFIgcHl0aG9uLzE3OTI3Ci0gICAgKiBnZGIucHl0aG9uL3B5LW9iamZpbGUuZXhwOiBVc2UgcHJp bnQgKCkKLSAgICAqIGdkYi5weXRob24vcHktdHlwZS5leHA6IERpdHRvLgotICAgICogZ2RiLnB5 dGhvbi9weS1mcmFtZWZpbHRlci5weTogVXBkYXRlIHRvIHVzZSBtYXAgaW4KLSAgICBQeXRob24g My4KLQotLS0KLQotZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFt ZWZpbHRlci5weSBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1mcmFtZWZpbHRlci5weQot aW5kZXggMGRlMDI2Yy4uOGM2NWVkYyAxMDA2NDQKLS0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5 dGhvbi9weS1mcmFtZWZpbHRlci5weQotKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5 LWZyYW1lZmlsdGVyLnB5Ci1AQCAtMTQ1LDcgKzE0NSwxMCBAQCBjbGFzcyBFcnJvckZpbHRlcigp OgotICAgICAgICAgZ2RiLmZyYW1lX2ZpbHRlcnMgW3NlbGYubmFtZV0gPSBzZWxmCi0gCi0gICAg IGRlZiBmaWx0ZXIoc2VsZiwgZnJhbWVfaXRlcik6Ci0tICAgICAgICByZXR1cm4gaXRlcnRvb2xz LmltYXAoRXJyb3JJbk5hbWUsIGZyYW1lX2l0ZXIpCi0rICAgICAgICBpZiBoYXNhdHRyKGl0ZXJ0 b29scywgImltYXAiKToKLSsgICAgICAgICAgICByZXR1cm4gaXRlcnRvb2xzLmltYXAoRXJyb3JJ bk5hbWUsIGZyYW1lX2l0ZXIpCi0rICAgICAgICBlbHNlOgotKyAgICAgICAgICAgIHJldHVybiBt YXAoRXJyb3JJbk5hbWUsIGZyYW1lX2l0ZXIpCi0gCi0gRnJhbWVGaWx0ZXIoKQotIEZyYW1lRWxp ZGVyKCkKLWRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdHlwZS5leHAg Yi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdHlwZS5leHAKLWluZGV4IGM0YzhkOWYuLjZj NGU1ZjggMTAwNjQ0Ci0tLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktdHlwZS5leHAK LSsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS10eXBlLmV4cAotQEAgLTI0NywxMCAr MjQ3LDEwIEBAIHJlc3RhcnRfZ2RiICIke2JpbmZpbGV9IgotICMgU2tpcCBhbGwgdGVzdHMgaWYg UHl0aG9uIHNjcmlwdGluZyBpcyBub3QgZW5hYmxlZC4KLSBpZiB7IFtza2lwX3B5dGhvbl90ZXN0 c10gfSB7IGNvbnRpbnVlIH0KLSAKLS1nZGJfdGVzdCAicHl0aG9uIHByaW50IGdkYi5sb29rdXBf dHlwZSgnY2hhcicpLmFycmF5KDEsIDApIiBcCi0rZ2RiX3Rlc3QgInB5dGhvbiBwcmludCAoZ2Ri Lmxvb2t1cF90eXBlKCdjaGFyJykuYXJyYXkoMSwgMCkpIiBcCi0gICAgICJjaGFyIFxcXFswXFxc XSIKLSAKLS1nZGJfdGVzdCAicHl0aG9uIHByaW50IGdkYi5sb29rdXBfdHlwZSgnY2hhcicpLmFy cmF5KDEsIC0xKSIgXAotK2dkYl90ZXN0ICJweXRob24gcHJpbnQgKGdkYi5sb29rdXBfdHlwZSgn Y2hhcicpLmFycmF5KDEsIC0xKSkiIFwKLSAgICAgIkFycmF5IGxlbmd0aCBtdXN0IG5vdCBiZSBu ZWdhdGl2ZS4qIgotIAotIHdpdGhfdGVzdF9wcmVmaXggImxhbmdfYyIgewotCgpkaWZmIC0tZ2l0 IGEvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIwb2YyNS5wYXRjaCBiL2dkYi1yaGJ6Nzk1NDI0LWJp dHBvcy0yMG9mMjUucGF0Y2gKaW5kZXggNTIxOWE3YS4uMjFlYWVkOCAxMDA2NDQKLS0tIGEvZ2Ri LXJoYno3OTU0MjQtYml0cG9zLTIwb2YyNS5wYXRjaAorKysgYi9nZGItcmhiejc5NTQyNC1iaXRw b3MtMjBvZjI1LnBhdGNoCkBAIC00NjMsMTAgKzQ2MywxMCBAQCBDb250ZW50LVR5cGU6IHRleHQv eC1wYXRjaAogQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdAogQ29udGVudC1EaXNwb3Np dGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9Yml0cG9zLW1haW4ucGF0Y2gKIAotSW5kZXg6IGdk Yi03LjguOTAuMjAxNTAyMDIvZ2RiL2FkYS1sYW5nLmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUw NTIwL2dkYi9hZGEtbGFuZy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5v cmlnL2dkYi9hZGEtbGFuZy5jCTIwMTUtMDItMTEgMTY6MDE6NTEuMzY2OTI0NjI1ICswMTAwCi0r KysgZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvYWRhLWxhbmcuYwkyMDE1LTAyLTExIDE2OjAxOjU5 LjU4Njk2NjIyOSArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvYWRhLWxh bmcuYwkyMDE1LTA1LTMxIDE3OjA4OjQ2LjgwNzUwNjE1NyArMDIwMAorKysrIGdkYi03LjkuNTAu MjAxNTA1MjAvZ2RiL2FkYS1sYW5nLmMJMjAxNS0wNS0zMSAxNzoxMToyMi4xMjI0ODY0MDMgKzAy MDAKIEBAIC03NCw3ICs3NCw3IEBAIHN0YXRpYyBzdHJ1Y3QgdHlwZSAqZGVzY19ib3VuZHNfdHlw ZSAoc3QKICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICpkZXNjX2JvdW5kcyAoc3RydWN0IHZhbHVl ICopOwpAQCAtNTU3LDcgKzU1Nyw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9h ZGEtbGFuZy5jCiAgewogICAgaWYgKGFkZHJlc3MgPT0gMCkKICAgICAgcmV0dXJuIDA7Ci1AQCAt MTcxMiw3ICsxNzEzLDcgQEAgZGVzY19ib3VuZHMgKHN0cnVjdCB2YWx1ZSAqYXJyKQorQEAgLTE3 MTEsNyArMTcxMiw3IEBAIGRlc2NfYm91bmRzIChzdHJ1Y3QgdmFsdWUgKmFycikKICAvKiBJZiBU WVBFIGlzIHRoZSB0eXBlIG9mIGFuIGFycmF5LWRlc2NyaXB0b3IgKGZhdCBwb2ludGVyKSwgIHRo ZSBiaXQKICAgICBwb3NpdGlvbiBvZiB0aGUgZmllbGQgY29udGFpbmluZyB0aGUgYWRkcmVzcyBv ZiB0aGUgYm91bmRzIGRhdGEuICAqLwogIApAQCAtNTY2LDcgKzU2Niw3IEBAIEluZGV4OiBnZGIt Ny44LjkwLjIwMTUwMjAyL2dkYi9hZGEtbGFuZy5jCiAgZmF0X3BudHJfYm91bmRzX2JpdHBvcyAo c3RydWN0IHR5cGUgKnR5cGUpCiAgewogICAgcmV0dXJuIFRZUEVfRklFTERfQklUUE9TIChkZXNj X2Jhc2VfdHlwZSAodHlwZSksIDEpOwotQEAgLTE3NzgsNyArMTc3OSw3IEBAIGRlc2NfZGF0YSAo c3RydWN0IHZhbHVlICphcnIpCitAQCAtMTc3Nyw3ICsxNzc4LDcgQEAgZGVzY19kYXRhIChzdHJ1 Y3QgdmFsdWUgKmFycikKICAvKiBJZiBUWVBFIGlzIHRoZSB0eXBlIG9mIGFuIGFycmF5LWRlc2Ny aXB0b3IgKGZhdCBwb2ludGVyKSwgdGhlIGJpdAogICAgIHBvc2l0aW9uIG9mIHRoZSBmaWVsZCBj b250YWluaW5nIHRoZSBhZGRyZXNzIG9mIHRoZSBkYXRhLiAgKi8KICAKQEAgLTU3NSw3ICs1NzUs NyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvYWRhLWxhbmcuYwogIGZhdF9wbnRy X2RhdGFfYml0cG9zIChzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CiAgICByZXR1cm4gVFlQRV9GSUVM RF9CSVRQT1MgKGRlc2NfYmFzZV90eXBlICh0eXBlKSwgMCk7Ci1AQCAtMTgxMyw3ICsxODE0LDcg QEAgZGVzY19vbmVfYm91bmQgKHN0cnVjdCB2YWx1ZSAqYm91bmRzLCBpbgorQEAgLTE4MTIsNyAr MTgxMyw3IEBAIGRlc2Nfb25lX2JvdW5kIChzdHJ1Y3QgdmFsdWUgKmJvdW5kcywgaW4KICAgICBv ZiB0aGUgSXRoIGxvd2VyIGJvdW5kIHN0b3JlZCBpbiBpdCwgaWYgV0hJQ0ggaXMgMCwgYW5kIHRo ZSBJdGggdXBwZXIKICAgICBib3VuZCwgaWYgV0hJQ0ggaXMgMS4gIFRoZSBmaXJzdCBib3VuZCBp cyBJPTEuICAqLwogIApAQCAtNTg0LDcgKzU4NCw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUw MjAyL2dkYi9hZGEtbGFuZy5jCiAgZGVzY19ib3VuZF9iaXRwb3MgKHN0cnVjdCB0eXBlICp0eXBl LCBpbnQgaSwgaW50IHdoaWNoKQogIHsKICAgIHJldHVybiBUWVBFX0ZJRUxEX0JJVFBPUyAoZGVz Y19iYXNlX3R5cGUgKHR5cGUpLCAyICogaSArIHdoaWNoIC0gMik7Ci1AQCAtMjAwMyw3ICsyMDA0 LDcgQEAgYWRhX3R5cGVfb2ZfYXJyYXkgKHN0cnVjdCB2YWx1ZSAqYXJyLCBpbgorQEAgLTIwMDIs NyArMjAwMyw3IEBAIGFkYV90eXBlX29mX2FycmF5IChzdHJ1Y3QgdmFsdWUgKmFyciwgaW4KICAJ ICAgICAgICAgemVybywgYW5kIGRvZXMgbm90IG5lZWQgdG8gYmUgcmVjb21wdXRlZC4gICovCiAg CSAgICAgIGlmIChsbyA8IGhpKQogIAkJewpAQCAtNTkzLDcgKzU5Myw3IEBAIEluZGV4OiBnZGIt Ny44LjkwLjIwMTUwMjAyL2dkYi9hZGEtbGFuZy5jCiAgCQkgICAgICAgIChoaSAtIGxvICsgMSkg KiBUWVBFX0ZJRUxEX0JJVFNJWkUgKGVsdF90eXBlLCAwKTsKICAKICAJCSAgVFlQRV9MRU5HVEgg KGFycmF5X3R5cGUpID0gKGFycmF5X2JpdHNpemUgKyA3KSAvIDg7Ci1AQCAtMjE2Myw3ICsyMTY0 LDcgQEAgZGVjb2RlX3BhY2tlZF9hcnJheV9iaXRzaXplIChzdHJ1Y3QgdHlwZQorQEAgLTIxNjIs NyArMjE2Myw3IEBAIGRlY29kZV9wYWNrZWRfYXJyYXlfYml0c2l6ZSAoc3RydWN0IHR5cGUKICAg ICB0aGUgbGVuZ3RoIGlzIGFyYml0cmFyeS4gICovCiAgCiAgc3RhdGljIHN0cnVjdCB0eXBlICoK QEAgLTYwMiw3ICs2MDIsNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvYWRhLWxh bmcuYwogIHsKICAgIHN0cnVjdCB0eXBlICpuZXdfZWx0X3R5cGU7CiAgICBzdHJ1Y3QgdHlwZSAq bmV3X3R5cGU7Ci1AQCAtMjIxNyw3ICsyMjE4LDcgQEAgZGVjb2RlX2NvbnN0cmFpbmVkX3BhY2tl ZF9hcnJheV90eXBlIChzdAorQEAgLTIyMTYsNyArMjIxNyw3IEBAIGRlY29kZV9jb25zdHJhaW5l ZF9wYWNrZWRfYXJyYXlfdHlwZSAoc3QKICAgIGNoYXIgKm5hbWU7CiAgICBjb25zdCBjaGFyICp0 YWlsOwogICAgc3RydWN0IHR5cGUgKnNoYWRvd190eXBlOwpAQCAtNjExLDcgKzYxMSw3IEBAIElu ZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9hZGEtbGFuZy5jCiAgCiAgICBpZiAoIXJhd19u YW1lKQogICAgICByYXdfbmFtZSA9IGFkYV90eXBlX25hbWUgKGRlc2NfYmFzZV90eXBlICh0eXBl KSk7Ci1AQCAtMjI4OCw3ICsyMjg5LDggQEAgZGVjb2RlX2NvbnN0cmFpbmVkX3BhY2tlZF9hcnJh eSAoc3RydWN0CitAQCAtMjI4Nyw3ICsyMjg4LDggQEAgZGVjb2RlX2NvbnN0cmFpbmVkX3BhY2tl ZF9hcnJheSAoc3RydWN0CiAgIAkgYXJyYXkgd2l0aCBubyB3cmFwcGVyLiAgSW4gb3JkZXIgdG8g aW50ZXJwcmV0IHRoZSB2YWx1ZSB0aHJvdWdoCiAgIAkgdGhlIChsZWZ0LWp1c3RpZmllZCkgcGFj a2VkIGFycmF5IHR5cGUgd2UganVzdCBidWlsdCwgd2UgbXVzdAogICAJIGZpcnN0IGxlZnQtanVz dGlmeSBpdC4gICovCkBAIC02MjEsNyArNjIxLDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAy MDIvZ2RiL2FkYS1sYW5nLmMKICAgICAgICBVTE9OR0VTVCBtb2Q7CiAgCiAgICAgICAgbW9kID0g YWRhX21vZHVsdXMgKHZhbHVlX3R5cGUgKGFycikpIC0gMTsKLUBAIC0yMzg5LDE1ICsyMzkxLDE2 IEBAIGhhc19uZWdhdGl2ZXMgKHN0cnVjdCB0eXBlICp0eXBlKQorQEAgLTIzODgsMTUgKzIzOTAs MTYgQEAgaGFzX25lZ2F0aXZlcyAoc3RydWN0IHR5cGUgKnR5cGUpCiAgCiAgc3RydWN0IHZhbHVl ICoKICBhZGFfdmFsdWVfcHJpbWl0aXZlX3BhY2tlZF92YWwgKHN0cnVjdCB2YWx1ZSAqb2JqLCBj b25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTY0NCw3ICs2NDQsNyBAQCBJbmRleDogZ2RiLTcu OC45MC4yMDE1MDIwMi9nZGIvYWRhLWxhbmcuYwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYnl0ZSBvZiBzb3VyY2UgdGhhdCBhcmUgdW51c2VkICovCiAgICAgIGFjY3VtU2l6 ZTsgICAgICAgICAgICAgICAgICAvKiBOdW1iZXIgb2YgbWVhbmluZ2Z1bCBiaXRzIGluIGFjY3Vt ICovCiAgICB1bnNpZ25lZCBjaGFyICpieXRlczsgICAgICAgICAvKiBGaXJzdCBieXRlIGNvbnRh aW5pbmcgZGF0YSB0byB1bnBhY2sgKi8KLUBAIC0yNDMxLDcgKzI0MzQsNyBAQCBhZGFfdmFsdWVf cHJpbWl0aXZlX3BhY2tlZF92YWwgKHN0cnVjdCB2CitAQCAtMjQ0MSw3ICsyNDQ0LDcgQEAgYWRh X3ZhbHVlX3ByaW1pdGl2ZV9wYWNrZWRfdmFsIChzdHJ1Y3QgdgogIAogICAgaWYgKG9iaiAhPSBO VUxMKQogICAgICB7CkBAIC02NTMsNyArNjUzLDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAy MDIvZ2RiL2FkYS1sYW5nLmMKICAKICAgICAgICBzZXRfdmFsdWVfY29tcG9uZW50X2xvY2F0aW9u ICh2LCBvYmopOwogICAgICAgIHNldF92YWx1ZV9iaXRwb3MgKHYsIGJpdF9vZmZzZXQgKyB2YWx1 ZV9iaXRwb3MgKG9iaikpOwotQEAgLTI1NDcsNyArMjU1MCw3IEBAIGFkYV92YWx1ZV9wcmltaXRp dmVfcGFja2VkX3ZhbCAoc3RydWN0IHYKK0BAIC0yNTYyLDcgKzI1NjUsNyBAQCBhZGFfdmFsdWVf cHJpbWl0aXZlX3BhY2tlZF92YWwgKHN0cnVjdCB2CiAgICAgbm90IG92ZXJsYXAuICAqLwogIHN0 YXRpYyB2b2lkCiAgbW92ZV9iaXRzIChnZGJfYnl0ZSAqdGFyZ2V0LCBpbnQgdGFyZ19vZmZzZXQs IGNvbnN0IGdkYl9ieXRlICpzb3VyY2UsCkBAIC02NjIsNyArNjYyLDcgQEAgSW5kZXg6IGdkYi03 LjguOTAuMjAxNTAyMDIvZ2RiL2FkYS1sYW5nLmMKICB7CiAgICB1bnNpZ25lZCBpbnQgYWNjdW0s IG1hc2s7CiAgICBpbnQgYWNjdW1fYml0cywgY2h1bmtfc2l6ZTsKLUBAIC0yNjM3LDcgKzI2NDAs NyBAQCBhZGFfdmFsdWVfYXNzaWduIChzdHJ1Y3QgdmFsdWUgKnRvdmFsLCBzCitAQCAtMjY1Miw3 ICsyNjU1LDcgQEAgYWRhX3ZhbHVlX2Fzc2lnbiAoc3RydWN0IHZhbHVlICp0b3ZhbCwgcwogICAg ICB7CiAgICAgICAgaW50IGxlbiA9ICh2YWx1ZV9iaXRwb3MgKHRvdmFsKQogIAkJICsgYml0cyAr IEhPU1RfQ0hBUl9CSVQgLSAxKSAvIEhPU1RfQ0hBUl9CSVQ7CkBAIC02NzEsMTYgKzY3MSwxNiBA QCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvYWRhLWxhbmcuYwogICAgICAgIGdkYl9i eXRlICpidWZmZXIgPSBhbGxvY2EgKGxlbik7CiAgICAgICAgc3RydWN0IHZhbHVlICp2YWw7CiAg ICAgICAgQ09SRV9BRERSIHRvX2FkZHIgPSB2YWx1ZV9hZGRyZXNzICh0b3ZhbCk7Ci1AQCAtMjY4 Miw3ICsyNjg1LDcgQEAgdmFsdWVfYXNzaWduX3RvX2NvbXBvbmVudCAoc3RydWN0IHZhbHVlCitA QCAtMjcwMyw3ICsyNzA2LDcgQEAgdmFsdWVfYXNzaWduX3RvX2NvbXBvbmVudCAoc3RydWN0IHZh bHVlCiAgICAgIChMT05HRVNUKSAgKHZhbHVlX2FkZHJlc3MgKGNvbXBvbmVudCkgLSB2YWx1ZV9h ZGRyZXNzIChjb250YWluZXIpKTsKLSAgIGludCBiaXRfb2Zmc2V0X2luX2NvbnRhaW5lciA9IAor ICAgaW50IGJpdF9vZmZzZXRfaW5fY29udGFpbmVyID0KICAgICAgdmFsdWVfYml0cG9zIChjb21w b25lbnQpIC0gdmFsdWVfYml0cG9zIChjb250YWluZXIpOwogLSAgaW50IGJpdHM7CiArICBMT05H RVNUIGJpdHM7Ci0gICAKKyAKICAgIHZhbCA9IHZhbHVlX2Nhc3QgKHZhbHVlX3R5cGUgKGNvbXBv bmVudCksIHZhbCk7CiAgCi1AQCAtNDIxOSw3ICs0MjIyLDcgQEAgZW5zdXJlX2x2YWwgKHN0cnVj dCB2YWx1ZSAqdmFsKQorQEAgLTQyOTQsNyArNDI5Nyw3IEBAIGVuc3VyZV9sdmFsIChzdHJ1Y3Qg dmFsdWUgKnZhbCkKICAgIGlmIChWQUxVRV9MVkFMICh2YWwpID09IG5vdF9sdmFsCiAgICAgICAg fHwgVkFMVUVfTFZBTCAodmFsKSA9PSBsdmFsX2ludGVybmFsdmFyKQogICAgICB7CkBAIC02ODks NyArNjg5LDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2FkYS1sYW5nLmMKICAg ICAgICBjb25zdCBDT1JFX0FERFIgYWRkciA9CiAgICAgICAgICB2YWx1ZV9hc19sb25nICh2YWx1 ZV9hbGxvY2F0ZV9zcGFjZV9pbl9pbmZlcmlvciAobGVuKSk7CiAgCi1AQCAtNDI5Myw3ICs0Mjk2 LDcgQEAgc3RhdGljIENPUkVfQUREUgorQEAgLTQzNzgsNyArNDM4MSw3IEBAIHN0YXRpYyBDT1JF X0FERFIKICB2YWx1ZV9wb2ludGVyIChzdHJ1Y3QgdmFsdWUgKnZhbHVlLCBzdHJ1Y3QgdHlwZSAq dHlwZSkKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF90eXBlX2FyY2ggKHR5 cGUpOwpAQCAtNjk4LDcgKzY5OCw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9h ZGEtbGFuZy5jCiAgICBnZGJfYnl0ZSAqYnVmID0gYWxsb2NhIChsZW4pOwogICAgQ09SRV9BRERS IGFkZHI7CiAgCi1AQCAtNjQzNiw3ICs2NDM5LDcgQEAgdmFsdWVfdGFnX2Zyb21fY29udGVudHNf YW5kX2FkZHJlc3MgKHN0cgorQEAgLTY1MjEsNyArNjUyNCw3IEBAIHZhbHVlX3RhZ19mcm9tX2Nv bnRlbnRzX2FuZF9hZGRyZXNzIChzdHIKICAJCQkJICAgICBjb25zdCBnZGJfYnl0ZSAqdmFsYWRk ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09SRV9BRERSIGFkZHJl c3MpCiAgewpAQCAtNzA3LDcgKzcwNyw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dk Yi9hZGEtbGFuZy5jCiAgICBzdHJ1Y3QgdHlwZSAqdGFnX3R5cGU7CiAgCiAgICBpZiAoZmluZF9z dHJ1Y3RfZmllbGQgKCJfdGFnIiwgdHlwZSwgMCwgJnRhZ190eXBlLCAmdGFnX2J5dGVfb2Zmc2V0 LAotQEAgLTY5MDEsNyArNjkwNCw3IEBAIGFkYV9pbl92YXJpYW50IChMT05HRVNUIHZhbCwgc3Ry dWN0IHR5cGUKK0BAIC02OTkxLDcgKzY5OTQsNyBAQCBhZGFfaW5fdmFyaWFudCAoTE9OR0VTVCB2 YWwsIHN0cnVjdCB0eXBlCiAgICAgb25seSBpbiB0aGF0IGl0IGNhbiBoYW5kbGUgcGFja2VkIHZh bHVlcyBvZiBhcmJpdHJhcnkgdHlwZS4gICovCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCkBA IC03MTYsNyArNzE2LDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2FkYS1sYW5n LmMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGUpCiAg ewogICAgc3RydWN0IHR5cGUgKnR5cGU7Ci1AQCAtNjkxMyw3ICs2OTE2LDcgQEAgYWRhX3ZhbHVl X3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlCitAQCAtNzAwMyw3ICs3MDA2LDcgQEAgYWRh X3ZhbHVlX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlCiAgCiAgICBpZiAoVFlQRV9GSUVM RF9CSVRTSVpFIChhcmdfdHlwZSwgZmllbGRubykgIT0gMCkKICAgICAgewpAQCAtNzI1LDcgKzcy NSw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9hZGEtbGFuZy5jCiAgICAgICAg aW50IGJpdF9zaXplID0gVFlQRV9GSUVMRF9CSVRTSVpFIChhcmdfdHlwZSwgZmllbGRubyk7CiAg CiAgICAgICAgcmV0dXJuIGFkYV92YWx1ZV9wcmltaXRpdmVfcGFja2VkX3ZhbCAoYXJnMSwgdmFs dWVfY29udGVudHMgKGFyZzEpLAotQEAgLTY5NDAsOSArNjk0Myw5IEBAIGFkYV92YWx1ZV9wcmlt aXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1ZQorQEAgLTcwMzAsOSArNzAzMyw5IEBAIGFkYV92YWx1 ZV9wcmltaXRpdmVfZmllbGQgKHN0cnVjdCB2YWx1ZQogICAgIFJldHVybnMgMSBpZiBmb3VuZCwg MCBvdGhlcndpc2UuICAqLwogIAogIHN0YXRpYyBpbnQKQEAgLTczNyw3ICs3MzcsNyBAQCBJbmRl eDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvYWRhLWxhbmcuYwogIAkJICAgaW50ICppbmRleF9w KQogIHsKICAgIGludCBpOwotQEAgLTY5NjAsOCArNjk2Myw4IEBAIGZpbmRfc3RydWN0X2ZpZWxk IChjb25zdCBjaGFyICpuYW1lLCBzdHIKK0BAIC03MDUwLDggKzcwNTMsOCBAQCBmaW5kX3N0cnVj dF9maWVsZCAoY29uc3QgY2hhciAqbmFtZSwgc3RyCiAgCiAgICBmb3IgKGkgPSAwOyBpIDwgVFlQ RV9ORklFTERTICh0eXBlKTsgaSArPSAxKQogICAgICB7CkBAIC03NDgsNyArNzQ4LDcgQEAgSW5k ZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2FkYS1sYW5nLmMKICAgICAgICBjb25zdCBjaGFy ICp0X2ZpZWxkX25hbWUgPSBUWVBFX0ZJRUxEX05BTUUgKHR5cGUsIGkpOwogIAogICAgICAgIGlm ICh0X2ZpZWxkX25hbWUgPT0gTlVMTCkKLUBAIC03MDMxLDcgKzcwMzQsNyBAQCBudW1fdmlzaWJs ZV9maWVsZHMgKHN0cnVjdCB0eXBlICp0eXBlKQorQEAgLTcxMjEsNyArNzEyNCw3IEBAIG51bV92 aXNpYmxlX2ZpZWxkcyAoc3RydWN0IHR5cGUgKnR5cGUpCiAgICAgU2VhcmNoZXMgcmVjdXJzaXZl bHkgdGhyb3VnaCB3cmFwcGVyIGZpZWxkcyAoZS5nLiwgJ19wYXJlbnQnKS4gICovCiAgCiAgc3Rh dGljIHN0cnVjdCB2YWx1ZSAqCkBAIC03NTcsNyArNzU3LDcgQEAgSW5kZXg6IGdkYi03LjguOTAu MjAxNTAyMDIvZ2RiL2FkYS1sYW5nLmMKICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IHR5cGUgKnR5cGUpCiAgewogICAgaW50IGk7Ci1AQCAtNzA2NCw3ICs3MDY3LDcgQEAgYWRhX3Nl YXJjaF9zdHJ1Y3RfZmllbGQgKGNoYXIgKm5hbWUsIHN0cgorQEAgLTcxNTQsNyArNzE1Nyw3IEBA IGFkYV9zZWFyY2hfc3RydWN0X2ZpZWxkIChjaGFyICpuYW1lLCBzdHIKICAgICAgICAgICAgaW50 IGo7CiAgICAgICAgICAgIHN0cnVjdCB0eXBlICpmaWVsZF90eXBlID0gYWRhX2NoZWNrX3R5cGVk ZWYgKFRZUEVfRklFTERfVFlQRSAodHlwZSwKICAJCQkJCQkJCQlpKSk7CkBAIC03NjYsNyArNzY2 LDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2FkYS1sYW5nLmMKICAKICAgICAg ICAgICAgZm9yIChqID0gMDsgaiA8IFRZUEVfTkZJRUxEUyAoZmllbGRfdHlwZSk7IGogKz0gMSkK ICAgICAgICAgICAgICB7Ci1AQCAtNzA4Miw4ICs3MDg1LDggQEAgYWRhX3NlYXJjaF9zdHJ1Y3Rf ZmllbGQgKGNoYXIgKm5hbWUsIHN0cgorQEAgLTcxNzIsOCArNzE3NSw4IEBAIGFkYV9zZWFyY2hf c3RydWN0X2ZpZWxkIChjaGFyICpuYW1lLCBzdHIKICAgIHJldHVybiBOVUxMOwogIH0KICAKQEAg LTc3Nyw3ICs3NzcsNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvYWRhLWxhbmcu YwogIAogIAogIC8qIFJldHVybiBmaWVsZCAjSU5ERVggaW4gQVJHLCB3aGVyZSB0aGUgaW5kZXgg aXMgdGhhdCByZXR1cm5lZCBieQotQEAgLTcwOTIsNyArNzA5NSw3IEBAIHN0YXRpYyBzdHJ1Y3Qg dmFsdWUgKmFkYV9pbmRleF9zdHJ1Y3RfZmkKK0BAIC03MTgyLDcgKzcxODUsNyBAQCBzdGF0aWMg c3RydWN0IHZhbHVlICphZGFfaW5kZXhfc3RydWN0X2ZpCiAgICogSWYgZm91bmQsIHJldHVybiB2 YWx1ZSwgZWxzZSByZXR1cm4gTlVMTC4gICovCiAgCiAgc3RhdGljIHN0cnVjdCB2YWx1ZSAqCkBA IC03ODYsNyArNzg2LDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2FkYS1sYW5n LmMKICAJCQlzdHJ1Y3QgdHlwZSAqdHlwZSkKICB7CiAgICByZXR1cm4gYWRhX2luZGV4X3N0cnVj dF9maWVsZF8xICgmaW5kZXgsIGFyZywgb2Zmc2V0LCB0eXBlKTsKLUBAIC03MTA0LDcgKzcxMDcs NyBAQCBhZGFfaW5kZXhfc3RydWN0X2ZpZWxkIChpbnQgaW5kZXgsIHN0cnVjCitAQCAtNzE5NCw3 ICs3MTk3LDcgQEAgYWRhX2luZGV4X3N0cnVjdF9maWVsZCAoaW50IGluZGV4LCBzdHJ1YwogICAq ICpJTkRFWF9QLiAgKi8KICAKICBzdGF0aWMgc3RydWN0IHZhbHVlICoKQEAgLTc5NSw3ICs3OTUs NyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvYWRhLWxhbmcuYwogIAkJCSAgc3Ry dWN0IHR5cGUgKnR5cGUpCiAgewogICAgaW50IGk7Ci1AQCAtNzE5NCw3ICs3MTk3LDggQEAgYWRh X3ZhbHVlX3N0cnVjdF9lbHQgKHN0cnVjdCB2YWx1ZSAqYXJnLAorQEAgLTcyODQsNyArNzI4Nyw4 IEBAIGFkYV92YWx1ZV9zdHJ1Y3RfZWx0IChzdHJ1Y3QgdmFsdWUgKmFyZywKICAgICAgdiA9IGFk YV9zZWFyY2hfc3RydWN0X2ZpZWxkIChuYW1lLCBhcmcsIDAsIHQpOwogICAgZWxzZQogICAgICB7 CkBAIC04MDUsNyArODA1LDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2FkYS1s YW5nLmMKICAgICAgICBzdHJ1Y3QgdHlwZSAqZmllbGRfdHlwZTsKICAgICAgICBDT1JFX0FERFIg YWRkcmVzczsKICAKLUBAIC03NTExLDggKzc1MTUsOCBAQCBhZGFfY29lcmNlX3JlZiAoc3RydWN0 IHZhbHVlICp2YWwwKQorQEAgLTc2MDEsOCArNzYwNSw4IEBAIGFkYV9jb2VyY2VfcmVmIChzdHJ1 Y3QgdmFsdWUgKnZhbDApCiAgLyogUmV0dXJuIE9GRiByb3VuZGVkIHVwd2FyZCBpZiBuZWNlc3Nh cnkgdG8gYSBtdWx0aXBsZSBvZgogICAgIEFMSUdOTUVOVCAoYSBwb3dlciBvZiAyKS4gICovCiAg CkBAIC04MTYsNyArODE2LDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2FkYS1s YW5nLmMKICB7CiAgICByZXR1cm4gKG9mZiArIGFsaWdubWVudCAtIDEpICYgfihhbGlnbm1lbnQg LSAxKTsKICB9Ci1AQCAtNzg5NCwxMCArNzg5OCw5IEBAIGFkYV90ZW1wbGF0ZV90b19maXhlZF9y ZWNvcmRfdHlwZV8xIChzdHIKK0BAIC03OTk2LDEwICs4MDAwLDkgQEAgYWRhX3RlbXBsYXRlX3Rv X2ZpeGVkX3JlY29yZF90eXBlXzEgKHN0cgogICAgc3RydWN0IHZhbHVlICptYXJrID0gdmFsdWVf bWFyayAoKTsKICAgIHN0cnVjdCB2YWx1ZSAqZHZhbDsKICAgIHN0cnVjdCB0eXBlICpydHlwZTsK QEAgLTgyOSw3ICs4MjksNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvYWRhLWxh bmcuYwogICAgaW50IGY7CiAgCiAgICAvKiBDb21wdXRlIHRoZSBudW1iZXIgb2YgZmllbGRzIGlu IHRoaXMgcmVjb3JkIHR5cGUgdGhhdCBhcmUgZ29pbmcKLUBAIC03OTc1LDcgKzc5NzgsNyBAQCBh ZGFfdGVtcGxhdGVfdG9fZml4ZWRfcmVjb3JkX3R5cGVfMSAoc3RyCitAQCAtODA3Nyw3ICs4MDgw LDcgQEAgYWRhX3RlbXBsYXRlX3RvX2ZpeGVkX3JlY29yZF90eXBlXzEgKHN0cgogIAkgICAgIHRo YXQgZm9sbG93IHRoaXMgb25lLiAgKi8KICAJICBpZiAoYWRhX2lzX2FsaWduZXJfdHlwZSAoZmll bGRfdHlwZSkpCiAgCSAgICB7CkBAIC04MzgsNyArODM4LDcgQEAgSW5kZXg6IGdkYi03LjguOTAu MjAxNTAyMDIvZ2RiL2FkYS1sYW5nLmMKICAKICAJICAgICAgZmllbGRfdmFsYWRkciA9IGNvbmRf b2Zmc2V0X2hvc3QgKGZpZWxkX3ZhbGFkZHIsIGZpZWxkX29mZnNldCk7CiAgCSAgICAgIGZpZWxk X2FkZHJlc3MgPSBjb25kX29mZnNldF90YXJnZXQgKGZpZWxkX2FkZHJlc3MsIGZpZWxkX29mZnNl dCk7Ci1AQCAtODExMSwxMSArODExNCwxMSBAQCBhZGFfdGVtcGxhdGVfdG9fZml4ZWRfcmVjb3Jk X3R5cGVfMSAoc3RyCitAQCAtODIxMywxMSArODIxNiwxMSBAQCBhZGFfdGVtcGxhdGVfdG9fZml4 ZWRfcmVjb3JkX3R5cGVfMSAoc3RyCiAgICBpZiAoVFlQRV9MRU5HVEggKHR5cGUpIDw9IDApCiAg ICAgIHsKICAgICAgICBpZiAoVFlQRV9OQU1FIChydHlwZSkpCkBAIC04NTQsNyArODU0LDcgQEAg SW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2FkYS1sYW5nLmMKICAgICAgfQogICAgZWxz ZQogICAgICB7Ci1AQCAtODUzOSw3ICs4NTQyLDggQEAgdG9fZml4ZWRfYXJyYXlfdHlwZSAoc3Ry dWN0IHR5cGUgKnR5cGUwLAorQEAgLTg2ODQsNyArODY4Nyw4IEBAIHRvX2ZpeGVkX2FycmF5X3R5 cGUgKHN0cnVjdCB0eXBlICp0eXBlMCwKICAJIHR5cGUgd2FzIGEgcmVndWxhciAobm9uLXBhY2tl ZCkgYXJyYXkgdHlwZS4gIEFzIGEgcmVzdWx0LCB0aGUKICAJIGJpdHNpemUgb2YgdGhlIGFycmF5 IGVsZW1lbnRzIG5lZWRzIHRvIGJlIHNldCBhZ2FpbiwgYW5kIHRoZSBhcnJheQogIAkgbGVuZ3Ro IG5lZWRzIHRvIGJlIHJlY29tcHV0ZWQgYmFzZWQgb24gdGhhdCBiaXRzaXplLiAgKi8KQEAgLTg2 NCwxMCArODY0LDEwIEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9hZGEtbGFuZy5j CiAgICAgICAgaW50IGVsdF9iaXRzaXplID0gVFlQRV9GSUVMRF9CSVRTSVpFICh0eXBlMCwgMCk7 CiAgCiAgICAgICAgVFlQRV9GSUVMRF9CSVRTSVpFIChyZXN1bHQsIDApID0gVFlQRV9GSUVMRF9C SVRTSVpFICh0eXBlMCwgMCk7Ci1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvYWRhLWxh bmcuaAorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2FkYS1sYW5nLmgKID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMjAyLm9yaWcvZ2RiL2FkYS1sYW5nLmgJMjAxNS0wMi0x MSAxNjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9h ZGEtbGFuZy5oCTIwMTUtMDItMTEgMTY6MDE6NTkuNTg2OTY2MjI5ICswMTAwCistLS0gZ2RiLTcu OS41MC4yMDE1MDUyMC5vcmlnL2dkYi9hZGEtbGFuZy5oCTIwMTUtMDUtMzEgMTc6MDg6NDYuODA5 NTA2MTcwICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvYWRhLWxhbmcuaAkyMDE1 LTA1LTMxIDE3OjA5OjIxLjQyODcyNDY2MyArMDIwMAogQEAgLTE3OSw3ICsxNzksNyBAQCBleHRl cm4gdm9pZCBhZGFfcHJpbnRfdHlwZSAoc3RydWN0IHR5cGUKICBleHRlcm4gdm9pZCBhZGFfcHJp bnRfdHlwZWRlZiAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjdCBzeW1ib2wgKm5ld19zeW1ib2ws CiAgCQkJICAgICAgIHN0cnVjdCB1aV9maWxlICpzdHJlYW0pOwpAQCAtODk1LDExICs4OTUsMTEg QEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2FkYS1sYW5nLmgKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0eXBlICop OwogIAogIGV4dGVybiBzdHJ1Y3QgdHlwZSAqYWRhX2NvZXJjZV90b19zaW1wbGVfYXJyYXlfdHlw ZSAoc3RydWN0IHR5cGUgKik7Ci1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvYWRhLXR5 cGVwcmludC5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvYWRhLXR5cGVwcmludC5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5vcmlnL2dkYi9hZGEtdHlwZXBy aW50LmMJMjAxNS0wMi0xMSAxNjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44Ljkw LjIwMTUwMjAyL2dkYi9hZGEtdHlwZXByaW50LmMJMjAxNS0wMi0xMSAxNjowMTo1OS41ODc5NjYy MzQgKzAxMDAKLUBAIC04ODMsOCArODgzLDggQEAgYWRhX3ByaW50X3R5cGUgKHN0cnVjdCB0eXBl ICp0eXBlMCwgY29ucworLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvYWRhLXR5cGVw cmludC5jCTIwMTUtMDUtMzEgMTc6MDg6NDYuODA5NTA2MTcwICswMjAwCisrKysgZ2RiLTcuOS41 MC4yMDE1MDUyMC9nZGIvYWRhLXR5cGVwcmludC5jCTIwMTUtMDUtMzEgMTc6MDk6MjEuNDI5NzI0 NjcwICswMjAwCitAQCAtODg2LDggKzg4Niw4IEBAIGFkYV9wcmludF90eXBlIChzdHJ1Y3QgdHlw ZSAqdHlwZTAsIGNvbnMKICAJICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBhZGFfdHlwZV9uYW1lICh0 eXBlKTsKICAKICAJICAgIGlmICghYWRhX2lzX3JhbmdlX3R5cGVfbmFtZSAobmFtZSkpCkBAIC05 MTAsNyArOTEwLDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2FkYS10eXBlcHJp bnQuYwogIAkgICAgZWxzZQogIAkgICAgICB7CiAgCQlmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0s ICJyYW5nZSAiKTsKLUBAIC05MDUsNyArOTA1LDggQEAgYWRhX3ByaW50X3R5cGUgKHN0cnVjdCB0 eXBlICp0eXBlMCwgY29ucworQEAgLTkwOCw3ICs5MDgsOCBAQCBhZGFfcHJpbnRfdHlwZSAoc3Ry dWN0IHR5cGUgKnR5cGUwLCBjb25zCiAgCSAgfQogIAlicmVhazsKICAgICAgICBjYXNlIFRZUEVf Q09ERV9GTFQ6CkBAIC05MjAsMTAgKzkyMCwxMCBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIw Mi9nZGIvYWRhLXR5cGVwcmludC5jCiAgCWJyZWFrOwogICAgICAgIGNhc2UgVFlQRV9DT0RFX0VO VU06CiAgCWlmIChzaG93IDwgMCkKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9hZGEt dmFscHJpbnQuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2FkYS12YWxwcmludC5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5vcmlnL2dkYi9hZGEtdmFscHJp bnQuYwkyMDE1LTAyLTExIDE2OjAxOjUxLjM2NjkyNDYyNSArMDEwMAotKysrIGdkYi03LjguOTAu MjAxNTAyMDIvZ2RiL2FkYS12YWxwcmludC5jCTIwMTUtMDItMTEgMTY6MDE6NTkuNTg3OTY2MjM0 ICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9hZGEtdmFscHJpbnQuYwky MDE1LTA1LTMxIDE3OjA4OjQ2LjgxMDUwNjE3NiArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1 MjAvZ2RiL2FkYS12YWxwcmludC5jCTIwMTUtMDUtMzEgMTc6MDk6MjEuNDMwNzI0Njc2ICswMjAw CiBAQCAtMzMsMTEgKzMzLDExIEBACiAgI2luY2x1ZGUgIm9iamZpbGVzLmgiCiAgCkBAIC05Mzgs MTYgKzkzOCw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9hZGEtdmFscHJpbnQu YwogIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgbGFuZ3VhZ2VfZGVmbiAqKTsKICAMCiAgCi1AQCAt MTI5LDcgKzEyOSw3IEBAIHZhbF9wcmludF9wYWNrZWRfYXJyYXlfZWxlbWVudHMgKHN0cnVjdAot ICAgdW5zaWduZWQgaW50IHRoaW5nc19wcmludGVkID0gMDsKLSAgIHVuc2lnbmVkIGxlbjsKLSAg IHN0cnVjdCB0eXBlICplbHR0eXBlLCAqaW5kZXhfdHlwZTsKLS0gIHVuc2lnbmVkIGVsdGxlbjsK LSsgIFVMT05HRVNUIGVsdGxlbjsKLSAgIHVuc2lnbmVkIGxvbmcgYml0c2l6ZSA9IFRZUEVfRklF TERfQklUU0laRSAodHlwZSwgMCk7Ci0gICBzdHJ1Y3QgdmFsdWUgKm1hcmsgPSB2YWx1ZV9tYXJr ICgpOwotICAgTE9OR0VTVCBsb3cgPSAwOwotQEAgLTI3OCw3ICsyNzgsNyBAQCBhZGFfZW1pdF9j aGFyIChpbnQgYywgc3RydWN0IHR5cGUgKnR5cGUsCitAQCAtMjc5LDcgKzI3OSw3IEBAIGFkYV9l bWl0X2NoYXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKICAgICBvZiBhIGNoYXJhY3Rlci4g ICovCiAgCiAgc3RhdGljIGludApAQCAtOTU2LDcgKzk0Nyw3IEBAIEluZGV4OiBnZGItNy44Ljkw LjIwMTUwMjAyL2dkYi9hZGEtdmFscHJpbnQuYwogIAkgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3Jk ZXIpCiAgewogICAgaWYgKHR5cGVfbGVuID09IDEpCi1AQCAtNDQwLDExICs0NDAsMTEgQEAgYWRh X3ByaW50X3NjYWxhciAoc3RydWN0IHR5cGUgKnR5cGUsIExPTgorQEAgLTQ0MSwxMSArNDQxLDEx IEBAIGFkYV9wcmludF9zY2FsYXIgKHN0cnVjdCB0eXBlICp0eXBlLCBMT04KICAKICBzdGF0aWMg dm9pZAogIHByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBzdHJ1Y3QgdHlwZSAqZWx0 dHlwZSwgY29uc3QgZ2RiX2J5dGUgKnN0cmluZywKQEAgLTk3MCw3ICs5NjEsNyBAQCBJbmRleDog Z2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvYWRhLXZhbHByaW50LmMKICAgIHVuc2lnbmVkIGludCB0 aGluZ3NfcHJpbnRlZCA9IDA7CiAgICBpbnQgaW5fcXVvdGVzID0gMDsKICAgIGludCBuZWVkX2Nv bW1hID0gMDsKLUBAIC00NTksOSArNDU5LDkgQEAgcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpz dHJlYW0sIHN0cnVjdAorQEAgLTQ2MCw5ICs0NjAsOSBAQCBwcmludHN0ciAoc3RydWN0IHVpX2Zp bGUgKnN0cmVhbSwgc3RydWN0CiAgICAgIHsKICAgICAgICAvKiBQb3NpdGlvbiBvZiB0aGUgY2hh cmFjdGVyIHdlIGFyZSBleGFtaW5pbmcKICAgICAgICAgICB0byBzZWUgd2hldGhlciBpdCBpcyBy ZXBlYXRlZC4gICovCkBAIC05ODIsNyArOTczLDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAy MDIvZ2RiL2FkYS12YWxwcmludC5jCiAgCiAgICAgICAgUVVJVDsKICAKLUBAIC00OTIsNyArNDky LDggQEAgcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0cnVjdAorQEAgLTQ5Myw3 ICs0OTMsOCBAQCBwcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3RydWN0CiAgCSAg YWRhX2VtaXRfY2hhciAoY2hhcl9hdCAoc3RyaW5nLCBpLCB0eXBlX2xlbiwgYnl0ZV9vcmRlciks CiAgCQkJIGVsdHR5cGUsIHN0cmVhbSwgJ1wnJywgdHlwZV9sZW4pOwogIAkgIGZwdXRzX2ZpbHRl cmVkICgiJyIsIHN0cmVhbSk7CkBAIC05OTIsNyArOTgzLDcgQEAgSW5kZXg6IGdkYi03LjguOTAu MjAxNTAyMDIvZ2RiL2FkYS12YWxwcmludC5jCiAgCSAgaSA9IHJlcDEgLSAxOwogIAkgIHRoaW5n c19wcmludGVkICs9IG9wdGlvbnMtPnJlcGVhdF9jb3VudF90aHJlc2hvbGQ7CiAgCSAgbmVlZF9j b21tYSA9IDE7Ci1AQCAtNTIwLDcgKzUyMSw3IEBAIHByaW50c3RyIChzdHJ1Y3QgdWlfZmlsZSAq c3RyZWFtLCBzdHJ1Y3QKK0BAIC01MjEsNyArNTIyLDcgQEAgcHJpbnRzdHIgKHN0cnVjdCB1aV9m aWxlICpzdHJlYW0sIHN0cnVjdAogIAogIHZvaWQKICBhZGFfcHJpbnRzdHIgKHN0cnVjdCB1aV9m aWxlICpzdHJlYW0sIHN0cnVjdCB0eXBlICp0eXBlLApAQCAtMTAwMSw3ICs5OTIsNyBAQCBJbmRl eDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvYWRhLXZhbHByaW50LmMKICAJICAgICAgY29uc3Qg Y2hhciAqZW5jb2RpbmcsIGludCBmb3JjZV9lbGxpcHNlcywKICAJICAgICAgY29uc3Qgc3RydWN0 IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCiAgewotQEAgLTUzMCwxMiArNTMxLDEyIEBA IGFkYV9wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgc3QKK0BAIC01MzEsMTIgKzUz MiwxMiBAQCBhZGFfcHJpbnRzdHIgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIHN0CiAgCiAgc3Rh dGljIGludAogIHByaW50X3ZhcmlhbnRfcGFydCAoc3RydWN0IHR5cGUgKnR5cGUsIGludCBmaWVs ZF9udW0sCkBAIC0xMDE2LDcgKzEwMDcsNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9n ZGIvYWRhLXZhbHByaW50LmMKICAJCSAgICBjb25zdCBzdHJ1Y3QgbGFuZ3VhZ2VfZGVmbiAqbGFu Z3VhZ2UpCiAgewogICAgc3RydWN0IHR5cGUgKnZhcl90eXBlID0gVFlQRV9GSUVMRF9UWVBFICh0 eXBlLCBmaWVsZF9udW0pOwotQEAgLTU3MSwxMSArNTcyLDExIEBAIHByaW50X3ZhcmlhbnRfcGFy dCAoc3RydWN0IHR5cGUgKnR5cGUsIGkKK0BAIC01NzIsMTEgKzU3MywxMSBAQCBwcmludF92YXJp YW50X3BhcnQgKHN0cnVjdCB0eXBlICp0eXBlLCBpCiAgCiAgc3RhdGljIGludAogIHByaW50X2Zp ZWxkX3ZhbHVlcyAoc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApA QCAtMTAzMCw3ICsxMDIxLDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2FkYS12 YWxwcmludC5jCiAgCQkgICAgY29uc3Qgc3RydWN0IGxhbmd1YWdlX2RlZm4gKmxhbmd1YWdlKQog IHsKICAgIGludCBpLCBsZW47Ci1AQCAtNjQyLDcgKzY0Myw3IEBAIHByaW50X2ZpZWxkX3ZhbHVl cyAoc3RydWN0IHR5cGUgKnR5cGUsIGMKK0BAIC02NDMsNyArNjQ0LDcgQEAgcHJpbnRfZmllbGRf dmFsdWVzIChzdHJ1Y3QgdHlwZSAqdHlwZSwgYwogIAkgICAgfQogIAkgIGVsc2UKICAJICAgIHsK QEAgLTEwMzksNyArMTAzMCw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9hZGEt dmFscHJpbnQuYwogIAkgICAgICBpbnQgYml0X3NpemUgPSBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5 cGUsIGkpOwogIAkgICAgICBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyBvcHRzOwogIAotQEAg LTY4OCw4ICs2ODksOCBAQCBhZGFfdmFsX3ByaW50X3N0cmluZyAoc3RydWN0IHR5cGUgKnR5cGUs CitAQCAtNjg5LDggKzY5MCw4IEBAIGFkYV92YWxfcHJpbnRfc3RyaW5nIChzdHJ1Y3QgdHlwZSAq dHlwZSwKICB7CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9v cmRlciAoZ2V0X3R5cGVfYXJjaCAodHlwZSkpOwogICAgc3RydWN0IHR5cGUgKmVsdHR5cGUgPSBU WVBFX1RBUkdFVF9UWVBFICh0eXBlKTsKQEAgLTEwNTAsNyArMTA0MSw3IEBAIEluZGV4OiBnZGIt Ny44LjkwLjIwMTUwMjAyL2dkYi9hZGEtdmFscHJpbnQuYwogIAogICAgLyogV2Uga25vdyB0aGF0 IEVMVFRZUEUgY2Fubm90IHBvc3NpYmx5IGJlIG51bGwsIGJlY2F1c2Ugd2UgYXNzdW1lCiAgICAg ICB0aGF0IHdlJ3JlIGNhbGxlZCBvbmx5IHdoZW4gVFlQRSBpcyBhIHN0cmluZy1saWtlIHR5cGUu Ci1AQCAtNzA4LDcgKzcwOSw3IEBAIGFkYV92YWxfcHJpbnRfc3RyaW5nIChzdHJ1Y3QgdHlwZSAq dHlwZSwKK0BAIC03MDksNyArNzEwLDcgQEAgYWRhX3ZhbF9wcmludF9zdHJpbmcgKHN0cnVjdCB0 eXBlICp0eXBlLAogICAgICAgZWxlbWVudHMgdXAgdG8gaXQuICAqLwogICAgaWYgKG9wdGlvbnMt PnN0b3BfcHJpbnRfYXRfbnVsbCkKICAgICAgewpAQCAtMTA1OSw3ICsxMDUwLDcgQEAgSW5kZXg6 IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2FkYS12YWxwcmludC5jCiAgCiAgICAgICAgLyogTG9v ayBmb3IgYSBOVUxMIGNoYXIuICAqLwogICAgICAgIGZvciAodGVtcF9sZW4gPSAwOwotQEAgLTEw NzMsNyArMTA3NCw3IEBAIGFkYV92YWxfcHJpbnRfcmVmIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY28K K0BAIC0xMDc0LDcgKzEwNzUsNyBAQCBhZGFfdmFsX3ByaW50X3JlZiAoc3RydWN0IHR5cGUgKnR5 cGUsIGNvCiAgCiAgc3RhdGljIHZvaWQKICBhZGFfdmFsX3ByaW50XzEgKHN0cnVjdCB0eXBlICp0 eXBlLCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTEwNjgsNyArMTA1OSw3IEBAIEluZGV4 OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9hZGEtdmFscHJpbnQuYwogIAkJIHN0cnVjdCB1aV9m aWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAqb3JpZ2lu YWxfdmFsdWUsCiAgCQkgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMs Ci1AQCAtMTE1NCw3ICsxMTU1LDcgQEAgYWRhX3ZhbF9wcmludF8xIChzdHJ1Y3QgdHlwZSAqdHlw ZSwgY29ucworQEAgLTExNTcsNyArMTE1OCw3IEBAIGFkYV92YWxfcHJpbnRfMSAoc3RydWN0IHR5 cGUgKnR5cGUsIGNvbnMKICAKICB2b2lkCiAgYWRhX3ZhbF9wcmludCAoc3RydWN0IHR5cGUgKnR5 cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMTA3NywxMCArMTA2OCwxMCBAQCBJbmRl eDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvYWRhLXZhbHByaW50LmMKICAJICAgICAgIHN0cnVj dCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkgICAgICAgY29uc3Qgc3RydWN0IHZh bHVlICp2YWwsCiAgCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0 aW9ucykKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9hbm5vdGF0ZS5jCitJbmRleDog Z2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvYW5ub3RhdGUuYwogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvYW5ub3RhdGUuYwkyMDE1LTAyLTExIDE2OjAxOjUxLjM2 NjkyNDYyNSArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2Fubm90YXRlLmMJMjAx NS0wMi0xMSAxNjowMTo1OS41ODg5NjYyMzkgKzAxMDAKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIw Lm9yaWcvZ2RiL2Fubm90YXRlLmMJMjAxNS0wNS0zMSAxNzowODo0Ni44MTE1MDYxODIgKzAyMDAK KysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9hbm5vdGF0ZS5jCTIwMTUtMDUtMzEgMTc6MDk6 MjEuNDMwNzI0Njc2ICswMjAwCiBAQCAtNTQyLDIxICs1NDIsMjEgQEAgYW5ub3RhdGVfZnJhbWVf ZW5kICh2b2lkKQogIH0KICAMCkBAIC0xMTA3LDEwICsxMDk4LDEwIEBAIEluZGV4OiBnZGItNy44 LjkwLjIwMTUwMjAyL2dkYi9hbm5vdGF0ZS5jCiAgfQogIAogIHZvaWQKLUluZGV4OiBnZGItNy44 LjkwLjIwMTUwMjAyL2dkYi9hbm5vdGF0ZS5oCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvYW5ub3RhdGUuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguOTAuMjAxNTAyMDIub3JpZy9n ZGIvYW5ub3RhdGUuaAkyMDE1LTAyLTExIDE2OjAxOjUxLjM2NjkyNDYyNSArMDEwMAotKysrIGdk Yi03LjguOTAuMjAxNTAyMDIvZ2RiL2Fubm90YXRlLmgJMjAxNS0wMi0xMSAxNjowMTo1OS41ODg5 NjYyMzkgKzAxMDAKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2Fubm90YXRlLmgJ MjAxNS0wNS0zMSAxNzowODo0Ni44MTE1MDYxODIgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUw NTIwL2dkYi9hbm5vdGF0ZS5oCTIwMTUtMDUtMzEgMTc6MDk6MjEuNDMwNzI0Njc2ICswMjAwCiBA QCAtOTIsOCArOTIsOCBAQCBleHRlcm4gdm9pZCBhbm5vdGF0ZV9mcmFtZV9zb3VyY2VfZW5kICh2 CiAgZXh0ZXJuIHZvaWQgYW5ub3RhdGVfZnJhbWVfd2hlcmUgKHZvaWQpOwogIGV4dGVybiB2b2lk IGFubm90YXRlX2ZyYW1lX2VuZCAodm9pZCk7CkBAIC0xMTIyLDExICsxMTEzLDExIEBAIEluZGV4 OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9hbm5vdGF0ZS5oCiAgZXh0ZXJuIHZvaWQgYW5ub3Rh dGVfZWx0X3JlcF9lbmQgKHZvaWQpOwogIGV4dGVybiB2b2lkIGFubm90YXRlX2VsdCAodm9pZCk7 CiAgZXh0ZXJuIHZvaWQgYW5ub3RhdGVfYXJyYXlfc2VjdGlvbl9lbmQgKHZvaWQpOwotSW5kZXg6 IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2FybS1saW51eC1uYXQuYworSW5kZXg6IGdkYi03Ljku NTAuMjAxNTA1MjAvZ2RiL2FybS1saW51eC1uYXQuYwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljgu OTAuMjAxNTAyMDIub3JpZy9nZGIvYXJtLWxpbnV4LW5hdC5jCTIwMTUtMDItMTEgMTY6MDE6NTEu MzY2OTI0NjI1ICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvYXJtLWxpbnV4LW5h dC5jCTIwMTUtMDItMTEgMTY6MDE6NTkuNTg4OTY2MjM5ICswMTAwCi1AQCAtMTE4Niw3ICsxMTg2 LDcgQEAgYXJtX2xpbnV4X3JlbW92ZV9od19icmVha3BvaW50IChzdHJ1Y3QgdAorLS0tIGdkYi03 LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvYXJtLWxpbnV4LW5hdC5jCTIwMTUtMDUtMzEgMTc6MDg6 NDYuODEyNTA2MTg4ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvYXJtLWxpbnV4 LW5hdC5jCTIwMTUtMDUtMzEgMTc6MDk6MjEuNDMxNzI0NjgyICswMjAwCitAQCAtMTE5NCw3ICsx MTk0LDcgQEAgYXJtX2xpbnV4X3JlbW92ZV9od19icmVha3BvaW50IChzdHJ1Y3QgdAogICAgIEFE RFI/ICAqLwogIHN0YXRpYyBpbnQKICBhcm1fbGludXhfcmVnaW9uX29rX2Zvcl9od193YXRjaHBv aW50IChzdHJ1Y3QgdGFyZ2V0X29wcyAqc2VsZiwKQEAgLTExMzUsMTAgKzExMjYsMTAgQEAgSW5k ZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2FybS1saW51eC1uYXQuYwogIHsKICAgIGNvbnN0 IHN0cnVjdCBhcm1fbGludXhfaHdicF9jYXAgKmNhcCA9IGFybV9saW51eF9nZXRfaHdicF9jYXAg KCk7CiAgICBDT1JFX0FERFIgbWF4X3dwX2xlbmd0aCwgYWxpZ25lZF9hZGRyOwotSW5kZXg6IGdk Yi03LjguOTAuMjAxNTAyMDIvZ2RiL2F4LWdkYi5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUy MC9nZGIvYXgtZ2RiLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMjAyLm9yaWcv Z2RiL2F4LWdkYi5jCTIwMTUtMDItMTEgMTY6MDE6NTEuMzY2OTI0NjI1ICswMTAwCi0rKysgZ2Ri LTcuOC45MC4yMDE1MDIwMi9nZGIvYXgtZ2RiLmMJMjAxNS0wMi0xMSAxNjowMTo1OS41ODk5NjYy NDQgKzAxMDAKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2F4LWdkYi5jCTIwMTUt MDUtMzEgMTc6MDg6NDYuODEzNTA2MTk1ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvYXgtZ2RiLmMJMjAxNS0wNS0zMSAxNzowOToyMS40MzI3MjQ2ODkgKzAyMDAKIEBAIC04Miwx MiArODIsMTIgQEAgc3RhdGljIHZvaWQgZ2VuX3RyYWNlZF9wb3AgKHN0cnVjdCBnZGJhcgogIHN0 YXRpYyB2b2lkIGdlbl9zaWduX2V4dGVuZCAoc3RydWN0IGFnZW50X2V4cHIgKiwgc3RydWN0IHR5 cGUgKik7CiAgc3RhdGljIHZvaWQgZ2VuX2V4dGVuZCAoc3RydWN0IGFnZW50X2V4cHIgKiwgc3Ry dWN0IHR5cGUgKik7CkBAIC0xMjM4LDEwICsxMjI5LDEwIEBAIEluZGV4OiBnZGItNy44LjkwLjIw MTUwMjAyL2dkYi9heC1nZGIuYwogIHsKICAgIGludCBpLCByc2x0OwogICAgaW50IG5iYXNlcyA9 IFRZUEVfTl9CQVNFQ0xBU1NFUyAodHlwZSk7Ci1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9n ZGIvYXgtZ2VuZXJhbC5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvYXgtZ2VuZXJh bC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5vcmlnL2dkYi9heC1nZW5l cmFsLmMJMjAxNS0wMi0xMSAxNjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44Ljkw LjIwMTUwMjAyL2dkYi9heC1nZW5lcmFsLmMJMjAxNS0wMi0xMSAxNjowMTo1OS41ODk5NjYyNDQg KzAxMDAKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2F4LWdlbmVyYWwuYwkyMDE1 LTA1LTMxIDE3OjA4OjQ2LjgxNDUwNjIwMSArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAv Z2RiL2F4LWdlbmVyYWwuYwkyMDE1LTA1LTMxIDE3OjA5OjIxLjQzMjcyNDY4OSArMDIwMAogQEAg LTE5Myw3ICsxOTMsNyBAQCBheF96ZXJvX2V4dCAoc3RydWN0IGFnZW50X2V4cHIgKngsIGludCBu CiAgCiAgLyogQXBwZW5kIGEgdHJhY2VfcXVpY2sgaW5zdHJ1Y3Rpb24gdG8gRVhQUiwgdG8gcmVj b3JkIE4gYnl0ZXMuICAqLwpAQCAtMTI1MSwxMCArMTI0MiwxMCBAQCBJbmRleDogZ2RiLTcuOC45 MC4yMDE1MDIwMi9nZGIvYXgtZ2VuZXJhbC5jCiAgewogICAgLyogTiBtdXN0IGZpdCBpbiBhIGJ5 dGUuICAqLwogICAgaWYgKG4gPCAwIHx8IG4gPiAyNTUpCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1 MDIwMi9nZGIvYXguaAorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2F4LmgKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMjAyLm9yaWcvZ2RiL2F4LmgJMjAxNS0wMi0xMSAx NjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9heC5o CTIwMTUtMDItMTEgMTY6MDE6NTkuNTkwOTY2MjQ5ICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1 MDUyMC5vcmlnL2dkYi9heC5oCTIwMTUtMDUtMzEgMTc6MDg6NDYuODE0NTA2MjAxICswMjAwCisr KysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvYXguaAkyMDE1LTA1LTMxIDE3OjA5OjIxLjQzMjcy NDY4OSArMDIwMAogQEAgLTIwNyw3ICsyMDcsNyBAQCBleHRlcm4gdm9pZCBheF9leHQgKHN0cnVj dCBhZ2VudF9leHByICpFCiAgZXh0ZXJuIHZvaWQgYXhfemVyb19leHQgKHN0cnVjdCBhZ2VudF9l eHByICpFWFBSLCBpbnQgTik7CiAgCkBAIC0xMjY0LDExICsxMjU1LDExIEBAIEluZGV4OiBnZGIt Ny44LjkwLjIwMTUwMjAyL2dkYi9heC5oCiAgCiAgLyogQXBwZW5kIGEgZ290byBvcCB0byBFWFBS LiAgT1AgaXMgdGhlIGFjdHVhbCBvcCAobXVzdCBiZSBhb3BfZ290byBvcgogICAgIGFvcF9pZl9n b3RvKS4gIFdlIGFzc3VtZSB3ZSBkb24ndCBrbm93IHRoZSB0YXJnZXQgb2Zmc2V0IHlldCwKLUlu ZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9icmVha3BvaW50LmMKK0luZGV4OiBnZGItNy45 LjUwLjIwMTUwNTIwL2dkYi9icmVha3BvaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44Ljkw LjIwMTUwMjAyLm9yaWcvZ2RiL2JyZWFrcG9pbnQuYwkyMDE1LTAyLTExIDE2OjAxOjUxLjM2Njky NDYyNSArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2JyZWFrcG9pbnQuYwkyMDE1 LTAyLTExIDE2OjAxOjU5LjU5Mzk2NjI2NCArMDEwMAotQEAgLTIxOTEsOSArMjE5MSw5IEBAIHNo b3VsZF9iZV9pbnNlcnRlZCAoc3RydWN0IGJwX2xvY2F0aW9uICoKKy0tLSBnZGItNy45LjUwLjIw MTUwNTIwLm9yaWcvZ2RiL2JyZWFrcG9pbnQuYwkyMDE1LTA1LTMxIDE3OjA4OjQ2LjgxOTUwNjIz MyArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2JyZWFrcG9pbnQuYwkyMDE1LTA1 LTMxIDE3OjA5OjIxLjQzNjcyNDcxNCArMDIwMAorQEAgLTIyMDEsOSArMjIwMSw5IEBAIHNob3Vs ZF9iZV9pbnNlcnRlZCAoc3RydWN0IGJwX2xvY2F0aW9uICoKICAJewogIAkgIGZwcmludGZfdW5m aWx0ZXJlZCAoZ2RiX3N0ZGxvZywKICAJCQkgICAgICAiaW5mcnVuOiBzdGVwcGluZyBwYXN0IG5v bi1zdGVwcGFibGUgd2F0Y2hwb2ludC4gIgpAQCAtMTI4MCw3ICsxMjcxLDcgQEAgSW5kZXg6IGdk Yi03LjguOTAuMjAxNTAyMDIvZ2RiL2JyZWFrcG9pbnQuYwogIAl9CiAgICAgICAgcmV0dXJuIDA7 CiAgICAgIH0KLUBAIC02OTc2LDcgKzY5NzYsNyBAQCBicmVha3BvaW50X2FkZHJlc3NfbWF0Y2gg KHN0cnVjdCBhZGRyZXNzCitAQCAtNzAwMyw3ICs3MDAzLDcgQEAgYnJlYWtwb2ludF9hZGRyZXNz X21hdGNoIChzdHJ1Y3QgYWRkcmVzcwogIAogIHN0YXRpYyBpbnQKICBicmVha3BvaW50X2FkZHJl c3NfbWF0Y2hfcmFuZ2UgKHN0cnVjdCBhZGRyZXNzX3NwYWNlICphc3BhY2UxLCBDT1JFX0FERFIg YWRkcjEsCkBAIC0xMjg5LDcgKzEyODAsNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9n ZGIvYnJlYWtwb2ludC5jCiAgCQkJCUNPUkVfQUREUiBhZGRyMikKICB7CiAgICByZXR1cm4gKChn ZGJhcmNoX2hhc19nbG9iYWxfYnJlYWtwb2ludHMgKHRhcmdldF9nZGJhcmNoICgpKQotQEAgLTEx NzAwLDcgKzExNzAwLDcgQEAgY2FuX3VzZV9oYXJkd2FyZV93YXRjaHBvaW50IChzdHJ1Y3QgdmFs dQorQEAgLTExMzI1LDcgKzExMzI1LDcgQEAgY2FuX3VzZV9oYXJkd2FyZV93YXRjaHBvaW50IChz dHJ1Y3QgdmFsdQogIAkJICAgICAgJiYgVFlQRV9DT0RFICh2dHlwZSkgIT0gVFlQRV9DT0RFX0FS UkFZKSkKICAJCXsKICAJCSAgQ09SRV9BRERSIHZhZGRyID0gdmFsdWVfYWRkcmVzcyAodik7CkBA IC0xMjk4LDEwICsxMjg5LDEwIEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9icmVh a3BvaW50LmMKICAJCSAgaW50IG51bV9yZWdzOwogIAogIAkJICBsZW4gPSAodGFyZ2V0X2V4YWN0 X3dhdGNocG9pbnRzCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvYnJlYWtwb2ludC5o CitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvYnJlYWtwb2ludC5oCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5vcmlnL2dkYi9icmVha3BvaW50LmgJMjAxNS0wMi0x MSAxNjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9i cmVha3BvaW50LmgJMjAxNS0wMi0xMSAxNjowMTo1OS41OTQ5NjYyNjkgKzAxMDAKKy0tLSBnZGIt Ny45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2JyZWFrcG9pbnQuaAkyMDE1LTA1LTMxIDE3OjA4OjQ2 LjgyMTUwNjI0NSArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2JyZWFrcG9pbnQu aAkyMDE1LTA1LTMxIDE3OjA5OjIxLjQzNzcyNDcyMCArMDIwMAogQEAgLTIzNiw3ICsyMzYsNyBA QCBzdHJ1Y3QgYnBfdGFyZ2V0X2luZm8KICAKICAgIC8qIElmIHRoaXMgaXMgYSByYW5nZWQgYnJl YWtwb2ludCwgdGhlbiB0aGlzIGZpZWxkIGNvbnRhaW5zIHRoZQpAQCAtMTMyMCwxMCArMTMxMSwx MCBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvYnJlYWtwb2ludC5oCiAgCiAgICAv KiBUeXBlIG9mIGhhcmR3YXJlIHdhdGNocG9pbnQuICAqLwogICAgZW51bSB0YXJnZXRfaHdfYnBf dHlwZSB3YXRjaHBvaW50X3R5cGU7Ci1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvYy1s YW5nLmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9jLWxhbmcuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvYy1sYW5nLmMJMjAxNS0wMi0xMSAx NjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9jLWxh bmcuYwkyMDE1LTAyLTExIDE2OjAxOjU5LjU5NDk2NjI2OSArMDEwMAorLS0tIGdkYi03LjkuNTAu MjAxNTA1MjAub3JpZy9nZGIvYy1sYW5nLmMJMjAxNS0wNS0zMSAxNzowODo0Ni44MjE1MDYyNDUg KzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9jLWxhbmcuYwkyMDE1LTA1LTMxIDE3 OjA5OjIxLjQzNzcyNDcyMCArMDIwMAogQEAgLTE4Nyw3ICsxODcsNyBAQCBjX3ByaW50Y2hhciAo aW50IGMsIHN0cnVjdCB0eXBlICp0eXBlLCBzCiAgCiAgdm9pZApAQCAtMTM1MSwxMCArMTM0Miwx MCBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvYy1sYW5nLmMKICAKICAJCWlmIChn ZXRfZGlzY3JldGVfYm91bmRzIChUWVBFX0lOREVYX1RZUEUgKGV4cGVjdF90eXBlKSwKICAJCQkJ CSAmbG93X2JvdW5kLCAmaGlnaF9ib3VuZCkgPCAwKQotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAy MDIvZ2RiL2MtbGFuZy5oCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvYy1sYW5nLmgK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMjAyLm9yaWcvZ2RiL2MtbGFuZy5oCTIw MTUtMDItMTEgMTY6MDE6NTEuMzY2OTI0NjI1ICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDIw Mi9nZGIvYy1sYW5nLmgJMjAxNS0wMi0xMSAxNjowMTo1OS41OTU5NjYyNzQgKzAxMDAKKy0tLSBn ZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2MtbGFuZy5oCTIwMTUtMDUtMzEgMTc6MDg6NDYu ODIxNTA2MjQ1ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvYy1sYW5nLmgJMjAx NS0wNS0zMSAxNzowOToyMS40Mzg3MjQ3MjYgKzAyMDAKIEBAIC03NCw3ICs3NCw3IEBAIGV4dGVy biB2b2lkIGNfcHJpbnRfdHlwZWRlZiAoc3RydWN0IHR5cGUKICAJCQkgICAgIHN0cnVjdCB1aV9m aWxlICopOwogIApAQCAtMTM5MCwxMCArMTM4MSwxMCBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1 MDIwMi9nZGIvYy1sYW5nLmgKICAJCQkJCXN0cnVjdCB1aV9maWxlICosIGludCwKICAJCQkJCWNv bnN0IHN0cnVjdCB2YWx1ZSAqLAogIAkJCQkJY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlv bnMgKiwKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9jLXZhbHByaW50LmMKK0luZGV4 OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9jLXZhbHByaW50LmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy44LjkwLjIwMTUwMjAyLm9yaWcvZ2RiL2MtdmFscHJpbnQuYwkyMDE1LTAyLTExIDE2OjAx OjUxLjM2NjkyNDYyNSArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2MtdmFscHJp bnQuYwkyMDE1LTAyLTExIDE2OjAxOjU5LjU5NTk2NjI3NCArMDEwMAorLS0tIGdkYi03LjkuNTAu MjAxNTA1MjAub3JpZy9nZGIvYy12YWxwcmludC5jCTIwMTUtMDUtMzEgMTc6MDg6NDYuODIyNTA2 MjUyICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvYy12YWxwcmludC5jCTIwMTUt MDUtMzEgMTc6MDk6MjEuNDM4NzI0NzI2ICswMjAwCiBAQCAtMTMyLDcgKzEzMiw3IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgZ2VuZXJpY192YWxfcHJpbnRfZGUKICAKICB2b2lkCkBAIC0xNDM1LDEx ICsxNDI2LDExIEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9jLXZhbHByaW50LmMK ICAgIHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zIG9wdHMgPSAqb3B0aW9uczsKICAKICAgIG9w dHMuZGVyZWZfcmVmID0gMTsKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9jcC1hYmku YworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2NwLWFiaS5jCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5vcmlnL2dkYi9jcC1hYmkuYwkyMDE1LTAyLTExIDE2OjAx OjUxLjM2NjkyNDYyNSArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2NwLWFiaS5j CTIwMTUtMDItMTEgMTY6MDE6NTkuNTk1OTY2Mjc0ICswMTAwCi1AQCAtNjQsMTMgKzY0LDEzIEBA IGlzX29wZXJhdG9yX25hbWUgKGNvbnN0IGNoYXIgKm5hbWUpCistLS0gZ2RiLTcuOS41MC4yMDE1 MDUyMC5vcmlnL2dkYi9jcC1hYmkuYwkyMDE1LTA1LTMxIDE3OjA4OjQ2LjgyMjUwNjI1MiArMDIw MAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2NwLWFiaS5jCTIwMTUtMDUtMzEgMTc6MTI6 NTMuNzY2MDY0Nzk4ICswMjAwCitAQCAtNjQsMTIgKzY0LDEyIEBAIGlzX29wZXJhdG9yX25hbWUg KGNvbnN0IGNoYXIgKm5hbWUpCiAgICByZXR1cm4gKCpjdXJyZW50X2NwX2FiaS5pc19vcGVyYXRv cl9uYW1lKSAobmFtZSk7CiAgfQogIApAQCAtMTQ1MCwxMyArMTQ0MSwxMiBAQCBJbmRleDogZ2Ri LTcuOC45MC4yMDE1MDIwMi9nZGIvY3AtYWJpLmMKICsJCSAgTE9OR0VTVCBlbWJlZGRlZF9vZmZz ZXQsIENPUkVfQUREUiBhZGRyZXNzLAogIAkJICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCkKICB7 Ci0gICB2b2xhdGlsZSBzdHJ1Y3QgZ2RiX2V4Y2VwdGlvbiBleDsKIC0gIGludCByZXMgPSAwOwog KyAgTE9OR0VTVCByZXMgPSAwOwogIAogICAgZ2RiX2Fzc2VydCAoY3VycmVudF9jcF9hYmkuYmFz ZWNsYXNzX29mZnNldCAhPSBOVUxMKTsKICAKLUBAIC05NCw3ICs5NCw3IEBAIGJhc2VjbGFzc19v ZmZzZXQgKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQKK0BAIC05Niw3ICs5Niw3IEBAIGJhc2VjbGFz c19vZmZzZXQgKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQKICBzdHJ1Y3QgdmFsdWUgKgogIHZhbHVl X3ZpcnR1YWxfZm5fZmllbGQgKHN0cnVjdCB2YWx1ZSAqKmFyZzFwLAogIAkJCXN0cnVjdCBmbl9m aWVsZCAqZiwgaW50IGosCkBAIC0xNDY1LDcgKzE0NTUsNyBAQCBJbmRleDogZ2RiLTcuOC45MC4y MDE1MDIwMi9nZGIvY3AtYWJpLmMKICB7CiAgICBpZiAoKGN1cnJlbnRfY3BfYWJpLnZpcnR1YWxf Zm5fZmllbGQpID09IE5VTEwpCiAgICAgIHJldHVybiBOVUxMOwotQEAgLTEwNCw3ICsxMDQsNyBA QCB2YWx1ZV92aXJ0dWFsX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKiphCitAQCAtMTA2LDcgKzEw Niw3IEBAIHZhbHVlX3ZpcnR1YWxfZm5fZmllbGQgKHN0cnVjdCB2YWx1ZSAqKmEKICAKICBzdHJ1 Y3QgdHlwZSAqCiAgdmFsdWVfcnR0aV90eXBlIChzdHJ1Y3QgdmFsdWUgKnYsIGludCAqZnVsbCwK QEAgLTE0NzMsMTEgKzE0NjMsMTEgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2Nw LWFiaS5jCiArCQkgTE9OR0VTVCAqdG9wLCBpbnQgKnVzaW5nX2VuYykKICB7CiAgICBzdHJ1Y3Qg dHlwZSAqcmV0ID0gTlVMTDsKLSAgIHZvbGF0aWxlIHN0cnVjdCBnZGJfZXhjZXB0aW9uIGU7Ci1J bmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvY3AtYWJpLmgKKyAKK0luZGV4OiBnZGItNy45 LjUwLjIwMTUwNTIwL2dkYi9jcC1hYmkuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguOTAuMjAx NTAyMDIub3JpZy9nZGIvY3AtYWJpLmgJMjAxNS0wMi0xMSAxNjowMTo1MS4zNjY5MjQ2MjUgKzAx MDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9jcC1hYmkuaAkyMDE1LTAyLTExIDE2OjAx OjU5LjU5NTk2NjI3NCArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvY3At YWJpLmgJMjAxNS0wNS0zMSAxNzowODo0Ni44MjM1MDYyNTggKzAyMDAKKysrKyBnZGItNy45LjUw LjIwMTUwNTIwL2dkYi9jcC1hYmkuaAkyMDE1LTA1LTMxIDE3OjA5OjIxLjQzOTcyNDczMyArMDIw MAogQEAgLTEwOCw3ICsxMDgsNyBAQCBleHRlcm4gc3RydWN0IHZhbHVlICp2YWx1ZV92aXJ0dWFs X2ZuX2ZpCiAgCQkJCQkgICAgIHN0cnVjdCBmbl9maWVsZCAqZiwKICAJCQkJCSAgICAgaW50IGos CkBAIC0xNTMyLDEwICsxNTIyLDEwIEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9j cC1hYmkuaAogICAgdm9pZCAoKnByaW50X21ldGhvZF9wdHIpIChjb25zdCBnZGJfYnl0ZSAqY29u dGVudHMsCiAgCQkJICAgIHN0cnVjdCB0eXBlICp0eXBlLAogIAkJCSAgICBzdHJ1Y3QgdWlfZmls ZSAqc3RyZWFtKTsKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9jcC12YWxwcmludC5j CitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvY3AtdmFscHJpbnQuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvY3AtdmFscHJpbnQuYwkyMDE1LTAy LTExIDE2OjAxOjUxLjM2NjkyNDYyNSArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAyMDIvZ2Ri L2NwLXZhbHByaW50LmMJMjAxNS0wMi0xMSAxNjowMTo1OS41OTY5NjYyNzkgKzAxMDAKKy0tLSBn ZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2NwLXZhbHByaW50LmMJMjAxNS0wNS0zMSAxNzow ODo0Ni44MjM1MDYyNTggKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9jcC12YWxw cmludC5jCTIwMTUtMDUtMzEgMTc6MTQ6NDEuNzk2NzQ2NjE3ICswMjAwCiBAQCAtODAsNyArODAs NyBAQCBzdGF0aWMgdm9pZCBjcF9wcmludF9zdGF0aWNfZmllbGQgKHN0cnVjCiAgCQkJCSAgIGNv bnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICopOwogIApAQCAtMTU1NCw3ICsxNTQ0LDcg QEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2NwLXZhbHByaW50LmMKICAJCSAgICAg ICBDT1JFX0FERFIgYWRkcmVzcywgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKICAJCSAgICAgICBp bnQgcmVjdXJzZSwgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCiAgCQkgICAgICAgY29uc3Qgc3Ry dWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi1AQCAtMzMxLDcgKzMzMSw3IEBAIGNw X3ByaW50X3ZhbHVlX2ZpZWxkcyAoc3RydWN0IHR5cGUgKnR5cGUKK0BAIC0zMzQsNyArMzM0LDcg QEAgY3BfcHJpbnRfdmFsdWVfZmllbGRzIChzdHJ1Y3QgdHlwZSAqdHlwZQogIAkJfQogIAkgICAg ICBlbHNlIGlmIChpID09IHZwdHJfZmllbGRubyAmJiB0eXBlID09IHZwdHJfYmFzZXR5cGUpCiAg CQl7CkBAIC0xNTYzLDcgKzE1NTMsNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIv Y3AtdmFscHJpbnQuYwogIAkJICBzdHJ1Y3QgdHlwZSAqaV90eXBlID0gVFlQRV9GSUVMRF9UWVBF ICh0eXBlLCBpKTsKICAKICAJCSAgaWYgKHZhbHByaW50X2NoZWNrX3ZhbGlkaXR5IChzdHJlYW0s IGlfdHlwZSwgaV9vZmZzZXQsIHZhbCkpCi1AQCAtNDE0LDcgKzQxNCw3IEBAIGNwX3ByaW50X3Zh bHVlX2ZpZWxkcyAoc3RydWN0IHR5cGUgKnR5cGUKK0BAIC00MTcsNyArNDE3LDcgQEAgY3BfcHJp bnRfdmFsdWVfZmllbGRzIChzdHJ1Y3QgdHlwZSAqdHlwZQogIAogIHZvaWQKICBjcF9wcmludF92 YWx1ZV9maWVsZHNfcnR0aSAoc3RydWN0IHR5cGUgKnR5cGUsCkBAIC0xNTcyLDcgKzE1NjIsNyBA QCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvY3AtdmFscHJpbnQuYwogIAkJCSAgICBD T1JFX0FERFIgYWRkcmVzcywKICAJCQkgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJl Y3Vyc2UsCiAgCQkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAotQEAgLTQzMSw3ICs0MzEs OCBAQCBjcF9wcmludF92YWx1ZV9maWVsZHNfcnR0aSAoc3RydWN0IHR5cGUKK0BAIC00MzQsNyAr NDM0LDggQEAgY3BfcHJpbnRfdmFsdWVfZmllbGRzX3J0dGkgKHN0cnVjdCB0eXBlCiAgCQkJCSAg ICAgVEFSR0VUX0NIQVJfQklUICogVFlQRV9MRU5HVEggKHR5cGUpKSkKICAgICAgewogICAgICAg IHN0cnVjdCB2YWx1ZSAqdmFsdWU7CkBAIC0xNTgyLDcgKzE1NzIsNyBAQCBJbmRleDogZ2RiLTcu OC45MC4yMDE1MDIwMi9nZGIvY3AtdmFscHJpbnQuYwogIAogICAgICAgIC8qIFVnaCwgd2UgaGF2 ZSB0byBjb252ZXJ0IGJhY2sgdG8gYSB2YWx1ZSBoZXJlLiAgKi8KICAgICAgICB2YWx1ZSA9IHZh bHVlX2Zyb21fY29udGVudHNfYW5kX2FkZHJlc3MgKHR5cGUsIHZhbGFkZHIgKyBvZmZzZXQsCi1A QCAtNDU2LDcgKzQ1Nyw3IEBAIGNwX3ByaW50X3ZhbHVlX2ZpZWxkc19ydHRpIChzdHJ1Y3QgdHlw ZQorQEAgLTQ1OSw3ICs0NjAsNyBAQCBjcF9wcmludF92YWx1ZV9maWVsZHNfcnR0aSAoc3RydWN0 IHR5cGUKICAKICBzdGF0aWMgdm9pZAogIGNwX3ByaW50X3ZhbHVlIChzdHJ1Y3QgdHlwZSAqdHlw ZSwgc3RydWN0IHR5cGUgKnJlYWxfdHlwZSwKQEAgLTE1OTEsNyArMTU4MSw3IEBAIEluZGV4OiBn ZGItNy44LjkwLjIwMTUwMjAyL2dkYi9jcC12YWxwcmludC5jCiAgCQlDT1JFX0FERFIgYWRkcmVz cywgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKICAJCWludCByZWN1cnNlLCBjb25zdCBzdHJ1Y3Qg dmFsdWUgKnZhbCwKICAJCWNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25z LAotQEAgLTQ2Niw3ICs0NjcsNyBAQCBjcF9wcmludF92YWx1ZSAoc3RydWN0IHR5cGUgKnR5cGUs IHN0cnVjCitAQCAtNDY5LDcgKzQ3MCw3IEBAIGNwX3ByaW50X3ZhbHVlIChzdHJ1Y3QgdHlwZSAq dHlwZSwgc3RydWMKICAgICAgPSAoc3RydWN0IHR5cGUgKiopIG9ic3RhY2tfbmV4dF9mcmVlICgm ZG9udF9wcmludF92Yl9vYnN0YWNrKTsKICAgIHN0cnVjdCBvYnN0YWNrIHRtcF9vYnN0YWNrID0g ZG9udF9wcmludF92Yl9vYnN0YWNrOwogICAgaW50IGksIG5fYmFzZWNsYXNzZXMgPSBUWVBFX05f QkFTRUNMQVNTRVMgKHR5cGUpOwpAQCAtMTYwMCwxOSArMTU5MCwxOSBAQCBJbmRleDogZ2RiLTcu OC45MC4yMDE1MDIwMi9nZGIvY3AtdmFscHJpbnQuYwogICAgc3RydWN0IHR5cGUgKnRoaXN0eXBl OwogIAogICAgaWYgKGRvbnRfcHJpbnRfdmIgPT0gMCkKLUBAIC00ODAsNyArNDgxLDcgQEAgY3Bf cHJpbnRfdmFsdWUgKHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1YworQEAgLTQ4Myw3ICs0ODQsNyBA QCBjcF9wcmludF92YWx1ZSAoc3RydWN0IHR5cGUgKnR5cGUsIHN0cnVjCiAgCiAgICBmb3IgKGkg PSAwOyBpIDwgbl9iYXNlY2xhc3NlczsgaSsrKQogICAgICB7CiAtICAgICAgaW50IGJvZmZzZXQg PSAwOwogKyAgICAgIExPTkdFU1QgYm9mZnNldCA9IDA7Ci0gICAgICAgaW50IHNraXA7CisgICAg ICAgaW50IHNraXAgPSAwOwogICAgICAgIHN0cnVjdCB0eXBlICpiYXNlY2xhc3MgPSBjaGVja190 eXBlZGVmIChUWVBFX0JBU0VDTEFTUyAodHlwZSwgaSkpOwogICAgICAgIGNvbnN0IGNoYXIgKmJh c2VuYW1lID0gVFlQRV9OQU1FIChiYXNlY2xhc3MpOwotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAy MDIvZ2RiL2QtbGFuZy5oCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZC1sYW5nLmgK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMjAyLm9yaWcvZ2RiL2QtbGFuZy5oCTIw MTUtMDItMTEgMTY6MDE6NTEuMzY2OTI0NjI1ICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDIw Mi9nZGIvZC1sYW5nLmgJMjAxNS0wMi0xMSAxNjowMTo1OS41OTY5NjYyNzkgKzAxMDAKKy0tLSBn ZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2QtbGFuZy5oCTIwMTUtMDUtMzEgMTc6MDg6NDYu ODI0NTA2MjY0ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZC1sYW5nLmgJMjAx NS0wNS0zMSAxNzowOToyMS40Mzk3MjQ3MzMgKzAyMDAKIEBAIC03MSw3ICs3MSw3IEBAIGV4dGVy biBjb25zdCBzdHJ1Y3QgYnVpbHRpbl9kX3R5cGUgKmJ1aWwKICAvKiBEZWZpbmVkIGluIGQtdmFs cHJpbnQuYyAgKi8KICAKQEAgLTE2MjIsMTAgKzE2MTIsMTAgQEAgSW5kZXg6IGdkYi03LjguOTAu MjAxNTAyMDIvZ2RiL2QtbGFuZy5oCiAgCQkJIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCBy ZWN1cnNlLAogIAkJCSBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJCQkgY29uc3Qgc3RydWN0 IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpOwotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAy MDIvZ2RiL2QtdmFscHJpbnQuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2QtdmFs cHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvZC12 YWxwcmludC5jCTIwMTUtMDItMTEgMTY6MDE6NTEuMzY2OTI0NjI1ICswMTAwCi0rKysgZ2RiLTcu OC45MC4yMDE1MDIwMi9nZGIvZC12YWxwcmludC5jCTIwMTUtMDItMTEgMTY6MDE6NTkuNTk2OTY2 Mjc5ICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9kLXZhbHByaW50LmMJ MjAxNS0wNS0zMSAxNzowODo0Ni44MjQ1MDYyNjQgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUw NTIwL2dkYi9kLXZhbHByaW50LmMJMjAxNS0wNS0zMSAxNzowOToyMS40NDA3MjQ3MzkgKzAyMDAK IEBAIC0yOSw3ICsyOSw3IEBACiAgCiAgc3RhdGljIGludApAQCAtMTY0OCwxMCArMTYzOCwxMCBA QCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvZC12YWxwcmludC5jCiAgICAgICAgICAg ICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zKQogIHsKICAgIGlu dCByZXQ7Ci1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvZG91Ymxlc3QuYworSW5kZXg6 IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2RvdWJsZXN0LmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny44LjkwLjIwMTUwMjAyLm9yaWcvZ2RiL2RvdWJsZXN0LmMJMjAxNS0wMi0xMSAxNjowMTo1MS4z NjY5MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9kb3VibGVzdC5jCTIw MTUtMDItMTEgMTY6MDE6NTkuNTk3OTY2Mjg0ICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUy MC5vcmlnL2dkYi9kb3VibGVzdC5jCTIwMTUtMDUtMzEgMTc6MDg6NDYuODI0NTA2MjY0ICswMjAw CisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZG91Ymxlc3QuYwkyMDE1LTA1LTMxIDE3OjA5 OjIxLjQ0MDcyNDczOSArMDIwMAogQEAgLTc2NSw3ICs3NjUsNyBAQCBmbG9hdGZvcm1hdF9mcm9t X2RvdWJsZXN0IChjb25zdCBzdHJ1Y3QKICAgICBidXQgbm90IHBhc3NlZCBvbiBieSBHREIuICBU aGlzIHNob3VsZCBiZSBmaXhlZC4gICovCiAgCkBAIC0xNjcyLDExICsxNjYyLDExIEBAIEluZGV4 OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9kb3VibGVzdC5jCiAgICByZXR1cm4gZm9ybWF0Owog IH0KICAKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9kd2FyZjJsb2MuYworSW5kZXg6 IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2R3YXJmMmxvYy5jCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2Ri LTcuOC45MC4yMDE1MDIwMi5vcmlnL2dkYi9kd2FyZjJsb2MuYwkyMDE1LTAyLTExIDE2OjAxOjUx LjM2NjkyNDYyNSArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2R3YXJmMmxvYy5j CTIwMTUtMDItMTEgMTY6MDE6NTkuNTk4OTY2Mjg5ICswMTAwCi1AQCAtMTU1NywxOSArMTU1Nywx OSBAQCBpbnNlcnRfYml0cyAodW5zaWduZWQgaW50IGRhdHVtLAorLS0tIGdkYi03LjkuNTAuMjAx NTA1MjAub3JpZy9nZGIvZHdhcmYybG9jLmMJMjAxNS0wNS0zMSAxNzowODo0Ni44MjY1MDYyNzcg KzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9kd2FyZjJsb2MuYwkyMDE1LTA1LTMx IDE3OjA5OjIxLjQ0MTcyNDc0NSArMDIwMAorQEAgLTE1NTgsMTkgKzE1NTgsMTkgQEAgaW5zZXJ0 X2JpdHMgKHVuc2lnbmVkIGludCBkYXR1bSwKICAgICBCSVRTX0JJR19FTkRJQU4gaXMgdGFrZW4g ZGlyZWN0bHkgZnJvbSBnZGJhcmNoLiAgKi8KICAKICBzdGF0aWMgdm9pZApAQCAtMTcwMiw3ICsx NjkyLDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2R3YXJmMmxvYy5jCiAgCiAg ICBkZXN0X2F2YWlsID0gOCAtIGRlc3Rfb2Zmc2V0X2JpdHMgJSA4OwogIAotQEAgLTE2MDcsMTMg KzE2MDcsMTMgQEAgc3RhdGljIHZvaWQKK0BAIC0xNjA4LDEzICsxNjA4LDEzIEBAIHN0YXRpYyB2 b2lkCiAgcmVhZF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdikKICB7CiAgICBpbnQgaTsK QEAgLTE3MTgsNyArMTcwOCw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9kd2Fy ZjJsb2MuYwogICAgc2l6ZV90IGJ1ZmZlcl9zaXplID0gMDsKICAgIGdkYl9ieXRlICpidWZmZXIg PSBOVUxMOwogICAgc3RydWN0IGNsZWFudXAgKmNsZWFudXA7Ci1AQCAtMTY0MCw4ICsxNjQwLDgg QEAgcmVhZF9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdikKK0BAIC0xNjQxLDggKzE2NDEs OCBAQCByZWFkX3BpZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp2KQogICAgZm9yIChpID0gMDsg aSA8IGMtPm5fcGllY2VzICYmIG9mZnNldCA8IHR5cGVfbGVuOyBpKyspCiAgICAgIHsKICAgICAg ICBzdHJ1Y3QgZHdhcmZfZXhwcl9waWVjZSAqcCA9ICZjLT5waWVjZXNbaV07CkBAIC0xNzI5LDcg KzE3MTksNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvZHdhcmYybG9jLmMKICAg ICAgICBjb25zdCBnZGJfYnl0ZSAqaW50ZXJtZWRpYXRlX2J1ZmZlcjsKICAKICAgICAgICAvKiBD b21wdXRlIHNpemUsIHNvdXJjZSwgYW5kIGRlc3RpbmF0aW9uIG9mZnNldHMgZm9yIGNvcHlpbmcs IGluCi1AQCAtMTc5MCwxMyArMTc5MCwxMyBAQCBzdGF0aWMgdm9pZAorQEAgLTE3OTEsMTMgKzE3 OTEsMTMgQEAgc3RhdGljIHZvaWQKICB3cml0ZV9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAq dG8sIHN0cnVjdCB2YWx1ZSAqZnJvbSkKICB7CiAgICBpbnQgaTsKQEAgLTE3NDUsNyArMTczNSw3 IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9kd2FyZjJsb2MuYwogICAgc2l6ZV90 IGJ1ZmZlcl9zaXplID0gMDsKICAgIGdkYl9ieXRlICpidWZmZXIgPSBOVUxMOwogICAgc3RydWN0 IGNsZWFudXAgKmNsZWFudXA7Ci1AQCAtMTgyNCw4ICsxODI0LDggQEAgd3JpdGVfcGllY2VkX3Zh bHVlIChzdHJ1Y3QgdmFsdWUgKnRvLCBzdAorQEAgLTE4MjUsOCArMTgyNSw4IEBAIHdyaXRlX3Bp ZWNlZF92YWx1ZSAoc3RydWN0IHZhbHVlICp0bywgc3QKICAgIGZvciAoaSA9IDA7IGkgPCBjLT5u X3BpZWNlcyAmJiBvZmZzZXQgPCB0eXBlX2xlbjsgaSsrKQogICAgICB7CiAgICAgICAgc3RydWN0 IGR3YXJmX2V4cHJfcGllY2UgKnAgPSAmYy0+cGllY2VzW2ldOwpAQCAtMTc1Niw3ICsxNzQ2LDcg QEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2R3YXJmMmxvYy5jCiAgICAgICAgaW50 IG5lZWRfYml0d2lzZTsKICAgICAgICBjb25zdCBnZGJfYnl0ZSAqc291cmNlX2J1ZmZlcjsKICAK LUBAIC0xOTUzLDggKzE5NTMsOCBAQCB3cml0ZV9waWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAq dG8sIHN0CitAQCAtMTk1NCw4ICsxOTU0LDggQEAgd3JpdGVfcGllY2VkX3ZhbHVlIChzdHJ1Y3Qg dmFsdWUgKnRvLCBzdAogICAgIGEgc3ludGhldGljIHBvaW50ZXIuICAqLwogIAogIHN0YXRpYyBp bnQKQEAgLTE3NjcsNyArMTc1Nyw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9k d2FyZjJsb2MuYwogIHsKICAgIHN0cnVjdCBwaWVjZV9jbG9zdXJlICpjCiAgICAgID0gKHN0cnVj dCBwaWVjZV9jbG9zdXJlICopIHZhbHVlX2NvbXB1dGVkX2Nsb3N1cmUgKHZhbHVlKTsKLUBAIC0x OTY3LDcgKzE5NjcsNyBAQCBjaGVja19waWVjZWRfc3ludGhldGljX3BvaW50ZXIgKGNvbnN0IHN0 CitAQCAtMTk2OCw3ICsxOTY4LDcgQEAgY2hlY2tfcGllY2VkX3N5bnRoZXRpY19wb2ludGVyIChj b25zdCBzdAogICAgZm9yIChpID0gMDsgaSA8IGMtPm5fcGllY2VzICYmIGJpdF9sZW5ndGggPiAw OyBpKyspCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgZHdhcmZfZXhwcl9waWVjZSAqcCA9ICZjLT5w aWVjZXNbaV07CkBAIC0xNzc2LDcgKzE3NjYsNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIw Mi9nZGIvZHdhcmYybG9jLmMKICAKICAgICAgICBpZiAoYml0X29mZnNldCA+IDApCiAgCXsKLUBA IC0yMDA5LDkgKzIwMDksMTAgQEAgaW5kaXJlY3RfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUg KnZhbAorQEAgLTIwMTAsOSArMjAxMCwxMCBAQCBpbmRpcmVjdF9waWVjZWRfdmFsdWUgKHN0cnVj dCB2YWx1ZSAqdmFsCiAgICBzdHJ1Y3QgdHlwZSAqdHlwZTsKICAgIHN0cnVjdCBmcmFtZV9pbmZv ICpmcmFtZTsKICAgIHN0cnVjdCBkd2FyZjJfbG9jZXhwcl9iYXRvbiBiYXRvbjsKQEAgLTE3ODks NyArMTc3OSw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9kd2FyZjJsb2MuYwog ICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXI7CiAgCiAgICB0eXBlID0gY2hlY2tfdHlwZWRl ZiAodmFsdWVfdHlwZSAodmFsdWUpKTsKLUBAIC0yMDI2LDcgKzIwMjcsNyBAQCBpbmRpcmVjdF9w aWVjZWRfdmFsdWUgKHN0cnVjdCB2YWx1ZSAqdmFsCitAQCAtMjAyNyw3ICsyMDI4LDcgQEAgaW5k aXJlY3RfcGllY2VkX3ZhbHVlIChzdHJ1Y3QgdmFsdWUgKnZhbAogICAgZm9yIChpID0gMDsgaSA8 IGMtPm5fcGllY2VzICYmIGJpdF9sZW5ndGggPiAwOyBpKyspCiAgICAgIHsKICAgICAgICBzdHJ1 Y3QgZHdhcmZfZXhwcl9waWVjZSAqcCA9ICZjLT5waWVjZXNbaV07CkBAIC0xNzk4LDcgKzE3ODgs NyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvZHdhcmYybG9jLmMKICAKICAgICAg ICBpZiAoYml0X29mZnNldCA+IDApCiAgCXsKLUBAIC0yMzA5LDcgKzIzMTAsNyBAQCBkd2FyZjJf ZXZhbHVhdGVfbG9jX2Rlc2NfZnVsbCAoc3RydWN0IHR5CitAQCAtMjMxMCw3ICsyMzExLDcgQEAg ZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjX2Z1bGwgKHN0cnVjdCB0eQogIAkgICAgc3RydWN0IHZh bHVlICp2YWx1ZSA9IGR3YXJmX2V4cHJfZmV0Y2ggKGN0eCwgMCk7CiAgCSAgICBnZGJfYnl0ZSAq Y29udGVudHM7CiAgCSAgICBjb25zdCBnZGJfYnl0ZSAqdmFsX2J5dGVzOwpAQCAtMTgwNywxMSAr MTc5NywxMSBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvZHdhcmYybG9jLmMKICAK ICAJICAgIGlmIChieXRlX29mZnNldCArIFRZUEVfTEVOR1RIICh0eXBlKSA+IG4pCiAgCSAgICAg IGludmFsaWRfc3ludGhldGljX3BvaW50ZXIgKCk7Ci1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIw Mi9nZGIvZHdhcmYycmVhZC5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZHdhcmYy cmVhZC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5vcmlnL2dkYi9kd2Fy ZjJyZWFkLmMJMjAxNS0wMi0xMSAxNjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44 LjkwLjIwMTUwMjAyL2dkYi9kd2FyZjJyZWFkLmMJMjAxNS0wMi0xMSAxNjowMTo1OS42MDM5NjYz MTUgKzAxMDAKLUBAIC0xODk0LDEyICsxODk0LDEyIEBAIGR3YXJmMl9jb21wbGV4X2xvY2F0aW9u X2V4cHJfY29tcGxhaW50ICgKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2R3YXJm MnJlYWQuYwkyMDE1LTA1LTMxIDE3OjA4OjQ2LjgzMjUwNjMxNSArMDIwMAorKysrIGdkYi03Ljku NTAuMjAxNTA1MjAvZ2RiL2R3YXJmMnJlYWQuYwkyMDE1LTA1LTMxIDE3OjA5OjIxLjQ0NjcyNDc3 NyArMDIwMAorQEAgLTE5MDcsMTIgKzE5MDcsMTIgQEAgZHdhcmYyX2NvbXBsZXhfbG9jYXRpb25f ZXhwcl9jb21wbGFpbnQgKAogIH0KICAKICBzdGF0aWMgdm9pZApAQCAtMTgyOCw3ICsxODE4LDcg QEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2R3YXJmMnJlYWQuYwogIH0KICAKICBz dGF0aWMgdm9pZAotQEAgLTEyNDgzLDggKzEyNDgzLDggQEAgZHdhcmYyX2FkZF9maWVsZCAoc3Ry dWN0IGZpZWxkX2luZm8gKmZpcAorQEAgLTEyNTIxLDggKzEyNTIxLDggQEAgZHdhcmYyX2FkZF9m aWVsZCAoc3RydWN0IGZpZWxkX2luZm8gKmZpcAogIAkgICAgICAgICBvYmplY3QsIGFuZCB0aGVu IHN1YnRyYWN0IG9mZiB0aGUgbnVtYmVyIG9mIGJpdHMgb2YKICAJICAgICAgICAgdGhlIGZpZWxk IGl0c2VsZi4gIFRoZSByZXN1bHQgaXMgdGhlIGJpdCBvZmZzZXQgb2YKICAJICAgICAgICAgdGhl IExTQiBvZiB0aGUgZmllbGQuICAqLwpAQCAtMTgzOSwxMSArMTgyOSwxMSBAQCBJbmRleDogZ2Ri LTcuOC45MC4yMDE1MDIwMi9nZGIvZHdhcmYycmVhZC5jCiAgCiAgCSAgICAgIGF0dHIgPSBkd2Fy ZjJfYXR0ciAoZGllLCBEV19BVF9ieXRlX3NpemUsIGN1KTsKICAJICAgICAgaWYgKGF0dHIpCi1J bmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvZXZhbC5jCitJbmRleDogZ2RiLTcuOS41MC4y MDE1MDUyMC9nZGIvZXZhbC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5v cmlnL2dkYi9ldmFsLmMJMjAxNS0wMi0xMSAxNjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAKLSsrKyBn ZGItNy44LjkwLjIwMTUwMjAyL2dkYi9ldmFsLmMJMjAxNS0wMi0xMSAxNjowMTo1OS42MDQ5NjYz MjAgKzAxMDAKLUBAIC0zMTQsNyArMzE0LDggQEAgZXZhbHVhdGVfc3RydWN0X3R1cGxlIChzdHJ1 Y3QgdmFsdWUgKnN0cgorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvZXZhbC5jCTIw MTUtMDUtMzEgMTc6MDg6NDYuODM0NTA2MzI3ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUy MC9nZGIvZXZhbC5jCTIwMTUtMDUtMzEgMTc6MDk6MjEuNDQ3NzI0NzgzICswMjAwCitAQCAtMzE3 LDcgKzMxNyw4IEBAIGV2YWx1YXRlX3N0cnVjdF90dXBsZSAoc3RydWN0IHZhbHVlICpzdHIKICAg IHdoaWxlICgtLW5hcmdzID49IDApCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgdmFsdWUgKnZhbCA9 IE5VTEw7CkBAIC0xODUzLDcgKzE4NDMsNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9n ZGIvZXZhbC5jCiAgICAgICAgYmZkX2J5dGUgKmFkZHI7CiAgCiAgICAgICAgZmllbGRubysrOwot QEAgLTM3NSw3ICszNzYsNyBAQCBpbml0X2FycmF5X2VsZW1lbnQgKHN0cnVjdCB2YWx1ZSAqYXJy YXksCitAQCAtMzc4LDcgKzM3OSw3IEBAIGluaXRfYXJyYXlfZWxlbWVudCAoc3RydWN0IHZhbHVl ICphcnJheSwKICAJCSAgICBlbnVtIG5vc2lkZSBub3NpZGUsIExPTkdFU1QgbG93X2JvdW5kLCBM T05HRVNUIGhpZ2hfYm91bmQpCiAgewogICAgTE9OR0VTVCBpbmRleDsKQEAgLTE4NjIsNyArMTg1 Miw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9ldmFsLmMKICAKICAgIGlmIChl eHAtPmVsdHNbKnBvc10ub3Bjb2RlID09IEJJTk9QX0NPTU1BKQogICAgICB7Ci1AQCAtNTIyLDEx ICs1MjMsMTEgQEAgYmlub3BfcHJvbW90ZSAoY29uc3Qgc3RydWN0IGxhbmd1YWdlX2RlZgorQEAg LTUyNSwxMSArNTI2LDExIEBAIGJpbm9wX3Byb21vdGUgKGNvbnN0IHN0cnVjdCBsYW5ndWFnZV9k ZWYKICAgICAgLyogRklYTUU6IEFsc28gbWl4ZWQgaW50ZWdyYWwvYm9vbGVhbnMsIHdpdGggcmVz dWx0IGFuIGludGVnZXIuICAqLwogICAgICB7CiAgICAgICAgY29uc3Qgc3RydWN0IGJ1aWx0aW5f dHlwZSAqYnVpbHRpbiA9IGJ1aWx0aW5fdHlwZSAoZ2RiYXJjaCk7CkBAIC0xODc3LDcgKzE4Njcs NyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvZXZhbC5jCiAgICAgICAgaW50IHVu c2lnbmVkX29wZXJhdGlvbjsKICAKICAgICAgICAvKiBEZXRlcm1pbmUgdHlwZSBsZW5ndGggYW5k IHNpZ25lZG5lc3MgYWZ0ZXIgcHJvbW90aW9uIGZvcgotQEAgLTcwOSw3ICs3MTAsNyBAQCBldmFs dWF0ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICplCitAQCAtNzExLDcgKzcxMiw3IEBA IGV2YWx1YXRlX3N1YmV4cF9zdGFuZGFyZCAoc3RydWN0IHR5cGUgKmUKICAgIHN0cnVjdCB2YWx1 ZSAqKmFyZ3ZlYzsKICAgIGludCBjb2RlOwogICAgaW50IGl4OwpAQCAtMTg4Niw3ICsxODc2LDcg QEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2V2YWwuYwogICAgc3RydWN0IHR5cGUg KiphcmdfdHlwZXM7CiAgICBpbnQgc2F2ZV9wb3MxOwogICAgc3RydWN0IHN5bWJvbCAqZnVuY3Rp b24gPSBOVUxMOwotQEAgLTg4OCw3ICs4ODksNyBAQCBldmFsdWF0ZV9zdWJleHBfc3RhbmRhcmQg KHN0cnVjdCB0eXBlICplCitAQCAtODkwLDcgKzg5MSw3IEBAIGV2YWx1YXRlX3N1YmV4cF9zdGFu ZGFyZCAoc3RydWN0IHR5cGUgKmUKICAJICBzdHJ1Y3QgdHlwZSAqcmFuZ2VfdHlwZSA9IFRZUEVf SU5ERVhfVFlQRSAodHlwZSk7CiAgCSAgc3RydWN0IHR5cGUgKmVsZW1lbnRfdHlwZSA9IFRZUEVf VEFSR0VUX1RZUEUgKHR5cGUpOwogIAkgIHN0cnVjdCB2YWx1ZSAqYXJyYXkgPSBhbGxvY2F0ZV92 YWx1ZSAoZXhwZWN0X3R5cGUpOwpAQCAtMTg5NSw3ICsxODg1LDcgQEAgSW5kZXg6IGdkYi03Ljgu OTAuMjAxNTAyMDIvZ2RiL2V2YWwuYwogIAkgIExPTkdFU1QgbG93X2JvdW5kLCBoaWdoX2JvdW5k LCBpbmRleDsKICAKICAJICBpZiAoZ2V0X2Rpc2NyZXRlX2JvdW5kcyAocmFuZ2VfdHlwZSwgJmxv d19ib3VuZCwgJmhpZ2hfYm91bmQpIDwgMCkKLUBAIC0xODg3LDcgKzE4ODgsOCBAQCBldmFsdWF0 ZV9zdWJleHBfc3RhbmRhcmQgKHN0cnVjdCB0eXBlICplCitAQCAtMTkwMCw3ICsxOTAxLDggQEAg ZXZhbHVhdGVfc3ViZXhwX3N0YW5kYXJkIChzdHJ1Y3QgdHlwZSAqZQogICAgICAgIHsKICAgICAg ICAgIHN0cnVjdCB0eXBlICp0eXBlID0gdmFsdWVfdHlwZSAoYXJnMSk7CiAgICAgICAgICBzdHJ1 Y3QgdHlwZSAqcmVhbF90eXBlOwpAQCAtMTkwNSwxMCArMTg5NSwxMCBAQCBJbmRleDogZ2RiLTcu OC45MC4yMDE1MDIwMi9nZGIvZXZhbC5jCiAgCXN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zIG9w dHM7CiAgCiAgCWdldF91c2VyX3ByaW50X29wdGlvbnMgKCZvcHRzKTsKLUluZGV4OiBnZGItNy44 LjkwLjIwMTUwMjAyL2dkYi9mLWxhbmcuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2Ri L2YtbGFuZy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5vcmlnL2dkYi9m LWxhbmcuYwkyMDE1LTAyLTExIDE2OjAxOjUxLjM2NjkyNDYyNSArMDEwMAotKysrIGdkYi03Ljgu OTAuMjAxNTAyMDIvZ2RiL2YtbGFuZy5jCTIwMTUtMDItMTEgMTY6MDE6NTkuNjA0OTY2MzIwICsw MTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9mLWxhbmcuYwkyMDE1LTA1LTMx IDE3OjA4OjQ2LjgzNTUwNjMzNCArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2Yt bGFuZy5jCTIwMTUtMDUtMzEgMTc6MDk6MjEuNDQ4NzI0NzkwICswMjAwCiBAQCAtMTAzLDcgKzEw Myw3IEBAIGZfcHJpbnRjaGFyIChpbnQgYywgc3RydWN0IHR5cGUgKnR5cGUsIHMKICAKICBzdGF0 aWMgdm9pZApAQCAtMTkxOCwxMCArMTkwOCwxMCBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIw Mi9nZGIvZi1sYW5nLmMKICAJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpv cHRpb25zKQogIHsKICAgIGNvbnN0IGNoYXIgKnR5cGVfZW5jb2RpbmcgPSBmX2dldF9lbmNvZGlu ZyAodHlwZSk7Ci1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvZi1sYW5nLmgKK0luZGV4 OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9mLWxhbmcuaAogPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03 LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvZi1sYW5nLmgJMjAxNS0wMi0xMSAxNjowMTo1MS4zNjY5 MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9mLWxhbmcuaAkyMDE1LTAy LTExIDE2OjAxOjU5LjYwNDk2NjMyMCArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3Jp Zy9nZGIvZi1sYW5nLmgJMjAxNS0wNS0zMSAxNzowODo0Ni44MzU1MDYzMzQgKzAyMDAKKysrKyBn ZGItNy45LjUwLjIwMTUwNTIwL2dkYi9mLWxhbmcuaAkyMDE1LTA1LTMxIDE3OjA5OjIxLjQ0ODcy NDc5MCArMDIwMAogQEAgLTMwLDcgKzMwLDcgQEAgZXh0ZXJuIHZvaWQgZl9lcnJvciAoY2hhciAq KTsJLyogRGVmaW5lZAogIGV4dGVybiB2b2lkIGZfcHJpbnRfdHlwZSAoc3RydWN0IHR5cGUgKiwg Y29uc3QgY2hhciAqLCBzdHJ1Y3QgdWlfZmlsZSAqLCBpbnQsCiAgCQkJICBpbnQsIGNvbnN0IHN0 cnVjdCB0eXBlX3ByaW50X29wdGlvbnMgKik7CkBAIC0xOTMxLDEwICsxOTIxLDEwIEBAIEluZGV4 OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9mLWxhbmcuaAogIAkJCSBzdHJ1Y3QgdWlfZmlsZSAq LCBpbnQsCiAgCQkJIGNvbnN0IHN0cnVjdCB2YWx1ZSAqLAogIAkJCSBjb25zdCBzdHJ1Y3QgdmFs dWVfcHJpbnRfb3B0aW9ucyAqKTsKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9mLXZh bHByaW50LmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9mLXZhbHByaW50LmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMjAyLm9yaWcvZ2RiL2YtdmFscHJpbnQuYwky MDE1LTAyLTExIDE2OjAxOjUxLjM2NjkyNDYyNSArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAy MDIvZ2RiL2YtdmFscHJpbnQuYwkyMDE1LTAyLTExIDE2OjAxOjU5LjYwNDk2NjMyMCArMDEwMAor LS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvZi12YWxwcmludC5jCTIwMTUtMDUtMzEg MTc6MDg6NDYuODM1NTA2MzM0ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZi12 YWxwcmludC5jCTIwMTUtMDUtMzEgMTc6MDk6MjEuNDQ4NzI0NzkwICswMjAwCiBAQCAtMzgsNyAr MzgsNyBAQCBleHRlcm4gdm9pZCBfaW5pdGlhbGl6ZV9mX3ZhbHByaW50ICh2b2lkCiAgc3RhdGlj IHZvaWQgaW5mb19jb21tb25fY29tbWFuZCAoY2hhciAqLCBpbnQpOwogIHN0YXRpYyB2b2lkIGY3 N19nZXRfZHluYW1pY19sZW5ndGhfb2ZfYWdncmVnYXRlIChzdHJ1Y3QgdHlwZSAqKTsKQEAgLTE5 OTQsMTAgKzE5ODQsMTAgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2YtdmFscHJp bnQuYwogIAkgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqb3JpZ2luYWxfdmFsdWUsCiAgCSAgICAg Y29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMpCiAgewotSW5kZXg6IGdk Yi03LjguOTAuMjAxNTAyMDIvZ2RiL2ZpbmR2YXIuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1 MjAvZ2RiL2ZpbmR2YXIuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguOTAuMjAxNTAyMDIub3Jp Zy9nZGIvZmluZHZhci5jCTIwMTUtMDItMTEgMTY6MDE6NTEuMzY2OTI0NjI1ICswMTAwCi0rKysg Z2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvZmluZHZhci5jCTIwMTUtMDItMTEgMTY6MDE6NTkuNjA1 OTY2MzI1ICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9maW5kdmFyLmMJ MjAxNS0wNS0zMSAxNzowODo0Ni44MzY1MDYzNDAgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUw NTIwL2dkYi9maW5kdmFyLmMJMjAxNS0wNS0zMSAxNzowOToyMS40NDg3MjQ3OTAgKzAyMDAKIEBA IC02MjYsNyArNjI2LDcgQEAgc3RydWN0IHZhbHVlICoKICBkZWZhdWx0X3ZhbHVlX2Zyb21fcmVn aXN0ZXIgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZWdudW0sIHN0cnVjdCBmcmFtZV9pZCBmcmFt ZV9pZCkKQEAgLTIwMzAsMTEgKzIwMjAsMTEgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIv Z2RiL2ZpbmR2YXIuYwogIAogICAgICAgIC8qIElmIHRoZSByZWdpc3RlciBsZW5ndGggaXMgbGFy Z2VyIHRoYW4gdGhlIG51bWJlciBvZiBieXRlcwogICAgICAgICAgIHJlbWFpbmluZyB0byBjb3B5 LCB0aGVuIG9ubHkgY29weSB0aGUgYXBwcm9wcmlhdGUgYnl0ZXMuICAqLwotSW5kZXg6IGdkYi03 LjguOTAuMjAxNTAyMDIvZ2RiL2ZyYW1lLmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dk Yi9mcmFtZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5vcmlnL2dkYi9m cmFtZS5jCTIwMTUtMDItMTEgMTY6MDE6NTEuMzY2OTI0NjI1ICswMTAwCi0rKysgZ2RiLTcuOC45 MC4yMDE1MDIwMi9nZGIvZnJhbWUuYwkyMDE1LTAyLTExIDE2OjAxOjU5LjYwNTk2NjMyNSArMDEw MAotQEAgLTEyNjksNyArMTI2OSw3IEBAIGRlcHJlY2F0ZWRfZnJhbWVfcmVnaXN0ZXJfcmVhZCAo c3RydWN0IGYKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2ZyYW1lLmMJMjAxNS0w NS0zMSAxNzowODo0Ni44Mzc1MDYzNDYgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dk Yi9mcmFtZS5jCTIwMTUtMDUtMzEgMTc6MDk6MjEuNDQ5NzI0Nzk2ICswMjAwCitAQCAtMTI3Miw3 ICsxMjcyLDcgQEAgZGVwcmVjYXRlZF9mcmFtZV9yZWdpc3Rlcl9yZWFkIChzdHJ1Y3QgZgogIAog IGludAogIGdldF9mcmFtZV9yZWdpc3Rlcl9ieXRlcyAoc3RydWN0IGZyYW1lX2luZm8gKmZyYW1l LCBpbnQgcmVnbnVtLApAQCAtMjA0Myw3ICsyMDMzLDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAx NTAyMDIvZ2RiL2ZyYW1lLmMKICAJCQkgIGludCAqb3B0aW1pemVkcCwgaW50ICp1bmF2YWlsYWJs ZXApCiAgewogICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfZnJhbWVfYXJjaCAoZnJh bWUpOwotQEAgLTEyOTgsNyArMTI5OCw3IEBAIGdldF9mcmFtZV9yZWdpc3Rlcl9ieXRlcyAoc3Ry dWN0IGZyYW1lX2kKK0BAIC0xMzAxLDcgKzEzMDEsNyBAQCBnZXRfZnJhbWVfcmVnaXN0ZXJfYnl0 ZXMgKHN0cnVjdCBmcmFtZV9pCiAgICAgIH0KICAgIGlmIChsZW4gPiBtYXhzaXplKQogICAgICBl cnJvciAoXygiQmFkIGRlYnVnIGluZm9ybWF0aW9uIGRldGVjdGVkOiAiCkBAIC0yMDUyLDEwICsy MDQyLDEwIEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9mcmFtZS5jCiAgCiAgICAv KiBDb3B5IHRoZSBkYXRhLiAgKi8KICAgIHdoaWxlIChsZW4gPiAwKQotSW5kZXg6IGdkYi03Ljgu OTAuMjAxNTAyMDIvZ2RiL2ZyYW1lLmgKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9m cmFtZS5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5vcmlnL2dkYi9mcmFt ZS5oCTIwMTUtMDItMTEgMTY6MDE6NTEuMzY2OTI0NjI1ICswMTAwCi0rKysgZ2RiLTcuOC45MC4y MDE1MDIwMi9nZGIvZnJhbWUuaAkyMDE1LTAyLTExIDE2OjAxOjU5LjYwNjk2NjMzMCArMDEwMAor LS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvZnJhbWUuaAkyMDE1LTA1LTMxIDE3OjA4 OjQ2LjgzNzUwNjM0NiArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2ZyYW1lLmgJ MjAxNS0wNS0zMSAxNzowOToyMS40NTA3MjQ4MDIgKzAyMDAKIEBAIC01ODMsNyArNTgzLDcgQEAg ZXh0ZXJuIHZvaWQgcHV0X2ZyYW1lX3JlZ2lzdGVyIChzdHJ1Y3QgZgogICAgIGNvbnRlbnRzIGFy ZSBvcHRpbWl6ZWQgb3V0IG9yIHVuYXZhaWxhYmxlLCBzZXQgKk9QVElNSVpFRFAsCiAgICAgKlVO QVZBSUxBQkxFUCBhY2NvcmRpbmdseS4gICovCkBAIC0yMDY1LDExICsyMDU1LDExIEBAIEluZGV4 OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9mcmFtZS5oCiAgCQkJCSAgICAgZ2RiX2J5dGUgKm15 YWRkciwKICAJCQkJICAgICBpbnQgKm9wdGltaXplZHAsIGludCAqdW5hdmFpbGFibGVwKTsKICAK LUluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9nZGJ0eXBlcy5jCitJbmRleDogZ2RiLTcu OS41MC4yMDE1MDUyMC9nZGIvZ2RidHlwZXMuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguOTAu MjAxNTAyMDIub3JpZy9nZGIvZ2RidHlwZXMuYwkyMDE1LTAyLTExIDE2OjAxOjUxLjM2NjkyNDYy NSArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2dkYnR5cGVzLmMJMjAxNS0wMi0x MSAxNjowMTo1OS42MDc5NjYzMzUgKzAxMDAKLUBAIC0yNDc4LDcgKzI0NzgsNyBAQCBhbGxvY2F0 ZV9nbmF0X2F1eF90eXBlIChzdHJ1Y3QgdHlwZSAqdHlwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUy MC5vcmlnL2dkYi9nZGJ0eXBlcy5jCTIwMTUtMDUtMzEgMTc6MDg6NDYuODM5NTA2MzU5ICswMjAw CisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZ2RidHlwZXMuYwkyMDE1LTA1LTMxIDE3OjA5 OjIxLjQ1MTcyNDgwOSArMDIwMAorQEAgLTI2OTgsNyArMjY5OCw3IEBAIGFsbG9jYXRlX2duYXRf YXV4X3R5cGUgKHN0cnVjdCB0eXBlICp0eXAKICAgICBsZWFzdCBhcyBsb25nIGFzIE9CSkZJTEUu ICAqLwogIAogIHN0cnVjdCB0eXBlICoKQEAgLTIwNzgsNyArMjA2OCw3IEBAIEluZGV4OiBnZGIt Ny44LjkwLjIwMTUwMjAyL2dkYi9nZGJ0eXBlcy5jCiAgCSAgIGNvbnN0IGNoYXIgKm5hbWUsIHN0 cnVjdCBvYmpmaWxlICpvYmpmaWxlKQogIHsKICAgIHN0cnVjdCB0eXBlICp0eXBlOwotQEAgLTI3 MTgsOCArMjcxOCw4IEBAIGlzX3B1YmxpY19hbmNlc3RvciAoc3RydWN0IHR5cGUgKmJhc2UsIHMK K0BAIC0yOTM4LDggKzI5MzgsOCBAQCBpc19wdWJsaWNfYW5jZXN0b3IgKHN0cnVjdCB0eXBlICpi YXNlLCBzCiAgCiAgc3RhdGljIGludAogIGlzX3VuaXF1ZV9hbmNlc3Rvcl93b3JrZXIgKHN0cnVj dCB0eXBlICpiYXNlLCBzdHJ1Y3QgdHlwZSAqZGNsYXNzLApAQCAtMjA4OSw3ICsyMDc5LDcgQEAg SW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2dkYnR5cGVzLmMKICAJCQkgICBDT1JFX0FE RFIgYWRkcmVzcywgc3RydWN0IHZhbHVlICp2YWwpCiAgewogICAgaW50IGksIGNvdW50ID0gMDsK LUBAIC0yNzMwLDcgKzI3MzAsNyBAQCBpc191bmlxdWVfYW5jZXN0b3Jfd29ya2VyIChzdHJ1Y3Qg dHlwZSAqCitAQCAtMjk1MCw3ICsyOTUwLDcgQEAgaXNfdW5pcXVlX2FuY2VzdG9yX3dvcmtlciAo c3RydWN0IHR5cGUgKgogICAgZm9yIChpID0gMDsgaSA8IFRZUEVfTl9CQVNFQ0xBU1NFUyAoZGNs YXNzKSAmJiBjb3VudCA8IDI7ICsraSkKICAgICAgewogICAgICAgIHN0cnVjdCB0eXBlICppdGVy OwpAQCAtMjA5OCw3ICsyMDg4LDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2dk YnR5cGVzLmMKICAKICAgICAgICBpdGVyID0gY2hlY2tfdHlwZWRlZiAoVFlQRV9CQVNFQ0xBU1Mg KGRjbGFzcywgaSkpOwogIAotQEAgLTI3NzEsNyArMjc3MSw3IEBAIGlzX3VuaXF1ZV9hbmNlc3Rv cl93b3JrZXIgKHN0cnVjdCB0eXBlICoKK0BAIC0yOTkxLDcgKzI5OTEsNyBAQCBpc191bmlxdWVf YW5jZXN0b3Jfd29ya2VyIChzdHJ1Y3QgdHlwZSAqCiAgaW50CiAgaXNfdW5pcXVlX2FuY2VzdG9y IChzdHJ1Y3QgdHlwZSAqYmFzZSwgc3RydWN0IHZhbHVlICp2YWwpCiAgewpAQCAtMjEwNyw3ICsy MDk3LDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2dkYnR5cGVzLmMKICAKICAg IHJldHVybiBpc191bmlxdWVfYW5jZXN0b3Jfd29ya2VyIChiYXNlLCB2YWx1ZV90eXBlICh2YWwp LCAmb2Zmc2V0LAogIAkJCQkgICAgdmFsdWVfY29udGVudHNfZm9yX3ByaW50aW5nICh2YWwpLAot QEAgLTM5MTYsNyArMzkxNiw3IEBAIHJlY3Vyc2l2ZV9kdW1wX3R5cGUgKHN0cnVjdCB0eXBlICp0 eXBlLAorQEAgLTQxNTYsNyArNDE1Niw3IEBAIHJlY3Vyc2l2ZV9kdW1wX3R5cGUgKHN0cnVjdCB0 eXBlICp0eXBlLAogICAgICAgIGJyZWFrOwogICAgICB9CiAgICBwdXRzX2ZpbHRlcmVkICgiXG4i KTsKQEAgLTIxMTYsNyArMjEwNiw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9n ZGJ0eXBlcy5jCiAgICBpZiAoVFlQRV9PQkpGSUxFX09XTkVEICh0eXBlKSkKICAgICAgewogICAg ICAgIHByaW50ZmlfZmlsdGVyZWQgKHNwYWNlcywgIm9iamZpbGUgIik7Ci1AQCAtNDA0MCw4ICs0 MDQwLDggQEAgcmVjdXJzaXZlX2R1bXBfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUsCitAQCAtNDI4 NCw4ICs0Mjg0LDggQEAgcmVjdXJzaXZlX2R1bXBfdHlwZSAoc3RydWN0IHR5cGUgKnR5cGUsCiAg CQkJICBpZHgsIHBsb25nZXN0IChUWVBFX0ZJRUxEX0VOVU1WQUwgKHR5cGUsIGlkeCkpKTsKICAg ICAgICBlbHNlCiAgCXByaW50ZmlfZmlsdGVyZWQgKHNwYWNlcyArIDIsCkBAIC0yMTI3LDcgKzIx MTcsNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvZ2RidHlwZXMuYwogIAkJCSAg VFlQRV9GSUVMRF9CSVRTSVpFICh0eXBlLCBpZHgpKTsKICAgICAgICBnZGJfcHJpbnRfaG9zdF9h ZGRyZXNzIChUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIGlkeCksIGdkYl9zdGRvdXQpOwogICAgICAg IHByaW50Zl9maWx0ZXJlZCAoIiBuYW1lICclcycgKCIsCi1AQCAtNDM5OCw3ICs0Mzk4LDcgQEAg Y29weV90eXBlIChjb25zdCBzdHJ1Y3QgdHlwZSAqdHlwZSkKK0BAIC00NjY2LDcgKzQ2NjYsNyBA QCBjb3B5X3R5cGUgKGNvbnN0IHN0cnVjdCB0eXBlICp0eXBlKQogIAogIHN0cnVjdCB0eXBlICoK ICBhcmNoX3R5cGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLApAQCAtMjEzNiwyMCArMjEyNiwy MCBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvZ2RidHlwZXMuYwogIHsKICAgIHN0 cnVjdCB0eXBlICp0eXBlOwogIAotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2dkYnR5 cGVzLmgKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9nZGJ0eXBlcy5oCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5vcmlnL2dkYi9nZGJ0eXBlcy5oCTIwMTUtMDIt MTEgMTY6MDE6NTEuMzY2OTI0NjI1ICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIv Z2RidHlwZXMuaAkyMDE1LTAyLTExIDE2OjAxOjU5LjYwODk2NjM0MCArMDEwMAotQEAgLTU5OCw3 ICs1OTgsNyBAQCBzdHJ1Y3QgbWFpbl90eXBlCi0gCSAgIGdkYmFyY2hfYml0c19iaWdfZW5kaWFu PTAgdGFyZ2V0cywgaXQgaXMgdGhlIGJpdCBvZmZzZXQgdG8KLSAJICAgdGhlIExTQi4gICovCi0g Ci0tCWludCBiaXRwb3M7Ci0rCUxPTkdFU1QgYml0cG9zOwotIAotIAkvKiAqIEVudW0gdmFsdWUu ICAqLwotIAlMT05HRVNUIGVudW12YWw7Ci1AQCAtODAxLDcgKzgwMSw3IEBAIHN0cnVjdCB0eXBl CistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9nZGJ0eXBlcy5oCTIwMTUtMDUtMzEg MTc6MDg6NDYuODQwNTA2MzY1ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZ2Ri dHlwZXMuaAkyMDE1LTA1LTMxIDE3OjEzOjE2LjI5NDIwNjk3NyArMDIwMAorQEAgLTUwNCw3ICs1 MDQsNyBAQCB1bmlvbiBmaWVsZF9sb2NhdGlvbgorICAgICAgZ2RiYXJjaF9iaXRzX2JpZ19lbmRp YW49MCB0YXJnZXRzLCBpdCBpcyB0aGUgYml0IG9mZnNldCB0bworICAgICAgdGhlIExTQi4gICov CisgCistICBpbnQgYml0cG9zOworKyAgTE9OR0VTVCBiaXRwb3M7CisgCisgICAvKiAqIEVudW0g dmFsdWUuICAqLworICAgTE9OR0VTVCBlbnVtdmFsOworQEAgLTgyMiw3ICs4MjIsNyBAQCBzdHJ1 Y3QgdHlwZQogICAgICAgSE9TVF9DSEFSX0JJVC4gIEhvd2V2ZXIsIHRoaXMgd291bGQgc3RpbGwg ZmFpbCB0byBhZGRyZXNzCiAgICAgICBtYWNoaW5lcyBiYXNlZCBvbiBhIHRlcm5hcnkgb3IgZGVj aW1hbCByZXByZXNlbnRhdGlvbi4gICovCiAgICAKQEAgLTIxNTgsNyArMjE0OCw3IEBAIEluZGV4 OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9nZGJ0eXBlcy5oCiAgCiAgICAvKiAqIENvcmUgdHlw ZSwgc2hhcmVkIGJ5IGEgZ3JvdXAgb2YgcXVhbGlmaWVkIHR5cGVzLiAgKi8KICAKLUBAIC0xNjQx LDExICsxNjQxLDEyIEBAIGV4dGVybiBzdHJ1Y3QgdHlwZSAqZ2V0X3RhcmdldF90eXBlIChzdHIK K0BAIC0xNzA4LDExICsxNzA4LDEyIEBAIGV4dGVybiBzdHJ1Y3QgdHlwZSAqZ2V0X3RhcmdldF90 eXBlIChzdHIKICAKICAvKiAqIEhlbHBlciBmdW5jdGlvbiB0byBjb25zdHJ1Y3Qgb2JqZmlsZS1v d25lZCB0eXBlcy4gICovCiAgCkBAIC0yMTczLDEwICsyMTYzLDEwIEBAIEluZGV4OiBnZGItNy44 LjkwLjIwMTUwMjAyL2dkYi9nZGJ0eXBlcy5oCiAgZXh0ZXJuIHN0cnVjdCB0eXBlICphcmNoX2lu dGVnZXJfdHlwZSAoc3RydWN0IGdkYmFyY2ggKiwgaW50LCBpbnQsIGNoYXIgKik7CiAgZXh0ZXJu IHN0cnVjdCB0eXBlICphcmNoX2NoYXJhY3Rlcl90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqLCBpbnQs IGludCwgY2hhciAqKTsKICBleHRlcm4gc3RydWN0IHR5cGUgKmFyY2hfYm9vbGVhbl90eXBlIChz dHJ1Y3QgZ2RiYXJjaCAqLCBpbnQsIGludCwgY2hhciAqKTsKLUluZGV4OiBnZGItNy44LjkwLjIw MTUwMjAyL2dkYi9nbnUtdjItYWJpLmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9n bnUtdjItYWJpLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMjAyLm9yaWcvZ2Ri L2dudS12Mi1hYmkuYwkyMDE1LTAyLTExIDE2OjAxOjUxLjM2NjkyNDYyNSArMDEwMAotKysrIGdk Yi03LjguOTAuMjAxNTAyMDIvZ2RiL2dudS12Mi1hYmkuYwkyMDE1LTAyLTExIDE2OjAxOjU5LjYw ODk2NjM0MCArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvZ251LXYyLWFi aS5jCTIwMTUtMDUtMzEgMTc6MDg6NDYuODQwNTA2MzY1ICswMjAwCisrKysgZ2RiLTcuOS41MC4y MDE1MDUyMC9nZGIvZ251LXYyLWFiaS5jCTIwMTUtMDUtMzEgMTc6MDk6MjEuNDUyNzI0ODE1ICsw MjAwCiBAQCAtODIsNyArODIsNyBAQCBnbnV2Ml9pc19vcGVyYXRvcl9uYW1lIChjb25zdCBjaGFy ICpuYW1lCiAgICAgVFlQRSBpcyB0aGUgdHlwZSBpbiB3aGljaCBGIGlzIGxvY2F0ZWQuICAqLwog IHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKgpAQCAtMjIyOCwxMCArMjIxOCwxMCBAQCBJbmRleDogZ2Ri LTcuOC45MC4yMDE1MDIwMi9nZGIvZ251LXYyLWFiaS5jCiAgCSAgICBnbnV2Ml9iYXNlY2xhc3Nf b2Zmc2V0ICh0eXBlLCBpLCB2YWxhZGRyLAogIAkJCQkgICAgZW1iZWRkZWRfb2Zmc2V0LCBhZGRy ZXNzLCB2YWwpOwogIAotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2dudS12My1hYmku YworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2dudS12My1hYmkuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvZ251LXYzLWFiaS5jCTIwMTUtMDIt MTEgMTY6MDE6NTEuMzY2OTI0NjI1ICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIv Z251LXYzLWFiaS5jCTIwMTUtMDItMTEgMTY6MDE6NTkuNjA4OTY2MzQwICswMTAwCistLS0gZ2Ri LTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9nbnUtdjMtYWJpLmMJMjAxNS0wNS0zMSAxNzowODo0 Ni44NDE1MDYzNzEgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9nbnUtdjMtYWJp LmMJMjAxNS0wNS0zMSAxNzowOToyMS40NTM3MjQ4MjEgKzAyMDAKIEBAIC0xMDgsNyArMTA4LDcg QEAgYnVpbGRfZ2RiX3Z0YWJsZV90eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqYQogIHsKICAgIHN0cnVj dCB0eXBlICp0OwpAQCAtMjI1MCw3ICsyMjQwLDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAy MDIvZ2RiL2dudS12My1hYmkuYwogIHZ0YWJsZV9hZGRyZXNzX3BvaW50X29mZnNldCAoc3RydWN0 IGdkYmFyY2ggKmdkYmFyY2gpCiAgewogICAgc3RydWN0IHR5cGUgKnZ0YWJsZV90eXBlID0gZ2Ri YXJjaF9kYXRhIChnZGJhcmNoLCB2dGFibGVfdHlwZV9nZGJhcmNoX2RhdGEpOwotQEAgLTI3NSw3 ICsyNzUsNyBAQCBnbnV2M19nZXRfdnRhYmxlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjCitAQCAt Mjg1LDcgKzI4NSw3IEBAIGdudXYzX2dldF92dGFibGUgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmMK ICAKICBzdGF0aWMgc3RydWN0IHR5cGUgKgogIGdudXYzX3J0dGlfdHlwZSAoc3RydWN0IHZhbHVl ICp2YWx1ZSwKQEAgLTIyNTksNyArMjI0OSw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAy L2dkYi9nbnUtdjMtYWJpLmMKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaDsKICAgIHN0 cnVjdCB0eXBlICp2YWx1ZXNfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUgKHZhbHVl KSk7Ci1AQCAtNDAwLDcgKzQwMCw3IEBAIGdudXYzX2dldF92aXJ0dWFsX2ZuIChzdHJ1Y3QgZ2Ri YXJjaCAqZ2QKK0BAIC00MTAsNyArNDEwLDcgQEAgZ251djNfZ2V0X3ZpcnR1YWxfZm4gKHN0cnVj dCBnZGJhcmNoICpnZAogIHN0YXRpYyBzdHJ1Y3QgdmFsdWUgKgogIGdudXYzX3ZpcnR1YWxfZm5f ZmllbGQgKHN0cnVjdCB2YWx1ZSAqKnZhbHVlX3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAg c3RydWN0IGZuX2ZpZWxkICpmLCBpbnQgaiwKQEAgLTIyNjgsNyArMjI1OCw3IEBAIEluZGV4OiBn ZGItNy44LjkwLjIwMTUwMjAyL2dkYi9nbnUtdjMtYWJpLmMKICB7CiAgICBzdHJ1Y3QgdHlwZSAq dmFsdWVzX3R5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlICgqdmFsdWVfcCkpOwogICAg c3RydWN0IGdkYmFyY2ggKmdkYmFyY2g7Ci1AQCAtNDMwLDE2ICs0MzAsMTYgQEAgZ251djNfdmly dHVhbF9mbl9maWVsZCAoc3RydWN0IHZhbHVlICoqdgorQEAgLTQ0MCwxNiArNDQwLDE2IEBAIGdu dXYzX3ZpcnR1YWxfZm5fZmllbGQgKHN0cnVjdCB2YWx1ZSAqKnYKICAKICAgICAtMSBpcyByZXR1 cm5lZCBvbiBlcnJvci4gICovCiAgCkBAIC0yMjg4LDcgKzIyNzgsNyBAQCBJbmRleDogZ2RiLTcu OC45MC4yMDE1MDIwMi9nZGIvZ251LXYzLWFiaS5jCiAgCiAgICAvKiBEZXRlcm1pbmUgYXJjaGl0 ZWN0dXJlLiAgKi8KICAgIGdkYmFyY2ggPSBnZXRfdHlwZV9hcmNoICh0eXBlKTsKLUBAIC00NjMs NyArNDYzLDcgQEAgZ251djNfYmFzZWNsYXNzX29mZnNldCAoc3RydWN0IHR5cGUgKnR5cAorQEAg LTQ3Myw3ICs0NzMsNyBAQCBnbnV2M19iYXNlY2xhc3Nfb2Zmc2V0IChzdHJ1Y3QgdHlwZSAqdHlw CiAgICBjdXJfYmFzZV9vZmZzZXQgPSBjdXJfYmFzZV9vZmZzZXQgKyB2dGFibGVfYWRkcmVzc19w b2ludF9vZmZzZXQgKGdkYmFyY2gpOwogICAgaWYgKCgtIGN1cl9iYXNlX29mZnNldCkgJSBUWVBF X0xFTkdUSCAocHRyX3R5cGUpICE9IDApCiAgICAgIGVycm9yIChfKCJNaXNhbGlnbmVkIHZiYXNl IG9mZnNldC4iKSk7CkBAIC0yMjk3LDcgKzIyODcsNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1 MDIwMi9nZGIvZ251LXYzLWFiaS5jCiAgCiAgICB2dGFibGUgPSBnbnV2M19nZXRfdnRhYmxlIChn ZGJhcmNoLCB0eXBlLCBhZGRyZXNzICsgZW1iZWRkZWRfb2Zmc2V0KTsKICAgIGdkYl9hc3NlcnQg KHZ0YWJsZSAhPSBOVUxMKTsKLUBAIC01MDcsNyArNTA3LDcgQEAgZ251djNfZmluZF9tZXRob2Rf aW4gKHN0cnVjdCB0eXBlICpkb21haQorQEAgLTUxNyw3ICs1MTcsNyBAQCBnbnV2M19maW5kX21l dGhvZF9pbiAoc3RydWN0IHR5cGUgKmRvbWFpCiAgICAgICB3ZSdyZSBvdXQgb2YgbHVjay4gICov CiAgICBmb3IgKGkgPSAwOyBpIDwgVFlQRV9OX0JBU0VDTEFTU0VTIChkb21haW4pOyBpKyspCiAg ICAgIHsKQEAgLTIzMDYsMTAgKzIyOTYsMTAgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIv Z2RiL2dudS12My1hYmkuYwogICAgICAgIHN0cnVjdCB0eXBlICpiYXNldHlwZTsKICAKICAgICAg ICBpZiAoQkFTRVRZUEVfVklBX1ZJUlRVQUwgKGRvbWFpbiwgaSkpCi1JbmRleDogZ2RiLTcuOC45 MC4yMDE1MDIwMi9nZGIvZ28tbGFuZy5oCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv Z28tbGFuZy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5vcmlnL2dkYi9n by1sYW5nLmgJMjAxNS0wMi0xMSAxNjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44 LjkwLjIwMTUwMjAyL2dkYi9nby1sYW5nLmgJMjAxNS0wMi0xMSAxNjowMTo1OS42MDg5NjYzNDAg KzAxMDAKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2dvLWxhbmcuaAkyMDE1LTA1 LTMxIDE3OjA4OjQ2Ljg0MTUwNjM3MSArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2Ri L2dvLWxhbmcuaAkyMDE1LTA1LTMxIDE3OjA5OjIxLjQ1MzcyNDgyMSArMDIwMAogQEAgLTg1LDcg Kzg1LDcgQEAgZXh0ZXJuIHZvaWQgZ29fcHJpbnRfdHlwZSAoc3RydWN0IHR5cGUgKgogIC8qIERl ZmluZWQgaW4gZ28tdmFscHJpbnQuYy4gICovCiAgCkBAIC0yMzE5LDEwICsyMzA5LDEwIEBAIElu ZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9nby1sYW5nLmgKICAJCQkgIHN0cnVjdCB1aV9m aWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkJCSAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWws CiAgCQkJICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqb3B0aW9ucyk7Ci1JbmRl eDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvZ28tdmFscHJpbnQuYworSW5kZXg6IGdkYi03Ljku NTAuMjAxNTA1MjAvZ2RiL2dvLXZhbHByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44Ljkw LjIwMTUwMjAyLm9yaWcvZ2RiL2dvLXZhbHByaW50LmMJMjAxNS0wMi0xMSAxNjowMTo1MS4zNjY5 MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9nby12YWxwcmludC5jCTIw MTUtMDItMTEgMTY6MDE6NTkuNjA5OTY2MzQ1ICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUy MC5vcmlnL2dkYi9nby12YWxwcmludC5jCTIwMTUtMDUtMzEgMTc6MDg6NDYuODQyNTA2Mzc4ICsw MjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZ28tdmFscHJpbnQuYwkyMDE1LTA1LTMx IDE3OjA5OjIxLjQ1MzcyNDgyMSArMDIwMAogQEAgLTM3LDcgKzM3LDcgQEAKICAKICBzdGF0aWMg dm9pZApAQCAtMjM0NSwyMyArMjMzNSwxMCBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9n ZGIvZ28tdmFscHJpbnQuYwogIAkgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9u cyAqb3B0aW9ucykKICB7CiAgICBDSEVDS19UWVBFREVGICh0eXBlKTsKLUluZGV4OiBnZGItNy44 LjkwLjIwMTUwMjAyL2dkYi9pbmYtdHRyYWNlLmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIw L2dkYi9qdi1sYW5nLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMjAyLm9yaWcv Z2RiL2luZi10dHJhY2UuYwkyMDE1LTAyLTExIDE2OjAxOjUxLjM2NjkyNDYyNSArMDEwMAotKysr IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2luZi10dHJhY2UuYwkyMDE1LTAyLTExIDE2OjAxOjU5 LjYwOTk2NjM0NSArMDEwMAotQEAgLTM2Niw3ICszNjYsNyBAQCBpbmZfdHRyYWNlX2Nhbl91c2Vf aHdfYnJlYWtwb2ludCAoc3RydWN0Ci0gCi0gc3RhdGljIGludAotIGluZl90dHJhY2VfcmVnaW9u X29rX2Zvcl9od193YXRjaHBvaW50IChzdHJ1Y3QgdGFyZ2V0X29wcyAqc2VsZiwKLS0JCQkJCUNP UkVfQUREUiBhZGRyLCBpbnQgbGVuKQotKwkJCQkJQ09SRV9BRERSIGFkZHIsIExPTkdFU1QgbGVu KQotIHsKLSAgIHJldHVybiAxOwotIH0KLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9q di1sYW5nLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMjAyLm9yaWcvZ2RiL2p2 LWxhbmcuYwkyMDE1LTAyLTExIDE2OjAxOjUxLjM2NjkyNDYyNSArMDEwMAotKysrIGdkYi03Ljgu OTAuMjAxNTAyMDIvZ2RiL2p2LWxhbmcuYwkyMDE1LTAyLTExIDE2OjAxOjU5LjYwOTk2NjM0NSAr MDEwMAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvanYtbGFuZy5jCTIwMTUtMDUt MzEgMTc6MDg6NDYuODQyNTA2Mzc4ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv anYtbGFuZy5jCTIwMTUtMDUtMzEgMTc6MDk6MjEuNDU0NzI0ODI4ICswMjAwCiBAQCAtNDM2LDcg KzQzNiw3IEBAIGphdmFfbGlua19jbGFzc190eXBlIChzdHJ1Y3QgZ2RiYXJjaCAqZ2QKICAgIGZv ciAoaSA9IFRZUEVfTl9CQVNFQ0xBU1NFUyAodHlwZSk7IGkgPCBuZmllbGRzOyBpKyspCiAgICAg IHsKQEAgLTIzODAsMTAgKzIzNTcsMTAgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2Ri L2p2LWxhbmcuYwogIAkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9w dGlvbnMpCiAgewogICAgY29uc3QgY2hhciAqdHlwZV9lbmNvZGluZyA9IGphdmFfZ2V0X2VuY29k aW5nICh0eXBlKTsKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9qdi1sYW5nLmgKK0lu ZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9qdi1sYW5nLmgKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy44LjkwLjIwMTUwMjAyLm9yaWcvZ2RiL2p2LWxhbmcuaAkyMDE1LTAyLTExIDE2OjAxOjUx LjM2NjkyNDYyNSArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2p2LWxhbmcuaAky MDE1LTAyLTExIDE2OjAxOjU5LjYxMDk2NjM1MCArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAxNTA1 MjAub3JpZy9nZGIvanYtbGFuZy5oCTIwMTUtMDUtMzEgMTc6MDg6NDYuODQyNTA2Mzc4ICswMjAw CisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvanYtbGFuZy5oCTIwMTUtMDUtMzEgMTc6MDk6 MjEuNDU0NzI0ODI4ICswMjAwCiBAQCAtNDMsOCArNDMsOCBAQCBzdHJ1Y3QgYnVpbHRpbl9qYXZh X3R5cGUKICAKICBleHRlcm4gY29uc3Qgc3RydWN0IGJ1aWx0aW5famF2YV90eXBlICpidWlsdGlu X2phdmFfdHlwZSAoc3RydWN0IGdkYmFyY2ggKik7CkBAIC0yMzk1LDEwICsyMzcyLDEwIEBAIElu ZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9qdi1sYW5nLmgKICAJCQkgICAgY29uc3Qgc3Ry dWN0IHZhbHVlICosCiAgCQkJICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICop OwogIAotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2p2LXZhbHByaW50LmMKK0luZGV4 OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9qdi12YWxwcmludC5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuOC45MC4yMDE1MDIwMi5vcmlnL2dkYi9qdi12YWxwcmludC5jCTIwMTUtMDItMTEgMTY6 MDE6NTEuMzY2OTI0NjI1ICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvanYtdmFs cHJpbnQuYwkyMDE1LTAyLTExIDE2OjAxOjU5LjYxMDk2NjM1MCArMDEwMAorLS0tIGdkYi03Ljku NTAuMjAxNTA1MjAub3JpZy9nZGIvanYtdmFscHJpbnQuYwkyMDE1LTA1LTMxIDE3OjA4OjQ2Ljg0 MzUwNjM4NCArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2p2LXZhbHByaW50LmMJ MjAxNS0wNS0zMSAxNzowOToyMS40NTQ3MjQ4MjggKzAyMDAKIEBAIC0yNjUsNyArMjY1LDcgQEAg amF2YV92YWx1ZV9wcmludCAoc3RydWN0IHZhbHVlICp2YWwsIHN0cgogIAogIHN0YXRpYyB2b2lk CkBAIC0yNDE3LDEwICsyMzk0LDEwIEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9q di12YWxwcmludC5jCiAgCQlzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJ CWNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29w dGlvbnMgKm9wdGlvbnMpCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvbGFuZ3VhZ2Uu YworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2xhbmd1YWdlLmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy44LjkwLjIwMTUwMjAyLm9yaWcvZ2RiL2xhbmd1YWdlLmMJMjAxNS0wMi0xMSAx NjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9sYW5n dWFnZS5jCTIwMTUtMDItMTEgMTY6MDE6NTkuNjEwOTY2MzUwICswMTAwCistLS0gZ2RiLTcuOS41 MC4yMDE1MDUyMC5vcmlnL2dkYi9sYW5ndWFnZS5jCTIwMTUtMDUtMzEgMTc6MDg6NDYuODQzNTA2 Mzg0ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvbGFuZ3VhZ2UuYwkyMDE1LTA1 LTMxIDE3OjA5OjIxLjQ1NDcyNDgyOCArMDIwMAogQEAgLTcyMCw3ICs3MjAsNyBAQCB1bmtfbGFu Z19wcmludGNoYXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAqCiAgCiAgc3RhdGljIHZvaWQKQEAgLTI0 MzksMTAgKzI0MTYsMTAgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2xhbmd1YWdl LmMKICAJCSAgICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJCSAgICBj b25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRf b3B0aW9ucyAqb3B0aW9ucykKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9sYW5ndWFn ZS5oCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvbGFuZ3VhZ2UuaAogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvbGFuZ3VhZ2UuaAkyMDE1LTAyLTEx IDE2OjAxOjUxLjM2NjkyNDYyNSArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2xh bmd1YWdlLmgJMjAxNS0wMi0xMSAxNjowMTo1OS42MTE5NjYzNTUgKzAxMDAKKy0tLSBnZGItNy45 LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2xhbmd1YWdlLmgJMjAxNS0wNS0zMSAxNzowODo0Ni44NDQ1 MDYzOTAgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9sYW5ndWFnZS5oCTIwMTUt MDUtMzEgMTc6MDk6MjEuNDU1NzI0ODM0ICswMjAwCiBAQCAtMTg5LDcgKzE4OSw3IEBAIHN0cnVj dCBsYW5ndWFnZV9kZWZuCiAgCQkJICBzdHJ1Y3QgdWlfZmlsZSAqIHN0cmVhbSk7CiAgCkBAIC0y NDYxLDEwICsyNDM4LDEwIEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9sYW5ndWFn ZS5oCiAgCQkJICBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLCBpbnQgcmVjdXJzZSwKICAJCQkgIGNv bnN0IHN0cnVjdCB2YWx1ZSAqdmFsLAogIAkJCSAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29w dGlvbnMgKm9wdGlvbnMpOwotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL20yLWxhbmcu YworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL20yLWxhbmcuYwogPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGdkYi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvbTItbGFuZy5jCTIwMTUtMDItMTEgMTY6 MDE6NTEuMzY2OTI0NjI1ICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvbTItbGFu Zy5jCTIwMTUtMDItMTEgMTY6MDE6NTkuNjExOTY2MzU1ICswMTAwCistLS0gZ2RiLTcuOS41MC4y MDE1MDUyMC5vcmlnL2dkYi9tMi1sYW5nLmMJMjAxNS0wNS0zMSAxNzowODo0Ni44NDQ1MDYzOTAg KzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9tMi1sYW5nLmMJMjAxNS0wNS0zMSAx NzowOToyMS40NTU3MjQ4MzQgKzAyMDAKIEBAIC0xMDQsMTAgKzEwNCwxMCBAQCBtMl9wcmludGNo YXIgKGludCBjLCBzdHJ1Y3QgdHlwZSAqdHlwZSwKICAKICBzdGF0aWMgdm9pZApAQCAtMjQ5OSwx MCArMjQ3NiwxMCBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvbTItbGFuZy5jCiAg CSAgaSA9IHJlcDEgLSAxOwogIAkgIHRoaW5nc19wcmludGVkICs9IG9wdGlvbnMtPnJlcGVhdF9j b3VudF90aHJlc2hvbGQ7CiAgCSAgbmVlZF9jb21tYSA9IDE7Ci1JbmRleDogZ2RiLTcuOC45MC4y MDE1MDIwMi9nZGIvbTItbGFuZy5oCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvbTIt bGFuZy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5vcmlnL2dkYi9tMi1s YW5nLmgJMjAxNS0wMi0xMSAxNjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44Ljkw LjIwMTUwMjAyL2dkYi9tMi1sYW5nLmgJMjAxNS0wMi0xMSAxNjowMTo1OS42MTE5NjYzNTUgKzAx MDAKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL20yLWxhbmcuaAkyMDE1LTA1LTMx IDE3OjA4OjQ2Ljg0NDUwNjM5MCArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL20y LWxhbmcuaAkyMDE1LTA1LTMxIDE3OjA5OjIxLjQ1NTcyNDgzNCArMDIwMAogQEAgLTM0LDcgKzM0 LDcgQEAgZXh0ZXJuIHZvaWQgbTJfcHJpbnRfdHlwZWRlZiAoc3RydWN0IHR5cAogIGV4dGVybiBp bnQgbTJfaXNfbG9uZ19zZXQgKHN0cnVjdCB0eXBlICp0eXBlKTsKICBleHRlcm4gaW50IG0yX2lz X3VuYm91bmRlZF9hcnJheSAoc3RydWN0IHR5cGUgKnR5cGUpOwpAQCAtMjUxMiwxMSArMjQ4OSwx MSBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvbTItbGFuZy5oCiAgCQkJICBzdHJ1 Y3QgdWlfZmlsZSAqLCBpbnQsCiAgCQkJICBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwKICAJCQkgIGNv bnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICopOwotSW5kZXg6IGdkYi03LjguOTAuMjAx NTAyMDIvZ2RiL20yLXR5cGVwcmludC5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv bTItdHlwZXByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMjAyLm9yaWcv Z2RiL20yLXR5cGVwcmludC5jCTIwMTUtMDItMTEgMTY6MDE6NTEuMzY2OTI0NjI1ICswMTAwCi0r KysgZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvbTItdHlwZXByaW50LmMJMjAxNS0wMi0xMSAxNjow MTo1OS42MTE5NjYzNTUgKzAxMDAKLUBAIC0yMzAsOSArMjMwLDEyIEBAIHN0YXRpYyB2b2lkIG0y X2FycmF5IChzdHJ1Y3QgdHlwZSAqdHlwZSwKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcv Z2RiL20yLXR5cGVwcmludC5jCTIwMTUtMDUtMzEgMTc6MDg6NDYuODQ0NTA2MzkwICswMjAwCisr KysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvbTItdHlwZXByaW50LmMJMjAxNS0wNS0zMSAxNzow OToyMS40NTU3MjQ4MzQgKzAyMDAKK0BAIC0yMzQsOSArMjM0LDEyIEBAIHN0YXRpYyB2b2lkIG0y X2FycmF5IChzdHJ1Y3QgdHlwZSAqdHlwZSwKICAJICBtMl9wcmludF9ib3VuZHMgKFRZUEVfSU5E RVhfVFlQRSAodHlwZSksIHN0cmVhbSwgc2hvdywgLTEsIDEpOwogIAl9CiAgICAgICAgZWxzZQpA QCAtMjUzMiwxMCArMjUwOSwxMCBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvbTIt dHlwZXByaW50LmMKICAgICAgfQogICAgZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiXSBPRiAi KTsKICAgIG0yX3ByaW50X3R5cGUgKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpLCAiIiwgc3RyZWFt LCBzaG93LCBsZXZlbCwgZmxhZ3MpOwotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL20y LXZhbHByaW50LmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9tMi12YWxwcmludC5j CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5vcmlnL2dkYi9tMi12YWxwcmlu dC5jCTIwMTUtMDItMTEgMTY6MDE6NTEuMzY2OTI0NjI1ICswMTAwCi0rKysgZ2RiLTcuOC45MC4y MDE1MDIwMi9nZGIvbTItdmFscHJpbnQuYwkyMDE1LTAyLTExIDE2OjAxOjU5LjYxMjk2NjM2MCAr MDEwMAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvbTItdmFscHJpbnQuYwkyMDE1 LTA1LTMxIDE3OjA4OjQ2Ljg0NTUwNjM5NyArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAv Z2RiL20yLXZhbHByaW50LmMJMjAxNS0wNS0zMSAxNzowOToyMS40NTY3MjQ4NDAgKzAyMDAKIEBA IC0zNSw3ICszNSw3IEBAIHN0YXRpYyBpbnQgcHJpbnRfdW5wYWNrZWRfcG9pbnRlciAoc3RydWMK ICAJCQkJICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSk7CiAgc3RhdGljIHZvaWQKQEAgLTI2MDEs MTAgKzI1NzgsMTAgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL20yLXZhbHByaW50 LmMKICAKICAJCSAgLyogTG9vayBmb3IgYSBOVUxMIGNoYXIuICAqLwogIAkJICBmb3IgKHRlbXBf bGVuID0gMDsKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9tZW1yYW5nZS5jCitJbmRl eDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvbWVtcmFuZ2UuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvbWVtcmFuZ2UuYwkyMDE1LTAyLTExIDE2OjAxOjUx LjM2NjkyNDYyNSArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL21lbXJhbmdlLmMJ MjAxNS0wMi0xMSAxNjowMTo1OS42MTI5NjYzNjAgKzAxMDAKKy0tLSBnZGItNy45LjUwLjIwMTUw NTIwLm9yaWcvZ2RiL21lbXJhbmdlLmMJMjAxNS0wNS0zMSAxNzowODo0Ni44NDU1MDYzOTcgKzAy MDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9tZW1yYW5nZS5jCTIwMTUtMDUtMzEgMTc6 MDk6MjEuNDU2NzI0ODQwICswMjAwCiBAQCAtMjEsOCArMjEsOCBAQAogICNpbmNsdWRlICJtZW1y YW5nZS5oIgogIApAQCAtMjYxNiwxMCArMjU5MywxMCBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1 MDIwMi9nZGIvbWVtcmFuZ2UuYwogIHsKICAgIFVMT05HRVNUIGgsIGw7CiAgCi1JbmRleDogZ2Ri LTcuOC45MC4yMDE1MDIwMi9nZGIvbWVtcmFuZ2UuaAorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1 MjAvZ2RiL21lbXJhbmdlLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMjAyLm9y aWcvZ2RiL21lbXJhbmdlLmgJMjAxNS0wMi0xMSAxNjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAKLSsr KyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9tZW1yYW5nZS5oCTIwMTUtMDItMTEgMTY6MDE6NTku NjEyOTY2MzYwICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9tZW1yYW5n ZS5oCTIwMTUtMDUtMzEgMTc6MDg6NDYuODQ1NTA2Mzk3ICswMjAwCisrKysgZ2RiLTcuOS41MC4y MDE1MDUyMC9nZGIvbWVtcmFuZ2UuaAkyMDE1LTA1LTMxIDE3OjA5OjIxLjQ1NjcyNDg0MCArMDIw MAogQEAgLTMwLDcgKzMwLDcgQEAgc3RydWN0IG1lbV9yYW5nZQogICAgQ09SRV9BRERSIHN0YXJ0 OwogIApAQCAtMjY0MCwxMCArMjYxNywxMCBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9n ZGIvbWVtcmFuZ2UuaAogIAogIC8qIFJldHVybnMgdHJ1ZSBpZiBBRERSIGlzIGluIFJBTkdFLiAg Ki8KICAKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9taXBzLWxpbnV4LW5hdC5jCitJ bmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvbWlwcy1saW51eC1uYXQuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvbWlwcy1saW51eC1uYXQuYwkyMDE1 LTAyLTExIDE2OjAxOjUxLjM2NjkyNDYyNSArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAyMDIv Z2RiL21pcHMtbGludXgtbmF0LmMJMjAxNS0wMi0xMSAxNjowMTo1OS42MTI5NjYzNjAgKzAxMDAK Ky0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL21pcHMtbGludXgtbmF0LmMJMjAxNS0w NS0zMSAxNzowODo0Ni44NDY1MDY0MDMgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dk Yi9taXBzLWxpbnV4LW5hdC5jCTIwMTUtMDUtMzEgMTc6MDk6MjEuNDU2NzI0ODQwICswMjAwCiBA QCAtNTg2LDcgKzU4Niw3IEBAIG1pcHNfbGludXhfc3RvcHBlZF9kYXRhX2FkZHJlc3MgKHN0cnVj dAogIAogIHN0YXRpYyBpbnQKQEAgLTI2NTMsMTAgKzI2MzAsMTAgQEAgSW5kZXg6IGdkYi03Ljgu OTAuMjAxNTAyMDIvZ2RiL21pcHMtbGludXgtbmF0LmMKICB7CiAgICBzdHJ1Y3QgcHRfd2F0Y2hf cmVncyBkdW1teV9yZWdzOwogICAgaW50IGk7Ci1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9n ZGIvb3BlbmNsLWxhbmcuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL29wZW5jbC1s YW5nLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMjAyLm9yaWcvZ2RiL29wZW5j bC1sYW5nLmMJMjAxNS0wMi0xMSAxNjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44 LjkwLjIwMTUwMjAyL2dkYi9vcGVuY2wtbGFuZy5jCTIwMTUtMDItMTEgMTY6MDE6NTkuNjEzOTY2 MzY1ICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9vcGVuY2wtbGFuZy5j CTIwMTUtMDUtMzEgMTc6MDg6NDYuODQ2NTA2NDAzICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1 MDUyMC9nZGIvb3BlbmNsLWxhbmcuYwkyMDE1LTA1LTMxIDE3OjA5OjIxLjQ1NzcyNDg0NiArMDIw MAogQEAgLTc4LDExICs3OCwxMSBAQCBidWlsdGluX29wZW5jbF90eXBlIChzdHJ1Y3QgZ2RiYXJj aCAqZ2RiCiAgCiAgc3RhdGljIHN0cnVjdCB0eXBlICoKQEAgLTI3MzMsMTAgKzI3MTAsMTAgQEAg SW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL29wZW5jbC1sYW5nLmMKICAKICAgICAgICBp ZiAoIXZhbHVlX2JpdHNfc3ludGhldGljX3BvaW50ZXIgKGMtPnZhbCwKICAJCQkJCSBjLT5pbmRp Y2VzW2ldICogZWxzaXplICsgY29tcF9vZmZzZXQsCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIw Mi9nZGIvcC1sYW5nLmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9wLWxhbmcuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvcC1sYW5nLmMJMjAx NS0wMi0xMSAxNjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMjAy L2dkYi9wLWxhbmcuYwkyMDE1LTAyLTExIDE2OjAxOjU5LjYxMzk2NjM2NSArMDEwMAorLS0tIGdk Yi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvcC1sYW5nLmMJMjAxNS0wNS0zMSAxNzowODo0Ni44 NDc1MDY0MDkgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9wLWxhbmcuYwkyMDE1 LTA1LTMxIDE3OjA5OjIxLjQ1NzcyNDg0NiArMDIwMAogQEAgLTk1LDggKzk1LDggQEAgcGFzY2Fs X21haW5fbmFtZSAodm9pZCkKICAgICBhcmUgbm90IG11bHRpcGxlIG9mIFRBUkdFVF9DSEFSX0JJ VCB0aGVuIHRoZSByZXN1bHRzIGFyZSB3cm9uZwogICAgIGJ1dCB0aGlzIGRvZXMgbm90IGhhcHBl biBmb3IgRnJlZSBQYXNjYWwgbm9yIGZvciBHUEMuICAqLwpAQCAtMjc4NCwxMCArMjc2MSwxMCBA QCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvcC1sYW5nLmMKICAJICBpID0gcmVwMSAt IDE7CiAgCSAgdGhpbmdzX3ByaW50ZWQgKz0gb3B0aW9ucy0+cmVwZWF0X2NvdW50X3RocmVzaG9s ZDsKICAJICBuZWVkX2NvbW1hID0gMTsKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9w LWxhbmcuaAorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3AtbGFuZy5oCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5vcmlnL2dkYi9wLWxhbmcuaAkyMDE1LTAyLTEx IDE2OjAxOjUxLjM2NjkyNDYyNSArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3At bGFuZy5oCTIwMTUtMDItMTEgMTY6MDE6NTkuNjEzOTY2MzY1ICswMTAwCistLS0gZ2RiLTcuOS41 MC4yMDE1MDUyMC5vcmlnL2dkYi9wLWxhbmcuaAkyMDE1LTA1LTMxIDE3OjA4OjQ2Ljg0NzUwNjQw OSArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3AtbGFuZy5oCTIwMTUtMDUtMzEg MTc6MDk6MjEuNDU3NzI0ODQ2ICswMjAwCiBAQCAtMzYsNyArMzYsNyBAQCBleHRlcm4gdm9pZCBw YXNjYWxfcHJpbnRfdHlwZSAoc3RydWN0IHR5CiAgZXh0ZXJuIHZvaWQgcGFzY2FsX3ByaW50X3R5 cGVkZWYgKHN0cnVjdCB0eXBlICosIHN0cnVjdCBzeW1ib2wgKiwKICAJCQkJICBzdHJ1Y3QgdWlf ZmlsZSAqKTsKQEAgLTI4MjIsMTAgKzI3OTksMTAgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAy MDIvZ2RiL3AtbGFuZy5oCiAgCQkJCQkgICAgICBDT1JFX0FERFIsIHN0cnVjdCB1aV9maWxlICos CiAgCQkJCQkgICAgICBpbnQsCiAgCQkJCQkgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKiwKLUlu ZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9wLXZhbHByaW50LmMKK0luZGV4OiBnZGItNy45 LjUwLjIwMTUwNTIwL2dkYi9wLXZhbHByaW50LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44Ljkw LjIwMTUwMjAyLm9yaWcvZ2RiL3AtdmFscHJpbnQuYwkyMDE1LTAyLTExIDE2OjAxOjUxLjM2Njky NDYyNSArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3AtdmFscHJpbnQuYwkyMDE1 LTAyLTExIDE2OjAxOjU5LjYxMzk2NjM2NSArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAu b3JpZy9nZGIvcC12YWxwcmludC5jCTIwMTUtMDUtMzEgMTc6MDg6NDYuODQ3NTA2NDA5ICswMjAw CisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcC12YWxwcmludC5jCTIwMTUtMDUtMzEgMTc6 MTA6NTcuNTUwMzMxMzIwICswMjAwCiBAQCAtNTcsNyArNTcsNyBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IGdlbmVyaWNfdmFsX3ByaW50X2RlCiAgCiAgdm9pZApAQCAtMjg4NCwxNCArMjg2MSwxNCBA QCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvcC12YWxwcmludC5jCiAgICAgICAgY29u c3QgZ2RiX2J5dGUgKmJhc2VfdmFsYWRkciA9IE5VTEw7CiAtICAgICAgaW50IHRoaXNvZmZzZXQ7 CiArICAgICAgTE9OR0VTVCB0aGlzb2Zmc2V0OwotICAgICAgIHZvbGF0aWxlIHN0cnVjdCBnZGJf ZXhjZXB0aW9uIGV4OwogICAgICAgIGludCBza2lwID0gMDsKICAKLUluZGV4OiBnZGItNy44Ljkw LjIwMTUwMjAyL2dkYi9wcGMtbGludXgtbmF0LmMKKyAgICAgICBpZiAoQkFTRVRZUEVfVklBX1ZJ UlRVQUwgKHR5cGUsIGkpKQorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3BwYy1saW51 eC1uYXQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvcHBj LWxpbnV4LW5hdC5jCTIwMTUtMDItMTEgMTY6MDE6NTEuMzY2OTI0NjI1ICswMTAwCi0rKysgZ2Ri LTcuOC45MC4yMDE1MDIwMi9nZGIvcHBjLWxpbnV4LW5hdC5jCTIwMTUtMDItMTEgMTY6MDE6NTku NjE0OTY2MzcxICswMTAwCi1AQCAtMTUwMSw3ICsxNTAxLDcgQEAgcHBjX2xpbnV4X2Nhbl91c2Vf aHdfYnJlYWtwb2ludCAoc3RydWN0CistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9w cGMtbGludXgtbmF0LmMJMjAxNS0wNS0zMSAxNzowODo0Ni44NDg1MDY0MTYgKzAyMDAKKysrKyBn ZGItNy45LjUwLjIwMTUwNTIwL2dkYi9wcGMtbGludXgtbmF0LmMJMjAxNS0wNS0zMSAxNzowOToy MS40NTg3MjQ4NTMgKzAyMDAKK0BAIC0xNDUxLDcgKzE0NTEsNyBAQCBwcGNfbGludXhfY2FuX3Vz ZV9od19icmVha3BvaW50IChzdHJ1Y3QKICAKICBzdGF0aWMgaW50CiAgcHBjX2xpbnV4X3JlZ2lv bl9va19mb3JfaHdfd2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF9vcHMgKnNlbGYsCkBAIC0yOTAw LDExICsyODc3LDExIEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9wcGMtbGludXgt bmF0LmMKICB7CiAgICAvKiBIYW5kbGUgc3ViLTgtYnl0ZSBxdWFudGl0aWVzLiAgKi8KICAgIGlm IChsZW4gPD0gMCkKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9wcmludGNtZC5jCitJ bmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHJpbnRjbWQuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvcHJpbnRjbWQuYwkyMDE1LTAyLTExIDE2OjAx OjUxLjM2NjkyNDYyNSArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3ByaW50Y21k LmMJMjAxNS0wMi0xMSAxNjowMTo1OS42MTU5NjYzNzUgKzAxMDAKLUBAIC0yODUsNyArMjg1LDcg QEAgcHJpbnRfZm9ybWF0dGVkIChzdHJ1Y3QgdmFsdWUgKnZhbCwgaW50CistLS0gZ2RiLTcuOS41 MC4yMDE1MDUyMC5vcmlnL2dkYi9wcmludGNtZC5jCTIwMTUtMDUtMzEgMTc6MDg6NDYuODQ5NTA2 NDIyICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHJpbnRjbWQuYwkyMDE1LTA1 LTMxIDE3OjA5OjIxLjQ1OTcyNDg1OSArMDIwMAorQEAgLTI3NCw3ICsyNzQsNyBAQCBwcmludF9m b3JtYXR0ZWQgKHN0cnVjdCB2YWx1ZSAqdmFsLCBpbnQKICAJCSBzdHJ1Y3QgdWlfZmlsZSAqc3Ry ZWFtKQogIHsKICAgIHN0cnVjdCB0eXBlICp0eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlw ZSAodmFsKSk7CkBAIC0yOTEzLDcgKzI4OTAsNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIw Mi9nZGIvcHJpbnRjbWQuYwogIAogICAgaWYgKFZBTFVFX0xWQUwgKHZhbCkgPT0gbHZhbF9tZW1v cnkpCiAgICAgIG5leHRfYWRkcmVzcyA9IHZhbHVlX2FkZHJlc3MgKHZhbCkgKyBsZW47Ci1AQCAt MzYzLDcgKzM2Myw3IEBAIHByaW50X3NjYWxhcl9mb3JtYXR0ZWQgKGNvbnN0IHZvaWQgKnZhbGEK K0BAIC0zNTIsNyArMzUyLDcgQEAgcHJpbnRfc2NhbGFyX2Zvcm1hdHRlZCAoY29uc3Qgdm9pZCAq dmFsYQogIHsKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoID0gZ2V0X3R5cGVfYXJjaCAodHlw ZSk7CiAgICBMT05HRVNUIHZhbF9sb25nID0gMDsKQEAgLTI5MjIsMTAgKzI4OTksMTAgQEAgSW5k ZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3ByaW50Y21kLmMKICAgIGVudW0gYmZkX2VuZGlh biBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKICAKICAgIC8qIFN0 cmluZyBwcmludGluZyBzaG91bGQgZ28gdGhyb3VnaCB2YWxfcHJpbnRfc2NhbGFyX2Zvcm1hdHRl ZC4gICovCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvcHJvY2ZzLmMKK0luZGV4OiBn ZGItNy45LjUwLjIwMTUwNTIwL2dkYi9wcm9jZnMuYwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljgu OTAuMjAxNTAyMDIub3JpZy9nZGIvcHJvY2ZzLmMJMjAxNS0wMi0xMSAxNjowMTo1MS4zNjY5MjQ2 MjUgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9wcm9jZnMuYwkyMDE1LTAyLTEx IDE2OjAxOjU5LjYxNjk2NjM4MSArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9n ZGIvcHJvY2ZzLmMJMjAxNS0wNS0zMSAxNzowODo0Ni44NTA1MDY0MjggKzAyMDAKKysrKyBnZGIt Ny45LjUwLjIwMTUwNTIwL2dkYi9wcm9jZnMuYwkyMDE1LTA1LTMxIDE3OjA5OjIxLjQ2MDcyNDg2 NSArMDIwMAogQEAgLTQ4NTksNyArNDg1OSw3IEBAIHByb2Nmc19yZW1vdmVfd2F0Y2hwb2ludCAo c3RydWN0IHRhcmdldF8KICAKICBzdGF0aWMgaW50CkBAIC0yOTM1LDExICsyOTEyLDExIEBAIElu ZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9wcm9jZnMuYwogIHsKICAgIC8qIFRoZSBtYW4g cGFnZSBmb3IgcHJvYyg0KSBvbiBTb2xhcmlzIDIuNiBhbmQgdXAgc2F5cyB0aGF0IHRoZQogICAg ICAgc3lzdGVtIGNhbiBzdXBwb3J0ICJ0aG91c2FuZHMiIG9mIGhhcmR3YXJlIHdhdGNocG9pbnRz LCBidXQgZ2l2ZXMKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9weXRob24vcHktcHJl dHR5cHJpbnQuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3B5dGhvbi9weS1wcmV0 dHlwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5vcmlnL2dkYi9w eXRob24vcHktcHJldHR5cHJpbnQuYwkyMDE1LTAyLTExIDE2OjAxOjUxLjM2NjkyNDYyNSArMDEw MAotKysrIGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3B5dGhvbi9weS1wcmV0dHlwcmludC5jCTIw MTUtMDItMTEgMTY6MDE6NTkuNjE2OTY2MzgxICswMTAwCi1AQCAtNjg2LDcgKzY4Niw3IEBAIHBy aW50X2NoaWxkcmVuIChQeU9iamVjdCAqcHJpbnRlciwgY29uc3QKKy0tLSBnZGItNy45LjUwLjIw MTUwNTIwLm9yaWcvZ2RiL3B5dGhvbi9weS1wcmV0dHlwcmludC5jCTIwMTUtMDUtMzEgMTc6MDg6 NDYuODUxNTA2NDM1ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHl0aG9uL3B5 LXByZXR0eXByaW50LmMJMjAxNS0wNS0zMSAxNzowOToyMS40NjA3MjQ4NjUgKzAyMDAKK0BAIC03 MDMsNyArNzAzLDcgQEAgcHJpbnRfY2hpbGRyZW4gKFB5T2JqZWN0ICpwcmludGVyLCBjb25zdAog IGVudW0gZXh0X2xhbmdfcmMKICBnZGJweV9hcHBseV92YWxfcHJldHR5X3ByaW50ZXIgKGNvbnN0 IHN0cnVjdCBleHRlbnNpb25fbGFuZ3VhZ2VfZGVmbiAqZXh0bGFuZywKICAJCQkJc3RydWN0IHR5 cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtMjk0OCwxMSArMjkyNSwxMSBA QCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvcHl0aG9uL3B5LXByZXR0eXByaW50LmMK ICAJCQkJc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkJCWNvbnN0IHN0 cnVjdCB2YWx1ZSAqdmFsLAogIAkJCQljb25zdCBzdHJ1Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAq b3B0aW9ucywKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9yZWdjYWNoZS5jCitJbmRl eDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcmVnY2FjaGUuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvcmVnY2FjaGUuYwkyMDE1LTAyLTExIDE2OjAxOjUx LjM2NjkyNDYyNSArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3JlZ2NhY2hlLmMJ MjAxNS0wMi0xMSAxNjowMTo1OS42MTY5NjYzODEgKzAxMDAKLUBAIC05NDEsNyArOTQxLDcgQEAg dHlwZWRlZiB2b2lkIChyZWdjYWNoZV93cml0ZV9mdHlwZSkgKHN0cgorLS0tIGdkYi03LjkuNTAu MjAxNTA1MjAub3JpZy9nZGIvcmVnY2FjaGUuYwkyMDE1LTA1LTMxIDE3OjA4OjQ2Ljg1MTUwNjQz NSArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3JlZ2NhY2hlLmMJMjAxNS0wNS0z MSAxNzowOToyMS40NjE3MjQ4NzIgKzAyMDAKK0BAIC05NDksNyArOTQ5LDcgQEAgdHlwZWRlZiB2 b2lkIChyZWdjYWNoZV93cml0ZV9mdHlwZSkgKHN0cgogIAogIHN0YXRpYyBlbnVtIHJlZ2lzdGVy X3N0YXR1cwogIHJlZ2NhY2hlX3hmZXJfcGFydCAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwg aW50IHJlZ251bSwKQEAgLTI5NjEsNyArMjkzOCw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUw MjAyL2dkYi9yZWdjYWNoZS5jCiAgCQkgICAgZW51bSByZWdpc3Rlcl9zdGF0dXMgKCpyZWFkKSAo c3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwKICAJCQkJCQkgIGludCByZWdudW0sCiAgCQkJCQkJ ICBnZGJfYnl0ZSAqYnVmKSwKLUBAIC05ODUsNyArOTg1LDcgQEAgcmVnY2FjaGVfeGZlcl9wYXJ0 IChzdHJ1Y3QgcmVnY2FjaGUgKnJlZworQEAgLTk5Myw3ICs5OTMsNyBAQCByZWdjYWNoZV94ZmVy X3BhcnQgKHN0cnVjdCByZWdjYWNoZSAqcmVnCiAgCiAgZW51bSByZWdpc3Rlcl9zdGF0dXMKICBy ZWdjYWNoZV9yYXdfcmVhZF9wYXJ0IChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVn bnVtLApAQCAtMjk3MCw3ICsyOTQ3LDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2Ri L3JlZ2NhY2hlLmMKICB7CiAgICBzdHJ1Y3QgcmVnY2FjaGVfZGVzY3IgKmRlc2NyID0gcmVnY2Fj aGUtPmRlc2NyOwogIAotQEAgLTk5Niw3ICs5OTYsNyBAQCByZWdjYWNoZV9yYXdfcmVhZF9wYXJ0 IChzdHJ1Y3QgcmVnY2FjaGUKK0BAIC0xMDA0LDcgKzEwMDQsNyBAQCByZWdjYWNoZV9yYXdfcmVh ZF9wYXJ0IChzdHJ1Y3QgcmVnY2FjaGUKICAKICB2b2lkCiAgcmVnY2FjaGVfcmF3X3dyaXRlX3Bh cnQgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGludCByZWdudW0sCkBAIC0yOTc5LDcgKzI5 NTYsNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvcmVnY2FjaGUuYwogIHsKICAg IHN0cnVjdCByZWdjYWNoZV9kZXNjciAqZGVzY3IgPSByZWdjYWNoZS0+ZGVzY3I7CiAgCi1AQCAt MTAwNyw3ICsxMDA3LDcgQEAgcmVnY2FjaGVfcmF3X3dyaXRlX3BhcnQgKHN0cnVjdCByZWdjYWNo ZQorQEAgLTEwMTUsNyArMTAxNSw3IEBAIHJlZ2NhY2hlX3Jhd193cml0ZV9wYXJ0IChzdHJ1Y3Qg cmVnY2FjaGUKICAKICBlbnVtIHJlZ2lzdGVyX3N0YXR1cwogIHJlZ2NhY2hlX2Nvb2tlZF9yZWFk X3BhcnQgKHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGludCByZWdudW0sCkBAIC0yOTg4LDcg KzI5NjUsNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvcmVnY2FjaGUuYwogIHsK ICAgIHN0cnVjdCByZWdjYWNoZV9kZXNjciAqZGVzY3IgPSByZWdjYWNoZS0+ZGVzY3I7CiAgCi1A QCAtMTAxOCw3ICsxMDE4LDcgQEAgcmVnY2FjaGVfY29va2VkX3JlYWRfcGFydCAoc3RydWN0IHJl Z2NhYworQEAgLTEwMjYsNyArMTAyNiw3IEBAIHJlZ2NhY2hlX2Nvb2tlZF9yZWFkX3BhcnQgKHN0 cnVjdCByZWdjYWMKICAKICB2b2lkCiAgcmVnY2FjaGVfY29va2VkX3dyaXRlX3BhcnQgKHN0cnVj dCByZWdjYWNoZSAqcmVnY2FjaGUsIGludCByZWdudW0sCkBAIC0yOTk3LDEwICsyOTc0LDEwIEBA IEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9yZWdjYWNoZS5jCiAgewogICAgc3RydWN0 IHJlZ2NhY2hlX2Rlc2NyICpkZXNjciA9IHJlZ2NhY2hlLT5kZXNjcjsKICAKLUluZGV4OiBnZGIt Ny44LjkwLjIwMTUwMjAyL2dkYi9yZWdjYWNoZS5oCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUy MC9nZGIvcmVnY2FjaGUuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguOTAuMjAxNTAyMDIub3Jp Zy9nZGIvcmVnY2FjaGUuaAkyMDE1LTAyLTExIDE2OjAxOjUxLjM2NjkyNDYyNSArMDEwMAotKysr IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3JlZ2NhY2hlLmgJMjAxNS0wMi0xMSAxNjowMTo1OS42 MTc5NjYzODYgKzAxMDAKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL3JlZ2NhY2hl LmgJMjAxNS0wNS0zMSAxNzowODo0Ni44NTI1MDY0NDEgKzAyMDAKKysrKyBnZGItNy45LjUwLjIw MTUwNTIwL2dkYi9yZWdjYWNoZS5oCTIwMTUtMDUtMzEgMTc6MDk6MjEuNDYxNzI0ODcyICswMjAw CiBAQCAtOTIsOSArOTIsOSBAQCBleHRlcm4gdm9pZCByZWdjYWNoZV9yYXdfd3JpdGVfdW5zaWdu ZWQKICAKICBleHRlcm4gZW51bSByZWdpc3Rlcl9zdGF0dXMKQEAgLTMwMjgsMTEgKzMwMDUsMTEg QEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3JlZ2NhY2hlLmgKICAKICAvKiBTcGVj aWFsIHJvdXRpbmVzIHRvIHJlYWQvd3JpdGUgdGhlIFBDLiAgKi8KICAKLUluZGV4OiBnZGItNy44 LjkwLjIwMTUwMjAyL2dkYi9yZW1vdGUuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2Ri L3JlbW90ZS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5vcmlnL2dkYi9y ZW1vdGUuYwkyMDE1LTAyLTExIDE2OjAxOjUxLjM2NjkyNDYyNSArMDEwMAotKysrIGdkYi03Ljgu OTAuMjAxNTAyMDIvZ2RiL3JlbW90ZS5jCTIwMTUtMDItMTEgMTY6MDE6NTkuNjE5OTY2Mzk2ICsw MTAwCi1AQCAtODM3MSw3ICs4MzcxLDcgQEAgaW50IHJlbW90ZV9od19icmVha3BvaW50X2xpbWl0 ID0gLTE7CistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9yZW1vdGUuYwkyMDE1LTA1 LTMxIDE3OjA4OjQ2Ljg1NDUwNjQ1NCArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2Ri L3JlbW90ZS5jCTIwMTUtMDUtMzEgMTc6MDk6MjEuNDY0NzI0ODkxICswMjAwCitAQCAtODc1MSw3 ICs4NzUxLDcgQEAgaW50IHJlbW90ZV9od19icmVha3BvaW50X2xpbWl0ID0gLTE7CiAgCiAgc3Rh dGljIGludAogIHJlbW90ZV9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVjdCB0YXJn ZXRfb3BzICpzZWxmLApAQCAtMzA0MSwxMCArMzAxOCwxMCBAQCBJbmRleDogZ2RiLTcuOC45MC4y MDE1MDIwMi9nZGIvcmVtb3RlLmMKICB7CiAgICBpZiAocmVtb3RlX2h3X3dhdGNocG9pbnRfbGVu Z3RoX2xpbWl0ID09IDApCiAgICAgIHJldHVybiAwOwotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAy MDIvZ2RiL3NwdS1tdWx0aWFyY2guYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Nw dS1tdWx0aWFyY2guYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguOTAuMjAxNTAyMDIub3JpZy9n ZGIvc3B1LW11bHRpYXJjaC5jCTIwMTUtMDItMTEgMTY6MDE6NTEuMzY2OTI0NjI1ICswMTAwCi0r KysgZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvc3B1LW11bHRpYXJjaC5jCTIwMTUtMDItMTEgMTY6 MDE6NTkuNjE5OTY2Mzk2ICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9z cHUtbXVsdGlhcmNoLmMJMjAxNS0wNS0zMSAxNzowODo0Ni44NTU1MDY0NjAgKzAyMDAKKysrKyBn ZGItNy45LjUwLjIwMTUwNTIwL2dkYi9zcHUtbXVsdGlhcmNoLmMJMjAxNS0wNS0zMSAxNzowOToy MS40NjQ3MjQ4OTEgKzAyMDAKIEBAIC0xMTcsNyArMTE3LDcgQEAgc3B1X3RocmVhZF9hcmNoaXRl Y3R1cmUgKHN0cnVjdCB0YXJnZXRfbwogIC8qIE92ZXJyaWRlIHRoZSB0b19yZWdpb25fb2tfZm9y X2h3X3dhdGNocG9pbnQgcm91dGluZS4gICovCiAgc3RhdGljIGludApAQCAtMzA1NCwxMSArMzAz MSwxMSBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvc3B1LW11bHRpYXJjaC5jCiAg ewogICAgc3RydWN0IHRhcmdldF9vcHMgKm9wc19iZW5lYXRoID0gZmluZF90YXJnZXRfYmVuZWF0 aCAoc2VsZik7CiAgCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvc3RhY2suYworSW5k ZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3N0YWNrLmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny44LjkwLjIwMTUwMjAyLm9yaWcvZ2RiL3N0YWNrLmMJMjAxNS0wMi0xMSAxNjowMTo1MS4zNjY5 MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9zdGFjay5jCTIwMTUtMDIt MTEgMTY6MDE6NTkuNjIwOTY2NDAxICswMTAwCi1AQCAtMTc1LDcgKzE3NSw3IEBAIHByaW50X3N0 YWNrX2ZyYW1lIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnIKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIw Lm9yaWcvZ2RiL3N0YWNrLmMJMjAxNS0wNS0zMSAxNzowODo0Ni44NTY1MDY0NjYgKzAyMDAKKysr KyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9zdGFjay5jCTIwMTUtMDUtMzEgMTc6MDk6MjEuNDY1 NzI0ODk3ICswMjAwCitAQCAtMTc4LDcgKzE3OCw3IEBAIHByaW50X3N0YWNrX2ZyYW1lIChzdHJ1 Y3QgZnJhbWVfaW5mbyAqZnIKICAgICBhcmd1bWVudCAobm90IGp1c3QgdGhlIGZpcnN0IG5hbWVs ZXNzIGFyZ3VtZW50KS4gICovCiAgCiAgc3RhdGljIHZvaWQKQEAgLTMwNjcsNyArMzA0NCw3IEBA IEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9zdGFjay5jCiAgCQkJICAgaW50IGZpcnN0 LCBzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtKQogIHsKICAgIHN0cnVjdCBnZGJhcmNoICpnZGJhcmNo ID0gZ2V0X2ZyYW1lX2FyY2ggKGZyYW1lKTsKLUBAIC01MjQsNyArNTI0LDcgQEAgcHJpbnRfZnJh bWVfYXJncyAoc3RydWN0IHN5bWJvbCAqZnVuYywgcworQEAgLTU0MSw3ICs1NDEsNyBAQCBwcmlu dF9mcmFtZV9hcmdzIChzdHJ1Y3Qgc3ltYm9sICpmdW5jLCBzCiAgICAvKiBPZmZzZXQgb2YgbmV4 dCBzdGFjayBhcmd1bWVudCBiZXlvbmQgdGhlIG9uZSB3ZSBoYXZlIHNlZW4gdGhhdCBpcwogICAg ICAgYXQgdGhlIGhpZ2hlc3Qgb2Zmc2V0LCBvciAtMSBpZiB3ZSBoYXZlbid0IGNvbWUgdG8gYSBz dGFjawogICAgICAgYXJndW1lbnQgeWV0LiAgKi8KQEAgLTMwNzYsNyArMzA1Myw3IEBAIEluZGV4 OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9zdGFjay5jCiAgICAvKiBOdW1iZXIgb2YgaW50cyBv ZiBhcmd1bWVudHMgdGhhdCB3ZSBoYXZlIHByaW50ZWQgc28gZmFyLiAgKi8KICAgIGludCBhcmdz X3ByaW50ZWQgPSAwOwogICAgc3RydWN0IGNsZWFudXAgKm9sZF9jaGFpbjsKLUBAIC01NTgsOCAr NTU4LDggQEAgcHJpbnRfZnJhbWVfYXJncyAoc3RydWN0IHN5bWJvbCAqZnVuYywgcworQEAgLTU3 NSw4ICs1NzUsOCBAQCBwcmludF9mcmFtZV9hcmdzIChzdHJ1Y3Qgc3ltYm9sICpmdW5jLCBzCiAg CSAgICBjYXNlIExPQ19BUkc6CiAgCSAgICBjYXNlIExPQ19SRUZfQVJHOgogIAkgICAgICB7CkBA IC0zMDg3LDcgKzMwNjQsNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvc3RhY2su YwogIAogIAkJLyogQ29tcHV0ZSBhZGRyZXNzIG9mIG5leHQgYXJndW1lbnQgYnkgYWRkaW5nIHRo ZSBzaXplIG9mCiAgCQkgICB0aGlzIGFyZ3VtZW50IGFuZCByb3VuZGluZyB0byBhbiBpbnQgYm91 bmRhcnkuICAqLwotQEAgLTY5NCw3ICs2OTQsNyBAQCBwcmludF9mcmFtZV9hcmdzIChzdHJ1Y3Qg c3ltYm9sICpmdW5jLCBzCitAQCAtNzExLDcgKzcxMSw3IEBAIHByaW50X2ZyYW1lX2FyZ3MgKHN0 cnVjdCBzeW1ib2wgKmZ1bmMsIHMKICAgICAgIGVub3VnaCBhYm91dCB0aGUgc3RhY2sgdG8gZmlu ZCB0aGVtLiAgKi8KICAgIGlmIChudW0gIT0gLTEpCiAgICAgIHsKQEAgLTMwOTYsMTAgKzMwNzMs MTAgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3N0YWNrLmMKICAKICAgICAgICBp ZiAoaGlnaGVzdF9vZmZzZXQgPT0gLTEpCiAgCXN0YXJ0ID0gZ2RiYXJjaF9mcmFtZV9hcmdzX3Nr aXAgKGdldF9mcmFtZV9hcmNoIChmcmFtZSkpOwotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIv Z2RiL3N5bW1pc2MuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3N5bW1pc2MuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvc3ltbWlzYy5jCTIw MTUtMDItMTEgMTY6MDE6NTEuMzY2OTI0NjI1ICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDIw Mi9nZGIvc3ltbWlzYy5jCTIwMTUtMDItMTEgMTY6MDE6NTkuNjIwOTY2NDAxICswMTAwCistLS0g Z2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9zeW1taXNjLmMJMjAxNS0wNS0zMSAxNzowODo0 Ni44NTY1MDY0NjYgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9zeW1taXNjLmMJ MjAxNS0wNS0zMSAxNzowOToyMS40NjU3MjQ4OTcgKzAyMDAKIEBAIC01MzQsMTEgKzUzNCwxMSBA QCBwcmludF9zeW1ib2wgKHZvaWQgKmFyZ3MpCiAgCiAgCWNhc2UgTE9DX0NPTlNUX0JZVEVTOgpA QCAtMzExNSwxMCArMzA5MiwxMCBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvc3lt bWlzYy5jCiAgCSAgICBmb3IgKGkgPSAwOyBpIDwgVFlQRV9MRU5HVEggKHR5cGUpOyBpKyspCiAg CSAgICAgIGZwcmludGZfZmlsdGVyZWQgKG91dGZpbGUsICIgJTAyeCIsCiAgCQkJCSh1bnNpZ25l ZCkgU1lNQk9MX1ZBTFVFX0JZVEVTIChzeW1ib2wpW2ldKTsKLUluZGV4OiBnZGItNy44LjkwLjIw MTUwMjAyL2dkYi90YXJnZXQuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rhcmdl dC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5vcmlnL2dkYi90YXJnZXQu YwkyMDE1LTAyLTExIDE2OjAxOjUxLjM2NjkyNDYyNSArMDEwMAotKysrIGdkYi03LjguOTAuMjAx NTAyMDIvZ2RiL3RhcmdldC5jCTIwMTUtMDItMTEgMTY6MDE6NTkuNjIxOTY2NDA2ICswMTAwCist LS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi90YXJnZXQuYwkyMDE1LTA1LTMxIDE3OjA4 OjQ2Ljg1NzUwNjQ3MyArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3RhcmdldC5j CTIwMTUtMDUtMzEgMTc6MDk6MjEuNDY2NzI0OTAzICswMjAwCiBAQCAtNTQsNyArNTQsNyBAQCBz dGF0aWMgaW50IGRlZmF1bHRfd2F0Y2hwb2ludF9hZGRyX3dpdGhpCiAgCQkJCQkJIENPUkVfQURE UiwgQ09SRV9BRERSLCBpbnQpOwogIApAQCAtMzEyOCw3ICszMTA1LDcgQEAgSW5kZXg6IGdkYi03 LjguOTAuMjAxNTAyMDIvZ2RiL3RhcmdldC5jCiAgCiAgc3RhdGljIHZvaWQgZGVmYXVsdF9yY21k IChzdHJ1Y3QgdGFyZ2V0X29wcyAqLCBjb25zdCBjaGFyICosIHN0cnVjdCB1aV9maWxlICopOwog IAotQEAgLTI5NzUsNyArMjk3NSw3IEBAIHRhcmdldF9maWxlaW9fcmVhZF9zdHJhbGxvYyAoY29u c3QgY2hhcgorQEAgLTMwNTYsNyArMzA1Niw3IEBAIHRhcmdldF9maWxlaW9fcmVhZF9zdHJhbGxv YyAoY29uc3QgY2hhcgogIAogIHN0YXRpYyBpbnQKICBkZWZhdWx0X3JlZ2lvbl9va19mb3JfaHdf d2F0Y2hwb2ludCAoc3RydWN0IHRhcmdldF9vcHMgKnNlbGYsCkBAIC0zMTM3LDExICszMTE0LDEx IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi90YXJnZXQuYwogIHsKICAgIHJldHVy biAobGVuIDw9IGdkYmFyY2hfcHRyX2JpdCAodGFyZ2V0X2dkYmFyY2ggKCkpIC8gVEFSR0VUX0NI QVJfQklUKTsKICB9Ci1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvdGFyZ2V0LmgKK0lu ZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90YXJnZXQuaAogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvdGFyZ2V0LmgJMjAxNS0wMi0xMSAxNjowMTo1MS4z NjY5MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi90YXJnZXQuaAkyMDE1 LTAyLTExIDE2OjAxOjU5LjYyMjk2NjQxMSArMDEwMAotQEAgLTQ4OSw3ICs0ODksNyBAQCBzdHJ1 Y3QgdGFyZ2V0X29wcworLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvdGFyZ2V0LmgJ MjAxNS0wNS0zMSAxNzowODo0Ni44NTg1MDY0NzkgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUw NTIwL2dkYi90YXJnZXQuaAkyMDE1LTA1LTMxIDE3OjA5OjIxLjQ2NjcyNDkwMyArMDIwMAorQEAg LTUyNyw3ICs1MjcsNyBAQCBzdHJ1Y3QgdGFyZ2V0X29wcwogICAgICAvKiBEb2N1bWVudGF0aW9u IG9mIHRoaXMgcm91dGluZSBpcyBwcm92aWRlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nCiAgICAg ICAgIHRhcmdldF8qIG1hY3JvLiAgKi8KICAgICAgaW50ICgqdG9fcmVnaW9uX29rX2Zvcl9od193 YXRjaHBvaW50KSAoc3RydWN0IHRhcmdldF9vcHMgKiwKQEAgLTMxNTAsMTAgKzMxMjcsMTAgQEAg SW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3RhcmdldC5oCiAgICAgICAgVEFSR0VUX0RF RkFVTFRfRlVOQyAoZGVmYXVsdF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQpOwogIAogICAg ICBpbnQgKCp0b19jYW5fYWNjZWxfd2F0Y2hwb2ludF9jb25kaXRpb24pIChzdHJ1Y3QgdGFyZ2V0 X29wcyAqLAotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3RyYWNlcG9pbnQuYworSW5k ZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3RyYWNlcG9pbnQuYwogPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0t IGdkYi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvdHJhY2Vwb2ludC5jCTIwMTUtMDItMTEgMTY6 MDE6NTEuMzY2OTI0NjI1ICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvdHJhY2Vw b2ludC5jCTIwMTUtMDItMTEgMTY6MDE6NTkuNjIzOTY2NDE2ICswMTAwCistLS0gZ2RiLTcuOS41 MC4yMDE1MDUyMC5vcmlnL2dkYi90cmFjZXBvaW50LmMJMjAxNS0wNS0zMSAxNzowODo0Ni44NTk1 MDY0ODUgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90cmFjZXBvaW50LmMJMjAx NS0wNS0zMSAxNzowOToyMS40Njc3MjQ5MTAgKzAyMDAKIEBAIC05MjgsMTMgKzkyOCwxMyBAQCBh ZGRfcmVnaXN0ZXIgKHN0cnVjdCBjb2xsZWN0aW9uX2xpc3QgKmNvCiAgc3RhdGljIHZvaWQKICBh ZGRfbWVtcmFuZ2UgKHN0cnVjdCBjb2xsZWN0aW9uX2xpc3QgKm1lbXJhbmdlcywgCkBAIC0zMjQ3 LDExICszMjI0LDExIEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi90cmFjZXBvaW50 LmMKICAJfQogICAgICAgIGlmIChCTE9DS19GVU5DVElPTiAoYmxvY2spKQogIAlicmVhazsKLUlu ZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi90eXBlcHJpbnQuYworSW5kZXg6IGdkYi03Ljku NTAuMjAxNTA1MjAvZ2RiL3R5cGVwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4y MDE1MDIwMi5vcmlnL2dkYi90eXBlcHJpbnQuYwkyMDE1LTAyLTExIDE2OjAxOjUxLjM2NjkyNDYy NSArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3R5cGVwcmludC5jCTIwMTUtMDIt MTEgMTY6MDE6NTkuNjIzOTY2NDE2ICswMTAwCi1AQCAtNDAyLDcgKzQwMiw3IEBAIHdoYXRpc19l eHAgKGNoYXIgKmV4cCwgaW50IHNob3cpCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dk Yi90eXBlcHJpbnQuYwkyMDE1LTA1LTMxIDE3OjA4OjQ2Ljg2MDUwNjQ5MSArMDIwMAorKysrIGdk Yi03LjkuNTAuMjAxNTA1MjAvZ2RiL3R5cGVwcmludC5jCTIwMTUtMDUtMzEgMTc6MDk6MjEuNDY4 NzI0OTE2ICswMjAwCitAQCAtNDA0LDcgKzQwNCw3IEBAIHdoYXRpc19leHAgKGNoYXIgKmV4cCwg aW50IHNob3cpCiAgICBzdHJ1Y3QgdHlwZSAqcmVhbF90eXBlID0gTlVMTDsKICAgIHN0cnVjdCB0 eXBlICp0eXBlOwogICAgaW50IGZ1bGwgPSAwOwpAQCAtMzI2MCwxMCArMzIzNywxMCBAQCBJbmRl eDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvdHlwZXByaW50LmMKICAgIGludCB1c2luZ19lbmMg PSAwOwogICAgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgb3B0czsKICAgIHN0cnVjdCB0eXBl X3ByaW50X29wdGlvbnMgZmxhZ3MgPSBkZWZhdWx0X3B0eXBlX2ZsYWdzOwotSW5kZXg6IGdkYi03 LjguOTAuMjAxNTAyMDIvZ2RiL3ZhbGFyaXRoLmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIw L2dkYi92YWxhcml0aC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5vcmln L2dkYi92YWxhcml0aC5jCTIwMTUtMDItMTEgMTY6MDE6NTEuMzY2OTI0NjI1ICswMTAwCi0rKysg Z2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvdmFsYXJpdGguYwkyMDE1LTAyLTExIDE2OjAxOjU5LjYy Mzk2NjQxNiArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvdmFsYXJpdGgu YwkyMDE1LTA1LTMxIDE3OjA4OjQ2Ljg2MTUwNjQ5OCArMDIwMAorKysrIGdkYi03LjkuNTAuMjAx NTA1MjAvZ2RiL3ZhbGFyaXRoLmMJMjAxNS0wNS0zMSAxNzowOToyMS40Njg3MjQ5MTYgKzAyMDAK IEBAIC0xODgsMTIgKzE4OCwxMyBAQCB2YWx1ZV9zdWJzY3JpcHQgKHN0cnVjdCB2YWx1ZSAqYXJy YXksIExPCiAgICAgdG8gZG91YmxlcywgYnV0IG5vIGxvbmdlciBkb2VzLiAgKi8KICAKQEAgLTMy OTAsNyArMzI2Nyw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi92YWxhcml0aC5j CiAgCiAgICBpZiAoZWx0X3N0cmlkZSA+IDApCiAgICAgIGVsdF9vZmZzICo9IGVsdF9zdHJpZGU7 Ci1AQCAtNjYzLDcgKzY2NCw3IEBAIHZhbHVlX2NvbmNhdCAoc3RydWN0IHZhbHVlICphcmcxLCBz dHJ1Y3QKK0BAIC02NzgsNyArNjc5LDcgQEAgdmFsdWVfY29uY2F0IChzdHJ1Y3QgdmFsdWUgKmFy ZzEsIHN0cnVjdAogICAgc3RydWN0IHZhbHVlICppbnZhbDE7CiAgICBzdHJ1Y3QgdmFsdWUgKmlu dmFsMjsKICAgIHN0cnVjdCB2YWx1ZSAqb3V0dmFsID0gTlVMTDsKQEAgLTMyOTksNyArMzI3Niw3 IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi92YWxhcml0aC5jCiAgICBpbnQgY291 bnQsIGlkeDsKICAgIGNoYXIgKnB0cjsKICAgIGNoYXIgaW5jaGFyOwotQEAgLTE1MTYsNyArMTUx Nyw3IEBAIHZhbHVlX2Jpbm9wIChzdHJ1Y3QgdmFsdWUgKmFyZzEsIHN0cnVjdAorQEAgLTE1MzEs NyArMTUzMiw3IEBAIHZhbHVlX2Jpbm9wIChzdHJ1Y3QgdmFsdWUgKmFyZzEsIHN0cnVjdAogIGlu dAogIHZhbHVlX2xvZ2ljYWxfbm90IChzdHJ1Y3QgdmFsdWUgKmFyZzEpCiAgewpAQCAtMzMwOCw3 ICszMjg1LDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3ZhbGFyaXRoLmMKICAg IGNvbnN0IGdkYl9ieXRlICpwOwogICAgc3RydWN0IHR5cGUgKnR5cGUxOwogIAotQEAgLTE1NDcs MTEgKzE1NDgsMTEgQEAgdmFsdWVfbG9naWNhbF9ub3QgKHN0cnVjdCB2YWx1ZSAqYXJnMSkKK0BA IC0xNTYyLDExICsxNTYzLDExIEBAIHZhbHVlX2xvZ2ljYWxfbm90IChzdHJ1Y3QgdmFsdWUgKmFy ZzEpCiAgc3RhdGljIGludAogIHZhbHVlX3N0cmNtcCAoc3RydWN0IHZhbHVlICphcmcxLCBzdHJ1 Y3QgdmFsdWUgKmFyZzIpCiAgewpAQCAtMzMyMywxMCArMzMwMCwxMCBAQCBJbmRleDogZ2RiLTcu OC45MC4yMDE1MDIwMi9nZGIvdmFsYXJpdGguYwogIAogICAgZm9yIChpID0gMDsgaSA8IGxlbjsg aSsrKQogICAgICB7Ci1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvdmFsb3BzLmMKK0lu ZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi92YWxvcHMuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvdmFsb3BzLmMJMjAxNS0wMi0xMSAxNjowMTo1MS4z NjY5MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi92YWxvcHMuYwkyMDE1 LTAyLTExIDE2OjAxOjU5LjYyNDk2NjQyMSArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAu b3JpZy9nZGIvdmFsb3BzLmMJMjAxNS0wNS0zMSAxNzowODo0Ni44NjQ1MDY1MTcgKzAyMDAKKysr KyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi92YWxvcHMuYwkyMDE1LTA1LTMxIDE3OjA5OjIxLjQ2 OTcyNDkyMiArMDIwMAogQEAgLTQ3LDExICs0NywxMSBAQCBzdGF0aWMgaW50IHR5cGVjbXAgKGlu dCBzdGF0aWNwLCBpbnQgdmFyCiAgCQkgICAgc3RydWN0IGZpZWxkIHQxW10sIHN0cnVjdCB2YWx1 ZSAqdDJbXSk7CiAgCkBAIC0zNjI4LDkgKzM2MDUsOSBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1 MDIwMi9nZGIvdmFsb3BzLmMKIC0JCQkgIGludCAqdG9wLCBpbnQgKnVzaW5nX2VuYykKICsJCQkg IExPTkdFU1QgKnRvcCwgaW50ICp1c2luZ19lbmMpCiAgewotICAgc3RydWN0IHZhbHVlICp0YXJn ZXQ7CisgICBzdHJ1Y3QgdmFsdWUgKnRhcmdldCA9IE5VTEw7CiAgICBzdHJ1Y3QgdHlwZSAqdHlw ZSwgKnJlYWxfdHlwZSwgKnRhcmdldF90eXBlOwotQEAgLTM2NDgsMTIgKzM2NTAsMTIgQEAgdmFs dWVfcnR0aV9pbmRpcmVjdF90eXBlIChzdHJ1Y3QgdmFsdWUgKgorQEAgLTM2NjYsMTIgKzM2Njgs MTIgQEAgdmFsdWVfcnR0aV9pbmRpcmVjdF90eXBlIChzdHJ1Y3QgdmFsdWUgKgogIHN0cnVjdCB2 YWx1ZSAqCiAgdmFsdWVfZnVsbF9vYmplY3QgKHN0cnVjdCB2YWx1ZSAqYXJncCwgCiAgCQkgICBz dHJ1Y3QgdHlwZSAqcnR5cGUsIApAQCAtMzY0NSwxMCArMzYyMiwxMCBAQCBJbmRleDogZ2RiLTcu OC45MC4yMDE1MDIwMi9nZGIvdmFsb3BzLmMKICAgIGludCB1c2luZ19lbmMgPSAwOwogICAgc3Ry dWN0IHZhbHVlICpuZXdfdmFsOwogIAotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3Zh bHByaW50LmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi92YWxwcmludC5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5vcmlnL2dkYi92YWxwcmludC5jCTIwMTUt MDItMTEgMTY6MDE6NTEuMzY2OTI0NjI1ICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDIwMi9n ZGIvdmFscHJpbnQuYwkyMDE1LTAyLTExIDE2OjAxOjU5LjYyNTk2NjQyNiArMDEwMAorLS0tIGdk Yi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvdmFscHJpbnQuYwkyMDE1LTA1LTMxIDE3OjA4OjQ2 Ljg2NTUwNjUyMyArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3ZhbHByaW50LmMJ MjAxNS0wNS0zMSAxNzoxNDoxNS45NjU1ODM1ODcgKzAyMDAKIEBAIC0yOTgsNyArMjk4LDcgQEAg dmFsX3ByaW50X3NjYWxhcl90eXBlX3AgKHN0cnVjdCB0eXBlICp0eQogIGludAogIHZhbHByaW50 X2NoZWNrX3ZhbGlkaXR5IChzdHJ1Y3QgdWlfZmlsZSAqc3RyZWFtLApAQCAtMzY3Niw3ICszNjUz LDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3ZhbHByaW50LmMKICAJICAgQ09S RV9BRERSIGFkZHJlc3MsIHN0cnVjdCB1aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogIAkg ICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwKICAJICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50 X29wdGlvbnMgKm9wdGlvbnMsCi1AQCAtOTk2LDcgKzk5Niw3IEBAIHZhbF9wcmludF90eXBlX2Nv ZGVfZmxhZ3MgKHN0cnVjdCB0eXBlICoKK0BAIC05OTgsNyArOTk4LDcgQEAgdmFsX3ByaW50X3R5 cGVfY29kZV9mbGFncyAoc3RydWN0IHR5cGUgKgogIAogIHZvaWQKICB2YWxfcHJpbnRfc2NhbGFy X2Zvcm1hdHRlZCAoc3RydWN0IHR5cGUgKnR5cGUsCkBAIC0zNjg1LDcgKzM2NjIsNyBAQCBJbmRl eDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvdmFscHJpbnQuYwogIAkJCSAgICBjb25zdCBzdHJ1 Y3QgdmFsdWUgKnZhbCwKICAJCQkgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMg Km9wdGlvbnMsCiAgCQkJICAgIGludCBzaXplLAotQEAgLTE1MzgsNyArMTUzOCw3IEBAIHByaW50 X2RlY2ltYWxfY2hhcnMgKHN0cnVjdCB1aV9maWxlICpzdHIKK0BAIC0xNTQwLDcgKzE1NDAsNyBA QCBwcmludF9kZWNpbWFsX2NoYXJzIChzdHJ1Y3QgdWlfZmlsZSAqc3RyCiAgCiAgdm9pZAogIHBy aW50X2hleF9jaGFycyAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgY29uc3QgZ2RiX2J5dGUgKnZh bGFkZHIsCkBAIC0zNjk0LDcgKzM2NzEsNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9n ZGIvdmFscHJpbnQuYwogIHsKICAgIGNvbnN0IGdkYl9ieXRlICpwOwogIAotQEAgLTE2NTUsMjIg KzE2NTUsMjIgQEAgbWF5YmVfcHJpbnRfYXJyYXlfaW5kZXggKHN0cnVjdCB0eXBlICppbgorQEAg LTE2NTcsMjIgKzE2NTcsMjIgQEAgbWF5YmVfcHJpbnRfYXJyYXlfaW5kZXggKHN0cnVjdCB0eXBl ICppbgogIAogIHZvaWQKICB2YWxfcHJpbnRfYXJyYXlfZWxlbWVudHMgKHN0cnVjdCB0eXBlICp0 eXBlLApAQCAtMzcxMCw3ICszNjg3LDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2Ri L3ZhbHByaW50LmMKICAgIHVuc2lnbmVkIGludCB0aGluZ3NfcHJpbnRlZCA9IDA7CiAtICB1bnNp Z25lZCBsZW47CiArICBVTE9OR0VTVCBsZW47Ci0gICBzdHJ1Y3QgdHlwZSAqZWx0dHlwZSwgKmlu ZGV4X3R5cGU7CisgICBzdHJ1Y3QgdHlwZSAqZWx0dHlwZSwgKmluZGV4X3R5cGUsICpiYXNlX2lu ZGV4X3R5cGU7CiAtICB1bnNpZ25lZCBlbHRsZW47CiArICBVTE9OR0VTVCBlbHRsZW47CiAgICAv KiBQb3NpdGlvbiBvZiB0aGUgYXJyYXkgZWxlbWVudCB3ZSBhcmUgZXhhbWluaW5nIHRvIHNlZQpA QCAtMzcyMSw5ICszNjk4LDkgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3ZhbHBy aW50LmMKIC0gIHVuc2lnbmVkIGludCByZXBzOwogKyAgVUxPTkdFU1QgcmVwczsKICAgIExPTkdF U1QgbG93X2JvdW5kLCBoaWdoX2JvdW5kOworICAgTE9OR0VTVCBsb3dfcG9zLCBoaWdoX3BvczsK ICAKLSAgIGVsdHR5cGUgPSBUWVBFX1RBUkdFVF9UWVBFICh0eXBlKTsKLUBAIC0xNzQxLDcgKzE3 NDEsNyBAQCB2YWxfcHJpbnRfYXJyYXlfZWxlbWVudHMgKHN0cnVjdCB0eXBlICp0CitAQCAtMTc2 Miw3ICsxNzYyLDcgQEAgdmFsX3ByaW50X2FycmF5X2VsZW1lbnRzIChzdHJ1Y3QgdHlwZSAqdAog IAkJICAgICBhZGRyZXNzLCBzdHJlYW0sIHJlY3Vyc2UgKyAxLCB2YWwsIG9wdGlvbnMsCiAgCQkg ICAgIGN1cnJlbnRfbGFuZ3VhZ2UpOwogIAkgIGFubm90YXRlX2VsdF9yZXAgKHJlcHMpOwpAQCAt MzczMiw3ICszNzA5LDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3ZhbHByaW50 LmMKICAJICBhbm5vdGF0ZV9lbHRfcmVwX2VuZCAoKTsKICAKICAJICBpID0gcmVwMSAtIDE7Ci1A QCAtMjM5Nyw3ICsyMzk3LDcgQEAgcHJpbnRfY29udmVydGVkX2NoYXJzX3RvX29ic3RhY2sgKHN0 cnVjdAorQEAgLTI0MTgsNyArMjQxOCw3IEBAIHByaW50X2NvbnZlcnRlZF9jaGFyc190b19vYnN0 YWNrIChzdHJ1Y3QKICAKICB2b2lkCiAgZ2VuZXJpY19wcmludHN0ciAoc3RydWN0IHVpX2ZpbGUg KnN0cmVhbSwgc3RydWN0IHR5cGUgKnR5cGUsIApAQCAtMzc0MSwxMCArMzcxOCwxMCBAQCBJbmRl eDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvdmFscHJpbnQuYwogIAkJICBjb25zdCBjaGFyICpl bmNvZGluZywgaW50IGZvcmNlX2VsbGlwc2VzLAogIAkJICBpbnQgcXVvdGVfY2hhciwgaW50IGNf c3R5bGVfdGVybWluYXRvciwKICAJCSAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMg Km9wdGlvbnMpCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvdmFscHJpbnQuaAorSW5k ZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3ZhbHByaW50LmgKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy44LjkwLjIwMTUwMjAyLm9yaWcvZ2RiL3ZhbHByaW50LmgJMjAxNS0wMi0xMSAxNjowMTo1 MS4zNjY5MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi92YWxwcmludC5o CTIwMTUtMDItMTEgMTY6MDE6NTkuNjI1OTY2NDI2ICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1 MDUyMC5vcmlnL2dkYi92YWxwcmludC5oCTIwMTUtMDUtMzEgMTc6MDg6NDYuODY1NTA2NTIzICsw MjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdmFscHJpbnQuaAkyMDE1LTA1LTMxIDE3 OjA5OjIxLjQ3MDcyNDkyOCArMDIwMAogQEAgLTExNSwxMSArMTE1LDExIEBAIGV4dGVybiB2b2lk IG1heWJlX3ByaW50X2FycmF5X2luZGV4IChzdHIKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwKICAJCQkJICAgICBjb25zdCBzdHJ1 Y3QgdmFsdWVfcHJpbnRfb3B0aW9ucyAqKTsKQEAgLTM3OTUsMTAgKzM3NzIsMTAgQEAgSW5kZXg6 IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3ZhbHByaW50LmgKICAJCQkgICAgICBjb25zdCBjaGFy ICplbmNvZGluZywgaW50IGZvcmNlX2VsbGlwc2VzLAogIAkJCSAgICAgIGludCBxdW90ZV9jaGFy LCBpbnQgY19zdHlsZV90ZXJtaW5hdG9yLAogIAkJCSAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9w cmludF9vcHRpb25zICpvcHRpb25zKTsKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi92 YWx1ZS5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdmFsdWUuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvdmFsdWUuYwkyMDE1LTAyLTExIDE2 OjAxOjUxLjM2NjkyNDYyNSArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3ZhbHVl LmMJMjAxNS0wMi0xMSAxNjowMTo1OS42MjY5NjY0MzEgKzAxMDAKKy0tLSBnZGItNy45LjUwLjIw MTUwNTIwLm9yaWcvZ2RiL3ZhbHVlLmMJMjAxNS0wNS0zMSAxNzowODo0Ni44Njg1MDY1NDIgKzAy MDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi92YWx1ZS5jCTIwMTUtMDUtMzEgMTc6MDk6 MjEuNDcxNzI0OTM1ICswMjAwCiBAQCAtNjYsMTAgKzY2LDEwIEBAIHN0cnVjdCBpbnRlcm5hbF9m dW5jdGlvbgogIHN0cnVjdCByYW5nZQogIHsKQEAgLTQwMzQsNyArNDAxMSw3IEBAIEluZGV4OiBn ZGItNy44LjkwLjIwMTUwMjAyL2dkYi92YWx1ZS5jCiAgewogICAgdmFsdWUtPnBvaW50ZWRfdG9f b2Zmc2V0ID0gdmFsOwogIH0KLUBAIC0yMjYzLDcgKzIyNzAsNyBAQCBnZXRfaW50ZXJuYWx2YXJf ZnVuY3Rpb24gKHN0cnVjdCBpbnRlcm5hCitAQCAtMjI4Nyw3ICsyMjk0LDcgQEAgZ2V0X2ludGVy bmFsdmFyX2Z1bmN0aW9uIChzdHJ1Y3QgaW50ZXJuYQogIH0KICAKICB2b2lkCkBAIC00MDQzLDcg KzQwMjAsNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvdmFsdWUuYwogIAkJCSAg IGludCBiaXRzaXplLCBzdHJ1Y3QgdmFsdWUgKm5ld3ZhbCkKICB7CiAgICBnZGJfYnl0ZSAqYWRk cjsKLUBAIC0yOTY5LDcgKzI5NzYsNyBAQCBzZXRfdmFsdWVfZW5jbG9zaW5nX3R5cGUgKHN0cnVj dCB2YWx1ZSAqCitAQCAtMzAwOCw3ICszMDE1LDcgQEAgc2V0X3ZhbHVlX2VuY2xvc2luZ190eXBl IChzdHJ1Y3QgdmFsdWUgKgogICAgIEZJRUxETk8gc2F5cyB3aGljaCBmaWVsZC4gICovCiAgCiAg c3RydWN0IHZhbHVlICoKQEAgLTQwNTIsNyArNDAyOSw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIw MTUwMjAyL2dkYi92YWx1ZS5jCiAgCQkgICAgICAgaW50IGZpZWxkbm8sIHN0cnVjdCB0eXBlICph cmdfdHlwZSkKICB7CiAgICBzdHJ1Y3QgdmFsdWUgKnY7Ci1AQCAtMzAxOSw3ICszMDI2LDcgQEAg dmFsdWVfcHJpbWl0aXZlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFyZworQEAgLTMwNTgsNyArMzA2 NSw3IEBAIHZhbHVlX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlICphcmcKICAgICAgICAv KiBUaGlzIGZpZWxkIGlzIGFjdHVhbGx5IGEgYmFzZSBzdWJvYmplY3QsIHNvIHByZXNlcnZlIHRo ZQogIAkgZW50aXJlIG9iamVjdCdzIGNvbnRlbnRzIGZvciBsYXRlciByZWZlcmVuY2VzIHRvIHZp cnR1YWwKICAJIGJhc2VzLCBldGMuICAqLwpAQCAtNDA2MSw3ICs0MDM4LDcgQEAgSW5kZXg6IGdk Yi03LjguOTAuMjAxNTAyMDIvZ2RiL3ZhbHVlLmMKICAKICAgICAgICAvKiBMYXp5IHJlZ2lzdGVy IHZhbHVlcyB3aXRoIG9mZnNldHMgYXJlIG5vdCBzdXBwb3J0ZWQuICAqLwogICAgICAgIGlmIChW QUxVRV9MVkFMIChhcmcxKSA9PSBsdmFsX3JlZ2lzdGVyICYmIHZhbHVlX2xhenkgKGFyZzEpKQot QEAgLTMxMDUsNyArMzExMiw3IEBAIHZhbHVlX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKmFyZzEsIGlu dCBmaWUKK0BAIC0zMTQ0LDcgKzMxNTEsNyBAQCB2YWx1ZV9maWVsZCAoc3RydWN0IHZhbHVlICph cmcxLCBpbnQgZmllCiAgc3RydWN0IHZhbHVlICoKICB2YWx1ZV9mbl9maWVsZCAoc3RydWN0IHZh bHVlICoqYXJnMXAsIHN0cnVjdCBmbl9maWVsZCAqZiwKICAJCWludCBqLCBzdHJ1Y3QgdHlwZSAq dHlwZSwKQEAgLTQwNzAsNyArNDA0Nyw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dk Yi92YWx1ZS5jCiAgewogICAgc3RydWN0IHZhbHVlICp2OwogICAgc3RydWN0IHR5cGUgKmZ0eXBl ID0gVFlQRV9GTl9GSUVMRF9UWVBFIChmLCBqKTsKLUBAIC0zMTc1LDE0ICszMTgyLDE0IEBAIHZh bHVlX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKiphcmcxcCwgc3QKK0BAIC0zMjE0LDE0ICszMjIx LDE0IEBAIHZhbHVlX2ZuX2ZpZWxkIChzdHJ1Y3QgdmFsdWUgKiphcmcxcCwgc3QKICAKICBzdGF0 aWMgTE9OR0VTVAogIHVucGFja19iaXRzX2FzX2xvbmcgKHN0cnVjdCB0eXBlICpmaWVsZF90eXBl LCBjb25zdCBnZGJfYnl0ZSAqdmFsYWRkciwKQEAgLTQwODcsNyArNDA2NCw3IEBAIEluZGV4OiBn ZGItNy44LjkwLjIwMTUwMjAyL2dkYi92YWx1ZS5jCiAgCiAgICAvKiBSZWFkIHRoZSBtaW5pbXVt IG51bWJlciBvZiBieXRlcyByZXF1aXJlZDsgdGhlcmUgbWF5IG5vdCBiZQogICAgICAgZW5vdWdo IGJ5dGVzIHRvIHJlYWQgYW4gZW50aXJlIFVMT05HRVNULiAgKi8KLUBAIC0zMjMxLDcgKzMyMzgs NyBAQCB1bnBhY2tfYml0c19hc19sb25nIChzdHJ1Y3QgdHlwZSAqZmllbGRfCitAQCAtMzI3MCw3 ICszMjc3LDcgQEAgdW5wYWNrX2JpdHNfYXNfbG9uZyAoc3RydWN0IHR5cGUgKmZpZWxkXwogIAog IGludAogIHVucGFja192YWx1ZV9maWVsZF9hc19sb25nIChzdHJ1Y3QgdHlwZSAqdHlwZSwgY29u c3QgZ2RiX2J5dGUgKnZhbGFkZHIsCkBAIC00MDk2LDcgKzQwNzMsNyBAQCBJbmRleDogZ2RiLTcu OC45MC4yMDE1MDIwMi9nZGIvdmFsdWUuYwogIAkJCSAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZh bCwgTE9OR0VTVCAqcmVzdWx0KQogIHsKICAgIGludCBiaXRwb3MgPSBUWVBFX0ZJRUxEX0JJVFBP UyAodHlwZSwgZmllbGRubyk7Ci1AQCAtMzI3NSw3ICszMjgyLDcgQEAgdW5wYWNrX2ZpZWxkX2Fz X2xvbmcgKHN0cnVjdCB0eXBlICp0eXBlLAorQEAgLTMzMTQsNyArMzMyMSw3IEBAIHVucGFja19m aWVsZF9hc19sb25nIChzdHJ1Y3QgdHlwZSAqdHlwZSwKICB2b2lkCiAgdW5wYWNrX3ZhbHVlX2Jp dGZpZWxkIChzdHJ1Y3QgdmFsdWUgKmRlc3RfdmFsLAogIAkJICAgICAgIGludCBiaXRwb3MsIGlu dCBiaXRzaXplLApAQCAtNDEwNSw3ICs0MDgyLDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAy MDIvZ2RiL3ZhbHVlLmMKICAJCSAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCkKICB7CiAg ICBlbnVtIGJmZF9lbmRpYW4gYnl0ZV9vcmRlcjsKLUBAIC0zMzEzLDcgKzMzMjAsNyBAQCB1bnBh Y2tfdmFsdWVfYml0ZmllbGQgKHN0cnVjdCB2YWx1ZSAqZGVzCitAQCAtMzM1Miw3ICszMzU5LDcg QEAgdW5wYWNrX3ZhbHVlX2JpdGZpZWxkIChzdHJ1Y3QgdmFsdWUgKmRlcwogIHN0cnVjdCB2YWx1 ZSAqCiAgdmFsdWVfZmllbGRfYml0ZmllbGQgKHN0cnVjdCB0eXBlICp0eXBlLCBpbnQgZmllbGRu bywKICAJCSAgICAgIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtNDExNCw3ICs0MDkxLDcg QEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3ZhbHVlLmMKICB7CiAgICBpbnQgYml0 cG9zID0gVFlQRV9GSUVMRF9CSVRQT1MgKHR5cGUsIGZpZWxkbm8pOwogICAgaW50IGJpdHNpemUg PSBUWVBFX0ZJRUxEX0JJVFNJWkUgKHR5cGUsIGZpZWxkbm8pOwotQEAgLTMzMzQsMTIgKzMzNDEs MTIgQEAgdmFsdWVfZmllbGRfYml0ZmllbGQgKHN0cnVjdCB0eXBlICp0eXBlLAorQEAgLTMzNzMs MTIgKzMzODAsMTIgQEAgdmFsdWVfZmllbGRfYml0ZmllbGQgKHN0cnVjdCB0eXBlICp0eXBlLAog IAogIHZvaWQKICBtb2RpZnlfZmllbGQgKHN0cnVjdCB0eXBlICp0eXBlLCBnZGJfYnl0ZSAqYWRk ciwKQEAgLTQxMjksMTAgKzQxMDYsMTAgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2Ri L3ZhbHVlLmMKICAKICAgIC8qIE5vcm1hbGl6ZSBCSVRQT1MuICAqLwogICAgYWRkciArPSBiaXRw b3MgLyA4OwotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3ZhbHVlLmgKK0luZGV4OiBn ZGItNy45LjUwLjIwMTUwNTIwL2dkYi92YWx1ZS5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45 MC4yMDE1MDIwMi5vcmlnL2dkYi92YWx1ZS5oCTIwMTUtMDItMTEgMTY6MDE6NTEuMzY2OTI0NjI1 ICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvdmFsdWUuaAkyMDE1LTAyLTExIDE2 OjAxOjU5LjYyNzk2NjQzNiArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIv dmFsdWUuaAkyMDE1LTA1LTMxIDE3OjA4OjQ2Ljg2OTUwNjU0OCArMDIwMAorKysrIGdkYi03Ljku NTAuMjAxNTA1MjAvZ2RiL3ZhbHVlLmgJMjAxNS0wNS0zMSAxNzowOToyMS40NzI3MjQ5NDEgKzAy MDAKIEBAIC0xMzEsOCArMTMxLDggQEAgZXh0ZXJuIHZvaWQgc2V0X3ZhbHVlX3BhcmVudCAoc3Ry dWN0IHZhbAogICAgIHdpdGhpbiB0aGUgcmVnaXN0ZXJzIHN0cnVjdHVyZS4gIE5vdGUgYWxzbyB0 aGUgbWVtYmVyCiAgICAgZW1iZWRkZWRfb2Zmc2V0IGJlbG93LiAgKi8KQEAgLTQzNTksNyArNDMz Niw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi92YWx1ZS5oCiAgCQkgICAgICAg c3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vyc2UsCiAgCQkgICAgICAgY29uc3Qgc3Ry dWN0IHZhbHVlICp2YWwsCiAgCQkgICAgICAgY29uc3Qgc3RydWN0IHZhbHVlX3ByaW50X29wdGlv bnMgKm9wdGlvbnMsCi1AQCAtMTA1NCwxMCArMTA1NywxMSBAQCBleHRlcm4gc3RydWN0IHZhbHVl ICp2YWx1ZV9saXRlcmFsX2NvbXBsCitAQCAtMTA1NiwxMCArMTA1OSwxMSBAQCBleHRlcm4gc3Ry dWN0IHZhbHVlICp2YWx1ZV9saXRlcmFsX2NvbXBsCiAgZXh0ZXJuIHN0cnVjdCB2YWx1ZSAqZmlu ZF9mdW5jdGlvbl9pbl9pbmZlcmlvciAoY29uc3QgY2hhciAqLAogIAkJCQkJCXN0cnVjdCBvYmpm aWxlICoqKTsKICAKQEAgLTQzNzMsMTEgKzQzNTAsMTEgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAx NTAyMDIvZ2RiL3ZhbHVlLmgKICAKICAvKiBVc2VyIGZ1bmN0aW9uIGhhbmRsZXIuICAqLwogIAot SW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3MzOTAtbGludXgtbmF0LmMKK0luZGV4OiBn ZGItNy45LjUwLjIwMTUwNTIwL2dkYi9zMzkwLWxpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuOC45MC4yMDE1MDIwMi5vcmlnL2dkYi9zMzkwLWxpbnV4LW5hdC5jCTIwMTUtMDItMTEg MTY6MDE6NTEuMzY2OTI0NjI1ICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvczM5 MC1saW51eC1uYXQuYwkyMDE1LTAyLTExIDE2OjAxOjU5LjYyNzk2NjQzNiArMDEwMAotQEAgLTU0 NCw3ICs1NDQsNyBAQCBzMzkwX2Nhbl91c2VfaHdfYnJlYWtwb2ludCAoc3RydWN0IHRhcmdlCist LS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9zMzkwLWxpbnV4LW5hdC5jCTIwMTUtMDUt MzEgMTc6MDg6NDYuODcwNTA2NTU1ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv czM5MC1saW51eC1uYXQuYwkyMDE1LTA1LTMxIDE3OjA5OjIxLjQ3MjcyNDk0MSArMDIwMAorQEAg LTYxOSw3ICs2MTksNyBAQCBzMzkwX2Nhbl91c2VfaHdfYnJlYWtwb2ludCAoc3RydWN0IHRhcmdl CiAgCiAgc3RhdGljIGludAogIHMzOTBfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChzdHJ1 Y3QgdGFyZ2V0X29wcyAqc2VsZiwKQEAgLTQzODYsMTEgKzQzNjMsMTEgQEAgSW5kZXg6IGdkYi03 LjguOTAuMjAxNTAyMDIvZ2RiL3MzOTAtbGludXgtbmF0LmMKICB7CiAgICByZXR1cm4gMTsKICB9 Ci1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvZXh0ZW5zaW9uLXByaXYuaAorSW5kZXg6 IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2V4dGVuc2lvbi1wcml2LmgKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy44LjkwLjIwMTUwMjAyLm9yaWcvZ2RiL2V4dGVuc2lvbi1wcml2LmgJMjAxNS0wMi0x MSAxNjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9l eHRlbnNpb24tcHJpdi5oCTIwMTUtMDItMTEgMTY6MDE6NTkuNjI3OTY2NDM2ICswMTAwCi1AQCAt MTc1LDcgKzE3NSw3IEBAIHN0cnVjdCBleHRlbnNpb25fbGFuZ3VhZ2Vfb3BzCistLS0gZ2RiLTcu OS41MC4yMDE1MDUyMC5vcmlnL2dkYi9leHRlbnNpb24tcHJpdi5oCTIwMTUtMDUtMzEgMTc6MDg6 NDYuODcwNTA2NTU1ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZXh0ZW5zaW9u LXByaXYuaAkyMDE1LTA1LTMxIDE3OjA5OjIxLjQ3MzcyNDk0OCArMDIwMAorQEAgLTE4MCw3ICsx ODAsNyBAQCBzdHJ1Y3QgZXh0ZW5zaW9uX2xhbmd1YWdlX29wcwogICAgZW51bSBleHRfbGFuZ19y YyAoKmFwcGx5X3ZhbF9wcmV0dHlfcHJpbnRlcikKICAgICAgKGNvbnN0IHN0cnVjdCBleHRlbnNp b25fbGFuZ3VhZ2VfZGVmbiAqLAogICAgICAgc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9i eXRlICp2YWxhZGRyLApAQCAtNDM5OSwxMSArNDM3NiwxMSBAQCBJbmRleDogZ2RiLTcuOC45MC4y MDE1MDIwMi9nZGIvZXh0ZW5zaW9uLXByaXYuaAogICAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVh bSwgaW50IHJlY3Vyc2UsCiAgICAgICBjb25zdCBzdHJ1Y3QgdmFsdWUgKnZhbCwgY29uc3Qgc3Ry dWN0IHZhbHVlX3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCiAgICAgICBjb25zdCBzdHJ1Y3QgbGFu Z3VhZ2VfZGVmbiAqbGFuZ3VhZ2UpOwotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL3B5 dGhvbi9weXRob24taW50ZXJuYWwuaAorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3B5 dGhvbi9weXRob24taW50ZXJuYWwuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguOTAuMjAxNTAy MDIub3JpZy9nZGIvcHl0aG9uL3B5dGhvbi1pbnRlcm5hbC5oCTIwMTUtMDItMTEgMTY6MDE6NTEu MzY2OTI0NjI1ICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvcHl0aG9uL3B5dGhv bi1pbnRlcm5hbC5oCTIwMTUtMDItMTEgMTY6MDE6NTkuNjI4OTY2NDQxICswMTAwCi1AQCAtMzEz LDcgKzMxMyw3IEBAIGV4dGVybiBpbnQgZ2RicHlfYXV0b19sb2FkX2VuYWJsZWQgKGNvbnMKKy0t LSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL3B5dGhvbi9weXRob24taW50ZXJuYWwuaAky MDE1LTA1LTMxIDE3OjA4OjQ2Ljg3MDUwNjU1NSArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1 MjAvZ2RiL3B5dGhvbi9weXRob24taW50ZXJuYWwuaAkyMDE1LTA1LTMxIDE3OjA5OjIxLjQ3Mzcy NDk0OCArMDIwMAorQEAgLTMxOCw3ICszMTgsNyBAQCBleHRlcm4gaW50IGdkYnB5X2F1dG9fbG9h ZF9lbmFibGVkIChjb25zCiAgZXh0ZXJuIGVudW0gZXh0X2xhbmdfcmMgZ2RicHlfYXBwbHlfdmFs X3ByZXR0eV9wcmludGVyCiAgICAoY29uc3Qgc3RydWN0IGV4dGVuc2lvbl9sYW5ndWFnZV9kZWZu ICosCiAgICAgc3RydWN0IHR5cGUgKnR5cGUsIGNvbnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAt NDQxMiwxMSArNDM4OSwxMSBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvcHl0aG9u L3B5dGhvbi1pbnRlcm5hbC5oCiAgICAgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSwgaW50IHJlY3Vy c2UsCiAgICAgY29uc3Qgc3RydWN0IHZhbHVlICp2YWwsCiAgICAgY29uc3Qgc3RydWN0IHZhbHVl X3ByaW50X29wdGlvbnMgKm9wdGlvbnMsCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIv dGFyZ2V0LWRlbGVnYXRlcy5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGFyZ2V0 LWRlbGVnYXRlcy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5vcmlnL2dk Yi90YXJnZXQtZGVsZWdhdGVzLmMJMjAxNS0wMi0xMSAxNjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAK LSsrKyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi90YXJnZXQtZGVsZWdhdGVzLmMJMjAxNS0wMi0x MSAxNjowMTo1OS42Mjk5NjY0NDYgKzAxMDAKLUBAIC02MzQsMTQgKzYzNCwxNCBAQCBkZWJ1Z193 YXRjaHBvaW50X2FkZHJfd2l0aGluX3JhbmdlIChzdHJ1CistLS0gZ2RiLTcuOS41MC4yMDE1MDUy MC5vcmlnL2dkYi90YXJnZXQtZGVsZWdhdGVzLmMJMjAxNS0wNS0zMSAxNzowODo0Ni44NzE1MDY1 NjEgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90YXJnZXQtZGVsZWdhdGVzLmMJ MjAxNS0wNS0zMSAxNzowOToyMS40NzQ3MjQ5NTQgKzAyMDAKK0BAIC03NDIsMTQgKzc0MiwxNCBA QCBkZWJ1Z193YXRjaHBvaW50X2FkZHJfd2l0aGluX3JhbmdlIChzdHJ1CiAgfQogIAogIHN0YXRp YyBpbnQKQEAgLTQ0MzMsNyArNDQxMCw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAyL2dk Yi90YXJnZXQtZGVsZWdhdGVzLmMKICB7CiAgICBpbnQgcmVzdWx0OwogICAgZnByaW50Zl91bmZp bHRlcmVkIChnZGJfc3RkbG9nLCAiLT4gJXMtPnRvX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2lu dCAoLi4uKVxuIiwgZGVidWdfdGFyZ2V0LnRvX3Nob3J0bmFtZSk7Ci1AQCAtNjUxLDcgKzY1MSw3 IEBAIGRlYnVnX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoc3RydWMKK0BAIC03NTksNyAr NzU5LDcgQEAgZGVidWdfcmVnaW9uX29rX2Zvcl9od193YXRjaHBvaW50IChzdHJ1YwogICAgZnB1 dHNfdW5maWx0ZXJlZCAoIiwgIiwgZ2RiX3N0ZGxvZyk7CiAgICB0YXJnZXRfZGVidWdfcHJpbnRf Q09SRV9BRERSIChhcmcxKTsKICAgIGZwdXRzX3VuZmlsdGVyZWQgKCIsICIsIGdkYl9zdGRsb2cp OwpAQCAtNDQ0MiwxMSArNDQxOSwxMSBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIv dGFyZ2V0LWRlbGVnYXRlcy5jCiAgICBmcHV0c191bmZpbHRlcmVkICgiKSA9ICIsIGdkYl9zdGRs b2cpOwogICAgdGFyZ2V0X2RlYnVnX3ByaW50X2ludCAocmVzdWx0KTsKICAgIGZwdXRzX3VuZmls dGVyZWQgKCJcbiIsIGdkYl9zdGRsb2cpOwotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2Ri L2FhcmNoNjQtbGludXgtbmF0LmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9hYXJj aDY0LWxpbnV4LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5vcmln L2dkYi9hYXJjaDY0LWxpbnV4LW5hdC5jCTIwMTUtMDItMTEgMTY6MDE6NTEuMzY2OTI0NjI1ICsw MTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvYWFyY2g2NC1saW51eC1uYXQuYwkyMDE1 LTAyLTExIDE2OjAxOjU5LjYyOTk2NjQ0NiArMDEwMAotQEAgLTEzODksNyArMTM4OSw3IEBAIGFh cmNoNjRfbGludXhfcmVtb3ZlX3dhdGNocG9pbnQgKHN0cnVjdAorLS0tIGdkYi03LjkuNTAuMjAx NTA1MjAub3JpZy9nZGIvYWFyY2g2NC1saW51eC1uYXQuYwkyMDE1LTA1LTMxIDE3OjA4OjQ2Ljg3 MjUwNjU2NyArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2FhcmNoNjQtbGludXgt bmF0LmMJMjAxNS0wNS0zMSAxNzowOToyMS40NzQ3MjQ5NTQgKzAyMDAKK0BAIC0xMzg2LDcgKzEz ODYsNyBAQCBhYXJjaDY0X2xpbnV4X3JlbW92ZV93YXRjaHBvaW50IChzdHJ1Y3QKICAKICBzdGF0 aWMgaW50CiAgYWFyY2g2NF9saW51eF9yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQgKHN0cnVj dCB0YXJnZXRfb3BzICpzZWxmLApAQCAtNDQ1NSwxMCArNDQzMiwxMCBAQCBJbmRleDogZ2RiLTcu OC45MC4yMDE1MDIwMi9nZGIvYWFyY2g2NC1saW51eC1uYXQuYwogIHsKICAgIENPUkVfQUREUiBh bGlnbmVkX2FkZHI7CiAgCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvbmF0L3g4Ni1k cmVncy5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvbmF0L3g4Ni1kcmVncy5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5vcmlnL2dkYi9uYXQveDg2LWRyZWdz LmMJMjAxNS0wMi0xMSAxNjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIw MTUwMjAyL2dkYi9uYXQveDg2LWRyZWdzLmMJMjAxNS0wMi0xMSAxNjowMTo1OS42Mjk5NjY0NDYg KzAxMDAKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL25hdC94ODYtZHJlZ3MuYwky MDE1LTA1LTMxIDE3OjA4OjQ2Ljg3MjUwNjU2NyArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1 MjAvZ2RiL25hdC94ODYtZHJlZ3MuYwkyMDE1LTA1LTMxIDE3OjA5OjIxLjQ3NDcyNDk1NCArMDIw MAogQEAgLTM4NCw3ICszODQsNyBAQCB4ODZfcmVtb3ZlX2FsaWduZWRfd2F0Y2hwb2ludCAoc3Ry dWN0IHg4CiAgCiAgc3RhdGljIGludApAQCAtNDQ3NywxMSArNDQ1NCwxMSBAQCBJbmRleDogZ2Ri LTcuOC45MC4yMDE1MDIwMi9nZGIvbmF0L3g4Ni1kcmVncy5jCiAgewogICAgaW50IG5yZWdzOwog IAotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2NvbXBpbGUvY29tcGlsZS1jLXN1cHBv cnQuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2NvbXBpbGUvY29tcGlsZS1jLXN1 cHBvcnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvY29t cGlsZS9jb21waWxlLWMtc3VwcG9ydC5jCTIwMTUtMDItMTEgMTY6MDE6NTEuMzY2OTI0NjI1ICsw MTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvY29tcGlsZS9jb21waWxlLWMtc3VwcG9y dC5jCTIwMTUtMDItMTEgMTY6MDE6NTkuNjI5OTY2NDQ2ICswMTAwCi1AQCAtMjc3LDExICsyNzcs MTEgQEAgZ2VuZXJhdGVfcmVnaXN0ZXJfc3RydWN0IChzdHJ1Y3QgdWlfZmlsZQorLS0tIGdkYi03 LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvY29tcGlsZS9jb21waWxlLWMtc3VwcG9ydC5jCTIwMTUt MDUtMzEgMTc6MDg6NDYuODcyNTA2NTY3ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvY29tcGlsZS9jb21waWxlLWMtc3VwcG9ydC5jCTIwMTUtMDUtMzEgMTc6MDk6MjEuNDc1NzI0 OTYwICswMjAwCitAQCAtMjk5LDExICsyOTksMTEgQEAgZ2VuZXJhdGVfcmVnaXN0ZXJfc3RydWN0 IChzdHJ1Y3QgdWlfZmlsZQogIAogIAkgICAgICBkZWZhdWx0OgogIAkJZnByaW50Zl91bmZpbHRl cmVkIChzdHJlYW0sCkBAIC00NDk1LDExICs0NDcyLDExIEBAIEluZGV4OiBnZGItNy44LjkwLjIw MTUwMjAyL2dkYi9jb21waWxlL2NvbXBpbGUtYy1zdXBwb3J0LmMKICAJICAgICAgfQogIAkgICAg ZnB1dHNfdW5maWx0ZXJlZCAoIjtcbiIsIHN0cmVhbSk7CiAgCi1JbmRleDogZ2RiLTcuOC45MC4y MDE1MDIwMi9nZGIvbmF0L3g4Ni1kcmVncy5oCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvbmF0L3g4Ni1kcmVncy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5v cmlnL2dkYi9uYXQveDg2LWRyZWdzLmgJMjAxNS0wMi0xMSAxNjowMTo1MS4zNjY5MjQ2MjUgKzAx MDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9uYXQveDg2LWRyZWdzLmgJMjAxNS0wMi0x MSAxNjowMTo1OS42MzA5NjY0NTEgKzAxMDAKLUBAIC0xMTIsNyArMTEyLDcgQEAgZXh0ZXJuIGlu dCB4ODZfZHJfcmVtb3ZlX3dhdGNocG9pbnQgKHN0cgorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAu b3JpZy9nZGIvbmF0L3g4Ni1kcmVncy5oCTIwMTUtMDUtMzEgMTc6MDg6NDYuODczNTA2NTczICsw MjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvbmF0L3g4Ni1kcmVncy5oCTIwMTUtMDUt MzEgMTc6MDk6MjEuNDc1NzI0OTYwICswMjAwCitAQCAtMTE2LDcgKzExNiw3IEBAIGV4dGVybiBp bnQgeDg2X2RyX3JlbW92ZV93YXRjaHBvaW50IChzdHIKICAvKiBSZXR1cm4gbm9uLXplcm8gaWYg d2UgY2FuIHdhdGNoIGEgbWVtb3J5IHJlZ2lvbiB0aGF0IHN0YXJ0cyBhdAogICAgIGFkZHJlc3Mg QUREUiBhbmQgd2hvc2UgbGVuZ3RoIGlzIExFTiBieXRlcy4gICovCiAgZXh0ZXJuIGludCB4ODZf ZHJfcmVnaW9uX29rX2Zvcl93YXRjaHBvaW50IChzdHJ1Y3QgeDg2X2RlYnVnX3JlZ19zdGF0ZSAq c3RhdGUsCkBAIC00NTA4LDEwICs0NDg1LDEwIEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMjAy L2dkYi9uYXQveDg2LWRyZWdzLmgKICAKICAvKiBJZiB0aGUgaW5mZXJpb3IgaGFzIHNvbWUgYnJl YWsvd2F0Y2hwb2ludCB0aGF0IHRyaWdnZXJlZCwgc2V0IHRoZQogICAgIGFkZHJlc3MgYXNzb2Np YXRlZCB3aXRoIHRoYXQgYnJlYWsvd2F0Y2hwb2ludCBhbmQgcmV0dXJuIHRydWUuCi1JbmRleDog Z2RiLTcuOC45MC4yMDE1MDIwMi9nZGIveDg2LW5hdC5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1 MDUyMC9nZGIveDg2LW5hdC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDIwMi5v cmlnL2dkYi94ODYtbmF0LmMJMjAxNS0wMi0xMSAxNjowMTo1MS4zNjY5MjQ2MjUgKzAxMDAKLSsr KyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi94ODYtbmF0LmMJMjAxNS0wMi0xMSAxNjowMTo1OS42 MzA5NjY0NTEgKzAxMDAKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL3g4Ni1uYXQu YwkyMDE1LTA1LTMxIDE3OjA4OjQ2Ljg3MzUwNjU3MyArMDIwMAorKysrIGdkYi03LjkuNTAuMjAx NTA1MjAvZ2RiL3g4Ni1uYXQuYwkyMDE1LTA1LTMxIDE3OjA5OjIxLjQ3NTcyNDk2MCArMDIwMAog QEAgLTE3OCw3ICsxNzgsNyBAQCB4ODZfcmVtb3ZlX3dhdGNocG9pbnQgKHN0cnVjdCB0YXJnZXRf b3BzCiAgCiAgc3RhdGljIGludApAQCAtNDUyMSwxMSArNDQ5OCwxMSBAQCBJbmRleDogZ2RiLTcu OC45MC4yMDE1MDIwMi9nZGIveDg2LW5hdC5jCiAgewogICAgc3RydWN0IHg4Nl9kZWJ1Z19yZWdf c3RhdGUgKnN0YXRlCiAgICAgID0geDg2X2RlYnVnX3JlZ19zdGF0ZSAocHRpZF9nZXRfcGlkIChp bmZlcmlvcl9wdGlkKSk7Ci1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDIwMi9nZGIvZ3VpbGUvZ3Vp bGUtaW50ZXJuYWwuaAorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2d1aWxlL2d1aWxl LWludGVybmFsLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMjAyLm9yaWcvZ2Ri L2d1aWxlL2d1aWxlLWludGVybmFsLmgJMjAxNS0wMi0wMiAwMjo1ODoyOS4wMDAwMDAwMDAgKzAx MDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMjAyL2dkYi9ndWlsZS9ndWlsZS1pbnRlcm5hbC5oCTIw MTUtMDItMTEgMTY6MDM6MzYuOTAxNDQ1MzYxICswMTAwCi1AQCAtNTU5LDcgKzU1OSw3IEBAIGV4 dGVybiB2b2lkIGdkYnNjbV9wcmVzZXJ2ZV92YWx1ZXMKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIw Lm9yaWcvZ2RiL2d1aWxlL2d1aWxlLWludGVybmFsLmgJMjAxNS0wNS0zMSAxNzowODo0Ni44NzM1 MDY1NzMgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9ndWlsZS9ndWlsZS1pbnRl cm5hbC5oCTIwMTUtMDUtMzEgMTc6MDk6MjEuNDc1NzI0OTYwICswMjAwCitAQCAtNTYyLDcgKzU2 Miw3IEBAIGV4dGVybiB2b2lkIGdkYnNjbV9wcmVzZXJ2ZV92YWx1ZXMKICBleHRlcm4gZW51bSBl eHRfbGFuZ19yYyBnZGJzY21fYXBwbHlfdmFsX3ByZXR0eV9wcmludGVyCiAgICAoY29uc3Qgc3Ry dWN0IGV4dGVuc2lvbl9sYW5ndWFnZV9kZWZuICosCiAgICAgc3RydWN0IHR5cGUgKnR5cGUsIGNv bnN0IGdkYl9ieXRlICp2YWxhZGRyLApAQCAtNDUzNCwxMSArNDUxMSwxMSBAQCBJbmRleDogZ2Ri LTcuOC45MC4yMDE1MDIwMi9nZGIvZ3VpbGUvZ3VpbGUtaW50ZXJuYWwuaAogICAgIHN0cnVjdCB1 aV9maWxlICpzdHJlYW0sIGludCByZWN1cnNlLAogICAgIGNvbnN0IHN0cnVjdCB2YWx1ZSAqdmFs LAogICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25zLAotSW5kZXg6 IGdkYi03LjguOTAuMjAxNTAyMDIvZ2RiL2d1aWxlL3NjbS1wcmV0dHktcHJpbnQuYworSW5kZXg6 IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2d1aWxlL3NjbS1wcmV0dHktcHJpbnQuYwogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGdkYi03LjguOTAuMjAxNTAyMDIub3JpZy9nZGIvZ3VpbGUvc2NtLXByZXR0eS1w cmludC5jCTIwMTUtMDItMDIgMDI6NTg6MjkuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcuOC45 MC4yMDE1MDIwMi9nZGIvZ3VpbGUvc2NtLXByZXR0eS1wcmludC5jCTIwMTUtMDItMTEgMTY6MDM6 MTQuMDYxMzM1OTQ1ICswMTAwCi1AQCAtOTU1LDcgKzk1NSw3IEBAIHBwc2NtX3ByaW50X2NoaWxk cmVuIChTQ00gcHJpbnRlciwgZW51bQorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIv Z3VpbGUvc2NtLXByZXR0eS1wcmludC5jCTIwMTUtMDUtMzEgMTc6MDg6NDYuODczNTA2NTczICsw MjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZ3VpbGUvc2NtLXByZXR0eS1wcmludC5j CTIwMTUtMDUtMzEgMTc6MDk6MjEuNDc2NzI0OTY2ICswMjAwCitAQCAtOTU4LDcgKzk1OCw3IEBA IHBwc2NtX3ByaW50X2NoaWxkcmVuIChTQ00gcHJpbnRlciwgZW51bQogIGVudW0gZXh0X2xhbmdf cmMKICBnZGJzY21fYXBwbHlfdmFsX3ByZXR0eV9wcmludGVyIChjb25zdCBzdHJ1Y3QgZXh0ZW5z aW9uX2xhbmd1YWdlX2RlZm4gKmV4dGxhbmcsCiAgCQkJCSBzdHJ1Y3QgdHlwZSAqdHlwZSwgY29u c3QgZ2RiX2J5dGUgKnZhbGFkZHIsCgpkaWZmIC0tZ2l0IGEvZ2RiLXJoYno3OTU0MjQtYml0cG9z LTIzb2YyNS5wYXRjaCBiL2dkYi1yaGJ6Nzk1NDI0LWJpdHBvcy0yM29mMjUucGF0Y2gKaW5kZXgg MDlmOGYyYS4uODYyZjNhYSAxMDA2NDQKLS0tIGEvZ2RiLXJoYno3OTU0MjQtYml0cG9zLTIzb2Yy NS5wYXRjaAorKysgYi9nZGItcmhiejc5NTQyNC1iaXRwb3MtMjNvZjI1LnBhdGNoCkBAIC0xMzcs MTAgKzEzNywxMCBAQCBDb250ZW50LVR5cGU6IHRleHQveC1wYXRjaAogQ29udGVudC1UcmFuc2Zl ci1FbmNvZGluZzogN2JpdAogQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5h bWU9Yml0cG9zLXRkZXAucGF0Y2gKIAotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2Fs cGhhLXRkZXAuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2FscGhhLXRkZXAuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvYWxwaGEtdGRlcC5j CTIwMTUtMDEtMDUgMjI6MTg6NTUuOTg4MDIzNjA3ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvYWxwaGEtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTk6MDguMDg2MDc4NDQwICswMTAw CistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9hbHBoYS10ZGVwLmMJMjAxNS0wNS0z MSAxNzoxNTowMS4wNTY4NjgwMzUgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9h bHBoYS10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMy40MTk4ODI4NDYgKzAyMDAKIEBAIC0yOTgs MTggKzI5OCwxOCBAQCBhbHBoYV9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnCiAg ewogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdk YmFyY2gpOwpAQCAtMTg0LDIwICsxODQsMjAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL2FscGhhLXRkZXAuYwogIAkgICAgICBtZW1jcHkgKGFyZ19yZWdfYnVmZmVyICsgb2Zmc2V0 LCBjb250ZW50cywgdGxlbik7CiAgCSAgICAgIG9mZnNldCArPSB0bGVuOwogIAkgICAgICBjb250 ZW50cyArPSB0bGVuOwotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2FtZDY0LXRkZXAu YworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2FtZDY0LXRkZXAuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvYW1kNjQtdGRlcC5jCTIwMTUtMDEt MDUgMjI6MTg6NTUuOTg5MDIzNjEyICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIv YW1kNjQtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTk6MDguMDg3MDc4NDQ0ICswMTAwCi1AQCAtNzAw LDcgKzcwMCw3IEBAIGFtZDY0X3JldHVybl92YWx1ZSAoc3RydWN0IGdkYmFyY2ggKmdkYmEKKy0t LSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2FtZDY0LXRkZXAuYwkyMDE1LTA1LTMxIDE3 OjE1OjAxLjA1ODg2ODA0NyArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2FtZDY0 LXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjQwLjI1MzExMzcyMiArMDIwMAorQEAgLTcwMSw3ICs3 MDEsNyBAQCBhbWQ2NF9yZXR1cm5fdmFsdWUgKHN0cnVjdCBnZGJhcmNoICpnZGJhCiAgCQkgICAg Z2RiX2J5dGUgKnJlYWRidWYsIGNvbnN0IGdkYl9ieXRlICp3cml0ZWJ1ZikKICB7Ci0gICBlbnVt IGFtZDY0X3JlZ19jbGFzcyBjbGFzc1syXTsKKyAgIGVudW0gYW1kNjRfcmVnX2NsYXNzIHRoZWNs YXNzWzJdOwogLSAgaW50IGxlbiA9IFRZUEVfTEVOR1RIICh0eXBlKTsKICsgIExPTkdFU1QgbGVu ID0gVFlQRV9MRU5HVEggKHR5cGUpOwogICAgc3RhdGljIGludCBpbnRlZ2VyX3JlZ251bVtdID0g eyBBTUQ2NF9SQVhfUkVHTlVNLCBBTUQ2NF9SRFhfUkVHTlVNIH07CiAgICBzdGF0aWMgaW50IHNz ZV9yZWdudW1bXSA9IHsgQU1ENjRfWE1NMF9SRUdOVU0sIEFNRDY0X1hNTTFfUkVHTlVNIH07CiAg ICBpbnQgaW50ZWdlcl9yZWcgPSAwOwotQEAgLTg1MSw4ICs4NTEsOCBAQCBhbWQ2NF9wdXNoX2Fy Z3VtZW50cyAoc3RydWN0IHJlZ2NhY2hlICpyCitAQCAtODUyLDggKzg1Miw4IEBAIGFtZDY0X3B1 c2hfYXJndW1lbnRzIChzdHJ1Y3QgcmVnY2FjaGUgKnIKICAgIH07CiAgICBzdHJ1Y3QgdmFsdWUg KipzdGFja19hcmdzID0gYWxsb2NhIChuYXJncyAqIHNpemVvZiAoc3RydWN0IHZhbHVlICopKTsK ICAgIGludCBudW1fc3RhY2tfYXJncyA9IDA7CkBAIC0yMDgsMTkgKzIwOCwxOSBAQCBJbmRleDog Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYW1kNjQtdGRlcC5jCiAgICBpbnQgaW50ZWdlcl9yZWcg PSAwOwogICAgaW50IHNzZV9yZWcgPSAwOwogICAgaW50IGk7Ci1AQCAtODY0LDcgKzg2NCw3IEBA IGFtZDY0X3B1c2hfYXJndW1lbnRzIChzdHJ1Y3QgcmVnY2FjaGUgKnIKK0BAIC04NjUsNyArODY1 LDcgQEAgYW1kNjRfcHVzaF9hcmd1bWVudHMgKHN0cnVjdCByZWdjYWNoZSAqcgogICAgZm9yIChp ID0gMDsgaSA8IG5hcmdzOyBpKyspCiAgICAgIHsKICAgICAgICBzdHJ1Y3QgdHlwZSAqdHlwZSA9 IHZhbHVlX3R5cGUgKGFyZ3NbaV0pOwogLSAgICAgIGludCBsZW4gPSBUWVBFX0xFTkdUSCAodHlw ZSk7CiArICAgICAgTE9OR0VTVCBsZW4gPSBUWVBFX0xFTkdUSCAodHlwZSk7Ci0gICAgICAgZW51 bSBhbWQ2NF9yZWdfY2xhc3MgY2xhc3NbMl07CisgICAgICAgZW51bSBhbWQ2NF9yZWdfY2xhc3Mg dGhlY2xhc3NbMl07CiAgICAgICAgaW50IG5lZWRlZF9pbnRlZ2VyX3JlZ3MgPSAwOwogICAgICAg IGludCBuZWVkZWRfc3NlX3JlZ3MgPSAwOwotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L2FtZDY0LXdpbmRvd3MtdGRlcC5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvYW1k NjQtd2luZG93cy10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9y aWcvZ2RiL2FtZDY0LXdpbmRvd3MtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTg6NTUuOTkwMDIzNjE2 ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYW1kNjQtd2luZG93cy10ZGVwLmMJ MjAxNS0wMS0wNSAyMjoxOTowOC4wODcwNzg0NDQgKzAxMDAKKy0tLSBnZGItNy45LjUwLjIwMTUw NTIwLm9yaWcvZ2RiL2FtZDY0LXdpbmRvd3MtdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDEuMDU5 ODY4MDU0ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvYW1kNjQtd2luZG93cy10 ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMy40MjE4ODI4NTkgKzAyMDAKIEBAIC0yODgsNyArMjg4 LDcgQEAgYW1kNjRfd2luZG93c19yZXR1cm5fdmFsdWUgKHN0cnVjdCBnZGJhcgogIAkJCSAgICBz dHJ1Y3QgdHlwZSAqdHlwZSwgc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwKICAJCQkgICAgZ2Ri X2J5dGUgKnJlYWRidWYsIGNvbnN0IGdkYl9ieXRlICp3cml0ZWJ1ZikKQEAgLTIzMCwxMSArMjMw LDExIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9hbWQ2NC13aW5kb3dzLXRkZXAu YwogICAgaW50IHJlZ251bSA9IC0xOwogIAogICAgLyogU2VlIGlmIG91ciB2YWx1ZSBpcyByZXR1 cm5lZCB0aHJvdWdoIGEgcmVnaXN0ZXIuICBJZiBpdCBpcywgdGhlbgotSW5kZXg6IGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL2FybS10ZGVwLmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dk Yi9hcm0tdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dk Yi9hcm0tdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTg6NTUuOTk1MDIzNjM5ICswMTAwCi0rKysgZ2Ri LTcuOC41MC4yMDE0MTIyOC9nZGIvYXJtLXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE5OjA4LjA4OTA3 ODQ1MyArMDEwMAotQEAgLTM1MjQsNyArMzUyNCw3IEBAIGFybV92ZnBfY3ByY19yZWdfY2hhciAo ZW51bSBhcm1fdmZwX2NwcmMKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2FybS10 ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMS4wNjk4NjgxMTYgKzAyMDAKKysrKyBnZGItNy45LjUw LjIwMTUwNTIwL2dkYi9hcm0tdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDMuNDI1ODgyODg0ICsw MjAwCitAQCAtMzUzNyw3ICszNTM3LDcgQEAgYXJtX3ZmcF9jcHJjX3JlZ19jaGFyIChlbnVtIGFy bV92ZnBfY3ByYwogICAgIGFycmF5KS4gIFZlY3RvciB0eXBlcyBhcmUgbm90IGN1cnJlbnRseSBz dXBwb3J0ZWQsIG1hdGNoaW5nIHRoZQogICAgIGdlbmVyaWMgQUFQQ1Mgc3VwcG9ydC4gICovCiAg CkBAIC0yNDMsNyArMjQzLDcgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2FybS10 ZGVwLmMKICBhcm1fdmZwX2NwcmNfc3ViX2NhbmRpZGF0ZSAoc3RydWN0IHR5cGUgKnQsCiAgCQkJ ICAgIGVudW0gYXJtX3ZmcF9jcHJjX2Jhc2VfdHlwZSAqYmFzZV90eXBlKQogIHsKLUBAIC0zNTg3 LDcgKzM1ODcsNyBAQCBhcm1fdmZwX2NwcmNfc3ViX2NhbmRpZGF0ZSAoc3RydWN0IHR5cGUKK0BA IC0zNjAwLDcgKzM2MDAsNyBAQCBhcm1fdmZwX2NwcmNfc3ViX2NhbmRpZGF0ZSAoc3RydWN0IHR5 cGUKICAKICAgICAgY2FzZSBUWVBFX0NPREVfQVJSQVk6CiAgICAgICAgewpAQCAtMjUyLDcgKzI1 Miw3IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9hcm0tdGRlcC5jCiAgCXVuc2ln bmVkIHVuaXRsZW47CiAgCWNvdW50ID0gYXJtX3ZmcF9jcHJjX3N1Yl9jYW5kaWRhdGUgKFRZUEVf VEFSR0VUX1RZUEUgKHQpLCBiYXNlX3R5cGUpOwogIAlpZiAoY291bnQgPT0gLTEpCi1AQCAtMzYw NywxMyArMzYwNywxNSBAQCBhcm1fdmZwX2NwcmNfc3ViX2NhbmRpZGF0ZSAoc3RydWN0IHR5cGUK K0BAIC0zNjIwLDEzICszNjIwLDE1IEBAIGFybV92ZnBfY3ByY19zdWJfY2FuZGlkYXRlIChzdHJ1 Y3QgdHlwZQogIAogICAgICBjYXNlIFRZUEVfQ09ERV9TVFJVQ1Q6CiAgICAgICAgewpAQCAtMjcx LDcgKzI3MSw3IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9hcm0tdGRlcC5jCiAg CSAgICBpZiAoc3ViX2NvdW50ID09IC0xKQogIAkgICAgICByZXR1cm4gLTE7CiAgCSAgICBjb3Vu dCArPSBzdWJfY291bnQ7Ci1AQCAtMzYzMywxMyArMzYzNSwxNSBAQCBhcm1fdmZwX2NwcmNfc3Vi X2NhbmRpZGF0ZSAoc3RydWN0IHR5cGUKK0BAIC0zNjQ2LDEzICszNjQ4LDE1IEBAIGFybV92ZnBf Y3ByY19zdWJfY2FuZGlkYXRlIChzdHJ1Y3QgdHlwZQogIAogICAgICBjYXNlIFRZUEVfQ09ERV9V TklPTjoKICAgICAgICB7CkBAIC0yOTAsNyArMjkwLDcgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAx NDEyMjgvZ2RiL2FybS10ZGVwLmMKICAJICAgIGlmIChzdWJfY291bnQgPT0gLTEpCiAgCSAgICAg IHJldHVybiAtMTsKICAJICAgIGNvdW50ID0gKGNvdW50ID4gc3ViX2NvdW50ID8gY291bnQgOiBz dWJfY291bnQpOwotQEAgLTM2NzUsNyArMzY3OSw3IEBAIGFybV92ZnBfY2FsbF9jYW5kaWRhdGUg KHN0cnVjdCB0eXBlICp0LAorQEAgLTM2ODgsNyArMzY5Miw3IEBAIGFybV92ZnBfY2FsbF9jYW5k aWRhdGUgKHN0cnVjdCB0eXBlICp0LAogIAkJCWludCAqY291bnQpCiAgewogICAgZW51bSBhcm1f dmZwX2NwcmNfYmFzZV90eXBlIGIgPSBWRlBfQ1BSQ19VTktOT1dOOwpAQCAtMjk5LDcgKzI5OSw3 IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9hcm0tdGRlcC5jCiAgICBpZiAoYyA8 PSAwIHx8IGMgPiA0KQogICAgICByZXR1cm4gMDsKICAgICpiYXNlX3R5cGUgPSBiOwotQEAgLTM3 NTYsNyArMzc2MCw3IEBAIGFybV9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZGIK K0BAIC0zNzY5LDcgKzM3NzMsNyBAQCBhcm1fcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJj aCAqZ2RiCiAgCiAgICBmb3IgKGFyZ251bSA9IDA7IGFyZ251bSA8IG5hcmdzOyBhcmdudW0rKykK ICAgICAgewpAQCAtMzA4LDEwICszMDgsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL2FybS10ZGVwLmMKICAgICAgICBzdHJ1Y3QgdHlwZSAqYXJnX3R5cGU7CiAgICAgICAgc3Ry dWN0IHR5cGUgKnRhcmdldF90eXBlOwogICAgICAgIGVudW0gdHlwZV9jb2RlIHR5cGVjb2RlOwot SW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2F2ci10ZGVwLmMKK0luZGV4OiBnZGItNy45 LjUwLjIwMTUwNTIwL2dkYi9hdnItdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4y MDE0MTIyOC5vcmlnL2dkYi9hdnItdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTg6NTUuOTk2MDIzNjQz ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvYXZyLXRkZXAuYwkyMDE1LTAxLTA1 IDIyOjE5OjA4LjA4OTA3ODQ1MyArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9n ZGIvYXZyLXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAxLjA3MTg2ODEyOSArMDIwMAorKysrIGdk Yi03LjkuNTAuMjAxNTA1MjAvZ2RiL2F2ci10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMy40MjU4 ODI4ODQgKzAyMDAKIEBAIC0xMTk2LDEzICsxMTk2LDE0IEBAIGF2cl9kdW1teV9pZCAoc3RydWN0 IGdkYmFyY2ggKmdkYmFyY2gsIHMKICAKICBzdHJ1Y3Qgc3RhY2tfaXRlbQpAQCAtMzQ1LDEwICsz NDUsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2F2ci10ZGVwLmMKICAKICAg ICAgICAvKiBDYWxjdWxhdGUgdGhlIHBvdGVudGlhbCBsYXN0IHJlZ2lzdGVyIG5lZWRlZC4gICov CiAgICAgICAgbGFzdF9yZWdudW0gPSByZWdudW0gLSAobGVuICsgKGxlbiAmIDEpKTsKLUluZGV4 OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9iZmluLXRkZXAuYworSW5kZXg6IGdkYi03LjkuNTAu MjAxNTA1MjAvZ2RiL2JmaW4tdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0 MTIyOC5vcmlnL2dkYi9iZmluLXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE4OjU1Ljk5NjAyMzY0MyAr MDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2JmaW4tdGRlcC5jCTIwMTUtMDEtMDUg MjI6MTk6MDguMDkwMDc4NDU4ICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dk Yi9iZmluLXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAxLjA3MTg2ODEyOSArMDIwMAorKysrIGdk Yi03LjkuNTAuMjAxNTA1MjAvZ2RiL2JmaW4tdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDMuNDI2 ODgyODkwICswMjAwCiBAQCAtNTA0LDcgKzUwNCw3IEBAIGJmaW5fcHVzaF9kdW1teV9jYWxsIChz dHJ1Y3QgZ2RiYXJjaCAqZ2QKICAgIGdkYl9ieXRlIGJ1Zls0XTsKICAgIGludCBpOwpAQCAtMzY3 LDEwICszNjcsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2JmaW4tdGRlcC5j CiAgCiAgICAgICAgc3AgLT0gY29udGFpbmVyX2xlbjsKICAgICAgICB3cml0ZV9tZW1vcnkgKHNw LCB2YWx1ZV9jb250ZW50c193cml0ZWFibGUgKGFyZ3NbaV0pLCBjb250YWluZXJfbGVuKTsKLUlu ZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jcmlzLXRkZXAuYworSW5kZXg6IGdkYi03Ljku NTAuMjAxNTA1MjAvZ2RiL2NyaXMtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4y MDE0MTIyOC5vcmlnL2dkYi9jcmlzLXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE4OjU1Ljk5NzAyMzY0 OCArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2NyaXMtdGRlcC5jCTIwMTUtMDEt MDUgMjI6MTk6MDguMDkwMDc4NDU4ICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmln L2dkYi9jcmlzLXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAxLjA3Mzg2ODE0MiArMDIwMAorKysr IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2NyaXMtdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDMu NDI3ODgyODk3ICswMjAwCiBAQCAtNjYzLDEzICs2NjMsMTMgQEAgc3RhdGljIENPUkVfQUREUiBj cmlzX3Vud2luZF9zcCAoc3RydWN0CiAgCiAgc3RydWN0IHN0YWNrX2l0ZW0KQEAgLTQwNSwxMCAr NDA1LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9jcmlzLXRkZXAuYwogICAg ICAgIAogICAgICAgIC8qIEhvdyBtYXkgcmVnaXN0ZXJzIHdvcnRoIG9mIHN0b3JhZ2UgZG8gd2Ug bmVlZCBmb3IgdGhpcyBhcmd1bWVudD8gICovCiAgICAgICAgcmVnX2RlbWFuZCA9IChsZW4gLyA0 KSArIChsZW4gJSA0ICE9IDAgPyAxIDogMCk7Ci1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvaDgzMDAtdGRlcC5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvaDgzMDAtdGRl cC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9oODMwMC10 ZGVwLmMJMjAxNS0wMS0wNSAyMjoxODo1NS45OTgwMjM2NTIgKzAxMDAKLSsrKyBnZGItNy44LjUw LjIwMTQxMjI4L2dkYi9oODMwMC10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxOTowOC4wOTEwNzg0NjMg KzAxMDAKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2g4MzAwLXRkZXAuYwkyMDE1 LTA1LTMxIDE3OjE1OjAxLjA3NDg2ODE0OCArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAv Z2RiL2g4MzAwLXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAzLjQyNzg4Mjg5NyArMDIwMAogQEAg LTYzOSw3ICs2MzksNyBAQCBoODMwMF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpn CiAgCQkgICAgICAgaW50IHN0cnVjdF9yZXR1cm4sIENPUkVfQUREUiBzdHJ1Y3RfYWRkcikKICB7 CkBAIC00NDEsMTEgKzQ0MSwxMSBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvaDgz MDAtdGRlcC5jCiAgCiAgCSAgICAgIGZvciAob2Zmc2V0ID0gMDsgb2Zmc2V0IDwgcGFkZGVkX2xl bjsgb2Zmc2V0ICs9IHdvcmRzaXplKQogIAkJewotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgv Z2RiL2hwcGEtdGRlcC5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvaHBwYS10ZGVw LmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL2hwcGEtdGRl cC5jCTIwMTUtMDEtMDUgMjI6MTg6NTUuOTk5MDIzNjU3ICswMTAwCi0rKysgZ2RiLTcuOC41MC4y MDE0MTIyOC9nZGIvaHBwYS10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxOTowOC4wOTEwNzg0NjMgKzAx MDAKLUBAIC05NjAsNyArOTYwLDcgQEAgaHBwYTY0X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdk YmFyY2ggKgorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvaHBwYS10ZGVwLmMJMjAx NS0wNS0zMSAxNzoxNTowMS4wNzY4NjgxNjAgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIw L2dkYi9ocHBhLXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAzLjQyODg4MjkwMyArMDIwMAorQEAg LTk5MSw3ICs5OTEsNyBAQCBocHBhNjRfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAq CiAgICAgIHsKICAgICAgICBzdHJ1Y3QgdmFsdWUgKmFyZyA9IGFyZ3NbaV07CiAgICAgICAgc3Ry dWN0IHR5cGUgKnR5cGUgPSB2YWx1ZV90eXBlIChhcmcpOwpAQCAtNDU0LDcgKzQ1NCw3IEBAIElu ZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9ocHBhLXRkZXAuYwogICAgICAgIGNvbnN0IGJm ZF9ieXRlICp2YWxidWY7CiAgICAgICAgYmZkX2J5dGUgZnB0cmJ1Zls4XTsKICAgICAgICBpbnQg cmVnbnVtOwotQEAgLTExNTUsNyArMTE1NSw3IEBAIGhwcGE2NF9yZXR1cm5fdmFsdWUgKHN0cnVj dCBnZGJhcmNoICpnZGIKK0BAIC0xMTg2LDcgKzExODYsNyBAQCBocHBhNjRfcmV0dXJuX3ZhbHVl IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiCiAgCQkgICAgIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3Qg cmVnY2FjaGUgKnJlZ2NhY2hlLAogIAkJICAgICBnZGJfYnl0ZSAqcmVhZGJ1ZiwgY29uc3QgZ2Ri X2J5dGUgKndyaXRlYnVmKQogIHsKQEAgLTQ2MywxMCArNDYzLDEwIEBAIEluZGV4OiBnZGItNy44 LjUwLjIwMTQxMjI4L2dkYi9ocHBhLXRkZXAuYwogICAgaW50IHJlZ251bSwgb2Zmc2V0OwogIAog ICAgaWYgKGxlbiA+IDE2KQotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2kzODYtZGFy d2luLXRkZXAuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2kzODYtZGFyd2luLXRk ZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvaTM4Ni1k YXJ3aW4tdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTg6NTUuOTk5MDIzNjU3ICswMTAwCi0rKysgZ2Ri LTcuOC41MC4yMDE0MTIyOC9nZGIvaTM4Ni1kYXJ3aW4tdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTk6 MDguMDkxMDc4NDYzICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9pMzg2 LWRhcndpbi10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMS4wNzY4NjgxNjAgKzAyMDAKKysrKyBn ZGItNy45LjUwLjIwMTUwNTIwL2dkYi9pMzg2LWRhcndpbi10ZGVwLmMJMjAxNS0wNS0zMSAxNzox NTowMy40Mjg4ODI5MDMgKzAyMDAKIEBAIC0xNjMsNyArMTYzLDcgQEAgaTM4Nl9kYXJ3aW5fcHVz aF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYQogIAogICAgZm9yICh3cml0ZV9wYXNzID0gMDsgd3Jp dGVfcGFzcyA8IDI7IHdyaXRlX3Bhc3MrKykKQEAgLTQ3NiwxMSArNDc2LDExIEBAIEluZGV4OiBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi9pMzg2LWRhcndpbi10ZGVwLmMKICAgICAgICBpbnQgbnVt X20xMjggPSAwOwogIAogICAgICAgIGlmIChzdHJ1Y3RfcmV0dXJuKQotSW5kZXg6IGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL2kzODYtdGRlcC5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvaTM4Ni10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcv Z2RiL2kzODYtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTg6NTYuMDAyMDIzNjcxICswMTAwCi0rKysg Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvaTM4Ni10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxOTowOC4w OTIwNzg0NjcgKzAxMDAKLUBAIC0yNjQzLDcgKzI2NDMsNyBAQCBpMzg2X3B1c2hfZHVtbXlfY2Fs bCAoc3RydWN0IGdkYmFyY2ggKmdkCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9p Mzg2LXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAxLjA4Mjg2ODE5OCArMDIwMAorKysrIGdkYi03 LjkuNTAuMjAxNTA1MjAvZ2RiL2kzODYtdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDMuNDMwODgy OTE1ICswMjAwCitAQCAtMjY1MSw3ICsyNjUxLDcgQEAgaTM4Nl9wdXNoX2R1bW15X2NhbGwgKHN0 cnVjdCBnZGJhcmNoICpnZAogICAgZ2RiX2J5dGUgYnVmWzRdOwogICAgaW50IGk7CiAgICBpbnQg d3JpdGVfcGFzczsKQEAgLTQ4OSw3ICs0ODksNyBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvaTM4Ni10ZGVwLmMKICAKICAgIC8qIERldGVybWluZSB0aGUgdG90YWwgc3BhY2UgcmVx dWlyZWQgZm9yIGFyZ3VtZW50cyBhbmQgc3RydWN0CiAgICAgICByZXR1cm4gYWRkcmVzcyBpbiBh IGZpcnN0IHBhc3MgKGFsbG93aW5nIGZvciAxNi1ieXRlLWFsaWduZWQKLUBAIC0yNjUxLDcgKzI2 NTEsNyBAQCBpMzg2X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkCitAQCAtMjY1 OSw3ICsyNjU5LDcgQEAgaTM4Nl9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZAog IAogICAgZm9yICh3cml0ZV9wYXNzID0gMDsgd3JpdGVfcGFzcyA8IDI7IHdyaXRlX3Bhc3MrKykK ICAgICAgewpAQCAtNDk4LDcgKzQ5OCw3IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi9pMzg2LXRkZXAuYwogIAogICAgICAgIGlmIChzdHJ1Y3RfcmV0dXJuKQogIAl7Ci1AQCAtMjY2 OCw3ICsyNjY4LDcgQEAgaTM4Nl9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnZAor QEAgLTI2NzYsNyArMjY3Niw3IEBAIGkzODZfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJj aCAqZ2QKICAKICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbmFyZ3M7IGkrKykKICAJewpAQCAtNTA3 LDcgKzUwNyw3IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9pMzg2LXRkZXAuYwog IAogIAkgIGlmICh3cml0ZV9wYXNzKQogIAkgICAgewotQEAgLTI4NzUsNyArMjg3NSw3IEBAIGkz ODZfcmVnX3N0cnVjdF9yZXR1cm5fcCAoc3RydWN0IGdkYmFyY2gKK0BAIC0yODgzLDcgKzI4ODMs NyBAQCBpMzg2X3JlZ19zdHJ1Y3RfcmV0dXJuX3AgKHN0cnVjdCBnZGJhcmNoCiAgewogICAgc3Ry dWN0IGdkYmFyY2hfdGRlcCAqdGRlcCA9IGdkYmFyY2hfdGRlcCAoZ2RiYXJjaCk7CiAgICBlbnVt IHR5cGVfY29kZSBjb2RlID0gVFlQRV9DT0RFICh0eXBlKTsKQEAgLTUxNiw3ICs1MTYsNyBAQCBJ bmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvaTM4Ni10ZGVwLmMKICAKICAgIGdkYl9hc3Nl cnQgKGNvZGUgPT0gVFlQRV9DT0RFX1NUUlVDVAogICAgICAgICAgICAgICAgfHwgY29kZSA9PSBU WVBFX0NPREVfVU5JT04KLUBAIC0zNjIxLDcgKzM2MjEsNyBAQCBzdGF0aWMgaW50CitAQCAtMzYy OSw3ICszNjI5LDcgQEAgc3RhdGljIGludAogIGkzODZfY29udmVydF9yZWdpc3Rlcl9wIChzdHJ1 Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKICAJCQkgaW50IHJlZ251bSwgc3RydWN0IHR5cGUgKnR5cGUp CiAgewpAQCAtNTI1LDcgKzUyNSw3IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9p Mzg2LXRkZXAuYwogIAogICAgLyogVmFsdWVzIG1heSBiZSBzcHJlYWQgYWNyb3NzIG11bHRpcGxl IHJlZ2lzdGVycy4gIE1vc3QgZGVidWdnaW5nCiAgICAgICBmb3JtYXRzIGFyZW4ndCBleHByZXNz aXZlIGVub3VnaCB0byBzcGVjaWZ5IHRoZSBsb2NhdGlvbnMsIHNvCi1AQCAtMzY1NCw3ICszNjU0 LDcgQEAgaTM4Nl9yZWdpc3Rlcl90b192YWx1ZSAoc3RydWN0IGZyYW1lX2luZgorQEAgLTM2NjIs NyArMzY2Miw3IEBAIGkzODZfcmVnaXN0ZXJfdG9fdmFsdWUgKHN0cnVjdCBmcmFtZV9pbmYKICAJ CQlpbnQgKm9wdGltaXplZHAsIGludCAqdW5hdmFpbGFibGVwKQogIHsKICAgIHN0cnVjdCBnZGJh cmNoICpnZGJhcmNoID0gZ2V0X2ZyYW1lX2FyY2ggKGZyYW1lKTsKQEAgLTUzNCw3ICs1MzQsNyBA QCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvaTM4Ni10ZGVwLmMKICAKICAgIGlmIChp Mzg2X2ZwX3JlZ251bV9wIChnZGJhcmNoLCByZWdudW0pKQogICAgICByZXR1cm4gaTM4N19yZWdp c3Rlcl90b192YWx1ZSAoZnJhbWUsIHJlZ251bSwgdHlwZSwgdG8sCi1AQCAtMzY5MCw3ICszNjkw LDcgQEAgc3RhdGljIHZvaWQKK0BAIC0zNjk4LDcgKzM2OTgsNyBAQCBzdGF0aWMgdm9pZAogIGkz ODZfdmFsdWVfdG9fcmVnaXN0ZXIgKHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwgaW50IHJlZ251 bSwKICAJCQlzdHJ1Y3QgdHlwZSAqdHlwZSwgY29uc3QgZ2RiX2J5dGUgKmZyb20pCiAgewpAQCAt NTQzLDExICs1NDMsMTEgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2kzODYtdGRl cC5jCiAgCiAgICBpZiAoaTM4Nl9mcF9yZWdudW1fcCAoZ2V0X2ZyYW1lX2FyY2ggKGZyYW1lKSwg cmVnbnVtKSkKICAgICAgewotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL2lxMjAwMC10 ZGVwLmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9pcTIwMDAtdGRlcC5jCiA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9pcTIwMDAtdGRlcC5jCTIw MTUtMDEtMDUgMjI6MTg6NTYuMDAzMDIzNjc1ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIy OC9nZGIvaXEyMDAwLXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE5OjA4LjA5MjA3ODQ2NyArMDEwMAot QEAgLTY1Myw4ICs2NTMsOSBAQCBpcTIwMDBfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJj aCAqCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9pcTIwMDAtdGRlcC5jCTIwMTUt MDUtMzEgMTc6MTU6MDEuMDgzODY4MjA0ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvaXEyMDAwLXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAzLjQzMTg4MjkyMiArMDIwMAorQEAg LTY1MSw4ICs2NTEsOSBAQCBpcTIwMDBfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAq CiAgICBjb25zdCBiZmRfYnl0ZSAqdmFsOwogICAgYmZkX2J5dGUgYnVmWzRdOwogICAgc3RydWN0 IHR5cGUgKnR5cGU7CkBAIC01NTksMTAgKzU1OSwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvaXEyMDAwLXRkZXAuYwogICAgLyogVXNlZCB0byBjb3B5IHN0cnVjdCBhcmd1bWVu dHMgaW50byB0aGUgc3RhY2suICAqLwogICAgQ09SRV9BRERSIHN0cnVjdF9wdHI7CiAgCi1JbmRl eDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbTMyci10ZGVwLmMKK0luZGV4OiBnZGItNy45LjUw LjIwMTUwNTIwL2dkYi9tMzJyLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAx NDEyMjgub3JpZy9nZGIvbTMyci10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxODo1Ni4wMDMwMjM2NzUg KzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9tMzJyLXRkZXAuYwkyMDE1LTAxLTA1 IDIyOjE5OjA4LjA5MzA3ODQ3MiArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9n ZGIvbTMyci10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMS4wODM4NjgyMDQgKzAyMDAKKysrKyBn ZGItNy45LjUwLjIwMTUwNTIwL2dkYi9tMzJyLXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAzLjQz MTg4MjkyMiArMDIwMAogQEAgLTY4Nyw3ICs2ODcsNyBAQCBtMzJyX3B1c2hfZHVtbXlfY2FsbCAo c3RydWN0IGdkYmFyY2ggKmdkCiAgICBDT1JFX0FERFIgcmVndmFsOwogICAgZ2RiX2J5dGUgKnZh bDsKQEAgLTU3MiwxMCArNTcyLDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9t MzJyLXRkZXAuYwogIAogICAgLyogRmlyc3QgZm9yY2Ugc3AgdG8gYSA0LWJ5dGUgYWxpZ25tZW50 LiAgKi8KICAgIHNwID0gc3AgJiB+MzsKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9t NjhrLXRkZXAuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL202OGstdGRlcC5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9tNjhrLXRkZXAuYwky MDE1LTAxLTA1IDIyOjE4OjU2LjAwMzAyMzY3NSArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEy MjgvZ2RiL202OGstdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTk6MDguMDkzMDc4NDcyICswMTAwCist LS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9tNjhrLXRkZXAuYwkyMDE1LTA1LTMxIDE3 OjE1OjAxLjA4NDg2ODIxMCArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL202OGst dGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDMuNDMyODgyOTI4ICswMjAwCiBAQCAtMzgyLDcgKzM4 Miw3IEBAIG02OGtfcmVnX3N0cnVjdF9yZXR1cm5fcCAoc3RydWN0IGdkYmFyY2gKICB7CiAgICBz dHJ1Y3QgZ2RiYXJjaF90ZGVwICp0ZGVwID0gZ2RiYXJjaF90ZGVwIChnZGJhcmNoKTsKQEAgLTU5 OCwxMCArNTk4LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9tNjhrLXRkZXAu YwogIAogICAgICAgIC8qIE5vbi1zY2FsYXJzIGJpZ2dlciB0aGFuIDQgYnl0ZXMgYXJlIGxlZnQg YWxpZ25lZCwgb3RoZXJzIGFyZQogIAkgcmlnaHQgYWxpZ25lZC4gICovCi1JbmRleDogZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvbTg4ay10ZGVwLmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIw L2dkYi9tODhrLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3Jp Zy9nZGIvbTg4ay10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxODo1Ni4wMDQwMjM2ODAgKzAxMDAKLSsr KyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9tODhrLXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE5OjA4 LjA5MzA3ODQ3MiArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvbTg4ay10 ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMS4wODU4NjgyMTcgKzAyMDAKKysrKyBnZGItNy45LjUw LjIwMTUwNTIwL2dkYi9tODhrLXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAzLjQzMjg4MjkyOCAr MDIwMAogQEAgLTI1NywxMyArMjU3LDEzIEBAIG04OGtfc3RvcmVfYXJndW1lbnRzIChzdHJ1Y3Qg cmVnY2FjaGUgKnIKICB7CiAgICBzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCA9IGdldF9yZWdjYWNo ZV9hcmNoIChyZWdjYWNoZSk7CkBAIC02MjksMTAgKzYyOSwxMCBAQCBJbmRleDogZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvbTg4ay10ZGVwLmMKICAKICAgICAgICBpZiAobTg4a19pbl9yZWdpc3Rl cl9wICh0eXBlKSkKICAJewotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL21lcC10ZGVw LmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9tZXAtdGRlcC5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9tZXAtdGRlcC5jCTIwMTUtMDEtMDUg MjI6MTg6NTYuMDA1MDIzNjg0ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbWVw LXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE5OjA4LjA5MzA3ODQ3MiArMDEwMAorLS0tIGdkYi03Ljku NTAuMjAxNTA1MjAub3JpZy9nZGIvbWVwLXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAxLjA4Njg2 ODIyMyArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL21lcC10ZGVwLmMJMjAxNS0w NS0zMSAxNzoxNTowMy40MzM4ODI5MzQgKzAyMDAKIEBAIC0yMjY5LDcgKzIyNjksNyBAQCBwdXNo X2xhcmdlX2FyZ3VtZW50cyAoQ09SRV9BRERSIHNwLCBpbnQKICAKICAgIGZvciAoaSA9IDA7IGkg PCBhcmdjOyBpKyspCkBAIC02NDIsMTAgKzY0MiwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0 MTIyOC9nZGIvbWVwLXRkZXAuYwogIAogICAgICAgIGlmIChhcmdfbGVuID4gTUVQX0dQUl9TSVpF KQogICAgICAgICAgewotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL21pcHMtdGRlcC5j CitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvbWlwcy10ZGVwLmMKID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K LS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL21pcHMtdGRlcC5jCTIwMTUtMDEtMDUg MjI6MTg6NTYuMDA5MDIzNzAyICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbWlw cy10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxOTowOC4wOTUwNzg0ODEgKzAxMDAKKy0tLSBnZGItNy45 LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL21pcHMtdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDEuMDk0 ODY4MjczICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvbWlwcy10ZGVwLmMJMjAx NS0wNS0zMSAxNzoxNTowMy40MzU4ODI5NDcgKzAyMDAKIEBAIC00NTUsNyArNDU1LDcgQEAgc3Rh dGljIHZvaWQKICBtaXBzX3hmZXJfcmVnaXN0ZXIgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLCBz dHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLAogIAkJICAgIGludCByZWdfbnVtLCBpbnQgbGVuZ3Ro LApAQCAtNzkxLDEwICs3OTEsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL21p cHMtdGRlcC5jCiAgCiAgICAgICAgdmFsID0gdmFsdWVfY29udGVudHMgKGFyZyk7CiAgCi1JbmRl eDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbW4xMDMwMC10ZGVwLmMKK0luZGV4OiBnZGItNy45 LjUwLjIwMTUwNTIwL2dkYi9tbjEwMzAwLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03Ljgu NTAuMjAxNDEyMjgub3JpZy9nZGIvbW4xMDMwMC10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxODo1Ni4w MTAwMjM3MDcgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9tbjEwMzAwLXRkZXAu YwkyMDE1LTAxLTA1IDIyOjE5OjA4LjA5NjA3ODQ4NSArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAx NTA1MjAub3JpZy9nZGIvbW4xMDMwMC10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMS4wOTU4Njgy NzkgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9tbjEwMzAwLXRkZXAuYwkyMDE1 LTA1LTMxIDE3OjE1OjAzLjQzNTg4Mjk0NyArMDIwMAogQEAgLTEyMjUsNyArMTIyNSw3IEBAIG1u MTAzMDBfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaAogICAgZW51bSBiZmRfZW5kaWFu IGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdkYmFyY2gpOwogICAgY29uc3QgaW50 IHB1c2hfc2l6ZSA9IHJlZ2lzdGVyX3NpemUgKGdkYmFyY2gsIEVfUENfUkVHTlVNKTsKQEAgLTgw NCwxMCArODA0LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9tbjEwMzAwLXRk ZXAuYwogICAgaW50IHN0YWNrX29mZnNldCA9IDA7CiAgICBpbnQgYXJnbnVtOwogICAgY29uc3Qg Z2RiX2J5dGUgKnZhbDsKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9tdC10ZGVwLmMK K0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9tdC10ZGVwLmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL210LXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE4 OjU2LjAxMDAyMzcwNyArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL210LXRkZXAu YwkyMDE1LTAxLTA1IDIyOjE5OjA4LjA5NjA3ODQ4NSArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAx NTA1MjAub3JpZy9nZGIvbXQtdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDEuMDk2ODY4Mjg2ICsw MjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvbXQtdGRlcC5jCTIwMTUtMDUtMzEgMTc6 MTU6MDMuNDM2ODgyOTUzICswMjAwCiBAQCAtNzgxLDkgKzc4MSw5IEBAIG10X3B1c2hfZHVtbXlf Y2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkYmEKICAgIGdkYl9ieXRlIGJ1ZltNVF9NQVhfU1RSVUNU X1NJWkVdOwogICAgaW50IGFyZ3JlZyA9IE1UXzFTVF9BUkdSRUc7CkBAIC04MjAsMTAgKzgyMCwx MCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvbXQtdGRlcC5jCiAgICBpbnQgaSwg ajsKICAKICAgIC8qIEZpcnN0IGhhbmRsZSBob3dldmVyIG1hbnkgYXJncyB3ZSBjYW4gZml0IGlu dG8gTVRfMVNUX0FSR1JFRyB0aHJ1Ci1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcHBj LXN5c3YtdGRlcC5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcHBjLXN5c3YtdGRl cC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9wcGMtc3lz di10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxODo1Ni4wMTEwMjM3MTEgKzAxMDAKLSsrKyBnZGItNy44 LjUwLjIwMTQxMjI4L2dkYi9wcGMtc3lzdi10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxOTowOC4wOTYw Nzg0ODUgKzAxMDAKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL3BwYy1zeXN2LXRk ZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAxLjA5Nzg2ODI5MiArMDIwMAorKysrIGdkYi03LjkuNTAu MjAxNTA1MjAvZ2RiL3BwYy1zeXN2LXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAzLjQzNjg4Mjk1 MyArMDIwMAogQEAgLTY2LDcgKzY2LDcgQEAgcHBjX3N5c3ZfYWJpX3B1c2hfZHVtbXlfY2FsbCAo c3RydWN0IGdkYgogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVf b3JkZXIgKGdkYmFyY2gpOwogICAgaW50IG9wZW5jbF9hYmkgPSBwcGNfc3lzdl91c2Vfb3BlbmNs X2FiaSAodmFsdWVfdHlwZSAoZnVuY3Rpb24pKTsKQEAgLTg2OCwxMSArODY4LDExIEBAIEluZGV4 OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9wcGMtc3lzdi10ZGVwLmMKICAKICAgIC8qIEVuZm9y Y2UgYWxpZ25tZW50IG9mIHN0YWNrIGxvY2F0aW9uLCBpZiByZXF1ZXN0ZWQuICAqLwogICAgaWYg KGFsaWduID4gdGRlcC0+d29yZHNpemUpCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIv cmw3OC10ZGVwLmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9ybDc4LXRkZXAuYwog PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvcmw3OC10ZGVwLmMJ MjAxNS0wMS0wNSAyMjoxODo1Ni4wMTEwMjM3MTEgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi9ybDc4LXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE5OjA4LjA5NjA3ODQ4NSArMDEwMAot QEAgLTEyNTEsOCArMTI1MSw4IEBAIHJsNzhfcHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJj aCAqZ2QKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL3JsNzgtdGRlcC5jCTIwMTUt MDUtMzEgMTc6MTU6MDEuMDk3ODY4MjkyICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvcmw3OC10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMy40Mzc4ODI5NTkgKzAyMDAKK0BAIC0x MzMzLDggKzEzMzMsOCBAQCBybDc4X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdk CiAgICBmb3IgKGkgPSBuYXJncyAtIDE7IGkgPj0gMDsgaS0tKQogICAgICB7CiAgICAgICAgc3Ry dWN0IHR5cGUgKnZhbHVlX3R5cGUgPSB2YWx1ZV9lbmNsb3NpbmdfdHlwZSAoYXJnc1tpXSk7CkBA IC04ODMsMTAgKzg4MywxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcmw3OC10 ZGVwLmMKICAKICAgICAgICBzcCAtPSBjb250YWluZXJfbGVuOwogICAgICAgIHdyaXRlX21lbW9y eSAocmw3OF9tYWtlX2RhdGFfYWRkcmVzcyAoc3ApLAotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEy MjgvZ2RiL3JzNjAwMC1haXgtdGRlcC5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv cnM2MDAwLWFpeC10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9y aWcvZ2RiL3JzNjAwMC1haXgtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTg6NTYuMDEyMDIzNzE2ICsw MTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcnM2MDAwLWFpeC10ZGVwLmMJMjAxNS0w MS0wNSAyMjoxOTowOC4wOTcwNzg0OTAgKzAxMDAKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9y aWcvZ2RiL3JzNjAwMC1haXgtdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDEuMDk4ODY4Mjk4ICsw MjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvcnM2MDAwLWFpeC10ZGVwLmMJMjAxNS0w NS0zMSAxNzoxNTowMy40Mzc4ODI5NTkgKzAyMDAKIEBAIC0xODYsOSArMTg2LDkgQEAgcnM2MDAw X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKgogICAgc3RydWN0IGdkYmFyY2hfdGRl cCAqdGRlcCA9IGdkYmFyY2hfdGRlcCAoZ2RiYXJjaCk7CiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0 ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CkBAIC05MDgsMzIgKzkwOCwz MiBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvcnM2MDAwLWFpeC10ZGVwLmMKICAK ICAgICAgICBpZiAoYXJnYnl0ZXMpCiAgCXsKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dk Yi9zMzkwLWxpbnV4LXRkZXAuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3MzOTAt bGludXgtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dk Yi9zMzkwLWxpbnV4LXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE4OjU2LjAxMzAyMzcyMCArMDEwMAot KysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3MzOTAtbGludXgtdGRlcC5jCTIwMTUtMDEtMDUg MjI6MTk6MDguMDk3MDc4NDkwICswMTAwCi1AQCAtMjMzNCw3ICsyMzM0LDcgQEAgaXNfZmxvYXRf bGlrZSAoc3RydWN0IHR5cGUgKnR5cGUpCi0gCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmln L2dkYi9zMzkwLWxpbnV4LXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAxLjA5OTg2ODMwNCArMDIw MAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3MzOTAtbGludXgtdGRlcC5jCTIwMTUtMDUt MzEgMTc6MTY6MTMuMjg1MzIwNzY5ICswMjAwCitAQCAtMjQ2Myw3ICsyNDYzLDcgQEAgczM5MF9m dW5jdGlvbl9hcmdfdmVjdG9yIChzdHJ1Y3QgdHlwZSAqdAorIC8qIERldGVybWluZSB3aGV0aGVy IE4gaXMgYSBwb3dlciBvZiB0d28uICAqLwogIAogIHN0YXRpYyBpbnQKIC1pc19wb3dlcl9vZl90 d28gKHVuc2lnbmVkIGludCBuKQogK2lzX3Bvd2VyX29mX3R3byAoVUxPTkdFU1QgbikKICB7Ci0g ICByZXR1cm4gKChuICYgKG4gLSAxKSkgPT0gMCk7CisgICByZXR1cm4gbiAmJiAoKG4gJiAobiAt IDEpKSA9PSAwKTsKICB9Ci1AQCAtMjUyMCw3ICsyNTIwLDcgQEAgczM5MF9wdXNoX2R1bW15X2Nh bGwgKHN0cnVjdCBnZGJhcmNoICpnZAotICAgICAgIHsKLSAJc3RydWN0IHZhbHVlICphcmcgPSBh cmdzW2ldOwotIAlzdHJ1Y3QgdHlwZSAqdHlwZSA9IGNoZWNrX3R5cGVkZWYgKHZhbHVlX3R5cGUg KGFyZykpOwotLQl1bnNpZ25lZCBsZW5ndGggPSBUWVBFX0xFTkdUSCAodHlwZSk7Ci0rCVVMT05H RVNUIGxlbmd0aCA9IFRZUEVfTEVOR1RIICh0eXBlKTsKK0BAIC0yNTIwLDcgKzI1MjAsNyBAQCBz MzkwX2hhbmRsZV9hcmcgKHN0cnVjdCBzMzkwX2FyZ19zdGF0ZSAqCisgCQkgZW51bSBiZmRfZW5k aWFuIGJ5dGVfb3JkZXIsIGludCBpc191bm5hbWVkKQorIHsKKyAgIHN0cnVjdCB0eXBlICp0eXBl ID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJnKSk7CistICB1bnNpZ25lZCBpbnQgbGVu Z3RoID0gVFlQRV9MRU5HVEggKHR5cGUpOworKyAgVUxPTkdFU1QgbGVuZ3RoID0gVFlQRV9MRU5H VEggKHR5cGUpOworICAgaW50IHdyaXRlX21vZGUgPSBhcy0+cmVnY2FjaGUgIT0gTlVMTDsKICAK LSAJaWYgKHMzOTBfZnVuY3Rpb25fYXJnX3Bhc3NfYnlfcmVmZXJlbmNlICh0eXBlKSkKLSAJICB7 Ci1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvc2NvcmUtdGRlcC5jCisgICBpZiAoczM5 MF9mdW5jdGlvbl9hcmdfZmxvYXQgKHR5cGUpKQorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAv Z2RiL3Njb3JlLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3Jp Zy9nZGIvc2NvcmUtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTg6NTYuMDEzMDIzNzIwICswMTAwCi0r KysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvc2NvcmUtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTk6 MDguMDk3MDc4NDkwICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9zY29y ZS10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMS4xMDA4NjgzMTEgKzAyMDAKKysrKyBnZGItNy45 LjUwLjIwMTUwNTIwL2dkYi9zY29yZS10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMy40Mzk4ODI5 NzIgKzAyMDAKIEBAIC01MTQsNyArNTE0LDcgQEAgc2NvcmVfcHVzaF9kdW1teV9jYWxsIChzdHJ1 Y3QgZ2RiYXJjaCAqZwogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5 dGVfb3JkZXIgKGdkYmFyY2gpOwogICAgaW50IGFyZ251bTsKQEAgLTk0MywxMCArOTQzLDEwIEBA IEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9zY29yZS10ZGVwLmMKICAgIENPUkVfQURE UiBzdGFja19vZmZzZXQgPSAwOwogICAgQ09SRV9BRERSIGFkZHIgPSAwOwogIAotSW5kZXg6IGdk Yi03LjguNTAuMjAxNDEyMjgvZ2RiL3NoLXRkZXAuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1 MjAvZ2RiL3NoLXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3Jp Zy9nZGIvc2gtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTg6NTYuMDE0MDIzNzI1ICswMTAwCi0rKysg Z2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvc2gtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTk6MDguMDk4 MDc4NDk0ICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9zaC10ZGVwLmMJ MjAxNS0wNS0zMSAxNzoxNTowMS4xMDE4NjgzMTcgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUw NTIwL2dkYi9zaC10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMy40Mzk4ODI5NzIgKzAyMDAKIEBA IC04MDUsNyArODA1LDcgQEAgc2hfc2tpcF9wcm9sb2d1ZSAoc3RydWN0IGdkYmFyY2ggKmdkYmFy YwogIHN0YXRpYyBpbnQKICBzaF91c2Vfc3RydWN0X2NvbnZlbnRpb24gKGludCByZW5lc2FzX2Fi aSwgc3RydWN0IHR5cGUgKnR5cGUpCkBAIC05ODUsMTAgKzk4NSwxMCBAQCBJbmRleDogZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvc2gtdGRlcC5jCiAgICBpbnQgcGFzc19vbl9zdGFjayA9IDA7CiAg ICBpbnQgbGFzdF9yZWdfYXJnID0gSU5UX01BWDsKICAKLUluZGV4OiBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi9zaDY0LXRkZXAuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3NoNjQt dGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi9zaDY0 LXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE4OjU2LjAxNTAyMzcyOSArMDEwMAotKysrIGdkYi03Ljgu NTAuMjAxNDEyMjgvZ2RiL3NoNjQtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTk6MDguMDk4MDc4NDk0 ICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9zaDY0LXRkZXAuYwkyMDE1 LTA1LTMxIDE3OjE1OjAxLjEwMjg2ODMyMyArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAv Z2RiL3NoNjQtdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDMuNDQwODgyOTc4ICswMjAwCiBAQCAt MTA1Niw3ICsxMDU2LDcgQEAgc2g2NF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpn ZAogIAkJICAgICAgQ09SRV9BRERSIHN0cnVjdF9hZGRyKQogIHsKQEAgLTEwMDcsMTAgKzEwMDcs MTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3NoNjQtdGRlcC5jCiAgICBpbnQg YXJncmVnX3NpemU7CiAgICBpbnQgZnBfYXJnc1sxMl07CiAgCi1JbmRleDogZ2RiLTcuOC41MC4y MDE0MTIyOC9nZGIvc3BhcmMtdGRlcC5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv c3BhcmMtdGRlcC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dk Yi9zcGFyYy10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxODo1Ni4wMTYwMjM3MzQgKzAxMDAKLSsrKyBn ZGItNy44LjUwLjIwMTQxMjI4L2dkYi9zcGFyYy10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxOTowOC4w OTgwNzg0OTQgKzAxMDAKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL3NwYXJjLXRk ZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAxLjEwMzg2ODMyOSArMDIwMAorKysrIGdkYi03LjkuNTAu MjAxNTA1MjAvZ2RiL3NwYXJjLXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAzLjQ0MTg4Mjk4NCAr MDIwMAogQEAgLTUyNSw3ICs1MjUsNyBAQCBzcGFyYzMyX3N0b3JlX2FyZ3VtZW50cyAoc3RydWN0 IHJlZ2NhY2hlCiAgICBmb3IgKGkgPSAwOyBpIDwgbmFyZ3M7IGkrKykKICAgICAgewpAQCAtMTAy MCwxMCArMTAyMCwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvc3BhcmMtdGRl cC5jCiAgCiAgICAgICAgaWYgKHNwYXJjX3N0cnVjdHVyZV9vcl91bmlvbl9wICh0eXBlKQogIAkg IHx8IChzcGFyY19mbG9hdGluZ19wICh0eXBlKSAmJiBsZW4gPT0gMTYpCi1JbmRleDogZ2RiLTcu OC41MC4yMDE0MTIyOC9nZGIvc3BhcmM2NC10ZGVwLmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUw NTIwL2dkYi9zcGFyYzY0LXRkZXAuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguNTAuMjAxNDEy Mjgub3JpZy9nZGIvc3BhcmM2NC10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxODo1Ni4wMTYwMjM3MzQg KzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9zcGFyYzY0LXRkZXAuYwkyMDE1LTAx LTA1IDIyOjE5OjA4LjA5OTA3ODQ5OSArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3Jp Zy9nZGIvc3BhcmM2NC10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMS4xMDQ4NjgzMzYgKzAyMDAK KysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9zcGFyYzY0LXRkZXAuYwkyMDE1LTA1LTMxIDE3 OjE1OjAzLjQ0MTg4Mjk4NCArMDIwMAogQEAgLTYzNiw3ICs2MzYsOCBAQCBzcGFyYzY0XzE2X2J5 dGVfYWxpZ25fcCAoc3RydWN0IHR5cGUgKnR5CiAgCiAgc3RhdGljIHZvaWQKQEAgLTEwNzksMTAg KzEwNzksMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3NwYXJjNjQtdGRlcC5j CiAgICAgICAgaW50IHJlZ251bSA9IC0xOwogICAgICAgIGdkYl9ieXRlIGJ1ZlsxNl07CiAgCi1J bmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvc3B1LXRkZXAuYworSW5kZXg6IGdkYi03Ljku NTAuMjAxNTA1MjAvZ2RiL3NwdS10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIw MTQxMjI4Lm9yaWcvZ2RiL3NwdS10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxODo1Ni4wMTcwMjM3Mzkg KzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi9zcHUtdGRlcC5jCTIwMTUtMDEtMDUg MjI6MTk6MDguMDk5MDc4NDk5ICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dk Yi9zcHUtdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDEuMTA1ODY4MzQyICswMjAwCisrKysgZ2Ri LTcuOS41MC4yMDE1MDUyMC9nZGIvc3B1LXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAzLjQ0Mjg4 Mjk5MCArMDIwMAogQEAgLTE0MzAsNyArMTQzMCw3IEBAIHNwdV9wdXNoX2R1bW15X2NhbGwgKHN0 cnVjdCBnZGJhcmNoICpnZGIKICAgICAgICBzdHJ1Y3QgdmFsdWUgKmFyZyA9IGFyZ3NbaV07CiAg ICAgICAgc3RydWN0IHR5cGUgKnR5cGUgPSBjaGVja190eXBlZGVmICh2YWx1ZV90eXBlIChhcmcp KTsKQEAgLTExMDEsMTAgKzExMDEsMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2Ri L3NwdS10ZGVwLmMKICAJICBpbnQgcHJlZmVycmVkX3Nsb3Q7CiAgCSAgCiAgCSAgaWYgKHNwdV9z Y2FsYXJfdmFsdWVfcCAodHlwZSkpCi1JbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGlj NngtdGRlcC5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGljNngtdGRlcC5jCiA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi90aWM2eC10ZGVwLmMJ MjAxNS0wMS0wNSAyMjoxODo1Ni4wMTgwMjM3NDMgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQx MjI4L2dkYi90aWM2eC10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxOTowOC4wOTkwNzg0OTkgKzAxMDAK Ky0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL3RpYzZ4LXRkZXAuYwkyMDE1LTA1LTMx IDE3OjE1OjAxLjEwNjg2ODM0OCArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rp YzZ4LXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAzLjQ0Mjg4Mjk5MCArMDIwMAogQEAgLTg5NSw3 ICs4OTUsNyBAQCB0aWM2eF9wdXNoX2R1bW15X2NhbGwgKHN0cnVjdCBnZGJhcmNoICpnCiAgICBp bnQgYXJncmVnID0gMDsKICAgIGludCBhcmdudW07CkBAIC0xMTQyLDEwICsxMTQyLDEwIEBAIElu ZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90aWM2eC10ZGVwLmMKICAKICAJICBhZGRyID0g c3AgKyBzdGFja19vZmZzZXQ7CiAgCSAgd3JpdGVfbWVtb3J5IChhZGRyLCB2YWwsIGxlbik7Ci1J bmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdGlsZWd4LXRkZXAuYworSW5kZXg6IGdkYi03 LjkuNTAuMjAxNTA1MjAvZ2RiL3RpbGVneC10ZGVwLmMKID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44 LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3RpbGVneC10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxODo1Ni4w MTgwMjM3NDMgKzAxMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90aWxlZ3gtdGRlcC5j CTIwMTUtMDEtMDUgMjI6MTk6MDguMTAwMDc4NTAzICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1 MDUyMC5vcmlnL2dkYi90aWxlZ3gtdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDEuMTA3ODY4MzU1 ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGlsZWd4LXRkZXAuYwkyMDE1LTA1 LTMxIDE3OjE1OjAzLjQ0Mjg4Mjk5MCArMDIwMAogQEAgLTI4OCw3ICsyODgsNyBAQCB0aWxlZ3hf cHVzaF9kdW1teV9jYWxsIChzdHJ1Y3QgZ2RiYXJjaCAqCiAgICBDT1JFX0FERFIgc3RhY2tfZGVz dCA9IHNwOwogICAgaW50IGFyZ3JlZyA9IFRJTEVHWF9SMF9SRUdOVU07CkBAIC0xMTU1LDEwICsx MTU1LDEwIEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90aWxlZ3gtdGRlcC5jCiAg ICBzdGF0aWMgY29uc3QgZ2RiX2J5dGUgZm91cl96ZXJvX3dvcmRzWzE2XSA9IHsgMCB9OwogIAog ICAgLyogSWYgc3RydWN0X3JldHVybiBpcyAxLCB0aGVuIHRoZSBzdHJ1Y3QgcmV0dXJuIGFkZHJl c3Mgd2lsbAotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Y4NTAtdGRlcC5jCitJbmRl eDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdjg1MC10ZGVwLmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2RiL3Y4NTAtdGRlcC5jCTIwMTUtMDEtMDUgMjI6MTg6 NTYuMDE5MDIzNzQ4ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdjg1MC10ZGVw LmMJMjAxNS0wMS0wNSAyMjoxOTowOC4xMDAwNzg1MDMgKzAxMDAKKy0tLSBnZGItNy45LjUwLjIw MTUwNTIwLm9yaWcvZ2RiL3Y4NTAtdGRlcC5jCTIwMTUtMDUtMzEgMTc6MTU6MDEuMTA3ODY4MzU1 ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdjg1MC10ZGVwLmMJMjAxNS0wNS0z MSAxNzoxNTowMy40NDM4ODI5OTcgKzAyMDAKIEBAIC0xMDE5LDcgKzEwMTksNyBAQCB2ODUwX3B1 c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFyY2ggKmdkCiAgICBlbnVtIGJmZF9lbmRpYW4gYnl0 ZV9vcmRlciA9IGdkYmFyY2hfYnl0ZV9vcmRlciAoZ2RiYXJjaCk7CiAgICBpbnQgYXJncmVnOwpA QCAtMTE3NywxMCArMTE3NywxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIvdjg1 MC10ZGVwLmMKICAgICAgICBnZGJfYnl0ZSAqdmFsOwogICAgICAgIGdkYl9ieXRlIHZhbGJ1Zlt2 ODUwX3JlZ19zaXplXTsKICAKLUluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi92YXgtdGRl cC5jCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdmF4LXRkZXAuYwogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjguNTAuMjAxNDEyMjgub3JpZy9nZGIvdmF4LXRkZXAuYwkyMDE1LTAxLTA1 IDIyOjE4OjU2LjAxOTAyMzc0OCArMDEwMAotKysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Zh eC10ZGVwLmMJMjAxNS0wMS0wNSAyMjoxOTowOC4xMDAwNzg1MDMgKzAxMDAKKy0tLSBnZGItNy45 LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL3ZheC10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMS4xMDg4 NjgzNjEgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi92YXgtdGRlcC5jCTIwMTUt MDUtMzEgMTc6MTU6MDMuNDQzODgyOTk3ICswMjAwCiBAQCAtMTExLDcgKzExMSw3IEBAIHZheF9z dG9yZV9hcmd1bWVudHMgKHN0cnVjdCByZWdjYWNoZSAqcmUKICAgIHN0cnVjdCBnZGJhcmNoICpn ZGJhcmNoID0gZ2V0X3JlZ2NhY2hlX2FyY2ggKHJlZ2NhY2hlKTsKICAgIGVudW0gYmZkX2VuZGlh biBieXRlX29yZGVyID0gZ2RiYXJjaF9ieXRlX29yZGVyIChnZGJhcmNoKTsKQEAgLTExOTksMTAg KzExOTksMTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3ZheC10ZGVwLmMKICAK ICAgICAgICBzcCAtPSAobGVuICsgMykgJiB+MzsKICAgICAgICBjb3VudCArPSAobGVuICsgMykg LyA0OwotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3hzdG9ybXkxNi10ZGVwLmMKK0lu ZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi94c3Rvcm15MTYtdGRlcC5jCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gZ2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi94c3Rvcm15MTYtdGRlcC5jCTIwMTUt MDEtMDUgMjI6MTg6NTYuMDIwMDIzNzUyICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIveHN0b3JteTE2LXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE5OjA4LjEwMDA3ODUwMyArMDEwMAor LS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIveHN0b3JteTE2LXRkZXAuYwkyMDE1LTA1 LTMxIDE3OjE1OjAxLjEwODg2ODM2MSArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2Ri L3hzdG9ybXkxNi10ZGVwLmMJMjAxNS0wNS0zMSAxNzoxNTowMy40NDM4ODI5OTcgKzAyMDAKIEBA IC0yMzMsOCArMjMzLDkgQEAgeHN0b3JteTE2X3B1c2hfZHVtbXlfY2FsbCAoc3RydWN0IGdkYmFy YwogICAgZW51bSBiZmRfZW5kaWFuIGJ5dGVfb3JkZXIgPSBnZGJhcmNoX2J5dGVfb3JkZXIgKGdk YmFyY2gpOwogICAgQ09SRV9BRERSIHN0YWNrX2Rlc3QgPSBzcDsKQEAgLTEyMTUsMTAgKzEyMTUs MTAgQEAgSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3hzdG9ybXkxNi10ZGVwLmMKICAg IGNvbnN0IGdkYl9ieXRlICp2YWw7CiAgICBnZGJfYnl0ZSBidWZbeHN0b3JteTE2X3BjX3NpemVd OwogIAotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3h0ZW5zYS10ZGVwLmMKK0luZGV4 OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi94dGVuc2EtdGRlcC5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuOC41MC4yMDE0MTIyOC5vcmlnL2dkYi94dGVuc2EtdGRlcC5jCTIwMTUtMDEtMDUgMjI6 MTg6NTYuMDIxMDIzNzU3ICswMTAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9nZGIveHRlbnNh LXRkZXAuYwkyMDE1LTAxLTA1IDIyOjE5OjA4LjEwMTA3ODUwOCArMDEwMAorLS0tIGdkYi03Ljku NTAuMjAxNTA1MjAub3JpZy9nZGIveHRlbnNhLXRkZXAuYwkyMDE1LTA1LTMxIDE3OjE1OjAxLjEx MDg2ODM3MyArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3h0ZW5zYS10ZGVwLmMJ MjAxNS0wNS0zMSAxNzoxNTowMy40NDQ4ODMwMDMgKzAyMDAKIEBAIC0xNjQ2LDggKzE2NDYsNyBA QCB4dGVuc2Ffc3RvcmVfcmV0dXJuX3ZhbHVlIChzdHJ1Y3QgdHlwZSAqCiAgCiAgICAgICAgaWYg KGxlbiA+IChjYWxsc2l6ZSA+IDggPyA4IDogMTYpKQoKZGlmZiAtLWdpdCBhL2dkYi11cHN0cmVh bS5wYXRjaCBiL2dkYi11cHN0cmVhbS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMzExNmE1My4uMDAwMDAwMAotLS0gYS9nZGItdXBzdHJlYW0ucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSw1MyArMCwwIEBACi1jb21taXQgN2EyNzBlMGM5YmEwZWI3MzhhNGMzMDI1OGFiMjlj MDk5NjNmY2Q0ZAotQXV0aG9yOiBBbGV4YW5kZXIgS2xpbW92IDxhbHNlcmtsaUBpbmJveC5ydT4K LURhdGU6ICAgVHVlIEphbiAyNyAxOTo1Njo0NSAyMDE1ICswMjAwCi0KLSAgICBGaXggYnVpbGQg ZmFpbHVyZSBpbiBzeW1maWxlLmM6OnVubWFwX292ZXJsYXlfY29tbWFuZCAoR0NDNSBidWcpCi0g ICAgCi0gICAgQ29tcGlsYXRpb24gb2YgKEdEQikgNy45LjUwLjIwMTUwMTI3LWN2cyB3aXRoIChH Q0MpIDUuMC4wIDIwMTUwMTI3Ci0gICAgZmFpbHMgd2l0aAotICAgIAotICAgIEluIGZpbGUgaW5j bHVkZWQgZnJvbSBzeW1maWxlLmM6MzI6MDoKLSAgICBzeW1maWxlLmM6IEluIGZ1bmN0aW9uICd1 bm1hcF9vdmVybGF5X2NvbW1hbmQnOgotICAgIG9iamZpbGVzLmg6NjI4OjM6IGVycm9yOiAnc2Vj JyBtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVkIGluIHRoaXMKLSAgICBmdW5jdGlvbiBbLVdlcnJv cj1tYXliZS11bmluaXRpYWxpemVkXQotICAgICAgIGZvciAob3NlY3QgPSBvYmpmaWxlLT5zZWN0 aW9uczsgb3NlY3QgPCBvYmpmaWxlLT5zZWN0aW9uc19lbmQ7IG9zZWN0KyspIFwKLSAgICAgICBe Ci0gICAgc3ltZmlsZS5jOjM0NDI6MjM6IG5vdGU6ICdzZWMnIHdhcyBkZWNsYXJlZCBoZXJlCi0g ICAgICAgc3RydWN0IG9ial9zZWN0aW9uICpzZWM7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICBeCi0gICAgY2MxOiBhbGwgd2FybmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMKLSAgICBt YWtlWzJdOiAqKiogW3N5bWZpbGUub10gRXJyb3IgMQotICAgIG1ha2VbMl06IExlYXZpbmcgZGly ZWN0b3J5IGBnZGIvZ2RiJwotICAgIAotICAgIFdoaWxlIHRoZSBidWcgd2FzIHJlcG9ydGVkIHRv IEdDQyBhcwotICAgIDxodHRwczovL2djYy5nbnUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9p ZD02NDgyMz4sCi0gICAgdGhlIGF0dGFjaGVkIHBhdGNoIHNpbXBseSBpbml0aWFsaXplcyBzZWMg d2l0aCBOVUxMLgotICAgIAotICAgIGdkYi9DaGFuZ2VMb2c6Ci0gICAgCi0gICAgICAgICAgICAq IHN5bWZpbGUuYyAodW5tYXBfb3ZlcmxheV9jb21tYW5kKTogSW5pdGlhbGl6ZSBzZWMgdG8gTlVM TC4KLSAgICAKLSAgICBUZXN0ZWQgb24geDg2XzY0LWxpbnV4LgotCi0jIyMgYS9nZGIvQ2hhbmdl TG9nCi0jIyMgYi9nZGIvQ2hhbmdlTG9nCi0jIyAtMSwzICsxLDcgQEAKLSsyMDE1LTAxLTI5ICBK b2VsIEJyb2JlY2tlciAgPGJyb2JlY2tlckBhZGFjb3JlLmNvbT4gICh0aW55IHBhdGNoKQotKwot KwkqIHN5bWZpbGUuYyAodW5tYXBfb3ZlcmxheV9jb21tYW5kKTogSW5pdGlhbGl6ZSBzZWMgdG8g TlVMTC4KLSsKLSAyMDE1LTAxLTI3ICBEb3VnIEV2YW5zICA8ZGplQGdvb2dsZS5jb20+Ci0gCi0g CSogTkVXUzogTWVudGlvbiBnZGIuT2JqZmlsZS51c2VybmFtZS4KLS0tLSBhL2dkYi9zeW1maWxl LmMKLSsrKyBiL2dkYi9zeW1maWxlLmMKLUBAIC0zNDM5LDcgKzM0MzksNyBAQCBzdGF0aWMgdm9p ZAotIHVubWFwX292ZXJsYXlfY29tbWFuZCAoY2hhciAqYXJncywgaW50IGZyb21fdHR5KQotIHsK LSAgIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlOwotLSAgc3RydWN0IG9ial9zZWN0aW9uICpzZWM7 Ci0rICBzdHJ1Y3Qgb2JqX3NlY3Rpb24gKnNlYyA9IE5VTEw7Ci0gCi0gICBpZiAoIW92ZXJsYXlf ZGVidWdnaW5nKQotICAgICBlcnJvciAoXygiT3ZlcmxheSBkZWJ1Z2dpbmcgbm90IGVuYWJsZWQu ICAiCgpkaWZmIC0tZ2l0IGEvZ2RiLXZsYS1pbnRlbC1zdHJpbmdidC1maXgucGF0Y2ggYi9nZGIt dmxhLWludGVsLXN0cmluZ2J0LWZpeC5wYXRjaAppbmRleCA2Nzg1MGYzLi41NmNlZmYyIDEwMDY0 NAotLS0gYS9nZGItdmxhLWludGVsLXN0cmluZ2J0LWZpeC5wYXRjaAorKysgYi9nZGItdmxhLWlu dGVsLXN0cmluZ2J0LWZpeC5wYXRjaApAQCAtMzEsMzAgKzMxLDMwIEBAIEphbgogQ29udGVudC1U eXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lpCiBDb250ZW50LURpc3Bvc2l0aW9uOiBp bmxpbmU7IGZpbGVuYW1lPSJ2bGFzdHJpbmdvbmx5LnBhdGNoIgogCi1JbmRleDogZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvZ2RidHlwZXMuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2Ri L2dkYnR5cGVzLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjUwLjIwMTQxMjI4Lm9yaWcvZ2Ri L2dkYnR5cGVzLmMJMjAxNS0wMS0wOCAxODoxNToxOC40NzU2ODI1MjMgKzAxMDAKLSsrKyBnZGIt Ny44LjUwLjIwMTQxMjI4L2dkYi9nZGJ0eXBlcy5jCTIwMTUtMDEtMDggMTg6Mzk6MDEuNDIzMTM0 NzAwICswMTAwCi1AQCAtMTY4NCw2ICsxNjg0LDcgQEAgaXNfZHluYW1pY190eXBlX2ludGVybmFs IChzdHJ1Y3QgdHlwZSAqdAotICAgICAgIHJldHVybiAhaGFzX3N0YXRpY19yYW5nZSAoVFlQRV9S QU5HRV9EQVRBICh0eXBlKSk7CistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9nZGJ0 eXBlcy5jCTIwMTUtMDUtMzEgMTY6MTQ6MDQuMTY0NTMzODMzICswMjAwCisrKysgZ2RiLTcuOS41 MC4yMDE1MDUyMC9nZGIvZ2RidHlwZXMuYwkyMDE1LTA1LTMxIDE2OjE0OjA1Ljg0NDU0NTM0NCAr MDIwMAorQEAgLTE4NTEsNiArMTg1MSw3IEBAIGlzX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAoc3Ry dWN0IHR5cGUgKnQKKyAgICAgICB9CiAgCiAgICAgIGNhc2UgVFlQRV9DT0RFX0FSUkFZOgogKyAg ICBjYXNlIFRZUEVfQ09ERV9TVFJJTkc6CiAgICAgICAgewogIAlnZGJfYXNzZXJ0IChUWVBFX05G SUVMRFMgKHR5cGUpID09IDEpOwogIAotQEAgLTE5OTIsNiArMTk5Myw3IEBAIHJlc29sdmVfZHlu YW1pY190eXBlX2ludGVybmFsIChzdHJ1Y3QgdHkKK0BAIC0yMTkyLDYgKzIxOTMsNyBAQCByZXNv bHZlX2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAoc3RydWN0IHR5CiAgCSAgfQogIAogIAljYXNlIFRZ UEVfQ09ERV9BUlJBWToKICsJY2FzZSBUWVBFX0NPREVfU1RSSU5HOgotIAkgIHJlc29sdmVkX3R5 cGUgPSByZXNvbHZlX2R5bmFtaWNfYXJyYXkgKHR5cGUsIGFkZHIpOworIAkgIHJlc29sdmVkX3R5 cGUgPSByZXNvbHZlX2R5bmFtaWNfYXJyYXkgKHR5cGUsIGFkZHJfc3RhY2spOwogIAkgIGJyZWFr OwogIAotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi9keW5hbWljLW90aGVyLWZyYW1lLXN0dWIuZjkwCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUy MC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMtb3RoZXItZnJhbWUtc3R1Yi5mOTAK ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAg KzAwMDAKLSsrKyBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v ZHluYW1pYy1vdGhlci1mcmFtZS1zdHViLmY5MAkyMDE1LTAxLTA4IDE4OjE1OjE4Ljg5NzY4NDQz NSArMDEwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi9keW5hbWljLW90aGVyLWZyYW1lLXN0dWIuZjkwCTIwMTUtMDUtMzEgMTY6MTQ6MDUuODQ0NTQ1 MzQ0ICswMjAwCiBAQCAtMCwwICsxLDI0IEBACiArISBDb3B5cmlnaHQgMjAxMCBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KICshCkBAIC04MCwxMCArODAsMTAgQEAgSW5kZXg6IGdkYi03 LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLW90aGVyLWZy YW1lLXN0dWIuZjkKICsgIHJlYWwgOjogZHVtbXkKICsgIGR1bW15ID0gMQogK2VuZCBzdWJyb3V0 aW5lIGJhcgotSW5kZXg6IGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9y dHJhbi9keW5hbWljLW90aGVyLWZyYW1lLmV4cAorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLW90aGVyLWZyYW1lLmV4cAogPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAot KysrIGdkYi03LjguNTAuMjAxNDEyMjgvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWlj LW90aGVyLWZyYW1lLmV4cAkyMDE1LTAxLTA4IDE4OjE1OjE4Ljg5NzY4NDQzNSArMDEwMAorKysr IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9keW5hbWljLW90 aGVyLWZyYW1lLmV4cAkyMDE1LTA1LTMxIDE2OjE0OjA1Ljg0NTU0NTM1MSArMDIwMAogQEAgLTAs MCArMSwzOSBAQAogKyMgQ29weXJpZ2h0IDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCiArCkBAIC0xMjQsMTAgKzEyNCwxMCBAQCBJbmRleDogZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMtb3RoZXItZnJhbWUuZXhwCiArfQogKwog K2dkYl90ZXN0ICJidCIge2ZvbyBcKHN0cmluZz0naGVsbG8nLip9Ci1JbmRleDogZ2RiLTcuOC41 MC4yMDE0MTIyOC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMtb3RoZXItZnJhbWUu ZjkwCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L2R5bmFtaWMtb3RoZXItZnJhbWUuZjkwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAt MDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOC41MC4yMDE0MTIyOC9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMtb3RoZXItZnJhbWUuZjkwCTIwMTUtMDEt MDggMTg6MTU6MTguODk3Njg0NDM1ICswMTAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL2R5bmFtaWMtb3RoZXItZnJhbWUuZjkwCTIwMTUtMDUtMzEg MTY6MTQ6MDUuODQ1NTQ1MzUxICswMjAwCiBAQCAtMCwwICsxLDM2IEBACiArISBDb3B5cmlnaHQg MjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICshCkBAIC0xNjUsMyArMTY1LDE3 IEBAIEluZGV4OiBnZGItNy44LjUwLjIwMTQxMjI4L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v ZHluYW1pYy1vdGhlci1mcmFtZS5mOTAKICsgIGVuZCBpbnRlcmZhY2UKICsgIGNhbGwgZm9vICgn aGVsbG8nKQogK2VuZAorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9n ZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5leHAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSBnZGItNy45LjUwLjIw MTUwNTIwLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5leHAJMjAx NS0wNS0zMSAxNjoxNDowNC4xNjc1MzM4NTQgKzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIw L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZXhwCTIwMTUtMDUtMzEgMTY6 MTQ6MzEuMDczNzE4MjAxICswMjAwCitAQCAtMzMsOSArMzMsNiBAQCBnZGJfY29udGludWVfdG9f YnJlYWtwb2ludCAidmFyX2NoYXItYWxsCisgZ2RiX3Rlc3QgInByaW50IHZhcl9jaGFyIiBcCisg ICAiID0gXFwoUFRSIFRPIC0+IFxcKCBjaGFyYWN0ZXJcXCoxMCBcXClcXCkgJHtoZXh9IiBcCisg ICAicHJpbnQgdmFyX2NoYXIgYWZ0ZXIgYWxsb2NhdGVkIGZpcnN0IHRpbWUiCistZ2RiX3Rlc3Qg InByaW50ICp2YXJfY2hhciIgXAorLSAgIiA9ICdcXFxcMDAwXFxcXDAwMFxcXFwwMDBcXFxcMDAw XFxcXDAwMFxcXFwwMDBcXFxcMDAwXFxcXDAwMFxcXFwwMDBcXFxcMDAwJyIgXAorLSAgInByaW50 ICp2YXJfY2hhciBhZnRlciBhbGxvY2F0ZWQgZmlyc3QgdGltZSIKKyBnZGJfdGVzdCAid2hhdGlz IHZhcl9jaGFyIiAidHlwZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMTAgXFwpIiBcCisg ICAid2hhdGlzIHZhcl9jaGFyIGZpcnN0IHRpbWUiCisgZ2RiX3Rlc3QgInB0eXBlIHZhcl9jaGFy IiAidHlwZSA9IFBUUiBUTyAtPiBcXCggY2hhcmFjdGVyXFwqMTAgXFwpIiBcCgpkaWZmIC0tZ2l0 IGEvZ2RiLXZsYS1pbnRlbC5wYXRjaCBiL2dkYi12bGEtaW50ZWwucGF0Y2gKaW5kZXggOWI4NmJk ZS4uODVjMDM2NCAxMDA2NDQKLS0tIGEvZ2RiLXZsYS1pbnRlbC5wYXRjaAorKysgYi9nZGItdmxh LWludGVsLnBhdGNoCkBAIC02LDEwICs2LDEwIEBAIEdJVCBzbmFwc2hvdDoKIGNvbW1pdCA1MTFi ZmY1MjAzNzJmZmMxMGZhMmZmNTY5YzE3NmJkZjFlNmU0NzVkCiAKIAotSW5kZXg6IGdkYi03Ljgu OTAuMjAxNTAxMjYvZ2RiL2MtdmFscHJpbnQuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAv Z2RiL2MtdmFscHJpbnQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguOTAuMjAxNTAxMjYub3Jp Zy9nZGIvYy12YWxwcmludC5jCTIwMTUtMDEtMjYgMDc6NDc6MjUuODMyNzU4MzE0ICswMTAwCi0r KysgZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvYy12YWxwcmludC5jCTIwMTUtMDEtMjYgMDc6NDc6 NDIuMzk0ODI5ODYxICswMTAwCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9jLXZh bHByaW50LmMJMjAxNS0wNS0yOSAwODoyNzowMi42NTc3MTczMjYgKzAyMDAKKysrKyBnZGItNy45 LjUwLjIwMTUwNTIwL2dkYi9jLXZhbHByaW50LmMJMjAxNS0wNS0yOSAwODoyNzowNi4yNTM3NDAy MDkgKzAyMDAKIEBAIC01MzcsNyArNTM3LDE2IEBAIGNfdmFsdWVfcHJpbnQgKHN0cnVjdCB2YWx1 ZSAqdmFsLCBzdHJ1Y3QKICAJewogIAkgIC8qIG5vcm1hbCBjYXNlICovCkBAIC0yOCwxMiArMjgs MTIgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL2MtdmFscHJpbnQuYwogIAkgIGZw cmludGZfZmlsdGVyZWQgKHN0cmVhbSwgIikgIik7CiAgCX0KICAgICAgfQotSW5kZXg6IGdkYi03 LjguOTAuMjAxNTAxMjYvZ2RiL2R3YXJmMmxvYy5oCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUy MC9nZGIvZHdhcmYybG9jLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMTI2Lm9y aWcvZ2RiL2R3YXJmMmxvYy5oCTIwMTUtMDEtMjYgMDc6NDc6MjUuODMyNzU4MzE0ICswMTAwCi0r KysgZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvZHdhcmYybG9jLmgJMjAxNS0wMS0yNiAwNzo0Nzo0 Mi4zOTU4Mjk4NjUgKzAxMDAKLUBAIC0xMTEsNiArMTExLDExIEBAIGludCBkd2FyZjJfZXZhbHVh dGVfcHJvcGVydHkgKGNvbnN0IHN0cnUKLSAJCQkgICAgICBDT1JFX0FERFIgYWRkcmVzcywKKy0t LSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2R3YXJmMmxvYy5oCTIwMTUtMDUtMjkgMDg6 Mjc6MDIuNjU4NzE3MzMzICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZHdhcmYy bG9jLmgJMjAxNS0wNS0yOSAwODoyNzowNi4yNTM3NDAyMDkgKzAyMDAKK0BAIC0xMzEsNiArMTMx LDExIEBAIGludCBkd2FyZjJfZXZhbHVhdGVfcHJvcGVydHkgKGNvbnN0IHN0cnUKKyAJCQkgICAg ICBzdHJ1Y3QgcHJvcGVydHlfYWRkcl9pbmZvICphZGRyX3N0YWNrLAogIAkJCSAgICAgIENPUkVf QUREUiAqdmFsdWUpOwogIAogKy8qIENoZWNrcyBpZiBhIGR3YXJmIGxvY2F0aW9uIGRlZmluaXRp b24gaXMgdmFsaWQuCkBAIC00NCwxMSArNDQsMTEgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAx MjYvZ2RiL2R3YXJmMmxvYy5oCiAgLyogQSBoZWxwZXIgZm9yIHRoZSBjb21waWxlciBpbnRlcmZh Y2UgdGhhdCBjb21waWxlcyBhIHNpbmdsZSBkeW5hbWljCiAgICAgcHJvcGVydHkgdG8gQyBjb2Rl LgogIAotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL2R3YXJmMnJlYWQuYworSW5kZXg6 IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2R3YXJmMnJlYWQuYwogPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdk Yi03LjguOTAuMjAxNTAxMjYub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIwMTUtMDEtMjYgMDc6NDc6 MjUuODQ1NzU4MzcxICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvZHdhcmYycmVh ZC5jCTIwMTUtMDEtMjYgMDc6NDg6MDUuODMzOTMxMTE2ICswMTAwCi1AQCAtMTg1NSw2ICsxODU1 LDEyIEBAIHN0YXRpYyB2b2lkIHByb2Nlc3NfY3VfaW5jbHVkZXMgKHZvaWQpOworLS0tIGdkYi03 LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvZHdhcmYycmVhZC5jCTIwMTUtMDUtMjkgMDg6Mjc6MDIu Njc2NzE3NDQ3ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZHdhcmYycmVhZC5j CTIwMTUtMDUtMjkgMTA6MDQ6NTIuMjcyNjAwMjEyICswMjAwCitAQCAtMTg2OCw2ICsxODY4LDEy IEBAIHN0YXRpYyB2b2lkIHByb2Nlc3NfY3VfaW5jbHVkZXMgKHZvaWQpOwogIHN0YXRpYyB2b2lk IGNoZWNrX3Byb2R1Y2VyIChzdHJ1Y3QgZHdhcmYyX2N1ICpjdSk7CiAgCiAgc3RhdGljIHZvaWQg ZnJlZV9saW5lX2hlYWRlcl92b2lkcCAodm9pZCAqYXJnKTsKQEAgLTYxLDcgKzYxLDcgQEAgSW5k ZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL2R3YXJmMnJlYWQuYwogIAwKICAvKiBWYXJpb3Vz IGNvbXBsYWludHMgYWJvdXQgc3ltYm9sIHJlYWRpbmcgdGhhdCBkb24ndCBhYm9ydCB0aGUgcHJv Y2Vzcy4gICovCiAgCi1AQCAtMTQzNTQsMjkgKzE0MzYwLDkyIEBAIHJlYWRfdGFnX3N0cmluZ190 eXBlIChzdHJ1Y3QgZGllX2luZm8gKmQKK0BAIC0xNDQzMSwyOSArMTQ0MzcsOTIgQEAgcmVhZF90 YWdfc3RyaW5nX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZAogICAgc3RydWN0IGdkYmFyY2ggKmdk YmFyY2ggPSBnZXRfb2JqZmlsZV9hcmNoIChvYmpmaWxlKTsKICAgIHN0cnVjdCB0eXBlICp0eXBl LCAqcmFuZ2VfdHlwZSwgKmluZGV4X3R5cGUsICpjaGFyX3R5cGU7CiAgICBzdHJ1Y3QgYXR0cmli dXRlICphdHRyOwpAQCAtMTYxLDcgKzE2MSw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2 L2dkYi9kd2FyZjJyZWFkLmMKICAgIGNoYXJfdHlwZSA9IGxhbmd1YWdlX3N0cmluZ19jaGFyX3R5 cGUgKGN1LT5sYW5ndWFnZV9kZWZuLCBnZGJhcmNoKTsKICAgIHR5cGUgPSBjcmVhdGVfc3RyaW5n X3R5cGUgKE5VTEwsIGNoYXJfdHlwZSwgcmFuZ2VfdHlwZSk7CiAgCi1AQCAtMTQ2OTMsMTMgKzE0 NzYyLDE1IEBAIHJlYWRfYmFzZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3QKK0BAIC0x NDc3NiwxMyArMTQ4NDUsMTUgQEAgcmVhZF9iYXNlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGll LCBzdAogICAgcmV0dXJuIHNldF9kaWVfdHlwZSAoZGllLCB0eXBlLCBjdSk7CiAgfQogIApAQCAt MTc4LDcgKzE3OCw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi9kd2FyZjJyZWFk LmMKICB7CiAgICBzdHJ1Y3QgZHdhcmYyX3Byb3BlcnR5X2JhdG9uICpiYXRvbjsKICAgIHN0cnVj dCBvYnN0YWNrICpvYnN0YWNrID0gJmN1LT5vYmpmaWxlLT5vYmpmaWxlX29ic3RhY2s7Ci1AQCAt MTQ3MTIsOCArMTQ3ODMsMjUgQEAgYXR0cl90b19keW5hbWljX3Byb3AgKGNvbnN0IHN0cnVjdCBh dHRyaQorQEAgLTE0Nzk1LDggKzE0ODY2LDI1IEBAIGF0dHJfdG9fZHluYW1pY19wcm9wIChjb25z dCBzdHJ1Y3QgYXR0cmkKICAgICAgICBiYXRvbiA9IG9ic3RhY2tfYWxsb2MgKG9ic3RhY2ssIHNp emVvZiAoKmJhdG9uKSk7CiAgICAgICAgYmF0b24tPnJlZmVyZW5jZWRfdHlwZSA9IE5VTEw7CiAg ICAgICAgYmF0b24tPmxvY2V4cHIucGVyX2N1ID0gY3UtPnBlcl9jdTsKQEAgLTIwNiwzOCArMjA2 LDM4IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi9kd2FyZjJyZWFkLmMKICAgICAg ICBwcm9wLT5kYXRhLmJhdG9uID0gYmF0b247CiAgICAgICAgcHJvcC0+a2luZCA9IFBST1BfTE9D RVhQUjsKICAgICAgICBnZGJfYXNzZXJ0IChwcm9wLT5kYXRhLmJhdG9uICE9IE5VTEwpOwotQEAg LTE0NzQzLDggKzE0ODMxLDI4IEBAIGF0dHJfdG9fZHluYW1pY19wcm9wIChjb25zdCBzdHJ1Y3Qg YXR0cmkKLSAJICBiYXRvbiA9IG9ic3RhY2tfYWxsb2MgKG9ic3RhY2ssIHNpemVvZiAoKmJhdG9u KSk7Ci0gCSAgYmF0b24tPnJlZmVyZW5jZWRfdHlwZSA9IGRpZV90eXBlICh0YXJnZXRfZGllLCB0 YXJnZXRfY3UpOwotIAkgIGJhdG9uLT5sb2NleHByLnBlcl9jdSA9IGN1LT5wZXJfY3U7Ci0tCSAg YmF0b24tPmxvY2V4cHIuc2l6ZSA9IERXX0JMT0NLICh0YXJnZXRfYXR0ciktPnNpemU7Ci0tCSAg YmF0b24tPmxvY2V4cHIuZGF0YSA9IERXX0JMT0NLICh0YXJnZXRfYXR0ciktPmRhdGE7Ci0rCi0r CSAgaWYgKGFkZGl0aW9uYWxfZGF0YSAhPSBOVUxMICYmIGFkZGl0aW9uYWxfZGF0YV9zaXplID4g MCkKLSsJICAgIHsKLSsJICAgICAgZ2RiX2J5dGUgKmRhdGE7Ci0rCi0rCSAgICAgIGRhdGEgPSBv YnN0YWNrX2FsbG9jICgmY3UtPm9iamZpbGUtPm9iamZpbGVfb2JzdGFjaywKLSsJICAgICAgICAg ICAgICBEV19CTE9DSyAodGFyZ2V0X2F0dHIpLT5zaXplICsgYWRkaXRpb25hbF9kYXRhX3NpemUp OwotKwkgICAgICBtZW1jcHkgKGRhdGEsIERXX0JMT0NLICh0YXJnZXRfYXR0ciktPmRhdGEsCi0r CSAgICAgICAgICAgICAgRFdfQkxPQ0sgKHRhcmdldF9hdHRyKS0+c2l6ZSk7Ci0rCSAgICAgIG1l bWNweSAoZGF0YSArIERXX0JMT0NLICh0YXJnZXRfYXR0ciktPnNpemUsCi0rCSAgICAgICAgICAg ICAgYWRkaXRpb25hbF9kYXRhLCBhZGRpdGlvbmFsX2RhdGFfc2l6ZSk7Ci0rCi0rCSAgICAgIGJh dG9uLT5sb2NleHByLmRhdGEgPSBkYXRhOwotKwkgICAgICBiYXRvbi0+bG9jZXhwci5zaXplID0g KERXX0JMT0NLICh0YXJnZXRfYXR0ciktPnNpemUKLSsJICAgICAgICAgICAgICAgICAgICAgICAg ICAgICArIGFkZGl0aW9uYWxfZGF0YV9zaXplKTsKLSsJICAgIH0KLSsJICBlbHNlCi0rCSAgICB7 Ci0rCSAgICAgIGJhdG9uLT5sb2NleHByLmRhdGEgPSBEV19CTE9DSyAodGFyZ2V0X2F0dHIpLT5k YXRhOwotKwkgICAgICBiYXRvbi0+bG9jZXhwci5zaXplID0gRFdfQkxPQ0sgKHRhcmdldF9hdHRy KS0+c2l6ZTsKLSsJICAgIH0KLSsKLSAJICBwcm9wLT5kYXRhLmJhdG9uID0gYmF0b247Ci0gCSAg cHJvcC0+a2luZCA9IFBST1BfTE9DRVhQUjsKLSAJICBnZGJfYXNzZXJ0IChwcm9wLT5kYXRhLmJh dG9uICE9IE5VTEwpOwotQEAgLTE0Nzc5LDcgKzE0ODg3LDcgQEAgcmVhZF9zdWJyYW5nZV90eXBl IChzdHJ1Y3QgZGllX2luZm8gKmRpZQorQEAgLTE0ODMyLDggKzE0OTIwLDI4IEBAIGF0dHJfdG9f ZHluYW1pY19wcm9wIChjb25zdCBzdHJ1Y3QgYXR0cmkKKyAJCWJhdG9uID0gb2JzdGFja19hbGxv YyAob2JzdGFjaywgc2l6ZW9mICgqYmF0b24pKTsKKyAJCWJhdG9uLT5yZWZlcmVuY2VkX3R5cGUg PSBkaWVfdHlwZSAodGFyZ2V0X2RpZSwgdGFyZ2V0X2N1KTsKKyAJCWJhdG9uLT5sb2NleHByLnBl cl9jdSA9IGN1LT5wZXJfY3U7CistCQliYXRvbi0+bG9jZXhwci5zaXplID0gRFdfQkxPQ0sgKHRh cmdldF9hdHRyKS0+c2l6ZTsKKy0JCWJhdG9uLT5sb2NleHByLmRhdGEgPSBEV19CTE9DSyAodGFy Z2V0X2F0dHIpLT5kYXRhOworKworKwkJaWYgKGFkZGl0aW9uYWxfZGF0YSAhPSBOVUxMICYmIGFk ZGl0aW9uYWxfZGF0YV9zaXplID4gMCkKKysJCSAgeworKwkJICAgIGdkYl9ieXRlICpkYXRhOwor KworKwkJICAgIGRhdGEgPSBvYnN0YWNrX2FsbG9jICgmY3UtPm9iamZpbGUtPm9iamZpbGVfb2Jz dGFjaywKKysJCQkgICAgRFdfQkxPQ0sgKHRhcmdldF9hdHRyKS0+c2l6ZSArIGFkZGl0aW9uYWxf ZGF0YV9zaXplKTsKKysJCSAgICBtZW1jcHkgKGRhdGEsIERXX0JMT0NLICh0YXJnZXRfYXR0cikt PmRhdGEsCisrCQkJICAgIERXX0JMT0NLICh0YXJnZXRfYXR0ciktPnNpemUpOworKwkJICAgIG1l bWNweSAoZGF0YSArIERXX0JMT0NLICh0YXJnZXRfYXR0ciktPnNpemUsCisrCQkJICAgIGFkZGl0 aW9uYWxfZGF0YSwgYWRkaXRpb25hbF9kYXRhX3NpemUpOworKworKwkJICAgIGJhdG9uLT5sb2Nl eHByLmRhdGEgPSBkYXRhOworKwkJICAgIGJhdG9uLT5sb2NleHByLnNpemUgPSAoRFdfQkxPQ0sg KHRhcmdldF9hdHRyKS0+c2l6ZQorKwkJCQkJICAgKyBhZGRpdGlvbmFsX2RhdGFfc2l6ZSk7Cisr CQkgIH0KKysJCWVsc2UKKysJCSAgeworKwkJICAgIGJhdG9uLT5sb2NleHByLmRhdGEgPSBEV19C TE9DSyAodGFyZ2V0X2F0dHIpLT5kYXRhOworKwkJICAgIGJhdG9uLT5sb2NleHByLnNpemUgPSBE V19CTE9DSyAodGFyZ2V0X2F0dHIpLT5zaXplOworKwkJICB9CisrCisgCQlwcm9wLT5kYXRhLmJh dG9uID0gYmF0b247CisgCQlwcm9wLT5raW5kID0gUFJPUF9MT0NFWFBSOworIAkJZ2RiX2Fzc2Vy dCAocHJvcC0+ZGF0YS5iYXRvbiAhPSBOVUxMKTsKK0BAIC0xNDg4Nyw3ICsxNDk5NSw3IEBAIHJl YWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUKICAgIHN0cnVjdCB0eXBlICpi YXNlX3R5cGUsICpvcmlnX2Jhc2VfdHlwZTsKICAgIHN0cnVjdCB0eXBlICpyYW5nZV90eXBlOwog ICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKQEAgLTI0Niw3ICsyNDYsNyBAQCBJbmRleDogZ2Ri LTcuOC45MC4yMDE1MDEyNi9nZGIvZHdhcmYycmVhZC5jCiAgICBpbnQgbG93X2RlZmF1bHRfaXNf dmFsaWQ7CiAgICBpbnQgaGlnaF9ib3VuZF9pc19jb3VudCA9IDA7CiAgICBjb25zdCBjaGFyICpu YW1lOwotQEAgLTE0Nzk5LDcgKzE0OTA3LDkgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3Qg ZGllX2luZm8gKmRpZQorQEAgLTE0OTA3LDcgKzE1MDE1LDkgQEAgcmVhZF9zdWJyYW5nZV90eXBl IChzdHJ1Y3QgZGllX2luZm8gKmRpZQogIAogICAgbG93LmtpbmQgPSBQUk9QX0NPTlNUOwogICAg aGlnaC5raW5kID0gUFJPUF9DT05TVDsKQEAgLTI1Niw3ICsyNTYsNyBAQCBJbmRleDogZ2RiLTcu OC45MC4yMDE1MDEyNi9nZGIvZHdhcmYycmVhZC5jCiAgCiAgICAvKiBTZXQgTE9XX0RFRkFVTFRf SVNfVkFMSUQgaWYgY3VycmVudCBsYW5ndWFnZSBhbmQgRFdBUkYgdmVyc2lvbiBhbGxvdwogICAg ICAgb21pdHRpbmcgRFdfQVRfbG93ZXJfYm91bmQuICAqLwotQEAgLTE0ODMyLDE5ICsxNDk0Miwy NiBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5mbyAqZGllCitAQCAtMTQ5NDAs MTkgKzE1MDUwLDI2IEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUK ICAgICAgICBicmVhazsKICAgICAgfQogIApAQCAtMjg2LDcgKzI4Niw3IEBAIEluZGV4OiBnZGIt Ny44LjkwLjIwMTUwMTI2L2dkYi9kd2FyZjJyZWFkLmMKICAJewogIAkgIC8qIElmIGJvdW5kcyBh cmUgY29uc3RhbnQgZG8gdGhlIGZpbmFsIGNhbGN1bGF0aW9uIGhlcmUuICAqLwogIAkgIGlmIChs b3cua2luZCA9PSBQUk9QX0NPTlNUICYmIGhpZ2gua2luZCA9PSBQUk9QX0NPTlNUKQotQEAgLTE0 OTA4LDcgKzE1MDI1LDcgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRp ZQorQEAgLTE1MDE2LDcgKzE1MTMzLDcgQEAgcmVhZF9zdWJyYW5nZV90eXBlIChzdHJ1Y3QgZGll X2luZm8gKmRpZQogICAgICAgICYmICFUWVBFX1VOU0lHTkVEIChiYXNlX3R5cGUpICYmIChoaWdo LmRhdGEuY29uc3RfdmFsICYgbmVnYXRpdmVfbWFzaykpCiAgICAgIGhpZ2guZGF0YS5jb25zdF92 YWwgfD0gbmVnYXRpdmVfbWFzazsKICAKQEAgLTI5NSwxOCArMjk1LDEwIEBAIEluZGV4OiBnZGIt Ny44LjkwLjIwMTUwMTI2L2dkYi9kd2FyZjJyZWFkLmMKICAKICAgIGlmIChoaWdoX2JvdW5kX2lz X2NvdW50KQogICAgICBUWVBFX1JBTkdFX0RBVEEgKHJhbmdlX3R5cGUpLT5mbGFnX3VwcGVyX2Jv dW5kX2lzX2NvdW50ID0gMTsKLUBAIC0yMTk5NCw3ICsyMjExMSw0NCBAQCBzZXRfZGllX3R5cGUg KHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1CitAQCAtMjIxMjgsOSArMjIyNDUsMzcgQEAgc2V0 X2RpZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydQorICAgICAgICYmICFIQVZFX0dO QVRfQVVYX0lORk8gKHR5cGUpKQorICAgICBJTklUX0dOQVRfU1BFQ0lGSUMgKHR5cGUpOwogIAot ICAgLyogUmVhZCBEV19BVF9kYXRhX2xvY2F0aW9uIGFuZCBzZXQgaW4gdHlwZS4gICovCi0gICBh dHRyID0gZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfZGF0YV9sb2NhdGlvbiwgY3UpOwotLSAgaWYg KGF0dHJfdG9fZHluYW1pY19wcm9wIChhdHRyLCBkaWUsIGN1LCAmcHJvcCkpCi0rICBpZiAoYXR0 cl90b19keW5hbWljX3Byb3AgKGF0dHIsIGRpZSwgY3UsICZwcm9wLCBOVUxMLCAwKSkKLSsgICAg ewotKyAgICAgIFRZUEVfREFUQV9MT0NBVElPTiAodHlwZSkKLSsgICAgICAgID0gb2JzdGFja19h bGxvYyAoJm9iamZpbGUtPm9iamZpbGVfb2JzdGFjaywgc2l6ZW9mIChwcm9wKSk7Ci0rICAgICAg KlRZUEVfREFUQV9MT0NBVElPTiAodHlwZSkgPSBwcm9wOwotKyAgICB9Ci0rCiArICAvKiBSZWFk IERXX0FUX2FsbG9jYXRlZCBhbmQgc2V0IGluIHR5cGUuICAqLwogKyAgYXR0ciA9IGR3YXJmMl9h dHRyIChkaWUsIERXX0FUX2FsbG9jYXRlZCwgY3UpOwogKyAgaWYgKGF0dHJfZm9ybV9pc19ibG9j ayAoYXR0cikpCkBAIC0zMzUsMTYgKzMyNywxNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEy Ni9nZGIvZHdhcmYycmVhZC5jCiArICAgICAgICB9CiArICAgIH0KICsKLSsgIC8qIFJlYWQgRFdf QVRfZGF0YV9sb2NhdGlvbiBhbmQgc2V0IGluIHR5cGUuICAqLwotKyAgYXR0ciA9IGR3YXJmMl9h dHRyIChkaWUsIERXX0FUX2RhdGFfbG9jYXRpb24sIGN1KTsKKyAgIC8qIFJlYWQgRFdfQVRfZGF0 YV9sb2NhdGlvbiBhbmQgc2V0IGluIHR5cGUuICAqLworICAgYXR0ciA9IGR3YXJmMl9hdHRyIChk aWUsIERXX0FUX2RhdGFfbG9jYXRpb24sIGN1KTsKKy0gIGlmIChhdHRyX3RvX2R5bmFtaWNfcHJv cCAoYXR0ciwgZGllLCBjdSwgJnByb3ApKQogKyAgaWYgKGF0dHJfdG9fZHluYW1pY19wcm9wIChh dHRyLCBkaWUsIGN1LCAmcHJvcCwgTlVMTCwgMCkpCi0gICAgIHsKLSAgICAgICBUWVBFX0RBVEFf TE9DQVRJT04gKHR5cGUpCi0gICAgICAgICA9IG9ic3RhY2tfYWxsb2MgKCZvYmpmaWxlLT5vYmpm aWxlX29ic3RhY2ssIHNpemVvZiAocHJvcCkpOwotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYv Z2RiL2YtdHlwZXByaW50LmMKKyAgICAgYWRkX2R5bl9wcm9wIChEWU5fUFJPUF9EQVRBX0xPQ0FU SU9OLCBwcm9wLCB0eXBlLCBvYmpmaWxlKTsKKyAKKyAgIGlmIChkd2FyZjJfcGVyX29iamZpbGUt PmRpZV90eXBlX2hhc2ggPT0gTlVMTCkKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi9m LXR5cGVwcmludC5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDEyNi5vcmlnL2dk Yi9mLXR5cGVwcmludC5jCTIwMTUtMDEtMjYgMDc6NDc6MjUuODQ2NzU4Mzc1ICswMTAwCi0rKysg Z2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvZi10eXBlcHJpbnQuYwkyMDE1LTAxLTI2IDA3OjQ3OjQy LjQwMjgyOTg5NSArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvZi10eXBl cHJpbnQuYwkyMDE1LTA1LTI5IDA4OjI3OjAyLjY3ODcxNzQ2MCArMDIwMAorKysrIGdkYi03Ljku NTAuMjAxNTA1MjAvZ2RiL2YtdHlwZXByaW50LmMJMjAxNS0wNS0yOSAwODoyNzowNi4yNjE3NDAy NjAgKzAyMDAKIEBAIC0zMCw2ICszMCw3IEBACiAgI2luY2x1ZGUgImdkYmNvcmUuaCIKICAjaW5j bHVkZSAidGFyZ2V0LmgiCkBAIC00MjksMTAgKzQyMiwxMCBAQCBJbmRleDogZ2RiLTcuOC45MC4y MDE1MDEyNi9nZGIvZi10eXBlcHJpbnQuYwogICAgICAgIGlmIChhcnJheXByaW50X3JlY3Vyc2Vf bGV2ZWwgPT0gMSkKICAJZnByaW50Zl9maWx0ZXJlZCAoc3RyZWFtLCAiKSIpOwogICAgICAgIGVs c2UKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi9mLXZhbHByaW50LmMKK0luZGV4OiBn ZGItNy45LjUwLjIwMTUwNTIwL2dkYi9mLXZhbHByaW50LmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny44LjkwLjIwMTUwMTI2Lm9yaWcvZ2RiL2YtdmFscHJpbnQuYwkyMDE1LTAxLTI2IDA3OjQ3OjI1 Ljg0Nzc1ODM3OSArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL2YtdmFscHJpbnQu YwkyMDE1LTAxLTI2IDA3OjQ3OjQyLjQwMzgyOTkwMCArMDEwMAorLS0tIGdkYi03LjkuNTAuMjAx NTA1MjAub3JpZy9nZGIvZi12YWxwcmludC5jCTIwMTUtMDUtMjkgMDg6MjY6NDkuNTY3NjM0MDE5 ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvZi12YWxwcmludC5jCTIwMTUtMDUt MjkgMDg6Mjc6MDYuMjYyNzQwMjY2ICswMjAwCiBAQCAtMzYsOCArMzYsNiBAQAogIAogIGV4dGVy biB2b2lkIF9pbml0aWFsaXplX2ZfdmFscHJpbnQgKHZvaWQpOwpAQCAtNjE5LDExICs2MTIsMTEg QEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL2YtdmFscHJpbnQuYwogICAgICAgICAg ICBpZiAoaW5kZXggIT0gVFlQRV9ORklFTERTICh0eXBlKSAtIDEpCiAgICAgICAgICAgICAgZnB1 dHNfZmlsdGVyZWQgKCIsICIsIHN0cmVhbSk7CiAgICAgICAgICB9Ci1JbmRleDogZ2RiLTcuOC45 MC4yMDE1MDEyNi9nZGIvZ2RidHlwZXMuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2Ri L2dkYnR5cGVzLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMTI2Lm9yaWcvZ2Ri L2dkYnR5cGVzLmMJMjAxNS0wMS0yNiAwNzo0NzoyNS44NTA3NTgzOTIgKzAxMDAKLSsrKyBnZGIt Ny44LjkwLjIwMTUwMTI2L2dkYi9nZGJ0eXBlcy5jCTIwMTUtMDEtMjYgMDc6NDc6NDIuNDA0ODI5 OTA0ICswMTAwCi1AQCAtODE1LDcgKzgxNSw4IEBAIGFsbG9jYXRlX3N0dWJfbWV0aG9kIChzdHJ1 Y3QgdHlwZSAqdHlwZSkKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2dkYnR5cGVz LmMJMjAxNS0wNS0yOSAwODoyNzowMi42ODM3MTc0OTIgKzAyMDAKKysrKyBnZGItNy45LjUwLjIw MTUwNTIwL2dkYi9nZGJ0eXBlcy5jCTIwMTUtMDUtMjkgMTA6NTQ6MzYuMjM2NDk4NzQ5ICswMjAw CitAQCAtODI0LDcgKzgyNCw4IEBAIGFsbG9jYXRlX3N0dWJfbWV0aG9kIChzdHJ1Y3QgdHlwZSAq dHlwZSkKICBzdHJ1Y3QgdHlwZSAqCiAgY3JlYXRlX3JhbmdlX3R5cGUgKHN0cnVjdCB0eXBlICpy ZXN1bHRfdHlwZSwgc3RydWN0IHR5cGUgKmluZGV4X3R5cGUsCiAgCQkgICBjb25zdCBzdHJ1Y3Qg ZHluYW1pY19wcm9wICpsb3dfYm91bmQsCkBAIC02MzMsNyArNjI2LDcgQEAgSW5kZXg6IGdkYi03 LjguOTAuMjAxNTAxMjYvZ2RiL2dkYnR5cGVzLmMKICB7CiAgICBpZiAocmVzdWx0X3R5cGUgPT0g TlVMTCkKICAgICAgcmVzdWx0X3R5cGUgPSBhbGxvY190eXBlX2NvcHkgKGluZGV4X3R5cGUpOwot QEAgLTgzMCw2ICs4MzEsNyBAQCBjcmVhdGVfcmFuZ2VfdHlwZSAoc3RydWN0IHR5cGUgKnJlc3Vs dF90CitAQCAtODM5LDYgKzg0MCw3IEBAIGNyZWF0ZV9yYW5nZV90eXBlIChzdHJ1Y3QgdHlwZSAq cmVzdWx0X3QKICAgICAgVFlQRV9aQUxMT0MgKHJlc3VsdF90eXBlLCBzaXplb2YgKHN0cnVjdCBy YW5nZV9ib3VuZHMpKTsKICAgIFRZUEVfUkFOR0VfREFUQSAocmVzdWx0X3R5cGUpLT5sb3cgPSAq bG93X2JvdW5kOwogICAgVFlQRV9SQU5HRV9EQVRBIChyZXN1bHRfdHlwZSktPmhpZ2ggPSAqaGln aF9ib3VuZDsKQEAgLTY0MSw3ICs2MzQsNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9n ZGIvZ2RidHlwZXMuYwogIAogICAgaWYgKGxvd19ib3VuZC0+a2luZCA9PSBQUk9QX0NPTlNUICYm IGxvd19ib3VuZC0+ZGF0YS5jb25zdF92YWwgPj0gMCkKICAgICAgVFlQRV9VTlNJR05FRCAocmVz dWx0X3R5cGUpID0gMTsKLUBAIC04NTgsNyArODYwLDcgQEAgc3RydWN0IHR5cGUgKgorQEAgLTg2 Nyw3ICs4NjksNyBAQCBzdHJ1Y3QgdHlwZSAqCiAgY3JlYXRlX3N0YXRpY19yYW5nZV90eXBlIChz dHJ1Y3QgdHlwZSAqcmVzdWx0X3R5cGUsIHN0cnVjdCB0eXBlICppbmRleF90eXBlLAogIAkJCSAg TE9OR0VTVCBsb3dfYm91bmQsIExPTkdFU1QgaGlnaF9ib3VuZCkKICB7CkBAIC02NTAsNyArNjQz LDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL2dkYnR5cGVzLmMKICAKICAgIGxv dy5raW5kID0gUFJPUF9DT05TVDsKICAgIGxvdy5kYXRhLmNvbnN0X3ZhbCA9IGxvd19ib3VuZDsK LUBAIC04NjYsNyArODY4LDExIEBAIGNyZWF0ZV9zdGF0aWNfcmFuZ2VfdHlwZSAoc3RydWN0IHR5 cGUgKnIKK0BAIC04NzUsNyArODc3LDExIEBAIGNyZWF0ZV9zdGF0aWNfcmFuZ2VfdHlwZSAoc3Ry dWN0IHR5cGUgKnIKICAgIGhpZ2gua2luZCA9IFBST1BfQ09OU1Q7CiAgICBoaWdoLmRhdGEuY29u c3RfdmFsID0gaGlnaF9ib3VuZDsKICAKQEAgLTY2Myw3ICs2NTYsNyBAQCBJbmRleDogZ2RiLTcu OC45MC4yMDE1MDEyNi9nZGIvZ2RidHlwZXMuYwogIAogICAgcmV0dXJuIHJlc3VsdF90eXBlOwog IH0KLUBAIC0xMDIwLDE4ICsxMDI2LDI0IEBAIGNyZWF0ZV9hcnJheV90eXBlX3dpdGhfc3RyaWRl IChzdHJ1Y3QgdHkKK0BAIC0xMDY4LDE4ICsxMDc0LDI0IEBAIGNyZWF0ZV9hcnJheV90eXBlX3dp dGhfc3RyaWRlIChzdHJ1Y3QgdHkKICAKICAgIFRZUEVfQ09ERSAocmVzdWx0X3R5cGUpID0gVFlQ RV9DT0RFX0FSUkFZOwogICAgVFlQRV9UQVJHRVRfVFlQRSAocmVzdWx0X3R5cGUpID0gZWxlbWVu dF90eXBlOwpAQCAtNjkwLDcgKzY4Myw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dk Yi9nZGJ0eXBlcy5jCiAgICAgICAgZWxzZSBpZiAoYml0X3N0cmlkZSA+IDApCiAgCVRZUEVfTEVO R1RIIChyZXN1bHRfdHlwZSkgPQogIAkgIChiaXRfc3RyaWRlICogKGhpZ2hfYm91bmQgLSBsb3df Ym91bmQgKyAxKSArIDcpIC8gODsKLUBAIC0xNjMwLDEyICsxNjQyLDMxIEBAIHN0dWJfbm9uYW1l X2NvbXBsYWludCAodm9pZCkKK0BAIC0xNzg5LDEyICsxODAxLDMxIEBAIHN0dWJfbm9uYW1lX2Nv bXBsYWludCAodm9pZCkKICBzdGF0aWMgaW50CiAgaXNfZHluYW1pY190eXBlX2ludGVybmFsIChz dHJ1Y3QgdHlwZSAqdHlwZSwgaW50IHRvcF9sZXZlbCkKICB7CkBAIC03MjIsNyArNzE1LDcgQEAg SW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL2dkYnR5cGVzLmMKICAgIC8qIFR5cGVzIHRo YXQgaGF2ZSBhIGR5bmFtaWMgVFlQRV9EQVRBX0xPQ0FUSU9OIGFyZSBjb25zaWRlcmVkCiAgICAg ICBkeW5hbWljLCBldmVuIGlmIHRoZSB0eXBlIGl0c2VsZiBpcyBzdGF0aWNhbGx5IGRlZmluZWQu CiAgICAgICBGcm9tIGEgdXNlcidzIHBvaW50IG9mIHZpZXcsIHRoaXMgbWF5IGFwcGVhciBjb3Vu dGVyLWludHVpdGl2ZTsKLUBAIC0xNjU2LDExICsxNjg3LDE5IEBAIGlzX2R5bmFtaWNfdHlwZV9p bnRlcm5hbCAoc3RydWN0IHR5cGUgKnQKK0BAIC0xODIzLDExICsxODU0LDE5IEBAIGlzX2R5bmFt aWNfdHlwZV9pbnRlcm5hbCAoc3RydWN0IHR5cGUgKnQKICAgICAgICB7CiAgCWdkYl9hc3NlcnQg KFRZUEVfTkZJRUxEUyAodHlwZSkgPT0gMSk7CiAgCkBAIC03NDUsMTQgKzczOCwxNSBAQCBJbmRl eDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvZ2RidHlwZXMuYwogICAgICAgIH0KICAKICAgICAg Y2FzZSBUWVBFX0NPREVfU1RSVUNUOgotQEAgLTE2NzMsNiArMTcxMiwxNyBAQCBpc19keW5hbWlj X3R5cGVfaW50ZXJuYWwgKHN0cnVjdCB0eXBlICp0CitAQCAtMTg0MCw2ICsxODc5LDE4IEBAIGlz X2R5bmFtaWNfdHlwZV9pbnRlcm5hbCAoc3RydWN0IHR5cGUgKnQKICAJICAgICAgJiYgaXNfZHlu YW1pY190eXBlX2ludGVybmFsIChUWVBFX0ZJRUxEX1RZUEUgKHR5cGUsIGkpLCAwKSkKICAJICAg IHJldHVybiAxOwogICAgICAgIH0KICsgICAgY2FzZSBUWVBFX0NPREVfUFRSOgogKyAgICAgIHsK ICsgICAgICAgIGlmIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKQotKyAgICAgICAgICAgICYmIFRZ UEVfQ09ERSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpID09IFRZUEVfQ09ERV9TVFJJTkcpCisr ICAgICAgICAgICAgJiYgKFRZUEVfQ09ERSAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpID09IFRZ UEVfQ09ERV9TVFJJTkcKKysgICAgICAgICAgICAgICAgfHwgVFlQRV9DT0RFIChUWVBFX1RBUkdF VF9UWVBFICh0eXBlKSkgPT0gVFlQRV9DT0RFX0FSUkFZKSkKICsgICAgICAgICAgcmV0dXJuIGlz X2R5bmFtaWNfdHlwZSAoY2hlY2tfdHlwZWRlZiAoVFlQRV9UQVJHRVRfVFlQRSAodHlwZSkpKTsK ICsKICsgICAgICAgIHJldHVybiAwOwpAQCAtNzYzLDggKzc1Nyw4IEBAIEluZGV4OiBnZGItNy44 LjkwLjIwMTUwMTI2L2dkYi9nZGJ0eXBlcy5jCiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAKLUBA IC0xNzAxLDcgKzE3NTEsOCBAQCByZXNvbHZlX2R5bmFtaWNfcmFuZ2UgKHN0cnVjdCB0eXBlICpk eW5fCi0gICBzdHJ1Y3QgdHlwZSAqc3RhdGljX3JhbmdlX3R5cGU7CitAQCAtMTg2OSw3ICsxOTIw LDggQEAgcmVzb2x2ZV9keW5hbWljX3JhbmdlIChzdHJ1Y3QgdHlwZSAqZHluXworICAgc3RydWN0 IHR5cGUgKnN0YXRpY19yYW5nZV90eXBlLCAqc3RhdGljX3RhcmdldF90eXBlOwogICAgY29uc3Qg c3RydWN0IGR5bmFtaWNfcHJvcCAqcHJvcDsKICAgIGNvbnN0IHN0cnVjdCBkd2FyZjJfbG9jZXhw cl9iYXRvbiAqYmF0b247CiAtICBzdHJ1Y3QgZHluYW1pY19wcm9wIGxvd19ib3VuZCwgaGlnaF9i b3VuZDsKQEAgLTc3MywyOCArNzY3LDMwIEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dk Yi9nZGJ0eXBlcy5jCiAgCiAgICBnZGJfYXNzZXJ0IChUWVBFX0NPREUgKGR5bl9yYW5nZV90eXBl KSA9PSBUWVBFX0NPREVfUkFOR0UpOwogIAotQEAgLTE3MzIsMTAgKzE3ODMsMTcgQEAgcmVzb2x2 ZV9keW5hbWljX3JhbmdlIChzdHJ1Y3QgdHlwZSAqZHluXwotICAgICAgIGhpZ2hfYm91bmQua2lu ZCA9IFBST1BfVU5ERUZJTkVEOworQEAgLTE5MDEsMTIgKzE5NTMsMTkgQEAgcmVzb2x2ZV9keW5h bWljX3JhbmdlIChzdHJ1Y3QgdHlwZSAqZHluXwogICAgICAgIGhpZ2hfYm91bmQuZGF0YS5jb25z dF92YWwgPSAwOwogICAgICB9Ci0rICAKKyAKICsgIHByb3AgPSAmVFlQRV9SQU5HRV9EQVRBIChk eW5fcmFuZ2VfdHlwZSktPnN0cmlkZTsKLSsgIGlmIChkd2FyZjJfZXZhbHVhdGVfcHJvcGVydHkg KHByb3AsIGFkZHIsICZ2YWx1ZSkpCisrICBpZiAoZHdhcmYyX2V2YWx1YXRlX3Byb3BlcnR5IChw cm9wLCBhZGRyX3N0YWNrLCAmdmFsdWUpKQogKyAgICB7CiArICAgICAgc3RyaWRlLmtpbmQgPSBQ Uk9QX0NPTlNUOwogKyAgICAgIHN0cmlkZS5kYXRhLmNvbnN0X3ZhbCA9IHZhbHVlOwogKyAgICB9 Ci0gCisrCisgICBzdGF0aWNfdGFyZ2V0X3R5cGUKKy0gICAgPSByZXNvbHZlX2R5bmFtaWNfdHlw ZV9pbnRlcm5hbCAoVFlQRV9UQVJHRVRfVFlQRSAoZHluX3JhbmdlX3R5cGUpLAorKyAgICA9IHJl c29sdmVfZHluYW1pY190eXBlX2ludGVybmFsIChUWVBFX1RBUkdFVF9UWVBFIChyYW5nZV9jb3B5 KSwKKyAJCQkJICAgICBhZGRyX3N0YWNrLCAwKTsKIC0gIHN0YXRpY19yYW5nZV90eXBlID0gY3Jl YXRlX3JhbmdlX3R5cGUgKGNvcHlfdHlwZSAoZHluX3JhbmdlX3R5cGUpLAotLQkJCQkJIFRZUEVf VEFSR0VUX1RZUEUgKGR5bl9yYW5nZV90eXBlKSwKLS0JCQkJCSAmbG93X2JvdW5kLCAmaGlnaF9i b3VuZCk7CiArICBzdGF0aWNfcmFuZ2VfdHlwZSA9IGNyZWF0ZV9yYW5nZV90eXBlIChyYW5nZV9j b3B5LAotKwkJCQkJIFRZUEVfVEFSR0VUX1RZUEUgKHJhbmdlX2NvcHkpLAorIAkJCQkJIHN0YXRp Y190YXJnZXRfdHlwZSwKKy0JCQkJCSAmbG93X2JvdW5kLCAmaGlnaF9ib3VuZCk7CiArCQkJCQkg Jmxvd19ib3VuZCwgJmhpZ2hfYm91bmQsICZzdHJpZGUpOwogICAgVFlQRV9SQU5HRV9EQVRBIChz dGF0aWNfcmFuZ2VfdHlwZSktPmZsYWdfYm91bmRfZXZhbHVhdGVkID0gMTsKICAgIHJldHVybiBz dGF0aWNfcmFuZ2VfdHlwZTsKICB9Ci1AQCAtMTc1MSwyMyArMTgwOSw0NiBAQCByZXNvbHZlX2R5 bmFtaWNfYXJyYXkgKHN0cnVjdCB0eXBlICp0eXBlCitAQCAtMTkyMywyMyArMTk4Miw0NyBAQCBy ZXNvbHZlX2R5bmFtaWNfYXJyYXkgKHN0cnVjdCB0eXBlICp0eXBlCiAgICBzdHJ1Y3QgdHlwZSAq ZWx0X3R5cGU7CiAgICBzdHJ1Y3QgdHlwZSAqcmFuZ2VfdHlwZTsKICAgIHN0cnVjdCB0eXBlICph cnlfZGltOwpAQCAtODA3LDE3ICs4MDMsMTcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYv Z2RiL2dkYnR5cGVzLmMKICAKICAgIGVsdF90eXBlID0gdHlwZTsKICAgIHJhbmdlX3R5cGUgPSBj aGVja190eXBlZGVmIChUWVBFX0lOREVYX1RZUEUgKGVsdF90eXBlKSk7Ci0gICByYW5nZV90eXBl ID0gcmVzb2x2ZV9keW5hbWljX3JhbmdlIChyYW5nZV90eXBlLCBhZGRyKTsKKyAgIHJhbmdlX3R5 cGUgPSByZXNvbHZlX2R5bmFtaWNfcmFuZ2UgKHJhbmdlX3R5cGUsIGFkZHJfc3RhY2spOwogIAog KyAgcHJvcCA9IFRZUEVfQUxMT0NBVEVEX1BST1AgKHR5cGUpOwotKyAgaWYgKGR3YXJmMl9ldmFs dWF0ZV9wcm9wZXJ0eSAocHJvcCwgYWRkciwgJnZhbHVlKSkKKysgIGlmIChkd2FyZjJfZXZhbHVh dGVfcHJvcGVydHkgKHByb3AsIGFkZHJfc3RhY2ssICZ2YWx1ZSkpCiArICAgIHsKICsgICAgICBU WVBFX0FMTE9DQVRFRF9QUk9QIChjb3B5KS0+a2luZCA9IFBST1BfQ09OU1Q7CiArICAgICAgVFlQ RV9BTExPQ0FURURfUFJPUCAoY29weSktPmRhdGEuY29uc3RfdmFsID0gdmFsdWU7CiArICAgIH0K ICsKICsgIHByb3AgPSBUWVBFX0FTU09DSUFURURfUFJPUCAodHlwZSk7Ci0rICBpZiAoZHdhcmYy X2V2YWx1YXRlX3Byb3BlcnR5IChwcm9wLCBhZGRyLCAmdmFsdWUpKQorKyAgaWYgKGR3YXJmMl9l dmFsdWF0ZV9wcm9wZXJ0eSAocHJvcCwgYWRkcl9zdGFjaywgJnZhbHVlKSkKICsgICAgewogKyAg ICAgIFRZUEVfQVNTT0NJQVRFRF9QUk9QIChjb3B5KS0+a2luZCA9IFBST1BfQ09OU1Q7CiArICAg ICAgVFlQRV9BU1NPQ0lBVEVEX1BST1AgKGNvcHkpLT5kYXRhLmNvbnN0X3ZhbCA9IHZhbHVlOwpA QCAtODI2LDY0ICs4MjIsMzIgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL2dkYnR5 cGVzLmMKICAgIGFyeV9kaW0gPSBjaGVja190eXBlZGVmIChUWVBFX1RBUkdFVF9UWVBFIChlbHRf dHlwZSkpOwogIAogLSAgaWYgKGFyeV9kaW0gIT0gTlVMTCAmJiBUWVBFX0NPREUgKGFyeV9kaW0p ID09IFRZUEVfQ09ERV9BUlJBWSkKLS0gICAgZWx0X3R5cGUgPSByZXNvbHZlX2R5bmFtaWNfYXJy YXkgKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpLCBhZGRyKTsKKy0gICAgZWx0X3R5cGUgPSByZXNv bHZlX2R5bmFtaWNfYXJyYXkgKFRZUEVfVEFSR0VUX1RZUEUgKHR5cGUpLCBhZGRyX3N0YWNrKTsK ICsgIGlmIChhcnlfZGltICE9IE5VTEwgJiYgKFRZUEVfQ09ERSAoYXJ5X2RpbSkgPT0gVFlQRV9D T0RFX0FSUkFZCiArICAgICAgICAgIHx8IFRZUEVfQ09ERSAoYXJ5X2RpbSkgPT0gVFlQRV9DT0RF X1NUUklORykpCi0rICAgIGVsdF90eXBlID0gcmVzb2x2ZV9keW5hbWljX2FycmF5IChUWVBFX1RB UkdFVF9UWVBFIChjb3B5KSwgYWRkcik7CisrICAgIGVsdF90eXBlID0gcmVzb2x2ZV9keW5hbWlj X2FycmF5IChUWVBFX1RBUkdFVF9UWVBFIChjb3B5KSwgYWRkcl9zdGFjayk7CiAgICBlbHNlCiAg ICAgIGVsdF90eXBlID0gVFlQRV9UQVJHRVRfVFlQRSAodHlwZSk7CiAgCi0tICByZXR1cm4gY3Jl YXRlX2FycmF5X3R5cGUgKGNvcHlfdHlwZSAodHlwZSksCi0tCQkJICAgIGVsdF90eXBlLAotLQkJ CSAgICByYW5nZV90eXBlKTsKLSsgIGlmIChUWVBFX0NPREUgKHR5cGUpID09IFRZUEVfQ09ERV9T VFJJTkcpCistICByZXR1cm4gY3JlYXRlX2FycmF5X3R5cGVfd2l0aF9zdHJpZGUgKGNvcHlfdHlw ZSAodHlwZSksCistCQkJCQllbHRfdHlwZSwgcmFuZ2VfdHlwZSwKKy0JCQkJCVRZUEVfRklFTERf QklUU0laRSAodHlwZSwgMCkpOworKyAgaWYgKFRZUEVfQ09ERSAodHlwZSkgPT0gVFlQRV9DT0RF X1NUUklORworKyAgICAgICYmIFRZUEVfRklFTERfQklUU0laRSAodHlwZSwgMCkgPT0gMCkKICsg ICAgcmV0dXJuIGNyZWF0ZV9zdHJpbmdfdHlwZSAoY29weSwKICsJICAgIGVsdF90eXBlLAogKwkg ICAgcmFuZ2VfdHlwZSk7CiArICBlbHNlCi0rICAgIHJldHVybiBjcmVhdGVfYXJyYXlfdHlwZSAo Y29weSwKKysgICAgcmV0dXJuIGNyZWF0ZV9hcnJheV90eXBlX3dpdGhfc3RyaWRlIChjb3B5LAog KwkgICAgZWx0X3R5cGUsCi0rCSAgICByYW5nZV90eXBlKTsKKysJICAgIHJhbmdlX3R5cGUsIFRZ UEVfRklFTERfQklUU0laRSAodHlwZSwgMCkpOwogIH0KICAKICAvKiBSZXNvbHZlIGR5bmFtaWMg Ym91bmRzIG9mIG1lbWJlcnMgb2YgdGhlIHVuaW9uIFRZUEUgdG8gc3RhdGljCi1AQCAtMTkzOCw2 ICsyMDE5LDI1IEBAIHJlc29sdmVfZHluYW1pY190eXBlX2ludGVybmFsIChzdHJ1Y3QgdHkKLSAg IGVsc2UKLSAgICAgVFlQRV9EQVRBX0xPQ0FUSU9OIChyZXNvbHZlZF90eXBlKSA9IE5VTEw7CitA QCAtNDQ1Myw2ICs0NTM2LDIwIEBAIGNvcHlfdHlwZV9yZWN1cnNpdmUgKHN0cnVjdCBvYmpmaWxl ICpvYmoKKyAJCQkJVFlQRV9EWU5fUFJPUF9MSVNUICh0eXBlKSk7CiAgCi0rICAvKiBSZXNvbHZl IGRhdGFfbG9jYXRpb24gYXR0cmlidXRlLiAgKi8KLSsgIHByb3AgPSBUWVBFX0RBVEFfTE9DQVRJ T04gKHJlc29sdmVkX3R5cGUpOwotKyAgaWYgKGR3YXJmMl9ldmFsdWF0ZV9wcm9wZXJ0eSAocHJv cCwgYWRkciwgJnZhbHVlKSkKLSsgICAgewotKyAgICAgIHN0cnVjdCB0eXBlICpyYW5nZV90eXBl ID0gVFlQRV9JTkRFWF9UWVBFIChyZXNvbHZlZF90eXBlKTsKLSsKLSsgICAgICAvKiBBZGp1c3Qg dGhlIGRhdGEgbG9jYXRpb24gd2l0aCB0aGUgdmFsdWUgb2YgYnl0ZSBzdHJpZGUgaWYgc2V0LCB3 aGljaAotKyAgICAgICAgIGNhbiBkZXNjcmliZSB0aGUgc2VwYXJhdGlvbiBiZXR3ZWVuIHN1Y2Nl c3NpdmUgZWxlbWVudHMgYWxvbmcgdGhlCi0rICAgICAgICAgZGltZW5zaW9uLiAgKi8KLSsgICAg ICBpZiAoVFlQRV9CWVRFX1NUUklERSAocmFuZ2VfdHlwZSkgPCAwKQotKyAgICAgICAgdmFsdWUg Kz0gKFRZUEVfSElHSF9CT1VORCAocmFuZ2VfdHlwZSkgLSBUWVBFX0xPV19CT1VORCAocmFuZ2Vf dHlwZSkpCi0rICAgICAgICAgICAgICAgICAgKiBUWVBFX0JZVEVfU1RSSURFIChyYW5nZV90eXBl KTsKLSsKLSsgICAgICBUWVBFX0RBVEFfTE9DQVRJT05fQUREUiAocmVzb2x2ZWRfdHlwZSkgPSB2 YWx1ZTsKLSsgICAgICBUWVBFX0RBVEFfTE9DQVRJT05fS0lORCAocmVzb2x2ZWRfdHlwZSkgPSBQ Uk9QX0NPTlNUOwotKyAgICB9Ci0rICBlbHNlCi0rICAgIFRZUEVfREFUQV9MT0NBVElPTiAocmVz b2x2ZWRfdHlwZSkgPSBOVUxMOwotKwotICAgcmV0dXJuIHJlc29sdmVkX3R5cGU7Ci0gfQogIAot QEAgLTQxNzQsNiArNDI3NCwyNyBAQCBjb3B5X3R5cGVfcmVjdXJzaXZlIChzdHJ1Y3Qgb2JqZmls ZSAqb2JqCi0gCSAgICAgIHNpemVvZiAoc3RydWN0IGR5bmFtaWNfcHJvcCkpOwotICAgICB9Ci0g Ci0rICAvKiBDb3B5IHRoZSBkYXRhIGxvY2F0aW9uIGluZm9ybWF0aW9uLiAgKi8KLSsgIGlmIChU WVBFX0RBVEFfTE9DQVRJT04gKHR5cGUpICE9IE5VTEwpCi0rICAgIHsKLSsgICAgICBUWVBFX0RB VEFfTE9DQVRJT04gKG5ld190eXBlKSA9IHhtYWxsb2MgKHNpemVvZiAoc3RydWN0IGR5bmFtaWNf cHJvcCkpOwotKyAgICAgICpUWVBFX0RBVEFfTE9DQVRJT04gKG5ld190eXBlKSA9ICpUWVBFX0RB VEFfTE9DQVRJT04gKHR5cGUpOwotKyAgICB9Ci0rCiArICAvKiBDb3B5IGFsbG9jYXRlZCBpbmZv cm1hdGlvbi4gICovCiArICBpZiAoVFlQRV9BTExPQ0FURURfUFJPUCAodHlwZSkgIT0gTlVMTCkK ICsgICAgewpAQCAtOTAxLDggKzg2NSw4IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dk Yi9nZGJ0eXBlcy5jCiAgICAvKiBDb3B5IHBvaW50ZXJzIHRvIG90aGVyIHR5cGVzLiAgKi8KICAg IGlmIChUWVBFX1RBUkdFVF9UWVBFICh0eXBlKSkKICAgICAgVFlQRV9UQVJHRVRfVFlQRSAobmV3 X3R5cGUpID0gCi1AQCAtNDIyNyw2ICs0MzQ4LDQ0IEBAIGNvcHlfdHlwZSAoY29uc3Qgc3RydWN0 IHR5cGUgKnR5cGUpCi0gCSAgICAgIHNpemVvZiAoc3RydWN0IGR5bmFtaWNfcHJvcCkpOworQEAg LTQ0OTQsNiArNDU5MSwzNSBAQCBjb3B5X3R5cGVfcmVjdXJzaXZlIChzdHJ1Y3Qgb2JqZmlsZSAq b2JqCisgICAgICAgZ2RiX2Fzc2VydF9ub3RfcmVhY2hlZCAoImJhZCB0eXBlX3NwZWNpZmljX2tp bmQiKTsKICAgICAgfQogIAogKyAgaWYgKFRZUEVfQUxMT0NBVEVEX1BST1AgKHR5cGUpKQpAQCAt OTIzLDE1ICs4ODcsNiBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvZ2RidHlwZXMu YwogKyAgICAgICAgc2l6ZW9mIChzdHJ1Y3QgZHluYW1pY19wcm9wKSk7CiArICAgIH0KICsKLSsg IGlmIChUWVBFX0RBVEFfTE9DQVRJT04gKHR5cGUpKQotKyAgICB7Ci0rICAgICAgVFlQRV9EQVRB X0xPQ0FUSU9OIChuZXdfdHlwZSkKLSsgICAgICAgICAgICAgID0gT0JTVEFDS19aQUxMT0MgKCZU WVBFX09XTkVSICh0eXBlKS5vYmpmaWxlLT5vYmpmaWxlX29ic3RhY2ssCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHluYW1pY19wcm9wKTsKLSsgICAgICBtZW1jcHkg KFRZUEVfREFUQV9MT0NBVElPTiAobmV3X3R5cGUpLCBUWVBFX0RBVEFfTE9DQVRJT04gKHR5cGUp LAotKyAgICAgICAgc2l6ZW9mIChzdHJ1Y3QgZHluYW1pY19wcm9wKSk7Ci0rICAgIH0KLSsKICsg IGlmIChUWVBFX05GSUVMRFMgKHR5cGUpKQogKyAgICB7CiArICAgICAgaW50IG5maWVsZHMgPSBU WVBFX05GSUVMRFMgKHR5cGUpOwpAQCAtOTQ1LDI2ICs5MDAsNDEgQEAgSW5kZXg6IGdkYi03Ljgu OTAuMjAxNTAxMjYvZ2RiL2dkYnR5cGVzLmMKICsKICAgIHJldHVybiBuZXdfdHlwZTsKICB9Ci0g DAotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL2dkYnR5cGVzLmgKKyAKK0BAIC00NTE5 LDYgKzQ2NDUsMTQgQEAgY29weV90eXBlIChjb25zdCBzdHJ1Y3QgdHlwZSAqdHlwZSkKKyAgICAg VFlQRV9EWU5fUFJPUF9MSVNUIChuZXdfdHlwZSkKKyAgICAgICA9IGNvcHlfZHluYW1pY19wcm9w X2xpc3QgKCZUWVBFX09CSkZJTEUgKHR5cGUpIC0+IG9iamZpbGVfb2JzdGFjaywKKyAJCQkJVFlQ RV9EWU5fUFJPUF9MSVNUICh0eXBlKSk7CisrICBpZiAoVFlQRV9BTExPQ0FURURfUFJPUCAodHlw ZSkgIT0gTlVMTCkKKysgICAgVFlQRV9BTExPQ0FURURfUFJPUCAobmV3X3R5cGUpID0gb2JzdGFj a19jb3B5CisrICAgICAgKCZUWVBFX09CSkZJTEUgKHR5cGUpLT5vYmpmaWxlX29ic3RhY2ssIFRZ UEVfQUxMT0NBVEVEX1BST1AgKHR5cGUpLAorKyAgICAgICBzaXplb2YgKCpUWVBFX0FMTE9DQVRF RF9QUk9QICh0eXBlKSkpOworKyAgaWYgKFRZUEVfQVNTT0NJQVRFRF9QUk9QICh0eXBlKSAhPSBO VUxMKQorKyAgICBUWVBFX0FTU09DSUFURURfUFJPUCAobmV3X3R5cGUpID0gb2JzdGFja19jb3B5 CisrICAgICAgKCZUWVBFX09CSkZJTEUgKHR5cGUpLT5vYmpmaWxlX29ic3RhY2ssIFRZUEVfQVNT T0NJQVRFRF9QUk9QICh0eXBlKSwKKysgICAgICAgc2l6ZW9mICgqVFlQRV9BU1NPQ0lBVEVEX1BS T1AgKHR5cGUpKSk7CisgCisgICByZXR1cm4gbmV3X3R5cGU7CisgfQorSW5kZXg6IGdkYi03Ljku NTAuMjAxNTA1MjAvZ2RiL2dkYnR5cGVzLmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIw MTUwMTI2Lm9yaWcvZ2RiL2dkYnR5cGVzLmgJMjAxNS0wMS0yNiAwNzo0NzoyNS44NTI3NTg0MDEg KzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi9nZGJ0eXBlcy5oCTIwMTUtMDEtMjYg MDc6NDc6NDIuNDA1ODI5OTA4ICswMTAwCi1AQCAtNjYwLDYgKzY2MCwxMCBAQCBzdHJ1Y3QgbWFp bl90eXBlCistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi9nZGJ0eXBlcy5oCTIwMTUt MDUtMjkgMDg6Mjc6MDIuNjg1NzE3NTA0ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvZ2RidHlwZXMuaAkyMDE1LTA1LTI5IDA4OjQ2OjA4Ljg2MjkyNDA1MiArMDIwMAorQEAgLTU2 OSw2ICs1NjksMTAgQEAgc3RydWN0IHJhbmdlX2JvdW5kcwogIAotICAgICAgIHN0cnVjdCBkeW5h bWljX3Byb3AgaGlnaDsKKyAgIHN0cnVjdCBkeW5hbWljX3Byb3AgaGlnaDsKICAKLSsgICAgICAv KiAqIFN0cmlkZSBvZiByYW5nZS4gICovCisrICAvKiAqIFN0cmlkZSBvZiByYW5nZS4gICovCiAr Ci0rICAgICAgc3RydWN0IGR5bmFtaWNfcHJvcCBzdHJpZGU7CisrICBzdHJ1Y3QgZHluYW1pY19w cm9wIHN0cmlkZTsKICsKLSAgICAgICAvKiBUcnVlIGlmIEhJR0ggcmFuZ2UgYm91bmQgY29udGFp bnMgdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUKLSAJIHN1YnJhbmdlLiBUaGlzIGFmZmVj dHMgaG93IHRoZSBmaW5hbCBoaWdodCBib3VuZCBpcyBjb21wdXRlZC4gICovCisgICAvKiBUcnVl IGlmIEhJR0ggcmFuZ2UgYm91bmQgY29udGFpbnMgdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0 aGUKKyAgICAgIHN1YnJhbmdlLiBUaGlzIGFmZmVjdHMgaG93IHRoZSBmaW5hbCBoaWdodCBib3Vu ZCBpcyBjb21wdXRlZC4gICovCiAgCi1AQCAtNzIwLDYgKzcyNCwxOCBAQCBzdHJ1Y3QgbWFpbl90 eXBlCi0gICAgICB0aGlzIGZpZWxkIHlpZWxkcyB0byB0aGUgbG9jYXRpb24gb2YgdGhlIGRhdGEg Zm9yIGFuIG9iamVjdC4gICovCitAQCAtNzQxLDYgKzc0NSwxOCBAQCBzdHJ1Y3QgbWFpbl90eXBl CiAgCi0gICBzdHJ1Y3QgZHluYW1pY19wcm9wICpkYXRhX2xvY2F0aW9uOworICAgLyogKiBDb250 YWlucyBhbGwgZHluYW1pYyB0eXBlIHByb3BlcnRpZXMuICAqLworICAgc3RydWN0IGR5bmFtaWNf cHJvcF9saXN0ICpkeW5fcHJvcF9saXN0OwogKwogKyAgLyogU3RydWN0dXJlIGZvciBEV19BVF9h bGxvY2F0ZWQuCiArICAgICBUaGUgcHJlc2VuY2Ugb2YgdGhpcyBhdHRyaWJ1dGUgaW5kaWNhdGVz IHRoYXQgdGhlIG9iamVjdCBvZiB0aGUgdHlwZQpAQCAtOTgwLDcgKzk1MCw3IEBAIEluZGV4OiBn ZGItNy44LjkwLjIwMTUwMTI2L2dkYi9nZGJ0eXBlcy5oCiAgfTsKICAKICAvKiAqIEEgYGBzdHJ1 Y3QgdHlwZScnIGRlc2NyaWJlcyBhIHBhcnRpY3VsYXIgaW5zdGFuY2Ugb2YgYSB0eXBlLCB3aXRo Ci1AQCAtMTE5OCw2ICsxMjE0LDM5IEBAIGV4dGVybiB2b2lkIGFsbG9jYXRlX2duYXRfYXV4X3R5 cGUgKHN0cnUKK0BAIC0xMjU1LDYgKzEyNzEsMTUgQEAgZXh0ZXJuIHZvaWQgYWxsb2NhdGVfZ25h dF9hdXhfdHlwZSAoc3RydQogICAgVFlQRV9SQU5HRV9EQVRBKHJhbmdlX3R5cGUpLT5oaWdoLmtp bmQKICAjZGVmaW5lIFRZUEVfTE9XX0JPVU5EX0tJTkQocmFuZ2VfdHlwZSkgXAogICAgVFlQRV9S QU5HRV9EQVRBKHJhbmdlX3R5cGUpLT5sb3cua2luZApAQCAtOTkzLDE2ICs5NjMsMTMgQEAgSW5k ZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL2dkYnR5cGVzLmgKICsjZGVmaW5lIFRZUEVfQllU RV9TVFJJREVfS0lORChyYW5nZV90eXBlKSBcCiArICBUWVBFX1JBTkdFX0RBVEEocmFuZ2VfdHlw ZSktPnN0cmlkZS5raW5kCiArCi0rCi0rLyogQXR0cmlidXRlIGFjY2Vzc29ycyBmb3IgdGhlIHR5 cGUgZGF0YSBsb2NhdGlvbi4gICovCi0rI2RlZmluZSBUWVBFX0RBVEFfTE9DQVRJT04odGhpc3R5 cGUpIFwKLSsgIFRZUEVfTUFJTl9UWVBFKHRoaXN0eXBlKS0+ZGF0YV9sb2NhdGlvbgotKyNkZWZp bmUgVFlQRV9EQVRBX0xPQ0FUSU9OX0JBVE9OKHRoaXN0eXBlKSBcCi0rICBUWVBFX0RBVEFfTE9D QVRJT04gKHRoaXN0eXBlKS0+ZGF0YS5iYXRvbgotKyNkZWZpbmUgVFlQRV9EQVRBX0xPQ0FUSU9O X0FERFIodGhpc3R5cGUpIFwKLSsgIFRZUEVfREFUQV9MT0NBVElPTiAodGhpc3R5cGUpLT5kYXRh LmNvbnN0X3ZhbAotKyNkZWZpbmUgVFlQRV9EQVRBX0xPQ0FUSU9OX0tJTkQodGhpc3R5cGUpIFwK LSsgIFRZUEVfREFUQV9MT0NBVElPTiAodGhpc3R5cGUpLT5raW5kCisgCisgLyogUHJvcGVydHkg YWNjZXNzb3JzIGZvciB0aGUgdHlwZSBkYXRhIGxvY2F0aW9uLiAgKi8KKyAjZGVmaW5lIFRZUEVf REFUQV9MT0NBVElPTih0aGlzdHlwZSkgXAorQEAgLTEyNjUsNiArMTI5MCwyMCBAQCBleHRlcm4g dm9pZCBhbGxvY2F0ZV9nbmF0X2F1eF90eXBlIChzdHJ1CisgICBUWVBFX0RBVEFfTE9DQVRJT04g KHRoaXN0eXBlKS0+ZGF0YS5jb25zdF92YWwKKyAjZGVmaW5lIFRZUEVfREFUQV9MT0NBVElPTl9L SU5EKHRoaXN0eXBlKSBcCisgICBUWVBFX0RBVEFfTE9DQVRJT04gKHRoaXN0eXBlKS0+a2luZAog KyNkZWZpbmUgVFlQRV9BTExPQ0FURURfUFJPUCh0aGlzdHlwZSkgVFlQRV9NQUlOX1RZUEUodGhp c3R5cGUpLT5hbGxvY2F0ZWQKICsjZGVmaW5lIFRZUEVfQVNTT0NJQVRFRF9QUk9QKHRoaXN0eXBl KSBUWVBFX01BSU5fVFlQRSh0aGlzdHlwZSktPmFzc29jaWF0ZWQKICsKQEAgLTEwMTgsOSArOTg1 LDkgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL2dkYnR5cGVzLmgKICsgICYmIFRZ UEVfQVNTT0NJQVRFRF9QUk9QICh0KS0+a2luZCA9PSBQUk9QX0NPTlNUIFwKICsgICYmICFUWVBF X0FTU09DSUFURURfUFJPUCAodCktPmRhdGEuY29uc3RfdmFsKQogIAotIC8qIEF0dHJpYnV0ZSBh Y2Nlc3NvcnMgZm9yIHRoZSB0eXBlIGRhdGEgbG9jYXRpb24uICAqLwotICNkZWZpbmUgVFlQRV9E QVRBX0xPQ0FUSU9OKHRoaXN0eXBlKSBcCi1AQCAtMTIxNSw2ICsxMjY0LDkgQEAgZXh0ZXJuIHZv aWQgYWxsb2NhdGVfZ25hdF9hdXhfdHlwZSAoc3RydQorIC8qIEF0dHJpYnV0ZSBhY2Nlc3NvcnMg Zm9yIGR5bmFtaWMgcHJvcGVydGllcy4gICovCisgI2RlZmluZSBUWVBFX0RZTl9QUk9QX0xJU1Qo dGhpc3R5cGUpIFwKK0BAIC0xMjgzLDYgKzEzMjIsOSBAQCBleHRlcm4gdm9pZCBhbGxvY2F0ZV9n bmF0X2F1eF90eXBlIChzdHJ1CiAgICAgVFlQRV9ISUdIX0JPVU5EX1VOREVGSU5FRChUWVBFX0lO REVYX1RZUEUoYXJyYXl0eXBlKSkKICAjZGVmaW5lIFRZUEVfQVJSQVlfTE9XRVJfQk9VTkRfSVNf VU5ERUZJTkVEKGFycmF5dHlwZSkgXAogICAgIFRZUEVfTE9XX0JPVU5EX1VOREVGSU5FRChUWVBF X0lOREVYX1RZUEUoYXJyYXl0eXBlKSkKQEAgLTEwMzAsNyArOTk3LDcgQEAgSW5kZXg6IGdkYi03 LjguOTAuMjAxNTAxMjYvZ2RiL2dkYnR5cGVzLmgKICAKICAjZGVmaW5lIFRZUEVfQVJSQVlfVVBQ RVJfQk9VTkRfVkFMVUUoYXJyYXl0eXBlKSBcCiAgICAgKFRZUEVfSElHSF9CT1VORChUWVBFX0lO REVYX1RZUEUoKGFycmF5dHlwZSkpKSkKLUBAIC0xNjg1LDYgKzE3MzcsNyBAQCBleHRlcm4gc3Ry dWN0IHR5cGUgKmNyZWF0ZV9hcnJheV90eXBlX3dpCitAQCAtMTc2NCw2ICsxODA2LDcgQEAgZXh0 ZXJuIHN0cnVjdCB0eXBlICpjcmVhdGVfYXJyYXlfdHlwZV93aQogIAogIGV4dGVybiBzdHJ1Y3Qg dHlwZSAqY3JlYXRlX3JhbmdlX3R5cGUgKHN0cnVjdCB0eXBlICosIHN0cnVjdCB0eXBlICosCiAg CQkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHluYW1pY19wcm9wICosCkBAIC0xMDM4LDEwICsxMDA1 LDEwIEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi9nZGJ0eXBlcy5oCiAgCQkJCSAg ICAgICBjb25zdCBzdHJ1Y3QgZHluYW1pY19wcm9wICopOwogIAogIGV4dGVybiBzdHJ1Y3QgdHlw ZSAqY3JlYXRlX2FycmF5X3R5cGUgKHN0cnVjdCB0eXBlICosIHN0cnVjdCB0eXBlICosCi1JbmRl eDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1hbGxv Yy1hc3NvYy5leHAKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vdmxhLWFsbG9jLWFzc29jLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkx OTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjguOTAuMjAxNTAx MjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtYWxsb2MtYXNzb2MuZXhwCTIwMTUtMDEt MjYgMDc6NDc6NDIuNDA1ODI5OTA4ICswMTAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1hbGxvYy1hc3NvYy5leHAJMjAxNS0wNS0yOSAwODoy NzowNi4yNjY3NDAyOTIgKzAyMDAKIEBAIC0wLDAgKzEsNjUgQEAKICsjIENvcHlyaWdodCAyMDE0 IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMTEwOCwxMCArMTA3NSwxMCBA QCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3Zs YS1hbGxvYy1hc3NvYy5leHAKICtnZGJfY29udGludWVfdG9fYnJlYWtwb2ludCAidmxhMi1kZWFs bG9jYXRlZCIKICtnZGJfdGVzdCAicHJpbnQgbCIgIiA9IFxcLkZBTFNFXFwuIiAicHJpbnQgdmxh MiBkZWFsbG9jYXRlZCIKICtnZGJfdGVzdCAicHJpbnQgdmxhMiIgIiA9IDxub3QgYWxsb2NhdGVk PiIgInByaW50IGRlYWxsb2NhdGVkIHZsYTIiCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1kYXRhdHlwZXMuZXhwCitJbmRleDogZ2RiLTcu OS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1kYXRhdHlwZXMuZXhw CiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAw ICswMDAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L3ZsYS1kYXRhdHlwZXMuZXhwCTIwMTUtMDEtMjYgMDc6NDc6NDIuNDA1ODI5OTA4ICswMTAwCisr KysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1kYXRh dHlwZXMuZXhwCTIwMTUtMDUtMjkgMDg6Mjc6MDYuMjY2NzQwMjkyICswMjAwCiBAQCAtMCwwICsx LDgyIEBACiArIyBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K ICsKQEAgLTExOTUsMTAgKzExNjIsMTAgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZGF0YXR5cGVzLmV4cAogKyAgInByaW50IGxvZ2lj YWx2bGEoNSw1LDUpICgybmQpIgogK2dkYl90ZXN0ICJwcmludCBjaGFyYWN0ZXJ2bGEoNSw1LDUp IiAiID0gJ1gnIiBcCiArICAicHJpbnQgY2hhcmFjdGVydmxhKDUsNSw1KSAoMm5kKSIKLUluZGV4 OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWRhdGF0 eXBlcy5mOTAKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vdmxhLWRhdGF0eXBlcy5mOTAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0w MS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMTI2L2dk Yi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWRhdGF0eXBlcy5mOTAJMjAxNS0wMS0yNiAwNzo0 Nzo0Mi40MDU4Mjk5MDggKzAxMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vdmxhLWRhdGF0eXBlcy5mOTAJMjAxNS0wNS0yOSAwODoyNzowNi4yNjY3 NDAyOTIgKzAyMDAKIEBAIC0wLDAgKzEsNTEgQEAKICshIENvcHlyaWdodCAyMDE0IEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKyEKQEAgLTEyNTEsMTAgKzEyMTgsMTAgQEAgSW5kZXg6 IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZGF0YXR5 cGVzLmY5MAogKyAgISBkdW1teSBzdGF0ZW1lbnQgZm9yIGJwCiArICBsID0gLkZBTFNFLiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgISB2bGFzLW1vZGlmaWVkCiArZW5kIHByb2dyYW0gdmxh X3ByaW1pdGl2ZXMKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2Ri LmZvcnRyYW4vdmxhLWZ1bmMuZXhwCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1mdW5jLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVs bAkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjguOTAuMjAx NTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZnVuYy5leHAJMjAxNS0wMS0yNiAw Nzo0Nzo0Mi40MDY4Mjk5MTMgKzAxMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWZ1bmMuZXhwCTIwMTUtMDUtMjkgMDg6Mjc6MDYuMjY2NzQw MjkyICswMjAwCiBAQCAtMCwwICsxLDYxIEBACiArIyBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTEzMTcsMTAgKzEyODQsMTAgQEAgSW5kZXg6IGdk Yi03LjguOTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZnVuYy5leHAK ICsgICJwcmludCB2bGEzIChhZnRlciBmdW5jMikiCiArZ2RiX3Rlc3QgInB0eXBlIHZsYTMiICJ0 eXBlID0gaW50ZWdlclxcXChraW5kPTRcXFwpIFxcXCgxMFxcXCkiIFwKICsgICJwdHlwZSB2bGEz IChhZnRlciBmdW5jMikiCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL3ZsYS1mdW5jLmY5MAorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtZnVuYy5mOTAKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2 L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy44Ljkw LjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWZ1bmMuZjkwCTIwMTUtMDEt MjYgMDc6NDc6NDIuNDA2ODI5OTEzICswMTAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1mdW5jLmY5MAkyMDE1LTA1LTI5IDA4OjI3OjA2LjI2 Nzc0MDI5OCArMDIwMAogQEAgLTAsMCArMSw3MSBAQAogKyEgQ29weXJpZ2h0IDIwMTQgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArIQpAQCAtMTM5MywxMCArMTM2MCwxMCBAQCBJbmRl eDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1mdW5j LmY5MAogKwogKyAgcmV0ID0gLlRSVUUuICAgICAgICAgICAgICAgICEgZnVuYzItcmV0dXJuZWQK ICtlbmQgcHJvZ3JhbSB2bGFfZnVuYwotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL3Rl c3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtaGlzdG9yeS5leHAKK0luZGV4OiBnZGItNy45LjUwLjIw MTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLWhpc3RvcnkuZXhwCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0r KysgZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1oaXN0 b3J5LmV4cAkyMDE1LTAxLTI2IDA3OjQ3OjQyLjQwNjgyOTkxMyArMDEwMAorKysrIGdkYi03Ljku NTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtaGlzdG9yeS5leHAJMjAx NS0wNS0yOSAwODoyNzowNi4yNjc3NDAyOTggKzAyMDAKIEBAIC0wLDAgKzEsNjIgQEAKICsjIENv cHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMTQ2MCwx MCArMTQyNywxMCBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dk Yi5mb3J0cmFuL3ZsYS1oaXN0b3J5LmV4cAogKyMgVHJ5IHRvIGFjY2VzcyBoaXN0b3J5IHZhbHVl cyBmb3IgdmxhIHZhbHVlcy4KICtnZGJfdGVzdCAicHJpbnQgXCQ5IiAiID0gMTMxMSIgInByaW50 IFwkOSIKICtnZGJfdGVzdCAicHJpbnQgXCQxMCIgIiA9IDEwMDEiICJwcmludCBcJDEwIgotSW5k ZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtcHR5 cGUtc3ViLmV4cAorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIu Zm9ydHJhbi92bGEtcHR5cGUtc3ViLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcw LTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjguOTAuMjAxNTAxMjYv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtcHR5cGUtc3ViLmV4cAkyMDE1LTAxLTI2IDA3 OjQ3OjQyLjQwNjgyOTkxMyArMDEwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZm9ydHJhbi92bGEtcHR5cGUtc3ViLmV4cAkyMDE1LTA1LTI5IDA4OjI3OjA2LjI2 Nzc0MDI5OCArMDIwMAogQEAgLTAsMCArMSw4NyBAQAogKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiArCkBAIC0xNTUyLDEwICsxNTE5LDEwIEBAIEluZGV4 OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXB0eXBl LXN1Yi5leHAKICsgICJwdHlwZSBhcnJheTEoMTAwKSAoYXJiaXRyYXJ5IGxlbmd0aCkiCiArZ2Ri X3Rlc3QgInB0eXBlIGFycmF5Mig0LDEwMCkiICJ0eXBlID0gaW50ZWdlclxcXChraW5kPTRcXFwp IiBcCiArICAicHR5cGUgYXJyYXkyKDQsMTAwKSAoYXJiaXRyYXJ5IGxlbmd0aCkiCi1JbmRleDog Z2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1wdHlwZS5l eHAKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v dmxhLXB0eXBlLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAxIDAwOjAw OjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0 ZS9nZGIuZm9ydHJhbi92bGEtcHR5cGUuZXhwCTIwMTUtMDEtMjYgMDc6NDc6NDIuNDA2ODI5OTEz ICswMTAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L3ZsYS1wdHlwZS5leHAJMjAxNS0wNS0yOSAwODoyNzowNi4yNjc3NDAyOTggKzAyMDAKIEBAIC0w LDAgKzEsOTYgQEAKICsjIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg SW5jLgogKwpAQCAtMTY1MywxMCArMTYyMCwxMCBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEy Ni9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1wdHlwZS5leHAKICtnZGJfdGVzdCAicHR5 cGUgdmxhMig1LCA0NSwgMjApIiBcCiArICAibm8gc3VjaCB2ZWN0b3IgZWxlbWVudCBiZWNhdXNl IG5vdCBhbGxvY2F0ZWQiIFwKICsgICJwdHlwZSB2bGEyKDUsIDQ1LCAyMCkgbm90IGFsbG9jYXRl ZCIKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v dmxhLXNpemVvZi5leHAKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vdmxhLXNpemVvZi5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3 MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMTI2 L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXNpemVvZi5leHAJMjAxNS0wMS0yNiAwNzo0 Nzo0Mi40MDY4Mjk5MTMgKzAxMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vdmxhLXNpemVvZi5leHAJMjAxNS0wNS0yOSAwODoyNzowNi4yNjc3NDAy OTggKzAyMDAKIEBAIC0wLDAgKzEsNDYgQEAKICsjIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMTcwNCwxMCArMTY3MSwxMCBAQCBJbmRleDogZ2Ri LTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zaXplb2YuZXhw CiArZ2RiX2JyZWFrcG9pbnQgW2dkYl9nZXRfbGluZV9udW1iZXIgInB2bGEtYXNzb2NpYXRlZCJd CiArZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInB2bGEtYXNzb2NpYXRlZCIKICtnZGJfdGVz dCAicHJpbnQgc2l6ZW9mKHB2bGEpIiAiID0gNDAwMCIgInByaW50IHNpemVvZiBhc3NvY2lhdGVk IHB2bGEiCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL3ZsYS1zdHJpZGUuZXhwCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxs CTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOC45MC4yMDE1 MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZXhwCTIwMTUtMDEtMjYg MDc6NDc6NDIuNDA3ODI5OTE3ICswMTAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpZGUuZXhwCTIwMTUtMDUtMjkgMDg6Mjc6MDYuMjY3 NzQwMjk4ICswMjAwCiBAQCAtMCwwICsxLDQ0IEBACiArIyBDb3B5cmlnaHQgMjAxNCBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTE3NTMsMTAgKzE3MjAsMTAgQEAgSW5kZXg6 IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRl LmV4cAogK2dkYl9jb250aW51ZV90b19icmVha3BvaW50ICJzaW5nbGUtZWxlbWVudCIKICtnZGJf dGVzdCAicHJpbnQgcHZsYSIgIiA9IFxcXCg1XFxcKSIgInByaW50IHNpbmdsZS1lbGVtZW50Igog K2dkYl90ZXN0ICJwcmludCBwdmxhKDEpIiAiID0gNSIgInByaW50IG9uZSBzaW5nbGUtZWxlbWVu dCIKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v dmxhLXN0cmlkZS5mOTAKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5mOTAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3 MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMTI2 L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5mOTAJMjAxNS0wMS0yNiAwNzo0 Nzo0Mi40MDc4Mjk5MTcgKzAxMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlkZS5mOTAJMjAxNS0wNS0yOSAwODoyNzowNi4yNjg3NDAz MDUgKzAyMDAKIEBAIC0wLDAgKzEsMzAgQEAKICshIENvcHlyaWdodCAyMDE0IEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLgogKyEKQEAgLTE3ODgsMTAgKzE3NTUsMTAgQEAgSW5kZXg6IGdk Yi03LjguOTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaWRlLmY5 MAogKwogKyAgcHZsYSA9PiBudWxsKCkgICAgICAgICEgc2luZ2xlLWVsZW1lbnQKICtlbmQgcHJv Z3JhbSB2bGFfc3RyaWRlCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmV4cAorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAv Z2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5leHAKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0t LSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGIt Ny44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZXhw CTIwMTUtMDEtMjYgMDc6NDc6NDIuNDA3ODI5OTE3ICswMTAwCisrKysgZ2RiLTcuOS41MC4yMDE1 MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmV4cAkyMDE1LTA1LTI5 IDA4OjI3OjA2LjI2ODc0MDMwNSArMDIwMAogQEAgLTAsMCArMSwxMDQgQEAKICsjIENvcHlyaWdo dCAyMDE0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogKwpAQCAtMTg5NywxMCArMTg2 NCwxMCBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0 cmFuL3ZsYS1zdHJpbmdzLmV4cAogKyAgIndoYXRpcyB2YXJfY2hhcl9wIGFmdGVyIGFzc29jaWF0 ZWQiCiArZ2RiX3Rlc3QgInB0eXBlIHZhcl9jaGFyX3AiICJ0eXBlID0gUFRSIFRPIC0+IFxcKCBj aGFyYWN0ZXJcXCo3IFxcKSIgXAogKyAgInB0eXBlIHZhcl9jaGFyX3AgYWZ0ZXIgYXNzb2NpYXRl ZCIKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4v dmxhLXN0cmluZ3MuZjkwCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL3ZsYS1zdHJpbmdzLmY5MAogPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkx OTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjguOTAuMjAxNTAx MjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtc3RyaW5ncy5mOTAJMjAxNS0wMS0yNiAw Nzo0Nzo0Mi40MDc4Mjk5MTcgKzAxMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmluZ3MuZjkwCTIwMTUtMDUtMzEgMTU6MjU6MDEuMzA1 NjE1NzU1ICswMjAwCiBAQCAtMCwwICsxLDQwIEBACiArISBDb3B5cmlnaHQgMjAxNCBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICshCkBAIC0xOTQyLDEwICsxOTA5LDEwIEBAIEluZGV4 OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN0cmlu Z3MuZjkwCiArICB2YXJfY2hhcl9wID0+IG51bGwoKQogKyAgbCA9IGFzc29jaWF0ZWQodmFyX2No YXJfcCkgICAgICAgICAgICAgICEgdmFyX2NoYXJfcC1ub3QtYXNzb2NpYXRlZAogK2VuZCBwcm9n cmFtIHZsYV9zdHJpbmdzCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL3ZsYS1zdWIuZjkwCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIv dGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdWIuZjkwCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9u dWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOC45MC4y MDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdWIuZjkwCTIwMTUtMDEtMjYg MDc6NDc6NDIuNDA3ODI5OTE3ICswMTAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVz dHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS1zdWIuZjkwCTIwMTUtMDUtMjkgMDg6Mjc6MDYuMjY4NzQw MzA1ICswMjAwCiBAQCAtMCwwICsxLDgyIEBACiArISBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KICshCkBAIC0yMDI5LDEwICsxOTk2LDEwIEBAIEluZGV4OiBn ZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXN1Yi5mOTAK ICsKICsgIGNhbGwgYmFyKHN1Yl9hcnIzLCBzdWJfYXJyMSkKICtlbmQgcHJvZ3JhbSB2bGFfc3Vi Ci1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3Zs YS12YWx1ZS1zdWItYXJiaXRyYXJ5LmV4cAorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2Ri L3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdmFsdWUtc3ViLWFyYml0cmFyeS5leHAKID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAK LSsrKyBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZh bHVlLXN1Yi1hcmJpdHJhcnkuZXhwCTIwMTUtMDEtMjYgMDc6NDc6NDIuNDA3ODI5OTE3ICswMTAw CisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS12 YWx1ZS1zdWItYXJiaXRyYXJ5LmV4cAkyMDE1LTA1LTI5IDA4OjI3OjA2LjI2ODc0MDMwNSArMDIw MAogQEAgLTAsMCArMSwzNSBAQAogKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuCiArCkBAIC0yMDY5LDEwICsyMDM2LDEwIEBAIEluZGV4OiBnZGItNy44Ljkw LjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLXN1Yi1hcmJpdHJh cnkuZXhwCiArZ2RiX3Rlc3QgInAgYXJyYXkxKDEwMCkiICIgPSAxMDAiICJwcmludCBhcmJpdGFy eSBhcnJheTEoMTAwKSIKICtnZGJfdGVzdCAicCBhcnJheTIoNCwxMCkiICIgPSAxIiAicHJpbnQg YXJiaXRhcnkgYXJyYXkyKDQsMTApIgogK2dkYl90ZXN0ICJwIGFycmF5Mig0LDEwMCkiICIgPSAx IiAicHJpbnQgYXJiaXRhcnkgYXJyYXkyKDQsMTAwKSIKLUluZGV4OiBnZGItNy44LjkwLjIwMTUw MTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLXN1Yi1maW5pc2guZXhwCitJ bmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS12 YWx1ZS1zdWItZmluaXNoLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0tIC9kZXYvbnVsbAkxOTcwLTAxLTAx IDAwOjAwOjAwLjAwMDAwMDAwMCArMDAwMAotKysrIGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL3Rl c3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdmFsdWUtc3ViLWZpbmlzaC5leHAJMjAxNS0wMS0yNiAw Nzo0Nzo0Mi40MDc4Mjk5MTcgKzAxMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0 c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLXN1Yi1maW5pc2guZXhwCTIwMTUtMDUtMjkgMDg6 Mjc6MDYuMjY4NzQwMzA1ICswMjAwCiBAQCAtMCwwICsxLDQ5IEBACiArIyBDb3B5cmlnaHQgMjAx NCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTIxMjMsMTAgKzIwOTAsMTAg QEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92 bGEtdmFsdWUtc3ViLWZpbmlzaC5leHAKICtnZGJfdGVzdCAicCBzdWJfYXJyMigxLCAxLCAxKSIg IiA9IDMwIiAic3ViX2FycjIoMSwgMSwgMSkgYWZ0ZXIgZmluaXNoIgogK2dkYl90ZXN0ICJwIHN1 Yl9hcnIyKDIsIDEsIDEpIiAiID0gMjAiICJzdWJfYXJyMigyLCAxLCAxKSBhZnRlciBmaW5pc2gi CiArCi1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L3ZsYS12YWx1ZS1zdWIuZXhwCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1 aXRlL2dkYi5mb3J0cmFuL3ZsYS12YWx1ZS1zdWIuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9u dWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOC45MC4y MDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS12YWx1ZS1zdWIuZXhwCTIwMTUt MDEtMjYgMDc6NDc6NDIuNDA4ODI5OTIyICswMTAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS12YWx1ZS1zdWIuZXhwCTIwMTUtMDUtMjkgMDg6 Mjc6MDYuMjY5NzQwMzExICswMjAwCiBAQCAtMCwwICsxLDkwIEBACiArIyBDb3B5cmlnaHQgMjAx NCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKQEAgLTIyMTgsMTAgKzIxODUsMTAg QEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92 bGEtdmFsdWUtc3ViLmV4cAogKyAgInNldCBhcnJheSgyLDIsMikgdG8gMjAgaW4gc3Vicm91dGlu ZSAocGFzc2VkIHZsYSkiCiArZ2RiX3Rlc3QgInByaW50IGFycmF5MiIgIiA9IFxcKCAqXFwoICpc XCggKjMwLCAqMjAsICozLFxbKCkzLCAuXF0qXFwpIiBcCiArICAicHJpbnQgYXJyYXkyIGluIGZv byBhZnRlciBpdCB3YXMgbW9maWZpZWQgaW4gZGVidWdnZXIgKHBhc3NlZCB2bGEpIgotSW5kZXg6 IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi92bGEtdmFsdWUu ZXhwCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFu L3ZsYS12YWx1ZS5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDow MDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3Vp dGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLmV4cAkyMDE1LTAxLTI2IDA3OjQ3OjQyLjQwODgyOTky MiArMDEwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi92bGEtdmFsdWUuZXhwCTIwMTUtMDUtMjkgMDg6Mjc6MDYuMjY5NzQwMzExICswMjAwCiBAQCAt MCwwICsxLDE0OCBAQAogKyMgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u LCBJbmMuCiArCkBAIC0yMzcxLDEwICsyMzM4LDEwIEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUw MTI2L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vdmxhLXZhbHVlLmV4cAogK2dkYl9jb250aW51 ZV90b19icmVha3BvaW50ICJwdmxhLWRlYXNzb2NpYXRlZCIKICtnZGJfdGVzdCAicHJpbnQgXCRt eXB2YXIoMSwzLDgpIiAiID0gMTAwMSIgXAogKyAgInByaW50IFwkbXlwdmFyKDEsMyw4KSBhZnRl ciBkZWFsbG9jYXRlZCIKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vdmxhLmY5MAorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3Rlc3Rz dWl0ZS9nZGIuZm9ydHJhbi92bGEuZjkwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAt MDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDEyNi9n ZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS5mOTAJMjAxNS0wMS0yNiAwNzo0Nzo0Mi40MDg4 Mjk5MjIgKzAxMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90ZXN0c3VpdGUvZ2RiLmZv cnRyYW4vdmxhLmY5MAkyMDE1LTA1LTI5IDA4OjI3OjA2LjI2OTc0MDMxMSArMDIwMAogQEAgLTAs MCArMSw1NiBAQAogKyEgQ29weXJpZ2h0IDIwMTQgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCiArIQpAQCAtMjQzMiwxMSArMjM5OSwxMSBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEy Ni9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL3ZsYS5mOTAKICsgIGFsbG9jYXRlICh2bGEzICgy LDIpKSAgICAgICAgICAgICAgICEgdmxhMi1kZWFsbG9jYXRlZAogKyAgdmxhMyg6LDopID0gMTMK ICtlbmQgcHJvZ3JhbSB2bGEKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90ZXN0c3Vp dGUvZ2RiLm1pL21pLXZsYS1mb3J0cmFuLmV4cAorSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAv Z2RiL3Rlc3RzdWl0ZS9nZGIubWkvbWktdmxhLWZvcnRyYW4uZXhwCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0g L2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcu OC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12bGEtZm9ydHJhbi5leHAJMjAx NS0wMS0yNiAwNzo0Nzo0Mi40MDg4Mjk5MjIgKzAxMDAKLUBAIC0wLDAgKzEsMTgyIEBACisrKysg Z2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12bGEtZm9ydHJhbi5l eHAJMjAxNS0wNS0yOSAxMToxMzo1My45NTE2NTY1OTEgKzAyMDAKK0BAIC0wLDAgKzEsMTgxIEBA CiArIyBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsKICsj IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5CkBAIC0yNTA3LDggKzI0NzQsNyBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1 MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12bGEtZm9ydHJhbi5leHAKICttaV9ydW5fY21k CiArbWlfZXhwZWN0X3N0b3AgImJyZWFrcG9pbnQtaGl0IiAidmxhIiAiIiAiLip2bGEuZjkwIiAi JGJwX2xpbmVubyIgXAogKyAgeyAiIiAiZGlzcD1cImRlbFwiIiB9ICJydW4gdG8gYnJlYWtwb2lu dCBhdCBsaW5lICRicF9saW5lbm8iCi0rbWlfZ2RiX3Rlc3QgIjUxMC1kYXRhLWV2YWx1YXRlLWV4 cHJlc3Npb24gdmxhMSIgXAotKyAgIjUxMFxcXmRvbmUsdmFsdWU9XCJcXCgwLCAwLCAwLCAwLCAw XFwpXCIiICJldmFsdWF0ZSBhbGxvY2F0ZWQgdmxhIgorKyMgQ29udGVudCBvZiAndmxhMScgaXMg dW5pbml0aWFsaXplZCBoZXJlLgogKwogK21pX2NyZWF0ZV92YXJvYmpfY2hlY2tlZCB2bGExX2Fs bG9jYXRlZCB2bGExICJyZWFsXFxcKGtpbmQ9NFxcXCkgXFxcKDVcXFwpIiBcCiArICAiY3JlYXRl IGxvY2FsIHZhcmlhYmxlIHZsYTFfYWxsb2NhdGVkIgpAQCAtMjYxOSwxMCArMjU4NSwxMCBAQCBJ bmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5taS9taS12bGEtZm9y dHJhbi5leHAKICsKICttaV9nZGJfZXhpdAogK3JldHVybiAwCi1JbmRleDogZ2RiLTcuOC45MC4y MDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5taS92bGEuZjkwCitJbmRleDogZ2RiLTcuOS41MC4y MDE1MDUyMC9nZGIvdGVzdHN1aXRlL2dkYi5taS92bGEuZjkwCiA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rl di9udWxsCTE5NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuOC45 MC4yMDE1MDEyNi9nZGIvdGVzdHN1aXRlL2dkYi5taS92bGEuZjkwCTIwMTUtMDEtMjYgMDc6NDc6 NDIuNDA5ODI5OTI2ICswMTAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdGVzdHN1aXRl L2dkYi5taS92bGEuZjkwCTIwMTUtMDUtMjkgMDg6Mjc6MDYuMjcwNzQwMzE3ICswMjAwCiBAQCAt MCwwICsxLDQyIEBACiArISBDb3B5cmlnaHQgMjAxNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KICshCkBAIC0yNjY2LDExICsyNjMyLDExIEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUw MTI2L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL3ZsYS5mOTAKICsgIHB2bGEyID0+IG51bGwoKQogKyAg bCA9IGFzc29jaWF0ZWQocHZsYTIpICAgICAgICEgcHZsYTItc2V0LXRvLW51bGwKICtlbmQgcHJv Z3JhbSB2bGEKLUluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi90eXBlcHJpbnQuYworSW5k ZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3R5cGVwcmludC5jCiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0g Z2RiLTcuOC45MC4yMDE1MDEyNi5vcmlnL2dkYi90eXBlcHJpbnQuYwkyMDE1LTAxLTI2IDA3OjQ3 OjI1Ljg1Njc1ODQxOCArMDEwMAotKysrIGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL3R5cGVwcmlu dC5jCTIwMTUtMDEtMjYgMDc6NDc6NDIuNDA5ODI5OTI2ICswMTAwCi1AQCAtNDU2LDYgKzQ1Niwx MyBAQCB3aGF0aXNfZXhwIChjaGFyICpleHAsIGludCBzaG93KQorLS0tIGdkYi03LjkuNTAuMjAx NTA1MjAub3JpZy9nZGIvdHlwZXByaW50LmMJMjAxNS0wNS0yOSAwODoyNzowMi42ODg3MTc1MjMg KzAyMDAKKysrKyBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi90eXBlcHJpbnQuYwkyMDE1LTA1LTI5 IDA4OjI3OjA2LjI3MDc0MDMxNyArMDIwMAorQEAgLTQ1OCw2ICs0NTgsMTMgQEAgd2hhdGlzX2V4 cCAoY2hhciAqZXhwLCBpbnQgc2hvdykKICAKICAgIHR5cGUgPSB2YWx1ZV90eXBlICh2YWwpOwog IApAQCAtMjY4NCwxMCArMjY1MCwxMCBAQCBJbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIv dHlwZXByaW50LmMKICAgIGdldF91c2VyX3ByaW50X29wdGlvbnMgKCZvcHRzKTsKICAgIGlmIChv cHRzLm9iamVjdHByaW50KQogICAgICB7Ci1JbmRleDogZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIv dmFsYXJpdGguYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3ZhbGFyaXRoLmMKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMTI2Lm9yaWcvZ2RiL3ZhbGFyaXRoLmMJMjAx NS0wMS0yNiAwNzo0NzoyNS44NTc3NTg0MjIgKzAxMDAKLSsrKyBnZGItNy44LjkwLjIwMTUwMTI2 L2dkYi92YWxhcml0aC5jCTIwMTUtMDEtMjYgMDc6NDc6NDIuNDA5ODI5OTI2ICswMTAwCistLS0g Z2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi92YWxhcml0aC5jCTIwMTUtMDUtMjkgMDg6Mjc6 MDIuNjg5NzE3NTMwICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdmFsYXJpdGgu YwkyMDE1LTA1LTI5IDA4OjI3OjA2LjI3MTc0MDMyNCArMDIwMAogQEAgLTE5MywxMiArMTkzLDMx IEBAIHZhbHVlX3N1YnNjcmlwdGVkX3J2YWx1ZSAoc3RydWN0IHZhbHVlICoKICAgIHN0cnVjdCB0 eXBlICphcnJheV90eXBlID0gY2hlY2tfdHlwZWRlZiAodmFsdWVfdHlwZSAoYXJyYXkpKTsKICAg IHN0cnVjdCB0eXBlICplbHRfdHlwZSA9IGNoZWNrX3R5cGVkZWYgKFRZUEVfVEFSR0VUX1RZUEUg KGFycmF5X3R5cGUpKTsKQEAgLTI3MjIsMTAgKzI2ODgsMTAgQEAgSW5kZXg6IGdkYi03LjguOTAu MjAxNTAxMjYvZ2RiL3ZhbGFyaXRoLmMKICAKICAgIGlmIChWQUxVRV9MVkFMIChhcnJheSkgPT0g bHZhbF9tZW1vcnkgJiYgdmFsdWVfbGF6eSAoYXJyYXkpKQogICAgICB2ID0gYWxsb2NhdGVfdmFs dWVfbGF6eSAoZWx0X3R5cGUpOwotSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL3ZhbHBy aW50LmMKK0luZGV4OiBnZGItNy45LjUwLjIwMTUwNTIwL2dkYi92YWxwcmludC5jCiA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDEyNi5vcmlnL2dkYi92YWxwcmludC5jCTIwMTUtMDEt MjYgMDc6NDc6MjUuODU4NzU4NDI3ICswMTAwCi0rKysgZ2RiLTcuOC45MC4yMDE1MDEyNi9nZGIv dmFscHJpbnQuYwkyMDE1LTAxLTI2IDA3OjQ3OjQyLjQxMDgyOTkzMCArMDEwMAorLS0tIGdkYi03 LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvdmFscHJpbnQuYwkyMDE1LTA1LTI5IDA4OjI3OjAyLjY5 MDcxNzUzNiArMDIwMAorKysrIGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL3ZhbHByaW50LmMJMjAx NS0wNS0yOSAwODoyNzowNi4yNzE3NDAzMjQgKzAyMDAKIEBAIC0zMDMsNiArMzAzLDE4IEBAIHZh bHByaW50X2NoZWNrX3ZhbGlkaXR5IChzdHJ1Y3QgdWlfZmlsZQogIHsKICAgIENIRUNLX1RZUEVE RUYgKHR5cGUpOwpAQCAtMjc2NCw3ICsyNzMwLDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAx MjYvZ2RiL3ZhbHByaW50LmMKICAvKiBBIGdlbmVyaWMgdmFsX3ByaW50IHRoYXQgaXMgc3VpdGFi bGUgZm9yIHVzZSBieSBsYW5ndWFnZQogICAgIGltcGxlbWVudGF0aW9ucyBvZiB0aGUgbGFfdmFs X3ByaW50IG1ldGhvZC4gIFRoaXMgZnVuY3Rpb24gY2FuCiAgICAgaGFuZGxlIG1vc3QgdHlwZSBj b2RlcywgdGhvdWdoIG5vdCBhbGwsIG5vdGFibHkgZXhjZXB0aW9uCi1AQCAtODAwLDEyICs4MjQs MTYgQEAgc3RhdGljIGludAorQEAgLTgwMiwxMiArODI2LDE2IEBAIHN0YXRpYyBpbnQKICB2YWx1 ZV9jaGVja19wcmludGFibGUgKHN0cnVjdCB2YWx1ZSAqdmFsLCBzdHJ1Y3QgdWlfZmlsZSAqc3Ry ZWFtLAogIAkJICAgICAgIGNvbnN0IHN0cnVjdCB2YWx1ZV9wcmludF9vcHRpb25zICpvcHRpb25z KQogIHsKQEAgLTI3ODEsNyArMjc0Nyw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dk Yi92YWxwcmludC5jCiAgICBpZiAodmFsdWVfZW50aXJlbHlfb3B0aW1pemVkX291dCAodmFsKSkK ICAgICAgewogICAgICAgIGlmIChvcHRpb25zLT5zdW1tYXJ5ICYmICF2YWxfcHJpbnRfc2NhbGFy X3R5cGVfcCAodmFsdWVfdHlwZSAodmFsKSkpCi1AQCAtODMxLDYgKzg1OSwxOCBAQCB2YWx1ZV9j aGVja19wcmludGFibGUgKHN0cnVjdCB2YWx1ZSAqdmFsCitAQCAtODMzLDYgKzg2MSwxOCBAQCB2 YWx1ZV9jaGVja19wcmludGFibGUgKHN0cnVjdCB2YWx1ZSAqdmFsCiAgICAgICAgcmV0dXJuIDA7 CiAgICAgIH0KICAKQEAgLTI4MDAsMjMgKzI3NjYsMjMgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAx NTAxMjYvZ2RiL3ZhbHByaW50LmMKICAgIHJldHVybiAxOwogIH0KICAKLUluZGV4OiBnZGItNy44 LjkwLjIwMTUwMTI2L2dkYi92YWxwcmludC5oCitJbmRleDogZ2RiLTcuOS41MC4yMDE1MDUyMC9n ZGIvdmFscHJpbnQuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjguOTAuMjAxNTAxMjYub3JpZy9n ZGIvdmFscHJpbnQuaAkyMDE1LTAxLTI2IDA3OjQ3OjI1Ljg1OTc1ODQzMSArMDEwMAotKysrIGdk Yi03LjguOTAuMjAxNTAxMjYvZ2RiL3ZhbHByaW50LmgJMjAxNS0wMS0yNiAwNzo0Nzo0Mi40MTA4 Mjk5MzAgKzAxMDAKLUBAIC0yMTcsNCArMjE3LDggQEAgZXh0ZXJuIHZvaWQgb3V0cHV0X2NvbW1h bmRfY29uc3QgKGNvbnN0Ci0gCi0gZXh0ZXJuIGludCB2YWxfcHJpbnRfc2NhbGFyX3R5cGVfcCAo c3RydWN0IHR5cGUgKnR5cGUpOworLS0tIGdkYi03LjkuNTAuMjAxNTA1MjAub3JpZy9nZGIvdmFs cHJpbnQuaAkyMDE1LTA1LTI5IDA4OjI3OjAyLjY5MTcxNzU0MyArMDIwMAorKysrIGdkYi03Ljku NTAuMjAxNTA1MjAvZ2RiL3ZhbHByaW50LmgJMjAxNS0wNS0yOSAwODoyNzowNi4yNzI3NDAzMzAg KzAyMDAKK0BAIC0yMzIsNCArMjMyLDggQEAgZXh0ZXJuIHZvaWQgcHJpbnRfY29tbWFuZF9wYXJz ZV9mb3JtYXQgKAorIAkJCQkJc3RydWN0IGZvcm1hdF9kYXRhICpmbXRwKTsKKyBleHRlcm4gdm9p ZCBwcmludF92YWx1ZSAoc3RydWN0IHZhbHVlICp2YWwsIGNvbnN0IHN0cnVjdCBmb3JtYXRfZGF0 YSAqZm10cCk7CiAgCiArZXh0ZXJuIHZvaWQgdmFsX3ByaW50X25vdF9hbGxvY2F0ZWQgKHN0cnVj dCB1aV9maWxlICpzdHJlYW0pOwogKwogK2V4dGVybiB2b2lkIHZhbF9wcmludF9ub3RfYXNzb2Np YXRlZCAoc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSk7CiArCiAgI2VuZGlmCi1JbmRleDogZ2RiLTcu OC45MC4yMDE1MDEyNi9nZGIvdmFsdWUuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2Ri L3ZhbHVlLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy44LjkwLjIwMTUwMTI2Lm9yaWcvZ2RiL3Zh bHVlLmMJMjAxNS0wMS0yNiAwNzo0NzoyNS44NjA3NTg0MzUgKzAxMDAKLSsrKyBnZGItNy44Ljkw LjIwMTUwMTI2L2dkYi92YWx1ZS5jCTIwMTUtMDEtMjYgMDc6NDc6NDIuNDExODI5OTM1ICswMTAw CistLS0gZ2RiLTcuOS41MC4yMDE1MDUyMC5vcmlnL2dkYi92YWx1ZS5jCTIwMTUtMDUtMjkgMDg6 Mjc6MDIuNjkzNzE3NTU1ICswMjAwCisrKysgZ2RiLTcuOS41MC4yMDE1MDUyMC9nZGIvdmFsdWUu YwkyMDE1LTA1LTI5IDA4OjI3OjA2LjI3Mzc0MDMzNyArMDIwMAogQEAgLTQwLDYgKzQwLDcgQEAK ICAjaW5jbHVkZSAidHJhY2Vwb2ludC5oIgogICNpbmNsdWRlICJjcC1hYmkuaCIKQEAgLTI4MjUs NyArMjc5MSw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2L2dkYi92YWx1ZS5jCiAgCiAg LyogUHJvdG90eXBlcyBmb3IgZXhwb3J0ZWQgZnVuY3Rpb25zLiAgKi8KICAKLUBAIC0xNzU1LDYg KzE3NTYsMjUgQEAgc2V0X3ZhbHVlX2NvbXBvbmVudF9sb2NhdGlvbiAoc3RydWN0IHZhbAorQEAg LTE3NzYsNiArMTc3NywyNSBAQCBzZXRfdmFsdWVfY29tcG9uZW50X2xvY2F0aW9uIChzdHJ1Y3Qg dmFsCiAgICAgICAgaWYgKGZ1bmNzLT5jb3B5X2Nsb3N1cmUpCiAgICAgICAgICBjb21wb25lbnQt PmxvY2F0aW9uLmNvbXB1dGVkLmNsb3N1cmUgPSBmdW5jcy0+Y29weV9jbG9zdXJlICh3aG9sZSk7 CiAgICAgIH0KQEAgLTI4NTEsNyArMjgxNyw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2 L2dkYi92YWx1ZS5jCiAgfQogIAogIAwKLUBAIC0zMDQxLDEzICszMDYxLDIyIEBAIHZhbHVlX3By aW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlICphcmcKK0BAIC0zMDgwLDEzICszMTAwLDIyIEBA IHZhbHVlX3ByaW1pdGl2ZV9maWVsZCAoc3RydWN0IHZhbHVlICphcmcKICAJdiA9IGFsbG9jYXRl X3ZhbHVlX2xhenkgKHR5cGUpOwogICAgICAgIGVsc2UKICAJewpAQCAtMjg4MCw3ICsyODQ2LDcg QEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL3ZhbHVlLmMKICAgICAgfQogICAgc2V0 X3ZhbHVlX2NvbXBvbmVudF9sb2NhdGlvbiAodiwgYXJnMSk7CiAgICBWQUxVRV9SRUdOVU0gKHYp ID0gVkFMVUVfUkVHTlVNIChhcmcxKTsKLUBAIC0zNjM1LDcgKzM2NjQsOCBAQCByZWFkanVzdF9p bmRpcmVjdF92YWx1ZV90eXBlIChzdHJ1Y3QgdmFsCitAQCAtMzY3NCw3ICszNzAzLDggQEAgcmVh ZGp1c3RfaW5kaXJlY3RfdmFsdWVfdHlwZSAoc3RydWN0IHZhbAogIAkJCSAgICAgIHN0cnVjdCB2 YWx1ZSAqb3JpZ2luYWxfdmFsdWUpCiAgewogICAgLyogUmUtYWRqdXN0IHR5cGUuICAqLwpAQCAt Mjg5MCw3ICsyODU2LDcgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2RiL3ZhbHVlLmMK ICAKICAgIC8qIEFkZCBlbWJlZGRpbmcgaW5mby4gICovCiAgICBzZXRfdmFsdWVfZW5jbG9zaW5n X3R5cGUgKHZhbHVlLCBlbmNfdHlwZSk7Ci1AQCAtMzY1Miw2ICszNjgyLDEyIEBAIGNvZXJjZV9y ZWYgKHN0cnVjdCB2YWx1ZSAqYXJnKQorQEAgLTM2OTEsNiArMzcyMSwxMiBAQCBjb2VyY2VfcmVm IChzdHJ1Y3QgdmFsdWUgKmFyZykKICAgIHN0cnVjdCB2YWx1ZSAqcmV0dmFsOwogICAgc3RydWN0 IHR5cGUgKmVuY190eXBlOwogIApAQCAtMjkwMyw3ICsyODY5LDcgQEAgSW5kZXg6IGdkYi03Ljgu OTAuMjAxNTAxMjYvZ2RiL3ZhbHVlLmMKICAgIHJldHZhbCA9IGNvZXJjZV9yZWZfaWZfY29tcHV0 ZWQgKGFyZyk7CiAgICBpZiAocmV0dmFsKQogICAgICByZXR1cm4gcmV0dmFsOwotQEAgLTM3ODYs OCArMzgyMiwxNCBAQCB2YWx1ZV9mZXRjaF9sYXp5IChzdHJ1Y3QgdmFsdWUgKnZhbCkKK0BAIC0z ODI1LDggKzM4NjEsMTQgQEAgdmFsdWVfZmV0Y2hfbGF6eSAoc3RydWN0IHZhbHVlICp2YWwpCiAg ICAgIH0KICAgIGVsc2UgaWYgKFZBTFVFX0xWQUwgKHZhbCkgPT0gbHZhbF9tZW1vcnkpCiAgICAg IHsKQEAgLTI5MTksMTEgKzI4ODUsMTEgQEAgSW5kZXg6IGdkYi03LjguOTAuMjAxNTAxMjYvZ2Ri L3ZhbHVlLmMKICAKICAgICAgICBpZiAoVFlQRV9MRU5HVEggKHR5cGUpKQogIAlyZWFkX3ZhbHVl X21lbW9yeSAodmFsLCAwLCB2YWx1ZV9zdGFjayAodmFsKSwKLUluZGV4OiBnZGItNy44LjkwLjIw MTUwMTI2L2dkYi9kd2FyZjJsb2MuYworSW5kZXg6IGdkYi03LjkuNTAuMjAxNTA1MjAvZ2RiL2R3 YXJmMmxvYy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuOC45MC4yMDE1MDEyNi5vcmlnL2dkYi9k d2FyZjJsb2MuYwkyMDE1LTAxLTI2IDA3OjQ3OjI1Ljg2Mjc1ODQ0NCArMDEwMAotKysrIGdkYi03 LjguOTAuMjAxNTAxMjYvZ2RiL2R3YXJmMmxvYy5jCTIwMTUtMDEtMjYgMDc6NDc6NDIuNDEyODI5 OTM5ICswMTAwCi1AQCAtMjI5Myw2ICsyMjkzLDExIEBAIGR3YXJmMl9ldmFsdWF0ZV9sb2NfZGVz Y19mdWxsIChzdHJ1Y3QgdHkKKy0tLSBnZGItNy45LjUwLjIwMTUwNTIwLm9yaWcvZ2RiL2R3YXJm MmxvYy5jCTIwMTUtMDUtMjkgMDg6Mjc6MDIuNjk0NzE3NTYyICswMjAwCisrKysgZ2RiLTcuOS41 MC4yMDE1MDUyMC9nZGIvZHdhcmYybG9jLmMJMjAxNS0wNS0yOSAwODoyNzowNi4yNzQ3NDAzNDMg KzAyMDAKK0BAIC0yMjk0LDYgKzIyOTQsMTEgQEAgZHdhcmYyX2V2YWx1YXRlX2xvY19kZXNjX2Z1 bGwgKHN0cnVjdCB0eQogIAkgICAgaW50IGluX3N0YWNrX21lbW9yeSA9IGR3YXJmX2V4cHJfZmV0 Y2hfaW5fc3RhY2tfbWVtb3J5IChjdHgsIDApOwogIAogIAkgICAgZG9fY2xlYW51cHMgKHZhbHVl X2NoYWluKTsKQEAgLTI5MzUsNyArMjkwMSw3IEBAIEluZGV4OiBnZGItNy44LjkwLjIwMTUwMTI2 L2dkYi9kd2FyZjJsb2MuYwogIAkgICAgcmV0dmFsID0gdmFsdWVfYXRfbGF6eSAodHlwZSwgYWRk cmVzcyArIGJ5dGVfb2Zmc2V0KTsKICAJICAgIGlmIChpbl9zdGFja19tZW1vcnkpCiAgCSAgICAg IHNldF92YWx1ZV9zdGFjayAocmV0dmFsLCAxKTsKLUBAIC0yNTUyLDYgKzI1NTcsMTkgQEAgZHdh cmYyX2NvbXBpbGVfcHJvcGVydHlfdG9fYyAoc3RydWN0IHVpXworQEAgLTI1NzcsNiArMjU4Miwx OSBAQCBkd2FyZjJfY29tcGlsZV9wcm9wZXJ0eV90b19jIChzdHJ1Y3QgdWlfCiAgCQkJICAgICBk YXRhLCBkYXRhICsgc2l6ZSwgcGVyX2N1KTsKICB9CiAgCgpkaWZmIC0tZ2l0IGEvZ2RiLnNwZWMg Yi9nZGIuc3BlYwppbmRleCAwNTEzMjQxLi5iNTJlZmExIDEwMDY0NAotLS0gYS9nZGIuc3BlYwor KysgYi9nZGIuc3BlYwpAQCAtMTgsMTUgKzE4LDE1IEBAIFN1bW1hcnk6IEEgR05VIHNvdXJjZS1s ZXZlbCBkZWJ1Z2dlciBmb3IgQywgQysrLCBGb3J0cmFuLCBHbyBhbmQgb3RoZXIgbGFuZ3VhZ2Vz CiBOYW1lOiAlez9zY2xfcHJlZml4fWdkYgogCiAjIEZyZWV6ZSBpdCB3aGVuIEdEQiBnZXRzIGJy YW5jaGVkCi0lZ2xvYmFsIHNuYXBzcmMgICAgMjAxNDA2MTEKKyVnbG9iYWwgc25hcHNyYyAgICAy MDE1MDUzMQogIyBTZWUgdGltZXN0YW1wIG9mIHNvdXJjZSBnbnVsaWIgaW5zdGFsbGVkIGludG8g Z2RiL2dudWxpYi8gLgogJWdsb2JhbCBzbmFwZ251bGliIDIwMTIxMjEzCiAlZ2xvYmFsIHRhcm5h bWUgZ2RiLSV7dmVyc2lvbn0KLVZlcnNpb246IDcuOS4xCitWZXJzaW9uOiA3LjkuNTAuJXtzbmFw c3JjfQogCiAjIFRoZSByZWxlYXNlIGFsd2F5cyBjb250YWlucyBhIGxlYWRpbmcgcmVzZXJ2ZWQg bnVtYmVyLCBzdGFydCBpdCBhdCAxLgogIyBgdXBzdHJlYW0nIGlzIG5vdCBhIHBhcnQgb2YgYG5h bWUnIHRvIHN0YXkgZnVsbHkgcnBtIGRlcGVuZGVuY2llcyBjb21wYXRpYmxlIGZvciB0aGUgdGVz dGluZy4KLVJlbGVhc2U6IDE0JXs/ZGlzdH0KK1JlbGVhc2U6IDElez9kaXN0fQogCiBMaWNlbnNl OiBHUEx2MysgYW5kIEdQTHYzKyB3aXRoIGV4Y2VwdGlvbnMgYW5kIEdQTHYyKyBhbmQgR1BMdjIr IHdpdGggZXhjZXB0aW9ucyBhbmQgR1BMKyBhbmQgTEdQTHYyKyBhbmQgQlNEIGFuZCBQdWJsaWMg RG9tYWluIGFuZCBHRkRMCiBHcm91cDogRGV2ZWxvcG1lbnQvRGVidWdnZXJzCkBAIC0xMjAsOSAr MTIwLDYgQEAgUGF0Y2gxMDU6IGdkYi02LjMtcHBjNjRzeXNjYWxsLTIwMDQwNjIyLnBhdGNoCiAj PW1heWJlcHVzaDogV3JpdGUgbmV3IHRlc3RjYXNlLgogUGF0Y2gxMTE6IGdkYi02LjMtcHBjNjRk aXNwbGF5c3ltYm9sLTIwMDQxMTI0LnBhdGNoCiAKLSMgRml4IHVwc3RyZWFtIGBzZXQgc2NoZWR1 bGVyLWxvY2tpbmcgc3RlcCcgdnMuIHVwc3RyZWFtIFBQQyBhdG9taWMgc2Vxcy4KLSM9cHVzaCt3 b3JrOiBJdCBpcyBhIGJpdCBkaWZmaWN1bHQgcGF0Y2gsIGEgcGFydCBpcyBwcGMgc3BlY2lmaWMu Ci1QYXRjaDExMjogZ2RiLTYuNi1zY2hlZHVsZXJfbG9ja2luZy1zdGVwLXN3LXdhdGNocG9pbnRz Mi5wYXRjaAogIyBNYWtlIHVwc3RyZWFtIGBzZXQgc2NoZWR1bGVyLWxvY2tpbmcgc3RlcCcgYXMg ZGVmYXVsdC4KICM9cHVzaCt3b3JrOiBIb3cgbXVjaCBpcyBzY2hlZHVsZXItbG9ja2luZyByZWxl dmFudCBhZnRlciBub24tc3RvcD8KIFBhdGNoMjYwOiBnZGItNi42LXNjaGVkdWxlcl9sb2NraW5n LXN0ZXAtaXMtZGVmYXVsdC5wYXRjaApAQCAtMTgxLDExICsxNzgsNiBAQCBQYXRjaDE5NDogZ2Ri LTYuNS1iejE4NTMzNy1yZXNvbHZlLXRscy13aXRob3V0LWRlYnVnaW5mby12Mi5wYXRjaAogIz1m ZWRvcmF0ZXN0K3dvcms6IE9uZSBzaG91bGQgcmVjaGVjayBpZiBpdCBpcyByZWFsbHkgZml4ZWQg dXBzdHJlYW0uCiBQYXRjaDE5NjogZ2RiLTYuNS1zaGFyZWRsaWJyYXJ5LXBhdGgucGF0Y2gKIAot IyBTdWdnZXN0IGZpeGluZyB5b3VyIHRhcmdldCBhcmNoaXRlY3R1cmUgZm9yIGdkYnNlcnZlcigx KSAoQlogMTkwODEwKS4KLSMgRklYTUU6IEl0IGNvdWxkIGJlIGF1dG9kZXRlY3RlZC4KLSM9cHVz aCt3b3JrOiBUaGVyZSBhcmUgbW9yZSBzdWNoIGVycm9yIGNhc2VzIHRoYXQgY2FuIGhhcHBlbi4K LVBhdGNoMTk5OiBnZGItNi41LWJ6MTkwODEwLWdkYnNlcnZlci1hcmNoLWFkdmljZS5wYXRjaAot CiAjIFRlc3RjYXNlIGZvciBkZWFkbG9ja2luZyBvbiBsYXN0IGFkZHJlc3Mgc3BhY2UgYnl0ZTsg Zm9yIGNvcnJ1cHRlZCBiYWNrdHJhY2VzLgogIz1mZWRvcmF0ZXN0CiBQYXRjaDIxMTogZ2RiLTYu NS1sYXN0LWFkZHJlc3Mtc3BhY2UtYnl0ZS10ZXN0LnBhdGNoCkBAIC0yMjQsNyArMjE2LDcgQEAg UGF0Y2gyMzE6IGdkYi02LjMtYnoyMDI2ODktZXhlYy1mcm9tLXB0aHJlYWQtdGVzdC5wYXRjaAog CiAjIEJhY2twb3J0ZWQgZml4dXBzIHBvc3QgdGhlIHNvdXJjZSB0YXJiYWxsLgogI1hkcm9wOiBK dXN0IGJhY2twb3J0cy4KLVBhdGNoMjMyOiBnZGItdXBzdHJlYW0ucGF0Y2gKKyNQYXRjaDIzMjog Z2RiLXVwc3RyZWFtLnBhdGNoCiAKICMgVGVzdGNhc2UgZm9yIFBQQyBQb3dlcjYvREZQIGluc3Ry dWN0aW9ucyBkaXNhc3NlbWJseSAoQlogMjMwMDAwKS4KICM9ZmVkb3JhdGVzdCtwcGMKQEAgLTM1 NSwxMSArMzQ3LDYgQEAgUGF0Y2gzNDg6IGdkYi02LjgtYno0NjY5MDEtYmFja3RyYWNlLWZ1bGwt cHJlbGlua2VkLnBhdGNoCiAjPXB1c2grd29yawogUGF0Y2gzNDk6IGdkYi1hcmNoZXIucGF0Y2gK IAotIyBGaXggcGFyc2luZyBlbGY2NC1pMzg2IGZpbGVzIGZvciBrZHVtcCBQQUUgdm1jb3JlIGR1 bXBzIChCWiA0NTcxODcpLgotIyAtIFR1cm4gb24gNjQtYml0IEJGRCBzdXBwb3J0LCBnbG9iYWxs eSBlbmFibGUgQUNfU1lTX0xBUkdFRklMRS4KLSM9ZmVkb3JhdGVzdAotUGF0Y2gzNjA6IGdkYi02 LjgtYno0NTcxODctbGFyZ2VmaWxlLXRlc3QucGF0Y2gKLQogIyBOZXcgdGVzdCBmb3Igc3RlcC1y ZXN1bWUgYnJlYWtwb2ludCBwbGFjZWQgaW4gbXVsdGlwbGUgdGhyZWFkcyBhdCBvbmNlLgogIz1m ZWRvcmF0ZXN0CiBQYXRjaDM4MTogZ2RiLXNpbXVsdGFuZW91cy1zdGVwLXJlc3VtZS1icmVha3Bv aW50LXRlc3QucGF0Y2gKQEAgLTUwMSw5ICs0ODgsNiBAQCBQYXRjaDgxODogZ2RiLXJoYno3OTU0 MjQtYml0cG9zLWxhenl2YWx1ZS5wYXRjaAogIz1mZWRvcmF0ZXN0CiBQYXRjaDgzMjogZ2RiLXJo Yno5NDc1NjQtZmluZHZhci1hc3NlcnRpb24tZnJhbWUtZmFpbGVkLXRlc3RjYXNlLnBhdGNoCiAK LSMgRml4IGNyYXNoIG9uICdlbmFibGUgY291bnQnIChTaW1vbiBNYXJjaGksIEJaIDk5MzExOCku Ci1QYXRjaDg0MzogZ2RiLWVuYWJsZS1jb3VudC1jcmFzaC5wYXRjaAotCiAjIFtyaGVsNl0gRFRT IGJhY2t3YXJkIFB5dGhvbiBjb21wYXRpYmlsaXR5IEFQSSAoQlogMTAyMDAwNCwgUGhpbCBNdWxk b29uKS4KIFBhdGNoODQ4OiBnZGItZHRzLXJoZWw2LXB5dGhvbi1jb21wYXQucGF0Y2gKIApAQCAt NTI5LDE1ICs1MTMsNiBAQCBQYXRjaDkyNzogZ2RiLXB5dGhvbi1naWwucGF0Y2gKICMgRml4IGpp dC1yZWFkZXIuaCBmb3IgbXVsdGktbGliLgogUGF0Y2g5Nzg6IGdkYi1qaXQtcmVhZGVyLW11bHRp bGliLnBhdGNoCiAKLSMgVGVtcG9yYXJpbHkgZGlzYWJsZSBkZy1leHRyYWN0LXJlc3VsdHMucHkg dG8gZml4IGdkYi5zdW0gc29ydGluZy4KLVBhdGNoOTgyOiBnZGItbm8tZGctZXh0cmFjdC1yZXN1 bHRzLXB5LnBhdGNoCi0KLSMgRml4IFB5dGhvbiAzIGJ1aWxkIGVycm9yIG9uIDMyLWJpdCBob3N0 cy4KLVBhdGNoOTg0OiBnZGItcHl0aG9uMy1weV9oYXNoX3QtMzJiaXQucGF0Y2gKLQotIyBGaXgg UHl0aG9uIDMgdGVzdHN1aXRlIHJlZ3Jlc3Npb25zLgotUGF0Y2g5ODU6IGdkYi1weXRob24zLXRl c3RzdWl0ZS5wYXRjaAotCiAlaWYgMCV7IT9yaGVsOjF9IHx8IDAlez9yaGVsfSA+IDYKICMgUkxf U1RBVEVfRkVET1JBX0dEQiB3b3VsZCBub3QgYmUgZm91bmQgZm9yOgogIyBQYXRjaDY0MjogZ2Ri LXJlYWRsaW5lNjItYXNrLW1vcmUtcmgucGF0Y2gKQEAgLTcxNSw3ICs2OTAsNyBAQCBmaW5kIC1u YW1lICIqLmluZm8qInx4YXJncyBybSAtZgogIyBNYXRjaCB0aGUgRmVkb3JhJ3MgdmVyc2lvbiBp bmZvLgogJXBhdGNoMiAtcDEKIAotJXBhdGNoMjMyIC1wMQorI3BhdGNoMjMyIC1wMQogJXBhdGNo MzQ5IC1wMQogJXBhdGNoODg4IC1wMQogJXBhdGNoOTgzIC1wMQpAQCAtNzI1LDcgKzcwMCw2IEBA IGZpbmQgLW5hbWUgIiouaW5mbyoifHhhcmdzIHJtIC1mCiAKICVwYXRjaDEwNSAtcDEKICVwYXRj aDExMSAtcDEKLSVwYXRjaDExMiAtcDEKICVwYXRjaDExOCAtcDEKICVwYXRjaDEyMiAtcDEKICVw YXRjaDEyNSAtcDEKQEAgLTczOCw3ICs3MTIsNiBAQCBmaW5kIC1uYW1lICIqLmluZm8qInx4YXJn cyBybSAtZgogJXBhdGNoMTg4IC1wMQogJXBhdGNoMTk0IC1wMQogJXBhdGNoMTk2IC1wMQotJXBh dGNoMTk5IC1wMQogJXBhdGNoMjA4IC1wMQogJXBhdGNoMjExIC1wMQogJXBhdGNoMjEzIC1wMQpA QCAtNzc1LDcgKzc0OCw2IEBAIGZpbmQgLW5hbWUgIiouaW5mbyoifHhhcmdzIHJtIC1mCiAlcGF0 Y2gzMzAgLXAxCiAlcGF0Y2gzNDMgLXAxCiAlcGF0Y2gzNDggLXAxCi0lcGF0Y2gzNjAgLXAxCiAl cGF0Y2gzODEgLXAxCiAlcGF0Y2gzODIgLXAxCiAlcGF0Y2gzOTEgLXAxCkBAIC04MTUsNyArNzg3 LDYgQEAgZmluZCAtbmFtZSAiKi5pbmZvKiJ8eGFyZ3Mgcm0gLWYKICVwYXRjaDgxNyAtcDEKICVw YXRjaDgxOCAtcDEKICVwYXRjaDgzMiAtcDEKLSVwYXRjaDg0MyAtcDEKICVwYXRjaDg1MiAtcDEK ICVwYXRjaDg2MyAtcDEKICVwYXRjaDg4NyAtcDEKQEAgLTgyMyw5ICs3OTQsNiBAQCBmaW5kIC1u YW1lICIqLmluZm8qInx4YXJncyBybSAtZgogJXBhdGNoOTI1IC1wMQogJXBhdGNoOTI3IC1wMQog JXBhdGNoOTc4IC1wMQotJXBhdGNoOTgyIC1wMQotJXBhdGNoOTg0IC1wMQotJXBhdGNoOTg1IC1w MQogCiAlcGF0Y2g4NDggLXAxCiAlaWYgMCV7IT9lbDY6MX0KQEAgLTg3Nyw2ICs4NDUsOCBAQCBy bSAtcmYgcmVhZGxpbmUvKgogbXYgLWYgcmVhZGxpbmUtZG9jIHJlYWRsaW5lL2RvYwogJWVuZGlm ICMgMCV7IT9yaGVsOjF9IHx8IDAlez9yaGVsfSA+IDYKIAorcm0gLXJmIHpsaWIKKwogJWJ1aWxk CiBybSAtcmYgJXtidWlsZHJvb3R9CiAKQEAgLTk1Niw2ICs5MjYsNyBAQCAkKDogcHBjNjQgaG9z dCBidWlsZCBjcmFzaGVzIG9uIHBwYyB2YXJpYW50IG9mIGxpYmV4cGF0LnNvICkJXAogJWVsc2UK IAktLWRpc2FibGUtaW5wcm9jZXNzLWFnZW50CQkJCVwKICVlbmRpZgorCS0td2l0aC1zeXN0ZW0t emxpYgkJCQkJXAogCSAgICAgIC0td2l0aC1hdXRvLWxvYWQtZGlyPSckZGVidWdkaXI6JGRhdGFk aXIvYXV0by1sb2FkJXs/c2NsOjole19yb290X2RhdGFkaXJ9L2dkYi9hdXRvLWxvYWR9JwlcCiAJ LS13aXRoLWF1dG8tbG9hZC1zYWZlLXBhdGg9JyRkZWJ1Z2RpcjokZGF0YWRpci9hdXRvLWxvYWQl ez9zY2w6OiV7X3Jvb3RfZGF0YWRpcn0vZ2RiL2F1dG8tbG9hZH0nCVwKICVpZmFyY2ggc3BhcmMg c3BhcmN2OQpAQCAtMTAyNiw4ICs5OTcsNiBAQCBjZCAle2dkYl9idWlsZH0KIG1ha2UgJXs/X3Nt cF9tZmxhZ3N9IFwKICAgICAgLUMgZ2RiL2RvYyB7Z2RiLGFubm90YXRlfXsuaW5mbywvaW5kZXgu aHRtbCwucGRmfSBNQUtFSFRNTEZMQUdTPS0tbm8tc3BsaXQgTUFLRUlORk9GTEFHUz0tLW5vLXNw bGl0CiAKLWdyZXAgJyNkZWZpbmUgSEFWRV9aTElCX0ggMScgZ2RiL2NvbmZpZy5oCi0KICMgQ29w eSB0aGUgPHNvdXJjZXRyZWU+L2dkYi9ORVdTIGZpbGUgdG8gdGhlIGRpcmVjdG9yeSBhYm92ZSBp dC4KIGNwICRSUE1fQlVJTERfRElSLyV7Z2RiX3NyY30vZ2RiL05FV1MgJFJQTV9CVUlMRF9ESVIv JXtnZGJfc3JjfQogCkBAIC0xMzI2LDYgKzEyOTUsOSBAQCB0aGVuCiBmaQogCiAlY2hhbmdlbG9n CisqIFN1biBNYXkgMzEgMjAxNSBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0 LmNvbT4gLSA3LjkuNTAuMjAxNTA1MzEtMS5mYzIzCistIFJlYmFzZSB0byBGU0YgR0RCIDcuOS41 MC4yMDE1MDUzMSAocHJlLTcuMTAgdHJ1bmsgc25hcHNob3QpLgorCiAqIEZyaSBNYXkgMTUgMjAx NSBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4gLSA3LjkuMS0xNC5m YzIyCiAtIEZpeCBpZ25vcmVkIFJlcXVpcmVzIGZvciBnZGItZG9jIChSSCBCWiAxMjIxODE0KS4K IAoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IDJmNjdmODIuLjdhNjkxNjIg MTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMSwyICsxLDIgQEAKIDQ5ODEz MDdhYTk2MTliYmVjNWI3MzI2MWU0ZTQxYzhkICBnZGItbGlic3RkYysrLXYzLXB5dGhvbi1yMTU1 OTc4LnRhci5iejIKLTM1Mzc0Yzc3YTcwODg0ZWI0MzBjOTcwNjEwNTNhMzZlICBnZGItNy45LjEu dGFyLnh6CiszOTRkZmJkODc2MDdjNzVlNWM2MWYzZTI4MTA1YmU1NCAgZ2RiLTcuOS41MC4yMDE1 MDUzMS50YXIueHoK