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.4.91.20120801. Date: Thu, 23 Jul 2026 18:30:36 GMT Message-ID: <178483143686.1.2516420122406012092.rpms-gdb-4945b2263dd3@fedoraproject.org> List-ID: X-Git-Repo: rpms/gdb X-Git-Branch: fix-dup-patch X-Git-Rev: 4945b2263dd31df6f0999ae1060374e6bb838022 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZ2RiCiAgICAgICAgICAgIEJyYW5jaCA6IGZpeC1kdXAtcGF0Y2gKICAgICAg ICAgICAgQ29tbWl0IDogNDk0NWIyMjYzZGQzMWRmNmYwOTk5YWUxMDYwMzc0ZTZiYjgzODAyMgog ICAgICAgICAgICBBdXRob3IgOiBKYW4gS3JhdG9jaHZpbCA8amFuLmtyYXRvY2h2aWxAcmVkaGF0 LmNvbT4KICAgICAgICAgICAgRGF0ZSAgIDogMjAxMi0wOC0wMVQyMTo0MDoxMiswMjowMAogICAg ICAgICAgICBTdGF0cyAgOiArMTA2Ny8tODk2IGluIDEyIGZpbGUocykKICAgICAgICAgICAgVVJM ICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9nZGIvYy80OTQ1YjIyNjNk ZDMxZGY2ZjA5OTlhZTEwNjAzNzRlNmJiODM4MDIyP2JyYW5jaD1maXgtZHVwLXBhdGNoCgogICAg ICAgICAgICBMb2c6CiAgICAgICAgICAgIFJlYmFzZSB0byBGU0YgR0RCIDcuNC45MS4yMDEyMDgw MS4KCi0gW2R3el0gUmViYXNlIGl0IGZyb20gRlNGIEdEQiBIRUFELgoKLS0tCmRpZmYgLS1naXQg YS8uZ2l0aWdub3JlIGIvLmdpdGlnbm9yZQppbmRleCA2NDNhMTVmLi4zMzdhOWJlIDEwMDY0NAot LS0gYS8uZ2l0aWdub3JlCisrKyBiLy5naXRpZ25vcmUKQEAgLTEsMiArMSwyIEBACiAvbGlic3Rk YysrLXYzLXB5dGhvbi1yMTU1OTc4LnRhci5iejIKLS9nZGItNy40LjUwLjIwMTIwNzE0LnRhci5i ejIKKy9nZGItNy40LjkxLjIwMTIwODAxLnRhci5iejIKCmRpZmYgLS1naXQgYS9nZGItNi42LWJ1 aWxkaWQtbG9jYXRlLWNvcmUtYXMtYXJnLnBhdGNoIGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS1j b3JlLWFzLWFyZy5wYXRjaAppbmRleCBjMjhiMDAwLi4yZmFhMzA2IDEwMDY0NAotLS0gYS9nZGIt Ni42LWJ1aWxkaWQtbG9jYXRlLWNvcmUtYXMtYXJnLnBhdGNoCisrKyBiL2dkYi02LjYtYnVpbGRp ZC1sb2NhdGUtY29yZS1hcy1hcmcucGF0Y2gKQEAgLTU4LDEwICs1OCwxMCBAQCBIdHRwOi8vc291 cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxMC0wMS9tc2cwMDUxNy5odG1sCiAJKiBleGVj LmMgKGV4ZWNfZmlsZV9hdHRhY2gpOiBQcmludCBhIG1vcmUgdXNlZnVsIGVycm9yIG1lc3NhZ2Ug aWYgdGhlCiAJdXNlciBkaWQgImdkYiBjb3JlIi4KIAotSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3 MDMvZ2RiL2V4Y2VwdGlvbnMuaAorSW5kZXg6IGdkYi03LjQuOTEuMjAxMjA4MDEvZ2RiL2V4Y2Vw dGlvbnMuaAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjQuNTAuMjAxMjA3MDMub3JpZy9nZGIvZXhj ZXB0aW9ucy5oCTIwMTItMDEtMDQgMDk6MTc6MDEuMDAwMDAwMDAwICswMTAwCi0rKysgZ2RiLTcu NC41MC4yMDEyMDcwMy9nZGIvZXhjZXB0aW9ucy5oCTIwMTItMDctMDMgMTc6MzY6MjcuODQwMjk3 MjY0ICswMjAwCistLS0gZ2RiLTcuNC45MS4yMDEyMDgwMS5vcmlnL2dkYi9leGNlcHRpb25zLmgJ MjAxMi0wMS0wNCAwOToxNzowMS4wMDAwMDAwMDAgKzAxMDAKKysrKyBnZGItNy40LjkxLjIwMTIw ODAxL2dkYi9leGNlcHRpb25zLmgJMjAxMi0wOC0wMSAxODo0MzozOS44MDY5NTk5OTIgKzAyMDAK IEBAIC04Niw2ICs4Niw5IEBAIGVudW0gZXJyb3JzIHsKICAgIC8qIERXX09QX0dOVV9lbnRyeV92 YWx1ZSByZXNvbHZpbmcgZmFpbGVkLiAgKi8KICAgIE5PX0VOVFJZX1ZBTFVFX0VSUk9SLApAQCAt NzIsMTAgKzcyLDEwIEBAIEluZGV4OiBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi9leGNlcHRpb25z LmgKICAgIC8qIEFkZCBtb3JlIGVycm9ycyBoZXJlLiAgKi8KICAgIE5SX0VSUk9SUwogIH07Ci1J bmRleDogZ2RiLTcuNC41MC4yMDEyMDcwMy9nZGIvZXhlYy5jCitJbmRleDogZ2RiLTcuNC45MS4y MDEyMDgwMS9nZGIvZXhlYy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNC41MC4yMDEyMDcwMy5v cmlnL2dkYi9leGVjLmMJMjAxMi0wNy0wMyAxNzozMDowNy4wMDAwMDAwMDAgKzAyMDAKLSsrKyBn ZGItNy40LjUwLjIwMTIwNzAzL2dkYi9leGVjLmMJMjAxMi0wNy0wMyAxNzozNzoyNy43NzcyMjUx NzUgKzAyMDAKKy0tLSBnZGItNy40LjkxLjIwMTIwODAxLm9yaWcvZ2RiL2V4ZWMuYwkyMDEyLTA4 LTAxIDE4OjM2OjUxLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjQuOTEuMjAxMjA4MDEvZ2Ri L2V4ZWMuYwkyMDEyLTA4LTAxIDE4OjQ0OjM5LjkyODYyNzI4NyArMDIwMAogQEAgLTM0LDYgKzM0 LDcgQEAKICAjaW5jbHVkZSAiZ2RidGhyZWFkLmgiCiAgI2luY2x1ZGUgInByb2dzcGFjZS5oIgpA QCAtODQsNyArODQsNyBAQCBJbmRleDogZ2RiLTcuNC41MC4yMDEyMDcwMy9nZGIvZXhlYy5jCiAg CiAgI2luY2x1ZGUgPGZjbnRsLmg+CiAgI2luY2x1ZGUgInJlYWRsaW5lL3JlYWRsaW5lLmgiCi1A QCAtMjQ1LDEyICsyNDYsMjcgQEAgZXhlY19maWxlX2F0dGFjaCAoY2hhciAqZmlsZW5hbWUsIGlu dCBmcgorQEAgLTI0MiwxMiArMjQzLDI3IEBAIGV4ZWNfZmlsZV9hdHRhY2ggKGNoYXIgKmZpbGVu YW1lLCBpbnQgZnIKICAKICAgICAgICBpZiAoIWJmZF9jaGVja19mb3JtYXRfbWF0Y2hlcyAoZXhl Y19iZmQsIGJmZF9vYmplY3QsICZtYXRjaGluZykpCiAgCXsKQEAgLTExNCwxMSArMTE0LDExIEBA IEluZGV4OiBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi9leGVjLmMKICsJCSAgIGdkYl9iZmRfZXJy bXNnIChiZmRfZ2V0X2Vycm9yICgpLCBtYXRjaGluZykpOwogIAl9CiAgCi0gICAgICAgZ2RiX2Jm ZF9zdGFzaF9maWxlbmFtZSAoZXhlY19iZmQpOwotSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3MDMv Z2RiL21haW4uYworICAgICAgIC8qIEZJWE1FIC0gVGhpcyBzaG91bGQgb25seSBiZSBydW4gZm9y IFJTNjAwMCwgYnV0IHRoZSBpZmRlZiBpcyBhIHBvb3IKK0luZGV4OiBnZGItNy40LjkxLjIwMTIw ODAxL2dkYi9tYWluLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy40LjUwLjIwMTIwNzAzLm9yaWcv Z2RiL21haW4uYwkyMDEyLTA3LTAzIDE3OjMxOjQwLjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03 LjQuNTAuMjAxMjA3MDMvZ2RiL21haW4uYwkyMDEyLTA3LTAzIDE3OjM2OjI3Ljg0MzI5NzI2MSAr MDIwMAorLS0tIGdkYi03LjQuOTEuMjAxMjA4MDEub3JpZy9nZGIvbWFpbi5jCTIwMTItMDgtMDEg MTg6MzY6NTEuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuNC45MS4yMDEyMDgwMS9nZGIvbWFp bi5jCTIwMTItMDgtMDEgMTg6NDM6MzkuODEwOTU5OTcwICswMjAwCiBAQCAtMjY2LDYgKzI2Niwz NiBAQCB0eXBlZGVmIHN0cnVjdCBjbWRhcmcgewogIC8qIERlZmluZSB0eXBlIFZFQyAoY21kYXJn X3MpLiAgKi8KICBERUZfVkVDX08gKGNtZGFyZ19zKTsKQEAgLTE1Niw3ICsxNTYsNyBAQCBJbmRl eDogZ2RiLTcuNC41MC4yMDEyMDcwMy9nZGIvbWFpbi5jCiAgc3RhdGljIGludAogIGNhcHR1cmVk X21haW4gKHZvaWQgKmRhdGEpCiAgewotQEAgLTc2NCw2ICs3OTQsOCBAQCBjYXB0dXJlZF9tYWlu ICh2b2lkICpkYXRhKQorQEAgLTc2Miw2ICs3OTIsOCBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpk YXRhKQogIAl7CiAgCSAgc3ltYXJnID0gYXJndltvcHRpbmRdOwogIAkgIGV4ZWNhcmcgPSBhcmd2 W29wdGluZF07CkBAIC0xNjUsNyArMTY1LDcgQEAgSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3MDMv Z2RiL21haW4uYwogIAkgIG9wdGluZCsrOwogIAl9CiAgCi1AQCAtOTE5LDExICs5NTEsMjUgQEAg Y2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKK0BAIC05MTcsMTEgKzk0OSwyNSBAQCBjYXB0dXJl ZF9tYWluICh2b2lkICpkYXRhKQogICAgICAgICYmIHN5bWFyZyAhPSBOVUxMCiAgICAgICAgJiYg c3RyY21wIChleGVjYXJnLCBzeW1hcmcpID09IDApCiAgICAgIHsKCmRpZmYgLS1naXQgYS9nZGIt Ni42LWJ1aWxkaWQtbG9jYXRlLnBhdGNoIGIvZ2RiLTYuNi1idWlsZGlkLWxvY2F0ZS5wYXRjaApp bmRleCBmYTNhYWNhLi5hZGEzMzEwIDEwMDY0NAotLS0gYS9nZGItNi42LWJ1aWxkaWQtbG9jYXRl LnBhdGNoCisrKyBiL2dkYi02LjYtYnVpbGRpZC1sb2NhdGUucGF0Y2gKQEAgLTEsNyArMSw3IEBA Ci1JbmRleDogZ2RiLTcuNC41MC4yMDEyMDcwMy9nZGIvY29yZWxvdy5jCitJbmRleDogZ2RiLTcu NC45MS4yMDEyMDgwMS9nZGIvY29yZWxvdy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNC41MC4y MDEyMDcwMy5vcmlnL2dkYi9jb3JlbG93LmMJMjAxMi0wNy0wNiAxNTowNDowNC4zNzg0ODc4NjAg KzAyMDAKLSsrKyBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi9jb3JlbG93LmMJMjAxMi0wNy0wNiAx NTozODo0MS4yNzI5MDgxMTMgKzAyMDAKKy0tLSBnZGItNy40LjkxLjIwMTIwODAxLm9yaWcvZ2Ri L2NvcmVsb3cuYwkyMDEyLTA4LTAxIDE4OjM2OjUxLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03 LjQuOTEuMjAxMjA4MDEvZ2RiL2NvcmVsb3cuYwkyMDEyLTA4LTAxIDE4OjM3OjQ0LjU4NDkyNTc1 MCArMDIwMAogQEAgLTQ3LDYgKzQ3LDkgQEAKICAjaW5jbHVkZSAicHJvZ3NwYWNlLmgiCiAgI2lu Y2x1ZGUgIm9iamZpbGVzLmgiCkBAIC02NSw3ICs2NSw3IEBAIEluZGV4OiBnZGItNy40LjUwLjIw MTIwNzAzL2dkYi9jb3JlbG93LmMKICAvKiBUaGlzIHJvdXRpbmUgb3BlbnMgYW5kIHNldHMgdXAg dGhlIGNvcmUgZmlsZSBiZmQuICAqLwogIAogIHN0YXRpYyB2b2lkCi1AQCAtNDIwLDYgKzQ2OSwx NCBAQCBjb3JlX29wZW4gKGNoYXIgKmZpbGVuYW1lLCBpbnQgZnJvbV90dHkpCitAQCAtNDE4LDYg KzQ2NywxNCBAQCBjb3JlX29wZW4gKGNoYXIgKmZpbGVuYW1lLCBpbnQgZnJvbV90dHkpCiAgCXN3 aXRjaF90b190aHJlYWQgKHRocmVhZC0+cHRpZCk7CiAgICAgIH0KICAKQEAgLTgwLDcgKzgwLDcg QEAgSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL2NvcmVsb3cuYwogICAgcG9zdF9jcmVh dGVfaW5mZXJpb3IgKCZjb3JlX29wcywgZnJvbV90dHkpOwogIAogICAgLyogTm93IGdvIHRocm91 Z2ggdGhlIHRhcmdldCBzdGFjayBsb29raW5nIGZvciB0aHJlYWRzIHNpbmNlIHRoZXJlCi1AQCAt OTQxLDQgKzk5OCwxMSBAQCBfaW5pdGlhbGl6ZV9jb3JlbG93ICh2b2lkKQorQEAgLTkzOSw0ICs5 OTYsMTEgQEAgX2luaXRpYWxpemVfY29yZWxvdyAodm9pZCkKICAgIGluaXRfY29yZV9vcHMgKCk7 CiAgCiAgICBhZGRfdGFyZ2V0ICgmY29yZV9vcHMpOwpAQCAtOTIsMTAgKzkyLDEwIEBAIEluZGV4 OiBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi9jb3JlbG93LmMKICsJCQkgICBOVUxMLCBOVUxMLCBO VUxMLAogKwkJCSAgICZzZXRsaXN0LCAmc2hvd2xpc3QpOwogIH0KLUluZGV4OiBnZGItNy40LjUw LjIwMTIwNzAzL2dkYi9kb2MvZ2RiLnRleGluZm8KK0luZGV4OiBnZGItNy40LjkxLjIwMTIwODAx L2dkYi9kb2MvZ2RiLnRleGluZm8KID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy40LjUwLjIwMTIwNzAz Lm9yaWcvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDEyLTA3LTA2IDE1OjA0OjA0LjM3ODQ4Nzg2MCAr MDIwMAotKysrIGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL2RvYy9nZGIudGV4aW5mbwkyMDEyLTA3 LTA2IDE1OjA0OjI2LjA2OTQ2MzMzMCArMDIwMAorLS0tIGdkYi03LjQuOTEuMjAxMjA4MDEub3Jp Zy9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTItMDgtMDEgMTg6MzY6NTEuMDAwMDAwMDAwICswMjAw CisrKysgZ2RiLTcuNC45MS4yMDEyMDgwMS9nZGIvZG9jL2dkYi50ZXhpbmZvCTIwMTItMDgtMDEg MTg6Mzc6NDQuNTk4OTI1NjcyICswMjAwCiBAQCAtMTY1MzAsNiArMTY1MzAsMjcgQEAgaW5mb3Jt YXRpb24gZmlsZXMuCiAgCiAgQGVuZCB0YWJsZQpAQCAtMTI0LDExICsxMjQsMTEgQEAgSW5kZXg6 IGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL2RvYy9nZGIudGV4aW5mbwogIEBjaW5kZXggQGNvZGV7 LmdudV9kZWJ1Z2xpbmt9IHNlY3Rpb25zCiAgQGNpbmRleCBkZWJ1ZyBsaW5rIHNlY3Rpb25zCiAg QSBkZWJ1ZyBsaW5rIGlzIGEgc3BlY2lhbCBzZWN0aW9uIG9mIHRoZSBleGVjdXRhYmxlIGZpbGUg bmFtZWQKLUluZGV4OiBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi9zb2xpYi1zdnI0LmMKK0luZGV4 OiBnZGItNy40LjkxLjIwMTIwODAxL2dkYi9zb2xpYi1zdnI0LmMKID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBn ZGItNy40LjUwLjIwMTIwNzAzLm9yaWcvZ2RiL3NvbGliLXN2cjQuYwkyMDEyLTA3LTA2IDE1OjA0 OjA0LjM3ODQ4Nzg2MCArMDIwMAotKysrIGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL3NvbGliLXN2 cjQuYwkyMDEyLTA3LTA2IDE1OjM4OjQxLjQzMzkwNzkyOCArMDIwMAotQEAgLTEyMjcsOSArMTIy Nyw1MiBAQCBzdnI0X3JlYWRfc29fbGlzdCAoQ09SRV9BRERSIGxtLCBzdHJ1Y3QKKy0tLSBnZGIt Ny40LjkxLjIwMTIwODAxLm9yaWcvZ2RiL3NvbGliLXN2cjQuYwkyMDEyLTA4LTAxIDE4OjM2OjUx LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjQuOTEuMjAxMjA4MDEvZ2RiL3NvbGliLXN2cjQu YwkyMDEyLTA4LTAxIDE4OjM3OjQ0LjU5OTkyNTY2NyArMDIwMAorQEAgLTEyMjgsOSArMTIyOCw1 MiBAQCBzdnI0X3JlYWRfc29fbGlzdCAoQ09SRV9BRERSIGxtLCBzdHJ1Y3QKICAJICBjb250aW51 ZTsKICAJfQogIApAQCAtMTg0LDEwICsxODQsMTAgQEAgSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3 MDMvZ2RiL3NvbGliLXN2cjQuYwogICAgICAgIHhmcmVlIChidWZmZXIpOwogIAogICAgICAgIC8q IElmIHRoaXMgZW50cnkgaGFzIG5vIG5hbWUsIG9yIGl0cyBuYW1lIG1hdGNoZXMgdGhlIG5hbWUK LUluZGV4OiBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi9lbGZyZWFkLmMKK0luZGV4OiBnZGItNy40 LjkxLjIwMTIwODAxL2dkYi9lbGZyZWFkLmMKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy40LjUwLjIw MTIwNzAzLm9yaWcvZ2RiL2VsZnJlYWQuYwkyMDEyLTA3LTA2IDE1OjA0OjA0LjM3ODQ4Nzg2MCAr MDIwMAotKysrIGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL2VsZnJlYWQuYwkyMDEyLTA3LTA2IDE1 OjM4OjQxLjI3MjkwODExMyArMDIwMAorLS0tIGdkYi03LjQuOTEuMjAxMjA4MDEub3JpZy9nZGIv ZWxmcmVhZC5jCTIwMTItMDgtMDEgMTg6MzY6NTEuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcu NC45MS4yMDEyMDgwMS9nZGIvZWxmcmVhZC5jCTIwMTItMDgtMDEgMTg6Mzg6MDguOTU2NzkwODc5 ICswMjAwCiBAQCAtNDUsNiArNDUsMTEgQEAKICAjaW5jbHVkZSAicmVnY2FjaGUuaCIKICAjaW5j bHVkZSAiYmNhY2hlLmgiCkBAIC05MzIsOSArOTMyLDkgQEAgSW5kZXg6IGdkYi03LjQuNTAuMjAx MjA3MDMvZ2RiL2VsZnJlYWQuYwogIAogICAgICAgIGlmIChkZWJ1Z2ZpbGUgPT0gTlVMTCkKICAJ ZGVidWdmaWxlID0gZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlX2J5X2RlYnVnbGluayAob2JqZmls ZSk7Ci1AQCAtMTQ1MCw2ICsyMDUzLDEyIEBAIGVsZl9zeW1maWxlX3JlYWQgKHN0cnVjdCBvYmpm aWxlICpvYmpmaWwKK0BAIC0xNDUyLDYgKzIwNTUsMTIgQEAgZWxmX3N5bWZpbGVfcmVhZCAoc3Ry dWN0IG9iamZpbGUgKm9iamZpbAogIAkgIHN5bWJvbF9maWxlX2FkZF9zZXBhcmF0ZSAoYWJmZCwg c3ltZmlsZV9mbGFncywgb2JqZmlsZSk7Ci0gCSAgeGZyZWUgKGRlYnVnZmlsZSk7CisgCSAgZG9f Y2xlYW51cHMgKGNsZWFudXApOwogIAl9CiArICAgICAgLyogQ2hlY2sgaWYgYW55IHNlcGFyYXRl IGRlYnVnIGluZm8gaGFzIGJlZW4gZXh0cmFjdGVkIG91dC4gICovCiArICAgICAgZWxzZSBpZiAo YmZkX2dldF9zZWN0aW9uX2J5X25hbWUgKG9iamZpbGUtPm9iZmQsICIuZ251X2RlYnVnbGluayIp CkBAIC05NDUsNyArOTQ1LDcgQEAgSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL2VsZnJl YWQuYwogICAgICB9CiAgCiAgICBpZiAoc3ltdGFiX2NyZWF0ZV9kZWJ1ZykKLUBAIC0xNzgyLDQg KzIzOTEsMTYgQEAgX2luaXRpYWxpemVfZWxmcmVhZCAodm9pZCkKK0BAIC0xNzg0LDQgKzIzOTMs MTYgQEAgX2luaXRpYWxpemVfZWxmcmVhZCAodm9pZCkKICAKICAgIGVsZl9vYmpmaWxlX2dudV9p ZnVuY19jYWNoZV9kYXRhID0gcmVnaXN0ZXJfb2JqZmlsZV9kYXRhICgpOwogICAgZ251X2lmdW5j X2Zuc19wID0gJmVsZl9nbnVfaWZ1bmNfZm5zOwpAQCAtOTYyLDEwICs5NjIsMTAgQEAgSW5kZXg6 IGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL2VsZnJlYWQuYwogKwogKyAgb2JzZXJ2ZXJfYXR0YWNo X2V4ZWN1dGFibGVfY2hhbmdlZCAoZGVidWdfcHJpbnRfZXhlY3V0YWJsZV9jaGFuZ2VkKTsKICB9 Ci1JbmRleDogZ2RiLTcuNC41MC4yMDEyMDcwMy9nZGIvc3ltZmlsZS5oCitJbmRleDogZ2RiLTcu NC45MS4yMDEyMDgwMS9nZGIvc3ltZmlsZS5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNC41MC4y MDEyMDcwMy5vcmlnL2dkYi9zeW1maWxlLmgJMjAxMi0wNy0wNiAxNTowNDowNC4zNzg0ODc4NjAg KzAyMDAKLSsrKyBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi9zeW1maWxlLmgJMjAxMi0wNy0wNiAx NTozODo0MS4yNzI5MDgxMTMgKzAyMDAKKy0tLSBnZGItNy40LjkxLjIwMTIwODAxLm9yaWcvZ2Ri L3N5bWZpbGUuaAkyMDEyLTA4LTAxIDE4OjM2OjUxLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03 LjQuOTEuMjAxMjA4MDEvZ2RiL3N5bWZpbGUuaAkyMDEyLTA4LTAxIDE4OjM3OjQ0LjYwMDkyNTY2 MiArMDIwMAogQEAgLTYxNSw2ICs2MTUsMTMgQEAgdm9pZCBmcmVlX3N5bWZpbGVfc2VnbWVudF9k YXRhIChzdHJ1Y3QgcwogIAogIGV4dGVybiBzdHJ1Y3QgY2xlYW51cCAqaW5jcmVtZW50X3JlYWRp bmdfc3ltdGFiICh2b2lkKTsKQEAgLTk4MCwxMCArOTgwLDEwIEBAIEluZGV4OiBnZGItNy40LjUw LjIwMTIwNzAzL2dkYi9zeW1maWxlLmgKICAvKiBGcm9tIGR3YXJmMnJlYWQuYyAqLwogIAogIC8q IE5hbWVzIGZvciBhIGR3YXJmMiBkZWJ1Z2dpbmcgc2VjdGlvbi4gIFRoZSBmaWVsZCBOT1JNQUwg aXMgdGhlIG5vcm1hbAotSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL3Rlc3RzdWl0ZS9s aWIvZ2RiLmV4cAorSW5kZXg6IGdkYi03LjQuOTEuMjAxMjA4MDEvZ2RiL3Rlc3RzdWl0ZS9saWIv Z2RiLmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjQuNTAuMjAxMjA3MDMub3JpZy9nZGIvdGVz dHN1aXRlL2xpYi9nZGIuZXhwCTIwMTItMDctMDYgMTU6MDQ6MDQuMzc4NDg3ODYwICswMjAwCi0r KysgZ2RiLTcuNC41MC4yMDEyMDcwMy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCTIwMTItMDct MDYgMTU6Mzg6NDEuMjcyOTA4MTEzICswMjAwCistLS0gZ2RiLTcuNC45MS4yMDEyMDgwMS5vcmln L2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAJMjAxMi0wOC0wMSAxODozNjo1MS4wMDAwMDAwMDAg KzAyMDAKKysrKyBnZGItNy40LjkxLjIwMTIwODAxL2dkYi90ZXN0c3VpdGUvbGliL2dkYi5leHAJ MjAxMi0wOC0wMSAxODozNzo0NC42MDE5MjU2NTYgKzAyMDAKIEBAIC0xMzg4LDYgKzEzODgsMTYg QEAgcHJvYyBkZWZhdWx0X2dkYl9zdGFydCB7IH0gewogIAkgICAgd2FybmluZyAiQ291bGRuJ3Qg c2V0IHRoZSB3aWR0aCB0byAwLiIKICAJfQpAQCAtMTAwMSwxMCArMTAwMSwxMCBAQCBJbmRleDog Z2RiLTcuNC41MC4yMDEyMDcwMy9nZGIvdGVzdHN1aXRlL2xpYi9nZGIuZXhwCiAgICAgIHJldHVy biAwOwogIH0KICAKLUluZGV4OiBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi90ZXN0c3VpdGUvbGli L21pLXN1cHBvcnQuZXhwCitJbmRleDogZ2RiLTcuNC45MS4yMDEyMDgwMS9nZGIvdGVzdHN1aXRl L2xpYi9taS1zdXBwb3J0LmV4cAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjQuNTAuMjAxMjA3MDMu b3JpZy9nZGIvdGVzdHN1aXRlL2xpYi9taS1zdXBwb3J0LmV4cAkyMDEyLTA3LTA2IDE1OjA0OjA0 LjM3ODQ4Nzg2MCArMDIwMAotKysrIGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL3Rlc3RzdWl0ZS9s aWIvbWktc3VwcG9ydC5leHAJMjAxMi0wNy0wNiAxNTozODo0MS4yNzI5MDgxMTMgKzAyMDAKKy0t LSBnZGItNy40LjkxLjIwMTIwODAxLm9yaWcvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5l eHAJMjAxMi0wNy0yNSAyMjozNTozMC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy40LjkxLjIw MTIwODAxL2dkYi90ZXN0c3VpdGUvbGliL21pLXN1cHBvcnQuZXhwCTIwMTItMDgtMDEgMTg6Mzc6 NDQuNjAxOTI1NjU2ICswMjAwCiBAQCAtMjEzLDYgKzIxMywxNiBAQCBwcm9jIGRlZmF1bHRfbWlf Z2RiX3N0YXJ0IHsgYXJncyB9IHsKICAJICAgIHdhcm5pbmcgIkNvdWxkbid0IHNldCB0aGUgd2lk dGggdG8gMC4iCiAgCX0KQEAgLTEwMjIsMTAgKzEwMjIsMTAgQEAgSW5kZXg6IGdkYi03LjQuNTAu MjAxMjA3MDMvZ2RiL3Rlc3RzdWl0ZS9saWIvbWktc3VwcG9ydC5leHAKICAgICAgIyBJZiBhbGxv d2luZyB0aGUgaW5mZXJpb3IgdG8gaGF2ZSBpdHMgb3duIFBUWSB0aGVuIGFzc2lnbiB0aGUgaW5m ZXJpb3IKICAgICAgIyBpdHMgb3duIHRlcm1pbmFsIGRldmljZSBoZXJlLgogICAgICBpZiB7ICRz ZXBhcmF0ZV9pbmZlcmlvcl9wdHkgfSB7Ci1JbmRleDogZ2RiLTcuNC41MC4yMDEyMDcwMy9nZGIv b2JqZmlsZXMuaAorSW5kZXg6IGdkYi03LjQuOTEuMjAxMjA4MDEvZ2RiL29iamZpbGVzLmgKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy40LjUwLjIwMTIwNzAzLm9yaWcvZ2RiL29iamZpbGVzLmgJMjAx Mi0wNy0wNiAxNTowNDowNC4zNzg0ODc4NjAgKzAyMDAKLSsrKyBnZGItNy40LjUwLjIwMTIwNzAz L2dkYi9vYmpmaWxlcy5oCTIwMTItMDctMDYgMTU6MDQ6MjYuMDczNDYzMzI0ICswMjAwCistLS0g Z2RiLTcuNC45MS4yMDEyMDgwMS5vcmlnL2dkYi9vYmpmaWxlcy5oCTIwMTItMDgtMDEgMTg6MzY6 NTEuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuNC45MS4yMDEyMDgwMS9nZGIvb2JqZmlsZXMu aAkyMDEyLTA4LTAxIDE4OjM3OjQ0LjYwMTkyNTY1NiArMDIwMAogQEAgLTQzMiw2ICs0MzIsMTAg QEAgc3RydWN0IG9iamZpbGUKICAKICAjZGVmaW5lIE9CSkZfTUFJTkxJTkUgKDEgPDwgNSkKQEAg LTEwMzcsMTAgKzEwMzcsMTAgQEAgSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL29iamZp bGVzLmgKICAvKiBUaGUgb2JqZWN0IGZpbGUgdGhhdCBjb250YWlucyB0aGUgcnVudGltZSBjb21t b24gbWluaW1hbCBzeW1ib2xzCiAgICAgZm9yIFN1bk9TNC4gIE5vdGUgdGhhdCB0aGlzIG9iamZp bGUgaGFzIG5vIGFzc29jaWF0ZWQgQkZELiAgKi8KICAKLUluZGV4OiBnZGItNy40LjUwLjIwMTIw NzAzL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2UvY29yZWZpbGUuZXhwCitJbmRleDogZ2RiLTcuNC45 MS4yMDEyMDgwMS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2NvcmVmaWxlLmV4cAogPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0tIGdkYi03LjQuNTAuMjAxMjA3MDMub3JpZy9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL2Nv cmVmaWxlLmV4cAkyMDEyLTA2LTIxIDIyOjQ2OjIxLjAwMDAwMDAwMCArMDIwMAotKysrIGdkYi03 LjQuNTAuMjAxMjA3MDMvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jb3JlZmlsZS5leHAJMjAxMi0w Ny0wNiAxNTozOTo0MS42MDE4Mzg2MzMgKzAyMDAKKy0tLSBnZGItNy40LjkxLjIwMTIwODAxLm9y aWcvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9jb3JlZmlsZS5leHAJMjAxMi0wNi0yMSAyMjo0Njoy MS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy40LjkxLjIwMTIwODAxL2dkYi90ZXN0c3VpdGUv Z2RiLmJhc2UvY29yZWZpbGUuZXhwCTIwMTItMDgtMDEgMTg6Mzc6NDQuNjAyOTI1NjUwICswMjAw CiBAQCAtMjU2LDMgKzI1NiwzMyBAQCBpZiAhW2lzX3JlbW90ZSB0YXJnZXRdIHsKICAKICAgICAg Z2RiX2V4aXQKCmRpZmYgLS1naXQgYS9nZGItYXJjaGVyLnBhdGNoIGIvZ2RiLWFyY2hlci5wYXRj aAppbmRleCAzNTMxZWUwLi44MGUzY2YyIDEwMDY0NAotLS0gYS9nZGItYXJjaGVyLnBhdGNoCisr KyBiL2dkYi1hcmNoZXIucGF0Y2gKQEAgLTIsMTIgKzIsMTIgQEAgaHR0cDovL3NvdXJjZXdhcmUu b3JnL2dkYi93aWtpL1Byb2plY3RBcmNoZXIKIGh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9nZGIvd2lr aS9BcmNoZXJCcmFuY2hNYW5hZ2VtZW50CiAKIEdJVCBzbmFwc2hvdDoKLWNvbW1pdCA4MTRkYjll ZTg3ZThkNjA5Y2U2MDMyNDc2MGNmODBjZDRlNGVjNDNhCitjb21taXQgODk3Njg2YzBhZWRiN2E2 ZGE1OWI4MjNmMjJiMWQyNGVjNWExZDJiYQogCiBicmFuY2ggYGFyY2hlcicgLSB0aGUgbWVyZ2Ug b2YgYnJhbmNoZXM6CiBhcmNoZXItamFua3JhdG9jaHZpbC12bGEKIGFyY2hlci10cm9tZXktcHl0 aG9uCi1hcmNoZXItdHJvbWV5LWR3ei1tdWx0aWZpbGUtcmViYXNlCithcmNoZXItdHJvbWV5LWR3 ei1tdWx0aWZpbGUtcmViYXNlIChidXQgZnJvbSBwb3N0LTcuNSBGU0YgR0RCIGNvbW1pdHMpCiAK IAogZGlmZiAtLWdpdCBhL2dkYi9NYWtlZmlsZS5pbiBiL2dkYi9NYWtlZmlsZS5pbgpAQCAtNTQs NiArNTQsMjQgQEAgaW5kZXggYTQxY2ZmOS4uZDc3ODZhNiAxMDA2NDQKICBjb25maWcuc3RhdHVz OiAkKHNyY2RpcikvY29uZmlndXJlIGNvbmZpZ3VyZS50Z3QgY29uZmlndXJlLmhvc3QKICAJJChT SEVMTCkgY29uZmlnLnN0YXR1cyAtLXJlY2hlY2sKICAKK2RpZmYgLS1naXQgYS9nZGIvTkVXUyBi L2dkYi9ORVdTCitpbmRleCBiMjgxODI0Li40ZGE4ODZjIDEwMDY0NAorLS0tIGEvZ2RiL05FV1MK KysrKyBiL2dkYi9ORVdTCitAQCAtMSw2ICsxLDEzIEBACisgCQlXaGF0IGhhcyBjaGFuZ2VkIGlu IEdEQj8KKyAJICAgICAoT3JnYW5pemVkIHJlbGVhc2UgYnkgcmVsZWFzZSkKKyAKKysqKiogQ2hh bmdlcyBzaW5jZSBHREIgNy41CisrCisrKiBOZXcgY29tbWFuZHMgKGZvciBzZXQvc2hvdywgc2Vl ICJOZXcgb3B0aW9ucyIgYmVsb3cpCisrCisrbWFpbnQgaW5mbyBiZmRzCisrICBMaXN0IHRoZSBC RkRzIGtub3duIHRvIEdEQi4KKysKKyAqKiogQ2hhbmdlcyBpbiBHREIgNy41CisgCisgKiBHREIg bm93IHN1cHBvcnRzIHgzMiBBQkkuICBWaXNpdCA8aHR0cDovL3NpdGVzLmdvb2dsZS5jb20vc2l0 ZS94MzJhYmkvPgogZGlmZiAtLWdpdCBhL2dkYi9hZGEtbGFuZy5jIGIvZ2RiL2FkYS1sYW5nLmMK IGluZGV4IGFhMDkwYWYuLmU2NzI3MzEgMTAwNjQ0CiAtLS0gYS9nZGIvYWRhLWxhbmcuYwpAQCAt ODUsNyArMTAzLDcgQEAgaW5kZXggYWEwOTBhZi4uZTY3MjczMSAxMDA2NDQKICAgICAgcmV0dXJu IDE7CiAgCiBkaWZmIC0tZ2l0IGEvZ2RiL2JmZC10YXJnZXQuYyBiL2dkYi9iZmQtdGFyZ2V0LmMK LWluZGV4IDY3Mjg4MDAuLjIxZjUzYmIgMTAwNjQ0CitpbmRleCA2NzI4ODAwLi40NTVkM2U2IDEw MDY0NAogLS0tIGEvZ2RiL2JmZC10YXJnZXQuYwogKysrIGIvZ2RiL2JmZC10YXJnZXQuYwogQEAg LTIxLDYgKzIxLDcgQEAKQEAgLTEwNSwxNSArMTIzLDMxIEBAIGluZGV4IDY3Mjg4MDAuLjIxZjUz YmIgMTAwNjQ0CiAgICB4ZnJlZSAoZGF0YS0+dGFibGUuc2VjdGlvbnMpOwogICAgeGZyZWUgKGRh dGEpOwogICAgeGZyZWUgKHQpOwotQEAgLTgzLDcgKzg0LDcgQEAgdGFyZ2V0X2JmZF9yZW9wZW4g KHN0cnVjdCBiZmQgKmFiZmQpCi0gICBzdHJ1Y3QgdGFyZ2V0X2JmZF9kYXRhICpkYXRhOworQEAg LTg0LDYgKzg1LDcgQEAgdGFyZ2V0X2JmZF9yZW9wZW4gKHN0cnVjdCBiZmQgKmFiZmQpCiAgCiAg ICBkYXRhID0gWFpBTExPQyAoc3RydWN0IHRhcmdldF9iZmRfZGF0YSk7Ci0tICBkYXRhLT5iZmQg PSBhYmZkOwotKyAgZGF0YS0+YmZkID0gZ2RiX2JmZF9yZWYgKGFiZmQpOworICAgZGF0YS0+YmZk ID0gYWJmZDsKKysgIGdkYl9iZmRfcmVmIChhYmZkKTsKICAgIGJ1aWxkX3NlY3Rpb25fdGFibGUg KGFiZmQsICZkYXRhLT50YWJsZS5zZWN0aW9ucywgJmRhdGEtPnRhYmxlLnNlY3Rpb25zX2VuZCk7 CiAgCiAgICB0ID0gWFpBTExPQyAoc3RydWN0IHRhcmdldF9vcHMpOworZGlmZiAtLWdpdCBhL2dk Yi9iZmQtdGFyZ2V0LmggYi9nZGIvYmZkLXRhcmdldC5oCitpbmRleCA3MTAwMWM1Li43ZjRlNjI4 IDEwMDY0NAorLS0tIGEvZ2RiL2JmZC10YXJnZXQuaAorKysrIGIvZ2RiL2JmZC10YXJnZXQuaAor QEAgLTIzLDkgKzIzLDkgQEAKKyBzdHJ1Y3QgYmZkOworIHN0cnVjdCB0YXJnZXRfb3BzOworIAor LS8qIEdpdmVuIGFuIGV4aXN0aW5nIEJGRCwgcmUtb3BlbiBpdCBhcyBhICJzdHJ1Y3QgdGFyZ2V0 X29wcyIuICBPbgorLSAgIGNsb3NlLCBpdCB3aWxsIGFsc28gY2xvc2UgdGhlIGNvcnJlc3BvbmRp bmcgQkZEICh3aGljaCBpcyBsaWtlCistICAgZnJlb3BlbiBhbmQgZmRvcGVuKS4gICovCisrLyog R2l2ZW4gYW4gZXhpc3RpbmcgQkZELCByZS1vcGVuIGl0IGFzIGEgInN0cnVjdCB0YXJnZXRfb3Bz Ii4gIFRoaXMKKysgICBhY3F1aXJlcyBhIG5ldyByZWZlcmVuY2UgdG8gdGhlIEJGRC4gIFRoaXMg cmVmZXJlbmNlIHdpbGwgYmUKKysgICByZWxlYXNlZCB3aGVuIHRoZSB0YXJnZXQgaXMgY2xvc2Vk LiAgKi8KKyBzdHJ1Y3QgdGFyZ2V0X29wcyAqdGFyZ2V0X2JmZF9yZW9wZW4gKHN0cnVjdCBiZmQg KmJmZCk7CisgCisgI2VuZGlmCiBkaWZmIC0tZ2l0IGEvZ2RiL2Jsb2NrLmMgYi9nZGIvYmxvY2su YwogaW5kZXggYTBmODJlYy4uMDk3ZGJmNiAxMDA2NDQKIC0tLSBhL2dkYi9ibG9jay5jCkBAIC0x NTIsMTAgKzE4NiwxMCBAQCBpbmRleCA5OWM0Nzg4Li42Y2ViNzA0IDEwMDY0NAogKwogICNlbmRp ZiAvKiBCTE9DS19IICovCiBkaWZmIC0tZ2l0IGEvZ2RiL2JyZWFrcG9pbnQuYyBiL2dkYi9icmVh a3BvaW50LmMKLWluZGV4IDZiOWZhZjMuLjQzZmYxNmEgMTAwNjQ0CitpbmRleCA3OGZmZmQzLi4y MjRiYTQ5IDEwMDY0NAogLS0tIGEvZ2RiL2JyZWFrcG9pbnQuYwogKysrIGIvZ2RiL2JyZWFrcG9p bnQuYwotQEAgLTE1NTA4LDYgKzE1NTA4LDI0IEBAIGFsbF90cmFjZXBvaW50cyAodm9pZCkKK0BA IC0xNTUxOSw2ICsxNTUxOSwyNCBAQCBhbGxfdHJhY2Vwb2ludHMgKHZvaWQpCiAgICByZXR1cm4g dHBfdmVjOwogIH0KICAKQEAgLTE4MCw3ICsyMTQsNyBAQCBpbmRleCA2YjlmYWYzLi40M2ZmMTZh IDEwMDY0NAogIAwKICAvKiBUaGlzIGhlbHAgc3RyaW5nIGlzIHVzZWQgZm9yIHRoZSBicmVhaywg aGJyZWFrLCB0YnJlYWsgYW5kIHRoYnJlYWsKICAgICBjb21tYW5kcy4gIEl0IGlzIGRlZmluZWQg YXMgYSBtYWNybyB0byBwcmV2ZW50IGR1cGxpY2F0aW9uLgotQEAgLTE2NDczLDQgKzE2NDkxLDcg QEAgYWdlbnQtcHJpbnRmIFwicHJpbnRmIGZvcm1hdCBzdHJpbmdcIiwgYXJnMSwgYXJnMiwgYXJn MywgLi4uLCBhcmduXG5cCitAQCAtMTY0ODQsNCArMTY1MDIsNyBAQCBhZ2VudC1wcmludGYgXCJw cmludGYgZm9ybWF0IHN0cmluZ1wiLCBhcmcxLCBhcmcyLCBhcmczLCAuLi4sIGFyZ25cblwKICAg IGF1dG9tYXRpY19oYXJkd2FyZV9icmVha3BvaW50cyA9IDE7CiAgCiAgICBvYnNlcnZlcl9hdHRh Y2hfYWJvdXRfdG9fcHJvY2VlZCAoYnJlYWtwb2ludF9hYm91dF90b19wcm9jZWVkKTsKQEAgLTE4 OSwxMCArMjIzLDE4IEBAIGluZGV4IDZiOWZhZjMuLjQzZmYxNmEgMTAwNjQ0CiArI2VuZGlmCiAg fQogZGlmZiAtLWdpdCBhL2dkYi9idWlsZHN5bS5jIGIvZ2RiL2J1aWxkc3ltLmMKLWluZGV4IGQ1 NDcwMTIuLmUyZjMxOTIgMTAwNjQ0CitpbmRleCBkNTQ3MDEyLi5lNDg4MmZiIDEwMDY0NAogLS0t IGEvZ2RiL2J1aWxkc3ltLmMKICsrKyBiL2dkYi9idWlsZHN5bS5jCi1AQCAtOTcwLDcgKzk3MCw3 IEBAIHJlc2V0X3N5bXRhYl9nbG9iYWxzICh2b2lkKQorQEAgLTk2NiwxMSArOTY2LDE0IEBAIHJl c2V0X3N5bXRhYl9nbG9iYWxzICh2b2lkKQorICAgIGZpbGUncyB0ZXh0LgorIAorICAgIElmIEVY UEFOREFCTEUgaXMgbm9uLXplcm8gdGhlIFNUQVRJQ19CTE9DSyBkaWN0aW9uYXJ5IGlzIG1hZGUK Ky0gICBleHBhbmRhYmxlLiAgKi8KKysgICBleHBhbmRhYmxlLgorKworKyAgIElmIFJFUVVJUkVE IGlzIG5vbi16ZXJvLCB0aGVuIGEgc3ltdGFiIGlzIGNyZWF0ZWQgZXZlbiBpZiBpdCBkb2VzCisr ICAgbm90IGNvbnRhaW4gYW55IHN5bWJvbHMuICAqLwogIAogIHN0cnVjdCBibG9jayAqCiAgZW5k X3N5bXRhYl9nZXRfc3RhdGljX2Jsb2NrIChDT1JFX0FERFIgZW5kX2FkZHIsIHN0cnVjdCBvYmpm aWxlICpvYmpmaWxlLApAQCAtMjAxLDcgKzI0Myw3IEBAIGluZGV4IGQ1NDcwMTIuLmUyZjMxOTIg MTAwNjQ0CiAgewogICAgLyogRmluaXNoIHRoZSBsZXhpY2FsIGNvbnRleHQgb2YgdGhlIGxhc3Qg ZnVuY3Rpb24gaW4gdGhlIGZpbGU7IHBvcAogICAgICAgdGhlIGNvbnRleHQgc3RhY2suICAqLwot QEAgLTEwMzgsNyArMTAzOCw4IEBAIGVuZF9zeW10YWJfZ2V0X3N0YXRpY19ibG9jayAoQ09SRV9B RERSIGVuZF9hZGRyLCBzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKK0BAIC0xMDM4LDcgKzEwNDEs OCBAQCBlbmRfc3ltdGFiX2dldF9zdGF0aWNfYmxvY2sgKENPUkVfQUREUiBlbmRfYWRkciwgc3Ry dWN0IG9iamZpbGUgKm9iamZpbGUsCiAgICBjbGVhbnVwX3VuZGVmaW5lZF9zdGFic190eXBlcyAo b2JqZmlsZSk7CiAgICBmaW5pc2hfZ2xvYmFsX3N0YWJzIChvYmpmaWxlKTsKICAKQEAgLTIxMSw3 ICsyNTMsNyBAQCBpbmRleCBkNTQ3MDEyLi5lMmYzMTkyIDEwMDY0NAogICAgICAgICYmIGZpbGVf c3ltYm9scyA9PSBOVUxMCiAgICAgICAgJiYgZ2xvYmFsX3N5bWJvbHMgPT0gTlVMTAogICAgICAg ICYmIGhhdmVfbGluZV9udW1iZXJzID09IDAKLUBAIC0xMjk2LDcgKzEyOTcsNyBAQCBlbmRfc3lt dGFiIChDT1JFX0FERFIgZW5kX2FkZHIsIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBpbnQgc2Vj dGlvbikKK0BAIC0xMjk2LDcgKzEzMDAsNyBAQCBlbmRfc3ltdGFiIChDT1JFX0FERFIgZW5kX2Fk ZHIsIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBpbnQgc2VjdGlvbikKICB7CiAgICBzdHJ1Y3Qg YmxvY2sgKnN0YXRpY19ibG9jazsKICAKQEAgLTIyMCw3ICsyNjIsNyBAQCBpbmRleCBkNTQ3MDEy Li5lMmYzMTkyIDEwMDY0NAogICAgcmV0dXJuIGVuZF9zeW10YWJfZnJvbV9zdGF0aWNfYmxvY2sg KHN0YXRpY19ibG9jaywgb2JqZmlsZSwgc2VjdGlvbiwgMCk7CiAgfQogIAotQEAgLTEzMDgsNyAr MTMwOSw3IEBAIGVuZF9leHBhbmRhYmxlX3N5bXRhYiAoQ09SRV9BRERSIGVuZF9hZGRyLCBzdHJ1 Y3Qgb2JqZmlsZSAqb2JqZmlsZSwKK0BAIC0xMzA4LDcgKzEzMTIsNyBAQCBlbmRfZXhwYW5kYWJs ZV9zeW10YWIgKENPUkVfQUREUiBlbmRfYWRkciwgc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCiAg ewogICAgc3RydWN0IGJsb2NrICpzdGF0aWNfYmxvY2s7CiAgCkBAIC0yMzAsMTUgKzI3MiwxNiBA QCBpbmRleCBkNTQ3MDEyLi5lMmYzMTkyIDEwMDY0NAogIH0KICAKIGRpZmYgLS1naXQgYS9nZGIv YnVpbGRzeW0uaCBiL2dkYi9idWlsZHN5bS5oCi1pbmRleCAxNjJlZThjLi4yYzFkMTc5IDEwMDY0 NAoraW5kZXggMTYyZWU4Yy4uMzNiMzRjOCAxMDA2NDQKIC0tLSBhL2dkYi9idWlsZHN5bS5oCiAr KysgYi9nZGIvYnVpbGRzeW0uaAotQEAgLTI2MCw3ICsyNjAsNyBAQCBleHRlcm4gY2hhciAqcG9w X3N1YmZpbGUgKHZvaWQpOworQEAgLTI2MCw3ICsyNjAsOCBAQCBleHRlcm4gY2hhciAqcG9wX3N1 YmZpbGUgKHZvaWQpOwogIAogIGV4dGVybiBzdHJ1Y3QgYmxvY2sgKmVuZF9zeW10YWJfZ2V0X3N0 YXRpY19ibG9jayAoQ09SRV9BRERSIGVuZF9hZGRyLAogIAkJCQkJCSAgc3RydWN0IG9iamZpbGUg Km9iamZpbGUsCiAtCQkJCQkJICBpbnQgZXhwYW5kYWJsZSk7Ci0rCQkJCQkJICBpbnQgZXhwYW5k YWJsZSwgaW50IHJlcXVpcmVkKTsKKysJCQkJCQkgIGludCBleHBhbmRhYmxlLAorKwkJCQkJCSAg aW50IHJlcXVpcmVkKTsKICAKICBleHRlcm4gc3RydWN0IHN5bXRhYiAqZW5kX3N5bXRhYl9mcm9t X3N0YXRpY19ibG9jayAoc3RydWN0IGJsb2NrICpzdGF0aWNfYmxvY2ssCiAgCQkJCQkJICAgIHN0 cnVjdCBvYmpmaWxlICpvYmpmaWxlLApAQCAtNDgzLDcgKzUyNiw3IEBAIGluZGV4IDY0NGJhMzQu LjAwMDAwMDAKIC1ybSAtZiAiJGluZGV4X2ZpbGUiCiAtZXhpdCAkcmMKIGRpZmYgLS1naXQgYS9n ZGIvY2xpL2NsaS1kdW1wLmMgYi9nZGIvY2xpL2NsaS1kdW1wLmMKLWluZGV4IDRhOGI1ZDEuLjEy NDQ3NjcgMTAwNjQ0CitpbmRleCA0YThiNWQxLi43MzQxZjAwIDEwMDY0NAogLS0tIGEvZ2RiL2Ns aS9jbGktZHVtcC5jCiArKysgYi9nZGIvY2xpL2NsaS1kdW1wLmMKIEBAIC0zMiw2ICszMiw3IEBA CkBAIC00OTksNyArNTQyLDcgQEAgaW5kZXggNGE4YjVkMS4uMTI0NDc2NyAxMDA2NDQKICAgIGJm ZCAqaWJmZDsKICAKIC0gIGliZmQgPSBiZmRfb3BlbnIgKGZpbGVuYW1lLCB0YXJnZXQpOwotKyAg aWJmZCA9IGdkYl9iZmRfcmVmIChiZmRfb3BlbnIgKGZpbGVuYW1lLCB0YXJnZXQpKTsKKysgIGli ZmQgPSBnZGJfYmZkX29wZW5yIChmaWxlbmFtZSwgdGFyZ2V0KTsKICAgIGlmIChpYmZkID09IE5V TEwpCiAgICAgIGVycm9yIChfKCJGYWlsZWQgdG8gb3BlbiAlczogJXMuIiksIGZpbGVuYW1lLCAK ICAJICAgYmZkX2Vycm1zZyAoYmZkX2dldF9lcnJvciAoKSkpOwpAQCAtNTE0LDcgKzU1Nyw3IEBA IGluZGV4IDRhOGI1ZDEuLjEyNDQ3NjcgMTAwNjQ0CiAgICBpZiAoKm1vZGUgPT0gJ3cnKQkvKiBX cml0ZTogY3JlYXRlIG5ldyBmaWxlICovCiAgICAgIHsKIC0gICAgICBvYmZkID0gYmZkX29wZW53 IChmaWxlbmFtZSwgdGFyZ2V0KTsKLSsgICAgICBvYmZkID0gZ2RiX2JmZF9yZWYgKGJmZF9vcGVu dyAoZmlsZW5hbWUsIHRhcmdldCkpOworKyAgICAgIG9iZmQgPSBnZGJfYmZkX29wZW53IChmaWxl bmFtZSwgdGFyZ2V0KTsKICAgICAgICBpZiAob2JmZCA9PSBOVUxMKQogIAllcnJvciAoXygiRmFp bGVkIHRvIG9wZW4gJXM6ICVzLiIpLCBmaWxlbmFtZSwgCiAgCSAgICAgICBiZmRfZXJybXNnIChi ZmRfZ2V0X2Vycm9yICgpKSk7CkBAIC01MjMsOSArNTY2LDI5IEBAIGluZGV4IDRhOGI1ZDEuLjEy NDQ3NjcgMTAwNjQ0CiAgICAgICAgaWYgKCFiZmRfc2V0X2Zvcm1hdCAob2JmZCwgYmZkX29iamVj dCkpCiAgCWVycm9yIChfKCJiZmRfb3Blbndfd2l0aF9jbGVhbnVwOiAlcy4iKSwgYmZkX2Vycm1z ZyAoYmZkX2dldF9lcnJvciAoKSkpOwogICAgICB9CitkaWZmIC0tZ2l0IGEvZ2RiL2NvZmZyZWFk LmMgYi9nZGIvY29mZnJlYWQuYworaW5kZXggYjBhOGI4Mi4uMGM3ZTZkOSAxMDA2NDQKKy0tLSBh L2dkYi9jb2ZmcmVhZC5jCisrKysgYi9nZGIvY29mZnJlYWQuYworQEAgLTY1MywxMyArNjUzLDE0 IEBAIGNvZmZfc3ltZmlsZV9yZWFkIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgaW50IHN5bWZp bGVfZmxhZ3MpCisgICAgICAgY2hhciAqZGVidWdmaWxlOworIAorICAgICAgIGRlYnVnZmlsZSA9 IGZpbmRfc2VwYXJhdGVfZGVidWdfZmlsZV9ieV9kZWJ1Z2xpbmsgKG9iamZpbGUpOworKyAgICAg IG1ha2VfY2xlYW51cCAoeGZyZWUsIGRlYnVnZmlsZSk7CisgCisgICAgICAgaWYgKGRlYnVnZmls ZSkKKyAJeworIAkgIGJmZCAqYWJmZCA9IHN5bWZpbGVfYmZkX29wZW4gKGRlYnVnZmlsZSk7Cisg CisrCSAgbWFrZV9jbGVhbnVwX2JmZF91bnJlZiAoYWJmZCk7CisgCSAgc3ltYm9sX2ZpbGVfYWRk X3NlcGFyYXRlIChhYmZkLCBzeW1maWxlX2ZsYWdzLCBvYmpmaWxlKTsKKy0JICB4ZnJlZSAoZGVi dWdmaWxlKTsKKyAJfQorICAgICB9CisgCiBkaWZmIC0tZ2l0IGEvZ2RiL2NvbnRyaWIvY2Mtd2l0 aC10d2Vha3Muc2ggYi9nZGIvY29udHJpYi9jYy13aXRoLXR3ZWFrcy5zaAogbmV3IGZpbGUgbW9k ZSAxMDA3NTUKLWluZGV4IDAwMDAwMDAuLjkyNzBkYjQKK2luZGV4IDAwMDAwMDAuLjdkNzkzMmMK IC0tLSAvZGV2L251bGwKICsrKyBiL2dkYi9jb250cmliL2NjLXdpdGgtdHdlYWtzLnNoCiBAQCAt MCwwICsxLDE2MiBAQApAQCAtNTU3LDggKzYyMCw4IEBAIGluZGV4IDAwMDAwMDAuLjkyNzBkYjQK ICsjCiArIyBiYXNoJCBjZCAkb2JqZGlyL2dkYi90ZXN0c3VpdGUKICsjIGJhc2gkIHJ1bnRlc3Qg XAotKyMgICBDQ19GT1JfVEFSR0VUPSIvYmluL3NoICRzcmNkaXIvY2Mtd2l0aC10d2Vha3Muc2gg QVJHUyBnY2MiIFwKLSsjICAgQ1hYX0ZPUl9UQVJHRVQ9Ii9iaW4vc2ggJHNyY2Rpci9jYy13aXRo LXR3ZWFrcy5zaCBBUkdTIGcrKyIKKysjICAgQ0NfRk9SX1RBUkdFVD0iL2Jpbi9zaCAkc3JjZGly L2dkYi9jb250cmliL2NjLXdpdGgtdHdlYWtzLnNoIEFSR1MgZ2NjIiBcCisrIyAgIENYWF9GT1Jf VEFSR0VUPSIvYmluL3NoICRzcmNkaXIvZ2RiL2NvbnRyaWIvY2Mtd2l0aC10d2Vha3Muc2ggQVJH UyBnKysiCiArIwogKyMgRm9yIGRvY3VtZW50YXRpb24gb24gaW5kZXggZmlsZXM6IGluZm8gLWYg Z2RiLmluZm8gLW4gIkluZGV4IEZpbGVzIgogKyMgRm9yIGluZm9ybWF0aW9uIGFib3V0ICdkd3on LCBzZWUgdGhlIGFubm91bmNlbWVudDoKQEAgLTY5Miw3ICs3NTUsNyBAQCBpbmRleCAwMDAwMDAw Li45MjcwZGI0CiArcm0gLWYgIiRpbmRleF9maWxlIgogK2V4aXQgJHJjCiBkaWZmIC0tZ2l0IGEv Z2RiL2NvcmVsb3cuYyBiL2dkYi9jb3JlbG93LmMKLWluZGV4IGRkNjI1NjAuLjM4MGMwZGMgMTAw NjQ0CitpbmRleCBkZDYyNTYwLi4zNDBiMTQ5IDEwMDY0NAogLS0tIGEvZ2RiL2NvcmVsb3cuYwog KysrIGIvZ2RiL2NvcmVsb3cuYwogQEAgLTQ2LDYgKzQ2LDcgQEAKQEAgLTcxNCwyNSArNzc3LDIw IEBAIGluZGV4IGRkNjI1NjAuLjM4MGMwZGMgMTAwNjQ0CiAgICAgICAgY29yZV9iZmQgPSBOVUxM OwogICAgICB9CiAgICBjb3JlX3ZlYyA9IE5VTEw7Ci1AQCAtMzE5LDEyICszMTgsMTQgQEAgY29y ZV9vcGVuIChjaGFyICpmaWxlbmFtZSwgaW50IGZyb21fdHR5KQorQEAgLTMxOSw5ICszMTgsOSBA QCBjb3JlX29wZW4gKGNoYXIgKmZpbGVuYW1lLCBpbnQgZnJvbV90dHkpCiAgICBpZiAoc2NyYXRj aF9jaGFuIDwgMCkKICAgICAgcGVycm9yX3dpdGhfbmFtZSAoZmlsZW5hbWUpOwogIAogLSAgdGVt cF9iZmQgPSBiZmRfZm9wZW4gKGZpbGVuYW1lLCBnbnV0YXJnZXQsIAogLQkJCXdyaXRlX2ZpbGVz ID8gRk9QRU5fUlVCIDogRk9QRU5fUkIsCiAtCQkJc2NyYXRjaF9jaGFuKTsKLSsgIHRlbXBfYmZk ID0gZ2RiX2JmZF9yZWYgKGJmZF9mb3BlbiAoZmlsZW5hbWUsIGdudXRhcmdldCwgCi0rCQkJCSAg ICAgd3JpdGVfZmlsZXMgPyBGT1BFTl9SVUIgOiBGT1BFTl9SQiwKLSsJCQkJICAgICBzY3JhdGNo X2NoYW4pKTsKKysgIHRlbXBfYmZkID0gZ2RiX2JmZF9mb3BlbiAoZmlsZW5hbWUsIGdudXRhcmdl dCwgCisrCQkJICAgIHdyaXRlX2ZpbGVzID8gRk9QRU5fUlVCIDogRk9QRU5fUkIsCisrCQkJICAg IHNjcmF0Y2hfY2hhbik7CiAgICBpZiAodGVtcF9iZmQgPT0gTlVMTCkKICAgICAgcGVycm9yX3dp dGhfbmFtZSAoZmlsZW5hbWUpOwogIAotKyAgZ2RiX2JmZF9zdGFzaF9maWxlbmFtZSAodGVtcF9i ZmQpOwotKwotICAgaWYgKCFiZmRfY2hlY2tfZm9ybWF0ICh0ZW1wX2JmZCwgYmZkX2NvcmUpCi0g ICAgICAgJiYgIWdkYl9jaGVja19mb3JtYXQgKHRlbXBfYmZkKSkKLSAgICAgewotQEAgLTMzMiw3 ICszMzMsNyBAQCBjb3JlX29wZW4gKGNoYXIgKmZpbGVuYW1lLCBpbnQgZnJvbV90dHkpCitAQCAt MzMyLDcgKzMzMSw3IEBAIGNvcmVfb3BlbiAoY2hhciAqZmlsZW5hbWUsIGludCBmcm9tX3R0eSkK ICAgICAgICAvKiBGSVhNRTogc2hvdWxkIGJlIGNoZWNraW5nIGZvciBlcnJvcnMgZnJvbSBiZmRf Y2xvc2UgKGZvciBvbmUKICAgICAgICAgICB0aGluZywgb24gZXJyb3IgaXQgZG9lcyBub3QgZnJl ZSBhbGwgdGhlIHN0b3JhZ2UgYXNzb2NpYXRlZAogICAgICAgICAgIHdpdGggdGhlIGJmZCkuICAq LwpAQCAtNzQxLDcgKzc5OSw3IEBAIGluZGV4IGRkNjI1NjAuLjM4MGMwZGMgMTAwNjQ0CiAgICAg ICAgZXJyb3IgKF8oIlwiJXNcIiBpcyBub3QgYSBjb3JlIGR1bXA6ICVzIiksCiAgCSAgICAgZmls ZW5hbWUsIGJmZF9lcnJtc2cgKGJmZF9nZXRfZXJyb3IgKCkpKTsKICAgICAgfQotQEAgLTM0MCw3 ICszNDEsNyBAQCBjb3JlX29wZW4gKGNoYXIgKmZpbGVuYW1lLCBpbnQgZnJvbV90dHkpCitAQCAt MzQwLDcgKzMzOSw3IEBAIGNvcmVfb3BlbiAoY2hhciAqZmlsZW5hbWUsIGludCBmcm9tX3R0eSkK ICAgIC8qIExvb2tzIHNlbWktcmVhc29uYWJsZS4gIFRvc3MgdGhlIG9sZCBjb3JlIGZpbGUgYW5k IHdvcmsgb24gdGhlCiAgICAgICBuZXcuICAqLwogIApAQCAtODA3LDcgKzg2NSw3IEBAIGluZGV4 IDFjNmZhNzkuLmVjMDgzNDggMTAwNjQ0CiAgZXh0ZXJuIGNoYXIgKnhmdWxscGF0aCAoY29uc3Qg Y2hhciAqKTsKICAKIGRpZmYgLS1naXQgYS9nZGIvZG9jL2dkYi50ZXhpbmZvIGIvZ2RiL2RvYy9n ZGIudGV4aW5mbwotaW5kZXggYTkyZGY4Ni4uMjlhNjJhZCAxMDA2NDQKK2luZGV4IDY4ZWE4MTcu LjU5NDViYWMgMTAwNjQ0CiAtLS0gYS9nZGIvZG9jL2dkYi50ZXhpbmZvCiArKysgYi9nZGIvZG9j L2dkYi50ZXhpbmZvCiBAQCAtMTIwMCw2ICsxMjAwLDE2IEBAIGZvciByZW1vdGUgZGVidWdnaW5n LgpAQCAtODI3LDcgKzg4NSw3IEBAIGluZGV4IGE5MmRmODYuLjI5YTYyYWQgMTAwNjQ0CiAgQGMg cmVzb2x2ZSB0aGUgc2l0dWF0aW9uIG9mIHRoZXNlIGV2ZW50dWFsbHkKICBAaXRlbSAtdHVpCiAg QGNpbmRleCBAY29kZXstLXR1aX0KLUBAIC0yMjU0OCw4ICsyMjU1OCw2IEBAIGNvbnRhaW5pbmcg QGNvZGV7ZW5kfS4gIEZvciBleGFtcGxlOgorQEAgLTIyNTYzLDggKzIyNTczLDYgQEAgY29udGFp bmluZyBAY29kZXtlbmR9LiAgRm9yIGV4YW1wbGU6CiAgCiAgQHNtYWxsZXhhbXBsZQogIChAdmFs dWV7R0RCUH0pIHB5dGhvbgpAQCAtODM2LDcgKzg5NCw3IEBAIGluZGV4IGE5MmRmODYuLjI5YTYy YWQgMTAwNjQ0CiAgPnByaW50IDIzCiAgPmVuZAogIDIzCi1AQCAtMjI1NjMsNiArMjI1NzEsMTQg QEAgY29udHJvbGxlZCB1c2luZyBAY29kZXtzZXQgcHl0aG9uIHByaW50LXN0YWNrfTogaWYgQGNv ZGV7ZnVsbH0sIHRoZW4KK0BAIC0yMjU3OCw2ICsyMjU4NiwxNCBAQCBjb250cm9sbGVkIHVzaW5n IEBjb2Rle3NldCBweXRob24gcHJpbnQtc3RhY2t9OiBpZiBAY29kZXtmdWxsfSwgdGhlbgogIGZ1 bGwgUHl0aG9uIHN0YWNrIHByaW50aW5nIGlzIGVuYWJsZWQ7IGlmIEBjb2Rle25vbmV9LCB0aGVu IFB5dGhvbiBzdGFjawogIGFuZCBtZXNzYWdlIHByaW50aW5nIGlzIGRpc2FibGVkOyBpZiBAY29k ZXttZXNzYWdlfSwgdGhlIGRlZmF1bHQsIG9ubHkKICB0aGUgbWVzc2FnZSBjb21wb25lbnQgb2Yg dGhlIGVycm9yIGlzIHByaW50ZWQuCkBAIC04NTEsNyArOTA5LDcgQEAgaW5kZXggYTkyZGY4Ni4u MjlhNjJhZCAxMDA2NDQKICBAZW5kIHRhYmxlCiAgCiAgSXQgaXMgYWxzbyBwb3NzaWJsZSB0byBl eGVjdXRlIGEgUHl0aG9uIHNjcmlwdCBmcm9tIHRoZSBAdmFsdWV7R0RCTn0KLUBAIC0yMjU4NCw2 ICsyMjYwMCwxNCBAQCBhbmQgdGh1cyBpcyBhbHdheXMgYXZhaWxhYmxlLgorQEAgLTIyNTk5LDYg KzIyNjE1LDE0IEBAIGFuZCB0aHVzIGlzIGFsd2F5cyBhdmFpbGFibGUuCiAgQGNpbmRleCBweXRo b24gYXBpCiAgQGNpbmRleCBwcm9ncmFtbWluZyBpbiBweXRob24KICAKQEAgLTg2Niw2ICs5MjQs MTggQEAgaW5kZXggYTkyZGY4Ni4uMjlhNjJhZCAxMDA2NDQKICBAY2luZGV4IHB5dGhvbiBzdGRv dXQKICBAY2luZGV4IHB5dGhvbiBwYWdpbmF0aW9uCiAgQXQgc3RhcnR1cCwgQHZhbHVle0dEQk59 IG92ZXJyaWRlcyBQeXRob24ncyBAY29kZXtzeXMuc3Rkb3V0fSBhbmQKK0BAIC0zNDUzNiw2ICsz NDU2MCwxMSBAQCBTaGFyZWQgbGlicmFyeSBldmVudHMuCisgCisgQGVuZCB0YWJsZQorIAorK0Br aW5kZXggbWFpbnQgaW5mbyBiZmRzCisrQGl0ZW0gbWFpbnQgaW5mbyBiZmRzCisrVGhpcyBwcmlu dHMgaW5mb3JtYXRpb24gYWJvdXQgZWFjaCBAY29kZXtiZmR9IG9iamVjdCB0aGF0IGlzIGtub3du IHRvCisrQHZhbHVle0dEQk59LiAgQHhyZWZ7VG9wLCAsIEJGRCwgYmZkLCBUaGUgQmluYXJ5IEZp bGUgRGVzY3JpcHRvciBMaWJyYXJ5fS4KKysKKyBAa2luZGV4IHNldCBkaXNwbGFjZWQtc3RlcHBp bmcKKyBAa2luZGV4IHNob3cgZGlzcGxhY2VkLXN0ZXBwaW5nCisgQGNpbmRleCBkaXNwbGFjZWQg c3RlcHBpbmcgc3VwcG9ydAogZGlmZiAtLWdpdCBhL2dkYi9kb2MvZ2RiaW50LnRleGluZm8gYi9n ZGIvZG9jL2dkYmludC50ZXhpbmZvCiBpbmRleCA1ZTAwZjFmLi5jNWM0MzJiIDEwMDY0NAogLS0t IGEvZ2RiL2RvYy9nZGJpbnQudGV4aW5mbwpAQCAtMTAxMiw3ICsxMDgyLDcgQEAgaW5kZXggNjgy N2VkOC4uYzYzYjkwMSAxMDA2NDQKICBUaGlzIG9ic2VydmVyIGlzIHVzZWQgZm9yIGludGVybmFs IHRlc3RpbmcuICBEbyBub3QgdXNlLiAgCiAgU2VlIHRlc3RzdWl0ZS9nZGIuZ2RiL29ic2VydmVy LmV4cC4KIGRpZmYgLS1naXQgYS9nZGIvZHNyZWMuYyBiL2dkYi9kc3JlYy5jCi1pbmRleCBkMmM5 OWIyLi42NmQ0YzEzIDEwMDY0NAoraW5kZXggZDJjOTliMi4uZjM5ZDBlZCAxMDA2NDQKIC0tLSBh L2dkYi9kc3JlYy5jCiArKysgYi9nZGIvZHNyZWMuYwogQEAgLTIzLDYgKzIzLDcgQEAKQEAgLTEw MzIsNyArMTEwMiw3IEBAIGluZGV4IGQyYzk5YjIuLjY2ZDRjMTMgMTAwNjQ0CiAgICBzcmVjID0g KGNoYXIgKikgYWxsb2NhIChtYXhyZWNzaXplICsgMSk7CiAgCiAtICBhYmZkID0gYmZkX29wZW5y IChmaWxlLCAwKTsKLSsgIGFiZmQgPSBnZGJfYmZkX3JlZiAoYmZkX29wZW5yIChmaWxlLCAwKSk7 CisrICBhYmZkID0gZ2RiX2JmZF9vcGVuciAoZmlsZSwgMCk7CiAgICBpZiAoIWFiZmQpCiAgICAg IHsKICAgICAgICBwcmludGZfZmlsdGVyZWQgKF8oIlVuYWJsZSB0byBvcGVuIGZpbGUgJXNcbiIp LCBmaWxlKTsKQEAgLTE1MDMsNyArMTU3Myw3IEBAIGluZGV4IGU5ZDA2YTMuLmJmYTY3NzYgMTAw NjQ0CiAgLyogQ29tcGlsZSBhIERXQVJGIGxvY2F0aW9uIGV4cHJlc3Npb24gdG8gYW4gYWdlbnQg ZXhwcmVzc2lvbi4KICAgICAKIGRpZmYgLS1naXQgYS9nZGIvZHdhcmYycmVhZC5jIGIvZ2RiL2R3 YXJmMnJlYWQuYwotaW5kZXggMWQ1MWRiMi4uZmU1NjcwOSAxMDA2NDQKK2luZGV4IGRlZWU1YTIu LmIyZjA1MmIgMTAwNjQ0CiAtLS0gYS9nZGIvZHdhcmYycmVhZC5jCiArKysgYi9nZGIvZHdhcmYy cmVhZC5jCiBAQCAtNjQsMjAgKzY0LDEyIEBACkBAIC0xNTMwLDcgKzE2MDAsNyBAQCBpbmRleCAx ZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogIERFRl9WRUNfUCAoc3ltYm9scCk7CiBAQCAtOTUsOCAr ODcsNiBAQCBzdGF0aWMgaW50IGNoZWNrX3BoeXNuYW1lID0gMDsKICAvKiBXaGVuIG5vbi16ZXJv LCBkbyBub3QgcmVqZWN0IGRlcHJlY2F0ZWQgLmdkYl9pbmRleCBzZWN0aW9ucy4gICovCi0gaW50 IHVzZV9kZXByZWNhdGVkX2luZGV4X3NlY3Rpb25zID0gMDsKKyBzdGF0aWMgaW50IHVzZV9kZXBy ZWNhdGVkX2luZGV4X3NlY3Rpb25zID0gMDsKICAKIC1zdGF0aWMgaW50IHBhZ2VzaXplOwogLQpA QCAtMTU4Nyw3ICsxNjU3LDcgQEAgaW5kZXggMWQ1MWRiMi4uZmU1NjcwOSAxMDA2NDQKICAgIC8q IFRoZSBzZWN0aW9uIHRoaXMgQ1UvVFUgbGl2ZXMgaW4uCiAgICAgICBJZiB0aGUgRElFIHJlZmVy cyB0byBhIERXTyBmaWxlLCB0aGlzIGlzIGFsd2F5cyB0aGUgb3JpZ2luYWwgZGllLAogICAgICAg bm90IHRoZSBEV08gZmlsZS4gICovCi1AQCAtNjk1LDYgKzY4NiwyMiBAQCBzdHJ1Y3QgZHdvX2Zp bGUKK0BAIC03MTUsNiArNzA2LDIyIEBAIHN0cnVjdCBkd29fZmlsZQogICAgaHRhYl90IHR1czsK ICB9OwogIApAQCAtMTYxMCw3ICsxNjgwLDcgQEAgaW5kZXggMWQ1MWRiMi4uZmU1NjcwOSAxMDA2 NDQKICAvKiBTdHJ1Y3QgdXNlZCB0byBwYXNzIG1pc2MuIHBhcmFtZXRlcnMgdG8gcmVhZF9kaWVf YW5kX2NoaWxkcmVuLCBldAogICAgIGFsLiAgd2hpY2ggYXJlIHVzZWQgZm9yIGJvdGggLmRlYnVn X2luZm8gYW5kIC5kZWJ1Z190eXBlcyBkaWVzLgogICAgIEFsbCBwYXJhbWV0ZXJzIGhlcmUgYXJl IHVuY2hhbmdpbmcgZm9yIHRoZSBsaWZlIG9mIHRoZSBjYWxsLiAgVGhpcwotQEAgLTgwOCw2ICs4 MTUsMTIgQEAgc3RydWN0IHBhcnRpYWxfZGllX2luZm8KK0BAIC04MjgsNiArODM1LDEyIEBAIHN0 cnVjdCBwYXJ0aWFsX2RpZV9pbmZvCiAgICAgIC8qIEZsYWcgc2V0IGlmIGZpeHVwX3BhcnRpYWxf ZGllIGhhcyBiZWVuIGNhbGxlZCBvbiB0aGlzIGRpZS4gICovCiAgICAgIHVuc2lnbmVkIGludCBm aXh1cF9jYWxsZWQgOiAxOwogIApAQCAtMTYyMyw3ICsxNjkzLDcgQEAgaW5kZXggMWQ1MWRiMi4u ZmU1NjcwOSAxMDA2NDQKICAgICAgLyogVGhlIG5hbWUgb2YgdGhpcyBESUUuICBOb3JtYWxseSB0 aGUgdmFsdWUgb2YgRFdfQVRfbmFtZSwgYnV0CiAgICAgICAgIHNvbWV0aW1lcyBhIGRlZmF1bHQg bmFtZSBmb3IgdW5uYW1lZCBESUVzLiAgKi8KICAgICAgY2hhciAqbmFtZTsKLUBAIC0xMTkzLDcg KzEyMDYsNyBAQCBzdGF0aWMgZ2RiX2J5dGUgKnJlYWRfcGFydGlhbF9kaWUgKGNvbnN0IHN0cnVj dCBkaWVfcmVhZGVyX3NwZWNzICosCitAQCAtMTIxMyw3ICsxMjI2LDcgQEAgc3RhdGljIGdkYl9i eXRlICpyZWFkX3BhcnRpYWxfZGllIChjb25zdCBzdHJ1Y3QgZGllX3JlYWRlcl9zcGVjcyAqLAog IAkJCQkgICB1bnNpZ25lZCBpbnQsCiAgCQkJCSAgIGdkYl9ieXRlICopOwogIApAQCAtMTYzMiw3 ICsxNzAyLDcgQEAgaW5kZXggMWQ1MWRiMi4uZmU1NjcwOSAxMDA2NDQKICAJCQkJCQkgIHN0cnVj dCBkd2FyZjJfY3UgKik7CiAgCiAgc3RhdGljIHZvaWQgZml4dXBfcGFydGlhbF9kaWUgKHN0cnVj dCBwYXJ0aWFsX2RpZV9pbmZvICosCi1AQCAtMTIzOCw2ICsxMjUxLDggQEAgc3RhdGljIGNoYXIg KnJlYWRfaW5kaXJlY3Rfc3RyaW5nIChiZmQgKiwgZ2RiX2J5dGUgKiwKK0BAIC0xMjU4LDYgKzEy NzEsOCBAQCBzdGF0aWMgY2hhciAqcmVhZF9pbmRpcmVjdF9zdHJpbmcgKGJmZCAqLCBnZGJfYnl0 ZSAqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGNv bXBfdW5pdF9oZWFkICosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp Z25lZCBpbnQgKik7CiAgCkBAIC0xNjQxLDcgKzE3MTEsNyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2 NzA5IDEwMDY0NAogIHN0YXRpYyBVTE9OR0VTVCByZWFkX3Vuc2lnbmVkX2xlYjEyOCAoYmZkICos IGdkYl9ieXRlICosIHVuc2lnbmVkIGludCAqKTsKICAKICBzdGF0aWMgTE9OR0VTVCByZWFkX3Np Z25lZF9sZWIxMjggKGJmZCAqLCBnZGJfYnl0ZSAqLCB1bnNpZ25lZCBpbnQgKik7Ci1AQCAtMTQ4 OSw2ICsxNTA0LDkgQEAgc3RhdGljIHZvaWQgZmlsbF9pbl9sb2NsaXN0X2JhdG9uIChzdHJ1Y3Qg ZHdhcmYyX2N1ICpjdSwKK0BAIC0xNTA5LDYgKzE1MjQsOSBAQCBzdGF0aWMgdm9pZCBmaWxsX2lu X2xvY2xpc3RfYmF0b24gKHN0cnVjdCBkd2FyZjJfY3UgKmN1LAogIAkJCQkgICBzdHJ1Y3QgZHdh cmYyX2xvY2xpc3RfYmF0b24gKmJhdG9uLAogIAkJCQkgICBzdHJ1Y3QgYXR0cmlidXRlICphdHRy KTsKICAKQEAgLTE2NTEsNyArMTcyMSw3IEBAIGluZGV4IDFkNTFkYjIuLmZlNTY3MDkgMTAwNjQ0 CiAgc3RhdGljIHZvaWQgZHdhcmYyX3N5bWJvbF9tYXJrX2NvbXB1dGVkIChzdHJ1Y3QgYXR0cmli dXRlICphdHRyLAogIAkJCQkJIHN0cnVjdCBzeW1ib2wgKnN5bSwKICAJCQkJCSBzdHJ1Y3QgZHdh cmYyX2N1ICpjdSk7Ci1AQCAtMTUwNCw3ICsxNTIyLDcgQEAgc3RhdGljIGhhc2h2YWxfdCBwYXJ0 aWFsX2RpZV9oYXNoIChjb25zdCB2b2lkICppdGVtKTsKK0BAIC0xNTI0LDcgKzE1NDIsNyBAQCBz dGF0aWMgaGFzaHZhbF90IHBhcnRpYWxfZGllX2hhc2ggKGNvbnN0IHZvaWQgKml0ZW0pOwogIHN0 YXRpYyBpbnQgcGFydGlhbF9kaWVfZXEgKGNvbnN0IHZvaWQgKml0ZW1fbGhzLCBjb25zdCB2b2lk ICppdGVtX3Jocyk7CiAgCiAgc3RhdGljIHN0cnVjdCBkd2FyZjJfcGVyX2N1X2RhdGEgKmR3YXJm Ml9maW5kX2NvbnRhaW5pbmdfY29tcF91bml0CkBAIC0xNjYwLDcgKzE3MzAsNyBAQCBpbmRleCAx ZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogIAogIHN0YXRpYyB2b2lkIGluaXRfb25lX2NvbXBfdW5p dCAoc3RydWN0IGR3YXJmMl9jdSAqY3UsCiAgCQkJCXN0cnVjdCBkd2FyZjJfcGVyX2N1X2RhdGEg KnBlcl9jdSk7Ci1AQCAtMTUyMSw2ICsxNTM5LDkgQEAgc3RhdGljIHZvaWQgYWdlX2NhY2hlZF9j b21wX3VuaXRzICh2b2lkKTsKK0BAIC0xNTQxLDYgKzE1NTksOSBAQCBzdGF0aWMgdm9pZCBhZ2Vf Y2FjaGVkX2NvbXBfdW5pdHMgKHZvaWQpOwogIAogIHN0YXRpYyB2b2lkIGZyZWVfb25lX2NhY2hl ZF9jb21wX3VuaXQgKHN0cnVjdCBkd2FyZjJfcGVyX2N1X2RhdGEgKik7CiAgCkBAIC0xNjcwLDcg KzE3NDAsNyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogIHN0YXRpYyBzdHJ1Y3Qg dHlwZSAqc2V0X2RpZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKiwgc3RydWN0IHR5cGUgKiwKICAJ CQkJICBzdHJ1Y3QgZHdhcmYyX2N1ICopOwogIAotQEAgLTE1NDksNiArMTU3MCw5IEBAIHN0YXRp YyBzdHJ1Y3QgdHlwZSAqZ2V0X2RpZV90eXBlX2F0X29mZnNldCAoc2VjdF9vZmZzZXQsCitAQCAt MTU2OSw2ICsxNTkwLDkgQEAgc3RhdGljIHN0cnVjdCB0eXBlICpnZXRfZGllX3R5cGVfYXRfb2Zm c2V0IChzZWN0X29mZnNldCwKICAKICBzdGF0aWMgc3RydWN0IHR5cGUgKmdldF9kaWVfdHlwZSAo c3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KTsKICAKQEAgLTE2ODAs NyArMTc1MCw3IEBAIGluZGV4IDFkNTFkYjIuLmZlNTY3MDkgMTAwNjQ0CiAgc3RhdGljIHZvaWQg ZHdhcmYyX3JlbGVhc2VfcXVldWUgKHZvaWQgKmR1bW15KTsKICAKICBzdGF0aWMgdm9pZCBxdWV1 ZV9jb21wX3VuaXQgKHN0cnVjdCBkd2FyZjJfcGVyX2N1X2RhdGEgKnBlcl9jdSwKLUBAIC0xNTY3 LDYgKzE1OTEsMTIgQEAgc3RhdGljIHZvaWQgZmluZF9maWxlX2FuZF9kaXJlY3RvcnkgKHN0cnVj dCBkaWVfaW5mbyAqZGllLAorQEAgLTE1ODcsNiArMTYxMSwxMiBAQCBzdGF0aWMgdm9pZCBmaW5k X2ZpbGVfYW5kX2RpcmVjdG9yeSAoc3RydWN0IGRpZV9pbmZvICpkaWUsCiAgc3RhdGljIGNoYXIg KmZpbGVfZnVsbF9uYW1lIChpbnQgZmlsZSwgc3RydWN0IGxpbmVfaGVhZGVyICpsaCwKICAJCQkg ICAgIGNvbnN0IGNoYXIgKmNvbXBfZGlyKTsKICAKQEAgLTE2OTMsNyArMTc2Myw3IEBAIGluZGV4 IDFkNTFkYjIuLmZlNTY3MDkgMTAwNjQ0CiAgc3RhdGljIHZvaWQgaW5pdF9jdXR1X2FuZF9yZWFk X2RpZXMKICAgIChzdHJ1Y3QgZHdhcmYyX3Blcl9jdV9kYXRhICp0aGlzX2N1LCBzdHJ1Y3QgYWJi cmV2X3RhYmxlICphYmJyZXZfdGFibGUsCiAgICAgaW50IHVzZV9leGlzdGluZ19jdSwgaW50IGtl ZXAsCi1AQCAtMTU4OCw4ICsxNjE4LDYgQEAgc3RhdGljIHN0cnVjdCBkd29fdW5pdCAqbG9va3Vw X2R3b190eXBlX3VuaXQKK0BAIC0xNjA4LDggKzE2MzgsNiBAQCBzdGF0aWMgc3RydWN0IGR3b191 bml0ICpsb29rdXBfZHdvX3R5cGVfdW5pdAogIAogIHN0YXRpYyB2b2lkIGZyZWVfZHdvX2ZpbGVf Y2xlYW51cCAodm9pZCAqKTsKICAKQEAgLTE3MDIsNyArMTc3Miw3IEBAIGluZGV4IDFkNTFkYjIu LmZlNTY3MDkgMTAwNjQ0CiAgc3RhdGljIHZvaWQgcHJvY2Vzc19jdV9pbmNsdWRlcyAodm9pZCk7 CiAgCiAgI2lmIFdPUkRTX0JJR0VORElBTgotQEAgLTE3NTksODUgKzE3ODcsNiBAQCBkd2FyZjJf bG9jYXRlX3NlY3Rpb25zIChiZmQgKmFiZmQsIGFzZWN0aW9uICpzZWN0cCwgdm9pZCAqdm5hbWVz KQorQEAgLTE3NzksODUgKzE4MDcsNiBAQCBkd2FyZjJfbG9jYXRlX3NlY3Rpb25zIChiZmQgKmFi ZmQsIGFzZWN0aW9uICpzZWN0cCwgdm9pZCAqdm5hbWVzKQogICAgICBkd2FyZjJfcGVyX29iamZp bGUtPmhhc19zZWN0aW9uX2F0X3plcm8gPSAxOwogIH0KICAKQEAgLTE3ODgsNyArMTg1OCw3IEBA IGluZGV4IDFkNTFkYjIuLmZlNTY3MDkgMTAwNjQ0CiAgLyogQSBoZWxwZXIgZnVuY3Rpb24gdGhh dCBkZWNpZGVzIHdoZXRoZXIgYSBzZWN0aW9uIGlzIGVtcHR5LAogICAgIG9yIG5vdCBwcmVzZW50 LiAgKi8KICAKLUBAIC0xODY0LDU2ICsxODEzLDI3IEBAIGR3YXJmMl9yZWFkX3NlY3Rpb24gKHN0 cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBzdHJ1Y3QgZHdhcmYyX3NlY3Rpb25faW5mbyAqaW5mbykK K0BAIC0xODg0LDU2ICsxODMzLDI3IEBAIGR3YXJmMl9yZWFkX3NlY3Rpb24gKHN0cnVjdCBvYmpm aWxlICpvYmpmaWxlLCBzdHJ1Y3QgZHdhcmYyX3NlY3Rpb25faW5mbyAqaW5mbykKICAgIGlmIChp bmZvLT5yZWFkaW4pCiAgICAgIHJldHVybjsKICAgIGluZm8tPmJ1ZmZlciA9IE5VTEw7CkBAIC0x ODU1LDcgKzE5MjUsNyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogIAogICAgLyog V2hlbiBkZWJ1Z2dpbmcgLm8gZmlsZXMsIHdlIG1heSBuZWVkIHRvIGFwcGx5IHJlbG9jYXRpb25z OyBzZWUKICAgICAgIGh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGItcGF0Y2hlcy8yMDAyLTA0 L21zZzAwMTM2Lmh0bWwgLgotQEAgLTE5ODksNiArMTkwOSwxMTEgQEAgZHdhcmYyX2dldF9zZWN0 aW9uX2luZm8gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAorQEAgLTIwMDksNiArMTkyOSwxMTEg QEAgZHdhcmYyX2dldF9zZWN0aW9uX2luZm8gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLAogICAg KnNpemVwID0gaW5mby0+c2l6ZTsKICB9CiAgCkBAIC0xOTY3LDcgKzIwMzcsNyBAQCBpbmRleCAx ZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogIAwKICAvKiBEV0FSRiBxdWlja19zeW1ib2xzX2Z1bmN0 aW9ucyBzdXBwb3J0LiAgKi8KICAKLUBAIC0yMjM3LDIzICsyMjYyLDE5IEBAIGV4dHJhY3RfY3Vf dmFsdWUgKGNvbnN0IGNoYXIgKmJ5dGVzLCBVTE9OR0VTVCAqcmVzdWx0KQorQEAgLTIyNzksMjMg KzIzMDQsMTkgQEAgZXh0cmFjdF9jdV92YWx1ZSAoY29uc3QgY2hhciAqYnl0ZXMsIFVMT05HRVNU ICpyZXN1bHQpCiAgICByZXR1cm4gMTsKICB9CiAgCkBAIC0xOTk5LDcgKzIwNjksNyBAQCBpbmRl eCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogICAgICB7CiAgICAgICAgc3RydWN0IGR3YXJmMl9w ZXJfY3VfZGF0YSAqdGhlX2N1OwogICAgICAgIFVMT05HRVNUIG9mZnNldCwgbGVuZ3RoOwotQEAg LTIyNjgsMTUgKzIyODksNDUgQEAgY3JlYXRlX2N1c19mcm9tX2luZGV4IChzdHJ1Y3Qgb2JqZmls ZSAqb2JqZmlsZSwgY29uc3QgZ2RiX2J5dGUgKmN1X2xpc3QsCitAQCAtMjMxMCwxNSArMjMzMSw0 NSBAQCBjcmVhdGVfY3VzX2Zyb21faW5kZXggKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBjb25z dCBnZGJfYnl0ZSAqY3VfbGlzdCwKICAgICAgICB0aGVfY3UtPm9mZnNldC5zZWN0X29mZiA9IG9m ZnNldDsKICAgICAgICB0aGVfY3UtPmxlbmd0aCA9IGxlbmd0aDsKICAgICAgICB0aGVfY3UtPm9i amZpbGUgPSBvYmpmaWxlOwpAQCAtMjA0Nyw3ICsyMTE3LDcgQEAgaW5kZXggMWQ1MWRiMi4uZmU1 NjcwOSAxMDA2NDQKICAvKiBDcmVhdGUgdGhlIHNpZ25hdHVyZWQgdHlwZSBoYXNoIHRhYmxlIGZy b20gdGhlIGluZGV4LiAgKi8KICAKICBzdGF0aWMgaW50Ci1AQCAtMjQ2NiwzMyArMjUxNyw0NCBA QCBmaW5kX3Nsb3RfaW5fbWFwcGVkX2hhc2ggKHN0cnVjdCBtYXBwZWRfaW5kZXggKmluZGV4LCBj b25zdCBjaGFyICpuYW1lLAorQEAgLTI1MDgsMzMgKzI1NTksNDQgQEAgZmluZF9zbG90X2luX21h cHBlZF9oYXNoIChzdHJ1Y3QgbWFwcGVkX2luZGV4ICppbmRleCwgY29uc3QgY2hhciAqbmFtZSwK ICAgICAgfQogIH0KICAKQEAgLTIxMDUsNyArMjE3NSw3IEBAIGluZGV4IDFkNTFkYjIuLmZlNTY3 MDkgMTAwNjQ0CiAgICAvKiBWZXJzaW9uIGNoZWNrLiAgKi8KICAgIHZlcnNpb24gPSBNQVlCRV9T V0FQICgqKG9mZnNldF90eXBlICopIGFkZHIpOwogICAgLyogVmVyc2lvbnMgZWFybGllciB0aGFu IDMgZW1pdHRlZCBldmVyeSBjb3B5IG9mIGEgcHN5bWJvbC4gIFRoaXMKLUBAIC0yNTA1LDcgKzI1 NjcsNyBAQCBkd2FyZjJfcmVhZF9pbmRleCAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCitAQCAt MjU0Nyw3ICsyNjA5LDcgQEAgZHdhcmYyX3JlYWRfaW5kZXggKHN0cnVjdCBvYmpmaWxlICpvYmpm aWxlKQogICAgICAgIGlmICghd2FybmluZ19wcmludGVkKQogIAl7CiAgCSAgd2FybmluZyAoXygi U2tpcHBpbmcgb2Jzb2xldGUgLmdkYl9pbmRleCBzZWN0aW9uIGluICVzLiIpLApAQCAtMjExNCwy NCArMjE4NCwyNSBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogIAkgIHdhcm5pbmdf cHJpbnRlZCA9IDE7CiAgCX0KICAgICAgICByZXR1cm4gMDsKLUBAIC0yNTE4LDE0ICsyNTgwLDE0 IEBAIGR3YXJmMl9yZWFkX2luZGV4IChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSkKK0BAIC0yNTYw LDcgKzI2MjIsNyBAQCBkd2FyZjJfcmVhZF9pbmRleCAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUp CiAgICAgICBzZXQgYnJlYWtwb2ludHMgb24gaW5saW5lZCBmdW5jdGlvbnMgYnkgbmFtZSwgc28g d2UgaWdub3JlIHRoZXNlCi0gICAgICBpbmRpY2VzIHVubGVzcyB0aGUgLS11c2UtZGVwcmVjYXRl ZC1pbmRleC1zZWN0aW9ucyBjb21tYW5kIGxpbmUKLSAgICAgIG9wdGlvbiB3YXMgc3VwcGxpZWQu ICAqLworICAgICAgaW5kaWNlcyB1bmxlc3MgdGhlIHVzZXIgaGFzIGRvbmUKKyAgICAgICJzZXQg dXNlLWRlcHJlY2F0ZWQtaW5kZXgtc2VjdGlvbnMgb24iLiAgKi8KIC0gIGlmICh2ZXJzaW9uIDwg NiAmJiAhdXNlX2RlcHJlY2F0ZWRfaW5kZXhfc2VjdGlvbnMpCiArICBpZiAodmVyc2lvbiA8IDYg JiYgIWRlcHJlY2F0ZWRfb2spCiAgICAgIHsKICAgICAgICBzdGF0aWMgaW50IHdhcm5pbmdfcHJp bnRlZCA9IDA7CiAgICAgICAgaWYgKCF3YXJuaW5nX3ByaW50ZWQpCi0gCXsKLSAJICB3YXJuaW5n IChfKCJTa2lwcGluZyBkZXByZWNhdGVkIC5nZGJfaW5kZXggc2VjdGlvbiBpbiAlcywgcGFzcyAi Ci0gCQkgICAgICItLXVzZS1kZXByZWNhdGVkLWluZGV4LXNlY3Rpb25zIHRvIHVzZSB0aGVtIGFu eXdheSIpLAorQEAgLTI1NjksNyArMjYzMSw3IEBAIGR3YXJmMl9yZWFkX2luZGV4IChzdHJ1Y3Qg b2JqZmlsZSAqb2JqZmlsZSkKKyBTa2lwcGluZyBkZXByZWNhdGVkIC5nZGJfaW5kZXggc2VjdGlv biBpbiAlcy5cblwKKyBEbyBcInNldCB1c2UtZGVwcmVjYXRlZC1pbmRleC1zZWN0aW9ucyBvblwi IGJlZm9yZSB0aGUgZmlsZSBpcyByZWFkXG5cCisgdG8gdXNlIHRoZSBzZWN0aW9uIGFueXdheS4i KSwKIC0JCSAgIG9iamZpbGUtPm5hbWUpOwogKwkJICAgZmlsZW5hbWUpOwogIAkgIHdhcm5pbmdf cHJpbnRlZCA9IDE7CiAgCX0KICAgICAgICByZXR1cm4gMDsKLUBAIC0yNTM1LDIyICsyNTk3LDIx IEBAIGR3YXJmMl9yZWFkX2luZGV4IChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSkKK0BAIC0yNTc5 LDIyICsyNjQxLDIxIEBAIHRvIHVzZSB0aGUgc2VjdGlvbiBhbnl3YXkuIiksCiAgICBpZiAodmVy c2lvbiA+IDcpCiAgICAgIHJldHVybiAwOwogIApAQCAtMjE2Miw3ICsyMjMzLDcgQEAgaW5kZXgg MWQ1MWRiMi4uZmU1NjcwOSAxMDA2NDQKICAgICsraTsKICAKICAgIG1hcC0+YWRkcmVzc190YWJs ZSA9IGFkZHIgKyBNQVlCRV9TV0FQIChtZXRhZGF0YVtpXSk7Ci1AQCAtMjU2NiwxMSArMjYyNyw1 NSBAQCBkd2FyZjJfcmVhZF9pbmRleCAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCitAQCAtMjYx MCwxMSArMjY3MSw1NSBAQCB0byB1c2UgdGhlIHNlY3Rpb24gYW55d2F5LiIpLAogIAogICAgbWFw LT5jb25zdGFudF9wb29sID0gYWRkciArIE1BWUJFX1NXQVAgKG1ldGFkYXRhW2ldKTsKICAKQEAg LTIyMjAsNyArMjI5MSw3IEBAIGluZGV4IDFkNTFkYjIuLmZlNTY3MDkgMTAwNjQ0CiAgICAgIHJl dHVybiAwOwogIAogICAgaWYgKHR5cGVzX2xpc3RfZWxlbWVudHMpCi1AQCAtMjU5MSw3ICsyNjk2 LDEwIEBAIGR3YXJmMl9yZWFkX2luZGV4IChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSkKK0BAIC0y NjM1LDcgKzI3NDAsMTAgQEAgdG8gdXNlIHRoZSBzZWN0aW9uIGFueXdheS4iKSwKICAJcmV0dXJu IDA7CiAgICAgIH0KICAKQEAgLTIyMzIsNyArMjMwMyw3IEBAIGluZGV4IDFkNTFkYjIuLmZlNTY3 MDkgMTAwNjQ0CiAgCiAgICBkd2FyZjJfcGVyX29iamZpbGUtPmluZGV4X3RhYmxlID0gbWFwOwog ICAgZHdhcmYyX3Blcl9vYmpmaWxlLT51c2luZ19pbmRleCA9IDE7Ci1AQCAtMzYyNCw2ICszNzMy LDIyIEBAIHJlYWRfY29tcF91bml0X2hlYWQgKHN0cnVjdCBjb21wX3VuaXRfaGVhZCAqY3VfaGVh ZGVyLAorQEAgLTM2ODYsNiArMzc5NCwyMiBAQCByZWFkX2NvbXBfdW5pdF9oZWFkIChzdHJ1Y3Qg Y29tcF91bml0X2hlYWQgKmN1X2hlYWRlciwKICAgIHJldHVybiBpbmZvX3B0cjsKICB9CiAgCkBA IC0yMjU1LDcgKzIzMjYsNyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogIC8qIFN1 YnJvdXRpbmUgb2YgcmVhZF9hbmRfY2hlY2tfY29tcF91bml0X2hlYWQgYW5kCiAgICAgcmVhZF9h bmRfY2hlY2tfdHlwZV91bml0X2hlYWQgdG8gc2ltcGxpZnkgdGhlbS4KICAgICBQZXJmb3JtIHZh cmlvdXMgZXJyb3IgY2hlY2tpbmcgb24gdGhlIGhlYWRlci4gICovCi1AQCAtMzY0Miw4ICszNzY2 LDcgQEAgZXJyb3JfY2hlY2tfY29tcF91bml0X2hlYWQgKHN0cnVjdCBjb21wX3VuaXRfaGVhZCAq aGVhZGVyLAorQEAgLTM3MDQsOCArMzgyOCw3IEBAIGVycm9yX2NoZWNrX2NvbXBfdW5pdF9oZWFk IChzdHJ1Y3QgY29tcF91bml0X2hlYWQgKmhlYWRlciwKICAJICAgZmlsZW5hbWUpOwogIAogICAg aWYgKGhlYWRlci0+YWJicmV2X29mZnNldC5zZWN0X29mZgpAQCAtMjI2NSw3ICsyMzM2LDcgQEAg aW5kZXggMWQ1MWRiMi4uZmU1NjcwOSAxMDA2NDQKICAgICAgZXJyb3IgKF8oIkR3YXJmIEVycm9y OiBiYWQgb2Zmc2V0ICgweCVseCkgaW4gY29tcGlsYXRpb24gdW5pdCBoZWFkZXIgIgogIAkgICAi KG9mZnNldCAweCVseCArIDYpIFtpbiBtb2R1bGUgJXNdIiksCiAgCSAgIChsb25nKSBoZWFkZXIt PmFiYnJldl9vZmZzZXQuc2VjdF9vZmYsIChsb25nKSBoZWFkZXItPm9mZnNldC5zZWN0X29mZiwK LUBAIC0zODgwLDYgKzQwMDMsNyBAQCBjcmVhdGVfZGVidWdfdHlwZXNfaGFzaF90YWJsZSAoc3Ry dWN0IGR3b19maWxlICpkd29fZmlsZSwKK0BAIC0zOTQyLDYgKzQwNjUsNyBAQCBjcmVhdGVfZGVi dWdfdHlwZXNfaGFzaF90YWJsZSAoc3RydWN0IGR3b19maWxlICpkd29fZmlsZSwKICAgICAgewog ICAgICAgIGJmZCAqYWJmZDsKICAgICAgICBnZGJfYnl0ZSAqaW5mb19wdHIsICplbmRfcHRyOwpA QCAtMjI3Myw3ICsyMzQ0LDcgQEAgaW5kZXggMWQ1MWRiMi4uZmU1NjcwOSAxMDA2NDQKICAKICAg ICAgICBkd2FyZjJfcmVhZF9zZWN0aW9uIChvYmpmaWxlLCBzZWN0aW9uKTsKICAgICAgICBpbmZv X3B0ciA9IHNlY3Rpb24tPmJ1ZmZlcjsKLUBAIC0zODkxLDYgKzQwMTUsMTEgQEAgY3JlYXRlX2Rl YnVnX3R5cGVzX2hhc2hfdGFibGUgKHN0cnVjdCBkd29fZmlsZSAqZHdvX2ZpbGUsCitAQCAtMzk1 Myw2ICs0MDc3LDExIEBAIGNyZWF0ZV9kZWJ1Z190eXBlc19oYXNoX3RhYmxlIChzdHJ1Y3QgZHdv X2ZpbGUgKmR3b19maWxlLAogIAkgbm90IHByZXNlbnQsIGluIHdoaWNoIGNhc2Ugc2VjdGlvbi0+ YXNlY3Rpb24gd2lsbCBiZSBOVUxMLiAgKi8KICAgICAgICBhYmZkID0gc2VjdGlvbi0+YXNlY3Rp b24tPm93bmVyOwogIApAQCAtMjI4NSw3ICsyMzU2LDcgQEAgaW5kZXggMWQ1MWRiMi4uZmU1Njcw OSAxMDA2NDQKICAgICAgICBpZiAodHlwZXNfaHRhYiA9PSBOVUxMKQogIAl7CiAgCSAgaWYgKGR3 b19maWxlKQotQEAgLTQxMzAsNyArNDI1OSw4IEBAIGluaXRfY3V0dV9hbmRfcmVhZF9kaWVzIChz dHJ1Y3QgZHdhcmYyX3Blcl9jdV9kYXRhICp0aGlzX2N1LAorQEAgLTQxOTIsNyArNDMyMSw4IEBA IGluaXRfY3V0dV9hbmRfcmVhZF9kaWVzIChzdHJ1Y3QgZHdhcmYyX3Blcl9jdV9kYXRhICp0aGlz X2N1LAogICAgZHdhcmYyX3JlYWRfc2VjdGlvbiAob2JqZmlsZSwgc2VjdGlvbik7CiAgCiAgICBi ZWdpbl9pbmZvX3B0ciA9IGluZm9fcHRyID0gc2VjdGlvbi0+YnVmZmVyICsgdGhpc19jdS0+b2Zm c2V0LnNlY3Rfb2ZmOwpAQCAtMjI5NSw3ICsyMzY2LDcgQEAgaW5kZXggMWQ1MWRiMi4uZmU1Njcw OSAxMDA2NDQKICAKICAgIGlmICh1c2VfZXhpc3RpbmdfY3UgJiYgdGhpc19jdS0+Y3UgIT0gTlVM TCkKICAgICAgewotQEAgLTQ1MTIsNyArNDY0Miw3IEBAIGluaXRfY3V0dV9hbmRfcmVhZF9kaWVz X3NpbXBsZSAoc3RydWN0IGR3YXJmMl9wZXJfY3VfZGF0YSAqdGhpc19jdSwKK0BAIC00NTc0LDcg KzQ3MDQsNyBAQCBpbml0X2N1dHVfYW5kX3JlYWRfZGllc19zaW1wbGUgKHN0cnVjdCBkd2FyZjJf cGVyX2N1X2RhdGEgKnRoaXNfY3UsCiAgCQkJCXZvaWQgKmRhdGEpCiAgewogICAgaW5pdF9jdXR1 X2FuZF9yZWFkX2RpZXNfbm9fZm9sbG93ICh0aGlzX2N1LApAQCAtMjMwNCw3ICsyMzc1LDcgQEAg aW5kZXggMWQ1MWRiMi4uZmU1NjcwOSAxMDA2NDQKICAJCQkJICAgICBOVUxMLAogIAkJCQkgICAg IGRpZV9yZWFkZXJfZnVuYywgZGF0YSk7CiAgfQotQEAgLTUxMzIsNiArNTI2Miw5IEBAIHNldF9w YXJ0aWFsX3VzZXIgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQorQEAgLTUyMDIsNiArNTMzMiw5 IEBAIHNldF9wYXJ0aWFsX3VzZXIgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQogICAgICAgIHN0 cnVjdCBwYXJ0aWFsX3N5bXRhYiAqcHN0ID0gcGVyX2N1LT52LnBzeW10YWI7CiAgICAgICAgaW50 IGo7CiAgCkBAIC0yMzE0LDcgKzIzODUsNyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0 NAogICAgICAgIGZvciAoaiA9IDA7IGogPCBwc3QtPm51bWJlcl9vZl9kZXBlbmRlbmNpZXM7ICsr aikKICAJewogIAkgIC8qIFNldCB0aGUgJ3VzZXInIGZpZWxkIG9ubHkgaWYgaXQgaXMgbm90IGFs cmVhZHkgc2V0LiAgKi8KLUBAIC01MjI2LDM4ICs1MzU5LDMyIEBAIGxvYWRfcGFydGlhbF9jb21w X3VuaXQgKHN0cnVjdCBkd2FyZjJfcGVyX2N1X2RhdGEgKnRoaXNfY3UpCitAQCAtNTI5NiwzOCAr NTQyOSwzMiBAQCBsb2FkX3BhcnRpYWxfY29tcF91bml0IChzdHJ1Y3QgZHdhcmYyX3Blcl9jdV9k YXRhICp0aGlzX2N1KQogIAkJCSAgIGxvYWRfcGFydGlhbF9jb21wX3VuaXRfcmVhZGVyLCBOVUxM KTsKICB9CiAgCkBAIC0yMzY1LDcgKzI0MzYsNyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEw MDY0NAogIAogICAgICAgIC8qIFNhdmUgdGhlIGNvbXBpbGF0aW9uIHVuaXQgZm9yIGxhdGVyIGxv b2t1cC4gICovCiAgICAgICAgdGhpc19jdSA9IG9ic3RhY2tfYWxsb2MgKCZvYmpmaWxlLT5vYmpm aWxlX29ic3RhY2ssCi1AQCAtNTI2NSwyMCArNTM5Miw1MCBAQCBjcmVhdGVfYWxsX2NvbXBfdW5p dHMgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQorQEAgLTUzMzUsMjAgKzU0NjIsNTAgQEAgY3Jl YXRlX2FsbF9jb21wX3VuaXRzIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSkKICAgICAgICBtZW1z ZXQgKHRoaXNfY3UsIDAsIHNpemVvZiAoKnRoaXNfY3UpKTsKICAgICAgICB0aGlzX2N1LT5vZmZz ZXQgPSBvZmZzZXQ7CiAgICAgICAgdGhpc19jdS0+bGVuZ3RoID0gbGVuZ3RoICsgaW5pdGlhbF9s ZW5ndGhfc2l6ZTsKQEAgLTI0MjMsNyArMjQ5NCw3IEBAIGluZGV4IDFkNTFkYjIuLmZlNTY3MDkg MTAwNjQ0CiAgCiAgICBkd2FyZjJfcGVyX29iamZpbGUtPmFsbF9jb21wX3VuaXRzCiAgICAgID0g b2JzdGFja19hbGxvYyAoJm9iamZpbGUtPm9iamZpbGVfb2JzdGFjaywKLUBAIC01MzcxLDYgKzU1 MjgsNyBAQCBzY2FuX3BhcnRpYWxfc3ltYm9scyAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKmZp cnN0X2RpZSwgQ09SRV9BRERSICpsb3dwYywKK0BAIC01NDQxLDYgKzU1OTgsNyBAQCBzY2FuX3Bh cnRpYWxfc3ltYm9scyAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKmZpcnN0X2RpZSwgQ09SRV9B RERSICpsb3dwYywKICAJCSAgfQogIAogIAkJcGVyX2N1ID0gZHdhcmYyX2ZpbmRfY29udGFpbmlu Z19jb21wX3VuaXQgKHBkaS0+ZC5vZmZzZXQsCkBAIC0yNDMxLDcgKzI1MDIsNyBAQCBpbmRleCAx ZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogIAkJCQkJCQkgICBjdS0+b2JqZmlsZSk7CiAgCiAgCQkv KiBHbyByZWFkIHRoZSBwYXJ0aWFsIHVuaXQsIGlmIG5lZWRlZC4gICovCi1AQCAtNTQyOCw3ICs1 NTg2LDggQEAgcGFydGlhbF9kaWVfcGFyZW50X3Njb3BlIChzdHJ1Y3QgcGFydGlhbF9kaWVfaW5m byAqcGRpLAorQEAgLTU0OTgsNyArNTY1Niw4IEBAIHBhcnRpYWxfZGllX3BhcmVudF9zY29wZSAo c3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBkaSwKICAKICAgIHJlYWxfcGRpID0gcGRpOwogICAg d2hpbGUgKHJlYWxfcGRpLT5oYXNfc3BlY2lmaWNhdGlvbikKQEAgLTI0NDEsNyArMjUxMiw3IEBA IGluZGV4IDFkNTFkYjIuLmZlNTY3MDkgMTAwNjQ0CiAgCiAgICBwYXJlbnQgPSByZWFsX3BkaS0+ ZGllX3BhcmVudDsKICAgIGlmIChwYXJlbnQgPT0gTlVMTCkKLUBAIC01OTI4LDYgKzYwODcsOSBA QCBza2lwX29uZV9kaWUgKGNvbnN0IHN0cnVjdCBkaWVfcmVhZGVyX3NwZWNzICpyZWFkZXIsIGdk Yl9ieXRlICppbmZvX3B0ciwKK0BAIC01OTk4LDYgKzYxNTcsOSBAQCBza2lwX29uZV9kaWUgKGNv bnN0IHN0cnVjdCBkaWVfcmVhZGVyX3NwZWNzICpyZWFkZXIsIGdkYl9ieXRlICppbmZvX3B0ciwK ICAJICBlbHNlCiAgCSAgICBpbmZvX3B0ciArPSBjdS0+aGVhZGVyLm9mZnNldF9zaXplOwogIAkg IGJyZWFrOwpAQCAtMjQ1MSw3ICsyNTIyLDcgQEAgaW5kZXggMWQ1MWRiMi4uZmU1NjcwOSAxMDA2 NDQKICAJY2FzZSBEV19GT1JNX2FkZHI6CiAgCSAgaW5mb19wdHIgKz0gY3UtPmhlYWRlci5hZGRy X3NpemU7CiAgCSAgYnJlYWs7Ci1AQCAtNTk1Nyw2ICs2MTE5LDcgQEAgc2tpcF9vbmVfZGllIChj b25zdCBzdHJ1Y3QgZGllX3JlYWRlcl9zcGVjcyAqcmVhZGVyLCBnZGJfYnl0ZSAqaW5mb19wdHIs CitAQCAtNjAyNyw2ICs2MTg5LDcgQEAgc2tpcF9vbmVfZGllIChjb25zdCBzdHJ1Y3QgZGllX3Jl YWRlcl9zcGVjcyAqcmVhZGVyLCBnZGJfYnl0ZSAqaW5mb19wdHIsCiAgCSAgYnJlYWs7CiAgCWNh c2UgRFdfRk9STV9zZWNfb2Zmc2V0OgogIAljYXNlIERXX0ZPUk1fc3RycDoKQEAgLTI0NTksMTcg KzI1MzAsMTggQEAgaW5kZXggMWQ1MWRiMi4uZmU1NjcwOSAxMDA2NDQKICAJICBpbmZvX3B0ciAr PSBjdS0+aGVhZGVyLm9mZnNldF9zaXplOwogIAkgIGJyZWFrOwogIAljYXNlIERXX0ZPUk1fZXhw cmxvYzoKLUBAIC02NjI0LDcgKzY3ODcsOCBAQCBwcm9jZXNzX2Z1bGxfY29tcF91bml0IChzdHJ1 Y3QgZHdhcmYyX3Blcl9jdV9kYXRhICpwZXJfY3UsCitAQCAtNjY5NCw3ICs2ODU3LDkgQEAgcHJv Y2Vzc19mdWxsX2NvbXBfdW5pdCAoc3RydWN0IGR3YXJmMl9wZXJfY3VfZGF0YSAqcGVyX2N1LAog ICAgICAgaXQsIGJ5IHNjYW5uaW5nIHRoZSBESUUncyBiZWxvdyB0aGUgY29tcGlsYXRpb24gdW5p dC4gICovCiAgICBnZXRfc2NvcGVfcGNfYm91bmRzIChjdS0+ZGllcywgJmxvd3BjLCAmaGlnaHBj LCBjdSk7CiAgCiAtICBzdGF0aWNfYmxvY2sgPSBlbmRfc3ltdGFiX2dldF9zdGF0aWNfYmxvY2sg KGhpZ2hwYyArIGJhc2VhZGRyLCBvYmpmaWxlLCAwKTsKLSsgIHN0YXRpY19ibG9jayA9IGVuZF9z eW10YWJfZ2V0X3N0YXRpY19ibG9jayAoaGlnaHBjICsgYmFzZWFkZHIsIG9iamZpbGUsIDAsCi0r CQkJCQkgICAgcGVyX2N1LT5zLmltcG9ydGVkX3N5bXRhYnMgIT0gTlVMTCk7CisrICBzdGF0aWNf YmxvY2sKKysgICAgPSBlbmRfc3ltdGFiX2dldF9zdGF0aWNfYmxvY2sgKGhpZ2hwYyArIGJhc2Vh ZGRyLCBvYmpmaWxlLCAwLAorKwkJCQkgICBwZXJfY3UtPnMuaW1wb3J0ZWRfc3ltdGFicyAhPSBO VUxMKTsKICAKICAgIC8qIElmIHRoZSBjb21wIHVuaXQgaGFzIERXX0FUX3JhbmdlcywgaXQgbWF5 IGhhdmUgZGlzY29udGlndW91cyByYW5nZXMuCiAgICAgICBBbHNvLCBEV19BVF9yYW5nZXMgbWF5 IHJlY29yZCByYW5nZXMgbm90IGJlbG9uZ2luZyB0byBhbnkgY2hpbGQgRElFcwotQEAgLTY3NzUs OSArNjkzOSwxMSBAQCBwcm9jZXNzX2ltcG9ydGVkX3VuaXRfZGllIChzdHJ1Y3QgZGllX2luZm8g KmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtNjg0NSw5ICs3MDEwLDExIEBAIHByb2Nl c3NfaW1wb3J0ZWRfdW5pdF9kaWUgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYy X2N1ICpjdSkKICAgICAgICBzdHJ1Y3QgZHdhcmYyX3Blcl9jdV9kYXRhICpwZXJfY3U7CiAgICAg ICAgc3RydWN0IHN5bXRhYiAqaW1wb3J0ZWRfc3ltdGFiOwogICAgICAgIHNlY3Rfb2Zmc2V0IG9m ZnNldDsKQEAgLTI0ODIsNyArMjU1NCw3IEBAIGluZGV4IDFkNTFkYjIuLmZlNTY3MDkgMTAwNjQ0 CiAgCiAgICAgICAgLyogUXVldWUgdGhlIHVuaXQsIGlmIG5lZWRlZC4gICovCiAgICAgICAgaWYg KG1heWJlX3F1ZXVlX2NvbXBfdW5pdCAoY3UsIHBlcl9jdSwgY3UtPmxhbmd1YWdlKSkKLUBAIC04 MDQ2LDI0ICs4MjEyLDIyIEBAIHRyeV9vcGVuX2R3b19maWxlIChjb25zdCBjaGFyICpmaWxlX25h bWUpCitAQCAtODExNiwyNCArODI4MywyMSBAQCB0cnlfb3Blbl9kd29fZmlsZSAoY29uc3QgY2hh ciAqZmlsZV9uYW1lKQogICAgaWYgKGRlc2MgPCAwKQogICAgICByZXR1cm4gTlVMTDsKICAKQEAg LTI0OTMsNyArMjU2NSw2IEBAIGluZGV4IDFkNTFkYjIuLmZlNTY3MDkgMTAwNjQ0CiAgICAgICAg eGZyZWUgKGFic29sdXRlX25hbWUpOwogICAgICAgIHJldHVybiBOVUxMOwogICAgICB9Ci0rICBn ZGJfYmZkX3N0YXNoX2ZpbGVuYW1lIChzeW1fYmZkKTsKICsgIHhmcmVlIChhYnNvbHV0ZV9uYW1l KTsKICAgIGJmZF9zZXRfY2FjaGVhYmxlIChzeW1fYmZkLCAxKTsKICAKQEAgLTI1MTEsNyArMjU4 Miw3IEBAIGluZGV4IDFkNTFkYjIuLmZlNTY3MDkgMTAwNjQ0CiAgICByZXR1cm4gc3ltX2JmZDsK ICB9CiAgCi1AQCAtODI1NSwyMCArODQxOSw3IEBAIGZyZWVfZHdvX2ZpbGUgKHN0cnVjdCBkd29f ZmlsZSAqZHdvX2ZpbGUsIHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQorQEAgLTgzMjUsMjAgKzg0 ODksNyBAQCBmcmVlX2R3b19maWxlIChzdHJ1Y3QgZHdvX2ZpbGUgKmR3b19maWxlLCBzdHJ1Y3Qg b2JqZmlsZSAqb2JqZmlsZSkKICAgIHN0cnVjdCBkd2FyZjJfc2VjdGlvbl9pbmZvICpzZWN0aW9u OwogIAogICAgZ2RiX2Fzc2VydCAoZHdvX2ZpbGUtPmR3b19iZmQgIT0gb2JqZmlsZS0+b2JmZCk7 CkBAIC0yNTMzLDcgKzI2MDQsNyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogIAog ICAgVkVDX2ZyZWUgKGR3YXJmMl9zZWN0aW9uX2luZm9fZGVmLCBkd29fZmlsZS0+c2VjdGlvbnMu dHlwZXMpOwogIH0KLUBAIC0xMDY1MSw2ICsxMDgwMiwyOSBAQCBwcm9jZXNzX2VudW1lcmF0aW9u X3Njb3BlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAt MTA3MjEsNiArMTA4NzIsMjkgQEAgcHJvY2Vzc19lbnVtZXJhdGlvbl9zY29wZSAoc3RydWN0IGRp ZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgbmV3X3N5bWJvbCAoZGllLCB0 aGlzX3R5cGUsIGN1KTsKICB9CiAgCkBAIC0yNTYzLDcgKzI2MzQsNyBAQCBpbmRleCAxZDUxZGIy Li5mZTU2NzA5IDEwMDY0NAogIC8qIEV4dHJhY3QgYWxsIGluZm9ybWF0aW9uIGZyb20gYSBEV19U QUdfYXJyYXlfdHlwZSBESUUgYW5kIHB1dCBpdCBpbgogICAgIHRoZSBESUUncyB0eXBlIGZpZWxk LiAgRm9yIG5vdywgdGhpcyBvbmx5IGhhbmRsZXMgb25lIGRpbWVuc2lvbmFsCiAgICAgYXJyYXlz LiAgKi8KLUBAIC0xMDY2NCw3ICsxMDgzOCw3IEBAIHJlYWRfYXJyYXlfdHlwZSAoc3RydWN0IGRp ZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTEwNzM0LDcgKzEwOTA4LDcg QEAgcmVhZF9hcnJheV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9j dSAqY3UpCiAgICBzdHJ1Y3QgdHlwZSAqZWxlbWVudF90eXBlLCAqcmFuZ2VfdHlwZSwgKmluZGV4 X3R5cGU7CiAgICBzdHJ1Y3QgdHlwZSAqKnJhbmdlX3R5cGVzID0gTlVMTDsKICAgIHN0cnVjdCBh dHRyaWJ1dGUgKmF0dHI7CkBAIC0yNTcyLDcgKzI2NDMsNyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2 NzA5IDEwMDY0NAogICAgc3RydWN0IGNsZWFudXAgKmJhY2tfdG87CiAgICBjaGFyICpuYW1lOwog IAotQEAgLTEwNzE3LDE3ICsxMDg5MSwxOSBAQCByZWFkX2FycmF5X3R5cGUgKHN0cnVjdCBkaWVf aW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0xMDc4NywxNyArMTA5NjEsMTkg QEAgcmVhZF9hcnJheV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9j dSAqY3UpCiAgICB0eXBlID0gZWxlbWVudF90eXBlOwogIAogICAgaWYgKHJlYWRfYXJyYXlfb3Jk ZXIgKGRpZSwgY3UpID09IERXX09SRF9jb2xfbWFqb3IpCkBAIC0yNjAzLDcgKzI2NzQsNyBAQCBp bmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogIAogICAgLyogVW5kZXJzdGFuZCBEd2FyZjIg c3VwcG9ydCBmb3IgdmVjdG9yIHR5cGVzIChsaWtlIHRoZXkgb2NjdXIgb24KICAgICAgIHRoZSBQ b3dlclBDIHcvIEFsdGlWZWMpLiAgR2NjIGp1c3QgYWRkcyBhbm90aGVyIGF0dHJpYnV0ZSB0byB0 aGUKLUBAIC0xMTIxMSwyOSArMTEzODcsMTE0IEBAIHJlYWRfdGFnX3N0cmluZ190eXBlIChzdHJ1 Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCitAQCAtMTEyODEsMjkgKzEx NDU3LDExNCBAQCByZWFkX3RhZ19zdHJpbmdfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0 cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgc3RydWN0IGdkYmFyY2ggKmdkYmFyY2ggPSBnZXRfb2Jq ZmlsZV9hcmNoIChvYmpmaWxlKTsKICAgIHN0cnVjdCB0eXBlICp0eXBlLCAqcmFuZ2VfdHlwZSwg KmluZGV4X3R5cGUsICpjaGFyX3R5cGU7CiAgICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyOwpAQCAt MjczMSw3ICsyODAyLDcgQEAgaW5kZXggMWQ1MWRiMi4uZmU1NjcwOSAxMDA2NDQKICAgIGNoYXJf dHlwZSA9IGxhbmd1YWdlX3N0cmluZ19jaGFyX3R5cGUgKGN1LT5sYW5ndWFnZV9kZWZuLCBnZGJh cmNoKTsKICAgIHR5cGUgPSBjcmVhdGVfc3RyaW5nX3R5cGUgKE5VTEwsIGNoYXJfdHlwZSwgcmFu Z2VfdHlwZSk7CiAgCi1AQCAtMTE1MzcsNyArMTE3OTgsNyBAQCByZWFkX3N1YnJhbmdlX3R5cGUg KHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0xMTYwNyw3 ICsxMTg2OCw3IEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0 cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgc3RydWN0IHR5cGUgKmJhc2VfdHlwZTsKICAgIHN0cnVj dCB0eXBlICpyYW5nZV90eXBlOwogICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsKQEAgLTI3NDAs NyArMjgxMSw3IEBAIGluZGV4IDFkNTFkYjIuLmZlNTY3MDkgMTAwNjQ0CiAgICBpbnQgbG93X2Rl ZmF1bHRfaXNfdmFsaWQ7CiAgICBjaGFyICpuYW1lOwogICAgTE9OR0VTVCBuZWdhdGl2ZV9tYXNr OwotQEAgLTExNTkzLDQyICsxMTg1NCw2IEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRp ZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTExNjYzLDQyICsxMTkyNCw2 IEBAIHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2Fy ZjJfY3UgKmN1KQogIAkJCQkgICAgICAiLSBESUUgYXQgMHgleCBbaW4gbW9kdWxlICVzXSIpLAog IAkgICAgICAgZGllLT5vZmZzZXQuc2VjdF9vZmYsIGN1LT5vYmpmaWxlLT5uYW1lKTsKICAKQEAg LTI3ODMsNyArMjg1NCw3IEBAIGluZGV4IDFkNTFkYjIuLmZlNTY3MDkgMTAwNjQ0CiAgICAvKiBE d2FyZi0yIHNwZWNpZmljYXRpb25zIGV4cGxpY2l0bHkgYWxsb3dzIHRvIGNyZWF0ZSBzdWJyYW5n ZSB0eXBlcwogICAgICAgd2l0aG91dCBzcGVjaWZ5aW5nIGEgYmFzZSB0eXBlLgogICAgICAgSW4g dGhhdCBjYXNlLCB0aGUgYmFzZSB0eXBlIG11c3QgYmUgc2V0IHRvIHRoZSB0eXBlIG9mCi1AQCAt MTE2NjcsMjQgKzExODkyLDE2MyBAQCByZWFkX3N1YnJhbmdlX3R5cGUgKHN0cnVjdCBkaWVfaW5m byAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKK0BAIC0xMTczNywyNCArMTE5NjIsMTYzIEBA IHJlYWRfc3VicmFuZ2VfdHlwZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJf Y3UgKmN1KQogIAl9CiAgICAgIH0KICAKQEAgLTI5NjEsNyArMzAzMiw3IEBAIGluZGV4IDFkNTFk YjIuLmZlNTY3MDkgMTAwNjQ0CiAgCiAgICBuYW1lID0gZHdhcmYyX25hbWUgKGRpZSwgY3UpOwog ICAgaWYgKG5hbWUpCi1AQCAtMTI0NzQsNiArMTI4MzgsOCBAQCByZWFkX3BhcnRpYWxfZGllIChj b25zdCBzdHJ1Y3QgZGllX3JlYWRlcl9zcGVjcyAqcmVhZGVyLAorQEAgLTEyNTQ0LDYgKzEyOTA4 LDggQEAgcmVhZF9wYXJ0aWFsX2RpZSAoY29uc3Qgc3RydWN0IGRpZV9yZWFkZXJfc3BlY3MgKnJl YWRlciwKICAJY2FzZSBEV19BVF9leHRlbnNpb246CiAgCSAgcGFydF9kaWUtPmhhc19zcGVjaWZp Y2F0aW9uID0gMTsKICAJICBwYXJ0X2RpZS0+c3BlY19vZmZzZXQgPSBkd2FyZjJfZ2V0X3JlZl9k aWVfb2Zmc2V0ICgmYXR0cik7CkBAIC0yOTcwLDcgKzMwNDEsNyBAQCBpbmRleCAxZDUxZGIyLi5m ZTU2NzA5IDEwMDY0NAogIAkgIGJyZWFrOwogIAljYXNlIERXX0FUX3NpYmxpbmc6CiAgCSAgLyog SWdub3JlIGFic29sdXRlIHNpYmxpbmdzLCB0aGV5IG1pZ2h0IHBvaW50IG91dHNpZGUgb2YKLUBA IC0xMjUyMCw3ICsxMjg4NiwxMSBAQCByZWFkX3BhcnRpYWxfZGllIChjb25zdCBzdHJ1Y3QgZGll X3JlYWRlcl9zcGVjcyAqcmVhZGVyLAorQEAgLTEyNTkwLDcgKzEyOTU2LDExIEBAIHJlYWRfcGFy dGlhbF9kaWUgKGNvbnN0IHN0cnVjdCBkaWVfcmVhZGVyX3NwZWNzICpyZWFkZXIsCiAgCiAgCWNh c2UgRFdfQVRfaW1wb3J0OgogIAkgIGlmIChwYXJ0X2RpZS0+dGFnID09IERXX1RBR19pbXBvcnRl ZF91bml0KQpAQCAtMjk4Myw3ICszMDU0LDcgQEAgaW5kZXggMWQ1MWRiMi4uZmU1NjcwOSAxMDA2 NDQKICAJICBicmVhazsKICAKICAJZGVmYXVsdDoKLUBAIC0xMjU5MSwxMyArMTI5NjEsMTQgQEAg ZmluZF9wYXJ0aWFsX2RpZV9pbl9jb21wX3VuaXQgKHNlY3Rfb2Zmc2V0IG9mZnNldCwgc3RydWN0 IGR3YXJmMl9jdSAqY3UpCitAQCAtMTI2NjEsMTMgKzEzMDMxLDE0IEBAIGZpbmRfcGFydGlhbF9k aWVfaW5fY29tcF91bml0IChzZWN0X29mZnNldCBvZmZzZXQsIHN0cnVjdCBkd2FyZjJfY3UgKmN1 KQogICAgIERXX0ZPUk1fcmVmX3NpZzgpLiAgKi8KICAKICBzdGF0aWMgc3RydWN0IHBhcnRpYWxf ZGllX2luZm8gKgpAQCAtMzAwMCw3ICszMDcxLDcgQEAgaW5kZXggMWQ1MWRiMi4uZmU1NjcwOSAx MDA2NDQKICAgICAgewogICAgICAgIHBkID0gZmluZF9wYXJ0aWFsX2RpZV9pbl9jb21wX3VuaXQg KG9mZnNldCwgY3UpOwogICAgICAgIGlmIChwZCAhPSBOVUxMKQotQEAgLTEyNjE2LDcgKzEyOTg3 LDggQEAgZmluZF9wYXJ0aWFsX2RpZSAoc2VjdF9vZmZzZXQgb2Zmc2V0LCBzdHJ1Y3QgZHdhcmYy X2N1ICpjdSkKK0BAIC0xMjY4Niw3ICsxMzA1Nyw4IEBAIGZpbmRfcGFydGlhbF9kaWUgKHNlY3Rf b2Zmc2V0IG9mZnNldCwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgCQkgKGxvbmcpIGN1LT5oZWFk ZXIub2Zmc2V0LnNlY3Rfb2ZmLCAobG9uZykgb2Zmc2V0LnNlY3Rfb2ZmLAogIAkJIGJmZF9nZXRf ZmlsZW5hbWUgKG9iamZpbGUtPm9iZmQpKTsKICAJfQpAQCAtMzAxMCw3ICszMDgxLDcgQEAgaW5k ZXggMWQ1MWRiMi4uZmU1NjcwOSAxMDA2NDQKICAKICAgICAgICBpZiAocGVyX2N1LT5jdSA9PSBO VUxMIHx8IHBlcl9jdS0+Y3UtPnBhcnRpYWxfZGllcyA9PSBOVUxMKQogIAlsb2FkX3BhcnRpYWxf Y29tcF91bml0IChwZXJfY3UpOwotQEAgLTEyNjc0LDcgKzEzMDQ2LDggQEAgZ3Vlc3NfcGFydGlh bF9kaWVfc3RydWN0dXJlX25hbWUgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpzdHJ1Y3RfcGRp LAorQEAgLTEyNzQ0LDcgKzEzMTE2LDggQEAgZ3Vlc3NfcGFydGlhbF9kaWVfc3RydWN0dXJlX25h bWUgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZvICpzdHJ1Y3RfcGRpLAogIAogICAgcmVhbF9wZGkg PSBzdHJ1Y3RfcGRpOwogICAgd2hpbGUgKHJlYWxfcGRpLT5oYXNfc3BlY2lmaWNhdGlvbikKQEAg LTMwMjAsNyArMzA5MSw3IEBAIGluZGV4IDFkNTFkYjIuLmZlNTY3MDkgMTAwNjQ0CiAgCiAgICBp ZiAocmVhbF9wZGktPmRpZV9wYXJlbnQgIT0gTlVMTCkKICAgICAgcmV0dXJuOwotQEAgLTEyNzIy LDcgKzEzMDk1LDggQEAgZml4dXBfcGFydGlhbF9kaWUgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbmZv ICpwYXJ0X2RpZSwKK0BAIC0xMjc5Miw3ICsxMzE2NSw4IEBAIGZpeHVwX3BhcnRpYWxfZGllIChz dHJ1Y3QgcGFydGlhbF9kaWVfaW5mbyAqcGFydF9kaWUsCiAgICAgIHsKICAgICAgICBzdHJ1Y3Qg cGFydGlhbF9kaWVfaW5mbyAqc3BlY19kaWU7CiAgCkBAIC0zMDMwLDcgKzMxMDEsNyBAQCBpbmRl eCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogIAogICAgICAgIGZpeHVwX3BhcnRpYWxfZGllIChz cGVjX2RpZSwgY3UpOwogIAotQEAgLTEyODEwLDYgKzEzMTg0LDEwIEBAIHJlYWRfYXR0cmlidXRl X3ZhbHVlIChjb25zdCBzdHJ1Y3QgZGllX3JlYWRlcl9zcGVjcyAqcmVhZGVyLAorQEAgLTEyODgw LDYgKzEzMjU0LDEwIEBAIHJlYWRfYXR0cmlidXRlX3ZhbHVlIChjb25zdCBzdHJ1Y3QgZGllX3Jl YWRlcl9zcGVjcyAqcmVhZGVyLAogIAkJCQkgICAgICAgJmN1LT5oZWFkZXIsICZieXRlc19yZWFk KTsKICAgICAgICBpbmZvX3B0ciArPSBieXRlc19yZWFkOwogICAgICAgIGJyZWFrOwpAQCAtMzA0 MSw3ICszMTEyLDcgQEAgaW5kZXggMWQ1MWRiMi4uZmU1NjcwOSAxMDA2NDQKICAgICAgY2FzZSBE V19GT1JNX2FkZHI6CiAgICAgICAgRFdfQUREUiAoYXR0cikgPSByZWFkX2FkZHJlc3MgKGFiZmQs IGluZm9fcHRyLCBjdSwgJmJ5dGVzX3JlYWQpOwogICAgICAgIGluZm9fcHRyICs9IGJ5dGVzX3Jl YWQ7Ci1AQCAtMTI4NTIsMTAgKzEzMjMwLDI1IEBAIHJlYWRfYXR0cmlidXRlX3ZhbHVlIChjb25z dCBzdHJ1Y3QgZGllX3JlYWRlcl9zcGVjcyAqcmVhZGVyLAorQEAgLTEyOTIyLDEwICsxMzMwMCwy NSBAQCByZWFkX2F0dHJpYnV0ZV92YWx1ZSAoY29uc3Qgc3RydWN0IGRpZV9yZWFkZXJfc3BlY3Mg KnJlYWRlciwKICAgICAgICBpbmZvX3B0ciArPSBieXRlc19yZWFkOwogICAgICAgIGJyZWFrOwog ICAgICBjYXNlIERXX0ZPUk1fc3RycDoKQEAgLTMwNzEsNyArMzE0Miw3IEBAIGluZGV4IDFkNTFk YjIuLmZlNTY3MDkgMTAwNjQ0CiAgICAgICAgYnJlYWs7CiAgICAgIGNhc2UgRFdfRk9STV9leHBy bG9jOgogICAgICBjYXNlIERXX0ZPUk1fYmxvY2s6Ci1AQCAtMTI5NjcsNiArMTMzNjAsMTAgQEAg cmVhZF9hdHRyaWJ1dGVfdmFsdWUgKGNvbnN0IHN0cnVjdCBkaWVfcmVhZGVyX3NwZWNzICpyZWFk ZXIsCitAQCAtMTMwMzcsNiArMTM0MzAsMTAgQEAgcmVhZF9hdHRyaWJ1dGVfdmFsdWUgKGNvbnN0 IHN0cnVjdCBkaWVfcmVhZGVyX3NwZWNzICpyZWFkZXIsCiAgCSAgICAgYmZkX2dldF9maWxlbmFt ZSAoYWJmZCkpOwogICAgICB9CiAgCkBAIC0zMDgyLDcgKzMxNTMsNyBAQCBpbmRleCAxZDUxZGIy Li5mZTU2NzA5IDEwMDY0NAogICAgLyogV2UgaGF2ZSBzZWVuIGluc3RhbmNlcyB3aGVyZSB0aGUg Y29tcGlsZXIgdHJpZWQgdG8gZW1pdCBhIGJ5dGUKICAgICAgIHNpemUgYXR0cmlidXRlIG9mIC0x IHdoaWNoIGVuZGVkIHVwIGJlaW5nIGVuY29kZWQgYXMgYW4gdW5zaWduZWQKICAgICAgIDB4ZmZm ZmZmZmYuICBBbHRob3VnaCAweGZmZmZmZmZmIGlzIHRlY2huaWNhbGx5IGEgdmFsaWQgc2l6ZSB2 YWx1ZSwKLUBAIC0xMzI2Myw2ICsxMzY2MCwzMCBAQCByZWFkX2luZGlyZWN0X3N0cmluZ19hdF9v ZmZzZXQgKGJmZCAqYWJmZCwgTE9OR0VTVCBzdHJfb2Zmc2V0KQorQEAgLTEzMzMzLDYgKzEzNzMw LDMwIEBAIHJlYWRfaW5kaXJlY3Rfc3RyaW5nX2F0X29mZnNldCAoYmZkICphYmZkLCBMT05HRVNU IHN0cl9vZmZzZXQpCiAgICByZXR1cm4gKGNoYXIgKikgKGR3YXJmMl9wZXJfb2JqZmlsZS0+c3Ry LmJ1ZmZlciArIHN0cl9vZmZzZXQpOwogIH0KICAKQEAgLTMxMTMsNyArMzE4NCw3IEBAIGluZGV4 IDFkNTFkYjIuLmZlNTY3MDkgMTAwNjQ0CiAgc3RhdGljIGNoYXIgKgogIHJlYWRfaW5kaXJlY3Rf c3RyaW5nIChiZmQgKmFiZmQsIGdkYl9ieXRlICpidWYsCiAgCQkgICAgICBjb25zdCBzdHJ1Y3Qg Y29tcF91bml0X2hlYWQgKmN1X2hlYWRlciwKLUBAIC0xMzczNCw2ICsxNDE1NSwzMCBAQCBhZGRf ZmlsZV9uYW1lIChzdHJ1Y3QgbGluZV9oZWFkZXIgKmxoLAorQEAgLTEzODA0LDYgKzE0MjI1LDMw IEBAIGFkZF9maWxlX25hbWUgKHN0cnVjdCBsaW5lX2hlYWRlciAqbGgsCiAgICBmZS0+c3ltdGFi ID0gTlVMTDsKICB9CiAgCkBAIC0zMTQ0LDcgKzMyMTUsNyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2 NzA5IDEwMDY0NAogIC8qIFJlYWQgdGhlIHN0YXRlbWVudCBwcm9ncmFtIGhlYWRlciBzdGFydGlu ZyBhdCBPRkZTRVQgaW4KICAgICAuZGVidWdfbGluZSwgb3IgLmRlYnVnX2xpbmUuZHdvLiAgUmV0 dXJuIGEgcG9pbnRlcgogICAgIHRvIGEgc3RydWN0IGxpbmVfaGVhZGVyLCBhbGxvY2F0ZWQgdXNp bmcgeG1hbGxvYy4KLUBAIC0xMzc1NCwxMyArMTQxOTksNyBAQCBkd2FyZl9kZWNvZGVfbGluZV9o ZWFkZXIgKHVuc2lnbmVkIGludCBvZmZzZXQsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQorQEAgLTEz ODI0LDEzICsxNDI2OSw3IEBAIGR3YXJmX2RlY29kZV9saW5lX2hlYWRlciAodW5zaWduZWQgaW50 IG9mZnNldCwgc3RydWN0IGR3YXJmMl9jdSAqY3UpCiAgICBzdHJ1Y3QgZHdhcmYyX3NlY3Rpb25f aW5mbyAqc2VjdGlvbjsKICAgIGJmZCAqYWJmZDsKICAKQEAgLTMxNTksNyArMzIzMCw3IEBAIGlu ZGV4IDFkNTFkYjIuLmZlNTY3MDkgMTAwNjQ0CiAgICBkd2FyZjJfcmVhZF9zZWN0aW9uIChkd2Fy ZjJfcGVyX29iamZpbGUtPm9iamZpbGUsIHNlY3Rpb24pOwogICAgaWYgKHNlY3Rpb24tPmJ1ZmZl ciA9PSBOVUxMKQogICAgICB7Ci1AQCAtMTQwODUsNyArMTQ1MjQsNyBAQCBkd2FyZl9kZWNvZGVf bGluZXNfMSAoc3RydWN0IGxpbmVfaGVhZGVyICpsaCwgY29uc3QgY2hhciAqY29tcF9kaXIsCitA QCAtMTQxNTUsNyArMTQ1OTQsNyBAQCBkd2FyZl9kZWNvZGVfbGluZXNfMSAoc3RydWN0IGxpbmVf aGVhZGVyICpsaCwgY29uc3QgY2hhciAqY29tcF9kaXIsCiAgCQkJIEdDZCBieSB0aGUgbGlua2Vy LiAgSWdub3JlIGl0LiAgUFIgZ2RiLzEyNTI4ICovCiAgCiAgCQkgICAgICBsb25nIGxpbmVfb2Zm c2V0CkBAIC0zMTY4LDcgKzMyMzksNyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAog IAogIAkJICAgICAgY29tcGxhaW50ICgmc3ltZmlsZV9jb21wbGFpbnRzLAogIAkJCQkgXygiLmRl YnVnX2xpbmUgYWRkcmVzcyBhdCBvZmZzZXQgMHglbHggaXMgMCAiCi1AQCAtMTQ0NjQsMTAgKzE0 OTAzLDEyIEBAIHZhcl9kZWNvZGVfbG9jYXRpb24gKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHN0 cnVjdCBzeW1ib2wgKnN5bSwKK0BAIC0xNDUzNCwxMCArMTQ5NzMsMTIgQEAgdmFyX2RlY29kZV9s b2NhdGlvbiAoc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwgc3RydWN0IHN5bWJvbCAqc3ltLAogICAg ICAgKGkuZS4gd2hlbiB0aGUgdmFsdWUgb2YgYSByZWdpc3RlciBvciBtZW1vcnkgbG9jYXRpb24g aXMKICAgICAgIHJlZmVyZW5jZWQsIG9yIGEgdGhyZWFkLWxvY2FsIGJsb2NrLCBldGMuKS4gIFRo ZW4gYWdhaW4sIGl0IG1pZ2h0CiAgICAgICBub3QgYmUgd29ydGh3aGlsZS4gIEknbSBhc3N1bWlu ZyB0aGF0IGl0IGlzbid0IHVubGVzcyBwZXJmb3JtYW5jZQpAQCAtMzE4Myw3ICszMjU0LDcgQEAg aW5kZXggMWQ1MWRiMi4uZmU1NjcwOSAxMDA2NDQKICAKICAgIGlmIChTWU1CT0xfQ09NUFVURURf T1BTIChzeW0pID09ICZkd2FyZjJfbG9jbGlzdF9mdW5jcykKICAgICAgY3UtPmhhc19sb2NsaXN0 ID0gMTsKLUBAIC0xNDUwOCw2ICsxNDk0OSw4IEBAIG5ld19zeW1ib2xfZnVsbCAoc3RydWN0IGRp ZV9pbmZvICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSwKK0BA IC0xNDU3OCw2ICsxNTAxOSw4IEBAIG5ld19zeW1ib2xfZnVsbCAoc3RydWN0IGRpZV9pbmZvICpk aWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSwKICAgICAgICBlbHNl CiAgCXN5bSA9IE9CU1RBQ0tfWkFMTE9DICgmb2JqZmlsZS0+b2JqZmlsZV9vYnN0YWNrLCBzdHJ1 Y3Qgc3ltYm9sKTsKICAgICAgICBPQkpTVEFUIChvYmpmaWxlLCBuX3N5bXMrKyk7CkBAIC0zMTky LDcgKzMyNjMsNyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogIAogICAgICAgIC8q IENhY2hlIHRoaXMgc3ltYm9sJ3MgbmFtZSBhbmQgdGhlIG5hbWUncyBkZW1hbmdsZWQgZm9ybSAo aWYgYW55KS4gICovCiAgICAgICAgU1lNQk9MX1NFVF9MQU5HVUFHRSAoc3ltLCBjdS0+bGFuZ3Vh Z2UpOwotQEAgLTE0OTMxLDYgKzE1Mzc0LDcgQEAgZHdhcmYyX2NvbnN0X3ZhbHVlX2F0dHIgKHN0 cnVjdCBhdHRyaWJ1dGUgKmF0dHIsIHN0cnVjdCB0eXBlICp0eXBlLAorQEAgLTE1MDAxLDYgKzE1 NDQ0LDcgQEAgZHdhcmYyX2NvbnN0X3ZhbHVlX2F0dHIgKHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIs IHN0cnVjdCB0eXBlICp0eXBlLAogICAgICBjYXNlIERXX0ZPUk1fc3RyaW5nOgogICAgICBjYXNl IERXX0ZPUk1fc3RycDoKICAgICAgY2FzZSBEV19GT1JNX0dOVV9zdHJfaW5kZXg6CkBAIC0zMjAw LDcgKzMyNzEsNyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogICAgICAgIC8qIERX X1NUUklORyBpcyBhbHJlYWR5IGFsbG9jYXRlZCBvbiB0aGUgb2JqZmlsZSBvYnN0YWNrLCBwb2lu dAogIAkgZGlyZWN0bHkgdG8gaXQuICAqLwogICAgICAgICpieXRlcyA9IChnZGJfYnl0ZSAqKSBE V19TVFJJTkcgKGF0dHIpOwotQEAgLTE1MTE3LDcgKzE1NTYxLDE1IEBAIGxvb2t1cF9kaWVfdHlw ZSAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHIsCitAQCAtMTUx ODcsNyArMTU2MzEsMTUgQEAgbG9va3VwX2RpZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwg c3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwKICAKICAgIC8qIEZpcnN0IHNlZSBpZiB3ZSBoYXZlIGl0 IGNhY2hlZC4gICovCiAgCkBAIC0zMjE3LDcgKzMyODgsNyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2 NzA5IDEwMDY0NAogICAgICB7CiAgICAgICAgc2VjdF9vZmZzZXQgb2Zmc2V0ID0gZHdhcmYyX2dl dF9yZWZfZGllX29mZnNldCAoYXR0cik7CiAgCi1AQCAtMTUyODIsNiArMTU3MzQsOSBAQCByZWFk X3R5cGVfZGllXzEgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkK K0BAIC0xNTM1Miw2ICsxNTgwNCw5IEBAIHJlYWRfdHlwZV9kaWVfMSAoc3RydWN0IGRpZV9pbmZv ICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQogICAgICAgIGJyZWFrOwogICAgICB9CiAgCkBA IC0zMjI3LDcgKzMyOTgsNyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogICAgcmV0 dXJuIHRoaXNfdHlwZTsKICB9CiAgCi1AQCAtMTU4OTAsNiArMTYzNDUsMTAgQEAgZHVtcF9kaWVf c2hhbGxvdyAoc3RydWN0IHVpX2ZpbGUgKmYsIGludCBpbmRlbnQsIHN0cnVjdCBkaWVfaW5mbyAq ZGllKQorQEAgLTE1OTYwLDYgKzE2NDE1LDEwIEBAIGR1bXBfZGllX3NoYWxsb3cgKHN0cnVjdCB1 aV9maWxlICpmLCBpbnQgaW5kZW50LCBzdHJ1Y3QgZGllX2luZm8gKmRpZSkKICAJICBmcHJpbnRm X3VuZmlsdGVyZWQgKGYsICJyZWYgYWRkcmVzczogIik7CiAgCSAgZnB1dHNfZmlsdGVyZWQgKGhl eF9zdHJpbmcgKERXX1VOU05EICgmZGllLT5hdHRyc1tpXSkpLCBmKTsKICAJICBicmVhazsKQEAg LTMyMzgsNyArMzMwOSw3IEBAIGluZGV4IDFkNTFkYjIuLmZlNTY3MDkgMTAwNjQ0CiAgCWNhc2Ug RFdfRk9STV9yZWYxOgogIAljYXNlIERXX0ZPUk1fcmVmMjoKICAJY2FzZSBEV19GT1JNX3JlZjQ6 Ci1AQCAtMTU5MjEsNiArMTYzODAsNyBAQCBkdW1wX2RpZV9zaGFsbG93IChzdHJ1Y3QgdWlfZmls ZSAqZiwgaW50IGluZGVudCwgc3RydWN0IGRpZV9pbmZvICpkaWUpCitAQCAtMTU5OTEsNiArMTY0 NTAsNyBAQCBkdW1wX2RpZV9zaGFsbG93IChzdHJ1Y3QgdWlfZmlsZSAqZiwgaW50IGluZGVudCwg c3RydWN0IGRpZV9pbmZvICpkaWUpCiAgCWNhc2UgRFdfRk9STV9zdHJpbmc6CiAgCWNhc2UgRFdf Rk9STV9zdHJwOgogIAljYXNlIERXX0ZPUk1fR05VX3N0cl9pbmRleDoKQEAgLTMyNDYsNyArMzMx Nyw3IEBAIGluZGV4IDFkNTFkYjIuLmZlNTY3MDkgMTAwNjQ0CiAgCSAgZnByaW50Zl91bmZpbHRl cmVkIChmLCAic3RyaW5nOiBcIiVzXCIgKCVzIGNhbm9uaWNhbGl6ZWQpIiwKICAJCSAgIERXX1NU UklORyAoJmRpZS0+YXR0cnNbaV0pCiAgCQkgICA/IERXX1NUUklORyAoJmRpZS0+YXR0cnNbaV0p IDogIiIsCi1AQCAtMTYwMjQsNiArMTY0ODQsNyBAQCBpc19yZWZfYXR0ciAoc3RydWN0IGF0dHJp YnV0ZSAqYXR0cikKK0BAIC0xNjA5NCw2ICsxNjU1NCw3IEBAIGlzX3JlZl9hdHRyIChzdHJ1Y3Qg YXR0cmlidXRlICphdHRyKQogICAgICBjYXNlIERXX0ZPUk1fcmVmNDoKICAgICAgY2FzZSBEV19G T1JNX3JlZjg6CiAgICAgIGNhc2UgRFdfRk9STV9yZWZfdWRhdGE6CkBAIC0zMjU0LDcgKzMzMjUs NyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogICAgICAgIHJldHVybiAxOwogICAg ICBkZWZhdWx0OgogICAgICAgIHJldHVybiAwOwotQEAgLTE2MTAxLDcgKzE2NTYyLDggQEAgZm9s bG93X2RpZV9yZWZfb3Jfc2lnIChzdHJ1Y3QgZGllX2luZm8gKnNyY19kaWUsIHN0cnVjdCBhdHRy aWJ1dGUgKmF0dHIsCitAQCAtMTYxNzEsNyArMTY2MzIsOCBAQCBmb2xsb3dfZGllX3JlZl9vcl9z aWcgKHN0cnVjdCBkaWVfaW5mbyAqc3JjX2RpZSwgc3RydWN0IGF0dHJpYnV0ZSAqYXR0ciwKICAg ICBSZXR1cm5zIE5VTEwgaWYgT0ZGU0VUIGlzIGludmFsaWQuICAqLwogIAogIHN0YXRpYyBzdHJ1 Y3QgZGllX2luZm8gKgpAQCAtMzI2NCw3ICszMzM1LDcgQEAgaW5kZXggMWQ1MWRiMi4uZmU1Njcw OSAxMDA2NDQKICB7CiAgICBzdHJ1Y3QgZGllX2luZm8gdGVtcF9kaWU7CiAgICBzdHJ1Y3QgZHdh cmYyX2N1ICp0YXJnZXRfY3UsICpjdSA9ICpyZWZfY3U7Ci1AQCAtMTYxMTgsMTEgKzE2NTgwLDEz IEBAIGZvbGxvd19kaWVfb2Zmc2V0IChzZWN0X29mZnNldCBvZmZzZXQsIHN0cnVjdCBkd2FyZjJf Y3UgKipyZWZfY3UpCitAQCAtMTYxODgsMTEgKzE2NjUwLDEzIEBAIGZvbGxvd19kaWVfb2Zmc2V0 IChzZWN0X29mZnNldCBvZmZzZXQsIHN0cnVjdCBkd2FyZjJfY3UgKipyZWZfY3UpCiAgICAgICAg aWYgKCEgb2Zmc2V0X2luX2N1X3AgKCZjdS0+aGVhZGVyLCBvZmZzZXQpKQogIAlyZXR1cm4gTlVM TDsKICAgICAgfQpAQCAtMzI4MCw3ICszMzUxLDcgQEAgaW5kZXggMWQ1MWRiMi4uZmU1NjcwOSAx MDA2NDQKICAKICAgICAgICAvKiBJZiBuZWNlc3NhcnksIGFkZCBpdCB0byB0aGUgcXVldWUgYW5k IGxvYWQgaXRzIERJRXMuICAqLwogICAgICAgIGlmIChtYXliZV9xdWV1ZV9jb21wX3VuaXQgKGN1 LCBwZXJfY3UsIGN1LT5sYW5ndWFnZSkpCi1AQCAtMTYxNTQsNyArMTY2MTgsMTAgQEAgZm9sbG93 X2RpZV9yZWYgKHN0cnVjdCBkaWVfaW5mbyAqc3JjX2RpZSwgc3RydWN0IGF0dHJpYnV0ZSAqYXR0 ciwKK0BAIC0xNjIyNCw3ICsxNjY4OCwxMCBAQCBmb2xsb3dfZGllX3JlZiAoc3RydWN0IGRpZV9p bmZvICpzcmNfZGllLCBzdHJ1Y3QgYXR0cmlidXRlICphdHRyLAogICAgc3RydWN0IGR3YXJmMl9j dSAqY3UgPSAqcmVmX2N1OwogICAgc3RydWN0IGRpZV9pbmZvICpkaWU7CiAgCkBAIC0zMjkyLDcg KzMzNjMsNyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogICAgaWYgKCFkaWUpCiAg ICAgIGVycm9yIChfKCJEd2FyZiBFcnJvcjogQ2Fubm90IGZpbmQgRElFIGF0IDB4JXggcmVmZXJl bmNlZCBmcm9tIERJRSAiCiAgCSAgICJhdCAweCV4IFtpbiBtb2R1bGUgJXNdIiksCi1AQCAtMTYx ODUsNyArMTY2NTIsNyBAQCBkd2FyZjJfZmV0Y2hfZGllX2xvY2F0aW9uX2Jsb2NrIChjdV9vZmZz ZXQgb2Zmc2V0X2luX2N1LAorQEAgLTE2MjU1LDcgKzE2NzIyLDcgQEAgZHdhcmYyX2ZldGNoX2Rp ZV9sb2NhdGlvbl9ibG9jayAoY3Vfb2Zmc2V0IG9mZnNldF9pbl9jdSwKICAgICAgbG9hZF9jdSAo cGVyX2N1KTsKICAgIGN1ID0gcGVyX2N1LT5jdTsKICAKQEAgLTMzMDEsNyArMzM3Miw3IEBAIGlu ZGV4IDFkNTFkYjIuLmZlNTY3MDkgMTAwNjQ0CiAgICBpZiAoIWRpZSkKICAgICAgZXJyb3IgKF8o IkR3YXJmIEVycm9yOiBDYW5ub3QgZmluZCBESUUgYXQgMHgleCByZWZlcmVuY2VkIGluIG1vZHVs ZSAlcyIpLAogIAkgICBvZmZzZXQuc2VjdF9vZmYsIHBlcl9jdS0+b2JqZmlsZS0+bmFtZSk7Ci1A QCAtMTY5NzksNiArMTc0NDYsNyBAQCBza2lwX2Zvcm1fYnl0ZXMgKGJmZCAqYWJmZCwgZ2RiX2J5 dGUgKmJ5dGVzLCBnZGJfYnl0ZSAqYnVmZmVyX2VuZCwKK0BAIC0xNzA0OSw2ICsxNzUxNiw3IEBA IHNraXBfZm9ybV9ieXRlcyAoYmZkICphYmZkLCBnZGJfYnl0ZSAqYnl0ZXMsIGdkYl9ieXRlICpi dWZmZXJfZW5kLAogIAogICAgICBjYXNlIERXX0ZPUk1fc2VjX29mZnNldDoKICAgICAgY2FzZSBE V19GT1JNX3N0cnA6CkBAIC0zMzA5LDcgKzMzODAsNyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5 IDEwMDY0NAogICAgICAgIGJ5dGVzICs9IG9mZnNldF9zaXplOwogICAgICAgIGJyZWFrOwogIAot QEAgLTE3MTM0LDcgKzE3NjAyLDcgQEAgZHdhcmZfZGVjb2RlX21hY3JvX2J5dGVzIChiZmQgKmFi ZmQsIGdkYl9ieXRlICptYWNfcHRyLCBnZGJfYnl0ZSAqbWFjX2VuZCwKK0BAIC0xNzIwNCw3ICsx NzY3Miw3IEBAIGR3YXJmX2RlY29kZV9tYWNyb19ieXRlcyAoYmZkICphYmZkLCBnZGJfYnl0ZSAq bWFjX3B0ciwgZ2RiX2J5dGUgKm1hY19lbmQsCiAgCQkJICBzdHJ1Y3QgbWFjcm9fc291cmNlX2Zp bGUgKmN1cnJlbnRfZmlsZSwKICAJCQkgIHN0cnVjdCBsaW5lX2hlYWRlciAqbGgsIGNoYXIgKmNv bXBfZGlyLAogIAkJCSAgc3RydWN0IGR3YXJmMl9zZWN0aW9uX2luZm8gKnNlY3Rpb24sCkBAIC0z MzE4LDcgKzMzODksNyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogIAkJCSAgdW5z aWduZWQgaW50IG9mZnNldF9zaXplLAogIAkJCSAgc3RydWN0IG9iamZpbGUgKm9iamZpbGUsCiAg CQkJICBodGFiX3QgaW5jbHVkZV9oYXNoKQotQEAgLTE3MTg1LDYgKzE3NjUzLDggQEAgZHdhcmZf ZGVjb2RlX21hY3JvX2J5dGVzIChiZmQgKmFiZmQsIGdkYl9ieXRlICptYWNfcHRyLCBnZGJfYnl0 ZSAqbWFjX2VuZCwKK0BAIC0xNzI1NSw2ICsxNzcyMyw4IEBAIGR3YXJmX2RlY29kZV9tYWNyb19i eXRlcyAoYmZkICphYmZkLCBnZGJfYnl0ZSAqbWFjX3B0ciwgZ2RiX2J5dGUgKm1hY19lbmQsCiAg ICAgICAgICBjYXNlIERXX01BQ1JPX0dOVV91bmRlZjoKICAJY2FzZSBEV19NQUNST19HTlVfZGVm aW5lX2luZGlyZWN0OgogIAljYXNlIERXX01BQ1JPX0dOVV91bmRlZl9pbmRpcmVjdDoKQEAgLTMz MjcsMTMgKzMzOTgsMTQgQEAgaW5kZXggMWQ1MWRiMi4uZmU1NjcwOSAxMDA2NDQKICAgICAgICAg ICAgewogICAgICAgICAgICAgIHVuc2lnbmVkIGludCBieXRlc19yZWFkOwogICAgICAgICAgICAg IGludCBsaW5lOwotQEAgLTE3MjA3LDExICsxNzY3NywyMCBAQCBkd2FyZl9kZWNvZGVfbWFjcm9f Ynl0ZXMgKGJmZCAqYWJmZCwgZ2RiX2J5dGUgKm1hY19wdHIsIGdkYl9ieXRlICptYWNfZW5kLAor QEAgLTE3Mjc3LDExICsxNzc0NywyMSBAQCBkd2FyZl9kZWNvZGVfbWFjcm9fYnl0ZXMgKGJmZCAq YWJmZCwgZ2RiX2J5dGUgKm1hY19wdHIsIGdkYl9ieXRlICptYWNfZW5kLAogIAkJc3RyX29mZnNl dCA9IHJlYWRfb2Zmc2V0XzEgKGFiZmQsIG1hY19wdHIsIG9mZnNldF9zaXplKTsKICAJCW1hY19w dHIgKz0gb2Zmc2V0X3NpemU7CiAgCiAtCQlib2R5ID0gcmVhZF9pbmRpcmVjdF9zdHJpbmdfYXRf b2Zmc2V0IChhYmZkLCBzdHJfb2Zmc2V0KTsKICsJCWlmIChtYWNpbmZvX3R5cGUgPT0gRFdfTUFD Uk9fR05VX2RlZmluZV9pbmRpcmVjdF9hbHQKLSsJCSAgICB8fCBtYWNpbmZvX3R5cGUgPT0gRFdf TUFDUk9fR05VX3VuZGVmX2luZGlyZWN0X2FsdCkKKysJCSAgICB8fCBtYWNpbmZvX3R5cGUgPT0g RFdfTUFDUk9fR05VX3VuZGVmX2luZGlyZWN0X2FsdAorKwkJICAgIHx8IHNlY3Rpb25faXNfZHd6 KQogKwkJICB7CiArCQkgICAgc3RydWN0IGR3el9maWxlICpkd3ogPSBkd2FyZjJfZ2V0X2R3el9m aWxlICgpOwogKwpAQCAtMzM1MCw3ICszNDIyLDcgQEAgaW5kZXggMWQ1MWRiMi4uZmU1NjcwOSAx MDA2NDQKICAgICAgICAgICAgICBpZiAoISBjdXJyZW50X2ZpbGUpCiAgCSAgICAgIHsKICAJCS8q IERXQVJGIHZpb2xhdGlvbiBhcyBubyBtYWluIHNvdXJjZSBpcyBwcmVzZW50LiAgKi8KLUBAIC0x NzIzNSw3ICsxNzcxNCw4IEBAIGR3YXJmX2RlY29kZV9tYWNyb19ieXRlcyAoYmZkICphYmZkLCBn ZGJfYnl0ZSAqbWFjX3B0ciwgZ2RiX2J5dGUgKm1hY19lbmQsCitAQCAtMTczMDUsNyArMTc3ODUs OCBAQCBkd2FyZl9kZWNvZGVfbWFjcm9fYnl0ZXMgKGJmZCAqYWJmZCwgZ2RiX2J5dGUgKm1hY19w dHIsIGdkYl9ieXRlICptYWNfZW5kLAogIAkgICAgZWxzZQogIAkgICAgICB7CiAgCQlnZGJfYXNz ZXJ0IChtYWNpbmZvX3R5cGUgPT0gRFdfTUFDUk9fR05VX3VuZGVmCkBAIC0zMzYwLDcgKzM0MzIs NyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogIAkJbWFjcm9fdW5kZWYgKGN1cnJl bnRfZmlsZSwgbGluZSwgYm9keSk7CiAgCSAgICAgIH0KICAgICAgICAgICAgfQotQEAgLTE3MzEw LDYgKzE3NzkwLDcgQEAgZHdhcmZfZGVjb2RlX21hY3JvX2J5dGVzIChiZmQgKmFiZmQsIGdkYl9i eXRlICptYWNfcHRyLCBnZGJfYnl0ZSAqbWFjX2VuZCwKK0BAIC0xNzM4MCw2ICsxNzg2MSw3IEBA IGR3YXJmX2RlY29kZV9tYWNyb19ieXRlcyAoYmZkICphYmZkLCBnZGJfYnl0ZSAqbWFjX3B0ciwg Z2RiX2J5dGUgKm1hY19lbmQsCiAgICAgICAgICAgIGJyZWFrOwogIAogIAljYXNlIERXX01BQ1JP X0dOVV90cmFuc3BhcmVudF9pbmNsdWRlOgpAQCAtMzM2OCw3ICszNDQwLDcgQEAgaW5kZXggMWQ1 MWRiMi4uZmU1NjcwOSAxMDA2NDQKICAJICB7CiAgCSAgICBMT05HRVNUIG9mZnNldDsKICAJICAg IHZvaWQgKipzbG90OwotQEAgLTE3MzI4LDEzICsxNzgwOSwzMiBAQCBkd2FyZl9kZWNvZGVfbWFj cm9fYnl0ZXMgKGJmZCAqYWJmZCwgZ2RiX2J5dGUgKm1hY19wdHIsIGdkYl9ieXRlICptYWNfZW5k LAorQEAgLTE3Mzk4LDEzICsxNzg4MCwzMiBAQCBkd2FyZl9kZWNvZGVfbWFjcm9fYnl0ZXMgKGJm ZCAqYWJmZCwgZ2RiX2J5dGUgKm1hY19wdHIsIGdkYl9ieXRlICptYWNfZW5kLAogIAkgICAgICB9 CiAgCSAgICBlbHNlCiAgCSAgICAgIHsKQEAgLTM0MDUsNyArMzQ3NywyNCBAQCBpbmRleCAxZDUx ZGIyLi5mZTU2NzA5IDEwMDY0NAogIAkJCQkJICBvZmZzZXRfc2l6ZSwgb2JqZmlsZSwgaW5jbHVk ZV9oYXNoKTsKICAKICAJCWh0YWJfcmVtb3ZlX2VsdCAoaW5jbHVkZV9oYXNoLCBtYWNfcHRyKTsK LUBAIC0xNzU1Myw3ICsxODA1Myw4IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBkd2Fy ZjJfY3UgKmN1LCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAorQEAgLTE3NTcxLDYgKzE4MDcyLDggQEAg ZHdhcmZfZGVjb2RlX21hY3JvcyAoc3RydWN0IGR3YXJmMl9jdSAqY3UsIHVuc2lnbmVkIGludCBv ZmZzZXQsCisgCisgCWNhc2UgRFdfTUFDUk9fR05VX2RlZmluZV9pbmRpcmVjdDoKKyAJY2FzZSBE V19NQUNST19HTlVfdW5kZWZfaW5kaXJlY3Q6CisrCWNhc2UgRFdfTUFDUk9fR05VX2RlZmluZV9p bmRpcmVjdF9hbHQ6CisrCWNhc2UgRFdfTUFDUk9fR05VX3VuZGVmX2luZGlyZWN0X2FsdDoKKyAJ ICB7CisgCSAgICB1bnNpZ25lZCBpbnQgYnl0ZXNfcmVhZDsKKyAKK0BAIC0xNzU4MSw2ICsxODA4 NCw3IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBkd2FyZjJfY3UgKmN1LCB1bnNpZ25l ZCBpbnQgb2Zmc2V0LAorIAkgIGJyZWFrOworIAorIAljYXNlIERXX01BQ1JPX0dOVV90cmFuc3Bh cmVudF9pbmNsdWRlOgorKwljYXNlIERXX01BQ1JPX0dOVV90cmFuc3BhcmVudF9pbmNsdWRlX2Fs dDoKKyAJICAvKiBOb3RlIHRoYXQsIGFjY29yZGluZyB0byB0aGUgc3BlYywgYSB0cmFuc3BhcmVu dCBpbmNsdWRlCisgCSAgICAgY2hhaW4gY2Fubm90IGNhbGwgRFdfTUFDUk9fR05VX3N0YXJ0X2Zp bGUuICBTbywgd2UgY2FuIGp1c3QKKyAJICAgICBza2lwIHRoaXMgb3Bjb2RlLiAgKi8KK0BAIC0x NzYyMyw3ICsxODEyNyw4IEBAIGR3YXJmX2RlY29kZV9tYWNyb3MgKHN0cnVjdCBkd2FyZjJfY3Ug KmN1LCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAogICAgc2xvdCA9IGh0YWJfZmluZF9zbG90IChpbmNs dWRlX2hhc2gsIG1hY19wdHIsIElOU0VSVCk7CiAgICAqc2xvdCA9IG1hY19wdHI7CiAgICBkd2Fy Zl9kZWNvZGVfbWFjcm9fYnl0ZXMgKGFiZmQsIG1hY19wdHIsIG1hY19lbmQsCkBAIC0zNDE1LDcg KzM1MDQsNyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogIAkJCSAgICBvZmZzZXRf c2l6ZSwgb2JqZmlsZSwgaW5jbHVkZV9oYXNoKTsKICAgIGRvX2NsZWFudXBzIChjbGVhbnVwKTsK ICB9Ci1AQCAtMTc2NTEsNjIgKzE4MTUyLDEwMCBAQCBmaWxsX2luX2xvY2xpc3RfYmF0b24gKHN0 cnVjdCBkd2FyZjJfY3UgKmN1LAorQEAgLTE3NzIxLDYyICsxODIyNiwxMDAgQEAgZmlsbF9pbl9s b2NsaXN0X2JhdG9uIChzdHJ1Y3QgZHdhcmYyX2N1ICpjdSwKICAgIGJhdG9uLT5mcm9tX2R3byA9 IGN1LT5kd29fdW5pdCAhPSBOVUxMOwogIH0KICAKQEAgLTM1NTQsNyArMzY0Myw3IEBAIGluZGV4 IDFkNTFkYjIuLmZlNTY3MDkgMTAwNjQ0CiAgICAgIH0KICB9CiAgCi1AQCAtMTc4MDgsMjggKzE4 MzQ3LDM1IEBAIGR3YXJmMl9wZXJfY3VfdGV4dF9vZmZzZXQgKHN0cnVjdCBkd2FyZjJfcGVyX2N1 X2RhdGEgKnBlcl9jdSkKK0BAIC0xNzg3OCwyOCArMTg0MjEsMzUgQEAgZHdhcmYyX3Blcl9jdV90 ZXh0X29mZnNldCAoc3RydWN0IGR3YXJmMl9wZXJfY3VfZGF0YSAqcGVyX2N1KQogIAogIHN0YXRp YyBzdHJ1Y3QgZHdhcmYyX3Blcl9jdV9kYXRhICoKICBkd2FyZjJfZmluZF9jb250YWluaW5nX2Nv bXBfdW5pdCAoc2VjdF9vZmZzZXQgb2Zmc2V0LApAQCAtMzU5NSw3ICszNjg0LDcgQEAgaW5kZXgg MWQ1MWRiMi4uZmU1NjcwOSAxMDA2NDQKICAJZXJyb3IgKF8oIkR3YXJmIEVycm9yOiBjb3VsZCBu b3QgZmluZCBwYXJ0aWFsIERJRSBjb250YWluaW5nICIKICAJICAgICAgICJvZmZzZXQgMHglbHgg W2luIG1vZHVsZSAlc10iKSwKICAJICAgICAgIChsb25nKSBvZmZzZXQuc2VjdF9vZmYsIGJmZF9n ZXRfZmlsZW5hbWUgKG9iamZpbGUtPm9iZmQpKTsKLUBAIC0xODA3MCw2ICsxODYxNiwyNSBAQCBw ZXJfY3Vfb2Zmc2V0X2FuZF90eXBlX2VxIChjb25zdCB2b2lkICppdGVtX2xocywgY29uc3Qgdm9p ZCAqaXRlbV9yaHMpCitAQCAtMTgxNDAsNiArMTg2OTAsMjUgQEAgcGVyX2N1X29mZnNldF9hbmRf dHlwZV9lcSAoY29uc3Qgdm9pZCAqaXRlbV9saHMsIGNvbnN0IHZvaWQgKml0ZW1fcmhzKQogIAkg ICYmIG9mc19saHMtPm9mZnNldC5zZWN0X29mZiA9PSBvZnNfcmhzLT5vZmZzZXQuc2VjdF9vZmYp OwogIH0KICAKQEAgLTM2MjEsNyArMzcxMCw3IEBAIGluZGV4IDFkNTFkYjIuLmZlNTY3MDkgMTAw NjQ0CiAgLyogU2V0IHRoZSB0eXBlIGFzc29jaWF0ZWQgd2l0aCBESUUgdG8gVFlQRS4gIFNhdmUg aXQgaW4gQ1UncyBoYXNoCiAgICAgdGFibGUgaWYgbmVjZXNzYXJ5LiAgRm9yIGNvbnZlbmllbmNl LCByZXR1cm4gVFlQRS4KICAKLUBAIC0xODA5NCw2ICsxODY1OSw4IEBAIHNldF9kaWVfdHlwZSAo c3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1 ICpjdSkKK0BAIC0xODE2NCw2ICsxODczMyw4IEBAIHNldF9kaWVfdHlwZSAoc3RydWN0IGRpZV9p bmZvICpkaWUsIHN0cnVjdCB0eXBlICp0eXBlLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkKICAgIHN0 cnVjdCBkd2FyZjJfcGVyX2N1X29mZnNldF9hbmRfdHlwZSAqKnNsb3QsIG9mczsKICAgIHN0cnVj dCBvYmpmaWxlICpvYmpmaWxlID0gY3UtPm9iamZpbGU7CiAgCkBAIC0zNjMwLDcgKzM3MTksNyBA QCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogICAgLyogRm9yIEFkYSB0eXBlcywgbWFr ZSBzdXJlIHRoYXQgdGhlIGduYXQtc3BlY2lmaWMgZGF0YSBpcyBhbHdheXMKICAgICAgIGluaXRp YWxpemVkIChpZiBub3QgYWxyZWFkeSBzZXQpLiAgVGhlcmUgYXJlIGEgZmV3IHR5cGVzIHdoZXJl CiAgICAgICB3ZSBzaG91bGQgbm90IGJlIGRvaW5nIHNvLCBiZWNhdXNlIHRoZSB0eXBlLXNwZWNp ZmljIGFyZWEgaXMKLUBAIC0xODI3MSw1MyArMTg4MzgsMTMgQEAgc2hvd19kd2FyZjJfY21kIChj aGFyICphcmdzLCBpbnQgZnJvbV90dHkpCitAQCAtMTgzNDEsNTMgKzE4OTEyLDEzIEBAIHNob3df ZHdhcmYyX2NtZCAoY2hhciAqYXJncywgaW50IGZyb21fdHR5KQogICAgY21kX3Nob3dfbGlzdCAo c2hvd19kd2FyZjJfY21kbGlzdCwgZnJvbV90dHksICIiKTsKICB9CiAgCkBAIC0zNjg1LDcgKzM3 NzQsNyBAQCBpbmRleCAxZDUxZGIyLi5mZTU2NzA5IDEwMDY0NAogIAogICAgZm9yIChpeCA9IDA7 IGl4IDwgZHdhcmYyX3Blcl9vYmpmaWxlLT5uX2NvbXBfdW5pdHM7ICsraXgpCiAgICAgIFZFQ19m cmVlIChkd2FyZjJfcGVyX2N1X3B0ciwKLUBAIC0xODMyNyw2ICsxODg1NCw5IEBAIGR3YXJmMl9w ZXJfb2JqZmlsZV9mcmVlIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsZSwgdm9pZCAqZCkKK0BAIC0x ODM5Nyw2ICsxODkyOCw5IEBAIGR3YXJmMl9wZXJfb2JqZmlsZV9mcmVlIChzdHJ1Y3Qgb2JqZmls ZSAqb2JqZmlsZSwgdm9pZCAqZCkKICAKICAgIGlmIChkYXRhLT5kd29fZmlsZXMpCiAgICAgIGZy ZWVfZHdvX2ZpbGVzIChkYXRhLT5kd29fZmlsZXMsIG9iamZpbGUpOwpAQCAtMzY5Niw3ICszNzg1 LDcgQEAgaW5kZXggMWQ1MWRiMi4uZmU1NjcwOSAxMDA2NDQKICAKICAMCiBkaWZmIC0tZ2l0IGEv Z2RiL2VsZnJlYWQuYyBiL2dkYi9lbGZyZWFkLmMKLWluZGV4IDFlZGZiMjcuLmQ5MTA5Y2YgMTAw NjQ0CitpbmRleCAxZWRmYjI3Li4wYjU0YjhhIDEwMDY0NAogLS0tIGEvZ2RiL2VsZnJlYWQuYwog KysrIGIvZ2RiL2VsZnJlYWQuYwogQEAgLTQ0LDYgKzQ0LDcgQEAKQEAgLTM3MDcsNiArMzc5Niwx NSBAQCBpbmRleCAxZWRmYjI3Li5kOTEwOWNmIDEwMDY0NAogIAogIGV4dGVybiB2b2lkIF9pbml0 aWFsaXplX2VsZnJlYWQgKHZvaWQpOwogIAorQEAgLTExMDgsNyArMTEwOSw3IEBAIGJ1aWxkX2lk X3ZlcmlmeSAoY29uc3QgY2hhciAqZmlsZW5hbWUsIHN0cnVjdCBidWlsZF9pZCAqY2hlY2spCisg ICBpbnQgcmV0dmFsID0gMDsKKyAKKyAgIC8qIFdlIGV4cGVjdCB0byBiZSBzaWxlbnQgb24gdGhl IG5vbi1leGlzdGluZyBmaWxlcy4gICovCistICBhYmZkID0gYmZkX29wZW5fbWF5YmVfcmVtb3Rl IChmaWxlbmFtZSk7CisrICBhYmZkID0gZ2RiX2JmZF9vcGVuX21heWJlX3JlbW90ZSAoZmlsZW5h bWUpOworICAgaWYgKGFiZmQgPT0gTlVMTCkKKyAgICAgcmV0dXJuIDA7CisgCiBAQCAtMTEyMyw3 ICsxMTI0LDcgQEAgYnVpbGRfaWRfdmVyaWZ5IChjb25zdCBjaGFyICpmaWxlbmFtZSwgc3RydWN0 IGJ1aWxkX2lkICpjaGVjaykKICAgIGVsc2UKICAgICAgcmV0dmFsID0gMTsKQEAgLTM3MTYsNiAr MzgxNCwyMCBAQCBpbmRleCAxZWRmYjI3Li5kOTEwOWNmIDEwMDY0NAogIAogICAgeGZyZWUgKGZv dW5kKTsKICAKK0BAIC0xNDQ0LDEwICsxNDQ1LDEyIEBAIGVsZl9zeW1maWxlX3JlYWQgKHN0cnVj dCBvYmpmaWxlICpvYmpmaWxlLCBpbnQgc3ltZmlsZV9mbGFncykKKyAKKyAgICAgICBpZiAoZGVi dWdmaWxlKQorIAl7CisrCSAgc3RydWN0IGNsZWFudXAgKmNsZWFudXAgPSBtYWtlX2NsZWFudXAg KHhmcmVlLCBkZWJ1Z2ZpbGUpOworIAkgIGJmZCAqYWJmZCA9IHN5bWZpbGVfYmZkX29wZW4gKGRl YnVnZmlsZSk7CisgCisrCSAgbWFrZV9jbGVhbnVwX2JmZF91bnJlZiAoYWJmZCk7CisgCSAgc3lt Ym9sX2ZpbGVfYWRkX3NlcGFyYXRlIChhYmZkLCBzeW1maWxlX2ZsYWdzLCBvYmpmaWxlKTsKKy0J ICB4ZnJlZSAoZGVidWdmaWxlKTsKKysJICBkb19jbGVhbnVwcyAoY2xlYW51cCk7CisgCX0KKyAg ICAgfQorIAogZGlmZiAtLWdpdCBhL2dkYi9ldmFsLmMgYi9nZGIvZXZhbC5jCiBpbmRleCA3ZDNh OGI5Li5mNjlkZmYwIDEwMDY0NAogLS0tIGEvZ2RiL2V2YWwuYwpAQCAtNDIwNiw3ICs0MzE4LDcg QEAgaW5kZXggN2QzYThiOS4uZjY5ZGZmMCAxMDA2NDQKICsKICB9CiBkaWZmIC0tZ2l0IGEvZ2Ri L2V4ZWMuYyBiL2dkYi9leGVjLmMKLWluZGV4IDZiYTE5ODYuLjU0MGMyNzEgMTAwNjQ0CitpbmRl eCA2YmExOTg2Li5lMDc2NjA5IDEwMDY0NAogLS0tIGEvZ2RiL2V4ZWMuYwogKysrIGIvZ2RiL2V4 ZWMuYwogQEAgLTMzLDYgKzMzLDcgQEAKQEAgLTQyMjksMTcgKzQzNDEsMjcgQEAgaW5kZXggNmJh MTk4Ni4uNTQwYzI3MSAxMDA2NDQKICAKICAgICAgICAvKiBSZW1vdmluZyB0YXJnZXQgc2VjdGlv bnMgbWF5IGNsb3NlIHRoZSBleGVjX29wcyB0YXJnZXQuCiAgCSBDbGVhciBleGVjX2JmZCBiZWZv cmUgZG9pbmcgc28gdG8gcHJldmVudCByZWN1cnNpb24uICAqLwotQEAgLTEzNyw4ICsxMzYsNyBA QCBleGVjX2Nsb3NlXzEgKGludCBxdWl0dGluZykKK0BAIC0xMjgsMTcgKzEyNywxMyBAQCBleGVj X2Nsb3NlXzEgKGludCBxdWl0dGluZykKKyAgICAgICB2cCA9IG54dDsKKyAgICAgICBueHQgPSB2 cC0+bnh0OworIAorLSAgICAgIC8qIGlmIHRoZXJlIGlzIGFuIG9iamZpbGUgYXNzb2NpYXRlZCB3 aXRoIHRoaXMgYmZkLAorLSAgICAgICAgIGZyZWVfb2JqZmlsZSgpIHdpbGwgZG8gcHJvcGVyIGNs ZWFudXAgb2Ygb2JqZmlsZSAqYW5kKiBiZmQuICAqLworLQorICAgICAgIGlmICh2cC0+b2JqZmls ZSkKKyAJeworIAkgIGZyZWVfb2JqZmlsZSAodnAtPm9iamZpbGUpOwogIAkgIG5lZWRfc3ltdGFi X2NsZWFudXAgPSAxOwogIAl9Ci0gICAgICAgZWxzZSBpZiAodnAtPmJmZCAhPSBleGVjX2JmZCkK Ky0gICAgICBlbHNlIGlmICh2cC0+YmZkICE9IGV4ZWNfYmZkKQogLQkvKiBGSVhNRS1sZWFrOiBX ZSBzaG91bGQgYmUgZnJlZWluZyB2cC0+bmFtZSB0b28sIEkgdGhpbmsuICAqLwogLQlnZGJfYmZk X2Nsb3NlX29yX3dhcm4gKHZwLT5iZmQpOwotKwlnZGJfYmZkX3VucmVmICh2cC0+YmZkKTsKKysK KysgICAgICBnZGJfYmZkX3VucmVmICh2cC0+YmZkKTsKICAKICAgICAgICB4ZnJlZSAodnApOwog ICAgICB9Ci1AQCAtMjMwLDExICsyMjgsMTQgQEAgZXhlY19maWxlX2F0dGFjaCAoY2hhciAqZmls ZW5hbWUsIGludCBmcm9tX3R0eSkKK0BAIC0yMzAsMTEgKzIyNSwxNCBAQCBleGVjX2ZpbGVfYXR0 YWNoIChjaGFyICpmaWxlbmFtZSwgaW50IGZyb21fdHR5KQogIAkgICAgICZzY3JhdGNoX3BhdGhu YW1lKTsKICAJfQogICNlbmRpZgpAQCAtNDI1MSwxMyArNDM3MywxMyBAQCBpbmRleCA2YmExOTg2 Li41NDBjMjcxIDEwMDY0NAogLSAgICAgIGV4ZWNfYmZkID0gYmZkX2ZvcGVuIChzY3JhdGNoX3Bh dGhuYW1lLCBnbnV0YXJnZXQsCiAtCQkJICAgIHdyaXRlX2ZpbGVzID8gRk9QRU5fUlVCIDogRk9Q RU5fUkIsCiAtCQkJICAgIHNjcmF0Y2hfY2hhbik7Ci0rICAgICAgZXhlY19iZmQgPSBnZGJfYmZk X3JlZiAoYmZkX2ZvcGVuIChzY3JhdGNoX3BhdGhuYW1lLCBnbnV0YXJnZXQsCi0rCQkJCQkgd3Jp dGVfZmlsZXMgPyBGT1BFTl9SVUIgOiBGT1BFTl9SQiwKLSsJCQkJCSBzY3JhdGNoX2NoYW4pKTsK KysgICAgICBleGVjX2JmZCA9IGdkYl9iZmRfZm9wZW4gKHNjcmF0Y2hfcGF0aG5hbWUsIGdudXRh cmdldCwKKysJCQkJd3JpdGVfZmlsZXMgPyBGT1BFTl9SVUIgOiBGT1BFTl9SQiwKKysJCQkJc2Ny YXRjaF9jaGFuKTsKICAKICAgICAgICBpZiAoIWV4ZWNfYmZkKQogIAl7Ci1AQCAtMjQyLDEzICsy NDMsNiBAQCBleGVjX2ZpbGVfYXR0YWNoIChjaGFyICpmaWxlbmFtZSwgaW50IGZyb21fdHR5KQor QEAgLTI0MiwxMyArMjQwLDYgQEAgZXhlY19maWxlX2F0dGFjaCAoY2hhciAqZmlsZW5hbWUsIGlu dCBmcm9tX3R0eSkKICAJCSBzY3JhdGNoX3BhdGhuYW1lLCBiZmRfZXJybXNnIChiZmRfZ2V0X2Vy cm9yICgpKSk7CiAgCX0KICAKQEAgLTQyNzEsMTUgKzQzOTMsMTQgQEAgaW5kZXggNmJhMTk4Ni4u NTQwYzI3MSAxMDA2NDQKICAgICAgICBpZiAoIWJmZF9jaGVja19mb3JtYXRfbWF0Y2hlcyAoZXhl Y19iZmQsIGJmZF9vYmplY3QsICZtYXRjaGluZykpCiAgCXsKICAJICAvKiBNYWtlIHN1cmUgdG8g Y2xvc2UgZXhlY19iZmQsIG9yIGVsc2UgInJ1biIgbWlnaHQgdHJ5IHRvIHVzZQotQEAgLTI1OSw2 ICsyNTMsOCBAQCBleGVjX2ZpbGVfYXR0YWNoIChjaGFyICpmaWxlbmFtZSwgaW50IGZyb21fdHR5 KQotIAkJIGdkYl9iZmRfZXJybXNnIChiZmRfZ2V0X2Vycm9yICgpLCBtYXRjaGluZykpOwotIAl9 CitAQCAtNTU0LDYgKzU0NSw3IEBAIG1hcF92bWFwIChiZmQgKmFiZmQsIGJmZCAqYXJjaCkKKyAg IG1lbXNldCAoKGNoYXIgKikgdnAsICdcMCcsIHNpemVvZiAoKnZwKSk7CisgICB2cC0+bnh0ID0g MDsKKyAgIHZwLT5iZmQgPSBhYmZkOworKyAgZ2RiX2JmZF9yZWYgKGFiZmQpOworICAgdnAtPm5h bWUgPSBiZmRfZ2V0X2ZpbGVuYW1lIChhcmNoID8gYXJjaCA6IGFiZmQpOworICAgdnAtPm1lbWJl ciA9IGFyY2ggPyBiZmRfZ2V0X2ZpbGVuYW1lIChhYmZkKSA6ICIiOwogIAotKyAgICAgIGdkYl9i ZmRfc3Rhc2hfZmlsZW5hbWUgKGV4ZWNfYmZkKTsKLSsKLSAgICAgICAvKiBGSVhNRSAtIFRoaXMg c2hvdWxkIG9ubHkgYmUgcnVuIGZvciBSUzYwMDAsIGJ1dCB0aGUgaWZkZWYgaXMgYSBwb29yCi0g ICAgICAgICAgd2F5IHRvIGFjY29tcGxpc2guICAqLwotICNpZmRlZiBERVBSRUNBVEVEX0lCTTYw MDBfVEFSR0VUCiBkaWZmIC0tZ2l0IGEvZ2RiL2YtZXhwLnkgYi9nZGIvZi1leHAueQogaW5kZXgg MzNjNzQxOC4uNGRiMWJmYSAxMDA2NDQKIC0tLSBhL2dkYi9mLWV4cC55CkBAIC00Mzc5LDcgKzQ1 MDAsNyBAQCBpbmRleCBhOTVlZjg0Li44MzA5MTdkIDEwMDY0NAogICAgICB7CiAgICAgIGNhc2Ug VFlQRV9DT0RFX0FSUkFZOgogZGlmZiAtLWdpdCBhL2dkYi9mLXZhbHByaW50LmMgYi9nZGIvZi12 YWxwcmludC5jCi1pbmRleCA4Yjg0YjVhLi40YjI0MGEzIDEwMDY0NAoraW5kZXggNDM1OWY2Zi4u OGZmODM0YiAxMDA2NDQKIC0tLSBhL2dkYi9mLXZhbHByaW50LmMKICsrKyBiL2dkYi9mLXZhbHBy aW50LmMKIEBAIC01NCwxNSArNTQsMTcgQEAgaW50IGY3N19hcnJheV9vZmZzZXRfdGJsW01BWF9G T1JUUkFOX0RJTVMgKyAxXVsyXTsKQEAgLTQ2NjQsNyArNDc4NSw3IEBAIGluZGV4IDY2YmNlYmUu LmU1OWU1ZjIgMTAwNjQ0CiAgCQkJCSAgICAgICZ1bmF2YWlsKTsKICAKIGRpZmYgLS1naXQgYS9n ZGIvZ2NvcmUuYyBiL2dkYi9nY29yZS5jCi1pbmRleCBhZWRkYTQxLi5mOWExMzg5IDEwMDY0NAor aW5kZXggYWVkZGE0MS4uYTQ1ZTc4NyAxMDA2NDQKIC0tLSBhL2dkYi9nY29yZS5jCiArKysgYi9n ZGIvZ2NvcmUuYwogQEAgLTMzLDYgKzMzLDcgQEAKQEAgLTQ2NzUsMjAgKzQ3OTYsMTYgQEAgaW5k ZXggYWVkZGE0MS4uZjlhMTM4OSAxMDA2NDQKICAKICAvKiBUaGUgbGFyZ2VzdCBhbW91bnQgb2Yg bWVtb3J5IHRvIHJlYWQgZnJvbSB0aGUgdGFyZ2V0IGF0IG9uY2UuICBXZQogICAgIG11c3QgdGhy b3R0bGUgaXQgdG8gbGltaXQgdGhlIGFtb3VudCBvZiBtZW1vcnkgdXNlZCBieSBHREIgZHVyaW5n Ci1AQCAtNTAsMTAgKzUxLDExIEBAIHN0YXRpYyBpbnQgZ2NvcmVfbWVtb3J5X3NlY3Rpb25zIChi ZmQgKik7CitAQCAtNTAsNyArNTEsNyBAQCBzdGF0aWMgaW50IGdjb3JlX21lbW9yeV9zZWN0aW9u cyAoYmZkICopOwogIGJmZCAqCiAgY3JlYXRlX2djb3JlX2JmZCAoY2hhciAqZmlsZW5hbWUpCiAg ewogLSAgYmZkICpvYmZkID0gYmZkX29wZW53IChmaWxlbmFtZSwgZGVmYXVsdF9nY29yZV90YXJn ZXQgKCkpOwotKyAgYmZkICpvYmZkID0gZ2RiX2JmZF9yZWYgKGJmZF9vcGVudyAoZmlsZW5hbWUs IGRlZmF1bHRfZ2NvcmVfdGFyZ2V0ICgpKSk7CisrICBiZmQgKm9iZmQgPSBnZGJfYmZkX29wZW53 IChmaWxlbmFtZSwgZGVmYXVsdF9nY29yZV90YXJnZXQgKCkpOwogIAogICAgaWYgKCFvYmZkKQog ICAgICBlcnJvciAoXygiRmFpbGVkIHRvIG9wZW4gJyVzJyBmb3Igb3V0cHV0LiIpLCBmaWxlbmFt ZSk7Ci0rICBnZGJfYmZkX3N0YXNoX2ZpbGVuYW1lIChvYmZkKTsKLSAgIGJmZF9zZXRfZm9ybWF0 IChvYmZkLCBiZmRfY29yZSk7Ci0gICBiZmRfc2V0X2FyY2hfbWFjaCAob2JmZCwgZGVmYXVsdF9n Y29yZV9hcmNoICgpLCBkZWZhdWx0X2djb3JlX21hY2ggKCkpOwotICAgcmV0dXJuIG9iZmQ7Ci1A QCAtMTEwLDcgKzExMiw3IEBAIGRvX2JmZF9kZWxldGVfY2xlYW51cCAodm9pZCAqYXJnKQorQEAg LTExMCw3ICsxMTEsNyBAQCBkb19iZmRfZGVsZXRlX2NsZWFudXAgKHZvaWQgKmFyZykKICAgIGJm ZCAqb2JmZCA9IGFyZzsKICAgIGNvbnN0IGNoYXIgKmZpbGVuYW1lID0gb2JmZC0+ZmlsZW5hbWU7 CiAgCkBAIC00Njk3LDcgKzQ4MTQsNyBAQCBpbmRleCBhZWRkYTQxLi5mOWExMzg5IDEwMDY0NAog ICAgdW5saW5rIChmaWxlbmFtZSk7CiAgfQogIAotQEAgLTE1NCw3ICsxNTYsNyBAQCBnY29yZV9j b21tYW5kIChjaGFyICphcmdzLCBpbnQgZnJvbV90dHkpCitAQCAtMTU0LDcgKzE1NSw3IEBAIGdj b3JlX2NvbW1hbmQgKGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSkKICAgIGZwcmludGZfZmlsdGVy ZWQgKGdkYl9zdGRvdXQsICJTYXZlZCBjb3JlZmlsZSAlc1xuIiwgY29yZWZpbGVuYW1lKTsKICAK ICAgIGRpc2NhcmRfY2xlYW51cHMgKG9sZF9jaGFpbik7CkBAIC00NzI4LDEwICs0ODQ1LDEwIEBA IGluZGV4IGZmYjdmNTMuLmEyZTdlOTQgMTAwNjQ0CiAgYiBpbnRlcm5hbF9lcnJvcgogZGlmZiAt LWdpdCBhL2dkYi9nZGJfYmZkLmMgYi9nZGIvZ2RiX2JmZC5jCiBuZXcgZmlsZSBtb2RlIDEwMDY0 NAotaW5kZXggMDAwMDAwMC4uYjQzNTUzZgoraW5kZXggMDAwMDAwMC4uZmFjODc3NgogLS0tIC9k ZXYvbnVsbAogKysrIGIvZ2RiL2dkYl9iZmQuYwotQEAgLTAsMCArMSw0ODEgQEAKK0BAIC0wLDAg KzEsNjcwIEBACiArLyogRGVmaW5pdGlvbnMgZm9yIEJGRCB3cmFwcGVycyB1c2VkIGJ5IEdEQi4K ICsKICsgICBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIKQEAgLTQ3NTYsNiArNDg3Myw4IEBAIGlu ZGV4IDAwMDAwMDAuLmI0MzU1M2YKICsjaW5jbHVkZSAiZ2RiX2JmZC5oIgogKyNpbmNsdWRlICJn ZGJfYXNzZXJ0LmgiCiArI2luY2x1ZGUgImdkYl9zdHJpbmcuaCIKKysjaW5jbHVkZSAidWktb3V0 LmgiCisrI2luY2x1ZGUgImdkYmNtZC5oIgogKyNpbmNsdWRlICJoYXNodGFiLmgiCiArI2lmZGVm IEhBVkVfWkxJQl9ICiArI2luY2x1ZGUgPHpsaWIuaD4KQEAgLTQ3ODIsNiArNDkwMSwxMyBAQCBp bmRleCAwMDAwMDAwLi5iNDM1NTNmCiArICB2b2lkICptYXBfYWRkcjsKICt9OwogKworKy8qIEEg aGFzaCB0YWJsZSBob2xkaW5nIGV2ZXJ5IEJGRCB0aGF0IGdkYiBrbm93cyBhYm91dC4gIFRoaXMg aXMgbm90CisrICAgdG8gYmUgY29uZnVzZWQgd2l0aCAnZ2RiX2JmZF9jYWNoZScsIHdoaWNoIGlz IHVzZWQgZm9yIHNoYXJpbmcKKysgICBCRkRzOyBpbiBjb250cmFzdCwgdGhpcyBoYXNoIGlzIHVz ZWQganVzdCB0byBpbXBsZW1lbnQKKysgICAibWFpbnQgaW5mbyBiZmQiLiAgKi8KKysKKytzdGF0 aWMgaHRhYl90IGFsbF9iZmRzOworKwogKy8qIFNlZSBnZGJfYmZkLmguICAqLwogKwogK3ZvaWQK QEAgLTQ4NDksNiArNDk3NSw4IEBAIGluZGV4IDAwMDAwMDAuLmI0MzU1M2YKICsJICAmJiBzdHJj bXAgKGJmZF9nZXRfZmlsZW5hbWUgKGFiZmQpLCBzLT5maWxlbmFtZSkgPT0gMCk7CiArfQogKwor Ky8qIFNlZSBnZGJfYmZkLmguICAqLworKwogK3N0cnVjdCBiZmQgKgogK2dkYl9iZmRfb3BlbiAo Y29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdGFyZ2V0LCBpbnQgZmQpCiArewpAQCAtNDg5 MCw3ICs1MDE4LDggQEAgaW5kZXggMDAwMDAwMC4uYjQzNTUzZgogKyAgaWYgKGFiZmQgIT0gTlVM TCkKICsgICAgewogKyAgICAgIGNsb3NlIChmZCk7Ci0rICAgICAgcmV0dXJuIGdkYl9iZmRfcmVm IChhYmZkKTsKKysgICAgICBnZGJfYmZkX3JlZiAoYWJmZCk7CisrICAgICAgcmV0dXJuIGFiZmQ7 CiArICAgIH0KICsKICsgIGFiZmQgPSBiZmRfZm9wZW4gKG5hbWUsIHRhcmdldCwgRk9QRU5fUkIs IGZkKTsKQEAgLTQ5MDIsNyArNTAzMSw4IEBAIGluZGV4IDAwMDAwMDAuLmI0MzU1M2YKICsgICpz bG90ID0gYWJmZDsKICsKICsgIGdkYl9iZmRfc3Rhc2hfZmlsZW5hbWUgKGFiZmQpOwotKyAgcmV0 dXJuIGdkYl9iZmRfcmVmIChhYmZkKTsKKysgIGdkYl9iZmRfcmVmIChhYmZkKTsKKysgIHJldHVy biBhYmZkOwogK30KICsKICsvKiBBIGhlbHBlciBmdW5jdGlvbiB0aGF0IHJlbGVhc2VzIGFueSBz ZWN0aW9uIGRhdGEgYXR0YWNoZWQgdG8gdGhlCkBAIC00OTQ4LDIyICs1MDc4LDIzIEBAIGluZGV4 IDAwMDAwMDAuLmI0MzU1M2YKICsgIHJldHVybiByZXQ7CiArfQogKwotKy8qIEFkZCByZWZlcmVu Y2UgdG8gQUJGRC4gIFJldHVybnMgQUJGRC4gICovCisrLyogU2VlIGdkYl9iZmQuaC4gICovCiAr Ci0rc3RydWN0IGJmZCAqCisrdm9pZAogK2dkYl9iZmRfcmVmIChzdHJ1Y3QgYmZkICphYmZkKQog K3sKICsgIHN0cnVjdCBnZGJfYmZkX2RhdGEgKmdkYXRhOworKyAgdm9pZCAqKnNsb3Q7CiArCiAr ICBpZiAoYWJmZCA9PSBOVUxMKQotKyAgICByZXR1cm4gTlVMTDsKKysgICAgcmV0dXJuOwogKwog KyAgZ2RhdGEgPSBiZmRfdXNyZGF0YSAoYWJmZCk7CiArCiArICBpZiAoZ2RhdGEgIT0gTlVMTCkK ICsgICAgewogKyAgICAgIGdkYXRhLT5yZWZjICs9IDE7Ci0rICAgICAgcmV0dXJuIGFiZmQ7Cisr ICAgICAgcmV0dXJuOwogKyAgICB9CiArCiArICBnZGF0YSA9IGJmZF96YWxsb2MgKGFiZmQsIHNp emVvZiAoc3RydWN0IGdkYl9iZmRfZGF0YSkpOwpAQCAtNDk3MSwxNiArNTEwMiwyMCBAQCBpbmRl eCAwMDAwMDAwLi5iNDM1NTNmCiArICBnZGF0YS0+bXRpbWUgPSBiZmRfZ2V0X210aW1lIChhYmZk KTsKICsgIGJmZF91c3JkYXRhIChhYmZkKSA9IGdkYXRhOwogKwotKyAgcmV0dXJuIGFiZmQ7Cisr ICAvKiBUaGlzIGlzIHRoZSBmaXJzdCB3ZSd2ZSBzZWVuIGl0LCBzbyBhZGQgaXQgdG8gdGhlIGhh c2ggdGFibGUuICAqLworKyAgc2xvdCA9IGh0YWJfZmluZF9zbG90IChhbGxfYmZkcywgYWJmZCwg SU5TRVJUKTsKKysgIGdkYl9hc3NlcnQgKHNsb3QgJiYgISpzbG90KTsKKysgICpzbG90ID0gYWJm ZDsKICt9CiArCi0rLyogVW5yZWZlcmVuY2UgYW5kIHBvc3NpYmx5IGNsb3NlIEFCRkQuICAqLwor Ky8qIFNlZSBnZGJfYmZkLmguICAqLwogKwogK3ZvaWQKICtnZGJfYmZkX3VucmVmIChzdHJ1Y3Qg YmZkICphYmZkKQogK3sKICsgIHN0cnVjdCBnZGJfYmZkX2RhdGEgKmdkYXRhOwogKyAgc3RydWN0 IGdkYl9iZmRfY2FjaGVfc2VhcmNoIHNlYXJjaDsKKysgIHZvaWQgKipzbG90OwogKwogKyAgaWYg KGFiZmQgPT0gTlVMTCkKICsgICAgcmV0dXJuOwpAQCAtNTAwOSw2ICs1MTQ0LDggQEAgaW5kZXgg MDAwMDAwMC4uYjQzNTUzZgogKwogKyAgYmZkX3VzcmRhdGEgKGFiZmQpID0gTlVMTDsgIC8qIFBh cmFub2lhLiAgKi8KICsKKysgIGh0YWJfcmVtb3ZlX2VsdCAoYWxsX2JmZHMsIGFiZmQpOworKwog KyAgZ2RiX2JmZF9jbG9zZV9vcl93YXJuIChhYmZkKTsKICt9CiArCkBAIC01MjEzLDEyICs1MzUw LDE4MSBAQCBpbmRleCAwMDAwMDAwLi5iNDM1NTNmCiArICAqc2l6ZSA9IGRlc2NyaXB0b3ItPnNp emU7CiArICByZXR1cm4gZGVzY3JpcHRvci0+ZGF0YTsKICt9CisrCisrDAorKworKy8qIFNlZSBn ZGJfYmZkLmguICAqLworKworK2JmZCAqCisrZ2RiX2JmZF9mb3BlbiAoY29uc3QgY2hhciAqZmls ZW5hbWUsIGNvbnN0IGNoYXIgKnRhcmdldCwgY29uc3QgY2hhciAqbW9kZSwKKysJICAgICAgIGlu dCBmZCkKKyt7CisrICBiZmQgKnJlc3VsdCA9IGJmZF9mb3BlbiAoZmlsZW5hbWUsIHRhcmdldCwg bW9kZSwgZmQpOworKworKyAgaWYgKHJlc3VsdCkKKysgICAgeworKyAgICAgIGdkYl9iZmRfc3Rh c2hfZmlsZW5hbWUgKHJlc3VsdCk7CisrICAgICAgZ2RiX2JmZF9yZWYgKHJlc3VsdCk7CisrICAg IH0KKysKKysgIHJldHVybiByZXN1bHQ7CisrfQorKworKy8qIFNlZSBnZGJfYmZkLmguICAqLwor KworK2JmZCAqCisrZ2RiX2JmZF9vcGVuciAoY29uc3QgY2hhciAqZmlsZW5hbWUsIGNvbnN0IGNo YXIgKnRhcmdldCkKKyt7CisrICBiZmQgKnJlc3VsdCA9IGJmZF9vcGVuciAoZmlsZW5hbWUsIHRh cmdldCk7CisrCisrICBpZiAocmVzdWx0KQorKyAgICB7CisrICAgICAgZ2RiX2JmZF9zdGFzaF9m aWxlbmFtZSAocmVzdWx0KTsKKysgICAgICBnZGJfYmZkX3JlZiAocmVzdWx0KTsKKysgICAgfQor KworKyAgcmV0dXJuIHJlc3VsdDsKKyt9CisrCisrLyogU2VlIGdkYl9iZmQuaC4gICovCisrCisr YmZkICoKKytnZGJfYmZkX29wZW53IChjb25zdCBjaGFyICpmaWxlbmFtZSwgY29uc3QgY2hhciAq dGFyZ2V0KQorK3sKKysgIGJmZCAqcmVzdWx0ID0gYmZkX29wZW53IChmaWxlbmFtZSwgdGFyZ2V0 KTsKKysKKysgIGlmIChyZXN1bHQpCisrICAgIHsKKysgICAgICBnZGJfYmZkX3N0YXNoX2ZpbGVu YW1lIChyZXN1bHQpOworKyAgICAgIGdkYl9iZmRfcmVmIChyZXN1bHQpOworKyAgICB9CisrCisr ICByZXR1cm4gcmVzdWx0OworK30KKysKKysvKiBTZWUgZ2RiX2JmZC5oLiAgKi8KKysKKytiZmQg KgorK2dkYl9iZmRfb3BlbnJfaW92ZWMgKGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBjb25zdCBjaGFy ICp0YXJnZXQsCisrCQkgICAgIHZvaWQgKigqb3Blbl9mdW5jKSAoc3RydWN0IGJmZCAqbmJmZCwK KysJCQkJCSB2b2lkICpvcGVuX2Nsb3N1cmUpLAorKwkJICAgICB2b2lkICpvcGVuX2Nsb3N1cmUs CisrCQkgICAgIGZpbGVfcHRyICgqcHJlYWRfZnVuYykgKHN0cnVjdCBiZmQgKm5iZmQsCisrCQkJ CQkgICAgIHZvaWQgKnN0cmVhbSwKKysJCQkJCSAgICAgdm9pZCAqYnVmLAorKwkJCQkJICAgICBm aWxlX3B0ciBuYnl0ZXMsCisrCQkJCQkgICAgIGZpbGVfcHRyIG9mZnNldCksCisrCQkgICAgIGlu dCAoKmNsb3NlX2Z1bmMpIChzdHJ1Y3QgYmZkICpuYmZkLAorKwkJCQkJdm9pZCAqc3RyZWFtKSwK KysJCSAgICAgaW50ICgqc3RhdF9mdW5jKSAoc3RydWN0IGJmZCAqYWJmZCwKKysJCQkJICAgICAg IHZvaWQgKnN0cmVhbSwKKysJCQkJICAgICAgIHN0cnVjdCBzdGF0ICpzYikpCisreworKyAgYmZk ICpyZXN1bHQgPSBiZmRfb3BlbnJfaW92ZWMgKGZpbGVuYW1lLCB0YXJnZXQsCisrCQkJCSBvcGVu X2Z1bmMsIG9wZW5fY2xvc3VyZSwKKysJCQkJIHByZWFkX2Z1bmMsIGNsb3NlX2Z1bmMsIHN0YXRf ZnVuYyk7CisrCisrICBpZiAocmVzdWx0KQorKyAgICB7CisrICAgICAgZ2RiX2JmZF9yZWYgKHJl c3VsdCk7CisrICAgICAgZ2RiX2JmZF9zdGFzaF9maWxlbmFtZSAocmVzdWx0KTsKKysgICAgfQor KworKyAgcmV0dXJuIHJlc3VsdDsKKyt9CisrCisrLyogU2VlIGdkYl9iZmQuaC4gICovCisrCisr YmZkICoKKytnZGJfYmZkX29wZW5yX25leHRfYXJjaGl2ZWRfZmlsZSAoYmZkICphcmNoaXZlLCBi ZmQgKnByZXZpb3VzKQorK3sKKysgIGJmZCAqcmVzdWx0ID0gYmZkX29wZW5yX25leHRfYXJjaGl2 ZWRfZmlsZSAoYXJjaGl2ZSwgcHJldmlvdXMpOworKworKyAgaWYgKHJlc3VsdCkKKysgICAgewor KyAgICAgIGdkYl9iZmRfcmVmIChyZXN1bHQpOworKyAgICAgIC8qIE5vIG5lZWQgdG8gc3Rhc2gg dGhlIGZpbGVuYW1lIGhlcmUuICAqLworKyAgICB9CisrCisrICByZXR1cm4gcmVzdWx0OworK30K KysKKysvKiBTZWUgZ2RiX2JmZC5oLiAgKi8KKysKKytiZmQgKgorK2dkYl9iZmRfZmRvcGVuciAo Y29uc3QgY2hhciAqZmlsZW5hbWUsIGNvbnN0IGNoYXIgKnRhcmdldCwgaW50IGZkKQorK3sKKysg IGJmZCAqcmVzdWx0ID0gYmZkX2Zkb3BlbnIgKGZpbGVuYW1lLCB0YXJnZXQsIGZkKTsKKysKKysg IGlmIChyZXN1bHQpCisrICAgIHsKKysgICAgICBnZGJfYmZkX3JlZiAocmVzdWx0KTsKKysgICAg ICBnZGJfYmZkX3N0YXNoX2ZpbGVuYW1lIChyZXN1bHQpOworKyAgICB9CisrCisrICByZXR1cm4g cmVzdWx0OworK30KKysKKysMCisrCisrLyogQSBjYWxsYmFjayBmb3IgaHRhYl90cmF2ZXJzZSB0 aGF0IHByaW50cyBhIHNpbmdsZSBCRkQuICAqLworKworK3N0YXRpYyBpbnQKKytwcmludF9vbmVf YmZkICh2b2lkICoqc2xvdCwgdm9pZCAqZGF0YSkKKyt7CisrICBiZmQgKmFiZmQgPSAqc2xvdDsK KysgIHN0cnVjdCBnZGJfYmZkX2RhdGEgKmdkYXRhID0gYmZkX3VzcmRhdGEgKGFiZmQpOworKyAg c3RydWN0IHVpX291dCAqdWlvdXQgPSBkYXRhOworKyAgc3RydWN0IGNsZWFudXAgKmlubmVyOwor KworKyAgaW5uZXIgPSBtYWtlX2NsZWFudXBfdWlfb3V0X3R1cGxlX2JlZ2luX2VuZCAodWlvdXQs IE5VTEwpOworKyAgdWlfb3V0X2ZpZWxkX2ludCAodWlvdXQsICJyZWZjb3VudCIsIGdkYXRhLT5y ZWZjKTsKKysgIHVpX291dF9maWVsZF9zdHJpbmcgKHVpb3V0LCAiYWRkciIsIGhvc3RfYWRkcmVz c190b19zdHJpbmcgKGFiZmQpKTsKKysgIHVpX291dF9maWVsZF9zdHJpbmcgKHVpb3V0LCAiZmls ZW5hbWUiLCBiZmRfZ2V0X2ZpbGVuYW1lIChhYmZkKSk7CisrICB1aV9vdXRfdGV4dCAodWlvdXQs ICJcbiIpOworKyAgZG9fY2xlYW51cHMgKGlubmVyKTsKKysKKysgIHJldHVybiAxOworK30KKysK KysvKiBJbXBsZW1lbnQgdGhlICdtYWludCBpbmZvIGJmZCcgY29tbWFuZC4gICovCisrCisrc3Rh dGljIHZvaWQKKyttYWludGVuYW5jZV9pbmZvX2JmZHMgKGNoYXIgKmFyZywgaW50IGZyb21fdHR5 KQorK3sKKysgIHN0cnVjdCBjbGVhbnVwICpjbGVhbnVwOworKyAgc3RydWN0IHVpX291dCAqdWlv dXQgPSBjdXJyZW50X3Vpb3V0OworKworKyAgY2xlYW51cCA9IG1ha2VfY2xlYW51cF91aV9vdXRf dGFibGVfYmVnaW5fZW5kICh1aW91dCwgMywgLTEsICJiZmRzIik7CisrICB1aV9vdXRfdGFibGVf aGVhZGVyICh1aW91dCwgMTAsIHVpX2xlZnQsICJyZWZjb3VudCIsICJSZWZjb3VudCIpOworKyAg dWlfb3V0X3RhYmxlX2hlYWRlciAodWlvdXQsIDE4LCB1aV9sZWZ0LCAiYWRkciIsICJBZGRyZXNz Iik7CisrICB1aV9vdXRfdGFibGVfaGVhZGVyICh1aW91dCwgNDAsIHVpX2xlZnQsICJmaWxlbmFt ZSIsICJGaWxlbmFtZSIpOworKworKyAgdWlfb3V0X3RhYmxlX2JvZHkgKHVpb3V0KTsKKysgIGh0 YWJfdHJhdmVyc2UgKGFsbF9iZmRzLCBwcmludF9vbmVfYmZkLCB1aW91dCk7CisrCisrICBkb19j bGVhbnVwcyAoY2xlYW51cCk7CisrfQorKworKy8qIC1XbWlzc2luZy1wcm90b3R5cGVzICovCisr ZXh0ZXJuIGluaXRpYWxpemVfZmlsZV9mdHlwZSBfaW5pdGlhbGl6ZV9nZGJfYmZkOworKworK3Zv aWQKKytfaW5pdGlhbGl6ZV9nZGJfYmZkICh2b2lkKQorK3sKKysgIGFsbF9iZmRzID0gaHRhYl9j cmVhdGVfYWxsb2MgKDEwLCBodGFiX2hhc2hfcG9pbnRlciwgaHRhYl9lcV9wb2ludGVyLAorKwkJ CQlOVUxMLCB4Y2FsbG9jLCB4ZnJlZSk7CisrCisrICBhZGRfY21kICgiYmZkcyIsIGNsYXNzX21h aW50ZW5hbmNlLCBtYWludGVuYW5jZV9pbmZvX2JmZHMsIF8oIlwKKytMaXN0IHRoZSBCRkRzIHRo YXQgYXJlIGN1cnJlbnRseSBvcGVuLiIpLAorKwkgICAmbWFpbnRlbmFuY2VpbmZvbGlzdCk7Cisr fQogZGlmZiAtLWdpdCBhL2dkYi9nZGJfYmZkLmggYi9nZGIvZ2RiX2JmZC5oCiBuZXcgZmlsZSBt b2RlIDEwMDY0NAotaW5kZXggMDAwMDAwMC4uMWRkODJjMworaW5kZXggMDAwMDAwMC4uZjEzMWJh NwogLS0tIC9kZXYvbnVsbAogKysrIGIvZ2RiL2dkYl9iZmQuaAotQEAgLTAsMCArMSw2MSBAQAor QEAgLTAsMCArMSwxMDYgQEAKICsvKiBEZWZpbml0aW9ucyBmb3IgQkZEIHdyYXBwZXJzIHVzZWQg YnkgR0RCLgogKwogKyAgIENvcHlyaWdodCAoQykgMjAxMSwgMjAxMgpAQCAtNTI1NiwxNCArNTU2 MiwxNCBAQCBpbmRleCAwMDAwMDAwLi4xZGQ4MmMzCiArCiArc3RydWN0IGJmZCAqZ2RiX2JmZF9v cGVuIChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICp0YXJnZXQsIGludCBmZCk7CiArCi0r LyogQWNxdWlyZSBhIG5ldyByZWZlcmVuY2UgdG8gQUJGRC4gIFJldHVybnMgQUJGRCBmb3IgY29u dmVuaWVuY2UuCi0rICAgSXQgaXMgZmluZSBmb3IgQUJGRCB0byBiZSBOVUxMOyBpbiB0aGlzIGNh c2UgdGhlIGZ1bmN0aW9uIGRvZXMKLSsgICBub3RoaW5nIGFuZCByZXR1cm5zIE5VTEwuICAqLwor Ky8qIEluY3JlbWVudCB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIEFCRkQuICBJdCBpcyBmaW5lIGZv ciBBQkZEIHRvIGJlCisrICAgTlVMTDsgaW4gdGhpcyBjYXNlIHRoZSBmdW5jdGlvbiBkb2VzIG5v dGhpbmcuICAqLwogKwotK3N0cnVjdCBiZmQgKmdkYl9iZmRfcmVmIChzdHJ1Y3QgYmZkICphYmZk KTsKKyt2b2lkIGdkYl9iZmRfcmVmIChzdHJ1Y3QgYmZkICphYmZkKTsKICsKLSsvKiBSZWxlYXNl IGEgcmVmZXJlbmNlIHRvIEFCRkQuICBJZiB0aGlzIGlzIHRoZSBsYXN0IHJlZmVyZW5jZSwgQUJG RAotKyAgIHdpbGwgYmUgZnJlZWQuICBJZiBBQkZEIGlzIE5VTEwsIHRoaXMgZnVuY3Rpb24gZG9l cyBub3RoaW5nLiAgKi8KKysvKiBEZWNyZW1lbnQgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiBBQkZE LiAgSWYgdGhpcyBpcyB0aGUgbGFzdAorKyAgIHJlZmVyZW5jZSwgQUJGRCB3aWxsIGJlIGZyZWVk LiAgSWYgQUJGRCBpcyBOVUxMLCB0aGlzIGZ1bmN0aW9uIGRvZXMKKysgICBub3RoaW5nLiAgKi8K ICsKICt2b2lkIGdkYl9iZmRfdW5yZWYgKHN0cnVjdCBiZmQgKmFiZmQpOwogKwpAQCAtNTI3OSw2 ICs1NTg1LDUxIEBAIGluZGV4IDAwMDAwMDAuLjFkZDgyYzMKICsKICtjb25zdCBnZGJfYnl0ZSAq Z2RiX2JmZF9tYXBfc2VjdGlvbiAoYXNlY3Rpb24gKnNlY3Rpb24sIGJmZF9zaXplX3R5cGUgKnNp emUpOwogKworKwwKKysKKysvKiBBIHdyYXBwZXIgZm9yIGJmZF9mb3BlbiB0aGF0IGluaXRpYWxp emVzIHRoZSBnZGItc3BlY2lmaWMgcmVmZXJlbmNlCisrICAgY291bnQgYW5kIGNhbGxzIGdkYl9i ZmRfc3Rhc2hfZmlsZW5hbWUuICAqLworKworK2JmZCAqZ2RiX2JmZF9mb3BlbiAoY29uc3QgY2hh ciAqLCBjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgaW50KTsKKysKKysvKiBBIHdyYXBwZXIg Zm9yIGJmZF9vcGVuciB0aGF0IGluaXRpYWxpemVzIHRoZSBnZGItc3BlY2lmaWMgcmVmZXJlbmNl CisrICAgY291bnQgYW5kIGNhbGxzIGdkYl9iZmRfc3Rhc2hfZmlsZW5hbWUuICAqLworKworK2Jm ZCAqZ2RiX2JmZF9vcGVuciAoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopOworKworKy8qIEEg d3JhcHBlciBmb3IgYmZkX29wZW53IHRoYXQgaW5pdGlhbGl6ZXMgdGhlIGdkYi1zcGVjaWZpYyBy ZWZlcmVuY2UKKysgICBjb3VudCBhbmQgY2FsbHMgZ2RiX2JmZF9zdGFzaF9maWxlbmFtZS4gICov CisrCisrYmZkICpnZGJfYmZkX29wZW53IChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKik7Cisr CisrLyogQSB3cmFwcGVyIGZvciBiZmRfb3BlbnJfaW92ZWMgdGhhdCBpbml0aWFsaXplcyB0aGUg Z2RiLXNwZWNpZmljCisrICAgcmVmZXJlbmNlIGNvdW50IGFuZCBjYWxscyBnZGJfYmZkX3N0YXNo X2ZpbGVuYW1lLiAgKi8KKysKKytiZmQgKmdkYl9iZmRfb3BlbnJfaW92ZWMgKGNvbnN0IGNoYXIg KmZpbGVuYW1lLCBjb25zdCBjaGFyICp0YXJnZXQsCisrCQkJICB2b2lkICooKm9wZW5fZnVuYykg KHN0cnVjdCBiZmQgKm5iZmQsCisrCQkJCQkgICAgICB2b2lkICpvcGVuX2Nsb3N1cmUpLAorKwkJ CSAgdm9pZCAqb3Blbl9jbG9zdXJlLAorKwkJCSAgZmlsZV9wdHIgKCpwcmVhZF9mdW5jKSAoc3Ry dWN0IGJmZCAqbmJmZCwKKysJCQkJCQkgIHZvaWQgKnN0cmVhbSwKKysJCQkJCQkgIHZvaWQgKmJ1 ZiwKKysJCQkJCQkgIGZpbGVfcHRyIG5ieXRlcywKKysJCQkJCQkgIGZpbGVfcHRyIG9mZnNldCks CisrCQkJICBpbnQgKCpjbG9zZV9mdW5jKSAoc3RydWN0IGJmZCAqbmJmZCwKKysJCQkJCSAgICAg dm9pZCAqc3RyZWFtKSwKKysJCQkgIGludCAoKnN0YXRfZnVuYykgKHN0cnVjdCBiZmQgKmFiZmQs CisrCQkJCQkgICAgdm9pZCAqc3RyZWFtLAorKwkJCQkJICAgIHN0cnVjdCBzdGF0ICpzYikpOwor KworKy8qIEEgd3JhcHBlciBmb3IgYmZkX29wZW5yX25leHRfYXJjaGl2ZWRfZmlsZSB0aGF0IGlu aXRpYWxpemVzIHRoZQorKyAgIGdkYi1zcGVjaWZpYyByZWZlcmVuY2UgY291bnQgYW5kIGNhbGxz IGdkYl9iZmRfc3Rhc2hfZmlsZW5hbWUuICAqLworKworK2JmZCAqZ2RiX2JmZF9vcGVucl9uZXh0 X2FyY2hpdmVkX2ZpbGUgKGJmZCAqYXJjaGl2ZSwgYmZkICpwcmV2aW91cyk7CisrCisrLyogQSB3 cmFwcGVyIGZvciBiZmRfZmRvcGVuciB0aGF0IGluaXRpYWxpemVzIHRoZSBnZGItc3BlY2lmaWMK KysgICByZWZlcmVuY2UgY291bnQgYW5kIGNhbGxzIGdkYl9iZmRfc3Rhc2hfZmlsZW5hbWUuICAq LworKworK2JmZCAqZ2RiX2JmZF9mZG9wZW5yIChjb25zdCBjaGFyICpmaWxlbmFtZSwgY29uc3Qg Y2hhciAqdGFyZ2V0LCBpbnQgZmQpOworKwogKyNlbmRpZiAvKiBHREJfQkZEX0ggKi8KIGRpZmYg LS1naXQgYS9nZGIvZ2RidHlwZXMuYyBiL2dkYi9nZGJ0eXBlcy5jCiBpbmRleCA4MTQyYWI5Li5h Mjk1M2NjIDEwMDY0NApAQCAtNjQzMyw3ICs2Nzg0LDcgQEAgaW5kZXggMTdiZmJjNS4uNzJlOWNj NSAxMDA2NDQKICsKICAjZW5kaWYgLyogR0RCVFlQRVNfSCAqLwogZGlmZiAtLWdpdCBhL2dkYi9q aXQuYyBiL2dkYi9qaXQuYwotaW5kZXggNTY4ZDE3Yi4uNjQ3ODM5NyAxMDA2NDQKK2luZGV4IDU2 OGQxN2IuLmNkZDlmNDkgMTAwNjQ0CiAtLS0gYS9nZGIvaml0LmMKICsrKyBiL2dkYi9qaXQuYwog QEAgLTM4LDYgKzM4LDcgQEAKQEAgLTY0NDQsNyArNjc5NSw3IEBAIGluZGV4IDU2OGQxN2IuLjY0 NzgzOTcgMTAwNjQ0CiAgCiAgc3RhdGljIGNvbnN0IGNoYXIgKmppdF9yZWFkZXJfZGlyID0gTlVM TDsKICAKLUBAIC0xMzIsMTIgKzEzMywxMSBAQCBtZW1fYmZkX2lvdmVjX3N0YXQgKHN0cnVjdCBi ZmQgKmFiZmQsIHZvaWQgKnN0cmVhbSwgc3RydWN0IHN0YXQgKnNiKQorQEAgLTEzMiwxNyArMTMz LDE2IEBAIG1lbV9iZmRfaW92ZWNfc3RhdCAoc3RydWN0IGJmZCAqYWJmZCwgdm9pZCAqc3RyZWFt LCBzdHJ1Y3Qgc3RhdCAqc2IpCiAgc3RhdGljIHN0cnVjdCBiZmQgKgogIGJmZF9vcGVuX2Zyb21f dGFyZ2V0X21lbW9yeSAoQ09SRV9BRERSIGFkZHIsIFVMT05HRVNUIHNpemUsIGNoYXIgKnRhcmdl dCkKICB7CkBAIC02NDU0LDE5ICs2ODA1LDIxIEBAIGluZGV4IDU2OGQxN2IuLjY0NzgzOTcgMTAw NjQ0CiAgICBidWZmZXItPmJhc2UgPSBhZGRyOwogICAgYnVmZmVyLT5zaXplID0gc2l6ZTsKIC0g IHJldHVybiBiZmRfb3BlbnJfaW92ZWMgKGZpbGVuYW1lLCB0YXJnZXQsCi0rICByZXR1cm4gYmZk X29wZW5yX2lvdmVjICgiPGluLW1lbW9yeT4iLCB0YXJnZXQsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICBtZW1fYmZkX2lvdmVjX29wZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBi dWZmZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBtZW1fYmZkX2lvdmVjX3ByZWFkLAot QEAgLTg2MSw2ICs4NjEsNyBAQCBqaXRfYmZkX3RyeV9yZWFkX3N5bXRhYiAoc3RydWN0IGppdF9j b2RlX2VudHJ5ICpjb2RlX2VudHJ5LAotICAgICAgIHB1dHNfdW5maWx0ZXJlZCAoXygiRXJyb3Ig b3BlbmluZyBKSVRlZCBzeW1ib2wgZmlsZSwgaWdub3JpbmcgaXQuXG4iKSk7Ci0gICAgICAgcmV0 dXJuOwotICAgICB9Ci0rICBuYmZkID0gZ2RiX2JmZF9yZWYgKG5iZmQpOworLSAgICAgICAgICAg ICAgICAgICAgICAgICAgbWVtX2JmZF9pb3ZlY19vcGVuLAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgYnVmZmVyLAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgbWVtX2JmZF9pb3ZlY19w cmVhZCwKKy0gICAgICAgICAgICAgICAgICAgICAgICAgIG1lbV9iZmRfaW92ZWNfY2xvc2UsCist ICAgICAgICAgICAgICAgICAgICAgICAgICBtZW1fYmZkX2lvdmVjX3N0YXQpOworKyAgcmV0dXJu IGdkYl9iZmRfb3BlbnJfaW92ZWMgKCI8aW4tbWVtb3J5PiIsIHRhcmdldCwKKysJCQkgICAgICBt ZW1fYmZkX2lvdmVjX29wZW4sCisrCQkJICAgICAgYnVmZmVyLAorKwkJCSAgICAgIG1lbV9iZmRf aW92ZWNfcHJlYWQsCisrCQkJICAgICAgbWVtX2JmZF9pb3ZlY19jbG9zZSwKKysJCQkgICAgICBt ZW1fYmZkX2lvdmVjX3N0YXQpOworIH0KICAKLSAgIC8qIENoZWNrIHRoZSBmb3JtYXQuICBOT1RF OiBUaGlzIGluaXRpYWxpemVzIGltcG9ydGFudCBkYXRhIHRoYXQgR0RCIHVzZXMhCi0gICAgICBX ZSB3b3VsZCBzZWdmYXVsdCBsYXRlciB3aXRob3V0IHRoaXMgbGluZS4gICovCi1AQCAtODY4LDcg Kzg2OSw3IEBAIGppdF9iZmRfdHJ5X3JlYWRfc3ltdGFiIChzdHJ1Y3Qgaml0X2NvZGVfZW50cnkg KmNvZGVfZW50cnksCisgLyogT25lIHJlYWRlciB0aGF0IGhhcyBiZWVuIGxvYWRlZCBzdWNjZXNz ZnVsbHksIGFuZCBjYW4gcG90ZW50aWFsbHkgYmUgdXNlZCB0bworQEAgLTg2OCw3ICs4NjgsNyBA QCBqaXRfYmZkX3RyeV9yZWFkX3N5bXRhYiAoc3RydWN0IGppdF9jb2RlX2VudHJ5ICpjb2RlX2Vu dHJ5LAogICAgICB7CiAgICAgICAgcHJpbnRmX3VuZmlsdGVyZWQgKF8oIlwKICBKSVRlZCBzeW1i b2wgZmlsZSBpcyBub3QgYW4gb2JqZWN0IGZpbGUsIGlnbm9yaW5nIGl0LlxuIikpOwpAQCAtNjQ3 NSw4ICs2ODI4LDE4IEBAIGluZGV4IDU2OGQxN2IuLjY0NzgzOTcgMTAwNjQ0CiAgICAgICAgcmV0 dXJuOwogICAgICB9CiAgCitAQCAtODk2LDcgKzg5Niw4IEBAIEpJVGVkIHN5bWJvbCBmaWxlIGlz IG5vdCBhbiBvYmplY3QgZmlsZSwgaWdub3JpbmcgaXQuXG4iKSk7CisgICAgICAgICArK2k7Cisg ICAgICAgfQorIAorLSAgLyogVGhpcyBjYWxsIHRha2VzIG93bmVyc2hpcCBvZiBOQkZELiAgSXQg ZG9lcyBub3QgdGFrZSBvd25lcnNoaXAgb2YgU0FJLiAgKi8KKysgIC8qIFRoaXMgY2FsbCBkb2Vz IG5vdCB0YWtlIG93bmVyc2hpcCBvZiBTQUkuICAqLworKyAgbWFrZV9jbGVhbnVwX2JmZF91bnJl ZiAobmJmZCk7CisgICBvYmpmaWxlID0gc3ltYm9sX2ZpbGVfYWRkX2Zyb21fYmZkIChuYmZkLCAw LCBzYWksIE9CSkZfU0hBUkVELCBOVUxMKTsKKyAKKyAgIGRvX2NsZWFudXBzIChvbGRfY2xlYW51 cHMpOwogZGlmZiAtLWdpdCBhL2dkYi9tMzJyLXJvbS5jIGIvZ2RiL20zMnItcm9tLmMKLWluZGV4 IDc2ZTRiZjEuLmZmZGE2ZjkgMTAwNjQ0CitpbmRleCA3NmU0YmYxLi45YTJmNWFhIDEwMDY0NAog LS0tIGEvZ2RiL20zMnItcm9tLmMKICsrKyBiL2dkYi9tMzJyLXJvbS5jCiBAQCAtNDAsNiArNDAs NyBAQApAQCAtNjQ5Nyw3ICs2ODYwLDcgQEAgaW5kZXggNzZlNGJmMS4uZmZkYTZmOSAxMDA2NDQK ICAgICAgZmlsZW5hbWUgPSBnZXRfZXhlY19maWxlICgxKTsKICAKIC0gIGFiZmQgPSBiZmRfb3Bl bnIgKGZpbGVuYW1lLCAwKTsKLSsgIGFiZmQgPSBnZGJfYmZkX3JlZiAoYmZkX29wZW5yIChmaWxl bmFtZSwgMCkpOworKyAgYWJmZCA9IGdkYl9iZmRfb3BlbnIgKGZpbGVuYW1lLCAwKTsKICAgIGlm ICghYWJmZCkKICAgICAgZXJyb3IgKF8oIlVuYWJsZSB0byBvcGVuIGZpbGUgJXMuIiksIGZpbGVu YW1lKTsKICsgIGNsZWFudXAgPSBtYWtlX2NsZWFudXBfYmZkX3VucmVmIChhYmZkKTsKQEAgLTY1 MjUsNyArNjg4OCw3IEBAIGluZGV4IDc2ZTRiZjEuLmZmZGE2ZjkgMTAwNjQ0CiAgCiAgICBnZXR0 aW1lb2ZkYXkgKCZlbmRfdGltZSwgTlVMTCk7CiAtICBhYmZkID0gYmZkX29wZW5yIChhcmdzLCAw KTsKLSsgIGFiZmQgPSBnZGJfYmZkX3JlZiAoYmZkX29wZW5yIChhcmdzLCAwKSk7CisrICBhYmZk ID0gZ2RiX2JmZF9vcGVuciAoYXJncywgMCk7CiArICBjbGVhbnVwID0gbWFrZV9jbGVhbnVwX2Jm ZF91bnJlZiAoYWJmZCk7CiAgICBpZiAoYWJmZCAhPSBOVUxMKQogICAgICB7CQkvKiBEb3dubG9h ZCBpcyBkb25lIC0tIHByaW50IHNlY3Rpb24gc3RhdGlzdGljcy4gICovCkBAIC02NTM5LDEwICs2 OTAyLDE4IEBAIGluZGV4IDc2ZTRiZjEuLmZmZGE2ZjkgMTAwNjQ0CiAgCiAgLyogUHJvdmlkZSBh IHByb3RvdHlwZSB0byBzaWxlbmNlIC1XbWlzc2luZy1wcm90b3R5cGVzLiAgKi8KIGRpZmYgLS1n aXQgYS9nZGIvbWFjaG9yZWFkLmMgYi9nZGIvbWFjaG9yZWFkLmMKLWluZGV4IDIyNTMwYWIuLjZk MzA5YmIgMTAwNjQ0CitpbmRleCAyMjUzMGFiLi4wZDc1NzhhIDEwMDY0NAogLS0tIGEvZ2RiL21h Y2hvcmVhZC5jCiArKysgYi9nZGIvbWFjaG9yZWFkLmMKLUBAIC00NjYsMTQgKzQ2NiwxNCBAQCBt YWNob19hZGRfb3NvX3N5bWZpbGUgKG9zb19lbCAqb3NvLCBiZmQgKmFiZmQsCitAQCAtNDU0LDYg KzQ1NCw3IEBAIG1hY2hvX2FkZF9vc29fc3ltZmlsZSAob3NvX2VsICpvc28sIGJmZCAqYWJmZCwK KyAgIGFzeW1ib2wgKipzeW1wOworICAgc3RydWN0IGJmZF9oYXNoX3RhYmxlIHRhYmxlOworICAg aW50IG5icl9zZWN0aW9uczsKKysgIHN0cnVjdCBjbGVhbnVwICpjbGVhbnVwOworIAorICAgLyog UGVyIHNlY3Rpb24gZmxhZyB0byBtYXJrIHdoaWNoIHNlY3Rpb24gaGF2ZSBiZWVuIHJlYmFzZWQu ICAqLworICAgdW5zaWduZWQgY2hhciAqc2VjdGlvbnNfcmViYXNlZDsKK0BAIC00NjYsMTQgKzQ2 NywxNCBAQCBtYWNob19hZGRfb3NvX3N5bWZpbGUgKG9zb19lbCAqb3NvLCBiZmQgKmFiZmQsCiAg ICAgIHsKICAgICAgICB3YXJuaW5nIChfKCJgJXMnOiBjYW4ndCByZWFkIHN5bWJvbHM6ICVzLiIp LCBvc28tPm5hbWUsCiAgICAgICAgICAgICAgICAgYmZkX2Vycm1zZyAoYmZkX2dldF9lcnJvciAo KSkpOwpAQCAtNjU1OSw3ICs2OTMwLDcgQEAgaW5kZXggMjI1MzBhYi4uNmQzMDliYiAxMDA2NDQK ICAgICAgICByZXR1cm47CiAgICAgIH0KICAKLUBAIC00ODIsNyArNDgyLDcgQEAgbWFjaG9fYWRk X29zb19zeW1maWxlIChvc29fZWwgKm9zbywgYmZkICphYmZkLAorQEAgLTQ4Miw3ICs0ODMsNyBA QCBtYWNob19hZGRfb3NvX3N5bWZpbGUgKG9zb19lbCAqb3NvLCBiZmQgKmFiZmQsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgb3NvLT5uYnJfc3ltcykpCiAgICAgIHsKICAgICAgICB3 YXJuaW5nIChfKCJgJXMnOiBjYW4ndCBjcmVhdGUgaGFzaCB0YWJsZSIpLCBvc28tPm5hbWUpOwpA QCAtNjU2OCw3ICs2OTM5LDcgQEAgaW5kZXggMjI1MzBhYi4uNmQzMDliYiAxMDA2NDQKICAgICAg ICByZXR1cm47CiAgICAgIH0KICAKLUBAIC02MjksMTAgKzYyOSwxMCBAQCBtYWNob19hZGRfb3Nv X3N5bWZpbGUgKG9zb19lbCAqb3NvLCBiZmQgKmFiZmQsCitAQCAtNjI5LDE4ICs2MzAsMTUgQEAg bWFjaG9fYWRkX29zb19zeW1maWxlIChvc29fZWwgKm9zbywgYmZkICphYmZkLAogIAogICAgYmZk X2hhc2hfdGFibGVfZnJlZSAoJnRhYmxlKTsKICAKQEAgLTY1NzYsMTQgKzY5NDcsMjAgQEAgaW5k ZXggMjI1MzBhYi4uNmQzMDliYiAxMDA2NDQKIC0gICAgIGVpdGhlciBmcm9tIGFuIE9TTyBzeW1i b2wgbmFtZSBvciBmcm9tIGFuIGFyY2hpdmUgbmFtZS4gIE1lbW9yeSBmb3IgYm90aAogLSAgICAg aXMgbm90IG1hbmFnZWQgYnkgZ2RiLiAgKi8KIC0gIGFiZmQtPmZpbGVuYW1lID0geHN0cmR1cCAo YWJmZC0+ZmlsZW5hbWUpOwotKyAgLyogTWFrZSBzdXJlIHRoYXQgdGhlIGZpbGVuYW1lIGhhcyB0 aGUgY29ycmVjdCBsaWZldGltZS4gIFRoZQotKyAgICAgY3VycmVudCBmaWxlbmFtZSBjb21lcyBl aXRoZXIgZnJvbSBhbiBPU08gc3ltYm9sIG5hbWUgb3IgZnJvbSBhbgotKyAgICAgYXJjaGl2ZSBu YW1lLiAgTWVtb3J5IGZvciBib3RoIGlzIG5vdCBtYW5hZ2VkIGJ5IGdkYi4gICovCi0rICBnZGJf YmZkX3N0YXNoX2ZpbGVuYW1lIChhYmZkKTsKLSAKKy0KICAgIC8qIFdlIG5lZWQgdG8gY2xlYXIg U1lNRklMRV9NQUlOTElORSB0byBhdm9pZCBpbnRlcnJhY3RpdmUgcXVlc3Rpb24KICAgICAgIGZy b20gc3ltZmlsZS5jOnN5bWJvbF9maWxlX2FkZF93aXRoX2FkZHJzX29yX29mZnNldHMuICAqLwot QEAgLTY1MSw2ICs2NTEsNyBAQCBtYWNob19zeW1maWxlX3JlYWRfYWxsX29zbyAoc3RydWN0IG9i amZpbGUgKm1haW5fb2JqZmlsZSwgaW50IHN5bWZpbGVfZmxhZ3MpCisrICBjbGVhbnVwID0gbWFr ZV9jbGVhbnVwX2JmZF91bnJlZiAoYWJmZCk7CisgICBzeW1ib2xfZmlsZV9hZGRfZnJvbV9iZmQK KyAgICAgKGFiZmQsIHN5bWZpbGVfZmxhZ3MgJiB+KFNZTUZJTEVfTUFJTkxJTkUgfCBTWU1GSUxF X1ZFUkJPU0UpLCBOVUxMLAorICAgICAgbWFpbl9vYmpmaWxlLT5mbGFncyAmIChPQkpGX1JFT1JE RVJFRCB8IE9CSkZfU0hBUkVECisgCQkJICAgIHwgT0JKRl9SRUFETk9XIHwgT0JKRl9VU0VSTE9B REVEKSwKKyAgICAgIG1haW5fb2JqZmlsZSk7CisrICBkb19jbGVhbnVwcyAoY2xlYW51cCk7Cisg fQorIAorIC8qIFJlYWQgc3ltYm9scyBmcm9tIHRoZSB2ZWN0b3Igb2Ygb3NvIGZpbGVzLiAgKi8K K0BAIC02NTEsNiArNjQ5LDcgQEAgbWFjaG9fc3ltZmlsZV9yZWFkX2FsbF9vc28gKHN0cnVjdCBv YmpmaWxlICptYWluX29iamZpbGUsIGludCBzeW1maWxlX2ZsYWdzKQogICAgaW50IGl4OwogICAg VkVDIChvc29fZWwpICp2ZWM7CiAgICBvc29fZWwgKm9zbzsKQEAgLTY1OTEsNyArNjk2OCw3IEBA IGluZGV4IDIyNTMwYWIuLjZkMzA5YmIgMTAwNjQ0CiAgCiAgICB2ZWMgPSBvc29fdmVjdG9yOwog ICAgb3NvX3ZlY3RvciA9IE5VTEw7Ci1AQCAtNjc3LDYgKzY3OCw4IEBAIG1hY2hvX3N5bWZpbGVf cmVhZF9hbGxfb3NvIChzdHJ1Y3Qgb2JqZmlsZSAqbWFpbl9vYmpmaWxlLCBpbnQgc3ltZmlsZV9m bGFncykKK0BAIC02NzcsNiArNjc2LDggQEAgbWFjaG9fc3ltZmlsZV9yZWFkX2FsbF9vc28gKHN0 cnVjdCBvYmpmaWxlICptYWluX29iamZpbGUsIGludCBzeW1maWxlX2ZsYWdzKQogIAkgIG1lbWNw eSAoYXJjaGl2ZV9uYW1lLCBvc28tPm5hbWUsIHBmeF9sZW4pOwogIAkgIGFyY2hpdmVfbmFtZVtw ZnhfbGVuXSA9ICdcMCc7CiAgCkBAIC02NjAwLDE2ICs2OTc3LDE2IEBAIGluZGV4IDIyNTMwYWIu LjZkMzA5YmIgMTAwNjQ0CiAgICAgICAgICAgIC8qIENvbXB1dGUgbnVtYmVyIG9mIG9zbyBmb3Ig dGhpcyBhcmNoaXZlLiAgKi8KICAgICAgICAgICAgZm9yIChsYXN0X2l4ID0gaXg7CiAgICAgICAg ICAgICAgICAgVkVDX2l0ZXJhdGUgKG9zb19lbCwgdmVjLCBsYXN0X2l4LCBvc28yKTsgbGFzdF9p eCsrKQotQEAgLTY4Niw3ICs2ODksNyBAQCBtYWNob19zeW1maWxlX3JlYWRfYWxsX29zbyAoc3Ry dWN0IG9iamZpbGUgKm1haW5fb2JqZmlsZSwgaW50IHN5bWZpbGVfZmxhZ3MpCitAQCAtNjg2LDcg KzY4Nyw3IEBAIG1hY2hvX3N5bWZpbGVfcmVhZF9hbGxfb3NvIChzdHJ1Y3Qgb2JqZmlsZSAqbWFp bl9vYmpmaWxlLCBpbnQgc3ltZmlsZV9mbGFncykKICAgICAgICAgICAgICB9CiAgCiAgCSAgLyog T3BlbiB0aGUgYXJjaGl2ZSBhbmQgY2hlY2sgdGhlIGZvcm1hdC4gICovCiAtCSAgYXJjaGl2ZV9i ZmQgPSBiZmRfb3BlbnIgKGFyY2hpdmVfbmFtZSwgZ251dGFyZ2V0KTsKLSsJICBhcmNoaXZlX2Jm ZCA9IGdkYl9iZmRfcmVmIChiZmRfb3BlbnIgKGFyY2hpdmVfbmFtZSwgZ251dGFyZ2V0KSk7Cisr CSAgYXJjaGl2ZV9iZmQgPSBnZGJfYmZkX29wZW5yIChhcmNoaXZlX25hbWUsIGdudXRhcmdldCk7 CiAgCSAgaWYgKGFyY2hpdmVfYmZkID09IE5VTEwpCiAgCSAgICB7CiAgCSAgICAgIHdhcm5pbmcg KF8oIkNvdWxkIG5vdCBvcGVuIE9TTyBhcmNoaXZlIGZpbGUgXCIlc1wiIiksCi1AQCAtNjk4LDE3 ICs3MDEsMjEgQEAgbWFjaG9fc3ltZmlsZV9yZWFkX2FsbF9vc28gKHN0cnVjdCBvYmpmaWxlICpt YWluX29iamZpbGUsIGludCBzeW1maWxlX2ZsYWdzKQorQEAgLTY5OCwxNyArNjk5LDE4IEBAIG1h Y2hvX3N5bWZpbGVfcmVhZF9hbGxfb3NvIChzdHJ1Y3Qgb2JqZmlsZSAqbWFpbl9vYmpmaWxlLCBp bnQgc3ltZmlsZV9mbGFncykKICAJICAgIHsKICAJICAgICAgd2FybmluZyAoXygiT1NPIGFyY2hp dmUgZmlsZSBcIiVzXCIgbm90IGFuIGFyY2hpdmUuIiksCiAgCQkgICAgICAgYXJjaGl2ZV9uYW1l KTsKQEAgLTY2MjAsMTAgKzY5OTcsNyBAQCBpbmRleCAyMjUzMGFiLi42ZDMwOWJiIDEwMDY0NAog IAkgICAgfQogLQkgIG1lbWJlcl9iZmQgPSBiZmRfb3BlbnJfbmV4dF9hcmNoaXZlZF9maWxlIChh cmNoaXZlX2JmZCwgTlVMTCk7CiArCi0rCSAgZ2RiX2JmZF9zdGFzaF9maWxlbmFtZSAoYXJjaGl2 ZV9iZmQpOwotKwotKwkgIG1lbWJlcl9iZmQgPSBnZGJfYmZkX3JlZiAoYmZkX29wZW5yX25leHRf YXJjaGl2ZWRfZmlsZSAoYXJjaGl2ZV9iZmQsCi0rCQkJCQkJCQkgIE5VTEwpKTsKKysJICBtZW1i ZXJfYmZkID0gZ2RiX2JmZF9vcGVucl9uZXh0X2FyY2hpdmVkX2ZpbGUgKGFyY2hpdmVfYmZkLCBO VUxMKTsKICAKICAJICBpZiAobWVtYmVyX2JmZCA9PSBOVUxMKQogIAkgICAgewpAQCAtNjYzNCwx NSArNzAwOCwxNCBAQCBpbmRleCAyMjUzMGFiLi42ZDMwOWJiIDEwMDY0NAogICAgICAgICAgICAg ICAgaXggPSBsYXN0X2l4OwogIAkgICAgICBjb250aW51ZTsKICAJICAgIH0KLUBAIC03MzgsMTIg Kzc0NSwxMyBAQCBtYWNob19zeW1maWxlX3JlYWRfYWxsX29zbyAoc3RydWN0IG9iamZpbGUgKm1h aW5fb2JqZmlsZSwgaW50IHN5bWZpbGVfZmxhZ3MpCitAQCAtNzM4LDEyICs3NDAsMTIgQEAgbWFj aG9fc3ltZmlsZV9yZWFkX2FsbF9vc28gKHN0cnVjdCBvYmpmaWxlICptYWluX29iamZpbGUsIGlu dCBzeW1maWxlX2ZsYWdzKQogICAgICAgICAgICAgICAgICB9CiAgCiAgICAgICAgICAgICAgICBw cmV2ID0gbWVtYmVyX2JmZDsKIC0JICAgICAgbWVtYmVyX2JmZCA9IGJmZF9vcGVucl9uZXh0X2Fy Y2hpdmVkX2ZpbGUKIC0JCShhcmNoaXZlX2JmZCwgbWVtYmVyX2JmZCk7Ci0rCSAgICAgIG1lbWJl cl9iZmQKLSsJCT0gZ2RiX2JmZF9yZWYgKGJmZF9vcGVucl9uZXh0X2FyY2hpdmVkX2ZpbGUgKGFy Y2hpdmVfYmZkLAotKwkJCQkJCQkgICAgIG1lbWJlcl9iZmQpKTsKKysJICAgICAgbWVtYmVyX2Jm ZCA9IGdkYl9iZmRfb3BlbnJfbmV4dF9hcmNoaXZlZF9maWxlIChhcmNoaXZlX2JmZCwKKysJCQkJ CQkJICAgICBtZW1iZXJfYmZkKTsKICAKICAgICAgICAgICAgICAgIC8qIEZyZWUgcHJldmlvdXMg bWVtYmVyIGlmIG5vdCByZWZlcmVuY2VkIGJ5IGFuIG9zby4gICovCiAgICAgICAgICAgICAgICBp ZiAoaXgyID49IGxhc3RfaXgpCkBAIC02NjUxLDE2ICs3MDI0LDE2IEBAIGluZGV4IDIyNTMwYWIu LjZkMzA5YmIgMTAwNjQ0CiAgCSAgICB9CiAgICAgICAgICAgIGZvciAoaXgyID0gaXg7IGl4MiA8 IGxhc3RfaXg7IGl4MisrKQogICAgICAgICAgICAgIHsKLUBAIC03NTksNyArNzY3LDcgQEAgbWFj aG9fc3ltZmlsZV9yZWFkX2FsbF9vc28gKHN0cnVjdCBvYmpmaWxlICptYWluX29iamZpbGUsIGlu dCBzeW1maWxlX2ZsYWdzKQorQEAgLTc1OSw3ICs3NjEsNyBAQCBtYWNob19zeW1maWxlX3JlYWRf YWxsX29zbyAoc3RydWN0IG9iamZpbGUgKm1haW5fb2JqZmlsZSwgaW50IHN5bWZpbGVfZmxhZ3Mp CiAgCXsKICAgICAgICAgICAgYmZkICphYmZkOwogIAogLQkgIGFiZmQgPSBiZmRfb3BlbnIgKG9z by0+bmFtZSwgZ251dGFyZ2V0KTsKLSsJICBhYmZkID0gZ2RiX2JmZF9yZWYgKGJmZF9vcGVuciAo b3NvLT5uYW1lLCBnbnV0YXJnZXQpKTsKKysJICBhYmZkID0gZ2RiX2JmZF9vcGVuciAob3NvLT5u YW1lLCBnbnV0YXJnZXQpOwogIAkgIGlmICghYWJmZCkKICAgICAgICAgICAgICB3YXJuaW5nIChf KCJgJXMnOiBjYW4ndCBvcGVuIHRvIHJlYWQgc3ltYm9sczogJXMuIiksIG9zby0+bmFtZSwKICAg ICAgICAgICAgICAgICAgICAgICBiZmRfZXJybXNnIChiZmRfZ2V0X2Vycm9yICgpKSk7Ci1AQCAt NzcxLDYgKzc3OSw3IEBAIG1hY2hvX3N5bWZpbGVfcmVhZF9hbGxfb3NvIChzdHJ1Y3Qgb2JqZmls ZSAqbWFpbl9vYmpmaWxlLCBpbnQgc3ltZmlsZV9mbGFncykKK0BAIC03NzEsNiArNzczLDcgQEAg bWFjaG9fc3ltZmlsZV9yZWFkX2FsbF9vc28gKHN0cnVjdCBvYmpmaWxlICptYWluX29iamZpbGUs IGludCBzeW1maWxlX2ZsYWdzKQogICAgICB9CiAgCiAgICBWRUNfZnJlZSAob3NvX2VsLCB2ZWMp OwpAQCAtNjY2OCwyMCArNzA0MSwxOSBAQCBpbmRleCAyMjUzMGFiLi42ZDMwOWJiIDEwMDY0NAog IH0KICAKICAvKiBEU1lNIChkZWJ1ZyBzeW1ib2xzKSBmaWxlcyBjb250YWluIHRoZSBkZWJ1ZyBp bmZvIG9mIGFuIGV4ZWN1dGFibGUuCi1AQCAtODA4LDIwICs4MTcsMTggQEAgbWFjaG9fY2hlY2tf ZHN5bSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCitAQCAtODA4LDIwICs4MTEsMTcgQEAgbWFj aG9fY2hlY2tfZHN5bSAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUpCiAgICAgICAgd2FybmluZyAo XygiY2FuJ3QgZmluZCBVVUlEIGluICVzIiksIG9iamZpbGUtPm5hbWUpOwogICAgICAgIHJldHVy biBOVUxMOwogICAgICB9CiAtICBkc3ltX2ZpbGVuYW1lID0geHN0cmR1cCAoZHN5bV9maWxlbmFt ZSk7CiAtICBkc3ltX2JmZCA9IGJmZF9vcGVuciAoZHN5bV9maWxlbmFtZSwgZ251dGFyZ2V0KTsK LSsgIGRzeW1fYmZkID0gZ2RiX2JmZF9yZWYgKGJmZF9vcGVuciAoZHN5bV9maWxlbmFtZSwgZ251 dGFyZ2V0KSk7CisrICBkc3ltX2JmZCA9IGdkYl9iZmRfb3BlbnIgKGRzeW1fZmlsZW5hbWUsIGdu dXRhcmdldCk7CiAgICBpZiAoZHN5bV9iZmQgPT0gTlVMTCkKICAgICAgewogICAgICAgIHdhcm5p bmcgKF8oImNhbid0IG9wZW4gZHN5bSBmaWxlICVzIiksIGRzeW1fZmlsZW5hbWUpOwogLSAgICAg IHhmcmVlIChkc3ltX2ZpbGVuYW1lKTsKICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgfQotKyAg Z2RiX2JmZF9zdGFzaF9maWxlbmFtZSAoZHN5bV9maWxlbmFtZSk7CiAgCiAgICBpZiAoIWJmZF9j aGVja19mb3JtYXQgKGRzeW1fYmZkLCBiZmRfb2JqZWN0KSkKICAgICAgewpAQCAtNjY5Miw3ICs3 MDY0LDcgQEAgaW5kZXggMjI1MzBhYi4uNmQzMDliYiAxMDA2NDQKICAgICAgICByZXR1cm4gTlVM TDsKICAgICAgfQogIAotQEAgLTgyOSwxNiArODM2LDE0IEBAIG1hY2hvX2NoZWNrX2RzeW0gKHN0 cnVjdCBvYmpmaWxlICpvYmpmaWxlKQorQEAgLTgyOSwxNiArODI5LDE0IEBAIG1hY2hvX2NoZWNr X2RzeW0gKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEJGRF9NQUNIX09fTENfVVVJRCwgJmRzeW1fdXVpZCkgPT0gMCkKICAgICAgewog ICAgICAgIHdhcm5pbmcgKF8oImNhbid0IGZpbmQgVVVJRCBpbiAlcyIpLCBkc3ltX2ZpbGVuYW1l KTsKQEAgLTY3MTEsOCArNzA4MywyNiBAQCBpbmRleCAyMjUzMGFiLi42ZDMwOWJiIDEwMDY0NAog ICAgICAgIHJldHVybiBOVUxMOwogICAgICB9CiAgICByZXR1cm4gZHN5bV9iZmQ7CitAQCAtOTAy LDYgKzkwMCw3IEBAIG1hY2hvX3N5bWZpbGVfcmVhZCAoc3RydWN0IG9iamZpbGUgKm9iamZpbGUs IGludCBzeW1maWxlX2ZsYWdzKQorIAkgIGludCBpeDsKKyAJICBvc29fZWwgKm9zbzsKKyAgICAg ICAgICAgc3RydWN0IGJmZF9zZWN0aW9uICphc2VjdCwgKmRzZWN0OworKwkgIHN0cnVjdCBjbGVh bnVwICpjbGVhbnVwOworIAorIAkgIGlmIChtYWNoX29fZGVidWdfbGV2ZWwgPiAwKQorIAkgICAg cHJpbnRmX3VuZmlsdGVyZWQgKF8oImRzeW0gZmlsZSBmb3VuZFxuIikpOworQEAgLTkyMiw3ICs5 MjEsOSBAQCBtYWNob19zeW1maWxlX3JlYWQgKHN0cnVjdCBvYmpmaWxlICpvYmpmaWxlLCBpbnQg c3ltZmlsZV9mbGFncykKKyAgICAgICAgICAgICB9CisgCisgCSAgLyogQWRkIHRoZSBkc3ltIGZp bGUgYXMgYSBzZXBhcmF0ZSBmaWxlLiAgKi8KKysJICBjbGVhbnVwID0gbWFrZV9jbGVhbnVwX2Jm ZF91bnJlZiAoZHN5bV9iZmQpOworICAgICAgICAgICBzeW1ib2xfZmlsZV9hZGRfc2VwYXJhdGUg KGRzeW1fYmZkLCBzeW1maWxlX2ZsYWdzLCBvYmpmaWxlKTsKKysJICBkb19jbGVhbnVwcyAoY2xl YW51cCk7CisgCisgCSAgLyogRG9uJ3QgdHJ5IHRvIHJlYWQgZHdhcmYyIGZyb20gbWFpbiBmaWxl IG9yIHNoYXJlZCBsaWJyYXJpZXMuICAqLworICAgICAgICAgICByZXR1cm47CiBkaWZmIC0tZ2l0 IGEvZ2RiL21haW4uYyBiL2dkYi9tYWluLmMKLWluZGV4IDAyNWJiZTAuLmE4YzFhOTcgMTAwNjQ0 CitpbmRleCBkMDc1Njk0Li5lNGRhM2YxIDEwMDY0NAogLS0tIGEvZ2RiL21haW4uYwogKysrIGIv Z2RiL21haW4uYwogQEAgLTM3LDYgKzM3LDcgQEAKQEAgLTY3MzIsMTAgKzcxMjIsMTAgQEAgaW5k ZXggMDI1YmJlMC4uYThjMWE5NyAxMDA2NDQKICAgIC8qIFRoZXNlIGFyZSBzdGF0aWMgc28gdGhh dCB3ZSBjYW4gdGFrZSB0aGVpciBhZGRyZXNzIGluIGFuCiAgICAgICBpbml0aWFsaXplci4gICov CiAgICBzdGF0aWMgaW50IHByaW50X2hlbHA7Ci1AQCAtNDczLDEwICs0NzYsMTQgQEAgY2FwdHVy ZWRfbWFpbiAodm9pZCAqZGF0YSkKK0BAIC00NzEsMTAgKzQ3NCwxNCBAQCBjYXB0dXJlZF9tYWlu ICh2b2lkICpkYXRhKQorICAgICAgIHsiYXJncyIsIG5vX2FyZ3VtZW50LCAmc2V0X2FyZ3MsIDF9 LAorICAgICAgIHsibCIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAnbCd9LAogICAgICAgIHsicmV0 dXJuLWNoaWxkLXJlc3VsdCIsIG5vX2FyZ3VtZW50LCAmcmV0dXJuX2NoaWxkX3Jlc3VsdCwgMX0s Ci0gICAgICAgeyJ1c2UtZGVwcmVjYXRlZC1pbmRleC1zZWN0aW9ucyIsIG5vX2FyZ3VtZW50LAot ICAgICAgICAmdXNlX2RlcHJlY2F0ZWRfaW5kZXhfc2VjdGlvbnMsIDF9LAogKyNpZiBIQVZFX1BZ VEhPTgogKyAgICAgIHsicHl0aG9uIiwgbm9fYXJndW1lbnQsIDAsICdQJ30sCiArICAgICAgeyJQ Iiwgbm9fYXJndW1lbnQsIDAsICdQJ30sCkBAIC02NzQ4LDcgKzcxMzgsNyBAQCBpbmRleCAwMjVi YmUwLi5hOGMxYTk3IDEwMDY0NAogICAgICAgIHsKICAJaW50IG9wdGlvbl9pbmRleDsKICAKLUBA IC00OTQsNiArNTAxLDkgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKK0BAIC00OTIsNiAr NDk5LDkgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKICAJICBjYXNlIDA6CiAgCSAgICAv KiBMb25nIG9wdGlvbiB0aGF0IGp1c3Qgc2V0cyBhIGZsYWcuICAqLwogIAkgICAgYnJlYWs7CkBA IC02NzU4LDcgKzcxNDgsNyBAQCBpbmRleCAwMjViYmUwLi5hOGMxYTk3IDEwMDY0NAogIAkgIGNh c2UgT1BUX1NFOgogIAkgICAgc3ltYXJnID0gb3B0YXJnOwogIAkgICAgZXhlY2FyZyA9IG9wdGFy ZzsKLUBAIC03MDEsNyArNzExLDMxIEBAIGNhcHR1cmVkX21haW4gKHZvaWQgKmRhdGEpCitAQCAt Njk5LDcgKzcwOSwzMSBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRhKQogIAogICAgLyogTm93 IHRoYXQgZ2RiX2luaXQgaGFzIGNyZWF0ZWQgdGhlIGluaXRpYWwgaW5mZXJpb3IsIHdlJ3JlIGlu CiAgICAgICBwb3NpdGlvbiB0byBzZXQgYXJncyBmb3IgdGhhdCBpbmZlcmlvci4gICovCkBAIC02 NzkxLDcgKzcxODEsNyBAQCBpbmRleCAwMjViYmUwLi5hOGMxYTk3IDEwMDY0NAogICAgICB7CiAg ICAgICAgLyogVGhlIHJlbWFpbmluZyBvcHRpb25zIGFyZSB0aGUgY29tbWFuZC1saW5lIG9wdGlv bnMgZm9yIHRoZQogIAkgaW5mZXJpb3IuICBUaGUgZmlyc3Qgb25lIGlzIHRoZSBzeW0vZXhlYyBm aWxlLCBhbmQgdGhlIHJlc3QKLUBAIC05ODEsNyArMTAxNSw4IEBAIGNhcHR1cmVkX21haW4gKHZv aWQgKmRhdGEpCitAQCAtOTc5LDcgKzEwMTMsOCBAQCBjYXB0dXJlZF9tYWluICh2b2lkICpkYXRh KQogIAogICAgLyogUmVhZCBpbiB0aGUgb2xkIGhpc3RvcnkgYWZ0ZXIgYWxsIHRoZSBjb21tYW5k IGZpbGVzIGhhdmUgYmVlbgogICAgICAgcmVhZC4gICovCkBAIC02ODAxLDcgKzcxOTEsNyBAQCBp bmRleCAwMjViYmUwLi5hOGMxYTk3IDEwMDY0NAogIAogICAgaWYgKGJhdGNoX2ZsYWcpCiAgICAg IHsKLUBAIC05OTIsMTMgKzEwMjcsMjUgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKK0BA IC05OTAsMTMgKzEwMjUsMjUgQEAgY2FwdHVyZWRfbWFpbiAodm9pZCAqZGF0YSkKICAgIC8qIFNo b3cgdGltZSBhbmQvb3Igc3BhY2UgdXNhZ2UuICAqLwogICAgZG9fY2xlYW51cHMgKHByZV9zdGF0 X2NoYWluKTsKICAKQEAgLTY4MzMsNyArNzIyMyw3IEBAIGluZGV4IDAyNWJiZTAuLmE4YzFhOTcg MTAwNjQ0CiAgICAgIH0KICAgIC8qIE5vIGV4aXQgLS0gZXhpdCBpcyB0aHJvdWdoIHF1aXRfY29t bWFuZC4gICovCiAgfQotQEAgLTEwMzAsNyArMTA3NywxMiBAQCBwcmludF9nZGJfaGVscCAoc3Ry dWN0IHVpX2ZpbGUgKnN0cmVhbSkKK0BAIC0xMDI4LDcgKzEwNzUsMTIgQEAgcHJpbnRfZ2RiX2hl bHAgKHN0cnVjdCB1aV9maWxlICpzdHJlYW0pCiAgICBmcHV0c191bmZpbHRlcmVkIChfKCJcCiAg VGhpcyBpcyB0aGUgR05VIGRlYnVnZ2VyLiAgVXNhZ2U6XG5cblwKICAgICAgZ2RiIFtvcHRpb25z XSBbZXhlY3V0YWJsZS1maWxlIFtjb3JlLWZpbGUgb3IgcHJvY2Vzcy1pZF1dXG5cCkBAIC02ODQ3 LDcgKzcyMzcsNyBAQCBpbmRleCAwMjViYmUwLi5hOGMxYTk3IDEwMDY0NAogIE9wdGlvbnM6XG5c blwKICAiKSwgc3RyZWFtKTsKICAgIGZwdXRzX3VuZmlsdGVyZWQgKF8oIlwKLUBAIC0xMDcwLDcg KzExMjIsMTMgQEAgT3B0aW9uczpcblxuXAorQEAgLTEwNjgsNyArMTEyMCwxMyBAQCBPcHRpb25z OlxuXG5cCiAgICAtLW53CQkgICAgIERvIG5vdCB1c2UgYSB3aW5kb3cgaW50ZXJmYWNlLlxuXAog ICAgLS1ueCAgICAgICAgICAgICAgIERvIG5vdCByZWFkICIpLCBzdHJlYW0pOwogICAgZnB1dHNf dW5maWx0ZXJlZCAoZ2RiaW5pdCwgc3RyZWFtKTsKQEAgLTY4NjMsNyArNzI1Myw3IEBAIGluZGV4 IDAyNWJiZTAuLmE4YzFhOTcgMTAwNjQ0CiAgICAtLXJlYWRub3cgICAgICAgICAgRnVsbHkgcmVh ZCBzeW1ib2wgZmlsZXMgb24gZmlyc3QgYWNjZXNzLlxuXAogICIpLCBzdHJlYW0pOwogZGlmZiAt LWdpdCBhL2dkYi9vYmpmaWxlcy5jIGIvZ2RiL29iamZpbGVzLmMKLWluZGV4IGY1ZTVjNzUuLjVm ZjBlYjIgMTAwNjQ0CitpbmRleCBmNWU1Yzc1Li40MTE2MThmIDEwMDY0NAogLS0tIGEvZ2RiL29i amZpbGVzLmMKICsrKyBiL2dkYi9vYmpmaWxlcy5jCiBAQCAtNTMsNiArNTMsNyBAQApAQCAtNjg3 NCwxOSArNzI2NCwxNyBAQCBpbmRleCBmNWU1Yzc1Li41ZmYwZWIyIDEwMDY0NAogIAogIC8qIFBy b3RvdHlwZXMgZm9yIGxvY2FsIGZ1bmN0aW9ucyAqLwogIAotQEAgLTE5Myw5ICsxOTQsOSBAQCBh bGxvY2F0ZV9vYmpmaWxlIChiZmQgKmFiZmQsIGludCBmbGFncykKLSAKLSAgIC8qIFVwZGF0ZSB0 aGUgcGVyLW9iamZpbGUgaW5mb3JtYXRpb24gdGhhdCBjb21lcyBmcm9tIHRoZSBiZmQsIGVuc3Vy aW5nCitAQCAtMTk1LDcgKzE5Niw4IEBAIGFsbG9jYXRlX29iamZpbGUgKGJmZCAqYWJmZCwgaW50 IGZsYWdzKQogICAgICAgdGhhdCBhbnkgZGF0YSB0aGF0IGlzIHJlZmVyZW5jZSBpcyBzYXZlZCBp biB0aGUgcGVyLW9iamZpbGUgZGF0YQotLSAgICAgcmVnaW9uLiAgKi8KLSsgICAgIHJlZ2lvbi4g IE5vdGUgdGhhdCB3ZSBzdGVhbCBhIHJlZmVyZW5jZSB0byBBQkZELiAgKi8KKyAgICAgIHJlZ2lv bi4gICovCiAgCiAtICBvYmpmaWxlLT5vYmZkID0gZ2RiX2JmZF9yZWYgKGFiZmQpOwogKyAgb2Jq ZmlsZS0+b2JmZCA9IGFiZmQ7CisrICBnZGJfYmZkX3JlZiAoYWJmZCk7CiAgICBpZiAoYWJmZCAh PSBOVUxMKQogICAgICB7CiAgICAgICAgLyogTG9vayB1cCB0aGUgZ2RiYXJjaCBhc3NvY2lhdGVk IHdpdGggdGhlIEJGRC4gICovCi1AQCAtMTQ1Niw3NSArMTQ1Nyw2IEBAIG9iamZpbGVzX2NoYW5n ZWQgKHZvaWQpCitAQCAtMTQ1Niw3NSArMTQ1OCw2IEBAIG9iamZpbGVzX2NoYW5nZWQgKHZvaWQp CiAgICBnZXRfb2JqZmlsZV9wc3BhY2VfZGF0YSAoY3VycmVudF9wcm9ncmFtX3NwYWNlKS0+b2Jq ZmlsZXNfY2hhbmdlZF9wID0gMTsKICB9CiAgCkBAIC03MTk5LDcgKzc1ODcsNyBAQCBpbmRleCA4 NmYzYmRmLi5mOTA4YTYxIDEwMDY0NAogKwogICNlbmRpZiAvKiBQQVJTRVJfREVGU19IICovCiBk aWZmIC0tZ2l0IGEvZ2RiL3ByaW50Y21kLmMgYi9nZGIvcHJpbnRjbWQuYwotaW5kZXggMmEwYTg4 Ni4uYzEzYTA0NCAxMDA2NDQKK2luZGV4IGQ1YjViNjMuLjRiYzJiNWIgMTAwNjQ0CiAtLS0gYS9n ZGIvcHJpbnRjbWQuYwogKysrIGIvZ2RiL3ByaW50Y21kLmMKIEBAIC01MCw2ICs1MCw3IEBACkBA IC03MjU3LDcgKzc2NDUsNyBAQCBpbmRleCAyYTBhODg2Li5jMTNhMDQ0IDEwMDY0NAogIAwKICAK ICAvKiBBZGQgYW4gZXhwcmVzc2lvbiB0byB0aGUgYXV0by1kaXNwbGF5IGNoYWluLgotQEAgLTE5 ODAsNiArMjAwNywxMCBAQCBwcmludF92YXJpYWJsZV9hbmRfdmFsdWUgKGNvbnN0IGNoYXIgKm5h bWUsIHN0cnVjdCBzeW1ib2wgKnZhciwKK0BAIC0xOTgyLDYgKzIwMDksMTAgQEAgcHJpbnRfdmFy aWFibGVfYW5kX3ZhbHVlIChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3Qgc3ltYm9sICp2YXIsCiAg ICAgICAgc3RydWN0IHZhbHVlX3ByaW50X29wdGlvbnMgb3B0czsKICAKICAgICAgICB2YWwgPSBy ZWFkX3Zhcl92YWx1ZSAodmFyLCBmcmFtZSk7CkBAIC03MjY4LDcgKzc2NTYsNyBAQCBpbmRleCAy YTBhODg2Li5jMTNhMDQ0IDEwMDY0NAogICAgICAgIGdldF91c2VyX3ByaW50X29wdGlvbnMgKCZv cHRzKTsKICAgICAgICBvcHRzLmRlcmVmX3JlZiA9IDE7CiAgICAgICAgY29tbW9uX3ZhbF9wcmlu dCAodmFsLCBzdHJlYW0sIGluZGVudCwgJm9wdHMsIGN1cnJlbnRfbGFuZ3VhZ2UpOwotQEAgLTI2 MjAsNCArMjY1MSw4IEBAIFNob3cgcHJpbnRpbmcgb2Ygc291cmNlIGZpbGVuYW1lIGFuZCBsaW5l IG51bWJlciB3aXRoIDxzeW1ib2w+LiIpLCBOVUxMLAorQEAgLTI2MjYsNCArMjY1Nyw4IEBAIFNo b3cgcHJpbnRpbmcgb2Ygc291cmNlIGZpbGVuYW1lIGFuZCBsaW5lIG51bWJlciB3aXRoIDxzeW1i b2w+LiIpLCBOVUxMLAogICAgYWRkX2NvbSAoImV2YWwiLCBub19jbGFzcywgZXZhbF9jb21tYW5k LCBfKCJcCiAgQ29udmVydCBcInByaW50ZiBmb3JtYXQgc3RyaW5nXCIsIGFyZzEsIGFyZzIsIGFy ZzMsIC4uLiwgYXJnbiB0b1xuXAogIGEgY29tbWFuZCBsaW5lLCBhbmQgY2FsbCBpdC4iKSk7CkBA IC03Mjc4LDcgKzc2NjYsNyBAQCBpbmRleCAyYTBhODg2Li5jMTNhMDQ0IDEwMDY0NAogKyNlbmRp ZgogIH0KIGRpZmYgLS1naXQgYS9nZGIvcHJvY2ZzLmMgYi9nZGIvcHJvY2ZzLmMKLWluZGV4IDc3 NGRmMmUuLjMyY2I0NjggMTAwNjQ0CitpbmRleCA3NzRkZjJlLi40NDA5ZTViIDEwMDY0NAogLS0t IGEvZ2RiL3Byb2Nmcy5jCiArKysgYi9nZGIvcHJvY2ZzLmMKIEBAIC0zNDg2LDcgKzM0ODYsNyBA QCBpbnNlcnRfZGJ4X2xpbmtfYnB0X2luX2ZpbGUgKGludCBmZCwgQ09SRV9BRERSIGlnbm9yZWQp CkBAIC03Mjg2LDcgKzc2NzQsNyBAQCBpbmRleCA3NzRkZjJlLi4zMmNiNDY4IDEwMDY0NAogICAg Q09SRV9BRERSIHN5bV9hZGRyOwogIAogLSAgYWJmZCA9IGJmZF9mZG9wZW5yICgidW5hbWVkIiwg MCwgZmQpOwotKyAgYWJmZCA9IGdkYl9iZmRfcmVmIChiZmRfZmRvcGVuciAoInVuYW1lZCIsIDAs IGZkKSk7CisrICBhYmZkID0gZ2RiX2JmZF9mZG9wZW5yICgidW5hbWVkIiwgMCwgZmQpOwogICAg aWYgKGFiZmQgPT0gTlVMTCkKICAgICAgewogICAgICAgIHdhcm5pbmcgKF8oIkZhaWxlZCB0byBj cmVhdGUgYSBiZmQ6ICVzLiIpLCBiZmRfZXJybXNnIChiZmRfZ2V0X2Vycm9yICgpKSk7CkBAIC04 NDQ1LDcgKzg4MzMsNyBAQCBpbmRleCBiYjBmZTUyLi5lYzQyYWFjIDEwMDY0NAogIAogICAgLyog U3VjY2VlZGVkLiAgKi8KIGRpZmYgLS1naXQgYS9nZGIvcmVtb3RlLW0zMnItc2RpLmMgYi9nZGIv cmVtb3RlLW0zMnItc2RpLmMKLWluZGV4IDQ3ZjQ0MDUuLmI0YjczMjQgMTAwNjQ0CitpbmRleCA0 N2Y0NDA1Li44NTI2OGI2IDEwMDY0NAogLS0tIGEvZ2RiL3JlbW90ZS1tMzJyLXNkaS5jCiArKysg Yi9nZGIvcmVtb3RlLW0zMnItc2RpLmMKIEBAIC0zOSw2ICszOSw3IEBACkBAIC04NDYxLDcgKzg4 NDksNyBAQCBpbmRleCA0N2Y0NDA1Li5iNGI3MzI0IDEwMDY0NAogICAgICBmaWxlbmFtZSA9IGdl dF9leGVjX2ZpbGUgKDEpOwogIAogLSAgcGJmZCA9IGJmZF9vcGVuciAoZmlsZW5hbWUsIGdudXRh cmdldCk7Ci0rICBwYmZkID0gZ2RiX2JmZF9yZWYgKGJmZF9vcGVuciAoZmlsZW5hbWUsIGdudXRh cmdldCkpOworKyAgcGJmZCA9IGdkYl9iZmRfb3BlbnIgKGZpbGVuYW1lLCBnbnV0YXJnZXQpOwog ICAgaWYgKHBiZmQgPT0gTlVMTCkKICAgICAgewogICAgICAgIHBlcnJvcl93aXRoX25hbWUgKGZp bGVuYW1lKTsKQEAgLTg0NzMsNyArODg2MSw3IEBAIGluZGV4IDQ3ZjQ0MDUuLmI0YjczMjQgMTAw NjQ0CiAgICBpZiAoIWJmZF9jaGVja19mb3JtYXQgKHBiZmQsIGJmZF9vYmplY3QpKQogICAgICBl cnJvciAoXygiXCIlc1wiIGlzIG5vdCBhbiBvYmplY3QgZmlsZTogJXMiKSwgZmlsZW5hbWUsCiBk aWZmIC0tZ2l0IGEvZ2RiL3JlbW90ZS1taXBzLmMgYi9nZGIvcmVtb3RlLW1pcHMuYwotaW5kZXgg YmFiYmYxOS4uYjQ2MzI1ZiAxMDA2NDQKK2luZGV4IGJhYmJmMTkuLmRiNDM4MWIgMTAwNjQ0CiAt LS0gYS9nZGIvcmVtb3RlLW1pcHMuYwogKysrIGIvZ2RiL3JlbW90ZS1taXBzLmMKIEBAIC0zNiw2 ICszNiw3IEBACkBAIC04NDk0LDcgKzg4ODIsNyBAQCBpbmRleCBiYWJiZjE5Li5iNDYzMjVmIDEw MDY0NAogICAgYnVmZmVyID0gYWxsb2NhIChzcmVjX2ZyYW1lICogMiArIDI1Nik7CiAgCiAtICBh YmZkID0gYmZkX29wZW5yIChhcmdzLCAwKTsKLSsgIGFiZmQgPSBnZGJfYmZkX3JlZiAoYmZkX29w ZW5yIChhcmdzLCAwKSk7CisrICBhYmZkID0gZ2RiX2JmZF9vcGVuciAoYXJncywgMCk7CiAgICBp ZiAoIWFiZmQpCiAgICAgIHsKICAgICAgICBwcmludGZfZmlsdGVyZWQgKCJVbmFibGUgdG8gb3Bl biBmaWxlICVzXG4iLCBhcmdzKTsKQEAgLTg1MjcsNyArODkxNSw3IEBAIGluZGV4IGJhYmJmMTku LmI0NjMyNWYgMTAwNjQ0CiAgICBiaW5idWYgPSAodW5zaWduZWQgY2hhciAqKSB4bWFsbG9jIChC SU5DSFVOSyk7CiAgCiAtICBhYmZkID0gYmZkX29wZW5yIChmaWxlLCAwKTsKLSsgIGFiZmQgPSBn ZGJfYmZkX3JlZiAoYmZkX29wZW5yIChmaWxlLCAwKSk7CisrICBhYmZkID0gZ2RiX2JmZF9vcGVu ciAoZmlsZSwgMCk7CiAgICBpZiAoIWFiZmQpCiAgICAgIHsKICAgICAgICBwcmludGZfZmlsdGVy ZWQgKCJVbmFibGUgdG8gb3BlbiBmaWxlICVzXG4iLCBmaWxlKTsKQEAgLTg1NTEsNyArODkzOSw3 IEBAIGluZGV4IGJhYmJmMTkuLmI0NjMyNWYgMTAwNjQ0CiAgfQogIAogZGlmZiAtLWdpdCBhL2dk Yi9yZW1vdGUuYyBiL2dkYi9yZW1vdGUuYwotaW5kZXggMWM5MzY3ZC4uNmNjYWI1NCAxMDA2NDQK K2luZGV4IDFjOTM2N2QuLmYyYjVlN2IgMTAwNjQ0CiAtLS0gYS9nZGIvcmVtb3RlLmMKICsrKyBi L2dkYi9yZW1vdGUuYwogQEAgLTQyLDYgKzQyLDcgQEAKQEAgLTg1NjIsNyArODk1MCw3IEBAIGlu ZGV4IDFjOTM2N2QuLjZjY2FiNTQgMTAwNjQ0CiAgCiAgI2luY2x1ZGUgPGN0eXBlLmg+CiAgI2lu Y2x1ZGUgPHN5cy90aW1lLmg+Ci1AQCAtOTgyMywxMSArOTgyNCwxNSBAQCByZW1vdGVfZmlsZW5h bWVfcCAoY29uc3QgY2hhciAqZmlsZW5hbWUpCitAQCAtOTgyMywxMSArOTgyNCwxMyBAQCByZW1v dGVfZmlsZW5hbWVfcCAoY29uc3QgY2hhciAqZmlsZW5hbWUpCiAgYmZkICoKICByZW1vdGVfYmZk X29wZW4gKGNvbnN0IGNoYXIgKnJlbW90ZV9maWxlLCBjb25zdCBjaGFyICp0YXJnZXQpCiAgewpA QCAtODU3MSwyMCArODk1OSwxOCBAQCBpbmRleCAxYzkzNjdkLi42Y2NhYjU0IDEwMDY0NAogLQkJ CSAgcmVtb3RlX2JmZF9pb3ZlY19wcmVhZCwKIC0JCQkgIHJlbW90ZV9iZmRfaW92ZWNfY2xvc2Us CiAtCQkJICByZW1vdGVfYmZkX2lvdmVjX3N0YXQpOwotKyAgYmZkICphYmZkID0gYmZkX29wZW5y X2lvdmVjIChyZW1vdGVfZmlsZSwgdGFyZ2V0LAotKwkJCSAgICAgICByZW1vdGVfYmZkX2lvdmVj X29wZW4sIE5VTEwsCi0rCQkJICAgICAgIHJlbW90ZV9iZmRfaW92ZWNfcHJlYWQsCi0rCQkJICAg ICAgIHJlbW90ZV9iZmRfaW92ZWNfY2xvc2UsCi0rCQkJICAgICAgIHJlbW90ZV9iZmRfaW92ZWNf c3RhdCk7CisrICBiZmQgKmFiZmQgPSBnZGJfYmZkX29wZW5yX2lvdmVjIChyZW1vdGVfZmlsZSwg dGFyZ2V0LAorKwkJCQkgICByZW1vdGVfYmZkX2lvdmVjX29wZW4sIE5VTEwsCisrCQkJCSAgIHJl bW90ZV9iZmRfaW92ZWNfcHJlYWQsCisrCQkJCSAgIHJlbW90ZV9iZmRfaW92ZWNfY2xvc2UsCisr CQkJCSAgIHJlbW90ZV9iZmRfaW92ZWNfc3RhdCk7CiArCi0rICBpZiAoYWJmZCAhPSBOVUxMKQot KyAgICBnZGJfYmZkX3N0YXNoX2ZpbGVuYW1lIChhYmZkKTsKICsgIHJldHVybiBhYmZkOwogIH0K ICAKICB2b2lkCiBkaWZmIC0tZ2l0IGEvZ2RiL3JzNjAwMC1uYXQuYyBiL2dkYi9yczYwMDAtbmF0 LmMKLWluZGV4IDBhMjAwMGEuLjAxN2U5OTcgMTAwNjQ0CitpbmRleCAwYTIwMDBhLi45YjhlZmQz IDEwMDY0NAogLS0tIGEvZ2RiL3JzNjAwMC1uYXQuYwogKysrIGIvZ2RiL3JzNjAwMC1uYXQuYwog QEAgLTczMCw3ICs3MzAsNyBAQCBzdGF0aWMgc3RydWN0IHZtYXAgKgpAQCAtODU5Niw3ICs4OTgy LDcgQEAgaW5kZXggMGEyMDAwYS4uMDE3ZTk5NyAxMDA2NDQKICAgIHN0cnVjdCBvYmpmaWxlICpv Ymo7CiAgICBzdHJ1Y3Qgdm1hcCAqdnA7CiAgICBpbnQgZmQ7Ci1AQCAtNzQzLDIxICs3NDMsMjIg QEAgYWRkX3ZtYXAgKExkSW5mbyAqbGRpKQorQEAgLTc0MywxOSArNzQzLDE4IEBAIGFkZF92bWFw IChMZEluZm8gKmxkaSkKICAgIGZpbGVuYW1lID0gTERJX0ZJTEVOQU1FIChsZGksIGFyY2g2NCk7 CiAgICBtZW0gPSBmaWxlbmFtZSArIHN0cmxlbiAoZmlsZW5hbWUpICsgMTsKICAgIG1lbSA9IHhz dHJkdXAgKG1lbSk7CkBAIC04NjA3LDExICs4OTkzLDEwIEBAIGluZGV4IDBhMjAwMGEuLjAxN2U5 OTcgMTAwNjQ0CiAgICAgIC8qIE5vdGUgdGhhdCB0aGlzIG9wZW5zIGl0IG9uY2UgZm9yIGV2ZXJ5 IG1lbWJlcjsgYSBwb3NzaWJsZQogICAgICAgICBlbmhhbmNlbWVudCB3b3VsZCBiZSB0byBvbmx5 IG9wZW4gaXQgb25jZSBmb3IgZXZlcnkgb2JqZWN0LiAgKi8KIC0gICAgYWJmZCA9IGJmZF9vcGVu ciAob2JqbmFtZSwgZ251dGFyZ2V0KTsKLSsgICAgYWJmZCA9IGJmZF9vcGVuciAoZmlsZW5hbWUs IGdudXRhcmdldCk7CisrICAgIGFiZmQgPSBnZGJfYmZkX29wZW5yIChmaWxlbmFtZSwgZ251dGFy Z2V0KTsKICAgIGVsc2UKIC0gICAgYWJmZCA9IGJmZF9mZG9wZW5yIChvYmpuYW1lLCBnbnV0YXJn ZXQsIGZkKTsKLSsgICAgYWJmZCA9IGJmZF9mZG9wZW5yIChmaWxlbmFtZSwgZ251dGFyZ2V0LCBm ZCk7Ci0rICBhYmZkID0gZ2RiX2JmZF9yZWYgKGFiZmQpOworKyAgICBhYmZkID0gZ2RiX2JmZF9m ZG9wZW5yIChmaWxlbmFtZSwgZ251dGFyZ2V0LCBmZCk7CiAgICBpZiAoIWFiZmQpCiAgICAgIHsK ICAgICAgICB3YXJuaW5nIChfKCJDb3VsZCBub3Qgb3BlbiBgJXMnIGFzIGFuIGV4ZWN1dGFibGUg ZmlsZTogJXMiKSwKQEAgLTg2MTksMTggKzkwMDQsMjcgQEAgaW5kZXggMGEyMDAwYS4uMDE3ZTk5 NyAxMDA2NDQKICsJICAgICAgIGZpbGVuYW1lLCBiZmRfZXJybXNnIChiZmRfZ2V0X2Vycm9yICgp KSk7CiAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgIH0KLSsgIGdkYl9iZmRfc3Rhc2hfZmlsZW5h bWUgKGFiZmQpOwogIAotICAgLyogTWFrZSBzdXJlIHdlIGhhdmUgYW4gb2JqZWN0IGZpbGUuICAq LworQEAgLTc2NiwzNSArNzY1LDQ0IEBAIGFkZF92bWFwIChMZEluZm8gKmxkaSkKICAKLUBAIC03 NjgsMjMgKzc2OSwyMyBAQCBhZGRfdm1hcCAoTGRJbmZvICpsZGkpCisgICBlbHNlIGlmIChiZmRf Y2hlY2tfZm9ybWF0IChhYmZkLCBiZmRfYXJjaGl2ZSkpCiAgICAgIHsKLSAgICAgICBsYXN0ID0g MDsKLSAgICAgICAvKiBGSVhNRT8/PyBhbSBJIHRvc3NpbmcgQkZEcz8gIGJmZD8gICovCistICAg ICAgbGFzdCA9IDA7CistICAgICAgLyogRklYTUU/Pz8gYW0gSSB0b3NzaW5nIEJGRHM/ICBiZmQ/ ICAqLwogLSAgICAgIHdoaWxlICgobGFzdCA9IGJmZF9vcGVucl9uZXh0X2FyY2hpdmVkX2ZpbGUg KGFiZmQsIGxhc3QpKSkKLSsgICAgICB3aGlsZSAoKGxhc3QgPSBnZGJfYmZkX3JlZiAoYmZkX29w ZW5yX25leHRfYXJjaGl2ZWRfZmlsZSAoYWJmZCwgbGFzdCkpKSkKLSAJaWYgKHN0cmNtcCAobWVt LCBsYXN0LT5maWxlbmFtZSkgPT0gMCkKLSAJICBicmVhazsKKy0JaWYgKHN0cmNtcCAobWVtLCBs YXN0LT5maWxlbmFtZSkgPT0gMCkKKy0JICBicmVhazsKKysgICAgICBsYXN0ID0gZ2RiX2JmZF9v cGVucl9uZXh0X2FyY2hpdmVkX2ZpbGUgKGFiZmQsIE5VTEwpOworKyAgICAgIHdoaWxlIChsYXN0 ICE9IE5VTEwpCisrCXsKKysJICBiZmQgKm5leHQ7CisrCisrCSAgaWYgKHN0cmNtcCAobWVtLCBs YXN0LT5maWxlbmFtZSkgPT0gMCkKKysJICAgIGJyZWFrOworKworKwkgIG5leHQgPSBnZGJfYmZk X29wZW5yX25leHRfYXJjaGl2ZWRfZmlsZSAoYWJmZCwgbGFzdCk7CisrCSAgZ2RiX2JmZF91bnJl ZiAobGFzdCk7CisrCX0KICAKICAgICAgICBpZiAoIWxhc3QpCiAgCXsKQEAgLTg2NTMsNyArOTA0 NywxMSBAQCBpbmRleCAwYTIwMDBhLi4wMTdlOTk3IDEwMDY0NAogIAkgIHJldHVybiBOVUxMOwog IAl9CiAgCi1AQCAtNzkzLDExICs3OTQsMTEgQEAgYWRkX3ZtYXAgKExkSW5mbyAqbGRpKQorICAg ICAgIHZwID0gbWFwX3ZtYXAgKGxhc3QsIGFiZmQpOworKyAgICAgIC8qIG1hcF92bWFwIGFjcXVp cmVkIGEgcmVmZXJlbmNlIHRvIExBU1QsIHNvIHdlIGNhbiByZWxlYXNlCisrCSBvdXJzLiAgKi8K KysgICAgICBnZGJfYmZkX3VucmVmIChsYXN0KTsKKyAgICAgfQogICAgZWxzZQogICAgICB7CiAg ICAgICAgd2FybmluZyAoXygiXCIlc1wiOiBub3QgaW4gZXhlY3V0YWJsZSBmb3JtYXQ6ICVzLiIp LApAQCAtODY2MywxMyArOTA2MSwyMSBAQCBpbmRleCAwYTIwMDBhLi4wMTdlOTk3IDEwMDY0NAog KyAgICAgIGdkYl9iZmRfdW5yZWYgKGFiZmQpOwogICAgICAgIHJldHVybiBOVUxMOwogICAgICB9 Ci0tICBvYmogPSBhbGxvY2F0ZV9vYmpmaWxlICh2cC0+YmZkLCAwKTsKLSsgIG9iaiA9IGFsbG9j YXRlX29iamZpbGUgKGdkYl9iZmRfcmVmICh2cC0+YmZkKSwgMCk7Ci0gICB2cC0+b2JqZmlsZSA9 IG9iajsKLSAKKyAgIG9iaiA9IGFsbG9jYXRlX29iamZpbGUgKHZwLT5iZmQsIDApOworQEAgLTgw Myw2ICs4MTEsMTEgQEAgYWRkX3ZtYXAgKExkSW5mbyAqbGRpKQogICAgLyogQWx3YXlzIGFkZCBz eW1ib2xzIGZvciB0aGUgbWFpbiBvYmpmaWxlLiAgKi8KKyAgIGlmICh2cCA9PSB2bWFwIHx8IGF1 dG9fc29saWJfYWRkKQorICAgICB2bWFwX2FkZF9zeW1ib2xzICh2cCk7CisrCisrICAvKiBBbnl0 aGluZyBuZWVkaW5nIGEgcmVmZXJlbmNlIHRvIEFCRkQgaGFzIGFscmVhZHkgYWNxdWlyZWQgaXQs IHNvCisrICAgICByZWxlYXNlIG91ciBsb2NhbCByZWZlcmVuY2UuICAqLworKyAgZ2RiX2JmZF91 bnJlZiAoYWJmZCk7CisrCisgICByZXR1cm4gdnA7CisgfQorIAwKIGRpZmYgLS1naXQgYS9nZGIv c29saWItZGFyd2luLmMgYi9nZGIvc29saWItZGFyd2luLmMKLWluZGV4IGQ1MmZiNDYuLjcxMDll YWQgMTAwNjQ0CitpbmRleCBkNTJmYjQ2Li5kYjhmMTg3IDEwMDY0NAogLS0tIGEvZ2RiL3NvbGli LWRhcndpbi5jCiArKysgYi9nZGIvc29saWItZGFyd2luLmMKIEBAIC0yOCw2ICsyOCw3IEBACkBA IC04Njg4LDcgKzkwOTQsNyBAQCBpbmRleCBkNTJmYjQ2Li43MTA5ZWFkIDEwMDY0NAogIAogICAg LyogVGhpcyBtZXRob2QgZG9lc24ndCB3b3JrIHdpdGggYW4gYXR0YWNoZWQgcHJvY2Vzcy4gICov CiAgICBpZiAoY3VycmVudF9pbmZlcmlvciAoKS0+YXR0YWNoX2ZsYWcpCi1AQCAtMzY2LDI0ICsz NjgsMzAgQEAgZGFyd2luX3NvbGliX2dldF9hbGxfaW1hZ2VfaW5mb19hZGRyX2F0X2luaXQgKHN0 cnVjdCBkYXJ3aW5faW5mbyAqaW5mbykKK0BAIC0zNjYsMjQgKzM2OCwzMSBAQCBkYXJ3aW5fc29s aWJfZ2V0X2FsbF9pbWFnZV9pbmZvX2FkZHJfYXRfaW5pdCAoc3RydWN0IGRhcndpbl9pbmZvICpp bmZvKQogICAgaWYgKCFpbnRlcnBfbmFtZSkKICAgICAgcmV0dXJuOwogIApAQCAtODY5Niw3ICs5 MTAyLDcgQEAgaW5kZXggZDUyZmI0Ni4uNzEwOWVhZCAxMDA2NDQKICsKICAgIC8qIENyZWF0ZSBh IGJmZCBmb3IgdGhlIGludGVycHJldGVyLiAgKi8KIC0gIGR5bGRfYmZkID0gYmZkX29wZW5yIChp bnRlcnBfbmFtZSwgZ251dGFyZ2V0KTsKLSsgIGR5bGRfYmZkID0gZ2RiX2JmZF9yZWYgKGJmZF9v cGVuciAoaW50ZXJwX25hbWUsIGdudXRhcmdldCkpOworKyAgZHlsZF9iZmQgPSBnZGJfYmZkX29w ZW5yIChpbnRlcnBfbmFtZSwgZ251dGFyZ2V0KTsKICAgIGlmIChkeWxkX2JmZCkKICAgICAgewog ICAgICAgIGJmZCAqc3ViOwpAQCAtODcxMCw3ICs5MTE2LDggQEAgaW5kZXggZDUyZmI0Ni4uNzEw OWVhZCAxMDA2NDQKICAJewogLQkgIGJmZF9jbG9zZSAoZHlsZF9iZmQpOwogLQkgIGR5bGRfYmZk ID0gTlVMTDsKLSsJICBkeWxkX2JmZCA9IGdkYl9iZmRfcmVmIChzdWIpOworKwkgIGR5bGRfYmZk ID0gc3ViOworKwkgIGdkYl9iZmRfcmVmIChzdWIpOwogKwkgIG1ha2VfY2xlYW51cF9iZmRfdW5y ZWYgKHN1Yik7CiAgCX0KICsgICAgICBlbHNlCkBAIC04NzI1LDcgKzkxMzIsNyBAQCBpbmRleCBk NTJmYjQ2Li43MTA5ZWFkIDEwMDY0NAogIAogICAgLyogV2UgZmluZCB0aGUgZHluYW1pYyBsaW5r ZXIncyBiYXNlIGFkZHJlc3MgYnkgZXhhbWluaW5nCiAgICAgICB0aGUgY3VycmVudCBwYyAod2hp Y2ggc2hvdWxkIHBvaW50IGF0IHRoZSBlbnRyeSBwb2ludCBmb3IgdGhlCi1AQCAtMzk1LDcgKzQw Myw3IEBAIGRhcndpbl9zb2xpYl9nZXRfYWxsX2ltYWdlX2luZm9fYWRkcl9hdF9pbml0IChzdHJ1 Y3QgZGFyd2luX2luZm8gKmluZm8pCitAQCAtMzk1LDcgKzQwNCw3IEBAIGRhcndpbl9zb2xpYl9n ZXRfYWxsX2ltYWdlX2luZm9fYWRkcl9hdF9pbml0IChzdHJ1Y3QgZGFyd2luX2luZm8gKmluZm8p CiAgICBpbmZvLT5hbGxfaW1hZ2VfYWRkciA9CiAgICAgIGxvb2t1cF9zeW1ib2xfZnJvbV9iZmQg KGR5bGRfYmZkLCAiX2R5bGRfYWxsX2ltYWdlX2luZm9zIik7CiAgCkBAIC04NzM0LDcgKzkxNDEs NyBAQCBpbmRleCBkNTJmYjQ2Li43MTA5ZWFkIDEwMDY0NAogIAogICAgaWYgKGluZm8tPmFsbF9p bWFnZV9hZGRyID09IDApCiAgICAgIHJldHVybjsKLUBAIC01MDksMTcgKzUxNywxMCBAQCBkYXJ3 aW5fYmZkX29wZW4gKGNoYXIgKnBhdGhuYW1lKQorQEAgLTUwOSwxNyArNTE4LDEwIEBAIGRhcndp bl9iZmRfb3BlbiAoY2hhciAqcGF0aG5hbWUpCiAgCQkJCWdkYmFyY2hfYmZkX2FyY2hfaW5mbyAo dGFyZ2V0X2dkYmFyY2gpKTsKICAgIGlmICghcmVzKQogICAgICB7CkBAIC04ODU2LDcgKzkyNjMs NyBAQCBpbmRleCAyZjJjOGIwLi4wZjU5NTM1IDEwMDY0NAogICAgICAgIC8qIFdlJ3JlIGFsc28g ZG9uZSB3aXRoIHRoZSBsb2FkbWFwLiAgKi8KICAgICAgICB4ZnJlZSAobGRtKTsKIGRpZmYgLS1n aXQgYS9nZGIvc29saWItcGE2NC5jIGIvZ2RiL3NvbGliLXBhNjQuYwotaW5kZXggMmI4ZDA2MS4u YjU1YjY3YyAxMDA2NDQKK2luZGV4IDJiOGQwNjEuLjAwZWQ4YTUgMTAwNjQ0CiAtLS0gYS9nZGIv c29saWItcGE2NC5jCiArKysgYi9nZGIvc29saWItcGE2NC5jCiBAQCAtMzYyLDcgKzM2Miw3IEBA IG1hbnBhZ2UgZm9yIG1ldGhvZHMgdG8gcHJpdmF0ZWx5IG1hcCBzaGFyZWQgbGlicmFyeSB0ZXh0 LiIpKTsKQEAgLTg4NjQsNyArOTI3MSw3IEBAIGluZGV4IDJiOGQwNjEuLmI1NWI2N2MgMTAwNjQ0 CiAgCSBiZSB0cml2aWFsIG9uIEdOVS9MaW51eCkuICBUaGVyZWZvcmUsIHdlIGhhdmUgdG8gdHJ5 IGFuIGFsdGVybmF0ZQogIAkgbWVjaGFuaXNtIHRvIGZpbmQgdGhlIGR5bmFtaWMgbGlua2VyJ3Mg YmFzZSBhZGRyZXNzLiAgKi8KIC0gICAgICB0bXBfYmZkID0gYmZkX29wZW5yIChidWYsIGdudXRh cmdldCk7Ci0rICAgICAgdG1wX2JmZCA9IGdkYl9iZmRfcmVmIChiZmRfb3BlbnIgKGJ1ZiwgZ251 dGFyZ2V0KSk7CisrICAgICAgdG1wX2JmZCA9IGdkYl9iZmRfb3BlbnIgKGJ1ZiwgZ251dGFyZ2V0 KTsKICAgICAgICBpZiAodG1wX2JmZCA9PSBOVUxMKQogIAlyZXR1cm47CiAgCkBAIC04ODg3LDcg KzkyOTQsNyBAQCBpbmRleCAyYjhkMDYxLi5iNTViNjdjIDEwMDY0NAogIH0KICAKIGRpZmYgLS1n aXQgYS9nZGIvc29saWItc3B1LmMgYi9nZGIvc29saWItc3B1LmMKLWluZGV4IGI1NDU0ZTcuLjVl ZWFlNjIgMTAwNjQ0CitpbmRleCBiNTQ1NGU3Li5mNjJkOTZjIDEwMDY0NAogLS0tIGEvZ2RiL3Nv bGliLXNwdS5jCiArKysgYi9nZGIvc29saWItc3B1LmMKIEBAIC0zNiw2ICszNiw3IEBACkBAIC04 ODk4LDcgKzkzMDUsNyBAQCBpbmRleCBiNTQ1NGU3Li41ZWVhZTYyIDEwMDY0NAogIAogICNpbmNs dWRlICJzcHUtdGRlcC5oIgogIAotQEAgLTMyNSwxOSArMzI2LDIwIEBAIHNwdV9iZmRfZm9wZW4g KGNoYXIgKm5hbWUsIENPUkVfQUREUiBhZGRyKQorQEAgLTMyNSwxNiArMzI2LDE2IEBAIHNwdV9i ZmRfZm9wZW4gKGNoYXIgKm5hbWUsIENPUkVfQUREUiBhZGRyKQogICAgQ09SRV9BRERSICpvcGVu X2Nsb3N1cmUgPSB4bWFsbG9jIChzaXplb2YgKENPUkVfQUREUikpOwogICAgKm9wZW5fY2xvc3Vy ZSA9IGFkZHI7CiAgCkBAIC04OTA2LDEwICs5MzEzLDEwIEBAIGluZGV4IGI1NDU0ZTcuLjVlZWFl NjIgMTAwNjQ0CiAtICAgICAgICAgICAgICAgICAgICAgICAgICBzcHVfYmZkX2lvdmVjX29wZW4s IG9wZW5fY2xvc3VyZSwKIC0gICAgICAgICAgICAgICAgICAgICAgICAgIHNwdV9iZmRfaW92ZWNf cHJlYWQsIHNwdV9iZmRfaW92ZWNfY2xvc2UsCiAtCQkJICBzcHVfYmZkX2lvdmVjX3N0YXQpOwot KyAgbmJmZCA9IGdkYl9iZmRfcmVmIChiZmRfb3BlbnJfaW92ZWMgKG5hbWUsICJlbGYzMi1zcHUi LAotKwkJCQkgICAgICAgc3B1X2JmZF9pb3ZlY19vcGVuLCBvcGVuX2Nsb3N1cmUsCi0rCQkJCSAg ICAgICBzcHVfYmZkX2lvdmVjX3ByZWFkLCBzcHVfYmZkX2lvdmVjX2Nsb3NlLAotKwkJCQkgICAg ICAgc3B1X2JmZF9pb3ZlY19zdGF0KSk7CisrICBuYmZkID0gZ2RiX2JmZF9vcGVucl9pb3ZlYyAo bmFtZSwgImVsZjMyLXNwdSIsCisrCQkJICAgICAgc3B1X2JmZF9pb3ZlY19vcGVuLCBvcGVuX2Ns b3N1cmUsCisrCQkJICAgICAgc3B1X2JmZF9pb3ZlY19wcmVhZCwgc3B1X2JmZF9pb3ZlY19jbG9z ZSwKKysJCQkgICAgICBzcHVfYmZkX2lvdmVjX3N0YXQpOwogICAgaWYgKCFuYmZkKQogICAgICBy ZXR1cm4gTlVMTDsKICAKQEAgLTg5MjAsMTIgKzkzMjcsNDYgQEAgaW5kZXggYjU0NTRlNy4uNWVl YWU2MiAxMDA2NDQKICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgfQogIAotKyAgZ2RiX2JmZF9z dGFzaF9maWxlbmFtZSAobmJmZCk7Ci0gICByZXR1cm4gbmJmZDsKLSB9CitkaWZmIC0tZ2l0IGEv Z2RiL3NvbGliLXN2cjQuYyBiL2dkYi9zb2xpYi1zdnI0LmMKK2luZGV4IDMwN2U0ODMuLjc2YmQ4 NzIgMTAwNjQ0CistLS0gYS9nZGIvc29saWItc3ZyNC5jCisrKysgYi9nZGIvc29saWItc3ZyNC5j CitAQCAtNDYsNiArNDYsNyBAQAorICNpbmNsdWRlICJleGVjLmgiCisgI2luY2x1ZGUgImF1eHYu aCIKKyAjaW5jbHVkZSAiZXhjZXB0aW9ucy5oIgorKyNpbmNsdWRlICJnZGJfYmZkLmgiCiAgCisg c3RhdGljIHN0cnVjdCBsaW5rX21hcF9vZmZzZXRzICpzdnI0X2ZldGNoX2xpbmtfbWFwX29mZnNl dHMgKHZvaWQpOworIHN0YXRpYyBpbnQgc3ZyNF9oYXZlX2xpbmtfbWFwX29mZnNldHMgKHZvaWQp OworQEAgLTE1NTgsOSArMTU1OSwxMSBAQCBlbmFibGVfYnJlYWsgKHN0cnVjdCBzdnI0X2luZm8g KmluZm8sIGludCBmcm9tX3R0eSkKKyAJZ290byBia3B0X2F0X3N5bWJvbDsKKyAKKyAgICAgICAv KiBOb3cgY29udmVydCB0aGUgVE1QX0JGRCBpbnRvIGEgdGFyZ2V0LiAgVGhhdCB3YXkgdGFyZ2V0 LCBhcworLSAgICAgICAgIHdlbGwgYXMgQkZEIG9wZXJhdGlvbnMgY2FuIGJlIHVzZWQuICBOb3Rl IHRoYXQgY2xvc2luZyB0aGUKKy0gICAgICAgICB0YXJnZXQgd2lsbCBhbHNvIGNsb3NlIHRoZSB1 bmRlcmx5aW5nIGJmZC4gICovCisrICAgICAgICAgd2VsbCBhcyBCRkQgb3BlcmF0aW9ucyBjYW4g YmUgdXNlZC4gICovCisgICAgICAgdG1wX2JmZF90YXJnZXQgPSB0YXJnZXRfYmZkX3Jlb3BlbiAo dG1wX2JmZCk7CisrICAgICAgLyogdGFyZ2V0X2JmZF9yZW9wZW4gYWNxdWlyZWQgaXRzIG93biBy ZWZlcmVuY2UsIHNvIHdlIGNhbgorKyAgICAgICAgIHJlbGVhc2Ugb3VycyBub3cuICAqLworKyAg ICAgIGdkYl9iZmRfdW5yZWYgKHRtcF9iZmQpOworIAorICAgICAgIC8qIE9uIGEgcnVubmluZyB0 YXJnZXQsIHdlIGNhbiBnZXQgdGhlIGR5bmFtaWMgbGlua2VyJ3MgYmFzZQorICAgICAgICAgIGFk ZHJlc3MgZnJvbSB0aGUgc2hhcmVkIGxpYnJhcnkgdGFibGUuICAqLworQEAgLTE2NzAsOCArMTY3 Myw5IEBAIGVuYWJsZV9icmVhayAoc3RydWN0IHN2cjRfaW5mbyAqaW5mbywgaW50IGZyb21fdHR5 KQorIAkJCQkJCSAgICAgICBzeW1fYWRkciwKKyAJCQkJCQkgICAgICAgdG1wX2JmZF90YXJnZXQp OworIAorLSAgICAgIC8qIFdlJ3JlIGRvbmUgd2l0aCBib3RoIHRoZSB0ZW1wb3JhcnkgYmZkIGFu ZCB0YXJnZXQuICBSZW1lbWJlciwKKy0gICAgICAgICBjbG9zaW5nIHRoZSB0YXJnZXQgY2xvc2Vz IHRoZSB1bmRlcmx5aW5nIGJmZC4gICovCisrICAgICAgLyogV2UncmUgZG9uZSB3aXRoIGJvdGgg dGhlIHRlbXBvcmFyeSBiZmQgYW5kIHRhcmdldC4gIENsb3NpbmcKKysgICAgICAgICB0aGUgdGFy Z2V0IGNsb3NlcyB0aGUgdW5kZXJseWluZyBiZmQsIGJlY2F1c2UgaXQgaG9sZHMgdGhlCisrICAg ICAgICAgb25seSByZW1haW5pbmcgcmVmZXJlbmNlLiAgKi8KKyAgICAgICB0YXJnZXRfY2xvc2Ug KHRtcF9iZmRfdGFyZ2V0LCAwKTsKKyAKKyAgICAgICBpZiAoc3ltX2FkZHIgIT0gMCkKIGRpZmYg LS1naXQgYS9nZGIvc29saWIuYyBiL2dkYi9zb2xpYi5jCi1pbmRleCA5MDQzOWJhLi4wZmQ5NTVk IDEwMDY0NAoraW5kZXggOTA0MzliYS4uNzM3NzNmMSAxMDA2NDQKIC0tLSBhL2dkYi9zb2xpYi5j CiArKysgYi9nZGIvc29saWIuYwogQEAgLTQ2LDYgKzQ2LDcgQEAKQEAgLTg5NDksMTkgKzkzOTAs MjUgQEAgaW5kZXggOTA0MzliYS4uMGZkOTU1ZCAxMDA2NDQKICAKICBiZmQgKgogIHNvbGliX2Jm ZF9mb3BlbiAoY2hhciAqcGF0aG5hbWUsIGludCBmZCkKLUBAIC0zODksNyArMzkwLDEwIEBAIHNv bGliX2JmZF9mb3BlbiAoY2hhciAqcGF0aG5hbWUsIGludCBmZCkKK0BAIC0zNzYsNyArMzc3LDcg QEAgc29saWJfYmZkX2ZvcGVuIChjaGFyICpwYXRobmFtZSwgaW50IGZkKQorICAgICB9CisgICBl bHNlCisgICAgIHsKKy0gICAgICBhYmZkID0gYmZkX2ZvcGVuIChwYXRobmFtZSwgZ251dGFyZ2V0 LCBGT1BFTl9SQiwgZmQpOworKyAgICAgIGFiZmQgPSBnZGJfYmZkX2ZvcGVuIChwYXRobmFtZSwg Z251dGFyZ2V0LCBGT1BFTl9SQiwgZmQpOworIAorICAgICAgIGlmIChhYmZkKQorIAliZmRfc2V0 X2NhY2hlYWJsZSAoYWJmZCwgMSk7CitAQCAtMzg5LDYgKzM5MCw4IEBAIHNvbGliX2JmZF9mb3Bl biAoY2hhciAqcGF0aG5hbWUsIGludCBmZCkKICAJICAgICBwYXRobmFtZSwgYmZkX2Vycm1zZyAo YmZkX2dldF9lcnJvciAoKSkpOwogICAgICB9CiAgCi0tICByZXR1cm4gYWJmZDsKLSsgIGdkYl9i ZmRfc3Rhc2hfZmlsZW5hbWUgKGFiZmQpOwogKyAgeGZyZWUgKHBhdGhuYW1lKTsKICsKLSsgIHJl dHVybiBnZGJfYmZkX3JlZiAoYWJmZCk7CisgICByZXR1cm4gYWJmZDsKICB9CiAgCi0gLyogRmlu ZCBzaGFyZWQgbGlicmFyeSBQQVRITkFNRSBhbmQgb3BlbiBhIEJGRCBmb3IgaXQuICAqLwotQEAg LTQyMCwxNyArNDI0LDE2IEBAIHNvbGliX2JmZF9vcGVuIChjaGFyICpwYXRobmFtZSkKK0BAIC00 MjAsMTcgKzQyMywxNiBAQCBzb2xpYl9iZmRfb3BlbiAoY2hhciAqcGF0aG5hbWUpCiAgICAvKiBD aGVjayBiZmQgZm9ybWF0LiAgKi8KICAgIGlmICghYmZkX2NoZWNrX2Zvcm1hdCAoYWJmZCwgYmZk X29iamVjdCkpCiAgICAgIHsKQEAgLTg5ODIsNyArOTQyOSw3IEBAIGluZGV4IDkwNDM5YmEuLjBm ZDk1NWQgMTAwNjQ0CiAgICAgICAgICAgICAgIGJmZF9nZXRfYXJjaF9pbmZvIChhYmZkKS0+cHJp bnRhYmxlX25hbWUsIGItPnByaW50YWJsZV9uYW1lKTsKICAKICAgIHJldHVybiBhYmZkOwotQEAg LTQ2Niw3ICs0NjksNyBAQCBzb2xpYl9tYXBfc2VjdGlvbnMgKHN0cnVjdCBzb19saXN0ICpzbykK K0BAIC00NjYsNyArNDY4LDcgQEAgc29saWJfbWFwX3NlY3Rpb25zIChzdHJ1Y3Qgc29fbGlzdCAq c28pCiAgICAgIHJldHVybiAwOwogIAogICAgLyogTGVhdmUgYmZkIG9wZW4sIGNvcmVfeGZlcl9t ZW1vcnkgYW5kICJpbmZvIGZpbGVzIiBuZWVkIGl0LiAgKi8KQEAgLTg5OTEsMTYgKzk0MzgsNyBA QCBpbmRleCA5MDQzOWJhLi4wZmQ5NTVkIDEwMDY0NAogIAogICAgLyogY29weSBmdWxsIHBhdGgg bmFtZSBpbnRvIHNvX25hbWUsIHNvIHRoYXQgbGF0ZXIgc3ltYm9sX2ZpbGVfYWRkCiAgICAgICBj YW4gZmluZCBpdC4gICovCi1AQCAtNjA4LDcgKzYxMSw3IEBAIHNvbGliX3JlYWRfc3ltYm9scyAo c3RydWN0IHNvX2xpc3QgKnNvLCBpbnQgZmxhZ3MpCi0gCi0gCSAgc2FwID0gYnVpbGRfc2VjdGlv bl9hZGRyX2luZm9fZnJvbV9zZWN0aW9uX3RhYmxlIChzby0+c2VjdGlvbnMsCi0gCQkJCQkJCSAg ICBzby0+c2VjdGlvbnNfZW5kKTsKLS0JICBzby0+b2JqZmlsZSA9IHN5bWJvbF9maWxlX2FkZF9m cm9tX2JmZCAoc28tPmFiZmQsCi0rCSAgc28tPm9iamZpbGUgPSBzeW1ib2xfZmlsZV9hZGRfZnJv bV9iZmQgKGdkYl9iZmRfcmVmIChzby0+YWJmZCksCi0gCQkJCQkJICBmbGFncywgc2FwLCBPQkpG X1NIQVJFRCwKLSAJCQkJCQkgIE5VTEwpOwotIAkgIHNvLT5vYmpmaWxlLT5hZGRyX2xvdyA9IHNv LT5hZGRyX2xvdzsKLUBAIC0xMjMzLDcgKzEyMzYsNyBAQCByZWxvYWRfc2hhcmVkX2xpYnJhcmll c18xIChpbnQgZnJvbV90dHkpCitAQCAtMTIzMyw3ICsxMjM1LDcgQEAgcmVsb2FkX3NoYXJlZF9s aWJyYXJpZXNfMSAoaW50IGZyb21fdHR5KQogIAl7CiAgCSAgZm91bmRfcGF0aG5hbWUgPSB4c3Ry ZHVwIChiZmRfZ2V0X2ZpbGVuYW1lIChhYmZkKSk7CiAgCSAgbWFrZV9jbGVhbnVwICh4ZnJlZSwg Zm91bmRfcGF0aG5hbWUpOwpAQCAtOTAxMCwyMSArOTQ0OCwyMyBAQCBpbmRleCA5MDQzOWJhLi4w ZmQ5NTVkIDEwMDY0NAogIAogICAgICAgIC8qIElmIHRoaXMgc2hhcmVkIGxpYnJhcnkgaXMgbm8g bG9uZ2VyIGFzc29jaWF0ZWQgd2l0aCBpdHMgcHJldmlvdXMKIGRpZmYgLS1naXQgYS9nZGIvc3B1 LWxpbnV4LW5hdC5jIGIvZ2RiL3NwdS1saW51eC1uYXQuYwotaW5kZXggMmRmZWM4Yy4uMTJmODIx MSAxMDA2NDQKK2luZGV4IDJkZmVjOGMuLjk5OWYxYWIgMTAwNjQ0CiAtLS0gYS9nZGIvc3B1LWxp bnV4LW5hdC5jCiArKysgYi9nZGIvc3B1LWxpbnV4LW5hdC5jCi1AQCAtMzE1LDE2ICszMTUsMTcg QEAgc3B1X2JmZF9vcGVuIChVTE9OR0VTVCBhZGRyKQorQEAgLTMxNSwxNiArMzE1LDE2IEBAIHNw dV9iZmRfb3BlbiAoVUxPTkdFU1QgYWRkcikKICAgIFVMT05HRVNUICpvcGVuX2Nsb3N1cmUgPSB4 bWFsbG9jIChzaXplb2YgKFVMT05HRVNUKSk7CiAgICAqb3Blbl9jbG9zdXJlID0gYWRkcjsKICAK IC0gIG5iZmQgPSBiZmRfb3BlbnJfaW92ZWMgKHhzdHJkdXAgKCI8aW4tbWVtb3J5PiIpLCAiZWxm MzItc3B1IiwKLSsgIG5iZmQgPSBiZmRfb3BlbnJfaW92ZWMgKCI8aW4tbWVtb3J5PiIsICJlbGYz Mi1zcHUiLAotIAkJCSAgc3B1X2JmZF9pb3ZlY19vcGVuLCBvcGVuX2Nsb3N1cmUsCi0gCQkJICBz cHVfYmZkX2lvdmVjX3ByZWFkLCBzcHVfYmZkX2lvdmVjX2Nsb3NlLAotIAkJCSAgc3B1X2JmZF9p b3ZlY19zdGF0KTsKKy0JCQkgIHNwdV9iZmRfaW92ZWNfb3Blbiwgb3Blbl9jbG9zdXJlLAorLQkJ CSAgc3B1X2JmZF9pb3ZlY19wcmVhZCwgc3B1X2JmZF9pb3ZlY19jbG9zZSwKKy0JCQkgIHNwdV9i ZmRfaW92ZWNfc3RhdCk7CisrICBuYmZkID0gZ2RiX2JmZF9vcGVucl9pb3ZlYyAoIjxpbi1tZW1v cnk+IiwgImVsZjMyLXNwdSIsCisrCQkJICAgICAgc3B1X2JmZF9pb3ZlY19vcGVuLCBvcGVuX2Ns b3N1cmUsCisrCQkJICAgICAgc3B1X2JmZF9pb3ZlY19wcmVhZCwgc3B1X2JmZF9pb3ZlY19jbG9z ZSwKKysJCQkgICAgICBzcHVfYmZkX2lvdmVjX3N0YXQpOwogICAgaWYgKCFuYmZkKQogICAgICBy ZXR1cm4gTlVMTDsKLSsgIG5iZmQgPSBnZGJfYmZkX3JlZiAobmJmZCk7CiAgCiAgICBpZiAoIWJm ZF9jaGVja19mb3JtYXQgKG5iZmQsIGJmZF9vYmplY3QpKQogICAgICB7CkBAIC05MDMzLDggKzk0 NzMsMjQgQEAgaW5kZXggMmRmZWM4Yy4uMTJmODIxMSAxMDA2NDQKICAgICAgICByZXR1cm4gTlVM TDsKICAgICAgfQogIAorQEAgLTM3NCw4ICszNzQsMTMgQEAgc3B1X3N5bWJvbF9maWxlX2FkZF9m cm9tX21lbW9yeSAoaW50IGluZmVyaW9yX2ZkKQorICAgLyogT3BlbiBCRkQgcmVwcmVzZW50aW5n IFNQRSBleGVjdXRhYmxlIGFuZCByZWFkIGl0cyBzeW1ib2xzLiAgKi8KKyAgIG5iZmQgPSBzcHVf YmZkX29wZW4gKGFkZHIpOworICAgaWYgKG5iZmQpCistICAgIHN5bWJvbF9maWxlX2FkZF9mcm9t X2JmZCAobmJmZCwgU1lNRklMRV9WRVJCT1NFIHwgU1lNRklMRV9NQUlOTElORSwKKy0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCAwLCBOVUxMKTsKKysgICAgeworKyAgICAgIHN0 cnVjdCBjbGVhbnVwICpjbGVhbnVwID0gbWFrZV9jbGVhbnVwX2JmZF91bnJlZiAobmJmZCk7Cisr CisrICAgICAgc3ltYm9sX2ZpbGVfYWRkX2Zyb21fYmZkIChuYmZkLCBTWU1GSUxFX1ZFUkJPU0Ug fCBTWU1GSUxFX01BSU5MSU5FLAorKwkJCQlOVUxMLCAwLCBOVUxMKTsKKysgICAgICBkb19jbGVh bnVwcyAoY2xlYW51cCk7CisrICAgIH0KKyB9CisgCisgCiBkaWZmIC0tZ2l0IGEvZ2RiL3N0YWNr LmMgYi9nZGIvc3RhY2suYwotaW5kZXggMjUyMGUyYy4uMDQ3MjQ3NSAxMDA2NDQKK2luZGV4IDM1 ZDM3OWQuLjA0YWFiNWUgMTAwNjQ0CiAtLS0gYS9nZGIvc3RhY2suYwogKysrIGIvZ2RiL3N0YWNr LmMKIEBAIC01MDksNiArNTA5LDEwIEBAIHByaW50X2ZyYW1lX2FyZ3MgKHN0cnVjdCBzeW1ib2wg KmZ1bmMsIHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwKQEAgLTkwNDksNyArOTUwNSw3IEBAIGlu ZGV4IDI1MjBlMmMuLjA0NzI0NzUgMTAwNjQ0CiAgICAgIHsKICAgICAgICBzdHJ1Y3QgYmxvY2sg KmIgPSBTWU1CT0xfQkxPQ0tfVkFMVUUgKGZ1bmMpOwogZGlmZiAtLWdpdCBhL2dkYi9zeW1maWxl LW1lbS5jIGIvZ2RiL3N5bWZpbGUtbWVtLmMKLWluZGV4IGU4MGZkMjUuLmFkODdhYmQgMTAwNjQ0 CitpbmRleCBlODBmZDI1Li4yZTUzYmUwIDEwMDY0NAogLS0tIGEvZ2RiL3N5bWZpbGUtbWVtLmMK ICsrKyBiL2dkYi9zeW1maWxlLW1lbS5jCiBAQCAtNTQsNiArNTQsNyBAQApAQCAtOTA2MCw3ICs5 NTE2LDcgQEAgaW5kZXggZTgwZmQyNS4uYWQ4N2FiZCAxMDA2NDQKICAKICAvKiBWZXJpZnkgcGFy YW1ldGVycyBvZiB0YXJnZXRfcmVhZF9tZW1vcnlfYmZkIGFuZCB0YXJnZXRfcmVhZF9tZW1vcnkg YXJlCiAgICAgY29tcGF0aWJsZS4gICovCi1AQCAtMTAwLDE3ICsxMDEsMTkgQEAgc3ltYm9sX2Zp bGVfYWRkX2Zyb21fbWVtb3J5IChzdHJ1Y3QgYmZkICp0ZW1wbCwgQ09SRV9BRERSIGFkZHIsIGNo YXIgKm5hbWUsCitAQCAtMTAwLDIzICsxMDEsMjQgQEAgc3ltYm9sX2ZpbGVfYWRkX2Zyb21fbWVt b3J5IChzdHJ1Y3QgYmZkICp0ZW1wbCwgQ09SRV9BRERSIGFkZHIsIGNoYXIgKm5hbWUsCiAgICBp ZiAobmJmZCA9PSBOVUxMKQogICAgICBlcnJvciAoXygiRmFpbGVkIHRvIHJlYWQgYSB2YWxpZCBv YmplY3QgZmlsZSBpbWFnZSBmcm9tIG1lbW9yeS4iKSk7CiAgCkBAIC05MDcwLDI0ICs5NTI2LDM0 IEBAIGluZGV4IGU4MGZkMjUuLmFkODdhYmQgMTAwNjQ0CiArICAgIG5iZmQtPmZpbGVuYW1lID0g InNoYXJlZCBvYmplY3QgcmVhZCBmcm9tIHRhcmdldCBtZW1vcnkiOwogICAgZWxzZQogLSAgICBu YmZkLT5maWxlbmFtZSA9IG5hbWU7Ci0rICAgIHsKLSsgICAgICBuYmZkLT5maWxlbmFtZSA9IG5h bWU7Ci0rICAgICAgZ2RiX2JmZF9zdGFzaF9maWxlbmFtZSAobmJmZCk7Ci0rICAgICAgeGZyZWUg KG5hbWUpOwotKyAgICB9Ci0gCi0gICBpZiAoIWJmZF9jaGVja19mb3JtYXQgKG5iZmQsIGJmZF9v YmplY3QpKQorLQorLSAgaWYgKCFiZmRfY2hlY2tfZm9ybWF0IChuYmZkLCBiZmRfb2JqZWN0KSkK ICAgICAgewogLSAgICAgIC8qIEZJWE1FOiBzaG91bGQgYmUgY2hlY2tpbmcgZm9yIGVycm9ycyBm cm9tIGJmZF9jbG9zZSAoZm9yIG9uZSB0aGluZywKIC0gICAgICAgICBvbiBlcnJvciBpdCBkb2Vz IG5vdCBmcmVlIGFsbCB0aGUgc3RvcmFnZSBhc3NvY2lhdGVkIHdpdGggdGhlCiAtICAgICAgICAg YmZkKS4gICovCiAtICAgICAgYmZkX2Nsb3NlIChuYmZkKTsKLSsgICAgICBtYWtlX2NsZWFudXBf YmZkX3VucmVmIChuYmZkKTsKLSAgICAgICBlcnJvciAoXygiR290IG9iamVjdCBmaWxlIGZyb20g bWVtb3J5IGJ1dCBjYW4ndCByZWFkIHN5bWJvbHM6ICVzLiIpLAotIAkgICAgIGJmZF9lcnJtc2cg KGJmZF9nZXRfZXJyb3IgKCkpKTsKKy0gICAgICBlcnJvciAoXygiR290IG9iamVjdCBmaWxlIGZy b20gbWVtb3J5IGJ1dCBjYW4ndCByZWFkIHN5bWJvbHM6ICVzLiIpLAorLQkgICAgIGJmZF9lcnJt c2cgKGJmZF9nZXRfZXJyb3IgKCkpKTsKKysgICAgICBuYmZkLT5maWxlbmFtZSA9IG5hbWU7Cisr ICAgICAgZ2RiX2JmZF9zdGFzaF9maWxlbmFtZSAobmJmZCk7CisrICAgICAgeGZyZWUgKG5hbWUp OwogICAgICB9CisgCisrICBjbGVhbnVwID0gbWFrZV9jbGVhbnVwX2JmZF91bnJlZiAobmJmZCk7 CisrCisrICBpZiAoIWJmZF9jaGVja19mb3JtYXQgKG5iZmQsIGJmZF9vYmplY3QpKQorKyAgICBl cnJvciAoXygiR290IG9iamVjdCBmaWxlIGZyb20gbWVtb3J5IGJ1dCBjYW4ndCByZWFkIHN5bWJv bHM6ICVzLiIpLAorKwkgICBiZmRfZXJybXNnIChiZmRfZ2V0X2Vycm9yICgpKSk7CisrCisgICBz YWkgPSBhbGxvY19zZWN0aW9uX2FkZHJfaW5mbyAoYmZkX2NvdW50X3NlY3Rpb25zIChuYmZkKSk7 CistICBjbGVhbnVwID0gbWFrZV9jbGVhbnVwICh4ZnJlZSwgc2FpKTsKKysgIG1ha2VfY2xlYW51 cCAoeGZyZWUsIHNhaSk7CisgICBpID0gMDsKKyAgIGZvciAoc2VjID0gbmJmZC0+c2VjdGlvbnM7 IHNlYyAhPSBOVUxMOyBzZWMgPSBzZWMtPm5leHQpCisgICAgIGlmICgoYmZkX2dldF9zZWN0aW9u X2ZsYWdzIChuYmZkLCBzZWMpICYgKFNFQ19BTExPQ3xTRUNfTE9BRCkpICE9IDApCiBkaWZmIC0t Z2l0IGEvZ2RiL3N5bWZpbGUuYyBiL2dkYi9zeW1maWxlLmMKLWluZGV4IDAxMjUyZTIuLmM5MDQw MTEgMTAwNjQ0CitpbmRleCAwMTI1MmUyLi45NWVkNDgwIDEwMDY0NAogLS0tIGEvZ2RiL3N5bWZp bGUuYwogKysrIGIvZ2RiL3N5bWZpbGUuYwogQEAgLTU1LDYgKzU1LDcgQEAKQEAgLTkwOTgsMTYg Kzk1NjQsNjYgQEAgaW5kZXggMDEyNTJlMi4uYzkwNDAxMSAxMDA2NDQKICAKICAjaW5jbHVkZSA8 c3lzL3R5cGVzLmg+CiAgI2luY2x1ZGUgPGZjbnRsLmg+Ci1AQCAtMTA3NCw3ICsxMDc1LDcgQEAg c3ltYm9sX2ZpbGVfYWRkX3dpdGhfYWRkcnNfb3Jfb2Zmc2V0cyAoYmZkICphYmZkLAorQEAgLTEw MzYsNyArMTAzNyw3IEBAIG5ld19zeW1maWxlX29iamZpbGUgKHN0cnVjdCBvYmpmaWxlICpvYmpm aWxlLCBpbnQgYWRkX2ZsYWdzKQorICAgIGxvYWRlZCBmaWxlLgorIAorICAgIEFCRkQgaXMgYSBC RkQgYWxyZWFkeSBvcGVuIG9uIHRoZSBmaWxlLCBhcyBmcm9tIHN5bWZpbGVfYmZkX29wZW4uCist ICAgVGhpcyBCRkQgd2lsbCBiZSBjbG9zZWQgb24gZXJyb3IsIGFuZCBpcyBhbHdheXMgY29uc3Vt ZWQgYnkgdGhpcyBmdW5jdGlvbi4KKysgICBBIG5ldyByZWZlcmVuY2UgaXMgYWNxdWlyZWQgYnkg dGhpcyBmdW5jdGlvbi4KKyAKKyAgICBBRERfRkxBR1MgZW5jb2RlcyB2ZXJib3NpdHksIHdoZXRo ZXIgdGhpcyBpcyBtYWluIHN5bWJvbCBmaWxlIG9yCisgICAgZXh0cmEsIHN1Y2ggYXMgZHluYW1p Y2FsbHkgbG9hZGVkIGNvZGUsIGFuZCB3aGF0IHRvIGRvIHdpdGggYnJlYWtwb2lucy4KK0BAIC0x MDYwLDcgKzEwNjEsNiBAQCBzeW1ib2xfZmlsZV9hZGRfd2l0aF9hZGRyc19vcl9vZmZzZXRzIChi ZmQgKmFiZmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGZs YWdzLCBzdHJ1Y3Qgb2JqZmlsZSAqcGFyZW50KQorIHsKKyAgIHN0cnVjdCBvYmpmaWxlICpvYmpm aWxlOworLSAgc3RydWN0IGNsZWFudXAgKm15X2NsZWFudXBzOworICAgY29uc3QgY2hhciAqbmFt ZSA9IGJmZF9nZXRfZmlsZW5hbWUgKGFiZmQpOworICAgY29uc3QgaW50IGZyb21fdHR5ID0gYWRk X2ZsYWdzICYgU1lNRklMRV9WRVJCT1NFOworICAgY29uc3QgaW50IG1haW5saW5lID0gYWRkX2Zs YWdzICYgU1lNRklMRV9NQUlOTElORTsKK0BAIC0xMDc0LDggKzEwNzQsNiBAQCBzeW1ib2xfZmls ZV9hZGRfd2l0aF9hZGRyc19vcl9vZmZzZXRzIChiZmQgKmFiZmQsCiAgICAgICAgYWRkX2ZsYWdz ICY9IH5TWU1GSUxFX05PX1JFQUQ7CiAgICAgIH0KICAKIC0gIG15X2NsZWFudXBzID0gbWFrZV9j bGVhbnVwX2JmZF9jbG9zZSAoYWJmZCk7Ci0rICBteV9jbGVhbnVwcyA9IG1ha2VfY2xlYW51cF9i ZmRfdW5yZWYgKGFiZmQpOwotIAorLQogICAgLyogR2l2ZSB1c2VyIGEgY2hhbmNlIHRvIGJ1cnAg aWYgd2UnZCBiZQogICAgICAgaW50ZXJhY3RpdmVseSB3aXBpbmcgb3V0IGFueSBleGlzdGluZyBz eW1ib2xzLiAgKi8KLUBAIC0xMzcyLDcgKzEzNzMsNyBAQCBzZXBhcmF0ZV9kZWJ1Z19maWxlX2V4 aXN0cyAoY29uc3QgY2hhciAqbmFtZSwgdW5zaWduZWQgbG9uZyBjcmMsCisgCitAQCAtMTA4Niw3 ICsxMDg0LDYgQEAgc3ltYm9sX2ZpbGVfYWRkX3dpdGhfYWRkcnNfb3Jfb2Zmc2V0cyAoYmZkICph YmZkLAorICAgICBlcnJvciAoXygiTm90IGNvbmZpcm1lZC4iKSk7CisgCisgICBvYmpmaWxlID0g YWxsb2NhdGVfb2JqZmlsZSAoYWJmZCwgZmxhZ3MgfCAobWFpbmxpbmUgPyBPQkpGX01BSU5MSU5F IDogMCkpOworLSAgZGlzY2FyZF9jbGVhbnVwcyAobXlfY2xlYW51cHMpOworIAorICAgaWYgKHBh cmVudCkKKyAgICAgYWRkX3NlcGFyYXRlX2RlYnVnX29iamZpbGUgKG9iamZpbGUsIHBhcmVudCk7 CitAQCAtMTIwNyw4ICsxMjA0LDEzIEBAIHN0cnVjdCBvYmpmaWxlICoKKyBzeW1ib2xfZmlsZV9h ZGQgKGNoYXIgKm5hbWUsIGludCBhZGRfZmxhZ3MsIHN0cnVjdCBzZWN0aW9uX2FkZHJfaW5mbyAq YWRkcnMsCisgCQkgaW50IGZsYWdzKQorIHsKKy0gIHJldHVybiBzeW1ib2xfZmlsZV9hZGRfZnJv bV9iZmQgKHN5bWZpbGVfYmZkX29wZW4gKG5hbWUpLCBhZGRfZmxhZ3MsIGFkZHJzLAorLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MsIE5VTEwpOworKyAgYmZkICpiZmQg PSBzeW1maWxlX2JmZF9vcGVuIChuYW1lKTsKKysgIHN0cnVjdCBjbGVhbnVwICpjbGVhbnVwID0g bWFrZV9jbGVhbnVwX2JmZF91bnJlZiAoYmZkKTsKKysgIHN0cnVjdCBvYmpmaWxlICpvYmpmOwor KworKyAgb2JqZiA9IHN5bWJvbF9maWxlX2FkZF9mcm9tX2JmZCAoYmZkLCBhZGRfZmxhZ3MsIGFk ZHJzLCBmbGFncywgTlVMTCk7CisrICBkb19jbGVhbnVwcyAoY2xlYW51cCk7CisrICByZXR1cm4g b2JqZjsKKyB9CisgCisgCitAQCAtMTM1MCw3ICsxMzUyLDcgQEAgc2VwYXJhdGVfZGVidWdfZmls ZV9leGlzdHMgKGNvbnN0IGNoYXIgKm5hbWUsIHVuc2lnbmVkIGxvbmcgY3JjLAorICAgaWYgKGZp bGVuYW1lX2NtcCAobmFtZSwgcGFyZW50X29iamZpbGUtPm5hbWUpID09IDApCisgICAgIHJldHVy biAwOworIAorLSAgYWJmZCA9IGJmZF9vcGVuX21heWJlX3JlbW90ZSAobmFtZSk7CisrICBhYmZk ID0gZ2RiX2JmZF9vcGVuX21heWJlX3JlbW90ZSAobmFtZSk7CisgCisgICBpZiAoIWFiZmQpCisg ICAgIHJldHVybiAwOworQEAgLTEzNzIsNyArMTM3NCw3IEBAIHNlcGFyYXRlX2RlYnVnX2ZpbGVf ZXhpc3RzIChjb25zdCBjaGFyICpuYW1lLCB1bnNpZ25lZCBsb25nIGNyYywKICAgICAgICBpZiAo YWJmZF9zdGF0LnN0X2RldiA9PSBwYXJlbnRfc3RhdC5zdF9kZXYKICAJICAmJiBhYmZkX3N0YXQu c3RfaW5vID09IHBhcmVudF9zdGF0LnN0X2lubykKICAJewpAQCAtOTExNiw3ICs5NjMyLDcgQEAg aW5kZXggMDEyNTJlMi4uYzkwNDAxMSAxMDA2NDQKICAJICByZXR1cm4gMDsKICAJfQogICAgICAg IHZlcmlmaWVkX2FzX2RpZmZlcmVudCA9IDE7Ci1AQCAtMTM4Miw3ICsxMzgzLDcgQEAgc2VwYXJh dGVfZGVidWdfZmlsZV9leGlzdHMgKGNvbnN0IGNoYXIgKm5hbWUsIHVuc2lnbmVkIGxvbmcgY3Jj LAorQEAgLTEzODIsNyArMTM4NCw3IEBAIHNlcGFyYXRlX2RlYnVnX2ZpbGVfZXhpc3RzIChjb25z dCBjaGFyICpuYW1lLCB1bnNpZ25lZCBsb25nIGNyYywKICAKICAgIGZpbGVfY3JjX3AgPSBnZXRf ZmlsZV9jcmMgKGFiZmQsICZmaWxlX2NyYyk7CiAgCkBAIC05MTI1LDcgKzk2NDEsNyBAQCBpbmRl eCAwMTI1MmUyLi5jOTA0MDExIDEwMDY0NAogIAogICAgaWYgKCFmaWxlX2NyY19wKQogICAgICBy ZXR1cm4gMDsKLUBAIC0xNjkwLDE1ICsxNjkxLDIyIEBAIHNldF9pbml0aWFsX2xhbmd1YWdlICh2 b2lkKQorQEAgLTE2OTAsMTUgKzE2OTIsMjAgQEAgc2V0X2luaXRpYWxfbGFuZ3VhZ2UgKHZvaWQp CiAgfQogIAogIC8qIElmIE5BTUUgaXMgYSByZW1vdGUgbmFtZSBvcGVuIHRoZSBmaWxlIHVzaW5n IHJlbW90ZSBwcm90b2NvbCwgb3RoZXJ3aXNlCkBAIC05MTM0LDMwICs5NjUwLDI4IEBAIGluZGV4 IDAxMjUyZTIuLmM5MDQwMTEgMTAwNjQ0CiArICAgcmV0dXJucyBOVUxMIHdpdGggdGhlIEJGRCBl cnJvciBzZXQuICAqLwogIAogIGJmZCAqCi0gYmZkX29wZW5fbWF5YmVfcmVtb3RlIChjb25zdCBj aGFyICpuYW1lKQorLWJmZF9vcGVuX21heWJlX3JlbW90ZSAoY29uc3QgY2hhciAqbmFtZSkKKytn ZGJfYmZkX29wZW5fbWF5YmVfcmVtb3RlIChjb25zdCBjaGFyICpuYW1lKQogIHsKKysgIGJmZCAq cmVzdWx0OworKwogICAgaWYgKHJlbW90ZV9maWxlbmFtZV9wIChuYW1lKSkKIC0gICAgcmV0dXJu IHJlbW90ZV9iZmRfb3BlbiAobmFtZSwgZ251dGFyZ2V0KTsKLSsgICAgcmV0dXJuIGdkYl9iZmRf cmVmIChyZW1vdGVfYmZkX29wZW4gKG5hbWUsIGdudXRhcmdldCkpOworKyAgICByZXN1bHQgPSBy ZW1vdGVfYmZkX29wZW4gKG5hbWUsIGdudXRhcmdldCk7CiAgICBlbHNlCiAtICAgIHJldHVybiBi ZmRfb3BlbnIgKG5hbWUsIGdudXRhcmdldCk7Ci0rICAgIHsKLSsgICAgICBiZmQgKnJlc3VsdCA9 IGdkYl9iZmRfcmVmIChiZmRfb3BlbnIgKG5hbWUsIGdudXRhcmdldCkpOworKyAgICByZXN1bHQg PSBnZGJfYmZkX29wZW5yIChuYW1lLCBnbnV0YXJnZXQpOwogKwotKyAgICAgIGlmIChyZXN1bHQg IT0gTlVMTCkKLSsJZ2RiX2JmZF9zdGFzaF9maWxlbmFtZSAocmVzdWx0KTsKLSsgICAgICByZXR1 cm4gcmVzdWx0OwotKyAgICB9CisrICByZXR1cm4gcmVzdWx0OwogIH0KICAKICAKLUBAIC0xNzE2 LDE5ICsxNzI0LDE0IEBAIHN5bWZpbGVfYmZkX29wZW4gKGNoYXIgKm5hbWUpCitAQCAtMTcxNiwx OSArMTcyMywxNCBAQCBzeW1maWxlX2JmZF9vcGVuIChjaGFyICpuYW1lKQogIAogICAgaWYgKHJl bW90ZV9maWxlbmFtZV9wIChuYW1lKSkKICAgICAgewogLSAgICAgIG5hbWUgPSB4c3RyZHVwIChu YW1lKTsKLS0gICAgICBzeW1fYmZkID0gcmVtb3RlX2JmZF9vcGVuIChuYW1lLCBnbnV0YXJnZXQp OwotKyAgICAgIHN5bV9iZmQgPSBnZGJfYmZkX3JlZiAocmVtb3RlX2JmZF9vcGVuIChuYW1lLCBn bnV0YXJnZXQpKTsKKyAgICAgICBzeW1fYmZkID0gcmVtb3RlX2JmZF9vcGVuIChuYW1lLCBnbnV0 YXJnZXQpOwogICAgICAgIGlmICghc3ltX2JmZCkKIC0JewogLQkgIG1ha2VfY2xlYW51cCAoeGZy ZWUsIG5hbWUpOwpAQCAtOTE3NSw3ICs5Njg5LDcgQEAgaW5kZXggMDEyNTJlMi4uYzkwNDAxMSAx MDA2NDQKICAJICBlcnJvciAoXygiYCVzJzogY2FuJ3QgcmVhZCBzeW1ib2xzOiAlcy4iKSwgbmFt ZSwKICAJCSBiZmRfZXJybXNnIChiZmRfZ2V0X2Vycm9yICgpKSk7CiAgCX0KLUBAIC0xNzU3LDEy ICsxNzYwLDExIEBAIHN5bWZpbGVfYmZkX29wZW4gKGNoYXIgKm5hbWUpCitAQCAtMTc1NywxMiAr MTc1OSwxMSBAQCBzeW1maWxlX2JmZF9vcGVuIChjaGFyICpuYW1lKQogICAgICAgIHBlcnJvcl93 aXRoX25hbWUgKG5hbWUpOwogICAgICB9CiAgCkBAIC05MTg2LDExICs5NzAwLDExIEBAIGluZGV4 IDAxMjUyZTIuLmM5MDQwMTEgMTAwNjQ0CiArICBtYWtlX2NsZWFudXAgKHhmcmVlLCBuYW1lKTsK ICAKIC0gIHN5bV9iZmQgPSBiZmRfZm9wZW4gKG5hbWUsIGdudXRhcmdldCwgRk9QRU5fUkIsIGRl c2MpOwotKyAgc3ltX2JmZCA9IGdkYl9iZmRfcmVmIChiZmRfZm9wZW4gKG5hbWUsIGdudXRhcmdl dCwgRk9QRU5fUkIsIGRlc2MpKTsKKysgIHN5bV9iZmQgPSBnZGJfYmZkX2ZvcGVuIChuYW1lLCBn bnV0YXJnZXQsIEZPUEVOX1JCLCBkZXNjKTsKICAgIGlmICghc3ltX2JmZCkKICAgICAgewogICAg ICAgIG1ha2VfY2xlYW51cCAoeGZyZWUsIG5hbWUpOwotQEAgLTE3NzMsMTcgKzE3NzUsMTIgQEAg c3ltZmlsZV9iZmRfb3BlbiAoY2hhciAqbmFtZSkKK0BAIC0xNzczLDE4ICsxNzc0LDExIEBAIHN5 bWZpbGVfYmZkX29wZW4gKGNoYXIgKm5hbWUpCiAgCiAgICBpZiAoIWJmZF9jaGVja19mb3JtYXQg KHN5bV9iZmQsIGJmZF9vYmplY3QpKQogICAgICB7CkBAIC05MjA2LDE2ICs5NzIwLDE2IEBAIGlu ZGV4IDAxMjUyZTIuLmM5MDQwMTEgMTAwNjQ0CiAgCiAtICAvKiBiZmRfdXNyZGF0YSBleGlzdHMg Zm9yIGFwcGxpY2F0aW9ucyBhbmQgbGliYmZkIG11c3Qgbm90IHRvdWNoIGl0LiAgKi8KIC0gIGdk Yl9hc3NlcnQgKGJmZF91c3JkYXRhIChzeW1fYmZkKSA9PSBOVUxMKTsKLSsgIGdkYl9iZmRfc3Rh c2hfZmlsZW5hbWUgKHN5bV9iZmQpOwotIAorLQogICAgcmV0dXJuIHN5bV9iZmQ7CiAgfQotQEAg LTIxMDksMTcgKzIxMDYsMTQgQEAgZ2VuZXJpY19sb2FkIChjaGFyICphcmdzLCBpbnQgZnJvbV90 dHkpCisgCitAQCAtMjEwOSwxNyArMjEwMywxNCBAQCBnZW5lcmljX2xvYWQgKGNoYXIgKmFyZ3Ms IGludCBmcm9tX3R0eSkKICAgICAgfQogIAogICAgLyogT3BlbiB0aGUgZmlsZSBmb3IgbG9hZGlu Zy4gICovCiAtICBsb2FkZmlsZV9iZmQgPSBiZmRfb3BlbnIgKGZpbGVuYW1lLCBnbnV0YXJnZXQp OwotKyAgbG9hZGZpbGVfYmZkID0gZ2RiX2JmZF9yZWYgKGJmZF9vcGVuciAoZmlsZW5hbWUsIGdu dXRhcmdldCkpOworKyAgbG9hZGZpbGVfYmZkID0gZ2RiX2JmZF9vcGVuciAoZmlsZW5hbWUsIGdu dXRhcmdldCk7CiAgICBpZiAobG9hZGZpbGVfYmZkID09IE5VTEwpCiAgICAgIHsKICAgICAgICBw ZXJyb3Jfd2l0aF9uYW1lIChmaWxlbmFtZSk7CkBAIC05MjMwLDcgKzk3NDQsNyBAQCBpbmRleCAw MTI1MmUyLi5jOTA0MDExIDEwMDY0NAogIAogICAgaWYgKCFiZmRfY2hlY2tfZm9ybWF0IChsb2Fk ZmlsZV9iZmQsIGJmZF9vYmplY3QpKQogICAgICB7Ci1AQCAtMjUxOCwxNSArMjUxMiwxOCBAQCBy ZXJlYWRfc3ltYm9scyAodm9pZCkKK0BAIC0yNTE4LDE1ICsyNTA5LDE4IEBAIHJlcmVhZF9zeW1i b2xzICh2b2lkKQogIAkgIC8qIENsZWFuIHVwIGFueSBzdGF0ZSBCRkQgaGFzIHNpdHRpbmcgYXJv dW5kLiAgV2UgZG9uJ3QgbmVlZAogIAkgICAgIHRvIGNsb3NlIHRoZSBkZXNjcmlwdG9yIGJ1dCBC RkQgbGFja3MgYSB3YXkgb2YgY2xvc2luZyB0aGUKICAJICAgICBCRkQgd2l0aG91dCBjbG9zaW5n IHRoZSBkZXNjcmlwdG9yLiAgKi8KQEAgLTkyNDUsNyArOTc1OSw3IEBAIGluZGV4IDAxMjUyZTIu LmM5MDQwMTEgMTAwNjQ0CiArCSAgICBvYmZkX2ZpbGVuYW1lID0gYmZkX2dldF9maWxlbmFtZSAo b2JqZmlsZS0+b2JmZCk7CiArCSAgICAvKiBPcGVuIHRoZSBuZXcgQkZEIGJlZm9yZSBmcmVlaW5n IHRoZSBvbGQgb25lLCBzbyB0aGF0CiArCSAgICAgICB0aGUgZmlsZW5hbWUgcmVtYWlucyBsaXZl LiAgKi8KLSsJICAgIG9iamZpbGUtPm9iZmQgPSBiZmRfb3Blbl9tYXliZV9yZW1vdGUgKG9iZmRf ZmlsZW5hbWUpOworKwkgICAgb2JqZmlsZS0+b2JmZCA9IGdkYl9iZmRfb3Blbl9tYXliZV9yZW1v dGUgKG9iZmRfZmlsZW5hbWUpOwogKwkgICAgZ2RiX2JmZF91bnJlZiAob2JmZCk7CiArCSAgfQog KwpAQCAtOTI1Niw2ICs5NzcwLDE5IEBAIGluZGV4IDAxMjUyZTIuLmM5MDQwMTEgMTAwNjQ0CiAg CSAgLyogYmZkX29wZW5yIHNldHMgY2FjaGVhYmxlIHRvIHRydWUsIHdoaWNoIGlzIHdoYXQgd2Ug d2FudC4gICovCiAgCSAgaWYgKCFiZmRfY2hlY2tfZm9ybWF0IChvYmpmaWxlLT5vYmZkLCBiZmRf b2JqZWN0KSkKICAJICAgIGVycm9yIChfKCJDYW4ndCByZWFkIHN5bWJvbHMgZnJvbSAlczogJXMu IiksIG9iamZpbGUtPm5hbWUsCitkaWZmIC0tZ2l0IGEvZ2RiL3N5bWZpbGUuaCBiL2dkYi9zeW1m aWxlLmgKK2luZGV4IGFjYTczNTkuLjE4NGE4M2UgMTAwNjQ0CistLS0gYS9nZGIvc3ltZmlsZS5o CisrKysgYi9nZGIvc3ltZmlsZS5oCitAQCAtNTUzLDcgKzU1Myw3IEBAIGV4dGVybiB2b2lkIGZp bmRfbG93ZXN0X3NlY3Rpb24gKGJmZCAqLCBhc2VjdGlvbiAqLCB2b2lkICopOworIAorIGV4dGVy biBiZmQgKnN5bWZpbGVfYmZkX29wZW4gKGNoYXIgKik7CisgCistZXh0ZXJuIGJmZCAqYmZkX29w ZW5fbWF5YmVfcmVtb3RlIChjb25zdCBjaGFyICopOworK2V4dGVybiBiZmQgKmdkYl9iZmRfb3Bl bl9tYXliZV9yZW1vdGUgKGNvbnN0IGNoYXIgKik7CisgCisgZXh0ZXJuIGludCBnZXRfc2VjdGlv bl9pbmRleCAoc3RydWN0IG9iamZpbGUgKiwgY2hhciAqKTsKKyAKIGRpZmYgLS1naXQgYS9nZGIv dGVzdHN1aXRlL2dkYi5hZGEvcGFja2VkX2FycmF5LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLmFk YS9wYWNrZWRfYXJyYXkuZXhwCiBpbmRleCA2Nzg2MzljLi40N2EyMjAyIDEwMDY0NAogLS0tIGEv Z2RiL3Rlc3RzdWl0ZS9nZGIuYWRhL3BhY2tlZF9hcnJheS5leHAKQEAgLTEzNDIwLDcgKzEzOTQ3 LDcgQEAgaW5kZXggZDhiMTU3Zi4uZjQ5ZTgyNyAxMDA2NDQKICBleHRlcm4gc3RydWN0IHZhbHVl ICp2YWx1ZV9hdF9sYXp5IChzdHJ1Y3QgdHlwZSAqdHlwZSwgQ09SRV9BRERSIGFkZHIpOwogIAog ZGlmZiAtLWdpdCBhL2dkYi93aW5kb3dzLW5hdC5jIGIvZ2RiL3dpbmRvd3MtbmF0LmMKLWluZGV4 IGYxNjU4OGEuLjZiYTkyZDkgMTAwNjQ0CitpbmRleCBmMTY1ODhhLi5hZmVmNjE1IDEwMDY0NAog LS0tIGEvZ2RiL3dpbmRvd3MtbmF0LmMKICsrKyBiL2dkYi93aW5kb3dzLW5hdC5jCiBAQCAtNzUy LDcgKzc1Miw3IEBAIHdpbmRvd3NfbWFrZV9zbyAoY29uc3QgY2hhciAqbmFtZSwgTFBWT0lEIGxv YWRfYWRkcikKQEAgLTEzNDI4LDcgKzEzOTU1LDcgQEAgaW5kZXggZjE2NTg4YS4uNmJhOTJkOSAx MDA2NDQKICAgICAgICBDT1JFX0FERFIgdGV4dF92bWE7CiAgCiAtICAgICAgYWJmZCA9IGJmZF9v cGVuciAoc28tPnNvX25hbWUsICJwZWktaTM4NiIpOwotKyAgICAgIGFiZmQgPSBnZGJfYmZkX3Jl ZiAoYmZkX29wZW5yIChzby0+c29fbmFtZSwgInBlaS1pMzg2IikpOworKyAgICAgIGFiZmQgPSBn ZGJfYmZkX29wZW5yIChzby0+c29fbmFtZSwgInBlaS1pMzg2Iik7CiAgCiAgICAgICAgaWYgKCFh YmZkKQogIAlyZXR1cm4gc287CgpkaWZmIC0tZ2l0IGEvZ2RiLWRpc2FibGUtbWNoZWNrLnBhdGNo IGIvZ2RiLWRpc2FibGUtbWNoZWNrLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCA3NGYwMjMwLi4wMDAwMDAwCi0tLSBhL2dkYi1kaXNhYmxlLW1jaGVjay5wYXRjaAorKysgL2Rl di9udWxsCkBAIC0xLDI0ICswLDAgQEAKLWRpZmYgLWR1cCAtcnVwIGdkYi03LjQuNTAuMjAxMjA2 MDMtb3JpZy9nZGIvY29uZmlndXJlIGdkYi03LjQuNTAuMjAxMjA2MDMvZ2RiL2NvbmZpZ3VyZQot LS0tIGdkYi03LjQuNTAuMjAxMjA2MDMtb3JpZy9nZGIvY29uZmlndXJlCTIwMTItMDYtMDYgMTk6 MDg6MzIuODI0ODI0Njk5ICswMjAwCi0rKysgZ2RiLTcuNC41MC4yMDEyMDYwMy9nZGIvY29uZmln dXJlCTIwMTItMDYtMDYgMTk6MTI6MTIuMzQ2OTkyNDIzICswMjAwCi1AQCAtMjcwNiw3ICsyNzA2 LDcgQEAgZmkKLSAjIFByb3ZpZGUgbW9yZSB0aG9yb3VnaCB0ZXN0aW5nIGJ5IC1sbWNoZWNrLgot ICMgU2V0IGl0IHRvICd0cnVlJyBmb3IgZGV2ZWxvcG1lbnQgc25hcHNob3RzLCAnZmFsc2UnIGZv ciByZWxlYXNlcyBvcgotICMgcHJlLXJlbGVhc2VzLgotLWRldmVsb3BtZW50PXRydWUKLStkZXZl bG9wbWVudD1mYWxzZQotIAotIGFjX2V4dD1jCi0gYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKLWRp ZmYgLWR1cCAtcnVwIGdkYi03LjQuNTAuMjAxMjA2MDMtb3JpZy9nZGIvY29uZmlndXJlLmFjIGdk Yi03LjQuNTAuMjAxMjA2MDMvZ2RiL2NvbmZpZ3VyZS5hYwotLS0tIGdkYi03LjQuNTAuMjAxMjA2 MDMtb3JpZy9nZGIvY29uZmlndXJlLmFjCTIwMTItMDYtMDYgMTk6MDg6MzIuODE3ODI0NjkzICsw MjAwCi0rKysgZ2RiLTcuNC41MC4yMDEyMDYwMy9nZGIvY29uZmlndXJlLmFjCTIwMTItMDYtMDYg MTk6MTI6MDUuNTQ1OTg3MjI3ICswMjAwCi1AQCAtMjYsNyArMjYsNyBAQCBBTV9NQUlOVEFJTkVS X01PREUKLSAjIFByb3ZpZGUgbW9yZSB0aG9yb3VnaCB0ZXN0aW5nIGJ5IC1sbWNoZWNrLgotICMg U2V0IGl0IHRvICd0cnVlJyBmb3IgZGV2ZWxvcG1lbnQgc25hcHNob3RzLCAnZmFsc2UnIGZvciBy ZWxlYXNlcyBvcgotICMgcHJlLXJlbGVhc2VzLgotLWRldmVsb3BtZW50PXRydWUKLStkZXZlbG9w bWVudD1mYWxzZQotIAotIEFDX1BST0dfQ0MKLSBBQ19VU0VfU1lTVEVNX0VYVEVOU0lPTlMKCmRp ZmYgLS1naXQgYS9nZGItZGxvcGVuLXN0YXAtcHJvYmUucGF0Y2ggYi9nZGItZGxvcGVuLXN0YXAt cHJvYmUucGF0Y2gKaW5kZXggOTRhNGI2MS4uZmYxOTI2OSAxMDA2NDQKLS0tIGEvZ2RiLWRsb3Bl bi1zdGFwLXByb2JlLnBhdGNoCisrKyBiL2dkYi1kbG9wZW4tc3RhcC1wcm9iZS5wYXRjaApAQCAt MiwxMCArMiwxMCBAQCBGcm9tOiBHYXJ5IEJlbnNvbiA8Z2JlbnNvbkByZWRoYXQuY29tPgogVG86 IEphbiBLcmF0b2NodmlsIDxqYW4ua3JhdG9jaHZpbEByZWRoYXQuY29tPgogTWVzc2FnZS1JRDog PDIwMTEwODEwMTMzNjA1LkdCNzI5NEByZWRoYXQuY29tPgogCi1JbmRleDogZ2RiLTcuNC41MC4y MDEyMDYwMi9nZGIvaW5mcnVuLmMKK0luZGV4OiBnZGItNy40LjkxLjIwMTIwODAxL2dkYi9pbmZy dW4uYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjQuNTAuMjAxMjA2MDIub3JpZy9nZGIvaW5mcnVu LmMJMjAxMi0wNi0wMiAyMTozODowNy4yMzY0NDI4ODMgKzAyMDAKLSsrKyBnZGItNy40LjUwLjIw MTIwNjAyL2dkYi9pbmZydW4uYwkyMDEyLTA2LTAyIDIxOjM4OjEzLjQ1MDQ0MDUwNyArMDIwMAor LS0tIGdkYi03LjQuOTEuMjAxMjA4MDEub3JpZy9nZGIvaW5mcnVuLmMJMjAxMi0wOC0wMSAxODoz ODoyNC4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy40LjkxLjIwMTIwODAxL2dkYi9pbmZydW4u YwkyMDEyLTA4LTAxIDE4OjQ0OjU5LjU2ODUxODYwMiArMDIwMAogQEAgLTM2MSw2ICszNjEsMTMg QEAgc3RhdGljIHN0cnVjdCBzeW1ib2wgKnN0ZXBfc3RhcnRfZnVuY3RpbwogIC8qIE5vbnplcm8g aWYgd2Ugd2FudCB0byBnaXZlIGNvbnRyb2wgdG8gdGhlIHVzZXIgd2hlbiB3ZSdyZSBub3RpZmll ZAogICAgIG9mIHNoYXJlZCBsaWJyYXJ5IGV2ZW50cyBieSB0aGUgZHluYW1pYyBsaW5rZXIuICAq LwpAQCAtMjAsNyArMjAsNyBAQCBJbmRleDogZ2RiLTcuNC41MC4yMDEyMDYwMi9nZGIvaW5mcnVu LmMKICBzdGF0aWMgdm9pZAogIHNob3dfc3RvcF9vbl9zb2xpYl9ldmVudHMgKHN0cnVjdCB1aV9m aWxlICpmaWxlLCBpbnQgZnJvbV90dHksCiAgCQkJICAgc3RydWN0IGNtZF9saXN0X2VsZW1lbnQg KmMsIGNvbnN0IGNoYXIgKnZhbHVlKQotQEAgLTcyNjcsNyArNzI3NCw3IEBAIFNob3cgc3RvcHBp bmcgZm9yIHNoYXJlZCBsaWJyYXJ5IGV2ZW50cy4KK0BAIC03MjI5LDcgKzcyMzYsNyBAQCBTaG93 IHN0b3BwaW5nIGZvciBzaGFyZWQgbGlicmFyeSBldmVudHMuCiAgSWYgbm9uemVybywgZ2RiIHdp bGwgZ2l2ZSBjb250cm9sIHRvIHRoZSB1c2VyIHdoZW4gdGhlIGR5bmFtaWMgbGlua2VyXG5cCiAg bm90aWZpZXMgZ2RiIG9mIHNoYXJlZCBsaWJyYXJ5IGV2ZW50cy4gIFRoZSBtb3N0IGNvbW1vbiBl dmVudCBvZiBpbnRlcmVzdFxuXAogIHRvIHRoZSB1c2VyIHdvdWxkIGJlIGxvYWRpbmcvdW5sb2Fk aW5nIG9mIGEgbmV3IGxpYnJhcnkuIiksCkBAIC0yOSwyMCArMjksMTkgQEAgSW5kZXg6IGdkYi03 LjQuNTAuMjAxMjA2MDIvZ2RiL2luZnJ1bi5jCiAgCQkJICAgIHNob3dfc3RvcF9vbl9zb2xpYl9l dmVudHMsCiAgCQkJICAgICZzZXRsaXN0LCAmc2hvd2xpc3QpOwogIAotSW5kZXg6IGdkYi03LjQu NTAuMjAxMjA2MDIvZ2RiL3NvbGliLXN2cjQuYworSW5kZXg6IGdkYi03LjQuOTEuMjAxMjA4MDEv Z2RiL3NvbGliLXN2cjQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjQuNTAuMjAxMjA2MDIub3Jp Zy9nZGIvc29saWItc3ZyNC5jCTIwMTItMDYtMDIgMjE6Mzg6MDcuMjM2NDQyODgzICswMjAwCi0r KysgZ2RiLTcuNC41MC4yMDEyMDYwMi9nZGIvc29saWItc3ZyNC5jCTIwMTItMDYtMDIgMjE6NDQ6 MjMuOTczMjk4NzM3ICswMjAwCi1AQCAtNDcsNiArNDcsOCBAQAorLS0tIGdkYi03LjQuOTEuMjAx MjA4MDEub3JpZy9nZGIvc29saWItc3ZyNC5jCTIwMTItMDgtMDEgMTg6Mzg6MjQuMDAwMDAwMDAw ICswMjAwCisrKysgZ2RiLTcuNC45MS4yMDEyMDgwMS9nZGIvc29saWItc3ZyNC5jCTIwMTItMDgt MDEgMTg6NDU6MTMuNDQ5NDQxNzg3ICswMjAwCitAQCAtNDcsNiArNDcsNyBAQAogICNpbmNsdWRl ICJhdXh2LmgiCiAgI2luY2x1ZGUgImV4Y2VwdGlvbnMuaCIKLSAKKyAjaW5jbHVkZSAiZ2RiX2Jm ZC5oIgogKyNpbmNsdWRlICJwcm9iZS5oIgotKworIAogIHN0YXRpYyBzdHJ1Y3QgbGlua19tYXBf b2Zmc2V0cyAqc3ZyNF9mZXRjaF9saW5rX21hcF9vZmZzZXRzICh2b2lkKTsKICBzdGF0aWMgaW50 IHN2cjRfaGF2ZV9saW5rX21hcF9vZmZzZXRzICh2b2lkKTsKLSBzdGF0aWMgdm9pZCBzdnI0X3Jl bG9jYXRlX21haW5fZXhlY3V0YWJsZSAodm9pZCk7Ci1AQCAtOTIsNiArOTQsMzIgQEAgc3RhdGlj IGNvbnN0IGNoYXIgKiBjb25zdCBzb2xpYl9icmVha19uYQorQEAgLTkzLDYgKzk0LDMyIEBAIHN0 YXRpYyBjb25zdCBjaGFyICogY29uc3Qgc29saWJfYnJlYWtfbmEKICAgIE5VTEwKICB9OwogIApA QCAtNzUsNyArNzQsNyBAQCBJbmRleDogZ2RiLTcuNC41MC4yMDEyMDYwMi9nZGIvc29saWItc3Zy NC5jCiAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBia3B0X25hbWVzW10gPQogIHsKICAgICJf c3RhcnQiLAotQEAgLTMxMyw2ICszNDEsMTIgQEAgc3RydWN0IHN2cjRfaW5mbworQEAgLTMxNCw2 ICszNDEsMTIgQEAgc3RydWN0IHN2cjRfaW5mbwogICAgQ09SRV9BRERSIGludGVycF90ZXh0X3Nl Y3RfaGlnaDsKICAgIENPUkVfQUREUiBpbnRlcnBfcGx0X3NlY3RfbG93OwogICAgQ09SRV9BRERS IGludGVycF9wbHRfc2VjdF9oaWdoOwpAQCAtODgsNyArODcsNyBAQCBJbmRleDogZ2RiLTcuNC41 MC4yMDEyMDYwMi9nZGIvc29saWItc3ZyNC5jCiAgfTsKICAKICAvKiBQZXItcHJvZ3JhbS1zcGFj ZSBkYXRhIGtleS4gICovCi1AQCAtMzIyLDggKzM1NiwxNSBAQCBzdGF0aWMgdm9pZAorQEAgLTMy Myw4ICszNTYsMTUgQEAgc3RhdGljIHZvaWQKICBzdnI0X3BzcGFjZV9kYXRhX2NsZWFudXAgKHN0 cnVjdCBwcm9ncmFtX3NwYWNlICpwc3BhY2UsIHZvaWQgKmFyZykKICB7CiAgICBzdHJ1Y3Qgc3Zy NF9pbmZvICppbmZvOwpAQCAtMTA0LDcgKzEwMyw3IEBAIEluZGV4OiBnZGItNy40LjUwLjIwMTIw NjAyL2dkYi9zb2xpYi1zdnI0LmMKICAgIHhmcmVlIChpbmZvKTsKICB9CiAgCi1AQCAtMTQ0OSw2 ICsxNDkwLDEyNiBAQCBleGVjX2VudHJ5X3BvaW50IChzdHJ1Y3QgYmZkICphYmZkLCBzdHJ1CitA QCAtMTQ1MCw2ICsxNDkwLDEyNiBAQCBleGVjX2VudHJ5X3BvaW50IChzdHJ1Y3QgYmZkICphYmZk LCBzdHJ1CiAgCQkJCQkgICAgIHRhcmcpOwogIH0KICAKQEAgLTIzMSw3ICsyMzAsNyBAQCBJbmRl eDogZ2RiLTcuNC41MC4yMDEyMDYwMi9nZGIvc29saWItc3ZyNC5jCiAgLyogSGVscGVyIGZ1bmN0 aW9uIGZvciBnZGJfYmZkX2xvb2t1cF9zeW1ib2wuICAqLwogIAogIHN0YXRpYyBpbnQKLUBAIC0x NDk3LDEwICsxNjU4LDE4IEBAIGVuYWJsZV9icmVhayAoc3RydWN0IHN2cjRfaW5mbyAqaW5mbywg aW4KK0BAIC0xNDk4LDEwICsxNjU4LDE4IEBAIGVuYWJsZV9icmVhayAoc3RydWN0IHN2cjRfaW5m byAqaW5mbywgaW4KICAgIGFzZWN0aW9uICppbnRlcnBfc2VjdDsKICAgIGdkYl9ieXRlICppbnRl cnBfbmFtZTsKICAgIENPUkVfQUREUiBzeW1fYWRkcjsKQEAgLTI1MCw3ICsyNDksNyBAQCBJbmRl eDogZ2RiLTcuNC41MC4yMDEyMDYwMi9nZGIvc29saWItc3ZyNC5jCiAgICAvKiBJZiB3ZSBhbHJl YWR5IGhhdmUgYSBzaGFyZWQgbGlicmFyeSBsaXN0IGluIHRoZSB0YXJnZXQsIGFuZAogICAgICAg cl9kZWJ1ZyBjb250YWlucyByX2Jyaywgc2V0IHRoZSBicmVha3BvaW50IHRoZXJlIC0gdGhpcyBz aG91bGQKICAgICAgIG1lYW4gcl9icmsgaGFzIGFscmVhZHkgYmVlbiByZWxvY2F0ZWQuICBBc3N1 bWUgdGhlIGR5bmFtaWMgbGlua2VyCi1AQCAtMTUzMiw3ICsxNzAxLDcgQEAgZW5hYmxlX2JyZWFr IChzdHJ1Y3Qgc3ZyNF9pbmZvICppbmZvLCBpbgorQEAgLTE1MzMsNyArMTcwMSw3IEBAIGVuYWJs ZV9icmVhayAoc3RydWN0IHN2cjRfaW5mbyAqaW5mbywgaW4KICAJIFRoYXQga25vd2xlZGdlIGlz IGVuY29kZWQgaW4gdGhlIGFkZHJlc3MsIGlmIGl0J3MgVGh1bWIgdGhlIGxvdyBiaXQKICAJIGlz IDEuICBIb3dldmVyLCB3ZSd2ZSBzdHJpcHBlZCB0aGF0IGluZm8gYWJvdmUgYW5kIGl0J3Mgbm90 IGNsZWFyCiAgCSB3aGF0IGFsbCB0aGUgY29uc2VxdWVuY2VzIGFyZSBvZiBwYXNzaW5nIGEgbm9u LWFkZHJfYml0c19yZW1vdmUnZApAQCAtMjU5LDcgKzI1OCw3IEBAIEluZGV4OiBnZGItNy40LjUw LjIwMTIwNjAyL2dkYi9zb2xpYi1zdnI0LmMKICAJIGZpbmRfcGNfc2VjdGlvbiB2ZXJpZmllcyB3 ZSBrbm93IGFib3V0IHRoZSBhZGRyZXNzIGFuZCBoYXZlIHNvbWUKICAJIGhvcGUgb2YgY29tcHV0 aW5nIHRoZSByaWdodCBraW5kIG9mIGJyZWFrcG9pbnQgdG8gdXNlICh2aWEKICAJIHN5bWJvbCBp bmZvKS4gIEl0IGRvZXMgbWVhbiB0aGF0IEdEQiBuZWVkcyB0byBiZSBwb2ludGVkIGF0IGEKLUBA IC0xNTcwLDcgKzE3MzksNyBAQCBlbmFibGVfYnJlYWsgKHN0cnVjdCBzdnI0X2luZm8gKmluZm8s IGluCitAQCAtMTU3MSw3ICsxNzM5LDcgQEAgZW5hYmxlX2JyZWFrIChzdHJ1Y3Qgc3ZyNF9pbmZv ICppbmZvLCBpbgogIAkJKyBiZmRfc2VjdGlvbl9zaXplICh0bXBfYmZkLCBpbnRlcnBfc2VjdCk7 CiAgCSAgICB9CiAgCkBAIC0yNjgsNyArMjY3LDcgQEAgSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA2 MDIvZ2RiL3NvbGliLXN2cjQuYwogIAkgIHJldHVybiAxOwogIAl9CiAgICAgIH0KLUBAIC0xNzI1 LDcgKzE4OTQsOCBAQCBlbmFibGVfYnJlYWsgKHN0cnVjdCBzdnI0X2luZm8gKmluZm8sIGluCitA QCAtMTcyOSw3ICsxODk3LDggQEAgZW5hYmxlX2JyZWFrIChzdHJ1Y3Qgc3ZyNF9pbmZvICppbmZv LCBpbgogIAogICAgICAgIGlmIChzeW1fYWRkciAhPSAwKQogIAl7CkBAIC0yNzgsNyArMjc3LDcg QEAgSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA2MDIvZ2RiL3NvbGliLXN2cjQuYwogIAkgIHhmcmVl IChpbnRlcnBfbmFtZSk7CiAgCSAgcmV0dXJuIDE7CiAgCX0KLUBAIC0xNzUxLDcgKzE5MjEsNyBA QCBlbmFibGVfYnJlYWsgKHN0cnVjdCBzdnI0X2luZm8gKmluZm8sIGluCitAQCAtMTc1NSw3ICsx OTI0LDcgQEAgZW5hYmxlX2JyZWFrIChzdHJ1Y3Qgc3ZyNF9pbmZvICppbmZvLCBpbgogIAkgIHN5 bV9hZGRyID0gZ2RiYXJjaF9jb252ZXJ0X2Zyb21fZnVuY19wdHJfYWRkciAodGFyZ2V0X2dkYmFy Y2gsCiAgCQkJCQkJCSBzeW1fYWRkciwKICAJCQkJCQkJICZjdXJyZW50X3RhcmdldCk7CkBAIC0y ODcsNyArMjg2LDcgQEAgSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA2MDIvZ2RiL3NvbGliLXN2cjQu YwogIAkgIHJldHVybiAxOwogIAl9CiAgICAgIH0KLUBAIC0xNzY3LDcgKzE5MzcsNyBAQCBlbmFi bGVfYnJlYWsgKHN0cnVjdCBzdnI0X2luZm8gKmluZm8sIGluCitAQCAtMTc3MSw3ICsxOTQwLDcg QEAgZW5hYmxlX2JyZWFrIChzdHJ1Y3Qgc3ZyNF9pbmZvICppbmZvLCBpbgogIAkgICAgICBzeW1f YWRkciA9IGdkYmFyY2hfY29udmVydF9mcm9tX2Z1bmNfcHRyX2FkZHIgKHRhcmdldF9nZGJhcmNo LAogIAkJCQkJCQkgICAgIHN5bV9hZGRyLAogIAkJCQkJCQkgICAgICZjdXJyZW50X3RhcmdldCk7 CkBAIC0yOTYsMTcgKzI5NSwxNyBAQCBJbmRleDogZ2RiLTcuNC41MC4yMDEyMDYwMi9nZGIvc29s aWItc3ZyNC5jCiAgCSAgICAgIHJldHVybiAxOwogIAkgICAgfQogIAl9Ci1AQCAtMjU0Myw0ICsy NzEzLDUgQEAgX2luaXRpYWxpemVfc3ZyNF9zb2xpYiAodm9pZCkKK0BAIC0yNTQ3LDQgKzI3MTYs NSBAQCBfaW5pdGlhbGl6ZV9zdnI0X3NvbGliICh2b2lkKQogICAgc3ZyNF9zb19vcHMubG9va3Vw X2xpYl9nbG9iYWxfc3ltYm9sID0gZWxmX2xvb2t1cF9saWJfc3ltYm9sOwogICAgc3ZyNF9zb19v cHMuc2FtZSA9IHN2cjRfc2FtZTsKICAgIHN2cjRfc29fb3BzLmtlZXBfZGF0YV9pbl9jb3JlID0g c3ZyNF9rZWVwX2RhdGFfaW5fY29yZTsKICsgIHN2cjRfc29fb3BzLnVwZGF0ZV9icmVha3BvaW50 cyA9IHN2cjRfdXBkYXRlX3NvbGliX2V2ZW50X2JyZWFrcG9pbnRzOwogIH0KLUluZGV4OiBnZGIt Ny40LjUwLjIwMTIwNjAyL2dkYi9zb2xpYi5jCitJbmRleDogZ2RiLTcuNC45MS4yMDEyMDgwMS9n ZGIvc29saWIuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjQuNTAuMjAxMjA2MDIub3JpZy9nZGIv c29saWIuYwkyMDEyLTA2LTAyIDIxOjM4OjA3LjIzNjQ0Mjg4MyArMDIwMAotKysrIGdkYi03LjQu NTAuMjAxMjA2MDIvZ2RiL3NvbGliLmMJMjAxMi0wNi0wMiAyMTozODoxMy40NTU0NDA1MDcgKzAy MDAKLUBAIC0xMjE2LDYgKzEyMTYsMTggQEAgbm9fc2hhcmVkX2xpYnJhcmllcyAoY2hhciAqaWdu b3JlZCwgaW50CistLS0gZ2RiLTcuNC45MS4yMDEyMDgwMS5vcmlnL2dkYi9zb2xpYi5jCTIwMTIt MDgtMDEgMTg6Mzg6MjQuMDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuNC45MS4yMDEyMDgwMS9n ZGIvc29saWIuYwkyMDEyLTA4LTAxIDE4OjQ0OjU5LjU3MzUxODU3MiArMDIwMAorQEAgLTEyMjYs NiArMTIyNiwxOCBAQCBub19zaGFyZWRfbGlicmFyaWVzIChjaGFyICppZ25vcmVkLCBpbnQKICAg IG9iamZpbGVfcHVyZ2Vfc29saWJzICgpOwogIH0KICAKQEAgLTMyNSwxMCArMzI0LDEwIEBAIElu ZGV4OiBnZGItNy40LjUwLjIwMTIwNjAyL2dkYi9zb2xpYi5jCiAgLyogUmVsb2FkIHNoYXJlZCBs aWJyYXJpZXMsIGJ1dCBhdm9pZCByZWxvYWRpbmcgdGhlIHNhbWUgc3ltYm9sIGZpbGUKICAgICB3 ZSBhbHJlYWR5IGhhdmUgbG9hZGVkLiAgKi8KICAKLUluZGV4OiBnZGItNy40LjUwLjIwMTIwNjAy L2dkYi9zb2xpYi5oCitJbmRleDogZ2RiLTcuNC45MS4yMDEyMDgwMS9nZGIvc29saWIuaAogPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGdkYi03LjQuNTAuMjAxMjA2MDIub3JpZy9nZGIvc29saWIuaAkyMDEyLTA2 LTAyIDIxOjM4OjA3LjIzNjQ0Mjg4MyArMDIwMAotKysrIGdkYi03LjQuNTAuMjAxMjA2MDIvZ2Ri L3NvbGliLmgJMjAxMi0wNi0wMiAyMTozODoxMy40NjQ0NDA1MDMgKzAyMDAKKy0tLSBnZGItNy40 LjkxLjIwMTIwODAxLm9yaWcvZ2RiL3NvbGliLmgJMjAxMi0wMi0wMyAxNjoxOTozNy4wMDAwMDAw MDAgKzAxMDAKKysrKyBnZGItNy40LjkxLjIwMTIwODAxL2dkYi9zb2xpYi5oCTIwMTItMDgtMDEg MTg6NDQ6NTkuNTc0NTE4NTY2ICswMjAwCiBAQCAtOTEsNCArOTEsOCBAQCBleHRlcm4gQ09SRV9B RERSIGdkYl9iZmRfbG9va3VwX3N5bWJvbF9mCiAgCQkJCQkJCQkgICAgICB2b2lkICopLAogIAkJ CQkJCSAgICB2b2lkICpkYXRhKTsKQEAgLTMzOCwxMCArMzM3LDEwIEBAIEluZGV4OiBnZGItNy40 LjUwLjIwMTIwNjAyL2dkYi9zb2xpYi5oCiArZXh0ZXJuIHZvaWQgdXBkYXRlX3NvbGliX2JyZWFr cG9pbnRzICh2b2lkKTsKICsKICAjZW5kaWYgLyogU09MSUJfSCAqLwotSW5kZXg6IGdkYi03LjQu NTAuMjAxMjA2MDIvZ2RiL3NvbGlzdC5oCitJbmRleDogZ2RiLTcuNC45MS4yMDEyMDgwMS9nZGIv c29saXN0LmgKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGItNy40LjUwLjIwMTIwNjAyLm9yaWcvZ2RiL3Nv bGlzdC5oCTIwMTItMDYtMDIgMjE6Mzg6MDcuMjM2NDQyODgzICswMjAwCi0rKysgZ2RiLTcuNC41 MC4yMDEyMDYwMi9nZGIvc29saXN0LmgJMjAxMi0wNi0wMiAyMTozODoxMy40NjU0NDA1MDMgKzAy MDAKKy0tLSBnZGItNy40LjkxLjIwMTIwODAxLm9yaWcvZ2RiL3NvbGlzdC5oCTIwMTItMDEtMDQg MDk6MTc6MTEuMDAwMDAwMDAwICswMTAwCisrKysgZ2RiLTcuNC45MS4yMDEyMDgwMS9nZGIvc29s aXN0LmgJMjAxMi0wOC0wMSAxODo0NDo1OS41NzQ1MTg1NjYgKzAyMDAKIEBAIC0xNDksNiArMTQ5 LDEzIEBAIHN0cnVjdCB0YXJnZXRfc29fb3BzCiAgICAgICAgIGNvcmUgZmlsZSAoaW4gcGFydGlj dWxhciwgZm9yIHJlYWRvbmx5IHNlY3Rpb25zKS4gICovCiAgICAgIGludCAoKmtlZXBfZGF0YV9p bl9jb3JlKSAoQ09SRV9BRERSIHZhZGRyLAoKZGlmZiAtLWdpdCBhL2dkYi1mb3J0cmFuLWNvbW1v bi5wYXRjaCBiL2dkYi1mb3J0cmFuLWNvbW1vbi5wYXRjaAppbmRleCBjOGZiNTdiLi5lMDcyMTMz IDEwMDY0NAotLS0gYS9nZGItZm9ydHJhbi1jb21tb24ucGF0Y2gKKysrIGIvZ2RiLWZvcnRyYW4t Y29tbW9uLnBhdGNoCkBAIC0xLDggKzEsOCBAQAotSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3MTQv Z2RiL2R3YXJmMnJlYWQuYworSW5kZXg6IGdkYi03LjQuOTEuMjAxMjA4MDEvZ2RiL2R3YXJmMnJl YWQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjQuNTAuMjAxMjA3MTQub3JpZy9nZGIvZHdhcmYy cmVhZC5jCTIwMTItMDctMTQgMjM6MzY6MDkuODgyMTM2NTQ2ICswMjAwCi0rKysgZ2RiLTcuNC41 MC4yMDEyMDcxNC9nZGIvZHdhcmYycmVhZC5jCTIwMTItMDctMTQgMjM6MzY6MTEuMDMyMTMwMTgy ICswMjAwCi1AQCAtMTEwMDMsMTIgKzExMDAzLDE0IEBAIHJlYWRfc2V0X3R5cGUgKHN0cnVjdCBk aWVfaW5mbyAqZGllLCBzdHIKKy0tLSBnZGItNy40LjkxLjIwMTIwODAxLm9yaWcvZ2RiL2R3YXJm MnJlYWQuYwkyMDEyLTA4LTAxIDE4OjM2OjUxLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjQu OTEuMjAxMjA4MDEvZ2RiL2R3YXJmMnJlYWQuYwkyMDEyLTA4LTAxIDE4OjM4OjU0LjIwMTU0MDUw MCArMDIwMAorQEAgLTExMDczLDEyICsxMTA3MywxNCBAQCByZWFkX3NldF90eXBlIChzdHJ1Y3Qg ZGllX2luZm8gKmRpZSwgc3RyCiAgICByZXR1cm4gc2V0X2RpZV90eXBlIChkaWUsIHNldF90eXBl LCBjdSk7CiAgfQogIApAQCAtMTksNyArMTksNyBAQCBJbmRleDogZ2RiLTcuNC41MC4yMDEyMDcx NC9nZGIvZHdhcmYycmVhZC5jCiAgICBzdHJ1Y3QgYXR0cmlidXRlICphdHRyOwogICAgc3RydWN0 IHN5bWJvbCAqc3ltOwogICAgQ09SRV9BRERSIGJhc2UgPSAoQ09SRV9BRERSKSAwOwotQEAgLTEx MDMzLDIwICsxMTAzNSw2NyBAQCByZWFkX2NvbW1vbl9ibG9jayAoc3RydWN0IGRpZV9pbmZvICpk aWUsCitAQCAtMTExMDMsMjAgKzExMTA1LDY3IEBAIHJlYWRfY29tbW9uX2Jsb2NrIChzdHJ1Y3Qg ZGllX2luZm8gKmRpZSwKICAgICAgfQogICAgaWYgKGRpZS0+Y2hpbGQgIT0gTlVMTCkKICAgICAg ewpAQCAtODcsNyArODcsNyBAQCBJbmRleDogZ2RiLTcuNC41MC4yMDEyMDcxNC9nZGIvZHdhcmYy cmVhZC5jCiAgICAgIH0KICB9CiAgCi1AQCAtMTUwODUsNiArMTUxMzQsMTMgQEAgbmV3X3N5bWJv bF9mdWxsIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgcworQEAgLTE1MTU1LDYgKzE1MjA0LDEzIEBA IG5ld19zeW1ib2xfZnVsbCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHMKICAJICAgIHsKICAJICAg ICAgdmFyX2RlY29kZV9sb2NhdGlvbiAoYXR0ciwgc3ltLCBjdSk7CiAgCSAgICAgIGF0dHIyID0g ZHdhcmYyX2F0dHIgKGRpZSwgRFdfQVRfZXh0ZXJuYWwsIGN1KTsKQEAgLTEwMSw3ICsxMDEsNyBA QCBJbmRleDogZ2RiLTcuNC41MC4yMDEyMDcxNC9nZGIvZHdhcmYycmVhZC5jCiAgCSAgICAgIGlm IChTWU1CT0xfQ0xBU1MgKHN5bSkgPT0gTE9DX1NUQVRJQwogIAkJICAmJiBTWU1CT0xfVkFMVUVf QUREUkVTUyAoc3ltKSA9PSAwCiAgCQkgICYmICFkd2FyZjJfcGVyX29iamZpbGUtPmhhc19zZWN0 aW9uX2F0X3plcm8pCi1AQCAtMTUyNDksNiArMTUzMDUsMTEgQEAgbmV3X3N5bWJvbF9mdWxsIChz dHJ1Y3QgZGllX2luZm8gKmRpZSwgcworQEAgLTE1MzE5LDYgKzE1Mzc1LDExIEBAIG5ld19zeW1i b2xfZnVsbCAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHMKICAJICBTWU1CT0xfQ0xBU1MgKHN5bSkg PSBMT0NfVFlQRURFRjsKICAJICBsaXN0X3RvX2FkZCA9ICZnbG9iYWxfc3ltYm9sczsKICAJICBi cmVhazsKQEAgLTExMywxMCArMTEzLDEwIEBAIEluZGV4OiBnZGItNy40LjUwLjIwMTIwNzE0L2dk Yi9kd2FyZjJyZWFkLmMKICAJZGVmYXVsdDoKICAJICAvKiBOb3QgYSB0YWcgd2UgcmVjb2duaXpl LiAgSG9wZWZ1bGx5IHdlIGFyZW4ndCBwcm9jZXNzaW5nCiAgCSAgICAgdHJhc2ggZGF0YSwgYnV0 IHNpbmNlIHdlIG11c3Qgc3BlY2lmaWNhbGx5IGlnbm9yZSB0aGluZ3MKLUluZGV4OiBnZGItNy40 LjUwLjIwMTIwNzE0L2dkYi9mLWxhbmcuYworSW5kZXg6IGdkYi03LjQuOTEuMjAxMjA4MDEvZ2Ri L2YtbGFuZy5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNC41MC4yMDEyMDcxNC5vcmlnL2dkYi9m LWxhbmcuYwkyMDEyLTA3LTE0IDIzOjM2OjEwLjk5MzEzMDM5OCArMDIwMAotKysrIGdkYi03LjQu NTAuMjAxMjA3MTQvZ2RiL2YtbGFuZy5jCTIwMTItMDctMTQgMjM6MzY6MTEuMDMzMTMwMTc2ICsw MjAwCistLS0gZ2RiLTcuNC45MS4yMDEyMDgwMS5vcmlnL2dkYi9mLWxhbmcuYwkyMDEyLTA4LTAx IDE4OjM4OjI0LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjQuOTEuMjAxMjA4MDEvZ2RiL2Yt bGFuZy5jCTIwMTItMDgtMDEgMTg6Mzg6NTQuMjAyNTQwNDk1ICswMjAwCiBAQCAtMzcwLDI3ICsz NzAsMyBAQCBfaW5pdGlhbGl6ZV9mX2xhbmd1YWdlICh2b2lkKQogIAogICAgYWRkX2xhbmd1YWdl ICgmZl9sYW5ndWFnZV9kZWZuKTsKQEAgLTE0NSwxMCArMTQ1LDEwIEBAIEluZGV4OiBnZGItNy40 LjUwLjIwMTIwNzE0L2dkYi9mLWxhbmcuYwogLSAgICB9CiAtICByZXR1cm4gKE5VTEwpOwogLX0K LUluZGV4OiBnZGItNy40LjUwLjIwMTIwNzE0L2dkYi9mLWxhbmcuaAorSW5kZXg6IGdkYi03LjQu OTEuMjAxMjA4MDEvZ2RiL2YtbGFuZy5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNC41MC4yMDEy MDcxNC5vcmlnL2dkYi9mLWxhbmcuaAkyMDEyLTA3LTE0IDIzOjM2OjEwLjk5NDEzMDM5MiArMDIw MAotKysrIGdkYi03LjQuNTAuMjAxMjA3MTQvZ2RiL2YtbGFuZy5oCTIwMTItMDctMTQgMjM6MzY6 MTEuMDM0MTMwMTcxICswMjAwCistLS0gZ2RiLTcuNC45MS4yMDEyMDgwMS5vcmlnL2dkYi9mLWxh bmcuaAkyMDEyLTA4LTAxIDE4OjM4OjI0LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjQuOTEu MjAxMjA4MDEvZ2RiL2YtbGFuZy5oCTIwMTItMDgtMDEgMTg6Mzg6NTQuMjAzNTQwNDg5ICswMjAw CiBAQCAtNTIsMzcgKzUyLDggQEAgZW51bSBmOTBfcmFuZ2VfdHlwZQogICAgICBOT05FX0JPVU5E X0RFRkFVTFQJCS8qICIobG93OmhpZ2gpIiAgKi8KICAgIH07CkBAIC0xODcsMTAgKzE4NywxMCBA QCBJbmRleDogZ2RiLTcuNC41MC4yMDEyMDcxNC9nZGIvZi1sYW5nLmgKICAKICAvKiBXaGVuIHJl YXNvbmFibGUgYXJyYXkgYm91bmRzIGNhbm5vdCBiZSBmZXRjaGVkLCBzdWNoIGFzIHdoZW4gCiAg ICAgeW91IGFzayB0byAnbXQgcHJpbnQgc3ltYm9scycgYW5kIHRoZXJlIGlzIG5vIHN0YWNrIGZy YW1lIGFuZCAKLUluZGV4OiBnZGItNy40LjUwLjIwMTIwNzE0L2dkYi9mLXZhbHByaW50LmMKK0lu ZGV4OiBnZGItNy40LjkxLjIwMTIwODAxL2dkYi9mLXZhbHByaW50LmMKID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t LSBnZGItNy40LjUwLjIwMTIwNzE0Lm9yaWcvZ2RiL2YtdmFscHJpbnQuYwkyMDEyLTA3LTE0IDIz OjM2OjEwLjk5NTEzMDM4NyArMDIwMAotKysrIGdkYi03LjQuNTAuMjAxMjA3MTQvZ2RiL2YtdmFs cHJpbnQuYwkyMDEyLTA3LTE0IDIzOjM2OjUzLjc0Nzg5Mzc3OSArMDIwMAorLS0tIGdkYi03LjQu OTEuMjAxMjA4MDEub3JpZy9nZGIvZi12YWxwcmludC5jCTIwMTItMDgtMDEgMTg6Mzg6MjQuMDAw MDAwMDAwICswMjAwCisrKysgZ2RiLTcuNC45MS4yMDEyMDgwMS9nZGIvZi12YWxwcmludC5jCTIw MTItMDgtMDEgMTg6NDE6MjYuNDExNjk4MTg2ICswMjAwCiBAQCAtMzQsMTAgKzM0LDExIEBACiAg I2luY2x1ZGUgImdkYmNvcmUuaCIKICAjaW5jbHVkZSAiY29tbWFuZC5oIgpAQCAtMjU3LDE0ICsy NTcsMTQgQEAgSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3MTQvZ2RiL2YtdmFscHJpbnQuYwogKwkg IH0KICAKIC0gIHByaW50Zl9maWx0ZXJlZCAoXygiQWxsIENPTU1PTiBibG9ja3MgdmlzaWJsZSBh dCB0aGlzIGxldmVsOlxuXG4iKSk7Ci0rCXB1dGNoYXJfZmlsdGVyZWQgKCdcbicpOwotKyAgICAg IH0KLSAKKy0KIC0gIHdoaWxlICh0bXAgIT0gTlVMTCkKIC0gICAgewogLSAgICAgIGlmIChzdHJj bXAgKHRtcC0+b3duaW5nX2Z1bmN0aW9uLCBmdW5uYW1lKSA9PSAwKQogLQlwcmludGZfZmlsdGVy ZWQgKCIlc1xuIiwgdG1wLT5uYW1lKTsKLS0KKysJcHV0Y2hhcl9maWx0ZXJlZCAoJ1xuJyk7Cisr ICAgICAgfQorIAogLSAgICAgIHRtcCA9IHRtcC0+bmV4dDsKIC0gICAgfQogKyAgcmV0dXJuIHZh bHVlc19wcmludGVkOwpAQCAtMjg1LDcgKzI4NSw3IEBAIEluZGV4OiBnZGItNy40LjUwLjIwMTIw NzE0L2dkYi9mLXZhbHByaW50LmMKICAKICAgIC8qIFdlIGhhdmUgYmVlbiB0b2xkIHRvIGRpc3Bs YXkgdGhlIGNvbnRlbnRzIG9mIEY3NyBDT01NT04gCiAgICAgICBibG9jayBzdXBwb3NlZGx5IHZp c2libGUgaW4gdGhpcyBmdW5jdGlvbi4gIExldCB1cyAKLUBAIC00NjEsNzQgKzQ5MSwzMSBAQCBp bmZvX2NvbW1vbl9jb21tYW5kIChjaGFyICpjb21uYW1lLCBpbnQKK0BAIC00NjEsODcgKzQ5MSwz MSBAQCBpbmZvX2NvbW1vbl9jb21tYW5kIChjaGFyICpjb21uYW1lLCBpbnQKICAgIC8qIFRoZSBm b2xsb3dpbmcgaXMgZ2VuZXJhbGx5IHJpcHBlZCBvZmYgZnJvbSBzdGFjay5jJ3Mgcm91dGluZSAK ICAgICAgIHByaW50X2ZyYW1lX2luZm8oKS4gICovCiAgCkBAIC0zNTMsNiArMzUzLDggQEAgSW5k ZXg6IGdkYi03LjQuNTAuMjAxMjA3MTQvZ2RiL2YtdmFscHJpbnQuYwogLSAgaWYgKHRoZV9jb21t b24pCiArICBpZiAoIXZhbHVlc19wcmludGVkKQogICAgICB7CistICAgICAgc3RydWN0IGZyYW1l X2lkIGZyYW1lX2lkID0gZ2V0X2ZyYW1lX2lkIChmaSk7CistCiAtICAgICAgaWYgKHN0cmNtcCAo Y29tbmFtZSwgQkxBTktfQ09NTU9OX05BTUVfTE9DQUwpID09IDApCiAtCXByaW50Zl9maWx0ZXJl ZCAoXygiQ29udGVudHMgb2YgYmxhbmsgQ09NTU9OIGJsb2NrOlxuIikpOwogKyAgICAgIGlmIChj b21uYW1lKQpAQCAtMzY1LDcgKzM2NywxOCBAQCBJbmRleDogZ2RiLTcuNC41MC4yMDEyMDcxNC9n ZGIvZi12YWxwcmludC5jCiAtCiAtICAgICAgd2hpbGUgKGVudHJ5ICE9IE5VTEwpCiAtCXsKKy0J ICBmaSA9IGZyYW1lX2ZpbmRfYnlfaWQgKGZyYW1lX2lkKTsKKy0JICBpZiAoZmkgPT0gTlVMTCkK Ky0JICAgIHsKKy0JICAgICAgd2FybmluZyAoXygiVW5hYmxlIHRvIHJlc3RvcmUgcHJldmlvdXNs eSBzZWxlY3RlZCBmcmFtZS4iKSk7CistCSAgICAgIGJyZWFrOworLQkgICAgfQorLQogLQkgIHBy aW50X3ZhcmlhYmxlX2FuZF92YWx1ZSAoTlVMTCwgZW50cnktPnN5bWJvbCwgZmksIGdkYl9zdGRv dXQsIDApOworLQorLQkgIC8qIHByaW50X3ZhcmlhYmxlX2FuZF92YWx1ZSBpbnZhbGlkYXRlcyBG SS4gICovCistCSAgZmkgPSBOVUxMOworLQogLQkgIGVudHJ5ID0gZW50cnktPm5leHQ7CiAtCX0K ICsJcHJpbnRmX2ZpbHRlcmVkIChfKCJObyBjb21tb24gYmxvY2tzLlxuIikpOwpAQCAtMzc2LDEx ICszODksMTEgQEAgSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3MTQvZ2RiL2YtdmFscHJpbnQuYwog IH0KICAKICB2b2lkCi1JbmRleDogZ2RiLTcuNC41MC4yMDEyMDcxNC9nZGIvc3RhY2suYworSW5k ZXg6IGdkYi03LjQuOTEuMjAxMjA4MDEvZ2RiL3N0YWNrLmMKID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBnZGIt Ny40LjUwLjIwMTIwNzE0Lm9yaWcvZ2RiL3N0YWNrLmMJMjAxMi0wNy0xNCAyMzozNjowOS4zMTUx Mzk2ODMgKzAyMDAKLSsrKyBnZGItNy40LjUwLjIwMTIwNzE0L2dkYi9zdGFjay5jCTIwMTItMDct MTQgMjM6MzY6MTEuMDM2MTMwMTYxICswMjAwCi1AQCAtMTgzOCw2ICsxODM4LDggQEAgaXRlcmF0 ZV9vdmVyX2Jsb2NrX2xvY2FscyAoc3RydWN0IGJsb2NrCistLS0gZ2RiLTcuNC45MS4yMDEyMDgw MS5vcmlnL2dkYi9zdGFjay5jCTIwMTItMDgtMDEgMTg6MzY6NTEuMDAwMDAwMDAwICswMjAwCisr KysgZ2RiLTcuNC45MS4yMDEyMDgwMS9nZGIvc3RhY2suYwkyMDEyLTA4LTAxIDE4OjM4OjU0LjIw NjU0MDQ3MSArMDIwMAorQEAgLTE4NTEsNiArMTg1MSw4IEBAIGl0ZXJhdGVfb3Zlcl9ibG9ja19s b2NhbHMgKHN0cnVjdCBibG9jawogIAljYXNlIExPQ19DT01QVVRFRDoKICAJICBpZiAoU1lNQk9M X0lTX0FSR1VNRU5UIChzeW0pKQogIAkgICAgYnJlYWs7CkBAIC0zODksMTAgKzQwMiwxMCBAQCBJ bmRleDogZ2RiLTcuNC41MC4yMDEyMDcxNC9nZGIvc3RhY2suYwogIAkgICgqY2IpIChTWU1CT0xf UFJJTlRfTkFNRSAoc3ltKSwgc3ltLCBjYl9kYXRhKTsKICAJICBicmVhazsKICAKLUluZGV4OiBn ZGItNy40LjUwLjIwMTIwNzE0L2dkYi9zeW10YWIuaAorSW5kZXg6IGdkYi03LjQuOTEuMjAxMjA4 MDEvZ2RiL3N5bXRhYi5oCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNC41MC4yMDEyMDcxNC5vcmln L2dkYi9zeW10YWIuaAkyMDEyLTA2LTMwIDAwOjQ2OjQ2LjAwMDAwMDAwMCArMDIwMAotKysrIGdk Yi03LjQuNTAuMjAxMjA3MTQvZ2RiL3N5bXRhYi5oCTIwMTItMDctMTQgMjM6MzY6MTEuMDM4MTMw MTQ5ICswMjAwCistLS0gZ2RiLTcuNC45MS4yMDEyMDgwMS5vcmlnL2dkYi9zeW10YWIuaAkyMDEy LTA2LTMwIDAwOjQ2OjQ2LjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03LjQuOTEuMjAxMjA4MDEv Z2RiL3N5bXRhYi5oCTIwMTItMDgtMDEgMTg6Mzg6NTQuMjA2NTQwNDcxICswMjAwCiBAQCAtMzk0 LDcgKzM5NCwxMCBAQCB0eXBlZGVmIGVudW0gZG9tYWluX2VudW1fdGFnCiAgCiAgICAvKiBMQUJF TF9ET01BSU4gbWF5IGJlIHVzZWQgZm9yIG5hbWVzIG9mIGxhYmVscyAoZm9yIGdvdG9zKS4gICov CkBAIC00MDUsMTAgKzQxOCwxMCBAQCBJbmRleDogZ2RiLTcuNC41MC4yMDEyMDcxNC9nZGIvc3lt dGFiLmgKICB9IGRvbWFpbl9lbnVtOwogIAogIC8qIFNlYXJjaGluZyBkb21haW5zLCB1c2VkIGZv ciBgc2VhcmNoX3N5bWJvbHMnLiAgRWxlbWVudCBudW1iZXJzIGFyZQotSW5kZXg6IGdkYi03LjQu NTAuMjAxMjA3MTQvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9jb21tb24tYmxvY2suZXhwCitJ bmRleDogZ2RiLTcuNC45MS4yMDEyMDgwMS9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2NvbW1v bi1ibG9jay5leHAKID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJMTk3MC0wMS0wMSAwMDowMDow MC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy40LjUwLjIwMTIwNzE0L2dkYi90ZXN0c3VpdGUv Z2RiLmZvcnRyYW4vY29tbW9uLWJsb2NrLmV4cAkyMDEyLTA3LTE0IDIzOjM2OjExLjAzODEzMDE0 OSArMDIwMAorKysrIGdkYi03LjQuOTEuMjAxMjA4MDEvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJh bi9jb21tb24tYmxvY2suZXhwCTIwMTItMDgtMDEgMTg6Mzg6NTQuMjA3NTQwNDY1ICswMjAwCiBA QCAtMCwwICsxLDEwMSBAQAogKyMgQ29weXJpZ2h0IDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuCiArCkBAIC01MTEsMTAgKzUyNCwxMCBAQCBJbmRleDogZ2RiLTcuNC41MC4yMDEy MDcxNC9nZGIvdGVzdHN1aXRlL2dkYi5mb3J0cmFuL2NvbW1vbi1ibG9jay5leHAKICtnZGJfdGVz dCAicCBpeF94IiAiID0gMSAqIiAicCBpeF94IGluIgogK2dkYl90ZXN0ICJwIGl5X3kiICIgPSAy ICoiICJwIGl5X3kgaW4iCiArZ2RiX3Rlc3QgInAgaXpfejIiICIgPSAzICoiICJwIGl6X3oyIGlu IgotSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3MTQvZ2RiL3Rlc3RzdWl0ZS9nZGIuZm9ydHJhbi9j b21tb24tYmxvY2suZjkwCitJbmRleDogZ2RiLTcuNC45MS4yMDEyMDgwMS9nZGIvdGVzdHN1aXRl L2dkYi5mb3J0cmFuL2NvbW1vbi1ibG9jay5mOTAKID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tLSAvZGV2L251bGwJ MTk3MC0wMS0wMSAwMDowMDowMC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnZGItNy40LjUwLjIwMTIw NzE0L2dkYi90ZXN0c3VpdGUvZ2RiLmZvcnRyYW4vY29tbW9uLWJsb2NrLmY5MAkyMDEyLTA3LTE0 IDIzOjM2OjExLjAzODEzMDE0OSArMDIwMAorKysrIGdkYi03LjQuOTEuMjAxMjA4MDEvZ2RiL3Rl c3RzdWl0ZS9nZGIuZm9ydHJhbi9jb21tb24tYmxvY2suZjkwCTIwMTItMDgtMDEgMTg6Mzg6NTQu MjA3NTQwNDY1ICswMjAwCiBAQCAtMCwwICsxLDY3IEBACiArISBDb3B5cmlnaHQgMjAwOCBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICshCgpkaWZmIC0tZ2l0IGEvZ2RiLW1pbmlkZWJ1 Z2luZm8ucGF0Y2ggYi9nZGItbWluaWRlYnVnaW5mby5wYXRjaAppbmRleCA5YTg0MWEwLi5kNmU2 ZjdlIDEwMDY0NAotLS0gYS9nZGItbWluaWRlYnVnaW5mby5wYXRjaAorKysgYi9nZGItbWluaWRl YnVnaW5mby5wYXRjaApAQCAtNCwxMCArNCwxMCBAQCBodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5j b20vc2hvd19idWcuY2dpP2lkPTgzNDA2OAogUGF0Y2ggYnkgQWxleGFuZGVyIExhcnNzb24uCiBS ZXZpZXcvbW9kaWZpY2F0aW9ucyBhbmQgdGVzdGZpbGUgYnkgSmFuIEtyYXRvY2h2aWwuCiAKLUlu ZGV4OiBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi9NYWtlZmlsZS5pbgorSW5kZXg6IGdkYi03LjQu OTEuMjAxMjA4MDEvZ2RiL01ha2VmaWxlLmluCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNC41MC4y MDEyMDcwMy5vcmlnL2dkYi9NYWtlZmlsZS5pbgkyMDEyLTA3LTA2IDIxOjQ0OjU3LjI0MzQ0NDIx NyArMDIwMAotKysrIGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL01ha2VmaWxlLmluCTIwMTItMDct MDYgMjE6NDQ6NTcuNzY4NDQ0OTM3ICswMjAwCistLS0gZ2RiLTcuNC45MS4yMDEyMDgwMS5vcmln L2dkYi9NYWtlZmlsZS5pbgkyMDEyLTA4LTAxIDE4OjQ0OjUxLjAwMDAwMDAwMCArMDIwMAorKysr IGdkYi03LjQuOTEuMjAxMjA4MDEvZ2RiL01ha2VmaWxlLmluCTIwMTItMDgtMDEgMTg6NDc6MDUu NzAxODIwNTk0ICswMjAwCiBAQCAtMTUxLDYgKzE1MSw5IEBAIFJFQURMSU5FX0NGTEFHUyA9IEBS RUFETElORV9DRkxBR1NACiAgIyBXaGVyZSBpcyBleHBhdD8gIFRoaXMgd2lsbCBiZSBlbXB0eSBp ZiBleHBhdCB3YXMgbm90IGF2YWlsYWJsZS4KICBMSUJFWFBBVCA9IEBMSUJFWFBBVEAKQEAgLTI3 LDEwICsyNywxMCBAQCBJbmRleDogZ2RiLTcuNC41MC4yMDEyMDcwMy9nZGIvTWFrZWZpbGUuaW4K ICAJJChMSUJJQkVSVFkpICQoV0lOMzJMSUJTKSAkKExJQkdOVSkKICBDREVQUyA9ICQoWE1fQ0RF UFMpICQoTkFUX0NERVBTKSAkKFNJTSkgJChCRkQpICQoUkVBRExJTkVfREVQUykgXAogIAkkKE9Q Q09ERVMpICQoSU5UTF9ERVBTKSAkKExJQklCRVJUWSkgJChDT05GSUdfREVQUykgJChMSUJHTlUp Ci1JbmRleDogZ2RiLTcuNC41MC4yMDEyMDcwMy9nZGIvY29uZmlnLmluCitJbmRleDogZ2RiLTcu NC45MS4yMDEyMDgwMS9nZGIvY29uZmlnLmluCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLS0gZ2RiLTcuNC41MC4y MDEyMDcwMy5vcmlnL2dkYi9jb25maWcuaW4JMjAxMi0wNy0wNiAyMTo0NDo1Ny41OTk0NDQ3MDUg KzAyMDAKLSsrKyBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi9jb25maWcuaW4JMjAxMi0wNy0wNiAy MTo0NDo1Ny43Njk0NDQ5MzggKzAyMDAKKy0tLSBnZGItNy40LjkxLjIwMTIwODAxLm9yaWcvZ2Ri L2NvbmZpZy5pbgkyMDEyLTA4LTAxIDE4OjQ1OjIxLjAwMDAwMDAwMCArMDIwMAorKysrIGdkYi03 LjQuOTEuMjAxMjA4MDEvZ2RiL2NvbmZpZy5pbgkyMDEyLTA4LTAxIDE4OjQ3OjA1LjcwMTgyMDU5 NCArMDIwMAogQEAgLTE5OCw2ICsxOTgsOSBAQAogIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZl IHRoZSBgbGliaWNvbnZsaXN0JyBmdW5jdGlvbi4gKi8KICAjdW5kZWYgSEFWRV9MSUJJQ09OVkxJ U1QKQEAgLTQxLDEwICs0MSwxMCBAQCBJbmRleDogZ2RiLTcuNC41MC4yMDEyMDcwMy9nZGIvY29u ZmlnLmluCiAgLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBtJyBsaWJyYXJ5ICgtbG0p LiAqLwogICN1bmRlZiBIQVZFX0xJQk0KICAKLUluZGV4OiBnZGItNy40LjUwLjIwMTIwNzAzL2dk Yi9jb25maWd1cmUKK0luZGV4OiBnZGItNy40LjkxLjIwMTIwODAxL2dkYi9jb25maWd1cmUKID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tLSBnZGItNy40LjUwLjIwMTIwNzAzLm9yaWcvZ2RiL2NvbmZpZ3VyZQkyMDEy LTA3LTA2IDIxOjQ0OjU3LjY5NjQ0NDgzOCArMDIwMAotKysrIGdkYi03LjQuNTAuMjAxMjA3MDMv Z2RiL2NvbmZpZ3VyZQkyMDEyLTA3LTA2IDIxOjUzOjQ3LjY2NzE3MDM1MiArMDIwMAorLS0tIGdk Yi03LjQuOTEuMjAxMjA4MDEub3JpZy9nZGIvY29uZmlndXJlCTIwMTItMDgtMDEgMTg6NDU6MjEu MDAwMDAwMDAwICswMjAwCisrKysgZ2RiLTcuNC45MS4yMDEyMDgwMS9nZGIvY29uZmlndXJlCTIw MTItMDgtMDEgMTg6NDc6MDUuNzAzODIwNTgzICswMjAwCiBAQCAtNjQxLDYgKzY0MSw5IEBAIFRD TF9WRVJTSU9OCiAgV0lOMzJMREFQUAogIEdVSV9DRkxBR1NfWApAQCAtNTY5LDEwICs1NjksMTAg QEAgSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL2NvbmZpZ3VyZQogIExJQkdVST0iLi4v bGliZ3VpL3NyYy9saWJndWkuYSIKICBHVUlfQ0ZMQUdTX1g9Ii1JJHtzcmNkaXJ9Ly4uL2xpYmd1 aS9zcmMiCiAgCi1JbmRleDogZ2RiLTcuNC41MC4yMDEyMDcwMy9nZGIvY29uZmlndXJlLmFjCitJ bmRleDogZ2RiLTcuNC45MS4yMDEyMDgwMS9nZGIvY29uZmlndXJlLmFjCiA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LS0gZ2RiLTcuNC41MC4yMDEyMDcwMy5vcmlnL2dkYi9jb25maWd1cmUuYWMJMjAxMi0wNy0wNiAy MTo0NDo1Ny42OTk0NDQ4NDEgKzAyMDAKLSsrKyBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi9jb25m aWd1cmUuYWMJMjAxMi0wNy0wNiAyMTo1MzoyOS44NzUxNDYyMjUgKzAyMDAKKy0tLSBnZGItNy40 LjkxLjIwMTIwODAxLm9yaWcvZ2RiL2NvbmZpZ3VyZS5hYwkyMDEyLTA4LTAxIDE4OjQ1OjIxLjAw MDAwMDAwMCArMDIwMAorKysrIGdkYi03LjQuOTEuMjAxMjA4MDEvZ2RiL2NvbmZpZ3VyZS5hYwky MDEyLTA4LTAxIDE4OjQ3OjA1LjcwNDgyMDU3NyArMDIwMAogQEAgLTIxOTYsNiArMjE5NiwyNyBA QCBMSUJTPSRPTERfTElCUwogICMgQWRkIGFueSBob3N0LXNwZWNpZmljIG9iamVjdHMgdG8gR0RC LgogIENPTkZJR19PQlM9IiR7Q09ORklHX09CU30gJHtnZGJfaG9zdF9vYnN9IgpAQCAtNjAxLDEw ICs2MDEsMTAgQEAgSW5kZXg6IGdkYi03LjQuNTAuMjAxMjA3MDMvZ2RiL2NvbmZpZ3VyZS5hYwog IExJQkdVST0iLi4vbGliZ3VpL3NyYy9saWJndWkuYSIKICBHVUlfQ0ZMQUdTX1g9Ii1JJHtzcmNk aXJ9Ly4uL2xpYmd1aS9zcmMiCiAgQUNfU1VCU1QoTElCR1VJKQotSW5kZXg6IGdkYi03LjQuNTAu MjAxMjA3MDMvZ2RiL2VsZnJlYWQuYworSW5kZXg6IGdkYi03LjQuOTEuMjAxMjA4MDEvZ2RiL2Vs ZnJlYWQuYwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0tIGdkYi03LjQuNTAuMjAxMjA3MDMub3JpZy9nZGIvZWxm cmVhZC5jCTIwMTItMDctMDYgMjE6NDQ6NTcuMjExNDQ0MTc0ICswMjAwCi0rKysgZ2RiLTcuNC41 MC4yMDEyMDcwMy9nZGIvZWxmcmVhZC5jCTIwMTItMDctMDYgMjE6NDQ6NTcuODAwNDQ0OTc5ICsw MjAwCistLS0gZ2RiLTcuNC45MS4yMDEyMDgwMS5vcmlnL2dkYi9lbGZyZWFkLmMJMjAxMi0wOC0w MSAxODo0NDo1MS4wMDAwMDAwMDAgKzAyMDAKKysrKyBnZGItNy40LjkxLjIwMTIwODAxL2dkYi9l bGZyZWFkLmMJMjAxMi0wOC0wMSAxODo1Nzo1OS41MjgyMDIzOTggKzAyMDAKIEBAIC01MSw2ICs1 MSwxMCBAQAogICNpbmNsdWRlICJvYnNlcnZlci5oIgogICNpbmNsdWRlICJlbGYvZXh0ZXJuYWwu aCIKQEAgLTg1MiwxNCArODUyLDE0IEBAIEluZGV4OiBnZGItNy40LjUwLjIwMTIwNzAzL2dkYi9l bGZyZWFkLmMKICsgICAgcmV0dXJuIE5VTEw7CiArCiArICAvKiBvYmpmaWxlLT5OQU1FIGxpZmV0 aW1lIGlzIGxvbmdlciB0aGFuIHRoZSBBQkZEJ3MgbGlmZXRpbWUuICAqLwotKyAgYWJmZCA9IGJm ZF9vcGVucl9pb3ZlYyAob2JqZmlsZS0+bmFtZSwgZ251dGFyZ2V0LCBsem1hX29wZW4sIHNlY3Rp b24sCi0rCQkJICBsem1hX3ByZWFkLCBsem1hX2Nsb3NlLCBsem1hX3N0YXQpOworKyAgYWJmZCA9 IGdkYl9iZmRfb3BlbnJfaW92ZWMgKG9iamZpbGUtPm5hbWUsIGdudXRhcmdldCwgbHptYV9vcGVu LCBzZWN0aW9uLAorKwkJCSAgICAgIGx6bWFfcHJlYWQsIGx6bWFfY2xvc2UsIGx6bWFfc3RhdCk7 CiArICBpZiAoYWJmZCA9PSBOVUxMKQogKyAgICByZXR1cm4gTlVMTDsKICsKICsgIGlmICghYmZk X2NoZWNrX2Zvcm1hdCAoYWJmZCwgYmZkX29iamVjdCkpCiArICAgIHsKLSsgICAgICBiZmRfY2xv c2UgKGFiZmQpOworKyAgICAgIGdkYl9iZmRfdW5yZWYgKGFiZmQpOwogKyAgICAgIHJldHVybiBO VUxMOwogKyAgICB9CiArCkBAIC04NzksNDIgKzg3OSw1NCBAQCBJbmRleDogZ2RiLTcuNC41MC4y MDEyMDcwMy9nZGIvZWxmcmVhZC5jCiAgLyogU2NhbiBhbmQgYnVpbGQgcGFydGlhbCBzeW1ib2xz IGZvciBhIHN5bWJvbCBmaWxlLgogICAgIFdlIGhhdmUgYmVlbiBpbml0aWFsaXplZCBieSBhIGNh bGwgdG8gZWxmX3N5bWZpbGVfaW5pdCwgd2hpY2gKICAgICBjdXJyZW50bHkgZG9lcyBub3RoaW5n LgotQEAgLTI0MzMsNiArMjY5Myw3IEBAIGVsZl9zeW1maWxlX3JlYWQgKHN0cnVjdCBvYmpmaWxl ICpvYmpmaWwKK0BAIC0yNDMzLDYgKzI2OTMsOCBAQCBlbGZfc3ltZmlsZV9yZWFkIChzdHJ1Y3Qg b2JqZmlsZSAqb2JqZmlsCiAgICBlbHNlIGlmICghb2JqZmlsZV9oYXNfcGFydGlhbF9zeW1ib2xz IChvYmpmaWxlKSkKICAgICAgewogICAgICAgIGNoYXIgKmRlYnVnZmlsZSwgKmJ1aWxkX2lkX2Zp bGVuYW1lOwogKyAgICAgIGJmZCAqYWJmZCA9IE5VTEw7CisrICAgICAgc3RydWN0IGNsZWFudXAg KmNsZWFudXA7CiAgCiAgICAgICAgZGVidWdmaWxlID0gZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxl X2J5X2J1aWxkaWQgKG9iamZpbGUsCiAgCQkJCQkJICAgICAgICZidWlsZF9pZF9maWxlbmFtZSk7 Ci1AQCAtMjQ0Miw5ICsyNzAzLDcgQEAgZWxmX3N5bWZpbGVfcmVhZCAoc3RydWN0IG9iamZpbGUg Km9iamZpbAorQEAgLTI0NDAsMTQgKzI3MDIsMTEgQEAgZWxmX3N5bWZpbGVfcmVhZCAoc3RydWN0 IG9iamZpbGUgKm9iamZpbAorICAgICAgIGlmIChkZWJ1Z2ZpbGUgPT0gTlVMTCkKKyAJZGVidWdm aWxlID0gZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlX2J5X2RlYnVnbGluayAob2JqZmlsZSk7CiAg CisrICAgICAgY2xlYW51cCA9IG1ha2VfY2xlYW51cCAoeGZyZWUsIGRlYnVnZmlsZSk7CiAgICAg ICAgaWYgKGRlYnVnZmlsZSkKICAJeworLQkgIHN0cnVjdCBjbGVhbnVwICpjbGVhbnVwID0gbWFr ZV9jbGVhbnVwICh4ZnJlZSwgZGVidWdmaWxlKTsKIC0JICBiZmQgKmFiZmQgPSBzeW1maWxlX2Jm ZF9vcGVuIChkZWJ1Z2ZpbGUpOwogLQotLQkgIHN5bWJvbF9maWxlX2FkZF9zZXBhcmF0ZSAoYWJm ZCwgc3ltZmlsZV9mbGFncywgb2JqZmlsZSk7CiArCSAgYWJmZCA9IHN5bWZpbGVfYmZkX29wZW4g KGRlYnVnZmlsZSk7Ci0gCSAgeGZyZWUgKGRlYnVnZmlsZSk7CisgCSAgbWFrZV9jbGVhbnVwX2Jm ZF91bnJlZiAoYWJmZCk7CistCSAgc3ltYm9sX2ZpbGVfYWRkX3NlcGFyYXRlIChhYmZkLCBzeW1m aWxlX2ZsYWdzLCBvYmpmaWxlKTsKKy0JICBkb19jbGVhbnVwcyAoY2xlYW51cCk7CiAgCX0KICAg ICAgICAvKiBDaGVjayBpZiBhbnkgc2VwYXJhdGUgZGVidWcgaW5mbyBoYXMgYmVlbiBleHRyYWN0 ZWQgb3V0LiAgKi8KLUBAIC0yNDUzLDYgKzI3MTIsMTIgQEAgZWxmX3N5bWZpbGVfcmVhZCAoc3Ry dWN0IG9iamZpbGUgKm9iamZpbAorICAgICAgIGVsc2UgaWYgKGJmZF9nZXRfc2VjdGlvbl9ieV9u YW1lIChvYmpmaWxlLT5vYmZkLCAiLmdudV9kZWJ1Z2xpbmsiKQorQEAgLTI0NTUsNiArMjcxNCwx NyBAQCBlbGZfc3ltZmlsZV9yZWFkIChzdHJ1Y3Qgb2JqZmlsZSAqb2JqZmlsCiAgCWRlYnVnX3By aW50X21pc3NpbmcgKG9iamZpbGUtPm5hbWUsIGJ1aWxkX2lkX2ZpbGVuYW1lKTsKICAKICAgICAg ICB4ZnJlZSAoYnVpbGRfaWRfZmlsZW5hbWUpOwogKwogKyAgICAgIGlmIChhYmZkID09IE5VTEwp Ci0rCWFiZmQgPSBmaW5kX3NlcGFyYXRlX2RlYnVnX2ZpbGVfaW5fc2VjdGlvbiAob2JqZmlsZSk7 CisrCXsKKysJICBhYmZkID0gZmluZF9zZXBhcmF0ZV9kZWJ1Z19maWxlX2luX3NlY3Rpb24gKG9i amZpbGUpOworKwkgIG1ha2VfY2xlYW51cF9iZmRfdW5yZWYgKGFiZmQpOworKwl9CiArCiArICAg ICAgaWYgKGFiZmQgIT0gTlVMTCkKICsJc3ltYm9sX2ZpbGVfYWRkX3NlcGFyYXRlIChhYmZkLCBz eW1maWxlX2ZsYWdzLCBvYmpmaWxlKTsKKysKKysgICAgICBkb19jbGVhbnVwcyAoY2xlYW51cCk7 CiAgICAgIH0KICAKICAgIGlmIChzeW10YWJfY3JlYXRlX2RlYnVnKQotSW5kZXg6IGdkYi03LjQu NTAuMjAxMjA3MDMvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1nbnUtZGVidWdkYXRhLmMK K0luZGV4OiBnZGItNy40LjkxLjIwMTIwODAxL2dkYi90ZXN0c3VpdGUvZ2RiLmR3YXJmMi9kdzIt Z251LWRlYnVnZGF0YS5jCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5NzAtMDEtMDEgMDA6 MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuNC41MC4yMDEyMDcwMy9nZGIvdGVzdHN1 aXRlL2dkYi5kd2FyZjIvZHcyLWdudS1kZWJ1Z2RhdGEuYwkyMDEyLTA3LTA2IDIxOjQ0OjU3Ljgw MjQ0NDk4MyArMDIwMAorKysrIGdkYi03LjQuOTEuMjAxMjA4MDEvZ2RiL3Rlc3RzdWl0ZS9nZGIu ZHdhcmYyL2R3Mi1nbnUtZGVidWdkYXRhLmMJMjAxMi0wOC0wMSAxODo0NzowNS43MDU4MjA1NzIg KzAyMDAKIEBAIC0wLDAgKzEsMzAgQEAKICsvKiBUaGlzIHRlc3RjYXNlIGlzIHBhcnQgb2YgR0RC LCB0aGUgR05VIGRlYnVnZ2VyLgogKwpAQCAtOTQ2LDEwICs5NTgsMTAgQEAgSW5kZXg6IGdkYi03 LjQuNTAuMjAxMjA3MDMvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2R3Mi1nbnUtZGVidWdkYXRh LmMKICt7CiArICByZXR1cm4gZGVidWdkYXRhX2Z1bmN0aW9uICgpICsgMTsKICt9Ci1JbmRleDog Z2RiLTcuNC41MC4yMDEyMDcwMy9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWdudS1kZWJ1 Z2RhdGEuZXhwCitJbmRleDogZ2RiLTcuNC45MS4yMDEyMDgwMS9nZGIvdGVzdHN1aXRlL2dkYi5k d2FyZjIvZHcyLWdudS1kZWJ1Z2RhdGEuZXhwCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLS0gL2Rldi9udWxsCTE5 NzAtMDEtMDEgMDA6MDA6MDAuMDAwMDAwMDAwICswMDAwCi0rKysgZ2RiLTcuNC41MC4yMDEyMDcw My9nZGIvdGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWdudS1kZWJ1Z2RhdGEuZXhwCTIwMTItMDct MDYgMjE6NDQ6NTcuODA5NDQ0OTkxICswMjAwCisrKysgZ2RiLTcuNC45MS4yMDEyMDgwMS9nZGIv dGVzdHN1aXRlL2dkYi5kd2FyZjIvZHcyLWdudS1kZWJ1Z2RhdGEuZXhwCTIwMTItMDgtMDEgMTg6 NDc6MDUuNzA1ODIwNTcyICswMjAwCiBAQCAtMCwwICsxLDkxIEBACiArIyBDb3B5cmlnaHQgMjAx MiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICsjCgpkaWZmIC0tZ2l0IGEvZ2RiLXN0 YWxlLWZyYW1lX2luZm8tcHl0aG9uLnBhdGNoIGIvZ2RiLXN0YWxlLWZyYW1lX2luZm8tcHl0aG9u LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYzQyZGZhLi4wMDAwMDAwCi0t LSBhL2dkYi1zdGFsZS1mcmFtZV9pbmZvLXB5dGhvbi5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDI5NSArMCwwIEBACi1odHRwOi8vc291cmNld2FyZS5vcmcvbWwvZ2RiLXBhdGNoZXMvMjAxMi0w Ny9tc2cwMDE5Ny5odG1sCi1TdWJqZWN0OiBbcGF0Y2hdIEZpeCBhbm90aGVyIHN0YWxlIGZyYW1l X2luZm8gKiAoUFIgMTE5MTQsIGxpa2UgUFIgMTM4NjYpCi0KLUhpLAotCi1odHRwOi8vc291cmNl d2FyZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTExOTE0Ci0KLWhhcyBhbm90aGVyIGNh c2Ugb2Ygc3RhbGUgZnJhbWVfaW5mbyAqLiAgT3JpZ2luYWxseSBJIGZvdW5kIGl0IHVuZml4YWJs ZSB3aXRoCi10aGUgY3VycmVudCBzdHJ1Y3QgZnJhbWVfaW5mbyAqIHVzYWdlIGJ1dCBQZWRybyBo YXMgc2hvd24gaW4gUFIgMTM4NjYgaXQgaXMKLXBvc3NpYmxlIHRvIGZpeCB0aGUgY2FzZXMgb25l IGJ5IG9uZSBzbyBJIGhhdmUgZml4ZWQgYWxzbyB0aGlzIG9uZS4KLQotSXQgZm9sbG93cyB0aGUg cGF0aCBvZiB2YWxncmluZCBiYWNrdHJhY2Ugc2hvd2luZyB3aGVyZSB0aGUgbWVtb3J5IGlzIGJl aW5nCi1mcmVlZDoKLQlodHRwOi8vc291cmNld2FyZS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dp P2lkPTExOTE0I2M1Ci0KLVRoaXMgbWVzc2FnZSBoYXMgYmVlbiBhbHJlYWR5IHByZXNlbnQgaW4g R0RCIHNvIEkgdXNlZCBpdCBpbiBtb3JlIGNhc2VzOgotKwkgICAgICB3YXJuaW5nIChfKCJVbmFi bGUgdG8gcmVzdG9yZSBwcmV2aW91c2x5IHNlbGVjdGVkIGZyYW1lLiIpKTsKLQotTm8gcmVncmVz c2lvbnMgb24ge3g4Nl82NCx4ODZfNjQtbTMyLGk2ODZ9LWZlZG9yYXJhd2hpZGUtbGludXgtZ251 LgotCi1JIHdpbGwgY2hlY2sgaXQgaW4gc29vbiBmb3IgNy41LgotCi1JIGZpbmQgaXQgYSBiaXQg ZGlmZmljdWx0IHRvIHJlbGlhYmx5IHJlcHJvZHVjZSwgdGhpcyB0ZXN0Y2FzZXMgbW9zdGx5IGFs d2F5cwotY3Jhc2hlcyBmb3IgbWUgKGF0IGxlYXN0IHdpdGggLWxtY2hlY2spLgotCi0KLVRoYW5r cywKLUphbgotCi0KLWdkYi8KLTIwMTItMDctMTQgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRv Y2h2aWxAcmVkaGF0LmNvbT4KLQotCVBSIDExOTE0Ci0JKiBmLXZhbHByaW50LmMgKGluZm9fY29t bW9uX2NvbW1hbmQpOiBOZXcgdmFyaWFibGUgZnJhbWVfaWQuCi0JUmVpbml0aWFsaXplIEZJIGZv cm0gRlJBTUVfSUQgYWZ0ZXIgZWFjaCBwcmludF92YXJpYWJsZV9hbmRfdmFsdWUuCi0JKiBwcmlu dGNtZC5jIChwcmludF92YXJpYWJsZV9hbmRfdmFsdWUpOiBFeHRlbmQgZnVuY3Rpb24gY29tbWVu dC4KLQlBZGQgY29tbWVudCBmb3IgaW52YWxpZGF0ZWQgRlJBTUUuCi0JKiBzdGFjay5jIChiYWNr dHJhY2VfY29tbWFuZF8xKTogTmV3IHZhcmlhYmxlIGZyYW1lX2lkLiAgUmVpbml0aWFsaXplCi0J RkkgZm9ybSBGUkFNRV9JRCBhZnRlciBlYWNoIHByaW50X2ZyYW1lX2xvY2FsX3ZhcnMuCi0JKHN0 cnVjdCBwcmludF92YXJpYWJsZV9hbmRfdmFsdWVfZGF0YSk6IENoYW5nZSBmcmFtZSB0byBmcmFt ZV9pZC4KLQkoZG9fcHJpbnRfdmFyaWFibGVfYW5kX3ZhbHVlKTogTmV3IHZhcmlhYmxlIGZyYW1l LCBpbml0aWFsaXplIGl0IGZyb20KLQlwLT5mcmFtZV9pZC4gIEFkZCBjb21tZW50IGZvciBpbnZh bGlkYXRlZCBGUkFNRS4KLQkocHJpbnRfZnJhbWVfbG9jYWxfdmFycywgcHJpbnRfZnJhbWVfYXJn X3ZhcnMpOiBOZXcgZnVuY3Rpb24gY29tbWVudC4KLQlVcGRhdGUgQ0JfREFUQS5GUkFNRSB0byBD Ql9EQVRBLkZSQU1FX0lEIGluaXRpYWxpemF0aW9uLiAgQWRkIGNvbW1lbnQKLQlmb3IgaW52YWxp ZGF0ZWQgRlJBTUUuCi0KLWdkYi90ZXN0c3VpdGUvCi0yMDEyLTA3LTE0ICBKYW4gS3JhdG9jaHZp bCAgPGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+Ci0KLQlQUiAxMTkxNAotCSogZ2RiLnB5dGhv bi9weS1wcmV0dHlwcmludC5jIChldmFsX2Z1bmMsIGV2YWxfc3ViKTogTmV3LgotCShtYWluKTog Q2FsbCBldmFsX3N1Yi4KLQkqIGdkYi5weXRob24vcHktcHJldHR5cHJpbnQuZXhwOgotCShweXRo b24gZXhlY2ZpbGUgKCdweS1wcmV0dHlwcmludC5weScpKTogTW92ZSBpdCBlYXJsaWVyLgotCU5l dyBicmVha3BvaW50IGZvciBldmFsLWJyZWFrLgotCShjb250aW51ZSB0byBicmVha3BvaW50OiBl dmFsLWJyZWFrLCBpbmZvIGxvY2Fscyk6IE5ldyB0ZXN0LgotCShweXRob24gZXhlY2ZpbGUgKCdw eS1wcmV0dHlwcmludC5weScpKTogTW92ZSBpdCBmcm9tIGhlcmUuCi0JKiBnZGIucHl0aG9uL3B5 LXByZXR0eXByaW50LnB5IChjbGFzcyBwcF9ldmFsX3R5cGUpOiBOZXcuCi0JKHJlZ2lzdGVyX3By ZXR0eV9wcmludGVycyk6IFJlZ2lzdGVyIHBwX2V2YWxfdHlwZS4KLQotZGlmZiAtLWdpdCBhL2dk Yi9wcmludGNtZC5jIGIvZ2RiL3ByaW50Y21kLmMKLWluZGV4IDJhMGE4ODYuLmQ1YjViNjMgMTAw NjQ0Ci0tLS0gYS9nZGIvcHJpbnRjbWQuYwotKysrIGIvZ2RiL3ByaW50Y21kLmMKLUBAIC0xOTYx LDcgKzE5NjEsOSBAQCBjbGVhcl9kYW5nbGluZ19kaXNwbGF5X2V4cHJlc3Npb25zIChzdHJ1Y3Qg c29fbGlzdCAqc29saWIpCi0gICAgc3RydWN0IHN5bWJvbC4gIE5BTUUgaXMgdGhlIG5hbWUgdG8g cHJpbnQ7IGlmIE5VTEwgdGhlbiBWQVIncyBwcmludAotICAgIG5hbWUgd2lsbCBiZSB1c2VkLiAg U1RSRUFNIGlzIHRoZSB1aV9maWxlIG9uIHdoaWNoIHRvIHByaW50IHRoZQotICAgIHZhbHVlLiAg SU5ERU5UIHNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIGluZGVudCBsZXZlbHMgdG8gcHJpbnQKLS0g ICBiZWZvcmUgcHJpbnRpbmcgdGhlIHZhcmlhYmxlIG5hbWUuICAqLwotKyAgIGJlZm9yZSBwcmlu dGluZyB0aGUgdmFyaWFibGUgbmFtZS4KLSsKLSsgICBUaGlzIGZ1bmN0aW9uIGludmFsaWRhdGVz IEZSQU1FLiAgKi8KLSAKLSB2b2lkCi0gcHJpbnRfdmFyaWFibGVfYW5kX3ZhbHVlIChjb25zdCBj aGFyICpuYW1lLCBzdHJ1Y3Qgc3ltYm9sICp2YXIsCi1AQCAtMTk4Myw2ICsxOTg1LDEwIEBAIHBy aW50X3ZhcmlhYmxlX2FuZF92YWx1ZSAoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IHN5bWJvbCAq dmFyLAotICAgICAgIGdldF91c2VyX3ByaW50X29wdGlvbnMgKCZvcHRzKTsKLSAgICAgICBvcHRz LmRlcmVmX3JlZiA9IDE7Ci0gICAgICAgY29tbW9uX3ZhbF9wcmludCAodmFsLCBzdHJlYW0sIGlu ZGVudCwgJm9wdHMsIGN1cnJlbnRfbGFuZ3VhZ2UpOwotKwotKyAgICAgIC8qIGNvbW1vbl92YWxf cHJpbnQgaW52YWxpZGF0ZXMgRlJBTUUgd2hlbiBhIHByZXR0eSBwcmludGVyIGNhbGxzIGluZmVy aW9yCi0rCSBmdW5jdGlvbi4gICovCi0rICAgICAgZnJhbWUgPSBOVUxMOwotICAgICB9Ci0gICBp ZiAoZXhjZXB0LnJlYXNvbiA8IDApCi0gICAgIGZwcmludGZfZmlsdGVyZWQoc3RyZWFtLCAiPGVy cm9yIHJlYWRpbmcgdmFyaWFibGUgJXMgKCVzKT4iLCBuYW1lLAotZGlmZiAtLWdpdCBhL2dkYi9z dGFjay5jIGIvZ2RiL3N0YWNrLmMKLWluZGV4IDI1MjBlMmMuLjM1ZDM3OWQgMTAwNjQ0Ci0tLS0g YS9nZGIvc3RhY2suYwotKysrIGIvZ2RiL3N0YWNrLmMKLUBAIC0xNzI3LDcgKzE3MjcsMjAgQEAg YmFja3RyYWNlX2NvbW1hbmRfMSAoY2hhciAqY291bnRfZXhwLCBpbnQgc2hvd19sb2NhbHMsIGlu dCBmcm9tX3R0eSkKLSAgICAgICAgICB0aGUgZnJhbWUtPnByZXYgZmllbGQgZ2V0cyBzZXQgdG8g TlVMTCBpbiB0aGF0IGNhc2UpLiAgKi8KLSAgICAgICBwcmludF9mcmFtZV9pbmZvIChmaSwgMSwg TE9DQVRJT04sIDEpOwotICAgICAgIGlmIChzaG93X2xvY2FscykKLS0JcHJpbnRfZnJhbWVfbG9j YWxfdmFycyAoZmksIDEsIGdkYl9zdGRvdXQpOwotKwl7Ci0rCSAgc3RydWN0IGZyYW1lX2lkIGZy YW1lX2lkID0gZ2V0X2ZyYW1lX2lkIChmaSk7Ci0rCi0rCSAgcHJpbnRfZnJhbWVfbG9jYWxfdmFy cyAoZmksIDEsIGdkYl9zdGRvdXQpOwotKwotKwkgIC8qIHByaW50X2ZyYW1lX2xvY2FsX3ZhcnMg aW52YWxpZGF0ZXMgRkkuICAqLwotKwkgIGZpID0gZnJhbWVfZmluZF9ieV9pZCAoZnJhbWVfaWQp OwotKwkgIGlmIChmaSA9PSBOVUxMKQotKwkgICAgewotKwkgICAgICB0cmFpbGluZyA9IE5VTEw7 Ci0rCSAgICAgIHdhcm5pbmcgKF8oIlVuYWJsZSB0byByZXN0b3JlIHByZXZpb3VzbHkgc2VsZWN0 ZWQgZnJhbWUuIikpOwotKwkgICAgICBicmVhazsKLSsJICAgIH0KLSsJfQotIAotICAgICAgIC8q IFNhdmUgdGhlIGxhc3QgZnJhbWUgdG8gY2hlY2sgZm9yIGVycm9yIGNvbmRpdGlvbnMuICAqLwot ICAgICAgIHRyYWlsaW5nID0gZmk7Ci1AQCAtMTkxOSw3ICsxOTMyLDcgQEAgaXRlcmF0ZV9vdmVy X2Jsb2NrX2xvY2FsX3ZhcnMgKHN0cnVjdCBibG9jayAqYmxvY2ssCi0gCi0gc3RydWN0IHByaW50 X3ZhcmlhYmxlX2FuZF92YWx1ZV9kYXRhCi0gewotLSAgc3RydWN0IGZyYW1lX2luZm8gKmZyYW1l OwotKyAgc3RydWN0IGZyYW1lX2lkIGZyYW1lX2lkOwotICAgaW50IG51bV90YWJzOwotICAgc3Ry dWN0IHVpX2ZpbGUgKnN0cmVhbTsKLSAgIGludCB2YWx1ZXNfcHJpbnRlZDsKLUBAIC0xOTMzLDEy ICsxOTQ2LDI4IEBAIGRvX3ByaW50X3ZhcmlhYmxlX2FuZF92YWx1ZSAoY29uc3QgY2hhciAqcHJp bnRfbmFtZSwKLSAJCQkgICAgIHZvaWQgKmNiX2RhdGEpCi0gewotICAgc3RydWN0IHByaW50X3Zh cmlhYmxlX2FuZF92YWx1ZV9kYXRhICpwID0gY2JfZGF0YTsKLSsgIHN0cnVjdCBmcmFtZV9pbmZv ICpmcmFtZTsKLSsKLSsgIGZyYW1lID0gZnJhbWVfZmluZF9ieV9pZCAocC0+ZnJhbWVfaWQpOwot KyAgaWYgKGZyYW1lID09IE5VTEwpCi0rICAgIHsKLSsgICAgICB3YXJuaW5nIChfKCJVbmFibGUg dG8gcmVzdG9yZSBwcmV2aW91c2x5IHNlbGVjdGVkIGZyYW1lLiIpKTsKLSsgICAgICByZXR1cm47 Ci0rICAgIH0KLSsKLSsgIHByaW50X3ZhcmlhYmxlX2FuZF92YWx1ZSAocHJpbnRfbmFtZSwgc3lt LCBmcmFtZSwgcC0+c3RyZWFtLCBwLT5udW1fdGFicyk7Ci0rCi0rICAvKiBwcmludF92YXJpYWJs ZV9hbmRfdmFsdWUgaW52YWxpZGF0ZXMgRlJBTUUuICAqLwotKyAgZnJhbWUgPSBOVUxMOwotIAot LSAgcHJpbnRfdmFyaWFibGVfYW5kX3ZhbHVlIChwcmludF9uYW1lLCBzeW0sCi0tCQkJICAgIHAt PmZyYW1lLCBwLT5zdHJlYW0sIHAtPm51bV90YWJzKTsKLSAgIHAtPnZhbHVlc19wcmludGVkID0g MTsKLSB9Ci0gCi0rLyogUHJpbnQgYWxsIHZhcmlhYmxlcyBmcm9tIHRoZSBpbm5lcm1vc3QgdXAg dG8gdGhlIGZ1bmN0aW9uIGJsb2NrIG9mIEZSQU1FLgotKyAgIFByaW50IHRoZW0gd2l0aCB2YWx1 ZXMgdG8gU1RSRUFNIGluZGVudGVkIGJ5IE5VTV9UQUJTLgotKwotKyAgIFRoaXMgZnVuY3Rpb24g d2lsbCBpbnZhbGlkYXRlIEZSQU1FLiAgKi8KLSsKLSBzdGF0aWMgdm9pZAotIHByaW50X2ZyYW1l X2xvY2FsX3ZhcnMgKHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwgaW50IG51bV90YWJzLAotIAkJ CXN0cnVjdCB1aV9maWxlICpzdHJlYW0pCi1AQCAtMTk2MSw3ICsxOTkwLDcgQEAgcHJpbnRfZnJh bWVfbG9jYWxfdmFycyAoc3RydWN0IGZyYW1lX2luZm8gKmZyYW1lLCBpbnQgbnVtX3RhYnMsCi0g ICAgICAgcmV0dXJuOwotICAgICB9Ci0gCi0tICBjYl9kYXRhLmZyYW1lID0gZnJhbWU7Ci0rICBj Yl9kYXRhLmZyYW1lX2lkID0gZ2V0X2ZyYW1lX2lkIChmcmFtZSk7Ci0gICBjYl9kYXRhLm51bV90 YWJzID0gNCAqIG51bV90YWJzOwotICAgY2JfZGF0YS5zdHJlYW0gPSBzdHJlYW07Ci0gICBjYl9k YXRhLnZhbHVlc19wcmludGVkID0gMDsKLUBAIC0xOTcwLDYgKzE5OTksOSBAQCBwcmludF9mcmFt ZV9sb2NhbF92YXJzIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhbWUsIGludCBudW1fdGFicywKLSAJ CQkJIGRvX3ByaW50X3ZhcmlhYmxlX2FuZF92YWx1ZSwKLSAJCQkJICZjYl9kYXRhKTsKLSAKLSsg IC8qIGRvX3ByaW50X3ZhcmlhYmxlX2FuZF92YWx1ZSBpbnZhbGlkYXRlcyBGUkFNRS4gICovCi0r ICBmcmFtZSA9IE5VTEw7Ci0rCi0gICBpZiAoIWNiX2RhdGEudmFsdWVzX3ByaW50ZWQpCi0gICAg IGZwcmludGZfZmlsdGVyZWQgKHN0cmVhbSwgXygiTm8gbG9jYWxzLlxuIikpOwotIH0KLUBAIC0y MDE2LDYgKzIwNDgsMTEgQEAgaXRlcmF0ZV9vdmVyX2Jsb2NrX2FyZ192YXJzIChzdHJ1Y3QgYmxv Y2sgKmIsCi0gICAgIH0KLSB9Ci0gCi0rLyogUHJpbnQgYWxsIGFyZ3VtZW50IHZhcmlhYmxlcyBv ZiB0aGUgZnVuY3Rpb24gb2YgRlJBTUUuCi0rICAgUHJpbnQgdGhlbSB3aXRoIHZhbHVlcyB0byBT VFJFQU0uCi0rCi0rICAgVGhpcyBmdW5jdGlvbiB3aWxsIGludmFsaWRhdGUgRlJBTUUuICAqLwot KwotIHN0YXRpYyB2b2lkCi0gcHJpbnRfZnJhbWVfYXJnX3ZhcnMgKHN0cnVjdCBmcmFtZV9pbmZv ICpmcmFtZSwgc3RydWN0IHVpX2ZpbGUgKnN0cmVhbSkKLSB7Ci1AQCAtMjAzNiw3ICsyMDczLDcg QEAgcHJpbnRfZnJhbWVfYXJnX3ZhcnMgKHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwgc3RydWN0 IHVpX2ZpbGUgKnN0cmVhbSkKLSAgICAgICByZXR1cm47Ci0gICAgIH0KLSAKLS0gIGNiX2RhdGEu ZnJhbWUgPSBmcmFtZTsKLSsgIGNiX2RhdGEuZnJhbWVfaWQgPSBnZXRfZnJhbWVfaWQgKGZyYW1l KTsKLSAgIGNiX2RhdGEubnVtX3RhYnMgPSAwOwotICAgY2JfZGF0YS5zdHJlYW0gPSBnZGJfc3Rk b3V0OwotICAgY2JfZGF0YS52YWx1ZXNfcHJpbnRlZCA9IDA7Ci1AQCAtMjA0NCw2ICsyMDgxLDkg QEAgcHJpbnRfZnJhbWVfYXJnX3ZhcnMgKHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwgc3RydWN0 IHVpX2ZpbGUgKnN0cmVhbSkKLSAgIGl0ZXJhdGVfb3Zlcl9ibG9ja19hcmdfdmFycyAoU1lNQk9M X0JMT0NLX1ZBTFVFIChmdW5jKSwKLSAJCQkgICAgICAgZG9fcHJpbnRfdmFyaWFibGVfYW5kX3Zh bHVlLCAmY2JfZGF0YSk7Ci0gCi0rICAvKiBkb19wcmludF92YXJpYWJsZV9hbmRfdmFsdWUgaW52 YWxpZGF0ZXMgRlJBTUUuICAqLwotKyAgZnJhbWUgPSBOVUxMOwotKwotICAgaWYgKCFjYl9kYXRh LnZhbHVlc19wcmludGVkKQotICAgICBmcHJpbnRmX2ZpbHRlcmVkIChzdHJlYW0sIF8oIk5vIGFy Z3VtZW50cy5cbiIpKTsKLSB9Ci1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9u L3B5LXByZXR0eXByaW50LmMgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHktcHJldHR5cHJp bnQuYwotaW5kZXggMGZmN2IzMy4uMWZmOWUwNSAxMDA2NDQKLS0tLSBhL2dkYi90ZXN0c3VpdGUv Z2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5jCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRo b24vcHktcHJldHR5cHJpbnQuYwotQEAgLTIxOSw2ICsyMTksMjIgQEAgc3RydWN0IG51bGxzdHIK LSBzdHJ1Y3Qgc3RyaW5nX3JlcHIgc3RyaW5nXzEgPSB7IHsgIm9uZSIgfSB9OwotIHN0cnVjdCBz dHJpbmdfcmVwciBzdHJpbmdfMiA9IHsgeyAidHdvIiB9IH07Ci0gCi0rc3RhdGljIGludAotK2V2 YWxfZnVuYyAoaW50IHAxLCBpbnQgcDIsIGludCBwMywgaW50IHA0LCBpbnQgcDUsIGludCBwNiwg aW50IHA3LCBpbnQgcDgpCi0rewotKyAgcmV0dXJuIHAxOwotK30KLSsKLStzdGF0aWMgdm9pZAot K2V2YWxfc3ViICh2b2lkKQotK3sKLSsgIHN0cnVjdCBldmFsX3R5cGVfcyB7IGludCB4OyB9IGV2 YWwxID0geyAxIH0sIGV2YWwyID0geyAyIH0sIGV2YWwzID0geyAzIH0sCi0rCQkJCWV2YWw0ID0g eyA0IH0sIGV2YWw1ID0geyA1IH0sIGV2YWw2ID0geyA2IH0sCi0rCQkJCWV2YWw3ID0geyA3IH0s IGV2YWw4ID0geyA4IH0sIGV2YWw5ID0geyA5IH07Ci0rCi0rICBldmFsMS54Kys7IC8qIGV2YWwt YnJlYWsgKi8KLSt9Ci0rCi0gaW50Ci0gbWFpbiAoKQotIHsKLUBAIC0zMDksNSArMzI1LDcgQEAg bWFpbiAoKQotICAgCi0gICBuc3R5cGUyID0gbnN0eXBlOwotIAotKyAgZXZhbF9zdWIgKCk7Ci0r Ci0gICByZXR1cm4gMDsgICAgICAvKiBicmVhayB0byBpbnNwZWN0IHN0cnVjdCBhbmQgdW5pb24g Ki8KLSB9Ci1kaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXByZXR0eXBy aW50LmV4cCBiL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5leHAKLWlu ZGV4IGE2YzI0MWEuLjIyYWY4M2MgMTAwNjQ0Ci0tLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5weXRo b24vcHktcHJldHR5cHJpbnQuZXhwCi0rKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5weXRob24vcHkt cHJldHR5cHJpbnQuZXhwCi1AQCAtMTIzLDE0ICsxMjMsMTkgQEAgaWYgIVtydW50b19tYWluIF0g dGhlbiB7Ci0gICAgIHJldHVybgotIH0KLSAKLS1nZGJfdGVzdCAiYiBbZ2RiX2dldF9saW5lX251 bWJlciB7YnJlYWsgdG8gaW5zcGVjdH0gJHt0ZXN0ZmlsZX0uYyBdIiBcCi0tICAgICIuKkJyZWFr cG9pbnQuKiIKLS1nZGJfdGVzdCAiY29udGludWUiICIuKkJyZWFrcG9pbnQuKiIKLS0KLSBzZXQg cmVtb3RlX3B5dGhvbl9maWxlIFtyZW1vdGVfZG93bmxvYWQgaG9zdCAke3NyY2Rpcn0vJHtzdWJk aXJ9LyR7dGVzdGZpbGV9LnB5XQotIAotIGdkYl90ZXN0X25vX291dHB1dCAicHl0aG9uIGV4ZWNm aWxlICgnJHtyZW1vdGVfcHl0aG9uX2ZpbGV9JykiCi0gCi0rZ2RiX2JyZWFrcG9pbnQgW2dkYl9n ZXRfbGluZV9udW1iZXIgImV2YWwtYnJlYWsiXQotK2dkYl9jb250aW51ZV90b19icmVha3BvaW50 ICJldmFsLWJyZWFrIiAiLiogZXZhbC1icmVhayAuKiIKLSsKLStnZGJfdGVzdCAiaW5mbyBsb2Nh bHMiICJldmFsOSA9IGV2YWw9PDEyMzQ1Njc4OT4iCi0rCi0rZ2RiX3Rlc3QgImIgW2dkYl9nZXRf bGluZV9udW1iZXIge2JyZWFrIHRvIGluc3BlY3R9ICR7dGVzdGZpbGV9LmMgXSIgXAotKyAgICAi LipCcmVha3BvaW50LioiCi0rZ2RiX3Rlc3QgImNvbnRpbnVlIiAiLipCcmVha3BvaW50LioiCi0r Ci0gZ2RiX3Rlc3QgInByaW50IHNzIiAiID0gYT08IGE9PDE+IGI9PCRoZXg+PiBiPTwgYT08Mj4g Yj08JGhleD4+IiBcCi0gICAgICJwcmludCBzcyBlbmFibGVkICMxIgotIAotZGlmZiAtLWdpdCBh L2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5weSBiL2dkYi90ZXN0c3Vp dGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5weQotaW5kZXggNTJmZmQxYS4uYjAyYjkwZiAx MDA2NDQKLS0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLnB5dGhvbi9weS1wcmV0dHlwcmludC5weQot KysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIucHl0aG9uL3B5LXByZXR0eXByaW50LnB5Ci1AQCAtMTk5 LDYgKzE5OSwxNCBAQCBjbGFzcyBNZW1vcnlFcnJvclN0cmluZzoKLSAgICAgZGVmIGRpc3BsYXlf aGludCAoc2VsZik6Ci0gICAgICAgICByZXR1cm4gJ3N0cmluZycKLSAKLStjbGFzcyBwcF9ldmFs X3R5cGU6Ci0rICAgIGRlZiBfX2luaXRfXyhzZWxmLCB2YWwpOgotKyAgICAgICAgc2VsZi52YWwg PSB2YWwKLSsKLSsgICAgZGVmIHRvX3N0cmluZyhzZWxmKToKLSsJZ2RiLmV4ZWN1dGUoImJ0Iiwg dG9fc3RyaW5nPVRydWUpCi0rICAgICAgICByZXR1cm4gImV2YWw9PCIgKyBzdHIoZ2RiLnBhcnNl X2FuZF9ldmFsKCJldmFsX2Z1bmMgKDEyMzQ1Njc4OSwgMiwgMywgNCwgNSwgNiwgNywgOCkiKSkg KyAiPiIKLSsKLSBkZWYgbG9va3VwX2Z1bmN0aW9uICh2YWwpOgotICAgICAiTG9vay11cCBhbmQg cmV0dXJuIGEgcHJldHR5LXByaW50ZXIgdGhhdCBjYW4gcHJpbnQgdmFsLiIKLSAKLUBAIC0yNzYs NiArMjg0LDggQEAgZGVmIHJlZ2lzdGVyX3ByZXR0eV9wcmludGVycyAoKToKLSAKLSAgICAgcHJl dHR5X3ByaW50ZXJzX2RpY3RbcmUuY29tcGlsZSAoJ15tZW1vcnlfZXJyb3IkJyldICA9IE1lbW9y eUVycm9yU3RyaW5nCi0gCi0rICAgIHByZXR0eV9wcmludGVyc19kaWN0W3JlLmNvbXBpbGUgKCde ZXZhbF90eXBlX3MkJyldID0gcHBfZXZhbF90eXBlCi0rCi0gcHJldHR5X3ByaW50ZXJzX2RpY3Qg PSB7fQotIAotIHJlZ2lzdGVyX3ByZXR0eV9wcmludGVycyAoKQotCgpkaWZmIC0tZ2l0IGEvZ2Ri LXVwc3RyZWFtLnBhdGNoIGIvZ2RiLXVwc3RyZWFtLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCA3YWM5YjhkLi4wMDAwMDAwCi0tLSBhL2dkYi11cHN0cmVhbS5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDU1ICswLDAgQEAKLWh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9nZGIt cGF0Y2hlcy8yMDEyLTA3L21zZzAwMjAwLmh0bWwKLVN1YmplY3Q6IFtvYnZdIHRlc3RzdWl0ZTog Rml4IGZpc3Npb24tcmVyZWFkLlMgcmVncmVzc2lvbiBieSBtZQotCi1IaSBEb3VnLAotCi1JIGJy b2tlIHRoZSB0ZXN0Y2FzZSBieSBwYXRjaAotCVtwYXRjaCAxLzJdIHRlc3RjYXNlOiBNYWtlIGl0 IC1tMzIgY29tcGF0aWJsZSBbUmU6IFtjb21taXRdIEZpeCByZXJlYWRpbmcgb2YgRFdPIERJRXNd Ci0JaHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2dkYi1wYXRjaGVzLzIwMTItMDcvbXNnMDAwMDku aHRtbAotCi1UaGUgdGVzdGNhc2UgaXRzZWxmIHVzdWFsbHkgUEFTU2VzIGJ1dCBzb21ldGltZXMg aXQgZG9lcyBub3QuICBJdCBpcyBtb3JlCi1jbGVhciB3aXRoICdyZWFkZWxmIC13aSc6Ci0gICAg PDdiPiAgIERXX0FUX2ZyYW1lX2Jhc2UgIDogOTcgYnl0ZSBibG9jazogN2EgMCAxIDcgMTkgOGIg N2UgYWMgY2UgZjEgMjIgOTAgMiBmYiAxIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgNTEgY2Qg MSAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAw IDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAg MCAwIDAgMCAwIDAgMCAwIDAgMCAJKERXX09QX2JyZWcxMCAocjEwKTogMDsgKFVua25vd24gbG9j YXRpb24gb3ApKQotCi1DaGVja2VkIGluLgotCi0KLVNvcnJ5LAotSmFuCi0KLQotaHR0cDovL3Nv dXJjZXdhcmUub3JnL21sL2dkYi1jdnMvMjAxMi0wNy9tc2cwMDEwMi5odG1sCi0KLS0tLSBzcmMv Z2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cJMjAxMi8wNy8xMyAyMDoyNjoxMAkxLjMyOTIKLSsrKyBz cmMvZ2RiL3Rlc3RzdWl0ZS9DaGFuZ2VMb2cJMjAxMi8wNy8xNSAwODozNDo1NQkxLjMyOTMKLUBA IC0xLDMgKzEsOSBAQAotKzIwMTItMDctMTUgIEphbiBLcmF0b2NodmlsICA8amFuLmtyYXRvY2h2 aWxAcmVkaGF0LmNvbT4KLSsKLSsJRml4IGEgdGVzdGNhc2UgcmVncmVzc2lvbiBieSBtZS4KLSsJ KiBnZGIuZHdhcmYyL2Zpc3Npb24tcmVyZWFkLlM6IEZpeCB0d28gRFdfRk9STV9kYXRhOCB0byBi ZQotKwlEV19GT1JNX2RhdGE0LgotKwotIDIwMTItMDctMTMgIEphbiBLcmF0b2NodmlsICA8amFu LmtyYXRvY2h2aWxAcmVkaGF0LmNvbT4KLSAJICAgIERvdWcgRXZhbnMgIDxkamVAZ29vZ2xlLmNv bT4KLSAKLS0tLSBzcmMvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYyL2Zpc3Npb24tcmVyZWFkLlMJ MjAxMi8wNy8wMiAyMDoxMDo0OAkxLjMKLSsrKyBzcmMvZ2RiL3Rlc3RzdWl0ZS9nZGIuZHdhcmYy L2Zpc3Npb24tcmVyZWFkLlMJMjAxMi8wNy8xNSAwODozNDo1NQkxLjQKLUBAIC0yMzEsNyArMjMx LDcgQEAKLSAJLnVsZWIxMjggMHgxMQkvKiAoRFdfQVRfbG93X3BjKSAqLwotIAkudWxlYjEyOCAw eDEJLyogKERXX0ZPUk1fYWRkcikgKi8KLSAJLnVsZWIxMjggMHgxMgkvKiAoRFdfQVRfaGlnaF9w YykgKi8KLS0JLnVsZWIxMjggMHg3CS8qIChEV19GT1JNX2RhdGE4KSAqLwotKwkudWxlYjEyOCAw eDYJLyogKERXX0ZPUk1fZGF0YTQpICovCi0gCS51bGViMTI4IDB4MTAJLyogKERXX0FUX3N0bXRf bGlzdCkgKi8KLSAJLnVsZWIxMjggMHgxNwkvKiAoRFdfRk9STV9zZWNfb2Zmc2V0KSAqLwotIAku dWxlYjEyOCAweDFiCS8qIChEV19BVF9jb21wX2RpcikgKi8KLUBAIC0zNTEsNyArMzUxLDcgQEAK LSAJLnVsZWIxMjggMHgxMQkvKiAoRFdfQVRfbG93X3BjKSAqLwotIAkudWxlYjEyOCAweDFmMDEJ LyogKERXX0ZPUk1fR05VX2FkZHJfaW5kZXgpICovCi0gCS51bGViMTI4IDB4MTIJLyogKERXX0FU X2hpZ2hfcGMpICovCi0tCS51bGViMTI4IDB4NwkvKiAoRFdfRk9STV9kYXRhOCkgKi8KLSsJLnVs ZWIxMjggMHg2CS8qIChEV19GT1JNX2RhdGE0KSAqLwotIAkudWxlYjEyOCAweDQwCS8qIChEV19B VF9mcmFtZV9iYXNlKSAqLwotIAkudWxlYjEyOCAweDE4CS8qIChEV19GT1JNX2V4cHJsb2MpICov Ci0gCS5ieXRlCTAKLQoKZGlmZiAtLWdpdCBhL2dkYi5zcGVjIGIvZ2RiLnNwZWMKaW5kZXggOWIw OTE0NS4uODZkMmE1NiAxMDA2NDQKLS0tIGEvZ2RiLnNwZWMKKysrIGIvZ2RiLnNwZWMKQEAgLTMw LDEyICszMCwxMiBAQCBOYW1lOiAlez9zY2xfcHJlZml4fWdkYgogIyBTZXQgdmVyc2lvbiB0byBj b250ZW50cyBvZiBnZGIvdmVyc2lvbi5pbi4KICMgTk9URTogdGhlIEZTRiBnZGIgdmVyc2lvbnMg YXJlIG51bWJlcmVkIE4uTSBmb3Igb2ZmaWNpYWwgcmVsZWFzZXMsIGxpa2UgNi4zCiAjIGFuZCwg c2luY2UgSmFudWFyeSAyMDA1LCBYLlkuWi5kYXRlIGZvciBkYWlseSBzbmFwc2hvdHMsIGxpa2Ug Ni4zLjUwLjIwMDUwMTEyICMgKGRhaWx5IHNuYXBzaG90IGZyb20gbWFpbGluZSksIG9yIDYuMy4w LjIwMDQwMTEyIChoZWFkIG9mIHRoZSByZWxlYXNlIGJyYW5jaCkuCi0lZ2xvYmFsIHNuYXAgMjAx MjA3MTQKLVZlcnNpb246IDcuNC41MC4le3NuYXB9CislZ2xvYmFsIHNuYXAgMjAxMjA4MDEKK1Zl cnNpb246IDcuNC45MS4le3NuYXB9CiAKICMgVGhlIHJlbGVhc2UgYWx3YXlzIGNvbnRhaW5zIGEg bGVhZGluZyByZXNlcnZlZCBudW1iZXIsIHN0YXJ0IGl0IGF0IDEuCiAjIGB1cHN0cmVhbScgaXMg bm90IGEgcGFydCBvZiBgbmFtZScgdG8gc3RheSBmdWxseSBycG0gZGVwZW5kZW5jaWVzIGNvbXBh dGlibGUgZm9yIHRoZSB0ZXN0aW5nLgotUmVsZWFzZTogMTYlez9kaXN0fQorUmVsZWFzZTogMTcl ez9kaXN0fQogCiBMaWNlbnNlOiBHUEx2MysgYW5kIEdQTHYzKyB3aXRoIGV4Y2VwdGlvbnMgYW5k IEdQTHYyKyBhbmQgR1BMdjIrIHdpdGggZXhjZXB0aW9ucyBhbmQgR1BMKyBhbmQgTEdQTHYyKyBh bmQgQlNEIGFuZCBQdWJsaWMgRG9tYWluCiBHcm91cDogRGV2ZWxvcG1lbnQvRGVidWdnZXJzCkBA IC0yNjQsNyArMjY0LDcgQEAgUGF0Y2gyMzE6IGdkYi02LjMtYnoyMDI2ODktZXhlYy1mcm9tLXB0 aHJlYWQtdGVzdC5wYXRjaAogCiAjIEJhY2twb3J0ZWQgZml4dXBzIHBvc3QgdGhlIHNvdXJjZSB0 YXJiYWxsLgogI1hkcm9wOiBKdXN0IGJhY2twb3J0cy4KLVBhdGNoMjMyOiBnZGItdXBzdHJlYW0u cGF0Y2gKKyNQYXRjaDIzMjogZ2RiLXVwc3RyZWFtLnBhdGNoCiAKICMgVGVzdGNhc2UgZm9yIFBQ QyBQb3dlcjYvREZQIGluc3RydWN0aW9ucyBkaXNhc3NlbWJseSAoQlogMjMwMDAwKS4KICM9ZmVk b3JhdGVzdCtwcGMKQEAgLTU0OCwxMCArNTQ4LDYgQEAgUGF0Y2g2NjE6IGdkYi1zdGFsZS1mcmFt ZV9pbmZvLnBhdGNoCiAjPXB1c2grd29yazogQnV0IHB1c2ggaXQgdG8gZ2xpYmMuCiBQYXRjaDY5 MDogZ2RiLWdsaWJjLXN0cnN0ci13b3JrYXJvdW5kLnBhdGNoCiAKLSMgRGlzYWJsZSAtbG1jaGVj ayBpbiB0aGUgZGV2ZWxvcG1lbnQgYnVpbGRzLgotIz1mZWRvcmEKLVBhdGNoNjk0OiBnZGItZGlz YWJsZS1tY2hlY2sucGF0Y2gKLQogIyBJbmNsdWRlIHRlc3RjYXNlIGZvciBgVW5hYmxlIHRvIHNl ZSBhIHZhcmlhYmxlIGluc2lkZSBhIG1vZHVsZSAoWExGKScgKEJaIDgyMzc4OSkuCiAjPWZlZG9y YXRlc3QKICMrcHBjCkBAIC01NjUsMTAgKzU2MSw2IEBAIFBhdGNoNzAzOiBnZGItcmhiei04MTgz NDMtc2V0LXNvbGliLWFic29sdXRlLXByZWZpeC10ZXN0Y2FzZS5wYXRjaAogIz1mZWRvcmEKIFBh dGNoNzE2OiBnZGItbWluaWRlYnVnaW5mby5wYXRjaAogCi0jIEZpeCBhbm90aGVyIHN0YWxlIGZy YW1lX2luZm8gKiAoUFIgMTE5MTQsIGxpa2UgUFIgMTM4NjYpLgotIz1wdXNoCi1QYXRjaDcxODog Z2RiLXN0YWxlLWZyYW1lX2luZm8tcHl0aG9uLnBhdGNoCi0KICVpZiAwJXshP3JoZWw6MX0gfHwg MCV7P3JoZWx9ID4gNgogIyBSTF9TVEFURV9GRURPUkFfR0RCIHdvdWxkIG5vdCBiZSBmb3VuZCBm b3I6CiAjIFBhdGNoNjQyOiBnZGItcmVhZGxpbmU2Mi1hc2stbW9yZS1yaC5wYXRjaApAQCAtNzYz LDcgKzc1NSw3IEBAIHJtIC1mIGdkYi9qdi1leHAuYyBnZGIvbTItZXhwLmMgZ2RiL29iamMtZXhw LmMgZ2RiL3AtZXhwLmMKICMgTWF0Y2ggdGhlIEZlZG9yYSdzIHZlcnNpb24gaW5mby4KICVwYXRj aDIgLXAxCiAKLSVwYXRjaDIzMiAtcDEKKyNwYXRjaDIzMiAtcDEKICVwYXRjaDM0OSAtcDEKICVw YXRjaDEgLXAxCiAlcGF0Y2gzIC1wMQpAQCAtODY3LDExICs4NTksOSBAQCBybSAtZiBnZGIvanYt ZXhwLmMgZ2RiL20yLWV4cC5jIGdkYi9vYmpjLWV4cC5jIGdkYi9wLWV4cC5jCiAlcGF0Y2g2NTcg LXAxCiAlcGF0Y2g2NjEgLXAxCiAlcGF0Y2g2OTAgLXAxCi0lcGF0Y2g2OTQgLXAxCiAlcGF0Y2g2 OTggLXAxCiAlcGF0Y2g3MDMgLXAxCiAlcGF0Y2g3MTYgLXAxCi0lcGF0Y2g3MTggLXAxCiAKICVw YXRjaDM5MyAtcDEKICVpZiAwJXshP2VsNToxfSB8fCAwJXs/c2NsOjF9CkBAIC0xMzY2LDYgKzEz NTYsMTAgQEAgZmkKICVlbmRpZiAjIDAleyE/ZWw1OjF9IHx8ICIle190YXJnZXRfY3B1fSIgPT0g Im5vYXJjaCIKIAogJWNoYW5nZWxvZworKiBXZWQgQXVnICAxIDIwMTIgSmFuIEtyYXRvY2h2aWwg PGphbi5rcmF0b2NodmlsQHJlZGhhdC5jb20+IC0gNy40LjkxLjIwMTIwODAxLTE3CistIFJlYmFz ZSB0byBGU0YgR0RCIDcuNC45MS4yMDEyMDgwMS4KKy0gW2R3el0gUmViYXNlIGl0IGZyb20gRlNG IEdEQiBIRUFELgorCiAqIFRodSBKdWwgMTkgMjAxMiBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmlu ZyA8cmVsLWVuZ0BsaXN0cy5mZWRvcmFwcm9qZWN0Lm9yZz4gLSA3LjQuNTAuMjAxMjA3MTQtMTYK IC0gUmVidWlsdCBmb3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV8xOF9N YXNzX1JlYnVpbGQKIAoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IDRhZTY1 OWMuLmVjMGYyMjEgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMSwyICsx LDIgQEAKIDA0ZTVjNGIxYjllNjMzNDIyY2M0ODk5MGZlNjE5NThkICBsaWJzdGRjKystdjMtcHl0 aG9uLXIxNTU5NzgudGFyLmJ6MgotMTE1YTZhNTIxYWVmMmNlMzA2ZmQzZTdmYWRkNzljMDIgIGdk Yi03LjQuNTAuMjAxMjA3MTQudGFyLmJ6MgorZWQ0MmVlOTViN2ExMTQ1NTEwOTRjODRlZTQxOTI2 NDMgIGdkYi03LjQuOTEuMjAxMjA4MDEudGFyLmJ6Mgo=